(57)【特許請求の範囲】
【請求項１】
入力画像に対し、低域フィルタと高域フィルタを垂直・水平方向に施すフィルタリング手段と、
上記フィルタリング後の係数を、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンに展開するビットプレーン生成手段と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成手段と、
上記符号化パス内で算術符号化を行う算術符号化手段と、
生成された算術符号から目標の符号量になるように符号量を制御する符号量制御手段と、
符号量制御後の算術符号にヘッダを加えてパケットを生成するパケット生成手段とを有して構成される所定のフォーマットの符号化コードストリームによるパケットを生成する画像符号化装置において、
同該フィルタリングによって生成されるサブバンド毎の符号化パス数の上限値を予め記憶しておく記憶手段と、
同該符号化パス生成手段は、上記ビットプレーン毎の符号化パスが上記サブバンド毎の符号化パス数の上限値を超えた場合、上記ビットプレーン毎の符号化パスを切り捨てる符号化パス終了手段とを備えていることを特徴とする画像符号化装置。
【請求項２】
請求項１記載の画像符号化装置において、
同該符号化パス生成手段によって生成された符号化コードストリームが目標の符号量を越えていた場合には、同該符号化コードストリームの後ろを、目標の符号量になるように切り捨てる符号化コードストリーム切り捨て手段を備えたことを特徴とする画像符号化装置。
【請求項３】
請求項１記載の画像符号化装置において、
上記符号化パス生成手段において、サブバンド毎の符号化パス数のパターンを複数個記憶しておく記憶手段と、入力画像によって同該パターンを切り替える切替手段を備えたことを特徴とする画像符号化装置。
【請求項４】
請求項３記載の画像符号化装置において、
上記サブバンド毎の符号化パス数のパターンを切り替える切替手段は、入力画像が連続した動画像であるとき、１つ前の符号化フレームで発生した符号量が、目標の符号量よりも大きかった場合には、より符号量が発生しにくいパターンを選び、逆に目標の符号量よりも小さかった場合には、より符号量が発生し易いパターンを選ぶ選択手段を備えたことを特徴とする画像符号化装置。
【請求項５】
入力画像に対し、低域フィルタと高域フィルタを垂直・水平方向に施すフィルタリング工程と、
上記フィルタリング後の係数を、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンに展開するビットプレーン生成工程と、
上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、
上記符号化パス内で算術符号化を行う算術符号化工程と、
生成された算術符号から目標の符号量になるように符号量を制御する符号量制御工程と、
符号量制御後の算術符号にヘッダを加えてパケットを生成するパケット生成工程とを有して構成される所定のフォーマットの符号化コードストリームによるパケットを生成する画像符号化方法において、
同該フィルタリングによって生成されるサブバンド毎の符号化パス数の上限値を予め記憶しておく記憶工程と、
同該符号化パス生成工程は、上記ビットプレーン毎の符号化パスが上記サブバンド毎の符号化パス数の上限値を超えた場合、上記ビットプレーン毎の符号化パスを切り捨てる符号化パス終了手段とを備えていることを特徴とする画像符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−２０００規格に基づいたフォーマットによる符号化を行う画像符号化装置及び画像符号化方法に関する。応用分野としては、静止画・動画像のデジタルカメラ、カムコーダ、監視用コーデック、放送用映像機器のコーデック、ノンリニア編集機のコーデック、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）や携帯電話内臓のコーデック、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上のオーサリング・ツール、画像編集ソフト、ゲーム、３次元ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃ）で用いるテキスチャの圧縮器またはそのソフトウェア・モジュール等が主な利用分野である。
【０００２】
【従来の技術】
従来の代表的な画像圧縮方式として、ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｉｚａｔｉｏｎ）によって標準化されたＪＰＥＧ方式がある。これはＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を用い、比較的高いビットが割り当てられる場合には、良好な符号化・復号化画像を供することが知られている。ところが、ある程度符号化ビット数を少なくすると、ＤＣＴ特有のブロック歪みが顕著になり、主観的に劣化が目立つようになる。これとは別に最近、画像をフィルタバンクと呼ばれるハイパス・フィルタとローパス・フィルタを組み合わせたフィルタによって、複数の帯域に分割して、それらの帯域毎に符号化を行う方式の研究が盛んになっている。その中でも、ウェーブレット変換符号化は、ＤＣＴで問題になる高圧縮でブロック歪みが顕著になるという欠点が無いことから、ＤＣＴに代わる新たな技術として有力視されている。
【０００３】
２０００年１２月に国際標準化が完了する予定のＪＰＥＧ−２０００規格は、このウェーブレット変換に高能率なエントロピー符号化と算術符号化を組み合わせた手段を採用しており、ＪＰＥＧに比べて符号化効率の大きな改善を実現している。しかし、これら国際規格は、デコーダ側の規格のみを定めており、エンコーダ側は自由に設計することが出来る。その反面、一般に負荷が重いエンコーダの処理の軽減手段や、本発明で述べるレート制御の効果的な手段については規格が存在しないため、ノウハウの確立が何よりも重要になる。また、ＪＰＥＧでは、目標の圧縮率を実現するためのレート制御が困難であり、目標値を得るまで複数回の符号化を施す必要も多々ある。これは、処理時間の増大に繋がることから、符号化は１回で目標の符号量を得ることが望まれる。
【０００４】
【発明が解決しようとする課題】
以上の背景から、本発明では、ＪＰＥＧ−２０００規格に基づいたフォーマットによる符号化を行う画像符号化装置及び画像符号化方法において、以下の課題を実現することを目的とする。
第１に、目標符号量を、１回の符号化処理で実現すること。
第２に、レート制御の計算負荷及び記憶負荷が少なくて、且つ高い符号化効率の符号量制御を実現すること。
第３に、静止画のみならず動画像にも、安定した符号量制御が実現出来ること。
第４に、様々なタイプの動画像に対しても、安定した符号量制御が実現出来ること。
【０００５】
【課題を解決するための手段】
この発明の画像符号化装置は、入力画像に対し、低域フィルタと高域フィルタを垂直・水平方向に施すフィルタリング手段と、上記フィルタリング後の係数を、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンに展開するビットプレーン生成手段と、上記ビットプレーン毎に符号化パスを生成する符号化パス生成手段と、上記符号化パス内で算術符号化を行う算術符号化手段と、生成された算術符号から目標の符号量になるように符号量を制御する符号量制御手段と、符号量制御後の算術符号にヘッダを加えてパケットを生成するパケット生成手段とを有して構成される所定のフォーマットの符号化コードストリームによるパケットを生成する画像符号化装置において、同該フィルタリングによって生成されるサブバンド毎の符号化パス数の上限値を予め記憶しておく記憶手段と、同該符号化パス生成手段は、上記ビットプレーン毎の符号化パスが上記サブバンド毎の符号化パス数の上限値を超えた場合、上記ビットプレーン毎の符号化パスを切り捨てる符号化パス終了手段とを備えているものである。
【０００６】
また、発明の画像符号化方法は、入力画像に対し、低域フィルタと高域フィルタを垂直・水平方向に施すフィルタリング工程と、上記フィルタリング後の係数を、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンに展開するビットプレーン生成工程と、上記ビットプレーン毎に符号化パスを生成する符号化パス生成工程と、上記符号化パス内で算術符号化を行う算術符号化工程と、生成された算術符号から目標の符号量になるように符号量を制御する符号量制御工程と、符号量制御後の算術符号にヘッダを加えてパケットを生成するパケット生成工程とを有して構成される所定のフォーマットの符号化コードストリームによるパケットを生成する画像符号化方法において、同該フィルタリングによって生成されるサブバンド毎の符号化パス数の上限値を予め記憶しておく記憶工程と、同該符号化パス生成工程は、上記ビットプレーン毎の符号化パスが上記サブバンド毎の符号化パス数の上限値を超えた場合、上記ビットプレーン毎の符号化パスを切り捨てる符号化パス終了手段とを備えているものである。
【０００９】
本発明によれば、以下の作用をする。
この発明のＪＰＥＧ−２０００規格に基づいたフォーマットによる符号化を行う画像符号化装置及び画像符号化方法において、ウェーブレット変換を行うフィルタリング手段は、入力画像を低域フィルタ・高域フィルタから構成されるフィルタバンクによってフィルタリングを行い、変換係数を算出する。特に低域のサブバンドを複数のレベルまで再帰的に変換する作用がある。量子化手段は、通常良く用いられるスカラ量子化、即ち変換係数値を所定のステップサイズで除算する作用がある。ビットプレーン毎に符号化パスを生成する符号化パス生成手段は、所定の符号化ブロック単位内の変換係数から、最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンを構成して、同該符号化パスの処理を行う作用がある。算術符号化手段は、符号化パス内から呼ばれて、統計量の測定を行い学習を行いながら所定の算術符号化を行う作用がある。生成された算術符号から目標の符号量になるように符号量のレート制御をする符号量制御手段において、目標の符号量に近づける様に、符号化コードストリーム切り捨て手段は上記符号化パスの一部を切り捨てる作用がある。
【００１０】
【発明の実施の形態】
以下、この発明によるＪＰＥＧ−２０００規格に基づいたフォーマットによる符号化を行う画像符号化装置及び画像符号化方法の実施の形態について説明する。
【００１１】
［第１の実施の形態］
本実施の形態は、請求項第１項に記載する本発明の一実施形態である。図１は本実施形態の画像符号化装置の構成を示すブロック図であり、入力画像に対してウェーブレット変換を施すウェーブレット変換部１と、ウェーブレット変換係数を最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に至るビットプレーンに展開するビットプレーン符号化パス生成部２と、符号化パス内で算術符号化を行う算術符号化部３と、生成された算術符号から目標の符号量になるように符号量を制御するレート制御部４と、ヘッダを生成するヘッダ生成部５と、符号量制御後の算術符号にヘッダを加えてパケットを生成するパケット生成部６とを有して構成される。ここで、ビットプレーン符号化パス生成部２および算術符号化部３とでＥＢＣＯＴ（Ｅｍｂｅｄｄｅｄ  Ｃｏｄｉｎｇ  ｗｉｔｈ  Ｏｐｔｉｍｉｚｅｄ  Ｔｒｕｎｃａｔｉｏｎ）符号化部１０を構成する。
【００１２】
次に本実施形態の画像符号化装置の動作について説明する。ウェーブレット変換部１におけるウェーブレット変換は、通常低域フィルタと高域フィルタから構成されるフィルタバンクによって実現される。従ってデジタルフィルタは通常複数タップ長のインパルス応答（フィルタ係数）を持っているので、フィルタリングが行えるだけの入力画像を予めバッファリングしておく必要がある。しかし本実施の形態では、図１の構成要素からは外してある。
【００１３】
上記によってフィリタリングに必要な最低限の画像Ｓ１００を入力したウェーブレット変換部１では、ウェーブレット変換を行うフィルタリングを行い、ここでウェーブレット変換係数Ｓ１０１が生成される。図４に、第２ステージまでウェーブレット分割したときのサブバンドを示す。尚、ウェーブレット変換は、通常図４の様に第２レベルまでの最低域サブバンドＬＬ２と、低高域サブバンドＬＨ２と、高低域サブバンドＨＬ２と、最高域サブバンドＨＨ２のように、低域成分を繰り返し変換する手段を取るが、これは画像のエネルギーの多くが低域成分に集中しているからである。
【００１４】
尚、図４の場合には、ウェーブレット変換のレベル数は２であり、この結果、第２レベルまでの最低域サブバンドＬＬ２と、低高域サブバンドＬＨ２と、高低域サブバンドＨＬ２と、最高域サブバンドＨＨ２と、第１レベルの低高域サブバンドＬＨ１と、高低域サブバンドＨＬ１と、最高域サブバンドＨＨ１の計７つのサブバンドが生成される。尚、ウェーブレット変換手段では、通常低域成分のみを再帰的にフィルタリングするが、これ以外の手段も存在することは言うまでもない。
【００１５】
次に、ウェーブレット変換係数Ｓ１０１を入力して、ビットプレーン符号化パス生成部２でエントロピー符号化が行われる。本実施の形態では、特にＪＰＥＧ−２０００規格で定められたＥＢＣＯＴ（Ｅｍｂｅｄｄｅｄ  Ｃｏｄｉｎｇ  ｗｉｔｈ  Ｏｐｔｉｍｉｚｅｄ  Ｔｒｕｎｃａｔｉｏｎ）と呼ばれるエントロピー符号化を例に取りながら説明する（参考文献：ISI/IEC FDIS 15444-1,JPEG-2000
Part-1 FDIS, 18 August 2000）。
【００１６】
ＥＢＣＯＴの説明の前に、ビットプレーンの概念について図５を用いて説明する。図５Ａは縦４個、横４個の計１６個の係数から成る量子化係数を仮定している。この１６個の係数の内、絶対値が最大のものは１３で、２進表現にすると１１０１になる。このようにそれぞれウェーブレット変換係数Ｓ１０１による係数値を有している。
【００１７】
ＥＢＣＯＴ符号化を実行する場合、図５Ｂに示すように、ウェーブレット変換係数Ｓ１０１による係数値の絶対値を最下位ビット（ＬＳＢ：Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から最上位ビット（ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）までの各ビットで順次スライスするようにして各サンプルに対応する「１」または「０」の係数値を有する絶対値のビットプレーン（以下、これを絶対値ビットプレーンという。）、この場合、４種類の絶対値ビットプレーンを生成すると共に、図５Ｃに示すように、各係数値の「＋」「−」の符号のビットプレーン（以下、これを符号ビットプレーンという。）を生成する。
【００１８】
従って、同図５Ｂの絶対値のビットプレーンは４つのプレーンから構成される。各ビットプレーンの要素はすべて０か１の数を取ることは自明である。他方、符号は−６が唯一負の数でそれ以外は０または正の数である。従って、符号のプレーンは同図５Ｃのようになる。
【００１９】
ＥＢＣＯＴは、所定の大きさのブロック毎にそのブロック内の係数の統計量を測定しながら符号化を行う手段である。量子化係数をコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）と呼ばれる所定のサイズのブロック単位に、エントロピー符号化する。コードブロックは、ＭＳＢからＬＳＢ方向にビットプレーン毎に独立して符号化される。コードブロックの縦横のサイズは４から２５６までの２のべき乗で、通常使用される大きさは、３２×３２、６４×６４、１２８×３２等がある。ウェーブレット領域の係数値がｎビットの符号付き２進数で表されていて、ビット０からビットｎ−２がＬＳＢからＭＳＢまでのそれぞれのビットを表すとする。残りの１ビットは符号である。コードブロックの符号化は、ＭＳＢ側のビットプレーン（ｂｉｔ−ｐｌａｎｅ）から順番に、次の３種類の符号化パス（ｐａｓｓ）によって行われる。
【００２０】
ＥＢＣＯＴ符号化では、絶対値ビットプレーン内の係数値に対する符号化方式として、シグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）、マグニチュードリファイメントパス（Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ）およびクリーンナップパス（  Ｃｌｅａｎｕｐ  Ｐａｓｓ）と呼ばれる３種類の符号化パスが規定されている。
【００２１】
３つの符号化パスの用いられる順序は図６で示される。図６において、最初にＭＳＢ側のビットプレーン（ｂｉｔ−ｐｌａｎｅ）（ｎ−２）がクリーンナップパス（Ｃｌｅａｎｕｐ  Ｐａｓｓ）によって符号化される。続いて順次ＬＳＢ側に向かい、ビットプレーン（ｂｉｔ−ｐｌａｎｅ）（ｎ−３）、ビットプレーン（ｂｉｔ−ｐｌａｎｅ）（ｎ−４）・・・ビットプレーン（ｂｉｔ−ｐｌａｎｅ）（０）の各ビットプレーンの符号化が、３つの符号化パス（ｐａｓｓ）をシグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）、マグニチュードリファイメントパス（Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ）そしてクリーンナップパス（Ｃｌｅａｎｕ  ｐ  Ｐａｓｓ）の順序で用いて行われる。
【００２２】
ただし、実際にはＭＳＢ側から何番目のビットプレーンで初めて１が出てくるかをヘッダに書き、はじめのオール０のビットプレーンは符号化しない。
【００２３】
この順序で３種類の符号化パス（ｐａｓｓ）を繰返し用いて符号化して行き、任意のビットプレーンの任意の符号化パス（ｐａｓｓ）までで符号化を打ち切ることにより、符号量と画質のトレードオフを取ることによりレート制御を行う。
【００２４】
次に、係数の走査（スキャニング）について図７を用いて説明する。図７において、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）は高さ４ピクセルである４個の係数毎にストライプＳＴに分けられる。ストライプＳＴの幅はコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）の幅に等しい。スキャン順とは、１個のコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）内のすべての係数をたどる順番で、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）の中では上のストライプＳＴから下のストライプＳＴへの順序、ストライプＳＴの中では、左の列から右の列へ向かっての順序、列の中では上から下へという順序である。各符号化パス（ｐａｓｓ）においてコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）のすべての係数が、このスキャン順で処理される。
【００２５】
以下、３つの符号化パス（ｐａｓｓ）について述べる。
まず、第１に、シグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）について説明する。
あるビットプレーンを符号化するシグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）では、８近傍の少なくとも１つの係数がシグニフィカント（Ｓｉｇｎｉｆｉｃａｎｔ）であるようなノンシグニフィカント（ｎｏｎ−Ｓｉｇｎ  ｉｆｉｃａｎｔ）係数のビットプレーン（ｂｉｔ−ｐｌａｎｅ）の値を算術符号  化する。その符号化したビットプレーン（ｂｉｔ−ｐｌａｎｅ）の値が１である  場合は、符号が＋であるか、−であるかを続けて算術符号化する。
【００２６】
ここでシグニフィカンス（Ｓｉｇｎｉｆｉｃａｎｃｅ）という言葉について説明する。シグニフィカンス（Ｓｉｇｎｉｆｉｃａｎｃｅ）とは、各係数に対して符号化器が持つ状態で、シグニフィカンス（Ｓｉｇｎｉｆｉｃａｎｃｅ）の初期値はノンシグニフィカント（ｎｏｎ−Ｓｉｇｎｉｆｉｃａｎｔ）を表す０、その係数で１が符号化されたときにシグニフィカント（Ｓｉｇｎｉｆｉｃａｎｔ）を表す１に変化し、以降常に１であり続けるものである。従って、シグニフィカンス（Ｓｉｇｎｉｆｉｃａｎｃｅ）とは有効桁の情報を既に符号化したか否かを示すフラグとも言える。
【００２７】
次に、第２に、マグニチュードリファイメントパス（Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ）について説明する。
ビットプレーン（ｂｉｔ−ｐｌａｎｅ）を符号化するリファイメントパス（Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ）では、ビットプレーン（ｂｉｔ−ｐｌａｎｅ）を符号化するシグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）で符号化していないシグニフィカント（Ｓｉｇｎｉｆｉｃａｎｔ）な係数のビットプ  レーン（ｂｉｔ−ｐｌａｎｅ）の値を算術符号化する。
【００２８】
そして、第３に、クリーンナップパス（Ｃｌｅａｎｕｐ  Ｐａｓｓ）について説明する。
ビットプレーン（ｂｉｔ−ｐｌａｎｅ）を符号化するクリーンナップパス（Ｃｌｅａｎｕｐ  Ｐａｓｓ）では、ビットプレーン（ｂｉｔ−ｐｌａｎｅ）を符号化するシグニフィカンスプロパゲーションパス（Ｓｉｇｎｉｆｉｃａｎｃｅ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ）で符号化していないノンシグニフィカント（ｎｏｎ−Ｓｉｇｎｉｆｉｃａｎｔ）な係数のビットプレーン（ｂｉｔ−ｐｌａｎｅ）の値を算術符号化する。その符号化したビットプレーン（ｂｉｔ−ｐｌａｎｅ）の値が１である場合は符号が＋であるか−であるかを続けて算術符号化する。
【００２９】
尚、以上の３つの符号化パス（ｐａｓｓ）での算術符号化では、コードブロック単位毎に算術符号化の統計量を測定しながら、ケースに応じてＺＣ（ＺｅｒｏＣｏｄｉｎｇ）、ＲＬＣ（Ｒｕｎ−Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）、ＳＣ（Ｓｉｇｎ  Ｃｏｄｉｎｇ）、ＭＲ（Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ）が使い分けられる。ここでＭＱ符号化と呼ばれる算術符号が用いられる。ＭＱ符号化は、ＪＢＩＧ２（参考文献：ISO/IEC FDIS 14492, "Lossy/Lossless Coding of   Bi-level Images", March   2000）で規定された学習型の２値算術符号である。ＪＰＥＧ−２０００規格では、すべての符号化パス（ｐａｓｓ）で合計１９種類のコンテキストがある。
【００３０】
以上が、ビットプレーン毎に符号化パスを生成する符号化パス生成部２、算術符号化部３の、ＪＰＥＧ−２０００規格の手段を実例に取った説明である。尚、前記実施の形態の様に、ビットプレーン毎に符号化パスを生成する符号化パス生成部２において、ブロック毎に独立して符号化を行い、且つ算術符号化の統計量測定を同該符号化ブロック（上記例ではコードブロック（ｃｏｄｅ−ｂｌｏｃｋ））内に閉じて処理する内容は、請求項９でクレイムされている。
【００３１】
続いて図１を用いて後段の処理について説明する。レート制御部４では、すべてのビットプレーン符号化パスの処理を行った後で、算術符号化部３の出力である算術符号Ｓ１０３の符号量をカウントして、目標の符号量に達した時点で、それより後の算術符号を切り捨てる。従って、全ビットプレーンの符号化パスを処理するので負荷が大きいが、符号量をオーバーする直前で切り捨てる符号化コードストリーム切り捨て手段を取るため、確実に目標の符号量に抑えることが出来る。
【００３２】
符号量制御完了後の算術符号Ｓ１０４を入力したヘッダ生成部５では、例えば同該算術符号Ｓ１０４を元にしてコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）内での付加情報（例えばコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）内の符号化パス（ｐａｓｓ）の個数や圧縮コードストリームのデータ長等）をヘッダＳ１０５として出力する。更に、パケット生成部６では、上記算術符号Ｓ１０４とヘッダＳ１０５とを合わせてパケットＳ１０６を生成・出力する。
【００３３】
［第２の実施の形態］
本実施の形態は、請求項第２項に記載する一実施形態である。第１の実施形態のレート制御部４では、すべてのビットプレーン符号化パスの処理を行った後で、符号化コードストリーム切り捨て手段により符号化コードストリーム（算術符号）を切り捨てたが、より符号化の負荷を軽減するために、符号化中止手段により算術符号Ｓ１０３より送出される符号量を常時カウントしながら、目標の符号量に達した時点で同該符号化処理を中止する。この場合には、レート制御部４では、算術符号Ｓ１０３より送出される符号量の累積値と目標符号量とを常時カウントして比較している必要があり、第１の実施形態よりもレート制御部４での動作が複雑になる。しかし前述のように、全ビットプレーンの符号化パスを符号化する必要がないので、符号化の負荷は軽減される利点がある。
【００３４】
［第３の実施の形態］
本実施の形態は、請求項第３項に記載する一実施形態である。図２は本実施形態の他の画像符号化装置の構成を示すブロック図であり、図１の構成に加え、フィルタリングによって生成されるサブバンド毎の符号化パス数を予め記憶しておく符号化パステーブル７を備えている。
【００３５】
次に動作について説明する。ウェーブレット変換係数Ｓ１０１は、第１の実施の形態で述べた様に、ビットプレーンに展開されてビットプレーン毎に符号化パスが生成される。ここで、目標の符号量を得るために、どの符号化パスを選んで、どの符号化パスを切り捨てるかがレート制御のポイントであるが、画質に与える影響は符号化パスによっても変わり、且つその符号化パスがどのサブバンドにあるかでも変わる。
【００３６】
従って、情報理論的には、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）内の符号化パスの符号量と、それを切り捨てることによって生じる歪み量（画質の劣化に関係する）を計算して、レートディストーション（Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ）理論の観点から最適になるように、その符号化パスを切り捨てるか、選択するかを決定するのが理想である。しかし、この制御実現のためには、非常に負荷の高い計算と、歪み量を記憶するための大きなメモリを用意する必要があることから、現実的ではない。
【００３７】
そこで、本実施形態では、予めサブバンド毎に、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）内の符号化パス数の上限値を設定しておき、それ以上の符号化パスがある場合には、符号化パスを強制的に切り捨てる符号化パス終了手段を取る。この場合、ウェーブレット変換係数を展開したビットプレーン上での、符号化パス数の最大値を把握する必要がある。これは、サブバンド毎の符号化パス数を予め設定した符号化パス・テーブル７を参照することによって実現される。
【００３８】
図８は、ロスレス（Ｌｏｓｓ  Ｌｅｓｓ）で符号化を行う場合、即ち全ビットプレーンの符号化パスを処理した場合の想定される符号化パスの最大値である。図８において、第２レベルまでの最低域サブバンドＬＬ２の符号化パス数は２５、低高域サブバンドＬＨ２の符号化パス数は２８、高低域サブバンドＨＬ２の符号化パス数は２８、最高域サブバンドＨＨ２の符号化パス数は３１、第１レベルの低高域サブバンドＬＨ１の符号化パス数は２８、高低域サブバンドＨＬ１の符号化パス数は２８、最高域サブバンドＨＨ１の符号化パス数は３１である。
【００３９】
これらの数値は、ＪＰＥＧ−２０００規格で定義されているガードビットＧ（オーバフロー予防のための保護ビット）＝２ビット、ウェーブレット変換をロスレス（Ｌｏｓｓ  Ｌｅｓｓ）対応の可逆型５×３フィルタ（５、３はフィルタのタップ長）を使った場合を想定している。この場合には、図８で示されている以上の符号化パスは、原理的に起こらないことが知られている（詳しくは前述のＪＰＥＧ−２０００  ＦＤＩＳ規格書に記述されている）。また本実施の形態は、入力画像データが、８ビット／コンポーネント（ｂｉｔ／ｃｏｍｐｏｎｅｎｔ）の場合を想定している。
【００４０】
次に、図９は別のタイプ−Ａの符号化パスのパターンである。
図９において、第２レベルまでの最低域サブバンドＬＬ２の符号化パス数は２０、低高域サブバンドＬＨ２の符号化パス数は１９、高低域サブバンドＨＬ２の符号化パス数は１９、最高域サブバンドＨＨ２の符号化パス数は１８、第１レベルの低高域サブバンドＬＨ１の符号化パス数は１２、高低域サブバンドＨＬ１の符号化パス数は１２、最高域サブバンドＨＨ１の符号化パス数は７である。
【００４１】
図９のタイプ−Ａの符号化パスは、図８のロスレス（Ｌｏｓｓ  Ｌｅｓｓ）対応のものよりも、すべてのサブバンドで、符号化パス数が少ないことがわかる。これによって符号量の発生が少なく抑えられる。
【００４２】
続いて図１０は他のタイプ−Ｂの符号化パスのパターンである。
図１０において、第２レベルまでの最低域サブバンドＬＬ２の符号化パス数は２３、低高域サブバンドＬＨ２の符号化パス数は２１、高低域サブバンドＨＬ２の符号化パス数は２１、最高域サブバンドＨＨ２の符号化パス数は２０、第１レベルの低高域サブバンドＬＨ１の符号化パス数は１４、高低域サブバンドＨＬ１の符号化パス数は１４、最高域サブバンドＨＨ１の符号化パス数は７である。
【００４３】
図１０は、図９よりも全体的にサババンド内の符号化パス数が多くなっている。これは符号量の発生を促進させているので、図１０の場合は、図９の場合よりは多くの符号量が発生する。尚、これは請求項８によってクレイムされている。
【００４４】
上記操作によってビットプレーン毎に符号化パスを生成する符号化パス生成部２で選択された、ビットプレーン毎の符号化パスＳ１０２で、算術符号化部３が呼び出され、算術符号Ｓ１０３が生成される。それ以降の動作は、第１の実施形態と同様である。
【００４５】
［第４の実施の形態］
本実施の形態は、請求項第４項に記載する一実施形態である。前記第３の実施の形態では、符号化パステーブル７によりサブバンド毎の符号化パス数を予め制限しておくことで、レート制御部４において符号量をコントロールする符号化パス終了手段を採っているが、あくまで符号化パス単位の制御であるため、高精度の符号量制御という点では不十分である。
【００４６】
従って、更に追加手段として、レート制御部４で算術符号Ｓ１０３の情報量を監視し、目標の符号量を超えていた際には、符号化コードストリーム切り捨て手段により目標の符号量になるまで前記算術符号Ｓ１０３を切り捨てる動作を行う。これによって高精度の符号量制御が実現される。尚、この内容は、請求項４でクレイムされている。
【００４７】
［第５の実施の形態］
本実施の形態は、請求項第５項に記載する一実施形態である。前記第４実施の形態では、サブバンド毎の符号化パス数を予め決めた符号化パステーブル７を用意して、それ以上の符号化パスが発生した際には符号化コードストリーム切り捨て手段によりそれを切り捨てることで符号量制御を行っていた。しかし、入力画像は多種多様であり、サブバンド毎内の符号化パス数のパターンを登録した符号化パステーブルを複数個用意しておき、画像によってそれらを切り替える切替手段は有効である。これによって、常に符号量をコントロールしながら符号化を行うことが出来る。尚、この内容は、請求項５でクレイムされている。
【００４８】
［第６の実施の形態］
本実施の形態は、請求項第６項に記載する一実施形態である。本実施形態は、前記第５の実施形態の応用例である。入力画像が動画像（連続する静止画として扱うことが可能）であった場合、前述の様に、画像によっては符号化が困難で多くの符号量が発生するものもあれば、符号化が容易で符号量の発生が少ないものもある。従って、これらの様々な画像に対して、１パターンの前記符号化パステーブルを参照して符号化パス数を決定することは得策ではない。
【００４９】
従って、また図８から図１０に符号化パス数を示した様に、以前に符号化した画像の発生符号量、または現在の画像の特徴を利用することで、効果的な符号量制御を行うことが出来る。本実施形態は、１つ前の画像の発生符号量を利用するものである。具体的には、１つ前の画像の発生符号量を記憶保持しておき、もしこの符号量が予め決められた１フレーム当たりの画像の符号量またはそのフレームに割り当てられた符号量を上回っていた際には、現在の符号化対象画像は、発生符号量を抑制する方向に制御すべきである。
【００５０】
従って、選択手段により複数個用意された符号化パスの参照テーブルの中から、発生符号量が少なくなるテーブルを選択し、これを参照する。尚、前記符号化パス数と関係してくるので、この符号化パス数を微妙に変えたテーブルを多く用意しておけばおくほど、細かい制御が可能になることは言うまでもない。しかしその分、多くの記憶容量が必要になるので、実際のトレードオフを考慮して、テーブルの数は決定することになる。
【００５１】
逆に、もし符号量が予め決められた１フレーム当たりの画像の符号量またはそのフレームに割り当てられた符号量を下回っていた際には、現在の符号化対象画像は、発生符号量を増加する方向に制御すべきであり、選択手段によりそれに相当するテーブルを選択すれば良い。
【００５２】
［第７の実施の形態］
本実施の形態は、請求項第７項に記載する一実施形態である。本実施形態は、前記第５の実施形態の応用例である。本実施形態では、入力画像が動画像であった場合、現在の符号化対象画像の特徴量を利用して、前記テーブルを選択する。具体的には、例えばウェーブレット変換係数の絶対値和を取り、閾値判定手段によりこの値がある閾値よりも大きい時には発生情報量が多いと判断して、符号量発生を抑制する符号化パステーブルを選択する。また、画像を幾つかの部分領域に分割して、それら領域内の画素の分散値和を取り、これを閾値判定しても良い。この分散値が標準よりも大きい場合には、細かなテキスチャが存在すると判断出来るので符号量が多くなるとみなし、符号量発生を抑制する符号化パステーブルを選択する。
【００５３】
逆に、同該分散値が小さい場合には、符号量発生を増やすテーブルを選択する。尚、これらの処理はいずれも閾値処理を行うのが通常であり、予め分散値の閾値を幾つか決めておき、閾値判定手段によるその閾値との大小判定によって、符号化パステーブルを選択することになる。
【００５４】
［第８の実施の形態］
本実施の形態は、請求項第１２、１３、１４項に記載する一実施形態である。これまでに述べた実施形態では、ウェーブレット変換後の変換係数をビットプレーンに展開したが、図３の様に、ウェーブレット変換部１とビットプレーン符号化パス生成部２との間に、量子化部８を設ける。従って、ウェーブレット変換係数Ｓ１０１は量子化部８で量子化されて、量子化係数Ｓ１０８が出力される。
【００５５】
量子化手段としては、通常ウェーブレット変換係数Ｓ１０１を量子化ステップサイズで除算するスカラ量子化が一般的であり、ＪＰＥＧ−２０００の規格にも同技術は含まれている。またウェーブレット変換係数Ｓ１０１のスカラ量子化手段については、請求項１１でクレイムされている。
【００５６】
量子化係数Ｓ１０８は、ビットプレーン符号化パス生成部２でビットプレーンに展開されて、前記第１の実施形態で述べた様に、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）毎に符号化パスが生成される。量子化手段によって、通常量子化係数Ｓ１０８の絶対値は前記ウェーブレット変換係数Ｓ１０１の絶対値よりも小さくなるので、展開されるビットプレーン数もそれだけ少なくなる特徴がある。
【００５７】
ビットプレーンに展開されたコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）毎の符号化パスＳ１０９からは、それぞれ必要に応じて算術符号化部３が呼び出されて、算術符号Ｓ１１０が出力される。以降の動作は既に述べたものと同様で良い。
【００５８】
尚、この量子化手段を使って、結果として図９、図１０で示した様な各サブバンド毎の符号化パス数になる様に量子化を行えば、前記実施形態と同様の目的を実現出来ることは言うまでもない。この際、前記ビットプレーン符号化パス生成部２での、符号化パス生成の手段は省略することが出来る。
【００５９】
［第９の実施の形態］
本実施の形態は、請求項第１８、１９、２０項に記載する一実施形態である。前記第１の実施形態で述べたウェーブレット変換手段は、低域フィルタと高域フィルタを水平・垂直方向にかけ、それを複数のサブバンドが得られるまで繰り返し行うことで実現されると述べた。しかし全画面のウェーブレット変換を行う手段は、全画面の画素サンプル数だけの変換係数を記憶・保持しておく必要があり、入力画像のサイズが大きい場合には現実的では無い。従って、ラインバッファに必要最低限の入力画像または係数を記憶・保持しておき、ウェーブレット変換を繰り返し行いながら、随時フィルタリングに必要な画素サンプルを入力するフィルタリング手段を採れば良い。
【００６０】
通常、ウェーブレット変換のフィルタリングを行うのに用いるフィルタは複数タップのフィルタであり、このフィルタリングに必要なだけライン数が蓄積されれば、直ちにウェーブレット変換フィルタ処理が実行出来る。
【００６１】
図１１から図１４は、上記ウェーブレット変換及びウェーブレット分割処理に関する具体的な動作を示すラインベース・ウェーブレット変換の処理を示す図である。図１１において、まずステップＳ１で、入力画像１１０のデータライン１１１の１ライン毎にデータ読み出しメモリ手段であるラインバッファ１１２に蓄積して、ステップＳ２で、ラインバッファ１１２内のデータに対して垂直フィルタが可能になるまで１ライン毎にデータを蓄積する。
【００６２】
図１２において、ラインバッファ１１２内にウェーブレット変換の垂直フィルタリングに必要なだけのライン数が蓄えられたならば、ステップＳ３で、垂直フィルタリングを行い、続いて水平フィルタリングを行う。この時点で低域側の４つのサブバンド（ＬＬ２，ＬＨ２，ＨＬ２，ＨＨ２）のウェーブレット変換係数値が決定しており、ステップＳ４で、量子化対象のサブバンド係数１２０で示す高域側の３つのサブバンド（ＬＨ１，ＨＬ１，ＨＨ１）に対しては量子化を実行する。これにより量子化済みのサブバンド係数ライン１２１が生成される。
【００６３】
一方、ステップ５で、最低域サブバンド（ＬＬ２）のウェーブレット変換係数は、再びラインバファ１１２に蓄積され、これは垂直フィルタリングに必要なだけのライン数が蓄えられるまで継続する。従って、このウェーブレット変換係数はバッファ手段であるラインバファ１１２に蓄積されている。また、ステップＳ６で、前記最低域サブバンドのバッファ内に垂直フィルタリングに必要なだけのライン数が蓄えられたならば、次のウェーブレット分割ステージ生成のために垂直フィルタリングに続いて、水平フィルタリングを実行する。
【００６４】
この結果、図１３の左図に示す様に、ステップＳ７で、最低域サブバンドの第２ステージの４つのサブバンドのウェーブレット変換係数値１３０がここで確定するので、直ちに後段の量子化を行い、量子化係数を出力する。
【００６５】
尚、前記ステップＳ２の操作のウェーブレット変換の垂直フィルタリングに必要なだけのライン数を蓄える場合（分割ステージ数が１の場合に相当）や、ステップＳ５の操作の垂直フィルタリングに必要なだけのライン数を蓄える場合（分割ステージ数が２の場合に相当）には、ウェーブレット変換係数を、バッファに記憶・保持しておく必要がある。この時、各分割ステージでの１ライン毎のウェーブレット変換係数がバッファに順番に送られ、ここで記憶される。
【００６６】
一方、ステップＳ３の操作やステップＳ６の操作での、垂直フィルタリングの際にはバッファ部に蓄積された必要なライン数分のウェーブレット変換係数を、バッファから読み出して、これらに垂直フィルタリングを掛ける。以上の動作をすべての分割ステージが終了するまで継続する。
【００６７】
ステップＳ８で、既に述べた手段によって高域側の第１分割ステージのサブバンド（ＬＨ１，ＨＬ１，ＨＨ１）の量子化係数のライン数１３１が、コードブロック（ｃｏｄｅ−ｂｌｏｃｋ）のエントロピー符号化、本実施の形態では、特にＪＰＥＧ−２０００規格で定められたＥＢＣＯＴの処理単位のブロックの高さ（Ｈ）に到達した時点で、エントロピー符号化としてＥＢＣＯＴを実行する。
【００６８】
図１４において、更に、同様にして、ステップＳ９で、低域側の第２分割ステージのサブバンド（ＬＬ）の量子化係数のライン数１４０が、ブロックベースのエントロピー符号化としてＥＢＣＯＴの処理単位のブロックの高さ（Ｈ）に到達した時点で、このエントロピー符号化としてＥＢＣＯＴを実行する。なお、高域側の第１分割ステージのサブバンド（ＬＨ１，ＨＬ１，ＨＨ１）はＥＢＣＯＴ実行済み量子化係数領域１４１となる。
以上の操作を必要なウェーブレット分割レベルまで繰り返し実行することで、すべての画面のウェーブレット変換＋量子化＋エントロピー符号化を完了する。
【００６９】
［第１０の実施の形態］
本実施の形態は、請求項第２１、２２、２３項に記載する一実施形態である。既に請求項１、請求項２、請求項３記載に関する実施形態で、ビットプレーン符号化パス生成部２で生成したビットプレーン内の符号化パスから算術符号化部３が呼び出されて、算術符号を出力する動作については述べた。この場合、算術符号の統計量測定は、隣接する符号化パスでは継続して行われる。これによって符号化効率を向上させることが出来るが、符号化パスの独立性を考慮して、統計量測定を完了する測定完了手段により符号化パス毎に算術符号の統計量測定を完了することも出来る。
【００７０】
この場合、符号化パス毎の発生符号量をパケットヘッダに書き込むことが出来るので、複数個の符号化パス毎の発生符号量を計算して書き込む場合よりも、処理手順が容易になるという利点がある。また、これによって１つのビットプレーンに符号化パスの個数だけパケットが出来るので、レイヤ構造化手段によりこのマルチ・パケットのレイヤ構造化をすることで、エラー対策に用いることができ、ワイヤレス送信に用いることが可能なＪＰＥＧ−２０００規格のプログレッシブ機能を実現することが出来る。
【００７１】
上述した実施の形態によれば、ＪＰＥＧ−２０００に準拠した符号化コードストリームを生成する符号化装置及び手段を実現する上、従来規格外のために検討が十分にされていない符号量制御手段を効率良く実現する効果がある。また、符号量制御の際の計算負荷を、レート歪み特性を考慮した手段に比べて軽減する効果があるので、高速な符号化を行えるという効果もある。従って、動画像に対して単位時間当たり多くのフレーム数を符号化する効果もある。
【００７２】
【発明の効果】
以上の様に、この発明によれば、ＪＰＥＧ−２０００規格に準拠した符号化コードストリームを生成する画像符号化装置及び手段を実現する上、従来規格外のために検討が十分にされていない符号量制御手段を効率良く実現する効果がある。
【００７３】
また、符号量制御の際の計算負荷を、レート歪み特性を考慮した手段に比べて軽減する効果があるので、高速な符号化を行えるという効果もある。従って、動画像に対して単位時間当たり多くのフレーム数を符号化する効果もある。
【００７４】
更に、符号化パス数をサブバンド毎に決めたテーブルを参照する手段を備えているので、変動の激しい動画像の符号量制御でも、最適なテーブルを選択することで、常時正確な制御を行う効果がある。また、レート歪み特性を考慮した手段に比べても遜色のない高画質を提供する効果もある。
【図面の簡単な説明】
【図１】本実施形態の画像符号化装置の構成を示すブロック図である。
【図２】他の画像符号化装置の構成を示すブロック図である。
【図３】他の画像符号化装置の構成を示すブロック図である。
【図４】第２ステージまでウェーブレット分割したときのサブバンドを示す図である。
【図５】ビットプレーンの説明図であり、図５Ａはウェーブレット変換係数、図５Ｂは係数の絶対値のビットプレーン、図５Ｃは係数の符号のビットプレーンである。
【図６】ＪＰＥＧ−２０００規格の符号化パスの処理手順を示す図である。
【図７】コードブロック内のスキャニング経路を示す図である。
【図８】ロスレス用の符号化パス数を示した図（ウェーブレット分割数＝２）である。
【図９】ある符号化パス数を示した図（ウェーブレット分割数＝２）である。
【図１０】他の符号化パス数を示した図（ウェーブレット分割数＝２）である。
【図１１】ラインベース・ウェーブレット変換の処理を示す図（その１）である。
【図１２】ラインベース・ウェーブレット変換の処理を示す図（その２）である。
【図１３】ラインベース・ウェーブレット変換の処理を示す図（その３）である。
【図１４】ラインベース・ウェーブレット変換の処理を示す図（その４）である。
【符号の説明】
１……ウェーブレット変換部、２……ビットプレーン符号化パス生成部、３……算術符号化部、４……レート制御部、５……ヘッダ生成部、６……パケット生成部、７……符号化パス・テーブル、８……量子化部、Ｓ１００……入力画像、Ｓ１０１……ウェーブレット変換係数、Ｓ１０２……ビットプレーンに展開されたウェーブレット変換係数、Ｓ１０３……算術符号、Ｓ１０４……レート制御後の算術符号、Ｓ１０５……ヘッダ、Ｓ１０６……パケット化された符号化コードストリーム、Ｓ１０７……符号化パス・テーブルから読み出された符号化パス数、Ｓ１０８……量子化係数、Ｓ１０９……ビットプレーンに展開された量子化係数、Ｓ１１０……算術符号、Ｓ１１１……レート制御後の算術符号、Ｓ１１２……ヘッダ、Ｓ１１３……パケット化された符号化コードストリーム
【図１】
0003702778.tif 000002
【図２】
0003702778.tif 000003
【図３】
0003702778.tif 000004
【図４】
0003702778.tif 000005
【図５】
0003702778.tif 000006
【図６】
0003702778.tif 000007
【図７】
0003702778.tif 000008
【図８】
0003702778.tif 000009
【図９】
0003702778.tif 000010
【図１０】
0003702778.tif 000011
【図１１】
0003702778.tif 000012
【図１２】
0003702778.tif 000013
【図１３】
0003702778.tif 000014
【図１４】
0003702778.tif 000015