搜索 社区服务 统计排行 帮助
  • 2394阅读
  • 8回复

关于视频回放YC伸张问题的试验和思考

楼层直达
级别: 新手上路
注册时间:
2009-01-22
在线时间:
0小时
发帖:
1
一直以来使用XP系统默认的VMR7 Windowed方式,默认第一个视频会调用Overlay,由于其会做YC伸张,看视频一直正常。但最近同时打开了两个视频,发现第二个明显“泛白”.... 搜索再三知道了关于PC Scale、TV Scale、601、709、等等的问题。
遂研究了以下各种播放器解码器渲染器组合下来的YC伸张情况,重点参考了dgwxx、VempX的“DVDRIP过程中YC伸张与YC压缩的实验”的文章。结果大致如下。

系统:Windows XP SP3
播放器:Media Player Classic Home Cinema 1.2.908.0
解码器:ffdshow beta6 rev2527 20081219
显卡:ATI Radeon 9800XT
驱动版本:Catalyst 8.12

ffdshow强制RGB32输出,会做YC伸张,色彩肯定正常,就不列出。重点是YV12输出。


1.VMR7 Windowed (XP Default) + ffdshow YV12
XP系统默认的渲染模式,第一个视频窗口,如Overlay可用就用,会做 YC 伸张,色彩正确。第二个视频,不会调用Overlay,转而使用默认的 VMR7,不做YC伸张,所以第二个视频色彩错误。


2.Overlay Mixer + ffdshow YV12
Overlay 会做YC伸张,按说色彩应该正确。但是在《DVDRIP过程中YC伸张与YC压缩的实验》中也写到 “覆盖合成器+ffdshow YV12输出 颜色错误(存疑)” 后来经过试验发现mpc-hc下overlay和ffdshow的YUV输出有兼容性问题,如果使用其他解码器输出YUV,例如mpchc自带的MPC Video Decoder 到 Overlay Mixer,色彩就完全正确了。
(或者如同1的情况 通过VMR7 Windowed调用的Overlay也没有问题)

3.VMR7 Renderless + ffdshow YV12
系统不支持,跳回了默认的VMR7 Windowed,但如果将ffdshow的YUV输出改为YUY2,工作正常,但是VMR7不做YC伸张,色彩依然错误。
VMR7 Renderless 不支持YV12???


4.VMR9 Renderless + ffdshow YV12
工作正常,VMR9不做YC伸张,色彩错误。



以上结论只是我本人系统的个例,标准的混乱,导致影片无论是在压制还是回放的过程中都会碰到许多问题,在PC上放视频... 水很深..[/KH]
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 1楼 发表于: 2009-01-22
结论不对,压制才没那么多问题呢,只有放的时候有。

其实根本的解决方法是在任何YUV数据中保存矩阵信息(就像分辨率一样),保证YUV->RGB的变换不会使用错误的矩阵。很可惜大部分接口都缺少这一项,包括vfw,dshow,以及windows下所有的渲染器,所以硬件在显示时只能根据分辨率猜。
级别: 骑士
注册时间:
2003-06-05
在线时间:
0小时
发帖:
1041
只看该作者 2楼 发表于: 2009-02-04
不同的系统效果也未必相同。

譬如A卡在xp下使用默认的渲染器播放视频,yc伸张是正常的。

但是在vista或者win7下,如果用系统自带的驱动播放,默认渲染器yc伸张正常,但是如果自行安装了驱动,默认的渲染器就不会做yc伸张了,改成Overlay Mixer,yc伸张正常。

N卡现在似乎只要在驱动中调成全范围,基本就没什么yc伸张的问题了。我记得在有这个范围调节之前,n卡看片从来都是灰蒙蒙的=。=
级别: 骑士
注册时间:
2006-09-22
在线时间:
0小时
发帖:
965
只看该作者 3楼 发表于: 2009-02-04
不同硬件也有差别..
譬如换到Vista,haali渲染还是会有小细线..

级别: 侠客
注册时间:
2004-10-16
在线时间:
7小时
发帖:
559
只看该作者 4楼 发表于: 2009-02-05
引用
最初由 蓝の回忆 发布
不同硬件也有差别..
譬如换到Vista,haali渲染还是会有小细线..


这个小细线会不会和以前FalconIA大用ColorMatrix压hime出小横线的同一个罪恶根源?
级别: 圣骑士
注册时间:
2003-02-20
在线时间:
79小时
发帖:
1605
只看该作者 5楼 发表于: 2009-02-05
引用
最初由 52wy 发布

但是在vista或者win7下,如果用系统自带的驱动播放,默认渲染器yc伸张正常,但是如果自行安装了驱动,默认的渲染器就不会做yc伸张了,改成Overlay Mixer,yc伸张正常。


这个问题导致在vista下就找不到渲染器用了

嗯。。。
级别: 新手上路
注册时间:
2005-04-10
在线时间:
0小时
发帖:
7
只看该作者 6楼 发表于: 2009-02-07
那个看YC色彩的图片 就是上下 两组3原色 上面16 235 下面 0 255 正常看应该是怎么样的色彩才是正确的 ...?
级别: 新手上路
注册时间:
2008-04-09
在线时间:
0小时
发帖:
179
只看该作者 7楼 发表于: 2009-02-12
引用
最初由 52wy 发布
不同的系统效果也未必相同。

譬如A卡在xp下使用默认的渲染器播放视频,yc伸张是正常的。

但是在vista或者win7下,如果用系统自带的驱动播放,默认渲染器yc伸张正常,但是如果自行安装了驱动,默认的渲染器就不会做yc伸张了,改成Overlay Mixer,yc伸张正常。

N卡现在似乎只要在驱动中调成全范围,基本就没什么yc伸张的问题了。我记得在有这个范围调节之前,n卡看片从来都是灰蒙蒙的=。=

没用的,看你用什么渲染器了,N卡的驱动调成全范围只不过是再做一次伸张而已,所以会出现二次伸张的问题
级别: 骑士
注册时间:
2003-06-05
在线时间:
0小时
发帖:
1041
只看该作者 8楼 发表于: 2009-02-20
引用
最初由 Izumi Nova 发布

没用的,看你用什么渲染器了,N卡的驱动调成全范围只不过是再做一次伸张而已,所以会出现二次伸张的问题


我所指都是默认渲染器,用haail不用调显卡设置yc伸张也不会错,不过我不喜欢用haail
快速回复

限150 字节
上一个 下一个