用于多通道、多流、复用的传输流处理的多格式流再复用器 相关申请
本申请要求2007年6月25日提交的,名为“Multi-format StreamRe-Multiplexer For Multi-Pass,Multi-Stream,Multiplexed TransportStream Processing”的美国临时专利申请60/946122的优先权,通过引用将其并入此处用于各种目的。
【技术领域】
本公开涉及数字视频编码,并且更特别地,涉及用于多通道、多流、复用的传输流处理的多格式流再复用器。
背景技术
在数字录像机中,需要处理广播数据流以在可以将广播数据流存储到本地硬盘之前移除广播加扰。同样地,在将程序数据存储到本地硬盘之前执行附加的加扰,并且为了回放所存储的程序数据必须执行对加扰数据的解扰。
用于执行加扰和解扰功能的传统结构通常是特定实现的,并且需要多个传输流处理器来执行加扰和解扰。对大量传输流处理器的需求不仅增加了数字录像机的成本,还使得指定的数字录像机结构不能用于不同媒体,例如数字视频广播和数字卫星系统结构中。
【发明内容】
因此,提供了一种传输流再复用器,其允许在系统中使用单个结构以处理利用不同广播标准的节目,并且降低了执行传输流的加扰和解扰所需的传输流处理器的数量。
在本发明的一个示例性实施方式中,提供了用于传输流处理的设备。该设备包括多个数据输入以及用于从多个数据流输入接收多个数据流并将数据流复用成传输流的传输流再复用器。传输流处理器接收传输流,将传输流解复用以处理该数据流中的一个或更多个,并将处理后的数据流提供给传输流再复用器作为该多个数据流之一。
在阅读了随后与附图相结合的详细描述后,本领域技术人员还将认识到本发明的优势和出众的特征以及本发明的其它重要方面。
【附图说明】
图1是依照本发明的示例性实施方式用于传输流再复用的系统的图;
图2是依照本发明的示例性实施方式用于多通道解复用的系统的图;
图3是依照本发明的示例性实施方式用于三记录加回放的系统的图;
图4是依照本发明的示例性实施方式用于记录和回放被本地加扰的硬盘驱动器信号的系统的图;
图5是依照本发明的示例性实施方式用于记录和回放被超级加扰的硬盘驱动器信号的系统的图;
图6是依照本发明的示例性实施方式用于三通道处理以输出被超级加扰的硬盘驱动器信号的系统的图;
图7是依照本发明的示例性实施方式示出用于空分组插入的方法的传输流再复用器的图700。
【具体实施方式】
在随后的描述中,整个说明书和附图中相似的组件分别采用相同的附图标记来表示。附图可以不按比例,并且特定组件可以以概括或示意的形式示出,并且为了清楚简明起见采用商用标记来进行标识。
图1是依照本发明的示例性实施方式用于传输流再复用的系统100的图。可以将系统100实现为硬件、软件或者硬件和软件的适当组合,并且可以是一个或多个可编程的不连续组件。这里所使用的“硬件”可以包括不连续组件的组合、集成电路、特定应用的集成电路、现场可编程门阵列或其它合适的硬件。如这里所使用的,“软件”可以包括一个或多个对象、代理、线程、代码行、子程序、单独的软件应用程序、两行或更多行代码或者在两个或多个软件应用程序中或在两个或多个处理器上工作的其它合适的软件结构、或者其它合适的软件结构。在一个示例性实施方式中,软件可以包括在通用软件应用程序(例如,操作系统)中工作的一行或更多行代码或者其它合适的软件结构,以及在专用软件应用程序中工作的一行或更多行代码或者其它合适的软件结构。
系统100包括传输流再复用器(TSR)104,TSR 104可以处理多个传输流,例如执行关于单个传输流的多个任务、关于多个传输流的单个任务、或者其它合适的处理。为了执行关于单个传输流(TS)的多个任务,传输流再复用器104经由数据总线TSI和TSO耦合到传输流处理器106,并允许其处理传输流,然后将传输流寻路回到传输流再复用器104并与初始传输流再次复用。以这种方式,传输流处理器106可以实现第二通道并对传输流执行附加处理。
如这里所使用的,术语“被耦合”和其同源术语(例如,“couples”或者“couple”)可以包括物理连接(例如:线缆、光纤、或电信介质)、虚拟连接(例如,通过数据存储设备的随机指定存储位置或者混合文本传输协议(HTTP)链路)、逻辑连接(例如,通过集成电路中的一个或多个半导体设备)或者其它合适的连接。
为了执行关于多个传输流的单个任务,传输流再复用器104允许多个传输流在被寻路到传输流处理器106之前被再复用成单个传输流。
传输流再复用器104可以再复用多个传输流以由单个传输流处理器106进行处理,可以在单个传输流处理器106中执行多通道解复用以支持对硬盘驱动器(HDD)或本地网络(LAN)的本地加扰/解扰,可以执行空分组插入,可以执行可变比特率(VBR)到连续比特率(CBR)的转换,可以执行混合的程序流(PS)和传输流(TS)处理,并且可以执行其它合适的功能。
系统100容纳需要在将数据存储到HDD之前移除广播加扰的数字录像机,这意味着在记录阶段解扰和加扰都需要。系统100还容纳需要将加扰保持在HDD上的数字录像机,这意味着在回放时必须解扰TS两次。系统100还容纳需要在一个流上产生三通道以移除本地加扰、移除广播加扰,然后再次应用本地加扰以输出到另一解码器的数字录像机。因此,系统100提供了一种解决方案,其可以应用在很多不同的、现有或将来的数字视频录像结构中。
可以配置传输流再复用器104来提供多输入的先入先出缓存器,其来源于经由传输流交换机(TSS)102的输出、直接存储器存取(DMA)的输出或者来自传输流处理器106的传输流输出的外部输入。传输流再复用器104还可以提供多输出,例如,一个输出到传输流处理器106的传输流输入,一个输出到传输流交换机102。传输流再复用器104可以执行分组报头的自动同步或外同步、分组标识符(PID)过滤(例如,从针对每个传输流再复用器的64PID表或者其它合适的结构)、从PID的值到PID和流索引的PID重映射。传输流再复用器104还可以执行流仲裁以控制再复用顺序,可以将PID过滤后的传输流获取到主存储器,可以管理对主存储器的传输流溢出以进行比特率平滑,可以将程序流(PS)重新封装成用于再复用的传输流并且可以执行其它合适的功能。
传输流再复用器104从传输流交换机102接收传输流输入,传输流交换机102可以从一个或更多个网络接口模块(NIM)、高速数据端口(HSDP)、从传输流处理器106的传输流输出(TSO)、从系统直接存储器存取(DMA)控制器、或者从其它合适的源接收传输流输入。
传输流再复用器104将传输流输出反馈到传输流交换机102(其可以输出到高速数据端口)、反馈到传输流处理器106的传输流输入(TSI)、或者其它合适组件。传输流再复用器104还可以访问系统存储器,该访问系统存储器作为各种输入FIFO缓存器的溢出设备或者用于将过滤后的传输流获取到系统存储器缓存器。对于DMA源,传输流再复用器104可以通过将数据分成184字节的有效负荷并增加4字节的报头,或者通过其它合适的数据分组结构将程序流(或任何合适的原始数据)重新封装成传输流。
传输流再复用器104可以处理数字视频广播(DVB)的188字节传输分组、数字卫星业务(DSS)的130字节传输分组或其它合适的传输流。为了支持多个或混合型的传输分组,传输流再复用器104可以将一种类型的传输分组转换为不同类型的传输分组,例如,将DSS传输分组转换为DVB传输分组或进行其它合适的转换。这种转换允许传输流处理器106的微代码或其它组件同时处理DVB、DSS或其它合适的传输分组。
此外,传输流再复用器104可以支持具有不同同步字节和不同分组长度的“备选传输分组”规范。在一个示例性实施方式中,如果与DVB分组标识符定义相符,备选传输分组可以被处理为DVB传输分组。以这种方式,可以将例如附加控制字节的特征添加到备选传输分组。传输流再复用器104还可以通过将数据重新封装成188字节的DVB传输分组或其它合适方式来处理程序流。
由主机CPU 108将总线110用于配置,并且总线108用于向系统存储器110传输数据或传输来自DMA控制器112的数据。
图2是依照本发明的示例性实施方式示出多通道解复用数据流的系统200的图。多通道解复用允许高度灵活的加扰、解扰、解复用和寻路拓扑结构。
系统200包括通道一202、通道二206、和通道三210以及各自相关联的加扰/解扰204、加扰/解扰208以及加扰/解扰212。在一个示例性实施方式中,通道一202、通道二206和通道三210以及相关联的加扰/解扰204、加扰/解扰208以及加扰/解扰212表示相同的物理资源,例如传输流处理器或其它合适的资源。
在一个示例性实施方式中,将来自网络接口模块(NIM)、高速数据端口、直接存储器存取或其它源的输入提供到通道一202,以由加扰/解扰204进行处理。来自通道一202的输出被提供到通道二206和通道三210以及解码器、录像机、高速数据端口或其它合适的目的地。相似地,通道二206的加扰/解扰208产生提供到通道三210和其它合适目的地的输出,并且将通道三210的加扰/解扰器212的最终输出输出到合适的目的地。
硬盘驱动器加扰利用了本地加扰算法,该算法在传输流被存储到该盘之前应用到传输流。如果不在硬盘驱动器加扰之前移除广播加扰,则可以将该过程称为超级加扰。传输流再复用器104通过允许传输流处理器106在传输流上执行多通道来协助硬盘驱动器加扰。
尽管可以在单通道3级流水线中进行3通道,在某些环境中,广播算法和本地算法是相同的,这可能需要在每个传输流处理器中有3个加扰器/解扰器的实例。这种流水线结构的另一问题是某些应用需要流水线上有多个抽头(tap)出来(每级后一个),这将需要对传输流处理器106硬件和微代码进行重大的改进。为了避免这些问题,传输流再复用器104允许传输流处理器106对每通道使用相同的加扰器/解扰器。
当在每通道后将传输流返回传输流再复用器104时,对PID进行重映射,以使得传输流处理器106在再次看到该PID时可以识别应当执行哪个通道。
图3是依照本发明的示例性实施方式用于三记录加回放的系统300的框图。系统300允许单个传输流处理器308处理多个输入的记录从而共享昂贵的资源,例如解扰器。传输流交换机302将高速数据输入HS0、HSl和HS2以及直接存储器存取输入DMA0提供给传输流再复用器304,传输流再复用器304使用再复用器306将该数据输入再复用成单个传输流TSI。传输流处理器308接收并解复用传输流TSI,以处理多个输入的记录,从而共享传输流处理器308的资源。系统300提供了一种可以基于应用的特定设计需求来容易地适应的灵活的结构。
图4是依照本发明的示例性实施方式,用于记录和回放被本地加扰的硬盘驱动器信号的系统400的图。除被加扰的硬盘驱动器数据信号DMA0外,传输流再复用器404接收通过传输流交换机402的高速数据信号HS0,并且使用再复用器406再复用这些信号以产生传输流TSI。传输流处理器408接收传输流TSI并且解复用器410对该流进行分离,以使广播解扰412、本地加扰414以及本地解扰416进行处理。将广播解扰412的高速信号输出TS0提供给传输流再复用器404,以使得可以将其重新提供给传输流处理器408用于本地加扰414或者本地解扰416的随后处理。将本地加扰414的输出输出到合适的目的地,例如硬盘驱动器,并将本地解扰416的输出输出到合适的地目的地,例如解码器。
图5是依照本发明的示例性实施方式用于记录和回放被超级加扰的硬盘驱动器信号的系统500的图。系统500包括传输流再复用器504,传输流再复用器504接收通过传输流交换机502的高速数据信号HS0,并对信号HSO与本地解扰信号TS和硬盘驱动器信号DMA0进行再复用以产生传输流信号TSI。传输流处理器508的解复用器510解复用传输流信号TSI以向本地解扰512、广播解扰514以及本地加扰516提供信号。将本地解扰512的输出提供回传输流解复用器504作为TSO,用于随后的再复用以及广播解扰514的处理。将广播解扰514的输出输出到合适的目的地,例如解码器,并将本地加扰516的输出输出到合适的目的地,例如硬盘驱动器。
图6是依照本发明的示例性实施方式用于三通道处理以输出被超级加扰的硬盘驱动器信号的系统600的图。传输流再复用器604接收被超级加扰的硬盘驱动器信号DMA0,再复用器606将DMA0与其它信号一起再复用以提供传输流信号TSI。传输流处理器608的解复用器610接收传输流信号TSI并解复用该信号以产生到本地解扰612、广播解扰614以及本地加扰616的输出。将本地解扰612的输出作为信号TSO提供到传输流再复用器604,并将广播解扰614的输出输出回传输流再复用器604的再复用器606以用于随后的本地加扰。将本地加扰616的输出输出到合适的目的地。
图7是依照本发明的示例性实施方式,包括用于空分组插入的方法的TSR700的图。空分组插入允许传输流再复用器接受可变比特率(VBR)传输流并且使用空分组填充传输间隙。可变比特率传输流是具有数据突发的流,其可以包括数据分组之间任意长度的没有数据的间隙。在插入空分组之后,可以将传输流处理为固定比特率(CBR)传输流。
可以将可变比特率到固定比特率的转换用于防止传输流处理器微代码由于数据中的传输间隙而停下来。还可将可变比特率到固定比特率的转换用于在高速数据端口输出处从内部可变比特率传输流中产生固定比特率流。例如,被记录到硬盘驱动器的过滤后的传输流可以固有地是可变比特率数据,然而当回放过滤后的传输流时,期望发送固定比特率传输流。
系统700允许暂停空分组插入,除非在输出FIFO缓存器中存在足够的空间用于空分组插入。输入FIFO缓存器702A到702C、704A到704C以及724可以提供至少两个功能。一个功能是同步传输流交换机的外部接口和直接存储器存取数据信号,以及,第二功能是缓存即时数据速率。
确定传输流交换机FIFO缓存器704A到704C的大小,以当其不在上下文中时处理实时数据速率,并且确定传输流输出FIFO缓存器724和直接存储器存取FIFO缓存器704A到704C的大小,以允许其容纳整个分组。直接存储器存取FIFO缓存器704A到704C可以接受数据的任何字节排列,例如,其中地址和处理大小都可以是任何合适的字节数。
仲裁器706以输入FIFO数据等级、输出FIFO缓存器722A和722B数据等级的函数来确定对存储在输入FIFO缓存器702A到702C、704A到704C以及724中的数据进行再复用的顺序,并确定合适的优先权方案。一种示例性的优先权方案如下:仲裁器706按顺序循环通过每个输入,并且为具有至少一整个可用分组且具有可用于接收分组的相关联目的地的任意输入FIFO缓存器702A到702C、704A到704C以及724提供服务。
空分组被独立过程所仲裁,如果开启空分组插入,并且没有输入或取得的分组准备好且目的地的输入FIFO具有足够的空间,则TSR将将空分组插入到输出。
分组同步710处理对传输流的同步。在传输流交换机或TSO进行输入的情况下,这可以是从同步信号获得同步的“外同步”,或者在所有情况下,这可以是从数据获得同步的“自动同步”。外同步和自动同步都支持DVB或DSS同步过程。自动同步通过保持针对每个可能的字节位置的候选列表并消除候选直到仅有一个剩余来起作用。
可以对不需要同步的“原始模式”的每个流禁止分组同步710,尽管为了与其它流的公共性仍然对数据进行封装。在一个示例性实施方式中,分组大小可以是188字节或者其它合适值。可以允许分组同步710在对判定器706让步之前消耗最多值一个分组的数据,可以使用其它合适的定时。可以为每个输入流保持分组同步的上下文,以使得可以从同步过程停止处恢复该过程。
PID滤波器712基于PID值确定是保持还是丢弃传输分组。传输流再复用器可以通过值或通过引用来匹配PID。当通过值来发生匹配时,传输流再复用器可以在PID表708中搜索PID。当通过引用来发生匹配时,PID已经被映射到PID表708的索引,不需要被再次匹配。
在一个示例性实施方式中,可将PID表708实现为保持64个PID和相关联的数据的随机访问存储器。每一项可以包括使能比特和指示PID所应用到的流的流标识符。
PID重映射716可选地使用索引而不是PID来代替分组报头的13比特(DSS中为12比特)。由于可以使用传输流处理器在报头中发现的值来直接指定PID索引,重映射使得传输流处理器在处理分组时不必执行PID搜索。重映射还通过使所有传输流中所有的PID被重映射到唯一的值而防止传输流之间的PID冲突。
在一个示例性实施方式中,可对传输分组报头的16比特(DVB情况中在0x47之后)进行如下的重映射,或者也可以或可替代地使用其它合适的重映射。
比特 描述
5∶0 PID索引
7∶6 流的源 00=TSS输入 01=DMA输入 10=TSP TS输出 11=保留
9∶8 流索引
11∶10 通道索引
12 保留(不是DSS报头中PID的一 部分)
15∶13 保留(不是DVB或DSS报头中 PID的一部分)
当重映射一个已经被重映射的PID时,使通道索引增加1。除了PID重映射外,该块还用于将DSS分组重新封装为DVB分组,以允许传输流处理器同时处理两种分组类型而不需要提前知道分组的类型。
当重新封装时,重映射可以对DVB PID、DSS业务信道标识符(SCID)、DVB PID及DSS SCID两者或者其它合适的数据进行重映射。如果DVB PID没有被重映射,则其是原始DSS SCID的复制。在一个示例性实施方式中,DVB或者重新封装的DSS分组可以具有根据与同步字节有关的外部错误引脚的状态来插入传输错误指示比特。
对于DSS到DVB TS的重新封装,可以增加适应字段控制(ADFC)字节,如下所示,传输加扰控制比特设定为清零(00),适应字段控制比特设定为没有适应字段,有效负荷仅为(01)以及连续计数器每PID地适当增加,或者以其它合适的方式。
0 0x47 1 PID 3 ADFC 4 SCID 6 DSS有效负 荷 134187 填充
当执行程序流(PS或原始数据)到DVB传输流的重新封装时,传输流再复用器可以为每184字节的有效负荷增加4字节报头。所用的PID可以来自PID表708。传输流再复用器可以使用其发现的与流类型、流索引匹配并具有使能的程序流PID比特的第一个PID。如果没有PID表708的项相匹配,则传输流再复用器可以使用为零但是具有被相应地设置的流类型、流索引和通道索引的索引。可以使用与和DSS重封装的情况相同的方式或者其它合适的方式来设定ADFC字节:
0 1 3 4 187
0x47 PID ADFC PS有效负 荷
存储器溢出718可以对过滤后的传输流的系统存储器缓存器进行直接存储处理,可以担当用于输入缓存器702A到702C,704A到704C以及724的溢出缓存器,或者可以执行其它合适的功能。
如果传输流再复用器检测到传输流交换机的输入FIFO缓存器702A到702C由于不能得到传输流处理器的服务而溢出,则可以将其溢出到系统存储器缓存器。从而,输出FIFO缓存器722A到722B随后的服务可以来自存储器,直到存储器缓存器被耗尽,这时处理可以回复到片上缓存。
指针表714为每个TSS输入保留写入指针、读取指针、开始指针和结束指针。读取指针和写入指针在其高位比特具有可选择的环绕计数器,例如环绕计数器可以位于0和4比特之间并且剩余比特(28到32)构成系统存储器地址。还可以使用或替代地使用其它合适的配置。在FIF0溢出模式中,传输流再复用器管理其自身的读取指针和写入指针。在获取模式中,传输流再复用器仅管理写入指针,而可由另一处理器来更新读取指针。
传输流再复用器可以同时支持多个输出实例,例如传输流交换机输出(例如,将输出发送回传输流交换机以进行高速数据端口输出)、到传输流处理器的传输流输入的输出、或者其它合适的输出。如果需要,可以将输入映射到输出。传输流再复用器还可以执行两个输出之间的时间分片。
以上公开的主题将被视为示意性而不是限定性的,并且所附的权利要求意在覆盖所有这样的修改、增强和落在本公开的精神和范围内的其它实施方式。因此,在法律允许的最大限度上,所要求的主题的范围为以下权利要求及其等价物的最宽许可解释所确定,而不为之前的详细描述所限制。