特别适用于数字电视的数字信息包多路复用器的制作方法

文档序号:7567741阅读:97来源:国知局
专利名称:特别适用于数字电视的数字信息包多路复用器的制作方法
技术领域
本发明涉及用于产生数字信息包的时分多路复用的一种设备,包括若干个包化模块,每个模块接收一个数字输入流;包括若干个包存储器,每个存储器接收由各自的包化模块发出的信息包还包括选择包存储器的多路转接装置,从这些包存储器中提取多路复用的信息包并将所述的信息包连续地送到该设备的输出端。
本发明更具体地涉及数字电视的领域。尤其适用于MPEG2系统标准的框架内,该标准被定义在国际标准化组织1994年6月10日发布的国际标准ISO/IEC 13818-1(草案)中(信息技术一移动图象和相关声频的通用缩码/H.222.0建议书)。该文档ISO/IEC 13818-1将为本申请书所述的有关信息包的结构的所有信息所引用。
MPEG2系统标准定义两类多路复用数字流传送流(TS)和程序流(PS)。一个“程序”被定义为一组时间相关的基本流,即,其中的每一个都带有相对于某个公用时基的将被恢复的信息。程序流PS以规模相对大并且可能变长度的信息包的形式传送单个程序。流PS被看作是产生很少误差的传送信道。通常用于存放磁盘上的信息。传送流由属于一个或多个程序的信息包组成,并且用于在可能引入误差的环境中传送信息。传送包(TP)有188个字节的固定长度,并且每一个都包含至少4个字节的TP标题。
这些多路复用流是由包化基本流(PES)构成的。直接从视频或音频编码中发出的原始基本流(ES)首先变为可变长度的PES信息包的形式。然后对PES流重新分割,以便构成将被多路复用的信息包TS或PS。目前,某些编码器输出ES级的基本流,而其它的编码器则输出PES级的基本流。基本流也可以由非视频或音频的数据组成,例如,具体程序信息(PSI)的细节数据,对某个程序的条件访问(ECM或EMM)有关的数据…。
MPEG2多路复用器的作用是接收各种基本流,形成信息包TS或PS,然后执行这些信息包的时分多路复用(转接)。
根据本发明的一种设备也可以是被称为再分多路复用器的设备。再分多路复用器是用于产生例如在本说明书中定义的多路复用的一种设备,其中,输入流中至少有一个已经成为PS或TS格式下的多路复用上游。再分多路复用器可以被用来从某个传送流中提取关于一个程序的信息包并作为另一个传送流或只包含该程序的程序流的输出,也可以用来从一个或多个传送流中提取和一个或多个程序相关的信息包,以便构造另一个传送流,或者也可以用来将某个程序流转换为传送流,以便在有损耗的环境中传送它。
每个基本流输入要求一个处理器用于包化,通过交换缓冲处理器把信息包构造成能为多路复用模块所用。每个处理器实际上大概必须执行二个包化步骤,在大位率的情况下可能需要每步用一个处理器-将原始基本流转换为包化基本流PES的第一步;-将PES信息包再转换为传递包的第二步。
每个包化步骤都需要分析输入流以便确定某些特定的字(PES层的基本同步字,或传送层的PES同步字),以便在适当的地方执行划分信息包的操作,并且在传送包标题中反映出这些同步字的可能存在。
本发明的目的是提供一种例如被定义在本说明书中的设备,该设备能以一种有效的方式处理各种类型的输入流。
在根据本发明的一种设备中,包化模块包括-接收输入流的输入缓冲区;-被连接到输入缓冲区的出口上以便检测输入流的同步字的检测电路;-连续地接收已经被提供给检测电路的输入流的字节的存储装置;-将字节从存储装置传送到包存储器的传送装置;以及-根据检测电路所检测到的同步字确定由输入流构造的包标题并将这些包标题写到包存储器并控制传送装置的处理器。
存储器按照先进先出的方式组织,以便包含每个瞬时K-k字节的输入流,K表示输出多路复用信息包的字节数,k表示包标题的最小字节数,因此,从存储装置到包存储器传送一个字节的同时也将另一个字节从检测电路传送到存储装置,这样,在开始将信息包写到包存储器之前,可能引入到该信息包的输入流的所有字节都被提供给检测电路。
将被检测的同步字可以程序设计成进入检测电路以便使包化模块能适应各种类型的输入流。在原始基本流ES的情况下,处理器一次构造两个包化层(PES和TP)。因此,关于ES流的一个完整包化模块只包括单个处理器。由于当前面的信息包正在从存储装置传送时处理器可同时确定包标题,因此,包化的处理过程还可以变得很快。
通过以下结合附图介绍的一个最佳但非限定的实施例,本发明的其它特征和优点将是很明显的,在附图中-

图1为本发明第一实施例的总原理图;-图2为适用于图1的设备中的包化模块的原理图;-图3至图5说明根据图2的包化模块的操作过程;-图6表示可用在图1设备中的多路复用模块;-图7和图8说明多路转接模块中优先级计算的一个示例;-图9表示所用在图6的多路转接模块中的选举电路;以及-图10为本发明的第二实施例的总原理图。
下面介绍的图1所示的设备被用来产生具有在MPEG2标准意义上的传送流TS格式的输出多路复用OS。应该理解为,该设备也可以被用来产生另一种类型的多路复用,尤其是在MPEG2标准意义上的程序流PS。
该设备包括几个包化模块C1,…,Cn,每个模块接收一个输入流IS1,…,ISn。这几个输入流总共带有m个基本流。在其输入流都是由分别从编码器或数据源中发出的基本流组成的多路复用器的情况下,我们有n=m。在图1所示的例子中,该IS2已经被多路转换(例如传送流TS),并且该设备在设计中考虑到被包含在该多路复用流中的两个基本流。
包化模块C1,…,Cn从所接收的每个基本流中提交传送包TP。这些传送包被存在双端口缓冲区存储器PM1,…PMm中。每个包存储器PMi从包化模块中接收信息包。处理已经被多路复用流的包化模块C2能馈送给多个包存储器PM2和PM3。在这后一种情况下,包存储器PM2和PM3能方便地包含同一存储器平面的两个不同的寻址区域。
每个包存储器PMi连接一个参数存储器ZMi,其也是一种双端口类型的存储器。每次当包化模块将信息包写到包存储器PMi中时,它还将和该信息包相关的一个参数集写入相应的参数存储器ZMi中。为了读出,包存储器PM1,…,PMm被连接到公共的包总线10上,而参数存储器ZM1,…,ZMm则被连接到公共的参数总线12上。这两个总线2被连接到多路转接模块14,该模块的作用是选择存储器PMi,从存储器PMi中提取输出多路复用OS的信息包并将所述的信息包连续地传送到设备的输出端。
包化模块Cj实时分析所接收到的基本流并将传送包提供给缓冲区存储器PMi。基本流的实时分析和双包化(PES和TP层)可能需要大的计算能力,尤其是对于视频流,在标准分辨率下视频流可能达到15Mbit/s的位速率,而在高分辨率下则可能大于100Mbit/s。图2所示的包化模块C1能满足这些苛刻的要求。
模块C1包含接收输入流IS1的输入缓冲区20。在缓冲区20的输出端上,输入流的字节在被传送到先进先出(FIFO)类型的存储装置23之前先通过检测电路22。存储装置23的输出端被连接到包存储器PM1的数据输入端。
检测电路22具体化为用户可编程门阵列(FPGA)。它包括具有每级为1字节的4个级别的移位寄存器,使输入流的字节在到达存储装置23之前先经过该寄存器;检测电路22还包括检测逻辑25,接收出现在寄存器24的各级中的4个字节。逻辑25被编程为是输入流中所检测到的状态的函数。逻辑25检测输入流的这些状态并通知微处理器26。处理器26可通过其地址和数据总线28和29访问参数存储器ZM1。总线28和29还经过三态门31被连接到包存储器PM1。
存储装置23被控制为在任何瞬间都包含输入流的184个字节,因此,每一字节离开该装置都提示输入另一个字节。存储装置23简单地具体化为具有184个1字节的级的移位寄存器。如果没有这种规格和移位寄存器,可以将几个移位寄存器级联,或者使用随机访问存储器,其读写地址采用这样一种方式产生,使得相对184字节的容量在读地址和写地址之间保持一个不变的间隔。
根据逻辑25所检测到的状态,处理器26把控制参数提供给传送定序器32,以便实现输入流的字节从存储装置23到包存储器PM1的传送。这些控制参数包括将信息包的数据写到存储器PM1的起始地址,以及从该地址开始被传送的字节数。定序器32包括地址计数器,后者初始化对处理器提供的起始地址,并随每个被传送的字节增1,直到所规定的字节数已经被传送。该计数器提供用于将字节写到存储器PM1的地址。如果存储装置23采用随机访问存储器的形式,定序器32也提供被传送字节的读地址,并采取这样的方式,使得在该存储器中服从先进先出的协议。定序器提交信号SC,对存储装置23的传送、检测电路寄存器24的移位以及从缓冲区20中读取字节等操作进行定时。
在图2所示的例子中,输入流IS1是将被包化的基本流(ES或PES)。检测逻辑25被编程以检测输入流中的同步字。规格逻辑25所检测的状态,处理器26确定被放在将被存入存储器PM1的下一个传送包的开端的标题的长度及内容。根据MPEG2标准的规格确定该标题,处理器26执行例如在文档ISO/IEC 13818-1中所述的标题格式化程序。标题的长度L可以在k=4字节和K=188字节之间选择。因此,存储装置23的K-k=184字节的容量保证信息包在开始从存储装置23传送到包存储器PM1之前,检测电路22已经分析了可被引入传送包的输入流的全部字节。
图3说明在原始基本流ES从音频编码器中发出的情况下包化模块对传送包TP的构造。根据MPEG2标准,音频FS流包括不变长度的帧,每个帧由帧标题35A开始。帧标题35A包含一个12位的同步字,并等于16进制的FFF。因此,对处理音频ES流的包化模块的检测逻辑25编程以检测该同步字FFF。由这样一个ES流构造的PES流可以直接在每个ES标题35A之前加上一个PES标题36。然而,当处理音频ES流时,本发明的包化模块并没有明确地涉及这种PES的偶然性,反之,直接构造传送包TP。在图3所示的情况下,只要逻辑25不检测输入流中的同步字FFF,处理器26计算L=4字节的标题37a,并命令将188-L=184字节从存储装置23传送到存储器PM1,以便建立传送包TP。当逻辑25在将信息包传送到存储器PM1期间检测到同步字时,处理器26计算随后的信息包的标题37b的长度L,并采用这样的方式以便用一直到所检测到的同步字的基本流的字节填补188字节的传送包。为了产生长度L大于4字节的标题,处理器26将流管理参数或填充字节引入该标题的适应字段,如MPEG2系统标准规定的那样。跟随这样构造的传送包的信息包将不包含输入流的任何字节,而仅仅包括一个TP标题37c和一个PES标题36。可以认为处理器26已经确定了37c-36的L=188的组合标题,并且执行从存储装置23中对该信息包传送K-L=0个字节的操作。根据MPEG2系统标准计算PES标题36、而TP标题37c的长度将根据前一个信息包的适应字段进行调节。
图4类似图3,但考虑的是视频类型的ES流。根据MPEG2标准,视频类型的ES流包括三类标题二包含16进制值为000001 B3的4字节同步字的序列标题35S、包含16进制值为000001 B8的4字节同步字的图组标题35G,以及包含16进制值为00000100的同步字的图象标题35P。视频ES流的结构是这样的,即使序列标题35S的后面总是直接跟着图组标题35G或图像标题35P,而图组标题35G的后面总是跟着图象标题35P。跟着每个图像35P的关于某个图象的视频数据的长度是可变的。从这样一个视频ES流中构造的PES流在每个序列标题35S之前,在前面直接没有序列标题35S的每个组标题35G之前、在前面直接没有组标题35G的每个图象35P之前,都可以包含PES标题36。然而,当本包化模块处理视频ES流时并没有明确产生对应的PES流,而是直接产生TP传送包。PES和TP标题的插入方法基本上和图3所述的音频情况下的方法相同,检测逻辑25被编程设计以检测标题35S、35G和35P的同步字。然而,处理器26并不是在所有的图象标题35P之前都插入PES标题36,而仅仅是在前面直接没有图组标题35G或序列标题35S的那些图象标题35P之前杆入PES标题36。类似地,处理器并不是都在所有的图组标题35G前面插入PES标题,而仅在其前面直接没有序列标题的图组标题之前插入PES标题。根据逻辑25所检测到的同步字,可以方便地判定各种这样的条件。
图5类似图3和图4,但考虑的是音频或视频PES类型的输入流。PES流的每个信息包中的PES标题36包括4字节的一个同步字,前3个字节的16进制值为000001,而第4个字节为流标识字节。该标识字节对于将由包化模块处理的某个给定的PES流是预先知道的,逻辑25可以被编程设计以检测PES流的4字节同步字。处理器26根据PES标题36,采用和图3及图4相同的方式执行分割为传送包TP的操作。处理器26不考虑ES标题35,而是类似于基本流的数据那样处理ES标题35。如同图3和图4的情况,处理器76可以编程设计,使得包含PES标题36的TP包并不包含基本流的数据。接着,处理器26需要知道PES标题的长度L’,以便构造只包含长度为L=K-L’字节的TP标题37C、后跟PES标题36的一个信息包。这个长度L’可以借助检测电路22从PES标题本身读出如果从PES标题的开端起第7个字节不是以两位“10”开头的,则PES头的长度为L’=6字节;否则,长度L’从PES头的两端起的第9个字节中读出(见文档ISO/IEC 13818-1)。
构造这种包含着PES标题36并仅将TP37a-37c和所述PES标题36放在包中的传送包的优点是允许编码包含基本流ES数据的所有传送包,而PES标题并不需要被编码。
处理器26利用门31被标题37a-37c与/或36写在包存储器PM1适当的位置上,并采用这样的方式使其服从图3、图4和图5所示的包TP的结构。这种写入操作可以发生在传送属于所述的信息包的输入流的188-L字节之前。也可以在以后执行,只要所述的包还在存储器PM1中,尤其是在这样的情况下要求包的TP头包含的参数取决于随后到达包化模块的信息包(例如在视频ES流情况下的图象分割参数)。
当输入流是一个多路复用传送流时,检测逻辑25被编程设计以检测指示传送包开端的同步字节。该同步字节的16进制值为47、处理器在检测到该同步字节时记录该包的输入时间。通过利用检测电路22对TP标题之后字节的分析,处理器26可读出该包的13个标识位(PID字段)并确定是否包括PCR或LTW类型的可选时态字段。PCR或LTW字段的存在是由TP标题中指定位置的若干位表示的(见文档ISO/IEC 13818-1)。PCR字段的位置是固定的,而LTW字段的位置则可以变化,以便在适当时,也可由电路22将该字段的位置指示给处理器26。
知道了该信息包的标识参数PID(表示所发出的基本流的特征),处理器26就能执行滤波操作,使得只把保留在输出多路复用中的基本流的信息包传送到包存储器。为了消除某个包,处理器命令传送序列发生器32将该包写到包存储器中某个再也不会读到的无用信息地址上。
在包化模块和多个包存储器PM2和PM3联系在一起的情况下,这些存储器被组合在相同的寻址空间中,并且根据由检测电路22提供给处理器26的标识参数PID确定传送定序器32所产生的字地址,并采用这样一种方式以便在包存储器PM2和PM3中的每一个中实现先进先出的操作。
将被保留在多路复用输入流中的基本流可以被引入各个包存储器。
图2所示的包化模块具有很大的灵活性。通过对检测逻辑25和处理器26的直接编程设计,能很方便地适应许多不同的输入流。该模块尤其适用于模块结构的设备。在ES类输入流的情况下、利用单个处理器就能同时执行形成信息包(PES和TP)的两个阶段,PES标题被看作TP标题的扩展。在再分多路复用应用中它也适用于TS或PS类型的输入流。
信息包的建立和将前一个包的数据传送到存储器PMi的操作可并行执行,这样就能处理相当大的输入位速率。传送工作可委托给某个独立的定序器,因此,就能让包化模块的单个处理器执行其它的处理操作。
处理器26执行的另一个任务是计算和该包相关的参数并将它们写入参数存储器ZMi。这些参数包括允许多路复用模块14选择包存储器的选择参数以把信息包传送到设备的输出端。因此,某些习惯上应由多路转换模块承担的任务被转移到包化模块。但处理器26的额外负担并不重,使得在任何情况下由于包化的需要对该处理器的选择不会受到明显的影响。
为了寻找输出的最佳时间分布,需要知道-能够立即退出的信息包以及可以分配给它们的最大延迟时间,-能够很快退出的信息包以及其传输可以被提出的时间。
让多路转换模块14了解这种广播信息的一个方法是要求包化模块将3个选举参数和每个被写到缓冲区存储器PMi的信息包联系起来,每个参数对应以某个时基表示的时间,该时基为包化和多路转接模块所共用。这3个参数为与之相关的信息包传送的最小时间Tmin,最大时间Tmax和理想时间Tideal。
因此,管理基本流的每个处理器26为传送每个所建立的信息包定义一个时间窗口,并且能自由地调节该窗口的宽度以适应所管理的流的性质。此外,为了帮助多路转换模块14完成其任务并使之能产生高质量的流,在其窗口中定义了该信息包的理想位置。参数Tmin、Tmax和Tideal的管理对于每类不同的输入流是明确的。
在输入流为基本流(ES,PES或数据)时,通过将等待时间T1和信息包数据输入到包化模块的输入缓冲区20的输入时间Te相加来计算最小传送时间Tmin,而传送的最大时间和最小时间之间的差Tmax-Tmin则作为基本流的类型和该流的位速率的函数来计算。如果基本流的源具有规则的位速率,则可由处理器26采用简单的方式从检测电路22的数据传送时间推出输入时间Te。如果基本流的源具有阵发的位速率,则输入时间可从由上游编码器接收到或从该流中读出的位速率线索中检索得到。等待时间T1是一个可编程的时间,目的是延迟某些流相对于其它流的传送时间。窗口的宽度Tmax-Tmin对瞬时流(尤其是视频流)要比对没有很准确的重发限制的流(例如EMM条件访问数据流)取更小的值。而且差Tmax-Tmin还是基本流位速率的递减函数。
在多路复用输入流的传送流类型的情况下,信息包的重发最小时间Tmin按信息包到该模块的输入时间Te以便在上述情况中的等待时间的函数来计算,而且还作为前面的多路复用器所采取的策略的函数。这种策略在流的TP标题的LTW字段或描述字段中表示,处理器26利用检测电路22可读出这些字段。所计算的最小时间Tmin相对于Te+T1的延迟的时间例如对应于从该流中读出的窗口位移(LTW offset)。在多路复用输入流的情况下,重发的最大时间Tmax按照流的类型的函数计算。对于传送流的大多数基本流来说,差Tmax-Tmin取值4ms。然而,对于某些特殊的情况,该差值可能被增加,以便放松对该多路复用模块的限制。
根据包含该信息包的基本流所采用的多路转接策略的函数得到信息包传送的理想时间。该时间Tideal可由相对于最小时间Tmin的偏移来定义,该位移是固定的或者和传送窗口的宽度Tmax-Tmin成比例。“早”策略对应相当接近最小时间Tmin的一种时间Tideal。这样一种策略有利于位于上游的编码器或多路转接器,它们可以使用容量较小的输出缓冲区存储器。“晚”策略对应于时间Tideal离最小时间Tmin相当远。这种策略有利于位于下游的解码器或再分多路转接器,因为其输入缓冲区存储器的容量可以被减少。在“早”和“晚”策略之间存在一个全域。
在典型的实施例中,存放在参数存储器ZMi中的选举参数为20位编码的理想传送时间Tideal、15位编码的差值Tideal-Tmin,以便15位编码的差值Tmax-Tideal,每个参数相对于90KHz参考时钟表示。这些参数被存放在存储器PMi中和相关的信息包的地址有联系的地址中。
和某个信息包相关并且被存放在参数存储器ZMi中的参数进一步包括修改参数、这些参数允许多路转换模块14在需要时可按照其传送时间的函数来更新包标题。例如,这些修改参数包括-由逻辑25检测的表示PCR类型字段或LTW类型字段是否存在的位,仅当该信息包的准确输出时间已知时这些位才能被更新,并要求非常准确的时基。在PCR类型字段的情况下,其位置相对于包的开端是固定的,可用一位来表示在该包中是否存在这样的字段。在LTW类型字段的情况下,其位置是可变的,修改参数还指示该字段在包中的位置;-包括数据部分的大小(有效负载)。该信息在多路转换模块14进一步执行包的编码时是有用的;-包标识参数PID。该信息用在再分多路复用的应用中,允许多路复用模块14确定是否需要改变该参数(在相同的标识参数PID被分配给包含在该输入流中的多个基本流的情况下)。
多路转接模块14的结构由图6表示。该模块一方面包括微处理器40和选举电路42,处理被包含在参数存储ZMi中的数据,而另一方面则包含传送序列发生器44,控制从包存储器PMi到设备的输出缓冲区46的包传送。应该理解,多路转接模块14可能包含其它的元件,例如,用于在将包写入输出缓冲区之前对被传送的包编码的元件。
多路转接模块进一步包含另一个包存储器PM0和相关的参数存储器ZM0。存储器PM0包含输出多路复用所带的程序专用的信息包(PSI),它们尤其说明每个程序流的标识参数PID(见文档ISO/IEC13818-1的2、4.4章)。通过也属于该多路转接模块14的信号源(没有表示)将这些包PSI写入存储器PMO中。和这些包相关的选举参数、Tmin、Tmax和Tideal也由该信号源写入存储器ZM0。PSI包的时间限制并不是十分苛刻的,这些包的传送时间窗口可以被取得相当宽。
从多路转接模块14的观点看来,包存储器PM0、PM1,…PMm被看作单个地址空间。同样,相对于读操作,参数存储器ZM0、ZM1,…ZMm也被看作单个地址空间。图6给出了包含于包总线10中的数据总线10D和地址总线10A。这两个总线10A和10D分别被连接到每个包存储器PMi的地址和数据输入端。总线10A上的地址在处理器40的监督下由传送定序器44产生。数据总线10D也被连接到输出缓冲区46的输入端,数据的写入由定序器44控制。
图6还给出数据总线12D和地址总线12A,它们由处理器40监督并且包含在参数总线12中。这两条总线12A和12D分别被连接到每个参数存储器ZMi的地址和数据输入端。包总线10和参数总线12由三态门48连在一起,使得处理器40能对包总线10发生命令。为了命令序列发生器44将一个188字节的传送包送到输出缓冲区,处理器40在地址总线12A上提供起始地址。该起始地址由门电路48送到总线10A,并且将定序器44和地址计数器初始化为该起始地址的值,然后递增直到该包的188个字节都被传送出去。
地址总线10A和12A对于包存储器PMi和参数存储器ZMi足够宽,足以被处理器40看作单个寻址空间。24位的地址总线适用于大容量的多路复用器或再分多路复用器(例如m≤128)。为了提高输出速度,数据总线10D和12D可以是16位总线,同时传送两个字节。
定序器44独立于处理器40,以便当前一个多路复用的包正在定序器的控制下被传送时,处理器40和电路42能对多路复用中包的传送执行处理操作。这就使得多路转接模块14能适应MPEG2标准所要求的大传输位速率。
在传送一个包之前执行的处理操作包括-选择从其中读出该包的包存储器PMi并确定将被提供给定序器44的起始地址以保证对该包的传送;-分析和所选取的包相关的修改参数以及对相应字段的可能修改。
处理器40从位于设备下游的装置中接收到用于时钟控制输出多路复用的信号CK。处理器40根据信号CK计算出下一个包传送的时间TS。
根据该传送时间TS以便出现在参数存储器ZMi的第一组位置中的选举参数Tmin、Tmax和Tideai选取将从其中提取下一个包的包存储器,这就是说,和第一批包相关的选举参数在每个包存储器PMi等待使用。
本说明书后面提供的附录1给出了用C语言写的一个选举算法的例子,可用来选择将从中提取一组多路复用包的一组包存储器。在附录1和注释中,nb_sources对应可附加在包总线10的包存储器的数目(当使用多路转接模块14的全部容量时,nb_sources=m+1),valid_TP_flag[]为长度为nb_sources的一张表,由这样一些分布变量组成,例如,如果包存储器PMi实际被连接到位置current_channel并且如果该包存储器至少包含一个等待传送的包,则valid_TP_flag[current_channel]为真,表Tmin[]、Tmax[]和Tideal[]包含在每个包存储器中等待的第一批包的选举参数,current_priority是为等在存储器PM(current_channel)中的第一个包计算的优选级系数,而elected_TP_priority则是由选举算法得到的最大的优先级系数,对应包含在存储器PM(elected_TP_channel)中的所选取的包。
优先级系数-1被分配给例如存放在存储器PM0的某个地址中的填充包,分配给该地址的存储器号为-1。如果没有一个包存储器包含一个已获得其最小传送时间Tmin的包,则该填充包被缺省选择。假定该设备的规模为其输入流位速率的和小于输出流的位速率,则在其最大时间Tmax之后,包不能被正常传送。
图7和图8表示在“早”策略(图7)情况下和“晚”策略情况下(图8)具有给定的传送窗口[Tmin,Tmax]的包的优先级系数随传送时间TS的变化。可以看出,对于某个给定的传送时间和相同的窗口,选举算法有利于已经被定义为“早”策略的流。
当前面的多路复用包正被传送时,处理器40可以实现附录1中所提供的选举算法。在这种情况下,处理器40必须执对参数存储器ZMi的读操作,处理再执行该算法。这些任务需要一定的处理器时间,这就是为什么要在高位速率的应用中最好使用如图6所示的独立的选举电路42的原因。硬连线电路42能比处理器更快地执行选举操作,并且能使处理器40免于承担相应的计算任务。
多路复用模块14包括被连接到参数总线12的双端口存储器50,以便提供对选举电路42有用的参数。处理器40从对应的参数存储器ZMi中读出和等待在每个包存储器PMi中的第一个包相关的选举参数Tideal、Tmax-Tideal和Tideal-Tmin并且写到存储器50中的等于包存储器号的地址ADD上。被处理器40写到存储器50中的还有对应前面所定义的布尔变量valid_TP_flag的位BM如果没有包存储器被连接到对应于地址ADD的位置成者如果被连接到对应于地址ADD的位置上的包存储器不包含相关瞬间的等待包,则BM=0。
图9是硬连线选举电路的示意图。该电路42包含寄存器52,处理器40将下一个传送时间TS的值写到该寄存器中。定序器54根据从处理器40中接收到的选举命令EC监督电路42所执行的操作。定序器54一开始先将两个寄存器56和58的内容初始化为值-1(缺省为填充包),其中的一个用作包含对应所选的包存储器的地址ADDS,而另一个则用作包含对应的优先级系数PRIO。定序器54接着产生命令读工作存储器50。在每个读周期上,定序器54对提供读地址的地址计数器递增一个单元,因此顺序地读出和各种可能的地址相关的参数BM、Tideal、Tmax-Tideal和Tideal-Tmin。选举电路42包括减法器60,在其正输入端上接收由寄存器52发出的传送时间TS,在其负输入端上接收由存储器50发出的理想时间Tideal。减法器60输出端的信号位控制多路复用器62,其输入端之一(正信号)接收存储器50的参数Tmax-Tideal,而其它的输入端(负信号)则接收来自存储器50的参数Tideal-Tmin。除法器64计算减法器60的输出和多路复用器62的输出之间的商。接着将除法器64所提供的当前包的优先级系数传送到比较器66的一个输入端,而比较器66的其它输入端接收寄存器58的内容。“与”门电路68一方面接收和当前包有关的位BM,而另一方面则接收由比较器66产生的比较位。如果所计算的当前包优先级系数大于被记录在寄存器58中的系数,则该比较位为1,否则为0。为了达到同步的目的,移位寄存器70对被送到“与”门电路68的位BM延迟的周期数目等于由元件60到66执行的计算所需的周期数。在由移位寄存器72延迟相同数目的周期后,定序器54所产生的地址ADD被送到寄存器56。由除法器64所产生的优先级系数被送到寄存器58。定序器54将周期时钟CCK提供给寄存器56和58以便其更新,但这种更新仅当“与”门电路68的输出为1的条件下才能执行。
上述的电路42能在很短的时间内执行附录1的选举算法。一旦选举电路扫描了所有可能的地址,就可以在寄存器56中得到,对应某存储器PMi的地址ADDS,下一个包将从该存储器PMi中读出。接着,处理器可通过参数总线12读寄存器56。
一旦处理器40由此知道所选取的包存储器PMi,它将承担以下的操作-从相关的参数存储器ZMi中读出所选包的修改参数;-处理器40分析这些修改参数,并且如果需要的话,执行对存储器PMi中该包的相应修改。为了修改一个包,处理器40通过门电路48对包总线10发出命令,从所选存储器的号数和修改参数可推出修改地址。将被修改的时间数据(PCR或LTW)作为前面所计算的传送时间TS的函数。如果需要修改标识字段PID,处理器40使用输出的多路复用映射数据(PSI)。当处理器40对包总线10发出命令时,定序器44中断正在进行的包传送。
-作为所选择包存储器的数ADDS的函数,处理器40确定提供给传送定序器44用于传送下一个多路复用包OS的起始地址;处理器用这样一种方法确定该起始地址,以便服从将各包输入到每个包存储器中的命令;-从相关的参数存储器ZMi中读出放在所选存储器PMi中的第二位置上的包选举参数并将其写到工作存储器中对应的地址上;如果不存在这样的第二个包,相应的位BM在工作存储器50中被置为0;-处理器40计算下一个包的传送时间TS并将其提供给选举电路42,也作为下一个选举命令EC。
当然,处理器40也可以执行其他的功能,这里不作详细介绍,因为和本发明没有直接的关系。
本多路转接模块的推荐结构很适应MPEG2系统标准作出的限制。包化模块为多路转接模块提供了这样的信息,从而在时间上可使各包的抵达为最佳分布,这些信息不但为其提供每个包的理想广播时间,而且还提供最小时间和最大时间,使其能服从位于下游的解码器的输入缓冲区。
多路转接模块并没有必要知道它所管理的源信息的多路转接特性(位速率,关键的多路转接因子)。因此,可以定义一种通用的多路转接卡,其可复盖多路转接以及再分多路转接的各个方面,这样可达到相当好的灵活性。
多路转接处理器被解脱出来,以便处理配置的管理问题(这些问题在基本流的数目和倍速率方面都是庞大的和难以控制的),而不需要过高的计算能力。多路复用过程是很系统化的,并且可以部分被装在非常快的硬连接逻辑电路中,例如选举电路42。
所能管理的基本流的数目m的仅受多路转接模块地址总线宽度的限制。这具有相当大的灵活性,因为包化模块能很方便地被加到多路转接模块上或从多路转接模块中删除。当电源启动并确定有多少包化模块时,设备能自我配置并将其数据写到包总线和参数总线的地址中。
各包的选举和修改所要求的参数是一致的,和包化模块所管理的流的类型无关。因此,多路转接模块忽略它所多路转接的流的性质。它只简单地确定有多少传送包的源和它联系在一起,并且系统化地工作(因此也是更快地工作)。在推荐的结构中,等在包存储空间中的每个源的每个包在参数存储空间中都有可使用的相关区域。
图10给出了图1设备的另一个实施例。在这个不同的实施例中,包化模块C1,…,Cn和多路转接模块14之间的接口包括包存储器PM1,…,PMm用于接收包的选举参数的存储器ZM1,…,ZMm,以及用于接收各包的修改参数的存储器YM1,…YMm。因此,每个包化模块将修改参数写到也和包存储器PMi相关的存储器YMi中,但YMi与选举参数存储器ZMi不同(至少在寻址上)。允许多路转接模块14将存储器ZMi组看作单个寻址空间的总线12在这种实施例中仅用于读出选举参数。在多路转接模块14和存储器YMi之间提供了一个类似的总线16,以便读出修改参数。因此,存储器YMi也被多路转接模块看作单一寻址空间。这样一种结构当选举电路为输出多路复用OS的下一个包选择一个包存储器时,允许多路转接模块的处理器对一个或多个已选出的包进行修改,可以看出这样可以提前选出几个包,可以提前的转送时间TS。例如,在包N退出输出缓冲区的同时,包N+1可以被写到输出缓冲区,包N+2可以在其包存储器中被修改并且可以选取包N+3。因此,通过增加操作的并行化程度,能够提供更高的输出位速率。
附录1<pre listing-type="program-listing"><![CDATA[int election(int Ts,nb_sources,valid_TP_flag[],Tmin[],  Tideal[],Tmax[]){int current_channel,elected_TP_channel;float current_priority,elected_TP_priority;/*将被选取的TP初始化为其缺省值 用-1的优先权填充包*/elected_TP_channel=-1;elected_TP_priority=-1.0;/*扫描源信息的主循环*/for(current_channel=0;current_channel<nb_sources;current_channel++)  if(valid_TP_flag[current_channel])  {  /*计算当前TP的优先级*/  if(Tideal[current_channel]<=Ts)  current_priority=(Ts-Tideal[current_channel])/  (Tmax[current_channel]-Tideal[current_  channel]);  else  current_priority=(Ts-Tideal[current_channel])/ (Tideal[current_channel]-Tmin[current_  channel]);  /*比较所选取的TP和当前的TP*/  if(current_priority>elected_TP_priority)  {/*更新所选取TP的参数*/   elected_TP_priority=current_priority;   elected_TP_channel=current channel;} }return elected_TP_channel;}]]></pre>
权利要求
1.用于产生时分多路复用数字信息包的设备,包括用于各接收一个数字输入流(IS1,IS2,…,ISn)的多个包化模块(C1,C2,…,Cn),用于接收从各个包化模块中发生的信息包的多个包存储器(PM1,PM2,…,PMm),以及多路转接装置(14),用于选择从中提取多路复用包的包存储器并将所述的包连续地送到设备的输出端,该设备的特征在于至少一个包化模块包括-接收输入流的输入缓冲区(20);-连接到输入缓冲区的输出端的以便检测输入流的同步字的检测电路(22);-连续地接收已经提供给检测电路(22)的输入流的字节的存储装置(23);-将字节从存储装置(23)传送到包存储器(PMi)的传送装置(32);以及-处理器(26),用于根据由检测电路(22)所检测到的同步字确定从输入流中构造的包标题,将这些包标题写到包存储器(PMi)并控制传送装置(32),其中,存储装置(23)按先进先出的方式构造,以便在每个瞬间包含输入流的K-k字节,K表示输出多路复用包的字节数,k表示包标题的最小字节数,因此,从存储装置(23)中传送一个字节到包存储器(PMi)的同时,也从检测电路(22)中传送另一个字节到存储装置(23),因此,在开始将该包写到包存储器之前,可以被引入该包的输入流的所有字节都被送到检测电路。
2.根据权利要求1的设备,其特征在于,当从输入流中发出的前一个包的字节从存储装置(23)中送到包存储器(PMi)时,包化模块的处理器(26)根据检测电路(22)执行的同步字检测,计算包标题的字节数L,并控制传送装置(32)以便连续地传送包括在所述包中的输入流的K-L个字节。
3.根据权利要求1或2的设备,其特征在于,为了处理从音频或视频编码器发出的原始基本流,包化模块的处理器(26)是这样设计的,以便根据检测电路(22)所检测到的基本流的同步字,确定第一包化层(PES)的标题和第二包化层(TP)的标题,每个被写到包存储器(PMi)的包都包含一个第二层的标题,而每个包含第一层的标题的包都以一个由处理器(26)写到包存储器(PMi)的组合标题开始,包括第二层的标题,后面跟着所述的第一层的标题。
4.根据权利要求3的设备,其特征在于,处理器(26)是这样设计的,以便用这样一种方式确定所述的组合标题,使得每个标题都占用一个包的全部K个字节。
5.根据权利要求1或2的设备,其特征在于,为了根据第一包化层(PES)处理包化的基体流,对包化模块的处理器(26)作这样的设计,以便,根据被包含在第一层的标题中并由检测电路(22)检测到的同步字,确定插入被写到包存储器(PMi)的每个包的开端的第二包化层(TP)的标题,检测电路(22)用这样一种方式进一步为处理器(26)提供第一层的每个标题的字节数L’的指示,以便处理器(26)能为包含该第一层的标题的信息包确定K-L’字节的第二层的标题。
6.根据上述任一权利要求的设备,其特征在于,检测电路(22)包括可编程的门阵列。
7.根据权利要求6的设备,其特征在于,检测电路(22)包含具有k个字节的长度、位于输入缓冲区(20)的输出端和存储装置的输入端(23)之间的移位寄存器(24),以及接收移位寄存器(24)中的k个字节并指示处理器(26)检测同步字的可编程检测逻辑(25)。
8.根据上述任一权利要求的设备,其特征在于,进一步对包化模块的处理器(26)作这样的设计,以便计算和写到包存储器(PMi)的每个包相关的参数,并且将这些参数写入和所述包存储器相关的至少一个参数存储器(ZMi;YMi)。
9.根据权利要求8的设备,其特征在于,和某个包相关的参数包括允许多路转接装置(14)选取包存储器的选举参数,以及/或者在将该包送到设备的输出端之前对多路转接装置(14)指示是否必须修改该包的一个或多个被确定的部分的修改参数。
10.根据权利要求8或9的设备,其特征在于,采用这种一种方法,通过某个公共的包总线(10)将多路转接装置(14)连接到包存储器组,使得包存储器组(PMi)对多路转接装置构成单一的寻址空间,并且其特征还在于,采用这样一种方式将多路转接装置(14)经某个公共的参数总线(12)连接到参数存储器组(ZMi),使得参数存储器组构成对多路转接装置的单个寻址空间。
全文摘要
设备的包化模块包括检测输入流中的同步字的检测电路(22);接收已经提供给检测电路(22)的输入流的一系列字节的存储装置(23);使能传送到包存储器(PMi)的装置(32);以及根据检测电路(22)所检测到的同步字确定为输入流构造的包标题,将这些包标题写入包存储器(PMi),并控制传送装置(32),使得当前一个包的字节正在从存储装置(23)被送到包存储器(PMi)时,能确定一个包的标题的长度的处理器(26)。
文档编号H04J3/24GK1166905SQ95196438
公开日1997年12月3日 申请日期1995年10月23日 优先权日1994年10月26日
发明者琼-米歇尔·马森, 弗雷德里克·格尼厄 申请人:马特瑞通讯法国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1