专利名称:在音像压缩系统中用于计算适度失真的方法
技术领域:
本发明涉及一种用于在音像压缩系统中计算适度失真的方法。本方法在对比特流的解码计算要求不确定的编码解码环境中是十分有用的。并且在信道容量有限并要求某些形式的服务质量的保证的情况下十分有用。而且用于两种不同的分辨率的视频服务之间的内部操作中。
当系统的资源不足以完全地对所有视频比特流进行解码时,通常利用软件以具有一定失真的方式进行解码。这些失真的范围从图像单元的部分解码直到整个图像。这在单个视频流的情况下是容易实现的。
在已被提出的新的MPEG-4的ISO/IEC SC29/WG11标准中,可以传送复合音像、AV、对象。因此,整体的复杂度要求不再依赖于单个流,而是依赖于复合流。
在压缩系统中(如MPEG-1,MPEG-2,MPEG-4)通过运用运动补偿,可以在很大程度上消除暂时冗余信息。从直观上看,在视频序列中的连续图像包含了非常相似的信息,只有图像中的部分运动区域在图像与图像之间变化。另外,这些区域通常作为一个单位作整体运动。运动补偿是这样一种技术,即编码器和解码器以已被重构图像作为参照,预测当前要被编码或解码的图像。该编码器通过运用局部解码器环路模拟该解码器。因此能够保持在编码器和解码器之间重构的同步。
该编码器在已重构图像中搜索与当前被解码的模块最相匹配的模块。然后计算该运动补偿模块与当前被解码的模块之间的预测差别。由于该运动补偿模块可在解码器和编码器中获得,该解码器只要把该模块的位置和预测差别传送到解码器中。该模块的位置通常被称为矢量。该预测差别通常被称为运动补偿预测差别。这些信息的传送所需要的位数比当前模块本身少。
在内部图像编码中,可以用类似的方式除去空间冗余量。该模块的变换系数可以从已被解码的相邻模块的变换预测中预测出来。
在本发明中有两个主要问题要解决。第一个是如何表示当前音像对象的解码复杂度要求。在有复合音像对象的情况下,该系统解码器必须确定要把多少资源分配给特定的对象,以及确定哪个对象优先于其他对象。换句话说,就是如何建立系统复杂度要求的模式。要注意的一个问题是,解码器的复杂度要求依赖于解码器的执行过程。对于一个执行过程来说是复杂的操作,可能对于另一个执行过程来说是简单的。因此,需要对一些形式的执行过程进行独立的复杂度检测。
第二个问题是如何在解码器中减小所需的复杂度。这里涉及在解码过程中减小复杂度的并且尽量地保持足够的信息的方法。在适度失真中的一个最大问题是由于在运动补偿中的误差所引起的飘移问题。当采用适度失真时,所重构的图像不完全或有噪音。这些误差会从一个图像传送到另一个图像。结果误差会变得越来越大,这些噪音的传递称为漂移。
为了解决这些问题在本发明中采用如下步骤。
该音像对象编码器对该音像对象进行编码使得可以在该音像对象解码器允许不同程度的适度失真。与音像对象的计算复杂度要求有关的参数被在系统编码器中传输。通过传送用于表示所需操作的参数,可以实现独立的复杂度计算。
在系统解码器中,根据这些参数以及所采用的方法可以估计所需的复杂度。然后资源分配器把适量的资源分配给对不同音像对象的解码过程。在该音像对象解码器中,当该资源不足以完全对该音像对象解码时,可以采用计算适度失真进行解码。
根据本发明的第一方面,一种用于把多个音像对象编码为适于在该解码器中计算适度失真的压缩编码图像的方法中包括对所述音像对象编码,把允许在该解码器中计算适度失真的方法合并到该音像对象的编码图像中;利用多个模块解码参数估计执行独立计算的复杂度的大小;把该音像对象的所述编码图像分割为多个存取单元,并加入标头信息以形成数据包;把包含所述模块解码参数的描述符插入该数据包的标头中;把这些数据包复合形成一个复合比特流。
根据本发明的第二方面,一种带有计算适度失真,用于对复合比特流进行解码以获得多个音像对象的方法中包括如下步骤把单个复合比特流进行解复合形成包含包标头和存取单元的多个数据包;从该包标头中提取包含多个模块解码参数的描述符;把该存取单元重新组合为该音像对象的原始编码图像;根据所述解码参数和当前解码器的运用,估计该解码器的特定计算的复杂度;采用计算适度失真对该音像对象的所述编码图像进行解码,以满足该估计的解码器的特定计算复杂度要求。
最好,允许在该解码器中应用计算适度失真的合并方法中包括如下步骤把该要被编码的输入图像分割为按升序标号排列的多个子域,在每个子域中只包括在其前面的一个子域内的一个像素的子集;把该子域的位置和尺寸熵编码为在比特流内的压缩编码图像;进一步把该子域分割为用于在该比特流内编码为压缩编码图像的多个模块;只采用属于具有与所述模块相同或更高的编号次序的子域的重构图像中的像素来执行运动估计和运动补偿;把该运动矢量解码为比特流中的压缩编码图像;把该运动补偿预测差别变换到一个正交域中;用量化方法对该变换系数进行量化;把该量化后的变换系数进行熵编码为在比特流内的压缩编码图像。
最好,根据该第二方面,在采用满足估计解码器的特定计算复杂度要求的计算适度失真的对音像的编码图像进行解码的方法还包括如下步骤对在该比特流内的压缩编码图像的子域的位置和尺寸进行熵解码;只在该子域中选择所要的模块进行解码;对该压缩编码图像进行熵解码以得出量化变换系数;对所述量化变换系数进行反量化以得出变换系数;
对所述变换系数进行反变换以得出空间域移动补偿预测差别;对来自该比特流中的压缩编码图像的运动矢量进行熵解码;只用属于子域并且有与所述模块相同或更高序号的重构图像的像素对所述模块进行运动补偿;重构图像并在帧存储器中存储所述图像以预测下一幅图像。
最好,在根据本发明第一方面的方法(其中包含可以在该解码器中应用计算适度失真的方法)中也包括如下步骤把所输入的要被编码的图像分割为多个按升序排列的子域,以整幅图为开始作为第一子域,其中每个子域中只由在其之前子域的像素的子集构成;在该比特流中,把该子域的位置和尺寸熵编码为压缩编码图像;在该比特流中,进一步把该子域分割为多个用于编码为压缩编码图像的多个模块;把所述模块变换到一个正交域;用量化方法对该变换系数进行量化;只用从上述模块到其左边的属于具有与所述模块相同或更高的序号的子域的对应量化变换系数,对所述模块执行量化系数预测;在该比特流中,把该量化变换系数的预测差别熵编码为压缩编码图像。
最好,根据本发明第一方面的方法中包括如下步骤在该比特流中,从该压缩编码图像中熵解码出该子域的位置的尺寸;选择在所需子域中的模块进行解码;对该压缩编码图像熵解码得出量化变换系数;只用从上述模块到其左边的属于具有与所述模块相同或更高的序号的子域的对应量化变换系数,对所述模块执行量化系数预测;对所述量化变换系数进行反量化,以得出该变换系数;对所述变换系数进行反变换以得出空间域像素值;重构该图像并在该存储器中存储所述图像以预测下一幅图像。
一般来说,该多个模块解码参数中包括表示如下操作次数的数目模块熵解码操作;
模块运动补偿操作;模块反量化操作;模块变换操作;模块增加操作;模块存储器访问操作。
最好该描述符中包括表示该描述符的类型的描述符识别号码;表示该描述符的大小的描述符长度范围;多个模块解码参数。
一般来说,在把要被编码的输入图像分割为多个子域的方法中,该子域为矩形。
最好,在对所述模块执行运动估计和运动补偿的方法中,只利用来自属于具有与所述模块相同或更高的序号顺序的重构图像的像素,这意味着只有完全位于所述子域内的预测模块会被选中。
一般来说,当只有来自属于具有与所述模块相同或更高的序号顺序的重构图像被采用时,预测模块可能部分地位于所述子域之外,但其附加条件是位于所述子域之外的像素被来自该子域内部的最近像素所取代。
最好,在把该图像分别为多个子域的方法中,每个所述子域的位置和尺寸可能对于各幅图像来说都不相同,并且所述位置和尺寸被以全局扫描矢量的方式进行编码,从而得出水平和重直位移、宽度和高度。
一般来说,在把该图像分割为多个子域的方法中,子域的位置和尺寸对于各图像来说是相同的,并且所述位置和尺寸在该序列的开始处被以水平和垂直位移、宽度和高度的方式进行一次编码。
最好,在该编码和解码方法中,该变换为离散余弦变换。
一般来说,在该编码和解码的方法中,子域的数目为两个。
最好,在该方法中,多个子域按升序排列并且该运动矢量可指向一个低序列的子域,但不会从较低序列的子域指向较高序列的子域。
图1为本发明的整体方框图;图2表示本发明的编码器和解码器的方框图3表示本发明的子域和运动矢量的一个实施例;图4表示本发明中的全局扫描矢量和子域尺寸的一个实施例;图5表示用于子域边界进行运动补偿预测的填充方法的第二实施例;图6表示用于复杂度估计器的方框图。
图1表示本发明的整个系统的方框图。编码器单元110对该视频序列编码以允许计算适度失真技术。该编码器110的输出为一个传输到编码缓冲器120的视频编码图像。同时,该视频序列和编码图像也被传输到一个复杂度参数编码器130,在该编码器中与该用于解码的操作关联的参数被计算并编码。这些信息与该编码缓冲器120的输出一同传输到形成系统多复合流的系统编码器和多路复用单元140。该系统复合流被通过传输介质150传输。
一个解多路复用器和系统解码器160接收该系统复合流,其中该比特流被解多路复用为其各个基本流。该视频基本流被传输到解码缓冲器170,并且复杂度参数传输到分配器和复杂度估计单元180。该视频流被从该解码缓冲器170传输到解码单元190。在解码之前,该解码器190等待来自分配器单元180的指令。
该复杂度估计器180给出要被采用的解码器计算适度失真的量。在该解码器中通过只对被认为是包含更重要的信息的整个图像的子域解码,而解码器中实现计算适度失真。在这些情况下,编码器必须防止编码器与解码器相脱离。在解码之后,该解码器单元190,也把信息反馈到分配器和复杂度估计器180,使得该信息可被用于估计下一幅图像的复杂度。
下面是说明在图1所示的上述发明的各个单元的实施例。
图2为根据本实施例的编码器和解码器的方框图。输入到编码器110的输入图像被分割为用于处理的模块。通过从当前图像中减去前一幅图像的运动补偿图像可以从该图像中除去暂时冗余信息。然后把该预测差别传输到DCT单元111的DCT域中。接着,合成DCT系数被在量化单元112中量化。然后量化系数在可变长编码(VLC)单元113中被熵编码,以形成压缩输出比特流。该编码器110也具有一个由一个反量化单元114、一个反余弦变换(IDCT)单元115、一个帧存储器116以及一个运动补偿单元117组成的局部解码器环路。该局部解码器环路通过对该系数反变换,并在反量化单元114和IDCT单元115中把它变换回空间域中。然后,该输出被加到该运动补偿单元117的输出上,以形成重构图像。该图像被存储于帧存储器116中用于对下一幅图像进行运动补偿。
在本实施例中,运动估计单元118和运动补偿单元117的编码部分被改变,使得计算适度失真可在与运动补偿相结合下进行而不会引起飘移。
图3用于说明本发明,如图所示,该图像被分为两个部分220和210。第一部分220为必须在该解码器中解码的子域,而不管是否采用计算适度失真。第二部分210为在该子域外的区域,该区域可在采用计算适度失真时被解码器忽略。在图3中也示出用于运动补偿的两个模块。当对位于子域220中的模块250中执行运动补偿时,该运动补偿预测模块也必须来自该参考图像的子域220中。换句话说,不允许该运动矢量指到该区域外,这称为受限制的运动矢量。另一方面,当模块230位于该子域220外时,该运动补偿预测模块可以来自该参考图像的任何部位。这与没有子域的情况相同。
图4表示如何在每幅图像中指示出子域220的方法。为了对每幅图像指定长方形子域220,则必须为每幅图像指定如下参数,并被编码于该压缩比特流的图像标头中。在图4中绘示出图像310和子域220。图中表示出子域220的左侧边相对于图像的在侧边的水平偏移330,以及子域220的上侧相对于图像的上侧边的重直偏移340。这两个参数(称为全局扫描矢量)被用于表示该子域的位置。该子域220的宽350和高360为要用于确定子域220的尺寸的第二组参数。
在本发明的第二实施例中,在该子域中的运动矢量不必受限制。可以允许该矢量指出参考图像的子域之外。但无论如何都需要填充。这在图5中示出,图5中表示出图像310和子域220。运动补偿预测430跨在子域220的边界上。位于子域220的外部的模块的一部分431不用于预测,且通过重复在子域220边界的像素的数值来填充。位于该子域220内的模块的一部分被采用而不对其进行填充。分别对行和列,对位于垂直边和水平边的模块采用类似的填充方法。
与第一实施例相似,根据第二实施例的方法也可使计算适度失真方法忽略位于子域220外的图像的一部分,而不会引起编码器与解码器相分离。
除了可能引起模块之间发生的飘移的运动补偿之外,在子域220上边界和左边界上的内部模块也受限制,不允许在预测中采用任何位于子域外的模块。这是因为,在该计算适度失真解码器中,这些模块将不被解码,这样预测不会被重复。这样就预排除了在编码器中采用通常所用的直流和交流系数的预测。
图2也说明解码器190的方框图。在此说明采用计算适度失真解码器190的实施例。该压缩比特流被从传输中接收并被传送到可变长解码单元191,在该单元中根据所用的构造法和熵方法对比特流解码。然后,该解码后的信息被传输到计算适度失真选择器192,在该选择器中属于子域220的解码信息被保留,而子域220外的解码信息被忽略。所保留的信息被传输到反量化单元193,在该单元中余弦变换系数被恢复。接着,该被恢复系数被传输到反余弦变换单元194,在该单元中,该系数被变换回空间域。接着,加上运动补偿预测以形成重构图像。该重构图像被存储于帧存储器195中,并被用于预测下一幅图像。运动补偿单元196根据在编码器110中所用的相同方法执行运动补偿。
在运动矢量受到限制的编码器的第一实施例中,在该解码器中不再需要另外的修正方法。在运动矢量不受限制的编码器的第二实施例中,如在上文中结合附图所述的带填充的运动补偿方法被用于解码器中。最后,在子域220的上边界和左边界上的内部模块也受限制,不用子域200外部的任何模块进行预测。这样就预先排除了运用通常所用的直流和交流系数预测。
在本实施例中复杂度参数编码器中包括用于记数所需要的模块解码操作的次数的计数单元。该模块解码操作不是基本的运算操作,而是在模块中进行的一系列操作过程的集合。一个模块解码操作过程可以是模块反量化操作、模块反余弦变换操作、模块存储器存取或其他以模块为基础在模块中执行解码任务的操作的集合。复杂度参数编码器计数需要每组操作的模块的数目,并把它们反映在参数中。模块解码操作不采用简单的运算操作的原因是在不同的应用中可采用不同的比其他操作更有效的操作。
在解码器的结构和硬件数量以及软件解法方面存在不同之处,这使得对原始处理能力和存储器存取方法的运用不能可靠地表明复杂度要求,但是,如果计数模块解码操作所需的操作数目的参数表示所需的参数,则解码器可以估计复杂度。这是因为解码器在其应用过程中能够取得对每模块解码操作中所需的操作数量。
在系统编码器和多路复用器的实施例中,初始比特流被打包和多路复用以进行传输。与该复杂度参数相关的信息也被复合到该比特流中。该信息被插入包的标头中,不需要这种信息的解码器可以简单地忽略该信息。需要这种信息的解码器可以对该信息解码并把它译出来以估计复杂度要求。
在本实施例中,编码器把该信息以描述符的形式插入包标头中。该描述符中包含表示该描述符的类型的识别代码,并在该描述符识别代码后跟着包含于描述符内的总字节数。其他的描述符中包含用于模块解码操作的参数。该描述符也可以带有在以前没有定义而由用户定义的参数。
在图1的分配器和复杂度估计器180中,根据在描述符中读出的参数以及来自解码器的反馈信息计算解码所有音像对象所需的时间。
在图6所示的复杂度估计器180的实施例中,该模块解码操作参数181a、181b和181c在被预先分别乘以加权数182a、182b和182c之后传输到复杂度估计器183。该复杂度估计器183估计要被解码的图像的复杂度并把估计的复杂度184传输到解码器190。在对该图像解码后,解码器190返回图像的实际复杂度185。通过求出估计的图像复杂度184与实际的图像复杂度185可以得出在复杂度估计中的误差186。接着;把误差186传输到保存用于加权的校正值,188a、188b和188c的反馈增益单元187。通过这些校正值修改加权数,并继续进行对下一幅图像的复杂度估计。
本发明的效果是对能够处理最差情况的过程不再是必须的。通过采用计算复杂度的指示和计算适度失真的方法可以简化所用的解码器。该解码器具有能解码大多数序列的能力,但是如果解码器遇到要求较高的序列,它可降低解码器的输出质量和分辨率以对该比特流解码。
本发明对具有不同分辨率和/或不同格式的业务的内部工作也是有用的。该子域可以由较低分辨率的解码器解码,而较高分辨率的解码器用于对整幅图像解码。一个实例是纵横比率在16∶9和4∶3之间内部工作的解码器。
权利要求
1.一种用于编码音像对象的方法,其中包括如下步骤对该音像对象编码以获得压缩编码数据;编码与计算复杂度的估计相关的信息以获得一个描述符,其中该计算复杂度表示用于解码该压缩编码数据的复杂度;以及把该描述符与压缩编码数据相复用,其中该信息表示至少一个数字数据,该数字数据表示一个模块熵解码操作;一个模块运动补偿操作;一个模块反量化操作;一个模块变换操作;一个模块增加操作;一个模块存储器访问操作。
2.一种编码视频对象的方法,其中包括如下步骤编码音像对象以获得压缩数据;编码与计算复杂度的估计相关的信息以获得一个描述符,其中该计算复杂度表示用于解码压缩编码数据的复杂度;以及把该解码器与压缩编码数据复用,其中该描述符表示一个表示描述符类型的标识号;表示描述符的大小的长度字段;以及多个块编码参数。
全文摘要
本发明公开一种用于编码器对音像信息进行编码,并把编码的结果传送到预先不知道其计算能力的解码器的方法。包含可被用于估计该解码过程的复杂度的参数的描述符被内嵌于系统流中。该编码器也可以对视频信息这样编码,使得解码器可以选择忽略一些信息,而只对编码信息的一个子集解码,从而减少计算要求。该方法允许多于一个解码器对同一比特流解码,根据该解码器的计算能力得出不同的分辨率。
文档编号H04N7/24GK1342024SQ0111878
公开日2002年3月27日 申请日期1998年10月26日 优先权日1997年10月24日
发明者陈朝庆 申请人:松下电器产业株式会社