Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4525704B2 - 符号化装置および方法、記録媒体、並びにプログラム。 - Google Patents
[go: Go Back, main page]

JP4525704B2 - 符号化装置および方法、記録媒体、並びにプログラム。 - Google Patents

符号化装置および方法、記録媒体、並びにプログラム。 Download PDF

Info

Publication number
JP4525704B2
JP4525704B2 JP2007131382A JP2007131382A JP4525704B2 JP 4525704 B2 JP4525704 B2 JP 4525704B2 JP 2007131382 A JP2007131382 A JP 2007131382A JP 2007131382 A JP2007131382 A JP 2007131382A JP 4525704 B2 JP4525704 B2 JP 4525704B2
Authority
JP
Japan
Prior art keywords
coefficient
data
unit
buffer
coefficient data
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
JP2007131382A
Other languages
English (en)
Other versions
JP2008288841A (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 JP2007131382A priority Critical patent/JP4525704B2/ja
Priority to US12/109,857 priority patent/US8594427B2/en
Publication of JP2008288841A publication Critical patent/JP2008288841A/ja
Application granted granted Critical
Publication of JP4525704B2 publication Critical patent/JP4525704B2/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/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/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、符号化装置および方法、記録媒体、並びにプログラムに関し、特に、符号化処理による遅延時間を短縮させることができるようにした符号化装置および方法、記録媒体、並びにプログラムに関する。
従来の代表的な画像圧縮方式として、ISO(International Standards Organization)によって標準化されたJPEG(Joint Photographic Experts Group)がある。これは離散コサイン変換(Discrete Cosine Transform ; DCT)を用い、比較的高いビットが割り当てられる場合には、良好な符号化画像および復号画像を供することが知られている。
近年では画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタとを組み合わせたフィルタによって複数の帯域に分解し、帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、DCT変換で問題になる高圧縮でのブロック歪みが無いことから、DCTに代わる新たな技術として有力視されている。
2001年1月に国際標準化が完了したJPEG2000は、このウェーブレット変換に高能率なエントロピ符号化(ビットプレーン単位のビット・モデリングと算術符号化)を組み合わせた方式を採用しており、JPEGに比べて符号化効率の大きな改善を実現している。
ウェーブレット変換処理(例えば特許文献1参照)は基本的に画像データを入力して、水平方向のフィルタリングと垂直方向のフィルタリングを行いながら、低域成分を階層的に分解する手段を用いる。
このウェーブレット変換処理により画像データが変換された係数データ(周波数成分)を、元の画像データに変換するウェーブレット逆変換処理は、最上位の分解レベルから最下位の分解レベルまで高域成分と低域成分を合成フィルタ処理しながら、最終的に画像を復元する処理を行う。
このようなウェーブレット変換・ウェーブレット逆変換を利用した符号化システムは、例えばTV会議システムやビデオゲームシステム等のように、画像データの伝送を行うシステムに利用されることが多い。つまり、送信側において、画像データがウェーブレット変換され、得られた係数データがエントロピ復号されて符号化データとして受信側に伝送される。受信側においては、取得した符号化データがエントロピ復号されて、得られた係数データがウェーブレット逆変換されて元の画像データが復元される。このような処理の流れが一般的である。
特開平10−283342号公報
しかしながら、上述したような、例えばTV会議システムやビデオゲームシステム等のような画像伝送システムにおいては、画像データの伝送を低遅延で行うことが望ましい場合が多い。
従って、符号化処理による遅延時間のさらなる短縮も求められる。
本発明は、このような従来の実情に鑑みて提案されたものであり、符号化処理による遅延時間をより短縮させることができるようにするものである。
本発明の一側面の符号化装置は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、前記係数データを格納する係数格納手段と、前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段とを備える。
前記書き込み手段は、前記係数データを前記サブバンド毎に領域を分けて格納する書き込みバッファを介して、前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを前記係数格納手段に書き込み、前記読み出し手段は、前記係数データを前記サブバンド毎に領域を分けて格納する読み出しバッファを介して、前記係数格納手段から前記係数データを前記所定順に読み出すことができる。
前記書き込み手段および前記読み出し手段は、前記書き込み手段による前記書き込みバッファの各領域と前記係数格納手段の領域との間のデータ転送、並びに、前記読み出し手段による前記読み出しバッファの各領域と前記係数格納手段の領域との間のデータ転送を互いに異なるチャンネルにおいて行うことができる。
前記読み出し手段は、前記エントロピ符号化手段により次に前記エントロピ符号化される前記係数データを、前記係数データに対する前記エントロピ符号化が開始される前に、前記係数格納手段から先読みし、前記読み出しバッファに転送することができる。
前記フィルタ手段は、リフティング演算を用いて前記分析フィルタ処理を行うことができる。
前記書き込み手段は、前記フィルタ手段による最終の分解レベルの前記分析フィルタ処理により生成された前記係数データを、前記係数格納手段に書き込まずに前記エントロピ符号化手段に供給することができる。
前記フィルタ手段による前記分析フィルタ処理の途中で発生する中間データを格納する、前記係数格納手段よりもアクセス速度が速い中間データ格納手段をさらに備えることができる。
本発明の一側面の符号化方法は、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行い、前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて係数格納部に書き込み、前記係数格納部の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出し、前記係数格納部から前記所定順に読み出された前記係数データをエントロピ符号化するステップを含む。
本発明の一側面の記録媒体は、コンピュータを、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、前記係数データを格納する係数格納手段と、前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段として機能させるためのプログラムを記録する。
本発明の一側面のプログラムは、コンピュータを、画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、前記係数データを格納する係数格納手段と、前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、前記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段として機能させる。
本発明の一側面においては、画像データに対して、画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理が、その生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行われ、分析フィルタ処理により生成された係数データが、サブバンド毎に領域を分けて係数格納部に書き込まれ、係数格納部の各領域から、サブバンド毎に分けられた係数データが所定順に読み出され、係数格納部から所定順に読み出された係数データがエントロピ符号化される。
本発明の一側面によれば、画像データが周波数帯域毎に分解された係数データを所定の順番に並び替えることができる。特に、本発明の一側面によれば、復号処理による遅延時間をより短縮させることができる。
以下、図面を参照して本発明を適用した実施の形態について説明する。最初に符号化部の構成について説明する。
図1は、本発明を適用した符号化部の構成例を示すブロック図である。図1に示される符号化部10は、ソフトウェアプログラムにより構成され、画像データを符号化して符号化データを生成するソフトウェアエンコーダが所定の情報処理装置のCPU(Central Processing Unit)またはSPU(Synergistic Processing Unit)などにより実行されることにより実現される機能を模式的に示したものである。図1に示されるように符号化部10は、ウェーブレット変換部21、係数並び替え部22、エントロピ符号化部23、途中計算用バッファ部24、および、係数並び替え用バッファ部25の機能を有する。
符号化部10に入力された画像データ(以下、入力画像データとも称する)は、ウェーブレット変換部21を介して途中計算用バッファ部24に一時的に格納される。ウェーブレット変換部21は、途中計算用バッファ部24に格納された画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部21は、途中計算用バッファ部24から画像データを読み出して分析フィルタによりフィルタ処理(以下、分析フィルタ処理または分析フィルタリングとも称する)を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを途中計算用バッファ部24に格納する。ウェーブレット変換部21は、水平分析フィルタと垂直分析フィルタとを有し、画像データ群に対して、画面水平方向と画面垂直方向の両方について分析フィルタ処理を行う。ウェーブレット変換部21は、途中計算用バッファ部24に格納された低域成分の係数データを再度読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、途中計算用バッファ部24に格納される。
ウェーブレット変換部21は、分解レベルが所定レベル(以下、最終レベルとも称する)に達するまでこの処理を繰り返しながら、適宜途中計算用バッファ部24から係数データを読み出し、読み出された係数データを係数並び替え用バッファ部25に書き込む。なお、ウェーブレット変換部21は、最終レベルの分析フィルタ処理により生成した係数データについては、係数並び替え用バッファ部25に書き込まずに、係数並び替え部22に直接供給する。
係数並び替え部22は、ウェーブレット変換部21から供給された係数データをエントロピ符号化部23に供給する。また、係数並び替え部22は、係数並び替え用バッファ部25に書き込まれた係数データを所定の順序で読み出し、エントロピ符号化部23に供給する。
エントロピ符号化部23は、供給された係数データを、所定の方法で量子化し、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。エントロピ符号化部23は、生成した符号化データを符号化部10の外部に出力する。
次に、図1のウェーブレット変換部21で行われる処理について、より詳細に説明する。先ず、ウェーブレット変換について、概略的に説明する。画像データに対するウェーブレット変換では、図2に概略的に示されるように、画像データを空間周波数の高い帯域と低い帯域とに分解する処理を、分解の結果得られる空間周波数の低い帯域のデータに対して再帰的に繰り返す。
上述したように、分析フィルタには、画像データに対して画面水平方向に分析フィルタ処理を行う水平分析フィルタと、画面垂直方向に分析フィルタ処理を行う垂直分析フィルタとがあり、各方向に対して1回ずつ分析フィルタ処理が行われることにより、画像データは4つの帯域(サブバンド)に分解される。ウェーブレット変換部11は、分析フィルタ処理結果の、水平方向および垂直方向のいずれにおいても空間周波数の低い帯域に対して、上述した水平方向および垂直方向の分析フィルタ処理を再帰的に繰り返す(つまり階層的に繰り返す)。
図2は、分析フィルタ処理が4回繰り返された場合の例を概略的に示す図である。図2の例では、水平方向および垂直方向の分析フィルタ処理が再帰的に4回繰り替えされることにより、1ピクチャの画像データの周波数成分が、13個の階層的なサブバンドに分解されている。このときの各サブバンドのデータ、つまり、ベースバンドの画像データが周波数帯域毎に分解された各周波数成分が係数データ(以下、単に係数と称する場合もある)である。
図2において、実線の四角および点線の角丸四角のそれぞれは、分析フィルタ処理により生成されるサブバンドを示しており、各サブバンドに表記される数字は、そのサブバンドの階層のレベルを示す。つまり、ベースバンドの画像データに対して何回分析フィルタ処理することにより得られるサブバンドであるかを示している。また、各サブバンドに表記される「L」および「H」は、それぞれ低域成分および高域成分を表しており、左側が水平方向の分析フィルタ処理結果、右側が垂直方向の分析フィルタ処理結果を示している。
図2の例では、ベースバンドの画像データに対して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)が生成されている。
このように、低域成分に対して繰り返し変換および分解を行うのは、画像のエネルギが低域成分に集中しているためである。このことは、図3Aに一例が示される分解レベル=1の状態から、図3Bに一例が示される分解レベル=3の状態のように分解レベルを進めていくに従って、図3Bに示されるようにしてサブバンドが形成されていくことからも、理解される。このように分析フィルタ処理を再帰的に処理を行い、階層的なサブバンドを生成し、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、エントロピ符号化を行う際に効率的な圧縮符号化を可能とする。
なお、以下において、分析フィルタ処理により生成される4つのサブバンドのうち、再度分析フィルタ処理が行われる、水平方向および垂直方向の両方に対して低域成分であるサブバンド「LL」を低域サブバンドと称し、それ以上分析フィルタ処理が行われないその他のサブバンド「LH」、「HL」、および「HH」を高域サブバンドと称する。
ウェーブレット変換部11は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、上述のような処理を行う。なお、デジタルフィルタは、通常、複数タップ長のインパルス応答すなわちフィルタ係数を持っているため、フィルタ処理を行えるだけのベースバンドの画像データ(入力画像データ)または係数データを予めバッファリングしておく必要がある。また、ウェーブレット変換を多段にわたって行う場合も同様に、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。
このウェーブレット変換の具体的な例として、5×3フィルタを用いた方法について説明する。この5×3フィルタを用いた方法は、JPEG2000規格でも採用されており、少ないフィルタタップ数でウェーブレット変換を行うことができる点で、優れた方法である。
5×3フィルタのインパルス応答(Z変換表現)は、次の式(1)および式(2)に示すように、低域フィルタH0(z)と、高域フィルタH1(z)とから構成される。
0(z)=(−1+2z-1+6z-2+2z-3−z-4)/8 ・・・(1)
1(z)=(−1+2z-1−z-2)/2 ・・・(2)
これら式(1)および式(2)によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、リフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。
図4を用いて、5×3フィルタに対してリフティング技術を適用した場合の、ウェーブレット変換を行う分析フィルタ側の処理について、概略的に説明する。
図4において、最上段部、中段部および最下段部は、それぞれ入力画像の画素列、高域成分出力および低域成分出力を示す。最上段は、入力画像の画素列に限らず、先のフィルタ処理で得られた係数でもよい。ここでは、最上段部が入力画像で画素列であるものとし、黒の四角印(■)が偶数番目(最初を0番目とする)の画素またはライン、黒丸印(●)が奇数番目の画素またはラインとする。
先ず第1段階として、次式(3)により入力画素列から高域成分の係数di 1を生成する。
di 1=di 0-1/2(si 0+si+1 0) ・・・(3)
次に第2段階として、この生成された高域成分の係数と、入力画像の奇数番目の画素とを用いて、次式(4)により低域成分の係数si 1を生成する。
si 1=si 0+1/4(di-1 1+di 1) ・・・(4)
分析フィルタ側では、このようにして、フィルタリング処理により入力画像の画素データを低域成分と高域成分とに分解する。
図5を用いて、ウェーブレット変換により生成された係数を復元するウェーブレット逆変換を行う合成フィルタ側の処理(以下、合成フィルタ処理、合成フィルタリング、または、合成処理とも称する)について、概略的に説明する。この図5は、上述の図4と対応し、5×3フィルタを用い、リフティング技術を適用した例を示す。図5において、最上段部は、ウェーブレット変換により生成された入力係数を示し、黒丸印(●)が高域成分の係数、黒の四角印(■)が低域成分の係数をそれぞれ示す。
先ず第1段階として、次式(5)に従い、入力された低域成分および高域成分の係数から、偶数番目(最初を0番目とする)の係数si 0が生成される。
si 0=si 1-1/4(di-1 1+di 1) ・・・(5)
次に第2段階として、次式(6)に従い、上述の第1段階で生成された偶数番目の係数si 0と、入力された高域成分の係数di 1とから、奇数番目の係数di 0が生成される。
di 0=di 1+1/2(si 0+si+1 0) ・・・(6)
合成フィルタ側では、このようにして、フィルタリング処理により低域成分および高域成分の係数を合成し、ウェーブレット逆変換を行う。
次に、このウェーブレット変換方法について、さらに具体的に説明する。図6は、5×3フィルタのリフティングによるフィルタ処理を、分解レベル=2まで実行した例を示している。なお、図6において、図の左側に分析フィルタとして示される部分は、図1のウェーブレット変換部21のフィルタである。また、図の右側に合成フィルタとして示される部分は、後述するウェーブレット逆変換部のフィルタである。
なお、図6では、説明の簡略化のため、実際の画像データは二次元の情報であるが、図の奥行き方向に水平方向の画素が存在するものとして一次元により表し、さらに、水平方向の分析フィルタ処理および合成フィルタ処理についての記載は省略している。
図6において、左端列は、原画像データのライン上の対応する位置にある画素データが縦方向に並べられて示されている。すなわち、ウェーブレット変換部21におけるフィルタ処理は、垂直フィルタを用いて画面上を画素が縦に走査されて行われる。左端から1列目乃至3列目が分解レベル=1のフィルタ処理を示し、4列目乃至6列目が分解レベル=2のフィルタ処理を示す。左端から2列目は、左端の原画像データの画素に基づく高域成分出力、左端から3列目は、原画像データおよび高域成分出力に基づく低域成分出力を示す。分解レベル=2のフィルタ処理は、左端から4列目乃至6列目に示されるように、分解レベル=1のフィルタ処理の出力に対して処理がなされる。
分解レベル=1のフィルタ処理において、第1段階のフィルタ処理として、原画像データの画素に基づき高域成分の係数データが算出され、第2段階のフィルタ処理として、第1段階のフィルタ処理で算出された高域成分の係数データと、原画像データの画素とに基づき低域成分の係数データが算出される。分解レベル=1の一例のフィルタ処理を、図6における左側(分析フィルタ側)の第1列目乃至第3列目に示す。算出された高域成分の係数データは、図1の係数並び替え用バッファ部25に格納される。また、算出された低域成分の係数データは、図1の途中計算用バッファ部24に格納される。
図6においては、係数並び替え用バッファ部25は、一点鎖線で囲まれた部分として示し、途中計算用バッファ部24は、点線で囲まれた部分として示す。
途中計算用バッファ部24に保持された分解レベル=1のフィルタ処理の結果に基づき、分解レベル=2のフィルタ処理が行われる。分解レベル=2のフィルタ処理では、分解レベル=1のフィルタ処理において低域成分の係数として算出された係数データを、低域成分および高域成分を含んだ係数データと見做して、分解レベル=1と同様のフィルタ処理を行う。分解レベル=2のフィルタ処理により算出された、高域成分の係数データおよび低域成分の係数データは、係数並び替え用バッファ部25には格納されずに、係数並び替え部22に供給される。また、算出された高域成分の係数データは、図1の途中計算用バッファ部24に格納される。
ウェーブレット変換部21では、上述したようなフィルタ処理を、画面の水平方向および垂直方向にそれぞれ行う。例えば、先ず、分解レベル=1のフィルタ処理を水平方向に行い、生成された高域成分および低域成分の係数データを途中計算用バッファ部24に格納する。次に、途中計算用バッファ部24に格納された係数データに対して、垂直方向に分解レベル=1のフィルタ処理を行う。この分解レベル=1の水平および垂直方向の処理により、高域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域HHおよび領域HLと、低域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域LHおよび領域LLとの4領域が形成される。
そして、分解レベル=2では、水平方向および垂直方向のそれぞれについて、分解レベル=1で生成された低域成分の係数データに対してフィルタ処理が行われる。すなわち、分解レベル=2では、分解レベル=1で分解されて形成された領域LLがさらに4つに分解され、領域LL内にさらに領域HH、領域HL、領域LHおよび領域LLが形成される。
ウェーブレット変換部21は、ウェーブレット変換によるフィルタ処理を、画面の縦方向について、数ライン毎の処理に分割して、複数回に分けて段階的に行うようにしている。図6の例では、画面上の第1ラインからの処理になる1回目の処理は、7ラインについてフィルタ処理を行い、8ライン目からの処理になる2回目以降の処理は、4ライン毎にフィルタ処理を行っている。このライン数は、高域成分と低域成分とに2分解した後に、1ライン分の最低域成分が生成されるために必要なライン数に基づく。
なお、以下、符号化側(分析フィルタ側)において、この最低域成分の1ライン分(最低域成分のサブバンドの1ライン分の係数データ)を生成するために必要な、他のサブバンドも含めたラインの集まりを、プレシンクト(またはラインブロック)と称する。ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ若しくはフィールド内、または各サブバンド内において形成される1行分の画素データ若しくは係数データのことを示す。すなわち、符号化側において、プレシンクト(ラインブロック)とは、ウェーブレット変換前の元の画像データにおける、ウェーブレット変換後の最低域成分のサブバンド1ライン分の係数データを生成するために必要なライン数分の画素データ群、または、その画素データ群をウェーブレット変換して得られる各サブバンドの係数データ群のことを示す。
図6によれば、分解レベル=2のフィルタ処理結果で得られる係数C5は、係数C4および途中計算用バッファ部24に格納された係数Caに基づき算出され、係数C4は、途中計算用バッファ部24に格納された係数Ca、係数Cbおよび係数Ccに基づき算出される。さらに、係数Ccは、係数並び替え用バッファ部25に格納される係数C2および係数C3、並びに、第5ラインの画素データに基づき算出される。また、係数C3は、第5ライン乃至第7ラインの画素データに基づき算出される。このように、分解レベル=2における低域成分の係数C5を得るためには、第1ライン乃至第7ラインの画素データが必要とされる。
これに対して、2回目以降のフィルタ処理においては、前回までのフィルタ処理で既に算出され途中計算用バッファ部24または係数並び替え用バッファ部25に格納されている係数データを用いることができるので、必要なライン数が少なくて済む。
すなわち、図6によれば、分解レベル=2のフィルタ処理結果で得られる低域成分の係数のうち、係数C5の次の係数である係数C9は、係数C4および係数C8、並びに、途中計算用バッファ部24に格納された係数Ccに基づき算出される。係数C4は、上述した1回目のフィルタ処理により既に算出され、途中計算用バッファ部24に格納されている。同様に、係数Ccは、上述の1回目のフィルタ処理により既に算出され、途中計算用バッファ部24に格納されている。したがって、この2回目のフィルタ処理においては、係数C8を算出するためのフィルタ処理のみが、新たになされることになる。この新たなフィルタ処理は、第8ライン乃至第11ラインがさらに用いられてなされる。
このように、2回目以降のフィルタ処理は、前回までのフィルタ処理により算出され途中計算用バッファ部24および係数並び替え用バッファ部25に格納されたデータを用いることができるので、それぞれ4ライン毎の処理で済むことになる。
なお、画面上のライン数が符号化のライン数と合致しない場合は、原画像データのラインを所定の方法で複製してライン数を符号化のライン数と合わせて、フィルタ処理を行う。
このように、最低域成分1ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて(プレシンクト単位で)行うことで、符号化データを伝送した際に低遅延で復号画像を得ることを可能としている。
ウェーブレット変換を行うためには、ウェーブレット変換そのものを実行するために用いられる第1のバッファと、所定の分解レベルまで処理を実行する間に生成される係数を格納するための第2のバッファとが必要とされる。第1のバッファは、途中計算用バッファ部24に対応し、図6においては点線で囲まれて示されている。また、第2のバッファは、係数並び替え用バッファ部25に対応し、図6においては一点鎖線に囲まれて示されている。第2のバッファに格納された係数は、復号の際に用いられるため、後段のエントロピ符号化処理の対象とされる。
次に、図1の係数並び替え部22の処理について説明する。係数並び替え部22は、ウェーブレット変換部21で生成された係数データを、合成処理において処理される順に並び替えて、エントロピ符号化部23に供給する。
既に説明したように、ウェーブレット変換においては、高域成分側から低域成分側へと係数が生成されていく。図6の例では、1回目において、原画像の画素データにより、分解レベル=1のフィルタ処理で、高域成分の係数C1、係数C2および係数C3が順次生成される。そして、分解レベル=1のフィルタ処理で得られた低域成分の係数データに対して分解レベル=2のフィルタ処理を行い、低域成分の係数C4および係数C5が順次生成される。すなわち、第1回目では、係数C1、係数C2、係数C3、係数C4、係数C5の順に、係数データが生成される。この係数データの生成順は、ウェーブレット変換の原理上、必ずこの順序(高域から低域の順)になる。
これに対して、復号側(合成フィルタ側)では、低遅延で即座に復号を行うためには低域成分から画像の生成および出力を行う必要がある。そのため、符号化側で生成された係数データを最低域成分側から高域成分側に向けて並び替えて復号側に供給することが望ましい。
図6の例を用いて、より具体的に説明する。図6の右側は、逆ウェーブレット変換を行う合成フィルタ側を示す。復号側の、出力画像データの第1ライン目を含む1回目の合成処理(逆ウェーブレット変換処理)は、符号化側の1回目のフィルタ処理で生成された最低域成分の係数C4および係数C5と、係数C1とを用いて行われる。
すなわち、1回目の合成処理においては、係数C5、係数C4、係数C1の順に符号化側から復号側に係数データを供給し、復号側では、分解レベル=2に対応する合成処理である合成レベル=2の処理で、係数C5および係数C4に対して合成処理を行って係数Cfを生成し、バッファに格納する。そして、分解レベル=1に対応する合成処理である合成レベル=1の処理で、この係数Cfと係数C1に対して合成処理を行って、第1ラインを出力する。
このように、1回目の合成処理においては、符号化側で係数C1、係数C2、係数C3、係数C4、係数C5の順に生成された係数データが、係数C5、係数C4、係数C1、・・・の順に並び替えられて復号側に供給される。
なお、図6の右側に示す合成フィルタ側では、符号化側から供給される係数について、括弧内に符号化側での係数の番号を記し、括弧外に合成フィルタのライン順を記す。例えば係数C1(5)は、図6の左側の分析フィルタ側では係数C5であって、合成フィルタ側では第1ライン目であることを示す。
符号化側の2回目以降のフィルタ処理で生成された係数データによる復号側の合成処理は、前回の合成処理の際に合成あるいは符号化側から供給された係数データを用いて行うことができる。図6の例では、符号化側の2回目のフィルタ処理で生成された低域成分の係数C8および係数C9を用いて行う、復号側の2回目の合成処理は、符号化側の1回目のフィルタ処理で生成された係数C2および係数C3がさらに必要とされ、第2ライン乃至第5ラインが復号される。
すなわち、2回目の合成処理においては、係数C9、係数C8、係数C2、係数C3の順に符号化側から復号側に係数データを供給する。復号側では、合成レベル=2の処理において、係数C8および係数C9と、1回目の合成処理の際に符号化側から供給された係数C4とを用いて係数Cgを生成し、バッファに格納する。この係数Cgと、上述の係数C4と、1回目の合成処理により生成されバッファに格納された係数Cfとを用いて係数Chを生成し、バッファに格納する。
そして、合成レベル=1の処理において、合成レベル=2の処理で生成されバッファに格納された係数Cgおよび係数Chと、符号化側から供給された係数C2(合成フィルタでは係数C6(2)と示されている)および係数C3(合成フィルタでは係数C7(3)と示されている)とを用いて合成処理が行われ、第2ライン乃至第5ラインが復号される。
このように、2回目の合成処理においては、符号化側で係数C2、係数C3、(係数C4、係数C5)、係数C6、係数C7、係数C8、係数C9の順に生成された係数データが、係数C9、係数C8、係数C2、係数C3、・・・の順に並び替えられて復号側に供給される。
3回目以降の合成処理においても、同様にして、係数並び替え用バッファ部25に格納された係数データが所定の順序に並び替えられて復号側に供給され、4ラインずつ、ラインが復号される。
なお、符号化側において画面の下端のラインを含むフィルタ処理(以下、最後の回と呼ぶ)に対応する復号側の合成処理では、それまでの処理で生成されバッファに格納された係数データを全て出力することになるため、出力ライン数が多くなる。図6の例では、最後の回に8ラインが出力される。
なお、係数並び替え部22による係数データの並び替え処理は、例えば、係数並び替え用バッファ部25に格納された係数データを読み出す際の読み出しアドレスを、所定の順序に設定することでなされる。
なお、以下、復号側において、1回の合成処理で新たに必要となる係数データ群、すなわち、その回の合成処理で必要な係数データのうち前回までの合成処理において使用された係数データを除く係数データ群、および、1回の合成処理で復号される画素データ群の集まりをプレシンクトと称する。図6の例においては、二重鎖線で区切られた領域が、それぞれ、符号化側のプレシンクトおよび復号側のプレシンクトを示しており、符号化側のn番目のプレシンクトと復号側のn番目のプレシンクトの範囲は、必ずしも一致しない。
図7を用いて、上述までの処理をより具体的に説明する。図7は、5×3フィルタを用いて、分解レベル=2までウェーブレット変換によるフィルタ処理を施した例である。ウェーブレット変換部21において、図7Aに一例が示されるように、入力画像データの第1ラインから第7ラインに対して1回目のフィルタ処理が水平および垂直方向にそれぞれ行われる(図7AのIn−1)。
1回目のフィルタ処理の分解レベル=1の処理において、係数C1、係数C2、および係数C3の3ライン分の係数データが生成され、図7Bに一例が示されるように、分解レベル=1で形成される領域HH、領域HLおよび領域LHのそれぞれに配置される(図7BのWT−1)。
また、分解レベル=1で形成される領域LLは、分解レベル=2による水平および垂直方向のフィルタ処理でさらに4分解される。分解レベル=2で生成される係数C5および係数C4は、分解レベル=1による領域LL内において、領域LLに係数C5による1ラインが配置され、領域HH、領域HLおよび領域LHのそれぞれに、係数C4による1ラインが配置される。
ウェーブレット変換部21による2回目以降のフィルタ処理では、4ライン毎にフィルタ処理が行われ(図7AのIn−2・・・)、分解レベル=1で2ラインずつの係数データが生成され(図7BのWT−2)、分解レベル=2で1ラインずつの係数データが生成される。
図6の2回目の例では、分解レベル=1のフィルタ処理で係数C6および係数C7の2ライン分の係数データが生成され、図7Bに一例が示されるように、分解レベル1で形成される領域HH、領域HLおよび領域LHの、1回目のフィルタ処理で生成された係数データの次から配置される。同様に、分解レベル=1による領域LL内において、分解レベル=2のフィルタ処理で生成された1ライン分の係数C9が領域LLに配置され、1ライン分の係数C8が領域HH、領域HLおよび領域LHにそれぞれ配置される。
図7Bのようにウェーブレット変換されたデータを復号した際には、図7Cに一例が示されるように、符号化側の第1ライン乃至第7ラインによる1回目のフィルタ処理に対して、復号側の1回目の合成処理による第1ラインが出力される(図7CのOut−1)。以降、符号化側の2回目から最後の回の前までのフィルタ処理に対して、復号側で4ラインずつが出力される(図7CのOut−2・・・)。そして、符号化側の最後の回のフィルタ処理に対して、復号側で8ラインが出力される。
ウェーブレット変換部21で高域成分側から低域成分側へと生成された係数データは、最終レベルの分析フィルタ処理により生成された係数データを除いて、係数並び替え用バッファ部25に順次格納される。係数並び替え部22は、上述した係数データの並び替えが可能となるまで係数並び替え用バッファ部25に係数データが蓄積されると、合成処理において処理される順に並び替えながら係数データを係数並び替え用バッファ部25から読み出す。読み出された係数データは、エントロピ符号化部23に順次、供給される。
次に、9×7フィルタに対してリフティング技術を適用した場合の、ウェーブレット変換を行う分析フィルタ側の処理について、概略的に説明する。
図8は、9×7フィルタのリフティング構成を示している。図8の例において、1段目(最上段)は、入力画像のサンプル群(画素列)を示し、2,3段目は、それぞれステップA1およびステップA2の処理で生成される成分(係数)を示す。また、4段目は、ステップA3の処理で生成される高域成分出力を示し、5段目は、ステップA4の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタリングで得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印(■)が偶数番目のサンプルまたはライン、丸印(●)が奇数番目のサンプルまたはラインとする。
9×7フィルタに対してリフティング技術を適用した分析フィルタリングにおいては、ステップA3の処理で高域成分が得られ、ステップA4の処理で低域成分が得られる。なお、ステップA1乃至ステップA4の処理は、次の式(7)乃至式(10)で表される。
Figure 0004525704
このように、リフティング技術を適用した分析フィルタリングにおいては、ステップA1およびA2の処理が行われ、ステップA3で、高域成分の係数が生成された後に、ステップA4で、低域成分の係数が生成される。
図9は、水平方向の係数群に対しての水平分析フィルタリングを、図8のリフティング構成により実行する場合の例を示している。
図9の例においては、入力される水平方向の係数に対して、図8で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域成分の係数(以下、高域係数とも称する)と低域成分の係数(以下、低域係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列(コラム)番号を示している。
さらに、上から1段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について上から順に説明する。図9の上段には、水平方向にコラム番号4乃至6の3コラムの係数が入力されて、水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。
この水平リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、コラム番号0乃至4の4コラムの係数の入力が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号5および6の2コラムの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるコラム番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号4乃至6の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、途中計算用バッファ部24に格納しておく必要がある。
したがって、1番目の水平リフティング演算において途中計算用バッファ部24に格納されていた太線実線で示される3つの係数と、入力されたコラム番号4乃至6の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、途中計算用バッファ部24に格納される。
コラム番号6の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号6乃至8の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図9の下段に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号7および8の2コラムの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるコラム番号6の係数も必要であることがわかる。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算で途中計算用バッファ部24に格納されている。
したがって、2番目の水平リフティング演算で途中計算用バッファ部24に格納されていた太線実線で示される3つの係数と、入力されたコラム番号6乃至8の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部24に格納される。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタリングが完了される。
なお、以上においては、リフティング構成による1ライン分の水平分析フィルタリングの例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により垂直分析フィルタリングを行う動作を、図10を参照して説明する。なお、図10において、図8および図9と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
図10の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
図中左から順に説明すると、先頭の入力ライン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)が付されている係数は高域係数である。
そして、図10の右側に示すように、入力ライン0の水平フィルタリングの結果の1乃至11が付された係数は、上から1段目に、手前から奥への水平方向に並べて展開される。入力ライン1の水平フィルタリングの結果の1乃至11が付された係数は、上から2段目に、手前から奥への水平方向に並べて展開される。入力ライン2の水平フィルタリングの結果の係数は、上から3段目に、手前から奥への水平方向に並べて展開される。
以上のように、各入力ライン0乃至入力ラインnに対しての水平フィルタリングの結果の係数が、図10の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタリングの結果の1乃至11が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる。
次に、垂直分析フィルタリングについて具体的に説明する。図11は、水平分析フィルタリングの結果の係数を垂直方向に並べ、垂直方向の分析フィルタリングを、図8のリフティング構成により実行する場合の例を示している。
なお、この図は、図10の右側に概念的に示した水平方向に展開されて並ぶ係数1つに着目したものであり、実際の2次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分(サブバンド)の水平方向の係数の個数だけ、垂直方向の分析フィルタリングの計算が必要になることは自明である。
図11の例においては、垂直方向の係数に対して、図8で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
さらに、左から1列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について左から順に説明する。図11の左側には、垂直方向にライン番号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つの係数を、途中演算用の係数として、途中計算用バッファ部24に格納しておく必要がある。
したがって、1番目の垂直リフティング演算で途中計算用バッファ部24に格納されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出され入力されるライン番号4乃至6の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部24に格納される。
ライン番号6の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号6乃至8の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図11の右側に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号7および8の2ラインの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるライン番号6の係数も必要であることがわかる。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で途中計算用バッファ部24に格納されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号6乃至8の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、途中計算用バッファ部24に格納される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
次に、図12乃至図14を用いて、9×7フィルタを用いたリフティング技術を適用して、ウェーブレット変換により生成された係数を復元するウェーブレット逆変換を行う合成フィルタ側の処理について説明する。
図12は、9×7フィルタのリフティング構成を示している。この9×7フィルタに対してリフティング技術を適用したときの合成フィルタリングについて説明する。
図12の例において、1段目(最上段)は、ウェーブレット変換により生成された係数であり、丸印(●)が高域成分の係数を示し、四角印(■)が低域成分の係数を示す。2,3段目は、それぞれステップB1およびステップB2の処理で生成される成分(係数)を示す。また、4段目は、ステップB3の処理で生成される偶数成分出力を示し、5段目は、ステップB4の処理で生成される奇数成分出力を示している。
9×7フィルタに対してリフティング技術を適用した合成フィルタリングにおいては、ステップB3の処理で偶数成分が得られ、ステップB4の処理で奇数成分が得られる。なお、ステップB1乃至ステップB4の処理は、次の式(11)乃至式(14)で表される。
Figure 0004525704
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップB1およびB2の処理が行われ、ステップB3で、偶数成分の係数が生成された後に、ステップB4で、奇数成分の係数が生成される。
次に、垂直合成フィルタリングおよび水平合成フィルタリングの処理について、さらに詳細に説明する。まず、図13を用いて、垂直合成フィルタリングの処理について具体的に説明する。図13は、垂直方向の係数群に対しての垂直合成フィルタリングを、図12のリフティング構成により実行する場合の例を示している。
図13の例においては、垂直方向の係数に対して、図12で上述した4つのステップ(ステップB1乃至B4)の処理を経て、偶数番目の係数(偶数係数)と奇数番目の係数(奇数係数)が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
また、垂直方向の係数の左側に示される数字は、ライン番号を示しており、左から1列目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表している。さらに、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について左から順に説明する。図13の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
この垂直リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、ライン番号0乃至5の6ラインの係数が必要である。
その後、2番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号6および7の2ラインの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるライン番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の偶数係数および奇数係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
したがって、1番目の垂直リフティング演算で生成された太線実線で示される3つの係数と、ライン番号5乃至7の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。
ライン番号7の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号7乃至9の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図13の右側に示されている。
2番目の場合と同様に、3番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号8および9の2ラインの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるライン番号7の係数も必要である。
したがって、2番目の垂直リフティング演算で生成された太線実線で示される3つの係数と、ライン番号7乃至9の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタリングが完了される。
次に、水平合成フィルタリングについて具体的に説明する。図14は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図12のリフティング構成により実行する場合の例を示している。
図14の例においては、水平方向の係数に対して、図12で上述した4つのステップ(ステップB1乃至B4)の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
また、水平方向の係数の上に示される数字は、列(コラム)番号を示しており、上から1段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について上から順に説明する。図14の上段には、水平方向にコラム番号5乃至7の3コラムの係数が入力されて水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
この水平リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、コラム番号0乃至5の6コラムの係数が必要である。
その後、2番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号6および7の2コラムの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるコラム番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の奇数係数および偶数係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
したがって、1番目の水平リフティング演算で生成された太線実線で示される3つの係数と、コラム番号5乃至7の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。
コラム番号7の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号7乃至9の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図14の下段に示されている。
2番目の場合と同様に、3番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号8および9の2コラムの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるコラム番号7の係数も必要である。
したがって、2番目の水平リフティング演算で生成された太線実線で示される3つの係数と、コラム番号7乃至9の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
ところで、符号化部10においては、メモリアクセスにより生じるレイテンシを抑え、処理を高速化するために、途中計算用バッファ部24および係数並び替え用バッファ部25を、アクセス速度の速いメモリ、例えば、ウェーブレット変換部21、係数並び替え部22、および、エントロピ符号化部23を実現するプロセッサに内蔵されているローカルストアに配置することが望ましい。しかし、入力画像データのサイズ、フィルタの種類、分解レベル数、ローカルストアの容量などの条件によっては、係数データがローカルストアに収まらず、外部メモリに配置する必要が生じる場合がある。
ここで、途中計算用バッファ部24と係数並び替え用バッファ部25のアクセス回数と必要な容量について考える。
図15および図16は、符号化部10の符号化処理において、入力画像データの1ピクセル当たりに、途中計算用バッファ部24および係数並び替え用バッファ部25にアクセスする回数を示している。図15は、ウェーブレット変換に上述した9×7フィルタを用いた場合のアクセス回数を示し、図16は、ウェーブレット変換に上述した5×3フィルタを用いた場合のアクセス回数を示している。なお、図15および図16のアクセス回数は、各バッファに対する書き込みと読み出しの1セットの処理を1回としてカウントしている。
途中計算用バッファ部24に対しては、各分解レベルの低域サブバンド(LL)の各ピクセルについて、リフティング1段につき1回アクセスが行われる。従って、入力画像データ1ピクセル当たりの途中計算用バッファ部24へのアクセス回数は、以下の式(15)により求められる。
Figure 0004525704
従って、図15に示されるように、1分解レベル当たりのリフティング段数が4段である9×7フィルタを用いてウェーブレット変換を行った場合の、入力画像データ1ピクセル当たりの途中計算用バッファ部24へのアクセス回数は、ウェーブレット変換の分解レベル数が1のとき4となり、分解レベル数が2のとき5となり、分解レベル数が3のとき5.25となり、分解レベル数が4のとき5.31となる。
また、図16に示されるように、1分解レベル当たりのリフティング段数が2段である5×3フィルタを用いてウェーブレット変換を行った場合の、入力画像データ1ピクセル当たりの途中計算用バッファ部24へのアクセス回数は、ウェーブレット変換の分解レベル数が1のとき2となり、分解レベル数が2のとき2.5となり、分解レベル数が3のとき2.62となり、分解レベル数が4のとき2.65となる。
また、係数並び替え用バッファ部25へのアクセス回数は、分析フィルタ処理により生成される係数データのうち、最終レベルの分析フィルタ処理により生成される係数データ以外の係数データの個数と等しくなるので、入力画像データ1ピクセル当たりの係数並び替え用バッファ部25へのアクセス回数は、以下の式(16)により表される。
アクセス回数=1−0.25n-1 ・・・(16)
n:ウェーブレット変換の分解レベル数
従って、図15および図16に示されるように、9×7フィルタを用いてウェーブレット変換を行った場合も5×3フィルタを用いてウェーブレット変換を行った場合も同様に、入力画像データ1ピクセル当たりの係数並び替え用バッファ部25へのアクセス回数は、ウェーブレット変換の分解レベル数が1のとき0となり、分解レベル数が2のとき0.75となり、分解レベル数が3のとき0.938となり、分解レベル数が4のとき0.984となる。
図17および図18は、符号化部10の符号化処理において必要となる途中計算用バッファ部24と係数並び替え用バッファ部25の容量を、入力画像データの横方向のラインを基準にした値を示している。図17は、ウェーブレット変換に9×7フィルタを用いた場合の必要容量を示し、図18は、ウェーブレット変換に5×3フィルタを用いた場合の必要容量を示している。
途中計算用バッファ部24の必要容量は、9×7フィルタを用いた場合、各分解レベルにおける低域サブバンド(LL)あたり、その低域サブバンドの横方向のラインを基準にして6ライン分必要となり、5×3フィルタを用いた場合、各分解レベルにおける低域サブバンド(LL)あたり、その低域サブバンドの横方向のラインを基準にして4ライン分必要となる。従って、入力画像データの水平方向のラインのサイズに対する分解レベルkの低域サブバンドの水平方向のラインのサイズは1/2kとなるので、途中計算用バッファ部24の必要容量を、入力画像データの横方向のラインを基準にした値は、以下の式(17)により求められる。
Figure 0004525704
従って、図17に示されるように、9×7フィルタを用いてウェーブレット変換を行った場合の途中計算用バッファ部24の必要容量は、分解レベル数が1のとき入力画像データの横方向の6ライン分となり、分解レベル数が2のとき9ライン分となり、分解レベル数が3のとき10.5ライン分となり、分解レベル数が4のとき11.25ライン分となる。
また、図18に示されるように、5×3フィルタを用いてウェーブレット変換を行った場合の途中計算用バッファ部24の必要容量は、分解レベル数が1のとき入力画像データの横方向の4ライン分となり、分解レベル数が2のとき6ライン分となり、分解レベル数が3のとき7ライン分となり、分解レベル数が4のとき7.5ライン分となる。
また、ある分解レベルkにおいて、低域サブバンド以外のサブバンド1つ当たりに必要となる係数並び替え用バッファ部25の容量s(k)は、そのサブバンドの横方向のラインを基準にして、以下の式(18)により求められる。
Figure 0004525704
上述したように、入力画像データの水平方向のラインのサイズに対する分解レベルkの低域サブバンドの水平方向のラインのサイズは1/2kとなるので、分解レベルkにおいて必要となる係数並び替え用バッファ部25の容量は、入力画像データの横方向のラインを基準にして、以下の式(19)により求められる。
必要容量=s(k)×1/2k×低域サブバンド以外のサブバンドの数
=s(k)×1/2k×3 ・・・(19)
従って、最終レベルの分析フィルタ処理により生成された係数データは係数並び替え用バッファ部25に格納されないので、係数並び替え用バッファ部25の必要容量は、式(19)をk=1からn-1まで合計した値となる。
すなわち、図17に示されるように、9×7フィルタを用いてウェーブレット変換を行った場合の係数並び替え用バッファ部25の必要容量は、ウェーブレット変換の分解レベル数が1のとき入力画像データの横方向の0ライン分となり、分解レベル数が2のとき12ライン分となり、分解レベル数が3のとき39ライン分となり、分解レベル数が4のとき94.5ライン分となる。
また、図18に示されるように、5×3フィルタを用いてウェーブレット変換を行った場合の係数並び替え用バッファ部25の必要容量は、ウェーブレット変換の分解レベル数が1のとき入力画像データの横方向の0ライン分となり、分解レベル数が2のとき6ライン分となり、分解レベル数が3のとき18ライン分となり、分解レベル数が4のとき42ライン分となる。
以上のように、途中計算用バッファ部24の方が、係数並び替え用バッファ部25と比較して、アクセス回数が多く、ウェーブレット変換の分解レベル数が1の場合を除いて、必要容量が小さい。従って、途中計算用バッファ部24と係数並び替え用バッファ部25の必要容量の合計がローカルストアにおいて割り当て可能な容量を超え、外部メモリに一部を配置する必要がある場合、途中計算用バッファ部24を優先してローカルストアに残し、係数並び替え用バッファ部を外部メモリに配置するようにした方が、処理速度の低下を抑制できるとともに、容量の削減効果が大きいことが分かる。
図19は、図1の符号化部10を実現するとともに、途中計算用バッファ部をローカルストアに配置し、係数並び替え用バッファ部を外部メモリに配置するようにした符号化装置の一実施の形態を示すブロック図である。なお、図中、図1と対応する部分の一部については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
この符号化装置101は、SPU(Synergistic Processing Unit)111、ローカルストア112、メインメモリ113、および、メモリコントローラ114により構成される。
SPU111は、所定のプログラムを実行することにより、図1のウェーブレット変換部21に相当するウェーブレット変換部121、係数並び替え部22に相当する係数並び替え部122、および、エントロピ符号化部23に相当するエントロピ符号化部123の機能を実現する。
ローカルストア112は、例えば、SPU111と同じハードウェアパッケージ内に内蔵されているキャッシュメモリ等により構成され、メインメモリ113と比較して、SPU111からのアクセス速度が速い。
ローカルストア112には、リードバッファ131、図1の途中計算用バッファ部24に相当する途中計算用バッファ部132、ライトバッファ133、リードバッファ134、および、ライトバッファ135が配置される。リードバッファ131、ライトバッファ134、リードバッファ134、および、ライトバッファ135は、例えば、FIFO(First In, First Out)バッファ、または、単純なダブルバッファにより構成される。
メインメモリ113は、例えば、RAM(Random Access Memory)により構成され、係数並び替え用バッファ部141が配置される。係数並び替え用バッファ部141は、例えば、FIFO構造、かつ、バッファの終端の番地の次の番地を先頭の番地とするリング構造のバッファとされる。
メモリコントローラ114は、SPU111の各部からの指示の基に、SPU111の処理とは独立して、すなわち、SPU111の処理と並行して、ローカルストア112とメインメモリ113間のデータ転送を制御する。また、メモリコントローラ114は、メインメモリ113の状態等をSPU111の各部に通知する。
なお、図中、SPU111内部、および、SPU111とローカルストア112との間の方が、ローカルストア112とメインメモリ113との間よりも、データ転送が高速に行われ、レイテンシが短いことを示し、ローカルストア112とメインメモリ113との間の方が、SPU111内部、および、SPU111とローカルストア112との間よりも、データ転送の速度が低速かつ不安定で、レイテンシが長いことを示すために、SPU111内部、および、SPU111とローカルストア112との間の矢印の線が、ローカルストア112とメインメモリ113との間の矢印の線より太く示されている。
次に、図20のフローチャートを参照して、符号化装置101により実行される符号化処理の流れの例を説明する。
ステップS1において、ウェーブレット変換部121は、処理対象プレシンクトの番号Aを初期設定にする。通常の場合、番号Aは「1」に設定される。
ステップS2において、ウェーブレット変換部121は、最低域サブバンドにおいて上からA番目の1ラインを生成するのに必要なライン数(すなわち、1プレシンクト)の画像データを取得する。具体的には、ウェーブレット変換部121は、1番目のプレシンクトの入力画像データのラインをメインメモリ113から途中計算用バッファ部132に転送するようにメモリコントローラ114に要求する。メモリコントローラ114は、転送が要求された入力画像データのラインをメインメモリ113から途中計算用バッファ部132に転送する。ウェーブレット変換部121は、途中計算用バッファ部132に転送された入力画像データを必要に応じて読み出す。
また、ウェーブレット変換部121は、2番目のプレシンクトの入力画像データの一部または全部をメインメモリ113からリードバッファ131に転送するようにメモリコントローラ114に要求する。メモリコントローラ114は、転送が要求された入力画像データのラインをメインメモリ113からリードバッファ131に転送する。すなわち、次のプレシンクトの処理で必要となる入力画像データのラインが、メインメモリ113からリードバッファ131に先読みされる。
このように、2番目以降のプレシンクトの処理では、処理対象の入力画像データのラインがリードバッファ131から途中計算用バッファ部132に転送されるとともに、次のプレシンクトの処理で必要となる入力画像データのラインが、ライン順にメインメモリ113からリードバッファ131に先読みされる。
ステップS3において、ウェーブレット変換部121は、取得した画像データに対して、画面垂直方向に並ぶ画像データに対して分析フィルタリングを行う垂直分析フィルタリングを行う。
ステップS4において、ウェーブレット変換部121は、画面水平方向に並ぶ画像データに対して分析フィルタリングを行う水平分析フィルタリングを行う。
ステップS5において、ウェーブレット変換部121は、分析フィルタリングが最終レベルまで終了したかを判定する。分析フィルタリングが最終レベルまで終了していないと判定された場合、処理はステップS6に進む。
ステップS6において、ウェーブレット変換部121は、高域サブバンドの係数データを生成順にバッファに書き込む。具体的には、ウェーブレット変換部121は、現在の分解レベルの高域サブバンド(HL,LH,HH)の係数データを生成順にライトバッファ133に書き込み、ライトバッファ133に書き込んだ係数データを、すでに係数並び替え用バッファ部141に格納されている係数データの後ろに続けて書き込むようにメモリコントローラ114に要求する。メモリコントローラ114は、ライトバッファ133に書き込まれた係数データを、そのままの順番で、すでに係数並び替え用バッファ部141に格納されている係数データの後ろに続けて書き込むように制御する。
これにより、係数データが生成順に並べられて係数並び替え用バッファ部141に書き込まれる。また、ライトバッファ133から係数並び替え用バッファ部141へのデータ転送により生じるSPU111の待ち時間を短縮することができる。
メモリコントローラ114は、係数並び替え用バッファ部141に格納された各係数データの格納位置を示す情報を係数並び替え部122に供給する。係数並び替え部122は、各係数データの格納位置を記憶する。メモリコントローラ114は、係数並び替え用バッファ部141に転送された係数データをライトバッファ133から消去する。
その後、処理はステップS3に戻り、ステップS5において、分析フィルタリングが最終レベルまで終了したと判定されるまで、ステップS3乃至S6の処理が繰り返し実行される。すなわち、現在の分解レベルに対して、分析フィルタリングが繰り返され、得られた高域サブバンドの係数データが、生成順に係数並び替え用バッファ部141に書き込まれる。
一方、ステップS5において、分析フィルタリングが最終レベルまで終了したと判定された場合、処理はステップS7に進む。
ステップS7において、ウェーブレット変換部121は、最終レベルの係数データを供給する。すなわち、ウェーブレット変換部121は、最終レベルの分析フィルタリングにより生成された係数データを、係数並び替え用バッファ部141に書き込まずに、係数並び替え部122に直接供給する。係数並び替え部122は、取得した係数データをそのままエントロピ符号化部123に供給する。これにより、係数並び替え用バッファ部141の容量、および、係数並び替え用バッファ部141へのアクセス回数を削減することができる。
なお、最終レベルの係数データのうち高域の係数データは、後のプレシンクト処理において使用されるため、途中計算用バッファ部132に格納される。
ステップS8において、エントロピ符号化部123は、供給された係数データを、ライン毎にエントロピ符号化する。
ステップS9において、エントロピ符号化部123は、符号化データを送出する。具体的には、エントロピ符号化部123は、エントロピ符号化により得られた符号化データをライトバッファ135に書き込み、メインメモリ113に転送するようにメモリコントローラ114に要求する。メモリコントローラ114は、ライトバッファ135に書き込まれた符号化データをメインメモリ113に転送する。メインメモリ113に転送された符号化データは、例えば、図示せぬ通信装置などにより、後述する復号部に送出される。
ステップS10において、エントロピ符号化部123は、A番目のプレシンクトの符号化が終了したか否かを判定する。エントロピ符号化部123は、A番目の合成処理において必要となる係数データのエントロピ符号化が全て終了していない場合、A番目のプレシンクトの符号化が終了していないと判定し、処理はステップS11に進む。
ステップS11において、係数並び替え部122は、次に処理する係数データを読み出す。具体的には、係数並び替え部122は、直前に符号化された係数データの次に合成処理において処理される係数データの係数並び替え用バッファ部141上の格納位置を求め、求めた位置に格納されている係数データを係数並び替え用バッファ部141からリードバッファ134に転送するようにメモリコントローラ114に要求する。メモリコントローラ114は、要求された係数データを係数並び替え用バッファ部141からリードバッファ134に転送し、転送した係数データを係数並び替え用バッファ部141から消去する。係数並び替え部122は、リードバッファ134に格納された係数データを読み出し、エントロピ符号化部123に供給する。
さらに、係数並び替え部122は、今回読み出した係数データの次に合成処理において処理される係数データの係数並び替え用バッファ部141上の格納位置を求め、求めた位置に格納されている係数データを係数並び替え用バッファ部141からリードバッファ134に転送するようにメモリコントローラ114に要求する。メモリコントローラ114は、要求された係数データを係数並び替え用バッファ部141からリードバッファ134に転送し、転送した係数データを係数並び替え用バッファ部141から消去する。すなわち、次にエントロピ符号化される係数データが係数並び替え用バッファ部141からリードバッファ134に先読みされる。
以降、ステップS11において、係数並び替え部122により、次にエントロピ符号化される係数データがリードバッファ134から読み出されるとともに、その次にエントロピ符号化される係数データが係数並び替え用バッファ部141からリードバッファ134に先読みされる。これにより、係数並び替え用バッファ部141からリードバッファ134へのデータ転送により生じるSPU111の待ち時間を短縮することができる。
その後、ステップS10において、A番目のプレシンクトの符号化が終了したと判定されるまで、ステップS8乃至S11の処理が繰り返し実行され、合成処理において処理される順に係数データが係数並び替え用バッファ部141から読み出され、エントロピ符号化され、その結果得られた符号化データが送出される。
一方、ステップS10において、エントロピ符号化部123は、A番目の合成処理において必要となる係数データのエントロピ符号化が全て終了している場合、A番目のプレシンクトの符号化が終了したと判定し、処理はステップS12に進む。
ステップS12において、ウェーブレット変換部121は、番号Aの値を「1」インクリメントして次のプレシンクトを処理対象とする。
ステップS13において、ウェーブレット変換部121は、処理対象のピクチャ(フレームまたはフィールド)について、未処理の画像入力ラインが存在するか否かを判定する。未処理の画像入力ラインが存在すると判定された場合、処理は、ステップS2に戻り、新たな処理対象のプレシンクトに対してそれ以降の処理が繰り返される。
以上のように、ステップS2乃至ステップS13の処理が繰り返し実行され、各プレシンクトが符号化される。そして、ステップS13において、未処理の画像入力ラインが存在しないと判定された場合、そのピクチャに対する符号化処理が終了される。次のピクチャに対しては新たに符号化処理が開始される。
ここで、図21乃至図24を参照して、符号化装置101により係数データが並び替えられる様子を、5×3フィルタのリフティングによるフィルタ処理を分解レベル=3まで実行した場合を具体例に挙げて説明する。
図21は、5×3フィルタのリフティングによるフィルタ処理を分解レベル=3まで実行した例を、図6と同様の図で示している。また、図22は、図21の点線より左側の分析フィルタ側の図に、合成フィルタ側の2番目のプレシンクトに対応する部分を重ねて示した図である。
なお、図21および図22においては、説明を分かりやすくするために、各係数の番号は、図6とは異なり、分析フィルタ側および合成フィルタ側とも、合成処理において処理される順番により示されている。また、図21および図22においては、図6と同様に、説明の簡略化のため、実際の画像データは二次元の情報であるが、図の奥行き方向に水平方向の画素が存在するものとして一次元により表し、さらに、水平方向の分析フィルタ処理および合成フィルタ処理についての記載は省略している。
基本的な動作は、図6の分解レベル2の分析フィルタ処理の場合と同じであるが、図21の場合、ウェーブレット変換により分解レベル3の低域サブバンドの係数データ1ラインを得るために必要なライン数は、最初のプレシンクトでは15ラインであり、2番目以降のプレシンクトでは8ラインになる。また合成側の出力は、最初のプレシンクトが1ライン、以降が8ラインとなる。
5×3フィルタのリフティングによる分析フィルタ処理を分解レベル=3まで実行した場合、1回目の分析フィルタ処理により、係数C4,係数C8,係数C9,係数C3,係数C11,係数C12,係数C7,係数C16,係数C17,係数C10,係数C2,係数C1の順に係数データが生成され、2回目の分析フィルタ処理により、係数C19,係数C20,係数C15,係数C24,係数C25,係数C18,係数C6,係数C5の順に係数データが生成される。一方、1回目の合成フィルタ処理において、係数C1,係数C2,係数C3,係数C4の順に係数データが処理され、2回目の合成フィルタ処理において、係数C5,係数C6,係数C7,係数C8,係数C9,係数C10,係数C11,係数C12の順に係数データが処理される。
ここで、2番目のプレシンクトに対する符号化処理に注目して、係数データの並び替えについて説明する。
図23は、2番目のプレシンクトに対する符号化処理の流れを示す図である。なお、図23では、図21および図22と同様に、説明の簡略化のため、水平方向の分析フィルタ処理についての記載は省略している。
図23に示されるように、2番目のプレシンクトに対する符号化処理においては、最初に、入力画像データの15および16ライン目がウェーブレット変換部121に入力され、2番目のプレシンクトの領域D11(図21)内の分解レベル1の分析フィルタ処理(ウェーブレット変換)が行われ、係数C19が生成され、係数並び替え用バッファ部141に書き込まれる。
2番目に、入力画像データの17および18ライン目がウェーブレット変換部121に入力され、領域D12内の分解レベル1の分析フィルタ処理が行われ、係数C20が生成され、係数並び替え用バッファ部141に書き込まれる。次に、領域D12内の分解レベル2の分析フィルタ処理が行われ、係数C15が生成され、係数並び替え用バッファ部141に書き込まれる。
3番目に、入力画像データの19および20ライン目がウェーブレット変換部121に入力され、領域D13内の分解レベル1の分析フィルタ処理が行われ、係数C24が生成され、係数並び替え用バッファ部141に書き込まれる。
4番目に、入力画像データの21および22ライン目がウェーブレット変換部121に入力され、領域D14内の分解レベル1の分析フィルタ処理が行われ、係数C25が生成され、係数並び替え用バッファ部141に書き込まれる。次に、領域D14内の分解レベル2の分析フィルタ処理が行われ、係数C18が生成され、係数並び替え用バッファ部141に書き込まれる。最後に、領域D14内の分解レベル3の分析フィルタ処理が行われ、係数C5および係数C6が生成される。係数C5および係数C6は、係数並び替え用バッファ部141に書き込まれずに、係数並び替え部122を介して、エントロピ符号化部123に直接供給される。
なお、図23において、内部にDWTの文字が書かれた四角の縦方向の長さが分解レベルにより異なっているのは、分解レベルによって処理する画素数が異なり(具体的には、水平方向の画素数は、分解レベル2では分解レベル1の半分となり、分解レベル3では分解レベル2の半分となり)、処理時間が異なることを表している。
2番目のプレシンクトに対する分析フィルタ処理が終了した時点で、図21および図22の一点鎖線で囲まれている領域内の係数C7乃至C12、C15乃至C20、C24、および、C25が係数並び替え用バッファ部141に格納され、点線で囲まれている領域内の係数C5およびC6が、エントロピ符号化部123に供給された状態となる。
図24は、2番目のプレシンクトに対する分析フィルタ処理が終了した時点の係数並び替え用バッファ部141の状態を模式的に示している。2番目のプレシンクトに対する分析フィルタ処理が終了した時点で、1番目のプレシンクトに対する分析フィルタ処理において生成された係数データのうち、1回目の合成フィルタ処理において処理対象とならない係数データ、および、2番目のプレシンクトに対する分析フィルタ処理において生成された係数データが、生成された順に係数並び替え用バッファ部141に格納される。具体的には、係数C8,係数C9,係数C11,係数C12,係数C7,係数C16,係数C17,係数C10,係数C19,係数C20,係数C15,係数C24,係数C25,係数C18の順に係数並び替え用バッファ部141に格納される。なお、係数C3は、1番目のプレシンクトに対する符号化処理においてエントロピ符号化され、係数並び替え用バッファ部141から消去されるが、未処理の係数C8およびC9より生成された順序が遅いため、係数並べ替え用バッファ部141に領域だけが確保された状態となる。
エントロピ符号化は、2回目の合成フィルタ処理において処理される係数データに対して処理される順に行われるため、係数C7乃至C12の順に係数並び替え用バッファ部141から係数データが読み出され、エントロピ符号化部123に供給される。そして、係数C5乃至C12に対して順番にエントロピ符号化が行われ、符号化データVLC5乃至VLC12が生成され、コードストリームとして復号部に送出される。
このようにして、合成処理(逆ウェーブレット変換処理)において処理される順に係数データを並び替えて符号化し、復号側に供給することができ、復号処理による遅延時間を短縮することができる。
また、生成順に係数データを係数並び替え用バッファ部141に書き込めばよいため、書込み処理を単純化することができる。
以上の説明では、係数並び替え用バッファ部から読み出すときに係数データの並び替えを行うようにしたが、係数並び替え用バッファ部に書き込むときに係数データを並び替えるようにしてもよい。
図25は、係数並び替え用バッファ部に書き込むときに係数データを並び替えるようにした場合の符号化装置の一実施の形態を示すブロック図である。なお、図中、図19と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。また、図中、図19と同様に、SPU211内部、および、SPU211とローカルストア212との間の方が、ローカルストア212とメインメモリ213との間よりも、データ転送が高速に行われ、レイテンシが短いことを示すために、SPU211内部、および、SPU211とローカルストア212との間の矢印の線が、ローカルストア212とメインメモリ213との間の矢印の線より太く示されている。
この符号化装置201は、SPU211、ローカルストア212、メインメモリ213、および、メモリコントローラ214により構成される。
SPU211は、所定のプログラムを実行することにより、ウェーブレット変換部221、係数並び替え部222、および、エントロピ符号化部223の機能を実現する。
ウェーブレット変換部221は、図19のウェーブレット変換部121と異なり、生成した係数データを係数並び替え部222に供給する。
係数並び替え部222は、図26を参照して後述するように、最終レベルの分析フィルタ処理により生成された係数データを除いて、合成処理において処理される順に係数データを並び替えて、ライトバッファ233を介して、係数並び替え用バッファ部241に書き込む。また、係数並び替え部222は、最終レベルの分析フィルタ処理により生成された係数データを、係数並び替え用バッファ部241に書き込まずにエントロピ符号化部223に供給する。
エントロピ符号化部223は、図26を参照して後述するように、リードバッファ234を介して、係数並び替え用バッファ部241に格納されている係数データを格納順に読み出す。エントロピ符号化部223は、取得した係数データをエントロピ符号化し、その結果得られた符号化データを、ライトバッファ235を介して、メインメモリ213に書き込む。
ローカルストア212には、図19のローカルストア112と同様に、リードバッファ231、途中計算用バッファ部232、ライトバッファ233、リードバッファ234、および、ライトバッファ235が配置される。
メインメモリ213には、図19のメインメモリ113と同様に、係数並び替え用バッファ部241が配置される。
次に、図26のフローチャートを参照して、符号化装置201により実行される符号化処理の流れの例を説明する。
ステップS31乃至S34の処理は、上述した図20のステップS1乃至S4の処理と同様であり、その説明は繰り返しになるので省略する。
ステップS35において、分析フィルタリングが最終レベルまで終了していないと判定された場合、処理はステップS36に進む。
ステップS36において、係数並び替え部222は、高域サブバンドの係数データを合成処理を行う順に並び替えながらバッファに書き込む。具体的には、ウェーブレット変換部221は、現在の分解レベルの高域サブバンド(HL,LH,HH)の係数データを係数並び替え部222に供給する。係数並び替え部222は、取得した高域サブバンドの各係数データについて、合成処理において処理される順に配置するための係数並び替え用バッファ部241の格納位置を算出する。係数並び替え部222は、取得した高域サブバンドの係数データを生成順にライトバッファ233に書き込み、ライトバッファ233に書き込んだ係数データを、算出した係数並び替え用バッファ部241の格納位置に書き込むようにメモリコントローラ214に要求する。
メモリコントローラ214は、ライトバッファ233に書き込まれた各係数データを、指示された係数並び替え用バッファ部241の格納位置に書き込むように制御する。すなわち、合成処理において処理される順に係数データが並び替えられて係数並び替え用バッファ部241に書き込まれる。メモリコントローラ214は、係数並び替え用バッファ部241に書き込まれた各係数データの格納位置を示す情報をエントロピ符号化部223に供給する。エントロピ符号化部223は、各係数データの格納位置を記憶する。メモリコントローラ214は、係数並び替え用バッファ部241に転送された係数データをライトバッファ233から消去する。
その後、処理はステップS33に戻り、ステップS35において、分析フィルタリングが最終レベルまで終了したと判定されるまで、ステップS33乃至S36の処理が繰り返し実行される。すなわち、現在の分解レベルに対して、分析フィルタリングが繰り返され、得られた高域サブバンドの係数データが、合成処理において処理される順に並び替えられて係数並び替え用バッファ部241に書き込まれる。
一方、ステップS35において、分析フィルタリングが最終レベルまで終了したと判定された場合、処理はステップS37に進む。
ステップS37において、上述した図23のステップS7の処理と同様に、最終レベルの係数データが、ウェーブレット変換部221から、係数並び替え部222を介してエントロピ符号化部223に供給される。
ステップS38において、エントロピ符号化部223は、供給された係数データを、ライン毎にエントロピ符号化する。
ステップS39において、上述した図20のステップS9の処理と同様に、符号化データが送出される。
ステップS40において、上述した図20のステップS10の処理と同様に、A番目のプレシンクトの符号化が終了したかが判定され、A番目のプレシンクトの符号化が終了していないと判定された場合、処理はステップS41に進む。
ステップS41において、エントロピ符号化部223は、次に処理する係数データを読み出す。具体的には、エントロピ符号化部223は、係数並び替え用バッファ部241の先頭に配置されている係数データをリードバッファ234に転送するようにメモリコントローラ214に要求する。メモリコントローラ214は、要求された係数データを係数並び替え用バッファ部241からリードバッファ234に転送し、転送した係数データを係数並び替え用バッファ部241から消去する。エントロピ符号化部223は、リードバッファ234に格納された係数データを読み出す。
さらに、エントロピ符号化部223は、係数並び替え用バッファ部241において今回読み出した係数データの次に配置されている係数データを、係数並び替え用バッファ部241からリードバッファ234に転送するようにメモリコントローラ214に要求する。メモリコントローラ214は、要求された係数データを係数並び替え用バッファ部241からリードバッファ234に転送し、転送した係数データを係数並び替え用バッファ部241から消去する。すなわち、次にエントロピ符号化される係数データが係数並び替え用バッファ部141からリードバッファ134に先読みされる。
以降、ステップS41において、エントロピ符号化部223により、次にエントロピ符号化される係数データがリードバッファ234から読み出されるとともに、その次にエントロピ符号化される係数データが係数並び替え用バッファ部241からリードバッファ234に先読みされる。これにより、係数並び替え用バッファ部241からリードバッファ234へのデータ転送により生じるSPU211の待ち時間を短縮することができる。
その後、ステップS40において、A番目のプレシンクトの符号化が終了したと判定されるまで、ステップS38乃至S41の処理が繰り返し実行され、合成処理において処理される順に係数データがエントロピ符号化され、その結果得られた符号化データが送出される。
一方、ステップS40において、A番目のプレシンクトの符号化が終了したと判定された場合、処理はステップS42に進む。
ステップS42以降の処理は、上述した図20のステップS22以降の処理と同様であり、その説明は繰り返しになるので省略する。
図27は、図24と同様に、5×3フィルタのリフティングによるフィルタ処理を分解レベル=3まで実行した場合の、2番目のプレシンクトに対する分析フィルタ処理が終了した時点の係数並び替え用バッファ部241の状態を模式的に示している。
2番目のプレシンクトに対する分析フィルタ処理が終了した時点で、係数並び替え用バッファ部241には、係数C7乃至C12、係数C15乃至C20、係数C24および係数C25が、合成処理において処理される順に格納されている。なお、係数C23は、3番目のプレシンクトに対する分析フィルタ処理で生成されるため、その領域だけが確保されている。
このようにして、合成処理(逆ウェーブレット変換処理)において処理される順に係数データを並び替えて符号化し、復号側に供給することができ、復号側に供給することができ、復号処理による遅延時間を短縮することができる。
また、係数データを格納されている順に係数並び替え用バッファ部241から読み込めばよいため、読み出し処理を単純化することができ、係数データの先読み処理等が容易になる。
ところで、符号化装置101においては、係数並び替え用バッファ部141から係数データを読み出すとき、合成処理において処理される順に読み出すために、読み出し位置が不連続となり、例えば、各係数データの格納位置を管理したり、次に読み出す係数データの格納位置を求めたりするための演算処理により、SPU111の負荷が増大し、処理速度が遅くなる。また、係数データの水平方向のサイズは分解レベルによって異なるため、係数データを不連続に読み出し消去する処理が繰り返されることにより、係数並び替え用バッファ部141においてフラグメントが発生してしまう場合がある。
また、符号化装置201においては、係数並び替え用バッファ部241に係数データを書き込むとき、合成処理において処理される順に書き込むために、書き込み位置が不連続となり、各係数データの書き込み位置を求めるための演算処理により、SPU211の負荷が増大し、処理速度が遅くなる。また、係数データの水平方向のサイズは分解レベルによって異なるため、係数データを不連続に書き込み消去する処理が繰り返されることにより、係数並び替え用バッファ部241においてフラグメントが発生してしまう場合がある。
さらに、以上の説明では、簡単のため5×3フィルタを用いて分解レベル=3まで分析フィルタ処理を行う例を示したが、例えば、9×7フィルタを用いて分解レベル=4まで分析フィルタ処理を行うなど、フィルタのサイズを大きくしたり、分解レベル数を増やしたりすると、並び替えの処理はより複雑になり、さらにSPU111またはSPU211の負荷が増大し、処理時間が長くなる。
また、入力画像データのサイズ、フィルタの種類、分解レベル数を可変とした場合、その組み合わせによって係数データの並び替えのパターンが異なるため、全てのパターンに対応した係数並び替え部122または係数並び替え部222のプログラムのサイズは大きくなってしまう。
ここで、図23に戻り、分析フィルタ処理において生成される係数データを分解レベルごとに分けて見た場合、分解レベル1では、係数C19、係数C20、係数C24、係数C25の順に係数データが生成され、分解レベル2では、係数C15、係数C18の順に係数データが生成されている。すなわち、分解レベル単位では、合成フィルタ処理において処理される順に係数データが生成される。
このように、分析フィルタ処理においては、画像サイズ、フィルタの種類、分解レベル数等の条件に関わらず、サブバンド単位では、分析フィルタ処理において生成される係数データの順序と、合成フィルタ処理において処理される係数データの順序とが逆転することがないという特徴を有する。
図28は、この特徴を利用して、係数並び替え用バッファ部に係数データをサブバンド毎に分割して書き込むようにした場合の符号化装置の一実施の形態を示すブロック図である。なお、図中、図19と対応する部分については下2桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。また、図中、図19および図25と同様に、SPU311内部、および、SPU311とローカルストア312との間の方が、ローカルストア312とメインメモリ313との間よりも、データ転送が高速に行われ、レイテンシが短いことを示すために、SPU311内部、および、SPU311とローカルストア312との間の矢印の線が、ローカルストア312とメインメモリ313との間の矢印の線より太く示されている。
この符号化装置301は、SPU311、ローカルストア312、メインメモリ313、および、メモリコントローラ314により構成される。
SPU311は、所定のプログラムを実行することにより、ウェーブレット変換部321、および、エントロピ符号化部323の機能を実現する。
ウェーブレット変換部321は、図19のウェーブレット変換部121と異なり、図30などを参照して後述するように、ライトバッファ333−1乃至333−mを介して、生成した係数データをサブバンド毎に領域を分けて係数並び替え用バッファ部341に書き込む。また、ウェーブレット変換部321は、最終レベルの分析フィルタ処理により生成した係数データを、係数並び替え用バッファ部341に書き込まずに、エントロピ符号化部323に直接供給する。
エントロピ符号化部323は、図30などを参照して後述するように、リードバッファ334−1乃至334−mを介して、サブバンド毎に領域が分かれて格納されている係数データを係数並び替え用バッファ部341から読み出す。エントロピ符号化部323は、取得した係数データをエントロピ符号化し、その結果得られた符号化データを、ライトバッファ335を介して、メインメモリ313に書き込む。
ローカルストア312には、図19のローカルストア112と同様に、リードバッファ331、途中計算用バッファ部332、および、ライトバッファ335が配置され、ライトバッファ233の代わりにライトバッファ333−1乃至333−mが配置され、リードバッファ234の代わりにリードバッファ334−1乃至334−mが配置される。なお、以下、ライトバッファ333−1乃至333−mを個々に区別する必要がない場合、単にライトバッファ333と称し、リードバッファ334−1乃至334−mを個々に区別する必要がない場合、単にリードバッファ334と称する。
メインメモリ313には、図19のメインメモリ113と同様に、係数並び替え用バッファ部341が配置される。係数並び替え用バッファ部341には、図29に示されるように、ライトバッファ333およびリードバッファ334と同じ数のリングバッファ351−1乃至351−mが配置される。なお、以下、リングバッファ351−1乃至351−mを個々に区別する必要がない場合、単にリングバッファ351と称する。
リングバッファ351は、FIFO構造、かつ、バッファの終端の番地の次の番地を先頭の番地とするリング構造のバッファとされる。従って、各リングバッファ351の領域をリング状に繰り返し再利用することができ、メモリサイズを必要最小限に抑えることができる。なお、各リングバッファ351に必要な容量は、図17および図18を参照して上述した算出方法により容易に算出することができる。
ライトバッファ333、リードバッファ334、および、リングバッファ351は、最終レベル以外の各分解レベルにおける各高域サブバンド(HL,LH,HH)について1つずつ設けられる。例えば、分解レベル数が3の場合、最終レベルである分解レベル3以外の分解レベル1および2において生成される合計6個の高域サブバンドについて、それぞれ1つずつライトバッファ333、リードバッファ334、および、リングバッファ351が設けられる。
ウェーブレット変換部321は、各リングバッファ351について、直前に書き込んだ最新の係数データの終端の位置を示す終端Eへのポインタを管理している。ウェーブレット変換部321は、リングバッファ351に係数データを書き込む場合、その係数データが属するサブバンドに対応するライトバッファ333に係数データを書き込み、ライトバッファ333に書き込んだ係数データを対応するリングバッファ351の終端Eの次の領域ENに書き込むようにメモリコントローラ314要求する。メモリコントローラ314は、ライトバッファ333に書き込まれた係数データを、指示されたリングバッファ351の領域ENに書き込むように制御する。メモリコントローラ314は、係数データを書き込んだリングバッファ351の領域ENの終端の位置をウェーブレット変換部321およびエントロピ符号化部323に通知する。ウェーブレット変換部321は、リングバッファ351の終端Eへのポインタを領域ENの終端に移動する。
また、エントロピ符号化部323は、各リングバッファ351について、最も過去に書き込まれた最古の係数データの先頭の位置を示す先頭Hへのポインタを管理している。エントロピ符号化部323は、リングバッファ351から係数データを読み出す場合、リングバッファ351の先頭Hに格納されている係数データの転送をメモリコントローラ314に要求する。メモリコントローラ314は、要求された係数データをリングバッファ351の先頭Hから読み出し、対応するリードバッファ334に転送し、転送した係数データをリングバッファ351から消去するように制御する。エントロピ符号化部323は、転送された係数データをリードバッファ334から読み出す。メモリコントローラ314は、転送した係数データの次の係数データが格納されている領域HNの先頭の位置をエントロピ符号化部323に通知する。エントロピ符号化部323は、リングバッファ351の先頭Hへのポインタを領域HNの先頭に移動する。
なお、先頭Hおよび終端Eの位置は、リングバッファ351の末尾まで移動した後、リングバッファ351の先頭に移動する。
次に、図30のフローチャートを参照して、符号化装置301により実行される符号化処理の流れについて説明する。
ステップS61乃至S64の処理は、上述した図20のステップS1乃至S4の処理と同様であり、その説明は繰り返しになるので省略する。
ステップS65において、分析フィルタリングが最終レベルまで終了していないと判定された場合、処理はステップS66に進む。
ステップS66において、ウェーブレット変換部321は、高域サブバンドの係数データをサブバンド毎に分けてバッファに書き込む。具体的には、ウェーブレット変換部321は、現在の分解レベルの高域サブバンド(HL,LH,HH)の係数データを、各係数データが属するサブバンドに対応するライトバッファ333に書き込む。ウェーブレット変換部321は、ライトバッファ333に書き込んだ係数データを、対応するリングバッファ351の終端Eの次の領域ENに書き込むようにメモリコントローラ314に要求する。メモリコントローラ314は、ライトバッファ333に書き込まれた係数データを、指示されたリングバッファ351の領域ENに書き込むように制御する。メモリコントローラ314は、係数データを書き込んだリングバッファ351の領域ENの終端の位置をウェーブレット変換部321およびエントロピ符号化部323に通知する。ウェーブレット変換部321は、リングバッファ351の終端Eへのポインタを領域ENの終端に移動する。
これにより、係数データが、サブバンド毎に分けられて、生成順に並べられて各リングバッファ351に書き込まれる。また、ライトバッファ133からリングバッファ351へのデータ転送により生じるSPU311の待ち時間を短縮することができる。
その後、処理はステップS63に戻り、ステップS65において、分析フィルタリングが最終レベルまで終了したと判定されるまで、ステップS63乃至S66の処理が繰り返し実行される。これにより、現在の分解レベルに対して、分析フィルタリングが繰り返され、得られた高域サブバンドの係数データが、サブバンド毎に分けられて、生成順に係数並び替え用バッファ部341のリングバッファ351に書き込まれる。すなわち、高域サブバンドの係数データが、サブバンド毎に領域が分かれて係数並び替え用バッファ部341に格納される。
一方、ステップS65において、分析フィルタリングが最終レベルまで終了したと判定された場合、処理はステップS67に進む。
ステップS67において、ウェーブレット変換部321は、最終レベルの係数データを供給する。すなわち、ウェーブレット変換部321は、最終レベルの分析フィルタリングにより生成された係数データを、係数並び替え用バッファ部341に書き込まずに、エントロピ符号化部323に直接供給する。
なお、最終レベルの係数データのうち高域の係数データは、後のプレシンクト処理において使用されるため、途中計算用バッファ部332に格納される。
ステップS68において、エントロピ符号化部323は、供給された係数データを、ライン毎にエントロピ符号化する。
ステップS69において、上述した図20のステップS9の処理と同様に、符号化データが送出される。
ステップS70において、上述した図20のステップS10の処理と同様に、A番目のプレシンクトの符号化が終了したかが判定され、A番目のプレシンクトの符号化が終了していないと判定された場合、処理はステップS71に進む。
ステップS71において、エントロピ符号化部323は、次に処理する係数データを読み出す。具体的には、エントロピ符号化部323は、直前に符号化された係数データの次に合成処理において処理される係数データを、その係数データが属するサブバンドに対応するリングバッファ351の先頭Hから読み出し、リードバッファ334に転送するようにメモリコントローラ314に要求する。メモリコントローラ314は、要求された係数データをリングバッファ351から対応するリードバッファ334に転送し、転送した係数データをリングバッファ351から消去するように制御する。エントロピ符号化部323は、転送された係数データをリードバッファ334から読み出す。メモリコントローラ314は、転送した係数データの次の係数データが格納されている領域HNの先頭の位置をエントロピ符号化部323に通知する。エントロピ符号化部323は、リングバッファ351の先頭Hへのポインタを領域HNの先頭に移動する。
さらに、エントロピ符号化部323は、ポインタを移動したリングバッファ351の先頭Hに格納されている係数データの転送をメモリコントローラ314に要求する。メモリコントローラ314は、要求された係数データをリングバッファ351から対応するリードバッファ334に転送し、転送した係数データをリングバッファ351から消去するように制御する。これにより、サブバンド毎に、次にエントロピ符号化される係数データがリングバッファ351からリードバッファ334に先読みされる。メモリコントローラ314は、転送した係数データの次の係数データが格納されている領域HNの先頭の位置をエントロピ符号化部323に通知する。エントロピ符号化部323は、リングバッファ351の先頭Hへのポインタを領域HNの先頭に移動する。
以降、ステップS71において、エントロピ符号化部323により、次にエントロピ符号化される係数データがリードバッファ334から読み出されるとともに、読み出された係数データと同じサブバンドに属する係数データであって、読み出された係数データの次に生成された係数データ、すなわち、そのサブバンド内において次にエントロピ符号化される係数データがリングバッファ351からリードバッファ334に先読みされる。これにより、リングバッファ351からリードバッファ334へのデータ転送により生じるSPU311の待ち時間を短縮することができる。
その後、ステップS70において、A番目のプレシンクトの符号化が終了したと判定されるまで、ステップS68乃至S71の処理が繰り返し実行され、合成処理において処理される順に係数データが係数並び替え用バッファ部341から読み出され、エントロピ符号化され、その結果得られた符号化データが送出される。
一方、ステップS70において、A番目のプレシンクトの符号化が終了したと判定された場合、処理はステップS72に進む。
ステップS72以降の処理は、上述した図20のステップS22以降の処理と同様であり、その説明は繰り返しになるので省略する。
図31は、図24および図27と同様に、5×3フィルタのリフティングによるフィルタ処理を分解レベル=3まで実行した場合の、2番目のプレシンクトに対する分析フィルタ処理が終了した時点の係数並び替え用バッファ部341の状態を模式的に示している。なお、図31では、図24および図27と同様に、説明の簡略化のため、水平方向の分析フィルタ処理についての記載は省略している。従って、分解レベル数が3の場合、実際には、上述したように6個のリングバッファが係数並び替え用バッファ部341に設けられるが、図31では、そのうちの分解レベル1の高域サブバンドの1つに対応するリングバッファA、および、分解レベル2の高域サブバンドの1つに対応するリングバッファBのみが図示されている。
2番目のプレシンクトに対する分析フィルタ処理が終了した時点で、分解レベル1のウェーブレット変換より生成された係数データが、係数C8,係数C9,係数C11,係数C12,係数C16,係数C17,係数C19,係数C20,係数C24,係数C25の順にリングバッファAに格納され、分解レベル2のウェーブレット変換より生成された係数データが、係数C7,係数C10,係数C15,係数C18の順にリングバッファBに格納されている。
図32は、図21乃至図23および図31に対応して、5×3フィルタのリフティングによるフィルタ処理を分解レベル=3まで実行した場合の、2番目のプレシンクトに対する符号化処理の流れを模式的に示した図である。
なお、図32は、図21の領域D14内のリフティング演算以降の処理について示している。また、図内中央の右向きの矢印は時間軸を表している。さらに、実線の下向きの矢印は、SPU311とローカルストア312との間で行われるデータ転送(一部、SPU311内のデータ転送を含む)であるローカルストア転送を示し、点線の右斜め下向きの矢印は、ローカルストア312とメインメモリ313との間で行われるデータ転送であるメインメモリ転送を示している。なお、ローカルストア転送とメインメモリ転送の転送時間の差を強調するために、ローカルストア転送は、転送時間がほぼ0となるように時間軸に対してほぼ垂直な矢印により表され、メインメモリ転送は、ローカルストア転送より転送時間を要することを表すように右斜め下向きの矢印により表されている。
また、ライトバッファA、リングバッファA、リードバッファAは、分解レベル1の分析フィルタ処理により生成される係数データが格納され、ライトバッファB、リングバッファB、リードバッファBは、分解レベル2の分析フィルタ処理により生成される係数データが格納されるものとする。
時間軸に沿って処理の流れを説明すると、まず、ウェーブレット変換部321は、領域D14内の分解レベル1の分析フィルタ処理を行い、係数C25を生成し、ライトバッファAに書き込み、リングバッファAへの転送をメモリコントローラ314に要求する。次に、ウェーブレット変換部321は、メモリコントローラ314によりライトバッファAからリングバッファAに係数C25が転送されるのに並行して、領域D14内の分解レベル2の分析フィルタ処理を行い、係数C18を生成し、ライトバッファBに書き込み、リングバッファBへの転送をメモリコントローラ314に要求する。そして、ウェーブレット変換部321は、メモリコントローラ314によりライトバッファBからリングバッファBに係数C18が転送されるのに並行して、領域D14内の分解レベル3の分析フィルタ処理を行い、係数C5およびC6を生成し、エントロピ符号化部323に供給する。
エントロピ符号化部323は、係数C5およびC6をエントロピ符号化し、その結果得られた符号化データVLC5およびVLC6を送出する。
次に、エントロピ符号化部323は、1番目のプレシンクトに対する分析フィルタ処理においてリードバッファBに格納されている係数データC7を読み出し、リングバッファBの先頭Hに格納されている係数C10の転送をメモリコントローラ314に要求する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファBからリードバッファBに係数C10が転送されるのに並行して、係数C7をエントロピ符号化し、その結果得られた符号化データVLC7を送出する。
次に、エントロピ符号化部323は、1番目のプレシンクトに対する分析フィルタ処理においてリードバッファAに格納されている係数C8を読み出し、リングバッファAの先頭Hに格納されている係数C9の転送をメモリコントローラ314に要求する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファAからリードバッファAに係数C9が転送されるのに並行して、係数C8をエントロピ符号化し、その結果得られた符号化データVLC8を送出する。
次に、エントロピ符号化部323は、係数C9をリードバッファAから読み出し、リングバッファAにおいて係数C9が格納されていた位置の次の位置に格納されている係数C11の転送をメモリコントローラ314に要求する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファAからリードバッファAに係数C11が転送されるのに並行して、係数C9をエントロピ符号化し、その結果得られた符号化データVLC9を送出する。
次に、エントロピ符号化部323は、係数C10をリードバッファBから読み出し、リングバッファBにおいて係数C10が格納されていた位置の次の位置に格納されている係数C15の転送をメモリコントローラ314に要求する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファBからリードバッファBに係数C15が転送されるのに並行して、係数C10をエントロピ符号化し、その結果得られた符号化データVLC10を送出する。
次に、エントロピ符号化部323は、係数C11をリードバッファAから読み出し、リングバッファAにおいて係数C11が格納されていた位置の次の位置に格納されている係数C12の転送をメモリコントローラ314に要求する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファAからリードバッファAに係数C12が転送されるのに並行して、係数C11をエントロピ符号化し、その結果得られた符号化データVLC11を送出する。
次に、エントロピ符号化部323は、係数C12をリードバッファAから読み出し、リングバッファAにおいて係数C12が格納されていた位置の次の位置に格納されている係数C13の転送をメモリコントローラ314に指示する。エントロピ符号化部323は、メモリコントローラ314によりリングバッファAからリードバッファAに係数C13が転送されるのに並行して、係数C12をエントロピ符号化し、その結果得られた符号化データVLC12を送出し、2番目のプレシンクトに対する符号化処理が終了する。
このようにして、合成処理(逆ウェーブレット変換処理)において処理される順に係数データを並び替えて符号化し、復号側に供給することができ、復号処理による遅延時間を短縮することができる。
また、サブバンド毎に分けて各リングバッファ351に生成された順に係数データを書き込み、リングバッファ351を選択しながら書き込まれた順に係数データを読み出すだけで、合成処理において処理される順に係数データを並び替えることができるので、係数データの書き込み位置または読み出し位置の演算処理を軽減することができる。その結果、SPU311の負荷を軽減し、処理速度を早くすることができ、符号化処理による遅延時間を短縮することができる。
さらに、係数データがサブバンド毎に各リングバッファ351に分かれて格納されるので、各リングバッファ351内に格納される係数データの水平方向のサイズが統一され、係数並び替え用バッファ部341においてフラグメントの発生を抑制することができ、メモリの使用効率を向上させることができる。
また、図32を参照して上述したように、ローカルストア312とメインメモリ313との間のデータ転送により生じるSPU311の待ち時間を短縮することができ、処理時間を短縮することができ、符号化処理による遅延時間を短縮することができる。
なお、ライトバッファ333−1乃至333−mとリングバッファ351−1乃至351−m間のデータ転送、および、リードバッファ334−1乃至334−mとリングバッファ351−1乃至351−m間のデータ転送、換言すれば、同じサブバンドに対応するライトバッファ333とリングバッファ351間のデータ転送、および、同じサブバンドに対応するリングバッファ351とリードバッファ334間のデータ転送を、それぞれ別のチャンネルを利用して並行して実行できるようにすることが望ましい。これにより、各サブバンドの係数データの転送が並列に行われるようになり、係数データの転送により生じるSPU311の待ち時間をより短縮することができる。
次に、図1の符号化部10に対応する復号部について説明する。図33は、復号部の一実施の形態を示すブロック図である。図33に示される復号部401は、ソフトウェアプログラムにより構成され、画像データが符号化された符号化データを復号して画像データを復元するソフトウェアデコーダが所定の情報処理装置のCPUにより実行されることにより実現される機能を模式的に示したものである。図33に示されるように、復号部401は、エントロピ復号部411、係数バッファ部412、およびウェーブレット逆変換部413の機能を有する。
エントロピ復号部411は、供給された符号化データをエントロピ符号化部23による符号化方法に対応する復号方法で復号し、係数データを得る。その係数データは、係数バッファ部412に格納される。ウェーブレット逆変換部413は、係数バッファ部412に格納された係数データを用いて、合成フィルタによる合成フィルタ処理(ウェーブレット逆変換)を行い、合成フィルタ処理の結果を再び係数バッファ部412に格納する。ウェーブレット逆変換部413は、この処理を分解レベルに応じて繰り返して、復号された画像データ(出力画像データ)を得ると、それを外部に出力する。
次に、図34のフローチャートを参照して、復号部401により実行される復号処理の流れの例を説明する。
復号処理が開始されると、エントロピ復号部411は、ステップS101において、復号部401の外部より供給される符号化データを取得し、ステップS102において、ライン毎に符号化データをエントロピ復号する。
ステップS103において、係数バッファ部412は、復号された係数データを保持する。
ステップS104において、ウェーブレット逆変換部413は、係数バッファ部412に1プレシンクト分の係数データが蓄積されたか否かを判定する。1プレシンクト分の係数データが蓄積されていないと判定された場合、処理は、ステップS101に戻り、それ以降の処理が実行される。つまり、ウェーブレット逆変換部413は、係数バッファ部412に1プレシンクト分の係数データが蓄積されるまで待機する。
ステップS104において、1プレシンクト分の係数データが蓄積されたと判定された場合、処理はステップS105に進む。
なお、上述したように、符号化部10(または、符号化装置101、符号化装置201、もしくは、符号化装置301)からは係数データが逆ウェーブレット変換において処理される順に並び替えられて復号部401に供給されるので、係数バッファ部412には、1プレシンクト分の係数データが逆ウェーブレット変換において処理される順に並べられて格納される。
ステップS105において、ウェーブレット逆変換部413は、係数バッファ部412に保持されている係数データを1プレシンクト分読み出し、ステップS106において、その読み出した係数データに対して、画面垂直方向に並ぶ係数データに対して合成フィルタリング処理を行う垂直合成フィルタリング処理を行い、ステップS107において、画面水平方向に並ぶ係数データに対して合成フィルタリング処理を行う水平合成フィルタリング処理を行う。
なお、上述したように、係数バッファ部412には、1プレシンクト分の係数データが逆ウェーブレット変換において処理される順に並べられて格納されており、ウェーブレット逆変換部413は、係数データを格納されている順に係数バッファ部412から読み出せばよく、係数データの並び替えを行う必要がないため、ウェーブレット逆変換処理による遅延時間を短縮することができる。
ステップS108において、ウェーブレット逆変換部413は、合成フィルタリング処理がレベル1(分解レベルの値が「1」のレベル)まで終了したか否か、すなわち、ウェーブレット変換前の状態まで逆変換したか否かを判定する。レベル1まで達していないと判定された場合、処理はステップS106に戻り、ステップS106およびステップS107のフィルタリング処理が繰り返される。
ステップS108において、レベル1までウェーブレット逆変換処理が終了されたと判定した場合、処理はステップS109に進む。
ステップS109において、ウェーブレット逆変換部413は、ウェーブレット逆変換処理により得られた画像データを外部に出力する。
ステップS110において、エントロピ復号部411は、復号処理を終了するか否かを判定する。復号処理を終了しないと判定された場合、処理はステップS101に戻り、それ以降の処理が繰り返される。また、ステップS110において、プレシンクトが終了するなどして復号処理が終了されると判定した場合、復号処理は終了される。
このようにして、復号処理による遅延時間を短縮することができる。
上述した一連の処理は、ソフトウェアにより実行させることもできるが、ハードウェアにより実行させることもできる。上述したソフトウェアプログラムは、実行可能な装置であればどのような装置において実行させるようにしてもよく、例えば、図35に示されるようなパーソナルコンピュータにおいて実行させるようにしてもよい。
図35において、パーソナルコンピュータ500のCPU501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、例えばインターネットに代表されるネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図35に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
以上説明した本発明は、複数の端末間で画像を圧縮して伝送、受信して伸長して画像を出力するシステム、特に低遅延で実現する必要性が高いプロダクツ・アプリケーションに好適である。具体的には、放送局で多用するデジタルトライアックスシステム、ライブ映像配信システム、TV会議システム、監視カメラ・レコーダシステム、医用遠隔医療診断、生徒と教師間のインタラクティブ通信、ビデオゲーム等に応用が可能である。
本発明を適用した符号化部の一実施の形態を示すブロック図である。 ウェーブレット変換について概略的に説明するための略線図である。 ウェーブレット変換について概略的に説明するための略線図である。 5×3分析フィルタのリフティング構成の例を説明する図である。 5×3合成フィルタのリフティング構成の例を説明する図である。 5×3フィルタのリフティングによるフィルタリングを分解レベル=2まで実行した例を示す図である。 この発明によるウェーブレット変換およびウェーブレット逆変換の流れを概略的に示す図である。 9×7分析フィルタのリフティング構成の例を説明する図である。 水平方向の係数群に対しての水平分析フィルタリングを、図8のリフティング構成により実行する場合を説明する図である。 係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を説明する図である。 垂直方向の係数群に対しての垂直分析フィルタリングを、図8のリフティング構成により実行する場合を説明するを示す図である。 9×7分析フィルタのリフティング構成の他の例を説明する図である。 垂直方向の係数群に対しての垂直合成フィルタリングを、図12のリフティング構成により実行する場合を説明するを示す図である。 水平方向の係数群に対しての水平合成フィルタリングを、図12のリフティング構成により実行する場合を説明する図である。 ウェーブレット変換に9×7フィルタを用いた場合の途中計算用バッファ部と係数並び替え用バッファ部のアクセス回数を示す図である。 ウェーブレット変換に5×3フィルタを用いた場合の途中計算用バッファ部と係数並び替え用バッファ部のアクセス回数を示す図である。 ウェーブレット変換に9×7フィルタを用いた場合の途中計算用バッファ部と係数並び替え用バッファ部の必要容量を示す図である。 ウェーブレット変換に5×3フィルタを用いた場合の途中計算用バッファ部と係数並び替え用バッファ部の必要容量を示す図である。 本発明を適用した符号化装置の第1の実施の形態を示すブロック図である。 図19の符号化装置により実行される符号化処理を説明するためのフローチャートである。 5×3フィルタのリフティングによるフィルタリングを分解レベル=3まで実行した例を示す略線図である。 図21の左側の分析フィルタ側の図に、合成フィルタ側の2番目のプレシンクトに対応する部分を重ねて示した図である。 2番目のプレシンクトに対する符号化処理の流れを示す図である。 係数並び替え用バッファ部の状態を模式的に示した図である。 本発明を適用した符号化装置の第2の実施の形態を示すブロック図である。 図25の符号化装置により実行される符号化処理を説明するためのフローチャートである。 係数並び替え用バッファ部の状態を模式的に示した図である。 本発明を適用した符号化装置の第3の実施の形態を示すブロック図である。 図28の係数並び替え用バッファ部のメモリ構成の例を示す図である。 図28の符号化装置により実行される符号化処理を説明するためのフローチャートである。 係数並び替え用バッファ部の状態を模式的に示した図である。 2番目のプレシンクトに対する符号化処理の流れを模式的に示した図である。 復号部の構成例を示すブロック図である。 図33の復号部により実行される復号処理を説明するためのフローチャートである。 パーソナルコンピュータの構成例を示す図である。
符号の説明
10 符号化部, 21 ウェーブレット変換部, 22 係数並び替え部, 23 エントロピ符号化部, 24 途中計算用バッファ部, 25 係数並び替え用バッファ部, 101 符号化装置, 111 SPU, 112 ローカルストア, 113 メインメモリ, 114 メモリコントローラ, 121 ウェーブレット変換部, 122 係数並び替え部, 123 エントロピ符号化部, 132 途中計算用バッファ部, 133 ライトバッファ, 134 リードバッファ, 141 係数並び替え用バッファ部, 201 符号化装置, 211 SPU, 212 ローカルストア, 213 メインメモリ, 214 メモリコントローラ, 221 ウェーブレット変換部, 222 係数並び替え部, 223 エントロピ符号化部, 232 途中計算用バッファ部, 233 ライトバッファ, 234 リードバッファ, 241 係数並び替え用バッファ部, 301 符号化装置, 311 SPU, 312 ローカルストア, 313 メインメモリ, 314 メモリコントローラ, 321 ウェーブレット変換部, 323 エントロピ符号化部, 332 途中計算用バッファ部, 333 ライトバッファ, 334 リードバッファ, 341 係数並び替え用バッファ部, 351 リングバッファ

Claims (10)

  1. 画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、
    前記係数データを格納する係数格納手段と、
    前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、
    記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、
    前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段と
    を備える符号化装置。
  2. 前記書き込み手段は、前記係数データを前記サブバンド毎に領域を分けて格納する書き込みバッファを介して、前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを前記係数格納手段に書き込み、
    前記読み出し手段は、前記係数データを前記サブバンド毎に領域を分けて格納する読み出しバッファを介して、前記係数格納手段から前記係数データを前記所定順に読み出す
    請求項1に記載の符号化装置。
  3. 前記書き込み手段および前記読み出し手段は、前記書き込み手段による前記書き込みバッファの各領域と前記係数格納手段の領域との間のデータ転送、並びに、前記読み出し手段による前記読み出しバッファの各領域と前記係数格納手段の領域との間のデータ転送を互いに異なるチャンネルにおいて行う
    請求項2に記載の符号化装置。
  4. 前記読み出し手段は、前記エントロピ符号化手段により次に前記エントロピ符号化される前記係数データを、前記係数データに対する前記エントロピ符号化が開始される前に、前記係数格納手段から先読みし、前記読み出しバッファに転送する
    請求項2に記載の符号化装置。
  5. 前記フィルタ手段は、リフティング演算を用いて前記分析フィルタ処理を行う
    請求項1に記載の符号化装置。
  6. 前記書き込み手段は、前記フィルタ手段による最終の分解レベルの前記分析フィルタ処理により生成された前記係数データを、前記係数格納手段に書き込まずに前記エントロピ符号化手段に供給する
    請求項1に記載の符号化装置。
  7. 前記フィルタ手段による前記分析フィルタ処理の途中で発生する中間データを格納する、前記係数格納手段よりもアクセス速度が速い中間データ格納手段をさらに備える
    請求項1に記載の符号化装置。
  8. 画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行い、
    前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて係数格納部に書き込み、
    前記係数格納部の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出し、
    前記係数格納部から前記所定順に読み出された前記係数データをエントロピ符号化する
    ステップを含む符号化方法。
  9. コンピュータを、
    画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、
    前記係数データを格納する係数格納手段と、
    前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、
    記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、
    前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段
    として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  10. コンピュータを、
    画像データに対して、前記画像データの周波数成分を高域成分と低域成分に分解する分析フィルタ処理を階層的に行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成する生成処理を、前記生成処理によって最低域成分のサブバンドを少なくとも1ライン生成するのに必要なライン数分の画像データであるラインブロック毎に行うフィルタ手段と、
    前記係数データを格納する係数格納手段と、
    前記フィルタ手段による前記分析フィルタ処理により生成された前記係数データを、前記サブバンド毎に領域を分けて前記係数格納手段に書き込む書き込み手段と、
    記係数格納手段の各領域から、前記サブバンド毎に分けられた前記係数データを所定順に読み出す読み出し手段と、
    前記読み出し手段により前記係数格納手段から前記所定順に読み出された前記係数データをエントロピ符号化するエントロピ符号化手段
    として機能させるためのプログラム。
JP2007131382A 2007-05-17 2007-05-17 符号化装置および方法、記録媒体、並びにプログラム。 Expired - Fee Related JP4525704B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007131382A JP4525704B2 (ja) 2007-05-17 2007-05-17 符号化装置および方法、記録媒体、並びにプログラム。
US12/109,857 US8594427B2 (en) 2007-05-17 2008-04-25 Method and apparatus for reducing memory capacity in encoding image data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007131382A JP4525704B2 (ja) 2007-05-17 2007-05-17 符号化装置および方法、記録媒体、並びにプログラム。

Publications (2)

Publication Number Publication Date
JP2008288841A JP2008288841A (ja) 2008-11-27
JP4525704B2 true JP4525704B2 (ja) 2010-08-18

Family

ID=40027551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007131382A Expired - Fee Related JP4525704B2 (ja) 2007-05-17 2007-05-17 符号化装置および方法、記録媒体、並びにプログラム。

Country Status (2)

Country Link
US (1) US8594427B2 (ja)
JP (1) JP4525704B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260068B2 (en) * 2007-05-17 2012-09-04 Sony Corporation Encoding and decoding device and associated methodology for obtaining a decoded image with low delay
JP4793320B2 (ja) * 2007-05-17 2011-10-12 ソニー株式会社 情報処理装置および方法
JP4670947B2 (ja) * 2008-12-05 2011-04-13 ソニー株式会社 情報処理装置および方法
WO2010116202A1 (en) * 2009-04-09 2010-10-14 Freescale Semiconductor, Inc. A method and system arranged for filtering an image
US9300975B2 (en) 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
GB2496194A (en) * 2011-11-07 2013-05-08 Sony Corp Entropy encoding video data using reordering patterns
GB2496195A (en) * 2011-11-07 2013-05-08 Sony Corp Entropy encoding video data using reordering patterns
US9445124B2 (en) * 2013-03-15 2016-09-13 Samsung Electronics Co., Ltd. Electronic system with frequency mechanism and method of operation thereof
CN120998287B (zh) * 2025-10-24 2026-02-10 四川般沃回科技有限公司 一种基于排序熵的内存卡检测方法和系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2088082C (en) * 1992-02-07 1999-01-19 John Hartung Dynamic bit allocation for three-dimensional subband video coding
WO1996008911A1 (en) * 1994-09-16 1996-03-21 Southwestern Bell Technology Resources, Inc. Versatile multipoint video composition and bridging system
US6873734B1 (en) * 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
JP3249729B2 (ja) * 1995-10-24 2002-01-21 シャープ株式会社 画像符号化装置及び画像復号装置
US6625321B1 (en) * 1997-02-03 2003-09-23 Sharp Laboratories Of America, Inc. Embedded image coder with rate-distortion optimization
JPH10283342A (ja) 1997-04-02 1998-10-23 Matsushita Electric Ind Co Ltd ウェーブレット変換装置
JP2000115770A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法
JP2000184204A (ja) * 1998-12-11 2000-06-30 Canon Inc 画像処理装置及び方法及び記憶媒体
JP2001218208A (ja) * 2000-01-28 2001-08-10 Canon Inc 画像復号装置及びその方法
JP4254017B2 (ja) * 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
US7013050B2 (en) * 2001-06-26 2006-03-14 Canon Kabushiki Kaisha Image encoding apparatus and method, program code, and storage medium
AUPR662601A0 (en) * 2001-07-26 2001-08-16 Canon Kabushiki Kaisha Inverse discrete wavelet transforms for data decompression
JP3743384B2 (ja) * 2002-04-19 2006-02-08 ソニー株式会社 画像符号化装置及び方法、並びに画像復号装置及び方法
JP2004242287A (ja) * 2003-01-14 2004-08-26 Canon Inc 情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US7298898B2 (en) * 2003-04-15 2007-11-20 Honeywell International Inc. System and method for image segmentation
JP4007507B2 (ja) * 2004-01-30 2007-11-14 株式会社Kddi研究所 タイルサイズ変換装置
CN1943243B (zh) * 2004-02-23 2013-06-05 日本电气株式会社 二维信号编码/解码方法和设备
JP4721262B2 (ja) * 2005-03-31 2011-07-13 株式会社リコー 画像処理装置、画像処理方法、プログラム及び情報記録媒体
JP2007049485A (ja) * 2005-08-10 2007-02-22 Sony Corp 離散ウェーブレット変換装置及び方法、並びにプログラム及び記録媒体
JP4371120B2 (ja) * 2006-05-16 2009-11-25 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4360379B2 (ja) * 2006-05-16 2009-11-11 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4182447B2 (ja) * 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4182446B2 (ja) * 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4356028B2 (ja) * 2007-05-17 2009-11-04 ソニー株式会社 情報処理装置および方法

Also Published As

Publication number Publication date
US20080285873A1 (en) 2008-11-20
JP2008288841A (ja) 2008-11-27
US8594427B2 (en) 2013-11-26

Similar Documents

Publication Publication Date Title
JP4525704B2 (ja) 符号化装置および方法、記録媒体、並びにプログラム。
JP4356033B2 (ja) 画像データ処理装置および方法
CN101543037B (zh) 信息处理设备和方法
JP4356032B2 (ja) 情報処理装置および方法
JP4356030B2 (ja) 情報処理装置および方法
CN101106719B (zh) 小波变换设备、小波逆变换设备和方法
CN101076117B (zh) 图像处理设备和图像处理方法
US7577308B2 (en) Image data generation with reduced amount of processing
JP2000299863A (ja) 画像圧縮装置
JP4356029B2 (ja) 情報処理装置および方法
JP4356031B2 (ja) 情報処理装置および方法
JP4793320B2 (ja) 情報処理装置および方法
US8249375B2 (en) Information processing apparatus and method
JP4821835B2 (ja) 情報処理装置および方法
JP4280752B2 (ja) コンピュータ等の画像処理装置、画像処理用プログラム及び記憶媒体
JP2007014002A (ja) 画像処理装置、画像処理用プログラム及び記録媒体
JP2004112091A (ja) 画像処理装置、画像処理用プログラム及び記憶媒体
JP2003099769A (ja) メモリアクセス制御装置、画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090821

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100419

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

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

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4525704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

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

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