读书人

YUV422转420,该怎么处理

发布时间: 2012-03-22 17:43:57 作者: rapoo

YUV422转420
各位大虾们,我刚接触视频解理,组长让我把422转成420,请问该怎么转啊?最好有代码,谢谢啦!

[解决办法]
BOOL YUV422To420(BYTE* pYUV, BYTE* pY, BYTE* pU, BYTE* pV, LONG lWidth, LONG lHeight)
{

int i,j;

BYTE* pYUVTemp = pYUV;
BYTE* pYUVTempNext = pYUV+lWidth*2;

for(i=0; i<lHeight; i+=2)
{
for(j=0; j<lWidth; j+=2)
{
pY[j] = *pYUVTemp++;
pY[j+lWidth] = *pYUVTempNext++;

pU[j/2] =(*(pYUVTemp) + *(pYUVTempNext))/2;
pYUVTemp++;
pYUVTempNext++;

pY[j+1] = *pYUVTemp++;
pY[j+1+lWidth] = *pYUVTempNext++;

pV[j/2] =(*(pYUVTemp) + *(pYUVTempNext))/2;
pYUVTemp++;
pYUVTempNext++;
}
pYUVTemp+=lWidth*2;
pYUVTempNext+=lWidth*2;
pY+=lWidth*2;
pU+=lWidth/2;
pV+=lWidth/2;
}

return TRUE;
}

读书人网 >C++

热点推荐