C++ NV12 到 RGB24 转换代码



>有谁知道如何将英特尔媒体 SDK(版本:媒体 SDK 2010)H.264 视频帧解码输出 NV12 格式转换为 RGB888 (RGB24) 位转换?

基本上媒体SDK解码器输出将是NV12格式,渲染需要RGB24位格式,所以如果有任何可用于转换NV12-->RGB24的转换代码,对我们来说会有很大帮助。

查看 YUV 到 RGB 转换,之后您可以使用有关 YUV 像素格式的信息(链接指向 NV12)作为第一个链接的输入并进行转换。

查看此代码: https://github.com/andrechen/yuv2rgb虽然它适用于NV21,但唯一的区别是UV(VU)字节的顺序。您需要做的就是颠倒顺序(loadvu 函数):

static void loadvu(int& U, int& V, unsigned char const* &uv) {
    U = (*uv++) - 128;
    V = (*uv++) - 128;
}

最新更新