• 3929阅读
  • 1回复

SDK中pluginDemo的问题 [复制链接]

上一主题 下一主题
离线wxh101
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2018-06-23
APlayerSDK里有个PluginDemo的样本代码,阅读代码时,发现里面有个不明白的地方。
在main.cpp的DrawFrame函数负责将输入的YUV411的格式转成RGB32的格式,显示在对话框中。
里面转换代码如下:

    int N = Y << 10;
    R = (N + V * 1900 - 240000) >> 10;
    G = (N - V * 570 - U * 450 + 136000) >> 10;
    B = (N + U * 1630 - 200000) >> 10;
转成公式,大概是:

R=Y+1.855V-234.4
G=Y-0.557V-0.439U+132.8
B=Y+1.592U-195.3

但是,从网上查找了很久,发现别人的YUV转RGB好像不一样,我看到了几种不同的公式,都和demo中的不一样。
比如,最常用的一个公式:

R=Y+1.403V−179.6
G=Y–0.714V–0.343U+135.3
B=Y+1.770U–226.6
明显的数据和上面的差别很大,这是什么原因呢?是不是APlayer需要的这个转换公式是自己独有的?

我想知道这个是如何决定的,plugin处理视频数据时,是不是必须用这个公式换算。
离线aplayer

只看该作者 沙发  发表于: 2018-06-28
PluginDemo 只是个例子用 RGB 来绘制,处理视频数据不是Plugin必须的,实在要处理,用什么公式都可以,就是颜色略微有点区别而已,这个有些主观,没有太统一的标准。
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个