JP3655088B2 - Wavelet transform device and encoding / decoding device - Google Patents
Wavelet transform device and encoding / decoding device Download PDFInfo
- Publication number
- JP3655088B2 JP3655088B2 JP10437798A JP10437798A JP3655088B2 JP 3655088 B2 JP3655088 B2 JP 3655088B2 JP 10437798 A JP10437798 A JP 10437798A JP 10437798 A JP10437798 A JP 10437798A JP 3655088 B2 JP3655088 B2 JP 3655088B2
- Authority
- JP
- Japan
- Prior art keywords
- wavelet transform
- processing
- level
- memory
- memories
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、データ圧縮及び伸長の分野に係り、特に、ウェーブレット変換を利用する符号化/復号化装置及びウェーブレット変換装置に関する。
【0002】
【従来の技術】
データ圧縮は、大量のデータの蓄積や伝送のために非常に有用なツールである。例えば、文書のファクシミリ伝送や、ワールドワイドウェブのような画像の伝送に要する時間は、圧縮を使って画像の再生に必要とされるビット数を減らすと、飛躍的に短縮される。
【0003】
従来より、多様なデータ圧縮手法が存在している。最も広く普及している圧縮方式としてJPEG(Joint Photographics Experts Group)の圧縮方式がある。JPEGの圧縮方式においては、入力シンボルまたは輝度データは量子化されてから出力符号語へ変換される。量子化は、データの重要な特徴量を保存しつつ、重要でない特徴量を除去することを目的としている。量子化に先立ち、エネルギー集中をするために変換が用いられるが、JPEGではDCT(DiscreteCosine Transform)が採用されている。ところが、DCTを用いるJPEG方式に対し様々な欠点が指摘されている。例えば、ブロックノイズやモスキートノイズ(蚊が飛んでいるように見えるところから、このように呼ばれる)である。画像信号処理においては、これらの欠点を解消する効率的かつ高精度のデータ圧縮符号化方式を追求することに関心が集まっている。その方式の中に、ウェーブレット(wavelet)ピラミッド処理方式がある。
【0004】
画像信号のような2次元信号にウェーブレット変換を適用する場合には、入力信号に対し水平方向低域通過型フィルタHL(Holizontal Low)及び水平方向高域通過型フィルタHH(Holizontal High)を使用して、水平方向低域信号(S(smooth)係数)及び水平方向高域信号(D(detail)係数)に分離し、さらにS係数及びD係数に対して垂直方向低域通過型フィルタVL(Vertical Low)及び垂直方向高域通過型フィルタVH(Vertical High)を使用して水平方向低域−垂直方向低域信号(SS係数)、水平方向低域−垂直方向高域信号(SD係数)、水平方向高域−垂直方向低域信号(DS係数)、及び水平方向高域−垂直方向高域信号(DD係数)に分離する。以上の一連の処理をレベルと呼び、1回の水平処理と垂直処理を行った出力をレベル1の出力と呼ぶ。さらに、以上の4種類の信号を周波数帯信号と呼ぶ。レベル2以上の出力を希望するときは、この処理がSS係数に対して再帰的に行われる。レベル2の出力では、SS係数と、1SD係数及び2SD係数、1DS係数及び2DS係数、1DD係数及び2DD係数、の7つの周波数帯信号が得られる。以上の説明では、まず水平方向にフィルタを適用し、次に垂直方向にフィルタを適用したが、その順序は逆でもよい。
【0005】
図28にレベル4までの処理を行う場合の従来の構成を示した。図中、1000はウェーブレット変換部、1100は符号化部である。符号化部1100は、ウェーブレット変換部1000の出力データを符号化して圧縮コードを出力し、あるいは、外部から入力する同様に圧縮されたコードを復号化して各レベルの周波数帯信号に伸長する機能を持つ。
【0006】
図28において、1001〜1012はそれぞれフィルタであり、その中のフィルタ1001,1004,1007,1010(以下、これらをfilter1H,filter2H,filter3H,filter4Hと表記する)は、水平方向低域通過型フィルタHL及び水平方向高域通過型フィルタHHを含む水平方向フィルタである。これらのフィルタ名中の数字1〜4はレベル番号を表し、Hは水平方向フィルタであることを意味する。同様に、フィルタ1002(filter1V1)と同1003(filter1V2),同1005(filter2V1)と同1006(filter2V2),同1008(filter3V1)と同1009(filter3V2),同1011
(filter4V1)と同1012(filter4V2)は、垂直方向低域通過型フィルタVL及び垂直方向高域通過型フィルタVHを含む垂直方向フィルタである。これらのフィルタ名中のVは垂直方向フィルタであることを意味し、Vの前の数字1〜4はレベル番号を表し、Vの後の数字1は水平方向低域信号(S係数)を入力とするフィルタであることを示し、Vの後の数字2は水平方向高域信号(D係数)を入力とするフィルタであることを示す。以上のフィルタはどのような構成のものでもよいが、以下の説明では、水平方向低域通過型フィルタHL及び垂直方向低域通過型フィルタVLとして、2組のデータを用いて演算を行う2タップのフィルタを使用するものとする。また、水平方向高域通過型フィルタHH及び垂直方向高域通過型フィルタVHとして、低域通過形フィルタHLまたはVLの出力であるS係数のうち、現在の位置と、1つ前及び1つ後の合計3組のデータを用いて演算を行う6タップのフィルタを使用するものとする。
【0007】
このようなフィルタを用いた場合の演算の例を図30に示す。但し、この図におけるデータのマッピングは演算の方法を説明するためのものであり、実際のメモリへのマッピングは例えば図32から図35に示すようになることに注意されたい。図30の(a)は水平方向フィルタの処理を説明するもので、[00]は0ライン目の0画素目のデータを意味し、[12]は1ライン目の2画素目のデータを意味する(このようにライン、画素とも0番目から数えるものとする)。水平方向低域通過型フィルタHLの0画素目の出力[S00]は、[00]データ及び[01]データから求められ、また、1画素目の出力[S01]は[02]データ及び[03]データから求められる。これに対し、水平方向高域通過型フィルタHHの0画素目の出力[D00]は、[00]データの2つ前及び1つ前のデータ(実在しない)と、[00]データと、[01]データと、[02]データと、[03]データとから求められる。ここで、実在しない[00]データの2つ前と1つ前のデータを得るため、ミラーと呼ばれる処理を施す。具体的には、データを鏡像関係で折り返す処理を行う。これにより、2つ前と1つ前のデータは[01]データと[00]データとなる。このようにして、[D00]は6画素のデータから計算される。
【0008】
図30の(b)は垂直方向フィルタの処理を説明している。この処理は、垂直方向フィルタ処理によるS係数及びD係数を用いて垂直方向に行われる。実在しない係数は、水平方向フィルタの処理の場合と同様にミラー処理が施される。
【0009】
図31乃至図35に、ウェーブレット処理の結果の格納方法を例示する。図31はフレームメモリにラスタ順に格納されたイメージデータを示す。フレームメモリからデータを読み出して水平処理を行い、その結果を再びフレームメモリに書き込む。この書き込みの際に、未処理のデータに上書きしてしまわないように、例えば図32に示すようなマッピングでS係数及びD係数を書き込んでいく。図32において、[1S00]はレベル1のアドレス00のS係数を意味する。図33は垂直処理を行った後の各係数を書き込む際のマッピングの例を示す。ここまでがレベル1の各係数の格納方法である。図34はレベル2の水平方向の各係数の格納方法の例を示す。レベル2の処理は1SS係数に対してのみ行われるため、網掛けされた部分のデータは用いられないことに注意されたい。ついで、図35に示すようなマッピングで、レベル2の各係数が格納され、レベル2の処理が終了する。以上の処理がレベル4まで繰り返される。
【0010】
図29は、図28に示す構成のウェーブレット変換部1000のタイミングチャートである。ただし、このタイミングチャートは処理手順の説明のために用いるものであり、メモリアクセス等に必要な時間は考慮されておらず、横軸(時間軸)のスケールはリニアでないことに注意されたい。また、以下の説明では、画素数もしくはライン数を0画素目もしくは0ライン目、というように0から数える。dataより入力されるイメージデータ(ラスタデータ)は32画素×32ライン(0から31)であり、1つのデータの区切り(×=×)が1ラインに相当するものとする。
【0011】
時刻t0から、0ライン目のデータが0画素目から順次入力され、1画素目が入力されるとfilter1Hより0画素目の[1S00]データが出力される。ついで[1S01]データが出力されると、D係数の計算に必要となる3組のS係数([1S00],[1S00],[1S01])が揃い(1つ前のデータはミラー処理により得られた)、D係数[1D00]が出力される。これが1ライン分、繰り返される。なお、タイミングチャート上では1ラインの時間単位で示されているが、拡大すれば画素単位でのずれが生じていることに注意されたい。
【0012】
時刻t1から1ライン目のデータの入力が始まり、filter1Hより[1S10]、[1D10]、とS係数及びD係数が順次出力される。2Hの処理(レベル2の水平方向処理)が始まる。[1S10]が出力された時点で1Vの処理(レベル1の垂直方向処理)が始まり、filter1V1より[1SS00]が、filter1V2より[1DS00]が出力される。[1S11]が出力された時点でfilter1V1及びfilter1V2においてD係数の計算に必要な3組のデータが揃う。すなわち、filter1V1においては[1S10],[1S10],[1S11]、filter1V2においては[1D10],[1D10],[1D11]が揃い(1つ前のデータはミラー処理により得られる)、レベル1の出力データ[1SS00],[1SD00],[1DS00],[1DD00]が得られる。これが1ライン分、繰り返される。
【0013】
時刻t2で、2Vの処理(レベル2の垂直方向処理)のための1ライン目の入力が始まり、2Vの処理が始まる。以下、同様のタイミング関係で時刻t9まで処理が繰り返され、レベル4までの各周波数帯信号が出力される。
【0014】
以上のようにして得られた各レベルの周波数帯信号が符号化部1100で符号化されて圧縮されるのであるが、符号化は通常、ビット処理が行われるため、周波数帯信号を一旦ストレージに書き込んでおく必要がある。一般に用いられるストレージは半導体メモリである。符号化部1100ではストレージに書き込まれた各周波数帯信号を参照してビット処理を行って符号化し、生成したコードを
codeとして出力する。圧縮されたコードからイメージデータへの復元は、以上に述べた動作の逆順で行われる。
【0015】
なお、本発明に関連する符号化/復号化装置、ウェーブレット変換部、あるいはフィルタについてのより詳細な情報は、特開平8−116265号公報、特開平8−139935号公報、特開平9−27752号公報、特開平9−27912号公報などを参照されたい。また、類似の従来技術については、特開平3−27687号公報、特開平5−167997号公報、特開平5−183386号を参照されたい。
【0016】
次に、ウェーブレット変換のための処理時間について説明するが、ここではウェーブレット変換部1000により生成される各周波数帯信号のストレージとして、一度に読み出し又は書き込みの一方しかできない一般的な半導体メモリ等を用いる場合として説明する。
【0017】
図29のタイミングチャートを用いて説明したように、各周波数帯信号は同時刻にパラレルに出力されるため、メモリへの書き込みもパラレルに行われなければならないが、通常用いられるメモリでは1時刻に読み出しまたは書き込みをすることができるのは1データだけである。図29の左下のrangeは、時刻t0からt9に対応する、1H,1V,...,4Vの各処理が占める処理時間の範囲を←→で示したものである。rangeの下のr/w cyclesは、rangeの各範囲(←→)に必要なメモリアクセス回数で、その範囲内での書き込み回数と読み出し回数の合計であるが、異なるレベルが同時に処理されている範囲での回数は、それら各レベルに関する回数の合計で示されている。図29の右側に示した数値は、各レベルの水平処理もしくは垂直処理に要するメモリアクセスの回数(書き込みと読み出しの合計数)である。メモリアクセスの回数についてであるが、各レベルにおいて、水平処理、垂直処理のいずれも必ず全データが1回読み出され、全データがフィルタ出力データで書き換えられるから、全画素数の2倍の書き込み/書き込み回数が必要となる。
【0018】
【発明が解決しようとする課題】
前述のように、符号化は各レベルの各周波数帯信号を用いて行われるのであるが、符号化は通常ビット処理が行われるため、ウェーブレット変換後の出力データを一旦ストレージに貯える必要があり、データを単に入力するのに要する時間に比べて数倍の処理時間がかかるという問題があった。前述したところから明らかなように、例えば入力されるイメージデータのサイズを32画素×32ライン、レベル数を4とした場合、イメージデータの入力に必要なサイクル数が1024=32×32であるのに対し、必要な処理時間は5倍以上の5440サイクルとなる。入力データのサイズが増加すれば、処理時間はさらに大幅に増大することは明かである。例えば、64画素×64ラインの場合は、図29に点線で示すように、1Hの処理が時刻t10まで行われる結果、パラレルに出力される区間が増加するため、処理時間は大幅に増大する。レベル数が増えた場合も同様に処理時間が大幅に増大する。
【0019】
また、各レベルの各周波数帯信号が同じ時刻に出力されるので、パイプライン処理が必要であった。すなわち、すべてのフィルタのデータ入力タイミングが異なっているため、各フィルタに、それが使用される場所に応じたコントローラを内蔵させ個別的に設計する必要があった。また、これらのコントローラはただ一つの条件の画素数とレベルの組合せにしか対応させることができず、画素数またはレベルの一方又は両方が変更された場合に対応が困難であるという問題があった。さらに、通常はエンコード処理(イメージデータを各周波数帯信号に変換する処理、ウェーブレット順変換)とデコード処理(各周波数帯信号をイメージデータに変換する処理、ウェーブレット逆変換)のシーケンスが異なるが、この相違を考慮して全体のパイプライン動作に破綻を来さないように、注意深い設計が必要があった。
【0020】
本発明の目的は、ウェーブレット変換装置及びウェーブレット変換を利用する符号化/復号化装置における前述の諸問題点を改善することにあり、より具体的に列挙すれば、より高速の動作を可能にする、パイプライン処理を不要にする、設計もしくは設計変更を容易にする、回路規模の増大を回避する等々である。
【0021】
【課題を解決するための手段】
前記目的を達成するため、請求項1の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに1対1に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送の制御並びに前記複数のメモリの動作の制御を行う制御部とを具備する構成とされる。請求項2の発明によれば、各レベルに1対1に対応付けられた複数のメモリはそれぞれ、読み出しアドレスと書き込みアドレスが独立し、読み出しと書き込みが同時に可能なタイプのメモリとされる。
【0022】
前記目的を達成するため、請求項3の発明は、請求項1又は2記載のウェーブレット変換装置において、前記制御部を少なくとも、前記複数のメモリに対しアドレス及びイネーブル信号の制御信号を選択的に供給する部分、装置の内部のデータ転送及び装置の外部とのデータ転送を制御する部分、及びそれら2つの部分の制御及び装置外部との制御情報の授受を行う部分とに分割することを特徴とする。請求項4の発明によれば、制御部を構成する少なくとも3つの部分はそれぞれエンコード時専用の部分とデコード時専用の部分とに分割される。
【0023】
前記目的を達成するため、請求項5の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに1対1に対応付けられた、互いに独立した複数のメモリと、前記複数のメモリ中の最大のメモリと同じワード数を少なくとも有するウェーブレット変換の全レベルに共通のバッファメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記バッファメモリの動作を制御する制御部とを具備する構成とされる。請求項6の発明によれば、請求項5記載のフィルタ部は独立した2つのフィルタ部から構成され、この2つのフィルタ部の一方を水平処理に割り当て、他方を垂直処理に割り当てる。
【0024】
前記目的を達成するため、請求項7の発明によるウェーブレット変換装置は、ウェーブレット変換の各レベルに1対1に対応付けられた、互いに独立した複数のメモリと、ウェーブレット変換の全レベルに共通のラインメモリと、ウェーブレット変換の全レベルに共通のフィルタ部と、装置の内部のデータ転送及び装置の外部とのデータ転送並びに前記複数のメモリ及び前記ラインメモリの動作を制御する制御部とを具備する構成とされる。請求項8の発明によれば、請求項7記載のフィルタ部として水平処理用フィルタ部と垂直処理用フィルタ部を具備せしめる。
【0025】
前記目的を達成するため、請求項9の発明は、請求項1又は2記載のウェーブレット変換装置において、前記複数のメモリをそれぞれウェーブレット変換係数の種類数と等しい個数の独立したメモリとし、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した2つのフィルタ部を具備することを特徴とする。
【0026】
前記目的を達成するため、請求項10の発明は、請求項5記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリをそれぞれウェーブレット変換係数の種類数と等しい個数の独立したメモリとし、前記フィルタ部として水平処理及び垂直処理の両方に利用される独立した2つのフィルタ部を具備することを特徴とする。
【0027】
前記目的を達成するため、請求項11の発明は、請求項1又は2記載のウェーブレット変換装置において、前記複数のメモリをそれぞれウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを少なくとも持つメモリとすることを特徴とする。
【0028】
前記目的を達成するため、請求項12の発明は、請求項5記載のウェーブレット変換装置において、前記複数のメモリの各メモリ及び前記バッファメモリをそれぞれウェーブレット変換係数の全種類のビット深さの総和に等しいビット深さを持つメモリとすることを特徴とする。
【0032】
また、前記目的を達成するため、請求項13の発明による符号化/復号化装置は、請求項1乃至12のいずれか1項記載のウェーブレット変換装置と、該ウェーブレット変換装置と接続し、該ウェーブレット変換装置の出力データを符号化し、又は外部から入力される符号化データを復号化して該ウェーブレット変換装置に入力する符号化部を具備する構成とされる。
【0033】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。なお、説明の煩雑化を避けるため、複数の図面において、対応する部分には同一又は類似の参照符号が用いられる。また、複数の実施例で同一又は同様の構成については、関連した図面から適宜省略しまたは簡略化し、あるいは他の実施例の図面を援用する。
【0034】
<第1実施例>
図1は本発明の第1実施例による符号化/復号化装置のブロック図である。この符号化/復号化装置は、ウェーブレット変換部100と符号化部200からなる。ウェーブレット変換部100は、レベル4まで処理可能である。もちろん、レベル数はいくつに設定してもよく、レベル数が増えるほど本発明はその効果を発揮する。さらに、入力データ数(画素数)が増えるほど本発明はその効果を発揮する。
【0035】
ウェーブレット変換部100は、レベル1,2,3,4の周波数帯信号データをそれぞれ格納するためのメモリ102_1〜102_4(以下、mem1,mem2,mem3,mem4と表記)と、制御信号選択部(s_mux)111、データ選択部(d_mux)114、及びそれらを制御する主制御部(main)118からなる制御部(cnotroller)110と、低域通過型フィルタ及び高域通過型フィルタを含むフィルタ部(filter)130とから構成される。
【0036】
ウェーブレット変換部100は、外部とのイメージデータの入出力dataと符号化部200との間の周波数帯信号データの入出力を持つ。エンコード時には、ウェーブレット変換部100に一度に処理できる最大数(画素数)以下のイメージデータが外部から入出力dataより入力される。このデータの最大数はmem1のワード数W1と等しい。mem2のワード数W2は、W2=W1×(1/4)に設定する。mem3のワード数W3はW3=W2×(1/4)に設定し、mem4のワード数W4はW4=W3×(1/4)に設定する。したがって、メモリmem1〜mem4の総ワード数は、入力データ総数に対して
1+(1/4)+(1/4)^2+(1/4)^3 =1+21/64
となり、約33%の増加となる。
【0037】
制御部110の主制御部118は、外部との制御信号の授受及び制御信号選択部111及びデータ選択部114の制御を行う部分であり、制御信号選択部111はメモリmem1〜mem4のアクセス制御を行う部分である。データ選択部114は、ウェーブレット変換部100の内部のデータ転送の制御及び外部とのイメージデータの転送の制御及び符号化部200との間の周波数帯信号データの転送の制御を行う部分である。主制御部118は、ウェーブレット変換を開始させるための外部入力start、エンコード(ウェーブレット順変換)又はデコード(ウェーブレット逆変換)の動作を選択するための外部入力dir、ウェーブレット変換の終了を外部に通知するための出力end、制御信号選択部111に対する制御信号の出力cnt1、データ選択部114に対する制御信号の出力cnt2を有する。制御信号選択部111の出力mem_cnt1〜mem_cnt4はメモリに対する制御信号で、アドレス及び一連のイネーブル信号等を含む。データ選択部114はメモリに対する出力mem_out1〜mem_out4と、メモリからの入力mem_in1〜mem_in4を持ち、さらにフィルタ部130に対する出力fil_outと、フィルタ部130からの入力fil_inを有する。
【0038】
以下、本実施例の動作について、図2及び図3に示したメモリマップと、図4及び図5に示したタイミングチャートを参照して説明する。
【0039】
まず、エンコード動作について説明する。制御部110の主制御部118にstart信号が入力され、それから数画素時間程度遅れてdataよりイメージデータが入力されるものとする。図4は、このエンコード時のタイミングチャートである。エンコード動作であることはdir信号により通知される。
【0040】
図4の時刻t0でstart信号が入力されると、主制御部118内のレジスタ等がリセットされ、レベル1のエンコード処理であること、かつ水平処理であることがcnt1及びcnt2を通して制御信号選択部111及びデータ選択部114にそれぞれ通知される。これらの信号を受けて、まず入力されたイメージデータがデータ選択部114によりfil_outを通してフィルタ部130に入力され、フィルタ部130より水平方向の低域通過型フィルタからのS係数及び高域通過型フィルタからのD係数がfil_inを通してデータ選択部114に出力される。データ選択部114に入力されたデータは、mem_out1を通してメモリmem1に書き込まれる。この時、メモリmem1に対し、書き込みアドレス及び各種イネーブル信号が制御信号選択部111よりmem_cnt1を通して与えられる。これらの制御のタイミングは主制御部118によりスケジューリングされる。これらの動作が時刻t1までラスタ順に行われ、水平方向の処理が終了する。
【0041】
32画素×32ラインのイメージデータを入力した場合、レベル1の水平処理(1H)に必要なリード/ライトサイクルの総数は1024サイクルとなる。S,D係数データは、例えば図2に示すように、メモリmem1の左半分にSデータが、右半分にDデータがそれぞれ書き込まれる。
【0042】
ついで、主制御部118より、垂直処理であることがcnt1及びcnt2を通して制御信号選択部111及びデータ選択部114にそれぞれ通知される。これらの信号を受けて、制御信号選択部111からメモリmem1に対し、読み出しアドレス及び各種イネーブル信号がmem_cnt1を通して出力される。ただし、この際に行われるアドレッシングは、ラスタ方向(水平方向)ではなく、ライン方向(垂直方向)であることに注意されたい。まず、1Hの処理により得られたS係数がメモリmem1からmem_in1に出力され、これがデータ選択部114によりfil_outを通してフィルタ部130に入力される。そして、フィルタ部130より、垂直方向の低域通過型フィルタからのSS係数及び高域通過型フィルタからのSD係数がfil_inを通してデータ選択部114に出力される。次に、1Hの処理結果であるD係数が同様にメモリmem1からmem_in1に出力され、これがデータ選択部114からfil_outを通してフィルタ部130に入力される。そして、フィルタ部130より垂直方向の低域通過型フィルタからのDS係数及び高域通過型フィルタからのDD係数がfil_inを通してデータ選択部114に出力される。ただし、ここでは最初にS係数を処理し、次にD係数を処理したが、順番はそれと逆にしても構わない。さて、フィルタ部130からデータ選択部114に入力されたSS,SD,DS,DDの各係数データは、mem_out1を通してメモリmem1に書き込まれる。この時、メモリmem1に対する書き込みアドレス及び各種イネーブル信号は、制御信号選択部111よりmem_cnt1を通して与えられる。以上の動作が時刻t2まで繰り返し行われ、レベル1の垂直処理(1V)が終了する。
【0043】
32画素×32ラインのイメージデータを入力した場合、1Vの処理に必要なリード/ライトサイクルの総数は、フィルタ部130への入力がS係数とD係数の2種類になるため、2048サイクルとなる。
【0044】
1V処理の結果のデータは、例えば図3に示すように、メモリmem1の左上四半分にSS係数が、左下四半分にSD係数が、右上四半分にDS係数が、右下四半分にDD係数が、それぞれ書き込まれる。
【0045】
次に時刻t2から時刻t4まで、レベル2の処理が行われるのであるが、その水平処理の対象となるデータはレベル1のSS係数である。したがって、時刻t2から時刻t3までのレベル2の水平処理(2H)においては、制御信号選択部111及びデータ選択部114は、メモリmem1のSS係数が格納されている領域から入力データを読み出し、フィルタ部130の出力データをレベル2のためのメモリmem2に書き込むことになり、1Hの処理の場合と同様に、データの読み出しと書き込みを同時に行うことができる。レベル2の垂直処理(2V)では、メモリmem2に対しデータの読み出しと書き込みを行うことになる。したがって、2H処理及び2V処理に必要なリード/ライトサイクルの総数はそれぞれ、256サイクルと512サイクルとなる。
【0046】
続いて時刻t4からt6までがレベル3の処理であり、その水平処理(3H)ではメモリmem2のSS係数の読み出しとメモリmem3へのデータの書き込みが同時に行われ、垂直処理(3V)ではメモリmem3に対する読み出しと書き込みが行われる。したがって、3H処理及び3V処理に必要なリード/ライトサイクルの総数はそれぞれ、64サイクルと128サイクルとなる。続いて時刻t6からt8までがレベル4の処理となり、その水平処理(4H)及び垂直処理(4V)に必要なリード/ライトサイクルの総数はそれぞれ、16サイクルと32サイクルとなる。したがって、レベル1からレベル4までのリード/ライトサイクルの総数は、4080サイクルとなる。
【0047】
次にデコード時の動作を説明する。図5はデコード時のタイミングチャートである。デコード時は、符号化部200から周波数帯信号データがウェーブレット変換部100に入力され、ウェーブレット変換部100はエンコード時とは逆順で動作してウェーブレット逆変換を行い、復元したイメージデータをdataより外部へ出力する。デコード動作であることはdir信号で通知される。
【0048】
図5において、時刻t0でstart信号が入力されると、入力されたレベル4の係数データに対するレベル4の垂直処理が開始する。入力された係数はデータ選択部114からfilter_outを通してフィルタ部130へ送られ、フィルタ部130からの出力データがfilter_inを通してデータ選択部114に入力し、これが制御信号選択部111の制御によってメモリmem4に書き込まれる。これは時刻t1で終了し、次にレベル4の水平処理が開始され、メモリmem4のデータが読み出されてデータ選択部114を介してフィルタ部130に送られ、フィルタ部130から出力されるデータ、つまりレベル3のSS係数がデータ選択部114を介してメモリmem3の対応領域に書き込まれる。この垂直処理は時刻t2で終了する。時刻t2からはレベル3の処理であり、入力されるレベル3のSD,DS,DD係数とメモリmem3より読み出されるSS係数に対する垂直処理が行われ、その結果はメモリmem3の対応領域に書き込まれる。レベル3の垂直処理は時刻t3で終了し、続いてレベル3の水平処理が行われ、その結果データつまりレベル2のSS係数データはメモリmem2の対応領域に書き込まれる。時刻t4でレベル3の処理は終了し、続いてレベル2の垂直処理が行われ、時刻t5からレベル2の水平処理が行われる。時刻t6から時刻t7までレベル1の垂直処理、ついで時刻t8までレベル1の水平処理が行われ、復元されたイメージデータはdataを通して外部に出力される。
【0049】
各レベルにおいて、水平方向、垂直方向ともに入力画素数に対し出力画素数は2倍になる。したがって、例えば時刻t0からt1までの時間もくしは時刻t1からt2までの時間に対し、時刻t2からt3までの時間もしくは時刻t2からt3までの時間は4倍となる。よって、デコード動作に必要なサイクル数は、エンコード時と同様に4080サイクルである。
【0050】
なお、図2及び図3に示したメモリマップは、処理のイメージを掴みやすくするために示した一例にすぎず、アドレッシングの容易さ、あるいは設計の容易さを考慮して、いかような形態にしようと自由である。なぜならば、メモリmem1〜mem4は各レベルの演算において独立しており、周波数帯信号を最終的に蓄積しておくストレージであるとともに、水平処理の結果を一時的に蓄積するバッファメモリとしても機能しているためである。
【0051】
<第2実施例>
図6は本発明の第2実施例を示すブロック図である。ただし、符号化部は省略されており、ウェーブレット変換部だけが示されている。
【0052】
本実施例の構成はIC化に好適なものである。すなわち、前記第1実施例では、メモリmem1〜mem4として、最も一般的なメモリ(アドレスが1種類、つまりリードアドレスとライトアドレスが共通なもの)を使用した場合で説明したが、本実施例ではIC内で比較的よく使用されるメモリのような、リードアドレスとライトアドレスが独立しており、読み出しと書き込みを同時に行うことが可能なメモリが使用される。したがって、メモリmem1〜mem4は2種類のアドレス入力ra(リード時専用アドレス入力),wa(ライト時専用アドレス入力)、それに対応した2種類のイネーブル入力reb(リード時専用イネーブルバー),web(ライト時専用イネーブルバー)及びデータ入力i及びデータ出力oを持っている。
【0053】
制御信号選択部(s_mux)111はメモリmem1〜mem4に対してra1〜ra4、wa1〜wa4、reb1〜reb4、及びweb1〜web4の信号を出力する。これら信号の基になる信号ra,wa,reb,webの各信号が主制御部(main)118から制御信号選択部111へ入力される。さらに、制御信号選択部111は、信号出力をレベルに応じて選択するために、主制御部よりhb_s_mux(holizontal bar, s_mux)及びlevel_s_mux(level, s_mux)の各信号が入力される。エンコード/デコードの状態は外部よりdir(direction)信号により与えられる。start信号も同様に外部から与えられる。
【0054】
データ選択部(d_mux)114はメモリmem1〜mem4の出力信号o1〜o4、及びフィルタ部(filter)130の出力信号sin,din,xin1,xin2が入力し、また、メモリmem1〜mem4への入力信号i1〜i4、及びフィルタ部(filter)130への入力信号so,do,xo1,xo2を出力する。
【0055】
以下、本実施例のエンコード時の動作を図36のタイミングチャートに基づいて説明する。なお、タイムスケールは、例えば時刻t0からt1の間で全てのイメージデータ(ここでは32画素×32ライン、トータル1024画素)がdataより入力されるものとして規定している。図中の信号の中には画素単位で変化する信号もあるが、画素単位では描ききれないため、以下のように簡略化している。すなわち、Xはdon't care信号であり、x=xはビット深さを持つ信号であり、webやstart信号は ̄|_| ̄のようなカドのある信号(x=x以外)で、かつハイ/ローの2レベルの信号が同時刻に描かれている信号は1ビットの信号である。
【0056】
さて、時刻t0にstart信号が入力され、これに同期してイメージデータがdataより入力される。主制御部(main)118からwa,web,hb_mux,level_s_mux,hb_d_mux及びlevel_d_muxの各信号が出力される。制御信号選択部(s_mux)111及びデータ選択部(d_mux)114では、level_s_mux,hb_d_mux及びlevel_d_muxの各信号に基づいて、アクセスすべきメモリに対する入出力信号を選択する。図36においては、level_s_mux及びlevel_d_mux、hb_d_mux及びhb_d_muxが同じ信号として描かれているが、画素単位で時間のずれを生じる可能性があることに注意されたい。時刻t0からt1までは入力されたイメージデータに対してレベル1の水平処理が行われ、結果がメモリmem1に書き込まれる。アクセスすべきメモリの選択は、信号level_s_mux及びlevel_d_muxが1であることで通知され、水平処理であることは信号hb_d_mux及びhb_d_muxがローレベルであることで通知される。時刻t1からt2まではメモリmem1に記憶されているS係数及びD係数に対してレベル1の垂直処理が行われ、その結果がメモリmem1に書き込まれる。アクセスすべきメモリの選択は水平処理の時と同様に信号level_s_mux及びlevel_d_muxが1であることで通知され、垂直処理であることは信号hb_s_mux及びhb_d_muxがハイレベルであることで通知される。本実施例では、リードアドレスとライトアドレスが独立しているメモリを用いており、リード/ライトを同時刻に行うことができるので、図36のタイミングチャートに示すような動作が可能となる。
【0057】
時刻t2からレベル2の処理が開始される。今度はメモリ1に得られたレベル1のSS係数データ(1SS)が処理対象となるが、メモリmem1,mem2のアドレス信号が独立しているので、レベル1の処理シーケンスをほぼそのままレベル2の処理シーケンスに適用することが可能となる(入力がイメージデータから1SS係数データに変わり、そのサイズが1/4になるだけである)。したがって、時刻t4まで継続されるレベル2の処理は、レベル1で説明した動作を参照すれば容易に理解されよう。
【0058】
ついで、時刻t4からt6の区間でレベル3の処理が、時刻t6からt8の区間でレベル4の処理が行われる。前記第1実施例で求めたと同様にして、本実施例についてメモリアクセスの総数を計算すると、
32x32x2(H,V)+16x16x2+8x8x2+4x4x2=2720サイクル
となる。ただし、複数のアクセスを行う場合でも、それが同時刻で可能であれば、それを1回と数えた。この回数は従来技術の1/2であり、前記第1実施例と比べても2/3のアクセス回数で済む。
【0059】
デコード時の動作は、以上に説明した動作と逆順になるが、これは以上の説明及び前記第1実施例に関連した説明から容易に理解されるであろうから、説明を割愛する。
【0060】
<第3実施例>
図7は本発明の第3実施例を示すブロック図である。本実施例の全体的なブロック構成は基本的に図6に示したものと同様であるが、ウェーブレット変換部のメモリmem1〜mem4及びフィルタ部130は省略され、制御部110のみ描かれている。
【0061】
本実施例では、制御部110はエンコード用のブロックとデコード用のブロックがそれぞれ専用に割り当てられる構成とされる。すなわち、主制御部118、制御信号選択部111及びデータ選択部114は、エンコード専用のemainブロック118e、es_muxブロック118d及びed_muxブロック114eと、デコード専用のdmainブロック118d,ds_muxブロック111d及びdd_muxブロック114dに分けられ、さらに主選択部(m_mux)120と開始終了制御部(se)122が追加されている。制御部に対する入出力は図6と同様である。
【0062】
さて、エンコード用のemain,es_mux及びed_muxの各ブロックについて注目すれば、その構成は図6の構成と同一であることが理解されよう。同様に、デコード用のdmain,ds_mux及びdd_muxの各ブロックについても、その構成が図6の構成と同一であることが理解されよう。追加された主選択部(m_mux)120は、外部からの入力信号dirに従って、es_mux及びed_muxの各ブロックの入力又は出力と、ds_mux及びdd_muxの各ブロックの入力又は出力を単に切り替えるに過ぎない。追加された開始終了制御部(se)122は、外部からの入力信号start,dirに従って、エンコード用のブロックを動作させるか、デコード用のブロックを動作させるかを選択するに過ぎない。すなわち、これらの2つのブロックの設計は非常に容易で、かつ、回路規模は非常に小さい。したがって、設計者は、メインブロックであるエンコード用の3つのブロック118e,111e,114eとデコード用の3つのブロック118d,111d,114dの設計に注力すればよい。しかも、エンコード用とデコード用それぞれのブロックの設計を別々に、あるいは独立して行うことができるため、設計の期間及び効率を飛躍的に向上させることが可能になる。
【0063】
<第4実施例>
図8は本発明の第4実施例を示すブロック図であり、ウェーブレット変換部だけを表している。本実施例のウェーブレット変換部のブロック構成は、基本的に前記第1実施例又は第2実施例と同様であるが、本実施例ではメモリmem1〜mem4とは独立に、バッファメモリ106(以下bmemと表記)を配置していることが異なる。バッファメモリbmemは、メモリmem1と同じワード数を有し、書き込みアドレスと読み出しアドレスが独立している。制御信号選択部111とデータ選択部114に、バッファメモリbmemとの間の配線が追加されることは当然である。
【0064】
本実施例における動作は、図9及び図4のタイミングチャートを参照すれば容易に理解されよう。すなわち、図4に示されるように前記第1実施例又は第2実施例では、水平処理の結果であるS係数及びD係数の書き込みはメモリmem1〜mem4に再帰的に行われるが、本実施例では、図9に見られるように、水平処理の結果の書き込みはバッファメモリbmemになされる。したがって、本実施例における総サイクル数は、32画素×32ラインのイメージデータの場合、前記第1実施例及び第2実施例と同様に2720サイクルとなり、従来技術の1/2の処理時間で済むことが理解されよう。
【0065】
バッファメモリbmemは、ウェーブレット処理中に水平処理の結果であるS係数及びD係数を格納するために用いられるが、ウェーブレット処理が終了した後は他のブロックで使用しても何ら問題がない。換言すれば、符号化部でワークメモリが必要であれば、このバッファメモリbmemをワークメモリとして利用することができるのである。通常はワークメモリが用意されるケースが殆どであるので、本実施例の構成は好適である。
【0066】
さらに、本実施例は、前記第1実施例で説明した、最も一般的なメモリをメモリmem1〜mem4に使用した場合にその効果を発揮する。すなわち、IC内で比較的よく使用される、リードアドレスとライトアドレスが独立しているメモリを使用する必要がなくなるのである。リードアドレスとライトアドレスが独立したメモリは、多機能である故に、両アドレスが独立していない最も一般的なメモリに比べて面積が大きいという欠点がある。本実施例によれば、最小のメモリエリアで前記第3実施例と同等の高速処理を実現できる。
【0067】
<第5実施例>
本発明の第5実施例によれば、前記第4実施例と同様な構成において、図10に示すように、2つのフィルタ部(filterH)130hとフィルタ部(filterV)130vを用意し、前者を水平処理専用に割り当て、後者を垂直処理専用に割り当てる。なお、図10では省略されているが、本実施例においては、メモリmem1〜mem4及びバッファメモリbmemすべてにリードアドレスとライトアドレスが独立しているメモリを用いている点に注意されたい。
【0068】
本実施例の動作を図11のタイミングチャートに基づいて説明する。時刻t0でイメージデータ(data)の入力が開始されると、これがフィルタ部130hに順次入力され、得られたS係数及びD係数はバッファメモリbmemに書き込まれる。時刻t1から1ライン目(ライン及び画素を0番目から数えていることに注意されたい)の水平処理が開始され、時刻t2から2ライン目の水平処理が開始される。2ライン目の1画素目のSもしくはD係数が出力されると、垂直処理におけるD係数の計算のためのデータが揃い、フィルタ130v部を利用した垂直処理も開始される。ここで、垂直処理におけるSS係数及びDS係数の計算のためのデータは1ライン目の1画素目のSもしくはD係数が出力された時点に既に揃い、出力されているが、このタイミングチャートでは垂直処理について記していることに注意されたい。さて、イメージデータはラスタ順で順次入力され、水平処理が施されたS及びD係数も順次バッファメモリbmemに書き込むと同時に垂直方向の読み出しが行われ、さらに同時に垂直処理が施されたSS,SD,DS及びDD係数の書き込みが行われる。このような動作は2組のフィルタ部130h,130vを備える構成であるが故に可能である。時刻t4でレベル1の処理が終わってレベル2の処理が始まり、時刻t7でレベル2の処理が終わりレベル3の処理が開始し、レベルt10でレベル3の処理が終了してレベル4の処理が開始し、時刻t13で全処理が終了する。
【0069】
以上のような水平処理と垂直処理の同時実行により、32画素×32ラインのイメージデータを処理する場合、本実施例における総サイクル数は1480サイクルとなり、これは従来技術の総サイクル数の約1/4であるため、非常な高速動作が可能である。
【0070】
<第6実施例>
図12は本発明の第6実施例を示すブロック図である。本実施例のブロック構成は基本的に前記第2実施例の場合と同様であるが、本実施例では、図12に見られるように、S係数格納用の3本のラインメモリ107s(line mem(S0),line mem(S1),line mem(S2))及びD係数格納用の3本のラインメモリ107d(line mem(D0),line mem(D1),line mem(D2))を備え、さらにデータ選択部(d_mux)114がこれらラインメモリに対する信号線を備えている。
【0071】
本発明の動作を図13のタイミングチャートに基づいて説明する。時刻t0でイメージデータ(data)の入力が開始され、フィルタ部130に入力されて水平処理され、得られたS係数はラインメモリ107s中のline mem(S0)に、D係数はラインメモリ107d中のline mem(D0)に、それぞれ書き込まれる。時刻t1から1ライン目の水平処理が開始されると、lime mem(S0)に書き込まれたS係数はline mem(S1)に順次シフトされる。line mem(D0)のD係数についても同様である。時刻t2において1ライン目の水平処理が終了すると、垂直処理における各周波数帯信号の計算のためのデータが揃う。ここで一旦、イメージデータの入力が停止され、ラインメモリ107sに書き込まれたS係数及びラインメモリ107vに書き込まれたD係数に対して垂直処理が施され、0ライン目のSS,SD,DS及びDD係数がメモリmem1に書き込まれる。時刻t3でイメージデータの入力が再開され、3ライン目のS係数がline mem(S0)に、D係数がline mem(D0)にそれぞれ書き込まれる。1ライン前のS係数及びD係数はline mem(S1)及びline mem(D1)にシフトされる。この処理が順次施されれる。最後の2ライン分の垂直処理(時刻t4からt5、時刻t5からt6)は必要なS係数及びD係数が全て揃っている(最終ラインに対しては、ミラー処理が施される)ので、続けて処理される。時刻t6でレベル1の処理が終了する。以下、時刻t6からt9がレベル2の処理、時刻t9からt10がレベル3の処理、時刻t10からt11がレベル4の処理である。
【0072】
本実施例で用いられる6本のラインメモリはパラレルで読み出しを行うことができれば、一般的なレジスタ、あるいはシフトレジスタ等、どのようなものを用いてもよい。32画素×32ラインのイメージデータを処理する場合、本実施例での総サイクル数は
(32x32x2)+(16x16x2)+(8x8x2)+(4x4x2)=2720サイクル
となることが分かる。この処理サイクル数は従来技術の約1/2の処理時間であり、高速動作を小さな回路規模で実現することができる。
【0073】
<第7実施例>
図14は本発明の第7実施例を示すブロック図である。本実施例のブロック構成は基本的に前記第6実施例(図12)と同様であるが、本実施例では図14に見られるように2つのフィルタ部130h,130vを備え、それぞれを水平処理と垂直処理専用に割り当てる。
【0074】
本実施例の動作を図15のタイミングチャートに基づいて説明する。時刻t0でイメージデータ(data)の入力が開始されると、S係数がline mem(S0)に、d係数がline mem(D0)にそれぞれ書き込まれる。時刻t1から1ライン目の水平処理が開始されると、line mem(S0)に書き込まれたS係数はline mem(S1)に順次シフトされる。line mem(D0)のD係数についても同様である。時刻t2において1ライン目の水平処理が終了すると、垂直処理における各周波数帯信号の計算のためのデータが揃う。時刻t2以降、水平処理は水平処理専用のフィルタ部130hにより行われ、結果がラインメモリ107s,107dに順次書き込まれる。この書き込みを行うのと同時に読み出しが行われ、垂直処理専用のフィルタ部130vにより垂直処理が行われ、結果はメモリmem1に書き込まれる。この処理が順次実行され、時刻t3でレベル1の処理が終了する。時刻t3からレベル2の処理が行われるのであるが、レベル2の処理の対象となるのはレベル1のSS係数となる。以下、時刻t3からt6がレベル2の処理、時刻t6からt8がレベル3の処理、時刻t8からt10がレベル4の処理である。
【0075】
本実施例で用いられる6本のラインメモリはパラレルで読み出しを行うことができれば、一般的なレジスタあるいはシフトレジスタ等、どのようなものを用いてもよい。以上のような動作は2つのフィルタ部を利用するが故に実現できる。32画素×32ラインのイメージデータを処理する場合、本実施例での総サイクル数は各レベルで2ライン分の増加となるので、1480サイクルとなることは図15より明かであろう。この処理サイクル数は従来技術の約1/4の処理時間となり、非常な高速動作を小さな回路規模で実現することができる。
【0076】
<第8実施例>
本発明の第8実施例によれば、基本的なブロック構成は前記第1実施例又は第2実施例と同様であるが、図16に示すように、メモリmem1〜mem4それぞれを、SS,SD,DS及びDDの各係数データ専用の4つの独立したメモリに分割した構成とし、さらに、図18及び図19に示すように、水平処理と垂直処理の両方に利用可能な2つのフィルタ部130_1,130_2を備え、それぞれを水平処理時と垂直処理時とで入出力を切り替えて用いる点が異なる。
【0077】
本実施例の動作を図17のメモリマップ、図18及び図19の接続図、及び図20のタイミングチャートに基づいて説明する。図17はメモリマップを示す図であり、前処理として、左側に示したようなラスタデータ(外部入力のイメージデータ又は前レベルのSS係数データ)を予め右側に示したように4つの各係数専用メモリ上に再配置しておく必要がある。この再配置は以下のような規則で行う。例えばレベル1の処理の場合、メモリmem1内のSSメモリの0ライン目の0画素目にはラスタデータ(data)の0ライン目の0画素目のデータが格納され、SDメモリの0ライン目の0画素目にはラスタデータの0ライン目の1画素目のデータが格納される。また、DSメモリの0ライン目の0画素目にはラスタデータの1ライン目の0画素目のデータが格納され、DDの0ライン目の0画素目にはラスタデータの1ライン目の1画素目のデータが格納される。すなわち、偶数ライン目(0ライン目も偶数と数える)の偶数画素目(0画素目も偶数と数える)がSSメモリに格納され、偶数ライン目の奇数画素目がSDメモリに格納され、奇数ライン目の偶数画素目がDSメモリに格納され、奇数ライン目の奇数画素目がDDメモリに格納されるのである。
【0078】
このような形でメモリmem1内の4つのメモリに再配置されたデータに対し、まずデータ選択部114によって図18のような接続とし、2つのフィルタ部130_1,130_2を同時に利用して水平処理が行われる。メモリmem1内のSS〜DDの各メモリはそれぞれ独立しているため、同時刻にリード/ライトを行うことができる。偶数ライン目をフィルタ部(filter1)130_1で処理し、奇数ライン目をフィルタ部(filter2)130_2で処理し、結果をそれぞれのメモリに同時に書き込むのである。次に、図19のように接続が変更され、垂直処理が行われる。すなわち、偶数画素目をフィルタ部(filter1)130_1で処理し、奇数画素目をフィルタ部(filter2)130_2で処理し、結果をそれぞれのメモリに同時に書き込むのである。
【0079】
以上はレベル1の処理の場合であるが、レベル2以降の処理の場合も、処理対象データが前レベルのSS係数データであり、これを再配置してから処理することと、メモリmem2〜mem4を利用することを除けば同じである。
【0080】
次に、本実施例の動作を図20のタイミングチャートに基づいて説明する。時刻t0でイメージデータ(data)の入力が開始されると、まずイメージデータ(ラスタデータ)が図17に示すようにメモリmem1内の4つのメモリに振り分けられて格納される(図中tr)。時刻t1でイメージデータの入力が終了し、時刻t2まで図18に示す接続により水平処理が行われ、ついで時刻t3まで図19に示す接続により垂直処理が行われる。時刻t3でレベル1の処理が終了する。時刻t3からt4までの間で、メモリmem1内のSSメモリに記憶されているレベル1のSS係数データが、メモリmem2内の4つのメモリに図17に示すような規則に従って振り分けて格納される。時刻t4でレベル1のSS係数の入力が終了し、このSS係数データに対する水平処理が時刻t5まで行われ、ついで時刻t6まで垂直処理が行われる。以下同様の処理が時刻t12まで施され、処理が終了する。
【0081】
本実施例での総サイクル数は、32画素×32ラインのイメージデータを処理する場合、
32x32+(16x16x3)+(8x8x3)+(4x4x3)+(2x2x2)=1843サイクル
となる。この処理サイクル数は従来技術の約1/3の処理時間であり、非常な高速動作を実現することができる。各レベルの処理に先だって行われるデータ振り分けのための時間を除いたサイクル数は僅か824サイクルだけで済む。
【0082】
<第9実施例>
本発明の第9実施例によれば、前記第8実施例と同様の基本的ブロック構成において、前記第4実施例と同様にバッファメモリbmemが設けられが、このバッファメモリbmemもメモリmem1〜mem4と同様、図21に示すようにSS,SD,DS,DDの各係数専用の4つの独立したメモリに分割された構成とされる。ただし、バッファメモリbmemを構成する4つのメモリはそれぞれ、メモリmem1と同じワード数を有する。
【0083】
本実施例の動作を図22のタイミングチャートに基づいて説明する。時刻t0でイメージデータ(data)の入力が開始されると、このデータ(ラスタデータ)は前記第8実施例の場合と同様にメモリmem1内の4つのメモリに振り分けられて格納される(図中tr)。時刻t1でイメージデータ(data)の入力が終了し、時刻t2まで水平処理が行われ、その結果がバッファメモリbmemに書き込まれる。このときの動作は、水平処理結果がバッファメモリbmemに書き込まれる以外は前記第8実施例の場合と同様である(図18参照)。
【0084】
ついで時刻t2からt3までバッファメモリbmemからデータを読み出して垂直処理が行われる。各係数は、SS係数のみがメモリmem2内の対応メモリに書き込まれ、他の3つの係数SD,DS及びDDはメモリmem1内の対応メモリに書き込まれる。時刻t3でレベル1の処理が終了する。本実施例ではバッファメモリbmemからのレベル1のSS係数の読み出しをレベル2の処理と並行して行うことができるため、時刻t3から直ちにレベル2の処理に入れる。以降、時刻t3からt5までレベル2の処理が行われ、時刻t5からt7までレベル3の処理が行われ、時刻t7からt9までレベル4の処理が行われる。
【0085】
本実施例での総サイクル数は、32画素×32ラインのイメージデータを処理する場合
32x2+(16x16x2)+(8x8x2)+(4x4x2)+(2x2x2)=1704サイクル
となることが図22より分かる。この処理サイクル数は従来技術の1/3未満であり、高速動作を実現できる。最初にデータを振り分ける時間を除いたサイクル数は僅か680サイクルだけである。
【0086】
<第10実施例>
本発明の第10実施例によれば、基本的ブロック構成は前記第1実施例、第2実施例、第3実施例、第6実施例又は第7実施例と同様とされるが、各レベルに対応したメモリmem1〜mem4はそれぞれ、図23に模式的に示すように、ワード数が1/4にされ、ビット深さがSS,SD,DS及びDDの各係数に必要なビット深さの和と等しくされる。例えばSS,SD,DS及びDDの各係数が8ビットであった場合、各メモリのビット深さは32ビットとされる。もちろん、SS,SD,DS及びDDの各係数のビット数が異なっていても、必要なビット深さの和の分が確保されていれば全く問題はない。本実施例の動作は、例えば前記第8実施例(図16)の構成に適用した場合、図20と同様のタイミングチャートによって表すことができる。
【0087】
本実施例によれば、各周波数帯信号毎に分かれていたメモリロケーションを1つのメモリロケーションにまとめることで、メモリサイズの縮小化を図ることができる。一般的に、IC内のメモリは、ワード数×ビット深さが同じ場合、ワード数が小さい方が面積が小さくなるからである。さらに、アドレス等の制御信号の数が1/4で済むので配線の引き回しが少なくなり、遅延時間が減少し、あるいはノイズが減少する、といった利点がある。
【0088】
<第11実施例>
本発明の第11実施例によれば、バッファメモリbmemを利用する前記第4実施例や第9実施例と同様な構成において、メモリmem1〜mem4のみならずバッファメモリbmemについても、前記第10実施例に述べたように、ワード数が1/4、ビット深さがSS,SD,DS及びDDの各係数で必要なビット深さの和となるようにする。図24に、その様子を模式的に示す。SS,SD,DS及びDD係数のビット数がそれぞれ異なっていても、必要なビット深さの和の分が確保されていれば全く問題はない。
【0089】
本実施例の動作は、例えば前記第9実施例(図21)の構成に適用した場合、図22と同様なタイミングチャートにより表すことができる。本実施例によれば、各周波数帯信号毎に分かれていたメモリロケーションを1つのメモリロケーションにまとめることで、前記第10実施例に述べたように、バッフアメモリbmemも含めたメモリサイズの縮小化を図ることができ、さらに、アドレス等の制御信号の数の減少により遅延時間やノイズが減少する等の利点がある。
【0090】
<第12実施例>
図25は本発明第12の実施例を示すブロック図である。ウェーブレット変換部100はレベル1用のウェーブレット変換単位モジュール100_level1、レベル2用のウェーブレット変換単位モジュール100_level2、レベル3用のウェーブレット変換単位モジュール100_level3、及びレベル4用のウェーブレット変換単位モジュール100_level4によって構成される。各ウェーブレット変換単位モジュールは、対応した1つのレベルの処理にのみ関わる点を別にすれば、前記各実施例と基本的に同様な構成であり、それぞれ、対応レベル用のメモリ、フィルタ部、それにメモリの制御、モジュール内のデータ転送制御、外部又は隣接レベルのモジュールとのデータ転送制御、及び外部又は隣接レベルのモジュールとの制御信号の授受のための制御部からなる。
【0091】
すなわち、レベル1用のウェーブレット変換単位モジュール100_level1は、メモリmem1、制御部110_level1及びフィルタ部130_level1から構成される。メモリmem1は、外部から入力されるイメージデータ(data)と同数のワード数を有する。レベル2用のウェーブレット変換単位モジュール100_level2は、メモリmem2、制御部110_level2及びフィルタ部130_level2から構成され、メモリmem2はメモリmem1の1/4のワード数を有する。レベル3用のウェーブレット変換単位モジュール100_level3は、メモリmem3、制御部110_level3及びフィルタ部130_level3から構成される。メモリmem3は、メモリmem2の1/4のワード数を有する。レベル4用のウェーブレット変換単位モジュール100_level4は、メモリmem4、制御部110_level4及びフィルタ部130_level41から構成され、メモリmem4はメモリmem3の1/4のワード数を有する。
【0092】
レベル1の制御部110_level1は、入力信号として外部からのestart信号、及びレベル2からのデコード終了信号dend1があり、出力信号として外部へのデコード終了信号dend及びレベル2へのエンコード終了信号eend1があり、入出力信号としてレベル2に対するデータ入出力信号data1、メモリmem1に対する入出力信号及びフィルタ部130_level1に対する入出力信号がある。レベル2の制御部110_level2の入力信号は、レベル1からのエンコードスタート信号eend1及びレベル3からのデコード終了信号dend2であり、出力信号は、レベル1へのデコード終了信号dend1及びレベル3へのエンコード終了信号eend2であり、入出力信号はレベル3に対するデータ入出力信号data2、メモリmem2に対する入出力信号及びフィルタ部130_level2に対する入出力信号である。レベル3の制御部110_level3の入力信号は、レベル2からのエンコードスタート信号eend2及びレベル4からのデコード終了信号dend3であり、出力信号は、レベル2へのデコード終了信号dend2及びレベル4へのエンコード終了信号eend3であり、入出力信号はレベル4に対するデータ入出力信号data3、メモリmem3に対する入出力信号及びフィルタ130_level3に対する入出力信号である。レベル4の制御部110_level4の入力信号は、レベル3からのエンコードスタート信号eend3及び外部からのデコードスタート信号dstartであり、出力信号は、レベル3へのデコード終了信号dend3及び外部へのエンコード終了信号eendであり、入出力信号はメモリmem4に対する入出力信号及びフィルタ部130_level4に対する入出力信号である。
【0093】
本実施例の動作のタイミングチャートは図4(エンコード時)又は図5(デコード時)とほぼ同様である。エンコード時の動作を説明する。estart信号が入力されると、ウェーブレット変換単位モジュール100_level1において、外部より入力されるイメージデータ(data)に対し水平処理が行われ、ついで垂直処理が実行される。レベル1の処理が終了すると、これがeend1信号により制御部110_level2に通知され、ウェーブレット変換単位モジュール200_level2でレベル2の処理が開始される。以下、レベル4までの処理が終了すると、外部にeend信号が出力される。
【0094】
次にデコード時の動作を説明する。dstart信号が入力されると、符号化部200より入力されるレベル4の係数データに対して、ウェーブレット変換単位モジュール200_level4で垂直処理が実行され、ついで水平処理が実行される。レベル4の処理が終了しレベル3のSS係数データが再生されると、これがdend3信号によって制御部110_level3に通知され、ウェーブレット変換単位モジュール100_level3によるレベル3の処理が開始する。このようなウェーブレット逆変換処理によってイメージデータの再生が終了すると、dend信号が外部に出力される。
【0095】
本実施例によれば、全レベルにわたる動作全体を考慮しながら設計を行う必要がなく、1つの基本モジュールの設計のみを行えばよい。この設計結果を各レベルに適用することで所望レベル数のウェーブレット変換部の設計を行うことができるので、信頼性が向上し、またデータサイズの変更やレベルの追加等の設計変更要求があった場合でも速やかに対応することが可能となる。
【0096】
<第13実施例>
図26は本発明の第13実施例を示すブロック図である。本実施例のウェーブレット変換部100は、基本的には前記第12実施例と同様に4つのウェーブレット変換単位モジュールによって構成されるが、各ウェーブレット変換単位モジュールの内部構成が一部相違する。すなわち、各ウェーブレット変換単位モジュール100_level1〜100_level4に、例えば前記第4実施例や第5実施例と同様にバッファメモリ(bmemi)106_leveli(i=1〜4)を設け、さらに前記第4実施例と同様に水平処理用と垂直処理用の2つのフィルタ部130h_leveli,130v_leveliを持たせる。バッファメモリbmem1〜bmem4はそれぞれメモリmem1〜mem4と同じワード数を有する。図13では、ウェーブレット変換単位モジュール100_level3,100_level4の内部構成が省略されている。
【0097】
本実施例の動作は、図11とほぼ同様のタイミングチャートにより表すことができる。エンコード時の動作を説明する。estart信号が入力されると、ウェーブレット変換単位モジュール100_level1において、外部から入力したイメージデータに対する水平処理と垂直処理がほぼ並行して実行される。レベル1の処理が終了すると、eend1信号により制御部110_level2に通知され、ウェーブレット変換単位モジュール100_level2においてレベル2の処理が開始される。以下、レベル4までの処理が終了すると、外部にeend信号が出力されエンコード処理を終了する。
【0098】
次にデコード時の動作を説明する。dstart信号が入力されると、ウェーブレット変換単位モジュール100_level4でウェーブレット逆変換の垂直処理、ついで水平処理が実行される。レベル4の処理が終了しレベル3のSS係数が再生されると、dend3信号によって制御部110_level3に通知され、ウェーブレット変換単位モジュール100_level3でレベル3の処理が開始される。このようにしてイメージデータ(data)の再生処理が終了すると、外部にdend信号が出力される。
【0099】
本実施例は、前記第12実施例よりも処理の高速化が可能になるとともに、前記第12実施例と同様に設計の容易化、信頼性の向上、設計変更要求への対応の迅速化といった利点がある。
【0100】
<第14実施例>
図27は本発明の第14実施例を示すブロック図である。本実施例によれば、前記第13実施例における各ウェーブレット変換単位モジュール100_leveli内のバッファメモリbmemiに代えて、S係数の一時的保持のための3本のラインメモリ107s_leveliとD係数の一時的保持のための3本のラインメモリ107d_leveliが設けられる。当然、これらラインメモリに対する入出力信号を制御部100_leveliは有する。なお、図27では、ウェーブレット変換単位モジュール100_level3,100_level4の内部構成はウェーブレット変換単位モジュール100_level1又は100_level2と同様であるため省略し、他モジュール又は外部に対する入出力信号だけを示した。
【0101】
本実施例のエンコード時のタイミングチャートは図15とほぼ同様である。 estart信号が入力されると、ウェーブレット変換単位モジュール100_level1においてレベル1の処理が実行される。レベル1の処理が終了すると、eend1信号によりウェーブレット変換単位モジュール100_level2でレベル2の処理が開始される。レベル4までの処理が終了すると、外部にeend信号が出力され、処理全体が終了する。デコード時においては、dstart信号が入力されると、ウェーブレット変換単位モジュール100_level4で垂直処理と水平処理が行われる。レベル4の処理が終了しレベル3のSS係数が再生されると、dend3信号によりウェーブレット変換単位モジュール100_level3に通知され、レベル3の処理が開始される。イメージデータの再生処理が終了すると、外部にdend信号が出力される。
【0102】
本実施例は、前記第12実施例と同様な利点のほかに、前記第7実施例と同様の利点を有する。
【0103】
【発明の効果】
以上の詳細な説明から明らかなように、以下のような効果を得られる。
【0104】
請求項1の発明によれば、ウェーブレット変換のレベル毎にメモりを具備することにより、水平処理(垂直処理を先に行う場合は垂直処理)の時間を短縮し、処理を高速化することができる。レベル対応のメモリは、各レベルの演算において独立しており、周波数帯信号を最終的に蓄積しておくストレージであるとともに、水平処理(又は垂直処理)の結果の一時記憶のためのバッファメモリとしても働くので、アドレッシングの容易さ、あるいは設計の容易さを考慮し自由にアドレスマッピングをすることが可能である。従来は各レベル毎に3個のフィルタを用意し、それぞれに制御機構を用意する必要があったが、制御機構をフィルタから分離して制御部に集約するとともに全レベルに共通のフィルタ部を用意することにより、フィルタ部にフィルタ本来の演算機能のみを持たせれば済むようになり、またループ処理も可能になり、回路構成の簡略化及び規模縮小を図ることができ設計も容易になる。
【0105】
請求項2の発明によれば、各レベルの処理において対応したメモリの読み出しと書き込みを同時に行い、処理の一層の高速化を図ることができる。
【0106】
請求項3の発明によれば、制御部を構成する部分は機能的に単純であり回路規模も小さくなるため、制御部の設計もしくは設計変更が一層容易になるとともに信頼性を高めることができる。
【0107】
請求項4の発明によれば、制御部のエンコード用部分とデコード用部分を独立に扱うことが可能になり、それぞれの部分は機能的により単純になり、また回路規模もより小さくなるため、制御部の設計が一層容易になるとともに信頼性を高めることができる。
【0108】
請求項5の発明によれば、レベル対応のメモリのほかに、その最大のものと同じワード数を少なくとも持つバッファメモリを備え、このバッファメモリは他ブロックのバッファメモリとも共有可能であり、これを各レベルの処理に利用することにより、読み出しアドレスと書き込みアドレスが独立したメモリに比べてメモリエリアの小さな、両アドレスが独立していないメモリをレベル対応メモリとして用い、両アドレスが独立したメモリを用いる場合に匹敵する高速処理が可能になる。
【0109】
請求項6又は8の発明によれば、水平処理と垂直処理を同時に実行することにより、さらなる高速処理が可能になる。
【0110】
請求項7の発明によれば、一般的なレジスタあるいはシフトレジスタ等で構成可能なラインメモリを利用することにより、回路規模を増大させることなく高速処理を実現できる。
【0111】
請求項9又は10の発明によれば水平処理及び垂直処理をそれぞれ並列化して一層の高速化を図ることができ、しかも、読み出しアドリスと書き込みアドレスが独立しない一般的なメモリをレベル対応のメモリやバッファメモリとして利用できるため、メモリエリアの増大を回避できる。
【0112】
請求項11又は12の発明によれば、レベル対応のメモリ又はレベル対応メモリ及びバッファメモリのメモリサイズを縮小することができるとともに、メモリ又はバッファに関連した配線による信号遅延やノイズを減らすことができる。
【0114】
請求項13によれば、以上に述べたような利点を持つ符号化/復号化装置を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1実施例の構成を示すブロック図である。
【図2】第1実施例におけるS係数及びD係数のためのメモリマップの一例を示す図である。
【図3】第1実施例におけるSS,SD,DS,DD係数のためのメモリマップの一例を示す図である。
【図4】第1実施例におけるエンコード時のタイミングチャートである。
【図5】第1実施例におけるデコード時のタイミングチャートである。
【図6】本発明の第2実施例の構成を示すブロック図である。
【図7】本発明の第3実施例の構成を示すブロック図である。
【図8】本発明の第4実施例の構成を示すブロック図である。
【図9】第4実施例におけるエンコード時のタイミングチャートである。
【図10】本発明の第5実施例の構成を示すブロック図である。
【図11】第5実施例におけるエンコード時のタイミングチャートである。
【図12】本発明の第6実施例の構成を示すブロック図である。
【図13】第6実施例におけるエンコード時のタイミングチャートである。
【図14】本発明の第7実施例の構成を示すブロック図である。
【図15】第7実施例におけるエンコード時のタイミングチャートである。
【図16】本発明の第8実施例におけるメモリの構成を示す図である。
【図17】第8実施例におけるデータ再配置の説明図である。
【図18】第8実施例における水平処理時の接続を示す図である。
【図19】第8実施例における垂直処理時の接続を示す図である。
【図20】第8実施例におけるエンコード時のタイミングチャートである。
【図21】本発明の第9実施例におけるバッフアメモリの構成を示す図である。
【図22】第9実施例におけるエンコード時のタイミングチャートである。
【図23】本発明の第10実施例におけるメモリの構成を示す図である。
【図24】本発明の第11実施例におけるメモリ及びバッファメモリの構成を示す図である。
【図25】本発明の第12実施例の構成を示すブロック図である。
【図26】本発明の第13実施例の構成を示すブロック図である。
【図27】本発明の第14実施例の構成を示すブロック図である。
【図28】従来技術を示すブロック図である。
【図29】従来技術におけるエンコード時のタイミングチャートである。
【図30】ウェーブレット変換の水平処理及び垂直処理の演算方法の説明図である。
【図31】イメージデータのメモリマップの一例を示す図である。
【図32】レベル1のS係数及びD係数のためのメモリマップの一例を示す図である。
【図33】レベル1のSS係数、SD係数、DS係数及びDD係数のためのメモリマップの一例を示す図である。
【図34】レベル2のS係数及びD係数のためのメモリマップの一例を示す図である。
【図35】レベル2のSS係数、SD係数、DS係数及びDD係数のためのメモリマップの一例を示す図である。
【図36】本発明の第2実施例におけるエンコード時のタイミングチャートである。
【符号の説明】
100 ウェーブレット変換部
100_level1〜100_level4 ウェーブレット変換単位モジュール
102_1〜102_4 メモリ(mem1〜mem4)
106 バッファメモリ(bmem)
107s,107s_level1,107s_level2 S係数用ラインメモリ
107d,107d_level1,107d_level2 D係数用ラインメモリ
110,110_level1〜110_level4 制御部
111 制御信号選択部(s_mux)
111e エンコード専用制御信号選択部(es_muxブロック)
111d デコード専用制御信号選択部(ds_muxブロック)
114 データ選択部
114e エンコード専用データ選択部(ed_muxブロック)
114d デコード専用データ選択部(dd_muxブロック)
118 主制御部
118e エンコード専用主制御部(emainブロック)
118d デコード専用主制御部(dmainブロック)
122 開始終了制御部(seブロック)
130,130_1,130_2 フィルタ部
130h,130h_level1〜130h_level4 水平処理用フィルタ部
130v,130v_level1〜130v_level4 垂直処理用フィルタ部
130_level1〜130_level4 フィルタ部
200 符号化部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to the field of data compression and decompression, and more particularly to an encoding / decoding device and a wavelet transformation device that use wavelet transformation.
[0002]
[Prior art]
Data compression is a very useful tool for storing and transmitting large amounts of data. For example, the time required for facsimile transmission of a document and transmission of an image such as the World Wide Web can be drastically shortened by reducing the number of bits required for image reproduction using compression.
[0003]
Conventionally, various data compression methods exist. A compression method of JPEG (Joint Photographics Experts Group) is the most widely used compression method. In the JPEG compression method, input symbols or luminance data are quantized and then converted into output codewords. The purpose of quantization is to remove unimportant feature quantities while preserving important feature quantities of data. Prior to quantization, transformation is used to concentrate energy, but JPEG employs DCT (Discrete Cosine Transform). However, various drawbacks have been pointed out with respect to the JPEG method using DCT. For example, block noise and mosquito noise (called this because mosquitoes appear to fly). In image signal processing, there is an interest in pursuing an efficient and highly accurate data compression encoding method that eliminates these drawbacks. Among these methods, there is a wavelet pyramid processing method.
[0004]
When wavelet transform is applied to a two-dimensional signal such as an image signal, a horizontal low-pass filter HL (Horizontal Low) and a horizontal high-pass filter HH (Holizontal High) are used for the input signal. Are separated into a horizontal low-frequency signal (S (smooth) coefficient) and a horizontal high-frequency signal (D (detail) coefficient), and further, a vertical low-pass filter VL (Vertical) with respect to the S coefficient and D coefficient. Low) and vertical high-pass filter VH (Vertical High), horizontal low-vertical low-frequency signal (SS coefficient), horizontal low-vertical high-frequency signal (SD coefficient), horizontal The direction high band-vertical low band signal (DS coefficient) and the horizontal high band-vertical high band signal (DD coefficient) are separated. The series of processes described above is called a level, and an output obtained by performing one horizontal process and vertical process is called a
[0005]
FIG. 28 shows a conventional configuration when processing up to
[0006]
In FIG. 28,
(Filter4V1) and 1012 (filter4V2) are vertical filters including a vertical low-pass filter VL and a vertical high-pass filter VH. V in these filter names means a vertical filter,
[0007]
An example of calculation when such a filter is used is shown in FIG. However, it should be noted that the data mapping in this figure is for explaining the calculation method, and the actual mapping to the memory is as shown in FIGS. 32 to 35, for example. (A) of FIG. 30 explains the process of the horizontal filter, [00] means the 0th pixel data of the 0th line, and [12] means the 2nd pixel data of the 1st line. (In this way, both lines and pixels are counted from 0). The output [S00] of the 0th pixel of the horizontal low-pass filter HL is obtained from [00] data and [01] data, and the output [S01] of the first pixel is [02] data and [03]. It is obtained from the data. On the other hand, the output [D00] of the 0th pixel of the horizontal high-pass filter HH includes data (not existing) two and one before (00) data, [00] data, [ 01] data, [02] data, and [03] data. Here, in order to obtain data that is two and one before the [00] data that does not exist, a process called a mirror is performed. Specifically, a process of turning back the data in a mirror image relationship is performed. As a result, the previous data and the previous data become [01] data and [00] data. In this way, [D00] is calculated from the data of 6 pixels.
[0008]
FIG. 30B illustrates the vertical filter processing. This process is performed in the vertical direction using the S coefficient and the D coefficient by the vertical filter process. The non-existent coefficient is subjected to mirror processing as in the case of the horizontal filter processing.
[0009]
FIG. 31 to FIG. 35 illustrate a method for storing the results of the wavelet processing. FIG. 31 shows image data stored in the frame memory in raster order. Data is read from the frame memory, horizontal processing is performed, and the result is written to the frame memory again. In order to avoid overwriting unprocessed data at the time of writing, for example, the S coefficient and the D coefficient are written by mapping as shown in FIG. In FIG. 32, [1S00] means the S coefficient of
[0010]
FIG. 29 is a timing chart of the
[0011]
From time t0, the 0th line data is sequentially input from the 0th pixel, and when the 1st pixel is input, the [1S00] data of the 0th pixel is output from the filter 1H. Next, when [1S01] data is output, three sets of S coefficients ([1S00], [1S00], [1S01]) necessary for calculating the D coefficient are prepared (the previous data is obtained by mirror processing). D coefficient [1D00] is output. This is repeated for one line. In the timing chart, it is shown in units of time of one line, but it should be noted that if it is enlarged, a deviation in units of pixels occurs.
[0012]
Input of data on the first line starts from time t1, and [1S10], [1D10], and S and D coefficients are sequentially output from filter 1H. 2H processing (
[0013]
At time t2, input of the first line for 2V processing (
[0014]
The frequency band signals of the respective levels obtained as described above are encoded and compressed by the
Output as code. The decompression from the compressed code to the image data is performed in the reverse order of the operations described above.
[0015]
More detailed information about the encoding / decoding device, wavelet transform unit, or filter related to the present invention can be found in JP-A-8-116265, JP-A-8-139935, and JP-A-9-27752. Refer to Japanese Patent Laid-Open No. 9-27912 and the like. For similar prior art, refer to JP-A-3-27687, JP-A-5-167997, and JP-A-5-183386.
[0016]
Next, the processing time for wavelet transform will be described. Here, as a storage for each frequency band signal generated by the
[0017]
As described with reference to the timing chart of FIG. 29, since each frequency band signal is output in parallel at the same time, writing to the memory must also be performed in parallel. Only one data can be read or written. 29, the lower left range corresponds to 1H, 1V,. . . , 4V represents the range of processing time occupied by ← →. The r / w cycles under range is the number of memory accesses required for each range (← →) of the range, and is the sum of the number of writes and the number of reads within that range, but different levels are processed simultaneously. The number of times in the range is shown as the total number of times for each level. The numerical value shown on the right side of FIG. 29 is the number of memory accesses (total number of writing and reading) required for horizontal processing or vertical processing at each level. As for the number of memory accesses, at each level, all horizontal data and vertical data are always read once, and all data is rewritten with filter output data, so writing twice the total number of pixels. / Write count is required.
[0018]
[Problems to be solved by the invention]
As described above, encoding is performed using each frequency band signal of each level, but since encoding is normally performed bit processing, it is necessary to temporarily store the output data after wavelet transform in the storage, There is a problem that the processing time is several times longer than the time required to simply input data. As is apparent from the above description, for example, when the size of the input image data is 32 pixels × 32 lines and the number of levels is 4, the number of cycles required to input the image data is 1024 = 32 × 32. On the other hand, the required processing time is 5440 cycles, which is five times or more. Obviously, if the size of the input data increases, the processing time will increase significantly. For example, in the case of 64 pixels × 64 lines, as shown by the dotted line in FIG. 29, as a result of the 1H processing being performed until time t10, the number of sections output in parallel increases, so the processing time increases significantly. Similarly, when the number of levels increases, the processing time increases significantly.
[0019]
Moreover, since each frequency band signal of each level is output at the same time, pipeline processing is necessary. That is, since the data input timings of all filters are different, it is necessary to individually design each filter by incorporating a controller according to the place where the filter is used. In addition, these controllers can deal with only a combination of the number of pixels and the level of one condition, and there is a problem that it is difficult to deal with when one or both of the number of pixels or the level is changed. . Furthermore, the sequence of encoding processing (processing to convert image data into each frequency band signal, wavelet order conversion) and decoding processing (processing to convert each frequency band signal into image data, wavelet inverse conversion) are different, but this Careful design was necessary so that the entire pipeline operation would not fail in consideration of the difference.
[0020]
An object of the present invention is to improve the above-mentioned problems in a wavelet transform apparatus and an encoding / decoding apparatus using the wavelet transform, and more specifically, enabling higher-speed operation. Pipeline processing is unnecessary, design or design change is facilitated, an increase in circuit scale is avoided, and so on.
[0021]
[Means for Solving the Problems]
In order to achieve the above object, a wavelet transform apparatus according to the invention of
[0022]
In order to achieve the above object, the invention according to
[0023]
In order to achieve the above object, a wavelet transform apparatus according to the invention of
[0024]
In order to achieve the above object, a wavelet transform device according to the invention of
[0025]
In order to achieve the above object, according to a ninth aspect of the present invention, in the wavelet transform device according to the first or second aspect, each of the plurality of memories is an independent memory having a number equal to the number of types of wavelet transform coefficients, and the filter unit. It comprises two independent filter units used for both horizontal processing and vertical processing.
[0026]
In order to achieve the above object, according to a tenth aspect of the present invention, there is provided the wavelet transform device according to the fifth aspect, wherein each of the memories and the buffer memory has the same number of independent memories as the number of types of wavelet transform coefficients. In addition, the filter unit includes two independent filter units used for both horizontal processing and vertical processing.
[0027]
In order to achieve the above object, the invention of
[0028]
In order to achieve the above object, according to a twelfth aspect of the present invention, in the wavelet transform device according to the fifth aspect, each memory of the plurality of memories and the buffer memory are summed up to the bit depth of all kinds of wavelet transform coefficients. The memory is characterized by having an equal bit depth.
[0032]
In order to achieve the above purpose,
[0033]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, in order to avoid complication of description, the same or similar reference numerals are used for corresponding parts in a plurality of drawings. Moreover, about the same or similar structure in several Example, it abbreviate | omits or simplifies suitably from related drawing, or uses drawing of another Example.
[0034]
<First embodiment>
FIG. 1 is a block diagram of an encoding / decoding apparatus according to a first embodiment of the present invention. This encoding / decoding device includes a
[0035]
The
[0036]
The
1+ (1/4) + (1/4) ^ 2 + (1/4) ^ 3 = 1 + 21/64
That is an increase of about 33%.
[0037]
The
[0038]
Hereinafter, the operation of this embodiment will be described with reference to the memory map shown in FIGS. 2 and 3 and the timing charts shown in FIGS.
[0039]
First, the encoding operation will be described. It is assumed that a start signal is input to the
[0040]
When the start signal is input at time t0 in FIG. 4, the register in the
[0041]
When image data of 32 pixels × 32 lines is input, the total number of read / write cycles necessary for
[0042]
Subsequently, the
[0043]
When image data of 32 pixels × 32 lines is input, the total number of read / write cycles necessary for 1V processing is 2048 cycles because there are two types of input to the
[0044]
As a result of the 1V processing, for example, as shown in FIG. 3, the SS coefficient is in the upper left quadrant of the memory mem1, the SD coefficient is in the lower left quadrant, the DS coefficient is in the upper right quadrant, and the DD coefficient is in the lower right quadrant. Are written respectively.
[0045]
Next,
[0046]
Subsequently, processing from time t4 to t6 is
[0047]
Next, the operation during decoding will be described. FIG. 5 is a timing chart at the time of decoding. At the time of decoding, frequency band signal data is input from the
[0048]
In FIG. 5, when a start signal is input at time t0,
[0049]
At each level, the number of output pixels is double the number of input pixels in both the horizontal and vertical directions. Therefore, for example, the time from time t0 to t1 is four times the time from time t2 to t3 or the time from time t2 to t3 with respect to the time from time t1 to t2. Therefore, the number of cycles necessary for the decoding operation is 4080 cycles as in the encoding.
[0050]
Note that the memory maps shown in FIGS. 2 and 3 are merely examples shown to make it easy to grasp the processing image, and take any form in consideration of ease of addressing or design. Try to be free. This is because the memories mem1 to mem4 are independent in each level of computation, and are storages for finally storing frequency band signals, and also function as buffer memories for temporarily storing the results of horizontal processing. This is because.
[0051]
<Second embodiment>
FIG. 6 is a block diagram showing a second embodiment of the present invention. However, the encoding unit is omitted, and only the wavelet transform unit is shown.
[0052]
The configuration of this embodiment is suitable for an IC. That is, in the first embodiment, the case where the most general memory (one type of address, that is, one having a common read address and write address) is used as the memories mem1 to mem4. A memory such as a memory that is relatively frequently used in an IC, in which a read address and a write address are independent and can be read and written simultaneously, is used. Accordingly, the memories mem1 to mem4 have two types of address inputs ra (dedicated address input at the time of reading) and wa (dedicated address input at the time of writing), and two types of enable inputs reb (dedicated enable bar at the time of reading) and web (write). And a data input i and a data output o.
[0053]
The control signal selection unit (s_mux) 111 outputs signals of ra1 to ra4, wa1 to wa4, reb1 to reb4, and web1 to web4 to the memories mem1 to mem4. The signals ra, wa, reb, and web that are the basis of these signals are input from the main control unit (main) 118 to the control
[0054]
The data selection unit (d_mux) 114 receives the output signals o1 to o4 of the memories mem1 to mem4 and the output signals sin, din, xin1, and xin2 of the filter unit (filter) 130, and the input signals to the memories mem1 to mem4. Input signals so, do, xo1, and xo2 to i1 to i4 and the filter unit (filter) 130 are output.
[0055]
Hereinafter, the operation at the time of encoding of this embodiment will be described based on the timing chart of FIG. The time scale is defined such that all image data (here, 32 pixels × 32 lines, total 1024 pixels) is input from data between times t0 and t1, for example. Some of the signals in the figure change in units of pixels, but since they cannot be drawn in units of pixels, they are simplified as follows. That is, X is a don't care signal, x = x is a signal having a bit depth, and a web or start signal is a signal with a cadence such as  ̄ | _ |  ̄ (other than x = x), A signal in which two high / low signals are drawn at the same time is a 1-bit signal.
[0056]
A start signal is input at time t0, and image data is input from data in synchronization therewith. The main control unit (main) 118 outputs wa, web, hb_mux, level_s_mux, hb_d_mux, and level_d_mux signals. The control signal selection unit (s_mux) 111 and the data selection unit (d_mux) 114 select input / output signals for the memory to be accessed based on the level_s_mux, hb_d_mux, and level_d_mux signals. In FIG. 36, level_s_mux, level_d_mux, hb_d_mux, and hb_d_mux are depicted as the same signal, but it should be noted that there may be a time lag in units of pixels. From time t0 to t1,
[0057]
[0058]
Next,
32x32x2 (H, V) + 16x16x2 + 8x8x2 + 4x4x2 = 2720 cycles
It becomes. However, even when multiple accesses were made, if it was possible at the same time, it was counted as one time. This number of times is ½ that of the prior art, and the number of accesses is 2/3 of that of the first embodiment.
[0059]
The operation at the time of decoding is in the reverse order to the operation described above, but this will be easily understood from the above description and the description related to the first embodiment, and the description will be omitted.
[0060]
<Third embodiment>
FIG. 7 is a block diagram showing a third embodiment of the present invention. The overall block configuration of the present embodiment is basically the same as that shown in FIG. 6, but the memories mem1 to mem4 and the
[0061]
In the present embodiment, the
[0062]
If attention is paid to each block of encoding main, es_mux and ed_mux, it will be understood that the configuration is the same as the configuration of FIG. Similarly, it will be understood that the configurations of the decoding dmain, ds_mux and dd_mux blocks are the same as those in FIG. The added main selection unit (m_mux) 120 simply switches the input or output of each block of es_mux and ed_mux and the input or output of each block of ds_mux and dd_mux in accordance with an external input signal dir. The added start / end control unit (se) 122 merely selects whether to operate the encoding block or the decoding block in accordance with external input signals start and dir. That is, the design of these two blocks is very easy and the circuit scale is very small. Therefore, the designer only needs to focus on the design of the three blocks 118e, 111e, and 114e for encoding, which are the main blocks, and the three blocks 118d, 111d, and 114d for decoding. In addition, since the blocks for encoding and decoding can be designed separately or independently, the design period and efficiency can be dramatically improved.
[0063]
<Fourth embodiment>
FIG. 8 is a block diagram showing a fourth embodiment of the present invention, and shows only the wavelet transform unit. The block configuration of the wavelet transform unit of this embodiment is basically the same as that of the first or second embodiment, but in this embodiment, the buffer memory 106 (hereinafter bmem) is independent of the memories mem1 to mem4. Is different). The buffer memory bmem has the same number of words as the memory mem1, and the write address and the read address are independent. Needless to say, wiring between the buffer memory bmem is added to the control
[0064]
The operation in this embodiment can be easily understood with reference to the timing charts of FIGS. That is, as shown in FIG. 4, in the first embodiment or the second embodiment, the writing of the S coefficient and the D coefficient as the result of the horizontal processing is performed recursively in the memories mem1 to mem4. Then, as shown in FIG. 9, the writing of the result of the horizontal processing is performed in the buffer memory bmem. Accordingly, the total number of cycles in the present embodiment is 2720 cycles in the case of image data of 32 pixels × 32 lines, as in the first and second embodiments, and a processing time that is ½ that of the prior art is sufficient. It will be understood.
[0065]
The buffer memory bmem is used for storing the S coefficient and the D coefficient as a result of the horizontal processing during the wavelet processing. However, there is no problem even if the buffer memory bmem is used in another block after the wavelet processing is completed. In other words, if a work memory is required in the encoding unit, this buffer memory bmem can be used as the work memory. Since the work memory is usually prepared in most cases, the configuration of this embodiment is suitable.
[0066]
Furthermore, this embodiment exhibits its effect when the most general memory described in the first embodiment is used for the memories mem1 to mem4. That is, it is not necessary to use a memory that is relatively frequently used in an IC and that has an independent read address and write address. A memory having an independent read address and write address has a disadvantage that its area is larger than that of the most common memory in which both addresses are independent because of its multi-function. According to the present embodiment, high-speed processing equivalent to that of the third embodiment can be realized with a minimum memory area.
[0067]
<Fifth embodiment>
According to the fifth embodiment of the present invention, in the same configuration as the fourth embodiment, as shown in FIG. 10, two filter units (filterH) 130h and a filter unit (filterV) 130v are prepared. Assigned exclusively for horizontal processing and the latter for dedicated vertical processing. Although omitted in FIG. 10, it should be noted that in this embodiment, the memories mem1 to mem4 and the buffer memory bmem all use memories having independent read addresses and write addresses.
[0068]
The operation of this embodiment will be described based on the timing chart of FIG. When the input of image data (data) is started at time t0, this is sequentially input to the filter unit 130h, and the obtained S coefficient and D coefficient are written in the buffer memory bmem. Horizontal processing of the first line (note that the lines and pixels are counted from 0th) is started from time t1, and horizontal processing of the second line is started from time t2. When the S or D coefficient of the first pixel in the second line is output, data for calculating the D coefficient in the vertical processing is prepared, and vertical processing using the filter 130v unit is also started. Here, the data for calculating the SS coefficient and the DS coefficient in the vertical processing is already aligned and output at the time when the S or D coefficient of the first pixel of the first line is output. Note that it describes the processing. Now, the image data is sequentially input in the raster order, and the S and D coefficients subjected to the horizontal processing are sequentially written in the buffer memory bmem, and simultaneously read in the vertical direction, and further subjected to the vertical processing at the same time SS, SD. , DS and DD coefficients are written. Such an operation is possible because the configuration includes two sets of filter units 130h and 130v.
[0069]
When processing image data of 32 pixels × 32 lines by simultaneous execution of the horizontal processing and vertical processing as described above, the total number of cycles in this embodiment is 1480 cycles, which is about 1 of the total number of cycles of the prior art. Because of / 4, a very high speed operation is possible.
[0070]
<Sixth embodiment>
FIG. 12 is a block diagram showing a sixth embodiment of the present invention. The block configuration of this embodiment is basically the same as that of the second embodiment, but in this embodiment, as shown in FIG. 12, three line memories 107s (line mem) for storing S coefficients are used. (S0), line mem (S1), line mem (S2)) and three line memories 107d (line mem (D0), line mem (D1), line mem (D2)) for storing D coefficients, Further, the data selection unit (d_mux) 114 includes signal lines for these line memories.
[0071]
The operation of the present invention will be described based on the timing chart of FIG. Input of image data (data) is started at time t0, and is input to the
[0072]
As long as the six line memories used in this embodiment can perform reading in parallel, any one such as a general register or a shift register may be used. When processing image data of 32 pixels × 32 lines, the total number of cycles in this embodiment is
(32x32x2) + (16x16x2) + (8x8x2) + (4x4x2) = 2720 cycles
It turns out that it becomes. The number of processing cycles is about half that of the prior art, and high-speed operation can be realized with a small circuit scale.
[0073]
<Seventh embodiment>
FIG. 14 is a block diagram showing a seventh embodiment of the present invention. The block configuration of this embodiment is basically the same as that of the sixth embodiment (FIG. 12), but this embodiment includes two filter units 130h and 130v as shown in FIG. And dedicated to vertical processing.
[0074]
The operation of this embodiment will be described based on the timing chart of FIG. When input of image data (data) is started at time t0, the S coefficient is written in line mem (S0) and the d coefficient is written in line mem (D0). When horizontal processing of the first line is started from time t1, the S coefficient written in line mem (S0) is sequentially shifted to line mem (S1). The same applies to the D coefficient of line mem (D0). When the horizontal processing of the first line is completed at time t2, data for calculating each frequency band signal in the vertical processing is prepared. After time t2, the horizontal processing is performed by the horizontal processing filter unit 130h, and the results are sequentially written in the line memories 107s and 107d. Reading is performed simultaneously with this writing, vertical processing is performed by the filter unit 130v dedicated to vertical processing, and the result is written to the memory mem1. This process is sequentially executed, and the
[0075]
As long as the six line memories used in this embodiment can perform reading in parallel, any one such as a general register or a shift register may be used. The above operation can be realized because two filter units are used. When processing image data of 32 pixels × 32 lines, since the total number of cycles in this embodiment is increased by 2 lines at each level, it will be apparent from FIG. 15 that it is 1480 cycles. This number of processing cycles is about ¼ of the processing time of the prior art, and a very high speed operation can be realized with a small circuit scale.
[0076]
<Eighth embodiment>
According to the eighth embodiment of the present invention, the basic block configuration is the same as that of the first embodiment or the second embodiment. However, as shown in FIG. , DS and DD are divided into four independent memories dedicated to coefficient data, and further, as shown in FIGS. 18 and 19, two filter units 130_1, which can be used for both horizontal processing and vertical processing, 130_2, and the difference is that each is used by switching input / output between horizontal processing and vertical processing.
[0077]
The operation of this embodiment will be described based on the memory map of FIG. 17, the connection diagrams of FIGS. 18 and 19, and the timing chart of FIG. FIG. 17 is a diagram showing a memory map. As preprocessing, raster data (external input image data or previous level SS coefficient data) as shown on the left side is dedicated to each of the four coefficients as shown on the right side in advance. It must be relocated on the memory. This rearrangement is performed according to the following rules. For example, in the case of
[0078]
The data rearranged in the four memories in the memory mem1 in this way is first connected as shown in FIG. 18 by the
[0079]
The above is the case of
[0080]
Next, the operation of this embodiment will be described based on the timing chart of FIG. When input of image data (data) is started at time t0, first, image data (raster data) is distributed and stored in four memories in the memory mem1 as shown in FIG. 17 (tr in the figure). Input of image data is completed at time t1, horizontal processing is performed by the connection shown in FIG. 18 until time t2, and then vertical processing is performed by the connection shown in FIG. 19 until time t3.
[0081]
The total number of cycles in the present embodiment is as follows when processing image data of 32 pixels × 32 lines.
32x32 + (16x16x3) + (8x8x3) + (4x4x3) + (2x2x2) = 1843 cycles
It becomes. This processing cycle number is about 1/3 of the processing time of the prior art, and a very high speed operation can be realized. The number of cycles excluding the time for data distribution performed prior to processing at each level is only 824 cycles.
[0082]
<Ninth embodiment>
According to the ninth embodiment of the present invention, the buffer memory bmem is provided in the same basic block configuration as in the eighth embodiment, as in the fourth embodiment, and the buffer memory bmem is also stored in the memories mem1 to mem4. As shown in FIG. 21, it is divided into four independent memories dedicated to SS, SD, DS, and DD coefficients as shown in FIG. However, each of the four memories constituting the buffer memory bmem has the same number of words as the memory mem1.
[0083]
The operation of this embodiment will be described based on the timing chart of FIG. When input of image data (data) is started at time t0, this data (raster data) is distributed and stored in four memories in the memory mem1 as in the case of the eighth embodiment (in the figure). tr). Input of image data (data) is completed at time t1, horizontal processing is performed until time t2, and the result is written in the buffer memory bmem. The operation at this time is the same as that in the eighth embodiment except that the horizontal processing result is written in the buffer memory bmem (see FIG. 18).
[0084]
Subsequently, data is read from the buffer memory bmem from time t2 to t3, and vertical processing is performed. For each coefficient, only the SS coefficient is written in the corresponding memory in the memory mem2, and the other three coefficients SD, DS, and DD are written in the corresponding memory in the memory mem1.
[0085]
The total number of cycles in this embodiment is when processing image data of 32 pixels × 32 lines.
32x2 + (16x16x2) + (8x8x2) + (4x4x2) + (2x2x2) = 1704 cycles
It can be seen from FIG. The number of processing cycles is less than 1/3 that of the prior art, and high-speed operation can be realized. The number of cycles excluding the time for first distributing data is only 680 cycles.
[0086]
<Tenth embodiment>
According to the tenth embodiment of the present invention, the basic block configuration is the same as the first embodiment, the second embodiment, the third embodiment, the sixth embodiment or the seventh embodiment, but at each level. As shown schematically in FIG. 23, each of the memories mem1 to mem4 corresponding to the number of words is ¼, and the bit depth is a bit depth required for each coefficient of SS, SD, DS, and DD. Equal to the sum. For example, when each coefficient of SS, SD, DS, and DD is 8 bits, the bit depth of each memory is 32 bits. Of course, even if the number of bits of each coefficient of SS, SD, DS, and DD is different, there is no problem as long as the sum of necessary bit depths is secured. The operation of the present embodiment can be represented by the same timing chart as in FIG. 20 when applied to the configuration of the eighth embodiment (FIG. 16), for example.
[0087]
According to the present embodiment, it is possible to reduce the memory size by collecting the memory locations separated for each frequency band signal into one memory location. This is because, in general, in the memory in the IC, when the number of words × bit depth is the same, the smaller the number of words, the smaller the area. Further, since the number of control signals such as addresses can be reduced to 1/4, there is an advantage that wiring is reduced, delay time is reduced, and noise is reduced.
[0088]
<Eleventh embodiment>
According to the eleventh embodiment of the present invention, in the same configuration as the fourth and ninth embodiments using the buffer memory bmem, not only the memories mem1 to mem4 but also the buffer memory bmem is the tenth embodiment. As described in the example, the word number is 1/4 and the bit depth is the sum of the required bit depths for the SS, SD, DS, and DD coefficients. FIG. 24 schematically shows such a state. Even if the number of bits of the SS, SD, DS, and DD coefficients is different, there is no problem as long as the sum of the necessary bit depths is secured.
[0089]
The operation of the present embodiment can be represented by the same timing chart as in FIG. 22 when applied to the configuration of the ninth embodiment (FIG. 21), for example. According to the present embodiment, the memory locations divided for each frequency band signal are combined into one memory location, so that the memory size including the buffer memory bmem can be reduced as described in the tenth embodiment. Further, there are advantages such as a reduction in delay time and noise due to a decrease in the number of control signals such as addresses.
[0090]
<Twelfth embodiment>
FIG. 25 is a block diagram showing a twelfth embodiment of the present invention. The
[0091]
That is, the wavelet transform unit module 100_level1 for
[0092]
The
[0093]
The timing chart of the operation of this embodiment is almost the same as that shown in FIG. 4 (for encoding) or FIG. 5 (for decoding). The operation during encoding will be described. When the start signal is input, the wavelet transform unit module 100_level1 performs horizontal processing on image data (data) input from the outside, and then executes vertical processing. When the
[0094]
Next, the operation during decoding will be described. When the dstart signal is input, the vertical processing is executed by the wavelet transform unit module 200_level4 on the
[0095]
According to this embodiment, it is not necessary to design while considering the entire operation over all levels, and only one basic module needs to be designed. By applying this design result to each level, it is possible to design the desired number of wavelet transform units, improving reliability and requesting design changes such as changing the data size or adding levels. Even in cases, it is possible to respond promptly.
[0096]
<Thirteenth embodiment>
FIG. 26 is a block diagram showing a thirteenth embodiment of the present invention. The
[0097]
The operation of the present embodiment can be represented by a timing chart almost similar to that shown in FIG. The operation during encoding will be described. When the start signal is input, in the wavelet transform unit module 100_level1, horizontal processing and vertical processing for image data input from the outside are executed substantially in parallel. When the
[0098]
Next, the operation during decoding will be described. When the dstart signal is input, the wavelet transform unit module 100_level4 executes the wavelet inverse transform vertical processing and then the horizontal processing. When the
[0099]
In the present embodiment, the processing speed can be made faster than in the twelfth embodiment, and in the same way as in the twelfth embodiment, the design is simplified, the reliability is improved, and the response to the design change request is accelerated. There are advantages.
[0100]
<14th embodiment>
FIG. 27 is a block diagram showing a fourteenth embodiment of the present invention. According to this embodiment, instead of the buffer memory bmemi in each wavelet transform unit module 100_leveli in the thirteenth embodiment, the three line memories 107s_leveli for temporarily holding the S coefficient and the D coefficient are temporarily held. Three line memories 107d_leveli are provided. Naturally, the control unit 100_leveli has input / output signals for these line memories. In FIG. 27, the internal configuration of the wavelet transform unit modules 100_level3 and 100_level4 is the same as that of the wavelet transform unit module 100_level1 or 100_level2, and is omitted, and only input / output signals for other modules or the outside are shown.
[0101]
The encoding timing chart of this embodiment is almost the same as FIG. When the start signal is input,
[0102]
The present embodiment has the same advantages as the seventh embodiment in addition to the same advantages as the twelfth embodiment.
[0103]
【The invention's effect】
As is clear from the above detailed description, the following effects can be obtained.
[0104]
According to the invention of
[0105]
According to the second aspect of the present invention, it is possible to simultaneously read and write the corresponding memory in each level of processing, thereby further speeding up the processing.
[0106]
According to the third aspect of the present invention, since the part constituting the control unit is functionally simple and the circuit scale is reduced, the design or design change of the control unit is further facilitated and the reliability can be enhanced.
[0107]
According to the invention of
[0108]
According to the invention of
[0109]
According to the invention of
[0110]
According to the invention of
[0111]
According to the invention of
[0112]
According to the invention of
[0114]
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a first embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a memory map for an S coefficient and a D coefficient in the first embodiment.
FIG. 3 is a diagram showing an example of a memory map for SS, SD, DS, and DD coefficients in the first embodiment.
FIG. 4 is a timing chart at the time of encoding in the first embodiment.
FIG. 5 is a timing chart at the time of decoding in the first embodiment.
FIG. 6 is a block diagram showing a configuration of a second exemplary embodiment of the present invention.
FIG. 7 is a block diagram showing a configuration of a third exemplary embodiment of the present invention.
FIG. 8 is a block diagram showing a configuration of a fourth exemplary embodiment of the present invention.
FIG. 9 is a timing chart at the time of encoding in the fourth embodiment.
FIG. 10 is a block diagram showing a configuration of a fifth exemplary embodiment of the present invention.
FIG. 11 is a timing chart at the time of encoding in the fifth embodiment.
FIG. 12 is a block diagram showing a configuration of a sixth embodiment of the present invention.
FIG. 13 is a timing chart at the time of encoding in the sixth embodiment.
FIG. 14 is a block diagram showing a configuration of a seventh exemplary embodiment of the present invention.
FIG. 15 is a timing chart at the time of encoding in the seventh embodiment.
FIG. 16 is a diagram showing a configuration of a memory in an eighth embodiment of the present invention.
FIG. 17 is an explanatory diagram of data rearrangement in the eighth embodiment.
FIG. 18 is a diagram showing connections during horizontal processing in the eighth embodiment.
FIG. 19 is a diagram showing connections during vertical processing in the eighth embodiment.
FIG. 20 is a timing chart at the time of encoding in the eighth embodiment.
FIG. 21 is a diagram showing a configuration of a buffer memory in a ninth embodiment of the present invention.
FIG. 22 is a timing chart at the time of encoding in the ninth embodiment.
FIG. 23 is a diagram showing a memory configuration in a tenth embodiment of the present invention.
FIG. 24 is a diagram showing a configuration of a memory and a buffer memory in an eleventh embodiment of the present invention.
FIG. 25 is a block diagram showing a configuration of a twelfth embodiment of the present invention.
FIG. 26 is a block diagram showing a configuration of a thirteenth embodiment of the present invention.
FIG. 27 is a block diagram showing a configuration of a fourteenth embodiment of the present invention.
FIG. 28 is a block diagram showing a conventional technique.
FIG. 29 is a timing chart at the time of encoding in the prior art.
FIG. 30 is an explanatory diagram of a calculation method of horizontal processing and vertical processing of wavelet transform.
FIG. 31 is a diagram illustrating an example of a memory map of image data.
FIG. 32 shows an example of a memory map for level 1 S and D coefficients.
FIG. 33 is a diagram illustrating an example of a memory map for
FIG. 34 shows an example of a memory map for level 2 S and D coefficients.
FIG. 35 is a diagram illustrating an example of a memory map for
FIG. 36 is a timing chart at the time of encoding in the second embodiment of the present invention.
[Explanation of symbols]
100 Wavelet transform unit
100_level1 ~ 100_level4 wavelet transform unit module
102_1 to 102_4 memory (mem1 to mem4)
106 Buffer memory (bmem)
107s, 107s_level1, 107s_level2 S coefficient line memory
107d, 107d_level1, 107d_level2 D coefficient line memory
110, 110_level1 to 110_level4 control unit
111 Control signal selector (s_mux)
111e Encoding dedicated control signal selection unit (es_mux block)
111d Dedicated decoding control signal selection unit (ds_mux block)
114 Data selection part
114e Encoding dedicated data selection part (ed_mux block)
114d Dedicated decoding data selection unit (dd_mux block)
118 Main control unit
118e Encoding main control unit (emain block)
118d Decode-dedicated main control unit (dmain block)
122 Start / end control unit (se block)
130, 130_1, 130_2 filter section
130h, 130h_level1 to 130h_level4 Horizontal processing filter section
130v, 130v_level1 to 130v_level4 Vertical processing filter section
130_level1 ~ 130_level4 filter part
200 Coding unit
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10437798A JP3655088B2 (en) | 1997-12-19 | 1998-04-15 | Wavelet transform device and encoding / decoding device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35148597 | 1997-12-19 | ||
JP9-351485 | 1997-12-19 | ||
JP10437798A JP3655088B2 (en) | 1997-12-19 | 1998-04-15 | Wavelet transform device and encoding / decoding device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11239060A JPH11239060A (en) | 1999-08-31 |
JP3655088B2 true JP3655088B2 (en) | 2005-06-02 |
Family
ID=26444872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10437798A Expired - Fee Related JP3655088B2 (en) | 1997-12-19 | 1998-04-15 | Wavelet transform device and encoding / decoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3655088B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4356031B2 (en) | 2007-05-17 | 2009-11-04 | ソニー株式会社 | Information processing apparatus and method |
JP4356030B2 (en) | 2007-05-17 | 2009-11-04 | ソニー株式会社 | Information processing apparatus and method |
JP4356029B2 (en) | 2007-05-17 | 2009-11-04 | ソニー株式会社 | Information processing apparatus and method |
CN107888164A (en) * | 2017-12-15 | 2018-04-06 | 首都师范大学 | A kind of wavelet decomposition transform system and implementation method based on FPGA |
-
1998
- 1998-04-15 JP JP10437798A patent/JP3655088B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11239060A (en) | 1999-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7031536B2 (en) | Signal processing apparatus and method, program, and storage medium | |
JP4356033B2 (en) | Image data processing apparatus and method | |
US6996593B2 (en) | Filter processing apparatus and its control method, program, and storage medium | |
US5706220A (en) | System and method for implementing the fast wavelet transform | |
US6798927B2 (en) | Conversion of pixel data for interpolation or image reduction, using a small memory | |
JP3655088B2 (en) | Wavelet transform device and encoding / decoding device | |
US7039242B2 (en) | Image processing device and image processing method | |
US5764373A (en) | Image data compression-expansion circuit | |
JP2738136B2 (en) | Blocking device | |
JP2001025018A (en) | Wavelet transformer, encoding/decoding device, wavelet transformation processing method and recording medium | |
US5978508A (en) | Two-dimensional inverse discrete cosine transformation circuit for MPEG2 video decoder | |
JP4223795B2 (en) | Wavelet transform apparatus and wavelet transform method | |
JP3660136B2 (en) | Encoding / decoding device | |
JP2002101310A (en) | Filter processing unit and method | |
JP3461899B2 (en) | Image conversion device | |
KR100723043B1 (en) | Apparatus and method for discrete wavelet transforming image data | |
JPS6039988A (en) | Picture signal converter | |
JP3291070B2 (en) | Data transposition equipment | |
JP2934425B1 (en) | Image data compression device and image data decompression device | |
JPH07234863A (en) | Two-dimensional orthogonal transformation device | |
JP4117866B2 (en) | Wavelet transform device and encoding / decoding device | |
JP2813270B2 (en) | Multi-screen television receiver and its memory device | |
JPH1040366A (en) | Image processor | |
JP4102165B2 (en) | Wavelet transform apparatus and wavelet transform method | |
JPH05328384A (en) | Picture data conversion circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050204 |
|
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: 20050301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050302 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090311 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100311 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110311 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |