【MPEG-2基本流合成节目流的算法】 MPEG-2是一种国际标准,用于数字视频和音频压缩,广泛应用于数字电视、DVD等领域。在MPEG-2编码中,视频和音频信息被处理成基本流(Elementary Stream,ES),然后通过复用形成节目流(Program Stream,PS)或传输流(Transport Stream,TS)。本文主要关注从ES到PS的转换过程,并介绍了一种时间信息重建算法,以确保音视频同步。 在MPEG-2码流结构中,ES由单个信源编码器产生,包含视频帧(I、P、B帧)或音频访问单元(Access Unit,AU)。每个AU由头部和编码数据组成。为了便于复用,ES被分组为PES包(Packetized Elementary Stream),每个PES包由包头、ES特定信息和包数据组成。PES包头的起始码前缀、数据流识别和包长信息有助于识别数据包的类型和顺序。关键的时间信息,如PTS(Presentation Time Stamp)和DTS(Decoding Time Stamp),存储在PES包的数据头中,用于音视频同步。 PES包可以进一步打包成PS包,形成节目流。PS包由包头、系统头和PES包构成,其中PS包头包括PS包起始码、系统时钟参考(SCR)和复用码率信息。系统头通常包含节目信息,如时间信息和填充字节。PS流的结束标记是一个特定的32位字段(0x000001B9)。PS包长度灵活,但不能超过0.7秒播放数据量的限制。 在从ES到PS的转换过程中,时间同步至关重要。文章提出的算法着重于PES时间信息的重建。在视频ES中,帧速率代码(frame_rate_code)、VBV延迟(vbv_delay)、时间参考(temporal_reference)和图片编码类型(picture_coding_type)等字段与时间或同步相关。这些信息在ES复用为PES包时,需要转换为PTS和DTS,以供PES层使用。PTS表示数据应呈现给用户的精确时间,而DTS指示解码器何时开始解码。此外,PS层的系统参考时钟(SCR)提供了整个系统的时钟基准,用于保持所有数据包的同步。 算法分析和实现部分详细探讨了如何从ES层提取时间信息,并在PES和PS层次中重建时间同步。关键在于从下一级码流中获取信息以形成上一级码流的时间同步信息。例如,从视频ES的frame_rate_code中可以推算出帧速率,vbv_delay提供了缓冲区管理的线索,temporal_reference则用于确定帧间的相对位置。这些信息在PES包中转化为PTS和DTS,而PS层的SCR则通过扩展部分和基本部分来跟踪系统时钟,确保所有数据的正确排序和同步。 通过这样的算法,可以有效地将基本流复用成节目流,满足MPEG-2标准的要求,确保在数字电视传输中音视频的正确播放和同步。这种算法对于软件和硬件实现MPEG-2解复用和复用系统都具有参考价值,尤其在处理不同来源和不同时间基准的ES数据时,能够提供可靠的时间信息重建和同步机制。
- huyilover2014-12-04发表的论文,实用性不高
- 粉丝: 54
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助