JP3575991B2 - Orthogonal transform circuit - Google Patents

Orthogonal transform circuit Download PDF

Info

Publication number
JP3575991B2
JP3575991B2 JP19755498A JP19755498A JP3575991B2 JP 3575991 B2 JP3575991 B2 JP 3575991B2 JP 19755498 A JP19755498 A JP 19755498A JP 19755498 A JP19755498 A JP 19755498A JP 3575991 B2 JP3575991 B2 JP 3575991B2
Authority
JP
Japan
Prior art keywords
bit
element data
input
operation unit
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP19755498A
Other languages
Japanese (ja)
Other versions
JP2000029863A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP19755498A priority Critical patent/JP3575991B2/en
Publication of JP2000029863A publication Critical patent/JP2000029863A/en
Application granted granted Critical
Publication of JP3575991B2 publication Critical patent/JP3575991B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像情報,音声情報の高能率符号化技術の1つである直交変換に関し、より詳細には、直交変換を用いて時間領域の信号を周波数領域の信号に変換するための直交変換回路、及び時間領域の信号と周波数領域の信号との間の相互変換を行う直交変換回路に関するものである。
【0002】
【従来の技術】
近年になり、画像情報,音声情報の高能率符号化技術が注目を集めている、中でも直交変換を実現する回路は高能率符号化方式実現のための重要な要素であり、その小規模化,高速化を目指して多くの研究,開発が行われている。
直交変換装置の1つである1次元DCTプロセッサ回路は、バタフライ演算回路と、乗算器を用いずにベクトル内積の積和を求める分布演算技術(DA法)を用いる演算回路とで実現できる。
かかる1次元DCTの演算例として、8点1次元DCTの演算式を式(1)及び式(2)に示す。
【0003】
【数1】

Figure 0003575991
【0004】
DCTプロセッサにおけるバタフライ演算では、8個のデータx0,x1,x2,x3,x4,x5,x6,x7に対して(x0,x7),(x1,x6),(x2,x5),(x3,x4)の4組をつくり、各組においてx0+x7,x0−x7,x1+x6,x1−x6,x2+x5,x2−x5,x3+x4,x3−x4の加減算を行う。
【0005】
次に、このバタフライ演算の出力を用いて、式(1),式(2)にもとづき1次元DCT係数を算出する。
一例を示すと、式(1)のDCT係数X2は、積和演算により、
X2=(1/2)×{B×(x0+x7)+C×(x1+x6)+(−C)×(x2+x5)+(−B)×(x3+x4)}
と求めることができる。
DA法とは、式(1),式(2)における行列の積和演算を、図3(D)に示すような同じ桁のビットデータを集めたビットスライスという単位で行う手法である。DA法の一例を下記の式(5),式(6),式(7)及び表1に示し、これに従い説明を行う。
【0006】
【数2】
Figure 0003575991
【0007】
【数3】
Figure 0003575991
【0008】
【表1】
Figure 0003575991
【0009】
上記式(5)に示すように、式(2)におけるバタフライ演算結果(x0+x7,x1+x6,x2+x5,x3+x4)をビット単位([b ,…,b01,b00,]、[b ,…,b11,b10,]、[b ,…,b21,b20,]、[b3n,…,b31,b30,]:b ,…,b00はビットを表す)に分解する。これらの同一桁に注目すると式(5)の第2行のDCT係数X2を求める積和演算は、式(6)のように分解することができる。
ここで、式(6)におけるb ,b ,b ,b の組をビットスライスと呼んでいる。
(n+1)桁目のビットスライスの積和演算は、上記式(7)で表わされ、b00〜b の取り得る値は0又は1なので、その結果は、(1/2)×(2のn乗)を掛け算すると、
(1/2)×(2のn乗)×((B×b )+(C×b )+(−C×b )+(−B×b ))
となる。
従って、その結果は、表1に示すような、ビットスライスの組合せに対応する16種類の部分和のテーブルを持てば積和演算値を求めることができる。
即ち、上式の中の(2のn乗)はシフト演算なので、式(6)の演算は、各ビットスライスの値をもとにテーブルを参照し得られた16種類の値のいずれかをビットシフトした後、順次、加算することによって実現される。同様の処理を式(5)の各行で行うことで、DA法による行列の積和演算が実現され、1次元DCT係数(X0,X2,X4,X6)を求めることができる。
【0010】
一方、8点1次元IDCTの演算式は、式(3)及び式(4)に示す式であり、入力としては、8個のデータ(X0,X1,X2,X3,X4,X5,X6,X7)が順次入力される。
まず入力データを式(3),式(4)に示すような({X0,X2,X4,X6}と{X1,X3,X5,X7})の二組にわけ、各組において入力データをビット単位に分解し、ビットスライスを構成する。
これらのビットスライスと、各ビットスライスの値の組合わせに対応したテーブルを用いてDA法による行列の積和演算を行い、式(3),式(4)それぞれの右辺第1項及び第2項を求める。
次にこの2項の加減算を行うことでx0〜x7が算出される。IDCTにおけるバタフライ演算とはこの加減算を意味する。
【0011】
特開平7−234864号公報には、バタフライ演算とDA法を用いた小規模の1次元DCT/IDCTプロセッサの回路構成が記載されている。特開平7−234864号公報記載の回路は8×8画素に対して1次元DCT/IDCTを行う回路であり、入力要素をメモリに記載しておき、必要な順にデータを並び替えてバタフライ演算器に渡すことで、レジスタ数を減少させ回路の小規模化を実現するものである。
【0012】
図21に示す特開平7−234864号公報記載のDCT/IDCTプロセッサにおいて、1800はアドレス発生器であり、1801は8×8ワードの16ビット幅のメモリであり、1802は16ビット幅のパイプラインレジスタであり、1803は16ビット幅の入力と34ビット幅の出力を持つ積和演算器であり、1804は34ビット幅のパイプラインレジスタであり、1805は16ビット幅のパイプラインレジスタであり、1806は8×8ワードの16ビット幅のメモリであり、1807は34ビット幅の入力と16ビット幅の出力を持つバタフライ演算器であり、1808は16ビット幅のパイプラインレジスタであり、1809はアドレス発生器である。
【0013】
DCT変換の場合このプロセッサには、図18に示すような8×8(Mビット/個)個の要素データの1行または1列からなる8個のデータx0,x1,x2,x3,x4,x5,x6,x7がこの順序で入力され、そのデータをメモリ1801に一時記憶しておく。このメモリ1801から、アドレス発生器1800によってバタフライ演算を行うときに必要になる順序、即ちx7,x0,x6,x1,x5,x2,x4,x3の順にデータを読み出し、パイプラインレジスタ1802を介してバタフライ演算器1807に供給する。
バタフライ演算器1807は、供給されたデータを加減算するための34ビット幅の第1と第2入力と、16ビット幅の出力を持つ並列加算器を備えている。バタフライ演算器1807にはx7,x0,x6,x1,x5,x2,x4,x3の順にデータが入力され、(x0+x7),(x0−x7),(x1+x6),(x1−x6),(x2+x5),(x2−x5),(x3+x4),(x3−x4)の順で演算が行われ、パイプラインレジスタ1808を介して積和演算器1803に出力される。
【0014】
積和演算器1803は、シフトレジスタとビットスライスに対応する部分和のROMと、ROMから出力される値をシフトしながら加算する累算回路と34ビット幅の第1入力と16ビットの第2,第3入力と34ビット幅の出力を持つ並列加算器を備えている。
積和演算器1803の動作を説明すると、入力されたバタフライ演算結果は、シフトレジスタによってビットスライスに分解される。そのビットスライスを入力アドレスとしたROMの出力値を求め、その値を累算回路に入力しビットスライス単位での累和演算を行うことで、DA法による積和演算を実現し、1次元DCT係数X0,X2,X4,X6,X1,X3,X5,X7が求まる。
演算結果はパイプラインレジスタ1804,1805を介してメモリ1806に渡される。このメモリ1806から、アドレス発生器1809によって適切な順序,即ちX0,X1,X2,X3,X4,X5,X6,X7に並び替えられ外部に出力される。
【0015】
【発明が解決しようとする課題】
上記のとおり、特開平7−234864号公報のDCT/IDCTプロセッサは、入出力データの並びかえを行うたのメモリやアドレス発生器が必要であり、回路規模が大きくなる。例えば入力データが16ビットの場合、8×8ワードで各ワードが16ビット幅であれば、1Kビットの容量が必要になる。
また、バタフライ演算器1807において、入力データの加減算をデータ単位で行うため、並列加算器が大規模になるという問題がある。従来例ではDCT演算とIDCT演算で用いる並列加算器を共有しており、IDCT演算のうちの積和演算結果が34ビットの場合、並列加算器では34ビットの加算を行う必要があるということになる。
本発明は、このような従来技術の問題点に鑑みてなされたものであり、バタフライ演算及び積和演算を行う手段を従来よりも小規模とする直交変換回路及び双方向の動作を行うことを可能とする当該直交変換回路を提供することをその目的とする。
【0016】
【課題を解決するための手段】
上記目的を達成するために、本発明の直交変換回路では、バタフライ演算部においては、N個の要素を格納するためのN個のパラレルレジスタとN個のシフトレジスタとN個のKビット並列加算器を備える。パラレルレジスタは、入力要素データの並び替えを行いシフトレジスタに渡す、シフトレジスタは渡された要素データを2個1組にしてKビットずつ並列加算器に出力する並列加算器は、Kビットに分解されて渡された要素データの加算または減算を行う。これにより一時記憶用のメモリやそのメモリからの読み出し順序を制御するアドレス発生器の必要がなくなり、バタフライ演算部で、要素データの並び替え及び加減算をビット単位で行う(入出力がビット幅)ことにより小規模な回路でバタフライ演算を可能にし、直交変換装置回路の小規模化が可能になる。
そして、各請求項記載の発明は次の技術手段により構成される。
【0017】
請求項1記載の発明は、入力されるN個の要素データに対する直交変換処理をバタフライ演算部と積和演算部を備えるプロセッサにより行う直交変換回路において、前記バタフライ演算部は、入力されるN個の要素データを要素データ毎に用意したレジスタに格納するパラレルレジスタ群と該パラレルレジスタ群の各レジスタに接続し該レジスタからのN個の要素データを要素データ毎に用意したレジスタに格納するシリアルレジスタ群と該シリアルレジスタ群の各レジスタに接続し該レジスタからのデータを加算するN個のKビット加算器で構成され、前記パラレルレジスタ群は、入力されるN個の要素データの順序を変換し、前記シリアルレジスタ群は、前記パラレルレジスタ群によって順序が変換された要素データについて下位ビットから順にKビットずつシリアルにN個の要素データ各々を同時に出力し、前記Kビット加算器は、前記シリアルレジスタ群から出力されるKビット毎の前記N/2組の要素データの加算及び減算を行い、この結果得られるキャリーを保存しこの保存したキャリーを用いて、下位から上位へ順次該加算及び減算を行うものとし、前記積和演算部は、前記バタフライ演算部で求められた加算及び減算結果として下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスを入力とし、該入力ビットスライスの各桁毎の部分和を加算するものとしたことを特徴とする。
【0019】
請求項記載の発明は、請求項1記載のプロセッサをDCTプロセッサとしたことを特徴とする。
【0020】
請求項記載の発明は、請求項1または2に記載のプロセッサを各次元に対応させることにより多次元の直交変換処理を行うことを特徴とする。
【0021】
請求項記載の発明は、入力されるN個の要素データに対する直交変換処理及び/又は逆直交変換処理を、第1のバタフライ演算部と積和演算部と第2のバタフライ演算部を備えるプロセッサにより行う直交変換回路において、前記第1のバタフライ演算部は、入力されるN個の要素データを要素データ毎に用意したレジスタに格納するパラレルレジスタ群と該パラレルレジスタ群の各レジスタに接続し該レジスタからのN個の要素データを要素データ毎に用意したレジスタに格納するシリアルレジスタ群と該シリアルレジスタ群の各レジスタに接続し該レジスタからのデータを加算するN個のKビット加算器で構成するものであって、前記パラレルレジスタ群は、入力されるN個の要素データの順序を変換し、前記シリアルレジスタ群は、前記パラレルレジスタ群によって順序が変換された要素データについて下位ビットから順にKビットずつシリアルにN個の要素データ各々を同時に出力し、前記Kビット加算器は、直交変換処理を行う場合には前記シリアルレジスタ群から出力されるKビット毎の前記N/2組の要素データの加算及び減算を行い、この結果得られるキャリーを保存しこの保存したキャリーを用いて、下位から上位へ順次該加算及び減算を行い、逆直交変換処理を行う場合には該Kビット加算器を機能させずに前記シリアルレジスタ群の出力を直接出力するものとし、前記積和演算部は、直交変換処理を行う場合には前記第1のバタフライ演算部で求められた加算及び減算結果として下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスの下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスを入力とし、逆直交変換処理を行う場合にはN個の要素データを2組に分け得た各組に含まれるN/2個の要素データ各々の下位ビットから順に同時に出力される同一桁のビットスライスを入力とし、該入力ビットスライスの各桁毎の部分和を加算するものとし、前記第2のバタフライ演算部は、加算器を備え、該加算器は逆直交変換処理を行う場合には前記積和演算部における加算結果である前記入力ビットスライスの各桁毎の部分和を入力としてその加算及び減算を時分割で行うことを特徴とする。
【0023】
請求項記載の発明は、請求項4に記載のプロセッサをDCT/IDCTプロセッサとしたことを特徴とする。
【0024】
請求項記載の発明は、請求項4または5に記載のプロセッサを各次元に対応させることにより多次元の直交変換処理を行うことを特徴とする。
【0025】
【発明の実施の形態】
本発明の実施の形態について添付図を参照し、以下に説明する。
図1に、本発明による直交変換回路の一実施形態である2次元DCTプロセッサの概要をブロック図にて示し、そのプロセッサの具体的な動作を図2乃至図7及び図18に基づき以下に説明する。
図1において、直列に接続されるバタフライ演算部12,16と積和演算部13,17、四捨五入部14,18それぞれで1次元DCTを行い、二つの1次元DCT回路で2次元のDCTを実現する。
図1に示す2次元DCTプロセッサの特徴は、バタフライ演算部12,16における入力画素データをバタフライ演算部12,16の内部に設けたレジスタに格納し、順序変換を行い、変換後そこからデータを2ビットずつ出力することで、加減算を2ビット単位で行うことである。この処理により、データ入力時にメモリやアドレス発生器を必要とせず、また、従来例ではデータビット幅分の入力が必要であった並列加減算の規模も入出力が2ビット幅と小さくおさえることが可能になる。
【0026】
以下、実施形態の動作を説明する。図1の2次元DCTプロセッサのバタフライ演算部12は、並び替え部100と加減算部101で構成される。並び替え部100では、入力された画素データの順序を入れ換え、各画素データの下位から2ビットずつを加減算部101に渡す。
加減算部101では、渡された2ビット単位の画素データについて加算及び減算を行うことで、バタフライ演算を実現する。その演算結果をビットスライス単位で積和演算部13に渡す。積和演算部13では水平方向の1次元DCTを行い、求まったDCT係数の中間結果が、四捨五入部14に渡される。
四捨五入部14では、式(1),式(2)中の右辺の(1/2)の乗算を四捨五入を用いて行い、演算結果をRAM15に渡す。RAM15は15ビット幅の入出力を持つデータ転置用のRAMであり、入力されたデータの転置を行いバタフライ演算部16にデータを渡す。
バタフライ演算部16はバタフライ演算部12と同様にデータの並べ替え及び2ビット毎の加減算を行い、ビットスライスを積和演算部17に出力する。
以降、積和演算部17,四捨五入部18は各々積和演算部13,四捨五入部14と同じ処理を行う。RAM15をはさんで、まず水平方向の1次元DCTを行い、次に垂直方向の1次元DCTを行うことで、2次元DCTを完了する。
【0027】
図1における2次元DCTプロセッサの各ブロックの動作を更に詳しく説明する。バタフライ演算部12への入力画素データは図17に示すような8×8マトリックスで、各画素データは9ビットであるとする。
ここでは、下記式(1),式(2)に基づき、第1行の入力画素データx0,x1,x2,x3,x4,x5,x6,x7から、DCT係数X0,X1,X2,X3,X4,X5,X6,X7を求める1次元DCTの処理手順について述べる。
【0028】
【数4】
Figure 0003575991
【0029】
図2にバタフライ演算部12の構成を示す。バタフライ演算部12は、大きくは、並び替え部100と加減算部101にわかれている。並び替え部100は、9ビット幅の画素データ入力と、8個の画素データを2ビット単位に分割した16ビット幅の出力(8画素データ×2ビット)を持ち、加減算部101は、並び替え部100から渡される16ビット幅の入力と入力データの加算結果の加算ビットスライス241(2ビット×4加算)と、減算結果の減算ビットスライス242(2ビット×4減算)の計16ビット幅の出力を持つ。
【0030】
並び替え部100は、9ビットのレジスタ(R)200〜207と図3(A)にすような9ビットのパラレルイン、2ビット毎のシリアルアウトのシフトレジスタSR210〜217とで構成される。
加減算部101は1ビットのレジスタ220〜227と全加算器230〜237を備え、その単位要素を図3(B)に示すように、上記シフトレジスタ210,211からの2ビット幅の第1,第2入力と全加算器230の下位からのキャリー・アウトを入力とする1ビットのレジスタ220の1ビットの桁上がりをキャリー・インとする第3入力とを加算し、加算結果を出力する2ビット幅の第1出力と、キャリー・アウトを出力する1ビットの第2出力を持つ全加算器230〜237とで構成する。
【0031】
図6は、バタフライ演算部12の動作を示すタイミング図で、入出力及び演算部の各要素におけるデータの時間的変化を示す。バタフライ演算部12に画素データx0,x1,x2,x3,x4,5,x6,x7が、この順序で1クロック毎に読み込まれ(図6(a))、クロックタイミングT1〜T4の期間は1クロック毎に入力画素データをレジスタ206から入力しレジスタ204,202,200に順送りし、保存する(図6(h),図6(f),図6(d),図6(b))。
次にT5〜T8の期間は入力画素データをレジスタ201から入力し、レジスタ203,205,207に順送りし、保持する(図6(c),図6(e),図6(g),図6(i))。この動作を繰り返すことで8クロック毎にレジスタ200〜207全てが画素データで満たされる。
【0032】
レジスタ200〜207全てがデータで満たされると、以降8クロック毎に、レジスタ200〜207に保持されたデータを各々シフトレジスタ210〜217に受け渡す(図6(j)〜図6(q))。
シフトレジスタ210からは、1クロック毎に格納されているデータの下位から2ビットずつが出力され、全加算器230,231に渡される。全加算器230はバタフライ演算における加算を、全加算器231はバタフライ演算における減算を行う。
シフトレジスタ211からも1クロック毎に格納されているデータの下位から2ビットずつが出力され、該データが全加算器230に、該データを反転したものが全加算器231に渡される。
レジスタ220,221は、最下位2ビットの演算前に初期値がセットされ、それ以降は演算結果のキャリーを保持する。レジスタ220の初期値は0、レジスタ221の初期値は1である。
ここで全加算器231について、シフトレジスタ211からの入力を反転し、かつレジスタ221に初期値として1を設定するのは、レジスタ211からの入力を2の補強表現で負の数とし、全加算器231を減算器として動作させるためである。
全加算器230,231では2ビットずつ全加算が行われ、(x0+x7)と(x0−x7)が下位から順に2ビットずつ求められる。
【0033】
(x0+x7)について図3(B),図3(C),図3(D)を用いて説明する。図3(B)は図2のバタフライ演算部のうち、(x0+x7)の演算に対応する部分を抜き出したものである。図6に示すように、T9〜T16の期間、シフトレジスタ210にはx0が、シフトレジスタ211にはx7が格納される。ここで一例としてx0=110101000,x7=111001111とする。
シフトレジスタ210,211に格納されているx0,x7は、各々2ビットずつシフトを行いながら、2ビットずつ出力を全加算器230に与える。全加算器230はキャリーレジスタ220を用いながら2ビットの加算を繰り返す。(x0+x7)は10ビットであるから加算は計5回の繰り返しで終了する。
【0034】
この様子を図3(C)に示す。タイミングT9からT13の5回の計算で(x0+x7)の結果が下位から順に2ビットずつ出力されることになる。これは図2における出力260に相当する。他のバタフライ演算の加算結果261〜263,及び減算結果250〜253についても同様の演算が行われる。
図2の出力260〜262に注目すると、図3(D)のようになる。バタフライ演算の加算部分の計算結果は、図3(D)に示すように、260〜263の下位から順に2ビットずつビットスライスで出力される。またバタフライ演算の減算部分の計算結果は2の補数表現で負の数とするための反転処理があること以外は、上記と同様の処理を行い、250〜253の下位から順に2ビットずつのビットスライスで結果が出力されることになる。
このタイミングを図6(r)〜図6(u)に示す。まず下位2ビットに対応する加算ビットに対応するビットスライスがT9からT13の期間出力される。その後T14〜T16の期間,ダミーデータをはさんで、次の入力データ組の出力に移るサイクルを繰り返す。
【0035】
図4に示す前記積和演算部13(なお、積和演算部17についても同様である)は2つの4ビット幅の入力と、各々16ビット幅の第1,第2出力を持ち、DCT係数の部分和を出力するROMを含み、4ビット幅の第1,第2入力と演算結果出力として16ビット幅の出力を持つ累積加算部400〜407と、16ビット幅の第1,第2,第3,第4入力と出力を持つマルチプレクサ412,413と各々二つの4ビット幅の入出力を持ち、2クロックのディレイを生じさせる遅延部420〜425とで構成される。
【0036】
積和演算部13の中では、バタフライ演算部12から渡される16ビットのビットスライスのうち、(x0+x7,x1+x6,x2+x5,x3+x4)の加算ビットスライス241は累積加算部400〜403に、(x0−x7,x1−x6,x2−x5,x3−x4)の減算ビットスライス242は累積加算部404〜407に入力される。ここで加算,減算ビットスライス各々を下位ビットスライスと上位ビットスライスに分けて表現する。下位上位各々のビットスライスは図3(D)に示すように4ビットからなる。
【0037】
積和演算部を構成する累積加算部の単位要素部を図5に示す。
図5に示す累積加算部401において、ROM500とROM501は同一内容のデータを保持している。ROM500は下位ビットスライスを4ビット幅のアドレスとして入力し、ROM501は上位ビットスライスを4ビット幅のアドレスとして入力する。
これらのROM500及びROM501各々には、表1に示した、DCT演算のためのビットスライス値に対応したコサイン行列に基づく部分和16種が記憶されている。502は16ビット幅の第1入力520と17ビット幅の第2入力521を加算して18ビット幅の出力をする加算器であり、503は18ビットの第1入力と、16ビット幅の第2入力を加算して18ビット幅の出力をする加算器であり、504は18ビット幅の第1,第2入力とそれらの上位16ビットを出力するマルチプレクサであり、511は18ビット幅のレジスタであり、512は16ビット幅のレジスタであり、513はROM501から出力される部分和を1ビット左にシフトする回路である。
【0038】
また、図4の累積加算部400,402〜407も累積加算部401とはROMに保持されるデータ内容が異なるだけで、その他は全く同一の回路である。累積加算部400では式(1)のDCT係数X0に対応する演算を行い、以下累積加算部401はX2,402はX4,403はX6の演算を、累積加算部404では上記式(2)のDCT係数X1に対応する演算を行い、以下405はX3,406はX5,407はX7の演算を行う。
また、遅延器420〜425で入力ビットスライスを遅延させるのは、演算結果を1クロックあたり1係数とするためである。
【0039】
累積加算部の一例として累積加算部401の動作について図5,図7及び下記式(5),式(6)を用いて説明する。
累積加算部401では、下記式(5),下記式(6)に示すDCT係数X2を算出するために、式(5)の右辺の4×4マトリクスの第2行と4×1マトリクスの積和演算をビットスライス単位の加算で実現する。
【0040】
【数5】
Figure 0003575991
【0041】
まず、T9〜T13の期間中、1クロック毎にビットスライスが2ビットずつ入力される(図7(a))。下位ビットスライス{b00,b10,b20,b30}はROM500に入力され、このビットスライスに対応した、式(5)右辺の4×4マトリクスの第2行と4×1マトリクスの積和演算の部分和520が順次索引される(表1参照)。
次に上位のビットスライス{b01,b11,b21,b31}はROM501に入力され、このビットスライスに対応した、式(5)右辺の4×4マトリクスの第2行と4×1マトリクスの積和演算の部分和521が順次索引される(表1参照)。
そして、部分和521は部分和520より1ビット上位にあるため、部分和521を左へ1ビットシフトした値、つまり2の乗算を行った値を部分和520と加算する(部分和520+部分和521×2)。
以上の演算を全ビットスライスに対して行うことで、DCT係数X2を求める。ただし最上位の符号ビットのビットスライスに対応する部分和が入力されたときは、2の補数表現の変換手順に従い、左へ1ビットシフトした値の符号を反転させて加算する(部分和520+(−(部分和521×2)))。
【0042】
加算器502による加算結果は、レジスタ511を介して加算器503によって、既に計算されたより下位にあるビットスライスの結果と累積加算する。この累積加算結果のビット数を出力として要求されているビット精度に落とす。
本実施例の場合では、上位16ビットがレジスタ512に格納された後、16ビットが出力される(図7(b))。また同時に次の上位ビットの加算結果と累積加算するために、加算器503に入力する。
この結果、ビットスライス入力が完了した2クロック後に演算結果が求められ最上位ビットスライスの入力の2クロック後には、上記式(1)の右辺の4×4マトリクスの第2行と4×1マトリクスの積和演算結果(式(1)左辺のX0に対応)が出力される(図7(c))。
【0043】
同様の演算を累積加算部400,402,403,404,405,406,407で行う。各々、累積加算部400で式(1)の右辺の4×4マトリクスの第1行と4×1マトリクスの積和演算結果(式(1)左辺のX0に対応)を、同402で式(1)の右辺の4×4マトリクスの第3行と4×1マトリクスの積和演算結果(式(1)左辺のX4に対応)を、同403で式(1)の右辺の4×4マトリクスの第4行と4×1マトリクスの積和演算結果(式(1)左辺のX6に対応)を求め、2クロック毎にマルチプレクサ412によって、タイミングT15〜T16の期間は第1行,T17〜T18の期間は第2行,T9〜T20の期間は第3行、T21〜T22の期間は第4行の順に選択され、積和431として四捨五入部14(図1参照)に渡す(図7(c))。
【0044】
同様にして累積加算部404で式(2)の右辺の4×4マトリクスの第1行と4×1マトリクスの積和演算結果(式(2)左辺のX1に対応)を、同405で式(2)の右辺の4×4マトリクスの第2行と4×1マトリクスの積和演算結果(式(2)左辺のX3に対応)を、同406で式(2)の右辺の4×4マトリクスの第3行と4×1マトリクスの積和演算結果(式(2)左辺のX5に対応)を、同407で式(2)の右辺の4×4マトリクスの第4行と4×1マトリクスの積和演算結果(式(2)左辺のX7に対応)を求め、タイミングT15〜T16の期間は第1行,T17〜T18の期間は第2行、T19〜T20の期間は第3行、T21〜T22の期間は第4行を選択するように2クロック毎にマルチプレクサ413を切替えて、積和432として四捨五入部14に渡す(図7(c))。
【0045】
図7(c)に示すように、累積加算部401,405には、累積加算部400,404よりも2クロック遅延してビットスライスが入力されるので、演算結果が求まるのも2クロック後となる。同様に累積加算部402と406、403と407でも各々2クロック遅延して演算結果が出力される。
前記四捨五入部14において、式(1),(2)の右辺の(1/2)の乗算を行い結果を四捨五入する。
以上の処理を行うことで、水平方向の1次元DCTが完了する。
【0046】
RAM15では、図20に示すように、横向きラスター順に入力されたデータを縦向きラスター順に出力する。すなわち、書き込みと読み出しの順を横から縦に変更し、バタフライ演算部16に渡す。
垂直方向のDCTは水平方向のDCTと基本的に同じ動作を行う。ただし本実施例では、バタフライ演算部16に入力されるデータは、前述の積和演算部13の出力ビット精度を16ビットとし、それをさらに四捨五入部14で1/2にした関係上、15ビットデータになり、水平方向のDCTの9ビット幅の入力とは異なる。また出力データも、DCT係数のビット精度を12ビットとしているので12ビット幅となり、水平方向のDCTとは異なる。
以上の処理を行うことにより2次元DCTを実現する。
【0047】
次に、本発明による直交変換回路の一実施形態であるDCT/IDCTプロセッサの概要ブロック図を図8にて示し、そのプロセッサの具体的な動作を図9乃至図17,図19に基づき以下説明する。
ここに、図8の2次元DCT/IDCTプロセッサは図1の2次元DCTプロセッサにIDCTのための回路を付加したものであり、DCTモードの場合は、前記DCTプロセッサと同じ処理が行われるため、上述したものと同一符号を付しその説明は省略し、IDCTモードの場合の説明のみを行う。
図8に示すIDCTプロセッサの特徴は図19に示す入力DCT係数データX0,X1,X2,X3,X4,X5,X6,X7を並び替え部820に設けたレジスタに格納し、それらからデータを2ビットずつ出力する処理により、メモリやアドレス発生器を必要としないデータ入力を実現することである。また、後段のバタフライ演算部804においても、下位ビットから順次加算を行うため、従来例に比べて小さい加算器を備える点に特徴がある。
【0048】
図8に示す双方向DCT/IDCTプロセッサでは、下記式(3),(4)に示す演算も行われる。
この演算動作について説明すると、並び替え部820では、入力データのビットスライス化のみを行い、このビットスライスが積和演算部803に渡される。積和演算部803では、垂直方向の1次元DCTを行い、それによって求まったIDCTの中間結果が、バタフライ演算部804に渡される。バタフライ演算部804においては、式(3)及び(4)の右辺の加算及び減算と、(1/2)の乗算を四捨五入を用いて行い、演算結果をRAM15に渡す。RAM15では、垂直方向ラスター順に入力されたデータの転置を行い水平方向ラスター順に並び替え部822にデータを渡す。以降、バタフライ演算部808において最終的に画素データとして出力するときの順序を並び替えること以外は、垂直方向の1次元IDCTと同じ動作を行い、バタフライ演算部808から画素データが出力される。RAM15をはさんで、まず垂直方向の1次元IDCTを行い、次に水平方向の1次元IDCTを行うことで、2次元IDCTを実行する。
【0049】
図8に示す2次元DCT/IDCTプロセッサの各ブロックの動作をさらに詳しく述べる。
IDCTモードの場合、入力要素データは、図19に示す8×8マトリクスで各係数は12ビットであり、該マトリクスの第1列がX0,X1,X2,X3,X4,X5,X6,X7であるとする。ここでは、下記式(3),式(4)に基づき、入力データX0,X1,X2,X3,X4,X5,X6,X7から、画素値x0,x1,x2,x3,x4,x5,x6,x7を求めることとし、その処理手順について述べる。
【0050】
【数6】
Figure 0003575991
【0051】
図9に示すバタフライ演算部802の並べ替え部820は、図2で示した並び替え部100に9ビット幅の第1入力と12ビット幅の第2入力のうちどちらかを選択するマルチプレクサ900〜907を付加した構造となり、加減算部821は、図2で示した加減算部101に、2ビット幅の第1,第2入力からどちらかを選択/出力するマルチプレクサ910〜917を付加した構造となる。
【0052】
図15は、IDCTモードの場合のバタフライ演算部802の動作を示すタイミング図である。バタフライ演算部802にX0,X1,X2,X3,X4,X5,X6,X7が、この順序で1クロック毎に読み込まれ(図15(a))、タイミングT0〜T7の期間は1クロック毎に入力画素データをレジスタ207から入力し、レジスタ206,205,204,203,202,201,200に順送りする(図15(i)〜図15(b))。
レジスタ200〜207全てがデータで満たされると、以降8クロック毎にレジスタ200〜207に保持されたデータを各々シフトレジスタ210〜217に受け渡す(図15(j)〜図15(q))。各シフトレジスタ210〜217は1クロック毎に格納しているデータの下位から2ビットずつを加減算部821に渡す。
【0053】
加減算部821では、IDCTモードの場合、加算器230〜237は用いない。つまり、マルチプレクサ910〜917によって並び替え部820から渡されたX0〜X7のビットスライスを選択し、X0,X2,X4,X6を下位から2ビットずつまとめたビットスライスAと、X1,X3,X5,X7を下位から2ビットずつまとめたビットスライスBとを積和演算部803に出力する(図15(r)〜図15(u))。
【0054】
図10及び図11に示す積和演算部803は図4で示した積和演算部13の累積加算部400〜407に一部変更を加えた累積加算部1000〜1007と、さらに2ビット幅の第1,第2入力と1ビット幅の第3,第4出力を持つ加減算器1008〜1015と、1ビット幅の第1,第2,第3,第4入力と出力を持つマルチプレクサ1042,1043を付加した構造となる。
該積和演算部803の中では、並び替え部820から渡されるビットスライスのうち{X0,X2,X4,X6}のビットスライスAは累積加算部1000,1001,1002,1003に、{X1,X3,X5,X7}のビットスライスBは累積加算部1004,1005,1006,1007に入力される。
【0055】
図12に示す累積加算部1000は、上述した実施形態におけるDCTの場合で説明した累積加算部401と基本的には同じ動作を行う。
図16に示すタイミングチャートを用いてこの動作の説明をする。まず、タイミングT9〜T14の期間中、1クロック毎に2ビットずつビットスライスが入力される(図16(a))。2ビットのうち下位ビットスライスがROM1100に、上位ビットスライスがROM1101に入力され、各々のビットスライスに対応した部分和520,部分和521が順次索引される。
各部分和を加算し、加算器503でより下位のビットスライスの結果と累積加算し累積加算中間結果を求めるまでは、DCTの場合と同じである。ただし、レジスタ1112において累積加算中間結果のビット精度を落とす際、その切り落としたビット(本実施例の場合は下位2ビット)を上記式(3)右辺の加算を行うために加算器1008に、上記式(4)右辺の減算を行うために加算器1012に出力する点が異なる(図16(b))。
【0056】
同様の演算を累積加算部1001,1002,1003で行い、式(3),式(4)右辺の第1項の各行を下位から2ビットずつ求め、累積加算部1004,1005,1006,1007によって式(3),式(4)右辺の第2項の各行を下位から2ビットずつ求める。
累積加算部1000と累積加算器1004の計算結果より、加算器1008では式(3)右辺の加算を、1012では式(4)右辺の減算を下位から2ビットずつ行い、そのキャリーを加算キャリーまたは減算キャリーとして出力する。
このキャリーが有効となるタイミングは、最上位のビットスライスによる累積加算結果が累積加算部1000及び累積加算部1004から出力される時、即ちT16〜T17である(図16(c))。
同様にして、加算器1009〜1011で式(3)右辺の加算を行った時の各行の加算キャリー1032を、加算器1013〜1015で式(4)右辺の減算を行ったときの各行の減算キャリー1033を求め、式(3),式(4)の第1行〜第4行の順でバタフライ演算部804に渡す(図16(c))。
【0057】
図13に示すバタフライ演算部804は、式(3)右辺の加算、式(4)の右辺の減算を行い、各々16ビット幅の第1,第2入力と1ビット幅の第3,第4入力と16ビット幅の出力を持つ。
バタフライ演算部804において、1200は16ビット幅の第1,第2入力を持ち、それらを加算して17ビット幅の出力をする加算器であり、1201は17ビット幅の第1入力と、1ビット幅の第2入力を持ち、それらを加算して16ビットの出力をする加算器であり、1204は17ビット幅、1205は16ビット幅のそれぞれ入出力を持つレジスタであり、1202は1ビット幅の第1,第2入力から1ビット幅の出力を選択し、1203は16ビット幅の第1,第2入力から16ビット幅の出力を選択するマルチプレクサである。
【0058】
バタフライ演算部804の中では、1段目の加算器1200で、積和演算部803から入力された16ビット幅の2入力とビット幅の加算もしくは減算キャリーを用いて式(3),式(4)右辺の第1項と第2項の加算及び減算を交互に行い、17ビット幅のデータX0,X1,X2,X3,X4,X5,X6,X7を算出し、出力する。
加算の場合は右辺第1項の積和1030と、マルチプレクサ1203によって選択された右辺第2項の積和1031と、マルチプレクサ1202によって選択された加算キャリー1032を用いて、第1行から順に加算を行い、減算の場合は積和1030と、マルチプレクサ1203によって選択された積和1031を反転したデータと、マルチプレクサ1202によって選択された減算キャリー1033を用いて、第1行から順に減算を行う。
図16(c)で示した通り、期間T16,T17に累積加算部1000,1004の出力が有効になり、2出力の加算で式(3)のx0,減算で式(4)のx7が求められる。同様にして順にx1,x6,x2,x5,x3,x4が求められる。
【0059】
加算及び減算により求められた、17ビット幅のデータx0,x1,x2,x3,x4,x5,x6,x7,はレジスタ1204を介して加算器1201に渡される。2段目の加算器は1201では式(3),(4)右辺の(1/2)の乗算を四捨五入を用いて行い、上位16ビットがレジスタ1205に格納され、16ビット幅のデータとしてRAM15に出力される。
以上の処理を行うことで、垂直方向の一次元IDCTが完了する。
【0060】
RAM15の中では、図20に示すように、垂直方向ラスター順に入力されたデータの転置を行い、水平方向ラスター順にバタフライ演算部806にデータを渡す。バタフライ演算部806の中では、バタフライ演算部802と同様の演算が行われ、X0,X2,X4,X6を下位から2ビットずつまとめたビットスライスAと、X1,X3,X5,X7を下位から2ビットずつまとめたビットスライスBとを積和演算部807に出力する(図15(r)〜図15(u))。
【0061】
水平方向のIDCTは垂直方向のIDCTと基本的に同じ動作を行う。だたし図14に示すバタフライ演算部808において、2段目の加算器1300では、出力の画素データのビット精度を9ビットとしているので、13ビット幅の入力を四捨五入して9ビット幅にする点が異なる。
また、加算器1300の出力がバタフライ演算部804の加算器1201の出力と同様に、x0,x7,x1,x6,x2,x5,x3,x4順になるのをレジスタ1302,レジスタ1303,レジスタ1304,レジスタ1305及びマルチプレクサ1306を用いて出力画素データをx0,x1,…,x6,x7の順序に並び替える動作が付加されている。
【0062】
図17に示すバタフライ演算部808のタイミングチャートを用いてその動作を説明する。レジスタ1302には、x0,x7,x1,x6,x2,x5,x3,x4が、この順序で、1クロック毎に加算器1300から渡される(図17(a))。
レジスタ1303には、タイミングT19〜T24の期間中は、x0,x7,x1,x6,x2,x5が、この順序で、1クロック毎にレジスタ1302から渡され、T24〜T26の期間中は、x5が保持される(図17(b))。
レジスタ1304には、T20〜T23の期間中は、x0,x7,x1,x6が、この順序で、1クロック毎にレジスタ1303から渡され、T23〜T27の期間中は、x6が保持される(図17(c))。
レジスタ1305には、T21,T22の期間中は、x0,x7が、この順序で、1クロック毎にレジスタ1304から渡され、T22〜T28の期間中は、x7が保持される(図17(d))。
出力画素データの並べ替えは、マルチプレクサ1306によってレジスタ1305,1304,1303,1302,1303,1304,1305の順に1クロック毎に出力を切替えることで実現する(図17(e))。
【0063】
また、本実施形態では、並び替え部822に入力されるデータは、前述の積和演算部803の出力ビット精度を16ビットとした関係上、16ビットデータになり、垂直方向IDCTのビット幅の入力とは異なる。また出力データも、画素データのビット精度を9ビットとしているので9ビット幅となり、垂直方向IDCTの場合とは異なる。以上の処理を行うことにより二次元DCTを実現する。
なお、本実施形態で示した具体化例は一例であり、本発明はこの例以外にも適用可能である。例えば、この例では画素データは9ビットとしているが、9ビット以外でも構わない。また四捨五入の方法も一例であり、具体的に限定するものではない。データの形式も実施形態では画素,DCT係数としているが、具体的に画像データ,DCT係数に限定するものではない。
【0064】
【発明の効果】
以上説明してきたとおり、本発明によれば、従来の直交変換回路が備えていたメモリやアドレス発生器をなくした小規模の直交変換回路の実現が可能になる。従って本回路を集積化した場合にはチップ面積を小さくすることが可能になり本発明の実施化による有効性は大きい。
また、本発明によれば、直交変換回路に複数のマルチプレクサや加算器を付加するだけで、直交変換及び逆直交変換を行う双方向の直交変換回路とすることができ、双方向の直交変換回路においてもメモリやアドレス発生器は不要であり、小規模の回路構成とすることができる。
また、プロセッサをDCTプロセッサとし、さらに各次元に対応させることにより多次元の当該直交変換回路を構成することが可能となり、直交変換の実用化手段として有効な回路を提供する。
【図面の簡単な説明】
【図1】本発明によるDCTプロセッサの構成を示すブロック図である。
【図2】本発明によるDCTプロセッサ中のバタフライ演算部の構成を示すブロック図である。
【図3】本発明によるDCTプロセッサ中のパラレルレジスタ,全加算器の構成及び加算の概念図である。
【図4】本発明によるDCTプロセッサ中の積和演算部の構成を示すブロック図である。
【図5】図4に示される積和演算部の累積加算部の構成を示すブロック図である。
【図6】本発明によるDCTプロセッサ中のバタフライ演算部の動作を説明するためのタイミングチャートである。
【図7】本発明によるDCTプロセッサ中の積和演算部の動作を説明するためのタイミングチャートである。
【図8】本発明による双方向DCT/IDCTプロセッサの構成を示すブロック図である。
【図9】本発明による双方向DCT/IDCTプロセッサ中のバタフライ演算部の構成を示すブロック図である。
【図10】本発明による双方向DCT/IDCTプロセッサ中の積和演算部の構成を示すブロック図(その1)である。
【図11】本発明による双方向DCT/IDCTプロセッサ中の積和演算部の構成を示すブロック図(その2)である。
【図12】本発明による双方向DCT/IDCTプロセッサ中の累積加算部の構成を示すブロック図である。
【図13】本発明による双方向DCT/IDCTプロセッサ中のバタフライ演算部の構成を示すブロック図である。
【図14】本発明による双方向DCT/IDCTプロセッサ中のバタフライ演算部の構成を示すブロック図である。
【図15】本発明による双方向DCT/IDCTプロセッサ中のバタフライ演算部のIDCモードの動作を説明するためのタイミングチャートである。
【図16】図10及び図11に示される積和演算部の動作を説明するためのタイミングチャートである。
【図17】図14に示すバタフライ演算部の動作を説明するための図で、レジスタ及びマルチプレクサのタイミングチャートである。
【図18】DCT/IDCTプロセッサにおけるDCTモードの場合の入力マトリクスを示す図である。
【図19】DCT/IDCTプロセッサにおけるIDCTモードの場合の入力マトリクスを示す図である。
【図20】メモリへのデータの保持状態を転換することによる行列における転置の例を示す図である。
【図21】従来例のDCT/IDCTプロセッサを示すブロック図である。
【符号の説明】
12,16…バタフライ演算部、13,17…積和演算部、14,18…四捨五入部、15…RAM、
100,102…並び替え部、101,103…加減算部、
200〜207…レジスタ、210〜217…シフトレジスタ、220〜227…レジスタ、230〜237…全加算器、241…加算ビットスライス、242…減算ビットスライス、250〜253…加減算結果、260〜263…加減算結果、
400〜407…累積加算部、412,413…マルチプレクサ、420〜425…遅延器、431,432…積和演算結果出力、
500,501…ROM、502,503…加算器、504…マルチプレクサ、511,512…レジスタ、513…シフト回路、
803,807…積和演算部、802,804,806,808…バタフライ演算部、809…マルチプレクサ、820,822…並び替え部、821,823…加減算部、
900〜907,910〜917…マルチプレクサ、
1000〜1007…累積加算部、1008〜1015…加減算器、1030,1031…積和演算結果出力、1032…加算キャリー出力、1033…減算キャリー出力、1040〜1043…マルチプレクサ、
1100,1101…ROM、1112…レジスタ、1113…シフト回路、
1200,1201…加算器、1202,1203…マルチプレクサ、1204,1205…レジスタ、
1300…加算器、1301〜1305…レジスタ、1306…マルチプレクサ、
1800,1809…アドレス発生器、1801,1806…メモリ、1802,1804,1805,1808…パイプラインレジスタ、1803…積和演算器、1807…バタフライ演算器。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to orthogonal transform, which is one of high-efficiency coding techniques for image information and audio information, and more particularly, to orthogonal transform for transforming a time-domain signal into a frequency-domain signal using orthogonal transform. The present invention relates to a circuit and an orthogonal transformation circuit for performing mutual transformation between a signal in a time domain and a signal in a frequency domain.
[0002]
[Prior art]
In recent years, high-efficiency coding technology for image information and audio information has been attracting attention. Circuits that realize orthogonal transform are important elements for realizing a high-efficiency coding method. Many researches and developments are being conducted with the aim of speeding up.
A one-dimensional DCT processor circuit, which is one of the orthogonal transform devices, can be realized by a butterfly operation circuit and an operation circuit using a distribution operation technique (DA method) for finding the sum of products of vector inner products without using a multiplier.
As an example of the operation of the one-dimensional DCT, equations (1) and (2) show the arithmetic expressions of the eight-point one-dimensional DCT.
[0003]
(Equation 1)
Figure 0003575991
[0004]
In the butterfly operation in the DCT processor, (x0, x7), (x1, x6), (x2, x5), (x3, 8) are set for eight data x0, x1, x2, x3, x4, x5, x6, and x7. x4) are formed, and addition / subtraction of x0 + x7, x0-x7, x1 + x6, x1-x6, x2 + x5, x2-x5, x3 + x4, x3-x4 is performed in each set.
[0005]
Next, a one-dimensional DCT coefficient is calculated based on Expressions (1) and (2) using the output of the butterfly operation.
As an example, the DCT coefficient X2 in the equation (1) is calculated by a product-sum operation.
X2 = (1/2) × {B × (x0 + x7) + C × (x1 + x6) + (− C) × (x2 + x5) + (− B) × (x3 + x4)}
You can ask.
The DA method is a method of performing the product-sum operation of the matrices in Expressions (1) and (2) in units of bit slices in which bit data of the same digit as shown in FIG. 3D is collected. An example of the DA method is shown in the following expressions (5), (6), and (7) and Table 1, and the description will be made according to them.
[0006]
(Equation 2)
Figure 0003575991
[0007]
(Equation 3)
Figure 0003575991
[0008]
[Table 1]
Figure 0003575991
[0009]
As shown in the above equation (5), the butterfly operation result (x0 + x7, x1 + x6, x2 + x5, x3 + x4) in equation (2) is expressed in bit units ([b0 n, ..., b01, B00,], [B1 n, ..., b11, B10,], [B2 n, ..., b21, B20,], [B3n, ..., b31, B30,]: B3 n, ..., b00Represents a bit). Paying attention to these same digits, the product-sum operation for obtaining the DCT coefficient X2 in the second row of Expression (5) can be decomposed as in Expression (6).
Here, b in equation (6)0 n, B1 n, B2 n, B3 nAre called bit slices.
The product-sum operation of the (n + 1) -th bit slice is represented by the above equation (7), and b00~ B3 nIs 0 or 1, so the result is multiplied by (1/2) × (2 n)
(1/2) × (2 n) × ((B × b0 n) + (C × b1 n) + (− C × b2 n) + (− B × b3 n))
It becomes.
Therefore, as a result, a product-sum operation value can be obtained by holding a table of 16 types of partial sums corresponding to combinations of bit slices as shown in Table 1.
That is, since (2 to the nth power) in the above equation is a shift operation, the operation of the equation (6) uses one of 16 types of values obtained by referring to the table based on the value of each bit slice. This is realized by sequentially adding after the bit shift. By performing the same process for each row of the equation (5), the product-sum operation of the matrix by the DA method is realized, and the one-dimensional DCT coefficients (X0, X2, X4, X6) can be obtained.
[0010]
On the other hand, the arithmetic expression of the eight-point one-dimensional IDCT is the expression shown in Expressions (3) and (4), and eight data (X0, X1, X2, X3, X4, X5, X6, X7) are sequentially input.
First, the input data is divided into two sets ({X0, X2, X4, X6} and {X1, X3, X5, X7}) as shown in equations (3) and (4). Decompose in bit units to form a bit slice.
Using the bit slice and a table corresponding to the combination of the values of each bit slice, the product-sum operation of the matrix by the DA method is performed, and the first term and the second term of the right side of each of the equations (3) and (4) are obtained. Find the term.
Next, x0 to x7 are calculated by performing addition and subtraction of these two terms. The butterfly operation in the IDCT means this addition and subtraction.
[0011]
JP-A-7-234864 describes a circuit configuration of a small-scale one-dimensional DCT / IDCT processor using a butterfly operation and a DA method. The circuit described in Japanese Patent Application Laid-Open No. 7-234864 is a circuit that performs one-dimensional DCT / IDCT on 8 × 8 pixels, describes input elements in a memory, rearranges data in a necessary order, and performs a butterfly operation. , The number of registers is reduced and the circuit is downsized.
[0012]
In the DCT / IDCT processor described in JP-A-7-234864 shown in FIG. 21, 1800 is an address generator, 1801 is an 8 × 8 word 16-bit memory, and 1802 is a 16-bit pipeline. A register 1803 is a multiply-accumulate unit having a 16-bit width input and a 34-bit width output, 1804 is a 34-bit width pipeline register, 1805 is a 16-bit width pipeline register, Reference numeral 1806 denotes an 8 × 8 word 16-bit width memory, 1807 denotes a butterfly operation unit having a 34-bit width input and a 16-bit width output, 1808 denotes a 16-bit width pipeline register, and 1809 denotes a 16-bit width pipeline register. It is an address generator.
[0013]
In the case of DCT transform, this processor includes eight data x0, x1, x2, x3, x4, which are composed of one row or one column of 8 × 8 (M bits / piece) element data as shown in FIG. x5, x6, and x7 are input in this order, and the data is temporarily stored in the memory 1801. From this memory 1801, data is read out in the order required when performing a butterfly operation by the address generator 1800, that is, in the order of x7, x0, x6, x1, x5, x2, x4, x3, and via the pipeline register 1802. It is supplied to the butterfly computing unit 1807.
The butterfly operation unit 1807 includes a 34-bit wide first and second input for adding and subtracting the supplied data, and a parallel adder having a 16-bit width output. Data is input to the butterfly operation unit 1807 in the order of x7, x0, x6, x1, x5, x2, x4, x3, and (x0 + x7), (x0-x7), (x1 + x6), (x1-x6), (x2 + x5). ), (X2-x5), (x3 + x4), and (x3-x4) in this order, and are output to the product-sum calculator 1803 via the pipeline register 1808.
[0014]
The product-sum operation unit 1803 includes a ROM of a partial sum corresponding to a shift register and a bit slice, an accumulator circuit for adding a value output from the ROM while shifting, a first input having a 34-bit width, and a second input having a 16-bit width. , And a parallel adder having a third input and an output having a width of 34 bits.
The operation of the product-sum operation unit 1803 will be described. The input butterfly operation result is decomposed into bit slices by a shift register. The output value of the ROM having the bit slice as an input address is obtained, the value is input to an accumulator circuit, and the sum operation is performed in bit slice units, thereby realizing the product-sum operation by the DA method. The coefficients X0, X2, X4, X6, X1, X3, X5 and X7 are obtained.
The operation result is passed to the memory 1806 via the pipeline registers 1804 and 1805. From this memory 1806, the data is rearranged by an address generator 1809 in an appropriate order, that is, X0, X1, X2, X3, X4, X5, X6, and X7, and output to the outside.
[0015]
[Problems to be solved by the invention]
As described above, the DCT / IDCT processor disclosed in Japanese Patent Application Laid-Open No. 7-234864 requires a memory and an address generator for rearranging input / output data, and the circuit scale becomes large. For example, when the input data is 16 bits, if each word is 16 bits wide with 8 × 8 words, a capacity of 1 K bit is required.
Also, in the butterfly operation unit 1807, since addition and subtraction of input data are performed in data units, there is a problem that the parallel adder becomes large-scale. In the conventional example, the parallel adder used for the DCT operation and the IDCT operation is shared. If the product-sum operation result of the IDCT operation is 34 bits, the parallel adder needs to perform 34-bit addition. Become.
The present invention has been made in view of such a problem of the related art, and has an object to perform an orthogonal transform circuit and a bidirectional operation in which a means for performing a butterfly operation and a product-sum operation is smaller than in the related art. It is an object of the present invention to provide an orthogonal transformation circuit that enables the orthogonal transformation circuit.
[0016]
[Means for Solving the Problems]
In order to achieve the above object, in the orthogonal transform circuit according to the present invention, in the butterfly operation unit, N parallel registers for storing N elements, N shift registers, and N K-bit parallel additions are provided. Equipped with a vessel. The parallel register rearranges the input element data and passes the data to the shift register. The shift register outputs the received element data in pairs and outputs the data to the parallel adder K bits at a time. Add or subtract the passed element data. This eliminates the need for a memory for temporary storage and an address generator for controlling the order of reading from the memory, and allows the butterfly operation unit to rearrange and add / subtract element data in bit units (input / output is bit width). Accordingly, butterfly operation can be performed with a small-scale circuit, and the orthogonal transform device circuit can be downsized.
The invention described in each claim is constituted by the following technical means.
[0017]
The invention according to claim 1 is an orthogonal transformation circuit that performs orthogonal transformation processing on input N element data by a processor including a butterfly operation unit and a product-sum operation unit, wherein the butterfly operation unit includes:A parallel register group for storing input N element data in a register prepared for each element data, and a register connected to each register of the parallel register group and preparing N element data from the register for each element data , And N K-bit adders connected to the registers of the serial register group and adding data from the registers. The parallel register group includes N pieces of input element data. , And the serial register group outputs N pieces of element data at the same time serially in order of K bits sequentially from the lower bits for the element data whose order has been converted by the parallel register group, and the K-bit adder Represents addition and subtraction of the N / 2 sets of element data for each K bits output from the serial register group. It was carried out, using the saved carry obtained result carry that this store, sequentially performs the addition and subtraction from bottom to topThe product-sum operation unit receives as input the bit slice of the same digit in each set of N / 2 sets of element data that are simultaneously output sequentially from the lower bit as the addition and subtraction results obtained by the butterfly operation unit. , And a partial sum for each digit of the input bit slice is added.
[0019]
Claim2The invention described in claim 1ToThe described processor is a DCT processor.
[0020]
Claim3The invention described in claim 1Or 2The multi-dimensional orthogonal transformation process is performed by making the processor described in (1) correspond to each dimension.
[0021]
Claim4According to the described invention, an orthogonal transform process and / or an inverse orthogonal transform process for input N element data is performed by a processor including a first butterfly operation unit, a product-sum operation unit, and a second butterfly operation unit. In the conversion circuit, the first butterfly operation unit includes:A parallel register group for storing input N element data in a register prepared for each element data, and a register connected to each register of the parallel register group and preparing N element data from the register for each element data , And a set of N K-bit adders connected to each register of the serial register group and adding data from the register. The parallel register group includes N input bits. The serial register group converts the order of the element data, and outputs the N pieces of element data at the same time serially in order of K bits in order from the lower bit for the element data whose order has been converted by the parallel register group, When performing an orthogonal transformation process, the K-bit adder is used for every K bits output from the serial register group. When the N / 2 sets of element data are added and subtracted, the resulting carry is stored, and the stored carry is used to sequentially perform the addition and subtraction from lower to higher to perform an inverse orthogonal transform process. Directly outputs the output of the serial register group without operating the K-bit adder.When performing the orthogonal transformation process, the product-sum operation unit outputs N / 2 sets of element data of N / 2 sets that are simultaneously output sequentially from the lower bit as the addition and subtraction results obtained by the first butterfly operation unit. When the bit slices of the same digit in each set of N / 2 sets of element data that are simultaneously output sequentially from the lower bit of the bit slices of the same digit in each set are input and N orthogonal elements are to be processed, N elements are used. A bit slice of the same digit output simultaneously and sequentially from the lower bits of each of N / 2 element data included in each set obtained by dividing data into two sets is input, and a partial sum of each digit of the input bit slice is input. The second butterfly operation unit includes an adder, and the adder, when performing an inverse orthogonal transformation process, the input bit stream which is a result of the addition in the product-sum operation unit. And performing partial sum of each digit of the chair in a time sharing the addition and subtraction as an input.
[0023]
Claim5The invention described in the claimsTo fourThe described processor is a DCT / IDCT processor.
[0024]
Claim6The invention described in the claims4 or 5The multi-dimensional orthogonal transformation process is performed by making the processor described in (1) correspond to each dimension.
[0025]
BEST MODE FOR CARRYING OUT THE INVENTION
Embodiments of the present invention will be described below with reference to the accompanying drawings.
FIG. 1 is a block diagram showing an outline of a two-dimensional DCT processor which is an embodiment of an orthogonal transform circuit according to the present invention, and a specific operation of the processor will be described below with reference to FIGS. 2 to 7 and FIG. I do.
In FIG. 1, one-dimensional DCT is performed by each of butterfly operation units 12, 16 connected in series, product-sum operation units 13, 17, and round-off units 14, 18 to realize two-dimensional DCT by two one-dimensional DCT circuits. I do.
A feature of the two-dimensional DCT processor shown in FIG. 1 is that input pixel data in the butterfly operation units 12 and 16 is stored in a register provided inside the butterfly operation units 12 and 16, the order is converted, and after the conversion, data is converted therefrom. By outputting two bits at a time, addition and subtraction are performed in units of two bits. This processing eliminates the need for a memory or address generator at the time of data input. In addition, the scale of parallel addition and subtraction, which required input for the data bit width in the conventional example, can be reduced to 2 bits for input and output. become.
[0026]
Hereinafter, the operation of the embodiment will be described. The butterfly operation unit 12 of the two-dimensional DCT processor in FIG. 1 includes a rearrangement unit 100 and an addition / subtraction unit 101. The rearranging unit 100 rearranges the order of the input pixel data, and passes the lower two bits of each pixel data to the addition / subtraction unit 101.
The addition / subtraction unit 101 implements a butterfly operation by performing addition and subtraction on the passed 2-bit pixel data. The calculation result is passed to the product-sum calculation unit 13 in bit slice units. The product-sum operation unit 13 performs one-dimensional DCT in the horizontal direction, and the intermediate result of the obtained DCT coefficients is passed to the rounding unit 14.
The rounding unit 14 performs the multiplication of (1/2) on the right side of the equations (1) and (2) using the rounding, and passes the calculation result to the RAM 15. The RAM 15 is a data transposition RAM having a 15-bit width input / output, transposes input data, and passes the data to the butterfly operation unit 16.
The butterfly operation unit 16 performs data rearrangement and addition / subtraction on a 2-bit basis similarly to the butterfly operation unit 12, and outputs a bit slice to the product-sum operation unit 17.
Thereafter, the product-sum operation unit 17 and the round-off unit 18 perform the same processing as the product-sum operation unit 13 and the round-off unit 14, respectively. Two-dimensional DCT is completed by first performing horizontal one-dimensional DCT and then performing vertical one-dimensional DCT with the RAM 15 interposed therebetween.
[0027]
The operation of each block of the two-dimensional DCT processor in FIG. 1 will be described in more detail. It is assumed that input pixel data to the butterfly operation unit 12 is an 8 × 8 matrix as shown in FIG. 17 and each pixel data is 9 bits.
Here, based on the following equations (1) and (2), the DCT coefficients X0, X1, X2, X3 are obtained from the input pixel data x0, x1, x2, x3, x4, x5, x6, x7 of the first row. A processing procedure of one-dimensional DCT for obtaining X4, X5, X6, and X7 will be described.
[0028]
(Equation 4)
Figure 0003575991
[0029]
FIG. 2 shows the configuration of the butterfly operation unit 12. The butterfly operation unit 12 is roughly divided into a rearrangement unit 100 and an addition / subtraction unit 101. The reordering unit 100 has a 9-bit width pixel data input and a 16-bit width output (8 pixel data × 2 bits) obtained by dividing eight pieces of pixel data in units of 2 bits. The addition bit slice 241 (2 bits × 4 addition) of the addition result of the 16-bit width input and the input data passed from the unit 100 and the subtraction bit slice 242 (2 bits × 4 subtraction) of the subtraction result have a total 16-bit width. Has output.
[0030]
The reordering unit 100 is composed of 9-bit registers (R) 200 to 207 and 9-bit parallel-in and 2-bit serial-out shift registers SR 210 to 217 as shown in FIG.
The addition / subtraction unit 101 includes 1-bit registers 220 to 227 and full adders 230 to 237, and the unit elements thereof are, as shown in FIG. The second input is added to the third input of the 1-bit register 220, which receives the carry-out from the lower part of the full adder 230 as the input, and carries in the carry of one bit of the 1-bit register 220, and outputs the addition result. It comprises full adders 230 to 237 having a first output having a bit width and a 1-bit second output for outputting a carry-out.
[0031]
FIG. 6 is a timing chart showing the operation of the butterfly operation unit 12, and shows a temporal change of data in each element of the input / output and the operation unit. The pixel data x0, x1, x2, x3, x4, 5, x6, and x7 are read into the butterfly operation unit 12 in this order every clock (FIG. 6A), and the period of the clock timings T1 to T4 is one. The input pixel data is input from the register 206 at each clock, sequentially sent to the registers 204, 202, and 200 and stored (FIGS. 6 (h), 6 (f), 6 (d), 6 (b)).
Next, during the period from T5 to T8, the input pixel data is input from the register 201, sequentially sent to the registers 203, 205, and 207 and held (FIGS. 6C, 6E, 6G, and 6G). 6 (i)). By repeating this operation, all the registers 200 to 207 are filled with pixel data every eight clocks.
[0032]
When all the registers 200 to 207 are filled with the data, the data held in the registers 200 to 207 is transferred to the shift registers 210 to 217 every eight clocks thereafter (FIGS. 6 (j) to 6 (q)). .
From the shift register 210, the lower two bits of the data stored for each clock are output two bits at a time, and passed to the full adders 230 and 231. The full adder 230 performs addition in butterfly operation, and the full adder 231 performs subtraction in butterfly operation.
The lower two bits of the data stored at each clock are also output from the shift register 211, and the data is passed to the full adder 230, and the inverted data is passed to the full adder 231.
The registers 220 and 221 are set to an initial value before the operation of the least significant two bits, and thereafter hold the carry of the operation result. The initial value of the register 220 is 0, and the initial value of the register 221 is 1.
Here, for the full adder 231, the input from the shift register 211 is inverted and the register 221 is set to 1 as an initial value. This is for operating the unit 231 as a subtractor.
The full adders 230 and 231 perform full addition on a 2-bit basis, and (x0 + x7) and (x0-x7) are obtained on a 2-bit basis from the lower order.
[0033]
(X0 + x7) will be described with reference to FIGS. 3B, 3C, and 3D. FIG. 3B shows a portion extracted from the butterfly operation section of FIG. 2 corresponding to the operation of (x0 + x7). As shown in FIG. 6, during a period from T9 to T16, x0 is stored in the shift register 210, and x7 is stored in the shift register 211. Here, as an example, it is assumed that x0 = 1110101000 and x7 = 1110011111.
The x0 and x7 stored in the shift registers 210 and 211 give an output to the full adder 230 two bits at a time while shifting by two bits each. Full adder 230 repeats 2-bit addition using carry register 220. Since (x0 + x7) has 10 bits, the addition ends in a total of five repetitions.
[0034]
This state is shown in FIG. In the five calculations from timing T9 to T13, the result of (x0 + x7) is output two bits at a time from the lower order. This corresponds to the output 260 in FIG. Similar calculations are performed for the addition results 261 to 263 and the subtraction results 250 to 253 of other butterfly calculations.
Paying attention to the outputs 260 to 262 in FIG. 2, the result is as shown in FIG. As shown in FIG. 3 (D), the calculation result of the addition portion of the butterfly operation is output as a bit slice by two bits in order from the lower order of 260 to 263. In addition, the calculation result of the subtraction part of the butterfly operation is the same as that described above, except that there is an inversion process for making a negative number in a two's complement representation. The result will be output in the slice.
This timing is shown in FIGS. 6 (r) to 6 (u). First, a bit slice corresponding to the addition bit corresponding to the lower two bits is output during a period from T9 to T13. Thereafter, during the period from T14 to T16, the cycle of shifting to the output of the next input data set is repeated with the dummy data interposed therebetween.
[0035]
The product-sum operation unit 13 shown in FIG. 4 (the same applies to the product-sum operation unit 17) has two 4-bit width inputs, first and second outputs each having a 16-bit width, and a DCT coefficient. And a cumulative addition unit 400 to 407 each having a 4-bit width first and second input and a 16-bit width output as an operation result output, and a 16-bit width first, second, and second It is composed of multiplexers 412 and 413 having third and fourth inputs and outputs, and delay units 420 to 425 each having two 4-bit width inputs and outputs and generating a delay of two clocks.
[0036]
In the product-sum operation unit 13, among the 16-bit bit slices passed from the butterfly operation unit 12, the addition bit slice 241 of (x0 + x7, x1 + x6, x2 + x5, x3 + x4) is added to the accumulation addition units 400 to 403 by (x0− The subtraction bit slice 242 of (x7, x1-x6, x2-x5, x3-x4) is input to the accumulators 404 to 407. Here, each of the addition and subtraction bit slices is expressed separately in a lower bit slice and an upper bit slice. Each of the lower and upper bit slices is composed of 4 bits as shown in FIG.
[0037]
FIG. 5 shows a unit element part of the accumulative addition unit constituting the product-sum operation unit.
In the cumulative addition unit 401 shown in FIG. 5, the ROM 500 and the ROM 501 hold data having the same contents. The ROM 500 inputs the lower bit slice as a 4-bit width address, and the ROM 501 inputs the upper bit slice as a 4-bit width address.
Each of the ROM 500 and the ROM 501 stores 16 kinds of partial sums based on a cosine matrix corresponding to a bit slice value for DCT operation shown in Table 1. Reference numeral 502 denotes an adder that adds the 16-bit width first input 520 and the 17-bit width second input 521 to output an 18-bit width, and 503 denotes an 18-bit first input and a 16-bit width input. An adder that adds two inputs and outputs an 18-bit width, 504 is a multiplexer that outputs 18-bit wide first and second inputs and their upper 16 bits, and 511 is an 18-bit wide register Numeral 512 denotes a 16-bit register, and numeral 513 denotes a circuit for shifting the partial sum output from the ROM 501 to the left by one bit.
[0038]
Further, the cumulative adders 400 and 402 to 407 of FIG. 4 are completely the same as the cumulative adder 401 except that the data content held in the ROM is different. The accumulator 400 performs an operation corresponding to the DCT coefficient X0 of the equation (1). Hereinafter, the accumulator 401 performs the operation of X2, 402, X4, and 403, and the accumulator 404 calculates the equation of the above equation (2). An operation corresponding to the DCT coefficient X1 is performed, and hereinafter 405 performs an operation of X3, 406 performs an operation of X5, and 407 performs an operation of X7.
The reason why the input bit slices are delayed by the delay units 420 to 425 is to make the operation result one coefficient per clock.
[0039]
The operation of the cumulative addition unit 401 as an example of the cumulative addition unit will be described with reference to FIGS. 5 and 7 and the following equations (5) and (6).
The accumulator 401 calculates the product of the second row of the 4 × 4 matrix on the right side of the equation (5) and the 4 × 1 matrix to calculate the DCT coefficient X2 shown in the following equations (5) and (6). The sum operation is realized by addition in units of bit slices.
[0040]
(Equation 5)
Figure 0003575991
[0041]
First, during a period from T9 to T13, two bits are input for each bit of a clock (FIG. 7A). Lower bit slice $ b00, B10, B20, B30Is input to the ROM 500, and the partial sum 520 of the product-sum operation of the second row of the 4 × 4 matrix and the 4 × 1 matrix on the right side of Equation (5) corresponding to this bit slice is sequentially indexed (see Table 1). ).
Next, the upper bit slice {b01, B11, B21, B31入 力 is input to the ROM 501, and the partial sum 521 of the product-sum operation of the second row of the 4 × 4 matrix on the right side of Equation (5) and the 4 × 1 matrix corresponding to this bit slice is sequentially indexed (see Table 1). ).
Since the partial sum 521 is one bit higher than the partial sum 520, the value obtained by shifting the partial sum 521 to the left by one bit, that is, the value obtained by multiplying by 2 is added to the partial sum 520 (partial sum 520 + partial sum). 521 x 2).
The DCT coefficient X2 is obtained by performing the above operation on all the bit slices. However, when the partial sum corresponding to the bit slice of the most significant code bit is input, the sign of the value shifted one bit to the left is inverted and added according to the conversion procedure of the two's complement representation (partial sum 520+ ( − (Partial sum 521 × 2))).
[0042]
The result of the addition by the adder 502 is cumulatively added by the adder 503 via the register 511 to the result of the lower bit slice already calculated. The number of bits of the cumulative addition result is reduced to the required bit precision as an output.
In this embodiment, after the upper 16 bits are stored in the register 512, 16 bits are output (FIG. 7B). At the same time, it is input to the adder 503 for cumulative addition with the addition result of the next upper bit.
As a result, the operation result is obtained two clocks after the completion of the bit slice input, and two clocks after the input of the most significant bit slice, the second row and the 4 × 1 matrix of the 4 × 4 matrix on the right side of the above equation (1) (Corresponding to X0 on the left side of Equation (1)) is output (FIG. 7C).
[0043]
Similar operations are performed by the cumulative addition units 400, 402, 403, 404, 405, 406, and 407. Each of the accumulators 400 calculates the product-sum operation result of the first row of the 4 × 4 matrix on the right side of Equation (1) and the 4 × 1 matrix (corresponding to X0 on the left side of Equation (1)) in Equation (1). The product sum operation result (corresponding to X4 on the left side of equation (1)) of the third row of the 4 × 4 matrix on the right side of 1) and the 4 × 4 matrix on the right side of equation (1) are obtained in the same manner as in 403. Of the fourth row and the 4 × 1 matrix (corresponding to X6 on the left side of Equation (1)) is obtained, and the multiplexer 412 outputs the first row during the period of timing T15 to T16 every two clocks. 7 is selected in the order of the second row, the period from T9 to T20 is the third row, and the period from T21 to T22 is selected in the order of the fourth row, and passed to the rounding unit 14 (see FIG. 1) as the sum of products 431 (see FIG. )).
[0044]
Similarly, the accumulator 404 calculates the product-sum operation result of the first row of the 4 × 4 matrix on the right side of the equation (2) and the 4 × 1 matrix (corresponding to X1 on the left side of the equation (2)) in equation (2), The product-sum operation result (corresponding to X3 on the left side of Expression (2)) of the second row of the 4 × 4 matrix on the right side of (2) and the 4 × 1 matrix is calculated by the same 406 as 4 × 4 on the right side of Expression (2). The result of the product-sum operation of the third row of the matrix and the 4 × 1 matrix (corresponding to X5 on the left side of Equation (2)) is expressed by the same 407 as the fourth row of the 4 × 4 matrix on the right side of Equation (2) and 4 × 1 The result of the product-sum operation of the matrix (corresponding to X7 on the left side of Equation (2)) is obtained. The period from timing T15 to T16 is the first row, the period from T17 to T18 is the second row, and the period from T19 to T20 is the third row. , T21 to T22, the multiplexer 413 is switched every two clocks so as to select the fourth row. It is passed to the rounding unit 14 as 432 (FIG. 7C).
[0045]
As shown in FIG. 7C, since the bit slices are input to the accumulators 401 and 405 with a delay of two clocks from the accumulators 400 and 404, the operation result is obtained only two clocks later. Become. Similarly, the accumulators 402 and 406, and 403 and 407 each output the operation result with a delay of two clocks.
The rounding unit 14 multiplies (1/2) on the right side of the equations (1) and (2) and rounds the result.
By performing the above processing, one-dimensional DCT in the horizontal direction is completed.
[0046]
As shown in FIG. 20, the RAM 15 outputs data input in the horizontal raster order in the vertical raster order. That is, the order of writing and reading is changed from horizontal to vertical and is passed to the butterfly operation unit 16.
The vertical DCT performs basically the same operation as the horizontal DCT. However, in the present embodiment, the data input to the butterfly operation unit 16 is 15 bits because the output bit precision of the product-sum operation unit 13 is 16 bits, and the output bit precision is further reduced to 1/2 by the rounding unit 14. It becomes data and is different from the 9-bit width input of the DCT in the horizontal direction. The output data also has a 12-bit width because the bit precision of the DCT coefficient is 12 bits, and is different from DCT in the horizontal direction.
By performing the above processing, two-dimensional DCT is realized.
[0047]
Next, FIG. 8 shows a schematic block diagram of a DCT / IDCT processor which is an embodiment of the orthogonal transform circuit according to the present invention, and a specific operation of the processor will be described below with reference to FIGS. 9 to 17 and FIG. I do.
Here, the two-dimensional DCT / IDCT processor of FIG. 8 is obtained by adding a circuit for IDCT to the two-dimensional DCT processor of FIG. 1. In the case of the DCT mode, the same processing as that of the DCT processor is performed. The same reference numerals as those described above denote the same parts, and a description thereof will be omitted. Only the description in the case of the IDCT mode will be performed.
The feature of the IDCT processor shown in FIG. 8 is that the input DCT coefficient data X0, X1, X2, X3, X4, X5, X6, and X7 shown in FIG. The object of the present invention is to realize data input that does not require a memory or an address generator by performing a bit-by-bit output process. Also, the butterfly operation unit 804 in the subsequent stage is characterized in that it has an adder smaller than that of the conventional example, since the addition is performed sequentially from the lower bit.
[0048]
The bidirectional DCT / IDCT processor shown in FIG. 8 also performs the operations shown in the following equations (3) and (4).
Describing this operation, the reordering section 820 performs only bit slicing of input data, and the bit slice is passed to the product-sum operation section 803. The product-sum operation unit 803 performs one-dimensional DCT in the vertical direction, and the intermediate result of the IDCT obtained thereby is passed to the butterfly operation unit 804. The butterfly operation unit 804 performs addition and subtraction on the right side of Expressions (3) and (4) and multiplication by (1/2) using rounding, and passes the operation result to the RAM 15. The RAM 15 transposes the input data in the vertical raster order and transfers the data to the rearrangement unit 822 in the horizontal raster order. Thereafter, the same operation as that of the one-dimensional IDCT in the vertical direction is performed except that the order of final output as pixel data in the butterfly operation unit 808 is rearranged, and pixel data is output from the butterfly operation unit 808. The two-dimensional IDCT is performed by first performing a one-dimensional IDCT in the vertical direction and then performing a one-dimensional IDCT in the horizontal direction with the RAM 15 interposed therebetween.
[0049]
The operation of each block of the two-dimensional DCT / IDCT processor shown in FIG. 8 will be described in further detail.
In the case of the IDCT mode, the input element data is an 8 × 8 matrix shown in FIG. 19, each coefficient being 12 bits, and the first column of the matrix is X0, X1, X2, X3, X4, X5, X6, X7. Suppose there is. Here, pixel values x0, x1, x2, x3, x4, x5, and x6 are obtained from input data X0, X1, X2, X3, X4, X5, X6, and X7 based on the following equations (3) and (4). , X7, and its processing procedure will be described.
[0050]
(Equation 6)
Figure 0003575991
[0051]
The rearrangement unit 820 of the butterfly operation unit 802 shown in FIG. 9 includes a multiplexer 900 to a multiplexer 900 to select one of the first input having a 9-bit width and the second input having a 12-bit width in the rearrangement unit 100 shown in FIG. 907, and the adder / subtractor 821 has a structure in which the adder / subtractor 101 shown in FIG. 2 is added with multiplexers 910 to 917 for selecting / outputting either of the first and second inputs having a 2-bit width. .
[0052]
FIG. 15 is a timing chart showing the operation of the butterfly operation unit 802 in the case of the IDCT mode. X 0, X 1, X 2, X 3, X 4, X 5, X 6, and X 7 are read into the butterfly operation unit 802 in this order every clock (FIG. 15 (a)). The input pixel data is input from the register 207 and sequentially sent to the registers 206, 205, 204, 203, 202, 201, and 200 (FIGS. 15 (i) and 15 (b)).
When all the registers 200 to 207 are filled with data, the data held in the registers 200 to 207 are transferred to the shift registers 210 to 217 every eight clocks thereafter (FIGS. 15 (j) to 15 (q)). Each of the shift registers 210 to 217 passes the lower two bits of the data stored for each clock to the addition / subtraction unit 821.
[0053]
The adder / subtractor 821 does not use the adders 230 to 237 in the case of the IDCT mode. That is, the bit slices X0 to X7 passed from the rearranging unit 820 are selected by the multiplexers 910 to 917, and the bit slices A in which X0, X2, X4, and X6 are grouped by the lower two bits, and X1, X3, X5 , X7 and the bit slice B in which the lower two bits are combined from the lower bit are output to the product-sum operation unit 803 (FIGS. 15 (r) to 15 (u)).
[0054]
A product-sum operation unit 803 shown in FIGS. 10 and 11 includes a cumulative addition unit 1000 to 1007 obtained by partially changing the accumulation addition units 400 to 407 of the product-sum operation unit 13 shown in FIG. Adder / subtractors 1008 to 1015 having first and second inputs and third and fourth outputs of 1 bit width, and multiplexers 1042 and 1043 having first, second, third and fourth inputs and outputs of 1 bit width Is added.
In the product-sum operation unit 803, among the bit slices passed from the rearranging unit 820, the bit slice A of {X0, X2, X4, X6} is supplied to the accumulative adding units 1000, 1001, 1002, 1003 and {X1, Bit slice B of X3, X5, X7} is input to cumulative addition sections 1004, 1005, 1006, and 1007.
[0055]
The cumulative addition unit 1000 illustrated in FIG. 12 basically performs the same operation as the cumulative addition unit 401 described in the case of the DCT in the above-described embodiment.
This operation will be described with reference to the timing chart shown in FIG. First, during the period from timing T9 to T14, a bit slice is input every two clocks for each clock (FIG. 16A). Of the two bits, the lower bit slice is input to the ROM 1100 and the upper bit slice is input to the ROM 1101, and partial sums 520 and 521 corresponding to each bit slice are sequentially indexed.
The process is the same as that of DCT, until each partial sum is added, and the adder 503 cumulatively adds the result of the lower bit slice and obtains the cumulative addition intermediate result. However, when the bit precision of the cumulative addition intermediate result is reduced in the register 1112, the cut-off bits (lower two bits in the present embodiment) are added to the adder 1008 in order to perform addition on the right side of the above equation (3). Equation (4) is different in that it outputs to the adder 1012 to perform the subtraction on the right side (FIG. 16B).
[0056]
The same operation is performed in the cumulative addition units 1001, 1002, and 1003, and each row of the first term on the right side of Expressions (3) and (4) is obtained by two bits from the lower order, and the cumulative addition units 1004, 1005, 1006, and 1007 determine Each row of the second term on the right side of Expressions (3) and (4) is obtained by two bits from the lower order.
Based on the calculation results of the accumulator 1000 and the accumulator 1004, the adder 1008 performs the addition of the right side of the equation (3) and the 1012 performs the subtraction of the right side of the equation (4) two bits at a time from the lower order. Output as subtract carry.
The timing at which the carry becomes valid is when the cumulative addition result by the highest bit slice is output from the cumulative addition unit 1000 and the cumulative addition unit 1004, that is, from T16 to T17 (FIG. 16C).
Similarly, the add carry 1032 of each row when adding the right side of Expression (3) is performed by the adders 1009 to 1011 and the subtraction of each row when performing the subtraction of the right side of Expression (4) by the adders 1013 to 1015. Carry 1033 is obtained and passed to butterfly computation section 804 in the order of the first to fourth rows of equations (3) and (4) (FIG. 16 (c)).
[0057]
The butterfly operation unit 804 shown in FIG. 13 performs addition of the right side of Expression (3) and subtraction of the right side of Expression (4), and the first and second inputs having a 16-bit width and the third and fourth inputs having a 1-bit width, respectively. It has an input and a 16 bit wide output.
In the butterfly operation unit 804, reference numeral 1200 denotes an adder which has first and second inputs having a 16-bit width and adds them to output a 17-bit width. An adder having a second input having a bit width and adding them to produce a 16-bit output, 1204 is a register having 17-bit width, 1205 is a register having input and output of 16-bit width, 1202 is 1 bit A multiplexer 1203 selects a 1-bit width output from the first and second width inputs and 1203 selects a 16-bit width output from the 16-bit width first and second inputs.
[0058]
In the butterfly operation unit 804, the adder 1200 in the first stage uses the two inputs of 16-bit width input from the product-sum operation unit 803 and the addition or subtraction carry of the bit width to obtain the expressions (3) and ( 4) The addition and subtraction of the first term and the second term on the right side are alternately performed to calculate and output 17-bit width data X0, X1, X2, X3, X4, X5, X6, and X7.
In the case of addition, using the product sum 1030 of the first term on the right side, the product sum 1031 of the second term on the right side selected by the multiplexer 1203, and the addition carry 1032 selected by the multiplexer 1202, the addition is performed in order from the first row. In the case of subtraction, subtraction is performed in order from the first row using the product-sum 1030, data obtained by inverting the product-sum 1031 selected by the multiplexer 1203, and the subtraction carry 1033 selected by the multiplexer 1202.
As shown in FIG. 16C, the outputs of the accumulators 1000 and 1004 become valid in the periods T16 and T17, and x0 of the equation (3) is obtained by adding two outputs, and x7 of the equation (4) is obtained by subtraction. Can be Similarly, x1, x6, x2, x5, x3, and x4 are sequentially obtained.
[0059]
17-bit width data x0, x1, x2, x3, x4, x5, x6, x7 obtained by addition and subtraction are passed to the adder 1201 via the register 1204. The adder in the second stage performs multiplication of (1/2) on the right side of Expressions (3) and (4) by rounding in 1201, and the upper 16 bits are stored in the register 1205 and are stored in the RAM 15 as 16-bit width data. Is output to
By performing the above processing, the one-dimensional IDCT in the vertical direction is completed.
[0060]
In the RAM 15, as shown in FIG. 20, the input data is transposed in the vertical raster order, and the data is transferred to the butterfly operation unit 806 in the horizontal raster order. In the butterfly operation unit 806, the same operation as that of the butterfly operation unit 802 is performed, and a bit slice A in which X0, X2, X4, and X6 are grouped by two bits from the lower order, and X1, X3, X5, and X7 are arranged from the lower order. A bit slice B obtained by combining two bits is output to the product-sum operation unit 807 (FIGS. 15 (r) to 15 (u)).
[0061]
The horizontal IDCT performs basically the same operation as the vertical IDCT. However, in the butterfly operation unit 808 shown in FIG. 14, since the bit precision of the output pixel data is 9 bits in the second-stage adder 1300, the 13-bit input is rounded to 9 bits. The points are different.
Similarly to the output of the adder 1201 of the butterfly operation unit 804, the registers 1302, 1303, and 1304 indicate that the output of the adder 1300 is in the order of x0, x7, x1, x6, x2, x5, x3, and x4. An operation of rearranging output pixel data in the order of x0, x1,..., X6, x7 using the register 1305 and the multiplexer 1306 is added.
[0062]
The operation will be described with reference to the timing chart of the butterfly operation unit 808 shown in FIG. The register 1302 receives x0, x7, x1, x6, x2, x5, x3, and x4 in this order from the adder 1300 every clock (FIG. 17A).
During the period from timing T19 to T24, x0, x7, x1, x6, x2, and x5 are passed from the register 1302 to the register 1303 every clock in this order, and during the period from T24 to T26, x5, x7, x1, x6, x2, and x5 are transferred. Is held (FIG. 17B).
During the period from T20 to T23, x0, x7, x1, and x6 are transferred to the register 1304 in this order from the register 1303 every clock, and x6 is held during the period from T23 to T27 ( FIG. 17 (c)).
During the periods T21 and T22, x0 and x7 are passed from the register 1304 to the register 1305 in this order every clock, and during the period from T22 to T28, x7 is held (FIG. 17 (d) )).
The rearrangement of the output pixel data is realized by switching the output in the order of the registers 1305, 1304, 1303, 1302, 1303, 1304, and 1305 by the multiplexer 1306 every clock (FIG. 17E).
[0063]
Also, in the present embodiment, the data input to the rearrangement unit 822 is 16-bit data because the output bit precision of the product-sum operation unit 803 is 16 bits, and the bit width of the vertical IDCT is Different from input. Also, the output data has a 9-bit width because the bit precision of the pixel data is 9 bits, which is different from the case of the vertical IDCT. The two-dimensional DCT is realized by performing the above processing.
Note that the specific example shown in the present embodiment is an example, and the present invention can be applied to other examples. For example, in this example, the pixel data is 9 bits, but may be other than 9 bits. The rounding method is also an example, and is not specifically limited. Although the data format is a pixel and a DCT coefficient in the embodiment, the data format is not specifically limited to the image data and the DCT coefficient.
[0064]
【The invention's effect】
As described above, according to the present invention, it is possible to realize a small-scale orthogonal transform circuit without a memory and an address generator provided in a conventional orthogonal transform circuit. Therefore, when the present circuit is integrated, the chip area can be reduced, and the effectiveness of the present invention is large.
Further, according to the present invention, a bidirectional orthogonal transformation circuit that performs orthogonal transformation and inverse orthogonal transformation can be obtained by simply adding a plurality of multiplexers and adders to the orthogonal transformation circuit. In this case, no memory or address generator is required, and a small-scale circuit configuration can be realized.
Further, by making the processor a DCT processor and making it correspond to each dimension, it is possible to configure the multi-dimensional orthogonal transform circuit, thereby providing a circuit effective as a practical means of orthogonal transform.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a DCT processor according to the present invention.
FIG. 2 is a block diagram showing a configuration of a butterfly operation unit in the DCT processor according to the present invention.
FIG. 3 is a conceptual diagram of a configuration of a parallel register and a full adder in a DCT processor according to the present invention and addition.
FIG. 4 is a block diagram showing a configuration of a product-sum operation unit in the DCT processor according to the present invention.
FIG. 5 is a block diagram illustrating a configuration of an accumulative addition unit of the product-sum operation unit illustrated in FIG. 4;
FIG. 6 is a timing chart for explaining the operation of the butterfly operation unit in the DCT processor according to the present invention.
FIG. 7 is a timing chart for explaining the operation of the product-sum operation unit in the DCT processor according to the present invention.
FIG. 8 is a block diagram showing a configuration of a bidirectional DCT / IDCT processor according to the present invention.
FIG. 9 is a block diagram showing a configuration of a butterfly operation unit in the bidirectional DCT / IDCT processor according to the present invention.
FIG. 10 is a block diagram (part 1) illustrating a configuration of a product-sum operation unit in a bidirectional DCT / IDCT processor according to the present invention.
FIG. 11 is a block diagram (No. 2) showing the configuration of the product-sum operation unit in the bidirectional DCT / IDCT processor according to the present invention.
FIG. 12 is a block diagram showing a configuration of an accumulative adder in a bidirectional DCT / IDCT processor according to the present invention.
FIG. 13 is a block diagram showing a configuration of a butterfly operation unit in the bidirectional DCT / IDCT processor according to the present invention.
FIG. 14 is a block diagram showing a configuration of a butterfly operation unit in a bidirectional DCT / IDCT processor according to the present invention.
FIG. 15 is a timing chart for explaining the operation of the butterfly operation unit in the bidirectional DCT / IDCT processor according to the present invention in the IDC mode.
FIG. 16 is a timing chart for explaining the operation of the product-sum operation unit shown in FIGS. 10 and 11;
17 is a diagram for explaining the operation of the butterfly operation unit shown in FIG. 14, and is a timing chart of a register and a multiplexer.
FIG. 18 is a diagram illustrating an input matrix in a DCT mode in the DCT / IDCT processor.
FIG. 19 is a diagram illustrating an input matrix in an IDCT mode in a DCT / IDCT processor.
FIG. 20 is a diagram illustrating an example of transposition in a matrix by changing a holding state of data in a memory.
FIG. 21 is a block diagram showing a conventional DCT / IDCT processor.
[Explanation of symbols]
12, 16 ... butterfly operation unit, 13, 17 ... product-sum operation unit, 14, 18 ... round-off unit, 15 ... RAM,
100, 102 ... rearranging section, 101, 103 ... addition / subtraction section,
200 to 207 register, 210 to 217 shift register, 220 to 227 register, 230 to 237 full adder, 241 addition bit slice, 242 subtraction bit slice, 250 to 253 addition and subtraction result, 260 to 263 Addition and subtraction results,
400 to 407: cumulative addition unit, 412, 413: multiplexer, 420 to 425: delay unit, 431, 432: product-sum operation result output,
500, 501 ROM, 502, 503 Adder, 504 Multiplexer, 511, 512 Register, 513 Shift circuit,
803, 807: product-sum operation unit, 802, 804, 806, 808: butterfly operation unit, 809: multiplexer, 820, 822: rearrangement unit, 821, 823: addition / subtraction unit,
900 to 907, 910 to 917 ... multiplexer,
1000 to 1007 cumulative adder, 1008 to 1015 adder / subtractor, 1030, 1031 product-sum operation result output, 1032 addition carry output, 1033 subtraction carry output, 1040 to 1043 multiplexer
1100, 1101 ROM, 1112 registers, 1113 shift circuit,
1200, 1201 ... adder, 1202, 1203 ... multiplexer, 1204, 1205 ... register,
1300 adder, 1301-1305 register, 1306 multiplexer
1800, 1809: address generator, 1801, 1806: memory, 1802, 1804, 1805, 1808: pipeline register, 1803: product-sum operation unit, 1807: butterfly operation unit.

Claims (6)

入力されるN個の要素データに対する直交変換処理をバタフライ演算部と積和演算部を備えるプロセッサにより行う直交変換回路において、前記バタフライ演算部は、入力されるN個の要素データを要素データ毎に用意したレジスタに格納するパラレルレジスタ群と該パラレルレジスタ群の各レジスタに接続し該レジスタからのN個の要素データを要素データ毎に用意したレジスタに格納するシリアルレジスタ群と該シリアルレジスタ群の各レジスタに接続し該レジスタからのデータを加算するN個のKビット加算器で構成され、前記パラレルレジスタ群は、入力されるN個の要素データの順序を変換し、前記シリアルレジスタ群は、前記パラレルレジスタ群によって順序が変換された要素データについて下位ビットから順にKビットずつシリアルにN個の要素データ各々を同時に出力し、前記Kビット加算器は、前記シリアルレジスタ群から出力されるKビット毎の前記N/2組の要素データの加算及び減算を行い、この結果得られるキャリーを保存しこの保存したキャリーを用いて、下位から上位へ順次該加算及び減算を行うものとし、前記積和演算部は、前記バタフライ演算部で求められた加算及び減算結果として下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスを入力とし、該入力ビットスライスの各桁毎の部分和を加算するものとしたことを特徴とする直交変換回路。In an orthogonal transformation circuit for performing orthogonal transformation processing on input N element data by a processor including a butterfly operation unit and a product-sum operation unit, the butterfly operation unit converts the input N element data for each element data. A parallel register group to be stored in a prepared register, a serial register group connected to each register of the parallel register group, and N element data from the register stored in a prepared register for each element data, and a serial register group The parallel register group is composed of N K-bit adders connected to a register and adding data from the register. The parallel register group converts the order of the input N element data. For element data whose order has been converted by the parallel register group, K bits are sequentially transmitted in order from the lower bit. N pieces of element data are simultaneously output, and the K-bit adder performs addition and subtraction of the N / 2 sets of element data for each K bits output from the serial register group. Using the stored carry, the addition and subtraction are performed sequentially from lower to higher, and the product-sum operation unit calculates the addition and subtraction results obtained by the butterfly operation unit from the lower bits. An orthogonal transformation circuit characterized in that bit slices of the same digit in each set of N / 2 sets of element data which are simultaneously output in order are input, and a partial sum of each digit of the input bit slice is added. . 請求項1記載のプロセッサをDCTプロセッサとしたことを特徴とする直交変換回路。Orthogonal transform circuit, characterized in that the processor according the DCT processor according to claim 1. 請求項1または2に記載のプロセッサを各次元に対応させることにより多次元の直交変換処理を行うことを特徴とする直交変換回路。Orthogonal transform circuit and performs orthogonal transform processing multidimensional by matching processor according to each dimension in claim 1 or 2. 入力されるN個の要素データに対する直交変換処理及び/又は逆直交変換処理を、第1のバタフライ演算部と積和演算部と第2のバタフライ演算部を備えるプロセッサにより行う直交変換回路において、前記第1のバタフライ演算部は、入力されるN個の要素データを要素データ毎に用意したレジスタに格納するパラレルレジスタ群と該パラレルレジスタ群の各レジスタに接続し該レジスタからのN個の要素データを要素データ毎に用意したレジスタに格納するシリアルレジスタ群と該シリアルレジスタ群の各レジスタに接続し該レジスタからのデータを加算するN個のKビット加算器で構成するものであって、前記パラレルレジスタ群は、入力されるN個の要素データの順序を変換し、前記シリアルレジスタ群は、前記パラレルレジスタ群によって順序が変換された要素データについて下位ビットから順にKビットずつシリアルにN個の要素データ各々を同時に出力し、前記Kビット加算器は、直交変換処理を行う場合には前記シリアルレジスタ群から出力されるKビット毎の前記N/2組の要素データの加算及び減算を行い、この結果得られるキャリーを保存しこの保存したキャリーを用いて、下位から上位へ順次該加算及び減算を行い、逆直交変換処理を行う場合には該Kビット加算器を機能させずに前記シリアルレジスタ群の出力を直接出力するものとし、前記積和演算部は、直交変換処理を行う場合には前記第1のバタフライ演算部で求められた加算及び減算結果として下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスの下位ビットから順に同時に出力されるN/2組の要素データの各組における同一桁のビットスライスを入力とし、逆直交変換処理を行う場合にはN個の要素データを2組に分け得た各組に含まれるN/2個の要素データ各々の下位ビットから順に同時に出力される同一桁のビットスライスを入力とし、該入力ビットスライスの各桁毎の部分和を加算するものとし、前記第2のバタフライ演算部は、加算器を備え、該加算器は逆直交変換処理を行う場合には前記積和演算部における加算結果である前記入力ビットスライスの各桁毎の部分和を入力としてその加算及び減算を時分割で行うことを特徴とする直交変換回路。An orthogonal transformation circuit that performs orthogonal transformation processing and / or inverse orthogonal transformation processing on the input N element data by a processor including a first butterfly operation unit, a product-sum operation unit, and a second butterfly operation unit. The first butterfly operation unit includes a parallel register group for storing the input N element data in a register prepared for each element data, and N element data from the register connected to each register of the parallel register group. , A serial register group for storing data in registers prepared for each element data, and N K-bit adders connected to the respective registers of the serial register group and adding data from the registers. The register group converts the order of the input N element data, and the serial register group is the parallel register group. Therefore, for the element data whose order has been converted, N pieces of element data are simultaneously output serially in units of K bits in order from the lower bit, and the K-bit adder outputs data from the serial register group when performing orthogonal transformation processing. The addition and subtraction of the N / 2 sets of element data for each of the K bits are performed, the resulting carry is stored, and the addition and subtraction are sequentially performed from the lower order to the upper order using the stored carry. When performing the orthogonal transformation process, the output of the serial register group is directly output without operating the K-bit adder. When performing the orthogonal transformation process, the product-sum operation unit performs the first Bit slices of the same digit in each set of N / 2 sets of element data that are simultaneously output sequentially from the lower bits as the addition and subtraction results obtained by the butterfly operation unit When inputting the bit slice of the same digit in each set of N / 2 sets of element data which are simultaneously output in order from the lower bit, and performing the inverse orthogonal transform processing, each of the N pieces of element data which can be divided into two sets The bit slices of the same digit, which are simultaneously output in order from the lower bit of each of the N / 2 element data included in the set, are input, and the partial sum of each digit of the input bit slice is added. The butterfly operation unit includes an adder. When performing an inverse orthogonal transform process, the adder receives a partial sum for each digit of the input bit slice, which is an addition result in the product-sum operation unit, and performs the addition. And a subtraction unit that performs the subtraction in a time-division manner. 請求項4に記載のプロセッサをDCT/IDCTプロセッサとしたことを特徴とする直交変換回路。5. An orthogonal transformation circuit, wherein the processor according to claim 4 is a DCT / IDCT processor. 請求項4または5に記載のプロセッサを各次元に対応させることにより多次元の直交変換処理を行うことを特徴とする直交変換回路。An orthogonal transformation circuit for performing a multidimensional orthogonal transformation process by making the processor according to claim 4 correspond to each dimension.
JP19755498A 1998-07-13 1998-07-13 Orthogonal transform circuit Expired - Fee Related JP3575991B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19755498A JP3575991B2 (en) 1998-07-13 1998-07-13 Orthogonal transform circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19755498A JP3575991B2 (en) 1998-07-13 1998-07-13 Orthogonal transform circuit

Publications (2)

Publication Number Publication Date
JP2000029863A JP2000029863A (en) 2000-01-28
JP3575991B2 true JP3575991B2 (en) 2004-10-13

Family

ID=16376433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19755498A Expired - Fee Related JP3575991B2 (en) 1998-07-13 1998-07-13 Orthogonal transform circuit

Country Status (1)

Country Link
JP (1) JP3575991B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3927388B2 (en) 2000-09-27 2007-06-06 株式会社リコー Image processing apparatus, image processing method, and recording medium

Also Published As

Publication number Publication date
JP2000029863A (en) 2000-01-28

Similar Documents

Publication Publication Date Title
JP2646778B2 (en) Digital signal processor
US4791598A (en) Two-dimensional discrete cosine transform processor
EP0506111A2 (en) DCT/IDCT processor and data processing method
JPH08235159A (en) Inverse cosine transformation device
JPH09153029A (en) Memory distributed parallel computer for execution of fast fourier transform and its method
EP1018082A1 (en) Variable block size 2-dimensional inverse discrete cosine transform engine
JP6357345B2 (en) Data processing apparatus and method for performing conversion between spatial domain and frequency domain when processing video data
KR0150350B1 (en) Orthogonal transform processor
EP1065884A1 (en) Dct arithmetic device
JP2677969B2 (en) Orthogonal transformer
JP3575991B2 (en) Orthogonal transform circuit
JP4405452B2 (en) Inverse conversion circuit
JP2901896B2 (en) Orthogonal transform processor
JP3970442B2 (en) Discrete cosine transform device and inverse discrete cosine transform device
JP2003030174A (en) Dct matrix decomposition method and dct device
JP2822684B2 (en) Discrete cosine transform device and inverse discrete cosine transform device
JP3046115B2 (en) Discrete cosine transformer
JPH0540776A (en) Two-dimensional dct matrix operation circuit
KR100575285B1 (en) Low power, high speed DCT device and method thereof
Bhattacharya et al. A VLSI implementation of the inverse discrete cosine transform
JP2001102934A (en) Discrete cosine transformation processor, inverse discrete cosine transformation processor, and orthogonal transformation processor
JP3652717B2 (en) Discrete cosine high-speed calculator
JP3875183B2 (en) Arithmetic unit
KR0154919B1 (en) Two-dimensional idct circuit
JPH05153403A (en) Discrete cosine transformation device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040318

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: 20040706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040706

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20070716

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100716

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110716

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110716

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120716

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees