首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无损RGB24到YUV444变换

无损RGB24到YUV444变换
EN

Stack Overflow用户
提问于 2014-03-19 05:22:17
回答 1查看 4.4K关注 0票数 2

目前,我正尝试在FFMPEG上使用RGB24对H264进行无损压缩。但是,H264压缩(RGB24 -> YUV444)中使用的颜色空间转换已经证明是有损的(我猜是因为量化错误)。在使用无损的RGB24压缩文件之前,我还能使用什么(例如程序)将我的H264文件无损地转换成YUV吗?

最终目标是压缩RGB24文件,然后解压缩它,解压缩后的文件与原始文件完全匹配。例如RGB24 -> YUV444 ->压缩YUV44 ->解压YUV444 -> RGB24。

这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 15:55:49

这是我回答的一个副本/粘贴:RGB-frame encoding - FFmpeg/libav

让我们来看看颜色空间的转换。

代码语言:javascript
复制
void YUVfromRGB(double& Y, double& U, double& V, const double R, const double G, const double B)
{
    Y =  0.257 * R + 0.504 * G + 0.098 * B +  16;
    U = -0.148 * R - 0.291 * G + 0.439 * B + 128;
    V =  0.439 * R - 0.368 * G - 0.071 * B + 128;
}

并插入一些虚拟值:

代码语言:javascript
复制
R = 255, G = 255, B = 255
Y = 235

R = 0, G = 0, B = 0
Y = 16

如您所见,0 -> 255的范围压缩到16 -> 235。因此,我们已经证明在RGB颜色空间中有些颜色在(数字) YUV颜色空间中是不存在的。因此,根据定义,转换是有损的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22496938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档