色度上采样错误和4:2:0隔行扫描色度问题(二)

本文深入探讨了4:2:0隔行扫描格式在MPEG视频中的应用及由此引发的颜色显示问题,包括如何通过解码器和去交织处理器改善图像质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接        译文PDF

 

4:2:0隔行扫描:本质上的破坏

 

         当我们写第一篇有关色度的文章的时候,我们注意到一个问题,但并没有写下来。这个问题就是,即使当视频内容正确地标识为隔行扫描后,使用隔行扫描上采样算法处理后图像看起来仍然是不正确的。在当时,我们认为这是一个因为不同的算法实现而产生的问题,但是,现在我们认识到在处理隔行扫描视频时,没有播放机能生成好的颜色。从本质上说,这是一个不好的设计。下面是“More Tales of the City”中的一个场景。和其他很多DVD一样,它被编码为3-2

  

  

我们放大了这个场景中的几个区域来展示这个问题,注意,这不是CUE问题。这是完全不同的一个问题。这个场景来自一个好的解码器(译注:不存在CUE问题)的输出。

 

问题的原因在这里:在4:2:0隔行扫描MPEG视频帧中,色度通道是由两个单独的色度通道交织而成。一个色度通道来自场图像一,另一个来自场图像二。这两个色度场的分辨率非常低。拥有480条扫描线的4:2:0隔行扫描帧的色度采样扫描线在垂直方向上只有240条,因此,单个色度场仅仅有120条色度采样扫描线。为了转换为4:2:2的隔行视频,这两个120条扫描线色度场必须被上采样以形成两个240条扫描线的色度场。上采样的过程本质上就是填充图像缺失的扫描线(译注:针对4:2:0格式上采样转换为4:2:2格式),根本不考虑另一个场的采样点。所以在处理过程中,根本不考虑每个场的细节,上采样过程就是使用所谓的“最佳猜测”去填充缺失的扫描线。对每个场来说,这个猜测是不同的,因为两个场使用的是完全不同的一组数据。最重要的是,轮廓的边缘,特别是斜边缘,这些位置的采样,在每场中是在稍微不同的位置,最后的上采样计算也是采用这些不同的位置的采样。

 

正是轮廓边缘的错位导致了这个问题。当两个场随后被去交织处理器放在一起(如果我们在隔行扫描电视上观看,就是被我们的眼睛和大脑放在一起),每场相对平滑的色调和轮廓被另一场的稍有不同的色调和轮廓所破坏。如果是运动图像,这不成问题,因为你不可能注意到两场图像色度的不匹配。但是对于静止图像,看起来很像颜色BUG的一些东西会出现在颜色明亮的物体的斜边缘上。

 

这不是颜色BUG,认识到这一点是很重要的。首先,这不是BUG。这次,解码器做了

正确的事情。而不是像典型的颜色BUG,解码器忽略了progressive_frame旗标,采用了不正确的上采样算法。其次,这种问题的结果和颜色BUG的结果有微妙的区别,虽然,从观察者的角度看,它们看起来几乎是一样的。我们称这个问题为4:2:0隔行颜色问题(ICP)。

 

所有DVD播放机和MPEG解码器都有这个问题(译注:ICP)。在静止的隔行扫描场景中,色度通道都很混乱。MPEG解码器无法解决这个问题,因为它无法知道场景中的哪些部分是运动的哪些部分是静止的。

 

一个能够想到的显而易见的解决办法,就是总是使用逐行扫描上采样算法。但是,这么做带来的问题比解决的问题还要多。静止场景中没有东西移动,一切看起来都很好。但是只要有东西一运动,马上就会出现奇怪的伪像。对于每一对场图像,场图像1的颜色信息就会渗漏到场图像2,反之亦然。结果就是一种奇怪的颜色信息的前后反射。对于慢速运动,表现为颜色的拖尾效应,对于快速运动,看起来其中的人和物体被分为两部分:高分辨率的亮度物体和低分辨率的色度物体。这种现象非常难以描述。在这篇文章中,我们没有提供这种现象的图像。但是,请相信我们,它即使不比颜色BUG更加令人迷惑,也至少和颜色BUG一样。

 

对于第二个问题(译注:ICP),我们可以做些什么呢?就MPEG解码器本身来说,无能为力。使用基于多抽头有限冲击响应滤波器的非常好的上采样算法,能够使这个问题看起来没那么严重,但并不能完全消除。MPEG解码器没有足够的信息来解决这个问题。但是对于去交织处理器来说,有希望。欲知后事,请继续往下读。

 

怎么办(本节适合DVD工程师阅读)

 

         正如我们所看到的,总是使用隔行扫描上采样算法,导致了基本的颜色BUG译注:CUE)。解决这个问题很简单:当progressive_frame旗标为true时,对于整个帧采用逐行算法插值。当progressive_frame旗标为false时,分别对每个场采用隔行插值算法。然而,这里有一个小问题:交替progressive_frame旗标编码问题。对于每一帧视频图像,progressive_frame旗标交替取值falsetrue,实际上,它应该对每一帧都设为true

 

         因为一家大公司的一个愚蠢的决定,导致很多视频内容存在这个问题。这家公司生产了一款非常流行的MPEG编码器,他们已经修复了这款编码器。但是,很显然,还有很多得到授权的公司在使用这款有问题的编码器,因为当前的很多high-profile DVD碟片都有这个问题,如迪斯尼公司的 "Monsters Inc." "Beauty and the Beast"

 

         忽略这个问题并把它归咎为视频发行公司的失误并不合适。首先,这不是一个真正的错误。这是一个合法的MPEG码流。(欲知详情,请参阅DVD benchmar第五部分,在那里,我们解释了为什么从本质上来说progressive_frame旗标总是任意的)。有人可能会争辩说它破坏了颜色通道,但是MPEG规范并没有要求颜色通道看起来是好的。如果视频发行公司非要把逐行内容编码为隔行内容,那是他们的选择。其次,忽略这个问题会产生让人恶心的视频图像,用户不会抱怨视频发行公司,他们会抱怨播放机,这也没错。大多数MPEG解码器都很好地解决了这个问题。

 

         旗标交替问题有两个可以辨识的特点:首先,它只出现在3-2下拉展开视频中,其次,只有当repeat_first_fieldtrue时旗标progressive_frame才设为true。基于此,下面的伪代码就展示了一个简单可行的算法,这个算法可以生成正确的上采样结果。

 

if the current frame's progressive_frame flag is "true"
use progressive upsampling
else
if the previous frame's progressive_frame AND repeat_first_field flags are "true"
use progressive upsampling
else
use interlaced upsampling

 

         如果MPEG解码器的架构设计允许在处理前一视频帧时,“预读”下一个视频帧,那么解码器就可以比较当前帧和下一帧的progressive_frame旗标,如果这两个视频帧的旗标的值是相同的且恰当的,那么就应该使用逐行上采样算法。这种“预读”是很值得的。然而,上面的伪代码逻辑只能在99%的情况下给出同样的结果。

 

         对于repeat_first_field旗标交替取值的3-2下拉展开视频,有一些解码器仅使用逐行上采样算法。对于2-2的逐行视频,这些解码器使用隔行上采样算法。我们认为这么做并不好。旗标设置正确的2-2视频比旗标设置不正确的2-2视频要多得多。我们曾经在播放机上使用逐行上采样来播放旗标不正确的2-2测试视频,画面看起来还不错。而且,如果是那样的话,我们可以把这归咎于编码器,因为虽然编码器在逐行视频中把旗标progressive_frame设为false不算错误,但在隔行视频中把旗标progressive_frame设为true,这就不对了。

 

         总之,MPEG码流中最常见的有关旗标的问题出现在旗标被设为false的地方,而不是出现在旗标被意外地设为true的地方。MPEG编码器在旗标上是非常谨慎的。

 

在去交织处理器中解决颜色问题

 

         正如上面提到的,Faroudja-designed Sage/Genesis FLI2200芯片很好地隐藏了最明显的颜色bug。它也隐藏了早前提到的4:2:0隔行视频的问题。芯片设计并没有考虑解决这两个问题,而是芯片中的两个不同的电路的副作用解决了这两个问题。首先,他们仅使用一个场的色度来生成输出的色度。这真是一个节省成本的方法,但是它在大多数情况下工作正常,因为我们的眼睛对颜色敏感度低。虽然这种方法效果不错,但我们确实不提倡使用这种方法。当视频中存在尖锐的边缘时,颜色在两个不同的场中持续地交替时,会在尖锐物体的顶部和底部产生闪烁现象,就像我们在动画卡通中看到的一样。

 

         另外,Faroudja在色度通道上使用了一个垂直低通滤波器,故意把输出的颜色垂直分辨率降低为原来的一半。这个滤波器的主要功能就是适当地消除复合视频中可能出现的伪像,这种伪像常出现在影碟和VHS中。事实上,它修复了颜色Bug,在很大程度上这种修复只是锦上添花。但是正是这种技术,比其他任何技术产生的结果都要好。

 

         垂直低通滤波器被证明是减轻颜色问题的最简单、最经济的方法。它在MPEG解码器中并没有完全恢复颜色BUG造成的破坏,因为这个原因,我们主张既要修复MPEG解码器,又要在去交织处理器中增加一个滤波器。它可以完全解决ICP问题,所有的颜色信息都来自正确的扫描线,而不是来自两个场的平滑交织。

 

         稍加思考就能证明,使用垂直低通滤波器把有效分辨率减少到240扫描线一点也不会真正伤害到颜色通道。一开始在DVD盘上的有用的颜色信息只有240条扫描线。这240条扫描线被分割为两个120条扫描线的场,这两个场分别做上采样转换为两个240条扫描线的场,转换后的场被交织为一个480条扫描线的场。在这个过程中,一些本不存在的轮廓信息被引入图像。当图像的数字采样被转换为模拟波形时(译注:D/A转换),一些高频成分会被引入(译注:奈奎斯特采样定理),产生混叠效应。在这两种情形下,伪信息需要被屏蔽掉。低通滤波器很适合这两种情况。

 

         因为人眼对颜色不敏感,所以实际上并不需要非常平滑的很多抽头的滤波器。一个系数为0.250.50.253抽头垂直模糊滤波器就很合适。当然,许多一体化的MPEG解码器都内置了非常好的有限冲击响应滤波器,那么在事后的去交织处理中再增加低通滤波器就没什么必要了。

 

         在去交织完成后才做滤波处理是很重要的,因为如果在去交织前做滤波处理,早前提到的伪像(运动物体的“鬼影”)会意外出现。需要把运动物体从场景中的静止区域分离开。很幸运,好的去交织算法正是这么做的。去交织算法会分析图像,把运动部分和静止部分区分开来,图像的运动部分使用单个场做插值(可以有效地消除运动区域的颜色问题),而图像的静止区域使用两个场交织,因此,这需要滤波处理以消除颜色问题。最后的低通滤波器会让静止部分没有什么瑕疵。对运动部分,不需要做其他的工作,因为从一开始运动部分就是从单个场插值出来的,没有什么高频的颜色细节。

 

         一些简单的去交织算法仅使用”Bob”,或者叫单场插值。这样的算法不用担心会有4:2:0条纹,因为它们永远不会把两个场的颜色“交织”在一起。当然,这些算法的去交织效果并不是很好,因为为了消除颜色伪像,付出了太大的代价(译注:图像的垂直分辨率降低为原来的一半)。

 

         另一些简单的去交织算法使用一个垂直滤波器来合并两场图像并消除合并所产生的不可避免的伪像。前边段落的一些相同的注解适用于这种方法,但值得注意的是,即使在亮度上使用一个没那么强的滤波器,他们依旧可以通过对色度通道滤波而获得一些好处,包括240条扫描线的色度通道在内。

 

结论

 

         到这里,我们已经充分地理解了4:2:0格式的颜色和解码问题。我们提供了一些特殊的技术甚至还包括一些源代码来解决这些问题。没有借口不解决这些问题,特别是现在市场上已经可以买到价格不到70美元而且没有这些BUGDVD播放机。将来,我们不再推荐那些还有这些问题的DVD播放机。我也希望将来的去交织解决方案都提供一个颜色滤波器,以解决4:2:0颜色条纹问题(Interlaced Chroma Problem – ICP。如果下一代去交织解决方案(芯片)不提供这些,我们也不再推荐它们。

        

         如果你现在使用的DVD播放机存在这个BUG,而你对重新生成正确的图像感兴趣,我们建议你联系DVD制造商,告诉他们你不满意这台DVD播放机,因为它无法通过碟片的数据位流正确地重建图像。

 

         几家MPEG解码器制造商已经修复了芯片中的BUG,这几乎完全是因为公众对这些问题的抱怨。如果播放机制造商认识到这是一个重要的问题,他们就会向芯片制造商施压,最终一定会解决这个问题。这样我们花在DVD播放机上的辛苦钱也值了。

 

         这里有一个DVD播放器的列表,它们中有的有CUE问题,有的没有这个问题。(这并不是一个详尽的列表,并且,记住,所有的DVD播放机都有ICP问题。)

        

 

         一些CUE例子

 

         下面是我们使用上面提到的软件MPEG解码器抓取到的六个例子。我们感谢Ron Economos帮我们抓取这些图像。我们修改了MPEG解码器以强制使用正确和不正确的上采样算法。如果你使用一个高分辨率的显示器(1600×1200),也许不太容易看出这些颜色错误,因为在这样的显示器上图像会显得太小了。

 

Toy Story”菜单

 

         第一个是传奇故事“Toy Story”。这个镜头正是来自于3碟套装的菜单。这个菜单实际编码为2-2。电影本身编码为3-2

 

         一共有4个特写镜头,左边的特写镜头使用了正确的上采样,右边的使用了不正确的上采样。上边的特写镜头没有使用滤波器(最差情形),下边的特写镜头使用了一个6抽头有限冲击响应滤波器(最好情形)。通过对比滤波图像和没有滤波的图像,可以看出经过滤波处理的图像的清晰度和没有做滤波处理的图像的清晰度是不同的。

 

 

Big Momma’s House

 

         我们第一次看到高清视频(1080i)颜色条纹是在HBO上观看这个电视剧。在那时,我们无法确定这是CUE还是ICP导致的。我们提及这是因为首轮放映的D-Theater带子都是4:2:0隔行编码的。这个DVD3-2编码的。

 

 

Drop Zone

 

         在这部电影中我们第一次看到颜色问题。这个DVD编码为3-2

 

Ghost World

 

         你或许会注意到图像之间到处都是细线,因为沿着红色物体的边缘,问题最容易显现。这个DVD编码为3-2,非常适合用来检查颜色问题的严重程度。

 

Monsters, Inc.

         卡通动画非常适合用来展示CUE问题,但是我们没有用“Monsters,Inc.”来展示CUE问题,因为它是动画。我使用它,是因为它是3-2编码并且还存在早期C-Cube编码器存在的progressive_frame旗标交替问题。

 

 

Moulin Rouge

 

         颜色错误在这部电影中出现的比“Toy Story”中出现的更频繁。红色夹克表明这是一个相当不错的颜色BUG 测试图。你可以看到整个图像上都是条纹,不仅仅在夹克上。夹克的问题如此严重,以至于我们的注意力都注意到夹克上了。

 

 

Last Updated: 1/1/03

"Big Momma's House" Image Copyright 2000, Fox
"Drop Zone" Image Copyright 1994, Paramount
"Ghost World" Image Copyright 2001, MGM
"Monsters, Inc." Image Copyright 2001, Pixar and Disney
"More Tales of the City" Image Copyright 1998, Showtime Networks Inc. and DVD International
"Moulin Rouge" Image Copyright 2001, Fox
"Toy Story" Images Copyright 1995, Pixar and Disney

Note: We have heard of some corporations using our articles and graphics to teach courses to their staff without authorization. Secrets articles and graphics are original and copyrighted. If you wish to use them in your business, you MUST obtain permission from us first, which involves a license. Please contact the editor.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值