JP3654622B2 - DCT arithmetic device and IDCT arithmetic device - Google Patents
DCT arithmetic device and IDCT arithmetic device Download PDFInfo
- 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
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】
【0004】
【数2】
【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】
【0008】
【数4】
【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 “
[0003]
[Expression 1]
[0004]
[Expression 2]
[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 “
[0007]
[Equation 3]
[0008]
[Expression 4]
[0009]
Here, the first term on the right side of the above formulas “
[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 “
[0012]
Initially, the
[0013]
Further, the adders /
[0014]
First, when f (0) + f (7) is input, the
[0015]
Next, in
[0016]
Similarly, in the
[0017]
On the other hand, the
[0018]
The DCT coefficients F (0) to F (7) set in the
[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
[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
[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
[0023]
The addition of the multiplication result of the matrix of the first term on the right side of the expression “
[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
[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
[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-
[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
[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-
[0033]
However, as shown in FIG. 9, if F (7) = f (0) and f (0) is not written to the two-
[0034]
FIG. 10 shows a case where the 8-point one-dimensional DCT / IDCT
[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 “
[0045]
A specific operation will be described below.
Initially, the
[0046]
[0047]
When f (0) + f (7) is input first, the
[0048]
Next, when f (0) -f (7) is input, the
[0049]
In the
[0050]
The DCT coefficients F (0) to F (7) set in the
[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 /
[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
[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
[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
[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
[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
[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)
入力される原信号に掛けられる係数の中から選択した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.
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.
原信号および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).
水平方向に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.
水平方向に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.
水平方向に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
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009258786A (en) * | 2008-04-11 | 2009-11-05 | Mitsubishi Electric Corp | Moving image encoding device |
-
1999
- 1999-06-17 JP JP17132299A patent/JP3654622B2/en not_active Expired - Lifetime
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 |