JP4217408B2 - Filter processing device - Google Patents

Filter processing device Download PDF

Info

Publication number
JP4217408B2
JP4217408B2 JP2002024110A JP2002024110A JP4217408B2 JP 4217408 B2 JP4217408 B2 JP 4217408B2 JP 2002024110 A JP2002024110 A JP 2002024110A JP 2002024110 A JP2002024110 A JP 2002024110A JP 4217408 B2 JP4217408 B2 JP 4217408B2
Authority
JP
Japan
Prior art keywords
input
data
frequency
low
frequency conversion
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
JP2002024110A
Other languages
Japanese (ja)
Other versions
JP2002359849A (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.)
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 JP2002024110A priority Critical patent/JP4217408B2/en
Priority to US10/092,573 priority patent/US6904177B2/en
Publication of JP2002359849A publication Critical patent/JP2002359849A/en
Application granted granted Critical
Publication of JP4217408B2 publication Critical patent/JP4217408B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明はフィルタ処理装置に関し、更に詳しくは、画像データをウェーブレット変換したり、ウェーブレット変換係数を画像データに逆変換する等のフィルタ処理装置に関する。
【0002】
【従来の技術】
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積・伝送する際にはデータ量が膨大であるという問題がある。このため画像の蓄積・伝送に際しては、画像の持つ冗長性を除く、或いは画質の劣化が視覚的に認識し難い程度で、画像の内容を変更することによってデータ量を削減する高能率符号化が用いられる。
【0003】
例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJPEGでは、画像データをブロック(8画素×8画素)ごとに離散コサイン変換(DCT)して、DCT係数に変換した後に、各係数を各々量子化し、さらにエントロピー符号化することにより画像データを圧縮している。しかしこの方式では、ブロックごとにDCT、量子化を行なっているため、復号画像の各ブロックの境界で、所謂ブロック歪みが現れる場合がある。
【0004】
一方、新しい静止画像の国際標準符号化方式としてJPEG2000が検討されているが、JPEG2000では、量子化の前に行う変換処理として、ウェーブレット変換が提案されている。ウェーブレット変換は、現行JPEGのようにブロック単位で処理を行うのではなく、入力データを連続的に処理するので、復号画像の劣化を視覚的に分かりにくくできるといった特徴がある。
【0005】
JPEG2000で使われているウェーブレット変換では、リフティング機構と呼ばれる方法で処理をすることで、少ない演算量で効率良く変換処理を行うことができる。
【0006】
図12に順方向のリフティング機構、図13に逆方向のリフティング機構におけるシグナルフローを表わす図を示す。図の中のα、β、γ、δはリフティング係数と呼ばれるものである。
【0007】
まず、図12に示すリフティング機構の動作について説明する。
【0008】
入力画素を、入力される順にX0、X1、X2、X3、X4、X5、… のように順に表わす。該入力画素は、分類ユニット201にて、偶数画素系列と奇数画素系列とに分類され、分類ユニット201の一方の出力端子(図12では上側)からは添字が偶数の画素X0、X2、X4、…(すなわちX2n)が、もう一方の出力端子(図12では下側)からは添字が奇数の画素 X1、X3、X5、…(すなわちX2n+1)が出力される。
【0009】
初段のリフティング 処理では、偶数画素系列に対しリフティング係数αを乗し、連続する2個の偶数画素の乗算結果を、該2画素の中央に位置する奇数画素系列中の画素に加算する。
【0010】
これを一般化した式で表現すると、以下のようになる。
【0011】
2n+1 = X2n+1 + α・X2n+ α・X2n+2 …(1)
2段目のリフティング処理では、新たに得られた奇数画素系列 D1、D3、D5、…に対しリフティング係数βを乗算し、連続する2個の奇数画素の乗算結果を、該2画素の中央に位置する偶数画素系列中の画素に加算する。
【0012】
これを一般化した式で表現すると、以下のようになる。
【0013】
2n+2 = X2n+2+ β・D2n+1+ β・D2n+3 …(2)
3段目のリフティング 処理では、リフティング係数γを用いて初段と同様に、また、4段目のリフティング処理では、リフティング係数δを用いて2段目と同様に処理する。3段、4段目のリフティング処理内容を表わす式は、それぞれ下記のようになる。
【0014】
2n+1 = D2n+1 + γ・E2n + γ・E2n+2 …(3)
2n+2 = E2n+2 + δ・H2n+1 + δ・H2n+3 …(4)
また、図12中、Kはウェーブレット係数を正規化するものであるが、本発明の本質を説明するにあたって特に関係ないことであるので、ここでは説明を省略する。
【0015】
正規化処理を無視すれば、3段、4段目のリフティング処理によって得られる、Hn、Ln は各々高域変換係数と低域変換係数に対応する。
【0016】
次に、図13に示す逆方向のリフティング機構のシグナルフローについて簡単に説明する。まず始めに、順方向のリフティング機構における正規化処理に対応して、逆の係数を掛けた後、4段のリフティング処理を行う。各段の処理内容を以下にまとめて式で表わす。
【0017】
(1段目) E2n+2 = L2n+2 − δ・H2n+1 − δ・H2n+3 …(5)
(2段目) D2n+1 = H2n+1 − γ・E2n − γ・E2n+2 …(6)
(3段目) X2n+2 = E2n+2 − β・D2n+1 − β・D2n+3 …(7)
(4段目) X2n+1 = D2n+1 − α・X2n − α・X2n+2 (8)
上記(5)(6)(7)(8)式は、各々(4)(3)(2)(1)式を移項することにより得られるものである。
【0018】
図12及び図13に示すリフティング機構を別の視点から表現したものが、図14及び図15に示すリフティング格子構造である。同図において、□は入力データを、〇は格子点(あるいは格子点データ演算器)を表わし、〇から出ている矢印は格子点データの流れを示す。これらの図はリフティング機構における基本処理(前記(1)〜(8)式の処理)並びに該処理によって得られる新たなデータを1つの格子点に対応させたものである。
【0019】
図14に示す順方向のリフティング格子構造では、1つの格子点データは前記(1)〜(4)式のいずれかを用いて計算される。
【0020】
図15に示す逆方向のリフティング格子構造では、1つの格子点データは前記(5)〜(8)式のいずれかにより計算される。
【0021】
普通のフィルタは、データが1つ入力されるごとに1つの出力が計算されるが、図14のリフティング格子構造から解かるように、リフティング演算処理では、新たなデータが2つ用意されてはじめて、2つのデータ出力が可能になる。
【0022】
例えば、X8までの入力データでは、出力データとして L4、H5 まで演算できるだけである。次に X9だけが新たに用意されても、新たに演算できる格子点データは何も無い。しかし、 X10 が用意されることにより、新たに D9、E8、H7、L6 が演算可能になる。更に、X11、X12 の2つの入力データが用意されて、はじめて出力データである H9、L8が演算可能になる。
【0023】
このように、リフティング演算に基づくフィルタ処理では、新たな2つの入力データが用意されるごとに2つの出力(変換係数)が計算可能となる。図15に示す逆変換処理においても同様に、2つの変換係数が用意されるごとに2つの復元データが計算可能になることがわかる。
【0024】
また、垂直方向の逆変換処理に当てはめて見てみると、低域と高域の2種類の変換係数9ライン分を水平スキャン順序で入力することにより、2ライン分の復元データが水平スキャン順序で同時に計算され、出力される。
【0025】
この点が、リフティング演算によるフィルタ処理(ウェーブレット変換)とそうでないフィルタ処理との大きな違いである。
【0026】
上記のように、水平方向(又は垂直方向)のウェーブレット変換処理を行うウェーブレット変換部からペアで出力される低域と高域の変換係数は、それぞれ垂直方向(又は水平方向)のウェーブレット変換処理を行う次のウェーブレット変換部にて処理され、該2回の変換処理により水平・垂直方向の2次元ウェーブレット変換処理が行なわれる。
【0027】
2次元ウェーブレット変換を行う処理部は、特開平10−283342に示されているように、従来は図16のように構成されていた。同図において、501は水平方向の1次元DWT(Discrete Wavelet Transform)処理部(以下、「水平DWT処理部」と呼ぶ。)、503及び505は垂直方向の1次元DWT処理部(以下、垂直DWT処理部」と呼ぶ。)、511及び513はバッファである。
【0028】
水平DWT処理部501は、水平方向に走査されたラスタースキャンデータを受け取って処理し、処理毎に水平方向の低域と高域の2つの変換係数を出力する。バッファ511、513は、前記水平DWT処理部501から出力される低域と高域の変換係数を分けて、それぞれ1水平ライン分の変換係数を格納する。
【0029】
一方、垂直DWT処理部503及び505では、垂直方向の1次元ウェーブレット変換処理をした直後、その内部バッファに、該変換処理に用いた複数ライン分の変換係数が格納されている。変換処理が終了すると、この内2ライン分の変換係数は不要となり、新たな2ライン分の変換係数が水平DWT処理部501及びバッファ511及び513から入力されると、次の垂直ウェーブレット変換処理が可能になる。そして、垂直DWT処理部503及び505は、入力された新たなセットの変換係数を用いて演算処理を行い、垂直方向の低域と高域の2つの変換係数をそれぞれ出力する。
【0030】
このように、水平と垂直の2種類のウェーブレット変換処理を施すことにより、垂直DWT処理部503からは、LL(垂直‐低域、水平‐低域)、HL(垂直‐高域、水平‐低域)の2種類の変換係数が、垂直DWT処理部505からは、LH(垂直‐低域、水平‐高域)、HH(垂直‐高域、水平‐高域)の2種類の変換係数が出力される。
【0031】
図16の構成では、水平DWT処理部501は、毎サイクル2つのデータを入力すれば100%の稼働率で動作させることが可能である。それに対し、2つ存在する垂直DWT処理部503及び505は、それぞれバッファ511と513に次の水平1ライン分の変換係数を蓄えている間、何も処理せずに休止しており、さらに次の2ライン目の変換係数が水平DWT処理部501から垂直DWT処理部503及び505に入力する時に、バッファ511及び513に蓄えた変換係数を読み出すことで、2ライン分の変換係数を用いて垂直ウェーブレット変換処理を行う。
【0032】
従って、2つの垂直DWT処理部503及び505が動作する期間は、新たに垂直DWT処理部503及び505に入力される2ライン変換係数の内、水平DWT処理部501が2ライン目の変換係数を処理、出力している期間と同じである。つまり、2つの垂直DWT処理部は各々50%の稼働率で動作することになる。
【0033】
【発明が解決しようとする課題】
上述したように、従来の2次元ウェーブレット変換処理では、水平方向と垂直方向の変換処理の内、後段に配置される変換処理部は2つ必要である。すなわち、同じ量の処理をするのに、前段では1つの変換処理部で済むが、後段では2つの変換処理部を用いるのでハードウェア資源を有効に活用することができず、回路規模が大きくなるという問題があった。
【0034】
本発明は上記問題点を鑑みてなされたものであり、ハードウェア資源をより有効に活用し、より小さいハードウエア構成で2次元ウェーブレット変換処理装置を実現することを目的とする。
【0035】
【課題を解決するための手段】
上記目的を達成するために、本発明のフィルタ処理装置は、以下の構成を備える。すなわち、
画像データを、リフティング格子構造の複数の演算ユニットを用いて、ウェーブレット変換するためのフィルタ装置であって、
ウェーブレット変換対象の画像データの水平、又は、垂直方向のいずれか一方の第1の方向をY軸、当該第1の方向に直交する第2の方向をX軸とし、前記X座標の画素位置x、Y座標の画素位置yの画素データをPx,yと定義し、前記画像データ中の、同じY座標位置の画素データの並びを行と定義したとき、
第i処理サイクル(i=0,1,2,…)で、前記第1の方向に隣り合う2つの画素データの組{Px+i,y,Px+i,y+1}を入力し、1行前に入力した画素データPx+i,y-1と、少なくとも当該画素データPx+i,y-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Px+i,y,Px+i,y+1}から、1つの低周波変換係数Liと、1つの高周波変換係数Hiとを出力する第1の方向のウェーブレット変換手段と、
前記第1の方向のウェーブレット変換手段の2処理サイクル分で生成された周波数変換係数Li,Hi及びLi+1,Hi+1を入力する毎に、当該4つの周波数変換係数を並べ替え、低周波換係数の組{Li,Li+1}と、高周波変換係数の組{Hi,Hi+1}をそれぞれを1処理サイクル単位に出力する並び替え手段と、
前記並び替え手段から低周波変換係数の組{Li,Li+1}を入力した1処理サイクルでは、1行前に入力した低周波変換係数Li-1と、少なくとも当該低周波変換係数Li-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Li,Li+1}から、1つの低低周波変換係数LLと、1つの低高周波変換係数LHとを出力し、前記並び替え手段から高周波変換係数の組{Hi,Hi+1}を入力した1処理サイクルでは、1行前に入力した高周波変換係数Hi-1と、少なくとも当該高周波変換係数Hi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Hi,Hi+1}から、1つの高低周波変換係数HLと、1つの高高周波変換係数HHとを出力する第2の方向ウェーブレット変換手段とを備える。
【0041】
また、本発明の好適な一態様によれば、前記第2の方向のウェーブレット変換手段は、FIRフィルタである。
【0051】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【0052】
図1は、図14に示す各格子点における演算を行う格子点データ演算ユニットを示し、図2は、フィルタ処理のリフティング演算を行うための、図1に示す各格子点データ演算ユニットを多段接続した構成を示す。
【0053】
図1において、601及び603は2つのデータを入力する端子、607は演算した格子点データを出力する端子、621は端子603からの入力データを格納するバッファ、609はバッファ621の出力データを外部へ出力する端子、611はバッファ621の出力データと端子603からの入力データを加算する加算器、613は、加算機611の加算結果に係数C(α, β, γ, δの内の1つ)を乗算する乗算器、615は演算に用いる3つのデータの中央に位置する入力データに、乗算器613の乗算結果を加算する加算器である。
【0054】
まず、本発明の実施の形態における演算方式の概要を、図14、図1及び図2を参照しながら簡単に説明する。なお、以下の説明においては、図14の各格子点から出力されるデータも、格子点と同じ参照名で呼ぶ。
【0055】
例えば、9個の入力データX0、X1、X2、X3、X4、X5、X6、X7、X8を処理する場合、10個の格子点データ(D1、D3、D5、D7、E2、E4、E6、H3、H5、L4)を演算することにより、低域変換係数L4と高域変換係数H5を出力することができる。
【0056】
次にX9、X10の2つのデータが新たに入力データとして加わった場合、上記と同様に10個の格子点データを演算することにより、低域変換係数L6と高域変換係数H7を出力することもできるが、X9、X10が入力される以前に演算した格子点データを利用すれば、新たに計算しなければならないのは、D9、E8、L7、L6の4つだけで済む。
【0057】
以前に演算した格子点データを利用にするには演算を終えた格子点データを記憶し、保持するための媒体が必要であり、それが図1におけるバッファ621である。
【0058】
図2における最上段の格子点データ演算ユニット701内のバッファのみは、以前に演算した格子点データでは無く、以前に入力したデータを保持するために用いられるが、その他の格子点データ演算ユニット内のバッファは以前演算した格子点データを保持するために用いる。このバッファのサイズは最小1で上限は無い。
【0059】
0からX8のデータを用いた処理がすでに終了し、低域変換係数L6と高域変換係数H7を出力するために、最上段の格子点データ演算ユニット701には、新たな入力データX9、X10 の2つのみが入力される。格子点データ演算ユニット701ではD9を演算するが、入力データX9及びX10の他にこの演算に必要なデータX8は、図1のバッファ621から出力される。このX8は、前回の処理でX8が端子603から入力された時にバッファ621に格納されたものである。
【0060】
格子点データ演算ユニット701は、演算したD9とバッファ621からの出力X8をそれぞれ端子607と609からユニットの外部へ出力し、次の格子点データ演算ユニット702に送る。
【0061】
格子点データ演算ユニット702は、入力されたD9及びX8を用いてE8を演算するが、この演算に必要なもう一つのデータD7は、ユニット702内のバッファ621から出力される。このD7も前回の処理で端子603から入力された時にバッファ621に格納しておいたものである。そして、演算したE8とバッファ621からの出力D7をそれぞれ端子607、609からユニットの外へ出力し、次の格子点データ演算ユニット703に送る。
【0062】
格子点データ演算ユニット703、704も上記と同様の処理を行う。その結果、演算ユニット703からは高域変換係数H7が、演算ユニット704からは低域変換係数L6がそれぞれ出力される。
【0063】
以降、演算ユニット701に新たなデータが2つ入力される毎に、演算ユニット703と704から高域と低域の変換係数が出力される。
【0064】
図1のバッファ621が、図17に示すように1画素分のデータを格納するレジスタ1701が1段だけで構成されている場合は、従来と同様の水平ウェーブレット変換処理を行うことが可能であり、図18に示すようにそれぞれ1画素分のデータを格納する2段のレジスタ1801、1802で構成されている場合は、後述するように2種類の信号を交互に処理することで2種類の信号のウェーブレット変換処理を行うことが可能である。図18におけるデータの流れは、まず図の上方よりレジスタ1801へ入力され、次のタイミングでレジスタ1802へシフトされ、さらに次のタイミングで図の下方から出力されるとする。さらに、図19に示すように画像1ライン分のデータを格納できるラインメモリ1901で構成されている場合は、垂直ウェーブレット変換処理を行うことができる。
【0065】
(第1の実施形態)
次に、本発明の第1の実施形態における、上記構成を有するウェーブレット変換処理部を用いた2次元のウェーブレット変換処理について説明する。
【0066】
本発明の第1の実施形態では、2次元のウェーブレット変換処理を、方向の違う1次元の変換処理を2段階に分けて実施することで実現し、その際に、この2段の変換処理の間に2×2のデータ回転処理を行う。
【0067】
図3に本第1の実施形態における2次元ウェーブレット変換処理装置の構成を示す。同図において、901は垂直方向の1次元DWT処理部(以下、「垂直DWT処理部」と呼ぶ。)、903は2×2データの回転処理を行うデータ回転ユニット、905は水平方向の1次元DWT処理部(以下、「水平DWT処理部」と呼ぶ。)である。垂直DWT処理部901及び水平DWT処理部905は、それぞれ図2に示すように、図1で示す演算ユニットを4段縦続接続した構成を有し、垂直DWT処理部901は4段の演算ユニットそれぞれにおけるバッファ621(図1)としてラインメモリ1901(図19)を、水平DWT処理部905は4段の演算ユニットそれぞれにおけるバッファ621として2段のレジスタ1801、1802(図18)を持ち、それぞれ垂直方向と水平方向の1次元ウェーブレット変換処理を行う。
【0068】
不図示のメモリあるいはラインバッファから、2ライン分の画素データの各ラインの端から1画素ずつ、すなわち垂直方向に並ぶ2画素ずつの画素データが、順に垂直DWT処理部901に与えられる。
【0069】
垂直DWT処理部901は、新たに受け取る垂直2画素のデータと内部バッファ621、すなわち、ここではラインメモリ1901(図19)に格納された、1ライン前のタイミングにおいて入力された画素データとを用いて、垂直方向の低域変換係数Lと高域変換係数Hを1つずつ出力する。1ライン分の画像データを格納するラインメモリ用いることで、1ライン前に入力された画素データと、新たに受け取る垂直2画素のデータとの、垂直に並ぶ3画素間における演算を行うことが可能となる。
【0070】
上記した垂直DWT処理部901の処理について、詳細に説明する。
【0071】
図20は垂直DWT処理部901を構成する4段の演算ユニットのうち、隣り合ういずれか2段の演算ユニット2000a、2000bを縦続接続した状態を表す図である。ここでは、図2における演算ユニット701、702を接続した状態である例として説明する。すなわち、2000a、2000bがそれぞれ演算ユニット701、702に相当する。演算ユニット2000a、2000bにおいて、乗算器2013a、2013bの乗算係数Cはそれぞれα、βである。また、演算ユニット2000aの2つの出力2007a、2009aは、演算ユニット2000bの2つの入力2001b、2003bに接続される。さらに、上述したように、バッファ621はそれぞれラインメモリ2021a、2021bにより構成される。図示していない残りの2段の演算ユニット703、704についても同様の構成である。
【0072】
図20におけるデータの流れを以下に説明する。ここでは、画素データの添え字番号は該画素データの垂直位置を表わしている。
【0073】
演算ユニット2000aの一方の入力端子2001aより、偶数ラインの画素データ1ライン分のうち、ある画素データX2n-1を加算器2015aへ入力する。他方の入力端子2003aより、奇数ラインの画素データ1ライン分のうち、X2n-1と垂直の関係にある画素データX2nを加算器2011aへ入力すると同時に、ラインメモリ2021aへも入力する。
【0074】
ラインメモリ2021aでは、入力画素とちょうど垂直の関係にある画素データX2n-2を出力端子2009a及び加算器2011aへ出力する。該画素データX2n-2はライン周期前に、ラインメモリ2021aに入力されたデータである。加算器2011aでは、X2nとX2n-2を加算し、乗算器2013aへ出力する。ここで、X2n-2は、画像上の位置がX2nの2ライン前のデータでX2nと画素位置がちょうど垂直の関係にあり、それらを加算することになる。乗算器2013aでは、それに係数C=αを乗算した結果α(X n+X2n-2)を加算器2015aへ出力する。加算器2015aでは、乗算器2013aからの乗算結果と入力端子2001aからの入力X2n-1とを加算して、D2n-1=X2n-1+α(X2n+X2n-2)を得て、出力端子2007aへ出力される。
【0075】
以上の演算を画素データ1ライン分すべてについて求めることで、上述した(1)式に相当する奇数画素系列Dを求める演算が行なわれる。
【0076】
演算ユニット2000bにおいては、上記で求められた奇数データ系列を入力として用い、上述の(2)式に相当する偶数データ系列Eを求めることができる。2000bにおける演算は、入力系列2003bがDである点と係数C=βである点を除き2000aと全く同様の演算を行っており、詳細な説明は省略する。
【0077】
このようにして、4段縦続接続された演算ユニットを用いて、垂直方向の低域変換係数及び高域変換係数を求めることができる。
【0078】
出力された2つの変換係数L、Hはデータ回転ユニット903に入力される。回転ユニット903は、低域と高域の2つの変換係数をそれぞれ2個受け取ると、それを並び替えて低域変換係数2つと高域変換係数2つの順に出力する。この入出力の関係を図4に概念的に示す。
【0079】
図4(a)は、2組のデータを、入力単位で区切って示したものであり、図4(b)は、2組のデータを、出力単位で区切って示したものである。(a)と(b)を比較すると、(a)を右へ90度回転したものが(b)になっていることが分かる。
【0080】
並び替えた低域変換係数2つと高域変換係数2つは、それぞれ水平方向に連続している変換係数であるため、これを水平DWT処理部905で処理すると水平方向のウェーブレット変換を行うことができる。
【0081】
本第1の実施形態では、データ回転ユニットを設けてデータの並び替えを行い、並び替えをした低域と高域の2種類のデータを水平DWT処理部905において低域と高域を交互に多重化処理する。
【0082】
多重化処理は、水平DWT処理部905の各格子点データ演算ユニットのバッファ621(図1)がレジスタ2段1801、1802(図18)から成る場合、2種類の信号を交互に処理することにより低域と高域の2種類の信号を交互に水平ウェーブレット変換するものである。この処理についてさらに詳細に説明する。
【0083】
現在の処理サイクルで、仮に、各格子点データ演算ユニットのバッファ621である2段のレジスタ1801、1802の先頭1802に低域変換係数演算用のデータが格納され、後段1801に高域変換係数演算用のデータが格納されているものとする。この時、高域変換係数演算用のデータはその先のレジスタ1802に繋がっているのみで、どの演算ユニットも該データを参照していない。これは高域変換係数演算用データが存在していないのに等しく、すべての演算ユニットは低域変換係数を処理する状態になっている。
【0084】
従ってこのサイクルでは、図4に示す変換係数の内、2つの低域変換係数Lv1及びLv2を入力して、低域変換係数と一緒に2段レジスタの先頭のレジスタ1802が出力するデータ(ここでは低域変換係数演算用のデータ)を処理し、該処理結果(LL、LH)を出力する。すると、次のサイクルで、後段のレジスタ1801に格納されている高域変換係数用のデータが上記2段のレジスタ1802の先頭に移動し、入力したLv2または前段の格子点データ演算ユニットから入力された、現在のサイクルで処理に用いたデータが該レジスタ1801の後段に取り込まれる。
【0085】
次のサイクルでは、2段のレジスタ1801、1802に保存された低域変換係数と高域変換係数の順序が逆転し、すべての演算ユニットが高域変換係数を処理する状態になる。従って、次のサイクルでは、回転ユニット903からは2つの高域変換係数Hv1及びHv2が入力され、処理されて、該処理結果(HL、HH)が出力される。
【0086】
この水平DWT処理部905の処理について、詳細に説明する。
【0087】
図21は水平DWT処理部の905を構成する4段の演算ユニットのうち、隣り合ういずれか2段の演算ユニット2100a、2100bを縦続接続した状態を表す図である。ここでは、図2における演算ユニット701、702を接続した状態である例として説明する。すなわち、2100a、2100bがそれぞれ演算ユニット701、702に相当する。演算ユニット2100a、2100bにおいて、乗算器2113a、2113bの乗算係数Cはそれぞれα、βである。また、演算ユニット2100aの2つの出力2107a、2109aは、演算ユニット2100bの2つの入力2101b、2103bに接続される。さらに、上述したように、バッファ621はそれぞれ2段レジスタ2121aと2123a、2121bと2123bにより構成される。図示していない残りの2段の演算ユニット703、704についても同様の構成である。
【0088】
図21におけるデータの流れを以下に説明する。ここでは、変換係数の添え字番号は該変換係数の水平位置を表わしている。
【0089】
まず、上述から明らかなように、演算ユニット2100aの入力端子2101aには、回転ユニット903より出力された低域変換係数と高域変換係数とが交互に並んだ系列L2m-3、H2m-3、L2m-1、H2m-1、L2m+1、H2m+1、…が入力される。同様に入力端子2103aには、L2m-2、H2m-2、L2m、H2m、L2m+2、H2m+2、…が入力される。2つの入力タイミングは、L2m-1とL2mとが同時に入力されるとする。
【0090】
入力端子2101aより低域変換係数L2m-1が加算器2115aへ入力され、同時に入力端子2103aより低域変換係数L2mが加算器2111aと2121aに入力された場合について述べる。
【0091】
2m-1 2mが入力されるとき、レジスタ2121aには1つ前のタイミングで入力端子2103aより入力された高域変換係数H2m-2が格納されている。また、そのときレジスタ2123aにはさらに1つ前のタイミングで入力端子2103aより入力された低域変換係数L2m-2が格納されている。
【0092】
従って、加算器2111aにおいて、入力端子2103aより入力されたL2mは、レジスタ2123aに格納されていた低域変換係数L2m-2と加算されて、乗算器2113aへ出力される。
【0093】
乗算器2113aでは、それに係数C=αを乗算した結果α(L2m+L2m-2)を加算器2115aへ出力する。加算器2115aでは、乗算器2113aからの乗算結果と入力端子2101aからの入力L2m-1とを加算して、低域変換系列からなるDL2m-1=L2m-1+α(L2m+L2m-2)を得て、出力端子2107aへ出力される。他方の出力端子2109aへは、レジスタ2123aの出力値L2m-2が出力される。
【0094】
次のタイミングにおいては、入力端子2101a、2101bにはそれぞれ高域変換係数H2m-1、H2mが入力される。同時に、2段レジスタ2121a、2123aは、それぞれ格納データがシフトされ、レジスタ2121aにはL2m、レジスタ2123aにはH2m-2が格納される。従って、このタイミングにおける加算器2115aの演算結果は、高域変換係数からなるDH2m-1=H2m-1+α(H2m+H2m-2)となり、出力端子2107aへ出力される。他方の出力端子2109aへは、H2m-2が出力される。
【0095】
以上の演算を画素データ1ライン分すべてについて求めることで、上述した(1)式に相当する画素変換データ系列Dを、低域と高域について交互に求める演算が行なわれる。
【0096】
演算ユニット2100bにおいては、上記で求められた画素系列を入力として用い、画素系列EL2m-1=L2m-1+β(D2m-2+D2m)もしくはEH2m-1=H2m-1+β(D2m-2+D2m)を、低域と高域について交互に求めることができる。2100bにおける演算は、入力系列2103bがDである点と係数C=βである点を除き2100aと全く同様の演算を行っており、詳細な説明は省略する。
【0097】
以上の処理を繰り返すことで、4段縦続接続された演算ユニットを用いて、低域と高域の2種類の信号を水平ウェーブレット変換処理して、変換係数LL、LH、HL、HHをそれぞれ求めることができる。
【0098】
上記の通り本第1の実施形態によれば、回転ユニットを設けることで、垂直方向と水平方向の1次元ウェーブレット変換処理部をそれぞれ1つづつ用いれば2次元のウェーブレット変換処理を行うことができるため、ハードウエア構成を縮小することができる。
【0099】
(第2の実施形態)
本第2の実施形態は、前記第1の実施形態の水平ウェーブレット変換処理と垂直ウェーブレット変換処理の順序を入れ替えたものである。図5に示すように、垂直DWT処理部901を水平DWT処理部905の出力側に配置し、水平DWT処理部905の前に新たな回転ユニット1101を設ける。
【0100】
不図示のメモリあるいはラインバッファから入力する画素データの順序は、前記第1の実施形態と同じであるものとする。すなわち、2ラインの画素データが端から1画素ずつ、すなわち垂直方向に並ぶ2画素ずつの画素データが並列に回転ユニット1101に入力される。
【0101】
回転ユニット1101は、2ラインの並列データをライン交互の2画素のデータに並び替えて出力する。これはデータを90度回転する処理と同じである。図6は、回転ユニット1101の入出力の関係を概念的に示す図である。図6において、添字Uは2ラインの上側(upper line)、Lは下側(lower line)を示し、1及び2は、画素の順番を示す。図6(a)に示すように入力する画素データを右方向に90度回転することにより、同じ行の2画素分の画素データが、交互に出力される。
【0102】
このようにライン毎に交互に出力される2画素分の画素データは、水平DWT処理部905に入力され、それぞれの入力データに対応した水平ウェーブレット変換処理が行なわれる。2ラインのデータが交互に入力されることで、2種類の信号を交互にウェーブレット変換することになるので、第1の実施形態で説明したように、水平DWT処理部905内の各格子点データ演算ユニットのバッファ621(図6)はレジスタ2段で構成される。
【0103】
水平ウェーブレット変換して出力される変換係数は、あるラインの低域・高域変換係数と次のラインの低域・高域変換係数であり、交互に出力される。これらは、さらに回転ユニット903に入力されて図4に示すように並び替えられる。
【0104】
この結果、2つのラインからの低域変換係数2個と、高域変換係数2個が交互に回転ユニット903から出力される。
【0105】
各々の2つの変換係数は垂直方向に並んでいるので、この2つの変換係数を垂直DWT処理部901に入力すれば、入力された2つの変換係数と、内部バッファ621に保持されたデータとから、垂直方向のウェーブレット変換処理を行うことができる。
【0106】
なお、垂直DWT処理部901の各格子点データ演算ユニットはバッファ621としてラインメモリを持っており、2ライン分の変換係数を保持している。なお、低域変換係数用に1ライン分と高域変換係数用に1ライン分の計2ライン分の変換係数を保持するが、各変換係数の数は元のラインデータの数の半分になっているので、ラインメモリの容量としては1ライン分あればよい。該ラインメモリには、低域変換係数と高域変換係数とが1つおきに格納されており、低域変換係数と高域変換係数を交互に処理できるようになっている。
【0107】
上記の通り第2の実施形態によれば、第1の実施形態と同様の効果を得ることができる。
【0108】
なお、不図示のメモリあるいはラインバッファからウェーブレット変換処理装置に入力される画素データの順序を、ライン交互に2画素のデータを入力するように変更すれば、最初の回転ユニット1101は不要となる。
【0109】
(第3の実施形態)
第1及び第2の実施形態においては、水平DWT処理部905は図2に示す構成を前提としてきたが、一般的なFIRフィルタで用いられる構成であってもよい。この場合、低域変換係数と高域変換係数は別々の演算器で計算される。
【0110】
ここでは、ウェーブレット変換フィルタは直線位相、すなわち、ウェーブレット変換のフィルタ係数が対称であるものとする。
【0111】
図7は、本第3の実施形態における2次元ウェーブレット変換処理装置の構成を示す。図7の構成の内、図9に構成を示すデータ入力部1401及び図8に構成を示すフィルタ演算部1402以外は、前記第2の実施形態で図5を参照して説明した構成と同様である。
【0112】
図8は、フィルタ演算部1402の構成を示す概略図である。同図において、1201はフィルタ入力データ、1202はフィルタ乗算係数の等しい2つの入力データを加算する加算器、1203は係数乗算器、1204及び1205は乗算結果を合計する加算器である。
【0113】
次に、図8に示すフィルタ演算部1402を用いて水平ウェーブレット変換処理を行う場合のウェーブレット変換処理部全体の構成について説明する。
【0114】
フィルタ演算部1402には、フィルタのタップ数と同数の画素データを入力する必要があるが、図1に示す構成と違い、変換処理部の内部にバッファを持たないので、バッファへのデータ書き込み、読み出しに気を使うことなく画素データを入力することができる。すなわち、複数種類のデータの変換処理を交互に行う場合であっても、フィルタ演算部1402内部の状態を気にする必要が無い。
【0115】
複数種類のデータの変換処理を交互に行うには、入力画素データ全てを同時に切り換える必要がある。例えば、変換係数を得るためのフィルタのタップ数が9である場合、9つのデータを同時に切り換えなければならない。これだけのデータをメモリから直接受け取るのは効率が悪いので、フィルタ演算部1402にデータを供給する部分についても、それに対応した新たなデータ入力部1401が必要となる。
【0116】
CCDやスキャナなどから得られる画素データは、一般的にラスタースキャン順序で生成されるため、以下ではラスタースキャン順序で生成された画素データを受けとって処理するものとする。図9に示すデータ入力部1401は、ラスタースキャン順序で生成された画素データに対応するものである。同図において、1301は、ラスタースキャン順序の画素データを入力する端子、1303は、1ライン分の容量を有する第1のラインメモリ、1305は、1ラインの半分の容量を有する第2のラインメモリ、1307、1309は、9つのレジスタが繋がったシフトレジスタ、1311は、2系統の9つの画素データを切り換えるセレクタである。
【0117】
以下、データ入力部1401の具体的な動作を説明する。
【0118】
まず、図7に示すデータ入力部1401の端子1301から入力される1ライン目の入力画素データを第1のラインメモリ1303に格納する。本発明の重要な構成要素であるウェーブレット変換処理部の処理サイクル(周期)を基準にして考えると、1サイクルの間に2つの画素データが入力されると全体の処理バランスが最も良くなるので、ここではそのようなレートで画素データが入力されるものとする。
【0119】
次に、2ライン目の入力画素データを第2のラインメモリ1305に格納しながら、1サイクルに1画素ずつ第1のラインメモリ1303及び第2のラインメモリ1305からデータを読み出し、それぞれシフトレジスタ1307、1309へデータを送る。両方のラインメモリ1303及び1305から同時にデータの読み出しを開始するよりも、第2のラインメモリ1305からの読み出しを1サイクル遅らせると、後述する理由により都合が良いので、そのように読み出す。
【0120】
第2のラインメモリ1305は、1サイクルで2つの画素データを格納し、1つの画素データを出力するので、2ライン目のすべての画素データを格納し終えた時点では、半分のデータしか残っていない。そのため、第2のラインメモリ1305の容量は1ラインの半分のデータを記憶できればよい。
【0121】
シフトレジスタ1307、1309に取り込まれた画素データは1サイクルごとに交互にセレクタ1311で切り換えられて、図8に示すフィルタ演算部1402で処理される。シフトレジスタ1309の画素データの位相は、シフトレジスタ1307より1サイクル遅いが、セレクタ1311が2つのシフトレジスタ1307、1309を選択するタイミングにも1サイクルのずれがあるので、1サイクルの遅れは打ち消されて、セレクタ出力では同位相のデータとなる。このようにして出力された該2ライン分の同位相の9つのデータそれぞれを基にして、フィルタ演算部1402では低域と高域のウェーブレット変換係数が計算され、出力される。
【0122】
変換係数の出力タイミングは前記第2の実施形態と同じであるため、回転ユニット903で変換係数を並び替えて、次に垂直DWT処理部901にて変換処理すれば、前記第2の実施形態と同じタイミングで2次元ウェーブレット変換された変換係数を得ることができる。
【0123】
(第4の実施形態)
ここでは、第3の実施形態においてフィルタ演算部1402の入力側で使用していた2つのラインメモリをフィルタ演算部1402の出力側に移動した構成について示す。但し、ラインメモリの総容量は、第3の実施形態と同じではあるが、各々1/2ラインの容量のラインメモリを3つに分けて持つ。
【0124】
水平方向のウェーブレット変換処理とラスタースキャン順序の画素データとは元々相性が良く、画素データを直接、水平DWT処理部に入力して処理することが可能である。なお、水平DWT処理部は、図8の構成のフィルタ演算部であっても良いし、図2の構成の変換処理部であっても良い。
【0125】
図10は、本第4の実施形態におけるウェーブレット変換処理装置の構成を示すブロック図である。図10の構成では、ラスタースキャン順序の画素データを受け取り、水平DWT処理部1500にて、直ちに水平方向のウェーブレット変換処理を行う。画素データは第3の実施形態と同様、1サイクル当たり2画素入力されるものとする。
【0126】
水平DWT処理部1500による2nライン目の処理結果である低域と高域の変換係数は、それぞれ1501、1503に格納される。また、2n+1ライン目の処理結果の内、高域変換係数は1505に格納するが、低域変換係数はどこにも格納せずセレクタ1511を経由して直ちに垂直DWT処理部901に送る。それに合わせて、1ライン前の低域変換係数をラインメモリ1501から読み出し、垂直に並ぶ2つの低域変換係数のもう一方の係数と一緒に垂直DWT処理部901に送る。
【0127】
これにより、垂直DWT処理部901は水平方向の低域変換係数を連続して変換処理することができる。この間、2n+1ライン目の水平方向の高域変換係数はすべてラインメモリ1505に格納される。
【0128】
2n+1ライン目の画素データ入力が終わると、2n及び2n+1ライン目の低域変換係数の処理も終わるので、次に、蓄えられた2ライン分の高域変換係数を2つのラインメモリ1503と1505から読み出し、セレクタ1511を経由して、垂直DWT処理部901に送り、変換処理を行う。
【0129】
低域変換係数の処理が2n+1ライン目の画素データの入力に同期して行なわれたように、高域変換係数の処理は、2n+2ライン目の画素データの入力に同期して行なわれる。高域変換係数の処理中に入力される2n+2ライン目の画素データは、水平ウェーブレット変換処理され、処理結果は2nライン目の時と同じところに格納される。高域変換係数を格納するラインメモリ1503は、出力するデータと格納するデータの割合が同じなので、保持するデータ量は変化せず古いデータが新しいデータに更新されるように新しいデータに変わっていく。
【0130】
以上のようにして、2次元ウェーブレット変換された変換係数を得ることができるが、変換係数の出力順序がこれまでとは異なり、2ライン分の画像データに対する低域・高域変換係数が各画素データを処理する毎にライン交互に出力されるのではなく、水平DWT処理部1500からは1ライン分ずつ低域及び高域変換係数が出力される。このように、各ライン毎に出力される低域及び高域変換係数を一時的に保持するラインバッファを備えることで、垂直方向と水平方向の1次元ウェーブレット変換処理部をそれぞれ1つづつ用いれば2次元のウェーブレット変換処理を行うことができるため、ハードウエア構成を縮小することができる。
【0131】
(第5の実施形態)
上記第1乃至第4の実施形態は、変換処理1サイクル当たり2画素のデータ入力を前提としていたが、本第5の実施形態では変換処理1サイクル当たり1画素の割合でデータ入力する場合に適したウェーブレット変換処理装置の構成について説明する。
【0132】
単純に、変換処理1サイクル当たり1画素のデータ入力に減らしてしまうと、各変換処理部等が稼働率50%になるだけで、ハードウェア資源の有効利用にならない。
【0133】
そこで、本第5の実施形態では、1つの変換処理部で垂直ウェーブレット変換処理と水平ウェーブレット変換処理の両方を行うことによって、変換処理部の稼働率を100%にし、ハードウェアの有効利用を図る。
【0134】
本第5の実施形態の構成を図11に示す。同図において、1601は、2入力2系統のデータから一方の系統を選択出力するセレクタ、1603は、水平・垂直DWT処理部、1605は、2×2データの回転処理を行うデータ回転ユニット、である。
【0135】
前記第1の実施形態と同様、不図示のメモリあるいはラインバッファから、2ラインデータの各ラインの端から1画素ずつ、すなわち垂直2画素ずつを、セレクタ1601を経由して、DWT処理部1603に入力する。
【0136】
これに対し、DWT処理部1603は、垂直変換モードで該入力データを処理する。
【0137】
但し、連続して入力するのは2サイクルで4つの画素データのみで、次の2サイクルはデータ入力を停止する。トータル4サイクルで4つの画素データを入力することになるので、前述したように、1サイクル当たり1画素のデータ入力割合となる。
【0138】
変換処理部1603は、2サイクル期間に入力された4つの画素データを処理することによって、垂直方向の低域変換係数と高域変換係数を2組出力する。
この変換係数はスイッチ1606及び1607を経由して、前記第1の実施形態と同様、回転ユニット1605にて並び替えられ、2個の低域変換係数と2個の高域変換係数が順次、セレクタ1601に入力される。
【0139】
前記データ入力が停止する2サイクル期間は、回転ユニット1605にて並び替えられた変換係数がセレクタ1601で選択され、垂直・水平DWT処理部1603に送られる。垂直・水平変換処理部1603は、今度は水平変換モードにて、2サイクル続けて入力される2個2組の変換係数を水平方向にウェーブレット変換処理し、スイッチ1606及び1607を経由して出力する。
【0140】
なお、垂直・水平DWT処理部1603は基本的には図2に示す構成を有するが、各演算ユニット内のバッファは、垂直方向の変換に対応したラインメモリと水平方向の変換に対応した2段のレジスタを有し、それを変換モードに応じて切り換えて使用することで、上述したような動作が可能になる。
【0141】
また、2ラインデータの水平2画素ずつを交互に入力し、該入力データを先に水平変換モードで処理し、回転ユニットで並び替えた変換係数を次に垂直変換モードで処理しても、同じ結果を得ることができる。
【0142】
第1乃至第5の実施形態では、すべて順方向のウェーブレット変換処理についてのみ説明してきたが、逆方向のウェーブレット変換処理は乗算係数が異なるのと一部の加算演算が減算に変わるのみで、図2の構成並びに上位の構成は順方向も逆方向も同じであるため、本発明は逆方向のウェーブレット変換処理にも適用することができる。
【0143】
【発明の効果】
上記の通り本発明によれば、ハードウェア資源をより有効に活用し、より小さいハードウエア構成で2次元ウェーブレット変換処理装置を実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における演算ユニットの構成を示す図である。
【図2】図1の演算ユニットを多段接続した、フィルタ処理のためのリフティング演算を行うための構成を示すブロック図である。
【図3】本発明の第1の実施形態における2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図4】図3の回転ユニットの動作を概念的に示す図である。
【図5】本発明の第2の実施形態における2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図6】図5の回転ユニットの動作を概念的に示す図である。
【図7】本発明の第3の実施形態における2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図8】図7に示すFIR型のフィルタ演算部の構成を示す図である。
【図9】図7に示すデータ入力部の構成を示す図である。
【図10】本発明の第4の実施形態における2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図11】本発明の第5の実施形態における2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図12】9×7フィルタ処理をリフティング演算で実現する時の従来の構成を示す図である。
【図13】9×7逆フィルタ処理をリフティング演算で実現する時の従来の構成を示す図である。
【図14】9×7フィルタ処理のリフティング演算を表現するリフティング格子構造を示す図である。
【図15】9×7逆フィルタ処理のリフティング演算を表現するリフティング格子構造を示す図である。
【図16】従来の2次元ウェーブレット変換処理装置の構成を示すブロック図である。
【図17】図1に示すバッファがレジスタ1段で構成されていることを示す図である。
【図18】図1に示すバッファがレジスタ2段で構成されていることを示す図である。
【図19】図1に示すバッファがラインメモリで構成されていることを示す図である。
【図20】図3に示す垂直DWT処理部を構成する演算ユニット4段のうち、隣り合ういずれか2段の演算ユニットを縦続接続した状態を表す図である。
【図21】図3に示す水平DWT処理部を構成する演算ユニット4段のうち、隣り合ういずれか2段の演算ユニットを縦続接続した状態を表す図である。
【符号の説明】
503、505、901 垂直DWT処理部
501、905 水平DWT処理部
511、513 バッファ
611、615 加算器
613 乗算器、
621 バッファ
701〜704 格子点データ演算ユニット
903、1101、1605 2×2回転ユニット
1311、1511、1601 セレクタ
1303、1305、1501、1503,1505 ラインメモリ
1401 データ入力部
1402 フィルタ演算部
1603 水平・垂直DWT処理部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a filter processing apparatus, and more particularly, to a filter processing apparatus that performs wavelet transform on image data and inversely transforms wavelet transform coefficients into image data.
[0002]
[Prior art]
An image, particularly a multi-valued image, contains a great deal of information, and there is a problem that the amount of data is enormous when storing and transmitting the image. For this reason, when storing and transmitting images, high-efficiency coding that reduces the amount of data by removing the redundancy of the images or changing the contents of the images to such an extent that deterioration in image quality is difficult to visually perceive. Used.
[0003]
For example, in JPEG recommended by ISO and ITU-T as an international standard encoding method for still images, image data is subjected to discrete cosine transform (DCT) for each block (8 pixels × 8 pixels) and converted to DCT coefficients. Later, each coefficient is quantized and further entropy encoded to compress the image data. However, in this method, since DCT and quantization are performed for each block, so-called block distortion may appear at the boundary of each block of the decoded image.
[0004]
On the other hand, JPEG2000 is being studied as a new international standard encoding method for still images. In JPEG2000, wavelet transform is proposed as a conversion process performed before quantization. The wavelet transform has a feature that it is difficult to visually understand the degradation of the decoded image because the input data is continuously processed instead of being processed in units of blocks as in the current JPEG.
[0005]
In the wavelet transform used in JPEG2000, the conversion process can be efficiently performed with a small amount of calculation by performing a process using a method called a lifting mechanism.
[0006]
FIG. 12 shows a signal flow in the forward lifting mechanism, and FIG. 13 shows a signal flow in the reverse lifting mechanism. Α, β, γ, and δ in the figure are called lifting coefficients.
[0007]
First, the operation of the lifting mechanism shown in FIG. 12 will be described.
[0008]
Input pixels in the order of input X0, X1, X2, XThree, XFour, XFive, ... in order. The input pixels are classified into an even pixel series and an odd pixel series by the classification unit 201, and a pixel X whose index is even from one output terminal (upper side in FIG. 12) of the classification unit 201.0, X2, XFour... (ie X2n) From the other output terminal (lower side in FIG. 12)1, XThree, XFive... (ie X2n + 1) Is output.
[0009]
In the first-stage lifting process, the even pixel series is multiplied by a lifting coefficient α, and the multiplication result of two consecutive even pixels is added to the pixels in the odd pixel series located at the center of the two pixels.
[0010]
This can be expressed as a generalized expression as follows.
[0011]
D2n + 1 = X2n + 1 + Α · X2n+ Α · X2n + 2          ... (1)
In the second stage lifting process, the newly obtained odd pixel series D1, DThree, DFive,... Are multiplied by a lifting coefficient β, and the multiplication result of two consecutive odd pixels is added to the pixels in the even pixel series located at the center of the two pixels.
[0012]
This can be expressed as a generalized expression as follows.
[0013]
E2n + 2= X2n + 2+ Β · D2n + 1+ Β · D2n + 3        ... (2)
In the third stage lifting process, the lifting coefficient γ is used in the same way as the first stage, and in the fourth stage lifting process, the lifting coefficient δ is used as in the second stage. Expressions representing the contents of the third and fourth lifting processes are as follows.
[0014]
H2n + 1 = D2n + 1 + Γ · E2n   + Γ · E2n + 2          ... (3)
L2n + 2= E2n + 2 + Δ · H2n + 1 + Δ · H2n + 3          (4)
In FIG. 12, K normalizes the wavelet coefficient, but is not particularly relevant in explaining the essence of the present invention, so the explanation is omitted here.
[0015]
If the normalization process is ignored, the H level obtained by the 3rd and 4th stage lifting processes can be obtained.n, Ln Respectively correspond to a high-frequency transform coefficient and a low-frequency transform coefficient.
[0016]
Next, the signal flow of the reverse lifting mechanism shown in FIG. 13 will be briefly described. First, in response to the normalization process in the forward lifting mechanism, the inverse coefficient is multiplied, and then the four-stage lifting process is performed. The processing contents of each stage are summarized below and expressed by an expression.
[0017]
(First stage) E2n + 2= L2n + 2 -Δ · H2n + 1 -Δ · H2n + 3      ... (5)
(Second stage) D2n + 1 = H2n + 1 − Γ ・ E2n   − Γ ・ E2n + 2      ... (6)
(3rd stage) X2n + 2 = E2n + 2 -Β · D2n + 1 -Β · D2n + 3      ... (7)
(4th stage) X2n + 1 = D2n + 1-α · X2n-α · X2n + 2 (8)
The above formulas (5), (6), (7), and (8) are obtained by shifting the formulas (4), (3), (2), and (1), respectively.
[0018]
The lifting mechanism shown in FIGS. 12 and 13 is expressed from another viewpoint to the lifting lattice structure shown in FIGS. In the figure, □ represents input data, ◯ represents a grid point (or grid point data calculator), and an arrow from ◯ represents a flow of grid point data. In these drawings, the basic processing in the lifting mechanism (the processing of the above formulas (1) to (8)) and new data obtained by the processing are associated with one grid point.
[0019]
In the forward-direction lifting grid structure shown in FIG. 14, one grid point data is calculated using any one of the equations (1) to (4).
[0020]
In the lifting grid structure in the reverse direction shown in FIG. 15, one grid point data is calculated by any one of the equations (5) to (8).
[0021]
In an ordinary filter, one output is calculated each time one piece of data is input. However, as understood from the lifting grid structure of FIG. 14, in the lifting calculation processing, only two new data are prepared. Two data outputs are possible.
[0022]
For example, X8In the input data up to, the output data is LFour, HFive Can only calculate up to. Next X9However, there is no grid point data that can be newly calculated. But XTen D is newly provided by D9, E8, H7, L6Can be computed. In addition, X11, X12H is the output data only after the two input data are prepared.9, L8Can be computed.
[0023]
As described above, in the filtering process based on the lifting operation, every time two new input data are prepared, two outputs (conversion coefficients) can be calculated. Similarly, in the inverse transformation process shown in FIG. 15, it is understood that two restoration data can be calculated every time two transformation coefficients are prepared.
[0024]
Further, when applied to the inverse conversion process in the vertical direction, two lines of conversion coefficients of 9 types of low and high frequencies are input in the horizontal scan order, so that the restored data for 2 lines is converted into the horizontal scan order. At the same time and output.
[0025]
This is a major difference between the filtering processing (wavelet transform) based on the lifting operation and the filtering processing that is not so.
[0026]
As described above, the low-frequency and high-frequency transform coefficients output in pairs from the wavelet transform unit that performs horizontal (or vertical) wavelet transform processing are performed in the vertical (or horizontal) wavelet transform processing, respectively. The next wavelet transform unit performs processing, and horizontal and vertical two-dimensional wavelet transform processing is performed by the two conversion processes.
[0027]
The processing unit for performing the two-dimensional wavelet transform has conventionally been configured as shown in FIG. 16 as disclosed in JP-A-10-283342. In the figure, reference numeral 501 denotes a horizontal one-dimensional DWT (Discrete Wavelet Transform) processing unit (hereinafter referred to as “horizontal DWT processing unit”), and 503 and 505 denote vertical one-dimensional DWT processing units (hereinafter referred to as vertical DWT). (Referred to as “processing unit”) 511 and 513 are buffers.
[0028]
The horizontal DWT processing unit 501 receives and processes raster scan data scanned in the horizontal direction, and outputs two conversion coefficients of a horizontal low range and a high frequency for each process. The buffers 511 and 513 divide the low-frequency and high-frequency conversion coefficients output from the horizontal DWT processing unit 501 and store the conversion coefficients for one horizontal line, respectively.
[0029]
On the other hand, in the vertical DWT processing units 503 and 505, immediately after the vertical one-dimensional wavelet transform process is performed, transform coefficients for a plurality of lines used for the transform process are stored in the internal buffer. When the conversion process is completed, the conversion coefficients for two lines are unnecessary. When conversion coefficients for two new lines are input from the horizontal DWT processing unit 501 and the buffers 511 and 513, the next vertical wavelet conversion process is performed. It becomes possible. The vertical DWT processing units 503 and 505 perform arithmetic processing using the input new set of conversion coefficients, and output two low-frequency conversion coefficients and a high-frequency conversion coefficient, respectively.
[0030]
In this way, by performing two types of wavelet transform processing, horizontal and vertical, the vertical DWT processing unit 503 causes LL (vertical-low frequency, horizontal-low frequency), HL (vertical-high frequency, horizontal-low frequency). 2) conversion coefficients from the vertical DWT processing unit 505, two conversion coefficients of LH (vertical-low range, horizontal-high range) and HH (vertical-high range, horizontal-high range) are provided. Is output.
[0031]
In the configuration of FIG. 16, the horizontal DWT processing unit 501 can be operated at an operation rate of 100% if two data are input every cycle. On the other hand, the two vertical DWT processing units 503 and 505 are paused without performing any processing while the conversion coefficients for the next horizontal line are stored in the buffers 511 and 513, respectively. When the conversion coefficient of the second line is input from the horizontal DWT processing unit 501 to the vertical DWT processing units 503 and 505, the conversion coefficients stored in the buffers 511 and 513 are read to use the conversion coefficient for two lines. Perform wavelet transform processing.
[0032]
Accordingly, during the period in which the two vertical DWT processing units 503 and 505 operate, the horizontal DWT processing unit 501 sets the conversion coefficient for the second line among the two line conversion coefficients newly input to the vertical DWT processing units 503 and 505. It is the same as the period of processing and outputting. That is, each of the two vertical DWT processing units operates at an operation rate of 50%.
[0033]
[Problems to be solved by the invention]
As described above, in the conventional two-dimensional wavelet transform process, two transform processing units are required to be arranged in the subsequent stage among the transform processes in the horizontal direction and the vertical direction. That is, only one conversion processing unit is required in the previous stage to perform the same amount of processing. However, since two conversion processing units are used in the subsequent stage, hardware resources cannot be effectively used, and the circuit scale increases. There was a problem.
[0034]
The present invention has been made in view of the above problems, and an object thereof is to more effectively utilize hardware resources and realize a two-dimensional wavelet transform processing device with a smaller hardware configuration.
[0035]
[Means for Solving the Problems]
  In order to achieve the above object, a filter processing apparatus of the present invention comprises the following arrangement. That is,
  A filter device for wavelet transforming image data using a plurality of arithmetic units having a lifting grid structure,
  The first or second horizontal or vertical direction of the image data to be wavelet transformed is defined as the Y axis, the second direction orthogonal to the first direction is defined as the X axis, and the pixel position x of the X coordinate. , Pixel data at the pixel position y of the Y coordinate is defined as Px, y, and a row of pixel data at the same Y coordinate position in the image data is defined as a row
  In the i-th processing cycle (i = 0, 1, 2,...), A set of two pixel data adjacent in the first direction {Px + i, y, Px + i, y + 1} And the pixel data P input one line beforex + i, y-1And at least the pixel data Px + i, y-1Using the calculation result of the calculation unit calculated based onx + i, y, Px + i, y + 1} From one low-frequency conversion coefficient LiAnd one high frequency conversion coefficient HiA first direction wavelet transform means for outputting
  Frequency transform coefficient L generated in two processing cycles of the wavelet transform means in the first directioni, HiAnd Li + 1, Hi + 1Each time is input, the four frequency conversion coefficients are rearranged, and the low frequencyStrangeConversion coefficient pair {Li, Li + 1} And a set of high frequency conversion coefficients {Hi, Hi + 1}, Each of which is output in units of one processing cycle;
  A set of low frequency conversion coefficients {Li, Li + 1} In one processing cycle, the low frequency conversion coefficient L input one line beforei-1And at least the low frequency conversion coefficient Li-1And the input set {L using the calculation result of the calculation unit calculated based oni, Li + 1}, One low and low frequency conversion coefficient LL and one low and high frequency conversion coefficient LH are output, and a set of high frequency conversion coefficients {Hi, Hi + 1} In one processing cycle, the high frequency conversion coefficient H input one line beforei-1And at least the high-frequency conversion coefficient Hi-1Using the calculation result of the calculation unit calculated based oni, Hi + 1}, Second directional wavelet transform means for outputting one high / low frequency transform coefficient HL and one high / high frequency transform coefficient HH.
[0041]
  Also, a preferred one of the present inventionAspectAccording to the aboveWavelet transform in the second directionThe means is an FIR filter.
[0051]
DETAILED DESCRIPTION OF THE INVENTION
Preferred embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
[0052]
FIG. 1 shows a grid point data calculation unit that performs calculation at each grid point shown in FIG. 14, and FIG. 2 shows a multistage connection of each grid point data calculation unit shown in FIG. 1 for performing a lifting calculation of filter processing. Shows the configuration.
[0053]
In FIG. 1, 601 and 603 are terminals for inputting two data, 607 is a terminal for outputting calculated lattice point data, 621 is a buffer for storing input data from the terminal 603, and 609 is an output data of the buffer 621 externally. 611 is an adder that adds the output data of the buffer 621 and the input data from the terminal 603, and 613 is one of coefficients C (α, β, γ, δ) added to the addition result of the adder 611. 615 is an adder for adding the multiplication result of the multiplier 613 to the input data located at the center of the three data used for the calculation.
[0054]
First, the outline of the calculation method in the embodiment of the present invention will be briefly described with reference to FIGS. In the following description, data output from each grid point in FIG. 14 is also referred to by the same reference name as the grid point.
[0055]
For example, 9 input data X0, X1, X2, XThree, XFour, XFive, X6, X7, X810 grid point data (D1, DThree, DFive, D7, E2, EFour, E6, HThree, HFive, LFour) To calculate the low frequency conversion coefficient LFourAnd high-frequency conversion coefficient HFiveCan be output.
[0056]
Next X9, XTenWhen two pieces of data are newly added as input data, the low-frequency transform coefficient L is calculated by calculating 10 grid point data in the same manner as described above.6And high-frequency conversion coefficient H7Can be output, but X9, XTenIf the grid point data calculated before is input, it is necessary to newly calculate D9, E8, L7, L6No more than four.
[0057]
In order to use the previously calculated grid point data, a medium for storing and holding the grid point data after the calculation is required, which is the buffer 621 in FIG.
[0058]
Only the buffer in the uppermost grid point data calculation unit 701 in FIG. 2 is used to hold previously input data, not the previously calculated grid point data, but in other grid point data calculation units. This buffer is used to hold previously calculated grid point data. This buffer has a minimum size of 1 and no upper limit.
[0059]
X0To X8The processing using the data of is already finished, and the low-frequency conversion coefficient L6And high-frequency conversion coefficient H7In the uppermost grid point data calculation unit 701, new input data X9, XTen Only two of these are input. In the grid data unit 701, D9Input data X9And XTenIn addition to the data X required for this calculation8Is output from the buffer 621 in FIG. This X8X in the previous process8Is stored in the buffer 621 when it is input from the terminal 603.
[0060]
The grid point data calculation unit 701 calculates the calculated D9And output X from buffer 6218Are output from the terminals 607 and 609 to the outside of the unit, and sent to the next grid point data calculation unit 702.
[0061]
The grid point data calculation unit 702 receives the input D9And X8Using E8, But another data D necessary for this calculation7Is output from the buffer 621 in the unit 702. This D7Is stored in the buffer 621 when it is input from the terminal 603 in the previous processing. And the calculated E8And output D from buffer 6217Are output from the terminals 607 and 609 to the outside of the unit, and sent to the next grid point data calculation unit 703.
[0062]
The lattice point data calculation units 703 and 704 also perform the same processing as described above. As a result, the high frequency conversion coefficient H is output from the arithmetic unit 703.7However, from the arithmetic unit 704, the low frequency conversion coefficient L6Are output respectively.
[0063]
Thereafter, each time two pieces of new data are input to the arithmetic unit 701, high-frequency and low-frequency conversion coefficients are output from the arithmetic units 703 and 704.
[0064]
When the buffer 621 shown in FIG. 1 has a single-stage register 1701 for storing data for one pixel as shown in FIG. 17, it is possible to perform the same horizontal wavelet transform processing as before. As shown in FIG. 18, in the case of two-stage registers 1801 and 1802 each storing data for one pixel, two kinds of signals are processed by alternately processing two kinds of signals as will be described later. It is possible to perform the wavelet transform process. The data flow in FIG. 18 is first input to the register 1801 from the top of the figure, shifted to the register 1802 at the next timing, and further output from the bottom of the figure at the next timing. Further, as shown in FIG. 19, when the line memory 1901 is configured to store data for one line of the image, the vertical wavelet transform process can be performed.
[0065]
(First embodiment)
Next, a two-dimensional wavelet transform process using the wavelet transform processing unit having the above-described configuration in the first embodiment of the present invention will be described.
[0066]
In the first embodiment of the present invention, the two-dimensional wavelet transform process is realized by dividing the one-dimensional transform process with different directions into two stages, and at that time, the two-stage transform process is performed. In between, 2 × 2 data rotation processing is performed.
[0067]
FIG. 3 shows the configuration of the two-dimensional wavelet transform processing apparatus in the first embodiment. In the figure, reference numeral 901 denotes a vertical one-dimensional DWT processing unit (hereinafter referred to as “vertical DWT processing unit”), 903 denotes a data rotation unit that performs rotation processing of 2 × 2 data, and 905 denotes a horizontal one-dimensional unit. DWT processing unit (hereinafter referred to as “horizontal DWT processing unit”). As shown in FIG. 2, each of the vertical DWT processing unit 901 and the horizontal DWT processing unit 905 has a configuration in which the arithmetic units shown in FIG. 1 are cascade-connected, and the vertical DWT processing unit 901 includes four arithmetic units. The line memory 1901 (FIG. 19) as the buffer 621 (FIG. 1) and the horizontal DWT processing unit 905 have the two-stage registers 1801 and 1802 (FIG. 18) as the buffer 621 in each of the four-stage arithmetic units. And a horizontal one-dimensional wavelet transform process.
[0068]
Pixel data of one pixel from the end of each line of pixel data for two lines, ie, two pixels arranged in the vertical direction, is sequentially supplied to the vertical DWT processing unit 901 from a memory or line buffer (not shown).
[0069]
The vertical DWT processing unit 901 uses the newly received vertical two-pixel data and the internal buffer 621, that is, the pixel data input at the previous timing stored in the line memory 1901 (FIG. 19). The vertical low-frequency conversion coefficient LvAnd high-frequency conversion coefficient HvAre output one by one. By using a line memory that stores image data for one line, it is possible to perform calculations between three pixels that are lined up vertically, with the pixel data input one line before and the newly received vertical two-pixel data. It becomes.
[0070]
The processing of the vertical DWT processing unit 901 will be described in detail.
[0071]
FIG. 20 is a diagram illustrating a state in which any two adjacent arithmetic units 2000a and 2000b among the four arithmetic units constituting the vertical DWT processing unit 901 are connected in cascade. Here, description will be made as an example in which the arithmetic units 701 and 702 in FIG. 2 are connected. That is, 2000a and 2000b correspond to the arithmetic units 701 and 702, respectively. In the arithmetic units 2000a and 2000b, the multiplication coefficients C of the multipliers 2013a and 2013b are α and β, respectively. Further, the two outputs 2007a and 2009a of the arithmetic unit 2000a are connected to the two inputs 2001b and 2003b of the arithmetic unit 2000b. Furthermore, as described above, the buffer 621 is configured by the line memories 2021a and 2021b, respectively. The remaining two-stage arithmetic units 703 and 704 (not shown) have the same configuration.
[0072]
The data flow in FIG. 20 will be described below. Here, the subscript number of the pixel data represents the vertical position of the pixel data.
[0073]
From one input terminal 2001a of the arithmetic unit 2000a, certain pixel data X out of one line of even-numbered pixel data.2n-1Is input to the adder 2015a. From the other input terminal 2003a, out of one line of pixel data of odd lines, X2n-1Data X in a vertical relationship with2nIs input to the adder 2011a and simultaneously to the line memory 2021a.
[0074]
In the line memory 2021a, pixel data X that is exactly perpendicular to the input pixel2n-2Are output to the output terminal 2009a and the adder 2011a. Pixel data X2n-2Is data input to the line memory 2021a before the line period. In the adder 2011a, X2nAnd X2n-2Are output to the multiplier 2013a. Where X2n-2Indicates that the position on the image is X2nX in the data two lines before2nAnd the pixel positions are in a vertical relationship, and they are added. In the multiplier 2013a, the result of multiplying the coefficient C = α by α (X2 n+ X2n-2) Is output to the adder 2015a. In the adder 2015a, the multiplication result from the multiplier 2013a and the input X from the input terminal 2001a.2n-1And add D2n-1= X2n-1+ Α (X2n+ X2n-2) And output to the output terminal 2007a.
[0075]
By calculating the above calculation for all the lines of the pixel data, the calculation for calculating the odd pixel series D corresponding to the above-described equation (1) is performed.
[0076]
In the arithmetic unit 2000b, it is possible to obtain the even data series E corresponding to the above equation (2) using the odd data series obtained above as an input. The calculation in 2000b is exactly the same as that in 2000a except that the input series 2003b is D and the coefficient C = β, and detailed description thereof is omitted.
[0077]
In this way, it is possible to obtain the low-frequency transform coefficient and the high-frequency transform coefficient in the vertical direction using the arithmetic units connected in cascade in four stages.
[0078]
The two output conversion coefficients Lv, HvIs input to the data rotation unit 903. When the rotation unit 903 receives two low-frequency and high-frequency conversion coefficients, the rotation unit 903 rearranges them and outputs them in the order of two low-frequency conversion coefficients and two high-frequency conversion coefficients. This input / output relationship is conceptually shown in FIG.
[0079]
FIG. 4A shows two sets of data divided by input units, and FIG. 4B shows two sets of data divided by output units. Comparing (a) and (b), it can be seen that (b) is obtained by rotating (a) 90 degrees to the right.
[0080]
Since the rearranged two low-frequency transform coefficients and two high-frequency transform coefficients are transform coefficients that are continuous in the horizontal direction, if this is processed by the horizontal DWT processing unit 905, horizontal wavelet transform can be performed. it can.
[0081]
In the first embodiment, a data rotation unit is provided to rearrange data, and the rearranged low-frequency and high-frequency two types of data are alternately displayed in the horizontal DWT processing unit 905 as low-frequency and high-frequency. Multiplex processing.
[0082]
Multiplexing processing is performed by alternately processing two types of signals when the buffer 621 (FIG. 1) of each grid point data calculation unit of the horizontal DWT processing unit 905 includes two register stages 1801 and 1802 (FIG. 18). The horizontal wavelet transform is performed alternately on the two types of signals, low and high. This process will be described in more detail.
[0083]
In the current processing cycle, data for low-frequency conversion coefficient calculation is stored in the top 1802 of the two-stage registers 1801 and 1802 that are buffers 621 of each grid point data calculation unit, and high-frequency conversion coefficient calculation is performed in the subsequent stage 1801. It is assumed that data for use is stored. At this time, the data for high-frequency conversion coefficient calculation is only connected to the register 1802 ahead, and no calculation unit refers to the data. This is equivalent to the absence of high-frequency conversion coefficient calculation data, and all the arithmetic units are in a state of processing low-frequency conversion coefficients.
[0084]
Therefore, in this cycle, two low-frequency conversion coefficients L of the conversion coefficients shown in FIG.v1And Lv2To process the data (here, data for low-frequency conversion coefficient calculation) output from the first register 1802 of the two-stage register together with the low-frequency conversion coefficient, and output the processing results (LL, LH) To do. Then, in the next cycle, the data for the high-frequency conversion coefficient stored in the subsequent register 1801 moves to the top of the two-stage register 1802, and the input Lv2Alternatively, data used for processing in the current cycle, which is input from the previous grid point data calculation unit, is taken into the subsequent stage of the register 1801.
[0085]
In the next cycle, the order of the low-frequency transform coefficients and the high-frequency transform coefficients stored in the two-stage registers 1801 and 1802 is reversed, and all the arithmetic units are in a state of processing the high-frequency transform coefficients. Therefore, in the next cycle, the rotation unit 903 receives two high-frequency conversion coefficients Hv1And Hv2Is input, processed, and the processing result (HL, HH) is output.
[0086]
The processing of the horizontal DWT processing unit 905 will be described in detail.
[0087]
FIG. 21 is a diagram illustrating a state in which any two adjacent arithmetic units 2100a and 2100b among the four arithmetic units constituting the horizontal DWT processing unit 905 are connected in cascade. Here, description will be made as an example in which the arithmetic units 701 and 702 in FIG. 2 are connected. That is, 2100a and 2100b correspond to the arithmetic units 701 and 702, respectively. In the arithmetic units 2100a and 2100b, the multiplication coefficients C of the multipliers 2113a and 2113b are α and β, respectively. Also, the two outputs 2107a and 2109a of the arithmetic unit 2100a are connected to the two inputs 2101b and 2103b of the arithmetic unit 2100b. Further, as described above, the buffer 621 includes the two-stage registers 2121a and 2123a, 2121b and 2123b, respectively. The remaining two-stage arithmetic units 703 and 704 (not shown) have the same configuration.
[0088]
The data flow in FIG. 21 will be described below. Here, the subscript number of the conversion coefficient represents the horizontal position of the conversion coefficient.
[0089]
First, as is apparent from the above, a series L in which low-frequency transform coefficients and high-frequency transform coefficients output from the rotation unit 903 are alternately arranged at the input terminal 2101a of the arithmetic unit 2100a.2m-3, H2m-3, L2m-1, H2m-1, L2m + 1, H2m + 1, ... are entered. Similarly, the input terminal 2103a has L2m-2, H2m-2, L2m, H2m, L2m + 2, H2m + 2, ... are entered. The two input timings are L2m-1And L2mAre input at the same time.
[0090]
Low frequency conversion coefficient L from input terminal 2101a2m-1Is input to the adder 2115a and at the same time the low-frequency conversion coefficient L from the input terminal 2103a.2mIs input to the adders 2111a and 2121a.
[0091]
L2m-1,L 2mIs input to the register 2121a at the previous timing from the input terminal 2103a.2m-2Is stored. At this time, the low-frequency conversion coefficient L input from the input terminal 2103a to the register 2123a at the previous timing is also displayed.2m-2Is stored.
[0092]
Therefore, in the adder 2111a, L inputted from the input terminal 2103a2mIs the low-frequency conversion coefficient L stored in the register 2123a.2m-2And added to the multiplier 2113a.
[0093]
The multiplier 2113a multiplies it by a coefficient C = α to obtain a result α (L2m+ L2m-2) Is output to the adder 2115a. The adder 2115a receives the multiplication result from the multiplier 2113a and the input L from the input terminal 2101a.2m-1And DL consisting of low-frequency conversion series2m-1= L2m-1+ Α (L2m+ L2m-2) And output to the output terminal 2107a. The output value L of the register 2123a is supplied to the other output terminal 2109a.2m-2Is output.
[0094]
At the next timing, each of the input terminals 2101a and 2101b has a high-frequency conversion coefficient H.2m-1, H2mIs entered. At the same time, the stored data is shifted in the two-stage registers 2121a and 2123a, respectively, and the register 2121a has L2mThe register 2123a has H2m-2Is stored. Therefore, the calculation result of the adder 2115a at this timing is DH composed of a high-frequency conversion coefficient.2m-1= H2m-1+ Α (H2m+ H2m-2) And output to the output terminal 2107a. The other output terminal 2109a is connected to H2m-2Is output.
[0095]
By obtaining the above calculation for all lines of pixel data, an operation for alternately obtaining the pixel conversion data series D corresponding to the above-described equation (1) for the low frequency and the high frequency is performed.
[0096]
In the arithmetic unit 2100b, the pixel series obtained above is used as an input, and the pixel series EL2m-1= L2m-1+ Β (D2m-2+ D2mOr EH2m-1= H2m-1+ Β (D2m-2+ D2m) Can be obtained alternately for low and high frequencies. The calculation in 2100b is exactly the same as that in 2100a except that the input series 2103b is D and the coefficient C = β, and detailed description thereof is omitted.
[0097]
By repeating the above processing, the low-frequency and high-frequency two types of signals are subjected to horizontal wavelet transform processing using arithmetic units connected in four stages in cascade to obtain transform coefficients LL, LH, HL, and HH, respectively. be able to.
[0098]
As described above, according to the first embodiment, by providing a rotation unit, two-dimensional wavelet transform processing can be performed by using one vertical and one horizontal one-dimensional wavelet transform processing units one by one. Therefore, the hardware configuration can be reduced.
[0099]
(Second Embodiment)
In the second embodiment, the order of the horizontal wavelet transform process and the vertical wavelet transform process in the first embodiment is exchanged. As shown in FIG. 5, the vertical DWT processing unit 901 is arranged on the output side of the horizontal DWT processing unit 905, and a new rotation unit 1101 is provided in front of the horizontal DWT processing unit 905.
[0100]
Assume that the order of pixel data input from a memory or line buffer (not shown) is the same as that in the first embodiment. That is, pixel data of two lines of pixel data from the end, that is, pixel data of two pixels arranged in the vertical direction is input to the rotation unit 1101 in parallel.
[0101]
The rotation unit 1101 rearranges the two lines of parallel data into data of two pixels with alternate lines and outputs the data. This is the same as the process of rotating the data by 90 degrees. FIG. 6 is a diagram conceptually showing the input / output relationship of the rotation unit 1101. In FIG. 6, the subscript U indicates the upper line of the two lines (upper line), L indicates the lower line (lower line), and 1 and 2 indicate the order of the pixels. As shown in FIG. 6A, by rotating the input pixel data by 90 degrees to the right, the pixel data for two pixels in the same row are alternately output.
[0102]
In this way, the pixel data for two pixels that are alternately output for each line is input to the horizontal DWT processing unit 905, and horizontal wavelet transform processing corresponding to each input data is performed. Since the two lines of data are alternately input, two types of signals are alternately wavelet transformed. Therefore, as described in the first embodiment, each grid point data in the horizontal DWT processing unit 905 is used. The buffer 621 (FIG. 6) of the arithmetic unit is composed of two stages of registers.
[0103]
The transform coefficients output by horizontal wavelet transform are a low-frequency / high-frequency transform coefficient of a certain line and a low-frequency / high-frequency transform coefficient of the next line, and are alternately output. These are further input to the rotation unit 903 and rearranged as shown in FIG.
[0104]
As a result, two low-frequency conversion coefficients and two high-frequency conversion coefficients from the two lines are alternately output from the rotation unit 903.
[0105]
Since the two conversion coefficients are arranged in the vertical direction, if these two conversion coefficients are input to the vertical DWT processing unit 901, the two conversion coefficients input and the data held in the internal buffer 621 are used. , Vertical wavelet transform processing can be performed.
[0106]
Each grid point data calculation unit of the vertical DWT processing unit 901 has a line memory as a buffer 621 and holds conversion coefficients for two lines. Note that two lines of conversion coefficients, one line for the low-frequency conversion coefficient and one line for the high-frequency conversion coefficient, are stored, but the number of conversion coefficients is half the number of original line data. Therefore, the capacity of the line memory may be one line. The line memory stores every other low-frequency transform coefficient and high-frequency transform coefficient so that the low-frequency transform coefficient and the high-frequency transform coefficient can be processed alternately.
[0107]
As described above, according to the second embodiment, the same effect as that of the first embodiment can be obtained.
[0108]
If the order of pixel data input from the memory or line buffer (not shown) to the wavelet transform processing device is changed so that data of two pixels are alternately input, the first rotation unit 1101 is not necessary.
[0109]
(Third embodiment)
In the first and second embodiments, the horizontal DWT processing unit 905 is based on the configuration shown in FIG. 2, but may be configured to be used in a general FIR filter. In this case, the low-frequency conversion coefficient and the high-frequency conversion coefficient are calculated by separate arithmetic units.
[0110]
Here, it is assumed that the wavelet transform filter has a linear phase, that is, wavelet transform filter coefficients are symmetric.
[0111]
FIG. 7 shows a configuration of a two-dimensional wavelet transform processing apparatus in the third embodiment. 7 except the data input unit 1401 shown in FIG. 9 and the filter calculation unit 1402 shown in FIG. 8 are the same as those described with reference to FIG. 5 in the second embodiment. is there.
[0112]
FIG. 8 is a schematic diagram showing the configuration of the filter calculation unit 1402. In the figure, 1201 is filter input data, 1202 is an adder for adding two input data having the same filter multiplication coefficient, 1203 is a coefficient multiplier, and 1204 and 1205 are adders for summing the multiplication results.
[0113]
Next, the configuration of the entire wavelet transform processing unit when horizontal wavelet transform processing is performed using the filter calculation unit 1402 shown in FIG. 8 will be described.
[0114]
Although it is necessary to input the same number of pixel data as the number of taps of the filter to the filter calculation unit 1402, unlike the configuration shown in FIG. 1, since there is no buffer inside the conversion processing unit, data writing to the buffer, Pixel data can be input without worrying about reading. In other words, even when a plurality of types of data conversion processes are alternately performed, there is no need to worry about the state inside the filter calculation unit 1402.
[0115]
In order to alternately convert a plurality of types of data, it is necessary to simultaneously switch all input pixel data. For example, if the number of filter taps for obtaining the transform coefficient is 9, nine data must be switched simultaneously. Since it is inefficient to receive such data directly from the memory, a new data input unit 1401 corresponding to the data supply unit 1401 is also required for the part that supplies data to the filter operation unit 1402.
[0116]
Since pixel data obtained from a CCD or a scanner is generally generated in a raster scan order, the pixel data generated in the raster scan order will be received and processed below. A data input unit 1401 shown in FIG. 9 corresponds to pixel data generated in the raster scan order. In the figure, 1301 is a terminal for inputting pixel data in the raster scan order, 1303 is a first line memory having a capacity for one line, and 1305 is a second line memory having a capacity of half of one line. , 1307 and 1309 are shift registers in which nine registers are connected, and 1311 is a selector that switches nine pixel data of two systems.
[0117]
Hereinafter, a specific operation of the data input unit 1401 will be described.
[0118]
First, input pixel data for the first line input from the terminal 1301 of the data input unit 1401 shown in FIG. 7 is stored in the first line memory 1303. Considering the processing cycle (period) of the wavelet transform processing unit which is an important component of the present invention as a reference, the overall processing balance is best when two pixel data are input during one cycle. Here, it is assumed that pixel data is input at such a rate.
[0119]
Next, while storing the input pixel data of the second line in the second line memory 1305, the data is read out from the first line memory 1303 and the second line memory 1305 one pixel at a time in each cycle, and the shift register 1307 is read. , 1309 to send data. If reading from the second line memory 1305 is delayed by one cycle rather than starting reading data from both line memories 1303 and 1305 at the same time, it is convenient for the reason described later.
[0120]
Since the second line memory 1305 stores two pixel data in one cycle and outputs one pixel data, only half of the data remains when all the pixel data of the second line has been stored. Absent. Therefore, the capacity of the second line memory 1305 only needs to be able to store half the data of one line.
[0121]
The pixel data taken into the shift registers 1307 and 1309 are alternately switched by the selector 1311 every cycle and processed by the filter operation unit 1402 shown in FIG. The phase of the pixel data in the shift register 1309 is one cycle later than that of the shift register 1307, but the timing at which the selector 1311 selects the two shift registers 1307 and 1309 is also shifted by one cycle. Thus, the selector output has the same phase data. Based on the nine data of the same phase for the two lines output in this way, the filter operation unit 1402 calculates and outputs the wavelet transform coefficients for the low frequency band and the high frequency band.
[0122]
Since the output timing of the conversion coefficient is the same as that of the second embodiment, if the conversion coefficient is rearranged by the rotation unit 903 and then converted by the vertical DWT processing unit 901, the conversion coefficient output timing is the same as that of the second embodiment. A transform coefficient that has been two-dimensional wavelet transformed at the same timing can be obtained.
[0123]
(Fourth embodiment)
Here, a configuration in which two line memories used on the input side of the filter calculation unit 1402 in the third embodiment are moved to the output side of the filter calculation unit 1402 will be described. However, although the total capacity of the line memories is the same as that of the third embodiment, each line memory having a capacity of 1/2 line is divided into three.
[0124]
The wavelet transform process in the horizontal direction and the pixel data in the raster scan order are compatible with each other, and the pixel data can be directly input to the horizontal DWT processing unit for processing. The horizontal DWT processing unit may be a filter calculation unit having the configuration shown in FIG. 8, or may be a conversion processing unit having the configuration shown in FIG.
[0125]
FIG. 10 is a block diagram illustrating a configuration of a wavelet transform processing device according to the fourth embodiment. In the configuration of FIG. 10, pixel data in the raster scan order is received, and the horizontal DWT processing unit 1500 immediately performs horizontal wavelet transform processing. As in the third embodiment, pixel data is input by two pixels per cycle.
[0126]
The low-frequency and high-frequency conversion coefficients, which are the processing results of the 2n-th line by the horizontal DWT processing unit 1500, are stored in 1501 and 1503, respectively. Further, among the processing results of the 2n + 1th line, the high frequency conversion coefficient is stored in 1505, but the low frequency conversion coefficient is not stored anywhere and is immediately sent to the vertical DWT processing unit 901 via the selector 1511. In accordance with this, the low-frequency transform coefficient one line before is read from the line memory 1501 and sent to the vertical DWT processing unit 901 together with the other coefficient of the two low-frequency transform coefficients arranged vertically.
[0127]
Thereby, the vertical DWT processing unit 901 can continuously convert the low-frequency conversion coefficient in the horizontal direction. During this time, all the horizontal high-frequency conversion coefficients of the (2n + 1) th line are stored in the line memory 1505.
[0128]
When the pixel data input for the 2n + 1 line is completed, the processing of the low-frequency conversion coefficients for the 2n and 2n + 1 lines is also completed. The data is read and sent to the vertical DWT processing unit 901 via the selector 1511 to perform conversion processing.
[0129]
Just as the processing of the low frequency conversion coefficient is performed in synchronization with the input of the pixel data of the 2n + 1 line, the processing of the high frequency conversion coefficient is performed in synchronization with the input of the pixel data of the 2n + 2 line. The pixel data of the (2n + 2) th line input during the processing of the high-frequency transform coefficient is subjected to the horizontal wavelet transform process, and the processing result is stored in the same place as the 2nth line. The line memory 1503 for storing the high-frequency conversion coefficient has the same ratio of the data to be output and the data to be stored. Therefore, the amount of data to be held does not change and the old data is updated to new data so that it is updated to new data. .
[0130]
As described above, transform coefficients subjected to two-dimensional wavelet transform can be obtained. However, the output order of transform coefficients is different from the conventional ones, and the low-frequency and high-frequency transform coefficients for image data for two lines are each pixel. Rather than alternately outputting lines each time data is processed, the horizontal DWT processing unit 1500 outputs low-frequency and high-frequency conversion coefficients for each line. In this way, by providing a line buffer that temporarily holds the low-frequency and high-frequency transform coefficients output for each line, one vertical wavelet and one horizontal one-dimensional wavelet transform processing unit can be used. Since a two-dimensional wavelet transform process can be performed, the hardware configuration can be reduced.
[0131]
(Fifth embodiment)
The first to fourth embodiments are premised on data input of 2 pixels per conversion processing cycle, but the fifth embodiment is suitable for data input at a rate of 1 pixel per conversion processing cycle. The configuration of the wavelet transform processing apparatus will be described.
[0132]
Simply reducing the data input to one pixel per cycle of the conversion process results in only an operation rate of 50% for each conversion processing unit and not effective use of hardware resources.
[0133]
Therefore, in the fifth embodiment, by performing both the vertical wavelet transform process and the horizontal wavelet transform process in one transform processing unit, the operation rate of the transform processing unit is set to 100%, and the hardware is effectively used. .
[0134]
The configuration of the fifth embodiment is shown in FIG. In the figure, 1601 is a selector for selecting and outputting one system from 2-input 2-system data, 1603 is a horizontal / vertical DWT processing unit, and 1605 is a data rotation unit that performs rotation processing of 2 × 2 data. is there.
[0135]
As in the first embodiment, from the memory or line buffer (not shown), one pixel from the end of each line of the two line data, that is, two vertical pixels, is sent to the DWT processing unit 1603 via the selector 1601. input.
[0136]
On the other hand, the DWT processing unit 1603 processes the input data in the vertical conversion mode.
[0137]
However, only four pixel data are input continuously in two cycles, and data input is stopped in the next two cycles. Since four pixel data are input in a total of four cycles, as described above, the data input rate is one pixel per cycle.
[0138]
The conversion processing unit 1603 outputs four sets of low-frequency conversion coefficients and high-frequency conversion coefficients in the vertical direction by processing the four pixel data input in the two-cycle period.
The conversion coefficients are rearranged by the rotation unit 1605 via the switches 1606 and 1607 as in the first embodiment, and two low-frequency conversion coefficients and two high-frequency conversion coefficients are sequentially selected. 1601 is input.
[0139]
In the two-cycle period in which the data input is stopped, the conversion coefficients rearranged by the rotation unit 1605 are selected by the selector 1601 and sent to the vertical / horizontal DWT processing unit 1603. In the horizontal conversion mode, the vertical / horizontal conversion processing unit 1603 performs wavelet conversion processing of two sets of two conversion coefficients input in succession for two cycles in the horizontal direction, and outputs them via switches 1606 and 1607. .
[0140]
The vertical / horizontal DWT processing unit 1603 basically has the configuration shown in FIG. 2, but the buffer in each arithmetic unit has a line memory corresponding to vertical conversion and a two-stage corresponding to horizontal conversion. The above-described operation can be performed by switching the register according to the conversion mode.
[0141]
The same applies even if two horizontal pixels of 2-line data are alternately input, the input data is processed in the horizontal conversion mode first, and the conversion coefficients rearranged in the rotation unit are then processed in the vertical conversion mode. The result can be obtained.
[0142]
In all of the first to fifth embodiments, only the forward wavelet transform process has been described. However, the reverse wavelet transform process differs only in that some multiplication operations are changed to subtraction, and the multiplication coefficient is different. Since the configuration of 2 and the upper configuration are the same in the forward direction and the reverse direction, the present invention can also be applied to the wavelet transform processing in the reverse direction.
[0143]
【The invention's effect】
As described above, according to the present invention, it is possible to realize a two-dimensional wavelet transform processing apparatus with a smaller hardware configuration by more effectively using hardware resources.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an arithmetic unit in an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration for performing a lifting operation for filter processing in which the operation units of FIG. 1 are connected in multiple stages.
FIG. 3 is a block diagram illustrating a configuration of a two-dimensional wavelet transform processing device according to the first embodiment of the present invention.
4 is a diagram conceptually showing the operation of the rotating unit of FIG. 3;
FIG. 5 is a block diagram illustrating a configuration of a two-dimensional wavelet transform processing device according to a second embodiment of the present invention.
6 is a diagram conceptually showing the operation of the rotating unit of FIG. 5;
FIG. 7 is a block diagram illustrating a configuration of a two-dimensional wavelet transform processing device according to a third embodiment of the present invention.
8 is a diagram illustrating a configuration of an FIR type filter calculation unit illustrated in FIG. 7;
9 is a diagram showing a configuration of a data input unit shown in FIG.
FIG. 10 is a block diagram illustrating a configuration of a two-dimensional wavelet transform processing device according to a fourth embodiment of the present invention.
FIG. 11 is a block diagram illustrating a configuration of a two-dimensional wavelet transform processing device according to a fifth embodiment of the present invention.
FIG. 12 is a diagram illustrating a conventional configuration when a 9 × 7 filter process is realized by a lifting operation.
FIG. 13 is a diagram illustrating a conventional configuration when a 9 × 7 inverse filter process is realized by a lifting operation.
FIG. 14 is a diagram showing a lifting grid structure expressing a lifting operation of 9 × 7 filter processing;
FIG. 15 is a diagram showing a lifting grid structure expressing a lifting operation of 9 × 7 inverse filter processing;
FIG. 16 is a block diagram showing a configuration of a conventional two-dimensional wavelet transform processing device.
17 is a diagram showing that the buffer shown in FIG. 1 is composed of one stage of registers.
FIG. 18 is a diagram showing that the buffer shown in FIG. 1 is composed of two stages of registers.
FIG. 19 is a diagram showing that the buffer shown in FIG. 1 is composed of a line memory.
20 is a diagram illustrating a state in which any two adjacent arithmetic units of the four arithmetic units included in the vertical DWT processing unit illustrated in FIG. 3 are cascade-connected.
FIG. 21 is a diagram illustrating a state in which any two adjacent arithmetic units are cascade-connected among the four arithmetic units included in the horizontal DWT processing unit illustrated in FIG.
[Explanation of symbols]
503, 505, 901 Vertical DWT processing unit
501, 905 Horizontal DWT processing unit
511, 513 buffer
611, 615 adder
613 multiplier,
621 buffer
701-704 Lattice point data calculation unit
903, 1101, 1605 2 × 2 rotation unit
1311, 1511, 1601 selector
1303, 1305, 1501, 1503, 1505 Line memory
1401 Data input part
1402 Filter calculation unit
1603 Horizontal / Vertical DWT Processing Unit

Claims (2)

画像データを、リフティング格子構造の複数の演算ユニットを用いて、ウェーブレット変換するためのフィルタ装置であって、
ウェーブレット変換対象の画像データの水平、又は、垂直方向のいずれか一方の第1の方向をY軸、当該第1の方向に直交する第2の方向をX軸とし、前記X座標の画素位置x、Y座標の画素位置yの画素データをPx,yと定義し、前記画像データ中の、同じY座標位置の画素データの並びを行と定義したとき、
第i処理サイクル(i=0,1,2,…)で、前記第1の方向に隣り合う2つの画素データの組{Px+i,y,Px+i,y+1}を入力し、1行前に入力した画素データPx+i,y-1と、少なくとも当該画素データPx+i,y-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Px+i,y,Px+i,y+1}から、1つの低周波変換係数Liと、1つの高周波変換係数Hiとを出力する第1の方向のウェーブレット変換手段と、
前記第1の方向のウェーブレット変換手段の2処理サイクル分で生成された周波数変換係数Li,Hi及びLi+1,Hi+1を入力する毎に、当該4つの周波数変換係数を並べ替え、低周波換係数の組{Li,Li+1}と、高周波変換係数の組{Hi,Hi+1}をそれぞれを1処理サイクル単位に出力する並び替え手段と、
前記並び替え手段から低周波変換係数の組{Li,Li+1}を入力した1処理サイクルでは、1行前に入力した低周波変換係数Li-1と、少なくとも当該低周波変換係数Li-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Li,Li+1}から、1つの低低周波変換係数LLと、1つの低高周波変換係数LHとを出力し、前記並び替え手段から高周波変換係数の組{Hi,Hi+1}を入力した1処理サイクルでは、1行前に入力した高周波変換係数Hi-1と、少なくとも当該高周波変換係数Hi-1に基づいて演算した前記演算ユニットの演算結果とを用いて、入力した組{Hi,Hi+1}から、1つの高低周波変換係数HLと、1つの高高周波変換係数HHとを出力する第2の方向ウェーブレット変換手段と
を備えることを特徴とするフィルタ処理装置。
A filter device for wavelet transforming image data using a plurality of arithmetic units having a lifting grid structure,
The horizontal or vertical first direction of the image data to be wavelet transformed is the Y axis, the second direction orthogonal to the first direction is the X axis, and the pixel position x of the X coordinate , Pixel data at the pixel position y of the Y coordinate is defined as Px, y, and the line of pixel data at the same Y coordinate position in the image data is defined as a row,
In the i-th processing cycle (i = 0, 1, 2,...), Two sets of pixel data {P x + i, y , P x + i, y + 1 } adjacent in the first direction are input. And input using the pixel data P x + i, y-1 input one row before and the calculation result of the calculation unit calculated based on at least the pixel data P x + i, y-1 First-direction wavelet transform means for outputting one low-frequency transform coefficient L i and one high-frequency transform coefficient H i from the set {P x + i, y , P x + i, y + 1 }; ,
Each time the frequency transform coefficients L i , H i and L i + 1 , H i + 1 generated in two processing cycles of the wavelet transform means in the first direction are input, the four frequency transform coefficients are arranged. instead, low-frequency variable換係number set {L i, L i + 1 } and, a sorting means for outputting the set {H i, H i + 1 } of the high-frequency transform coefficients of each one treatment cycles,
In one processing cycle in which a set of low frequency conversion coefficients {L i , L i + 1 } is input from the rearranging means, the low frequency conversion coefficient L i-1 input one line before and at least the low frequency conversion coefficient One low-low frequency conversion coefficient LL and one low-high frequency conversion coefficient from the input set {L i , L i + 1 } using the calculation result of the calculation unit calculated based on L i-1 LH is output, and in one processing cycle in which the set of high-frequency conversion coefficients {H i , H i + 1 } is input from the rearranging means, the high-frequency conversion coefficient H i-1 input one line before and at least the relevant One high / low frequency conversion coefficient HL and one high / high frequency are input from the input set {H i , H i + 1 } using the calculation result of the calculation unit calculated based on the high frequency conversion coefficient H i−1. Second directional wavelet transform means for outputting a transform coefficient HH. Filtering device according to symptoms.
前記第2の方向のウェーブレット変換手段は、FIRフィルタであることを特徴とする請求項1に記載のフィルタ処理装置。  The filter processing apparatus according to claim 1, wherein the wavelet transform unit in the second direction is an FIR filter.
JP2002024110A 2001-03-13 2002-01-31 Filter processing device Expired - Fee Related JP4217408B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002024110A JP4217408B2 (en) 2001-03-13 2002-01-31 Filter processing device
US10/092,573 US6904177B2 (en) 2001-03-13 2002-03-08 Filter processing apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001071092 2001-03-13
JP2001-71092 2001-03-13
JP2002024110A JP4217408B2 (en) 2001-03-13 2002-01-31 Filter processing device

Publications (2)

Publication Number Publication Date
JP2002359849A JP2002359849A (en) 2002-12-13
JP4217408B2 true JP4217408B2 (en) 2009-02-04

Family

ID=26611180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002024110A Expired - Fee Related JP4217408B2 (en) 2001-03-13 2002-01-31 Filter processing device

Country Status (1)

Country Link
JP (1) JP4217408B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650416B2 (en) 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
JP2005268908A (en) 2004-03-16 2005-09-29 Fuji Film Microdevices Co Ltd Wavelet converter

Also Published As

Publication number Publication date
JP2002359849A (en) 2002-12-13

Similar Documents

Publication Publication Date Title
US6157676A (en) Digital video signal inter-block interpolative predictive encoding/decoding apparatus and method providing high efficiency of encoding
JP5623565B2 (en) Apparatus and method for encoding and calculating a discrete cosine transform using a butterfly processor
JP2006180509A (en) Method and system for fast implementation of subpixel interpolation
JPH01226274A (en) Method and system for picture compression processing
US6223193B1 (en) Macroblock variance estimator for MPEG-2 video encoder
JPH06205388A (en) Picture coder
EP0809404B1 (en) Apparatus for coding an object region of a video signal by using a rearranged block-based technique
US6904177B2 (en) Filter processing apparatus
JP3796432B2 (en) Filter processing apparatus and filter processing method
JP2003298846A (en) Two-dimensional subband encoding device
JPS622721A (en) Coding and decoding device for picture signal
JP4217408B2 (en) Filter processing device
US8787686B2 (en) Image processing device and image processing method
US7940991B2 (en) Image signal processing apparatus
JP4257145B2 (en) Image compression apparatus and image processing system
JP3757116B2 (en) Deblocking filter calculation device and deblocking filter calculation method
US6941025B2 (en) Simultaneous vertical spatial filtering and chroma conversion in video images
JP4266512B2 (en) Data processing device
JP2006340300A (en) Signal processing method, signal processing apparatus, signal processing program and information recording medium
JP2001285643A (en) Image converting apparatus and method
JP4700838B2 (en) Filter processing device
JPH08307868A (en) Moving image decoder
KR101383515B1 (en) Apparatus for inverse-transforming image
JP2002152045A (en) Filter processing apparatus for image data and its control method
JP4444480B2 (en) Filter processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081002

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees