一种传输流并行复用方法、装置的制作方法

文档序号:7895231阅读:179来源:国知局
专利名称:一种传输流并行复用方法、装置的制作方法
技术领域
本发明涉及数字电视技术领域,特别涉及一种传输流并行复用方法、装置。
背景技术
随着三网融合技术的推进,数字电视得到广泛应用。视频点播业务的开展,要求在一路节目信道中传输多路节目,为充分利用频谱资源,将多个单路的MPEG-2流复用成一路含有多道节目的MPEG-2码流,以及多道节目的再复用,成为具有价值和非常重要的研究课题。目前,传输流多路复用技术主要是通过纯硬件和软硬件结合方式实现。完全用硬件实现的传输流复用器多是进口装置,价格昂贵而且技术可移植性差。软硬件相结合的方法,在复用的过程中要通过硬件对节目时钟參考PCR的值进行修正,开发成本也相对较高。随着计算机速度越来越快,在多CPU的服务器上,完全能够实现多路节目的实时软件复用。与硬件复用相比,软件复用具有灵活性高,开发成本低的优点。我国专利200510041803. 2“MPEG_2单节目传输流多路复用方法”,专利200910243916. X“ー种MPEG-2编码复用的方法”,专利201010258164. 6“ー种基于带宽占用率的多节目恒码率传输流复用算法”均公开了ー种纯软件传输流复用方法,但都是串行算法,没有发挥出多核处理器并行计算的优势。

发明内容
为了解决上述问题,本发明提出了ー种方法以及装置。在第一方面,本发明提供一种传输并行复用传输流的装置,所述装置包括输入模块,用于采用多个核来并行读入多路传输流,对传输流中的基本流ES的公共包识别符PID进行重映射,将经过重映射的所述的多路传输基本流进行存储,所述的多个核的数量与所述多路传输流的路数相等;处理模块,处理模块,用于米用一个核来处理多路传输流的PSI信息和PCR校正,重构复用传输流的节目关联表PAT和节目映射表PMT,并将重构后的PAT、PMT等节目专用信息PSI存储;所述的ー个核不属于前述用于并行读入多路传输流的多个核;复用输出模块,用于采用一个核来根据复用调度策略,对PAT、PMT、校正后的PCR和ES流进行选择复用输出,所述的ー个核不同于前述用于PAT、PMT进行重构的那个核,也不属于前述用于并行读入多路传输流的多个核。本发明中多核之间采用消息进行通讯,各核数据采用共享内存池机制。在另一方面,本发明提供一种传输并行复用传输流的方法,所述方法包括采用多个核并行读入多路传输流,对传输流中的基本流ES的公共包识别符PID进行重映射,将进行PID重映射之后的所述多路传输流进行缓存或存储,所述的多个核的数量与所述多路传输流的路数相等;采用一个核来处理多路传输流的PSI信息和PCR校正,重构复用传输流的节目关联表PAT和节目映射表PMT,并进行缓存或者存储,所述的ー个核不属于前述用于并行读入多路传输流的多个核;采用一个核来根据复用调度策略,对重构后的PAT和PMT、校、正后的PCR和ES流进行选择复用输出。所述的ー个核不同于前述用于PAT、PMT重构的那个核,也不属于前述用于并行读入多路传输流的多个核。本发明中多核之间采用消息进行通讯,各核数据采用共享内存池机制。本发明通过充分利用多核并行优势提高了多路传输流的复用效率,能够满足大规模用户并发实时服务需求。


图I为本发明实施例的一种传输并行复用传输流的装置示意图;图2A为本发明实施例的一种传输并行复用传输流的又ー种装置示意图;图2B为本发明实施例的一种传输并行复用传输流的又ー种装置示意图;
图2C为本发明实施例的一种传输并行复用传输流的又ー种装置示意图;图2D为work消息体结构示意图;图3为本发明实施例的一种传输并行复用传输流的方法流程示意图。
具体实施例方式在数字电视业务中,为了节约带宽资源,往往把多路不同的节目复用到一个频道上。要收看其中某个节目吋,必须提取出与该节目相对应的传输流,并且进行解复用。为此,设置了 PSI (Program Specific Information,节目专用信息)。所述的PSI在发送端被插入到传输流中,用以引导接收端进行解复用。具体地说,所述PSI包括PAT (ProgramAssociation Table,节目关联表)和 PMT (Program Mapping Table,节目映射表)等。所述PAT具有一指定的PID ( (Public packet IDentif ier,公共包标识符),而且所述PAT还包括各路节目的PMT的PID。所述PMT包括姆路节目的ES (Elementary Stream,基本流)的PID,以及姆路节目的PCR (program clock reference,节目时钟參考)的PID。所述的ES包括音视频流。所述的PCR用于补偿在传输流中插入PSI引起的传输流速率的改变。下面结合附图和具体实施例对本发明进行详细的说明。图I为本发明实施例的一种传输并行复用传输流的装置示意图。在图I中,所述装置包括输入模块100,用于采用多个核来并行读入多路传输流,对传输流中节目专用信息PSI中的基本流ES的公共包识别符PI D进行重映射,输出经过重映射的所述的多路传输基本流,所述的多个核的数量与所述多路传输流的路数相等;处理模块102,用于采用一个核来接收输入模块输出的含有PSI信息的多路传输流,解析其中各路传输流中的节目专用信息PSI中的节目关联表PAT、节目映射表PMT,重构复用传输流的PAT和PMT,包括所需PID值重映射以及重新计算CRC值,将重构后的PAT和PMT输出,对于包含节目參考时钟PCR的TS流进行PCR校正,所述的ー个核不属于前述用于并行读入多路传输流的多个核;复用输出模块104,用于采用一个核来根据复用调度策略,周期性输出处理模块输出的重构后的节目专用信息PSI,并对含有PCR的TS流进行PCR输出校正,从基本流ES的PID经过重映射的多路传输流中选择几路传输流进行复用输出,所述的ー个核不同于前述用于对各路传输流中的节目专用信息PSI中的节目关联表PAT、PMT进行重构的那个核,也不属于前述用于并行读入多路传输流的多个核。图2A为本发明实施例的传输并行复用传输流的又ー种装置示意图。在图2A中,所述装置包括输入模块100,处理模块102,以及复用输出模块104。其中输入模块100包括η路传输流读取以及PID重映射単元200,和存储单元202。其中η路传输流读取以及PID重映射単元用于采用η个核分别并行读入η路传输流以及对參加复用的传输流的基本流ES的公共包识别符PID进行重映射;存储单元202用于存储基本流ES的PID重映射之后的η路传输基本流。所述处理模块102中包括PSI提取单元204和PSI重构单元206。所述的处理模块102采用ー个单独的核。其中PSI提取单元204用于分析输入模块100发送的含有PSI信息的多路传输流;PSI重构单元206用于对节目专用信息PSI中的节目关联表PAT、节目映射表PMT中的所需PID值进行重映射以及重新计算PAT、PMT的CRC值,以重构复用后节目传输流的PAT和PMT。所述复用输出模块104包括PSI存储单元208,复用控制单元210,PCR校正单元212以及输出単元214。所述的复用输出模块104也采用ー个单独的核。其中PSI存储单元208用于存储重构后的节目专用信息PSI ;复用控制单元210根据复用调度策略从存储 模块202中复用输出存储的所述PID重映射之后的传输基本流,并周期性输出PSI存储单元208中的重构后的PAT、PMT,定间隔输出校正后的PCR传输流。要说明的是,输入模块100中的传输流读取以及PID重映射单元200,也可以分成两个单独的単元传输流读取单元、PID重映射単元,在此不做限定。另外,要说明的是,所述复用输出模块104中的输出单元214也可以设置输出缓存区。最后,还要说明的是,虽然前面特别指出所述处理模块使用的核不是所述复用输出模块使用的那个核,也不是所述输入模块中使用的多个核中的某ー个,但是这仅仅是本发明实施例的ー种为了尽可能提高处理速度的一种优选方式,并不能构成对本发明的ー种限制,事实上,也可以存在其他的情况,比如一核或多核共用的情况,具体比如处理模块使用的核就是所述复用输出模块使用的那个核,或者是所述输入模块中使用的多个核中的某ー个,在此不做限定。图2A中的存储模块202可以更具体为输入缓存区,PSI存储单元208可以更具体为PSI缓存区。此时的装置示意图如图2B所示。图2B所示装置的各単元及其工作原理可以參照图2A的装置,在此不再赘述。图2C在图2B所示的装置的基础上做了进ー步补充。如图2C所示,装置还包括调度単元218以及多核处理平台220。所述调度単元218用于调度相应的η路核给输入模块使用、调度单独的ー个核给处理模块使用,以及调度另ー个単独的核供复用输出模块使用。另外,图2C中,输入模块100中将传输流读取以及PID重映射単元200拆为两个独立的单元传输流读取单元200’以及PID重映射単元200”,并在这两者之间插入同步搜索単元216,用于对每一路传输流分别进行同步搜索。所述多核处理平台220用于多个核的多核处理之间的协调。综上可知,在本发明实施例中,对于输入模块100中的姆ー个传输流读取和基本流的PID重映射単元200均让其运行于ー个単独核之上;让处理模块102以及输出模块104也都分别运行在一个单独核之上。各个核之间使用work消息体进行核间通信。所述的存储模块202或者输入缓存区、PSI存储单元208或者PSI缓存区,以及所述输出缓存区都可以设置于多核平台的共享内存区。通过这种方式,充分利用了多核处理器的并行优势,提高了传输流TS流的复用效率,能够满足大規模用户并发实时服务需求。Work消息体结构定义如图2D所示,在图2D中各术语解释如下W0RD :字;HW_Chksum:消息体校验和;P0W_Next_Ptr:为硬件预留;Len:总的包长度,以字节为单位;Iprt:输入端口号;Q0S:输入数据包的优先级;Grp:数据包分组号;TT:Tag的类型,分为顺序的,原子的和空;Tag:数据流标签;Packet Decode Information:为数据包到达时硬件所需填充信息预留;Back:为硬件预留;Size:第一个缓冲区的字节大小;Addr:第一个缓冲区起始数据包的字节地址;Packet Data:包数据。图3为本发明提出的一种传输并行复用传输流的方法流程示意图。如图3所示,在步骤300,并行读入多路传输流,对基本流ES的PID进行重映射;
具体地说,采用与所述多路传输流路数相等的多个核分别并行读入多路传输流,对传输流中节目专用信息PSI中的基本流ES的公共包识别符PID进行重映射,将进行PID重映射之后的多路传输基本流放入输入缓存区。所述的基本流包括音视频流。在步骤302,重构节目专用信息PSI ;具体地说,采用ー个单独的核分析各路传输流中的节目专用信息PSI中的PAT和PMT,并重构复用传输流的PAT和PMT,包括表中所需PID值重映射以及重新进行PAT、PMT的CRC校验;对于含有PCR的TS流进行PCR校正;将重构后的PAT、PMT,以及校正PCR后的TS流放入PSI缓存区。所述的单独的核不属于前述用于并行读入多路传输流的多个核。在步骤304,选择传输流进行复用输出;具体地说,采用另ー个単独的核根据复用调度策略,从PSI缓存区周期性选择PAT,PMT输出,并对含有PCR的TS流进行PCR输出校正后输出,从基本流ES的PID经过重映射的多路传输流中选择传输流进行复用输出。所述的另一个单独的核不属于前述用于并行读入多路传输流的多个核,也不同于前述用于重构节目专用信息PSI的那个单独的核。为进ー步详细地解释本发明实施例的方案,下面以MPEG-2传输流以及Cavium公司的OCTEON CN5860多核处理器为例对本发明实施例作进ー步说明,但是这不构成对本发明实施例的限制。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。所述CN5860处理器一共拥有16个处理核,可以运行Linux操作系统和实时操作系统SE (Simple Executive,简单执行环境)。CN5860处理器使用work消息体进行核间通信。CN5860处理器集成了 P0W、FPA等协处理器。FPA是共享内存池管理协处理器,管理着预先分配的共享内存池,Linux和SE都可以访问。POW是ー个核间消息队列管理协处理器,管理着核间通信的work队列,并对work进行调度。由于0CTE0N Plus系列网络多核处理器中对数据包的处理流程依赖于具体的硬件単元,这里主要介绍下在数据包处理过程中比较重要的几个硬件単元包输入处理器单兀/输入包数据单兀PIP (Packet Input Processor Unit)/IPD(Input Packet Data Unit):这两个硬件单元协同工作,在数据包进入阶段对其进行管理, 在FPA的配合下,为接收到的数据包分配缓冲区。共享池分配器单元FPA (Free Pool Allocator Unit):该单元对可用的缓冲池进行管理,包括数据包数据缓冲。
调度/同步/ 排序单兀 SSO (Schedule/Synchronization/Order Unit):最重要的単元,允许使用灵活的方法对多个核进行调用,最大化并行处理的性能。OCTEON将每ー个到达的数据包称为ー个WORK,以WORK为单位对数据包进行调度。通过不同的流标记(flowtag), SSO对WORK的处理进行调度和排序“处理步骤”,SSO可以延时调度处理某个WORK —直到同一条流中前面的WORK处理完毕,也可以并行处理属于不同流的WORK或者同一条流中的WORK处理的不同阶段。SSO単元可以保证単一 WORK在被某个处理器核处理的时候,其他处理器核不会处理该数据包。这里不需要任何的软件锁。包输出单元PKO (Packet Output Unit):主要负责将L2/DRAM中需要发送的数据包在相应的物理接口上转发出去。本实施例中,以复用8路传输流为例,采用8个单独核来运行输入模块,采用I个単独核来运行处理模块,采用另ー个単独核来运行输出模块。所采用的各个核之间使用 work消息体进行核间通信。该方法具体步骤如下步骤I):处理模块首先获取各路传输流的码率,具体步骤包括步骤I. I):通过SSO将8路传输流的码率计算任务分配到8个不同的处理器上,进行并行运算;步骤I. 2):对于每一路传输流,码率计算如下步骤I. 2. I):解析节目时钟參考信息PCR包所对应的PID号;步骤I. 2. 2):根据指定的节目时钟參考的公共包识别符PCR_PID找到各个包含PCR信息的TS包,提取出PCR值;步骤I. 2. 3):用两相邻的PCR值计算參加复用的各路传输流的传输速率。步骤I. 3):计算各路码率之和是否大于预设的输出码率,如果大于预设的输出码率则发出警告,停止工作;步骤I. 4):接收输入模块传递的节目专用信息PSI,并进行PAT、PMT提取,重新分配其PID值,完成CRC值计算,然后将重构后的PAT、PMT设置到输出模块中的PSI缓存队列;其中节目1,节目2,…,节目η的节目映射表PMT,PID重映射公式为0χ10+0χ20*η, η为节目序号。步骤I. 5):对包含PCR的TS包进行PCR校正,输出到PSI缓存队列。PCR校正方法为当某个含有PCR域的TS包到达复用模块时,假定计数器的值为Counterl,而当含有该PCR域的Ts包离开复用模块时,假定计数器的值为Counted。于是可以得出Δ PCR = Counter2-Counterl可以得到下式PCRout = PCRin+(Counter2-Counterl) = (PCRin-Counterl) +Counter2步骤2):输入模块完成传输流同步检测,基本流的重映射等。所述基本流包括音视频流。步骤2)具体为步骤2. I):并行读入第一路到第N路传输流,对每一路传输流分别进行同步搜索,具体为捜索Ts数据流包同步字” 0X47”,由于该同步头字节并不是唯一的,负载中可能有码字也恰为其值。因此,要准确检测同步,首先找到输入缓冲区中第一个0x47,然后将其指针向后推187Byte位置,再检测是否为0x47,如果是,输出包同步信号;接着每隔187B检测一次,如是0x47,则继续输出包同步信号,如不是,则重新开始搜索0x47。步骤2. 2):对包含节目专用信息PSI的TS包封装成work消息体发送到处理模块;步骤2. 3):对音视频以及数据包的PID进行重映射,并保存到各路传输流的输入队列中。映射规则为;对于节目1,节目2,…节目n,视频VIDEO映射公式为PID=0X200+0xl00*n+l;音频 AUDIO 映射公式为PID=0x200+0xl00*n+2; PCR_PID 映射公式为PID=0x200+0xl00*n+3;DATA 映射公式为PID=0xl0+5*n+4, η 为节目序号。步骤2. 4):将重新进行PID映射的TS包,放入输入缓存队列,并将缓存区状态置为1,同时将输入缓存区首地址和长度使用work消息体发送给输出模块。步骤3):输出模块负责根据调度策略进行复用输出,具体步骤为
步骤3. I):根据总的输出码率,计算出各路码流的发包数量占空比;步骤3. 2):当需要发送TS包时,如果只有一个输入缓存区的状态显示为有,则发送该缓存区的ー个TS包用于复用;步骤3. 2):当ー个以上的缓存区的状态显示为有时,则按预先规定的优先级来决定哪ー个缓存区中的TS包应该被复用。步骤3. 3):从PSI缓存队列定时发送PSI表,发送周期小于500ms ;步骤3. 4) JiPSI队列中含有PCR的包,进行PCR校正后输出,同一节目两个连续的PCR间隔的TS包,发送周期小于40ms;步骤3. 5)当以上几种情况都不存在吋,则发送ー个空包用来复用。本发明实施例充分利用了多核处理器的并行优势,提高了传输流TS流的复用效率,能够满足大規模用户并发实时服务需求。在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另ー个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过ー些接ロ,装置或単元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的単元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理単元,即可以位于ー个地方,或者也可以分布到多个网络単元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元、器件可以集成在ー个处理单元中,也可以是各个单元単独物理存在,也可以两个或两个以上単元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能単元的形式实现。所述集成的単元如果以软件功能単元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在ー个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进ー步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明 的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种传输并行复用传输流的装置,其特征在于,所述装置包括 输入模块,用于采用多个核来并行读入多路传输流,对传输流中的基本流ES的公共包识别符PID进行重映射,将经过重映射的所述的多路传输基本流进行存储,所述的多个核的数量与所述多路传输流的路数相等; 处理模块,用于采用一个核来处理多路传输流的节目专用信息PSI和校正节目时钟参考PCR,重构复用传输流的节目关联表PAT和节目映射表PMT,并将重构后的PAT、PMT等节目专用信息PSI存储;所述的一个核不属于前述用于并行读入多路传输流的多个核; 复用输出模块,用于采用一个核来根据复用调度策略,对所述重构后的PAT、所述重构后的PMT、校正后的PCR和ES流进行选择复用输出,所述的一个核不同于前述用于重构PAT、PMT的那个核,也不属于前述用于并行读入多路传输流的多个核。
2.如权利要求I所述的装置,其特征在于,所述装置的全部核之间采用消息进行通讯,各核数据采用共享内存池机制。
3.如权利要求1-2之一所述的装置,其特征在于,所述的传输流是MPEG-2传输流。
4.一种传输并行复用传输流的方法,其特征在于,所述方法包括 采用多个核并行读入多路传输流,对传输流中的基本流ES的公共包识别符PID进行重映射,将进行PID重映射之后的所述多路传输基本流进行缓存或存储,所述的多个核的数量与所述多路传输流的路数相等; 采用一个核来处理多路传输流的节目专用信息PSI和校正节目参考时钟PCR,重构复用传输流的节目关联表PAT和节目映射表PMT,并将重构后的节目专用信息PSI进行缓存或者存储,所述的一个核不属于前述用于并行读入多路传输流的多个核; 采用一个核来根据复用调度策略,对所述重构后的PAT、重构后的PMT、校正后的PCR和ES流进行选择复用输出;所述的一个核不同于前述用于重构PAT、PMT的那个核,也不属于前述用于并行读入多路传输流的多个核。
5.如权利要求4所述的方法,其特征在于,所述方法使用的全部核之间采用消息进行通讯,各核数据采用共享内存池机制。
6.如权利要求4-5之一所述的方法,其特征在于,所述的传输流是MPEG-2传输流。
全文摘要
本发明提供了一种传输并行复用传输流的方法及装置,其中装置包括输入模块,用于采用多个核来并行读入多路传输流,对传输流中的基本流ES的公共包识别符PID进行重映射,将经过重映射的所述的多路传输基本流存储到每路对应的ES缓冲区,所述的多个核的数量与所述多路传输流的路数相等;处理模块,用于采用一个核来处理多路传输流的PSI信息和PCR校正,重构复用传输流的节目关联表PAT和节目映射表PMT,并将重构后的PAT、PMT等节目专用信息PSI存储;复用输出模块,用于采用一个核来根据复用调度策略,对所述重构后的PAT、重构后的PMT、校正后的PCR和ES流进行选择复用输出。本发明中多核之间采用消息进行通讯,各核数据采用共享内存池机制。本发明发挥了多核处理的并行优势,提高了传输流复用效率,能够满足用户大规模实时并发的需求。
文档编号H04N21/236GK102665104SQ20121014330
公开日2012年9月12日 申请日期2012年5月9日 优先权日2012年5月9日
发明者张武, 曾学文, 王劲林, 邓峰 申请人:中国科学院声学研究所, 北京海力汇通数字系统技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1