下面将参照附图利用各种的实施例更进一步详述实现本发明的最佳方式。
第一实施例
图1是示出根据本发明第一实施例的8-8/2-4-8DCT器件的电结构的概要的方块图。图2是示出根据本发明第一实施例的8-8/2-4-8DCT器件的电结构的部分方块图;图3是示出根据本发明第一实施例的8-8/2-4-8DCT器件的部分时序流程图;图4是示出根据本发明第一实施例的8-8/2-4-8DCT器件的其余部分的时序流程图;图5是示出说明在根据本发明第一实施例的8-8/2-4-8DCT器件中的2-4-8DCT的部分运作时序流程图;图6是示出说明在根据本发明第一实施例的8-8/2-4-8DCT器件中的2-4-8DCT的其余部分运作时序流程图;通过在图2中的线Ⅰ-Ⅰ上叠加图1中的线Ⅰ-Ⅰ,可以示出8-8DCT/2-4-8 DCT器件的整个结构。
因此,根据第一实施例,由于8-8DCT/2-4-8DCT器件被配置为使一部分8-8DCT电路能被用于2-4-8DCT,所以在8-8DCT中通过管道处理类型算术运算获得的高速计算特性可以在2-4-8DCT中维持,并且高速计算特性仍然可以在偶数小型化8-8DCT和2-4-8DCT器件中维持。在描述8-8DCT/2-4-8DCT器件之前,在下面将首先解释用于在构成8×8象素数据的每一条行或一个列上执行8-8DCT的运作公式。
通过以空间的公式(39)的形式表达在上面的“相关技术描述”中描述的二维公式(17),以及通过相对于h和x解压缩公式(39),公式(39)由公式(40)表示。在此,P0到P6是如下的:P0=cos(7π/16)=-cos(9π/16)=0.195090322…P1=cos(6π/16)=-cos(10π/16)=0.382683432…P2=cos(5π/16)=-cos(11π/16)=0.55557023…P3=cos(4π/16)=-cos(12π/16)=0.707106781…P4=cos(3π/16)=-cos(13π/16)=0.831469612…P5=cos(2π/16)=-cos(14π/16)=0.923879532…P6=cos(1π/16)=-cos(15π/16)=0.980785280…
那么,当通过设置以致使F(0)=F
0、F(1)=F
1、F(2)=F
2、F(3)=F
3、F(4)=F
4、F(5)=F
5、F(6)=F
6和F(7)=F
7,以及致使f(0,y)=f
0、f(1,y)=f
1、f(2,y)=f
2、f(3,y)=f
3、f(4,y)=f
4、f(5,y)=f
5、f(6,y)=f
6和f(7,y)=f
7而改变公式(40)时,公式(40)由公式(41)表示。通过改变公式(41)的右边,可以获得公式(42)。
通过对于在公式(42)中包含的f
0+f
7、f
1+f
6、f
2+f
5、f
3+f
4、f
0-f
7、f
1-f
6、f
2-f
5和f
3-f
4减去由公式(43)表示的数字,然后变动公式(42)的右边部分,可以获得公式(45)。第一实施例的8-8DCT/2-4-8DCT器件适合于按照公式(45)执行8-8DCT。
接下来,在下面将描述用于对8×8象素数据的每一行或每一列进行2-4-8DCT的运算操作公式。
以与用于公式(40)的相同的方式,通过以一维公式(46)的形式表示在“背景技术描述”中所描述的二维公式(21),以及通过设置相对于h和x解压缩公式(46)获得的F(0)、F(1)、F(2)、F(3)、F(4)、F(5)、F(6)、F(7)、f(0,z)、f(1,z)、f(2,z)、f(3,z)、f(4,z)、f(5,z)、f(6,z)和f(7,z),以致使F(0)=F
0、F(1)=F
1、F(2)=F
2、F(3)=F
3、F(4)=F
4、F(5)=F
5、F(6)=F
6和F(7)=F
7,以及设置为致使f(0,z)=f
0、f(1,z)=f
1、f(2,z)=f
2、f(3,z)=f
3、f(4,z)=f
4、f(5,z)=f
5、f(6,z)=f
6和f(7,z)=f
7,可以获得公式(47)。在公式(47)中的值P
0到P
6是与公式(40)中的相同的。
这里
通过改变公式(47)的右边部分,可以获得公式(48)。通过重新整理公式(48),可以获得公式(49)。
通过对于在公式(49)中包含的f
0+f
1、f
2+f
3、f
4+f
5、f
6+f
7、f
0-f
1、f
2-f
3、f
4-f
5和f
6-f
7减去由公式(50)表示的数字,可以获得公式(51)。第一实施例的8-8DCT/2-4-8DCT器件适合于按照公式(51)执行2-4-8DCT。
在上面描述的8-8DCT/2-4-8DCT是如下构成的,包括:一多工器12,八个数据寄存器141到148构成一第一数据寄存器组13,四个加法电路181到184构成第一加法电路组17,四个减法电路201到204构成减法电路组19,八个数据寄存器221到228构成第二数据寄存器组21,八个多工器241到248构成第一多工器组23,两个加/减法电路261和262构成第一加/减法电路组25,两个多工器281到282构成第二多工器组27,七个数据寄存器301到307构成第三数据寄存器组29,一个P3系数乘法电路321,一个P5系数乘法电路322,一个P1系数乘法电路323,一个P6/P3系数乘法电路324,一个P4/P5系数乘法电路325,一个P2系数乘法电路326,一个P0/P1系数乘法电路327,7个数据寄存器341到347构成第四数据寄存器组33,五个“与”电路361到365,四个加法电路381到384构成第二加法电路组37以及五个数据寄存器401到405构成第五数据寄存器组39。以下,数据寄存器被将简单地称作寄存器(如图中示为“REG”)和多工器简单地表示为MUX。
MUX12选择的输出在构成被执行初次DCT的8×8象素块的每一行中包含的八段象素数据,或者在通过初次DCT获得的构成8×8数据块的每一列中包含的八段象素数据。从MUX12输出的八段数据的每一个被称为f0到f7。当执行8-8DCT时,MUX12存储数据f0进入寄存器141,数据f7进入寄存器142,数据f1进入寄存器143,数据f6进入寄存器144,数据f2进入寄存器145,数据f5进入寄存器146,数据f3进入寄存器147以及数据f4进入寄存器148,这是在第一寄存器组13中,以及当执行2-4-8DCT时,MUX12将数据f1到f8存入与数据f1到f8对应的寄存器141到148。
构成第一加法电路组17的四加法电路181到184的每一个,在8-8DCT和2-4-8DCT两者的情况下,对从两个寄存器输出的数据执行加法运算。即,加法电路181把存储在寄存器141中的数据加到存储在寄存器142中的数据上。加法电路182把存储在寄存器143中的数据加到存储在寄存器144中的数据上。加法电路183把存储在寄存器145中的数据加到存储在寄存器146中的数据上。加法电路184把存储在寄存器147中的数据加到存储在寄存器148中的数据上。
构成减法电路组19的四个减法电路201到204的每一个,在8-8DCT和2-4-8DCT两者的情况下,对从两个寄存器输出的数据执行减法运算。即,减法电路201从存储在寄存器141中的数据中减去存储在寄存器142中的数据。减法电路202从存储在寄存器144中的数据中减去存储在寄存器143中的数据。减法电路203从存储在寄存器145中的数据中减去存储在寄存器146中的数据。减法电路204从存储在寄存器147中的数据中减去存储在寄存器148中的数据。
构成第二寄存器组21的每一寄存器221到228临时存储从每一加法电路181到184输出的数据或者从每一减法电路201到204输出的数据。寄存器221临时存储从加法电路181输出的数据。寄存器222临时存储从加法电路182输出的数据。寄存器223临时存储从加法电路183输出的数据。寄存器224临时存储从加法电路184输出的数据。寄存器225临时存储从减法电路201输出的数据。寄存器226临时存储从减法电路202输出的数据。寄存器227临时存储从减法电路203输出的数据。寄存器228临时存储从减法电路204输出的数据。MUX12和加法电路181到184的每一寄存器141到148,每一减法电路201到204和每一寄存器221到228对于每个四运算周期重复相同的运算,每一运算周期相当于由MUX241到248执行的四运算周期并且其后相同。
由构成第一MUX组23的每一MUX241、242、243和244执行的选择数据的运算在8-8DCT和2-4-8DCT两者中是相同的。即,MUX241连接到每一寄存器221、222、223和224的输出并且适合于按照寄存器221、224、221和224的顺序选择寄存器,并且按顺序输出四段数据。MUX242连接到每一寄存器221、222、223和224的输出并且适合于按照寄存器222、223、222和223的顺序选择寄存器,并且顺序地输出四段数据。MUX243连接到每一寄存器221、222、223和224的输出并且适合于按照寄存器221、224、222和223的顺序选择寄存器,并且顺序地输出四段数据。MUX244连接到每一寄存器221、222、223和224的输出并且适合于按照寄存器222、223、221和224的顺序选择寄存器,并且顺序地输出四段数据。
构成第一MUX组23的每一MUX245、246、247和248的选择数据的运算在8-8DCT和2-4-8DCT两者中是不相同的。
在8-8DCT情况下,每一MUX245、MUX246、MUX247和MUX248的选择数据运算是如下所述的。MUX245连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器225、227、226和228的顺序选择寄存器,并且顺序地输出四段数据。MUX246连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器226、225、228和227的顺序选择寄存器,并且顺序地输出四段数据。MUX247连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器227、228、225和226的顺序选择寄存器,并且顺序地输出四段数据。MUX248连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器228、226、227和225的顺序选择寄存器,并且顺序地输出四段数据。
在2-4-8 DCT情况下,每一MUX245、MUX246、MUX247和MUX248的选择数据运算是如下所述的。MUX245连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器225、226、227和228的顺序选择寄存器,并且顺序地输出四段数据。MUX246连接到每一寄存器225、226、226和228的输出并且适合于按照寄存器225、228、226和227的顺序选择寄存器,并且顺序地输出四段数据。MUX247连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器226、227、226和227的顺序选择寄存器,并且顺序地输出四段数据。MUX248连接到每一寄存器225、226、227和228的输出并且适合于按照寄存器226、227、225和228的顺序选择寄存器,并且顺序地输出四段数据。
在8-8DCT和2-4-8DCT两个情况下,构成第一加/减组的加/减法电路261分别地对按照从MUX241输出的四段数据的第一排序和第二排序输出的数据和按照从MUX242输出的四段数据的第一排序和第二排序输出的数据执行加法运算,以及对按照从MUX241输出的四段数据的第三排序和第四排序输出的数据和对按照从MUX242输出的四段数据的第三排序和第四排序输出的数据执行减法运算。即,按照第一排序从MUX241输出的数据被加到按照第一排序从MUX242输出的数据,对按照第二排序输出的数据执行相同的加法运算。在将被加/减法电路261执行的减法运算中,从MUX242输出的数据被从MUX241输出的数据中减去。在2-4-8DCT情况下,加/减法电路262对按照从MUX245输出的四段数据的第一排序和第二排序输出的数据和按照从MUX247输出的四段数据的第一排序和第二排序输出的数据执行加法运算,以及对按照从MUX245输出的四段数据的第三排序和第四排序输出的数据以及从MUX247输出的四段数据的第三排序和第四排序输出的数据执行减法运算。在将由加/减法电路262执行的减法运算中,从MUX247输出的数据被从MUX245输出的数据中减去。
构成第二MUX组27的MUX281,在8-8DCT情况下,选择从MUX245按顺序输出的四段数据,并且在2-4-8DCT情况下,选择按顺序从加/减法电路262输出的数据。MUX282,在8-8DCT情况下,选择按顺序从MUX247输出的四段数据,以及在2-4-8DCT情况下,不选择从MUX247输出的四段数据而是选择对应于MUX283的四运算周期的四次“0”(在2-4-8DCT中运算周期被称作“第二运算周期”)。
构成第三寄存器组29的寄存器301按顺序存储四段数据在算术运算结果上。寄存器302按顺序存储从MUX243按顺序输出的四段数据。寄存器303按顺序存储从MUX244按顺序输出的四段数据。寄存器304按顺序存储从MUX281按顺序输出的四段数据。寄存器305按顺序存储从MUX246按顺序输出的四段数据。寄存器306按顺序存储从MUX282按顺序输出的四段数据。寄存器306按顺序存储从MUX248按顺序输出的四段数据。
P3系数乘法电路321用一固定系数P3乘从寄存器301按顺序输出的四段数据中的每一个。P5系数乘法电路321用一固定系数P5乘从寄存器302按顺序输出的四段数据中的每一个。P1系数乘法电路323用一固定系数P1乘从寄存器303按顺序输出的四段数据中的每一个。P6/P3系数乘法电路324在8-8DCT和2-4-8DCT之间切换固定系数,在8-8DCT情况下,用固定系数P6乘从寄存器304输出的每一四段数据,在2-4-8DCT情况下,用一固定系数P3乘从寄存器304输出的每一四段数据。P45系数乘法电路325在8-8DCT并且2-4-8之间切换固定系数,在8-8DCT情况下,用固定系数P4乘从寄存器305输出的四段数据的每一个,在2-4-8DCT情况下,用固定系数P5乘乘从寄存器305输出的四段数据的每一个。P2系数乘法电路326用固定系数P2乘从寄存器306按顺序输出的四段数据的每个。P0/P1系数乘法电路327在8-8DCT和2-4-8之间切换固定系数,在8-8DCT情况下,用固定系数P0乘从寄存器307输出的四段数据的每一个,在2-4-8DCT情况下,用固定系数P15乘从寄存器307输出的四段数据的每一个。
构成第四寄存器组33的寄存器341,在8-6DCT和2-4-8DCT两者中,按顺序存储从P3系数乘法电路321按顺序输出的四段数据的每个并且输出每一数据作为正值。寄存器342,在8-8DCT和2-4-8DCT两者中,按顺序存储从P5系数乘法电路74按顺序输出将按照第一排序和第四排序输出的数据作为正值,输出将按照第二排序和第三排序输出的数据作为负值。寄存器343,在8-8DCT和2-4-8DCT两者中,按顺序,存储从P1数乘法电路323按顺序输出输出的四段段数据的每个,并且输出将按照第一排序和第三排序输出的数据作为正值,输出将按照第二排序和第四排序输出的数据作为负值。
寄存器343按顺序存储从P6/P3系数乘法电路324按顺序输出的四段数据的每个,以及在8-8DCT情况下,输出将按照第一排序输出的数据作为正值,输出将按照第二排序到第四排序输出的数据作为负值,而在2-4-8DCT情况下,将按照第一排序到第四排序顺序输出的每一四段数据作为正值。寄存器345按顺序存储从P4/P5系数乘法电路325按顺序输出的四段数据的每个,以及在8-8DCT情况下,输出将按照第一到第四排序输出的数据作为正值,而在2-4-8DCT情况下,将按照第一排序和第四排序输出的每一四段数据作为正值,将按照第二排序和第三排序输出的数据作为负值。寄存器346,按顺序存储从P2系数乘法电路326按顺序输出的四段数据的每个,输出将按照第一排序和第三排序输出的数据作为正值,输出将按照第二排序和第四排序输出的数据作为负值。寄存器347,按顺序存储从P0/P1乘法电路327按顺序输出的四段数据的每个,在8-8DCT情况下,输出将按照第一排序和第四排序输出的数据作为正值,输出将按照第二排序和第三排序输出的数据作为负值,在2-4-8DCT情况下,输出将按照第一排序和第三排序输出的数据作为正值,输出将按照第二排序和第四排序输出的数据作为负值。
在第二加法电路组37中包含的加法电路381与在第五寄存器组39中包含的寄存器401和与电路361一起构成数据累积电路。在8-8DCT和2-4-8DCT两者中,按照四运算周期的第一运算周期到第四运算周期的顺序,在每个运算周期中,来自寄存器401的数据被馈送到与电路361的一个输入端,信号“0”、“1”、“0”以及“1”按顺序馈送到与电路361的另外一个输入端,它们是从二进制信号列产生电路(未示出)中输出的。即,累积的值从寄存器寄存器401输出,它是通过在加法电路381中,将从寄存器341输出并且馈送到加法电路381的一个输入端的数据与在前面一个时钟在寄存器401中存储的而且在下一个时钟通过与电路361馈送到加法电路381的另外一个输入端的数据相加获得的。
加法电路382与寄存器402和与电路362一起构成数据累积电路。同样,在8-8DCT和2-4-8DCT两者中,按照四运算周期的第一运算周期到第四运算周期的顺序,在每个运算周期中,来自寄存器403的数据被馈送到与电路362的一个输入端,信号“0”、“1”、“0”以及“1”按顺序馈送到与电路362的另外一个输入端,它们是从二进制信号列产生电路(未示出)中输出的。即,累积的值从寄存器寄存器402输出,它是通过在加法电路382中,将从寄存器344和寄存器343输出并且馈送到加法电路382的第一第一输入端和第二输入端的数据与在前面一个时钟在寄存器402中存储的而且在下一个时钟通过与电路362馈送到加法电路382的第三输入端的数据相加获得的。
加法电路383与寄存器403和与电路363一起构成数据累积电路。在8-8DCT情况下,按照在四运算周期的的第一运算周期到第四运算周期顺序,在每个运算周期中,来自寄存器343的数据馈送到与电路363的一个输入,“0”信号馈送到与电路363的另外一个输入。在2-4-8DCT情况下,按照四秒运算周期的第一运算周期到第四运算周期的顺序,在每个运算周期中,来自寄存器343的数据被馈送到与电路363的一个输入端,信号“0”、“1”、“0”以及“1”按顺序馈送到与电路363的另外一个输入端,它们是从二进制信号列产生电路(未示出)中输出的。即,在8-8DCT情况下,来自寄存器342的数据经过加法电路383并且被存储在寄存器403中。在2-4-8DCT情况下,累积的值从寄存器403输出,它是通过在加法电路383中,将从寄存器342输出并且馈送到加法电路383的一个输入端的数据与在前面一个时钟在寄存器403中存储的而且在下一个时钟通过与电路363馈送到加法电路383的另外一个输入端的数据相加获得的。
加法电路384与寄存器404和与电路364和与电路365一起构成数据累积电路。在8-8DCT情况下,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中,来自寄存器344的数据馈送到与电路364的一个输入端,“1”信号馈送到与电路364的另外一个输入端,并且在2-4-8DCT情况下,在四秒运算周期按第一运算周期到第四运算周期顺序,在每一运算周期中信号“0”被馈送,它是从二进制信号列产生电路(未示出)输出的。在8-8DCT情况下,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中,来自寄存器404的数据馈送到与电路365的一个输入端,“0”信号馈送到与电路365的另外一个输入端,而在2-4-8DCT情况下,在四秒运算周期按第一运算周期到第四运算周期顺序,在每一运算周期中馈送信号“0”、“1”、“0”和“1”,它是从二进制信号列产生电路(未示出)输出的。
在8-8DCT情况下,在每个运算周期从寄存器344、345、346和347按顺序输出的每个数据按顺序在每个运算周期被输入到加法电路384的第一输入、第二输入、第三输入和第四输入,而在2-4-8DCT情况下,累积的值从寄存器寄存器404输出,它是通过在加法电路384中,将从寄存器345、346和347在每个运算周期输出的并且馈送到加法电路384的第二输入端、第三输入和第四输入的数据与在前面一个时钟在寄存器405中存储的而且在下一个时钟通过与电路364馈送到加法电路384的第五输入端的数据相加获得的。
虽然MUX12到寄存器401到寄存器404的每一电路中的延迟和在它们的运算周期中出现偏离,但是在下面的操作描述中将不详细地陈述这样的延迟和偏离。
接下来将参照图1到4描述第一实施例中的操作。首先将说明8-8DCT的运算。在按顺序从MUX12输出的构成8×8象素数据方块的每一行中包含的八段象素数据f0到f7中的每一个被存入构成第一寄存器组13的寄存器141到148的每一个中。即,数据f0被存储在寄存器141中,数据f7在寄存器142中,数据f1存在寄存器143中,数据f6存在寄存器144中,数据f2存在寄存器145中,数据f5存在寄存器146中,数据f3存在寄存器147中以及数据f4存在寄存器148中。在寄存器141中存储的数据f0被馈送到加法电路181的一被加数输入而在寄存器142中存储的数据f7被供应给加法电路181的一加数输入,然后从加法电路181输出数据f0+f7=a0。在寄存器143中存储的数据f1被馈送到加法电路182的一被加数输入而在寄存器144中存储的数据f6被供应给加法电路182的一加数输入,然后从加法电路182输出一加过的数值f1+f6=a1。在寄存器145中存储的数据f2被馈送到加法电路183的一被加数输入而在寄存器146中存储的数据f5被供应给加法电路183的一加数输入,然后从加法电路183输出数据f2+f5=a2。在寄存器147中储存的数据f3被供应给加法电路184的一被加数输入而在寄存器147中储存的数据f1馈送到加法电路184的加数输入,然后从加法电路184输出数据f3+f4=a3。在寄存器141中存储的数据f0被馈送到减法电路201的一被减法数输入而在寄存器142中存储的数据f7被供应给减法电路201的一减数输入,然后从减法电路201输出数据f0-f7=a4。在寄存器143中存储的数据f1被馈送到减法电路202的一被减法数输入而在寄存器144中存储的数据f6被供应给减法电路202的一减数输入,然后从减法电路202输出数据f1-f6=a5。在寄存器145中存储的数据f2被馈送到减法电路203的一被减法数输入而在寄存器146中存储的数据f5被供应给减法电路203的一减数输入,然后从减法电路203输出数据f2-f5=a6。在寄存器147中存储的数据f3被馈送到减法电路204的一被减法数输入而在寄存器147中存储的数据f4被供应给减法电路204的一减数输入,然后从减法电路204输出数据f3-f4=a4。
从加法电路181到加法电路184输出的数据a0到a3通过寄存器221到寄存器224被输入到MUX241到MUX244。MUX241按照寄存器221、224、221和224的顺序选择寄存器,并且按顺序输出四段相应的数据a0、a3、a0和a3。MUX242按照寄存器222、223、223和223的顺序选择寄存器,并且按顺序输出四段相应的数据a1、a2、a1和a2。MUX243按照寄存器寄存器221、224、222和223的顺序选择寄存器,并且按顺序输出四段相应的数据a0、a3、a1和a2。MUX244按照寄存器222、223、221和224的顺序选择寄存器,并且按顺序输出四段相应的数据a1、a2、a0和a3。
MUX245按照寄存器225、227、226和228的顺序选择寄存器,并且按顺序输出四段相应的数据a4、a6、a5和a7。MUX246按照寄存器226、225、228和227的顺序选择寄存器,并且按顺序输出四段相应的数据a5、a4、a7和a6。MUX247按照寄存器227、228、225和226的顺序选择寄存器,并且按顺序输出四段相应的数据a6、a7、a4和a5。MUX248按照寄存器228、226、227和225的顺序选择寄存器,并且按顺序输出四段相应的数据a7、a5、a6和a4。
加/减法电路261对从MUX241顺序输出的四段数据a0、a2、a0和a3的按照第一排序和第二排序输出的数据和从MUX242输出的四段数据a1、a2、a1和a2的按照第一排序和第二排序输出的数据执行加法运算,并且对从MUX241顺序输出的四段数据a0、a2、a0和a3的按照第三排序和第四排序输出的数据和从MUX242输出的四段数据a1、a2、a1和a2的按照第三排序和第四排序输出的数据执行减法运算,结果,顺序地输出数据a0+a1、数据a3+a2数据a0-a1和数据a3-a2。即,按照第一排序从MUX241输出的数据被加到按照第一排序从MUX242输出的数据上,对按照第二排序输出的数据执行相同的加法运算,以及更进一步对按照第三和第四排序输出的数据完成类似的减法运算。在四运算周期的从第一运算周期到第四运算周期中每个运算周期输出的每一个数据a0-a1、a3+a2、a0-a1和a3-a2,在按顺序存入寄存器301(参见图3所示寄存器301)之后,被在P3系数乘法电路321中的固定系数P3相乘,并且按顺序存入寄存器341(参见图3中的寄存器341)。从MUX243按顺序输出的每一数据a0、a3、a1和a2,在按顺序存入寄存器302(参见图3所示寄存器302)之后,被在P5系数乘法电路322中的固定系数P5相乘,并且按顺序存入寄存器342(参见图3中的寄存器342)。从MUX244顺序输出的每一数据a1、a2、a0和a3,在按顺序存入寄存器303(参见图3所示寄存器303)之后,被在P1系数乘法电路323中的固定系数P1相乘,并且按顺序存入寄存器343(参见图3中的寄存器343)。
从MUX245顺序输出的每一数据a4、a6、a5和a7,在按顺序存入寄存器304(参见图4所示寄存器304)之后,被在P6/P6系数乘法电路324中的固定系数P6相乘,并且按顺序存入寄存器344(参见图4中的寄存器344)。从MUX246顺序输出的每一数据a5、a4、a7和a6,在按顺序存入寄存器305(参见图3所示寄存器305)之后,被在P4/P5系数乘法电路325中的固定系数P4相乘,并且按顺序存入寄存器345(参见图3中的寄存器345)。从MUX247顺序输出的每一数据a6、a7、a4和a5,按顺序存入寄存器306(参见图4所示寄存器306)之后,被P2系数乘法电路326中的固定系数P2相乘,并且按顺序存入寄存器346(参见图4中的寄存器346)。从MUX248顺序输出的每一数据a7、a5、a6和a4,按顺序存入寄存器307(参见图4所示寄存器307)之后,被P0/P1系数乘法电路327中的固定系数P0相乘,并且按顺序存入寄存器347(参见图4中的寄存器347)。
在四运算周期的从第一运算周期到第四运算周期中的每一运算周期中,从寄存器341输出的数据(a0+a1)P3P3、数据(a3+a2)P3、数据(a0-a1)P3、数据(a3-a2)P3,数据(a0+a1)P3在加法电路381、寄存器401和与电路361执行的四运算周期的第一运算周期中被存入寄存器401,数据(a0+a1)P3+(a3+a2)P3在第二运算周期被存入寄存器401,数据(a0-a1)P3在第三运算周期被存入寄存器401以及数据(a0-a1)P3+(a3-a2)P3在第四运算周期被存入寄存器401(参见图3中的寄存器401)。在离散余弦变换中,对于顺序存入寄存器401中并且从那里输出的数据,在第一运算周期存储的数据(a0+a1)P3和在第三运算周期存入寄存器401的数据(a0-a1)P3未被定义值并且不被使用作为变换系数数据。上面的数据是利用在寄存器401的输出线路的正下方的星号(*)表示。
在第二运算周期存储的数据(a0+a1)P3+(a3-a2)P3和在第四运算周期存储的数据(a0-a1)P3-(a3-a2)P3被使用作为在公式(45)中包含的运算值的变换系数数据F0和F4。变换系数数据F0和F4被显示在图2中寄存器401的输出线路的正下方。
对于在四运算周期的第一运算周期到第四运算周期中每个运算周期中从寄存器342输出的数据a0P5、数据a3P5、数据a1P5、数据a2P5,以及在四运算周期的从第一运算周期到第四运算周期中每个运算周期中从寄存器343输出的数据a1P1、数据a2P1、数据a0P1、数据a3P1,数据a0P5+a1P1在加法电路382、寄存器402和与电路362执行的四秒运算周期的第一运算周期中被存入寄存器402,数据a0P5+a1P1-a3P5-a2P1在第二运算周期被存入寄存器402,数据-a2P1+a0P1在第三运算周期被存入寄存器402以及数据-a0P5+a0P1+a2P5-a3P1在第四运算周期被存入寄存器402(参见图3中的寄存器402)。
在离散余弦变换中,对于顺序存入寄存器402中并且从那里输出的数据,在第一运算周期和在第三运算周期存储的数据a0P5+a1P1a0P1-a1P5未被定义值并且不被使用作为变换系数数据。上面的数据是利用在图2中寄存器402的输出线路的正下部的星号(*)表示。在第二运算周期和第四运算周期储存的数据a0P5+a1P1-a3P5-a2P1和数据-a1P5+a0P1+a2P5-a3P1使用作为在公式(45)中包含的运算值的变换系数数据F2和变换系数数据F6。变换系数数据F2和F6被显示在寄存器402的输出线路的正下方。
由于在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中信号“0”被馈送到与电路363的另外一个输入,经过加法电路383并且被存储在寄存器403中,所以在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从寄存器344输出的数据a4P6、数据-a6P6、数据-a5P6、数据-a7P6。在离散余弦变换中,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中顺序存入寄存器403的任何数据未被定义值并且不被使用作为变换系数数据。上面的数据是利用在图2中寄存器403的输出线路的正下部的星号(*)表示。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从寄存器344按顺序输出的并且通过与电路364馈送的数据a4P6、数据-a6P6、数据-a5P6以及数据-a7P6,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从寄存器345输出的数据a5P4、数据a4P4、数据a7P4、数据a6P4,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从寄存器346按顺序输出的数据a6P2、数据-a7P2、数据a4P2以及数据-a5P2,在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从寄存器347输出的数据a7P0、数据-a5P0、数据a6P0以及数据a4P0,在加法电路384中,按照四运算周期的从第一运算周期到第四运算周期周期的每个运算周期相加,加法运算的结果被顺序存入寄存器404(参见图4中的寄存器404)。
在寄存器404中存储的并且在四运算周期的第一运算周期输出的数据a4P6+a5P4+a6P2+a7P0被使用作为在公式(45)中包含的运算值的变换系数数据F1,在第二运算周期从寄存器404输出的数据-a6P6+a4P4-a7P2-a5P0被使用作为在公式(45)中包含的运算值的变换系数数据F3,在第三运算周期从寄存器404输出的数据-a5P6+a7P4+a4P2+a6P0被使用作为在公式(45)中包含的运算值的变换系数数据F5,在第四运算周期从寄存器404输出的数据-a7P6+a6P4-a5P2+a4P0被使用作为在公式(45)中包含的运算值的变换系数数据F7。变换系数数据F1、F3、F5和F7被显示在寄存器404的输出线路的右下方。
通过完成上面的算术运算,在构成8×8数据块的一个行中包含的八段数据上的初次8-8DCT结束。在构成8×8数据块的下一个行后续的每一行执行如在上面所描述的相同的初次8-8DCT,其后对构成8×8数据块的所有的八行上的8-8DCT以类似的方式结束。在对所有的八行完成初次8-8DCT之后,在构成8×8数据块的八数据列的每个列上执行二次的8-8DCT。通过完成初次8-8DCT和二次的8-8DCT获得的变换系数数据被用于输入8×8图片数据的压缩。因此,通过使用变换系数数据能够进行被压缩的象素数据的传送,该变换系数数据是通过在一图像内的8×8象素数据执行初次8-8DCT和二次8-8DCT获得的,该图像是将用于8×8象素数据块压缩传送的。
接下来,将描述2-4-8DCT的运算。在构成8×8象素数据块的每一行象素中包含的从MUX12顺序输出的八段象素数据f0到f7的每一个,以每一象素数据f0到f7对应于每一寄存器141到148的方式,存入每一寄存器141到148中。
在寄存器141中存储的数据f0被馈送到加法电路181的一被加数输入而提供到寄存器142的数据f1被供应给加法电路181的加数输入端,然后从加法电路181输出数据f0+f1=b0。在寄存器143中存储的数据f2被馈送到加法电路182的一被加数输入而提供到寄存器144的数据f0被供应给加法电路182的加数输入端,然后从加法电路182输出数据f2+f3=b1。在寄存器145中存储的数据f4被馈送到加法电路183的一被加数输入而在寄存器146中存储的数据f5被供应给加法电路183的一加数输入,然后从加法电路183输出数据f4+f5=b2。在寄存器147中储存的数据f6被供应给加法电路184的一被加数输入而在寄存器148中储存的数据f7馈送到加法电路184的加数输入,然后从加法电路184输出数据f6+f7=b3。在寄存器141中存储的数据f0被馈送到减法电路201的一被减法数输入端而在寄存器142中存储的数据f1被供应给减法电路201的一减数输入端,然后从减法电路201输出数据f0-f1=b4。在寄存器143中存储的数据f2被馈送到减法电路202的一被减法数输入端而在寄存器144中存储的数据f3被供应给减法电路202的一减数输入,然后从减法电路202输出数据f2-f2=b5。在寄存器145中存储的数据f4被馈送到减法电路203的一被减法数输入端而在寄存器146中存储的数据f5被供应给减法电路203的一减数输入端,然后从减法电路203输出数据f4-f4=b6。在寄存器147中存储的数据f6被馈送到减法电路204的一被减法数输入端而在寄存器148中存储的数据f6被供应给减法电路204的一减数输入端,然后从减法电路204输出数据f6-f7=b7。
从加法电路181到加法电路184输出的数据b0到数据b3通过寄存器221到寄存器224输入到MUX241到MUX244。MUX241按照寄存器221、224、221和224的顺序选择寄存器,并且按顺序输出四段数据b0、b3、b0和b3。MUX242按照寄存器222、223、223和223的顺序选择寄存器,并且按顺序输出四段相应的数据b1、b2、b1和b2。MUX243按照寄存器221、224、222和223的顺序选择寄存器,并且按顺序输出四段数据b0、b3、b1和b2。MUX244按照寄存器222、223、221和224的顺序选择寄存器,并且按顺序输出四段数据b1、b2、b0和b3。
加/减法电路261在按照四运算周期的第一运算周期到第二运算周期中每个运算周期给出的四段数据b0、b3、b0和b3的第一排序和第二排序从MUX241输出的数据上,以及在按照四运算周期的第一运算周期到第二运算周期中每个运算周期给出的四段数据b1、b2、b1和b2的第一排序和第二排序从MUX242输出的数据上执行加法运算,并且在按照四运算周期的第一运算周期到第二周期中每个运算周期给出的四段数据b0、b3、b0和b3的第三排序和第四排序从MUX241输出的数据上,以及在按照四运算周期的第一运算周期到第二运算周期中每个运算周期给出的四段数据b1、b2、b1和b2的第三排序和第四排序从MUX242输出的数据上执行减法运算,作为结果,输出数据b0+b1、数据b3+b2、数据b0-b1和数据b3-b2。即,按照第一排序从MUX241输出的数据被加到按照第二排序从MUX242输出的数据上,在另外一个数据上执行相同的加法和减法运算。
每一数据b0+b1、数据b3+b2、数据b0-b1和数据b3-b2顺序从加/减法电路261输出,在被存在寄存器301(参见寄存器301)之后,由在P3系数乘法电路321中的固定系数P3相乘,并且按顺序存入寄存器341(参见图5中寄存器341)。
从MUX243按顺序输出的每一数据b0、b3、b1和b2,在按顺序存入寄存器302(参见示寄存器302)之后,被在P5系数乘法电路322中的固定系数P5相乘,并且按顺序存入寄存器342(参见寄存器342)。从MUX244按顺序输出的每一数据b1、b2、b0和b3,在按顺序存入寄存器303(参见示寄存器303)之后,被在P1系数乘法电路323中的固定系数P1相乘,并且按顺序存入寄存器343(参见寄存器343)。
MUX245按照寄存器225、228、225和228的顺序选择寄存器,并且按顺序输出四段相应的数据b4、b7、b4和b7。MUX247按照寄存器226、寄存器227、寄存器226、寄存器227的顺序选择寄存器,并且按顺序输出四段相应的数据b5、b6、b5和b6。
加/减法电路262对从MUX245给出的四段数据b4、b7、b4和b7的按照第一排序和第二排序输出的数据和从MUX247给出的四段数据b5、b6、b5和b6的按照第一排序和第二排序输出的数据执行加法运算,并且对从MUX245给出的四段数据b4、b7、b4,数据b7的按照第一排序和第二排序输出的数据,以及从MUX247给出的四段数据b5、b6、b5,b6的按照第一排序和第二排序输出的数据执行减法运算,作为结果,输出数据b4+b5、数据b7+b6、数据b4-b5和数据b7-b6。按顺序输出的数据b4+b5、数据b7+b6、数据b4-b5和数据b7-b6通过MUX281顺序地存入寄存器304(参见寄存器304)。
MUX246按照寄存器225、228、226和227的顺序选择寄存器,并且按顺序输出四段相应的数据b4、b7、b5和b6。按顺序输出的四段数据b4、b7、b5和b6被存入寄存器305(参见寄存器305)。MUX282选择四次“0”并且顺序输出“0”数据。顺序输出的四段“0”数据被按顺序存在寄存器306中(参见图6中寄存器306)。MUX248按照寄存器226、227、225和228的顺序选择寄存器,并且按顺序输出四段相应的数据b5、b6、b4和b7。按顺序输出的四段数据b5、b6、b4和b7被存入寄存器307(参见寄存器307)。
从寄存器341按顺序输出的数据(b0+b1)P3、数据(b3+b2)P3、数据(b0-b1)P3和数据(b3-b2)P3中,在由寄存器401和与电路361执行的四运算周期的第一运算周期,数据(b0+b1)P3被存入寄存器401,数据(b0+b1)P3+(b3+b2)P3在第二运算周期被存入寄存器401,数据(b0+b1)P3在第三运算周期被存入寄存器401,以及数据(b0-b1)P3+(b3-b2)P3在第四运算周期被存入寄存器401(参见图5寄存器401)。
在离散余弦变换方法中,对于顺序存入寄存器401中并且从那里输出的数据,在第一运算周期在寄存器401中存储的数据(b0+b1)P3和在第三运算周期存入寄存器401的数据(b0-b1)P3未被定义值并且不被使用作为变换系数数据。上面的数据是利用在图2中寄存器401的输出线路的左下部的星号(*)表示。
在第二运算周期存储的数据(b0+b1)P3+(b3+b2)P3和在第四运算周期存储的数据(b0-b1)P3+(b3-b2)P3被使用作为在公式(51)中包含的运算值的变换系数数据F0和F2。变换系数数据F0和F2被显示在寄存器401的输出线路的左下方。
对于从寄存器342按顺序输出的数据b0P5、数据b3P5、数据b1P5、数据b2P5,从寄存器343按顺序输出的数据b1P1、数据b0P1、数据b0P1和b3P1,数据b0P5+b1P1在由加法电路382、寄存器402和与电路362执行的四运算周期的第一运算周期中被存入寄存器402,数据b0P5+b1P1-b3P5-b2P1在第二运算周期被存入寄存器402,数据-b1P5+b0P1在第三运算周期被存入寄存器402,数据-b1P5+b0P1+b2P5-b3P1在第四运算周期被存入寄存器402(参见寄存器402)。
在离散余弦变换方法中,对于存入寄存器402中并且从那里输出的数据,在第一运算周期和在第三运算周期存储的数据b0P5+b1P1和数据-b1P5+b0P1未被定义值并且不被使用作为变换系数数据。上面的数据是利用在图2中寄存器402的输出线路的左下部的星号(*)表示。
在第二运算周期存储的数据b0P5+b1P1-b3P5-b2P1和第四运算周期储存的数据-b1P5+b0P1+b2P5-b3P1被使用作为在公式(45)中包含的运算值的变换系数数据F1和F3。变换系数数据F1和F3被显示在图2中寄存器401的输出线路的右下方。
按顺序存入寄存器304并且从那里按顺序输出的每一数据b4+b5、数据b7+b6、数据b4-b5和数据b7-b6被P6/P3系数乘法电路324中的固定系数P3相乘。在四运算周期的第一运算周期,从P6/P3系数乘法电路324输出并且存在寄存器344(参见图6中的寄存器344)中的数据(b4+b5)被加到从与电路363输出并且存入寄存器403的“0”数据中(参见图6中的寄存器403)。在2-4-8DCT中,在第一运算周期馈送到寄存器403的数据不被使用作为转变系数数据。上面的数据是利用在图2中寄存器403的输出线路的下部的星号(*)表示。
在四运算周期的第二运算周期通过与电路363输入的数据(b4+b5)P3和在在四运算周期的第二运算周期从寄存器344输出的数据(b7+b6)被馈送到加法电路383,数据(b4+b5)P3+(b7+b6)P3从加法电路383输出并且存入寄存器403(参见寄存器403)。在2-4-8DCT中,在第二运算周期馈送到寄存器403的数据被使用作为转变系数数据F4。变换系数数据F4被显示在图2中寄存器403的输出线路的下方。
数据(b4-b5)P3和“0”数据在四运算周期的第三运算周期被馈送给加法电路383,数据(b4-b5)P3被从加法电路383输出并且存入寄存器403(参见图6中的寄存器403)。在2-4-8DCT中,在第三运算周期馈送到寄存器403的数据不被使用作为转变系数数据。上面的数据是利用在图2中寄存器403的输出线路的下部的星号(*)表示。在四运算周期的第四运算周期通过与电路363输入的数据(b4-b5)P3和在第四运算周期从寄存器344输出的数据(b7-b6)被馈送到加法电路383,然后数据(b4-b5)P3+(b7-b6)P3从加法电路383输出并且存入寄存器403(参见寄存器403)。在第四运算周期馈送到寄存器403的数据被使用作为在2-4-8DCT中的变换系数数据F6。变换系数数据F6被显示在图2中寄存器403的输出线路的下方。
在四运算周期的从第一运算周期到第四运算周期的每一周期中存入寄存器305并且按顺序输出的每个数据b4、b7、b5和b6,被P4/P5系数乘法电路325中的固定系数P5相乘。在四运算周期的从第一运算周期到第四运算周期的每一周期中存入并且按顺序输出的四段“0”数据的每个(参见寄存器306),被P4/P5系数乘法电路325中的固定系数P5相乘。在四运算周期的从第一运算周期到第四运算周期的每一周期中存入寄存器307并且按顺序输出的每个数据b5、b6、b4和b7,被P0/P1系数乘法电路327中的固定系数P1相乘。
在2-4-8DCT情况下,由于在四运算周期的从第一运算周期到第四运算周期中的每个运算中,信号“0”被馈送到与电路364的另外一个输入端,因此从P6/P3系数乘法电路324输出的数据被馈送到加法电路384,从P4/P5系数乘法电路325按顺序输出并且按顺序存入寄存器345的数据b4P5、b7P5、b5P5和b6P5(参见图6中寄存器345),以及从P0/P1系数乘法电路327输出并且按顺序存入寄存器347的数据b5P1、b6P1、b4P1和b7P1(参见图6中的寄存器347),在每个运算周期中被馈送到加法电路。
在四运算周期的第一运算周期,数据b4P5+b5P1从加法电路384输出并且存入寄存器404(参见图6中的寄存器404)。
在第一运算周期供应给寄存器404的数据不被使用作为2-4-8DCT中的变换系数数据。变换系数数据被显示在图2中寄存器404的输出线路的左下方。
在四运算周期的第二运算周期通过与电路365输入的数据b4P5+b5P1和在第二运算周期从寄存器345输出的数据-b7P5和在第二运算周期从寄存器347输出的数据-b6P1被供应给加法电路384,从加法电路384输出数据b4P5+b5P1-b7P5-b6P1并且存入寄存器404(参见寄存器404)。在第二运算周期供应给寄存器404的数据不被使用作为2-4-8DCT中的变换系数数据F5。变换系数数据被显示在图2中寄存器404的输出线路的左下方。
在四运算周期的第三运算周期中,从加法电路384输出数据-b5P5+b4P1并且存入寄存器404(参见寄存器404)。在第三运算周期供应给寄存器404的数据被使用作为2-4-8DCT中的变换系数数据。上面的数据是利用在图2中寄存器403的输出线路的左下部的星号(*)表示。
在四运算周期的第四运算周期通过与电路365输入的数据-b5P5+b4P1和在第四运算周期从寄存器345输出的数据b6P5和在第四运算周期从寄存器347输出的数据-b7P1被供应给加法电路384,然后从加法电路384输出数据-b5P5+b4P1+b6P5-b7P1并且存入寄存器404(参见图6中的寄存器404)。在第四运算周期供应给寄存器404的数据被使用作为2-4-8DCT中的变换系数数据F7。DCT系数F7被显示在图2中寄存器404的输出线路的左下方。
通过完成上面的算术运算,在构成8×8数据块的一个行中包含的八段数据上的初次2-4-8DCT结束。在构成8×8数据块的下一个行后续的每一行执行如在上面所描述的相同的初次2-4-8DCT,其后对构成8×8数据块的所有的八行上的2-4-8DCT以类似的方式结束。在对所有的八行完成初次2-4-8DCT之后,在构成8×8数据块的八数据列的每个列上执行二次的2-4-8DCT,并且结束二次2-4-8DCT。通过完成二次2-4-8DCT获得的变换系数数据被用于输入的8×8象素数据的压缩。通过对在将传送的一图像数据中的每一8×8象素数据执行初次2-4-8DCT和二次2-4-8DCT,该图像数据被压缩并且可以被传送。
因此,根据本发明,由于8-8DCT器件和2-4-8DCT器件被配置为通过切换,在8-8DCT电路中使用的部分固定系数乘法电路能被使用作为2-4-8DCT中所需的固定系数乘法电路,所以通过在8-8DCT中管道处理型算术运算获得的高速计算特性在2-4-8DCT中可以被保持,而且甚至在小型化的8-8DCT和2-4-8DCT器件中仍然可以保持高速计算特性。第二实施例
图7是局部地示出根据发明第二实施例的8-8/2-4-8IDCT器件的结构的概要的方块图。图8也是局部地示出根据发明第二实施例的8-8/2-4-8IDCT器件的结构的概要的方块图。图9是说明构成根据本发明第二实施例的8-8/2-4-8IDCT器件的8-8IDCT运算的部分时序流程图。图10是说明构成根据本发明第二实施例的8-8/2-4-8IDCT器件的8-8IDCT运算的其余部分时序流程图。图11是说明构成根据本发明第二实施例的8-8/2-4-8IDCT器件的2-4-8IDCT运算的一部分时序流程图。图12是说明构成根据本发明第二实施例的8-8/2-4-8IDCT器件的2-4-8IDCT运算的其余部分时序流程图。通过在图8中的线Ⅱ-Ⅱ上叠加图7中的线Ⅱ-Ⅱ,可以示出8-8IDCT/2-4-8IDCT器件的整个结构。
因此,根据本实施例,由于8-8IDCT/2-4-8IDCT器件被配置为通过切换,在8-8IDCT电路中使用的部分固定系数乘法电路能被使用作为2-4-8IDCT中所需的固定系数乘法电路,所以通过在8-8IDCT中管道处理型算术运算获得的高速计算特性在2-4-8IDCT中可以被保持,而且甚至在小型化的8-8IDCT和2-4-8IDCT器件中仍然可以保持高速计算特性。
在描述8-8IDCT/2-4-8IDCT器件结构之前,在下面将首先描述用于在的8×8象素数据的每一条行或一个列上执行8-8IDCT的运算公式。
当通过以一维公式(52)的形式表示在上面的“相关技术描述”中描述的二维公式(18),以及通过相对于h和x解公式(52),如在公式(40)的情况下,获得的f(0)、f(1)、f(2)、f(3)、f(4)、f(5)、f(6)、f(7)以及F(0,v)、F(1,v)、F(2,v)、F(3,v)、F(4,v)、F(5,v)、F(6,v)和F(7,v),被设置为以致使f(0)=f
0、f(1)=f
1、f(2)=f
2、f(3)=f
3、f(4)=f
4、f(5)=f
5、f(6)=f
6、f(7)=f
7以及F(0,v)=F
0、F(1,v)=F
1、F(2,v)=F
2,F(3,v)=F
3,F(4,v)=F
4,F(5,v)=F
5,F(6,v)=F
6以及F(7,v)=F
7时,并且作为结果的公式被改变以及重新排列以获得公式(53)。在公式(53)中的P
0到P
6是如公式(40)中一样相同的值。
这里
公式(54)是通过改变上面的公式(53)的右边获得的,公式(55)是通过重新整理公式(54)的右边获得的。
通过更进一步重新整理公式(55)的右边,得到公式(56)。通过将在公式(56)中的F
0、F
1、F
2、F
3、F
4、F
5、F
6以及F
7设置为公式(57)中的那些值,获得了公式(58)。
构成根据第二实施例的8-8IDCT/2-4-8IDCT器件110的8-8IDCT器件是根据公式(58)运算操作的。
接下来,在下面首先描述用于对构成8×8象素数据的每一行或一个列执行2-4-8IDCT的运算公式。
当通过以一维公式(52)的形式表示在上面的“相关技术描述”中描述的二维公式(18),以及通过相对于h和x解公式(52),如在公式(40)的情况下,获得的f(0)、f(1)、f(2)、f(3)、f(4)、f(5)、f(6)、f(7)以及F(0,z)、F(1,z)、F(2,z)、F(3,z)、F(4,z)、F(5,z)、F(6,z)和F(7,z),被设置为以致使f(0)=f
0、f(1)=f
1、f(2)=f
2、f(3)=f
3、f(4)=f
4、f(5)=f
5、f(6)=f
6、f(7)=f
7以及F(0,v)=F
0、F(1,v)=F
1、F(2,v)=F
2,F(3,v)=F
3,F(4,v)=F
4,F(5,v)=F
5,F(6,v)=F
6以及F(7,v)=F
7时,并且作为结果的公式被改变以及重新排列以获得公式(60)。在公式(60)中的P
0到P
6是如公式(40)中一样相同的值。
这里
公式(61)是通过改变上面的公式(60)的右边获得的,公式(62)是通过重新整理公式(61)的右边获得的。
通过以与公式(63)相同的方式设置在公式(62)中的F
0+F
4、F
3+F
7、F
1+F
5、F
2+F
6、F
0-F
4、F
3-F
7、F
1-F
5、和F
2-F
6,得到公式(64)。构成根据第二实施例的8-8IDCT/2-4-8IDGT器件2-4-8IDCT器件是按照公式(64)运算操作的。
在8-8 IDCT情况下,MUX112选择的输出将被用于8×8变换系数数据(此后称为“8×8数据”)的初次IDCT的每一八段数据(对其执行8-8IDCT)或者输出通过初次IDCT获得在构成8-8数据的每一行中包含的八段数据的每个到每一相应的寄存器141到148,并且,在2-4-8IDCT情况下,选择的输出八段数据F0到F7的数据F0到构成第一寄存器组113的寄存器141,数据F1到寄存器145,数据F2到寄存器143,数据F3到寄存器147,数据F4到寄存器142,数据F5到寄存器146,数据F6到寄存器144以及数据F7到寄存器148。
在8-8IDCT情况下,构成第一MUX组15的MUX1612、162、1632、164、165、166、167、168选择“0”数据,以及在8-8IDCT情况下,MUX1611和MUX1631分别地选择寄存器142和寄存器144。在2-4-8IDCT情况下,MUX162、164到168分别地选择相应的寄存器143和144到148。在2-4-8IDCT情况下,MUX1611、1612、1631和1632分别地选择寄存器141、142、143和144。在8-8IDCT和2-4-8IDCT两者情况下,构成第二MUX组123的MUX1241连接到寄存器221、222、223和224中的每一个的输出,选择四次寄存器221并且顺序输出四段数据。在8-8IDCT情况下,MUX1242连接到寄存器221、222、223和224中的每一个的输出,选择四次寄存器223,并且顺序输出四段数据,并且在2-4-8IDCT情况下,选择四次寄存器222并且顺序输出四段数据。在8-8IDCT情况下,MUX1243连接到寄存器221、222、223和224中的每一个的输出,按照寄存器222、224、224和222的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,按照寄存器223、224、224和223的顺序选择寄存器,并且顺序输出四段数据。在8-8IDCT情况下,MUX1244连接到寄存器221、222、223和224中的每一个的输出,按照寄存器224、223、222和224的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,按照寄存器224、223、223和224的顺序选择寄存器,并且按顺序输出四段数据。在8-8IDCT情况下,MUX1245连接到寄存器225、226、227和228中的每一个的输出,按照寄存器225、227、226和228的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,选择四次寄存器225并且顺序输出四段数据。在8-8IDCT情况下,MUX1246连接到寄存器225、226、227和228中的每一个的输出,按照寄存器226、225、228和227的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,按照寄存器227、228、228和227的顺序选择寄存器并且按顺序输出四段数据。在8-8IDCT情况下,MUX1247连接到寄存器225、226、227和228中的每一个的输出,按照寄存器227、228、225和226的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,选择四次寄存器226并且按顺序输出四段数据。在8-8IDCT情况下,MUX1248连接到寄存器225、226、227和228中的每一个的输出,按照寄存器228、226、227和225的顺序选择寄存器,并且按顺序输出四段数据,并且在2-4-8IDCT情况下,选择寄存器228、227、227和228并且顺序输出四段数据。
构成第一加/减法电路组125的加/减法电路1261对按照第一排序和第四排序从MUX1241顺序输出的四段数据中的数据和从MUX1242顺序输出的四段数据中的数据执行加法运算,并且对于从MUX1241和从MUX1242按照第二排序和第三排序输出的四段数据中的数据执行减法运算;即,按照第一排序从MUX1241输出的数据被加到按照第一排序从MUX1242输出的数据上,对按照第四排序输出数据执行同样的加法运算,对按照第二排序和第三排序输出的数据执行类似的减法操作。在由加/减法电路1261执行的减法运算中,从MUX1241输出的数据中减去MUX1242输出的数据。
构成第一加/减法电路组125的加/减法电路1262按照第一排序和第四排序,对从MUX1245顺序输出的四段数据中的数据和从MUX1247顺序输出的四段数据中的数据执行加法运算,并且对于从MUX1245和从MUX1247按照第二排序和第三排序输出的四段数据中的数据执行减法运算;即,按照第一排序从MUX1245输出的数据被加到按照第一排序从MUX1247输出的数据上,对按照第四排序输出数据执行同样的加法运算,对按照第二排序和第三排序输出的数据执行类似的减法操作。在由加/减法电路1262执行的减法运算中,从MUX1245输出的数据中减去MUX1247输出的数据。
构成第四寄存器组133的寄存器1341,在8-8IDCT和2-4-8IDCT两者中,按顺序存储从P5系数乘法电路322按顺序输出的四段数据的每个并且输出每一数据作为正值。构成第四寄存器组133的寄存器1342,在8-8IDCT和2-4-8IDCT两者中按顺序存储从P5系数乘法电路322按顺序输出的四段段数据的每个,并且输出按照第一排序和第三排序存储的数据为正值,输出将按照第二排序和第四排序存储的数据为负值。寄存器1343,在8-8IDCT和2-4-8IDCT两者中存储从P1系数乘法电路323按顺序输出的四段数据的每个,并且输出按照第一排序和第二排序存储的数据为正值,输出将按照第三排序和第四排序存储的数据为负值。
寄存器1344存储按顺序从P6/P3系数乘法电路324输出的四段数据的每个,并且在8-8IDCT情况下,输出将按照第一排序、第二排序和第四排序输出的数据为正值,而将按照第三排序输出的数据为负值,在2-4-8IDCT情况下,输出所有的储存的数据中的每一个为正值。寄存器1345存储按顺序从P4/P5系数乘法电路输出的四段数据的每个,并且在8-8IDCT情况下,输出将按照第一排序和第二排序输出的数据为正值,而将按照第三排序和第四排序输出的数据为负值,在2-4-8IDCT情况下,输出按照第一排序和第三排序输出的数据为正值,而将按照第二和第四排序输出的数据为负值。寄存器1346存储从P2系数乘法电路326按顺序输出的四段数据的每个,输出将按照第一排序和第四排序输出的数据为负值,输出将按照第二排序和第三排序输出的数据为负值。寄存器1347存储从P0/P1系数乘法电路327按顺序输出的四段数据的每个,并且在8-8IDCT情况下,输出将按照第一排序到第三排序输出的数据为负值,而将按照第四排序输出的数据为正值,在2-4-8IDCT情况下,输出按照第一排序和第二排序输出的数据为正值,而按照第三排序和第四排序输出的数据为负值。
加法电路1382对在寄存器1341储存的数据、在寄存器1342储存的数据和在寄存器1343储存的数据执行加法运算。从加法电路1382按顺序输出的数据被按顺序存入寄存器402。加法电路1384对在寄存器1344储存的数据、寄存器1345储存的数据、存入寄存器1346的数据以及寄存器1347储存的数据执行加法运算。从加法电路1384输出的数据被存在寄存器404中。
来自寄存器403的数据被供应给加法电路44的被加数输入端和减法电路42的被减数输入端,来自寄存器404的数据供应给加法电路44的加数输入端和减法电路42的减数输入端。从减法电路42输出的数据供应给构成第六寄存器组45的寄存器46,来自加法电路44的数据供应给构成第六寄存器组45的寄存器48。
此外,第二实施例的结构与在第一实施例的结构除了在上面描述那些结构之外是相同的。因此,在图7和图8中,与第一实施例中图1和图2中相同的零组件被给予同样的编号,对它们的描述被省略。
然而,寄存器1341的结构是与寄存器341的结构一样的。加法电路181连接到寄存器141的输出和MUX162的输出,加法电路182连接到寄存器143的输出和MUX164的输出,加法电路183连接到寄存器145的输出和MUX164的输出,加法电路184连接到寄存器147的输出和MUX164的输出。此外,减法电路201连接到MUX1611和MUX1612每一个的输出,减法电路202连接到MUX1631和MUX1632的输出,减法电路203连接到寄存器146和MUX1622,减法电路203连接到寄存器146的输出和MUX1622的输出,减法电路204连接到寄存器146的输出和MUX164的输出。
接下来将参照图7到图12描述第二实施例中的运算过程。首先,将说明8-8IDCT中的运算过程。
在按照8-8DCT被压缩的8×8图像数据的列方向中存在的八段数据F0到F7的每一个被储入构成第一寄存器组113的每个相应的寄存器141到148。
由于MUX1612、162、1632、164、165、166、167和168已经选择“0”数据而MUX1611和MUX1633已经分别选择寄存器142和寄存器144,从加法电路181输出F0=a0,从加法电路182输出数据F2=a2,从加法电路183输出数据F4=a3,从加法电路184输出数据F6=a1,从减法电路201输出数据F1=a5,从减法电路202输出F3=a7,从减法电路203输出数据-F5=a6,从减法电路204输出数据-F7=a4。
从加法电路181到加法电路184按顺序输出的数据a0到a3通过寄存器221到寄存器224被输入到MUX1241到MUX1244。加/减法电路126对在四运算周期从第一周期到第四运算周期中的每个运算周期中顺序从MUX1241输出的数据a0和对四运算周期的从第一运算周期到第四运算周期中每个运算周期中顺序输出的数据a3执行加法运算和减法运算,结果,按顺序输出数据a0+a3、数据a0-a3、数据a0-a3和数据a0+a3。
从加法/减法电路1261按顺序输出的数据a0+a3、数据a0-a3、数据a0-a3和数据a0+a3被存储在寄存器301中(参见图9中的寄存器301)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期从MUX1243输出的数据a2、数据a1、数据a1、数据a2,以及四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1244输出的数据a1、数据a2、数据a2和数据a1被按顺序存储进入寄存器303(参见图9中的寄存器303)。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1245输出的数据a5、数据a6、数据a7和数据a4被按顺序存储存储进入寄存器304(参见图10中的寄存器304)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1246输出的数据a7、数据a5、数据a4和数据a6被按顺序存入寄存器305(参见图10中的寄存器305)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中输出的数据a6、数据a4、数据a5和数据a7被存入寄存器306(参见图10中的寄存器306)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中输出的数据a4数据a7、数据a6和数据a5被按顺序存入寄存器307(参见图10中的寄存器307)。
按顺序存入寄存器301的数据被P3系数乘法电路321中的固定系数P3相乘而作为结果的数据按顺序存入寄存器1341(参见图9中的寄存器1341)。按顺序存入寄存器302的数据被P5系数乘法电路322中的固定系数P5相乘而作为结果的数据按顺序存入寄存器1342(参见图9中的寄存器1342)。按顺序存入寄存器303的数据被P1系数乘法电路323中的固定系数P1相乘而作为结果的数据按顺序存入寄存器1343(参见图9中的寄存器1343)。按顺序存入寄存器304的数据被P6系数乘法电路324中的固定系数P6相乘而作为结果的数据按顺序存入寄存器1344(参见图10中的寄存器1344)。按顺序存入寄存器305的数据被P4/P5系数乘法电路325中的固定系数P4相乘而作为结果的数据按顺序存入寄存器1345(参见图10中的寄存器1345)。按顺序存入寄存器306的数据被P2系数乘法电路326中的固定系数P2相乘而作为结果的数据按顺序存入寄存器1346(参见图10中的寄存器1346)。按顺序存入寄存器307的数据被P0/P1系数乘法电路327中的固定系数P0相乘而作为结果的数据按顺序存入寄存器1347(参见图10中的寄存器1347)。
加法电路1382对从寄存器1341、寄存器1342和寄存器1343馈送的每一数据按照四运算周期的第一运算周期到第四运算周期的顺序执行加法运算,输出数据(a0+a3)P3+a2P5+a1P1,(a0-a3)P3-a1P5+a2P1,(a0-a3)P3+a1P5-a2P1,(a0+a3)P3-a2P5-a1P1被按顺序存入寄存器402(参见图9中的寄存器402)。
加法电路1384对从寄存器1344、寄存器1345和寄存器1346馈送的每一数据按照四运算周期的第一运算周期到第四运算周期的顺序执行加法运算,并且输出数据a5P6+a7P4-a6P2-a4P0,a6P6+a5P4+a4P2-a7P0,-a7P6-a4P4+a5P2-a6P0,a4P6-a6P4-a7P2+a5P0被按顺序存入寄存器404(参见图9中的寄存器404)。
当存入寄存器402并且在每个第二运算周期输出的数据在寄存器404中存储并且并且在每个第二运算周期输出的数据在加法电路44中相乘时,在第一运算周期获得在对排列构成输入8×8数据块的列方向的八段数据F0到数据F7执行压缩之前存在的数据f0到f7的数据f0,在第二运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f1,在第三运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f2,在第四运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f3。数据f0、数据f1、数据f2以及数据f3被按顺序存入寄存器48。在图8中,对应于八段数据F0到数据F7的将被存在寄存器48中的图像数据f0到图像数据f3显示在寄存器48的输出线路的下部。
此外,当在减法电路42中从寄存器403储存的并且在第二运算周期输出的数据中减去在寄存器404储存的并且在第二运算周期输出的数据时,在第一运算周期获得在对排列在构成输入8×8数据块的一列方向的八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f4,在第二运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f5,在第三运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f6,以及在第四运算周期获得在对八段数据F0到数据F7执行压缩之前存在的数据f0到数据f7的数据f7。数据f4、数据f5、数据f6和数据f7按顺序存入寄存器46(参见图10中的寄存器46)。在图8中,对应于八段数据F0到数据F7的将被存在寄存器46中的图像数据f4到图像数据f7显示在寄存器48的输出线路的下部。
通过完成上面的算术运算,在构成8×8数据块的一个列中包含的八段数据上的初次8-8IDCT结束。在构成8×8数据块的下一个列后续的每一列执列如在上面所描述的相同的初次8-8IDCT,其后对构成8×8数据块的所有的八个列上的8-8IDCT以类似的方式结束。在对所有的八行完成初次8-8IDCT之后,对在构成8×8数据块的每个行中包含的八段数据执行二次8-8IDCT(为IDCT进行变换数据)。通过完成对每一8×8段数据将执行的初次8-8IDCT和二次8-8IDCT,可以再现通过8-8DCT压缩的传送的图像数据。
接下来,将描述2-4-8IDCT的运算。排列在从MUX112按顺序传送的8×8变换系数中列方向的,通过执行2-4-8DCT获得的8×8数据块的八段数据F0到数据F7的每一个被存入构成第一寄存器组113的每一寄存器141到寄存器148,如下所述:即,数据F0被存储入寄存器141中,数据F4存入寄存器142中,数据F2存入寄存器143中,数据F6存入寄存器144中,数据F1存入寄存器145中,数据F5存入寄存器146中,数据F3存入寄存器147中以及数据F7存入寄存器148中。
由于MUX162、MUX164到MUX168已经选择相应的寄存器141、寄存器144到寄存器,以及MUX1611、MUX1612、MUX1631、MUX1632已经选择相应的寄存器141、寄存器143、寄存器143、寄存器144,从加法电路181输出数据F0+F4=b0,从加法电路182输出数据F2+F6==b3,从加法电路183输出数据F1+F5=b2,从加法电路184输出数据F3+F7=b1,从减法电路201输出数据F0-F4=b4,从减法电路202输出F2-F6=b7,从减法电路204输出数据F3-F7=b5。
从加法电路181到加法电路184输出的数据b0到数据b3通过寄存器221到寄存器224输入到MUX1241到MUX1244。通过加法和减法电路1261按顺序对如下数据执行加法运算和减法运算,包括对四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1241输出的数据b0,以及对四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1242输出的数据b3,作为产生的结果,按顺序输出数据b0+b3、数据b0-b3、数据b0-b3、以及数据b0+b3。按顺序从加/减法电路1261输出的数据b0+b3、数据b0-b3、数据b0-b3以及b0+b3被存在寄存器301中(参见图11中的寄存器301)。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1243输出的数据b2、数据b1、数据b1和数据b2被按顺序存入寄存器302(参见图11中的寄存器302),而在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1244输出的数据b1、数据b2、数据b2和数据b1被按顺序存入寄存器303(参见图11中的寄存器303)。
通过加法和减法电路1262按顺序对如下数据执行加法运算和减法运算,包括对四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1245输出的数据b4、数据b4、数据b4以及数据b4,以及对四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1247输出的数据b7、数据b7、数据b7和数据b7,以及从加/减法电路1262输出数据b4+b7、数据b4-b7、数据b4-b7以及数据b4+b7。数据b4+b7、数据b4-b7、数据b4-b7以及数据b4+b7被按顺序存入寄存器304(参见图11中的寄存器304)。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1246输出的数据b6、数据b5、数据b5和数据b6被按顺序存入寄存器305(参见图11中的寄存器305)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1247输出的数据b7、数据b7、b7以及b7都未被MUX282选择,而且由MUX282选择的四段“0”数据被按顺序存入寄存器306(参见图11中的寄存器306)。在四运算周期的从第一运算周期到第四运算周期中的每个运算周期中从MUX1248输出的数据b5、数据b6、数据b5被按顺序存入寄存器307(参见图11中的寄存器307)。
按顺序存入寄存器301的每一数据被P3系数乘法电路321中的固定系数P3相乘,产生的结果数据被按顺序存入寄存器1341(参见图11中的寄存器1341)。按顺序存入寄存器302的每一数据被P5系数乘法电路322中的固定系数P5相乘,产生的结果数据被按顺序存入寄存器1342(参见图11中的寄存器1342)。按顺序存入寄存器303的每一数据被P1系数乘法电路321中的固定系数P1相乘,产生的结果数据被按顺序存入寄存器1343(参见图11中的寄存器1343)。按顺序存入寄存器304的每一数据被P6/P3系数乘法电路324中的固定系数P3相乘,产生的结果数据被按顺序存入寄存器1344(参见图12中的寄存器1344)。按顺序存入寄存器305的每一数据被P4/P5系数乘法电路325中的固定系数P5相乘,产生的结果数据被按顺序存入寄存器1345(参见图12中的寄存器1345)。按顺序存入寄存器306的每一数据被P2系数乘法电路326中的固定系数P2相乘,产生的结果数据被按顺序存入寄存器1346(参见图12中的寄存器1346)。按顺序存入寄存器307的每一数据被P0/P1系数乘法电路327中的固定系数P1相乘,产生的结果数据被按顺序存入寄存器1347(参见图12中的寄存器1347)。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期从寄存器1341、1342和1343输出的数据在加法电路1382中相加,数据(b0+b3)P3+b2P5+b1P1作为在第一运算周期获得的数据从加法电路1382输出,(b0-b3)P3-b1P5+b2P1作为在第二运算周期获得的数据输出,数据(b0-b3)P3+b1P5-b2P1作为在第三运算周期获得的数据输出,数据(b0+b3)P3-b2P5-b1P1作为在第四运算周期获得的数据输出,这些数据被顺序存入寄存器402。在存储顺序上,将被按顺序存入寄存器402的数据包括对应于输入的八段数据F0到数据F7的出自象素数据f0到象素数据f7的数据f0、数据f2、数据f4以及数据f6(相当于公式(64)中的f0、f2、f1和f6)。在图8,本象素数据f0,象素数据f2,象素数据f4以及象素数据f6是显示在寄存器402的输出线路的下部。
在四运算周期的从第一运算周期到第四运算周期中的每个运算周期从寄存器1344、寄存器1345和寄存器1346输出的数据在加法电路1382中相加,数据(b4+b7)P3++b6P5+b5P1作为在第一运算周期获得的数据从加法电路1384输出,(b4-b7)P3-b5P5+b6P1作为在第二运算周期获得的数据输出,数据(b4-b7)P3+b6P5-b6P1作为在第三运算周期获得的数据输出,数据(b4+b7)P3-b6P5-b5P1作为在第四运算周期获得的数据输出,这些数据被顺序存入寄存器404。在存储顺序上,将被按顺序存入寄存器404的数据包括对应于输入的八段数据F0到数据F7的出自象素数据f0到象素数据f7的数据f1、数据f2、数据U以及数据f6(相当于公式(64)中的f1、f3、f5和f7)。在图8中,象素数据f1、象素数据f3、象素数据f5以及象素数据f7被显示在寄存器404的输出线路的下部。
通过完成上面的算术运算,在构成8×8数据块的一个列中包含的八段数据上的初次2-4-8IDCT结束。在构成8×8数据块的下一个列后续的每一列上执行如在上面所描述的相同的初次2-4-8IDCT,其后对构成8×8数据块的所有的八个列上的2-4-8IDCT以类似的方式结束。在对所有的八个列完成初次2-4-8IDCT之后,对在构成8×8数据块的每个列中包含的八段八数据执行二次2-4-8IDCT(为IDCT进行变换数据)。通过对在将传送的一图像数据中的每一8×8象素数据执行初次2-4-8IDCT和二次2-4-8IDCT,按2-4-8DCT压缩的图像数据可以被再现。
因此,根据本提出发明,由于8-8IDCT以及2-4-8IDCT器件被配置为通过切换,在8-8IDCT电路中使用的部分固定系数乘法电路能被使用作为2-4-8IDCT中所需的固定系数乘法电路,所以通过在8-8IDCT中管道处理型算术运算获得的高速计算特性在2-4-8DCT中可以被保持,而且甚至在小型化的8-8IDCT和2-4-8IDCT器件中仍然可以保持高速计算特性。第三实施例
图13是局部地示出根据本发明第三实施例的16-16/2-8-16DCT器件的电结构的概要的方块图。图14是局部地示出根据本发明第三实施例的16-16/2-8-16DCT器件的电结构的概要的方块图。通过在图14中的行Ⅲ-Ⅲ上叠加图13中的行Ⅲ-Ⅲ,可以示出16-16DCT/2-8-16DCT器件的整个结构。第三实施例的16-16/2-8-16DCT的结构与第一实施例和和第二实施例的结构有很大的不同,即,16-16DCT或2-8-16DCT是在将被输入的16×16段的象素数据上执行的。在16-16DCT情况下,16-16DCT/2-8-16DCT器件210根据通过解压缩以及重新排列公式(17)获得的判定公式(65)执行算术运算,在2-8-16DCT情况下,根据通过解压缩和重新整理公式(21)获得的判定公式(66)执行算术运算。在判定公式(66)中的值e
0到值e
15是由公式(67)给出的,在判定公式(66)中的值g
0到值g
15是由公式(68)给出的。
在公式(65)和公式(66)中的值P0到P15是如下的:P0=cos(15π/32)=-cos(17π/32)=0.09801714034…P1=cos(14π/32)=-cos(18π/32)=0.195090322…P2=cos(13π/32)=-cos(19π/32)=0.2902846773…P3=cos(12π/32)=-cos(20π/32)=0.3826834324…P4=cos(11π/32)=-cos(21π/32)=0.4713967368…P5=cos(10π/32)=-cos(22π/32)=0.555570233…P6=cos(9π/32)=-cos(23π/32)=0.634393842…P7=cos(8π/32)=-cos(24π/32)=0.707106781…P8=cos(7π/32)=-cos(25π/32)=0.7730104534…P9=cos(6π/32)=-cos(26π/32)=0.8314696123…P10=cos(5π/32)=-cos(27π/32)=0.8819212644…P11=cos(4π/32)=-cos(28π/32)=0.9238795325…P12=cos(3π/32)=-cos(29π/32)=0.9567403357…P13=cos(2π/32)=-cos(30π/32)=0.9807852804…P14=cos(π/32)=-cos(31π/32)=0.9951847276…P15=cos(0π/32)=-cos(π)=1
此实施例的16-16DCT2-8-16DCT210被构造为,固定系数乘法电路的一部分是由16-16DCT和2-8-16DCT共同使用的,以执行管道型高速算术运算,并且甚至在小型化的电路中也可以执行16-16DCT和2-8-16DCT。
第三实施例的16-16DCT/2-8-16DCT器件的组成包括:一个MUX212,构成第一寄存器组213的十六个寄存器141到寄存器1416,构成第一加法电路组217的八个加法电路181到188,构成减法电路组219的八个减法电路201到减法电路208,构成第二寄存器组221的十六个寄存器221到寄存器2216,构成第一MUX组223的十六个MUX2241到MUX22416,构成第一加/减法电路组225的两个加/减法电路2261和加/减法电路2262,构成第二MUX组227的两个MUX281和MUX282,构成第三寄存器组229的十五个寄存器301到寄存器3015,P7系数乘法电路2321,P11系数乘法电路2322,P3系数乘法电路2323,P13系数乘法电路2324,P9系数乘法电路2325,P5系数乘法电路2326,P1系数乘法电路2327,P14/P7系数乘法电路2328,P12/P11系数乘法电路2329,P10/P3系数乘法电路23210,P8/P13系数乘法电路23211,P6/P9系数乘法电路23212,P4/P5系数乘法电路23213,P2系数乘法电路23214,P0/P1系数乘法电路23215,构成第四寄存器组233的十五个寄存器2341到寄存器23415,构成第二加法电路组237的六个加法电路2381到加法电路2386,八个加法电路2361到加法电路2369,以及构成第五寄存器组39的六个寄存器401到寄存器406。在图13,每个寄存器141到寄存器146被显示为R。
MUX212选择的输出被执行初次DCT的十六段图片数据的每一个,它是包含在构成由16×16段图片数据组成的块的每一行中,或选择输出从初次DCT获得的十六段图片数据的每一个,它是包含在构成由16×16段图片数据组成的块的每一列中。在下文中,从MUX212输出的每一个十六段数据被称为数据f0到数据f15。MUX212,在16-16DCT情况下,将数据f0存入构成第一寄存器组213的寄存器141,f15存入寄存器142,f1存入寄存器143,f14存入寄存器144,f2存入寄存器145,f13存入寄存器146,f3存入寄存器147,f12存入寄存器148,f4存入寄存器149,f11存入这寄存器1410,f5存入寄存器1411,f10存入寄存器1412,f6存入寄存器1413,f9存入寄存器1414,f7存入寄存器1415和f8存入寄存器1416,以及,在2-4-8DCT情况下,存储f0到f15到相应的寄存器141到寄存器1416。
构成第一加法电路组217的每一加法电路181到189,在16-16DCT和2-8-16DCT两者的情况下,对在两个寄存器中存储的数据执行加法运算。即,加法电路181把存储在寄存器141中的数据加到存储在寄存器142中的数据上。加法电路182把存储在寄存器143中的数据加到存储在寄存器144中的数据上。加法电路183把存储在寄存器145中的数据加到存储在寄存器146中的数据上。加法电路184把存储在寄存器147中的数据加到存储在寄存器148中的数据上。加法电路185把存储在寄存器149中的数据加到存储在寄存器1410中的数据上。加法电路186把存储在寄存器1411中的数据加到存储在寄存器1412中的数据上。加法电路187把存储在寄存器1413中的数据加到存储在寄存器1414中的数据上。加法电路188把存储在寄存器1415中的数据加到存储在寄存器1416中的数据上。
每一减法电路201到208,在16-16DCT和2-8-16DCT两者的情况下,对在两个寄存器中存储的数据执行减法运算。即,减法电路201从存储在寄存器141中的数据中减去存储在寄存器142中的数据。减法电路202从存储在寄存器143中的数据中减去存储在寄存器144中的数据。减法电路203从存储在寄存器145中的数据中减去存储在寄存器146中的数据。减法电路204从存储在寄存器147中的数据中减去存储在寄存器148中的数据。减法电路205从存储在寄存器149中的数据中减去存储在寄存器1410中的数据。减法电路206从存储在寄存器1411中的数据中减去存储在寄存器1412中的数据。减法电路207从存储在寄存器1413中的数据中减去存储在寄存器1414中的数据。减法电路208从存储在寄存器1415中的数据中减去存储在寄存器1416中的数据。
构成第二寄存器组221的寄存器221临时存储从加法电路181输出的数据。寄存器222临时存储从加法电路182输出的数据。寄存器223临时存储从加法电路183输出的数据。寄存器224临时存储从加法电路184输出的数据。寄存器225临时存储从加法电路185输出的数据。寄存器226临时存储从加法电路186输出的数据。寄存器227临时存储从加法电路187输出的数据。寄存器228临时存储从加法电路188输出的数据。
寄存器229临时存储从减法电路201输出的数据。寄存器2210临时存储从减法电路202输出的数据。寄存器2211临时存储从减法电路203输出的数据。寄存器2212临时存储从减法电路204输出的数据。寄存器2213临时存储从减法电路205输出的数据。寄存器2214临时存储从减法电路206输出的数据。寄存器22154临时存储从减法电路207输出的数据。寄存器2216临时存储从减法电路208输出的数据。
在16-16DCT情况下,在构成第一MUX组223的MUX2241到MUX2244中的选择数据的操作是如下所述的:
MUX2241连接到每一寄存器221到寄存器228的输出并且按照寄存器221、224、225、228、221,224,225和228的顺序选择寄存器,并且按顺序输出八段数据。MUX2242连接到每一寄存器221到寄存器228的输出并且按照寄存器222、223、226、227、222,223,226和227的顺序选择寄存器,并且按顺序输出八段数据。MUX2243连接到每一寄存器221到寄存器228的输出并且按照寄存器221、224、225、228、222,223,226和227的顺序选择寄存器,并且按顺序输出八段数据。MUX2244连接到每一寄存器221到寄存器228的输出并且按照寄存器222、223、226、227、221、224、225和228的顺序选择寄存器,并且按顺序输出八段数据。
在2-8-16DCT情况下在MUX2241到MUX2248中选择数据的运算操作是如下所述的:
MUX2241连接到每一寄存器221到228的输出并且按照寄存器221、224、225、228、221、224、225以及229的顺序选择寄存器,并且按顺序输出八段数据。MUX2242连接到每一寄存器221到228的输出,并且按照寄存器222、223、225、227、222、222、223、226以及227的顺序选择寄存器,并且按顺序输出八段数据。MUX2243连接到每一寄存器221到228的输出,并且按照寄存器221、228、224、225、222、223、226以及227的顺序选择寄存器,并且按顺序输出八段数据。MUX2244连接到每一寄存器221到228的输出,并且按照寄存器222、223、226、227、221、224、225以及228的顺序选择寄存器,并且按顺序输出八段数据。
在16-16DCT情况下,在MUX2245到MUX2248中选择数据的运算操作是如下所述的:
MUX2245连接到每一寄存器221到寄存器228的输出,并且按照寄存器221、228、226、223、227、222、225和224的顺序选择寄存器,并且按顺序输出八段数据。MUX2246连接到每一寄存器221到寄存器228的输出,并且按照寄存器222、227、221、227、224、225、223和226的顺序选择寄存器,并且按顺序输出八段数据。MUX2247连接到每一寄存器221到寄存器228的输出,并且按照寄存器223、226、224、225、221、228、222和222的顺序选择寄存器,并且按顺序输出八段数据。MUX2248连接到每一寄存器221到寄存器228的输出,并且按照寄存器224、225、227、222、223、226、221和228的顺序选择寄存器,并且按顺序输出八段数据。
在2-8-16DCT情况下在MUX2245到MUX2248中选择数据的运算操作是如下所述的:
MUX2245连接到每一寄存器221到寄存器228的输出,并且按照寄存器223、226、222、227、221、228、224和225的顺序选择寄存器,并且按顺序输出八段数据。MUX2246连接到每一寄存器221到寄存器228的输出,并且按照寄存器222、228、224、225、222、227、223和226的顺序选择寄存器,并且按顺序输出八段数据。MUX2247连接到每一寄存器221到寄存器228的输出,并且按照寄存器224、225、221、228、223、226、222和227的顺序选择寄存器,并且按顺序输出八段数据。MUX2248连接到每一寄存器221到寄存器228的输出,并且按照寄存器222、227、223、226、224、225、221和228的顺序选择寄存器,并且按顺序输出八段数据。
在16-16DCT以及2-8-16DCT之间,构成第一MUX组223的MUX2249到MUX22416中的选择数据的操作是不同的:首先,对于16-16DCT,MUX2249到MUX22416中的选择数据的运算操作如下:
MUX2249连接到寄存器229到2216的每一输出并且按照寄存器229到寄存器2216的顺序选择寄存器,以及按照顺序229、2214、2215、2213、2212、2210、2211以及2216的顺序选择寄存器。MUX22410连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2210、229、2212、2211、2214、2213、2216以及2215的顺序选择寄存器,并且按顺序输出八段数据。MUX22411连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2211、2213、229、2215、2210、2216、2212以及2214的顺序选择寄存器,并且按顺序输出八段数据。MUX22412连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2212、2215、2211、229、2216、2214、2210以及2213的顺序选择寄存器,并且按顺序输出八段数据。MUX22413连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2213、2210、2214、229、2211、2215以及2212的顺序选择寄存器,并且按顺序输出八段数据。MUX22414连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2214、2212、2216、2210、2215、229,2213以及2211的顺序选择寄存器,并且按顺序输出八段数据。MUX22415连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2215、2216、2213、2214、2211、2212、229以及2210的顺序选择寄存器,并且按顺序输出八段数据。MUX22416连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2216、2211、2210、2212、2213、2215、2214以及229的顺序选择寄存器,并且按顺序输出八段数据。
接下来,在下面将描述对于2-8-16DCT,MUX229到到MUX2216中选择数据的操作运算。
MUX2249连接到每一寄存器229到寄存器2216的输出,并且按照寄存器229、2212、2213、2216、229、2212、2213以及2216的顺序选择寄存器,并且按顺序输出八段数据。MUX22410连接到每一寄存器229到寄存器2216的输出,并且按照寄存器229、2216、2212、2213、2210、2211、2214以及2215的顺序选择寄存器,并且按顺序输出八段数据。MUX22411连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2210、2211、2214、2215、229、2212、2213以及2216的顺序选择寄存器,并且按顺序输出八段数据。MUX22412连接到每一寄存器229到寄存器2216的输出,并且按照寄存器229、2216、2211、2214、2210、2215、2212以及2213的顺序选择寄存器并且按顺序输出八段数据。MUX22413连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2210、2215、229、2216、2212、2213、2211以及2214的顺序选择寄存器,并且按顺序输出八段数据。MUX22414连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2211、2214、2212、2213、229、2216、2210以及2215的顺序选择寄存器,并且按顺序输出八段数据。MUX22415连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2210、2211、2214、2215、2210、2211、2213以及2214的顺序选择寄存器,并且按顺序输出八段数据。MUX22416连接到每一寄存器229到寄存器2216的输出,并且按照寄存器2212、2213、2210、2215、2211、2214、229以及2216的顺序选择寄存器并且按顺序输出八段数据。
构成加/减法电路组225的加/减法电路2261,在16-16DCT以及2-8-16DCT两个情况下,对按照从MUX2241顺序输出的八段数据的第一排序到第四排序和从MUX2242顺序输出的八段数据的第一排序到第四排序输出的数据执行加法运算,以及对于按照从MUX2241顺序输出的八段数据的第五排序到第八排序和从MUX2242顺序输出的八段数据的第五排序到第八排序执行减法运算。
即,加/减法电路2261从MUX2241输出的数据中减去MUX2242输出的数据。加/减法电路2263,在16-16DCT以及2-8-16DCT两个情况下,对按照从MUX2249顺序输出的八段数据的第一排序到第四排序和从MUX22415顺序输出的八段数据的第一排序到第四排序输出的数据执行加法运算,以及对于按照从MUX2249顺序输出的八段数据的第五排序到第八排序和从MUX22415顺序输出的八段数据的第五排序到第八排序执行减法运算。
加/减法电路2262从MUX2249输出的数据中减去MUX22415输出的数据。
构成第二MUX组227的MUX281,在16-16DCT情况下,选择从MUX2249顺序输出的八段数据,在2-8-16DCT情况下,选择从加/减法电路2262按顺序输出的数据。
构成第二MUX组227的MUX281,在16-16DCT情况下,选择从MUX2249顺序输出的八段数据,在2-8-16DCT情况下,选择从加/减法电路2262按顺序输出的数据。MUX282,在16-16DCT情况下,选择从MUX22415按顺序输出的八段数据,在2-4-8DCT情况下,不选择从22415按顺序输出的八段数据而是选择八次“0”,它对应于MUX282的八个运算周期。
构成第三寄存器组229的寄存器301按顺序存储从加/减法电路2261按顺序输出的八段数据的运算结果。寄存器303按顺序存储从MUX2243按顺序输出的八段数据。寄存器303按顺序存储从MUX2244按顺序输出的八段数据。寄存器304按顺序存储从MUX2245按顺序输出的八段数据。寄存器305按顺序存储从MUX2246按顺序输出的八段数据。寄存器306按顺序存储从MUX2247按顺序输出的八段数据。寄存器307按顺序存储从MUX2248按顺序输出的八段数据。
寄存器308按顺序存储从MUX2249按顺序输出的八段数据的运算结果。寄存器309按顺序存储从MUX22410按顺序输出的八段数据。寄存器3010按顺序存储从MUX22411按顺序输出的八段数据。寄存器3011按顺序存储从MUX22412按顺序输出的八段数据。寄存器3012按顺序存储从MUX22413按顺序输出的八段数据。寄存器3013按顺序存储从MUX22414按顺序输出的八段数据。寄存器3015按顺序存储从MUX22416按顺序输出的八段数据。
P7系数乘法电路2321到P1系数乘法电路2327中的每一个,在16-16DCT和2-8-16DCT情况下,用一相同的固定系数乘从每一寄存器输出的数据。即,P7系数乘法电路2321用固定系数P7乘从寄存器301按顺序输出的每个八段数据。P11系数乘法电路2322用固定系数P11乘从寄存器303按顺序输出的每个八段数据。P3系数乘法电路2323用固定系数P3乘从寄存器303按顺序输出的每个八段数据。P13系数乘法电路2324用固定系数P13乘从寄存器304按顺序输出的每个八段数据。P9系数乘法电路2325用固定系数P9乘从寄存器305按顺序输出的每个八段数据。P5系数乘法电路2326用固定系数P5乘每一个八段数据。P1系数乘法电路2327用固定系数P1乘从寄存器307按顺序输出的每个八段数据。
P14/P7系数乘法电路2328到P4/P5系数乘法电路23215的每一个,在16-16DCT和2-8-16DCT情况下,被适于切换固定系数以及利用另外一个固定系数执行乘法。即,P14/P7系数乘法电路2328,在16-16DCT情况下,用固定系数P14乘从寄存器308按顺序输出的每一个八段数据,以及在2-4-16DCT情况下,用固定系数P7乘从寄存器308按顺序输出的每一个八段数据。P12/P11系数乘法电路2329,在16-16DCT情况下,用固定系数P12乘从寄存器309按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P11乘从寄存器309按顺序输出的每一个八段数据。P10/P3系数乘法电路23210,在16-16DCT情况下,用固定系数P10乘从寄存器3010按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P3乘从寄存器3010按顺序输出的每一个八段数据。P8/P13系数乘法电路23211,在16-16DCT情况下,用固定系数P8乘从寄存器3011按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P13乘从寄存器3010按顺序输出的每一个八段数据。P6/P9系数乘法电路23212,在16-16DCT情况下,用固定系数P6乘从寄存器3012按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P9乘从寄存器3012按顺序输出的每一个八段数据。P4/P5系数乘法电路23213,在16-16DCT情况下,用固定系数P4乘从寄存器3013按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P5乘从寄存器3013按顺序输出的每一个八段数据。P2系数乘法电路23214用固定系数P2乘从寄存器3014按顺序输出的每个八段数据。P0/P1系数乘法电路23215,在16-16DCT情况下,用固定系数P0乘从寄存器3015按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P1乘从寄存器3015按顺序输出的每一个八段数据。
构成第四寄存器组233的每一寄存器2341、2343、2345和23414,在16-16DCT以及2-8-16DCT情况下,如下所述地按顺序存储数据并且输出数据:
寄存器2341按顺序存储从P7系数乘法电路2321按顺序输出的每个八段数据,并且按顺序输出每一数据为正值。
寄存器2343按顺序存储从P3系数乘法电路2323按顺序输出的每个八段数据,并且将要按照第一排序、第四排序、第五排序和第八排序输出的数据作为正值输出,而要按照第二排序、第三排序、第六排序和第七排序输出的作为负值输出。寄存器2345按顺序存储从P9系数乘法电路2325按顺序输出的每个八段数据,并且将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的作为负值输出。寄存器23414按顺序存储从P2系数乘法电路23214按顺序输出的每个八段数据,并且将要按照第一排序、第四排序、第五排序和第八排序输出的数据作为正值输出,而要按照第二排序、第三排序、第六排序和第七排序输出的作为负值输出。
寄存器2342按顺序存储从P11系数乘法电路2322按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第四排序、第六排序输出的数据作为正值输出,而要按照第二排序、第三排序、第五排序、第七排序和第八排序输出的数据作为负值输出。以及,在2-8-16DCT情况下,将要按照第一排序、第二排序、第六排序和第七排序输出的数据作为正值输出,而要按照第三排序、第四排序、第五排序和第八排序输出的数据作为负值。
寄存器2344按顺序存储从P13系数乘法电路2324按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第二排序、第四排序、第五排序和第八排序输出的数据作为正值输出,而要按照第一排序、第三排序、第六排序和第七排序输出的数据作为负值。
寄存器2346按顺序存储从P5系数乘法电路2326按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序、第五排序以及第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第二排序、第三排序、第五排序和第八排序输出的数据作为正值输出,而要按照第一排序、第四排序、第六排序和第七排序输出的数据作为负值。
寄存器2347按顺序存储从P1系数乘法电路2327按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序、第五排序以及第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第二排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第一排序、第四排序、第六排序和第八排序输出的数据作为负值。
寄存器2348按顺序存储从P14/P7系数乘法电路2328按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序、第五排序以及第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值输出,以及在2-8-16DCT情况下,要被输出的每一数据作为正值输出。
寄存器2349按顺序存储从P12/P11系数乘法电路2329按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第二排序、第七排序以及第八排序输出的数据作为正值输出,而要按照第三排序到第六排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序、第二排序、第四排序、第六排序和第七排序输出的数据作为正值输出,而要按照第三排序、第五排序和第八排序输出的数据作为负值。
寄存器23410按顺序存储从P10/P3系数乘法电路23210按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序和第三排序输出的数据作为正值输出,而要按照第二排序、以及第四排序到第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序和第四排序到第八排序输出的数据作为正值输出,而要按照第二排序和第三排序输出的数据作为负值。
寄存器23411按顺序存储从P8/P13系数乘法电路23211按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序和第四排序到第六排序输出的数据作为正值输出,而要按照第二排序、第三排序、第七排序以及第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序、第四排序、第六排序和第八排序输出的数据作为正值输出,而要按照第二排序、第三排序、第五排序和第七排序输出的数据作为负值。
寄存器23412按顺序存储从P6/P9系数乘法电路23212按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序、第五排序以及第六排序输出的数据作为正值输出,而要按照第四排序、第七排序和第八排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第七排序输出的数据作为负值。
寄存器23413按顺序存储从P4/P5系数乘法电路23213按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序、第三排序和第五排序到第八排序输出的数据作为正值输出,而要按照第二排序以及第四排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序、第四排序、第五排序和第八排序输出的数据作为正值输出,而要按照第二排序、第三排序、第六排序和第七排序输出的数据作为负值。
寄存器23415按顺序存储从P0/P1系数乘法电路23215按顺序输出的每个八段数据,以及在16-16DCT的情况下,将要按照第一排序到第四排序和第六排序到第八排序输出的数据作为正值输出,而要按照第五排序输出的数据作为负值输出,以及,在2-8-16DCT情况下,将要按照第一排序、第四排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第三排序、第六排序和第八排序输出的数据作为负值。
在第二加法电路组237中包含的加法电路2381与构成第五寄存器组239的寄存器401和与电路2361一起构成数据累积电路。在16-16DCT和2-8-16DCT两者中,从寄存器401馈送数据到与电路2361的一个输入,与电路2361的另外一个输入是从二进制信号列产生电路(未示出)馈送的并且符合八运算周期的从第一运算周期到第八运算周期顺序的信号“0”、“1”、“1”、“0”、“1”、“1”以及“1”。累积的值从寄存器寄存器401输出,它是通过在加法电路2381中,将从寄存器2341输出的并且馈送到加法电路2381的一个输入端的数据与在前面一个时钟在寄存器401中存储的而且在下一个时钟通过与电路2361馈送到加法电路2381的另外一个输入端的数据相加获得的。
加法电路2382与寄存器402和与电路2362一起构成数据累积电路。在16-16DCT和2-8-16DCT两者中,从寄存器402馈送数据到与电路2362的一个输入,与电路2362的另外一个输入是从二进制信号列产生电路(未示出)馈送的并且符合八运算周期的从第一运算周期到第八运算周期顺序的信号“0”、“1”、“1”、“0”、“1”、“1”以及“1”。累积的值从寄存器寄存器402输出,它是通过在加法电路2382中,将从寄存器2342和寄存器2343输出的并且馈送到加法电路2382的一个输入端的数据与在前面一个时钟在寄存器402中存储的而且在下一个时钟通过与电路2362馈送到加法电路2382的另外一个输入端的数据相加获得的。
加法电路2383与寄存器403和与电路2363一起构成数据累积电路。在16-16DCT和2-8-16DCT两者中,从寄存器403馈送数据到与电路2363的一个输入,与电路2363的另外一个输入是从二进制信号列产生电路(未示出)馈送的并且符合八运算周期的从第一运算周期到第八运算周期顺序的信号“0”、“1”、“1”、“0”、“1”、“1”以及“1”。累积的值从寄存器403输出,它是通过在加法电路2382中,将从寄存器2344到寄存器2347输出到加法电路2383的第一输入端的数据与在前面一个时钟在寄存器403中存储的而且在下一个时钟通过与电路2363馈送到加法电路2383的第五输入端的数据相加获得的。
加法电路2384,在16-16DCT情况下,对从寄存器2348到寄存器23415输出的数据执行加法运算并且将结果存入寄存器404,以及在2-8-16DCT情况下,与寄存器2348到寄存器23415和与电路2365一起构成累积电路。即,在16-16DCT情况下,与电路2365的一个输入被馈送从寄存器405输出的数据而与电路2365的另外一个输入被二进制列产生电路(未示出)馈送八运算周期的第一运算周期到第八运算周期中的信号“0”,而在2-8-16DCT情况下,被馈送信号“0”、“1”、“0”和“1”、“0”、“1”、“0”以及“1”,它们对应于八运算周期的从第一运算周期到第八运算周期的顺序,并且是由二进制列产生电路(未示出)馈送的。
与电路2367的一个输入被馈送来自寄存器234的数据,与电路2368的一个输入被馈送来自寄存器234的数据,与电路2369的一个输入被馈送来自寄存器3010的数据。在16-16DCT情况下,与电路2367、与电路2368以及与电路2369中每一个的另一个输入端,在八运算周期的第一运算周期到第八运算周期中,被二进制列产生电路(未示出)馈送信号“0”,以及在2-8-16情况下,在八运算周期的第一运算周期到第八运算周期中由二进制列产生电路(未示出)馈送信号“1”。
在16-16DCT情况下,在八运算周期的每一运算周期从每一寄存器2348到寄存器23415按顺序输出的数据,在每个运算周期中被馈送到加法电路2384的第一输入到第八输入中的一个,并且受到加法运算然后结果数据被按顺序存入寄存器404,同时,在2-8-16DCT情况下,在八运算周期的每一运算周期中从每一寄存器23411到寄存器23415按顺序输出的并且被到加法电路2384的第四输入到第八输入中的一个输入端的数据,被加到在前面一个时钟存入寄存器404中储存的数据上,并且在下一个时钟通过在加法电路2384中的与电路2365馈送到加法电路2384的第九输入端,并且从寄存器404输出结果数据。
接下来,将参照图13到14描述第一实施例的16-16DCT以及2-4-8DCT的运算操作。首先,将在下面说明16-16DCT的运算操作。
在从MUX212按顺序传送的构成16×16段数据块的每一行中包含的每个十六段数据F0到数据F15(用于DCT输入的数据)是存入在第一寄存器组213中包含的每一寄存器141到寄存器1415。即,数据f0被存入构成第一寄存器组213的141,数据f15存入寄存器142,数据f1存入寄存器143,数据f14存入寄存器144,数据f2存入寄存器145,数据f13存入寄存器146,数据f3存入寄存器147,数据f12存入寄存器148,数据f4存入寄存器148,数据f11存入寄存器1410,数据f5存入寄存器1411,数据f10存入寄存器1412,数据f6存入寄存器1413,数据f9存入寄存器1414,数据f7存入寄存器1415以及数据f8存入寄存器16。
因此,当每一个十六段象素数据被存入每一寄存器141到寄存器1416时,从加法电路181输出数据f0+f5=e0,从加法电路182输出数据f1+f14=e1,从加法电路183输出数据f2+f13=e2,从加法电路184输出数据f3+f12=e3从加法电路185输出数据f4+f11=e4,从加法电路186输出数据f5+f10=e5,从加法电路187输出数据f6+f9=e6,从加法电路188输出数据f7+f8=e7。
从减法电路201输出数据f0-f15=e8,从减法电路202输出数据f1-f14=e9,从减法电路203输出数据f2-f13=e10,从减法电路204输出数据f3-f12=e11,从减法电路205输出数据f4-f11=e12,从减法电路206输出数据f5-f10=e13,从减法电路207输出数据f6-f9=e14,从减法电路208输出数据f7-f8=e15。
从加法电路181输出的数据e0被存在寄存器221中,从加法电路182输出的数据e1被存在寄存器222中,从加法电路183输出的数据e2被存在寄存器223中,从加法电路184输出的数据e3被存在寄存器224中,从加法电路185输出的数据e4被存在寄存器225中,从加法电路186输出的数据e5被存在寄存器226中,从加法电路187输出的数据e6被存在寄存器227中,从加法电路188输出的数据e7被存在寄存器228中,从减法电路201输出的数据e8被存在寄存器229中,从减法电路202输出的数据e9被存在寄存器2210中,从减法电路203输出的数据e10被存在寄存器2211中,从减法电路204输出的数据e11被存在寄存器2212中,从减法电路205输出的数据e12被存在寄存器2213中,从减法电路206输出的数据e13被存在寄存器2214中,从减法电路207输出的数据e14被存在寄存器2215中,从减法电路208输出的数据e15被存在寄存器2216中。
从加法电路181到加法电路188输出的数据e0到数据e7通过寄存器221到寄存器228被输入到MUX2241到MUX2248,从MUX2241到MUX2248输出下列数据。
在八运算周期的每个运算周期按顺序从MUX2241输出的八段数据e0、e3、e4、e7、e0、e3、e4以及e7被供应给加/减法电路2261,而八运算周期的每个运算周期中从MUX2242按顺序输出的八段数据e1、e2、e5、e6、e1、e2、e5以及e6被供应给供应给加/减法电路2261,在八运算周期的每个运算周期中从加/减法电路2261按顺序输出数据e0+e1、数据e3+e2、数据e4+e5、数据e7+e6、数据e0-e1、数据e3-e2、数据e4-e5以及数据e7-e6,被存在寄存器301中。
在八运算周期的每个运算周期由MUX2243选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2243按顺序输出数据e0、e3、e4、e7、e1、e2、e5以及e6,并且存在寄存器302中。在八运算周期的每个运算周期由MUX2244选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2244按顺序输出数据e1、e2、e5、e6、e0、e3、e4以及e7,并且存在寄存器303中。在八运算周期的每个运算周期由MUX2245选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2245按顺序输出数据e0、e7、e5、e0、e6、e1、e4以及e3,并且存在寄存器304中。在八运算周期的每个运算周期由MUX2246选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2246按顺序输出数据e1、e6、e0、e6、e3、e4、e2以及e5,并且存在寄存器305中。在八运算周期的每个运算周期由MUX2247选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2247按顺序输出数据e2、e5、e3、e4、e0、e7、e6以及e1,并且存在寄存器306中。
在八运算周期的每个运算周期由MUX2248选择在八操作周期的每个操作周期中从寄存器221到寄存器228输出的八段数据e0、e1、e2、e3、e4、e5、e6以及e7,从MUX2248按顺序输出数据e3、e4、e6、e1、e2、e5、e0以及e7,并且存在寄存器307中。
在八运算周期的每个运算周期由MUX2249选择在八操作周期的每个操作周期中从寄存器229到寄存器2212输出的八段数据e8、e9、e10、e11、e12、e13、e14以及e15,从MUX2249按顺序输出数据e8、e13、e14、e12、e11、e9、e10以及e15,并且通过MUX281存在寄存器308中。在八运算周期的每个运算周期由MUX22410选择在八操作周期的每个操作周期中从寄存器229到寄存器2212输出的八段数据e8、e9、e10、e11、e12、e13、e14以及e15,从MUX22410按顺序输出数据e9、e8、e11、e10、e13、e12、e15以及e14,并且存在寄存器309中。在八运算周期的每个运算周期由MUX22411选择在八操作周期的每个操作周期中从寄存器229到寄存器2212输出的八段数据e8、e9、e10、e11、e12、e13、e14以及e15,从MUX22411按顺序输出数据e10、e12、e8、e14、e9、e15、e11以及e13,并且存在寄存器3010中。在八运算周期的每个运算周期中由MUX22412选择在八运算周期的每个运算周期中从寄存器229到寄存器2212输出的数据e8、e9、e10、e11、e12、e13、e14以及e15,从MUX22412顺序地输出数据e11、e14、e10、e8、e15、e13、e9和e12,并且存在寄存器3011中。在八运算周期的每个运算周期中由MUX22413选择在八运算周期的每个运算周期中从寄存器229到寄存器2212输出的数据e8、e9、e10、e11、e12、e13、e14以及e15,并且从MUX22413按顺序输出数据e12、e9、e13、e15、e8、e10、e14和e11,并且存在寄存器3012中。在八运算周期的每个运算周期中由MUX22414选择在八运算周期的每个运算周期中从寄存器229到寄存器2212输出的数据e8、e9、e10、e11、e12、e13、e14以及e15,并且从MUX22414按顺序输出数据e13、e11、e15、e9、e14、e8、e12和e10,并且存在寄存器3013中。在八运算周期的每个运算周期中由MUX22415选择在八运算周期的每个运算周期中从寄存器229到寄存器2212输出的数据e8、e9、e10、e11、e12、e13、e14以及e15,并且从MUX22415按顺序输出数据e14、e15、e12、e13、e19、e11、e8和e9,并且存在寄存器3014中。在八运算周期的每个运算周期中由MUX22416选择在八运算周期的每个运算周期中从寄存器229到寄存器2212输出的数据e1、e3、e5、e7、e9、e11、e13以及e15,并且从MUX22416按顺序输出数据e15、e10、e9、e11、e12、e14、e13和e8,并且存在寄存器3015中。
在八运算周期的每个运算周期从寄存器301到寄存器307输出的每一片数据在八运算周期的每个运算周期中被每一相应的固定系数乘法电路2321到2327中的每一相应的固定系数P7、P11、P13、P3、P9,P5和P1相乘,并且被存入每一相应的寄存器2341到寄存器2347。即,在八运算周期的每个运算周期中按顺序存入寄存器2341的每一片数据经历在加法电路2381中的加运算,而结果数据被存入寄存器401。
在八运算周期的第一运算周期从加法电路2381输出数据(e0+e1)P7,在八运算周期的第二运算周期输出数据(e0+e1+e3+e2)P7,在八运算周期的第三运算周期输出数据(e0+e1+e3+e2+e4+e5)P7,在八运算周期的第四运算周期输出数据(e0+e1+e3+e2+e4+e5+e7+e6)P7,在八运算周期的第五运算周期输出数据(e0-e1)P7,在八运算周期的第六运算周期输出数据(e0-e1+e3-e2)P7,在八运算周期的第七运算周期输出数据(e0-e1+e3-e2+e4-e5)P7,在八运算周期的第八运算周期输出数据(e0-e1+e3-e2+e4-e5+e7-e6)P7。在八运算周期的每个运算周期从加法电路2381输出的数据中的第四运算周期和第八运算周期中输出的数据表示在公式(65)中表达的运算值F0和运算值F8,它被显示为在寄存器401的输出线路的下部F0和F8,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器401的输出线路的右下部的星号标记“*”所示。
按顺序存入寄存器2342和寄存器2343的每片数据在八运算周期的每个运算周期中在加法电路2382中中经历加法运算,而结果数据被存入寄存器402。
在八运算周期的第一运算周期从加法电路2382输出数据e0P11+e1P3,在八运算周期的第二运算周期输出数据e0P11+e1P3-e3P11-e2P3,在八运算周期的第三运算周期输出数据e0P11+e1P3-e3P11-e2P3-e4P11-e5P3,在八运算周期的第四运算周期输出数据e0P11-e1P3-e3P11-e2P3-e4P11-e5P3+e7P11+e6P3,在八运算周期的第五运算周期输出数据-e1P11+e0P3,在八运算周期的第六运算周期输出数据-e1P11+e0P3+e2P11-e3P3,在八运算周期的第七运算周期输出数据-e1P11+e0P3+e2P11-e3P3-e5P11-e4P3,在八运算周期的第八运算周期输出数据-e1P11+e0P3+e2P11-e3P3-e5P11-e4P3-e6P11+e7P3。
在八运算周期的每个运算周期中从加法电路2382输出的数据中,在第四运算周期和第八运算周期输出的数据表示在公式(65)中表达的运算值F2和运算值F6,它们被显示为在寄存器402的输出线路的右下部的F2和F6,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器402的输出线路的右下部的星号标记″*″所示。
按顺序存入寄存器2344到寄存器2347的每片数据在八运算周期的每个运算周期中在加法电路2383中经历加法运算,而结果数据被存入寄存器403。
在八运算周期的第一运算周期从加法电路2383输出数据e0P13+e1P9+e2P5+e3P1,在八运算周期的第二运算周期输出数据e0P13+e1P9+e2P5+e3P1-e7P13-e6P9-e5PX-e4P1,在八运算周期的第三运算周期输出数据e5P13-e0P9+e3P5+e6P1,在八运算周期的第四运算周期输出数据e5P13+e0P9+e3P5+e6P1-e2P13-e6P9-e4P5-e1P1,在八运算周期的第五运算周期输出数据e6P13+e2P9+e0P5+e3P1,在八运算周期的第六运算周期输出数据e6P13+e2P9+e0P5-e3P1-e1P13-e4P9-e7P5-e5P1,在八运算周期的第七运算周期输出数据e4P13+e2P9-e1P5+e0P1,在八运算周期的第八运算周期输出数据e4P13+e2P9-e1P5+e0P1-e3P13-e5P9+e6P5-e7P1。
在八运算周期的每个运算周期中从加法电路2383输出的数据中,在第二运算周期、第四运算周期、第六运算周期和第八运算周期输出的数据表示在公式(65)中表达的运算值F10、运算值F14、运算值值F4和运算值F12,它们被显示为在寄存器402的输出线路的右下部的F10、F14、F4和F12,在第一运算周期,第三运算周期,第五运算周期,第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器403的输出线路的右下部的星号标记″*″所示。
按顺序存入寄存器2348到寄存器23415的每片数据在八运算周期的每个运算周期中在加法电路2384中经历加法运算,而结果数据被存入寄存器404。
在八运算周期的第一运算周期从加法电路2384输出数据e8P14+e9P12+e10P10+e11P8+e12P6+e13P4+e14P2+e15P0,在八运算周期的第二运算周期输出数据-e13P14+e8P12-e12P10+e9P6-e11P4-e15P2+e10P0,在八运算周期的第三运算周期输出数据e14P14-e11P12+e8P10-e10P8+e13P6+e15P4-e12P2+e9P0,在八运算周期的第四运算周期输出数据e12P14-e10P12-e14P10+e8P8-e15P6-e9P4+e13P2+e11P0,在八运算周期的第五运算周期输出数据e11P14-e13P12-e9P10+e15P8-e8P6+e14P4-e10P2-e12P0,在八运算周期的第六运算周期输出数据-e9P14-e12P12-e15P10+e13P8+e10P6+e8P4+e11P2+e14P0,在八运算周期的第七运算周期输出数据e10P14+e15P12-e11P10-e9P8-e14P6+e12P4+e8P2+e13P0,在八运算周期的第八运算周期输出数据-e15P14+e14P12-e13P10-e12P8-e11P6+e10P4-e9P2+e8P0。在八运算周期的每一运算周期从加法电路2384输出的数据分别地表示公式(65)中的运算值F1、F3、F5、F7、F9、F11、F13和F15,它们被显示为图14中的寄存器404的输出线路右下部的F1、F3、F5、F7、F9、F11、F13和F15。
通过完成上面的算术运算,在构成16×16数据块的一个行中包含的八段数据上的初次16-16DCT结束。在构成16×16数据块的下一个行后续的每一行执行如在上面所描述的相同的初次16-16DCT,其后对构成16×16数据块的所有的八行上的16-16DCT以类似的方式结束。在对所有的八行完成初次16-16DCT之后,在构成16×16数据块的八数据列的每个列上执行二次16-16DCT。通过完成二次16-16DCT获得的变换系数数据被用于输入的16×16象素数据的压缩。因此,通过使用变换系数数据能够进行被压缩的象素数据的传送,该变换系数数据是通过在一图像内的16×16象素数据执行初次16-16DCT和二次16-16DCT获得的,该图像是将用于16×16象素数据块压缩传送的。
接下来,将描述2-8-16DCT的运算。从MUX212按顺序传送的构成16×16数据块的每个行的每个十六段数据F0到数据F15(用于DCT的输入数据)是存入在第一寄存器组213中包含的每一寄存器141到寄存器1415。
当每一十六段象素数据f0到象素数据f15被存入每一寄存器141到寄存器1416时,从加法电路181输出数据f0+f1=g0,从加法电路182输出数据f2+f3=g1,从加法电路183输出数据f4+f5=g2,从加法电路184输出数据f6+f7=g3,从加法电路185输出数据f8+f9=g4,从加法电路186输出数据f10+f11=g5,从加法电路187输出数据f12+f13=g6,从加法电路188输出数据f14+f15=g7。从减法电路201输出数据f0-f1,从减法电路202输出数据f2-f3=g9,从减法电路203输出数据f4-f5=g10,从减法电路204输出数据f6-f7=g11,从减法电路205输出数据f8-f9=g12,从减法电路206输出数据f10-f11=g13从减法电路207输出数据f12-f13=g14,从减法电路208输出数据f14-f15=g15。从减法电路201输出数据f0-f1,从减法电路202输出数据f2-f3=g9,从减法电路203输出数据f4-f5=g10,从减法电路204输出数据f6-f7=g11,从减法电路205输出数据f8-f9=g12,从减法电路206输出数据f10-f11=g13从减法电路207输出数据f12-f13=g14,从减法电路208输出数据f14-f15=g15。
从加法电路181输出的数据g0被存入寄存器221,从加法电路182输出的数据g1被存入寄存器222,从加法电路183输出的数据g2被存入寄存器223,从加法电路184输出的数据g3被存入寄存器224,从加法电路185输出的数据g4被存入寄存器225,从加法电路186输出的数据g5被存入寄存器226,从加法电路187输出的数据g6被存入寄存器227,从加法电路188输出的数据g7被存入寄存器228。
从减法电路201输出的数据g8被存入寄存器229,从减法电路202输出的数据g9被存入寄存器2210,从减法电路203输出的数据g10被存入寄存器2211,从减法电路204输出的数据g11被存入寄存器2212,从减法电路205输出的数据g12被存入寄存器2213,从减法电路206输出的数据g13被存入寄存器2214,从减法电路207输出的数据g14被存入寄存器2211,从减法电路208输出的数据g15被存入寄存器2216。
当从加法电路181到加法电路188输出的数据g0到数据g7通过寄存器221到寄存器228被输入到MUX2241到MUX2248时,从MUX2241到MUX2248输出下列数据。当在八运算周期的每个运算周期从MUX2241按顺序输出的八段数据g0、g3、g4、g7、g0、g3、g4和g7被供应给加/减法电路2261,而八段数据g1、g2、g5、g6、g1、g2、g5和g6被供应给加/减法电路2261时,按顺序输出数据g0+g1、数据g3+g2、数据g5+g4、数据g7+g6、数据g1-g0、数据g3-g2、数据g5-g4和数据g7-g6,并且存入寄存器301。
在八运算周期的每个运算周期中由MUX2243选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g3、g4、g7、g0、g3、g4和g7,并且从MUX2243按顺序输出每个数据g0、g7、g3、g4、g1、g2、g5和g6,并且存入寄存器302。在八运算周期的每个运算周期中由MUX2244选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g1、g2、g3、g4、g5、g6和g7,并且从MUX2244按顺序输出每个数据g1、g2、g5、g6、g0、g3、g4和g7,并且存入寄存器303。在八运算周期的每个运算周期中由MUX2245选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g1、g2、g3、g4、g5、g6和g7,并且从MUX2245按顺序输出每个数据g2、g5、g1、g6、g0、g7、g3和g4,并且存入寄存器304。在八运算周期的每个运算周期中由MUX2246选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g1、g2、g3、g5、g5、g6和g7,并且从MUX2246按顺序输出每个数据g0、g7、g3、g4、g1、g6、g2和g5,并且存入寄存器305。在八运算周期的每个运算周期中由MUX2247选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g1、g2、g3、g6、g6、g6和g7,并且从MUX2247按顺序输出每个数据g3、g4、g0、g7、g2、g5、g1和g6,并且存入寄存器306。在八运算周期的每个运算周期中由MUX2248选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据g0、g1、g2、g3、g4、g5、g6和g7,并且从MUX2248按顺序输出每个数据g1、g6、g2、g5、g3、g4、g0和g7,并且存入寄存器307。在八运算周期的每个运算周期中由MUX2249选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g8、g10、g11、g12、g13、g14和g15,并且从MUX2249按顺序输出每个数据g8、g11、g12、g15、g8、g11、g12和g15,并且存入寄存器308。在八运算周期的每个运算周期中由MUX22410选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22410按顺序输出每个数据g8、g15、g11、g12、g9、g10、g13和g14,并且存入寄存器309。在八运算周期的每个运算周期中由MUX22411选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22411按顺序输出每个数据g9、g10、g13、g14、g8、g11、g12和g15,并且存入寄存器3010。
在八运算周期的每个运算周期中由MUX22412选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22412按顺序输出每个数据g8、g15、g10、g13、g9、g14、g11和g12,并且存入寄存器3011。在八运算周期的每个运算周期中由MUX22413选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22413按顺序输出每个数据g9、g14、g8、g15、g11、g12、g10和g13,并且存入寄存器3012。在八运算周期的每个运算周期中由MUX22414选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22414按顺序输出每个数据g10、g13、g11、g12、g8、g15、g9和g14,并且存入寄存器3013。
在八运算周期的每个运算周期中MUX22415未选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且数据“0”被选择八次并按顺序输出然后存入寄存器3014。在八运算周期的每个运算周期中由MUX22416选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据g8、g9、g10、g11、g12、g13、g14和g15,并且从MUX22416按顺序输出每个数据g11、g12、g9、g14、g10、g13、g8和g15,并且存入寄存器3015。
在八运算周期的每个运算周期从寄存器301到寄存器307输出的每一片数据在八运算周期的每个运算周期中被每一相应的固定系数乘法电路2321到2327中的每一相应的固定系数P7、P11、P3、P13、P9,P5和P1相乘,并且被存入每一相应的寄存器2341到寄存器2347。按顺序存入寄存器2341的每一数据在八运算周期的每个运算周期中在加法电路2381中经历加法运算,而结果数据被存入寄存器401。
在八运算周期的第一运算周期从加法电路2381输出数据(g0+g1)P7,在八运算周期的第二运算周期输出数据(g0+g1+g3+g2)P7,在八运算周期的第三运算周期输出数据(g0+g1+g3+g2+g4+g5)P7,在八运算周期的第四运算周期输出数据(g0+g1+g3+g2+g4+g5+g7+g6)P7,在八运算周期的第五运算周期输出数据(g0-g1)P7,在八运算周期的第六运算周期输出数据(g0-g1+g3-g2)P7,在八运算周期的第七运算周期输出数据(g0-g1+g3-g2+g4-g5)P7,在八运算周期的第八运算周期输出数据(g0-g1+g3-g2+g4-g5+g7-g6)P7。在八运算周期的每个运算周期中从加法电路2381输出的数据中,在第四运算周期和第八运算周期输出的数据表示在公式(66)中表达的运算值F0和运算值F4,它们被显示为在寄存器401的输出线路的左下部的F0和F4,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器401的输出线路的左下部的星号标记“*”所示。
按顺序存入寄存器2342和寄存器2343的每个数据在八运算周期的每个运算周期中在加法电路2382中经历加法运算,而结果数据被存入寄存器402。
在八运算周期的第一运算周期从加法电路2382输出数据g0P11+g1P3,在八运算周期的第二运算周期输出数据g0P11+g1P3+g7P11-g2P3,在八运算周期的第三运算周期输出数据g0P11+g1P3+g7P11-g2P3-g3P11-g5P3,在八运算周期的第四运算周期输出数据g0P11+g1P3+g7P11-g2P3-g3P11-g5P3-g4P11+g6P3,在八运算周期的第五运算周期输出数据-g1P11+g1P11++g1P11+g0P3,在八运算周期的第六运算周期输出数据-g1P11+g0P3+g2P11-g3P3,在八运算周期的第七运算周期输出数据-g1P11+g0P3+g2P11-g3P3+g5P11-g4P3,在八运算周期的第八运算周期输出数据-g1P11+g0P3+g2P11-g3P3+g5P11-g4P3-g6P11+g7P3。在八运算周期的每个运算周期中从加法电路2382输出的数据中,在第四运算周期和第八运算周期输出的数据表示在公式(66)中表达的运算值F0和运算值F4,它们被显示为在寄存器402的输出线路的左下部的F2和F6,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器402的输出线路的左下部的星号标记“*”所示。
按顺序存入寄存器2344到寄存器2347的每个数据在八运算周期的每个运算周期中在加法电路2383中经历加法运算,而结果数据被存入寄存器403。
在八运算周期的第一运算周期从加法电路2383输出数据-g0P13+g0P9-g3P5-g1P1,在八运算周期的第二操作周期输出数据-g2P13+g0P9-g3P5-g1P1+g5P13-g7P9+g4P5+g6P1,在八运算周期的第三运算周期输出数据-g1P13+g3P9+g0P5+g2P1,在八运算周期的第四运算周期输出数据-g1P13+g3P9+g0P5+g2P1+g6P13-g4P9-g7P5-g5P1,八运算周期的第五运算周期输出数据g0P13+g1P9+g2P5+g3P1,在八运算周期的第六运算周期输出数据g0P13+g1P9+g2P5+g3P1-g7P13-g6P9-g5P5-g4P1,在八运算周期的第七运算周期输出数据-g3P13+g2P9-g1P5+g0P1,在第八运算周期输出数据+g0P9-g1P5+g0P1+g4P13-g5P9+g6P5-g7P1。在八运算周期的每个运算周期中从加法电路2383输出的数据中,在第二运算周期、第四运算周期、第六运算周期和第八运算周期输出的数据表示在公式(66)中表达的运算值F3、运算值F5、运算值F1和运算值F7,它们被显示为在寄存器403的输出线路的左下部的F3、F5、F1和F7,在第一运算周期,第三运算周期,第五运算周期,第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器403的输出线路的左下部的星号标记“*”所示。
从MUX2249和22415输出的每个数据,在已经在加/减法电路2261中经历加法运算和减法操作并且已经通过MUX281被存在寄存器309以及由P14/P7固定乘法电路2328相乘之后,在八运算周期的每个运算周期在加法电路2385中经历加法运算并且被存在寄存器405中。
在八运算周期的第一运算周期从加法电路2385输出数据(g8+g9),在八运算周期的第二运算周期输出数据(g8+g9+g11+g10)P7,在八运算周期的第三运算周期输出数据(g8+g9+g11+g10+g12+g13)P7,在八运算周期的第四运算周期输出数据(g8+g9+g11+g10+g12+g13+g15+g14)P7,在八运算周期的第五运算周期输出数据(g8-g9),在八运算周期的第六运算周期输出数据(g8-g9+g11-g10)P7,在第七运算周期输出数据(g8-g9+g11-g10+g12-g13)P7,以及在第八运算周期输出数据(g8-g9+g11-g10+g12-g13+g15-g14)P7。在八运算周期的每个运算周期中从加法电路2385输出的数据中,在第四运算周期和第八运算周期输出的数据表示在公式(66)中表达的运算值F8和运算值F12,它们被显示为在寄存器405的输出线路的左下部的F8和F12,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器405的输出线路的左下部的星号标记“*”所示。
按顺序存入寄存器2349到寄存器23410的每个数据在八运算周期的每个运算周期中在加法电路2386中经历加法运算,而被存入寄存器406。在八运算周期的第一运算周期从加法电路2386输出数据g8P11+g9P3,在八运算周期的第二运算周期输出数据g8P11+g9P3+g15P11-g10P3,在八运算周期的第三运算周期输出数据g8P11+g9P3+g15P11-g10P3-g11P11-g13P3,在八运算周期的第四运算周期输出数据g8P11+g9P3+g15P11-g10P3-g11P11-g13P3-g12P11+g14P3,在八运算周期的第五运算周期输出数据-g8P11+g9P3,在八运算周期的第六运算周期输出数据-g9P11+g8P3+g10P11+g11P3,在八运算周期的第七运算周期输出数据-g9P11+g8P3+g10P11+g11P3+g13P11+g12P3,在八运算周期的第八运算周期输出数据-g9P11+g8P3+g10P11+g11P3+g13P11+g12P3-g14P11+g15P3。在八运算周期的每个运算周期中从加法电路2386输出的数据中,在第四运算周期和第八运算周期输出的数据表示在公式(66)中表达的运算值F10和运算值F14,它们被显示为在寄存器403的输出线路的左下部的F10和F14,在第一运算周期到第三运算周期和第五运算周期到第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器403的输出线路的左下部的星号标记“*”所示。从MUX22412、MUX22413、MUX22414以及MUX22416输出的每个数据被存入寄存器3011、寄存器3012、寄存器3013和寄存器3015,然后被在每一相应的P8/P13固定系数乘法电路23211、P6/P9固定系数乘法电路23212、P4/P5固定系数乘法电路23213和P0/P1固定系数乘法电路23215中的每个固定系数P13、固定系数P9,固定系数P5和固定系数P1相乘。每一结果数据被存在寄存器23411到寄存器23415中,在八运算周期的每个运算周期经历加法运算然后被存在寄存器404中。
在八运算周期的第一运算周期从加法电路2384输出数据数据g8P13+g9P9+g10P5+g11P1,在八运算周期的第二运算周期输出数据g8P13+g9P9+g10P5+g11P1-g15P13-g14P9-g13P5-g12P1,在八运算周期的第三运算周期输出数据-g10P13+g8P9-g11P5-g9P1,在八运算周期的第四运算周期输出数据-g10P13+g0P9-g11P5-g9P1+g13P13-g15P9+g10P5+g1P1,在八运算周期的第五运算周期输出数据-g9P13+g11P9+g8P3+g10P1,在八运算周期的第六运算周期输出数据-g9P13+g11P9+g8P5+g10P1+g14P13-g12P9-g15P5-g13P1,在八运算周期的第七运算周期输出数据-g11P13+g10P9-g9P5+g8P1以及在第八运算周期输出数据-g11P13+g10P9-g9P5+g8P1+g12P12-g13P9+g14P5-g15P1。在八运算周期的每个运算周期中从加法电路2384输出的数据中,在第二运算周期、第四运算周期、第六运算周期和第八运算周期输出的数据表示在公式(66)中表达的F11、F13、F15,它们被显示为在寄存器404的输出线路的左下部的F11、F13、F15,在第一运算周期,第三运算周期,第五运算周期,第七运算周期输出的数据表示未定义值,它们是由图14中的寄存器404的输出线路的左下部的星号标记“*”所示。
通过完成上面的算术运算,在构成16×16数据块的一个行中包含的十六段数据上的初次2-4-16DCT结束。在构成16×16数据块的下一个行后续的每一行执行如在上面所描述的相同的初次2-8-16DCT,其后对构成8×8数据块的所有的八行上的2-4-16DCT以类似的方式结束。在完成对所有的十六行的初次2-8-16DCT之后,对构成16×16数据块的十六数据列的每个列执行二次2-8-16DCT。通过完成二次2-8-16DCT获得的变换系数数据被用于输入的16×16象素数据的压缩。因此,通过使用变换系数数据能够进行被压缩的象素数据的传送,该变换系数数据是通过在一图像内的16×16象素数据执行初次2-8-16DCT和二次2-8-16DCT获得的,该图像是将用于16×16象素数据块压缩传送的。
因此,根据第三实施例,由于16-16IDCT/2-8-16IDCT器件被配置为,在16-16DCT电路中使用的部分固定系数被使用作为2-8-16DCT中所需的固定系数乘法电路,
所以,甚至在用于16-16DCT器件和2-8-16DCT器件的整个装置尺寸小型化的情况下,在16-16DCT器件中通过管道处理型算术运算获得的高速计算特性可以被完全地保持。第四实施例
图15是局部地示出根据发明第四实施例的16-16/2-8-16IDCT器件的电结构的概要的方块图。图16是局部地示出根据本发明第四实施例的16-16/2-8-16IDCT器件的电结构的概要的方块图。通过在图16中的线Ⅱ-Ⅱ上叠加图15中的线Ⅱ-Ⅱ,可以示出16-16DCT/2-8-16DCT器件的整个结构。第四实施例的结构与第三实施例的结构有很大不同,即,为了从在第三实施例中通过对输入数据执行16-16/2-8-16DCT按照16-16/2-8-16DCT被压缩的图像数据的原始图像,对该被压缩图像数据执行16-16/2-8-16IDCT。本实施例的16-16IDCT/2-8-16IDCT,在16-16IDCT情况下,根据通过解压缩和重新整理公式(18)获得的一判定公式(69)执行算术运算,在2-8-16DCT情况下,根据通过解压缩和重新整理公式(22)获得的一判定公式(70)执行算术运算。在判定公式(69)中的值h
0到值h
15是由公式(71)给出的,在判定公式(70)中的值g
0到值g
15是由公式(72)给出的。
此外,在公式(69)和公式(70)中的P0到P15是与在公式(65)和公式(66)中的P0到P15相同的。
MUX312,在16-16IDCT情况下,选择的输出在每个行中包含的被执行16-16IDCT的十六段数据用于初次IDCT的16×16变换系数数据(此后称为“数据”),或者输出构成通过初次IDCT获得的16×16数据的每个行中包含的十六段数据F0到数据F15到相应的寄存器140到寄存器1415,以及,在2-8-16IDCT情况下,存储十六段数据F0到数据F15中的数据F0进入在第一寄存器组313中包含的寄存器141,数据F8存入寄存器142,数据F1存入寄存器143,数据F9存入寄存器144,数据F2存入寄存器145,数据F10存入寄存器146,数据F3存入寄存器147,数据F11存入寄存器148,数据F5存入寄存器149,数据F13存入寄存器1410,数据F6存入寄存器1411,数据F14存入寄存器1412,数据F7存入寄存器1413,数据F15存入寄存器1414,数据F4存入寄存器1415以及数据F12存入寄存器1416。
每一MUX161到168、1692、16102、16112、16122、16132、16142、16152以及16162,在16-16IDCT情况下,选择“0”数据,而在2-8-16IDCT情况下,选择每一寄存器142、144、146、148、1410,1412,1414以及1416。每一MUX1691、16101,、16111、16121、16131、16141、16151和16161,在16-16IDCT情况下,选择每一寄存器143、147、149、1413、1414、148、1410和1414,而在2-8-16IDCT情况下,选择每一寄存器141、143、145、147、149、1411,1413和1415。
构成第一加法电路组317的加法电路181将来自寄存器141的输出数据与MUX161输出的数据相加,加法电路182将寄存器143输出的添加与MUX162输出的数据相加,加法电路183将寄存器145输出的数据与MUX163输出的数据相加,加法电路184将寄存器输出的数据与MUX164输出的数据相加,加法电路185将来自寄存器149的输出数据与MUX165输出的数据相加,加法电路186将寄存器1411输出的添加与MUX166输出的数据相加,加法电路187将寄存器1413输出的数据与MUX167输出的数据相加,加法电路188将寄存器输出的数据与MUX168输出的数据相加。
构成减法电路组319的减法电路201对MUX1691输出的数据和从MUX1692输出的数据执行减法运算,减法电路202对MUX16101输出的数据和MUX16102输出的数据执行减法运算,减法电路203对MUX16111输出的数据和MUX16112输出的数据执行减法运算,减法电路204对MUX16121输出的数据和MUX16122输出的数据执行减法运算,减法电路205对MUX16131输出的数据和MUX16132输出的数据执行减法运算,减法电路206对MUX16141输出的数据和从MUX16142输出的数据执行减法运算,减法电路207对MUX MUX16151输出的数据和MUX16152输出的数据执行减法运算,减法电路208对MUX16161输出的数据和MUX16162输出的数据执行减法运算。
每一加法电路181到加法电路189输出的数据是存入包含在第二寄存器组321中的每一相应的寄存器221到寄存器228,每一减法电路201到减法电路208输出的数据被存入每一相应的寄存器229到寄存器2216。
构成第二MUX组的MUX3241连接到每一寄存器221到寄存器22X的一输出,并且在16-16IDCT和2-8-16IDCT两种情况下,选择寄存器221八次并按顺序输出八段数据。MUX3242,在16-16IDCT情况下,选择八次寄存器225并且按顺序输出八段数据,而在2-8-16IDCT情况下,选择寄存器228并按顺序输出八段数据。
MUX3243,在16-16IDCT情况下,按照寄存器223、227、227、223、223、227、227、和223的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器223、226、226、223、223、226、226和223的顺序选择寄存器并且按顺序输出八段数据。
MUX3244,在16-16IDCT情况下,按照寄存器227、223、223、227、227、223、223和227的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器226、223、223、226、226、223、223和223的顺序选择寄存器并且按顺序输出八段数据。
MUX3245,在16-16IDCT情况下,按照寄存器222、226、224、228、228、224、226、和222的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器222、225、224、227、227、224、225和222的顺序选择寄存器并且按顺序输出八段数据。
MUX3246,在16-16IDCT情况下,按照寄存器224、222、228、226、226、228、222和224的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16MUX324IDCT情况下,按照寄存器224、222、227、225、225、227、222和224的顺序选择寄存器并且按顺序输出八段数据。
MUX3247,在16-16IDCT情况下,按照寄存器226、228、222、224、224、222、228和226的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16MUX324 IDCT情况下,按照寄存器225、227、222、224、224、222、227和225的顺序选择寄存器并且按顺序输出八段数据。
MUX3248,在16-16IDCT情况下,按照寄存器228、224、226、222、222、226、224和228的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16 MUX324IDCT情况下,按照寄存器227、224、225、222、222、225、224和227的顺序选择寄存器并且按顺序输出八段数据。
MUX3249,在16-16IDCT情况下,按照寄存器229、2214、2215、2213、2212、2210、2211和2216的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,反复地选择八次寄存器2216并且按顺序输出八段数据。
MUX32410,在16-16IDCT情况下,按照寄存器2210、229、2212、2211、2214、2213、2216和2215的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2211、2214、2214、2211、2211、2214、2214和2211的顺序选择寄存器并且按顺序输出八段数据。
MUX32411,在16-16IDCT情况下,按照寄存器2211、2213、229、2215、2210、2216、2212和2214的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2214、2211、2211、2214、2214、2211、2211和2214的顺序选择寄存器并且按顺序输出八段数据。
MUX32412,在16-16IDCT情况下,按照寄存器2212、2215、2211、229、2216、2214、2210和2213的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2210、2213、2212、2215、2215、2212、2213和2210的顺序选择寄存器并且按顺序输出八段数据。
MUX32413,在16-16IDCT情况下,按照寄存器2213、2210、2214、2216、229、2211、2215和2212的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2212、2210、2215、2213、2213、2215、2210和2212的顺序选择寄存器并且按顺序输出八段数据。
MUX32414,在16-16IDCT情况下,按照寄存器2214、2212、2216、2210、2215、229、2213和2211的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2213、2215、2210、2212、2212、2210、2215和2213的顺序选择寄存器并且按顺序输出八段数据。
MUX32415,在16-16IDCT情况下,按照寄存器2215、2216、2213、2214、2211、2212、229和2210的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,按照寄存器2215、2212、2213、2210、2215、2213、2212和2215的顺序选择寄存器并且按顺序输出八段数据。
MUX32416,在16-16IDCT情况下,按照寄存器2216、2211、2210、2212、2213、2215、2214和229的顺序选择寄存器,并且按顺序输出八段数据,而在2-8-16IDCT情况下,反复地选择八次寄存器2216并且按顺序输出八段数据。
构成第一加/减法电路组325的加/减法电路3261对于按照第一排序、第四排序、第五排序和第八排序从MUX3241按顺序输出的八段数据以及按照第一排序、第四排序、第五排序和第八排序从MUX3242按顺序输出的八段数据执行加法运算,以及对于按照第二排序、第三排序、第六排序以及第七排序从MUX3241按顺序输出的八段数据和按照第二排序、第三排序、第六排序和第七排序从MUX3242按顺序输出的八段数据执行减法运算。在由加/减法电路3261执行的减法运算中,从MUX3241输出的数据中减去MUX3242输出的数据。
构成第一加/减法电路组325的加/减法电路3262对于按照第一排序、第四排序、第五排序和第八排序从MUX3249按顺序输出的八段数据以及按照第一排序、第四排序、第五排序和第八排序从MUX32416按顺序输出的八段数据执行加法运算,以及对于按照第二排序、第三排序、第六排序以及第七排序从MUX3241按顺序输出的八段数据和按照第二排序、第三排序、第六排序和第七排序从MUX3242按顺序输出的八段数据执行减法运算。在由加/减法电路3262执行的减法运算中,从MUX3249输出的数据中减去MUX32496输出的数据。
构成第二MUX组327的MUX281,在16-16DCT情况下,选择从MUX3249顺序输出的八段数据,在2-8-16DCT情况下,选择从加/减法电路3262按顺序输出的数据。MUX282,在16-16IDCT情况下,按顺序选择从MUX32415输出的八段数据,以及在2-8-16IDCT情况下,选择八次“0”数据而输出它们。MUX283,在16-16IDCT情况下,按顺序选择从MUX32416输出的八段数据,以及在2-8-16IDCT情况下,按顺序选择加/减法电路32415输出的八段的并且按顺序输出它们。
构成第二寄存器组329的寄存器301按顺序存储从加/减法电路3261按顺序输出的八段运算结果。寄存器302存储按顺序选择并且从MUX3243输出的八段数据。寄存器303存储按顺序选择并且从MUX3244输出的八段数据。寄存器304存储按顺序选择并且从MUX3245输出的八段数据。寄存器305存储按顺序选择并且从MUX3246输出的八段数据。寄存器306存储按顺序选择并且从MUX3247输出的八段数据。寄存器307存储按顺序选择并且从MUX3248输出的八段数据。
寄存器308存储按顺序选择并且从MUX281输出的八段数据。寄存器309存储按顺序选择并且从MUX32410输出的八段数据。寄存器3010存储按顺序选择并且从MUX32411输出的八段数据。寄存器3011存储按顺序选择并且从MUX32412输出的八段数据。寄存器3012存储按顺序选择并且从MUX32413输出的八段数据。寄存器3013存储按顺序选择并且从MUX32413输出的八段数据。寄存器3014存储按顺序选择并且从MUX282输出的八段数据。寄存器3015存储按顺序选择并且从MUX283输出的八段数据。
P7系数乘法电路2321用固定系数P7乘从寄存器301按顺序输出的每个八段数据。P11系数乘法电路2322用固定系数P11乘从寄存器302按顺序输出的每个八段数据。P3系数乘法电路2323用固定系数P3乘从寄存器303按顺序输出的每个八段数据。P13系数乘法电路2324用固定系数P13乘从寄存器304按顺序输出的每个八段数据。P9系数乘法电路2325用固定系数P9乘从寄存器305按顺序输出的每个八段数据。P5系数乘法电路2326用固定系数P5乘从寄存器306按顺序输出的每个八段数据。P1系数乘法电路2327用固定系数P1乘从寄存器307按顺序输出的每个八段数据。
P14/P7系数乘法电路2326,在16-16DCT情况下,用固定系数P14乘从寄存器308按顺序输出的每一个八段数据,以及在2-4-16DCT情况下,用固定系数P7乘从寄存器308按顺序输出的每一个八段数据。P12/P11系数乘法电路2329,在16-16DCT情况下,用固定系数P12乘从寄存器309按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P11乘从寄存器309按顺序输出的每一个八段数据。P10/P3系数乘法电路23210,在16-16DCT情况下,用固定系数P10乘从寄存器3010按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P3乘从寄存器3010按顺序输出的每一个八段数据。P8/P13系数乘法电路23211,在16-16DCT情况下,用固定系数P8乘从寄存器3011按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P13乘从寄存器3011按顺序输出的每一个八段数据。
P6/P9系数乘法电路23212,在16-16DCT情况下,用固定系数P6乘从寄存器3012按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P9乘从寄存器3012按顺序输出的每一个八段数据。P4/P5系数乘法电路23213,在16-16DCT情况下,用固定系数P4乘从寄存器3013按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P5乘从寄存器3013按顺序输出的每一个八段数据。
P2系数乘法电路23214,在16-16DCT情况下,用一固定系数P2乘从寄存器3014按顺序输出的每个八段的数据。P0/P1系数乘法电路23215,在16-16DCT情况下,用固定系数P0乘从寄存器3015按顺序输出的每一个八段数据,以及在2-8-16DCT情况下,用固定系数P1乘从寄存器3015按顺序输出的每一个八段数据。
构成第四寄存器组333的寄存器3341,在16-16IDCT和2-8-16IDCT两种情况下,按顺序存储从P7系数乘法电路2321按顺序输出的每个八段的数据,并且输出将按照第一排序到第八排序输出的数据为正值。寄存器3342,在16-16IDCT,2-8-16IDCT两者中,按顺序存储从P11系数乘法电路2322按顺序输出的每个八段段数据,输出将按照第一排序、第三排序、第六排序和第八排序输出的数据作为正值,输出将按照第二排序,第四排序、第五排序和第七排序输出的数据作为负值。寄存器3343,在16-16IDCT和2-8-16IDCT两者中,按顺序,存储从P3系数乘法电路2323按顺序输出的八段段数据的每个,并且输出将按照第一排序、第二排序和第七排序输出的数据作为正值,将按照第三排序到第六排序输出的数据作为负值。
寄存器3344存储从P13系数乘法电路2324按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第四排序到第七排序输出的数据作为正值输出,而要按照第二排序、第三排序和第八排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第五排序到第七排序输出的数据作为正值输出,而要按照第二排序到第四排序和第八排序输出的数据作为负值。寄存器3345存储从P9系数乘法电路2325按顺序输出的每个八段数据,在16-16IDCT情况下,将按照第一排序到第四排序和第七排序输出的数据作为正值输出,而将按照第五排序、第六排序和第八排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序到第四排序输出的数据作为正值输出,而要按照第五排序到第八排序输出的数据作为负值输出。寄存器3346存储从P5系数乘法电路2326按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第五排序、第七排序和第八排序输出的数据作为正值输出,而要按照第二排序到第四排序和第六排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值。寄存器3347存储从P1系数乘法电路2327按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第三排序、第四排序、第七排序和第八排序输出的数据作为正值输出,而要按照第二排序,第五排序和第六排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第三排序、第四排序和第七排序输出的数据作为正值输出,而要按照第二排序、第五排序、第六排序和第八排序输出的数据作为负值。寄存器3348存储从P14/P7系数乘法电路2328按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序,第六排序和第八排序输出的数据作为负值输出,以及在2-8-16IDCT情况下,要被按照第一排序到第八排序输出的数据作为正值输出。寄存器3349存储从P12/P11系数乘法电路2329按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第二排序、第七排序和第八排序输出的数据作为正值输出,而要按照第二排序到第六排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第三排序、第六排序和第八排序输出的数据作为正值输出,而要按照第二排序、第四排序、第五排序和第七排序输出的数据作为负值。寄存器33410存储从P10/P3系数乘法电路23210按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序和第三排序输出的数据作为正值输出,而要按照第二排序、第四排序到第八排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第二排序、第七排序和第八排序输出的数据作为正值输出,而要按照第三排序到第六排序输出的数据作为负值。寄存器33411存储从P8/P13系数乘法电路23211按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第四排序到第六排序和第八排序输出的数据作为正值输出,而要按照第二排序、第三排序和第七排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第五排序到第七排序输出的数据作为正值输出,而要按照第二排序到第四排序和第八排序输出的数据作为负值。寄存器33412存储从P6/P9系数乘法电路23212按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序到第三排序、第五排序和第六排序输出的数据作为正值输出,而要按照第四排序、第七排序和第八排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序到第四排序输出的数据作为正值输出,而要按照第五排序到第八排序输出的数据作为负值。寄存器33413存储从P4/P5系数乘法电路23213按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序、第三排序、第五排序到第八排序输出的数据作为正值输出,而要按照第二排序、第四排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第三排序、第五排序和第七排序输出的数据作为正值输出,而要按照第二排序、第四排序、第六排序和第八排序输出的数据作为负值。寄存器33414存储从P2系数乘法电路23214按顺序输出的每个八段数据,以及在16-16IDCT和2-8-16IDCT两种情况下,将要按照第一排序、第四排序、第六排序和第七排序输出的数据作为正值输出,而要按照第二排序、第三排序、第五排序和第八排序输出的数据作为正值输出。寄存器33415存储从P0/P1系数乘法电路23215按顺序输出的每个八段数据,以及在16-16IDCT的情况下,将要按照第一排序到第四排序和第六排序到第八排序输出的数据作为正值输出,而要按照第五排序输出的数据作为负值输出,以及,在2-8-16IDCT情况下,将要按照第一排序、第三排序、第四排序和第七排序输出的数据作为正值输出,而要按照第二排序、第五排序、第六排序和第八排序输出的数据作为负值。
加法电路3383,在16-16IDCT和2-8-16IDCT两种情况下,对从寄存器3341到寄存器3347按顺序输出的八段数据执行加法运算。寄存器403存储从加法电路3383输出的数据。
加法电路3384,在16-16IDCT和2-8-16IDCT两种情况下,对从寄存器3348到寄存器33415按顺序输出的八段数据执行加法运算。寄存器404存储从加法电路364输出的数据。
来自寄存器403的数据被供应给加法电路44的被加数输入端和减法电路42的被减数输入端,来自寄存器404的数据供应给加法电路44的加数输入端和减法电路42的被减数输入端。从减法电路42输出的数据供应给包含在第六寄存器组45中的寄存器46,来自加法电路44的数据供应给包含在第六寄存器组45中的寄存器48。第四实施例的其他结构是与第三实施例中的那些结构相同的,对图13和图14给出的相同的参考编号分配给在图15和图16中所示的零组件,并且省略有关联的描述。
将参照图15和图16描述第四实施例中的运算操作。首先,将说明16-16DCT的运算操作。
用于构成16×16变换系数数据的每个列(该16×16变换系数数据对顺序来自MUX312的16×16象素执行16-16DCT压缩之后传送的)的每个十六段象素数据f0到象素数据f15,被存入对应于十六段数据F0到数据F15的每一个构成第一寄存器组313的每个寄存器141到寄存器1416中。
由于MUX161到168、1692、16102、16112、16122、16132、16142、16152、16162已经分别地选择“0”数据,而MUX1691、16101、16111、16131、16141、16151和16161已经分别地选择寄存器143、147、149、1413、144、1410和1414,从加法电路181输出数据F0=h0,从加法电路182输出数据F2=h2,从加法电路183输出数据F4=h4,从加法电路184输出数据F6=h6,从加法电路185输出数据F8=h8,从加法电路185输出数据F10=h1,从加法电路186输出数据F10=h10,从加法电路187输出数据F12,从加法电路188输出数据F14=h14,从减法电路201输出数据F1=h1,从减法电路202输出数据F3=h3,从减法电路203输出数据F5=h5,从减法电路204输出数据F7=h7,从减法电路205输出数据F9=h9,从减法电路206输出数据F11=h11,从减法电路207输出数据F13=h13以及从减法电路209输出数据F15=h15。
从加法电路181输出的数据h0被存入寄存器221,从加法电路182输出的数据h2被存入寄存器222,从加法电路183输出的数据h4被存入寄存器223,从加法电路184输出的数据h6被存入寄存器224,从加法电路185输出的数据h8被存入寄存器225,从加法电路186输出的数据h10被存入寄存器226,从加法电路187输出的数据存入寄存器227,从加法电路188输出的数据h14被存入寄存器228。
从减法电路201输出的数据h1被存入寄存器229,从减法电路202输出的数据h3被存入寄存器2210,从减法电路203输出的数据h5被存入寄存器2211,从减法电路204输出的数据h7被存入寄存器2212,从减法电路206输出的数据h9被存入寄存器2213,从减法电路207输出的数据h15被存入寄存器2215,从减法电路208输出的数据g15被存入寄存器2216。
在八运算周期的每个运算周期由MUX3241选择寄存器221输出的数据h0,并且供应给加/减法电路3261,在八运算周期的每个运算周期MUX3242选择寄存器225输出的数据h8并且供应给加/减法电路3261,然后在八运算周期的每个运算周期按顺序从加/减法电路3261输出每个数据h0+h8、数据h0-h8、数据h0-h8、数据h0+h8、数据h0+h8、数据h0-h8、数据h0-h8和数据h0+h8,并且存入寄存器301。在八运算周期的每个运算周期中由MUX3243选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h12和h14,并且从MUX3243按顺序输出每个数据h4、h12、h12、h4、h4、h12、h12和h4,并且存入寄存器302。在八运算周期的每个运算周期中由MUX3244选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h12、和h14,并且从MUX3244按顺序输出每个数据h12、h4、h4、h12、h12、h4、h4和h12,并且存入寄存器303。在八运算周期的每个运算周期中由MUX3245选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h2、和h14,并且从MUX3245按顺序输出每个数据h2、h10、h6、h14、h14、h6、h10和h2,并且存入寄存器304。在八运算周期的每个运算周期中由MUX3246选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h12、和h14,并且从MUX3246按顺序输出每个数据h6、h2、h14、h10、h10、h14、h2和h6,并且存入寄存器305。在八运算周期的每个运算周期中由MUX3247选择在八运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h12、和h14,并且从MUX3247按顺序输出每个数据h10、h14、h2、h6、h6、h2、h14和h10,并且存入寄存器305。在八运算周期的每个运算周期中由MUX3248选择在8运算周期的每个运算周期中从寄存器221到寄存器228输出的每个数据h0、h2、h4、h6、h8、h10、h12和h14,并且从MUX3247按顺序输出每个数据h14、h6、h10、h2、h2、h10、h6和h14,并且存入寄存器307。
在八运算周期的每个运算周期中由MUX3249选择在八运算周期的每个运算周期中从寄存器229到寄存器2216通过输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX3249按顺序输出每个数据h1、h11、h11、h13、h9、h7、h3、h5和h15,并且存入寄存器308。在八运算周期的每个运算周期中由MUX32412选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX32412按顺序输出每个数据h7、h13、h5、h1、h15、h11、h3和h9,并且存入寄存器3011。在八运算周期的每个运算周期中由MUX32412选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX32413按顺序输出每个数据h9、h3、h11、h15、h1、h5、h13和h7,并且存入寄存器3012。在八运算周期的每个运算周期中由MUX32414选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX32414按顺序输出每个数据h11、h7、h15、h3、h13、h1、h9和h5,并且存入寄存器3013。在八运算周期的每个运算周期中由MUX32415选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX32415按顺序输出每个数据h13、h15、h9、h11、h5、h7、h1和h3,并且存入寄存器3014。在八运算周期的每个运算周期中由MUX32415选择在八运算周期的每个运算周期中从寄存器229到寄存器2216输出的每个数据h1、h3、h5、h7、h9、h11、h13和h15,并且从MUX32415按顺序输出每个数据h15、h5、h3、h7、h9、h13、h11和h1,并且存入寄存器3015。
在八运算周期的每个运算周期从寄存器301到寄存器307输出的每个数据在八运算周期的每个运算周期中被相应的固定系数乘法电路2321到2327中的一相应的固定系数P7、P11、P3、P13、P9,P5和P1相乘,并且被存入相应的寄存器3341到寄存器2347。按顺序存在寄存器3341到寄存器3347的每个数据在八运算周期的每个运算周期中在加法电路3383中经历加法运算和被存在寄存器403中。
在本加法电路3383中的在八运算周期的第一运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7+h4P11+h12P3+h2P13+h6P6+h10P5+h14P1。在第一运算周期中在寄存器403存储的数据是公式(69)中的运算值f0+f8。在加法电路3383中的在八运算周期的第二运算周期被执行加法运算并且被存入寄存器403中的数据是(h0-h8)P7-h12P11+h4P3-h10P13+h2P9-h6P1。在第二运算周期中在寄存器403存储的数据是公式(69)中的运算值f1+f9。在加法电路3383中的在八运算周期的第三运算周期被执行加法运算并且被存入寄存器403中的数据是(h0-h8)P7+h12P11-h4P3-h6P13+h1P9-h2P5+h10P1。在第三运算周期中在寄存器403存储的数据是公式(69)中的运算值f2+f10。本加法电路3383中的在八运算周期的第四运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7-h4P11-h12P3-h2P13-h6P6-h10P5-h14P1。在第四运算周期中在寄存器403存储的数据是公式(69)中的运算值f3+f11。在加法电路3383中的在八运算周期的第五运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7-h4P11-h12P3+h14P13-h10P9-h2P1。在第五运算周期中在寄存器403存储的数据是公式(69)中的运算值f4+f12。在加法电路3383中的在八运算周期的第六运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7+h12P11-h4P3+h6P13-h14P9-h2P5-h10P1。在第五运算周期中在寄存器403存储的数据是公式(69)中的运算值f5+f13。在加法电路3383中的在八运算周期的第七运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7-h12P11+h4P3+h10P13+h2P9+h14P5+h6P1。在第七运算周期中在寄存器403存储的数据是公式(69)中的运算值f6+f14。在加法电路3383中的在八运算周期的第八运算周期被执行加法运算并且被存入寄存器403中的数据是(h0+h8)P7+h4P11-h12P3-h2P13-h6P9+h10P5+h14P1。在第八运算周期中在寄存器403存储的数据是公式(69)中的运算值f7+f15。
在八运算周期的每个运算周期从寄存器308到3015输出的每个数据在八运算周期的每个运算周期中被相应的固定系数乘法电路2328到23215中的一相应的固定系数P14、P12 P10、P8、P4,P2和P0相乘,并且被存入相应的寄存器3348到33415。按顺序存在寄存器3348到寄存器33415的每个数据在八运算周期的每个运算周期中在加法电路3384中经历加法运算和被存在寄存器404中。
在加法电路3384中的在八运算周期的第二运算周期被执行加法运算并且被存入寄存器403中的数据是-h1P14+h1P12-h9P10-h13P8+h3P6-h7P4h15P2+h5P0。在第二运算周期中在寄存器404存储的数据是公式(69)中的运算值f1-f9。在加法电路3384中的在八运算周期的第三运算周期被执行加法运算并且被存入寄存器404中的数据是h13P14-h7P12+h1P10-h5P8+h11P6+h15P4-h9P2+h3P0。在第三运算周期中在寄存器404存储的数据是公式(69)中的运算值f2-f10。在加法电路3384中的在八运算周期的第四运算周期被执行加法运算并且被存入寄存器404中的数据是h9P14-h5P12-h13P10+h1P8-h15P6-h3P4+h11P2+h7P0。在第四运算周期中在寄存器404存储的数据是公式(69)中的运算值f3-f11。在加法电路3384中的在八运算周期的第五运算周期被执行加法运算并且被存入寄存器404中的数据是h7P14-h11P12-h3P10+h15P8+h1P6+h13P4-h5P2-h9P0。在第五运算周期中在寄存器404存储的数据是公式(69)中的运算值f4-f12。在加法电路3384中的在八运算周期的第六运算周期被执行加法运算并且被存入寄存器404中的数据是-h3P14-h9P12-h15P10+h11P8+h5P6+h1P4+h7P2+h13P0。在第六运算周期中在寄存器404存储的数据是公式(69)中的运算值f5-f13。在加法电路3384中的在八运算周期的第七运算周期被执行加法运算并且被存入寄存器404中的数据是h5P14+h15P12-h7P10-h3P8+h13P6+h9P4+h1P2+h11P0。在第七运算周期中在寄存器404存储的数据是公式 (69)中的运算值f6-f14。在加法电路3384中的在八运算周期的第八运算周期被执行加法运算并且被存入寄存器404中的数据是-h15P14+h13P12-h11P10+h9P8-h7P6+h5P4-h3P2+h1P0。在第八运算周期中在寄存器404存储的数据是公式(69)中的运算值f7-f15。
在加法电路42中对从寄存器403按顺序输出的八段数据和从寄存器404按顺序输出的八段数据执行加法运算,从加法电路42输出作为结果的数据f0、f1、f2、f3、f4、f5、f6和f7然后按顺序存入寄存器46。本数据f0,f1,f2,f3,f4,f5,f6和f7被显示在图16中的寄存器46的输出线路的下部。在加法电路44中对从寄存器403按顺序输出的八段数据和从寄存器404按顺序输出的八段数据执行加法运算,从加法电路44输出作为结果的数据f8、f9、f10、f11、f12、f13、f14和f15,然后按顺序存入寄存器46。数据f8、f9、f10、f11、f12、f13、f14和f15被显示在图16中的寄存器46的输出线路的下部。
通过完成上面的算术运算,对在构成已经经历DCT之后传送的16×16数据块的一个列中包含的十六段数据上的初次16-16IDCT结束。在构成16×16数据块的下一个列后续的每一列执行如在上面所描述的相同的初次16-16IDCT,其后对构成16×16数据块的所有的十六个列上的16-16IDCT以类似的方式结束。在对于所有的十六列的初次16-16IDCT完成之后,对构成16×16数据块的十六数据列的每个列执行二次16-16IDCT(对于被DCT变换的数据)。通过完成二次16-16IDCT,在已经经历16-16DCT之后传送的原始图像图片可以被再现。
接下来,将说明2-8-16IDCT的操作运算。在构成16×16段数据组成的块的每个列中包含的十六段象素数据f0到象素数据f15中的每一个(其中16×16段数据是在对从MUX312按顺序输出的16×16象素经历16-16DCT之后传送的),被存入与十六段数据F0到数据F15的每个相对应的构成第一寄存器组313的每个寄存器141到寄存器1416中。
十六段数据F0到数据F15中的数据F0存入构成第一寄存器组313的寄存器141,数据F8存入寄存器142,数据F1存入寄存器143,数据F9存入寄存器144,数据F2存入寄存器145,数据F10存入寄存器146,数据F3存入寄存器147,数据F11存入寄存器148,数据F5存入寄存器149,数据F13存入寄存器1410,数据F6存入寄存器1411,data数据F14存入寄存器1412,数据F7存入寄存器1413,数据F15存入寄存器1414,数据F4存入寄存器1415而数据F12存入寄存器1416。
由于MUX161到168、1692、16102、16112、16122、16132、16142、16152和16162已经分别地选择寄存器142、144、146、148、1410、1412、1414和1416,MUX1691、16101、16111、16121、16131、16141、16151和16161已经分别地选择寄存器141、143、145、147、149、1411、1413和1414,从加法电路181输出数据F0+F8=i0,从加法电路182输出数据F1+F9=i1,从加法电路183输出数据F2+F10=,从加法电路184输出数据F3+F11=i3,从加法电路185输出数据F5+F13=i5,从加法电路186输出数据F6+F14=i5,从加法电路187输出数据F7+F15=i6,从加法电路188输出数据F4+F12=i7,从减法电路201输出F7-F8=i8,从减法电路202输出F1-F9=i9,从减法电路203输出F2-F10=i10从减法电路204输出F3-F11=i11,从减法电路205输出F5-F13=i12,从减法电路206输出F6-F14=i13,从减法电路207输出F7-F15=i14,从减法电路208输出F4-F12=i15。
从加法电路181输出的数据i0被存入寄存器221,从加法电路182输出的数据i1被存入寄存器222,从加法电路183输出的数据i2被存入寄存器223,从加法电路184输出的数据i3被存入寄存器224,从加法电路185输出的数据i4被存入寄存器225,从加法电路186输出的数据i5被存入寄存器226,从加法电路187输出的数据i6被存入寄存器227,从加法电路188输出的数据i7被存入寄存器228。从减法电路201输出的数据i8被存入寄存器229,从减法电路202输出的数据i9被存入寄存器2210,从减法电路203输出的数据i10被存入寄存器2211,从减法电路204输出的数据i11被存入寄存器2212,从减法电路205输出的数据i12被存入寄存器2213,从减法电路206输出的数据i13被存入寄存器2214,从减法电路207输出的数据i14被存入寄存器2211,从减法电路208输出的数据i15被存入寄存器2216。
在八运算周期的每个运算周期中在MUX3241中选择八运算周期的每个运算周期中从寄存器221到寄存器228输出的数据i0到数据i8,数据i0从MUX3241顺序输出八次并且被供应给加/减法电路3261。在八运算周期的每个运算周期中在MUX3242中选择八运算周期的每个运算周期中从寄存器221到寄存器228输出的数据i0到数据i7,数据i7从MUX3242顺序输出八次并且被供应给加/减法电路3261,并且在八运算周期的每个运算周期从加/减法电路3261按顺序输出每个数据i0+i7、i0-i7、i0-i7、i0+i7、i0+i7、i0-i7,i0、-i7和i0+i7,并且存入寄存器301。
在八运算周期的每个运算周期在MUX3243中选择八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i2、i5、i5、i2、i2、i5、i5和i2并且存入寄存器302。在八运算周期的每个运算周期在MUX3244中选择在八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i5、i2、i5、i5、i2、i2和i5并且存入寄存器303。在八运算周期的每个运算周期在MUX3245中选择在八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i1、i4、i3、i6、i6、i3、i4和i1并且存入寄存器304。在八运算周期的每个运算周期在MUX3246中选择在八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i3、i1、i6、i4、i4、i6、i1和i3并且存入寄存器305。在八运算周期的每个运算周期在MUX3247中选择在八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i4、i6、i1、i3、i3、i1、i6和i4并且存入寄存器306。在八运算周期的每个运算周期在MUX3248中选择在八运算周期的每个运算周期从寄存器221到寄存器228输出的每个数据i0到数据i7,以及按顺序输出每个数据i6、i3、i4、i1、i1、i4、i3和i6并且存入寄存器307。
在八运算周期的每个运算周期在MUX3249中选择在八运算周期的每个运算周期从寄存器229到寄存器2218输出的每个数据i8到数据i15,以及从MUX3249顺序输出八次数据i8并且供应给加/减法电路3261,在八运算周期的每个运算周期在MUX32416中选择在八运算周期的每个运算周期从寄存器229到寄存器2218输出的每个数据i8到数据i15,以及从MUX32416顺序输出八次数据i15并且供应给加/减法电路3261,而在八运算周期的每个运算周期按顺序输出每个数据i8+i5、数据i8-i15、数据i8-i15、数据i8+i15、数据i8+i5、数据i8-i15和数据i8+i15,并且通过MUX281存入寄存器308。
在八运算周期的每个运算周期在MUX32410中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序输出每个数据i10、1i3、i13、i10、i10、i13、i13和i10并且存入寄存器309。
在八运算周期的每个运算周期在MUX32411中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序从MUX32411输出每个数据i13、i10、i10、i13、i13、i10、i10和i13并且存入寄存器3010。在八运算周期的每个运算周期在MUX32412中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序从MUX32412输出每个数据i9、i12、i11、i14、i14、i11、i12和i9并且存入寄存器3011。在八运算周期的每个运算周期在MUX32413中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序从MUX32413输出每个数据i9、i12、i11、i14、i14、i11、i12和i9并且存入寄存器3011。在八运算周期的每个运算周期在MUX32414中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序从MUX32414输出每个数据i12、i14、i9、i11、i11、i19、i14和i12并且存入寄存器3011。
在八运算周期的每个运算周期在MUX32415中选择在八运算周期的每个运算周期从寄存器229到寄存器2216输出的每个数据i8到数据i15,以及按顺序从MUX32415输出每个数据i14、i11、i12、i9、i9、i12、i11和i14并且通过MUX283存入寄存器3015。由于MUX282已经选择“0”数据,从MUX32415输出的所有的数据被作为“0”数据存入寄存器33414。
八运算周期的每个运算周期中从寄存器301到寄存器307输出的每个数据在八运算周期的每个运算周期中在加法电路3383中经历加法运算,而结果数据被存入寄存器403。在八运算周期的第一运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0+i7)P7+i2P11+i5P3+i1P13+i13P9+i4P5+i6P1。在第一运算周期存入寄存器403的数据表示在公式(70)中的运算值f0,它显示在图16中寄存器403的输出线路的下部。在八运算周期的第二运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0-i7)P7-i5P11+i2P3-i4P13+i1P9-i6P5-i3P1。在第二运算周期存入寄存器403的数据表示在公式(70)中的运算值f2,它显示作为在图16中寄存器403的输出线路的下部的f2。在八运算周期的第三运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0-i7)P7-i5P11-i2P3-i3P13+i6P9+i1P5+i4P1。在第三运算周期存入寄存器403的数据表示在公式(70)中的运算值f4,它显示作为在图16中寄存器403的输出线路的下部的f4。在八运算周期的第四运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0+i7)P7-i2P11-i5P3-i6P13+i4P9-i3P5+i1P1。在第四运算周期存入寄存器403的数据表示在公式(70)中的运算值f6,它显示作为在图16中寄存器403的输出线路的下部的f6。在八运算周期的第五运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0+i7)P7-i2P11-i5P3-i6P13-i4P9+i3P5-i1P1。在第五运算周期存入寄存器403的数据表示在公式(70)中的运算值f8,它显示作为在图16中寄存器403的输出线路的下部的f8。在八运算周期的第六运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0-i7)P7+i5P11-i2P3+i6P13-i6P9-i1P5-i4P1。在第六运算周期存入寄存器403的数据表示在公式(70)中的运算值f10,它显示作为在图16中寄存器403的输出线路的下部的f10。在八运算周期的第七运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0-i7)P7-i5P11+i2P3+i4P13-i1P9+i6P5+i3P1。在第七运算周期存入寄存器403的数据表示在公式(70)中的运算值f12,它显示作为在图16中寄存器403的输出线路的下部的f12。在八运算周期的第八运算周期内在加法电路3383经历加法运算的并且被存在寄存器403中的数据是(i0+i7)P7+i2P11-i5P3-i1P13-i3P9-i4P5-i6P1。在第八运算周期存入寄存器403的数据表示在公式(70)中的运算值f14,它显示作为在图16中寄存器403的输出线路的下部的f14。
八运算周期的每个运算周期中从寄存器3348到寄存器33415输出的每个数据在八运算周期的每个运算周期中在加法电路3384中经历加法运算并且被存入寄存器404。
在八运算周期的第一运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8+i15)P7+i10P11+i13P3+i9P13+i11P9+i12P5+i14P1。在第一运算周期存入寄存器404的数据表示在公式(70)中的运算值f1,它显示作为在图16中寄存器404的输出线路的下部的f1。在八运算周期的第二运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8-i15)P7-i13P11+i10P3-i12P13+i9P9-i14P5-i14P1。在第二运算周期存入寄存器404的数据表示在公式(70)中的运算值f3,它显示作为在图16中寄存器404的输出线路的下部的f3。在八运算周期的第三运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8-i15)P7+i13P11-i10P3-i11P13+i14P9+i9P5+i12P1。在第三运算周期存入寄存器404的数据表示在公式(70)中的运算值f5,它显示作为图16中的寄存器404的输出线路下部的f5。在八运算周期的第四运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8+i15)P7-i10P11-i13P3-i14P13+i12P9-i11P5+i9P1。在第四运算周期存入寄存器404的数据表示在公式(70)中的运算值f7,它显示作为图16中的寄存器404的输出线路下部的f7。在八运算周期的第五运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8+i15)P7-i10P11-i13P3+i14P13-i12P9+i11P5-i9P1。在第五运算周期存入寄存器404的数据表示在公式(70)中的运算值f9,它显示作为图16中的寄存器404的输出线路下部的f9。在八运算周期的第六运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8-i15)P7+i13P11-i10P3+i11P13-i14P9-i9P5-i12P1。在第六运算周期存入寄存器404的数据表示在公式(70)中的运算值f11,它显示作为图16中的寄存器404的输出线路下部的f11。在八运算周期的第七运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8-i15)P7-i13P11+i10P3+i12P13-i9P9+i14P5+i11P1。在第七运算周期存入寄存器404的数据表示公式(70)中的运算值f13,它显示作为图16中的寄存器404的输出线路下部的f13。在八运算周期的第八运算周期内在加法电路3384经历加法运算的并且被存在寄存器404中的数据是(i8+i15)P7+i10P11+i13P13-i9P13-i11P9-i12P5-i14P1。在第八运算周期存入寄存器404的数据表示在公式(70)中的运算值f15,它显示作为图16中的寄存器404的输出线路下部的f15。
通过完成上面的算术运算,对于在由经历2-8-16DCT之后传送的16×16数据块构成的一个列中包含的十六段数据的初次2-8-16IDCT结束。在构成16×16数据块的下一个列后续的每一列执行如在上面所描述的相同的初次2-8-16DCT,其后对构成16×16数据块的所有的十六列上的2-8-16IDCT以类似的方式结束。在完成对所有的十六行的初次2-8-16IDCT之后,对构成16×16数据块(DCT变换的数据)的十六数据列的每个列执行二次2-8-16IDCT。通过对每个16×16数据完成初次2-8-16IDCT和二次2-8-16IDCT,可以再生经历2-8-16DCT之后传送的原始图像图片。
因此,根据本发明,由于16-16IDCT和2-8-16IDCT被配置为通过切换,在16-16IDCT电路中使用的部分固定系数乘法电路能被使用作为2-8-16IDCT中所需的固定系数乘法电路,所以,在2-8-16IDCT中可以维持在16-16IDCT中通过管道处理型算术运算获得的高速计算特性,并且甚至在用于16-16IDCT和2-8-16IDCT的整个装置尺寸小型化的情况下,仍然可以维持高速计算特性。
根据上面的第一实施例到第四实施例,可以得出下列的结论:
通过以第一实施例和第三实施例情况下相同的方式根据“N”解公式(73)并且重新整理可以获得公式(74)。因此,如第一实施例和第二实施例中的情况那样,通过对构成2
N×2
N象素数据的每个行和每个列执行公式(74)表达的运算,可以执行2-2
N-1-2
NDCT的运算。
这里v=0,1,…,7 z=y/2的整数
首先,描述在公式(74)在右边的右边位置中的矩阵。
在公式(74)右侧右边位置中的矩阵中包含的成分中,给出的具有最终编号P
1、P
3、P
9、P
13的成分,以及在公式(75)中表达的成分,是通过在i=1到i=2
N-1-1情况下选择所有其它(每一个)的“i”获得的系数,在此这些系数被表示成固定系数Pi(i=0,1,2,…2
N-1-1),如公式(76)所示。通过选择系数,此系数是当i=2
N-3到i=2
N-1-1时可以通过选择所有其他“1”获得的,在此所述的所有其他“1”是在选择除i=1到i=2
N-1-1时选择所有其他“1”获得的固定系数系数之外的系数之后留下的,以及因此通过选择仍然留下的所有其他“1”,此后,可以确定在公式(74)中在右侧的右边位置中矩阵中所含的每一成分。在本申请中,可以如在上面所述确定的固定系数被称作被称作“可以根据离散余弦变换规则确定的固定系数”。
在公式(74)中的右侧左上位置矩阵中包含的第一行上的第一列是通过公式(77)和由公式(78)给出的公式(77)中的每项值kj(j=0,1,2,…2N-1-1)给出的。
在公式(74)中在右侧的左下部分的矩阵中第一行的第一列是通过公式(79)以及由公式(80)给出的在公式(79)中的每项值kj(j=2N-1,2N-1+1,2N-1+2,2N-1)给出的。
在公式(74)中左侧左上位置矩阵中每个组件中的公式(74)示出的单元格表示一个成分。没有由单元格示出的所有的成分是”0”。如公式(74)所示,在第二行上的第一列是一个成分。
由”21×21”所示的结构到”2N-3X2N-3”显示的结构是朝着右下方向排列的,而且从”2N-3x2N-3”所示结构到”2N-2X2N-2”所示另外一个结构是朝右下方向排列的。
成分2
1×2
1(2
1×2
1块单元格)被包含在由”2
1×2
1”所示出的结构中,那就是说,由第三行和第四行以及第二列和第三列显示。成分2
2×2
2(2
2×2
2块单元格)被包含在由”2
2×2
2”所示出的结构中,那就是说,由第五行和第八行以及第四列和第七列所包含的结构显示。成分2
N-3×2
N-3(2
N-3×2
N-3块单元格)包含在由”2
N-3×2
N-3”所示的结构中。成分2
N-2×2
N-2(2
N-2×2
N-2块单元格)包含在由”2
N-3×2
N-3”所示的结构中。
在公式(74)中上部的矩阵中构成第二行和第一列的成分中的每一个以及在由”21×21”所示结构到由2N-2×2N-2所示结构中的每一个是通过加上和减去由公式(78)表达的每个kj的公式[kjm]N-2(选择的不同于m=j的下标的一个值)给出的。此外,在公式(74)下部的矩阵中构成第二行和第一列的成分中的每一个以及在由”21×21”所示结构到由2N-2×2N-2所示结构中的每一个是通过加上和减去由公式(80)表达的每个kj的公式[kjN]N-2(选择的不同于m=j的下标的一个值)给出的。
下面将描述在公式(74)右边的左侧位置和右侧位置的矩阵中的判定运算。用在右边矩阵中的第一成分乘在第一行和第一列和第二行和第一列上的成分。
用在右边矩阵中的第二成分和第三成分乘在由21×21所示的结构中包含的每个列中的每个成分。用在右边矩阵中的第四成分到第七成分乘在由22×22所示的结构中包含的每个列中的每个成分。用在右边矩阵中的第2N-3到第(1+21+22+…,2N-4)成分乘由2N-3×2N-3所示的结构。这个关系可以应用于在上部和在下部的矩阵中。
通过在公式(74)中的右边的左侧位置矩阵的判定运算和右侧位置矩阵的判定运算所获得的每一成分的每一乘积的和表示相应于在公式(74)中的右边所示的一个判定的一个成分(变换系数数据,那就是说,即,在公式(74)中显示为F的数据)。
由具有在上面描述的奇数数目的固定系数Pi乘的每一成分是象素数据(即,在公式(78)和公式(80)中“f”所示的数据)。
虽然不可能通过一个常规的公式以及/或者常规表达形式表示构成在上面所描述的矩阵的哪个kj的成分出现。然而,按照在公式(51)和公式(66)中所做的相同的方式,通过相对于指定值N展开和重新排列公式(73),可以对于该指定值N确定上面描述的加和减公式[kjm]N-2以及加和减公式[kjN]N-2。
而且,在变换系数数据是32×32的情况下,按照与第二实施例和第四实施例中所执行的相同的方式,按照与第二实施例相同的方式,通过相对于N展开和重新排列公式(81)获得公式(82),以及通过对在2N×2N变换系数数据的每一行或每个列中包含的数据执行公式(82)表示的运算,可以执行对于2-2N-1-2N IDCT的运算。在公式(82)中表示的数N是一个自然数。在公式(82)上部的判定中的在左边示出的矩阵是具有奇数数字的象素,在公式(82)的下部的判定中的左边示出的矩阵是具有偶数数字的象素。
在公式(82)中右边的左上侧位置的矩阵[lop]的第一列和在下部的矩阵[loq]被表示成变换系数数据F
0和公式(83)之间一个和或者差,而另外一个成分是由不包括公式(83)中表示的变换系数的具有成分Fk(1≤k≥2
N-1-2)的一个矩阵表示的。
这里v=0,1,…,7 z=y/2的整数
2
N-2
N DCT是根据公式(84)执行的,2
N-2
N IDCT是根据公式(85)执行的。在公式(84)中的左边和右边使用的字符和注释两者以及在公式(85)中的左边和右边矩阵中使用的字符和注释初次上对应于公式(74)和公式(82)。在公式(84)和公式(85)中的右侧的左边位置的矩阵中包含的每一成分不同于公式(74)和公式(82)中的那些成分,如在下面所示的:
在公式(84)中包含的每一成分[A
St]
N-2和[B
SU]
N-1是通过公式(86)给出的。在每一成分[A
st]
N-2和[B
SU]
N-1中使用的的、t以及u的含义与j、m以及N的含义相对应。象素数据f
0到f
2N-1是公式(86)给出的象素数据。每一成分[C
Vw]和[D
vx]是作为在2
N-2
N IDCT中的变换系数给出的。在公式(85)中包含的每一成分[C
vw]和[D
vx]中使用的v、w和x的含义与公式(82)中的o、p和q的含义相对应。
因此,通过使用用于执行2N-2N DCT的部分电路,可以对2N-2N象素数据执行2-2N-1-2N DCT。而且,通过利用用于执行2N-2N IDCT的部分电路,可以对2N-2N变换系数数据执行2-2N-1-2N IDCT。
如上面所描述的,根据本发明,按照同样的顺序或不同的顺序,从包含在2N×2N(N是自然数)中的一个行或者一个列中的2N段象素数据中,通过选择由2N段象素数据构成的第一组象素数据和第二组象素数据(所述2N段象素数据将是由按照离散余弦变换规则确定的具有奇数数字k的一固定系数Pk(0≤k≤2N-1)相乘的),通过用具有奇数数字k的固定系数乘对应于具有奇数数字k的固定系数的选择的第一组象素数据和选择的第二组象素数据两者以便产生一个乘积,通过将该乘积加到相应的固定系数,以及根据该添加数值通过输出对应于该添加数值的出自变换系数数据Pk的预定数字的变换系数数据,可以在管道格式中以高速执行2-2N-1-2N DCT。
对于2-2N-1-2N IDCT,由于它是按照与2-2N-1-2N DCT情况下一样的方式配置的,所以它可以是对2N×2N段的变换系数数据执行的。
显然本发明不限制为上面的实施例,而是在没有偏离本发明的范围和实质的范围内改变和修改的。例如,当不只是32×32段象素数据而且32×32段变换系数数据也被使用时,可以实现在第一实施例到第四实施例中所达到的效果。此外,在上面的第一实施例中,描述了用于8-8DCT和2-4-8DCT两者的运算,在第二实施例中描述了用于8-8IDCT和2-4-8IDCT两者的运算,在第三实施例中描述了用于16-16DCT和2-8-16IDCT两者的运算,在第四实施例中描述了用于16-16DCT和2-8-16IDCT两者的运算。可是,2-4-8DCT、2-4-8IDCT,2-8-16DCT和2-8-16IDCT可以各别地和独立地执行。而且,通过切换MUX和从没有使用分立器件的寄存器中输出的数据码,可以完成8-8DCT、2-4-8DCT、8-8IDCT和2-4-8IDCT。如果图像信号的离散余弦变换速度不是很重要的,可以通过软件执行用于DCT和IDCT的上面的运算。在上面描述的每一实施例中,在MUX运算操作之前和运算操作之后的时间,例如,对MUX241-MUX248进行输入的时间和接在对MUX241到MUX248的输入之后的运算时间可以是1:2N-1。此外,在上面的实施例中,使用了一个和以及/或者差,然而,如在日本的专利的申请No平5-181896中所揭示的,通过使用选择格式的信号,可以同样地实现本发明。
因此,根据本发明,由于2N-2N DCT和2-2N-1-2N DCT器件被构造为通过切换,使在2N-2N DCT中使用的部分固定系数乘法电路可以被用于在2-2N-1-2N DCT中所需的笃定系数乘法电路,通过在2N-2N DCT中管道处理型数学运算获得的高速计算特性在2-2N-1-2N DCT中可以保持,而且即使在小型化的2N-2N DCT器件和2-2N-1-2N DCT器件中仍然可以保持高速计算特性。上面所述的相同效果在根据本发明的2N-2N IDCT和2-2N-1-2NIDCT器件中也可以实现。
显然,本发明并不限于上面的实施例,在没有脱离本发明的范围和实质的情况下,是能够进行改变和修改的。