具体实施方式
实施例1
本发明的实施例1的图象编码方法是一种通过对作为编码对象的事件进行编码处理,增加可变长度编码表的使用机会,谋求提高编码效率的方法。
图1是表示本发明的实施例1的可变长度编码方法中的处理顺序的流程图。图2是表示本实施例1的实施可变长度编码处理的图象编码装置的结构框图。图3是表示可变长度编码结果的例图。
首先,用图2说明本实施例1的图象编码装置。如图2所示,本实施例1的图象编码装置备有第一加法器202、编码器203、第二加法器210、可变长度编码器(VLC)211、帧存储器(FM)213、移动检测器(ME)214、以及移动补偿器(MC)215,从输入端201输入成为编码处理对象的数字图象数据,由输出端206输出该图象编码装置输出的编码数据。另外,编码器203内部包括离散余弦变换器(DCT)204和量化器(Q)205,解码器207内部包括逆量化器(IQ)208和逆离散余弦变换器(IDCT)209。
以下,说明如上构成的图象编码装置的工作情况。首先,将数字图象数据即编码对象图象输入到输入端201。编码对象图象被分割成相邻的多个小区。在本实施例1中,编码对象图象被分割成相邻的16×16个块,对该所分割的每个块进行编码处理。
成为编码对象的块即对象块由信号线216被输入第一加法器202,同时经过信号线225被输入移动检测器214。另外,如下文所述,过去的再生图象被存入帧存储器213,移动检测器214由信号线224输入该存储的图象,将它作为参照图象用,进行对编码对象块的移动检测处理,取得移动矢量。在移动检测处理中,用块匹配等方法对编码对象块求能供给误差最小的预测信号的移动位移信息,将该移动位移信息作为移动矢量实施,移动检测器214将移动矢量输出给移动补偿器215。另外,移动矢量经过信号线228还输出给可变长度编码器211,在可变长度编码器211中被变换成可变长度码,作为侧面信息的一部分被附加的编码结果中。
移动补偿器215同样将存储在帧存储器213中的图象作为参照图象用,根据该参照图象和移动矢量,生成预测块,由信号线226将它输出给第一加法器202,同时由信号线227还输出给第二加法器210。在第一加法器202中,通过取得输入的对象块和预测块的差分,生成剩余块,由信号线217将它输出给编码器203。
在编码器203中,剩余块被压缩编码。在本实施例1中,将剩余块输入离散余弦变换器204中,变换成频率区的系数,频率区的系数由信号线218输入量化器205,量化器205用规定的量化幅度进行量化处理。在第一加法器202中未取得差分的情况下,即在进行画面内编码的情况下,对象块被输入编码器203中,进行与剩余块同样的处理。
被量化了的变换系数即量化变换系数和量化处理中用的量化幅度从量化器205经过信号线219被输出给可变长度编码器203,被进行编码处理,编码结果与移动矢量或量化幅度等其它侧面信息一起被输出给输出端206。另一方面,量化变换系数也被输出给解码器207,进行展开处理。在本实施例1中,在逆量化器208中用上述的量化幅度进行逆量化,其结果由信号线221输入逆离散余弦变换器209,进行离散余弦变换的逆处理,获得空间区域的数据。用解码器207获得的展开后的剩余块由信号线221输出给第二加法器210,与经过信号线227输送的预测块相加,生成再生块。该再生块经过信号线222输出给帧存储器213储存起来,以便在下一次编码处理中作为参照图象用。
在本实施例1的图象编码装置中,将量化变换系数和量化幅度及移动矢量等侧面信息输入可变长度编码器211,将它们变换成可变长度或固定长度码。以下,根据图1中的流程,说明可变长度编码器211对量化变换系数进行处理时的工作情况。
与在现有技术中说明的一样,变换系数是作为零及非零系数的二维排列获得的系数,按照规定的顺序(锯齿形)对该二维排列进行重新排列,获得一维排列后,归纳成由先行的零系数的个数(运算,Run)和非零系数值、电平(Level)构成的事件。另外,附加表示是否是用电平表示的变换系数还是最后系数的Last(末尾)的信息。将由这样形成的(Last,Run,Level)构成的事件作为可变长度编码器211的处理对象的输入事件。
如果在步骤101中开始处理,则在步骤102中获得第j个输入事件。在步骤103中,在可变长度编码器211中进行输入事件和可变长度码表中的参照事件的比较。作为可变长度码表使用现有技术中使用的图19~图22所示的表,进行与由该表中含有的(Last,Run,Level)构成的各参照事件的比较。
在步骤104中,判断在上述比较处理中是否有(Last,Run,Level)一致的参照事件。若在步骤104的判断中有参照事件时,执行步骤105,若没有时执行步骤106。这里,在执行了步骤105的情况下,输出与该参照事件对应的可变长度码,转移到下文所述的步骤111。
另一方面,在执行步骤106的情况下,用规定的函数对输入事件所具有的电平进行变换处理,生成变换输入事件。在接着的步骤107中,与步骤103一样进行变换输入事件和参照事件的比较。在接着的步骤108中,进行是否是一致的参照事件的判断,在有参照事件的情况下,执行步骤110,在没有时执行步骤109。这里,在执行步骤110的情况下,预先附加了单值设定的第二控制码的编码结果被输出给与该参照事件对应的可变长度码,转移到步骤111。
另一方面,在执行步骤109的情况下,对输入事件进行图23所示的编码处理,生成固定长度码。然后,输出能区别于第二控制码的第一控制码被附加在该固定长度码中的编码结果。
在执行了步骤110或步骤109两者中的任意一个步骤后,在接着的步骤111中,判断所处理的输入事件是否是最后的输入事件,若是最后时,则在步骤112中结束编码处理。另一方面,若不是最后时,则在步骤113中使j增加1后,返回步骤102,进行与下一个输入事件同样的处理。这样,将处理一直进行到最后的非零系数为止。
在本实施例1中,作为从输入事件获得变换输入事件时的规定的函数的是具有规定值的偏置值的减法处理的函数。即,从输入事件所具有的电平值减去偏置值,作为变换输入事件。最好是在从电平值的绝对值减去偏置值后,带上电平符号(正或负)。该偏置值可以是一个,也可以与Last和Run的值对应地取可变的值。在本实施例1中,从图19至图22所示的表中可以得到:(Last,Run)=(0、0)时,偏置值=12,(Last,Run)=(0、1)时,偏置值=6,(Last,Run)=(0、2)时,偏置值=4,将各(Last,Run)对的最大电平值作为偏置值。
图19至图22所示的可变长度码表是适合于压缩系数较高的变换系数的表,表内的事件所具有的电平值多半较小。因此,对于该表中不存在的适宜的事件的输入事件来说,对其电平值进行减法处理,获得电平值小的变换输入事件,提高可变长度编码率,另外,谋求提高该表中分配给电平值小的事件的短码的使用率。
另外,作为第一控制码,使用图23所示的与现有技术中使用的ESC码相同的“0000011”,作为第二控制码,使用将该ESC码两次反复后的码。
图3是表示编码结果之一例图。这里,利用图3将本实施例1的编码处理方法与现有技术中的情况进行比较。这里,考虑将(Last,Run,Level)=(0、0、13)的事件作为编码对象的情况。在从图19至图22所示的可变长度码表中,没有(0、0、13)的组。因此,如果按照现有技术进行编码处理,则如上所述,进行图23所示的固定长度编码处理,在其中附加ESC码后输出。图3(a)表示这样处理的结果,输出7位的ESC码301、表示Last的1位的302、其后是表示电平而6位的303、以及8位的304。这里,电平用表示零运算的303和固定长度码304表示。这样,合计必须是22位。
与此不同,在本实施例1的处理结果中,从图1的流程中的步骤103到104,即使在可变长度码表中不存在适当的参照事件的情况下,也不象现有技术所进行的处理那样直接进行固定长度编码,而是进行步骤106~步骤108所示的变换处理,并再次进行比较。在变换处理中,从电平值13减去偏置值(=12),以便将电平值变换成1,获得变换输入事件(0、0、1)。如图18所示,事件(0、0、1)存在于可变长度码表中,所以在图1的流程中执行步骤108至步骤110。因此,如图3(b)所示,获得由第二控制码806和对(0、0、1)的可变长度码807构成的编码结果,因此,这时变成需要17位的码,结果比需要22位的现有技术减少了编码量。
在图1的流程中,即使用变换输入事件进行比较处理,在可变长度码表中不存在适当的参照事件的情况下,步骤109的处理变成与现有技术相同。因此,在本实施例1中,在最坏的情况下也能进行与现有技术相同的编码。另外,在附加了第二控制码的码长比附加了第一控制码的码长还要长的情况下,用第一控制码和固定长度码编码时位数少。
以下,说明对用本实施例1中所示的通过图象编码处理获得的编码数据进行的解码处理。
图4是本实施例1的图象解码装置的结构框图。如该图所示,本实施例1的图象解码装置备有数据分析器(DA)402、加法器406、可变长度解码器(VLD)408、解码器403、帧存储器(FM)409、以及移动补偿器(MC)410,从输入端401输入成为解码处理对象的编码数据,由输出端407输出该图象解码装置的输出即解码数据。另外,解码器403内部包括逆量化器(IQ)404和逆离散余弦变换器(IDCT)405。
以下说明如上构成的本实施例1的图象解码装置对在图2所示的图象编码装置中进行了压缩编码的编码数据进行解码处理时的工作情况。
将作为处理对象的编码数据输入到输入端401,在数据分析器402中分析数据,取得由量化变换系数获得的可变长度码和包含量化幅度和移动矢量的侧面信息的码。其中,将量化幅度和量化变换系数的可变长度码经过信号线412被传送到可变长度解码器408,移动矢量经过信号线418被输出给移动补偿器410。在可变长度解码器408中,参照可变长度码表,将被量化了的变换系数的可变长度码复原成变换系数,通过重新排列,取得压缩剩余块,将其输出给解码器403。
在解码器403中,将压缩剩余块展开,复原成展开剩余块。在本实施例1的解码器403中,在逆量化器404中用量化幅度进行逆量化,对其结果,由逆离散余弦变换器405将频率区域信号变换成空间区域信号。该信号作为被展开的剩余块输出给加法器406。
另一方面,在输入了移动矢量的移动补偿器410中,根据该移动矢量,生成对帧存储器409进行访问用的地址,根据帧存储器409中存储的图象,生成预测块。所生成的预测块被输出给加法器406,通过与展开的剩余块进行加法处理,生成再生块。这样再生的图象作为该图象解码装置的输出,被从输出端407输出,同时被输出给帧存储器409储存。
图5是表示可变长度解码器408的可变长度解码方法的处理顺序的流程图。以下,根据图5中的流程,说明系数可变长度解码器408进行解码处理时的工作情况。
首先,如果在步骤501中开始处理,则在步骤502中,第j个处理对象的由量化变换系数获得的可变长度码被作为输入可变长度码输入。在步骤503中,判断输入可变长度码是否包含控制码,如果不包含,执行步骤504,如果包含,执行步骤505。在执行步骤504时,即在没有控制码的情况下,通过使用可变长度码表,输出与输入可变长度码对应的(Last,Run,Level),转移到下文所述的步骤510。
另一方面,在执行步骤505时,即在包含控制码的情况下,判断该控制码是否是第二控制码,如果是第二控制码,执行步骤506,如果不是,执行步骤507。在执行步骤506时,即在是第二控制码的情况下,通过使用可变长度码表,取得与输入可变长度码对应的(Last,Run,Level),用规定的函数变换其电平值,所取得的结果被输出后,转移到下文所述的步骤510。在本实施例1中,作为电平值的变换处理,是进行规定的偏置值的加法处理,如上所述,该偏置值的值是对应于(Last,Run)可变的值。
这里,考虑对图3(b)中的码进行解码处理的情况。在步骤505的判断中,由于断定了是第二控制码,所以执行步骤506。因此,通过参照可变长度码表,取得与图3(b)中的306所示的码“100”的部分对应的(Last,Run,Level=0、0、1),对其电平进行偏置值=12的加法处理后,能复原真的(Last,Run,Level)=(0、0、13)。
与此不同,在执行步骤507时,进一步判断该控制码是否是第一控制码。如果是第一控制码,执行步骤508,但如果断定不是第一控制码时,则既不带第一控制码,也不带第二控制码,所以在步骤509中,中止解码处理,进行将该意思显示给使用者等的错误处理。另一方面,在执行步骤508时,即有第一控制码时,再生固定长度码解码系数。
在执行了步骤504、步骤506、或步骤508后,在接着的步骤510中,判断所处理的输入可变长度码是否是最后输入可变长度码,在是最后的情况下,在步骤511中结束解码处理。另一方面,在不是最后的情况下,在步骤512中,使j增加1后,返回步骤502,进行与下一个输入可变长度码同样的处理。这样一直连续处理到最后的可变长度码为止。
这样,如果采用本实施例1的图象编码方法,则如图1所示,在从步骤103至步骤104的比较处理中,即使在可变长度码表中不存在适当的参照事件,但由于在步骤106中对输入事件进行变换处理,在步骤107至步骤108中,用获得的变换输入事件进行比较处理,所以通过执行步骤109,降低了固定长度编码率,另外,由于使用变换输入事件,在可变长度编码中提高了分配短码的可能性,可谋求在总体上提高编码结果的压缩率。
另外,如果采用本实施例1的图象编码装置,则由于备有执行上述编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能使用同一个可变长度码表,能获得压缩率好的编码结果。
另外,如果采用本实施例1的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
另外,在本实施例1的编码处理中,说明了在压缩编码时进行离散余弦变换的处理方法,但也可以用小波编码等的波形编码方法代替它,同样能进行编码处理。
另外,在本实施例1的编码处理中,对输入事件进行变换处理时,变换输入事件的电平值,但也可以变换输入事件的运算的值来代替它。这时,将图19至图22的可变长度码表中的各参照事件的(Last,Run)对的最大的Run值作为偏置值,从输入事件的运算的值减去(偏置值+1),能获得变换输入事件。另外,也可以采用下述方法来代替使用偏置值,即,采用使电平或运算的值递增,或进行二次函数的处理,或变更动态范围的方法,进行变换处理。另外,还可以用规定的函数变换可变长度码表中的电平或运算,进行比较处理,代替对输入事件的电平或运算施以规定的函数。
如上所述,在编码处理中,变换运算值代替电平值时,即使在解码处理中,也可将(偏置值+1)加到可变长度解码过的运算值中,生成真的运算值。如上所述,这时的偏置值是(Last,Run)对的Run的最大值。
另外,在本实施例1中,用图1及图5中的流程图说明了编码处理及解码处理的顺序,但不限于这样的处理顺序,也可以采用能进行同样的处理的顺序,谋求提高编码效率,以及对这样的编码结果进行适当的解码处理。
实施例2
本发明的实施例2的图象编码方法与实施例1相同,也是对成为编码对象的事件进行变换处理,通过使用方式码,谋求减少位数。
图6是表示本实施例2的可变长度编码方法中的处理顺序的流程图。另外,本实施例2的图象编码装置具有与实施例1同样的结构,说明时用图2。
在本实施例2的图象编码处理中,虽然只用图2所示的可变长度编码器211进行处理,但与实施例1不同,所以以下根据图6说明可变长度编码器211的编码处理工作的情况。
从步骤601至步骤608与实施例1中的步骤101至步骤108同样地进行,在步骤108中根据变换输入事件和可变长度码表中的参照事件的比较进行判断。根据判断结果,在有一致的参照事件的情况下,执行步骤601,在没有的情况下,执行步骤609。
在执行了步骤601后,输出在与该参照事件对应的可变长度码上附带了预先单值地设定的控制码和第二方式码的编码结果,转移到步骤611。这里,作为控制码,与图22所示的ESC码相同,是使用0000011的码,作为第二方式码是使用“0”的码。
另一方面,在执行了步骤609后,对输入事件进行图23所示的编码处理,生成固定长度码。然后,输出控制码和第一方式码被附加在该固定长度码上的编码结果。作为第一方式码是使用“1”的码。
在执行了步骤610或步骤609后,在接着的步骤611中,判断所处理的输入事件是否是最后的输入事件,是最后时,便在步骤612中使编码处理结束。另一方面,若不是最后时,则在步骤613中将j增加1后,返回步骤602,进行与下一个输入事件同样的处理。这样一直连续处理到最后的非零系数为止。
在本实施例2中,与实施例1一样,在生成输入变换事件时,对输入事件的电平进行使用偏置值的变换,与实施例1一样,偏置值既可取预定的值,也可以取与Last和Run对应的值。在本实施例中,(Last,Run)=(0、0)时,偏置值=12,(Last,Run)=(0、1)时,偏置值=6,(Last,Run)=(0、2)时,偏置值=4,这些都可以从图19至图22所示的可变长度编码表获得,将各(Last,Run)的最大电平值作为偏置值。
以下,说明对通过本实施例2所示的编码处理获得的编码数据进行的解码处理情况。本实施例2的图象解码装置的结构与实施例1的相同,说明时使用图4。
图7是表示本实施例2的可变长度解码方法的处理顺序的流程图。在本实施例2的图象解码处理中,只由图4所示的可变长度解码器408进行处理,这一点与实施例1不同,所以以下根据图7说明可变长度解码器408的解码处理的工作情况。
从步骤701至步骤704与实施例1中的步骤501~504(图5)同样地进行,其次进行步骤705中的判断处理。在步骤703的判断中,在断定有控制码的情况下,在步骤705中进行继该控制码之后的下一个1位是“0”还是“1”的判断处理。然后,若是“0”时执行步骤706,若是“1”时执行步骤708。
在执行步骤706的情况下,首先利用可变长度码表,取得与输入的可变长度码对应的(Last,Run,Level),用规定的函数对其所具有的电平值进行变换处理后,输出解码结果。在本实施例2的变换处理中,是将规定的偏置值加在所取得的电平值上。该偏置值如上所述是对应于(Last,Run)可变的值。
另一方面,在执行步骤708的情况下,将输入可变长度码作为固定长度码进行解码,使系数再生。在执行了步骤704、步骤706、或步骤708后,在接着的步骤710中,判断所处理的输入可变长度码是否是最后输入可变长度码,在是最后的情况下,在步骤711中结束解码处理。另一方面,在不是最后的情况下,在步骤712中,使j增加1后,返回步骤702,进行与下一个输入可变长度码同样的处理。这样一直连续处理到最后的可变长度码为止。
这样,如果采用本实施例2的图象编码方法,则如图6所示,在从步骤603至步骤604的比较处理中,即使在可变长度码表中不存在适当的参照事件,但由于在步骤606中对输入事件进行变换处理,在步骤607至步骤608中,用所获得的变换输入事件进行比较处理,所以通过执行步骤609,降低了固定长度编码率,另外,由于使用变换输入事件,在可变长度编码中提高了分配短码的可能性,可谋求在总体上提高编码结果的压缩率。而且,在步骤610或步骤609中,用1位的方式码对固定长度编码和进行过偏置值处理的电平进行区别,所以与使用第一及第二控制码的实施例1相比较,具有能减少编码结果中总位数的优点。
另外,如果采用本实施例2的图象编码装置,则由于备有执行上述编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能使用同一个可变长度码表,能获得压缩率好的编码结果。
另外,如果采用本实施例2的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
另外,在本实施例2中,虽然是使用一个方式码,但也可以用两个以上的方式码来区别多个方式。例如,可以增加变更零运算值的方式作为第三种方式。
另外,在本实施例2中,也与实施例1一样,变换输入事件的电平,获得变换输入事件,但也可以变换运算。另外,虽然是用偏置值进行变换处理,但也可以代之以采用使电平递增,或采用二次函数,或变更动态范围的方法。
实施例3
本发明的实施例3的图象编码方法与实施例1及2相同,也是对成为编码对象的事件进行变换处理,能反复进行变换处理,谋求提高编码效率。
图8是表示本实施例3的可变长度编码方法中的处理顺序的流程图。另外,本实施例3的图象编码装置具有与实施例1同样的结构,说明时用图2。
在本实施例3的图象编码处理中,虽然只用图2所示的可变长度编码器211进行处理,但与实施例1不同,所以以下根据图8说明可变长度编码器211的编码处理工作的情况。
在图8(a)的流程中,从步骤801至步骤805与实施例1中的步骤101至步骤105同样地进行。在本实施例3中,在步骤806的变换处理中,通过使用规定函数的变换处理,获得第一变换输入事件。这里,与实施例1同样地进行变换处理,通过对输入事件所具有的电平值减少规定的偏置值,获得第一变换输入事件。其中(Last,Run)=(0、0)时,偏置值=12,(Last,Run)=(0、1)时,偏置值=6,(Last,Run)=(0、2)时,偏置值=4,这些都可以从图19至图22所示的可变长度编码表获得,将各(Last,Run)的最大电平值作为偏置值。
在步骤807中,进行第一变换输入事件和可变长度码表中含有的参照事件的比较,在步骤808中根据该比较结果进行判断。通过判断,在有一致的参照事件的情况下,执行步骤810,在没有的情况下,执行图8(b)中的顺序。这时,在执行了步骤810后,输出在与该参照事件对应的可变长度码上附带了预先单值地设定的控制码和第二方式码的编码结果,转移到步骤811。这里,作为控制码,与图22所示的ESC码相同,是使用0000011的码,作为第二方式码是使用“0”的码。
另一方面,在执行图8(b)中的顺序的情况下,用规定的函数变换输入事件的运算,取得第二变换输入事件。在本实施例3中,从运算值减去规定的偏置值,生成有新的运算值的第二变换输入事件。作为这时的偏置值,是将可变长度码表中的各(Last,Level)的最大运算值作为偏置值。
在步骤822中,进行第二变换输入事件和可变长度码表中含有的参照事件的比较,在步骤823中根据该比较结果进行判断。通过判断,在有一致的参照事件的情况下,执行步骤824,在没有的情况下,执行步骤825。这时,在执行了步骤824后,输出在与该参照事件对应的可变长度码上附带了控制码和第三方式码的编码结果,转移到图8(a)的步骤811。作为第三方式码是使用“10”的码。
另一方面,在执行步骤825的情况下,对输入事件进行图23所示的编码处理,生成固定长度码。然后,输出控制码和第一方式码被附加在该固定长度码上的编码结果。作为第一方式码是使用“11”的码。
在执行了步骤810、或图8(b)所示的步骤824、或步骤825后,在接着的步骤811中,判断所处理的输入可变长度码是否是最后的输入可变长度码,在是最后的情况下,在步骤812中结束编码处理。另一方面,在不是最后的情况下,在步骤813中使j增加1后,返回步骤802,进行与下一个输入可变长度码同样的处理。这样一直连续处理到非零系数为止。
以下,说明对通过本实施例3所示的编码处理获得的编码数据进行的解码处理的情况。本实施例3的图象解码装置的结构与实施例1的相同,说明时使用图4。
图9是表示本实施例3的可变长度解码方法的处理顺序的流程图。在本实施例3的图象解码处理中,只由图4所示的可变长度解码器408进行处理,这一点与实施例1不同,所以以下根据图7说明可变长度解码器408的解码处理的工作情况。
从步骤901至步骤906与图7所示的实施例2中的步骤701~706同样地进行,然后,在步骤905的判断中,在成为对象的位为“1”的情况下,执行步骤907,再对后继的一位进行该位是“0”还是“1”的判断处理。然后,若是“0”时执行步骤908,若是“1”时执行步骤909。
在执行步骤908的情况下,首先利用可变长度码表,取得与输入的可变长度码对应的(Last,Run,Level),用规定的函数对其所具有的电平值进行变换处理后,输出解码结果。在本实施例3的变换处理中,是将规定的(偏置值+1)加在所取得的运算值上。
另一方面,在执行步骤909的情况下,将输入可变长度码作为固定长度码进行解码,使系数再生。在执行了步骤904、步骤906、步骤908、或步骤909中任意一个步骤之后,在接着的步骤910中,判断所处理的输入可变长度码是否是最后输入可变长度码,在是最后的情况下,在步骤911中结束解码处理。另一方面,在不是最后的情况下,在步骤912中使j增加1后,返回步骤902,进行与下一个输入可变长度码同样的处理。这样一直连续处理到最后的可变长度码为止。
这样,如果采用本实施例3的图象编码方法,则如图8(a)所示,在从步骤803至步骤804的比较处理中,在可变长度码表中不存在适当的参照事件的情况下,也是在步骤806中对输入事件进行变换处理,在从步骤807至步骤808中,用所获得的第一变换输入事件进行比较处理,这时在可变长度码表中也不存在适当的参照事件的情况下,执行图8(b)中的处理,在步骤821中对输入事件进行变换处理,在从步骤822至步骤823中,用所获得的第二变换输入事件进行比较处理,所以与实施例1及2相比较,通过执行步骤825,降低了固定长度编码率,另外,在可变长度编码中提高了分配短码的可能性,可谋求在总体上提高编码结果的压缩率。
另外,如果采用本实施例3的图象编码装置,则由于备有执行上述编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能使用同一个可变长度码表,能获得压缩率好的编码结果。
另外,如果采用本实施例3的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
实施例4
本发明的实施例4的图象编码方法通过同时使用多个可变长度码表进行比较处理,增加可变长度码表的使用机会,谋求提高编码效率。
图10是表示本实施例4的可变长度编码方法中的处理顺序的流程图。另外,本实施例4的图象编码装置具有与实施例1同样的结构,说明时用图2。
在本实施例4的图象编码处理中,虽然只用图2所示的可变长度编码器211进行处理,但与实施例1不同,所以以下根据图10说明可变长度编码器211的编码处理的工作情况。这里,在本实施例4的图象编码处理中,使用第一可变长度码表和第二可变长度码表。第一可变长度码表与实施例1~3相同,使用从图19至图22所示的表。另一方面,第二可变长度码表使用与第一表不同的表,这里是使用由电平值为10以上的项构成的表。这样,在本实施例4中,与电平值在10以下为主体的第一可变长度码表不同,还使用电平值包括10以上的第二可变长度码表,但作为第二可变长度码表最好使用由第一可变长度码表中不包括的参照事件构成的表。
如果在步骤1001中开始处理,则在步骤1002中获得第j个输入事件。在步骤1003中,在可变长度编码器211中进行输入事件和第一可变长度码表中含有的参照事件的比较。其次在步骤1004中,判断在上述比较处理中是否有(Last,Run,Level)一致的参照事件。若在步骤1004的判断中有参照事件时,执行步骤1005,若没有时执行步骤1006。这里,在执行了步骤1005的情况下,输出与该参照事件对应的可变长度码,转移到下文所述的步骤1010。
另一方面,在执行了步骤1006的情况下,在可变长度编码器211中进行输入事件和第二可变长度码表中含有的参照事件的比较。其次在步骤1007中,判断在上述比较处理中是否有(Last,Run,Level)一致的参照事件。在步骤1007的判断中如果有参照事件时,执行步骤108,没有时执行步骤1009。这里,在执行了步骤1008后,取得与该参照事件对应的可变长度码,在附加了单值设定的控制码和第二方式码后被输出,转移到下文所述的步骤1010。这里,作为控制码,与图22所示的ESC码相同,是使用0000011的码,作为第二方式码是使用“0”的码。
另一方面,在执行了步骤1009的情况下,对输入事件进行图23所示的编码处理,生成固定长度码。然后,输出控制码和第一方式码被附加在该固定长度码中的编码结果。作为第一方式码是使用“1”的码。
在执行了步骤1005、步骤1008、或步骤1009中的任意一个步骤后,在接着的步骤1010中,判断所处理的输入事件是否是最后的输入事件,若是最后时,则在步骤1011中结束编码处理。另一方面,若不是最后时,则在步骤1012中使j增加1后,返回步骤1002,进行与下一个输入事件同样的处理。这样,将处理连续地进行到最后的非零系数为止。
以下,说明对通过本实施例4所示的编码处理获得的编码数据进行的解码处理的情况。本实施例4的图象解码装置的结构与实施例1的相同,说明时使用图4。
图11是表示本实施例4的可变长度解码方法的处理顺序的流程图。在本实施例4的图象解码处理中,只由图4所示的可变长度解码器408进行处理,这一点与实施例1不同,所以以下根据图11说明可变长度解码器408的解码处理的工作情况。
首先,如果在步骤1101中开始处理,则在步骤1102中作为输入可变长度码输入作为第j个处理对象的量化了的变换系数的可变长度码。在步骤1103中,判断输入可变长度码是否包括控制码,如果不包括,执行步骤1104,如果包括,执行步骤1105。执行了步骤1104后,即在没有控制码的情况下,通过使用第一可变长度码表,输出与输入可变长度码对应的(Last,Run,Level),转移到下文所述的步骤1110。
在步骤1103的判断中,如果断定有控制码时,在步骤1105中进行继该控制码之后的下一位是“0”还是“1”的判断处理。然后,若是“0”时,执行步骤1106,若是“1”时,执行步骤1108。
在执行了步骤1106后,通过使用第二可变长度码表,输出与输入可变长度码对应的(Last,Run,Level),转移到下文所述的步骤1110。另一方面,在执行了步骤1108后,将输入可变长度码作为固定长度码进行解码处理,使系数再生。
在执行了步骤1004、步骤1006、或步骤1008中的任意一个步骤后,在接着的步骤1110中,判断所处理的输入可变长度码是否是最后的输入可变长度码,若是最后时,则在步骤1111中结束编码处理。另一方面,若不是最后时,则在步骤1112中使j增加1后,返回步骤1102,进行与下一个输入事件同样的处理。这样,将处理连续地进行到最后的可变长度码为止。
这样,如果采用本实施例4的图象编码方法,则如图10所示,由于使用第一可变长度码表和第二可变长度码表,在从步骤1003至步骤1004中的比较处理中,在第一可变长度码表中不存在适合的参照事件时,在从步骤1006至步骤1007中进行与第二可变长度码表的比较处理,所以通过执行步骤1009,能降低固定编码率,在总体上能谋求提高编码结果的压缩率。如果采用本实施例4,虽然需要准备多个可变长度码表,但如上所述,由于该多个表中包含的事件不同,所以能谋求提高编码效率。
另外,如果采用本实施例4的图象编码装置,则由于备有执行上述编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能获得压缩率好的编码结果。
另外,如果采用本实施例4的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
另外,在本实施例4中使用两个可变长度码表,但也可以准备任意数的可变长度码表,用该数的方式码来区别该多个可变长度码表。另外,还可以用量化幅度区别多个可变长度码表。
实施例5
本发明的实施例5的图象编码方法是通过对成为编码对象的事件进行除法处理的变换处理,进行与可变长度码表的比较的方法。
图12是表示本实施例5的可变长度编码方法中的处理顺序的流程图。另外,本实施例5的图象编码装置具有与实施例1同样的结构,说明时用图2。
在本实施例5的图象编码处理中,虽然只用图2所示的可变长度编码器211进行处理,但与实施例1不同,所以以下根据图12说明可变长度编码器211的编码处理工作的情况。如果在步骤1201中开始处理,则在步骤1202中获得由(Last,Run,Level)构成的第j个输入事件。然后,在步骤1203中对输入事件进行除法处理的变换处理。变换处理是用根据量化幅度确定的除法算符对输入事件所具有的电平值进行除法运算,取得电平的商。图13表示量化幅度和除法算符的关系。图13(a)是两者关系中设定的一个例,在量化幅度从1到7的情况下,除法算符为2,量化幅度为8以上时,除法算符为1。如果这时量化幅度为8以上,意味着不进行除法运算。图13(b)是两者关系中设定的另一个例,将量化幅度这样分成3类,根据种类确定除法算符即可。
量化处理基本上是除法处理,如果量化幅度小,量化变换系数的值就有变大的趋向,因此,生成事件时它所具有的电平值多半是变大。图19~图22所示的可变长度码表是适用于压缩率较高的系数而作成的表,多半包含电平值小的事件,所以在这种情况下该表中包含的参照事件的适当率低,可变长度编码率也低,使得编码效率恶化。因此,在本实施例5中,在量化幅度小的情况下,对电平进行除法运算,生成电平值小的变换输入事件,通过在比较处理中使用该变换输入事件,来提高可变长度编码率,而且谋求增大分配短码的可能性。
如果取得了电平的商,则在步骤1204中对变换输入事件的(Last,Run,Level的商)进行与可变长度码表中含有的参照事件的比较,在下一步骤1205中,进行该比较结果的判断处理。在步骤1205的判断中在有参照事件的情况下,执行步骤1207,在没有的情况下,执行步骤1206。
在执行步骤1207时,输出适当的参照事件的可变长度码,接着在步骤1208中对电平的剩余进行固定长度编码,该编码结果被作为输入辅助码输出。电平的剩余的码长由除法算符变换。例如在图13(a)所示的设定的情况下,除法算符为2时,剩余的位长为1,除法算符为1时,剩余的位长为0。即,除法算符为1时不对剩余编码。在执行了步骤1207至步骤1208时,作为编码结果而输出可变长度码和输入辅助码。
另一方面,在执行了步骤1206的情况下,对输入事件进行固定长度编码处理,生成固定长度码。然后,输出将控制码附加的该固定长度码上的编码结果。
在执行了步骤1207~1208、或步骤1206中的任意一个步骤后,在接着的步骤1209中判断所处理的输入事件是否是最后的输入事件,若是最后时,则在步骤1210中结束编码处理。另一方面,若不是最后时,则在步骤1211中使j增加1后,返回步骤1202,进行与下一个输入事件同样的处理。这样,将处理连续地进行到最后的非零系数为止。以下,说明对通过本实施例5所示的编码处理获得的编码数据进行的解码处理的情况。本实施例5的图象解码装置的结构与实施例1的相同,说明时使用图4。
图14是表示本实施例5的可变长度解码方法的处理顺序的流程图。在本实施例5的图象解码处理中,只由图4所示的可变长度解码器408进行处理,这一点与实施例1不同,所以以下根据图14说明可变长度解码器408的解码处理的工作情况。
首先,如果在步骤1401中开始处理,则在步骤1402中作为输入可变长度码输入作为第j个处理对象的量化了的变换系数的可变长度码。这里,在本实施例5的图象编码处理中,如上所述能获得包含输入辅助码的编码结果,所以该输入辅助码也和可变长度码一起作为处理对象被输入。在步骤1403中,判断输入可变长度码是否包括控制码,如果包括,执行步骤1404,如果不包括,执行步骤1405。执行了步骤1404后,即在有控制码的情况下,将输入可变长度码作为固定长度码进行解码,使系数再生并输出后,转移到下文所述的步骤1408。
另一方面,执行了步骤1405后,即在没有控制码的情况下,通过使用第一可变长度码表,取得与输入可变长度码对应的(Last,Run,Level),然后执行步骤1406,对所取得的电平的值进行乘以规定值的变换处理。规定的值是根据量化幅度规定的值,这里是对应于编码处理,采用图13所示的值。然后,在步骤1407中通过对输入辅助码进行固定长度解码,取得电平的剩余,通过对在步骤1406中的变换处理获得的积进行加法运算,取得正的电平值,使用该电平值的(Last,Run,Level)被作为解码结果输出。
在执行了步骤1404、或步骤1405~1407中的任意一个步骤后,在接着的步骤1408中判断所处理的输入可变长度码是否是最后的输入可变长度码,若是最后时,则在步骤1409中结束编码处理。另一方面,若不是最后时,则在步骤1410中使j增加1后,返回步骤1402,进行与下一个输入可变长度码同样的处理。这样,将处理连续地进行到最后的可变长度码为止。
这样如果采用本实施例5的图象编码方法,则如图12中的步骤1203所示,使用根据量化幅度规定的数,对作为处理对象的输入事件所具有的电平值进行除法运算的变换处理,在步骤1204中用进行过该变换处理的变换输入事件进行比较处理,所以能提高与可变长度码表中包含的参照事件的一致率,降低在步骤1206中进行的固定长度编码率,另外,通过使用变换输入事件,能在可变长度编码中提高分配短码的可能性,能谋求提高编码效率。
另外,如果采用本实施例5的图象编码装置,则由于备有执行上述这样的编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能使用同一个可变长度码表,能获得压缩率好的编码结果。
另外,如果采用本实施例5的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
另外,在本实施例5中,说明了对事件所具有的电平进行变换处理的情况,但也可以不对电平,而是对运算进行变换处理。
实施例6
本发明的实施例6的图象编码方法是将对输入事件进行变换处理代之以对参照事件进行变换处理并进行比较的方法。
图15是表示本实施例6的可变长度编码方法中的处理顺序的流程图。另外,本实施例6的图象编码装置具有与实施例1同样的结构,说明时用图2。
在本实施例6的图象编码处理中,虽然只用图2所示的可变长度编码器211进行处理,但与实施例1不同,所以以下根据图15说明可变长度编码器211的编码处理工作的情况。如果在步骤1501中开始处理,则在步骤1502中获得由(Last,Run,Level)构成的第j个输入事件。另外,还输入在量化处理中使用的量化幅度。然后,在步骤1503中从可变长度码表取得第j个参照事件,在步骤1504中对该参照事件进行变换处理,生成变换参照事件。
在本实施例6中,该变换处理的方法是将根据在步骤1502中输入的量化幅度设定的偏置值加到参照事件所具有的电平值上来进行变换。这里,这样进行设定:量化幅度为1或2时,偏置值=5,量化幅度为3或4时,偏置值=4,量化幅度为5或6时,偏置值=3,量化幅度为7或8时,偏置值=2,量化幅度为9或10时,偏置值=1,量化幅度为11以上时,偏置值=0。例如,成为编码对象的事件为(Last,Run,Level)=(0、1、6)时,在对参照事件进行变换处理的情况下,有相当于图19所示的参照事件,使用对应的码,所以编码结果为13位。可是,量化幅度为4时,在以该事件为对象的情况下,对全部参照事件都进行电平值加4的变换处理,所以变成使用与图19所示的参照事件(0、1、2)对应的可变长度码,这时变为7位,与进行上述的变换处理时相比,能节省6位。这样,将偏置值加在参照事件的电平上,等效于从成为编码对象的事件(Last,Run,Level)的电平减去偏置值,再与可变长度码表中的各项进行比较的方法。
如在实施例5中所述,如果量化幅度小,则量化了的系数值有变大的趋向,所以电平值大的事件出现的频度增大。与此不同,图19至图22所示的可变长度码表适合于压缩率高的系数,多半含有电平值小的事件。因此,通过将偏置值加在参照事件所具有的电平值上,与对输入事件所具有的电平值进行减法处理的情况(实施例1等)相同,能提高用短码进行的可变长度编码率,能谋求提高压缩率。
在步骤1505中,进行在步骤1504中的比较结果的判断处理。在步骤1505的判断中在一致的情况下,执行步骤1506,输出与第i个参照事件对应的可变长度码,然后转移到下文所述的步骤1509。另一方面,在不一致的情况下,执行步骤1507。
在步骤1507中,判断第i个参照事件是否是可变长度码表中包含的最后的参照事件,在是最后的参照事件的情况下,执行步骤1508。在不是最后的参照事件的情况下,在步骤1502中使i增加1后,返回步骤1503,反复进行到在步骤1507中的判断。
通过从步骤1503至步骤1507的处理,反复进行第j个输入事件和可变长度码表中含有的参照事件的比较,直至在步骤1505中断定为一致,或在步骤1507中断定为最后为止。即,一直比较到进行可变长度编码或比较到可变长度码表的最后结束。
在步骤1507中,在断定为最后的情况下,即在第j个输入事件和可变长度码表中的参照事件的比较结束了的情况下,不进行可变长度编码,在步骤1508中对输入事件进行固定长度编码,控制码被附加在编码结果上输出后,转移到步骤1509。
在继步骤1506或步骤1508之后执行的步骤1509中,判断所处理的输入事件是否是最后的输入事件,若是最后时,则在步骤1510中结束编码处理。另一方面,若不是最后时,则在步骤1511中使j增加1后,返回步骤1502,进行与下一个输入事件同样的处理。这样,将处理连续地进行到最后的非零系数为止。
图16是表示本发明的实施例6的图象编码装置中使用的可变长度编码器(图2中的211)的内部结构框图。如图所示,该可变长度编码器备有可变长度码表1601、电平变换器1602、比较器1603、固定长度编码器1604、以及开关1605,输入输入事件和量化幅度,输出编码结果。
可变长度码表1601是图19~图22所示的表。电平变换器1602输入量化幅度和参照事件,与量化幅度对应地变换参照事件所具有的电平值,生成变换参照事件。比较器1603进行输入事件和变换参照事件的比较处理,对应于比较结果输出控制信号。固定长度编码器1604在输入了输入事件时,对它进行固定编码处理,输出编码结果。开关1605对应于来自比较器1603的输出进行切换,将来自可变长度码表1601的输出、或来自固定长度编码器1604的输出作为编码结果输出。
以下对应于图15中的流程,说明这样构成的可变长度编码器的工作情况。在图15所示的流程的步骤1502中,如果量化幅度和输入事件(第j个)被输入该可变长度编码器(图2中的211)中,量化幅度由信号线1611输入电平变换器1602,另外输入事件由信号线1612输入比较器1603。在图15所示的流程的步骤1503中,电平变换器1602由信号线1613从可变长度码表取得参照事件(第i个),用输入的量化幅度对该参照事件所具有的电平值进行变换处理,将所获得的变换参照事件输出给比较器1603。
在图15所示的流程的步骤1505中,由比较器1603进行比较处理和判断处理。比较器1603进行输入的输入事件和变换参照事件的比较处理,判断是否一致。在断定为一致的情况下,比较器1603经由信号线1615将控制信号送给可变长度码表1601,以便输出与该第i个参照事件对应的码,同时通过信号线1617将控制信号送给开关1605,以使来自开关1605的输出是来自可变长度码表1601的码。于是,在步骤1505中的判断结果为“一致”的情况下,在图15所示的流程的步骤1506中,由开关1605的输出信号线1620输出可变长度码。
另一方面,在比较器1603的比较处理中,在不一致的情况下,利用经由信号线1615的控制信号,下一个(第i+1个)参照事件从可变长度码表1601被输入电平变换器1602。在图15的流程中,在步骤1512中i增加后,执行从步骤1503开始的反复过程。
在步骤1507的判断中,在确认了比较处理已进行到了可变长度码表的最后而结束的情况下,比较器1603利用信号线1618将该输入事件(第j个)输出给固定长度编码器1604,同时通过信号线1617还将控制信号送给开关1605,以便使来自开关1605的输出是来自固定长度编码器1604的码。
在图15所示的流程的步骤1508中,固定长度编码器1604对所输入的输入事件进行编码处理,将所获得的编码结果通过信号线1619输出给开关1605。利用来自比较器1603的控制信号,固定长度码从开关1605经过信号线1620输出。
在从信号线1620输出后,从信号线1612输入下一个输入事件,反复进行对图15的流程中的输入事件的处理。
这样,进行本发明的实施例6的图象编码,而在图4所示的图象解码装置中对通过这样的图象编码获得的编码数据进行解码处理。在本实施例6的图象解码处理中,只由图4所示的可变长度解码器408进行处理,这一点与实施例1不同,所以以下根据图17说明可变长度解码器408的解码处理的工作情况。
如图17所示,该可变长度解码器备有可变长度码表1701、比较器1702、电平逆变换器1703、固定长度解码器1704、以及开关1705,输入输入可变长度码和量化幅度,输出解码处理的再生结果。
可变长度码表1701是图19~图22所示的表。比较器1702进行输入可变长度码和参照可变长度码的比较处理,对应于比较结果输出控制信号。电平逆变换器1703输入量化幅度和参照事件,对应于量化幅度变换参照事件所具有的电平值,生成变换参照事件。固定长度解码器1704在输入了输入可变长度码后,对它进行固定长度解码处理,输出解码结果。开关1705对应于来自比较器1702的输出进行切换,作为再生结果输出来自可变长度码表1701的输出或来自固定长度解码器1704的输出。
以下说明这样构成的可变长度解码器的工作情况。如果量化幅度和输入可变长度码被输入该可变长度解码器(图4中的408),则量化幅度由信号线1711输入电平逆变换器1703,另外输入的可变长度码由信号线1712输入比较器1702。比较器1702经由信号线1713从可变长度码表1701取得参照可变长度码,进行输入可变长度码和参照可变长度码的比较。
在通过比较断定为一致的情况下,比较器1702经由信号线1712将控制信号送给可变长度码表1701,以便输出对应于该参照可变长度码的参照事件,同时通过信号线1714还将控制信号送给开关1705,以便使来自开关1705的输出是来自可变长度码表1701的码。
参照事件从可变长度码表经由信号线1715被输入电平逆变换器1703,得到变换处理。电平逆变换器1703对应于参照事件所具有的电平,根据量化幅度,进行编码时所进行的变换处理的逆处理。在本实施例6中,将对应于量化幅度规定的偏置值加到参照事件所具有的电平值中。如下使用:量化幅度为1或2时,偏置值=5,量化幅度为3或4时,偏置值=4,量化幅度为5或6时,偏置值=3,量化幅度为7或8时,偏置值=2,量化幅度为9或10时,偏置值=1,量化幅度为11以上时,偏置值=0。例如,假定输入可变长度码为“0101000”,作为参照事件从图19所示的表取得(Last,Run,Level)=(0、1、2)。在输入了该参照事件的电平逆变换器1703中,假定所输入的量化幅度为4,便在参照事件所具有的电平上加4,将所获得的结果(0、1、6)由信号线1716输出给开关1705。然后,对应于来自比较器1702的控制信号,开关1705将该结果作为再生结果由信号线1720输出。因此,在断定为“一致”的情况下,由开关1705的输出信号线1720输出可变长度码。
另一方面,在比较器1702的比较处理中,在未找到一致的参照可变长度码的情况下,比较器1703将该输入可变长度码由信号线1718输出给固定长度编码器1704,同时将通过信号线1717的控制信号送给开关1705,以便使来自开关1705的输出是来自固定长度编码器1704的码。因此,由开关1705的输出信号线1720输出固定长度编码的结果。
这样,如果采用本实施例6的图象编码方法,通过对可变长度编码表中所具有的参照事件进行图15中的步骤1502所示的变换处理,与对输入事件进行同等的变换处理的实施例1等一样,能提高可变长度编码的实施率、以及短码的分配率,能谋求提高编码效率。
另外,如果采用本实施例6的图象编码装置,则由于备有具有图16所示的内部结构的执行上述这样的编码方法的可变长度编码器211,所以在编码器203中的压缩编码的压缩率为高压缩率的情况下,或者在低压缩率的情况下,都能使用同一个可变长度码表,能获得压缩率好的编码结果。
另外,如果采用本实施例6的图象解码方法及图象解码装置,则能对应于如上获得的编码结果,进行适当的解码处理,获得再生图象。
另外,在本实施例6中,作为对参照事件的变换处理,虽然说明了采用偏置值的加法运算的方法,但不受此限,也可以采用其它的函数。例如,可以采用根据量化幅度改变加在电平值上的倍数,或采用二次函数,或变更电平的动态范围的方法,也能获得上述的效率。
另外在实施例1等中,说明了对输入事件的变换处理可以采用进行对运算值的变换处理的方来代替对参照事件的电平的变换处理。
以上说明了本发明的实施例,但任何一个实施例中用流程图示出的处理顺序都是一个例子,也可以用其它的处理顺序执行同样的编码解码方法。
另外,本发明的实施例1~6所示的图象编码装置及图象解码装置将进行各个实施例所示的图象编码方法或图象解码方法的图象编码程序或图象解码程序记录在记录媒体上,通过在有个人计算机、工作站等的计算机***中执行该记录的程序实现图象的编码和解码。作为记录媒体可以使用软盘、CD-ROM等光盘等能记录程序的记录媒体。
如上所述,如果采用本发明的图象编码方法及图象编码装置,将通过对数字图象数据进行DCT、波形编码等的处理而压缩编码后的数据作为处理对象,对于其压缩度不同范围的对象灵活使用一个可变长度码表,就能进行压缩率高的编码处理。
另外,如果采用本发明的图象解码方法及图象解码装置,对上述那样有效的编码处理过的编码结果适当地进行解码处理,能获得再生图象。
另外,如果采用本发明的图象编码程序记录媒体及图象解码程序记录媒体,则通过在计算机***中执行该记录的程序,灵活使用装置资源,能实现能获得高压缩率的编码结果的图象编码装置、以及能适当地处理这样的编码结果的图象解码装置。