Chinaunix首页 | 论坛 | 博客
  • 博客访问: 969014
  • 博文数量: 200
  • 博客积分: 5011
  • 博客等级: 大校
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 15:07
文章分类

全部博文(200)

文章存档

2009年(12)

2008年(190)

我的朋友

分类:

2009-02-05 15:02:58

I 系统

I-0 系统引言

1. 传输流和程序流(Transport stream, program stream)

element stream指的是单一的音视频内容流,一个视频或者一个音频流,或者数据。这些数据被13818-2和13818-3所描述的音视频编码进行压缩后,被打包成pes packets。

传输流是用来面向容易出错的环境,如传输广播环境而使用的,程序流失面向错误较少的环境如存储,软件处理等,所以他的包的长度可以很长,可以变化,我们不担心会出错。而传输流的包的长度就会很短188字节。

不管是传输流还是程序流都要使用包含节目音视频的PES流。

video, audio等element stream打包后的pes流可以被复用到一个program stream里面,也可以分别把他们弄到单独的program stream里面,只不过他们要有相同的时间控制来同步。

传输流和程序流之间不是包集关系,也不是分层关系,它们是可以相互转换的,依据PES流这个桥梁。

传输流分两个layer,一个是system layer,一个是compression layer,system layer又分为两个sub layer,一个是transport stream packet构成的曾,一个是PES packet构成的层。而compression layer可以认为是被压缩编码的音视频数据。同样,program stream也是这样的分层,只不过他的system layer里面的一个sub layer是program stream pcket,而不是transport stream packet.

传输流的码率是由PCR的位置和数值确定的,而程序流的码率是由SCR的位置和数值以及mux_rate域确定的。

2. PES 流

pes packet构成的流是将一个element stream打包后构成的,它是一种逻辑的结构,它一般不用来作为交互使用,所以它一般作为一种中间结构。最终还是要被封装成program stream或者transport stream. PES流中理应包含element stream closk reference即ESCR以及elementary stream rate即ES_Rate域。pes stream里面也包含了用来进行时间同步以及描述码率的成员。

3.timing model

最终是要保证decoder端对视频的frame之间的interval以及音品的采样速率要与encoder端保持一致。

要有一个

4.同步

我们可以认为一个节目的多个elementary stream(每个对应一个pes stream)的同步方法为:找一个clock reference作为base, 然后各个pes stream都携带一个PTS 来表示每个pes stream的presentation time stamp.

对于program stream来说,使用SCR(system clock reference)来作为clock reference,对于transport stream 来说,是用PCR(program clock reference)来作为参考。即一个program的参考。每个单独的pes stream携带各自的基于该参考的PTS来描述各自的时间同步控制内容。这就是PCR和PTS的关系,一个是多个elementary stream公用的基础clock reference,一个是各个elementary stream的相对时间控制信息。pes stream header里面带的pts时间,就是pes packet里面的payload应该被present的时间。

PTS的单位是90hz,而PCR,SCR,ESCR含有27Mhz的extension.

5.applications

program stream可以用于存储,数据网络中的传输。

阅读(2726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~