嵌入式 关于ES、PES、PS以及TS码流

原创 2013年12月02日 14:52:56

一、基本概念

1ES  

   ES--Elementary  Streams  (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC),或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。

    ES是只包含一种内容的数据流,如只含视频或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频ES的PES,只含音频ES的PES等。每个ES都由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成,1AU相当于编码的1幅视频图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。

2PES

    PES--Packetized  Elementary Streams  (分组的ES),ES形成的分组称为PES分组,是用来传递ES的一种数据结构。PES流是ES流经过PES打包器处理后形成的数据流,在这个过程中完成了将ES流分组、打包、加入包头信息等操作(对ES流的第一次打包)。PES流的基本单位是PES包。PES包由包头和payload组成

3PTSDTS

   PTS--PresentationTime Stamp(显示时间标记)表示显示单元出现在系统目标解码器(H.264、MJPEG等)的时间。

   DTS--Decoding Time Stamp(解码时间标记)表示将存取单元全部字节从解码缓存器移走的时间。

   PTS/DTS是打在PES包的包头里面的,这两个参数是解决音视频同步显示,防止解码器输入缓存上溢或下溢的关键。每一个I(关键帧)、 P(预测帧)、B(双向预测 帧)帧的包头都有一个PTS和DTS,但PTS与DTS对于B帧不一样,无需标出B帧的DTS,对于I帧和P帧,显示前一定要存储于视频解码器的重新排序 缓存器中,经过延迟(重新排序)后再显示,所以一定要分别标明PTS和DTS。

4PS

   PS--Program Stream(节目流)PS流由PS包组成,而一个PS包又由若干个PES包组成(到这里,ES经过了两层的封装)。PS包的包头中包含了同步信息与时钟恢复信息。一个PS包最多可包含具有同一时钟基准的16个视频PES包和32个音频PES包。

5TS

    TS--Transport Stream(传输流)由定长的TS包组成(188字节),而TS包是对PES包的一个重新封装(到这里,ES也经过了两层的封装)。PES包的包头信息依然存在于TS包中。

    TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的。 PS包由于长度是变化的,一旦丢失某一PS包的同步信息,接收机就会进入失步状态,从而导致严重的信息丢失事件。而TS码流由于采用了固定长度的包结构, 当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。因此在信道环境较为恶劣、传输 误码较高时一般采用TS码流,而在信环境较好、传输误码较低时一般采用PS码流。

6TS单一码流、混合码流

  单一性:TS流的基本组成单位是长度为188字节的TS包。

  混合性: TS流由多种数据组合而成,一个TS包中的数据可以是视频数据,音频数据,填充数据,PSI/SI表格数据等(唯一的PID对应)。

 

二、基本流程


1)A/D转换后,通过MPEG-2压缩编码得到的ES基本流。这个数据流很大,并且只是I,P,B的这些视频帧或音频取样信息。

2)通过PES打包器,打包并在每个帧中插入 PTS/DTS标志,变成PES。原来是流的格式,现在成了数据包的分割形式。

3)PES根据需要打包成PS或TS包进行存储(DVD)或传输(DVB)。因每路音/视频只包含一路的编码数据流,所以每路PES也只包含相应的数据流。


附:

相关文章推荐

ES、PES、PS以及TS码流【转载】

http://blog.csdn.net/shinichr/article/details/23098269 主要概念: ES:      ES--Elementary  Streams ...

关于高清实时ES、PES、PS以及TS码流个人总结

当然我们经常分类在程序设置的时候,

关于ES、PES、PS以及TS码流

一、基本概念 1)ES      ES--Elementary  Streams  (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC)...

关于ES、PES、PS以及TS码流

一、基本概念 1)ES      ES--Elementary  Streams  (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC)...

ES、PES、PS以及TS码流

这篇blog主要分析ts流中I,B,P帧的提取

TS流中PES/ES抽取

  • 2013年10月02日 13:25
  • 199KB
  • 下载

TS流的解码过程-ES-PES-DTS-PTS-PCR

TS流的解码过程-ES-PES-DTS-PTS-PCR 收藏TS 流解码过程:1. 获取TS中的PAT 2. 获取TS中的PMT3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H...
  • grr101
  • grr101
  • 2011年03月04日 15:38
  • 342

PES,TS,PS,RTP等流的打包格式解析之RTP流

本篇介绍RTP包封装格式 1.RTP包头格式 RTP包头占位12个字节,其字段组成如下图所示: V字段:RTP协议版本号,占位2bit,当前协议为V=2; P字段:填充字段...

ES PES TS流的区别

编码器出来的信号是ES流 ,复用器是把ES流变成TS流不知道这么理解对不对,还有我想问下数字卫星接收机出来的信号是SDI呢还是什么类型,模拟卫星接收机出来的又是什么类型呢   忽然之间脑袋一团浆糊~~...

TS PS ES 码流发送工具

  • 2015年10月20日 16:10
  • 11KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 关于ES、PES、PS以及TS码流
举报原因:
原因补充:

(最多只允许输入30个字)