在图像处理期间执行二维变换的电路和方法

文档序号:1659251阅读:258来源:国知局
专利名称:在图像处理期间执行二维变换的电路和方法
技术领域
本发明涉及图像处理电路和技术,尤其涉及图像处理期间执行离散余弦反变换(IDCT)之类的二维变换的电路和方法。这种电路和方法能够比现有技术的电路和方法更高效率地执行IDCT。
人们通常希望减小压缩和解压缩图像数据的图像处理器的复杂性。由于图像数据经常是排列在二维(2-D)数据块中,因而处理器通常执行2-D数学功能以处理图像数据。不幸的是,一般需要具有相对复杂结构的处理器来执行这些复杂的图像处理功能。复杂的构造通常会增大处理器算术单元和它内部数据总线的尺寸,因而与标准处理器相比,增大了处理器的成本和总体尺寸。
一种有效减小图像处理器构造的复杂性的技术是把复杂的图形处理功能分解成一系列较简单构造能够执行的较简单的功能。例如,Masaki等的论文披露了一种将8点向量乘法分解成一系列4点向量乘法以简化2-D IDCT的技术,这篇论文结合于此作为参考“视频技术电路和系统”IEEE会刊,1995年10月第五号第五卷中的“离散余弦反变换器的VLSI实现和MPEG2 HDTV视频解码的运动补偿”。
不幸的是,尽管这种技术使得处理器能够具有比较简单的构造,但是它通常增大了处理器处理图像数据所需的时间。因此,一般规律是,处理器构造越简单,处理时间越慢,而处理器构造越复杂,处理时间越快。
为了帮助读者理解上面讨论的概念和以下本发明的说明书中所讨论的内容,下面是传统图像压缩/解压缩技术,2-DDCT功能和2-D及1-D IDCT功能基本概念,和用于简化1-D IDCT功能的Masaki技术的讨论。
为了通过比较低的带宽信道电子地发送比较高解析度的图像,或为了把这种图像电子地存储在比较小的存储空间中,通常需要压缩代表图像的数字数据。这种图像压缩一般涉及减少代表图像所需的数据比特的数量。例如,压缩高清晰度电视(HDTV)视频图像使它们能够通过现有电视频道传输。不进行压缩,HDTV视频图像将需要具有比现有电视频道带宽大得多的带宽的传输信道。此外,为了将数据业务量和传输时间减少到可接受的水平,可以在通过互联网发送图像之前压缩图像。或为了增大CD-ROM或服务器的图像存储容量,可以在存储图像之前压缩之。
参考

图1A-6,讨论现在流行的基于数据块的运动图像专家组(MPEG)压缩标准的基础,标准包括MPEG-1和MPEG-2。为了进行说明,讨论根据使用MPEG 4∶2∶0格式压缩在Y-CB-CR彩色空间表示的视频图像。但是,讨论的概念也适用于其它MPEG格式,以其它彩色空间表示的图像,以及适用于其它基于数据块的压缩标准,例如,通常用于压缩静止图像的联合照相专家组(JPEG)标准。此外,尽管为了简洁而省略了MPEG标准和Y-CB-CR色彩空间的许多细节,但这些细节是众所周知的,并且可以在大量可用参考资料中找到。
参考图1A-1D,MPEG标准经常用于压缩暂态图像序列——用于这里讨论的视频帧——例如,可以在电视广播中所见的视频帧。每个视频帧被分割成多个称为宏数据块的子区,每个宏数据块包括一个或多个像素。图1A是一个具有256个像素12的16像素乘16像素的宏数据块10(未按比例画出)。宏数据块10也可以具有其它尺度。在原始视频帧中,即,在压缩前的视频帧中,每个像素12具有各自的亮度值Y和各自的一对彩色差值,即,一对色差值CB和CR(“B”代表“蓝色”,“R”代表“红色”)。
在视频帧压缩之前,从原始帧的原始Y,CB和CR产生用于压缩的数字亮度(Y)和色差(CB和CR)值,即,预压缩值。在MPEG 4∶2∶0格式中,预压缩Y值与原始Y值相同。因此,每个像素12只是保持它的原始亮度值Y。但是,为了减少要压缩的数据量,MPEG 4∶2∶0格式仅允许每个四像素12的组14有一个预压缩CB值和一个预压缩CR值。预压缩CB和CR值的每一个是分别从对应的组14中的四个像素12的原始CB和CR值导出的。例如,预压缩CB值可以等于对应的组14中的四个像素12的原始CB值的平均值。因此,参考图1B-1D,针对宏数据块10产生的预压缩Y,CB和CR值被排列成一个预压缩Y值(等于像素12的原始Y值)的16×16矩阵16,一个预压缩CB值(等于每个四像素12的组14的一个导出CB值)的8×8矩阵18,和一个预压缩CR值(等于每个四像素12的组14的一个导出CR值)的8×8矩阵20。矩阵16,18和20通常被称为值的“数据块”。此外,由于MPEG标准需要执行有关像素值的8×8数据块的压缩变换,而不是有关16×16数据块的变换,因此,将预压缩Y值的数据块16再细分成四个8×8数据块22a-22d,这四个数据块分别对应于宏数据块10中的8×8像素数据块A-D。因此,参考图1A-1D,为每个宏数据块10产生了六个预压缩像素数据的8×8数据块四个预压缩Y值的8×8数据块22a-22d,一个预压缩CB值的8×8数据块18,和一个预压缩CR值的8×8数据块20。
图2是一个更常被称为编码器的MPEG压缩器30的方框图。编码器30一般将一个帧或一个帧序列的预压缩数据转换成代表具有比预压缩数据显著减少的数据比特的相同的一个帧或多个帧的编码数据。为了执行这种转换,编码器30减少或删除预压缩数据中的冗余数据,并利用有效变换和编码技术重新格式化其余的数据。
更具体地讲,编码器30包括一个帧序重排缓冲器32,帧序重排缓冲器32接收一个或多个视频帧的一个序列的预压缩数据,并在一个用于编码的适当的序列中重新给帧排序。重排序的帧序列一般与其中产生出帧并显示该帧的序列不同。编码器30将每个存储的帧分配到一个对应的组,称为图像组(GOP),并且把每个帧标记为一个内(Ⅰ)帧(intra frame)或非内(non-Ⅰ)帧。例如,每个GOP可以包括三个Ⅰ帧和十二个non-Ⅰ帧,总共十五个帧。编码器30总是编码一个Ⅰ帧的宏数据块,而不考虑其它的帧,但是可以并且通常的确是参考GOP中一个或多个其它帧编码一个non-Ⅰ帧的宏数据块。然而,编码器30不参考不同GOP中的一个帧编码non-Ⅰ帧的宏数据块。
参考图2和3,在一个Ⅰ帧的编码过程中,代表Ⅰ帧的预压缩Y,CB和CR值的8×8数据块(图1B-1D)通过一个加法器34到达一个离散余弦变换器(DCT)36,DCT36将像素值的这些数据块变换成一个DC(零频率)变换值D00和六十三个AC(非零频率)变换值D01-D77的对应8×8数据块。参考图3,这些DCT变换值排列在一个8×8变换数据块37中,它对应于预压缩像素值的一个数据块,例如,图1B-1D的预压缩数据块中的一个。例如,数据块37可以包括对应于图1B的预压缩数据块22a中预压缩亮度值Y(0,0)A-Y(7,7)A的亮度变换值DY00-DY77。此外,由于编码器30不使用加法器34编码Ⅰ帧,因而预压缩Y,CB和CR值通过加法器34而不与任何其它值相加。但是,如下面将讨论的,编码器30使用加法器34运动编码non-Ⅰ帧的宏数据块。
参考图2和4,量化器和折线扫描器38把来自DCT36的每个变换值D限制到各自的最大值,并且以一种折线方式在各自路径40和42上提供量化的AC和DC变换值。图4是一个量化器和折线扫描器38能够实现的一种折线扫描方式43的示例。更具体地讲,量化器和折线扫描器38以指定的顺序在各自路径40和42上提供来自变换数据块37(图3)的变换值D。也就是说,量化器和折线扫描器38首先在路径42上提供“0”位置上的变换值D,即,D00。接着,量化器和扫描器38在路径40上提供“1”位置上的变换值D,即,D01。然后,量化器和扫描器38在路径40上提供“2”位置上的变换值D,即,D10,以此类推,直到最后它在路径40上提供“63”位置上的变换值D,即,D77。这样的折线扫描方式减少了代表编码图像数据所需的比特数,因而提高了编码器30的编码效率。尽管讨论了一种特定的折线扫描方式,但量化器和扫描器38可以根据编码技术和编码的图形类型使用其它扫描图形。
再参考图2,一个预测编码器44预测地编码DC变换值,并且一个可变长度编码器46把量化AC变换值和量化及预测编码的DC变换值转换成霍夫曼码之类的可变长度码。这些代码形成了代表已编码的Ⅰ帧像素值的编码数据。
一个发送缓冲器48暂存这些代码,以便能够把编码数据同步发送到一个解码器(以下结合图5讨论)。另外,如果准备存储编码数据而不是发送,则编码器46可以把可变长度码直接提供到一个CD-ROM之类的存储介质。
一个速率控制器50保证通常以固定速率发送编码帧数据的发送缓冲器48不会上溢或清空,即,下溢。如果产生这两种情况的任何之一都可能在编码数据流中导致错误。例如,如果缓冲器48上溢,将丢失来自编码器46的数据。因此,速率控制器50利用反馈,根据发送缓冲器48的充满度而调节量化器和折线扫描器38使用的量化比例因数。具体地讲,缓冲器48越满,控制器50使比例因数越大,编码器46产生的数据比特越少。相反,缓冲器48越空,控制器50使比例因数越小,编码器46产生的数据比特越多。这种连续调节保证了缓冲器48既不会上溢也不会下溢。
还是参考图2,编码器30利用一个去量化器和逆折线扫描器52,一个逆DCT54,一个加法器56,一个基准帧缓冲器58,和一个运动预测器60运动编码non-Ⅰ帧的宏数据块。
图5是一个现有MPEG解压缩器62的方框图,解压缩器62通常称为解码器并且可以对图2的编码器30编码的帧解码。
参考图5和6,对于Ⅰ帧和不是运动预测的non-Ⅰ帧的宏数据块,用一个可变长度解码器64解码从编码器30接收的可变长度码。一个预测解码器66解码预测编码的DC变换值,和一个与图2的去量化器和逆扫描器52类似或相同的去量化器和逆折线扫描器67去量化和重排解码的AC和DC变换值。一个与图2的逆DCT 54类似或相同的逆DCT68将去量化变换值变换为逆变换(IDCT)值,即,复原像素值。图6是逆变换值100-I77的一个8×8逆变换数据块70,它是逆DCT68从变换值D00-D77的数据块37(图3)产生的。例如,如果数据块37对应于预压缩亮度值YA的数据块22a(图1B),那么逆变换值100-I77是8×8数据块A(图1)中的像素的解码亮度值。但是,由于量化和去量化造成的信息丢失,逆变换值Ⅰ通常与它们代表的对应预压缩像素值不同。幸好,这些丢失一般很少而不会对解码视频帧造成可见劣变。
仍然参考图5,来自逆DCT68的解码像素值通过一个加法器72——在如以下讨论的non-Ⅰ帧的运动预测宏数据块的解码期间使用的——进入一个帧序重排缓冲器74,帧序重排缓冲器74存储解码帧,并以在视频显示单元76上显示的适当顺序排列。如果一个解码帧也被用作运动预测目的的基准帧,那么该解码帧也被存储在基准帧缓冲器78中。
解码器62利用运动内插器80,预测编码器66,和基准帧缓冲器78解码non-Ⅰ帧的运动编码宏数据块。
参考图2和5,尽管被描述为包括多个功能电路模块,但可用硬件,软件或它们的组合来实现编码器30和解码器62。例如,设计者经常用执行上述电路块的各个功能的各自的处理器实现编码器30和解码器62。
图2和5的MPEG编码器30和MPEG解码器62、运动编码和解码以及通常的MPEG标准的更详细的讨论分别存在于许多出版的文献中,包括Peter D.Symes,McGraw-Hill在1998年所写的“视频压缩”,该文献结合于此作为参考。此外,还有许多已知的基于数据块的压缩技术可用于编码和解码视频帧和静止图像。离散余弦变换和离散余弦反变换下面的方程式给出了2-D DCT F(v,u)1)F(v,u)=2NC(v)C(u)Σy=0N-1Σx=0N-1f(y,x)cos((2x+1)vΠ16)cos((2x+1)uΠ16)]]>C(v)=12]]>对于v=0,C(v)=1否则C(u)=12]]>对于u=0,C(u)=1否则其中v和u分别是对应变换数据块的行和列。例如,如果F(v,u)代表变换值的数据块37(图3),那么F(1,3)=D13。类似地,f(y,x)是对应预压缩数据块的行y,列x中的像素值。例如,如果f(y,x)代表预压缩亮度值的数据块22a(图1B),那么f(0,0)=Y(0,0)A。因此,每个变换值F(v,u)取决于对应预压缩数据块中的所有像素值f(y,x)。
下面的方程式给出了F(v,u)的2-D矩阵形式2)F(v,u)=f·Rvu其中f是一个包括像素值f(y,x)的2-D矩阵,Rvu是一个可以从方程式(1)计算出的并且对于每个对应的座标对v和u是唯一的2-D矩阵。
下面的方程式给出IDCT f(y,x),它只是DCT F(v,u)的逆变换3)f(y,x)=2NΣv=0N-1Σu=0N-1C(v)C(u)F(v,u)cos((2y+1)vΠ2N)cos((2x+1)uΠ2N)]]>C(u)=12]]>对于u=0,C(u)=1否则C(v)=12]]>对于v=0,C(v)=1否则其中y和x分别是逆变换数据块的行和列。例如,如果f(y,x)代表逆变换值的数据块70(图6),那么f(7,4)=I74。
下面方程式给出了f(y,x)的2-D矩阵形成4)f(y,x)=F·Ryx其中F是包括变换值F(v,u)的一个2-D矩阵,Ryx是一个可以从方程式(3)计算出的并且对于每个对应座标对y和x是唯一的一个2-D矩阵。
为了简化方程式(3)和(4)的2-D IDCT,可以将f(y,x)的每个分别的行表示为一个1-D变换,并把f(y,x)作为一系列1-D IDCT计算。下面的方程式给出了1-D IDCT5)fy(x)=2NΣu=0N-1C(u)Fv(u)cos((2x+1)uΠ2N)|x=0,...,7y=v=rcw#]]>为了举例说明,讨论利用1-D IDCT方程式(5)从数据块37的变换值D00-D77(图3)计算数据块70的逆变换值I00-I77(图6)。下面的方程式给出了各自以数学形式表示的8×8数据块37和70的8×8矩阵F和f6)F=F(v,u)F7(u):F0(u)=F1(u)D07D06D05D04D03D02D01D00D17D16D15D14D13D12D11D10........................D77D76D75D74D73D72D71D70]]>7)f=f(y,x)f7(x):f0(x)=f1(x)I07I06I05I04I03I02I01I00I17I16I15I14I13I12I11I10........................I77I76I75I74I73I72I71I70]]>F0(u)-F7(u)是矩阵F的行,因而代表数据块37的各行,f0(x)-f7(x)是矩阵f的行,因而代表数据块70的各行。
首先,根据下面的方程式计算用1-D变换f′v(x)表示的中间逆变换值I′的中间8×8数据块,下面的方程式是矩阵形式的方程式(5)8)f′0(x)=Ryv·F0(u)R07R06R05R04R03R02R01R00R17R16R15R14R13R12R11R10........................R77R76R75R74R73R72R71R70·D00D01D02D03D04D05D06D07]]>f′1(x)=Ryv·F1(u):
.
f′7(x)=Ryv·F7(u)Ryv是一个可以从方程式(5)计算的并且对于每个对应的座标对y和v是唯一的2-D矩阵。因此,下面的方程式给出了中间矩阵f′ 为了计算数据块70(图6)的逆变换值I00-I77的最后矩阵f,转置中间矩阵f′,以获得f′T,用f′T的行f′T0(x)-f′T7(x)替代方程式(8)中的变换行F0(u)-F7(u),然后重新计算方程式(8)。下面的方程式给出了f′T 方程式(10)中的逆变换值I′的下标座标与方程式(9)中的相同,以清楚地显示出该转置。即,方程式(10)的I′10对于方程式(9)的I′10。因此,为了对一个矩阵转置,只要把矩阵中的行与对应的列互换。例如,f′的第一行成为f′T的第一列,f′的第二行成为f′T的第二列,等等。下面的方程式示出了逆变换矩阵f的计算 f′1(x)=Ryv·f′T1(x)f′7(x)=Ryv·f′T7(x)因此,方程式(11)给出了数据块70(图6)的逆变换值I00-I77。
参考方程式(8)-(11),尽管将2-D IDCT分解成两个1-D IDCT系列而简化其数学运算,但是这些方程式仍然涉及了用于将变换值的8×8数据块37(图3)转换成逆变换值的8×8数据块70(图7)的大量8-点-向量乘8-点-向量乘法。例如,一个8-值矩阵行乘8-值矩阵列(例如,方程式(11))是一个8-点-向量乘法。不幸的是,处理器一般需要相对复杂的结构来处理这种大小的向量乘法。Masaki的IDCT技术如他的论文中所述,Masaki通过将8-点-向量乘法分解成4-点-向量乘法进一步简化了1-D IDCT方程式(8)-(11)。这将实现该处理器具有比较简单的结构,而能够将变换值的数据块37(图3)转换成逆变换值的数据块70(图7)。
下面的方程式给出了可以用其从方程式(9)的矩阵计算出中间逆变换值I′00-I′77的第一行的偶数和奇数Masaki值de和do的第一行12)QDe=de00de01de02de03·Me3Me2Me1Me0Me7Me6Me5Me4MebMeaMe9Me8MefMeeMedMec·Do0Do2Do4Do6]]>PDo=do00do01do02do03=Mo3Mo2Mo1Mo0Mo7Mo6Mo5Mo4MobMoaMo9Mo8MefMeeMedMec·Do1Do3Do5Do7]]>D00-D07是变换数据块37的第一行中的值,Me0-Mef是偶数Masaki系数,Mo0-Mof是奇数Masaki系数。在Masaki论文中给出了偶数和奇数Masaki系数值,结合于此作为参考。可以用相同的方式计算Masaki值的剩余行——七行,对应数据块37中的变换值的每一剩余行。
根据下面的方程式可以从方程式(12)的偶数和奇数Masaki值de和do计算中间逆变换值I′00-I′0713)I00′I01′I02′I03′=1/2PDo+1/2QDe=(PDo+QDe)2]]>I07′I06′I05′I04′=1/2PDo-1/2QDe=(PDo-QDe)2]]>以相似的方式计算中间逆变换值I′的剩余行。
图7是通过由方程式(13)代表的Masaki方程组产生的值I′的数据块82。因此,每一行中的最后四个值,即,I′y4-I′y7是相反的顺序。
参考图8,通过以适当的顺序放置I′y4-I′y7可以产生值I′的恰当排序的数据块84。不幸的是,这种重排序要花费相当长的处理时间。
接下来,参考图9,用结合方程式(9)和(10)说明的相同的方式,可以通过对数据块84(图8)进行转置而产生转置数据块86,并且用转置数据块86的对应行替代方程式(12)中的变换值D00-D07的行,计算最终逆变换值Iyx。
但是参考图10,方程式(12)需要将变换值D的行分离成偶数组D00,D02,D04和D06和奇数组D01,D03,D05和D07。因此,也必须将中间逆变换值I′的行分离成相应的偶数组I′y0,I′y2,I′y4和I′y6,以及奇数组I′y1,I′y3,I′y5和I′y7。因此,要执行对于数据块86(图9)的这种偶数-奇数分离,以产生中间值I′的偶数-奇数分离的数据块88。用数据块88的对应的行替代方程式(12)中的变换值D00-D07的行,可以产生中间Masaki向量P′Do和 Q′De,和根据下面的方程式产生最终逆变换值I14)I00I01I02I03=1/2P′Do+1/2Q′De=(P′Do+Q′De)2]]>I07I06I05I04=1/2P′Do-1/2Q′De=(P′Do-D′De)2]]>参考图11,针s对中间Masaki向量的每一集而应用方程式(14)产生一个数据块90,数据块90中每一行中的最后四个逆变换值Iy4-Iy7是反顺序的。因此,通过以适当顺序放置Iy4-Iy7可以产生恰当排序的数据块70(图3)。不幸的是,这种重排序要花费相当长的处理时间。
因此,尽管Masaki技术可以通过将8-点-向量乘法分解成4-点-向量乘法而简化处理器构造,但是由于Masaki技术的耗费时间的数据块转置和重排序,它一般需要比比8-点技术更长的处理时间。
根据本发明的一个方面,一种图像解码器包括一个存储器和一个耦合到存储器的处理器。处理器可操作地将中间值的一列作为中间值的一行存储在存储器中,组合存储的行内的中间值,以产生得到值的一列,并将得到值作为得到值的一行存储在存储器中。
这样一种图像解码器可以把Masaki值存储在一个存储寄存器中,从而当处理器组合这些值以产生中间逆变换值时,它能够以转置的方式存储这些值。因此,这样一种图像解码器通过把值I′的产生和转置组合在一个单一步骤中而减少了图像处理时间。
在本发明的一个有关方面,中间值包括一个第一偶数位置偶数中间值,和一个奇数位置偶数中间值,一个第二偶数位置偶数中间值,一个第一偶数位置奇数中间值,一个奇数位置奇数中间值,和一个第二偶数位置奇数中间值。处理器把第一偶数位置偶数中间值和第一偶数位置奇数中间值存储在第一对相邻存储单元中。处理器也把第二偶数位置偶数中间值和第二偶数位置奇数中间值存储在第二对相邻存储单元中,第二对存储单元与第一对存储单元相邻。
这样一种图像解码器可以将Masaki值存储在一个存储寄存器中,从而当处理器组合这些值以产生中间逆变换值时,它可以以转置和偶-奇分离的方式存储这些值。因此,这种图像解码器通过把值I′的产生、转置和偶-奇分离组合在一个单一步骤中而减少了图像处理时间。
图1A是图像中像素的惯用宏数据块的示意图;图1B是分别对应于图1A的宏数据块中的像素的预压缩亮度值的惯用数据块的示意图;图1C和1D是分别对应于图1A的宏数据块中的像素组的预压缩色度值的惯用数据块的示意图;图2是一个惯用MPEG编码器的方框图;图3是一个图2编码器产生的变换值数据块;图4是图2的量化器和折线扫描器实现的惯用折线扫描方式;图5是一种惯用MPEG解码器的方框图;图6是图5的解码器产生的逆变换值数据块;图7是根据Masaki技术的中间逆变换值数据块;图8是一个具有顺序排列的行中的图7的中间逆变换值的数据块;图9是一个具有转置排列的图8的中间逆变换值的数据块;图10是一个具有以偶-奇分离排列的图9的中间逆变换值的数据块;图11是根据Masaki技术的最终逆变换值的数据块;图12是根据本发明的一个实施例的图像解码器的方框图;图13是根据本发明的一个实施例的图12的处理器的方框图;图14A示出了根据本发明的一个实施例的图13的处理器执行的成对加法运算;图14B示出了根据本发明的一个实施例的图13的处理器执行的成对减法运算;图15示出了根据本发明的一个实施例的图13的处理器执行的寄存器映射功能;图16示出了根据本发明的一个实施例的图13的处理器执行的双-4-点向量乘法功能;图17示出了根据本发明的一个实施例的图13的处理器执行的隐含矩阵转置功能;和图18示出了根据本发明的一个实施例的图13的处理器执行的隐含矩阵转置和偶奇分离功能。
图12是根据本发明的一个实施例的一个图像解码器100的方框图。解码器100通过如同以下结合图17所述的在同一步骤中计算和转置中间逆变换值I′显著地减少了Masaki IDCT时间。即,解码器100直接从方程式(13)产生转置的值I′的数据块86(图9),因而省略了数据块82(图7)和84(图8)的产生。解码器100通过如同以下结合图18所述的在同一步骤中计算、转置和偶-奇分离中间逆变换值I′可以进一步减少Masaki的IDCT转换时间。即,解码器100直接从方程式(13)产生转置的值I′的数据块88(图10),因而省略了数据块82,84和86的产生。
解码器100包括一个输入缓冲器102,一个处理器单元104,和一个任选帧缓冲器106。输入缓冲器102接收和存储代表一个或多个编码图像的编码数据。处理器单元104包括一个用于解码该已编码图像数据的处理器108,并且包括一个存储器110。如果接收的编码图像数据代表视频帧,那么解码器100包括用于把来自处理单元104的解码帧以适当的存储或显示顺序存储的任选帧缓冲器106。
图13是根据本发明的一个实施例的处理器108(图12)的计算单元112的方框图。单元112包括两个相同的计算组件114a和114b,它们一般是并行操作的。为了简洁,仅讨论组件114a的结构和操作,应当知道组件114b的结构和操作是相似的。此外,组件114a和114b可以包括为了简洁而从图13中省略的附属电路。
在一个实施例中,组件114a包括一个整数计算单元(I-单元)116a,和一个整数浮点图形计算单元(IFG-单元)118a。I-单元116a执行存储器装载和存储器存储操作,和有关32位整数据的简单算术运算。IFG-单元118a进行有关64位数据的操作,并能够执行适用于多媒体和3-D图形应用的复数数学运算。组件114a还包括一个具有三十二个64位寄存器Reg0-Reg31的寄存器堆120a。I-单元116a和IFG-单元118a可以存取这些寄存器中的每一个,作为各自的上和下32位分区,并且IFG-单元118a也可以存取这些寄存器中的每一个作为一个单一64位分区。I-单元116a经过32位总线124a和126a接收来自寄存器堆120a的数据,和经过一个32位总线128a向寄存器堆120a提供数据。类似地,IFG-单元118a经过64位总线130a,132a和134a接收来自存储器堆120a的数据,并经过64位总线135a向寄存器堆120a提供数据。
仍然参考图13,在另一个实施例中,组件114a包括一个128位分区的长常数(PLC)寄存器136a,和一个128位分区的长变量(PLV)寄存器138a。PLC和PLV寄存器136a和138a提高了组件114a的计算能力,而不显著增大它的尺寸。寄存器136a和138a分别经过总线132a和134a接收来自寄存器堆120a的数据,和分别经过128位总线140a和142a向IFG单元118a提供数据。在IFG-单元118a在致使IFG-单元118a产生一个32位或64位结果并把结果存储在寄存器Reg0-Reg31之一中的特定多媒体指令的执行过程中,它一般对存储在寄存器136a和138a中的数据进行操作。此外,这些特定指令可以使寄存器堆120a修改寄存器138a的内容。
在一个实施例中,在存储器108(图12)与PLC和PLV寄存器136a和138a之间没有直接通路。因此,组件114a在IFG-单元118a对它们的内容操作之前从寄存器堆120a初始化这些寄存器。尽管初始化这些寄存器所需的额外时钟周期可能看上去是低效率的,但大部分多媒体应用程序通过在重新装载寄存器136a和138a之前将存储在这些寄存器中的数据用于几种不同的操作而使这种额外开销减到最小。此外,一些指令致使组件114a在执行另一种操作的同时更新PLV寄存器138a,因而省去了装载或重新装载寄存器138a所需的额外时钟周期。
图14A示出了根据本发明的一个实施例的图13的组件114a能够执行的成对加法运算。为了举例说明,寄存器堆120a的Reg0(图13)存储四个16位的值a-d,而Reg1存储四个16位的值e-h。IFG-单元118a分别相加Reg0和Reg1的相邻分区的内容,并且在一个时钟周期中将得到的和装载到Reg2的对应16位分区中。具体地讲,单元118a将a和b相加,并把结果a+b装载到Reg2的第一16位分区中。同样地,单元118a将c和d,e和f,以及g和h相加,并把得到的和c+d,e+f和g+h分别装载到Reg2的第二,第三和第四分区中。此外,单元118a可以在把它们存储到Reg2的对应分区中之前用2除每个得到的和a+b,c+d,e+f和g+h.。单元118a将每个得到的和向右移动一位,以执行这个除法。
图14B示出了根据本发明的一个实施例的图13的组件114a能够执行的成对减法运算。Reg0存储四个16位的值a-d,而Reg1存储四个16位的值e-h。IFG-单元118a从相邻分区的内容减去一个分区的内容,并在一个时钟周期中将所得的差装载到Reg2的对应16位分区中。具体地讲,单元118a从a减去b,并把结果a-b装载到Reg2的第一16位分区中。类似地,单元118a从c减去d,从e减去f,和从g减去h,并分别把所得的差a-b,c-d,e-f和g-h装载到Reg2的第一,第二,第三和第四分区中。此外,单元118a可以在把它们存储在Reg2的对应分区之前,可以用2除每个所得的差a-b,c-d,e-f和g-h。单元118a将所得的差向右移动一位,以执行这个除法。
参考图14A和14B,尽管Reg0,Reg1和Reg2被示为分割成16位的分区,但在其它实施例中,IFG-单元118a在具有其它尺寸的分区上执行成对加法和减法运算。例如,可以把Reg0,Reg1和Reg2分割成八个8位的分区,两个32位的分区,或十六个4位的分区。此外,IFG-单元118a可以利用不是Reg0,Reg1和Reg2的寄存器执行成对加法和减法运算。
如以下结合图16-18讨论的,成对加法和减法以及用2除的特征使得IFG-单元118a能够如方程式(13)和(14)中所示,从Masaki值计算中间和最终逆变换值I′和I。
图15示出了根据本发明的一个实施例的图13的组件114a能够执行的映射操作。例如,一个源寄存器Reg0被分割成八个8位的分区0-7,并且包含组件114a要映射到一个目的寄存器Reg1的数据,目的寄存器Reg1也被分割成八个8位的分区0-7。一个控制寄存器Reg2的一个32位的分区(为了简明起见,仅示出一个32位分区)被分割成八个4位的分区0-7,并且包含控制从源寄存器Reg0到目的寄存器Reg1的数据映射的标识值。具体地讲,控制寄存器Reg2的每个分区对应于目的寄存器Reg1的一个对应分区,并且包含一个标识目的寄存器Reg1的对应分区要从其接收数据的源寄存器Reg0的分区的对应标识值。例如,控制寄存器Reg2的分区0对应于目的寄存器Reg1的分区0,并且包含一个标识值“2”。因此,如这两个分区之间的对应指针所指示,组件114a把源寄存器Reg0的分区2的内容装载到目的寄存器Reg1的分区0中。类似地,控制控制寄存器Reg2的分区1对应于目的寄存器Reg1的分区1,并且包含标识值“5”。因此,组件114a把源寄存器Reg0的分区5的内容装载到目的寄存器Reg1的分区1。组件114a也可以把源分区之一的内容装载到多个目的分区中。例如,控制寄存器Reg2的分区3和4都包括标识值“6”。因此,组件114a把源寄存器Reg0的分区6的内容装载到目的寄存器Reg1的分区3和4中。此外,组件114a可能不把一个源分区的内容装载到任何目的分区。例如,没有控制寄存器Reg2的分区包含标识值“7”。因此,组件114a不把源寄存器Reg0的分区7的内容装载到目的寄存器Reg1的一个分区中。
如以下结合图17-18所讨论的,组件114a执行执行映射操作以给数据块90(图11)中的逆变换值I重新排序,获得数据块70(图3)。
图16示出了根据本发明的一个实施例的组件114a(图13)可以执行的4点向量乘积运算。组件114a把两个4点向量从寄存器堆120a装载到PLC寄存器136a,并且把两个4点向量装载到寄存器PLV138a,其中每个向量值是16位。例如,在第一时钟周期中,组件114a把数据块37(图3)中的变换值的偶-奇分离第一行D00,D02,D04,D06,D01,D03,D05和D07如图所示地装载到PLC寄存器136a中。在一个第二时钟周期中,组件114a把Masaki的四个16位偶常数的第一行(方程式(12))和Masaki的四个16位奇常数的第一行如图所示地装载到PLV寄存器138a中。在一个第三时钟周期,IFG-单元118a把寄存器136a和138a的每个对应的分区对的内容相乘,相加对应的乘积,并把结果装载到Reg0的32位分区中(为了简洁,仅示出一个32位分区)。即,单元118a将D00乘以Me3,D02乘以Me2,D04乘以Me1,D06乘以Me0,D01乘以M03,D03乘以M02,D05乘以Mo1,和D07乘以M00,相加乘积D00×Me3,D02×Me2,D04×Me1,D06×Me0以产生偶数Masaki值de00,相加乘积D01×M03,D03×M02,D05×Mo1和D07×Mo0以产生奇数Masaki值do00,并把de00和do00装载到Reg0的32位分区的各自的一半中。如下面结合图17和18所讨论的,单元118a可以在Reg0上利用成对加法和减法以及用2除运算(图14A-14B),产生方程式(13)的中间逆变换值I′00和I′07。
参考图13和16,由于组件114a和114b都可以同时进行四个4点向量乘法运算,因而,根据本发明的一个实施例,计算单元112可以在五个时钟周期中计算两行变换值D的QDe和PDo(方程式(13))。在第一时钟周期中,组件114a和114b分别把变换值D的第一偶-奇分离行装载到PLC寄存器136a,和把变换值的第二偶-奇分离行装载到PLC寄存器136b。(处理器108利用映射操作或如下面讨论的那样,偶-奇分离变换值。)在第二时钟周期中,组件114a和114b分别将偶数和奇数Masaki常数的第一行(Me0-Me3和Mo0-M03)装载到PLV寄存器138a和138b中,并且如前面所讨论的,分别计算de00和do00,以及de10和do10。在第三时钟周期中,组件114a和114b把偶数和奇数Masaki常数的第二行(Me4-Me7和Mo4-Mo7)分别装载到PLV寄存器138a和138b中,并分别计算de01和do01,以及de11和do11。在第四时钟周期中,组件114a和114b把偶数和奇数Masaki常数的第三行(Me8-Meb和Mo8-Mob)分别装载到PLV寄存器138a和138b中,并分别计算de02和do02,以及de12和do12。在第五时钟周期中,组件114a和114b把偶数和奇数Masaki常数的第四行(Mec-Mef和Moc-Mof)分别装载到PLV寄存器138a和138b中,并分别计算de03和do03,以及de13和do13。因而,计算单元112可以比Masaki说明的现有处理电路更快地计算QDe和PDo。
在一个实施例中,为了节省计算QDe和PDo期间的处理时间,处理器108(图12)在图像数据的逆折线扫描期间,为了与方程式(12)一致,偶-奇分离变换数据块37(图3)的行。例如,处理器108当它从输入缓冲器102读出这一行时,以偶-奇分离的顺序存储第一变换行,即,D00,D02,D04,D06,D01,D03,D05和D07。因此,处理器108实现了一种以偶-奇分离顺序存储数据块37的行的逆折线扫描。由于处理器108执行了逆折线扫描,因此偶-奇分离技术并不增加额外的处理时间。相反,映射的执行的确增加处理时间。
图17和18示出了用于存储Masaki值从而使计算单元112能够直接从单元112对Masaki值进行的成对加法和减法以及用2除运算产生转置数据块86(图9)或转置和偶-奇分离的数据块88(图10)的技术。因此,这些技术与用分离步骤进行重排序(分别重排序图7和8的数据块82和84)、转置和偶-奇分离的现有技术相比节省了大量的处理时间。
图17示出了根据本发明的一个实施例的计算单元112执行的隐含数据块转置。如前面所讨论的,这种隐含转置使得单元112能够直接从成对加法和减法以及用2除运算(方程式(13)和(14))产生值I′的转置数据块86(图9)。方括号代表寄存器堆120a的64位寄存器,圆括号代表这些寄存器的各32位分区。此外,Masaki值的双下标指示在它们自身行内的它们的位置,和标识它们从中产生的变换值D的行。例如,de00是在从数据块37(图3)的第一行变换值D00-D07产生的Masaki值的行中的第一偶数Masaki值,即QDe。同样地,de10是从数据块37的第二行变换值D10-D17产生的Masaki值的行中的第一偶数Masaki值。
仍然参考图17,计算单元112通过把由4点向量乘法运算产生的de和do的组合存储在寄存器Reg的适当32位分区中隐含地产生转置数据块86(图9)。具体地讲,如前面结合图16所讨论的,组件114a和114b把对应的de和do对存储在各自的32位寄存器分区中。一个对的半和(由成对加法并用2除运算产生的)产生一个中间或最终逆变换值,同一对的半差(由成对减法并用2除运算产生的)产生另一个中间或最终逆变换值。例如,单元112把do00和de00存储在寄存器Reg0的一个32位分区170中,并把do10和de10存储在寄存器Reg0的一个第二分区172中。因此,它们各自的半和产生I′00和I′10,而它们各自的半差产生I′07和I′17。参考图9,这些值分别是转置数据块86的第一和最后一行中的第一和第二值I′。由于希望把值存储在同一寄存器的同一行中,单元112将I′00和I′10存储在寄存器Reg1的分区174中,而把I′07和I′17存储在寄存器Reg2的分区176中。单元112如图所示将其它de和do对装载到分区中,并且执行成对加法和减法并用2除运算,以把所得的中间逆变换值I′存储到如图所示的对应寄存器中。因此,单元112把转置数据块86的每一半行存储在对应的寄存器中。例如,数据块86的第一行的第一半,即,I′00-I′30存储在Reg1中。类似地,这个第一行的后半行,即,I′40-I′70存储在寄存器Reg3中。因此,单元112在产生值I′的相同周期中有效地转置数据块84,以产生数据块86。由于单元112计算和存储值I′,因而单元112无需额外的周期来进行隐含转置。
接下来,计算单元112映射操作,以偶-奇分离数据块86(图9)的行,因而产生转置偶-奇分离的数据块88(图10)。
图18示出了根据本发明的一个实施例的计算单元112执行的隐含数据块转置和偶-奇分离。这种隐含转置和偶-奇分离使得单元112能够直接从成对加法和减法以及用2除运算(方程式(13)和(14))产生值I′的转置和偶-奇分离的数据块88(图10)。
具体地讲,除了在图17中把Masaki值以不同的顺序存储之外,结合图18说明的技术与前面结合图17所述的技术类似。例如,单元112把do00和de00存储在Reg0的32位分区170中,而把do20和de20存储在Reg0的第二分区172中。因此,它们各自的半和产生I′00和I′20,而它们各自的半差产生I′07和I′27。参考图10,这些值分别是转置数据块88的第一和最后行中的第一和第二值I′。由于希望把值存储在同一寄存器中的同一行中,因而单元112把I′00和I′20存储在Reg1的分区174中,而把I′07和I′27存储在Reg2的分区176中。单元112如图所示把其它de和do对存储在各分区中,并执行成对加法和减法以及用2除运算,以把所得的中间逆变换值I′存储在如图所示的对应寄存器中。因此,单元112把转置的数据块88的每个半行存储在一个对应的寄存器中。例如,数据块88的第一行的第一半,即,I′00,I′20,I′40和I′60存储在Reg1中。类似地,第一行的后半行,即,I′10,I′30,I′50和I′70存储在Reg3中。因此,单元112在产生值I′的相同周期中有效地移和偶-奇分离了数据块84(图8),以产生数据块88。由于单元112总是计算和存储值I′,因而单元112无需额外的周期进行隐含转置和偶-奇分离。
参考图17和18,在计算单元112(图13)产生了数据块88(图10)之后,它用数据块88的行替换方程式(12)中的值D的行,并产生了根据方程式(14)的最终逆变换值的数据块90(图11)。然后,单元112执行映射操作,以重排序数据块90的行,产生数据块37(图30)的行。然后,处理器108(图12)将数据块37与解码的图像的其它解码数据块一同存储。
从上述说明中可以知道,尽管为了说明的目的在这里解释了本发明的特定实施例,但可以进行各种修改而不脱离本发明的精神和范围。例如,上述技术可以用来加快DCT的速度。
权利要求
1.一种图像解码器,包括存储器;和耦合到存储器的处理器,并且可操作用于把一列中间值作为一行中间值存储在存储器中,组合存储的行中的中间值以产生一列结果值,和把结果值作为一行结果值存储在存储器中。
2.根据权利要求1所述的图像解码器,其中中间值包括Masaki值。
3.根据权利要求1所述的图像处理电路,其中存储器包括第一和第二存储单元行;和处理器可操作用于把中间值存储在第一存储单元行,和把结果值存储在第二存储单元行。
4.根据权利要求1的所述的图像处理电路,其中处理器可以操作用于产生中间值的列。
5.根据权利要求1所述的图像解码器,其中中间值包括偶数位置偶数中间值,和奇数位置偶数中间值,偶数位置奇数中间值,和奇数位置奇数中间值;行具有多个存储单元;和处理器可操作用于把偶数位置偶数中间值和偶数位置奇数中间值存储在对应的相邻存储单元中;和把奇数位置偶数中间值和奇数位置奇数中间值存储在对应的相邻存储单元中。
6.根据权利要求1所述的图像解码器,其中中间值包括偶数位置偶数中间值,奇数位置偶数中间值,偶数位置奇数中间值,和奇数位置奇数中间值;行具有多个存储单元;和处理器可操作用于把偶数位置偶数中间值和偶数位置奇数中间值存储在第一对相邻存储单元中,和把奇数位置偶数中间值和奇数位置奇数中间值存储在第二对相邻存储单元中,第二对存储单元与第一对存储单元相邻。
7.根据权利要求1所述的图像解码器,其中中间值包括第一偶数位置偶数中间值,奇数位置偶数中间值,第二偶数位置偶数中间值,第一偶数位置奇数中间值,奇数位置奇数中间值,和第二偶数位置奇数中间值;行具有多个存储单元;和处理器可操作用于把第一偶数位置偶数中间值和第一偶数位置奇数中间值存储在第一对相邻存储单元中,把第二偶数位置偶数中间值和第二偶数位置奇数中间值存储在第二对相邻存储单元中,第二对存储单元与第一对存储单元相邻,和把奇数位置偶数中间值和奇数位置奇数中间值存储在第三对相邻存储单元中。
8.根据权利要求1所述的图像解码器,其中结果值包括各自的部分逆变换值。
9.一种图像解码器,包括第一存储寄存器;和耦合到寄存器的处理器,并且可操作用于把第一中间值的第一列与第二中间值的第二列组合,以产生一个结果值集;和把结果值集存储在第一存储寄存器中。
10.根据权利要求9所述的图像解码器,其中第一中间值包括偶数Masaki值;和第二中间值包括奇数Masaki值。
11.根据权利要求9所述的图像处理电路,进一步包括第二存储寄存器;和其中处理器可以操作用于把第一和第二列的第一和第二中间值存储在第二存储寄存器中。
12.根据权利要求9所述的图像处理电路,其中处理器可以操作用于通过把第一中间值加到第二中间值组合第一中间值的第一列和第二中间值的第二列。
13.根据权利要求9所述的图像处理电路,其中处理器可以操作用于通过从第二中间值减去第一中间值组合第一中间值的第一列和第二中间值的第二列。
14.根据权利要求9所述的图像处理电路,其中处理器可以操作用于产生第一中间值的第一列和第二中间值的第二列。
15.一种图像解码器,包括具有各自的存储单元的第一和第二存储寄存器;和耦合到寄存器的处理器,并且可操作用于把第一中间值集中的每个值存储在第一存储寄存器的每隔一个对应的存储单元中,第一中间值的集对应于一个初始值的集,把第二中间值集中的每一个值存储在第一存储寄存器的剩余存储单元中,第二中间值的集对应于初始值的集,把每个第一中间值与一个占据一个对应相邻存单元的第二中间值组合以产生对应的结果值;和把每个结果值存储在第二存储寄存器的一个对应存储单元中。
16.根据权利要求15所述的图像解码器,其中第一中间值包括偶数Masaki值;和第二中间值包括奇数Masaki值。
17.根据权利要求15所述的图像解码器,其中初始值集包括一个离散余弦变换系数数据块。
18.根据权利要求15所述的图像解码器,其中第一中间值集对应于初始值集的一个第一子集;和第二中间值集对应于初始值集的一个第二子集。
19.根据权利要求15所述的图像解码器,其中初始值集包括多行离散余弦变换系数;每个第一中间值对应于占据一个对应行的偶数位置的离散余弦变换系数;和每个第二中间值对应于占据该对应行的奇数位置的离散余弦变换系数。
20.根据权利要求15所述的图像解码器,其中初始值集包括多行离散余弦变换系数,每行具有各自的偶数和奇数位置;处理器可以操作用于从占据一个对应行的偶数位置的离散余弦变换系数产生每个第一中间值;和处理器可以操作用于从占据该对应行的奇数位置的离散余弦变换系数产生每个第二中间值。
21.根据权利要求15所述的图像处理电路,其中处理器可以操作用于通过把每个第一中间值加到占据对应相邻存储单元的第二中间值组合每个第一中间值和一个第二中间值。
22.根据权利要求15所述的图像处理电路,其中处理器可以操作用于通过从占据该对应相邻存储单元的第二中间值减去每个第一中间值组合每个第一中间值和一个第二中间值。
23.根据权利要求15所述的图像处理电路,其中处理器可以操作用于通过把第一中间值的第一和第二个值分别存储在第一存储寄存器的第一和第三存储单元中存储第一中间值集中的每个值;通过把第二中间值的第一和第二个值分别存储在第一存储寄存器的第二和第四存储单元中存储第二中间值集中的每个值;通过把第一中间值的第一和第二个值分别与第二中间值的第一和第二个值组合而把每个第一中间值与一个第二中间值组合,以产生对应的第一和第二结果值;和通过把第一和第二结果值分别存储在第二存储寄存器的第一和第二单元中而存储每个结果值。
24.根据权利要求15所述图像处理电路,其中处理器可以操作用于通过把第一中间值的第一和第三个值分别存储在第一存储寄存器的第一和第三存储单元中存储第一中间值集中的每个值;通过把第二中间值的第一和第三个值分别存储在第一存储寄存器的第二和第四存储单元中存储第二中间值集中的每个值;通过把第一中间值的第一和第三个值分别与第二中间值的第一和第三个值组合而将每个第一中间值与一个第二中间值组合,以产生对应的第一和第二结果值;和通过把第一和第二结果值分别存储在第二存储寄存器的第一和第二存储单元中存储每个结果值。
25.一种图像解码器,包括处理器,处理器可以操作用于接收每个占据一个像素值原始行中的一个对应位置的像素值,把分别占据该行每隔一个位置的像素值存储在寄存器的第一连续部分,和把分别占据该行剩余位置的像素值存储在寄存器的第二连续部分。
26.根据权利要求25所述的图像解码器,其中每隔一个的行位置包括行中的偶数位置;和剩余位置包括行中的奇数位置。
27.根据权利要求25所述的图像解码器,其中像素值每个包括一个对应的编码像素值。
28.根据权利要求25所述的图像解码器,其中像素值每个包括一个对应的离散余弦变换系数。
29.根据权利要求25所述的图像解码器,其中处理器进一步可以操作用于接收像素值数据块,数据块包括像素值行,像素值以折线方式排列。
30.一种方法,包括把一列中间值作为一行中间值存储;通过组合存储的行中的中间值产生一列结果值;和把结果值作为一行结果值存储。
31.根据权利要求30所述的方法,其中中间值包括Masaki值。
32.根据权利要求30所述的方法,其中存储中间值的列包括把中间值存储在一行存储单元中;和存储结果值包括把结果值存储在另一行存储单元中。
33.根据权利要求30所述的方法,进一步包括产生中间值的列。
34.根据权利要求30所述的方法,其中中间值包括偶数位置偶数中间值,奇数位置偶数中间值,偶数位置奇数中间值,和奇数位置奇数中间值;和存储中间值的列包括把偶数位置偶数中间值和偶数位置奇数中间值存储在一行的对应相邻存储单元中,和把奇数位置偶数中间值和奇数位置奇数中间值存储在该行的其它对应相邻存储单元中。
35.根据权利要求30所述的方法,其中中间值包括偶数位置偶数中间值,奇数位置偶数中间值,偶数位置奇数中间值,和奇数位置奇数中间值;和存储中间值的列包括把偶数位置偶数中间值和偶数位置奇数中间值存储在第一对相邻存储单元中,和把奇数位置偶数中间值和奇数位置奇数中间值存储在第二对相邻存储单元中,第二对存储单元与第一对相邻存储单元相邻。
36.根据权利要求30所述的方法,其中中间值包括第一偶数位置偶数中间值,奇数位置偶数中间值,第二偶数位置偶数中间值,第一偶数位置奇数中间值,奇数位置奇数中间值,和第二偶数位置奇数中间值;和存储中间值的列包括把第一偶数位置偶数中间值和第一偶数位置奇数中间值存储在第一对相邻存储单元中,把第二偶数位置偶数中间值和第二偶数位置奇数中间值存储在第二对相邻存储单元中,第二对存储单元与第一对存储单元相邻,和把奇数位置偶数中间值和奇数位置奇数中间值存储在第三对相邻存储单元中。
37.一种方法,包括将第一中间值的第一列与第二中间值的第二列组合,以产生一个结果值的集;和把结果值的集存储在第一存储寄存器中。
38.根据权利要求37所述的方法,其中第一中间值包括偶数Masaki值;和第二中间值包括奇数Masaki值。
39.根据权利要求37所述的方法,进一步包括把第一和第二列中的第一和第二中间值存储在第二存储寄存器中。
40.根据权利要求37所述的方法,其中组合包括将第一中间值与第二中间值相加。
41.根据权利要求37所述的方法,其中组合包括从第二中间值减去第一中间值。
42.根据权利要求37所述的方法,进一步包括产生第一中间值的第一列;和产生第二中间值的第二列。
43.一种方法,包括把第一中间值集中的每个中间值存储在第一存储寄存器的每隔一个对应的存储单元中,第一中间值的集对应于一个初始值集;把第二中间值集中的每个中间值存储在第一存储寄存器的剩余存储单元中,第二中间值集对应于初始值集;通过把每个第一中间值与占据第一存储寄存器的一个对应相邻存储单元的一个第二中间值组合产生对应的结果值;和把每个结果值存储在第二存储寄存器的对应存储单元中。
44.根据权利要求43所述的方法,其中第一中间值包括偶数Masaki值;和第二中间值包括奇数Masaki值。
45.根据权利要求43所述的方法,其中初始值集包括一个离散余弦变换系数数据块。
46.根据权利要求43所述的方法,其中第一中间值集对应于初始值集的一个第一子集;和第二中间值集对应于初始值集的一个第二子集。
47.根据权利要求43所述的方法,其中初始值集包括多行离散余弦变换系数;每个第一中间值对应于占据一个对应行的偶数位置的离散余弦变换系数;和每个第二中间值对应于占据对应行的奇数位置的离散余弦变换系数。
48.根据权利要求43所述的方法,进一步包括其中初始值集包括多行离散余弦变换系数,每一行具有各自的偶数和奇数位置;从占据一个对应行的偶数位置的离散余弦变换系数产生每个第一中间值;和从占据对应行的奇数位置的离散余弦变换系数产生每个第二中间值。
49.根据权利要求43所述的方法,其中产生包括把每个第一中间值与占据第一存储寄存器的对应相邻存储单元的第二中间值相加。
50.根据权利要求43所述的方法,其中产生包括从占据第一存储寄存器的对应相邻存储单元的第二中间值减去每个第一中间值。
51.根据权利要求43所述的方法,其中存储第一中间值包括把第一中间值的第一和第二个值分别存储在第一存储寄存器的第一和第三存储单元中;存储第二中间值包括把第二中间值的第一和第二个值分别存储在第一存储寄存器的第二和第四存储单元中;产生包括把第一中间值的第一和第二个值分别与第二中间值的第一和第二个值组合,以产生对应的第一和第二结果值;和存储结果值包括把第一和第二结果值分别存储在第二存储寄存器的第一和第二存储单元中。
52.根据权利要求43所述的方法,其中存储第一中间值包括把第一中间值的第一和第三个值分别存储在第一存储寄存器的第一和第三存储单元中;存储第二中间值包括把第二中间值的第一和第三个值分别存储在第一存储寄存器的第二和第四存储单元中;产生包括把第一中间值的第一和第三个值分别与第二中间值的第一和第三个值组合,以产生对应的第一和第二结果值;和存储结果值包括把第一和第二结果值分别存储在第二存储寄存器的第一和第二存储单元中。
53.一种方法,包括把分别占据一个像素值行的每隔一个位置的像素值存储在一个寄存器的第一连续部分中;和把分别占据该行的剩余位置的像素值存储在该寄存器的第二连续部分中。
54.根据权利要求53所述的方法,其中每隔一个的行位置包括行中的偶数位置;和剩余位置包括行中的奇数位置。
55.根据权利要求53所述的方法,其中像素值每个包括一个对应的编码像素值。
56.根据权利要求53所述的方法,其中像素值每个包括一个对应的离散余弦变换系数。
57.根据权利要求53所述的方法,进一步包括从像素值的折线编码数据块提取像素值的行。
全文摘要
一种图像解码器将2-D变换作为一系列1-D变换进行,并且是以一种比现有技术解码器更有效率的方式进行。解码器包括存储器和耦合到存储器的处理器。处理器可以操作用于:把一列值作为一行值存储在存储器中,组合存储的行内的值以产生结果值的列,并且把结果值作为一行结果值存储在存储器中。这样一种解码器可以把值存储在一个存储寄存器中,从而当处理器组合这些值以产生中间IDCT值时,它能够以转置方式存储这些中间值。因此,这种图像解码器通过把中间IDCT值的组合和转置组合到一个单一步骤中而减少了图像处理时间。图像解码器能够把值存储在一个存储寄存器中,从而当处理器组合这些值以产生中间IDCT值时,它能够以转置和偶-奇分离的方式存储这些中间IDCT值。因此,这种解码器通过把中间IDCT值的产生、转置和偶-奇分离组合到一个单一步骤中而减少了图像处理时间。
文档编号G06T9/00GK1315023SQ99809627
公开日2001年9月26日 申请日期1999年8月13日 优先权日1998年8月13日
发明者李愚彬 申请人:赤道技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1