数据块规模可变的2维逆向离散余弦变换机的制作方法

文档序号:6415799阅读:177来源:国知局
专利名称:数据块规模可变的2维逆向离散余弦变换机的制作方法
背景技术
I.发明领域本发明涉及数字信号处理。具体来说,本发明涉及一种新颖、改进的数据块规模可变的2维(2-D)逆向离散余弦变换(IDCT)机。
II.相关技术说明2维离散余弦变换(IDCT)和逆向离散余弦变换(IDCT)是数字图像压缩中重要的信号处理操作。一种这样的数字图像压缩应用于高清晰度电视(HDTV)领域。在HDTV中,模拟视频波形由模拟—数字变换器(ADC)控制和数字化。所得到的经取样的数据接着经过数字处理,以减小在保留高图像质量情况下所必须传送和/或存储的数据量。具体来说,压缩处理的关键因素是2-D离散余弦变换,其中将经取样数据的N×N数据块或图像从时域变换为频域。经变换的数据可进一步由诸如霍夫曼码(Huffman code)、游程长度码(run length codes)等分组码,和/或诸如卷积码(convolutional codes)和里德-所罗门码(Reed-Solomon codes)等纠错码进行处理。在3份标题均为“数据块规模自适应的图像压缩方法和系统”的美国专利U.S.Pat.No.5,452,104,U.S.Pat.No.5,107,345和U.S.Pat.No.5,021,891,以及标题为“帧间视频编码和解码系统”的美国专利U.S.Pat.No.5,576,767中揭示了一种示范性HDTV图像压缩方案,上述4项专利均已转让给本发明受让人,现通过引用归并于此。
所传送和/或存储的是经数字编码的视频波形。在接收机处执行逆向的数字信号处理来重建原始图像的各个像素。经还原的图像提供给数字—模拟变换器(DAC),该变换器便将所重建的图像变换回可以在监视器或电视机上显示的模拟视频波形。
解码处理中的重要因素是将频域数据变换回时域的逆向离散余弦变换。该IDCT机需要以高输出率运行来实时重建原始图像。另外,IDCT机通常装在消费类产品中,因而成本是考虑的主要因素。IDCT机需要设计成高速工作但复杂度很低。
该数字图像压缩系统通常按逐帧方式对视频信号进行处理。每一视频帧进一步分成一些N×N数据块。大多数压缩系统中,由系统设计将数据块规模固定,以简化DCT和IDCT机的实施。
允许数据块规模可变可以在某些条件下增强压缩系统性能,以允许对图像进行优化压缩,并且/或者提高所重建图像的质量。可变数据块规模可用来利用图像的某些特性。在现有技术中,用不同规模的变换处理器组设计数据块规模可变的DCT和IDCT机。每一处理器对相同数据块计算不同数据块规模的变换。然后,不同处理器输出的变换组合成期望的复合变换数据块。由于需要大量硬件,而且各种硬件模块间的协调复杂,因而此方法会不灵活。
发明概述本发明为一种新颖、改进的数据块规模可变的2维(2-D)逆向离散余弦变换(IDCT)机。按照本发明,该N×N数据块由第一1-D IDCT处理器按列进行变换。该第一IDCT处理器输出的中间结果暂时存储在易位存储器中。一旦所有各列均得到处理,该中间结果便由第二1-D IDCT处理器按行进行变换。该第二IDCT处理器的输出包括IDCT机的经变换输出。
本发明目的在于,提供一种能在一N×N数据块内计算任意的变换混合的2-DIDCT机。在示范性实施例中,每一数据块可以是16×16变换,也可以是8×8变换、4×4变换、和/或2×2变换的任意组合的混合。在示范性实施例中,有一21位的控制信号精确地描述所期望的分割,并告知IDCT机计算适当的变换组合。本发明中,可通过使输入数据正确排序,在蝶式运算级前有选择地组合数据,并控制每一蝶式运算级处的加法和乘法,方便地进行不同的变换组合。按旁路方式设置不需要的蝶式运算。
本发明另一目的在于,通过提供串行计算来简化2-D IDCT机的设计。因为一次仅对数据的一位进行计算,因而串行加法器和位串行乘法器大大简化这种设计。串行计算还大幅度简化连续蝶式运算级间的交叉路由。由于本发明IDCT机的流水线结构,吞吐速率保持在每一时钟周期一变换点或像素的速率。此速率与并行计算时的吞吐速率相同。只是由于计算的串行特性,处理延时有所增加。
本发明再一目的在于,降低存储器要求。对于2-D IDCT,该数据块首先由1-DIDCT处理器按列进行变换,而中间结果暂时按列存储在易位存储器中。仅在所有各列均变换后才执行第二1-D变换。由于IDCT机的流水线结构,以并行方式按列写入至存储器并按行从存储器读出中间结果。为避免覆盖存储器中含有后面所需数据的位置,存储器对于连续的N×N数据块易位,或在主列和主行之间交替。通过采用读出-修改-写入循环周期,在相同时钟周期内从存储器位置读出中间结果,并将新结果写入至相同存储器位置。易位存储器使存储器要求降低至具有与一N×N数据块相同规模的一个存储体。
附图简要说明本发明的特征、目的和优点从下面结合附图的具体说明当中会变得更为清楚。图中各处相同标号均指对应部分,附图当中,

图1A、图1B和图1C分别示出的是本发明中示范性N×N图像、经分割图像、和与所分割图像对应的树形图;图2是本发明示范性数据块规模可变的2-D IDCT机的框图;图3A-3D分别是本发明中2点IDCT格点结构、4点IDCT格点结构、8点IDCT格点结构、和16点IDCT格点结构的示意图;图4是本发明中示范性1-D IDCT处理器的框图;图5A和5B分别是本发明中串行蝶式运算的示例图和该串行蝶式运算示范性实施例的框图;图6A和图6B分别是按字范围表示和位范围表示的本发明示范性位串行乘法器的框图;图7是本发明中示范性串行加法器的框图;以及图8是本发明中示范性I/O缓存器的框图。
较佳实施例的具体说明离散余弦变换(DCT)和逆向离散余弦变换(IDCT)均为重要的互补数字信号处理操作。DCT按下面公式将经取样数据从时域变换至频域。
式中,N是变换的维数,C(0)=1/(21/2),对于k=1,2,3…N-1,C(k)=1。作为一系列数字信号处理操作的一种通常对经取样数据执行DCT变换。对经变换数据执行包括量化、数据压缩、以及纠错编码处理在内的其他操作。上面提及的美国专利U.S.Pat.No.5,452,104中具体说明了对示范性数字图像压缩技术的讨论。
IDCT按下面公式将该数据从频域变换回时域。
DCT和IDCT变换均为可分变换。这意味着,2-D变换可拆分为2个1-D变换。对一数据块执行2-D IDCT变换,可通过先对该数据块各列执行1-D IDCT变换。第一IDCT变换的中间结果暂时存储于存储器元件。然后对中间结果的各行执行第二IDCT变换。第二IDCT变换的输出包括原始图像的重建像素。
参见附图,图1A图示的是一示范性数据块。数据块2的容量为N×N,其中N为2的幂,即N=2x,x为整数1,2,3…。满足此条件时,式(1)和式(2)均可显著简化。示范性实施例中,N等于16,但本发明可方便地扩展至其他N值。
图2示出本发明中2-D IDCT机10的示范性框图。示范性实施例中,包括IDCT系数的输入数据块按列提供给IDCT处理器20a。IDCT处理器20a和20b是按照式(2)对输入数据执行IDCT变换的同一1-D IDCT处理器。IDCT处理器20a输出的中间结果提供给存储器元件22,这里中间结果暂时按列存储。该中间结果随后按行提供给IDCT处理器20b。IDCT处理器20b执行1-D IDCT变换,并将经变换的输出即重建的图像提供给后面的数字信号处理模块(未在图2中示出)。示范性实施例中,输入数据块按列提供给IDCT处理器20a,而中间结果则按行提供给IDCT处理器20b。要么数据块按列提供给IDCT处理器20a,而中间结果则按行提供给IDCT处理器20b。示范性实施例中,IDCT处理器20a和20b具有流水线结构,使得IDCT处理器20这两者同时活动。
IDCT其重要特性在于,可通过管理输入数据点,计算数据点选择性组合的总和,并对两个较小的变换的输出执行串行蝶式运算,来创建一较大的变换。串行蝶式运算是一种下面具体说明的运算。这样,一16点IDCT是两个8点IDCT的蝶式运算,每一8点IDCT是两个4点IDCT的蝶式运算,而每一4点IDCT又是两个2点IDCT的蝶式运算。IDCT这一特性在本技术领域内是公知的,并得到格网图最为理想的解说。图3A示出2点IDCT的格网图,图3B示出4点IDCT的格网图,而图3C示出8点IDCT的格网图。2点IDCT只包括一个蝶式运算级。如图3A-3B所示,4点IDCT包括2个2点IDCT组成的级,该2点IDCT级之前的一串行加法级,以及该2点IDCT级之后的一蝶式运算级。同样,如图3B-3C所示,8点IDCT包括2个4点IDCT组成的级,该4点IDCT级之前的一串行加法级,以及该4点IDCT级之后的一蝶式运算级。
图3D中示出本发明中16点IDCT格网100的示意图。格网100源于B.G.Lee,并且在K.R.Rao所著书名为“离散余弦变换算法,优点以及应用”(学院出版社,1990)中有具体说明。16点IDCT格网100包括三级串行加法和四级串行蝶式运算,每一级蝶式运算包括8个串行蝶式运算。现有技术中的IDCT处理器,各连续级之间的互联关系固定,因而限制IDCT处理器只能执行16点IDCT变换。而本发明中,通过利用可重组格网交叉连接使各个级互联。
如图3D所示,16点IDCT110是2个8点IDCT108的蝶式运算,至较低的8点IDCT的数据点被有选择地组合。2个8点IDCT108是4个4点IDCT106的蝶式运算,至较低的4点IDCT的数据点被有选择地组合。4个4点IDCT106是8个2点IDCT104的蝶式运算,至较低的2点IDCT的数据点被有选择地组合。该可重组格网交叉连接与串行蝶式运算旁路模式相结合,使本发明的2-D IDCT机10可计算N×N数据块内的任意变换混合。可通过使输入数据正确排序,在蝶式运算级之前有选择地组合输入数据,并在格网各个级处控制加法和乘法,来完成2点、4点、8点、和16点IDCT变换的任意组合。例如,IDCT处理器20可执行2个8点变换,8个2点变换,1个8点变换和2个4点变换,或者1个8点、1个4点以及2个2点变换。本发明中,不需要组合级将不同的变换输出汇总成一复合变换数据块,因为IDCT机10配置成对各种变换进行适当混合时这会自动发生。任何时候计算较小的变换,串行加法器和蝶式运算都不需要进行高次变换再度延迟锁存器。这样,不管变换混合如何,总可将各个IDCT处理器20的输出按时间对齐。
示范性实施例中,串行蝶式运算对2输入位流进行运算,并提供2输出位流。串行蝶式运算包括1个明显简化的位串行乘法器和2个串行加法器。IDCT处理器20的串行结构使连续的串行蝶式运算级之间的交叉路由可仅用1位宽数据总线来实现。
示范性实施例中,IDCT机10在256时钟周期内计算16×16数据块的变换。每一时钟周期,向IDCT机10提供一IDCT系数,并从IDCT机10当中提取一输出像素。IDCT处理器20a和20b具有流水线结构,以便两处理器同时活动。每一IDCT处理器20接收1个输入数据点,并且每一时钟周期提供1个变换的数据点。
I.IDCT处理器图4中示出本发明IDCT处理器20的示范性框图。每16时钟周期(N=16),16个I/O缓存器52接收16个输入数据点,每一时钟周期1个数据点,每一I/0缓存器521个数据点。向I/O缓存器52加载数据点的顺序取决于正执行着的变换混合,由控制器26通过4位WRITE_NABLE信号进行控制。根据WRITE_ENABLE信号,每一数据点包括并行加载至相应的I/O缓存器52的q位。I/O缓存器52接着按照LSB(最低有效位)在先,每一时钟周期1位进行串行移位,将此16个数据点一起经交叉路由54移出至串行加法器56。I/O缓存器52可如下面所述作为一并行至串行移位寄存器来实现。
串行加法器56接收此数据位,并按下面说明的方式对这些位执行串行加法。串行加法器56由ADD_ENABLE启动,该信号在示范性实施例中包括7位,并与图3D中格子100所示的前三级加法相对应。每一串行加法由小圈112表示(为简便起见,仅标注一个小圈)。第一级中有7个需要4位进行启动/禁止的串行加法112。第二级中有2组各3个需要2位进行控制的串行加法112。而第三级中有4组单个需要1位进行控制的串行加法112。可根据7位ADD_ENABLE信号对串行加法器56进行控制来计算如图3D中格网100前三级所需的串行加法112。图4中16个串行加法器56的加法器组象征性地代表格网100前三级所需的功能。
串行加法器56的输出提供给8个串行蝶式运算的第一级58,执行图3D中8个2点IDCT104内所示功能。图5B框图示出每一串行蝶式运算。串行蝶式运算接收2串行流输入X1和X2,生成2串行输出Z1=X1+C·X2和Z2=X1-C·X2,式中,C是根据蝶式运算在IDCT格网100中的位置定义的固定标量。下面具体说明串行蝶式运算一示范性实施例。示范性实施例中,串行蝶式运算的第一级58总是启动使得IDCT处理器20执行至少2点变换。第一级58的输出经交叉路由60提供给串行蝶式运算第二级62。交叉路由60如IDCT格网100所示将前2级互联。示范性实施例中,可有选择地启动串行蝶式运算中的第二级62来提供4点变换。由于有4组蝶式运算(见图3D),需要4位控制来分别启动各组。该4位控制是图4中标注为MAP的控制信号中的一部分。
串行蝶式运算的第二级62的输出经交叉路由64提供给第三级66。第三级66包括如图3D中2个8点IDCT108内所示的2组各4个串行蝶式运算。每一组可以由一2位控制分别启动。第三级66的输出经交叉路由68提供给第四级70。第四级70包括如图3D中16点IDCT110内所示的1组8个串行蝶式运算。该串行蝶式运算可以由1位控制有选择地启动。第四级70输出的经串行变换的数据包括IDCT处理器20的输出。
第四级70输出的经1位串行变换的数据,路由选择至串行—并行输出缓存器组。示范性实施例中,IDCT处理器20按每一时钟周期提供一输出字这种字串行方式提供IDCT输出。该输出缓存器可以与输入缓存器结合形成下面具体说明的I/O缓存器52。
II.控制器参见图2,控制器26将控制信号提供给IDCT处理器20a和20b以及存储器元件22。这些控制信号使IDCT处理器20a和20b与存储器元件22同步,并且判定重建的合成图像。控制器26接收地址输入和PQR输入。该地址输入告知控制器26数据块的起始位置。PQR输入则包括告知控制器26所需数据块分割的三条命令P、Q以及R。示范性实施例中,R等于“1”表明该16×16数据块要分成较小的8×8变换数据块,Q等于“1”表明该8×8数据块要分成较小的4×4变换数据块,而P等于“1”表明该4×4数据块要分成较小的2×2变换数据块。示范性实施例中,每一数据块可以不必考虑该图像中其他数据块,分别进行分割。因而,对于R需要1位控制,因为16×16数据块中仅有一个16×16变换数据块,对于Q需要4位控制,因为16×16数据块中可以有四个8×8变换数据块,对于P需要16位控制,因为16×16数据块中可以有十六个4×4变换数据块。图1B示出数据块4的示范性分割方案,图1C示出与图像分割方案相对应的PQR控制的示例图示,例如树形图。该21位控制PQR可按串行或并行方式提供给控制器26。
该PQR输入是所需数据块分割方案的2-D表示。控制器26将PQR输入分析为1-D行列控制信号。接着利用这些行列控制信号生成控制信号来命令IDCT处理器20a和20b执行相应的变换混合。对于图1B中示出的示范性分割方案4,控制器26命令IDCT处理器20a执行前4列数据的2个4点变换和1个8点变换。控制器26命令IDCT处理器20a却对后2列数据执行1个4点变换、2个2点变换、和1个8点变换。处理继续到所有列得到处理为止。IDCT处理器20a输出的中间结果在存储器元件22中按列存储。
控制器26按同样方式命令IDCT处理器20b对存储器元件22输出各行中间结果执行相应的变换混合。所有列由IDCT处理器20a处理后,控制器26命令IDCT处理器20b执行前4行中间结果的2个4点变换和1个8点变换。至于后2行,控制器26则命令IDCT处理器20b执行1个4点变换、2个2点变换、和1个8点变换。处理也继续到所有列得到处理为止。
参见图4,控制器26生成的对IDCT处理器20a和20b的控制信号包括WRITE_ENABLE、READ_ENABLE、ADD_ENABLE和MAP。WRITE_NABLE控制输入数据点写入至相应的I/O缓存器52,使得输入数据点按正确顺序排列(参见图3D)。READ_ENABLE控制从IDCT处理器20中读出经变换数据的顺序。示范性实施例中,经变换数据可以依次从IDCT处理器20中读出。ADD_ENABLE对在格网100中前3级执行加法的第一组串行加法器56进行控制。ADD_ENABLE取决于所需的变换混合,并根据PQR输入生成。MAP控制串行蝶式运算的最后3级62、66和70来生成所需的变换混合。MAP也根据PQR输入生成。第二级62需要4位控制位来分别启动或禁止4组蝶式运算中的每一组(参见图3D)。同样,第三级66需要2位控制位,第四级70需要1位控制位。示范性实施例中,第一级58不需要控制信号,因为IDCT处理器20总是执行至少2点变换。但需要的话可生成一控制信号,提供第一级58的旁路。本发明的2-D变换是采用2个1-D变换串行执行的,因而控制器26使至IDCT处理器20b的控制信号相对于IDCT处理器20a延迟,使控制信号与输入数据保持同步。
控制器26可作为组合逻辑和状态机的组合来实现。作为替代,控制器26可利用运行微代码的微控制器或微处理器来实现。如这里所说明的执行该功能的控制器26的种种方案均落在本发明保护范围以内。
III.易位存储器示范性实施例中,存储器元件22可按易位存储器实现。通过对输入数据块各列执行1-D变换,存储中间结果,并对中间结果各行执行1-D变换来实现2-D变换。直到所有列均得到变换,才对各行执行1-D变换。示范性实施例中,这两1-D变换具有流水线结构,使得两者并行操作。
存储器元件22可按图1A所示存储器模块实现。假定IDCT处理器20a输出的中间结果最初按列写入至存储器元件22。直到IDCT处理器20a对所有列操作后,IDCT处理器20b才对中间结果各行进行操作。一旦存储器元件22最后一列存满,中间结果便按行提供给IDCT处理器20b。但由于是流水线结构,IDCT处理器20a对IDCT处理器20b所检索的每一行数据提供一列数据。该列数据不能对以前的列进行重写,因为IDCT处理器20b还需要以前列中有些数据点。为了解决这种问题,新的一列中间结果重写在IDCT处理器20b刚刚检索到的那行数据上。事实上,存储器元件22可利用读出-修改-写入能力来实现,使得相同存储位置可在相同时钟周期中读出和写入。在一个时钟周期内,可以由IDCT处理器20b从存储器元件22某一位置当中读出一数据点,并且由IDCT处理器20a写入至那相同位置。按此方式实施,存储器元件22便被易位,或者对连续的16×16数据块在主行和主列间交替。这种易位将存储器需求减少到仅需一个存储器组。
由控制器26提供控制信号,按一易位存储器来实现存储器元件22。控制器26具有所需的定时信息,并能够按输入数据块使IDCT处理器20a和20b与存储器元件22保持同步。
存储器元件22可以采用诸如RAM存储器件、锁存器、或其他存储器件等本领域众所周知的存储元件或任何数目的存储器件之一来实施。
IV.串行蝶式运算图5A和图5B示出串行蝶式运算。图5A是串行蝶式运算的示例图示,图5B是相同串行蝶式运算的框图。串行蝶式运算140对2个输入X1和X2进行运算。输入X1由延迟元件148延迟,使最高和最低信号通路对齐。输入X2由位串行乘法器150按1/(2Cnk)定标。Cnk表示cos(kπ/n)。延迟元件148和乘法器150的输出提供给串行加法器160a和160b。串行加法器160a将乘法器150的输出与延迟元件148的输出相加,串行加法器160b则从延迟元件148的输出当中减去乘法器150的输出。串行加法器160a和160b的输出分别包括串行蝶式运算输出Z1和Z2。本发明中,串行加法器160a和160b设计成可关闭以分别允许Y1和Y2通过作为Z1和Z2。示范性实施例中,串行蝶式运算140对2个输入位流进行运算,并提供2个输出位流。
图6A和图6B示出位串行乘法器150的示范性框图。图6A示出按字范围表示的位串行乘法器150,图6B示出按位范围表示的相同乘法器150。通过连续将C与中间生成项相加,按一二进制位使该结果移位来实现X和C的位串行乘法。这由图6A中的框图示出。锁存器212由每16时钟周期中1周期内处于启动状态的LD信号清零,使锁存器212准备下一乘法。LD信号还使并行至串行移位寄存器214加载加法器210输出的刚完成乘法中的生成项。生成项接着在下一乘法期间被串行移位,移出寄存器214。
示范性实施例中,输入数据X、常数C和生成结果Y的精度为16位。16位精度造成的算术性差错少于“IEEE标准1180-19908×8逆向离散余弦变换实施规范”中的规定。该16位表示可包括1位符号位、9位幅值位、和6位分数位。可实施少于16位或多于16位的其他表示,这些均落在本发明保护范围。
示范性实施例中,加法器210、锁存器212、和寄存器214均按16位实施。每一时钟周期,X中的1位按最低有效位在先移位至位串行乘法器150中。常数C取决于输入位数值和LD信号,并与锁存器212中存储的中间生成项相加。逻辑电路200中,“与”门204根据该输入位和LD信号判定C是否要与中间生成项相加。加法器210输出的中间生成项接着移一位,并按数字位D[14..0]存储回锁存器212。加法器210输出的最低有效位被舍弃,锁存器212的最高有效位具有符号扩展,例如D[15]=Co[15],其中C[15]是加法器210中最高有效位的进位输出。如图6A所示,位串行乘法器150可利用相同数量的硬件例如累加器来实现,这对于IC设计来说较为紧凑。
图6B中进一步详细示出位串行乘法器150。加法器210、锁存器212、和寄存器214按位形式示出。常数C取决于输入位X数值和LD信号,并与锁存器212中存储的中间生成项相加。每一加法器210接收下一最低有效位的锁存器212输出的进位输入(Ci),向下一最高有效位的加法器210提供进位输出(Co)。属于加法器的标准进位链。
对最低有效位的简单舍弃产生2进制补码输出生成项的略微负值偏移。通过在末级加法器210a前的加法器加最低有效位,产生输出生成项中一半最低有效位的正值偏移,来补偿该略微负值偏移。通过在连续的乘法器150交替进行舍弃和正值偏移,可减小总偏移。利用可根据所需结果硬布线接入高电平或低电平的ROUND信号(接地信号)来控制偏移。
图7A示出串行加法器160的示范性框图。串行加法器160按最低有效位在先串行接收两个输入Y1和Y2。串行加法器160可使两个输入相加(Y1+Y2),从一输入减去另一输入(Y1-Y2),或将某一输入旁路通过成为输出(Z=Y2)。至于是加法还是减法,取决于IDCT格网中串行加法器160的位置,例如串行加法器160是位于蝶式运算的上支路还是下支路。旁路方式允许本发明IDCT处理器20执行不同的变换混合。
输入Y1和Y2分别串行提供给“与”门电路240和“异或”门电路242。ADD_EN也提供给“与”门电路240。ADD_EN为低电平时,“与”门240的输出为低电平,Y1未提供给加法器244。ADD_EN为高电平时,Y1便提供给加法器244。INVERT信号提供给“异或”电路242和寄存器246。为了执行减法,输入Y2变换为负数并与另一操作数相加。将2进制补码数变换为负数需要对原始数所有位反转,并在最低有效位加“1”。当INVERT信号(反转信号)为高电平时,便利用“异或”门242执行各位反转。当LD信号处于启动状态,且INVERT信号为高电平时,通过将“1”存储于串行加法器的起始位置,并将该数值与加法器244的进位输入(Ci)相加,使“1”加到该输入数的最低有效位上。
每一后续时钟周期,在寄存器246中存储先前1位加法输出的进位输出(Co)。该进位输出与两个输入Y1和Y2的下一组2进制位相加。加法器244的总和输出S表示串行加法器160的输出。
常数C可以硬布线接入,或可屏蔽编程。因为在示范性实施例中总要执行蝶式运算的第一级58,因而可以调整该级位串行乘法器150的常数C。但串行蝶式运算140置于旁路模式时,对于余下的蝶式运算级62、66和70来说,常数C可屏蔽编程,以允许乘法器150执行输入X2同1/(2Cnk)或1相乘。乘法器150也可以加载C的其他数值来执行输入X2的定标或归一化。
如图7所示,串行加法器160可对两个输入执行加法、减法或旁路。可将串行加法器160修改成执行串行蝶式运算140所需的函数。例如,参见图5B,串行加法器160a仅执行加法或旁路。所以,图7中串行加法器160可通过直接向加法器244的B输入提供Y1,去除“异或”门242,并向“与”门240提供Y2进行修改。可以去掉INVERT信号,因为加法器160a仅执行加法。同样,串行加法器160b仅执行减法或旁路。所以,串行加法器160的INVERT信号可以与高基准源相连。
串行加法器160可用于执行图4中串行加法器56所需的串行加法和旁路,该加法器实现图3D中所示格网100前3级所需的串行加法112。
参见图5B,延迟元件148可以利用一连串锁存器来实现。锁存器的数目选择为与乘法器150的处理延迟相配合。
V.I/O缓存器示范性实施例中,在每一IDCT处理器20中,16个I/O缓存器52的存储器组接收输入数据并提供经变换数据。IDCT处理器20的输入和输出按字串行方式提供,或按每一时钟周期一完整数据点方式提供。16个数据点在16个时钟周期内加载至16个I/O缓存器52中。一旦加载所有I/O缓存器52,16个数据点按位串行方式每一时钟周期提供一位至IDCT格网。每一时钟周期,I/O缓存器52还接收串行蝶式运算最后一级70输出的经变换数据位。该经变换数据串行提供给I/O缓存器52。
图8示出一I/O缓存器52的示范性框图。I/O缓存器52包括16位锁存器262、16位并行一串行移位寄存器264、16位锁存器266以及输出缓存器268。IDCT输入提供给16个I/O缓存器52中的所有锁存器262。每一I/O缓存器52当得到控制信号WR(w)指令时对IDCT输入进行锁存。从控制器26所始发的WRITE_ENABLE信号解码得到WR(w)。每一I/O缓存器52中的锁存器262仅在每16个时钟周期中的一个时钟周期期间处于启动状态。待16个数据点均由锁存器262锁存后,LD信号才处于启动状态,锁存器262中锁存的数值才提供给寄存器264。
对于每一I/O缓存器52,按最低有效位先移出方式,以串行方式每一时钟周期一位将数据移位至交叉路由54。每一时钟周期,有一位经变换数据位按最低有效位先移位方式,以串行方式每一时钟周期一位移位进入最高有效位寄存器264q。16个时钟周期之后,所有16个数据位移出至交叉路由54,而所有16个经变换数据位则移位进入寄存器264。每隔16个时钟周期,LD信号便向寄存器264加载下一数据点,并向锁存器266加载经变换数据点。经变换数据存储在锁存器266中直到通过输出缓存器268读出。输出缓存器268有选择地处于启动状态,使得16个I/O缓存器52以串行方式每一时钟周期一经变换数据点提供经变换数据。读出顺序由从READ_ENABLE解码得到的RD(w)信号控制。
图8中框图示出的是I/O缓存器52的一实施例。还可实现执行与上面所述功能相同的其他实施例,它们均落在本发明保护范围内。
尽管本发明是围绕2-D IDCT机说明的,但本发明概念可扩展至例如离散傅里叶变换(DFT)、逆向离散傅里叶变换(IDFT)、快速傅里叶变换(FFT)、逆向快速傅里叶变换(IFFT)、离散余弦变换(DCT)、以及阿达玛(Hadamard)变换等其他变换。上述本发明概念对其他变换的应用均落在本发明保护范围内。
所提供的对较佳实施例的上述说明能够让本领域技术人员制造或利用本发明。对这些实施例的种种修改对于本领域技术人员来说是显而易见的,不需要运用创造性思维便可将上面所述的总体原理应用于其他实施例。因而,本发明不受这里说明的实施例限制,但要符合与在此说明的原理和新颖特征相一致的最大保护范围。
权利要求
1.一种数据块规模可变的IDCT处理器,其特征在于,包括接收多个输入数据点和第一控制信号的加法器组,所述第一控制信号命令所述加法器组对输入数据点的选定组合执行加法;多个蝶式运算级;以及多个交叉路由,一种是设置在所述加法器组和第一蝶式运算级之间的交叉路由,一种是设置在连续蝶式运算级之间的交叉路由,其中,所述多个蝶式运算级接收第二控制信号,命令所述多个蝶式运算级对选定的至所述多个蝶式运算级的输入执行蝶式运算。
2.如权利要求1所述的IDCT处理器,其特征在于,用串行加法器和位串行乘法器实施所述加法器组和所述多个蝶式运算级。
3.如权利要求2所述的IDCT处理器,其特征在于,还包括按字串行格式接收所述多个输入数据点,并按位串行格式向所述加法器组提供所述输入数据点的I/O缓存器组。
4.如权利要求3所述的IDCT处理器,其特征在于,所述多个蝶式运算级具有流水线结构,以便所有级均并行活动。
5.如权利要求4所述的IDCT处理器,其特征在于,所述位串行乘法器的所述被乘数可利用屏蔽进行编程。
6.一种数据块规模可变的2维IDCT机,其特征在于,包括第一IDCT处理器,所述第一IDCT处理器接收输入数据点;与所述第一IDCT处理器连接的存储器元件;与所述存储器元件连接的第二IDCT处理器;以及与所述第一IDCT处理器、所述第二IDCT处理器、和所述存储器元件连接并向它们提供控制信号的控制器,所述控制器接收输入信号,并根据所述输入信号生成控制信号。
7.如权利要求6所述的IDCT机,其特征在于,所述IDCT处理器包括接收所述多个输入数据点和第一控制信号的加法器组,所述第一控制信号命令所述加法器组对输入数据点的选定组合执行加法;多个蝶式运算级;以及多个交叉路由,一种是设置在所述加法器组和第一蝶式运算级之间的交叉路由,一种是设置在连续蝶式运算级之间的交叉路由,其中,所述多个蝶式运算级接收第二控制信号,命令所述多个蝶式运算级对选定的至所述多个蝶式运算级的输入执行蝶式运算。
8.如权利要求7所述的IDCT机,其特征在于,用串行加法器和位串行乘法器实施所述加法器组和所述多个蝶式运算级。
9.如权利要求8所述的IDCT机,其特征在于,所述IDCT处理器还包括按字串行格式接收所述多个输入数据点,并按位串行格式向所述加法器组提供所述输入数据点的I/O缓存器组。
10.如权利要求9所述的IDCT机,其特征在于,所述IDCT处理器具有流水线结构,以便两IDCT处理器均并行活动。
11.如权利要求10所述的IDCT机,其特征在于,所述蝶式运算第一级总是处于启动状态。
12.如权利要求11所述的IDCT机,其特征在于,可利用屏蔽对所述位串行乘法器的所述被乘数进行编程。13.如权利要求12所述的IDCT机,其特征在于,所述IDCT机具有每一时钟周期输出一像素的吞吐速率。
14.如权利要求13所述的IDCT机,其特征在于,所述串行加法器和位串行乘法器具有大于8位的分辨率。
15.如权利要求14所述的IDCT机,其特征在于,所述串行加法器和位串行乘法器具有16位分辨率。
16.如权利要求15所述的IDCT机,其特征在于,所述存储器元件包括易位存储器。
17.一种执行数据块规模可变的2维IDCT变换的装置,其特征在于,包括执行多个输入数据点的1维IDCT变换的第一IDCT变换装置;存储所述第一IDCT变换装置输出的中间结果的存储装置;及执行所述中间结果的1维IDCT变换的第二IDCT变换装置;以及向所述第一IDCT变换装置、所述第二IDCT变换装置、和所述存储装置提供控制信号的控制装置,所述控制装置接收输入信号,根据所述输入信号生成所述控制信号。
18.如权利要求17所述的装置,其特征在于,所述IDCT变换装置包括接收多个输入数据点和第一控制信号的加法装置级,所述第一控制信号命令所述加法装置对输入数据点的选定组合执行加法;对成对输入数据执行蝶式运算的多级蝶式运算装置;在所述加法装置级和所述多级蝶式运算装置之间对信号进行路由选择的路由选择装置;其中,所述多级蝶式运算装置接收第二控制信号,命令所述多级蝶式运算装置对选定的至所述多级蝶式运算装置的成对输入执行蝶式运算。
19.一种变换机,其特征在于,包括第一变换处理器,所述第一变换处理器接收输入数据点;与所述第一处理器连接的存储器元件;与所述存储器元件连接的第二变换处理器;以及与所述第一变换处理器、所述第二变换处理器、和所述存储器元件连接并向它们提供控制信号的控制器,所述控制器接收输入信号,并根据所述输入信号生成控制信号。
20.如权利要求19所述的变换机,其特征在于,所述变换处理器包括多个蝶式运算级;和多个交叉路由,一交叉路由介于连续的蝶式运算级之间;其中,所述多个蝶式运算级接收第二控制信号,命令所述多个蝶式运算级对选定的至所述多个蝶式运算级的输入执行蝶式运算。
全文摘要
一种数据块规模可变的2-D IDCT机(10),可计算任意的变换混合。第一1-DIDCT处理器(20a)按列计算数据块的变换,并在易位存储器中存储中间结果。第二1-D IDCT处理器(20b)按行计算中间结果的变换。可通过使输入数据正确排序,在蝶式运算级前有选择地组合输入数据,并控制每一蝶式运算级的加法和乘法,来方便地进行不同的变换混合。按旁路方式设置不需要的蝶式运算。可利用串行加法器(56)和位串行乘法器实现蝶式运算,以大大简化硬件设计,减少连续的蝶式运算级间的路由选择需要。整体流水线结构使IDCT机将吞吐速率保持在每一时钟周期一像素。
文档编号G06F17/14GK1268231SQ98808477
公开日2000年9月27日 申请日期1998年8月24日 优先权日1997年8月25日
发明者K·D·伊斯顿 申请人:夸尔柯姆股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1