查看完整版本: [-- SDK中pluginDemo的问题 --]

APlayer 开发者论坛 -> APlayer 讨论区 -> SDK中pluginDemo的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

wxh101 2018-06-23 17:24

SDK中pluginDemo的问题

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 17:16
PluginDemo 只是个例子用 RGB 来绘制,处理视频数据不是Plugin必须的,实在要处理,用什么公式都可以,就是颜色略微有点区别而已,这个有些主观,没有太统一的标准。


查看完整版本: [-- SDK中pluginDemo的问题 --] [-- top --]


Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.009617 second(s),query:0 Gzip enabled