国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > MPEG-TS基础2

MPEG-TS基础2

来源:程序员人生   发布时间:2015-01-29 08:19:58 阅读次数:4965次

MPEG2的3类帧

I帧:是帧内编码帧,其编码不依赖BP两帧,同时他是BP帧编解码的参考图象
P帧:前向预测编码图象,像素的预测值取为前面与其相邻的I帧或P帧中对应像素的值,即采取帧间运动补偿前值预测。
B帧:双向预测编码图象,像素的预测值取为前后与其距离最近的I帧或P帧相应像素的加权平均,即采取帧间运动补偿前后平均,需要指出,B帧不能作为其他B帧或P帧的编码参考图象。

编码顺序:
传输流中编码图象的顺序依照IPB的顺序

显示顺序:
在解码输出端重建图象的顺序,依照IBP的顺序。

1个视频图象,是由图象组(Grop)组成的。每一个图象组由1个I帧和3个P帧8个B帧组成的。
图象的显示顺序为:1I,2B,3B,4B, 5B,6B,7P,8B,9B,10P,11B,12B,13I
图象的编码顺序为:1I,4P, 2B,3B, 7P,5B,6B,10P,8B,9B,13I,11B,12B


PES包的结构:

PES包是可变长的,通常可以到达64KB长度。PES中最重要的是DTS和PTS。有了PTS和DTS,解码器就能够从编码器传送的IPB帧中重建视频流。

PES包结构:



MPEG⑵传送流系统层

为了实现解码同步,在PES中插入PTS和DTS和相干的系列标志符。


由图可以看出,TS由4B的包头,可变长度的调剂头和负载构成。包头由同步字节,1b传送数据包过失唆使,1b净荷单元起始唆使,1b传送优先权,13b的包标识符PID,2b传送加扰控制,2b调剂字段控制和4b连续计数器组成。

净荷起始唆使表示打包的原始流PES数据包字头或包括与节目有关的PES信息的起始端,是不是出现在该TS包的净荷中。

调剂字段控制表示在在包头后面是不是有调剂端和或净荷。

连续计数器中的数值对具有相同PID值的净荷而言,从0⑴5连续循环,用来在解码端检测是不是有丢失的TS包。


除各节目的各个传送流外,还应有节目专用信息PSI,PSI数据由固定字长的整体字头和可变字长的节目清单表PAT或单节目映照表PMT和4b的CRC组成。


MPEG⑵传送流包语法结构

TS包中负载传送的信息主要有4种类型:

1.视频和音频的PES包和辅助数据。

2.描写单路节目的节目映照表(PMT)与描写多路节目复用信息的节目关联表(PAT)和对CA系统所要求的条件访问表(CAT)。

3.各种业务信息表。

4.DVB数据广播信息,包括数据管道,异步数据报,同步,被同步数据流,多协议封装,循环数据,循环对象。


MPEG-TS包头语法结构:


・sync_byte:1B 值为0x47。

・payload_unit_start_indicator:1b长度。

当TS包带有PES包数据时,payload_unit_start_indicator值为1时,表示TS包的负载以PES包的第1个字节开始,值为0,表示TS包开始的不是PES包。

当TS包带有PSI数据时,payload_unit_start_indicator值为1时,表示TS包带有PSI部份的第1个字节,即第1个字节带有指针pointer_field;置为0,表示TS包不带有1个PSI部份的第1个字节,即在有效净荷中没有指针的pointer_field.

空包payload_unit_start_indicator应置为0.

・PID:13b。表示净荷的数据类型。PID=0x0000,表示净荷的数据位节目关联表。


PID取值分配:


MPEG⑵ TS包调剂字段:

在ts中,为了传送打包后的长度不足188B的不完全TS,或为了在系统层插入节目时钟参考PCR字段,需要在TS包中插入可变长字节的调剂字段。


调剂字段是1个可边长的域,它是由存在于TS包头中的调剂字段控制值来标识的。


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生