//需保证图像高度宽度均为偶数
int yuv422_2_yuv420(unsigned char* yuv420, const unsigned char* yuv422, int width, int height)
{
int imgSize = width * height * 2;
int widthStep422 = width * 2;
const unsigned char* p422 = yuv422;
unsigned char* p420y = yuv420;
unsigned char* p420u = yuv420 + imgSize / 2;
unsigned char* p420v = p420u + imgSize / 8;
for(int i = 0; i < height; i += 2)
{
p422 = yuv422 + i * widthStep422;
for(int j = 0; j < widthStep422; j+=4)
{
*(p420y++) = p422[j];
*(p420u++) = p422[j+1];
*(p420y++) = p422[j+2];
}
p422 += widthStep422;
for(int j = 0; j < widthStep422; j+=4)
{
*(p420y++) = p422[j];
*(p420v++) = p422[j+3];
*(p420y++) = p422[j+2];
}
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载
- 1
- 2
- 3
- 4
前往页