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

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

Info

Publication number
JP4626707B2
JP4626707B2 JP2008312180A JP2008312180A JP4626707B2 JP 4626707 B2 JP4626707 B2 JP 4626707B2 JP 2008312180 A JP2008312180 A JP 2008312180A JP 2008312180 A JP2008312180 A JP 2008312180A JP 4626707 B2 JP4626707 B2 JP 4626707B2
Authority
JP
Japan
Prior art keywords
coefficient
storage unit
division level
processing
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008312180A
Other languages
English (en)
Other versions
JP2010136260A (ja
Inventor
隆浩 福原
勝俊 安藤
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 JP2008312180A priority Critical patent/JP4626707B2/ja
Priority to US12/605,774 priority patent/US8670624B2/en
Priority to CN2009102535414A priority patent/CN101754017B/zh
Publication of JP2010136260A publication Critical patent/JP2010136260A/ja
Application granted granted Critical
Publication of JP4626707B2 publication Critical patent/JP4626707B2/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/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/423Methods 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 characterised by memory arrangements
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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

Description

本発明は、情報処理装置および方法に関し、特に、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させることができるようにした情報処理装置および方法に関する。
近年、画像の大容量化に伴い、家庭でもフルHDTV(High Definition Television)(1920画素×1080画素)の映像が鑑賞できるようになってきた。またデジタルシネマでは4K×2K(4,096画素×2,160画素)という、HDTVの約4倍の解像度の画像が使用される。
デジタルシネマの用途では、DCI規格(Digital Cinema Initiatives)によって、映画配信のための圧縮フォーマットが決められている。それによれば、ISO(International Organization for Standardization)規格のJPEG(Joint Photographic Experts Group)2000 Part-1が圧縮・伸長技術として使用され、ビットレートは、画像サイズ4,096×2,160のXYZ 12ビット(フレームレート24Hz)の動画シーケンスに対して、ピークレートで250Mbpsとされる。従って、デジタルシネマにおいては、ベースバンドのマスタ画像が、このビットレートの符号化データにエンコードされて配信、及び上映される。
またデジタルシネマ以外の用途でも、例えば医用画像や衛星写真画像などをJPEG2000で圧縮するニーズが、今後急増する見込みである。いずれの場合も共通するのは、取り扱われる画像データが非常に大きな解像度であることである。JPEG2000では画像信号の周波数変換技術として、ウェーブレット変換を採用している。ウェーブレット変換は、画像信号を複数の周波数帯域に分割する優れた信号解析技術であり、JPEG2000のような画像圧縮以外にも、画像認識、地震波解析等にも応用されている。このウェーブレット変換においては、垂直方向と水平方向のそれぞれに対してフィルタリング処理が行われるが、その際、係数データを頻繁にバッファに保持させる(例えば、特許文献1参照)。
このようなウェーブレット変換を利用した画像符号化処理は、専用のハードウエアで実現される場合もあるが、ソフトウエアプログラムとして構成され、例えばパーソナルコンピュータ等でそのソフトウエアプログラムが実行されることにより実現される場合もある。
図1は、ウェーブレット変換を利用した画像符号化処理を実現するソフトウエアプログラムをコンピュータにおいて実行する場合の例を示す図である。図1に示されるように、一般的なコンピュータにおいては、ソフトウエアプログラムは、例えばCPU(Central Processing Unit)のような汎用のプロセッサ1において実行される。このような汎用のプロセッサ1には、一般的にキャッシュメモリと称される内部メモリ11が設けられている。
内部メモリ11は、プロセッサ外部に設けられる外部メモリに比べて小容量だが高速に読み書き可能という特徴を有する記憶領域であり、プロセッサ1内で実行される処理にのみ使用される。プロセッサ1内では、ソフトウエアプログラムが実行されることにより、ウェーブレット変換やエントロピ符号化等の処理が実行される。図1において、ウェーブレット変換部12やエントロピ符号化部26は、それらの機能を示す機能ブロックである。
プロセッサ1の外部より供給される原画像51は、データ転送レートが低い外部バスを介して、矢印61のように、内部メモリ11に設けられた入力バッファ21に一旦格納される。入力バッファ21に格納された原画像51は、ウェーブレット変換部12の入力制御部22により、データ転送レートが高い内部バスを介して、矢印62のように読み出され、矢印63のようにフィルタ処理部23に供給される。フィルタ処理部23の水平分析フィルタ部31および垂直分析フィルタ部32は、それぞれ、水平方向または垂直方向にフィルタ処理を行い、入力データを低域成分と高域成分に分割する。このときフィルタ処理部23は、演算に使用するデータを内部メモリ11に設けられた途中計算バッファ25に一時的に保持させながら処理を行う。途中計算バッファ25へのデータ入出力は、途中計算バッファ制御部24を介して行われる。途中計算バッファ制御部24は、矢印64のように、データをフィルタ処理部23より取得すると、それを、内部バスを介して、矢印65のように途中計算バッファ25に供給し、保持させる。また、途中計算バッファ制御部24は、内部バスを介して、矢印66のように途中計算バッファ25より必要なデータを読み出し、それを、矢印67のようにフィルタ処理部23に供給する。
フィルタ処理部23は、生成した各分割レベルのHL成分、LH成分、およびHH成分、並びに最低域成分を、矢印68のように順次エントロピ符号化部26に供給する。エントロピ符号化部26は、供給される係数データを符号化し、生成した符号化データを、矢印69のように出力制御部27に供給する。出力制御部27は、その符号化データを、内部バスを介して、矢印70のように、内部メモリ11に設けられた出力バッファ28に供給し一時的に保持させる。そして、出力制御部27は、所定のタイミングで符号化データを出力バッファ28よりコードストリームとして出力させる。出力バッファ28より出力された符号化データは、符号化コードストリーム53として、外部バスを介して矢印71のようにプロセッサ1から出力される。
以上のように、従来の一般的な符号化処理においては、各処理を高速に実行するために、データを保持するのに内部メモリ11が利用される。
特開2008−022403号公報
しかしながら、内部メモリ11は、通常の場合外部メモリよりも高価であり、また、プロセッサ1内に設置面積を要するという特徴も有する。したがって、プロセッサ1の製造コストを低減させるために、内部メモリ11の容量は、一般的に外部メモリより小さく制限される。具体的には、外部メモリがギガバイト単位で構成されるのに対し、内部メモリは、多くても数メガバイト程度とされる場合が多い。例えば、Cellプロセッサ(登録商標)においては、1つのコアプロセッサに対し256キロバイトしか設けられていない。プログラム等も格納されるため、実際にデータ保持に利用可能な容量は、その半分程度となる場合も考えられる。
このように、内部メモリ11は、製造コストの観点から、容量拡大に限界がある。これに対して、取り扱われる画像は年々高解像度化している。ウェーブレット変換では、効率の良い省メモリ型のウェーブレット変換であるラインベース・ウェーブレット変換を使っても、"原画像の水平サイズ×垂直数ライン分×ウェーブレット変換分割レベル分"のメモリ容量が必要になる。したがって、画像の高解像度化に伴い、ウェーブレット変換において一時的に保持されるデータ量も増大する。そのため、内部メモリ11だけでは容量が不足し、外部メモリを利用する必要が生じてきた。
しかしながら、外部メモリの場合、安価に十分な容量を確保することは可能であるが、データの入出力に要する時間が、内部メモリ11を利用する場合に比べて大幅に増大する。すなわち、上述したようなウェーブレット変換やエントロピ符号化処理の時間が増大してしまう恐れがあった。
このような符号化処理を専用のハードウエアにより実現する場合も、上述した内部メモリ11のように高速なメモリをデータのバッファに用いるのが望ましいが、製造コストの観点から十分に容量を確保することは困難であることや、上述した外部メモリのように安価なメモリを用いた場合に処理速度が低下してしまうことは、上述した場合と同様である。
本発明はこのような問題を解決するためのものであり、データのバッファリングに高速のメモリと低速のメモリを併用し、かつ、計画的にバッファリングを行うことにより、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させ、高速な符号化処理または復号処理を安価に実現するものである。
本発明の第1の側面は、第1の記憶部と第2の記憶部を有し、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、所定の分割レベルまで、前記分析フィルタ処理結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返すフィルタ手段と、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第1の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第1の制御手段と、前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持させ、必要に応じて前記第2の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第2の制御手段とを備える情報処理装置である。
本発明の第1の側面はまた、情報処理装置の情報処理方法であって、前記情報処理装置は、第1の記憶部と、第2の記憶部とを備え、第1の制御手段は、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第1の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返し、第2の制御手段は、前記第1の所定回数行われた前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持させ、第3の制御手段は、前記分析フィルタ処理を前記第1の所定回数実行後、前記第2の記憶部に保持されている前記係数を読み出し、第4の制御手段は、前記第2の記憶部に保持されている前記係数を入力とし、前記分析フィルタ処理を、前記第1の記憶部に前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第2の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返す情報処理方法である。
本発明の第2の側面は、第1の記憶部と第2の記憶部を有し、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、1つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第1の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第1の制御手段と、前記合成フィルタ処理の演算結果として得られる、前記所定の分割レベルの係数を、前記第2の記憶部に保持させ、必要に応じて前記第2の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第2の制御手段とを備える情報処理装置である。
本発明の第2の側面はまた、情報処理装置の情報処理方法であって、前記情報処理装置は、第1の記憶部と、第2の記憶部とを備え、第1の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第1の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、1つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、第2の制御手段は、前記第1の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第2の記憶部に保持させ、第3の制御手段は、前記合成フィルタ処理を前記第1の所定回数実行後、前記第2の記憶部に保持されている前記係数を読み出し、第4の制御手段は、前記第2の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第1の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第2の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、1つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す情報処理方法である。
本発明の第1の側面においては、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理が、所定の分割レベルまで、分析フィルタ処理結果として得られる水平方向および垂直方向の低域成分の係数に対して再帰的に繰り返され、分析フィルタ処理の演算過程として得られる係数、および、分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、水平方向および垂直方向の低域成分の係数が、第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な第1の記憶部に、分割レベル毎に独立して保持され、必要に応じて第1の記憶部が保持している係数が読み出されて分析フィルタ処理に提供され、分析フィルタ処理の演算結果として得られる、所定の分割レベルの、水平方向および垂直方向の低域成分の係数が、第2の記憶部に保持され、必要に応じて第2の記憶部が保持している係数が読み出されて分析フィルタ処理に提供される。
本発明の第2の側面においては、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理が、合成フィルタ処理結果として得られる係数を1つ下位の分割レベルの水平方向および垂直方向の低域成分の係数として、再帰的に繰り返され、合成フィルタ処理の演算過程として得られる係数、および、合成フィルタ処理の演算結果として得られる、所定の分割レベル以外の係数が、第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な第1の記憶部に、分割レベル毎に独立して保持され、必要に応じて第1の記憶部が保持している係数が読み出されて合成フィルタ処理に提供され、合成フィルタ処理の演算結果として得られる所定の分割レベルの係数が第2の記憶部に保持され、必要に応じて第2の記憶部が保持している係数が読み出されて合成フィルタ処理に提供される。
本発明によれば、データの符号化または復号を行うことができる。特に、符号化処理および復号処理におけるハードウエア資源の利用効率を向上させることができる。
以下、発明を実施するための最良の形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(デバイス:符号化処理または復号処理を行うデバイスの構成例)
2.第2の実施の形態(符号化処理:内部メモリおよび外部メモリの使用を計画的に行う例)
3.第3の実施の形態(符号化処理:入出力バッファの構成例)
4.第4の実施の形態(復号処理:内部メモリおよび外部メモリの使用を計画的に行う例)
<1.第1の実施の形態>
[デバイスの構成例]
図2は、本発明を適用した符号化処理や復号処理を実行するデバイスの構成例を示すブロック図である。図2に示される情報処理システム100は、エンコーダやデコーダのソフトウエアプログラムが実行されるハードウエア資源の例である。
図2に示されるように、情報処理システム100は、エンコーダやデコーダを実現する情報処理装置101を有する。その情報処理装置101には、PCIバス(Peripheral Components Interconnect bus)102を介して各種装置が接続される。例えば、記憶装置103や、複数台のビデオテープレコーダ(VTR)であるVTR104−1乃至VTR104−Sが接続される。また、ユーザがこれらに対する操作入力を行うためのマウス105、キーボード106、並びに操作コントローラ107等も接続される。情報処理システム100は、これらの各装置により構成されるシステムであり、インストールされたプログラムによって、画像符号化処理や画像復号処理等を行うシステムである。
例えば情報処理システム100の情報処理装置101は、大容量の記憶装置103に記憶されている動画コンテンツを読み出して符号化し、得られた符号化データを記憶装置103に書き戻すことができるようになされている。また、例えば、情報処理装置101は、記憶装置103に記憶されている符号化データを読み出して復号し、得られた復号画像データ(動画コンテンツ)を記憶装置103に書き戻すことができるようになされている。さらに、情報処理装置101は、符号化処理により得られた符号化データや、復号処理により得られた復号画像データをVTR104−1乃至VTR104−Sを介してビデオテープに記録したりすることができるようにもなされている。また、情報処理装置101は、VTR104−1乃至VTR104−Sに装着されたビデオテープに記録された動画コンテンツを記憶装置103に取り込み得るようにもなされている。その際、情報処理装置101が、動画コンテンツを符号化するようにしてもよい。
情報処理装置101は、マイクロプロセッサ201、GPU(Graphics Processing Unit)202の他に、XDR(Extreme Data Rate)-RAM(Random Access Memory)203やサウスブリッジ204を有している。また、情報処理装置101は、HDD(Hard Disk Drive)205、USB(Universal Serial Bus)インタフェース(USB I/F)206、およびサウンド入出力コーデック207を有している。
GPU202は専用のバス211を介してマイクロプロセッサ201に接続される。XDR-RAM203は専用のバス212を介してマイクロプロセッサ201に接続される。サウスブリッジ204は、専用のバスを介してマイクロプロセッサ201のI/Oコントローラ244に接続される。このサウスブリッジ204には、HDD205、USBインタフェース206、および、サウンド入出力コーデック207も接続されている。このサウンド入出力コーデック207にはスピーカ221が接続されている。また、GPU202にはディスプレイ222が接続される。サウスブリッジ204には、さらに、PCIバス102を介して、マウス105、キーボード106、VTR104−1乃至VTR104−S、記憶装置103、並びに、操作コントローラ107が接続される。
マウス105およびキーボード106は、ユーザの操作入力を受け、PCIバス102およびサウスブリッジ204を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ201に供給する。記憶装置103およびVTR104−1乃至VTR104−Sは、所定のデータを記録または再生できるようになされている。PCIバス102にはさらに、必要に応じてドライブ108が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD205にインストールされる。
マイクロプロセッサ201は、OS(Operating System)等の基本プログラムを実行する汎用のメインCPUコア241を有する。また、メインCPUコア241には、共有バス245を介して複数(この場合8個)のRISC(Reduced Instruction Set Computer)タイプの信号処理プロセッサである、サブCPUコア242−1乃至サブCPUコア242−8が接続される。また、共有バス245には、例えば256[MByte]の容量を持つXDR-RAM203に対するメモリコントロールを行うメモリコントローラ243も接続される。さらに、共有バス245には、サウスブリッジ204との間でデータの入出力を管理するI/O(In/Out)コントローラ244も接続される。マイクロプロセッサ201は、これらの構成が1チップに集積された、マルチコア構成のプロセッサである。マイクロプロセッサ201のの動作周波数は、例えば4[GHz]である。
このマイクロプロセッサ201は、起動時、HDD205に格納された制御プログラムに基づき、HDD205に格納されている必要なアプリケーションプログラムを読み出してXDR-RAM203に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。また、マイクロプロセッサ201は、ソフトウエアを実行することにより符号化処理や復号処理を実現する。例えば、マイクロプロセッサ201は、エンコードの結果得られた符号化ストリームを、サウスブリッジ204を介してHDD205に供給して記憶させることができる。また、マイクロプロセッサ201は、例えば、デコードした結果得られる動画像コンテンツの再生映像を、GPU202へデータ転送し、ディスプレイ222に表示させることができる。
マイクロプロセッサ201内の各CPUコアの使用方法は任意であるが、例えば、メインCPUコア241が、画像符号化処理や画像復号処理の制御に関する処理を行い、8個のサブCPUコア242−1乃至サブCPUコア242−8がそれぞれ、符号化処理または復号処理を行う。このような情報処理システム100のマイクロプロセッサ201における8個のサブCPUコア242−1乃至サブCPUコア242−8のそれぞれには、キャッシュメモリが内蔵されている。つまり、8個のサブCPUコア242−1乃至サブCPUコア242−8は、それぞれ、各自の内部メモリであるキャッシュメモリと外部メモリであるXDR-RAM203の両方を利用することができる。
各キャッシュメモリは、サブCPUコア242−1乃至サブCPUコア242−8のそれぞれが独占的に使用することができ、かつ、共有バス245を介さずにデータの読み出しや書き込みを行うことができ、さらに、XDR-RAM203よりも高速に動作する。従って、キャッシュメモリは、XDR-RAM203よりも高速にデータの読み出しや書き込みが可能である。ただし、キャッシュメモリは、XDR-RAM203と比べて容量当たりの単価が高く、かつ、その容量が小さい。したがって、以下においては、キャッシュメモリの容量は有限であるとし、符号化処理および復号処理において、その有限の容量をより効率よく活用する方法について説明する。
なお、実際には、XDR-RAM203の容量も有限である。ただし、XDR-RAM203の場合、符号化処理や復号処理において必要な空き容量に比べて圧倒的に大きな容量を安価に実現することができるので、以下においてはXDR-RAM203の容量は十分に大きい(容量の制限を特に受けない)ものとして説明する。
なお、以下において、サブCPUコア242−1乃至サブCPUコア242−8を互いに区別して説明する必要の無い場合、サブCPUコア242と称する。このサブCPUコア242の数は、図2においては8個設けられるように示されているが、実際には任意である。各サブCPUコア242には、事前に、メインCPUコア241により符号化処理や復号処理を行うためのソフトウエアプログラムが割り当てられる(キャッシュメモリにロードされる)。各サブCPUコア242は、割り当てられたソフトウエアプログラムを実行することにより、符号化処理や復号処理を実現する。
<2.第2の実施の形態>
[エンコーダの構成例]
図3は、このようなサブCPUコア242において実現されるエンコーダ(符号化装置)の構成例を示すブロック図である。
図3において、プロセッサ301は、他と独立して動作する1つの演算処理部であり、図2のマイクロプロセッサ201におけるサブCPUコア242の1つに対応する。図3に示されるように、プロセッサ301は、内部メモリ311を有する。この内部メモリ311は、例えばSRAM(Static Random Access Memory)により構成され、プロセッサ301に内蔵される。内部メモリ311は、後述する外部メモリ383に対して、例えば、回路規模が大きく実装密度をあげにくい、消費電力が大きい、高速動作が可能、および、読み書きの手順が簡潔であるといった特徴を有する。つまり、内部メモリ311は、外部メモリ383に比べて、容量が小さく、高速にデータの読み出しや書き込みを行うことができる(内部メモリ311は、外部メモリ383より小容量かつ高速にアクセス可能である)。
この内部メモリ311の容量は任意であるが、容量を増大させるほど、プロセッサ301のコストは増大する。以下においては、256キロバイトとして説明する。ただし、内部メモリ311には、プロセッサ301において処理されるデータの他に、プロセッサ301において実行されるプログラムも保持される。したがって、データ保持に利用可能な容量はさらに少なくなる。以下においては、データの保持に利用可能な内部メモリ311の空き容量が、全体の半分の128キロバイトであるものとして説明する。
プロセッサ301は、内部メモリ311に保持されるプログラムを実行することにより、ウェーブレット変換部312、エントロピ符号化部326、および出力制御部327の機能を実現する。ウェーブレット変換部312は、プロセッサ301の外部より入力されるベースバンドの画像データに対してウェーブレット変換を行い、所定の分割レベルまで低域成分と広域成分を分割する。ウェーブレット変換は、入力データを低域成分と高域成分に分割するフィルタ処理を水平方向と垂直方向の両方に対して行う処理である。ウェーブレット変換処理においては、このようなフィルタ処理が、そのフィルタ処理により得られた水平方向および垂直方向に低域な成分(LL成分)に対して再帰的に繰り返される。図4は、ウェーブレット変換の様子を説明するための模式図である。図4の例に示されるように、ベースバンドの原画像351は、ウェーブレット変換により(LL成分に対してフィルタ処理が再帰的に繰り返されることにより)、所定の分割レベルまで低域成分と広域成分に分割されたウェーブレット変換係数352に変換される。ウェーブレット変換部312は、このようなフィルタ処理を行うフィルタ処理部323を有する。フィルタ処理部323は、水平分析フィルタ部331と垂直分析フィルタ部332を有する。
水平分析フィルタ部331は、入力画像データを画面水平方向に低域な成分と高域な成分に分割する水平分析フィルタ処理を行う。図5および図6は水平方向および垂直方向の分析フィルタ処理の様子の例を説明する模式図である。図5の左に示されるように、ベースバンドの原画像は、ライン単位に入力され、水平方向のフィルタリングを実行するのに必要なMコラムのサンプルが用意でき次第、水平分析フィルタリングが実行される。このように水平フィルタリングが行われると、画像データは、図5の右に示されるように、水平方向に低域な成分(L)と高域な成分(H)とに分割される(水平分析フィルタ処理結果352A)。水平フィルタリング処理は、各ラインについて行われる。
垂直分析フィルタ部332は、この水平分析フィルタ処理結果352Aを画面垂直方向に低域な成分と高域な成分に分割する垂直分析フィルタ処理を行う。水平分析フィルタ処理がライン毎に行われ、垂直方向のフィルタリングを実行するのに必要なNラインのサンプル(水平分析フィルタ処理結果352A)が用意でき次第(図5右)、垂直分析フィルタ部332により垂直分析フィルタリングが実行される。この垂直分析フィルタリングは、水平方向の低域成分と高域成分のそれぞれについて行われる。その結果、水平分析フィルタ処理結果は、図6の左に示されるように、水平方向および垂直方向の両方に低域な成分(LL成分)、水平方向に高域で垂直方向に低域な成分(HL成分)、水平方向に低域で垂直方向に高域な成分(LH成分)、および、水平方向および垂直方向の両方に高域な成分(HH成分)の4つの成分のウェーブレット変換係数(以下、係数と称する)に分割される(分割レベル1の係数352B)。
水平分析フィルタ部331および垂直分析フィルタ部332は、次に、この分割レベル1の係数352Bの、水平方向および垂直方向の低域成分(LL成分)に対して、分析フィルタ処理を行い、図6の左に示されるように、分割レベル2の係数352C(LLLL成分、LLHL成分、LLLH成分、およびLLHH成分)を生成する。このように、水平分析フィルタ部331および垂直分析フィルタ部332は、水平方向および垂直方向の両方に低域なLL成分に対して分析フィルタ処理を再帰的に繰り返し、原画像351を所望の分割レベルまで分割する。
以上の2つのフィルタ処理は、図7に示されるように、水平フィルタリング、垂直フィルタリングの順に行われる。なお、図8に示されるように、フィルタ処理を垂直フィルタリング、水平フィルタリングの順に行うようにしても、得られる結果(係数データ)は図7の場合と同一である(完全に一致する)。つまり、水平フィルタリングと垂直フィルタリングのどちらを先に行うようにしてもよい。ただし、一般的に、原画像351の画像データは、時系列順にピクチャ毎に供給される。各ピクチャは、ライン毎に上から下に向かう順に供給される。各ラインは左から右に向かう順に画素毎に供給される。したがって、入力バッファ321に1ライン蓄積される毎に処理することができるので、水平フィルタ処理を先に行う方が入力バッファ321の蓄積量(遅延時間)を低減させることができる。
なお、図5および図6に示されるように、ベースバンドの原画像351のNライン分の画像データから生成される分割レベル1の係数のライン数はN/2となる。さらにそれをフィルタ処理して生成される分割レベル2の係数のライン数は、N/4となる。このようにウェーブレット変換を繰り返す毎に(分割レベルが1つ進む毎に)、生成されるライン数は2のべき乗分の1の大きさで小さくなっていく。最終分割レベルの係数を1ライン生成するために必要なベースバンドのライン数(Nの最小値)は、そのフィルタリング処理を何回繰り返すか(最終分割レベルの階層数)によって決められる。通常、この階層数は予め定められる。この、最終分割レベルの係数を1ライン生成するために必要なベースバンドの画像データ(複数ライン分の画像データ)、または、各階層の係数をまとめてラインブロック(またはプレシンクト)と称する。図9は、そのラインブロックの様子を示す模式図である。図9において斜線で示される部分が1ラインブロックを構成する係数である。図9に示されるように、ラインブロックは、最終分割レベルである分割レベル3の各成分の1ライン分の係数、分割レベル2の各成分の2ライン分の係数、並びに、分割レベル1の各成分の4ライン分の係数により構成される。内部メモリ311に蓄積するデータ量と遅延時間を低減するためには、より少ないデータ量毎にフィルタ処理を行うのが望ましい。そこで、ウェーブレット変換部312は、このラインブロック単位にウェーブレット変換処理を行う。
水平分析フィルタ部331および垂直分析フィルタ部332は、フィルタリング演算を効率よく行うために、実際にはリフティング演算により行う。図10はJPEG2000 Part-1でも採用されているドビッシー型の9×7実数精度フィルタをリフティング表現した図である。図中、最上部の一列が入力信号列である。データ処理は画面上から下方向に流れ、以下の4つのステップを経由して、Step3において高域係数、Step4において低域係数が出力される。
step1:di1=di0+α(si0+si+10) ・・・(1)
step2:si1=si0+β(di-11+di1) ・・・(2)
step3:di2=di1+γ(si1+si+11) ・・・(3)
step4:si2=si1+δ(di-12+di2) ・・・(4)
(α=-1.586134342,β=-0.05298011857,γ=0.8829110755,δ=0.4435068520)
上記より、Step1からStep3の途中の係数は、Step4が終了して低域係数が出力されるまでの間、記憶保持されなければならず、これが図3の途中計算バッファ325に記録される。そして、この係数は、ウェーブレット変換の演算を行う過程で、必要に応じて途中計算バッファ325から係数を読みだされて、次のStepの演算に利用される。
図11は、9×7フィルタのリフティング演算(垂直方向)と途中計算バッファ内での演算過程を具体化した図である。図11に示されるように、ライン6→ライン5→ライン4→ライン3→ライン2→ライン1の順番で、上から下方向にライン入力があるとき、高域成分の係数はStep3で出力され、低域成分の係数はStep4で出力される。このとき、低域成分の係数は、図11に示されるように、ライン1が入力されて初めて出力される。このように9×7フィルタのリフティング演算を1通り行うためには、最低6ラインの入力が必要になる。また、次の低域成分の係数を出力するためには、今回算出した各係数(途中の係数も含む)と、2ライン分の入力が必要になる。なお、水平方向のフィルタ処理も同様に9×7フィルタを用いたリフティング演算により行うことができる。その場合、ラインとして説明したところをコラムと置き換えることにより、上述の説明を適用することができる。
図3に戻り、ウェーブレット変換部312は、入力制御部322、途中計算バッファ制御部324、および外部メモリ入出力制御部381を有する。入力制御部322は、フィルタ処理部323へのデータ入力を制御する。途中計算バッファ制御部324は、フィルタ処理部323により生成されるフィルタ処理結果や処理途中の係数の入出力を制御する。途中計算バッファ制御部324は、次回以降のフィルタ処理において再利用されるデータの保持を制御する。外部メモリ入出力制御部381は、所定のフィルタ処理の結果の保持を制御する。エントロピ符号化部326は、フィルタ処理部323より供給されるフィルタ処理結果の係数を符号化して符号化データを生成する。出力制御部327は、エントロピ符号化部326において生成される符号化データのプロセッサ301からの出力を制御する。
内部メモリ311には、ウェーブレット変換部312に入力される画像データ、フィルタ処理部323のフィルタ処理の処理結果や処理途中の係数データ、およびエントロピ符号化部326において生成された符号化データ等が一時的に保持される。内部メモリ311には、これらのデータを保持するために、入力バッファ321、途中計算バッファ325、入出力バッファ382、および出力バッファ328が形成される。入力バッファ321は、ウェーブレット変換部312に入力される前の画像データを保持する。入力バッファ321の読み出しは入力制御部322に制御される。途中計算バッファ325は、フィルタ処理結果または途中の係数データのうち、次回以降のフィルタ処理に使用される係数データを、分割レベル毎に独立して保持する。つまり、途中計算バッファ325は、分析フィルタ処理の演算過程として得られる係数、または、後述する第1の目標分割レベルより下位(第1の目標分割レベルを含む)の分析フィルタ処理の演算結果として得られるLL成分の係数を、その分割レベル毎に保持する。その保持している係数は、必要に応じて読み出され、次回以降のフィルタ処理に提供される。途中計算バッファ325のデータの入出力は、途中計算バッファ制御部324により制御される。なお、この途中計算バッファ325は、外部メモリ383に比べて小容量であり、かつ、高速にアクセス可能である。入出力バッファ382は、フィルタ処理結果であり、次回のフィルタ処理に利用する係数データのうち、外部メモリ383に保持させる係数データを保持する。入出力バッファ382のデータの入出力は、外部メモリ入出力制御部381に制御される。出力バッファ328は、エントロピ符号化部326により生成された符号化データを保持する。出力バッファ328のデータの入出力は、出力制御部327により制御される。
外部メモリ383は、プロセッサ301とは別に形成される記憶領域であり、例えば、図2のXDR-RAM203に対応する。外部メモリ383は、上述した内部メモリ311に対して、例えば、回路規模が小さく実装密度を上げやすい、消費電力が小さい、動作が低速、および、読み書きの手順が複雑であるといった特徴を有する。つまり、外部メモリ383は、内部メモリ311に比べて、動作が低速であるものの、大容量のデータを保持することができる。
[動作説明]
次に、図3に示されるエンコーダの動作について説明する。例えば、XDR-RAM203等の外部メモリ383や、HDD205に記憶されている原画像351は、ウェーブレット変換処理の処理単位ごとに読み出され、共有バス245を介して、矢印361に示されるように入力バッファ321に供給され、一時的に保持される。入力制御部322は、入力バッファ321に所定ライン数(例えば1ライン)の画像データが蓄積されると、矢印362に示されるようにそれを読み出し、矢印363に示されるようにフィルタ処理部323に供給する。
水平分析フィルタ部331は、入力された原画像351に対して水平分析フィルタリングを行う。途中計算バッファ制御部324は、その水平分析フィルタリング結果(係数)を、適宜、矢印364のように取得し、矢印365のように途中計算バッファ325に保持させる。所定ライン数(例えば6ライン)の係数が蓄積されると、途中計算バッファ制御部324は、矢印366のように読み出し、矢印367のようにフィルタ処理部323に供給する。垂直分析フィルタ部332は、その係数に対して垂直分析フィルタリングを行う。
水平分析フィルタリングと垂直分析フィルタリングが1回ずつ行われ、LL成分、HL成分、LH成分、およびHH成分の、4つのサブバンドが生成されると、フィルタ処理部323は、算出したフィルタリング結果のうち、HL成分、LH成分、およびHH成分を、矢印368に示されるようにエントロピ符号化部326に供給する。エントロピ符号化部326は、供給された係数を順次符号化し、生成した符号化データを、矢印369に示されるように出力制御部327に供給する。出力制御部327は、取得した符号化データを矢印370に示されるように、出力バッファ328に供給して一時的に保持させる。出力制御部327は、出力バッファ328を制御し、所定のタイミングで出力バッファ328に保持されている符号化データを、矢印371に示されるように、符号化コードストリーム353としてプロセッサ301の外部(例えばXDR-RAM203やHDD205等)に出力させる。
フィルタ処理部323は、目標の分割レベルに達するまで、LL成分の係数に対してフィルタ処理を再帰的に繰り返す。そこで、途中計算バッファ制御部324は、算出されたLL成分の係数を、矢印364に示されるようにフィルタ処理部323より取得し、矢印365に示されるように途中計算バッファ325に保持させる。また、垂直分析フィルタリングにおいて生成されたリフティング演算途中の係数の一部は、次のラインに対する垂直分析フィルタリングにおいても使用される。そこで、途中計算バッファ制御部324は、算出されたその他の係数(LL成分、HL成分、LH成分、およびHH成分のいずれでもないリフティング演算途中の係数)を、矢印364に示されるようにフィルタ処理部323より取得し、矢印365に示されるように途中計算バッファ325に保持させる。
途中計算バッファ制御部324は、フィルタ処理部323による次の分割レベルを対象とするフィルタ処理のために、途中計算バッファ325に保持されている係数を、適宜、矢印366のように読み出し、矢印367に示されるようにフィルタ処理部323に供給する。フィルタ処理部323は、処理対象分割レベルを1つ上位のレベルに更新し、途中計算バッファ制御部324により途中計算バッファ325より読み出されたLL成分を入力データとして、水平分析フィルタリングや垂直分析フィルタリングを行う。フィルタ処理部323は、1つ目の目標分割レベル(第1の目標分割レベル)に達するまで、各分割レベルのLL成分に対して、このようにフィルタ処理を再帰的に繰り返す。第1の目標分割レベルのLL成分は、途中計算バッファ325ではなく外部メモリ383に保持される。外部メモリ入出力制御部381は、第1の目標分割レベルのLL成分の係数が生成されると、それを、矢印391に示されるようにフィルタ処理部323より取得し、矢印392および矢印393に示されるように、入出力バッファ382を介して外部メモリ383に保持させる。
そして、フィルタ処理の処理対象レベルが第1の目標分割レベルになると、外部メモリ入出力制御部381は、外部メモリ383に保持されているLL成分の係数を、矢印394および矢印395に示されるように入出力バッファ382を介して読み出し、矢印396に示されるようにフィルタ処理部323に供給する。つまり、水平分析フィルタ部331は、外部メモリ383より読み出された係数に対して水平分析フィルタリングを行う。フィルタ処理部323は、分割レベルが2つ目の目標分割レベル(第2の目標分割レベル)に達するまで、上述したように、各分割レベルのLL成分に対してフィルタ処理を再帰的に繰り返す。このとき、生成されるLL成分の係数や途中の係数は、途中計算バッファ制御部324の制御によって、適宜、途中計算バッファ325に保持され、必要に応じて利用される。
以上のようにして生成された第2の目標分割レベルの各成分の係数は、矢印368に示されるようにエントロピ符号化部326に供給され、符号化される。そして、その符号化により生成された符号化データは、矢印369に示されるように出力制御部327に供給され、矢印370および矢印371に示されるように出力バッファ328を介してプロセッサ301の外部(例えばXDR-RAM203やHDD205等)に、符号化コードストリーム353として出力される。
仮に、従来のように、ウェーブレット変換処理において生成される、各分割レベルのLL成分の係数や、次回のフィルタリングに必要な途中の係数を、全て途中計算バッファ325に保持させるとすると、途中計算バッファ325には、図12に示されるように係数が保持される。つまり、途中計算バッファ325に保持される係数の垂直ライン数は、各分割レベルにおいて固定値(例えば6)であるが、水平サイズは、分割レベルが1つ進むごとに、ウェーブレット変換の特徴から2分の1ずつ小さくなる。例えば、原画像の水平サイズが4096画素の場合、分割レベル1の水平サイズは4096画素となり、分割レベル2の水平サイズは2048画素となり、分割レベル3の水平サイズは1024画素となる。したがって、途中計算バッファ325の必要メモリ量は、以下の式(5)のようになる。なお、ウェーブレット変換の第2の目標分割レベルは4とする。
4096(画素)×(1+1/2+1/4+1/8)×6(ライン)×4(バイト)
=184K(バイト) ・・・(5)
なお、4バイト(=32ビット)は、ウェーブレット変換係数の精度として必要なビット数である。つまり、例えば、内部メモリ311の容量が256Kバイトで、そのうち半分がプログラムや他のデータで使用され、空き容量が128Kバイトであるとすると、従来の方法では、途中計算バッファ325では容量が不足する。この場合、容量不足分の係数は外部メモリ383に保持させる必要があるため、この係数保持を無計画に行うと、外部メモリ383へのアクセス数が増大し、遅延時間が不要に増大する恐れがある。
例えば、大容量の外部メモリ383を単純に優先的に利用するようにすると、途中計算バッファ325は使用されず、処理速度が不要に低下してしまう恐れがあった。逆に、高速に読み書き可能な途中計算バッファ325を単純に優先的に使用するようにすると、分割レベルの深い階層において外部メモリ383が使用されるので、アクセス頻度が増大し、処理速度が不要に低下してしまう恐れがあった。
そこで、図3に示される本発明を適用したエンコーダは、所定の階層の分割レベル(第1の目標分割レベル)を予め定め、その予め定められた第1の目標分割レベルのLL成分のみを外部メモリ383に保持させるようにする。例えば、この第1の目標分割レベルを分割レベル1とし、図13Aに示されるように、1回フィルタ処理を行い、生成された1LL成分を外部メモリ383に保持させるようにする。そして、次の分割レベルのフィルタ処理は、図13Bに示されるように、外部メモリ383より読み出された1LL成分に対して行われるようにする。それ以降の係数(保持する必要がある係数)は、途中計算バッファ325に保持させるようにする。
つまり、第1の目標分割レベルの1つ下位の分割レベルの係数まで途中計算バッファ325に保持し、第1の目標分割レベルのLL成分を外部メモリ383に一時的に退避させる。第1の目標分割レベルの1つ下位のフィルタ処理が完了すると、途中計算バッファ325に保持される下位の階層の係数が不要になる。そこで、外部メモリ383に保持される第1の目標分割レベルのLL成分を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ325に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ325に保持させることができる。つまり、外部メモリ383を用いることにより、途中計算バッファ325を、時間的に2回に分けて利用する。
この方法を用いる場合の、途中計算バッファ325に必要なメモリ量について、計算する。なお、第1の目標分割レベルより前のウェーブレット変換をステップ1とし、第1の目標分割レベル以降のウェーブレット変換をステップ2とする。なお、第1の目標分割レベルを分割レベル1とし、第2の目標分割レベルを分割レベル3とする。
ステップ1:
4,096(水平サイズ)×1×6(ライン)×4(バイト)
=98K(バイト) ・・・(6)
ステップ2:
2,048(1分割後の水平サイズ)×(1+0.5+0.25)×6(ライン)×4(バイト)
=86K(バイト) ・・・(7)
ステップ1とステップ2は時間的にずれているので、この場合、途中計算バッファ325の容量は、98Kバイト以上あればよい。つまり、ウェーブレット変換処理全体において、途中計算バッファ325に、途中計算バッファ325の記憶容量以上の容量の係数を保持させることができる。
以上のように制御することにより、高速に読み書き可能な途中計算バッファ325をより多く利用し、外部メモリ383の利用を必要最小限に抑制することができるので、外部メモリ383を利用することによる処理時間の増大を抑制することができる。すなわち、図3に示されるエンコーダは、よりハードウエア資源をより有効に利用することができ、ウェーブレット変換を用いた符号化処理をより容易かつより高速に行うことができる。このように、図3に示されるエンコーダは、符号化処理全体の処理時間を低減させることができるとともに、コストの増大を抑制することができる。
[処理の流れの説明]
次に以上のような符号化処理の流れの例を、図14のフローチャートを参照して説明する。図3のエンコーダは、この符号化処理を、原画像351のラインブロック毎(所定ライン数毎)に実行する。
符号化処理が開始されると、ウェーブレット変換部312は、ステップS101において、入力バッファ321に入力された原画像351に対して水平分析フィルタリングを行う第1水平分析フィルタ処理を行う。第1水平分析フィルタ処理の詳細については後述する。第1水平分析フィルタ処理が終了すると、ウェーブレット変換部312は、ステップS102において、処理後の分割レベルが第1の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第1の目標分割レベルの1つ下位でなく、フィルタ処理により第1の目標分割レベルの係数が生成されないと判定された場合、処理はステップS103に進む。
ステップS103において、ウェーブレット変換部312、エントロピ符号化部326、および出力制御部327は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成したLL成分を途中計算バッファ325に保持させるとともに、その他の成分を符号化して出力する処理である第1垂直分析フィルタ符号化処理を行う。第1垂直分析フィルタ符号化処理の詳細については後述する。第1垂直分析フィルタ符号化処理が終了すると、ウェーブレット変換部312は、ステップS104において、処理対象分割レベルを1つ上位の分割レベルに更新し、内部メモリ311の途中計算バッファ325に保持したLL成分を入力データとする。ウェーブレット変換部312は、ステップS105において、新たな処理対象分割レベルに対して水平分析フィルタリングを行う第2水平分析フィルタ処理を行う。すなわち、ウェーブレット変換部312は、前回のフィルタ処理において途中計算バッファ325に保持されるLL成分に対して水平分析フィルタリングを行う。第2水平分析フィルタ処理の詳細については後述する。
ステップS105の処理が終了すると、処理は、ステップS102に戻る。つまり、ウェーブレット変換部312は、ステップS102において処理後の分割レベルが第1の目標分割レベルであると判定されるまで、ステップS102乃至ステップS105の処理を繰り返し実行する。そして、ステップS102において、現在の処理対象分割レベルが第1の目標分割レベルの1つ下位であり、フィルタ処理により第1の目標分割レベルの係数が生成されると判定された場合、処理はステップS106に進む
ステップS106において、ウェーブレット変換部312、エントロピ符号化部326、および出力制御部327は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成した第1目標分割レベルのLL成分を外部メモリ383に保持させるとともに、その他の成分を符号化して出力する処理である第2垂直分析フィルタ符号化処理を行う。第2垂直分析フィルタ符号化処理の詳細については後述する。ここまでのステップS101乃至ステップS106が、上述した「ステップ1」の処理として実行される。第1目標分割レベルのLL成分が外部メモリ383に蓄積され、第2垂直分析フィルタ符号化処理が終了すると、処理はステップS111に進む。
ステップS111において、ウェーブレット変換部312は、処理対象分割レベルを1つ上位の分割レベルに更新し、外部メモリ383に保持したLL成分を入力データとする。ウェーブレット変換部312は、ステップS112において、外部メモリ383より読み出された第1目標分割レベルのLL成分に対して水平分析フィルタリングを行う第3水平分析フィルタ処理を行う。第3水平分析フィルタ処理の詳細については後述する。
ステップS113において、ウェーブレット変換部312は、処理後の分割レベルが第2の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第2の目標分割レベルの1つ下位でなく、フィルタ処理により第2の目標分割レベルの係数が生成されないと判定された場合、処理はステップS114に進む。ステップS114において、ウェーブレット変換部312、エントロピ符号化部326、および出力制御部327は、第1垂直分析フィルタ符号化処理を行う。ステップS115において、ウェーブレット変換部312は、処理対象分割レベルを1つ上位の分割レベルに更新し、内部メモリ311の途中計算バッファ325に保持したLL成分を入力データとする。ウェーブレット変換部312は、ステップS116において、第2水平分析フィルタ処理を行う。
ステップS116の処理が終了すると、処理は、ステップS113に戻る。つまり、ウェーブレット変換部312は、ステップS113において処理後の分割レベルが第2の目標分割レベルであると判定されるまで、ステップS113乃至ステップS116の処理を繰り返し実行する。そして、ステップS113において、現在の処理対象分割レベルが第2の目標分割レベルの1つ下位であり、フィルタ処理により第2の目標分割レベルの係数が生成されると判定された場合、処理はステップS117に進む。
ステップS117において、ウェーブレット変換部312、エントロピ符号化部326、および出力制御部327は、水平分析フィルタ処理結果に対して垂直分析フィルタリングを行い、生成した第2目標分割レベルの各成分を符号化して出力する処理である第3垂直分析フィルタ符号化処理を行う。第3垂直分析フィルタ符号化処理の詳細については後述する。ここまでのステップS111乃至ステップS117が、上述した「ステップ2」の処理として実行される。
以上のようにステップS117の処理が終了されると、符号化処理が終了される。このように、外部メモリ383を利用して、符号化処理をステップ1とステップ2の2つに分けて行うようにしたので、図3のエンコーダは、符号化処理全体において、途中計算バッファ325に記憶容量以上の情報を保持させることができ、ハードウエア資源の利用効率を向上させることができる。
次に、図15のフローチャートを参照して、第1水平分析フィルタ処理の流れの詳細な例を説明する。第1水平分析フィルタ処理が開始されると、入力制御部322は、ステップS131において、内部メモリ311の入力バッファ321から処理対象ラインの画像データを入力する。途中計算バッファ制御部324は、ステップS132において、内部メモリ311の途中計算バッファ325から、水平分析フィルタリングに必要なその他の係数を読み出す。フィルタ処理に必要な係数が揃うと、水平分析フィルタ部331は、ステップS133において、ステップS131およびステップS132において得られた係数に対して水平分析フィルタリングを行う。ステップS134において、途中計算バッファ制御部324は、その水平分析フィルタリングの処理結果(分析結果)の係数を内部メモリ311の途中計算バッファ325に保持させる。ステップS135において、途中計算バッファ制御部324は、次回に必要なその他の係数を内部メモリの途中計算バッファ325に保持させる。ステップS136において、ウェーブレット変換部312は、内部メモリの入力バッファ321に保持される画像データ(ラインブロック(例えば6ライン分の画像データ))を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS131に戻し、それ以降の処理を繰り返す。
すなわち、ウェーブレット変換部312は、入力バッファ321に保持されるラインブロック毎の原画像351に対して、ステップS131乃至ステップS136の処理を繰り返し実行することにより、1ラインずつ水平分析フィルタリングを行う。このステップS131乃至ステップS136の処理は、任意のタイミングで行われるようにしてよいが、入力バッファ321の容量をより少なくし、符号化処理時間をより短縮させるために、入力バッファ321に画像データが1ライン分蓄積される毎に行われるようにするのが望ましい。ステップS136において、内部メモリ311の入力バッファ321に保持される画像データ(ラインブロック)を全て処理したと判定された場合、第1水平分析フィルタ処理が終了され、処理は図14のステップS101に戻され、ステップS102に進められる。
次に、図16のフローチャートを参照して、第1垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第1垂直分析フィルタ符号化処理が開始されると、途中計算バッファ制御部324は、ステップS151において、内部メモリ311の途中計算バッファ325から処理対象分割レベルにおける水平分析フィルタリング結果の係数を処理単位ライン数(例えば6ライン)分読み出す。また、途中計算バッファ制御部324は、ステップS152において、内部メモリ311の途中計算バッファ325から垂直分析フィルタリングに必要なその他の係数を読み出す。ステップS153において、垂直分析フィルタ部332は、ステップS151およびステップS152の処理により読み出された各係数に対して垂直分析フィルタリングを行う。ステップS154において、途中計算バッファ制御部324は、垂直分析フィルタリング結果のうち、LL成分の係数を内部メモリ311の途中計算バッファ325に保持させる。ステップS155において、エントロピ符号化部326は、垂直分析フィルタリング結果のうち、HL成分、LH成分、およびHH成分の係数をエントロピ符号化する。ステップS156において、出力制御部327は、ステップS155において生成された符号化データを、出力バッファ328を介して、符号化コードストリーム353として、プロセッサ301より出力する。ステップS157において、途中計算バッファ制御部324は、次回のフィルタ処理に必要な係数(その他の係数)を内部メモリ311の途中計算バッファ325に保持させる。
ステップS158において、ウェーブレット変換部312は、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS151に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部312は、途中計算バッファ325に保持される、所定量(例えば6ライン分)の処理対象分割レベルの係数に対して、ステップS151乃至ステップS158の処理を繰り返し実行する。したがって、途中計算バッファ325の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ325に蓄積され次第、ステップS151乃至ステップS158の処理が行われるようにするのが望ましい。
ステップS158において、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は図14に戻される。図14のステップS106において実行された第1垂直分析フィルタ符号化処理の場合、処理は、図14のステップS106に戻され、ステップS111に進められる。また、図14のステップS114において実行された第1垂直分析フィルタ符号化処理の場合、処理は、図14のステップS114に戻され、ステップS115に進められる。
次に、図17のフローチャートを参照して、第2水平分析フィルタ処理の流れの詳細な例を説明する。第2水平分析フィルタ処理の処理内容は、基本的に第1水平分析フィルタ処理と同様であるが、第2水平分析フィルタ処理は、途中計算バッファ325に保持される、1つ下位の分割レベルにおいて行われた垂直分析フィルタ処理結果のLL成分に対して行われる。したがって、第2水平分析フィルタ処理が開始されると、途中計算バッファ制御部324は、ステップS171において、内部メモリ311の途中計算バッファ325から、処理対象分割レベルの処理対象ラインの係数を読み出し、フィルタ処理部323に入力する。ステップS172乃至ステップS175の各処理は、図15のステップS132乃至ステップS135の各処理と同様に行われる。
ただし、ステップS173の水平分析フィルタリングは、ステップS171およびステップS172において途中計算バッファ325より読み出された係数に対して行われる。この係数は、垂直分析フィルタリング結果であるので、ステップS171乃至ステップS176の各処理は、処理対象ラインブロックの処理対象分割レベルの係数が途中計算バッファ325に全て保持されてから実行される。
ステップS176において、ウェーブレット変換部312は、内部メモリの途中計算バッファ325に保持される、処理対象ラインブロックの処理対象分割レベルの係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS171に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部312は、途中計算バッファ325に保持される処理対象ラインブロックの処理対象分割レベルの係数に対して、ステップS171乃至ステップS176の処理を繰り返し実行することにより、1ラインずつ水平分析フィルタリングを行う。ステップS176において、途中計算バッファ325に保持される処理対象分割レベルの係数(処理対象ラインブロックの係数)を全て処理したと判定された場合、第2水平分析フィルタ処理が終了され、処理は図14に戻される。図14のステップS105において実行された第2水平分析フィルタ処理の場合、処理は、図14のステップS105に戻され、さらにステップS102に戻される。また、図14のステップS116において実行された第2水平分析フィルタ処理の場合、処理は、図14のステップS116に戻され、さらにステップS113に戻される。
次に、図18のフローチャートを参照して、第2垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第2垂直分析フィルタ符号化処理の処理内容は、基本的に第1垂直分析フィルタ符号化処理と同様であるが、第2垂直分析フィルタ符号化処理は、生成した分析結果のLL成分を外部メモリ383に蓄積する。したがって、ウェーブレット変換部312は、図18のステップS191乃至ステップS193の各処理を、図16のステップS151乃至ステップS153の各処理と同様に行い、第1垂直分析フィルタ符号化処理の場合と同様に垂直分析フィルタリングを行う。
ステップS194において、外部メモリ入出力制御部381は、ステップS193において行われた垂直分析フィルタリング結果のLL成分を内部メモリ311の入出力バッファ382に保持させる。ステップS195において、外部メモリ入出力制御部381は、ステップS194において保持させた内部メモリ311の入出力バッファ382のLL成分を、外部メモリ383に書き込み、保持させる。LL成分以外の係数については、第1垂直分析フィルタ符号化処理の場合と同様に処理される。したがって、エントロピ符号化部326は、図18のステップS196の処理を図16のステップS155の場合と同様に行う。出力制御部327は、図18のステップS197の処理を図16のステップS156の場合と同様に行う。途中計算バッファ制御部324は、図18のステップS198の処理を図16のステップS157の場合と同様に行う。
図18のステップS199において、ウェーブレット変換部312は、図16のステップS158の場合と同様に、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS191に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部312は、途中計算バッファ325に保持される、所定量(例えば6ライン分)の処理対象分割レベルの係数に対して、ステップS191乃至ステップS199の処理を繰り返し実行する。したがって、途中計算バッファ325の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ325に蓄積され次第、ステップS191乃至ステップS199の処理が行われるようにするのが望ましい。ステップS199において、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は、図14のステップS106に戻され、ステップS111に進められる。
次に、図19のフローチャートを参照して、第3水平分析フィルタ処理の流れの詳細な例を説明する。第3水平分析フィルタ処理の処理内容は、基本的に第1水平分析フィルタ処理と同様であるが、第3水平分析フィルタ処理は、外部メモリ383に保持される、1つ下位の分割レベルにおいて行われた垂直分析フィルタ処理結果のLL成分に対して行われる。したがって、第3水平分析フィルタ処理が開始されると、外部メモリ入出力制御部381は、ステップS211において、外部メモリ383から、処理対象分割レベルの処理対象ラインの係数を読み出し、内部メモリ311の入出力バッファ382に保持させる。外部メモリ入出力制御部381は、ステップS212において、ステップS211において保持させた係数を、内部メモリ311の入出力バッファ382より読み出し、フィルタ処理部323に入力する。図19のステップS213乃至ステップS216の各処理は、図15のステップS132乃至ステップS135の各処理と同様に行われる。
ただし、ステップS214の水平分析フィルタリングは、ステップS211およびステップS212において外部メモリより読み出された係数、並びに、ステップS213において途中計算バッファ325より読み出された係数に対して行われる。この係数は、垂直分析フィルタリング結果であるので、ステップS211乃至ステップS217の各処理は、処理対象ラインブロックの処理対象分割レベルの係数が外部メモリ383に全て保持されてから実行される。
ステップS217において、ウェーブレット変換部312は、外部メモリ383に保持される、処理対象ラインブロックの処理対象分割レベルの係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS211に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部312は、外部メモリ383に保持される処理対象ラインブロックの処理対象分割レベルの係数に対して、ステップS211乃至ステップS217の処理を繰り返し実行することにより、1ラインずつ水平分析フィルタリングを行う。ステップS217において、外部メモリ383に保持される処理対象分割レベルの係数(処理対象ラインブロックの係数)を全て処理したと判定された場合、第3水平分析フィルタ処理が終了され、処理は、図14のステップS112に戻され、ステップS113に進められる。
次に、図20のフローチャートを参照して、第3垂直分析フィルタ符号化処理の流れの詳細な例を説明する。第3垂直分析フィルタ符号化処理の処理内容は、基本的に第1垂直分析フィルタ符号化処理と同様であるが、第3垂直分析フィルタ符号化処理は、生成した分析結果のLL成分を他の成分と同様に符号化して出力する。
したがって、ウェーブレット変換部312は、図20のステップS231乃至ステップS233の各処理を、図16のステップS151乃至ステップS153の各処理と同様に行い、第1垂直分析フィルタ符号化処理の場合と同様に垂直分析フィルタリングを行う。ステップS234において、エントロピ符号化部326は、分析結果の各成分の係数をエントロピ符号化する。つまり、エントロピ符号化部326は、LL成分も含む全ての垂直分析フィルタリング結果を符号化する。ステップS235において、出力制御部327は、ステップS234において生成された符号化データ(LL成分に対応する符号化データも含む)を、出力バッファ328を介して、符号化コードストリーム353として、プロセッサ301の外部に出力する。ステップS236において、途中計算バッファ制御部324は、図16のステップS157の場合と同様に、次回のフィルタ処理に必要なその他の係数を内部メモリ311の途中計算バッファ325に保持させる。
ステップS237において、ウェーブレット変換部312は、図16のステップS158の場合と同様に、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定した場合、ウェーブレット変換部312は、処理をステップS231に戻し、それ以降の処理を繰り返す。すなわち、ウェーブレット変換部312は、途中計算バッファ325に保持される、所定量(例えば6ライン分)の処理対象分割レベルの係数に対して、ステップS231乃至ステップS237の処理を繰り返し実行する。したがって、途中計算バッファ325の容量をより少なくし、符号化処理時間をより短縮させるために、垂直分析フィルタリングの処理単位ライン数分の水平分析フィルタ処理結果が途中計算バッファ325に蓄積され次第、ステップS231乃至ステップS237の処理が行われるようにするのが望ましい。ステップS237において、内部メモリ311の途中計算バッファ325に保持される処理対象分割レベルにおける水平分析フィルタリング結果の係数を全て処理したと判定された場合、処理は、図14のステップS117に戻され、符号化処理が終了される。
以上のように、第1の目標分割レベルを外部メモリ383に保持させることにより、分割レベル毎に再帰的に繰り返されるフィルタ処理を、ステップ1とステップ2の2つに分ける。このようにすることにより、途中計算バッファ325を、ステップ1とステップ2の2回に分けて利用することができ、途中計算バッファ325の実際の記憶容量より多い量の係数を途中計算バッファ325に保持させることができる。つまり、途中計算バッファ325の記憶容量を時分割して利用することにより擬似的に記憶容量を増大させることができる。したがって、途中計算バッファ325の利用効率を向上させることができる。
なお、この第1目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第2目標分割レベルより下位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ325(内部メモリ311)として必要な記憶容量、つまり、ステップ1において必要な容量とステップ2において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。
図12を参照して説明したように、保持される係数は、分割レベルが上位になる毎に半減する。したがって、第1目標分割レベルが分割レベル1とするのが望ましい。例えば式(6)および式(7)の例の場合、ステップ1において必要なメモリ容量が98Kバイトであり、ステップ2において必要なメモリ容量が86Kバイトであるので、途中計算バッファ325の記憶容量は98Kバイトあればよい。分割レベル2とすると、ステップ2において必要なメモリ容量は低減するが、ステップ1において必要なメモリ容量が増大するので、途中計算バッファ325(内部メモリ311)として必要な記憶容量は増大してしまう。例えば式(6)および式(7)の例の場合、使用可能な内部メモリ311の空き容量が128Kバイトであっても、十分に対応することができる。
なお、例えば、第1目標分割レベルとして複数の分割レベルを設定するようにしてもよい。例えば、再帰的に繰り返されるフィルタ処理において、複数回外部メモリ383にLL成分を保持させるようにしてもよい。しかしながら、この場合、途中計算バッファ325の容量を低減させることができる可能性はあるが、外部メモリ383へのアクセス回数が増大するので、処理時間が増大してしまう。また、LL成分の保存先の切り替えを、ある分割レベルの垂直分析フィルタリング中に行うようにしても良い。しかしながら、その場合、ステップ1に必要な容量とステップ2に必要な容量をより均等に配分することができるが、切り替えのための制御が複雑になり、符号化処理の負荷が増大する恐れがある。また、不要な待機時間が増大する等して符号化処理時間が増大する恐れがある。これに対して、上述したように、LL成分の保存先の切り替えをフィルタ処理単位で(分割レベル単位で)行うようにする、つまり、第1の目標分割レベルのLL成分を外部メモリ383に退避させるようにすることにより、切り替えの制御を容易にすることができる。
<3.第3の実施の形態>
[メモリバンク構成1]
なお、プロセッサ301内部のバスと、外部のバスとで転送速度が異なる(外部のバスの方が遅い)ので、外部メモリ383への係数の転送(またはその外部メモリ383からの転送)は、入出力バッファ382を介して行うのが望ましい。このとき、入出力バッファ382の、外部メモリ383への係数の書き込み時に利用される領域のメモリバンク構成は任意であり、1バンク構成としてもよいが、2バンク構成としてもよい。
メモリバンク構成を1バンクとする場合、メモリコントローラは、その領域全体を1つの領域として管理するため、制御が容易であるものの、データの読み出しと書き込みを同時に行うことができない。つまり、最初に、図21Aの矢印601に示されるように、外部メモリ入出力制御部381から入出力バッファ382に係数がストア(Store1)される。そのストアが完了すると、次に、図21Bの矢印602に示されるように、入出力バッファ382から外部メモリ383に係数が読み出される((DMA(Direct Memory Access))Load1)。その読み出しが終了すると、図21Cの矢印603に示されるように、外部メモリ入出力制御部381から入出力バッファ382に新たな係数がストア(Store2)される。以上のように、入出力バッファ382は、係数の入出力を並行して行うことができない。
これに対して、メモリバンク構成を2バンクとする場合、メモリコントローラは、その領域全体を2つの領域として管理するため、データの読み出しと書き込みを同時に行うことができる。例えば、最初に、図22Aの矢印611に示されるように、外部メモリ入出力制御部381から入出力バッファ382のバンクA(BankA)に係数がストア(Store1)される。この時点でバンクB(BankB)は、空状態(Empty)である。そのストアが完了すると、次に、図22Bの矢印612に示されるように、入出力バッファ382のバンクAから外部メモリ383に係数が読み出される((DMA)Load1)。この処理と並行して、図22Bの矢印613に示されるように、外部メモリ入出力制御部381から入出力バッファ382のバンクBに係数がストア(Store2)される。そのストアおよび転送が完了すると、次に、図22Cの矢印614に示されるように、入出力バッファ382のバンクBから外部メモリ383に係数が読み出される((DMA)Load2)。この処理と並行して、図22Cの矢印615に示されるように、外部メモリ入出力制御部381から入出力バッファ382のバンクAに係数がストア(Store3)される。したがって、外部メモリ383への係数の書き込み時に利用される領域のメモリバンク構成を1バンク構成とする場合、図23Aに示されるように、ウェーブレット変換(DWT1,DWT2,DWT3,DWT4)および入出力バッファ382へのストア(Store1,Store2,Store3,Store4)を、入出力バッファ382から外部メモリ383への読み出し(Load1,Load2,Load3,Load4)と並行して行うことができず、処理時間が増大する。
これに対して、外部メモリ383への係数の書き込み時に利用される領域のメモリバンク構成を2バンク構成とする場合、図23Bに示されるように、ウェーブレット変換(DWT1,DWT2,DWT3,DWT4)および入出力バッファ382へのストア(Store1,Store2,Store3,Store4)を、入出力バッファ382から外部メモリ383への読み出し(Load1,Load2,Load3,Load4)と並行して行うことができ、1バンク構成の場合と比べて、不要な待機時間を削減し、処理時間を低減させることができる。
つまり、外部メモリ383への係数の書き込み時に利用される領域のメモリバンク構成を2バンク構成とすることにより、図3のエンコーダは、ハードウエア資源の利用効率を向上させることができる。もちろん、バンク数は任意であり3バンク以上としてもよい。
[メモリバンク構成2]
なお、入出力バッファ382の、外部メモリ383からの係数の読み出し時に利用される領域のメモリバンク構成も任意であり、1バンク構成としてもよいし、2バンク構成としてもよい。
メモリバンク構成を1バンクとする場合、最初に、図24Aの矢印701に示されるように、外部メモリ383から入出力バッファ382に係数がストア((DMA)Store1)される。そのストアが完了すると、次に、図24Bの矢印702に示されるように、入出力バッファ382から外部メモリ入出力制御部381に係数が読み出される(Load1)。その読み出しが終了すると、図24Cの矢印703に示されるように、外部メモリ383から入出力バッファ382に新たな係数がストア((DMA)Store2)される。以上のように、入出力バッファ382は、係数の入出力を並行して行うことができない。
これに対して、メモリバンク構成を2バンクとする場合、メモリコントローラは、その領域全体を2つの領域として管理するため、データの読み出しと書き込みを同時に行うことができる。例えば、最初に、図25Aの矢印711に示されるように、外部メモリ383から入出力バッファ382のバンクA(BankA)に係数がストア((DMA)Store1)される。この時点でバンクB(BankB)は、空状態(Empty)である。そのストアが完了すると、次に、図25Bの矢印712に示されるように、入出力バッファ382のバンクAから外部メモリ入出力制御部381に係数が読み出される(Load1)。この処理と並行して、図25Bの矢印713に示されるように、外部メモリ383から入出力バッファ382のバンクBに係数がストア((DMA)Store2)される。そのストアおよび読み出しが完了すると、次に、図25Cの矢印714に示されるように、入出力バッファ382のバンクBから外部メモリ入出力制御部381に係数が転送(Load2)される。この処理と並行して、図25Cの矢印715に示されるように、外部メモリ383から入出力バッファ382のバンクAに係数がストア((DMA)Store3)される。以上のように、入出力バッファ382は、係数の入出力を並行して行うことができる。
したがって、外部メモリ383からの係数の読み出し時に利用される領域のメモリバンク構成を1バンク構成とする場合、図26Aに示されるように、外部メモリ383から入出力バッファ382へのストア(Store1,Store2,Store3,Store4)を、入出力バッファ382から外部メモリ入出力制御部381への読み出し(Load1,Load2,Load3,Load4)およびウェーブレット変換(DWT1,DWT2,DWT3,DWT4)と並行して行うことができず、処理時間が増大する。
これに対して、外部メモリ383からの係数の読み出し時に利用される領域のメモリバンク構成を2バンク構成とする場合、図26Bに示されるように、外部メモリ383から入出力バッファ382へのストア(Store1,Store2,Store3,Store4)を、入出力バッファ382から外部メモリ入出力制御部381への読み出し(Load1,Load2,Load3,Load4)およびウェーブレット変換(DWT1,DWT2,DWT3,DWT4)と並行して行うことができ、1バンク構成の場合と比べて、不要な待機時間を削減し、処理時間を低減させることができる。つまり、外部メモリ383からの係数の読み出し時に利用される領域のメモリバンク構成を2バンク構成とすることにより、図3のエンコーダは、ハードウエア資源の利用効率を向上させることができる。もちろん、バンク数は任意であり3バンク以上としてもよい。
なお、図3のエンコーダをハードウエアにより実現する場合も、上述したソフトウエアプログラムによるエンコーダの場合と同様に、内部メモリ(途中計算バッファ)と外部メモリとを利用することができるエンコーダを実現することができる。つまり、ハードウエア資源の利用効率を向上させるエンコーダを実現することができる。
<4.第4の実施の形態>
[デコーダの構成例]
図27は、図2に示されるサブCPUコア242において実現されるデコーダ(復号装置)の構成例を示すブロック図である。図27に示されるデコーダは、図3を参照して説明したエンコーダの符号化処理に対応する復号処理を行う。詳細については後述するが、このデコーダも、エンコーダの場合と同様に、復号処理におけるウェーブレット逆変換処理を、外部メモリを計画的に用いて行い、途中計算バッファの利用効率を向上させるようになされている。
図27において、デコーダは、プロセッサ801および外部メモリ883のハードウエア資源を用いて実現される。プロセッサ801は、他と独立して動作する1つの演算処理部であり、図2のマイクロプロセッサ201におけるサブCPUコア242の1つに対応する。つまり、図3のプロセッサ301と同様である。換言するに、エンコーダのソフトウエアプログラムが実行されているサブCPUコア242がプロセッサ301であり、デコーダのソフトウエアプログラムが実行されているサブCPUコア242がプロセッサ801である。
図27に示されるように、プロセッサ801は、内部メモリ811を有する。この内部メモリ811は、図3の内部メモリ311と同様の記憶領域である。つまり、内部メモリ811は、外部メモリ883に比べて、容量が小さく、高速にデータの読み出しや書き込みを行うことができる(内部メモリ811は、外部メモリ883より小容量かつ高速にアクセス可能である)。この内部メモリ811の容量は任意であるが、以下においては、256キロバイトとして説明する。当然、容量を増大させれば、プロセッサ801の製造コストは増大する。また、以下においては、データの保持に利用可能な内部メモリ811の空き容量が、全体の半分の128キロバイトであるものとして説明する。
プロセッサ801は、内部メモリ811に保持されるプログラムを実行することにより、入力制御部822、エントロピ復号部823、およびウェーブレット逆変換部812の機能を実現する。
入力制御部822は、後述する入力バッファ821の入出力を制御することにより、エントロピ復号部823へのデータ入力を制御する。エントロピ復号部823は、入力制御部822より供給される入力データ(エンコーダより供給される符号化データ)に対して、図3のエントロピ符号化部326によるエントロピ符号化に対応するエントロピ復号を行い、得られた係数をウェーブレット逆変換部812に供給する。
ウェーブレット逆変換部812は、エントロピ復号部823より供給される係数に対してウェーブレット逆変換を行い、目標解像度の画像データを生成する。ウェーブレット逆変換は、ウェーブレット変換処理により低域成分と高域成分に分割された係数を合成するフィルタ処理を水平方向と垂直方向の両方に対して行う処理である。ウェーブレット逆変換処理においては、このようなフィルタ処理が再帰的に繰り返される。例えば、ある分割レベルにおいてフィルタ処理により得られる係数を、1つ下位の分割レベルの水平方向および垂直方向に低域な成分(LL成分)とし、その分割レベルの他の成分と合わせて再度フィルタ処理が行われる。このようなフィルタ処理の繰り返しが、目標解像度の画像データが得られるまで繰り返される。
なお、ウェーブレット変換・ウェーブレット逆変換は、スケーラブルな係数変換であり、分割レベルの階層数が、ウェーブレット変換処理とウェーブレット逆変換処理とで一致する必要はない。つまり、復号後の画像データの解像度(目標解像度)は、符号化前のベースバンドの画像データの解像度より小さくてもよい。ただし、外部メモリ883の使用を計画的に行うために、ウェーブレット逆変換における分割レベルの階層数は、予め定められている必要がある。この階層数は、デコーダにおいて予め定められていてもよいし、エンコーダより指定されるようにしてもよい。以下においては、説明の便宜上、復号後の画像データの解像度(目標解像度)と、符号化前のベースバンドの画像データの解像度が互いに等しい(分割レベルの階層数がウェーブレット変換処理とウェーブレット逆変換処理とで一致する)ものとして説明する。
ウェーブレット逆変換部812は、このようなフィルタ処理を行うフィルタ処理部824を有する。フィルタ処理部824は、垂直合成フィルタ部831と水平合成フィルタ部832を有する。垂直合成フィルタ部831は、画面垂直方向に低域成分と高域成分を合成する垂直合成フィルタ処理を行う。水平合成フィルタ部832は、画面水平方向に低域成分と高域成分を合成する水平合成フィルタ処理を行う。垂直合成フィルタ処理は、例えばエントロピ復号部823等より供給される入力データに対して行われ、水平合成フィルタ処理は、垂直合成フィルタ処理結果に対して行われる。垂直合成フィルタ処理および水平合成フィルタ処理が行われることにより、係数は、画面垂直方向および水平方向に合成され、LL成分、HL成分、LH成分、およびHH成分の4つの成分が合成され、1つの成分の係数(またはベースバンドの画像データ)が生成される。
上述したように、エンコーダにおいてウェーブレット変換処理が分割レベル3まで実行されていた場合、分割レベル3、分割レベル2、分割レベル1の順に各分割レベルにおいて合成フィルタ処理(ウェーブレット逆変換)が実行される。また、以上の2つのフィルタ処理は、垂直合成フィルタリング、水平合成フィルタリングの順に行われる。なお、フィルタ処理を水平合成フィルタリング、垂直合成フィルタリングの順に行うようにしてもよい。
ウェーブレット逆変換部812は、途中計算バッファ制御部825、外部メモリ入出力制御部881、および出力制御部827を有する。途中計算バッファ制御部825は、フィルタ処理部824により生成される合成フィルタ処理結果や処理途中の係数の入出力を制御する。途中計算バッファ制御部825は、次回以降の合成フィルタ処理において再利用されるデータの保持を制御する。外部メモリ入出力制御部881は、所定の分割レベルにおける合成フィルタ処理の結果の保持を制御する。出力制御部827は、フィルタ処理部824による合成フィルタ処理結果であるベースバンドの画像データ(原画像351)のプロセッサ801からの出力を制御する。
内部メモリ811には、エントロピ復号部823に入力される符号化データ、並びに、フィルタ処理部824のフィルタ処理の処理結果や処理途中の係数データ等が一時的に保持される。内部メモリ811には、これらのデータを保持するために、入力バッファ821、途中計算バッファ826、入出力バッファ882、および出力バッファ828が形成される。入力バッファ821は、エントロピ復号部823に入力される前の符号化データ(エンコーダより供給される符号化データ)を保持する。入力バッファ821の読み出しは入力制御部822に制御される。途中計算バッファ826は、合成フィルタ処理結果または途中の係数データのうち、次回以降の合成フィルタ処理に使用される係数データを、分割レベル毎に独立して保持する。つまり、途中計算バッファ826は、合成フィルタ処理の演算過程として得られる係数、または、第1の目標分割レベルより上位(第1の目標分割レベルを含む)の合成フィルタ処理の演算結果として得られるLL成分の係数を、その分割レベル毎に保持する。その保持している係数は、必要に応じて読み出され、次回以降のフィルタ処理に提供される。途中計算バッファ826のデータの入出力は、途中計算バッファ制御部825により制御される。なお、この途中計算バッファ826は、外部メモリ883に比べて小容量であり、かつ、高速にアクセス可能である。入出力バッファ882は、合成フィルタ処理結果であり、次回の合成フィルタ処理に利用する係数データのうち、外部メモリ883に保持させる係数データを保持する。入出力バッファ882のデータの入出力は、外部メモリ入出力制御部881に制御される。出力バッファ828は、フィルタ処理部824による合成フィルタ処理により生成されたベースバンドの画像データを保持する。出力バッファ828のデータの入出力は、出力制御部827により制御される。
図28に示されるように、内部メモリ811(途中計算バッファ826)に保持される係数は、分割レベル3、分割レベル2、分割レベル1の順に、水平サイズの大きさが2倍ずつ大きくなる。つまり、フィルタ処理の進行方向は逆だが(合成フィルタ処理の場合、上位層から下位層へ向かう順に進む)、各階層において保持される係数の量は、図12に示されるウェーブレット変換の場合と同様である。
外部メモリ883は、プロセッサ801とは別に形成される記憶領域であり、例えば、図2のXDR-RAM203に対応する。つまり、外部メモリ883は、図3と外部メモリ383に対応するものであり、例えば図2に示されるシステムにおいてエンコーダおよびデコーダの両方が実現される場合、すなわち、例えば図2のサブCPUコア242−1においてエンコーダが実現され、サブCPUコア242−2においてデコーダが実現されるような場合、エンコーダとデコーダが互いに共通の外部メモリを使用するようにしてもよい。外部メモリ883は、内部メモリ811に対して、例えば、回路規模が小さく実装密度を上げやすい、消費電力が小さい、動作が低速、および、読み書きの手順が複雑であるといった特徴を有する。つまり、外部メモリ883は、内部メモリ811に比べて、動作が低速であるものの、大容量のデータを保持することができる。
[動作説明]
次に、図27に示されるデコーダの動作について説明する。例えば、XDR-RAM203等の外部メモリ883や、HDD205に記憶されている符号化ストリーム353は、ウェーブレット逆変換処理の処理単位ごとに読み出され、共有バス245を介して、矢印861に示されるように入力バッファ821に供給され、一時的に保持される。入力制御部822は、入力バッファ821に所定量(例えば、ウェーブレット逆変換処理の処理単位)の符号化データが蓄積されると、矢印862に示されるようにそれを読み出し、矢印863に示されるようにエントロピ復号部823に供給する。エントロピ復号部823は、供給される符号化データを復号し、得られた係数を矢印864のようにウェーブレット逆変換部812のフィルタ処理部824に供給する。
フィルタ処理部824の垂直合成フィルタ部831は、入力された、LL成分、HL成分、LH成分、およびHH成分の各成分の係数に対して垂直合成フィルタリングを行う。途中計算バッファ制御部825は、その垂直合成フィルタリング結果(垂直方向に低域成分と高域成分が合成された係数)を、適宜、矢印865のように取得し、矢印866のように途中計算バッファ826に保持させる。所定ライン数(例えば6ライン)の係数が蓄積されると、途中計算バッファ制御部825は、矢印867のように読み出し、矢印868のようにフィルタ処理部824に供給する。水平合成フィルタ部832は、その係数に対して水平合成フィルタリングを行う。
実際には、垂直合成フィルタリングおよび水平合成フィルタリングの各処理は、リフティング演算を用いて行われる。例えば図29に示されるように、9×7フィルタの場合には6ライン分のバファリングが必要であり、画面上から下方向にライン入力がある。従って、ライン1が最新の入力ということになる。図29の左図のケース1では最上部から6ライン分の垂直方向の係数(低域(○)、高域(□))が並んでおり、リフティング演算は画面左から右方向に行われる。Step1からStep4まで実行することで、ライン5の係数が得られる。図中の赤丸及び赤四角の記号は、6ラインに入っている実際の係数である。それまでの係数は途中計算用としてバッファされ、次の演算に使用される。
次に垂直方向にラインをずらしながらフィルタリングを行うが、1ライン入力してもリフティング演算は出来ないので、本実施形態では2ラインずらす。その結果がケース2になる。ケース1と同様に左から右の時間方向にリフティング演算を行い、Step3まで行う。次のStep4は、ライン6の□の係数が必要であるが、これはケース1のライン4で生成された係数をそのまま使えば良い。
以上の動作により、ケース2のStep4とStep3の出力が、次のレベルの低域成分(LL)として使われる。これを図28で説明すると、例えば分割レベル3でのライン6とライン5のLL成分出力が、分割レベル2のライン1に入力することを示している。同様にして、レベル2でのライン6とライン5のLL成分出力が、レベル1のライン1に入力することを示している。つまり、垂直合成フィルタ部831は、垂直方向のフィルタリングを実行するのに必要なNラインのサンプルが用意でき次第、垂直合成フィルタリングを実行する。また、水平合成フィルタ部832は、水平方向のフィルタリングを実行するのに必要なMコラムのサンプルが用意でき次第、水平合成フィルタリングを実行する。
フィルタ処理部824は、目標の分割レベルに達するまで、合成フィルタ処理を再帰的に繰り返す。そこで、途中計算バッファ制御部825は、算出された係数を、矢印865に示されるようにフィルタ処理部824より取得し、矢印866に示されるように途中計算バッファ826に保持させる。また、途中計算バッファ制御部825は、合成フィルタリングにおいて生成されたリフティング演算途中の係数の一部も、同様に途中計算バッファ826に保持させる。途中計算バッファ制御部825は、フィルタ処理部824による次(1つ下位)の分割レベルを対象とする合成フィルタ処理のために、途中計算バッファ826に保持されている係数を、適宜、矢印867のように読み出し、矢印868に示されるようにフィルタ処理部824に供給する。フィルタ処理部824は、処理対象分割レベルを1つ下位のレベルに更新し、途中計算バッファ制御部825により途中計算バッファ826より読み出された係数をLL成分とし、その他の成分をエントロピ復号部823より取得し、それらの係数に対して垂直合成フィルタリングや水平合成フィルタリングを行う。
フィルタ処理部824は、1つ目の目標分割レベル(第1の目標分割レベル)に達するまで、各分割レベルのLL成分に対して、このようにフィルタ処理を再帰的に繰り返す。第1の目標分割レベルの係数(後にLL成分として使用される係数)は、途中計算バッファ826ではなく外部メモリ883に保持される。外部メモリ入出力制御部881は、第1の目標分割レベルの係数が生成されると、それを、矢印869に示されるようにフィルタ処理部824より取得し、矢印870および矢印871に示されるように、入出力バッファ882を介して外部メモリ883に保持させる。
そして、フィルタ処理の処理対象レベルが第1の目標分割レベルになると、外部メモリ入出力制御部881は、外部メモリ883に保持されている係数を、矢印872および矢印873に示されるように入出力バッファ882を介して読み出し、矢印874に示されるようにフィルタ処理部824に供給する。この係数は、LL成分として使用される。垂直合成フィルタ部831は、この外部メモリ883より読み出されたLL成分の係数と、エントロピ復号部823より供給された、第1の目標分割レベルのその他の成分や演算途中の係数を用いて、垂直合成フィルタリングを行う。水平合成フィルタリングは、これまでの階層と同様に行われる。この第1の目標分割レベルにおける合成フィルタ処理結果は、途中計算バッファ826に保持される。それ以降、フィルタ処理部824は、分割レベルが2つ目の目標分割レベル(第2の目標分割レベル)に達するまで、上述したように、各分割レベルの係数に対してフィルタ処理を再帰的に繰り返す。このとき、生成されるLL成分の係数や途中の係数は、途中計算バッファ制御部825の制御によって、適宜、途中計算バッファ826に保持され、必要に応じて利用される。以上のようにして生成された第2の目標分割レベルの係数、すなわち、ベースバンドの画像データは、矢印875に示されるように出力制御部827により取得される。出力制御部827は、取得した係数を矢印876および矢印877に示されるように、出力バッファ828を介して、原画像351として、プロセッサ801の外部に出力する。
仮に、従来のように、ウェーブレット逆変換処理において生成される各分割レベルの係数を、全て途中計算バッファ826に保持させるとすると、エンコーダの場合と同様に、途中計算バッファ826の容量よりも係数のデータ量の方が大きくなる。つまり、従来の方法では、途中計算バッファ826では容量が不足する。この場合、容量不足分の係数は外部メモリ883に保持させる必要があるため、この係数保持を無計画に行うと、外部メモリ883へのアクセス数が増大し、遅延時間が不要に増大する恐れがある。例えば、大容量の外部メモリ883を単純に優先的に利用するようにすると、途中計算バッファ826は使用されず、処理速度が不要に低下してしまう恐れがあった。逆に、高速に読み書き可能な途中計算バッファ826を単純に優先的に使用するようにすると、分割レベルの深い階層において外部メモリ883が使用されるので、アクセス頻度が増大し、処理速度が不要に低下してしまう恐れがあった。
そこで、図27に示される本発明を適用したデコーダは、所定の階層の分割レベル(第1の目標分割レベル)を予め定め、その予め定められた第1の目標分割レベルのLL成分のみを外部メモリ883に保持させるようにする。例えば、この第1の目標分割レベルを分割レベル1とすると、図30Aに示されるように、分割レベル1になるまで合成フィルタ処理が繰り返される。そして生成された分割レベル1の係数は、外部メモリ883に保持された後、分割レベル1のLL成分(1LL)の係数として読み出され、分割レベル1の合成フィルタ処理に使用される。つまり、第1の目標分割レベルの1つ上位の分割レベルの係数まで途中計算バッファ826に保持し、第1の目標分割レベルのLL成分を外部メモリ883に一時的に退避させる。第1の目標分割レベルの1つ上位のフィルタ処理が完了すると、途中計算バッファ826に保持される上位の階層の係数が不要になる。そこで、外部メモリ883に保持される第1の目標分割レベルの係数を用いてそれ以降の階層に対するフィルタ処理が開始される。このとき途中計算バッファ826に空き容量が生じるので、それ以降に生成される係数は、途中計算バッファ826に保持させることができる。つまり、外部メモリ883を用いることにより、途中計算バッファ826を、時間的に2回に分けて利用する。
なお、第1の目標分割レベルより前のウェーブレット変換をステップ1とし、第1の目標分割レベル以降のウェーブレット変換をステップ2とする。ステップ1とステップ2は時間的にずれているので、この場合、途中計算バッファ826の容量は、98Kバイト以上あればよい。つまり、ウェーブレット変換処理全体において、途中計算バッファ826に、途中計算バッファ826の記憶容量以上の容量の係数を保持させることができる。
以上のように制御することにより、高速に読み書き可能な途中計算バッファ826をより多く利用し、外部メモリ883の利用を必要最小限に抑制することができるので、外部メモリ883を利用することによる処理時間の増大を抑制することができる。すなわち、図27に示されるデコーダは、よりハードウエア資源をより有効に利用することができ、ウェーブレット変換を用いた復号処理をより容易かつより高速に行うことができる。このように、図27に示されるデコーダは、復号処理全体の処理時間を低減させることができるとともに、コストの増大を抑制することができる。
[処理の流れの説明]
次に以上のような復号処理の流れの例を、図31のフローチャートを参照して説明する。図27のデコーダは、この復号処理を、原画像351のラインブロックに対応する所定量の符号化データ毎に実行する。
復号処理が開始されると、入力制御部822、エントロピ復号部823、およびウェーブレット逆変換部812は、ステップS401において、入力バッファ821に入力された符号化データを復号し、得られた係数に対して垂直合成フィルタリングを行う第1復号垂直合成フィルタ処理を行う。第1復号垂直合成フィルタ処理の詳細については後述する。第1復号垂直合成フィルタ処理が終了すると、ウェーブレット逆変換部812は、ステップS402において、処理後の分割レベルが第1の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第1の目標分割レベルの1つ上位でなく、フィルタ処理により第1の目標分割レベルの係数が生成されないと判定された場合、処理はステップS403に進む。
ステップS403において、ウェーブレット逆変換部812は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した係数を途中計算バッファ826に保持させる処理である第1水平合成フィルタ処理を行う。第1水平合成フィルタ処理の詳細については後述する。第1水平合成フィルタ処理が行われると、ウェーブレット逆変換部812は、ステップS404において、処理対象分割レベルを1つ下位の分割レベルに更新し、内部メモリ811の途中計算バッファ826に保持した合成結果の係数を、処理対象分割レベルのLL成分とし、入力データとする。ウェーブレット逆変換部812、エントロピ復号部823、および入力制御部822は、ステップS405において、入力バッファ821に入力された符号化データを復号し、得られた処理対象分割レベルのHL成分、LH成分、およびHH成分の係数と、途中計算バッファ826より読み出したLL成分とに対して垂直合成フィルタリングを行う第2復号垂直合成フィルタ処理を行う。第2復号垂直合成フィルタ処理の詳細については後述する。
ステップS405の処理が終了すると、処理は、ステップS402に戻る。つまり、入力制御部822、エントロピ復号部823、およびウェーブレット逆変換部812は、ステップS402において処理後の分割レベルが第1の目標分割レベルであると判定されるまで、ステップS402乃至ステップS405の処理を繰り返し実行する。そして、ステップS402において、現在の処理対象分割レベルが第1の目標分割レベルの1つ上位であり、フィルタ処理により第1の目標分割レベルの係数が生成されると判定された場合、処理はステップS406に進む。
ステップS406において、ウェーブレット逆変換部812は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した第1目標分割レベルの係数を外部メモリ883に保持させる処理である第2水平合成フィルタ処理を行う。第2水平合成フィルタ処理の詳細については後述する。ここまでのステップS401乃至ステップS406が、上述した「ステップ1」の処理として実行される。
第1目標分割レベルの係数(LL成分)が外部メモリ883に蓄積され、第2水平合成フィルタ処理が終了すると、処理はステップS411に進む。ステップS411において、ウェーブレット逆変換部812は、処理対象分割レベルを1つ下位の分割レベルに更新し、外部メモリ883に保持した合成結果の係数を、処理対象分割レベルのLL成分とし、入力データとする。ステップS412において、ウェーブレット逆変換部812、エントロピ復号部823、および入力制御部822は、第3復号垂直合成フィルタ処理を行う。第3復号垂直合成フィルタ処理の詳細については後述する。
ステップS413において、ウェーブレット逆変換部812は、処理後の分割レベルが第2の目標分割レベルであるか否かを判定する。現在の処理対象分割レベルが第2の目標分割レベルの1つ上位でなく、フィルタ処理により第2の目標分割レベルの係数が生成されないと判定された場合、処理はステップS414に進む。
ステップS414において、ウェーブレット逆変換部812は、垂直合成フィルタ処理結果に対して第1の水平合成フィルタ処理を行う。ステップS415において、ウェーブレット逆変換部812は、処理対象分割レベルを1つ下位の階層に更新し、内部メモリ811の途中計算バッファ826に保持される合成結果の係数をLL成分とする。ステップS416において、ウェーブレット逆変換部812は、第2復号垂直合成フィルタ処理を行う。ステップS416の処理が終了されると、処理は、ステップS413に戻る。
ステップS413において、処理後の分割レベルが第2の目標分割レベルに達したと判定された場合、処理はステップS417に進む。ステップS417において、ウェーブレット逆変換部812は、垂直合成フィルタ処理結果に対して水平合成フィルタリングを行い、生成した第2の目標分割レベルの係数を出力させる処理である第3水平合成フィルタ処理を行う。第3水平合成フィルタ処理の詳細については後述する。ここまでのステップS411乃至ステップS417が、上述した「ステップ2」の処理として実行される。
以上のようにステップS417の処理が終了されると、復号処理が終了される。このように、外部メモリ883を利用して、復号処理をステップ1とステップ2の2つに分けて行うようにしたので、図27のデコーダは、復号処理全体において、途中計算バッファ826に実際の記憶容量以上の情報を保持させることができ、ハードウエア資源の利用効率を向上させることができる。
次に、図32のフローチャートを参照して、第1復号垂直合成フィルタ処理の流れの詳細な例を説明する。
第1復号垂直合成フィルタ処理が開始されると、入力制御部822は、ステップS431において、内部メモリ811の入力バッファ821から処理対象分割レベルの各成分の処理単位ライン数の符号化データを入力し、エントロピ復号部823に供給する。エントロピ復号部823は、ステップS432において、供給された符号化データを復号する。
ステップS433において、途中計算バッファ制御部825は、内部メモリ311の途中計算バッファ826から、垂直合成フィルタリングに必要なその他の係数を読み出す。フィルタ処理に必要な係数が揃うと、垂直合成フィルタ部831は、ステップS434において、ステップS432およびステップS433の処理により得られた係数に対して垂直合成フィルタリングを行う。ステップS435において、途中計算バッファ制御部825は、その垂直方向の合成結果の係数を内部メモリ811の途中計算バッファ826に保持させる。ステップS436において、途中計算バッファ制御部825は、次回の合成フィルタ処理に必要なその他の係数を内部メモリ811の途中計算バッファ826に保持させる。
ステップS437において、ウェーブレット逆変換部812は、内部メモリ811の入力バッファ821に保持される処理対象分割レベルの符号化データを全て処理したか否かを判定する。全て処理していないと判定された場合、処理は、ステップS431に戻り、それ以降の処理を繰り返す。すなわち、ウェーブレット逆変換部812は、入力バッファ821に保持される処理対象分割レベルの符号化データに対して、ステップS431乃至ステップS437の処理を繰り返し実行することにより、所定量単位で垂直合成フィルタリングを行う。ステップS437において、内部メモリ811の入力バッファ821に保持される画像データ(ラインブロック)を全て処理したと判定された場合、第1復号垂直合成フィルタ処理が終了され、処理は、図31のステップS401に戻り、ステップS402に進む。
次に、図33のフローチャートを参照して、第1水平合成フィルタ処理の流れの詳細な例を説明する。
第1水平合成フィルタ処理が開始されると、途中計算バッファ制御部825は、ステップS451において、内部メモリ811の途中計算バッファ826から処理対象分割レベルにおける垂直合成フィルタリング結果の各成分の処理単位ライン数(例えば6ライン)の係数を読み出す。また、途中計算バッファ制御部825は、ステップS452において、内部メモリ811の途中計算バッファ826から水平合成フィルタリングに必要なその他の係数を読み出す。ステップS453において、水平合成フィルタ部832は、ステップS451およびステップS452の処理により読み出された各係数を用いて水平合成フィルタリングを行う。ステップS454において、途中計算バッファ制御部825は、水平方向の合成結果の係数を内部メモリ811の途中計算バッファ826に保持させる。ステップS455において、途中計算バッファ制御部825は、次回のフィルタ処理に必要なその他の係数を内部メモリ811の途中計算バッファ826に保持させる。
ステップS456において、ウェーブレット逆変換部812は、内部メモリ811の途中計算バッファ826に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したか否かを判定する。全て処理していないと判定された場合、処理は、ステップS451に戻り、それ以降の処理を繰り返す。
すなわち、ウェーブレット逆変換部812は、途中計算バッファ826に保持される、処理対象分割レベルの係数に対して、所定量の係数毎にステップS451乃至ステップS456の処理を繰り返し実行する。
ステップS456において、内部メモリ811の途中計算バッファ826に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図31に戻る。図31のステップS403において実行された第1水平合成フィルタ符号化処理の場合、処理は、図31のステップS403に戻り、ステップS404に進む。また、図31のステップS414において実行された第1水平分析フィルタ符号化処理の場合、処理は、図31のステップS414に戻り、ステップS415に進む。
次に、図34のフローチャートを参照して、第2復号垂直合成フィルタ処理の流れの詳細な例を説明する。第2復号垂直合成フィルタ処理の処理内容は、基本的に第1復号垂直合成フィルタ処理と同様であるが、第2復号垂直合成フィルタ処理は、途中計算バッファ826に保持される、1つ上位の分割レベルにおいて算出された合成結果をLL成分とし、そのLL成分を用いた垂直合成フィルタ処理を行う。
したがって、第2復号垂直合成フィルタ処理が開始されると、入力制御部822は、ステップS471において、内部メモリ811の入力バッファ821から処理対象分割レベルの、HL成分、LH成分、およびHH成分の処理単位ライン数の符号化データを入力し、エントロピ復号部823に供給する。エントロピ復号部823は、ステップS472において、供給された符号化データを復号する。ステップS473において、途中計算バッファ制御部825は、内部メモリ311の途中計算バッファ826から、処理対象分割レベルのLL成分の処理単位ライン数の係数を読み出す。
ステップS474乃至ステップS478の各処理は、図32のステップS433乃至ステップS437の各処理と同様に実行される。ステップS478において、内部メモリ811の入力バッファ821に保持される画像データ(ラインブロック)を全て処理したと判定された場合、第2復号垂直合成フィルタ処理が終了され、処理は図31に戻る。図31のステップS405において実行された第2復号垂直合成フィルタ処理の場合、処理は、図31のステップS405に戻り、さらにステップS402に戻る。また、図31のステップS416において実行された第2復号垂直合成フィルタ処理の場合、処理は、図31のステップS416に戻り、さらに図31のステップS413に戻る。
次に、図35のフローチャートを参照して、第2水平合成フィルタ処理の流れの詳細な例を説明する。第2水平合成フィルタ処理の処理内容は、基本的に第1水平合成フィルタ処理と同様であるが、第2水平合成フィルタ処理は、算出した合成結果を、外部メモリ883に保持させる。
つまり、第2水平合成フィルタ処理が開始されると、途中計算バッファ制御部825および水平合成フィルタ部832は、ステップS491乃至ステップS493の各処理を、図33のステップS451乃至ステップS453の各処理と同様に実行し、水平合成フィルタリングを行う。ステップS494において、外部メモリ入出力制御部881は、ステップS493の処理により生成された合成結果の係数を、内部メモリ811の入出力バッファ882に保持させる。ステップS495において、外部メモリ入出力制御部881は、ステップS494の処理により入出力バッファ882に保持される合成結果の係数を、外部メモリ883に書き込む。
ステップS496およびステップS497の各処理は、図33のステップS455およびステップS456の各処理と同様に行われる。ステップS497において、内部メモリ811の途中計算バッファ826に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図31のステップS406に戻り、ステップS411に進む。
次に、図36のフローチャートを参照して、第3復号垂直合成フィルタ処理の流れの詳細な例を説明する。第3復号垂直合成フィルタ処理の処理内容は、基本的に第1復号垂直合成フィルタ処理と同様であるが、第3復号垂直合成フィルタ処理は、外部メモリ883に保持される、1つ上位の分割レベルにおいて算出された合成結果をLL成分とし、そのLL成分を用いた垂直合成フィルタ処理を行う。
したがって、第3復号垂直合成フィルタ処理が開始されると、入力制御部822は、ステップS511において、内部メモリ811の入力バッファ821から処理対象分割レベルの、HL成分、LH成分、およびHH成分の処理単位ライン数の符号化データを入力し、エントロピ復号部823に供給する。エントロピ復号部823は、ステップS512において、供給された符号化データを復号する。ステップS513において、外部メモリ入出力制御部881は、外部メモリ883から、処理対象分割レベルのLL成分の処理単位ライン数の係数を読み出し、内部メモリ811の入出力バッファ882に保持させる。ステップS514において、外部メモリ入出力制御部881は、内部メモリ811の入出力バッファ882から、ステップS513の処理により保持させたLL成分の係数を読み出し、フィルタ処理部824に入力する。
ステップS515乃至ステップS519の各処理は、図32のステップS433乃至ステップS437の各処理と同様に実行される。ステップS519において、内部メモリ811の入力バッファ821に保持される処理対象分割レベルの符号化データを全て処理したと判定された場合、第3復号垂直合成フィルタ処理が終了され、処理は、図31のステップS412に戻り、ステップS413に進む。
次に、図37のフローチャートを参照して、第3水平合成フィルタ処理の流れの詳細な例を説明する。第3水平合成フィルタ処理の処理内容は、基本的に第1水平合成フィルタ処理と同様であるが、第3水平合成フィルタ処理は、算出した合成結果の係数を、プロセッサ801の外部に出力する。
つまり、第3水平合成フィルタ処理が開始されると、途中計算バッファ制御部825および水平合成フィルタ部832は、ステップS531乃至ステップS533の各処理を、図33のステップS451乃至ステップS453の各処理と同様に実行し、水平合成フィルタリングを行う。ステップS534において、出力制御部827は、ステップS533の処理により生成された合成結果の係数(ベースバンドの画像データ)を、出力バッファ828を介してプロセッサ801の外部に出力させる。ステップS535およびステップS536の各処理は、図33のステップS455およびステップS456の各処理と同様に実行される。
ステップS536において、内部メモリ811の途中計算バッファ826に保持される処理対象分割レベルにおける垂直合成フィルタリング結果の係数を全て処理したと判定された場合、処理は図31のステップS417に戻り、復号処理が終了される。
以上のように、第1の目標分割レベルを外部メモリ883に保持させることにより、分割レベル毎に再帰的に繰り返されるフィルタ処理を、ステップ1とステップ2の2つに分ける。このようにすることにより、途中計算バッファ826を、ステップ1とステップ2の2回に分けて利用することができ、途中計算バッファ826の実際の記憶容量より多い量の係数を途中計算バッファ826に保持させることができる。つまり、途中計算バッファ826の記憶容量を時分割して利用することにより擬似的に記憶容量を増大させることができる。したがって、途中計算バッファ826の利用効率を向上させることができる。
なお、この第1目標分割レベルとする分割レベルは、ウェーブレット変換処理の最終分割レベルである第2目標分割レベルより上位の階層であれば、任意の分割レベルとしてよい。ただし、途中計算バッファ826(内部メモリ811)として必要な記憶容量、つまり、ステップ1において必要な容量とステップ2において必要な容量の大きい方の値ができるだけ小さくなるようにするのが望ましい。図28に示されるように、保持される係数は、分割レベルが上位になる毎に半減する。したがって、分割レベル1を第1目標分割レベルとするのが望ましい。
なお、例えば、第1目標分割レベルとして複数の分割レベルを設定するようにしてもよい。また、LL成分の保存先の切り替えを、ある分割レベルの水平合成フィルタリング中に行うようにしても良い。いずれも符号化処理の場合と同様である。また、図27に示されるデコーダにおいても、入出力バッファ882のメモリバンク構成を1バンク構成としてもよいし、2バンク構成としてもよい。符号化処理の場合と同様に、2バンク構成とする方が、入出力バッファ882に対するデータの入出力を、ウェーブレット逆変換処理と並行して行うことができる。つまり、ハードウエア資源の利用効率を向上させることができる。
なお、エンコーダの場合に説明したように、デコーダの場合も、入出力バッファ882のメモリバンクの構成を複数バンクとしてもよい。入出力バッファ882のメモリバンクを2バンク以上とすることにより、外部メモリ883への情報の読み出しや書き込みを、ウェーブレット逆変換処理と並行して行うことができるようになる。
以上のように、図3のエンコーダと図27のデコーダは、例えば、図2に示される情報処理システム100の情報処理装置101により実現される。マイクロプロセッサ201には、複数のサブCPUコア242が設けられているが、このような場合、一部または全部のサブCPUコア242のそれぞれにおいて、図3のエンコーダまたは図27のデコーダを実現するようにしてもよい。つまり、マイクロプロセッサ201において、例えば、1つまたは複数のエンコーダを実現するようにしてもよいし、1つまたは複数のデコーダを実現するようにしてもよいし、エンコーダおよびデコーダの両方を実現するようにしてもよい。
本発明を適用した図3のエンコーダおよび図27のデコーダは、複数の記憶領域を計画的に利用することにより、ハードウエア資源の利用効率を向上させるものであるので、複数の記憶領域を有する情報処理装置であれば実現可能であり、図2に示される情報処理装置101以外において実現することもできる。例えば、シングルコアのプロセッサを1つ有するパーソナルコンピュータにおいても実現することができる。もちろん、マルチコアプロセッサであってもよいし、複数の記憶領域を有する限り、プロセッサの個数等、各種ハードウエア構成は任意である。
また図3および図27においては、利用する記憶領域を内部メモリと外部メモリとして説明したが、どのような記憶領域を利用するようにしてもよい。例えば図2の情報処理装置101を適用する場合、エンコーダおよびデコーダの外部メモリや内部メモリは、例えば、各サブCPUコア242の内部メモリ、XDR-RAM203、HDD205、GPU202の内部メモリ、メインCPUコア241の内部メモリ、または、他のサブCPUコア242の内部メモリ等、どの記憶領域を用いて実現するようにしてもよい。また、複数の記憶領域を用いて実現するようにしてもよい。
ただし、本発明を適用することにより、複数の記憶領域を計画的に利用するエンコーダやデコーダを実現することができる。したがって、主に利用する記憶領域の容量が制限され、ウェーブレット変換や逆ウェーブレット変換において保持する必要のある係数を全て保持することができないが、他の記憶領域を利用することにより全ての係数を保持することができる情報処理装置において実現する場合の方が、本発明を適用することにより得られる効果はより大きくなる。また、本発明を適用することにより、主に利用する記憶領域をより有効に利用するエンコーダまたはデコーダを実現することができるので、主に利用する記憶領域へのアクセス速度(情報の読み出しや書き込みの速度)が他の記憶領域に比べて高速である情報処理装置において実現する場合の方が、本発明を適用することにより得られる効果はより大きくなる。
なお、この記憶領域のアクセス速度は、記憶領域の特性によるものであってもよいし、その記憶領域が接続されるバスの特性によるものであってもよい。また、例えば、専用バスで接続される専用メモリと、共有バスで接続される共有メモリのような統計的なアクセス速度の差も考えられる。
特に、図3や図27を参照して説明したような内部メモリや外部メモリを利用する場合、本発明を適用することにより、各記憶領域へのアクセス制御をより適切に行うことができる。また、実行される符号化処理および復号処理も任意であるが、上述したようなウェーブレット変換またはウェーブレット逆変換を利用した、所定数のライン単位で行われる符号化処理または復号処理の場合、本発明を適用することにより、各フローチャートを参照して説明したように、より適切に各記憶領域へのアクセス制御を行うことができ、ハードウエア資源の利用効率をより向上させることができる。
なお、以上においては、エンコーダまたはデコーダとして説明したが、本発明は、ウェーブレット変換・ウェーブレット逆変換の各処理においてハードウエア資源の利用効率を向上させるものである。したがって、エントロピ符号化部326やエントロピ復号部823は、省略することができる。例えば、図3のエンコーダの場合、エントロピ符号化部326を他のプロセッサにおいて実現するようにし、出力制御部327がフィルタ処理部323の出力を、出力バッファ328を介して、プロセッサ301の外部にあるその他のプロセッサに出力するようにしてもよい。同様に、例えば、図27のデコーダの場合、エントロピ復号部823を他のプロセッサにおいて実現するようにし、入力制御部822が、エントロピ復号部823の出力を、入力バッファ821を介してプロセッサ801の外部より取得するようにしてもよい。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。この記録媒体は、例えば、図2に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア111により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているHDD205や記憶装置103に含まれるハードディスクやメモリなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
もちろん、上述した一連の処理は、汎用のハードウエアを用いてソフトウエアを実行することにより実現させることもできるが、専用のハードウエアにより実現させることもできる。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表わすものである。
なお、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
産業上の利用分野
本発明を適用したエンコーダおよびデコーダは、例えば、デジタルシネマ用編集装置、アーカイブシステム、放送局の画像伝送装置、画像データベース、医用画像の記録システム、ネットワークサーバ、ノンリニア編集装置、ゲーム機、テレビ受像機システム、HDDレコーダ、PC上のオーサリング・ツールまたはそのソフトウェア・モジュール等として適用することができる。もちろん、これ以外に適用するようにしてもよい。
従来のエンコーダの主な構成例を示すブロック図である。 本発明を適用したエンコーダやデコーダを実現するハードウエアの主な構成例を示すブロック図である。 本発明を適用したエンコーダの主な構成例を示すブロック図である。 ウェーブレット変換の概要を説明する図である。 分析フィルタリングの概要を説明する図である。 分析フィルタリングの概要を説明する図5に続く図である。 分析フィルタリングの順序例を説明する図である。 分析フィルタリングの順序例を説明する図である。 ラインブロックを説明する図である。 9×7フィルタの例を示す図である。 分析フィルタリングのリフティング演算例を説明する図である。 ウェーブレット変換時に内部メモリに保持される係数を説明する図である。 本発明を適用したウェーブレット変換の概要を説明する図である。 符号化処理の流れの例を説明するフローチャートである。 第1水平分析フィルタ処理の流れの例を説明するフローチャートである。 第1垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。 第2水平分析フィルタ処理の流れの例を説明するフローチャートである。 第2垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。 第3水平分析フィルタ処理の流れの例を説明するフローチャートである。 第3垂直分析フィルタ符号化処理の流れの例を説明するフローチャートである。 外部メモリへの情報書き込みに利用される入出力バッファが1バンク構成の場合の外部メモリへの情報書き込みの様子を説明する図である。 外部メモリへの情報書き込みに利用される入出力バッファが2バンク構成の場合の外部メモリへの情報書き込みの様子を説明する図である。 外部メモリへの情報書き込みに利用される入出力バッファのバンク構成毎の処理の流れの様子の例を示す図である。 外部メモリからの情報読み出しに利用される入出力バッファが1バンク構成の場合の外部メモリからの情報読み出しの様子を説明する図である。 外部メモリからの情報読み出しに利用される入出力バッファが2バンク構成の場合の外部メモリからの情報読み出しの様子を説明する図である。 外部メモリからの情報読み出しに利用される入出力バッファのバンク構成毎の処理の流れの様子の例を示す図である。 本発明を適用したデコーダの主な構成例を示すブロック図である。 ウェーブレット逆変換時に内部メモリに保持される係数を説明する図である。 合成フィルタリングのリフティング演算例を説明する図である。 本発明を適用したウェーブレット逆変換の概要を説明する図である。 復号処理の流れの例を説明するフローチャートである。 第1復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。 第1水平合成フィルタ処理の流れの例を説明するフローチャートである。 第2復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。 第2水平合成フィルタ処理の流れの例を説明するフローチャートである。 第3復号垂直合成フィルタ処理の流れの例を説明するフローチャートである。 第3水平合成フィルタ処理の流れの例を説明するフローチャートである。
符号の説明
100 情報処理システム, 101 情報処理装置, 201 マイクロプロセッサ, 203 XDR-RAM, 242 サブCPUコア, 301 プロセッサ, 311 内部メモリ, 312 ウェーブレット変換部, 323 フィルタ処理部, 324 途中計算バッファ制御部, 325 途中計算バッファ, 326 エントロピ符号化部, 381 外部メモリ入出力制御部, 382 入出力バッファ, 383 外部メモリ, 801 プロセッサ, 811 内部メモリ, 812 ウェーブレット逆変換部, 823 エントロピ復号部, 824 フィルタ処理部, 825 途中計算バッファ制御部, 826 途中計算バッファ, 881 外部メモリ入出力制御部, 882 入出力バッファ, 883 外部メモリ

Claims (16)

  1. 第1の記憶部と第2の記憶部を有し、
    画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、所定の分割レベルまで、前記分析フィルタ処理結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返すフィルタ手段と、
    前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる、所定の分割レベル以外の、前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第1の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第1の制御手段と、
    前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持させ、必要に応じて前記第2の記憶部が保持している前記係数を読み出して前記分析フィルタ処理に提供する第2の制御手段と
    を備える情報処理装置。
  2. 前記所定の分割レベルは分割レベル1であり、
    前記第2の制御手段は、ベースバンドの前記画像信号に対する前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持し、
    前記第1の制御手段は、前記分析フィルタ処理の演算過程として得られる係数、および、前記分割レベル1より上位の前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第1の記憶部に保持する
    請求項1に記載の情報処理装置。
  3. 前記フィルタ手段は、前記分析フィルタ処理として、前記垂直方向の前記分析フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記分析フィルタリングを行い、前記水平方向の前記分析フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記分析フィルタリングを行う
    請求項1に記載の情報処理装置。
  4. 前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記分析フィルタ処理を実行する
    請求項1に記載の情報処理装置。
  5. 前記フィルタ手段は、前記水平方向に前記分析フィルタリングを実行後、前記垂直方向に前記分析フィルタリングを実行する
    請求項1に記載の情報処理装置。
  6. 前記フィルタ手段は、前記垂直方向に前記分析フィルタリングを実行後、前記水平方向に前記分析フィルタリングを実行する
    請求項1に記載の情報処理装置。
  7. 前記第2の記憶部に比べて高速にアクセス可能な、2バンク構成の第3の記憶部をさらに有し、
    前記第2の制御手段は、前記分析フィルタ処理の演算結果として得られる、前記所定の分割レベルの、前記水平方向および前記垂直方向の低域成分の係数を、前記第3の記憶部の各メモリバンクに交互に書き込み、前記第3の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記第2の記憶部に保持させる
    請求項1に記載の情報処理装置。
  8. 前記第2の記憶部に比べて高速にアクセス可能な、2バンク構成の第3の記憶部をさらに有し、
    前記第2の制御手段は、前記第2の記憶部より読み出した前記係数を、前記第3の記憶部の各メモリバンクに交互に書き込み、前記第3の記憶部の一方のメモリバンクに前記係数を書き込むのと並行して、他方のメモリバンクに保持されている前記係数を読み出して前記分析フィルタ処理に提供する
    請求項1に記載の情報処理装置。
  9. 前記フィルタ手段による前記分析フィルタ処理の演算結果として得られる各周波数成分の係数を符号化する符号化手段をさらに備える
    請求項1に記載の情報処理装置。
  10. 情報処理装置の情報処理方法であって、
    前記情報処理装置は、
    第1の記憶部と、
    第2の記憶部と
    を備え、
    第1の制御手段は、画像信号の周波数成分を低域成分および高域成分に分割する分析フィルタリングを水平方向および垂直方向の両方に対して行う分析フィルタ処理を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第1の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返し、
    第2の制御手段は、前記第1の所定回数行われた前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持させ、
    第3の制御手段は、前記分析フィルタ処理を前記第1の所定回数実行後、前記第2の記憶部に保持されている前記係数を読み出し、
    第4の制御手段は、前記第2の記憶部に保持されている前記係数を入力とし、前記分析フィルタ処理を、前記第1の記憶部に前記分析フィルタ処理の演算過程として得られる係数、および、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を一時的に保持させて再利用することにより、第2の所定回数、前記分析フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数に対して再帰的に繰り返す
    情報処理方法。
  11. 第1の記憶部と第2の記憶部を有し、
    画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記合成フィルタ処理結果として得られる係数を、1つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返すフィルタ手段と、
    前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる所定の分割レベル以外の係数を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記分割レベル毎に独立して保持させ、必要に応じて前記第1の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第1の制御手段と、
    前記合成フィルタ処理の演算結果として得られる前記所定の分割レベルの係数を前記第2の記憶部に保持させ、必要に応じて前記第2の記憶部が保持している前記係数を読み出して前記合成フィルタ処理に提供する第2の制御手段と
    を備える情報処理装置。
  12. 前記所定の分割レベルは分割レベル1であり、
    前記第1の制御手段は、前記合成フィルタ処理の演算過程として得られる係数、および、最下位の分割レベルから分割レベル2までの前記合成フィルタ処理において演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第1の記憶部に保持し、
    前記第2の制御手段は、前記分割レベル2における前記合成フィルタ処理の演算結果として得られる前記水平方向および前記垂直方向の低域成分の係数を、前記第2の記憶部に保持する
    請求項11に記載の情報処理装置。
  13. 前記フィルタ手段は、前記合成フィルタ処理として、前記垂直方向の前記合成フィルタリングを実行可能なライン分の係数が用意され次第、前記垂直方向の前記合成フィルタリングを行い、前記水平方向の前記合成フィルタリングを実行可能なコラム分の係数が用意され次第、前記水平方向の前記合成フィルタリングを行う
    請求項11に記載の情報処理装置。
  14. 前記フィルタ手段は、所定のフィルタを用いたリフティング演算により、前記合成フィルタ処理を実行する
    請求項11に記載の情報処理装置。
  15. 符号化データを復号する復号手段をさらに備え、
    前記フィルタ手段は、前記復号手段により前記符号化データが復号されて得られた係数を入力とし、前記フィルタ処理を行う
    請求項1に記載の情報処理装置。
  16. 情報処理装置の情報処理方法であって、
    前記情報処理装置は、
    第1の記憶部と、
    第2の記憶部と
    を備え、
    第1の制御手段は、画像信号の周波数成分の低域成分および高域成分を合成する合成フィルタリングを垂直方向および水平方向の両方に対して行う合成フィルタ処理を、前記第2の記憶部に比べて小容量であり、かつ、高速にアクセス可能な前記第1の記憶部に、前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第1の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、1つ上位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返し、
    第2の制御手段は、前記第1の所定回数行われた前記合成フィルタ処理の演算結果として得られる前記係数を、前記第2の記憶部に保持させ、
    第3の制御手段は、前記合成フィルタ処理を前記第1の所定回数実行後、前記第2の記憶部に保持されている前記係数を読み出し、
    第4の制御手段は、前記第2の記憶部に保持されている前記係数を入力とし、前記合成フィルタ処理を、前記第1の記憶部に前記合成フィルタ処理の演算過程として得られる係数、および、前記合成フィルタ処理の演算結果として得られる係数を一時的に保持させて再利用することにより、第2の所定回数、前記合成フィルタ処理の演算結果として得られる係数を、1つ下位の分割レベルの前記水平方向および前記垂直方向の低域成分の係数として再帰的に繰り返す
    情報処理方法。
JP2008312180A 2008-12-08 2008-12-08 情報処理装置および方法 Expired - Fee Related JP4626707B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008312180A JP4626707B2 (ja) 2008-12-08 2008-12-08 情報処理装置および方法
US12/605,774 US8670624B2 (en) 2008-12-08 2009-10-26 Information processing apparatus and method
CN2009102535414A CN101754017B (zh) 2008-12-08 2009-12-08 信息处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008312180A JP4626707B2 (ja) 2008-12-08 2008-12-08 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2010136260A JP2010136260A (ja) 2010-06-17
JP4626707B2 true JP4626707B2 (ja) 2011-02-09

Family

ID=42231137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008312180A Expired - Fee Related JP4626707B2 (ja) 2008-12-08 2008-12-08 情報処理装置および方法

Country Status (3)

Country Link
US (1) US8670624B2 (ja)
JP (1) JP4626707B2 (ja)
CN (1) CN101754017B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4793320B2 (ja) * 2007-05-17 2011-10-12 ソニー株式会社 情報処理装置および方法
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
KR102440368B1 (ko) * 2015-10-21 2022-09-05 삼성전자주식회사 디코딩 장치, 전자 장치 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178644A (ja) * 1996-12-18 1998-06-30 Sharp Corp 動画像復号装置
JP2000059781A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd ウェーブレット変換装置
JP2000350208A (ja) * 1999-04-15 2000-12-15 Canon Inc デジタル信号変換装置及び方法
JP2008288901A (ja) * 2007-05-17 2008-11-27 Sony Corp 画像データ処理装置および方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO951397A0 (en) * 1997-09-29 1997-10-23 Canon Information Systems Research Australia Pty Ltd A method for digital data compression
US7536455B2 (en) * 2001-03-18 2009-05-19 At&T Corp. Optimal combination of sampled measurements
US20060206744A1 (en) * 2005-03-08 2006-09-14 Nec Laboratories America, Inc. Low-power high-throughput streaming computations
CN1717049A (zh) * 2005-06-29 2006-01-04 西安电子科技大学 基于行的小波变换的vlsi结构
JP2007025117A (ja) 2005-07-14 2007-02-01 Seiko Epson Corp 配向膜の製造装置、液晶装置、及び電子機器
TW200746655A (en) 2005-11-18 2007-12-16 Sony Corp Encoding device and method, decoding device and method, and transmission system
JP4371120B2 (ja) 2006-05-16 2009-11-25 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4360379B2 (ja) 2006-05-16 2009-11-11 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4182447B2 (ja) 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4356030B2 (ja) 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
JP4356028B2 (ja) 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
JP4356032B2 (ja) 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
JP4356031B2 (ja) 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
JP4356029B2 (ja) 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法
JP4488027B2 (ja) 2007-05-17 2010-06-23 ソニー株式会社 情報処理装置および方法、並びに、情報処理システム
US7797110B2 (en) * 2007-06-26 2010-09-14 Shin's Geophysics Method for velocity analysis using waveform inversion in Laplace domain for geophysical imaging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178644A (ja) * 1996-12-18 1998-06-30 Sharp Corp 動画像復号装置
JP2000059781A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd ウェーブレット変換装置
JP2000350208A (ja) * 1999-04-15 2000-12-15 Canon Inc デジタル信号変換装置及び方法
JP2008288901A (ja) * 2007-05-17 2008-11-27 Sony Corp 画像データ処理装置および方法

Also Published As

Publication number Publication date
CN101754017A (zh) 2010-06-23
JP2010136260A (ja) 2010-06-17
US20100142837A1 (en) 2010-06-10
US8670624B2 (en) 2014-03-11
CN101754017B (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
US8433147B2 (en) Encoding apparatus and method, and decoding apparatus and method
US8395634B2 (en) Method and apparatus for processing information
WO2007024413A2 (en) Transpose buffering for video processing
US8281314B2 (en) Information processing device and method
JP2002041285A (ja) データ処理装置およびデータ処理方法
US8369635B2 (en) Information processing device and method
US8681862B2 (en) Moving picture decoding apparatus and moving picture decoding method
JP4626707B2 (ja) 情報処理装置および方法
JP4356032B2 (ja) 情報処理装置および方法
US8238434B2 (en) Apparatus and method for processing wavelet information
US20080109815A1 (en) Task distribution method
JP2008186345A (ja) データ処理方法及びデータ処理装置
US8213731B2 (en) Information processing device and method
JP4097108B2 (ja) ウェーブレット変換装置及び符号化復号化装置
US6538583B1 (en) Method and apparatus for context modeling
CN102611889A (zh) 图像处理装置和方法
JP4670947B2 (ja) 情報処理装置および方法
JP4793320B2 (ja) 情報処理装置および方法
US7903885B2 (en) Data converting apparatus and method
JP2006128830A (ja) 再生装置、データ処理システム、再生方法、プログラムおよび記録媒体
WO2020252730A1 (zh) 位平面解码的方法和装置
JP5200792B2 (ja) 画像圧縮装置及び方法並びにプログラム
WO2020220179A1 (zh) 小波逆变换电路和方法
JP4117866B2 (ja) ウェーブレット変換装置及び符号化復号化装置
WO2024082151A1 (zh) 编解码方法、编码器、解码器以及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100929

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: 20101012

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: 20101025

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees