JP2008288835A - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
JP2008288835A
JP2008288835A JP2007131286A JP2007131286A JP2008288835A JP 2008288835 A JP2008288835 A JP 2008288835A JP 2007131286 A JP2007131286 A JP 2007131286A JP 2007131286 A JP2007131286 A JP 2007131286A JP 2008288835 A JP2008288835 A JP 2008288835A
Authority
JP
Japan
Prior art keywords
data
unit
filter processing
analysis filter
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007131286A
Other languages
English (en)
Other versions
JP4356030B2 (ja
Inventor
Takahiro Fukuhara
隆浩 福原
Katsutoshi Ando
勝俊 安藤
Yuki Tanaka
祐樹 田中
Naoto Nishimura
直人 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007131286A priority Critical patent/JP4356030B2/ja
Priority to US12/109,845 priority patent/US8369635B2/en
Priority to CN2008100992779A priority patent/CN101309419B/zh
Publication of JP2008288835A publication Critical patent/JP2008288835A/ja
Application granted granted Critical
Publication of JP4356030B2 publication Critical patent/JP4356030B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】遅延時間をより低減させるとともにコストを低減させることができるようにする。
【解決手段】データ連結部131は、2サイクルかけて供給される2つの16ビットデータを連結し、32ビットデータとして1サイクルで1ポートSRAM132に書き込む。書き込みが行われた次のサイクルにおいて、データ分割部133は、1ポートSRAM132より32ビットデータを1つ読み出し、それを2つの16ビットデータに分割し、2サイクルかけて出力する。本発明は、例えば、ウェーブレット変換装置やウェーブレット逆変換装置に適用することができる。
【選択図】図9

Description

本発明は、情報処理装置および方法に関し、特に、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストを低減させることができるようにした情報処理装置および方法に関する。
従来の代表的な画像圧縮方式として、ISO(International Standards Organization)によって標準化されたJPEG(Joint Photographic Experts Group)やJPEG2000がある。これは離散コサイン変換(Discrete Cosine Transform ; DCT)を用い、比較的高いビットが割り当てられる場合には、良好な符号化画像および復号画像を供することが知られている。
近年では画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタによって複数の帯域に分割し、帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、DCT変換で問題になる高圧縮でのブロック歪みが無いことから、DCTに代わる新たな技術として有力視されている。
2001年1月に国際標準化が完了したJPEG2000は、このウェーブレット変換に高能率なエントロピ符号化(ビットプレーン単位のビット・モデリングと算術符号化)を組み合わせた方式を採用しており、JPEGに比べて符号化効率の大きな改善を実現している。
ウェーブレット変換処理(例えば特許文献1参照)は基本的に画像データを入力して、水平方向のフィルタリングと垂直方向のフィルタリングを行いながら、低域成分を階層的に分割する手段を用いる。
このウェーブレット変換処理により画像データが変換された係数データ(周波数成分)を、元の画像データに変換するウェーブレット逆変換処理は、最上位の分割レベルから最下位の分割レベルまで高域成分と低域成分を合成フィルタ処理しながら、最終的に画像を復元する処理を行う。
このウェーブレット逆変換処理においては、処理途中の係数データや、最終的に得られる画像データがバッファメモリに一時的に保持されるが、合成フィルタ処理は再帰的に繰り返されるため、バッファメモリへのデータの書き込みと読み出しを高頻度で行う必要がある。
特開平10−283342号公報
しかしながら、そのバッファメモリとして、分析フィルタ処理や合成フィルタ処理を行う処理部と共有バスを介して接続される大容量の外部メモリを用いるようにすると、その処理部と比較して動作周波数が低速な外部メモリおよび共有バスにより、頻繁に行われるバッファメモリとのデータの授受が低速になるので、ウェーブレット変換処理およびウェーブレット逆変換処理の処理速度が低下してしまい、遅延時間が増大する恐れがあった。
例えばTV会議システムやビデオゲームシステム等のように、画像データの伝送を低遅延で行うことが望ましいシステムにおいては、このような遅延時間の増大は、特に影響が大きく、少しでも遅延時間を低減することが求められる。
つまり、バッファメモリへのデータの入出力はより高速に行うことができるようにするのが望ましい。そこで、処理部内部に設けられる内蔵メモリをバッファメモリとして使用することが考えられるが、その場合においても、バッファメモリへのデータの入出力がさらに高速に行うようにすることが望まれる。ただし、回路規模の増大は製造コストや運用コスト(消費電力)の増大に繋がるため、同時に回路規模の縮小化も望まれる。
本発明は、このような従来の実情に鑑みて提案されたものであり、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストも低減させることができるようにするものである。
本発明の第1の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段と、前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段とを備える情報処理装置である。
前記保持手段は、前記分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記分析フィルタ処理手段に供給する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
前記連結手段は、前記分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記分析フィルタ処理手段に供給することができる。
本発明の第1の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
本発明の第2の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段と、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段と、前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段と、前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段とを備える情報処理装置である。
前記輝度成分用保持手段は、前記輝度成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する輝度成分用連結手段と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段とを備え、前記色差成分用保持手段は、前記色差成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する色差成分用連結手段と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段とを備えることができる。
前記輝度成分用連結手段は、前記輝度成分用分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、前記輝度成分用分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記輝度成分用分析フィルタ処理手段に供給し、前記色差成分用連結手段は、前記色差成分用分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、前記色差成分用分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記色差成分用分析フィルタ処理手段に供給することができる。
本発明の第2の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し、前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
本発明の第3の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段とを備える情報処理装置である。
前記保持手段は、前記合成フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記合成フィルタ処理手段に供給する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
前記連結手段は、前記合成フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記合成フィルタ処理手段に供給することができる。
本発明の第3の側面はまた、情報処理装置の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給するステップを含む情報処理方法である。
本発明の第4の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段とを備える情報処理装置である。
前記保持手段は、サイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、1つのデータを複数に分割し、前記サイクル毎に1つずつ出力する分割手段と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段とを備えることができる。
前記連結手段は、前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ出力することができる。
本発明の第4の側面はまた、情報処理装置の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力するステップを含む情報処理方法である。
本発明の第1の側面においては、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持しているデータであって、次回の分析フィルタ処理の演算に必要なデータが供給される。
本発明の第2の側面においては、画像データの輝度成分について、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、画像データの色差成分について、周波数成分を高域成分と低域成分に分割する分析フィルタ処理が再帰的に行われ、輝度成分用の分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の輝度成分用の分析フィルタ処理の演算に必要なデータが供給され、色差成分用の分析フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の色差成分用の分析フィルタ処理の演算に必要なデータが供給される。
本発明の第3の側面においては、画像データに対して、画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理が再帰的に行われ、合成フィルタ処理の演算結果として供給されるデータが保持されるタイミングに合わせて、既に保持されているデータであって、次回の合成フィルタ処理の演算に必要なデータが供給される。
本発明の第4の側面においては、画像データに対して、画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理が再帰的に行われ、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分が保持され、最終的に生成される、復元された画像データが保持されるタイミングに合わせて、既に保持されている、1つ下位の分割レベルの周波数成分であって、さらに合成フィルタ処理が可能な周波数成分が読み出されて出力される。
本発明によれば、ウェーブレット変換処理またはウェーブレット逆変換処理を行うことができる。特に、ウェーブレット変換処理およびウェーブレット逆変換処理の遅延時間をより低減させるとともにコストも低減させることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置(例えば、図1のウェーブレット変換装置100)であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段(例えば、図1の垂直分析フィルタ部118)と、前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段(例えば、図1の途中計算用バッファ部117)とを備える情報処理装置である。
前記保持手段は、前記分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段(例えば、図9のデータ連結部131)と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記分析フィルタ処理手段に供給する分割手段(例えば、図9のデータ分割部133)と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段(例えば、図9の1ポートSRAM132)とを備えることができる。
本発明の第1の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置(例えば、図1のウェーブレット変換装置100)の情報処理方法であって、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い(例えば、図14のステップS122)、前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給する(例えば、図14のステップS123)ステップを含む情報処理方法である。
本発明の第2の側面は、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置(例えば、図16のウェーブレット変換装置200)であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段(例えば、図16のY用垂直分析フィルタ部217)と、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段(例えば、図16のC用垂直分析フィルタ部218)と、前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段(例えば、図16の途中計算用Yバッファ部223)と、前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段(例えば、図16の途中計算用Cバッファ部224)とを備える情報処理装置である。
前記輝度成分用保持手段は、前記輝度成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する輝度成分用連結手段(例えば、図9のデータ連結部131)と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段(例えば、図9のデータ分割部133)と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段(例えば、図9の1ポートSRAM132)とを備え、前記色差成分用保持手段は、前記色差成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する色差成分用連結手段(例えば、図9のデータ連結部131)と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段(例えば、図9のデータ分割部133)と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段(例えば、図9の1ポートSRAM132)とを備えることができる。
本発明の第2の側面はまた、画像データの周波数成分を複数の周波数帯域に分割する情報処理装置(例えば、図16のウェーブレット変換装置200)の情報処理方法であって、前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い(例えば、図14のステップS122)、前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い(例えば、図14のステップS122)、前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し(例えば、図14のステップS123)、前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給する(例えば、図14のステップS123)ステップを含む情報処理方法である。
本発明の第3の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段(例えば、図27の垂直合成フィルタ部312)と、前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段(例えば、図27の途中計算用バッファ部313)とを備える情報処理装置(例えば、図27のウェーブレット逆変換装置300)である。
前記保持手段は、前記合成フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段(例えば、図9のデータ連結部131)と、1つのデータを複数に分割し、前記サイクル毎に1つずつ前記合成フィルタ処理手段に供給する分割手段(例えば、図9のデータ分割部133)と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段(例えば、図9の1ポートSRAM132)とを備えることができる。
本発明の第3の側面はまた、情報処理装置(例えば、図27のウェーブレット逆変換装置300)の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い(例えば、図37のステップS361)、前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給する(例えば、図37のステップS362)ステップを含む情報処理方法である。
本発明の第4の側面は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段(例えば、図27の垂直合成フィルタ部312)と、前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段(例えば、図27の出力バッファ部316)とを備える情報処理装置(例えば、図27のウェーブレット逆変換装置300)である。
前記保持手段は、サイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段(例えば、図32のデータ連結部373)と、1つのデータを複数に分割し、前記サイクル毎に1つずつ出力する分割手段(例えば、図32のデータ分割部375)と、データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段(例えば、図32の1ポートSRAM374)とを備えることができる。
本発明の第4の側面はまた、情報処理装置(例えば、図27のウェーブレット逆変換装置300)の情報処理方法であって、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い(例えば、図37のステップS361)、互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する(例えば、図36のステップS341)ステップを含む情報処理方法である。
以下、本発明の実施の形態について説明する。
図1は、本発明を適用したウェーブレット変換装置の一実施形態に係る構成例を示す図である。このウェーブレット変換装置100は、入力された画像信号に対して、水平方向の分析フィルタ処理と垂直方向の分析フィルタ処理を行いながら、低域成分を、所定の分割レベル(図1の例の場合、分割レベル4)まで階層的に分割する帯域分析装置である。
図1のウェーブレット変換装置100は、水平分析フィルタ部111、レベル1バッファ部112、レベル2バッファ部113、レベル3バッファ部114、レベル4バッファ部115、セレクタ116、途中計算用バッファ部117、垂直分析フィルタ部118、水平分析フィルタ部119、および制御部120を有する。
水平分析フィルタ部111には、画像信号が入力される(D10)。水平分析フィルタ部111は、その画像信号に対して、分割レベル1の水平方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、水平分析フィルタ処理結果である、低域成分の係数と高域成分の係数からなる周波数成分の係数(以下、適宜、低域成分、高域成分、周波数成分とも称する)を生成する(D11)。
このとき、水平分析フィルタ部111においては、図示せぬ内蔵メモリ(またはレジスタ)に展開されるベースバンド上の隣接する位置にある画素のデータが読み出されながら、水平方向の低域分析フィルタ処理および高域分析フィルタ処理が行われる。
レベル1バッファ部112は、分割レベル1の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル1バッファ部112には、水平分析フィルタ部111による分割レベル1の水平分析フィルタ処理の結果の周波数成分(低域成分と高域成分)の係数が記憶、保持される(D11)。そして、レベル1バッファ部112に垂直方向の分析フィルタリングを実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数は、セレクタ16を介して読み出される(D12)。
レベル2バッファ部113は、分割レベル2の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル2バッファ部113には、水平分析フィルタ部119による分割レベル2の水平分析フィルタ処理の結果の周波数成分(低域成分と高域成分)の係数が記憶、保持される(D20)。そして、レベル2バッファ部113に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数は、セレクタ116を介して読み出される(D13)。
レベル3バッファ部114は、分割レベル3の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル3バッファ部114には、水平分析フィルタ部119による分割レベル3の水平分析フィルタ処理の結果の周波数成分(低域成分と高域成分)の係数が記憶、保持される(D21)。そして、レベル3バッファ部114に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数は、セレクタ116を介して読み出される(D14)。
レベル4バッファ部115は、分割レベル4の水平分析フィルタ処理の結果を記憶、保持する。すなわち、レベル4バッファ部115には、水平分析フィルタ部119による分割レベル4の水平分析フィルタ処理の結果の周波数成分(低域成分と高域成分)の係数が記憶、保持される(D22)。そして、レベル4バッファ部115に垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ(係数)が溜まり次第、垂直ライン分の係数は、セレクタ116を介して読み出される(D15)。
なお、レベル1バッファ部112乃至レベル4バッファ部115をまとめてレベル別バッファ部121とも称する。
セレクタ116は、垂直分析フィルタ部118の制御のもと、レベル別バッファ部121のレベル1バッファ部112乃至レベル4バッファ部115のうち、対応する分割レベルのバッファ部からの出力を選択し、選択した出力を、係数として、垂直分析フィルタ部118に出力する(D16)。
途中計算用バッファ部117は、垂直分析フィルタ処理途中に生成される係数の一部を記憶、保持する。すなわち、途中計算用バッファ部117には、垂直分析フィルタ部118による垂直分析フィルタ処理途中に生成される係数のうち、次の垂直分析フィルタ処理で必要な係数が、途中演算用の係数として記憶、保持される。そして、次の垂直分析フィルタ処理の際に垂直分析フィルタ部118により読み出される。
垂直分析フィルタ部118は、セレクタ116からの所定の垂直ライン分の係数が入力されると(D16)、途中計算用バッファ部117から途中演算用の係数(すなわち、今の垂直分析フィルタ処理の際に必要な係数)を読み出し(D18)、それらの係数を用いて、垂直分析フィルタ処理を行う。そして、垂直分析フィルタ部118は、垂直分析フィルタ処理結果の周波数成分のうち、水平方向にも垂直方向にも低域成分である周波数帯域、すなわち低域サブバンドの係数のみを水平分析フィルタ部119に出力し(D19)、それ以外の周波数帯域、すなわち高域サブバンドの係数をウェーブレット変換装置100の図示せぬ外部(以下、単に外部と称する)に出力する(D23)。
水平分析フィルタ部119は、処理する対象の周波数成分の分割レベルが異なるだけであり、基本的に、水平分析フィルタ部111と同様に構成される。すなわち、水平分析フィルタ部119においては、図示せぬ内蔵メモリ(またはレジスタ)に展開されるベースバンド上の隣接する位置にある係数が読み出されながら(D19)、その係数に対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理が行われる。
そして、水平分析フィルタ部119は、水平分析フィルタ処理結果である周波数成分(低域成分と高域成分)のいずれかを、レベル別バッファ部121の、対応するレベルのバッファ部(レベル2バッファ部113乃至レベル4バッファ部115のうちのいずれか)に記憶、保持させる(D20乃至D22)。
制御部120は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)を含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット変換装置100の各部の処理を制御する。
次に、各部の動作の流れについて説明する。
外部から、水平分析フィルタ部111に画像信号が入力される(D10)。水平分析フィルタ部111は、画像信号に対して、分割レベル1の水平分析フィルタ処理を行う。すなわち、水平分析フィルタ部111は、図示せぬ内蔵メモリ(またはレジスタ)を有しており、内蔵メモリには、図2に示される番号順に、入力される画像信号の画素が順に展開されていく。なお、図2の例においては、四角で示される画素が順に展開された結果のベースバンド画像が示されている。
水平分析フィルタ部111は、内蔵メモリに展開されたベースバンド上の隣接する位置にある所定の数(図2の場合、5コラム(サンプル)数)の画素のデータを、位置をずらしながら読み出し、水平方向の低域分析フィルタ処理および高域分析フィルタ処理を順番に行う。
水平方向のデータは、メモリの番地に容易に展開しやすい。したがって、メモリからデータを読み出しながら、水平分析フィルタ部111においては、水平分析フィルタ処理が順番に実行される。なお、水平方向の低域分析フィルタ処理および高域分析フィルタ処理の詳細については、図6を参照して後述する。
水平分析フィルタ部111は、分割レベル1の水平分析フィルタリング結果の周波数成分の係数を、レベル1バッファ部112に記憶させる(D11)。このとき、水平分析フィルタ部111は、図3に示されるように、水平分析フィルタ処理結果である高域成分(H)と低域成分(L)をインターリーブさせて、レベル1バッファ部112に記憶させる。
なお、水平分析フィルタ処理の結果を、低域と高域の両成分に分割されて、バッファに記憶する方法もあるが、その場合、低域成分と高域成分をバッファ内の別のアドレスにマッピングするためのコントローラが別途必要になる等、制御が煩雑になる。
これに対して、本発明の例が示される図3の例においては、レベル1バッファ部112に、高域成分(H)と低域成分(L)が交互に記憶されている。すなわち、水平分析フィルタ部111により、水平分析フィルタ処理結果である高域成分と低域成分がインターリーブされて、レベル1バッファ部112に記憶されるので、このレベル1バッファ部112に記憶されている係数を読み出す際に、レベル1バッファ部112の先頭から順番に読み出すだけでよく、制御を単純(シンプル)にすることができる。
図1に戻り、例えば、レベル1バッファ部112に水平分析フィルタ処理結果の周波数成分の係数が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分(図3の場合、3ライン分)溜まると、垂直分析フィルタ部118は、セレクタ116がレベル1バッファ部112の出力を選択するように制御することで、必要な垂直ライン分の周波数成分の係数をレベル1バッファ部112から読み出す(D12)。読み出された周波数成分の係数は、セレクタ116を介して、垂直分析フィルタ部118に入力される(D16)。
さらに、垂直分析フィルタ部118は、1つ前の周波数係数を求める処理において途中計算用バッファ部117に記憶された途中演算用の係数を読み出す(D18)。そして、垂直分析フィルタ部118は、それらの、3ライン分の周波数成分の係数および途中演算用の係数を用いて、対応する分割レベル(いまの場合、分割レベル1)の垂直分析フィルタ処理を行う。なお、垂直方向の低域分析フィルタ処理および高域分析フィルタ処理の詳細については図8を参照して後述する。
垂直分析フィルタ部118は、分割レベル1の垂直分析処理途中(垂直分析フィルタ処理の演算過程)に生成される係数の一部(すなわち、次回の垂直分析フィルタ処理に必要な係数)を、途中演算用の係数として途中計算用バッファ部117に記憶させる(D17)。
この分割レベル1の垂直分析フィルタ処理の結果(すなわち、分割レベル1の分析フィルタ処理の結果)、図4に示されるように、垂直方向および水平方向に低域な周波数帯域(サブバンド)を示す低域サブバンドの係数(1LL)の係数、および、それ以外のサブバンドよりなる高域サブバンド(1HL,1LH,1HH)の係数からなる4つのサブバンドの係数が生成される。なお、図4の例における四角は、1つの係数を示し、「L」および「H」の順序は、前側が水平分析フィルタ処理を行った結果の帯域(低域または高域)を示し、後側が垂直分析フィルタ処理を行った結果の帯域を示す。また、「L」および「H」の前の数字は分割レベルを表す。
以上が分割レベル1の分析フィルタ処理であり、その結果、垂直分析フィルタ部118においては、分割レベル1の低域サブバンドの係数(1LL)と高域サブバンドの係数(1HL,1LH,1HH)が生成される(D19およびD23)。なお、これらのうち、各低域サブバンドの成分だけはさらに分析フィルタ処理が行われる。このように分析フィルタ処理は、各分割レベルの低域サブバンドの係数について、設定されている分割レベル(最上位レベル)まで再帰的に繰り返される。これに対して、高域サブバンドの係数は、通常それ以上に分析されない。つまり、垂直分析フィルタ部118は、今回生成された高域サブバンド(1HL,1LH,1HH)の周波数成分を、外部に出力する(D23)。
一方、低域サブバンド(1LL)の周波数成分は、水平分析フィルタ部119に出力される(D19)。水平分析フィルタ部119は、内蔵するメモリに展開される低域サブバンドの周波数成分の係数に対して、対応する分割レベル(いまの場合、分割レベル2)の水平分析フィルタ処理(水平方向の低域分析フィルタ処理および高域分析フィルタ処理)を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。そしてそれ以降の処理が繰り返される。
すなわち、水平分析フィルタ部119は、水平分析フィルタ処理結果の周波数成分(低域成分と高域成分)の係数を、図3を参照して上述したように、対応するレベルのバッファ(今の場合、レベル2バッファ部113)に記憶、保持させる(D20)。
そして、レベル2バッファ部113に水平分析フィルタ処理結果の周波数成分の係数が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分溜まると、その所定の垂直ライン分の係数は、レベル2バッファ部113から読み出され(D13)、セレクタ116を介して、垂直分析フィルタ部118に入力される(D16)。そして、途中計算用バッファ部117から途中演算用の係数が読み出され(D18)、その途中演算用の係数を用いて、分割レベル2の垂直分析フィルタ処理が行われる。
分割レベル2の垂直分析フィルタ処理途中の係数の一部の係数が、途中計算用バッファ部117に記憶され、レベル2の垂直分析フィルタ処理の結果、低域サブバンド(2LL)および高域サブバンド(2HL,2LH,2HH)からなる4つの周波数帯域の周波数成分が生成される。このうち、高域サブバンド(2HL,2LH,2HH)の係数は、外部に出力される(D23)。低域サブバンド(2LL)の係数は、水平分析フィルタ部119に供給される(D19)。
水平分析フィルタ部119は、この分割レベル2の低域サブバンド(2LL)の係数に対して、分割レベル2の水平分析フィルタ処理を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。水平分析フィルタ部119は、これらの係数を、レベル3バッファ部114に供給して記憶、保持させる(D21)。これらの係数は、再度、垂直分析フィルタ部118に供給され、垂直分析フィルタ処理が行われる。
以上のように、各分割レベルの低域サブバンドの係数について垂直分析フィルタ処理および水平分析フィルタ処理が、最上位レベルに達するまで、再帰的に実行される。各分割レベルにおいて生成された高域サブバンドの係数は、順次、外部に出力される(D23)。
予め設定された分割レベルの最上位レベル(分割レベル4)に達すると、垂直分析フィルタ部118は、その最上位レベルの周波数成分(4LL,4HL,4LH,4HH)を、外部に出力する(D23)。これにより、分割レベル4の画像信号のウェーブレット変換は終了される。
以上のように、図1のウェーブレット変換装置100は、レベル1から所定のレベル数までの分割レベル毎のバッファ部を備え、水平分析フィルタ処理を行いながら、水平分析フィルタ処理の結果を、分割レベル毎のバッファ部に記憶させている。したがって、この水平分析フィルタ処理の結果を、分割レベル毎のバッファ部から読み出しながら、垂直方向のフィルタ処理を行うことができる。すなわち、水平方向と垂直方向のフィルタ処理を同時並行的に動作させることができる。
これにより、ウェーブレット変換装置100は、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、図1のウェーブレット変換装置100は、レベル1から所定のレベル数までの分割レベル毎のバッファ部とともに、途中計算用バッファ部117を有しており、垂直方向の分析フィルタ処理の際に、次回の処理に必要な係数を途中計算用バッファ部117に保持させ、次回の垂直分析フィルタ処理の際にその係数を読み出して利用するので、外部にメモリを構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
次に、上述した分析フィルタ処理における演算方法について具体的に説明する。分析フィルタ処理における演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets.”, Appl. Comput. Harmon. Anal., vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
図5は、JPEG(Joint Photographic Experts Group)2000規格でも採用されている9×7分析フィルタのリフティング構成を示している。この9×7分析フィルタに対してリフティング技術を適用したときの分析フィルタ処理について説明する。
図5の例において、1段目(最上段)は、入力画像のサンプル群(画素列)を示し、2,3段目は、それぞれステップA1およびステップA2の処理で生成される成分(係数)を示す。また、4段目は、ステップA3の処理で生成される高域成分出力を示し、5段目は、ステップA4の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタ処理で得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印(■)が偶数番目のサンプルまたはライン、丸印(●)が奇数番目のサンプルまたはラインとする。
9×7分析フィルタに対してリフティング技術を適用した分析フィルタ処理においては、ステップA3の処理で高域成分が得られ、ステップA4の処理で低域成分が得られる。なお、ステップA1乃至ステップA4の処理は、次の式(1)乃至式(4)で表される。
stepA1:di 1=di 0+α(si 0+si+1 0) ・・・(1)
stepA2:si 1=si 0+β(di-1 1+di 1) ・・・(2)
stepA3:di 2=di 1+γ(si 1+si+1 1) ・・・(3)
stepA4:si 2=si 1+δ(di-1 2+di 2) ・・・(4)
ただし、
α=−1.586134342
β=−0.05298011857
γ=0.8829110755
δ=0.4435068520
このように、リフティング技術を適用した分析フィルタ処理においては、ステップA1およびA2の処理が行われ、ステップA3で、高域成分の係数が生成された後に、ステップA4で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式(1)乃至式(4)に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、ウェーブレット変換装置100においても、水平分析フィルタ処理および垂直分析フィルタ処理に、このリフティング技術を適用する。
まず、水平分析フィルタ部111および水平分析フィルタ部119により実行される水平分析フィルタ処理について具体的に説明する。図6は、水平方向の係数群に対しての水平分析フィルタ処理を、図5のリフティング構成により実行する場合の例を示している。
図6の例においては、入力される水平方向の係数に対して、図5で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域成分の係数(以下、高域係数とも称する)と低域成分の係数(以下、低域係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列(コラム)番号を示している。
さらに、上から1段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について上から順に説明する。図6の上段には、水平方向にコラム番号4乃至6の3コラムの係数が入力されて、水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。
この水平リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、コラム番号0乃至4の4コラムの係数の入力が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号5および6の2コラムの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるコラム番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号4乃至6の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々3つの係数であるので、水平分析フィルタ部111および水平分析フィルタ部119に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応することができる。
したがって、1番目の水平リフティング演算においてラッチされていた太線実線で示される3つの係数と、入力されたコラム番号4乃至6の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
コラム番号6の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号6乃至8の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図6の下段に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号7および8の2コラムの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるコラム番号6の係数も必要であることがわかる。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でフリップフロップにラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号6乃至8の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタ処理が完了される。
なお、以上においては、リフティング構成による1ライン分の水平分析フィルタ処理の例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタ処理を行う動作を、図7を参照して説明する。なお、図7において、図5および図6と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
図7の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
図中左から順に説明すると、先頭の入力ライン0における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されている。このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
入力ライン1しか図示されていないが、入力ライン1乃至入力ラインnに関しても同様である。すなわち、先頭の入力ライン1における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されており、このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
そして、図7の右側に示すように、入力ライン0の水平フィルタリングの結果の1乃至11が付された係数は、上から1段目に、手前から奥への水平方向に並べて展開される。入力ライン1の水平フィルタ処理の結果の1乃至11が付された係数は、上から2段目に、手前から奥への水平方向に並べて展開される。入力ライン2の水平フィルタ処理の結果の係数は、上から3段目に、手前から奥への水平方向に並べて展開される。
以上のように、各入力ライン0乃至入力ラインnに対しての水平フィルタ処理の結果の係数が、図7の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタ処理の結果の1乃至11が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる。
次に、垂直分析フィルタ部118により実行される垂直分析フィルタ処理について具体的に説明する。図8は、水平分析フィルタ処理の結果の係数を、図2を参照して上述したように垂直方向に並べ、垂直方向の分析フィルタ処理を、図5のリフティング構成により実行する場合の例を示している。
なお、この図は、図7の右側に概念的に示した水平方向に展開されて並ぶ係数1つに着目したものであり、実際の2次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分の水平方向の係数の個数だけ、垂直方向の分析フィルタ処理の計算が必要になることは自明である。
図8の例においては、垂直方向の係数に対して、図5で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
さらに、左から1列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について左から順に説明する。図8の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
この垂直リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、ライン番号0乃至4の4ラインの係数が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号5および6の2ラインの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるライン番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号4乃至6の3ラインの係数の入力が必要であり、さらに、1番目の垂直リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、図1の途中計算用バッファ部117に記憶しておく必要がある。なお、このとき、垂直方向の3ラインの係数は、レベル別バッファ部121の、対応するレベルのバッファ部から、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが2であれば、レベル2バッファ部113から係数が読み出される。
したがって、1番目の垂直リフティング演算で途中計算用バッファ部117に記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出され入力されるライン番号4乃至6の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部117に記憶される。
ライン番号6の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号6乃至8の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図8の右側に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号7および8の2ラインの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるライン番号6の係数も必要であることがわかる。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で途中計算用バッファ部117に記憶されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号6乃至8の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部117に記憶される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
以上のように途中計算用バッファ部117へのアクセス(データの読み出しおよび書き込み)は、垂直分析フィルタ処理の度、つまり頻繁に行われる。この途中計算用バッファ部117の実現方法として、垂直分析フィルタ部118を実現するLSI(Large Scale Integration)チップの外部に設けられた大容量のメモリ(外部メモリ)を用いる方法が考えられるが、一般的に、外部メモリは、LSIチップ内の演算処理部に比べて動作周波数が低く動作が低速である。また、アクセスするのに、動作周波数が低速でありかつ他の処理部にも使用される共有バスを介する必要があり、データの読み出しおよび書き込みは、さらに低速になる恐れがある。従って、このような外部メモリを用いてアクセス頻度の高い途中計算用バッファ部117を実現すると、垂直分析フィルタ処理の処理速度が極端に低減し、遅延時間が増大する恐れがある。
そこで、途中計算用バッファ部117は、垂直分析フィルタ部118を実現するLSIチップ内部に設けられる高速動作可能なメモリを用いて実現するのが望ましい。その場合においてもさらに高速にアクセス可能にする方がより望ましい。図9は、途中計算用バッファ部117の構成例を示すブロック図である。
図9に示されるように、途中計算用バッファ部117は、データ連結部131、1ポートSRAM(Static Random Access Memory)132、およびデータ分割部133を有する。
データ連結部131は、垂直分析フィルタ部118より連続的に供給される(D51)2つの16ビットのデータを連結して32ビットのデータを生成し、1ポートSRAM132に供給する(D55)。データ連結部131は、セレクタ141、遅延部142、およびパッキング部143を有する。
セレクタ141は、連続して供給される16ビットのデータ2つを1組とし、先に供給される一方を遅延部142に供給し(D52)、後に供給される他方をパッキング部143に供給する(D54)ようにデータを振り分ける。遅延部142は、供給された16ビットのデータのタイミングを1サイクル分(次のデータ供給タイミングまで)遅延させてからパッキング部143に供給する(D53)。つまり、パッキング部143には、2つの16ビットデータが同時に供給される。パッキング部143は、それら2つの16ビットデータを連結させて1つの32ビットデータを生成し、その32ビットデータを1ポートSRAM132に供給して保持させる(D55)。
データ分割部133は、1ポートSRAM132より32ビットデータを読み出し(D56)、1つの32ビットデータを2つの16ビットデータに分割し、それらを連続的に出力する(D60)。データ分割部133は、16ビット分離部144、遅延部145、およびセレクタ146を有する。
16ビット分離部144は、1ポートSRAM132より読み出された32ビットデータを上位16ビットと下位16ビットで分離し、2つの16ビットデータを生成し、上位16ビットの16ビットデータをセレクタ146に供給し(D57)、下位16ビットの16ビットデータを遅延部145に供給する(D58)。遅延部145は、16ビット分離部144より供給された下位16ビットの16ビットデータのタイミングを1サイクル分遅延させてからセレクタ146に供給する(D59)。セレクタ146は、1サイクル毎に、入力を16ビット分離部144または遅延部145に交互に切り替える。これにより2つの16ビットデータは連続的に順次出力される(D60)。
1ポートSRAM132は、データの書き込みと読み出しを1系統で行う記憶媒体であり、制御部120に制御されて、データ連結部131のパッキング部143より供給される32ビットデータを記憶し、記憶している32ビットデータをデータ分割部133の16ビット分離部144に出力する。
データ記憶に使われる、LSIチップに内蔵されるメモリの中でRAM(Random Access Memory)は、データの読み書きを電気的に行うため、動作が高速であるが、単位面積当たりの価格が高いため、大量には使いにくいという欠点がある。RAMの一種に、記憶素子としてフリップフロップ回路を用いるSRAMがある。SRAMは、記憶保持のための動作を必要とせず、高速動作が利点だが、回路が複雑になるので集積度が低減する恐れがある。つまり、集積度を向上させるためには、SRAMの容量をいかに少なくすることができるかが重要なポイントになる。
一般に、SRAMには、データの入出力を同時に行うことができない1ポートSRAMと、データ入出力が同時に実行可能な2ポートSRAMの2つがあり、それぞれ、図10Aまたは図10Bのような入出力端子を有する。
つまり、1ポートSRAMは、図10Aに示されるように、一般的に、クロック信号「CLK」が入力される端子、チップイネーブル信号「CEN」が入力される端子、データ入出力を制御するイネーブル信号「EN」が入力される端子、32ビットデータを書き込むアドレス、または、32ビットデータを読み出すアドレスを指定するアドレス情報「ADR」が入力される端子、書き込み用の32ビットデータ「WD」が入力される端子、および、読み出された32ビットデータ「RD」が出力される端子を有する。
これに対して、2ポートSRAMは、図10Bに示されるように、一般的に、書き込み用のクロック信号「WCLK」が入力される端子、書き込み制御用のイネーブル信号「WEN」が入力される端子、32ビットデータを書き込むアドレスを指定する書き込み用のアドレス情報「WADR」が入力される端子、書き込み用の32ビットデータ「WD」が入力される端子、読み出し用のクロック信号「RCLK」が入力される端子、読み出し制御用のイネーブル信号「REN」が入力される端子、32ビットデータを読み出すアドレスを指定する読み出し用のアドレス情報「RADR」が入力される端子、および、読み出された32ビットデータ「RD」が出力される端子を有する。
図10Aに示される1ポートSRAMの場合、チップイネーブル信号「CEN」は、読み出し動作と書き込み動作を切り替える信号であり、イネーブル信号「EN」とアドレス情報「ADR」の2つの信号は、読み出し動作と書き込み動作で共有されている。例えば、チップイネーブル信号「CEN」が読み出し動作を指定する場合、イネーブル信号「EN」は読み出し動作タイミングを制御する信号となり、アドレス情報「ADR」は読み出すデータのアドレスを指定する信号となる。逆に、チップイネーブル信号「CEN」が書き込み動作を指定する場合、イネーブル信号「EN」は書き込み動作タイミングを制御する信号となり、アドレス情報「ADR」はデータを書き込むアドレスを指定する信号となる。つまり、1ポートSRAMは、読み出し動作と書き込み動作を同時に行うことができない。
これに対して、図10Bに示される2ポートSRAMの場合、書き込み動作を制御する信号と読み出し動作を制御する信号が、互いに完全に独立している。つまり、2ポートSRAMは、自由なタイミングで読み出し動作および書き込み動作が可能であり、読み出し動作と書き込み動作を並行して行うこともできる。
図11は、このような1ポートSRAMと2ポートSRAMで、4つのデータの書き込みを行い、さらに、すぐにそれらのデータを読み出す場合のタイミングチャートを示す模式図である。図11Aは、1ポートSRAMの場合のタイミングチャートの例を示し、図11Bは、2ポートSRAMの場合のタイミングチャートの例を示す。
図11Aに示されるように、1ポートSRAMの場合、イネーブル信号「EN」に従って、4つのデータが連続的に書き込まれ(4サイクル)、SRAMのレイテンシ(遅延)により1サイクル経過後、書き込まれた4つのデータが、連続的に読み出される(4サイクル)。従って、1ポートSRAMは、4つのデータの書き込みおよび読み出しの処理に、合計9サイクルの時間を必要とする。なお、「サイクル」は、処理の同期タイミング、つまり、時分割の単位となる時間を示している。例えば、ここではデータの書き込みまたは読み出しのタイミング(またはその周期)を示している。
これに対して、図11Bに示されるように、2ポートSRAMの場合、書き込み制御用のイネーブル信号「WEN」、および、読み出し制御用のイネーブル信号「REN」の両方が存在するので、4つのデータの読み出し動作と書き込み動作は並列化することが出来る。従って図11Bに示されるように、2ポートSRAMは、読み出し動作および書き込み動作が4サイクルで実行可能であり、1サイクルのレイテンシと合わせて合計5サイクルで処理を終了することができる。
HDTV(High Definition Television)の場合、1ラインの水平サイズは1920画素であるので、その1ライン分の係数を1ポートSRAMに書き込み、さらに読み出すと、1920×2=3840サイクル必要になってしまう。つまり、分析フィルタ処理において途中計算用バッファ部117として1ポートSRAMを単純に適用すると、遅延時間が増大してしまう恐れがある。
このサイクル数を減らすためには、1ポートSRAMの代わりに2ポートSRAMを用いるようにすればよいが、2ポートSRAMは、内部に1ポートSRAMの構成を2つ有するのと略等価であり、製造コストが高価であり、かつ、回路面積が略2倍になる。通常の場合、メモリの回路規模は、LSIチップの中での占有率が高く、メモリ面積の増大はそのままチップ面積の増大に繋がる恐れがある。
そこで、途中計算用バッファ部117として1ポートSRAMを適用し、図9に示されるようにデータ連結部131を用いて1ポートSRAM132に書き込むデータを連結して32ビット化し、また、1ポートSRAM132よりデータを32ビット単位で読み出し、データ分割部133を用いてその32ビットデータを2つの16ビットデータに分離することにより、1ポートSRAM132に対するデータの読み出しと書き込みを並行して動作することができるようにする。
図12のタイミングチャートを参照して、図9の途中計算用バッファ部117の各部の動作の流れについて説明する。
図12の上から4段目に示されるように、最初のサイクルにおいて供給される16ビットの書き込み用データ(WD16bit)「0」が供給されると、データ連結部131のセレクタ141は、そのデータ「0」を、遅延部142を介して1サイクル遅延させてパッキング部143に供給する。そして、2番目のサイクルにおいて供給される16ビットの書き込み用データ「1」が供給されると、データ連結部131のセレクタ141は、そのデータ「1」をパッキング部143に供給する。パッキング部143は、2サイクル目において、それらのデータ「0」および「1」を連結して32ビットの書き込み用データ(WD32bit)「0,1」を生成し、図12の上から1段目乃至3段目に示される書き込み指示に従って、そのデータ「0,1」をアドレス「0」に書き込む。
また、データ連結部131のセレクタ141は、図12の上から4段目に示されるように、3番目のサイクルにおいて16ビットの書き込み用データ(WD16bit)「2」が供給されると、そのデータ「2」を、遅延部142を介して1サイクル遅延させてパッキング部143に供給する。つまりこの3サイクル目においては、1ポートSRAM132への書き込みは行われない。
従って、データ分割部133の16ビット分離部144は、その3サイクル目において、図12の上から1段目乃至3段目に示される読み出し指示に従って、アドレス「0」に書き込まれた32ビットデータを読み出し、その読み出したデータ(RD32bit)(「0,1」)を、2つの16ビットデータ(データ「0」およびデータ「1」)に分離する。16ビット分離部144は、分離した一方のデータ「0」をセレクタ146に供給するとともに、他方のデータ「1」を、遅延部145を介して1サイクル遅延させてセレクタ146に供給する。セレクタ146は、それらのデータ「0」およびデータ「1」を順次出力する(RD16bit)。
上述したように3サイクル目において遅延されてパッキング部143に供給されたデータ「2」は、4サイクル目においてデータ連結部131のセレクタ141より遅延部142を介さずにパッキング部143に供給された16ビットの書き込み用データ「3」と、4サイクル目において連結され、32ビットの書き込み用データ(WD32bit)「2,3」が生成される。パッキング部143は、4サイクル目において、図12の上から1段目乃至3段目に示される書き込み指示に従って、そのデータ「2,3」をアドレス「1」に書き込む。
3サイクル目と同様に、データ分割部133の16ビット分離部144は、5サイクル目において、図12の上から1段目乃至3段目に示される読み出し指示に従って、アドレス「1」に書き込まれた32ビットデータを読み出し、その読み出したデータ(RD32bit)(「2,3」)を、2つの16ビットデータ(データ「2」およびデータ「3」)に分離する。16ビット分離部144は、分離した一方のデータ「2」をセレクタ146に供給するとともに、他方のデータ「3」を、遅延部145を介して1サイクル遅延させてセレクタ146に供給する。セレクタ146は、それらのデータ「2」およびデータ「3」を順次出力する(RD16bit)。
以上のように、2つの16ビットデータを32ビットデータとして1ポートSRAMに対して読み出しおよび書き込みを行うことにより、途中計算用バッファ部117は、データ連結部131による書き込み、およびデータ分割部133による読み出しを、時分割により、同時並行的に行うことができ、合計5サイクルで4つのデータを1ポートSRAM132に書き込み、さらに、読み出すことができる。なお、ここで「同時並行的」とは、書き込みの開始から終了までの時間と読み出しの開始から終了までの時間が互いに重なっていることを示すものであり、厳密に言えばこれらの読み出しと書き込みの作業は「同時」に行われず、また「並行」して行われない(時分割されて交互に実行される)。
このようにすることにより、ウェーブレット変換装置100は、途中計算用バッファ部117の回路規模の増大を抑制するとともに、途中計算用バッファ部117を高速に動作させることができ、ウェーブレット変換における遅延時間の増大を抑制することができる。つまり、ウェーブレット変換装置100は、ウェーブレット変換処理の遅延時間をより低減させるとともにコストも低減させることができる。
なお、以上においては1ポートSRAM132が32ビット単位でデータの入出力を行うように説明したが、1ポートSRAM132に対するデータ入出力のデータ単位は任意である。また、途中計算用バッファ部117へのデータの入出力は16ビット単位で行われるように説明したが、途中計算用バッファ部117に対するデータ入出力のデータ単位も任意である。つまり、図10に示されるデータ連結部131およびデータ分割部133の構成は一例であり、実際には、1ポートSRAM132に対するデータ入出力のデータ単位と、途中計算用バッファ部117に対するデータ入出力のデータ単位によって決定される。
しかしながら基本的な構造は図10の例と同様である。つまり、データ連結部131は、複数サイクルかけて途中計算用バッファ部117に入力される所定のデータ単位の複数のデータを連結して、1ポートSRAM132のデータ入力単位のデータを、供給されたデータ数より少ない数となるように、1つまたは複数生成し、そのデータをデータ数分のサイクルをかけて1ポートSRAM132に供給して保持させる。また、データ分割部133は、1ポートSRAM132より、1ポートSRAM132のデータ出力単位の、1つまたは複数のデータを、そのデータ数分のサイクルをかけて読み出し、読み出したデータを、途中計算用バッファ部117のデータ出力単位の複数のデータに分離し、途中計算用バッファ部117より出力させる。1ポートSRAM132は、データ入出力単位でデータの読み出しと書き込みを交互に行う。
以上のようなウェーブレット変換装置100により実行されるウェーブレット変換処理の流れの例を図13のフローチャートを参照して説明する。なお、このウェーブレット変換処理は所定の処理単位毎に実行される。
ウェーブレット変換処理が開始されると、ウェーブレット変換装置100の水平分析フィルタ部111は、ステップS101において、レベル1の水平分析フィルタ処理を行い、ステップS102において、水平分析フィルタ処理の結果として得られた係数を、レベル別バッファ部121の、その係数の分割レベルに対応するレベルのバッファ部に記憶させる。
ステップS103において、垂直分析フィルタ部118は、垂直分析フィルタ処理を実行し、ステップS102において記憶された係数を読み出して、その係数に対する垂直分析フィルタ処理を行う。垂直分析フィルタ処理の詳細については後述する。
垂直分析フィルタ処理が終了すると、制御部120は、最上位レベルまで垂直分析フィルタ処理を行ったか否かを判定する。最上位レベルの垂直分析フィルタ処理が終了していないと判定された場合、処理は、ステップS105に進む。ステップS105において、垂直分析フィルタ部118は、生成した高域サブバンドの係数を外部に出力する。ステップS106において、水平分析フィルタ部119は、垂直分析フィルタ部118により生成された低域サブバンドの係数に対して水平分析フィルタ処理を行う。ステップS106の処理が終了すると、処理はステップS102に戻り、それ以降の処理が繰り返される。つまり、ステップS102乃至ステップS106の処理が繰り返されることにより、各分割レベルにおいて分析フィルタ処理が行われる。
そして、ステップS104において最上位レベルの分析フィルタ処理が終了したと判定された場合、処理は、ステップS107に進む。ステップS107において、垂直分析フィルタ部118は、最上位レベルの係数を全て外部に出力する。ステップS107の処理が終了すると、ウェーブレット変換処理は終了する。
次に、図14のフローチャートを参照して、図13のステップS103において実行される垂直分析フィルタ処理の詳細な流れの例を説明する。
垂直分析フィルタ処理が開始されると、垂直分析フィルタ部118は、ステップS121において、レベル別バッファ部121の、現在の処理対象分割レベルに対応するレベルのバッファ部よりデータを取得する。ステップS122において、垂直分析フィルタ部118は、垂直分析リフティング演算を行い、1つ上位の係数を生成する。ステップS123において、垂直分析フィルタ部118は、バッファ入出力処理を実行することにより、途中計算用バッファ部117に対して、算出した係数を書き込むとともに、次の演算に必要な係数を読み出す。このバッファ入出力処理の詳細については後述する。
バッファ入出力処理が終了すると、制御部120は、ステップS124において、垂直分析フィルタ処理を終了するか否かを判定し、未処理の係数が存在し、垂直分析フィルタ処理を継続すると判定した場合、処理をステップS121に戻し、それ以降の処理を繰り返させる。また、ステップS124において、垂直分析フィルタ処理を終了すると判定した場合、垂直分析フィルタ処理を終了する。
次に、図14のステップS123において実行されるバッファ入出力処理の詳細な流れの例を、図15のフローチャートを参照して説明する。
バッファ入出力処理が開始されると、データ分割部133は、ステップS141において、バッファ、すなわち1ポートSRAM132より32ビットのデータ(32ビットデータ)を読み出し、ステップS142において、読み出した32ビットデータを16ビットデータに分割して出力する。
ステップS143において、データ連結部131は、連続して供給される2つの書き込み用の16ビットのデータ(16ビットデータ)を1つの32ビットデータにまとめ、ステップS144において、その32ビットデータをバッファ、すなわち、1ポートSRAM132に書き込む。
ステップS145において、制御部120は、必要なデータの読み出しおよび書き込みが全て終了したか否かを判定し、終了していないと判定した場合、処理をステップS141に戻し、それ以降の処理を繰り返す。また、ステップS145において、必要なデータの読み出しおよび書き込みが全て終了したと判定した場合、制御部120は、バッファ入出力処理を終了する。
以上のように、ウェーブレット変換装置100は、途中計算用バッファ部117として、図9に示されるような構成を有する1ポートSRAMを用いることにより、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
なお、ウェーブレット変換装置は、データの入出力を同時並行的に行う途中計算用バッファ部を有していればよく、その他の構成は、上述した以外であってもよい。以下に、ウェーブレット変換装置の他の構成例について説明する。
図16は、本発明を適用したウェーブレット変換装置の他の構成例を示す図である。このウェーブレット変換装置200は、入力された画像信号に対して、水平方向のフィルタ処理と垂直方向のフィルタ処理を行いながら、低域成分を、所定の分割レベル(図16の例の場合、分割レベル4)まで階層的に分割する帯域分析装置である。
図16のウェーブレット変換装置200は、インターリーブ部210、水平分析フィルタ部211、レベル1バッファ部212、レベル2バッファ部213、レベル3バッファ部214、レベル4バッファ部215、セレクタ216、Y(輝度)用垂直分析フィルタ部217、C(色差)用垂直分析フィルタ部218、インターリーブ部219、水平分析フィルタ部220、制御部221、途中計算用Yバッファ部223、および途中計算用Cバッファ部224を有する。
インターリーブ部210には、画像信号の要素である輝度信号(輝度成分の信号)と色差信号(色差成分の信号)が入力される(D10およびD11)。なお、以下、輝度(成分)を適宜Yとも称し、色差(成分)を適宜Cとも称する。インターリーブ部210は、輝度信号と色差信号とをインターリーブする。なお、既にYとCとがインターリーブされている画像信号が入力される場合には、もちろん、インターリーブ部210の処理は必要とされない。インターリーブされた画像信号は、水平分析フィルタ部211に入力される(D112)。
水平分析フィルタ部211は、YとCとがインターリーブされた画像信号に対して、分割レベル1の水平方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、水平分析フィルタ処理結果である、低域成分の係数と高域成分の係数からなる周波数成分の係数(以下、適宜、低域成分、高域成分、周波数成分とも称する)を生成する。
このとき、水平分析フィルタ部211においては、図示せぬ内蔵メモリ(またはレジスタ)から、ベースバンド上の飛び飛びの位置にあるYまたはCのデータが交互に読み出されながら、YまたはCに対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理が交互に行われる。
レベル1バッファ部212は、分割レベル1の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部211による分割レベル1の水平分析フィルタ処理の結果のYの周波数成分(低域成分と高域成分)およびCの周波数成分(低域成分と高域成分)がそれぞれ供給される(D113)ので、レベル1バッファ部212は、それらを別々に記憶、保持する。そして、レベル1バッファ部212は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分のデータ(周波数成分)が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ216に供給する(D114)。
レベル2バッファ部213は、分割レベル2の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部220による分割レベル2の水平分析フィルタ処理の結果のYの周波数成分(低域成分と高域成分)およびCの周波数成分(低域成分と高域成分)がそれぞれ供給される(D122)ので、レベル2バッファ部213は、それらを別々に記憶、保持する。そして、レベル2バッファ部213は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ216に供給する(D115)。
レベル3バッファ部214は、分割レベル3の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部220による分割レベル3の水平分析フィルタ処理の結果のYの周波数成分(低域成分と高域成分)およびCの周波数成分(低域成分と高域成分)がそれぞれ供給される(D122)ので、レベル3バッファ部214は、それらを別々に記憶、保持する。そして、レベル3バッファ部214は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ216に供給する(D116)。
レベル4バッファ部215は、分割レベル4の水平分析フィルタ処理の結果を記憶、保持する。すなわち、水平分析フィルタ部220による分割レベル4の水平分析フィルタ処理の結果のYの周波数成分(低域成分と高域成分)およびCの周波数成分(低域成分と高域成分)がそれぞれ供給される(D122)ので、レベル4バッファ部215は、それらを別々に記憶、保持する。そして、レベル4バッファ部215は、垂直方向の分析フィルタ処理を実行できるだけの所定の垂直ライン分の周波数成分が溜まり次第、その蓄積された垂直ライン分の周波数成分を読み出して、セレクタ216に供給する(D117)。
なお、レベル1バッファ部212乃至レベル4バッファ部215をまとめてレベル別バッファ部222とも称する。
セレクタ216は、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218の制御のもと、レベル別バッファ部222のレベル1バッファ部212乃至レベル4バッファ部215のうち、対応する分割レベルのバッファからの出力(D114乃至D117)を選択し、選択した出力を、周波数成分として、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218に出力する(D118)。
Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、セレクタ216より供給される所定の垂直ライン分の周波数成分を取得し(D118)その周波数成分に対して、YおよびCの垂直分析フィルタ処理をそれぞれ行う。
すなわち、Y用垂直分析フィルタ部217は、セレクタ216を使って、現在処理対象とする分割レベルに対応する分割レベルのバッファ部から、Yの所定の垂直ライン分の周波数成分を読み出し(D118)、さらに、途中計算用Yバッファ部223より、前回の分析フィルタ処理により得られた係数の一部を取得し、それらを用いて、Yの垂直方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、Yの低域サブバンドの係数である低域成分のみをインターリーブ部219に出力し(D119)、Yの高域サブバンドの係数をウェーブレット変換装置200の図示せぬ外部(以下、単に外部と称する)に出力する(D123)。
C用垂直分析フィルタ部218は、セレクタ216を使って、現在処理対象とする分割レベルに対応する分割レベルのバッファ部から、Cの所定の垂直ライン分の周波数成分を読み出し(D118)、さらに、途中計算用Cバッファ部224より、前回の分析フィルタ処理により得られた係数の一部を取得し、それらを用いて、Cの垂直方向の低域分析フィルタ処理および高域分析フィルタ処理を行い、Cの低域サブバンドの係数である低域成分のみをインターリーブ部219に出力し(D120)、Cの高域サブバンドの係数をウェーブレット変換装置200の図示せぬ外部(以下、単に外部と称する)に出力する(D124)。
インターリーブ部219は、Y用垂直分析フィルタ部217より供給されたYの低域成分と、C用垂直分析フィルタ部218からのCの低域成分をインターリーブする。インターリーブされた低域成分は、水平分析フィルタ部220に入力される(D121)。
水平分析フィルタ部220は、処理する対象の周波数成分の分割レベルが異なるだけであり、基本的に、水平分析フィルタ部211と同様に構成される。すなわち、水平分析フィルタ部220は、図示せぬ内蔵メモリから、ベースバンド上の飛び飛びの位置にあるYまたはCの低域成分が交互に読み出しながら、YまたはCの低域成分に対しての水平方向の低域分析フィルタ処理および高域分析フィルタ処理を交互に行う。
そして、水平分析フィルタ部220は、水平分析フィルタリング結果である周波数成分(低域成分と高域成分)を、レベル別バッファ部222の、周波数成分の分割レベルに対応する分割レベルのバッファ(レベル2バッファ部213乃至レベル4バッファ部215のうちのいずれか)に供給し(D122)、記憶、保持させる。
制御部221は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)を含むマイクロコンピュータなどにより構成され、各種のプログラムなどを実行することにより、ウェーブレット変換装置200の各部の処理を制御する。
次に、このウェーブレット変換装置の動作の流れについて説明する。
外部から、インターリーブ部210に画像信号が入力される(D110およびD111)。インターリーブ部210は、例えば、画像信号の要素である輝度信号および色差信号が入力された場合、内蔵するメモリにおいて、輝度信号および色差信号をインターリーブする。インターリーブされた画像信号は、水平分析フィルタ部211に入力される(D112)。
水平分析フィルタ部211は、YとCとがインターリーブされた画像信号に対して、分割レベル1の水平分析フィルタ処理を行う。すなわち、水平分析フィルタ部211は、図示せぬ内蔵メモリ(またはレジスタ)を備えており、内蔵メモリには、図17に示されるように、YとCとが交互にインターリーブされた画像信号が展開されていく。図17の例においては、メモリに、四角で示されるYとCとが交互に展開された画像信号のベースバンドが示されている。
水平分析フィルタ部211は、内蔵メモリに展開されたベースバンド上の飛び飛びの位置にある所定の数(図2の場合、3サンプル数)のYのデータまたは所定の数のCのデータを、位置をずらしながら順番に読み出し、Yの水平方向の低域分析フィルタ処理および高域分析フィルタ処理と、Cの水平方向の低域分析フィルタ処理および高域分析フィルタ処理を交互に行う。
水平方向のデータは、メモリの番地に容易に展開しやすい。したがって、水平分析フィルタ部211において、メモリからYのデータとCのデータを交互に読み出しながら、YとCの水平分析フィルタリングを順番に実行することは、容易に可能である。
水平分析フィルタ部211は、分割レベル1の水平分析フィルタ処理結果の周波数成分を、レベル1バッファ部212に記憶させる。
このとき、水平分析フィルタ部211は、図18に示されるように、Yの水平分析フィルタ処理結果であるYの高域成分(H)と低域成分(L)をインターリーブさせて、レベル1バッファ部212にCとは別に記憶させ、次に、Cの水平分析フィルタ処理結果であるCの高域成分と低域成分をインターリーブさせて、レベル1バッファ部212にYとは別に記憶させる。
なお、水平分析フィルタ処理の結果を、図19に示されるように、YについてもCについても、低域と高域の両成分に分割されて、バッファに記憶させる方法も考えられる。しかしながら、その場合、低域成分と高域成分をバッファの別のアドレスにマッピングする必要があり、そのためのコントローラが別途必要になる等、制御が煩雑になる恐れがある。
これに対して、本発明の例が示される図18の例においては、レベル1バッファ部212に、Yの高域成分(H)と低域成分(L)が交互に記憶されており、Yとは別のアドレスに、Cの高域成分(H)と低域成分(L)が交互に記憶されている。すなわち、水平分析フィルタ部211により、YおよびC毎に水平分析フィルタ処理結果である高域成分と低域成分がインターリーブされて、レベル1バッファ部212に記憶されるので、このレベル1バッファ部212に記憶されている周波数成分を読み出す際に、レベル1バッファ部212の先頭から順番に読み出すだけでよく、制御を単純(シンプル)にすることができる。
例えば、図18に示されるレベル1バッファ部212に、水平分析フィルタ処理結果の周波数成分が垂直分析フィルタ処理を実行することができるだけの所定の垂直ライン分(図18の場合、3ライン分)溜まると、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、セレクタ216がレベル1バッファ部212の出力を選択するように制御することで、必要な垂直ライン分の係数をレベル1バッファ部212から読み出す。
また、Y用垂直分析フィルタ部217は、途中計算用Yバッファ部223より、前回の垂直分析フィルタ処理により得られた係数を取得する。Y用垂直分析フィルタ部217は、それらの係数を用いてYの垂直分析フィルタ処理を行う。同様に、C用垂直分析フィルタ部218は、途中計算用Cバッファ部224より、前回の垂直分析フィルタ処理により得られた係数を取得し、その係数と、レベル1バッファ部212より取得した係数とを用いてCの垂直分析フィルタ処理を行う。これらのYの垂直分析フィルタ処理およびCの垂直分析フィルタ処理は互いに並行して実行される。
分割レベル1のYとCの垂直分析フィルタ処理の結果(すなわち、分割レベル1のYとCの分析フィルタ処理の結果)、図20に示されるように、YとCについて、それぞれ、低域サブバンド(1LL)および高域サブバンド(1HL,1LH,1HH)からなる4つのサブバンドの周波数成分が生成される。なお、図20の例における「L」および「H」の順序は、前側が水平分析フィルタ処理を行った結果の帯域(低域または高域)を示し、後側が垂直分析フィルタ処理を行った結果の帯域を示す。また、「L」および「H」の前の数字は分割レベルを表す。
以上が分割レベル1の分析フィルタ処理であり、その結果、Y用垂直分析フィルタ部217においては、Yの低域サブバンド(1LL)の係数と高域サブバンド(1HL,1LH,1HH)の係数が生成され(D119とD123)、C用垂直分析フィルタ部218においては、Cの低域サブバンド(1LL)の係数と高域サブバンドの係数(1HL,1LH,1HH)が生成される(D120とD124)。なお、これらの係数のうち、低域サブバンド(1LL)の係数だけはさらに分析フィルタ処理が行われる。このように分析フィルタ処理は、各分割レベルの低域サブバンドの係数について、設定されている分割レベル(最上位レベル)まで再帰的に繰り返される。これに対して、高域サブバンドの係数は、通常それ以上に分析されない。つまり、Y用垂直分析フィルタ部217は、今回生成された高域サブバンド(1HL,1LH,1HH)の周波数成分を、外部に出力する(D123)。同様に、C用垂直分析フィルタ部218も、今回生成された高域サブバンド(1HL,1LH,1HH)の周波数成分を、外部に出力する(D124)。
一方、Yの低域サブバンド(1LL)の周波数成分とCの低域サブバンド(1LL)の周波数成分は、インターリーブ部219に出力される(D119およびD120)。インターリーブ部219は、Yの低域サブバンド(1LL)の周波数成分とCの低域サブバンド(1LL)の周波数成分とをインターリーブし、インターリーブした周波数成分を水平分析フィルタ部220に入力する(D121)。
つまり、水平分析フィルタ部220に入力されるときの周波数成分においては、図21に示されるように、Yの低域サブバンド(1LL)の周波数成分とCの低域サブバンド(1LL)の周波数成分が交互にインターリーブ合成されている。なお、図21の例においては、図中下部に示されるYとCがインターリーブされた後の低域サブバンド(1LL)の大きさが、点線に示されるインターリーブ前のYまたはCのみの低域サブバンド(1LL)と同じサイズで示されているが、実際には、YまたはCのみの低域成分の2倍の大きさとなる。
水平分析フィルタ部220は、YとCとがインターリーブされた周波数成分に対して水平分析フィルタ処理(水平方向の低域分析フィルタ処理および高域分析フィルタ処理)を行い、水平分析フィルタ処理結果である低域成分と高域成分を生成する。
水平分析フィルタ部220は、水平分析フィルタ処理結果の周波数成分を、レベル別バッファ部222の、周波数成分の分割レベルに対応するレベルのバッファ(いまの場合、レベル2バッファ部213)に供給し(D122)、記憶、保持させる。
そして、レベル2バッファ部213に水平分析フィルタ処理結果の周波数成分が、垂直分析フィルタ処理を実行できるだけの所定の垂直ライン分溜まると、レベル2バッファ部213は、所定の垂直ライン分の周波数成分を読み出して、セレクタ216を介して、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218に供給する。Y用垂直分析フィルタ部217は、その所定の垂直ライン分のYの周波数成分に対して、分割レベル2のYの垂直分析フィルタ処理を行い、C用垂直分析フィルタ部218は、所定の垂直ライン分のCの周波数成分に対して、分割レベル2のCの垂直分析フィルタ処理を行う。
これらのレベル2のYとCの垂直分析フィルタ処理の結果、YとCについて、それぞれ、低域サブバンド(2LL)および高域サブバンド(2HL,2LH,2HH)からなる4つのサブバンドの周波数成分が生成される。このうち高域サブバンドの周波数成分は、それぞれ外部に出力される(D123およびD124)。
また、低域サブバンド(2LL)の周波数成分は、インターリーブ部219に供給される(D119およびD120)。インターリーブ部219は、この低域サブバンド(2LL)の周波数成分のYとCをインターリーブし、水平分析フィルタ部220に供給する(D121)。水平分析フィルタ部220は、そのインターリーブされた低域サブバンド(2LL)の周波数成分に対して水平分析フィルタ処理を行う。この処理結果は、レベル別バッファ部222のレベル3バッファ部214に供給されて保持される(D122)。これらの係数は、再度、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218において、垂直分析フィルタ処理される。
以上のように、各分割レベルの低域サブバンドの係数について垂直分析フィルタ処理および水平分析フィルタ処理が、最上位レベルに達するまで、再帰的に実行される。各分割レベルにおいて生成された高域サブバンドの係数は、順次、外部に出力される(D123およびD124)。
予め設定された分割レベルの最上位レベル(分割レベル4)に達すると、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、その最上位レベルの周波数成分(4LL,4HL,4LH,4HH)を、全て外部に出力する(D123およびD124)。これにより、分割レベル4の画像信号のウェーブレット変換は終了される。
以上のように、図16のウェーブレット変換装置200においては、レベル1から所定のレベル数までの分割レベル毎のバッファ部を備え、水平分析フィルタ処理を行いながら、水平分析フィルタ処理結果を、分割レベル毎のバッファ部に記憶させる。したがって、この水平分析フィルタ処理の結果を、分割レベル毎のバッファ部から読み出しながら、垂直方向のフィルタ処理を行うことができる。すなわち、水平方向と垂直方向のフィルタ処理を同時並行的に動作させることができる。
これにより、ウェーブレット変換装置200は、動画像や解像度が大きい画像に対しても、高速にウェーブレット変換を実行することができる。
また、図16のウェーブレット変換装置200は、レベル1から所定のレベル数までの分割レベル毎のバッファ部(レベル別バッファ部222)とともに、途中計算用Yバッファ部223および途中計算用Cバッファ部224を有しており、垂直方向の分析フィルタ処理の際に、次回の処理に必要な係数をその途中計算用Yバッファ部223および途中計算用Cバッファ部224に保持させ、次回の垂直分析フィルタ処理の際にその係数を読み出して利用するので、外部にメモリを構成する必要がなくなる。
これにより、外部メモリとのデータのやり取りが必要なくなり、高速にウェーブレット変換を行うことができるようになる。この結果、外部メモリとウェーブレット変換装置との間でデータの高速化のための手段として、クロック(周波数)を上げる必要もないので、省電力化することができる。
また、水平方向の分析フィルタ処理を、YとCがインターリーブされた周波数成分に対して行うようにしたので、1回の水平分析フィルタ処理を1つの水平分析フィルタ部で構成することができ、ハードウェアの規模縮小に大きく寄与することができる。この水平方向にインターリーブされたデータは、レジスタやメモリに容易に展開することができ、しかも、読み書きを高速に行うことができるので、ウェーブレット変換の高速化にも寄与することができる。
さらに、図18および図19を参照して上述したように、水平分析フィルタ処理結果である高域成分と低域成分を、YおよびC毎にそれぞれインターリーブして、対応するレベルのバッファ部にYおよびC毎に記憶するようにしたので、データの読み出しの際には、そのレベルのバッファ部の先頭から順番に読み出すだけでよく、制御を単純(シンプル)にすることができる。
また、垂直方向の分析フィルタ処理については、YとCで別々に行うようにしたので、図22に示される垂直方向の分析フィルタリングをYとCで別々に行わない場合に必要となってしまう大容量のメモリが不要になるため、コストの増大を抑制することができる。また、処理時間の増大も抑制することができる。
すなわち、図22を参照して、本発明との差を比較するために、垂直方向の分析フィルタリングをYとCで別々に行わない場合、すなわち、水平分析フィルタ部211および220のように、YとCをインターリーブさせてから、YとCの垂直フィルタ処理をずらしながら交互に行う場合を具体的に説明する。
図22の例においては、インターリーブされたYとCが展開されるラインバッファの例が示されている。例えば、画像がnラインで構成される場合、ラインバッファには、まず、1ライン目の輝度成分Y1が展開され、次に、1ライン目の色差成分C1が展開され、2ライン目の輝度成分Y2が展開され、次に、2ライン目の色差成分C2が展開され、3ライン目の輝度成分Y3が展開され、次に、3ライン目の色差成分C3が展開され、…、nライン目の輝度成分Ynが展開され、次に、nライン目の色差成分Cnが展開されて、インターリーブされたYとCがラインバッファに展開されていく。
すなわち、図16のY用垂直分析フィルタ部217とC用垂直分析フィルタ部218のように、YとCを別々に処理する場合には、YとCを別々に読み出してくればよいが、YとCを一緒に処理するためには、YとCをインターリーブして展開する必要があるため、C(またはY)用のラインバッファが余計に必要となってしまう。
また、例えば、垂直分析フィルタ処理は、それを実行できるだけのライン(例えば、3ライン)が溜まり次第行われるので、図22の例においては、実質的には、上から5ライン目の輝度成分Y3が溜まったところで、Yの垂直分析フィルタ処理が行われ、上から6ライン目の色差信成分C3が溜まったところで、Cの垂直分析フィルタ処理が行われるというように、交互にYとCの垂直分析フィルタ処理が行われる。
これに対して、図1のY用垂直分析フィルタ部217とC用垂直分析フィルタ部218の場合、YとCの垂直分析フィルタ処理が並行して行われるので、単位時間あたりの処理速度が、図22の例の場合より速い。
以上のように、YとCをインターリーブさせてから、YとCの垂直分析フィルタ処理を行う場合、垂直分析フィルタ部が1つで済むというメリットはあるが、本発明の場合と比較して、C用(またはY用)のラインバッファが余計に必要になる。このラインバッファを、内蔵メモリに構成する場合には、水平解像度が大きい画像(例えば、HDTV(High Definition TeleVision)では1920画素)では、非常に大容量のメモリが必要になり、コストが急増してしまう。また、図22の例の場合、垂直分析フィルタ部1つでCおよびYの処理を交互に行わなければならないため、Y用とC用の2つの垂直分析フィルタ部で並列して処理を行う本発明の場合と比較して処理時間がかかってしまう。
以上のことから、YとCをインターリーブさせてから、YとCの垂直分析フィルタリングを行う場合、メリットよりもデメリットが大きくなってしまう。これに対して、本発明のように、Y用およびC用の2つの垂直分析フィルタ部で処理を並列して行う場合には、それぞれ他方のラインバッファは必要ないので、コストの急増を抑制することができ、さらに、2つの垂直分析フィルタ部での処理を並列で行うことができるので、処理時間を短くすることができる。
なお、図16のウェーブレット変換装置200も、ウェーブレット変換装置100と同様に、分析フィルタ処理の演算を、図5乃至図8を参照して説明したリフティング技術を用いて行う。つまり、水平分析フィルタ部211および水平分析フィルタ部220は、図6に示されるように水平分析フィルタ処理を行い、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、図8に示されるように垂直分析フィルタ処理を行う。
また、図16を参照して説明した途中計算用Yバッファ部223および途中計算用Cバッファ部224は、ウェーブレット変換装置100の途中計算用バッファ部117と同様に、1ポートSRAMを用いながら、データの入出力を同時並行的に行うことができるようになされている。つまり、途中計算用Yバッファ部223および途中計算用Cバッファ部224は、それぞれ、図9に示される途中計算用バッファ部117と同様の構成を有し、同様の処理を実行する。従って、途中計算用Yバッファ部223は、Yについての係数のみを保持し、途中計算用Cバッファ部224は、Cについての係数のみを保持する点だけが、途中計算用バッファ部117と異なるものの、基本的に、図9や図15を参照して行った説明は、途中計算用Yバッファ部223および途中計算用Cバッファ部224に対しても適用することができる。
つまり、ウェーブレット変換装置200も、ウェーブレット変換装置100と同様に、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
図16のウェーブレット変換装置200により実行されるウェーブレット変換処理の流れの例を、図23のフローチャートを参照して説明する。なお、このウェーブレット変換処理は所定の処理単位毎に実行される。
ウェーブレット変換処理が開始されると、ウェーブレット変換装置200のインターリーブ部210は、ステップS201において、入力された画像データをインターリーブするか否かを判定し、入力画像データにおいてYとCがインターリーブされておらず、インターリーブすると判定した場合のみ、ステップS202において、画像データのYとCをインターリーブする。入力画像データにおいてYとCが既にインターリーブされている等して、インターリーブを行わないと判定した場合、インターリーブ部210は、ステップS202の処理を省略し、処理をステップS203に進める。
ステップS203において、水平分析フィルタ部211は、レベル1の水平分析フィルタ処理を行い、ステップS204において、水平分析フィルタ処理の結果として得られた係数を、レベル別バッファ部222の、その係数の分割レベルに対応するレベルのバッファ部に記憶させる。
ステップS205において、Y用垂直分析フィルタ部217は、Yに対して、図14のフローチャートを参照して説明したような垂直分析フィルタ処理を実行する。この処理と同時並行的に、ステップS206において、C用垂直分析フィルタ部218は、Cに対して、図14のフローチャートを参照して説明したような垂直分析フィルタ処理を実行する。
YおよびCに対して垂直分析フィルタ処理が終了すると、制御部221は、ステップS207において、最上位レベルまで垂直分析フィルタ処理を行ったか否かを判定する。最上位レベルの垂直分析フィルタ処理が終了していないと判定された場合、処理は、ステップS208に進む。ステップS208において、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、生成した高域サブバンドの係数を外部に出力する。ステップS209において、インターリーブ部219は、低域サブバンドのYとCをインターリーブする。ステップS210において、水平分析フィルタ部220は、インターリーブされた低域サブバンドの係数に対して水平分析フィルタ処理を行う。ステップS210の処理が終了すると、処理はステップS204に戻り、それ以降の処理が繰り返される。つまり、ステップS204乃至ステップS210の処理が繰り返されることにより、各分割レベルにおいて分析フィルタ処理が行われる。
そして、ステップS207において最上位レベルの分析フィルタ処理が終了したと判定された場合、処理は、ステップS211に進む。ステップS211において、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、最上位レベルの係数を全て外部に出力する。ステップS211の処理が終了すると、ウェーブレット変換処理は終了する。
このように、Y用垂直分析フィルタ部217およびC用垂直分析フィルタ部218は、図1の垂直分析フィルタ部118と同様に垂直分析フィルタ処理を実行することができる。つまり、途中計算用Yバッファ部223および途中計算用Cバッファ部224は、それぞれ、図15を参照して説明したようなバッファ入出力処理を行うことができる。
つまり、ウェーブレット変換装置200は、ウェーブレット変換装置100と同様に、ウェーブレット変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
上述したようなウェーブレット変換装置による分析フィルタ処理により、画像データの周波数成分はその帯域毎に複数に分割され、階層的なサブバンドを形成する。
図24は、分析フィルタ処理が4回繰り返された場合の例を概略的に示す図である。図24の例では、水平方向および垂直方向の分析フィルタ処理が再帰的に4回繰り替えされることにより、1ピクチャの画像データの周波数成分が、13個の階層的なサブバンドに分割されている。
図24において、実線の四角および点線の角丸四角のそれぞれは、分析フィルタ処理により生成されるサブバンドを示しており、各サブバンドに表記される数字は、そのサブバンドの階層のレベルを示す。つまり、ベースバンドの画像データに対して何回分析フィルタ処理することにより得られるサブバンドであるかを示している。また、各サブバンドに表記される「L」および「H」は、それぞれ低域成分および高域成分を表しており、左側が水平方向の分析フィルタ処理結果、右側が垂直方向の分析フィルタ処理結果を示している。
図1の例では、ベースバンドの画像データに対して1回目の分析フィルタ処理が行われて、分割レベル1の4つのサブバンド(1LL、1LH、1HL、および1HH)が生成され、そのサブバンドのうち、水平方向および垂直方向の両方に対して低域成分であるサブバンド「1LL」に対して2回目の分析フィルタ処理が行われ、分割レベル2の4つのサブバンド(2LL、2LH、2HL、および2HH)が生成され、その水平方向および垂直方向の両方に対して低域成分であるサブバンド「2LL」に対して3回目の分析フィルタ処理が行われ、分割レベル3の4つのサブバンド(3LL、3LH、3HL、および3HH)が生成され、その水平方向および垂直方向の両方に対して低域成分であるサブバンド「3LL」に対して、4回目の分析フィルタ処理が行われ、分割レベル4の4つのサブバンド(4LL、4LH、4HL、および4HH)が生成されている。
このように、低域成分に対して繰り返し変換および分割を行うのは、図25に示されるように、より上位(低域成分)のサブバンドほど、画像のエネルギが低域成分に集中しているためである。ウェーブレット変換によって、このように分析フィルタ処理を再帰的に処理を行い、階層的なサブバンドを生成し、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、エントロピ符号化を行う際に効率的な圧縮符号化を可能とする。
このようなウェーブレット変換処理をピクチャ全体に対してまとめて行う方法もあるが、1ピクチャの画像データを数ライン毎に分割し、それぞれについてウェーブレット変換処理を互いに独立して行う方法もある。前者の場合よりも後者の場合の方が、1回のウェーブレット変換処理で処理される画像データのデータ量が少ないので、ウェーブレット変換処理の処理結果の出力開始タイミングをより早くすることができる。つまり、ウェーブレット変換処理による遅延時間を短縮することができる。
なお、この場合のウェーブレット変換処理の処理単位となるライン数は、ウェーブレット変換処理の、予め定められた分割レベルにおいて、最上位レベルのサブバンドの係数データ1ラインを得るために必要なライン数に基づく。
分析フィルタ処理により、データは4分割されるので、図25に示されるようにライン数は半減する。つまり、図25の例のように、分割レベル3のウェーブレット変換処理の場合、最上位レベルのサブバンド(3LL、3LH、3HL、および3HH)の係数データを1ライン得るためには、8ラインのベースバンドの画像データが必要になる。従ってこの場合、ウェーブレット変換処理は、ベースバンドの画像データ8ライン以上を処理単位としてウェーブレット変換処理が行われる。図24の例のように分割レベルが4である場合、ベースバンドの画像データは、16ライン必要になる。
このように、最上位レベルの低域サブバンド「LL」の係数データを1ライン生成するために必要なベースバンドの画素データの集合をプレシンクト(Precinct)(またはラインブロック)と称する。なお、プレシンクトは、この最上位レベルの低域サブバンド「LL」の係数データを1ライン生成するために必要なベースバンドの画素データの集合と実質的に同一な、1プレシンクト分の画素データをウェーブレット変換して得られる、全サブバンドの係数データの集合のことを示す場合もある。
なお、1プレシンクトのライン数はピクチャ内において、各プレシンクトで互いに同一でなくてもよい。
このようなウェーブレット変換処理が施されて得られた係数データは、例えば、エントロピ符号化されて符号化データに変換される。この符号化データは、利用時に、エントロピ復号され、上述したウェーブレット変換処理に対応するウェーブレット逆変換処理により元のベースバンドの画像データが復元される。
つまり、図26に示されるように、ウェーブレット逆変換処理は、ウェーブレット変換処理の逆変換処理であり、ウェーブレット変換処理によってベースバンドの画像データが変換されたウェーブレット係数を、元のベースバンドの画像データに変換(逆変換)する処理である。従って、図26に示されるように、分割レベル4のウェーブレット変換処理が行われた場合、ウェーブレット逆変換処理も分割レベル4で行われる。また、図26に示されるように、例えば入力ベースバンド画像データ16ラインを1プレシンクトとして、ウェーブレット変換処理がそのプレシンクト毎に行われた場合、ウェーブレット逆変換処理も、そのプレシンクト毎に行われ、1プレシンクトの係数データよりベースバンド画像データ16ラインを復元する。
以下に、このウェーブレット逆変換処理において遅延時間をより低減させるとともにコストを低減させる方法について説明する。
図27は、本発明を適用したウェーブレット逆変換装置の構成例を示すブロック図である。図27に示されるように、ウェーブレット逆変換装置300は、分割レベル4でウェーブレット変換された係数データを入力し、それらを合成する合成フィルタ処理を行う帯域合成装置である。図27のウェーブレット逆変換装置300は、制御部301、セレクタ311、垂直合成フィルタ部312、途中計算用バッファ部313、水平合成フィルタ部314、セレクタ315、出力バッファ部316、セレクタ317、およびレベル別バッファ部320を有する。
制御部301は、セレクタ311乃至レベル別バッファ部320の各部の動作を制御する。セレクタ311は、制御部301に制御されて、垂直合成フィルタ部312の入力として、外部入力(D310)、またはレベル別バッファ部320内の各分割レベル用のバッファ部の出力(D319,D322、およびD325)のいずれかを選択する。垂直合成フィルタ部312は、制御部301に制御されて、セレクタ311により選択されたバッファ部または外部入力より、処理対象の分割レベルの4つのサブバンドの係数データを実質的に1ラインずつ取得する(D311)。
垂直合成フィルタ部312は、制御部301に制御されて、途中計算用バッファ部313より読み出した途中計算用の係数を利用して、取得した係数データに対して、ベースバンドの画像データの画像垂直方向の周波数成分について合成フィルタ処理を行う。
垂直合成フィルタ部312は、合成フィルタ処理として行う合成フィルタ演算により生成される係数を途中計算用バッファ部313に書き込む(D312)と同時に、次の合成フィルタ演算で必要な係数を途中計算用バッファ部313より読み出し(D313)ながら、合成フィルタ演算を繰り返すことにより合成フィルタ処理を行う。
途中計算用バッファ部313は、垂直合成フィルタ部312より供給される係数を内蔵するメモリに保持し、また、垂直合成フィルタ部312より要求された、内蔵するメモリに保持している係数を読み出して供給する。この途中計算用バッファ部313は、ウェーブレット変換装置100の途中計算用バッファ部117と同様の構成を有し、同様に動作する。従って、図9のブロック図を参照して行った途中計算用バッファ部117の構成や図15のフローチャートを参照して行ったバッファ入出力処理の説明は、途中計算用バッファ部313にも適用することができる。
つまり、途中計算用バッファ部313もデータ連結部131、1ポートSRAM132、およびデータ分割部133を有しており、データ連結部131が、供給される16ビットデータを連結して32ビットデータとして1ポートSRAM132に書き込み、データ分割部133が、1ポートSRAM132に記憶されている32ビットデータを読み出して、16ビットデータに分割し、出力する。このとき、途中計算用バッファ部313は、1ポートSRAM132への書き込みと読み出しを交互に繰り返すことにより、データ読み出しと書き込みを同時並行的に実行する。これにより、途中計算用バッファ部313へのアクセスによる遅延時間を低減させることができる。
垂直合成フィルタ部312は、合成フィルタ処理を行う度に、生成された係数を途中計算用バッファ部313に保持させ、さらに、次の演算に必要な係数を途中計算用バッファ部313より読み出す。つまり、合成フィルタ処理においては、途中計算用バッファ部313へのアクセスは、高頻度で行われるが、上述したように、途中計算用バッファ部313へのアクセスによる遅延時間を低減させることにより、ウェーブレット逆変換装置300は、合成フィルタ処理の遅延時間を低減させることができる。
このような垂直方向の合成フィルタ処理により、垂直方向の低域成分と高域成分が合成され、水平方向の低域成分と高域成分が2ラインずつ生成される。入力された係数データに対する合成フィルタ処理が終了すると、垂直合成フィルタ部312は、途中計算用バッファ部313に保持されている水平方向の低域成分と高域成分を、合成フィルタ処理結果として、所定の順序で、例えばライン毎に画面左から右に向かう順に1つずつ交互に、読み出して水平合成フィルタ部314に供給する(D314)。
水平合成フィルタ部314は、制御部301に制御され、垂直合成フィルタ部312より供給される係数データに対して、ベースバンドの画像データの画像水平方向の周波数成分について合成フィルタ処理を行う。
この水平方向の合成フィルタ処理により、1つ下位レベルの垂直方向および水平方向に低域成分のサブバンドである低域サブバンドの係数データ(またはベースバンドの画像データ)が2ライン生成される。水平合成フィルタ部314は、その低域サブバンドの係数データ(またはベースバンドの画像データ)2ラインをセレクタ315に出力する(D315)。
以上のように、垂直合成フィルタ部312および水平合成フィルタ部314は、1回の垂直方向および水平方向の合成フィルタ処理により、実質的に、処理対象の分割レベルの各サブバンドの、互いに同じ位置の係数データ1ラインを合成し、1つ下位レベルの低域サブバンドの係数データ、またはベースバンドの画像データを2ライン生成する。
つまり、図28に示されるように、1プレシンクトがNラインの画像データより構成されるとすると、垂直合成フィルタ部312および水平合成フィルタ部314は、例えば、分割レベル2の4つのサブバンドの係数データを実質的にN/4ライン合成し、分割レベル1の低域サブバンドの係数データをN/2ライン生成する。
垂直合成フィルタ部312および水平合成フィルタ部314は、処理対象の分割レベルを適宜変更しながらこのような合成フィルタ処理を繰り返すことにより、プレシンクト単位でウェーブレット変換された係数データを全てベースバンドの画像データに変換する。そして、垂直合成フィルタ部312および水平合成フィルタ部314は、全プレシンクトおよび全ピクチャについて合成処理を同様に繰り返す。このようにプレシンクト単位で合成フィルタ処理を行うことにより、画像全体を対象として合成フィルタ処理を行う場合よりも、一度に処理するデータのデータ量が低減されるので、ウェーブレット逆変換装置300は、ウェーブレット逆変換による遅延時間を低減させることができる。また、上述したようにライン単位で合成フィルタ処理を行うことにより、より詳細に制御可能になるので、ウェーブレット逆変換装置300は、ウェーブレット逆変換処理をより最適化し、より遅延時間を低減させることができる。
図27に戻り、セレクタ315は、制御部301に制御されて、水平合成フィルタ部314のデータ出力先を選択し、合成フィルタ処理により生成される係数データのうち、一部の係数データをレベル別バッファ部320に供給して保持させ、他の一部の係数データを出力バッファ部316に供給して保持させる。例えば、セレクタ315は、水平合成フィルタ部314より供給される低域サブバンドの係数データ2ラインのうち、一方の1ラインを出力バッファ部316に供給して保持させ(D316)、他方の1ラインをレベル別バッファ部320に供給し、レベル別バッファ部320の、その係数データの分割レベル用のバッファ部に保持させる(D317,D320、およびD323)。
なお、水平合成フィルタ部314より供給されるデータがベースバンドの画像データである場合、セレクタ315は、その画像データ2ラインを出力バッファ部316に供給し(D316)、一方の1ラインを保持させ、他方の1ラインを外部に出力させる。
出力バッファ部316は、制御部301に制御されて、セレクタ315より供給される係数データや画像データを、必要に応じて保持し、保持しているデータを必要に応じて読み出してセレクタ317に出力する。例えば、セレクタ315よりサブバンドの係数データが1ライン供給された場合、出力バッファ部316は、その係数データを保持する。また、例えば、合成フィルタ処理により最終的に生成されたベースバンドの画像データ2ラインがセレクタ315より供給された場合、出力バッファ部316は、その一方の1ラインを外部に出力する(D326)とともに、他方の1ラインを、次の出力タイミングまで保持する。このベースバンドの画像データを保持するとき、出力バッファ部316は、内蔵するメモリに保持している係数データを読み出してセレクタ317に出力しながら(D326)、ベースバンドの画像データを内蔵するメモリに書き込む。
セレクタ317は、制御部301に制御されて、出力バッファ部316のデータ出力先を制御する。例えば、出力バッファ部316より係数データが供給された場合、セレクタ317は、その係数データを、レベル別バッファ部320に供給し(D328,D329、およびD330)、レベル別バッファ部320の、その係数データの分割レベル用のバッファ部に保持させる。また、例えば、出力バッファ部316よりベースバンドの画像データが供給された場合、セレクタ317は、そのベースバンドの画像データを外部に出力する(D327)。
レベル別バッファ部320は、制御部301に制御されて、セレクタ315やセレクタ317より供給される係数データや外部より供給された、再度合成フィルタ処理可能な係数データを、再度合成フィルタ処理が行われるまで、その係数データの分割レベル用のバッファ部に保持する。レベル別バッファ部320は、必要に応じて、保持している係数データをセレクタ311に供給する。
レベル別バッファ部320は、レベル3バッファ部321、レベル2バッファ部322、およびレベル1バッファ部323を有する。
レベル3バッファ部321は、制御部301に制御されて、分割レベル3の係数データのセレクタ311(セレクタ311を介して垂直合成フィルタ部312)への供給を制御する。例えば、レベル3バッファ部321は、セレクタ315やセレクタ317より供給された(D317およびD328)分割レベル3の低域サブバンドの係数データ(3LL)や、外部より供給された(D318)分割レベル3の高域サブバンド(3LH、3HL、および3HH)の係数データを内蔵するメモリに保持する。そして、レベル3バッファ部321は、所定のタイミングで、内蔵するメモリに保持している分割レベル3の各サブバンドの係数データを多重化し、セレクタ311を介して垂直合成フィルタ部312に供給する(D319)。
レベル2バッファ部322は、制御部301に制御されて、分割レベル2の係数データのセレクタ311(セレクタ311を介して垂直合成フィルタ部312)への供給を制御する。例えば、レベル2バッファ部322は、セレクタ315やセレクタ317より供給された(D320およびD329)分割レベル2の低域サブバンドの係数データ(2LL)や、外部より供給された(D321)分割レベル2の高域サブバンド(2LH、2HL、および2HH)の係数データを内蔵するメモリに保持する。そして、レベル2バッファ部322は、所定のタイミングで、内蔵するメモリに保持している分割レベル2の各サブバンドの係数データを多重化し、セレクタ311を介して垂直合成フィルタ部312に供給する(D322)。
レベル1バッファ部323は、制御部301に制御されて、分割レベル1の係数データのセレクタ311(セレクタ311を介して垂直合成フィルタ部312)への供給を制御する。例えば、レベル1バッファ部323は、セレクタ315やセレクタ317より供給された(D323およびD330)分割レベル1の低域サブバンドの係数データ(1LL)や、外部より供給された(D324)分割レベル1の高域サブバンド(1LH、1HL、および1HH)の係数データを内蔵するメモリに保持する。そして、レベル1バッファ部323は、所定のタイミングで、内蔵するメモリに保持している分割レベル1の各サブバンドの係数データを多重化し、セレクタ311を介して垂直合成フィルタ部312に供給する(D325)。
なお、図27に示されるレベル別バッファ部320の構成は、ウェーブレット逆変換装置300において分割レベル4のウェーブレット逆変換処理が行われる場合の例である。レベル別バッファ部320の構成は、最上位レベル以外の分割レベルの係数データを互いに独立して保持するように、ウェーブレット逆変換装置300が行うウェーブレット逆変換処理の分割レベルに応じて設定される。つまり、レベル別バッファ部320は、最上位レベル以外の分割レベルのそれぞれについて、レベル3バッファ部321乃至レベル1バッファ部323のような専用のバッファ部を有する。
次に、垂直合成フィルタ部312および水平合成フィルタ部314により実行される合成フィルタ処理の演算方法について説明する。図5を参照して上述した分析フィルタ処理の場合と同様に、効率的にフィルタ処理を実行することができることから、ウェーブレット逆変換の合成フィルタ処理においても、同様にリフティング技術を用いることが好ましい。
図29は、JPEG2000規格でも採用されている9×7合成フィルタのリフティング構成を示している。通常の畳み込み演算と異なり、リフティング手段による方法では、以下のステップB1乃至ステップB4までの4個のステップを経て、偶数成分と奇数成分を算出する。
図29の例において、1段目(最上段)は、ウェーブレット変換により生成された係数であり、丸印(●)が高域成分の係数を示し、四角印(■)が低域成分の係数を示す。2,3段目は、それぞれステップB1およびステップB2の処理で生成される成分(係数)を示す。また、4段目は、ステップB3の処理で生成される偶数成分出力を示し、5段目は、ステップB4の処理で生成される奇数成分出力を示している。
9×7合成フィルタリングにおいては、ステップB3の処理で偶数成分が得られ、ステップB4の処理で奇数成分が得られる。なお、ステップB1乃至ステップB4の処理は、次の式(5)乃至式(8)で表される。
stepB1:si 1=si 2−δ(di-1 2+di 2) ・・・(5)
stepB2:di 1=di 2−γ(si 1+si+1 1) ・・・(6)
stepB3:si 0=si 1−β(di-1 1+di 1) ・・・(7)
stepB4:di 0=di 1−α(si 0+si+1 0) ・・・(8)
ただし、
α=−1.586134342
β=−0.05298011857
γ=0.8829110755
δ=0.4435068520
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップB1およびステップB2の処理が行われ、ステップB3で、偶数成分の係数が生成された後に、ステップB4で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式(5)乃至式(8)に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
垂直合成フィルタ部312により実行される垂直合成フィルタ処理の処理について具体的に説明する。図30は、垂直方向の係数データ群に対しての垂直合成フィルタ処理を、図29のリフティング構成により実行する場合の例を示している。
図30の例においては、垂直方向の係数データに対して、図29で上述した4つのステップ(ステップB1乃至ステップB4)の処理を経て、偶数番目の係数データ(以下、偶数係数とも称する)と奇数番目の係数データ(以下、奇数係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
また、垂直方向の係数データの左側に示される数字は、ライン番号を示しており、左から1列目のハッチが付された丸および四角は、それぞれ、画面垂直方向の高域成分の入力である高域入力、および、画面垂直方向の低域成分の入力である低域入力を表している。さらに、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である、ライン番号が奇数のラインの係数データである奇数係数、およびライン番号が偶数のラインの係数データである偶数係数を表している。
以下、動作について左から順に説明する。図30の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
この垂直リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、ライン番号0乃至5の6ラインの係数が必要である。
その後、2番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号6および7の2ラインの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるライン番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の偶数係数および奇数係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
したがって、2番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号5乃至7の3ラインの係数の入力が必要である。ただし、ここでライン番号5の係数は再入力される係数なので、実質的に2ライン(ライン番号6および7)の係数の追加入力となる。この垂直方向の3ラインの係数データ(実質的に2ラインの係数データ)は、図27のレベル別バッファ部320の対応するレベルのバッファ部から、レベル毎に読み出される。すなわち、現在のウェーブレット変換の分割レベルが2であれば、レベル2バッファ部322から係数データが読み出される。
さらに、2番目の偶数係数と奇数係数を求めるためには、1番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される3つの係数が必要になる。これらの係数は、2番目の偶数係数と奇数係数が求められた後に途中計算用バッファ部313に保持されるので、その途中計算用バッファ部313より読み出される。
つまり、1番目の垂直リフティング演算で途中計算用バッファ部313に記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファ部から読み出され入力されるライン番号5乃至7の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。これらの係数は、1番目の垂直リフティング演算の場合と同様に、途中計算用バッファ部313に記憶される。このとき、これらの係数の書き込みと同時に、次の垂直リフティング演算に利用する係数を途中計算用バッファ部313より読み出す。図30の左側の例の場合、途中計算用バッファ部313に記憶された係数のうち、一点鎖線で示される3つの係数が3番目の偶数係数と奇数係数を求めるために必要な係数であるので、途中計算用バッファ部313より読み出される。
ライン番号7の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号7乃至9の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図30の右側に示されている。
2番目の場合と同様に、3番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号8および9の2ラインの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるライン番号7の係数も必要である。
なお、右側の太線実線で示される3つの係数は、左側の太線点線で示されるように、2番目の垂直リフティング演算で途中計算用バッファ部313に記憶されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号7乃至9の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。これらの係数は、途中計算用バッファ部313に記憶される。このとき、これらの係数の書き込みと同時に、次の垂直リフティング演算に利用する係数を途中計算用バッファ部313より読み出す。図30の右側の例の場合、途中計算用バッファ部313に記憶された係数のうち、一点鎖線で示される3つの係数が3番目の偶数係数と奇数係数を求めるために必要な係数であるので、途中計算用バッファ部313より読み出される。
以上のようにして、入力された係数データと、途中計算用バッファ部313に保持されている係数を利用して垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタ処理が完了される。
次に、水平合成フィルタ部314により実行される水平合成フィルタ処理について具体的に説明する。図31は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図29のリフティング構成により実行する様子の例を示している。
図31の例においては、水平方向の係数に対して、図29を参照して上述した4つのステップ(ステップB1乃至ステップB4)の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
また、水平方向の係数の上に示される数字は、列(コラム)番号を示しており、上から1段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について上から順に説明する。図31の上段には、水平方向にコラム番号5乃至7の3コラムの係数が入力されて水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
この水平リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、コラム番号0乃至5の6コラムの係数が必要である。
その後、2番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号6および7の2コラムの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるコラム番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の奇数係数および偶数係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号5乃至7の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、ラッチしておく必要がある。実際には、高々3つの係数であるので、水平合成フィルタ部314に、ラッチとしてよく用いられるフリップフロップを内蔵することで対応できる。
したがって、1番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号5乃至7の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
コラム番号7の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号7乃至9の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図31の下段に示されている。
2番目の場合と同様に、3番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号8および9の2コラムの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるコラム番号7の係数も必要である。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、新たに入力されるコラム番号7乃至9の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、4番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中計算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
以上においては、途中計算用バッファ部313が、図9に示されるような構成を有し、データの書き込みと読み出しを同時並行的に行うことができるように説明したが、出力バッファ部316も同様に、1ポートSRAMを利用してデータの書き込みと読み出しを同時並行的に行うことができるようになされている。
これにより、制御部301は、水平合成フィルタ部314より出力されたベースバンドの画像データを出力バッファ部316に記憶させると同時に、出力バッファ部316に保持されている係数データをレベル別バッファ部320に供給させることができる。
図32は、図5の出力バッファ部316の内部の構成例を示すブロック図である。図32に示されるように、出力バッファ部316は、制御部371、セレクタ372、データ連結部373、1ポートSRAM374、およびデータ分割部375を有する。
制御部371は、セレクタ372乃至データ分割部375の各部の動作を制御する。セレクタ372は、制御部371に制御されて、水平合成フィルタ部314(図27)より供給されるデータの供給先を決定する。例えば、セレクタ372は、水平合成フィルタ部314より供給されるサブバンドの係数データ(D351)をデータ連結部373に供給する(D353)。また、セレクタ372は、水平合成フィルタ部314より供給されるベースバンドの画像データの2ラインのうち、一方をセレクタ317(図27)に供給し(D352)、他方をデータ連結部373に供給する(D353)。
データ連結部373は、図9のデータ連結部131に対応し、データ連結部131と同様の構成を有し、同様に動作する。1ポートSRAM374は、1ポートSRAM132と同様の構成を有し、同様に動作する。データ分割部375は、データ分割部133に対応し、データ分割部133と同様の構成を有し、同様に動作する。
つまり、データ連結部373は、セレクタ141と同様のセレクタ381、遅延部142と同様の遅延部382、並びに、パッキング部143と同様のパッキング部383を有し、図33に示されるように、2サイクルに渡ってセレクタ372より供給される2つの16ビットデータを連結して32ビットデータを生成し、それを1サイクルで、1ポートSRAM374に供給して記憶させる。
また、データ分割部375は、16ビット分離部144と同様の16ビット分離部384、遅延部145と同様の遅延部385、並びに、セレクタ146と同様のセレクタ386を有し、図33に示されるように、1ポートSRAM374より32ビットデータを1サイクルで読み出し、その32ビットデータを分離して2つの16ビットデータを生成し、それを2サイクルかけて外部に出力させる。このように、出力バッファ部316の1ポートSRAM374に対するデータの読み出しと書き込みは、図33に示されるように、1サイクル毎に交互に繰り返され、32ビットデータが読み書きされる。従って、読み出しと書き込みが同時並行的に行われる。
つまり、図32の点線で囲まれる部分は、図9に示されるウェーブレット変換装置100の途中計算用バッファ部117の構成と同様である。つまり、図32の点線で囲まれる部分は、図27に示されるウェーブレット逆変換装置300の途中計算用バッファ部313の構成とも同じである。
このような構成により、出力バッファ部316は、ベースバンドの画像データを1ポートSRAM374に記憶させると同時並行的に、1ポートSRAM374に記憶されている係数データを読み出してレベル別バッファ部320に供給することができる。これにより、出力バッファ部316は、データの読み出しおよび書き込みによる遅延時間をより低減させるとともにコストを低減させることができる。つまり、ウェーブレット逆変換装置300は、ウェーブレット逆変換処理の遅延時間をより低減させるとともにコストを低減させることができる。
次に、各処理の流れについて説明する。図34のフローチャートを参照して、図27のウェーブレット逆変換装置300によるウェーブレット逆変換処理の流れの例を説明する。ウェーブレット逆変換処理が開始されると、制御部301は、ステップS301において処理対象プレシンクトを初期化する。ステップS302において、制御部301は、所定のタイミングであるか否かを判定し、所定のタイミングであると判定するまで待機する。ステップS302において所定のタイミングであると判定された場合、処理はステップS303に進む。ステップS303において、垂直合成フィルタ部312および水平合成フィルタ部314は、1つ下位の分割レベルの係数データ1ライン、または、ベースバンドの画像データ1ラインを生成する、ライン単位ウェーブレット逆変換処理を実行する。このライン単位ウェーブレット逆変換処理の詳細については後述する。
ライン単位ウェーブレット逆変換処理が終了すると処理はステップS304に進む。ステップS304において、制御部301は、プレシンクト内の全ての係数データを処理したか否かを判定する。処理していないと判定された場合、処理はステップS302に戻り、それ以降の処理が繰り返される。また、ステップS304において、プレシンクト内の全ての係数データを処理したと判定された場合、処理はステップS305に進む。
ステップS305において、制御部301は、ピクチャ内の全てのプレシンクトを処理したか否かを判定する。未処理のプレシンクトが存在すると判定された場合、処理はステップS306に進む。ステップS306において、制御部301は、処理対象プレシンクトを更新し、次のプレシンクトを処理対象とする。ステップS306の処理が終了されると、処理はステップS302に戻りそれ以降の処理が繰り返される。
また、ステップS305において、ピクチャ内の全てのプレシンクトを処理したと判定された場合、ウェーブレット逆変換処理は終了される。なお、このウェーブレット逆変換処理はピクチャ毎に実行される。
次に、図34のステップS303において実行されるライン単位ウェーブレット逆変換処理の流れの例を図35および図36のフローチャートを参照して説明する。
ライン単位ウェーブレット逆変換処理が開始されると、制御部301は、ステップS321において、出力バッファ部316にベースバンドの画像データが存在するか否かを判定する。後述するように、ライン単位ウェーブレット逆変換処理が1回行われる毎にベースバンド画像データが2ライン生成される。生成されたベースバンド画像データは1ラインずつ出力するので、残りの1ラインは出力バッファ部316に蓄積され、次の所定のタイミング(図34のステップS302において判定されるタイミング)において、つまり、次にライン単位ウェーブレット逆変換処理が実行される際に出力される。
つまり、ステップS321の処理は、前回のライン単位ウェーブレット逆変換処理においてベースバンドの画像データが生成され、出力バッファ部316に蓄積されているか否かを判定する。
出力バッファ部316にベースバンドの画像データが蓄積されていないと判定された場合、処理は、ステップS322に進む。
ステップS322において、制御部301は、レベル別バッファ部320に係数データが存在するか否かを判定する。ウェーブレット逆変換処理においては、繰り返し実行される合成フィルタ処理のそれぞれにおいて、4つのサブバンドの係数が1ラインずつ合成されて1つ下位のレベルの低域サブバンドの係数が2ライン生成され、そのうち一方は出力バッファ部316を介してレベル別バッファ部320に保持される。詳細については後述するが、ライン単位ウェーブレット逆変換処理においては、ベースバンドの画像データを2ラインずつピクチャの上から順に生成するので、レベル別バッファ部320に係数が存在する場合、その係数から処理することになる。
ステップS322において、レベル別バッファ部320に係数が存在しないと判定された場合、処理はステップS323に進む。ステップS323において、制御部301は、処理対象分割レベルを最上位レベルに設定する。ステップS323の処理が終了すると、処理は図36のステップS331に進む。
また、図35のステップS322において、レベル別バッファ部320に係数が存在すると判定された場合、処理はステップS324に進む。ステップS324において、制御部301は、処理対象分割レベルを、係数データが存在する分割レベルのうち、最も下位のレベルに設定する。ステップS324の処理が終了すると、処理は図36のステップS331に進む。
図36のステップS331において、制御部301は、処理対象分割レベルが最上位レベルであるか否かを判定する。最上位レベルであると判定された場合、処理はステップS332に進む。ステップS332において、垂直合成フィルタ部312は、セレクタ311を介して、処理対象プレシンクトの最上位レベルの全サブバンドの係数データを外部より取得する。係数データが取得されると処理はステップS335に進む。また、ステップS331において、処理対象分割レベルが最上位レベルでないと判定された場合、処理はステップS333に進む。ステップS333において、垂直合成フィルタ部312は、処理対象レベルの低域サブバンドの係数データを、セレクタ311を介して、レベル別バッファ部320の、処理対象分割レベルのバッファ部より取得する。また、垂直合成フィルタ部312は、ステップS334において、処理対象分割レベルの高域サブバンドの係数データを、セレクタ311を介して外部より取得する。ステップS334の処理が終了すると、処理はステップS335に進む。
ステップS335において、垂直合成フィルタ部312は、垂直合成フィルタ処理(垂直合成フィルタリング)を実行する。垂直合成フィルタ処理の詳細については後述する。垂直合成フィルタ処理が終了すると、水平合成フィルタ部314は、ステップS336において、水平合成フィルタ処理(水平合成フィルタリング)を実行する。
ステップS337において、制御部301は、ステップS336の水平フィルタ処理により、ベースバンドの画像データが生成されたか否かを判定する。生成されたのは途中レベルの係数データであると判定された場合、処理はステップS338に進む。ステップS338において、水平合成フィルタ部314は、セレクタ315を介して、生成した1つ下位のレベルの低域サブバンドの係数データ2ラインのうち、後の1ラインを出力バッファ部316に保存する。
ステップS339において、水平合成フィルタ部314は、生成した1つ下位のレベルの低域サブバンドの係数データ2ラインのうち、先の1ラインをレベル別バッファ部320の1つ下位のレベルのバッファ部に保存する。ステップS340において、制御部301は、処理対象分割レベルを1つ下位の分割レベルに変更する。ステップS340の処理が終了すると処理はステップS331に戻りそれ以降の処理が繰り返される。
つまり、ウェーブレット逆変換装置300は、ベースバンドの画像データ2ラインを生成するまで、ステップS331乃至ステップS340の処理を繰り返し、処理対象分割レベルを1つずつ下位のレベルに遷移させながら各レベルにおいて合成フィルタ処理を行う。
そして、分割レベル1において合成フィルタ処理が行われ、ステップS337において、ベースバンドの画像データが生成されたと判定された場合、処理はステップS341に進む。ステップS341において、出力バッファ部316は、水平合成フィルタ部314において生成された画像データ2ラインを取得し、図15のフローチャートを参照して説明したバッファ入出力処理と同様の処理を実行し、後の1ラインを内蔵する1ポートSRAM374に書き込むと同時に、1ポートSRAM374に記憶されている係数データを読み出す。
出力バッファ部316は、ステップS342において、読み出した係数データを、セレクタ317を介して、レベル別バッファ部320の、それぞれに対応する分割レベルのバッファ部に書き込む。ステップS343において、出力バッファ部316は、水平合成フィルタ部314において生成された画像データ2ラインのうち、先の1ラインを、セレクタ317を介して外部に出力する。ステップS343の処理が終了すると、ライン単位ウェーブレット逆変換処理は終了され、図34のステップS303に処理が戻され、ステップS304以降の処理が実行される。
また、図35のステップS321において、出力バッファ部316にベースバンドの画像データが1ライン存在すると判定された場合、処理は、ステップS325に進む。出力バッファ部316は、ステップS325において、内蔵する1ポートSRAM374よりそのベースバンドの画像データ1ラインを読み出し、セレクタ317を介して外部に出力する。画像データが出力されると、ライン単位ウェーブレット逆変換処理は終了され、図34のステップS303に処理が戻され、ステップS304以降の処理が実行される。
このように、合成フィルタ処理により2ラインずつ生成されるので、1ラインは出力バッファ部316に蓄積するようにし、出力バッファ部316にベースバンドの画像データが存在する場合は、その画像データを出力し、存在しない場合は、合成フィルタリング処理を行うことにより画像データを生成するようにしている。このようにすることにより、ウェーブレット逆変換装置300は、ライン単位ウェーブレット逆変換処理を実行する度に、ベースバンドの画像データを所定のタイミングで1ラインずつ出力させることができる。
次に、図36のステップS335において実行される垂直合成フィルタ処理の詳細な流れの例を、図37のフローチャートを参照して説明する。
垂直フィルタ処理を開始すると、垂直合成フィルタ部312は、ステップS361において、図29および図30を参照して説明したような垂直方向の合成リフティング演算(垂直合成リフティング演算)を行い、ステップS362において、図15のフローチャートを参照して説明したようにバッファ入出力処理を行い、途中計算用バッファ部313に対して、ステップS361の垂直合成リフティング演算により算出された係数を書き込むとともに、次の演算に必要な係数を読み出す。
バッファ入出力処理が終了すると、垂直合成フィルタ部312は、ステップS363において、垂直合成フィルタ処理を終了するか否かを判定する。今回取得した全係数データについて垂直リフティング演算が終了しておらず、まだ未処理の係数が存在すると判定された場合、処理は、ステップS361に戻り、それ以降の処理が繰り返される。つまり、ステップS361およびステップS362の処理が繰り返し実行されることにより、取得した全ての係数に対して垂直リフティング演算が行われる。そして、ステップS363において、処理を終了すると判定された場合、つまり、今回取得された全ての係数に対して垂直リフティング演算が行われたと判定した場合、垂直合成フィルタ処理が終了される。
以上のような、ライン単位ウェーブレット逆変換処理の流れの具体的な例を図38に模式的に示す。図38においては、各分割レベルにおける処理と各バッファの入出力について、係数データの遷移の様子が示されている。なおここでは、係数データの分割レベルは4とする。つまり、最上位レベルは4である。
図38の左上に示されるように、ライン単位ウェーブレット逆変換処理が開始されたとき処理対象分割レベルは最上位レベルに設定されるので、最初に分割レベル4のサブバンドHHの係数1ラインとサブバンドLHの係数1ラインよりなるデータ4HH/LH、および、サブバンドHLの係数1ラインとサブバンドLLの係数1ラインよりなるデータ4HL/LLが外部、例えば、ウェーブレット逆変換装置300の前段の処理部や記憶部等(いずれも図示せず)より垂直合成フィルタ部312に供給される(データ401およびデータ402)。つまり、垂直合成フィルタ部312には、分割レベル4の各サブバンドの係数が1ラインずつ入力される。
垂直合成フィルタ部312および水平合成フィルタ部314は、これらの係数に対して合成フィルタ処理を行い、1つ下位の分割レベルの低域サブバンドの係数1ラインであるデータ3LL−1(データ403)およびデータ3LL−2(データ404)を生成する。つまり、垂直合成フィルタ部312および水平合成フィルタ部314は、合成フィルタ処理により、1つ下位の分割レベル(分割レベル3)の低域サブバンドの係数を2ライン生成する。
それらの内、一方のデータ3LL−1(データ303)は、セレクタ315を介してレベル別バッファ部320のレベル3バッファ部321に供給されて記憶される(データ405)。他方のデータ3LL−2(データ404)は、出力バッファ部316に書き込まれて保持される(データ406)。
ここで処理対象レベルが1つ下位のレベル3に設定される。垂直合成フィルタ部312は、外部より分割レベル3の高域サブバンドの係数を1ラインずつ取得するとともに、レベル3バッファ部114に保持されているデータ3LL−1を読み出して(データ408)取得する。つまり、垂直合成フィルタ部112には、データ3HH/LH(データ407)およびデータ3HL/LL(データ409)のように、分割レベル3の各サブバンドの係数が1ラインずつ入力される。データ3HH/LHは、分割レベル3のサブバンドHHの係数1ラインとサブバンドLHの係数1ラインを示しており、データ3HL/LLは、分割レベル3のサブバンドHLの係数1ラインとサブバンドLLの係数1ラインを示している。
垂直合成フィルタ部312および水平合成フィルタ部314は、これらの係数に対して合成フィルタ処理を行い、1つ下位の分割レベルの低域サブバンドの係数1ラインであるデータ2LL−1(データ410)およびデータ2LL−2(データ411)を生成する。つまり、垂直合成フィルタ部312および水平合成フィルタ部314は、合成フィルタ処理により、1つ下位の分割レベル(分割レベル2)の低域サブバンドの係数を2ライン生成する。
それらの内、一方のデータ2LL−1(データ410)は、セレクタ315を介してレベル別バッファ部320のレベル2バッファ部322に供給されて記憶される(データ412)。他方のデータ2LL−2(データ411)は、出力バッファ部316に書き込まれて保持される(データ413)。
ここでまた処理対象レベルが1つ下位のレベル2に設定される。垂直合成フィルタ部312は、外部より分割レベル2の高域サブバンドの係数を1ラインずつ取得するとともに、レベル2バッファ部322に保持されているデータ2LL−1を読み出して(データ422)取得する。つまり、垂直合成フィルタ部312には、データ2HH/LH(データ421)およびデータ2HL/LL(データ423)のように、分割レベル2の各サブバンドの係数が1ラインずつ入力される。データ2HH/LHは、分割レベル2のサブバンドHHの係数1ラインとサブバンドLHの係数1ラインを示しており、データ2HL/LLは、分割レベル2のサブバンドHLの係数1ラインとサブバンドLLの係数1ラインを示している。
垂直合成フィルタ部312および水平合成フィルタ部314は、これらの係数に対して合成フィルタ処理を行い、1つ下位の分割レベルの低域サブバンドの係数1ラインであるデータ1LL−1(データ424)およびデータ1LL−2(データ425)を生成する。つまり、垂直合成フィルタ部312および水平合成フィルタ部314は、合成フィルタ処理により、1つ下位の分割レベル(分割レベル1)の低域サブバンドの係数を2ライン生成する。
それらの内、一方のデータ1LL−1(データ424)は、セレクタ315を介してレベル別バッファ部320のレベル1バッファ部323に供給されて記憶される(データ426)。他方のデータ1LL−2(データ425)は、出力バッファ部316に書き込まれて保持される(データ427)。
ここでまた処理対象レベルが1つ下位のレベル1に設定される。垂直合成フィルタ部312は、外部より分割レベル1の高域サブバンドの係数を1ラインずつ取得するとともに、レベル1バッファ部323に保持されているデータ1LL−1を読み出して(データ432)取得する。つまり、垂直合成フィルタ部312には、データ1HH/LH(データ431)およびデータ1HL/LL(データ433)のように、分割レベル1の各サブバンドの係数が1ラインずつ入力される。データ1HH/LHは、分割レベル1のサブバンドHHの係数1ラインとサブバンドLHの係数1ラインを示しており、データ1HL/LLは、分割レベル1のサブバンドHLの係数1ラインとサブバンドLLの係数1ラインを示している。
垂直合成フィルタ部312および水平合成フィルタ部314は、これらの係数に対して合成フィルタ処理を行い、それぞれがベースバンドの画像データ1ラインを示すベースバンド画像データ−1(データ434)およびベースバンド画像データ−2(データ435)を生成する。つまり、垂直合成フィルタ部312および水平合成フィルタ部314は、合成フィルタ処理により、ベースバンドの画像データを2ライン生成する。
それらの内、一方のベースバンド画像データ−1(データ434)は、そのまま出力され(データ436)、他方のベースバンド画像データ−2(データ435)は、出力バッファ部316に書き込まれて保持される(データ437)。この書き込みと同時並行的に、出力バッファ部316に記憶されていた、分割レベル3の低域サブバンドの係数であるデータ3LL−2(データ438)は読み出されてレベル別バッファ部320のレベル3バッファ部321に供給されて記憶され(データ439)、分割レベル2の低域サブバンドの係数であるデータ2LL−2(データ440)は読み出されてレベル別バッファ部320のレベル2バッファ部322に供給されて記憶され(データ441)、分割レベル1の低域サブバンドの係数であるデータ1LL−2(データ442)は読み出されてレベル別バッファ部320のレベル1バッファ部323に供給されて記憶される(データ443)。
図35および図36のフローチャートを参照して説明したライン単位ウェーブレット逆変換処理が1回行われる毎に、図38に示されるようにデータが処理される。出力バッファ部316に記憶されたベースバンド画像データ−2(データ437)は、次回のライン単位ウェーブレット逆変換処理において外部に出力される。レベル別バッファ部320の各バッファに蓄積された係数は、さらにその次の回以降において処理される。
以上のように、各分割レベルの合成フィルタ処理により下位の分割レベルの係数が2ラインずつ生成されるが、合成フィルタ処理においては1ラインずつしか処理されない。つまり、生成された2ラインの係数のうち、一方のラインは次の合成フィルタ処理に使用されるが、他方のラインは、次回以降のライン単位ウェーブレット逆変換処理まで不要になる。つまり、生成された2ラインを同時にレベル別バッファ部320に蓄積させる必要はない。そこで、ウェーブレット逆変換装置300は、これらの2ライン係数の蓄積タイミングを互いにずらし、1ラインずつレベル別バッファ部320に蓄積させている。このようにすることにより、レベル別バッファ部320に必要な容量を低減させることができる。
レベル別バッファ部320は、保持している係数を、頻繁にセレクタ311を介して垂直合成フィルタ部312に供給する必要があるため、データの読み書きに共有バスを介する必要がある外部メモリのような低速でのアクセスしかできないメモリで実現するようにすると、合成フィルタ処理の処理速度が極端に低下してしまい、ウェーブレット逆変換処理による遅延時間が増大する恐れがある。そこで、レベル別バッファ部320は、所謂キャッシュメモリのような、合成フィルタ処理が行われるCPUを含むLSIチップ内部に設けられ、共有バスを介さずに高速にアクセスが可能なメモリにより実現するのが望ましい。
しかしながら、キャッシュメモリのメモリ容量が増大すると回路規模が増大してしまうため、LSIチップのチップサイズも増大してしまう。つまり、キャッシュメモリの容量の増大は装置の製造コストの増大に繋がる恐れがある。従って、キャッシュメモリの容量には実質的に上限があり、また、コスト低減のためには、小容量であるほど望ましい。
そのため、レベル別バッファ部320に蓄積するデータ量が増大すると、小容量のキャッシュメモリでは容量が不足する恐れがある。その場合、低速で動作する外部メモリをバッファメモリとして使用しなければならなくなるが、上述したように、ウェーブレット逆変換処理による遅延時間が増大する恐れがある。また、この場合、キャッシュメモリで発生するミスヒットの処理やデータ退避等により、さらにその遅延時間が増大する恐れがある。
従って、上述したように、合成フィルタ処理により生成された係数を1ラインずつレベル別バッファ部320に蓄積させるようにし、レベル別バッファ部320に必要な容量を低減させることにより、このような遅延時間の増大や製造コストの増大を低減させることができる。
また、上述したように、ウェーブレット逆変換装置300は、合成フィルタ処理により生成された係数2ラインのうち、直ぐにレベル別バッファ部320に蓄積させない方のラインは、出力バッファ部316に蓄積させる。
出力バッファ部316は、本来、ベースバンドの画像データを1ラインずつ出力させるために、同時に2ライン生成されたベースバンドの画像データの一方のラインを蓄積するバッファである。換言すれば、ベースバンドの画像データが生成されるまでは使用されないので、上述したように、この未使用の期間を利用して、直ぐにレベル別バッファ部320に蓄積させない係数を、レベル別バッファ部320に蓄積させた係数の合成フィルタ処理が終了するまで一時的に蓄積させる。つまり、出力バッファ部316を利用して、レベル別バッファ部320への蓄積タイミングをずらしている。
出力バッファ部316もレベル別バッファ部320と同様に、ウェーブレット逆変換処理による遅延時間を低減させるために、高速動作可能なキャッシュメモリにより実現するのが望ましいが、このように空き時間(ベースバンドの画像データが保持されていない期間に)を利用して係数を記憶させることにより、キャッシュメモリ(出力バッファ部316)の容量を増大させることなく、合成フィルタ処理により生成された係数を1ラインずつレベル別バッファ部320に蓄積させることができる。
つまり、ウェーブレット逆変換装置300は、係数データや画像データをバッファリングするキャッシュメモリの使用効率を向上させることにより、ウェーブレット逆変換処理においてデータ保持するバッファメモリとして必要なメモリ容量を低減することができる。
なお、直ぐにレベル別バッファ部320に蓄積させない係数を外部メモリに退避させることも考えられるが、遅延時間を増大させないようにするためにはタイミング制御が複雑になる恐れがある。上述したように出力バッファ部316を利用することにより、容易に合成フィルタ処理により生成された係数を1ラインずつレベル別バッファ部320に蓄積させることができる。
また、図32のブロック図や図15のフローチャートを参照して説明したように、出力バッファ部316は、ベースバンドの画像データの書き込みと係数の読み出しを同時並行的に実行することができるようになされている。このようにすることにより、コストを増大させずに、係数を出力バッファ部316からレベル別バッファ部320に移動させることによる遅延時間の増大を抑制することができる。
次に、1プレシンクト分のウェーブレット逆変換処理の流れのより具体的な例を、図39乃至図41を参照して説明する。図39乃至図41において、丸で囲まれた数字は、プレシンクト内におけるラインの識別番号であり、本明細書においては、この識別番号を囲む丸は省略して説明する。また、ここでは分割レベル4でウェーブレット変換された係数に対するウェーブレット逆変換処理について説明する。
図39に示されるように、1回目のライン単位ウェーブレット逆変換処理が開始されると、最初に、最上位レベルである分割レベル4の各サブバンドの係数1ラインずつ(4LL/HL/LH/HH)について、合成フィルタ処理が行われる(矢印S1)。この合成フィルタ処理により、分割レベル3の低域サブバンドの1ライン目の係数3LL1と、2ライン目の係数3LL2が生成される(矢印S2)。次に、その1ライン目の係数3LL1と、新たに入力された分割レベル3の高域サブバンドの係数1ラインずつ(3HL/LH/HH)について、合成フィルタ処理が行われ(矢印S3)、分割レベル2の低域サブバンドの1ライン目の係数2LL1と、2ライン目の係数2LL2が生成される(矢印S4)。続いて、その1ライン目の係数2LL1と、新たに入力された分割レベル2の高域サブバンドの係数1ラインずつ(2HL/LH/HH)について、合成フィルタ処理が行われ(矢印S5)、分割レベル1の低域サブバンドの1ライン目の係数1LL1と、2ライン目の係数1LL2が生成される(矢印S6)。さらに、その1ライン目の係数1LL1と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S7)、ベースバンドの1ライン目の画像データBase1と、2ライン目の画像データBase2が生成される(矢印S8)。
1ライン目の画像データBase1は直ぐに外部に出力され、2ライン目の画像データBase2は、一旦出力バッファ部316に保持され、次の出力タイミング(2回目のライン単位ウェーブレット逆変換処理)において出力される。
3回目のライン単位ウェーブレット逆変換処理が開始されるとき、1回目のライン単位ウェーブレット逆変換処理において生成された分割レベル3の低域サブバンドの2ライン目の係数3LL2、分割レベル2の低域サブバンドの2ライン目の係数2LL2、および分割レベル1の低域サブバンドの2ライン目の係数1LL2が、レベル別バッファ部320に蓄積されている。従って、3回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル1の低域サブバンドの2ライン目の係数1LL2を処理対象とする。つまり、その分割レベル1の低域サブバンドの2ライン目の係数1LL2と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S9)、ベースバンドの3ライン目の画像データBase3と、4ライン目の画像データBase4が生成される(矢印S10)。
3ライン目の画像データBase3は直ぐに外部に出力され、4ライン目の画像データBase4は、一旦出力バッファ部316に保持され、次の出力タイミング(4回目のライン単位ウェーブレット逆変換処理)において出力される。
5回目のライン単位ウェーブレット逆変換処理が開始されるとき、分割レベル1の低域サブバンドの2ライン目の係数1LL2は処理されたので、分割レベル3の低域サブバンドの2ライン目の係数3LL2と、分割レベル2の低域サブバンドの2ライン目の係数2LL2が、レベル別バッファ部320に蓄積されている。従って、5回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル2の低域サブバンドの2ライン目の係数2LL2を処理対象とする。つまり、その分割レベル2の低域サブバンドの2ライン目の係数2LL2と、新たに入力された分割レベル2の高域サブバンドの係数1ラインずつ(2HL/LH/HH)について、合成フィルタ処理が行われ(矢印S11)、図40に示されるように、分割レベル1の低域サブバンドの3ライン目の係数1LL3と、4ライン目の係数1LL4が生成される(矢印S12)。さらに、その分割レベル1の低域サブバンドの3ライン目の係数1LL3と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S13)、ベースバンドの5ライン目の画像データBase5と、6ライン目の画像データBase6が生成される(矢印S14)。
5ライン目の画像データBase5は直ぐに外部に出力され、6ライン目の画像データBase6は、一旦出力バッファ部316に保持され、次の出力タイミング(6回目のライン単位ウェーブレット逆変換処理)において出力される。
7回目のライン単位ウェーブレット逆変換処理が開始されるとき、1回目のライン単位ウェーブレット逆変換処理において生成された分割レベル3の低域サブバンドの2ライン目の係数3LL2と、5回目のライン単位ウェーブレット逆変換処理において生成された分割レベル1の低域サブバンドの4ライン目の係数1LL4が、レベル別バッファ部320に蓄積されている。従って、7回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル1の低域サブバンドの4ライン目の係数1LL4を処理対象とする。つまり、その分割レベル1の低域サブバンドの4ライン目の係数1LL4と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S15)、ベースバンドの7ライン目の画像データBase7と、8ライン目の画像データBase8が生成される(矢印S16)。
7ライン目の画像データBase7は直ぐに外部に出力され、8ライン目の画像データBase8は、一旦出力バッファ部316に保持され、次の出力タイミング(8回目のライン単位ウェーブレット逆変換処理)において出力される。
9回目のライン単位ウェーブレット逆変換処理が開始されるとき、1回目のライン単位ウェーブレット逆変換処理において生成された分割レベル3の低域サブバンドの2ライン目の係数3LL2のみが、レベル別バッファ部320に蓄積されている。従って、9回目のライン単位ウェーブレット逆変換処理では、その分割レベル3の低域サブバンドの2ライン目の係数3LL2を処理対象とする。つまり、その分割レベル3の低域サブバンドの2ライン目の係数3LL2と、新たに入力された分割レベル3の高域サブバンドの係数1ラインずつ(3HL/LH/HH)について、合成フィルタ処理が行われ(矢印S17)、分割レベル2の低域サブバンドの3ライン目の係数2LL3と、4ライン目の係数2LL4が生成される(矢印S18)。さらに、その分割レベル2の低域サブバンドの3ライン目の係数2LL3と、新たに入力された分割レベル2の高域サブバンドの係数1ラインずつ(2HL/LH/HH)について、合成フィルタ処理が行われ(矢印S19)、分割レベル1の低域サブバンドの5ライン目の係数1LL5と、6ライン目の係数1LL6が生成される(矢印S20)。さらに、その分割レベル1の低域サブバンドの5ライン目の係数1LL5と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S21)、図41に示されるように、ベースバンドの9ライン目の画像データBase9と、10ライン目の画像データBase10が生成される(矢印S22)。
9ライン目の画像データBase9は直ぐに外部に出力され、10ライン目の画像データBase10は、一旦出力バッファ部316に保持され、次の出力タイミング(10回目のライン単位ウェーブレット逆変換処理)において出力される。
11回目のライン単位ウェーブレット逆変換処理が開始されるとき、9回目のライン単位ウェーブレット逆変換処理において生成された分割レベル2の低域サブバンドの4ライン目の係数2LL4および分割レベル1の低域サブバンドの6ライン目の係数1LL6が、レベル別バッファ部320に蓄積されている。従って、11回目のライン単位ウェーブレット逆変換処理では、それらのうち最も下位レベルの係数である分割レベル1の低域サブバンドの6ライン目の係数1LL6を処理対象とする。つまり、その分割レベル1の低域サブバンドの6ライン目の係数1LL6と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S23)、ベースバンドの11ライン目の画像データBase11と、12ライン目の画像データBase12が生成される(矢印S24)。
11ライン目の画像データBase11は直ぐに外部に出力され、12ライン目の画像データBase12は、一旦出力バッファ部316に保持され、次の出力タイミング(12回目のライン単位ウェーブレット逆変換処理)において出力される。
13回目のライン単位ウェーブレット逆変換処理が開始されるとき、分割レベル1の低域サブバンドの6ライン目の係数1LL6は処理されたので、分割レベル2の低域サブバンドの4ライン目の係数2LL4がレベル別バッファ部320に蓄積されている。従って、13回目のライン単位ウェーブレット逆変換処理では、その分割レベル2の低域サブバンドの4ライン目の係数2LL4を処理対象とする。つまり、その分割レベル2の低域サブバンドの4ライン目の係数2LL4と、新たに入力された分割レベル2の高域サブバンドの係数1ラインずつ(2HL/LH/HH)について、合成フィルタ処理が行われ(矢印S25)、分割レベル1の低域サブバンドの7ライン目の係数1LL7と、8ライン目の係数1LL8が生成される(矢印S26)。さらに、その分割レベル1の低域サブバンドの7ライン目の係数1LL7と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S27)、ベースバンドの13ライン目の画像データBase13と、14ライン目の画像データBase14が生成される(矢印S28)。
13ライン目の画像データBase13は直ぐに外部に出力され、14ライン目の画像データBase14は、一旦出力バッファ部316に保持され、次の出力タイミング(14回目のライン単位ウェーブレット逆変換処理)において出力される。
15回目のライン単位ウェーブレット逆変換処理が開始されるとき、13回目のライン単位ウェーブレット逆変換処理において生成された分割レベル1の低域サブバンドの8ライン目の係数1LL8が、レベル別バッファ部320に蓄積されている。従って、15回目のライン単位ウェーブレット逆変換処理では、その分割レベル1の低域サブバンドの8ライン目の係数1LL8を処理対象とする。つまり、その分割レベル1の低域サブバンドの8ライン目の係数1LL8と、新たに入力された分割レベル1の高域サブバンドの係数1ラインずつ(1HL/LH/HH)について、合成フィルタ処理が行われ(矢印S29)、ベースバンドの15ライン目の画像データBase15と、16ライン目の画像データBase16が生成される(矢印S30)。
15ライン目の画像データBase15は直ぐに外部に出力され、16ライン目の画像データBase16は、一旦出力バッファ部316に保持され、次の出力タイミング(16回目のライン単位ウェーブレット逆変換処理)において出力される。
以上のように16回ライン単位ウェーブレット逆変換処理を繰り返すことにより、1プレシンクト分のベースバンドの画像データ(16ライン)が生成され出力される。次のプレシンクトについては、上述したのと同様に処理が繰り返される(矢印S31)。
このように、ウェーブレット逆変換装置300は、ライン単位ウェーブレット逆変換処理を繰り返し実行することにより、ベースバンドの画像データを上から順に2ラインずつ生成して1ラインずつ出力するように処理対象を選択しながら、合成フィルタ処理を繰り返す。これにより、ウェーブレット逆変換装置300は、ベースバンドの画像データを所定のタイミング毎に出力させることができる。
また、ウェーブレット逆変換装置300は、ベースバンドの画像データを2ラインずつ生成するが、その際、上述したように、その2ラインの生成に必要な合成フィルタ処理のみを実行する。つまり、ウェーブレット逆変換装置300は、合成フィルタ処理により生成された係数2ラインのうち、一方の1ラインを出力バッファに保持させるとともに、他方の1ラインをレベル別バッファ部320に保持させ、そのレベル別バッファ部320に保持した1ラインを優先的に再度合成フィルタ処理し、2ラインの係数を生成する。ウェーブレット逆変換装置300は、ベースバンドの画像データを2ライン生成するまでこれを繰り返す。そして、ベースバンドの画像データが生成され、レベル別バッファ部320に保持している係数が全て処理されると、ウェーブレット逆変換装置300は、出力バッファ部316に保持させた係数を読み出してレベル別バッファ部320に保持させ、その係数について、分割レベルがより下位のレベルの係数から優先的に合成フィルタ処理を行う。その際もウェーブレット逆変換装置300は、上述したように合成フィルタ処理を繰り返す。
このようにすることにより、ウェーブレット逆変換装置300は、ベースバンドの画像データを上から順に2ラインずつ生成することができるだけでなく、ベースバンドの画像データの各2ラインを生成するための負荷を低減させることができ、さらに、例えば合成フィルタ処理により生成された係数データやベースバンドの画像データ等、保持しなければならないデータのデータ量を低減させることができ、バッファに必要なメモリ容量を低減させることができる。これにより製造コストを低減させることもできる。
さらに、付言するに、ウェーブレット逆変換装置300は、ベースバンドの画像データの2ラインを生成する際に、その2ラインの生成に必要な合成フィルタ処理のみを行うので、ベースバンドの画像データの各2ラインの生成間隔を低減させることができる。つまり、ウェーブレット逆変換装置300は、より短い間隔でベースバンドの画像データを1ラインずつ出力させることができる。
ウェーブレット逆変換装置300が処理する画像データは、例えばテレビジョン信号等がある。上述したようにウェーブレット逆変換装置300は1ラインずつベースバンドの画像データを出力するが、この間隔をテレビジョン信号の水平同期タイミングに合わせることにより、ウェーブレット逆変換装置300が、テレビジョン信号をリアルタイムに(即時的に)生成するようにすることができる。つまり、この場合、ウェーブレット逆変換装置300は、例えばバッファリング無しに出力画像データをモニタに表示させることができるように、入力された係数データをリアルタイムにウェーブレット逆変換することができる。なお、ここでリアルタイムとは、例えばテレビジョン信号等の水平同期タイミングに合わせてベースバンドの画像データを1ラインずつ出力させることができることを示しており、ウェーブレット変換処理による遅延時間がゼロであることを示すものではない。
図42は、SMPTE(Society of Motion Picture and Television Engineers)規格292MのHD-SDI(High Definition Serial Digital Interface)信号(1.5Gbps)で定義されている解像度1920×1080、YCbCr4:2:2フォーマット、各サンプル10ビットの多重化されたデータ形式を示す模式図である。このデータ形式においては、SAV(Start of Active Video)とEAV(End of Active Video)の間に1920画素のベースバンドのデータがY(輝度)と、Cb,Cr(色差)とに多重化されて配置される。EAVと次のSAVの間には水平ブランキング期間を示すラインブランキングが配置される。
このようなデータ形式でベースバンドの画像データをリアルタイムに生成するためには、ウェーブレット逆変換装置300は、SAVから次のSAVの間に、ベースバンドの画像データを生成する必要がある。上述したように、ウェーブレット逆変換装置300は、ベースバンドの画像データの2ラインを生成する際に、その2ラインの生成に必要な合成フィルタ処理のみを行うので、より短い間隔でベースバンドの画像データを1ラインずつ出力させることができ、容易に、このSAV毎にベースバンドの画像データを1ラインずつ出力させることができる。
なお実際には、上述したウェーブレット変換やウェーブレット逆変換などの処理は、例えば画像データの転送システムや記録再生システム等に適用され、エントロピ符号化およびエントロピ復号等の他の処理とともに利用されることが多い。
以下にウェーブレット逆変換装置300の適用例について説明する。図43は、本発明を適用したウェーブレット逆変換装置300を用いた画像伝送システムの構成例を示すブロック図である。
図43に示される画像伝送システム500は、図42に示されるデータ形式の画像データを符号化して伝送するシステムであり、伝送元となる符号化装置501と、伝送先の復号装置502を有する。
符号化装置501は、外部より入力された画像データをウェーブレット変換して符号化し、その符号化データを復号装置502に伝送させる装置であり、ウェーブレット変換部511、係数並び替え用バッファ部513、係数並び替え部514、量子化部515、およびエントロピ符号化部516を有する。
符号化装置501の外部より入力された画像データは、ウェーブレット変換部511においてウェーブレット係数に変換され、係数並び替え用バッファ部513に格納される。係数並び替え用バッファ部513に格納された係数データは、係数並び替え部514により、ウェーブレット逆変換処理において処理される順に読み出され、量子化部515において量子化され、エントロピ符号化部516において符号化され、符号化データに変換される。エントロピ符号化部516において生成された符号化データは、復号装置502に供給される。
復号装置502は、符号化装置501より伝送された符号化データを復号し、逆ウェーブレット変換することにより、ベースバンドの画像データを復元して出力する装置であり、エントロピ復号部521、逆量子化部522、およびウェーブレット逆変換部523を有する。つまり、符号化装置501より供給された符号化データは、エントロピ復号部521において復号され、逆量子化部522において逆量子化され、ウェーブレット逆変換部523においてウェーブレット逆変換されることにより、ベースバンドの画像データに変換されて復号装置502の外部に出力される。

このウェーブレット変換部511は、図1のウェーブレット変換装置100や図16のウェーブレット変換装置200に対応し、ウェーブレット逆変換部523は、上述したウェーブレット逆変換装置300に対応し、基本的に同様の構成を有し、同様の処理を行う。従って、ウェーブレット逆変換部523は、水平同期タイミングに合わせて1ラインずつ画像データを出力するようにウェーブレット逆変換処理を行うことができる。
エントロピ復号部521は、制御部531、符号入力部541、復号部542、および係数出力部543を有する。エントロピ復号部521に供給された符号化データは、符号入力部541において受け付けられ、復号部542において復号され、係数データに変換される。生成された係数データは、係数出力部543より逆量子化部522に出力される。制御部531は、復号部542の入出力、すなわち、符号入力部541および係数出力部543を制御することにより、復号部542により実行される復号処理の実行タイミングを制御する。また、制御部531は、逆量子化部522およびウェーブレット逆変換部523に、画像データの水平同期タイミングを示すクロック信号を供給する。
復号部542、逆量子化部522、およびウェーブレット逆変換部523は、この制御部531による制御に基づいて各処理を実行し、水平同期タイミングに合わせてベースバンドの画像データを1ラインずつ出力するように、入力された符号化データを復号し、逆量子化し、ウェーブレット逆変換する。
このような、復号装置502により実行される復号処理の流れの例を図44のフローチャートを参照して説明する。この復号処理はピクチャ毎に繰り返し実行される。
復号処理が開始されると、制御部531は、ステップS501において、処理対象プレシンクトを初期化し、ステップS502において、水平ブランキング期間(水平同期タイミング)に対応する所定のタイミングであるか否かを判定し、所定のタイミングになるまで待機する。
ステップS502において所定のタイミングであると判定された場合、処理はステップS503に進む。
ステップS503において、ウェーブレット逆変換部523の出力バッファ部にベースバンドの画像データが存在するか否かを判定する。出力バッファ部にベースバンドの画像データが存在しないと判定された場合、処理はステップS504に進む。ステップS504において、復号部542は、制御部531に制御される符号入力部541を介して符号化データを取得し、その符号化データをエントロピ復号して係数データに変換する。復号部542は、生成した係数データを、制御部531に制御される係数出力部543を介して逆量子化部522に供給する。ステップS505において、逆量子化部522は、その係数データを逆量子化し、逆量子化された係数データをウェーブレット逆変換部523に供給する。
ステップS505の処理が終了すると処理はステップS506に進む。また、ステップS503において、出力バッファ部にベースバンドの画像データが存在しないと判定された場合、その出力バッファ部の画像データを出力させることが優先され、ステップS504およびステップS505の処理が省略され、処理はステップS506に進む。
ステップS506において、ウェーブレット逆変換部523は、制御部531より供給される制御タイミングに応じて、図35および図36のフローチャートを参照して説明したようにライン単位ウェーブレット逆変換処理を実行し、ベースバンドの画像データ2ラインを生成して出力する。
ステップS507において、制御部531は、プレシンクト内の全ての係数データを処理したか否かを判定し、未処理のデータが存在すると判定した場合、処理をステップS502に戻し、それ以降の処理を繰り返させる。また、ステップS507において、プレシンクト内の全ての係数データを処理したと判定された場合、処理はステップS508に進む。
ステップS508において、制御部531は、ピクチャ内の全てのプレシンクトを処理したか否かを判定する。未処理のプレシンクトが存在すると判定された場合、処理はステップS509に進む。ステップS509において、制御部531は、処理対象プレシンクトを次のプレシンクトに更新し、処理をステップS502に戻す。そして、ステップS508において、ピクチャ内の全てのプレシンクトを処理したと判定した場合、制御部531は、そのピクチャに対する復号処理を終了する。
以上のように、復号装置502においては、制御部531の制御に従って、ライン単位ウェーブレット逆変換処理が、所定のタイミング、すなわち、水平同期タイミングに応じて繰り返し実行される。
このようにすることにより、復号装置502は、水平同期タイミングに合わせて1ラインずつ出力させることができる。つまり、復号装置502は、リアルタイムに符号化データを復号しベースバンドの画像データを復元させることができる。
図45は、その場合のベースバンドの画像データの出力の様子を示す模式図である。図45に示されるようにベースバンドの画像データ(ベースバンド画像データ−1およびベースバンド画像データ−2)は、水平同期タイミング(H-Sync)毎に1ラインずつ出力される。ただし、図45に示されるように、このベースバンドの画像データは2ラインずつ生成される(ベースバンド画像データ−1およびベースバンド画像データ−2)。つまり、生成された2ラインのうち、一方の1ラインが(A)のように、生成されたときの水平同期タイミングにおいて直接出力され、他方の1ラインは、(B)のように出力バッファ部316に書き込まれ、次の水平同期タイミングにおいて、(C)のように出力バッファ部316より読み出されて出力される。
従って、図45に示されるように、エントロピ復号処理(VLD)、逆量子化処理(IQ)、およびウェーブレット逆変換処理(IDWT)を水平同期タイミング間に行う必要がある。ウェーブレット逆変換部523(ウェーブレット逆変換装置300)は、上述したような順序で合成フィルタ処理を進めることにより、ベースバンドの画像データの生成間隔をより短くすることができるので、図45のようなタイミングでのリアルタイムな復号処理を容易に実現することができる。
以上においては画像データの伝送システムについて説明したが、本発明を適用したウェーブレット逆変換装置300は、その他のシステムにも適用することができる。ただし、遅延時間の増大による不利益が大きく、より遅延時間の低減が求められるシステムほど、その効果は大きい。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図46に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図46において、パーソナルコンピュータ600のCPU(Central Processing Unit)601は、ROM(Read Only Memory)602に記憶されているプログラム、または記憶部613からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU601、ROM602、およびRAM603は、バス604を介して相互に接続されている。このバス604にはまた、入出力インタフェース610も接続されている。
入出力インタフェース610には、キーボード、マウスなどよりなる入力部611、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部612、ハードディスクなどより構成される記憶部613、モデムなどより構成される通信部614が接続されている。通信部614は、例えばインターネットに代表されるネットワークを介しての通信処理を行う。
入出力インタフェース610にはまた、必要に応じてドライブ615が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア621が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部613にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図46に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア621により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM602や、記憶部613に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
以上説明した本発明は、複数の端末間で画像を圧縮して伝送、受信して伸長して画像を出力するシステム、特に低遅延で実現する必要性が高いプロダクツ・アプリケーションに好適である。具体的には、放送局で多用するデジタルトライアックスシステム、ライブ映像配信システム、TV会議システム、監視カメラ・レコーダシステム、医用遠隔医療診断、生徒と教師間のインタラクティブ通信、ビデオゲーム等に応用が可能である。また、画像データが圧縮符号化された符号化データが記録された記録媒体よりその符号化データを読み出して復号し画像データを再生する装置(記録再生装置も含む)やシステム等にも適用可能である。
本発明を適用したウェーブレット変換装置の一実施形態に係る構成例を示す図である。 画像信号を水平分析フィルタリングする例を説明する図である。 垂直分析フィルタリングする例を説明する図である。 分割レベル1まで分析フィルタリングした結果を示す図である。 9×7分析フィルタのリフティング構成の例を説明する図である。 水平方向の係数群に対しての水平分析フィルタリングを、図5のリフティング構成により実行する場合を説明する図である。 係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を説明する図である。 垂直方向の係数群に対しての垂直分析フィルタリングを、図5のリフティング構成により実行する場合を説明するを示す図である。 図1の途中計算用バッファ部の詳細な構成例を示すブロック図である。 一般的な1ポートSRAMおよび2ポートSRAMの入出力端子の構成例を示す図である。 一般的な1ポートSRAMおよび2ポートSRAMによるデータ入出力のタイミングの例を示す図である。 図9の1ポートSRAMによるデータ入出力のタイミングの例を示す図である。 ウェーブレット変換処理の流れの例を説明するフローチャートである。 垂直分析フィルタ処理の流れの例を説明するフローチャートである。 バッファ入出力処理の流れの例を説明するフローチャートである。 本発明を適用したウェーブレット変換装置の他の構成例を示す図である。 YとCとがインターリーブされた画像信号を水平分析フィルタリングする例を説明する図である。 YとCとを別々に垂直分析フィルタリングする例を説明する図である。 図18との比較のため、従来の低域および高域にわけてYとCとを垂直分析フィルタリングする例を説明するである。 YとCとを別々に分割レベル1まで分析フィルタリングした結果を示す図である。 分割レベル1の低域成分をYとCでインターリーブする例を説明する図である。 図18との比較のため、垂直分析フィルタリングをYとCでインターリーブして実行する例を説明する図である。 ウェーブレット変換処理の流れの他の例を説明するフローチャートである。 ウェーブレット変換について概略的に説明するための略線図である。 ウェーブレット変換について概略的に説明するための略線図である。 ウェーブレット変換およびウェーブレット逆変換の関係について概略的に説明するための略線図である。 本発明を適用したウェーブレット逆変換装置の構成例を示すブロック図である 合成フィルタリングについて概略的に説明するための略線図である。 9×7合成フィルタのリフティング構成の例を説明する図である。 垂直合成フィルタリングの様子の例を説明する図である。 水平合成フィルタリングの様子の例を説明する図である。 図27の出力バッファ部の詳細な構成例を示すブロック図である。 図32の1ポートSRAMによるデータ入出力のタイミングの例を示す図である。 ウェーブレット逆変換処理の流れの例を説明するフローチャートである。 ライン単位ウェーブレット逆変換処理の流れの例を説明するフローチャートである。 ライン単位ウェーブレット逆変換処理の流れの例を説明する、図35に続くフローチャートである。 垂直分析フィルタ処理の流れの例を説明するフローチャートである。 ライン単位ウェーブレット逆変換処理の流れの例を説明する模式図である。 1プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する模式図である。 1プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する、図39に続く模式図である。 1プレシンクト分のライン単位ウェーブレット逆変換処理の流れの例を説明する、図40に続く模式図である。 HDTV規格の輝度と色差信号のデータ配列の例を説明する図である。 本発明を適用した画像伝送システムの構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 処理実行タイミングの例を説明する模式図である。 本発明を適用したパーソナルコンピュータの構成例を示す図である。
符号の説明
100 ウェーブレット変換装置, 117 途中計算用バッファ部, 131 データ連結部, 132 1ポートSRAM, 133 データ分割部, 141 セレクタ, 142 遅延部, 143 パッキング部, 144 16ビット分離部, 145 遅延部, 146 セレクタ, 200 ウェーブレット変換装置, 223 途中計算用Yバッファ部, 224 途中計算用Cバッファ部, 300 ウェーブレット逆変換装置, 313 途中計算用バッファ部, 316 出力バッファ部, 371 制御部, 372 セレクタ, 373 データ連結部, 374 1ポートSRAM, 375 データ分割部, 381 セレクタ, 382 遅延部, 383 パッキング部, 384 16ビット分離部, 385 遅延部, 386 セレクタ

Claims (16)

  1. 画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、
    前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う分析フィルタ処理手段と、
    前記分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記分析フィルタ処理手段に供給する保持手段と
    を備える情報処理装置。
  2. 前記保持手段は、
    前記分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、
    1つのデータを複数に分割し、前記サイクル毎に1つずつ前記分析フィルタ処理手段に供給する分割手段と、
    データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
    を備える請求項1に記載の情報処理装置。
  3. 前記連結手段は、前記分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、
    前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記分析フィルタ処理手段に供給する
    請求項2に記載の情報処理装置。
  4. 画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、
    前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
    前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを供給する
    ステップを含む情報処理方法。
  5. 画像データの周波数成分を複数の周波数帯域に分割する情報処理装置であって、
    前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う輝度成分用分析フィルタ処理手段と、
    前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行う色差成分用分析フィルタ処理手段と、
    前記輝度成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記輝度成分用分析フィルタ処理手段に供給する輝度成分用保持手段と、
    前記色差成分用分析フィルタ処理手段による前記分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の分析フィルタ処理の演算に必要なデータを前記色差成分用分析フィルタ処理手段に供給する色差成分用保持手段と
    を備える情報処理装置。
  6. 前記輝度成分用保持手段は、
    前記輝度成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する輝度成分用連結手段と、
    1つのデータを複数に分割し、前記サイクル毎に1つずつ前記輝度成分用分析フィルタ処理手段に供給する輝度成分用分割手段と、
    データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記輝度成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記輝度成分用分割手段に供給して複数に分割させる輝度成分用記憶手段と
    を備え、
    前記色差成分用保持手段は、
    前記色差成分用分析フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する色差成分用連結手段と、
    1つのデータを複数に分割し、前記サイクル毎に1つずつ前記色差成分用分析フィルタ処理手段に供給する色差成分用分割手段と、
    データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記色差成分用連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記色差成分用分割手段に供給して複数に分割させる色差成分用記憶手段と
    を備える請求項5に記載の情報処理装置。
  7. 前記輝度成分用連結手段は、前記輝度成分用分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、
    前記輝度成分用分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記輝度成分用分析フィルタ処理手段に供給し、
    前記色差成分用連結手段は、前記色差成分用分析フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、
    前記色差成分用分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記色差成分用分析フィルタ処理手段に供給する
    請求項6に記載の情報処理装置。
  8. 画像データの周波数成分を複数の周波数帯域に分割する情報処理装置の情報処理方法であって、
    前記画像データの輝度成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
    前記画像データの色差成分について、前記周波数成分を高域成分と低域成分に分割する分析フィルタ処理を再帰的に行い、
    前記輝度成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の輝度成分についての分析フィルタ処理の演算に必要なデータを供給し、
    前記色差成分についての分析フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の色差成分についての分析フィルタ処理の演算に必要なデータを供給する
    ステップを含む情報処理方法。
  9. 画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、
    前記合成フィルタ処理手段による前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを前記合成フィルタ処理手段に供給する保持手段と
    を備える情報処理装置。
  10. 前記保持手段は、
    前記合成フィルタ処理手段よりサイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、
    1つのデータを複数に分割し、前記サイクル毎に1つずつ前記合成フィルタ処理手段に供給する分割手段と、
    データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
    を備える請求項9に記載の情報処理装置。
  11. 前記連結手段は、前記合成フィルタ処理手段より前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、
    前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ前記合成フィルタ処理手段に供給する
    請求項10に記載の情報処理装置。
  12. 情報処理装置の情報処理方法であって、
    画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、
    前記合成フィルタ処理の演算結果として供給されるデータを保持するタイミングに合わせて、既に保持している前記データであって、次回の合成フィルタ処理の演算に必要なデータを供給する
    ステップを含む情報処理方法。
  13. 画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行う合成フィルタ処理手段と、
    前記合成フィルタ処理手段により互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理手段により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理手段により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する保持手段と
    を備える情報処理装置。
  14. 前記保持手段は、
    サイクル毎に1つずつ供給される複数のデータを連結し、1つのデータを生成する連結手段と、
    1つのデータを複数に分割し、前記サイクル毎に1つずつ出力する分割手段と、
    データの書き込みと読み出しを前記サイクル毎に交互に行い、前記データの書き込みを行う書き込みサイクルにおいて、前記連結手段により生成された1つのデータを書き込んで記憶し、前記データの読み出しを行う読み出しサイクルにおいて、記憶しているデータの中から1つを1サイクルで読み出して前記分割手段に供給して複数に分割させる記憶手段と
    を備える請求項13に記載の情報処理装置。
  15. 前記連結手段は、前記サイクル毎に、第1のデータ単位毎に供給される前記データを連結し、第2のデータ単位の1つのデータを生成し、
    前記分割手段は、前記第2のデータ単位の1つのデータを前記第1のデータ単位毎に分割することにより、前記第1のデータ単位のデータを複数生成し、前記サイクル毎に、前記第1のデータ単位のデータを1つずつ出力する
    請求項14に記載の情報処理装置。
  16. 情報処理装置の情報処理方法であって、
    画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分割する分析フィルタ処理が階層的になされ、複数の周波数帯域に分割された前記画像データの周波数成分に対して、互いに同じ分割レベルの周波数帯域の周波数成分を合成する合成フィルタ処理を再帰的に行い、
    互いに同じ分割レベルの周波数帯域の周波数成分が合成されて生成される周波数成分を保持し、前記合成フィルタ処理により最終的に生成される、復元された前記画像データを保持するタイミングに合わせて、既に保持している、前記合成フィルタ処理により生成される1つ下位の分割レベルの周波数成分であって、さらに前記合成フィルタ処理が可能な周波数成分を読み出して出力する
    ステップを含む情報処理方法。
JP2007131286A 2007-05-17 2007-05-17 情報処理装置および方法 Expired - Fee Related JP4356030B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007131286A JP4356030B2 (ja) 2007-05-17 2007-05-17 情報処理装置および方法
US12/109,845 US8369635B2 (en) 2007-05-17 2008-04-25 Information processing device and method
CN2008100992779A CN101309419B (zh) 2007-05-17 2008-05-16 信息处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007131286A JP4356030B2 (ja) 2007-05-17 2007-05-17 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2008288835A true JP2008288835A (ja) 2008-11-27
JP4356030B2 JP4356030B2 (ja) 2009-11-04

Family

ID=40027550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007131286A Expired - Fee Related JP4356030B2 (ja) 2007-05-17 2007-05-17 情報処理装置および方法

Country Status (3)

Country Link
US (1) US8369635B2 (ja)
JP (1) JP4356030B2 (ja)
CN (1) CN101309419B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4793320B2 (ja) * 2007-05-17 2011-10-12 ソニー株式会社 情報処理装置および方法
JP4670947B2 (ja) * 2008-12-05 2011-04-13 ソニー株式会社 情報処理装置および方法
JP4626707B2 (ja) * 2008-12-08 2011-02-09 ソニー株式会社 情報処理装置および方法
JP5809572B2 (ja) 2012-01-30 2015-11-11 ルネサスエレクトロニクス株式会社 半導体装置
KR101904718B1 (ko) * 2012-08-27 2018-10-05 삼성전자주식회사 컬러 영상 및 깊이 영상 촬영 장치 및 방법
KR20140122835A (ko) * 2013-04-11 2014-10-21 삼성전자주식회사 프로세스 병렬 처리 장치 및 방법
EP4241830A3 (en) 2013-11-07 2023-10-04 SafeOp Surgical, Inc. Systems and methods for detecting nerve function
US11986321B2 (en) 2016-09-22 2024-05-21 Safeop Surgical, Inc. System and method for detecting and removing periodic non-physiological artifact from evoked potentials
JP7187473B2 (ja) * 2017-03-22 2022-12-12 セーフオプ サージカル インコーポレイテッド 電気生理学的誘発電位における変化を検出する医用システム及び方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119195A (en) * 1991-01-31 1992-06-02 Thomson Consumer Electronics, Inc. Video noise reduction system employing plural frequency bands
US5130798A (en) * 1991-01-31 1992-07-14 Thomson Consumer Electronics, Inc. Dual band progressive television system with noise reduction
US6067383A (en) * 1995-09-12 2000-05-23 Matsushita Electric Industrial Co., Ltd. Coding method, coding apparatus, wavelet transform apparatus, and wavelet reverse transform apparatus
JPH10283342A (ja) 1997-04-02 1998-10-23 Matsushita Electric Ind Co Ltd ウェーブレット変換装置
JP3655088B2 (ja) 1997-12-19 2005-06-02 株式会社リコー ウェーブレット変換装置及び符号化/復号化装置
US7369161B2 (en) * 1999-06-08 2008-05-06 Lightsurf Technologies, Inc. Digital camera device providing improved methodology for rapidly taking successive pictures
JP4254017B2 (ja) 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
US6678422B1 (en) * 2000-08-30 2004-01-13 National Semiconductor Corporation Method and apparatus for image data compression with low memory requirement
JP2002101310A (ja) 2000-09-21 2002-04-05 Canon Inc フィルタ処理装置及び方法
US7617338B2 (en) * 2005-02-03 2009-11-10 International Business Machines Corporation Memory with combined line and word access
JP4360379B2 (ja) * 2006-05-16 2009-11-11 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4371120B2 (ja) * 2006-05-16 2009-11-25 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4182447B2 (ja) * 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4182446B2 (ja) * 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体

Also Published As

Publication number Publication date
CN101309419A (zh) 2008-11-19
CN101309419B (zh) 2012-09-05
US8369635B2 (en) 2013-02-05
US20080285872A1 (en) 2008-11-20
JP4356030B2 (ja) 2009-11-04

Similar Documents

Publication Publication Date Title
JP4356030B2 (ja) 情報処理装置および方法
JP4356033B2 (ja) 画像データ処理装置および方法
JP4360379B2 (ja) 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP5152598B2 (ja) 符号化装置および符号化方法、並びに復号装置および復号方法
JP4371120B2 (ja) 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4356028B2 (ja) 情報処理装置および方法
JP2000299863A (ja) 画像圧縮装置
JP4356029B2 (ja) 情報処理装置および方法
JP4517306B2 (ja) 情報処理装置および方法
JP4525704B2 (ja) 符号化装置および方法、記録媒体、並びにプログラム。
JP4356031B2 (ja) 情報処理装置および方法
JP4356032B2 (ja) 情報処理装置および方法
JP5158000B2 (ja) 情報処理装置および方法
JP4793320B2 (ja) 情報処理装置および方法
US8670624B2 (en) Information processing apparatus and method
US8249375B2 (en) Information processing apparatus and method
JP4821835B2 (ja) 情報処理装置および方法
KR20140113880A (ko) 병렬 디코딩 경로를 사용하는 vc­2 디코딩
JP2004274630A (ja) 画像データ生成装置、画像データ生成方法及び記録媒体
JP2008022488A (ja) 画像処理装置、画像処理方法、プログラム及び情報記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090709

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090722

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130814

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees