【技术文章】

揭穿MPEG的4个神话
AI Kovalick
本文作者AI Kovalick先生,品尼高系统公司首席技术官。
MPEG概述
  MPEG的优点有很多。由于结合了空间压缩及时间压缩技术,与M-JPEG或类似的I帧结构的压缩格式相比,MPEG可节省2.5倍的带宽和存储容量。存储量节省150%十分重要,可以为存档及在线查询节约一笔存储费用。同时,压缩速率降低也很重要。必须强调的是,无论用局域网或用广域网在设备间传递MPEG信号,都可节约大约150%的带宽资源,且与同类其它压缩技术相比,存取时读写速率可降低150%左右。实际上,MPEG在有关领域中起着重要的作用。这些对比是从现实中数据率为10Mb/s的MPEG应用实例得来的。对应的I帧结构压缩速率约为25Mb/s,很多用户将MPEG的压缩速率设定为8Mb/s,这样可节约200%的带宽资源。
  MPEG的另一大优点体现在其灵活性方面,其应用范围很广。
  为了节约带宽资源,MPEG采用了一种所谓的IBP图像组(即GOP)结构。引入B帧、P帧及I帧,可有效地节省带宽资源。然而,使用时间压缩技术对编辑素材更具有挑战性,但正如我们所看到的,并非不能实现。一种典型的15帧IBP序列的GOP长度为: IBBPBBPBBPBBPBB|IBBPBBPB BPBBPBB | ...
  当然,在选择I、IB或IBP GOP序列时有折衷。图1显示了已正式发表的MPEG测试结果。一个好的实际质量“明亮”的编码规则是:I帧4:2:2@ ML MPEG速率为40~ 50Mb/s; IBIBIB序列速率为25~30Mb/s;长GOP IBP序列速率为12~18Mb/s。
揭开关于MPEG的4个神话
  神话 1:MPEG视频质量会随帧结构不同而不同,因为并非所有的帧都是I帧。
  事实是:MPEG编码器根据速率控制算法来配置输出比特,它尽可能留出时空冗余。按照10I:4P:1B的近似比例,B和P帧分配到较少的比特位。P和B帧结构变小是因为去掉了时间冗余,而不是由于对取样的更大量化。尽管实际中所有帧的质量大致相同,但对于这一通则有例外。
  当场景的变化与I帧不一致时,编码器就无法查出时间(帧内)冗余,它必须对后面的B和P帧进行编码,作为一个有效的I帧。MPEG考虑到编码器对场景变化情况下的I帧专门进行编码。有些编码器是这样编码的。如果编码器选择不对一明确的I帧进行编码,那么就用“帧内”图像信息对后面的B或P帧有效地加载。这种方法不如始于一个新的I帧效果好,但实际上即使对于最难压缩的异常场景,它也能奏效。
  神话 2:只有I 帧的MPEG与M-JPEG一样。
  事实是:MPEG是一个名符其实的国际标准;而M-JPEG是一个特别的方法,不同制造厂家的M-JPEG服务器和编辑器使用的压缩方法也不同。采用MPEG,可保证那些支持MPEG的不同设备之间实现资源共享。同时,MPEG具有固有的音频和视频复用及精确的同步;而对于M-JPEG,音频支持却是后面考虑的事。为了得到更广泛的应用,MPEG支持加载压缩(包括AC3)及无压缩音频。
  另一个优点在只有I帧的MPEG的实际编码效率方面。由于MPEG采用了宏数据块量化方法,使用更有效的方法对视频帧进行压缩。这种在量化系数上改进的控制方法,与相同观看质量的M-JPEG相比,可使压缩速率减小大约10~25%。而且,在M-JPEG中,每一个宏数据块的DC因子(宏数据块的平均亮度)都以8b的精确度来确定;而对于MPEG-2,DC因子的精确度被定到10b,这就大大改善了某些图像的视频效果。
  神话3:权威人士说:“MPEG不可以被编辑”。
  事实是:实际上,权威人士从来没有这么说。MPEG很难被编辑吗?是的。那么,完全不可能吗?非也。
  首先,对MPEG进行编辑意味着什么?为讨论这一点,我们着重于从任意帧到任意帧的只有剪辑的操作,而不管I、B或P入点/出点帧结构。只有I帧的编辑相对容易,几年前就在服务器和非线性编辑机上做到了。使用只有I帧的技术,每一帧的比特数都相同;每帧以25Mb/s 的速率编码,信息达125kB(25帧素材)。它不同于IBP MPEG。由于在时间压缩上的优势,每一帧的比特数都不同。为获得恒定的编码码率,编码器通常是通过保持一个GOP具有恒定的比特数。因此,一个10Mb/s编码的MPEG片断将允许一个15帧长的GOP(30帧素材)为5Mb。MPEG标准并没有这样要求,但它已成为一种惯例。
  为什么说每帧比特是一个重要特性?MPEG编码器根据假设的MPEG解码器的输入缓存是否已满,并通过控制每帧码率的分配而完成其神奇的编码。决不允许解码器输入缓存溢出或下溢。如果在两个MPEG源之间作一帧剪辑,并且未考虑接收器的缓存已满,在完成这个剪辑后,几乎不会有缓存电平问题。
  此外,MPEG流有固有的记忆,由于I和B帧的参考特性,信号源间的任何剪辑都将使后续的几帧无效。有可能实现只进和只出I固定帧的剪辑,且可以避免大多数问题。遗憾的是,这种方法还有一些缺陷,实际中并没有采用。
  那么,怎么才能对MPEG进行编辑呢?惠普公司提出了几种基于服务器的解决方法,用于任意帧到任意帧的剪辑,称之为HP CleanCut MPEG。CleanCut克服了上述所有问题,采用这种方法,Pinnacle公司的MediaStream服务器可以输出任意连续的视频片断,而与存储的I、B和P帧的特性无关。剪辑时,不会有视频质量的损失。从片断1#的任意I、B、P剪接至片断2#的任意I、B、P,在剪辑点不会有质量下降,如图2示。
  如果说使用了技巧,那就是采用了2个解码器作为服务器输出数据块的一部分,而不是一个解码器。当其中一个解码器用作输出源时,另一个则处于待命模式。解码器待命为下一个剪辑做好准备,并对必要的帧进行解码,直到对所期望的起始帧解码为止。在无压缩领域利用视频切换,可实现片断间所希望的帧精确度的真正剪辑。一旦有效解码器断开,它将变成下一剪辑的待命解码器。自然,音频组件的切换也很好,不会有砰声或喀呖声。
  这种方法看似简单,由于复杂的同步问题,实施起来并不容易。自从3年前MediaStream服务器问世以来,Pinnacle一直采用这种方法。这是一种以服务器为中心的拼接剪辑的方法。
  神话4:较高编码码率总会带来视频质量的提高。
  事实是:这种说法不总是对的。对于MPEG,现有几种不同的分辨力规范,最通用的是所谓的ML@MP 4:2:0色度取样格式。大家都熟悉4:2:2规范,其分解力也被用来定义一种正式的MPEG分解力,称之为422 @ML。 4:2:0 MPEG-2和4:2:2 MPEG-2有什么不同?4:2:0 MPEG在真正MPEG压缩之前,以2:1的比例对4:2:2格式进行色度取样。在实际测试条件下,经过大约4个压缩周期,这两者间的差异很难察觉。众所周知,眼睛对亮度信息比对色度信息更敏感,因此在经过开始几个编解码过程后,4:2:0格式看上去实际上与4:2:2格式差不多。在很多应用场合,尤其是播出分配,这完全得到了认可。很多世界级的广播公司通常在黄金广播时段选用4:2:0格式。
  如果分配给4:2:2与4:2:0的亮度的比特相等,这两种格式则真正相同。这是为什么呢?当对4:2:2或4:2:0进行编码时,必须给色度和亮度分配比特。如果色度信息需要更多的比特进行编码(如4:2:2格式),且其它因素都相同,那么对于4:2:2情形,亮度信息分配到的比特较少。在亮度分解力相同的情况下,4:2:2时所需比特数比4:2:0时大约多30%。因此,以4:2:0 10Mb/s编码的一段内容,与以4:2:2 13Mb/s编码的同一段内容质量相当。
  如图1所示,MPEG的码率及其图像质量在很大程度上取决于GOP的结构。这是国际MPEG委员会对不易编辑的素材进行主观测试后得出的结论。实际测试结果可以在ISO/IEC MPEG422 Standard, Annex for Video Tests, 1/1996. N1178报告中找到。
该测试报告证实了以下几点:
  (1)与经过数次编码的无压缩素材相比,以20Mb/s编码、全长GOP格式的素材是透明的。 甚至经过8次编码和2次空间变换后,大多数观众都认为图像与最初的图像几乎一致。
  (2)30Mb/s的IB,甚至经过8次编码和2次空间变换后,与未压缩的素材之间也很难区分。
此测试结果证实了我们多年来在视频服务器方面操作经验:
  
(1)多数用户预计有1~3次编码损失(不是8次),对于4:2:2格式,以12~ 14Mb/s的码率对原始素材进行编码。 在4:2:0格式时,多数用户选用8~11Mb/s的码率进行编码。
  (2)以16Mb/s以上的码率编码会浪费存储空间。
  (3)为获得“透明的”质量,以15Mb/s的码率、按长GOP IBP编码是一种非常有效的方法。
  (4)以50Mb/s码率、只有I帧模式的编码方式,对于分配和馈送应用场合都不实用。只有I帧格式适用于编辑环境。
结论
  当然,MPEG使用复杂的技术对视频进行编码。幸运的是,它经过了成千上万次实际测试,证明是一种世界级压缩方案。但是,正是因为MPEG很复杂,它也容易引起误解。本文就是为了澄清人们对MPEG的一些误解。应当相信,MPEG是一种强效的压缩方法,甚至可应用于要求很高的视频分配和馈送场合

 

来源:《世界广播电视》