CN101355701A - 一种离散余弦变换的整数反变换装置及其方法 - Google Patents

一种离散余弦变换的整数反变换装置及其方法 Download PDF

Info

Publication number
CN101355701A
CN101355701A CN 200810119773 CN200810119773A CN101355701A CN 101355701 A CN101355701 A CN 101355701A CN 200810119773 CN200810119773 CN 200810119773 CN 200810119773 A CN200810119773 A CN 200810119773A CN 101355701 A CN101355701 A CN 101355701A
Authority
CN
China
Prior art keywords
level
register
output
input
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200810119773
Other languages
English (en)
Other versions
CN101355701B (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.)
Wuxi Vimicro Corp
Original Assignee
Vimicro Corp
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CN 200810119773 priority Critical patent/CN101355701B/zh
Publication of CN101355701A publication Critical patent/CN101355701A/zh
Application granted granted Critical
Publication of CN101355701B publication Critical patent/CN101355701B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种离散余弦变换的整数反变换装置,包括第一至第四级反变换单元,采用流水线方式对多组输入值进行处理,第一级反变换单元在第1~4拍,计算出输入值的倍数值P0A、P1B和P2B、P0C、P1D和P2D并锁存,在第2~5拍将倍数值依次输出到第二级反变换单元锁存;第二级反变换单元用于先对锁存的倍数值做加、减运算得到4个中间值,再在6~7拍对4个中间值做加、减运算得到4个输出值,在第7~8拍输出到第三级反变换单元,第三级反变换单元在第7~10拍依次将4个输出值输出到第四级反变换单元。本发明可以使用较少的硬件资源,实现较快的运算速度。

Description

一种离散余弦变换的整数反变换装置及其方法
技术领域
本发明涉及离散余弦变换(DCT)的反变换,尤其涉及一种可实现DCT的整数反变换的装置及其方法。
背景技术
为了进一步节省图像传输码率,需要对图像信号进行压缩,一般方法为去除图像信号中的相关性及减小图像编码的动态范围,通常采用变换编码及量化技术。变换编码将图像时域信号变换成频域信号,在频域中,图像信号的能量大部分集中在低频区域,相对于时域信号,码率有较大的下降。图像中的变换编码通常采用离散余弦变换,而RV(real video)编解码对图像或预测残差采用了4×4整数离散余弦变换技术,避免了以往标准中使用的通用8×8离散余弦变换时,逆变换经常出现的失配问题。
RV正向离散余弦变换公式如下,其中a,b,c,d表示输入的图像或预测残差。
A=13a+13b+13c+13d
B=17a+7b-7c-17d
C=13a-13b-13c+13d
D=7a-17b+17c-7d
RV整数变换是一个分离的二维变换,通常利用以上公式先进行垂直方向上的一维变换然后进行水平方向上的一维变换。
相应的,在整数反变换中用到的公式如下:
a′=13A+17B+13C+7D
b′=13A+7B-13C-17D
c′=13A-7B-13C+17D
d′=13A-17B+13C-7D
为了提高RV解码器的运算速度,需要采用硬件来实现RV整数反变换中的上述运算,并且需要使用尽可能少的资源来取得足够的运算速度。而目前尚无硬件RV解码器方案问世。
对于其他应用场景下的4×4大小的DCT变换的整数反变换,其通用的反变换公式如下:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其中,A、B、C和D为需进行DCT整数反变换的4个输入值,a′,b′,c′和d′为进行整数反变换后得到的4个输出值,P0,P1,P2为整数反变换公式中的系数,在不同应用场景下可能不同。
明显,对基于其它应用场景下的DCT整数反变换,存在的问题是相同的。
发明内容
本发明要解决的技术问题是提供一种离散余弦变换的整数反变换装置及其方法,可以使用较少的硬件资源,实现较快的运算速度。
为了解决上述问题,本发明提供了一种离散余弦变换的整数反变换装置,用于依照下式对一组4个输入值A、B,C和D进行离散余弦变换的整数反变换运算,得到4个输出值a′,b′,c′和d′,其中的系数P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,该装置包括第一级、第二级、第三级和第四级反变换单元,采用流水线方式对多组输入值进行处理,每一组输入值的整数反变换用10拍完成,以下计为第1拍到第10拍,每拍为一时钟周期,其中:
第一级反变换单元用于在第1~4拍,根据依次输入的A、B、C和D分别计算出输入值的倍数值P0A、P1B和P2B、P0C、P1D和P2D并锁存,在第2~5拍将所述倍数值依次输出到第二级反变换单元锁存,从第5拍开始对下一组输入值的处理;
第二级反变换单元用于在第4~5拍,对锁存的倍数值做加、减运算得到4个中间值b0,b1,b2,b3,b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D;在6~7拍对4个中间值做加、减运算,得到4个输出值a′,c′,b′,d′,a′=b0+b3,d′=b0-b3,b′=b1+b2,c′=b1-b2,第7拍将a′,d′输出到第三级反变换单元,在第8拍将b′,c′输出到第三级反变换单元并开始对下一组输入值的处理;
第三级反变换单元用于在第7~10拍依次将4个输出值a′,b′,c′,d′输出到第四级反变换单元,从第10拍的下一拍开始对下一组输入值的处理;
第四级反变换单元用于锁存输出值a′,b′,c′和d′,由后续装置依次读出。
进一步地,上述整数反变换装置还可具有以下特点:
所述第一级反变换单元包括一级输入寄存器、一级运算单元、一级输出寄存器、一级输出选择器和一级计数器,其中:
所述一级计数器用于对时钟周期进行计数,向所述一级运算单元和一级输出选择器输出在I0,I1,I2,I3之间循环计数的计数值,第一次循环计数值I0,I1,I2,I3对应于对第一组输入值进行整数反变换的第1~4拍;
所述一级输入寄存器用于锁存依次输入的A、B、C和D并输出到所述一级运算单元;
所述一级运算单元,用于在计数值为I0时对A进行运算得到P0A,在计数值为I1时对B进行运算得到P1B和P2B,在计数值为I2时对C进行运算得到P0C,在计数值为I3时对D进行运算得到P1D和P2D,每拍的运算结果在该拍存入所述一级输出寄存器;
所述一级输出寄存器用于在各拍分别锁存倍数值P0A、P1B和P2B、P0C、P1D和P2D并输出到所述一级输出选择器;
所述一级输出选择器用于在计数值为I1时,将P0A选通输出,在计数值为I2时,将P1B和P2B选通输出,在计数值为I3时,将P0C选通输出,在计数值为I0时,将P1D和P2D选通输出,以上倍数值均输出到第二级反变换单元。
进一步地,上述整数反变换装置还可具有以下特点:
所述离散余弦变换的整数反变换为RV整数反变换,P0=13,P1=17,P2=7;所述一级运算单元包括第一移位运算单元、第二移位运算单元、第三移位运行单元、一级运算选择器、一级加法器和一级减法器,所述一级输出寄存器包括一级加法寄存器和一级减法寄存器,其中:
所述第一移位运算单元用于将输入值左移3位后输出;
所述第二移位运算单元用于将输入值左移2位并加上该输入值后输出;
所述第三移位运算单元用于将输入值左移4位后输出;
所述一级运算选择器用于在计数值为I0和I2时,将第一和第三移位运算单元的输出选通为一级加法器的两个输入,在计数值为I1和I3时,将第三移位运算单元和一级输入寄存器的输出选通为一级加法器的两个输入,同时将第一移位运算单元和一级输入寄存器的输出选通为一级减法器的两个输入;
所述一级加法器用于将两个输入相加后写入一级加法寄存器,在计数值为I0,I1,I2,I3时结果分别为13A,17B,13C,17D;
所述一级减法器用于将第一移位运算单元的输出减去一级输入寄存器的输出后写入一级加法寄存器,在计数值为I1,I3时结果分别为7B,7D;
所述一级加法寄存器和一级减法寄存器用于锁存写入的数值并输出到一级输出选择器。
进一步地,上述整数反变换装置还可具有以下特点:
所述第二级反变换单元包括至少6个二级输入寄存器、二级运算选择器、二级加法器、二级减法器、二级加法寄存器、二级减法寄存器、二级输出选择器、4个中间值寄存器和二级计数器,其中:
所述二级计数器比一级计数器延迟3拍计数,用于向所述二级运算选择器和二级输出选择器输出在I0′,I1′,I2′,I3′之间循环计数的计数值;
所述6个二级输入寄存器用于分别锁存第一级反变换单元输出的倍数值P0A、P1B和P2B、P0C、P1D和P2D并输出到二级运算选择器;
所述二级运算选择器与所述6个二级输入寄存器和4个中间值寄存器相连,用于在计数值为I0′时,将P0A和P0C选通为二级加法器以及二级减法器的两个输入,在计数值为I1′时,将P1B和P2D选通为二级加法器的两个输入,将P2B和P1D选通为二级减法器的两个输入,在计数值为I2′时,将b0和b3选通为二级加法器以及二级减法器的两个输入,在计数值为I3′时,将b1和b2选通二级加法器以及二级减法器的两个输入;
所述二级加法器用于将两个输入相加后写入二级加法寄存器,在计数值为I0′,I1′,I2′,I3′时结果分别为b0,b3,a′,b′;
所述二级减法器用于将两个输入相减后写入二级减法寄存器,在计数值为I0′,I1′,I2′,I3′时结果分别为b1,b2,d′,c′;
所述二级加法寄存器和二级减法寄存器用于锁存写入的数值并输出到二级输出选择器;
所述二级输出选择器用于在计数值为I0′时,将b0和b3选通输出到中间值寄存器,在计数值为I1′时,将b1和b2选通输出到中间值寄存器,在计数值为I2′时,将a′和d′选通输出到第三级反变换单元,在计数值为I3′时,将b′和c′选通输出到第三级反变换单元;
所述4个中间值寄存器用于分别锁存所述4个中间值b0,b1,b2,b3并输出到所述二级运算选择器。
进一步地,上述整数反变换装置还可具有以下特点:
所述第三级反变换单元包括至少2个三级输入寄存器、三级输出选择器和三级计数器,所述第四级反变换单元包括一四级输出寄存器,其中:
所述三级计数器比一级计数器延迟6拍计数,用于向所述三级输出选择器输出在I0″,I1″,I2″,I3″之间循环计数的计数值;
所述2个三级输入寄存器用于分别锁存输出值c′,d′;
所述三级输出选择器用于在计数值为I0″和I1″时,分别将二级反变换单元输出的a′和b′连通到第四级反变换单元的四级输出寄存器,在计数值为I2″和I3″时,分别将锁存的输出值c′,d′连通到第四级反变换单元的四级输出寄存器。
进一步地,上述整数反变换装置还可具有以下特点:
所述计数值I0,I1,I2,I3、计数值I0′,I1′,I2′,I3′和计数值I0″,I1″,I2″,I3″均为0,1,2,3,所述一级、二级和三级计数值均为4位计数器,用于对4组输入进行循环计数,其中的低2位输出到相应的选择器和运算器。
为了解决上述技术问题,本发明还提供了一种离散余弦变换的整数反变换装置,用于依照下式对一组4个输入值A、B、C和D进行离散余弦变换的整数反变换运算,得到4个输出值a′,b′,c′和d′,其中的系数P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,该装置包括第一级、第二级、第三级和第四级反变换单元,采用流水线方式对多组输入值进行处理,其中对每组输入值的处理如下:
第一级反变换单元用于对依次输入的A、B、C和D,分别计算出倍数值P0A、P1B和P2B、P0C、P1D和P2D并锁存,然后将所述倍数值依次输出到第二级反变换单元;
第二级反变换单元用于锁存输入的倍数值并做加、减运算得到4个中间值b0,b1,b2,b3,b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D;然后对4个中间值做加、减运算,得到4个输出值a′,c′,b′,d′,a′=b0+b3,d′=b0-b3,b′=b1+b2,c′=b1-b2,再将a′,c′,b′,d′输出到第三级反变换单元;
第三级反变换单元用于依次将4个输出值a′,b′,c′,d′输出到第四级反变换单元;
第四级反变换单元用于锁存输出值a′,b′,c′和d′,由后续装置依次读出。
进一步地,上述整数反变换装置还可具有以下特点:
所述第一级反变换单元包括一级输入寄存器、一级运算单元、一级输出寄存器、一级输出选择器和一级计数器,所述第二级反变换单元包括6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2,其中:
所述一级计数器用于对时钟周期进行计数,向所述一级运算单元和一级输出选择器输出从小到大循环计数的4个计数值I0,I1,I2,I3
所述一级输入寄存器用于锁存输入值并输出到所述一级运算单元;
所述一级运算单元,用于在输入计数值为I0,I2时完成对输入值的“乘P0”运算,在输入计数值为I1,I3时完成对输入值的“乘P1和乘P2”运算,得到的倍数值存入所述一级输出寄存器;
所述一级输出寄存器用于锁存输入的倍数值并输出到一级输出选择器;
所述一级输出选择器用于在计数值为I0,I1,I2,I3时,将一级输出寄存器在上一时钟周期锁存的“乘P0”或“乘P1”运算结果分别连通到二级输入寄存器dina,dinb1,dinc,dind1,在计数值为I1,I3时,将一级输出寄存器在上一时钟周期锁存的“乘P2”运算结果分别连通到二级输入寄存器dinb2,dind2。
进一步地,上述整数反变换装置还可具有以下特点:
所述整数反变换运算为RV解码时采用的整数反变换运算,P0=13,P1=17,P2=7,所述一级运算单元包括第一移位运算单元、第二移位运算单元、第三移位运行单元、一级运算选择器、一级加法器和一级减法器,所述一级输出寄存器包括一级加法寄存器和一级减法寄存器,其中:
所述第一移位运算单元用于将输入值左移3位后输出;
所述第二移位运算单元用于将输入值左移2位并加上该输入值后输出;
所述第三移位运算单元用于将输入值左移4位后输出;
所述一级运算选择器用于在计数值为I0,I2时,将第一和第三移位运算单元的输出选通为一级加法器的两个输入,在计数值为I1,I3时,将第三移位运算单元和一级输入寄存器的输出选通为一级加法器的两个输入,同时将第一移位运算单元和一级输入寄存器的输出选通为一级减法器的两个输入;
所述一级加法器用于将两个输入相加后写入一级加法寄存器;
所述一级减法器用于将第一移位运算单元的输出减去一级输入寄存器的输出后写入一级加法寄存器;
所述一级加法寄存器和一级减法寄存器用于锁存写入的数值并输出到一级输出选择器。
进一步地,上述整数反变换装置还可具有以下特点:
所述第二级反变换单元包括6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2,二级运算选择器、二级加法器、二级减法器、二级加法寄存器、二级减法寄存器、二级输出选择器、4个中间值寄存器Zb0,Zb1,Zb2,Zb3和二级计数器;所述第三级反变换单元包括2个三级输入寄存器Oc,Od、三级输出选择器和三级计数器;第四级反变换单元包括四级输出寄存器,其中:
所述二级计数器用于向所述二级运算选择器和二级输出选择器输出从小到大循环计数的四个计数值I0′,I1′,I2′,I3′;
所述6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2用于分别锁存第一级反变换单元输出的6个倍数值;
所述二级运算选择器用于在计数值为I0′时,将寄存器dina和寄存器dinc的输出与二级加法器及二级减法器的输入选通,计数值为I1′时,将寄存器dinb1和寄存器dind2的输出与二级加法器的输入连通,同时将寄存器dinb2和寄存器dind1的输出与二级减法器的输入连通,计数值为I2′时,将寄存器Zb0和寄存器Zb1的输出与二级加法器及二级减法器的输入选通,计数值为I3′时,将寄存器Zb1和寄存器Zb2的输出与二级加法器及二级减法器的输入选通;
所述二级加法器用于将两个输入相加后写入二级加法寄存器;
所述二级减法器用于将两个输入相减后写入二级减法寄存器,其中以寄存器dina,寄存器dinb2,寄存器Zb0,寄存器Zb1的输出为被减数;
所述二级加法寄存器和二级减法寄存器用于锁存写入的数值并输出到二级输出选择器;
所述二级输出选择器用于在计数值为I0′,I1′,I2′,I3′时,分别将二级加法寄存器上一时钟周期锁存的值选通输出到寄存器Zb0,寄存器Zb3,三级输出选择器和三级输出选择器,分别将二级减法寄存器上一时钟周期锁存的值选通输出到寄存器Zb1,寄存器Zb2,寄存器Oc,寄存器Od;
所述三级计数器用于向所述三级输出选择器输出从小到大循环计数的四个计数值I0″,I1″,I2″,I3″;
所述2个三级输入寄存器Oc,Od分别用于对输入值进行锁存并输出到三级输出选择器;
所述三级输出选择器用于在计数值为I0″和I1″时,将从二级输出选择器直接输出的值连通到所述四级输出寄存器,在计数值为I2″和I3″时,分别将寄存器Oc和寄存器Od的输出连通到所述四级输出寄存器。
为了解决上述技术问题,本发明还提供了一种离散余弦变换的整数反变换方法,用于依照下式对一组4个输入值A、B、C和D进行离散余弦变换的整数反变换,得到4个输出值a′,b′,c′和d′,其中的P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,通过四级流水完成对多组输入值的整数反变换,从接收到第一个输入值A开始,执行以下处理:
第一级在第1~4拍,根据依次输入的A、B、C和D计算出P0A,P1B,P2B,P0C,P1D和P2D,在第2~5拍输出到第二级锁存,且从第5拍开始对下一组输入值的处理;
第二级在第4~7拍,先做加、减运算b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D并锁存得到的中间值b0,b1,b2,b3,再做加、减运算a′=b0+b3,b′=b1+b2,c′=b1-b2,d′=b0-b3,第7拍将a′,d′输出到第三级,在第8拍将b′,c′输出到第三级且开始对下一组输入值的处理;
第三级用于在第7~10拍依次将a′,b′,c′,d′输出到第四级,且从第11拍开始对下一组输入值的处理;
第四级反变换单元锁存输出值a′,b′,c′和d′,由后续装置读出。
进一步地,上述整数反变换方法还可具有以下特点:
所述第一级在第1拍根据输入值A,计算出P0A并锁存;第2拍根据输入值B,计算出P1B和P2B并锁存,同时将P0A输出到第二级;第3拍根据输入值C,计算出P0C并锁存,同时将P1B和P2B输出到第二级;第4拍根据输入值D,计算出P1D和P2D并锁存,同时将P0C输出到第二级;第5拍将P1D和P2D输出到第二级。
进一步地,上述整数反变换方法还可具有以下特点:
所述第二级在第4拍,对输入的P0A和P0C作加法和减法运算,得到两个中间值b0和b1并锁存,其中b0=P0A+P0C,b1=P0A-P0C;在第5拍,对输入的P1B、P2B、P1D和P2D作加法和减法运算,得到另两个中间值b2和b3并锁存,其中b2=P2B-P1D,b3=P1B+P2D;在第6拍,对得到的中间值b0和b3作加法和减法运算,得到输出值a′=b0+b3,d′=b0-b3并锁存;在第7拍,对得到的中间值b0和b3作加法和减法运算,得到输出值b′=b1+b2,c′=b1-b2并锁存,同时将a′和d′输出到第三级;在第8拍,将b′和c′输出到第三级。
进一步地,上述整数反变换方法还可具有以下特点:
所述第三级在第7拍将输入的a′直接输出到第四级,同时将输入的b′锁存;在第8拍将输入的b′直接输出到第四级,同时将输入的c′锁存;在第9拍,将锁存的c′输出到第四级;在第10拍,将锁存的d′输出到第四级。
进一步地,上述整数反变换方法还可具有以下特点:
所述离散余弦变换的整数反变换为用于RV解码器的离散余弦变换的RV整数反变换,所述P0=13,P1=17,P2=7;所述第一级通过做两级运算来得到所述13A,17B,7B,13C,17D和7D,对输入值A,在第一级先做左移3位运算得到8A,以及左移2位再加A的运算得到5A,然后在第二级做加法运算得到13A,对输入值B,在第一级先做左移4位运算、左移3位运算得到16B和8B,然后在第二级对16B和B做加法运算,对8B和B做减法运算得到7B,对输入值C,第一级先做左移3位运算得到8C,以及左移2位再加C的运算得到5C,然后在第二级做加法运算得到13C,对输入值D,在第一级先做左移4位运算、左移3位运算得到16D和8D,然后在第二级对16D和D做加法运算,对8D和D做减法运算得到7D。
本发明离散余弦变换的整数反变换装置和方法没有使用乘法运算单元,充分利用了流水线实现技术,最大限度地减少了加减法器的使用,是利用硬件资源最少的一种解决方案。
附图说明
图1是本发明实施例一级运算单元的硬件结构图。
图2是本发明实施例二级运算单元的硬件结构图。
图3是本发明实施例三级运算单元的硬件结构图。
图4是本发明实施例整数反变换装置实现流水线运算的工作示意图。
图5是本发明实施例在连续组数数据输入时的流水时序图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。
本实施例以RV解码器中的DCT变换的整数反变换装置为例,该装置共分为四级流水实现。以下将每一级流水使用的硬件资源作为一级反变换单元,即该整数反变换装置包括第一级反变换单元PIPE1、第二级反变换单元PIPE2、第三级反变换单元PIPE3和第四级反变换单元PIPE4。
第一级反变换单元PIPE1的硬件结构如图1所示,其中A、B、C、D为顺序输入的4个需进行反变换的数值,依次输入到一级输入寄存器锁存。与一级输入寄存器相连的3个运算单元分别是:实现“乘8”运算的第一移位运算单元,即将输入值左移3位,图中用“<<<3”表示;实现“乘5”运算的第二移位运算单元,即将输入值左移2位后再加该输入值,图中用“<<<2+1”表示;实现“乘16”运算的第三移位运算单元,即将输入值左移4位,图中用“<<<4”表示。上述3个移位运算单元的输出均连接到一级运算选择器的输入端,该一级运算选择器的另外1个输入端直接接一级输入寄存器。该一级运算选择器的控制端连接到一级计数器idctcnt(四位表示)的低2位idctcnt[1:0],该一级计数器从0到15依次循环计数,用于完成四组4点运算。如果整数反变换公式中的系数P0,P1,P2不同,则上述运算单元的个数和实现的运算都可能不同,但均可采用移位运算和加、减法运算的方式来实现整数的乘法运算。
一级运算选择器的两路输出sumain11及sumain12作为一级加法器的两个输入信号,另两路输出subain11及subain12作为一级减法器的两个输入信号。一级加法器的输出送入一级加法寄存器锁存,该一级加法寄存器的输出suma_1连接到一级输出选择器的输入端,一级减法器的输出送入一级减法寄存器锁存,该一级减法寄存器的输出suba_1连接到一级输出选择器的输入端。另图1~图3中均略去了输入到选择器、寄存器和计数器的时钟信号CLK。
第一级反变换单元的运算由idctcnt[1:0]的值(从0到3)来控制,每一个值对应的运算如下所示:
当idctcnt[1:0]=0时, su min 11 = A < < < 3 su min 12 = A < < < 2 + A subin 11 = 0 subin 12 = 0 - - - ( 11 )
当idctcnt[1:0]=1时, su min 11 = B < < < 4 su min 12 = B subin 11 = B < < < 3 subin 12 = B - - - ( 12 )
当idctcnt[1:0]=2时, su min 11 = C < < < 3 su min 12 = C < < < 2 + C subin 11 = 0 subin 12 = 0 - - - ( 13 )
当idctcnt[1:0]=3时, su min 11 = D < < < 4 su min 12 = D subin 11 = D < < < 3 subin 12 = D - - - ( 14 )
请参照图4,第一级流水线的工作过程是:
在第一拍,idctcnt[1:0]=0,执行以下处理:
将A输入到一级输入寄存器中,一级运算选择器将第一移位运算单元和第二移位运算单元的输出分别连通到该一级运算选择器的两路输出sumain11和sumain12并在一级加法器中完成加法运算,结果锁存在一级加法寄存器,其值为8A+5A=13A;此时一级运算选择器的另两路输出subain11及subain12不与任何输入接通,也不进行减法运算。
在第二拍,idctcnt[1:0]=1,执行以下处理:
一级输出选择器将一级加法寄存器的输出连通到寄存器dina,将一级加法寄存器上一拍锁存的值13A写入寄存器dina。
同时,将B输入到一级输入寄存器中,一级运算选择器将第三移位运算单元和一级输入寄存器的输出分别连通到该一级运算选择器的两路输出sumain11和sumain12并在一级加法器中完成加法运算,结果锁存在一级加法寄存器,其值为16B+B=17B。
同时,将第一移位运算单元的输出连通到一级运算选择器的输出subain11,将一级输入寄存器的输出连通到一级运算运算器的输出subain12并在一级减法器中完成subain11减subain12的运算,结果锁存在一级减法寄存器,其值为8B-B=7B。
在第三拍,idctcnt[1:0]=2,执行以下处理:
一级输出选择器将一级加法寄存器的输出suma_1连通到寄存器dinb2,将一级减法寄存器的输出suba_1连通到寄存器dinb1,将一级加法寄存器上一拍锁存的值17B写入寄存器dinb2,将一级减法寄存器上一拍锁存的值7B写入寄存器dinb1。
同时,将C输入到一级输入寄存器中,一级运算选择器将第一移位运算单元和第二移位运算单元的输出分别连通到该一级运算选择器的两路输出sumain11和sumain12并在一级加法器中完成加法运算,结果锁存在一级加法寄存器,其值为8C+5C=13C。此时一级运算选择器的另两路输出subain11及subain12不与任何输入接通,也不进行减法运算。
在第四拍,idctcnt[1:0]=3,执行以下处理:
一级输出选择器将一级加法寄存器的输出suma_1连通到寄存器dinc,将一级加法寄存器上一拍锁存的值13C写入寄存器dinc。
同时,将D输入到一级输入寄存器,一级运算选择器将第三移位运算单元和一级输入寄存器的输出分别连通到该一级运算选择器的两路输出sumain11和sumain12并在一级加法器中完成加法运算,结果锁存在一级加法寄存器,其值为16D+D=17D。
同时,将第一移位运算单元的输出连通到一级运算选择器的一输出subain11,将一级输入寄存器的输出连通到一级运算选择的另一输出subain12并在一级减法器中完成subain11减subain12的运算,结果锁存在一级减法寄存器,其值为8D-D=7D。
至此,第一级反变换单元就基本完成了对一组4点的第一级反变换处理,第一级反变换处理还包括在第五拍,将一级加法寄存器和一级减法寄存器中的值取出,即:一级输出选择器将一级加法寄存器的输出suma_1连通到寄存器dind2,将一级减法寄存器的输出suba_1连通到寄存器dind1,将一级加法寄存器上一拍锁存的值17D写入寄存器dind2,将一级减法寄存器中上一拍锁存的值7D写入寄存器dind1。但从第五拍开始,已经可以开始另一组4点的反变换运算了。
第二级反变换单元PIPE2的硬件结构如图2所示,包括5个二级输入寄存器,分别用寄存器dina(13A)、寄存器dinb1(17B)、寄存器dinb2(7B)、寄存器dinc(13C)、寄存器dind1(17D)和寄存器dind2(7D)表示,括号中是该寄存器中锁存的数值。6个二级输入寄存器的输出均作为二级运算选择器的输入,该二级运算选择器的控制端连接到二级计数器idctcnt_se(四位表示)的低2位idctcnt_se[1:0],Idctcnt_se的启动信号比idctcnt延迟3拍即3个时钟周期,即从第4拍开始计数,该延迟可以由外部电路来控制。
二级运算选择器的两路输出sumain21及sumain22作为二级加法器的两个输入信号,另两路输出subain21及subain22作为二级减法器的两个输入信号。二级加法器的输出送入二级加法寄存器锁存,该二级加法寄存器的输出suma_2连接到二级输出选择器的输入端,二级减法器的输出送入二级减法寄存器锁存,该二级减法寄存器的输出suba_2连接到二级输出选择器的输入端。二级输出选择器的输出端与4个中间值寄存器Zb0~Zb3和2个三级输入寄存器连接,该4个中间值寄存器的输出同时也作为二级运算选择器的输入。
第二级反变换单元的运算由idctcnt_se[1:0]的值(从0到3,相当于第4拍到第7拍)来控制,每一个值对应的运算如下所示:
当idctcnt_se[1:0]=0时, su min 21 = dina su min 22 = dinc subin 21 = dina subin 22 = dinc
当idctcnt_se[1:0]=1时, su min 21 = dinb 2 su min 22 = dind 2 subin 21 = dinb 1 subin 22 = dind 2
当idctcnt_se[1:0]=2时, su min 21 = b 0 su min 22 = b 3 subin 21 = b 0 subin 22 = b 3
当idctcnt_se[1:0]=3时, su min 21 = b 1 su min 22 = b 2 subin 21 = b 1 subin 22 = b 2
式中的dina,dinb1,dinb2,dinc,dind1,dind2,Zb0,Zb1,Zb2,Zb3分别表示相应寄存器中的数值。
另外,下面将涉及到的中间值有:
b0=13A+13C
b1=13A-13C
b2=7B-17D
b3=17B+7D
a′=b0+b3
d′=b0-b3
b′=b1+b2
c′=b1-b2
存储这些中间值的寄存器直接用这些值的符号来命名。
请参照图4,第二级流水线的工作过程是:
在第四拍,idctcnt_se[1:0]=0,执行以下处理:
二级运算选择器将寄存器dina的输出连通到该二级运算选择器的输出sumain21和subain21,将寄存器dinc的输出连通到该二级运算选择器的输出sumain22和subain22,在二级加法器中完成dina和dinc的加法运算,结果锁存的二级加法寄存器中,值为dina+dinc=13A+13C;同时在二级减法器中完成dina和dinc的减法运算,结果锁存的二级减法寄存器中,值为dina-dinc=13A-13C。
在第五拍,idctcnt_se[1:0]=1,执行以下处理:
二级输出选择器将二级加法寄存器的输出suma_2连通到寄存器Zb0,将二级减法寄存器的输出sumb_2连通到寄存器Zb1,即将二级加法寄存器在上一拍锁存的值13A+13C写入寄存器Zb0,将二级减法寄存器在上一拍锁存的值13A-13C写入寄存器Zb1。
同时,二级运算选择器将寄存器dinb2和寄存器dind1的输出分别连通到该二级运算选择器的输出sumain21和sumain21,将寄存器dinb1和寄存器dind2的输出连通到该二级运算选择器的输出subain22和subain22,在二级加法器中完成dinb2和dind1的加法运算,结果锁存的二级加法寄存器中,值为dinb2+dind1=17B+7D;同时在二级减法器中完成dinb1减dind2的运算,结果锁存的二级减法寄存器中,值为dinb1-dind2=7B-17D。
在第六拍,idctcnt_se[1:0]=2,执行以下处理:
二级输出选择器将二级加法寄存器的输出suma_2连通到寄存器Zb3,将二级减法寄存器的输出sumb_2连通到寄存器Zb2,即将二级加法寄存器上一拍锁存的值17B+7D写入寄存器Zb3,将二级减法寄存器上一拍锁存的值7B-17D写入寄存器Zb2。
同时,二级运算选择器将寄存器Zb0的输出分别连通到该二级运算选择器的输出sumain21和subain21,将寄存器Zb3的输出连通到该二级运算选择器的输出sumain22和subain22,在二级加法器中完成b0和b3的加法运算,结果锁存的二级加法寄存器中,值为b0+b3=13A+17B+13C+7D;同时在二级减法器中完成b0减b3的运算,结果锁存的二级减法寄存器中,值为b0-b3=13A-17B+13C-7D。
在第七拍,idctcnt_se[1:0]=3,执行以下处理:
二级运算选择器将寄存器Zb1的输出分别连通到该二级运算选择器的输出sumain21和subain21,将寄存器Zb2的输出连通到该二级运算选择器的输出sumain22和subain22,在二级加法器中完成b1和b2的加法运算,结果锁存的二级加法寄存器中,值为b1+b2=13A+7B-13C-17D;同时在二级减法器中完成b1减b2的运算,结果锁存在二级减法寄存器中,值为b1-b2=13A-7B-13C+17D。
二级输出选择器将二级加法寄存器的输出suma_2连通到三级输出选择器,将二级减法寄存器的输出sumb_2连通到寄存器Od,即将二级加法寄存器上一拍锁存的值13A+17B+13C+7D(等于a’)输出到三级输出选择器,将二级减法寄存器上一拍锁存的值13A-17B+13C-7D写入寄存器Od。
至此,第二级反变换单元就基本完成了对一组4点的第二级反变换处理,第二级反变换处理还包括在第八拍,将二级加法寄存器和二级减法寄存器中的值取出,即:二级输出选择器将二级加法寄存器的输出suma_2连通到三级输出选择器,将二级减法寄存器的输出suba_2连通到寄存器Oc,即将二级加法寄存器上一拍锁存的值13A+7B-13C-17D(等于b’)输出到三级输出选择器,将二级减法寄存器上一拍锁存的值13A-7B-13C+17D写入寄存器Oc。但从第八拍开始,已经可以开始另一组4点的反变换运算了。
第三级反变换单元PIPE3和第四级反变换单元PIPE4的硬件结构如图3所示,这两级反变换单元主要是完成一个串并转换的工作。其中第三级反变换单元包括2个三级输入寄存器、一个三级输出选择器和一个三级计数器idctcnt_se,2个三级输入寄存器即寄存器Oc和寄存器Od的输出作为该三级输出选择器的输入,该三级输出选择器的另两路输入直接与二级输出选择器的输出相连。该三级输出选择器的控制端连接到三级计数器idctcnt_se的低二位idctcnt_se[1:0]。该三级输出选择器的一路输出则连接到第四级的四级输出寄存器。三级计数器idctcnt_se比一级计数器idctcnt延迟6拍启动,从第7拍开始计数,即表示从数据输入开始第六拍后四点一维整数反变换运算完成,结果开始输出。
第三级反变换单元的处理由idctcnt_th[1:0]的值(从0到3,相当于第7拍到第10拍)来控制,其工作流程如下:
在第七拍,idctcnt_th[1:0]=0,执行以下处理:
二级输出选择器将二级加法寄存器的输出suma_2直接连通到三级输出选择器,而三级输出选择器将该路输入直接连通到四级输出寄存器,即将a’的值写入四级输出寄存器。
在第八拍,idctcnt_th[1:0]=1,执行以下处理:
二级输出选择器将二级加法寄存器的输出suma_2直接连通到三级输出选择器,而三级输出选择器将该路输入直接连通到四级输出寄存器,即将b’的值写入四级输出寄存器。
在第九拍,idctcnt_th[1:0]=2,执行以下处理:
三级输出选择器将寄存器Oc的输出连通到四级输出寄存器,即将c’的值写入四级输出寄存器。
在第十拍,idctcnt_th[1:0]=3,执行以下处理:
三级输出选择器将寄存器Od的输出连通到四级输出寄存器,即将d’的值写入四级输出寄存器。
至此,第三级反变换单元就完成了对一组4点的第三级反变换处理。而第四级反变换单元是一个寄存器,其值依次为a’、b’、c’和d’,由后续装置将这些反变换的输出数值依次读出。从第九拍开始,第三级反变换单元可以进行下一组的4点反变换处理了。
一维运算需要进行四组4点的整数反变换。图5中表示连续组数据输入时的流水时序图。由图可知,一组4点的整数反变换需要10拍,而由于实现了流水式工作且每一步运算都紧密衔接,进行一次4组16点的整数反变换总共只需要22拍,速度可以满足要求。同时从硬件结构看,只使用了很少的运算单元、选择器和寄存器,没有乘法等复杂运算,成本也很低。

Claims (15)

1、一种离散余弦变换的整数反变换装置,用于依照下式对一组4个输入值A,B、C和D进行离散余弦变换的整数反变换运算,得到4个输出值a′,b′,c′和d′,其中的系数P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,该装置包括第一级、第二级、第三级和第四级反变换单元,采用流水线方式对多组输入值进行处理,每一组输入值的整数反变换用10拍完成,以下计为第1拍到第10拍,每拍为一时钟周期,其中:
第一级反变换单元用于在第1~4拍,根据依次输入的A、B、C和D分别计算出输入值的倍数值P0A、P1B和P2B、P0C、P1D和P2D并锁存,在第2~5拍将所述倍数值依次输出到第二级反变换单元锁存,从第5拍开始对下一组输入值的处理;
第二级反变换单元用于在第4~5拍,对锁存的倍数值做加、减运算得到4个中间值b0,b1,b2,b3,b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D;在6~7拍对4个中间值做加、减运算,得到4个输出值a′,c′,b′,d′,a′=b0+b3,d′=b0-b3,b′=b1+b2,c′=b1-b2,第7拍将a′,d′输出到第三级反变换单元,在第8拍将b′,c′输出到第三级反变换单元并开始对下一组输入值的处理;
第三级反变换单元用于在第7~10拍依次将4个输出值a′,b′,c′,d′输出到第四级反变换单元,从第10拍的下一拍开始对下一组输入值的处理;
第四级反变换单元用于锁存输出值a′,b′,c′和d′,由后续装置依次读出。
2、如权利要求1所述的整数反变换装置,其特征在于:
所述第一级反变换单元包括一级输入寄存器、一级运算单元、一级输出寄存器、一级输出选择器和一级计数器,其中:
所述一级计数器用于对时钟周期进行计数,向所述一级运算单元和一级输出选择器输出在I0,I1,I2,I3之间循环计数的计数值,第一次循环计数值I0,I1,I2,I3对应于对第一组输入值进行整数反变换的第1~4拍;
所述一级输入寄存器用于锁存依次输入的A、B、C和D并输出到所述一级运算单元;
所述一级运算单元,用于在计数值为I0时对A进行运算得到P0A,在计数值为I1时对B进行运算得到P1B和P2B,在计数值为I2时对C进行运算得到P0C,在计数值为I3时对D进行运算得到P1D和P2D,每拍的运算结果在该拍存入所述一级输出寄存器;
所述一级输出寄存器用于在各拍分别锁存倍数值P0A、P1B和P2B、P0C、P1D和P2D并输出到所述一级输出选择器;
所述一级输出选择器用于在计数值为I1时,将P0A选通输出,在计数值为I2时,将P1B和P2B选通输出,在计数值为I3时,将P0C选通输出,在计数值为I0时,将P1D和P2D选通输出,以上倍数值均输出到第二级反变换单元。
3、如权利要求2所述的整数反变换装置,其特征在于,
所述离散余弦变换的整数反变换为RV整数反变换,P0=13,P1=17,P2=7;所述一级运算单元包括第一移位运算单元、第二移位运算单元、第三移位运行单元、一级运算选择器、一级加法器和一级减法器,所述一级输出寄存器包括一级加法寄存器和一级减法寄存器,其中:
所述第一移位运算单元用于将输入值左移3位后输出;
所述第二移位运算单元用于将输入值左移2位并加上该输入值后输出;
所述第三移位运算单元用于将输入值左移4位后输出;
所述一级运算选择器用于在计数值为I0和I2时,将第一和第三移位运算单元的输出选通为一级加法器的两个输入,在计数值为I1和I3时,将第三移位运算单元和一级输入寄存器的输出选通为一级加法器的两个输入,同时将第一移位运算单元和一级输入寄存器的输出选通为一级减法器的两个输入;
所述一级加法器用于将两个输入相加后写入一级加法寄存器,在计数值为I0,I1,I2,I3时结果分别为13A,17B,13C,17D;
所述一级减法器用于将第一移位运算单元的输出减去一级输入寄存器的输出后写入一级加法寄存器,在计数值为I1,I3时结果分别为7B,7D;
所述一级加法寄存器和一级减法寄存器用于锁存写入的数值并输出到一级输出选择器。
4、如权利要求1或2或3所述的整数反变换装置,其特征在于:
所述第二级反变换单元包括至少6个二级输入寄存器、二级运算选择器、二级加法器、二级减法器、二级加法寄存器、二级减法寄存器、二级输出选择器、4个中间值寄存器和二级计数器,其中:
所述二级计数器比一级计数器延迟3拍计数,用于向所述二级运算选择器和二级输出选择器输出在I′0,I′1,I′2,I′3之间循环计数的计数值;
所述6个二级输入寄存器用于分别锁存第一级反变换单元输出的倍数值P0A、P1B和P2B、P0C、P1D和P2D并输出到二级运算选择器;
所述二级运算选择器与所述6个二级输入寄存器和4个中间值寄存器相连,用于在计数值为I′0时,将P0A和P0C选通为二级加法器以及二级减法器的两个输入,在计数值为I′1时,将P1B和P2D选通为二级加法器的两个输入,将P2B和P1D选通为二级减法器的两个输入,在计数值为I′2时,将b0和b3选通为二级加法器以及二级减法器的两个输入,在计数值为I′3时,将b1和b2选通二级加法器以及二级减法器的两个输入;
所述二级加法器用于将两个输入相加后写入二级加法寄存器,在计数值为I′0,I′1,I′2,I′3时结果分别为b0,b3,a′,b′;
所述二级减法器用于将两个输入相减后写入二级减法寄存器,在计数值为I′0,I′1,I′2,I′3时结果分别为b1,b2,d′,c′;
所述二级加法寄存器和二级减法寄存器用于锁存写入的数值并输出到二级输出选择器;
所述二级输出选择器用于在计数值为I′0时,将b0和b3选通输出到中间值寄存器,在计数值为I′1时,将b1和b2选通输出到中间值寄存器,在计数值为I′2时,将a′和d′选通输出到第三级反变换单元,在计数值为I′3时,将b′和c′选通输出到第三级反变换单元;
所述4个中间值寄存器用于分别锁存所述4个中间值b0,b1,b2,b3并输出到所述二级运算选择器。
5、如权利要求4所述的整数反变换装置,其特征在于:
所述第三级反变换单元包括至少2个三级输入寄存器、三级输出选择器和三级计数器,所述第四级反变换单元包括一四级输出寄存器,其中:
所述三级计数器比一级计数器延迟6拍计数,用于向所述三级输出选择器输出在I0″,I1″,I2″,I3″之间循环计数的计数值;
所述2个三级输入寄存器用于分别锁存输出值c′,d′;
所述三级输出选择器用于在计数值为I0″和I1″时,分别将二级反变换单元输出的a′和b′连通到第四级反变换单元的四级输出寄存器,在计数值为I2″和I3″时,分别将锁存的输出值c′,d′连通到第四级反变换单元的四级输出寄存器。
6、如权利要求5所述的整数反变换装置,其特征在于:
所述计数值I0,I1,I2,I3、计数值I′0,I′1,I′2,I′3和计数值I″0,I1″,I2″,I3″均为0,1,2,3,所述一级、二级和三级计数值均为4位计数器,用于对4组输入进行循环计数,其中的低2位输出到相应的选择器和运算器。
7、一种离散余弦变换的整数反变换运算装置,用于依照下式对一组4个输入值A、B、C和D进行离散余弦变换的整数反变换运算,得到4个输出值a′,b′,c′和d′,其中的系数P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,该装置包括第一级、第二级、第三级和第四级反变换单元,采用流水线方式对多组输入值进行处理,其中对每组输入值的处理如下:
第一级反变换单元用于对依次输入的A、B、C和D,分别计算出倍数值P0A、P1B和P2B、P0C、P1D和P2D并锁存,然后将所述倍数值依次输出到第二级反变换单元;
第二级反变换单元用于锁存输入的倍数值并做加、减运算得到4个中间值b0,b1,b2,b3,b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D;然后对4个中间值做加、减运算,得到4个输出值a′,c′,b′,d′,a′=b0+b3,d′=b0-b3,b′=b1+b2,c′=b1-b2,再将a′,c′,b′,d′输出到第三级反变换单元;
第三级反变换单元用于依次将4个输出值a′,b′,c′,d′输出到第四级反变换单元;
第四级反变换单元用于锁存输出值a′,b′,c′和d′,由后续装置依次读出。
8、如权利要求6所述的整数反变换装置,其特征在于:
所述第一级反变换单元包括一级输入寄存器、一级运算单元、一级输出寄存器、一级输出选择器和一级计数器,所述第二级反变换单元包括6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2,其中:
所述一级计数器用于对时钟周期进行计数,向所述一级运算单元和一级输出选择器输出从小到大循环计数的4个计数值I0,I1,I2,I3
所述一级输入寄存器用于锁存输入值并输出到所述一级运算单元;
所述一级运算单元,用于在输入计数值为I0,I2时完成对输入值的“乘P0”运算,在输入计数值为I1,I3时完成对输入值的“乘P1和乘P2”运算,得到的倍数值存入所述一级输出寄存器;
所述一级输出寄存器用于锁存输入的倍数值并输出到一级输出选择器;
所述一级输出选择器用于在计数值为I0,I1,I2,I3时,将一级输出寄存器在上一时钟周期锁存的“乘P0”或“乘P1”运算结果分别连通到二级输入寄存器dina,dinb1,dinc,dind1,在计数值为I1,I3时,将一级输出寄存器在上一时钟周期锁存的“乘P2”运算结果分别连通到二级输入寄存器dinb2,dind2。
9、如权利要求7所述的整数反变换装置,其特征在于:
所述整数反变换运算为RV解码时采用的整数反变换运算,P0=13,P1=17,P2=7,所述一级运算单元包括第一移位运算单元、第二移位运算单元、第三移位运行单元、一级运算选择器、一级加法器和一级减法器,所述一级输出寄存器包括一级加法寄存器和一级减法寄存器,其中:
所述第一移位运算单元用于将输入值左移3位后输出;
所述第二移位运算单元用于将输入值左移2位并加上该输入值后输出;
所述第三移位运算单元用于将输入值左移4位后输出;
所述一级运算选择器用于在计数值为I0,I2时,将第一和第三移位运算单元的输出选通为一级加法器的两个输入,在计数值为I1,I3时,将第三移位运算单元和一级输入寄存器的输出选通为一级加法器的两个输入,同时将第一移位运算单元和一级输入寄存器的输出选通为一级减法器的两个输入;
所述一级加法器用于将两个输入相加后写入一级加法寄存器;
所述一级减法器用于将第一移位运算单元的输出减去一级输入寄存器的输出后写入一级加法寄存器;
所述一级加法寄存器和一级减法寄存器用于锁存写入的数值并输出到一级输出选择器。
10、如权利要求8所述的整数反变换装置,其特征在于:
所述第二级反变换单元包括6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2,二级运算选择器、二级加法器、二级减法器、二级加法寄存器、二级减法寄存器、二级输出选择器、4个中间值寄存器Zb0,Zb1,Zb2,Zb3和二级计数器;所述第三级反变换单元包括2个三级输入寄存器Oc,Od、三级输出选择器和三级计数器;第四级反变换单元包括四级输出寄存器,其中:
所述二级计数器用于向所述二级运算选择器和二级输出选择器输出从小到大循环计数的四个计数值I′0,I′1,I′2,I′3
所述6个二级输入寄存器dina,dinb1,dinb2,dinc,dind1,dind2用于分别锁存第一级反变换单元输出的6个倍数值;
所述二级运算选择器用于在计数值为I′0时,将寄存器dina和寄存器dinc的输出与二级加法器及二级减法器的输入选通,计数值为I′1时,将寄存器dinb1和寄存器dind2的输出与二级加法器的输入连通,同时将寄存器dinb2和寄存器dind1的输出与二级减法器的输入连通,计数值为I′2时,将寄存器Zb0和寄存器Zb1的输出与二级加法器及二级减法器的输入选通,计数值为I′3时,将寄存器Zb1和寄存器Zb2的输出与二级加法器及二级减法器的输入选通;
所述二级加法器用于将两个输入相加后写入二级加法寄存器;
所述二级减法器用于将两个输入相减后写入二级减法寄存器,其中以寄存器dina,寄存器dinb2,寄存器Zb0,寄存器Zb1的输出为被减数;
所述二级加法寄存器和二级减法寄存器用于锁存写入的数值并输出到二级输出选择器;
所述二级输出选择器用于在计数值为I′0,I′1,I′2,I′3时,分别将二级加法寄存器上一时钟周期锁存的值选通输出到寄存器Zb0,寄存器Zb3,三级输出选择器和三级输出选择器,分别将二级减法寄存器上一时钟周期锁存的值选通输出到寄存器Zb1,寄存器Zb2,寄存器Oc,寄存器Od;
所述三级计数器用于向所述三级输出选择器输出从小到大循环计数的四个计数值I″0,I″1,I″2,I″3
所述2个三级输入寄存器Oc,Od分别用于对输入值进行锁存并输出到三级输出选择器;
所述三级输出选择器用于在计数值为I″0和I″1时,将从二级输出选择器直接输出的值连通到所述四级输出寄存器,在计数值为I″2和I″3时,分别将寄存器Oc和寄存器Od的输出连通到所述四级输出寄存器。
11、一种离散余弦变换的整数反变换方法,用于依照下式对一组4个输入值A、B、C和D进行离散余弦变换的整数反变换,得到4个输出值a′,b′,c′和d′,其中的P0,P1,P2为整数:
a′=P0A+P1B+P0C+P2D
b′=P0A+P2B-P0C-P1D
c′=P0A-P2B-P0C+P1D
d′=P0A-P1B+P0C-P2D
其特征在于,通过四级流水完成对多组输入值的整数反变换,从接收到第一个输入值A开始,执行以下处理:
第一级在第1~4拍,根据依次输入的A、B、C和D计算出P0A,P1B,P2B,P0C,P1D和P2D,在第2~5拍输出到第二级锁存,且从第5拍开始对下一组输入值的处理;
第二级在第4~7拍,先做加、减运算b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D并锁存得到的中间值b0,b1,b2,b3,再做加、减运算a′=b0+b3,b′=b1+b2,c′=b1-b2,d′=b0-b3,第7拍将a′,d′输出到第三级,在第8拍将b′,c′输出到第三级且开始对下一组输入值的处理;
第三级用于在第7~10拍依次将a′,b′,c′,d′输出到第四级,且从第11拍开始对下一组输入值的处理;
第四级反变换单元锁存输出值a′,b′,c′和d′,由后续装置读出。
12、如权利要求7所述的整数反变换方法,其特征在于:
所述第一级在第1拍根据输入值A,计算出P0A并锁存;第2拍根据输入值B,计算出P1B和P2B并锁存,同时将P0A输出到第二级;第3拍根据输入值C,计算出P0C并锁存,同时将P1B和P2B输出到第二级;第4拍根据输入值D,计算出P1D和P2D并锁存,同时将P0C输出到第二级;第5拍将P1D和P2D输出到第二级。
13、如权利要求8所述的整数反变换方法,其特征在于:
所述第二级在第4拍,对输入的P0A和P0C作加法和减法运算,得到两个中间值b0和b1并锁存,其中b0=P0A+P0C,b1=P0A-P0C;在第5拍,对输入的P1B、P2B、P1D和P2D作加法和减法运算,得到另两个中间值b2和b3并锁存,其中b2=P2B-P1D,b3=P1B+P2D;在第6拍,对得到的中间值b0和b3作加法和减法运算,得到输出值a′=b0+b3,d′=b0-b3并锁存;在第7拍,对得到的中间值b0和b3作加法和减法运算,得到输出值b′=b1+b2,c′=b1-b2并锁存,同时将a′和d′输出到第三级;在第8拍,将b′和c′输出到第三级。
14、如权利要求9所述的整数反变换方法,其特征在于:
所述第三级在第7拍将输入的a′直接输出到第四级,同时将输入的b′锁存;在第8拍将输入的b′直接输出到第四级,同时将输入的c′锁存;在第9拍,将锁存的c′输出到第四级;在第10拍,将锁存的d′输出到第四级。
15、如权利要求7所述的整数反变换方法,其特征在于:
所述离散余弦变换的整数反变换为用于RV解码器的离散余弦变换的RV整数反变换,所述P0=13,P1=17,P2=7;所述第一级通过做两级运算来得到所述13A,17B,7B,13C,17D和7D,对输入值A,在第一级先做左移3位运算得到8A,以及左移2位再加A的运算得到5A,然后在第二级做加法运算得到13A,对输入值B,在第一级先做左移4位运算、左移3位运算得到16B和8B,然后在第二级对16B和B做加法运算,对8B和B做减法运算得到7B,对输入值C,第一级先做左移3位运算得到8C,以及左移2位再加C的运算得到5C,然后在第二级做加法运算得到13C,对输入值D,在第一级先做左移4位运算、左移3位运算得到16D和8D,然后在第二级对16D和D做加法运算,对8D和D做减法运算得到7D。
CN 200810119773 2008-09-09 2008-09-09 一种离散余弦变换的整数反变换装置及其方法 Expired - Fee Related CN101355701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810119773 CN101355701B (zh) 2008-09-09 2008-09-09 一种离散余弦变换的整数反变换装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810119773 CN101355701B (zh) 2008-09-09 2008-09-09 一种离散余弦变换的整数反变换装置及其方法

Publications (2)

Publication Number Publication Date
CN101355701A true CN101355701A (zh) 2009-01-28
CN101355701B CN101355701B (zh) 2012-04-04

Family

ID=40308243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810119773 Expired - Fee Related CN101355701B (zh) 2008-09-09 2008-09-09 一种离散余弦变换的整数反变换装置及其方法

Country Status (1)

Country Link
CN (1) CN101355701B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119547A1 (en) * 2015-01-30 2016-08-04 Huawei Technologies Co., Ltd. Method and apparatus for converting from integer to floating point representation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5285402A (en) * 1991-11-22 1994-02-08 Intel Corporation Multiplyless discrete cosine transform
CN1142683C (zh) * 2000-10-13 2004-03-17 清华大学 无转置行列分离二维离散余弦正反变换电路及其方法
KR20080009477A (ko) * 2006-07-24 2008-01-29 엘지전자 주식회사 동영상 데이터 복호용 연산기
CN100563337C (zh) * 2007-10-24 2009-11-25 上海广电(集团)有限公司中央研究院 基于avs的整数变换量化和整数反变换反量化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119547A1 (en) * 2015-01-30 2016-08-04 Huawei Technologies Co., Ltd. Method and apparatus for converting from integer to floating point representation
US10089073B2 (en) 2015-01-30 2018-10-02 Huawei Technologies Co., Ltd. Method and apparatus for converting from integer to floating point representation

Also Published As

Publication number Publication date
CN101355701B (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
CN106339202B (zh) 微处理器及其方法
EP0275979A2 (en) Circuit for computing the quantized coefficient discrete cosine transform of digital signal samples
CN102065309B (zh) 一种dct实现方法及dct实现电路
CN102184092A (zh) 基于流水线结构的专用指令集处理器
CN102707931A (zh) 一种基于并行数据通道的数字信号处理器
CN106383807B (zh) 一种fft处理器
CN102360281B (zh) 用于微处理器的多功能定点乘加单元mac运算装置
CN102209962A (zh) 计算离散傅里叶变换(dft)系数矩阵的方法和设备
CN102663666B (zh) 基于fpga的二维图像重采样算法加速器
CN101426134A (zh) 用于视频编解码的硬件装置及方法
CN101355701B (zh) 一种离散余弦变换的整数反变换装置及其方法
CN101430737B (zh) 提升小波变换的vlsi结构设计方法
CN109144472A (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN103533378A (zh) 基于fpga的三维整数dct变换系统及其变换方法
CN101640791A (zh) 一种解码方法、装置和解码器
CN101615113A (zh) 一条指令完成一次蝶形运算的微处理器实现方法
CN102184521B (zh) 高性能图像处理系统及图像数据处理方法
CN114185014B (zh) 一种应用于雷达信号处理的并行卷积方法及装置
CN111221496B (zh) 一种使用fpga实现浮点数据累加的方法
CN202281998U (zh) 一种标量浮点运算加速器
CN102693118A (zh) 一种标量浮点运算加速器
CN102646033A (zh) 模乘运算的实现方法和装置
CN101546560B (zh) 音频编解码装置及编解码方法
CN202067313U (zh) 高性能图像处理系统
CN100370834C (zh) 多模图像编解码芯片中的系数缩放计算模块

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO CO., LTD.

Free format text: FORMER OWNER: VIMICRO CORPORATION

Effective date: 20110126

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 16/F, SHINING BUILDING, NO. 35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 610, NATIONAL IC DESIGN PARK (CHUANGYUAN BUILDING), NO. 21-1, CHANGJIANG ROAD, WUXI NEW DISTRICT, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110126

Address after: 214028 national integrated circuit design (21-1), Changjiang Road, New District, Jiangsu, Wuxi, China, China (610)

Applicant after: Wuxi Vimicro Co., Ltd.

Address before: 100083 Haidian District, Xueyuan Road, No. 35, the world building, the second floor of the building on the ground floor, No. 16

Applicant before: Beijing Vimicro Corporation

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120404

Termination date: 20170909

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