一种MPEG-2基本流合成节目流的算法(1)
2014-08-06 01:11
导读:计算机应用论文论文,一种MPEG-2基本流合成节目流的算法(1)怎么写,格式要求,写法技巧,科教论文网展示的这篇文章是很好的参考:
摘要 本文从MPEG-2的视频基本流(ES-Elementary Stream)的层次讨论了
摘要 本文从MPEG-2的视频基本流(ES-Elementary Stream)的层次讨论了MPEG-2节目流(PS-Program Stream)的合成。在分析了MPEG-2码流的时间信息在音视频同步的作用后,提出了一种ES到PS包过程中时间信息的重建算法。同时,将打包后的数据包复用成完整的节目数据流。关键字 同步;系统参考时钟;显示时间标签;解码时间标签;复用1 前言 随着数字电视技术日趋成熟,我国
广播电视的数字化进程已经制定出了详细的时间表。当前广播电视主要通过有线电视网络的覆盖对城镇、乡进行广播。虽然传播中的信道编码具备多样性,但是广播电视的信源普遍采用MPEG-2国际标准处理的节目流(PS)方式。
MPEG-2是一个框架性的标准,并没有规定系统复用的具体细节,所以基本流复用成节目流的方式不是唯一的。基于软件和硬件的实现方法都是可取的。本文通过分析MPEG-2码流结构,在ES合成PS过程中,提出了重建PES的时间信息、重建PS的时间信息和PES交织复用的一系列算法。保证了将基本流规范地复用成节目流。2 MPEG-2码流结构 MPEG-2的系统规范定义了三种数据包(PES、PS和TS)及两种数据流(PS和TS)。将具有共同时间基准的打包基本流(PES-Packetized Elementary Stream)复用而成的单一的数据流称为节目流(PS-Program Stream)。 视频基本码流(ES-Elementary Stream)是指只包含1个信源编码器的数据流。每个ES都由若干个视频(包括I、P、或B帧)或者音频存储单元(AU-Access Unit)组成。每个AU包含了头部和编码数据两个部分。ES分组为PES之后,每个PES包是由包头、ES特有信息和包数据3个部分组成。ES到PES包的示意图见图1。

PES包头由起始码前缀、数据流识别及PES包长信息3部分构成。包起始码前缀是用23个连续“0”和1个“1”构成的;表示有用信息种类的数据流识别,是1个8bit的整数。由二者合成1个专用的包起始码,可用于识别数据包所属数据流(视频,音频,或其它)的性质及序号。包头和ES特有信息二者可合成1个数据头,包括时间信息预定显示时间PTS和解码时间DTS。PES流的包是可以任意长度的,甚至可以是整个序列的长度。 PES进一步可以打成PS包或者TS包,形成节目流或传输流。这一特点决定了节目流PS和传输流TS之间是可以相互转换的。PS包由包头、系统头、PES包3部分构成。其中PS包头由PS包起始码、系统时钟基准(SCR-System Clock Reference)的基本部分、SCR扩展部分和PS复用码率4部分组成(见图2)。

一个完整的PS流应该包括三个部分:第一部分是节目流的头一个PS包,其中包含了PS包包头、系统头以及填充字节;第二部分是数目不等的含音视频数据的PS包。第三部分则是PS的结束标记,用32位字段来标示(0x000001B9)。PS包的长度可以根据需要设定,常见长度为2048字节。但是,PS包的长度最大值必须小于播放时间达到0.7s的数据量。3 算法分析和实现 在ES数据复用形成PS过程中,有ES、PES分组、PS三个层次,每种数据包都包含与时间相关信息。ES中有temporal_reference等;PES中有显示时间标签PTS和解码时间标签DTS;而PS层中有系统参考时钟SCR。码流复用过程中的一个关键技术就是从下一级的码流中或者下一级码流的编解码时序中获得的信息来形成上一级码流的时间同步信息。3.1 PES时间信息重建 在视频ES中,与时间信息或同步相关的是frame_rate_code、vbv_delay、temporal_reference和picture_coding_type等字段。frame_rate_code在视频基本码流的sequence_header()中,长度为4bit,表示视频序列帧速率;vbv_delay在视频基本码流的picture_header()中,长度为16bit,在播放开始时设置解码器缓冲区的初始分配;temporal_reference也在picture_header()中,长度为10bit,表示编码时图像输入的顺序;picture_coding_type在picture_header()中,长度3bit,表示编码图像帧的类型,对同步和计算PTS、DTS都起重要作用。 音频ES则可以通过分析音频帧标题中的layer,sampling_frequency等字段计算获得时间同步信息。3.1.1 视频PES时间信息的重建 PES分组的时间同步信息是PTS和DTS。PTS(presentation_time_stamp)长33bit,表示此分组的第一个访问单元在系统目标解码器中的预定显示时间;DTS(decoding_time_stamp)长度也是33bit,表示此分组的第一个访问单元在系统目标解码器中的预定解码时间。PTS和DTS值都是以90KHz时钟周期作为计数值。 PTS和DTS除了作为解码器在解码器中的显示和解码时间之外,PTS还是音视频交织时的同步判断依据。在交织音视频的PS包的时候,音视频PTS的差值小于一定范围(一般是0.1s视频对应的帧历时),就认为音视频同步。 在MPEG-2标准的视频序列中,帧编码的顺序和解码后显示的顺序是不一样的。比如,在一个编码后生成的帧次序为I1P4B2B3P7B5B6I10B8B9的视频基本流中,解码时的显示顺序就是序列中的数字序号,我们可以从共2页: 1 [2] 下一页 论文出处(作者):