YUV422 프레임을 PPM 파일 - (RGB888)로 변환 중입니다.yuv - rgb 변환 열이 맞지 않음
이미지가 대부분 변환됩니다. 색상은 괜찮습니다. 나는 실제 YUV - 투 - RGB 픽셀 변환이 없다는 것을 확신한다
BYTE* CYUV::toRGB()
{
BYTE* rgb = new BYTE[m_width*m_height*3];
BYTE* rgb_ret = rgb;
BYTE* p_yuv = m_yuv_frame;
for (int i=m_width*m_height/2; i--;)
{
BYTE y, u, v, y2;
BYTE r,g, b;
y2 = *p_yuv++;
v = *p_yuv++;
y = *p_yuv++;
u = *p_yuv++;
r = (y + 1.370705 * (v - 128));
g = (y - (0.698001 * (v - 128)) - (0.337633 * (u - 128)));
b = (y + (1.732446 * (u - 128)));
*rgb++ = b < 0 ? 0 : b > 255 ? 255 : b;
*rgb++ = g < 0 ? 0 : g > 255 ? 255 : g;
*rgb++ = r < 0 ? 0 : r > 255 ? 255 : r;
r = (y2 + 1.370705 * (v - 128));
g = (y2 - (0.698001 * (v - 128)) - (0.337633 * (u - 128)));
b = (y2 + (1.732446 * (u - 128)));
*rgb++ = b < 0 ? 0 : b > 255 ? 255 : b;
*rgb++ = g < 0 ? 0 : g > 255 ? 255 : g;
*rgb++ = r < 0 ? 0 : r > 255 ? 255 : r;
}
return rgb_ret;
}
나는 많은 다른 수식을 시도했기 때문에, : 그러나 각각
추가 여기 프레임 변환 함수 인 것처럼 행, 비스듬히 것 같다 색상 왜곡 된 결과.
PPM 파일의 경우 모든 이미지 판독기에서 처리하므로 좋을 수도 있습니다.
원래의 YUV4222 프레임은 괜찮습니까?이 왜곡없이 SDL을 사용하여 표시합니다.
제안 사항?
TIA
현