MPEG2压缩编码技术原理应用.docx
《MPEG2压缩编码技术原理应用.docx》由会员分享,可在线阅读,更多相关《MPEG2压缩编码技术原理应用.docx(50页珍藏版)》请在冰豆网上搜索。
MPEG2压缩编码技术原理应用
MPEG-2压缩编码技术原理应用
MPEG是运动图像专家组(MovingPictureExpertsGroup)的简称,其实质上的名称为国际标准化组织(ISO)和国际电工委员会(IEC)联合技术委员会(JTC)1的第29分委员会的第11工作组,即ISO/IECJTC1/SC29/WG11,成立于1988年。
其任务是制定世界通用的视音频编码标准。
因为,广播电视数字化所产生的海量数据对存储容量、传输带宽、处理能力及频谱资源利用率提出了不切合实际的要求,使数字化难以实现。
为此,该专家组基于帧内图像相邻像素间及相邻行间的空间相关性和相邻帧间运动图像的时间相关性,采用压缩编码技术,将那些对人眼视觉图像和人耳听觉声音不太重要的东西及冗余成分抛弃,从而缩减了存储、传输和处理的数据量,提高了频谱资源利用率,制定了如表1所示的一系列MPEG标准,使数字化正在变为现实。
其中,MPEG-2是一组用于视音频压缩编码及其数据流格式的国际标准。
它定义了编解码技术及数据流的传输协议;制定了MPEG-2解码器之间的共同标准(MPEG-2编码器之间尚无共同标准)。
本文以MPEG-2的系统、MPEG-2的编码、及MPEG-2的应用为题,讨论MPEG-2压缩编码技术。
一、MPEG-2的系统
1.系统的定义
MPEG-2系统是将视频、音频及其它数据基本流组合成一个或多个适宜于存储或传输的数据流的规范,如图1所示。
由图1可见,符合ITU-R.601标准的、帧次序为I1B2B3P4B5B6P7B8B9I10数字视频数据和符合AES/EBU标准的数字音频数据分别通过图像编码和声音编码之后,生成次序为I1P4B2B3P7B5B6I10B8B9视频基本流(ES)和音频ES。
在视频ES中还要加入一个时间基准,即加入从视频信号中取出的27MHz时钟。
然后,再分别通过各自的数据包形成器,将相应的ES打包成打包基本流(PES)包,并由PES包构成PES。
最后,节目复用器和传输复用器分别将视频PES和音频PES组合成相应的节目流(PS)包和传输流(TS)包,并由PS包构成PS和由TS包构成TS。
显然,不允许直接传输PES,只允许传输PS和TS;PES只是PS转换为TS或TS转换为PS的中间步骤或桥梁,是MPEG数据流互换的逻辑结构,本身不能参与交换和互操作。
由系统的定义,可知MPEG-2系统的任务。
2.系统的任务
MPEG-2的标准由表2所示的8个文件组成,MPEG-2系统是其关键部分。
MPEG以开放系统互联(OSI-OpenSystemInterconnection)为目标,争取全球标准化。
在详细规定视音频编码算法的基础上,为传输和交换编码数据流(比特流,码流,流)创造统一条件。
以利于接收端重建为指导,按照既定的参数给数据流以一定程度的“包装”。
因此,MPEG-2系统应完成的任务有:
●规定以包方式传输数据的协议;
●为收发两端数据流同步创造条件;
●确定将多个数据流合并和分离(即复用和解复用)的原则;
●提供一种进行加密数据传输的可能性。
由系统的任务,可知完成任务,系统应具备的基础。
3.系统的要点
根据数字通信信息量可以逐段传输的机理,将已编码数据流在时间上以一定重复周期结构分割成不能再细分的最小信息单元,这个最小信息单元就定义为数据包,几个小数据包(DataPacket)又可以打包成大数据包(DataPack)。
用数据包传输的优点是:
网络中信息可占用不同的连接线路和简单暂存;通过数据包交织将多个数据流组合(复用)成一个新的数据流;便于解码器按照相应顺序对数据包进行灵活地整理。
从而,数据包为数据流同步和复用奠定了基础。
因此,MPEG-2系统规范不仅采用了PS、TS和PES三种数据包,而且也涉及PS和TS两种可以互相转换的数据流。
显然,以数据包形式存储和传送数据流是MPEG-2系统的要点。
为此,MPEG-2系统规范定义了三种数据包及两种数据流:
1)打包基本流(PES)
将MPEG-2压缩编码的视频基本流(ES-ElementaryStream)数据分组为包长度可变的数据包,称为打包基本流(PES-PacketizedElementaryStream)。
广而言之,PES为打包了的专用视频、音频、数据、同步、识别信息数据通道。
所谓ES,是指只包含1个信源编码器的数据流。
即ES是编码的视频数据流,或编码的音频数据流,或其它编码数据流的统称。
每个ES都由若干个存取单元(AU-AccessUnit)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成的。
将帧顺序为I1P4B2B3P7B5B6的编码ES,通过打包,就将ES变成仅含有1种性质ES的PES包,如仅含视频ES的PES包,仅含音频ES的PES包,仅含其它ES的PES包。
PES包的组成见图2。
由图2可见,1个PES包是由包头、ES特有信息和包数据3个部分组成。
由于包头和ES特有信息二者可合成1个数据头,所以可认为1个PES包是由数据头和包数据(有效载荷)两个部分组成的。
包头由起始码前缀、数据流识别及PES包长信息3部分构成。
包起始码前缀是用23个连续“0”和1个“1”构成的,用于表示有用信息种类的数据流识别,是1个8bit的整数。
由二者合成1个专用的包起始码,可用于识别数据包所属数据流(视频,音频,或其它)的性质及序号。
例如:
比特序110×××××是号码为××××的MPEG-2音频数据流;
比特序1110××××是号码为××××的MPEG-2视频数据流。
PES包长用于包长识别,表明在此字段后的字节数。
如,PES包长识别为2B,即2×8=16bit字宽,包总长为216-1=65535B,分给数据头9B(包头6B+ES特有信息3B),可变长度的包数据最大容量为65526B。
尽管PES包最大长度可达(216-1)=65535B(Byte),但在通常的情况下是组成ES的若干个AU中的由头部和编码数据两部分组成的1个AU长度。
1个AU相当于编码的1幅视频图像或1个音频帧,参见图2右上角从ES到PES的示意图。
也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。
ES特有信息是由PES包头识别标志、PES包头长信息、信息区和用于调整信息区可变包长的填充字节4部分组成的PES包控制信息。
其中,PES包头识别标志由12个部分组成:
PES加扰控制信息、PES优先级别指示、数据适配定位指示符、有否版权指示、原版或拷贝指示、有否显示时间标记(PTS-PresentationTimeStamp)/解码时间标记(DTS-DecodeTimeStamp)标志、PES包头有否基本流时钟基准(ESCR-ElementaryStreamClockReference)信息标志、PES包头有否基本流速率信息标志、有否数字存储媒体(DSM)特技方式信息标志、有否附加的拷贝信息标志、PES包头有否循环冗余校验(CRC-CyclicRedundancyCheck)信息标志、有否PES扩展标志。
有扩展标志,表明还存在其它信息。
如,在有传输误码时,通过数据包计数器,使接收端能以准确的数据恢复数据流,或借助计数器状态,识别出传输时是否有数据包丢失。
其中,有否PTS/DTS标志,是解决视音频同步显示、防止解码器输入缓存器上溢或下溢的关键所在。
因为,PTS表明显示单元出现在系统目标解码器(STD-SystemTargetDecoder)的时间,DTS表明将存取单元全部字节从STD的ES解码缓存器移走的时刻。
视频编码图像帧次序为I1P4B2B3P7B5B6I10B8B9的ES,加入PTS/DTS后,打包成一个个视频PES包。
每个PES包都有一个包头,用于定义PES内的数据内容,提供定时资料。
每个I、P、B帧的包头都有一个PTS和DTS,但PTS与DTS对B帧都是一样的,无须标出B帧的DTS。
对I帧和P帧,显示前一定要存储于视频解码器的重新排序缓存器中,经过延迟(重新排序)后再显示,一定要分别标明PTS和DTS。
例如,解码器输入的图像帧次序为I1P4B2B3P7B5B6I10B8B9,依解码器输出的帧次序,应该P4比B2、B3在先,但显示时P4一定要比B2、B3在后,即P4要在提前插入数据流中的时间标志指引下,经过缓存器重新排序,以重建编码前视频帧次序I1B2B3P4B5B6P7B8B9I10。
显然,PTS/DTS标志表明对确定事件或确定信息解码的专用时标的存在,依靠专用时标解码器,可知道该确定事件或确定信息开始解码或显示的时刻。
例如,PTS/DTS标志可用于确定编码、多路复用、解码、重建的时间。
2)节目流(PS)
将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(ProgramStream)。
PS包的结构如图3所示。
由图3可见,PS包由包头、系统头、PES包3部分构成。
包头由PS包起始码、系统时钟基准(SCR-SystemClockReference)的基本部分、SCR的扩展部分和PS复用速率4部分组成。
PS包起始码用于识别数据包所属数据流的性质及序号。
SCR的基本部分是1个33bit的数,由MPEG-1与MPEG-2兼容共用。
SCR扩展部分是1个9bit的数,由MPEG-2单独使用。
SCR是为了解决压缩编码图像同步问题产生的。
因为,I、B、P帧经过压缩编码后,各帧有不同的字节数;输入解码器的压缩编码图像的帧顺序I1P4B2B3P7B5B6I10B8B9中的P4、I10帧,需要经过重新排序缓存器延迟后,才能重建编码输入图像的帧顺序I1B2B3P4B5B6P7B8B9I10;视频ES与音频ES是以前后不同的视频与音频的比例交错传送的。
以上3条均不利于视音频同步。
所以,为解决同步问题,提出在统一系统时钟(SSTC-SingleSystemTimeClock)条件下,在PS包头插入时间标志SCR的方法。
整个42bit字宽的SCR,按照MPEG规定分布在宽为33bit的1个基础字及宽为9bit的1个扩展区中。
由于MPEG-1采用了相当于33bit字宽的90kHz的时间基准,考虑到兼容,对节目流中的SCR也只用33bit。
为了提高PAL或NTSC已编码节目再编码的精确性,MPEG-2将时间分解力由90kHz提高到27MHz光栅结构,使通过TS时标中的9bit扩展区后,精确性会更高。
具体方法是将9bit用作循环计数器,计数到300时,迅速向33bit基本区转移,同时将扩展区计数器复原,以便由基本区向扩展区转移时重新计数。
将42bit作为时间标志插入PS包头的第5到第10个字节,表明SCR字段最后1个字节离开编码器的时间。
在系统目标解码(STD-SystemTargetDecoder)输入端,通过对27MHz的统一系统时钟(SSTC)取样后提取。
显然,在编码端,STC不仅产生了表明视音频正确的显示时间PTS和解码时间DTS,而且也产生了表明STC本身瞬时值的时间标记SCR。
在解码端,应相应地使SSTC再生,并正确应用时间标志,即通过锁相环路(PLL-PhaseLockLoop),用解码时本地用SCR相位与输入的瞬时SCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时SCR调整27MHz时钟频率。
每个SCR字段的大小各不相同,其值是由复用数据流的数据率和SSTC的27MHz时钟频率确定的。
可见,采用时间标志PTS、DTS和SCR,是解决视音频同步、帧的正确显示次序、STD缓存器上溢或下溢的好方法。
PS复用速率用于指示其速率大小。
系统头由系统头起始码、系统头长度、速率界限范围、音频界限范围、各种标志指示、视频界限范围、数据流识别、STD缓存器界限标度、STD缓存器尺寸标度、(视频,音频,或数据)流识别等10个部分组成。
各种标志部分由固定标志指示、约束系统参数数据流(CSPS-ConstrainedSystemParameterStream)指示、系统音频锁定标志指示、系统视频锁定标志指示4个部分组成。
其中,CSPS是对图像尺寸、速率、运动矢量范围、数据率等系统参数的限定指示。
显然,PS的形成分两步完成:
其一是将视频ES、音频ES、其他ES分别打包成视频PES包、音频PES包、其他PES包:
使每个PES包内只能存在1种性质的ES;每个PES包的第一个AU的包头可包含PTS和DTS;每个PES包的包头都有用于区别不同性质ES的数据流识别码。
这一切,使解复用和不同ES之间同步重放成为可能。
其二是通过PS复用器将PES包复用成PS包,即将每个PES包再细分为更小的PS包。
PS包头含有从数字存储媒介(DSM-DigitalstorageMedium)进入系统解码器各个字节的解码专用时标,即预定到达时间表,它是时钟调整和缓存器管理的参数。
典型PS解码器如图4所示,图中示意了数字视频解码器输出的、符合ITU-R.601标准的视频数据帧顺序I1B2B3P4B5B6P7B8B9I10,与数字视频编码器输出的数字视频编码ES帧顺序I1P4B2B3P7B5B6I10B8B9二者之间的关系。
图中PS解复用器实际上是系统解复用器和拆包器的组合,即解复用器将MPEG-2的PS分解成一个个PES包,拆包器将PES包拆成视频ES和音频ES,最后输入各自的解码器。
系统头提供数据流的系统特定信息,包头与系统头共同构成一帧,用于将PES包数据流分割成时间上连续的PS包。
可见,一个经过MPEG-2编码的节目源是由一个或多个视频ES和音频ES构成的,由于各个ES共用1个27MHz的时钟,可保证解码端视音频的同步播出。
例如,一套电影经过MPEG-2编码,转换成1个视频ES和4个音频ES。
显然,PS包长度比较长且可变,用于无误码环境,适合于节目信息的软件处理及交互多媒体应用。
但是,PS包越长,同步越困难;在丢包时数据的重新组成,也越困难。
显然,PS用于存储(磁盘、磁带等)、演播室CD-I、MPEG-1数据流。
3)传输流(TS)
将具有共同时间基准或具有独立时间基准的一个或多个PES组合而成的单一的数据流称为传输流(TransportStream)。
TS实际是面向数字化分配媒介(有线、卫星、地面网)的传输层接口。
对具有共同时间基准的两个以上的PES先进行节目复用,然后再对相互可有独立时间基准的各个PS进行传输复用,即将每个PES再细分为更小的TS包,TS包结构如图5所示。
由图5可见,TS包由包头、自适应区和包数据3部分组成。
每个包长度为固定的188B,包头长度占4B,自适应区和包数据长度占184B。
184B为有用信息空间,用于传送已编码的视音频数据流。
当节目时钟基准(PCR-ProgramClockReference)存在时,包头还包括可变长度的自适应区,包头的长度就会大于4B。
考虑到与通信的关系,整个传输包固定长度应相当于4个ATM包。
考虑到加密是按照8B顺序加扰的,代表有用信息的自适应区和包数据的长度应该是8B的整数倍,即自适应区和包数据为23×8B=184B。
TS包的包头由如图所示的同步字节、传输误码指示符、有效载荷单元起始指示符、传输优先、包识别(PID-PacketIdentification)、传输加扰控制、自适应区控制和连续计数器8个部分组成。
其中,可用同步字节位串的自动相关特性,检测数据流中的包限制,建立包同步;传输误码指示符,是指有不能消除误码时,采用误码校正解码器可表示1bit的误码,但无法校正;有效载荷单元起始指示符,表示该数据包是否存在确定的起始信息;传输优先,是给TS包分配优先权;PID值是由用户确定的,解码器根据PID将TS上从不同ES来的TS包区别出来,以重建原来的ES;传输加扰控制,可指示数据包内容是否加扰,但包头和自适应区永远不加扰;自适应区控制,用2bit表示有否自适应区,即(01)表示有有用信息无自适应区,(10)表示无有用信息有自适应区,(11)表示有有用信息有自适应区,(00)无定义;连续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。
显然,包头对TS包具有同步、识别、检错及加密功能。
TS包自适应区由自适应区长、各种标志指示符、与插入标志有关的信息和填充数据4部分组成。
其中标志部分由间断指示符、随机存取指示符、ES优化指示符、PCR标志、接点标志、传输专用数据标志、原始PCR标志、自适应区扩展标志8个部分组成。
重要的是标志部分的PCR字段,可给编解码器的27MHz时钟提供同步资料,进行同步。
其过程是,通过PLL,用解码时本地用PCR相位与输入的瞬时PCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时PCR调整时钟频率。
因为,数字图像采用了复杂而不同的压缩编码算法,造成每幅图像的数据各不相同,使直接从压缩编码图像数据的开始部分获取时钟信息成为不可能。
为此,选择了某些(而非全部)TS包的自适应区来传送定时信息。
于是,被选中的TS包的自适应区,可用于测定包信息的控制bit和重要的控制信息。
自适应区无须伴随每个包都发送,发送多少主要由选中的TS包的传输专用时标参数决定。
标志中的随机存取指示符和接点标志,在节目变动时,为随机进入I帧压缩的数据流提供随机进入点,也为插入当地节目提供方便。
自适应区中的填充数据是由于PES包长不可能正好转为TS包的整数倍,最后的TS包保留一小部分有用容量,通过填充字节加以填补,这样可以防止缓存器下溢,保持总码率恒定不变。
4)节目特定信息(PSI)
由上述可知,1个TS包由固定的188B组成,用于传送已编码视音频数据流的有用信息占用184B空间。
但是,还需要传输节目随带信息及解释有关TS特定结构的信息(元数据),即节目特定信息(PSI-ProgramSpecificInformation)。
用于说明:
1个节目是由多少个ES组成的;1个节目是由哪些个ES组成的;在哪些个PID情况下,1个相应的解码器能找到TS中的各个数据包。
这对于由不同的数据流复用成1个合成的TS是1个决定性的条件。
为了重建原来的ES,就要追踪从不同ES来的TS包及其PID。
因此,一些映射结构(MappingMechanism),如节目源结合表(PAT)和节目源映射表(PMT)两种映射结构,会以打包的形式存在于TS上,即借助于PSI传输一串描述了各种ES的表格来实现。
MPEG认为,可用4个不同的表格作出区别:
●节目源结合表(PAT-ProgramAssociationTable):
在每个TS上都有一个PAT,用于定义节目源映射表。
用MPEG指定的PID(00)标明,通常用PID=0表示。
●条件接收表(CAT-ConditionalAccessTable):
用于准备解密数据组用的信息,如加密系统标识、存取权的分配、各个码序的发送等。
用MPEG指定的PID(01)标明,通常用PID=1表示。
●节目源映射表(PMT-ProgramMapTable):
在TS上,每个节目源都有一个对应的PMT,是借助装入PAT中节目号推导出来的。
用于定义每个在TS上的节目源(Program),即将TS上每个节目源的ES及其对应的PID信息、数据的性质、数据流之间关系列在一个表里。
解码器要知道分配节目的ES的总数,因为MPEG总共允许256个不同的描述符,其中ISO占用64个,其余由用户使用。
●网络信息表(NIT-NetworkInformationTable):
可传送网络数据和各种参数,如频带、转发信号、通道宽度等。
MPEG尚未规定,仅在节目源结合表(PAT)中保留了1个既定节目号“0”(Program-0)。
有了PAT及PMT这两种表,解码器就可以根据PID将TS上从不同的ES来的TS包分别出来。
节目特定信息(PSI)的结构,如图6所示。
根据PID将TS上从不同的ES来的TS包分别出来可分两步进行:
其一是从PID=0的PAT上找出带有PMT的那个节目源,如Program-1,或Program-2;其二是从所选择的PMT中找到组成该节目源的各个ES的PID,如从Program-1箭头所指的PMT-1中ES-2所对应的Audio-1的PID为48,或从Program-2箭头所指的PMT-2中ES-1所对应的Video的PID为16。
同样,Program-1的MAP的PID为22,ES-1所对应的Video的PID为54;Program-2的PMT-2中ES-2所对应的Audio-1的PID为81,ES-1所对应的Video的PID为16,MAP的PID为33;PAT的PID为0;CAT授权管理信息(EMM-EntitlementManagementMessage)的PID为1。
这样,就追踪到了TS上从不同的ES来的TS包及其PID,如图6所示的TS上不同ES的TS包的PID分别为48、16、22、21、54、0、16、33、1。
显然,解码器根据PID将TS上从不同的ES来的TS包分别出来的过程,也可以从图7的TS双层解复用结构图中得到解释。
要注意,MPEG-2的TS是经过节目复用和传输复用两层完成的:
在节目复用时加入了PMT;在传输复用时加入PAT。
所以,在节目解复用时,就可以得到PMT,如图7中的ES(MAP)(PMT-1)和ES(MAP)(PMT-2);在传输解复用时,就可以得到PAT,如图7中的PS-MAP。
将图6与图7对照,就可以知道解码器是如何追踪到TS上从不同的ES来的TS包及其PID的。
4.系统的复用
多个信号在同1个信道传输而不相互干扰,称为多路复用。
如果将第一层的多个多路复用器先分别进行单节目传输复用,而后再进行第二层的多节目传输复用,就形成了双层复用。
图8是系统双层复用原理图。
由图可见,编码器不仅有视频编码器和音频编码器,还有系统编码器。
第一层的每个多路单节目传输复用器输入信号有:
ITU-R.601标准数字视频,如视频帧顺序为I1B2B3P4B5B6P7B8B9I10;AES/EBU数字音频数据;节目专用信息PSI及系统时钟STC1-N等控制信号。
其中视频编码器、音频编码器和数据提供给系统编码器的是基本流ES,视频ES的帧顺序为I1P4B2B3P7B5B6I10B8B9。
经过系统编码器加入PTS及DTS,并分别打包成视频PES、音频PES,数据本身提供的就是PES。
PSI插入数据流,数据加密将有关的调用权、编码密钥通过条件收视表插入MPEG-2TS,并将传输复用器从STC导出的PCR插入相应区段。
这些视频PES、音频PES、数据PES及PSI,经过加入PID及PCR的传输复用器后,将输入基本流ES分割成传输包片段,并为每个片段配备1个数据头(Header),就形成了一系列的TS包。
然后,通过各个不同性质的数据流的数据包交织后,输出MPEG-2TS,其包含相应传输系统解码器所需要的所有数据。
这样,从第一层的N个单节目复用器输出N股MPEG-2TS,通过各自的传输链路输入第二层多路多节目传输复用器。
从N路MPEG-2TS中提取出N个PCR,从而再生出STC1-N,最后产生出N个第二层多路多节目传输复用器用的新PCR。
多节目传输复用器的任务是在分析的基础上,对多套节目复用合成,对数据包时标更新。
因为,MPEG只允许1个TS只能有1张节目源结合表PAT,多节目传输复用器需要对PSI表进行分析,以便建立对新数据流适用的PAT,修正有关数据包中的时间标志,完成时标更新。
经过第二层多节目传输复用器复用后,输出MPEG-2T