JP3796432B2 - フィルタ処理装置およびフィルタ処理方法 - Google Patents
フィルタ処理装置およびフィルタ処理方法 Download PDFInfo
- Publication number
- JP3796432B2 JP3796432B2 JP2001335185A JP2001335185A JP3796432B2 JP 3796432 B2 JP3796432 B2 JP 3796432B2 JP 2001335185 A JP2001335185 A JP 2001335185A JP 2001335185 A JP2001335185 A JP 2001335185A JP 3796432 B2 JP3796432 B2 JP 3796432B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- filter
- integer
- output
- calculation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Picture Signal Circuits (AREA)
Description
【発明の属する技術分野】
本発明はフィルタ処理装置及びその制御方法に関するものである。
【0002】
【従来の技術】
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積・伝送する際にはデータ量が膨大になってしまうという問題がある。このため画像の蓄積・伝送に際しては、画像の持つ冗長性を除く、或いは画質の劣化が視覚的に認識し難い程度で画像の内容を変更することによってデータ量を削減する高能率符号化が用いられる。
【0003】
例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJEPGでは、画像データをブロックごと(8画素×8画素)に離散コサイン変換(DCT)でDCT係数に変換した後に、各係数を各々量子化し、さらにエントロピー符号化することにより画像データを圧縮している。ブロックごとにDCT、量子化を行なっているので、復号画像の各ブロックの境界で、所謂ブロック歪みが見える場合がある。
【0004】
一方、新しい静止画像の国際標準符号化方式としてJPEG2000が検討されているが、JPEG2000では、量子化の前に行う前処理の1つとして、ウェーブレット変換が提案されている。ウェーブレット変換は、現行JPEGのようにブロック単位で処理を行うのではなく、入力データを連続的に処理するので、復号画像の劣化が視覚的に見えにくいといった特徴がある。
【0005】
JPEG2000で用いられる離散ウェーブレット変換は、画像データを低域周波数成分と高域周波数成分とに分けるフィルタ処理として位置付けられる。通常、フィルタ処理は、フィルタ係数と画像データとのコンボリューション(畳み込み)演算によって行なわれるが、JPEG2000で用いられる下記の離散ウェーブレット変換は、前記畳み込み演算の他に、Lifting Schemeによる方法が適用できる。
・Daubecheis 9/7 Filter (以下、9×7フィルタと称す)
・ 〃 5/3 Filter (以下、5×3フィルタと称す)
以下、Lifting Schemeについて説明する。
【0006】
<Lifting Schemeの説明>
図1に順方向のLifting Scheme、 図2に逆方向のLifting Schemeの基本構成を示す。図の中のp, uはLifting係数と呼ばれるもので、図3に、5×3フィルタのフィルタ係数を、図4に該5×3フィルタのLifting係数を示す。
【0007】
図4に示すLifting係数
p=(−1,−1)/2
u=( 1, 1)/4
を元に、以下、図1の動作について説明する。
【0008】
Xは入力画像データであり、同図に示すように、X0, X1, X2, X3, X4, X5 ...の順に入力される。入力画像の先頭から、偶数系列の画素データと奇数系列の画素データとに分類される。
【0009】
奇数系列の画素データ(X1,X3,X5,X7...)は、間引きユニット105にて入力画像データを先頭から1つおきに間引いて(ダウンサンプリングして)生成する。
【0010】
偶数系列の画素データ(X0,X2,X4,X6...)は、遅延ユニット101にて画像データを1画素遅延させ、その後、間引きユニット103にて1画素遅延後の画像データを1つおきに間引いて(ダウンサンプリングして)生成する。
【0011】
2つの間引きユニットは同じタイミングで動作しているため、前記遅延ユニット101で1画素遅延させたデータと、遅延させない入力画像データを各々間引くことによって、間引き位相の異なる前記2つの系列の画素データが生成できるわけである。
【0012】
乗算器107にて、偶数系列の画素データに、Lifting係数pを乗算し、乗算結果を加算器109にて、奇数系列の画素データに加算して、高域側の変換係数X'o(X'1,X'3,X'5,X'7...)を演算する。
【0013】
Lifting係数の乗算と該乗算結果の加算処理は、Lifting Schemeにおいて1つの単位となる処理で、これをLifting演算ステップと言う。
【0014】
Lifting係数pは2つの成分を持つベクトルデータであり、連続する2つの偶数系列の画素データに、各成分(係数値)を乗算し、2つの乗算結果の和がLifting係数pの乗算結果となる。
【0015】
乗算器111におけるLifting係数uの乗算も同様に行なう。乗算対象は演算したばかりの高域側の変換係数X'oである。該乗算結果を、加算器113にて偶数系列の画素データに加算して、低域側の変換係数X'e(X'0,X'2,X'4,X'8...)を求める。
【0016】
上述した処理を具体的に式で示すと、
(高域側の変換係数):
X'2n+1=X2n+1+(−X2n−X2n+2)/2 (1)
(低域側の変換係数):
X'2n =X2n +(X'2n−1+X'2n+1)/4 (2)
となる。
【0017】
上記の処理は水平方向に1回、垂直方向に1回の併せて2回行うことを1セットとし、低域成分についてこれを数セット繰り返すことで離散ウェーブレット変換が行われる。この後は、量子化、エントロピー符号化を行い、最終的に符号化された画像データを生成することになる。一方、復号化する側では、この処理を逆に行うことで、元の画像に復元することになる。
【0018】
ここで、符号化側からび復号化側への一連の処理を想定すると、次の様になる。なお、説明を簡単にするため、量子化、エントロピー符号化は省略する。また、入力画像データをD、離散ウェーブレット変換をDWT、その逆変換をIDWTとする。
【0019】
D→DWT→IDWT→D
このように元の画像Dを復元できることを意味する。すなわち、上記の変換過程は、数学的に見た場合に可逆であると言える。しかしながら、回路、或いはソフトウェアでこれを実装する場合、「可逆」にはなりずらい。理由は次の通りである。
【0020】
元の画像データは一般的に整数値であるが、上記のフィルタ処理を1回行なうと浮動小数点型のデータになり、小数部が例えば3ビット発生する。2次元フィルタ処理では、先に説明したように、水平方向に1回と垂直方向に1回の合わせて2回、上記フィルタ処理を行なうので、途中で小数部の丸め処理を行なわなければ、最終的に6ビットの小数部が発生する。さらに、該フィルタ処理を再帰的に何度も行なえば、それに比例して小数部は増加する。
【0021】
6ビット以上もあるような小数部をそのままにしておくと、データ量が増えてしまうので、通常は、丸め処理をして整数化をした後に保存する。画像データ圧縮時には、整数化、或いは量子化を行ない、フィルタ処理した後のデータをさらに削減する。
【0022】
フィルタ処理した結果を、丸め処理したり量子化したりすると、情報を失うことになるので、逆方向のフィルタ処理(復号化する側での処理になる)をしても、元の画像データと同じデータに戻ることはない。したがって、回路やソフトウェアとして実装した場合には、「可逆」にはならない。
【0023】
以上が順方向のフィルタ処理であるが、次に逆方向の処理について簡単に説明する。
【0024】
図2に示す、逆方向のLifting Schemeにおける処理も順方向の処理と似た処理を行なう。処理内容を式で示すと、
(偶数系列の画素):
X2n =X2n−(X'2n−1+X'2n+1)/4 (3)
(奇数系列の画素):
X2n+1=X’2n+1−(−X2n−X2n+2)/2 (4)
となる。順方向の処理と異なるのは、以下の3点である。
・2回のLifting演算ステップで使用するLifting係数の順序を逆にする。
・Lifting係数を乗算した結果を加算ではなく減算する。
・間引きユニットの替わりに、ゼロ挿入ユニットをLifting演算後に使用する。
【0025】
図2におけるユニット209と213が上記減算を行なう減算器であり、ユニット203と205がゼロ挿入ユニットである。
【0026】
あとは、位相合わせのために、遅延ユニット201にてゼロ挿入された奇数系列の画素データを1画素分遅延させる。この結果、ゼロでない有効な画素データが偶数系列側と奇数系列側から交互に得られるようになる。それを1系列に合成することにより、元の画像データを順方向フィルタ処理と逆方向フィルタ処理したデータを得ることができる。
【0027】
フィルタのタップ数が変われば、Lifting係数、Lifting演算ステップの回数が変わってくる。例えば、前記9×7フィルタでは、Lifting演算ステップの回数が4回になる。
【0028】
Lifting Schemeを用いると、積和演算が畳み込み演算処理に比べて少ない回数で実現できるため、インプリメントが効率化される上、さらに、後述する整数型の可逆変換が可能になる。
【0029】
<可逆変換の説明>
先に説明したように、数学的可逆であっても、実装した場合には可逆(以下、実装可逆という)になるとは限らない。以下、より詳しく説明する。
【0030】
広義の可逆変換とは順方向にフィルタ処理(変換処理)した変換係数データを、逆方向にフィルタ処理すると完全に元のデータに戻すことができる変換である。可逆変換のこの性質を可逆性、或いは可逆的と言う。数学的に可逆変換と言われるものがこの範疇に入る。具体的には、DCT変換等のように変換行列が正規直交行列で表わされるようなものや、上記Lifting Schemeで演算されるフィルタ等がある。広義の可逆変換では、実数演算時の誤差が大きい場合、繰り返し処理で誤差が累積することにより、逆変換しても元に戻らないことがある。そのため演算ビット長に配慮する必要がある。その意味と以下に説明する整数型と対比するため、広義の可逆変換を以下では実数型の可逆変換と言う。
【0031】
実数型の可逆変換は、可逆性を保つために保持しなければならない総データ量(データ数×ビット長)が増える。変換を再帰的に何度も行なう場合、該データ量は元データの何倍にも増える。よって、データの圧縮が目的で変換処理をする場合、可逆性を犠牲にして、非可逆の圧縮を行なうのが一般的である。画像データ(静止画、動画)圧縮に用いられるJPEG,H261,MPEG1/2/4等はその代表である。
【0032】
それに対して、整数型の可逆変換は、フィルタ処理後のデータが入力データと同じ整数(入力が固定小数点データなら出力も同じ固定小数点データというケースもある)でありながら、逆変換処理で元のデータに戻る変換処理である。該可逆変換は、上記実数型の可逆変換結果を単純に丸め処理して整数化すれば実現できると言ったものでは無く、後述するように各Lifting演算ステップにおいて、整数化のための丸め処理を行なうことによって実現できる。これを狭義の可逆変換と言い、これ以降、単に可逆変換(可逆フィルタ)と言えば、狭義の可逆変換、すなわち、整数型の可逆変換のことをさす。
【0033】
ある変換が可逆的であることを示すには、順方向の可逆変換とそれに対応する逆方向の可逆変換を対で示す必要がある。
【0034】
Lifting Schemeを用いて可逆フィルタ処理を実現するには、前述したように各Lifting演算ステップにおいて丸め処理を行なうわけだが、さらに詳しく言うと、各Lifting演算ステップにおいて、Lifting係数乗算後の結果を加減算する前に丸め処理を行なう、ということである。
【0035】
以下では、可逆変換可能な5×3フィルタ(以下、可逆5×3フィルタと言う)を例にとり、可逆性について説明する。そのために、順方向可逆変換の後、直ちに逆方向可逆変換を行なう処理系を図5に示す。
【0036】
同図において、501、503,505、507は入力データを超えない最大の整数値を取り出すfloor関数演算ユニット、502と504はLifting係数を乗算したデータに0.5を加算する加算ユニットである。その他のユニットは、前記図1及び図2で用いていた同一番号ユニットとまったく同じである。同図における加算器と減算器には、整数データのみしか入力されず、出力も当然整数データとなる。このようなLifting演算を整数型Lifting演算と言い、可逆変換を実現するために用いられる。
【0037】
図5の左側から入力した画像データ(整数値)を、順方向フィルタ処理部540で処理し、次に逆方向フィルタ処理部550で処理した結果が、元の入力とまったく同じになることを説明することによって、該フィルタ処理(変換処理)が可逆的であることを示す。
【0038】
まず、図5における4つの加算器と減算器の入力は全て整数値であり、その出力も整数値にであることに注目してもらいたい。
【0039】
説明の方針として、以下の性質(a)(b)が成り立つことを説明した後、性質(c)を用いて、フィルタ処理前後の偶数画素系列・奇数画素系列がそれぞれ等しいことを示す。
(a)順方向フィルタ処理部540内のfloor関数演算ユニット503の出力と、逆方向フィルタ処理部550内のfloor関数演算ユニット505の出力とが等しい。
(b)順方向フィルタ処理部540内のfloor関数演算ユニット501の出力と、逆方向フィルタ処理部550内のfloor関数演算ユニット507の出力とが等しい。
(c)加算した値と同じ値を減算すれば、加算前の元の値に戻る。
【0040】
乗算器111と211は同じLifting係数uを乗算するものであり、乗算対象となるデータ系列も同じ高域側の変換係数X'oである。よって、該2つの乗算器の出力は等しい。該出力をそれぞれ加算ユニット502、504において0.5を加算し、floor関数演算ユニット503、505を経由して得られる結果も当然等しくなる。これで性質(a)が成り立つことが言える。これに性質(c)を利用すると、加算器113に入力される偶数画素系列Xeと減算器213から出力される偶数画素系列も等しいことが言える。
【0041】
次に、乗算器107と207も同じLifting係数pを乗算するものであり、乗算対象となるデータ系列も上述の偶数画素系列Xeである。よって、該2つの乗算器の出力も等しいことが言える。該出力をそれぞれ同じ機能のfloor関数演算ユニット501、507で処理した結果も当然等しくなる。これで性質(b)も成り立つことが言えた。これに性質(c)を利用すると、加算器109に入力される奇数画素系列Xoと減算器209から出力される奇数画素系列も等しいことが言える。よって、図5に示す順方向フィルタ処理部540と逆方向フィルタ処理部550は、それぞれ可逆的であると言える。
【0042】
順方向フィルタ処理部540の出力は、整数値であるため整数化のための丸め処理は不要であり、該整数値の出力を直接、逆方向フィルタ処理部550に入力することが出来る。データ圧縮時に用いる量子化処理で量子化ステップを“1”に設定すれば、該量子化処理で情報が欠損しないので、可逆の圧縮を行なうことができる。一方、量子化ステップを“1”より大きく設定すれば、情報の欠損が生じるので、圧縮率は高くなるが可逆では無くなる。
【0043】
上述したように、Lifting Schemeを用いることにより、可逆変換が可能になる。ここで、フィルタの種類とそれを実現する演算手法との関係を整理すると以下のようになる。
・インパルス応答が有限なフィルタ処理は畳み込み演算で実現可能
・一部のフィルタ処理はLifting Schemeで実現可能(一部は不可)
・Lifting Schemeで実現できる実数型のフィルタは可逆変換可能・上記実数型の可逆フィルタにおいてLifting演算を整数型にすることで、整数型の可逆フィルタ処理を実現することが可能
よって、ほとんどのフィルタ処理は畳み込み演算で実現できるのに、整数型の可逆フィルタ処理は畳み込み演算を用いては実現できない。これでは、Lifting Schemeでは実現できない(畳み込み演算でしか実現できない)フィルタ処理と整数型の可逆フィルタ処理の両機能が必要な場合、別々の処理部(回路)で実現しなければならない。
【0044】
また、整数型の可逆フィルタ処理を行なう際には、整数型のLifting演算を行なう必要があるため、実数型のフィルタ処理を同時に行なうことが出来ず、整数型と実数型の両方のフィルタ処理結果を同時に得ることも出来ない。
【0045】
【発明が解決しようとする課題】
以上の如く、これまでは可逆フィルタ処理を畳み込み演算で実現することができなかったので、畳み込み演算でしか実現できないフィルタ処理と可逆フィルタ処理の両機能が必要な場合、別々の処理部(回路)で実現しなければならず、フィルタ処理装置の規模が大きくなり、安価なコストでフィルタ処理装置を構成することができない、と言った問題があった。
【0046】
また、整数型の可逆フィルタ処理と実数型のフィルタ処理を同時に行なうことが出来ず、整数型と実数型の両方のフィルタ処理結果を同時に得ることが出来ず、例えばこれらを備えるチップを製造するには、2種類のフィルタを実装しなければならなかった。
【0047】
本発明はかかる問題点に鑑みなされたものであり、特に、JPEG2000におけるウェーブレット変換等に適用でき、可逆性を有しながらも畳み込み演算により実現しうるフィルタ演算装置及び方法、並びにコンピュータプログラム及び記憶媒体を提供しようとするものである。
【0048】
【課題を解決するための手段】
この課題を解決するため、例えば本発明のフィルタ処理装置は以下の構成を備える。すなわち、
入力データにおける偶数系列の入力Xe及び奇数系列の入力Xoを取得する取得手段と、
前記偶数系列Xeを用いて前記奇数系列Xoを演算処理することにより、奇数系列の出力X’oを出力する第1演算手段と、
前記出力X’oを用いて前記偶数系列Xeを演算処理することにより、偶数系列の出力X’eを出力する第2演算手段と、
前記出力X’oの小数部データに演算を施して、前記出力X’eに加算することにより、偶数系列の出力X”eを出力する小数部演算手段と、
前記出力X”e及び奇数系列出力X’ o を整数化する丸め処理手段とを有する。
【0049】
また、本発明のフィルタ処理方法は、
入力データにおける偶数系列の入力Xe及び奇数系列の入力Xoを取得する取得ステップと、
前記偶数系列Xeを用いて前記奇数系列Xoを演算処理することにより、奇数系列の出力X’oを出力する第1演算ステップと、
前記出力X’oを用いて前記偶数系列Xeを演算処理することにより、偶数系列の出力X’eを出力する第2演算ステップと、
前記出力X’oの小数部データに演算を施して、前記出力X’eに加算することにより、偶数系列の出力X”eを出力する小数部演算ステップと、
前記出力X”e及び奇数系列出力X’oを整数化する丸め処理ステップとを有する。
【0052】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を説明するが、先ず、基本部分について説明する。
【0053】
先ず、本発明の基礎概念について説明する。
【0054】
図27は、整数型Lifting演算部の符号化側及び復号化側の概念図(整数化Lifting)である。なお、ここでは説明を簡単にするため、図示では量子化ステップを“1”とし(量子化が存在しない場合と等価)、エントロピー符号化及び復号化にかかる構成については省略して示している。
【0055】
図示において、X2n、X2n+1は多値画像(例えば8ビットの整数値の画素データ)である。入力される水平方向の画素データをX0,X1,X2,X3,X4…と表現したとき、X2nはX0,X2,X4…と偶数番目の画素データを示し、この順序で入力されるものである。また、X2n+1はX1,X3,X5…と奇数番目の画素データを示し、やはりこの順序で入力されるものである。かかる入力はダウンサンプリング処理で生成される。
【0056】
さて、図示の符号化側の出力θbに着目してみる。このθbの或る値θbnは、次のようにして演算されたものと等価となる。
【0057】
θbn=θ'b+整数化(k0×(θa2n-1+θa2n+1))
ここで、注目したいのは、θ'bも同様の丸め演算によって算出されたものであるので整数になっている点である。すなわち、図示のようにLighting係数が何でもあっても、その後に丸め演算(整数化)を施すことによって、値は整数として保持されることになる。
【0058】
一方、復号化側では、符号化側における処理とちょうど逆順に処理することになる。ここで、復号化側におけるθ''bに着目すると、このθ''bは、Lifting演算K’によって算出された値をθbから減じた値である。しかるに、このLifting演算K’は、符号化側のLifting演算Kと全く同様に、共通のθaに対する演算値を有する。すなわち、加算したものを減算しているだけであるので、符号化側でのθ'bと、復号化側でのθ''bとは完全に等しいことがわかる。これはLifting演算係数k2が如何なるものであっても成立することが理解できよう。
【0059】
上記では、θbについて説明したが、θaについても全く同様なことが言える。より細かくは、1つのLifting演算によって生成された出力データ(整数)は、必ず可逆にすることができる。以上が整数型Lifting演算によるフィルタの構成である。
【0060】
次に、整数型Lifting演算のモデルとして、図28(a)のよう構成について考察してみる。図示では、2つのLighting演算部(2段のLifting演算部)で構成される例を示している。ここでは入力される信号(データ)系列をXe、Xoとし、2つの演算結果により出力される信号(データ)系列をX'e、X'oと表現する。言うまでもないが、これら信号系列Xe、Xo、X'e及びX'oの各データは整数である。
【0061】
また、Lifting演算係数p、uであるが、JPEG2000におけるフィルタタイプとして5×3フィルタを例にして説明する。よって、Lifting演算係数pは−(p0,p1)=−(1/2、1/2)、演算係数uは(u0,u1)=(1/4、1/4)であるとして説明する。
【0062】
さて、同図(a)であるが、その意味するところを式で示すと次の通りである。すなわち、
X'on=Xon−floor(p0・Xen-1+p1・Xen+1)
X'en=Xen+floor(u0・X'on-1+u1・X'on+1+0.5)
ここで、floor(x)はxを越えない最大整数を返す関数(もしくは回路)である。
【0063】
さて、図28(b)は同図(a)の等価な回路構成である。図示でceiling(x)とは、xを越える最小整数を返す関数(もしくは回路)である。等価である理由は次の通りである。
【0064】
先ず、演算器1の出力について考察する。
【0065】
同図(a)におけるX'oは、XeにLifting演算係数pによる乗算結果に対してfloor演算した結果を、入力されるデータXo(整数であることに注目されたい)から減じることを示しているわけであるから、floor演算は、データXoから減じる値を小さくする方向に作用していることになる。換言すれば、この場合のfloor演算は、その減算結果(演算器1の出力)を大きくするように作用していることに他ならない。
【0066】
したがって、同図(b)におけるceiling演算(及びその位置)によって、その演算内容は同図(a)と等価となる。
【0067】
なお、上記の点は、同図(a)と同図(b)の関係が、
整数−floor(実数)=ceiling(整数−実数)
となっていると言えば、より分かりやすい。
【0068】
次に、図28(a)の演算器2の出力について考察する。演算器2における演算内容を簡単に表現すると次の通りである。
整数+floor(実数+0.5)
これは、次のように表現できるものである。
floor((整数+実数)+0.5)
図28(b)はまさにこれを表している。
【0069】
以上の通りであるから、図28(a)と同図(b)とは等価な回路構成であることがわかる。
【0070】
次に、図28(b)におけるceilingを実装する場合について考察する。
【0071】
ceilingは小数点以下を切り上げるものであるが、この場合小数点以下の情報は小数点第1位の1ビットしかなく、該1ビットは演算器1からの出力の最下位ビットである。よって、該最下位の1ビットを演算器1の出力値に加算すれば良い。或いは、それを最下位ビットを除く値(上位乃整数)に足しても同じ結果を得ることができる。
【0072】
これを表現したのが同図(c)である。すなわち、同図(c)は同図(b)、さらには同図(a)と等価となる。
【0073】
更に、同図(c)の演算係数uについて考察すると、分配法則に則って、同図(d)のように変更できることがわかる。
【0074】
同図(d)に着目すると、破線左側は実数演算処理、すなわち、実数型Lifting演算そのものであり、破線右側では整数化処理を行っていることになる。すなわち、同図(d)の構成にすることで、整数型Lifting演算を用いないで済み、実数型Lifting演算(丸め無し演算)と整数化演算で実現できることになる。
【0075】
図28(d)の構成をまとめると次の様になる。なお、実数型Lifting演算部における出力値(一時的な出力値)を図示の如くXet、Xotと表現する。
【0076】
先ず、実数型Lifting演算部では、次のような処理を行っていることになる。すなわち、
Xot2n+1=Xo−(Xe2n+X2n+1)×1/2
Xet2n=Xe2n+(Xot2n-1+Xot2n+1)×1/4
上記式は、図28(a)の基本構成における整数化(floor)を除いた実数型Lifting演算に他ならない。そして後続する整数化演算での処理は、上記式の演算結果を整数化するものであるが、分かりやすく説明するのであれば、上記算出結果に対して、あたかもそれぞれの式の右辺第2項の「(Xe2n+X2n+1)×1/2」及び「(Xot2n-1+Xot2n+1)×1/4」を整数化させたものと等価になるように補正していることに他ならない。
【0077】
図28(d)に示すように実数型Lifting演算は畳み込み演算で実現(実装)でき、その後に整数化演算を行えば良いので、非常に簡単な構成で実現できることになる。
【0078】
上記例では2段の整数型Lifting演算を、2段の実数型Lifting演算と後続する整数化演算に分ける例を示した。例えば4段の整数型Lifting演算は図29に示すように表現できるが、同図を見ると、2つの2段の整数型Lifting演算A,Bを数珠つなぎ(カスケード接続)にしたものとも考えられるので、それぞれについて上記の構成に分離させることができるのは明らかである。また、6段、8段についても同様である。
【0079】
また、復号化側でも整数型Lifting演算についても、同様の思想で実数型Lifting演算と整数化演算に分けることができるのは容易に理解でるであろうし、それが4段、6段、…となっていても同様である。以下、本実施形態における具体的な例を説明する。
【0080】
<第1の実施形態>
本発明の第1の実施形態では、可逆変換が可能な実数型のフィルタ演算を畳み込み演算で行なう。
【0081】
前記5×3フィルタを畳み込み演算で実現するハード構成は、図7のようになる。この図7の構成は、5×3フィルタが出力する高域変換係数と低域変換係数とを交互に出力するものであるため、構成が少し複雑になる。そこで、高域変換係数のみを演算する構成を図6(a)に、低域変換係数のみを演算する構成を図6(b)に示し、それについて説明した後に図7の構成について説明する。
【0082】
図6(a)、(b)の構成は、図3に示すフィルタ係数から容易に構成できる公知の技術内容であるため、簡単に説明する。
【0083】
同図において、601はフィルタ処理するためのデータを並列に5つ取り出すためのシフトレジスタ、603、613、615、617、633は加算器、605、623、625、627は係数を乗算する乗算器(係数が2のべき乗なので実際はビットシフトのみで実現できる)、そして、607、635は、減算器である。
【0084】
シフトレジスタ601への入力は8ビットの整数データ(画素データ)とする。
【0085】
図6(a)では、シフトレジスタから出力される5つのデータの内、3つのみを用いて高域変換係数を演算する。フィルタ係数が−1/2である2つのデータを、まず加算器603で加算して、それから乗算器605にて1/2を乗算し減算器607に入力する。一方、フィルタ係数が1の中央のデータは直接減算器607に入力する。該構成によりフィルタ係数[−1/2,1,−1/2]のフィルタ演算が実現される。
【0086】
図6(b)では、シフトレジスタから出力される5つのデータすべてを演算に用いる。フィルタ係数が3/4である中央のデータは、乗算器623にて1/2を乗算した結果と加算器615を経由して乗算器625にて1/4を乗算した結果を加算器633で加算することにより、3/4の乗算を実現している。フィルタ係数が1/4である2つのデータは、加算器613で加算し、加算器715をとおって前記乗算器625にて1/4を乗算している。フィルタ係数が−1/8である2つのデータは、加算器617にて加算して、乗算器627にて係数1/8を乗算した後、減算器635に入力している。以上の演算により、フィルタ係数[−1/8,1/4,3/4,1/4,−1/8]のフィルタ演算が実現される。上記演算後の出力データは、正のレンジが広がる上に、負の値になることがあるため、符号1ビットと符号を除く整数部1ビットが増えると供に小数点以下に3ビットの情報が付く。
【0087】
図7の構成は図6(a)と(b)を統合して、1サイクル毎に交互に高域変換係数と低域変換係数を出力するようにしたものである。よって、図7を構成するユニットは基本的に図6(a)(b)の構成ユニットと同じであり、一部が共用され、一部が追加される。追加されるユニットは、セレクタ711と713であり、共用されるユニットは、加算器603と613、減算器607と635であり、加算器613と減算器635を用いている。
【0088】
セレクタ711と713には、画像データの入力用のクロック(2分周することで論理highとlowを偶数、奇数画素データに割り当てることができる)がそれぞれ供給され、各々H側の端子に切り換わると高域変換係数が出力され、L側の端子に切り換わると低域変換係数が出力される。出力データの形式は、符号+整数部10ビット、小数部3ビットである。
【0089】
可逆変換可能な実数型のフィルタ演算を行なう1つの形態である上記構成から得られるデータに対し、図9に示す補正データ生成部と整数化丸め部とで、可逆変換可能な整数型のフィルタ処理結果に変換することで、図28(d)と等価回路が構成できる。
【0090】
前記図7の説明と同様、図9の説明も高域変換係数の処理と低域変換係数の処理に分けて説明する。図8(a)が高域変換係数の処理を表わし、(b)が低域変換係数の処理を表わす。
【0091】
図8では、符号+整数部10ビット、小数部3ビットの3つのデータを並列に3つ取り出すためのシフトレジスタ801を用いる。図8(a)に示す高域変換係数の処理は、シフトレジスタ801から出力される3つデータの中央が高域変換係数(実数値)になるタイミングで行なう。
【0092】
該中央のデータのみに対して、803の加算ユニットにて0.5を加算し、805のfloor関数演算ユニットにて該加算結果を超えない最大の整数値を求め出力する。この出力は整数化された高域変換係数である。
【0093】
図8(b)に示す低域変換係数の処理は、シフトレジスタ801から出力される3つデータの中央が低域変換係数(実数値)になるタイミングで行なう。
【0094】
低域変換係数の両側の高域変換係数各々から小数点第1位のビットのみを取り出し、それを加算器813にて正の値として加算する。結果は、整数部1ビットと小数部1ビットの正の数である。該結果に係数1/4を乗算器815にて乗算し、小数点第2位と第3位のデータに変換する。このデータは補正データとして加算器817にて、低域変換係数(実数値)に加算する。該加算結果に、加算ユニット819にて0.5を加算し、floor関数演算ユニット821にて該加算結果を超えない最大の整数値を求め出力する。これが整数化された低域変換係数である。
【0095】
図9の構成は、図8(a)と(b)の機能を統合したものであって、1サイクル毎に交互に整数値の高域変換係数と低域変換係数を出力するようにしたものである。よって、図9を構成するユニットは基本的に図8(a)(b)の構成ユニットと同じであり、一部が共用され、一部が追加される。共用されるユニットは、加算ユニット803と819、floor関数演算ユニット805と821であり、追加されるユニットは、ゲートユニット831である。低域変換係数出力時には前記補正データを有効にし、高域変換係数出力時には前記補正データをマスクして無効化するように制御する。
【0096】
以上説明したように、可逆変換が可能な実数型のフィルタ演算処理部(図7)と、該演算結果から補正データを生成し、該補正データを加算後、整数化のための丸め処理を行なう処理部(図9)とによって、整数型Lifting演算を用いずに、可逆変換が可能な整数型のフィルタ演算処理装置を構成することができる。
【0097】
上記構成で、可逆変換可能なフィルタ処理ができる理由は、次の第2の実施形態で明らかになる。
【0098】
<第2の実施形態>
第2の実施形態では、Lifting Schemeを用いて、可逆変換が可能な実数型のフィルタ演算を行なう。本実施形態では、前記第1の実施形態を含めた可逆性の説明をするため、図5に示した順方向フィルタ処理部540から出発し、構成を少しずつ変形して、本実施形態の構成法を導き出す。なお、一部図28の説明と重複するが、改めて説明することとする。
【0099】
図5の順方向フィルタ処理部540から遅延ユニットと間引きユニットを除き、Lifting演算部のみを残した構成を図10(a)に示す。図10(a)からfloor関数演算ユニット501、503と加算ユニット502を、それぞれ減算器109、加算器113の入力側から出力側に移動すると、図10(b)のようになる。同図において、1001は、入力データに等しいかそれ以上の最小の整数値を出力するceiling関数演算ユニットである。
【0100】
図10(a)から図10(b)への変換に際し、以下の関係式を利用する。
N+floor(R+0.5)=floor(N+R+0.5) (5)
N−floor(R)=ceiling(N−R) (6)
上記式においてNは整数値、Rは実数値である。(5)(6)式の関係は、最初に説明した内容から容易に理解できよう。
【0101】
Lifting係数pの要素は−1/2であるため、上記(5)式における実際の実数値は、小数点以下が1ビットしかない。よって、celing関数演算ユニットに入力されるデータは整数値か、整数値+0.5のいずれかである。入力データが整数値の場合には該入力データがそのまま出力データとなり、入力データが整数値+0.5の場合には該入力データに0.5を加算した値が出力データとなる。どちらの場合も、入力データの小数点第1位のビットのみを、該入力データに加算して得られる結果と同じである。
【0102】
そこで、図10(b)は、図10(c)のように変形できる。図10(c)において1003は、減算器109の出力データに、該データの最下位ビット(以下、LSBと称す)である小数点第1位のビットのみを加算する1ビット加算器である。乗算器111は、該加算結果に対してLifting係数を乗算するので、ここに四則演算に関する分配則を適用して、図10(c)を図11(a)のように変形することができる。
【0103】
分配法則を適用することにより、新たな乗算器1103と加算器1105が必要となる。これら乗算器と加算器は、減算器109の出力データのLSBデータのみに対してLifting演算を行なうものである。この図11(a)において、実数型のLifting演算部と、整数化のためのその他の演算に分離できた。破線1101の左側が実数型のLifting演算部で、右側が整数化のための演算部である。実数型のLifting演算結果は同図の減算器109と加算器113から出力される。図11(a)は第2の実施形態の1つの構成である。
【0104】
前記実数型のLifting演算部を、前記畳み込み演算処理部並びに変換係数を高域変換係数と低域変換係数とに分ける変換係数分離部に置き換えても、図10(a)と同じ機能を実現できる。図11(a)のままでは、前記第1の実施形態との関係が不明確である。そこで図11(a)を図11(b)に変形する。
【0105】
1102は502と同じ0.5を加算する加算ユニット、1103は503と同じfloor関数演算ユニットである。小数点第2位以下の情報がない実数値の場合、実数値の小数点第1位のビットを該実数に加算するということは、該実数値に0.5を加算してfloor関数を求めることと等価である。よって、このように変形できる。
【0106】
図11(b)の構成は、実数型の可逆フィルタ処理を行なう第1のLifting演算部(破線の左側)と、該演算結果の一部のビットデータのみをLifting演算処理する第2のLifting演算とから成ると考えることが出来る。
【0107】
図11(b)の破線の左側の機能は、前記第1の実施形態における図7の機能と同じで、実数型の5×3フィルタの演算を行なう。高域変換係数と低域変換係数を分けて出力するか、1サイクル毎に交互に出力するかの違いはあるが、出力する演算結果は同じである。
【0108】
図11(b)の破線の右側の機能は、前記第1の実施形態における図9の機能と同じで、2つの高域変換係数(実数値)の小数点第1位のビットを1/4倍して低域変換係数に加算した後、該低域変換係数と高域変換係数それぞれに0.5を加算してfloor関数を求め出力する。
【0109】
この図11(b)の構成は、整数型の可逆フィルタ処理が可能な図10(a)を等価に変形したものであるから、図11(b)の構成で整数型の可逆フィルタ処理が可能なのは言うまでもない。また、第1の実施形態における2つの処理部(図7、図9)によって実現される機能は、この図11(b)の機能と同じであるため、第1の実施形態で整数型の可逆フィルタ処理が可能であることが示せた。
【0110】
<図9の変形例>
第1の実施形態における2つの処理部(図7、図9)の機能が、図11(b)の機能と同じであることが言えたので、図9をさらに簡易な構成に変形することが出来る。
【0111】
図9における加算ユニット819の入力データは、図11(b)における2つの加算ユニット502と1102の両方の入力データを多重化したものである。加算ユニット1102の入力データは、Lifting係数p=(−1/2、−1/2)であることから、小数点以下は1ビットしかないことが容易に分かる。
【0112】
しかし、加算ユニット502の方は、図11(b)の構成を見る限り、小数点以下に3ビットの情報を持つデータが入力されてくると考えられる。図9の構成を見ても同様である(小数点以下1ビットの実数データに1/4を掛けると小数点以下3ビットの実数データになるため)。
【0113】
ところで、図11(b)は、図10(b)と等価であり、加算ユニット502に入力されるデータは、どちらの図でも同じである。その図10(b)では、整数値に1/4を掛けたデータと他の整数値の和が、該加算ユニット502に入力されるので、小数点以下2ビットのデータとなる。
【0114】
よって、図11(b)の加算ユニット502に入力されるデータの小数点第3位のビットはいつも“0”である。この小数点第3位のビットを“1”に変えても演算結果にはまったく影響は無い。なぜなら、floor関数演算ユニット503によって、必ず切り捨てられるからである。よって、加算ユニット502の前段の加算器1105において1/8を自由に加算することが許される。
【0115】
そこで、高域変換係数の小数点第1位のビットに対するLifting係数を(1/4,1/4)から(1/4,1/2)あるいは(1/2,1/4)に変更することを考えてみる。この場合問題になるのは、係数1/2に対応する小数点データが“1”になった時である。本来の計算結果1/2(小数第1位の値)×1/4(係数)=1/8が1/2×1/2=1/4となって、結果が1/8大きくなる。これは1/8を加算したことと同じである。
【0116】
整理すると、係数1/2に対応する小数点データが“0”の時は、係数変更前と同じ計算結果となり、係数1/2に対応する小数点データが“1”の時は、係数変更前の計算結果に1/8を加算した結果となる。この1/8は前述した自由に加算することが許される値であるので、結局、上記Lifting係数の変更は問題無いことが分かる。
【0117】
これにより、図9は、図12のように変更することが可能となる。
【0118】
シフトレジスタ801から出力される3つデータの中央が低域変換係数の時に、左右から出力される高域変換係数の小数点第1位のビットの一方を1/2倍し、もう一方を1/4倍する。それぞれ重みが異なり、前者は小数点第2位、後者は小数点第3位のビットデータとなるので、加算器を用いずとも前記2つのビットを並べるだけで加算したことになる。この2ビットの信号をゲートユニット831に入力し、低域変換係数出力時には該入力信号を有効にし、高域変換係数出力時にはマスクして無効化する。このゲートユニットの出力に、図9の加算ユニット803で加算していた0.5を小数点第1位のビットとして付加して3ビットにした後、加算器817に入力して、シフトレジスタ801の中央から出力される低域変換係数(実数値)に加算する。そして、floor関数演算ユニットにて整数に変換し出力する。この構成で図9と同じ出力結果が得られる。
【0119】
<第3の実施形態>
第3の実施形態では、前記第2の実施形態と対をなす逆変換側の構成を示す。第2の実施形態と同様、図5における逆方向フィルタ処理部550から遅延ユニットとゼロ挿入ユニットを除き、Lifting演算部のみを残した構成を図13(a)に示す。図13(a)からfloor関数演算ユニット505、507と加算ユニット504を、それぞれ減算器213、加算器209の入力側から出力側に移動すると、図13(b)のようになる。同図において、1301は、減算器213の出力から0.5を減算する減算ユニット、1303は、celing関数演算ユニットである。
【0120】
図13(a)から図13(b)への変換に際し、以下の関係式を利用する。
N−floor(R+0.5)=ceiling((N−R)−0.5) (7)
N+floor(R)=floor(N+R) (8)
上記式においてNは整数値、Rは実数値である。(7)(8)式の関係は、どちらも自明の関係にあることはこれまでの説明から明らかであろう。
【0121】
Lifting係数pの要素は1/4であるため、上記(7)式における実数値とは、小数点以下が2ビットの実数である。よって、減算器213から出力されるデータを2進表示の小数部と整数値で表わすと、整数値+0.002、整数値+0.012、整数値+0.102、整数値+0.112 のいずれかである。それぞれの出力に対して、減算ユニット1301の出力、celing関数演算ユニット1303の出力の小数部がどのように変化するかを小数部2桁のみ以下に示す。
小数部 演算ユニット出力 celing関数出力
00 → 10 → 00 (±0.00)
01 → 11 → 00 (−0.01)
10 → 00 → 00 (−0.10)
11 → 01 → 00 (+0.01)
上記かっこ内の値は、減算ユニットとceling関数演算ユニットを通すことによって増減する値を2進表現したものである。
【0122】
該増減値は、減算器213から出力されるデータの小数部2ビットの2の補数を求めその上位ビットをサインビットに拡張することで得られる。各ビットパターンに対してどうなるかを以下に示す。
00 → 00(2の補数) → 000 (±0.00)
01 → 11(2の補数) → 111 (−0.01)
10 → 10(2の補数) → 110 (−0.10)
11 → 01(2の補数) → 001 (+0.01)
サインビット拡張した3ビットデータの最上位をサインビット、下位2ビットを小数部のデータとして解釈するとかっこ内に示す値と一致する。
【0123】
よって、図13(b)における減算ユニット1301とceiling関数演算ユニット1303によって変化する数値(上記増減値)は、2の補数演算とサインビット付加処理よって生成することが可能であり、減算器213の出力に該生成値を加算することにより、図13(b)におけるceiling関数演算ユニットの出力値と同じ値と得ることが可能である。その構成を図13(c)に示す。
【0124】
同図において、1311は減算器213から出力される実数値の小数点以下2ビットを入力とし、該2ビットの2の補数を演算する補数演算ユニット、1313は該補数演算ユニットから出力される2ビットデータの上位ビットをサインビットとして付加するサインビット付加ユニット、1315は前記サインビット付加ユニットの出力を減算器213の出力値に加算する加算器である。
【0125】
このような変換をする理由は、1段目の整数型のLifting演算を、実数型のLifting演算と補正値の演算とに分解するためである。そして、次のLifting演算との間に四則演算に関する分配則を適用して図14(a)のように変形する。
【0126】
この図14(a)において、実数型のLifting演算部と、整数化のための演算に分離できた。同図における破線1401の左側が実数型のLifting演算部になり、右側が整数化のための演算部になる。実数型のLifting演算結果は同図の減算器213と加算器209から出力される。
【0127】
図14(a)は第3の実施形態の構成の1つである。実数型のLifting演算部は、畳み込み演算を用いたフィルタ演算部に置き換えることが可能である。
【0128】
ここで、図14(a)の加算器1315の出力を、同じ出力値である図13(b)のceiling関数演算ユニットの出力に戻って考える。小数点以下2ビットの実数値から0.5を減算してそのceiling関数を求めるということは、該実数値に0.25を加算してfloor関数を求めるのと等価である。どちらも小数部が0.75の時のみ整数部の値が1つ増加するが、小数部が0.00,0.25,0.50の場合は整数部の値が変わらない。
【0129】
よって、図14(a)を図14(b)のように変形することができる。図14(b)において、1411は、0.25を加算する加算ユニット、1313はfloor関数演算ユニットである。図14(a)ではLifting演算構成とは言えなかった整数化演算部を、図14(b)のように変形することによって、Lifting演算構成の整数化演算部にすることができた。これも本実施形態の1つの構成である。
【0130】
また、整数化演算部Lifting演算の歩数演算ユニット1311とサインビット付加ユニット1313を、小数点以下2ビットのデータを入力とするデコーダ1421に置き換えた図14(c)の構成も考えられる。該デコーダの変換機能は補数演算ユニット1311とサインビット付加ユニット1313によるデータ変換機能と同一であるのが基本であるが、以下に説明するように、必ずしも同一である必要は無い。
【0131】
前記図12の構成で説明したように、整数化演算部のLifting演算加算器1405には余分に加算しても無視される値があるため、図14(c)のデコーダの出力も若干の自由度がある。具体的には、2段目のLifting係数が(1/2、1/2)であるため、0.375を余分に加算してもfloor関数演算時に切り捨てられて無視される。この任意に加算が許される値を利用して、例えば一例として下記のような入力と出力のデコーダを使うことができる。
・入力(2ビット) ・出力 10進表示(2進補数表示の小数データ)
00 +0.25(0.01)
01 −0.25(1.11)
10 −0.25(1.11)
11 +0.25(0.01)
上記出力は、前述の補数ユニットとサインビット付加ユニットを用いて求められる値に対して、“00”入力と“10”入力時に0.25(10進表示)を加算したものである。上記デコーダは出力値が2種類しかなく、入力2ビットの排他的論理和演算の結果に依存するのみなので極めてシンプルなデコーダにすることができる。
【0132】
<第4の実施形態>
第4の実施形態は、前記第1の実施形態に対応する逆変換フィルタ演算部の構成を示す。逆変換フィルタのフィルタ係数は図3に示してある。G0係数のフィルタ構成は図15(a)に示す構成となり、G1係数のフィルタ構成は図15(b)に示す構成となる。図15(a)(b)2つのフィルタ機能を1サイクル毎に切り替えて実現するフィルタ構成は図16のようになる。これらのフィルタ構成は、対応するフィルタ構成である図6(a)(b)、図7とフィルタ係数が異なるだけで、動作はまったく同じなので、説明は省略する。
【0133】
図16の構成で実数演算した逆変換フィルタ結果は、図17に示す整数化演算部にて整数化する。
【0134】
図17において、1701は、図16の実数型の逆変換フィルタ処理したデータを並列に3つ取り出すためのシフトレジスタ、1703、1705は小数点以下2ビットのデータから補正データの一部を生成するデコーダ、1707は上記2つのデコーダ出力を加算する加算器、1709は上記加算器の出力にLifting係数を乗算する乗算器である。また、1711は処理するフィルタ係数がG0の時に右側を選択し、G1の時に左側を選択するセレクタ、1713は実数型の逆変換フィルタ処理したデータに補正データを加算する加算器、1715はfloor関数演算ユニットである。
【0135】
前記フィルタ係数G0に対応する演算の時には、セレクタ1711にて4ビットデータ0.010(十進表示では0.25)を選択して、加算器1713にてシフトレジスタ1701の中央出力データに加算する。
【0136】
前記フィルタ係数G1に対応する演算の時には、シフトレジスタ1701の両端出力データの各々の小数点以下2ビットのデータをデコーダ1703,1705に入力し、サインビット付きの小数点以下2ビットデータ0.01か1.11を各々のデコーダから出力する。これを加算器1707にて足し合わせた後、乗算器1709にてLifting係数1/2を乗算し、セレクタ1711にて選択して、加算器1713にてシフトレジスタ1701の中央の出力データに加算する。
【0137】
この構成は、Lifting演算形式の図14(c)の整数化演算部を畳み込み演算形式に変形したものであり、機能的に図14(c)と同じである。よって、図14(c)が持つ、逆変換としての可逆性を当然もっており、図17から出力される整数値は元のデータと完全に一致する。
【0138】
<第5の実施形態>
上記第1〜第4の実施形態では、実数型の可逆フィルタ演算を行なった後、それを整数化することで、整数型の可逆フィルタ演算を行なっていたが、第5の実施形態では、実数型の可逆フィルタ演算を経ないで、直接、整数型の可逆フィルタ演算を行なう。
【0139】
言い方を変えると、第1〜第4の実施形態では実数型の可逆フィルタを前段に配し、該フィルタ出力を整数型の可逆フィルタに変換する変換部を後段に配した縦続接続の構成であった。それに対し、第5の実施形態では実数型の可逆フィルタの演算と並行して整数化のための補正データを生成する並列処理型の構成となる。
【0140】
本実施形態の構成を図18と図19に示す。図18は順方向変換のフィルタ構成で、図19は逆方向変換のフィルタ構成である。
【0141】
図18の構成は、ある関係を利用して前記図12の構成を図7に合体したものである。ある関係とは、“高域変換係数の小数点第1位のビットは該変換係数位置の両側の入力データ(整数)のLSB間の排他的論理和に等しい”である。この関係は、5×3フィルタの高域変換係数の定義式から明らかである。図18における1801と1803は、前記LSB間の排他的論理和を演算する論理演算ユニットである。
【0142】
これにより、前記補正データ(実数型の可逆フィルタ演算結果を整数化するために加算するデータ)を入力データから直接演算することが出来るので、前記第1の実施形態のように(シフトレジスタを2個使用した)2段構成にすることなく、図18のように1段で構成できる。
【0143】
補正データの小数点第2位と第3位の演算方法は他にもある。シフトレジスタ601の両端のデータのLSB間で排他的論理和演算した結果を小数点第3位とし、該2つのLSBのどちらか一方とシフトレジスタ601の中央のデータのLSB間で排他的論理和演算し、該演算結果が"1"かつ前記小数点第3位が"0"の時に小数点第2位を"1"にする論理回路を設ける構成でもよい。この構成による補正データは余分な値を加算しないので、図18の補正データとは少し異なる。さらなる変形も考えられるが、これ以上は省略する。ようするに補正データの生成方法だけに着目しても、何通りもの方法があるということである。
【0144】
本構成においても、減算器635の出力を取り出すことで、実数型の可逆フィルタ演算結果を得ることができる。
【0145】
図19の構成は、図16の構成に図17の構成を合体したものである。ここでは、G1フィルタ処理時に図17のデコーダに入力する2ビットの小数点データ2組を演算するため、2ビット加算器1903と1905を用いる。
【0146】
G0フィルタ処理位置の小数点以下2ビットのデータは、該G0フィルタ処理位置の両側2サンプル、すなわち、G1フィルタ処理位置データ2つの下位2ビットから演算できる。具体的には、該2つの下位2ビットデータを加算して、キャリーを出力を除いた下位2ビット出力の2の補数が、前記G0フィルタ処理位置の小数点以下2ビットのデータとなる。この2ビットのデータは、先の図14(a)(b)(c)によるとさらに2の補数に変換されるので、また元の値に戻ることになる。よって、加算器1903と1905出力の下位2ビットは、前記図14(a)(b)(c)において2の補数変換した値と同じになる。該下位2ビットと補正値(10進表示)の間には、以下の関係がある。
・下位2ビット ・補正値 ・下記修正後
00 → ±0.00 → +0.25
01 → +0.25 → +0.25
10 → −0.50 → −0.25
11 → −0.25 → −0.25
ここで、前記任意に加算できる値の範囲で補正値を修正する。具体的には、下位2ビットが“00”と“10”の場合に、それぞれ0.25をプラスする。そうすると、下位2ビットの上位ビットのみによって、修正後の補正値を決定できることになる。具体的には、下位2ビットの上位ビットの値が"0"の時の補正値を+0.25とし、"1"の時の補正値を−0.25とする。
【0147】
よって、加算器1903、1905から出力するデータからキャリーとLSBを除いた、LSBから2番目のビットのみをデコーダ1901に入力するだけでよい。この他に処理するフィルタの種類(G0/G1)を表わす制御信号を入力すれば、該3ビットのデータから合算補正データをデコードして生成することができる。
【0148】
フィルタの種類を表わす制御信号とLSBから2番目のビット×2個から生成する合算補正データを以下に示す。
・G0/G1 ・LSBから2番目のビット×2 ・合算補正データ
G0 任意 +0.25
G1 00 +0.25
G1 01 ±0.00
G1 10 ±0.00
G1 11 −0.25
上記補正データは、デコーダ後段のLifting係数乗算用の乗算器を省略するため、Lifting係数込み(1/2乗算済み)の補正データとした。例えばフィルタの種類がG1で、LSBから2番目のビットが2つとも"0"の場合、2つの補正値はそれぞれ+0.25となり、それを足し合わせて1/2倍した値は+0.25となる。該合算補正データを、実数演算したフィルタ処理結果である減算器1535の出力に加算した後、小数点以下を取り除いたfloor関数値を出力すれば、変換前の元のデータが復元される。
【0149】
以上で説明したフィルタ処理装置、逆フィルタ処理装置における各処理の内容は、コンピュータ上のソフトウェア処理でも実現できるものである。以下にソフトウェア処理で実現する場合について説明する。
【0150】
<第6の実施形態>
前記第1〜第5の実施形態はハードウェアによるフィルタ処理装置に関するものであった。これ以降は、フィルタ処理をソフトウェアで実装する例を説明する。
【0151】
従来は、整数型の可逆フィルタ演算処理を実現するには、整数型のLifting演算を用いる必要があった。本発明では、整数型のLifting演算を用いずに、固定小数点型のフィルタ演算処理と整数化丸め演算処理とを用いて、整数型の可逆フィルタ処理を実現するものである。
【0152】
図20に示すフローチャートは、固定小数点型のフィルタ演算処理として畳み込み演算を用いたもので、各ステップで処理対象となるデータをすべて一括処理する場合のフローチャートである。処理するデータは、X0,X1,,,XM-2,XM-1のM個(偶数)のデータとする。
【0153】
同図において、ステップ2001にてパディング処理を行なう。パディング処理とは、データが無い(定義されていない)X-2、X-1、XM、XM+1といったデータにあるデータを代入する処理である。
【0154】
一般的に行なわれる方法では、全データの両端のデータを単純にコピーしてデータの拡張を行なうことにより、演算上必要な座標位置のデータを生成する。少し工夫した方法として、データの両端の境界部でデータを折り返しコピー(鏡像)する方法もある。
【0155】
次のステップ2003では、偶数系列のデータに対応する低域変換係数を図3に示すフィルタ係数H0を用いて固定小数点演算する。この演算におけるLSBの重みは0.125となる。ステップ2005では、奇数系列のデータとn=−1に対応する高域変換係数を同じく図3に示すフィルタ係数H1を用いて固定小数点演算する。この演算におけるLSBの重みは0.5となる。
【0156】
ステップ2007において、上記演算した高域変換係数のLSBデータのみを取り出し、ステップ2009において、該LSBデータを補正データとして加算すると共に0.5を加算して3ビット右シフトする。該シフト処理は、小数点を右端に移動して固定小数点を整数化するものである。
【0157】
ステップ2011において、固定小数点の高域変換係数に0.5を加算した後、1ビット右シフトして整数化を行なう。以上の計算で得られた整数の低域変換係数と高域変換係数は、整数型の可逆フィルタ処理した結果となる。
【0158】
<第7の実施形態>
図20は、各ステップで処理対象となるデータをすべて一括処理する場合のフローチャートであったが、各ステップでの処理を式1つの演算のみにして、ステップ2003〜2011をループ状に何度も繰り返し処理することで全データを処理するようにした場合は、図21に示すフローチャートになる。
【0159】
同図において、ステップ2101は、前記図20におけるステップ2001と同じパディング処理を行なう。ステップ2103は初期設定処理でn=0に設定する。ステップ2105にて、1つ目の低域変換係数を演算するのに必要な2つのLSBデータの一方をあらかじめ計算しておく。
【0160】
ステップ2107、2109、2111、2113,2115,2117、2119からなるループ処理をn=0からn=M/2−1まで行なう。ステップ2107は低域変換係数の固定小数点演算、ステップ2109は高域変換係数の固定小数点演算、ステップ2111は高域変換係数のLSBデータの取り出し、ステップ2113は固定小数点の低域変換係数を整数化、ステップ2115は固定小数点の高域域変換係数を整数化、するものである。
【0161】
ステップ2117にて全データの変換が終了したかどうかをnの値から判定して、終了していなければ、ステップ2119にてnの値を1つ大きくして、上記演算処理を繰り返し行なう。ステップ2117にて全データの変換が終了したと判定されれば、変換処理は終了(ステップ2121)する。
【0162】
<第8の実施形態>
図22に示すフローチャートは、前記図21における固定小数点型の畳み込み演算フィルタ処理を、固定小数点型のLifting演算フィルタ処理に置き換えたものである。よって、前記図21における大部分の処理ステップをそのまま引き継ぎ、ステップ2107のみをLifting演算に対応する処理に置き換える。
【0163】
新たなステップ2201はLifting演算に基づいて低域変換係数を固定小数点演算するもので、ステップ2109で演算する固定小数点の高域変換係数を利用するため、ステップ2201はステップ2109の後で処理を行なう。その他は前記図21と同じなので説明を省略する。
【0164】
前記図20における固定小数点型の畳み込み演算フィルタ処理を、固定小数点型のLifting演算フィルタ処理に置き換えたものは容易に類推できる。以下では、ループ処理のみについて各種処理のフローチャートを示す。
【0165】
<第9の実施形態>
固定小数点型の畳み込み演算フィルタ処理を行ない、入力データの一部のビット情報に基づいて補正データを生成する場合のフローチャートを図23に示す。このフローチャートの処理は前記図18に対応するが若干の相違がある。その相違とは、図18における2つの排他的論理和ユニットから出力する信号に乗算する係数を、本フローチャートでは同じ係数値(1/8)にそろえたということである。
【0166】
ハードウェアでは、乗算係数を変えることによりビットの重みが異なると加算演算が不要になるというメリットがあるが、ソフト処理ではかえって処理が増加することになるので、本来の乗算係数である1/8を用いる。
【0167】
本フローチャートも大枠は図21のフローチャートと同じである。図21から変更となる演算ステップは、ステップ2105、2111,2113の3つであり、該3つのステップをそれぞれ、ステップ2301、2303、2305に置き換える。
【0168】
ステップ2301では、補正データの演算に必要な偶数系列データのLSBをあらかじめ2つ取り出しておく。ステップ2303で該LSBデータをさらに1つ取り出し、ステップ2305で、計3つのLSBデータを用いてビット間の排他的論理和演算を行なって補正データを演算し、固定小数点の低域変換係数に加算する。補正データの演算に用いる3つのLSBデータの内、2つのLSBデータは次の処理ループでも使用する。その他の処理は図21と同じである。
【0169】
<第10の実施形態>
上述した順方向の可逆フィルタ処理に対して、それぞれ逆フィルタ処理が存在する。図21に対応する逆フィルタ処理のフローチャートを図24に示す。
【0170】
同図において、ステップ2401のパディング処理では、未定義の変換係数H-1、LM、HM+1に他の変換係数を代入する。ステップ2403ではテーブル設定を行なう。このテーブルは、前記第4の実施形態(図17)におけるデコーダに対応する機能をソフトウェアで実現するものである。Lifting演算係数をあらかじめ乗算し、固定小数点演算の小数点位置を考慮した値をテーブルに格納しておく。
【0171】
ステップ2405にて、最初の奇数系列サンプルを演算するのに必要な2つのLSB側2ビットデータ(LSBT)の一方をあらかじめ計算しておく。前記計算の途中演算結果を用いて、ステップ2407にてX0のみを先行して計算する。
【0172】
ステップ2411、2413、2415、2417、2419、2117、2119からなるループ処理をn=0からn=M/2−1まで行なう。ステップ2411は奇数系列サンプルの固定小数点演算、ステップ2413は偶数系列サンプルの固定小数点演算、ステップ2415は偶数系列サンプルのLSB2ビットデータの取り出し、ステップ2417はテーブルを用いて固定小数点の奇数系列サンプルデータを整数化、ステップ2419は固定小数点の偶数系列サンプルデータを整数化、するものである。
【0173】
<第11の実施形態>
図25に示すフローチャートは、前記図24における固定小数点型の畳み込み演算フィルタ処理を、固定小数点型のLifting演算フィルタ処理に置き換えたものである。よって、前記図24における大部分の処理ステップをそのまま引き継ぎ、ステップ2411のみをLifting演算に対応する処理に置き換える。
【0174】
新たなステップ2501はLifting演算に基づいて奇数系列サンプルデータを固定小数点演算するもので、ステップ2413で演算する固定小数点の偶数系列サンプルデータを利用するため、ステップ2501はステップ2413の後で処理を行なう。その他は前記図24と同じなので説明を省略する。
【0175】
<第12の実施形態>
固定小数点型の畳み込み演算フィルタ処理を行ない、変換係数入力データの一部のビット情報に基づいて補正データを生成する場合のフローチャートを図26に示す。このフローチャートの処理は前記図19に対応するが若干の相違がある。その相違とは、図19における2つの加算器1903、1905から出力する2つの信号を1つのデコーダに入力しているが、本フローチャートではテーブルで2つの信号を独立に変換するということである。
【0176】
ハードウェアでは、ビットの連結処理は配線のみで実現できるが、ソフト処理ではビットの重み(位置)をずらして論理和ビット演算を行なう必要があるため、各々の2ビットデータからテーブルを参照するようにした。
【0177】
また、本実施形態におけるテーブルの内容は、前記第10、第11の実施形態におけるテーブルの内容とも少し異なり、添え字が補数の関係にある。
【0178】
本フローチャートも大枠は図24のフローチャートと同じである。図24から変更となる演算ステップは、ステップ2405とステップ2415のみであり、該ステップがステップ2601とステップ2603に置き換わる。ステップ2601及び2603では、補正データの演算に必要な2ビットデータを、入力データ中の2つの高域変換係数あるいはパディング処理した高域変換係数を加算して下位2ビットを論理積ビット演算で取り出す。
【0179】
第6〜12の実施形態において、正確に演算内容を理解されるように、浮動小数点演算を用いず、固定小数点演算で記述したが、これらの固定小数点演算は浮動店小数演算に置き換えることが可能であることは容易に想像がつく。一般的に浮動小数点演算で心配されるのは、10進の小数で表わされたデータを2進数表示に変換する際に発生する変換誤差と、演算の繰り返しによる前記誤差の蓄積である。上記実施形態においては、そのような変換誤差は発生しないので、固定小数点演算と同じ結果を得ることが出来る。
【0180】
以上で説明した各種フィルタ処理装置とフィルタ処理方式は、1次元データに対する処理であったが、該処理を2次元の画像データに対して、水平方向と垂直方向に2回処理することにより、2次元フィルタ処理を行なうフィルタ処理装置及びフィルタ処理方式も当然本発明の範疇に属するものである。
【0181】
以上説明したように本実施形態によれば、可逆変換が可能な実数型のフィルタ演算を行なうフィルタ処理手段と、補正データを生成する手段と、整数化する丸め手段とを有することにより、整数型の可逆フィルタ処理装置を実現することが可能になると共に、実数型のフィルタ演算結果と整数型の可逆フィルタ演算結果を同時に得ることが可能となった。
【0182】
また、可逆変換が可能な実数型のフィルタ演算を行なうフィルタ処理工程と、補正データを生成する工程と、整数化を行なう丸め処理工程とを有することにより、整数型の可逆フィルタ処理方法を実現することが可能になると共に、実数型のフィルタ演算結果と整数型の可逆フィルタ演算結果を同時に得ることが可能となった。
【0183】
更に、可逆変換が可能な実数型のフィルタ演算を行なう第1のLifting演算手段と、該演算手段から出力される実数データを整数データに変換する第2のLifting演算手段とを有することにより、整数型の可逆フィルタ処理装置を実現することが可能になると共に、実数型のフィルタ演算結果と整数型の可逆フィルタ演算結果を同時に得ることが可能となった。
【0184】
可逆変換が可能な実数型のフィルタ演算を行なう第1のLifting演算工程と、該演算工程により得られる実数データを整数データに変換する第2のLifting演算工程とを有することにより、整数型の可逆フィルタ処理方法を実現することが可能になると共に、実数型のフィルタ演算結果と整数型の可逆フィルタ演算結果を同時に得ることが可能となった。
【0185】
なお、上記実施形態での説明から明らかなように、本発明はパーソナルコンピュータ等の汎用の情報処理装置で実行するコンピュータプログラムとしても実装できる。また、コンピュータプログラムを装置に組み込むには、フロッピーディスクやCDROM等のコンピュータ可読記憶媒体をセットし、装置内(ハードディスク等)にコピーもしくはインストールすることで実現できるものであるから、本発明はかかるコンピュータ可読記憶媒体をもその範疇とするものである。
【0186】
【発明の効果】
以上説明したように本発明によれば、JPEG2000におけるウェーブレット変換等に適用でき、可逆性を有しながらも畳み込み演算により実装することが可能になる。
【図面の簡単な説明】
【図1】順方向のLifting Schemeを表現した図である。
【図2】逆方向のLifting Schemeを表現した図である。
【図3】5×3フィルタの係数を示す図である。
【図4】5×3フィルタのLifting係数を示す図である。
【図5】可逆の順方向フィルタ処理部と逆方向フィルタ処理部の構成を示す図である。
【図6】畳み込み演算で高域変換係数を演算する構成と低域変換係数を演算する構成を示す図である。
【図7】畳み込み演算で高域変換係数と低域変換係数を選択的に演算する構成を示す図である。
【図8】固定小数点演算された高域変換係数を整数化する構成と低域変換係数を整数化処理する構成を示す図である。
【図9】本発明の第1の実施形態の構成を示した図である。
【図10】整数型可逆5×3フィルタのLifting演算部の構成と該構成の等価な変形例を示した図である。
【図11】本発明の第2の実施形態の構成と変形例を示した図である。
【図12】本発明の第1の実施形態の変形例を示した図である。
【図13】整数型可逆5×3フィルタの逆変換フィルタのLifting演算部の構成と該構成の等価な変形例を示した図である。
【図14】本発明の第3の実施形態の構成と変形例を示した図である。
【図15】低域変換係数の逆フィルタ演算を行なう構成と、高域変換係数の逆フィルタ演算を行なう構成を示す図である。
【図16】低域変換係数と高域変換係数の逆フィルタ演算を交互に行なう構成を示す図である。
【図17】本発明の第4の実施形態の構成を示した図である。
【図18】本発明の第5の実施形態の1つの構成を示した図である。
【図19】本発明の第5の実施形態のもう1つの構成を示した図である。
【図20】本発明の第6の実施形態であるフローチャートを示した図である。
【図21】本発明の第7の実施形態であるフローチャートを示した図である。
【図22】本発明の第8の実施形態であるフローチャートを示した図である。
【図23】本発明の第9の実施形態であるフローチャートを示した図である。
【図24】本発明の第10の実施形態であるフローチャートを示した図である。
【図25】本発明の第11の実施形態であるフローチャートを示した図である。
【図26】本発明の第12の実施形態であるフローチャートを示した図である。
【図27】整数型Lifting演算のブロック図である。
【図28】図27の整数型Lifting演算を、本発明の構成に導くための遷移図である。
【図29】4段Liftingの構成を示す図である。
【図30】実施形態における画像符号化装置と復号化装置のブロック構成図である。
Claims (29)
- 入力データにおける偶数系列の入力Xe及び奇数系列の入力Xoを取得する取得手段と、
前記偶数系列Xeを用いて前記奇数系列Xoを演算処理することにより、奇数系列の出力X’oを出力する第1演算手段と、
前記出力X’oを用いて前記偶数系列Xeを演算処理することにより、偶数系列の出力X’eを出力する第2演算手段と、
前記出力X’oの小数部データに演算を施して、前記出力X’eに加算することにより、偶数系列の出力X”eを出力する小数部演算手段と、
前記出力X”e及び奇数系列出力X’ o を整数化する丸め処理手段と
を有することを特徴とするフィルタ処理装置。 - 入力データにおける偶数系列の入力Xe及び奇数系列の入力Xoを取得する取得ステップと、
前記偶数系列Xeを用いて前記奇数系列Xoを演算処理することにより、奇数系列の出力X’oを出力する第1演算ステップと、
前記出力X’oを用いて前記偶数系列Xeを演算処理することにより、偶数系列の出力X’eを出力する第2演算ステップと、
前記出力X’oの小数部データに演算を施して、前記出力X’eに加算することにより、偶数系列の出力X”eを出力する小数部演算ステップと、
前記出力X”e及び奇数系列出力X’oを整数化する丸め処理ステップとを有することを特徴とするフィルタ処理方法。 - 可逆変換が可能な実数型のフィルタ演算を行なうため、Lifting演算を用いるフィルタ演算処理手段と、
該演算結果を整数化するための丸め処理手段と
を有し、可逆変換可能な整数型のフィルタ演算処理を実現することを特徴とするフィルタ処理装置。 - 前記演算結果を整数化するための丸め処理手段において、該演算結果の一部のビット情報に基づいて補正データを生成することを特徴とする請求項第3項に記載のフィルタ処理装置。
- 前記演算結果の一部のビット情報は小数点以下のビット情報であることを特徴とする請求項第4項記載のフィルタ処理装置。
- 前記演算結果を整数化するための丸め処理手段において、入力データの一部のビット情報に基づいて補正データを生成することを特徴とする請求項3に記載のフィルタ処理装置。
- 可逆変換可能な整数型のフィルタ処理を施されたデータを、実数型のフィルタ演算処理を行なうフィルタ演算処理手段と、該演算結果を整数化するための丸め処理手段とを用いて、元のデータを復元する逆フィルタ処理装置。
- 前記実数型のフィルタ演算を行なうフィルタ演算処理手段において、畳み込み演算を用いることを特徴とする請求項第7項記載の逆フィルタ処理装置。
- 前記実数型のフィルタ演算を行なうフィルタ演算処理手段において、Lifting演算を用いることを特徴とする請求項第7項記載の逆フィルタ処理装置。
- 前記演算結果を整数化するための丸め処理手段において、該演算結果の一部のビット情報に基づいて補正データを生成することを特徴とする請求項第7項乃至第9項のいずれか1項に記載の逆フィルタ処理装置。
- 前記演算結果の一部のビット情報は小数点以下のビット情報であることを特徴とする請求項第10項記載の逆フィルタ処理装置。
- 前記演算結果を整数化するための丸め処理手段において、入力データの一部のビット情報に基づいて補正データを生成することを特徴とする請求項第7項乃至第9項のいずれか1項に記載の逆フィルタ処理装置。
- 可逆変換が可能な実数型あるいは固定小数点型のフィルタ演算を行なうため、Lifting演算を用いるフィルタ演算処理ステップと、
該演算結果を整数化するための丸め処理ステップと
を用いて、可逆変換可能な整数型のフィルタ演算を実現することを特徴とするフィルタ処理方法。 - 前記演算結果を整数化するための丸め処理ステップにおいて、該演算結果の一部のビット情報に基づいて補正データを生成することを特徴とする請求項第13項に記載のフィルタ処理方法。
- 前記演算結果の一部のビット情報は小数点以下のビット情報であることを特徴とする請求項第14項記載のフィルタ処理方法。
- 前記演算結果を整数化するための丸め処理ステップにおいて、入力データの一部のビット情報に基づいて補正データを生成することを特徴とする請求項第13項に記載のフィルタ処理方法。
- 可逆変換可能な整数型のフィルタ処理を施されたデータを、実数型或いは固定小数点型のフィルタ演算を行なうフィルタ演算処理ステップと、該演算結果を整数化するための丸め処理ステップとを用いて、元のデータを復元する逆フィルタ処理方法。
- 前記実数型或いは固定小数点型のフィルタ演算を行なうフィルタ演算処理ステップにおいて、畳み込み演算を用いることを特徴とする請求項第17項記載の逆フィルタ処理方法。
- 前記実数型或いは固定小数点型のフィルタ演算を行なうフィルタ演算処理ステップにおいて、Lifting演算を用いることを特徴とする請求項第17項記載の逆フィルタ処理方法。
- 前記演算結果を整数化するための丸め処理ステップにおいて、該演算結果の一部のビット情報に基づいて補正データを生成することを特徴とする請求項第17項乃至第19項のいずれか1項に記載の逆フィルタ処理方法。
- 前記演算結果の一部のビット情報は小数点以下のビット情報であることを特徴とする請求項第20項記載の逆フィルタ処理方法。
- 前記演算結果を整数化するための丸め処理ステップにおいて、入力データの一部のビット情報に基づいて補正データを生成することを特徴とする請求項第17項乃至第19項のいずれか1項に記載の逆フィルタ処理方法。
- 空間的に隣接し、整数で表現されるデータD1、D2、D3、…、Dn、…を入力し、
実数係数をp、qとした場合に、
X2n=D2n+p×(D2n-1+D2n+1)
Y2n+1=D2n+1+q×(X2n+X2n+2)
として算出し、得られた成分データX、Yを出力する画像データ用のフィルタ処理装置であって、
前記X2n及びY2n+1を可逆的に実数演算する実数演算手段と、
該実数演算手段の2つの演算結果に対して、それぞれ整数化し出力する整数化演算手段とを備え、
該整数化演算手段による整数化は、前記p×(D2n-1+D2n+1)及び前記q×(X2n+X2n+2)の丸め演算として作用することを特徴とするフィルタ処理装置。 - 入力されるデータは画素データであって、ウェーブレット変換用の5×3フィルタとして用いることを特徴とする請求項第23項に記載のフィルタ処理装置。
- 請求項第24項に記載のウェーブレット変換用フィルタを用いて、入力された画像データを変換する変換手段と、
変換して得られたデータを量子化する量子化手段と、
量子化されたデータを符号化する符号化手段を備える
ことを特徴とする画像符号化装置。 - 空間的に隣接し、整数で表現されるデータD1、D2、D3、…、Dn、…を入力し、
実数係数をp、qとした場合に、
X2n=D2n+p×(D2n-1+D2n+1)
Y2n+1=D2n+1+q×(X2n+X2n+2)
として算出し、得られた成分データX、Yを出力する画像データ用のフィルタ処理方法であって、
前記X2n及びY2n+1を可逆的に実数演算する実数演算工程と、
該実数演算工程の2つの演算結果に対して、それぞれ整数化し、出力する整数化演算工程とを備え、
該整数化演算工程による整数化は、前記p×(D2n-1+D2n+1)及び前記q×(X2n+X2n+2)の丸め演算として作用することを特徴とするフィルタ処理方法。 - 入力されるデータは画素データであって、ウェーブレット変換用の5×3フィルタとして作用することを特徴とする請求項第26項に記載のフィルタ処理方法。
- 空間的に隣接し、整数で表現されるデータD1、D2、D3、…、Dn、…を入力し、
実数係数をp、qとした場合に、
X2n=D2n+p×(D2n-1+D2n+1)
Y2n+1=D2n+1+q×(X2n+X2n+2)
として算出し、得られた成分データX、Yを出力する画像データのためのフィルタ処理用のコンピュータプログラムであって、
前記X2n及びY2n+1を可逆的に実数演算する実数演算工程のプログラムコードと、
該実数演算工程の2つの演算結果に対して、それぞれ整数化し出力する整数化演算工程のプログラムとを備え、
該整数化演算工程による整数化は、前記p×(D2n-1+D2n+1)及び前記q×(X2n+X2n+2)の丸め演算として作用することを特徴とするコンピュータプログラム。 - 請求項第28項に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001335185A JP3796432B2 (ja) | 2001-10-31 | 2001-10-31 | フィルタ処理装置およびフィルタ処理方法 |
US10/278,941 US7236997B2 (en) | 2001-10-31 | 2002-10-24 | Filter processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001335185A JP3796432B2 (ja) | 2001-10-31 | 2001-10-31 | フィルタ処理装置およびフィルタ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003142989A JP2003142989A (ja) | 2003-05-16 |
JP3796432B2 true JP3796432B2 (ja) | 2006-07-12 |
Family
ID=19150199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001335185A Expired - Fee Related JP3796432B2 (ja) | 2001-10-31 | 2001-10-31 | フィルタ処理装置およびフィルタ処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7236997B2 (ja) |
JP (1) | JP3796432B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7227998B2 (en) | 2002-06-11 | 2007-06-05 | Canon Kabushiki Kaisha | Image processing apparatus, control method of the same, computer program, and computer-readable storage medium |
JP4366250B2 (ja) | 2003-06-23 | 2009-11-18 | キヤノン株式会社 | データ変換処理装置及びプログラム |
EP1687736A1 (en) * | 2003-09-29 | 2006-08-09 | Agency for Science, Technology and Research | Process and device for determining a transforming element for a given transformation function, method and device for transforming a digital signal from the time domain into the frequency domain and vice versa and computer readable medium |
US7526025B2 (en) * | 2003-10-24 | 2009-04-28 | Sony Corporation | Lifting-based implementations of orthonormal spatio-temporal transformations |
JP4273996B2 (ja) * | 2004-02-23 | 2009-06-03 | ソニー株式会社 | 画像符号化装置及び方法、並びに画像復号装置及び方法 |
JP2005268908A (ja) | 2004-03-16 | 2005-09-29 | Fuji Film Microdevices Co Ltd | ウェーブレット変換装置 |
JP4378245B2 (ja) * | 2004-08-23 | 2009-12-02 | キヤノン株式会社 | データ変換装置及び方法 |
JP2007037049A (ja) * | 2005-07-29 | 2007-02-08 | Canon Inc | 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 |
JP4697967B2 (ja) * | 2006-03-02 | 2011-06-08 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
US7738713B2 (en) * | 2006-08-31 | 2010-06-15 | Ching-Wei Yeh | Method for processing digital image with discrete wavelet transform and apparatus for the same |
JP2008072624A (ja) * | 2006-09-15 | 2008-03-27 | Canon Inc | 画像符号化装置及びその制御方法 |
JP4311759B2 (ja) * | 2007-10-29 | 2009-08-12 | キヤノン株式会社 | データ変換装置及びその制御方法 |
JP4933405B2 (ja) * | 2007-11-13 | 2012-05-16 | キヤノン株式会社 | データ変換装置及びその制御方法 |
IT201800002401A1 (it) * | 2018-02-05 | 2019-08-05 | St Microelectronics Srl | Procedimento di filtraggio digitale, circuito e dispositivo corrispondenti |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818970A (en) * | 1991-04-26 | 1998-10-06 | Canon Kabushiki Kaisha | Image encoding apparatus |
JP3149271B2 (ja) * | 1992-06-19 | 2001-03-26 | キヤノン株式会社 | 画像通信装置 |
US6408102B1 (en) * | 1993-12-20 | 2002-06-18 | Canon Kabushiki Kaisha | Encoding/decoding device |
JP3227292B2 (ja) * | 1993-12-20 | 2001-11-12 | キヤノン株式会社 | 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法 |
DE69530622T2 (de) * | 1994-07-08 | 2004-02-26 | Sony Corp. | Empfang von zugangskontrollierten Rundfunksignalen |
US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
US6195465B1 (en) * | 1994-09-21 | 2001-02-27 | Ricoh Company, Ltd. | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
US5881176A (en) * | 1994-09-21 | 1999-03-09 | Ricoh Corporation | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser |
US5966465A (en) * | 1994-09-21 | 1999-10-12 | Ricoh Corporation | Compression/decompression using reversible embedded wavelets |
US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
US6141446A (en) * | 1994-09-21 | 2000-10-31 | Ricoh Company, Ltd. | Compression and decompression system with reversible wavelets and lossy reconstruction |
US6229927B1 (en) * | 1994-09-21 | 2001-05-08 | Ricoh Company, Ltd. | Reversible embedded wavelet system implementation |
JP3332619B2 (ja) * | 1994-11-29 | 2002-10-07 | キヤノン株式会社 | 復号装置およびその方法 |
JPH1093827A (ja) * | 1996-09-11 | 1998-04-10 | Canon Inc | 画像処理方法とその装置 |
JP3653180B2 (ja) | 1998-08-14 | 2005-05-25 | 株式会社リコー | 2次元逆ウェーブレット変換装置 |
JP3710342B2 (ja) | 1999-09-07 | 2005-10-26 | キヤノン株式会社 | ディジタル信号処理装置および方法および記憶媒体 |
US6895120B2 (en) * | 2001-03-30 | 2005-05-17 | Ricoh Co., Ltd. | 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays |
-
2001
- 2001-10-31 JP JP2001335185A patent/JP3796432B2/ja not_active Expired - Fee Related
-
2002
- 2002-10-24 US US10/278,941 patent/US7236997B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7236997B2 (en) | 2007-06-26 |
JP2003142989A (ja) | 2003-05-16 |
US20030088598A1 (en) | 2003-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7215820B2 (en) | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream | |
US5867602A (en) | Reversible wavelet transform and embedded codestream manipulation | |
US6195465B1 (en) | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream | |
JP4859368B2 (ja) | 高圧縮比を提供する要求資源最小の高速コーデック | |
JP5507077B2 (ja) | バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 | |
JP3796432B2 (ja) | フィルタ処理装置およびフィルタ処理方法 | |
JP5004987B2 (ja) | データ変換装置及びその制御方法 | |
JP2001257596A (ja) | データ処理方法及び装置 | |
JP6684229B2 (ja) | ウェーブレット変換行列に適応可能な高精度化及び量子化方法 | |
JP2003283840A (ja) | フィルタ処理装置およびフィルタ処理方法 | |
JP4266512B2 (ja) | データ処理装置 | |
JP3796354B2 (ja) | 画像符号化方法 | |
JP5546329B2 (ja) | データ変換装置 | |
JP3845208B2 (ja) | 画像圧縮装置および画像伸張装置 | |
JP4444480B2 (ja) | フィルタ処理装置 | |
JP2003283841A (ja) | フィルタ処理装置およびフィルタ処理方法 | |
JP5451171B2 (ja) | データ変換処理装置およびデータ変換処理方法 | |
Mosa | COLOR IMAGE COMPRESSION BASED ON ABSOLUTE MOMENT BLOCK TRUNCATION CODING USING DELTA ENCODING AND HUFFMAN CODING | |
JP2809798B2 (ja) | 画像データ直交変換装置のマトリクス演算処理方式 | |
JP2004206725A (ja) | サブバンド分割、合成方法及び装置 | |
JP2003258645A (ja) | アダマール変換処理方法及びその装置 | |
JP2000078412A (ja) | 画像圧縮装置および画像伸張装置 | |
JP2011257806A (ja) | データ変換方法、変換装置および画像符号化装置 | |
JPH11127439A (ja) | 画像符号化装置およびその方法並びに画像復号化装置およびその方法 | |
Dutoit et al. | How are digital images compressed in the web? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051003 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
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: 20060403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060417 |
|
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: 20090421 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120421 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130421 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130421 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140421 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |