|
我想我们在讨论的过程中已经偏离了楼主的初衷。
楼主的图,我看过之后只看到两个问题,首先UV Channel在做拉伸的时候的filter问题(ATI在VMR9默认只用box filter),然后是是limited range和full range的问题。
我倾向于相信,楼主使用的VMR9,毕竟overlay下是抓不到图的,VMR7的话,使用意义不大,当然如果我说的不对,楼主可以在后面澄清。
VMR9走的色彩方面处理的流程,据我所知和desktop是一样的。那么对我们用户来说,VMR9显示出来的数据,即抓下来的截图如果和我们期待的是一样的,那就说明我们的努力已经到头了,因为再往后面,就是Curve Control(这个功能我在ATI芯片的spec中看见过,相信nVidia也会有类似的功能)和CLUT(当然我这里抛弃了用户调整驱动中相关色彩的功能,但这是可以排除一切外因的条件)。除非我们可以改写驱动,或者bios,那么显卡的Curve Control和CLUT是没有办法控制的。当然这里,我排除了一切传输过程的损失。
对于视频来说,CPU/GPU解码出来的默认都是YV12(除非用户在软件解码器中特别定制,比如ffdshow的color space converter),YV12中UV的size只有Y'的1/4,那么即使在默认大小都需要对UV进行拉伸,拉伸的算法,就会影响后面用户的感觉。楼主说的字幕问题就是典型的UV拉伸的问题,这不是锐度问题,因为这里ATI的做法就是过于简单,甚至错误。
至于Y'UV转换为R'G'B'应该用601还是709,应该用0-255还是16-235(UV16-240),这是很显然的问题,应该不用再花时间讨论,因为这只有对错,没有好坏。
[ 本帖最后由 japhsoncross 于 2008-8-3 10:50 编辑 ] |
|