JP3608554B2 - 5×3ウェーブレット変換装置 - Google Patents
5×3ウェーブレット変換装置 Download PDFInfo
- Publication number
- JP3608554B2 JP3608554B2 JP2002052040A JP2002052040A JP3608554B2 JP 3608554 B2 JP3608554 B2 JP 3608554B2 JP 2002052040 A JP2002052040 A JP 2002052040A JP 2002052040 A JP2002052040 A JP 2002052040A JP 3608554 B2 JP3608554 B2 JP 3608554B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data stream
- output
- stream
- original
- 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
- 238000006243 chemical reaction Methods 0.000 claims description 119
- 230000002441 reversible effect Effects 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 49
- 230000002427 irreversible effect Effects 0.000 claims description 43
- 101150040844 Bin1 gene Proteins 0.000 claims description 39
- 230000014509 gene expression Effects 0.000 claims description 32
- 230000009466 transformation Effects 0.000 claims description 18
- ZLHLYESIHSHXGM-UHFFFAOYSA-N 4,6-dimethyl-1h-imidazo[1,2-a]purin-9-one Chemical compound N=1C(C)=CN(C2=O)C=1N(C)C1=C2NC=N1 ZLHLYESIHSHXGM-UHFFFAOYSA-N 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 28
- 238000000605 extraction Methods 0.000 description 22
- 239000000284 extract Substances 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
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/148—Wavelet transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Complex Calculations (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、例えばJPEG2000等で用いられる5×3ウェーブレット変換装置に関するものである。
【0002】
【従来の技術】
近年、JPEG2000(ISO/IEC JTC 1/SC 29/WG1)と呼ばれる静止画像圧縮方式が提案されている。JPEG2000では、5×3フィルタリフティング演算を用いたウェーブレット変換が用いられる。元画像データを低域成分と高域成分とに分割する変換を順変換、低域成分及び高域成分を元画像に合成する変換を逆変換という。
【0003】
また、JPEG2000では、可逆ウェーブレット変換又は非可逆ウェーブレット変換の両者を採用しており、ユーザが選択的に適用できる。
【0004】
【発明が解決しようとする課題】
ところで、5×3のウェーブレットフィルタを例えばハードウェア化やソフトウェア化してJPEG2000の符号化/復号装置を作成する場合、可逆順変換モジュール、非可逆順変換モジュール、可逆逆変換モジュール並びに非可逆逆変換モジュールを、それぞれ作成しなければならなく、回路規模が大きくなってしまっていた。
【0005】
本発明は、このような実情を鑑みてなされたものであり、回路規模を削減した5×3ウェーブレット変換装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明にかかる5×3ウェーブレット変換装置は、複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う5×3ウェーブレット変換装置である。
【0007】
本発明の5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleの小数部分を0としてデータAoutを生成し、このデータAoutを出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleの小数部を0としてデータBoutを生成し、このデータBoutを出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0008】
この5×3ウェーブレット変換装置では、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0009】
この5×3ウェーブレット変換装置では、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0010】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
【0011】
Coeff_Aは、2(10進数)である。
【0012】
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0013】
また、本発明にかかる5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleをデータAoutとして出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleをデータBoutとして出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0014】
この5×3ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0015】
このこの5×3ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0016】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = 0.25*(Ain0 + Ain1) ・・・(式1)
Bmiddle = 0.5*(Bin0 + Bin1) ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0017】
本発明にかかる5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、可逆変換時には下記式1に示す演算を行ってデータAmiddleを求め、非可逆変換時には下記式1´に示す演算を行ってデータAmiddleを求め、可逆変換時にはこのデータAmiddleの小数部分を0としたデータAoutを出力し、非可逆変換時にはこのデータAmiddleをそのままデータAoutとして出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、可逆変換時にはこのデータBmiddleの小数部分を0としたデータBoutを出力し、非可逆変換時にはこのデータBmiddleをそのままデータBoutとして出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0018】
この5×3ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0019】
5×3ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0020】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Amiddle = (Ain0 + Ain1 )2 >> 2 ・・・(式1´)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1), (式1´),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
【0021】
係数Coeff_Aは、2(10進数)である。
【0022】
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0023】
【発明の実施の形態】
(5×3ウェーブレット変換処理)
5×3ウェーブレット変換の順変換処理は、図1に示すように、1次元に並べられた画素データ(又は係数であってもよい。)から構成されるデータストリームを、高周波数成分と低周波数成分に分離して、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームを生成する処理である。また、5×3ウェーブレット変換の逆変換処理は、順変換処理の反対の処理を行う。すなわち、逆変換処理は、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームとを合成して、元のデータストリームを生成する処理である。なお、生成される高域係数及び低域係数の数は、元の画素数(係数の数)の総数が偶数であれば、それぞれ1/2となる。また、元の画素数が奇数であれば、いずれか一方が1/ 2の小数点以下を切り上げた数、他方が1/2の小数点以下を切り下げた数となる。
【0024】
本明細書では、順変換処理前のデータストリームを元データストリームと呼ぶものとする。また、順変換処理後の高域係数から構成されるデータストリームを高域データストリームと呼び、低域係数から構成されるデータストリームを低域データストリームと呼ぶものとする。また、元データストリームの各画素(又は係数)、並びに、高域データストリーム及び低域データストリームの各係数を次のように表すものとする。
【0025】
高域係数は、“dn f”で表す。下付けの“n”は、その高域係数の高域データストリーム中における先頭からの位置(順番)を示している。nは、1以上の任意の自然数である。
【0026】
低域係数は、“sn f”で表す。下付けの“n”は、その低域係数の低域データストリーム中における先頭からの位置(順番)を示している。nは、1以上の任意の自然数である。
【0027】
元データは、“sn s”及び“dn s”で表す。“sn s”は、“sn f”と対応したピクセル位置にある画素(又は係数)であり、“dn s”は、“dn f”と対応したピクセル位置にある画素(又は係数)である。ここでは、“sn s”は、元データストリーム中の奇数番目の画素(又は係数)となり、“dn s”は元データストリーム中の偶数番目の画素(又は係数)となる。従って、“sn s”の元データストリーム上の位置(順番)は、2n−1番目となり、“dn s”の元データストリーム上での位置(順番)は、2n番目となる。
【0028】
以下、各方向の5×3ウェーブレット変換について説明をする。なお、以下ウェーブレット変換を説明をするにあたり、ストリーム中の各データは、2進数で表されているものとする。また、演算式上で、X>>Yは、2進数の数値Xを、Yビット分算術右シフト演算することを表している。
【0029】
(順方向可逆ウェーブレット変換)
5×3順方向可逆ウェーブレット変換では、1つの高域係数及び1つの低域係数を生成する5×3順方向可逆フィルタ演算を用いる。5×3順方向可逆ウェーブレット変換では、この5×3順方向可逆フィルタ演算を、元データストリームの先頭画素から最終画素まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。具体的には、5×3順方向可逆ウェーブレット変換では、元データストリームを2データずつステップさせながら、5×3順方向可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【0030】
図2に、n番目の高域係数“dn f”及びn番目の低域係数“sn f”を求める5×3順方向可逆フィルタ演算の模式図を示す。
【0031】
5×3順方向可逆フィルタ演算では、“dn f”及び“sn f”を以下の演算式により求める。
sn f=sn s+{(dn−1 f+dn f+2)>>2}
dn f=dn s−{(sn s+sn+1 s)>>1}
なお、dn−1 fは、前ステップでの5×3順方向可逆フィルタ演算により求められた値である。
【0032】
ここで、dn−1 f=I0,Sn s=I1,dn s=I2,sn+1 s=I3,sn f=O0,dn f=O1とした場合、上記の演算式は以下の式(1−1),(1−2)のように書き換えられる。
O0=I1+{(I0+O1+2)>>2} ・・・式(1−1)
O1=I2−{(I1+I3)>>1} ・・・式(1−2)
【0033】
(逆方向可逆ウェーブレット変換)
5×3逆方向可逆ウェーブレット変換では、2つの元画素(係数)データを生成する5×3逆方向可逆フィルタ演算を用いる。5×3逆方向可逆ウェーブレット変換では、この5×3逆方向可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、5×3逆方向可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを1データずつステップさせながら、5×3逆方向可逆フィルタ演算を行って、元データストリームを生成する。
【0034】
図3に、2n番目の元データ “dn s”及び2n+1番目の元データ“sn+1 s”を求める5×3逆方向可逆フィルタ演算の模式図を示す。
【0035】
5×3逆方向可逆フィルタ演算では、“dn s”及び“sn+1 s”を以下の演算式により求める。
dn s=dn f+{(sn s+sn+1 s)>>1}
sn+1 s=sn+1 f−{(dn f+dn+1 f+2)>>2}
なお、sn sは、前ステップでの5×3逆方向可逆フィルタ演算により求められている値である。
【0036】
ここで、sn s=I0,dn f=I1,sn+1 f=I2,dn+1 f=I3,dn s=O0,sn+1 s=O1とした場合、上記の演算式は以下の(2−1),(2−2)のように書き換えられる。
O0=I1+{(I0+O1)>>1} ・・・式(2−1)
O1=I2−{(I1+I3+2)>>2} ・・・式(2−2)
【0037】
(順方向非可逆ウェーブレット変換)
5×3順方向非可逆ウェーブレット変換では、1つの高域係数及び1つの低域係数を生成する5×3順方向非可逆フィルタ演算を用いる。5×3順方向非可逆ウェーブレット変換では、5×3順方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。すなわち、5×3順方向非可逆ウェーブレット変換では、元データストリームを2データずつステップさせながら、5×3順方向非可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【0038】
図4に、n番目の高域係数“dn f”及びn番目の低域係数“sn f”を求める5×3順方向非可逆フィルタ演算の模式図を示す。
【0039】
5×3順方向非可逆フィルタ演算では、“dn f”及び“sn f”を以下の演算式により求める。
sn f=sn s+β×(dn−1 f+dn f)
dn f=dn s−α×(sn s+sn+1 s)
なお、α=0.5、β=0.25である。また、dn−1 fは、前ステップでの5×3順方向非可逆フィルタ演算により求められている値である。
【0040】
ここで、dn−1 f=I0,Sn s=I1,dn s=I2,sn+1 s=I3,sn f=O0,dn f=O1とした場合、上記の演算式は以下の(3−1),(3−2)のように書き換えられる。
O0=I1+β×(I0+O1) ・・・式(3−1)
O1=I2−α×(I1+I3) ・・・式(3−2)
【0041】
(逆方向非可逆ウェーブレット変換)
5×3逆方向非可逆ウェーブレット変換では、2つの元画素(係数)データを生成する5×3逆方向非可逆フィルタ演算を用いる。5×3逆方向非可逆ウェーブレット変換では、この5×3逆方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、5×3逆方向非可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを1データずつステップさせながら、5×3逆方向非可逆フィルタ演算を行って、元データストリームを生成する。
【0042】
図5に、2n番目の元データ “dn s”及び2n+1番目の元データ“sn+1 s”を求める5×3逆方向非可逆フィルタ演算の模式図を示す。
【0043】
5×3逆方向非可逆フィルタ演算では、“dn s”及び“sn+1 s”を以下の演算式により求める。
dn s=dn f+α×{(sn s+sn+1 s)
sn+1 s=sn+1 f−β×(dn f+dn+1 f)
なお、sn sは、前ステップでの5×3逆方向非可逆フィルタ演算により求められている値である。
【0044】
ここで、sn s=I0,dn f=I1,sn+1 f=I2,dn+1 f=I3,dn s=O0,sn+1 s=O1とした場合、上記の演算式は以下の(4−1),(4−2)のように書き換えられる。
O0=I1+α×(I0+O1) ・・・式(4−1)
O1=I2−β×(I1+I3) ・・・式(4−2)
【0045】
(対称拡張)
つぎに、データストリームの端部部分のデータを生成する場合について説明をする。
【0046】
低域データストリームの先頭の係数(s1 f)を、5×3順方向可逆ウェーブレット変換又は順方向非可逆ウェーブレット変換を行って生成する場合、図6に示すように、フィルタが参照しなければならないデータI0(高域係数d0 f)が存在しない。そのため、5×3順方向ウェーブレット変換では、先頭の低域係数を生成する場合には、データO1(高域係数d1 f)をデータI0に入力してフィルタ演算を行う。このように、データストリームの先頭部分のデータを拡張して、フィルタの参照値とすることを先頭対象拡張という。
【0047】
画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数(dm f)を生成する場合、図7に示すように、フィルタが参照しなければならないデータI3(元データsm+1 s)が存在しない。そのため、5×3順方向ウェーブレット変換では、終端の高域係数を生成する場合には、データI1(元データsm s)をデータI3に入力してフィルタ演算を行う。このように、データストリームの終端部分のデータを拡張して、フィルタの参照とすることを終端対象拡張という。
【0048】
画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数(sm f)を生成する場合、図8に示すように、フィルタが参照しなければならないデータO1(高域係数dm s)が存在しない。そのため、5×3順方向ウェーブレット変換では、最終の低域係数を生成する場合には、データI0(高域係数dm−1 f)をデータO1に入力してフィルタ演算を行う。
【0049】
元データストリームの先頭の元データ(s1 s)を、5×3逆方向可逆ウェーブレット変換又は逆方向非可逆ウェーブレット変換を行って生成する場合、図9に示すように、フィルタが参照しなければならないデータI1(高域係数d0 f)が存在しない。そのため、5×3逆方向ウェーブレット変換では、先頭の元データを生成する場合には、データI3(高域係数d1 f)をデータI1に入力してフィルタ演算を行う。
【0050】
高域係数及び低域係数のデータの総数が偶数である高域及び低域データストリームを用いて、元データストリームの終端データ(dm s)を生成する場合、図10に示すように、フィルタが参照しなければならないデータO1(元データsm+1 s)が存在しない。そのため、5×3逆方向ウェーブレット変換では、終端の元データ(dm s)を生成する場合には、データI0(元データsm s)をデータO1に入力してフィルタ演算を行う。
【0051】
高域係数及び低域係数のデータの総数が奇数である高域及び低域データストリームを用いて、元データストリームの終端データ(sm s)を生成する場合、図11に示すように、フィルタが参照しなければならないデータI3(高域係数dm f)が存在しない。そのため、5×3逆方向ウェーブレット変換では、終端の元データ(sm s)を生成する場合には、データI1(高域係数dm−1 f)をデータI3に入力してフィルタ演算を行う。
【0052】
(ウェーブレット変換装置)
つぎに、本発明を適用した5×3ウェーブレット変換装置について説明をする。なお、以下、5×3ウェーブレット変換装置を説明するにあたり、元データ、高域係数及び低域係数は、32ビット幅で表された2進数データであり、32ビットのうち、最上位ビットが符号ビット、下位12ビットが小数部、残りの19ビットが整数部とされたデータであるものとする。また、本5×3ウェーブレット変換装置で用いられるデータバスは、図面中に特に指示がないかぎり、32ビット幅である。
【0053】
図12に、ウェーブレット変換装置1の回路図を示す。
【0054】
ウェーブレット変換装置1は、図12に示すように、関数Aモジュール11と、関数Bモジュール12と、関数C0モジュール13と、関数C1モジュール14と、係数生成モジュール15と、第1〜第7のセレクタ21〜27と、第1〜第3のフリップフロップ(F/F)28〜30とを備えている。
【0055】
また、ウェーブレット変換装置1は、入力端子として、I0端子,I1端子,I2端子,I3端子が設けられている。各入力端子I0,I1,I2,I3には、順方向可逆変換時には上述した式(1−1),(1−2)に対応したI0,I1,I2,I3が入力され、逆方向可逆変換時には上述した式(2−1),(2−2)に対応したI0,I1,I2,I3が入力され、順方向非可逆変換時には上述した式(3−1),(3−2)に対応したI0,I1,I2,I3が入力され、逆方向非可逆変換時には上述した式(4−1),(4−2)に対応したI0,I1,I2,I3が入力される。
【0056】
また、ウェーブレット変換装置1は、出力端子として、O0端子,O1端子が設けられている。各出力端子O0,O1からは、順方向可逆変換時には上述した式(1−1),(1−2)に対応したO0,O1が出力され、逆方向可逆変換時には上述した式(2−1),(2−2)に対応したO0,O1が出力され、順方向非可逆変換時には上述した式(3−1),(3−2)に対応したに対応したO0,O1が出力され、逆方向非可逆変換時には上述した式(4−1),(4−2)に対応したに対応したO0,O1が出力される。
【0057】
(関数Aモジュール)
関数Aモジュール11の内部構成について説明をする。図13に関数Aモジュール11の回路図を示す。
【0058】
関数Aモジュール11は、加算器31と、2ビット右シフト回路32と、整数抽出回路33と、小数抽出回路34と、アンド演算回路35と、合成回路36とを備えて構成される。
【0059】
関数Aモジュール11には、Ain0端子、Ain1端子、Coeff_A端子、Coeff_B端子が設けられており、各端子に対して、外部から、Ain0、Ain1、Coeff_A、Coeff_Bの各データが入力される。Ain0、Ain1、Coeff_Aは、32ビット長のデータである。Coeff_Bは、12ビット長のデータである。
【0060】
加算器31は、Ain0とAin1とCoeff_Aとを加算して、32ビットのデータを出力する。すなわち、加算器31は、(Ain0+Ain1+Coeff_A)の演算を行う。Coeff_Aは、係数発生モジュール15から発生される係数値である。Coeff_Aは、可逆変換時には、2(10進数)とされる。すなわち、本例では、下位12ビットが小数値であるので、Coeff_Aは、16進数表現で“0x2000”となる。また、Coeff_Aは、非可逆変換時には0とされる。
【0061】
2ビット右シフト回路32は、加算器31の出力値(32ビット)に対して、2ビットの算術右シフト演算を行う。
【0062】
整数抽出回路33は、2ビット右シフト回路32の出力値(32ビット)のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路33は、2ビット右シフト回路32の出力値のうちの上位20ビットを取り出す。
【0063】
小数抽出回路34は、2ビット右シフト回路32の出力値(32ビット)のうち、小数部を抽出する。すなわち、小数抽出回路33は、2ビット右シフト回路32の出力値のうちの下位12ビットを取り出す。
【0064】
アンド演算回路35は、小数抽出回路34により抽出された12ビットのデータと、Coeff_Bとのアンド論理演算を行う。Coeff_Bは、係数発生モジュール15から発生される係数値である。Coeff_Bは、可逆変換時には0とされ、非可逆変換時には16進数表現で“0xfff”(12ビットのデータ)とされる。すなわち、アンド演算回路35は、可逆変換時には、小数抽出回路33により抽出されたデータを0として出力し、非可逆変換時には、小数抽出回路33により抽出されたデータをそのまま出力する。
【0065】
合成回路36は、整数抽出回路33から出力されたデータと、アンド演算回路35から出力されたデータとを合成する。合成部36は、整数抽出回路33から出力されたデータ(20ビット)を符号ビット及び整数部とし、アンド演算回路35から出力されたデータを小数部とした、32ビットの出力データを生成する。
【0066】
そして、関数Aモジュール11は、上記合成回路36の出力データを、本モジュールの出力データ(Aout)として、Aout端子から外部に出力する。
【0067】
従って、以上の関数Aモジュール11では、可逆変換時には下記式(A−1)の固定小数点演算が行われ、非可逆演算時には下記式(A−2)の固定小数点演算が行われることとなる。
Aout = RoundOff{ (Ain0 + Ain1 + 0x2000) >> 2 }・・・式(A−1)
Aout = 0.25 * (Ain0 + Ain1) ・・・式(A−2)
なお、X>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。また、RoundOff(X)は、数値Xの小数点以下を切り捨てる演算をすることを示す。
【0068】
(関数Bモジュール)
関数Bモジュール12の内部構成について説明をする。図14に関数Bモジュール12の回路図を示す。
【0069】
関数Bモジュール12は、加算器41と、1ビット右シフト回路42と、整数抽出回路43と、小数抽出回路44と、アンド演算回路45と、合成回路46とを備えて構成される。
【0070】
関数Bモジュール12には、Bin0端子、Bin1端子、Coeff_B端子が設けられており、各端子に対して、外部から、Bin0、Bin1、Coeff_Bの各データが入力される。Bin0、Bin1は、32ビット長のデータである。Coeff_Bは、12ビット長のデータである。
【0071】
加算器41は、Bin0とBin1とを加算して、32ビットのデータを出力する。すなわち、加算器41は、(Bin0+Bin1)の演算を行う。
【0072】
1ビット右シフト回路42は、加算器41の出力値(32ビット)に対して、1ビットの算術右シフト演算を行う。
【0073】
整数抽出回路43は、1ビット右シフト回路42の出力値(32ビット)のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路43は、1ビット右シフト回路42の出力値のうちの上位20ビットを取り出す。
【0074】
小数抽出回路44は、1ビット右シフト回路42の出力値(32ビット)のうち、小数部を抽出する。すなわち、小数抽出回路43は、1ビット右シフト回路42の出力値のうちの下位12ビットを取り出す。
【0075】
アンド演算回路45は、小数抽出回路44により抽出された12ビットのデータと、Coeff_Bとのアンド論理演算を行う。Coeff_Bは、係数発生モジュール15から発生される係数値である。Coeff_Bは、可逆変換時には0とされ、非可逆変換時には16進数表現で0xFFF(12ビット)とされる。すなわち、アンド演算回路45は、可逆変換時には、小数抽出回路43により抽出されたデータを0とし、非可逆変換時には、小数抽出回路43により抽出されたデータをそのまま出力する。
【0076】
合成回路46は、整数抽出回路43から出力されたデータと、アンド演算回路45から出力されたデータとを合成する。合成部46は、整数抽出回路43から出力されたデータ(20ビット)を符号ビット及び整数部とし、アンド演算回路45から出力されたデータを小数部とした、32ビットの出力データを生成する。
【0077】
そして、関数Bモジュール12は、上記合成回路46の出力データを、本モジュールの出力データ(Bout)として、Bout端子から外部に出力する。
【0078】
従って、以上の関数Bモジュール12では、可逆変換時には下記式(B−1)の固定小数点演算が行われ、非可逆演算時には下記式(B−2)の固定小数点演算が行われることとなる。
Bout = RoundOff{ (Bin0 + Bin1) >> 1 }・・・式(B−1)
Bout = 0.5 * (Bin0 + Bin1) ・・・式(B−2)
なお、X>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。また、RoundOff(X)は、数値Xの小数点以下を切り捨てる演算をすることを示す。
【0079】
(関数C0モジュール)
関数C0モジュール13の内部構成について説明をする。図15に関数C0モジュール13の回路図を示す。
【0080】
関数C0モジュール13は、加算器51を備えて構成される。関数C0モジュール13には、C0in0端子、C0in1端子が設けられており、各端子に対して、外部から、C0in0及びC0in1の各データが入力される。C0in0、C0in1は、32ビット長のデータである。
【0081】
加算器51は、C0in0とC0in1とを加算して、32ビットのデータを出力する。すなわち、加算器51は、(C0in0+C0in1)の演算を行う。
【0082】
そして、関数C0モジュール13は、上記加算器51の出力データを、本モジュールの出力データ(C0out)として、C0out端子から外部に出力する。
【0083】
従って、以上の関数C0モジュール13では、下記式(C0−1)の固定小数点演算が行われることとなる。
C0out = C0in0 + C1in1 ・・・式(C−1)
【0084】
(関数C1モジュール)
関数C1モジュール14の内部構成について説明をする。図16に関数C1モジュール14の回路図を示す。
【0085】
関数C1モジュール14は、2の補数演算回路52と、加算器53とを備えて構成される。関数C1モジュール14には、C1in0端子、C1in1端子が設けられており、各端子に対して、外部から、C1in0及びC1in1が入力される。C1in0、C1in1は、32ビット長のデータである。
【0086】
2の補数演算回路52は、Clin1の2の補数を算出する。加算器53は、2の補数演算回路52の出力値と、C0in0とを加算して、32ビットのデータを出力する。すなわち、2の補数演算回路52及び加算器53は、(C0in0−C0in1)の演算を行う。
【0087】
そして、関数C1モジュール14は、上記加算器53の出力データを、本モジュールの出力データ(C1out)として、C1out端子から外部に出力する。
【0088】
従って、以上の関数C0モジュール13では、下記式(C1−1)の固定小数点演算が行われることとなる。
C1out = C0in0 − C1in1 ・・・式(C1−1)
【0089】
(係数発生モジュール)
係数発生モジュール15の内部構成について説明をする。図17に係数発生モジュール15の回路図を示す。
【0090】
係数発生モジュール15は、係数Coeff_A及び係数Coeff_Bを発生する。Coeff_Aは32ビットのデータであり、Coeff_Bは12ビットのデータである。Coeff_Bのビット長は、本装置が取り扱うデータ長の小数部のビット長に対応する。Coeff_A及びCoeff_Bの切り換えは、例えば外部のコントローラにより制御される。Coeff_A及びCoeff_Bは、可逆変換時と非可逆変換時とで、その値が以下のように切り換えられる。
【0091】
可逆変換時
Coeff_A=0x2000(16進数、なお、10進数で表すと“2”となる)
Coeff_B=0
非可逆変換時
Coeff_A=0
Coeff_B=0xfff(16進数)
【0092】
(セレクタ)
セレクタついて説明をする。
【0093】
各モジュールは、第1から第7のセレクタ21〜27を介して接続されている。第1から第7のセレクタ21〜27は、2つの入力端子(入力端子‘0’,入力端子‘1’)に対して、1つの出力端子が設けられたセレクタである。すなわち、第1〜第7の各セレクタ21〜27は、2つの入力端子の入力された信号のうち、いずれか一方の信号を選択して出力するものである。
【0094】
第1から第6のセレクタ21〜26は、順変換処理時と、逆変換処理とで、入力端子が切り換えられる。順変換処理時には入力端子‘0’が選択され、逆変換処理時には入力端子‘1’が選択される。また、第7のセレクタ27は、終端対称拡張を行う際に用いられる。具体的には、第7のセレクタ27は、順変換処理時で且つ元データストリームのデータ総数が奇数の場合、並びに、逆変換処理時で且つ元データストリームのデータ総数が偶数の場合、最終データの処理タイミングで入力端子‘1’が選択される。それ以外の場合には、入力端子‘0’が選択される。
【0095】
(フリップフロップ)
第1〜第3のフリップフロップ28,29,30は、入力端子に入力されたデータを、1クロック分遅延させ、遅延させたデータを出力端子から出力する。
【0096】
(各モジュールの接続関係)
つぎに、各モジュールの接続関係について、再度図12を参照して説明をする。
【0097】
I0端子は、第1のフリップフロップ28の入力端子及び第7のセレクタ27の入力端子‘1’に接続されている。第1のフリップフロップ28の出力端子は、第1のセレクタ21の入力端子‘0’及び第3のセレクタ23の入力端子‘1’に接続されている。
【0098】
I1端子は、第1のセレクタ21の入力端子‘1’、第3の入力端子23の入力端子‘0’及び第2のフリップフロップ29の入力端子に接続されている。第2のフリップフロップ29の出力端子は、関数C0モジュール13のC0in0端子に接続されている。
【0099】
I2端子は、関数C1モジュール14のC1in0端子に接続されている。
【0100】
I3端子は、第2のセレクタ22の入力端子‘1’及び第4のセレクタ24の入力端子‘0’に接続されている。
【0101】
第1のセレクタ21の出力端子は、関数Aモジュール11のAin0端子に接続されている。第2のセレクタ22の出力端子は、関数Aモジュール11のAin1端子に接続されている。第3のセレクタ23の出力端子は、関数Bモジュール12のBin0端子に接続されている。第4のセレクタ24の出力端子は、関数Bモジュール12のBin1端子に接続されている。
【0102】
関数Aモジュール11のAout端子は、第5のセレクタ25の入力端子‘0’及び第6のセレクタ26の入力端子‘1’に接続されている。関数Bモジュール12のBout端子は、第5のセレクタ25の入力端子‘1’及び第6のセレクタ26の入力端子‘0’に接続されている。
【0103】
第5のセレクタ25の出力端子は、関数C0モジュール13のC0in1端子に接続されている。第6のセレクタ26の出力端子は、関数C1モジュール14のC1in1端子に接続されている。
【0104】
関数C0モジュール13のC0out端子は、O0端子に接続されている。関数C1モジュール14のC1out端子は、O1端子及び第7のセレクタ27の入力端子‘0’に接続されている。
【0105】
第7のセレクタ27の出力端子は、第3のフリップフロップ30の入力端子に接続されている。第3のフリップフロップ30の出力端子は、第2のセレクタ22の入力端子‘0’及び第4のセレクタ24の入力端子‘1’に接続されている。
【0106】
係数発生モジュール15から発生される係数Coeff_Aは、関数Aモジュール11のCoeff_A端子に入力される。係数発生モジュール15から発生されるCoeff_Bは、関数Aモジュール11のCoeff_B端子及び関数Bモジュール12のCoeff_B端子に入力される。
【0107】
(順変換処理時の動作)
順変換処理時の動作について説明をする。
【0108】
ウェーブレット変換装置1は、順変換処理時には、1回の処理パスごとに、1つの高域係数及び1つの低域係数を生成する5×3順方向フィルタ演算を行う。本ウェーブレット変換装置1には、外部のコントローラにより、元データストリーム及び前パスですでに生成している高域データストリームの各データが選択されて入力される。外部のコントローラは、元データストリームの各データを、先頭データから最終データまで、1パスごとに2データずつステップさせて、ウェーブレット変換装置1に入力していくことによって、高域データストリームと低域データストリームとを生成する。
【0109】
順変換処理時には、第1〜第6のセレクタ21〜26が、外部のコントローラにより入力端子‘0’に切り換えられる。
【0110】
このウェーブレット変換装置1には、順変換処理時には、外部のコントローラにより、I0端子にdn−1 fが入力され、I1端子にSn sが入力され、I2端子にdn sが入力され、I3端子にsn+1 sが入力される。
【0111】
この結果、ウェーブレット変換装置1により、可逆変換時には、下記のような演算結果が得られることとなる。
sn f=sn s+{(dn−1 f+dn f+2)>>2}
dn f=dn s−{(sn s+sn+1 s)>>1}
また、非可逆変換時は、下記のような演算結果が得られることとなる。
sn f=sn s+0.25×(dn−1 f+dn f)
dn f=dn s−0.5×(sn s+sn+1 s)
【0112】
そして、O0端子からは演算結果であるsn fが出力され、O1端子からは演算結果であるdn fが出力される。
【0113】
図18に、順変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図18に示すように、本ウェーブレット変換装置1は、2クロックで1回の処理パスが行われる。1つの処理パス内の1回目のクロックで、関数Bモジュール12及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Aモジュール11及び関数C0モジュール13が動作して演算を行うこととなる。
【0114】
図19に、低域データストリームの先頭の係数(s1 f)を生成する際のタイミングチャートを示す。この図19に示すように、先頭の低域データ(s1 f)は、最初のパスの2クロック目で処理がされる。この際に、外部のコントローラは、1クロック目でO1端子から出力された先頭の高域データ(d1f)を取り出して、I0端子に入力する。このことによって、順変換処理時の先頭対称拡張を行うことができる。
【0115】
図20に、画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数(dm f)を生成する際のタイミングチャートを示す。この図20に示すように、終端の高域係数(dm f)は、最終パスの1クロック目で処理がされる。この際に、外部のコントローラは、I1端子に入力する元データ(sm s)を、I3端子にも入力する。このことによって、元データストリームの画素データの総数が偶数である場合の順変換処理時の終端対称拡張を行うことができる。
【0116】
図21に、画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数(sm f)を生成する際のタイミングチャートを示す。この図21に示すように、終端の低域係数(sm f)は、最終パスの2クロック目で処理がされる(なお、最終パスの1クロック目のデータは生成さない。(O1)はない。)。この際に、外部のコントローラは、第7のセレクタ27を、入力端子‘1’側に切り換え、I0端子に入力する高域係数(dm−1 f)を、出力端子O1から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が奇数である場合の順変換処理時の終端対称拡張を行うことができる。
【0117】
(逆変換処理時の動作)
逆変換処理時の動作について説明をする。
【0118】
本ウェーブレット変換装置1は、1回の処理パスが2クロックで動作する。1つの処理パス内の1回目のクロックで、関数Bモジュール12及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Aモジュール11及び関数C0モジュール13が動作して演算を行うこととなる。
【0119】
ウェーブレット変換装置1は、逆変換処理時には、1回の処理パスごとに、2つの元画像データを生成する5×3逆方向フィルタ演算を行う。本ウェーブレット変換装置1には、外部のコントローラにより、低域データストリーム及び高域データストリーム、並びに、前パスですでに生成している元データストリームの各データが選択されて入力される。外部のコントローラは、低域データストリーム及び高域データストリームの各データを、先頭データから最終データまで、各1データずつステップさせて、ウェーブレット変換装置1に入力していくことによって、元データストリームとを生成する。
【0120】
逆変換処理時には、第1〜第6のセレクタ21〜26は、入力端子‘1’を選択する。
【0121】
このウェーブレット変換装置1には、逆変換処理時には、I0端子にsn sが入力され、I1端子にdn fが入力され、I2端子にsn+1 fが入力され、I3端子にdn+1 fが入力される。
【0122】
この結果、ウェーブレット変換装置1により、可逆変換時には、下記のような演算結果が得られることとなる。
dn s=dn f+{(sn s+sn+1 s)>>1}
sn+1 s=sn+1 f−{(dn f+dn+1 f+2)>>2}
また、非可逆変換時は、下記のような演算結果が得られることとなる。
dn s=dn f+0.5×{(sn s+sn+1 s)
sn+1 s=sn+1 f−0.25×(dn f+dn+1 f)
【0123】
そして、O0端子からは演算結果であるdn sが出力され、O1端子からは演算結果であるsn+1 sが出力される。
【0124】
図22に、逆変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図22に示すように、本ウェーブレット変換装置1は、2クロックで1回の処理パスが行われる。1つの処理パス内の1回目のクロックで、関数Aモジュール11及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Bモジュール12及び関数C0モジュール13が動作して演算を行う。
【0125】
図23に、元データストリームの先頭の係数(s1 s)を生成する際のタイミングチャートを示す。この図23に示すように、先頭の元データ(s1 s)は、最初のパスの1クロック目で処理がされる(なお、最初のパスの2クロック目では、データは生成されない。)。この際に、外部のコントローラは、I3端子に入力する元データ(d1 f)を、I1端子にも入力する。このことによって、逆変換処理時の先頭対称拡張を行うことができる。
【0126】
図24に、画素データの総数が偶数である元データストリームを生成する際の終端の元データ(dm s)を生成する際のタイミングチャートを示す。この図24に示すように、終端の元データ(dm s)は、最終パスの2クロック目で処理がされる(なお、最終パスの1クロック目の出力データ(O1)はない。)。この際に、外部のコントローラは、第7のセレクタ27を、入力端子‘1’側に切り換え、I0端子に入力する元データ(sm s)を、出力端子O1から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が偶数である場合の逆変換処理時の終端対称拡張を行うことができる。
【0127】
図25に、画素データの総数が奇数である元データストリームを生成する際の終端の元データ(sm s)を生成する際のタイミングチャートを示す。この図25に示すように、終端の元データ(sm s)は、最終パスの1クロック目で処理がされる。この際に、外部のコントローラは、I1端子に入力する高域係数(dm−1 f)を、I3端子にも入力する。このことによって、元データストリームの画素データの総数が奇数である場合の逆変換処理時の終端対称拡張を行うことができる。
【0128】
(効果及び変形例)
以上のように本ウェーブレット変換装置1では、フィルタ演算ブロックを、関数Aモジュール11、関数Bモジュール12、関数C0モジュール13、関数C1モジュール14とに分離し、順変換時と逆変換時とでこれらのモジュールの接続関係をセレクタにより切り換えている。このため、ウェーブレット変換装置1では、回路規模が非常に小さくなっている。
【0129】
具体的には、ウェーブレット変換装置1では、以下のように演算ブロックを分割し、これらを順変換時と逆変換時とで組み合わせて、フィルタ演算を行っている。
関数Aモジュール11: (Ain0 + Ain1 + Coeff_A) >> 2
関数Bモジュール12: (Bin0 + Bin1) 2 >> 1
関数C0モジュール13:C0in0 + C0in1
関数C1モジュール14:C1in0 − C1in1
【0130】
また、ウェーブレット変換装置1では、可逆変換時と非可逆変換時とで、係数発生モジュール15から発生される、関数Aモジュール11に与えるCoeff_Aと、関数Aモジュール11及び関数Bモジュール12の出力結果の小数部を削除するか残すかを決定する係数Coeff_Bとを、切り換えている。このため、ウェーブレット変換装置1では、1つの演算モジュールで、可逆演算と非可逆演算を行うことができ、回路規模が非常に小さくなっている。
【0131】
なお、本実施の形態のウェーブレット変換装置1では、低域係数と高域係数との位相順序を、図1に示したように、低域係数→高域係数の順で生成しているが、本発明はこのような位相順序に限らず、図26に示すように、高域係数→低域係数の順でもよい。
【0132】
この場合、ウェーブレット変換装置1に対して入出力される元データストリーム及び低域データストリームのデータ順序、すなわち、各データに付けられた下付けのnの値は、本実施の形態のウェーブレット変換装置1で説明したものに、相対的に1つ加算された順序となる。
【0133】
すなわち、元データの元データストリーム上の位置(順序)をL、高域係数の高域データストリーム上の位置(順序)をM、低域係数の低域データストリーム上の位置(順序)をNとしたとする(L,M,Nは整数)。
【0134】
この場合、本実施の形態のウェーブレット変換装置1では、L,M,Nと、下付けのnの関係は次のようになる。
2n=L=2M=2N
これに対して、高域係数→低域係数の順でフィルタ演算を行う場合には、L,M,Nと、下付けのnの関係は、次のようになる。
2n=(L+1)=2M=2(N+1)
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため先頭対称拡張を行う際には、存在しない高域係数の1つ後の高域係数を用いて先頭対称拡張をすればよい。同様に、元データが存在しないため先頭対称拡張を行う際には、存在しない元データの2つあとの元データを用いて先頭対称拡張を行えばよい。
【0135】
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため終端対称拡張を行う際には、存在しない高域係数の1つ前の高域係数を用いて終端対称拡張をすればよい。同様に、元データが存在しないため終端対称拡張を行う際には、存在しない元データの2つ前の元データを用いて終端対称拡張を行えばよい。
【0136】
【発明の効果】
本発明にかかる5×3ウェーブレット変換装置では、順変換時と逆変換時とで、演算手段の接続関係を切り換えている。このため、本発明にかかる5×3ウェーブレット変換装置では、回路規模を小さくすることができる。
【0137】
また、本発明にかかる5×3ウェーブレット変換装置では、可逆変換時と非可逆変換時とで、第1の演算手段に与えるCoeff_Aと、第1の演算手段及び第2の演算手段の出力結果の小数部を削除するか残すかを、切り換えている。このため、本発明にかかる5×3ウェーブレット変換装置では、1つの演算手段で、可逆演算と非可逆演算を行うことができ、回路規模を小さくすることができる。
【図面の簡単な説明】
【図1】ウェーブレット変換について説明するための図である。
【図2】順方向可逆ウェーブレット変換について説明をする図である。
【図3】逆方向可逆ウェーブレット変換について説明をする図である。
【図4】順方向非可逆ウェーブレット変換について説明をする図である。
【図5】逆方向非可逆ウェーブレット変換について説明をする図である。
【図6】順変換処理時の先頭対称拡張について説明をする図である。
【図7】元データの総数が偶数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図8】元データの総数が奇数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図9】逆変換処理時の先頭対称拡張について説明をする図である。
【図10】元データの総数が偶数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図11】元データの総数が奇数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図12】ウェーブレット変換装置の回路図である。
【図13】関数Aモジュールの回路図である。
【図14】関数Bモジュールの回路図である。
【図15】関数C0モジュールの回路図である。
【図16】関数C1モジュールの回路図である。
【図17】係数発生モジュールの回路図である。
【図18】順変換処理時の通常の入出力データのタイミングチャートを示す。
【図19】順変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図20】元データの総数が偶数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図21】元データの総数が奇数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図22】逆変換処理時の通常の入出力データのタイミングチャートを示す。
【図23】逆変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図24】元データの総数が偶数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図25】元データの総数が奇数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図26】高域係数→低域係数の位相順序でフィルタリングを行った場合のウェーブレット変換について説明するための図である。
【符号の説明】
1 ウェーブレット変換装置、11 関数Aモジュール、12 関数Bモジュール、13 関数C0モジュール、14 関数C1モジュール、15 係数発生モジュール
【発明の属する技術分野】
本発明は、例えばJPEG2000等で用いられる5×3ウェーブレット変換装置に関するものである。
【0002】
【従来の技術】
近年、JPEG2000(ISO/IEC JTC 1/SC 29/WG1)と呼ばれる静止画像圧縮方式が提案されている。JPEG2000では、5×3フィルタリフティング演算を用いたウェーブレット変換が用いられる。元画像データを低域成分と高域成分とに分割する変換を順変換、低域成分及び高域成分を元画像に合成する変換を逆変換という。
【0003】
また、JPEG2000では、可逆ウェーブレット変換又は非可逆ウェーブレット変換の両者を採用しており、ユーザが選択的に適用できる。
【0004】
【発明が解決しようとする課題】
ところで、5×3のウェーブレットフィルタを例えばハードウェア化やソフトウェア化してJPEG2000の符号化/復号装置を作成する場合、可逆順変換モジュール、非可逆順変換モジュール、可逆逆変換モジュール並びに非可逆逆変換モジュールを、それぞれ作成しなければならなく、回路規模が大きくなってしまっていた。
【0005】
本発明は、このような実情を鑑みてなされたものであり、回路規模を削減した5×3ウェーブレット変換装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明にかかる5×3ウェーブレット変換装置は、複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う5×3ウェーブレット変換装置である。
【0007】
本発明の5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleの小数部分を0としてデータAoutを生成し、このデータAoutを出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleの小数部を0としてデータBoutを生成し、このデータBoutを出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0008】
この5×3ウェーブレット変換装置では、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0009】
この5×3ウェーブレット変換装置では、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0010】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
【0011】
Coeff_Aは、2(10進数)である。
【0012】
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0013】
また、本発明にかかる5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleをデータAoutとして出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleをデータBoutとして出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0014】
この5×3ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0015】
このこの5×3ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0016】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = 0.25*(Ain0 + Ain1) ・・・(式1)
Bmiddle = 0.5*(Bin0 + Bin1) ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0017】
本発明にかかる5×3ウェーブレット変換装置は、データAin0,データAin1が入力され、可逆変換時には下記式1に示す演算を行ってデータAmiddleを求め、非可逆変換時には下記式1´に示す演算を行ってデータAmiddleを求め、可逆変換時にはこのデータAmiddleの小数部分を0としたデータAoutを出力し、非可逆変換時にはこのデータAmiddleをそのままデータAoutとして出力する第1の演算手段と、データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、可逆変換時にはこのデータBmiddleの小数部分を0としたデータBoutを出力し、非可逆変換時にはこのデータBmiddleをそのままデータBoutとして出力する第2の演算手段と、データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備える。
【0018】
この5×3ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力する。
【0019】
5×3ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力する。
【0020】
ここで、この5×3ウェーブレット変換装置で引用される各式は、以下のとおりである。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Amiddle = (Ain0 + Ain1 )2 >> 2 ・・・(式1´)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1), (式1´),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
【0021】
係数Coeff_Aは、2(10進数)である。
【0022】
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。
【0023】
【発明の実施の形態】
(5×3ウェーブレット変換処理)
5×3ウェーブレット変換の順変換処理は、図1に示すように、1次元に並べられた画素データ(又は係数であってもよい。)から構成されるデータストリームを、高周波数成分と低周波数成分に分離して、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームを生成する処理である。また、5×3ウェーブレット変換の逆変換処理は、順変換処理の反対の処理を行う。すなわち、逆変換処理は、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームとを合成して、元のデータストリームを生成する処理である。なお、生成される高域係数及び低域係数の数は、元の画素数(係数の数)の総数が偶数であれば、それぞれ1/2となる。また、元の画素数が奇数であれば、いずれか一方が1/ 2の小数点以下を切り上げた数、他方が1/2の小数点以下を切り下げた数となる。
【0024】
本明細書では、順変換処理前のデータストリームを元データストリームと呼ぶものとする。また、順変換処理後の高域係数から構成されるデータストリームを高域データストリームと呼び、低域係数から構成されるデータストリームを低域データストリームと呼ぶものとする。また、元データストリームの各画素(又は係数)、並びに、高域データストリーム及び低域データストリームの各係数を次のように表すものとする。
【0025】
高域係数は、“dn f”で表す。下付けの“n”は、その高域係数の高域データストリーム中における先頭からの位置(順番)を示している。nは、1以上の任意の自然数である。
【0026】
低域係数は、“sn f”で表す。下付けの“n”は、その低域係数の低域データストリーム中における先頭からの位置(順番)を示している。nは、1以上の任意の自然数である。
【0027】
元データは、“sn s”及び“dn s”で表す。“sn s”は、“sn f”と対応したピクセル位置にある画素(又は係数)であり、“dn s”は、“dn f”と対応したピクセル位置にある画素(又は係数)である。ここでは、“sn s”は、元データストリーム中の奇数番目の画素(又は係数)となり、“dn s”は元データストリーム中の偶数番目の画素(又は係数)となる。従って、“sn s”の元データストリーム上の位置(順番)は、2n−1番目となり、“dn s”の元データストリーム上での位置(順番)は、2n番目となる。
【0028】
以下、各方向の5×3ウェーブレット変換について説明をする。なお、以下ウェーブレット変換を説明をするにあたり、ストリーム中の各データは、2進数で表されているものとする。また、演算式上で、X>>Yは、2進数の数値Xを、Yビット分算術右シフト演算することを表している。
【0029】
(順方向可逆ウェーブレット変換)
5×3順方向可逆ウェーブレット変換では、1つの高域係数及び1つの低域係数を生成する5×3順方向可逆フィルタ演算を用いる。5×3順方向可逆ウェーブレット変換では、この5×3順方向可逆フィルタ演算を、元データストリームの先頭画素から最終画素まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。具体的には、5×3順方向可逆ウェーブレット変換では、元データストリームを2データずつステップさせながら、5×3順方向可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【0030】
図2に、n番目の高域係数“dn f”及びn番目の低域係数“sn f”を求める5×3順方向可逆フィルタ演算の模式図を示す。
【0031】
5×3順方向可逆フィルタ演算では、“dn f”及び“sn f”を以下の演算式により求める。
sn f=sn s+{(dn−1 f+dn f+2)>>2}
dn f=dn s−{(sn s+sn+1 s)>>1}
なお、dn−1 fは、前ステップでの5×3順方向可逆フィルタ演算により求められた値である。
【0032】
ここで、dn−1 f=I0,Sn s=I1,dn s=I2,sn+1 s=I3,sn f=O0,dn f=O1とした場合、上記の演算式は以下の式(1−1),(1−2)のように書き換えられる。
O0=I1+{(I0+O1+2)>>2} ・・・式(1−1)
O1=I2−{(I1+I3)>>1} ・・・式(1−2)
【0033】
(逆方向可逆ウェーブレット変換)
5×3逆方向可逆ウェーブレット変換では、2つの元画素(係数)データを生成する5×3逆方向可逆フィルタ演算を用いる。5×3逆方向可逆ウェーブレット変換では、この5×3逆方向可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、5×3逆方向可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを1データずつステップさせながら、5×3逆方向可逆フィルタ演算を行って、元データストリームを生成する。
【0034】
図3に、2n番目の元データ “dn s”及び2n+1番目の元データ“sn+1 s”を求める5×3逆方向可逆フィルタ演算の模式図を示す。
【0035】
5×3逆方向可逆フィルタ演算では、“dn s”及び“sn+1 s”を以下の演算式により求める。
dn s=dn f+{(sn s+sn+1 s)>>1}
sn+1 s=sn+1 f−{(dn f+dn+1 f+2)>>2}
なお、sn sは、前ステップでの5×3逆方向可逆フィルタ演算により求められている値である。
【0036】
ここで、sn s=I0,dn f=I1,sn+1 f=I2,dn+1 f=I3,dn s=O0,sn+1 s=O1とした場合、上記の演算式は以下の(2−1),(2−2)のように書き換えられる。
O0=I1+{(I0+O1)>>1} ・・・式(2−1)
O1=I2−{(I1+I3+2)>>2} ・・・式(2−2)
【0037】
(順方向非可逆ウェーブレット変換)
5×3順方向非可逆ウェーブレット変換では、1つの高域係数及び1つの低域係数を生成する5×3順方向非可逆フィルタ演算を用いる。5×3順方向非可逆ウェーブレット変換では、5×3順方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。すなわち、5×3順方向非可逆ウェーブレット変換では、元データストリームを2データずつステップさせながら、5×3順方向非可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【0038】
図4に、n番目の高域係数“dn f”及びn番目の低域係数“sn f”を求める5×3順方向非可逆フィルタ演算の模式図を示す。
【0039】
5×3順方向非可逆フィルタ演算では、“dn f”及び“sn f”を以下の演算式により求める。
sn f=sn s+β×(dn−1 f+dn f)
dn f=dn s−α×(sn s+sn+1 s)
なお、α=0.5、β=0.25である。また、dn−1 fは、前ステップでの5×3順方向非可逆フィルタ演算により求められている値である。
【0040】
ここで、dn−1 f=I0,Sn s=I1,dn s=I2,sn+1 s=I3,sn f=O0,dn f=O1とした場合、上記の演算式は以下の(3−1),(3−2)のように書き換えられる。
O0=I1+β×(I0+O1) ・・・式(3−1)
O1=I2−α×(I1+I3) ・・・式(3−2)
【0041】
(逆方向非可逆ウェーブレット変換)
5×3逆方向非可逆ウェーブレット変換では、2つの元画素(係数)データを生成する5×3逆方向非可逆フィルタ演算を用いる。5×3逆方向非可逆ウェーブレット変換では、この5×3逆方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、5×3逆方向非可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを1データずつステップさせながら、5×3逆方向非可逆フィルタ演算を行って、元データストリームを生成する。
【0042】
図5に、2n番目の元データ “dn s”及び2n+1番目の元データ“sn+1 s”を求める5×3逆方向非可逆フィルタ演算の模式図を示す。
【0043】
5×3逆方向非可逆フィルタ演算では、“dn s”及び“sn+1 s”を以下の演算式により求める。
dn s=dn f+α×{(sn s+sn+1 s)
sn+1 s=sn+1 f−β×(dn f+dn+1 f)
なお、sn sは、前ステップでの5×3逆方向非可逆フィルタ演算により求められている値である。
【0044】
ここで、sn s=I0,dn f=I1,sn+1 f=I2,dn+1 f=I3,dn s=O0,sn+1 s=O1とした場合、上記の演算式は以下の(4−1),(4−2)のように書き換えられる。
O0=I1+α×(I0+O1) ・・・式(4−1)
O1=I2−β×(I1+I3) ・・・式(4−2)
【0045】
(対称拡張)
つぎに、データストリームの端部部分のデータを生成する場合について説明をする。
【0046】
低域データストリームの先頭の係数(s1 f)を、5×3順方向可逆ウェーブレット変換又は順方向非可逆ウェーブレット変換を行って生成する場合、図6に示すように、フィルタが参照しなければならないデータI0(高域係数d0 f)が存在しない。そのため、5×3順方向ウェーブレット変換では、先頭の低域係数を生成する場合には、データO1(高域係数d1 f)をデータI0に入力してフィルタ演算を行う。このように、データストリームの先頭部分のデータを拡張して、フィルタの参照値とすることを先頭対象拡張という。
【0047】
画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数(dm f)を生成する場合、図7に示すように、フィルタが参照しなければならないデータI3(元データsm+1 s)が存在しない。そのため、5×3順方向ウェーブレット変換では、終端の高域係数を生成する場合には、データI1(元データsm s)をデータI3に入力してフィルタ演算を行う。このように、データストリームの終端部分のデータを拡張して、フィルタの参照とすることを終端対象拡張という。
【0048】
画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数(sm f)を生成する場合、図8に示すように、フィルタが参照しなければならないデータO1(高域係数dm s)が存在しない。そのため、5×3順方向ウェーブレット変換では、最終の低域係数を生成する場合には、データI0(高域係数dm−1 f)をデータO1に入力してフィルタ演算を行う。
【0049】
元データストリームの先頭の元データ(s1 s)を、5×3逆方向可逆ウェーブレット変換又は逆方向非可逆ウェーブレット変換を行って生成する場合、図9に示すように、フィルタが参照しなければならないデータI1(高域係数d0 f)が存在しない。そのため、5×3逆方向ウェーブレット変換では、先頭の元データを生成する場合には、データI3(高域係数d1 f)をデータI1に入力してフィルタ演算を行う。
【0050】
高域係数及び低域係数のデータの総数が偶数である高域及び低域データストリームを用いて、元データストリームの終端データ(dm s)を生成する場合、図10に示すように、フィルタが参照しなければならないデータO1(元データsm+1 s)が存在しない。そのため、5×3逆方向ウェーブレット変換では、終端の元データ(dm s)を生成する場合には、データI0(元データsm s)をデータO1に入力してフィルタ演算を行う。
【0051】
高域係数及び低域係数のデータの総数が奇数である高域及び低域データストリームを用いて、元データストリームの終端データ(sm s)を生成する場合、図11に示すように、フィルタが参照しなければならないデータI3(高域係数dm f)が存在しない。そのため、5×3逆方向ウェーブレット変換では、終端の元データ(sm s)を生成する場合には、データI1(高域係数dm−1 f)をデータI3に入力してフィルタ演算を行う。
【0052】
(ウェーブレット変換装置)
つぎに、本発明を適用した5×3ウェーブレット変換装置について説明をする。なお、以下、5×3ウェーブレット変換装置を説明するにあたり、元データ、高域係数及び低域係数は、32ビット幅で表された2進数データであり、32ビットのうち、最上位ビットが符号ビット、下位12ビットが小数部、残りの19ビットが整数部とされたデータであるものとする。また、本5×3ウェーブレット変換装置で用いられるデータバスは、図面中に特に指示がないかぎり、32ビット幅である。
【0053】
図12に、ウェーブレット変換装置1の回路図を示す。
【0054】
ウェーブレット変換装置1は、図12に示すように、関数Aモジュール11と、関数Bモジュール12と、関数C0モジュール13と、関数C1モジュール14と、係数生成モジュール15と、第1〜第7のセレクタ21〜27と、第1〜第3のフリップフロップ(F/F)28〜30とを備えている。
【0055】
また、ウェーブレット変換装置1は、入力端子として、I0端子,I1端子,I2端子,I3端子が設けられている。各入力端子I0,I1,I2,I3には、順方向可逆変換時には上述した式(1−1),(1−2)に対応したI0,I1,I2,I3が入力され、逆方向可逆変換時には上述した式(2−1),(2−2)に対応したI0,I1,I2,I3が入力され、順方向非可逆変換時には上述した式(3−1),(3−2)に対応したI0,I1,I2,I3が入力され、逆方向非可逆変換時には上述した式(4−1),(4−2)に対応したI0,I1,I2,I3が入力される。
【0056】
また、ウェーブレット変換装置1は、出力端子として、O0端子,O1端子が設けられている。各出力端子O0,O1からは、順方向可逆変換時には上述した式(1−1),(1−2)に対応したO0,O1が出力され、逆方向可逆変換時には上述した式(2−1),(2−2)に対応したO0,O1が出力され、順方向非可逆変換時には上述した式(3−1),(3−2)に対応したに対応したO0,O1が出力され、逆方向非可逆変換時には上述した式(4−1),(4−2)に対応したに対応したO0,O1が出力される。
【0057】
(関数Aモジュール)
関数Aモジュール11の内部構成について説明をする。図13に関数Aモジュール11の回路図を示す。
【0058】
関数Aモジュール11は、加算器31と、2ビット右シフト回路32と、整数抽出回路33と、小数抽出回路34と、アンド演算回路35と、合成回路36とを備えて構成される。
【0059】
関数Aモジュール11には、Ain0端子、Ain1端子、Coeff_A端子、Coeff_B端子が設けられており、各端子に対して、外部から、Ain0、Ain1、Coeff_A、Coeff_Bの各データが入力される。Ain0、Ain1、Coeff_Aは、32ビット長のデータである。Coeff_Bは、12ビット長のデータである。
【0060】
加算器31は、Ain0とAin1とCoeff_Aとを加算して、32ビットのデータを出力する。すなわち、加算器31は、(Ain0+Ain1+Coeff_A)の演算を行う。Coeff_Aは、係数発生モジュール15から発生される係数値である。Coeff_Aは、可逆変換時には、2(10進数)とされる。すなわち、本例では、下位12ビットが小数値であるので、Coeff_Aは、16進数表現で“0x2000”となる。また、Coeff_Aは、非可逆変換時には0とされる。
【0061】
2ビット右シフト回路32は、加算器31の出力値(32ビット)に対して、2ビットの算術右シフト演算を行う。
【0062】
整数抽出回路33は、2ビット右シフト回路32の出力値(32ビット)のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路33は、2ビット右シフト回路32の出力値のうちの上位20ビットを取り出す。
【0063】
小数抽出回路34は、2ビット右シフト回路32の出力値(32ビット)のうち、小数部を抽出する。すなわち、小数抽出回路33は、2ビット右シフト回路32の出力値のうちの下位12ビットを取り出す。
【0064】
アンド演算回路35は、小数抽出回路34により抽出された12ビットのデータと、Coeff_Bとのアンド論理演算を行う。Coeff_Bは、係数発生モジュール15から発生される係数値である。Coeff_Bは、可逆変換時には0とされ、非可逆変換時には16進数表現で“0xfff”(12ビットのデータ)とされる。すなわち、アンド演算回路35は、可逆変換時には、小数抽出回路33により抽出されたデータを0として出力し、非可逆変換時には、小数抽出回路33により抽出されたデータをそのまま出力する。
【0065】
合成回路36は、整数抽出回路33から出力されたデータと、アンド演算回路35から出力されたデータとを合成する。合成部36は、整数抽出回路33から出力されたデータ(20ビット)を符号ビット及び整数部とし、アンド演算回路35から出力されたデータを小数部とした、32ビットの出力データを生成する。
【0066】
そして、関数Aモジュール11は、上記合成回路36の出力データを、本モジュールの出力データ(Aout)として、Aout端子から外部に出力する。
【0067】
従って、以上の関数Aモジュール11では、可逆変換時には下記式(A−1)の固定小数点演算が行われ、非可逆演算時には下記式(A−2)の固定小数点演算が行われることとなる。
Aout = RoundOff{ (Ain0 + Ain1 + 0x2000) >> 2 }・・・式(A−1)
Aout = 0.25 * (Ain0 + Ain1) ・・・式(A−2)
なお、X>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。また、RoundOff(X)は、数値Xの小数点以下を切り捨てる演算をすることを示す。
【0068】
(関数Bモジュール)
関数Bモジュール12の内部構成について説明をする。図14に関数Bモジュール12の回路図を示す。
【0069】
関数Bモジュール12は、加算器41と、1ビット右シフト回路42と、整数抽出回路43と、小数抽出回路44と、アンド演算回路45と、合成回路46とを備えて構成される。
【0070】
関数Bモジュール12には、Bin0端子、Bin1端子、Coeff_B端子が設けられており、各端子に対して、外部から、Bin0、Bin1、Coeff_Bの各データが入力される。Bin0、Bin1は、32ビット長のデータである。Coeff_Bは、12ビット長のデータである。
【0071】
加算器41は、Bin0とBin1とを加算して、32ビットのデータを出力する。すなわち、加算器41は、(Bin0+Bin1)の演算を行う。
【0072】
1ビット右シフト回路42は、加算器41の出力値(32ビット)に対して、1ビットの算術右シフト演算を行う。
【0073】
整数抽出回路43は、1ビット右シフト回路42の出力値(32ビット)のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路43は、1ビット右シフト回路42の出力値のうちの上位20ビットを取り出す。
【0074】
小数抽出回路44は、1ビット右シフト回路42の出力値(32ビット)のうち、小数部を抽出する。すなわち、小数抽出回路43は、1ビット右シフト回路42の出力値のうちの下位12ビットを取り出す。
【0075】
アンド演算回路45は、小数抽出回路44により抽出された12ビットのデータと、Coeff_Bとのアンド論理演算を行う。Coeff_Bは、係数発生モジュール15から発生される係数値である。Coeff_Bは、可逆変換時には0とされ、非可逆変換時には16進数表現で0xFFF(12ビット)とされる。すなわち、アンド演算回路45は、可逆変換時には、小数抽出回路43により抽出されたデータを0とし、非可逆変換時には、小数抽出回路43により抽出されたデータをそのまま出力する。
【0076】
合成回路46は、整数抽出回路43から出力されたデータと、アンド演算回路45から出力されたデータとを合成する。合成部46は、整数抽出回路43から出力されたデータ(20ビット)を符号ビット及び整数部とし、アンド演算回路45から出力されたデータを小数部とした、32ビットの出力データを生成する。
【0077】
そして、関数Bモジュール12は、上記合成回路46の出力データを、本モジュールの出力データ(Bout)として、Bout端子から外部に出力する。
【0078】
従って、以上の関数Bモジュール12では、可逆変換時には下記式(B−1)の固定小数点演算が行われ、非可逆演算時には下記式(B−2)の固定小数点演算が行われることとなる。
Bout = RoundOff{ (Bin0 + Bin1) >> 1 }・・・式(B−1)
Bout = 0.5 * (Bin0 + Bin1) ・・・式(B−2)
なお、X>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。また、RoundOff(X)は、数値Xの小数点以下を切り捨てる演算をすることを示す。
【0079】
(関数C0モジュール)
関数C0モジュール13の内部構成について説明をする。図15に関数C0モジュール13の回路図を示す。
【0080】
関数C0モジュール13は、加算器51を備えて構成される。関数C0モジュール13には、C0in0端子、C0in1端子が設けられており、各端子に対して、外部から、C0in0及びC0in1の各データが入力される。C0in0、C0in1は、32ビット長のデータである。
【0081】
加算器51は、C0in0とC0in1とを加算して、32ビットのデータを出力する。すなわち、加算器51は、(C0in0+C0in1)の演算を行う。
【0082】
そして、関数C0モジュール13は、上記加算器51の出力データを、本モジュールの出力データ(C0out)として、C0out端子から外部に出力する。
【0083】
従って、以上の関数C0モジュール13では、下記式(C0−1)の固定小数点演算が行われることとなる。
C0out = C0in0 + C1in1 ・・・式(C−1)
【0084】
(関数C1モジュール)
関数C1モジュール14の内部構成について説明をする。図16に関数C1モジュール14の回路図を示す。
【0085】
関数C1モジュール14は、2の補数演算回路52と、加算器53とを備えて構成される。関数C1モジュール14には、C1in0端子、C1in1端子が設けられており、各端子に対して、外部から、C1in0及びC1in1が入力される。C1in0、C1in1は、32ビット長のデータである。
【0086】
2の補数演算回路52は、Clin1の2の補数を算出する。加算器53は、2の補数演算回路52の出力値と、C0in0とを加算して、32ビットのデータを出力する。すなわち、2の補数演算回路52及び加算器53は、(C0in0−C0in1)の演算を行う。
【0087】
そして、関数C1モジュール14は、上記加算器53の出力データを、本モジュールの出力データ(C1out)として、C1out端子から外部に出力する。
【0088】
従って、以上の関数C0モジュール13では、下記式(C1−1)の固定小数点演算が行われることとなる。
C1out = C0in0 − C1in1 ・・・式(C1−1)
【0089】
(係数発生モジュール)
係数発生モジュール15の内部構成について説明をする。図17に係数発生モジュール15の回路図を示す。
【0090】
係数発生モジュール15は、係数Coeff_A及び係数Coeff_Bを発生する。Coeff_Aは32ビットのデータであり、Coeff_Bは12ビットのデータである。Coeff_Bのビット長は、本装置が取り扱うデータ長の小数部のビット長に対応する。Coeff_A及びCoeff_Bの切り換えは、例えば外部のコントローラにより制御される。Coeff_A及びCoeff_Bは、可逆変換時と非可逆変換時とで、その値が以下のように切り換えられる。
【0091】
可逆変換時
Coeff_A=0x2000(16進数、なお、10進数で表すと“2”となる)
Coeff_B=0
非可逆変換時
Coeff_A=0
Coeff_B=0xfff(16進数)
【0092】
(セレクタ)
セレクタついて説明をする。
【0093】
各モジュールは、第1から第7のセレクタ21〜27を介して接続されている。第1から第7のセレクタ21〜27は、2つの入力端子(入力端子‘0’,入力端子‘1’)に対して、1つの出力端子が設けられたセレクタである。すなわち、第1〜第7の各セレクタ21〜27は、2つの入力端子の入力された信号のうち、いずれか一方の信号を選択して出力するものである。
【0094】
第1から第6のセレクタ21〜26は、順変換処理時と、逆変換処理とで、入力端子が切り換えられる。順変換処理時には入力端子‘0’が選択され、逆変換処理時には入力端子‘1’が選択される。また、第7のセレクタ27は、終端対称拡張を行う際に用いられる。具体的には、第7のセレクタ27は、順変換処理時で且つ元データストリームのデータ総数が奇数の場合、並びに、逆変換処理時で且つ元データストリームのデータ総数が偶数の場合、最終データの処理タイミングで入力端子‘1’が選択される。それ以外の場合には、入力端子‘0’が選択される。
【0095】
(フリップフロップ)
第1〜第3のフリップフロップ28,29,30は、入力端子に入力されたデータを、1クロック分遅延させ、遅延させたデータを出力端子から出力する。
【0096】
(各モジュールの接続関係)
つぎに、各モジュールの接続関係について、再度図12を参照して説明をする。
【0097】
I0端子は、第1のフリップフロップ28の入力端子及び第7のセレクタ27の入力端子‘1’に接続されている。第1のフリップフロップ28の出力端子は、第1のセレクタ21の入力端子‘0’及び第3のセレクタ23の入力端子‘1’に接続されている。
【0098】
I1端子は、第1のセレクタ21の入力端子‘1’、第3の入力端子23の入力端子‘0’及び第2のフリップフロップ29の入力端子に接続されている。第2のフリップフロップ29の出力端子は、関数C0モジュール13のC0in0端子に接続されている。
【0099】
I2端子は、関数C1モジュール14のC1in0端子に接続されている。
【0100】
I3端子は、第2のセレクタ22の入力端子‘1’及び第4のセレクタ24の入力端子‘0’に接続されている。
【0101】
第1のセレクタ21の出力端子は、関数Aモジュール11のAin0端子に接続されている。第2のセレクタ22の出力端子は、関数Aモジュール11のAin1端子に接続されている。第3のセレクタ23の出力端子は、関数Bモジュール12のBin0端子に接続されている。第4のセレクタ24の出力端子は、関数Bモジュール12のBin1端子に接続されている。
【0102】
関数Aモジュール11のAout端子は、第5のセレクタ25の入力端子‘0’及び第6のセレクタ26の入力端子‘1’に接続されている。関数Bモジュール12のBout端子は、第5のセレクタ25の入力端子‘1’及び第6のセレクタ26の入力端子‘0’に接続されている。
【0103】
第5のセレクタ25の出力端子は、関数C0モジュール13のC0in1端子に接続されている。第6のセレクタ26の出力端子は、関数C1モジュール14のC1in1端子に接続されている。
【0104】
関数C0モジュール13のC0out端子は、O0端子に接続されている。関数C1モジュール14のC1out端子は、O1端子及び第7のセレクタ27の入力端子‘0’に接続されている。
【0105】
第7のセレクタ27の出力端子は、第3のフリップフロップ30の入力端子に接続されている。第3のフリップフロップ30の出力端子は、第2のセレクタ22の入力端子‘0’及び第4のセレクタ24の入力端子‘1’に接続されている。
【0106】
係数発生モジュール15から発生される係数Coeff_Aは、関数Aモジュール11のCoeff_A端子に入力される。係数発生モジュール15から発生されるCoeff_Bは、関数Aモジュール11のCoeff_B端子及び関数Bモジュール12のCoeff_B端子に入力される。
【0107】
(順変換処理時の動作)
順変換処理時の動作について説明をする。
【0108】
ウェーブレット変換装置1は、順変換処理時には、1回の処理パスごとに、1つの高域係数及び1つの低域係数を生成する5×3順方向フィルタ演算を行う。本ウェーブレット変換装置1には、外部のコントローラにより、元データストリーム及び前パスですでに生成している高域データストリームの各データが選択されて入力される。外部のコントローラは、元データストリームの各データを、先頭データから最終データまで、1パスごとに2データずつステップさせて、ウェーブレット変換装置1に入力していくことによって、高域データストリームと低域データストリームとを生成する。
【0109】
順変換処理時には、第1〜第6のセレクタ21〜26が、外部のコントローラにより入力端子‘0’に切り換えられる。
【0110】
このウェーブレット変換装置1には、順変換処理時には、外部のコントローラにより、I0端子にdn−1 fが入力され、I1端子にSn sが入力され、I2端子にdn sが入力され、I3端子にsn+1 sが入力される。
【0111】
この結果、ウェーブレット変換装置1により、可逆変換時には、下記のような演算結果が得られることとなる。
sn f=sn s+{(dn−1 f+dn f+2)>>2}
dn f=dn s−{(sn s+sn+1 s)>>1}
また、非可逆変換時は、下記のような演算結果が得られることとなる。
sn f=sn s+0.25×(dn−1 f+dn f)
dn f=dn s−0.5×(sn s+sn+1 s)
【0112】
そして、O0端子からは演算結果であるsn fが出力され、O1端子からは演算結果であるdn fが出力される。
【0113】
図18に、順変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図18に示すように、本ウェーブレット変換装置1は、2クロックで1回の処理パスが行われる。1つの処理パス内の1回目のクロックで、関数Bモジュール12及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Aモジュール11及び関数C0モジュール13が動作して演算を行うこととなる。
【0114】
図19に、低域データストリームの先頭の係数(s1 f)を生成する際のタイミングチャートを示す。この図19に示すように、先頭の低域データ(s1 f)は、最初のパスの2クロック目で処理がされる。この際に、外部のコントローラは、1クロック目でO1端子から出力された先頭の高域データ(d1f)を取り出して、I0端子に入力する。このことによって、順変換処理時の先頭対称拡張を行うことができる。
【0115】
図20に、画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数(dm f)を生成する際のタイミングチャートを示す。この図20に示すように、終端の高域係数(dm f)は、最終パスの1クロック目で処理がされる。この際に、外部のコントローラは、I1端子に入力する元データ(sm s)を、I3端子にも入力する。このことによって、元データストリームの画素データの総数が偶数である場合の順変換処理時の終端対称拡張を行うことができる。
【0116】
図21に、画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数(sm f)を生成する際のタイミングチャートを示す。この図21に示すように、終端の低域係数(sm f)は、最終パスの2クロック目で処理がされる(なお、最終パスの1クロック目のデータは生成さない。(O1)はない。)。この際に、外部のコントローラは、第7のセレクタ27を、入力端子‘1’側に切り換え、I0端子に入力する高域係数(dm−1 f)を、出力端子O1から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が奇数である場合の順変換処理時の終端対称拡張を行うことができる。
【0117】
(逆変換処理時の動作)
逆変換処理時の動作について説明をする。
【0118】
本ウェーブレット変換装置1は、1回の処理パスが2クロックで動作する。1つの処理パス内の1回目のクロックで、関数Bモジュール12及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Aモジュール11及び関数C0モジュール13が動作して演算を行うこととなる。
【0119】
ウェーブレット変換装置1は、逆変換処理時には、1回の処理パスごとに、2つの元画像データを生成する5×3逆方向フィルタ演算を行う。本ウェーブレット変換装置1には、外部のコントローラにより、低域データストリーム及び高域データストリーム、並びに、前パスですでに生成している元データストリームの各データが選択されて入力される。外部のコントローラは、低域データストリーム及び高域データストリームの各データを、先頭データから最終データまで、各1データずつステップさせて、ウェーブレット変換装置1に入力していくことによって、元データストリームとを生成する。
【0120】
逆変換処理時には、第1〜第6のセレクタ21〜26は、入力端子‘1’を選択する。
【0121】
このウェーブレット変換装置1には、逆変換処理時には、I0端子にsn sが入力され、I1端子にdn fが入力され、I2端子にsn+1 fが入力され、I3端子にdn+1 fが入力される。
【0122】
この結果、ウェーブレット変換装置1により、可逆変換時には、下記のような演算結果が得られることとなる。
dn s=dn f+{(sn s+sn+1 s)>>1}
sn+1 s=sn+1 f−{(dn f+dn+1 f+2)>>2}
また、非可逆変換時は、下記のような演算結果が得られることとなる。
dn s=dn f+0.5×{(sn s+sn+1 s)
sn+1 s=sn+1 f−0.25×(dn f+dn+1 f)
【0123】
そして、O0端子からは演算結果であるdn sが出力され、O1端子からは演算結果であるsn+1 sが出力される。
【0124】
図22に、逆変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図22に示すように、本ウェーブレット変換装置1は、2クロックで1回の処理パスが行われる。1つの処理パス内の1回目のクロックで、関数Aモジュール11及び関数C1モジュール14が動作して演算を行い、2回目のクロックで、関数Bモジュール12及び関数C0モジュール13が動作して演算を行う。
【0125】
図23に、元データストリームの先頭の係数(s1 s)を生成する際のタイミングチャートを示す。この図23に示すように、先頭の元データ(s1 s)は、最初のパスの1クロック目で処理がされる(なお、最初のパスの2クロック目では、データは生成されない。)。この際に、外部のコントローラは、I3端子に入力する元データ(d1 f)を、I1端子にも入力する。このことによって、逆変換処理時の先頭対称拡張を行うことができる。
【0126】
図24に、画素データの総数が偶数である元データストリームを生成する際の終端の元データ(dm s)を生成する際のタイミングチャートを示す。この図24に示すように、終端の元データ(dm s)は、最終パスの2クロック目で処理がされる(なお、最終パスの1クロック目の出力データ(O1)はない。)。この際に、外部のコントローラは、第7のセレクタ27を、入力端子‘1’側に切り換え、I0端子に入力する元データ(sm s)を、出力端子O1から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が偶数である場合の逆変換処理時の終端対称拡張を行うことができる。
【0127】
図25に、画素データの総数が奇数である元データストリームを生成する際の終端の元データ(sm s)を生成する際のタイミングチャートを示す。この図25に示すように、終端の元データ(sm s)は、最終パスの1クロック目で処理がされる。この際に、外部のコントローラは、I1端子に入力する高域係数(dm−1 f)を、I3端子にも入力する。このことによって、元データストリームの画素データの総数が奇数である場合の逆変換処理時の終端対称拡張を行うことができる。
【0128】
(効果及び変形例)
以上のように本ウェーブレット変換装置1では、フィルタ演算ブロックを、関数Aモジュール11、関数Bモジュール12、関数C0モジュール13、関数C1モジュール14とに分離し、順変換時と逆変換時とでこれらのモジュールの接続関係をセレクタにより切り換えている。このため、ウェーブレット変換装置1では、回路規模が非常に小さくなっている。
【0129】
具体的には、ウェーブレット変換装置1では、以下のように演算ブロックを分割し、これらを順変換時と逆変換時とで組み合わせて、フィルタ演算を行っている。
関数Aモジュール11: (Ain0 + Ain1 + Coeff_A) >> 2
関数Bモジュール12: (Bin0 + Bin1) 2 >> 1
関数C0モジュール13:C0in0 + C0in1
関数C1モジュール14:C1in0 − C1in1
【0130】
また、ウェーブレット変換装置1では、可逆変換時と非可逆変換時とで、係数発生モジュール15から発生される、関数Aモジュール11に与えるCoeff_Aと、関数Aモジュール11及び関数Bモジュール12の出力結果の小数部を削除するか残すかを決定する係数Coeff_Bとを、切り換えている。このため、ウェーブレット変換装置1では、1つの演算モジュールで、可逆演算と非可逆演算を行うことができ、回路規模が非常に小さくなっている。
【0131】
なお、本実施の形態のウェーブレット変換装置1では、低域係数と高域係数との位相順序を、図1に示したように、低域係数→高域係数の順で生成しているが、本発明はこのような位相順序に限らず、図26に示すように、高域係数→低域係数の順でもよい。
【0132】
この場合、ウェーブレット変換装置1に対して入出力される元データストリーム及び低域データストリームのデータ順序、すなわち、各データに付けられた下付けのnの値は、本実施の形態のウェーブレット変換装置1で説明したものに、相対的に1つ加算された順序となる。
【0133】
すなわち、元データの元データストリーム上の位置(順序)をL、高域係数の高域データストリーム上の位置(順序)をM、低域係数の低域データストリーム上の位置(順序)をNとしたとする(L,M,Nは整数)。
【0134】
この場合、本実施の形態のウェーブレット変換装置1では、L,M,Nと、下付けのnの関係は次のようになる。
2n=L=2M=2N
これに対して、高域係数→低域係数の順でフィルタ演算を行う場合には、L,M,Nと、下付けのnの関係は、次のようになる。
2n=(L+1)=2M=2(N+1)
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため先頭対称拡張を行う際には、存在しない高域係数の1つ後の高域係数を用いて先頭対称拡張をすればよい。同様に、元データが存在しないため先頭対称拡張を行う際には、存在しない元データの2つあとの元データを用いて先頭対称拡張を行えばよい。
【0135】
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため終端対称拡張を行う際には、存在しない高域係数の1つ前の高域係数を用いて終端対称拡張をすればよい。同様に、元データが存在しないため終端対称拡張を行う際には、存在しない元データの2つ前の元データを用いて終端対称拡張を行えばよい。
【0136】
【発明の効果】
本発明にかかる5×3ウェーブレット変換装置では、順変換時と逆変換時とで、演算手段の接続関係を切り換えている。このため、本発明にかかる5×3ウェーブレット変換装置では、回路規模を小さくすることができる。
【0137】
また、本発明にかかる5×3ウェーブレット変換装置では、可逆変換時と非可逆変換時とで、第1の演算手段に与えるCoeff_Aと、第1の演算手段及び第2の演算手段の出力結果の小数部を削除するか残すかを、切り換えている。このため、本発明にかかる5×3ウェーブレット変換装置では、1つの演算手段で、可逆演算と非可逆演算を行うことができ、回路規模を小さくすることができる。
【図面の簡単な説明】
【図1】ウェーブレット変換について説明するための図である。
【図2】順方向可逆ウェーブレット変換について説明をする図である。
【図3】逆方向可逆ウェーブレット変換について説明をする図である。
【図4】順方向非可逆ウェーブレット変換について説明をする図である。
【図5】逆方向非可逆ウェーブレット変換について説明をする図である。
【図6】順変換処理時の先頭対称拡張について説明をする図である。
【図7】元データの総数が偶数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図8】元データの総数が奇数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図9】逆変換処理時の先頭対称拡張について説明をする図である。
【図10】元データの総数が偶数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図11】元データの総数が奇数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図12】ウェーブレット変換装置の回路図である。
【図13】関数Aモジュールの回路図である。
【図14】関数Bモジュールの回路図である。
【図15】関数C0モジュールの回路図である。
【図16】関数C1モジュールの回路図である。
【図17】係数発生モジュールの回路図である。
【図18】順変換処理時の通常の入出力データのタイミングチャートを示す。
【図19】順変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図20】元データの総数が偶数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図21】元データの総数が奇数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図22】逆変換処理時の通常の入出力データのタイミングチャートを示す。
【図23】逆変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図24】元データの総数が偶数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図25】元データの総数が奇数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図26】高域係数→低域係数の位相順序でフィルタリングを行った場合のウェーブレット変換について説明するための図である。
【符号の説明】
1 ウェーブレット変換装置、11 関数Aモジュール、12 関数Bモジュール、13 関数C0モジュール、14 関数C1モジュール、15 係数発生モジュール
Claims (27)
- 複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う5×3ウェーブレット変換装置において、
データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleの小数部分を0としてデータAoutを生成し、このデータAoutを出力する第1の演算手段と、
データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleの小数部を0としてデータBoutを生成し、このデータBoutを出力する第2の演算手段と、
データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、
データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、
上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、
上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、
高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力し、
逆変換処理時には、
先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、
上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、
元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力すること
を特徴とする5×3ウェーブレット変換装置。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
Coeff_Aは、2(10進数)である。
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。 - 上記第1の演算手段には、
順変換処理時に、高域データストリームの(M−1)番目のデータが存在しない場合には、データAin0として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M)番目のデータが存在しない場合には、データAin0として高域データストリームの(M+1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
順変換処理時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データAin1として高域データストリームの(M−1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L+1)番目のデータが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M+1)番目のデータが存在しない場合には、データAin1として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項1記載の5×3ウェーブレット変換装置。 - 複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う5×3ウェーブレット変換装置において、
データAin0,データAin1が入力され、下記式1に示す演算を行ってデータAmiddleを求め、このデータAmiddleをデータAoutとして出力する第1の演算手段と、
データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、このデータBmiddleをデータBoutとして出力する第2の演算手段と、
データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、
データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、
上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、
上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、
高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力し、
逆変換処理時には、
先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、
上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、
元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力すること
を特徴とする5×3ウェーブレット変換装置。
Amiddle = 0.25*(Ain0 + Ain1) ・・・(式1)
Bmiddle = 0.5*(Bin0 + Bin1) ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。 - 上記第1の演算手段には、
順変換処理時に、高域データストリームの(M−1)番目のデータが存在しない場合には、データAin0として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M)番目のデータが存在しない場合には、データAin0として高域データストリームの(M+1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
順変換処理時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データAin1として高域データストリームの(M−1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L+1)番目のデータが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M+1)番目のデータが存在しない場合には、データAin1として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項10記載の5×3ウェーブレット変換装置。 - 複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う5×3ウェーブレット変換装置において、
データAin0,データAin1が入力され、可逆変換時には下記式1に示す演算を行ってデータAmiddleを求め、非可逆変換時には下記式1´に示す演算を行ってデータAmiddleを求め、可逆変換時にはこのデータAmiddleの小数部分を0としたデータAoutを出力し、非可逆変換時にはこのデータAmiddleをそのままデータAoutとして出力する第1の演算手段と、
データBin0及びデータBin1が入力され、下記式2に示す演算を行ってデータBmiddleを求め、可逆変換時にはこのデータBmiddleの小数部分を0としたデータBoutを出力し、非可逆変換時にはこのデータBmiddleをそのままデータBoutとして出力する第2の演算手段と、
データC0in0及びデータC0in1が入力され、下記式3に示す演算を行ってデータC0outを求め、このデータC0outを出力する第3の演算手段と、
データC1in0及びデータC1in1が入力され、下記式4に示す演算を行ってデータC1outを求め、このデータC1outを出力する第4の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、2ステップごとに上記元データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M−1)番目のデータ入力され、データAin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として元データストリームの(L+1)番目のデータが入力され、
上記第3の演算手段には、データC0in0として元データストリームの(L−1)番目のデータが入力され、データC0in1として上記第1の演算手段から出力されたデータAoutが入力され、
上記第4の演算手段には、データC1in0として元データストリームの(L)番目のデータが入力され、データC1in1として上記第2の演算手段から出力されるデータBoutが入力され、
高域データストリームのM番目のデータとして上記第4の演算手段から出力されるデータC1outを出力し、低域データストリームのN番目のデータとして上記第3の演算手段から出力されるデータC0outを出力し、
逆変換処理時には、
先頭データから最終データまで、1ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第1の演算手段には、データAin0として高域データストリームの(M)番目のデータ入力され、データAin1として高域データストリームの(M+1)番目のデータが入力され、
上記第2の演算手段には、データBin0として元データストリームの(L−1)番目のデータが入力され、データBin1として上記第4の演算手段から出力されたデータC1outが入力され、
上記第3の演算手段には、データC0in0として高域データストリームの(M)番目のデータが入力され、データC0in1として上記第2の演算手段から出力されたデータBoutが入力され、
上記第4の演算手段には、データC1in0として低域データストリームの(N+1)番目のデータが入力され、データC1in1として上記第1の演算手段から出力されるデータAoutが入力され、
元データストリームのL番目のデータとして上記第3の演算手段から出力されるデータC1outを出力し、元データストリームの(L+1)番目のデータとして上記第4の演算手段から出力されるデータC1outを出力すること
を特徴とする5×3ウェーブレット変換装置。
Amiddle = (Ain0 + Ain1 + Coeff_A)2 >> 2 ・・・(式1)
Amiddle = (Ain0 + Ain1 )2 >> 2 ・・・(式1´)
Bmiddle = (Bin0 + Bin1) 2 >> 1 ・・・(式2)
C0out = (C0in0 + C0in1) ・・・(式3)
C1out = (C1in0 − C1in1) ・・・(式4)
上記(式1), (式1´),(式2),(式3),(式4)において、XY は、数値XがY進数で表されたデータであることを示し、X2>>Yは、2進数の数値であるXをYビット分算術右シフト演算することを示す。
係数Coeff_Aは、2(10進数)である。
上記L,M,Nは、{L=2M=2N}又は{(L+1)=2M=2(N+1)}の関係を有する整数である。 - 上記第1の演算手段には、
順変換処理時に、高域データストリームの(M−1)番目のデータが存在しない場合には、データAin0として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M)番目のデータが存在しない場合には、データAin0として高域データストリームの(M+1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、元データストリームの(L−1)番目のデータが存在しない場合には、データBin0として元データストリームの(L+1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
順変換処理時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データAin1として高域データストリームの(M−1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
順変換処理時に、元データストリームの(L+1)番目のデータが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第1の演算手段には、
逆変換処理時に、高域データストリームの(M+1)番目のデータが存在しない場合には、データAin1として高域データストリームの(M)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。 - 上記第2の演算手段には、
逆方向変換時に、第4の演算手段から出力されたデータC1outが存在しない場合には、データBin1として元データストリームの(L−1)番目のデータが入力されること
を特徴とする請求項19記載の5×3ウェーブレット変換装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002052040A JP3608554B2 (ja) | 2002-02-27 | 2002-02-27 | 5×3ウェーブレット変換装置 |
US10/374,633 US7233566B2 (en) | 2002-02-27 | 2003-02-26 | Five-by-three wavelet transform apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002052040A JP3608554B2 (ja) | 2002-02-27 | 2002-02-27 | 5×3ウェーブレット変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003258646A JP2003258646A (ja) | 2003-09-12 |
JP3608554B2 true JP3608554B2 (ja) | 2005-01-12 |
Family
ID=27750876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002052040A Expired - Fee Related JP3608554B2 (ja) | 2002-02-27 | 2002-02-27 | 5×3ウェーブレット変換装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7233566B2 (ja) |
JP (1) | JP3608554B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003283839A (ja) | 2002-03-19 | 2003-10-03 | Sanyo Electric Co Ltd | 画像変換方法および装置 |
US20100166053A1 (en) * | 2007-01-31 | 2010-07-01 | Sony Corporation | Information processing device and method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6873734B1 (en) * | 1994-09-21 | 2005-03-29 | Ricoh Company Ltd | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
JP2002010216A (ja) * | 2000-04-20 | 2002-01-11 | Canon Inc | 復号化装置及びその制御方法並びに記憶媒体 |
-
2002
- 2002-02-27 JP JP2002052040A patent/JP3608554B2/ja not_active Expired - Fee Related
-
2003
- 2003-02-26 US US10/374,633 patent/US7233566B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030161259A1 (en) | 2003-08-28 |
JP2003258646A (ja) | 2003-09-12 |
US7233566B2 (en) | 2007-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100975062B1 (ko) | 가변길이 부호화 장치 및 가변길이 부호화 방법 | |
US5247652A (en) | Parallel to serial converter enabling operation at a high bit rate with slow components by latching sets of pulses following sequential delays equal to clock period | |
US6603812B1 (en) | Hardware implementation of a decimating finite impulse response filter | |
JP3796432B2 (ja) | フィルタ処理装置およびフィルタ処理方法 | |
EP1158807B1 (en) | Data stream conversion apparatus and method, variable length coded data stream generation apparatus and method, and camera system | |
JP3608554B2 (ja) | 5×3ウェーブレット変換装置 | |
JP3230933B2 (ja) | データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ | |
JP2004120439A (ja) | 画像処理装置及び画像処理方法 | |
Ramesh Kumar et al. | Two-symbol FPGA architecture for fast arithmetic encoding in JPEG 2000 | |
KR100297530B1 (ko) | 레이트컨버터 | |
JP3123060B2 (ja) | ディジタル演算回路 | |
JP3677788B2 (ja) | 信号処理装置および処理方法 | |
EP2622740A2 (en) | Rf divider using direct digital synthesis | |
JP4408727B2 (ja) | ディジタル回路 | |
US6072911A (en) | Linear image filter and the corresponding filtering method | |
JP3434565B2 (ja) | レート変換装置 | |
JP2003283841A (ja) | フィルタ処理装置およびフィルタ処理方法 | |
KR100314679B1 (ko) | 파이프라인구조를가지는저전력유한임펄스응답필터 | |
JPS62264785A (ja) | 並列処理回路 | |
KR100246188B1 (ko) | 멀티스테이지 콤 필터 | |
JP3120435B2 (ja) | ディジタル演算回路 | |
JPH05299973A (ja) | デシメーションフィルタ | |
JPS63311865A (ja) | 走査線密度変換方法 | |
JPH05268095A (ja) | ディジタル加入者線伝送インターフェイス装置用オーバーサンプリング形a/d変換器 | |
JPH06177708A (ja) | ディジタルフィルタ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040916 |
|
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: 20040921 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041004 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |