Chinaunix首页 | 论坛 | 博客
  • 博客访问: 713128
  • 博文数量: 192
  • 博客积分: 2653
  • 博客等级: 少校
  • 技术积分: 1623
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 18:25
个人简介

How tough life is, how strong you should be!

文章分类

全部博文(192)

文章存档

2015年(1)

2014年(2)

2013年(37)

2012年(152)

分类: LINUX

2013-01-08 17:03:43

转载地址:http://blog.csdn.net/wl_haanel/article/details/4854666

MPEG-2的编码

    编码是MPEG-2标准的核心内容之一,其涉及到MPEG-2视频流层结构、MPEG-2帧间编码结构、MPEG-2的类与级、MPEG-2运动估值等技术。

1. MPEG-2视频流层结构

    为了便利于误码处理、随机搜索及编辑,MPEG-2用句法定义了1个层次性结构,用于表示视频编码数据。MPEG-2具体的视频流层结构如图10所示:将MPEG-2视频流分为图像序列层(VSL-Video Sequence Layer)、图像组层 (GOPL-Group of Pictures Layer)、图像层(PL-Picture Layer)、宏块条层(SL-Slice Layer)、宏块层(ML-Macroblock Layer)、块层(BL-Block Layer)共6个部分,每层都有确定的功能与其对应。

1) 图像序列层(VSL)

    VSL是由数据头及一系列图像组(GOP)组成的视频数据包,具体是指一整个要处理的连续图像。用于定义整个视频序列结构,可采用逐行或隔行两种扫描方式。其中,数据头给出了有关图像水平大小、垂直大小、宽高比、帧速率、码率、视频缓存校验器的大小、量化矩阵、层号(Layer-id)、分级法(Scalable mode)等,为解码提供了重要依据。

2) 图像组层(GOPL)

    GOPL是图像序列层中若干图像组的1组图像,由数据头和若干幅图像组成,用于支持解码过程中的随机存取功能。图像分组是从有利于随机存取及编辑出发的,不是MPEG-2结构组成的必要条件,可在分组与否之间灵活选择。其中,数据头给出了图像编码类型、码表选择、图像组头部开始码、视频磁带记录时间及控制码、涉及B帧处理的closed GOP、broken link。为了给编辑数据流提供接入点,第1个总是I帧。

3)图像层(PL)

    PL由数据头和1帧图像数据组成,是图像组层若干幅图像中的1幅,包含了1幅图像的全部编码信息。MPEG-2图像扫描可有逐行或隔行两种方式:当为逐行时,图像为逐帧压缩;当为隔行时,图像为逐场或逐帧压缩,即在运动多的场景采用逐场压缩,在运动少的场景采用逐帧压缩。

    因为,从整个帧中去除的空间冗余度比从个别场中去除得多。其中,数据头提供的基本部分有头起始码、图像编号的时间基准、图像(I,B,P)帧类型、视频缓存检验器延迟时间等,扩展部分有图像编码扩展、图像显示扩展、图像空间分级扩展、图像时间分级扩展等。其中,基本部分由MPEG-1及MPEG-2共用,扩展部分由MPEG-2专用。

    一幅视频图像是由亮度取样值和色度取样值组成的,而亮度与色度样值比例的大小是由取样频率之比决定的。在MPEG-2中,亮度与色度之间的比例格式有4:2:0(或4:0:2)、4:2:2、4:4:4三种。

4) 宏块条层(SL)

    SL由附加数据和一系列宏块组成,其最小长度 = 1个宏块,当长度 = 图像宽度时,就成了MPEG-2层面中最大宏块条长度。为了隐匿误差,提高图像质量,将图像数据分成由若干个宏块或宏块条组成的一条条位串。一旦某宏块条发生误差,解码器可跳过此宏块条至下一宏块条的位置,使下一宏块条不受有误差而无法纠正的宏块条的影响,一个位串中的宏块条越多,隐匿误差性能就越好。为此,附加数据部分定义了宏块条在整个图像中的位置、默认的全局量化参数、变量优先切换点(PBP-Priority Break Point)。其中,PBP用于指明数据流在何处分开,解码器要在两个数据流的恰当点处切换,以保证读取完整、正确的解码信息,确保解码完整无误。注意,在离散余弦反变换(IDCT-Inverse Discrete Cosine Transform)时,SL可提供重新同步功能。

5) 宏块层(ML)

    ML是宏块条层中一系列宏块中的1块,由附加数据、亮度块和色度块共同组成。其中,亮度为16×16像素块,称为宏块。宏块是码率压缩中运动补偿的基本单元,由4个8×8像素块构成,用于消除P图像与B图像之间的时间冗余度。色度块由多少个8×8像素块构成,取决于亮度与色度之间取样频率的比例格式。如MPEG-2有4:2:0、4:2:2、4:4:4三种宏块结构,取样结构如图11所示。图中4:2:0是由4个8×8亮度(Y)像素块、2个8×8红色(Cr)像素块及0个8×8兰色(Cb)像素块构成的,或4:0::2是由4个8×8亮度(Y)像素块、0个8×8红色(Cr)像素块及2个8×8兰色(Cb)像素块构成的,4:2:0与4:0:2是交替进行的,使垂直分解力降低(类似4:1:1使水平分解力降低),只含有1/4的色度信息。4:2:2是由4个8×8亮度(Y)像素块、2个8×8红色(Cr)像素块及2个8×8兰色(Cb)像素块构成的,只含有1/2的色度信息。4:4:4是由4个8×8亮度(Y)像素块、4个8×8红色(Cr)像素块及4个8×8兰色(Cb)像素块构成的,是全频宽YCrCb视频。宏块层ML包含P帧及B帧的运动矢量(MV-Motion Vectors)。附加数据包含的信息有:表明宏块在宏块条层中位置的宏块地址、说明宏块编码方法及内容的宏块类型、宏块量化参数、区别运动矢量类型及大小、表明以场离散余弦变换(DCT- Discrete Cosine Transform)还是以帧DCT进行编码的DCT类型。

6) 块层(BL)

    BL是只包含1种类型像素的8×8像素块,即是单一的8×8亮度(Y)像素块,或是单一的8×8红色(Cr)像素块,或是单一的8×8兰色(Cb)像素块。它是提供DCT系数的最小单元,即其功能是传送直流分量系数和交流分量系数。若需要对宏块进行DCT,也要先将宏块分成像素块后再进行。

2. MPEG-2帧间编码结构

    为了在高效压缩编码的条件下、获得可随机存取的高压缩比、高质量图像,MPEG定义了I、P、B三种图像格式,分别简称为帧内图(Intra Picture)、预测图(Predicted Picture)及双向图(Bidirec tional Picture),即I图、P图及B图,用于表示1/30s时间间隔的帧序列画面。因为,要满足随机存取的要求,仅利用I图本身信息进行帧内编码就可以了;要满足高压缩比和高质量图像的要求,单靠I图帧内编码还不行,还要加上由P图和B图参与的帧间编码,以及块匹配运动补偿预测,即用前一帧图像预测当前图像的因果预测和用后一帧图像预测当前图像的内插预测。这就要求帧内编码与帧间编码平衡,因果预测与内插预测间的平衡。平衡的结果是随机存取的高压缩比、高质量图像的统一。图12是MPEG-2帧间编码结构图,其中:

1) 帧内编码图(ICP)

    I图为不要基准图像编码作为基准所产生的图像,称为帧内编码图(ICP-Intra Coded Pictures)。特点是:数据量最大;帧内中等程度压缩;无运动预测,可采用自相关性,即帧内相邻像素、相邻行的亮度、色度信号都具有渐变的空间相关性,可作静止图像处理,无条件传送;图像可随机进入压缩图像数据序列,进行编码。

2) 预测编码图(PCP)

    P图是以最近的上一个I图或P图为基准进行运动补偿预测所产生的图像,称为预测编码图(PCP-Predictive Coded Pictures)。P图的特点是:本身是前I图或P图的前向预测(FP-Forward Prediction)结果,也是产生下一个P图的基准图像;高编码效率,与I图相较,可提供更大的压缩比;前一个P图是下一个P图补偿预测的基准,如果前者存在误码,则后者会将编码误差积累起来、传播下去。

3) 双向预测编码图(BPCP)

    目前对B图有两种趋同的理解:其一,B图是同时以前面的I图或P图和后面的P图或I图为基准进行运动补偿预测所产生的图像,称为双向预测编码图(BPCP-Bidirectional Predictive Coded Picture)。前面的I图或P图代表“过去信息”,后面的P图或I图代表“未来信息”,由于同时使用了“过去”和“未来”两种信息,所以称为双向预测。其二,由于帧序列相邻帧画面间的运动部分具有连续到时间相关性,可将当前画面看成是前一画面某一时刻图像的位移,当然位移方向及幅值在帧内各处未必相同,只要用前面最近时刻的I图或P图及代表运动的位移信息,便可预测出当前图像,称为前向预测(FP)。根据某时刻的图像及反映位移信息的运动矢量,预测出某时刻以前的图像,以便预测出前一帧中没有显露而现在出现的信息,称为后向预测(BP-Backword Prediction)。B图是将前向预测(FP)与后向预测(BP)同时使用并取其平均值后所产生的图像,称为双向预测图或平均值预测图。

    由图12可见,一个GOP由I为起始的一串IBP帧组成,GOP的长度是前一个I帧到下一个I帧之前的B帧之间的间隔,如I1B2B3P4B5B6P7B8B9I10中从I1到B9就是GOP的长度。GOP越长,MPEG-2编码越有效,而数据流的编辑及组接越困难。一般,最多由12帧组成。基准帧重复频率的不同,可提供不同的输出码率。GOP的结构随码率变化而不同,如码率大于40Mbps时,帧重复方式为只有I帧,GOP最短,具有高效率的优点;码率为15-40Mbps时,帧重复方式为IB,GOP较短;码率小于15 Mbps时,帧重复方式为IBP或IBBP,GOP较长,有延迟,影响存取速度。总之,图像质量随着码率10-50 Mbps的升高而提高,随着帧重复方式I-IB-IBBP使GOP变长而增长。尽管帧重复方式可以是IP,IB,IBP,IBBP,甚至是只有I帧,但针对不同的应用及码率,有不同的GOP结构:新闻编采,码率18Mbps,采用IB帧的GOP结构;节目分配,码率20Mbps,采用IBBP帧的GOP结构;存档,码率30Mbps,采用IB帧的GOP结构:后期制作,码率50Mbps,采用I帧GOP结构。图13表示了GOP与图像质量的关系及应用,图中编码规则是:I帧4:2:2 @ ML MPEG速率为40-50Mbps;IBIBIB序列速率为25-30Mbps;长GOPIBP序列速率为12-18 Mbps。

    系统对B帧像素不编码、不传送、不作为预测基准。仅在解码时,用双向预测的插值法建立,如I1与P4之间的B2、B3帧由I1和P4加权内插而建立。B帧像素块数据中,仅携带着为每个像素块设置的“运动矢量”。

阅读(3066) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~