TS码流分析
- 格式:docx
- 大小:186.91 KB
- 文档页数:5
TR101-290三级错误、PSI/SI、PCR分析描述DVB系统测量标准之一TR 101-290定义的三个优先级,是码流监测的一项主要内容。
通过这三个优先级的监测,可以检验被监测的码流是否符合MPEG-2和DVB标准。
这三个优先级都包含许多不同的参数。
一、TR 101-290的第一优先级1、同步错误(TS Sync Loss)同步错误是衡量传输流质量的最重要的指标。
传输流失去同步,表明传输过程中有一部分数据丢失,将直接影响画面显示的质量。
严重的同步丢失现象则表明传输中断,同步字节出现错误。
2、同步字节错误(Sync Byte Error)同步字节错误和同步错误的区别在于传输数据包长为188字节或204字节,但同步字头的标准值为0×47,当出现同步字节错误时,同步字头的值为其他数值,表明在传输过程中部分数据出现错误,可能导致接收时出现马赛克,严重时导致解码器和DISPLAY软件解不出信号。
3、包识别丢失(PID Mssing)检测数据流中各套电视节目的图像/声音数据是否正确。
PID丢失,将导致DISPLAY软件无法正确解码这套节目。
4、节目相关表(PAT)PAT在DVB标准中用于指示当前节目及其在数据流中的位置。
PA T丢失,将导致解码器无法搜索到相应的节目包,使得接收端收不到图像。
如果PA T超时,则解码器工作时间延长。
5、节目对照表(PMT)PMT在DVB标准中用于指示该套节目视/音频数据在传输流中的位置。
某一套节目的PMT丢失,将导致解码器找不到该套节目视/音频数据,使得接收端收不到图像或声音。
PMT 传输超时,DISPLAY软件无法显示这套节目。
6、连续计数错误(Cont Count Error)对于每一套节目的视/音频数据包而言,连续计数错误是一个很重要的指标。
传输流包头连续计数不正确,表明当前传输流有丢包、错包、包重叠等现象,将导致解码器或DISPLAY 软件不能正确解码,图像出现马赛克等现象。
ts码流结构分析TS(Transport Stream)是一种常用的音视频码流传输格式,用于在数字广播系统和互联网传输中对音视频数据进行分组和传输。
TS码流结构分析指的是对TS码流的组成部分进行分析,了解各部分的作用和关系。
以下是对TS码流结构的详细分析。
TS码流由多个188字节的包(Packet)组成,每个包都包含了一部分音视频数据。
一个TS包由4个字节的同步字节(Sync Byte)开头,用于标识包的开始。
接下来的4位为传输误码纠正(Error Correction)信息,用于保证传输数据的完整性和准确性。
再接下来的1位为负荷优先级(Payload Unit Start Indicator),用于标识包中是否包含了新的数据单元。
然后是13位的PID(Packet Identifier),用于标识包中所包含的数据单元的类型。
接下来的2位为传输加密(Transport Scrambling Control),用于指定包中数据的加密方式。
再接下来的2位为控制报文(Adaptation Field Control),用于指定包中的控制信息是否存在。
最后的184字节为有效数据(Payload),用于传输音视频数据。
每个TS包中的PID用于标识包中所包含的数据单元的类型,常见的PID值有0x0000(PAT:Program Association Table)、0x0001(CAT:Conditional Access Table)、0x0010(NIT:Network Information Table)、0x0011(SDT:Service Description Table)等。
PAT表包含了整个TS流的所有节目以及对应的PMT(Program Map Table)的PID值。
CAT表用于传递整个TS流中的加密和访问控制信息。
NIT表用于传递整个TS流中的网络信息,包括网络ID和传输参数。
SDT表用于传递整个TS流中的节目信息,包括节目名称和节目号码。
[ts 码流分析] ETSI TR101 290监测的三种级别错误对于码流分析仪所提供ETSI TR101 290监测的三种级别错误,接收端将会出现如下现象。
级别错误类型接收端现象同步丢失错黑屏、静帧和马赛克、画面不流畅现象同步字节错黑屏、静帧和马赛克、画面不流畅现象PAT 错误搜索不到节目或节目搜索错误连续计数错马赛克PMT 间隔错误搜索不到节目或节目搜索错误PMT 加扰错误搜索不到节目或节目搜索错误一级错误PID 错误黑屏、静帧、马赛克等所有异常现象传送错误黑屏、静帧和马赛克、画面不流畅现象CRC 错误黑屏、静帧和马赛克、画面不流畅现象PCR 间隔错误视音频不同步或图象颜色丢失PCR 非连续标志错视音频不同步或图象颜色丢失PCR 抖动错误视音频不同步或图象颜色丢失PTS 错误音视频不同步TS 包加扰错只对加扰节目有影响,为轻微错误二级错误CAT 错误无法正确处理CA 信息,为轻微错误NIT ID 错误NIT 间隔错误NIT 其他错误SI 重复率错缓冲器错非指定PID 错SDT ID 错SDT 当前间隔错SDT 其他间隔错EIT ID 错EIT 当前间隔错EIT 其他间隔错EIT PF 错RST 错误TDT 错误空缓冲器错误三级错误数据延迟错误无异常现象,码流分析仪的三级错误为轻微错误。
(1)传送码流同步丢失:连续检测到连续 5 个正常同步视为同步,连续检测到 2 个以上不正确同步则为同步丢失错误。
传输流失去同步,标志着传输过程中会有一部分数据丢失,直接影响解码后的画面的质量。
(2)同步字节错误:同步字节值不是 0X47。
同步字节错误和同步丢失错误的区别在于同步字节错误传输数据仍是 188或 204 包长,但同步字头的 0X47被其他数字代替。
这表明传输的部分数据有错误,严重时会导致解码器解不出信号。
(3)PAT 错误:标识节目相关表 PAT 的 PID 为 0x0000,PAT 错误包括标识 PAT 的 PID 没有至少 0.5 s出现一次,或者 PID为 0x0000 的包中无内容,或者 PID为 0x0000 的包的包头中的加密控制段不为 0。
[ts码流分析]ETSITR101290监测的三种级别错误对于码流分析仪所提供ETSI TR101 290监测的三种级别错误,接收端将会出现如下现象。
TR101-290: DVB 系统测量标准TR101-290: DVB 系统测量标准。
TR 101-290 定义的三个优先级,是码流监测的一项主要内容。
通过这三个优先级的监测,可以检验被监测的码流是否符合MPEG-2 和DVB标准。
这三个优先级都包含许多不同的参数。
PSI/SI: 数字电视业务信息,由PSI和SI两部分构成。
PSI是MPEG-2规定的,它由PAT、PMT、CAT和NIT 4个表构成,其中PAT、PMT 表最为重要。
SI是DVB标准规定的,它由BAT、SDT、EIT、RST、TDT、TOT、ST、SIT和DIT 9个表构成,其中 BAT、SDT、EIT 和 TDT 是强制性的。
PSI/SI 由“表”和“描述符”构成。
表是PSI/SI 的基本结构,针对特定用途,PSI/SI 中规定了一系列表来实现它;表由变量和描述符组成。
描述符提供了更多的描述功能。
星座图: 星座显示是矢量示波器显示的数字等价形式,它可显示 QAM 信号的同相(I)分量和正交(Q)分量。
符号是一个特定调制系统中所传输的最小信息成分。
对于 QAM-64,一个符号代表 6 个位,在图上绘制为一个点。
BER位误码率:位误码率是发生误码的位数与传输的总位数之比。
MER:调制误差比, MER 将接收符号(代表调制图案中的一个数字值)的实际位置与其理想位置进行比较。
当信号质量降低时,接收符号距离理想位置更远,MER 测量值将会减小。
EVM:误差矢量幅度, EVM测量类似于 MER,但表达形式不同。
EVM 表达为 RMS 误差矢量幅度与最大符号幅度的百分比值。
信号缺陷增加时,EVM 将会增大,而 MER 则会减小。
EVM 是在IQ(同相与正交)星座图上检测到的载波与其理论上的准确位置之间的距离,是“误差信号矢量”与“最大信号幅度”之比,表达为 RMS 百分比值。
MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性,MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定。
对应于不同的应用,符合MPEG-2标准的码流又分为传送流和程序流,本文主要讲解了传送流有关的部分数据结构,从实际应用的传送流码流中截取了部分码流做了说明,并给出了部分解析传送流码流的实例程序。
在MPEG-II标准中,为了将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送,必须对其重新进行打包编码,在码流中还需插入各种时间标记、系统控制等信息,最后送到信道编码与调制器。
这样可以形成两种数据流——传送流(TS)和程序流(PS),分别适用于不同的应用,图1给出了单路节目的视音频数据流的复用框图。
传送流(Transport Stream)简称TS流,它是根据ITU-T Rec.H.222.0|ISO/IEC 13818-2 和ISO/IEC 13818-3协议而定义的一种数据流,其目的是为了在有可能发生严重错误的情况下进行一道或多道程序编码数据的传送和存储。
这种错误表现为比特值错误或分组丢失。
传送流由一道或多道节目组成,每道节目由一个或多个原始流和一些其他流复合在一起,包括视频流、音频流、节目特殊信息流(PSI)和其他数据包。
其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。
传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。
在开发机顶盒以及视频设备时有时需要对码流的编码知识有比较清楚地了解,这样才能在遇到问题时做出全面的分析。
TS流结构分析如图2所示,TS包的长度是固定的,为188字节。
包括同步字节(sync_byte)0x47和数据包识别号PID 等。
PID为13位字段,指示存储于分组有效负载中数据的类型,PID值0x0000为程序关联表保留,而0x0001为条件访问表保留,0x1FFF为空分组保留。
从PID可以判断其后面负载的数据类型是视频流、音频流、PSI 还是其他数据包。
PSI描述说明在MPEG-II中定义了节目特定信息(PSI),PSI用来描述传送流的组成结构,在MPEG-II系统中担任极其重要的角色,在多路复用中尤为重要的是PAT表和PMT表。
PAT表给出了一路MPEG-II码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。
PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。
PSI信息由以下几种类型表组成:◆节目关联表(PAT Program Association Table)PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。
它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS 包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。
◆条件接收表(CAT Conditional Access Table)CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。
它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM))之间的联系,指定EMM的PID,以及相关的参数。
◆节目映射表(PMT Program Map Table)节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)字段的位置。
◆网络信息表(NIT Nerwork Information Table)网络信息表提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。
◆传输流描述表(TSDT Transport Stream Description Table)传输流描述表由PID为2的TS包传送,提供传输流的一些主要参数。
◆专用段(private_section)MPEG-2还定义了一种专用段用于传送用户自己定义的专用数据。
◆描述符(Descripter)除了上述的表述之外,MPEG-2还定义了许多描述符,这些描述符提供关于视频流、音频流、语言、层次、系统时钟、码率等多方面的信息,在PSI的表中可以灵活的采用这些描述符进一步为接收机提供更多的信息。
在解码时,接收机首先根据PID值找到PAT表,找出相应节目的PMT表的PID,再由该PID找到该PMT表,再在PMT表中找到相应的码流,然后开始解码。
PSI结构和TS流的关系示例如图3所示。
PES包格式说明经过视音频压缩来的数码流称为ES流,ES流经过打包器输出PES流。
PES包是非定长的,音频PES 包不超过64K字节,视频一般一帧一个PES包。
为实现解码的同步,还需插入相关的标志信息,多个打包后的数码流再经过复用器成为传送流(TS流),PES包的结构图如图4所示。
对截取的MPEG-II TS码流实例分析对截取的包含PSI信息的码流分析从MPEG-II TS流片源上截取的包含PSI信息的码流如图5所示。
搜索TS数据流从包同步字0x47开始,由于该同步头字节并不是唯一的,数据包中可能有码字也恰为其值。
因此,要准确检测同步,必须首先找到输入缓冲区中第一个0x47,然后将其指针向后推187个字节的位置再检测是否为0x47,如果是,则输出包同步信号;接着每隔187字节检测一次,如是0x47,则继续输出包同步信号,如不是,则重新开始搜索0x47。
在上段截取的包含PSI信息的码流中是一个TS文件中的起始数据截图,TS流文件中的数据Ts包头以0x47开头,在0x47后3字节是ts包头信息:0x40中的4表示此payload_unit_start_indicator是1,表示包含TS流分组的第一个有效字节包含point_field字段,占一个字节;ID为0x00,表示此TS流包含PSI信息,在此是PAT包;0x1c中的1表示仅不含附加信息,仅含有有效载荷;C表示continuity_ counter=c。
在4字节的TS包头之后时一字节的point_field=0,然后是program_association_ section()字段的信息。
Table_id=0x00,表示在此PSI内容是program_ association_section()字段的信息内容;0xB0表示的B是同步头以及保留位,0是section_length的一部分;section_length=0x00d(包含0x0D的前一个0);transport_ stream_ id=0x0000;0xC1包含保留位、vision_number、current_ next_indicator ,C中的11是保留位,C中的00和低4位中的前3位是vision_number部分,最低位是current_next_indicator部分。
vision_number=0x00;current_next_indicator=1,表示所发送的pat表当前有效;ection_number=0x00,last_ section_number=0x0000;program_number=0x0001;0xE0中的E的高三位是保留位,E的最低位和其后的4位0以及其后的8位都是program_map_PID字段内容,所以program_map_PID=0x032,即PMT的PID为0x32;CRC是0xbcf11595。
其后的0xff为填充字节。
在第二个TS流中,在0x47后3字节是ts包头信息:0x40中的4表示此payload_unit_start_indicator是1,表示包含TS流分组的第一个有效字节包含point_field字段,占一个字节。
ID为0x32,表示此TS流包含PSI信息PID为0x032,是pat表中的PID,说明此TS流中包含PMT表的信息。
point_field=0x00,(Ts头和point_field1字节共5字节)point_field后是0x02表示此处的pid为ts_program_ map_section()字段。
0xB0表示的B是同步头以及保留位,0是section_length的一部部分Section_length=0x02d,规定此字段的字节数,包含CRC部分;program_number=0x0001;0xC1包含保留位、vision_number、current_next_indicator,C中的11是保留位,C中的00和低4位中的前3位是vision_number部分,最低位是current_next_indicator部分;version_number=0x0,current_next_indicator=1,section_number=0x00,last_section_number=0x00;0xE0中的E的高三位是保留位,E的最低位和其后的4位0以及其后的8位都是PCR_PID字段内容,PCR_PID=0x020;其后的0xF0中的高4位是保留位,低4位和其后的8位都是program_info_length字段内容,表示描述字段的字节数,program_info_length=0x000;stream_type=0x03表示其后的PID为ISO/IEC 11172音频数据的PID,其后的0xE0中的E的高三位是保留位,E的最低位和其后的4位0以及其后的8位都是element_PID字段内容,element_PID=0x021,表示TS流中如果包含音频部分,则此TS流的PID为0x21;其后的0xF0中的高4位是保留位,低4位和其后的8位都是ES_info_length字段内容,表示描述字段的字节数,ES_info_length=0x006,表示其后的6个字节为原始流的描述部分。
6个字节之后的stream_type=0x02,表示其后的PID为ITU-T Rec. H.262 | ISO/IEC 13818-2视频数据的PID;其后的0xE0中的E的高三位是保留位,E的最低位和其后的4位0以及其后的8位都是element_PID字段内容,element_PID=0x20,表示TS流中如果包含视频部分,则此TS流的PID为0x20, 其后的0xF0中的高4位是保留位,低4位和其后的8位都是ES_info_length字段内容,表示描述字段的字节数,ES_info_length=0x10,表示其后的16个字节为原始流的描述部分。