CN1142683C - 无转置行列分离二维离散余弦正反变换电路及其方法 - Google Patents

无转置行列分离二维离散余弦正反变换电路及其方法 Download PDF

Info

Publication number
CN1142683C
CN1142683C CNB001297988A CN00129798A CN1142683C CN 1142683 C CN1142683 C CN 1142683C CN B001297988 A CNB001297988 A CN B001297988A CN 00129798 A CN00129798 A CN 00129798A CN 1142683 C CN1142683 C CN 1142683C
Authority
CN
China
Prior art keywords
address
operated
pattern
line
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB001297988A
Other languages
English (en)
Other versions
CN1289213A (zh
Inventor
芸 何
何芸
龚大年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB001297988A priority Critical patent/CN1142683C/zh
Publication of CN1289213A publication Critical patent/CN1289213A/zh
Application granted granted Critical
Publication of CN1142683C publication Critical patent/CN1142683C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform

Abstract

本发明属于图像编码和图像处理领域,包括输入数据调整单元,输出数据调整单元,DCT系数生成单元,地址生成单元,处理器阵列以及控制器组成;处理器阵列由N个相同的处理器单元组成;其中,输入存储器与外部存储器相连,DCT系数生成单元与处理器阵列相连,处理器阵列与输出数据调整单元相连,输出数据调整单元与外部存储器相连,上述各单元以及地址生成单元均与控制器相连;本发明可在不增加运算单元的同时,去除转置部件,减小硬件复杂度。

Description

无转置行列分离二维离散余弦正反变换电路及其方法
技术领域
本发明属于图像编码和图像处理领域,特别涉及变换编码快速算法和大规模集成电路(VLSI-Very Large Scale Integrated Circuits)设计。
背景技术
离散余弦变换(Discrete Cosine Transform,DCT)及离散余弦反变换(InverseDiscrete Cosine Transform,IDCT)凭借其良好的性能在图像编码和图像处理领域取得了广泛的应用,特别是在九十年代出现的各种视频图像国际标准中,DCT获得了其它变换无法取代的地位。
在现有的二维离散余弦变换/反变换的VLSI结构中,大致可分为两大类:一类是基于行列分离方法的结构;另一类是基于直接二维运算方法的结构。
(1)基于行列分离方法(Row-column Decomposition Method,RCDM)的二维DCT/IDCT结构。
基于行列分离的方法利用了变换矩阵的可分离性,将二维DCT/IDCT分解为两步一维DCT/IDCT。一维DCT/IDCT由一维DCT/IDCT模块完成。
二维DCT表示为Z=CXCT,其中C为N×N变换矩阵,X和Z分别为输入N×N数据矩阵和输出N×N数据矩阵。第一步计算Y=CX,第二步计算Z=YCT。二维IDCT表示为Z=CTXC,第一步计算Y=CTX,第二步计算Z=YC。第一步DCT/IDCT对C/CT的行向量和X的列向量进行,称为“行变换”;第二步DCT/IDCT对CT/C的列向量和Y的行向量进行,称为“列变换”。由于C/CT的行向量和CT/C的列向量等价,因此第一步和第二步的差别仅在于“行变换”对X列向量进行而“列变换”对Y的行向量进行。上述定义完成行变换的硬件结构为行变换模块,完成列变换的硬件结构为列变换模块。如果在X和Y之间插入具有矩阵转置功能的转置部件,那么列变换就可以和行变换就可以共用同一个行变换模块。
根据运算单元、转置部件的不同特点将RCDM二维DCT/IDCT结构分为RCDM-I,RCDM-II,RCDM-III,RCDM-IV。
(a)RCDM-I主要包括两部分,即行变换模块以及完成矩阵转置的转置存储器(Transpose Memory),如图1所示。RCDM-I从外部存储器读入X,将变换结果Z写入外部存储器。RCDM-I的行变换模块包含并行运算单元以及串并转换单元。并行运算单元包括N个乘法器和N个加法器。转置存储器输入和输出串行数据,而并行运算单元输入和输出并行数据,串并转换单元完成串行数据和并行数据的转换。完成二维DCT/IDCT需要N2个周期。代表文献为A.Matisetti,A.N.Willson,Jr,”A 100MHz 2-D8 DCT-IDCT processor for HDTV applications(一种100兆赫兹用于高清晰度电视的二维DCT-IDCT处理器)”,IEEE Transactions on Circuits and Systems for VideoTechnology(IEEE电路与系统学报),Vol 5 No.2,pp158-165,April 1995。
(b)RCDM-II主要包括三部分,即两个相同的行变换模块和转置存储器。如图2所示。RCDM-II从外部存储器读入X,将变换结果Z写入外部存储器。RCDM-II由两个行变换模块组成,每个行变换模块包含并行运算单元以及串并转换单元。每个行变换模块的并行运算单元均包含(N/2)个乘法器和(N/2)个加法器,RCDM-II总共包含N个乘法器和N个加法器。转置存储器输入和输出串行数据,而并行运算单元输入和输出并行数据,串并转换单元完成串行数据和并行数据的转换。完成二维DCT/IDCT需要N2个周期。代表文献为Shin-ichi Uramoto,et.al,“A 100-MHz 2-D discrete cosinetransform core processor(一种100兆赫兹二维离散余弦变换处理器)“,IEEEJournal of Solid State Circuits(IEEE固态电路期刊),Vol.27,No.4,April 1992.
(c)RCDM-III主要包含三部分,即可编程并行运算单元,寄存器阵列以及交叉互连网络。如图3所示。可编程并行运算单元由(N/2)个乘法器和(N/2)个累加器组成。寄存器阵列输入和输出(N/2)个并行数据。交叉互连网络将输入数据重新排列输出,它的功能是完成矩阵转置。完成二维DCT/IDCT需要的周期取决于一维DCT/IDCT快速算法的周期数和转置操作需要的周期数。代表文献为D.Bailey,M.Cressa,et.al.“Programmable vision processor/controller for flexible implementation ofcurrent and future image compression standards”,IEEE Micro(IEEE微电子期刊),Vol.12,October 1992。
(d)RCDM-IV主要包括两部分,行变换模块和列变换模块,分别完成行变换以及列变换。,RCDM-IV从外部存储器读入X,将变换结果Z写入外部存储器。一维DCT/IDCT模块采用脉动式阵列结构。RCDM-IV结构包含的乘法器的个数为N2,加法器个数为(N2+3N),完成二维DCT/IDCT需要N个周期。代表文献为Y.T.Chang,C.L.Wang,“Newsystolic array implementation of the 2-D discrete cosine transform and itsinverse(新的脉动式阵列实现二维离散余弦变换和反变换)”,IEEE Transactions onCircuits and Systems for Video Technology(IEEE电路与系统—视频技术学报),Vol.5 No.2,pp158-165,April 1995。
(2)基于直接二维运算方法(Direct Two Dimension Computation Method,DTDCM)的结构。DTDCM结构大致可分为基于多个一维DCT模块的二维DCT/IDCT结构和基于逐系数累加的二维DCT/IDCT结构。
(a)基于多个一维变换模块(Multiple One Dimension DCT,MODD)的二维DCT/IDCT结构如图5所示,MODD结构的特点是具有多个一维变换模块,多个一维变换模块通过2∶1的选择器和复杂的互连网络和蝶形运算电路,对输入数据矩阵X进行处理并行输出二维变换结果Z。图中存放输入X和输出Z的外部存储器省略。乘法器个数为(0.5*N2log2N),加法器个数为(2.5*N2log2N),完成二维DCT/IDCT需要N个周期。代表文献为:N.I.Cho and S.U.Lee,“Fast algorithm and Implementation of 2-DDiscrete Cosine Transform”,(二维离散余弦变换的快速算法和实现)IEEE Trans.Circuits and Systems(IEEE电路与系统学报),Vol.38,No.3,pp297-305,March.1991。
(b)基于逐系数累加(Coefficient-By-Coefficient Accumulation,CBCA)的二维DCT/IDCT结构如图6所示,CBCA结构包含正负系数生成器,(N/2)个乘法器组成的乘法器阵列,N2/4个加法器以及N2个累加器组成的累加器阵列。N2个累加器分别保存N2个变换/反变换结果。完成一个N×N块需要N2周期。图中存放输入X和输出Z的外部存储器省略。代表文献为:J.F.Yang,B.L.Bai,S.H.Hsia,“An efficienttwo-dimensional inverse discrete cosine transform algorithm for HDTVreceivers”(一种用于高清晰度电视接收器的有效的二维离散余弦反变换算法),IEEETrans.On Circuits and System for Video Technology(IEEE电路与系统—视频技术学报),Vol.5,No.1,Oct.1995。
二维DCT/IDCT结构的硬件复杂度取决于运算单元的个数以及是否有复杂的转置部件。在已有的二维DCT/IDCT结构中,RCDM-IV,CBCA结构,MODD结构是不需要转置部件的结构,但是它们都包含了庞大的运算单元,因此硬件复杂度都很高。RCDM-I,RCDM-II,RCDM-III相比之下需要的乘法器和加法器的个数少得多,运算单元的硬件复杂度适中。但是,RCDM-I,RCDM-II,RCDM-III都需要转置部件,用来存储行变换的中间结果。其中RCDM-I和RCDM-II的转置部件用转置存储器实现,RCDM-III的转置部件用寄存器阵列和交叉互连网络共同实现。这两种转置部件的硬件复杂度都很大。综上所述,已有的结构的硬件复杂度都很高。
发明内容
本发明的目的是为克服已有技术的不足之处,提出一种无转置行列分离二维离散余弦正反变换电路及其方法,可在不增加运算单元的同时,去除转置部件,显著减小硬件复杂度。
本发明提出的一种无转置行列分离二维离散余弦正反变换电路,其特征在于,包括输入数据调整单元,输出数据调整单元,离散余弦变换(DCT)系数生成单元,地址生成单元,处理器阵列以及控制器组成。处理器阵列由N个相同的处理器单元组成;其中,所说的输入存储器与外部存储器相连,所说的离散余弦变换系数生成单元与处理器阵列相连,该处理器阵列与输出数据调整单元相连,该输出数据调整单元与外部存储器相连,上述各单元以及地址生成单元均与控制器相连;所说的处理器单元可由蝶形运算单元,高速乘法器,累加器以及移位饱和电路组成;其内部的连接关系为,蝶型运算单元的输入端连接3路外输入信号和饱和电路2的输出端,其输出端与饱和电路1的输入端相连;乘法器的输入端与饱和电路1的输出端及2路外输入信号相连,其输出端与累加器相连;累加器的输入与输出分别连接乘法器和饱和电路2,并将输出信号反馈至输入端;处理器单元(PE)的输出是由饱和电路1和移位饱和电路2的输出端共同构成的;所说的蝶形运算单元设置为加法器或减法器;所说的地址生成单元由地址增量计算电路,加法器和地址寄存器组成;其连接关系为,地址增量计算电路的外输入为行地址模式和列地址模式信号,其输出连接至加法器;加法器的输入端连接至地址寄存器的输出端,其输出端连接至地址寄存器的输入端;地址寄存器的外输入信号为行偏移地址和列偏移地址,其输入端连接至加法器的输出端,其输出端为地址生成单元的输出信号;所说的DCT系数生成单元由选择器(0),选择器(1),移位器(1、2、3),及只读存储器(Ce、Ce’、Co)构成;其连接关系为,移位器(1、2、3)的输入端分别连接到只读存储器(Ce,Ce’,Co),移位器(1、2)的输出端连接至选择器(0),移位器(3)的输出端连接至选择器(1);所说的输入数据调整单元由多个通用选择器构成,它将外部存储器的输入信号有选择的输出至特定的处理单元PE;该输入数据调整单元包括输入广播模式和输入直播模式两种工作模式;所说的输出数据调整单元由多个通用选择器构成,它将特定的处理单元(PE)的输出信号经过选择输出至外部存储器特定单元中;该输出数据调整单元有直通,交织模式,交织倒序模式三种工作模式。
本发明的无转置存储器行列分离(Transpose Memory Free Row ColumnDecomposition,TMF-RCDM)二维DCT/IDCT结构的原理:
在具体阐明原理之前,先定义两种矩阵运算方法即行运算和列运算,分别应用在行变换和列变换中。
设Y=AX,为方便起见,假设A,Y,X是4×4矩阵。A=[aim]
行运算的特点是依次计算行向量
Figure C0012979800111
。X和Y表示成行向量的形式如下:
X = x → 0 T x → 1 T x → 2 T x → 3 T , Y = y → 0 T y → 1 T y → 2 T y → 3 T
y → i T = Σ m = 0 3 a im · x → m T
列运算的特点是依次计算列向量 。X和Y表示成列向量的形式如下:
X = x → 0 x → 1 x → 2 x → 3 , Y = y → 0 y → 1 y → 2 y → 3
y → j = A x → j = ( a → 0 , a → 1 , a → 2 , a → 3 ) x → j = Σ n = 0 3 a → n · x nj .
(1)TMF-RCDM快速二维DCT方法
二维DCT变换可以表示为Z=CXCT
其中,C为变换矩阵, c ij = 2 N α i cos πi ( 2 j + 1 ) 2 N , α 0 = 1 / 2 , α i = 1 / ( i ≠ 0 ) X 为输入N×N块,Z为二维DCT结果。将变换矩阵C乘以因子
Figure C00129798001111
,得到C’。二维DCT可以表示为 Z = 1 8 C ′ X C ′ T .
为方便起见,在以下讨论中,用C代表C’,并且忽略因子 。将二维变换矩阵表示为Z=CXCT
二维DCT分解为两步:第一步对输入N×N块进行行变换Y=CX;第二步对第一步的结果Y进行列变换Z=YCT
利用变换矩阵的对称性质c(2i)k=c(2i)(N-1-k)以及c(2i+1)k=-c(2i+1)(N-1-k)
因此C可以表示为
C = c 00 c 01 c 02 c 03 c 03 c 02 c 01 c 00 c 10 c 11 c 12 c 13 - c 13 - c 12 - c 11 - c 10 c 20 c 21 c 22 c 23 c 23 c 22 c 21 c 20 c 30 c 31 c 32 c 33 - c 33 - c 32 - c 31 - c 30 c 40 c 41 c 42 c 43 c 43 c 42 c 41 c 40 c 50 c 51 c 52 c 53 - c 53 - c 52 - c 51 - c 50 c 60 c 61 c 62 c 63 c 63 c 62 c 61 c 60 c 70 c 71 c 72 c 73 - c 73 - c 72 - c 71 - c 70 = Q T Ce CeP Co - CoP ;
其中 Q = 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ,
Ce = c 00 c 01 c 03 c 03 c 20 c 21 c 22 c 23 c 40 c 41 c 42 c 43 c 60 c 61 c 62 c 63 , Co = c 10 c 11 c 12 c 13 c 30 c 31 c 32 c 33 c 50 c 51 c 52 c 53 c 70 c 71 c 72 c 73 , P = 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 ;
X = X LU X RU X LD X RD , XLU,XRU,XLD,XRD分别为X左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵。
Y ^ = QY = Q ( CX ) = ( QC ) X
= Ce CeP Co - CoP × X LU X RU X LD X RD
= Ce ( X LU + PX LD ) Ce ( X RU + PX RD ) Co ( X LU - PX LD ) Co ( X RU - PX RD )
Figure C00129798001211
由4个矩阵加减法和4个4×4矩阵乘法得到。4个矩阵加减法为(XLU+PXLD),(XLU-PXLD),(XRU+PXRD),(XRU-PXRD)。4个4×4矩阵乘法为Ce(XLU+PXLD),Co(XLU-PXLD),Ce(XRU+PXRD),Co(XRU-PXRD)。
Y ' = Ce ( X LU + PX LD ) Co ( X LU - PX LD ) Ce ( X RU + PX RD ) Co ( X RU - PX RD ) = Y ′ LU Y ′ RU Y ′ LD Y ′ RD , 其中Y′LU,Y′RU,Y′LD,Y′RD分别为Y’左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵。Y’实际上是将
Figure C0012979800132
的左下4×4子矩阵和右上4×4子矩阵交换。
令Z′=QZQT,则
Z ′ = QZQ T = Q ( YC T ) Q T = QQ T Y ^ C T Q T = Y ^ C T Q T
因此
Z ′ T = ( QC ) Y ^ T =
Ce CeP Co - CoP × Y ′ LU Y ′ LD Y ′ RU Y ′ RD T = Ce ( Y ′ LU + PY ′ LD ) T Ce ( Y ′ RU + PY ′ RD ) T Co ( Y ′ LU - PY ′ LD ) T Co ( Y ′ RU - PY ′ RD ) T
Z′T由4个矩阵加减法和4个4×4矩阵乘法得到。4个矩阵加减法为(Y′LU+PY′LD)T,(Y′LU-PY′LD)T,(Y′RU+PY′RD),(Y′RU-PY′RD)。4个4×4矩阵乘法为Ce(Y′LU+PY′LD)T,Co(Y′LU-PY′LD)T,Ce(Y′RU+PY′RD)T,Co(Y′RU-PY′RD)T。采用列运算计算这4个矩阵乘法。依次得到Z′T的列向量或Z′的行向量。
Z ′ = ( Y ′ LU + PY ′ LD ) Ce T ( Y ′ RU - PY ′ RD ) Co ( Y ′ LU + PY ′ LD ) Ce T ( Y ′ RU - PY ′ RD ) Co
最后,Z由Z=QTZ′Q得到。
因此,完成二维DCT的步骤如下:
(a)进行矩阵加减运算,得到(XLU+PXLD),(XLU-PXLD),(XRU+PXRD),(XRU-PXRD);
(b)对4个4×4矩阵乘法,即Ce(XLU+PXLD),Co(XLU-PXLD),Ce(XRU+RXRD),Co(XRU-PXRD),进行行运算,得到Y’矩阵;
(c)对Y’的子矩阵进行加减运算,得到(Y′LU+PY′LD)T,(Y′LU-PY′LD)T,(Y′RU+PY′RD),(Y′RU-PY′RD);
(d)对4个4×4矩阵乘法,即Ce(Y′LU+PY′LD)T,Co(Y′LU-PY′LD)T,Ce(Y′RU+PY′RD),Co(Y′RU-PY′RD),进行列运算,得到Z’矩阵;
(e)对Z’变换得到Z矩阵。
(2)TMF-RCDM快速二维IDCT方法
IDCT变换Z=CTXC,其中C的定义和前面相同。X为8×8输入数据矩阵,Z为二维IDCT的结果。也分为两步完成。第一步进行行变换Y=CTX;第二步进行列变换Z=YC。令 R = I 4 0 0 P , 其中I4为4×4单位矩阵。 P = 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 .
Y ^ = RYQ T ,
Y ^ = RYQ T = R ( C T X ) Q T = R ( QC ) T ( QXQ T )
= I 4 0 0 P Ce CeP Co - CoP T × X EE X EO X OE X OO
= Ce T X EE + Co X OE Ce T X EO + Co X OO Ce T X EE - Co X OE Ce T X EO - Co X OO
Figure C0012979800144
由4个4×4矩阵乘法和4个矩阵加减法得到。4个4×4矩阵乘法为CeTXEE,CoXOE,CeTXEO,CoXOO。4个矩阵加减法为CeTXEE+CoXOE,CeTXEE-CoXOE,CeTXEO+CoXOO,CeTXEO-CoXOO
Y ' = Ce T X EE + Co X OE Ce T X EE - Co X OE Ce T X EO + Co X OO Ce T X EO - Co X OO = Y ′ LU Y ′ RU Y ′ LD Y ′ RD , 其中Y′LU,Y′RU,Y′LD,Y′RD分别为Y’左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵。实际上,Y’由 左下4×4子矩阵和右上4×4子矩阵交换得到的。
令Z′=RZ,则
Z ′ = RZ = R ( YC ) = R ( R T Y ^ QC ) = Y ^ ( QC )
因此
Z ′ T = ( QC ) T × Y ^ T = Ce T Co PCe T - PCo × Y ′ LU T Y ′ RU T Y ′ LD T Y ′ RD T
= Ce T Y ′ LU T + Co Y ′ LD T Ce T Y ′ RU T + Co Y ′ RD T P ( Ce T Y ′ LU T - Co Y ′ LD T ) P ( Ce T Y ′ RU T - Co Y ′ RD T )
Z’由四个矩阵乘法四个矩阵加减运算得到,四个矩阵乘法即CeTY′LU T,CoY′LD T,PCeTY′LU T,PCoY′LD T。四个矩阵加减运算为CeTY′LU T+CoY′LD T,P(CeTY′LU T-CoY′LD T),CeTY′RU T+CoY′RD T,P(CeTY′RU T-CoY′RD T)。
最后得到Z=RTZ′。
完成二维IDCT的步骤如下:
(a)对4个4×4矩阵乘法,即4个4×4矩阵乘法为CeTXEE,CoXOE,CeTXEO,CoXOO,进行行运算;
(b)进行矩阵加减运算,4个矩阵加减法为CeTXEE+CoXOE,CeTXEE-CoXOE,CeTXEO+CoXOO,CeTXEO-CoXOO,得到Y’;
(c)对4个4×4矩阵乘法,即CeTY′LU T,CoY′LD T,CeTY′LU T,CoY′LD T,进行列运算;
(d)进行矩阵加减运算,得到CeTY′LU T+CoY′LD T,P(CeTY′LU T-CoY′LD T),CeTY′RU T+CoY′RD T,P(CeTY′RU T-CoY′RD T),得到Z’矩阵;
(e)对Z’变换得到Z矩阵。
本发明提出的无转置部件行列分离二维离散余弦变换/反变换大规模集成电路,主要特征是包括一个可重设置的二维DCT/IDCT模块,内部的运算单元主要包括N个乘法器和N个加法器,具有并行存储器接口和外部存储器相连。外部存储器能同时并行输出以及并行输入多个数据。可重设置的二维DCT/IDCT模块能设置为行变换模块或列变换模块,当可重设置的二维DCT/IDCT模块设置为行变换模块时,从外部存储器读入输入数据,输出中间结果写入外部存储器。当可重设置的二维DCT/IDCT模块设置为列变换模块时,从外部存储器读取中间结果,输出变换结果写入外部存储器。
本发明的特点为:
1.本发明无转置存储器二维DCT/IDCT运算单元的复杂度和RCM-I,RCM-II,RCM-III相当,但是没有转置部件,因此硬件复杂度大大小于已有的结构,减少了硬件开销;
2.可重设置的二维DCT/IDCT模块。可以通过少量控制线的控制,支持正变换和反变换,行变换和列变换,具有较强的可重用性。
3.并行输入输出数据。并行输入输出数据的个数为N,避免了串行/并行转换所需要的额外开销,从而提高系统的整体性能。
4.本发明可以做为一个DCT/IDCT核,集成在视频编码、图象处理、视频通信的VLSI芯片之中。
本发明的效果:
本发明在TMF-RCDM二维DCT/IDCT结构上实现了二维DCT/IDCT算法,完成行变换或列变换所需要的周期数均为32。完成二维DCT或二维IDCT需要的周期数是64。TMF-RCDM二维DCT/IDCT结构中,没有复杂的转置存储器,乘法器和DCT系数的字长达到最小。显著减小了硬件复杂度。其中乘法器位数为12×16。变换矩阵元素的字长为12,行变换后的中间结果字长16。IDCT经过二维正变换和反变换的结果和原始块进行比较,对IEEE 1180-1190规定的五项指标进行测试。五项指标包括每个系数最大误差(pe),最大均方误差(pmse),最大绝对值平均误差(pme),总体均方误差(omse),总体绝对值平均误差(ome)。测试块的数据为IEEE标准所规定的随机函数产生的,测试块的数目为IEEE标准规定的10000块,测试块数据的范围[-256,255]。五项指标都小于标准规定的指标。然后对测试数据极性取反,重新进行测试,也满足五项指标要求。
附图说明
图1为RCM-I DCT/IDCT结构框图。
图2为RCM-II DCT/IDCT结构框图。
图3为RCM-III DCT/IDCT结构框图。
图4为RCM-IV DCT/IDCT结构框图。
图5为基于一维变换模块的直接结构框图。
图6为基于逐系数累加的直接结构框图。
图7为本发明的无转置存储器RCM二维DCT/IDCT原理图。
图8为本发明的无转置存储器RCM二维DCT/IDCT总体结构框图。
图9为本发明实施例的PE结构框图。
图10为本发明实施例的DCT模式下PE的设置框图。
图11为本发明实施例的IDCT模式下,PE的设置框图。
图12为本发明实施例的地址生成单元框图。
图13为本发明实施例的DCT系数生成单元结构框图。
图14为本发明实施例的第一种输入直播方式。
图15为本发明实施例的第二种输入直播方式。
图16-图23为本发明实施例的第一种至第八种输入广播模式。
图24为本发明实施例的输出直通模式。
图25为本发明实施例的输出交织模式。
图26为本发明实施例的输出交织倒序模式。
具体实施方式
本发明的无转置行列分离二维离散余弦正反变换电路及其方法的实施例结合各图详细说明如下:
本发明的无转置存储器行列分离(TMF-RCDM)二维离散余弦变换/反变换(DCT/IDCT)的实施例的总体结构如图8所示。包括输入数据调整单元,输出数据调整单元,DCT系数生成单元,地址生成单元,处理器阵列以及控制器组成。处理器阵列由8个相同的处理器单元(Processor Element,PE)组成。输入存储器与外部存储器相连,DCT系数生成单元与处理器阵列相连,处理器阵列与输出数据调整单元相连,输出数据调整单元与外部存储器相连,上述各单元以及地址生成单元均与控制器相连。其工作过程为,外部存储器的数据通过输入数据调整单元进入处理器阵列,同时DCT系数生成单元输出DCT系数进入处理器阵列。处理器阵列完成计算后经过输出数据调整单元写回外部存储器。外部存储器和DCT系数生成单元的寻址由地址生成单元完成。各个模块由控制器统一控制,完成对处理器单元输入输出数据调整单元的设置。外部存储器为三口存储器,能同时读出2组8路数据,以及写入一组8路数据。
各组成部分的实施例分别描述如下:
本实施例的处理器阵列由8个相同的处理器单元(PE)组成。处理阵列的输入来自输入数据调整单元和DCT系数生成单元单元,在控制器的控制下,能并行处理8组数据,输出8组数据经过数据输出调整单元写入外部存储器模块中。
本实施例的处理器单元(PE)的结构如图9所示,每个PE由蝶形运算单元,高速乘法器(Multiplier,MPY),累加器(Accumulator,ACC)以及移位饱和电路(SHT&Clip)组成。PE内部的连接关系为,蝶型运算单元的输入端连接3路外输入信号和饱和电路2的输出端,其输出端与饱和电路1的输入端相连;乘法器的输入端与饱和电路1的输出端及2路外输入信号相连,其输出端与累加器相连;累加器的输入与输出分别连接乘法器和饱和电路2,并将输出信号反馈至输入端;PE的输出是由饱和电路1和饱和电路2的输出端共同构成的。高速乘法器完成DCT系数和输入数据的乘法运算,乘积进入累加器进行累加。蝶形运算单元可以设置为加法器或减法器(ADD/SUB)。在ADD/SUB和MPY之后都有移位饱和化电路,它的作用是保证运算过程中的精度和防止溢出。在每个PE的输入端,还有可设置的数据输入选择电路,根据行/列变换或正/反变换各种不同情况进行设置。
PE可以设置成两种模式,分别用于DCT和IDCT。
在DCT模式下,将由图9所示的PE数据通道设置为图10。处在偶数标号的PE将蝶型运算单元为加法器,处在奇数标号的PE将蝶型运算单元设置为减法器。蝶形运算单元的两个输入操作数为输入数据调整单元的输出数据(align0,align1)。蝶形运算单元的结果作为其中的一个输入送到乘累加单元中(乘累加单元由乘法器和累加器构成),乘累加单元的另一个输入是从DCT系数生成单元输出的数据(coef)。当进行行变换时,乘累加的结果经过移位和饱和化处理得到行变换的中间结果。当进行列变换时,乘累加的结果经过移位和饱和化处理得到二维DCT之后的输出数据,移位和饱和化单元保证二维DCT的输出数据的范围在(-1024,1023)。
在IDCT模式下,将由图9所示的PE数据通道设置为图11。乘法器的第一个输入来自输入数据调整单元,另一个输入是从DCT系数生成单元输出的数据。乘累加的结果经过移位操作后输出到蝶型元算单元。处在偶数标号的PE将蝶型运算单元设置为加法器,处在奇数标号的PE将蝶型运算单元设置为减法器。蝶形运算单元的两个输入操作数中,一个是从乘累加单元来的数据,一个来自相邻PE的乘累加结果(maco)。进行加/减运算后经过移位和饱和化处理得到经过反DCT之后的数据(aluo)。饱和化单元保证二维IDCT的输出数据范围在(-256,255)。
本实施例的地址生成单元(AGU)结构如图12所示。AGU由地址增量计算电路,加法器和地址寄存器组成。其连接关系为,地址增量计算电路的外输入为行地址模式和列地址模式信号,其输出连接至加法器;加法器的输入端连接至地址寄存器的输出端,其输出端连接至地址寄存器的输入端;地址寄存器的外输入信号为行偏移地址和列偏移地址,其输入端连接至加法器的输出端,其输出端为地址生成单元的输出信号。
其工作原理为,址增量电路根据行地址模式和列地址模式计算地址增量,送至下一级加法器。地址寄存器保存累加结果,并根据累加结果和行列偏移地址输出存储器地址。行列地址生成模式有九种。九种地址生成模式如表1所示。这九种地址生成模式能够实现DCT/IDCT各个过程的寻址。外部存储器有两个读端口和一个写端口,相应地需要两个读地址生成单元和一个写地址生成单元。存储器地址共8位,高4位为行地址,低4位为列地址。行地址和列地址都有9种地址生成模式。写地址的列地址模式始终为8,写地址的列偏移地址始终为0。各个过程的行列地址生成模式和偏移地址设置见表2,表3。表2和表3的列表示4个不同的变换过程,表中的行表示2个读行/列地址和1个写行/列地址的模式设置。进行DCT/IDCT行变换时,两个读地址的行地址的范围是0-7,写地址的行地址范围是8-15;进行DCT/IDCT列变换时,两个读地址的行地址的范围是8-15,写地址的行地址范围是0-7。
表1地址生成模式,%表示求模运算,//表示取商运算
    AD类型     模式T=0,1,2…15
    0     addr=T%4
    1     addr=3-T%4
    2     addr=(T%4)·2
    3     addr=(T%4)·2+1
    4     addr=T//4
    5     addr=3-T//4
    6     addr=(T//4)·2
    7     addr=(T//4)·2+1
    8     addr=常数
                  表2 DCT在每一个步骤中所采用的地址生成模式表
    地址发生器参数     一     二    三     四
    读地址I 行偏移地址     0     0     8     8
行地址模式     0     0     4     4
列偏移地址     0     4     0     4
列地址模式     8     8     0     0
    读地址II 行偏移地址     4     4     12     12
行地址模式     1     1     4     4
列偏移地址     0     4     0     4
列地址模式     8     8     1     1
    写地址I 行偏移地址     8     12     0     4
行地址模式     4     4     6     7
列偏移地址     0     0     0     0
列地址模式     8     8     8     8
        表3 IDCT在每一个步骤中所采用的地址生成模式表
    地址发生器参数     一    二    三     四
    读地址I 行偏移地址     0     0     8     8
行地址模式     2     2     4     4
列偏移地址     0     0     0     4
列地址模式     8     8     0     0
    读地址II 行偏移地址     0     0     12     12
行地址模式     3     3     4     4
列偏移地址     0     0     0     4
列地址模式     8     8     0     0
    写地址I 行偏移地址     8     12     0     4
行地址模式     4     4     4     5
列偏移地址     0     0     0     0
列地址模式     8     8     8     8
本实施例的DCT系数生成单元由选择器0,选择器1,移位器1,2,3,及只读存储器Ce,Ce’,Co构成。其连接关系为,移位器1,2,3的输入端分别连接到只读存储器Ce,Ce’,Co,移位器1,2的输出端连接至选择器0,移位器3的输出端连接至选择器1,如图13所示。
其工作原理为,DCT系数输出单元根据正向变换或反向变换,行或列变换可以设置为4种模式。DCT系数生成单元输出4个系数CEven和4个系数COdd到处理器阵列,其中CEven输出到标号为偶数的处理器单元,COdd输出到标号为奇数的处理器单元。
其中Ce为系数矩阵偶行的左半部分构成的矩阵,按行存放在ROM Ce中。Ce’为Ce的转置,按行存放在ROM Ce’中。Co为系数矩阵奇行的左半部分构成的矩阵。Co为对称阵。
Ce = c 00 c 01 c 02 c 03 c 20 c 21 c 22 c 23 c 40 c 41 c 42 c 43 c 60 c 61 c 62 c 63 , Ce ' = c 00 c 01 c 02 c 03 c 20 c 21 c 22 c 23 c 40 c 41 c 42 c 43 c 60 c 61 c 62 c 63 ′ , Co = c 10 c 11 c 12 c 13 c 30 c 31 c 32 c 33 c 50 c 51 c 52 c 53 c 70 c 71 c 72 c 73
addr[1:0]决定移位器左移的位数,Addr[3:2]决定系数所在的行。移位器以系数的字长L为单位左移。移位器输入为4个系数,输出的最高L位经过复制,输出同样的四份数据。假设输入为(x0,x1,x2,x3),移位器输出和addr[1:0]的关系如表4所示:
  表4移位器的逻辑
    Addr  输出
    00  x0 x0 x0 x0
    01  X1 x1 x1 x1
    10  X2 x2 x2 x2
    11  X3 x3 x3 x3
inverse和row决定从DCT系数生成单元取数的方式,其输出和信号的关系如表5,6所示。inverse=1表示IDCT,inverse=0表示DCT。Row=1表示行变换,row=0表示列变换。
表5 CEven和row与inverse的关系
Row=1  Row=0
    Inverse=0  C1  C2
    Inverse=1  C3  C0
表6 COdd和row的关系
Row=1  Row=0
 C5  C4
本实施例的输入数据调整单元由多个通用选择器构成,它将外部存储器的输入信号有选择的输出至特定的处理单元PE。输入数据调整单元的工作过程如下:
从外部存储器两个端口读出的两组数据分别为M0,M1,M2,M3和M0′,M1′,M2′,M3′。这两组数据送入输入数据调整单元,然后送往处理器单元中。假设目标处理器为PE2k和PE2k+1,输入数据调整单元的任务是将存储器数据Mk′和Mk映射到处理器PE2k和PE2k+1中。输入数据调整单元有两种工作模式:输入广播模式和输入直播模式。
输入直播模式有两种。其工作过程是实现多种由外部存储器的地址内容到处理器单元的映射。第一种直播模式下,由图14所示,将地址Mk和Mk′的内容送至第2k个处理单元PEk,同时将地址Mk和Mk′的内容送至第2k+1个处理单元,映射关系表达为,Mk,Mk′→PE2k和Mk,Mk′→PE2k+1,k=0,1,2,3,这种模式用在DCT的行变换中。第二种直播模式下,由图15所示,Mk映射到偶数标号的处理器单元中,Mk′映射到奇数标号的处理器单元中,即Mk→PE2k,Mk′→PE2k+1,这种模式用在IDCT的行变换中。
输入广播模式有八种,其工作过程是实现8种映射关系。前四种(j=0,1,2,3)用在DCT的列变换中,如图16-19所示,即第j种映射关系为:将地址Mj和Mj′的内容送至第k个处理单元PEk,表达为Mj,Mj′→PEk。后四种输入广播模式用在DCT的列变换中,如图20-23所示,第(j+4)种映射关系为:Mj→PE2k,Mj′→PE2k+1,其中j=0,1,2,3;k=0,1,2…7
本实施例的输出数据调整单元由多个通用选择器构成,它将特定的处理单元的PE的输出信号经过选择输出至外部存储器特定单元中。输出数据调整单元的工作过程如下:
本实施例中写入外部存储器的数据为M0,M1,M2,M3,M4,M5,M6,M7。输出数据调整单元有三种工作模式。直通,交织模式,交织倒序模式。
I. 输出直通模式
映射关系为:PEk→Mk,k=0,1,2,3,4,5,6,7其中偶序处理器输出数据映射到偶序存储器模块,奇序处理器输出数据映射到奇序存储器模块。见图24。
II.输出交织模式
映射关系为:PE2k→Mk,PE2k+1→Mk+4,k=0,1,2,3
其中偶序处理器输出数据映射到前4个存储器模块,奇序处理器输出数据映射到后4个存储器模块。见图25。
III.输出交织倒序模式
映射关系为:PE2k→Mk,PE2k+1→M7-k,k=0,1,2,3
其中偶序处理器输出数据映射到前四个存储器模块,奇序处理器输出数据按逆序方式映射到后4个存储器模块。见图26。
本实施例的TMF-RCDM二维DCT/IDCT结构的重要参数包括乘法器位数,DCT矩阵系数的字长以及行变换后的中间结果字长。乘法器位数为12×16。DCT矩阵系数的字长为12,行变换后的中间结果字长16。蝶形运算单元后的移位器移位数和累加器后的移位数可以设置。进行DCT行变换,蝶形运算单元后的移位器移位数为0,累加器后的移位数为8;进行DCT列变换,蝶形运算单元后的移位器移位数为0,累加器后的移位数为19。进行IDCT行变换,蝶形运算单元后的移位器移位数为0,累加器后的移位数为10;进行IDCT列变换,蝶形运算后的移位器移位数为7,累加器后的移位数为10。
用于本发明的TMF-RCDM二维离散余弦变换/反变换(DCT/IDCT)的方法实施例由二维DCT和二维IDCT两部分组成,具体包括以下步骤:
二维DCT可以分为四步。第一、二步完成X的行变换,第三、四步完成Y’的列变换。Y’的定义和TMF-RCDM二维DCT的原理部分一致。
第一步:
第一步完成X的左半部分的行变换,生成Y’矩阵的上半部分。X存放在行地址为0-7的外部存储器中。
第一个读地址工作在第0种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第1种行地址模式和第8种列地址模式,第二个读地址行偏移地址4,列偏移地址0。PE工作在DCT模式。输入数据调整单元工作在第一种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址8。在第16个周期时,外部存储器逐行存放矩阵Y’的上半部分。
第二步:
第二步完成X的右半部分的行变换,生成Y’矩阵的下半部分。
第一个读地址工作在第0种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址4;第二个读地址工作在第1种行地址模式和第8种列地址模式,第二个读地址行偏移地址4,列偏移地址4。PE工作在DCT模式.输入数据调整单元工作在第一种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址12。在第16个周期时,外部存储器逐行存放矩阵Y’的下半部分。
第三步:
第三步完成Y’的左半部分的列变换,生成Z’矩阵的上半部分或Z矩阵的偶行。
第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址0;第二个读地址工作在第4种行地址模式和第1种列地址模式,第二个读地址行偏移地址12,列偏移地址0。PE工作在DCT模式。输入数据调整单元工作在广播模式,输出数据调整单元工作在输出直通模式,写地址工作在第6种行地址模式,写地址行偏移地址0。在第16个周期时,外部存储器隔行存放矩阵Z的偶行部分。
第四步:
第四步完成Y’的右半部分的列变换,生成Z’矩阵的下半部分或Z矩阵的奇行。
第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址4;第二个读地址工作在第4种行地址模式和第1种列地址模式,第二个读地址行偏移地址12,列偏移地址4。PE工作在DCT模式.输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出直通模式,写地址工作在第7种行地址模式,写地址行偏移地址4。在第16个周期时,外部存储器隔行存放矩阵Z的奇行部分。
至此,Z矩阵存放在行地址为0-7的存储器中。
二维IDCT可以分为四步。第一二步完成IDCT的行变换。第三四步完成IDCT的列变换。Y’的定义和TMF-RCDM二维IDCT的原理部分一致。
第一步:
第一步完成X的左半部分的行变换。X存放在行地址为0-7的外部存储器中。
第一个读地址工作在第2种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第3种行地址模式和第8种列地址模式,第二个读地址行偏移地址0,列偏移地址0。PE工作在IDCT模式。输入数据调整单元工作在第二种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址8。在第16个周期时,外部存储器隔行存放矩阵Y’的上半部分。
第二步:
第一个读地址工作在第2种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第3种行地址模式和第8种列地址模式,第二个读地址行偏移地址0,列偏移地址0。PE工作在IDCT模式。输入数据调整单元工作在第二种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址12。在第16个周期时,外部存储器隔行存放矩阵Y’的下半部分。
第三步:
第三步完成对Y’左半部分的列变换,得到Z矩阵的前四行。
第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址0;第二个读地址工作在第4种行地址模式和第0种列地址模式,第二个读地址行偏移地址12,列偏移地址0。PE工作在IDCT模式。输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出交织倒序模式,写地址工作在第4种行地址模式,写地址行偏移地址0。在第16个周期时,外部存储器逐行存放矩阵Z的上半部分。
第四步:
第四步完成对Y’右半部分的列变换,得到Z矩阵的后四行。
第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址4;第二个读地址工作在第4种行地址模式和第0种列地址模式,第二个读地址行偏移地址12,列偏移地址4。PE工作在IDCT模式。输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出交织倒序模式,写地址工作在第5种行地址模式,写地址行偏移地址4。在第16个周期时,外部存储器逐行存放矩阵Z的下半部分。
至此,Z矩阵存放在行地址为0-7的存储器中。
本发明实施例的效果:
本发明在TMF-RCDM二维DCT/IDCT结构上实现了二维DCT/IDCT算法,完成行变换或列变换所需要的周期数均为32。完成二维DCT或二维IDCT需要的周期数是64。TMF-RCDM二维DCT/IDCT结构中,没有复杂的转置存储器,乘法器和DCT系数的字长达到最小。其中乘法器位数为12×16。变换矩阵元素的字长为12,行变换后的中间结果字长16。IDCT经过二维正变换和反变换的结果和原始块进行比较,对IEEE1180-1190规定的五项指标进行测试。五项指标包括每个系数最大误差(pe),最大均方误差(pmse),最大绝对值平均误差(pme),总体均方误差(omse),总体绝对值平均误差(ome)。测试块的数据为IEEE标准所规定的随机函数产生的,测试块的数目为IEEE标准规定的10000块,测试块数据的范围[-256,255)。五项指标都小于标准规定的指标。然后对测试数据极性取反,重新进行测试,也满足五项指标要求。测试结果见表7。
                 表7 NT-RCDM结构的IEEE五项精度指标测试结果
    IEEE指标   Sign=1     Sign=-1     标准 是否满足标准
    Pe   +1.000000     +1.000000 +1.000000     是
    Pme   +0.003800     +0.003200 +0.015000     是
    Ome   -0.000013     -0.000058 +0.001500     是
    Pmse   +0.024500     +0.022800 +0.060000     是
    Omse   +0.019633     +0.019945 +0.020000     是

Claims (2)

1、一种无转置行列分离二维离散余弦正反变换电路,其特征在于,包括输入数据调整单元,输出数据调整单元,离散余弦变换系数生成单元,地址生成单元,处理器阵列以及控制器;处理器阵列由N个相同的处理器单元组成;其中,所说的输入数据调整单元与外部存储器相连,所说的离散余弦变换系数生成单元与处理器阵列相连,该处理器阵列与输出数据调整单元相连,该输出数据调整单元与外部存储器相连,所述输入数据调整单元、输出数据调整单元、离散余弦变换系数生成单元、处理器阵列以及地址生成单元均与控制器相连;所说的处理器单元由蝶形运算单元,高速乘法器,累加器以及移位饱和电路组成;其内部的连接关系为,蝶型运算单元的输入端连接3路外输入信号线和移位饱和电路2的输出端,其输出端与移位饱和电路1的输入端相连;乘法器的输入端与移位饱和电路1的输出端及2路外输入信号线相连,其输出端与累加器相连;累加器的输入与输出分别连接乘法器和移位饱和电路2,并将累加器的输出信号线反馈至累加器的输入端;处理器单元的输出是由移位饱和电路1和移位饱和电路2的输出端共同构成的;所说的蝶形运算单元设置为加法器或减法器;所说的地址生成单元由地址增量计算电路,加法器和地址寄存器组成;其连接关系为,地址增量计算电路的外输入为行地址模式信号线和列地址模式信号线,其输出连接至加法器;加法器的输入端连接至地址寄存器的输出端,加法器的输出端连接至地址寄存器的输入端;地址寄存器的外输入信号为行偏移地址信号线和列偏移地址信号线,地址寄存器的输入端连接至加法器的输出端,地址寄存器的输出端为地址生成单元的输出信号线;所说的离散余弦变换系数生成单元由选择器0,选择器1,移位器1、移位器2、移位器3,及只读存储器Ce、只读存储器Ce’、只读存储器Co构成;其连接关系为,移位器1、移位器2、移位器3的输入端分别连接到只读存储器Ce、只读存储器Ce’、只读存储器Co,移位器1、移位器2的输出端连接至选择器0,移位器3的输出端连接至选择器1;所说的输入数据调整单元由多个通用选择器构成,它将外部存储器的输入信号有选择的输出至特定的处理器单元;该输入数据调整单元包括输入广播模式和输入直播模式两种工作模式;所说的输出数据调整单元由多个通用选择器构成,它将特定的处理器单元的输出信号经过选择输出至外部存储器特定单元中;该输出数据调整单元有直通,交织模式,交织倒序模式三种工作模式。
2、一种用于大规模集成电路的信号处理方法,其特征在于,由无转置行列分离二维离散余弦变换和无转置行列分离二维离散余弦反变换两部分组成,具体包括以下步骤:
所说的二维离散余弦变换包括以下四步:
1)第一个读地址工作在第0种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第1种行地址模式和第8种列地址模式,第二个读地址行偏移地址4,列偏移地址0;处理器单元工作在离散余弦变换模式;输入数据调整单元工作在第一种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址8;在第16个周期时,外部存储器逐行存放矩阵Y’的上半部分;
2)第一个读地址工作在第0种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址4;第二个读地址工作在第1种行地址模式和第8种列地址模式,第二个读地址行偏移地址4,列偏移地址4;处理器单元工作在离散余弦变换模式;输入数据调整单元工作在第一种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址12;在第16个周期时,外部存储器逐行存放矩阵Y’的下半部分;
3)第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址0;第二个读地址工作在第4种行地址模式和第1种列地址模式,第二个读地址行偏移地址12,列偏移地址0;处理器单元工作在离散余弦变换模式;输入数据调整单元工作在广播模式,输出数据调整单元工作在输出直通模式,写地址工作在第6种行地址模式,写地址行偏移地址0;在第16个周期时,外部存储器隔行存放矩阵Z的偶行部分;
4)第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址4;第二个读地址工作在第4种行地址模式和第1种列地址模式,第二个读地址行偏移地址12,列偏移地址4;处理器单元工作在离散余弦变换模式;输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出直通模式,写地址工作在第7种行地址模式,写地址行偏移地址4;在第16个周期时,外部存储器隔行存放矩阵Z的奇行部分;至此,Z矩阵存放在行地址为0-7的存储器中;
上述各步骤中,所说的九种行列地址生成模式如下:
         AD类型             模式T=0,1,2…15
         0                  addr=T%4
         1                  addr=3-T%4
         2                  addr=(T%4)·2
         3                  addr=(T%4)·2+1
         4                  addr=T//4
         5                  addr=3-T//4
         6                  addr=(T//4)·2
         7                  addr=(T//4)·2+1
         8                  addr=常数
其中,%表示求模运算,//表示取商运算;
所说的Y’矩阵定义为:
Y’是行列分离二维N×N的离散余弦变换Z=CXCT的中间结果;其中X是N×N二维离散余弦变换输入矩阵, X = X LU X RU X LD X RD , XLU,XRU,XLD,XRD分别为X左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵;其中C是N×N二维离散余弦变换系数矩阵,
C = c 00 c 01 c 02 c 03 c 03 c 02 c 01 c 00 c 10 c 11 c 12 c 13 - c 13 - c 12 - c 11 - c 10 c 20 c 21 c 22 c 23 c 23 c 22 c 21 c 20 c 30 c 31 c 32 c 33 - c 33 - c 32 - c 31 - c 30 c 40 c 41 c 42 c 43 c 43 c 42 c 41 c 40 c 50 c 51 c 52 c 53 - c 53 - c 52 - c 51 - c 50 c 60 c 61 c 62 c 63 c 63 c 62 c 61 c 60 c 70 c 71 c 72 c 73 - c 73 - c 72 - c 71 - c 70 = Q T Ce CeP Co - CoP ; 其中 Q = 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ,
Ce = c 00 c 01 c 03 c 03 c 20 c 21 c 22 c 23 c 40 c 41 c 42 c 43 c 60 c 61 c 62 c 63 , Co = c 10 c 11 c 12 c 13 c 30 c 31 c 32 c 33 c 50 c 51 c 52 c 53 c 70 c 71 c 72 c 73 , P = 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 ; Y ' = Ce ( X LU + PX LD ) Co ( X LU - PX LD ) Ce ( X RU + PX RD ) Co ( X RU - PX RD ) = Y ′ LU Y ′ RU Y ′ LD Y ′ RD , 其中Y′LU,Y′RU,Y′LD,Y′RD分别为Y’左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵,
所说的Z矩阵定义为:
Z ′ = ( Y ′ LU + PY ′ LD ) C e T ( Y ′ RU - PY ′ RD ) Co ( Y ′ LU + PY ′ LD ) C e T ( Y ′ RU - PY ′ RD ) Co
Z由Z=QTZ′Q得到;
所说的输入直播模式定义:将地址Mk和Mk′的内容送至第2k个处理单元PEk,同时将地址Mk和Mk′的内容送至第2k+1个处理单元,映射关系表达为,Mk,Mk′→PE2k和Mk,Mk′→PE2k+1,k=0,1,2,3;
所说的输出交织模式定义:映射关系为:PE2k→Mk,PE2k+1→Mk+4,k=0,1,2,3;
所说的广播模式:即输入广播模式定义,输入广播模式有八种:前四种j=0,1,2,3用在离散余弦变换的列变换中,第j种映射关系为:将地址Mj和Mj′的内容送至第k个处理单元PEk,表达为Mj,Mj′→PEk
所说的输出直通模式:映射关系为:PEk→Mk,k=0,1,2,3,4,5,6,7其中偶序处理器输出数据映射到偶序存储器模块,奇序处理器输出数据映射到奇序存储器模块;
所说的无转置行列分离二维离散余弦反变换分为以下四步:
1)第一个读地址工作在第2种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第3种行地址模式和第8种列地址模式,第二个读地址行偏移地址0,列偏移地址0;处理器单元工作在离散余弦反变换模式;输入数据调整单元工作在第二种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址8;在第16个周期时,外部存储器隔行存放矩阵Y’的上半部分;
2)第一个读地址工作在第2种行地址模式和第8种列地址模式,第一个读地址行偏移地址0,列偏移地址0;第二个读地址工作在第3种行地址模式和第8种列地址模式,第二个读地址行偏移地址0,列偏移地址0;处理器单元工作在离散余弦反变换模式;输入数据调整单元工作在第二种输入直播模式,输出数据调整单元工作在输出交织模式,写地址工作在第4种行地址模式,写地址行偏移地址12;在第16个周期时,外部存储器隔行存放矩阵Y’的下半部分;
3)第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址0;第二个读地址工作在第4种行地址模式和第0种列地址模式,第二个读地址行偏移地址12,列偏移地址0;处理器单元工作在离散余弦反变换模式;输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出交织倒序模式,写地址工作在第4种行地址模式,写地址行偏移地址0;在第16个周期时,外部存储器逐行存放矩阵Z的上半部分;
4)第一个读地址工作在第4种行地址模式和第0种列地址模式,第一个读地址行偏移地址8,列偏移地址4;第二个读地址工作在第4种行地址模式和第0种列地址模式,第二个读地址行偏移地址12,列偏移地址4;处理器单元工作在离散余弦反变换模式;输入数据调整单元工作在输入广播模式,输出数据调整单元工作在输出交织倒序模式,写地址工作在第5种行地址模式,写地址行偏移地址4;在第16个周期时,外部存储器逐行存放矩阵Z的下半部分;至此,Z矩阵存放在行地址为0-7的存储器中;
上述各步骤中,所说的九种行列地址生成模式如下所示
         AD类型                   模式T=0,1,2…15
         0                        addr=T%4
         1                        addr=3-T%4
         2                        addr=(T%4)·2
         3                        addr=(T%4)·2+1
         4                        addr=T//4
         5                        addr=3-T//4
         6                        addr=(T//4)·2
         7                        addr=(T//4)·2+1
         8                        addr=常数
其中,%表示求模运算,//表示取商运算;
所说的Y’矩阵定义为:Y’是行列分离二维N×N的离散余弦反变换Z=CTXC的中间结果;其中X是N×N二维离散余弦反变换输入矩阵;其中C是N×N二维离散余弦变换系数矩阵; Y ' = Ce T X EE + Co X OE Ce T X EE - Co X OE Ce T X EO + Co X OO Ce T X EO - Co X OO = Y ′ LU Y ′ RU Y ′ LD Y ′ RD , 其中Y′LU,Y′RU,Y′LD,Y′RD分别为Y’左上4×4子矩阵,右上4×4子矩阵,左下4×4子矩阵,右下4×4子矩阵;Z矩阵定义为:
令Z′=RZ,则
Z′=RZ
因此 Z ′ T = Ce T Y ′ LU T + Co Y ′ LD T Ce T Y ′ RU T + Co Y ′ RD T P ( Ce T Y ′ LU T - Co Y ′ LD T ) P ( Ce T Y ′ RU T - Co Y ′ RD T )
Z’T由四个矩阵乘法四个矩阵加减运算得到,四个矩阵乘法即CeTY′LU T,CoY′LD T,PCeTY′LU T,PCoY′LD T;四个矩阵加减运算为CeTY′LU T+CoY′LD T,P(CeTY′LU T-CoY′LD T),CeTY′RU T+CoY′RD T,P(CeTY′RU T-CoY′RD T);
最后得到Z=RTZ′, R = I 4 0 0 P , I4是单位矩阵;
所说的输入直播模式定义:Mk映射到偶数标号的处理器单元中,Mk′映射到奇数标号的处理器单元中,即Mk→PE2k,Mk′→PE2k+1
所说的广播模式:即输入广播模式定义,输入广播模式有八种:后四种输入广播模式用在离散余弦反变换的列变换中,第(j+4)种映射关系为:Mj→PE2k,Mj′→PE2k+1,其中j=0,1,2,3;k=0,1,2…7
所说的输出直通模式定义:映射关系为:PEk→Mk,k=0,1,2,3,4,5,6,7其中偶序处理器输出数据映射到偶序存储器模块,奇序处理器输出数据映射到奇序存储器模块;
所说的输出交织倒序模式:映射关系为:PE2k→Mk,PE2k+1→M7-k,k=0,1,2,3,其中偶序处理器输出数据映射到前四个存储器模块,奇序处理器输出数据按逆序方式映射到后4个存储器模块。
CNB001297988A 2000-10-13 2000-10-13 无转置行列分离二维离散余弦正反变换电路及其方法 Expired - Fee Related CN1142683C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB001297988A CN1142683C (zh) 2000-10-13 2000-10-13 无转置行列分离二维离散余弦正反变换电路及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB001297988A CN1142683C (zh) 2000-10-13 2000-10-13 无转置行列分离二维离散余弦正反变换电路及其方法

Publications (2)

Publication Number Publication Date
CN1289213A CN1289213A (zh) 2001-03-28
CN1142683C true CN1142683C (zh) 2004-03-17

Family

ID=4593747

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001297988A Expired - Fee Related CN1142683C (zh) 2000-10-13 2000-10-13 无转置行列分离二维离散余弦正反变换电路及其方法

Country Status (1)

Country Link
CN (1) CN1142683C (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1326397C (zh) * 2003-06-02 2007-07-11 杭州高特信息技术有限公司 一种dct快速变换结构
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8428133B2 (en) 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
CN101452572B (zh) * 2007-12-07 2010-08-25 华中科技大学 基于三次平移算法的图像旋转vlsi结构
CN101562744B (zh) * 2008-04-18 2014-04-23 展讯通信(上海)有限公司 二维反变换装置
CN101355701B (zh) * 2008-09-09 2012-04-04 无锡中星微电子有限公司 一种离散余弦变换的整数反变换装置及其方法
CN102065309B (zh) * 2010-12-07 2012-12-05 青岛海信信芯科技有限公司 一种dct实现方法及dct实现电路
CN102404569B (zh) * 2011-11-08 2014-01-08 复旦大学 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法
CN102387367B (zh) * 2011-11-08 2014-01-08 复旦大学 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding

Also Published As

Publication number Publication date
CN1289213A (zh) 2001-03-28

Similar Documents

Publication Publication Date Title
CN1142683C (zh) 无转置行列分离二维离散余弦正反变换电路及其方法
US8539201B2 (en) Transposing array data on SIMD multi-core processor architectures
Zhao et al. High-performance multiplierless transform architecture for HEVC
CN101330616B (zh) 视频解码过程中反离散余弦变换的硬件实现装置及方法
CN1565083A (zh) 减少位深的量子化方法
CN87104093A (zh) 一维余弦变换的计算装置以及包括该计算装置的图象编码装置和解码装置
CN1801940A (zh) 整型变换电路和整型变换方法
CN1685369A (zh) 视频编码的低复杂性和统一标准的变换
CN101989253A (zh) 离散余弦转换电路及使用其的影像处理装置
CN1147155C (zh) Dct运算装置
CN109993275A (zh) 一种信号处理方法及装置
CN101106714A (zh) 应用于视频和图像处理的变换方法
CN104244010A (zh) 提高数字信号变换性能的方法及数字信号变换方法和装置
CN109740740A (zh) 卷积计算的定点加速方法及装置
Qararyah et al. Fibha: fixed budget hybrid CNN accelerator
Chang et al. A fast algorithm-based cost-effective and hardware-efficient unified architecture design of 4× 4, 8× 8, 16× 16, and 32× 32 inverse core transforms for HEVC
Wong et al. Low bitwidth CNN accelerator on FPGA using Winograd and block floating point arithmetic
Yu et al. MAMIQA: No-reference image quality assessment based on multiscale attention mechanism with natural scene statistics
CN1816144A (zh) 一种二维离散余弦变换装置及方法
CN1326566A (zh) 对多个带符号的数据值执行算术运算的数据处理系统和方法
CN104811738B (zh) 基于资源共享的低开销多标准8×8一维离散余弦变换电路
CN110737869B (zh) Dct/idct乘法器电路优化方法及应用
Abdelrasoul et al. Real‐time unified architecture for forward/inverse discrete cosine transform in high efficiency video coding
CN1874510A (zh) 一种用于视频编码的整数离散余弦变换方法
CN101562744B (zh) 二维反变换装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040317

Termination date: 20091113