您当前的位置:五五电子网电子知识通信技术综合通信技术多路数字电视节目系统级复用原理分析 正文
多路数字电视节目系统级复用原理分析

多路数字电视节目系统级复用原理分析

点击数:7475 次   录入时间:03-04 11:49:09   整理:http://www.55dianzi.com   综合通信技术

    根据 MPEG-2 标准,TS流中的 PCR字段长度为 48b, PCR 也是另外一种时间标记,是编码 器 27MHz 时基的 42b 采样值,解码器利用它来恢复系统时钟并进行恰当的解码操作,它有 两个部分组成:一部分以本地参考时钟的 1/300 (90kHz) 为单位,称为 program_cLOCk_reference_base ,为 33b 字段;另外一部分称为

    program_clock_reference_extension,是以本地参考时钟(27MHz)为单位的 9b字段。

    g1.jpg

    其中 sysclkfre 为系统时钟 27MHZ。PCR 的单位是 1 /27M 秒,分为两部分表示。实际编程中,当得到一个新的 PCR 值,用式(1)和式 (2) 得到 PCR_base ( 33bit) 和 PCR_ext ( 9bit)两 部分,填入 TS 帧中。在输出码率恒定的情况下,每一个 TS 帧传输所用的时间△PCR 值可以通过下式计算:

    g2.jpg

    其中 nCoderate 为输出的总码率。△PCR 就是每一个 TS帧的时间刻度。

    系统开始运行时,确定一个 PCR 的初始值,并为每一路申请一个计数器 nCounter变量,计数在两个 PCR 帧之间的 TS帧数,根据以下公式计算新的 PCR值:

    g3.jpg

    式中,PCR_old 代表上一个 PCR 的值,PCR_new 代表当前新 PCR 的值。在得到新的 PCR 值之后, 用公式(1)(2)(3) 计算出 PCR_base和 PCR_ext 写入帧中, 同时 PCR_old = PCR new, nCounter=0。 nCouter 是对整个传输流而言的,不管 TS 帧是不是当前计算的这路 TS 的内 容,或者空帧,nCounter都要累加。

    在 MPEG2 协议中,PCR 由 PCR_base(33bit)和 PCR_ext(9bit)表示,总共 42bit,当 PCR的值 超过 42bit 所能表达的范围时,需要循环重新开始。由于 PCR 和 PTS以及 DTS的关系,在 重新开始循环 PCR 的时候,一定要将 PTS 和 DTS 也重新回 0,同时要将 PCR 帧中调整域 中的 discontinuity_inDICator字段置 1。

    由于市场上的解码器千差万别, 有的解码器中并没有为PCR留足42bit, 在这种解码器中PCR 通常会在解码器端被提前回 0,而 PTS 和 DTS 并没有随之一起复位,这就会造成解码器的 上溢,导致播放不正常。所以在实际中,本文判断 PCR 是否达到回 0 的阀值略低于 42bit 所能表达的最大值,这样会提高对解码设备的适应性,同时不会造成协议上的冲突。PCR 时钟处理的具体流程如图 5 所示.

5.jpg

    5.TS流软件复用系统的程序设计与测试结果分析

    通过对 MPEG-2 传输流应用结构的仔细分析,可以看出 MPEG-2 传输流所传送的只是彼此 独立的原始流数据和把特定的原始流组合成一个节目的 PSI 信息, 并没有传送一个不可分割 的真正意义上的节目,因此在一定程度上保证了 TS流软件复用程序的可行性。

    所设计程序并不需要对组成节目的原始流进行内容的处理, 不管构成某节目的原始流是音频 还是视频还是私有数据,程序所要做的只是改动携带原始流的传输流分组的标记信息,并把 它发送到输出的传输流, 接着在复用后的传输流中也要发送该原始流所构成的节目的节目映 射表。与此同时,需要注意的一点是,由于输入的各个传输流相互独立,它们为各自的节目 分配的 PID、节目号之类的标志信息很可能会发生重复的情况,所以对于原始流分组,并不 能简单的转发,因此,程序将为各个传输流中的原始流分配新的 PID,以及为不同的节目分配新的节目号,从而形成一个新的传输流。



www.55dianzi.com

    程序结构如图 6 所示,图中的每一个 TSProcessor对象对应着程序系统中的要进行复用的每 一个输入传输流, TSProcessor对象所包含的输入模块负责向 TSProcessor对象的处理函数提 供传输流数据。传输流既可以从文件输入,也可以是内存中的一块缓冲区的数据。这样适合于复用实时转播的节目和存在本地硬盘上的节目。输出模块是一个供所有 TSProcessor对象 使用的全局对象,每个TSProcessor对象的线程轮流获得输出模块的控制权,向输出模块发 送传输流分组数据。 全局变量区存储所有传输流的结构信息, 以及生成的传输流的相关信息。 应用系统可以根据实际的需要随意的增减输入传输流的数目,输入方式,优先级,并且可以 在复用的过程中随时插入新的传输流,或者删除掉某正在复用的传输流。

6.jpg

    基于以上分析, 应用 VC++开发环境设计实现了 TS流分析与复用软件系统 TSAM (Transport Stream Analyzer and Multiplexer),主界面如图 7 所示。作者对复用系统进行设计和测试的硬 件平台是奔腾 M2.9G、512M 内存。复用三路 3M 大小的传输流,大约使用了 1 秒的时间生 成了大约 8M 字节大小的传输流,平均复用速率约为 40Mbits。复用九路 3M 大小的传输流, 大约使用了 5 秒的时间生成了大约 30M 字节大小的传输流,平均复用速率约为 48Mbits。复 用速率达到并远远超过了一路传输码流的处理速度,由于现代 PC 性能的强劲,得到了比较 理想的试验结果。另一方面,由于复用系统的输入输出都是对文件操作,硬盘的读写速度对整个系统的性能也有影响。在实际的应用系统中,输入都是不断刷新的内存缓冲区,输出是 输出模块的缓冲区,由于数据的操作都是在内存中进行,并不涉及硬盘等机械装置的运作,还会进一步提高系统的性能。

7.jpg

    6.结论

    本文分析了多路数字电视节目系统级复用原理,并对数字电视节目专用信息 PSI 的提取和重 构及系统层节目时间参考 PCR 值的修正等关键技术进行研究,提出了进行软件复用的具体 方法,最后在 Windows平台上,应用 VC++开发环境设计实现了 TS流分析与复用软件系统 TSAM,测试结果表明软件复用速率达到并远远超过了一路传输码流的处理速度,该软件复 用方案是有效可行性的。用软件实现传输流的复用,可以节约硬件成本,降低系统的开发费 用;且算法全部软件实现,可移植性高,具有良好的扩展性,可以方便灵活的加入数字电视节目指南等辅助信息。



上一页  [1] [2] 


本文关键字:数字电视  综合通信技术通信技术 - 综合通信技术

《多路数字电视节目系统级复用原理分析》相关文章>>>