JP3654622B2 - DCT arithmetic device and IDCT arithmetic device - Google Patents

DCT arithmetic device and IDCT arithmetic device Download PDF

Info

Publication number
JP3654622B2
JP3654622B2 JP17132299A JP17132299A JP3654622B2 JP 3654622 B2 JP3654622 B2 JP 3654622B2 JP 17132299 A JP17132299 A JP 17132299A JP 17132299 A JP17132299 A JP 17132299A JP 3654622 B2 JP3654622 B2 JP 3654622B2
Authority
JP
Japan
Prior art keywords
dct
idct
dimensional
semi
output
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 - Lifetime
Application number
JP17132299A
Other languages
Japanese (ja)
Other versions
JP2001005800A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP17132299A priority Critical patent/JP3654622B2/en
Publication of JP2001005800A publication Critical patent/JP2001005800A/en
Application granted granted Critical
Publication of JP3654622B2 publication Critical patent/JP3654622B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像符号化で用いられる1次元または2次元DCT(Discrete Cosine Transform)とその逆変換である1次元または2次元IDCT(Inverse Discrete Cosine Transform)を実行するための演算装置に関するものである。
【0002】
【従来の技術】
(1)DCT演算とIDCT演算
f(i)(i=0,1,2,3,4,5,6,7)を原信号とし、F(j)(j=0,1,2,3,4,5,6,7)をDCT変換係数とすると、8点1次元DCT演算は次の式「数1」と「数2」で表わされる。
【0003】
【数1】

Figure 0003654622
【0004】
【数2】
Figure 0003654622
【0005】
ここで、A=2/2、B=cos(π/8)/2、C=cos(3π/8)/2、D=cos(π/16)/2、E=cos(3π/16)/2、F=cos(5π/16)/2、G=cos(7π/16)/2である。
【0006】
また、8点1次元IDCT演算は次の式「数3」と「数4」で表わせる。
【0007】
【数3】
Figure 0003654622
【0008】
【数4】
Figure 0003654622
【0009】
ここで、上記式「数3」と「数4」の右辺第1項は同一であり、また、上記式「数3」と「数4」の右辺第2項も同一である。
【0010】
上記のように、8点1次元DCT演算と8点1次元IDCT演算は、たかだか7種類の係数とデータの乗累算で実現される。このため、DCT演算とIDCT演算においては汎用乗算器を用いる必要はなく、上記A〜Gの係数に対応する7種類の固定係数乗算器を用いることによってそれらの演算回路を構成することができる。
【0011】
従来技術の第1の例
従来技術の第1の例である8点1次元DCT演算装置を図5に示す。このDCT演算装置は、クロックCK(以下、単にCKと言う)に同期して動作し、1CK当たり2個の原信号を入力し、また、2個のDCT係数を出力する。上記式「数1」は図5の左側の3個の固定係数乗算器3〜5と4個の累算器17〜20で計算され、上記式「数2」は図5の右側の4個の固定係数乗算器6〜9と4個の累算器21〜24で計算される。以下、具体的な動作を説明する。
【0012】
最初に、累算器17〜24の中のレジスタ41〜48はリセットされ、それらの値が「0」にされる。この後、1CK当たり2個の原信号がIN0にf(0),f(1),f(2),f(3)、IN1にf(7),f(6),f(5),f(4)の順番で入力され、加算器1と減算器2に入力される。固定係数乗算器3〜5(MPYA,MPYB,MPYC)は被乗数がそれぞれ上記A,B,Cに固定された乗算器であり、累算器17,18,19,20ではそれぞれF(0),F(2),F(4),F(6)が計算される。
【0013】
また、累算器18〜20の中の加減算器34,35,36は入力aとbより「a+b」または「−a+b」を計算することができる。加算器1ではf(0)+f(7),f(1)+f(6),f(2)+f(5),f(3)+f(4)が計算され、固定係数乗算器3〜5に入力される。
【0014】
最初に、f(0)+f(7)が入力されると、乗算器3,4,5ではそれぞれA×{f(0)+f(7)},B×{f(0)+f(7)},C×{f(0)+f(7)}が並列に計算され、バス10,11,12に出力される。累算器17では、セレクタ25でバス10を選択することにより、A×{f(0)+f(7)}がレジスタ41(REG00)にセットされる。このとき、レジスタ41(REG00)は最初に「0」にリセットされているため、加算器33はスルーとなる。同様にして、累算器18,19,20では、セレクタ26,27,28でそれぞれバス11,10,12を選択することにより、B×{f(0)+f(7)},A×{f(0)+f(7)},C×{f(0)+f(7)}がレジスタ42(REG10),レジスタ43(REG20),レジスタ44(REG30)にセットされる。
【0015】
次に、加算器1ではf(1)+f(6)が計算され、固定係数乗算器3〜5に入力される。乗算器3,4,5ではそれぞれA×{f(1)+f(6)},B×{f(1)+f(6)},C×{f(1)+f(6)}が並列に計算され、バス10,11,12に出力される。累算器17では、セレクタ25でバス10が選択される。このとき、レジスタ41(REG00)にはA×{f(0)+f(7)}がセットされているため、加算器33ではA×{f(0)+f(7)}+A×{f(1)+f(6)}が計算され、その値がレジスタ41(REG00)にセットされる。
【0016】
同様にして、累算器18では、セレクタ26でバス12が選択され、レジスタ42(REG10)にB×{f(0)+f(7)}+C×{f(1)+f(6)}がセットされる。また、累算器19では、セレクタ27でバス10が選択される。このとき、加算器35ではA×{f(0)+f(7)}-A×{f(0)+f(7)}が計算され、レジスタ43(REG20)にセットされる。同様にして、レジスタ44(REG30)にはC×{f(0)+f(7)}-B×{f(0)+f(7)}がセットされる。以下、同様の計算が行われ、4CK目にF0,F2,F4,F6が求まる。ただし、このとき、これらはレジスタ41〜44(REG00〜REG30)ではなく、レジスタ49〜52(REG01〜REG31)にセットされる。このセット動作と同時に、レジスタ41〜44(REG00〜REG30)はリセットされ、次のCKより新しい8点1次元DCT演算が開始される。
【0017】
一方、固定係数乗算器6〜9(MPYD,MPYD,MPYF,MPYG)は被乗数がそれぞれ上記D,E,F,Gに固定された乗算器であり、累算器21,22,23,24ではそれぞれF(1),F(3),F(5),F(7)が計算される。また、累算器22〜24の中の加減算器38,39,40は入力aとbより「a+b」または「−a+b」を計算することができる。入力IN0,IN1に接続された減算器2では、f(0)-f(7),f(1)-f(6),f(2)-f(5),f(3)-f(4)が計算され、上記F(0),F(2),F(4),F(6)の計算と同様にしてF(1),F(3),F(5),F(7)が計算され、累算器21〜24の中のレジスタ53〜56(REG41〜REG71)にセットされる。なお、累算器21〜24において、29〜32はセレクタ、37は加算器、38〜40は加減算器、45〜48はレジスタ(REG40〜70)である。
【0018】
累算器17〜24のレジスタ49〜56にセットされたDCT係数F(0)〜F(7)は、バス57を通じて1CKごとにOUT0からF(0),F(2),F(4),F(6)、バス58を通じてOUT1からF(1),F(3),F(5),F(7)の順番で出力される。
【0019】
このようなDCT演算装置に関する技術については、例えば、A.Madisetti and A.N.Willson,“A 100MHz 2-D8×8DCT/IDCT Processor for HDTV Applications”,IEEE Trans.Circuits Syst.Video Technol.,vol.5,No.2,pp.158-164,April 1995.に記載されている。尚、この文献には、以下に示す従来技術の第2、3、4の例に示す技術についても記載されている。
【0020】
従来技術の第2の例
従来技術の第2の例である8点1次元IDCT演算装置を図6に示す。このIDCT演算装置の構成は、前記従来技術の第1の例の8点1次元DCT演算装置から加算器1と減算器2を削除し、出力部に加算器59、減算器60を付加した構造である。
【0021】
入力IN0にはCKごとにDCT係数F(0),F(2),F(4),F(6)が入力される。これらは、固定係数乗算器3〜5(MPYA,MPYB,MPYC)に入力され、上記式「数3」と「数4」の右辺第1項の行列の乗算が図6の左側の3個の固定係数乗算器3〜5と4個の累算器17〜20で計算される。この場合、累算器17〜20の構成は図5と同様の構成であり、同一符号で示している。
【0022】
一方、入力IN1にはF(1),F(3),F(5),F(7)が入力される。これらは固定係数乗算器6〜9(MPYD,MPYE,MPYF,MPYG)に入力され、上記式「数3」と「数4」の右辺第2項の行列の乗算が図6の右側の4個の固定係数乗算器6〜9と4個の累算器21〜24で計算される。累算器21〜24の構成は図5と同様の構成であり、同一符号で示している。
【0023】
そして、式「数3」の右辺第1項の行列の乗算結果と右辺第2項の行列の乗算結果の加算は加算器59で計算され、これと並列して、式「数4」の右辺第1項の行列の乗算結果と右辺第2項の行列の乗算結果の減算が減算器60で計算される。この結果、CKごとに加算器59の出力としてf(0),f(1),f(2),f(3)、減算器60の出力としてf(7),f(6),f(5),f(4)が得られ、OUT0とOUT1から出力される。
【0024】
従来技術の第3の例
従来技術の第3の例である8点1次元DCT/IDCT演算共用装置を図7に示す。この従来例は、上記従来技術の第1の例のDCT演算装置と従来技術の第2の例のIDCT演算装置を組み合わせた回路構成である。
【0025】
セレクタ61,62,63,64の入力をすべてa側とすることによりDCT演算を実行でき、セレクタ61,62,63,64の入力をすべてb側とすることによりIDCT演算を実行できる。なお、図5および図6と同一部分は同一符号で示している。
【0026】
従来技術の第4の例
従来技術の第4の例である8点×8点2次元DCT/IDCT演算共用装置を図8に示す。上記従来技術の第3の例である8点1次元DCT/IDCT演算共用装置67と8×8W(ワード)の2次元転置メモリ68で構成される。8×8Wの2次元転置メモリ68は、同時に2画素書き込み又は読み出しができ、水平方向に書き込んだデータを垂直方向に読み出せるメモリである。ただし、2次元転置メモリ68は、実際には64Wの連続したアドレス(i=0〜63)をもつメモリであり、x=0〜7(i/8、iを8で割った余り)とy=0〜7(y=i/8、iを8で割って切り捨て)という2次元の仮想的なアドレスにより水平方向または垂直方向にアクセスされる。
【0027】
具体的な動作としては、8×8個の2次元の信号に対して最初に水平方向に8点1次元DCT(または8点1次元IDCT)を8回実行し、その結果を8×8Wの2次元転置メモリ68に水平方向に書き込んで記憶する。次に、2次元転置メモリ68から垂直方向に読み出して8点1次元DCT(または8点1次元IDCT)を8回実行する。尚、最初に垂直方向に1次元DCT(または1次元IDCT)を行い、2回目に水平方向に8点1次元DCT(または8点1次元IDCT)を行っても良い。
【0028】
【発明が解決しようとする課題】
しかしながら、従来技術の第4の例である8点×8点2次元DCT/IDCT演算共用装置では、水平方向のDCTまたはIDCTと垂直方向のDCTまたはIDCTを交互に繰り返す。2次元DCT/IDCT演算共用装置の外部からの入力は水平方向のDCTまたはIDCTを実行しているときのみ必要であるため、1CK当たり2データを32CKの間に集中して入力し、32CKの間入力無しとしなければならない。また、外部への出力は垂直方向のDCTまたはIDCTのとき生じるため、1CK当たり2データが32CKの間に集中して出力され、32CKの間出力無しとなる。
【0029】
このように入力と出力がバースト的に発生すると、2次元DCT/IDCT演算共用装置と前段または後段の装置とのインタフェースの回路が複雑になる。
【0030】
これを緩和するため、2次元DCT/IDCT演算共用装置の前段に1データ書き込みと2データ読み出しが同時にできる3ポートの64Wメモリ、後段に2データ書き込みと1データ読み出しが同時にできる3ポートの64Wメモリを設け、それらのメモリでバッファリングして入力と出力を1CK当たり1データに変換することも考えられるが、ハード規模が増加する。
【0031】
また、8点1次元DCT/IDCT演算共用装置67は高速動作のためにパイプライン化される場合が多いが、これにより、データの入力が始まってから最初のデータが出力されるまでに遅れ、すなわちパイプラインレイテンシが発生する。従来技術の第4の例に示した構成では、2次元転置メモリ68への書き込みが終了しなければ、読み出しを開始できないため、後半の1次元DCTまたはIDCTを開始するとき、必ずレイテンシ分の無効サイクルが生じることとなる。この無効サイクルを少しでも少なくするために、2次元転置メモリ68を4ポート化し、2データ書き込みと2データ読み出しが同時にできるようにすることも考えられるが、2次元転置メモリ68が大規模化する。さらに、4ポート化したとしても単一の1次元DCT/IDCT演算共用装置を用いている限り、レイテンシ削減効果には限界がある。
【0032】
図9と図10にIDCTの場合を示す。図9は2次元転置メモリ68に8行目の水平方向のIDCT演算結果を書き込み、同時に垂直方向のIDCT演算のために、1列目の信号を読み出す場合を示す。8行目の書込みは、{f(0),f(7)}、{f(1),f(6)}、{f(2),f(5)}、{f(3),f(4)}の順番で行い、1列目の読み出しは{F(0),F(1)}、{F(2),F(3)}、{F(4),F(5)}、{F(6),F(7)}の順番で行うことになる。
【0033】
ところが、図9に示すように、F(7)=f(0)であり、f(0)が2次元転置メモリ68に書き込まれなければ、F(7)として読み出すことができない。
【0034】
図10は、8点1次元DCT/IDCT演算共用装置67を5段のパイプラインで構成した場合を示す。尚、単純化のためにパイプラインレジスタ69〜74のみ示してある。図9に示したように後半の1次元DCTのために読み出されるF7は、前半の1次元DCT演算の結果であるf0と同一である。従って、f0の書き込みが終わらなければ、F7を読み出すことはできない。このため、図10から分かるように、パイプライン段数が5段よりも大きくなると、f0を転置メモリ68に書き込むサイクルとF7を転置メモリ68から読み出すサイクルとの間に空き、言い換えるとパイプラインに空きが生じ、無効サイクルが発生することとなる。
【0035】
本発明は、1CK当たり1個の入力と出力という条件の下で、パイプライン段数にかかわらず無効サイクルが生じないようにすることができる1次元または2次元DCT演算装置および1次元または2次元IDCT演算装置を提供することを目的とする。
【0036】
【課題を解決するための手段】
本発明は、1次元k点DCT演算回路または1次元k点IDCT演算回路を構成するとき、従来は1個の値のみを被乗数として取り得る固定係数乗算器をk個(kは2のべき乗)用いていたのに対し、1個または2個の値を被乗数として取り得る半固定乗算器をk/2個用いて、ハード量を削減し、この1次元k点DCT演算回路または1次元k点IDCT演算回路を水平方向用と垂直方向用に別個に設けることにより、ハード量の増加を引き起こすことなく、上記問題点を解決するようにしたものである。
【0037】
即ち、本願第1の発明は、水平方向または垂直方向にk点DCT演算を行う1次元DCT演算装置であって、入力される原信号に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力する加減算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算し、それぞれDCT係数F(0)とF(1),F(2)とF(3),F(4)とF(5),……,F(k-2)とF(k-1)を出力するk/2個の累算器と、前記k/2個の累算器から出力されるk個のDCT係数の値を保持し、該k個から成るDCT係数をF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で出力する記憶回路とを備えることを特徴とする。
【0038】
また、本願の第2の発明は、水平方向または垂直方向にk点IDCT演算を行う1次元IDCT演算装置であって、DCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とし、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されたDCT係数と乗算するk/2(kは2のべき乗)個の半固定乗算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求める加減算器とを備えることを特徴とする。
【0039】
また、本願の第3の発明は、水平方向または垂直方向にk点DCT演算またはk点IDCT演算を行う1次元DCT/IDCT演算装置であって、原信号およびDCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力するか、若しくはF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されるDCT係数を前記k/2個の半固定乗算器に入力するかを選択可能な加減算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番でDCT係数を出力するか、若しくは前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求めて出力するかを選択可能な加減算器とを備えることを特徴とする。
【0040】
また、本願の第4の発明は、m点×n点(mとnは2のべき乗)の2次元DCT演算を実行する2次元DCT演算装置であって、水平方向にk点DCT演算を行うための第1の1次元DCT演算回路と、垂直方向にk点DCT演算を行うための第2の1次元DCT演算回路と、水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、前記第1および第2の1次元DCT演算回路は、入力される原信号に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力する加減算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算し、それぞれDCT係数F(0)とF(1),F(2)とF(3),F(4)とF(5),……,F(k-2)とF(k-1)を出力するk/2個の累算器と、前記k/2個の累算器から出力されるk個のDCT係数の値を保持し、該k個から成るDCT係数をF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で出力する記憶回路とを備えることを特徴とする。
【0041】
また、本願の第5の発明は、m点×n点(mとnは2のべき乗)の2次元IDCT演算を実行する2次元IDCT演算装置であって、水平方向にk点IDCT演算を行うための第1の1次元IDCT演算回路と、垂直方向にk点IDCT演算を行うための第2の1次元IDCT演算回路と、水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、前記第1および第2の1次元IDCT演算回路は、DCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とし、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されたDCT係数と乗算するk/2(kは2のべき乗)個の半固定乗算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求める加減算器とを備えることを特徴とする。
【0042】
また、本願の第6の発明は、m点×n点(mとnは2のべき乗)の2次元DCT演算または2次元IDCT演算を実行する2次元DCT/IDCT演算装置であって、水平方向にk点DCT演算またはk点IDCT演算を行うための第1の1次元DCT/IDCT演算共用回路と、垂直方向にk点DCT演算またはIDCT演算を行うための第2の1次元DCT/IDCT演算共用回路と、水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、前記第1および第2の1次元DCT/IDCT演算共用回路は、原信号およびDCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力するか、若しくはF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されるDCT係数を前記k/2個の半固定乗算器に入力するかを選択可能な加減算器と、2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番でDCT係数を出力するか、若しくは前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求めて出力するかを選択可能な加減算器とを備えることを特徴とする。
【0043】
【発明の実施の形態】
以下、本発明の実施形態を図面を参照しつつ説明する。
【0044】
第1の実施形態
本発明の第1の実施形態である8点1次元DCT演算装置を図1に示す。このDCT演算装置は、CKに同期して動作し、1CK当たり1個の原信号を入力し、また、1個のDCT係数を出力する。奇数番目CKと偶数番目CKで上述した式「数1」と「数2」を交互に計算する。回路構成としては、レジスタ75〜77、加減算器78、半固定乗算器79〜82(MPYA/D〜MPYG)、累算器87〜90、レジスタ49〜52(REG01〜31)、レジスタ53〜56(REG41〜71)、セレクタ103を備えている。また、累算器87は、セレクタ91、加算器95、レジスタ(REG00)41および45(REG40)、セレクタ99で構成されている。また、累算器88〜90は、セレクタ92〜94、加減算器96〜98、レジスタ(REG10)42〜44(REG30)および46(REG50)〜48(REG70)、セレクタ100〜102で構成されている。
【0045】
以下、具体的な動作を説明する。
最初に、各累算器87〜90内のレジスタ41〜48はリセットされ、それらの値が「0」にされる。この後、1CK当たり1個の原信号がINよりCKごとにf(0),f(7),f(1),f(6),f(2),f(5),f(3),f(4)の順番で入力される。これらのうち、f(0),f(1),f(2),f(3)はレジスタ75(REG0)にセットされ、1CK後にレジスタ76(REG1)にシフトされ、それぞれ2CKの間保持される。また、f(7),f(6),f(5),f(4)はレジスタ77(REG2)にセットされ、同じく2CKの間保持される。これにより、加減算器78では、CKごとにf(0)+f(7),f(0)-f(7),f(1)+f(6),f(1)-f(6),f(2)+f(5),f(2)-f(5),f(3)+f(4),f(3)-(4)が計算され、その計算結果が半固定乗算器79〜82(MPYA/D,MPYB/E,MPYC/F,MPYG)に入力される。
【0046】
半固定乗算器79〜81(MPYA/D,MPYB/E,MPYC/F)は被乗数がそれぞれAとD,BとE,CとFの2種類に固定された乗算器であり、前述した式「数1」を計算するときは、A,B,C、「数2」式を計算するときはD,E,Fが選択される。また、半固定乗算器82(MPYG)は被乗数がGに固定されており、前述の式「数2」の計算にのみ使用される。累算器87,88,89,90ではそれぞれF(0)とF(1),F(2)とF(3),F(4)とF(5),F(6)とF(7)がCKごとに交互に計算される。
【0047】
最初にf(0)+f(7)が入力されると、半固定乗算器79,80,81ではそれぞれA×{f(0)+f(7)},B×{f(0)+f(7)},C×{f(0)+f(7)}が並列に計算され、バス83,84,85に出力される。累算器87では、セレクタ91でバス83を選択することにより、A×{f(0)+f(7)}がレジスタ41(REG00)にセットされる。このとき、セレクタ99ではレジスタ41(REG00)の出力が選択されている。レジスタ41(REG00)は最初に「0」にリセットされているため、加算器95はスルーとなる。同様にして、累算器88,89,90では、セレクタ92,93,94でそれぞれバス84,83,85を選択することにより、B×{f(0)+f(7)},A×{f(0)+f(7)},C×{f(0)+f(7)}がレジスタ42(REG10),レジスタ43(REG20),レジスタ44(REG30)にセットされる。
【0048】
次に、f(0)-f(7)が入力されると,半固定乗算器79,80,81,82ではそれぞれD×{f(0)-f(7)},E×{f(0)-f(7)I},F×{f(0)-f(7)},G×{f(0)-f(7)}が並列に計算され、バス83,84,85,86に出力される。
【0049】
累算器87では、セレクタ91でバス83を選択することにより、D×{f(0)-f(7)}がレジスタ45(REG40)にセットされる。このとき、セレクタ99はレジスタ45(REG40)の出力を選択している。レジスタ45(REG40)は最初に「0」にリセットされているため、加算器95はスルーとなる。同様にして、累算器88,89,90では、セレクタ92,93,94でそれぞれバス84,85,86を選択することにより、E×{f(0)-f(7)},F×{f(0)-f(7)},G×{f(0)-f(7)}がレジスタ46(REG50),レジスタ47(REG60),レジスタ48(REG70)にセットされる。以下、CKごとに前述の式「数1」と「数2」が交互に計算され、7CK目にF(0),F(2),F(4),F(6)が求まり、レジスタ49〜52(REG01〜REG31)にセットされる。また、8CK目にF(1),F(3),F(5),F(7)が求まり、レジスタ53〜56(REG41〜REG71)にセットされる。レジスタ41〜44(REG00〜REG30)は7CK目に、レジスタ45〜48(REG40〜REG70)は8CK目にリセットされ、それぞれ8CK目、9CK目より新しい8点1次元DCT演算が開始される。
【0050】
レジスタ49〜56にセットされたDCT係数F(0)〜F(7)は、セレクタ57,58,103で選択されて、OUTから1CKごとにF(0),F(1),F(2),F(3),F(4),F(5),F(6),F(7)の順番で出力される。
【0051】
第2の実施形態
本発明の第2の実施形態である8点1次元IDCT演算装置を図2に示す。このIDCT演算装置の構成は、前記第1の実施形態の8点1次元DCT演算装置から入力部のレジスタ75,76,77(REG0,REG1,REG2)と加減算器78、及び出力部のセレクタ103を削除し、出力部にレジスタ104と加減算器105を付加した構造であり、図1の第1の実施形態と同一部分は同一符号で示している。この実施形態では、奇数番目CKと偶数番目CKで前述の式「数3」と「数4」の右辺第1項の行列の乗算と右辺第2項の行列の乗算が交互に実行される。
【0052】
入力INには、CKごとにDCT係数F(0),F(1),F(2),F(3),F(4),F(5),F(6),F(7)が順番に入力されて半固定乗算器79〜82(MPYA/D,MPYB/E,MPYC/F,MPYG)に入力される。そして、7CK目に前述の式「数3」と「数4」の右辺第1項の行列の乗算結果がレジスタ49〜52(REG01,REG11,REG21,REG31)にセットされ、8CK目に右辺第2項の行列の乗算結果がレジスタ53〜56(REG41,REG51,REG61,REG71)にセットされる。そして、「数3」と「数4」における右辺第1項の行列の乗算結果と右辺第2項の行列の乗算結果の加算と減算は加減算器105で計算される。その際、セレクタ57と58はOUTからCKごとにf(0),f(1),f(2),f(3),f(4),f(5),f(6),f(7)の順番に出力されるように制御される。尚、レジスタ49〜52(REG01,REG11,REG21,REG31)に右辺第1項の行列の乗算結果が得られるタイミングとレジスタ53〜56(REG41,REG51,REG61,REG71)に右辺第2項の行列の乗算結果が得られるタイミングに1CKの差があり、そのままでは計8回の加算と減算を行えない。このため、レジスタ104(REG3)でレジスタ49〜52(REG01,REG11,REG21,REG31)の出力を1CK遅延させることにより、レジスタ53〜56(REG41,REG51,REG61,REG71)の出力とタイミングを一致させるようにしている。
【0053】
第3の実施形態
本発明の第3の実施形態である8点1次元DCT/IDCT演算共用装置を図3に示す。この実施形態は、前記第1の実施形態のDCT演算装置と第2の実施形態のIDCT演算装置を組み合わせた回路構成であり、同一部分は同一符号で示している。この実施形態の8点1次元DCT/IDCT演算共用装置においては、乗算器79〜82の入力側のセレクタ106と加減算器105の出力側のセレクタ107の入力をa側とすることによりDCT演算を実行でき、セレクタ106と107の入力をb側とすることによりIDCT演算を実行できる。
【0054】
第4の実施形態
本発明の第4の実施形態である8点×8点2次元DCT/IDCT演算共用装置を図4に示す。
【0055】
この実施形態の8点×8点2次元DCT/IDCT演算共用装置は、上記第3の実施形態で示した8点1次元DCT/IDCT演算共用装置108と110、及び8×8Wの2次元転置メモリ109で構成される。8×8Wの2次元転置メモリ109は、同時に書き込みと読み出しができ、水平方向に書き込んだデータを垂直方向に読み出せるメモリである。8×8個の2次元の信号に対して8点1次元DCT/IDCT演算共用装置108により水平方向に8点1次元DCT(または8点1次元IDCT)を8回実行し、その結果を8×8Wの2次元転置メモリ109に水平方向に書き込んで記憶する。次に、2次元転置メモリ110から垂直方向に読み出して8点1次元DCT/IDCT演算共用装置110により8点1次元DCT(または8点1次元IDCT)を8回実行する。尚、8点1次元DCT/IDCT演算共用装置108により垂直方向に1次元DCT(または1次元IDCT)を行い、8点1次元DCT/IDCT演算共用装置110により水平方向に8点1次元DCT(または8点1次元IDCT)を行っても良い。
【0056】
尚、本実施形態では、8点×8点2次元DCT/IDCT演算装置の場合のみ示したが、8点×8点2次元DCT演算装置と8点×8点2次元IDCT演算装置も同様にして構成できる。
【0057】
以上の説明から分かるように、本発明によれば、通常の画像符号化装置において適正な入出力レートである1CK当たり1個の入力と出力という条件のとき、従来技術と同程度のハード規模であって、パイプライン段数を深くしても無効サイクルが発生しない2次元DCT/IDCT演算共用装置を実現することができる。
【0058】
すなわち、従来技術の第1〜第3の例に示した8点1次元DCT/IDCT演算共用装置は1CK当たり2個の結果を出力するのに対し、本発明の第1〜第3の実施形態は1CK当たり1個の結果を出力する。
【0059】
両者の代表として、従来技術の第3の例と本発明の第3の実施形態のハード量を比較すると、固定または半固定係数乗算器の規模は両者とも同一であるが、加算器と加減算器の総数は従来技術の第3の例が12個、本発明の第3の実施形態が6個である。本発明の第3の実施形態のハード量は、従来技術の第3の例の2/3程度であるが、スループットは半分になる。
【0060】
ただし、本発明の利用分野である画像符号化では、従来技術の第4の例と本発明の第4の実施形態に示した8点×8点2次元DCT/IDCT演算共用装置が用いられる。これらは、両方とも64CK当たり64個の結果を出力し、スループットは等しい。
【0061】
一方、従来技術の第4の例では8点1次元DCT/IDCT演算共用装置を1個用いるのに対し、本発明の第4の実施形態では水平方向用と垂直方向用に2個の8点1次元DCT/IDCT演算共用装置を用いる。これらだけを比較すると、本発明の第4の実施形態のハード量は従来技術の第3の例の1.5倍程度になる。しかし、「発明が解決しようとする課題」において示したように、従来技術の第4の例には前段または後段の装置とのインタフェース回路が複雑になるという欠点がある。この問題を解決するために2次元DCT/IDCT演算共用装置の前段に1データ書き込みと2データ読み出しが同時にできる3ポートの64Wメモリ、後段に2データ書き込みと1データ読み出しが同時にできる3ポートの64Wメモリを設け、それらのメモリでバッファリングして入力と出力を1CK当たり1データに変換する構成を採用した場合には、本発明の第4の実施形態と従来技術の第4の例のハード量は同程度となる。
【0062】
さらに、図4に示したように本発明の第4の実施形態は、入力INから出力OUTまでパイプライン化されているため、8点1次元DCT/IDCT演算共用装置108と110のパイプライン段数が深くても無効サイクルを生じない。もちろん、従来技術の第3の例である8点1次元DCT/IDCT演算共用装置を水平方向用と垂直方向用に2個と4ポートメモリを用いて、入力から出力までパイプライン化することも可能ではあるが、この構成では1CK当たり2個の入力と出力となる。これは、ハード量が2倍になるにもかかわらず、通常の画像符号化装置ではオーバスペックであり、その性能を生かせない。
【0063】
尚、上記実施形態においては、信号数が8点×8点の場合のみ説明したが、本発明は任意の信号数の1次元または2次元DCT演算装置、1次元または2次元IDCT演算装置、及び1次元または2次元DCT/IDCT演算共用装置に対して同様に適用できる。
【0064】
【発明の効果】
以上の説明から明らかなように、本発明によれば、通常の画像符号化装置において適正な入出力レートである1CK当たり1個の入力と出力という条件のとき、従来技術と同程度のハード規模であって、パイプライン段数を深くしても無効サイクルが発生しないようにすることができるDCT/IDCT演算装置を実現できるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施形態である8点1次元DCT演算装置の構成図である。
【図2】本発明の第2の実施形態である8点1次元IDCT演算装置の構成図である。
【図3】本発明の第3の実施形態である8点1次元DCT/IDCT演算共用装置の構成図である。
【図4】本発明の第4の実施形態である8点2次元DCT/IDCT演算共用装置の構成図である。
【図5】従来技術の第1の例を示す構成図である。
【図6】従来技術の第2の例を示す構成図である。
【図7】従来技術の第3の例を示す構成図である。
【図8】従来技術の第4の例を示す構成図である。
【図9】従来技術の第4の例の動作を説明するための説明図である。
【図10】従来技術の第4の例の問題点を説明するための説明図である。
【符号の説明】
41〜48,49〜56,75〜77…レジスタ、78…加減算器、79〜82…半固定乗算器、83〜86…バス、87〜90…累算器、91〜94…セレクタ、95…加算器、96〜98…加減算器、57,58…セレクタ、103…セレクタ、105…加減算器、108,110…8点1次元DCT/IDCT演算共用装置、109…2ポート64W転置メモリ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an arithmetic unit for executing a one-dimensional or two-dimensional DCT (Discrete Cosine Transform) used in image coding and a reverse one-dimensional or two-dimensional IDCT (Inverse Discrete Cosine Transform). .
[0002]
[Prior art]
(1) DCT calculation and IDCT calculation
Let f (i) (i = 0,1,2,3,4,5,6,7) be the original signal and F (j) (j = 0,1,2,3,4,5,6,7 ) Is a DCT transform coefficient, the 8-point one-dimensional DCT operation is expressed by the following equations “Equation 1” and “Equation 2”.
[0003]
[Expression 1]
Figure 0003654622
[0004]
[Expression 2]
Figure 0003654622
[0005]
Where A = 2/2, B = cos (π / 8) / 2, C = cos (3π / 8) / 2, D = cos (π / 16) / 2, E = cos (3π / 16) / 2, F = cos (5π / 16) / 2, and G = cos (7π / 16) / 2.
[0006]
Further, the 8-point one-dimensional IDCT calculation can be expressed by the following formulas “Equation 3” and “Equation 4”.
[0007]
[Equation 3]
Figure 0003654622
[0008]
[Expression 4]
Figure 0003654622
[0009]
Here, the first term on the right side of the above formulas “Equation 3” and “Equation 4” is the same, and the second term on the right side of the equations “Equation 3” and “Equation 4” is also the same.
[0010]
As described above, the eight-point one-dimensional DCT calculation and the eight-point one-dimensional IDCT calculation are realized by multiplying and multiplying at most seven kinds of coefficients and data. For this reason, it is not necessary to use general-purpose multipliers in the DCT calculation and the IDCT calculation, and these calculation circuits can be configured by using seven types of fixed coefficient multipliers corresponding to the coefficients A to G.
[0011]
First example of prior art
FIG. 5 shows an 8-point one-dimensional DCT arithmetic apparatus as a first example of the prior art. This DCT arithmetic device operates in synchronization with a clock CK (hereinafter simply referred to as CK), inputs two original signals per CK, and outputs two DCT coefficients. The above expression “Equation 1” is calculated by the three fixed coefficient multipliers 3 to 5 and the four accumulators 17 to 20 on the left side of FIG. 5, and the above expression “Equation 2” is calculated on the right side of FIG. The fixed coefficient multipliers 6 to 9 and the four accumulators 21 to 24 are used. A specific operation will be described below.
[0012]
Initially, the registers 41 to 48 in the accumulators 17 to 24 are reset, and their values are set to “0”. After this, two original signals per CK are f (0), f (1), f (2), f (3) on IN0, and f (7), f (6), f (5), The signals are input in the order of f (4) and input to the adder 1 and the subtracter 2. Fixed coefficient multipliers 3 to 5 (MPYA, MPYB, MPYC) are multipliers whose multiplicands are fixed to A, B, and C, respectively. In accumulators 17, 18, 19, and 20, F (0), F (2), F (4), F (6) are calculated.
[0013]
Further, the adders / subtracters 34, 35 and 36 in the accumulators 18 to 20 can calculate “a + b” or “−a + b” from the inputs a and b. In adder 1, f (0) + f (7), f (1) + f (6), f (2) + f (5), f (3) + f (4) are calculated, and fixed coefficient multiplication Input to devices 3-5.
[0014]
First, when f (0) + f (7) is input, the multipliers 3, 4 and 5 respectively receive A × {f (0) + f (7)} and B × {f (0) + f (7)}, C × {f (0) + f (7)} are calculated in parallel and output to the buses 10, 11, and 12. In the accumulator 17, by selecting the bus 10 by the selector 25, A × {f (0) + f (7)} is set in the register 41 (REG00). At this time, since the register 41 (REG00) is initially reset to “0”, the adder 33 becomes through. Similarly, in the accumulators 18, 19, and 20, by selecting the buses 11, 10, and 12 by the selectors 26, 27, and 28, respectively, B × {f (0) + f (7)}, A × {f (0) + f (7)}, C × {f (0) + f (7)} are set in the register 42 (REG10), the register 43 (REG20), and the register 44 (REG30).
[0015]
Next, in adder 1, f (1) + f (6) is calculated and input to fixed coefficient multipliers 3-5. In the multipliers 3, 4 and 5, A × {f (1) + f (6)}, B × {f (1) + f (6)}, C × {f (1) + f (6)} Are calculated in parallel and output to the buses 10, 11 and 12. In the accumulator 17, the bus 10 is selected by the selector 25. At this time, since A × {f (0) + f (7)} is set in the register 41 (REG00), the adder 33 uses A × {f (0) + f (7)} + A ×. {f (1) + f (6)} is calculated, and its value is set in the register 41 (REG00).
[0016]
Similarly, in the accumulator 18, the bus 12 is selected by the selector 26, and B × {f (0) + f (7)} + C × {f (1) + f (6) is stored in the register 42 (REG10). )} Is set. In the accumulator 19, the bus 10 is selected by the selector 27. At this time, the adder 35 calculates A × {f (0) + f (7)} − A × {f (0) + f (7)} and sets it in the register 43 (REG20). Similarly, C × {f (0) + f (7)} − B × {f (0) + f (7)} is set in the register 44 (REG30). Thereafter, the same calculation is performed, and F0, F2, F4, and F6 are obtained at the 4th CK. However, at this time, these are set not in the registers 41 to 44 (REG00 to REG30) but to the registers 49 to 52 (REG01 to REG31). Simultaneously with this setting operation, the registers 41 to 44 (REG00 to REG30) are reset, and an 8-point one-dimensional DCT operation newer than the next CK is started.
[0017]
On the other hand, the fixed coefficient multipliers 6 to 9 (MPYD, MPYD, MPYF, MPYG) are multipliers in which the multiplicands are fixed to the above D, E, F, G, respectively, and the accumulators 21, 22, 23, 24 are F (1), F (3), F (5) and F (7) are calculated respectively. Further, the adders / subtracters 38, 39, and 40 in the accumulators 22 to 24 can calculate "a + b" or "-a + b" from the inputs a and b. In the subtractor 2 connected to the inputs IN0 and IN1, f (0) -f (7), f (1) -f (6), f (2) -f (5), f (3) -f ( 4) is calculated, and F (1), F (3), F (5), F (7) are calculated in the same manner as F (0), F (2), F (4), F (6) above. ) Is calculated and set in the registers 53 to 56 (REG41 to REG71) in the accumulators 21 to 24. In the accumulators 21 to 24, 29 to 32 are selectors, 37 is an adder, 38 to 40 are adders / subtracters, and 45 to 48 are registers (REGs 40 to 70).
[0018]
The DCT coefficients F (0) to F (7) set in the registers 49 to 56 of the accumulators 17 to 24 are sent from OUT0 to F (0), F (2), and F (4) every 1 CK through the bus 57. , F (6), and the bus 58, the signals are output from OUT1 in the order of F (1), F (3), F (5), F (7).
[0019]
As for the technology relating to such a DCT arithmetic apparatus, for example, A. Madisetti and ANWillson, “A 100 MHz 2-D8 × 8 DCT / IDCT Processor for HDTV Applications”, IEEE Trans. Circuits Syst. Video Technol., Vol. No. 2, pp. 158-164, April 1995. This document also describes the techniques shown in the second, third, and fourth examples of the prior art described below.
[0020]
Second example of the prior art
FIG. 6 shows an 8-point one-dimensional IDCT arithmetic apparatus that is a second example of the prior art. The configuration of this IDCT arithmetic unit is a structure in which the adder 1 and the subtracter 2 are deleted from the 8-point one-dimensional DCT arithmetic unit of the first example of the prior art, and an adder 59 and a subtracter 60 are added to the output unit. It is.
[0021]
DCT coefficients F (0), F (2), F (4), and F (6) are input to the input IN0 for each CK. These are input to the fixed coefficient multipliers 3 to 5 (MPYA, MPYB, MPYC), and the multiplication of the matrix of the first term on the right side of the above-mentioned formulas [Equation 3] and [Equation 4] is performed on the left side of FIG. Calculation is performed by fixed coefficient multipliers 3 to 5 and four accumulators 17 to 20. In this case, the configurations of the accumulators 17 to 20 are the same as those in FIG. 5 and are denoted by the same reference numerals.
[0022]
On the other hand, F (1), F (3), F (5), and F (7) are input to the input IN1. These are input to the fixed coefficient multipliers 6 to 9 (MPYD, MPYE, MPYF, MPYG), and the multiplication of the matrix of the second term on the right side of the above-mentioned formulas [Equation 3] and [Equation 4] is four on the right side of FIG. The fixed coefficient multipliers 6 to 9 and the four accumulators 21 to 24 are used. The configurations of the accumulators 21 to 24 are the same as those in FIG. 5 and are denoted by the same reference numerals.
[0023]
The addition of the multiplication result of the matrix of the first term on the right side of the expression “Equation 3” and the multiplication result of the matrix of the second term on the right side is calculated by the adder 59, and in parallel with this, the right side of the expression “Equation 4” The subtracter 60 calculates the subtraction of the multiplication result of the matrix of the first term and the multiplication result of the matrix of the second term on the right side. As a result, for each CK, f (0), f (1), f (2), f (3) are output from the adder 59, and f (7), f (6), f ( 5) and f (4) are obtained and output from OUT0 and OUT1.
[0024]
Third example of prior art
FIG. 7 shows an 8-point one-dimensional DCT / IDCT arithmetic shared apparatus which is a third example of the prior art. This conventional example has a circuit configuration in which the DCT arithmetic device of the first example of the prior art is combined with the IDCT arithmetic device of the second example of the prior art.
[0025]
The DCT operation can be executed by setting all the inputs of the selectors 61, 62, 63, and 64 to the a side, and the IDCT operation can be executed by setting all the inputs of the selectors 61, 62, 63, and 64 to the b side. 5 and 6 are denoted by the same reference numerals.
[0026]
Fourth example of prior art
FIG. 8 shows an 8-point × 8-point two-dimensional DCT / IDCT operation sharing apparatus which is a fourth example of the prior art. This is composed of an 8-point one-dimensional DCT / IDCT calculation sharing device 67 and an 8 × 8 W (word) two-dimensional transposition memory 68, which is the third example of the prior art. The 8 × 8 W two-dimensional transposition memory 68 is a memory that can simultaneously write or read two pixels and can read data written in the horizontal direction in the vertical direction. However, the two-dimensional transposition memory 68 is actually a memory having 64 W continuous addresses (i = 0 to 63), and x = 0 to 7 (i / 8, the remainder obtained by dividing i by 8) and y It is accessed in the horizontal or vertical direction by a two-dimensional virtual address of = 0 to 7 (y = i / 8, i divided by 8 and rounded down).
[0027]
As a specific operation, an 8-point 1-dimensional DCT (or 8-point 1-dimensional IDCT) is first executed 8 times in the horizontal direction on 8 × 8 two-dimensional signals, and the result is 8 × 8 W. The two-dimensional transposition memory 68 is written and stored in the horizontal direction. Next, the 8-point one-dimensional DCT (or 8-point one-dimensional IDCT) is executed eight times by reading from the two-dimensional transposition memory 68 in the vertical direction. Note that one-dimensional DCT (or one-dimensional IDCT) may be performed first in the vertical direction, and eight-point one-dimensional DCT (or eight-point one-dimensional IDCT) may be performed in the horizontal direction for the second time.
[0028]
[Problems to be solved by the invention]
However, the 8-point × 8-point two-dimensional DCT / IDCT computation sharing apparatus, which is the fourth example of the prior art, alternately repeats horizontal DCT or IDCT and vertical DCT or IDCT. Since input from the outside of the two-dimensional DCT / IDCT operation sharing device is necessary only when performing horizontal DCT or IDCT, two data per CK are input in a concentrated manner between 32CK and between 32CK. There must be no input. Further, since the output to the outside occurs in the case of DCT or IDCT in the vertical direction, 2 data per 1CK are concentrated and output during 32CK, and there is no output during 32CK.
[0029]
When the input and output are generated in bursts in this way, the circuit of the interface between the two-dimensional DCT / IDCT operation sharing apparatus and the preceding or succeeding apparatus becomes complicated.
[0030]
To alleviate this, a 3-port 64W memory capable of simultaneously writing 1 data and reading 2 data in the former stage of the two-dimensional DCT / IDCT arithmetic shared device, and a 3-port 64W memory capable of simultaneously writing 2 data and 1 data in the subsequent stage It is also possible to convert the input and output to 1 data per 1 CK by buffering with those memories, but the hardware scale increases.
[0031]
In addition, the 8-point one-dimensional DCT / IDCT computation sharing device 67 is often pipelined for high-speed operation, but this causes a delay from the start of data input to the output of the first data, That is, pipeline latency occurs. In the configuration shown in the fourth example of the prior art, reading cannot be started unless writing to the two-dimensional transposition memory 68 is completed. Therefore, when the latter one-dimensional DCT or IDCT is started, the latency is always invalidated. A cycle will occur. In order to reduce this invalid cycle as much as possible, it is conceivable that the two-dimensional transposition memory 68 is provided with four ports so that two data writing and two data reading can be performed simultaneously. . Further, even if the number of ports is four, the latency reduction effect is limited as long as a single one-dimensional DCT / IDCT arithmetic shared device is used.
[0032]
9 and 10 show the case of IDCT. FIG. 9 shows a case where the horizontal IDCT calculation result of the eighth row is written in the two-dimensional transposition memory 68 and at the same time the first column signal is read for the vertical IDCT calculation. The writing on the eighth line is {f (0), f (7)}, {f (1), f (6)}, {f (2), f (5)}, {f (3), f (4)} is performed in the order of {F (0), F (1)}, {F (2), F (3)}, {F (4), F (5)} , {F (6), F (7)}.
[0033]
However, as shown in FIG. 9, if F (7) = f (0) and f (0) is not written to the two-dimensional transposition memory 68, it cannot be read as F (7).
[0034]
FIG. 10 shows a case where the 8-point one-dimensional DCT / IDCT operation sharing apparatus 67 is configured by a five-stage pipeline. For simplicity, only pipeline registers 69-74 are shown. As shown in FIG. 9, F7 read for the latter one-dimensional DCT is the same as f0 which is the result of the former one-dimensional DCT operation. Therefore, F7 cannot be read unless f0 is written. Therefore, as can be seen from FIG. 10, when the number of pipeline stages is larger than five, there is a space between the cycle in which f0 is written to the transposed memory 68 and the cycle in which F7 is read from the transposed memory 68, in other words, there is a space in the pipeline. Will occur and an invalid cycle will occur.
[0035]
The present invention provides a one-dimensional or two-dimensional DCT arithmetic unit and a one-dimensional or two-dimensional IDCT capable of preventing an invalid cycle from occurring regardless of the number of pipeline stages under the condition of one input and output per CK. An object is to provide an arithmetic device.
[0036]
[Means for Solving the Problems]
In the present invention, when a one-dimensional k-point DCT arithmetic circuit or a one-dimensional k-point IDCT arithmetic circuit is configured, conventionally, k fixed coefficient multipliers (k is a power of 2) that can take only one value as a multiplicand. In contrast to the above, k / 2 semi-fixed multipliers that can take one or two values as multiplicands are used to reduce the amount of hardware, and this one-dimensional k-point DCT arithmetic circuit or one-dimensional k-point By separately providing IDCT arithmetic circuits for the horizontal direction and the vertical direction, the above-described problems are solved without causing an increase in the amount of hardware.
[0037]
  That is, this applicationof1st inventionIshorizontal directionOrOne-dimensional DCT calculation device that performs k-point DCT calculation in the vertical directionBecause, K / 2 (k is a power of 2) semi-fixed multipliers with only one or two values selected from coefficients to be multiplied to the input original signal, f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f (k / 2) F (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2), f (1 ) -f (k-2), f (2) + f (k-3),f (2) -f (k-3), ..., f (k / 2-1) + f (k / 2), f (k / 2-1) -f (k / 2) in order, and outputs the k / 2 An adder / subtracter for inputting to the semi-fixed multiplier and a storage means for holding two accumulated values, and selecting one from the outputs of the k / 2 semi-fixed multipliers and adding them as they are or positive / negative Are added to the two accumulated values alternately, and DCT coefficients F (0) and F (1), F (2) and F (3), F (4 ) And F (5),..., F (k-2) and F (k-1) are output, and k / 2 accumulators are output from the k / 2 accumulators. The value of the DCT coefficient is held, and the k DCT coefficients are defined as F (0), F (1), F (2), F (3), F (4),..., F (k− 2) and a memory circuit for outputting in the order of F (k-1).
[0038]
  Also,Of this applicationSecond inventionPerforms a k-point IDCT operation in the horizontal or vertical directionOne-dimensional IDCT arithmetic unitBecause, Only one or two values selected from the coefficients multiplied by the DCT coefficient are multiplicands, and F (0), F (1), F (2), F (3), F (4),. ..., k / 2 (k is a power of 2) semi-fixed multipliers for multiplying the input DCT coefficients one by one in the order of F (k-2), F (k-1), and two Storage means for holding accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, selecting whether to add as it is or inverting the sign and adding the two K / 2 accumulators that alternately add to the accumulated values of K, and storage means for holding k values output from the k / 2 accumulators, from the accumulator The output k values are added k / 2 times and subtracted k / 2 times to obtain f (0), f (1), f (2), f (3), f (4 ),..., F (k-2), f (k-1), and an adder / subtractor for obtaining the original signal in this order.
[0039]
  Also,Of this applicationThird inventionPerforms k-point DCT computation or k-point IDCT computation in the horizontal or vertical directionOne-dimensional DCT / IDCT arithmetic unitBecause, K / 2 (k is a power of 2) semi-fixed multipliers with only one or two values selected from coefficients multiplied by the original signal and the DCT coefficients, f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f (k / 2) F (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2), f (1 ) -f (k-2), f (2) + f (k-3), f (2) -f (k-3), ..., f (k / 2-1) + f (k / 2 ), f (k / 2-1) -f (k / 2) in order, and the output is input to the k / 2 semi-fixed multipliers or F (0), F (1 ), F (2), F (3), F (4), ..., k / 2 DCT coefficients that are input one by one in the order of F (k-2), F (k-1) And an adder / subtractor that can select whether to input to the semi-fixed multiplier, and a storage means that holds two accumulated values, and selects one of the outputs of the k / 2 semi-fixed multipliers. , Select whether to add as it is or invert and add, and alternately add to the two accumulated values k / 2 And a storage means for holding k values output from the k / 2 accumulators, and F (0), F (1), F (2), F (3 ), F (4),..., F (k-2), F (k-1) in the order of output, or for the k values output from the accumulator, Perform k / 2 additions and k / 2 subtractions, f (0), f (1), f (2), f (3), f (4), ..., f (k-2) , and an adder / subtractor capable of selecting whether to obtain and output the original signal in the order of f (k−1).
[0040]
  In addition,4th inventionIsTwo-dimensional DCT arithmetic device that performs a two-dimensional DCT operation of m points × n points (m and n are powers of 2)BecauseA first one-dimensional DCT calculation circuit for performing k-point DCT calculation in the horizontal direction, a second one-dimensional DCT calculation circuit for performing k-point DCT calculation in the vertical direction, and data written in the horizontal direction The first and second one-dimensional DCT arithmetic circuits are inputted with a two-port memory of m × n words that can be read in the vertical direction or the data written in the vertical direction can be read in the horizontal direction. K / 2 (k is a power of 2) semi-fixed multipliers with only one or two values selected from the coefficients multiplied by the original signal as multiplicands, and f (0), f (k− 1), f (1), f (k-2), f (2), f (k-3), ..., one in the order of f (k / 2-1), f (k / 2) F (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2), f (1) -f ( k-2), f (2) + f (k-3),f (2) -f (k-3), ..., f (k / 2-1) + f (k / 2), f (k / 2-1) -f (k / 2) in order, and outputs the k / 2 An adder / subtracter for inputting to the semi-fixed multiplier and a storage means for holding two accumulated values, and selecting one from the outputs of the k / 2 semi-fixed multipliers and adding them as they are or positive / negative Are added to the two accumulated values alternately, and DCT coefficients F (0) and F (1), F (2) and F (3), F (4 ) And F (5),..., F (k-2) and F (k-1) are output, and k / 2 accumulators are output from the k / 2 accumulators. The value of the DCT coefficient is held, and the k DCT coefficients are defined as F (0), F (1), F (2), F (3), F (4),..., F (k− 2) and a memory circuit for outputting in the order of F (k-1).
[0041]
  Also,Of this application5th inventionIsExecutes a two-dimensional IDCT operation of m points × n points (m and n are powers of 2)2D IDCT operationapparatusBecauseA first one-dimensional IDCT operation circuit for performing a k-point IDCT operation in the horizontal direction, a second one-dimensional IDCT operation circuit for performing a k-point IDCT operation in the vertical direction, and data written in the horizontal direction A two-port memory of m × n words from which data written in the vertical direction or data written in the vertical direction can be read out in the horizontal direction, and the first and second one-dimensional IDCT arithmetic circuits use DCT coefficients F (0), F (1), F (2), F (3), F (4), ..., F ( k−2), F (k−1) in order, k / 2 (k is a power of 2) semi-fixed multipliers that multiply the input DCT coefficients one by one, and two accumulated values Storage means for holding, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert the sign And k / 2 accumulators that alternately add to the two accumulated values, and storage means for holding k values output from the k / 2 accumulators, The k values output from the accumulator are subjected to k / 2 addition and k / 2 subtraction to obtain f (0), f (1), f (2), f (3 ), f (4),..., f (k-2), f (k-1), and an adder / subtractor for obtaining the original signal in this order.
[0042]
  Also,Of this application6th inventionIsExecute a two-dimensional DCT operation or a two-dimensional IDCT operation of m points × n points (m and n are powers of 2)2D DCT / IDCT operationapparatusBecauseA first one-dimensional DCT / IDCT arithmetic shared circuit for performing k-point DCT computation or k-point IDCT computation in the horizontal direction, and a second one-dimensional DCT for performing k-point DCT computation or IDCT computation in the vertical direction / IDCT arithmetic shared circuit and a 2-port memory of m × n words from which data written in the horizontal direction can be read out in the vertical direction, or data written in the vertical direction can be read out in the horizontal direction, The first and second one-dimensional DCT / IDCT operation sharing circuits are k / 2 (k is a power of 2) in which only one or two values selected from coefficients multiplied by the original signal and the DCT coefficient are multiplicands. ) Semi-fixed multipliers and f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f ( f (0) + f (k-1), f (0) -f (k-1), f from the original signals input one by one in the order of k / 2-1) and f (k / 2) (1) + f (k-2), f (1) -f (k-2), f (2) + f (k-3), f (2) -f (k-3), ... , f (k / 2-1) + f (k / 2), f (k / 2-1) -f (k / 2) in order, and the output is k / 2 semi-fixed multiplications Or F (0), F (1), F (2), F (3), F (4), ..., F (k-2), F (k-1) An adder / subtractor capable of selecting whether to input the DCT coefficients input one by one to the k / 2 semi-fixed multipliers, and storage means for holding two accumulated values, Select one from the outputs of the two semi-fixed multipliers, select whether to add as it is or invert the sign, and add to the two accumulated values alternately k / 2 accumulations A storage means for holding k values output from the k / 2 accumulators, and F (0), F (1), F (2), F (3), DCT coefficients are output in the order of F (4),..., F (k-2), F (k-1), or for the k values output from the accumulator, k / F (0), f (1), f (2), f (3), f (4), ..., f (k-2), f after adding 2 times and subtracting k / 2 times (k And an adder / subtractor capable of selecting whether to obtain and output an original signal in the order of -1).
[0043]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0044]
First embodiment
FIG. 1 shows an 8-point one-dimensional DCT arithmetic apparatus according to the first embodiment of the present invention. This DCT arithmetic device operates in synchronization with CK, inputs one original signal per CK, and outputs one DCT coefficient. The above-described equations “Equation 1” and “Equation 2” are calculated alternately for the odd-numbered CK and the even-numbered CK. As circuit configurations, registers 75 to 77, adder / subtractor 78, semi-fixed multipliers 79 to 82 (MPYA / D to MPYG), accumulators 87 to 90, registers 49 to 52 (REG01 to 31), registers 53 to 56 (REGs 41 to 71) and a selector 103 are provided. The accumulator 87 includes a selector 91, an adder 95, registers (REG00) 41 and 45 (REG40), and a selector 99. The accumulators 88 to 90 include selectors 92 to 94, adders / subtractors 96 to 98, registers (REG10) 42 to 44 (REG30) and 46 (REG50) to 48 (REG70), and selectors 100 to 102. Yes.
[0045]
A specific operation will be described below.
Initially, the registers 41 to 48 in each accumulator 87 to 90 are reset and their values are set to “0”. After this, one original signal per CK is f (0), f (7), f (1), f (6), f (2), f (5), f (3) for each CK from IN. , f (4) in this order. Of these, f (0), f (1), f (2), and f (3) are set in the register 75 (REG0), shifted to the register 76 (REG1) after 1CK, and held for 2CK respectively. The Further, f (7), f (6), f (5), and f (4) are set in the register 77 (REG2) and are held for 2CK. Thereby, in the adder / subtractor 78, f (0) + f (7), f (0) -f (7), f (1) + f (6), f (1) -f (6) for each CK. , f (2) + f (5), f (2) -f (5), f (3) + f (4), f (3)-(4) are calculated and the result is semi-fixed multiplication Are input to the devices 79 to 82 (MPYA / D, MPYB / E, MPYC / F, MPYG).
[0046]
Semi-fixed multipliers 79 to 81 (MPYA / D, MPYB / E, MPYC / F) are multipliers whose multiplicands are fixed to two types of A and D, B and E, and C and F, respectively. When calculating “Equation 1”, A, B, and C are selected, and when calculating “Equation 2”, D, E, and F are selected. The semi-fixed multiplier 82 (MPYG) has a multiplicand fixed to G, and is used only for the calculation of the above-described equation “Equation 2”. In the accumulators 87, 88, 89, 90, F (0) and F (1), F (2) and F (3), F (4) and F (5), F (6) and F (7, respectively. ) Is calculated alternately for each CK.
[0047]
When f (0) + f (7) is input first, the semi-fixed multipliers 79, 80, 81 respectively A × {f (0) + f (7)}, B × {f (0) + f (7)}, C × {f (0) + f (7)} are calculated in parallel and output to the buses 83, 84, and 85. In the accumulator 87, A × {f (0) + f (7)} is set in the register 41 (REG00) by selecting the bus 83 with the selector 91. At this time, the selector 99 selects the output of the register 41 (REG00). Since the register 41 (REG00) is initially reset to “0”, the adder 95 becomes through. Similarly, in the accumulators 88, 89, 90, by selecting the buses 84, 83, 85 by the selectors 92, 93, 94, respectively, B × {f (0) + f (7)}, A × {f (0) + f (7)}, C × {f (0) + f (7)} are set in the register 42 (REG10), the register 43 (REG20), and the register 44 (REG30).
[0048]
Next, when f (0) -f (7) is input, the semi-fixed multipliers 79, 80, 81, and 82 respectively receive D × {f (0) −f (7)}, E × {f ( 0) -f (7) I}, F × {f (0) -f (7)}, G × {f (0) -f (7)} are calculated in parallel, and buses 83, 84, 85, 86.
[0049]
In the accumulator 87, D × {f (0) −f (7)} is set in the register 45 (REG 40) by selecting the bus 83 with the selector 91. At this time, the selector 99 selects the output of the register 45 (REG 40). Since the register 45 (REG 40) is initially reset to “0”, the adder 95 becomes through. Similarly, in the accumulators 88, 89, 90, by selecting the buses 84, 85, 86 by the selectors 92, 93, 94, respectively, E × {f (0) −f (7)}, F × {f (0) -f (7)}, G × {f (0) -f (7)} are set in the register 46 (REG50), the register 47 (REG60), and the register 48 (REG70). Hereinafter, for each CK, the above-mentioned equations “Equation 1” and “Equation 2” are calculated alternately, and F (0), F (2), F (4), F (6) are obtained at the 7th CK, and the register 49 To 52 (REG01 to REG31). Further, F (1), F (3), F (5), and F (7) are obtained at the 8th CK and are set in the registers 53 to 56 (REG41 to REG71). The registers 41 to 44 (REG00 to REG30) are reset to the 7th CK and the registers 45 to 48 (REG40 to REG70) are reset to the 8th CK, and new 8-point one-dimensional DCT operations are started from the 8th and 9th clocks, respectively.
[0050]
The DCT coefficients F (0) to F (7) set in the registers 49 to 56 are selected by the selectors 57, 58, and 103, and F (0), F (1), and F (2 ), F (3), F (4), F (5), F (6), F (7) in this order.
[0051]
Second embodiment
FIG. 2 shows an 8-point one-dimensional IDCT arithmetic apparatus that is the second embodiment of the present invention. The configuration of this IDCT arithmetic unit is the same as that of the 8-point one-dimensional DCT arithmetic unit according to the first embodiment, but registers 75, 76, 77 (REG0, REG1, REG2) and adder / subtractor 78 of the input unit, and selector 103 of the output unit. Is deleted, and a register 104 and an adder / subtracter 105 are added to the output unit, and the same parts as those in the first embodiment in FIG. In this embodiment, the multiplication of the matrix of the first term on the right side and the multiplication of the matrix on the second term on the right side of the above-mentioned formulas “Equation 3” and “Equation 4” are alternately executed by the odd number CK and the even number CK.
[0052]
The input IN has DCT coefficients F (0), F (1), F (2), F (3), F (4), F (5), F (6), F (7) for each CK. These are input in order and input to semi-fixed multipliers 79 to 82 (MPYA / D, MPYB / E, MPYC / F, MPYG). Then, the multiplication result of the matrix of the first term on the right side of the above-mentioned equations “Equation 3” and “Equation 4” is set in registers 7 to 52 (REG01, REG11, REG21, REG31) at 7CK, and the right side The multiplication result of the two-term matrix is set in the registers 53 to 56 (REG41, REG51, REG61, REG71). The addition / subtraction of the multiplication result of the matrix of the first term on the right side and the multiplication result of the matrix of the second term on the right side in “Equation 3” and “Equation 4” is calculated by the adder / subtractor 105. At that time, the selectors 57 and 58 make f (0), f (1), f (2), f (3), f (4), f (5), f (6), f ( It is controlled to output in the order of 7). It should be noted that the registers 49 to 52 (REG01, REG11, REG21, REG31) obtain the multiplication result of the first term matrix on the right side and the registers 53 to 56 (REG41, REG51, REG61, REG71) on the second term matrix on the right side. There is a difference of 1CK in the timing at which the multiplication result is obtained, and if it is left as it is, a total of 8 additions and subtractions cannot be performed. Therefore, the output of the registers 49 to 52 (REG01, REG11, REG21, REG31) is delayed by 1 CK in the register 104 (REG3), thereby matching the timing with the outputs of the registers 53 to 56 (REG41, REG51, REG61, REG71). I try to let them.
[0053]
Third embodiment
FIG. 3 shows an 8-point one-dimensional DCT / IDCT calculation sharing apparatus according to the third embodiment of the present invention. This embodiment is a circuit configuration in which the DCT arithmetic device of the first embodiment and the IDCT arithmetic device of the second embodiment are combined, and the same parts are denoted by the same reference numerals. In the 8-point one-dimensional DCT / IDCT calculation sharing apparatus of this embodiment, the DCT calculation is performed by setting the inputs of the selector 106 on the input side of the multipliers 79 to 82 and the selector 107 on the output side of the adder / subtractor 105 to the a side. The IDCT operation can be executed by setting the inputs of the selectors 106 and 107 to the b side.
[0054]
Fourth embodiment
FIG. 4 shows an 8-point × 8-point two-dimensional DCT / IDCT calculation sharing apparatus according to the fourth embodiment of the present invention.
[0055]
The 8-point × 8-point two-dimensional DCT / IDCT arithmetic shared apparatus of this embodiment is the same as the 8-point one-dimensional DCT / IDCT arithmetic shared apparatuses 108 and 110 and 8 × 8 W two-dimensional transpose shown in the third embodiment. The memory 109 is configured. The 8 × 8 W two-dimensional transposition memory 109 is a memory that can write and read simultaneously and can read data written in the horizontal direction in the vertical direction. An 8-point 1-dimensional DCT (or 8-point 1-dimensional IDCT) is executed 8 times horizontally on the 8 × 8 2-dimensional signal by the 8-point 1-dimensional DCT / IDCT arithmetic shared apparatus 108, and the result is 8 It is written and stored in the x8W two-dimensional transposition memory 109 in the horizontal direction. Next, the 8-point one-dimensional DCT (or 8-point one-dimensional IDCT) is executed eight times by the 8-point one-dimensional DCT / IDCT arithmetic shared device 110 by reading from the two-dimensional transposition memory 110 in the vertical direction. The 8-point one-dimensional DCT / IDCT computation sharing device 108 performs one-dimensional DCT (or one-dimensional IDCT) in the vertical direction, and the 8-point 1-dimensional DCT / IDCT computation sharing device 110 performs 8-point one-dimensional DCT ( Alternatively, 8-point one-dimensional IDCT) may be performed.
[0056]
In this embodiment, only the case of an 8 point × 8 point two-dimensional DCT / IDCT arithmetic unit is shown, but the same applies to an 8 point × 8 point two dimensional DCT arithmetic unit and an 8 point × 8 point two dimensional IDCT arithmetic unit. Can be configured.
[0057]
As can be seen from the above description, according to the present invention, when a condition of one input and one output per 1 CK which is an appropriate input / output rate in a normal image encoding apparatus is used, the hardware scale is the same as that of the prior art. Thus, it is possible to realize a two-dimensional DCT / IDCT arithmetic shared apparatus in which an invalid cycle does not occur even when the number of pipeline stages is deepened.
[0058]
That is, the 8-point one-dimensional DCT / IDCT arithmetic shared apparatus shown in the first to third examples of the prior art outputs two results per CK, whereas the first to third embodiments of the present invention. Outputs one result per CK.
[0059]
As a representative of both, when comparing the hardware amount of the third example of the prior art and the third embodiment of the present invention, the scale of the fixed or semi-fixed coefficient multiplier is the same, but the adder and the adder / subtracter The total number is 12 in the third example of the prior art and 6 in the third embodiment of the present invention. The hardware amount of the third embodiment of the present invention is about 2/3 of the third example of the prior art, but the throughput is halved.
[0060]
However, in image coding, which is a field of application of the present invention, the 8-point × 8-point two-dimensional DCT / IDCT operation sharing apparatus shown in the fourth example of the prior art and the fourth embodiment of the present invention is used. They both output 64 results per 64CK and the throughput is equal.
[0061]
On the other hand, in the fourth example of the prior art, one 8-point one-dimensional DCT / IDCT arithmetic shared apparatus is used, whereas in the fourth embodiment of the present invention, two 8-points for the horizontal direction and the vertical direction are used. A one-dimensional DCT / IDCT arithmetic shared apparatus is used. Comparing only these, the hardware amount of the fourth embodiment of the present invention is about 1.5 times that of the third example of the prior art. However, as shown in “Problems to be Solved by the Invention”, the fourth example of the prior art has a drawback that the interface circuit with the preceding or succeeding apparatus becomes complicated. In order to solve this problem, a 3-port 64W memory capable of simultaneously writing 1 data and reading 2 data at the front stage of the two-dimensional DCT / IDCT arithmetic shared apparatus, and a 3-port 64W memory capable of simultaneously writing 2 data and 1 data at the subsequent stage. In the case of adopting a configuration in which memories are provided and the input and output are converted to one data per CK by buffering with those memories, the hardware amount of the fourth embodiment of the present invention and the fourth example of the prior art Is comparable.
[0062]
Furthermore, since the fourth embodiment of the present invention is pipelined from the input IN to the output OUT as shown in FIG. 4, the number of pipeline stages of the 8-point one-dimensional DCT / IDCT arithmetic shared devices 108 and 110 Even if the depth is deep, no invalid cycle occurs. Of course, the third example of the prior art can be pipelined from input to output by using two 8-point one-dimensional DCT / IDCT arithmetic shared devices for both the horizontal and vertical directions and a 4-port memory. Although possible, this configuration results in two inputs and outputs per CK. This is an overspec in the normal image coding apparatus, although the hardware amount is doubled, and the performance cannot be utilized.
[0063]
In the above embodiment, only the case where the number of signals is 8 points × 8 points has been described. However, the present invention is a one-dimensional or two-dimensional DCT arithmetic device, a one-dimensional or two-dimensional IDCT arithmetic device having an arbitrary number of signals, and The present invention can be similarly applied to a one-dimensional or two-dimensional DCT / IDCT arithmetic shared apparatus.
[0064]
【The invention's effect】
As is apparent from the above description, according to the present invention, the hardware scale comparable to that of the prior art is obtained under the condition of one input and output per 1 CK which is an appropriate input / output rate in a normal image encoding apparatus. Thus, there is an effect that it is possible to realize a DCT / IDCT arithmetic unit capable of preventing an invalid cycle from occurring even if the number of pipeline stages is deepened.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an 8-point one-dimensional DCT arithmetic device according to a first embodiment of the present invention.
FIG. 2 is a configuration diagram of an 8-point one-dimensional IDCT arithmetic device according to a second embodiment of the present invention.
FIG. 3 is a configuration diagram of an 8-point one-dimensional DCT / IDCT operation sharing apparatus according to a third embodiment of the present invention.
FIG. 4 is a configuration diagram of an 8-point two-dimensional DCT / IDCT operation sharing apparatus according to a fourth embodiment of the present invention.
FIG. 5 is a configuration diagram showing a first example of the prior art.
FIG. 6 is a block diagram showing a second example of the prior art.
FIG. 7 is a block diagram showing a third example of the prior art.
FIG. 8 is a configuration diagram showing a fourth example of the prior art.
FIG. 9 is an explanatory diagram for explaining the operation of the fourth example of the prior art.
FIG. 10 is an explanatory diagram for explaining a problem of the fourth example of the prior art.
[Explanation of symbols]
41-48, 49-56, 75-77 ... register, 78 ... adder / subtractor, 79-82 ... semi-fixed multiplier, 83-86 ... bus, 87-90 ... accumulator, 91-94 ... selector, 95 ... Adder, 96-98 ... adder / subtractor, 57, 58 ... selector, 103 ... selector, 105 ... adder / subtractor, 108, 110 ... 8-point one-dimensional DCT / IDCT arithmetic shared device, 109 ... 2-port 64W transposed memory.

Claims (9)

水平方向または垂直方向にk点DCT演算を行う1次元DCT演算装置であって、
入力される原信号に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、
f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力する加減算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算し、それぞれDCT係数F(0)とF(1),F(2)とF(3),F(4)とF(5),……,F(k-2)とF(k-1)を出力するk/2個の累算器と、
前記k/2個の累算器から出力されるk個のDCT係数の値を保持し、該k個から成るDCT係数をF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で出力する記憶回路とを備えることを特徴とする1次元DCT演算装置。
A one-dimensional DCT calculation device that performs k-point DCT calculation in a horizontal direction or a vertical direction,
K / 2 (k is a power of 2) semi-fixed multipliers with only one or two values selected from coefficients multiplied to the input original signal as multiplicands;
f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f ( f (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2) from the original signals input one by one in the order of k / 2) ), f (1) -f (k-2), f (2) + f (k-3), f (2) -f (k-3) , ..., f (k / 2-1) + an adder / subtractor for calculating f (k / 2), f (k / 2-1) -f (k / 2) in order, and inputting the output to the k / 2 semi-fixed multipliers;
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add The DCT coefficients F (0) and F (1), F (2) and F (3), F (4) and F (5), ..., F are added to the two accumulated values alternately. k / 2 accumulators that output (k-2) and F (k-1);
The k DCT coefficient values output from the k / 2 accumulators are held, and the k DCT coefficients are represented by F (0), F (1), F (2), F (3 , F (4),..., F (k-2), F (k-1), and a storage circuit that outputs the data in this order.
水平方向または垂直方向にk点IDCT演算を行う1次元IDCT演算装置であって、
DCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とし、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されたDCT係数と乗算するk/2(kは2のべき乗)個の半固定乗算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、
前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求める加減算器とを備えることを特徴とする1次元IDCT演算装置。
A one-dimensional IDCT calculation device that performs k-point IDCT calculation in a horizontal direction or a vertical direction,
F (0), F (1), F (2), F (3), F (4), ... only one or two values selected from the coefficients multiplied by the DCT coefficient are taken as multiplicands. , F (k-2), F (k-1) in order, k / 2 (k is a power of 2) semi-fixed multipliers for multiplying the input DCT coefficients,
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add K / 2 accumulators that alternately add to the two accumulated values;
Storage means for holding k values output from the k / 2 accumulators, and adding k / 2 times and k to the k values output from the accumulators; / Subtract 2 times to obtain f (0), f (1), f (2), f (3), f (4), ..., f (k-2), f (k-1) A one-dimensional IDCT arithmetic device comprising: an adder / subtracter for obtaining an original signal in order.
水平方向または垂直方向にk点DCT演算またはk点IDCT演算を行う1次元DCT/IDCT演算装置であって、
原信号およびDCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、
f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力するか、若しくはF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されるDCT係数を前記k/2個の半固定乗算器に入力するかを選択可能な加減算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、
前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番でDCT係数を出力するか、若しくは前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求めて出力するかを選択可能な加減算器とを備えることを特徴とする1次元DCT/IDCT演算装置。
A one-dimensional DCT / IDCT computing device that performs a k-point DCT computation or a k-point IDCT computation in a horizontal direction or a vertical direction,
K / 2 (k is a power of 2) semi-fixed multipliers with only one or two values selected from the coefficients multiplied by the original signal and the DCT coefficients,
f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f ( f (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2) from the original signals input one by one in the order of k / 2) ), f (1) -f (k-2), f (2) + f (k-3), f (2) -f (k-3), ..., f (k / 2-1) + f (k / 2), f (k / 2-1) -f (k / 2) are calculated in order, and the output is input to the k / 2 semi-fixed multipliers or F (0 ), F (1), F (2), F (3), F (4),..., F (k-2), F (k-1) An adder / subtractor capable of selecting whether to input to the k / 2 semi-fixed multipliers;
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add K / 2 accumulators that alternately add to the two accumulated values;
Storage means for holding k values output from the k / 2 accumulators, and F (0), F (1), F (2), F (3), F (4) , ..., F (k-2), F (k-1) are output in the order of DCT coefficients, or k / 2 additions to the k values output from the accumulator And k / 2 subtractions to obtain f (0), f (1), f (2), f (3), f (4), ..., f (k-2), f (k-1 And an adder / subtractor capable of selecting whether to obtain and output the original signal in the order of (1).
m点×n点(mとnは2のべき乗)の2次元DCT演算を実行する2次元DCT演算装置であって、
水平方向にk点DCT演算を行うための第1の1次元DCT演算回路と、
垂直方向にk点DCT演算を行うための第2の1次元DCT演算回路と、
水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、
前記第1および第2の1次元DCT演算回路は、入力される原信号に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、
f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力する加減算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算し、それぞれDCT係数F(0)とF(1),F(2)とF(3),F(4)とF(5),……,F(k-2)とF(k-1)を出力するk/2個の累算器と、
前記k/2個の累算器から出力されるk個のDCT係数の値を保持し、該k個から成るDCT係数をF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で出力する記憶回路とを備えることを特徴とする2次元DCT演算装置。
A two-dimensional DCT calculation device that executes a two-dimensional DCT calculation of m points × n points (m and n are powers of 2) ,
A first one-dimensional DCT calculation circuit for performing k-point DCT calculation in the horizontal direction;
A second one-dimensional DCT operation circuit for performing a k-point DCT operation in the vertical direction;
It has a two-port memory of m × n words that can read data written in the horizontal direction in the vertical direction, or read data written in the vertical direction in the horizontal direction,
The first and second one-dimensional DCT arithmetic circuits are k / 2 (k is a power of 2) in which only one or two values selected from coefficients multiplied to the input original signal are multiplicands. Semi-fixed multipliers,
f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f ( f (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2) from the original signals input one by one in the order of k / 2) ), f (1) -f (k-2), f (2) + f (k-3), f (2) -f (k-3) , ..., f (k / 2-1) + an adder / subtractor for calculating f (k / 2), f (k / 2-1) -f (k / 2) in order, and inputting the output to the k / 2 semi-fixed multipliers;
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add The DCT coefficients F (0) and F (1), F (2) and F (3), F (4) and F (5), ..., F are added to the two accumulated values alternately. k / 2 accumulators that output (k-2) and F (k-1);
The k DCT coefficient values output from the k / 2 accumulators are held, and the k DCT coefficients are represented by F (0), F (1), F (2), F (3 ), F (4),..., F (k-2), F (k-1) and a storage circuit for outputting in this order.
m=n=kであることを特徴とする請求項4に記載の2次元DCT演算装置。5. The two-dimensional DCT arithmetic device according to claim 4, wherein m = n = k. m点×n点(mとnは2のべき乗)の2次元IDCT演算を実行する2次元IDCT演算装置であって、
水平方向にk点IDCT演算を行うための第1の1次元IDCT演算回路と、
垂直方向にk点IDCT演算を行うための第2の1次元IDCT演算回路と、
水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、
前記第1および第2の1次元IDCT演算回路は、DCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とし、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されたDCT係数と乗算するk/2(kは2のべき乗)個の半固定乗算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、
前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求める加減算器とを備えることを特徴とする2次元IDCT演算装置。
A two-dimensional IDCT computing device that performs a two-dimensional IDCT computation of m points × n points (m and n are powers of 2) ,
A first one-dimensional IDCT calculation circuit for performing k-point IDCT calculation in the horizontal direction;
A second one-dimensional IDCT operation circuit for performing a k-point IDCT operation in the vertical direction;
It has a two-port memory of m × n words that can read data written in the horizontal direction in the vertical direction, or read data written in the vertical direction in the horizontal direction,
The first and second one-dimensional IDCT arithmetic circuits use only one or two values selected from coefficients multiplied by the DCT coefficient as multiplicands, and F (0), F (1), F (2 ), F (3), F (4),..., F (k-2), F (k-1) in order, k / 2 (k is 2) Power) semi-fixed multipliers,
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add K / 2 accumulators that alternately add to the two accumulated values;
Storage means for holding k values output from the k / 2 accumulators, and adding k / 2 times and k to the k values output from the accumulators; / Subtract 2 times to obtain f (0), f (1), f (2), f (3), f (4), ..., f (k-2), f (k-1) An adder / subtractor for obtaining an original signal in order.
m=n=kであることを特徴とする請求項6に記載の2次元IDCT演算装置。The two-dimensional IDCT arithmetic apparatus according to claim 6, wherein m = n = k. m点×n点(mとnは2のべき乗)の2次元DCT演算または2次元IDCT演算を実行する2次元DCT/IDCT演算装置であって
水平方向にk点DCT演算またはk点IDCT演算を行うための第1の1次元DCT/IDCT演算共用回路と、
垂直方向にk点DCT演算またはIDCT演算を行うための第2の1次元DCT/IDCT演算共用回路と、
水平方向に書き込まれたデータを垂直方向に読み出すか、若しくは垂直方向に書き込まれたデータを水平方向に読み出せるm×nワードの2ポートメモリとを有し、
前記第1および第2の1次元DCT/IDCT演算共用回路は、原信号およびDCT係数に掛けられる係数の中から選択した1個または2個の値のみを被乗数とするk/2(kは2のべき乗)個の半固定乗算器と、
f(0),f(k-1),f(1),f(k-2),f(2),f(k-3),……,f(k/2-1),f(k/2)の順番で1個づつ入力される原信号からf(0)+f(k-1),f(0)-f(k-1),f(1)+f(k-2),f(1)-f(k-2),f(2)+f(k-3),f(2)-f(k-3),……,f(k/2-1)+f(k/2),f(k/2-1)-f(k/2)を順番に計算し、その出力を前記k/2個の半固定乗算器に入力するか、若しくはF(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番で1個づつ入力されるDCT係数を前記k/2個の半固定乗算器に入力するかを選択可能な加減算器と、
2個の累算値を保持する記憶手段を有し、前記k/2個の半固定乗算器の出力から1つを選択し、そのまま加算するか正負を反転して加算するかを選択して前記2個の累算値に交互に加算するk/2個の累算器と、
前記k/2個の累算器から出力されるk個の値を保持する記憶手段を有し、F(0),F(1),F(2),F(3),F(4),……,F(k-2),F(k-1)の順番でDCT係数を出力するか、若しくは前記累算器から出力された前記k個の値に対し、k/2回の加算とk/2回の減算を行ってf(0),f(1),f(2),f(3),f(4),……,f(k-2),f(k-1)の順番で原信号を求めて出力するかを選択可能な加減算器とを備えることを特徴とする2次元DCT/IDCT演算装置
m points × n points (m and n are a power of 2) a two-dimensional DCT / IDCT arithmetic unit for performing two-dimensional DCT operation or two-dimensional IDCT operations,
A first one-dimensional DCT / IDCT operation sharing circuit for performing a k-point DCT operation or a k-point IDCT operation in the horizontal direction;
A second one-dimensional DCT / IDCT calculation shared circuit for performing a k-point DCT calculation or IDCT calculation in the vertical direction;
It has a two-port memory of m × n words that can read data written in the horizontal direction in the vertical direction, or read data written in the vertical direction in the horizontal direction,
The first and second one-dimensional DCT / IDCT arithmetic shared circuits use k / 2 (k is 2 as a multiplicand) with only one or two values selected from coefficients multiplied by the original signal and the DCT coefficients. Power of) semi-fixed multipliers,
f (0), f (k-1), f (1), f (k-2), f (2), f (k-3), ..., f (k / 2-1), f ( f (0) + f (k-1), f (0) -f (k-1), f (1) + f (k-2) from the original signals input one by one in the order of k / 2) ), f (1) -f (k-2), f (2) + f (k-3), f (2) -f (k-3), ..., f (k / 2-1) + f (k / 2), f (k / 2-1) -f (k / 2) are calculated in order, and the output is input to the k / 2 semi-fixed multipliers or F (0 ), F (1), F (2), F (3), F (4),..., F (k-2), F (k-1) An adder / subtractor capable of selecting whether to input to the k / 2 semi-fixed multipliers;
Storing means for holding two accumulated values, selecting one from the outputs of the k / 2 semi-fixed multipliers, and selecting whether to add as it is or to invert and add K / 2 accumulators that alternately add to the two accumulated values;
Storage means for holding k values output from the k / 2 accumulators, and F (0), F (1), F (2), F (3), F (4) , ..., F (k-2), F (k-1) are output in the order of DCT coefficients, or k / 2 additions to the k values output from the accumulator And k / 2 subtractions to obtain f (0), f (1), f (2), f (3), f (4), ..., f (k-2), f (k-1 2) a two-dimensional DCT / IDCT arithmetic apparatus, comprising: an adder / subtractor capable of selecting whether to obtain and output an original signal in the order of
m=n=kであることを特徴とする請求項8に記載の2次元DCT/IDCT演算装置。9. The two-dimensional DCT / IDCT arithmetic apparatus according to claim 8, wherein m = n = k.
JP17132299A 1999-06-17 1999-06-17 DCT arithmetic device and IDCT arithmetic device Expired - Lifetime JP3654622B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17132299A JP3654622B2 (en) 1999-06-17 1999-06-17 DCT arithmetic device and IDCT arithmetic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17132299A JP3654622B2 (en) 1999-06-17 1999-06-17 DCT arithmetic device and IDCT arithmetic device

Publications (2)

Publication Number Publication Date
JP2001005800A JP2001005800A (en) 2001-01-12
JP3654622B2 true JP3654622B2 (en) 2005-06-02

Family

ID=15921105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17132299A Expired - Lifetime JP3654622B2 (en) 1999-06-17 1999-06-17 DCT arithmetic device and IDCT arithmetic device

Country Status (1)

Country Link
JP (1) JP3654622B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258786A (en) * 2008-04-11 2009-11-05 Mitsubishi Electric Corp Moving image encoding device

Also Published As

Publication number Publication date
JP2001005800A (en) 2001-01-12

Similar Documents

Publication Publication Date Title
JP7074363B2 (en) Homomorphic processing unit (HPU) to accelerate secure computation under homomorphic encryption
US7774400B2 (en) Method and system for performing calculation operations and a device
KR101202445B1 (en) Processor
EP0275979A2 (en) Circuit for computing the quantized coefficient discrete cosine transform of digital signal samples
JP3228927B2 (en) Processor element, processing unit, processor, and arithmetic processing method thereof
JPH0526229B2 (en)
JP2959104B2 (en) Signal processor
US20210089610A1 (en) Memory device and method
Carranza et al. Fast and scalable computation of the forward and inverse discrete periodic radon transform
Lin et al. Scalable montgomery modular multiplication architecture with low-latency and low-memory bandwidth requirement
CN114968173A (en) Polynomial multiplication method and polynomial multiplier based on NTT and INTT structures
KR950000386B1 (en) Discrete cosine transform circuit
CN113467750A (en) Large integer bit width division circuit and method for SRT algorithm with radix of 4
JP3129392B2 (en) Two-dimensional IDCT circuit
JP3654622B2 (en) DCT arithmetic device and IDCT arithmetic device
US20040128335A1 (en) Fast fourier transform (FFT) butterfly calculations in two cycles
WO2015095064A1 (en) System and methods for computing forward and inverse discrete periodic radon transform
US5343501A (en) Orthogonal transform apparatus for video signal processing
Bi et al. Pipelined hardware structure for sequency-ordered complex Hadamard transform
KR100444729B1 (en) Fast fourier transform apparatus using radix-8 single-path delay commutator and method thereof
TWI472932B (en) Digital signal processing apparatus and processing method thereof
JP2001084242A (en) Variable operation processor
Ke et al. High-performance montgomery modular multiplier with NTT and negative wrapped convolution
KR0126109B1 (en) Vlsi processor for dct/idct
JP3970442B2 (en) Discrete cosine transform device and inverse discrete cosine transform device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3654622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080311

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term