数字电视码流包结构及码流监测探析

2020-04-17 03:51卢崇麟
数字传媒研究 2020年3期
关键词:码流字节解码

卢崇麟

国家广播电视总局六四一台 福建省 泉州市 362100

引 言

随着广播电视技术的发展,我国已全面实现了使用数字电视进行传输覆盖,数字电视的数字编码压缩后都以码流的形式输出,本文接下来对MPEG-2 的码流形成进行分析,并介绍数字码流错误监测指标。

1 打包基本码流(PES)

在数字电视系统中,所有的视频、音频,数据信息都通过编码得到基本码流,或称为ES流,是最原始的编码数据。因此需要在形成基本码流后,再产生打包的基本码流,就是PES 流。一般以一帧图像为一个基本编码单元,形成打包的基本码流。打包基本码流的长度不固定,是由基本码流加入包头信息后形成的。

PES 包头中包含着重要信息,其中最为重要的是PTS 和DTS,PTS 指的是显示时间标签,而DTS 指的是解码时间标签,PTS 指示已解码的信息何时显示,而DTS 则是指对接收到的数据信息何时进行解码。为了能够按照预期的设计显示每幅图像,就要对每副图像设置一个PTS 标签。DTS 的值可以由PTS得到,一般情况下两者是相同的,但是当编码图像包含B 帧时,解码时间和显示时间是不同的,此时的PTS 和DTS 是不一样的。音频编码解码的顺序和输出的顺序是一致的,所以PTS 和DTS 的值是一样的。PTS 是包头信息中最重要的信息之一,它直接影响终端的视音频是否同步。PES包最重要的字段有如下几个:

1.1 PES包长度

PES 包的长度是可变的,用16比特来表示,因此一个PES 包的最大长度为2 的16 次方字节。PES 包净荷的第1 个字节是一帧图像、一个图像序列或GOP的起始码。PES 包头长度字节占用8比特,用PES 包长减掉PES 包头的长度,剩下的就是PES 包的净荷数据长度。

1.2 PES包起始前缀

PES 包起始前缀占用24 比特,表征一个PES 包开始,类似于同步字节,是一个固定的数值,用16进制表示为OX000001。

1.3 ES流标识符

ES 流标识符占用ES 流标识符8比特,表征ES流的类型,说明所传的ES 流是视频、音频或数据。一般用OXC0 表示音频,OXE0表示视频。

2 节目流(PS)

节目流PS指将同一节目的视频、音频,数据信息流进行复用产生的数据流,由PES 流组成,PES流是由ES流加包头产生的。

PS流中每个PES包的长度不统一,虽然可通过OX000001 同步字节检测是否同步,但无法准确确定同步位置,在遇到差错时,无法检测到同步位置,无法恢复同步。

PS流只适合信道干扰小的使用环境,如演播室或系统内的硬盘等,因此必须使用统一长度的数据包来满足抗干扰的需求。

3 传输流(TS)

视频、音频或数据PES 流经过传输复用器组合成的一个码流就是传输流,分为节目复用和传输复用。节目复用通常是将有同一时间基准的视频、音频或数据的PES 包打包。而传输复用是将不同时间基准的多套节目PES 流进行打包处理。打包长度不能太长,规定为188 字节,类似于计算机通信的数据包长度,IP包最大长度为65535 字节。在TS 码流层插入PCR,用于收端节目与发端节目的同步,由于TS流打包长度固定,便于在数据流中准确检测到同步字节的位置,适用于信道环境差的情况。

传输流的包长为188 字节,其中包头占用4 字节,数据净荷占用184 字节,数据净荷为PES格式的数据流。如图1 为某一传输码流包头监测结果。包头由下面几个部分组成:

3.1 同步字节

包头中同步字节为OX47,占用8 比特。数字电视不同于模拟电视,模拟电视可以使用行、场,色同步信号实现收发两端的同步,而数字电视经过压缩编码、数字化后,以数据包的形式存在,同步信息已不存在,只能通过OX47字节来识别以实现同步。

3.2 传送错误指示

传送错误指示占用1 比特,用来表示传输流中是否有错误,1表示有错误,0表示没有错误。

3.3 传送优先级

传送优先级占用1 比特,表示该传输包的优先级,类似于PES包中的优先级。

3.4 包PID

包PIP 占用13 比特,每一个视频、音频,数据的PES 流都分别对应一个PID,在数据流中识别出各自的视频、音频节目唯一的方法就是不同的PID。终端解码PID 在传输流中还要传送节目专用信息,例如节目关联表PAT,节目映射表PMT 等也必须用PID 来区分和识别。这些节目专用信息表的PID 有的是固定值,例如PAT表的PID用OX0001表示,NIT 表的 PID 用 OX0010 表示 , SDT 表 和 BAT 表 的 PID 用OX0011 表示。节目专用信息的TS包有效数据不足时,使用空包表示其PID固定为OX1FFF。前文已经说明收发端的同步是通过同步字节建立起来的,而且PID 在包头中的位置固定,因此收端很容易通过PID值提取所需的数据。

3.5 传送加扰控制

传送加扰控制占用2 比特,表征该包是否被加扰,00表示未被加扰。

3.6 适配域控制字

适配域控制字占用1 比特,表示适配域是否存在。

3.7 连续计数器

连续计数器占用4 比特,表征发送的数据从发端传输到收端是否丢失,发端循环对所有TS流传送包从0 到15 计数,若收端收到的包和之前的包计数值不连续,则认为传输中丢失了数据包。如图1 中有14 个连续计数错误。

图1 传输流包头监测

3.8 PCR

PCR 是适配域中的一个重要参数,占用42比特。编码器的系统时钟频率为27MHz,在视频进行编码时,系统时钟的取样值要赋予TS流中的PCR,用于收端定时信息的提取。MPEG-2规定PCR传递的间隔不应大于40毫秒,两个连续的PCR 差值不大于100 毫秒。PTS、DTS和PCR主要用来解决视音频传输中的同步问题,PTS、DTS是在PES码流层插入的。

4 传输流技术指标及测试

传输流的技术测试使用TR101290测试标准和三级错误检测模式。TR101290测试标准将错误指标分为三级,第一级指标是确保解码器正确解码的几个必要参数,第二级是解码器持续可靠工作必须的基本指标,第三级为确保应用正确使用的指标。

4.1 第一级错误

1.传送流同步丢失错误:当连续监测到两个以上的不正确同步时,即为同步丢失错误,通常以5个包为一个组进行监测。

2.同步字节错误:如果传输流中的同步字节不是0X47,即使此时的包长度仍然是188 字节,也会产生同步字节错误。

3.PAT 错误: PAT 表的 PID值为0X0000时,PAT错误可能是PAT 表的重复间隔超过0.5 秒、PAT表为空或者PAT的PID中包头的加密控制段不是0,即被加扰。

4.连续计数错误:发端对所有相同PID 的包进行从0 到15 重复计数,收端有丢包、包重复、包顺序错的情况就会产生连续计数错。

5.PMT错误:PMT错误可能是PMT 表的重复间隔超过0.5秒、PMT 表为空或者PMT 的PID中包头的加密控制段不是0。

6.设置PID错误:监测是否每一个PID 都有码流,是否同一PID 的视频、音频或数据的重复间隔不超过0.5 秒。若码流没有PID,无法完成该节目解码。

4.2 第二级错误

1.传输错误:TS包头中的传送包错误指示为1,说明传送的包中有一个不可纠正的错误位。

2.CRC 错误:CRC错误表明在PSI 和SI 表中循环冗余检测码检测到错误。

3.PCR 间隔错误:如前所述,收端收到PCR 间隔超过100毫秒、PCR整个发送间隔超过40毫秒,就会影响收端正确解码,产生PCR间隔错误。

4.PCR抖动错误:PCR精度和PCR 抖动不超过500 毫秒,否则会使收端时钟失锁或抖动过大。

5.PTS 错误:PTS 重复发送间隔为700 毫秒,否则会影响图像的正确显示。如图2 展示的是PTS 重复间隔错误的截图,如图3为PTS重复间隔小于700ms的截图。

6.CAT错误:表示没有CAT表或PID为0X0001的表不是CAT表,CAT表指出授权管理信息EMM的PID,确保接收机正确解码。

图2 PTS重复间隔错误

图3 PTS重复间隔小于700ms

4.3 第三级错误

第三级错误主要指标为:EIT 错误、NIT 错误、SDT 错误、RST 错误、TDT 错误、SI 重复率错误、非指定PID 错误,空缓冲器错误和数据延迟错误。第三级错误并不一定对接收机解码产生致命影响。

猜你喜欢
码流字节解码
《解码万吨站》
No.8 字节跳动将推出独立出口电商APP
数字电视TS码流协议简要分析
解码eUCP2.0
高清网络摄像机图像延迟分析及解决方案
No.10 “字节跳动手机”要来了?
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于MSP430的四旋翼飞行器的S-BUS通信协议的设计与实现
一种比较ASN.1码流差异的方法