MPEG-2简介及MPEG-2编解码 (5)

MPEG-2简介及MPEG-2编解码
  MPEG-2定义了三种画面压缩模式,I画面、P画面、B画面:
  I画面(Intra Coded Pictures):
  当大区块仅使用本身的画面资料进行空间的冗馀去除,并没有参考 其他画面的资料,我们称为Intra模式大区块(Intra Mode Macro-block)。在I画面中,所有的大区块皆为Intra模式大区块。I画面可以做为视讯资料流中的索引点,也是提供随机存取能力的主要来源。 I画面通常在视讯序列或画面群组的第一张,解码时I画面可独立解码,并做为P及B画面的参考影像的来源。由于不须参考其他画面,因此无法得到消除时间上冗 馀的好处,因此压缩率较差。
  P画面(Predictive Coded Pictures):
  在编码及解码时,会使用参考画面(Reference Picture),这些参考画面可为该画面前面最近的I画面或P画面。编码时,在P画面中的大区块,若能在参考画面上找到相对应的大区块,则用动态补偿方 式做预测编码(Predictive Coding);若找不到,则以Intra模式做编码。由于加入消除时间上冗馀的技术,因此其编码效率较高。
  B画面(Bi-directionally Predicted Pictures):
  在解码及编码时,会使用到前面及后面两个方向参考画面的资料。 如同 P 画面一样,编码时,在B画面中的大区块,若能在参考画面上找到相对应的大区块,则用动态补偿方式做双向预测编码(Bi-directionally Predictive Coding);若找不到,则以Intra模式做编码。B画面拥有最高的编码效率,然画质最差,故本身不再做为其他预测编码用。
  3.以资料本身冗馀为基础的压缩
  MPEG-2在以视讯的特性做了空间及时间上的冗馀压缩后,还 会再以资料本身的冗馀再做压缩。在量化完成后,MPEG-2舍弃了MPEG-1所采用的Zigzag Scan而改采Alternate Scan来将量化后二维的离散馀弦系数串接成一维的数列,以锯齿状路线处理8x8的块中的64个系数,尽量形成最大长度的连续零值,以提高压缩效率。接着 将串接起来的资料以游程编码(Run Length Coding,RLC)及可变长度编码(Variable Length Coding,VLC)处理。
  游程编码的概念就是,如果有一连串相同的值,则我们可以以标示该值及其持续长度来表示。例如有十个"A"构成一个字串,则我们可以将"AAAAAAAAAA"之描述成"A" x 10,这样就可以减少许多相同的资料存放空间。
  可变长度编码基本概念则是:越常出现的样版,就以越短的位元数 来表示之。因此可变长度编码是这样一个过程,找出资料中所有的资料样版及其出现频率,接着以较少的位元来描述较常出现的样版,用较多的位元描述不常出现的 样版。Huffman Coding就是其中一种基本的演算法。基本上游程编码及可变长度编码都是非破坏性压缩。
  4.可变位元率
  最后要提到MPEG-2不同于MPEG-1的其中一样很大的差 异,就是MPEG-2除了固定位元率(Constant Bit Rate,CBR)之外,另外提供了可变位元率(Variable Bit Rate)来调节资料速率。位元率的控制往往决定了离散馀弦系数量化的的结果。视讯的资料经过压缩后并非皆有相同的资料流量。一般说来,画面变动越大,压 缩比越小,资料流频宽需求越大;反之,画面变动越小,压缩比越大,资料流频宽需求就越小。各画面间压缩后的值并不是固定的,固定的资料速率只是个理想,实 际状况下一昧的要求固定位元率不是牺牲了影像品质(以较低流量画面为基准,较大流量的画面强制做过多的压缩)就是牺牲了容量(以较大流量画面为基准,较低 流量的画面强制做过低的压缩)。一般说来,可变位元率对于提供稳定的影像品质是个更好的选择,因为其能够根据动态画面的复杂程度,适时改变数据传输率获得 最适且一致的编码效果。

你可能感兴趣的:(算法)