Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285311
  • 博文数量: 74
  • 博客积分: 2811
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-02 21:14
文章分类

全部博文(74)

文章存档

2011年(1)

2010年(24)

2009年(49)

我的朋友

分类:

2010-04-18 16:22:35

所谓的压缩,就是找出冗馀内容,再从资料流中除去的技术。如之前所提,MPEG-2的视讯主要是就是利用空间上及时间上冗馀资讯的消除来达到压缩的效果。图4及图5为典型的MPEG-2编解码器,以下我们将针对其中重要的压缩技巧做解说。
  1. 空间上的冗馀去除
  视讯资料的一个特性是空间冗馀。一般来说,在同一张画面上必有一些共通特性,也许是色彩上的,也许是几何上的,或是其它特征值得到的。所谓的空间冗馀去除,就是要识别出画面中重要的元素,并移除重复且较无影响的元素的动作。
  1.1 色彩取样
  跟据实验,人眼对于亮度变化较敏感而对于色度的变化相对的较不易查觉。依此实验,MPEG-2采用亮度色度的色彩表示格式,Y表示亮度值(Luminance),Cr及Cb表示色度值(Chrominance),并且从降低色度取样来减少讯号量。MPEG-2中定义了4:2:0、4:2:2及4:4:4采样格式。4:2:0表示四个Y取一个Cr一个Cb;4:2:2 表示四个Y取两个Cr两个Cb;而4:4:4表示四个Y取四个Cr四个Cb,即不做任何的采度取样减少。减少色度采样可以在尽量降低对视觉的影响下达到较大的资料缩减效果。
  1.2 离散馀弦变换
  离散馀弦变换是一个无损的,可逆的数学计算。在用于视讯压缩时,它把空间亮度采样和相应的色度采样强度资料转化为空间频率资料。在MPEG-2的视讯压缩中,找出存在于视讯中的每张画面里的空间冗馀,就是以将图切成8x8的区块(Block)后做离散馀弦变换来完成的。区块的色彩值转换后的离散馀弦变换系数依然是一个8x8的矩阵,左上角的系数称为DC系数,其馀称为AC系数。DC系数往下代表着逐渐增高的垂直空间频率系数,往右代表看逐渐增高的水平空间频率系数,其他系数则代表垂直水平空间频率的不同组合。由于图像的自然属性,一个画面中通常不会有很密集且大的波动,因此离散馀弦变换经常使代表较高空间频率的离散馀弦变换系数的值很小,甚至为零。基本上,离散馀弦变换并不能减少数据量,但是却可以将资料转成较易找寻冗馀的表达型式。
  1.3 量化
  除了在4:2:2或4:2:0的色彩采样过程中丢失了有限数量的资讯以外,MPEG-2的压缩能力来自对离散馀弦变换系数灵活的量化过程。简单地讲,量化(Quantization)就是减少描述各系数的位元数的过程,亦即将各系数以较粗糙的度量单位描述之。量化的动作主要有两个功能:一是让原已很接近零的值尽量变成零,另外则是使得原来非零的系数分布范围变小,有助于压缩。量化是一种破坏性压缩技巧,量化后的资料再还原时与原来的资料不会全然相同,因此视讯压缩后失真的程度,主要便取决于量化位阶 (Quantization Scale)的选取。由于人视觉上的特性,高空间频率的讯号往往不易察觉其变化,因此用较大的位阶表示甚至忽略之,对人眼来说亦不会造成多大的差异。
  2. 时间上的冗馀去除
  视讯资料的另一个特性是时间上的冗馀。一般播放的视讯,其实只是一连串连续的图像序列,然而因为人类视觉的视觉暂留现象,所以会有连贯影像的错觉。而此种视讯因为画面间时间间隔甚小,因此相临的画面几无差异,大多只是图像内容的位置变化。因为有此现象产生,所以我们可以利用除去在时间轴上画面与画面的相似性造成的冗馀来进行压缩。
  2.1动态补偿
  动态补偿(Motion Compensation,MC)便是基于上述概念所发展出来的一种视讯压缩技巧。在做动态补偿之前,首先将画面分为16x16的大区块(Macro- block,MB),然后找寻其在参考画面(Reference Picture)中近似的大区块所在位置,并将由目标大区块到参考大区块间位置的座标差记录成动态向量(Motion Vector)。参考画面在该画面之前,称为向前预测(Forward Prediction);参考画面在该画面之后,称为向后预测(Backward Prediction);而参考画面在该画面前后都有,称为双向预测(Bi-directionally Prediction)。而整个找寻动态向量的过程称为动态估计(Motion Estimation),常见的有区块匹配法(Block Match Method)及递回法(Recursive Method)。
  另外,因为预测可能不是最佳匹配且目标大区块与参考大区块间不一定完全一致,因此还要计算目标大区块与参考大区块间画面讯号的差值,称为预测误差(Prediction Error),用以在解码时做补偿之用。最后预测误差再以空间的冗馀去除的压缩法处理之。
  2.2 画面压缩
  要探讨如何压缩MPEG-2的视讯之前,首先来看看MPEG-2的视讯资料结构,由下而上依序为:
  1. 区块(Block):包含量化后的画面资料,由8x8的像素所组成,是离散馀弦转换的最小单位。
  2. 大区块(Macroblock):为一个16 x 16的大区块,是色彩取样、动态估计及动态补偿的基本单位。
  3. 片段(Slice):由数个大区块(Macro-block)所组成,主要将每张画面作水平且固定单位的切割。片段以上的各种结构都有讯号同步及错误控制能力。
  4. 画面(Picture):由数个片段(Slice)所组成,为最主要的编码单位,主要有三种影像编码的型态 I、P、B,稍后会有详细叙述。
  5. 画面群组(Group of Pictures,GOP):由一张 I 画面及数张 P 及 B 画面所组成。在MPEG-2中,画面群组的总长及P画面张数是可以动态调整的。
  6. 视讯序列(Video Sequence):由数个画面或画面群组所组成,然而一部影片可以只由一个视讯序列组成,也可以由数个视讯序列所组成。
 
阅读(798) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~