JP4444480B2 - フィルタ処理装置 - Google Patents

フィルタ処理装置 Download PDF

Info

Publication number
JP4444480B2
JP4444480B2 JP2000323040A JP2000323040A JP4444480B2 JP 4444480 B2 JP4444480 B2 JP 4444480B2 JP 2000323040 A JP2000323040 A JP 2000323040A JP 2000323040 A JP2000323040 A JP 2000323040A JP 4444480 B2 JP4444480 B2 JP 4444480B2
Authority
JP
Japan
Prior art keywords
data
input
input data
output
arithmetic
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
JP2000323040A
Other languages
English (en)
Other versions
JP2002135780A5 (ja
JP2002135780A (ja
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2000323040A priority Critical patent/JP4444480B2/ja
Priority to US09/982,916 priority patent/US6996593B2/en
Publication of JP2002135780A publication Critical patent/JP2002135780A/ja
Publication of JP2002135780A5 publication Critical patent/JP2002135780A5/ja
Application granted granted Critical
Publication of JP4444480B2 publication Critical patent/JP4444480B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、外部入力データに対してフィルタ処理を行うフィルタ処理装置に関するものである。
【0002】
【従来の技術】
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積・伝送する際にはデータ量が膨大になってしまうという問題がある。このため画像の蓄積・伝送に際しては、画像の持つ冗長性を除く、或いは画質の劣化が視覚的に認識し難い程度で画像の内容を変更することによってデータ量を削減する高能率符号化が用いられる。
【0003】
例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJPEGでは、画像データをブロックごと(8画素×8画素)に離散コサイン変換(DCT)でDCT係数に変換した後に、各係数を各々量子化し、さらにエントロピー符号化することにより画像データを圧縮している。ブロックごとにDCT、量子化を行なっているので、復号画像の各ブロックの境界で、所謂ブロック歪みが見える場合がある。
【0004】
一方、新しい静止画像の国際標準符号化方式としてJPEG2000が検討されているが、JPEG2000では、量子化の前に行う前処理の一つとして、ウェーブレット変換が提案されている。ウェーブレット変換は、現行JPEGのようにブロック単位で処理を行うのではなく、入力データを連続的に処理するので、復号画像の劣化が視覚的に見えにくいという特徴がある。
【0005】
図1は、変換用メモリ101と離散ウェーブレット変換部102の動作を説明する図である。
【0006】
図2(a)は、離散ウェーブレット変換部102の基本構成を示すブロックである。同図左は、順方向の離散ウェーブレット変換(以下、DWT)を行う装置(離散ウェーブレット変換部102)の基本構成であり、H0は低域通過特性を持つフィルタ、H1は高域通過特性を持つフィルタである。同図右は逆方向の離散ウェーブレット変換(逆離散ウェーブレット変換)を行う装置の基本構成を示す図である。フィルタの係数の一例を図5に示す。以下、説明を簡略化するため、同図に示す、5×3構成(低域5タップ・高域3タップ)の順方向のフィルタ係数を元に説明を行う。
【0007】
図2(b)に示す入力画像が、左上から主走査方向に離散ウェーブレット変換部102に順次入力されてくる場合を例にとり説明する。画像の大きさはN×Mとする。
【0008】
図2(a)の左側より入力された画像データは、低域通過特性を持つフィルタH0及び、高域通過特性を持つフィルタH1によりフィルタリングされた後、その各々の結果が2:1にダウンサンプリングされ、最終的に入力と同数(N×M)のウェーブレット係数として出力される。
【0009】
垂直方向に上述のフィルタリング処理をするために、画像データを変換用メモリ101に格納し、垂直方向M画素に対して垂直フィルタリング処理を施しながら、水平方向にスキャンする。その結果、図2(c)に示すとおり、低域側のウェーブレット係数Lと高域側のウェーブレット係数Hとの2つのサブバンドを生成する。
【0010】
さらにサブバンドに分割し、水平方向のウェーブレット係数を得るために、ウェーブレット係数L、Hは変換用メモリ101にいったん全て格納される。
【0011】
変換用メモリ101に格納されたウェーブレット係数は水平方向に読み出され、離散ウェーブレット変換部102により、水平方向N個の係数に対してH0及びH1によりフィルタリングを施し、結果は2:1にダウンサンプリングされる。図2(d)に示すように、係数LにH0を施したものがLL、H1を施したものがLHであり、HにH0を施したものがHL、H1を施したものがHHである。LL、LH、HL、HHのそれぞれの大きさは((N/2)×(M/2))である。
【0012】
以上説明した離散ウェーブレット変換方法とは異なる構成方法である、Lifting Schemeと呼ばれる方法が知られている。図3に順方向のLifting Scheme,図4に逆方向のLifting Schemeの基本構成を示す。図中のp,uはLifting係数と呼ばれるもので、図6に5×3フィルターと同一の出力を生成するためのLifting係数の例を示す。
【0013】
図6に示すLifting係数
p=(−1,−1)/2
u=( 1, 1)/4
を元に、以下、図3に示した順方向のLifting Schemeの動作について説明する。
【0014】
Xは入力画像であり、同図に示すように(X0,X1,X2,X3,X4,X5...)である。入力画像は各々、偶数番目の画素、奇数番目の画素に分類される。入力画像のうち、偶数番目の画素をXe、奇数番目の画素をXoとする。分類された画素は、Lifting係数を乗ぜられた後に加算処理をなされ、低域側の係数と、高域側の係数に変換される。具体的に式で示すと、
(高域側の係数) X'o=Xo+p・Xe
(低域側の係数) X'e=Xe+u・X'o
となる。なお、X'o、X'eは、夫々低域側、高域側の係数である。また図中のkは、ウェーブレット係数を正規化するものであるが、ここで説明する内容の趣旨から外れるので、説明を省く。
【0015】
図4の逆方向のLifting Schemeの出力である画素の生成を具体的に式で示すと、
(偶数番目の画素) Xe=X'e−u・X'o
(奇数番目の画素) Xo=X'o−p・Xe
となる。
【0016】
図3,4より、フィルタの構成が変われば、Lifting係数、ならびに対象となる処理画素が異なることになるが、同様にして、順方向、逆方向の係数への変換を行うことができる。
【0017】
このLifting Schemeを用いると、量子化しない(あるいは量子化ステップ1で量子化する)場合、量子化後の情報のロスが無ければ圧縮符号化・復号化して復元されるデータが元のデータとまったく同じになる可逆的な変換を行なうことが出来る。JPEG2000では、Lifting Schemeを採用して可逆的変換を実現している。
【0018】
Lifting Schemeには、その他にフィルタ処理に要する演算量を少なくすることが出来るという特徴もあり、JPEG2000の9×7構成(低域9タップ・高域7タップ)のフィルタにも用いられている。
【0019】
しかしながら、Lifting Schemeを用いてフィルタ処理の演算量を少なくすることが出来るのは、フィルタの方向と処理のスキャン方向が同じ場合、すなわち、画像データを水平方向にスキャンしながら水平方向のフィルタ処理を行なうといった場合である。これは、前のサンプル点で高域と低域側の変換係数を出力するために演算した途中の結果を、次のサンプル点で再利用できるためである。
【0020】
図7に示したLifting Latticeを用いて、Lifting Schemeにおける処理について説明する。
【0021】
水平方向の画素の系列X0,X1,X2,X3,X4...があり、これらの画素の系列に対して水平方向のDWT変換を行うと共に、右方向にスキャンする場合について考える。既に、黒丸で示した位置に対応する変換係数s4とd5が求められているものとする。
【0022】
s4は9×7構成DWTフィルタの低域側の変換係数で、d5は高域側の変換係数である。このs4とd5を求めるために、図7における灰色の丸で示した8つの変換データも既に計算されている。例えば、変換データの1つであるd’1は以下のように計算される。
【0023】
d’1=X1+α・(X0+X2)
他の変換データも入力と乗算係数等が変わるだけで、演算式は同じである。ちなみに、JPEG2000では以下のように係数が定義されている。
【0024】
α = −1.586134342
β = −0.052980118
γ = 0.882911075
δ = 0.443506852
同図において、灰色の丸が全部計算されている場合、次に求めるべき変換係数はs6とd7であり、先に計算した変換データや変換係数を再利用すれば、新たに計算しなければならないのは、変換データとしてd’9とs’8の2つ、変換係数としてs6とd7の2つの計4つだけで済む。1変換係数当たりではわずか2つの計算で済むことになる。
【0025】
1つの計算の内訳は、3つの入力の両端を足し合わせる加算1回、該加算結果にα或いはβ、γ、δ等の係数を掛ける乗算1回、該乗算結果を真中の入力に加算する加算1回(2回目の加算演算)である。以下ではこの計算を格子点演算と呼ぶことにする。
【0026】
再利用する変換係数・データは、d5,s’6,d’7の3つで、計算した値をレジスタに保持するだけで特別な制御も必要なく、簡単に再利用できることが図7のLifting Latticeから容易に理解できる。
【0027】
【発明が解決しようとする課題】
従来は、コーデックの一部の処理として、ウェーブレット変換等のフィルタ処理が必要な場合、順方向変換用のフィルタ処理部と逆方向変換用のフィルタ処理部といった2種類のフィルタ処理部を用意する必要があり、その結果回路規模が増大することとなった。また、フィルタが階層設計に適した構成になっておらず、回路の構造が複雑となり、開発やデバッグに要する時間もかかり、該機能を搭載した製品のコストアップの要因にもなっていた。
【0028】
本発明は以上の問題点に対して鑑みてなされたものであり、乗算と加算を行う演算ユニットを複数用いて、フィルタ処理を行うことによりフィルタ処理回路の構造を簡素化することを目的とする。
【0029】
【課題を解決するための手段】
本発明の目的を達成するために、例えば、本発明のフィルタ処理装置は以下の構成を備える。
即ち、複数の演算ユニットによりフィルタ処理を行うフィルタ処理装置であって、
各演算ユニットは、
フィルタ処理の対象となる2つの入力データの一方を第1入力データ、他方を第2入力データとして入力するデータ入力手段と、
前記データ入力手段から前記第1入力データを取得し、該取得した第1入力データを所定時間だけ遅延させてから出力するデータ遅延手段と、
前記第1入力データよりも前記所定時間だけ過去に前記データ遅延手段が前記データ入力手段から取得した第1過去入力データを前記データ遅延手段から取得し、該取得した第1過去入力データに係数を乗算したデータと、前記第1入力データに係数を乗算したデータと、前記第2入力データと、が加算されたデータを生成する演算手段と、
前記演算手段が前記加算により生成したデータを第1出力データ、前記データ遅延手段が出力した前記第1過去入力データを第2出力データ、として出力する出力手段と
を有し、
前記複数の演算ユニットは直列に接続され、i番目の演算ユニットの第1出力データを(i+1)番目の演算ユニットの第1入力データとし、i番目の演算ユニットの第2出力データを(i+1)番目の演算ユニットの第2入力データとすることを特徴とする。
【0030】
本発明の目的を達成するために、例えば、本発明のフィルタ処理装置は以下の構成を備える。
即ち、入力したデータを所定時間だけ遅延させてから出力するデータ遅延手段と、複数の演算ユニットと、を用いてフィルタ処理を行うフィルタ処理装置であって、
各演算ユニットは、
フィルタ処理の対象となる2つの入力データの一方を第1入力データ、他方を第2入力データとして入力するデータ入力手段と、
前記第1入力データを前記データ遅延手段に出力する出力手段と、
前記データ遅延手段から出力された、前記第1入力データよりも前記所定時間だけ過去に前記出力手段が前記データ遅延手段に出力した第1過去入力データを取得する取得手段と、
前記第1入力データに係数を乗算したデータと、前記第2入力データと、前記取得手段が取得した前記第1過去入力データに係数を乗算したデータと、が加算されたデータを生成する演算手段と、
前記演算手段が前記加算により生成したデータを第1出力データ、前記データ遅延手段が出力した前記第1過去入力データを第2出力データとして出力する手段
を有し、
前記複数の演算ユニットは直列に接続され、i番目の演算ユニットの第1出力データを(i+1)番目の演算ユニットの第1入力データとし、i番目の演算ユニットの第2出力データを(i+1)番目の演算ユニットの第2入力データとすることを特徴とする。
【0031】
【発明の実施の形態】
以下添付図面に従って、本発明を好適な実施形態に従って詳細に説明する。
【0032】
[第1の実施形態]
前記従来例の説明では、水平方向の画素系列:X0,X1,X2,X3,X4,...を図7のフィルタ処理への入力画素として説明したが、以下の実施形態では、図8に示すとおり、9ライン分のデータのうち、縦一列の9画素のデータ(Y0,Y1,Y2,Y3,Y4,...,Y8)を入力するものとする。
【0033】
以下では、垂直方向のフィルタ処理をしながら水平方向にスキャンをするといった処理についてまず考える。
【0034】
垂直方向のフィルタ処理をしながら水平方向にスキャンをすると、9つの入力画素が次に処理する列の9画素に全面的に切り替わるため、1列前の変換係数を演算する時に計算した途中の演算結果を用いることができない。そのため、水平方向にスキャンして列が切り替わるごとに、図8における灰色の丸に対応する変換データをすべて計算する必要がある。黒丸に対応するのは変換係数(低域側の変換係数と高域側の変換係数)であるため、これは元々計算する必要がある。
【0035】
よって、列が切り替わる度に10回の計算、1つの係数当たり5回の計算が必要になる。これは途中の計算結果を再利用できる場合の2.5倍の演算量になる。
【0036】
この問題を解決するために、図9に示す構成を備えるフィルタ処理装置としての本実施形態における離散ウェーブレット変換を行う演算処理部について説明する。
【0037】
図9において、
901、903、905は、ラインデータY8、Y9、Y10を入力する端子、
911、913、915は、夫々のラインにおける変換係数もしくは変換データを格納し、与えられた変換係数もしくは変換データを遅延時間(遅延ライン分)遅延し、遅延時間分前のラインで、同じ列の変換係数もしくは変換データを出力するラインバッファ、
921、923、925、927は、演算された格子点データが得られる端子(格子点とも言う)を表わす。例えば、格子点921には以下の計算で求められる格子点データd’9が得られる。
【0038】
d’9=Y9+α・(Y8+Y10)
図9において、上記の式に基づいて計算されたd’9をラインバッファ911に格納し、格納したd’9をラインバッファ911により2ライン分遅延し、2ライン前の同じ列の変換データd’7を得る。このd’7とd’9を用いてs’8を計算する。又、計算した変換データs’8をラインバッファ913に格納する。以下、d7,s6も同様にしてラインバッファ913、915を用いて求める。そして、同様に、求めたd7をラインバッファ915に格納する。
【0039】
各ラインバッファ911,913,915は、水平方向にスキャンする長さに相当する容量を持ち、遅延時間は2ラインとなる。これは、同じ列のデータを用いた垂直方向フィルタ処理が、タイミング上2ライン毎に行なわれるからである。
【0040】
もう少し詳しく説明すると、夫々のラインバッファから出力される変換係数d5や変換データs’6、d’7を求めるには、Y0からY8までの入力画素で計算できたが、変換係数s6,d7を得るには、Y10の入力を待たねばならないからである。
【0041】
そして、次の垂直フィルタ処理のサイクルでは、水平方向に1列シフトして同様の計算が行なわれ計算結果が夫々のラインに応じたラインバッファに送られる。
【0042】
このように、水平方向にスキャンしながら垂直方向フィルタ処理をして変換係数や変換データを次々とラインバッファに入力して蓄える。この時用いたラインデータ(入力画素)Y8と新たなラインデータY9、Y10を用いて次の水平スキャンを行なう。
【0043】
この時、上記ラインデータに加え、3つのラインバッファ915,913,911から出力されるd5,s’6,d’7を用いることで、4回の格子点演算を行なうことで、2つの変換係数s6,d7を求めることができる。もちろん、次の水平スキャンに備え、上述の通り変換係数d7と変換データs’8、d’9を夫々のラインバッファ915,913,911に再入力する。
【0044】
さらに次の水平スキャンでは、ラインデータY10,Y11,Y12と、ラインバッファの出力d7,s’8、d’9を用いることで2つの変換係数s8,d9を求めることができる。
【0045】
このようにして、垂直方向フィルタ処理をしながら水平方向へスキャンする場合にも、格子点演算2回につき1変換係数を求めることができる。
【0046】
以上説明した図9の構成はフィルタ処理後の変換係数を元の値に戻すための逆変換処理にも用いることができて、その場合の構成は図10に示すものとなる。これは、Lifting Latticeを用いたフィルタ処理の類似性から明らかなことなので、ここでの説明を省略する。
【0047】
上記図9の構成と同じ機能のものは、図11の構成でも実現できる。ラインデータY8を、新たに設けたラインバッファ1101に蓄えて、次の水平スキャンでは、新たなラインデータY9とY10のみを外部から入力し、既に入力済みのラインデータY8はラインバッファ1101から、Y10を2ライン分遅延させることで供給するようにしたものである。
【0048】
<変形例1>
本変形例1では、図12に示す格子点データ演算ユニットを図13のように複数接続することによって、フィルタ演算処理部を形成し、前記垂直方向のフィルタ処理を行なうものである。
【0049】
図12に示す格子点データ演算ユニットは、図11において4つの格子点各々に対応するデータを演算する演算部の内、1つの格子点のデータを演算する部分と該演算に要するデータの入力元となるラインバッファ1つを取り出したものである。よって、演算機能等はすでに説明した内容と同様である。
【0050】
一方、図13における、1301、1303、1305、1307は、それぞれ図12に示した格子点データ演算ユニットであり、各ユニット毎に乗算係数が異なるが、基本的な構成は同じである。図13に示したフィルタ演算処理部の構成は、前記図11に示した演算処理部の構成を上記ユニット4つに置き換えただけであるため、機能的には図11とまったく同じである。
【0051】
逆変換用(逆方向のフィルタ処理)のフィルタ演算処理部も同一ユニットを用いて、図14のように構成できる。図13との違いは、各ユニット内の乗算係数が上下で入れ替わって正負の符号が反転していることである。
【0052】
本変形例で示した格子点データ演算ユニットを用いた上述のフィルタ演算処理部、及び逆変換のフィルタ演算処理部は、夫々のパラメータ(α、β、γ、δ)を調節した図12に示した格子点データ演算ユニットを用いて実現可能である。つまり、共通のハードウェア(ソフトウェアでも良いが)である格子点データ演算ユニットを用いることで、その両方のフィルタ処理(順方向、逆方向のフィルタ処理)が実現できる。
【0053】
また、上述の格子点データ演算ユニットは、遅延部がラインバッファに限定されるものではなく、n個のレジスタからなる遅延部であってもよい。
【0054】
一例として、図15にn=2の場合を示す。
【0055】
一方、前記遅延部を格子点データ演算ユニット内に持たず、外部に共通にアクセスできるメモリを持ち、該メモリで遅延を実現することも可能である。その場合の格子点データ演算ユニットの構成を図16、図16に示した格子点データ演算ユニットを用いたフィルタ演算処理部の構成を図17に示す。
【0056】
これ以降の説明に用いる格子点データ演算ユニットは、図の簡略化のため、該格子点データ演算ユニット内に遅延部を持っているものとして話を進めるが、遅延部を外部に持つ場合にも適用できることは、これまでの説明により明らかである。
【0057】
また、各格子点データ演算ユニット内の乗算演算の係数は定数であるため、汎用の乗算器を用いる必要は無く、被乗数の足し合わせ方が決まっている定数乗算器を用いることができる。
【0058】
また、本変形例で示した上述のフィルタ演算処理部の構成は、ウェーブレット変換などの特定のフィルタ処理に限定されるものではなく、一般のフィルタ処理にも適用可能であると同時に、以下の変形例においても同様であることは後述の説明により明らかである。
【0059】
<変形例2>
第1の実施形態における変形例2は、前述の各格子点データ演算ユニットの入力側に該ユニットへの入力を選択するセレクタを配し、該セレクタで選択するデータを順方向変換か逆方向変換かで切り替えることにより、共通のユニットを使用して、順方向と逆方向の両方の変換を実現するものである。
【0060】
本変形例におけるフィルタ演算処理部の構成を図18に示す。図18において、
1800は、変換の種類(順方向/逆方向)を指定する制御信号を入力する端子である。
【0061】
1801〜1804は、それぞれパラメータα、β、γ、δを有し、定数乗算器と該乗算結果を加減算する機能を持つ格子点データ演算ユニットである。
【0062】
1811〜1814は、端子1800を介して入力される前記変換の種類を指定する制御信号に基づいて、出力を入力画素データか変換係数(もしくは係数データ)かを切り替える4入力2出力のセレクタである。
【0063】
1821、1823は、変換前の画像データを入力する端子、
1825、1827は、変換後の係数データを入力する端子
1831、1833は、順方向変換処理によって求められたデータ(変換係数)を出力する端子、
1841、1843は、逆方向変換処理によって求められたデータ(入力画素データ)を出力する端子、
である。
【0064】
端子1800から入力される変換の種類を指定する制御信号に基づいて、各セレクタ1811〜1814は選択出力するデータを切り替えると共に、各格子点データ演算ユニット1801〜1804では順方向変換時には加算、逆方向変換時には減算を行なう。
【0065】
そのため各格子点データ演算ユニット1801〜1804は、定数を乗算した結果を加減算できるように図19に示す構成に変更した。回路構成上の実質的な違いは、加算器を加減算器1901に置き換えたことである。
【0066】
端子1800に順方向変換を指定する制御信号が入力されると、各セレクタ1811〜1814は左側の2入力(同図のセレクタ1811ではY9,Y10)を選択して出力すると共に、各格子点データ演算ユニット1801〜1804は、前記定数乗算結果を加算するモード(各格子点データ演算ユニットの反転回路1901が加算モード)となり、図13と等価な構成となる。
【0067】
一方、端子1800に逆方向変換を指定する制御信号が入力されると、各セレクタ1811〜1814は右側の2入力(同図では一段下の格子点データ演算ユニットの2出力。ただし、セレクタ1814に関しては、s10,d11の2入力)を選択して出力すると共に、各格子点データ演算ユニット1811〜1814は前記定数乗算結果を減算するモード(各格子点データ演算ユニットの加減算器1901は減算モード)となり、図14と等価な構成となる。
【0068】
図10からも分かるとおり、Y7はC=−αとなるときのユニット(1801)から、Y8はC=−βとなるときのユニット(1802)から出力されるので、端子1841の方からY7が、端子1843の方からY8が出力されることになる。
【0069】
上記4入力2出力のセレクタ1811〜1814では、順方向変換時と逆方向変換時では変換出力が別々の端子になってしまうが、セレクタ1812、1813を図20(a),(b)に示すクロススイッチ2001,2003に置き換えると、図21に示すとおり、順方向変換時も逆方向変換時も同じ端子2101,2103から変換出力を取り出せる。
【0070】
<変形例3>
本変形例のフィルタ演算処理部は、Lifting Schemeによるフィルタ処理の最後に行なうスケーリングのための乗算処理を、順方向変換と逆方向変換とで同一の乗算器を用いて処理する構成に関する。
【0071】
スケーリングパラメータをKとすると、JPEG2000では、最終的な高域変換係数を得るために、前記Lifting演算後の高域変換係数にKを乗算し、最終的な低域変換係数を得るために、前記Lifting演算後の低域変換係数に1/Kを乗算する。
【0072】
図13に示したフィルタ演算処理部としての本変形例の垂直9/7−DWT演算処理部に、スケーリングのための乗算器(2201,2203)を付加すると、図22に示す構成となる。同図において2201が高域変換データにKを乗算する乗算器、2203が低域変換データに1/Kを乗算する乗算器である。
【0073】
また、図18に示した垂直9/7−DWT/IDWT演算処理部にスケーリングのための乗算器(2301,2303、2311、2313)を付加すると、図23に示す構成となる。図23から分かるように、DWT演算スケーリング用に2個の乗算器2301、2303、IDWT演算スケーリング用に2個の乗算器2311、2313が必要である。
【0074】
同時に4つの乗算器を使うことは無く、ある時点で使用するのはどちらか一方の2個の乗算器だけである。
【0075】
本変形例は、前記変形例2の規則性をなるべく踏襲して、両変換モードで同じ2つの乗算器を使うようにした。
【0076】
図24に本変形例の垂直9/7−DWT/IDWT演算処理部の構成を示す。セレクタ2401を格子点データ演算ユニット1804の出力段に設け、該セレクタ2401の出力段に、共通に用いる2つの乗算器2411、2413を設けた。その他の構成並びに構成要素は前記変形例2で示した図18と同じである。
【0077】
<変形例4>
本変形例では、図9に示した演算処理部の変形例として、図25に示す演算処理部を示す。図9に示した演算処理部では、ラインバッファ915にはd7を入力していたが、変変形例では、d7に予めパラメータδが乗算されているδ・d7を入力する。そしてδ・d7を入力したラインバッファ915は同様にパラメータδが乗算されている出力値δ・d5を出力する。それ以外の構成及び動作は、図9に示した演算処理部と同じである。
【0078】
この構成で、図9に示した演算処理部が行う演算の量に比べて演算量の増減はない。なお本変形例ではd7を例として説明したが、これに限定されずに他のd’9やs’8のうちのいくつか、もしくは全部であっても良い。その場合、d’9を例に取り説明すると、ラインバッファ911にはβ・d’9が入力され、その出力はβ・d’7で、s’8の演算の際には、このβ・d’7にβの乗算は行わない。
【0079】
<変形例5>
本変形例では、図9に示した演算処理部の変形例として、図26に示す演算処理部を示す。図9に示した演算処理部では、ラインバッファ915にはd7を入力していたが、本変形例では(δ・d7+s’8)を入力し、更に、このラインバッファ915に入力する(δ・d7+s’8)を生成するために、δ・d7に、s’8を加算する加算器2601が備わっている。
【0080】
図26では、加算器の数が増えてはいるが、変換係数s6の演算に必要な加算処理が、例えば変形例4では3つの項の加算であったが、本変形例では2つの項の加算になっており、全体としての演算量は、例えば変形例4と同じである。
【0081】
<変形例6>
上述の変形例では、1ライン前の同一列データをから計算した3つの変換データをそれぞれ3つの遅延部で遅延させたが、本変形例では、1ライン前の同一列データをから計算した1つの変換係数と格子上の変換データを計算する途中の演算結果をそれぞれ第1、第2の遅延部で遅延させ、新たな変換係数の計算に用いる。
【0082】
本変形例の演算処理部の概略構成を図27に示す。図9に示した演算処理部において、遅延部913,915の2つを用いている。ラインバッファ915には、第1の実施形態と同様に、変換係数d7を格納するが、ラインバッファ913には、β・(d’7+d’9)を格納し、このβ・(d’7+d’9)を計算するために必要となるラインデータY6,Y7,Y8,Y9,Y10は、図27の上部にある5つの端子から入力し、変換係数d7を計算するのに必要なその他のデータβ・(d’5+d’7)はラインバッファ913から与えられる。水平方向にスキャンしながら垂直フィルタ処理をするタイミング等は前記第1の実施形態とまったく同じであるため、これ以上の細かい説明は省略する。
【0083】
本変形例では演算量が増えるが、遅延部の数は前記第1の実施形態より少なくて済む。具体的には、1係数当たり3回の格子点演算が必要になり(前記第1の実施形態では2回)、遅延部は第1、第2の2つで済む。Lifting Schemeを用いた変換では、逆方向の変換は格子点演算で用いる係数の順序と負号を逆に変換するだけで、まったく同様の構成で処理できる。すなわち、上述した各種実施形態を、図28に示すLifting Latticeに適用した構成で、逆変換処理が行なえる。
【0084】
[第2の実施形態]
第1の実施形態及びその変形例における離散ウェーブレット変換は、すべてハードウェアに関するもののみであったが、演算処理をそのまま数式化し、ラインバッファとして配列を確保することで、ほとんどそのままソフトウェア処理に応用できる。よって、ウェーブレット係数変換装置のみならずウェーブレット係数変換方式としてもよい。
【0085】
以下、図29のフローチャートを用いて説明する。処理すべき画像データは不図示の入力デバイスから入力され、このフローチャートに従ったプログラムコードは不図示のCPUがアクセス可能なメモリ上に格納されているものとする。なお、以下で用いるインデックスnはn>1とする。
【0086】
ステップS2901では、処理する画像データ3つ(Yn+2,Yn+3,Yn+4)を不図示のメモリから読み出す。
【0087】
ステップS2903では、3つの格子点データd’n+1,S’n、dn-1の夫々を格納している、ラインバッファに相当する配列H1,H2,H3から読み出す。
【0088】
ステップS2905では、d’n+3=Yn+3+α・(Yn+2+Yn+4)を演算する。
【0089】
ステップS2907では、上記格子点データd’n+3を配列H1に格納する。
【0090】
ステップS2909は、S'n+2+β・(d'n+1+d'n+3)を演算するステップ、
ステップS2911では、上記格子点データS'n+2を配列H2に格納する。
【0091】
ステップS2913では、d'n+1=d'n+1+γ・(S'n+2+S'n)を演算する。
【0092】
ステップS2915では、上記変換係数dn+1を配列H3に格納するステップ、
ステップS2917では、Sn=S'n+δ・(dn-1+dn+1)を演算する。
【0093】
ステップS2919では、上記変換係数Snとdn+1を次の処理ステージへ出力する。
【0094】
各ステップの処理内容や全体の処理については、既に説明した実施形態から明白であるのでその説明は省略する。また、演算した格子点データや変換係数の格納先として、上記配列では無く、単なる変換あるいはレジスタ等も考えられる。
[他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0095】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0096】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0097】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した(図29に示す)フローチャートに対応するプログラムコードが格納されることになる。
【0098】
【発明の効果】
以上の説明により、本発明によれば、乗算と加算を行う演算ユニットを複数用いて、フィルタ処理を行うことによりフィルタ処理回路の構造を簡素化することができた。
【図面の簡単な説明】
【図1】従来例における変換用メモリ101と離散ウェーブレット変換部102の動作を説明する図である。
【図2】(a)は、離散ウェーブレット変換部102の基本構成を示すブロック図、(b)は入力画像を示す図、(c)は生成されたLサブバンド、Hサブバンドを示す図、(d)はHH、HL、LH、LLサブバンドを示す図である。
【図3】順方向のLifting Schemeの基本構成を示す図である。
【図4】逆方向のLifting Schemeの基本構成を示す図である。
【図5】フィルタ係数を示す図である。
【図6】Lifting係数を示す図である。
【図7】Lifting Latticeの構成を示す図である。
【図8】Lifting Latticeの構成を示す図である。
【図9】本発明の第1の実施形態における順方向の演算ユニットの構成を示す図である。
【図10】本発明の第1の実施形態における逆方向の演算ユニットの構成を示す図である。
【図11】図9に示された演算ユニットと同じ機能を有し、他の構成をとる演算ユニットの構成を示す図である。
【図12】本発明の第1の実施形態における変形例1で用いる格子点データ演算ユニットの構成を示す図である。
【図13】図12に示したユニットを複数接続することで形成されるフィルタ演算処理部の構成を示す図である。
【図14】本発明の第1の実施形態における変形例1で用いる逆変換用のフィルタ演算処理部の構成を示す図である。
【図15】格子点データ演算ユニットをn個のレジスタからなる遅延部で構成した場合、一例として、n=2とした場合の構成を示す。
【図16】外部に共通にアクセスできるメモリを持ち、該メモリで遅延を実現する場合の格子点データ演算ユニットの構成を示す図である。
【図17】図16に示した格子点データ演算ユニットを用いたフィルタ演算処理部の全体の構成を示す図である。
【図18】本発明の第1の実施形態における変形例2におけるフィルタ演算処理部の構成を示す図である。
【図19】図18に示した格子点データ演算ユニットを変更した場合の構成を示す図である。
【図20】クロススイッチを示す図である。
【図21】本発明の第1の実施形態における変形例2のフィルタ演算処理部の構成を示す図である。
【図22】図13に示した垂直9/7−DWT演算処理部にスケーリングのための乗算器を付加した構成を示す図である。
【図23】図18に示した垂直9/7−DWT/IDWT演算処理部にスケーリングのための乗算器を付加した構成を示す図である。
【図24】本発明の第1の実施形態における変形例3の垂直9/7−DWT/IDWT演算処理部の構成を示す図である。
【図25】本発明の第1の実施形態における変形例4の演算ユニットの構成を示す図である。
【図26】本発明の第1の実施形態における変形例5の演算ユニットの構成を示す図である。
【図27】本発明の第1の実施形態における変形例6の演算ユニットの構成を示す図である。
【図28】逆変換のLifting Latticeを示す図である。
【図29】本発明の第2の実施形態である離散ウェーブレット変換処理方式のフローチャートである。

Claims (2)

  1. 複数の演算ユニットによりフィルタ処理を行うフィルタ処理装置であって、
    各演算ユニットは、
    フィルタ処理の対象となる2つの入力データの一方を第1入力データ、他方を第2入力データとして入力するデータ入力手段と、
    前記データ入力手段から前記第1入力データを取得し、該取得した第1入力データを所定時間だけ遅延させてから出力するデータ遅延手段と、
    前記第1入力データよりも前記所定時間だけ過去に前記データ遅延手段が前記データ入力手段から取得した第1過去入力データを前記データ遅延手段から取得し、該取得した第1過去入力データに係数を乗算したデータと、前記第1入力データに係数を乗算したデータと、前記第2入力データと、が加算されたデータを生成する演算手段と、
    前記演算手段が前記加算により生成したデータを第1出力データ、前記データ遅延手段が出力した前記第1過去入力データを第2出力データ、として出力する出力手段と
    を有し、
    前記複数の演算ユニットは直列に接続され、i番目の演算ユニットの第1出力データを(i+1)番目の演算ユニットの第1入力データとし、i番目の演算ユニットの第2出力データを(i+1)番目の演算ユニットの第2入力データとすることを特徴とするフィルタ処理装置。
  2. 入力したデータを所定時間だけ遅延させてから出力するデータ遅延手段と、複数の演算ユニットと、を用いてフィルタ処理を行うフィルタ処理装置であって、
    各演算ユニットは、
    フィルタ処理の対象となる2つの入力データの一方を第1入力データ、他方を第2入力データとして入力するデータ入力手段と、
    前記第1入力データを前記データ遅延手段に出力する出力手段と、
    前記データ遅延手段から出力された、前記第1入力データよりも前記所定時間だけ過去に前記出力手段が前記データ遅延手段に出力した第1過去入力データを取得する取得手段と、
    前記第1入力データに係数を乗算したデータと、前記第2入力データと、前記取得手段が取得した前記第1過去入力データに係数を乗算したデータと、が加算されたデータを生成する演算手段と、
    前記演算手段が前記加算により生成したデータを第1出力データ、前記データ遅延手段が出力した前記第1過去入力データを第2出力データとして出力する手段
    を有し、
    前記複数の演算ユニットは直列に接続され、i番目の演算ユニットの第1出力データを(i+1)番目の演算ユニットの第1入力データとし、i番目の演算ユニットの第2出力データを(i+1)番目の演算ユニットの第2入力データとすることを特徴とするフィルタ処理装置。
JP2000323040A 2000-10-23 2000-10-23 フィルタ処理装置 Expired - Fee Related JP4444480B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000323040A JP4444480B2 (ja) 2000-10-23 2000-10-23 フィルタ処理装置
US09/982,916 US6996593B2 (en) 2000-10-23 2001-10-22 Filter processing apparatus and its control method, program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000323040A JP4444480B2 (ja) 2000-10-23 2000-10-23 フィルタ処理装置

Publications (3)

Publication Number Publication Date
JP2002135780A JP2002135780A (ja) 2002-05-10
JP2002135780A5 JP2002135780A5 (ja) 2007-11-01
JP4444480B2 true JP4444480B2 (ja) 2010-03-31

Family

ID=18800807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000323040A Expired - Fee Related JP4444480B2 (ja) 2000-10-23 2000-10-23 フィルタ処理装置

Country Status (1)

Country Link
JP (1) JP4444480B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283839A (ja) 2002-03-19 2003-10-03 Sanyo Electric Co Ltd 画像変換方法および装置

Also Published As

Publication number Publication date
JP2002135780A (ja) 2002-05-10

Similar Documents

Publication Publication Date Title
US5867602A (en) Reversible wavelet transform and embedded codestream manipulation
US7068849B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6195465B1 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
JP4493215B2 (ja) ウェーブレット係数の方向性予測コード化法を用いた画像圧縮
US6996593B2 (en) Filter processing apparatus and its control method, program, and storage medium
US7577308B2 (en) Image data generation with reduced amount of processing
US20060222254A1 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
JPH11510339A (ja) フィルタリングを有するjpeg圧縮回路
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
JP4514169B2 (ja) デジタル信号変換装置及び方法
JP2000341689A (ja) ウェーブレット逆変換装置及び方法、並びにウェーブレット復号装置及び方法
US6938105B2 (en) Data apparatus and method having DMA circuitry to efficiently transfer multivalued bit-plane data
JP4444480B2 (ja) フィルタ処理装置
JP4266512B2 (ja) データ処理装置
Zhang et al. Computational restructuring: Rethinking image processing using memristor crossbar arrays
JP2001285643A (ja) 画像変換装置及び方法
JP3709106B2 (ja) 画像圧縮および伸張装置
JP2003283839A (ja) 画像変換方法および装置
TWI382768B (zh) 具有執行重疊濾波以及核心轉換的運算方法及其裝置
JP2002101310A (ja) フィルタ処理装置及び方法
JP4700838B2 (ja) フィルタ処理装置
JP2007049485A (ja) 離散ウェーブレット変換装置及び方法、並びにプログラム及び記録媒体
JPH0775066A (ja) 画像信号変換装置
JP3818484B2 (ja) 符号化動画像データの復号装置および記録媒体
GB2618869A (en) A method of processing source data

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070907

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070907

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091102

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100114

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees