以下、図を参照して本発明の実施の形態について説明する。
図1は、本発明を適用したウェーブレット変換装置の一実施形態に係る構成例を示す図である。このウェーブレット変換装置1は、入力された画像信号に対して、水平方向のフィルタリングと垂直方向のフィルタリングを行いながら、低域成分を、所定の分割レベル(図1の例の場合、分割レベル4)まで階層的に分割する帯域分析装置である。
図1のウェーブレット変換装置1は、水平分析フィルタ部11、レベル1バッファ12、レベル2バッファ13、レベル3バッファ14、レベル4バッファ15、セレクタ16、Y係数バッファ17、垂直分析フィルタ部18、水平分析フィルタ部19、および制御部20により構成されている。
水平分析フィルタ部11には、画像信号D10が入力される。水平分析フィルタ部11は、画像信号D10に対して、分割レベル1の水平方向の低域分析フィルタリングおよび高域分析フィルタリングを行い、水平分析フィルタリング結果である、低域成分の係数と高域成分の係数からなる周波数成分の係数(以下、適宜、低域成分、高域成分、周波数成分とも称する)D11を生成する。
このとき、水平分析フィルタ部11においては、図示せぬ内蔵メモリ(またはレジスタ)に展開されるベースバンド上の隣接する位置にある画素のデータが読み出されながら、水平方向の低域分析フィルタリングおよび高域分析フィルタリングが行われる。
レベル1バッファ12は、分割レベル1の水平分析フィルタリングの結果を記憶、保持する。すなわち、レベル1バッファ12には、水平分析フィルタ部11による分割レベル1の水平分析フィルタリングの結果の周波数成分(低域成分と高域成分)の係数D11が記憶、保持される。そして、レベル1バッファ12に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数D12は、セレクタ16を介して読み出される。
レベル2バッファ13は、分割レベル2の水平分析フィルタリングの結果を記憶、保持する。すなわち、レベル2バッファ13には、水平分析フィルタ部19による分割レベル2の水平分析フィルタリングの結果の周波数成分(低域成分と高域成分)の係数D20が記憶、保持される。そして、レベル2バッファ13に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数D13は、セレクタ16を介して読み出される。
レベル3バッファ14は、分割レベル3の水平分析フィルタリングの結果を記憶、保持する。すなわち、レベル3バッファ14には、水平分析フィルタ部19による分割レベル3の水平分析フィルタリングの結果の周波数成分(低域成分と高域成分)の係数D21が記憶、保持される。そして、レベル3バッファ14に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数D14は、セレクタ16を介して読み出される。
レベル4バッファ15は、分割レベル4の水平分析フィルタリングの結果を記憶、保持する。すなわち、レベル4バッファ15には、水平分析フィルタ部19による分割レベル4の水平分析フィルタリングの結果の周波数成分(低域成分と高域成分)の係数D22が記憶、保持される。そして、レベル4バッファ15に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数D15は、セレクタ16を介して読み出される。
セレクタ16は、垂直分析フィルタ部18の制御のもと、レベル1バッファ12乃至レベル4バッファ15のうち、対応する分割レベルのバッファからの出力を選択し、選択した出力を、係数D16として、垂直分析フィルタ部18に出力する。
係数バッファ17は、垂直分析フィルタリング途中に生成される係数の一部を記憶、保持する。すなわち、係数バッファ17には、垂直分析フィルタ部18による垂直分析フィルタリング途中に生成される係数のうち、次の垂直分析フィルタリングの処理で必要な係数が、途中演算用の係数として記憶、保持される。そして、次の垂直分析フィルタリングの際に垂直分析フィルタ部18により読み出される。
垂直分析フィルタ部18は、セレクタ16からの所定の垂直ライン分の係数D16が入力されると、係数バッファ17から途中演算用の係数(すなわち、今の垂直分析フィルタリングの際に必要な係数)D18を読み出し、係数D16および係数D18を用いて、垂直分析フィルタリングを行う。そして、垂直分析フィルタ部18は、垂直分析フィルタリング結果の周波数成分のうち、水平方向も垂直方向も低域である低域成分の係数D19のみを水平分析フィルタ部19に出力し、それ以外の高域成分D23をウェーブレット変換装置1の図示せぬ外部(以下、単に外部と称する)に出力する。
水平分析フィルタ部19は、処理する対象の周波数成分の分割レベルが異なるだけであり、基本的に、水平分析フィルタ部11と同様に構成される。すなわち、水平分析フィルタ部19においては、図示せぬ内蔵メモリ(またはレジスタ)に展開されるベースバンド上の隣接する位置にある係数D19が読み出されながら、係数D19に対しての水平方向の低域分析フィルタリングおよび高域分析フィルタリングが行われる。
そして、水平分析フィルタ部19は、水平分析フィルタリング結果である周波数成分(低域成分と高域成分)D20乃至D22のいずれかを、対応するレベルのバッファ(レベル2バッファ13乃至レベル4バッファ15のうちのいずれか)に記憶、保持させる。
制御部20は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)を含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット変換装置1の各部の処理を制御する。
なお、レベル1バッファ12乃至レベル4バッファ15の詳細な構成については、図10を参照して後述する。また、係数バッファ17の詳細な構成については、図11を参照して後述する。
次に、図2のフローチャートを参照して、図1のウェーブレット変換装置1の動作について説明する。すなわち、図2の例においては、ウェーブレット変換装置1により実行されるウェーブレット変換処理が示されている。
外部(例えば、後述する図27のビデオカメラ部303など)から、水平分析フィルタ部11に画像信号D10が入力される。ステップS12において、水平分析フィルタ部11は、画像信号D10に対して、分割レベル1の水平分析フィルタリングを行う。
すなわち、水平分析フィルタ部11は、図示せぬ内蔵メモリ(またはレジスタ)を有しており、内蔵メモリには、図3に示される番号順に、入力される画像信号の画素が順に展開されていく。なお、図3の例においては、四角で示される画素が順に展開された結果のベースバンド画像が示されている。
水平分析フィルタ部11は、内蔵メモリに展開されたベースバンド上の隣接する位置にある所定の数(図3の場合、5コラム(サンプル)数)の画素のデータを、位置をずらしながら読み出し、水平方向の低域分析フィルタリングおよび高域分析フィルタリングを順番に行う。
水平方向のデータは、メモリの番地に容易に展開しやすい。したがって、メモリからデータを読み出しながら、水平分析フィルタ部11においては、水平分析フィルタリングが順番に実行される。なお、水平方向の低域分析フィルタリングおよび高域分析フィルタリングの詳細については、図7を参照して後述する。
水平分析フィルタ部11は、ステップS12において、分割レベル1の水平分析フィルタリング結果の周波数成分の係数D11を、対応するレベルのバッファ(いまの場合、レベル1バッファ12)に記憶させる。
このとき、水平分析フィルタ部11は、図4に示されるように、水平分析フィルタリング結果である高域成分(H)と低域成分(L)をインターリーブさせて、レベル1バッファ12に記憶させる。
なお、従来においては、水平分析フィルタリングの結果は、低域と高域の両成分に分割されて、バッファに記憶されていた。しかしながら、従来のように、低域成分と高域成分をバッファの別のアドレスにマッピングするには、それを分配するためのコントローラが別途必要になる。
これに対して、本発明の例が示される図4の例においては、レベル1バッファ12に、高域成分(H)と低域成分(L)が交互に記憶されている。すなわち、水平分析フィルタ部11により、水平分析フィルタリング結果である高域成分と低域成分がインターリーブされて、レベル1バッファ12に記憶されるので、このレベル1バッファ12に記憶されている係数を読み出す際に、レベル1バッファ12の先頭から順番に読み出すだけでよく、制御を単純(シンプル)にすることができる。
図2に戻り、例えば、図4に示されるレベル1バッファ12に水平分析フィルタリング結果の周波数成分の係数が、垂直分析フィルタリングを実行できるだけの所定の垂直ライン分(図4の場合、3ライン分)溜まると、ステップS13において、垂直分析フィルタ部18は、セレクタ16がレベル1バッファ12の出力を選択するように制御することで、必要な垂直ライン分の周波数成分の係数をレベル1バッファ12から読み出させる。読み出された周波数成分の係数は、係数D16として、セレクタ16を介して、垂直分析フィルタ部18に入力される。
垂直分析フィルタ部18は、ステップS14において、1つ前の周波数係数を求める処理において係数バッファ17に記憶された途中演算用の係数D18を読み出し、ステップS15において、3ライン分の周波数成分の係数D16、および途中演算用の係数D18を用いて、対応する分割レベル(いまの場合、分割レベル1)の垂直分析フィルタリングを行う。なお、垂直方向の低域分析フィルタリングおよび高域分析フィルタリングの詳細については、図9を参照して後述する。
垂直分析フィルタ部18は、ステップS15において、分割レベル1の垂直分析フィルタリング途中(垂直分析フィルタリングの演算過程)に生成される係数の一部(すなわち、次回の垂直分析フィルタリングに必要な係数)を、途中演算用の係数D17として係数バッファ17に記憶させる。
この分割レベル1の垂直分析フィルタリングの結果(すなわち、分割レベル1の分析フィルタリングの結果)、図5に示されるように、低域成分(1LL)の係数および高域成分(1HH,1LH,1HH)の係数からなる4つの周波数成分の係数が生成される。なお、図5の例における四角は、1つの係数を示し、「L」および「H」の順序は、前側が水平分析フィルタリングを行った結果の帯域(低域または高域)を示し、後側が垂直分析フィルタリングを行った結果の帯域を示す。また、「L」および「H」の前の数字は分割レベルを表す。
以上が分割レベル1の分析フィルタリングであり、その結果、垂直分析フィルタ部18においては、低域成分(1LL)D19と高域成分(1HL,1LH,1HH)D23が生成される。なお、これらのうち、各低域成分(1LL) だけは設定されている分割レベル(最終レベル)まで再度分析されるが、高域成分は、通常それ以上に分析されない。すなわち、低域成分は、最終レベルまでさらに分割されるので、最終レベルは、最低域を出力する最低域レベルとも言える。
ステップS17において、垂直分析フィルタ部18は、分析フィルタリングが、設定されている分割レベルの最終レベル(図1の場合、分割レベル4)まで終了したか否かを判定する。分割レベル1の場合、まだ、最終レベルまで終了していないので、処理は、ステップS18に進む。
ステップS18において、垂直分析フィルタ部18は、高域成分(1HL,1LH,1HH)D23を、外部(例えば、後述する図23の量子化部112)に出力する。
一方、低域成分(1LL)D19は、水平分析フィルタ部19に出力される。ステップS19において、水平分析フィルタ部19は、内蔵するメモリに展開される低域成分D19の係数に対して、対応する分割レベル(いまの場合、分割レベル2)の水平分析フィルタリング(水平方向の低域分析フィルタリングおよび高域分析フィルタリング)を行い、水平分析フィルタリング結果である低域成分と高域成分を生成する。なお、ステップS19の処理は、処理対象の周波数成分の分割レベルが異なるだけであり、上述したステップS13の処理と基本的に同様の処理である。
ステップS19の後、処理は、ステップS12に戻り、それ以降の処理が繰り返される。すなわち、ステップS12において、水平分析フィルタ部19は、水平分析フィルタリング結果の周波数成分(低域成分と高域成分)の係数D20を、図4を参照して上述したように、対応するレベルのバッファ(いまの場合、レベル2バッファ13)に記憶、保持させる。
そして、レベル2バッファ13に水平分析フィルタリング結果の周波数成分の係数が、垂直分析フィルタリングを実行できるだけの所定の垂直ライン分溜まると、ステップS13において、所定の垂直ライン分の係数D16がレベル2バッファ13から読み出され、セレクタ16を介して、垂直分析フィルタ部18に入力される。そして、ステップS14において、係数バッファ17から途中演算用の係数D18が読み出され、ステップS15において、所定の垂直ライン分の係数D16と途中演算用の係数D18を用いて、分割レベル2の垂直分析フィルタリングが行われる。
ステップS16において、分割レベル2の垂直分析フィルタリング途中の係数の一部の係数D17が、係数バッファ17に記憶され、レベル2の垂直分析フィルタリングの結果、低域成分(2LL)および高域成分(2HH,2LH,2HH)からなる4つの周波数成分が生成され、ステップS17において、最終レベルまで終了していないと判定され、ステップS18において、高域成分(2HH,2LH,2HH)D23が外部に出力される。
そして、ステップS19において、低域成分(2LL)D19に対して、分割レベル2の水平分析フィルタリングが行われて、水平分析フィルタリング結果である低域成分と高域成分D21が生成され、再度、処理は、ステップS12に戻り、生成された低域成分と高域成分D21が、レベル3バッファ14に記憶、保持され、それ以降の処理が予め設定された分割レベルの最終レベルまで繰り返される。
以上の一連の処理が、予め設定された分割レベルの最終レベル(分割レベル4)の垂直分析フィルタリング途中の係数の記憶まで同様に行われる。その後、ステップS17において、最終レベルまで終了したと判定され、処理は、ステップS20に進む。
ステップS20において、垂直分析フィルタ部18は、最終レベルの周波数成分 (4LL,4HL,4LH,4HH)D23を、外部に出力する。これにより、分割レベル4の画像信号のウェーブレット変換は終了される。
以上のように、図1のウェーブレット変換装置1においては、レベル1から所定のレベル数までの分割レベル毎のバッファを備え、水平分析フィルタリングを行いながら、水平分析フィルタリングの結果を、分割レベル毎のバッファに記憶させている。したがって、この水平分析フィルタリングの結果を、分割レベル毎のバッファから読み出しながら、垂直方向のフィルタリングを行うことができる。すなわち、水平方向と垂直方向のフィルタリングを同時並行的に動作させることができる。
これにより、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、図1のウェーブレット変換装置1においては、レベル1から所定のレベル数までの分割レベル毎のバッファとともに、係数バッファを配置し、垂直方向の分析フィルタリングの際に、次回の処理に必要な係数を保持しておき、その係数を次回の垂直分析フィルタリングの際に読み出して実行するようにしたので、特許文献1のように、外部にメモリを構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
次に、上述した分析フィルタリングにおける演算方法について具体的に説明する。分析フィルタリングにおける演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets.”, Appl. Comput. Harmon. Anal., vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
図6は、JPEG(Joint Photographic Experts Group)2000規格でも採用されている9×7分析フィルタのリフティング構成を示している。この9×7分析フィルタに対してリフティング技術を適用したときの分析フィルタリングについて説明する。
図6の例において、1段目(最上段)は、入力画像のサンプル群(画素列)を示し、2,3段目は、それぞれステップA1およびステップA2の処理で生成される成分(係数)を示す。また、4段目は、ステップA3の処理で生成される高域成分出力を示し、5段目は、ステップA4の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタリングで得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印(■)が偶数番目のサンプルまたはライン、丸印(●)が奇数番目のサンプルまたはラインとする。
9×7分析フィルタに対してリフティング技術を適用した分析フィルタリングにおいては、ステップA3の処理で高域成分が得られ、ステップA4の処理で低域成分が得られる。なお、ステップA1乃至ステップA4の処理は、次の式(1)乃至式(4)で表される。
このように、リフティング技術を適用した分析フィルタリングにおいては、ステップA1およびA2の処理が行われ、ステップA3で、高域成分の係数が生成された後に、ステップA4で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式(1)乃至式(4)に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、ウェーブレット変換装置1においても、水平分析フィルタリングおよび垂直分析フィルタリングに、このリフティング技術を適用する。
まず、水平分析フィルタ部11および19により実行される水平分析フィルタリングの処理について具体的に説明する。図7は、図2を参照して上述したように、水平方向の係数群に対しての水平分析フィルタリングを、図6のリフティング構成により実行する場合の例を示している。
図7の例においては、入力される水平方向の係数に対して、図6で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域成分の係数(以下、高域係数とも称する)と低域成分の係数(以下、低域係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列(コラム)番号を示している。
さらに、上から1段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について上から順に説明する。図7の上段には、水平方向にコラム番号4乃至6の3コラムの係数が入力されて、水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。
この水平リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、コラム番号0乃至4の4コラムの係数の入力が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号5および6の2コラムの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるコラム番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号4乃至6の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々3つの係数であるので、水平分析フィルタ部11および水平分析フィルタ部20に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応できる。
したがって、1番目の水平リフティング演算においてラッチされていた太線実線で示される3つの係数と、入力されたコラム番号4乃至6の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
コラム番号6の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号6乃至8の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図7の下段に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号7および8の2コラムの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるコラム番号6の係数も必要であることがわかる。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でフリップフロップにラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号6乃至8の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタリングが完了される。
なお、以上においては、リフティング構成による1ライン分の水平分析フィルタリングの例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を、図8を参照して説明する。なお、図8において、図6および図7と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
図8の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
図中左から順に説明すると、先頭の入力ライン0における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されている。このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
入力ライン1しか図示されていないが、入力ライン1乃至入力ラインnに関しても同様である。すなわち、先頭の入力ライン1における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されており、このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
そして、図8の右側に示すように、入力ライン0の水平フィルタリングの結果の1乃至11が付された係数は、上から1段目に、手前から奥への水平方向に並べて展開される。入力ライン1の水平フィルタリングの結果の1乃至11が付された係数は、上から2段目に、手前から奥への水平方向に並べて展開される。入力ライン2の水平フィルタリングの結果の係数は、上から3段目に、手前から奥への水平方向に並べて展開される。
以上のように、各入力ライン0乃至入力ラインnに対しての水平フィルタリングの結果の係数が、図8の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタリングの結果の1乃至11が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる。
次に、垂直分析フィルタ部18により実行される垂直分析フィルタリングについて具体的に説明する。図9は、水平分析フィルタリングの結果の係数を、図3を参照して上述したように垂直方向に並べ、垂直方向の分析フィルタリングを、図6のリフティング構成により実行する場合の例を示している。
なお、この図は、図8の右側に概念的に示した水平方向に展開されて並ぶ係数1つに着目したものであり、実際の2次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分(サブバンド)の水平方向の係数の個数だけ、垂直方向の分析フィルタリングの計算が必要になることは自明である。
図9の例においては、垂直方向の係数に対して、図6で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
さらに、左から1列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について左から順に説明する。図9の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
この垂直リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、ライン番号0乃至4の4ラインの係数が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号5および6の2ラインの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるライン番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号4乃至6の3ラインの係数の入力が必要であり、さらに、1番目の垂直リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、図1の係数バッファ17に記憶しておく必要がある。なお、このとき、垂直方向の3ラインの係数は、図1の対応するレベルのバッファから、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが2であれば、レベル2バッファ13から係数が読み出される。
したがって、1番目の垂直リフティング演算で係数バッファ17に記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出され入力されるライン番号4乃至6の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、係数バッファ17に記憶される。
ライン番号6の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号6乃至8の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図9の右側に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号7および8の2ラインの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるライン番号6の係数も必要であることがわかる。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で係数バッファ17に記憶されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号6乃至8の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、係数バッファ17に記憶される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
図10は、水平分析フィルタリング結果の係数が記憶される図1のレベル1バッファ12乃至レベル4バッファ15の構成例を示している。
レベル1バッファ12は、水平分析フィルタ部11から入力され、垂直分析フィルタ部18により読み出される1ライン分の係数をそれぞれ記憶するレベル1バッファ12−1およびレベル1バッファ12−2により構成される。
すなわち、レベル1バッファ12−2は、水平分析フィルタ部11からの1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル1バッファ12−1に転送する。レベルバッファ12−1は、レベル1バッファ12−2からの1ライン分の係数を記憶する。なお、レベル1バッファ12−1においては、記憶していた1ライン分の係数は、次の1ラインが入力される際に上書きされる。
レベル2バッファ13は、水平分析フィルタ部19から入力され、垂直分析フィルタ部18により読み出される1ライン分の係数をそれぞれ記憶するレベル2バッファ13−1乃至レベル2バッファ13−3により構成される。
すなわち、レベル2バッファ13−3は、水平分析フィルタ部19からの1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル2バッファ13−2に転送する。レベル2バッファ13−2は、レベル2バッファ13−3の1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル2バッファ13−1に転送する。レベル2バッファ13−1は、レベル2バッファ13−2からの1ライン分の係数を記憶する。なお、レベル2バッファ13−1においては、記憶していた1ライン分の係数は、次の1ラインが入力される際に上書きされる。
レベル3バッファ14は、水平分析フィルタ部19から入力され、垂直分析フィルタ部18により読み出される1ライン分の係数をそれぞれ記憶するレベル3バッファ14−1乃至レベル3バッファ14−3により構成される。
すなわち、レベル3バッファ14−3は、水平分析フィルタ部19からの1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル3バッファ14−2に転送する。レベル3バッファ14−2は、レベル3バッファ14−3の1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル3バッファ14−1に転送する。レベル3バッファ14−1は、レベル3バッファ14−2からの1ライン分の係数を記憶する。なお、レベル3バッファ14−1においては、記憶していた1ライン分の係数は、次の1ラインが入力される際に上書きされる。
レベル4バッファ15は、水平分析フィルタ部19から入力され、垂直分析フィルタ部18により読み出される1ライン分の係数をそれぞれ記憶するレベル4バッファ15−1乃至レベル4バッファ15−3により構成される。
すなわち、レベル4バッファ15−3は、水平分析フィルタ部19からの1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル4バッファ15−2に転送する。レベル4バッファ15−2は、レベル4バッファ15−3の1ライン分の係数を記憶し、次の1ラインが入力される際に、記憶していた1ライン分の係数を、レベル4バッファ15−1に転送する。レベル4バッファ15−1は、レベル4バッファ15−2からの1ライン分の係数を記憶する。なお、レベル4バッファ15−1においては、記憶していた1ライン分の係数は、次の1ラインが入力される際に上書きされる。
これらのバッファ構成について詳しく説明する。図9を参照して上述したように、垂直分析フィルタリングに、9×7ウェーブレット変換フィルタのリフティング構成が用いられることで、対応する分割レベルのバッファには、3ライン分の係数を記憶するバッファ(例えば、レベル2バッファ13−1乃至レベル2バッファ13−3)が必要となる。
ただし、レベル1バッファ12においては、最初のラインはバッファに溜めることなく、水平方向の分析フィルタリングの結果を、即座に垂直分析フィルタ部18に出力する構成を取れるため、2ライン分のレベル1バッファ12−1およびレベル1バッファ12−2のみでよい。
また、例えば、図9のP1やP2の係数を求めるため、垂直リフティング演算の際、すでに使用したラインの係数も、次の垂直リフティング演算に必要になる。したがって、対応するレベルのバッファの内部では、上述したように、1つのラインの係数用のバッファに記憶されている係数を、隣接するラインの係数用のバッファに、次々と転送していく構成となる。
以上のように、各レベルのバッファには、多くとも3ライン分の係数(レベル1バッファ12については2ライン分の係数)を記憶しておけばよい。したがって、各レベルのバッファに必要な記憶容量は、例えば、入力画像の解像度が1920×1080(通称フルHDTV)の場合には、以下のように算出される。ここで、Nは、係数のビット精度(例えば、16)を表す。
(1)レベル1バッファ12の場合
レベル1バッファ12−1に必要な記憶容量 = 1920×Nビット
レベル1バッファ12−2に必要な記憶容量 = 1920×Nビット
(2)レベル2バッファ13の場合
レベル2バッファ13−1に必要な記憶容量 = 960×Nビット
レベル2バッファ13−2に必要な記憶容量 = 960×Nビット
レベル2バッファ13−3に必要な記憶容量 = 960×Nビット
(3)レベル3バッファ14の場合
レベル3バッファ14−1に必要な記憶容量 = 480×Nビット
レベル3バッファ14−2に必要な記憶容量 = 480×Nビット
レベル3バッファ14−3に必要な記憶容量 = 480×Nビット
(4)レベル4バッファ15の場合
レベル4バッファ15−1に必要な記憶容量 = 240×Nビット
レベル4バッファ15−2に必要な記憶容量 = 240×Nビット
レベル4バッファ15−3に必要な記憶容量 = 240×Nビット
ここで、例えば、N=16として、原画像のビット精度=12ビットとして計算すると、
原画像のデータ量 = 1920×1080×12ビット = 24,883,200ビット
上記のデータ量 = (1920×2+960×3+480×3+240×3)×16ビット
= 142,080ビット
したがって、142,080 ÷ 24,883,200 = 0.0057 (略175分の1)
以上のように、原画像のデータサイズから較べると、175分の1という遥かに小さいメモリ容量を各レベルのバッファに用意しておけばよいので、外部メモリを用いることなく、ウェーブレット変換装置1における内部のメモリとしてレベル1バッファ12乃至レベル4バッファ15を構成することができる。
図11は、垂直分析フィルタリング過程で生成される係数の一部が記憶される図1の係数バッファ17の構成例を示している。
係数バッファ17は、レベル1バッファ31−1乃至31−3、レベル2バッファ32−1乃至32−3、レベル3バッファ33−1乃至33−3、レベル4バッファ34−1乃至34−4、およびセレクタ35−1乃至35−3により構成され、図9を参照して上述したように、垂直リフティング演算の過程で生成される途中演算用の3つの係数(すなわち、次の垂直リフティング演算に必要な3つの係数)が記憶される。
レベル1バッファ31−1乃至31−3は、レベル1の垂直リフティング演算の過程で生成される3つの係数をそれぞれ記憶する。レベル2バッファ32−1乃至32−3は、レベル2の垂直リフティング演算の過程で生成される3つの係数をそれぞれ記憶する。レベル3バッファ33−1乃至33−3は、レベル3の垂直リフティング演算の過程で生成される3つの係数をそれぞれ記憶する。レベル4バッファ34−1乃至34−3は、レベル4の垂直リフティング演算の過程で生成される3つの係数をそれぞれ記憶する。
セレクタ35−1は、垂直分析フィルタ部18の制御のもと、レベル1バッファ31−1、レベル2バッファ32−1、レベル3バッファ33−1、レベル4バッファ34−1のうち、対応する分割レベルのバッファを選択し、選択したバッファから対応する分割レベルの係数を読み出す。
セレクタ35−2は、垂直分析フィルタ部18の制御のもと、レベル1バッファ31−2、レベル2バッファ32−2、レベル3バッファ33−2、レベル4バッファ34−2のうち、対応する分割レベルのバッファを選択し、選択したバッファから対応する分割レベルの係数を読み出す。
セレクタ35−3は、垂直分析フィルタ部18の制御のもと、レベル1バッファ31−3、レベル2バッファ32−3、レベル3バッファ33−3、レベル4バッファ34−3のうち、対応する分割レベルのバッファを選択し、選択したバッファから対応する分割レベルの係数を読み出す。
セレクタ35−1乃至35−3からの3つの係数は、係数D18として、垂直分析フィルタ部18に入力される。
なお、図9の上段において、2番目の垂直リフティング演算で記憶される一点鎖線3つの係数と、下段において、3番目の垂直リフティング演算で記憶される一点鎖線3つの係数は、同一の係数ではない。したがって、図10の各レベルのバッファのように係数の転送を行う必要はなく、係数バッファ17を構成する各バッファは、単純に過去の係数に、新しい係数を上書きする構成とされる。
以上のように、係数バッファ17には、多くともレベル毎の3つの係数しか記憶しておく必要がないので、比較的少ないメモリで構成できる。なお、各レベルのバッファも、上述したように、小さいメモリ容量で構成することができる。したがって、外部メモリを用いることなく、ウェーブレット変換装置1における内部のメモリとしてレベル1バッファ12乃至レベル4バッファ15、および係数バッファ17を構成することができる。
これにより、外部にメモリを構成することが必要なくなるので、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
ところで、上記説明においては、一般の画像信号を用いて、図1のウェーブレット変換装置1の構成や動作を説明したが、次に、動画像であるビデオ信号がウェーブレット変換装置1に入力される場合について説明する。
ビデオ信号は、通常規格で定められており、例えば、現在我々が視聴しているテレビジョン放送の規格は、NTSC(National Television Standards Committee)方式である。また、HDTV方式は、米国の規格化団体SMPTE(The Society of Motion Picture and Television Engineers)によって、SMPTE274Mという規格番号で標準化されている。ここでは、HDTV方式(1920×1080の解像度)を用いて説明する。
図12は、HDTV方式のビデオ信号のデータの構成要素を示している。ビデオ信号のうち、輝度成分Yの実サンプルデータ数は、1ライン当り1,920サンプルであり、Yの実サンプルデータの前に、EAV(End of Active Video)、SAV(Start of Active Video)のサンプルデータが配置される。これらは、計280サンプルからなる。この構成は、色差成分Cb,Crについても同様であるが、4:2:2のフォーマットであり、Cb,Crの実サンプルデータ数は、各々Yの半分であるため、CbとCrを合わせてYと同数になる。
このYとCb,Crを多重化すると、EAVおよびSAVで計560サンプル、Y,Cb,Crで計3840サンプルのデータが生成される。したがって、HDTV方式のSMPTE274M規格(通称HD-SDI I(High Definition-Serial Data Interface)規格)のビデオ信号をウェーブレット変換装置1に入力した場合、図1の例における画像信号D10は、この多重化されたサンプルデータになる。以降、これを前提として説明を続ける。
ウェーブレット変換装置1に、画像信号として、ビデオ信号が入力される場合には、1秒間に60フィールドのピクチャが1/60秒の速度で入力されるので、この短い時間内に、図2を参照して上述したウェーブレット変換を完了させなければならない。すなわち、高速にウェーブレット変換を行う必要がある。
その1つの方法として、図13に示されるように、水平分析フィルタ部11においては、ビデオ信号(画像信号D10)を入力しながら、水平方向の列数(サンプル数)が所定数に達した時点で直ちに水平方向の低域分析フィルタおよび高域分析フィルタリングが行われるようにする。
例えば、水平分析フィルタ部11は、図示せぬ内蔵メモリに、画像信号D10がMコラム(列)分だけ入力されて展開されるまで待機している。このMの値は、水平分析フィルタリングのタップ数に対応しており、タップ数が大きければその分だけMの値は大きくなる。
水平分析フィルタ部11は、内蔵メモリにMコラム分溜まった時点で直ちに水平分析フィルタリングを行う。すなわち、水平分析フィルタ部11は、内蔵メモリよりMコラム分(例えば、図3の場合、M=3)を順次読み出し、水平方向の低域分析フィルタリングと高域分析フィルタリングとを行う。そして、その水平分析フィルタリングの結果である低域成分と高域成分は、インターリーブされて、レベル1バッファ12に記憶される。レベル1バッファ12に記憶されている低域成分および高域成分は、ライン数がNラインになり次第、垂直分析フィルタ部18に読み出され入力される。
垂直分析フィルタ部18は、低域および高域成分のライン数がNライン(図4の場合、N=3)分溜まった時点で、直ちに、垂直方向の低域分析フィルタリングおよび高域分析フィルタリングを行う。このNの値は、垂直分析フィルタリングのタップ数に対応しており、タップ数が大きければその分だけNの値は多くなる。この垂直分析フィルタリングにより、図13および図14に示すように、垂直分析フィルタリング結果の低域成分(1LL)D19と、高域成分(1HL,1LH,1HH)D23とが生成される。
垂直分析フィルタリングの後、水平分析フィルタ部19においては、内蔵メモリに、低域成分D19が水平方向の分析フィルタリングが可能になるだけのコラム数が溜まった時点で、直ちに、分割レベル2の水平分析フィルタリングが行われる。なお、このように、低域成分が繰り返し分析されるのは、画像信号のエネルギの大部分が低域成分に集中しているためである。
すなわち、分割レベル2の水平分析フィルタリングとして、水平分析フィルタ部19は、内蔵メモリよりMコラム分を順次読み出し、水平方向の低域分析フィルタリングと高域分析フィルタリングとを行う。その水平分析フィルタリングの結果である低域成分と高域成分は、インターリーブされて、レベル2バッファ13に記憶される。
そして、垂直分析フィルタ部18は、図14に示すように、レベル2バッファ13の低域成分および高域成分のライン数がN/2ラインになり次第、垂直方向の低域分析フィルタリングおよび高域分析フィルタリングを行う。この垂直フィルタリングにより、図15に示すように、低域成分(2LL)と高域成分(2HL,2LH,2HH)が生成される。すなわち、図15の例においては、分割レベル1の1LLの周波数成分が、2LL, 2HL,2LH,2HHの4つの周波数成分に分割されている。
以上のように、所定の分割レベルまで繰り返し実行されるウェーブレット変換が、後続するビデオ信号を入力しながら、1ピクチャのビデオ信号の終端まで繰り返し実行されることで、1画像が所定の分割レベルまで帯域分割される。
なお、さらに分割レベル数を増やす場合には、低域成分に対して繰り返し分析フィルタリングを行えばよい。図16は、実際の画像が、N=4とした分析フィルタリングによって分割レベル3まで分割された例を示す図である。
すなわち、この画像に対して、分割レベル1の垂直分析フィルタリングにおいては、4ライン分の周波数成分が溜まった時点ですぐに、垂直分析フィルタリングが行われ、分割レベル2の垂直分析フィルタリングにおいては、2ライン分の周波数成分が溜まった時点ですぐに、垂直分析フィルタリングが行われ、分割レベル3の垂直分析フィルタリングにおいては、1ライン分の周波数成分が溜まった時点ですぐに、垂直分析フィルタリングが行われることにより、分割レベル3まで分割されたことがわかる。
以上のように、所定の列数分または所定のライン数分の周波数成分が溜まった時点ですぐに分析フィルタリングを行うようにしたので、1ピクチャのビデオ信号の分析フィルタリングを効率的に行うことができる。すなわち、高速にウェーブレット変換を行うことができる。
また、このように、最低域成分1ライン分の係数データが得られるだけの分析フィルタリングを、画面全体のラインに対して複数回に分けて段階的に行うことで、さらに、図27などで後述するが、例えば、ウェーブレット変換後の周波数成分を符号化し伝送して、復号を行うようなシステムにおいて、低遅延で復号画像を得ることができる。
なお、以上のビデオ信号に対しての分析フィルタリングは、ビデオ信号を構成するピクチャ(フィールドまたはフレーム)単位で行われるため、ピクチャの終端を検知し、分析フィルタリングの動作を停止してリセットする必要がある。この場合、その図示は省略するが、ピクチャの終端を検知するために、例えば、水平分析フィルタ部11の前段などに、ビデオ信号の垂直同期信号を検出する垂直同期信号検出部を内蔵させるようにウェーブレット変換装置1が構成される。
図17は、SMPTE274M規格の信号のうち、インタレース信号の信号分布図である。図17の例において、上段は、第1フィールド、下段は、第2フィールドを示す。第1フィールドの先頭には、22ライン分の垂直同期信号が存在しており、第2フィールドの先頭には、23ライン分の垂直同期信号が存在している。
したがって、ウェーブレット変換装置1においては、水平分析フィルタ部11の前段などに、ビデオ信号の垂直同期信号を検出する垂直同期信号検出部を内蔵させ、内蔵された垂直同期信号検出部に、これらの垂直同期信号を検出させる。
これにより、容易にピクチャの終端を検出することができ、検出次第、分析フィルタリングの動作を停止させることができる。すなわち、ビデオ信号に対しての分析フィルタリングを、ビデオ信号を構成するピクチャ(フィールドまたはフレーム)単位で行うことができる。
図18は、図1のウェーブレット変換装置に対応したウェーブレット逆変換装置の一実施形態に係る構成例を示す図である。このウェーブレット逆変換装置51は、図1のウェーブレット変換装置1により画像信号が所定の分割レベル(図18の例の場合、分割レベル4)までウェーブレット変換して分割された周波数成分を入力して、合成フィルタリングを行う帯域合成装置である。なお、もちろん、ウェーブレット変換の分割レベル数が異なれば、その分割レベル数分だけのウェーブレット逆変換が行われる。
図18のウェーブレット逆変換装置51は、レベル3バッファ61、レベル2バッファ62、レベル1バッファ63、セレクタ64、垂直合成フィルタ部65、係数バッファ66、水平合成フィルタ部67、セレクタ68、および制御部69により構成されている。すなわち、ウェーブレット逆変換装置51には、最低域レベル(分割レベル4)以外の分割レベル毎に独立したバッファ(レベル3バッファ61乃至レベル1バッファ63)が構成されている。
図示せぬ外部(例えば、後述する図27のディジタル復調部313など)より、分割レベル4の低域成分の係数(4LL)D61と高域成分の係数(4HL,4LH,4HH)D62が、セレクタ64に入力される。分割レベル3の高域成分の係数(3HL,3LH,3HH)D63が、レベル3バッファ61に入力される。分割レベル2の高域成分の係数(2HL,2LH,2HH)D64が、レベル2バッファ62に入力される。分割レベル1の高域成分の係数(1HL,1LH,1HH)D65が、レベル1バッファ63に入力される。
レベル3バッファ61は、分割レベル4の垂直合成フィルタリングの結果に対して、水平合成フィルタリングが行われた結果の分割レベル3の低域成分の係数(3LL)D74と、外部からの分割レベル3の高域成分の係数(3HL,3LH,3HH)D63を記憶、保持する。分割レベル3の低域成分の係数(3LL)D74と分割レベル3の高域成分の係数(3HL,3LH,3HH)D63とは、レベル3バッファ61において多重化されて、分割レベル3の周波数成分の係数(3LL, 3HL,3LH,3HH))D66としてレベル3バッファ61から出力される。
レベル2バッファ62は、分割レベル3の垂直合成フィルタリングの結果に対して、水平合成フィルタリングが行われた結果の分割レベル2の低域成分の係数(2LL)D75と、外部からの分割レベル2の高域成分の係数(2HL,2LH,2HH)D64を記憶、保持する。分割レベル2の低域成分の係数(2LL)D75と分割レベル2の高域成分の係数(2HL,2LH,2HH)D64とは、レベル2バッファ62において多重化されて、分割レベル2の周波数成分の係数(2LL, 2HL,2LH,2HH)D67としてレベル2バッファ62から出力される。
レベル1バッファ63は、分割レベル2の垂直合成フィルタリングの結果に対して、水平合成フィルタリングが行われた結果の分割レベル1の低域成分の係数(1LL)D76と、外部からの分割レベル1の高域成分の係数(1HL,1LH,1HH)D65を記憶、保持する。分割レベル2の低域成分の係数(1LL)D76と分割レベル1の高域成分の係数(1HL,1LH,1HH)D65とは、レベル1バッファ63において多重化されて、分割レベル1の周波数成分の係数(1LL, 1HL,1LH,1HH))D68としてレベル1バッファ63から出力される。
なお、レベル3バッファ61乃至レベル1バッファ63は、例えば、図1のレベル2バッファ13乃至レベル4バッファ15と基本的に同様構成とされる。すなわち、図10を参照して上述したように、レベル3バッファ61乃至レベル1バッファ63は、それぞれ、処理対象のレベルに対応して、垂直分析フィルタ部18により読み出される1ライン分の係数を記憶する3つのバッファにより構成されている。
セレクタ64は、垂直合成フィルタ部65の制御のもと、外部、およびレベル3バッファ61乃至レベル1バッファ63のうち、外部または対応する分割レベルのバッファからの出力を選択し、選択した出力を、周波数成分の係数D69として垂直分析フィルタ部65に出力する。
垂直合成フィルタ部65は、セレクタ64を介して、外部または対応する分割レベルのバッファから周波数成分の係数を読み出し、係数バッファ66に記憶される途中演算用の係数D70を読み出し、セレクタ64からの係数D69と係数D70を用いて、垂直合成フィルタリングを行いながら、その垂直合成フィルタリング途中で生成される係数の一部の係数(次の演算過程で必要な係数)を、途中演算用の係数D71として、係数バッファ66に記憶させる。
係数バッファ66は、垂直合成フィルタリングを実行する際に、途中演算用の係数を記憶、保持する。すなわち、係数バッファ66には、垂直合成フィルタ部65によるそのフィルタリング途中に生成される係数のうち、次の垂直合成フィルタリングの処理で必要な係数が記憶、保持される。そして、次の垂直合成フィルタリングの際に垂直合成フィルタ部65により読み出される。
なお、係数バッファ66は、例えば、図1の係数バッファ17と基本的に同様の構成とされる。すなわち、係数バッファ66は、図11を参照して上述したように、各レベル毎に、垂直リフティング演算の過程で生成される途中演算用の3つの係数が記憶される3つのバッファで構成される。
水平合成フィルタ部67は、垂直合成フィルタリングの結果生成される係数D72を水平方向に並べて、水平合成フィルタリングを行う。この結果、画像の上位ラインから順番に低域成分のラインが生成され、生成された低域成分(または画像)D73が、セレクタ68に出力される。
セレクタ68は、水平合成フィルタ部67の制御のもと、次の分割レベルに進む場合には、低域成分D74乃至D76のいずれかを、次の分割レベルに対応するレベルのバッファに記憶させるため、次の分割レベルに対応するレベルのバッファ側へ出力し、ウェーブレット逆変換が、最終レベル(すなわち、ウェーブレット変換における最初の分割レベルである分割レベル1)まで完了した場合には、ベースバンド画像D77を外部に出力する。
制御部69は、例えばCPU、ROM、およびRAMを含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット逆変換装置51の各部の処理を制御する。
次に、図19のフローチャートを参照して、図18のウェーブレット逆変換装置51の動作について説明する。すなわち、図19の例においては、ウェーブレット逆変換装置51により実行されるウェーブレット逆変換処理が示されており、このウェーブレット逆変換処理においては、1番解像度の小さい低域成分から高域成分の順番で逆変換が行われていく。分割レベルでいえば、レベル4、レベル3、レベル2、およびレベル1の順番で実行される。
ステップS61において、セレクタ64は、外部からの分割レベル4の低域成分の係数(4LL)D61と高域成分の係数(4HL,4LH,4HH)D62を入力する。そして、セレクタ64は、垂直合成フィルタ部65の制御のもと、この外部からの出力を選択し、選択した出力(低域成分の係数(4LL)D61と高域成分の係数(4HL,4LH,4HH)D62)を、周波数成分の係数D69として、垂直分析フィルタ部65に出力する。
ステップS62において、垂直合成フィルタ部65は、1つ前の周波数係数を求める処理において係数バッファ66に記憶された途中演算用の係数D70を読み出す。なお、この係数は、前の垂直合成フィルタリングの処理で生成され、前のステップS65において記憶された係数である。
ステップS63において、垂直合成フィルタ部65は、周波数成分の係数D69および読み出した係数D70を用いて、分割レベル4の垂直合成フィルタリングを行う。なお、この垂直合成フィルタリングの詳細については、図21を参照して後述する。
ステップS64において、垂直合成フィルタ部65は、垂直合成フィルタリング途中で生成される係数の一部の係数(すなわち、途中演算用の係数)71を係数バッファ66に記憶させる。また、垂直合成フィルタリングの結果生成される係数D72は、水平合成フィルタ部67に入力される。
ステップS65において、水平合成フィルタ部67は、垂直合成フィルタリングの結果生成される係数D72を水平方向に並べて、分割レベル4の水平合成フィルタリングを行う。なお、この水平合成フィルタリングの詳細については、図22を参照して後述するが、水平合成フィルタリング途中で生成される係数の一部が、内蔵される図示せぬフリップフロップに記憶される。
そして、この水平合成フィルタリングの結果、分割レベル4の低域および高域成分のウェーブレット逆変換が完了し、分割レベル3の低域成分の係数(3LL)D73が生成される。
ステップS66において、制御部69は、ウェーブレット変換における最初レベル(換言するに、ウェーブレット逆変換における最終レベル)である分割レベル1まで終了したか否かを判定し、まだ分割レベル1まで終了していないと判定した場合、処理は、ステップS67に進む。
ステップS67において、制御部69は、セレクタ68がレベル3バッファ61への出力を選択するように制御し、水平合成フィルタリング結果の分割レベル3の低域成分の係数(3LL)D73を低域成分の係数(3LL)D74として、対応するレベルバッファ(いまの場合、レベル3バッファ61)に記憶させる。
ステップS68において、制御部69は、外部からの分割レベル3の高域成分の係数(3HL,3LH,3HH)D63を、レベル3バッファ61に転送させ、記憶させる。
ステップS69において、垂直合成フィルタ部65は、セレクタ64にレベル3バッファ61からの出力を選択するように制御することで、周波数成分の係数D66を、レベル3バッファ61から読み出し、読み出された周波数成分の係数が、周波数成分の係数D65として、入力する。
すなわち、レベル3バッファ61においては、分割レベル3の低域成分の係数(3LL)D74と分割レベル3の高域成分の係数(3HL,3LH,3HH)D63とは、レベル3バッファ61において多重化されて、分割レベル3の周波数成分の係数(3LL, 3HL,3LH,3HH)D66としてレベル3バッファ61から出力される。したがって、セレクタ64より、分割レベル3の周波数成分の係数(3LL, 3HL,3LH,3HH)D66が、周波数成分の係数D69として、垂直分析フィルタ部65に出力される。
その後、処理は、ステップS62に戻り、それ以降の処理が繰り返される。すなわち、ステップS62において、係数バッファ66から係数が読み出され、ステップS63において、分割レベル3の垂直合成フィルタリングが行われ、ステップS64において、演算過程の係数が、係数バッファ66に記憶され、ステップS65において、分割レベル3の水平合成フィルタリングが行われて、分割レベル2の低域成分(2LL)が生成される。
この場合、ステップS66において、まだ分割レベル1まで終了していないと判定されるので、水平合成フィルタリング結果の分割レベル2の低域成分(2LL)D75は、対応するレベルバッファ(いまの場合、レベル2バッファ62)に記憶される。同様に、外部からの分割レベル2の高域成分(2HL,2LH,2HH)D64が、レベル2バッファ62に転送される。
このとき、レベル3バッファ61の場合と同様に、レベル2バッファ62においては、分割レベル2の低域成分(2LL)D75と分割レベル2の高域成分(2HL,2LH,2HH)D64とが多重化されて、分割レベル2の周波数成分の係数(2LL,2HL,2LH,2HH)D67としてレベル2バッファ62から出力される。
以上の一連の処理が、分割レベル1の周波数成分がレベル1バッファ63に記憶され、読み出されるまで同様に行われる。その後、ステップS62において、係数バッファ66から係数が読み出され、ステップS63において、分割レベル1の垂直合成フィルタリングが行われ、ステップS64において、演算過程の係数が、係数バッファ66に記憶され、ステップS65において、分割レベル1の水平合成フィルタリングが行われて、この結果、分割レベル1まで合成フィルタリングが終了したベースバンド画像が生成され、ステップS66において、分割レベル1まで終了したと判定される。
したがって、処理は、ステップS70に進み、ステップS70において、セレクタ68を介して、水平合成フィルタ部67からのベースバンド画像D77が外部(例えば、後述する図25の逆量子化部162)へ出力される。
以上のように、図18のウェーブレット逆変換装置51においても、最低域レベル以外の分割レベル毎のバッファを内蔵メモリで対応するようにしたので、水平合成フィルタリングを行いながら、水平合成フィルタリングの結果を、分割レベル毎のバッファに記憶させている。したがって、この水平合成フィルタリングの結果を、分割レベル毎のバッファから読み出しながら、垂直方向のフィルタリングを行うことができる。すなわち、水平方向と垂直方向のフィルタリングを同時並行的に動作させることができる。
これにより、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、図18のウェーブレット逆変換装置51においても、最低域レベル以外の分割レベル毎のバッファとともに、係数バッファを配置し、垂直方向の合成フィルタリングの際に、次回の処理に必要な係数を保持しておき、その係数を次回の垂直合成フィルタリングの際に読み出して実行するようにしたので、特許文献1のように、外部メモリで構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット逆変換を行うことができるようになる。
次に、上述した合成フィルタリングにおける演算方法について説明する。図6を参照して上述したリフティング技術を適用したときの分析フィルタリングに対応して、効率的にフィルタリングを実行することができることから、ウェーブレット逆変換の合成フィルタリングにおいても、同様にリフティング技術を用いることが好ましい。
図20は、JPEG2000規格でも採用されている9×7分析フィルタのリフティング構成を示している。この9×7分析フィルタに対してリフティング技術を適用したときの合成フィルタリングについて説明する。
図20の例において、1段目(最上段)は、ウェーブレット変換により生成された係数であり、丸印(●)が高域成分の係数を示し、四角印(■)が低域成分の係数を示す。2,3段目は、それぞれステップB1およびステップB2の処理で生成される成分(係数)を示す。また、4段目は、ステップB3の処理で生成される偶数成分出力を示し、5段目は、ステップB4の処理で生成される奇数成分出力を示している。
9×7分析フィルタに対してリフティング技術を適用した合成フィルタリングにおいては、ステップB3の処理で偶数成分が得られ、ステップB4の処理で奇数成分が得られる。なお、ステップB1乃至ステップB4の処理は、次の式(5)乃至式(8)で表される。
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップB1およびB2の処理が行われ、ステップB3で、偶数成分の係数が生成された後に、ステップB4で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式(5)乃至式(8)に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
そこで、次に説明するように、ウェーブレット逆変換装置51においても、垂直合成フィルタリングおよび水平合成フィルタリングに、このリフティング技術を適用する。なお、用いる式が異なるだけであり、垂直合成フィルタリングは、図9を参照して上述した垂直分析フィルタリングと基本的に同様な動作を行い、水平合成フィルタリングは、図7を参照して上述した水平分析フィルタリングと基本的に同様な動作を行う。
まず、垂直合成フィルタ部65により実行される垂直合成フィルタリングの処理について具体的に説明する。図21は、垂直方向の係数群に対しての垂直合成フィルタリングを、図20のリフティング構成により実行する場合の例を示している。
図21の例においては、垂直方向の係数に対して、図20で上述した4つのステップ(ステップB1乃至B4)の処理を経て、偶数番目の係数(以下、偶数係数とも称する)と奇数番目の係数(以下、奇数係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
また、垂直方向の係数の左側に示される数字は、ライン番号を示しており、左から1列目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表している。さらに、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について左から順に説明する。図21の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
この垂直リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、ライン番号0乃至5の6ラインの係数が必要である。
その後、2番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号6および7の2ラインの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるライン番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の偶数係数および奇数係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
したがって、2番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号5乃至7の3ラインの係数の入力が必要であり、さらに、1番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される3つの係数を、図18の係数バッファ66に記憶しておく必要がある。なお、このとき、垂直方向の3ラインの係数は、図18の対応するレベルのバッファから、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが2であれば、レベル2バッファ62から係数が読み出される。
したがって、1番目の垂直リフティング演算で係数バッファ66に記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出され入力されるライン番号5乃至7の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の偶数係数と奇数係数を求めるために必要な係数であるので、係数バッファ66に記憶される。
ライン番号7の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号7乃至9の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図21の右側に示されている。
2番目の場合と同様に、3番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号8および9の2ラインの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるライン番号7の係数も必要である。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で係数バッファ66に記憶されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号7乃至9の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の偶数係数と奇数係数を求めるために必要な係数であるので、係数バッファ66に記憶される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタリングが完了される。
次に、水平合成フィルタ部67により実行される水平合成フィルタリングについて具体的に説明する。図22は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図20のリフティング構成により実行する場合の例を示している。
図22の例においては、水平方向の係数に対して、図20で上述した4つのステップ(ステップB1乃至B4)の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
また、水平方向の係数の上に示される数字は、列(コラム)番号を示しており、上から1段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について上から順に説明する。図22の上段には、水平方向にコラム番号5乃至7の3コラムの係数が入力されて水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
この水平リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、コラム番号0乃至5の6コラムの係数が必要である。
その後、2番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号6および7の2コラムの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるコラム番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の奇数係数および偶数係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号5乃至7の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、ラッチしておく必要がある。実際には、高々3つの係数であるので、水平分析フィルタ部67に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応できる。
したがって、1番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号5乃至7の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
コラム番号7の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号7乃至9の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図22の下段に示されている。
2番目の場合と同様に、3番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号8および9の2コラムの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるコラム番号7の係数も必要である。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、新たに入力されるコラム番号7乃至9の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、4番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
以上のように、垂直合成フィルタリングおよび水平合成フィルタリングにおいても、9×7ウェーブレット変換フィルタのリフティング構成が用いられることで、図10を参照して上述したように、対応する分割レベルのバッファには、3ライン分の係数を記憶する各ラインの係数用のバッファが必要となり、さらに、図21のQ1およびQ2の係数を求めるため、垂直リフティング演算の際、すでに使用したラインの係数も、次の垂直リフティング演算に必要になる。
したがって、対応するレベルのバッファの内部では、1つのラインの係数用のバッファに記憶されている係数を、隣接するラインの係数用のバッファに、次々と転送していく構成となる。すなわち、図18のレベル3バッファ61乃至レベル1バッファ63も、図10に示したレベル2バッファ13乃至レベル4バッファ15と基本的に同様の構成とされる。
また、垂直合成フィルタリングにおいても、図18の係数バッファ66には、9×7ウェーブレット変換フィルタのリフティング構成が用いられることで、レベル毎の垂直リフティング演算の過程で生成される3つの係数をそれぞれ記憶する必要がある。したがって、図18の係数バッファ66も、図11に示した係数バッファ17と基本的に同様の構成とされる。
以上のように、図18のレベル3バッファ61乃至レベル1バッファ63も、係数バッファ66も、比較的少ないメモリで構成できる。したがって、図18のウェーブレット逆変換装置51内に、レベル3バッファ61乃至レベル1バッファ63も、係数バッファ66を構成できるので、外部メモリを設ける必要がない。
したがって、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
ところで、上記説明においては、図12乃至図16を参照して、動画像であるビデオ信号をウェーブレット変換する例を説明したが、ビデオ信号を構成するピクチャ単位でウェーブレット変換して生成(分割)された周波数成分の係数をウェーブレット逆変換する場合にも、同様に、高速にウェーブレット逆変換を行う必要がある。
したがって、ウェーブレット逆変換装置51における垂直合成フィルタ部65も、ウェーブレット変換装置1における垂直分析フィルタ部18と同様に、周波数成分の係数が、垂直方向に所定数(垂直合成フィルタリングを実行可能だけの数)分溜まった時点で、直ちに、垂直方向の合成フィルタリングを行う。
ウェーブレット逆変換装置51における水平合成フィルタ部67も、ウェーブレット変換装置1における水平分析フィルタ部11と同様に、周波数成分の係数が、水平方向に所定数(水平合成フィルタリングを実行可能だけの数)に達した時点で直ちに水平方向の合成フィルタリングを行う。
以上のように、周波数成分の係数が、垂直方向および水平方向に所定数溜まった時点ですぐに合成フィルタリングを行うようにしたので、1ピクチャのビデオ信号の合成フィルタリングを効率的に行うことができる。すなわち、高速にウェーブレット逆変換を行うことができる。
また、上記説明においては、図17を参照して、図1のウェーブレット変換装置1において、動画像であるビデオ信号をウェーブレット変換する場合には、ビデオ信号の垂直同期信号を検出する手段が備えることで、ピクチャの終端を検知するように説明した。
図17で説明したようにしてピクチャの終端を検知して、ビデオ信号を構成するピクチャ単位でウェーブレット変換して生成された周波数成分を、ウェーブレット逆変換する場合には、その図示は省略するが、ウェーブレット逆変換装置51のセレクタ68の後段には、ウェーブレット逆変換によって生成されたピクチャ信号(すなわち、上述したベースバンド画像D77)の後ろに、ビデオの垂直同期信号を挿入する垂直同期信号挿入部が構成される。
すなわち、ウェーブレット逆変換装置51のセレクタ68の後段に垂直同期信号挿入部を構成させ、垂直同期信号挿入部に、例えば、セレクタ68からのベースバンド画像D77の後ろに、ビデオの垂直同期信号を挿入させ、生成したビデオ信号を外部に出力させる。
以上のようにして、後続のピクチャにも同様に、ビデオの垂直同期信号を継続して挿入することで、生成されたビデオ信号を順次出力することができる。これにより、動画像を再現することができる。
以上のように、本発明のウェーブレット変換装置においては、レベル1から所定のレベル数までの分割レベル毎のバッファを備え、水平分析フィルタリングを行いながら、水平分析フィルタリングの結果が、分割レベル毎のバッファに記憶されるようにしたので、この水平分析フィルタリングの結果を、分割レベル毎のバッファから読み出しながら、垂直方向のフィルタリングを行うことができる。すなわち、水平方向と垂直方向のフィルタリングを同時並行的に動作させることができる。
これにより、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、各分析フィルタリングを、リフティングで構成するようにしたので、水平分析フィルタリングの結果を記憶させるレベル毎のバッファや、垂直分析フィルタリング途中の係数の一部を記憶しておく係数バッファを少ない容量で構成することができる。これにより、これらのバッファを、ウェーブレット変換装置内に内蔵させることができるので、外部にメモリを構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
一方、本発明のウェーブレット逆変換装置においても、最低域レベル以外の分割レベル毎のバッファを備え、水平合成フィルタリングを行いながら、水平合成フィルタリングの結果が、分割レベル毎のバッファに記憶されるようにしたので、この水平合成フィルタリングの結果を、分割レベル毎のバッファから読み出しながら、垂直方向のフィルタリングを行うことができる。すなわち、水平方向と垂直方向のフィルタリングを同時並行的に動作させることができる。
これにより、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、各合成フィルタリングを、リフティングで構成するようにしたので、水平合成フィルタリングの結果を記憶させるレベル毎のバッファや、垂直合成フィルタリング途中の係数の一部を記憶しておく係数バッファを少ない容量で構成することができる。これにより、これらのバッファを、ウェーブレット逆変換装置内に内蔵させることができるので、外部にメモリを構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット逆変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
さらに、本発明のウェーブレット変換装置およびウェーブレット逆変換装置においては、所定の数の周波数成分が溜まった時点ですぐに分析フィルタリングおよび合成フィルタリングを行うようにしたので、分析フィルタリングおよび合成フィルタリングを効率的に行うことができる。すなわち、高速にウェーブレット変換および逆変換を行うことができ、1秒間に60フィールドのピクチャが1/60秒の速度で入力されるビデオ信号のウェーブレット変換および逆変換にも対応することができる。
これにより、さらに、後述するウェーブレット変換を用いた符号化処理およびウェーブレット逆変換を用いた復号処理を含む伝送システムにおいて、ライン毎の並行処理が可能になり、低遅延での復号画像を得ることができるようになる。
また、本発明のウェーブレット変換装置において、垂直同期信号を検出する手段を備え、本発明のウェーブレット逆変換装置において、垂直同期信号を挿入する手段を備えるようにしたので、ビデオ信号に対しての分析フィルタリングを、ビデオ信号を構成するピクチャ(フィールドまたはフレーム)単位で行うことができる。
以上説明した本発明は、画像またはビデオ信号をウェーブレット変換する装置または方法に関するものであり、また、帯域分析された情報を合成フィルタバンクリングして画像またはビデオ信号に復元するウェーブレット逆変換する装置または方法に関するものであり、そのような装置または方法であれば、様々なものに適用することができる。
すなわち、上記説明においては、ウェーブレット変換を行って、画像信号やビデオ信号を複数の周波数成分に分割するウェーブレット変換装置1、および、ウェーブレット変換装置1に対応し、ウェーブレット変換装置1により生成された周波数成分をウェーブレット逆変換するウェーブレット逆変換装置51について説明したが、ウェーブレット変換は、通常、画像圧縮の前処理として多用されている。そこで、次に、ウェーブレット変換により生成される周波数成分(以下、係数データとも称する)を圧縮符号化する画像符号化装置と、画像符号化装置により圧縮符号化された係数データを復号する画像復号装置について説明する。
図23は、本発明を適用した画像符号化装置の一実施形態に係る構成例を示す図である。すなわち、画像符号化装置においては、本発明のウェーブレット変換を圧縮の前処理として行う。
図23の例において、画像符号化装置101は、ウェーブレット変換部111、量子化部112、エントロピ符号化部113、およびレート制御部114により構成されている。
ウェーブレット変換部111は、図1のウェーブレット変換装置1と基本的に同様の構成とされる。すなわち、ウェーブレット変換部111は、分割レベル毎に独立したバッファ(レベル1バッファ12乃至レベル4バッファ15)と、垂直分析フィルタリング途中の係数の一部を記憶する係数バッファ17とを備えており、入力したビデオ信号D110(画像信号D10に相当)が所定のコラム数まで溜まった時点で、直ちにビデオ信号D110に対して水平分析フィルタリングを行い、水平分析フィルタリングの結果の係数データ(周波数成分)を各レベルに対応したバッファに記憶する。そして、水平分析フィルタリングの結果の係数データが、各レベルに対応したバッファに所定のライン数まで溜まった時点で、結果の係数データと係数バッファ17からの係数データを用いて、垂直分析フィルタリングを行い、垂直分析フィルタリング途中の係数の一部を係数バッファ17に記憶させ、垂直分析フィルタリング結果を水平分析フィルタリングの入力とすることを所定の分割レベルまで繰り返し、分析後の係数データD111を量子化部112に供給する。
例えば、分割レベル2の分析フィルタリングでは、図16に示したように、分割レベル1の分析フィルタリングで生成される1LLの4ラインをウェーブレット変換することで、2LL,2HL,2LH,2HHの2ラインが得られる。分割レベル3の分析フィルタリングでは、2LLの2ラインをウェーブレット変換することで、3LL,3HL,3LH,3HHの1ラインが得られる。分割レベル3の最終の分析フィルタリングであった場合には、3LLが最低域となる。
なお、図17を参照して上述したように、ビデオ信号の入力時には、ビデオ信号の垂直同期信号(すなわち、ピクチャの終端)を検出することにより、ピクチャの終端で分析フィルタリングの動作が停止され、ピクチャ毎にウェーブレット変換が行われている。
量子化部112は、ウェーブレット変換部111により生成される係数データD111を、例えば量子化ステップサイズで除算することにより量子化し、量子化係数データD112を生成する。
この際、量子化部112は、生成された周波数成分の最低域(図16の場合、3LL)の1ライン分と、この1ラインを生成するために必要になった他の周波数成分の複数ラインとから構成される単位をラインブロックとし、このラインブロック毎に量子化ステップサイズを設定することができる。このラインブロックは、ある画像領域のすべての周波数成分(図16の場合、3LL乃至1HHまでの10個の周波数成分)の係数を包含しているため、ラインブロック毎に量子化を行えば、ウェーブレット変換の特徴である多重解像度分析の利点を活かすことができる。また、全画面でラインブロック数だけを決めればよいため、画像符号化装置101の負荷も小さくて済む。
さらに、画像信号のエネルギは一般的に低域成分に集中しており、また、人間の視覚上、低域成分の劣化が目立ちやすいという特性があるため、量子化に際しては、低域成分のサブバンドでの量子化ステップサイズが結果的に小さな値になるように、重み付けを行うことが有効である。この重み付けにより、低域成分には相対的に多くの情報量が割り当てられるようになり、全体の主観的な画質が向上する。
エントロピ符号化部113は、量子化部112で生成された量子化係数データD112を情報源符号化し、圧縮された符号化コードストリームD113を生成する。情報源符号化としては、例えばJPEG方式やMPEG(Moving Picture Experts Group)方式で用いられているハフマン符号化や、JPEG2000方式で用いられているさらに高精度な算術符号化を用いることができる。
ここで、エントロピ符号化をどの範囲の係数に対して行うかは、圧縮効率に直接関係する非常に重要な要素になる。例えば、JPEG方式やMPEG方式では、8×8のブロックに対してDCT(Discrete Cosine Transform)変換を施し、生成された64個のDCT変換係数に対してハフマン符号化を行うことで、情報を圧縮している。すなわち、64個のDCT変換係数がエントロピ符号化の範囲になる。
ウェーブレット変換部111では、8×8ブロックに対するDCT変換とは異なり、ライン単位でウェーブレット変換を施しているため、エントロピ符号化部113では、各周波数帯域独立に、且つ各周波数帯域内をPライン毎に情報源符号化する。
Pは1ラインが最低であるが、ライン数が少ない場合には参照情報が少なくて済み、メモリ容量を減らすことができる。逆に、ライン数が多い場合には情報量がその分増えるため、符号化効率が向上させることができる。しかしながら、Pが各周波数帯域内のラインブロックのライン数を超えた値になると、次のラインブロックのラインまで必要になる。このため、このラインブロックの量子化係数データがウェーブレット変換及び量子化によって生成されるまで待たなければならず、この時間が遅延時間となってしまう。
したがって、低遅延のためには、Pはラインブロックのライン数以下である必要がある。例えば、図16の例では、3LL,3HL,3LH,3HHの周波数帯域については、ラインブロックのライン数=1ラインであるためP=1となる。また、2HL,2LH,2HHのサブバンドについては、ラインブロックのライン数=2ラインであるためP=1または2となる。
レート制御部114は、最終的に目標のビットレート又は圧縮率に合わせるための制御を行い、レート制御後の符号化コードストリームD114を外部に出力する。例えば、このレート制御部114は、ビットレートを上げる場合には量子化ステップサイズを小さくし、ビットレートを下げる場合には量子化ステップサイズを大きくするように、量子化部112に対して制御信号D115を送信する。
次に、図24のフローチャートを参照して、図23の画像符号化装置101の画像符号化処理について説明する。
図示せぬ外部(例えば、後述する図27のビデオカメラ部303など)から、ウェーブレット変換部111には、ビデオ信号D110が入力される。ステップS111において、ウェーブレット変換部111は、入力したビデオ信号D110に対して、ウェーブレット変換処理を実行する。なお、このウェーブレット変換処理は、ビデオ信号D110から垂直同期信号が検出されることでピクチャ毎に、かつライン単位で行われる処理であるが、図2を参照して上述したウェーブレット変換処理と基本的に略同様な処理を行うので、その説明は省略する。
ステップS111のウェーブレット変換処理により、入力したビデオ信号D110(画像信号D10に相当)が所定のコラム数まで溜まった時点で、直ちにビデオ信号D110に対して水平分析フィルタリングを行い、水平分析フィルタリングの結果の係数データ(周波数成分)を各レベルに対応したバッファに記憶する。そして、水平分析フィルタリングの結果の係数データが、各レベルに対応したバッファに所定のライン数まで溜まった時点で、結果の係数データと係数バッファ17からの係数データを用いて、垂直分析フィルタリングを行い、垂直分析フィルタリング途中の係数の一部を係数バッファ17に記憶させ、垂直分析フィルタリング結果を水平分析フィルタリングの入力とすることが所定の分割レベルまで繰り返されることで、分析後の係数データD111が量子化部112に供給される。
すなわち、ウェーブレット変換部111は、図13乃至図16を参照して上述したように、最低域分1ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて行っている。
ステップS112において、量子化部112は、前回の後述するステップS114のレート制御部114からの制御のもと、ウェーブレット変換部111により生成される係数データD111を、例えば量子化ステップサイズで除算することにより量子化し、量子化係数データD112を生成する。
この際、量子化部112は、生成された周波数成分の最低域(図16の場合、3LL)の1ライン分と、この1ラインを生成するために必要になった他の周波数成分の複数ラインとから構成される単位をラインブロックとし、このラインブロック毎に量子化ステップサイズを設定し、量子化を行っている。すなわち、量子化部112も所定のライン数が溜まった時点で、直ちにラインブロック毎に量子化を行っている。
ステップS113において、エントロピ符号化部113は、量子化部112で生成された量子化係数データD112をエントロピ符号化(情報源符号化)し、圧縮された符号化コードストリームD113を生成する。
ここで、ウェーブレット変換部111においては、ライン単位でウェーブレット変換を施しているため、エントロピ符号化部113でも、各周波数帯域独立に、かつ各周波数帯域内をPライン毎に情報源符号化している。すなわち、エントロピ符号化部113も、Pライン(ラインブロックのライン数以下)が溜まった時点で直ちに情報源符号化を行っている。
ステップS114において、レート制御部114は、レート制御(すなわち、最終的に目標のビットレートまたは圧縮率に合わせるための制御)を行い、レート制御後の符号化コードストリームD114を外部に出力する。
以上のように、画像符号化装置においては、ライン単位でウェーブレット変換が行われ、ラインブロック毎に量子化が行われ、ラインブロックのライン数以下のPライン毎に、情報源符号化が行われて、外部に、Pライン毎に符号化された符号化コードストリームD114が外部に出力されている。すなわち、ウェーブレット変換処理、量子化処理、および情報源符号化処理を、各所定のライン単位で並列に動作させることができる。
これにより、例えば、画像符号化装置により符号化された符号化データを伝送した際には、Pライン毎に符号化されたデータが次々に伝送されるので、符号化データを受信し復号する画像復号装置(図25の画像復号装置151)においては、低遅延で復号画像を得ることができる。
図25は、図23の画像符号化装置に対応する画像復号装置の一実施形態に係る構成例を示す図である。
図25の例において、画像復号装置151は、エントロピ復号部161、逆量子化部162、ウェーブレット逆変換部163により構成されている。
エントロピ復号部161は、入力した符号化コードストリームD160を情報源復号し、量子化係数データD161を生成する。情報源復号としては、画像符号化装置101の情報源符号化に対応して、ハフマン復号や、高効率な算術復号などを用いることができる。なお、図23で上述したように、画像符号化装置101においてPラインごとに情報源符号化されている場合には、エントロピ復号部161においても同様に、各サブバンドが独立に、かつ各サブバンド内がPライン毎に情報源復号される。
逆量子化部162は、量子化係数データD161に量子化ステップサイズを乗算することにより逆量子化し、係数データD162を生成する。この量子化ステップサイズは、通常、符号化コードストリームのヘッダなどに記述されている。なお、図23で上述したように、画像符号化装置101において、ラインブロック毎に量子化ステップサイズが設定されている場合には、逆量子化部162においても同様に、ラインブロック毎に逆量子化ステップサイズが設定されて、逆量子化される。
ウェーブレット逆変換部163は、図18のウェーブレット逆変換装置51と基本的に同様の構成とされる。すなわち、ウェーブレット逆変換部163は、最低域のレベル以外の分割レベル毎に独立したバッファ(レベル3バッファ61乃至レベル3バッファ63)と垂直合成フィルタリング途中の係数の一部を記憶する係数バッファ66とを備えており、係数データD162に対して、垂直合成フィルタリングと水平合成フィルタリングを行い、垂直合成フィルタリング途中の係数の一部を係数バッファ66に記憶し、水平合成フィルタリングの結果の係数データを各レベルに対応したバッファに記憶する。そして、ウェーブレット逆変換部163は、各レベルに対応したバッファに記憶された係数データが所定数溜まった時点で直ちに、結果の係数データと係数バッファ66からの係数を用いて、垂直合成フィルタリングと水平合成フィルタリングを行うことをレベル1まで繰り返し、ベースバンド画像を生成する。このとき、さらに、ウェーブレット逆変換部163においては、ベースバンド画像に、垂直同期信号が挿入されて、ビデオ信号D163が生成され、外部に出力される。
次に、図26のフローチャートを参照して、図25の画像復号装置151の画像復号処理について説明する。
エントロピ復号部161には、外部(例えば、後述する図27のディジタル復調部313)から、図24の画像符号化処理により符号化された符号化コードストリームD160が入力される。エントロピ復号部161は、ステップS161において、入力した符号化コードストリームD160をエントロピ復号(情報源復号)し、量子化係数データD161を生成する。
このとき、画像符号化装置101においてPライン毎に情報源符号化されているので、エントロピ復号部161においても同様に、各サブバンドが独立に、かつ各サブバンド内がPライン毎に情報源復号される。
逆量子化部162は、ステップS162において、量子化係数データD161に量子化ステップサイズを乗算することにより逆量子化し、係数データD162を生成する。
このとき、画像符号化装置101において、ラインブロック毎に量子化ステップサイズが設定されているので、逆量子化部162においても同様に、ラインブロック毎に逆量子化ステップサイズが設定されて、逆量子化される。
ウェーブレット逆変換部163は、ステップS163において、係数データD162に対して、ウェーブレット逆変換処理を実行する。なお、このウェーブレット逆変換処理は、ライン単位で行われ、画像が生成された後に垂直同期信号が挿入される処理であるが、図91を参照して上述したウェーブレット逆変換処理と基本的に略同様な処理を行うので、その説明は省略する。
ステップS163のウェーブレット変換処理により、係数データD162に対して、垂直合成フィルタリングと水平合成フィルタリングを行い、垂直合成フィルタリング途中の係数の一部を係数バッファ66に記憶し、水平合成フィルタリングの結果の係数データを各レベルに対応したバッファに記憶し、各レベルに対応したバッファに記憶された係数データが所定数溜まった時点で直ちに、結果の係数データと係数バッファ66からの係数を用いて、垂直合成フィルタリングと水平合成フィルタリングを行うことが、レベル1まで繰り返されることで、ベースバンド画像が生成される。このとき、さらに、ベースバンド画像に、垂直同期信号が挿入されて、ビデオ信号D163が生成され、外部(例えば、後述する図27のビデオカメラ部303)に出力される。
すなわち、画像符号化装置101において、ライン単位でウェーブレット変換処理が行われているので、ウェーブレット逆変換部163においても同様に、ライン単位で、ウェーブレット逆変換処理が行われる。
以上のように、画像復号装置151においては、入力された符号化コードストリームがPライン毎に情報源復号され、ラインブロック毎に逆量子化が行われ、ライン単位でウェーブレット逆変換が行われて、ベースバンド画像が生成され、ベースバンド画像に、垂直同期信号が挿入されて、ビデオ信号D163が生成され、外部に出力される。すなわち、復号処理、逆量子化処理、およびウェーブレット逆変換処理は、各所定のライン単位で並列に動作させることができる。
これにより、符号化データを伝送した際には、次々に伝送されてきた符号化され、データが、次々に、Pライン毎に復号され、ライン単位で生成されるので、低遅延で復号画像を得ることができる。
以上のように、図23および図25を参照して上述した画像符号化装置101および画像復号装置151における各処理は、ライン単位で並列的に動作させることで、画像の圧縮符号化および復号処理をより低遅延で行うことが可能である。
次に、図23および図25を参照して上述した画像符号化装置101および画像復号装置151を様々なシステムに適用した例について説明する。
図27は、本発明のウェーブレット変換を含む画像符号化およびウェーブレット逆変換を含む画像復号方法を適用可能なディジタルトライアックスシステムの一例の構成を示している。
トライアックスシステムは、テレビジョン放送局や制作スタジオなどにおいて、スタジオ収録や中継などの際に、ビデオカメラと、カメラコントロールユニットやスイッチャとを接続する1本の同軸ケーブルで、映像信号、音声信号、送り返し(リターン)の映像信号、同期信号など複数の信号を重畳させて送信すると共に、電源の供給も行うようにしたシステムである。
従来のトライアックスシステムは、アナログ信号を用いて上述の各信号の伝送を行うようにした例が大部分であった。一方、近年では、システム全体のディジタル化に伴い、放送局内などで用いるトライアックスシステムのディジタル化が進んでいる。
既存のディジタルトライアックスシステムでは、トライアックスケーブルを介して伝送されるディジタルビデオ信号は、非圧縮のビデオ信号であった。これは、特に放送局などにおいては信号の遅延時間に対する要求スペックが厳しく、基本的に、撮像から例えばモニタ出力までの遅延時間が1フィールド(16.67msec)以内であることが要求されるためである。高圧縮率および高画質を実現したMPEG2やMPEG4といった圧縮符号化方式は、ビデオ信号の圧縮符号化や圧縮ビデオ信号の復号に際して数フレーム分の時間を要し、遅延時間が大きいため、トライアックスシステムに採用されることはなかった。
本発明のウェーブレット変換を含む画像符号化およびウェーブレット逆変換を含む画像復号方法は、図2および図19を参照して上述したように水平フィルタリングと垂直フィルタリングの並行動作が可能であるとともに、図24および図26を参照して上述したように、ライン単位で行われることから並行動作が可能であり、画像データの入力から出力画像が得られるまでの遅延時間が短くできるため、ディジタルトライアックスシステムに対して用いて好適なものである。
図27のディジタルトライアックスシステムは、送信ユニット300とカメラ制御部302とがトライアックスケーブル(同軸ケーブル)301を介して接続される。送信ユニット300からカメラ制御部302に対する、実際に放映されたり、素材として用いられるディジタルビデオ信号およびディジタルオーディオ信号(以下、本線信号と呼ぶ)の送出、カメラ制御部302から送信ユニット300に対する、インカム用のオーディオ信号およびリターン用のディジタルビデオ信号の送出が、トライアックスケーブル301を介して行われる。
送信ユニット300は、例えば図示されないビデオカメラ装置に内蔵される。これに限らず、送信ユニット300がビデオカメラ装置に対する外部装置として、ビデオカメラ装置と所定に接続されて用いられるものとしてもよい。また、カメラ制御部302は、例えば一般的にCCU(Camera Control Unit)と呼ばれる装置である。
なお、ディジタルオーディオ信号については、この発明の主旨と関わりが少ないので、繁雑さを避けるための説明を省略する。
ビデオカメラ部303は、例えば図示されないビデオカメラ装置内に構成され、レンズ、フォーカス機構、ズーム機構、アイリス調整機構などを有する光学系350を介して入射された被写体からの光を、CCD(Charge Coupled Device)などからなる図示されない撮像素子で受光する。撮像素子は、受光された光を光電変換で電気信号に変換し、さらに所定の信号処理を施してベースバンドのディジタルビデオ信号を出力する。このディジタルビデオ信号は、例えばHD-SDI(High Definition-Serial Data Interface)のフォーマットにマッピングして出力される。
また、ビデオカメラ部303は、モニタ用に用いられる表示部351と、外部と音声によるやりとりを行うためのインカム352が接続される。
送信ユニット300は、ビデオ信号符号化部310およびビデオ信号復号部311、ディジタル変調部312およびディジタル復調部313、アンプ314および315、並びに、ビデオ分離/合成部316を有する
送信ユニット300において、ビデオカメラ部303から、例えばHD-SDIのフォーマットにマッピングされたベースバンドのディジタルビデオ信号が供給される。このディジタルビデオ信号は、ビデオ信号符号化部310で圧縮符号化され、符号化ストリームとされてディジタル変調部312に供給される。ディジタル変調部312は、供給された符号化ストリームを、トライアックスケーブル301を介した伝送に適した形式の信号に変調して出力する。ディジタル変調部312から出力された信号は、アンプ314を介してビデオ分離/合成部316に供給される。ビデオ分離/合成部316は、供給された信号をトライアックスケーブル301に送出する。この信号は、トライアックスケーブル301を介してカメラ制御部302に受信される。
カメラ制御部302から出力された信号が、トライアックスケーブル301を介して送信ユニット300に受信される。受信された信号は、ビデオ分離/合成部316に供給され、ディジタルビデオ信号の部分とその他の信号の部分とが分離される。受信信号のうちディジタルビデオ信号の部分は、アンプ315を介してディジタル復調部313に供給され、カメラ制御部302側でトライアックスケーブル301を介した伝送に適した形式の信号に変調された信号が復調され、符号化ストリームが復元される。
符号化ストリームは、ビデオ信号復号部311に供給され、圧縮符号を復号され、ベースバンドのディジタルビデオ信号とされる。この復号されたディジタルビデオ信号は、HD-SDIのフォーマットにマッピングされて出力され、リターン用のディジタルビデオ信号としてビデオカメラ部303に供給される。このリターン用のディジタルビデオ信号は、ビデオカメラ部303に接続される表示部351に供給され、撮影者のためのモニタなどに利用される。
カメラ制御部302は、ビデオ分離/合成部320、アンプ321および322、フロントエンド部323、ディジタル復調部324およびディジタル変調部325、並びに、ビデオ信号復号部326およびビデオ信号符号化部327を有する。
送信ユニット300から出力された信号が、トライアックスケーブル301を介してカメラ制御部302に受信される。受信された信号は、ビデオ分離/合成部320に供給される。ビデオ分離/合成部320は、供給された信号を、アンプ321およびフロントエンド部323を介してディジタル復調部324に供給する。なお、フロントエンド部323は、入力信号のゲインを調整するゲイン制御部や、入力信号に対して所定のフィルタ処理を施すフィルタ部などを有する。
ディジタル復調部324は、送信ユニット300側でトライアックスケーブル301を介した伝送に適した形式の信号に変調された信号を復調し、符号化ストリームを復元する。この符号化ストリームは、ビデオ信号復号部326に供給され、圧縮符号を復号され、ベースバンドのディジタルビデオ信号にとされる。この復号されたディジタルビデオ信号は、HD-SDIのフォーマットにマッピングされて出力され、本線信号として外部に出力される。
外部からカメラ制御部302に対して、リターン用のディジタルビデオ信号と、ディジタルオーディオ信号とが供給される。ディジタルオーディオ信号は、例えば、撮影者のインカム352に供給され、外部から撮影者に対する音声による指示を伝達するのに用いられる。
リターン用のディジタルビデオ信号は、ビデオ信号符号化部327に供給されて圧縮符号化され、ディジタル変調部325に供給される。ディジタル変調部325は、供給された符号化ストリームを、トライアックスケーブル301を介した伝送に適した形式の信号に変調して出力する。ディジタル変調部325から出力された信号は、フロントエンド部323およびアンプ322を介してビデオ分離/合成部320に供給される。ビデオ分離/合成部320は、この信号を他の信号と多重化し、トライアックスケーブル301に送出する。この信号は、トライアックスケーブル301を介して送信ユニット300に受信される。
図27の例においては、ビデオ信号符号化部310および327、ならびに、ビデオ信号復号部311および326に対して、図23の画像符号化装置101および図25の画像復号装置151がそれぞれ適用される。すなわち、ビデオ信号符号化部310および327は、図23の画像符号化装置101と基本的に同様の構成とされ、ビデオ信号復号部311および326は、図25の画像復号装置151と基本的に同様の構成とされる。
すなわち、送信ユニット300側において、ビデオ信号符号化部310は、供給されたディジタルビデオ信号に対して、図24を参照して上述したウェーブレット変換およびエントロピ符号化を施し、符号化ストリームを出力する。図13乃至図16を参照して上述したように、ビデオ信号符号化部310は、ウェーブレット変換に用いるフィルタのタップ数およびウェーブレット変換の分解レベル数に応じたライン数が入力されると、ウェーブレット変換を開始する。さらに、図24および図26を参照して上述したように、画像符号化装置および画像復号装置において、各要素に必要な係数データが蓄積されると、順次、各要素による処理が行われる。1フレームまたは1フィールドの下端のラインまで処理が終了したら、次の1フレームまたは1フィールドの処理が開始される。
以上のように、図23および図25の画像符号化装置101および画像復号装置151においては、それらの各要素の処理が並列的に行われるため、画像符号化装置101および画像復号装置151は、ビデオカメラ部303で撮影された映像がカメラ制御部302から出力される際の遅延や、外部から供給されカメラ制御部302からビデオカメラ部303に送信されるリターン用のディジタルビデオ信号の遅延を低く抑えることができ、図27のディジタルトライアックスシステムに用いて好適である。
カメラ制御部302側から送信ユニット300側に、リターン用のディジタルビデオ信号を送信する場合も同様である。すなわち、カメラ制御部302側において、ビデオ信号符号化部327は、外部から供給されたリターン用のディジタルビデオ信号に対して、図24を参照して上述したウェーブレット変換およびエントロピ符号化を施し、符号化ストリームを出力する。
ここで、リターン用のディジタルビデオ信号は、本線信号のディジタルビデオ信号よりも画質が低くても構わないとされている場合が多い。そこで、ビデオ信号符号化部327において、符号化時のビットレートを下げるようにするとよい。
例えば、ビデオ信号符号化部327において、レート制御部114により、エントロピ符号化部113でのエントロピ符号化処理をより低ビットレートになるまで行うように制御する。また例えば、カメラ制御部302側では、ビデオ信号符号化部327においてウェーブレット変換部111でより高い分解レベルまで変換処理を行い、送信ユニット300側では、ビデオ信号復号部311のウェーブレット逆変換部163におけるウェーブレット逆変換を、より低い分解レベルまでに止める方法も考えられる。カメラ制御部302側のビデオ信号符号化部327における処理は、この例に限らず、ウェーブレット変換における分解レベルをより低く抑えて変換処理による負担を軽減することも考えられる。
図28は、本発明のウェーブレット変換を含む画像符号化およびウェーブレット逆変換を含む画像復号方法を適用可能な無線伝送システムの一例の構成を示している。すなわち、図28の例においては、本発明のウェーブレット変換を含む画像符号化装置で符号化された符号化データの画像復号装置側への伝送を、無線通信を用いて行うようにしている。
なお、この図28の例では、ビデオ信号は、ビデオカメラまたは送信ユニット400(以下、送信ユニット400と略称する)側から受信装置401側に、一方向的に送信される。オーディオ信号およびその他の信号は、送信ユニット400と受信装置401との間で双方向の通信が可能である。
送信ユニット400は、例えばビデオカメラ部402を有する図示されないビデオカメラ装置に内蔵される。これに限らず、送信ユニット400がビデオカメラ部402を有するビデオカメラ装置に対する外部装置として、ビデオカメラ装置と所定に接続されて用いられるものとしてもよい。
ビデオカメラ部402は、例えば所定の光学系と、例えばCCDからなる撮像素子と、撮像素子から出力された信号をディジタルビデオ信号として出力する信号処理部とを有する。ビデオカメラ部402から、例えばHD-SDIのフォーマットにマッピングされてディジタルビデオ信号が出力される。これはこの例に限らず、ビデオカメラ部402から出力されるディジタルビデオ信号は、他のフォーマットでもよい。
送信ユニット400は、ビデオ信号符号化部410、ディジタル変調部411、および無線モジュール部412を有する。このビデオ信号符号化部410は、図23の画像符号化装置101と基本的に同様の構成とされる。
送信ユニット400において、ビデオカメラ部402から、ベースバンドのディジタルビデオ信号が例えばHD-SDIのフォーマットにマッピングされて出力される。このディジタルビデオ信号は、ビデオ信号符号化部410において、図24を参照して上述したウェーブレット変換およびエントロピ符号化により圧縮符号化され、符号化ストリームとされてディジタル変調部411に供給される。ディジタル変調部411は、供給された符号化ストリームを、無線通信を行うために適した形式の信号にディジタル変調して出力する。
また、ディジタル変調部411には、ディジタルオーディオ信号やその他の信号、例えば所定のコマンドやデータも供給される。例えば、ビデオカメラ部402は、マイクロフォンを有し、集音された音声を音声信号に変換し、さらに当該音声信号をA/D変換してディジタルオーディオ信号として出力する。また、ビデオカメラ部402は、所定のコマンドやデータを出力できるようになっている。コマンドやデータは、ビデオカメラ部402の内部で発生するようにしても良いし、ビデオカメラ部402に操作部を設け、当該操作部に対するユーザの操作に応じてコマンドやデータを生成するようにしてもよい。ビデオカメラ部402に対してコマンドやデータを入力する入力装置を接続するようにしてもよい。
ディジタル変調部411は、これらディジタルオーディオ信号やその他の信号をディジタル変調し、出力する。ディジタル変調部411から出力されたディジタル変調信号は、無線モジュール部412に供給されアンテナ413から電波として無線送信される。
なお、無線モジュール部412は、受信装置401側からの自動再送要求(ARQ:Auto Repeat Request)を受信すると、ディジタル変調部411に対してこのARQを通知し、データの再送を要求する。
アンテナ413から送信された電波は、受信装置401側のアンテナ420で受信され、無線モジュール部421に供給される。受信装置401は、無線モジュール部421、フロントエンド部422、ディジタル復調部423、およびビデオ信号復号部424を有する。このビデオ信号復号部424は、図25の画像復号装置151と基本的に同様の構成とされる。
無線モジュール部421は、受信された電波に基づくディジタル変調信号をフロントエンド部422に供給する。フロントエンド部422は、供給されたディジタル変調信号に対して例えばゲイン制御といった所定の信号処理を施して、ディジタル復調部423に供給する。ディジタル復調部423は、供給されたディジタル変調信号を復調し、符号化ストリームを復元する。
ディジタル復調部423で復元された符号化ストリームは、ビデオ信号復号部424に供給され、図26を参照して上述した復号方法で以て圧縮符号を復号され、ベースバンドのディジタルビデオ信号とされる。この復号されたディジタルビデオ信号は、例えばHD-SDIのフォーマットにマッピングされて出力される。
ディジタル復調部423には、送信ユニット400側でディジタル変調され送信された、ディジタルオーディオ信号やその他の信号も供給される。ディジタル復調部423は、これらディジタルオーディオ信号やその他の信号がディジタル変調された信号を復調し、ディジタルオーディオ信号やその他の信号を復元して出力する。
また、フロントエンド部422は、無線モジュール部421から供給された受信信号に対して所定の方法でエラー検出を行い、例えば誤ったフレームが受信されたといったエラーが検出されると、ARQを出力する。ARQは、無線モジュール部421に供給され、アンテナ420から送信される。
このような構成において、送信ユニット400を例えばビデオカメラ部402を有する比較的小型のビデオカメラ装置に内蔵させ、受信装置401にはモニタ装置を接続し、ビデオ信号復号部424から出力されたディジタルビデオ信号をモニタ装置に供給する。受信装置401に対して、送信ユニット400の内蔵されたビデオカメラ装置が無線モジュール部412から送信される電波の到達範囲内にあれば、ビデオカメラ装置で撮影された映像を、低遅延、例えば1フィールドまたは1フレーム時間以内の遅延でモニタ装置により見ることができる。
なお、図28の例においては、送信ユニット400と受信装置401との間の通信を、無線通信を用いて行い、ビデオ信号を無線通信を介して伝送するようにしているが、これはこの例に限定されない。例えば、送信ユニット400と受信装置401は、インターネットなどのネットワークを介して接続するようにしてもよい。この場合、送信ユニット400側の無線モジュール部412および受信装置401側の無線モジュール部421は、それぞれIP(Internet Protocol)を用いた通信が可能な通信インタフェースとされる。
以上の図28の無線伝送システムは、様々な応用が考えられる。例えば、この無線伝送システムは、テレビジョン会議システムに応用することができる。例えば、USB(Universal Serial Bus)接続が可能な簡易的なビデオカメラ装置をパーソナルコンピュータといったコンピュータ装置に接続すると共に、コンピュータ装置側にビデオ信号符号化部410およびビデオ信号復号部424を搭載する。コンピュータ装置に搭載されるビデオ信号符号化部410およびビデオ信号復号部424は、ハードウェアで構成してもよいし、コンピュータ装置上で動作するソフトウェアとして実現することも可能である。
例えば、会議に参加するメンバそれぞれに、コンピュータ装置と、このコンピュータ装置に接続されるビデオカメラ装置が用意され、コンピュータ装置が例えばテレビジョン会議システムのサービスを提供するサーバ装置に、有線および/または無線によるネットワークを介して接続される。ビデオカメラ装置から出力されたビデオ信号は、USBケーブルを介してコンピュータ装置に供給され、コンピュータ装置内のビデオ信号符号化部410で、図24を参照して上述した符号化処理を施される。コンピュータ装置は、ビデオ信号が符号化された符号化ストリームを、ネットワークを介してサーバ装置などに送信する。
サーバ装置は、受信した符号化ストリームを、参加メンバそれぞれのコンピュータ装置にネットワークを介して送信する。この符号化ストリームは、参加メンバそれぞれのコンピュータ装置に受信され、コンピュータ装置内のビデオ信号復号部424において、図26を参照して上述した復号処理がなされる。ビデオ信号復号部424から出力された画像データが、コンピュータ装置の表示部に映像として表示される。
すなわち、各参加メンバのコンピュータ装置の表示部には、他の参加メンバのビデオカメラ装置で撮影されたそれぞれの映像が表示されることになる。したがって、本発明を適用する無線伝送システムによれば、ビデオカメラ装置での撮影によるビデオ信号の符号化から、他の参加メンバのコンピュータ装置で復号されるまでの遅延時間が短く、参加メンバのコンピュータ装置の表示部に表示される他の参加メンバそれぞれの映像の違和感を少なくできる。
さらに、ビデオ信号符号化部410をビデオカメラ装置側に搭載することも考えられる。例えば、ビデオカメラ装置に送信ユニット400を内蔵させる。このように構成することで、ビデオカメラ装置にコンピュータ装置などの他の装置を接続する必要が無くなる。
このような、送信ユニット400が内蔵されたビデオカメラ装置と受信装置401とからなるシステムは、上述したテレビジョン会議システムの他にも、様々な応用が考えられる。例えば、図29に概略的に示されるように、このシステムを家庭用ゲーム機器に適用することができる。図29において、ビデオカメラ装置500には、図28の送信ユニット400が内蔵される。
家庭用ゲーム機器の本体501は、例えばCPU、RAMおよびROMや、CD-ROM(Compact Disc-Read Only Memory)やDVD-ROM(Digital Versatile Disc-ROM)に 対応したディスクドライブ装置、CPUにより生成された表示制御信号をビデオ信号に変換して出力するグラフィック制御部、オーディオ信号を再生するオーディオ再生部などが例えばバスで接続され、コンピュータ装置と略同様の構成とされる。
家庭用ゲーム機器の本体501は、ROMに予め記憶されたプログラムや、ディスクドライブ装置に装填されたCD-ROMやDVD-ROMに記録されたプログラムに従い、CPUにより全体が制御される。RAMは、CPUのワークメモリとして用いられる。この家庭用ゲーム機器の本体501に対して、受信装置401を内蔵する。受信装置401から出力されるディジタルビデオ信号やその他の信号は、例えばバスを介してCPUに供給される。
このようなシステムにおいて、例えば、家庭用ゲーム機器の本体において、外部から供給されたディジタルビデオ信号による画像を、ゲーム内の画像として用いることができるようにされたゲームソフトウェアが起動されているものとする。例えば、このゲームソフトウェアは、外部から供給されたディジタルビデオ信号による画像をゲーム内の画像として用いることができると共に、当該画像内での人物(プレーヤ)などの動きを識別し、識別された動きに応じた動作を行うことが可能とされている。
ビデオカメラ装置500は、撮影されたディジタルビデオ信号を、内蔵される送信ユニット400において、ビデオ信号符号化部410で、図24を参照して上述した符号化方法で符号化し、符号化ストリームをディジタル変調部411で変調して無線モジュール部412に供給し、アンテナ413から送信する。送信された電波は、家庭用ゲーム機器の本体501に内蔵される受信装置401においてアンテナ420で受信され、受信信号が無線モジュール部421およびフロントエンド部422を介してディジタル復調部423に供給される。
受信信号は、ディジタル復調部423で復調された符号化ストリームとされ、ビデオ信号復号部424に供給される。ビデオ信号復号部424は、供給された符号化ストリームを、図26を参照して上述した復号方法で復号し、ベースバンドのディジタルビデオ信号を出力する。
ビデオ信号復号部424から出力されたベースバンドのディジタルビデオ信号は、家庭用ゲーム機器の本体501において、バスに送出され、例えばRAMに一時的に記憶される。CPUは、所定のプログラムに従い、RAMに記憶されたディジタルビデオ信号を読み出すことで、このディジタルビデオ信号による画像内の人物の動きを検出したり、当該画像をゲーム内で用いることができるようにされる。
ビデオカメラ装置500で撮影され、得られたディジタルビデオ信号が符号化されてから、家庭用ゲーム機器の本体501で符号化ストリームが復号され画像が得られるまでの遅延時間が短いので、家庭用ゲーム機器の本体501上で動作するゲームソフトウェアにおける、プレーヤの動きに対する応答性が良くなり、ゲームの操作性を向上させることができる。
なお、このような、家庭用ゲーム機器と共に用いられるビデオカメラ装置500は、価格や大きさなどの面からみても簡易な構成とされることが多く、コンピュータ装置などのように、処理能力の高いCPUや、記憶容量の大きなメモリを搭載できないことが想定される。したがって、本発明のウェーブレット変換を含む符号化処理を用いることで、大きな容量の外部メモリが必要とされないので、メモリ容量が少なくて済む。また、例えば、ビデオカメラ装置500に内蔵される送信ユニット400のビデオ信号符号化部410において、ウェーブレット変換を低い分解レベルで抑えて行うことが考えられる。こうすることで、メモリ容量がさらに少なくて済む。
なお、上述では、ビデオカメラ装置500と家庭用ゲーム機器の本体501とは、無線通信で接続されるように説明したが、これはこの例に限られない。すなわち、ビデオカメラ装置500と家庭用ゲーム機器の本体501とは、USBやIEEE1394といったインタフェースにより、有線で接続されていてもよい。
以上、上述した本発明は、画像またはビデオ信号をウェーブレット変換する装置または方法、並びに、帯域分析された情報を合成フィルタバンクリングして画像またはビデオ信号に復元するウェーブレット逆変換する装置または方法であれば、様々なものに適用することができる。
すなわち、上述した図23の画像符号化装置101に示されるように、ウェーブレット変換の後段に符号化手段を付加することで、本発明は、図27乃至図29を参照して上述したような画像信号やビデオ信号の画像を圧縮して伝送、受信し、伸張して画像を出力する装置やシステムに用いて好適である。この発明は、特に、画像の圧縮符号化から復号および出力までの遅延が短いことが要求されるような装置またはシステムに用いて好適である。
本発明は、例えば、ビデオカメラで撮影された映像を見ながらマジックハンドを操作して治療行為を行うような、医用遠隔医療診断の用途に用いて好適である。また、この発明は、放送局内などのシステムにおける、ディジタルビデオ信号の圧縮符号化および伝送、ならびに、圧縮符号化されたディジタルビデオ信号の復号に用いて好適である。
さらに、実況中継されるライブ映像の配信を行うシステム、教育現場において生徒と教師との間でインタラクティブな通信を可能としたシステムなどに、本発明を適用することができる。
また、カメラ機能付き携帯電話端末といった、撮像機能を有するモバイル端末で撮影された画像データの送信するシステム、テレビジョン会議システム、監視カメラおよび監視カメラで撮影された映像を記録するレコーダによるシステム、無線での画像伝送システム、並びに対話型ゲームアプリケーションなどに、本発明を適用することができる。
上述した一連の処理は、図29でも上述したように、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図30は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータ701の構成の例を示すブロック図である。CPU711は、ROM712、または記憶部718に記憶されているプログラムに従って各種の処理を実行する。RAM713には、CPU711が実行するプログラムやデータなどが適宜記憶される。これらのCPU711、ROM712、およびRAM713は、バス714により相互に接続されている。
CPU711にはまた、バス714を介して入出力インタフェース715が接続されている。入出力インタフェース715には、キーボード、マウス、マイクロフォンなどよりなる入力部716、ディスプレイ、スピーカなどよりなる出力部717が接続されている。CPU711は、入力部716から入力される指令に対応して各種の処理を実行する。そして、CPU711は、処理の結果を出力部717に出力する。
入出力インタフェース715に接続されている記憶部718は、例えばハードディスクからなり、CPU711が実行するプログラムや各種のデータを記憶する。通信部719は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部719を介してプログラムを取得し、記憶部718に記憶してもよい。
入出力インタフェース715に接続されているドライブ720は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア721が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部718に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図30に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM,DVDを含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア721、または、プログラムが一時的もしくは永続的に格納されるROM712や、記憶部718を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部719を介して、ローカルエリアネットワーク、インターネット、ディジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 ウェーブレット変換装置, 11 水平分析フィルタ部, 12 レベル1バッファ, 13 レベル2バッファ, 14 レベル3バッファ, 15 レベル4バッファ, 16 セレクタ, 17 係数バッファ, 18 垂直分析フィルタ部, 19 水平分析フィルタ部, 51 ウェーブレット逆変換装置,61 レベル3バッファ, 62 レベル2バッファ, 63 レベル1バッファ, 64 セレクタ, 65 垂直合成フィルタ部, 66 係数バッファ, 67 水平合成フィルタ部, 68 セレクタ, 101 画像符号化装置, 151 画像復号装置