(57)【要約】【課題】遅延時間をより低減させるとともにコストを低減させることができるようにする。【解決手段】データ連結部１３１は、２サイクルかけて供給される２つの１６ビットデータを連結し、３２ビットデータとして１サイクルで１ポートSRAM１３２に書き込む。書き込みが行われた次のサイクルにおいて、データ分割部１３３は、１ポートSRAM１３２より３２ビットデータを１つ読み出し、それを２つの１６ビットデータに分割し、２サイクルかけて出力する。本発明は、例えば、ウェーブレット変換装置やウェーブレット逆変換装置に適用することができる。【選択図】図９
2008288835.tif 000002
【特許請求の範囲】
【請求項１】
画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、
前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段と、
前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段と
を備える情報処理装置。
【請求項２】
前記保持手段は、
前記分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、
１つのデータを複数に分割し、前記サイクル毎に１つずつ前記分析フィルタ処理手段に供給する分割手段と、
データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
を備える請求項１に記載の情報処理装置。
【請求項３】
前記連結手段は、前記分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、
前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記分析フィルタ処理手段に供給する
請求項２に記載の情報処理装置。
【請求項４】
画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、
前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給する
ステップを含む情報処理方法。
【請求項５】
画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、
前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段と、
前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段と、
前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段と、
前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段と
を備える情報処理装置。
【請求項６】
前記輝度成分用保持手段は、
前記輝度成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する輝度成分用連結手段と、
１つのデータを複数に分割し、前記サイクル毎に１つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段と、
データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段と
を備え、
前記色差成分用保持手段は、
前記色差成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する色差成分用連結手段と、
１つのデータを複数に分割し、前記サイクル毎に１つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段と、
データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段と
を備える請求項５に記載の情報処理装置。
【請求項７】
前記輝度成分用連結手段は、前記輝度成分用分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、
前記輝度成分用分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記輝度成分用分析フィルタ処理手段に供給し、
前記色差成分用連結手段は、前記色差成分用分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、
前記色差成分用分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記色差成分用分析フィルタ処理手段に供給する
請求項６に記載の情報処理装置。
【請求項８】
画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、
前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し、
前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給する
ステップを含む情報処理方法。
【請求項９】
画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、
前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段と
を備える情報処理装置。
【請求項１０】
前記保持手段は、
前記合成フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、
１つのデータを複数に分割し、前記サイクル毎に１つずつ前記合成フィルタ処理手段に供給する分割手段と、
データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
を備える請求項９に記載の情報処理装置。
【請求項１１】
前記連結手段は、前記合成フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、
前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記合成フィルタ処理手段に供給する
請求項１０に記載の情報処理装置。
【請求項１２】
情報処理装置の情報処理方法であって、
画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、
前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給する
ステップを含む情報処理方法。
【請求項１３】
画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、
前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段と
を備える情報処理装置。
【請求項１４】
前記保持手段は、
サイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、
１つのデータを複数に分割し、前記サイクル毎に１つずつ出力する分割手段と、
データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
を備える請求項１３に記載の情報処理装置。
【請求項１５】
前記連結手段は、前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、
前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ出力する
請求項１４に記載の情報処理装置。
【請求項１６】
情報処理装置の情報処理方法であって、
画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、
互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストを低減させることができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
従来の代表的な画像圧縮方式として、ISO（International Standards Organization）によって標準化されたJPEG(Joint Photographic Experts Group)やJPEG２０００がある。これは離散コサイン変換(Discrete Cosine Transform ; DCT)を用い、比較的高いビットが割り当てられる場合には、良好な符号化画像および復号画像を供することが知られている。
【０００３】
近年では画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタによって複数の帯域に分割し、帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、DCT変換で問題になる高圧縮でのブロック歪みが無いことから、DCTに代わる新たな技術として有力視されている。
【０００４】
２００１年１月に国際標準化が完了したJPEG２０００は、このウェーブレット変換に高能率なエントロピ符号化（ビットプレーン単位のビット・モデリングと算術符号化）を組み合わせた方式を採用しており、JPEGに比べて符号化効率の大きな改善を実現している。
【０００５】
ウェーブレット変換処理（例えば特許文献１参照）は基本的に画像データを入力して、水平方向のフィルタリングと垂直方向のフィルタリングを行いながら、低域成分を階層的に分割する手段を用いる。
【０００６】
このウェーブレット変換処理により画像データが変換された係数データ（周波数成分）を、元の画像データに変換するウェーブレット逆変換処理は、最上位の分割レベルから最下位の分割レベルまで高域成分と低域成分を合成フィルタ処理しながら、最終的に画像を復元する処理を行う。
【０００７】
このウェーブレット逆変換処理においては、処理途中の係数データや、最終的に得られる画像データがバッファメモリに一時的に保持されるが、合成フィルタ処理は再帰的に繰り返されるため、バッファメモリへのデータの書き込みと読み出しを高頻度で行う必要がある。
【０００８】
【特許文献１】特開平１０−２８３３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、そのバッファメモリとして、分析フィルタ処理や合成フィルタ処理を行う処理部と共有バスを介して接続される大容量の外部メモリを用いるようにすると、その処理部と比較して動作周波数が低速な外部メモリおよび共有バスにより、頻繁に行われるバッファメモリとのデータの授受が低速になるので、ウェーブレット変換処理およびウェーブレット逆変換処理の処理速度が低下してしまい、遅延時間が増大する恐れがあった。
【００１０】
例えばTV会議システムやビデオゲームシステム等のように、画像データの伝送を低遅延で行うことが望ましいシステムにおいては、このような遅延時間の増大は、特に影響が大きく、少しでも遅延時間を低減することが求められる。
【００１１】
つまり、バッファメモリへのデータの入出力はより高速に行うことができるようにするのが望ましい。そこで、処理部内部に設けられる内蔵メモリをバッファメモリとして使用することが考えられるが、その場合においても、バッファメモリへのデータの入出力がさらに高速に行うようにすることが望まれる。ただし、回路規模の増大は製造コストや運用コスト（消費電力）の増大に繋がるため、同時に回路規模の縮小化も望まれる。
【００１２】
本発明は、このような従来の実情に鑑みて提案されたものであり、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストも低減させることができるようにするものである。
【課題を解決するための手段】
【００１３】
本発明の第１の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段と、前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段とを備える情報処理装置である。
【００１４】
前記保持手段は、前記分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記分析フィルタ処理手段に供給する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
【００１５】
前記連結手段は、前記分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記分析フィルタ処理手段に供給することができる。
【００１６】
本発明の第１の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
【００１７】
本発明の第２の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段と、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段と、前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段と、前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段とを備える情報処理装置である。
【００１８】
前記輝度成分用保持手段は、前記輝度成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する輝度成分用連結手段と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段とを備え、前記色差成分用保持手段は、前記色差成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する色差成分用連結手段と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段とを備えることができる。
【００１９】
前記輝度成分用連結手段は、前記輝度成分用分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、前記輝度成分用分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記輝度成分用分析フィルタ処理手段に供給し、前記色差成分用連結手段は、前記色差成分用分析フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、前記色差成分用分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記色差成分用分析フィルタ処理手段に供給することができる。
【００２０】
本発明の第２の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し、前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
【００２１】
本発明の第３の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段とを備える情報処理装置である。
【００２２】
前記保持手段は、前記合成フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記合成フィルタ処理手段に供給する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
【００２３】
前記連結手段は、前記合成フィルタ処理手段より前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ前記合成フィルタ処理手段に供給することができる。
【００２４】
本発明の第３の側面はまた、情報処理装置の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
【００２５】
本発明の第４の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段とを備える情報処理装置である。
【００２６】
前記保持手段は、サイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段と、１つのデータを複数に分割し、前記サイクル毎に１つずつ出力する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
【００２７】
前記連結手段は、前記サイクル毎に、第１のデータ単位毎に供給される前記データを連結し、第２のデータ単位の１つのデータを生成し、前記分割手段は、前記第２のデータ単位の１つのデータを前記第１のデータ単位毎に分割することにより、前記第１のデータ単位のデータを複数生成し、前記サイクル毎に、前記第１のデータ単位のデータを１つずつ出力することができる。
【００２８】
本発明の第４の側面はまた、情報処理装置の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力するステップを含む情報処理方法である。
【００２９】
本発明の第１の側面においては、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持しているデータであって、次回の分析フィルタ処理の演算に必要なデータが供給される。
【００３０】
本発明の第２の側面においては、画像データの輝度成分について、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、画像データの色差成分について、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、輝度成分用の分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の輝度成分用の分析フィルタ処理の演算に必要なデータが供給され、色差成分用の分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の色差成分用の分析フィルタ処理の演算に必要なデータが供給される。
【００３１】
本発明の第３の側面においては、画像データに対して、画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理が再帰的に行われ、合成フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の合成フィルタ処理の演算に必要なデータが供給される。
【００３２】
本発明の第４の側面においては、画像データに対して、画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理が再帰的に行われ、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分が保持され、最終的に生成される、復元された画像データが保持されるタイミングに合わせて、既に保持されている、１つ下位の分割レベルの周波数成分であって、さらに合成フィルタ処理が可能な周波数成分が読み出されて出力される。
【発明の効果】
【００３３】
本発明によれば、ウェーブレット変換処理またはウェーブレット逆変換処理を行うことができる。特に、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストも低減させることができる。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３５】
本発明の第１の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置（例えば、図１のウェーブレット変換装置１００）であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段（例えば、図１の垂直分析フィルタ部１１８）と、前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段（例えば、図１の途中計算用バッファ部１１７）とを備える情報処理装置である。
【００３６】
前記保持手段は、前記分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段（例えば、図９のデータ連結部１３１）と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記分析フィルタ処理手段に供給する分割手段（例えば、図９のデータ分割部１３３）と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段（例えば、図９の１ポートSRAM１３２）とを備えることができる。
【００３７】
本発明の第１の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置（例えば、図１のウェーブレット変換装置１００）の情報処理方法であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い（例えば、図１４のステップＳ１２２）、前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給する（例えば、図１４のステップＳ１２３）ステップを含む情報処理方法である。
【００３８】
本発明の第２の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置（例えば、図１６のウェーブレット変換装置２００）であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段（例えば、図１６のＹ用垂直分析フィルタ部２１７）と、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段（例えば、図１６のＣ用垂直分析フィルタ部２１８）と、前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段（例えば、図１６の途中計算用Ｙバッファ部２２３）と、前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段（例えば、図１６の途中計算用Ｃバッファ部２２４）とを備える情報処理装置である。
【００３９】
前記輝度成分用保持手段は、前記輝度成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する輝度成分用連結手段（例えば、図９のデータ連結部１３１）と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段（例えば、図９のデータ分割部１３３）と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段（例えば、図９の１ポートSRAM１３２）とを備え、前記色差成分用保持手段は、前記色差成分用分析フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する色差成分用連結手段（例えば、図９のデータ連結部１３１）と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段（例えば、図９のデータ分割部１３３）と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段（例えば、図９の１ポートSRAM１３２）とを備えることができる。
【００４０】
本発明の第２の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置（例えば、図１６のウェーブレット変換装置２００）の情報処理方法であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い（例えば、図１４のステップＳ１２２）、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い（例えば、図１４のステップＳ１２２）、前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し（例えば、図１４のステップＳ１２３）、前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給する（例えば、図１４のステップＳ１２３）ステップを含む情報処理方法である。
【００４１】
本発明の第３の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段（例えば、図２７の垂直合成フィルタ部３１２）と、前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段（例えば、図２７の途中計算用バッファ部３１３）とを備える情報処理装置（例えば、図２７のウェーブレット逆変換装置３００）である。
【００４２】
前記保持手段は、前記合成フィルタ処理手段よりサイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段（例えば、図９のデータ連結部１３１）と、１つのデータを複数に分割し、前記サイクル毎に１つずつ前記合成フィルタ処理手段に供給する分割手段（例えば、図９のデータ分割部１３３）と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段（例えば、図９の１ポートSRAM１３２）とを備えることができる。
【００４３】
本発明の第３の側面はまた、情報処理装置（例えば、図２７のウェーブレット逆変換装置３００）の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い（例えば、図３７のステップＳ３６１）、前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給する（例えば、図３７のステップＳ３６２）ステップを含む情報処理方法である。
【００４４】
本発明の第４の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段（例えば、図２７の垂直合成フィルタ部３１２）と、前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段（例えば、図２７の出力バッファ部３１６）とを備える情報処理装置（例えば、図２７のウェーブレット逆変換装置３００）である。
【００４５】
前記保持手段は、サイクル毎に１つずつ供給される複数のデータを連結し、１つのデータを生成する連結手段（例えば、図３２のデータ連結部３７３）と、１つのデータを複数に分割し、前記サイクル毎に１つずつ出力する分割手段（例えば、図３２のデータ分割部３７５）と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された１つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から１つを１サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段（例えば、図３２の１ポートSRAM３７４）とを備えることができる。
【００４６】
本発明の第４の側面はまた、情報処理装置（例えば、図２７のウェーブレット逆変換装置３００）の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い（例えば、図３７のステップＳ３６１）、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される１つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する（例えば、図３６のステップＳ３４１）ステップを含む情報処理方法である。
【００４７】
以下、本発明の実施の形態について説明する。
【００４８】
図１は、本発明を適用したウェーブレット変換装置の一実施形態に係る構成例を示す図である。このウェーブレット変換装置１００は、入力された画像信号に対して、水平方向の分析フィルタ処理と垂直方向の分析フィルタ処理を行いながら、低域成分を、所定の分割レベル（図１の例の場合、分割レベル４）まで階層的に分割する帯域分析装置である。
【００４９】
図１のウェーブレット変換装置１００は、水平分析フィルタ部１１１、レベル１バッファ部１１２、レベル２バッファ部１１３、レベル３バッファ部１１４、レベル４バッファ部１１５、セレクタ１１６、途中計算用バッファ部１１７、垂直分析フィルタ部１１８、水平分析フィルタ部１１９、および制御部１２０を有する。
【００５０】
水平分析フィルタ部１１１には、画像信号が入力される（Ｄ１０）。水平分析フィルタ部１１１は、その画像信号に対して、分割レベル１の水平方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、水平分析フィルタ処理結果である、低域成分の係数と高域成分の係数からなる周波数成分の係数（以下、適宜、低域成分、高域成分、周波数成分とも称する）を生成する（Ｄ１１）。
【００５１】
このとき、水平分析フィルタ部１１１においては、図示せぬ内蔵メモリ（またはレジスタ）に展開されるベースバンド上の隣接する位置にある画素のデータが読み出されながら、水平方向の低域分析フィルタ処理および高域分析フィルタ処理が行われる。
【００５２】
レベル１バッファ部１１２は、分割レベル１の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル１バッファ部１１２には、水平分析フィルタ部１１１による分割レベル１の水平分析フィルタ処理の結果の周波数成分（低域成分と高域成分）の係数が記憶、保持される（Ｄ１１）。そして、レベル１バッファ部１１２に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ（係数）が溜まり次第、垂直ライン分の係数は、セレクタ１６を介して読み出される（Ｄ１２）。
【００５３】
レベル２バッファ部１１３は、分割レベル２の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル２バッファ部１１３には、水平分析フィルタ部１１９による分割レベル２の水平分析フィルタ処理の結果の周波数成分（低域成分と高域成分）の係数が記憶、保持される（Ｄ２０）。そして、レベル２バッファ部１１３に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ（係数）が溜まり次第、垂直ライン分の係数は、セレクタ１１６を介して読み出される（Ｄ１３）。
【００５４】
レベル３バッファ部１１４は、分割レベル３の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル３バッファ部１１４には、水平分析フィルタ部１１９による分割レベル３の水平分析フィルタ処理の結果の周波数成分（低域成分と高域成分）の係数が記憶、保持される（Ｄ２１）。そして、レベル３バッファ部１１４に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ（係数）が溜まり次第、垂直ライン分の係数は、セレクタ１１６を介して読み出される（Ｄ１４）。
【００５５】
レベル４バッファ部１１５は、分割レベル４の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル４バッファ部１１５には、水平分析フィルタ部１１９による分割レベル４の水平分析フィルタ処理の結果の周波数成分（低域成分と高域成分）の係数が記憶、保持される（Ｄ２２）。そして、レベル４バッファ部１１５に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ（係数）が溜まり次第、垂直ライン分の係数は、セレクタ１１６を介して読み出される（Ｄ１５）。
【００５６】
なお、レベル１バッファ部１１２乃至レベル４バッファ部１１５をまとめてレベル別バッファ部１２１とも称する。
【００５７】
セレクタ１１６は、垂直分析フィルタ部１１８の制御のもと、レベル別バッファ部１２１のレベル１バッファ部１１２乃至レベル４バッファ部１１５のうち、対応する分割レベルのバッファ部からの出力を選択し、選択した出力を、係数として、垂直分析フィルタ部１１８に出力する（Ｄ１６）。
【００５８】
途中計算用バッファ部１１７は、垂直分析フィルタ処理途中に生成される係数の一部を記憶、保持する。すなわち、途中計算用バッファ部１１７には、垂直分析フィルタ部１１８による垂直分析フィルタ処理途中に生成される係数のうち、次の垂直分析フィルタ処理で必要な係数が、途中演算用の係数として記憶、保持される。そして、次の垂直分析フィルタ処理の際に垂直分析フィルタ部１１８により読み出される。
【００５９】
垂直分析フィルタ部１１８は、セレクタ１１６からの所定の垂直ライン分の係数が入力されると（Ｄ１６）、途中計算用バッファ部１１７から途中演算用の係数（すなわち、今の垂直分析フィルタ処理の際に必要な係数）を読み出し（Ｄ１８）、それらの係数を用いて、垂直分析フィルタ処理を行う。そして、垂直分析フィルタ部１１８は、垂直分析フィルタ処理結果の周波数成分のうち、水平方向にも垂直方向にも低域成分である周波数帯域、すなわち低域サブバンドの係数のみを水平分析フィルタ部１１９に出力し（Ｄ１９）、それ以外の周波数帯域、すなわち高域サブバンドの係数をウェーブレット変換装置１００の図示せぬ外部（以下、単に外部と称する）に出力する（Ｄ２３）。
【００６０】
水平分析フィルタ部１１９は、処理する対象の周波数成分の分割レベルが異なるだけであり、基本的に、水平分析フィルタ部１１１と同様に構成される。すなわち、水平分析フィルタ部１１９においては、図示せぬ内蔵メモリ（またはレジスタ）に展開されるベースバンド上の隣接する位置にある係数が読み出されながら（Ｄ１９）、その係数に対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理が行われる。
【００６１】
そして、水平分析フィルタ部１１９は、水平分析フィルタ処理結果である周波数成分（低域成分と高域成分）のいずれかを、レベル別バッファ部１２１の、対応するレベルのバッファ部（レベル２バッファ部１１３乃至レベル４バッファ部１１５のうちのいずれか）に記憶、保持させる（Ｄ２０乃至Ｄ２２）。
【００６２】
制御部１２０は、例えばCPU（Central Processing Unit）、ROM（Read Only Memory）、およびRAM（Random Access Memory）を含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット変換装置１００の各部の処理を制御する。
【００６３】
次に、各部の動作の流れについて説明する。
【００６４】
外部から、水平分析フィルタ部１１１に画像信号が入力される（Ｄ１０）。水平分析フィルタ部１１１は、画像信号に対して、分割レベル１の水平分析フィルタ処理を行う。すなわち、水平分析フィルタ部１１１は、図示せぬ内蔵メモリ（またはレジスタ）を有しており、内蔵メモリには、図２に示される番号順に、入力される画像信号の画素が順に展開されていく。なお、図２の例においては、四角で示される画素が順に展開された結果のベースバンド画像が示されている。
【００６５】
水平分析フィルタ部１１１は、内蔵メモリに展開されたベースバンド上の隣接する位置にある所定の数（図２の場合、５コラム（サンプル）数）の画素のデータを、位置をずらしながら読み出し、水平方向の低域分析フィルタ処理および高域分析フィルタ処理を順番に行う。
【００６６】
水平方向のデータは、メモリの番地に容易に展開しやすい。したがって、メモリからデータを読み出しながら、水平分析フィルタ部１１１においては、水平分析フィルタ処理が順番に実行される。なお、水平方向の低域分析フィルタ処理および高域分析フィルタ処理の詳細については、図６を参照して後述する。
【００６７】
水平分析フィルタ部１１１は、分割レベル１の水平分析フィルタリング結果の周波数成分の係数を、レベル１バッファ部１１２に記憶させる（Ｄ１１）。このとき、水平分析フィルタ部１１１は、図３に示されるように、水平分析フィルタ処理結果である高域成分（Ｈ）と低域成分（Ｌ）をインターリーブさせて、レベル１バッファ部１１２に記憶させる。
【００６８】
なお、水平分析フィルタ処理の結果を、低域と高域の両成分に分割されて、バッファに記憶する方法もあるが、その場合、低域成分と高域成分をバッファ内の別のアドレスにマッピングするためのコントローラが別途必要になる等、制御が煩雑になる。
【００６９】
これに対して、本発明の例が示される図３の例においては、レベル１バッファ部１１２に、高域成分（Ｈ）と低域成分（Ｌ）が交互に記憶されている。すなわち、水平分析フィルタ部１１１により、水平分析フィルタ処理結果である高域成分と低域成分がインターリーブされて、レベル１バッファ部１１２に記憶されるので、このレベル１バッファ部１１２に記憶されている係数を読み出す際に、レベル１バッファ部１１２の先頭から順番に読み出すだけでよく、制御を単純（シンプル）にすることができる。
【００７０】
図１に戻り、例えば、レベル１バッファ部１１２に水平分析フィルタ処理結果の周波数成分の係数が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分（図３の場合、３ライン分）溜まると、垂直分析フィルタ部１１８は、セレクタ１１６がレベル１バッファ部１１２の出力を選択するように制御することで、必要な垂直ライン分の周波数成分の係数をレベル１バッファ部１１２から読み出す（Ｄ１２）。読み出された周波数成分の係数は、セレクタ１１６を介して、垂直分析フィルタ部１１８に入力される（Ｄ１６）。
【００７１】
さらに、垂直分析フィルタ部１１８は、１つ前の周波数係数を求める処理において途中計算用バッファ部１１７に記憶された途中演算用の係数を読み出す（Ｄ１８）。そして、垂直分析フィルタ部１１８は、それらの、３ライン分の周波数成分の係数および途中演算用の係数を用いて、対応する分割レベル（いまの場合、分割レベル１）の垂直分析フィルタ処理を行う。なお、垂直方向の低域分析フィルタ処理および高域分析フィルタ処理の詳細については図８を参照して後述する。
【００７２】
垂直分析フィルタ部１１８は、分割レベル１の垂直分析処理途中（垂直分析フィルタ処理の演算過程）に生成される係数の一部（すなわち、次回の垂直分析フィルタ処理に必要な係数）を、途中演算用の係数として途中計算用バッファ部１１７に記憶させる（Ｄ１７）。
【００７３】
この分割レベル１の垂直分析フィルタ処理の結果（すなわち、分割レベル１の分析フィルタ処理の結果）、図４に示されるように、垂直方向および水平方向に低域な周波数帯域（サブバンド）を示す低域サブバンドの係数(１ＬＬ)の係数、および、それ以外のサブバンドよりなる高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）の係数からなる４つのサブバンドの係数が生成される。なお、図４の例における四角は、１つの係数を示し、「Ｌ」および「Ｈ」の順序は、前側が水平分析フィルタ処理を行った結果の帯域（低域または高域）を示し、後側が垂直分析フィルタ処理を行った結果の帯域を示す。また、「Ｌ」および「Ｈ」の前の数字は分割レベルを表す。
【００７４】
以上が分割レベル１の分析フィルタ処理であり、その結果、垂直分析フィルタ部１１８においては、分割レベル１の低域サブバンドの係数（１ＬＬ）と高域サブバンドの係数（１ＨＬ，１ＬＨ，１ＨＨ）が生成される（Ｄ１９およびＤ２３）。なお、これらのうち、各低域サブバンドの成分だけはさらに分析フィルタ処理が行われる。このように分析フィルタ処理は、各分割レベルの低域サブバンドの係数について、設定されている分割レベル（最上位レベル）まで再帰的に繰り返される。これに対して、高域サブバンドの係数は、通常それ以上に分析されない。つまり、垂直分析フィルタ部１１８は、今回生成された高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）の周波数成分を、外部に出力する（Ｄ２３）。
【００７５】
一方、低域サブバンド（１ＬＬ）の周波数成分は、水平分析フィルタ部１１９に出力される（Ｄ１９）。水平分析フィルタ部１１９は、内蔵するメモリに展開される低域サブバンドの周波数成分の係数に対して、対応する分割レベル（いまの場合、分割レベル２）の水平分析フィルタ処理（水平方向の低域分析フィルタ処理および高域分析フィルタ処理）を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。そしてそれ以降の処理が繰り返される。
【００７６】
すなわち、水平分析フィルタ部１１９は、水平分析フィルタ処理結果の周波数成分（低域成分と高域成分）の係数を、図３を参照して上述したように、対応するレベルのバッファ（今の場合、レベル２バッファ部１１３）に記憶、保持させる（Ｄ２０）。
【００７７】
そして、レベル２バッファ部１１３に水平分析フィルタ処理結果の周波数成分の係数が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分溜まると、その所定の垂直ライン分の係数は、レベル２バッファ部１１３から読み出され（Ｄ１３）、セレクタ１１６を介して、垂直分析フィルタ部１１８に入力される（Ｄ１６）。そして、途中計算用バッファ部１１７から途中演算用の係数が読み出され（Ｄ１８）、その途中演算用の係数を用いて、分割レベル２の垂直分析フィルタ処理が行われる。
【００７８】
分割レベル２の垂直分析フィルタ処理途中の係数の一部の係数が、途中計算用バッファ部１１７に記憶され、レベル２の垂直分析フィルタ処理の結果、低域サブバンド（２ＬＬ）および高域サブバンド（２ＨＬ，２ＬＨ，２ＨＨ）からなる４つの周波数帯域の周波数成分が生成される。このうち、高域サブバンド（２ＨＬ，２ＬＨ，２ＨＨ）の係数は、外部に出力される（Ｄ２３）。低域サブバンド（２ＬＬ）の係数は、水平分析フィルタ部１１９に供給される（Ｄ１９）。
【００７９】
水平分析フィルタ部１１９は、この分割レベル２の低域サブバンド（２ＬＬ）の係数に対して、分割レベル２の水平分析フィルタ処理を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。水平分析フィルタ部１１９は、これらの係数を、レベル３バッファ部１１４に供給して記憶、保持させる（Ｄ２１）。これらの係数は、再度、垂直分析フィルタ部１１８に供給され、垂直分析フィルタ処理が行われる。
【００８０】
以上のように、各分割レベルの低域サブバンドの係数について垂直分析フィルタ処理および水平分析フィルタ処理が、最上位レベルに達するまで、再帰的に実行される。各分割レベルにおいて生成された高域サブバンドの係数は、順次、外部に出力される（Ｄ２３）。
【００８１】
予め設定された分割レベルの最上位レベル（分割レベル４）に達すると、垂直分析フィルタ部１１８は、その最上位レベルの周波数成分（４ＬＬ，４ＨＬ，４ＬＨ，４ＨＨ）を、外部に出力する（Ｄ２３）。これにより、分割レベル４の画像信号のウェーブレット変換は終了される。
【００８２】
以上のように、図１のウェーブレット変換装置１００は、レベル１から所定のレベル数までの分割レベル毎のバッファ部を備え、水平分析フィルタ処理を行いながら、水平分析フィルタ処理の結果を、分割レベル毎のバッファ部に記憶させている。したがって、この水平分析フィルタ処理の結果を、分割レベル毎のバッファ部から読み出しながら、垂直方向のフィルタ処理を行うことができる。すなわち、水平方向と垂直方向のフィルタ処理を同時並行的に動作させることができる。
【００８３】
これにより、ウェーブレット変換装置１００は、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
【００８４】
また、図１のウェーブレット変換装置１００は、レベル１から所定のレベル数までの分割レベル毎のバッファ部とともに、途中計算用バッファ部１１７を有しており、垂直方向の分析フィルタ処理の際に、次回の処理に必要な係数を途中計算用バッファ部１１７に保持させ、次回の垂直分析フィルタ処理の際にその係数を読み出して利用するので、外部にメモリを構成する必要がなくなる。
【００８５】
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック（周波数）を上げる必要もないので、省電力化することができる。
【００８６】
次に、上述した分析フィルタ処理における演算方法について具体的に説明する。分析フィルタ処理における演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
【００８７】
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets.”, Appl. Comput. Harmon. Anal., vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
【００８８】
図５は、JPEG(Joint Photographic Experts Group)２０００規格でも採用されている９×７分析フィルタのリフティング構成を示している。この９×７分析フィルタに対してリフティング技術を適用したときの分析フィルタ処理について説明する。
【００８９】
図５の例において、１段目（最上段）は、入力画像のサンプル群（画素列）を示し、２，３段目は、それぞれステップＡ１およびステップＡ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＡ３の処理で生成される高域成分出力を示し、５段目は、ステップＡ４の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタ処理で得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印（■）が偶数番目のサンプルまたはライン、丸印（●）が奇数番目のサンプルまたはラインとする。
【００９０】
９×７分析フィルタに対してリフティング技術を適用した分析フィルタ処理においては、ステップＡ３の処理で高域成分が得られ、ステップＡ４の処理で低域成分が得られる。なお、ステップＡ１乃至ステップＡ４の処理は、次の式（１）乃至式（４）で表される。
【００９１】
stepA1：ｄi1＝ｄi0＋α（ｓi0＋ｓi+10）      ・・・（１）
stepA2：ｓi1＝ｓi0＋β（ｄi-11＋ｄi1）      ・・・（２）
stepA3：ｄi2＝ｄi1＋γ（ｓi1＋ｓi+11）      ・・・（３）
stepA4：ｓi2＝ｓi1＋δ（ｄi-12＋ｄi2）      ・・・（４）
【００９２】
ただし、
α＝−1.586134342
β＝−0.05298011857
γ＝0.8829110755
δ＝0.4435068520
【００９３】
このように、リフティング技術を適用した分析フィルタ処理においては、ステップＡ１およびＡ２の処理が行われ、ステップＡ３で、高域成分の係数が生成された後に、ステップＡ４で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式（１）乃至式（４）に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、ウェーブレット変換装置１００においても、水平分析フィルタ処理および垂直分析フィルタ処理に、このリフティング技術を適用する。
【００９４】
まず、水平分析フィルタ部１１１および水平分析フィルタ部１１９により実行される水平分析フィルタ処理について具体的に説明する。図６は、水平方向の係数群に対しての水平分析フィルタ処理を、図５のリフティング構成により実行する場合の例を示している。
【００９５】
図６の例においては、入力される水平方向の係数に対して、図５で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域成分の係数（以下、高域係数とも称する）と低域成分の係数（以下、低域係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列（コラム）番号を示している。
【００９６】
さらに、上から１段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【００９７】
以下、動作について上から順に説明する。図６の上段には、水平方向にコラム番号４乃至６の３コラムの係数が入力されて、水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。
【００９８】
この水平リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、コラム番号０乃至４の４コラムの係数の入力が必要である。
【００９９】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号５および６の２コラムの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるコラム番号４の係数も必要である。
【０１００】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【０１０１】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号４乃至６の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々３つの係数であるので、水平分析フィルタ部１１１および水平分析フィルタ部１１９に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応することができる。
【０１０２】
したがって、１番目の水平リフティング演算においてラッチされていた太線実線で示される３つの係数と、入力されたコラム番号４乃至６の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
【０１０３】
コラム番号６の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号６乃至８の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図６の下段に示されている。
【０１０４】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号７および８の２コラムの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるコラム番号６の係数も必要であることがわかる。
【０１０５】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でフリップフロップにラッチされている。
【０１０６】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号６乃至８の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０１０７】
以上のようにして、３コラム分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタ処理が完了される。
【０１０８】
なお、以上においては、リフティング構成による１ライン分の水平分析フィルタ処理の例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタ処理を行う動作を、図７を参照して説明する。なお、図７において、図５および図６と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
【０１０９】
図７の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
【０１１０】
図中左から順に説明すると、先頭の入力ライン０における係数に対して、４つのステップからなる水平リフティング演算を経て１乃至１１の数字が付されている低域係数および高域係数が生成されている。このうち、奇数番目の数字（１，３，５，７，９，１１）が付されている係数は低域係数で、偶数番目の数字（２，４，６，８，１０）が付されている係数は高域係数である。
【０１１１】
入力ライン１しか図示されていないが、入力ライン１乃至入力ラインｎに関しても同様である。すなわち、先頭の入力ライン１における係数に対して、４つのステップからなる水平リフティング演算を経て１乃至１１の数字が付されている低域係数および高域係数が生成されており、このうち、奇数番目の数字（１，３，５，７，９，１１）が付されている係数は低域係数で、偶数番目の数字（２，４，６，８，１０）が付されている係数は高域係数である。
【０１１２】
そして、図７の右側に示すように、入力ライン０の水平フィルタリングの結果の１乃至１１が付された係数は、上から１段目に、手前から奥への水平方向に並べて展開される。入力ライン１の水平フィルタ処理の結果の１乃至１１が付された係数は、上から２段目に、手前から奥への水平方向に並べて展開される。入力ライン２の水平フィルタ処理の結果の係数は、上から３段目に、手前から奥への水平方向に並べて展開される。
【０１１３】
以上のように、各入力ライン０乃至入力ラインｎに対しての水平フィルタ処理の結果の係数が、図７の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタ処理の結果の１乃至１１が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
【０１１４】
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる。
【０１１５】
次に、垂直分析フィルタ部１１８により実行される垂直分析フィルタ処理について具体的に説明する。図８は、水平分析フィルタ処理の結果の係数を、図２を参照して上述したように垂直方向に並べ、垂直方向の分析フィルタ処理を、図５のリフティング構成により実行する場合の例を示している。
【０１１６】
なお、この図は、図７の右側に概念的に示した水平方向に展開されて並ぶ係数１つに着目したものであり、実際の２次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分の水平方向の係数の個数だけ、垂直方向の分析フィルタ処理の計算が必要になることは自明である。
【０１１７】
図８の例においては、垂直方向の係数に対して、図５で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
【０１１８】
さらに、左から１列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【０１１９】
以下、動作について左から順に説明する。図８の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
【０１２０】
この垂直リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、ライン番号０乃至４の４ラインの係数が必要である。
【０１２１】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号５および６の２ラインの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるライン番号４の係数も必要である。
【０１２２】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【０１２３】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号４乃至６の３ラインの係数の入力が必要であり、さらに、１番目の垂直リフティング演算の過程において生成される太線実線で示される３つの係数を、途中演算用の係数として、図１の途中計算用バッファ部１１７に記憶しておく必要がある。なお、このとき、垂直方向の３ラインの係数は、レベル別バッファ部１２１の、対応するレベルのバッファ部から、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが２であれば、レベル２バッファ部１１３から係数が読み出される。
【０１２４】
したがって、１番目の垂直リフティング演算で途中計算用バッファ部１１７に記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出され入力されるライン番号４乃至６の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部１１７に記憶される。
【０１２５】
ライン番号６の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号６乃至８の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図８の右側に示されている。
【０１２６】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号７および８の２ラインの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるライン番号６の係数も必要であることがわかる。
【０１２７】
なお、右側の太線実線で示される３つの係数は、左側の一点鎖線で示されるように、２番目の垂直リフティング演算で途中計算用バッファ部１１７に記憶されている。
【０１２８】
したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号６乃至８の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部１１７に記憶される。
【０１２９】
以上のようにして、３ライン分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
【０１３０】
以上のように途中計算用バッファ部１１７へのアクセス（データの読み出しおよび書き込み）は、垂直分析フィルタ処理の度、つまり頻繁に行われる。この途中計算用バッファ部１１７の実現方法として、垂直分析フィルタ部１１８を実現するLSI（Large Scale Integration）チップの外部に設けられた大容量のメモリ（外部メモリ）を用いる方法が考えられるが、一般的に、外部メモリは、LSIチップ内の演算処理部に比べて動作周波数が低く動作が低速である。また、アクセスするのに、動作周波数が低速でありかつ他の処理部にも使用される共有バスを介する必要があり、データの読み出しおよび書き込みは、さらに低速になる恐れがある。従って、このような外部メモリを用いてアクセス頻度の高い途中計算用バッファ部１１７を実現すると、垂直分析フィルタ処理の処理速度が極端に低減し、遅延時間が増大する恐れがある。
【０１３１】
そこで、途中計算用バッファ部１１７は、垂直分析フィルタ部１１８を実現するLSIチップ内部に設けられる高速動作可能なメモリを用いて実現するのが望ましい。その場合においてもさらに高速にアクセス可能にする方がより望ましい。図９は、途中計算用バッファ部１１７の構成例を示すブロック図である。
【０１３２】
図９に示されるように、途中計算用バッファ部１１７は、データ連結部１３１、１ポートSRAM（Static Random Access Memory）１３２、およびデータ分割部１３３を有する。
【０１３３】
データ連結部１３１は、垂直分析フィルタ部１１８より連続的に供給される（Ｄ５１）２つの１６ビットのデータを連結して３２ビットのデータを生成し、１ポートSRAM１３２に供給する（Ｄ５５）。データ連結部１３１は、セレクタ１４１、遅延部１４２、およびパッキング部１４３を有する。
【０１３４】
セレクタ１４１は、連続して供給される１６ビットのデータ２つを１組とし、先に供給される一方を遅延部１４２に供給し（Ｄ５２）、後に供給される他方をパッキング部１４３に供給する（Ｄ５４）ようにデータを振り分ける。遅延部１４２は、供給された１６ビットのデータのタイミングを１サイクル分（次のデータ供給タイミングまで）遅延させてからパッキング部１４３に供給する（Ｄ５３）。つまり、パッキング部１４３には、２つの１６ビットデータが同時に供給される。パッキング部１４３は、それら２つの１６ビットデータを連結させて１つの３２ビットデータを生成し、その３２ビットデータを１ポートSRAM１３２に供給して保持させる（Ｄ５５）。
【０１３５】
データ分割部１３３は、１ポートSRAM１３２より３２ビットデータを読み出し（Ｄ５６）、１つの３２ビットデータを２つの１６ビットデータに分割し、それらを連続的に出力する（Ｄ６０）。データ分割部１３３は、１６ビット分離部１４４、遅延部１４５、およびセレクタ１４６を有する。
【０１３６】
１６ビット分離部１４４は、１ポートSRAM１３２より読み出された３２ビットデータを上位１６ビットと下位１６ビットで分離し、２つの１６ビットデータを生成し、上位１６ビットの１６ビットデータをセレクタ１４６に供給し（Ｄ５７）、下位１６ビットの１６ビットデータを遅延部１４５に供給する（Ｄ５８）。遅延部１４５は、１６ビット分離部１４４より供給された下位１６ビットの１６ビットデータのタイミングを１サイクル分遅延させてからセレクタ１４６に供給する（Ｄ５９）。セレクタ１４６は、１サイクル毎に、入力を１６ビット分離部１４４または遅延部１４５に交互に切り替える。これにより２つの１６ビットデータは連続的に順次出力される（Ｄ６０）。
【０１３７】
１ポートSRAM１３２は、データの書き込みと読み出しを１系統で行う記憶媒体であり、制御部１２０に制御されて、データ連結部１３１のパッキング部１４３より供給される３２ビットデータを記憶し、記憶している３２ビットデータをデータ分割部１３３の１６ビット分離部１４４に出力する。
【０１３８】
データ記憶に使われる、LSIチップに内蔵されるメモリの中でRAM（Random Access Memory）は、データの読み書きを電気的に行うため、動作が高速であるが、単位面積当たりの価格が高いため、大量には使いにくいという欠点がある。RAMの一種に、記憶素子としてフリップフロップ回路を用いるSRAMがある。SRAMは、記憶保持のための動作を必要とせず、高速動作が利点だが、回路が複雑になるので集積度が低減する恐れがある。つまり、集積度を向上させるためには、SRAMの容量をいかに少なくすることができるかが重要なポイントになる。
【０１３９】
一般に、SRAMには、データの入出力を同時に行うことができない１ポートSRAMと、データ入出力が同時に実行可能な２ポートSRAMの２つがあり、それぞれ、図１０Ａまたは図１０Ｂのような入出力端子を有する。
【０１４０】
つまり、１ポートSRAMは、図１０Ａに示されるように、一般的に、クロック信号「CLK」が入力される端子、チップイネーブル信号「CEN」が入力される端子、データ入出力を制御するイネーブル信号「EN」が入力される端子、３２ビットデータを書き込むアドレス、または、３２ビットデータを読み出すアドレスを指定するアドレス情報「ADR」が入力される端子、書き込み用の３２ビットデータ「WD」が入力される端子、および、読み出された３２ビットデータ「RD」が出力される端子を有する。
【０１４１】
これに対して、２ポートSRAMは、図１０Ｂに示されるように、一般的に、書き込み用のクロック信号「WCLK」が入力される端子、書き込み制御用のイネーブル信号「WEN」が入力される端子、３２ビットデータを書き込むアドレスを指定する書き込み用のアドレス情報「WADR」が入力される端子、書き込み用の３２ビットデータ「WD」が入力される端子、読み出し用のクロック信号「RCLK」が入力される端子、読み出し制御用のイネーブル信号「REN」が入力される端子、３２ビットデータを読み出すアドレスを指定する読み出し用のアドレス情報「RADR」が入力される端子、および、読み出された３２ビットデータ「RD」が出力される端子を有する。
【０１４２】
図１０Ａに示される１ポートSRAMの場合、チップイネーブル信号「CEN」は、読み出し動作と書き込み動作を切り替える信号であり、イネーブル信号「EN」とアドレス情報「ADR」の２つの信号は、読み出し動作と書き込み動作で共有されている。例えば、チップイネーブル信号「CEN」が読み出し動作を指定する場合、イネーブル信号「EN」は読み出し動作タイミングを制御する信号となり、アドレス情報「ADR」は読み出すデータのアドレスを指定する信号となる。逆に、チップイネーブル信号「CEN」が書き込み動作を指定する場合、イネーブル信号「EN」は書き込み動作タイミングを制御する信号となり、アドレス情報「ADR」はデータを書き込むアドレスを指定する信号となる。つまり、１ポートSRAMは、読み出し動作と書き込み動作を同時に行うことができない。
【０１４３】
これに対して、図１０Ｂに示される２ポートSRAMの場合、書き込み動作を制御する信号と読み出し動作を制御する信号が、互いに完全に独立している。つまり、２ポートSRAMは、自由なタイミングで読み出し動作および書き込み動作が可能であり、読み出し動作と書き込み動作を並行して行うこともできる。
【０１４４】
図１１は、このような１ポートSRAMと２ポートSRAMで、４つのデータの書き込みを行い、さらに、すぐにそれらのデータを読み出す場合のタイミングチャートを示す模式図である。図１１Ａは、１ポートSRAMの場合のタイミングチャートの例を示し、図１１Ｂは、２ポートSRAMの場合のタイミングチャートの例を示す。
【０１４５】
図１１Ａに示されるように、１ポートSRAMの場合、イネーブル信号「EN」に従って、４つのデータが連続的に書き込まれ（４サイクル）、SRAMのレイテンシ（遅延）により１サイクル経過後、書き込まれた４つのデータが、連続的に読み出される（４サイクル）。従って、１ポートSRAMは、４つのデータの書き込みおよび読み出しの処理に、合計９サイクルの時間を必要とする。なお、「サイクル」は、処理の同期タイミング、つまり、時分割の単位となる時間を示している。例えば、ここではデータの書き込みまたは読み出しのタイミング（またはその周期）を示している。
【０１４６】
これに対して、図１１Ｂに示されるように、２ポートSRAMの場合、書き込み制御用のイネーブル信号「WEN」、および、読み出し制御用のイネーブル信号「REN」の両方が存在するので、４つのデータの読み出し動作と書き込み動作は並列化することが出来る。従って図１１Ｂに示されるように、２ポートSRAMは、読み出し動作および書き込み動作が４サイクルで実行可能であり、１サイクルのレイテンシと合わせて合計５サイクルで処理を終了することができる。
【０１４７】
HDTV（High Definition Television）の場合、１ラインの水平サイズは１９２０画素であるので、その１ライン分の係数を１ポートSRAMに書き込み、さらに読み出すと、１９２０×２＝３８４０サイクル必要になってしまう。つまり、分析フィルタ処理において途中計算用バッファ部１１７として１ポートSRAMを単純に適用すると、遅延時間が増大してしまう恐れがある。
【０１４８】
このサイクル数を減らすためには、１ポートSRAMの代わりに２ポートSRAMを用いるようにすればよいが、２ポートSRAMは、内部に１ポートSRAMの構成を２つ有するのと略等価であり、製造コストが高価であり、かつ、回路面積が略２倍になる。通常の場合、メモリの回路規模は、LSIチップの中での占有率が高く、メモリ面積の増大はそのままチップ面積の増大に繋がる恐れがある。
【０１４９】
そこで、途中計算用バッファ部１１７として１ポートSRAMを適用し、図９に示されるようにデータ連結部１３１を用いて１ポートSRAM１３２に書き込むデータを連結して３２ビット化し、また、１ポートSRAM１３２よりデータを３２ビット単位で読み出し、データ分割部１３３を用いてその３２ビットデータを２つの１６ビットデータに分離することにより、１ポートSRAM１３２に対するデータの読み出しと書き込みを並行して動作することができるようにする。
【０１５０】
図１２のタイミングチャートを参照して、図９の途中計算用バッファ部１１７の各部の動作の流れについて説明する。
【０１５１】
図１２の上から４段目に示されるように、最初のサイクルにおいて供給される１６ビットの書き込み用データ（WD１６bit）「０」が供給されると、データ連結部１３１のセレクタ１４１は、そのデータ「０」を、遅延部１４２を介して１サイクル遅延させてパッキング部１４３に供給する。そして、２番目のサイクルにおいて供給される１６ビットの書き込み用データ「１」が供給されると、データ連結部１３１のセレクタ１４１は、そのデータ「１」をパッキング部１４３に供給する。パッキング部１４３は、２サイクル目において、それらのデータ「０」および「１」を連結して３２ビットの書き込み用データ（WD３２bit）「０，１」を生成し、図１２の上から１段目乃至３段目に示される書き込み指示に従って、そのデータ「０，１」をアドレス「０」に書き込む。
【０１５２】
また、データ連結部１３１のセレクタ１４１は、図１２の上から４段目に示されるように、３番目のサイクルにおいて１６ビットの書き込み用データ（WD１６bit）「２」が供給されると、そのデータ「２」を、遅延部１４２を介して１サイクル遅延させてパッキング部１４３に供給する。つまりこの３サイクル目においては、１ポートSRAM１３２への書き込みは行われない。
【０１５３】
従って、データ分割部１３３の１６ビット分離部１４４は、その３サイクル目において、図１２の上から１段目乃至３段目に示される読み出し指示に従って、アドレス「０」に書き込まれた３２ビットデータを読み出し、その読み出したデータ（RD３２bit）（「０，１」）を、２つの１６ビットデータ（データ「０」およびデータ「１」）に分離する。１６ビット分離部１４４は、分離した一方のデータ「０」をセレクタ１４６に供給するとともに、他方のデータ「１」を、遅延部１４５を介して１サイクル遅延させてセレクタ１４６に供給する。セレクタ１４６は、それらのデータ「０」およびデータ「１」を順次出力する（RD１６bit）。
【０１５４】
上述したように３サイクル目において遅延されてパッキング部１４３に供給されたデータ「２」は、４サイクル目においてデータ連結部１３１のセレクタ１４１より遅延部１４２を介さずにパッキング部１４３に供給された１６ビットの書き込み用データ「３」と、４サイクル目において連結され、３２ビットの書き込み用データ（WD３２bit）「２，３」が生成される。パッキング部１４３は、４サイクル目において、図１２の上から１段目乃至３段目に示される書き込み指示に従って、そのデータ「２，３」をアドレス「１」に書き込む。
【０１５５】
３サイクル目と同様に、データ分割部１３３の１６ビット分離部１４４は、５サイクル目において、図１２の上から１段目乃至３段目に示される読み出し指示に従って、アドレス「１」に書き込まれた３２ビットデータを読み出し、その読み出したデータ（RD３２bit）（「２，３」）を、２つの１６ビットデータ（データ「２」およびデータ「３」）に分離する。１６ビット分離部１４４は、分離した一方のデータ「２」をセレクタ１４６に供給するとともに、他方のデータ「３」を、遅延部１４５を介して１サイクル遅延させてセレクタ１４６に供給する。セレクタ１４６は、それらのデータ「２」およびデータ「３」を順次出力する（RD１６bit）。
【０１５６】
以上のように、２つの１６ビットデータを３２ビットデータとして１ポートSRAMに対して読み出しおよび書き込みを行うことにより、途中計算用バッファ部１１７は、データ連結部１３１による書き込み、およびデータ分割部１３３による読み出しを、時分割により、同時並行的に行うことができ、合計５サイクルで４つのデータを１ポートSRAM１３２に書き込み、さらに、読み出すことができる。なお、ここで「同時並行的」とは、書き込みの開始から終了までの時間と読み出しの開始から終了までの時間が互いに重なっていることを示すものであり、厳密に言えばこれらの読み出しと書き込みの作業は「同時」に行われず、また「並行」して行われない（時分割されて交互に実行される）。
【０１５７】
このようにすることにより、ウェーブレット変換装置１００は、途中計算用バッファ部１１７の回路規模の増大を抑制するとともに、途中計算用バッファ部１１７を高速に動作させることができ、ウェーブレット変換における遅延時間の増大を抑制することができる。つまり、ウェーブレット変換装置１００は、ウェーブレット変換処理の遅延時間をより低減させるとともにコストも低減させることができる。
【０１５８】
なお、以上においては１ポートSRAM１３２が３２ビット単位でデータの入出力を行うように説明したが、１ポートSRAM１３２に対するデータ入出力のデータ単位は任意である。また、途中計算用バッファ部１１７へのデータの入出力は１６ビット単位で行われるように説明したが、途中計算用バッファ部１１７に対するデータ入出力のデータ単位も任意である。つまり、図１０に示されるデータ連結部１３１およびデータ分割部１３３の構成は一例であり、実際には、１ポートSRAM１３２に対するデータ入出力のデータ単位と、途中計算用バッファ部１１７に対するデータ入出力のデータ単位によって決定される。
【０１５９】
しかしながら基本的な構造は図１０の例と同様である。つまり、データ連結部１３１は、複数サイクルかけて途中計算用バッファ部１１７に入力される所定のデータ単位の複数のデータを連結して、１ポートSRAM１３２のデータ入力単位のデータを、供給されたデータ数より少ない数となるように、１つまたは複数生成し、そのデータをデータ数分のサイクルをかけて１ポートSRAM１３２に供給して保持させる。また、データ分割部１３３は、１ポートSRAM１３２より、１ポートSRAM１３２のデータ出力単位の、１つまたは複数のデータを、そのデータ数分のサイクルをかけて読み出し、読み出したデータを、途中計算用バッファ部１１７のデータ出力単位の複数のデータに分離し、途中計算用バッファ部１１７より出力させる。１ポートSRAM１３２は、データ入出力単位でデータの読み出しと書き込みを交互に行う。
【０１６０】
以上のようなウェーブレット変換装置１００により実行されるウェーブレット変換処理の流れの例を図１３のフローチャートを参照して説明する。なお、このウェーブレット変換処理は所定の処理単位毎に実行される。
【０１６１】
ウェーブレット変換処理が開始されると、ウェーブレット変換装置１００の水平分析フィルタ部１１１は、ステップＳ１０１において、レベル１の水平分析フィルタ処理を行い、ステップＳ１０２において、水平分析フィルタ処理の結果として得られた係数を、レベル別バッファ部１２１の、その係数の分割レベルに対応するレベルのバッファ部に記憶させる。
【０１６２】
ステップＳ１０３において、垂直分析フィルタ部１１８は、垂直分析フィルタ処理を実行し、ステップＳ１０２において記憶された係数を読み出して、その係数に対する垂直分析フィルタ処理を行う。垂直分析フィルタ処理の詳細については後述する。
【０１６３】
垂直分析フィルタ処理が終了すると、制御部１２０は、最上位レベルまで垂直分析フィルタ処理を行ったか否かを判定する。最上位レベルの垂直分析フィルタ処理が終了していないと判定された場合、処理は、ステップＳ１０５に進む。ステップＳ１０５において、垂直分析フィルタ部１１８は、生成した高域サブバンドの係数を外部に出力する。ステップＳ１０６において、水平分析フィルタ部１１９は、垂直分析フィルタ部１１８により生成された低域サブバンドの係数に対して水平分析フィルタ処理を行う。ステップＳ１０６の処理が終了すると、処理はステップＳ１０２に戻り、それ以降の処理が繰り返される。つまり、ステップＳ１０２乃至ステップＳ１０６の処理が繰り返されることにより、各分割レベルにおいて分析フィルタ処理が行われる。
【０１６４】
そして、ステップＳ１０４において最上位レベルの分析フィルタ処理が終了したと判定された場合、処理は、ステップＳ１０７に進む。ステップＳ１０７において、垂直分析フィルタ部１１８は、最上位レベルの係数を全て外部に出力する。ステップＳ１０７の処理が終了すると、ウェーブレット変換処理は終了する。
【０１６５】
次に、図１４のフローチャートを参照して、図１３のステップＳ１０３において実行される垂直分析フィルタ処理の詳細な流れの例を説明する。
【０１６６】
垂直分析フィルタ処理が開始されると、垂直分析フィルタ部１１８は、ステップＳ１２１において、レベル別バッファ部１２１の、現在の処理対象分割レベルに対応するレベルのバッファ部よりデータを取得する。ステップＳ１２２において、垂直分析フィルタ部１１８は、垂直分析リフティング演算を行い、１つ上位の係数を生成する。ステップＳ１２３において、垂直分析フィルタ部１１８は、バッファ入出力処理を実行することにより、途中計算用バッファ部１１７に対して、算出した係数を書き込むとともに、次の演算に必要な係数を読み出す。このバッファ入出力処理の詳細については後述する。
【０１６７】
バッファ入出力処理が終了すると、制御部１２０は、ステップＳ１２４において、垂直分析フィルタ処理を終了するか否かを判定し、未処理の係数が存在し、垂直分析フィルタ処理を継続すると判定した場合、処理をステップＳ１２１に戻し、それ以降の処理を繰り返させる。また、ステップＳ１２４において、垂直分析フィルタ処理を終了すると判定した場合、垂直分析フィルタ処理を終了する。
【０１６８】
次に、図１４のステップＳ１２３において実行されるバッファ入出力処理の詳細な流れの例を、図１５のフローチャートを参照して説明する。
【０１６９】
バッファ入出力処理が開始されると、データ分割部１３３は、ステップＳ１４１において、バッファ、すなわち１ポートSRAM１３２より３２ビットのデータ（３２ビットデータ）を読み出し、ステップＳ１４２において、読み出した３２ビットデータを１６ビットデータに分割して出力する。
【０１７０】
ステップＳ１４３において、データ連結部１３１は、連続して供給される２つの書き込み用の１６ビットのデータ（１６ビットデータ）を１つの３２ビットデータにまとめ、ステップＳ１４４において、その３２ビットデータをバッファ、すなわち、１ポートSRAM１３２に書き込む。
【０１７１】
ステップＳ１４５において、制御部１２０は、必要なデータの読み出しおよび書き込みが全て終了したか否かを判定し、終了していないと判定した場合、処理をステップＳ１４１に戻し、それ以降の処理を繰り返す。また、ステップＳ１４５において、必要なデータの読み出しおよび書き込みが全て終了したと判定した場合、制御部１２０は、バッファ入出力処理を終了する。
【０１７２】
以上のように、ウェーブレット変換装置１００は、途中計算用バッファ部１１７として、図９に示されるような構成を有する１ポートSRAMを用いることにより、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
【０１７３】
なお、ウェーブレット変換装置は、データの入出力を同時並行的に行う途中計算用バッファ部を有していればよく、その他の構成は、上述した以外であってもよい。以下に、ウェーブレット変換装置の他の構成例について説明する。
【０１７４】
図１６は、本発明を適用したウェーブレット変換装置の他の構成例を示す図である。このウェーブレット変換装置２００は、入力された画像信号に対して、水平方向のフィルタ処理と垂直方向のフィルタ処理を行いながら、低域成分を、所定の分割レベル（図１６の例の場合、分割レベル４）まで階層的に分割する帯域分析装置である。
【０１７５】
図１６のウェーブレット変換装置２００は、インターリーブ部２１０、水平分析フィルタ部２１１、レベル１バッファ部２１２、レベル２バッファ部２１３、レベル３バッファ部２１４、レベル４バッファ部２１５、セレクタ２１６、Ｙ（輝度）用垂直分析フィルタ部２１７、Ｃ（色差）用垂直分析フィルタ部２１８、インターリーブ部２１９、水平分析フィルタ部２２０、制御部２２１、途中計算用Ｙバッファ部２２３、および途中計算用Ｃバッファ部２２４を有する。
【０１７６】
インターリーブ部２１０には、画像信号の要素である輝度信号（輝度成分の信号）と色差信号（色差成分の信号）が入力される（Ｄ１０およびＤ１１）。なお、以下、輝度（成分）を適宜Ｙとも称し、色差（成分）を適宜Ｃとも称する。インターリーブ部２１０は、輝度信号と色差信号とをインターリーブする。なお、既にＹとＣとがインターリーブされている画像信号が入力される場合には、もちろん、インターリーブ部２１０の処理は必要とされない。インターリーブされた画像信号は、水平分析フィルタ部２１１に入力される（Ｄ１１２）。
【０１７７】
水平分析フィルタ部２１１は、ＹとＣとがインターリーブされた画像信号に対して、分割レベル１の水平方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、水平分析フィルタ処理結果である、低域成分の係数と高域成分の係数からなる周波数成分の係数（以下、適宜、低域成分、高域成分、周波数成分とも称する）を生成する。
【０１７８】
このとき、水平分析フィルタ部２１１においては、図示せぬ内蔵メモリ（またはレジスタ）から、ベースバンド上の飛び飛びの位置にあるＹまたはＣのデータが交互に読み出されながら、ＹまたはＣに対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理が交互に行われる。
【０１７９】
レベル１バッファ部２１２は、分割レベル１の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部２１１による分割レベル１の水平分析フィルタ処理の結果のＹの周波数成分（低域成分と高域成分）およびＣの周波数成分（低域成分と高域成分）がそれぞれ供給される（Ｄ１１３）ので、レベル１バッファ部２１２は、それらを別々に記憶、保持する。そして、レベル１バッファ部２１２は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ（周波数成分）が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ２１６に供給する（Ｄ１１４）。
【０１８０】
レベル２バッファ部２１３は、分割レベル２の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部２２０による分割レベル２の水平分析フィルタ処理の結果のＹの周波数成分（低域成分と高域成分）およびＣの周波数成分（低域成分と高域成分）がそれぞれ供給される（Ｄ１２２）ので、レベル２バッファ部２１３は、それらを別々に記憶、保持する。そして、レベル２バッファ部２１３は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ２１６に供給する（Ｄ１１５）。
【０１８１】
レベル３バッファ部２１４は、分割レベル３の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部２２０による分割レベル３の水平分析フィルタ処理の結果のＹの周波数成分（低域成分と高域成分）およびＣの周波数成分（低域成分と高域成分）がそれぞれ供給される（Ｄ１２２）ので、レベル３バッファ部２１４は、それらを別々に記憶、保持する。そして、レベル３バッファ部２１４は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ２１６に供給する（Ｄ１１６）。
【０１８２】
レベル４バッファ部２１５は、分割レベル４の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部２２０による分割レベル４の水平分析フィルタ処理の結果のＹの周波数成分（低域成分と高域成分）およびＣの周波数成分（低域成分と高域成分）がそれぞれ供給される（Ｄ１２２）ので、レベル４バッファ部２１５は、それらを別々に記憶、保持する。そして、レベル４バッファ部２１５は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ２１６に供給する（Ｄ１１７）。
【０１８３】
なお、レベル１バッファ部２１２乃至レベル４バッファ部２１５をまとめてレベル別バッファ部２２２とも称する。
【０１８４】
セレクタ２１６は、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８の制御のもと、レベル別バッファ部２２２のレベル１バッファ部２１２乃至レベル４バッファ部２１５のうち、対応する分割レベルのバッファからの出力（Ｄ１１４乃至Ｄ１１７）を選択し、選択した出力を、周波数成分として、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８に出力する（Ｄ１１８）。
【０１８５】
Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、セレクタ２１６より供給される所定の垂直ライン分の周波数成分を取得し（Ｄ１１８）その周波数成分に対して、ＹおよびＣの垂直分析フィルタ処理をそれぞれ行う。
【０１８６】
すなわち、Ｙ用垂直分析フィルタ部２１７は、セレクタ２１６を使って、現在処理対象とする分割レベルに対応する分割レベルのバッファ部から、Ｙの所定の垂直ライン分の周波数成分を読み出し（Ｄ１１８）、さらに、途中計算用Ｙバッファ部２２３より、前回の分析フィルタ処理により得られた係数の一部を取得し、それらを用いて、Ｙの垂直方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、Ｙの低域サブバンドの係数である低域成分のみをインターリーブ部２１９に出力し（Ｄ１１９）、Ｙの高域サブバンドの係数をウェーブレット変換装置２００の図示せぬ外部（以下、単に外部と称する）に出力する（Ｄ１２３）。
【０１８７】
Ｃ用垂直分析フィルタ部２１８は、セレクタ２１６を使って、現在処理対象とする分割レベルに対応する分割レベルのバッファ部から、Ｃの所定の垂直ライン分の周波数成分を読み出し（Ｄ１１８）、さらに、途中計算用Ｃバッファ部２２４より、前回の分析フィルタ処理により得られた係数の一部を取得し、それらを用いて、Ｃの垂直方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、Ｃの低域サブバンドの係数である低域成分のみをインターリーブ部２１９に出力し（Ｄ１２０）、Ｃの高域サブバンドの係数をウェーブレット変換装置２００の図示せぬ外部（以下、単に外部と称する）に出力する（Ｄ１２４）。
【０１８８】
インターリーブ部２１９は、Ｙ用垂直分析フィルタ部２１７より供給されたＹの低域成分と、Ｃ用垂直分析フィルタ部２１８からのＣの低域成分をインターリーブする。インターリーブされた低域成分は、水平分析フィルタ部２２０に入力される（Ｄ１２１）。
【０１８９】
水平分析フィルタ部２２０は、処理する対象の周波数成分の分割レベルが異なるだけであり、基本的に、水平分析フィルタ部２１１と同様に構成される。すなわち、水平分析フィルタ部２２０は、図示せぬ内蔵メモリから、ベースバンド上の飛び飛びの位置にあるＹまたはＣの低域成分が交互に読み出しながら、ＹまたはＣの低域成分に対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理を交互に行う。
【０１９０】
そして、水平分析フィルタ部２２０は、水平分析フィルタリング結果である周波数成分（低域成分と高域成分）を、レベル別バッファ部２２２の、周波数成分の分割レベルに対応する分割レベルのバッファ（レベル２バッファ部２１３乃至レベル４バッファ部２１５のうちのいずれか）に供給し（Ｄ１２２）、記憶、保持させる。
【０１９１】
制御部２２１は、例えばCPU（Central Processing Unit）、ROM（Read Only Memory）、およびRAM（Random Access Memory）を含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット変換装置２００の各部の処理を制御する。
【０１９２】
次に、このウェーブレット変換装置の動作の流れについて説明する。
【０１９３】
外部から、インターリーブ部２１０に画像信号が入力される（Ｄ１１０およびＤ１１１）。インターリーブ部２１０は、例えば、画像信号の要素である輝度信号および色差信号が入力された場合、内蔵するメモリにおいて、輝度信号および色差信号をインターリーブする。インターリーブされた画像信号は、水平分析フィルタ部２１１に入力される（Ｄ１１２）。
【０１９４】
水平分析フィルタ部２１１は、ＹとＣとがインターリーブされた画像信号に対して、分割レベル１の水平分析フィルタ処理を行う。すなわち、水平分析フィルタ部２１１は、図示せぬ内蔵メモリ（またはレジスタ）を備えており、内蔵メモリには、図１７に示されるように、ＹとＣとが交互にインターリーブされた画像信号が展開されていく。図１７の例においては、メモリに、四角で示されるＹとＣとが交互に展開された画像信号のベースバンドが示されている。
【０１９５】
水平分析フィルタ部２１１は、内蔵メモリに展開されたベースバンド上の飛び飛びの位置にある所定の数（図２の場合、３サンプル数）のＹのデータまたは所定の数のＣのデータを、位置をずらしながら順番に読み出し、Ｙの水平方向の低域分析フィルタ処理および高域分析フィルタ処理と、Ｃの水平方向の低域分析フィルタ処理および高域分析フィルタ処理を交互に行う。
【０１９６】
水平方向のデータは、メモリの番地に容易に展開しやすい。したがって、水平分析フィルタ部２１１において、メモリからＹのデータとＣのデータを交互に読み出しながら、ＹとＣの水平分析フィルタリングを順番に実行することは、容易に可能である。
【０１９７】
水平分析フィルタ部２１１は、分割レベル１の水平分析フィルタ処理結果の周波数成分を、レベル１バッファ部２１２に記憶させる。
【０１９８】
このとき、水平分析フィルタ部２１１は、図１８に示されるように、Ｙの水平分析フィルタ処理結果であるＹの高域成分（Ｈ）と低域成分（Ｌ）をインターリーブさせて、レベル１バッファ部２１２にＣとは別に記憶させ、次に、Ｃの水平分析フィルタ処理結果であるＣの高域成分と低域成分をインターリーブさせて、レベル１バッファ部２１２にＹとは別に記憶させる。
【０１９９】
なお、水平分析フィルタ処理の結果を、図１９に示されるように、ＹについてもＣについても、低域と高域の両成分に分割されて、バッファに記憶させる方法も考えられる。しかしながら、その場合、低域成分と高域成分をバッファの別のアドレスにマッピングする必要があり、そのためのコントローラが別途必要になる等、制御が煩雑になる恐れがある。
【０２００】
これに対して、本発明の例が示される図１８の例においては、レベル１バッファ部２１２に、Ｙの高域成分（Ｈ）と低域成分（Ｌ）が交互に記憶されており、Ｙとは別のアドレスに、Ｃの高域成分（Ｈ）と低域成分（Ｌ）が交互に記憶されている。すなわち、水平分析フィルタ部２１１により、ＹおよびＣ毎に水平分析フィルタ処理結果である高域成分と低域成分がインターリーブされて、レベル１バッファ部２１２に記憶されるので、このレベル１バッファ部２１２に記憶されている周波数成分を読み出す際に、レベル１バッファ部２１２の先頭から順番に読み出すだけでよく、制御を単純（シンプル）にすることができる。
【０２０１】
例えば、図１８に示されるレベル１バッファ部２１２に、水平分析フィルタ処理結果の周波数成分が垂直分析フィルタ処理を実行することができるだけの所定の垂直ライン分（図１８の場合、３ライン分）溜まると、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、セレクタ２１６がレベル１バッファ部２１２の出力を選択するように制御することで、必要な垂直ライン分の係数をレベル１バッファ部２１２から読み出す。
【０２０２】
また、Ｙ用垂直分析フィルタ部２１７は、途中計算用Ｙバッファ部２２３より、前回の垂直分析フィルタ処理により得られた係数を取得する。Ｙ用垂直分析フィルタ部２１７は、それらの係数を用いてＹの垂直分析フィルタ処理を行う。同様に、Ｃ用垂直分析フィルタ部２１８は、途中計算用Ｃバッファ部２２４より、前回の垂直分析フィルタ処理により得られた係数を取得し、その係数と、レベル１バッファ部２１２より取得した係数とを用いてＣの垂直分析フィルタ処理を行う。これらのＹの垂直分析フィルタ処理およびＣの垂直分析フィルタ処理は互いに並行して実行される。
【０２０３】
分割レベル１のＹとＣの垂直分析フィルタ処理の結果（すなわち、分割レベル１のＹとＣの分析フィルタ処理の結果）、図２０に示されるように、ＹとＣについて、それぞれ、低域サブバンド(１ＬＬ)および高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）からなる４つのサブバンドの周波数成分が生成される。なお、図２０の例における「Ｌ」および「Ｈ」の順序は、前側が水平分析フィルタ処理を行った結果の帯域（低域または高域）を示し、後側が垂直分析フィルタ処理を行った結果の帯域を示す。また、「Ｌ」および「Ｈ」の前の数字は分割レベルを表す。
【０２０４】
以上が分割レベル１の分析フィルタ処理であり、その結果、Ｙ用垂直分析フィルタ部２１７においては、Ｙの低域サブバンド（１ＬＬ）の係数と高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）の係数が生成され（Ｄ１１９とＤ１２３）、Ｃ用垂直分析フィルタ部２１８においては、Ｃの低域サブバンド（１ＬＬ）の係数と高域サブバンドの係数（１ＨＬ，１ＬＨ，１ＨＨ）が生成される（Ｄ１２０とＤ１２４）。なお、これらの係数のうち、低域サブバンド（１ＬＬ）の係数だけはさらに分析フィルタ処理が行われる。このように分析フィルタ処理は、各分割レベルの低域サブバンドの係数について、設定されている分割レベル（最上位レベル）まで再帰的に繰り返される。これに対して、高域サブバンドの係数は、通常それ以上に分析されない。つまり、Ｙ用垂直分析フィルタ部２１７は、今回生成された高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）の周波数成分を、外部に出力する（Ｄ１２３）。同様に、Ｃ用垂直分析フィルタ部２１８も、今回生成された高域サブバンド（１ＨＬ，１ＬＨ，１ＨＨ）の周波数成分を、外部に出力する（Ｄ１２４）。
【０２０５】
一方、Ｙの低域サブバンド（１ＬＬ）の周波数成分とＣの低域サブバンド（１ＬＬ）の周波数成分は、インターリーブ部２１９に出力される（Ｄ１１９およびＤ１２０）。インターリーブ部２１９は、Ｙの低域サブバンド（１ＬＬ）の周波数成分とＣの低域サブバンド（１ＬＬ）の周波数成分とをインターリーブし、インターリーブした周波数成分を水平分析フィルタ部２２０に入力する（Ｄ１２１）。
【０２０６】
つまり、水平分析フィルタ部２２０に入力されるときの周波数成分においては、図２１に示されるように、Ｙの低域サブバンド（１ＬＬ）の周波数成分とＣの低域サブバンド（１ＬＬ）の周波数成分が交互にインターリーブ合成されている。なお、図２１の例においては、図中下部に示されるＹとＣがインターリーブされた後の低域サブバンド（１ＬＬ）の大きさが、点線に示されるインターリーブ前のＹまたはＣのみの低域サブバンド（１ＬＬ）と同じサイズで示されているが、実際には、ＹまたはＣのみの低域成分の２倍の大きさとなる。
【０２０７】
水平分析フィルタ部２２０は、ＹとＣとがインターリーブされた周波数成分に対して水平分析フィルタ処理（水平方向の低域分析フィルタ処理および高域分析フィルタ処理）を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。
【０２０８】
水平分析フィルタ部２２０は、水平分析フィルタ処理結果の周波数成分を、レベル別バッファ部２２２の、周波数成分の分割レベルに対応するレベルのバッファ（いまの場合、レベル２バッファ部２１３）に供給し（Ｄ１２２）、記憶、保持させる。
【０２０９】
そして、レベル２バッファ部２１３に水平分析フィルタ処理結果の周波数成分が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分溜まると、レベル２バッファ部２１３は、所定の垂直ライン分の周波数成分を読み出して、セレクタ２１６を介して、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８に供給する。Ｙ用垂直分析フィルタ部２１７は、その所定の垂直ライン分のＹの周波数成分に対して、分割レベル２のＹの垂直分析フィルタ処理を行い、Ｃ用垂直分析フィルタ部２１８は、所定の垂直ライン分のＣの周波数成分に対して、分割レベル２のＣの垂直分析フィルタ処理を行う。
【０２１０】
これらのレベル２のＹとＣの垂直分析フィルタ処理の結果、ＹとＣについて、それぞれ、低域サブバンド（２ＬＬ）および高域サブバンド（２ＨＬ，２ＬＨ，２ＨＨ）からなる４つのサブバンドの周波数成分が生成される。このうち高域サブバンドの周波数成分は、それぞれ外部に出力される（Ｄ１２３およびＤ１２４）。
【０２１１】
また、低域サブバンド（２ＬＬ）の周波数成分は、インターリーブ部２１９に供給される（Ｄ１１９およびＤ１２０）。インターリーブ部２１９は、この低域サブバンド（２ＬＬ）の周波数成分のＹとＣをインターリーブし、水平分析フィルタ部２２０に供給する（Ｄ１２１）。水平分析フィルタ部２２０は、そのインターリーブされた低域サブバンド（２ＬＬ）の周波数成分に対して水平分析フィルタ処理を行う。この処理結果は、レベル別バッファ部２２２のレベル３バッファ部２１４に供給されて保持される（Ｄ１２２）。これらの係数は、再度、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８において、垂直分析フィルタ処理される。
【０２１２】
以上のように、各分割レベルの低域サブバンドの係数について垂直分析フィルタ処理および水平分析フィルタ処理が、最上位レベルに達するまで、再帰的に実行される。各分割レベルにおいて生成された高域サブバンドの係数は、順次、外部に出力される（Ｄ１２３およびＤ１２４）。
【０２１３】
予め設定された分割レベルの最上位レベル（分割レベル４）に達すると、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、その最上位レベルの周波数成分（４ＬＬ，４ＨＬ，４ＬＨ，４ＨＨ）を、全て外部に出力する（Ｄ１２３およびＤ１２４）。これにより、分割レベル４の画像信号のウェーブレット変換は終了される。
【０２１４】
以上のように、図１６のウェーブレット変換装置２００においては、レベル１から所定のレベル数までの分割レベル毎のバッファ部を備え、水平分析フィルタ処理を行いながら、水平分析フィルタ処理結果を、分割レベル毎のバッファ部に記憶させる。したがって、この水平分析フィルタ処理の結果を、分割レベル毎のバッファ部から読み出しながら、垂直方向のフィルタ処理を行うことができる。すなわち、水平方向と垂直方向のフィルタ処理を同時並行的に動作させることができる。
【０２１５】
これにより、ウェーブレット変換装置２００は、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
【０２１６】
また、図１６のウェーブレット変換装置２００は、レベル１から所定のレベル数までの分割レベル毎のバッファ部（レベル別バッファ部２２２）とともに、途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４を有しており、垂直方向の分析フィルタ処理の際に、次回の処理に必要な係数をその途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４に保持させ、次回の垂直分析フィルタ処理の際にその係数を読み出して利用するので、外部にメモリを構成する必要がなくなる。
【０２１７】
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック（周波数）を上げる必要もないので、省電力化することができる。
【０２１８】
また、水平方向の分析フィルタ処理を、ＹとＣがインターリーブされた周波数成分に対して行うようにしたので、１回の水平分析フィルタ処理を１つの水平分析フィルタ部で構成することができ、ハードウェアの規模縮小に大きく寄与することができる。この水平方向にインターリーブされたデータは、レジスタやメモリに容易に展開することができ、しかも、読み書きを高速に行うことができるので、ウェーブレット変換の高速化にも寄与することができる。
【０２１９】
さらに、図１８および図１９を参照して上述したように、水平分析フィルタ処理結果である高域成分と低域成分を、ＹおよびＣ毎にそれぞれインターリーブして、対応するレベルのバッファ部にＹおよびＣ毎に記憶するようにしたので、データの読み出しの際には、そのレベルのバッファ部の先頭から順番に読み出すだけでよく、制御を単純（シンプル）にすることができる。
【０２２０】
また、垂直方向の分析フィルタ処理については、ＹとＣで別々に行うようにしたので、図２２に示される垂直方向の分析フィルタリングをＹとＣで別々に行わない場合に必要となってしまう大容量のメモリが不要になるため、コストの増大を抑制することができる。また、処理時間の増大も抑制することができる。
【０２２１】
すなわち、図２２を参照して、本発明との差を比較するために、垂直方向の分析フィルタリングをＹとＣで別々に行わない場合、すなわち、水平分析フィルタ部２１１および２２０のように、ＹとＣをインターリーブさせてから、ＹとＣの垂直フィルタ処理をずらしながら交互に行う場合を具体的に説明する。
【０２２２】
図２２の例においては、インターリーブされたＹとＣが展開されるラインバッファの例が示されている。例えば、画像がｎラインで構成される場合、ラインバッファには、まず、１ライン目の輝度成分Ｙ１が展開され、次に、１ライン目の色差成分Ｃ１が展開され、２ライン目の輝度成分Ｙ２が展開され、次に、２ライン目の色差成分Ｃ２が展開され、３ライン目の輝度成分Ｙ３が展開され、次に、３ライン目の色差成分Ｃ３が展開され、…、ｎライン目の輝度成分Ｙｎが展開され、次に、ｎライン目の色差成分Ｃｎが展開されて、インターリーブされたＹとＣがラインバッファに展開されていく。
【０２２３】
すなわち、図１６のＹ用垂直分析フィルタ部２１７とＣ用垂直分析フィルタ部２１８のように、ＹとＣを別々に処理する場合には、ＹとＣを別々に読み出してくればよいが、ＹとＣを一緒に処理するためには、ＹとＣをインターリーブして展開する必要があるため、Ｃ（またはＹ）用のラインバッファが余計に必要となってしまう。
【０２２４】
また、例えば、垂直分析フィルタ処理は、それを実行できるだけのライン（例えば、３ライン）が溜まり次第行われるので、図２２の例においては、実質的には、上から５ライン目の輝度成分Ｙ３が溜まったところで、Ｙの垂直分析フィルタ処理が行われ、上から６ライン目の色差信成分Ｃ３が溜まったところで、Ｃの垂直分析フィルタ処理が行われるというように、交互にＹとＣの垂直分析フィルタ処理が行われる。
【０２２５】
これに対して、図１のＹ用垂直分析フィルタ部２１７とＣ用垂直分析フィルタ部２１８の場合、ＹとＣの垂直分析フィルタ処理が並行して行われるので、単位時間あたりの処理速度が、図２２の例の場合より速い。
【０２２６】
以上のように、ＹとＣをインターリーブさせてから、ＹとＣの垂直分析フィルタ処理を行う場合、垂直分析フィルタ部が１つで済むというメリットはあるが、本発明の場合と比較して、Ｃ用（またはＹ用）のラインバッファが余計に必要になる。このラインバッファを、内蔵メモリに構成する場合には、水平解像度が大きい画像（例えば、HDTV(High Definition TeleVision)では１９２０画素）では、非常に大容量のメモリが必要になり、コストが急増してしまう。また、図２２の例の場合、垂直分析フィルタ部１つでＣおよびＹの処理を交互に行わなければならないため、Ｙ用とＣ用の２つの垂直分析フィルタ部で並列して処理を行う本発明の場合と比較して処理時間がかかってしまう。
【０２２７】
以上のことから、ＹとＣをインターリーブさせてから、ＹとＣの垂直分析フィルタリングを行う場合、メリットよりもデメリットが大きくなってしまう。これに対して、本発明のように、Ｙ用およびＣ用の２つの垂直分析フィルタ部で処理を並列して行う場合には、それぞれ他方のラインバッファは必要ないので、コストの急増を抑制することができ、さらに、２つの垂直分析フィルタ部での処理を並列で行うことができるので、処理時間を短くすることができる。
【０２２８】
なお、図１６のウェーブレット変換装置２００も、ウェーブレット変換装置１００と同様に、分析フィルタ処理の演算を、図５乃至図８を参照して説明したリフティング技術を用いて行う。つまり、水平分析フィルタ部２１１および水平分析フィルタ部２２０は、図６に示されるように水平分析フィルタ処理を行い、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、図８に示されるように垂直分析フィルタ処理を行う。
【０２２９】
また、図１６を参照して説明した途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４は、ウェーブレット変換装置１００の途中計算用バッファ部１１７と同様に、１ポートSRAMを用いながら、データの入出力を同時並行的に行うことができるようになされている。つまり、途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４は、それぞれ、図９に示される途中計算用バッファ部１１７と同様の構成を有し、同様の処理を実行する。従って、途中計算用Ｙバッファ部２２３は、Ｙについての係数のみを保持し、途中計算用Ｃバッファ部２２４は、Ｃについての係数のみを保持する点だけが、途中計算用バッファ部１１７と異なるものの、基本的に、図９や図１５を参照して行った説明は、途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４に対しても適用することができる。
【０２３０】
つまり、ウェーブレット変換装置２００も、ウェーブレット変換装置１００と同様に、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
【０２３１】
図１６のウェーブレット変換装置２００により実行されるウェーブレット変換処理の流れの例を、図２３のフローチャートを参照して説明する。なお、このウェーブレット変換処理は所定の処理単位毎に実行される。
【０２３２】
ウェーブレット変換処理が開始されると、ウェーブレット変換装置２００のインターリーブ部２１０は、ステップＳ２０１において、入力された画像データをインターリーブするか否かを判定し、入力画像データにおいてＹとＣがインターリーブされておらず、インターリーブすると判定した場合のみ、ステップＳ２０２において、画像データのＹとＣをインターリーブする。入力画像データにおいてＹとＣが既にインターリーブされている等して、インターリーブを行わないと判定した場合、インターリーブ部２１０は、ステップＳ２０２の処理を省略し、処理をステップＳ２０３に進める。
【０２３３】
ステップＳ２０３において、水平分析フィルタ部２１１は、レベル１の水平分析フィルタ処理を行い、ステップＳ２０４において、水平分析フィルタ処理の結果として得られた係数を、レベル別バッファ部２２２の、その係数の分割レベルに対応するレベルのバッファ部に記憶させる。
【０２３４】
ステップＳ２０５において、Ｙ用垂直分析フィルタ部２１７は、Ｙに対して、図１４のフローチャートを参照して説明したような垂直分析フィルタ処理を実行する。この処理と同時並行的に、ステップＳ２０６において、Ｃ用垂直分析フィルタ部２１８は、Ｃに対して、図１４のフローチャートを参照して説明したような垂直分析フィルタ処理を実行する。
【０２３５】
ＹおよびＣに対して垂直分析フィルタ処理が終了すると、制御部２２１は、ステップＳ２０７において、最上位レベルまで垂直分析フィルタ処理を行ったか否かを判定する。最上位レベルの垂直分析フィルタ処理が終了していないと判定された場合、処理は、ステップＳ２０８に進む。ステップＳ２０８において、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、生成した高域サブバンドの係数を外部に出力する。ステップＳ２０９において、インターリーブ部２１９は、低域サブバンドのＹとＣをインターリーブする。ステップＳ２１０において、水平分析フィルタ部２２０は、インターリーブされた低域サブバンドの係数に対して水平分析フィルタ処理を行う。ステップＳ２１０の処理が終了すると、処理はステップＳ２０４に戻り、それ以降の処理が繰り返される。つまり、ステップＳ２０４乃至ステップＳ２１０の処理が繰り返されることにより、各分割レベルにおいて分析フィルタ処理が行われる。
【０２３６】
そして、ステップＳ２０７において最上位レベルの分析フィルタ処理が終了したと判定された場合、処理は、ステップＳ２１１に進む。ステップＳ２１１において、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、最上位レベルの係数を全て外部に出力する。ステップＳ２１１の処理が終了すると、ウェーブレット変換処理は終了する。
【０２３７】
このように、Ｙ用垂直分析フィルタ部２１７およびＣ用垂直分析フィルタ部２１８は、図１の垂直分析フィルタ部１１８と同様に垂直分析フィルタ処理を実行することができる。つまり、途中計算用Ｙバッファ部２２３および途中計算用Ｃバッファ部２２４は、それぞれ、図１５を参照して説明したようなバッファ入出力処理を行うことができる。
【０２３８】
つまり、ウェーブレット変換装置２００は、ウェーブレット変換装置１００と同様に、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
【０２３９】
上述したようなウェーブレット変換装置による分析フィルタ処理により、画像データの周波数成分はその帯域毎に複数に分割され、階層的なサブバンドを形成する。
【０２４０】
図２４は、分析フィルタ処理が４回繰り返された場合の例を概略的に示す図である。図２４の例では、水平方向および垂直方向の分析フィルタ処理が再帰的に４回繰り替えされることにより、１ピクチャの画像データの周波数成分が、１３個の階層的なサブバンドに分割されている。
【０２４１】
図２４において、実線の四角および点線の角丸四角のそれぞれは、分析フィルタ処理により生成されるサブバンドを示しており、各サブバンドに表記される数字は、そのサブバンドの階層のレベルを示す。つまり、ベースバンドの画像データに対して何回分析フィルタ処理することにより得られるサブバンドであるかを示している。また、各サブバンドに表記される「Ｌ」および「Ｈ」は、それぞれ低域成分および高域成分を表しており、左側が水平方向の分析フィルタ処理結果、右側が垂直方向の分析フィルタ処理結果を示している。
【０２４２】
図１の例では、ベースバンドの画像データに対して１回目の分析フィルタ処理が行われて、分割レベル１の４つのサブバンド（１ＬＬ、１ＬＨ、１ＨＬ、および１ＨＨ）が生成され、そのサブバンドのうち、水平方向および垂直方向の両方に対して低域成分であるサブバンド「１ＬＬ」に対して２回目の分析フィルタ処理が行われ、分割レベル２の４つのサブバンド（２ＬＬ、２ＬＨ、２ＨＬ、および２ＨＨ）が生成され、その水平方向および垂直方向の両方に対して低域成分であるサブバンド「２ＬＬ」に対して３回目の分析フィルタ処理が行われ、分割レベル３の４つのサブバンド（３ＬＬ、３ＬＨ、３ＨＬ、および３ＨＨ）が生成され、その水平方向および垂直方向の両方に対して低域成分であるサブバンド「３ＬＬ」に対して、４回目の分析フィルタ処理が行われ、分割レベル４の４つのサブバンド（４ＬＬ、４ＬＨ、４ＨＬ、および４ＨＨ）が生成されている。
【０２４３】
このように、低域成分に対して繰り返し変換および分割を行うのは、図２５に示されるように、より上位（低域成分）のサブバンドほど、画像のエネルギが低域成分に集中しているためである。ウェーブレット変換によって、このように分析フィルタ処理を再帰的に処理を行い、階層的なサブバンドを生成し、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、エントロピ符号化を行う際に効率的な圧縮符号化を可能とする。
【０２４４】
このようなウェーブレット変換処理をピクチャ全体に対してまとめて行う方法もあるが、１ピクチャの画像データを数ライン毎に分割し、それぞれについてウェーブレット変換処理を互いに独立して行う方法もある。前者の場合よりも後者の場合の方が、１回のウェーブレット変換処理で処理される画像データのデータ量が少ないので、ウェーブレット変換処理の処理結果の出力開始タイミングをより早くすることができる。つまり、ウェーブレット変換処理による遅延時間を短縮することができる。
【０２４５】
なお、この場合のウェーブレット変換処理の処理単位となるライン数は、ウェーブレット変換処理の、予め定められた分割レベルにおいて、最上位レベルのサブバンドの係数データ１ラインを得るために必要なライン数に基づく。
【０２４６】
分析フィルタ処理により、データは４分割されるので、図２５に示されるようにライン数は半減する。つまり、図２５の例のように、分割レベル３のウェーブレット変換処理の場合、最上位レベルのサブバンド（３ＬＬ、３ＬＨ、３ＨＬ、および３ＨＨ）の係数データを１ライン得るためには、８ラインのベースバンドの画像データが必要になる。従ってこの場合、ウェーブレット変換処理は、ベースバンドの画像データ８ライン以上を処理単位としてウェーブレット変換処理が行われる。図２４の例のように分割レベルが４である場合、ベースバンドの画像データは、１６ライン必要になる。
【０２４７】
このように、最上位レベルの低域サブバンド「ＬＬ」の係数データを１ライン生成するために必要なベースバンドの画素データの集合をプレシンクト（Precinct）（またはラインブロック）と称する。なお、プレシンクトは、この最上位レベルの低域サブバンド「ＬＬ」の係数データを１ライン生成するために必要なベースバンドの画素データの集合と実質的に同一な、１プレシンクト分の画素データをウェーブレット変換して得られる、全サブバンドの係数データの集合のことを示す場合もある。
【０２４８】
なお、１プレシンクトのライン数はピクチャ内において、各プレシンクトで互いに同一でなくてもよい。
【０２４９】
このようなウェーブレット変換処理が施されて得られた係数データは、例えば、エントロピ符号化されて符号化データに変換される。この符号化データは、利用時に、エントロピ復号され、上述したウェーブレット変換処理に対応するウェーブレット逆変換処理により元のベースバンドの画像データが復元される。
【０２５０】
つまり、図２６に示されるように、ウェーブレット逆変換処理は、ウェーブレット変換処理の逆変換処理であり、ウェーブレット変換処理によってベースバンドの画像データが変換されたウェーブレット係数を、元のベースバンドの画像データに変換（逆変換）する処理である。従って、図２６に示されるように、分割レベル４のウェーブレット変換処理が行われた場合、ウェーブレット逆変換処理も分割レベル４で行われる。また、図２６に示されるように、例えば入力ベースバンド画像データ１６ラインを１プレシンクトとして、ウェーブレット変換処理がそのプレシンクト毎に行われた場合、ウェーブレット逆変換処理も、そのプレシンクト毎に行われ、１プレシンクトの係数データよりベースバンド画像データ１６ラインを復元する。
【０２５１】
以下に、このウェーブレット逆変換処理において遅延時間をより低減させるとともにコストを低減させる方法について説明する。
【０２５２】
図２７は、本発明を適用したウェーブレット逆変換装置の構成例を示すブロック図である。図２７に示されるように、ウェーブレット逆変換装置３００は、分割レベル４でウェーブレット変換された係数データを入力し、それらを合成する合成フィルタ処理を行う帯域合成装置である。図２７のウェーブレット逆変換装置３００は、制御部３０１、セレクタ３１１、垂直合成フィルタ部３１２、途中計算用バッファ部３１３、水平合成フィルタ部３１４、セレクタ３１５、出力バッファ部３１６、セレクタ３１７、およびレベル別バッファ部３２０を有する。
【０２５３】
制御部３０１は、セレクタ３１１乃至レベル別バッファ部３２０の各部の動作を制御する。セレクタ３１１は、制御部３０１に制御されて、垂直合成フィルタ部３１２の入力として、外部入力（Ｄ３１０）、またはレベル別バッファ部３２０内の各分割レベル用のバッファ部の出力（Ｄ３１９，Ｄ３２２、およびＤ３２５）のいずれかを選択する。垂直合成フィルタ部３１２は、制御部３０１に制御されて、セレクタ３１１により選択されたバッファ部または外部入力より、処理対象の分割レベルの４つのサブバンドの係数データを実質的に１ラインずつ取得する（Ｄ３１１）。
【０２５４】
垂直合成フィルタ部３１２は、制御部３０１に制御されて、途中計算用バッファ部３１３より読み出した途中計算用の係数を利用して、取得した係数データに対して、ベースバンドの画像データの画像垂直方向の周波数成分について合成フィルタ処理を行う。
【０２５５】
垂直合成フィルタ部３１２は、合成フィルタ処理として行う合成フィルタ演算により生成される係数を途中計算用バッファ部３１３に書き込む（Ｄ３１２）と同時に、次の合成フィルタ演算で必要な係数を途中計算用バッファ部３１３より読み出し（Ｄ３１３）ながら、合成フィルタ演算を繰り返すことにより合成フィルタ処理を行う。
【０２５６】
途中計算用バッファ部３１３は、垂直合成フィルタ部３１２より供給される係数を内蔵するメモリに保持し、また、垂直合成フィルタ部３１２より要求された、内蔵するメモリに保持している係数を読み出して供給する。この途中計算用バッファ部３１３は、ウェーブレット変換装置１００の途中計算用バッファ部１１７と同様の構成を有し、同様に動作する。従って、図９のブロック図を参照して行った途中計算用バッファ部１１７の構成や図１５のフローチャートを参照して行ったバッファ入出力処理の説明は、途中計算用バッファ部３１３にも適用することができる。
【０２５７】
つまり、途中計算用バッファ部３１３もデータ連結部１３１、１ポートSRAM１３２、およびデータ分割部１３３を有しており、データ連結部１３１が、供給される１６ビットデータを連結して３２ビットデータとして１ポートSRAM１３２に書き込み、データ分割部１３３が、１ポートSRAM１３２に記憶されている３２ビットデータを読み出して、１６ビットデータに分割し、出力する。このとき、途中計算用バッファ部３１３は、１ポートSRAM１３２への書き込みと読み出しを交互に繰り返すことにより、データ読み出しと書き込みを同時並行的に実行する。これにより、途中計算用バッファ部３１３へのアクセスによる遅延時間を低減させることができる。
【０２５８】
垂直合成フィルタ部３１２は、合成フィルタ処理を行う度に、生成された係数を途中計算用バッファ部３１３に保持させ、さらに、次の演算に必要な係数を途中計算用バッファ部３１３より読み出す。つまり、合成フィルタ処理においては、途中計算用バッファ部３１３へのアクセスは、高頻度で行われるが、上述したように、途中計算用バッファ部３１３へのアクセスによる遅延時間を低減させることにより、ウェーブレット逆変換装置３００は、合成フィルタ処理の遅延時間を低減させることができる。
【０２５９】
このような垂直方向の合成フィルタ処理により、垂直方向の低域成分と高域成分が合成され、水平方向の低域成分と高域成分が２ラインずつ生成される。入力された係数データに対する合成フィルタ処理が終了すると、垂直合成フィルタ部３１２は、途中計算用バッファ部３１３に保持されている水平方向の低域成分と高域成分を、合成フィルタ処理結果として、所定の順序で、例えばライン毎に画面左から右に向かう順に１つずつ交互に、読み出して水平合成フィルタ部３１４に供給する（Ｄ３１４）。
【０２６０】
水平合成フィルタ部３１４は、制御部３０１に制御され、垂直合成フィルタ部３１２より供給される係数データに対して、ベースバンドの画像データの画像水平方向の周波数成分について合成フィルタ処理を行う。
【０２６１】
この水平方向の合成フィルタ処理により、１つ下位レベルの垂直方向および水平方向に低域成分のサブバンドである低域サブバンドの係数データ（またはベースバンドの画像データ）が２ライン生成される。水平合成フィルタ部３１４は、その低域サブバンドの係数データ（またはベースバンドの画像データ）２ラインをセレクタ３１５に出力する（Ｄ３１５）。
【０２６２】
以上のように、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、１回の垂直方向および水平方向の合成フィルタ処理により、実質的に、処理対象の分割レベルの各サブバンドの、互いに同じ位置の係数データ１ラインを合成し、１つ下位レベルの低域サブバンドの係数データ、またはベースバンドの画像データを２ライン生成する。
【０２６３】
つまり、図２８に示されるように、１プレシンクトがＮラインの画像データより構成されるとすると、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、例えば、分割レベル２の４つのサブバンドの係数データを実質的にＮ／４ライン合成し、分割レベル１の低域サブバンドの係数データをＮ／２ライン生成する。
【０２６４】
垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、処理対象の分割レベルを適宜変更しながらこのような合成フィルタ処理を繰り返すことにより、プレシンクト単位でウェーブレット変換された係数データを全てベースバンドの画像データに変換する。そして、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、全プレシンクトおよび全ピクチャについて合成処理を同様に繰り返す。このようにプレシンクト単位で合成フィルタ処理を行うことにより、画像全体を対象として合成フィルタ処理を行う場合よりも、一度に処理するデータのデータ量が低減されるので、ウェーブレット逆変換装置３００は、ウェーブレット逆変換による遅延時間を低減させることができる。また、上述したようにライン単位で合成フィルタ処理を行うことにより、より詳細に制御可能になるので、ウェーブレット逆変換装置３００は、ウェーブレット逆変換処理をより最適化し、より遅延時間を低減させることができる。
【０２６５】
図２７に戻り、セレクタ３１５は、制御部３０１に制御されて、水平合成フィルタ部３１４のデータ出力先を選択し、合成フィルタ処理により生成される係数データのうち、一部の係数データをレベル別バッファ部３２０に供給して保持させ、他の一部の係数データを出力バッファ部３１６に供給して保持させる。例えば、セレクタ３１５は、水平合成フィルタ部３１４より供給される低域サブバンドの係数データ２ラインのうち、一方の１ラインを出力バッファ部３１６に供給して保持させ（Ｄ３１６）、他方の１ラインをレベル別バッファ部３２０に供給し、レベル別バッファ部３２０の、その係数データの分割レベル用のバッファ部に保持させる（Ｄ３１７，Ｄ３２０、およびＤ３２３）。
【０２６６】
なお、水平合成フィルタ部３１４より供給されるデータがベースバンドの画像データである場合、セレクタ３１５は、その画像データ２ラインを出力バッファ部３１６に供給し（Ｄ３１６）、一方の１ラインを保持させ、他方の１ラインを外部に出力させる。
【０２６７】
出力バッファ部３１６は、制御部３０１に制御されて、セレクタ３１５より供給される係数データや画像データを、必要に応じて保持し、保持しているデータを必要に応じて読み出してセレクタ３１７に出力する。例えば、セレクタ３１５よりサブバンドの係数データが１ライン供給された場合、出力バッファ部３１６は、その係数データを保持する。また、例えば、合成フィルタ処理により最終的に生成されたベースバンドの画像データ２ラインがセレクタ３１５より供給された場合、出力バッファ部３１６は、その一方の１ラインを外部に出力する（Ｄ３２６）とともに、他方の１ラインを、次の出力タイミングまで保持する。このベースバンドの画像データを保持するとき、出力バッファ部３１６は、内蔵するメモリに保持している係数データを読み出してセレクタ３１７に出力しながら（Ｄ３２６）、ベースバンドの画像データを内蔵するメモリに書き込む。
【０２６８】
セレクタ３１７は、制御部３０１に制御されて、出力バッファ部３１６のデータ出力先を制御する。例えば、出力バッファ部３１６より係数データが供給された場合、セレクタ３１７は、その係数データを、レベル別バッファ部３２０に供給し（Ｄ３２８，Ｄ３２９、およびＤ３３０）、レベル別バッファ部３２０の、その係数データの分割レベル用のバッファ部に保持させる。また、例えば、出力バッファ部３１６よりベースバンドの画像データが供給された場合、セレクタ３１７は、そのベースバンドの画像データを外部に出力する（Ｄ３２７）。
【０２６９】
レベル別バッファ部３２０は、制御部３０１に制御されて、セレクタ３１５やセレクタ３１７より供給される係数データや外部より供給された、再度合成フィルタ処理可能な係数データを、再度合成フィルタ処理が行われるまで、その係数データの分割レベル用のバッファ部に保持する。レベル別バッファ部３２０は、必要に応じて、保持している係数データをセレクタ３１１に供給する。
【０２７０】
レベル別バッファ部３２０は、レベル３バッファ部３２１、レベル２バッファ部３２２、およびレベル１バッファ部３２３を有する。
【０２７１】
レベル３バッファ部３２１は、制御部３０１に制御されて、分割レベル３の係数データのセレクタ３１１（セレクタ３１１を介して垂直合成フィルタ部３１２）への供給を制御する。例えば、レベル３バッファ部３２１は、セレクタ３１５やセレクタ３１７より供給された（Ｄ３１７およびＤ３２８）分割レベル３の低域サブバンドの係数データ（３ＬＬ）や、外部より供給された（Ｄ３１８）分割レベル３の高域サブバンド（３ＬＨ、３ＨＬ、および３ＨＨ）の係数データを内蔵するメモリに保持する。そして、レベル３バッファ部３２１は、所定のタイミングで、内蔵するメモリに保持している分割レベル３の各サブバンドの係数データを多重化し、セレクタ３１１を介して垂直合成フィルタ部３１２に供給する（Ｄ３１９）。
【０２７２】
レベル２バッファ部３２２は、制御部３０１に制御されて、分割レベル２の係数データのセレクタ３１１（セレクタ３１１を介して垂直合成フィルタ部３１２）への供給を制御する。例えば、レベル２バッファ部３２２は、セレクタ３１５やセレクタ３１７より供給された（Ｄ３２０およびＤ３２９）分割レベル２の低域サブバンドの係数データ（２ＬＬ）や、外部より供給された（Ｄ３２１）分割レベル２の高域サブバンド（２ＬＨ、２ＨＬ、および２ＨＨ）の係数データを内蔵するメモリに保持する。そして、レベル２バッファ部３２２は、所定のタイミングで、内蔵するメモリに保持している分割レベル２の各サブバンドの係数データを多重化し、セレクタ３１１を介して垂直合成フィルタ部３１２に供給する（Ｄ３２２）。
【０２７３】
レベル１バッファ部３２３は、制御部３０１に制御されて、分割レベル１の係数データのセレクタ３１１（セレクタ３１１を介して垂直合成フィルタ部３１２）への供給を制御する。例えば、レベル１バッファ部３２３は、セレクタ３１５やセレクタ３１７より供給された（Ｄ３２３およびＤ３３０）分割レベル１の低域サブバンドの係数データ（１ＬＬ）や、外部より供給された（Ｄ３２４）分割レベル１の高域サブバンド（１ＬＨ、１ＨＬ、および１ＨＨ）の係数データを内蔵するメモリに保持する。そして、レベル１バッファ部３２３は、所定のタイミングで、内蔵するメモリに保持している分割レベル１の各サブバンドの係数データを多重化し、セレクタ３１１を介して垂直合成フィルタ部３１２に供給する（Ｄ３２５）。
【０２７４】
なお、図２７に示されるレベル別バッファ部３２０の構成は、ウェーブレット逆変換装置３００において分割レベル４のウェーブレット逆変換処理が行われる場合の例である。レベル別バッファ部３２０の構成は、最上位レベル以外の分割レベルの係数データを互いに独立して保持するように、ウェーブレット逆変換装置３００が行うウェーブレット逆変換処理の分割レベルに応じて設定される。つまり、レベル別バッファ部３２０は、最上位レベル以外の分割レベルのそれぞれについて、レベル３バッファ部３２１乃至レベル１バッファ部３２３のような専用のバッファ部を有する。
【０２７５】
次に、垂直合成フィルタ部３１２および水平合成フィルタ部３１４により実行される合成フィルタ処理の演算方法について説明する。図５を参照して上述した分析フィルタ処理の場合と同様に、効率的にフィルタ処理を実行することができることから、ウェーブレット逆変換の合成フィルタ処理においても、同様にリフティング技術を用いることが好ましい。
【０２７６】
図２９は、JPEG２０００規格でも採用されている９×７合成フィルタのリフティング構成を示している。通常の畳み込み演算と異なり、リフティング手段による方法では、以下のステップＢ１乃至ステップＢ４までの４個のステップを経て、偶数成分と奇数成分を算出する。
【０２７７】
図２９の例において、１段目（最上段）は、ウェーブレット変換により生成された係数であり、丸印（●）が高域成分の係数を示し、四角印（■）が低域成分の係数を示す。２，３段目は、それぞれステップＢ１およびステップＢ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＢ３の処理で生成される偶数成分出力を示し、５段目は、ステップＢ４の処理で生成される奇数成分出力を示している。
【０２７８】
９×７合成フィルタリングにおいては、ステップＢ３の処理で偶数成分が得られ、ステップＢ４の処理で奇数成分が得られる。なお、ステップＢ１乃至ステップＢ４の処理は、次の式（５）乃至式（８）で表される。
【０２７９】
stepB1：ｓi1＝ｓi2−δ（ｄi-12＋ｄi2）      ・・・（５）
stepB2：ｄi1＝ｄi2−γ（ｓi1＋ｓi+11）      ・・・（６）
stepB3：ｓi0＝ｓi1−β（ｄi-11＋ｄi1）      ・・・（７）
stepB4：ｄi0＝ｄi1−α（ｓi0＋ｓi+10）      ・・・（８）
【０２８０】
ただし、
α＝−1.586134342
β＝−0.05298011857
γ＝0.8829110755
δ＝0.4435068520
【０２８１】
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップＢ１およびステップＢ２の処理が行われ、ステップＢ３で、偶数成分の係数が生成された後に、ステップＢ４で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式（５）乃至式（８）に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
【０２８２】
垂直合成フィルタ部３１２により実行される垂直合成フィルタ処理の処理について具体的に説明する。図３０は、垂直方向の係数データ群に対しての垂直合成フィルタ処理を、図２９のリフティング構成により実行する場合の例を示している。
【０２８３】
図３０の例においては、垂直方向の係数データに対して、図２９で上述した４つのステップ（ステップＢ１乃至ステップＢ４）の処理を経て、偶数番目の係数データ（以下、偶数係数とも称する）と奇数番目の係数データ（以下、奇数係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
【０２８４】
また、垂直方向の係数データの左側に示される数字は、ライン番号を示しており、左から１列目のハッチが付された丸および四角は、それぞれ、画面垂直方向の高域成分の入力である高域入力、および、画面垂直方向の低域成分の入力である低域入力を表している。さらに、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である、ライン番号が奇数のラインの係数データである奇数係数、およびライン番号が偶数のラインの係数データである偶数係数を表している。
【０２８５】
以下、動作について左から順に説明する。図３０の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
【０２８６】
この垂直リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、ライン番号０乃至５の６ラインの係数が必要である。
【０２８７】
その後、２番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号６および７の２ラインの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるライン番号５の係数も必要である。
【０２８８】
太線実線で示される３つの係数は、１番目の偶数係数および奇数係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【０２８９】
したがって、２番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号５乃至７の３ラインの係数の入力が必要である。ただし、ここでライン番号５の係数は再入力される係数なので、実質的に２ライン（ライン番号６および７）の係数の追加入力となる。この垂直方向の３ラインの係数データ（実質的に２ラインの係数データ）は、図２７のレベル別バッファ部３２０の対応するレベルのバッファ部から、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが２であれば、レベル２バッファ部３２２から係数データが読み出される。
【０２９０】
さらに、２番目の偶数係数と奇数係数を求めるためには、１番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される３つの係数が必要になる。これらの係数は、２番目の偶数係数と奇数係数が求められた後に途中計算用バッファ部３１３に保持されるので、その途中計算用バッファ部３１３より読み出される。
【０２９１】
つまり、１番目の垂直リフティング演算で途中計算用バッファ部３１３に記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファ部から読み出され入力されるライン番号５乃至７の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。これらの係数は、１番目の垂直リフティング演算の場合と同様に、途中計算用バッファ部３１３に記憶される。このとき、これらの係数の書き込みと同時に、次の垂直リフティング演算に利用する係数を途中計算用バッファ部３１３より読み出す。図３０の左側の例の場合、途中計算用バッファ部３１３に記憶された係数のうち、一点鎖線で示される３つの係数が３番目の偶数係数と奇数係数を求めるために必要な係数であるので、途中計算用バッファ部３１３より読み出される。
【０２９２】
ライン番号７の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号７乃至９の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図３０の右側に示されている。
【０２９３】
２番目の場合と同様に、３番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号８および９の２ラインの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるライン番号７の係数も必要である。
【０２９４】
なお、右側の太線実線で示される３つの係数は、左側の太線点線で示されるように、２番目の垂直リフティング演算で途中計算用バッファ部３１３に記憶されている。
【０２９５】
したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号７乃至９の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。これらの係数は、途中計算用バッファ部３１３に記憶される。このとき、これらの係数の書き込みと同時に、次の垂直リフティング演算に利用する係数を途中計算用バッファ部３１３より読み出す。図３０の右側の例の場合、途中計算用バッファ部３１３に記憶された係数のうち、一点鎖線で示される３つの係数が３番目の偶数係数と奇数係数を求めるために必要な係数であるので、途中計算用バッファ部３１３より読み出される。
【０２９６】
以上のようにして、入力された係数データと、途中計算用バッファ部３１３に保持されている係数を利用して垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタ処理が完了される。
【０２９７】
次に、水平合成フィルタ部３１４により実行される水平合成フィルタ処理について具体的に説明する。図３１は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図２９のリフティング構成により実行する様子の例を示している。
【０２９８】
図３１の例においては、水平方向の係数に対して、図２９を参照して上述した４つのステップ（ステップＢ１乃至ステップＢ４）の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
【０２９９】
また、水平方向の係数の上に示される数字は、列（コラム）番号を示しており、上から１段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
【０３００】
以下、動作について上から順に説明する。図３１の上段には、水平方向にコラム番号５乃至７の３コラムの係数が入力されて水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
【０３０１】
この水平リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、コラム番号０乃至５の６コラムの係数が必要である。
【０３０２】
その後、２番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号６および７の２コラムの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるコラム番号５の係数も必要である。
【０３０３】
太線実線で示される３つの係数は、１番目の奇数係数および偶数係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【０３０４】
すなわち、２番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号５乃至７の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、ラッチしておく必要がある。実際には、高々３つの係数であるので、水平合成フィルタ部３１４に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応できる。
【０３０５】
したがって、１番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号５乃至７の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０３０６】
コラム番号７の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号７乃至９の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図３１の下段に示されている。
【０３０７】
２番目の場合と同様に、３番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号８および９の２コラムの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるコラム番号７の係数も必要である。
【０３０８】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でラッチされている。
【０３０９】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、新たに入力されるコラム番号７乃至９の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、４番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０３１０】
以上のようにして、３コラム分の係数を順次入力しながら、途中計算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
【０３１１】
以上においては、途中計算用バッファ部３１３が、図９に示されるような構成を有し、データの書き込みと読み出しを同時並行的に行うことができるように説明したが、出力バッファ部３１６も同様に、１ポートSRAMを利用してデータの書き込みと読み出しを同時並行的に行うことができるようになされている。
【０３１２】
これにより、制御部３０１は、水平合成フィルタ部３１４より出力されたベースバンドの画像データを出力バッファ部３１６に記憶させると同時に、出力バッファ部３１６に保持されている係数データをレベル別バッファ部３２０に供給させることができる。
【０３１３】
図３２は、図５の出力バッファ部３１６の内部の構成例を示すブロック図である。図３２に示されるように、出力バッファ部３１６は、制御部３７１、セレクタ３７２、データ連結部３７３、１ポートSRAM３７４、およびデータ分割部３７５を有する。
【０３１４】
制御部３７１は、セレクタ３７２乃至データ分割部３７５の各部の動作を制御する。セレクタ３７２は、制御部３７１に制御されて、水平合成フィルタ部３１４（図２７）より供給されるデータの供給先を決定する。例えば、セレクタ３７２は、水平合成フィルタ部３１４より供給されるサブバンドの係数データ（Ｄ３５１）をデータ連結部３７３に供給する（Ｄ３５３）。また、セレクタ３７２は、水平合成フィルタ部３１４より供給されるベースバンドの画像データの２ラインのうち、一方をセレクタ３１７（図２７）に供給し（Ｄ３５２）、他方をデータ連結部３７３に供給する（Ｄ３５３）。
【０３１５】
データ連結部３７３は、図９のデータ連結部１３１に対応し、データ連結部１３１と同様の構成を有し、同様に動作する。１ポートSRAM３７４は、１ポートSRAM１３２と同様の構成を有し、同様に動作する。データ分割部３７５は、データ分割部１３３に対応し、データ分割部１３３と同様の構成を有し、同様に動作する。
【０３１６】
つまり、データ連結部３７３は、セレクタ１４１と同様のセレクタ３８１、遅延部１４２と同様の遅延部３８２、並びに、パッキング部１４３と同様のパッキング部３８３を有し、図３３に示されるように、２サイクルに渡ってセレクタ３７２より供給される２つの１６ビットデータを連結して３２ビットデータを生成し、それを１サイクルで、１ポートSRAM３７４に供給して記憶させる。
【０３１７】
また、データ分割部３７５は、１６ビット分離部１４４と同様の１６ビット分離部３８４、遅延部１４５と同様の遅延部３８５、並びに、セレクタ１４６と同様のセレクタ３８６を有し、図３３に示されるように、１ポートSRAM３７４より３２ビットデータを１サイクルで読み出し、その３２ビットデータを分離して２つの１６ビットデータを生成し、それを２サイクルかけて外部に出力させる。このように、出力バッファ部３１６の１ポートSRAM３７４に対するデータの読み出しと書き込みは、図３３に示されるように、１サイクル毎に交互に繰り返され、３２ビットデータが読み書きされる。従って、読み出しと書き込みが同時並行的に行われる。
【０３１８】
つまり、図３２の点線で囲まれる部分は、図９に示されるウェーブレット変換装置１００の途中計算用バッファ部１１７の構成と同様である。つまり、図３２の点線で囲まれる部分は、図２７に示されるウェーブレット逆変換装置３００の途中計算用バッファ部３１３の構成とも同じである。
【０３１９】
このような構成により、出力バッファ部３１６は、ベースバンドの画像データを１ポートSRAM３７４に記憶させると同時並行的に、１ポートSRAM３７４に記憶されている係数データを読み出してレベル別バッファ部３２０に供給することができる。これにより、出力バッファ部３１６は、データの読み出しおよび書き込みによる遅延時間をより低減させるとともにコストを低減させることができる。つまり、ウェーブレット逆変換装置３００は、ウェーブレット逆変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
【０３２０】
次に、各処理の流れについて説明する。図３４のフローチャートを参照して、図２７のウェーブレット逆変換装置３００によるウェーブレット逆変換処理の流れの例を説明する。ウェーブレット逆変換処理が開始されると、制御部３０１は、ステップＳ３０１において処理対象プレシンクトを初期化する。ステップＳ３０２において、制御部３０１は、所定のタイミングであるか否かを判定し、所定のタイミングであると判定するまで待機する。ステップＳ３０２において所定のタイミングであると判定された場合、処理はステップＳ３０３に進む。ステップＳ３０３において、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、１つ下位の分割レベルの係数データ１ライン、または、ベースバンドの画像データ１ラインを生成する、ライン単位ウェーブレット逆変換処理を実行する。このライン単位ウェーブレット逆変換処理の詳細については後述する。
【０３２１】
ライン単位ウェーブレット逆変換処理が終了すると処理はステップＳ３０４に進む。ステップＳ３０４において、制御部３０１は、プレシンクト内の全ての係数データを処理したか否かを判定する。処理していないと判定された場合、処理はステップＳ３０２に戻り、それ以降の処理が繰り返される。また、ステップＳ３０４において、プレシンクト内の全ての係数データを処理したと判定された場合、処理はステップＳ３０５に進む。
【０３２２】
ステップＳ３０５において、制御部３０１は、ピクチャ内の全てのプレシンクトを処理したか否かを判定する。未処理のプレシンクトが存在すると判定された場合、処理はステップＳ３０６に進む。ステップＳ３０６において、制御部３０１は、処理対象プレシンクトを更新し、次のプレシンクトを処理対象とする。ステップＳ３０６の処理が終了されると、処理はステップＳ３０２に戻りそれ以降の処理が繰り返される。
【０３２３】
また、ステップＳ３０５において、ピクチャ内の全てのプレシンクトを処理したと判定された場合、ウェーブレット逆変換処理は終了される。なお、このウェーブレット逆変換処理はピクチャ毎に実行される。
【０３２４】
次に、図３４のステップＳ３０３において実行されるライン単位ウェーブレット逆変換処理の流れの例を図３５および図３６のフローチャートを参照して説明する。
【０３２５】
ライン単位ウェーブレット逆変換処理が開始されると、制御部３０１は、ステップＳ３２１において、出力バッファ部３１６にベースバンドの画像データが存在するか否かを判定する。後述するように、ライン単位ウェーブレット逆変換処理が１回行われる毎にベースバンド画像データが２ライン生成される。生成されたベースバンド画像データは１ラインずつ出力するので、残りの１ラインは出力バッファ部３１６に蓄積され、次の所定のタイミング（図３４のステップＳ３０２において判定されるタイミング）において、つまり、次にライン単位ウェーブレット逆変換処理が実行される際に出力される。
【０３２６】
つまり、ステップＳ３２１の処理は、前回のライン単位ウェーブレット逆変換処理においてベースバンドの画像データが生成され、出力バッファ部３１６に蓄積されているか否かを判定する。
【０３２７】
出力バッファ部３１６にベースバンドの画像データが蓄積されていないと判定された場合、処理は、ステップＳ３２２に進む。
【０３２８】
ステップＳ３２２において、制御部３０１は、レベル別バッファ部３２０に係数データが存在するか否かを判定する。ウェーブレット逆変換処理においては、繰り返し実行される合成フィルタ処理のそれぞれにおいて、４つのサブバンドの係数が１ラインずつ合成されて１つ下位のレベルの低域サブバンドの係数が２ライン生成され、そのうち一方は出力バッファ部３１６を介してレベル別バッファ部３２０に保持される。詳細については後述するが、ライン単位ウェーブレット逆変換処理においては、ベースバンドの画像データを２ラインずつピクチャの上から順に生成するので、レベル別バッファ部３２０に係数が存在する場合、その係数から処理することになる。
【０３２９】
ステップＳ３２２において、レベル別バッファ部３２０に係数が存在しないと判定された場合、処理はステップＳ３２３に進む。ステップＳ３２３において、制御部３０１は、処理対象分割レベルを最上位レベルに設定する。ステップＳ３２３の処理が終了すると、処理は図３６のステップＳ３３１に進む。
【０３３０】
また、図３５のステップＳ３２２において、レベル別バッファ部３２０に係数が存在すると判定された場合、処理はステップＳ３２４に進む。ステップＳ３２４において、制御部３０１は、処理対象分割レベルを、係数データが存在する分割レベルのうち、最も下位のレベルに設定する。ステップＳ３２４の処理が終了すると、処理は図３６のステップＳ３３１に進む。
【０３３１】
図３６のステップＳ３３１において、制御部３０１は、処理対象分割レベルが最上位レベルであるか否かを判定する。最上位レベルであると判定された場合、処理はステップＳ３３２に進む。ステップＳ３３２において、垂直合成フィルタ部３１２は、セレクタ３１１を介して、処理対象プレシンクトの最上位レベルの全サブバンドの係数データを外部より取得する。係数データが取得されると処理はステップＳ３３５に進む。また、ステップＳ３３１において、処理対象分割レベルが最上位レベルでないと判定された場合、処理はステップＳ３３３に進む。ステップＳ３３３において、垂直合成フィルタ部３１２は、処理対象レベルの低域サブバンドの係数データを、セレクタ３１１を介して、レベル別バッファ部３２０の、処理対象分割レベルのバッファ部より取得する。また、垂直合成フィルタ部３１２は、ステップＳ３３４において、処理対象分割レベルの高域サブバンドの係数データを、セレクタ３１１を介して外部より取得する。ステップＳ３３４の処理が終了すると、処理はステップＳ３３５に進む。
【０３３２】
ステップＳ３３５において、垂直合成フィルタ部３１２は、垂直合成フィルタ処理（垂直合成フィルタリング）を実行する。垂直合成フィルタ処理の詳細については後述する。垂直合成フィルタ処理が終了すると、水平合成フィルタ部３１４は、ステップＳ３３６において、水平合成フィルタ処理（水平合成フィルタリング）を実行する。
【０３３３】
ステップＳ３３７において、制御部３０１は、ステップＳ３３６の水平フィルタ処理により、ベースバンドの画像データが生成されたか否かを判定する。生成されたのは途中レベルの係数データであると判定された場合、処理はステップＳ３３８に進む。ステップＳ３３８において、水平合成フィルタ部３１４は、セレクタ３１５を介して、生成した１つ下位のレベルの低域サブバンドの係数データ２ラインのうち、後の１ラインを出力バッファ部３１６に保存する。
【０３３４】
ステップＳ３３９において、水平合成フィルタ部３１４は、生成した１つ下位のレベルの低域サブバンドの係数データ２ラインのうち、先の１ラインをレベル別バッファ部３２０の１つ下位のレベルのバッファ部に保存する。ステップＳ３４０において、制御部３０１は、処理対象分割レベルを１つ下位の分割レベルに変更する。ステップＳ３４０の処理が終了すると処理はステップＳ３３１に戻りそれ以降の処理が繰り返される。
【０３３５】
つまり、ウェーブレット逆変換装置３００は、ベースバンドの画像データ２ラインを生成するまで、ステップＳ３３１乃至ステップＳ３４０の処理を繰り返し、処理対象分割レベルを１つずつ下位のレベルに遷移させながら各レベルにおいて合成フィルタ処理を行う。
【０３３６】
そして、分割レベル１において合成フィルタ処理が行われ、ステップＳ３３７において、ベースバンドの画像データが生成されたと判定された場合、処理はステップＳ３４１に進む。ステップＳ３４１において、出力バッファ部３１６は、水平合成フィルタ部３１４において生成された画像データ２ラインを取得し、図１５のフローチャートを参照して説明したバッファ入出力処理と同様の処理を実行し、後の１ラインを内蔵する１ポートSRAM３７４に書き込むと同時に、１ポートSRAM３７４に記憶されている係数データを読み出す。
【０３３７】
出力バッファ部３１６は、ステップＳ３４２において、読み出した係数データを、セレクタ３１７を介して、レベル別バッファ部３２０の、それぞれに対応する分割レベルのバッファ部に書き込む。ステップＳ３４３において、出力バッファ部３１６は、水平合成フィルタ部３１４において生成された画像データ２ラインのうち、先の１ラインを、セレクタ３１７を介して外部に出力する。ステップＳ３４３の処理が終了すると、ライン単位ウェーブレット逆変換処理は終了され、図３４のステップＳ３０３に処理が戻され、ステップＳ３０４以降の処理が実行される。
【０３３８】
また、図３５のステップＳ３２１において、出力バッファ部３１６にベースバンドの画像データが１ライン存在すると判定された場合、処理は、ステップＳ３２５に進む。出力バッファ部３１６は、ステップＳ３２５において、内蔵する１ポートSRAM３７４よりそのベースバンドの画像データ１ラインを読み出し、セレクタ３１７を介して外部に出力する。画像データが出力されると、ライン単位ウェーブレット逆変換処理は終了され、図３４のステップＳ３０３に処理が戻され、ステップＳ３０４以降の処理が実行される。
【０３３９】
このように、合成フィルタ処理により２ラインずつ生成されるので、１ラインは出力バッファ部３１６に蓄積するようにし、出力バッファ部３１６にベースバンドの画像データが存在する場合は、その画像データを出力し、存在しない場合は、合成フィルタリング処理を行うことにより画像データを生成するようにしている。このようにすることにより、ウェーブレット逆変換装置３００は、ライン単位ウェーブレット逆変換処理を実行する度に、ベースバンドの画像データを所定のタイミングで１ラインずつ出力させることができる。
【０３４０】
次に、図３６のステップＳ３３５において実行される垂直合成フィルタ処理の詳細な流れの例を、図３７のフローチャートを参照して説明する。
【０３４１】
垂直フィルタ処理を開始すると、垂直合成フィルタ部３１２は、ステップＳ３６１において、図２９および図３０を参照して説明したような垂直方向の合成リフティング演算（垂直合成リフティング演算）を行い、ステップＳ３６２において、図１５のフローチャートを参照して説明したようにバッファ入出力処理を行い、途中計算用バッファ部３１３に対して、ステップＳ３６１の垂直合成リフティング演算により算出された係数を書き込むとともに、次の演算に必要な係数を読み出す。
【０３４２】
バッファ入出力処理が終了すると、垂直合成フィルタ部３１２は、ステップＳ３６３において、垂直合成フィルタ処理を終了するか否かを判定する。今回取得した全係数データについて垂直リフティング演算が終了しておらず、まだ未処理の係数が存在すると判定された場合、処理は、ステップＳ３６１に戻り、それ以降の処理が繰り返される。つまり、ステップＳ３６１およびステップＳ３６２の処理が繰り返し実行されることにより、取得した全ての係数に対して垂直リフティング演算が行われる。そして、ステップＳ３６３において、処理を終了すると判定された場合、つまり、今回取得された全ての係数に対して垂直リフティング演算が行われたと判定した場合、垂直合成フィルタ処理が終了される。
【０３４３】
以上のような、ライン単位ウェーブレット逆変換処理の流れの具体的な例を図３８に模式的に示す。図３８においては、各分割レベルにおける処理と各バッファの入出力について、係数データの遷移の様子が示されている。なおここでは、係数データの分割レベルは４とする。つまり、最上位レベルは４である。
【０３４４】
図３８の左上に示されるように、ライン単位ウェーブレット逆変換処理が開始されたとき処理対象分割レベルは最上位レベルに設定されるので、最初に分割レベル４のサブバンドＨＨの係数１ラインとサブバンドＬＨの係数１ラインよりなるデータ４ＨＨ／ＬＨ、および、サブバンドＨＬの係数１ラインとサブバンドＬＬの係数１ラインよりなるデータ４ＨＬ／ＬＬが外部、例えば、ウェーブレット逆変換装置３００の前段の処理部や記憶部等（いずれも図示せず）より垂直合成フィルタ部３１２に供給される（データ４０１およびデータ４０２）。つまり、垂直合成フィルタ部３１２には、分割レベル４の各サブバンドの係数が１ラインずつ入力される。
【０３４５】
垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、これらの係数に対して合成フィルタ処理を行い、１つ下位の分割レベルの低域サブバンドの係数１ラインであるデータ３ＬＬ−１（データ４０３）およびデータ３ＬＬ−２（データ４０４）を生成する。つまり、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、合成フィルタ処理により、１つ下位の分割レベル（分割レベル３）の低域サブバンドの係数を２ライン生成する。
【０３４６】
それらの内、一方のデータ３ＬＬ−１（データ３０３）は、セレクタ３１５を介してレベル別バッファ部３２０のレベル３バッファ部３２１に供給されて記憶される（データ４０５）。他方のデータ３ＬＬ−２（データ４０４）は、出力バッファ部３１６に書き込まれて保持される（データ４０６）。
【０３４７】
ここで処理対象レベルが１つ下位のレベル３に設定される。垂直合成フィルタ部３１２は、外部より分割レベル３の高域サブバンドの係数を１ラインずつ取得するとともに、レベル３バッファ部１１４に保持されているデータ３ＬＬ−１を読み出して（データ４０８）取得する。つまり、垂直合成フィルタ部１１２には、データ３ＨＨ／ＬＨ（データ４０７）およびデータ３ＨＬ／ＬＬ（データ４０９）のように、分割レベル３の各サブバンドの係数が１ラインずつ入力される。データ３ＨＨ／ＬＨは、分割レベル３のサブバンドＨＨの係数１ラインとサブバンドＬＨの係数１ラインを示しており、データ３ＨＬ／ＬＬは、分割レベル３のサブバンドＨＬの係数１ラインとサブバンドＬＬの係数１ラインを示している。
【０３４８】
垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、これらの係数に対して合成フィルタ処理を行い、１つ下位の分割レベルの低域サブバンドの係数１ラインであるデータ２ＬＬ−１（データ４１０）およびデータ２ＬＬ−２（データ４１１）を生成する。つまり、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、合成フィルタ処理により、１つ下位の分割レベル（分割レベル２）の低域サブバンドの係数を２ライン生成する。
【０３４９】
それらの内、一方のデータ２ＬＬ−１（データ４１０）は、セレクタ３１５を介してレベル別バッファ部３２０のレベル２バッファ部３２２に供給されて記憶される（データ４１２）。他方のデータ２ＬＬ−２（データ４１１）は、出力バッファ部３１６に書き込まれて保持される（データ４１３）。
【０３５０】
ここでまた処理対象レベルが１つ下位のレベル２に設定される。垂直合成フィルタ部３１２は、外部より分割レベル２の高域サブバンドの係数を１ラインずつ取得するとともに、レベル２バッファ部３２２に保持されているデータ２ＬＬ−１を読み出して（データ４２２）取得する。つまり、垂直合成フィルタ部３１２には、データ２ＨＨ／ＬＨ（データ４２１）およびデータ２ＨＬ／ＬＬ（データ４２３）のように、分割レベル２の各サブバンドの係数が１ラインずつ入力される。データ２ＨＨ／ＬＨは、分割レベル２のサブバンドＨＨの係数１ラインとサブバンドＬＨの係数１ラインを示しており、データ２ＨＬ／ＬＬは、分割レベル２のサブバンドＨＬの係数１ラインとサブバンドＬＬの係数１ラインを示している。
【０３５１】
垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、これらの係数に対して合成フィルタ処理を行い、１つ下位の分割レベルの低域サブバンドの係数１ラインであるデータ１ＬＬ−１（データ４２４）およびデータ１ＬＬ−２（データ４２５）を生成する。つまり、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、合成フィルタ処理により、１つ下位の分割レベル（分割レベル１）の低域サブバンドの係数を２ライン生成する。
【０３５２】
それらの内、一方のデータ１ＬＬ−１（データ４２４）は、セレクタ３１５を介してレベル別バッファ部３２０のレベル１バッファ部３２３に供給されて記憶される（データ４２６）。他方のデータ１ＬＬ−２（データ４２５）は、出力バッファ部３１６に書き込まれて保持される（データ４２７）。
【０３５３】
ここでまた処理対象レベルが１つ下位のレベル１に設定される。垂直合成フィルタ部３１２は、外部より分割レベル１の高域サブバンドの係数を１ラインずつ取得するとともに、レベル１バッファ部３２３に保持されているデータ１ＬＬ−１を読み出して（データ４３２）取得する。つまり、垂直合成フィルタ部３１２には、データ１ＨＨ／ＬＨ（データ４３１）およびデータ１ＨＬ／ＬＬ（データ４３３）のように、分割レベル１の各サブバンドの係数が１ラインずつ入力される。データ１ＨＨ／ＬＨは、分割レベル１のサブバンドＨＨの係数１ラインとサブバンドＬＨの係数１ラインを示しており、データ１ＨＬ／ＬＬは、分割レベル１のサブバンドＨＬの係数１ラインとサブバンドＬＬの係数１ラインを示している。
【０３５４】
垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、これらの係数に対して合成フィルタ処理を行い、それぞれがベースバンドの画像データ１ラインを示すベースバンド画像データ−１（データ４３４）およびベースバンド画像データ−２（データ４３５）を生成する。つまり、垂直合成フィルタ部３１２および水平合成フィルタ部３１４は、合成フィルタ処理により、ベースバンドの画像データを２ライン生成する。
【０３５５】
それらの内、一方のベースバンド画像データ−１（データ４３４）は、そのまま出力され（データ４３６）、他方のベースバンド画像データ−２（データ４３５）は、出力バッファ部３１６に書き込まれて保持される（データ４３７）。この書き込みと同時並行的に、出力バッファ部３１６に記憶されていた、分割レベル３の低域サブバンドの係数であるデータ３ＬＬ−２（データ４３８）は読み出されてレベル別バッファ部３２０のレベル３バッファ部３２１に供給されて記憶され（データ４３９）、分割レベル２の低域サブバンドの係数であるデータ２ＬＬ−２（データ４４０）は読み出されてレベル別バッファ部３２０のレベル２バッファ部３２２に供給されて記憶され（データ４４１）、分割レベル１の低域サブバンドの係数であるデータ１ＬＬ−２（データ４４２）は読み出されてレベル別バッファ部３２０のレベル１バッファ部３２３に供給されて記憶される（データ４４３）。
【０３５６】
図３５および図３６のフローチャートを参照して説明したライン単位ウェーブレット逆変換処理が１回行われる毎に、図３８に示されるようにデータが処理される。出力バッファ部３１６に記憶されたベースバンド画像データ−２（データ４３７）は、次回のライン単位ウェーブレット逆変換処理において外部に出力される。レベル別バッファ部３２０の各バッファに蓄積された係数は、さらにその次の回以降において処理される。
【０３５７】
以上のように、各分割レベルの合成フィルタ処理により下位の分割レベルの係数が２ラインずつ生成されるが、合成フィルタ処理においては１ラインずつしか処理されない。つまり、生成された２ラインの係数のうち、一方のラインは次の合成フィルタ処理に使用されるが、他方のラインは、次回以降のライン単位ウェーブレット逆変換処理まで不要になる。つまり、生成された２ラインを同時にレベル別バッファ部３２０に蓄積させる必要はない。そこで、ウェーブレット逆変換装置３００は、これらの２ライン係数の蓄積タイミングを互いにずらし、１ラインずつレベル別バッファ部３２０に蓄積させている。このようにすることにより、レベル別バッファ部３２０に必要な容量を低減させることができる。
【０３５８】
レベル別バッファ部３２０は、保持している係数を、頻繁にセレクタ３１１を介して垂直合成フィルタ部３１２に供給する必要があるため、データの読み書きに共有バスを介する必要がある外部メモリのような低速でのアクセスしかできないメモリで実現するようにすると、合成フィルタ処理の処理速度が極端に低下してしまい、ウェーブレット逆変換処理による遅延時間が増大する恐れがある。そこで、レベル別バッファ部３２０は、所謂キャッシュメモリのような、合成フィルタ処理が行われるCPUを含むLSIチップ内部に設けられ、共有バスを介さずに高速にアクセスが可能なメモリにより実現するのが望ましい。
【０３５９】
しかしながら、キャッシュメモリのメモリ容量が増大すると回路規模が増大してしまうため、LSIチップのチップサイズも増大してしまう。つまり、キャッシュメモリの容量の増大は装置の製造コストの増大に繋がる恐れがある。従って、キャッシュメモリの容量には実質的に上限があり、また、コスト低減のためには、小容量であるほど望ましい。
【０３６０】
そのため、レベル別バッファ部３２０に蓄積するデータ量が増大すると、小容量のキャッシュメモリでは容量が不足する恐れがある。その場合、低速で動作する外部メモリをバッファメモリとして使用しなければならなくなるが、上述したように、ウェーブレット逆変換処理による遅延時間が増大する恐れがある。また、この場合、キャッシュメモリで発生するミスヒットの処理やデータ退避等により、さらにその遅延時間が増大する恐れがある。
【０３６１】
従って、上述したように、合成フィルタ処理により生成された係数を１ラインずつレベル別バッファ部３２０に蓄積させるようにし、レベル別バッファ部３２０に必要な容量を低減させることにより、このような遅延時間の増大や製造コストの増大を低減させることができる。
【０３６２】
また、上述したように、ウェーブレット逆変換装置３００は、合成フィルタ処理により生成された係数２ラインのうち、直ぐにレベル別バッファ部３２０に蓄積させない方のラインは、出力バッファ部３１６に蓄積させる。
【０３６３】
出力バッファ部３１６は、本来、ベースバンドの画像データを１ラインずつ出力させるために、同時に２ライン生成されたベースバンドの画像データの一方のラインを蓄積するバッファである。換言すれば、ベースバンドの画像データが生成されるまでは使用されないので、上述したように、この未使用の期間を利用して、直ぐにレベル別バッファ部３２０に蓄積させない係数を、レベル別バッファ部３２０に蓄積させた係数の合成フィルタ処理が終了するまで一時的に蓄積させる。つまり、出力バッファ部３１６を利用して、レベル別バッファ部３２０への蓄積タイミングをずらしている。
【０３６４】
出力バッファ部３１６もレベル別バッファ部３２０と同様に、ウェーブレット逆変換処理による遅延時間を低減させるために、高速動作可能なキャッシュメモリにより実現するのが望ましいが、このように空き時間（ベースバンドの画像データが保持されていない期間に）を利用して係数を記憶させることにより、キャッシュメモリ（出力バッファ部３１６）の容量を増大させることなく、合成フィルタ処理により生成された係数を１ラインずつレベル別バッファ部３２０に蓄積させることができる。
【０３６５】
つまり、ウェーブレット逆変換装置３００は、係数データや画像データをバッファリングするキャッシュメモリの使用効率を向上させることにより、ウェーブレット逆変換処理においてデータ保持するバッファメモリとして必要なメモリ容量を低減することができる。
【０３６６】
なお、直ぐにレベル別バッファ部３２０に蓄積させない係数を外部メモリに退避させることも考えられるが、遅延時間を増大させないようにするためにはタイミング制御が複雑になる恐れがある。上述したように出力バッファ部３１６を利用することにより、容易に合成フィルタ処理により生成された係数を１ラインずつレベル別バッファ部３２０に蓄積させることができる。
【０３６７】
また、図３２のブロック図や図１５のフローチャートを参照して説明したように、出力バッファ部３１６は、ベースバンドの画像データの書き込みと係数の読み出しを同時並行的に実行することができるようになされている。このようにすることにより、コストを増大させずに、係数を出力バッファ部３１６からレベル別バッファ部３２０に移動させることによる遅延時間の増大を抑制することができる。
【０３６８】
次に、１プレシンクト分のウェーブレット逆変換処理の流れのより具体的な例を、図３９乃至図４１を参照して説明する。図３９乃至図４１において、丸で囲まれた数字は、プレシンクト内におけるラインの識別番号であり、本明細書においては、この識別番号を囲む丸は省略して説明する。また、ここでは分割レベル４でウェーブレット変換された係数に対するウェーブレット逆変換処理について説明する。
【０３６９】
図３９に示されるように、１回目のライン単位ウェーブレット逆変換処理が開始されると、最初に、最上位レベルである分割レベル４の各サブバンドの係数１ラインずつ（４ＬＬ／ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われる（矢印Ｓ１）。この合成フィルタ処理により、分割レベル３の低域サブバンドの１ライン目の係数３ＬＬ１と、２ライン目の係数３ＬＬ２が生成される（矢印Ｓ２）。次に、その１ライン目の係数３ＬＬ１と、新たに入力された分割レベル３の高域サブバンドの係数１ラインずつ（３ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ３）、分割レベル２の低域サブバンドの１ライン目の係数２ＬＬ１と、２ライン目の係数２ＬＬ２が生成される（矢印Ｓ４）。続いて、その１ライン目の係数２ＬＬ１と、新たに入力された分割レベル２の高域サブバンドの係数１ラインずつ（２ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ５）、分割レベル１の低域サブバンドの１ライン目の係数１ＬＬ１と、２ライン目の係数１ＬＬ２が生成される（矢印Ｓ６）。さらに、その１ライン目の係数１ＬＬ１と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ７）、ベースバンドの１ライン目の画像データBase１と、２ライン目の画像データBase２が生成される（矢印Ｓ８）。
【０３７０】
１ライン目の画像データBase１は直ぐに外部に出力され、２ライン目の画像データBase２は、一旦出力バッファ部３１６に保持され、次の出力タイミング（２回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３７１】
３回目のライン単位ウェーブレット逆変換処理が開始されるとき、１回目のライン単位ウェーブレット逆変換処理において生成された分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２、分割レベル２の低域サブバンドの２ライン目の係数２ＬＬ２、および分割レベル１の低域サブバンドの２ライン目の係数１ＬＬ２が、レベル別バッファ部３２０に蓄積されている。従って、３回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル１の低域サブバンドの２ライン目の係数１ＬＬ２を処理対象とする。つまり、その分割レベル１の低域サブバンドの２ライン目の係数１ＬＬ２と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ９）、ベースバンドの３ライン目の画像データBase３と、４ライン目の画像データBase４が生成される（矢印Ｓ１０）。
【０３７２】
３ライン目の画像データBase３は直ぐに外部に出力され、４ライン目の画像データBase４は、一旦出力バッファ部３１６に保持され、次の出力タイミング（４回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３７３】
５回目のライン単位ウェーブレット逆変換処理が開始されるとき、分割レベル１の低域サブバンドの２ライン目の係数１ＬＬ２は処理されたので、分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２と、分割レベル２の低域サブバンドの２ライン目の係数２ＬＬ２が、レベル別バッファ部３２０に蓄積されている。従って、５回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル２の低域サブバンドの２ライン目の係数２ＬＬ２を処理対象とする。つまり、その分割レベル２の低域サブバンドの２ライン目の係数２ＬＬ２と、新たに入力された分割レベル２の高域サブバンドの係数１ラインずつ（２ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ１１）、図４０に示されるように、分割レベル１の低域サブバンドの３ライン目の係数１ＬＬ３と、４ライン目の係数１ＬＬ４が生成される（矢印Ｓ１２）。さらに、その分割レベル１の低域サブバンドの３ライン目の係数１ＬＬ３と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ１３）、ベースバンドの５ライン目の画像データBase５と、６ライン目の画像データBase６が生成される（矢印Ｓ１４）。
【０３７４】
５ライン目の画像データBase５は直ぐに外部に出力され、６ライン目の画像データBase６は、一旦出力バッファ部３１６に保持され、次の出力タイミング（６回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３７５】
７回目のライン単位ウェーブレット逆変換処理が開始されるとき、１回目のライン単位ウェーブレット逆変換処理において生成された分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２と、５回目のライン単位ウェーブレット逆変換処理において生成された分割レベル１の低域サブバンドの４ライン目の係数１ＬＬ４が、レベル別バッファ部３２０に蓄積されている。従って、７回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル１の低域サブバンドの４ライン目の係数１ＬＬ４を処理対象とする。つまり、その分割レベル１の低域サブバンドの４ライン目の係数１ＬＬ４と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ１５）、ベースバンドの７ライン目の画像データBase７と、８ライン目の画像データBase８が生成される（矢印Ｓ１６）。
【０３７６】
７ライン目の画像データBase７は直ぐに外部に出力され、８ライン目の画像データBase８は、一旦出力バッファ部３１６に保持され、次の出力タイミング（８回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３７７】
９回目のライン単位ウェーブレット逆変換処理が開始されるとき、１回目のライン単位ウェーブレット逆変換処理において生成された分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２のみが、レベル別バッファ部３２０に蓄積されている。従って、９回目のライン単位ウェーブレット逆変換処理では、その分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２を処理対象とする。つまり、その分割レベル３の低域サブバンドの２ライン目の係数３ＬＬ２と、新たに入力された分割レベル３の高域サブバンドの係数１ラインずつ（３ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ１７）、分割レベル２の低域サブバンドの３ライン目の係数２ＬＬ３と、４ライン目の係数２ＬＬ４が生成される（矢印Ｓ１８）。さらに、その分割レベル２の低域サブバンドの３ライン目の係数２ＬＬ３と、新たに入力された分割レベル２の高域サブバンドの係数１ラインずつ（２ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ１９）、分割レベル１の低域サブバンドの５ライン目の係数１ＬＬ５と、６ライン目の係数１ＬＬ６が生成される（矢印Ｓ２０）。さらに、その分割レベル１の低域サブバンドの５ライン目の係数１ＬＬ５と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ２１）、図４１に示されるように、ベースバンドの９ライン目の画像データBase９と、１０ライン目の画像データBase１０が生成される（矢印Ｓ２２）。
【０３７８】
９ライン目の画像データBase９は直ぐに外部に出力され、１０ライン目の画像データBase１０は、一旦出力バッファ部３１６に保持され、次の出力タイミング（１０回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３７９】
１１回目のライン単位ウェーブレット逆変換処理が開始されるとき、９回目のライン単位ウェーブレット逆変換処理において生成された分割レベル２の低域サブバンドの４ライン目の係数２ＬＬ４および分割レベル１の低域サブバンドの６ライン目の係数１ＬＬ６が、レベル別バッファ部３２０に蓄積されている。従って、１１回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル１の低域サブバンドの６ライン目の係数１ＬＬ６を処理対象とする。つまり、その分割レベル１の低域サブバンドの６ライン目の係数１ＬＬ６と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ２３）、ベースバンドの１１ライン目の画像データBase１１と、１２ライン目の画像データBase１２が生成される（矢印Ｓ２４）。
【０３８０】
１１ライン目の画像データBase１１は直ぐに外部に出力され、１２ライン目の画像データBase１２は、一旦出力バッファ部３１６に保持され、次の出力タイミング（１２回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３８１】
１３回目のライン単位ウェーブレット逆変換処理が開始されるとき、分割レベル１の低域サブバンドの６ライン目の係数１ＬＬ６は処理されたので、分割レベル２の低域サブバンドの４ライン目の係数２ＬＬ４がレベル別バッファ部３２０に蓄積されている。従って、１３回目のライン単位ウェーブレット逆変換処理では、その分割レベル２の低域サブバンドの４ライン目の係数２ＬＬ４を処理対象とする。つまり、その分割レベル２の低域サブバンドの４ライン目の係数２ＬＬ４と、新たに入力された分割レベル２の高域サブバンドの係数１ラインずつ（２ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ２５）、分割レベル１の低域サブバンドの７ライン目の係数１ＬＬ７と、８ライン目の係数１ＬＬ８が生成される（矢印Ｓ２６）。さらに、その分割レベル１の低域サブバンドの７ライン目の係数１ＬＬ７と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ２７）、ベースバンドの１３ライン目の画像データBase１３と、１４ライン目の画像データBase１４が生成される（矢印Ｓ２８）。
【０３８２】
１３ライン目の画像データBase１３は直ぐに外部に出力され、１４ライン目の画像データBase１４は、一旦出力バッファ部３１６に保持され、次の出力タイミング（１４回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３８３】
１５回目のライン単位ウェーブレット逆変換処理が開始されるとき、１３回目のライン単位ウェーブレット逆変換処理において生成された分割レベル１の低域サブバンドの８ライン目の係数１ＬＬ８が、レベル別バッファ部３２０に蓄積されている。従って、１５回目のライン単位ウェーブレット逆変換処理では、その分割レベル１の低域サブバンドの８ライン目の係数１ＬＬ８を処理対象とする。つまり、その分割レベル１の低域サブバンドの８ライン目の係数１ＬＬ８と、新たに入力された分割レベル１の高域サブバンドの係数１ラインずつ（１ＨＬ／ＬＨ／ＨＨ）について、合成フィルタ処理が行われ（矢印Ｓ２９）、ベースバンドの１５ライン目の画像データBase１５と、１６ライン目の画像データBase１６が生成される（矢印Ｓ３０）。
【０３８４】
１５ライン目の画像データBase１５は直ぐに外部に出力され、１６ライン目の画像データBase１６は、一旦出力バッファ部３１６に保持され、次の出力タイミング（１６回目のライン単位ウェーブレット逆変換処理）において出力される。
【０３８５】
以上のように１６回ライン単位ウェーブレット逆変換処理を繰り返すことにより、１プレシンクト分のベースバンドの画像データ（１６ライン）が生成され出力される。次のプレシンクトについては、上述したのと同様に処理が繰り返される（矢印Ｓ３１）。
【０３８６】
このように、ウェーブレット逆変換装置３００は、ライン単位ウェーブレット逆変換処理を繰り返し実行することにより、ベースバンドの画像データを上から順に２ラインずつ生成して１ラインずつ出力するように処理対象を選択しながら、合成フィルタ処理を繰り返す。これにより、ウェーブレット逆変換装置３００は、ベースバンドの画像データを所定のタイミング毎に出力させることができる。
【０３８７】
また、ウェーブレット逆変換装置３００は、ベースバンドの画像データを２ラインずつ生成するが、その際、上述したように、その２ラインの生成に必要な合成フィルタ処理のみを実行する。つまり、ウェーブレット逆変換装置３００は、合成フィルタ処理により生成された係数２ラインのうち、一方の１ラインを出力バッファに保持させるとともに、他方の１ラインをレベル別バッファ部３２０に保持させ、そのレベル別バッファ部３２０に保持した１ラインを優先的に再度合成フィルタ処理し、２ラインの係数を生成する。ウェーブレット逆変換装置３００は、ベースバンドの画像データを２ライン生成するまでこれを繰り返す。そして、ベースバンドの画像データが生成され、レベル別バッファ部３２０に保持している係数が全て処理されると、ウェーブレット逆変換装置３００は、出力バッファ部３１６に保持させた係数を読み出してレベル別バッファ部３２０に保持させ、その係数について、分割レベルがより下位のレベルの係数から優先的に合成フィルタ処理を行う。その際もウェーブレット逆変換装置３００は、上述したように合成フィルタ処理を繰り返す。
【０３８８】
このようにすることにより、ウェーブレット逆変換装置３００は、ベースバンドの画像データを上から順に２ラインずつ生成することができるだけでなく、ベースバンドの画像データの各２ラインを生成するための負荷を低減させることができ、さらに、例えば合成フィルタ処理により生成された係数データやベースバンドの画像データ等、保持しなければならないデータのデータ量を低減させることができ、バッファに必要なメモリ容量を低減させることができる。これにより製造コストを低減させることもできる。
【０３８９】
さらに、付言するに、ウェーブレット逆変換装置３００は、ベースバンドの画像データの２ラインを生成する際に、その２ラインの生成に必要な合成フィルタ処理のみを行うので、ベースバンドの画像データの各２ラインの生成間隔を低減させることができる。つまり、ウェーブレット逆変換装置３００は、より短い間隔でベースバンドの画像データを１ラインずつ出力させることができる。
【０３９０】
ウェーブレット逆変換装置３００が処理する画像データは、例えばテレビジョン信号等がある。上述したようにウェーブレット逆変換装置３００は１ラインずつベースバンドの画像データを出力するが、この間隔をテレビジョン信号の水平同期タイミングに合わせることにより、ウェーブレット逆変換装置３００が、テレビジョン信号をリアルタイムに（即時的に）生成するようにすることができる。つまり、この場合、ウェーブレット逆変換装置３００は、例えばバッファリング無しに出力画像データをモニタに表示させることができるように、入力された係数データをリアルタイムにウェーブレット逆変換することができる。なお、ここでリアルタイムとは、例えばテレビジョン信号等の水平同期タイミングに合わせてベースバンドの画像データを１ラインずつ出力させることができることを示しており、ウェーブレット変換処理による遅延時間がゼロであることを示すものではない。
【０３９１】
図４２は、SMPTE（Society of Motion Picture and Television Engineers）規格292MのHD-SDI（High Definition Serial Digital Interface）信号（１．５Gbps）で定義されている解像度１９２０×１０８０、YCｂCr４：２：２フォーマット、各サンプル１０ビットの多重化されたデータ形式を示す模式図である。このデータ形式においては、SAV(Start of Active Video)とEAV(End of Active Video）の間に１９２０画素のベースバンドのデータがＹ（輝度）と、Cb,Cr（色差）とに多重化されて配置される。EAVと次のSAVの間には水平ブランキング期間を示すラインブランキングが配置される。
【０３９２】
このようなデータ形式でベースバンドの画像データをリアルタイムに生成するためには、ウェーブレット逆変換装置３００は、SAVから次のSAVの間に、ベースバンドの画像データを生成する必要がある。上述したように、ウェーブレット逆変換装置３００は、ベースバンドの画像データの２ラインを生成する際に、その２ラインの生成に必要な合成フィルタ処理のみを行うので、より短い間隔でベースバンドの画像データを１ラインずつ出力させることができ、容易に、このSAV毎にベースバンドの画像データを１ラインずつ出力させることができる。
【０３９３】
なお実際には、上述したウェーブレット変換やウェーブレット逆変換などの処理は、例えば画像データの転送システムや記録再生システム等に適用され、エントロピ符号化およびエントロピ復号等の他の処理とともに利用されることが多い。
【０３９４】
以下にウェーブレット逆変換装置３００の適用例について説明する。図４３は、本発明を適用したウェーブレット逆変換装置３００を用いた画像伝送システムの構成例を示すブロック図である。
【０３９５】
図４３に示される画像伝送システム５００は、図４２に示されるデータ形式の画像データを符号化して伝送するシステムであり、伝送元となる符号化装置５０１と、伝送先の復号装置５０２を有する。
【０３９６】
符号化装置５０１は、外部より入力された画像データをウェーブレット変換して符号化し、その符号化データを復号装置５０２に伝送させる装置であり、ウェーブレット変換部５１１、係数並び替え用バッファ部５１３、係数並び替え部５１４、量子化部５１５、およびエントロピ符号化部５１６を有する。
【０３９７】
符号化装置５０１の外部より入力された画像データは、ウェーブレット変換部５１１においてウェーブレット係数に変換され、係数並び替え用バッファ部５１３に格納される。係数並び替え用バッファ部５１３に格納された係数データは、係数並び替え部５１４により、ウェーブレット逆変換処理において処理される順に読み出され、量子化部５１５において量子化され、エントロピ符号化部５１６において符号化され、符号化データに変換される。エントロピ符号化部５１６において生成された符号化データは、復号装置５０２に供給される。
【０３９８】
復号装置５０２は、符号化装置５０１より伝送された符号化データを復号し、逆ウェーブレット変換することにより、ベースバンドの画像データを復元して出力する装置であり、エントロピ復号部５２１、逆量子化部５２２、およびウェーブレット逆変換部５２３を有する。つまり、符号化装置５０１より供給された符号化データは、エントロピ復号部５２１において復号され、逆量子化部５２２において逆量子化され、ウェーブレット逆変換部５２３においてウェーブレット逆変換されることにより、ベースバンドの画像データに変換されて復号装置５０２の外部に出力される。
【０３９９】
このウェーブレット変換部５１１は、図１のウェーブレット変換装置１００や図１６のウェーブレット変換装置２００に対応し、ウェーブレット逆変換部５２３は、上述したウェーブレット逆変換装置３００に対応し、基本的に同様の構成を有し、同様の処理を行う。従って、ウェーブレット逆変換部５２３は、水平同期タイミングに合わせて１ラインずつ画像データを出力するようにウェーブレット逆変換処理を行うことができる。
【０４００】
エントロピ復号部５２１は、制御部５３１、符号入力部５４１、復号部５４２、および係数出力部５４３を有する。エントロピ復号部５２１に供給された符号化データは、符号入力部５４１において受け付けられ、復号部５４２において復号され、係数データに変換される。生成された係数データは、係数出力部５４３より逆量子化部５２２に出力される。制御部５３１は、復号部５４２の入出力、すなわち、符号入力部５４１および係数出力部５４３を制御することにより、復号部５４２により実行される復号処理の実行タイミングを制御する。また、制御部５３１は、逆量子化部５２２およびウェーブレット逆変換部５２３に、画像データの水平同期タイミングを示すクロック信号を供給する。
【０４０１】
復号部５４２、逆量子化部５２２、およびウェーブレット逆変換部５２３は、この制御部５３１による制御に基づいて各処理を実行し、水平同期タイミングに合わせてベースバンドの画像データを１ラインずつ出力するように、入力された符号化データを復号し、逆量子化し、ウェーブレット逆変換する。
【０４０２】
このような、復号装置５０２により実行される復号処理の流れの例を図４４のフローチャートを参照して説明する。この復号処理はピクチャ毎に繰り返し実行される。
【０４０３】
復号処理が開始されると、制御部５３１は、ステップＳ５０１において、処理対象プレシンクトを初期化し、ステップＳ５０２において、水平ブランキング期間（水平同期タイミング）に対応する所定のタイミングであるか否かを判定し、所定のタイミングになるまで待機する。
【０４０４】
ステップＳ５０２において所定のタイミングであると判定された場合、処理はステップＳ５０３に進む。
【０４０５】
ステップＳ５０３において、ウェーブレット逆変換部５２３の出力バッファ部にベースバンドの画像データが存在するか否かを判定する。出力バッファ部にベースバンドの画像データが存在しないと判定された場合、処理はステップＳ５０４に進む。ステップＳ５０４において、復号部５４２は、制御部５３１に制御される符号入力部５４１を介して符号化データを取得し、その符号化データをエントロピ復号して係数データに変換する。復号部５４２は、生成した係数データを、制御部５３１に制御される係数出力部５４３を介して逆量子化部５２２に供給する。ステップＳ５０５において、逆量子化部５２２は、その係数データを逆量子化し、逆量子化された係数データをウェーブレット逆変換部５２３に供給する。
【０４０６】
ステップＳ５０５の処理が終了すると処理はステップＳ５０６に進む。また、ステップＳ５０３において、出力バッファ部にベースバンドの画像データが存在しないと判定された場合、その出力バッファ部の画像データを出力させることが優先され、ステップＳ５０４およびステップＳ５０５の処理が省略され、処理はステップＳ５０６に進む。
【０４０７】
ステップＳ５０６において、ウェーブレット逆変換部５２３は、制御部５３１より供給される制御タイミングに応じて、図３５および図３６のフローチャートを参照して説明したようにライン単位ウェーブレット逆変換処理を実行し、ベースバンドの画像データ２ラインを生成して出力する。
【０４０８】
ステップＳ５０７において、制御部５３１は、プレシンクト内の全ての係数データを処理したか否かを判定し、未処理のデータが存在すると判定した場合、処理をステップＳ５０２に戻し、それ以降の処理を繰り返させる。また、ステップＳ５０７において、プレシンクト内の全ての係数データを処理したと判定された場合、処理はステップＳ５０８に進む。
【０４０９】
ステップＳ５０８において、制御部５３１は、ピクチャ内の全てのプレシンクトを処理したか否かを判定する。未処理のプレシンクトが存在すると判定された場合、処理はステップＳ５０９に進む。ステップＳ５０９において、制御部５３１は、処理対象プレシンクトを次のプレシンクトに更新し、処理をステップＳ５０２に戻す。そして、ステップＳ５０８において、ピクチャ内の全てのプレシンクトを処理したと判定した場合、制御部５３１は、そのピクチャに対する復号処理を終了する。
【０４１０】
以上のように、復号装置５０２においては、制御部５３１の制御に従って、ライン単位ウェーブレット逆変換処理が、所定のタイミング、すなわち、水平同期タイミングに応じて繰り返し実行される。
【０４１１】
このようにすることにより、復号装置５０２は、水平同期タイミングに合わせて１ラインずつ出力させることができる。つまり、復号装置５０２は、リアルタイムに符号化データを復号しベースバンドの画像データを復元させることができる。
【０４１２】
図４５は、その場合のベースバンドの画像データの出力の様子を示す模式図である。図４５に示されるようにベースバンドの画像データ（ベースバンド画像データ−１およびベースバンド画像データ−２）は、水平同期タイミング（H-Sync）毎に１ラインずつ出力される。ただし、図４５に示されるように、このベースバンドの画像データは２ラインずつ生成される（ベースバンド画像データ−１およびベースバンド画像データ−２）。つまり、生成された２ラインのうち、一方の１ラインが（Ａ）のように、生成されたときの水平同期タイミングにおいて直接出力され、他方の１ラインは、（Ｂ）のように出力バッファ部３１６に書き込まれ、次の水平同期タイミングにおいて、（Ｃ）のように出力バッファ部３１６より読み出されて出力される。
【０４１３】
従って、図４５に示されるように、エントロピ復号処理（VLD）、逆量子化処理（IQ）、およびウェーブレット逆変換処理（IDWT）を水平同期タイミング間に行う必要がある。ウェーブレット逆変換部５２３（ウェーブレット逆変換装置３００）は、上述したような順序で合成フィルタ処理を進めることにより、ベースバンドの画像データの生成間隔をより短くすることができるので、図４５のようなタイミングでのリアルタイムな復号処理を容易に実現することができる。
【０４１４】
以上においては画像データの伝送システムについて説明したが、本発明を適用したウェーブレット逆変換装置３００は、その他のシステムにも適用することができる。ただし、遅延時間の増大による不利益が大きく、より遅延時間の低減が求められるシステムほど、その効果は大きい。
【０４１５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図４６に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０４１６】
図４６において、パーソナルコンピュータ６００のCPU（Central Processing Unit）６０１は、ROM（Read Only Memory）６０２に記憶されているプログラム、または記憶部６１３からRAM（Random Access Memory）６０３にロードされたプログラムに従って各種の処理を実行する。RAM６０３にはまた、CPU６０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０４１７】
CPU６０１、ROM６０２、およびRAM６０３は、バス６０４を介して相互に接続されている。このバス６０４にはまた、入出力インタフェース６１０も接続されている。
【０４１８】
入出力インタフェース６１０には、キーボード、マウスなどよりなる入力部６１１、CRT（Cathode Ray Tube）、LCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部６１２、ハードディスクなどより構成される記憶部６１３、モデムなどより構成される通信部６１４が接続されている。通信部６１４は、例えばインターネットに代表されるネットワークを介しての通信処理を行う。
【０４１９】
入出力インタフェース６１０にはまた、必要に応じてドライブ６１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア６２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部６１３にインストールされる。
【０４２０】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０４２１】
この記録媒体は、例えば、図４６に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア６２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM６０２や、記憶部６１３に含まれるハードディスクなどで構成される。
【０４２２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０４２３】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０４２４】
なお、以上において、１つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて１つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
【産業上の利用可能性】
【０４２５】
以上説明した本発明は、複数の端末間で画像を圧縮して伝送、受信して伸長して画像を出力するシステム、特に低遅延で実現する必要性が高いプロダクツ・アプリケーションに好適である。具体的には、放送局で多用するデジタルトライアックスシステム、ライブ映像配信システム、TV会議システム、監視カメラ・レコーダシステム、医用遠隔医療診断、生徒と教師間のインタラクティブ通信、ビデオゲーム等に応用が可能である。また、画像データが圧縮符号化された符号化データが記録された記録媒体よりその符号化データを読み出して復号し画像データを再生する装置（記録再生装置も含む）やシステム等にも適用可能である。
【図面の簡単な説明】
【０４２６】
【図１】本発明を適用したウェーブレット変換装置の一実施形態に係る構成例を示す図である。
【図２】画像信号を水平分析フィルタリングする例を説明する図である。
【図３】垂直分析フィルタリングする例を説明する図である。
【図４】分割レベル１まで分析フィルタリングした結果を示す図である。
【図５】９×７分析フィルタのリフティング構成の例を説明する図である。
【図６】水平方向の係数群に対しての水平分析フィルタリングを、図５のリフティング構成により実行する場合を説明する図である。
【図７】係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を説明する図である。
【図８】垂直方向の係数群に対しての垂直分析フィルタリングを、図５のリフティング構成により実行する場合を説明するを示す図である。
【図９】図１の途中計算用バッファ部の詳細な構成例を示すブロック図である。
【図１０】一般的な１ポートSRAMおよび２ポートSRAMの入出力端子の構成例を示す図である。
【図１１】一般的な１ポートSRAMおよび２ポートSRAMによるデータ入出力のタイミングの例を示す図である。
【図１２】図９の１ポートSRAMによるデータ入出力のタイミングの例を示す図である。
【図１３】ウェーブレット変換処理の流れの例を説明するフローチャートである。
【図１４】垂直分析フィルタ処理の流れの例を説明するフローチャートである。
【図１５】バッファ入出力処理の流れの例を説明するフローチャートである。
【図１６】本発明を適用したウェーブレット変換装置の他の構成例を示す図である。
【図１７】ＹとＣとがインターリーブされた画像信号を水平分析フィルタリングする例を説明する図である。
【図１８】ＹとＣとを別々に垂直分析フィルタリングする例を説明する図である。
【図１９】図１８との比較のため、従来の低域および高域にわけてＹとＣとを垂直分析フィルタリングする例を説明するである。
【図２０】ＹとＣとを別々に分割レベル１まで分析フィルタリングした結果を示す図である。
【図２１】分割レベル１の低域成分をＹとＣでインターリーブする例を説明する図である。
【図２２】図１８との比較のため、垂直分析フィルタリングをＹとＣでインターリーブして実行する例を説明する図である。
【図２３】ウェーブレット変換処理の流れの他の例を説明するフローチャートである。
【図２４】ウェーブレット変換について概略的に説明するための略線図である。
【図２５】ウェーブレット変換について概略的に説明するための略線図である。
【図２６】ウェーブレット変換およびウェーブレット逆変換の関係について概略的に説明するための略線図である。
【図２７】本発明を適用したウェーブレット逆変換装置の構成例を示すブロック図である
【図２８】合成フィルタリングについて概略的に説明するための略線図である。
【図２９】９×７合成フィルタのリフティング構成の例を説明する図である。
【図３０】垂直合成フィルタリングの様子の例を説明する図である。
【図３１】水平合成フィルタリングの様子の例を説明する図である。
【図３２】図２７の出力バッファ部の詳細な構成例を示すブロック図である。
【図３３】図３２の１ポートSRAMによるデータ入出力のタイミングの例を示す図である。
【図３４】ウェーブレット逆変換処理の流れの例を説明するフローチャートである。
【図３５】ライン単位ウェーブレット逆変換処理の流れの例を説明するフローチャートである。
【図３６】ライン単位ウェーブレット逆変換処理の流れの例を説明する、図３５に続くフローチャートである。
【図３７】垂直分析フィルタ処理の流れの例を説明するフローチャートである。
【図３８】ライン単位ウェーブレット逆変換処理の流れの例を説明する模式図である。
【図３９】１プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する模式図である。
【図４０】１プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する、図３９に続く模式図である。
【図４１】１プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する、図４０に続く模式図である。
【図４２】HDTV規格の輝度と色差信号のデータ配列の例を説明する図である。
【図４３】本発明を適用した画像伝送システムの構成例を示すブロック図である。
【図４４】復号処理の流れの例を説明するフローチャートである。
【図４５】処理実行タイミングの例を説明する模式図である。
【図４６】本発明を適用したパーソナルコンピュータの構成例を示す図である。
【符号の説明】
【０４２７】
１００  ウェーブレット変換装置，  １１７  途中計算用バッファ部，  １３１  データ連結部，  １３２  １ポートSRAM，  １３３  データ分割部，  １４１  セレクタ，  １４２  遅延部，  １４３  パッキング部，  １４４  １６ビット分離部，  １４５  遅延部，  １４６  セレクタ，  ２００  ウェーブレット変換装置，  ２２３  途中計算用Ｙバッファ部，  ２２４  途中計算用Ｃバッファ部，  ３００  ウェーブレット逆変換装置，  ３１３  途中計算用バッファ部，  ３１６  出力バッファ部，  ３７１  制御部，  ３７２  セレクタ，  ３７３  データ連結部，  ３７４  １ポートSRAM，  ３７５  データ分割部，  ３８１  セレクタ，  ３８２  遅延部，  ３８３  パッキング部，  ３８４  １６ビット分離部，  ３８５  遅延部，  ３８６  セレクタ
【図１】
2008288835.tif 000003
【図２】
2008288835.tif 000004
【図３】
2008288835.tif 000005
【図４】
2008288835.tif 000006
【図５】
2008288835.tif 000007
【図６】
2008288835.tif 000008
【図７】
2008288835.tif 000009
【図８】
2008288835.tif 000010
【図９】
2008288835.tif 000011
【図１０】
2008288835.tif 000012
【図１１】
2008288835.tif 000013
【図１２】
2008288835.tif 000014
【図１３】
2008288835.tif 000015
【図１４】
2008288835.tif 000016
【図１５】
2008288835.tif 000017
【図１６】
2008288835.tif 000018
【図１７】
2008288835.tif 000019
【図１８】
2008288835.tif 000020
【図１９】
2008288835.tif 000021
【図２０】
2008288835.tif 000022
【図２１】
2008288835.tif 000023
【図２２】
2008288835.tif 000024
【図２３】
2008288835.tif 000025
【図２４】
2008288835.tif 000026
【図２５】
2008288835.tif 000027
【図２６】
2008288835.tif 000028
【図２７】
2008288835.tif 000029
【図２８】
2008288835.tif 000030
【図２９】
2008288835.tif 000031
【図３０】
2008288835.tif 000032
【図３１】
2008288835.tif 000033
【図３２】
2008288835.tif 000034
【図３３】
2008288835.tif 000035
【図３４】
2008288835.tif 000036
【図３５】
2008288835.tif 000037
【図３６】
2008288835.tif 000038
【図３７】
2008288835.tif 000039
【図３８】
2008288835.tif 000040
【図３９】
2008288835.tif 000041
【図４０】
2008288835.tif 000042
【図４１】
2008288835.tif 000043
【図４２】
2008288835.tif 000044
【図４３】
2008288835.tif 000045
【図４４】
2008288835.tif 000046
【図４５】
2008288835.tif 000047
【図４６】
2008288835.tif 000048