JP2004302510A - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP2004302510A
JP2004302510A JP2003091251A JP2003091251A JP2004302510A JP 2004302510 A JP2004302510 A JP 2004302510A JP 2003091251 A JP2003091251 A JP 2003091251A JP 2003091251 A JP2003091251 A JP 2003091251A JP 2004302510 A JP2004302510 A JP 2004302510A
Authority
JP
Japan
Prior art keywords
data
processing device
data processing
input
terminal
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.)
Pending
Application number
JP2003091251A
Other languages
Japanese (ja)
Inventor
Yukio Kadowaki
幸男 門脇
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003091251A priority Critical patent/JP2004302510A/en
Publication of JP2004302510A publication Critical patent/JP2004302510A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processing device that reduces the number of computing elements used for wavelet lifting computation and shortens total processing time to the utmost, especially in a data processing device used for two-dimensional discrete wavelet transformation. <P>SOLUTION: The data processing device comprises one or more computing elements for feeding back computation result data on input computational data to perform lifting computation and outputting the computation result data, in a period wherein computational data and computation result data can be once read from and written into a memory respectively. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、リフティング方式による演算を行うデータ処理装置、特にJPEG2000で用いられているウェーブレット変換を実行するデータ処理装置に関する。
【0002】
【従来の技術】
近年、高精細画像の圧縮伸張方式として、JPEG2000が注目されている。当該JPEG2000では、画像データに対して2次元離散ウェーブレット変換を行うが、当該ウェーブレット変換は、JPEG2000の標準で定められているリフティング方式による演算(ウェーブレットリフティング演算という)を行うと演算量が節約される。
【0003】
上記ウェーブレットリフティング演算を行うデータ処理装置は、例えば、以下の特許文献1に開示されている。
【0004】
【特許文献1】
特開2002−197075号公報
【0005】
図5は、ウェーブレットリフティング演算を行う従来のデータ処理装置200の回路構成を示す図である。データ処理装置200は、IR9:7フィルタを用いたウェーブレット変換、即ち、低域ウェーブレット変換係数の演算に9つの連続する画素の画像データ、高域ウェーブレット変換係数の演算に7つの連続する画素の画像データを用いてウェーブレットリフティング演算を行う。
【0006】
演算器210、220、230及び240は、それぞれ同様の構成で成り、それぞれ注目画素の画像データに、前後して入力される画素の画像データを規定数倍(重み付け)したデータを加算したデータを出力する。
【0007】
演算器210は、2つの加算器210a及び210cと1つの乗算器210bで構成される。演算器210の端子Aには、図示しないメモリより読み出したX(2n+2)番目の画素の画像データが入力され、端子Bには、レジスタ211及び212により一時的に記録されていたX(2n)番目の画素の画像データが入力され、端子Cには、レジスタ211により一時的に記録されていたX(2n+1)番目の画素の画像データが入力される。演算器210内部では、加算器210aが端子A及び端子Bに入力されたX(2n+2)番目及びX(2n)番目の画素の画像データの和を求め、乗算器210bが上記加算器210aの出力をα倍し、更に、加算器210cが上記乗算器210bがα倍した値に端子Cに入力されたX(2n+1)番目の注目画素の画像データを加算し、当該加算した値をY(2n+1)番目のステップS1のウェーブレットリフティング演算結果のデータとして出力する。
【0008】
演算器220の端子Aには、上記演算器210において求めたY(2n+1)番目のステップS1のウェーブレットリフティング検算結果のデータが入力され、端子Bには、レジスタ221により一時的に記録されていたY(2n−1)番目のデータが入力され、端子Cには、前段の演算器210の端子Bに入力されたのと同じX(2n)番目の画素の画像データが入力される。演算器220は、端子A及び端子Bに入力されたY(2n+1)番目及びY(2n−1)番目のデータの和をβ倍し、更に、当該β倍した値に端子Cに入力されたX(2n)番目の注目画素の画像データを加算した値をY(2n)番目のステップS2のウェーブレットリフティング演算結果のデータとして出力する。
【0009】
演算器230の端子Aには、上記演算器220において求めたY(2n)番目のステップS2のウェーブレットリフティング検算結果のデータが入力され、端子Bには、レジスタ231により一時的に記録されていたY(2n−2)番目のデータが入力され、端子Cには、前段の演算器210の端子Bに入力されたのと同じY(2n−1)番目のデータが入力される。演算器230は、端子A及び端子Bに入力されたY(2n)番目及びY(2n−2)番目のデータの和をγ倍し、更に、端子Cに入力されたY(2n−1)番目の注目データを加算した値をY(2n−1)番目のステップS3のウェーブレットリフティング演算結果のデータとして出力する。
【0010】
演算器240の端子Aには、上記演算器230において求めたY(2n−1)番目のステップS3のウェーブレットリフティング検算結果のデータが入力され、端子Bには、レジスタ241により一時的に記録されていたY(2n−3)番目のデータが入力され、端子Cには、前段の演算器230の端子Bに入力されたのと同じY(2n−2)番目のデータが入力される。演算器240は、端子A及び端子Bに入力されたY(2n−1)番目及びY(2n−3)番目のデータの和をσ倍し、更に、端子Cに入力されたY(2n−2)番目の注目データを加算した値をステップS4のY(2n−2)番目のウェーブレットリフティング演算結果のデータとして出力する。
【0011】
上記演算器230より出力されるY(2n−1)番目のステップS3のウェーブレットリフティング演算結果のデータを乗算器232により−K倍した値をウェーブレット係数のハイパス成分(ステップS5のウェーブレットリフティング演算結果)−K・Y(2n−1)として図示しないメモリに書き込む。
【0012】
また、上記演算器240より出力されるY(2n−2)番目のステップS4のウェーブレットリフティング演算結果のデータを乗算器242により1/K倍した値をウェーブレット係数のローパス成分(ステップS6のウェーブレットリフティング演算結果)1/K・Y(2n−2)として図示しないメモリに書き込む出力する。
【0013】
上記構成のデータ処理装置200では、例えば、X1番目の画素の画像データについてステップS1の演算が完了し、当該ステップS1の演算により求めたデータを用いてステップS2の演算を行う際、次のX2番目の画素の画像データについてステップS1の演算を実行することができる。同様のことが、他のステップS2,S3,S4においていえる。
【0014】
図6(a)は、データ処理装置200の最高のスループットを示す図である。上部に記すt1〜t6は、駆動クロック信号の1サイクル期間を表す。図示するように、上記構成のデータ処理装置200では、4サイクルでステップS1のウェーブレットリフティング演算結果から最終のステップS6のウェーブレットリフティング演算結果を求めることができる。また、一旦、演算を開始した後は、間を置かずに次々と次の画素の画像データについての最終のステップS6のウェーブレットリフティング演算結果を求めることができる。
【0015】
【発明が解決しようとする課題】
メモリからの演算用の画像データの読み出しには駆動クロック信号1サイクル分の時間を要するが、演算結果のデータのメモリへの書き込みにも1サイクル分の時間を要する。このため、画像データは1サイクル置きにしか読み出すことができない。このため、実際には図6(b)に示すように、1サイクル置きにしか次の画素の画像データについての最終ステップS6のウェーブレットリフティング演算結果を求めることしかできない。
【0016】
即ち、従来のデータ処理装置200では、より高速な処理ができるにもかかわらず、上記演算用の画像データのメモリからの読み出し及び演算結果のデータのメモリへの書き込みに関する制約により、半分の処理効率で動作していた。
【0017】
また、従来のデータ処理装置200では、各ステップの演算を専用の4個の演算器で実行するため、規模が大きいという問題があった。1個の演算器を時分割処理により共用すれば、使用する演算器の個数を減らすことはできるが、この場合、処理時間が4倍以上に延びてしまう。
【0018】
本発明は、上記2次元離散ウェーブレット変換を行う際に用いるデータ処理装置であって、ウェーブレットリフティング演算を行うのに使用する演算器の数を少なくすると共に、全体の処理時間をできるだけ短くできるデータ処理装置を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明の第1のデータ処理装置は、メモリからの演算用のデータの読み出し及びメモリへの演算結果のデータの書き込みが各1回できる期間に、入力された演算用のデータに対して行った演算結果のデータを帰還させてリフティング方式の演算を行い、当該演算結果のデータを出力する演算器を、1個以上備える事を特徴とする。
【0020】
本発明の第2のデータ処理装置は、上記第1のデータ処理装置において、上記演算器を2個以上備える場合において、前段に位置する演算器の出力端子と後段に位置する演算器の信号入力端子の間に、上記メモリへからのデータの読み出し及びメモリへのデータの書き込みが各1回できる期間の内の一定時間だけ開くゲートを備えることを特徴とする。
【0021】
本発明の第3のデータ処理装置は、上記第2のデータ処理装置において、上記演算器を3個以上備え、各演算器の間に上記ゲートを2個以上備える場合において、信号入力側から見て奇数番目に位置するゲートと偶数番目に位置するゲートの開閉のタイミングが反対に設定されていることを特徴とする。
【0022】
本発明の第4のデータ処理装置は、上記第2のデータ処理装置において、JPEG2000の準拠したウェーブレット変換を実行することを特徴とする。
【0023】
本発明の第5のデータ処理装置は、上記第4のデータ処理装置において、画像データの他、1以上の各レベルのLLのサブバンドのウェーブレット係数のデータが混在したデータを演算用のデータとして処理することを特徴とする。
【0024】
本発明の第6のデータ処理装置は、上記第4のデータ処理装置において、画像データを色変換して得られる3つの色成分のデータに変換したデータであって、各色成分のデータが混在したデータを演算用のデータとして処理することを特徴とする。
【0025】
【発明の実施の形態】
図1は、ウェーブレットリフティング演算を実行するデータ処理装置100の回路図である。当該データ処理装置100は、駆動クロック信号の2サイクルに一度、画像データXを読み込む通常のメモリシステムに対して、僅か2個の演算器(従来は4個、図5を参照)により最高のスループット、具体的には、上記従来技術の欄で説明した図6(b)に示すスループットが得られるように設計したものである。
【0026】
以下、データ処理装置100の構成について説明した後、実際の動作について駆動クロック信号2個分のタイミング(タイミングA及びタイミングB)に分けて説明する。タイミングAは、駆動クロック信号の奇数サイクルの期間をいう。また、タイミングBは、駆動クロック信号の偶数サイクルの期間をいう。
【0027】
図示しないメモリから読み出されて、データ処理装置100に入力される演算用の画像データは、マルチプレクサ(図中、MUXと記す)111の信号入力端子111bに入力される他、レジスタ112を介してマルチプレクサ115の信号入力端子115bに入力され、更にレジスタ113を介してマルチプレクサ114の信号入力端子114bに入力される。
【0028】
マルチプレクサ111のもう一方の信号入力端子111aには、演算器110の出力端子Dより帰還してきた信号が入力される。マルチプレクサ114のもう一方の信号入力端子114aには、演算器110の出力端子Dより帰還してきた信号がレジスタ117により一時的に記録された後に入力される。マルチプレクサ115のもう一方の信号入力端子115aには、マルチプレクサ114の出力信号が入力される。
【0029】
マルチプレクサ111,114及び115は、タイミングAで図中、下側の入力端子111b、114b及び115bに入力される信号を通過させ、タイミングBで上側の入力端子111a、114a及び115aに入力される信号を通過させる。
【0030】
演算器110は、2つの加算器110a及び110cと駆動クロック信号の1サイクル毎にα又はβに倍率が切り換る1つの乗算器110bで構成される。演算器110内で、加算器110a及び乗算器110bは、端子A及び端子Bに入力される注目画素の両隣の画像データの和をタイミングAでα倍し、タイミングBでβ倍する。加算器110cは、上記α倍又はβ倍された値に端子Cより入力される注目画素の画像データを加算して出力する。倍率の切換は駆動クロック信号に応じて行う。
【0031】
演算器110の出力端子Dは、タイミングAで閉じ、タイミングBで開くゲート121に接続される。ゲート121の出力は、入力された信号を駆動クロック信号1サイクル分だけ遅延して出力する遅延回路122に接続されている。遅延回路122の出力は、マルチプレクサ124の信号入力端子123bに接続される他、レジスタ124を介してマルチプレクサ125の信号入力端子125bに接続される。マルチプレクサ123の残りの信号入力端子123aは、演算器120の出力端子Dより帰還してきた信号が入力される。また、マルチプレクサ125のもう一方の信号入力端子125aは、演算器120の出力端子Dより帰還してきた信号がレジスタ128を介して入力される。また、マルチプレクサ127の信号入力端子127aには、上記マルチプレクサ125の出力信号が入力され、もう一方の信号入力端子127bには、マルチプレクサ114より出力された信号が遅延回路126において駆動クロック信号1サイクル分だけ遅延された状態で入力される。
【0032】
マルチプレクサ123、125及び127は、タイミングAで図中、上側の入力端子123a、125a及び127aに入力される信号を通過させ、タイミングBで下側の入力端子123b、125b及び127bに入力される信号を通過させる。
【0033】
演算器120は、演算器110と同様の構成で成り、端子A及び端子Bに入力される注目データの前後のデータの和をタイミングAでσ倍し、タイミングBでγ倍した値に端子Cより入力される注目データの値を加算して出力する。
【0034】
演算器120の出力端子Dは、マルチプレクサ129の信号入力端子129aに接続される。マルチプレクサ129は、タイミングAで出力端子129cから乗算器131に信号を出力し、タイミングBで出力端子129bから乗算器130に信号を出力する。
【0035】
以下、上記構成のデータ処理装置100がタイミングAにおいて実行する処理内容について説明する。図2は、図1に示したデータ処理装置100の回路図から、タイミングAにおいて有効に働いている構成要素のみを抽出して表示したものである。
【0036】
タイミングAでは、前段の演算器110においてステップS1のウェーブレットリフティング演算が実行されると共に、後段の演算器120においてステップS4及びステップS6のウェーブレットリフティング演算が実行される。
【0037】
タイミングAにおいて、演算器110の信号入力端子Cには、X(2n+1)番目の注目画素の画像データが入力され、信号入力端子Aには、注目画素の前に位置するX(2n+2)番目の画素の画像データが入力され、信号入力端子Bには、注目画素の後に位置するX(2n)番目の画素の画像データが入力される。演算器110は、Y(2n+1)番目のデータのステップS1のウェーブレットリフティング演算のデータとしてY(2n+1)=X(2n+1)+α(X(2n)+X(2n+2))を求め、求めたデータを出力する。
【0038】
一方で、ゲート121により演算器110からのデータ入力が遮断されている後段の演算器120では、信号入力端子Cに注目データとしてY(2n−2)番目のデータが入力され、信号入力端子Aには、注目データの前に位置するY(2n−1)番目のデータが入力され、信号入力端子Bには、注目データの後に位置するY(2n−3)番目のデータが入力される。なお、上記信号入力端子Aに入力されるデータは、後に説明するタイミングBにおいて当該演算器120から出力されたステップS3のウェーブレットリフティング演算結果のデータである。演算器120は、Y(2n−2)番目のステップS4のウェーブレットリフティング演算のデータとしてY(2n−2)=Y(2n−2)+σ(Y(2n−1)+Y(2n−3))を求め、求めたデータを出力する。
【0039】
更に、演算器120より出力されたデータは、ステップS6のウェーブレットリフティング演算として乗算器131により1/K倍され、ウェーブレット係数のハイパス成分のデータ(演算結果のデータ)として図示しないメモリに書き込まれる。
【0040】
引き続き、データ処理装置100がタイミングBにおいて実行する処理内容について説明する。図3は、図1に示したデータ処理装置100の回路図から、タイミングBにおいて有効に働いている構成要素のみを抽出して表示したものである。
【0041】
タイミングBでは、前段の演算器110においてステップS2のウェーブレットリフティング演算が実行されると共に、後段の演算器120においてステップS3及びステップS5のウェーブレットリフティング演算が実行される。
【0042】
タイミングBにおいて、演算器110の信号入力端子Cには、直前のタイミングAで注目画素の後に位置していたX(2n)番目の画素の画像データが注目データとして入力され、信号入力端子Aには、注目データの前に位置するY(2n+1)番目のデータが入力され、信号入力端子Bには、注目データの後に位置するY(2n−1)番目のデータが入力される。演算器110は、Y(2n)番目のステップS2のウェーブレットリフティング演算のデータとしてY(2n)=X(2n)+β(Y(2n−1)+Y(2n+1))を求め、求めたデータを出力する。
【0043】
タイミングBではゲート121は開いており、演算器110より出力されたY(2n)番目のデータは、遅延回路122により駆動クロック信号1サイクル分だけ遅延された後に、注目データの1つ前のデータとして演算器120の信号入力端子Aに入力される。信号入力端子Bには、注目データの1つ後のデータとしてY(2n−2)番目のデータが入力される。信号入力端子Cには、注目データとしてY(2n−1)番目のデータが入力される。演算器120は、Y(2n−1)番目のステップS3のウェーブレットリフティング演算のデータとしてY(2n−1)=Y(2n−1)+γ(Y(2n−2)+Y(2n))を求め、求めたデータを出力する。
【0044】
演算器120より出力されたデータは、更に、乗算器130により−K倍され、ステップS5のウェーブレットリフティング演算により得られるウェーブレット係数のローパス成分のデータ(演算結果のデータ)として図示しないメモリに書き込まれる。
【0045】
図4は、上記構成のデータ処理装置100において、実現される最高のスループットを示す図である。上部に記すt1〜t6は、駆動クロック信号の1サイクルを表す。図示するように、データ処理装置100では、4サイクルでステップS1のウェーブレットリフティング演算結果から最終のステップS6のウェーブレットリフティング演算結果を求めることができる。また、一旦、演算を開始した後は、駆動クロック信号1サイクル置きに次の画素の画像データについての最終のステップS6のウェーブレットリフティング演算結果を求めることができる。
【0046】
上記図4は、図5を参照しつつ従来技術の欄において説明したデータ処理装置200の実現し得るスループット(図6(b)を参照)と同じである。即ち、データ処理装置100では、従来のデータ処理装置200と比べて演算器の数を半分の2個にして回路規模を小さくしたにも拘わらず、全く同じスループットを得ることができるといった効果を奏することができるのである。これは、ウェーブレットリフティング演算結果のデータを図示しないメモリに書き込んでいる間に、2つの演算器を休ませることなく、次のステップのウェーブレットリフティング演算を実行させることで、処理速度を2倍に高めているためである。
【0047】
なお、データ処理装置100では、ある画素の画像データに対するステップS1及びS2の演算終了後、上記処理した画素の画像データと全く関係ない別の画素の画像データを入力することができる。従って、全画像データをデータ処理装置100で処理してレベル1のウェーブレット係数に変換した後に、1LLのサブバンドの全データをデータ処理装置100で処理する以外に、画像データの処理がある程度進んだ段階で、1LLのサブバンドのウェーブレット係数の処理を行いレベル2のウェーブレット係数を求めても良い。更に高いレベルについても同様である。このように、データ処理装置100では、画像データの他、1以上の各レベルのLLのサブバンドのウェーブレット係数のデータが混在したデータを演算用のデータとして処理することができ、これにより、所望のレベルのウェーブレット係数がより迅速に得られるといった利点を有する。
【0048】
また、画像データをY,Cr,Cbの3つの色成分に変換した後、各色成分のデータを一塊としてデータ処理装置100において処理しても良いし、Y成分のデータ、Cr成分のデータ、Cb成分のデータの順に並列に処理しても良い。このように、データ処理装置100では、画像データを色変換して得られる3つの色成分のデータに変換したデータであって、各色成分のデータが混在したデータを演算用のデータとして処理することができ、これにより、所望の色成分のウェーブレット係数がより迅速に得られるといった利点を有する。
【0049】
以上、IR9:7フィルタ処理を行うデータ処理装置100について説明したが、メモリからの演算用のデータの読み出し及びメモリへの演算結果のデータの書き込みが各1回できる期間に、入力された演算用のデータに対して行った演算結果のデータを帰還させてリフティング方式の演算を行い、当該演算結果のデータを出力する演算器を、1個以上備える事を基本概念とする本発明のデータ処理装置の構成を適用すれば、少ない演算器で迅速な処理の可能なIR5:3フィルタや、デコーダを構成することもできる。
【0050】
【発明の効果】
本発明のデータ処理装置は、メモリから演算用のデータを読み出し、及び、演算結果のデータをメモリに書き込むのに要する時間内に、最初の演算結果のデータを帰還させてリフティング方式による演算を行うことにより、駆動クロック信号1サイクル毎に1つの演算を連続して行うタイプのデータ処理回路に比べて半分の演算器の数で同じスループットを実現することができる。
【図面の簡単な説明】
【図1】データ処理装置の回路図である。
【図2】データ処理装置中でタイミングAにおいて動作する構成要素を示す図である。
【図3】データ処理装置中でタイミングBにおいて動作する構成要素を示す図である。
【図4】データ処理装置のスループットを示す図である。
【図5】従来のデータ処理装置の回路図である。
【図6】(a)は、従来のデータ処理装置の理論上の最高のスループットを示す図であり、(b)は、メモリへのデータの読み書きのタイミングの制限より実際に得られるスループットを示す図である。
【符号の説明】100 データ処理装置、110,120 演算器、111,114,115,123,125,127 マルチプレクサ、112,113,117,124,128 レジスタ、122,126 遅延回路
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data processing device that performs an operation according to a lifting method, and particularly to a data processing device that performs a wavelet transform used in JPEG2000.
[0002]
[Prior art]
In recent years, JPEG2000 has been receiving attention as a compression / expansion method for high-definition images. According to the JPEG2000, a two-dimensional discrete wavelet transform is performed on image data. When the wavelet transform is performed by an operation according to a lifting method defined by the JPEG2000 standard (referred to as a wavelet lifting operation), the amount of operation is reduced. .
[0003]
A data processing device that performs the wavelet lifting operation is disclosed in, for example, Patent Document 1 below.
[0004]
[Patent Document 1]
JP-A-2002-19775 [0005]
FIG. 5 is a diagram showing a circuit configuration of a conventional data processing device 200 that performs a wavelet lifting operation. The data processing device 200 performs wavelet transform using an IR9: 7 filter, that is, image data of nine consecutive pixels for calculating a low-pass wavelet transform coefficient, and image of seven consecutive pixels for calculating a high-pass wavelet transform coefficient. A wavelet lifting operation is performed using the data.
[0006]
Each of the arithmetic units 210, 220, 230 and 240 has the same configuration, and adds data obtained by adding data obtained by multiplying (weighting) image data of pixels input before and after a specified number to image data of a target pixel. Output.
[0007]
The arithmetic unit 210 includes two adders 210a and 210c and one multiplier 210b. Image data of the X (2n + 2) th pixel read from a memory (not shown) is input to a terminal A of the arithmetic unit 210, and X (2n) temporarily recorded by the registers 211 and 212 is input to a terminal B. The image data of the X-th pixel is input to the terminal C, and the image data of the X (2n + 1) -th pixel temporarily recorded by the register 211 is input to the terminal C. Inside the arithmetic unit 210, the adder 210a calculates the sum of the image data of the X (2n + 2) th and X (2n) th pixels input to the terminals A and B, and the multiplier 210b outputs the output of the adder 210a. , And the adder 210c adds the image data of the X (2n + 1) -th pixel of interest input to the terminal C to the value multiplied by α by the multiplier 210b, and adds the added value to Y (2n + 1). ) Output as the data of the result of the wavelet lifting calculation in step S1.
[0008]
The data of the Y (2n + 1) -th wavelet lifting check result obtained in step S1 obtained in the above-described computing unit 210 is input to terminal A of computing unit 220, and is temporarily recorded in terminal B by register 221 in terminal B. The Y (2n-1) -th data is input, and the same image data of the X (2n) -th pixel as input to the terminal B of the arithmetic unit 210 in the preceding stage is input to the terminal C. The arithmetic unit 220 multiplies the sum of the Y (2n + 1) -th and Y (2n-1) -th data input to the terminal A and the terminal B by β, and further inputs the sum to the terminal C by the β-multiplied value. The value obtained by adding the image data of the X (2n) th pixel of interest is output as the data of the wavelet lifting operation result of the Y (2n) th step S2.
[0009]
The data of the Y (2n) -th step S2 wavelet lifting verification result obtained in the arithmetic unit 220 is input to the terminal A of the arithmetic unit 230, and the data is temporarily recorded by the register 231 in the terminal B. The Y (2n-2) -th data is input, and the same Y (2n-1) -th data as that input to the terminal B of the preceding computing unit 210 is input to the terminal C. The arithmetic unit 230 multiplies the sum of the Y (2n) -th and Y (2n-2) -th data input to the terminal A and the terminal B by γ, and further, Y (2n-1) input to the terminal C The value obtained by adding the data of interest is output as the data of the result of the wavelet lifting operation in the Y (2n-1) th step S3.
[0010]
The data of the Y (2n-1) -th wavelet lifting check result obtained in the arithmetic unit 230 is input to the terminal A of the arithmetic unit 240, and the data is temporarily recorded by the register 241 to the terminal B. The Y (2n−3) th data is input to the terminal C, and the same Y (2n−2) th data as input to the terminal B of the arithmetic unit 230 in the previous stage is input to the terminal C. The arithmetic unit 240 multiplies the sum of the Y (2n−1) th and Y (2n−3) th data input to the terminal A and the terminal B by σ, and furthermore, Y (2n−) input to the terminal C. The value obtained by adding the 2) th data of interest is output as the data of the Y (2n-2) th wavelet lifting calculation result in step S4.
[0011]
A high-pass component of a wavelet coefficient obtained by multiplying the data of the Y (2n-1) -th wavelet lifting operation result output from the arithmetic unit 230 in step S3 by -K by the multiplier 232 (wavelet lifting operation result in step S5) Write to a memory (not shown) as -KY (2n-1).
[0012]
Further, a value obtained by multiplying the data of the wavelet lifting calculation result of the Y (2n-2) -th step S4 output from the calculator 240 by 1 / K by the multiplier 242 is a low-pass component of the wavelet coefficient (the wavelet lifting in step S6). The result is written into a memory (not shown) as 1 / KY (2n-2) and output.
[0013]
In the data processing device 200 having the above configuration, for example, when the calculation of step S1 is completed for the image data of the X1th pixel, and when the calculation of step S2 is performed using the data obtained by the calculation of step S1, the following X2 The operation of step S1 can be performed on the image data of the ith pixel. The same can be said for the other steps S2, S3, S4.
[0014]
FIG. 6A is a diagram illustrating the highest throughput of the data processing device 200. T1 to t6 described above represent one cycle period of the drive clock signal. As shown in the figure, in the data processing device 200 having the above configuration, the wavelet lifting calculation result of the final step S6 can be obtained from the wavelet lifting calculation result of step S1 in four cycles. Also, once the calculation is started, the result of the wavelet lifting calculation in the final step S6 for the image data of the next pixel can be obtained one after another without a pause.
[0015]
[Problems to be solved by the invention]
Reading image data for calculation from the memory requires one cycle of the driving clock signal, but writing data of the calculation result to the memory also requires one cycle of time. Therefore, the image data can be read out only every other cycle. Therefore, in practice, as shown in FIG. 6B, the result of the wavelet lifting calculation in the final step S6 for the image data of the next pixel can be obtained only every other cycle.
[0016]
That is, in the conventional data processing apparatus 200, although processing can be performed at higher speed, half of the processing efficiency is reduced due to the restriction on reading the image data for calculation from the memory and writing the data of the calculation result into the memory. Was working on.
[0017]
In addition, the conventional data processing device 200 has a problem that the scale of the data processing device 200 is large because the operation of each step is performed by four dedicated arithmetic units. If one arithmetic unit is shared by time-division processing, the number of arithmetic units to be used can be reduced. However, in this case, the processing time is extended four times or more.
[0018]
The present invention relates to a data processing apparatus used for performing the two-dimensional discrete wavelet transform, wherein the number of arithmetic units used for performing a wavelet lifting operation is reduced, and the data processing apparatus is capable of reducing the overall processing time as much as possible. It is intended to provide a device.
[0019]
[Means for Solving the Problems]
The first data processing device of the present invention performs the operation on the input operation data during a period in which the operation data can be read from the memory and the operation result data can be written to the memory once. It is characterized in that one or more arithmetic units are provided which perform lifting-type arithmetic by feeding back the arithmetic result data and output the arithmetic result data.
[0020]
According to a second data processing device of the present invention, in the first data processing device, when two or more arithmetic units are provided, the output terminal of the arithmetic unit located at the preceding stage and the signal input of the arithmetic unit located at the subsequent stage are provided. A gate is provided between the terminals, the gate being opened for a predetermined time in a period in which data can be read from the memory and data can be written to the memory once.
[0021]
The third data processing device of the present invention is characterized in that, in the second data processing device, when three or more arithmetic units are provided and two or more gates are provided between the arithmetic units, the third data processing device is viewed from a signal input side. The timing of opening and closing the odd-numbered gate and the even-numbered gate is set opposite.
[0022]
A fourth data processing device according to the present invention is characterized in that, in the second data processing device, a wavelet transform conforming to JPEG2000 is executed.
[0023]
According to a fifth data processing device of the present invention, in the above fourth data processing device, data in which wavelet coefficient data of one or more LL subbands of each level are mixed as data for calculation in addition to image data. It is characterized by processing.
[0024]
According to a sixth data processing device of the present invention, in the above-described fourth data processing device, data obtained by converting image data into data of three color components obtained by performing color conversion, wherein data of each color component is mixed. The method is characterized in that data is processed as data for calculation.
[0025]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a circuit diagram of a data processing device 100 that performs a wavelet lifting operation. The data processing apparatus 100 has the highest throughput with only two arithmetic units (conventionally four, see FIG. 5) for a normal memory system that reads image data X once every two cycles of the drive clock signal. Specifically, it is designed so as to obtain the throughput shown in FIG. 6B described in the section of the related art.
[0026]
Hereinafter, after describing the configuration of the data processing apparatus 100, the actual operation will be described separately for the timings (timing A and timing B) of two drive clock signals. Timing A refers to a period of an odd cycle of the drive clock signal. Timing B refers to a period of an even cycle of the drive clock signal.
[0027]
Image data for calculation read out from a memory (not shown) and input to the data processing device 100 is input to a signal input terminal 111 b of a multiplexer (denoted as MUX in the figure) 111 and also via a register 112. The signal is input to the signal input terminal 115 b of the multiplexer 115, and further input to the signal input terminal 114 b of the multiplexer 114 via the register 113.
[0028]
The signal fed back from the output terminal D of the arithmetic unit 110 is input to the other signal input terminal 111a of the multiplexer 111. The signal fed back from the output terminal D of the arithmetic unit 110 is input to the other signal input terminal 114a of the multiplexer 114 after being temporarily recorded by the register 117. The output signal of the multiplexer 114 is input to the other signal input terminal 115a of the multiplexer 115.
[0029]
The multiplexers 111, 114 and 115 pass the signals input to the lower input terminals 111b, 114b and 115b in the figure at timing A, and the signals input to the upper input terminals 111a, 114a and 115a at timing B. Through.
[0030]
The arithmetic unit 110 is composed of two adders 110a and 110c and one multiplier 110b whose magnification is switched to α or β every cycle of the drive clock signal. In the arithmetic unit 110, the adder 110a and the multiplier 110b multiply the sum of the image data on both sides of the target pixel input to the terminal A and the terminal B by α at the timing A and β by the timing B. The adder 110c adds the α- or β-multiplied value to the image data of the target pixel input from the terminal C, and outputs the added value. Switching of the magnification is performed according to the drive clock signal.
[0031]
The output terminal D of the arithmetic unit 110 is connected to the gate 121 which closes at the timing A and opens at the timing B. The output of the gate 121 is connected to a delay circuit 122 that delays the input signal by one cycle of the driving clock signal and outputs the delayed signal. The output of the delay circuit 122 is connected to the signal input terminal 123b of the multiplexer 124 and also to the signal input terminal 125b of the multiplexer 125 via the register 124. The signal fed back from the output terminal D of the arithmetic unit 120 is input to the remaining signal input terminal 123a of the multiplexer 123. The signal that has been fed back from the output terminal D of the arithmetic unit 120 is input to the other signal input terminal 125 a of the multiplexer 125 via the register 128. The output signal of the multiplexer 125 is input to the signal input terminal 127a of the multiplexer 127, and the signal output from the multiplexer 114 is input to the other signal input terminal 127b of the delay circuit 126 for one cycle of the driving clock signal. Input with only a delay.
[0032]
The multiplexers 123, 125, and 127 pass the signals input to the upper input terminals 123a, 125a, and 127a at the timing A, and the signals input to the lower input terminals 123b, 125b, and 127b at the timing B. Through.
[0033]
The arithmetic unit 120 has the same configuration as that of the arithmetic unit 110, and multiplies the sum of the data before and after the target data input to the terminals A and B by σ at the timing A, and multiplies the sum of the terminals C by γ at the timing B. The value of the input data of interest is added and output.
[0034]
The output terminal D of the arithmetic unit 120 is connected to the signal input terminal 129a of the multiplexer 129. The multiplexer 129 outputs a signal from the output terminal 129c to the multiplier 131 at the timing A, and outputs a signal from the output terminal 129b to the multiplier 130 at the timing B.
[0035]
Hereinafter, the processing performed by the data processing apparatus 100 having the above configuration at the timing A will be described. FIG. 2 is a diagram in which only components effective at timing A are extracted and displayed from the circuit diagram of the data processing device 100 shown in FIG.
[0036]
At timing A, the wavelet lifting operation of step S1 is executed in the operation unit 110 in the preceding stage, and the wavelet lifting operation in steps S4 and S6 is executed in the operation unit 120 in the subsequent stage.
[0037]
At timing A, the image data of the X (2n + 1) -th pixel of interest is input to the signal input terminal C of the arithmetic unit 110, and the signal input terminal A of the X (2n + 2) -th pixel located before the pixel of interest. The image data of the pixel is input, and the image data of the X (2n) -th pixel located after the pixel of interest is input to the signal input terminal B. The arithmetic unit 110 obtains Y (2n + 1) = X (2n + 1) + α (X (2n) + X (2n + 2)) as the data of the wavelet lifting operation in step S1 of the Y (2n + 1) -th data, and outputs the obtained data. I do.
[0038]
On the other hand, in the subsequent operation unit 120 in which data input from the operation unit 110 is cut off by the gate 121, the Y (2n−2) th data is input to the signal input terminal C as data of interest, and the signal input terminal A , The Y (2n-1) th data located before the data of interest is input, and the Y (2n-3) th data located after the data of interest is input to the signal input terminal B. The data input to the signal input terminal A is data of the result of the wavelet lifting operation in step S3 output from the arithmetic unit 120 at a timing B described later. The arithmetic unit 120 calculates Y (2n−2) = Y (2n−2) + σ (Y (2n−1) + Y (2n−3)) as the data of the wavelet lifting calculation in the Y (2n−2) th step S4. And outputs the obtained data.
[0039]
Further, the data output from the arithmetic unit 120 is multiplied by 1 / K by the multiplier 131 as a wavelet lifting operation in step S6, and written into a memory (not shown) as high-pass component data of the wavelet coefficient (data of the operation result).
[0040]
Subsequently, the processing performed by the data processing device 100 at the timing B will be described. FIG. 3 is a diagram in which only the components that function effectively at the timing B are extracted and displayed from the circuit diagram of the data processing device 100 illustrated in FIG.
[0041]
At the timing B, the wavelet lifting operation in step S2 is executed in the operation unit 110 in the preceding stage, and the wavelet lifting operation in steps S3 and S5 is executed in the operation unit 120 in the subsequent stage.
[0042]
At the timing B, the image data of the X (2n) -th pixel located after the pixel of interest at the immediately preceding timing A is input to the signal input terminal C of the arithmetic unit 110 as the data of interest. , The Y (2n + 1) th data located before the target data is input, and the Y (2n−1) th data located after the target data is input to the signal input terminal B. The arithmetic unit 110 obtains Y (2n) = X (2n) + β (Y (2n−1) + Y (2n + 1)) as the data of the wavelet lifting operation in the Y (2n) -th step S2, and outputs the obtained data. I do.
[0043]
At the timing B, the gate 121 is open, and the Y (2n) -th data output from the arithmetic unit 110 is delayed by one cycle of the driving clock signal by the delay circuit 122, and then the data immediately before the target data is obtained. Is input to the signal input terminal A of the arithmetic unit 120. The Y (2n−2) th data is input to the signal input terminal B as data immediately after the target data. The Y (2n-1) -th data is input to the signal input terminal C as the data of interest. The arithmetic unit 120 obtains Y (2n-1) = Y (2n-1) + γ (Y (2n-2) + Y (2n)) as data of the Y (2n-1) th wavelet lifting operation in step S3. And output the obtained data.
[0044]
The data output from the arithmetic unit 120 is further multiplied by −K by the multiplier 130 and written to a memory (not shown) as low-pass component data (data of a calculation result) of the wavelet coefficient obtained by the wavelet lifting calculation in step S5. .
[0045]
FIG. 4 is a diagram showing the highest throughput realized in the data processing device 100 having the above configuration. T1 to t6 described above represent one cycle of the drive clock signal. As shown in the figure, the data processing device 100 can obtain the final wavelet lifting operation result in step S6 from the wavelet lifting operation result in step S1 in four cycles. Further, once the calculation is started, the result of the wavelet lifting calculation in the final step S6 for the image data of the next pixel can be obtained every other cycle of the drive clock signal.
[0046]
4 is the same as the achievable throughput (see FIG. 6B) of the data processing device 200 described in the section of the related art with reference to FIG. That is, in the data processing apparatus 100, the same throughput can be obtained even though the number of arithmetic units is reduced to half and the circuit scale is reduced as compared with the conventional data processing apparatus 200. You can do it. This is because the processing speed is doubled by executing the wavelet lifting operation of the next step without resting the two arithmetic units while writing the data of the result of the wavelet lifting operation to the memory (not shown). Because it is.
[0047]
In addition, in the data processing device 100, after the calculations in steps S1 and S2 for the image data of a certain pixel are completed, image data of another pixel completely unrelated to the image data of the processed pixel can be input. Therefore, after all the image data is processed by the data processing apparatus 100 and converted into wavelet coefficients of level 1, the processing of the image data proceeds to some extent in addition to processing all the data of the 1LL subband by the data processing apparatus 100. At this stage, wavelet coefficients of the 1LL subband may be processed to obtain level 2 wavelet coefficients. The same applies to higher levels. As described above, the data processing device 100 can process data in which wavelet coefficient data of one or more LL subbands of each level in addition to image data are mixed as calculation data. Level of wavelet coefficients can be obtained more quickly.
[0048]
Further, after converting the image data into three color components of Y, Cr, and Cb, the data of each color component may be processed as one block in the data processing device 100, or may be data of the Y component, data of the Cr component, and data of the Cb. Processing may be performed in parallel in the order of the component data. As described above, in the data processing apparatus 100, data obtained by converting image data into three color component data obtained by performing color conversion, and in which data of each color component are mixed, is processed as calculation data. This has the advantage that the wavelet coefficients of the desired color component can be obtained more quickly.
[0049]
The data processing apparatus 100 that performs the IR9: 7 filter processing has been described above. However, during the period in which the reading of the calculation data from the memory and the writing of the calculation result data to the memory can be performed once, the input calculation The data processing apparatus according to the present invention, which has a basic concept of providing at least one arithmetic unit for performing a lifting method operation by feeding back data of the operation result performed on the data of the above and outputting the data of the operation result By applying the configuration described above, it is also possible to configure an IR5: 3 filter and a decoder that can perform quick processing with a small number of arithmetic units.
[0050]
【The invention's effect】
The data processing device of the present invention performs the operation by the lifting method by feeding back the first operation result data within the time required to read the operation data from the memory and write the operation result data to the memory. Thus, the same throughput can be realized with half the number of arithmetic units as compared with a data processing circuit of a type that performs one operation continuously for each cycle of the drive clock signal.
[Brief description of the drawings]
FIG. 1 is a circuit diagram of a data processing device.
FIG. 2 is a diagram showing components operating at a timing A in the data processing device.
FIG. 3 is a diagram showing components operating at a timing B in the data processing device.
FIG. 4 is a diagram illustrating a throughput of the data processing device.
FIG. 5 is a circuit diagram of a conventional data processing device.
FIG. 6A is a diagram showing the theoretical maximum throughput of a conventional data processing apparatus, and FIG. 6B is a diagram showing the throughput actually obtained from the restriction on the timing of reading and writing data to and from a memory. FIG.
DESCRIPTION OF SYMBOLS 100 data processing device, 110, 120 arithmetic unit, 111, 114, 115, 123, 125, 127 multiplexer, 112, 113, 117, 124, 128 register, 122, 126 delay circuit

Claims (6)

メモリからの演算用のデータの読み出し及びメモリへの演算結果のデータの書き込みが各1回できる期間に、入力された演算用のデータに対して行った演算結果のデータを帰還させてリフティング方式の演算を行い、当該演算結果のデータを出力する演算器を、1個以上備える事を特徴とするデータ処理装置。During the period in which the operation data can be read from the memory and the operation result data can be written to the memory once, the operation result data input to the input operation data is fed back to the lifting method. A data processing device comprising one or more arithmetic units for performing an operation and outputting data of the operation result. 請求項1に記載のデータ処理装置において、
上記演算器を2個以上備える場合において、前段に位置する演算器の出力端子と後段に位置する演算器の信号入力端子の間に、上記メモリへからのデータの読み出し及びメモリへのデータの書き込みが各1回できる期間の内の一定時間だけ開くゲートを備えるデータ処理装置。
The data processing device according to claim 1,
When two or more arithmetic units are provided, data is read from the memory and data is written to the memory between the output terminal of the arithmetic unit located at the preceding stage and the signal input terminal of the arithmetic unit located at the subsequent stage. A data processing device comprising a gate that opens for a fixed time within a period in which each can be performed once.
請求項2に記載のデータ処理装置において、
上記演算器を3個以上備え、各演算器の間に上記ゲートを2個以上備える場合において、信号入力側から見て奇数番目に位置するゲートと偶数番目に位置するゲートの開閉のタイミングが反対に設定されているデータ処理装置。
The data processing device according to claim 2,
When three or more arithmetic units are provided and two or more gates are provided between the arithmetic units, the timing of opening and closing the odd-numbered gate and the even-numbered gate when viewed from the signal input side is opposite. Data processing device set to.
請求項2に記載のデータ処理装置において、JPEG2000の準拠したウェーブレット変換を実行するデータ処理装置。3. The data processing apparatus according to claim 2, wherein the data processing apparatus executes a wavelet transform based on JPEG2000. 請求項4に記載のデータ処理装置において、
画像データの他、1以上の各レベルのLLのサブバンドのウェーブレット係数のデータが混在したデータを演算用のデータとして処理するデータ処理装置。
The data processing device according to claim 4,
A data processing device for processing data in which wavelet coefficient data of one or more LL subbands of each level in addition to image data are mixed as calculation data.
請求項4に記載のデータ処理装置において、
画像データを色変換して得られる3つの色成分のデータに変換したデータであって、各色成分のデータが混在したデータを演算用のデータとして処理するデータ処理装置。
The data processing device according to claim 4,
A data processing apparatus for processing data obtained by converting image data into data of three color components obtained by performing color conversion, wherein data in which data of each color component is mixed is processed as calculation data.
JP2003091251A 2003-03-28 2003-03-28 Data processing device Pending JP2004302510A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003091251A JP2004302510A (en) 2003-03-28 2003-03-28 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003091251A JP2004302510A (en) 2003-03-28 2003-03-28 Data processing device

Publications (1)

Publication Number Publication Date
JP2004302510A true JP2004302510A (en) 2004-10-28

Family

ID=33404666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003091251A Pending JP2004302510A (en) 2003-03-28 2003-03-28 Data processing device

Country Status (1)

Country Link
JP (1) JP2004302510A (en)

Similar Documents

Publication Publication Date Title
US6047303A (en) Systolic architecture for computing an inverse discrete wavelet transforms
US8346833B2 (en) Filter and method for filtering
JP4288461B2 (en) Symmetric image filter processing apparatus, program, and method
JP5837153B2 (en) Method and apparatus for image processing at pixel speed
JP2959104B2 (en) Signal processor
JPH1091780A (en) Convolution device and convolution execution method
US5016207A (en) High-speed digital filter processor including parallel paths for processing data, suitable for use in spatial filter image processing
Hung et al. Compact inverse discrete cosine transform circuit for MPEG video decoding
JP2004302510A (en) Data processing device
CN101640795B (en) Video decoding optimization method and device
JP2013239120A (en) Image processing device
EP0831404A2 (en) Two-dimensional inverse discrete cosine transform circuit
WO2021035715A1 (en) Data processing method and device
JP2513218B2 (en) FIR Digital Filter
US20030055856A1 (en) Architecture component and method for performing discrete wavelet transforms
KR100628441B1 (en) Apparatus for lifting discrete wavelet transform of JPEG2000
KR100362355B1 (en) Processor for discrete wavelet transform
JP3065067B2 (en) Equally spaced subband analysis filter and synthesis filter for MPEG audio multi-channel processing
JP3120435B2 (en) Digital arithmetic circuit
TW201643746A (en) Data allocating apparatus, signal processing apparatus, and data allocating method
JPWO2004068411A1 (en) Average value filter device and filtering method
JP2008113295A (en) Video signal processor
JP2000332998A (en) Image processor
EP0321584A1 (en) System for calculating sum of products
JP2002287798A (en) Audio decoding device and audio decoding method