PES, ES_yeaha1_新浪博客
ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。PES包由包头和payload组成.

PES层,主要是在PES包头信息中加入PTS(显示时间标签)DTS(解码时间标签)用于视频、音频同步。其实,Mpeg-2用于视音频同步以及系统时钟恢复的时间标签分别在ESPESTS3个层次中。在ES层,与同步有关的主要是视频缓冲验证VBVVideo Buffer Verifier),用以防止解码器的缓冲器出现上溢或下溢;在PES层,主要是在PES头信息里出现的显示时间标签PTSPresentation Time Stamp)和解码时间标签DTSDecoding Time Stamp);在TS层中,TS头信息包含了节目时钟参考PCRProgram Clock Reference),用于恢复出与编码端一致的系统时序时钟STCSystem Time Clock)。

基本流程如下:首先MPEG-2压缩编码得到的ES基本流,这个数据流很大,并且只是IPB的这些视频帧或音频取样信息,然后加入一些同步信息,打包成长度可变长度的数据包PES,原来是流的格式,现在成了数据包的分割形式。同时要注意的是,ES是只包含一种内容的数据流,如只含视频,或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频ESPES,只含音频ESPES等。可以知道,ES是编码视频数据流或音频数据流,每个ES都由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成,1AU相当于编码的1幅视频图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。PEG-2对视频的压缩产生I帧、P帧、B帧。把帧顺序I1,P4,B2,B3,P7,B5,B6帧的编码ES,通过打包并在每个帧中插入 PTS/DTS标志,变成PES。在插入PTS/DTS标志时,由于在BPTSDTS相等,所以无须在B帧多插入DTS。而对于I P帧,由于经过复用后数据包的顺序会发生变化,显示前一定要存储于视频解码器的从新排序缓存器中,经过从新排序后再显示,所以一定要同时插入PTS DTS作为从新排序的依据。

其中,有否PTS/DTS标志,是解决视音频同步显示、防止解码器输入缓存器上溢或下溢的关键所在。PTS表明显示单元出现在系统目标解码器(STD- System Target Decoder)的时间DTS表明将存取单元全部字节从STDES解码缓存器移走的时刻。视频编码图像帧次序为 I1,P4,B2,B3,P7,B5,B6,I10,B8,B9ES,加入PTS/DTS后,打包成一个个视频PES包。每个PES包都有一个包头,用于定义PES内的数据内容,提供定时资料。每个IPB帧的包头都有一个PTSDTS,但PTSDTSB帧都是一样的,无须标出B帧的DTS。对I帧和P帧,显示前一定要存储于视频解码器的重新排序缓存器中,经过延迟(重新排序)后再显示,一定要分别标明PTSDTS。例如,解码器输入的图像帧次序为I1,P4,B2,B3,P7,B5,B6,I10,B8,B9,依解码器输出的帧次序,应该P4B2B3在先,但显示时P4一定要比B2B3在后,即P4要在提前插入数据流中的时间标志指引下,经过缓存器重新排序,以重建编码前视频帧次序I1,B2,B3,P4,B5,B6,P7,B8,B9,I10。显然,PTS/DTS标志表明对确定事件或确定信息解码的专用时标的存在,依靠专用时标解码器,可知道该确定事件或确定信息开始解码或显示的时刻。例如,PTS/DTS标志可用于确定编码、多路复用、解码、重建的时间。
已投稿到:
郑重声明:资讯 【PES, ES_yeaha1_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——