引用
最初由 wolfsoft 发布
啧,basaka说的是这个bug啊,我还以为是warpsharp那个呢。你说的这个虾虾就说过我又怎可能不知道?
但你不能否认AU内部就是用的16bit的YUY2。SDK的头文件里写的很明白。至少我是自己写过filter提取象素值验证过这一点的。
如果我没记错,那个bug好象跟显示有关。因为AU的所见即所得毕竟也是靠GDI的,所以为了显示它只能先转化成RGB。
我明白你想说什么了,但是我想说,你似乎有些误解...
首先,AU内部是YUV48bit的空间这点是共识。问题是出在内部空间的UV到底是pixel独立的,还是邻接pixel共用的。
YUY2意味着邻接的两个pixel共用UV信息。如果AU内部空间是YUY2的话,那么AU吃RGB的时候,做RGB->YUV变换时就必定会丢掉一半的UV信息,那么当AU再次从YUV变回RGB显示的时候,必定和原来的源会产生差异,但事实上,AU吃RGB的时候并没有这个现象。
你说到AU的滤镜,你的误解可能就是出在这里。AU的滤镜并不是在YUY2上处理的,而是在YUV444处理完之后,最后作了一个YUV444->YUV422的变换,而且用的是和AU本身不同的keep center方式。
顺便说一下,0.99有个YUY2模式,那个模式下到确实内部是直接走YUY2的,但是那个模式下只有内部的滤镜可以用。原因估计就是AU的外部滤镜都是YUV444下处理的,YUY2模式下用不了。