CN1910594A - 图像编码方法和设备、图像解码方法和设备及其程序 - Google Patents
图像编码方法和设备、图像解码方法和设备及其程序 Download PDFInfo
- Publication number
- CN1910594A CN1910594A CN 200580002801 CN200580002801A CN1910594A CN 1910594 A CN1910594 A CN 1910594A CN 200580002801 CN200580002801 CN 200580002801 CN 200580002801 A CN200580002801 A CN 200580002801A CN 1910594 A CN1910594 A CN 1910594A
- Authority
- CN
- China
- Prior art keywords
- difference
- frequency component
- code
- quantization matrix
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
根据本发明的图像编码方法是一种通过正交变换和量化逐块对图像进行编码并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码的图像编码方法,所述方法包括:计算量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及将该差值编码为可变长度码,其中当差值越小时,可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
Description
相关申请的交叉引用
本申请要求2004年1月20日提交的美国临时申请No.60/538,065的权益,以及2004年4月12日提交的美国临时申请No.60/561,351的权益,它们的内容在此整个被引入作为参考。
技术领域
本发明涉及一种有效地压缩运动图像的图像编码方法、正确解码这种已压缩运动图像的图像解码方法、以及图像编码设备、图像解码设备及其程序。
背景技术
在综合地处理音频、视频和其它像素值的多媒体时代,现有信息媒体,即报纸、杂志、电视、收音机和电话以及其它借以向人们传达信息的装置,最近已被列入多媒体范围内。一般,多媒体指的是,通过不仅使字符而且使图形、音频、尤其是图像等相互关联来表示的某种事物。然而,为了将上述现有信息媒体列入多媒体范围内,显然,先决条件是以数字形式来表示这种信息。
然而,当计算上述每一种信息媒体中所包含的信息量来作为数字信息量时,在字符的情况下,每字符的信息量是1-2字节,在音频(电话质量)的情况下,所需的信息量是每秒64千位,并且在运动图像(目前电视接收质量)的情况下,所需的信息量是每秒100兆位。因此,上述信息媒体以数字形式来照原样处理这样海量的信息是不现实的。例如,虽然已经利用提供每秒64千位至每秒1.5兆位传输速度的综合业务数字网(ISDN)将视频电话投入了实际使用,但是直接通过ISDN来传输电视和相机视频是不实际的。
对于这种情况,需要信息压缩技术,例如把遵照国际电信联盟电信标准化部门(ITU-T)所建议的H.261和H.263标准的运动图像压缩技术用于视频电话。而且,根据遵照运动图像专家组1(MPEG-1)标准的信息压缩技术,有可能将图像信息和声音信息一起存储在普通音乐光盘(CD)中。
在此,运动图像专家组(MPEG)是一种由国际标准化组织/国际电工技术委员会(ISO/IEC)标准化的运动图像信号压缩国际标准,并且MPEG-1是一种用于将电视信号信息近似压缩到百分之一,使得能够以每秒1.5兆位的速率来传输运动图像信号的标准。此外,因为MPEG-1标准所实现的传输速度是大约每秒1.5兆位的中等质量速度,所以以满足更高质量图像要求为目的而标准化的MPEG-2允许在质量上等效于电视广播的数据传输,借此以每秒2至15兆位的速率来传输运动图像信号。而且,促进MPEG-1和MPEG-2标准化的工作组(ISO/IEC/JTC1/SC29/WG11)对MPEG-4进行了标准化。MPEG-4提供了比MPEG-1和MPEG-2更高的压缩比,并使基于对象的编码/解码/操作成为可能,MPEG-4能够提供多媒体时代所需的新功能。在标准化开始阶段,MPEG-4旨在提供低比特率编码方法,但是它已被扩展为一种支持处理隔行扫描图像以及高比特率编码的更一般编码的标准。当前,ISO/IEC和ITU-T已共同努力对MPEG-4 AVC(高级视频编码)和ITU-T H.264进行标准化,以作为提供更高压缩比的下一代图像编码方法。自2002年8月起,为下一代图像编码方法而发布了委员会草案(CD)。
一般,在运动图像编码中,通过减小时间和空间方向上的冗余来压缩信息量。因此,在旨在减小时间冗余的帧间图像(inter-picture)预测编码中,参考前向或后向图像,基于逐块来执行预测图像的运动估计和产生,然后对所获得的预测图像和当前要编码的图像之间的差值进行编码。在此,“图像”是表示一幅图像的术语。在逐行扫描图像的情况下,“图像”表示帧,而在隔行扫描图像的情况下,“图像”表示帧或场。在此,“隔行扫描图像”是在捕获时间上分开的两场组成的帧图像。在隔行扫描图像编码和解码中,有可能将一帧照原样处理为帧,将一帧处理为两场,或者将一帧处理为帧内基于每块的帧结构或场结构。
不参考任何图像,利用帧内图像(intra-picture)预测进行编码的图像将被称为I图像。只参考一幅图像,利用帧间图像预测进行编码的图像将被称为P图像。而且,同时参考两幅图像,利用帧间图像预测进行编码的图像将被称为B图像。B图像有可能指的是,可以按显示次序由前向/后向图像任意组合的两幅图像。可以为用作基本编码/解码单元的每个块确定参考图像(即参考图像)。将通过把要在编码位流中先描述的参考图像称为第一参考图像,并把要在编码位流中后描述的参考图像称为第二参考图像,来区分这种参考图像。注意,作为对这些类型图像进行编码和解码的条件,用于参考的图像必须已经被编码和解码。
利用运动补偿帧间图像预测来对P图像和B图像编码。利用运动补偿帧间图像预测的编码是一种在帧间图像预测编码中使用运动补偿的编码方法。和仅仅根据参考图像中的像素值执行预测的方法不同,运动补偿是一种能够通过估计图像中每一部分的运动量(以下称为“运动矢量”),并进一步考虑这种运动量来执行预测,来提高预测精度及减少数据量的技术。例如,有可能通过估计当前要编码的图像的运动矢量,然后对通过仅仅使各个运动矢量的量偏移而获得的预测值与当前要编码的图像之间的预测残差进行编码,来进行运动补偿,由此减少数据量。在该技术中,也以编码形式记录或发送运动矢量,因为在解码时需要运动矢量信息。
基于每个宏块来估计运动矢量。更具体地说,应该预先在当前要编码的图像中固定宏块,以便通过在参考图像中的搜索区域内寻找这种固定宏块的最相似参考块的位置,来估计运动矢量。
图1所示为位流示例数据结构图。如图1所示,位流具有如下的分层结构。位流(流)由多个图像组(GOP)组成。通过利用GOP作为基本编码单元,有可能编辑运动图像以及进行随机访问。每个GOP由多幅图像组成,每幅图像是I图像、P图像和B图像之一。每幅图像进一步由多个片组成。作为每幅图像内条形区的每个片由多个宏块组成。而且,每个流、GOP、图像和片都包括用于指示每个单元终点的同步信号(sync)、以及作为所述每个单元所共有的数据的头(头)。
注意,当不是在作为流序列的位流中而是在作为块单元(piecemeal unit)的分组等中传输数据时,可以分开传送头和除头以外的数据部分。在这种情况下,不应将头和数据部分并入相同位流中,如图1所示。然而,在分组的情况下,即使不连续传输头和数据部分,也只是在另一分组中传送与数据部分相对应的头。因此,即使当头和数据部分未被并入相同位流中,参考图1所描述的编码位流的概念也适用于分组。
一般来讲,人眼视觉感觉对低频分量的敏感度高于对高频分量的敏感度。此外,因为图像信号中低频分量的能量大于高频分量能量,所以按从低频分量到高频分量的顺序来执行图像编码。结果,低频分量编码所需的位数大于高频分量编码所需的位数。
鉴于以上几点,当对通过正交变换而获得的各频率的变换系数进行量化时,现有编码方法为高频分量使用的量化步长大于为低频分量使用的量化步长。该技术使常规编码方法有可能在从观众的观点来看图像质量出现小损失的情况下,实现压缩比的大大增加。
同时,因为关于低频分量的高频分量量化步长大小取决于图像信号,所以按照惯例使用一种基于逐幅图像来改变各频率分量量化步长大小的技术。利用量化矩阵来导出各频率分量的量化步长。图2示出了量化矩阵的例子。在该图中,左上分量为直流(DC)分量,而向右分量是水平高频分量,向下分量是垂直高频分量。图2中的量化矩阵也指示,较大的量化步长应用于较大值。通常,有可能为每幅图像使用不同的量化矩阵。指示每个频率分量量化步长大小的值是固定长度编码的。注意,通常量化矩阵的每个分量和每个量化步长的值彼此近似成比例,但是不必固守这种关系,只要它们之间的对应被清楚地定义。
然而,这种常规方法的问题在于,由于量化矩阵各频率分量的值都集中在某一范围内而简单执行固定长编码,降低了编码效率。
发明内容
本发明的目的是提供一种能够提高量化矩阵编码效率的图像编码法方法、图像解码方法、图像编码设备、图像解码设备及程序。
为了实现以上目的,根据本发明的图像编码方法是一种通过正交变换和量化逐块对图像进行编码并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码的图像编码方法,所述方法包括:计算量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及将所述差值编码为可变长度码,其中当所述差值越小时,所述可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。在此,所述预定值可以是最经常出现的高频分量值,或指示频率分量平均值的常数,或预先为每个频率分量确定的值。
利用以上结构,因为每个频率分量和预定值之间的差值被计算,所以所得差值小于频率分量,并且因为不是对频率分量自己而是对差值进行编码,所以有可能缩短每个可变长度码的码长,由此提高编码效率。
在此,预定值可以是与紧前面的差值相对应的频率分量值。
利用以上结构,因为频率分量和前一频率分量之间通常存在相关,所以有可能每个差值都取更小的值,由此进一步提高编码效率。
在此,可以按照从量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来计算差值。
利用以上结构,因为按从较低频率到较高频率的顺序来对频率分量进行编码,所有极有可能每个频率分量和它的前一频率分量取相似值。因此,有可能每个差值以更加可靠的方式取更小值,由此进一步提高编码效率。
在此,每个差值都可以被表示为2的k次幂(k为常数)的余数。
利用以上结构,在把每个差值都表示为通过使每个差值除以2的k次幂(k=8)而产生的余数的情况下,它们有可能取实际上能够用8位来表示的小值,由此进一步减少可变长度码的位数。
在此,以上图像编码方法可以进一步包括:判断是否存在与量化矩阵后面部分相对应的连续差值0;以及当判断存在连续差值0时,把直到顶部差值0的紧前面差值的差值编码为可变长度码,而不把连续差值0编码为可变长度码。
在此,以上图像编码方法可以进一步包括:在顶部差值0的紧前面差值的可变长度码之后加上结束码。
利用以上结构,在量化矩阵末尾存在具有相同值的连续频率分量的情况下,不是产生具有相同位串的多个可变长度码,而是只为这多个频率分量产生一个可变长度码。因此,有可能进一步提高编码效率。在该情况下,通过加上结束码,有可能提高图像解码设备所执行的解码的效率。
此外,为了实现以上目的,根据本发明的图像解码方法是一种通过逆量化和逆正交变换逐块对编码图像进行解码,并对可变长度编码的量化矩阵进行解码的图像解码方法,所述方法包括:对量化矩阵进行可变长度解码,将其解码为与所述量化矩阵中所包括的每个频率分量相对应的差值;以及通过把差值加到与所述每个频率分量相对应的预定值上,来计算量化矩阵的每个频率分量,其中当差值越小时,差值的可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
在此,预定值可以是通过紧前面的加法所计算的频率分量值。
在此,可以按照从量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来执行加法。
在此,每个频率分量都可以被表示为2的k次幂(k为常数)的余数。
利用以上结构,可以容易地对有可能借以通过以上编码方法提高编码效率的可变长度位串进行解码。
在此,在从可变长度编码的量化矩阵中检测到结束码的情况下,和所述结束码的紧前面频率分量值相同的值可以被输出,作为随后的每一个频率分量的值。
利用以上结构,在量化矩阵末尾存在具有相同值的连续频率分量的情况下,有可能只对一个可变长度码进行解码来获得所有这多个频率分量。而且,结束码使容易地判断量化矩阵末尾存在具有相同值的连续频率分量成为可能。
注意,根据本发明的图像编码设备、图像解码设备和程序也具有和以上一样的构成和效果。
附图说明
由以下连同示出本发明的具体实施方式的附图一起考虑的说明,本发明的这些及其它目的、优点和特征将变得显而易见,其中:
图1示出了位流的示例数据结构;
图2示出了示例量化矩阵;
图3示出了图像编码设备的结构框图;
图4示出了WM编码单元的结构框图;
图5A至5D的每一个示出了量化矩阵的编码顺序;
图6A示出了量化矩阵分量值的具体例子;
图6B示出了量化矩阵编码过程中的差值的具体例子;
图6C示出了,通过从频率分量计算差值以及对可变长度码进行编码的过程而产生的码的具体例子;
图7所示为WM编码单元所执行的编码处理流程图;
图8A示出了在差值为正的情况下,可变长度编码的具体例子;
图8B示出了在差值为有符号值的情况下,可变长度编码的具体例子;
图8C示出了可变长度编码的具体例子;
图9A示出了量化矩阵的频率分量排列;
图9B和9C示出了量化矩阵频率分量的每个编码数据在头中怎样排列;
图10示出了图像解码设备的结构框图;
图11示出了WM解码单元的结构框图;
图12示出了WM解码单元所执行的处理流程图;
图13A至13C示出了存储程序的记录介质,其中所述程序供计算机系统来实现根据以上实施方式的图像编码方法和图像解码方法;
图14所示为内容供应系统的总体配置框图;
图15所示为使用图像编码方法和图像解码方法的蜂窝电话的外视图;
图16所示为蜂窝电话的结构框图;以及
图17所示为数字广播系统的结构框图。
具体实施方式
(第一实施方式)
参考图3至17,来描述本发明第一实施方式。
图3所示为,根据本发明第一实施方式的图像编码设备的结构框图。
图像编码设备1是一种用于对输入图像信号Vin执行压缩编码并输出通过执行可变长编码等而被编码为位流的编码图像信号Str的设备。这种图像编码设备1包括:运动估计单元ME、运动补偿单元MC、减法单元Sub、正交变换单元T、量化单元Q、逆量化单元IQ、逆正交变换单元IT、加法单元Add、图像存储器PicMem、开关SW以及可变长度编码单元VLC。
图像信号Vin被输入到减法单元Sub和运动估计单元ME。减法单元Sub逐块计算输入图像信号Vin中的每幅图像和每幅预测图像之间的残差图像,并把所计算的残差图像输出到正交变换单元T。正交变换单元T对残差图像执行正交变换,以便将其变换为频率系数,并把这些频率系数输出到量化单元Q。
量化单元Q利用通过参考量化矩阵WM而导出的量化步长,来对从减法单元Sub输入的每个块的频率系数进行量化,并把所得到的量化值Qcoef输出到可变长度编码单元VLC。
逆量化单元IQ利用通过参考量化矩阵WM而导出的量化步长,来对量化值Qcoef执行逆量化,以便将它们变换为频率系数,并把它们输出到逆正交变换单元IT。逆正交变换单元IT对频率系数执行逆频率变换,以便将它们变换成残差图像,并把该残差图像输出到加法单元Add。加法单元Add将每幅残差图像和从运动补偿单元MC输出的每幅预测图像相加,以便形成解码图像。当指示应该存储这种解码图像时,接通开关SW,并且将要把这种解码图像存储到图像存储器PicMem中。
同时,运动估计单元ME在收到基于宏块的图像信号Vin之后,从图像存储器PicMem中存储的解码图像中检测和该输入图像信号Vin最接近的图像区,并确定指示这种图像区位置的运动矢量MV。对通过进一步分割宏块而获得的每个块执行运动矢量估计。当这样做时,有可能使用多幅图像作为参考图像。在此,因为可以把多幅图像用作参考图像,所以需要用于逐块地识别各参考图像的识别号(参考索引Index)。参考索引与图像存储器PicMem中存储的每幅图像的图像号之间的关联使指定参考图像成为可能。
运动补偿单元MC根据以上处理中所检测到的运动矢量和参考索引Index,来从图像存储器PicMem中存储的解码图像中读取最佳图像,作为预测图像。
可变长度编码单元VLC对量化矩阵WM、量化值Qcoef、参考索引Index和运动矢量MV的每一个执行可变长度编码,以便将它们输出为编码流Str。为此,可变长度编码单元VLC包括第一编码单元和第二编码单元。第一编码单元(以下称为“WM编码单元”)对每个量化矩阵WM执行可变长度编码,而第二编码单元对除量化矩阵以外的数据,即量化值Qcoef、参考索引Index和运动矢量MV的每一个,执行可变长度编码。WM编码单元计算每个量化矩阵中的每个频率分量和与这种频率分量相对应的预定值之间的差值,并把所计算的这种差值编码为可变长度码。差值越小,所得到的可变长度码的长度就变得越短,某些例外除外。
图4所示为WM编码单元的结构框图。如该图所示,WM编码单元包括:减法单元41、W缓冲器42、偏移确定单元43、加法单元44、块缓冲器45、数量确定单元46、结束码保存单元47、开关48和可变长度编码单元49。
减法单元41计算量化矩阵中每个频率分量和与这种频率分量相对应的预定值之间的差值。在此,预定值可以是最经常出现的高频分量值、或表示频率分量平均值的常数、或预先为每个频率分量确定的值。在该实施方式中,把与预先确定的差值相对应的频率分量值用作预定值。在该情况下,减法单元41计算从外面输入的当前频率分量W[i]和W缓冲器42中保存的前一频率分量W[i-1]之间的差值。因为频率分量W[i]和前一频率分量W[i-1]之间通常存在相关,所以较后的差值变得较小。注意,“W[i]”表示这是要按编码顺序编码第i频率分量。
图5A至5D的每一个图都示出了要输入到减法单元41中的量化矩阵的频率分量示例顺序。这些顺序指示对要输入到减法单元41中的量化矩阵进行扫描的扫描顺序。在图像编码中,最经常对每个4×4像素或每个8×8像素执行正交变换。鉴于此,图5A和5B示出了4×4像素的例子,且图5C和5D示出了8×8像素的例子。因为根据图8A、8B和8C所示的模式之一,逐个地对量化矩阵中的每个频率分量进行编码,所以与是如图5A和5C所示那样从较低频分量到较高频分量执行编码,还是如图5B和5D所示那样仅仅按水平顺序执行编码无关,编码效率是没有差异的。
图6A示出了输入到减法单元41中的量化矩阵的一些频率分量。该图中所示的W[0]、W[1]、W[2]、W[3]...是按图5B所示的编码顺序。
W缓冲器42是用于保存前一频率分量W[i-1]的缓冲器。在编码开始之前,W缓冲器42保存最典型地用作DC分量的值,来作为初值W[-1]。在本实施方式中,把8用作初值W[-1]。注意,W缓冲器42可以保存与每个频率分量相对应的预定值K,而不是保存前一频率分量W[i-1]。
偏移确定单元43确定偏移值,该偏移值用于通过使从减法单元41输入的差值(W[i]-W[i-1])除以2的k次幂,来将该差值转换成余数,其中在该情况下k=8。更具体地说,偏移确定单元43输出-256、0和256之一,使得将偏移值加到(W[i]-W[i-1])上的结果落入-128至127之间的值范围内。
加法单元44通过把来自减法单元41的差值(W[i]-W[i-1])加到来自偏移确定单元43的偏移值上,来计算差值D[i]。注意,“D[i]”表示要按编码顺序编码的第i个差值。
图6B示出了由加法单元44计算的差值D[i]的例子。在该图中,差值D[0]、D[1]、D[2]、D[3]、...分别对应于图6A所示的频率分量W[0]、W[1]、W[2]、W[3]、...。
块缓冲器45是用于保存从加法单元44输入的、等效于一个量化矩阵所对应的一个块的差值D[i]的缓冲器。
数量确定单元46对连续存在于扫描顺序末尾(块末尾)的差值0(W[i]-W[i-1]=0)的数目进行计数,并控制开关48,使得块缓冲器45中保存的D[0]至D[M]被输出。在此,D[M]是以上连续差值0的顶部差值0的前一差值。
结束码保存单元47保存用于指示量化矩阵可变长度码结束的结束码。不能成为差值D[i]的任何值都可以用作结束码。
开关48选择“块缓冲器输出”,使得块缓冲器45中保存的D[0]至D[M]被输出,然后开关48选择“结束码保存单元输出”,使得一个结束码从结束码保存单元47输出。换句话说,开关48输出以下:从和量化矩阵顶部频率分量相对应的差值D[0]开始直到存在于量化矩阵末尾的连续差值0的前一差值处的差值D[M]为止的差值;以及一个结束码。注意,在由数量确定单元46计数的连续差值0(W[i]-W[i-1]=0)的数目等于0的情况下,开关48不输出结束码,其中连续差值存在于扫描顺序末尾(块末尾)。
可变长度编码单元49对通过开关48从块缓冲器45输入的差值以及结束码执行可变长度编码,使得当差值越小时,所得码长变得越短,或者等于邻近差值。
图6C示出了由可变长度编码单元49利用图8C所示的码执行的编码而产生的码的具体例子。在该图中,W[0]至W[4]和D[0]至D[4]对应于图6A和6B。可变长度编码单元49执行编码,使得例如当差值为0时码长变为1位,并且当差值为1时码长变为3位。如本例子所暗示的,当差值越小时,可变长度编码单元49所执行的可变长度编码就导致越短的码长。此外,从W[30]至W[63]的所有频率分量都取相同值64,在该情况下它们的差值D[30]至D[63]都变为0。在该情况下,不对这些差值D[30]至D[63]执行编码,并且对于D[30]的0差值,是对结束码,而不是对码“1”执行可变长度编码。
图7示出了WM编码单元为对量化矩阵进行编码而执行的详细编码处理的流程图。在该流程图中,“Num”表示量化矩阵中的频率分量数目(例如16、64),而“i”和“j”表示用于从0计数到(Num-1)的变量。
首先,WM编码单元使W缓冲器42保存初值W[-1](例如8)(S71),通过如循环1(S72至S77)所示的处理来计算量化矩阵每个频率分量的差值,并将所得到的差值存储到块缓冲器45中。然后,WM编码单元通过如循环2(S78至S81)所示的处理来对每个差值执行可变长度编码。
在循环1中,减法单元41计算从外面输入的当前频率分量W[i]和W缓冲器42中保存的前一频率分量W[i-1]之间的差值D(S73)。偏移确定单元43确定偏移值,该偏移值用于通过使从减法单元41输入的差值D除以2的k次幂来将该差值D转换成余数,其中在该情况下k=8(S74)。例如,在W[i]取-256至+254的范围内的值的情况下,偏移确定单元43如下进行确定:当D为128或更大时,偏移值应该为-256;当D小于-128时,偏移值应该为256;以及当D取以上范围中的另一个值时,偏移值应该为0。结果,通过把偏移值加到D(即D[i])上而确定的值变成了-128至+127范围内的余数,其中不仅包括正值而且也包括负值。因为通过该处理使差值D[i]所取的值变得更小,因此通过利用图8C所示的码执行编码所获得的D[i]的可变长度码的长度就变得更短。
加法单元44通过把来自减法单元41的差值D(=W[i]-W[i-1])加到来自偏移确定单元43的偏移值上,来计算差值D[i](S75和S76)。
在循环2中,数量确定单元46确定存在于D[i]列末尾的连续差值0的数目(S79),并且对于直到作为这些连续差值0前一差值的差值D[M]的差值将开关48连接到“块缓冲器输出”,然后将开关48连接到“结束码保存单元输出”。
可变长度编码单元49对通过开关48从块缓冲器45输入的差值D[i]以及通过开关48从结束码保存单元47输入的结束码进行编码(S82)。在此,因为结束码可以取D[i]所不能取的任何值,所以在此结束码为-W[M],即W[M]=0。这是因为,由于量化矩阵的频率分量是正值,所以可以把满足“W[M]=0”的值确定为结束码。
图8A至8C的每个图都示出了由可变长度编码单元49执行的可变长度编码的例子。在这些例子中,使用了指数Golomb码。
图8A示出了可变长度码的第一例子。该图示出了码字(码)与编码前的差值(值)之间的关系。该例子适用于差值可以取正值的情况。差值越大,它们的出现次数就越少,它们的码长就变得越长,而差值越小,它们的码字长度就变得越短。利用图8A所示的算术表达式,可以容易地执行从每个分量值到码字的转换。例如,当差值为7时,它被表示为7=4+3(2的2次幂加上二进制数“11”)。该差值7的码字被表示为由“000(三个0)”、“1”和“11”组成的位串。图8A中的“N”表示不超过每个差值的、最接近的2的幂。“X0X1X2...XN-1”表示这样一个位串,该位串指示由从每个差值减去最接近的2的幂而产生的值。
图8B示出了可变长度编码的第二例子。在该图中,值列描述量化矩阵的频率分量W[i](即预定值K+差值)。该例子适用于量化矩阵的每个频率分量W[i]值最有可能取预定值K的情况。因为预定值K的出现次数高,所以当频率分量值为K时码长变得最短,而当频率分量值远离K时码长变得较长。例如,预定值K可以是W[i-1]或另一预定常数。
图8C示出了可变长度码的第三例子。该图示出了码字(码)与编码前的差值(值)之间的关系。该例子适用于差值不仅可以取正值,而且也可以取负值的情况。当按图5A至5D之一所示的顺序对量化矩阵的每个分量进行编码时,邻近频率分量W[i-1]的值强烈相关。因而,通过按图5A至5D之一所示的顺序对先前编码的分量值W[i-1]与当前分量值W[i]之间的差值进行编码,使所得到的差值集中在0附近。因而,有可能通过将具有较短码长的码字分配给0附近的值,并将具有较长码长的码字分配给远离0的值,来进一步减少可变长度码的位数。
图9A至9C示出了量化矩阵和被编码为流的量化矩阵数据结构。在图9B和9C中,“头”等效于图1所示的流/GOP/图像的头。图9A示出了量化矩阵的频率分量排列。在该图中,“Wi,j”表示第i行、第j列的量化矩阵分量。图9B和9C示出了,通过对量化矩阵每个分量进行编码所获得的每个数据怎样在头中排列。“WeightingMatrix(加权矩阵)”代表通过对量化矩阵进行编码所获得的位流。图9B示出了通过按图5C所示顺序执行编码所获得的流,而图9C代表通过按图5D所示顺序执行编码所获得的流。注意,图9B和9C所示的流中的“Wi,j”指示,这是与图9A所示Wi,j相对应的编码后可变长度码。
如上所述,因为根据本实施方式的WM编码单元确定频率分量W[i]和预定值K之间的差值D[i],所以差值D[i]的取值小于频率分量W[i]。此外,因为WM编码单元不对频率分量W[i]自己编码,而是对每个差值D[i]编码,所以有可能缩短每个可变长度码的码长,由此提高编码效率。
而且,把前一频率分量W[i-1]用作预定值K使每个差值D[i]取更小的值成为可能,结果进一步提高了编码效率。这是因为,在每个频率分量W[i]和前一频率分量W[i-1]之间通常存在相关。
而且,因为按从较低频率到较高频率的顺序对频率分量W[i]进行编码,所以极有可能每个频率分量W[i]和前一频率分量W[i-1]取相似值。因此,有可能每个差值D[i]以更加可靠的方式取更小值,结果进一步提高了编码效率。
此外,在把每个差值D[i]表示为通过使每个差值除以2的k次幂(k=8)而产生的余数的情况下,它们有可能取实际上能够用8位来表示的小值,由此进一步减少可变长度码的位数。
而且,在量化矩阵末尾存在具有相同值的连续频率分量的情况下,不是产生具有相同位串的多个可变长度码,而是不为这多个频率分量产生可变长度码。因此,有可能进一步提高编码效率。在该情况下,通过加上结束码,有可能提高图像解码设备所执行的解码的效率。
图10所示为根据本发明第一实施方式的图像解码设备的结构框图。在该图中,以和图3所示图像编码设备中的单元同样的方式操作的单元被赋予相同的附图标记,并将省略对它们的说明。
可变长度解码单元VLD将编码流Str解码为量化矩阵WM、量化值Qcoef、参考索引Index和运动矢量MV。为此,可变长度解码单元VLD包括第一解码单元和第二解码单元。第一解码单元(以下称为“WM解码单元”对每个编码的量化矩阵WM执行可变长度解码,而第二解码单元对除编码量化矩阵WM以外的信息,即编码量化值Qcoef、参考索引Index和运动矢量MV的每一个,执行可变长度解码。WM解码单元通过将可变长度编码的量化矩阵可变长度解码为各频率分量的差值,然后将所得到的每个差值加到与其频率分量相对应的预定值上,来确定每个量化矩阵的频率分量。
通过图像存储器PicMem、运动补偿单元MC和逆量化单元IQ,来对量化矩阵QM、量化值Qcoef、参考索引Index和运动矢量MV的每一个执行解码。以上已经参考图3所示图像编码设备的框图描述了该解码。
图11所示为WM解码单元的结构框图。如该图所示,WM解码单元包括:可变长度解码单元51、加法单元52、余数计算单元53、开关54、W缓冲器55、开关56和结束系数判断单元57。
可变长度解码单元51将每一个可变长度编码的频率分量的可变长度码解码为差值D[i]。
加法单元52把来自可变长度解码单元51的差值D[i]加到来自W缓冲器55的前一频率分量W[i-1]值上。
余数计算单元53通过把减法单元52的每个加法结果加到2的k次幂上、然后使所得到的值除以2的k次幂以计算余数,来确定每个频率分量W[i]。更具体地说,余数计算单元53执行(D[i]+W[i-1]+256)%256。在此,“%”表示确定通过使所得到的值除以256而获得的余数的操作。
当余数计算单元53不输出结束码时开关54接通,并且在输出结束码之后开关54断开。
W缓冲器55保存通过开关54从余数计算单元53输入的频率分量W[i],并在下一循环中将其输出到加法单元52作为频率分量W[i-1]。W缓冲器55还保存W[i-1](例如8)作为初值。
当余数计算单元53不输出结束码时,开关56保持选择通过开关54从余数计算单元53输入的频率分量W[i],而在输出结束码之后,开关56选择W缓冲器55。
结束系数判断单元57判断余数计算单元53是否输出了结束码,并且根据该判断来控制开关54和开关56。
如上所述,有可能对和所有频率分量相对应的W[i]解码。注意,即使当没有检测到结束码时,在数量上等效于块中所包括的所有频率分量数量的差值D[i]的解码都完成的时候,也结束量化矩阵的解码。
图12所示为WM解码单元所执行的处理流程图。在该流程图中,“Num”表示量化矩阵中的频率分量数量(例如16、64),而“i”表示用于从0计数到(Num-1)的变量,并且“j”表示用于从“i”计数到(Num-1)的变量。如图12所示,WM解码单元首先使W缓冲器55保存初值W[i-1](S121),通过如循环1(S122至S127)所示的处理来执行可变长度解码并输出所得到的码,并且在检测到结束码之后,通过如循环2(S128至S130)所示的处理来输出具有相同值的连续频率系数。
在循环1中,可变长度解码单元51将所输入的可变长度码解码为差值D[i](S123)。然后,加法单元52把来自可变长度解码单元51的差值加到来自W缓冲器55的前一频率分量上,并且余数计算单元53执行计算,使得余数W满足以下(S124):W=(D[i]+W[i-1]+256)%256。结束系数判断单元57判断该余数W是否为结束码(在此,判断余数W是正数还是负数)(S125)。当结束系数判断单元57判断余数W不是结束码时,该余数W通过开关从余数计算单元53被输出,作为频率分量W[i-1],同时通过开关54被存储到W缓冲器55中(S126)。同时,当结束系数判断单元57判断余数W是结束码时,则执行循环2的处理。
在循环2中,当量化矩阵末尾存在具有相同值的连续频率分量时,频率分量W[i-1]连续被输出,作为频率分量W[i]。更具体地说,W缓冲器55中所保存的频率分量W[i-1]通过开关56被输出到W[Num-1],作为随后频率分量W[i](S129)。
如上所述,根据本实施方式的WM解码单元对由WM编码单元进行差分编码的可变长度码进行正确解码。此外,当量化矩阵末尾存在具有相同值的连续频率分量时,WM解码单元只需对一个可变长度码进行解码、来获得所有这多个频率分量。在该情况下,结束码使容易地判断量化矩阵末尾存在具有相同值的连续频率分量成为可能。
此外,如果把用于实现如上述实施方式所示的图像编码方法和图像解码方法的程序记录在诸如软盘的记录介质上,则有可能容易在独立计算机系统中执行以上实施方式中给出的处理。
图13A、图13B和13C示出了存储用于实现根据上述实施方式的图像编码方法和图像解码方法的程序的记录介质。
图13B示出了从前面看的软盘外观、软盘横截面示意图及软盘自身,而图13A示出了作为记录介质自身的软盘的示例物理格式。软盘FD被容纳在外壳F中,并且多个磁道Tr在径向从外到内同心地形成在软盘FD的表面上,其中每个磁道在角方向上被分成16个扇区Se。因此,在存储上述程序的软盘中,象这种程序的图像编码方法和图像解码方法被记录在软盘FD上为它分配的区中。
同时,图13C示出了为把程序记录在软盘FD上以及从软盘FD读出程序所需的结构。当要把用于实现以上图像编码方法和图像解码方法的程序记录到软盘FD上时,应该利用计算机系统Cs,通过软盘驱动器FDD来写入这种程序。同时,当要通过软盘FD上的程序来在计算机系统Cs中构造图像编码方法和图像解码方法时,应该通过软盘驱动器FDD从软盘FD读出程序,然后将程序传送给计算机系统Cs。
在记录介质是软盘的假定之下给出了以上说明,但是也可以使用光盘。另外,记录介质不限于此,并且也可以使用能够记录程序的其它任何介质,如集成电路(IC)卡和只读存储器(ROM)盒式磁带。
以下描述如以上实施方式所示的图像编码方法和图像解码方法的应用例子以及使用该图像编码方法和图像解码方法的系统。
图14所示为实现内容分发服务的内容供应系统ex100的总配置框图。用于提供通信服务的区被分成具有期望大小的小区,并且作为固定无线电台的基站ex107~ex110位于相应小区中。
在该内容供应系统ex100中,设备如计算机ex111、个人数字助理(PDA)ex112、照相机ex113、蜂窝电话ex114、配备有照相机的蜂窝电话ex115,分别通过因特网服务供应商ex102、电话网ex104和基站ex107~ex110连接到因特网ex101。
然而,内容供应系统ex100不限于如图14所示的组合,并且可以连接到它们中任一设备的组合。而且,每个设备可以不通过作为固定无线电台的基站ex107~ex110而直接连接到电话网ex104。
照相机ex113是一种诸如能够拍摄运动图像的数字摄像机的设备。蜂窝电话可以是个人数字通信(PDC)系统、码分多址(CDMA)系统、宽带码分多址(W-CDMA)系统或全球移动通信系统(GSM)、个人手持电话系统(PHS)等的蜂窝电话,并且可以是它们中的任何一种。
此外,流式传输服务器(streaming server)ex113通过基站ex109和电话网ex104连接到照相机ex113,这使得能够根据发自用户的编码数据,利用照相机ex113来进行实况播送分发等。能够进行数据发送处理的照相机ex113或服务器等可以对拍摄的数据进行编码。而且,可以通过计算机ex111、把通过照相机ex116拍摄的运动图像数据发送给流式传输服务器ex103。照相机ex116是一种诸如能够拍摄静态图像或运动图像的数码相机的设备。在该情况下,照相机ex116或计算机ex111可以对运动图像数据进行编码。在该情况下,计算机ex111或照相机ex116中所包括的大规模集成电路(LSI)ex117执行编码处理。注意,可以把用于编码和解码的软件包括在作为计算机ex111等可读的记录介质的某种类型存储介质(如只读光盘、软盘和硬盘)中。此外,配备有照相机的蜂窝电话ex115可以发送运动图像数据。该运动图像数据是被蜂窝电话ex115中包括的LSI编码了的数据。
在该内容供应系统ex100中,用和上述实施方式一样的方式,来对用户利用照相机ex113、照相机ex116等拍摄的内容(例如音乐实况播送视频)进行编码,并将其发送给流式传输服务器ex103,并且一旦客户请求,流式传输服务器ex103就以流的方式将内容数据分发给客户。在此,客户包括能够对以上编码数据进行解码的计算机ex111、PDA ex112、照相机ex113、蜂窝电话ex114等。具有以上配置的内容供应系统ex100是一种使客户能够接收和再现编码数据,并通过允许客户实时接收、解码和再现数据来实现个人广播的系统。
可以把以上实施方式中提出的图像编码设备和图像解码设备,用于要在构成以上系统的每个设备中执行的编码和解码。
给出蜂窝电话的说明作为例子。
图15示出了使用以上实施方式中所说明的图像编码方法和图像解码方法的蜂窝电话ex115。蜂窝电话ex115具有:天线ex201,用于发送无线电波给基站ex110/从基站ex110接收无线电波;照相机单元ex203,如能够拍摄视频和静态图像的电荷耦合器件(CCD)相机;显示单元ex202,如液晶显示器,用于显示通过对照相机单元ex203所拍摄的视频等以及天线ex201所接收的视频等进行解码而获得的数据;主体,该主体配备有一组操作键ex204;语音输出单元ex208,如扬声器,用于输出语音;语音输入单元ex205,如麦克风,用于输入语音;记录介质ex207,用于存储编码数据或解码数据,如照相机所拍摄的运动图像或静态图像数据、所收到的电子邮件数据以及运动图像数据或静态图像数据;以及插槽单元ex206,用于使能将记录介质ex207附加到蜂窝电话ex115上。记录介质ex207被具体实施为一种放在在诸如安全数字存储卡(SD卡)的塑料盒中的快速存储元件,该快速存储元件是一种作为电可擦除可重写非易失性存储器的电可擦除可编程只读存储器(EEPROM)。
接着,参考图16来描述蜂窝电话ex115。在蜂窝电话ex115中,用以下方式来配置用于集中控制显示单元ex202和具有操作键ex204的主体的每个单元的主控制单元ex311:其中电源电路单元ex310、操作输入控制单元ex304、图像编码单元ex312、相机接口单元ex303、液晶显示器(LCD)控制单元ex302、图像解码单元ex309、复用/解复用单元ex308、记录/再现单元ex307、调制解调器电路单元ex306和语音处理单元ex305通过同步总线ex313互连。
当通过用户操作导通了呼叫结束键(call-end key)或电源键时,电源电路单元ex310从电池组向每个单元供电,并且激活配备有相机的数字蜂窝电话ex115,使它进入就绪状态。
在蜂窝电话ex115中,语音处理单元ex305在由中央处理器(CPU)、只读存储器(ROM)和随机存储器(RAM)等组成的主控制单元ex311的控制下,把语音输入单元ex205在会话模式下收到的语音信号转换成数字语音数据,调制解调器电路单元ex306对该数字语音数据执行扩展频谱处理,并且发送/接收电路单元ex301对该数据执行数模转换处理和频率变换处理,以便通过天线ex201发送所得结果。而且,在蜂窝电话ex115中,由天线ex201在会话模式下收到的数据被放大、并被执行频率变换处理和模数转换处理,调制解调器电路单元ex306对所得结果执行逆扩展频谱处理,并且语音处理单元ex305将其转换成模拟语音数据,以便通过语音输出单元ex208输出该模拟语音数据。
此外,当在数据通信模式下发送电子邮件时,通过操作输入控制单元ex304,来把通过操作主体上的操作键ex204而输入的电子邮件文本数据发送到主控制单元ex311。在主控制单元ex311中,在调制解调器电路单元ex306对文本数据执行扩展频谱处理并且发送/接收电路单元ex301对该文本数据执行数模转换处理和频率变换处理之后,所得结果通过天线ex201被发送给基站ex201。
当在数据通信模式下发送图像数据时,由照相机单元ex203拍摄的图像数据通过相机接口单元ex303被提供给图像编码单元ex312。当不发送图像数据时,也有可能通过相机接口单元ex303和LCD控制单元ex302将照相机单元ex203所拍摄的这种图像数据直接显示在显示单元ex202上。
包括根据本发明的图像编码设备的图像编码单元ex312,利用以上实施方式中提出的图像编码设备所使用的编码方法来对来自于照相机单元ex203的图像数据执行压缩编码,以便将其转换成编码图像数据,并将其发送给复用/解复用单元ex308。此时,当照相机单元ex203正在拍摄时,蜂窝电话ex115通过语音处理单元ex305将语音输入单元ex205所收到的语音发送给复用/解复用单元ex308,作为数字语音数据。
复用/解复用单元ex308利用预定方法,来对来自于图像编码单元ex312的编码图像数据和来自于语音处理单元ex305的语音数据进行复用,调制解调器电路单元ex306对所得复用数据执行扩展频谱处理,并且发送/接收电路单元ex301对所得结果执行数模转换处理和频率变换处理,以便通过天线ex201发送处理后数据。
当在数据通信模式下接收链接到网页等上的运动图像文件数据时,调制解调器电路单元ex306对通过天线ex201从基站ex110收到的接收信号执行逆扩展频谱处理,并将所得复用数据发送给复用/解复用单元ex308。
为了对通过天线ex201收到的复用数据解码,复用/解复用单元ex308将复用数据分成图像数据编码位流和语音数据编码位流,并通过同步总线ex313将这种编码图像数据提供给图像解码单元ex309,将这种语音数据提供给语音处理单元ex305。
接着,包括根据本发明的图像解码设备的图像解码单元ex309,利用与上述实施方式所示的编码方法配对的解码方法来对图像数据编码位流进行解码,以便产生用于再现的运动图像数据,并通过LCD控制单元ex302将这种数据提供给显示单元ex202。因此,例如链接到网页上的运动图像文件中所包括的运动图像数据就被显示。同时,语音处理单元ex305将语音数据转换成模拟语音信号,然后将其提供给语音输出单元ex208。因此,例如链接到网页上的运动图像文件中所包括的语音数据就被再现。
注意,上述系统不是唯一例子,针对卫星/地面数字广播已成为最近讨论主题的情况,因此至少可以把以上实施方式的图像编码设备或图像解码设备集成到如图17所示的数字广播系统中。更具体地说,在广播电台ex409,通过无线电波将视频信息编码位流发送给卫星ex410,以便通信或广播。一旦收到该视频信息编码位流,广播卫星ex410就发射无线电波以便广播,配备有卫星广播接收设施的房屋的天线ex406接收这种无线电波,并且诸如电视机(接收器)ex401和机顶盒(STP)ex407的设备对该编码位流进行解码,并再现解码后数据。可以在再现设备ex403中实现如以上实施方式所示的图像解码设备,以便读取并解码作为记录介质如CD和数字通用光盘(DVD)的存储介质ex402上所记录的编码位流。在该情况下,再现的视频信号被显示在监视器ex404上。也可以想象在连接到有线电视用电缆ex405或卫星/地面广播用天线ex406的机顶盒ex407中,实现图像解码设备,以便在电视监视器ex408上再现视频信号。在该情况下,可以把图像解码设备包括到电视机中,而不是机顶盒中。或者,具有天线ex411的汽车ex412可以从卫星ex410、基站ex107等接收信号,以便在显示设备如汽车ex412上安装的汽车导航系统ex413上再现运动图像。
此外,也有可能通过以上实施方式中提出的图像编码方法来对图像信号编码,并将所得结果记录在记录介质中。这些例子包括:用于把图像信号记录在DVD盘ex421上的DVD记录器;以及用于把图像信号记录在硬盘上的记录器ex420,如盘记录器。而且,也可以包括图像信号记录在SD卡ex422中。如果记录器ex420配备有以上实施方式中提出的图像解码设备,则有可能再现DVD盘ex421上或SD卡ex422中记录的图像信号,并将其显示在监视器ex408上。
作为汽车导航系统ex413的配置,可以想象图16所示配置中没有照相机单元ex203和相机接口单元ex303的配置。上述情况也适用于ex111、电视机(接收器)ex401等。
关于诸如蜂窝电话ex114的终端,可能的实现形式包括:具有编码器和解码器两者的发送/接收终端、以及只有编码器的发送终端和只有解码器的接收终端。
注意,可以把图3、4、10和11所示框图中的每个功能块实现为作为集成电路设备的LSI。可以以一个或多个芯片的形式来集成这种LSI(例如可以把除存储器以外的功能块集成到单个芯片)。在此,取LSI作为例子,但是取决于集成度,可以将它称为“集成电路(IC)”、“系统LSI”、“超级LSI”和“ultra LSI”。
集成电路集成方法不限于LSI,而可以用专用线或一般处理器来实现。在制造LSI之后,可以利用可编程的现场可编程门阵列(FPGA)、或能够为LSI中的电路单元重新配置连接和设置的可重新配置处理器。
此外,随着由于半导体技术或不同于半导体技术的另一种技术的进展而代替LSI的集成电路集成技术的到来,可以利用新出现的技术来实施功能块的集成。可以引用生物技术作为例子之一。
在功能块中,只有用于存储数据的单元可以在不以芯片形式进行集成的情况下,被单独构造为本实施方式中所述的存储介质115。
注意,可以通过处理器或程序,来实现图3、4、10和11所示功能块或图7和12所示流程图的主要部分。
如上所述,有可能在任一上述设备或系统中使用以上实施方式中提出的图像编码方法和图像解码方法。因此,有可能获得上述实施方式中描述的效果。
(第二实施方式)
以下描述本发明第二实施方式。
本发明旨在,使能在包含帧内预测的视频编码系统中实施和表示矩阵的量化,并且尤其旨在生成一系列适于有符号Exp-Golomb码的周期差值。
先有技术知道用于视频编码的量化矩阵以及Exp-Golomb码的适用性。在视频压缩中,也用具有关联句法的分层语法结构来表示视频码,并且使用有损和无损或可变长度编码。变换域量化也是众所周知的,并且也被使用。
本发明描述一种利用量化加权矩阵来表示、实施和能够进行视频压缩的方法和程序,并致力于以下特征:
1.使得能在包含帧内预测的视频编码系统中实施和表示量化矩阵。
2.定义和实施能够通过基于整数的无除法计算来实现的量化加权矩阵。
3.使能用高效周期差分码和Exp-Golomb码来对量化矩阵进行编码。
4.支持以下量化矩阵表示,该量化矩阵表示允许在解码器端导出冗余加权值、而不是通过通信传输数据传送冗余加权值。
0.量化矩阵差分编码介绍
为了对量化矩阵项进行编码,首先将矩阵项映射为一维序列。映射使用如MPEG-4第10部分所描述的之字形图案(类似于MPEG-2和MPEG-4第2部分中所定义的)。图5A或5B给出了之字形图案例子。转换后的一维序列对于8×8量化矩阵具有64个元素,对于4×4量化矩阵具有16个元素。对于定义的量化矩阵,元素是从1到255范围内的正整数,包括1和255。
在当前差分编码中,除了使序列中的第一元素减去8以外(因为第一元素的值是DC的权并且通常在8附近),我们通过使一维序列元素减去前一元素的值来产生差分码。然后,进一步利用Exp-Golomb码来对差分码进一步编码,如MPEG-4第10部分所述。(ISO/IECJTC1/SC29WG11,14496-10)
当前的量化矩阵差分编码方法有以下两个问题:
1.Q矩阵的当前值和前一值之差无论如何都可以具有[-254,+254]范围内的值。该范围的扩展使利用Exp-Golomb的可变长度编码变得效率低。
2.当利用“截断”方法来限制要编码的矩阵值的数量时,必须合理地确定指示数据序列结束的特殊值的大小。否则,它可能使截断方法不适当。
这里的解决方法是生成一系列周期差值,使得差值范围都在[-128,+128]范围内,由此使它更适于有符号Exp-Golomb码。当使用“截断”方法时,这也减轻了指示码序列结束的问题。
进一步针对利用“截断”方法来指示码序列结束的适当机制,我们在此进行改进,使得要为指示结束而发送的位数等于或小于9位。这可以利用多个序列终止信号来实现。这应该可用于64位码长的码序列,并且甚至也可用于16位码长。
1.周期差分编码的逆过程
过程的输入为差分码D[i]。
过程的输出为,沿之字形路线采样的量化矩阵值序列W[i]。
对输入W[i]执行以下操作。
定义:对于4×4块,M=16;对于8×8块,M=64
定义:对于4×4矩阵,M=16;或者对于8×8矩阵,M=64
W[0]=(D[0]+8+256)%256
k=0;
for(i=1;(i<M)&&(W[i-1]+D[i]+256)%256>0;i++)
{
W[i]=(W[i-1]+D[i]+256)%256
}
for(j=i;j<M;j++){
W[j]=W[i-1]
}
2.差分码产生过程
过程的输入为,沿之字形路线采样的量化矩阵值序列W[i]。
过程的输出为,由W[i]产生的差分码D[i]。
对输入W[i]执行以下操作。
定义:对于4×4矩阵,M=16;或者对于8×8矩阵,M=64
D[0]=W[0]-8
k=M;
for(i=1;i<M;i++)
{
D[i]=W[i]-W[i-1]
if(D[i]>128)
D[i]=D[i]-256
else if(D[i]<-128)
D[i]=D[i]+256
else if(D[i]==0)&&(k==M)
k=i
else if(D[i]!=0)
k=M
}
//这是要插入和W[k]=0相对应的结束信号D[k]
if(k!=M){
if(W[k-1]>128)
D[k]=256-W[k-1]
else
D[k]=-W[k-1]
}
//这仅仅用于优化
if(Length_of-ExpGlomb_code(D[k])>M-k-i){
for(i=k;i<M;i++)
D[k]=0
}
这将产生一系列差分码D[i],其中绝对值总是等于或小于128,包括指示差分码序列结束的值。因此,这些码更适于有符号Exp-Golomb编码。
3.指示差分码序列结束的机制
不是利用W或D的信号值作为差分码序列结束的标记,我们可以使用多个码,并且编码器可以选择发送哪一个码。
以下是编码器所允许的、用于指示码序列结束,并且解码器也必须能够识别以下。
假定对于W[i],i=0,...,M,要编码的序列在k处结束(即W[k]=W[k-1]),并且对于4×4变换块、M等于16,对于8×8变换块,M等于64。
-设置W[k]=0。这对应于差分码D[k],并且D[k]的绝对值应该小于或等于128。
-设置D[k]等于255以上或-255以下的任何值,它将具有第一9个位等于0的有符号Exp-Golomb码0000000001xxxxxxxxx。编码器只需发送第一10个位(我们只能发送9位而不发送“1”)。对于有符号Golomb码,在解码后解码器将得到大于255的值。如果解码器能够处理不合法的Golomb码,则只发送9位0就将足够了。
与此相对应,可以如下来写解码过程。在以下伪码中,不是检查D[k]是在+255以上或-255以下,而只是检查D[i]是否在正确范围内,如果不在,则假定它是码序列的结束。因为可能无论如何都需要检查,所以它保存两个条件操作。
定义:对于4×4块,M=16;对于8×8块,M=64
定义:对于4×4矩阵,M=16;或者对于8×8矩阵,M=64
D[0]=(W[0]+8+256)%256
k=0;
for(i=1;(i<M)&&(Golomb码合法)&&(-129<D[i]<129)&&(W[i-1]+256)%256>0;i++)
W[i]=(W[i-1]+D[i]+256)%256
{
for(j=i;j<M;j++){
W[j]=W[i-1]
}
4.进一步的问题
有时利用和Exp-Golomb码相结合的固定长度码来提高效率。
-产生周期差值
-使用固定长度码的2位(或4位)最低有效位(LSB)
-使用Exp-Golomb码的6位(或4位)最高有效位(MSB)
这应该进一步减少总位数。
注意,可以把上述“1.周期差分编码的逆过程”描述为如下的量化加权矩阵推导过程。
该过程的输入是Exp-Golomb编码的量化加权矩阵值序列。
该过程的输出是量化加权矩阵值的二维阵列。
-调用解码过程,来对Exp-Golomb编码的量化加权值序列进行解码。
-利用解码值d(i)来推导量化加权矩阵项W(i)。以下过程用于推导量化加权矩阵项。在以下方程中,对于8×8量化加权矩阵、
M=64,对于4×4量化加权矩阵、M=16。
-W(0)=d(0)+8
-如果((d(i)<128) && (d(i)>-128) && ((W(i-1)+d(i)+256)%256!=0))
W(i)=(W(i-1)+d(i)+256)%256,对于0<i<M
-否则
W(i)=W(k-1),对于i=k,...<M,其中D(k)>128或
D(k)<-128,或W(k)=0,且0<i,k<M
[W[I]不允许为0]
-利用逆块扫描过程,来从W(i)推导量化加权矩阵W(i,j)。图5A示出了4×4逆扫描顺序。如图5B所示执行8×8逆扫描过程。
注意,也可以将上述的“1.周期差分编码的逆过程”描述如下。以下,“ScalingList”表示量化矩阵WM,“LastScale”表示W[i-1],且“delta_scaling”表示D[i]:scaling_list(scalingList,sizeOfScalingList,useDefaultScalingMatrixFlag){
lastScale=8
nextScale=8
for(j=0;j<sizeOfScalingList;j++){
if(nextScale!=0){
delta_scale
nextScale=(lastScale+delta_scale+256)%256
useDefaultScalingMatrixFlag=(j==0&&nextScale==0)}
scalingList[j]=(nextScale==0)?lastScale:nextScale
lastScale=scalingList[j]
}}
根据这样描述的本发明,显然可以用多种方式来改变本发明的实施方式。这些变化不应被认为脱离本发明的精神和范围,并且对于本领域技术人员而言,显然所有这些修改都将被认为是包括在以下权利要求的范围内。
工业实用性
本发明适于用作对图像进行编码的编码设备、以及对图像进行解码的解码设备,以及用于分发运动图像的网络服务器、用于接收这种运动图像的网络终端、能够记录和再现运动图像的数码相机、配备有照相机的蜂窝电话、DVD记录器/播放器、PDA、个人计算机等。
Claims (26)
1.一种图像编码方法,通过正交变换和量化逐块对图像进行编码,并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码,所述方法包括:
计算量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及
将所述差值编码为可变长度码,
其中当所述差值越小时,所述可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
2.根据权利要求1所述的图像编码方法,
其中所述预定值是与紧前面的差值相对应的频率分量值。
3.根据权利要求2所述的图像编码方法,
其中按照从所述量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来计算所述差值。
4.根据权利要求3所述的图像编码方法,
其中所述每个差值都被表示为2的k次幂(k为常数)的余数。
5.根据权利要求3所述的图像编码方法,进一步包括:
判断是否存在与所述量化矩阵后面部分相对应的连续差值0;以及
当判断存在连续差值0时,把直到顶部差值0的紧前面差值的差值编码为可变长度码,而不把连续差值0编码为可变长度码。
6.根据权利要求5所述的图像编码方法,进一步包括:
在顶部差值0的紧前面差值的可变长度码之后加上结束码。
7.一种图像解码方法,通过逆量化和逆正交变换逐块对编码图像进行解码,并对可变长度编码的量化矩阵进行解码,所述方法包括:
对所述量化矩阵进行可变长度解码,以将其解码为与所述量化矩阵中所包括的每个频率分量相对应的差值;以及
通过把所述差值加到与所述每个频率分量相对应的预定值上,来计算所述量化矩阵的所述每个频率分量,
其中当所述差值越小时,所述差值的可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
8.根据权利要求7所述的图像解码方法,
其中所述预定值是通过紧前面的加法所计算的频率分量值。
9.根据权利要求8所述的图像解码方法,
其中按照从所述量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来执行加法。
10.根据权利要求9所述的图像解码方法,
其中所述每个频率分量都被表示为2的k次幂(k为常数)的余数。
11.根据权利要求9所述的图像解码方法,
其中在从可变长度编码的量化矩阵中检测到结束码的情况下,与所述结束码的紧前面频率分量值相同的值被输出,作为随后的每一个频率分量的值。
12.一种图像编码设备,通过正交变换和量化逐块对图像进行编码,并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码,所述设备包括:
减法单元,操作用于计算量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及
编码单元,操作用于将所述差值编码为可变长度码,
其中当所述差值越小时,所述可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
13.根据权利要求12所述的图像编码设备,
其中所述预定值是与紧前面的差值相对应的频率分量值。
14.根据权利要求13所述的图像编码设备,
其中所述减法单元按照从所述量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来计算差值。
15.根据权利要求14所述的图像编码设备,
其中每个差值都被表示为2的k次幂(k为常数)的余数。
16.根据权利要求14所述的图像编码设备,进一步包括:
判断单元,操作用于判断是否存在与量化矩阵后面部分相对应的连续差值0,
其中当所述判断单元判断存在连续差值0时,所述编码单元把直到顶部差值0的紧前面差值的差值编码为可变长度码,而不把连续差值0编码为可变长度码。
17.根据权利要求16所述的图像编码设备,
其中所述编码单元进一步在顶部差值0的紧前面差值的可变长度码之后加上结束码。
18.一种图像解码设备,通过逆量化和逆正交变换逐块对编码图像进行解码,并对可变长度编码的量化矩阵进行解码,所述设备包括:
解码单元,操作用于对所述量化矩阵进行可变长度解码,将其解码为与所述量化矩阵中所包括的每个频率分量相对应的差值;以及
加法单元,操作用于通过把所述差值加到与所述每个频率分量相对应的预定值上,来计算所述量化矩阵的每个频率分量,
其中当所述差值越小时,所述差值的可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
19.根据权利要求18所述的图像解码设备,
其中所述预定值是由所述加法单元通过执行紧前面的加法而计算的频率分量值。
20.根据权利要求19所述的图像解码设备,
其中所述加法单元按照从所述量化矩阵中所包括的频率分量的低频分量到高频分量的顺序,来执行加法。
21.根据权利要求20所述的图像解码设备,
其中每个频率分量都被表示为2的k次幂(k为常数)的余数。
22.根据权利要求21所述的图像解码设备,进一步包括:
保存单元,操作用于保存由所述加法单元计算的紧前面频率分量;以及
检测单元,操作用于从可变长度编码的量化矩阵中检测结束码,
其中在所述检测单元检测到结束码的情况下,所述保存单元输出与结束码的紧前面频率分量值相同的值,作为随后的每一个频率分量的值。
23.一种使计算机执行图像编码方法的程序,所述图像编码方法用于通过正交变换和量化逐块对图像进行编码,并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码,所述程序使计算机执行所述图像编码方法中所包括的以下步骤:
计算所述量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及
将所述差值编码为可变长度码,
其中当所述差值越小时,所述可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
24.一种使计算机执行图像解码方法的程序,所述图像解码方法用于通过逆量化和逆正交变换逐块对编码图像进行解码,并对可变长度编码的量化矩阵进行解码,所述程序使计算机执行所述图像解码方法中所包括的以下步骤:
对所述量化矩阵进行可变长度解码,以将其解码为与所述量化矩阵中所包括的每个频率分量相对应的差值;以及
通过把所述差值加到与所述每个频率分量相对应的预定值上,来计算所述量化矩阵的每个频率分量,
其中当所述差值越小时,所述差值的可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
25.一种半导体器件,通过正交变换和量化逐块对图像进行编码,并对用于推导正交变换系数频率的量化步长的量化矩阵进行编码,所述半导体器件包括:
减法单元,操作用于计算所述量化矩阵中所包括的每个频率分量和与所述每个频率分量相对应的预定值之间的差值;以及
编码单元,操作用于将所述差值编码为可变长度码,
其中当所述差值越小时,所述可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
26.一种半导体器件,通过逆量化和逆正交变换逐块对编码图像进行解码,并对可变长度编码的量化矩阵进行解码,所述半导体器件包括:
解码单元,操作用于对所述量化矩阵进行可变长度解码,以将其解码为与所述量化矩阵中所包括的每个频率分量相对应的差值;以及
加法单元,操作用于通过把所述差值加到与所述每个频率分量相对应的预定值上,来计算所述量化矩阵的每个频率分量,
其中当所述差值越小时,所述差值的可变长度码的码长就越短,或者等于所述差值的邻近差值的码长。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US53806504P | 2004-01-20 | 2004-01-20 | |
US60/538,065 | 2004-01-20 | ||
US60/561,351 | 2004-04-12 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101673489A Division CN101695132B (zh) | 2004-01-20 | 2005-01-19 | 图像编码方法和设备、图像解码方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1910594A true CN1910594A (zh) | 2007-02-07 |
Family
ID=37700849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580002801 Pending CN1910594A (zh) | 2004-01-20 | 2005-01-19 | 图像编码方法和设备、图像解码方法和设备及其程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1910594A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105580368A (zh) * | 2013-09-30 | 2016-05-11 | 日本放送协会 | 图像编码装置、图像解码装置以及它们的程序 |
-
2005
- 2005-01-19 CN CN 200580002801 patent/CN1910594A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105580368A (zh) * | 2013-09-30 | 2016-05-11 | 日本放送协会 | 图像编码装置、图像解码装置以及它们的程序 |
CN105580368B (zh) * | 2013-09-30 | 2018-10-19 | 日本放送协会 | 图像编码装置和方法以及图像解码装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1295934C (zh) | 移动向量编码方法和移动向量解码方法 | |
CN1293762C (zh) | 图象编码方法及图象解码方法 | |
CN1278562C (zh) | 编码失真消除方法、视频编码方法、视频解码方法、装置及其程序 | |
CN100352287C (zh) | 图像编码装置、图像解码装置及它们的方法 | |
CN1516974A (zh) | 图像编码方法和图像解码方法 | |
CN1671209A (zh) | 运动图像编码装置 | |
CN1612614A (zh) | 帧内预测编码方法 | |
CN1254113C (zh) | 图像编码装置、图像编码方法、图像解码装置、图像解码方法和通信装置 | |
CN1926882A (zh) | 运动补偿装置 | |
CN1640148A (zh) | 动态图像编码方法及动态图像解码方法 | |
CN1685732A (zh) | 动态图像编码方法和动态图像解码方法 | |
CN101035289A (zh) | 可变长度解码方法及装置 | |
CN1557097A (zh) | 图像编码方法及图像解码方法 | |
CN1739294A (zh) | 图像编码方法 | |
CN1620144A (zh) | 图像信号处理方法、处理装置、处理程序及集成电路装置 | |
CN1703096A (zh) | 预测编码/解码器、预测编码/解码方法和记录介质 | |
CN1515078A (zh) | 可变长度编码方法,可变长度译码方法,存储介质,可变长度编码设备,可变长度译码设备,和位流 | |
CN1630374A (zh) | 用于前向预测的隔行扫描视频帧的场的预测运动矢量 | |
CN1522544A (zh) | 可变长度编码方法及可变长度解码方法 | |
CN1910933A (zh) | 图像信息编码装置和图像信息编码方法 | |
CN1666532A (zh) | 图像编码方法和图像解码方法 | |
CN1685733A (zh) | 动态画像的编码方法及解码方法 | |
CN1830214A (zh) | 编码模式决定装置、图像编码装置、编码模式决定方法和编码模式决定程序 | |
CN1692654A (zh) | 动态图像编码方法和动态图像解码方法 | |
CN1509575A (zh) | 图像编码方法及图像译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |