CN1860796B - 编码方法、编码装置、解码方法、及解码装置 - Google Patents
编码方法、编码装置、解码方法、及解码装置 Download PDFInfo
- Publication number
- CN1860796B CN1860796B CN2005800010924A CN200580001092A CN1860796B CN 1860796 B CN1860796 B CN 1860796B CN 2005800010924 A CN2005800010924 A CN 2005800010924A CN 200580001092 A CN200580001092 A CN 200580001092A CN 1860796 B CN1860796 B CN 1860796B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- sub
- code
- nonzero coefficient
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
子块生成电路(52)将8×8正交变换的系数分成子块数据。2维可逆编码电路(54)通过选择变换表数据编码关于远离DC分量Total Coeff的子块的非零系数数量(number-of-non-zero)的数据,其中变换表数据用来将短位长度的编码代码分配给关于指示0的非零系数数量的数据。
Description
技术领域
本发明涉及用于编码正交变换系数的编码方法、编码装置及其程序,用于解码正交变换系数的解码方法、解码装置及其程序。
背景技术
近些年来,基于MPEG(运动图像专家组)和其他通过离散余弦变换或其他正交变换及运动补偿来压缩的方法的装置(其中将图像数据作为数字处理并且使用图像信息特有的冗余来高效传输和累积信息)已经广泛用于广播台等发布信息和普通家庭接收信息。
MPEG2和MPEG4方法之后有称为MPEG4/AVC(高级视频编码)的编码方法提议。
在MPEG4/AVC方法的编码装置中,对要以具有例如4×4大小的块数据为单位进行编码的图像数据执行正交变换来,并且指示由此获得的块数据的变换系数中包含的非零变换系数数量的非零系数数量数据经受基于多个对应数据(VLC表)的可变长度编码,每个对应数据将42个非零系数数量数据的值与对应值规定为其编码代码。
这里,规定多个对应数据使得指示“0”的非零系数数量数据的位长度彼此不同,并且当指示“0”的非零系数数量数据的位长度变得更短时,在对应数据中使用的编码代码的最大位长度变长。
此外,在上述编码装置中,通过选择对应数据提高了编码效率,其中具有较长位长度的编码代码被分配给指示“0”的非零系数数量数据,而除“0”和“1”之外的可变系数数量在要编码的4×4块数据的块数据的变换系数中增加。
发明内容
本发明要解决的问题
然而在上述编码装置中,正交变换有时是以具有8×8块大小的块数据(8×8块数据)为单位执行的。
然而,上述现有技术的对应数据仅仅以42的数量对应于非零系数数量数据,而不能获得通过对8×8块数据执行正交变换而获得的以82的数量对非零系数数量数据的编码。
考虑上述情况做出了本发明,并且提供用于对变换系数的非零系数数量数据执行编码的编码方法、编码装置和程序,该数据是通过根据遵从第一块大小的对应数据对具有第二块大小的图像块数据的正交变换获得的,其中第二块大小是第一块大小的倍数。
解决问题的手段
为了克服上述现有技术的缺点并且实现上述目的,根据本发明的第一方面,提供用于利用关于非零系数数量数据的对应数据执行可变长度编码的编码方法,所述非零系数数量数据指示在通过对图像块数据执行正交变换得到的多个变换系数中的非零变换系数数量,该方法包括:当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,第一步骤,用于在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数;第二步骤,用于根据在所述第一步骤中分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据;和第三步骤,用于通过使用所述对应数据,确定要分配给在所述第二步骤中为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
根据本发明的第二方面,提供用于利用关于非零系数数量数据的对应数据执行可变长度编码的编码装置,所述非零系数数量数据指示在通过对图像块数据执行正交变换得到的多个变换系数中的非零变换系数数量,当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,该装置包括:分配设备,用于在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数;生成设备,用于根据所述分配设备分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据;和编码设备,用于通过使用所述对应数据,确定分配给所述生成设备为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
本发明的第二方面的操作如下。
分配设备在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数。
接着,生成设备根据所述分配设备分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据。
接着,编码设备通过使用所述对应数据,确定分配给所述生成设备为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
根据本发明的第三方面,提供计算机执行的程序,用来在通过对图像块数据执行正交变换得到的多个变换系数中、通过使用指示非零变换系数数量的非零系数数量数据的对应数据来执行可变长度编码,其中所述计算机执行:当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,第一过程,用于在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数;第二过程,用于根据在所述第一过程中分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据;和第三过程,用于通过使用所述对应数据,确定要分配给在所述第二过程中为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
根据本发明的第四方面,提供解码方法,用于根据对应于变换系数的频率,将通过以具有第二块大小的块数据为单位对要编码的图像数据执行正交变换得到的变换系数分配给多个子块数据,其中第二块大小是第一块大小的倍数;为所述多个子块数据的每个生成指示构成子块数据的变换系数中的非零变换系数数量的非零系数数量数据;以及当通过使用预定的对应数据得到所述非零系数数量数据的编码代码时,使用所述对应数据从所述编码代码中取出所述非零系数数量数据,该方法包括:当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,第一步骤,用于通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和所述指示“0”的非零系数数量数据关于该直流分量侧上的所述子块数据相关;第二步骤,用于根据在所述第一步骤中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数;和第三步骤,用于重布置在所述第二步骤中生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
根据本发明的第五方面,提供解码装置,用于根据对应于变换系数的频率,将通过以具有第二块大小的块数据为单位对要编码的图像数据执行正交变换得到的变换系数分配给多个子块数据,其中第二块大小是第一块大小的倍数;为所述多个子块数据的每个生成指示构成子块数据的变换系数中的非零变换系数数量的非零系数数量数据;以及当通过使用预定的对应数据得到所述非零系数数量数据的编码代码时,使用所述对应数据从所述编码代码中取出所述非零系数数量数据,当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,该装置包括:确定设备,用于通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中随着指示“0”的非零系数数量数据的位长度变短,与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和所述指示“0”的非零系数数量数据关于该子块数据相关;生成设备,用于根据在所述确定设备中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数;和取出设备,用于重布置在所述生成设备生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
本发明的第五方面的操作如下。
确定设备通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和当指示“0”的非零系数数量数据的位长度其中时,所述指示“0”的非零系数数量数据关于该子块数据相关。
接着,生成设备根据在所述确定设备中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数。
接着,取出设备重布置在所述生成设备生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
根据本发明的第六方面,提供计算机执行的程序,用来根据对应于变换系数的频率,将通过以具有第二块大小的块数据为单位对要编码的图像数据执行正交变换得到的变换系数分配给多个子块数据,其中第二块大小是第一块大小的倍数;为所述多个子块数据的每个生成指示构成子块数据的变换系数中的非零变换系数数量的非零系数数量数据;以及当通过使用预定的对应数据得到所述非零系数数量数据的编码代码时,使用所述对应数据从所述编码代码中取出所述非零系数数量数据,所述计算机执行:当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,第一过程,用于通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和所述指示“0”的非零系数数量数据关于该子块数据相关;第二过程,用于根据在所述第一过程中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数;和第三过程,用于重布置在所述第二过程中生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
发明效果
根据本发明,可以提供用于根据遵从第一块大小的对应数据、对通过对具有第二块大小(是第一块大小的倍数)的图像块数据执行正交变换得到的变换系数的非零系数数量数据编码的编码方法、编码装置和程序。
此外,根据本发明,可以提供用于解码通过上述编码得到的编码代码的解码方法、解码装置和程序。
附图说明
图1是根据本发明第一实施例的通信系统的配置图。
图2是根据图1所示的编码装置的功能方框图。
图3是根据图2所示的可逆编码电路的配置图。
图4A和4B是图解图3所示的扫描电路扫描4×4块数据的正交变换的顺序的视图。
图5是图解图3所示的扫描电路扫描8×8块数据的正交变换的顺序的视图。
图6是图解游程等级(run level)计算电路生成4×4块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOne”的方法的视图。
图7A和7B是图解图3所示的二维可逆编码电路对4×4块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOne”执行编码的方法的视图。
图8是图解图3所示的二维可逆编码电路对8×8块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOne”执行编码的方法的视图。
图9是图解图3所示的二维可逆编码电路对8×8块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOne”执行编码的方法的视图。
图10是图解图3所示的可逆编码电路的操作示例的视图。
图11是图1所示的解码装置的配置图。
图12是图11所示的可逆编码电路的配置图。
标记列表
1…通信系统,2…编码装置,3…解码装置,22…A/D转换电路,23…屏幕重布置电路,24…计算电路,25…正交变换电路,26…量化电路,27…可逆编码电路,28…缓冲存储器,29…逆量化电路,30…逆正交变换电路,31…帧存储器,32…速率控制电路,33…加法电路,41…内预测电路,42…运动预测补偿电路,45…正交变换大小确定电路,51…扫描电路,52…子块生成电路,53…游程等级计算电路,54…二维可逆编码电路,55…等级子块生成电路,56…游程编码电路,57…复用电路,81…缓冲存储器,82…可逆编码电路,83…逆量化电路,84…逆正交变换电路,85…加法电路,86…帧存储器,87…屏幕重布置缓冲区,88…D/A转换电路,110…分离电路,111…二维可逆解码电路,112…等级解码电路,113…游程解码电路,114…变换系数恢复电路,115…块恢复电路,116…扫描变换电路。
具体实施方式
下面将说明根据本发明实施例的编码装置。
首先将说明本实施例的部件与本发明的部件的对应关系。
本实施例中4×4块大小对应于本发明中的第一块大小,而本实施例中8×8块大小对应于本发明中的第二块大小。
此外,本实施例中的非零系数数量数据“TotalCoeff”对应于本发明中的非零系数数量数据。
此外,在表1右侧的数字对应于本发明的编码代码。
表1所示的变换表数据TRNa1、2、3和4对应于本发明中的对应数据。
此外,图8所示的子块数据SB1、SB2、SB3和SB4对应于本发明中的子块数据。
图10中的步骤ST17和ST18对应于本发明第一方面的第一步骤,步骤ST19对应于第二步骤,而步骤ST21和ST22对应于第三步骤。
此外,图10中的步骤ST13对应于本发明第一方面的第四步骤,步骤ST14和ST15对应于第五步骤,而步骤ST16对应于第六步骤。
图3所示的扫描变换电路51和子块生成电路52对应于本发明第二方面的分配装置。
此外,图3所示的游程等级计算电路53对应于本发明第二方面的生成装置,二维可逆编码电路54对应于本发明第二方面的编码装置。
图12所示的二维可逆编码电路111对应于本发明第五方面的确定装置,变换系数恢复电路114对应于本发明第五方面的生成装置,块恢复电路115对应于本发明第五方面的取出装置。
下面将说明本发明实施例中的通信系统1。
首先,将说明本实施例的部件与本发明部件的对应。
图1是本实施例的通信系统1的概念图。
如图1所示,通信系统1具有在发送侧上提供的编码装置2和在接收侧上提供的解码装置3。
编码装置2对应于本发明的数据处理装置和编码装置。
在通信系统1中,在发送侧上的编码装置2中,由正交变换(如离散余弦变换和Karhunen-Loeve变换)压缩帧图像数据(位流),并且生成运动补偿,调制然后通过传输介质(如卫星广播电波、有线TV网络、电话线网络和蜂窝电话网络)发送。
在接收侧上,在解调在解码装置3中接收到的图像信号后,通过正交变换的逆变换展开帧图像数据,并且生成和使用上述调制的运动补偿。
注意,传输介质可以是光盘、磁盘、半导体存储器和其他记录介质。
下面将说明图1中的编码装置2。
图2是图1的编码装置2的总体配置图。
如图2所示,编码装置2包括例如A/D变换电路22、屏幕重布置电路23、计算电路24、正交变换电路25、量化电路26、可逆编码电路27、缓冲存储器28、逆量化电路29、逆正交变换电路30、帧存储器31、速率控制电路32、加法电路33、内预测电路41、运动预测补偿电路42和正交变换大小确定电路45。
下面将说明编码装置2的部件。
[A/D转换电路22]
A/D转换电路22将由模拟亮度信号Y和色差信号Pb和Pr组成的输入原始图像信号S10转换成数字画面数据S22,并将其输出到屏幕重布置电路23。
[屏幕重布置电路23]
屏幕重布置电路23将从A/D转换电路22输入的画面数据S22中的帧数据重布置成按照根据由帧数据的画面类型I、P和B构成的GOP(画面组)结构的编码顺序,以便获得原始图像数据S23,并将其输出到计算电路24、运动预测补偿电路42和内预测电路41。
[计算电路24]
计算电路24生成指示原始图像数据S23和从内预测电路41或运动预测补偿电路42输入的预测图像数据之间的差的图像数据S24,并将其输出到正交变换电路25。
[正交变换电路25]
正交变换电路25对图像数据S24执行正交变换,如离散余弦变换(DCT)和Karhunen-Loeve变换,来生成指示变换系数的图像数据(例如,DCT系数)S25,并将其输出到量化电路26。
正交变换电路25以由从正交变换大小确定电路45输入的正交变换大小信号TRSIZE所指定的正交变换大小,对从计算电路24输出的图像数据S24执行正交变换,以生成指示变换系数的图像数据S25。
在本实施例中,使用4×4和8×8的块大小作为正交变换大小。
[量化电路26]
量化电路26基于从正交变换大小确定电路45输入的正交变换大小信号TRSIZE和从速率控制电路32输入的量化级QS,对图像数据S25(量化前的变换系数)执行量化,以便生成指示量化后的变换系数的图像数据S26,并将其输出到可逆编码电路27和逆量化电路29。
例如,当正交变换电路25选择4×4和8×8中的一个并且执行到整数精度的正交变换时,在量化电路26中归一化处理中使用的适合系数在4×4和8×8之间是不同。因此,量化电路26基于正交变换大小信号TRSIZE所指示的正交变换大小纠正从速率控制电路32输入的量化级QS,并且使用经纠正的量化级量化图像数据S25。
[可逆编码电路27]
可逆编码电路27将通过对图像数据S26执行可变长度编码获得的图像数据存储在缓冲存储器28中。
此时,可逆编码电路27将从运动预测补偿电路42输入的运动向量MV或其差动运动向量、参考图像数据的标识数据以及从内预测电路41输入的内预测模式存储在头数据等中。
可逆编码电路27根据相应的4×4块大小和8×8块大小的正交变换执行可逆编码处理。
将在稍后详细描述可逆编码电路27的编码处理。
[缓冲存储器28]
存储在缓冲存储器28中的图像数据经过调制等,并且作为图像数据S2发送。
图像数据S2由解码装置3解码,这将在稍后描述。
[逆量化电路29]
逆量化电路29对图像数据S26执行对应于量化电路26的量化的逆量化,产生由此获得的数据,并将其输出到逆正交变换电路30。
[逆正交变换电路30]
逆正交变换电路30对从逆量化电路29输入的数据执行正交变换电路25的正交变换的逆变换,来生成图像数据并将其输出到加法电路33。
[加法电路33]
加法电路33将从逆正交变换电路30输入的(解码的)图像数据与从选择电路44输入的预测图像数据PI相加来产生参考(重构的)画面数据R_PIC,并将其写入帧存储器31中。
注意,在加法电路33和帧存储器31之间可以提供去块(de-block)滤波器。去块滤波器将通过消除从加法电路33输入的重构图像数据中的块畸变获得的图像数据作为参考画面数据R_PIC写入帧存储器31中。
[速率控制电路32]
速率控制电路32基于从缓冲存储器28读取的图像数据生成量化级QS,并将其输出到量化电路26。
[内预测电路41]
内预测电路41确定在要经受内编码的宏块中给出最小残留误差的内预测的模式和预测块的块大小。
内预测电路41使用4×4或16×16像素作为块大小。
当选择内预测时,内预测电路41将经过内预测的预测图像数据输出到计算电路24。
[运动预测补偿电路42]
运动预测补偿电路42对已经编码、部分解码并记录在帧存储器31中的图像执行运动预测,以便确定给出最小残留误差的运动向量和运动补偿的块大小。
运动预测补偿电路42使用16×16、16×8、8×16、8×8、8×4、4×8和4×4像素作为块大小。
当选择内预测时,运动预测补偿电路42输出经内预测的预测图像数据到计算电路24。
[正交变换大小确定电路45]
正交变换大小确定电路45根据内预测电路41或运动预测补偿电路42(选择预测图像的电路)中最终确定(选择)的块大小,确定正交变换大小,并且将指示上述的正交变换大小信号TRSIZE输出到正交变换电路25、量化电路26和可逆编码电路27。
特别地,当内预测电路41最终选择8×8像素的块大小时,正交变换大小确定电路45生成指示8×8像素的正交变换大小信号TRSIZE,而当内预测电路41最终选择8×8以外的块大小时,生成指示4×4像素的正交变换大小信号TRSIZE。
此外,当运动预测补偿电路42最终选择8×8像素或更大的块大小时,正交变换大小确定电路45生成指示8×8像素的正交变换大小信号TRSIZE,而当运动预测补偿电路42最终选择小于8×8像素的块大小时,正生成指示4×4像素的正交变换大小信号TRSIZE。
在本实施例中,正交变换大小确定电路45生成指示4×4或8×8的块大小的正交变换大小信号TRSIZE。
下面将详细说明在可逆编码电路27中的图像数据S25的可变长度编码。
图3是图2所示的可逆编码电路27的配置图。
如图3所示,可逆编码电路27具有用于对图像数据S25执行可变长度编码的配置,并且包括例如,扫描变换电路51、子块生成电路52、游程等级计算电路53、二维可逆编码电路54、等级编码电路55、游程编码电路56和复用电路57。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,扫描变换电路51以图4A所示的数字次序(在帧编码的情况下)或图4B所示的数字次序(在场编码的情况下)扫描构成图像数据S26的4×4块数据中的16个变换系数,并按扫描的次序将其输出到子块生成电路52。
另一方面,当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,扫描变换电路51以图5所示的数字次序扫描构成图像数据S26的4×4块数据中的64个变换系数,并按扫描的次序将其输出到子块生成电路52。
在图5中,左上部分指示直流DC分量而右下部分对应于高频分量。
此外,在图5中,水平方向指示水平频率分量,而垂直方向指示垂直频率分量。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,子块生成电路52将从扫描变换电路51连续输入的构成4×4块数据的16个变换系数依次输入到游程等级计算电路53。
此外,当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,子块生成电路52在从扫描变换电路51输入的构成8×8块数据的64个变换系数中,确定第一到第16输入的变换系数为4×4子块数据SB 1的分量,第17到第32输入的变换系数为4×4子块数据SB2的分量,第33到第48输入的变换系数为4×4子块数据SB3的分量,第49到第64输入的变换系数为4×4子块数据SB4的分量,并且将它们输出到游程等级计算电路53。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,游程等级计算电路53对从子块生成电路52连续输入的一系列16个变换系数生成等级数据“level”、游程数据“run_before”、游程总量数据“total_zero”、非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”。
这里,等级数据“level”指示4×4块数据中的各个变换系数(除了“0”和“1”之外的变换系数)的值,在图6的情况下为“-3”、“+8”、“+11”、“-4”和“+23”。
游程数据“run_before”指示在4×4块数据中的非零系数之前的连零系数(变换系数为0)的数量,在图6的情况下为“1”、“2”、“0”、“2”、“0”和“0”。
游程总量数据“total_zero”指示在4×4块数据中的非零系数之前的零系数的数量,在图6的情况下为“5”。
非零系数数量数据“TotalCoeff”指示在4×4块数据中的非零系数的数量,在图6的情况下为“7”。
最终连续数量数据“TrailingOnes”指示在4×4块数据中连续的绝对值为1的变换系数的数量,在图6的情况下为“2”。
编码数据“trailing_ones_sing_flag”指示在4×4块数据的结尾处连续的绝对值为“1”的变换系数的代码,在图6的情况下为“-”和“+”。
游程等级计算电路53将游程数据“run_before”和游程总量数据“total_zero”输出到游程编码电路56。
游程等级计算电路53将等级数据“level”输出到等级编码单元55。
游程等级计算电路53将非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”输出到二维可逆编码电路54。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,游程等级计算电路53分别对从子块生成电路52输入的4×4子块SB1、SB2、SB3和SB4执行与上述4×4的情况相同的处理,来生成等级数据“level”、游程数据“run_before”、游程总量数据“total_zero”、非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”。
二维可逆编码电路54对非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”执行可变长度编码。
下面将说明二维可逆编码电路54对非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码方法。
首先,将说明正交变换大小信号TRSIZE指示4×4的情况。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,二维可逆编码电路54根据要处理的4×4块数据周围的4×4块数据中的变换系数当中除了“0”和“1”(或“0”)之外的变换系数的数量,以及根据下面的总变换表数据TRNa,生成(取出)块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码。
[表1]
总变换表数据TRNa
上面表1中的总变换表数据TRNa定义五个变换表数据TRNa1、2、3、4和5。
变换表数据TRNa1、2、3和4具有下面的特征。
每个变换表数据TRNa1、2、3和4规定非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码。
这里,规定了变换表数据TRNa1、2、3和4,从而指示“0”的非零系数数量数据“TotalCoeff”的位长度彼此不同,并且编码代码的最大位长度随着指示“0”的非零系数数量数据“TotalCoeff”的位长度变短而变长。
当4×4块数据位于复杂的图像区域时,非零系数数量数据“TotalCoeff”为“0”的可能性很小,因此具有这样的特性:值分散在从0到15的宽范围中。
此外,当4×4块数据位于改变很小的平坦图像区域时,非零系数数量数据“TotalCoeff”为“0”的可能性很高,因此具有这样的特性:值几乎不变高。
因此,通过规定如上所述那样的变换表数据TRNa1、2、3和4,对复杂图像区域中的4×4块数据选择变换表数据以提高整个编码效率,在所述变换表中要分配给指示“0”的非零系数数量数据“TotalCoeff”的编码代码的位长度长,但编码代码的最大位长度短。
另一方面,对平坦图像区域中的4×4块数据选择变换表数据以提高整个编码效率,在所述变换表中编码代码的最大位长度长,但要分配给指示“0”的非零系数数量数据“TotalCoeff”的编码代码的位长度短。
此外,对于其中最终连续数量数据“TrailingOnes”不同但非零系数数量数据“TotalCoeff”相同的多个集合,进行规定以使得编码代码的位长度随着最终连续数量数据“TrailingOnes”变大而变得相同或更长。
如图7A和图7B所示,二维可逆编码电路54确定在要处理的4×4块数据C的左侧的、要显示的相邻4×4块数据A中“0”和“1”(或“0”)之外的变换系数的数量为“nA”,以及确定在要处理的4×4块数据C的上方的、要显示的相邻4×4块数据A中“0”和“1”(或“0”)之外的变换系数的数量为“nB”。
然后,二维可逆编码电路54由“nC=(nA+nB+1)>>1”生成索引数据“nC”。
其中,“>>1”指示向右移位“1”。
二维可逆编码电路54根据索引数据“nC”从表1所示的总变换表数据TRNa规定的变换表数据TRNa1、2、3、4和5中选择一个。
当nA=2且nB=3时,nC=(2+3+1)>>1=3成立,并且二维可逆编码电路54选择变换表数据TRNa2。
二维可逆编码电路54使用变换表数据TRNa5来编码色差信号的DC值。
然后,二维可逆编码电路54通过使用所选的变换表数据TRNa1、2、3、4和5取出上面4×4块数据中的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码,并且将其输出到复用电路57。
接着,将说明正交变换大小信号TRSIZE指示8×8的情况。
子块生成电路52生成的四个子块数据SB1、SB2、SB3和SB4可以如图8所示。
在图8中,矩形的左上部分指示低频分量,而右下部分指示高频分量。
因此,子块数据SB1中存在非零系数的可能性相对较高,而在子块数据SB4中几乎所有系数为0的可能性很高。
因此,为了获得高的编码效率,应当在子块数据SB4中为值“0”分配具有短编码长度的编码代码,相反,应当在子块数据SB1中为较大值分配具有短编码长度的编码代码。
这里,当正交变换大小信号TRSIZE指示8×8时,基于下面所述的(方法1)到(方法4)中的任一种生成索引数据“nC”。
注意,生成索引数据“nC”的方法与解码装置3中的相同。
(方法1)
当假设要处理图9所示的8×8块数据C时,二维可逆编码电路54确定子块SB 1的索引数据“nC”是“8”,子块SB2和SB3的索引数据“nC”是“4”,并且子块SB4的索引数据“nC”是“0”。
因此,二维可逆编码电路54使用表1所示的变换表数据TRNa4来编码子块SB1,使用变换表数据TRNa3来编码子块SB2和SB3,以及使用变换表数据TRNa1来编码子块SB4。
(方法2)
当假设要处理图9所示的8×8块数据C时,二维可逆编码电路54确定子块SB1的索引数据“nC”是“8”,子块SB2和SB3的索引数据“nC”是“2”,并且子块SB4的索引数据“nC”是“0”。
因此,二维可逆编码电路54使用表1所示的变换表数据TRNa4来编码子块SB1,使用变换表数据TRNa2来编码子块SB2和SB3,以及使用变换表数据TRNa1来编码子块SB4。
(方法3)
当假设要处理图9所示的8×8块数据C时,二维可逆编码电路54确定子块SB 1的索引数据“nC”是“4”,子块SB2和SB3的索引数据“nC”是“2”,而子块SB4的索引数据“nC”是“0”。
因此,二维可逆编码电路54使用表1所示的变换表数据TRNa3来编码子块SB1,使用变换表数据TRNa2来编码子块SB2和SB3,以及使用变换表数据TRNa1来编码子块SB4。
(方法4)
当图9所示的要处理的块数据C的左侧和上方的相邻块数据A和B由8×8正交变换时,二维可逆编码电路54通过使用块数据A和B中相同位置处的子块数据SB1、SB2、SB3和SB4的“nA”和“nB”生成块数据C中的子块数据SB1、SB2、SB3和SB4的索引数据“nC”。
例如,二维可逆编码电路54使用块数据A中的子块数据SB1的“nA”和块数据B中的子块数据SB1的“nB”,由“nC=(nA+nB+1)>>1”生成块数据C中的子块数据SB 1的索引数据“nC”。
此外,当块数据A和B中的一个用8×8正交变换,而另一个用4×4正交变换时,二维可逆编码电路54确定8×8正交变换中的相同位置处的子块数据SB1、SB2、SB3和SB4中除了“0”和“1”(或“0”)之外的系数数量为索引数据“nC”。
例如,当块数据A为8×8而块数据B为4×4时,二维可逆编码电路54确定块数据A中除了“0”和“1”(或“0”)之外的系数数量“nA”为块数据C中子块数据SB 1的索引数据“nC”。
此外,当块数据A和B都是4×4时,二维可逆编码电路54使用块数据C中的子块数据SB1、SB2、SB3和SB4的相同位置处的块A和B中的子块数据SB1、SB2、SB3和SB4的“nA”和“nB”,由“nC=(nA+nB+1)>>1”生成块数据C中的子块数据SB1、SB2、SB3和SB4的索引数据“nC”。
注意,生成索引数据“nC”的上述方法仅仅是例子,并且只要该方法使用子块数据SB1、SB2、SB3和SB4的“nA”和“nB”来生成块数据C中的子块数据SB1、SB2、SB3和SB4的索引数据“nC”,它并不受到特别限制。
二维可逆编码电路54通过使用根据其对应的索引数据“nC”选择的变换表数据TRNa1到5变换块数据C中的子块数据SB1、SB2、SB3和SB4。
注意,当在方法4中块数据A和B都是4×4时,二维可逆编码电路54可以像(方法1)、(方法2)和(方法3)中任一个那样,根据其块数据SB1、SB2、SB3和SB4的位置确定块数据C中的子块数据SB1、SB2、SB3和SB4的索引数据“nC”。
如上所述,当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,二维可逆编码电路54对于由子块生成电路52从要处理的8×8块数据生成的四个子块数据SB1、SB2、SB3和SB4确定或生成索引数据“nC”。
然后,二维可逆编码电路54根据上面确定或生成的索引数据“nC”从表1所示的变换表数据TRNa1到5中选择一个。
二维可逆编码电路54使用所选的变换表数据TRNa1到5来取出要处理的块数据的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码。
下面,将说明确定在图3所示的可逆编码电路27中从图像数据S26中的每个块数据获得的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码的操作示例。
图10是说明该操作示例的流程图。
下面,将说明图10中的每个步骤。
步骤ST11:
当从图2所示的正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,图3所示的可逆编码电路27前进到步骤ST17,然后执行步骤ST17到ST22中的处理。
另一方面,当正交变换大小信号TRSIZE指示4×4时,可逆编码电路27前进到步骤ST12,然后执行步骤ST12到ST16中的处理。
步骤ST12:
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,扫描变换电路51在构成图像数据S26的4×4块大小中(在帧编码时以图4A所示的数字顺序,或者在场编码时以图4B所示的数字顺序)扫描16个变换系数,并且以扫描的次序将其输出到子块生成电路52。
子块生成电路52将从扫描变换电路51输入的变换系数按原样输出到游程等级计算电路53。
步骤ST13:
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,游程等级计算电路53对于从子块生成电路52连续输入的一系列16个变换系数生成等级数据“level”、游程数据“run_before”、游程总量数据“total_zero”、非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”。
游程等级计算电路53将非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”输出到二维可逆编码电路54。
步骤ST14:
如图7A和图7B所示,二维可逆编码电路54确定在要处理的4×4块数据C的左侧的、要显示的相邻4×4块数据A中“0”和“1”(或“0”)之外的变换系数的数量为“nA”,以及确定在要处理的4×4块数据C的上方的、要显示的相邻4×4块数据A中“0”和“1”(或“0”)之外的变换系数的数量为“nB”。
然后,二维可逆编码电路54由“nC=(nA+nB+1)>>1”生成索引数据“nC”。
步骤ST15:
二维可逆编码电路54根据在步骤ST14生成的索引数据“nC”,选择表1所示的变换表数据TRNa1到5中的一个。
步骤ST16:
二维可逆编码电路54通过使用在步骤ST15所选的变换表数据TRNa1、2、3、4和5,取出在步骤ST13中输入的4×4块数据中的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码,并且将其输出到复用电路57。
步骤ST17:
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,扫描变换电路51在构成图像数据S26的8×8块大小中以图5所示的数字顺序扫描64个变换系数,并且按扫描的次序将其输出到子块生成电路52。
步骤ST18:
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示4×4时,子块生成电路52将构成从扫描变换电路51连续输入的4×4块数据的16个变换系数依次输出到游程等级计算电路53。
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,子块生成电路52在从扫描变换电路51输入的构成8×8块数据的64个变换系数中,确定第一到第16输入的变换系数为4×4子块数据SB1的分量,第17到第32输入的变换系数为4×4子块数据SB2的分量,第33到第48输入的变换系数为4×4子块数据SB3的分量,第49到第64输入的变换系数为4×4子块数据SB4的分量,并且将这些输出到游程等级计算电路53。
步骤ST19:
当从正交变换大小确定电路45输入的正交变换大小信号TRSIZE指示8×8时,游程等级计算电路53执行与上述4×4的情况相同的处理,以对各个从子块生成电路52输入的4×4子块数据SB1、SB2、SB3和SB4生成等级数据“level”、游程数据“run_before”、游程总量数据“total_zero”、非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”。
游程等级计算电路53将非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”输出到二维可逆编码电路54。
步骤ST20:
二维可逆编码电路54通过按照上述(方法1)到(方法5)中的任一种方法为构成要处理的8×8块数据的各个子块数据SB1、SB2、SB3和SB4确定或生成索引数据“nC”。
步骤ST21:
二维可逆编码电路54根据在步骤ST20确定或生成的索引数据“nC”选择表1所示的变换表数据TRNa1到5中的一个。
步骤ST22:
二维可逆编码电路54通过使用在步骤ST21所选的变换表数据TRNa1、2、3、4和5取出在步骤ST19输入的各个子块数据SB1、SB2、SB3和SB4的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码,并且将其输出到复用电路57。
下面将说明等级编码电路55。
等级编码电路55对从游程等级计算电路53输入的等级数据“level”执行可变长度编码。
特别地,等级编码电路55从等级数据“level”中提取称为“level_prefix”和“level_suffix”的参数。
然后,等级编码电路55根据下面表2所示的变换表数据TRNb对参数“level_prefix”执行可变长度编码。
[表2]
变换表数据TRNb
level_prefix | Bit String |
0 | 1 |
1 | 01 |
2 | 001 |
3 | 0001 |
4 | 0000 1 |
5 | 0000 01 |
6 | 0000 001 |
7 | 0000 0001 |
8 | 0000 0000 1 |
9 | 0000 0000 01 |
10 | 0000 0000 001 |
level_prefix | Bit String |
11 | 0000 0000 0001 |
12 | 0000 0000 0000 1 |
13 | 0000 0000 0000 01 |
14 | 0000 0000 0000 001 |
15 | 0000 0000 0000 0001 |
参数“level_prefix”由“suffxLength”所给出的位长度编码为无符号整数。
这里,等级数据“level”与参数“level_prefix”和“level_suffix”之间的关系由下面公式(1)和(2)规定。
[公式1]
levelCode=(level_prefix<<suffxLength)+level_suffix …(1)
[公式2]
当“levelCode”是偶数时:level=(levelCode+2)>>1
当“levelCode”不是偶数时:level=(-levelCode-1)>>1 …(2)
等级编码电路55将通过对等级数据“level”执行可变长度编码得到的编码代码输出到复用电路57。
下面将说明游程编码电路56。
如下面所述,游程编码电路56对从游程等级计算电路53输入的游程数据“run_before”和游程总量数据“total_zero”执行可变长度编码。
然后,游程编码电路56将通过执行可变长度编码得到的编码代码输出到复用电路57。
特别地,当正交变换大小信号TRSIZE指示4×4并且非零系数数量数据“TotalCoeff”是大于等于1且小于等于7时,游程编码电路56根据下面表3所示的变换表数据TRNc对游程总量数据“total_zero”执行可变长度编码。
[表3]
变换表数据TRNc
此外,当正交变换大小信号TRSIZE指示4×4并且非零系数数量数据“TotalCoeff”是大于等于8且小于等于15时,游程编码电路56根据下面表4所示的变换表数据TRNd对游程总量数据“total_zero”执行可变长度编码。
[表4]
变换表数据TRNd
此外,当要编码的块数据是2×2的色差DC时,游程编码电路56根据下面表5所示的变换表数据TRNe对游程总量数据“total_zero”执行可变长度编码。
[表5]
变换表数据TRNe
此外,游程编码电路56根据下面表6所示的变换表数据TRNf对游程数据“run_before”执行可变长度编码。
[表6]
变换表数据TRNf
游程编码电路56将通过对游程总量数据“total_zero”和游程数据“run_before”执行可变长度编码得到的编码代码输出到复用电路57。
复用电路57生成作为通过复用从二维可逆编码电路54、等级编码电路55和游程编码电路56输入的编码代码获得的位流的图像数据S27,并且将其写到缓冲存储器28中。
下面将说明图2所示的编码装置2的整体操作。
作为输入的图像信号首先在A/D转换电路22中被转换成数字信号。
接着,在屏幕重布置电路23中根据要输出的图像压缩信息的GOP结构执行帧图像数据的重布置,并且将由此得到的原始图像数据S23输出到计算电路24、运动预测补偿电路42和内预测电路41。
接着,计算电路24检测来自屏幕重布置电路23的原始图像数据S23与来自选择电路44的预测图像数据PI之间的差,并将指示差的图像数据S24输出到正交变换电路25。
接着,正交变换电路25根据从正交变换大小确定电路45输入的正交变换大小信号TRSIZE所指定的块大小,对图像数据S24执行正交变换,如离散余弦变换和Karhunen-Loeve变换,来生成图像数据(DCT系数)S25,并将其输出到量化电路26。
接着,量化电路26基于从正交变换大小确定电路45输入的正交变换大小信号TRSIZE所指示的块大小,对图像数据S25执行量化,并将图像数据(量化后的DCT系数)S26输出到可逆编码电路27和逆量化电路29。
接着,如上所述,可逆编码电路2对图像数据S26执行可变长度编码来生成图像数据S27,并且将其累积在缓冲存储器28中。
此外,速率控制电路32根据从缓冲存储器28读出的图像数据控制量化电路26中的量化速率。
此外,逆量化电路29对从量化电路26输入的图像数据S26执行逆量化,并将结果输出到逆正交变换电路30。
然后,逆正交变换电路30将通过执行正交变换电路25中的正交变换的逆变换处理生成的图像数据输出到加法电路33。
在加法电路33中,将来自逆正交变换电路30的图像数据与来自选择电路44的预测图像数据PI相加来产生参考图像数据“R_PIC”,并将其写入帧存储器31中。
此外,内预测电路41对从帧存储器31中读取的块数据以4×4和16×16的块大小执行内预测编码,并且生成预测图像数据。
此外,运动预测补偿电路42对从帧存储器31中读取的块数据以16×1616×8、8×16、8×8、8×4和4×8的块大小执行间预测编码,并且生成预测图像数据。
然后,在内预测电路41和运动预测补偿电路42的预测图像数据当中,将具有最小编码代价(encoding cost)的预测图像数据输出到计算电路24。
正交变换大小确定电路45将指示用于生成输出到计算电路24的预测图像数据的块大小的正交变换大小信号TRSIZE输出到正交变换电路25、量化电路26和可逆编码电路27。
如上所述,根据编码装置2,在图3所示的可逆编码电路27中,通过使用表1所示的、用于编码经受4×4正交变换的变换系数的总变换表数据TRANa,可以编码经受8×8正交变换的变换系数的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”。
此外,根据编码装置2,在可逆编码电路27中,用(方法1)到(方法4)选择用于编码子块数据SB1、SB2、SB3和SB4的变换表数据TRNa、a2、a3和a4,从而可以实现高效的编码。
[解码装置3]
下面将说明图1所示的解码装置3。
图11是图1所示的解码装置3的配置图。
如图11所示,解码装置3包括例如,缓冲存储器81、可逆解码电路82、逆量化电路83、逆正交变换电路84、加法电路85、帧存储器86、屏幕重布置缓冲区87、D/A转换电路88、内预测电路89和运动预测补偿电路90。
帧存储器81存储作为从编码装置接收(输入)的位流的图像数据S2。
可逆解码电路82通过对应于图2所示的可逆编码电路27的可逆编码的方法解码从缓冲存储器81读取的图像数据S2,并且生成图像数据S82。
可逆解码电路82将复用为图像数据S2的正交变换大小信号TRSIZE分离并解码,并且将结果输出到逆量化电路83和逆正交变换电路84。
将在稍后详细描述可逆解码电路82。
逆量化电路83根据从可逆解码电路82输入的正交变换大小信号TRSIZE,通过对从可逆解码电路82输入的、经受可逆解码的图像数据S82用对应于图2所示的量化电路26的量化方法的逆量化方法执行逆量化,生成图像数据S83,并将其输出到逆正交变换电路84。
逆正交变换电路84根据从可逆解码电路82输入的正交变换大小信号TRSIZE,通过对从逆量化电路83输入的图像数据S83执行对应于图2所示的正交变换电路25的正交变换的逆正交变换,生成图像数据S84,并将其输出到加法电路85。
加法电路85通过将从内预测电路89或运动预测补偿电路90输入的预测图像与从逆正交变换电路84输入的图像数据S84相加,来产生图像数据S85,并将其输出到帧存储器86和屏幕重布置缓冲区87。
屏幕重布置缓冲区87用于以画面为单位显示的次序重布置从加法电路85输入的图像数据S85,并将其读出到D/A转换电路88。
D/A转换电路88对从屏幕重布置缓冲区87读出的图像数据执行D/A转换,并且生成模拟图像信号。
当从帧存储器86读取的图像数据S85中的要处理的块数据经受内预测编码时,内预测电路89用内方法(intra method)解码块数据来生成预测图像数据,并且将其输出到加法电路85。
当从帧存储器86读取的图像数据S85中的要处理的块数据经受间预测编码时,运动预测补偿电路90用间方法(inter method)解码块数据来生成预测图像数据,并且将其输出到加法电路85。
下面,将说明图11所示的可逆解码电路82。
图12是图11所示的可逆解码电路82的配置图。
如图12所示,可逆解码电路82包括例如,分离电路110、二维可逆解码电路111、等级解码电路112、游程解码电路113、变换系数恢复电路114、块恢复电路115和扫描转换电路116。
在本实施例中,二维可逆解码电路111、等级解码电路112、游程解码电路113、变换系数恢复电路114、块恢复电路115和扫描转换电路116中的处理是通过使用分离电路110所分离的正交变换大小信号TRSIZE执行的。
分离电路110将游程数据“run_before”和游程总量数据“total_zero”的编码代码从编码的图像数据S2中分离(提取)出来,并且将其输出到游程解码电路113。
此外,分离电路110将等级数据“level”的编码代码从图像数据S2中分离,并且将其输出到等级解码电路112。
分离电路110将非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”的编码代码从图像数据S2中分离,并且将其输出到二维可逆编码电路111。
此外,分离电路110将正交变换大小信号TRSIZE从图像数据S2中分离,并且将其输出到图12所示的二维可逆编码电路111、等级解码电路112、游程解码电路113、变换系数恢复电路114、块恢复电路115和扫描转换电路116以及图11所示的逆量化电路83和逆正交变换电路84。
二维可逆解码电路111通过使用与上面图3所示的二维可逆编码电路54中相同的正交变换大小信号TRSIZE来选择上述表1所示的总变换表数据中的变换表数据TRNa1到5中的一个。
然后,二维可逆解码电路111通过使用所选的变换表数据TRNa1到5解码从分离电路110输入的编码代码,取出非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”,并且将其输出到变换系数恢复电路114。
此外,二维可逆解码电路111解码分离电路110所分离的编码代码,取出编码数据“trailing_ones_sing_flag”,并将其输出到变换系数恢复电路114。
等级解码电路112通过使用上述表2所示的变换表数据TRNb,执行对应于图3所示的等级编码电路55的可变长度编码的解码,取出对应于从分离电路110输入的编码代码的等级数据“level”,并且将其输出到变换系数恢复电路114。
游程解码电路113通过使用上述表3、表4、表5和表6所示的变换表数据TRNc、TRNd、TRNe和TRNf,执行对应于图3所示的游程编码电路56的可变长度编码的解码,取出对应于从分离电路110输入的编码代码的游程数据“run_before”,并且将其输出到变换系数恢复电路114。
变换系数恢复电路114基于从二维可逆解码电路111输入的非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”和编码数据“trailing_ones_sing_flag”以及从游程解码电路113输入的游程数据“run_before”和游程总量数据“total_zero”,通过执行图3所示的游程等级计算电路53的处理的逆处理来生成变换系数,并且将其输出到块恢复电路115。
当正交变换大小信号TRSIZE指示4×4时,块恢复电路115存储从变换系数恢复电路114输入的4×4的变换系数。
当正交变换大小信号TRSIZE指示8×8时,块恢复电路115存储从变换系数恢复电路114输入的8×8的变换系数。
当正交变换大小信号TRSIZE指示4×4时,扫描变换电路116以适合图11所示的逆量化电路83进行逆量化的次序读取存储在变换系数恢复电路114中的4×4的变换系数,并且将其作为图像数据S82输出到逆量化电路83。
此外,当正交变换大小信号TRSIZE指示8×8时,扫描变换电路116考虑到图8所示的子块数据SB1、SB2、SB3和SB4的布置、以图5所示的扫描次序或者以适合图11所示的逆量化电路83进行逆量化的次序读取存储在变换系数恢复电路114中的8×8的变换系数,并且将其作为图像数据S82输出到逆量化电路83。
根据解码装置3,可以恢复由编码装置2编码的非零系数数量数据“TotalCoeff”和最终连续数量数据“TrailingOnes”的编码代码。
本发明不限于上述实施例。
例如,在上述实施例中,作为用于编码非零系数数量数据“TotalCoeff”、最终连续数量数据“TrailingOnes”的对应数据的例子提到了表1所示的总变换表数据TRNa,然而,可以使用其他变换表数据作为变换表数据TRNa1、2、3和4,只要将其规定成使得指示“0”的非零系数数量数据“TotalCoeff”相互不同,并且编码代码的最大位长度随着指示“0”的非零系数数量数据“TotalCoeff”的位长度变短而变长。
此外,在上述编码装置2中,将通过构成图3所示的可逆编码电路27的电路实现图10所示的编码处理的情况作为例子说明,但所有和部分处理可以根据程序的描述通过CPU(中央处理单元)等执行。
此外,在上述解码装置3中,将通过构成图11所示的可逆解码电路82的电路实现解码处理的情况作为例子说明,但所有和部分处理可以根据程序的描述通过CPU(中央处理单元)等执行。
工业适用性
本发明可以应用到用于编码正交变换的变换系数的编码系统等。
Claims (12)
1.一种用于利用关于非零系数数量数据的对应数据执行可变长度编码的编码方法,所述非零系数数量数据指示在通过对图像块数据执行正交变换得到的多个变换系数中的非零变换系数数量,包括:
当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,
第一步骤,用于在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数;
第二步骤,用于根据在所述第一步骤中分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据;和
第三步骤,用于通过使用所述对应数据,确定要分配给在所述第二步骤中为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
2.如权利要求1所述的编码方法,其中所述第一步骤使用根据通过划分垂直和水平二维频率区域得到的多个子块中的频率规定的所述多个子块数据。
3.如权利要求1所述的编码方法,还包括:
第四步骤,用于根据通过对具有所述第一块大小的所述图像块数据执行正交变换得到的多个变换系数来生成图像块数据的所述非零系数数量数据;
第五步骤,用于在与相关于具有所述第一块大小的所述图像块数据的显示位置周围的显示位置相关的其他图像块数据的所述变换系数中指定除了绝对值为“0”和“1”之外的变换系数数量,并且选择所述对应数据,其中随着所指定的除了绝对值为“0”和“1”之外的变换系数数量变小,所述非零系数数量数据和具有较短位长度的编码代码相关;和
第六步骤,用于通过使用在所述第五步骤中选择的对应数据确定具有所述第一块大小的所述图像块数据的所述非零系数数量数据的所述编码代码。
4.如权利要求3所述的编码方法,其中:
当以具有所述第二块大小的图像块数据为单元执行所述正交变换时执行所述第一、第二和第三步骤;和
当以具有所述第一块大小的图像块数据为单元执行所述正交变换时执行所述第四、第五和第六步骤。
5.如权利要求1所述的编码方法,其中:
当所述第一块大小是N×N(N是整数)并且所述第二块大小是2N×2N时,
所述第一步骤从对应于接近直流分量的频率的变换系数连续扫描具有所述第二块大小的所述图像块数据的变换系数,并且生成由扫描的第一到第N2变换分量构成的第一子块,由扫描的第(N2+1)到第2N2变换分量构成的第二子块,由扫描的第(2N2+1)到第3N2变换分量构成的第三子块,以及由扫描的第(3N2+1)到第4N2变换分量构成的第四子块;和
所述第三步骤通过使用所述对应数据确定所述第一子块数据的所述非零系数数量数据的所述编码代码,其中,与用于编码在所述第二步骤中生成的所述第二和第三子块数据的所述非零系数数量数据的所述对应数据中的位长度相比,分配给指示“0”的所述非零系数数量数据的所述编码代码的位长度要长,并且通过使用所述对应数据确定所述第四子块数据的所述非零系数数量数据的所述编码代码,其中,与用于编码在所述第二步骤中生成的所述第二和第三子块数据的所述非零系数数量数据的所述对应数据中的位长度相比,分配给指示“0”的所述非零系数数量数据的所述编码代码的位长度要短。
6.如权利要求1所述的编码方法,其中:
所述对应数据
规定要分配给在通过对所述块数据以及所述非零系数数量数据执行正交变换得到的一系列所述变换系数的结尾处连续的、绝对值为“1”的变换系数的最终连续数量数据的集合的所述编码代码;以及
规定当所述最终连续数量数据对多个集合变大时所述编码代码的位长度是相同或变大,其中所述最终连续数量数据不同,但所述非零系数数量数据相同。
7.一种用于利用关于非零系数数量数据的对应数据执行可变长度编码的编码装置,所述非零系数数量数据指示在通过对图像块数据执行正交变换得到的多个变换系数中的非零变换系数数量,当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,该装置包括:
分配设备,用于在与具有所述第一块大小的图像块数据中一样多的所述变换系数构成的多个子块数据当中,根据对应于变换系数的频率将通过对具有第二块大小的图像块数据执行正交变换得到的多个变换系数分配给一个子块数据,其中第二块大小是所述第一块大小的倍数;
生成设备,用于根据所述分配设备分配给子块数据的所述变换系数为所述多个子块数据中的每个生成所述非零系数数量数据;和
编码设备,用于通过使用所述对应数据,确定分配给所述生成设备为所述多个子块数据中的每个生成的所述非零系数数量数据的所述编码代码,其中在所述对应数据中,与用于关于所述子块数据的直流分量侧上的其他子块数据的所述对应数据中的位长度相比,具有较短位长度的编码代码被分配给指示“0”的所述非零系数数量数据。
8.如权利要求7所述的编码装置,还包括:
差生成设备,用于生成要编码的图像数据与预测图像数据的差图像数据;和
正交变换设备,用于以具有所述第一块大小或第二块大小的图像块数据为单位对所述差生成设备生成的所述差图像数据执行所述正交变换,
其中所述分配设备对所述正交变换设备通过对具有所述第二块大小的图像块数据执行正交变换得到的所述多个变换系数执行所述分配。
9.一种解码方法,用于根据对应于变换系数的频率,将通过以具有第二块大小的块数据为单位对要编码的图像数据执行正交变换得到的变换系数分配给多个子块数据,其中第二块大小是第一块大小的倍数;为所述多个子块数据的每个生成指示构成子块数据的变换系数中的非零变换系数数量的非零系数数量数据;以及当通过使用预定的对应数据得到所述非零系数数量数据的编码代码时,使用所述对应数据从所述编码代码中取出所述非零系数数量数据,该方法包括:
当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,
第一步骤,用于通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和所述指示“0”的非零系数数量数据关于该直流分量侧上的所述子块数据相关;
第二步骤,用于根据在所述第一步骤中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数;和
第三步骤,用于重布置在所述第二步骤中生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
10.如权利要求9所述的解码方法,还包括:
当解码通过对以具有第一块大小的块数据为单位编码的图像数据执行正交变换得到的变换系数的所述非零系数数量数据的所述编码代码时,
第四步骤,用于在与相关于具有所述第一块大小的所述图像块数据的显示位置周围的显示位置相关的其他图像块数据的所述变换系数中指定除了绝对值为“0”和“1”之外的变换系数数量;
第五步骤,用于选择所述对应数据,其中随着在所述第四步骤中指定的数量变小,所述非零系数数量数据和具有较短位长度的编码代码相关;
第六步骤,用于通过使用在所述第五步骤中选择的对应数据确定与具有所述第一块大小的所述图像块数据的所述编码代码对应的所述非零系数数量数据;和
第七步骤,用于根据在所述第六步骤中确定的所述非零系数数量数据生成具有所述第一块大小的所述块数据的所述变换系数。
11.如权利要求10所述的解码方法,其中:
当指定所述第一块大小时执行所述第四、第五、第六和第七步骤;和
当指定所述第二块大小时执行所述第一、第二和第三步骤。
12.一种解码装置,用于根据对应于变换系数的频率,将通过以具有第二块大小的块数据为单位对要编码的图像数据执行正交变换得到的变换系数分配给多个子块数据,其中第二块大小是第一块大小的倍数;为所述多个子块数据的每个生成指示构成子块数据的变换系数中的非零变换系数数量的非零系数数量数据;以及当通过使用预定的对应数据得到所述非零系数数量数据的编码代码时,使用所述对应数据从所述编码代码中取出所述非零系数数量数据,当对于在具有第一块大小的图像块数据中的所述非零系数数量数据的各个可能值使用每个都规定非零系数数量数据与编码代码的对应的多个对应数据、以使得指示“0”的非零系数数量数据的位长度变得彼此不同,而对应数据使用的所述编码代码的最大位长度随着指示“0”的非零系数数量数据的位长度变短而变长时,该装置包括:
确定设备,用于通过使用所述对应数据,确定分配给所述多个子块数据的所述编码代码中的每个的所述非零系数数量数据,其中随着指示“0”的非零系数数量数据的位长度变短,与用于直流分量侧上的所述子块数据的所述对应数据中的位长度相比,具有较长的位长度的编码代码和所述指示“0”的非零系数数量数据关于该直流分量侧上的所述子块数据相关;
生成设备,用于根据在所述确定设备中为所述多个子块数据中的每个确定的所述非零系数数量数据,生成构成子块数据的所述变换系数;和
取出设备,用于重布置在所述生成设备生成的所述变换系数,并且得到具有所述第二块大小的所述块数据的变换系数。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004204313 | 2004-07-12 | ||
JP204313/2004 | 2004-07-12 | ||
JP2005015284A JP2006054846A (ja) | 2004-07-12 | 2005-01-24 | 符号化方法、符号化装置、復号方法、復号装置およびそれらのプログラム |
JP015284/2005 | 2005-01-24 | ||
PCT/JP2005/012772 WO2006006564A1 (ja) | 2004-07-12 | 2005-07-11 | 符号化方法、符号化装置、復号方法、復号装置およびそれらのプログラム |
Related Child Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010150621A Division CN101795413A (zh) | 2004-07-12 | 2005-07-11 | 解码装置和解码方法 |
CN201010150561A Division CN101808246A (zh) | 2004-07-12 | 2005-07-11 | 编码方法和编码装置 |
CN201010150622A Division CN101795414A (zh) | 2004-07-12 | 2005-07-11 | 解码装置和解码方法 |
CN201010150588A Division CN101808247A (zh) | 2004-07-12 | 2005-07-11 | 编码方法和编码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1860796A CN1860796A (zh) | 2006-11-08 |
CN1860796B true CN1860796B (zh) | 2010-06-16 |
Family
ID=37298781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800010924A Expired - Fee Related CN1860796B (zh) | 2004-07-12 | 2005-07-11 | 编码方法、编码装置、解码方法、及解码装置 |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP2010119153A (zh) |
CN (1) | CN1860796B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5490404B2 (ja) * | 2008-12-25 | 2014-05-14 | シャープ株式会社 | 画像復号装置 |
ES2784509T3 (es) | 2010-04-13 | 2020-09-28 | Ge Video Compression Llc | Codificación de mapas de significado y bloques de coeficiente de transformada |
US20120163456A1 (en) * | 2010-12-22 | 2012-06-28 | Qualcomm Incorporated | Using a most probable scanning order to efficiently code scanning order information for a video block in video coding |
JP6097326B2 (ja) * | 2015-03-27 | 2017-03-15 | 日本電信電話株式会社 | ブロックサイズ決定方法、ブロックサイズ決定装置及びブロックサイズ決定プログラム |
US11388439B2 (en) * | 2019-10-21 | 2022-07-12 | Google Llc | Sparse matrix representation using a boundary of non-zero coefficients |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1134079A (zh) * | 1994-12-19 | 1996-10-23 | 三星电子株式会社 | 自适应正交变换编码装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4230188B2 (ja) * | 2002-06-06 | 2009-02-25 | パナソニック株式会社 | 可変長符号化方法および可変長復号化方法 |
US6795584B2 (en) * | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
JP3679083B2 (ja) * | 2002-10-08 | 2005-08-03 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム |
-
2005
- 2005-07-11 CN CN2005800010924A patent/CN1860796B/zh not_active Expired - Fee Related
-
2010
- 2010-03-05 JP JP2010049768A patent/JP2010119153A/ja active Pending
- 2010-03-05 JP JP2010049887A patent/JP2010136454A/ja active Pending
- 2010-03-05 JP JP2010049769A patent/JP2010141926A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1134079A (zh) * | 1994-12-19 | 1996-10-23 | 三星电子株式会社 | 自适应正交变换编码装置 |
Non-Patent Citations (2)
Title |
---|
JP特开平6-237448A 1994.08.23 |
JP特开平8-116448A 1996.05.07 |
Also Published As
Publication number | Publication date |
---|---|
JP2010119153A (ja) | 2010-05-27 |
JP2010141926A (ja) | 2010-06-24 |
JP2010136454A (ja) | 2010-06-17 |
CN1860796A (zh) | 2006-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101808247A (zh) | 编码方法和编码装置 | |
EP0580454B1 (en) | Coding and decoding of digital data | |
CN101091394B (zh) | 编码装置及编码方法 | |
CN100586183C (zh) | 位平面编码和解码方法 | |
CN101502123B (zh) | 编码装置 | |
TWI521890B (zh) | Image coding apparatus, method and program, and image decoding apparatus, method and program | |
CN105103453A (zh) | 数据编码和解码 | |
KR19990044556A (ko) | 부호화된 비디오 화상의 송신 및 수신 방법 | |
KR20110042363A (ko) | 계수들의 블럭에서 유효 계수들의 위치들의 코딩을 갖는 비디오 코딩 | |
CN101505429A (zh) | 对视频数据进行内编码的方法和设备 | |
CN1860796B (zh) | 编码方法、编码装置、解码方法、及解码装置 | |
KR20070077059A (ko) | 엔트로피 부호화/복호화 방법 및 장치 | |
JP2000092330A (ja) | 画像符号化装置 | |
CN104620577A (zh) | 在一般化残差预测的框架下的经加权差预测 | |
CN103918186A (zh) | 上下文自适应数据编码 | |
CN102771126A (zh) | 图像编码装置、图像解码装置及数据结构 | |
JPH06237448A (ja) | 可変長符号化及び復号化装置 | |
JPH0522715A (ja) | 画像符号化装置 | |
CN104854871A (zh) | 具有减少的线缓冲器的解块滤波器 | |
KR100242635B1 (ko) | 가변장 부호화 및 가변장 복호화 시스템 | |
KR20120038355A (ko) | 계층 구조의 영상 처리를 위한 엔트로피 인코딩/디코딩 방법 및 장치와 이를 위한 심볼 인코딩/디코딩 방법 및 장치 | |
KR0134324B1 (ko) | 데이타압축을 위한 비트단위 가변장부호화방법 | |
KR0134359B1 (ko) | 가변 스캔영역을 이용한 부호화 및 복호화시스템 | |
KR20030083703A (ko) | 동화상 정보의 압축 방법 및 그 시스템 | |
JPH0898171A (ja) | 映像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100616 Termination date: 20130711 |