CN1981534A - 图像编码装置、图像解码装置以及用于其中的集成电路 - Google Patents

图像编码装置、图像解码装置以及用于其中的集成电路 Download PDF

Info

Publication number
CN1981534A
CN1981534A CNA2005800187229A CN200580018722A CN1981534A CN 1981534 A CN1981534 A CN 1981534A CN A2005800187229 A CNA2005800187229 A CN A2005800187229A CN 200580018722 A CN200580018722 A CN 200580018722A CN 1981534 A CN1981534 A CN 1981534A
Authority
CN
China
Prior art keywords
unit
input
arithmetic
arithmetic element
multiplier
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.)
Granted
Application number
CNA2005800187229A
Other languages
English (en)
Other versions
CN1981534B (zh
Inventor
尾关英克
井口雅保
西孝启
樋田博明
富田裕人
井上昭彦
桥本隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1981534A publication Critical patent/CN1981534A/zh
Application granted granted Critical
Publication of CN1981534B publication Critical patent/CN1981534B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

根据本发明的图像解码装置和图像编码装置,包括:运算单元,用于执行运算处理;运算数据存储单元,用于存储运算单元的运算结果;输入选择单元,用于选择是从压缩的图像数据中还是从存储在运算数据存储单元中的像素数据中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到运算单元;以及运算控制单元,用于根据在运算单元中的运算次数和所使用的变换模式来控制目标以及以由运算单元进行的运算处理为目标的像素数据的组合和用于运算处理的乘法器系数,其中从所述目标中读取通过输入选择单元输入到运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在运算单元中的一个运算操作中可执行的每一个单元的每一变换模式中的运算过程。

Description

图像编码装置、图像解码装置以及用于其中的集成电路
技术领域
本发明涉及图像编码装置、图像解码装置以及用于其中的集成电路,其特征在于时域与频域之间的变换和逆变换。
背景技术
作为运动图像编码方法,MPEG-2已经用于数字广播和DVD,并且MPEG-4已经用于互联网流和移动通信。由JVT(Jiont VideoTeam)来标准化压缩更为有效的的编码方法。这种编码方法被称为“H.264/MPEG-4 AVC”或“MPEG-4 part 10”(下文中称之为“H.264”)。
在根据屏幕内关联性来执行压缩(编码)的诸如MPEG-2和MPEG-4的方法中,首先对8×8像素块进行从时域到频域的离散余弦变换(DCT)。然后,使用于所获得的频域的每一个系数除以除数(量化阶(quantization step)),并将余数四舍五入。这实现了编码和压缩。在解码处理中,相反地,通过使8×8像素块乘以量化阶来执行反向量化。在反向量化之后,执行逆离散余弦变换(IDCT),以从频域变换到时域。
另一方面,在H.264中,在编码时将由16×16像素组成的宏块分成4×4像素块。将所得到的4×4块各自看作为一个单位,并通过位移、加和减来将其从时域变换到频域。在解码时,相反地,通过位移、加和减来将作为频域所获得的4×4块从频域变换到时域。这种通过位移、加和减来进行从时域到频域的变换被称为“整数变换”。同样,通过位移、加和减来进行从频域到时域的变换被称为“逆整数变换”(参见非专利出版物1)。
此外,在H.264中,当从时域变换到频域以进行以16×16像素为单位的帧内编码(下文中,称之为“内16×16模式”)和色差编码时,执行整数变换,并且其后,对由整数变换所得到的DC分量进行Hadamard变换(参见非专利出版物1)。图30是示出在内16×16模式中变换像素数据的流程的图。首先,对时域中的具有量度的16×16像素以4×4像素为单位进行到频域的变换。然后,利用Hadamard变换来压缩通过提取包含在被整数变换的4×4像素单位中的DC分量而获得的4×4矩阵。其后,量化通过Hadamard变换压缩的DC分量,并且量化除DC分量之外的被整数变换的数据。这实现了内16×16模式中的编码。
图31是示出用于H.264中的解码处理的过程的流程图。首先,确定编码数据是内16×16模式编码数据、色差数据还是其它数据(步骤S901)。如果是通过内16×16模式进行的编码,则对编码数据的DC分量进行Hadamard变换(步骤S902),并且反向量化被Hadamard变换的DC分量和其它分量(步骤S903)。如果编码数据是色差数据,则对编码数据的DC分量进行Hadamard变换(步骤S904),并且反向量化被Hadamard变换的DC分量和其它分量(步骤S905)。如果编码数据是其它数据,则将其反向量化(步骤S906)。其后,通过逆整数变换来对被反向量化的数据进行解码(步骤S907)。
表达式1为用于在步骤S902和S904中对仅由DC分量构成的4×4矩阵C(cij)(i,j=1,1,2,3)进行Hadamard变换的变换表达式。在表达式1中,从右侧和左侧用Hadamard变换矩阵A乘4×4矩阵C(cij),以获得被Hadamard变换的4×4矩阵f(参见非专利出版物1,第131页,表达式(8-254))。
[表达式1]
f = ACA = 1 1 1 1 1 1 - 1 - 1 1 - 1 - 1 1 1 - 1 1 - 1 C 00 C 01 C 02 C 03 C 10 C 11 C 12 C 13 C 20 C 21 C 22 C 23 C 30 C 31 C 32 C 33 1 1 1 1 1 1 - 1 - 1 1 - 1 - 1 1 1 - 1 1 - 1
表达式2表示用于在步骤S907中对频域分量dij(i,j=0,1,2,3)进行逆整数变换以获得时域分量fij(i,j=0,1,2,3)的算术表达式。使用由表达式2表示的算术表达式来首先获得频域中的对于任意i(=0,1,2,3)的分量ei0至ei3和分量fi0至fi3(参见非专利出版物1,第133页,表达式(8-266)至(8-273))。此外,将分量fij转置(i和j相互交换),并且将通过转置获得的分量作为dij,以再次获得分量ei0至ei3和分量fi0至fi3。最终获得的分量fij是通过逆整数变换获得的时域分量。值得注意的是,在表达式2中,(x>>k)意味着表示将x向右移动k位(下面相同)。另外,(x<<k)意味着表示将x向左移动k位(下面相同)。
[表达式2]
e i 0 = d i 0 + d i 2 e i 1 = d i 0 - d i 2 e i 2 = ( d i 1 > > I ) - d i 3 e i 3 = d i 1 + ( d i > > 1 ) f i 0 = e i 0 + e i 3 f i 1 = e i 1 + e i 2 f i 2 = e i 1 - e i 2 f i 3 = e i 0 - e i 3
此外,已经提出,适当地改变要在由16×16个像素组成的宏块中进行处理的块的尺寸,并对尺寸改变的块进行整数变换(参见非专利出版物2)。表达式3表示用于在要被处理的块的尺寸为8×8的情况下的逆整数变换的变换表达式(参见非专利出版物2,第142页,表达式(12-10)和(12-12))。在表达式3中,8×8矩阵W(Wij)(i,j=0,1,…,7)表示用于逆整数变换的频域。8×8矩阵T是用于逆整数变换的矩阵。8×8矩阵X表示在逆整数变换之后的时域。在表达式3中表示的变换表达式使得能够在整数变换之后获得时域。
[表达式3]
X=TTWT(TT为转置矩阵)
Figure A20058001872200151
T = 13 13 13 13 13 13 13 13 19 15 9 3 - 3 - 9 - 15 - 19 17 7 - 7 - 17 - 17 - 7 7 17 9 3 - 19 - 15 15 19 - 3 - 9 13 - 13 - 13 13 13 - 13 - 13 13 15 - 19 - 3 9 - 9 3 19 - 15 7 - 17 17 - 7 - 7 17 - 17 7 3 - 9 15 - 19 19 - 15 9 - 3
提议用如表达式4所示的用于逆整数变换的矩阵Ta来代替表达式3所示的矩阵T(参见非专利出版物3,第165至166页,表达式(8-341)至(8-356))。
[表达式4]
Ta = 8 8 8 8 8 8 8 8 12 10 6 3 - 3 - 6 - 10 - 12 8 4 - 4 - 8 - 8 - 4 4 8 10 - 3 - 12 - 6 6 12 3 - 10 8 - 8 - 8 8 8 - 8 - 8 8 6 - 12 3 10 - 10 - 3 12 6 4 - 8 8 - 4 4 8 - 8 4 3 - 6 10 - 12 12 - 10 6 - 3 · 1 / 8 |
表达式5表示用于利用表达式4所示的矩阵Ta来执行逆整数变换的算术表达式。在表达式5中,in[j]表示在将任意i(i=0,1,…,7)选择为行的情况下的wij。当选择任意i为行时,可以通过表达式5中的算术表达式来计算a[0]至a[7]和b[0]至b[7]。通过利用b[0]至b[7],计算对于任意i的out[0]至out[7]。所获得的out[0]至out[7]组成对于任意i的矩阵WTa。接着,将out[0]至out[7]中的i和j转置,并将转置的值作为in[0]至in[7]。然后,表达式5同样地用于运算操作以获得out[0]至out[7]。所获得的out[0]至out[7]组成矩阵TaTWTa,并且因此表示在逆整数变换之后的时域。
[表达式5]
a[0]=in[0]+in[4]
a[4]=in[0]-in[4]
a[2]=(in[2]>>1)-in[6]
a[6]=in[2]+(in[6]>>1)
b[0]=a[0]+a[6]
b[2]=a[4]+a[2]
b[4]=a[4]-a[2]
b[6]=a[0]-a[6]
a[1]=-in[3]+in[5]-in[7]-(in[7]>>1)
a[3]=in[1]+in[7]-in[3]-(in[3]>>1)
a[5]=-in[1]+in[7]+in[5]+(in[5]>>1)
a[7]=in[3]+in[5]+in[1]+(in[1]>>1)
b[1]=a[1]+(a[7]>>2)
b[7]=-a[1]>>2+a[7]
b[3]=a[3]+(a[5]>>2)
b[5]=(a[3]>>2)-a[5]
out[0]=b[0]+b[7]
out[1]=b[2]+b[5]
out[2]=b[4]+b[3]
out[3]=b[6]+b[1]
out[4]=b[6]-b[1]
out[5]=b[4]-b[3]
out[6]=b[2]-b[5]
out[7]=b[0]-b[7]
[非专利出版物1]:Draft ITU-T Recommendation and Final DraftInternational Standard of Joint Video Specification(ITU-TRec.H.264|ISO/IEC 14496-10 AVC),Doc.JVT-G050r1,2003年5月27日,第127至134页
[非专利出版物2]:Joint Final Committee Draft(JFCD)of JointVideo Specification(ITU-T Rec.H.264|ISO/IEC 14496-10 AVC),Doc.JVT-D157,2002年8月10日,第141至143页
[非专利出版物3]:Draft of Version 4 of H.264/AVC(ITU-TRecommendation H.264 and ISO/IEC 14496-10(MPEG-4 part 10)Advanced Video Coding),Doc.JVT-N050d1,2005年1月28日,第153至170页
发明内容
本发明要解决的问题
对于如上所述的H.264中的解码,需要组合使用Hadamard变换、4×4逆整数变换以及8×8逆整数变换。如果准备分别与Hadamard变换、4×4逆整数变换以及8×8逆整数变换相对应的单独的运算单元,则会增大解码装置的电路规模。对于编码装置来说,也是如此。
此外,近年来,多种图像编码标准共存,并且还一个接一个地提出新的标准。在这种环境下,需要提供能够容易地处理多种标准以及新引进的的标准的图像编码装置和图像解码装置。自然地,可以分开准备分别与单独标准相对应的运算单元,并将其设置在解码装置和编码装置中,尽管这会增大电路规模。
因此,本发明的目的是提供能够处理各种编码标准同时实现密集性的图像编码装置和图像解码装置。
解决问题的方案
为了获得上述目的,本发明具有下述方案。本发明的第一个方案涉及一种图像解码装置,用于按照需要通过在多个从频域到时域的变换模式之间进行切换来对压缩的图像数据进行解码,该装置包括:运算单元,用于对多个输入像素数据执行运算处理;运算数据存储单元,用于存储运算单元的运算结果;输入选择单元,用于选择是从被压缩的图像数据中还是从存储在运算数据存储单元中的像素数据中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到运算单元;以及运算控制单元,用于根据运算单元中的运算次数和所使用的变换模式来控制目标以及以运算单元进行的运算处理为目标的像素数据的组合和用于运算处理的乘法系数,其中从所述目标中读取通过输入选择单元输入到运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
根据本发明的第一个方案,运算控制单元通过将运算过程分为可以在运算单元中的一个运算操作中执行的单元来限定每一个变换模式中的该过程,并且因此可以通过单个运算单元来执行每一个变换模式中的运算操作。因此,可以提供能够处理各种编码标准同时实现密集性的图像解码装置。
在本发明的第二个方案中,将运算单元配置成能够执行整数运算,并且运算控制单元控制以整数运算为目标的像素数据的组合和作为乘法系数的用于运算单元的位移量。
根据本发明的第二个方案,将运算单元配置成能够执行整数运算,并且因此可以提供能够通过在它们之间进行切换来执行各种整数变换的图像解码装置。
例如,运算单元包括:第一至第八端子;第一位运算单元,用于位移第二端子的输入;第二位运算单元,用于位移第三端子的输入;第三位运算单元,用于位移第六端子的输入;第四位运算单元,用于位移第七端子的输入;第一加法单元,用于将第一端子的输入加到第二位运算单元的输出;第一减法单元,用于将第四端子的输入从第一位运算单元的输出中减去;第二减法单元,用于将第五端子的输入从第四位运算单元的输出中减去;以及第二加法单元,用于将第八端子的输入加到第三位运算单元的输出,运算数据存储单元存储第一和第二加法单元以及第一和第二减法单元的运算结果,并且运算控制单元根据变换模式和运算次数来控制要被输入到第一至第八端子的像素数据和用于第一至第四位运算单元的位移量。
例如,多个变换模式包括在4×4逆整数变换、8×8逆整数变换以及Hadamard变换当中的至少两个。
因此,可以利用小尺寸装置来在H.264中实施对压缩图像数据的解码。
在本发明的第三个方案中,运算控制单元通过对于每一运算次数将运算过程分为作为基本单位的运算处理来限定每一个变换模式中的运算过程,将运算单元配置成能够执行作为基本单位的运算处理,并且运算控制单元控制以运算处理为目标的像素数据的组合和乘法系数,使得由运算单元来重复作为基本单位的运算处理。
根据本发明第三个方案,将每一个变换模式中的运算过程分为作为基本单位的运算处理,并且因此可以利用更简化的结构来实现运算单元,由此可以提供能够处理各种编码标准同时实现密集性的图像解码装置。
优选地,作为基本单位的运算处理构成能够执行两-输入/两-输出数据流的运算处理。
结果,可以将每一变换模式中的运算过程分为两-输入/两-输出数据流,并且因此通过将两-输入/两-输出数据流设为基本单位,可以在标准之间共享该过程并且实现器件尺寸的减小。
优选地,运算控制单元能够对应于运算次数存储用于新变换模式的像素数据的组合和乘法系数,并且当使用新变换模式时,运算控制单元可以根据所存储的内容来控制输入选择单元和运算单元。
因此,可以提供当引入新变换模式时也能够进行解码的小尺寸图像解码装置。
例如,运算单元包括:第一至第四端子;第一乘法单元,用于对第一端子的输入执行乘法处理;第二乘法单元,用于对第三端子的输入执行乘法处理;第三乘法单元,用于对第二端子的输入执行乘法处理;第四乘法单元,用于对第四端子的输入执行乘法处理;第一加法单元,用于将第一乘法单元的输出加到第二乘法单元的输出;以及第二加法单元,用于将第三乘法单元的输出加到第四乘法单元的输出,运算数据存储单元存储第一和第二加法单元的运算结果,并且运算控制单元使输入选择单元根据变换模式和运算次数控制要被输入到第一至第四端子的像素数据和作为用于第一至第四乘法单元的乘法系数的乘数。
优选地,运算控制单元可以包括:乘数存储单元,用于存储与变换模式相关的乘数;乘数设定单元,用于设定用于第一至第四乘法单元的乘数;变换模式设定单元,用于管理变换模式;以及运算次序管理单元,用于根据由变换模式设定单元管理的当前变换模式和由运算次序管理单元管理的运算次数来管理运算单元中的运算次序,乘数设定单元可以从乘数存储单元中读取适当的乘数并设定用于第一至第四乘法单元的乘数,并且根据当前变换模式和运算次数,运算次序管理单元可以使输入选择单元控制要输入到第一至第四端子的像素数据。
优选地,运算控制单元还可以包括:乘数设定单元,用于对应于运算次数设定在新变换模式中使用的乘数;以及新变换模式乘数存储单元,用于存储由乘数设定单元设定的乘数,并且当使用新变换模式时,乘数设定单元可以从新变换模式乘数存储单元中读取与运算次数相关的乘数,并设定用于第一至第四乘法单元的乘数,并且运算次序管理单元可以使输入选择单元根据运算次数来控制将要输入到第一至第四端子的像素数据。
例如,多个变换模式包括逆离散余弦变换、4×4逆整数变换、8×8逆整数变换以及Hadamard变换当中的至少两个。
因此,可以提供能够处理JPEG、MPEG-2、MPEG-4、MPEG-4AVC(H.264)以及新变换模式的图像解码装置。
优选地,多个运算单元可以并联或串联连接,并且运算控制单元可以控制并联或串联连接的运算单元。
因此,可以进行流水线处理,由此提高处理速度。
本发明的第四个方案涉及一种图像编码装置,用于按照需要通过在多个从时域到频域的变换模式之间进行切换来对图像数据进行编码,该装置包括:运算单元,用于对多个输入像素数据执行运算处理;运算数据存储单元,用于存储运算单元的运算结果;输入选择单元,用于选择是从被压缩的图像数据中还是从存储在运算数据存储单元中的像素数据中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到运算单元;以及运算控制单元,用于根据运算单元中的运算次数和所使用的变换模式来控制目标以及以运算单元进行的运算处理为目标的多个像素数据的组合和用于运算处理的乘法系数,其中从所述目标中读取通过输入选择单元输入到运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
在本发明的第五个方案中,将运算单元配置成能够执行整数运算,并且算术控制单元控制以整数运算为目标的像素数据的组合和作为乘法系数的用于运算单元的位移量。
例如,运算单元包括:第一至第八端子;第一位运算单元,用于位移第二端子的输入;第二位运算单元,用于位移第三端子的输入;第三位运算单元,用于位移第六端子的输入;第四位运算单元,用于位移第七端子的输入;第五位运算单元,用于位移第一端子的输入;第六位运算单元,用于位移第四端子的输入;第七位运算单元,用于位移第五端子的输入;第八位运算单元,用于位移第八端子的输入;第一加法单元,用于将第五端子的输出加到第二位运算单元的输出;第一减法单元,用于将第一端子的输出从第六位运算单元的输出中减去;第二减法单元,用于将第七端子的输出从第四位运算单元的输出中减去;以及第二加法单元,用于将第八位运算单元的输出加到第三位运算单元的输出,运算数据存储单元存储第一和第二加法单元以及第一和第二减法单元的运算结果,并且运算控制单元根据变换模式和运算次数控制将要输入到第一至第八端子的像素数据和用于第一至第四位运算单元的位移量。
例如,多个变换模式包括4×4逆整数变换、8×8逆整数变换、4×4整数变换、8×8整数变换以及Hadamard变换当中的至少两个。采用上述构造,可以提供能够处理所有这些变换模式的变换器。
在本发明的第六个方案中,运算控制单元通过对于每一运算次数将运算过程分为作为基本单位的运算处理来限定每一个变换模式中的运算过程,将运算单元配置成能够执行作为基本单位的运算处理,并且运算控制单元控制以运算处理为目标的像素数据的组合和乘法系数,使得由运算单元来重复作为基本单位的运算处理。
优选地,作为基本单位的运算处理构成能够执行两-输入/两-输出数据流的运算处理。
优选地,根据权利要求5的图像编码装置,其中运算控制单元能够对应于运算次数存储用于新变换模式的像素数据的组合和乘法系数,并且当使用新变换模式时,运算控制单元根据所存储的内容来控制输入选择单元和运算单元。
例如,运算单元包括:第一至第四端子;第一乘法单元,用于对第一端子的输入执行乘法处理;第二乘法单元,用于对第三端子的输入执行乘法处理;第三乘法单元,用于对第二端子的输入执行乘法处理;第四乘法单元,用于对第四端子的输入执行乘法处理;第一加法单元,用于将第一乘法单元的输出加到第二乘法单元的输出;以及第二加法单元,用于将第三乘法单元的输出加到第四乘法单元的输出,运算数据存储单元存储第一和第二加法单元的运算结果,并且运算控制单元使输入选择单元根据变换模式和运算次数控制要被输入到第一至第四端子的像素数据和作为用于第一至第四乘法单元的乘法系数的乘数。
例如,运算控制单元包括:乘数存储单元,用于存储与变换模式相关的乘数;乘数设定单元,用于设定用于第一至第四乘法单元的乘数;变换模式设定单元,用于管理变换模式;以及运算次序管理单元,用于根据由变换模式设定单元管理的当前变换模式和由运算次序管理单元管理的运算次数来管理运算单元中的运算次序,乘数设定单元从乘数存储单元中读取适当的乘数并设定用于第一至第四乘法单元的乘数,并且根据当前变换模式和运算次数,运算次序管理单元使输入选择单元控制要输入到第一至第四端子的像素数据。
优选地,运算控制单元还包括:乘数设定单元,用于对应于运算次数设定在新变换模式中使用的乘数;以及新变换模式乘数存储单元,用于存储由乘数设定单元设定的乘数,并且当使用新变换模式时,乘数设定单元从新变换模式乘数存储单元中读取与运算次数相关的乘数,并设定用于第一至第四乘法单元的乘数,并且运算次序管理单元使输入选择单元根据运算次数来控制将要输入到第一至第四端子的像素数据。
例如,多个变换模式包括逆离散余弦变换、4×4逆整数变换、8×8逆整数变换、离散余弦变换、4×4整数变换、8×8整数变换以及Hadamard变换当中的至少两个。采用上述结构,可以提供能够处理所有这些变换模式的变换器。
优选地,多个运算单元并联或串联连接,并且运算控制单元控制并联或串联连接的运算单元。
该图像编码装置可以实现与由图像解码装置实现的效果相似的效果。
本发明的第七个方案涉及在图像解码装置中使用的集成电路,其用于按照需要通过在多个从频域到时域的变换模式之间进行切换来对压缩的图像数据进行解码,该电路包括:运算单元,用于对多个输入像素数据执行运算处理;输入选择单元,用于选择是从被压缩的图像数据中还是从运算单元的运算结果中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到运算单元;以及运算控制单元,用于根据运算单元中的运算次数和所使用的变换模式来控制目标以及以运算单元进行的运算处理为目标的多个像素数据的组合和用于运算处理的乘法系数,其中从所述目标中读取通过输入选择单元输入到运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
本发明的第八个方案涉及在图像解码装置中使用的集成电路,其用于按照需要通过在多个从时域到频域的变换模式之间进行切换来对图像数据进行编码,该电路包括:运算单元,用于对多个输入像素数据执行运算处理;输入选择单元,用于选择是从被压缩的图像数据中还是从运算单元的运算结果中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到运算单元;以及运算控制单元,用于根据运算单元中的运算次数和所使用的变换模式来控制目标以及以运算单元进行的运算处理为目标的多个像素数据的组合和用于运算处理的乘法系数,其中从所述目标中读取通过输入选择单元输入到运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
发明的效果
因此,根据本发明的图像编码装置和图像解码装置能够处理各种编码标准,同时实现密集性。
通过以下结合附图对本发明进行的详细说明,本发明的这些和其它目的、特征、方案和优点将变得更加显而易见。
附图简述
图1是示出根据本发明第一实施例的图像编码装置1的示例性结构的方框图;
图2是示出根据本发明第一实施例的图像解码装置2的示例性结构的方框图;
图3是示出根据本发明第一实施例的整数变换器1000的结构的图;
图4是示出与运算次数相关的算术表达式以及在通过输入选择单元102输入到输入端子p1至p8之后以运算处理为目标的像素数据的组合之间的关系的表;
图5是示出用于执行4×4逆整数变换的行方向运算操作的运算控制单元101的操作的流程图;
图6是示出用于执行4×4逆整数变换的列方向运算操作的运算控制单元101的操作的流程图;
图7是示出与运算次数相关的算术表达式以及通过输入选择单元102输入到输入端子p1至p8的像素数据的组合之间的关系的表;
图8是示出用于执行8×8逆整数变换的行方向运算操作的运算控制单元101的操作的流程图;
图9是示出关于4×4逆整数变换的、与运算次数相关的算术表达式以及在通过输入选择单元102输入到输入端子p1至p8的像素数据的组合之间的关系的表;
图10A是示出关于8×8逆整数变换的、与运算次数相关的算术表达式以及通过输入选择单元102输入到输入端子p1至p8的像素数据的组合之间的关系的表;
图10B是示出能够8×8整数变换的整数变换器1000a的结构的方框图;
图11是示出根据本发明第二实施例的整数变换器2000的结构的方框图;
图12是示出第一运算单元1100的结构的方框图;
图13是示出第二运算单元2100的结构的方框图;
图14是示出其中运算单元串联和/或并联连接以执行8×8整数变换的运算单元的结构的方框图;
图15是示出与运算次数相关的用于第一运算单元1100和第二运算单元2100的算术表达式的表;
图16是示出用于执行8×8整数变换的行方向运算操作的运算控制单元201的操作的流程图;
图17是示出图像编码装置3的示意性结构的方框图;
图18是示出图像解码装置4的示意性结构的方框图;
图19是示出变换单元3000的结构的方框图;
图20是用于说明运算单元3010中的运算流程的数据流表示;
图21是示出用于逆DCT变换的数据流的图;
图22是示出用于8×8逆整数变换的数据流的图;
图23是示出用于8×8整数变换的数据流的图;
图24是示出用于4×4逆整数变换的数据流的图;
图25是示出用于4×4整数变换的数据流的图;
图26是示出用于4×4Hadamard变换的数据流的图;
图27是示出用于2×2Hadamard变换的数据流的图;
图28是示出根据第四实施例的变换器4000的结构的方框图;
图29是示出根据第五实施例的变换器5000的结构的方框图;;
图30是示出在内16×16模式中的变换像素数据的流程的图;
图31是示出用于H.264中的解码处理的过程的流程图。
参考标记的说明
1:图像编码装置
2:图像解码装置
3:图像编码装置
4:图像解码装置
11:屏幕内预测单元
12:整数变换单元
13:量化单元
14:熵编码单元
15:反向量化单元15
16:逆整数变换单元
17:加法单元
18:解块滤波器单元
19:帧存储单元
20:运动补偿单元
21:运动检测单元
22:减法单元
23:熵解码单元
24:反向量化单元
25:逆整数变换单元
26:解块滤波器单元
27:运动补偿单元
28:加权预测单元
29:屏幕内预测单元
30:加法单元
31:图像数据输入单元
32:时间-频率变换单元
33:量化单元
34:压缩数据输出单元
41:压缩数据输入单元
42:反向量化单元
43:频率-时间变换单元
44:图像数据输出单元
100:运算单元
101:运算控制单元
102:输入选择单元
103:位运算单元
103a:位运算单元
104:位运算单元
104a:位运算单元
105:位运算单元
105a:位运算单元
106:位运算单元
106a:位运算单元
107:加法单元
108:减法单元
109:减法单元
110:加法单元
111:输入数据存储单元
112:运算数据存储单元
201:运算控制单元
1000:整数变换器
1100:第一运算单元
1102:输入选择单元
1103:位运算单元
1105:位运算单元
1107:加法单元
1108:减法单元
2000:整数变换器
2100:第二运算单元
2102:输入选择单元
2103:位运算单元
2105:位运算单元
2107:加法单元
2108:减法单元
3000:变换单元
3001:输入数据存储单元
3002:输入选择单元
3003:乘法单元
3004:乘法单元
3005:乘法单元
3006:乘法单元
3007:加法单元
3008:加法单元
3009:运算数据存储单元
3010:运算单元
3011:乘法设定单元
3012:运算次序管理单元
3013:变换模式设定单元
3014:第一乘数存储单元
3015:第二乘数存储单元
3016:新变换模式乘数存储单元
3017:新乘数设定单元
4000:变换单元
4001:输入数据存储单元
4002:运算单元
4003:运算控制单元
4004:运算数据存储单元
5000:变换器
5001:输入数据存储单元
5002:运算单元
5003:运算控制单元
5004:运算数据存储单元
发明的最佳实施方式
下文中,将参考附图详细说明本发明的实施例。
第一实施例
将说明关于图像编码装置和图像解码装置的第一实施例,其以分时的方式使用整数变换单元和逆整数变换单元以执行整数变换和逆整数变换。
图1是示出根据本发明第一实施例的图像编码装置1的示例性结构的方框图。在图1中,图像解码装置1包括:屏幕内预测单元11、整数变换单元12、量化单元13、熵编码单元14、反向量化单元15、逆整数变换单元16、加法单元17、解块滤波器单元18、帧存储单元19、运动补偿单元20、运动检测单元21和减法单元22。
屏幕内预测单元11对输入的运动图像信号中的I-图像执行帧内预测,并输出差值。整数变换单元12对从屏幕内预测单元11输出的差值执行整数变换。量化单元13量化从整数变换单元12输出的频域分量。熵编码单元14对来自量化单元13的输出进行熵编码,并将其作为压缩图像数据输出。
反向量化单元15反向量化来自量化单元13的输出,并将其输出。逆整数变换单元16对来自反向量化单元15的输出进行逆整数变换,并将其输出。加法单元17将来自屏幕内预测单元11或者运动补偿单元20的输出加到来自逆整数变换单元16的输出。解块滤波器单元18除去来自加法单元17的输出中的块噪声。帧存储单元19存储帧。运动补偿单元20执行运动补偿,进行有关加权的预测,并且将乘以加权因子的帧输入到减法单元22。对于除了I-图像之外的帧,减法单元22从运动补偿单元20中减去该帧,并将它们输入到整数变换单元12。运动检测单元21检测运动向量,并将其输入到熵编码单元14。熵编码单元14根据运动向量执行熵编码。因此,输出具有改善的运动补偿的压缩图像数据。
图2是示出根据本发明第一实施例的图像解码装置2的示例性结构的方框图。在图2中,图像解码装置2包括熵解码单元23、反向量化单元24、逆整数变换单元25、解块滤波器单元26、运动补偿单元27、加权预测单元28、屏幕内预测单元29和加法单元30。
对输入到熵解码单元23的压缩图像数据进行熵解码。反向量化单元24反向量化来自熵解码单元23的输出。逆整数变换单元25对来自反向量化单元24的输出进行逆整数变换,并将时域数据作为运动图像信号输出。
解块滤波器单元26除去来自逆整数变换单元25的输出中的块噪声,并将其输出。运动补偿单元27根据来自熵解码单元23的输出来进行运动补偿。作为运动补偿的结果,加权预测单元28输出乘以加权因子的帧,其具有关加权的预测。屏幕内预测单元29根据来自熵解码单元23的输出预测帧之间的差,并控制在屏幕内预测单元29与加权预测单元28之间的切换,以连接到加法单元30。因此,输出具有改善的运动补偿的运动图像信号。
本实施例中的图像编码装置具有从时域到频域的多个变换模式,并按照需要在变换模式之间切换以对图像进行编码。此外,本实施例中的图像解码装置具有从频域到时域的多个变换模式,并按照需要在变换模式之间切换以对图像进行解码。
本发明的特征在于整数变换和逆整数变换的结构。因此,以下公开的整数变换和逆整数变换的结构可适用于具有除图1和图2所示结构之外的结构的图像编码装置和图像解码装置。另外,根据本发明的整数变换和逆整数变换的结构还可适用于除H.264之外的编码方法。
图3是示出根据本发明第一实施例的整数变换器1000的结构的图。将整数变换器1000应用于图1所示的整数变换单元12和逆整数变换单元16,并且将其应用于图2所示的逆整数变换单元25。同样,在图1和图2中的图像解码装置和图像编码装置之外的图像解码装置和图像编码装置中,图3所示的整数变换器1000应用于用于执行整数变换和逆整数变换的元件。
在图3中,整数变换器1000包括:运算单元100、运算控制单元101、输入选择单元102、输入数据存储单元111和运算数据存储单元112。值得注意的是,输入数据存储单元111和/或运算数据存储单元112可以在整数变换器1000之外。
运算单元100对多个输入像素数据进行运算处理。运算单元100包括端子p1至p8、位运算单元103、104、105和106、加法单元107和110、以及减法单元108和109。位运算单元104位移端子p2的输入。位运算单元103位移端子p3的输入。位运算单元106位移端子p6的输入。位运算单元105位移端子p7的输入。加法单元107将端子p1的输入加到位运算单元103的输出上。减法单元108将端子p4的输入从位运算单元104的输出中减去。减法单元109将端子p5的输入从位运算单元105的输出中减去。加法单元110将端子p8的输入加到位运算单元106的输出上。这样,将运算单元100配置成能够执行整数运算。运算数据存储单元112存储加法单元107和110以及减法单元108和109的运算结果。
运算控制单元101输出输入选择指令信号:从输入数据存储单元111中或从运算数据存储单元112中按照行方向或列方向读取像素数据的指令,其中输入选择单元102对所述像素数据执行运算操作;以及当前的运算次数。此外,运算控制单元101根据当前的运算次数以及处理目标是Hadarnard变换、4×4逆整数变换还是8×8逆整数变换来确定位运算单元103、104、105和106的位移量,并将位移指令信号输出到位算术单元103、104、105和106。
因为运算单元100具有上述结构,所以限制了在一个运算操作中可执行的处理内容。运算控制单元101预先限定用于每一变换模式的运算过程以便与在运算单元100中的一个运算操作中可执行的单位中的运算次数相关。根据所使用的变换模式和运算次数,运算控制单元101控制目标以及以运算单元100中的运算处理为目标的像素数据的组合和用于运算处理的乘法系数(位移量),其中从所述目标中读取通过输入选择单元102输入到运算单元100的像素数据。
根据来自运算控制单元101的输入选择指令信号,输入选择单元102从输入数据存储单元111或运算数据存储单元112中读取以处理为目标的像素数据。另外,输入选择单元102根据由输入选择指令信号表示的运算次数来识别以运算处理为目标的像素数据的组合,并将所读取的像素数据输出到正确的端子p1至p8。
位运算单元103、104、105和106根据从运算控制单元101输入的位移指令信号来对从输入选择单元102输入的像素数据执行无位移、向右移1位或向右移2位,并将位移的像素数据输出到加法单元107和110以及减法单元108和109。值得注意的是,从位运算单元103、104、105和106输出的像素数据被称为“位移像素数据”,即使它没有被位移。
加法单元107和110将来自位运算单元103、106的位移像素数据加到通过端子p1、p8输入的像素数据上。
减法单元108和109从来自位运算单元104、105的位移像素数据中减去通过端子p4、p5输入的像素数据。
输入数据存储单元111是诸如存储器的存储介质,并存储以整数变换为目标的像素数据。
运算数据存储单元112是诸如存储器的存储介质,并且存储由运算单元100变换的像素数据。此外,运算数据存储单元112按照行方向执行写和读并按照列方向执行写和读以便执行数据转置。
下面说明可以通过图3所示的整数变换器1000来计算的4×4逆整数变换、8×8逆整数变换、Hadamard变换、4×4整数变换和8×8整数变换。值得注意的是,可以切换上述变换模式中的至少两个。
首先,作为前提,在这些变换中,由用于变换的方形矩阵T从右侧来乘包含预变换像素数据作为其要素的方形矩阵(例如W),并且由方形矩阵T的转置矩阵TT从左侧来乘作为乘法结果所获得的方形矩阵WT。最终的方形矩阵TTWt的每一要素(component)是变换后的像素数据。下文中,将由方形矩阵T从右侧来乘方形矩阵W的运算操作称为“行方向运算操作”。此外,将由转置矩阵TT从左侧来乘方形矩阵WT的运算操作称为“列方向运算操作”。
(在4×4逆整数变换的情况下的操作)
图4是示出与运算次数相关的算术表达式和在通过输入选择单元102输入到输入端子p1至p8之后以运算处理为目标的像素数据的组合之间的关系。在运算控制单元101中定义图4所示的关系。定义方法不限于如图4中的表格格式并且没有特别地限制。
在图4中,示出行和列方向的运算操作。通过4×4矩阵的要素来表示输入的像素数据。在图4中,将包含输入的像素数据作为其要素的4×4矩阵的一行中的要素作为in[0]至in[3]。在第一轮运算操作中,将in[0]输入到端子p1和p2,将in[2]输入到端子p3和p4,将in[1]输入到端子p7和p8,并将in[3]输入到端子p5和p6。通过用于第一轮的运算表达式,获得a[0]至a[3]。然后,如图4所示,将a[0]至a[3]输入到它们相应的端子p1至p8。通过用于第二轮的运算表达式,获得b[0]至b[3]。对所输入的4×4像素数据的所有行执行以上两个运算操作。由此,完成行方向运算操作,并且获得4×4像素数据。
其后,对通过行方向运算操作获得的4×4像素数据矩阵执行列方向运算操作。在列方向运算操作中,将通过转置获得的矩阵中的一个列中的要素作为in[0]至in[3]。在第一轮的列方向运算操作中,将in[0]至in[3]输入到端子p1至p8,如图4所示。通过用于第一轮的算术表达式,获得a[0]至a[3]。然后,如图4所示,将a[0]至a[3]输入到它们相应的端子p1至p8。通过用于第二轮的算术表达式,获得b[0]至b[3]。对转置的4×4像素数据的所有列执行以上两个运算操作。由此,完成列方向运算操作。结果,获得进行了4×4逆整数变换的4×4像素数据。
图5是示出用于执行4×4逆整数变换的行方向运算操作的运算控制单元101的操作的流程图。下文中,参考图5来说明用于执行4×4逆整数变换的行方向运算操作的运算控制单元101的操作。
在图5中,循环L1为其终止条件是对所输入的4×4像素数据的所有行(4行)完成了循环L1中的运算操作的循环。循环L2为其终止条件是图4所示的行方向运算次数已经达到了二的循环。下文中,所输入的4×4像素数据被称为“输入像素矩阵”。
在用于输入像素矩阵的第一轮行方向运算操作(循环L2=1st,步骤S100=1st)中,运算控制单元101输出输入选择指令信号,将其输入到输入选择单元102。输入选择指令信号包括从输入数据存储单元111中读取输入像素矩阵的第一行中的要素的指令和运算次数为一的通知(步骤S101)。
响应于输入选择指令信号,输入选择单元102从输入数据存储单元111中读取用于四个像素的输入数据,并且通过端子p1至p8将其输入,如图3所示。
然后,运算控制单元101输出位移指令信号。位移指令信号包括用于位运算单元103和104不执行位移的指令和用于位运算单元105和106向右执行1位位移的指令(步骤S102)。
响应于位移指令信号,位运算单元105和106输出通过使输入的数据向右位移1位而产生的位移像素数据。
加法单元107将位运算单元103的输出加到到端子p1的输入上。减法单元108从位运算单元104的输出中减去端子p4的输入。减法单元109从位运算单元105的输出中减去端子p5的输入。加法单元110将位运算单元106的输出加到端子p8的输入上。通过这些加法和减法所获得的结果构成第一轮的行方向运算结果。运算数据存储单元112沿着行方向将运算结果存储到第一行。
在用于输入像素矩阵的第二轮行方向运算操作(循环L2=2nd,步骤S100=2nd)中,运算控制单元101输出输入选择指令信号,将该信号输入到输入选择单元102。输入选择指令信号包括从运算数据存储单元112中读取第一轮的行方向运算结果的指令和运算次数为二的通知(步骤S103)。
响应于输入选择指令信号,输入选择单元102从存储在运算数据存储单元112中的第一轮行方向运算结果中读取行方向上的一行,并将用于四个像素的输入数据输入到与第二轮运算操作相对应的端子p1至p8,如图3所示。
然后,运算控制单元101输出位移指令信号。位移指令信号包括用于位运算单元103、104、105和106不执行位移的指令(步骤S104)。
响应于位移指令信号,位运算单元103、104、105和106输出没有位移的输入数据。
加法单元107和110以及减法单元108和109根据所输入的数据执行运算操作,并且将第二轮的行方向运算结果存储在运算数据存储单元112的第一行中。由此,完成用于第一行的循环L2中的处理。
运算控制单元101执行用于剩余三行的循环L2中的处理。这样,满足用于循环L1的终止条件。结果,获得通过行方向运算操作的用于四行的像素数据。运算数据存储单元112存储作为4×4矩阵行方向运算结果的用于四行的像素数据。
图6是示出用于执行用于4×4逆整数变换的列方向运算操作的运算控制单元101的操作的流程图。下文中,将参考图6来说明用于执行4×4逆整数变换的列方向运算操作的运算控制单元101的操作。
在图6中,循环L3为其终止条件是对由行方向运算操作获得的4×4矩阵行方向运算结果的所有列(四列)都完成了循环L1中的运算操作的循环。循环L4为其终止条件是图4所示的列方向运算次数已经达到了二的循环。
在用于4×4矩阵行方向运算结果的第一轮列方向运算操作(循环L4=1st,步骤S200=1st)中,运算控制单元101输出输入选择指令信号,将其输入到输入选择单元102。输入选择指令信号包括从行方向读取存储在运算数据存储单元112中的4×4矩阵行方向运算结果以及运算次数为一的通知(步骤S201)。
响应于输入选择指令信号,输入选择单元102从存储在运算数据单元112中的4×4矩阵行方向运算结果中读取列方向上的一列,并且将用于四个像素的像素数据in[0]至in[3]输入到端子p1至p8,如图3所示。
然后,运算控制单元101输出位移指令信号。位运算指令信号包括用于位运算单元103和104不执行位移的指令和用于位运算单元105和106向右执行1位位移的指令(步骤S202)。
响应于位移指令信号,位运算单元105和106输出通过使输入的数据向右位移1位而产生的位移像素数据。
加法单元107将位运算单元103的输出加到端子p1的输入上。减法单元108从位运算单元104的输出中减去端子p4的输入。减法单元109从位运算单元105的输出中减去端子p5的输入。加法单元110将位运算单元106的输出加到端子p8的输入上。通过这些加法和减法所获得的结果构成第一轮的列方向运算结果。运算数据存储单元112将运算结果存储在列方向上的第一列中。
在用于4×4矩阵行方向运算结果的第二轮列方向运算操作(循环L4=2nd,步骤S200=2nd)中,运算控制单元101输出输入选择指令信号,将该信号输入到输入选择单元102。输入选择指令信号包括从运算数据存储单元112中读取第一轮的列方向运算结果的指令和运算次数为二的通知(步骤S203)。
响应于输入选择指令信号,输入选择单元102从存储在运算数据存储单元112中的第一轮列方向运算结果中读取列方向上的一行,并将用于四个像素的输入数据输入到与第二轮运算操作相对应的端子p1至p8,如图3所示。
然后,运算控制单元101输出位移指令信号。位移指令信号包括用于位运算单元103、104、105和106不执行位移的指令(步骤S204)。
响应于位移指令信号,位运算单元103、104、105和106输出没有位移的输入数据。
加法单元107和110以及减法单元108和109根据所输入的数据执行运算操作,并且将第二轮的行方向运算结果存储在运算数据存储单元112的第一列中。由此,完成用于第一行的循环L4中的处理。
运算控制单元101执行用于剩余三列的循环L4中的处理。这样,满足用于循环L3的终止条件。结果,获得通过列方向运算操作的用于四列的像素数据。用于四列的像素数据是通过4×4逆整数变换获得的最终结果。由此,运算数据存储单元112输出作为输出像素矩阵的用于四列的像素数据。
这样,整数变换器1000能够执行4×4逆整数变换。
(在8×8逆整数变换情况下的操作)
图7是示出与运算次数相关的算术表达式和通过输入选择单元102输入到输入端子p1至p8的像素数据的组合之间的关系。在运算控制单元101中定义图7所示的关系。定义方法不限于如图7中的表格格式并且没有特别地限制。
在图7中,示出行和列方向的运算操作。通过8×8矩阵的要素来表示输入的像素数据。在图7中,将包含输入的像素数据作为其要素的8×8矩阵的一行(一列)中的要素作为in[0]至in[7]。在第一至第八运算操作中,输入到端子p1至p8的像素数据的组合相关联。通过第一至第八运算操作,获得由它们各自的算术表达式限定的运算结果。通过直到图7所示的第八轮的运算操作,完成行方向(列方向)操作,并获得8×8像素数据。
图8是示出用于执行8×8逆整数变换的行方向运算操作的运算控制单元101的操作的流程图。下文中,参考图8来说明用于执行8×8逆整数变换的行方向运算操作的运算控制单元101的操作。
在图8中,循环L5为其终止条件是对所输入的8×8像素数据的所有行(八行)完成了循环L5中的运算操作的循环。循环L6为其终止条件是图8所示的行方向运算次数已经达到了八的循环。下文中,所输入的8×8像素数据被称为“输入像素矩阵”。
在执行8×8逆整数变换的情况下,通过如图7所示的八个运算操作来执行处理,将(表达式3)中给出的一维行(列)方向变换表达式分为所述八个运算操作。
在第一轮列方向运算操作(循环L6=1st,步骤S300=1st)中,运算控制单元101输出输入选择指令信号,将该信号输入到输入选择单元102。输入选择指令信号包括从输入数据存储单元111中读取作为输入像素矩阵的第一行要素的in[0]、in[4]、in[2]和in[6]的指令和运算次数为一的通知(步骤S301)。
响应于输入选择指令信号,输入选择单元102从输入数据存储单元111中读取输入像素数据in[0]、in[4]、in[2]和in[6],并且将它们输入到端子p1至p8,如图7所示。
然后,运算控制单元101输出位移指令信号。位移指令信号包括用于位运算单元103和104不执行位移的指令和用于位运算单元105和106向右执行1位位移的指令(步骤S302)。
响应于位移指令信号,位运算单元105和106输出通过使输入的数据向右位移1位而产生的位移像素数据。
加法单元107将位运算单元103的输出加到端子p1的输入上。减法单元108从位运算单元104的输出中减去端子p4的输入。减法单元109从位运算单元105的输出中减去端子p5的输入。加法单元110将位运算单元106的输出加到端子p8的输入上。沿着行方向将通过这些加法和减法所获得的结果作为第一轮行方向运算结果存储到运算数据存储单元112。
在第二轮行方向运算操作(循环L6=2nd,步骤S300=2nd)中,运算控制单元101输出输入选择指令信号,将该信号输入到输入选择单元102。输入选择指令信号包括从运算数据存储单元112中读取第一轮的行方向运算结果的指令和运算次数为二的通知(步骤S303)。
响应于输入选择指令信号,输入选择单元102读取存储在运算数据存储单元112中的第一轮行方向运算结果,并将用于四个像素的输入数据输入到与第二轮运算操作相对应的端子p1至p8,如图7所示。
然后,运算控制单元101输出位移指令信号。位移指令信号包括用于位运算单元103、104、105和106不执行位移的指令(步骤S304)。
响应于位移指令信号,位运算单元103、104、105和106输出没有位移的输入数据。
加法单元107和110以及减法单元108和109根据所输入的数据执行运算操作,并且将第二轮的行方向运算结果存储在运算数据存储单元112中。
在第三轮行方向运算操作(循环L6=3rd,步骤S300=3rd)和第四轮行方向运算操作(循环L6=4th,步骤S300=4th)中,运算控制单元101输出输入选择指令信号,该信号包括从输入数据存储单元111中读取的指令和运算次数为三/四的通知(步骤S301)。同样,运算控制单元101输出位移指令信号,该信号命令位运算单元103和104不执行位移,并且命令位运算单元105和106向右执行1位位移(步骤S302)。
响应于输入选择指令信号,输入选择单元102从输入数据存储单元111中读取输入像素数据in[1]、in[3]、in[5]和in[7],并且根据运算次数将它们输入到端子p1至p8,如图7所示。
响应于位移指令信号,位运算单元105和106输出通过将数据向右位移1位而产生的位移像素数据。
加法单元107和110以及减法单元108和109执行运算操作。运算数据存储单元112沿着行方向存储第三轮行方向运算结果和第四轮行方向运算结果。
在第五轮行方向运算操作(循环L6=5th,步骤S300=5th)中,运算控制单元101输出输入选择指令信号,该信号包括从运算数据存储单元112中读取第三轮行方向运算结果和第四轮行方向运算结果的指令和运算次数为五的通知(步骤S303)。同样,运算控制单元101输出命令位运算单元103、104、105和106不执行位移的位移指令信号(步骤S304)。
响应于输入选择指令信号,输入选择单元102读取存储在输入数据存储单元111中的第三轮行方向运算结果和第四轮行方向运算结果,并且将用于八个像素的输入数据输入到它们的相应端子p1至p8,如图7所示。
响应于位移指令信号,位运算单元103、104、105和106输出没有位移的输入数据。
加法单元107和110以及减法单元108和109执行运算操作。运算数据存储单元112沿着行方向存储第五轮行方向运算结果。
在第六轮行方向运算操作(循环L6=6th,步骤S300=6th)中,运算控制单元101输出输入选择指令信号,该信号包括从运算数据存储单元112中读取第五轮行方向运算结果的指令和运算次数为六的通知(步骤S305)。同样,运算控制单元101输出命令位运算单元103、104、105和106向右执行2位位移的位移指令信号(步骤S306)。
响应于输入选择指令信号,输入选择单元102读取存储在运算数据存储单元112中的第五轮行方向运算结果,并且将其输入到其相应的端子p1至p8,如图7所示。
响应于位移指令信号,位运算单元103、104、105和106将输入数据向右位移两位,并将其作为位移像素数据输出。
加法单元107和110以及减法单元108和109执行运算操作。运算数据存储单元112沿着行方向存储第六轮行方向运算结果。
在第七轮行方向运算操作(循环L6=7th,步骤S300=7th)和第八轮行方向运算操作(循环L6=8th,步骤S300=8th)中,运算控制单元101输出输入选择指令信号,该信号包括从运算数据存储单元112中读取第二轮行方向运算结果和第六轮行方向运算结果的指令和运算次数为七/八的通知。同样,运算控制单元101输出命令位运算单元103、104、105和106不执行位移的位移指令信号(步骤S304)。
响应于输入选择指令信号,输入选择单元102读取存储在运算数据存储单元112中的第二轮行方向运算结果和第六轮行方向运算结果,并且将用于四个像素的输入数据输入到它们的相应端子p1至p8,如图7所示。
响应于位移指令信号,位运算单元103、104、105和106将输入数据作为没有对其进行位移的位移像素数据输出。
加法单元107和110以及减法单元108和109执行运算操作。运算数据存储单元112沿着行方向存储第七轮行方向运算结果和第八轮行方向运算结果。通过第七轮行方向运算结果和第八轮行方向运算结果,获得用于行方向运算操作中的一行的运算结果。
执行用于剩余七行的循环L6中的处理。结果,获得8×8矩阵行方向运算结果,并且将其存储在运算数据存储单元112中。
接着,整数变换器1000对所获得的8×8矩阵行方向运算结果执行列方向运算操作。在列方向运算操作中,运算控制单元101使运算单元100执行循环L6所示的八个运算操作,从而使运算单元100执行循环L6所示的八个运算操作以获得用于8×8矩阵行方向运算结果的每一列的一列数据,即总共八列数据。通过列方向运算操作获得的用于八列的像素数据是通过8×8逆整数变换获得的最终结果。由此,运算数据存储单元112将用于八列的像素数据作为输出像素矩阵输出。
这样,整数变换器1000能够执行8×8逆整数变换。
如上所述,运算控制单元101通过对应于运算次数将用于4×4逆整数变换和8×8逆整数变换的运算过程分为在运算单元100中的一个运算操作中可执行的单位来限定它们。另外,根据所使用的变换模式和运算次数,运算控制单元控制通过输入选择单元102输入到端子p1至p8的像素数据的组合以及用于位运算单元103至106的位移量(乘法系数)。由此,通过利用单个整数变换器1000可以实现在4×4逆整数变换与8×8逆整数变换之间的切换。
(在4×4整数变换情况下的操作)
在表达式6中给出用于4×4整数变换的行方向变换表达式,并且因此输入选择单元102将像素数据输入到端子p1至p8,如图9所示。运算控制单元101控制运算操作使得第二轮运算操作中的用于位运算单元105和106的位移量向左移一位。值得注意的是,这使得可以通过图3所示的电路来实现4×4整数变换。
[表达式6]
e[i][0]=d[i][0]+d[i][3],其中i=0,…,3
e[i][1]=d[i][1]+d[i][2],其中i=0,…,3
e[i][2]=d[i][1]-d[i][2],其中i=0,…,3
e[i][1]=d[i][0]-d[i][3],其中i=0,…,3
f[i][0]=e[i][0]+e[i][1],其中i=0,…,3
f[i][1]=(e[i][3]<<1)+e[i][2],其中i=0,…,3
f[i][2]=e[i][0]-e[i][1],其中i=0,…,3
f[i][3]=e[i][3]-(e[i][2]<<1),其中i=0,…,3
值得注意的是,在表达式6和图9中,d[i][j]相应于in[i],e[i][j]相应于a[i],而f[i][j]相应于b[i]。
(在8×8整数变换情况下的操作)
在表达式7中给出用于8×8整数变换的行方向变换表达式,并且因此输入选择单元102将像素数据输入到端子p1至p8,如图10A所示。运算控制单元101通过调整位移量来控制运算操作。值得注意的是,需要在端子p1、p4、p5和p8的输出侧上提供位运算单元103a、104a、105a和106a,如图10B所示。然而,在4×4整数变换的情况下,不需要使用添加的位运算单元103a、104a、105a和106a,并且可以通过利用单个整数变换器1000a实现在4×4整数变换与8×8整数变换之间的切换。
[表达式7]
g[i][0]=f[i][0]+f[i][7]
g[i][1]=f[i][1]+f[i][6]
g[i][2]=f[i][2]+f[i][5]
g[i][3]=f[i][3]+f[i][4]
g[i][4]=f[i][0]-f[i][7]
g[i][5]=f[i][1]-f[i][6]
g[i][6]=f[i][2]-f[i][5]
g[i][7]=f[i][3]-f[i][4]
h[i][0]=g[i][0]+g[i][3]
h[i][1]=g[i][1]+g[i][2]
h[i][2]=g[i][0]-g[i][3]
h[i][3]=g[i][1]-g[i][2]
h[i][4]=g[i][5]+g[i][6]+(g[i][4]>>1)+g[i][4]
        ={g[i][4]+g[i][6]}+{(g[i][4]>>1)+g[i][5]}
h[i][5]=g[i][4]-g[i][7]-(g[i][6]>>1)+g[i][6]
       ={g[i][4]+g[i][6]}-{(g[i][6]>>1)+g[i][7]}
h[i][6]=g[i][4]+g[i][7]-(g[i][5]>>1)+g[i][5]
       ={g[i][5]+g[i][7]}+{g[i][4]-(g[i][5]>>1)}
h[i][7]=g[i][5]-g[i][6]+(g[i][7]>>1)+g[i][7]
       ={g[i][5]+g[i][7]}+{g[i][6]-(g[i][7]>>1)}
k[i][0]=h[i][0]+h[i][1],其中i=0,…,7
k[i][2]=h[i][2]+(h[i][3]>>1),其中i=0,…,7
k[i][4]=h[i][0]-h[i][1],其中i=0,…,7
k[i][6]=(h[i][2]>>1)-h[i][3],其中i=0,…,7
k[i][1]=h[i][4]+(h[i][7]>>2),其中i=0,…,7
k[i][3]=h[i][5]+(h[i][6]>>2),其中i=0,…,7
k[i][5]=h[i][6]-(h[i][5]>>2),其中i=0,…,7
k[i][7]=-h[i][7]+(h[i][4]>>2),其中i=0,…,7
值得注意的是,在表达式7和图10A中,f[i][j]相应于in[i],g[i][j]相应于a[i],而k[i][j]相应于out[i]。值得注意的是,可以从表达式7和图10A中意识到h、b、b1和b2之间的相应性。
(在内16×16Hadamard变换情况下的操作)
在内16×16Hadamard变换的情况下,以4×4为单位执行Hadamard变换。对通过提取DC分量而获得的4×4矩阵执行Hadamard变换,其中所述DC分量是通过如图30所示那样以4×4为单位对16×16时域进行整数变换而获得的。用于Hadamard变换的变换表达式如表达式8所示。
[表达式8]
这里,Cij(i,j=0,1,…,3)表示所提取的DC分量。
将(1)展开为表达式9。
[表达式9]
C 00 + C 01 + C 02 + C 03 C 00 + C 01 - C 02 - C 03 C 00 - C 01 - C 02 + C 03 C 00 - C 01 + C 02 + C 03 C 010 + C 11 + C 12 + C 13 C 10 + C 11 - C 12 - C 13 C 10 - C 11 - C 12 + C 13 C 10 - C 11 + C 12 - C 13 C 20 + C 21 + C 22 + C 23 C 20 + C 21 - C 22 - C 23 C 20 - C 21 - C 22 + C 23 C 20 - C 21 + C 22 - C 23 C 30 + C 31 + C 32 + C 33 C 30 + C 31 - C 32 - C 33 C 30 - C 31 - C 32 + C 33 C 30 - C 31 + C 32 - C 33
这里,如在表达式10中那样进行限定。
[表达式10]
A=C00+C01,B=C00-C01,C=C02+C03,D=C02-C03
E=C10+C11,F=C10-C11,G=C12+C13,H=C12-C13
I=C20+C21,J=C20-C21,K=C22+C23,L=C22-C23
M=C30+C31,N=C30-C31,O=C32+C33,P=C32-C33
因此,如在表达式11中那样表示表达式9。
[表达式11]
A + C A - C B - D B + D E + G E - G F - H F + H I + K I - K J - L J + L M + O M - O N - P N + P
如在表达式12中那样限定表达式11。
[表达式12]
C 00 ' C 01 ' C 02 ' C 03 ' C 10 ' C 11 ' C 12 ' C 13 ' C 20 ' C 21 ' C 22 ' C 23 ' C 30 ' C 31 ' C 32 ' C 33 '
表达式12用于如在表达式13中那样扩展表达式8中的(2)。
[表达式13]
C 00 ' + C 10 ' + C 20 ' + C 30 ' C 01 ' + C 11 ' + C 21 ' + C 31 ' C 02 ' + C 12 ' + C 22 ' + C 32 ' C 03 ' + C 13 ' + C 23 ' + C 33 ' C 00 ' + C 10 ' - C 20 ' - C 30 ' C 01 ' + C 11 ' - C 21 ' - C 31 ' C 02 ' + C 12 ' - C 22 ' - C 32 ' C 03 ' + C 13 ' - C 23 ' - C 33 ' C 00 ' - C 10 ' - C 20 ' + C 30 ' C 01 ' - C 11 ' - C 21 ' + C 31 ' C 02 ' - C 12 ' - C 22 ' + C 32 ' C 03 ' - C 13 ' - C 23 ' + C 33 ' C 00 ' - C 10 ' + C 20 ' - C 30 ' C 01 ' - C 11 ' + C 21 ' - C 31 ' C 02 ' - C 12 ' + C 22 ' - C 32 ' C 03 ' - C 13 ' + C 23 ' - C 33 '
这里,如在表达式14中那样进行限定。
[表达式14]
A’=C00’+C01’,B’=C00’-C01’,C’=C02’+C03’,D’=C02’-C30’
E’=C10’+C11’,F’=C01’-C11’,G’=C21’+C31’,H’=C21’-C31’
I’=C02’+C12’,J’=C02’-C12’,K’=C22’+C32’,L’=C22’-C32’
M’=C03’+C13’,N’=C03’-C13’,O’=C23’+C33’,P’=C23’-C33’
因此,如在表达式15中那样表示表达式13。
[表达式15]
A ' + C ' E ' + G ' E ' + K ' M ' + O ' A ' - C ' E ' - G ' I ' - K ' M ' - O ' B ' - D ' F ' - H ' J ' - L ' N ' - P ' B ' + D ' F ' + H ' J ' + L ' N ' + P '
通过上述计算结果,可以理解可以通过图3中的整数变换器1000来计算内16×16Hadamard变换。具体地,整数变换器1000可以按照以下运算过程来执行运算操作。
(步骤1)运算控制单元101从DC分量的4×4矩阵(Cij)中水平读取一行四个系数,并且将它们输入到它们相应的端子p1至p8。值得注意的是,通过上述表达式,可以对于哪个端子接收输入进行限定。
(步骤2)运算控制单元101输出表示不执行位移的位移指令信号。
(步骤3)在第一轮运算操作中,加法单元107和110以及减法单元108和109计算表达式10所示的A、B、C和D,并将它们存储在运算数据存储单元112中。
(步骤4)在第二轮运算操作中,运算控制单元101输出表示从运算数据存储单元112中读取A、B、C和D的输入选择指令信号和位移指令,并且加法单元107和110以及减法单元108和109计算表达式11所示的第一行。由此,完成表达式9所示的第一行的计算。
(步骤5)类似地,计算表达式9所示的第二至第四行。结果,获得表达式12。
(步骤6)然后,运算控制单元101执行列方向运算操作以获得表达式13所示的矩阵。列方向运算操作类似于直到步骤5的行方向运算操作,并且因此可以通过运算单元100来执行。
这样,运算控制单元101还通过将内16×16hadamard变换分为在运算单元中的一个运算操作中可执行的单位来对应于运算次数限定它。因此,通过根据运算次数控制要被输入到运算单元100的像素数据的组合和位移量,运算控制单元101可以执行内16×16hadamard变换。虽然前面已经对用于编码的hadamard变换进行了说明,但是相同的变换表达式可以应用到用于解码的hadamard变换,并且因此可以通过整数变换器1000来执行它。
(在Chroma hadamard变换情况下的操作)
在Chroma hadamard变换情况下,以2×2为单位执行hadamard变换。如在表达式16中那样表示用于Chroma hadamard变换的变换表达式。
[表达式16]
这里,Cij(i,j=0,1)表示所提取的DC分量。
如在表达式17中那样展开(3)。
[表达式17]
C 00 + C 01 C 00 - C 01 C 10 + C 11 C 10 - C 11
这里,如表达式18中那样进行限定。
[表达式18]
A=C00+C01,B=C00-C01,C=C10+C11,D=C10-C11
然后,如在表达式19中那样展开(4)。
[表达式19]
A + C B + D A - C B - D |
通过上述计算结果,可以理解可以通过图3中的整数变换器1000来计算内Chroma hadamard变换。具体地,整数变换器1000按照以下运算过程来执行运算操作。
(步骤1)运算控制单元100使输入选择单元102从2×2矩阵(Cij)中读取四个系数,然后将它们输入到它们相应的端子p1至p8。值得注意的是,省略了关于哪个端子应该接收输入的任何参考,因为很容易通过上述表达式对其进行估计。
(步骤2)通过加法单元107和110以及减法单元108和109来计算A、B、C和D,并将它们存储在运算数据存储单元112中。
(步骤3)运算控制单元101使输入选择单元102读取存储在运算数据存储单元112中的A、B、C和D,并将它们输入到端子p1至p8,使得可以执行表达式19中的计算。由此,运算单元100可以计算表达式19所示的结果。
这样,运算控制单元101还通过将Chroma hadamard变换分为在运算单元中的一个运算操作中可执行的单位来对应于运算次数限定它。因此,通过根据运算次数控制要被输入到运算单元100的像素数据的组合和位移量,运算控制单元101可以执行Chroma hadamard变换。虽然前面已经对用于编码的Chroma hadamard变换进行了说明,但是相同的变换表达式可以应用到用于解码的Chroma hadamard变换,并且因此可以通过整数变换器1000来执行它。
值得注意的是,当被简称为hadamard变换时,其意味着内16×16hadamard变换和Chroma hadamard变换。
如上所述,运算控制单元101,运算控制单元101通过对应于运算次数将用于4×4逆整数变换、8×8逆整数变换、4×4整数变换、8×8整数变换以及hadamard变换的运算过程分为在运算单元100中的一个运算操作中可执行的单位来限定它们。同样,根据使用的变换模式和运算次数,运算控制单元控制要通过输入选择单元102输入到端子p1至p8的像素数据的组合以及用于位运算单元103至106的位移量(乘法系数)。由此,可以通过利用单个整数变换器1000实现在4×4逆整数变换、8×8逆整数变换、4×4整数变换、8×8整数变换以及hadamard变换之间的切换。
其原因如下。在第一实施例中所述的变换表达式当中,图7所示的用于8×8逆整数变换的第五轮算术表达式包括用于输入四个值(例如a1[1]、a1[5]、a2[1]和a2[5])以及输出两个值(例如,a[1]和a[5])的一对(*1)的两个算术表达式,并且存在两对的这种算术表达式(*1和*2)。其它算术表达式是用于输入两个值并输出两个值的算术表达式。能够实现用于8×8逆整数变换的第五轮算术表达式的电路的最小可能结构包括端子p1至p4、位运算单元103和104、加法单元107以及减法单元108。在运算单元100中,提供另一这样的最小可能结构(端子p5至p8、位运算单元105和106、减法单元109以及加法单元110)。将该最小可能结构称为“四-输入/两-输出电路”。当如在用于8×8逆整数变换的第五轮算术表达式之外的其它算术表达式中向两个端子输入相同值时,四-输入/两-输出电路用作两-输入/两-输出电路。因此,通过利用可以在四-输入/两-输出电路或者两-输入/两-输出电路中计算以允许运算控制单元101控制至少向其输入数据的端子和位移量的算术表达式,来限定4×4逆整数变换、8×8逆整数变换、4×4整数变换、8×8整数变换、内16×16Hadamard变换(4×4Hadamard变换)以及Chroma hadamard变换(2×2Hadamard变换),可以利用普通的整数变换器实现这些变换。
因此,图像编码装置和图像解码装置可以以分时的方式使用单个整数变换器,同时按照需要改变所使用的标准,并且因此能够处理各种编码标准,同时实现密集性。
第二实施例
将说明关于包含两个运算单元的整数变换器的第二实施例。因为根据第二实施例的整数变换器具有两个运算单元,所以可以提高整数变换器的处理速度。
图11是示出根据本发明第二实施例的整数变换器2000的结构的方框图。根据第二实施例的整数变换器应用于图1所示的整数变换单元12和逆整数变换单元16、以及图2所示的逆整数变换单元25。图11所示的整数变换器2000还应用于在图1和图2所示的图像解码装置和图像编码装置之外的其它图像解码装置和图像编码装置中的用于执行整数变换和逆整数变换的元件。
在图11中,整数变换器2000包括第一运算单元1100、第二运算单元2100、输入数据存储单元111、运算数据存储单元112以及运算控制单元201。在图11中,功能与第一实施例中的元件相似的元件由相同的参考标记表示,并且省略对其的说明。
图12是示出第一运算单元1100的结构的方框图。在图12中,第一运算单元1100包括输入选择单元1102、位运算单元1103、1104、1105和1106,加法单元1107和1110、以及减法单元1108和1109。第一运算单元1100的内部结构与第一实施例中所述的运算单元100的内部结构相似,并且因此省略对其的说明。
图13是示出第二运算单元2100的结构的方框图。在图13中,第一运算单元2100包括输入选择单元2102、位运算单元2103、2104、2105和2106,加法单元2107和2110、以及减法单元2108和2109。第二运算单元2100的内部结构与第一实施例中所述的运算单元100的内部结构相似,并且因此省略对其的说明。
运算控制单元201输出第一输入选择指令信号,该信号包括表示第一运算单元1100中的输入选择单元1102从输入数据存储单元111或者运算数据存储单元112中按照行方向或者列方向读取数据的指令以及表示当前的运算次数的指令。此外,运算控制单元201根据变换模式(4×4Hadamard变换、2×2Hadamard变换、4×4逆整数变换、8×8逆整数变换、4×4整数变换或者8×8整数变换)和运算次数来确定用于位运算单元1103、1104、1105和1106的位移量,并且将所确定的位移量作为第一位移指令信号输出到位运算单元1103、1104、1105和1106。
类似地,运算控制单元201输出第二输入选择指令信号,该信号包括表示第二运算单元2100中的输入选择单元2102从输入数据存储单元111或者运算数据存储单元112中按照行方向或者列方向读取数据的指令以及表示当前的运算次数的指令。此外,运算控制单元201根据变换模式(4×4Hadamard变换、2×2Hadamard变换、4×4逆整数变换、8×8逆整数变换、4×4整数变换或者8×8整数变换)和运算次数来确定用于位运算单元2103、2104、2105和2106的位移量,并且将所确定的位移量作为第二位移指令信号输出到位运算单元2103、2104、2105和2106。
在4×4Hadamard变换、2×2Hadamard变换、4×4逆整数变换以及4×4整数变换的情况下,运算控制单元201输出第一输入选择指令信号和第一位移指令信号,使得利用第一运算单元1100执行变换处理。在这种情况下,除了不使用第二运算单元2100之外,整数变换器2000的操作与根据第一实施例的整数变换器1000的操作相同,并且因此省略对其的说明。
在8×8逆整数变换和8×8整数变换的情况下,运算控制单元201使用第一和第二运算单元1100和2100以提高变换处理的速度。
(在8×8逆整数变换的情况下的操作)
图15是示出对应于运算次数的用于第一运算单元1100和第二运算单元2100的算术表达式的表。在运算控制单元201中限定图15所示的关系。限定方法不限于如在图15中的表格格式,并且并没有具体地限制。
图15所示的处理号与图7所示的运算次数有关,以便相应于相同的算术表达式。例如,图15中的处理号3与图7中的用于第三轮的运算次数有关。在图15所示的运算操作中,第一和第二运算单元1100和2100从输入数据存储单元111或运算数据存储单元112中读取与处理号相应的运算操作所需的数据,并且执行相似的运算操作。
图16是示出用于执行用于8×8逆整数变换的行方向运算操作的运算控制单元201的操作的流程图。下面,参考图16来说明用于执行8×8逆整数变换的行方向运算操作的运算控制单元201的操作。
在图16中,循环L7为其终止条件是对于所输入的8×8像素数据的所有行(八行)完成了循环L7中的运算操作的循环。循环L8为其终止条件是图16所示的行方向运算次数已经达到了四的循环。下文中,将所输入的8×8像素数据称为“输入像素矩阵”。
在用于输入像素矩阵的第一轮行方向运算操作(循环L8=1st,步骤S400=1st)中,运算控制单元201输出被输入到第一运算单元1100(步骤S401)的第一输入选择指令信号和被输入到第二运算单元2100(步骡S402)的第二输入指令信号。第一输入选择指令信号包括从输入数据存储单元111中读取输入像素数据in[1]、in[3]、in[5]和in[7]的指令和处理号为三的通知。第二输入选择指令信号包括从输入数据存储单元111中读取输入像素数据in[1]、in[3]、in[5]和in[7]的指令和处理号为四的通知。
响应于第一和第二输入选择指令信号,输入选择单元1102和2102以与第一实施例中的输入选择单元102的第三和第四轮运算操作相似的方式操作。
然后,运算控制单元201输出第一位移指令信号(步骤S403)和第二位移指令信号(步骤S404)。第一位移指令信号包括用于位运算单元1105和1106向右执行1位位移的指令。第二位移指令信号包括用于位运算单元2105和2106向右执行1位位移的指令。
响应于第一和第二位移指令信号,第一和第二运算单元1100和2100以与第一实施例中的运算单元100的第三和第四轮运算操作相似的方式操作。
在第二轮行方向运算操作(循环L8=2nd,步骤S400=2nd)中,运算控制单元201输出被输入到第一运算单元1100(步骤S411)的第一输入选择指令信号和被输入到第二运算单元2100(步骤S412)的第二输入指令信号。第一输入选择指令信号包括从输入数据存储单元111中读取输入像素数据in[0]、in[2]、in[4]和in[6]的指令和处理号为一的通知。第二输入选择指令信号包括读取存储在运算数据存储单元112中的第一轮行方向运算结果的指令和处理号为五的通知。
响应于第一和第二输入选择指令信号,输入选择单元1102和2102以与第一实施例中的输入选择单元102的第一和第五轮运算操作相似的方式操作。
然后,运算控制单元201输出第一位移指令信号(步骤S413)和第二位移指令信号(步骤S414)。第一位移指令信号包括用于位运算单元1105和1106向右执行1位位移的指令。第二位移指令信号包括用于位运算单元2103、2104、2105和2106不执行位移的指令。
响应于第一和第二位移指令信号,第一和第二运算单元1100和2100以与第一实施例中的运算单元100的第一和第五轮运算操作相似的方式操作。
在第三轮行方向运算操作(循环L8=3rd,步骤S400=3rd)中,运算控制单元201输出被输入到第一运算单元1100(步骤S421)的第一输入选择指令信号和被输入到第二运算单元2100(步骤S422)的第二输入指令信号。第一输入选择指令信号包括从运算数据存储单元112中读取第二轮行方向运算结果的指令和处理号为二的通知。第二输入选择指令信号包括从运算数据存储单元112中读取第二轮行方向运算结果的指令和处理号为六的通知。
响应于第一和第二输入选择指令信号,输入选择单元1102和2102以与第一实施例中的输入选择单元102的第二和第六轮运算操作相似的方式操作。
然后,运算控制单元201输出第一位移指令信号(步骤S423)和第二位移指令信号(步骤S424)。第一位移指令信号包括用于位运算单元1103、1104、1105和1106不执行位移的指令。第二位移指令信号包括用于位运算单元2103、2104、2105和2106向右执行2位位移的指令。
响应于第一和第二位移指令信号,第一和第二运算单元1100和2100以与第一实施例中的运算单元100的第二和第六轮运算操作相似的方式操作。
在第四轮行方向运算操作(循环L8=4th,步骤S400=4th)中,运算控制单元201输出被输入到第一运算单元1100(步骤S431)的第一输入选择指令信号和被输入到第二运算单元2100(步骤S432)的第二输入指令信号。第一输入选择指令信号包括从运算数据存储单元112中读取第三轮行方向运算结果的指令和处理号为七的通知。第二输入选择指令信号包括从运算数据存储单元112中读取第三轮行方向运算结果的指令和处理号为八的通知。
响应于第一和第二输入选择指令信号,输入选择单元1102和2102以与第一实施例中的输入选择单元102的第七和第八轮运算操作相似的方式操作。
然后,运算控制单元201输出第一位移指令信号(步骤S433)和第二位移指令信号(步骤S434)。第一位移指令信号包括用于位运算单元1103、1104、1105和1106不执行位移的指令。第二位移指令信号包括用于位运算单元2103、2104、2105和2106不执行位移的指令。
响应于第一和第二位移指令信号,第一和第二运算单元1100和2100以与第一实施例中的运算单元100的第七和第八轮运算操作相似的方式操作。
对剩余的七行执行循环L8中的处理。由此,获得8×8×8矩阵行方向运算结果,并将其存储到运算数据存储单元112。
然后,在用于对所获得的8×8矩阵行方向运算结果执行列方向运算操作的列方向运算操作中,整数变换器2000使第一和第二运算单元1100和2100各自执行循环L8所示的四个算术运算,从而使第一和第二运算单元1100和2100各自执行循环L8所示的四个运算操作以获得用于8×8矩阵行方向运算结果的每一列的一列数据,即总共八列数据。通过列方向运算操作获得的八列像素数据是通过8×8逆整数变换获得的最终结果。由此,运算数据存储单元112输出八列像素数据作为输出像素矩阵。
这样,整数变换器2000能够执行8×8逆整数变换。
(在8×8整数变换的情况下的操作)
与上面对8×8逆整数变换的说明一样,其中以图15中的处理顺序执行图7中的处理过程,通过同时执行在图10A中的处理号(1、2)、(4、5)、(3、6)或(7、8)中的操作,可以利用图11中的电路实现8×8整数变换。
值得注意的是在上述实施例中,第一和第二整数变换器1100和2100并联连接以并行地执行运算操作,但是第一和第二整数变换器1100和2100也可以串联连接以提高处理速度。具体地,图3所示的运算单元100可以串联连接,并且运算控制单元可以使各运算单元100中的输入选择单元102获取需要的数据,使得在较后级的运算单元100执行运算操作的同时,较前级的运算单元执行下一运算操作。例如,在用于4×4逆整数变换的运算操作中,使较前级的运算单元1100执行图4中的第一轮计算,而使较后级的运算单元2100执行第二轮计算并且顺序地将行方向数据输入到较前级的运算单元1100,由此使得能够从较后级的运算单元2100中顺序地获得行方向结果,并且与第一实施例相比提高处理速度。
值得注意的是,本发明不限于其中存在两个整数变换器的情况,而可以使用三个或更多的变换器。即使在三个或更多整数变换器的情况下,只要变换器并联或串联连接并且运算控制单元控制要被输入的数据和位移量,就可以正确地执行变换处理。例如,通过构造如图14所示的运算单元,使得如图14所示的每一个运算单元可以执行与图7中的运算次数相应的运算操作。由此,可以提高用于8×8逆整数变换的处理速度。值得注意的是,在4×逆整数变换等中,仅可以使用第一和第二轮运算单元来经由虚线路经执行向输入数据存储单元的输出。
值得注意的是,在上述实施例中,运算单元并联或串联连接以通过流水线处理执行8×8逆整数变换和8×8整数变换,但是通过将运算单元并联或串联连接,还可以对4×4逆整数变换、4×4整数变换、4×4Hadamard变换以及2×2Hadamard变换执行流水线处理。具体地,不同的运算单元可以用于各个算术表达式以提高处理速度。
虽然在上述实施例中,不同的运算单元可以用于各个算术表达式以提高8×8逆整数变换、8×8整数变换、4×4逆整数变换、4×4整数变换、4×4Hadamard变换以及2×2Hadamard变换的处理速度,但是,不同的运算单元可以用于各个像素以提高处理速度。
根据第二实施例,运算控制单元201对应于运算次数预先限定多个运算单元当中的哪一个运算单元接收需要的像素数据并执行需要的运算操作,并且使用并联或串联的运算单元。这样,通过利用并联或串联连接的基本运算单元,使得可以利用简单的结构执行流水线处理,并且因此可以提供具有提高的处理速度的图像编码装置和图象解码装置。
第三实施例
将说明关于图像编码装置和图象解码装置的第三实施例,所述图像编码装置和图象解码装置是小尺寸的但能够处理DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换、2×2Hadamard变换以及新引进的未知的变换方法。
首先说明图像编码装置和图象解码装置的示意性结构。图17是示出图象编码装置3的示意性结构的方框图。图17仅示出用于通过将时域变换为频域来执行压缩的特征,而省略了通过运动补偿预测等来压缩的特征。在图17中,图像编码装置3包括图像数据输入单元31、时间-频率变换单元32、量化单元33以及压缩数据输出单元34。图像数据输入单元31将时域图像数据输入到时间-频率变换单元32。时间-频率变换单元32将时域图像数据变换为频域图像数据。时间-频率变换单元32使用DCT、4×4整数变换、8×8整数变换、4×4Hadamard变换、2×2Hadamard变换或新引进的未知的变换方法以执行从时域到频域的变换。量化单元33通过对频域图像数据进行可变长度编码来量化它,由此压缩原始图像数据。压缩数据输出单元34输出或存储压缩图像数据。
图18是示出图象解码装置4的示意性结构的方框图。图18仅示出用于通过将频域变换为时域来解码的特征,但省略了通过运动补偿预测等来解码的特征。在图18中,图像解码装置4包括压缩数据输入单元41、反向量化单元42、频率-时间变换单元43以及图像数据输出单元44。压缩数据输入单元41将压缩图像数据输入到反向量化单元42。反向量化单元42反向量化图像数据以实现可变长度的解码,由此获得频域图像数据。频率-时间变换单元43将频域图像数据变换为时域图像数据。频率-时间变换单元43使用逆DCT、4×4逆整数变换、8×8逆整数变换、4×4Hadamard变换、2×2Hadamard变换或新引进的未知的变换方法以执行从频域到时域的变换。图像数据输出单元44输出或存储通过频率-时间变换单元43所获得的时域图像数据。
时间-频率变换单元32和频率-时间变换单元43能够执行DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换、2×2Hadamard变换以及新引进的新颖的变换方法。可以利用普通元件实现时间-频率变换单元32和频率-时间变换单元43。下文中,将时间-频率变换单元32和频率-时间变换单元43简称为“变换单元3000”。
图19是示出变换单元3000的结构的方框图。在图19中,变换器3000包括输入数据存储单元3001、输入选择单元3002、运算单元3010、运算数据存储单元3009、乘法设定单元3011、运算次序管理单元3012、变换模式设定单元3013、第一乘数存储单元3014、第二乘数存储单元3015、新变换模式乘数存储单元3016和新乘数设定单元3017。运算单元3010具有乘法单元3003、3004、3005和3006、以及加法单元3007和3008。乘法设定单元3011、运算次序管理单元3012、第一乘数存储单元3014、第二乘数存储单元3015、新变换模式乘数存储单元3016和新乘数设定单元3017组成运算控制单元。
在第三实施例中可利用的变换方法有DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换、2×2Hadamard变换以及新引进的新颖的变换方法。通过未示出的处理器在变换模式设定单元3013中设定新颖的变换模式。
输入数据存储单元3001是用于存储以变换为目标的数据的存储器。运算数据存储单元3009是用于存储从运算单元3010输出的运算后数据的存储器。
运算次序管理单元3012根据由变换模式设定单元3013管理的变换模式来管理用于变换的运算次数,并向输入选择单元3002通知当前的运算次数。响应于来自运算次序管理单元3012的通知,输入选择单元3002从输入数据存储单元3001或运算数据存储单元3009中读取需要的数据,并将所读取的数据输入到端子p1至p4当中的任意合适的端子。根据变换方法和运算次数来预先确定输入选择单元3002从输入数据存储单元3001中读取那些数据以及输入选择单元3002从运算数据存储单元3009中读取那些数据。
第一乘数存储单元3014在其中存储DCT和逆DCT所需的乘数(乘法系数)。值得注意的是,在图像编码装置3中,第一乘数存储单元3014可以在其中仅存储用于DCT的乘数。同样,在图像解码装置4中,第一乘数存储单元3014可以在其中仅存储用于逆DCT的乘数。
第二乘数存储单元3014具有在其中存储用于H.264中的变换的乘数,即,4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换和2×2Hadamard变换所需的乘数。值得注意的是,在图像编码装置3中,第一乘数存储单元3014可以在其中仅存储用于4×4整数变换、8×8整数变换、4×4Hadamard变换和2×2Hadamard变换的乘数。同样,在图像解码装置4中,第一乘数存储单元3014可以在其中仅存储用于4×4逆整数变换、8×8逆整数变换、4×4Hadamard变换和2×2Hadamard变换的乘数。
当需要引进新的变换模式时,新乘数设定单元3017可以对应于运算次数来设定在新变换模式中使用的乘数。新变换模式乘数存储单元3016是用于存储经由新乘法设定单元3017通过未示出的处理器等设定的新乘数的存储器。
乘数设定单元3011对应于运算次数来预存储要在乘法单元3003至3006中使用的乘数。乘数设定单元3011根据由变换模式设定单元3013管理的当前变换模式和由运算次序管理单元3012管理的运算次数来从第一至第三乘数存储单元3014、3015和3016中的任意一个中读取需要的乘数。乘数设定单元3011将所读取的乘数输入到正确的乘法单元3003至3006。
在运算单元3010中,乘法单元3003至3006在将输入到端子p1至p4的数据乘以来自乘法设定单元3011的乘数之后将其输出。加法单元3007将从乘法单元3003输出的数据和从乘法单元3004输出的数据相加,并将其输出。加法单元3008将从乘法单元3005输出的数据和从乘法单元3006输出的数据相加,并将其输出。将从加法单元3007和3008输出的数据存储到运算数据存储单元3009。当完成所有行和列方向运算操作时,运算数据存储单元3009将运算结果作为输出像素数据输出。
接着说明运算单元3010的结构为何能够计算所有的DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换和2×2Hadamard变换的原因。
图20是用于说明运算单元3010中的运算流程的数据流表示。首先,说明如何观察图20。在图20中,右测的α和β表示输入,而左测的γ和δ表示输出。乘数由线上的a、b、c和d表示。图20所示的数据流导致γ=b×α+c×β和δ=d×α+a×β。在运算单元3010中,当将端子p1的输入作为α,将端子p3的输入作为β,将乘法单元3003中的乘数被作为d,以及将乘法单元3004中的乘数作为a时,从加法单元3007输出的值为δ=d×α+a×β。另外,在运算单元3010中,当将端子p2的输入作为α,将端子p4的输入作为β,将乘法单元3005中的乘数作为b,以及将乘法单元3006中的乘数作为c时,从加法单元3008输出的值为γ=b×α+c×β。因此,可以说图20所示的基本数据流表示通过运算单元3010的运算操作获得的数据流。
这样,运算单元3010能够执行可以实施如图20所示的两-输入/两-输出数据流的运算处理。能够实施两-输入/两-输出数据流的运算处理被称为“基本单位的运算处理”。
如果期望通过变换单元3000处理的变换模式可以通过重复图20所示的基本数据流的运算操作来实现,则能够允许变换单元3000执行所有的DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换和2×2Hadamard变换。因此,运算控制单元通过对于每一运算次数将用于每一变换模式的运算过程分为作为基本单位的运算处理来限定它,以使运算单元3010重复作为基本单位的运算处理,由此使能够执行每一种变换。
因此,本发明人通过处理用于DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换和2×2Hadamard变换中的每一个变换的算术表达式来获得用于重复基本单位的运算操作的数据流(参见图21至图27)。
图21是示出用于逆DCT变换的数据流的图。通过举例的方式来说明在图21中的以虚线椭圆形封闭的部分A中的运算流程。在图21中,CSk=Cos(kπ/16)。将输入数据X0输入到端子p1和p2。将输入数据X4输入到端子p3和p4。将用于乘法单元3003的乘数作为CS4。将用于乘法单元3004的乘数看作为CS4。将用于乘法单元3005的乘数作为CS4。将用于乘法单元3006的乘数作为CS4。因此,从加法单元3007输出p’i4。从加法单元3008中输出p’i0。图21所示的所有数据流由诸如部分A的基本单位数据流(下文中称之为“基本数据流”)的组合构成。这里,将基本数据流的运算操作的执行称为“一个运算操作”。因此,当通过变换模式设定单元3013将当前的变换模式设定为逆DCT时,乘法设定单元3011根据图21所示的数据流将与每一运算次数相关的乘数输入到乘法单元3003至3006。输入选择单元3002从输入数据存储单元3001或者运算数据存储单元3009中读取需要的数据,并将其输入到对应于运算次数的端子p1至p4。
为了证实,将参考图21所示的数据流来说明变换器3000如何将乘数和数据输入到运算单元3010。变换器3000的设计者首先选择用于图21所示的数据流的一个基本数据流。然后,在所选择的基本数据流中,确定相应于图20所示的α的数据被输入到端子p1和p2。确定相应于图20所示的β的数据被输入到端子p3和p4。确定相应于图20所示的a的乘数被输入到乘法单元3006。确定相应于图20所示的b的乘数被输入到乘法单元3003。确定相应于图20所示的c的乘数被输入到乘法单元3004。确定相应于图20所示的d的乘数被输入到乘法单元3005。可以对每一个所选择的基本数据流(对每一个运算次数)限定这种规则,以设计输入选择单元3002、运算次序管理单元3012、乘数设定单元3011和第一乘数存储单元3014。变换器3000根据图21所示的数据流来执行行和列方向运算操作,并输出变换的像素数据。
上述用于设计变换器3000的方法可类似地用于其它变换模式,并且因此对于其它变换模式,仅示出数据流。
值得注意的是,通过将用于逆DCT变换的数据流箭头指向相反的方向并分别将左侧和右侧看作输入和输出级,同时使乘数不变,可以实现DCT变换。因此,可以将逆DCT变换和DCT变换作为公共乘数存储在第一乘法存储单元3014中。
图22是示出用于8×8逆整数变换的数据流的图。如图22所示,通过组合基本数据流还能够执行用于8×8逆整数变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,还可以利用图19所示的运算单元3010的结构来计算8×8逆整数变换。将8×8逆整数变换所需的乘数存储在第二乘数存储单元3015中。除了乘数之外,图21所示的数据流和图22所示的数据流相同,并且因此可以通过相似的过程来计算逆DCT变换和8×8逆整数变换。因此,可以简化变换器3000的结构。
图23是示出用于8×8整数变换的数据流的图。如图23所示,还能够通过组合基本数据流来执行用于8×8整数变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,可以利用图19所示的运算单元3010的结构来计算8×8整数变换。将8×8整数变换所需的乘数存储在第二乘数存储单元3015中。
图24是示出用于4×4逆整数变换的数据流的图。如图24所示,还能够通过组合基本数据流来执行用于4×4逆整数变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,还可以利用图19所示的运算单元3010的结构来计算4×4逆整数变换。将4×4逆整数变换所需的乘数存储在第二乘数存储单元3015中。如通过将图24与图22相比较可以看出那样,用于以虚线框B封闭的区域的计算过程在它们之间被复制。因此,对于4×4逆整数变换,变换单元3000可以在用于8×8逆整数变换的计算过程的中间停止操作。
图25是示出用于4×4整数变换的数据流的图。如图25所示,还能够通过组合基本数据流来执行用于4×4整数变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,还可以利用图19所示的运算单元3010的结构来计算4×4整数变换。将4×4整数变换所需的乘数存储在第二乘数存储单元3015中。如通过将图25与图23相比较可以看出的那样,用于以虚线框C封闭的区域的输入次序在它们之间一致,尽管有一些乘数是不同的。因此,对于4×4整数变换,变换器3000可以在用于8×8整数变换的计算过程的中间停止操作。
图26是示出用于4×4Hadamard变换的数据流的图。如图26所示,还能够通过组合基本数据流来执行用于4×4Hadamard变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,还可以利用图19所示出的运算单元3010的结构来计算4×4Hadamard变换。将4×4Hadamard变换所需的乘数存储在第二乘数存储单元3015中。
图27是示出用于2×2Hadamard变换的数据流的图。如图27所示,还能够通过组合基本数据流来执行用于2×2Hadamard变换的行方向运算操作。类似地,能够执行列方向运算操作。因此,还可以利用图19所示的运算单元3010的结构来计算2×2Hadamard变换。将2×2Hadamard变换所需的乘数存储在第二乘数存储单元3015中。
当新变换模式出现时,设计者将用于新变换模式的运算过程分为基本单位的运算处理,并对应于运算次数来设置像素数据的组合和乘法系数。其后,如上所述可以产生数据流以确定乘数和计算过程。对应于运算次数将所确定的乘数输入到新乘数设定单元3017。另外,关于应该从输入数据存储单元3001和运算数据存储单元3009中读取那些数据,对应于运算次数向新乘数设定单元3017提供输入。新乘数设定单元3017使新变换模式乘数存储单元3016对应于运算次数存储输入的乘数,并记住应从输入数据存储单元3001和运算数据存储单元3009中读取那些数据。值得注意的是,在新变换方法中执行8×8矩阵变换的情况下,计算过程与用于DCT和8×8整数变换的计算过程相同,并且因此能够容易将运算次数与乘数和所读取的目标相联系。当在变换模式设定单元3013中设定新的运算方法时,乘法设定单元3011从新的变换模式乘数存储单元3016中读取用于每一运算次数的正确乘数,并将它们输入到运算单元3010,以及经由运算次序管理单元3012将关于应读取那些数据的指令提供给输入选择单元3002。这样,即使在新变换方法的情况下,通过利用基本数据流的则合来设定数据流,能够使用利用其它变换方法的共同变换单元。
这样,根据第三实施例,通过根据基本数据流的组合在每一变换模式中执行变换,能够共享运算单元,并且因此能够提供小尺寸的但能处理DCT、逆DCT、4×4整数变换、4×4逆整数变换、8×8整数变换、8×8逆整数变换、4×4Hadamard变换、2×2Hadamard变换和新引进的未知的变换方法的图像编码装置和图像解码装置。
值得注意的是,在第三实施例中,已经提出能够在逆DCT与DCT之间以及在整数变换与逆整数变换之间切换的图像编码装置和图像解码装置,但仅可以切换整数变换和逆整数变换。
第四实施例
图28是示出根据第四实施例的变换器4000的结构的方框图。在图28中,变换器4000包括输入数据存储单元4001、多个运算单元4002、运算控制单元4003、以及运算数据存储单元4004。在图28中,输入数据存储单元4001存储输入数据。以与图19所示出的运算单元3010相似的方式来构造每一运算单元4002。并联连接运算单元4002。运算数据存储单元4004存储通过运算单元4002的运算操作而获得的数据。运算控制单元4003根据变换模式和运算次数向运算单元4002指定从其中读取数据的目标和乘数。运算控制单元4003向每一运算单元4002指定所需要的乘数和从其中读取数据的目标,使得通过运算单元4002同时执行在第三实施例中以基本数据流为单位执行的运算操作。运算控制单元4003包括在图19中示出的运算次序管理单元3012、乘数设定单元3011、变换模式设定单元3013、第一至第二乘数存储单元3014和3015,新变换模式乘数存储单元3016以及新乘数设定单元3017。与在第三实施例中不同,乘数设定单元3011向每一运算单元4002指定需要的乘数和从其中读取数据的目标,从由运算单元4002同时执行多个运算操作。
这样,根据第四实施例,在利用并联的运算单元之前,运算控制单元4003对应于运算次数来预先限定多个运算单元中的哪一个接收像素数据并被促使执行需要的运算操作。因为可以使变换单元以基本数据流为单位执行运算操作,所以可以提高变换器的处理速度。
虽然前面已经对于其中使运算单元4002以基本数据流为单位执行运算操作的情况进行了说明,但是运算控制单元4003可以使运算单元4002变换以变换为目标的像素数据。
第五实施例
图29是示出根据第五实施例的变换器5000的结构的方框图。在图29中,变换器5000包括输入数据存储单元5001、多个运算单元5002、运算控制单元5003、以及运算数据存储单元5004。在图29中,输入数据存储单元5001存储输入数据。以与图19所示的运算单元3010相似的方式来构造每一运算单元5002。运算单元5002串联连接。运算数据存储单元5004存储通过最后一级的运算单元5002的运算操作而获得的数据。运算控制单元5003根据变换模式和运算次数向运算单元5002指定从其中读取数据的目标和乘数。因为运算单元5002串联连接,所以运算控制单元5003命令第一级运算单元之外的其它运算单元5002使用它们的前一个运算单元5002的运算结果。另一方面,运算控制单元5003命令第一级的运算单元5002从运算数据存储单元5004或者输入数据存储单元5001中读取数据。运算单元5002各自执行如在第三实施例中执行的以基本数据流为单位的运算操作。在一个运算单元5002以基本数据流为单位执行运算操作的同时,其它运算单元5002也以基本数据流为单位执行其它运算操作。结果,同时执行多个运算操作,由此提高处理速度。
运算控制单元5003包括在图19中示出的运算次序管理单元3012、乘数设定单元3011、变换模式设定单元3013、第一至第二乘数存储单元3014和3015、新变换模式乘数设定单元3016、以及新乘数设定单元3017。与在第三实施例中不同,乘数设定单元3011向每一运算单元5002指定需要的乘数和要从其中读取数据的目标,从而由运算单元5002同时执行多个运算操作。
这样,根据第五实施例,在利用并联的运算单元之前,运算控制单元5003结合运算次数来预先限定多个运算单元中的哪一个接收需要的像素数据并被促使执行需要的运算操作。因为可以使变换单元以基本数据流为单位执行运算操作,所以可以提高变换器的处理速度。
虽然前面已经对于其中使运算单元5002以基本数据流为单位执行运算操作的情况进行了说明,但是运算控制单元5003可以使运算单元5002变换以变换为目标的像素数据。
值得注意的是,可以将在图3、图10B、图11、图12、图13、图14、图19、图28和图29中示出的功能块中的每一个实施为LSI,其为集成电路。可以将这些功能块形成到一个芯片中或者一个芯片可以包括它们中的部分或全部。虽然这里提及LSI,但是取决于集成度的差异,可以将其称为“IC”、“系统LSI”、“特大LSI”或“超LSI”。另外,电路集成方法不限于LSI,并且可以通过专用电路或者通用处理器来实施电路集成。此外,在制造LSI之后可以被编程的FPGA(现场可编程门阵列)和允许重构LSI中的电路单元的连接和设置的可重构处理器。此外,当替换LSI的电路集成技术随着半导体技术的发展或者由于另一种派生技术而出现时,这种技术可以自然地用于集成功能块。例如,可以考虑生物技术的应用。
值得注意的是,可以以软件的形式实现本发明。具体地,将能够执行上述操作的程序存储在包括存储单元的计算机装置中,并且当变换像素数据时,可以在CPU中执行该程序,同时将需要的数据适当地存储到存储单元,由此获得变换的像素数据。
虽然已经详细地说明了本发明,但是前面的说明在各个方面都是示例性的且非限制性的。可以理解在不脱离本发明的范围的情况下可以设计出许多其它的修改和变化。
工业应用性
根据本发明的整数变换器能够利用一个电路执行只有H.264才有的矩阵运算操作,并且其作为构成硬件引擎的一部分的系统LSI等是有用的,所述硬件引擎用于期望是小尺寸的便携式产品等。另外,通过流水线处理可以提高处理速度,并且因此其可以用于诸如HDTV(高清晰电视)的应用。此外,提供能够处理DCT、逆DCT、整数变换、逆整数变换、Hadamard变换和新变换方法的小尺寸变换器,其对于图像编码/解码装置等是非常有用的。

Claims (26)

1、一种图像解码装置,用于按照需要通过在多个从频域到时域的变换模式之间进行切换来对压缩的图像数据进行解码,该装置包括:
运算单元,用于对多个输入像素数据执行运算处理;
运算数据存储单元,用于存储所述运算单元的运算结果;
输入选择单元,用于选择是从被压缩的图像数据中还是从存储在所述运算数据存储单元中的像素数据中读取要被输入到运算单元的像素数据,并将所读取的像素数据输入到所述运算单元;
以及运算控制单元,用于根据所述运算单元中的运算次数和所使用的变换模式来控制目标以及以所述运算单元进行的运算处理为目标的像素数据的组合和用于所述运算处理的乘法系数,其中从所述目标中读取通过所述输入选择单元输入到所述运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在所述运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
2、根据权利要求1所述的图像解码装置,
其中将所述运算单元配置成能够执行整数运算,并且
其中所述运算控制单元控制以整数运算为目标的像素数据的组合以及作为所述乘法系数的用于所述运算单元的位移量。
3、根据权利要求2所述的图像解码装置,
其中所述运算单元包括:
第一至第八端子;
第一位运算单元,用于位移所述第二端子的输入;
第二位运算单元,用于位移所述第三端子的输入;
第三位运算单元,用于位移所述第六端子的输入;
第四位运算单元,用于位移所述第七端子的输入;
第一加法单元,用于将所述第一端子的输入加到所述第二位运算单元的输出;
第一减法单元,用于将所述第四端子的输入从所述第一位运算单元的输出中减去;
第二减法单元,用于将所述第五端子的输入从所述第四位运算单元的输出中减去;和
第二加法单元,用于将所述第八端子的输入加到所述第三位运算单元的输出,
其中所述运算数据存储单元存储所述第一和第二加法单元以及所述第一和第二减法单元的运算结果,且
其中所述运算控制单元根据变换模式和运算次数来控制要被输入到所述第一至第八端子的像素数据和用于所述第一至第四位运算单元的位移量。
4、根据权利要求2所述的图像解码装置,
其中所述多个变换模式包括4×4逆整数变换、8×8逆整数变换以及Hadamard变换当中的至少两个。
5、根据权利要求1所述的图像解码装置,
其中所述运算控制单元通过对于每一运算次数将运算过程分为作为基本单位的所述运算处理来限定每一个变换模式中的运算过程,
其中将所述运算单元配置成能够执行作为基本单位的所述运算处理,
并且所述运算控制单元控制以所述运算处理为目标的像素数据的组合和所述乘法系数,使得由所述运算单元来重复作为基本单位的所述运算处理。
6、根据权利要求5所述的图像解码装置,其中作为基本单位的运算处理构成能够实现两-输入/两-输出数据流的运算处理。
7、根据权利要求5所述的图像解码装置,其中所述运算控制单元能够对应于运算次数存储用于新变换模式的像素数据的组合和所述乘法系数,并且当使用所述新变换模式时,所述运算控制单元可以根据所存储的内容来控制所述输入选择单元和所述运算单元。
8、根据权利要求5所述的图像解码装置,
其中所述运算单元包括:
第一至第四端子;
第一乘法单元,用于对所述第一端子的输入执行乘法处理;
第二乘法单元,用于对所述第三端子的输入执行乘法处理;
第三乘法单元,用于对所述第二端子的输入执行乘法处理;
第四乘法单元,用于对所述第四端子的输入执行乘法处理;
第一加法单元,用于将所述第一乘法单元的输出加到所述第二乘法单元的输出;和
第二加法单元,用于将所述第三乘法单元的输出加到所述第四乘法单元的输出,
其中所述运算数据存储单元存储所述第一和第二加法单元的运算结果,并且
其中所述运算控制单元使所述输入选择单元根据变换模式和运算次数控制要被输入到所述第一至第四端子的像素数据和作为用于所述第一至第四乘法单元的乘法系数的乘数。
9、根据权利要求8所述的图像解码装置,
其中所述运算控制单元包括:
乘数存储单元,用于存储与变换模式相关的乘数;
乘数设定单元,用于设定用于所述第一至第四乘法单元的乘数;
变换模式设定单元,用于管理变换模式;以及
运算次序管理单元,用于管理所述运算单元中的运算次序,
其中根据由所述变换模式设定单元管理的当前变换模式和由所述运算次序管理单元管理的运算次数,所述乘数设定单元可以从所述乘数存储单元中读取正确的乘数并设定用于所述第一至第四乘法单元的乘数,并且
其中根据当前的变换模式和运算次数,所述运算次序管理单元可以使所述输入选择单元控制要输入到所述第一至第四端子的像素数据。
10、根据权利要求9所述的图像解码装置,
其中所述运算控制单元还包括:
乘数设定单元,用于对应于运算次数设定在新变换模式中使用的乘数;以及
新变换模式乘数存储单元,用于存储由所述乘数设定单元设定的乘数,
其中当使用所述新变换模式时,
所述乘数设定单元从所述新变换模式乘数存储单元中读取与运算次数相关的乘数,并设定用于所述第一至第四乘法单元的乘数,并且
所述运算次序管理单元使所述输入选择单元根据运算次数来控制要输入到所述第一至第四端子的像素数据。
11、根据权利要求5所述的图像解码装置,其中所述多个变换模式包括逆离散余弦变换、4×4逆整数变换、8×8逆整数变换以及Hadamard变换当中的至少两个。
12、根据权利要求1所述的图像解码装置,
其中多个运算单元并联或串联连接,并且
其中所述运算控制单元控制并联或串联连接的所述运算单元。
13、一种图像编码装置,用于按照需要通过在多个从时域到频域的变换模式之间进行切换来对图像数据进行编码,该装置包括:
运算单元,用于对多个输入像素数据执行运算处理;
运算数据存储单元,用于存储所述运算单元的运算结果;
输入选择单元,用于选择是从被压缩的图像数据中还是从存储在所述运算数据存储单元中的像素数据中读取要被输入到所述运算单元的像素数据,并将所读取的像素数据输入到所述运算单元;
以及运算控制单元,用于根据所述运算单元中的运算次数和所使用的变换模式来控制目标以及以所述运算单元进行的所述运算处理为目标的多个像素数据的组合和用于所述运算处理的乘法系数,其中从所述目标中读取通过所述输入选择单元输入到所述运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在所述运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
14、根据权利要求13所述的图像编码装置,
其中将所述运算单元配置成能够执行整数运算,并且
其中所述运算控制单元控制以整数运算为目标的像素数据的组合和作为乘法系数的用于所述运算单元的位移量。
15、根据权利要求14所述的图像编码装置,
其中所述运算单元包括:
第一至第八端子;
第一位运算单元,用于位移所述第二端子的输入;
第二位运算单元,用于位移所述第三端子的输入;
第三位运算单元,用于位移所述第六端子的输入;
第四位运算单元,用于位移所述第七端子的输入;
第五位运算单元,用于位移所述第一端子的输入;
第六位运算单元,用于位移所述第四端子的输入;
第七位运算单元,用于位移所述第五端子的输入;
第八位运算单元,用于位移所述第八端子的输入;
第一加法单元,用于将所述第五端子的输出加到所述第二位运算单元的输出;
第一减法单元,用于将所述第一端子的输出从所述第六位运算单元的输出中减去;
第二减法单元,用于将所述第七端子的输出从所述第四位运算单元的输出中减去;和
第二加法单元,用于将所述第八位运算单元的输出加到所述第三位运算单元的输出,
其中所述运算数据存储单元存储所述第一和第二加法单元以及所述第一和第二减法单元的运算结果,并且
其中所述运算控制单元根据变换模式和运算次数控制要被输入到所述第一至第八端子的像素数据和用于所述第一至第四位运算单元的位移量。
16、根据权利要求14所述的图像编码装置,
其中所述多个变换模式包括4×4逆整数变换、8×8逆整数变换、4×4整数变换、8×8整数变换以及Hadamard变换当中的至少两个。
17、根据权利要求13所述的图像编码装置,
其中所述运算控制单元通过对于每一运算次数将每一个变换模式中的运算过程分为作为基本单位的运算处理来限定所述过程,
其中将所述运算单元配置成能够执行作为基本单位的运算处理,并且
其中所述运算控制单元控制以运算处理为目标的像素数据的组合和乘法系数,从而通过所述运算单元来重复作为基本单位的运算处理。
18、根据权利要求17所述的图像编码装置,其中作为基本单位的运算处理构成能够实施两-输入/两-输出数据流的运算处理。
19、根据权利要求17所述的图像编码装置,其中运算控制单元能够对应于运算次数存储用于新变换模式的像素数据的组合和所述乘法系数,并且当使用新变换模式时,运算控制单元可以根据所存储的内容来控制输入选择单元和运算单元。
20、根据权利要求17的图像编码装置,
其中所述运算单元包括:
第一至第四端子;
第一乘法单元,用于对所述第一端子的输入执行乘法处理;
第二乘法单元,用于对所述第三端子的输入执行乘法处理;
第三乘法单元,用于对所述第二端子的输入执行乘法处理;
第四乘法单元,用于对所述第四端子的输入执行乘法处理;
第一加法单元,用于将所述第一乘法单元的输出加到所述第二乘法单元的输出;和
第二加法单元,用于将所述第三乘法单元的输出加到所述第四乘法单元的输出,
其中所述运算数据存储单元存储所述第一和第二加法单元的运算结果,并且
其中所述运算控制单元使所述输入选择单元根据变换模式和运算次数控制要被输入到所述第一至第四端子的像素数据和作为用于所述第一至第四乘法单元的所述乘法系数的乘数。
21、根据权利要求20所述的图像编码装置,
其中所述运算控制单元包括:
乘数存储单元,用于存储与变换模式相关的乘数;
乘数设定单元,用于设定用于所述第一至第四乘法单元的乘数;
变换模式设定单元,用于管理变换模式;以及
运算次序管理单元,用于管理所述运算单元中的运算次序,
其中根据由所述变换模式设定单元管理的当前变换模式和由所述运算次序管理单元管理的运算次数,所述乘数设定单元可以从所述乘数存储单元中读取正确的乘数并设定用于所述第一至第四乘法单元的乘数,并且
其中根据当前的变换模式和运算次数,所述运算次序管理单元可以使所述输入选择单元控制要输入到所述第一至第四端子的像素数据。
22、根据权利要求21所述的图像编码装置,
其中所述运算控制单元还包括:
乘数设定单元,用于对应于运算次数设定在新变换模式中使用的乘数;以及
新变换模式乘数存储单元,用于存储由所述乘数设定单元设定的乘数,
其中当使用所述新变换模式时,
所述乘数设定单元从所述新变换模式乘数存储单元中读取与运算次数相关的乘数,并设定用于所述第一至第四乘法单元的乘数,并且
所述运算次序管理单元使所述输入选择单元根据运算次数来控制要输入到所述第一至第四端子的像素数据。
23、根据权利要求17所述的图像编码装置,其中所述多个变换模式包括逆离散余弦变换、4×4逆整数变换、8×8逆整数变换、离散余弦变换、4×4整数变换、8×8整数变换以及Hadamard变换当中的至少两个。
24、根据权利要求13所述的图像编码装置,
其中多个运算单元并联或串联连接,并且
其中所述运算控制单元控制并联或串联连接的所述运算单元。
25、一种在图像解码装置中使用的集成电路,其用于按照需要通过在多个从频域到时域的变换模式之间进行切换来对压缩的图像数据进行解码,该电路包括:
运算单元,用于对多个输入像素数据执行运算处理;
输入选择单元,用于选择是从被压缩的图像数据中还是从所述运算单元的运算结果中读取要被输入到所述运算单元的像素数据,并将所读取的像素数据输入到所述运算单元;
以及运算控制单元,用于根据所述运算单元中的运算次数和所使用的变换模式来控制目标以及以所述运算单元进行的所述运算处理为目标的像素数据组合和用于所述运算处理的乘法系数,其中从所述目标中读取通过所述输入选择单元输入到所述运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在所述运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
26、一种在图像解码装置中使用的集成电路,其用于按照需要通过在多个从时域到频域的变换模式之间进行切换来对图像数据进行编码,该电路包括:
运算单元,用于对多个输入像素数据执行运算处理;
输入选择单元,用于选择是从被压缩的图像数据中还是从所述运算单元的运算结果中读取要被输入到所述运算单元的像素数据,并将所读取的像素数据输入到所述运算单元;
以及运算控制单元,用于根据所述运算单元中的运算次数和所使用的变换模式来控制目标以及以所述运算单元进行的所述运算处理为目标的像素数据的组合和用于所述运算处理的乘法系数,其中从所述目标中读取通过所述输入选择单元输入到所述运算单元的像素数据,该运算控制单元对应于运算次数预先限定用于在所述运算单元中的一个运算操作中可执行的每一个单位的每一变换模式中的运算过程。
CN2005800187229A 2004-06-08 2005-06-07 图像编码装置、图像解码装置以及用于其中的集成电路 Expired - Fee Related CN1981534B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP169726/2004 2004-06-08
JP2004169726 2004-06-08
PCT/JP2005/010419 WO2005122590A1 (ja) 2004-06-08 2005-06-07 画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路

Publications (2)

Publication Number Publication Date
CN1981534A true CN1981534A (zh) 2007-06-13
CN1981534B CN1981534B (zh) 2011-04-13

Family

ID=35503517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800187229A Expired - Fee Related CN1981534B (zh) 2004-06-08 2005-06-07 图像编码装置、图像解码装置以及用于其中的集成电路

Country Status (5)

Country Link
US (1) US8179972B2 (zh)
EP (1) EP1771009A1 (zh)
JP (1) JP4704333B2 (zh)
CN (1) CN1981534B (zh)
WO (1) WO2005122590A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314528A (zh) * 2010-07-07 2012-01-11 中国科学院微电子研究所 一种数字大规模集成电路的资源共享系统及方法
CN106204680A (zh) * 2016-07-18 2016-12-07 京东方科技集团股份有限公司 一种成像装置及其成像方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771879B1 (ko) * 2006-08-17 2007-11-01 삼성전자주식회사 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치
US20080288568A1 (en) * 2007-05-14 2008-11-20 Hou Hsieh S Low power Fast Hadamard transform
JP4536109B2 (ja) * 2007-12-26 2010-09-01 富士通株式会社 半導体装置および信号処理方法
WO2011072893A1 (en) * 2009-12-16 2011-06-23 International Business Machines Corporation Video coding using pixel-streams
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
CN108848388B (zh) * 2018-07-17 2022-02-22 珠海亿智电子科技有限公司 一种提高H264编码16x16预测模式DCT运算速度的硬件实现方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168375A (en) 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
JP3102115B2 (ja) 1991-12-27 2000-10-23 日本電気株式会社 離散コサイン変換処理装置
DE69312132T2 (de) 1992-03-17 1998-01-15 Sony Corp Bildkompressionsgerät
JPH0646404A (ja) * 1992-03-17 1994-02-18 Sony Corp 画像データ処理装置及び画像データ処理方法
JP3069455B2 (ja) 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
JPH0723381A (ja) 1993-06-23 1995-01-24 Nec Corp 画像の復号化方法及びその復号化装置
US5471412A (en) * 1993-10-27 1995-11-28 Winbond Electronic Corp. Recycling and parallel processing method and apparatus for performing discrete cosine transform and its inverse
JPH0844708A (ja) * 1994-07-27 1996-02-16 Fujitsu Ltd 二次元離散コサイン変換演算回路
US6157740A (en) 1997-11-17 2000-12-05 International Business Machines Corporation Compression/decompression engine for enhanced memory storage in MPEG decoder
US6587590B1 (en) 1998-02-02 2003-07-01 The Trustees Of The University Of Pennsylvania Method and system for computing 8×8 DCT/IDCT and a VLSI implementation
US6189021B1 (en) * 1998-09-15 2001-02-13 Winbond Electronics Corp. Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
CN1147155C (zh) * 1998-12-14 2004-04-21 松下电器产业株式会社 Dct运算装置
JP4551997B2 (ja) 1999-10-25 2010-09-29 独立行政法人情報通信研究機構 画像の符号化および復号方法と装置
JP2001325247A (ja) * 2000-05-17 2001-11-22 Nippon Telegr & Teleph Corp <Ntt> 高速逆離散コサイン変換装置及び高速逆離散コサイン変換方法及び当該方法を記述したプログラムを記録した記録媒体
JP3643777B2 (ja) 2001-02-28 2005-04-27 三洋電機株式会社 動画像復号装置および動画像復号方法
US7123655B2 (en) 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
JP4348899B2 (ja) 2001-11-30 2009-10-21 ソニー株式会社 画像情報復号方法
JP2003223433A (ja) 2002-01-31 2003-08-08 Matsushita Electric Ind Co Ltd 直交変換方法、直交変換装置、符号化方法、符号化装置、逆直交変換方法、逆直交変換装置、復号化方法、及び、復号化装置
JP3902990B2 (ja) 2002-07-02 2007-04-11 キヤノン株式会社 アダマール変換処理方法及びその装置
JP2004120439A (ja) * 2002-09-26 2004-04-15 Nec Electronics Corp 画像処理装置及び画像処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314528A (zh) * 2010-07-07 2012-01-11 中国科学院微电子研究所 一种数字大规模集成电路的资源共享系统及方法
CN102314528B (zh) * 2010-07-07 2013-05-01 中国科学院微电子研究所 一种数字大规模集成电路的资源共享系统及方法
CN106204680A (zh) * 2016-07-18 2016-12-07 京东方科技集团股份有限公司 一种成像装置及其成像方法

Also Published As

Publication number Publication date
EP1771009A1 (en) 2007-04-04
US8179972B2 (en) 2012-05-15
US20080049832A1 (en) 2008-02-28
CN1981534B (zh) 2011-04-13
WO2005122590A1 (ja) 2005-12-22
JPWO2005122590A1 (ja) 2008-04-10
JP4704333B2 (ja) 2011-06-15

Similar Documents

Publication Publication Date Title
CN1981534B (zh) 图像编码装置、图像解码装置以及用于其中的集成电路
CN105681794B (zh) 运动图像解码装置以及运动图像解码方法
CN102007489B (zh) 逆向离散余弦变换的计算期间的误差减少
CN101399988B (zh) 减少位深的量子化方法
CN108605141A (zh) 用于紧凑多遍变换的高效参数存储
CA2633897C (en) Transforms with common factors
CN105103549A (zh) 根据重要系数的参数的重要系数编码和解码
US7634148B2 (en) Image signal transforming and inverse-transforming method and computer program product with pre-encoding filtering features
CN104885467A (zh) 用于下一代视频编码的内容自适应参数变换
CN103843345A (zh) 编码方法和解码方法
JPH0373689A (ja) 画像シーケンスの低速伝送のための、使用コストの低い数学的変換による画像データの圧縮方法及び装置
CN103262534A (zh) 改进熵编码和解码的方法及装置
CN103650490A (zh) 用于运动补偿预测的方法和设备
CN105580367A (zh) 数据编码和解码
CN101083769B (zh) 处理n比特视频数据的编/解码器和编/解码方法
CN105453566B (zh) 数据编码及数据解码
CN102055970A (zh) 多重标准视频解码系统
KR100377084B1 (ko) 이산코사인변환회로,이산코사인역변환회로,mpeg비디오인코더및mpeg비디오디코더
CN103098464A (zh) 在频域中具有下采样的视频解码器
KR101423083B1 (ko) Hevc 복호기용 역변환기 설계 방법
CN112913242B (zh) 编码方法和编码装置
CN108432254A (zh) 用于对图像进行编码和解码的方法、用于对图像进行编码和解码的设备以及相应的计算机程序
CN100349466C (zh) 视频或图像压缩中准能量守恒变换的方法和装置
산딥 A study on analytical transform kernel derivation for Versatile Video Coding (VVC)
CN100562115C (zh) 一种mpeg4文件解码过程中的滤波方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110413

Termination date: 20200607

CF01 Termination of patent right due to non-payment of annual fee