dvboverip详解剖析

上传人:今*** 文档编号:105948585 上传时间:2019-10-14 格式:DOC 页数:28 大小:1.79MB
返回 下载 相关 举报
dvboverip详解剖析_第1页
第1页 / 共28页
dvboverip详解剖析_第2页
第2页 / 共28页
dvboverip详解剖析_第3页
第3页 / 共28页
dvboverip详解剖析_第4页
第4页 / 共28页
dvboverip详解剖析_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《dvboverip详解剖析》由会员分享,可在线阅读,更多相关《dvboverip详解剖析(28页珍藏版)》请在金锄头文库上搜索。

1、dvb over ip详解TS系统解码11TS流的内容21.1ES21.2PES21.3TS42TS流的解码过程(只考虑本地文件,解码只涉及到系统层打包的解码,不涉及到编码的解码)52.1PAT解码:52.2PMT解码62.3音视频解码63TS流解码73.1总用例图73.2各解码类的UML图83.2.1解码主类83.2.2事件管理类93.2.3各类包解析的关系图103.2.4输入输出类113.2.5解析PAT、PMT、私有数据等123.2.6解析TS 包133.2.7解析PES包143.2.8PCR时钟类153.2.9CRC校验类153.3解码流程图163.3.1TS包解析流程图163.3.2

2、Section解码流程图173.3.3PES解码流程图184TS流合成(编码)194.1各编码类的UML图194.1.1编码主类194.1.2合成各类之间的关系204.2编码主要流程214.2.1TS编码流程图214.2.2负载(pes、section)打包过程22附表一:23附表二:251 TS流的内容TS-PES-ES-NALESAn elementary stream (ES) is defined by MPEG communication protocol is usually the output of an audio or video encoder.PESallows an

3、Elementary stream to be divided into packets.图一:PES结构图PES结构各字段的具体含义见附表一。由图一可见,1个PES包是由包头、ES特有信息和包数据3个部分组成。由于包头和ES特有信息二者可合成1个数据头,所以可认为1个PES包是由数据头和包数据(有效载荷)两个部分组成的。包头由起始码前缀、数据流识别及PES包长信息3部分构成。包起始码前缀是用23个连续“0”和1个“1”构成的,用于表示有用信息种类的数据流识别,是1个8 bit的整数。由二者合成1个专用的包起始码,可用于识别数据包所属数据流(视频,音频,或其它)的性质及序号。例如:比特序1 1

4、 0 是号码为的MPEG-2音频数据流; 比特序1 1 1 0 是号码为的MPEG-2视频数据流。PES包长用于包长识别,表明在此字段后的字节数。如,PES包长识别为2 B ,即28 = 16 bit字宽,包总长为216-1=65535 B,分给数据头9 B(包头6 B + ES特有信息3 B ),可变长度的包数据最大容量为65526 B。尽管PES包最大长度可达(216 -1)=65535 B(Byte),但在通常的情况下是组成ES的若干个AU中的由头部和编码数据两部分组成的1个AU长度。1个AU相当于编码的1幅视频图像或1个音频帧,参见图一右上角从ES到PES的示意图。也可以说,每个AU实

5、际上是编码数据流的显示单元,即相当于解码的1幅视频图像或1个音频帧的取样。ES特有信息是由PES包头识别标志、PES包头长信息、信息区和用于调整信息区可变包长的填充字节4部分组成的PES包控制信息。其中,PES包头识别标志由12个部分组成:PES加扰控制信息、PES优先级别指示、数据适配定位指示符、有否版权指示、原版或拷贝指示、有否显示时间标记(PTS-Presentation Time Stamp)/解码时间标记(DTS-Decode Time Stamp)标志、PES包头有否基本流时钟基准(ESCR-Elementary Stream Clock Reference)信息标志、PES包头有

6、否基本流速率信息标志、有否数字存储媒体(DSM)特技方式信息标志、有否附加的拷贝信息标志、PES包头有否循环冗余校验(CRC-Cyclic Redundancy Check)信息标志、有否PES扩展标志。有扩展标志,表明还存在其它信息。如,在有传输误码时,通过数据包计数器,使接收端能以准确的数据恢复数据流,或借助计数器状态,识别出传输时是否有数据包丢失。其中,有否PTS/DTS标志,是解决视音频同步显示、防止解码器输入缓存器上溢或下溢的关键所在。因为,PTS表明显示单元出现在系统目标解码器(STD-System Target Decoder)的时间, DTS表明将存取单元全部字节从STD的ES

7、解码缓存器移走的时刻。视频编码图像帧次序为I1P4B2B3P7B5B6I10B8B9的ES,加入PTS/DTS后,打包成一个个视频PES包。每个PES包都有一个包头,用于定义PES内的数据内容,提供定时资料。每个I、P、B帧的包头都有一个PTS和DTS,但PTS与DTS对B帧都是一样的,无须标出B帧的DTS。对I帧和P帧,显示前一定要存储于视频解码器的重新排序缓存器中,经过延迟(重新排序)后再显示,一定要分别标明PTS和DTS。例如,解码器输入的图像帧次序为I1P4B2B3P7B5B6I10B8B9,依解码器输出的帧次序,应该P4比B2、B3在先,但显示时P4一定要比B2、B3在后,即P4要在

8、提前插入数据流中的时间标志指引下,经过缓存器重新排序,以重建编码前视频帧次序I1B2B3P4B5B6P7B8B9I10。显然,PTS/DTS标志表明对确定事件或确定信息解码的专用时标的存在,依靠专用时标解码器,可知道该确定事件或确定信息开始解码或显示的时刻。例如,PTS/DTS标志可用于确定编码、多路复用、解码、重建的时间。TSTransport stream将具有共同时间基准或者具有独立时间基准的一个或者多个PES组成的单一数据流。图二:TS包结构TS结构各字段的具体含义见附表二。由图二可见,TS包由包头、自适应区和包数据3部分组成。每个包长度为固定的188 B,包头长度占4 B,自适应区和

9、包数据长度占184 B。184 B为有用信息空间,用于传送已编码的视音频数据流。当节目时钟基准(PCR-Program Clock Reference)存在时,包头还包括可变长度的自适应区,包头的长度就会大于4 B。考虑到与通信的关系,整个传输包固定长度应相当于4个ATM包。考虑到加密是按照8 B顺序加扰的,代表有用信息的自适应区和包数据的长度应该是8 B的整数倍,即自适应区和包数据为238 B =184 B。 TS包的包头由如图所示的同步字节、传输误码指示符、有效载荷单元起始指示符、传输优先、包识别(PID-Packet Identification)、传输加扰控制、自适应区控制和连续计数器

10、8个部分组成。其中,可用同步字节位串的自动相关特性,检测数据流中的包限制,建立包同步;传输误码指示符,是指有不能消除误码时,采用误码校正解码器可表示1bit 的误码,但无法校正;有效载荷单元起始指示符,表示该数据包是否存在确定的起始信息;传输优先,是给TS包分配优先权;PID值是由用户确定的,解码器根据PID将TS上从不同ES来的TS包区别出来,以重建原来的ES;传输加扰控制,可指示数据包内容是否加扰,但包头和自适应区永远不加扰;自适应区控制,用2 bit表示有否自适应区,即(01)表示有有用信息无自适应区,(10)表示无有用信息有自适应区,(11)表示有有用信息有自适应区,(00)无定义;连

11、续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。显然,包头对TS包具有同步、识别、检错及加密功能。 TS包自适应区由自适应区长、各种标志指示符、与插入标志有关的信息和填充数据4部分组成。其中标志部分由间断指示符、随机存取指示符、ES优化指示符、PCR标志、接点标志、传输专用数据标志、原始PCR标志、自适应区扩展标志8个部分组成。重要的是标志部分的PCR字段,可给编解码器的27MHz时钟提供同步资料,进行同步。其过程是,通过PLL,用解码时本地用PCR相位与输入的瞬时PCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时PCR调整时钟频率。因为

12、,数字图像采用了复杂而不同的压缩编码算法,造成每幅图像的数据各不相同,使直接从压缩编码图像数据的开始部分获取时钟信息成为不可能。为此,选择了某些(而非全部)TS包的自适应区来传送定时信息。于是,被选中的TS包的自适应区,可用于测定包信息的控制bit和重要的控制信息。自适应区无须伴随每个包都发送,发送多少主要由选中的TS包的传输专用时标参数决定。标志中的随机存取指示符和接点标志,在节目变动时,为随机进入I帧压缩的数据流提供随机进入点,也为插入当地节目提供方便。自适应区中的填充数据是由于PES包长不可能正好转为TS包的整数倍,最后的TS包保留一小部分有用容量,通过填充字节加以填补,这样可以防止缓存

13、器下溢,保持总码率恒定不变。2 TS流的解码过程(只考虑本地文件,解码只涉及到系统层打包的解码,不涉及到编码的解码)TS流的基本解码过程:PAT节目关联表-PMT节目映射表-PES音频、视频包。首先,从PAT获取TS流中所有节目映射表.然后,从节目映射表中获取每个节目(本设计为本地文件,只含有一个PMT)数据(视频和音频)的PID。最后,根据传输过来的数据PID对视频数据和音频数据进行系统层复用解码。系统层复用解码:循环:TS-PES-ES。PAT解码:PAT 表携带以下信息:(1)TS 流ID - transport_stream_id,该ID标志唯一的流ID 。(2)节目频道号- prog

14、ram_number,该号码标志TS流中的一个频道, 该频道可以包含很多的节目(即可以包含多个Video PID 和Audio PID)(3)PMT 的PID- program_map_PID,表示本频道使用的哪个PID做为PMT 的,因为PID可以有很多的频道, 因此DVB规定PMT 的PID 可以由用户自己定义PMT解码PMT 表中包含的数据如下:(1) 当前频道中包含的所有Video 数据的PID(2) 当前频道中包含的所有Audio 数据的PID(3) 和当前频道关联在一起的其他数据的PID(如数字广播,数据通讯等使用的PID)音视频解码音视频解码的数据如下:(1) 根据音频PID解码

15、音频数据到缓存区(2) 根据视频PID解码音频数据到缓存区(3) 和当前频道关联在一起的其他数据放到数据区中3 TS流解码总用例图Decoder 首先调用事件管理器注册各类事件(事件类型见3.2.2),然后调用read_packet函数读取指定文件中的TS包进行分析,根据PID值不同分别对TS进行不同的处理。Parse_PAT/PMT/._packet把PAT(注:PAT的PID为0)和PMT的携带的相关节目流PID的信息(包括视频,音频,私有数据等)存入Directory中,之后Parse_ts_packet通过Directory中提供的PID信号分别对不同的TS分别处理。各解码类的UML图3.1.1 解码主类The Decoder object manages such global information as the Network Table pid value, the current packet number and the number of programs and streams per program (as repr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号