用于可变长度编码数据流的转码器的制作方法

文档序号:7581553阅读:94来源:国知局
专利名称:用于可变长度编码数据流的转码器的制作方法
技术领域
本发明涉及转码器和对于可变长度编码数据流进行转码的方法,具体而言,涉及压缩视频数据流的转码。
背景技术
视频信号正在越来越多地作为数字视频信号被广播和被分发。为了保持低数据速率,通常使用各种形式的视频压缩。因此,已经规定了多种不同的视频压缩标准。广泛使用的压缩标准是MPEG-2(活动图像专家组-2)标准,它例如用于地面和卫星数字电视广播、DVD和数字视频记录器。
MPEG-2视频标准包括多个不同的级别和类,允许编码器和译码器的不同的数据速率和复杂性与视频质量进行折衷选择。
在压缩视频流从源传输到最终终端期间,常常必须按照信道的当前容量或译码器的能力来调节压缩流的比特速率。这样的比特-减小的操作典型地由包括译码和编码操作的级联的转码器执行。译码部件全部重建视频流,并把它馈送到生成具有较低比特速率的新流的编码器。
通常,MPEG流的独立的译码和编码会导致视频质量恶化。在重新编码期间作出的决定没有考虑原先编码的参数。而且,虽然某些单元可以在编码器与译码器之间共享,但级联的实施方案是复杂的和昂贵的,因为需要实施完全的译码器和编码器功能。
另外,已开发了其中接收的视频信号被译码成像素域或离散余弦变换(DCT)域的转码器。压缩参数然后在这个域中被修正,并且信号被重新编码。然而,这个方法仍旧是计算量很大的。而且,在像素或DCT域中的运行对于转码比特速率的影响不能容易地确定或控制。
近年来,多媒体网络的普及快速成长。典型地,这些网络尤其是以压缩流传输视频信息。在大多数情形下,多媒体网络是多种多样的,包括不同类型的有线或无线信道和具有不同能力的译码器组。在无线网的情形下,无线通信信道典型地提供极低保证的最小的业务质量水平。因此,信道宽度和质量的变化典型地是杂散的和不可预测的。另外,译码器的不同的能力和要求的范围可以是很大的。因此,压缩流优选地应当能够快速使它的比特速率适于当前的信道宽度。另外,信道特征的改变不应当导致视频质量的不可接受的恶化。
所以,为了发送一个压缩的视频流到具有不同的功能、能力和要求的译码器,有时使用可缩放的编码的视频流。可缩放性允许译码器取视频流的一部分并从它译码整个图像。因此,可缩放性允许译码器取发送流的一部分并译码成具有减少质量或分辨率的图像。解压缩图像的质量水平取决于译码器使用多少视频流以及如何组织可缩放的压缩流。
通常,当在编码器与译码器之间的相互作用是有限的或不存在时,例如在一对多通信、非实时应用等等中,可缩放性是有用的。在当前的视频编码标准中,例如MPEG-2或MPEG-4,可缩放性是通过分层结构实现的,其中编码的视频信息被划分成相应于不同的层的两个或多个比特流。被接收的层越多,译码期间可达到的质量越好或分辨率越高。具体地,提供一个基本层,它包括足够的信息以重新生成视频信号,虽然是以低的质量。另外,提供一个或多个增强层,它包括可用来增加译码的视频质量的附加信息。
所以,希望提供可缩放流,并且具体而言,能够提供可缩放流的转码器是有利的。能够从非缩放的数据流提供可缩放流的当前的转码器典型地通过级联完全的非可缩放的译码器和完全的可缩放的编码器来实施。不幸地,这样的方法是复杂而昂贵的,并且它不能提供对于比特速率的快速和灵活的调整。
因此,当前的转码器往往是次最佳的,特别是实施上是复杂和昂贵的,以及不灵活的,具有大的延时,具有有限的数据速率能力和适应性,以及是资源要求高的。因此,一种用于转码的改进的系统将是有利的。
发明概要所以,本发明寻求单独地或以任何组合地缓和、减轻或消除一个或多个以上提到的缺点。
按照本发明的第一方面,提供了用于可变长度编码数据流的转码器,它包括接收机,用于接收包括可变长度编码系数的可变长度编码数据流;重要性处理器,用于根据重要性准则确定可变长度编码系数是重要系数还是不太重要系数;截断(truncation)处理器,用于截断不太重要系数;编码处理器,用于生成包括重要系数和截断的不太重要系数的转码的数据流。
因此可以根据在可变长度代码域中执行的操作和决定而提供转码的数据流,具体地,转码的数据流可以仅仅根据在可变长度代码域中执行的操作被生成。可以直接对于可变长度编码数据流执行操作和决定,以及转码器可以生成转码的数据流,而不用执行任何域变换或(逆)量化调节。这允许转码器的非常低的复杂性和花费。具体地,存储空间和存储带宽要求可以非常低,允许采用简单的转码器。
此外,在可变长度代码域中的处理允许快速转码,因此使得转码器适合于较高比特速率的数据流。另外,由转码引起的延时可以保持为低的或被减小。而且,可以使得转码器能够执行转码而不必具有与所使用的可变长度代码不同的编码方案的特别的信息。具体地,如果转码器具有可变长度代码的可变长度协议的信息,则同一个转码器可以转码不同编码的信号,举例来说,例如通过不同的压缩方案编码的信号。这可以允许使用与压缩标准无关的单一的(统一)比特速率控制机构。
另外,本发明可以允许转码的数据流的改进的质量,因为可以避免与不在可变长度代码域中的处理步骤有关的任何质量恶化。
转码器特别适合于把较高比特速率的数据流转码成较低比特速率的数据流。优选地,可变长度编码数据流是压缩数字视频信号流。因此,对于按照普遍的视频压缩方案压缩的视频信号可以达到非常快速和/或低复杂性的转码。转码既不需要去量化或重新量化,也不需要逆向或正向离散余弦变换。所以,它允许减小的复杂性、提高的速度和/或改进的视频质量。
而且,对于数据流能够进行非常直接的并因此精确的控制,因为例如通过可变长度编码数据流的比特操作可以直接得到转码的数据流。因此,对于转码数据流的可变长度码字的影响是直接知道的。与传统的转码方案相反,转码数据流的特征可以是直接知道的和受到影响的,因此,例如可以通过控制转码数据流的数据比特而直接管理比特速率减小。
接收机、重要性处理器、截断处理器和编码处理器可以是分立的功能单元,或者可以是同一个功能单元或过程的不同的方面或功能。具体地,接收机、重要性处理器、截断处理器和编码处理器可以作为软件程序在诸如数字信号处理器之类的单个适当的数据处理器中被实施。不太重要系数的截断具体地可以通过移位操作来实现。
按照本发明的特征,截断包括把不太重要系数的值设置为零。优选地,不太重要系数的截断是使数值系数零,它典型地具有可变长度代码中的最低的字长。替换地或附加地,零系数特别适用于游程长度编码,由此允许转码信号的显著的数据速率减小的可能性。
按照本发明的特征,重要性准则包括可变长度编码系数的数值是否超过门限值的准则。具体地,如果可变长度编码系数具有的数值(例如在MPEG-2编码数据流中的电平)超过门限值,则可以认为它是重要的,而如果它具有低于门限值的数值,则认为它是不太重要的。因此,只有在系数的数值低于门限值时,才可以对可变长度编码系数进行截断。只截断不太重要系数可以提高转码信号的质量,因为只丢弃有关不太重要系数的信息。门限值提供用于确定系数的重要性和转码的比特速率减小程度的合适的和低复杂性的装置。
按照本发明的特征,重要性准则根据通过可变长度编码流编码的信号的相关频率参数来确定。
在大多数信号中,当信息涉及到某些频率范围时,由信息损失引起的质量恶化比其它情形时更高。例如,视频恶化对于低的空间频率系数误差更敏感。所以,取决于系数的相关频率参数的截断系数提供译码信号的提高的质量。具体地,对于MPEG-2压缩视频信号,重要性准则可以是随与系数有关的空间频率而不同的。例如,较低的频率系数可以认为是重要的,而较高的频率系数可认为是不太重要的。系数的重要性准则因此可以取决于该系数处在离散余弦变换块中的哪个位置。
按照本发明的特征,可变长度编码系数是游程长度编码的。游程长度编码可以对于包括大量零系数的数据流提供非常有效的编码,所以特别适合于在转码过程中执行的截断。
按照本发明的特征,重要性准则包括可变长度编码系数序列的游程长度是否超过门限值的准则。许多信号,举例来说例如MPEG-2编码视频信号往往在相对较低质量重要性的部分具有增加零系数的集中性。考虑在非零系数附近的零系数的数目的重要性准则因此提供用于许多信号的有利的重要性准则。序列可具体地包括单个可变长度编码系数。
按照本发明的特征,重要系数的游程长度值被修正以反映由于把不太重要系数截断成零值而造成的增加的零系数。
优选地,重要系数的游程长度值被修正以反映由于把不太重要系数截断成零值而造成的前面的零系数的增加的数目。仅仅通过把关于截断的不太重要系数的数目的信息包括在重要系数的游程长度信息中就可实现编码数据流的非常有效的转码。
按照本发明的特征,转码器还包括子集处理器,用于把可变长度编码数据流子集提供到编码处理器;以及其中编码处理器用来把可变长度编码数据流子集直接包括在转码的数据流中。
优选地,可变长度编码数据流的某些数据被直接包括在转码的数据流中。这可以允许减少转码复杂性和提高转码速度,因为只需要处理可变长度编码数据流的子集。它还可以保证,具有高质量效果的某些数据可被移到不受转码影响的转码数据流。
按照本发明的特征,可变长度编码数据流的子集包括与由可变长度编码流编码的信号的低频参数有关的可变长度编码系数。
对于许多信号,例如压缩视频信号,对于与低频有关的数据来说,其对于数据错误的质量敏感性高于较高的频率时的质量敏感性。因此,把与信号的低频参数有关的可变长度编码系数直接包括在转码数据流中允许改进质量。它还可导致较快的和/或较低复杂性的转码。
按照本发明的特征,可变长度编码数据流的子集包括与由可变长度编码流编码的视频信号的运动补偿参数有关的可变长度编码系数。有利地,包括运动估计参数在内的任何运动补偿参数可被直接包括在转码数据流中。
按照本发明的特征,可变长度编码数据流的子集包括控制数据。有利地,可变长度编码数据的任何控制数据可被直接包括在转码数据流中。
按照本发明的特征,可变长度编码数据流的子集包括标题数据。有利地,可变长度编码数据流的任何标题数据可被直接包括在转码数据流中,由此允许转码数据流具有与可变长度编码数据流一致的格式。
按照本发明的特征,截断处理器还用来对于重要系数的数值执行缩小操作。优选地,缩小可以是系数值的减小,例如MPEG-2压缩信号的可变长度代码电平。缩小操作优选地可导致重要系数的至少某些数值的较低的字长。
按照本发明的特征,缩小操作是移位操作。如果在转码数据流的接收机处知道移位值,就可以不丢失信息地重新生成原先的数值。移位操作因此可以减小转码数据流的数据速率而不丢失对于较高数值系数的信息。
按照本发明的特征,缩小操作取决于由可变长度编码流编码的信号的相关的频率参数。
缩小操作可导致低的可变长度编码系数值的信息丢失(或截断),所以,缩小操作优选地根据典型的系数值或变化而改变。替换地或附加地,缩小操作可以根据信息特征的丢失的质量影响而改变。这些特征典型地涉及与对于其执行缩小操作的可变长度编码系数有关的频率。有利地,缩小操作的参数因此对于不同的系数根据相关的频率参数而改变。具体地,对于MPEG-2编码数据流,所执行的缩小可以取决于在离散余弦变换块中系数的位置。
按照本发明的特征,缩小操作取决于与至少一个可变长度编码系数有关的游程长度。例如,这可以允许对于寄生系数(位于长的零序列的中部)比起对于在重要区域内(具有小数目的零)的系数缩小更多。
按照本发明的特征,缩小操作系数参数取决于重要系数的多个系数值。优选地,缩小操作的至少一个参数,例如移位操作的移位值是对于可变长度编码数据流的至少一个子集的系数值进行最佳化的。具体地,移位操作的参数可被选择成使得通过对于子集中系数值的当前分布进行移位操作而实现适当的数据减小。
按照本发明的特征,缩小操作系数参数取决于对于至少一个重要系数的可达到的字长减小。优选地,缩小操作参数可被选择为达到对于尽可能多的重要系数的字长减小,而同时保持想要的信息级别和从而质量水平。
按照本发明的特征,编码处理器用来生成包括转码数据流的可缩放的信号数据流作为基本层和至少一个附加增强层。
因此可以提供包括允许得出降低质量的信号的基本层的、转码的可缩放信号数据流。通过包括至少一个增强层的附加信息可以进一步改进信号。优选地,转码器因此从转码数据流生成基本层。基本层可以优选地但以减小的数据速率提供可变长度编码数据流的信号的减小的但可接受的质量表示。译码器可以仅仅根据基本层(包括转码数据流)生成可接受的信号,或可任选地利用增强层的附加信息来改进质量。这允许转码器用于不同的类型的译码器以及具有变化特性的分布媒体。
按照本发明的特征,截断处理器用来生成与不太重要系数的截断有关的其余部分的系数值,以及该至少一个附加增强层包括其余部分的系数值的至少某些数值。
优选地,由截断处理器的截断丢失的信息被包括在其余部分的系数中。该至少一个附加增强层因此优选地包括在截断过程期间丢失的信息。这允许译码器可任选地使用增强层来计算转码数据流相对于可变长度编码数据流的质量损失。
按照本发明的特征,截断处理器用来对重要系数执行移位操作和生成与移位操作有关的其余部分系数值;以及该至少一个附加增强层包括其余部分的系数值的至少某些数值。
优选地,由截断处理器的移位操作丢失的信息被包括在其余部分的系数中。该至少一个附加增强层因此优选地包括在移位操作期间丢失的信息。这允许译码器可任选地使用增强层来计算转码数据流相对于可变长度编码数据流的质量损失。
按照本发明的特征,截断处理器还用来对其余部分的系数值执行第二移位操作和生成第二其余部分系数值,以及编码处理器用来把第二其余部分的系数值的至少某些数值包括在第二增强层中。
优选地,其余部分系数值还通过移位操作被划分成不同的级别。每个进一步的信息细化被包括在附加增强层。这允许在可提供给译码器的质量级别中提高细粒度。
按照本发明的第二方面,提供了用于编码信号的编码器,包括信号编码器,用于从信号中生成可变长度编码数据流;可变长度编码数据流包括可变长度编码系数;重要性处理器,用于根据重要性准则确定可变长度编码系数是重要系数还是不重要系数;截断处理器,用于截断不太重要系数并用于生成与不太重要系数的截断有关的其余部分系数值;以及编码处理器,用于生成可缩放的信号数据流,包括包含重要系数和截断的不太重要系数的基本层和包含其余部分系数值的至少某些系数值的增强层。
按照本发明的第三方面,提供了用于译码可缩放内容信号数据流的译码器,该译码器包括接收机,用于接收可缩放内容信号数据流;可缩放内容信号数据流包括包含重要系数和截断的不太重要系数的基本层和包含与截断的不太重要系数有关的其余部分系数值的增强层;组合处理器,用于根据组合基本层的可变长度编码系数和截断的不太重要系数与增强层的其余部分系数值而生成组合的数据流;以及译码处理器,用于根据组合的数据流生成译码信号。
按照本发明的第四方面,提供了用于译码可变长度编码数据流的译码器,该译码器包括接收机,用于接收包括具有移位的系数值的可变长度编码系数的可变长度编码数据流;移位处理器,用于通过对于具有移位的系数值的可变长度编码系数执行逆移位操作而生成移位补偿的数据流;以及译码处理器,用于根据移位补偿的数据流生成译码信号。
按照本发明的特征,译码器还包括移位值接收机,用于接收与移位系数值有关的移位值参数,以及其中根据移位值参数确定逆移位操作。
按照本发明的第五方面,提供了对可变长度编码数据流进行转码的方法,该方法包括以下步骤接收包括可变长度编码系数的可变长度编码数据流;根据重要性准则确定可变长度编码系数是重要系数还是不太重要系数;截断不太重要系数;以及生成包括重要系数和截断的不太重要系数的转码数据流。
通过参照此后描述的实施例,本发明的这些和其它方面将是显而易见的并将被阐明。
附图简述参照附图并仅仅通过例子来描述本发明的实施例,其中

图1是按照本发明的实施例的转码器的图2是按照本发明的实施例的用于移位操作的移位矩阵的例子的图;图3是按照本发明的实施例的用于生成可缩放的数据流的转码处理器的图。
优选实施例说明下面的描述集中在可应用到用于可变长度编码视频数据流的转码器和特别是应用于MPEG 2编码视频数据流的本发明的实施例。然而,将会看到,本发明并不限于这个应用,而是可应用于许多其它应用和例如包括音频或多媒体流的可变长度编码数据流。
图1是按照本发明的实施例的转码器100的图。
转码器100包括接收机101,在优选实施例中,接收机101接收来自外部源103的MPEG 2编码视频信号。
接收机101被连接到子集处理器105。接收的数据流被馈送到子集处理器105。子集处理器105分析接收的数据流,并把数据划分成图像数据和控制数据。控制数据包括标题信息和与视频信号的图像不直接相关的其它数据。子集处理器被连接到重要性处理器107和编码处理器109,以及在优选实施例中,控制数据被直接馈送到编码处理器109以及图像数据被馈送到重要性处理器107。
重要性处理器107因此被馈以可变长度编码视频数据流。重要性处理器在可变长度代码域中分析这个数据并把可变长度编码系数划分成重要系数和不太重要系数。任何适当的准则可被用来确定可变长度编码系数是重要的还是不太重要的,但在优选实施例中,系数仅仅在它具有的系数值超过一定的门限值时才被认为是重要的。
重要性处理器107被连接到截断处理器111。截断处理器111包括截断单元113,该单元被馈送以不太重要系数。截断单元113对于不太重要系数执行截断操作。截断可以是任何适当的操作,但优选地它减小对于表示可变长度代码中的系数所需要的比特数目。这样,可以通过根据相应的未截断的和截断的系数值的查找表来直接截断系数而执行截断。任选地,可以通过对于不太重要系数执行移位操作而执行截断操作,以及具体地,通过这样的操作可以丢弃不太重要的比特。因此,优选地,截断操作实现比特减少,但可能因此导致信息丢失。
在优选实施例中,截断是通过把所有被确定为不太重要系数的系数值设置为零值而实现的。在大多数可变长度代码方案中,零系数值需要最少数目的要表示的比特。另外,诸如MPEG 2之类的编码方案还包括可变长度代码数据的游程长度编码,由此具有连续的零数值的高效表示。因此,把系数值设置为零可以导致比特速率很显著的减小。
在一些实施例中,截断处理器111对于重要系数不执行任何操作。然而,在优选实施例中,截断处理器111还包括对于重要系数执行缩小操作的缩小单元115。缩小操作对于重要系数进行算术减小,并且具体地对于系数执行移位操作。具体地,足够数值的系数的可变长度代码表示的移位操作可导致比特速率降低而没有最终的信息损失,因为译码器可以通过逆移位操作来重新生成原先的数值。
截断处理器111被连接到编码处理器109,编码处理器被馈送以截断的不太重要系数和(可能缩小的)重要系数。在还包括游程长度编码的MPEG 2信号的优选实施例中,重要系数的游程长度值被修正为包括不太重要系数的截断的零系数的数目,以及包括重要的和不太重要系数的数据流被馈送到编码处理器109。编码处理器把控制数据、重要系数和截断的不太重要系数组合成转码数据流。在优选实施例中,接收的MPEG 2信号因此被重新生成,但用零系数替代不太重要系数。因此,已经实现了原先数据流的比特速率减小。所以,数据流的比特速率的减小可以完全通过在可变长度代码域中的操作来实现。因此,转码器不需要执行量化/重新量化、正向/逆向离散余弦变换、扫描等等,正如通常与用于诸如MPEG 2数据流之类的数据流的转码器有关的。
下面将描述图1的译码器的运行的另外的方面和细节。所述说明将具体地集中在MPEG 2编码信号的转码。
在优选实施例中,子集处理器105分析接收的数据流并约去所有与块、宏块标题和运动矢量有关的数据。这些数据不应当被修正,所以它们被馈送到编码处理器,以便直接被包括在转码的数据流中。
剩余的数据相应于使用可变长度代码和游程长度编码已经编码的DCT系数,正如现有技术众所周知的。具体地,DCT系数按照MPEG标准的表B-14、B-15和B-16[ISO/IEC,International Standard13818-2,Recommendation ITU-TH.262 Information Technology-Generic Coding of Moving Picture and Associated AudioInformationVideo,1995(ISO/IEC,国际标准13818-2,建议ITU-TH.262信息技术-活动图像和相关的音频信息的通用编码视频,1995)]被编码。按照这个方案,非零系数由给出为(R,L)的数值的可变长度编码来表示,其中R是系数的游程值,相应于前面的零数值系数的数目,以及L是非零系数的电平或数值。
在重要性处理器107中,量化的DCT系数被划分成重要系数和不太重要系数。用于这个划分的重要性准则优选地考虑各个系数的各种特征,其包括它具有的数值是否超过门限值,系数的相关的空间DCT频率是多少,以及系数的游程长度是多少(例如前面的零系数的数量)。
具体地,在优选实施例中,如果系数满足以下的条件,则系数被认为是不太重要的R>Rt&n>Nt&L<Lt, (1)其中R是系数的游程值,n是在折线扫描MPEG2 DCT块的一维矩阵中系数的位置,L是称为系数级别的系数值,以及Rt、Nt和Lt是对于截断的相应的门限值参数。Rt、Nt和Lt的数值可以按照转码器的参数和要求以及具体地根据想要的转码的比特速率进行改变。
数值Lt相应于被认为是不太重要系数的系数的数值或级别的最大门限值。所以,高于Lt的所有系数值被认为是重要的,因此它将不被截断。这使得视频恶化最小化,因为包括重要的频率分量的所有数值被认为是重要的。
数值Nt规定从扫描块的开始端的多少个系数应当被认为是重要系数,因此不被截断。块的这些第一系数是DC和低频AC系数。它们表示对于视频质量的最重要的信息,并且改变这些信息可以导致重建的图像的明显的视觉失真。
在优选实施例中,满足条件(1)的所有的系数被截断成零。这导致信息损失,并因此是有损耗操作。通过截断成零值,对于这些系数优选地不产生可变长度码字。Rt的数值规定应当在不太重要系数前面的零的最小数目。因为在MPEG 2DCT块的高频区域中(DCT块的右下角)零的概率是较高的,所以这个要求允许有效地利用DCT块的折线扫描的性质,以便抑制具有低的数值的高频系数。
如果以前的系数被截断为零,并且当前的系数不满足条件(1),则当前的系数的数值(L)保持不变,但它的游程长度值(R)按照(2)进行更新Ri′=Ri-1+1+Ri(2)其中R’i是当前的系数的游程参数的新的数值;Ri-1是被截断为零的以前的游程长度系数的游程参数的原先的数值;以及Ri是当前的游程长度系数的游程参数的原先的数值。因此,重要系数的游程长度值优选地被更改为反映由于把不太重要系数截断成零数值而造成的增加的零系数。
如果以前的系数没有被截断并且当前的系数是重要的(不满足条件(1)),则R和L的数值保持不变。这样的当前系数的可变长度代码可被馈送到编码处理器109,以便直接包括在转码的数据流中。这样,只有具有前面的不太重要系数的重要系数需要重新进行可变长度再编码。其它重要系数的可变长度代码可以复制而不需要改变。这提供对于给出比特速率减小的转码的数据流的低复杂性的转码。
在优选实施例中,通过对于重要系数执行缩小操作,转码的比特速率优选地进一步被减小。具体地,通过移位操作减小当前系数的数值(以及具体地是L值)。移位可以看作为从DCT块内的系数的L值中减去(减小)某个参数S。
在MPEG2中使用的可变长度代码的例子如下
表1.DCT系数的可变长度代码表(从B-14[5]得出)
按照表1,对于R=2,L参数从3移位到1将减小可变长度码字6比特。在译码一侧,接收的系数的L数值应当通过把移位的参数加到接收的L值而从1移位回到3。所以,移位没有引入任何额外的信息损失。
具体地,移位过程优选地包括丢弃(截断)具有低于给定的移位参数值的数值(电平)的系数。如果S是表示切换给定的L值的电平的数目的移位值,则实际上得到Lt=S的相应的截断电平。所以,不太重要系数的截断操作可以作为相应于条件(1)中Lt=S和Rt=0的移位操作的一部分被实施。
移位参数S以及门限值Lt和Rt可以取决于系数在DCT块内的位置和/或取决于系数的数值的分布。而且,对于每对(R,L)可以自适应地确定移位因子S。具体地,可以从对于整个DCT块固定的参数Sb乘以依赖于系数位置的移位值而确定S。依赖于位置的移位值可被包括在移位值矩阵Sm中。
参数Sb优选地每个DCT块规定一次,并且它取决于块内的最大L值、块的类型、量化矩阵等等。矩阵Sm根据系数在DCT块中的位置提供不同的移位值。各个系数对于视频质量的相对影响取决于系数在8×8DCT块内的位置。因此,矩阵Sm可以反映系数的各个重要性,因此允许根据系数的相对重要性各个地移位或截断。由于相应的空间频率向右下角增加,所以它允许移位操作依赖于由可变长度编码数据流编码的信号的相关频率参数。
对于不同的类型的DCT块或相关的图像类型,可以分配不同的移位矩阵。通常,矩阵Sm的元素的数值沿从8×8DCT块的左上角到右下角的方向增加,以提供高频系数的主要的减小和截断。图2是移位矩阵201的例子的图。具体地,对于其Sm项为零的对(R,L)的可变长度码字从输入数据流被复制到输出数据流而不用重新编码。
在其中只使用不太重要系数的截断而不移位重要系数的实施例中,矩阵Sm可以具体地规定用于丢弃(截断)重要系数的门限值电平(即条件1的Lt值)。
在移位期间,所有的重要系数的L值都被改变。如果以前的系数已被截断,则R值应当按照(2)被更新。为了加速转码过程,可以只移位具有n>Nt的系数。可以不用改变地复制头n个系数。典型地,低频系数具有高的L值,正如从表1中看到的,这些系数往往不导致可变长度代码尺寸的明显的减小。所以,在一些实施例中,可以根据对于至少一个系数的可实现的字长减小来执行截断和/或缩小操作。
利用移位来转码可变长度代码域中的DCT系数的具体算法的例子可以由以下的伪代码给出<pre listing-type="program-listing">eob_not_read=1;n=0;while(eob_not_read){<decode VL codeword toreceive Ri,Li>if(decoded VL codeword=eob.)eob_not_read=0;else{n=n+Ri+1;/*当前系数的位置*/Si=Sb*S[1,j];/*移位参数的定义*/if(n<Nt)<copy VL codeword to outgoing stream>elseif(Li<Si)Tr=1;else{Li=Li-Si;if(Tr=1)Ri=Ri-1+1+Ri;<VL coding of(Li;Ri)coefficient>;Tr=0;}}}.</pre>在一些实施例中,这个算法的截断部分可以分开来实施。在这种情形下,应当通过跳过操作Li=Li-S来改变以上代码。
在优选实施例中执行重要系数的截断和不太重要系数的移位。适合的译码器还包括接收机,它接收来自转码器的转码的流。另外,它包括接收与用于移位系数值的移位值参数的数值有关的信息的移位值接收机。移位值的参数被馈送到移位处理器,它通过对于移位的系数值执行逆移位操作而生成移位补偿数据。逆移位操作是按照接收的移位值参数执行的。最终得到的数据流被馈送到译码处理器,用于译码基础信号,以及具体地,译码处理器可以执行传统的MPEG2译码过程。
在一些实施例中,编码处理器109用来生成包括转码数据流的可缩放信号数据流作为基本层和至少一个附加增强层。因此,在一个这样的实施例中,转码数据流被实施为基本层,并且生成至少一个增强层,它包括在不太重要系数的截断操作期间丢失的一些或所有信息。
图3是按照本发明的实施例的用于生成可缩放的数据流的转码器的图。转码器相应于图1的转码器,其编码处理器109用来生成可缩放的信号。
转码器包括连接到如前所述的编码处理器109和截断处理器111的子集处理器105。编码处理器109包括基本层编码处理器301,它按照以前说明生成转码流。这个转码流作为基本层被输出。
在描述的实施例中,截断处理器111并不丢弃在截断和/或缩小操作时丢失的任何信息。而是,这个信息被馈送到编码处理器109的第一增强层处理器303。具体地,从截断处理器111操作留下的其余部分的截断和/或移位值被馈送到第一增强层处理器303。第一增强层处理器303被连接到第一增强层编码处理器305,以及在一个实施例中,其余部分的系数值仅仅由第一增强层编码处理器305编码为第一增强层。
然而,在描述的实施例中,第一增强层处理器303对于其余部分的系数执行另外的截断操作,具体地执行移位操作。这把其余部分的系数进一步划分成较高有效比特(more significant bit)和较低有效比特(less signifieant bit)。较高有效比特被馈送到第一增强层编码处理器305,该处理器把这些比特组合成数据流,作为第一增强层输出。
最低有效比特因此相应于第二组其余部分值,它们被馈送到第二增强层处理器307。这个第二增强层处理器307把第二其余部分系数值馈送到第二增强层编码处理器309,该处理器从这些数值生成第二增强层。
因此,转码器生成基本层作为比特速率减小数据流。这个基本层包括对于译码(虽然以降低的质量水平)基础信号的所有必须的信息。在转码时丢失的一些或所有的信息被提供在一个或多个另外的增强层中,它们可选地被用来改进译码的质量水平。
在一个可缩放的转码器实施例中,通过把系数的数值(L值)移位一个给定的移位值来执行系数的截断和缩小。在这种情形下,重要系数被自动确定为在移位后具有非零值的系数。
在这个实施例中,已被移位出的电平被馈送到下一个增强层处理器。这个增强层处理器也执行移位操作。在移位后具有非零值的系数被编码为下一个增强层。这个过程在连续的增强层处理器中重复进行,由此可以容易地生成多个增强层。
因此,如果系数的L数值大于移位参数,则系数被认为是重要的,否则,系数被认为是不太重要的。移位参数的数值规定增强层的数目以及基本层的尺寸。如果移位参数的数值足够高以致生成若干增强层,则每层将具有不同的优先级。位于增强层内不太重要系数的L值越高,这层的优先级越高。
在移位期间,所有的重要系数的L值都被改变。新的L’值是通过从原先的L数值减去移位参数而被确定的L’=L-S,其中S是移位参数。
重要系数的R值只在以前的系数是不重要的并且已在增强层中被分配的情形下才被改变。
在当前的系数是不太重要的情形下,它应当在增强层中进行分配。有可能同时生成几个增强层。为了规定不太重要系数应当在哪个增强层进行分配,把它的L值与移位参数的减小的数值进行比较(在增强层处理器中)。不太重要系数的R值按照新的位置和以前的系数的R值被重新规定。这样,每个增强层被单独地和并行地编码。这可以允许快速的转码,从而能够实现高的数据速率和/或低的延时。
在接收一侧的可变长度译码器可以独立地和并行地译码这些层,或可以首先在译码一个流之前从接收的层中重建在可变长度域中的完全的流。
在可变长度代码域中利用生成分层的增强信息来转码DCT系数的具体算法的例子由以下的伪代码给出eob_not_read=1;n=0;i=0;K0=K1=…Kn=0;/*当前层中的先前系数的数目*/while(eob_not_read){&lt;decode variable length codeword to receive Ri,Li&gt;;i=i+1;/*译码的可变长度码字的数目*/if(decoded variable length codeword=eob.)eob_not_read=0;else{n=n+Ri+1;/*在输入的扫描DCT块中当前系数的位置*/if(n<Nt){&lt;copy variable length codeword to the outgoing stream&gt;K0=i;}elseif(Li>S){Li=Li-S;Ri=&Sigma;j=Ko+1i-1Rj+Ri;]]>K0=i;&lt;variable length coding of(Li;Ri)cofficient in BL&gt;;}else{h=1;v=1;while(h<S){if(Li>=S-h){Ri=&Sigma;j=Kv+1i-1Rj+Ri]]>Kv=i;&lt;variable length coding of(Li;Ri)coefficient in EL v&gt;;h=S;}else{h=h+1;v=v+1;}}}}}在这个算法中,v是增强层的数目,v=1规定具有最高优先级的增强层(紧接在基本层后面)。Kv是在增强层v中编码的最后的系数的数目。所述过程被实行,直至从输入流接收到“块结尾”(e.o.b)的代码为止。
典型地,在增强层内所有系数的所有R值被修正为在基本层中的一些系数。系数的新的R值被规定为位于在当前的系数与放置在当前层中最后的系数之间的输入流中的系数的原先R值的总和。
移位参数S可以根据比特速率转码的数据速率减小的比值来确定。输入的和转码的流的比特速率之间的差值越大,移位参数S的数值越高。S数值具体地可以在基本层流开始时被发送。
在一个实施例中,编码器包括信号编码器,用于从信号中生成可变长度编码数据流;以及如上所述的转码器,把来自编码器的数据流变换成可缩放的数据流。
译码器可被实施来用于由以上过程生成的可缩放的数据流。在一个实施例中,译码器包括用于接收可缩放内容信号数据流的接收机。接收机被连接到组合处理器,该处理器通过组合不同层的系数来生成组合的数据流。组合处理器还被连接到译码处理器,该处理器从组合的数据流中生成译码的信号。
译码器可以具体地对于每个层执行单独地(和/或并行地)可变长度译码,然后从不同的层的译码的DCT系数中生成全部DCT块系数的单个流。
替换地,单个流可以在可变长度域中被译码。在这个实施例中,系数的(R,L)对从不同的层被插入到单个完全的流内的正确的位置。
本发明可以以任何包括硬件、软件、固件或这些的任何组合的适当的形式被实施。然而,优选地,本发明被实施为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明的实施例的单元和部件可以以任何适当的方式物理地、功能地和逻辑地被实施。实际上,功能可以以单个单元、以多个单元或作为其它功能性单元的部件被实施。同样,本发明可以以单个单元被实施,或本发明可以物理地和功能地分布在不同的单元与处理器之间。
虽然本发明已经结合优选实施例进行了描述,但不打算把本发明限于这里阐述的具体的形式。而是,本发明的范围仅仅由所附权利要求限制。在权利要求书中,术语“包括”并不排除其它单元或步骤的存在。而且,虽然被各个地列出,但多个装置、单元或方法步骤例如可以由单个单元或处理器来实施。另外,虽然各个特性可被包括在不同的权利要求中,但这些特性有可能被有利地组合,并且包括在不同的权利要求中并不意味着特性的组合是不可行和/或不利的。此外,单个的提及并不排除多个。因此,提到的“一个”、“一”、”第一”、”第二”等等并不排除多个。
权利要求
1.一种用于可变长度编码数据流的转码器,包括用于接收包括可变长度编码系数的可变长度编码数据流的接收机;重要性处理器,用于根据重要性准则确定可变长度编码系数是重要系数还是不太重要系数;用于截断不太重要系数的截断处理器;编码处理器,用于生成包括重要系数和截断的不太重要系数的转码的数据流。
2.如权利要求1中要求的转码器,其中截断包括把不太重要系数的数值设置为零。
3.如权利要求1中要求的转码器,其中重要性准则包括可变长度编码系数的数值是否超过门限值的准则。
4.如权利要求1中要求的转码器,其中重要性准则是根据由可变长度编码流编码的信号的一个相关频率参数来确定的。
5.如权利要求1中要求的转码器,其中可变长度编码系数是游程长度编码的,以及其中重要性准则包括可变长度编码系数的序列的游程长度是否超过门限值的准则。
6.如权利要求1中要求的转码器,其中可变长度编码系数是游程长度编码的,以及其中重要系数的游程长度值被修正以反映由于把不太重要系数截断成零值而造成的增加的零系数。
7.如权利要求1中要求的转码器,还包括子集处理器,用于把可变长度编码数据流的子集提供到编码处理器;以及其中编码处理器用来把可变长度编码数据流的子集直接包括在转码的数据流中。
8.如权利要求7中要求的转码器,其中可变长度编码数据流的子集包括与由可变长度编码流所编码的信号的低频参数有关的可变长度编码系数。
9.如权利要求7中要求的转码器,其中可变长度编码数据流的子集包括与由可变长度编码流所编码的视频信号的运动补偿参数有关的可变长度编码系数。
10.如权利要求7中要求的转码器,其中可变长度编码数据流的子集包括控制数据。
11.如权利要求7中要求的转码器,其中可变长度编码数据流的子集包括标题数据。
12.如权利要求1中要求的转码器,其中截断处理器还用来对于重要系数的数值执行缩小操作。
13.如权利要求12中要求的转码器,其中缩小操作是移位操作。
14.如权利要求12中要求的转码器,其中缩小操作取决于由可变长度编码流所编码的信号的相关的频率参数。
15.如权利要求12中要求的转码器,其中缩小操作取决于与至少一个可变长度编码系数有关的游程长度。
16.如权利要求12中要求的转码器,其中缩小操作参数取决于重要系数的多个系数值。
17.如权利要求12中要求的转码器,其中缩小操作参数取决于对于至少一个重要系数的可实现的字长减小。
18.如权利要求1中要求的转码器,其中可变长度编码系数包括压缩的视频信号的量化的离散余弦变换系数。
19.如权利要求1中要求的转码器,其中编码处理器用来生成一个包括转码数据流的可缩放的信号数据流作为基本层和至少一个附加增强层。
20.如权利要求19中要求的转码器,其中截断处理器用来生成与不太重要系数的截断有关的其余部分的系数值,以及该至少一个附加增强层包括其余部分的系数值的至少一些系数值。
21.如权利要求19中要求的转码器,其中截断处理器用来对重要系数执行移位操作并生成与移位操作有关的其余部分系数值;以及该至少一个附加增强层包括其余部分的系数值的至少一些数值。
22.如权利要求21中要求的转码器,其中截断处理器还用来对其余部分的系数值执行第二移位操作并生成第二其余部分系数值,以及编码处理器用来把第二其余部分的系数值的至少一些数值包括在第二增强层中。
23.一种用于编码信号的编码器,包括用于从信号中生成可变长度编码数据流的信号编码器;该可变长度编码数据流包括可变长度编码系数;重要性处理器,用于根据重要性准则确定可变长度编码系数是重要系数还是不太重要系数;截断处理器,用于截断不太重要系数以及用于生成与不太重要系数的截断有关的其余部分的系数值;以及用于生成可缩放的信号数据流的编码处理器,所述数据流包括一个包含重要系数和截断的不太重要系数的基本层以及一个包含其余部分的系数值的至少一些系数值的增强层。
24.一种用于译码可缩放内容信号数据流的译码器,该译码器包括用于接收可缩放内容信号数据流的接收机;该可缩放内容信号数据流包括一个包含重要系数和截断的不太重要系数的基本层以及一个包含与截断的不太重要系数有关的其余部分的系数值的增强层;组合处理器,用于通过组合基本层的可变长度编码系数和截断的不太重要系数与增强层的其余部分的系数值来生成一个组合的数据流;以及用于根据组合的数据流生成译码信号的译码处理器。
25.用于译码可变长度编码数据流的译码器,译码器包括用于接收一个包括具有移位的系数值的可变长度编码系数的可变长度编码数据流的接收机;移位处理器,用于通过对于具有移位的系数值的可变长度编码系数执行逆移位操作来生成一个移位补偿的数据流;以及用于根据移位补偿的数据流生成译码信号的译码处理器。
26.如权利要求25中要求的译码器,还包括移位值接收机,用于接收与移位系数值有关的移位值参数,以及其中根据移位值参数来确定逆移位操作。
27.一种对可变长度编码数据流进行转码的方法,该方法包括以下步骤接收一个包括可变长度编码系数的可变长度编码数据流;根据重要性准则确定可变长度编码系数是重要系数还是不太重要系数;截断不太重要系数;以及生成一个包括重要系数和截断的不太重要系数的转码数据流。
28.一种能够实行按照权利要求27的方法的计算机程序产品。
全文摘要
本发明涉及用于诸如MPEG 2编码数据流之类的可变长度编码数据流的转码器(100)。该转码器(100)包括接收可变长度编码数据流的接收机(101)。该接收机(101)被连接到重要性处理器(107),该重要性处理器(107)确定可变长度编码系数是重要的还是不太重要的。该重要性处理器(107)被连接到截断处理器(111),该截断处理器(111)截断不太重要系数。转码器还包括编码处理器(109),该编码处理器(109)从原先的重要系数和截断的不太重要系数中生成转码的数据流。所有的处理可以仅仅在可变长度代码域中执行,由此提供低复杂性和高速度的转码器。
文档编号H04N7/26GK1714576SQ200380103751
公开日2005年12月28日 申请日期2003年10月29日 优先权日2002年11月22日
发明者I·基伦科, G·J·赫克斯特拉 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1