使用多个可编程处理器的多信道mpeg视频代码转换器的制作方法

文档序号:7598964阅读:249来源:国知局
专利名称:使用多个可编程处理器的多信道mpeg视频代码转换器的制作方法
技本领域本发明涉及数字视频图象的代码转换,具体而言,涉及使用并行操作的多个代码转换处理器的特定结构。
背景技术
数字视频数据的传输,例如通过诸如有线电视或卫星电视网络等的宽带通信系统的传输已变得越来越普及。在用户家庭中使用数字解码器/机顶盒来接收该数字视频信号,并以一种适合于显示在电视或视频显示终端上的格式处理该信号。
通常,源视频序列可以为任何格式,例如,就空间分辨率而言,有帧速率、帧大小、彩色取样格式、隔行或顺序扫描格式、比特率、分辨率(例如高清晰度或标准清晰度)、或噪声滤波的数量和类型。另外,可以任何速率对该源视频序列进行预编码,无论是恒定的比特率(CBR)还是可变的比特率(VBR)。
但是,对于许多应用而言,预压缩位流必须对应于唯一指定的可允许的或期望的视频格式和速率。因此,通常需要在将该视频数据传递给机顶盒和/或网络中的某个中间点之前,改变它的格式或其它特征。
可由代码转换器来提供所需的格式改变。通常,多信道视频代码转换器是可将一组预压缩视频位流,例如符合MPEG标准的位流转换为另一组视频位流的仪器。这种转换仪器可完成多种功能,例如改变比特率、插入和删减位流、变换分辨率和位流的再多路复用等。可增加和删减数据信道。这种仪器的基本功能器件为单信道MPEG视频代码转换器。
用于MPEG位流的顺向代码转换器可以仅仅是级联的MPEG解码器和编码器。首先,该级联代码转换器对该压缩位流进行解码,以获得重构的视频序列。然后对该重构视频序列再编码,获得适合于传输的不同的压缩位流。另外,已建议更有效的代码转换器,其重新利用运动向量并将宏块模式的改变降至最小。
但是,尤其是由于需要对预测图象(例如P图象和B图象)进行运动估计,该代码转换器仍然非常复杂。并且,需要对多个信道进行实时的代码转换。例如,有线电视网络的头端可能使用一代码转换器来将卫星馈送和本地编程实时地结合在一起。该代码转换器的处理速度必须足以执行所期望地操作,而察觉不到任何延迟。
相应地,期望提供一种更有效的代码转换器结构。该系统应通过提供多个代码转换处理器来提高处理效率。该系统应降低整个处理时间,和/可允许使用较低速度的处理器。
该系统应允许将代码转换算法更新为容易执行的算法。
该系统应能够升级为新的更快的处理器(芯片),而无需对主要部分进行重新设计。
该系统与专用的代码转换硬件相比,更节省成本。
该系统应适于转换多个种信道的代码,例如标准清晰度视频信道,或单个高比特率信道,例如HDTV信道。
本发明提供具有上述和其它优点的系统。

发明内容
本发明涉及数字视频图象的代码转换,具体地,涉及使用并行操作的多个代码转换处理器的特定结构。
在第一种结构(结构A)中,将n个信道的输入位流分割为若干处理单元,再将这些处理单元(例如片(slice)或帧)分离成m个子流,并在相应的分支处理每个子流。每一子流具有一单独的队列。
在第二种结构(结构B)中,将处理单元指定给任何可用的处理器。且所有处理器只具有一个队列。
改进结构A的一种选择是对该m个分支的每一个分支提供一缓冲器饱和反馈信号,以及调整对该位流的分离以将该输入数据发送到最空的队列(缓冲器)。
另一种对结构A或B的改进使得可根据最短尺寸优先的技术,重新排列这些处理单元在该队列(这些队列)中的位置。
当一个或若干视频流被分成不同的子流时对结构A的另一可能的改进和对结构B的另一可能的改进是隔行扫描不同视频位流的帧,以确保在每个预测处理单元位于其队列中第一之前,具有其可用的基准处理单元。
当一个或若干视频流被分成不同的子流时对结构A的另一可能的改进和对结构B的另一可能的改进是提供一保护协议,其能够保持对预测处理单元和其相关基准处理单元的跟踪,以确保它们不被同时处理(在不同的处理器中)。该保护协议延迟对该预测处理单元的处理直到其已处理其相应的基准处理单元。还协调该未被压缩的基准处理单元向具有预测处理单元的处理器的移动,移动到该处理器用于进行运动补偿处理。
通过确保不同时处理相关的处理单元,可获得最小平均处理延迟。
此外,通常可同时实现上述的改进。
本发明适用于转换若干信道的代码,例如标准清晰度视频信道,或单个高比特率信道,例如HDTV信道。
一种转换数字视频数据的位流的代码的特定方法,包括以下步骤将该位流分成若干连续处理单元,对这些处理单元进行排队,以及根据一排队系统模型将该排队处理单元的每一个指定给并行排列的若干可用的代码转换处理器中的一个。
根据该排队系统模型,可将该排队处理单元指定给这些代码转换处理器,以便可同时处理该排队处理单元中彼此独立的几个特定的单元。
具体地,根据该排队系统模型,可将这些排队处理单元指定给这些代码转换处理器,使得不能同时处理一基准图象的排队处理单元和其预测图象的排队处理单元。
这些处理单元例如可以是片、帧、半帧、视频物面(VOP)或块组(GOB)等。
对于结构A,在所述排队步骤中,将所述分割处理单元排列为公用队列。在所述指定步骤中,从该公用队列中将所述排队处理单元指定给代码转换处理器。这里的一种选项是以最短尺寸处理单元优先的方式将分割处理单元排队为该公用队列。
该处理单元可包括一基准图象的处理单元和其预测图象的处理单元。此外,该基准图象的处理单元可被排列为第一队列,该预测图象的处理单元可被排列为第二、优先队列。在将该基准图象的排队处理单元指定给各个代码转换处理器用以进行处理后,该预测图象的排队处理单元在被指定给其各自的代码转换处理器方面具有优先权。
在结构A中,将该连续处理单元分成若干子流,该处理单元的若干子流被排列成各自的队列,且从该各个队列中将该排队处理单元指定给代码转换处理器。
在所有的方案中,可按最短尺寸处理单元优先的方式来排队该分割处理单元。或者,对于结构A,可按最空队列优先的方式来排队。
在隔行扫描或重排序技术中,位流至少具有第一和第二视频信道,这些信道具有沿各自的图象顺序的各自的图象。逐行交错扫描第一视频信道的图象和来自第二视频信道的图象,使得与在各自的图象顺序中的情况相比,第一和第二视频信道的各自相关的图象被分隔得更远。即,第一视频信道中的相关图象被分隔得更远,且第二视频信道中的相关图象被分隔得更远。
这就为处理基准图象提供了时间,并且可获得对相关预测图象的运动补偿处理。
类似地,该位流可至少具有第一和第二视频信道,这些信道具有沿各自分组顺序的各自的图象分组。每个分组可具有一个图象,或若干不相关的图象。隔行扫描第一视频信道的图象分组和来自第二视频信道的图象分组,使得与在各自分组顺序中的情况相比,该第一和第二视频信道的各自相关的分组被分隔得更远。
基本上,当将不同分组内的图象分隔开时,在公用分组中的图象的隔行扫描位置更加靠近,或最好相邻。
在该保护协议中,将一基准图象的该排队处理单元和其预测图象的排队处理单元指定给各个代码转换处理器。延迟在该预测图象的排队处理单元的处理器中对该预测图象的排队处理单元的处理,直到已处理该基准图象的排队处理单元为止。
为此目的,保持被指定的该基准图象的排队处理单元、被指定的其预测图象的排队处理单元和被指定了上述两单元的处理器的一个记录(例如任务窗口和确认窗口)。当已处理该基准图象的排队处理单元时,更新该记录。延迟对该预测图象的排队处理单元的处理,直到已更新该记录来反映可获得该基准图象的排队处理单元为止。之后,将该基准图象的排队处理单元从其处理器提供给用于该预测图象的排队处理单元的处理器。
还公开了相应的装置。


图1示出根据本发明的具有用于n个信道的n个代码转换器的多信道视频代码转换器的框图。
图2示出根据本发明的具有用于将n个信道分到m个代码转换处理器的位流分离器(splitter)的多信道视频代码转换器(结构A)的框图。
图3示出图2的结构,其中,根据本发明,分别对该m个代码转换处理器中的每一个提供各自的队列。
图4示出根据本发明的具有用于调度在m个代码转换处理器之中对n个信道的处理的处理器/调度程序的多信道视频代码转换器(结构B)的框图。
图5示出图4的结构,其中,根据本发明,为该处理器/调度程序设有一队列。
图6示出图4的结构,其中,根据本发明,为该处理器/调度程序设有一附加、优先队列。
图7示出根据本发明的用于证实数据已被处理的保护协议。
具体实施例方式
本发明涉及对数字视频图象的代码转换,具体而言,涉及使用并行操作的多个代码转换处理器的特定结构。
图1示出根据本发明的具有用于n个信道的n个代码转换器的多信道视频代码转换器的框图。
多信道MPEG视频代码转换器100从功能上讲包括接收n路输入位流(例如信道)的位流调度程序或分离器110,用于对该各个位流进行代码转换的n个单信道代码转换器(SCT)120、122…、124,和用于将单独的经代码转换的位流重新组合为传输流的统计复用器(stat mux)130。
大家知道,统计复用是对多个不同比特率的信号进行编码并将该速率变化的位流组合为一单一固定速率传输流,使得分配给每个信号的带宽是可变的且随每个信号的比特率需要而改变的过程。
代码转换器100示出该代码转换过程的基本数据流。然而,该过程的实际执行可有许多途径。
由于许多实际原因,较佳的是使用多个可编程处理器来实现该多信道MPEG视频代码转换器。对于该多处理器的实现,每个处理器都负责该代码转换过程的某些片段。这方法的优点包括·允许使用不同的视频编码算法的灵活性。这意味着该结构可支持编码算法的改进和变更。通过仅改变或重构每个单独代码转换器的软件可实现一个新的算法。例如,该代码转换器算法可将MPEG-2的主测线主水平(main profile,main level)(MP@ML)位流转换为在一新的速率下的另一MP@ML位流。可将一MPEG-2的4∶2∶2测线主水平(422P@ML)位流转换成一MP@ML位流。还可将一MPEG-2主测线高水平(HP@ML)位流转换成一MP@ML位流,等等。
·设计风险低,因此一定数量的选择芯片将能够完成任务。即,使用具有许多子卡的母板,类似于具有多个PCI插座的PC母板可实现该结构。每个子卡包括一处理器和多个本地存储器。增加更多的子卡,可转换更多视频信道的代码。
·处理器技术的改进。无需对主要部分进行重新设计就可采用新出的具有更快时钟速率的芯片。随着同一处理器家族中更快或更便宜的芯片的出现,保留了该方法和软件开发中的投资。
·与用于MPEG代码转换的专用硬件相比,更节省成本。
必须提到多信道MPEG视频代码转换器的设计的不同版本。本发明的目的在于使用排队系统理论来使用多个可编程处理器实现多信道MPEG视频代码转换器。开发用于调度一多路复用的n信道位流单元的队列以进行该转换代码处理的策略和方法。
图2示出根据本发明的具有将n个信道的位流分离到m个代码转换处理器的位流分离器的多信道视频代码转换器(结构A)的框图。
对于具有多个可编程处理器的多信道MPEG视频代码转换器200而言,一个重要的版本是调度一位流单元队列,使得该代码转换处理更有效。
这里,将一MPEG传输流(MTS)提供给MTS输入队列210作为其输入。在分析程序和处理单元功能块220中,分析该MTS位流,并将其分割成多个“处理单元”,以向位流分离器230提供n个信道的多路复用位流。例如,该处理单元可以是片或完整的帧。片是指从左至右和从上至下穿过一图象的任意长度的一串连续的宏块。如果存在传送位误差,则使用片头来进行再同步。于是,片是单个帧或半帧的一部分。
如下面参照表1所述,可选择其它处理单元。
功能块220还恢复其它数据,例如时钟恢复数据和程序时间基准(PCR)校正数据,这些恢复是由一单独的微处理器或控制器以已知方式来处理的。
位流分离器230将该多路复用流分成m个单独的位流(例如子流),其中,m可小于、等于或大于信道数n。通常,m<n,这表示每个处理器必须对多于一个的视频数据信道的代码进行转换。每个子流包括连续的处理单元,这些处理单元分别被提供给各个缓冲器,例如缓冲器1(240)、缓冲器2(242)、…、缓部器m(244)。
处理器/调度程序250从缓冲器1(240)、缓冲器2(242)、…、缓部器m(244)中找回这些处理单元,并将这些处理单元提供给相应的代码转换处理器,例如处理器1(260)、处理器2(262)、…、处理器3(264)。例如,来自缓冲器1(240)的处理单元被提供给处理器1(260),来自缓冲器2(242)的处理单元被提供给处理器2(262),等等。
从处理器1(260)、处理器2(262)、…、处理器3(264)输出的经代码转换的数据被提供给统计复用器130,以形成一输出位流(例如传输流)。
这里,选择m个相同的处理器(或m相同的处理器组),以执行n信道的MPEG视频代码转换。每个处理器(或每组处理器)执行相同的代码转换程序,以一次处理一个处理单元。
根据本发明,具有两个基本的实现结构。一个为并行处理m分支的结构(结构A),如图2所示。第二个结构(结构B)是多处理的单分支结构,如图4所示。
对于结构A,将n个信道的多路复用位流分成m个子流。每个处理器(例如260、262、…、264)对一个子流进行代码转换。于是,n信道MPEG视频的整个代码转换过程就具有并行处理m个分支的结构。
对于每个分支,如果处理单元彼此独立,则可将该代码转换处理模型化为M/M/l排队系统。在该符号中,第一个“M”表示泊松到达过程是相同分布(iid)的指数随机变量,其中,在每个分支中该处理单元的每两次到达的时间间隔是独立的。第二个“M”表示该分支中的服务时间(即每个处理单元的处理时间)为iid指数随机变量。“l”表示每个分支中服务器(即处理器)的数量,此时为1。
另外,假设输入位流的速率给定为λ位/秒,且每个代码转换处理器260、262、…、264的处理功率给定为μ位/秒。如果已将n个信道的多路复用位流平均分成m个子流,则每个处理单元的平均延迟T1约为 图3示出图2的结构,其中,根据本发明对m个代码转换处理器的每一个分别提供有各自的队列。图中相同标号的元件彼此对应。
在代码转换器200’中,分别为处理器1(260)、处理器2(262)、…、处理器m(264)提供队列1(240)、队列2(242)、…、队列3(244)。例如,可按照已知的方式将每个队列实现为先进先出(FIFO)缓冲器。
值得注意的是,在每个时刻,队列1、2、…、m的充满度通常是不同的,这是因为不同处理单元的计算时间通常是不同的。该计算时间基于以下因素,例如,每个处理单元中的数据量、比特率、相关图象的复杂性、编码方法、是否使用运动补偿和图象类型(I、P或B)等。
因此,分离器230应不平均地将这些处理单元指定给每个队列。特别是,可通过向最空的队列发送该引入的处理单元、即以最空队列优先的方式来提高该代码转换器200’的性能。这种情况下的平均延迟时间T3可被证明满足以下关系T3≤T1。为了实现这种分离器230,使用该缓冲器充满度的反馈信号来确定应将引入的处理单元发送给哪个队列。例如,为此目的,可分别可选择的反馈路径320、322、…、324提供给队列240、242、…、244。
图4示出根据本发明的具有用于在m个代码转换处理器中调度n个信道的处理的处理器/调度程序的多信道视频代码转换器(结构B)的框图。这是本发明的第二种结构,具有单个分支、多个处理。
这里,n个信道的多路复用位流的处理单元被提供给一重排序缓冲器或队列410。处理器/调度程序420以循环方式将每个处理单元发送给一可用的处理器(例如,处理器260、然后是处理器262、…、然后是处理器264)。
如果这些处理单元彼此独立,则这些处理单元的排队可被模型化为M/M/m排队系统。“m”表示服务器(即处理器)的数量,这里,处理流程在一整个分支内。
对于上述有关λ和μ的相同的假设,每个处理单元的平均延迟(对于稳定状态)可由下式估算 其中,PQ表示到达该重排序缓冲器410的处理单元将发现所有处理器忙并被迫在队列中等待的概率。
图5示出图4的结构,其中,根据本发明为该处理器/调度程序提供有一队列。
如图所示,队列410将这些处理单元缓冲存储在该多路复用位流中,之后将多路复用位流送往调度程序420。
注意,对于两个结构A和B而言,可用条件λ/(m·μ)<1来粗略估算该服务所需的处理器的最少数量m。现在,可比较T1和T2之间的平均延迟时间。(通过使用归纳法)可将其表示为PQ≤λ/(m·μ)。因此,总有T1>T2。在可忽略1/μ的情况下,有T1≥mT2。因此,就平均延迟时间而言,结构B的性能总优于结构A。
另外,对于上述给出的两个结构,问题在于如何确定该处理单元及如何调度或分离这些单元,使得它们对于其处理器来说是彼此独立。即,在每个代码转换处理器中的每个处理单元的处理时间都应是独立的。
对处理单元的基本要求是可容易地将该单元从该位流中恢复出来,并形成一序列或图象或单个帧或半帧的基本构件块。并且,该处理单元应具有能够被作为一个完整、独立的单元处理的功能。对于运动补偿单元,该处理单元可能需要一些已可在该当前处理器或其它处理器中获得的基准单元。表1归纳了用于不同视频编码标准的处理单元的可能的选择。
尽管公开了用于所列视频标准的可能的处理单元,但本发明基本上可适用于与任何视频编码标准一起使用,包括所列标准衍生的标准。另外,处理单元可包括一帧或半帧的一部分,或整个帧或半帧。
表1

一个GOB可包括例如33个宏块。
一个VOP包括一帧内的视频物体。
注意,因为空间转换系数的直流预测和运动矢量预测,该最小的处理单元(通常)不能为用于图4的结构的宏块。因为每个片中的数据量通常是不相关的,所以单个帧中的各个片对于其处理器是彼此独立的。
较大的处理单元通常需要较大的缓冲能力。
另外,需要存储用于每个处理单元的某些信息,以便正确排序、多路复用及传输该经代码转换的位流。该信息包括信道号、帧号(由用于MPEG-2的暂时基准字“temp-ref”表示)、和用于每个信道的每个帧的处理单元号(例如片号)。
处理单元之间的独立性要求对于本发明的代码转换器的计算性能是至关重要的。但是,在单个视频位流中的处理单元,例如MPEG-2视频中的帧或片通常由于运动预测而彼此相关。
对于结构A而言,如果单个视频位流的处理单元被发送到相同的处理器,则这种相关不会引起任何问题。此时,将按顺序处理这些单元,并可从所述在先处理单元中获得运动预测所需的所有信息。
然而,对于结构B而言,或当将该单一视频位流的处理单元发送给不同的处理器时对于结构A而言,需要“保护协议”来防止在不同的处理器中同时处理相关的处理单元。后面将参照图7来描述这种协议。
对于结构B而言,期望避免这样一种情况,其中,一个预测处理单元被指定给一处理器,而其基准宏块仍在一个或若干其它的处理器中被处理,因此还无法利用。根据本发明,公开了一种方案,以通过隔行扫描该不同视频位流的编码帧来避免这种情况。
例如,假设编码的MPEG-2视频位流具有以下帧顺序(传输顺序)I1P1B1B2P2B3B4P3B5B6P4B7B8P5…其中,I、P和B表示图象类型,而下标表示每个图象类型在位流中的顺序。且假设该处理单元为片。接着,在每个具有下划线的图象分组中的片,例如I1、P1、B1B2P2与相同分组中的其它片不相关。例如,对于由具有若干片的单个帧组成的图象分组I1而言,通常每个片中的数据会与该相同帧中其它片不相关。对于图象分组B1B2P2而言,B1、B2和P2彼此不相关。
然而,在该位流中相邻图象组之间的片可能是相关的。例如,考虑预测处理单元(例如B1中的片)为待指定给一可用处理器的队列中的第一单元,但其基准宏块(例如P1中的某些宏块)仍在一个或多个其它处理器中被处理的情况。并且,B1和P1位于不同的分组。则无法处理该预测处理单元,直到其基准宏块准备好为止。该延迟可导致某些处理器空闲。
为使空闲时间降到最小,一个方法是重新隔行扫描一视频位流和其它视频位流,以保证在每个处理单元成为队列中的第一单元之前,总是具有其可用的基准宏块。基本上,对公用分组中的不相关的图象进行排序以使其彼此更加接近,或最好是相邻,而不同的相关分组被分隔开。
由此,可同时由相同或不同的处理器来处理相同分组的不相关的图象,同时增加不同分组中图象处理之间的时间,使得在没有延迟处理其它分组的预测图象的情况下,可获得一个分组中的基准单元。由于在一给定信道的分组的处理之间处理来自其它信道的图象,所以总的处理量不会降低。
例如,假设在传输流中存在另一视频位流i1p1b1p2b2p3…,且在该传输流中的原始多路复用位流具有以下顺序I1i1p1P1B1b1p2B2P2B3b2p3B4P3B5B6P4…该经编码的图象重排列缓冲器410(或缓冲器240、242、…、244)可如下顺序重新设置该位流顺序,以减少该处理器的空闲时间I1P1i1p1B1B2P2b1p2B3B4P3b2p3B5B6P4…有时这种重新隔行扫描过程会受到每个视频位流的实际所允许的延迟的限制。可提供其它不受该限制制约的多种方法。如下所讨论的一个例子是从图4和5结构中变更而来的双缓冲器方案。
重新排序可用于这里论述的任何结构。
图6示出结构B,其中,根据本发明对处理器/调度程序提供一附加的优先队列。
在该方案中,用第一队列,队列1(410’)来缓冲基准图象处理单元。用第二队列,、队列2(610)来暂时缓冲其基准宏块(即基准图象处理单元)仍不可用的预测处理单元。队列2(610)中的处理单元当它们的基准单元可用且有可用的处理器时,该队列在指定给处理器方面具有较高的优先权。因此,这是一优先队列模型。
值得注意的是,当在相同子流中携载单个视频流时,该优先队列模型还可与图2的结构一起使用。例如,可将一附加的、优先队列加入到图3的队列240、242和244的每一个。
图7示出根据本发明的用于验证数据已被处理的保护协议。这里公开了一种保护协议,用于防止在不同处理器中同时处理相关的处理单元。可由用于图2的代码转换器的处理器/调度程序250和用于图4的代码转换器的处理器/调度程序420来执行该协议。
值得注意的是,可使用任何已知的语法和通信协议来执行该协议,包括任务和确认窗口的实现,并可使用任何已知的语法和通信协议来在处理器/调度程序和代码转换处理器之间发送和接收信息。
当存在多个视频位流或单个HDTV位流时,处理该基准处理单元的处理器可放慢速率并落在后面,以使该预测处理单元和其(相关的)基准处理单元同时在不同的处理器中被处理。这可导致非最优化最小平均处理时间。该保护协议可防止这种问题。
该保护协议使用预定义窗口或列表,通过处理器来验证“已完成”的处理单元。对于图2实施例的缓冲器240、242、…、244或图4实施例的缓冲器410,处理器/调度程序既具有任务窗口又具有确认窗口。该任务窗口顺序地将固定(anchor)/基准图象(用于MPEG-2视频的I和P图象)的处理单元指定给可用的处理器。该确认窗口指示已处理了对应于该任务窗口的处理单元。通过使用该窗口,该协议仅需跟踪由该任务窗口指定且由确认窗口指示的一部分处理单元。操作这些窗口,并使其从一个固定图象更新到另一固定图象。
在块705中,由处理器/调度程序从缓冲器中获得下一处理单元。在块710中,如果该处理单元是部分基准图象,或其本身是一整个基准图象(例如完整帧或半帧),则该处理器/调度程序将该单元标记在其任务窗口中(块715)。处理器/调度程序可具有一存储器,用于对处理单元的识别数据,例如信道号、帧号和处理单元号(例如片号)进行列表。
在块720中,该处理器/调度程序向一可用的处理器分配一任务,以处理该基准处理单元,并将该处理单元数据转发给该处理器。在块725中,该处理器/调度程序等待从该处理器中收到已接收到任务的确认。当接收到该确认时,处理器/调度程序在其确认窗口中作一适当的标记(块730)。
在块735中,如果该处理器已完成对基准处理单元的处理,则设定一适当的标志(“end_of_unit=1”),且在块740中,设定一适当标志(例如“referenc_eready=1”),表明该基准处理单元可由被指定来处理相关预测处理单元的任何处理器来使用。
值得注意的是,该协议提供一通用的程序流程。例如对来自B和P图象的单元,应对该协议进行适当的修改。例如,来自B图象的单元需要两个基准单元用于进行运动补偿。相应地,仅当该两个基准单元都准备好时才应设定“referenc_eready”标志。并且,来自P图象的单元可以是一个固定单元(对于B图象单元而言),也可以是一个预测单元(这里,I图象单元是该固定单元)。此外,应当理解,多个处理器被同时跟踪,并且可按要求同时跟踪多组基准和处理单元。
例如,每个处理器可包括基准缓冲器以获取基准单元数据,该基准缓冲器用于可被其它处理器访问的两个基准单元(向前和向后预测)。可对用于当前单元,例如B图象的每个处理器提供一第三缓冲器。并且,无论是否被基准,均可将经处理的固定帧单元(I或P)存储于基准缓冲器中。因为当前向后预测基准缓冲器在下一时刻将是向前预测基准缓冲器,所以帧缓冲器指针在两个基准缓冲器之间交换。
可使用已知的MPEG参数来检测一处理单元的帧类型。
值得注意的是,当处理单元是一个完整图象(例如帧或半帧)的子集(例如片)时,因为在一预测处理单元中的区域运动补偿典型地需要来自仅一个基准处理单元中的基准数据,所以可立即利用该处理单元。该“推动”方法将节省处理时间,但每个处理器需要较大的缓冲器,且处理器之间需要更多的DMA传送。这是真实地,因为当基准帧中的处理单元未被压缩时,不知道将来会用哪个其它的处理器来作为基准。因此,必须广播给所有处理器。执行DMA的第二种方法是使每个处理器存储其自己的经解码的基准单元,且对每个处理器来说,从其它处理器中“拉出”所需的基准单元。这样做在处理时间上放慢了速度,但可节省DMA和存储器。
如果需要,可处理、暂时存储包括该图象的若干处理单元,直到图象中所有单元都被处理且一起作为一整个图象来被利用。
在块710中,如果该处理单元不是一基准图象的一部分,即是预测图象,则处理器检查标志“reference_ready”,以查看是否可获得相关的基准单元(块745)。如果不能,则输入一保持模式(块750)。如果基准单元或若干基准单元已准备好,则该处理器/调度程序复位该“reference_ready”标志(块755),清除任务窗口(块760),并清除确认窗口(765)。这意味着不存在未决任务,例如,不存在基准处理单元用于当前还未被处理的预测处理单元。
因此,在块770中,该预测处理单元被指定并提供给一处理器。
根据来自相关处理器的请求,该所需的基准处理单元被传送给预测单元的处理器,用于对预测单元进行运动补偿。可通过总线使用直接存储器存取(DMA)传送来进行该数据传送。为此目的,可使用已知的计算机结构,因此这里不再详细论述。通常,该处理器/调度程序保持该基准和预测单元被指定的那个处理器的记录,并可协调该所需的传送。
此外,每个处理器都具有其自身的本地存储器,用于存储基准和预测处理单元。每个处理器还可具有其自身的缓冲器,用于存储经代码转换的处理单元,然后将其转发给stat mux。
已知的stat mux技术控制该经代码转换的数据从每个处理器传送到该stat mux。
值得注意的是,该基准处理单元被事先进行代码转换,并提供给该stat mux(或当前等待提供给stat mux)。由该预测单元的处理器使用,用于该预测单元的运动补偿的基准处理单元数据为未压缩、象素畴(domain)格式,且在使用后被丢弃。
以单元来讲,任务和确认窗口都具有相同规模的处理单元的数量。该规模由每基准图象的处理单元的个数来确定。
只要确认开始从处理器到处理器/调度程序定期地流回,则位流顺利且有效地流动。
这样,该保护协议通过将预测处理单元的处理延迟到基准处理单元的处理之后来避免同处理该基准处理单元和其相关的一个或若干预测处理单元。结果,期望根据M/M/l或M/M/m排队理论来使处理器的平均延迟最小化。
在本发明的另一方面,可将下面的处理单元重排序方法应用于这里所述的多信道代码转换器结构。每个处理单元具有其自身的尺寸,该尺寸通常确定所需的计算功率。该尺寸越大,则所需的计算功率越多。对于软件实现而言,通常是处理单元尺寸越大,处理延迟就越大。为了最小化这种延迟,可将下述的重排序处理应用于每个信道。
具体而言,在重排序缓冲器中对每个图象中的处理单元进行重排序。设计每个重排序缓冲器(队列)来根据最短尺寸处理单元优先的规律将该信道的处理单元指定给处理器。此时,队列模型对于图2的并行处理结构的m个分支而言变为M/G/l,对于图4的多处理结构的单个分支而言变为M/G/m。通过用Uik(t)在时间t标注该k帧的第I个处理单元,并用Sik(t)表示该单元的尺寸(以位的形式)来指定优先权。例如,假设MTS分析程序和处理单元分割220之后的位流的处理单元顺序如下。U1k(t),U2k(t),...,ULk(t)]]>并假设S1k(t)<SLk(t)<S2k(t)<SL-3k<......<S3k(t)....]]>则该重排序缓冲器410的输出中的处理单元的顺序为U1k(t),ULk(t),U2k(t),UL-3k......,U3k(t)......]]>总之,应根据性能和成本折衷来选择用于实现一多信道MPEG视频代码转换器的结构。假设所需的总的处理功率为P,则从减少每个处理单元的平均延迟的观点来看,应注意以下问题·对于安排多路复用的n信道位流用于m个处理器(每个处理器的处理功率为P/m)的情况,对越小的m,该系统的每个处理单元的平均延迟越小。例如在M/M/l排队系统的情况下,当m=1时,具有最小的平均延迟。
·在给定处理器的数量m的情况下,与直接安排多路复用的n信道位流用于m个处理器的方法相比,将该多路复用的n信道位流事先分成m个子流(每个子流被发送给每个处理器)的方法的系统延迟较大。
·对于处理单元的预确定块而言,可通过重排序该块中的处理单元使得尺寸较小的处理单元首先被处理,来减少该平均延迟。
·因为(a)对位流分离器230的速度要求远远低于对图4结构中处理器/调度程序420的速度要求,且(b)控制协议较简单,所以实现图2的结构的复杂性较小。
因此,可知本发明提供用于一种有效的代码转换器的方法和装置,该转换器使用多个单独的代码转换处理器。在第一种结构(结构A)中,将n个信道的输入位流分成若干处理单元,这些处理单元又被分成m个子流,且在相应的分支中处理该每个子流。对每个子流提供一队列。在第二种结构(结构B)中,这些处理单元被指定给任何可用的处理器。所有处理器具有一个队列。或在优先队列方案中,用一优先队列来保持预测图象单元,使得这些单元在已处理其基准单元时,在被指定给处理器方面具有优先权。
改进结构A的一种选择是为该m个分支中的每一个提供一缓冲器充满反馈信号,并调整该位流的分离,从而将引入的数据发送给最空的队列(缓冲器)。
在对结构A或B之一的另一种改进中,可根据最短尺寸优先技术重排队列中的这些处理单元。
当单一视频流被分成不同的子流时对结构A的另一可能的改进和对结构B的另一可能的改进是隔行扫描不同视频位流的帧,以确保在每个预测处理单元位于其队列中第一之前,具有其可用的基准处理单元。
当一个或若干视频流被分成不同的子流时对结构A的另一可能的改进和对结构B的另一可能的改进是提供一保护协议,其能够保持对预测处理单元和其相关基准处理单元的跟踪,以确保它们不被同时处理(在不同的处理器中)。该保护协议延迟对该预测处理单元的处理直到其已处理其相应的基准处理单元。还协调该未被压缩的基准处理单元向预测处理单元的处理器的移动,移动到该处理器用于进行运动补偿处理。
通过确保不同时处理相关的处理单元,可获得最小平均处理延迟。
此外,通常可同时实现上述的改进。
另一优点是本发明的代码转换器的结构可容易地通过仅将数据传给操作处理器来调整一个或若干故障处理器。
本发明适于对多个信道,例如标准定义视频信道,或单个高比特率信道,例如HDTV信道进行代码转换。
虽然参照不同的具体实施例对本发明进行了描述,但本领域技术人员应该明白,在不脱离权利要求所限定的本发明的精神和范围下可进行多种修改和变更。
例如,尽管这里讨论了不同的语法元件,但值得注意的是,它们仅仅是实例,可使用任何语法程序。
此外,尽管结合MPEG-2标准论述了本发明,但应该明白,这里所公开的概念可适于与任何类似的通信标准一起使用,包括当前MPEG标准的衍生。
此外,事实上,本发明还适于与任何类型的网络一起使用,包括有线或卫星电视广播通信网、局域网(LANs)、城域网(MANs)、宽域网(WANs)、互连网、内联网和因特网或这些网络的组合。
权利要求
1.一种用于对包括数字视频数据的位流进行代码转换的方法,包括以下步骤将该位流分成若干连续的处理单元;对这些处理单元进行排队;以及根据一排队系统模型,将该排队处理单元的每一个分别指定给并行排列的若干代码转换处理器中的一个。
2.根据权利要求1的方法,其中根据该排队系统模型,可将这些排队处理单元指定给这些代码转换处理器,以便在此同时处理彼此独立的几个特定的排队处理单元。
3.根据权利要求1的方法,其中所述排队处理单元包括一基准图象的排队处理单元和其预测图象的排队处理单元;且根据该排队系统模型,将这些排队处理单元指定给这些代码转换处理器,使得该基准图象的排队处理单元和该预测图象的排队处理单元不被同时处理。
4.根据权利要求1的方法,其中该处理单元至少包括片、帧、半帧、视频物面(VOP)和块组(GOB)中的一种。
5.根据权利要求1的方法,其中在所述排队步骤中,所述分割处理单元被排列进一公用队列;且在所述指定步骤中,从该公用队列中将该排队处理单元指定给这些代码转换处理器。
6.根据权利要求5的方法,其中,在所述排队步骤中,以最短尺寸处理单元优先的方式将所述分割处理单元排列到该公用队列。
7.根据权利要求5的方法,其中所述位流仅具有一个视频信道。
8.根据权利要求1的方法,其中所述处理单元包括一基准图象的处理单元和其预测图象的处理单元,在所述排队步骤中,该基准图象的处理单元被排列到第一队列,而该预测图象的处理单元被排列到第二、优先队列;且在所述指定步骤中,在将该基准图象的排队处理单元指定给各个代码转换处理器用以进行处理后,该预测图象的排队处理单元在被指定给其各自的代码转换处理器方面具有优先权。
9.根据权利要求8的方法,其中,在所述排队步骤中,以最短尺寸处理单元优先的方式将所述分割处理单元排列到第一和第二队列。
10.根据权利要求1的方法,还包括以下步骤将所述连续处理单元分成若干子流;在所述排队步骤中,将该处理单元的子流排列到各自的队列中;且在所述指定步骤中,从该各个队列中将所述排队处理单元指定给代码转换处理器。
11.根据权利要求10的方法,其中所述位流包括若干视频信道。
12.根据权利要求10的方法,其中,在所述排队步骤中,以最短尺寸处理单元优先的方式将该处理单元的子流排列到所述各自的队列。
13.根据权利要求10的方法,其中,在所述排队步骤中,以最空队列优先的方式将该处理单元的子流排列到各自的队列。
14.根据权利要求1的方法,其中,所述位流至少包括第一和第二视频信道,这些信道具有按各自的图象顺序排列的各自的图象,还包括以下步骤隔行扫描第一视频信道的图象和来自第二视频信道的图象,使得与在各自图象顺序中的情况相比,第一和第二视频信道各自的相关的图象被分隔得更远。
15.根据权利要求1的方法,其中,所述位流至少包括第一和第二视频信道,这些信道具有按各自的分组顺序排列的各自的图象分组,每个分组包括一个图象或若干不相关的图象,还包括以下步骤隔行扫描第一视频信道的图象分组和来自第二视频信道的图象分组,使得与在各自分组顺序中的情况相比,第一和第二视频信道各自的相关的分组被分隔得更远。
16.根据权利要求1的方法,其中,在所述指定步骤中,一基准图象的该排队处理单元和其预测图象的排队处理单元被指定给各自的代码转换处理器,还包括以下步骤延迟该预测图象的排队处理单元在被指定了该处理单元的代码转换处理器中的处理,直到已处理该基准图象的排队处理单元为止。
17.根据权利要求16的方法,还包括以下步骤保持该被指定的基准图象的排队处理单元、其被指定的预测图象的排队处理单元、以及在所述指定步骤中被指定了上述两单元的代码转换处理器的一个记录;并当已由被指定了该基准图象的排队处理单元的代码转换处理器处理该处理单元时,更新该记录;其中,所述延迟步骤对所述更新步骤做出反映。
18.根据权利要求16的方法,还包括以下步骤当在被指定了该基准图象的排队处理单元的代码转换处理器处进行完处理之后,将该基准图象的排队处理单元从该处理器提供到被指定了该预测图象的排队处理单元的代码转换处理器。
19.一种用于对包括数字视频数据的位流进行代码转换的设备,包括分割装置,用于将所述位流分割为若干连续的处理单元;排队装置,用于对这些处理单元进行排队;若干并行排列的代码转换处理器;以及指定装置,用于根据一排队系统模型,将所述排队处理单元的每一个分别指定给该若干代码转换处理器中的一个。
20.根据权利要求19的设备,其中所述排队装置包括一用于对所述分割处理单元进行排队的公用队列;且所述指定装置从该公用队列中将该排队处理单元指定给代码转换处理器。
21.根据权利要求19的设备,还包括一分离器,用于将该连续的处理单元分离成若干子流;其中,所述排队装置包括用于排列该处理单元的子流的各个队列;且所述指定装置从该各个队列中将排队处理单元指定给代码转换处理器。
全文摘要
一种使用排队系统模型来对数字视频图象进行代码转换的方法和装置。并行设置若干代码转换处理器(120、122、124、260、262、264)。在第一种结构中,将n个信道的输入位流(220)分为若干处理单元,例如片或帧,将这些处理单元(110、230)分成m个子流,且在相应的分支(260、262、264)处理该每个子流。对每个子流提供一单独的队列(240、242、244)。在第二种结构中,从公用队列(410)中将处理单元指定给任一可用的处理器。根据该排队系统模型来同时处理各个独立的处理单元,以使平均处理时间最小化。尤其是,避免了同时处理基准图象(I图象)单元和相关的预测图象(P或B图象单元)单元。进一步的技术完成记录保持,并在已处理完该基准图象单元后,调整将该基准图象单元从其处理器向相关预测图象单元的处理器的传送。还提供了具有图象重排序和使用优先权的缓冲器的实施例。
文档编号H04N7/58GK1357200SQ00809277
公开日2002年7月3日 申请日期2000年6月9日 优先权日1999年6月23日
发明者陈学敏, 凌璠 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1