(57)【要約】【課題】  画像圧縮時の画像符号化における符号量（レート）・歪み最適化処理に要する演算コストを好適に低減することができる画像符号化装置及び画像符号化方法を提供する。【解決手段】  本発明は、画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って符号化する。まず、各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、複数の小区分をカテゴリ分類する。次に、符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出し保持する。そして、累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する。さらに、小領域の符号化データが目標符号量となるときの符号量・歪み勾配のしきい値を境界カテゴリ内で探索し、探索されたしきい値以上の符号量・歪み勾配の符号化データを用いて、小領域の符号列を形成する。【選択図】  図１
2005101862.tif 000002
【特許請求の範囲】
【請求項１】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類手段と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択手段と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界カテゴリ内で探索する探索手段と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
前記小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類手段と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択手段と、
前記境界カテゴリよりも優先度の高いカテゴリに含まれる全符号化データと該境界カテゴリに含まれる一部又は全部の符号化データとを用いて符号列を形成する符号列形成手段とを備え、
該符号列形成手段は、前記境界カテゴリに含まれる符号化データのうち、前記符号列の符号量が前記目標符号量に達するまでの符号化データを用いて、該符号列を形成する符号列形成手段と
を備えることを特徴とする画像符号化装置。
【請求項３】
前記境界カテゴリまでの累積符号量と該境界カテゴリよりも優先度が１段階高いカテゴリまでの累積符号量とから、前記小領域の符号化データが前記目標符号量となる前記符号量・歪み勾配のしきい値を推定する推定手段をさらに備え、
前記探索手段が、前記推定手段によって推定された前記しきい値を用いて、前記境界カテゴリ内で符号量・歪み勾配のしきい値を探索し、
前記符号列形成手段が、前記探索手段によって探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記分類手段が、前記小領域の符号量・歪み勾配を複数の小区分に分類した際に、互いに隣接する小区分の符号量・歪み勾配が単調減少となっていない場合、両小区分を１つの小区分に統合し、統合された後の複数の小区分をカテゴリ分類することを特徴とする請求項１から３までのいずれか１項に記載の画像符号化装置。
【請求項５】
前記画像の小区分が、ＪＰＥＧ２０００符号化方式におけるパスの符号化データであることを特徴とする請求項１から４までのいずれか１項に記載の画像符号化装置。
【請求項６】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該小区分の符号量・歪み勾配の最大値と最小値とを算出し、該最大値と該最小値との間を複数の区間に分割する分割手段と、
前記符号量・歪み勾配に基づいて、分割された各区間毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときの区間を境界区間として選択する選択手段と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界区間内で探索する探索手段と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成手段と
を備えることを特徴とする画像符号化装置。
【請求項７】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該小区分の符号量・歪み勾配の最大値と最小値とを算出し、該最大値と該最小値との間を複数の区間に分割する分割手段と、
前記符号量・歪み勾配に基づいて、分割された各区間毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときの区間を境界区間として選択する選択手段と、
前記境界区間よりも上位の区間に含まれる全符号化データと該境界区間に含まれる一部又は全部の符号化データとを用いて符号列を形成する符号列形成手段とを備え、
該符号列形成手段は、前記境界区間に含まれる符号化データのうち、前記符号列の符号量が前記目標符号量に達するまでの符号化データを用いて、該符号列を形成する符号列形成手段と
を備えることを特徴とする画像符号化装置。
【請求項８】
前記境界区間までの累積符号量と該境界区間よりも１段階上位の区間までの累積符号量とから、前記小領域の符号化データが前記目標符号量となるときの前記符号量・歪み勾配のしきい値を推定する推定手段をさらに備え、
前記探索手段が、前記推定手段によって推定された前記しきい値を用いて、前記境界区間内で符号量・歪み勾配のしきい値を探索し、
前記符号列形成手段が、前記探索手段によって探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する
ことを特徴とする請求項６に記載の画像符号化装置。
【請求項９】
前記分割手段が、前記境界区間についての符号量・歪み勾配の最大値と最小値とを算出し、該最大値と該最小値との間を複数の区間に分割し、
前記算出手段が、前記境界区間内で分割された各区間毎の累積符号量を算出し、
前記保持手段が、算出された前記区間毎の累積符号量を保持し、
前記選択手段は、累積符号量が目標符号量以上になったときの区間を前記境界区間として選択する
ことを特徴とする請求項７に記載の画像符号化装置。
【請求項１０】
前記小領域が、前記画像データを周波数変換して得られたサブバンドの係数を複数の矩形領域に分割した領域であって、
前記符号列形成手段は、前記小領域毎に独立した符号列を生成する
ことを特徴とする請求項１から９までのいずれか１項に記載の画像符号化装置。
【請求項１１】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化方法であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類工程と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出工程と、
算出された前記累積符号量を保持手段に保持する保持工程と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択工程と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界カテゴリ内で探索する探索工程と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成工程と
を有することを特徴とする画像符号化方法。
【請求項１２】
画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化するコンピュータに、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類手順と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出手順と、
算出された前記累積符号量を保持手段に保持する保持手順と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択手順と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界カテゴリ内で探索する探索手順と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成手順と
を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を符号化する画像符号化装置及び画像符号化方法に関する。
【背景技術】
【０００２】
画像符号化の効率を向上させる手法の一つとして、符号量（レート）・歪み最適化手法がある。レート・歪み最適化手法は、符号化データを構成する複数の区分ごとに、発生符号量と画像の歪みに関する指標値を求め、総符号量が目標値以下という条件の下で、総歪み指標値の最小化を図るものである。
【０００３】
ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１での標準化作業により制定された静止画像符号化の国際標準方式ＪＰＥＧ２０００（ＩＳＯ／ＩＥＣ  １５４４４）は、ウェーブレット変換により得られる各サブバンドの係数をコードブロックと呼ばれる矩形領域に分割してそれぞれ独立に符号化するという構成になっている。このＪＰＥＧ２０００は、各コードブロックをさらに複数のパスに分けて符号化しており、パスを単位として発生符号量と画像の歪み指標値を求めてレート・歪み最適化手法を適用することが考慮されている。そこで、ＪＰＥＧ２０００標準を実施する上での参考として、レート・歪み最適化手法の一適用方法が示されている（例えば、非特許文献１参照）。
【０００４】
例えば、コードブロックＢｉの符号打ち切り可能点をｎｉとし、ｎｉで符号を打ち切った場合のコードブロックＢｉの符号量をＲｉ（ｎｉ）、歪みの指標値をＤｉ（ｎｉ）とするとき、画像全体での総歪み指標値Ｄ、及び総符号量Ｒは、次式のように示すことができる。
【０００５】
【数１】
2005101862.tif 000003
【０００６】
そして、レート・歪み最適化の目標は、目標となる総符号量Ｒｍａｘ以下の条件、すなわち、Ｒ≦Ｒｍａｘで総歪み指標値Ｄを最小化する打ち切り点ｎｉの集合を求めることとなる。
この最適化問題は、一般化ラグランジェ乗数法によって解決することができる（例えば、非特許文献２参照）。
【０００７】
すなわち、あるλの値について、次式を最小化する問題に帰着する。尚、λの値は総符号量ＲがＲｍａｘ以下となるように調整される。
【０００８】
【数２】
2005101862.tif 000004
【０００９】
上式の最小化は、各コードブロックの個々の最小化問題となる。以下、コードブロックＢｉについて、Ｄｉ（ｎｉ）＋λＲｉ（ｎｉ）が最小となる符号打ち切り点ｎｉを求める単純なアルゴリズムについて説明する。
図４は、有効符号化パスの数がｋｉ＿ｍａｘであるコードブロックＢｉについて符号打ち切り点ｎｉを決定する処理の手順を説明するためのフローチャートである。図４に示すように、まず、符号打ち切り点ｎｉを０に初期化しておく（ステップＳ４０１）。次に、着目する符号打ち切り可能点を示す変数ｋを１に設定する（ステップＳ４０２）。続いて、着目する符号打ち切り可能点ｋについて、このコードブロックＢｉの符号打ち切り点をｎｉからｋに移動させた場合の符号量増加分ΔＲｉ（ｋ）と、歪み指標値減少分ΔＤｉ（ｋ）を求める（ステップＳ４０３）。
【００１０】
そして、符号打ち切り点ｎｉから着目する符号打ち切り可能点ｋまでの間にある符号の符号量対歪み指標値として、ΔＤｉ（ｋ）／ΔＲｉ（ｋ）を算出して、１／λと比較する（ステップＳ４０４）。その結果、１／λよりも大きい場合（Ｙｅｓ）、ｎｉの値をｋに更新する（ステップＳ４０５）。次に、ｋに１を加えて、着目する符号打ち切り点を一つ下げる（ステップＳ４０６）。一方、ステップＳ４０４で、１／λよりも小さい場合（Ｎｏ）、ｎｉは更新せずにステップＳ４０６に進む。そして、更新されたｋの値をこのコードブロックの符号化パスの数ｋｉ＿ｍａｘと比較する（ステップＳ４０７）。
【００１１】
その結果、ｋ≦ｋｉ＿ｍａｘであれば（Ｎｏ）、更新されたｋについてステップＳ４０３から繰り返して処理を行う。一方、ｋ＞ｋｉ＿ｍａｘであれば（Ｙｅｓ）、処理を終了して、与えられたλでの着目コードブロックＢｉの符号打ち切り点は終了時点のｎｉに定まる。
【００１２】
上述したアルゴリズムは、種々のλの値について実施されることを考慮すると、あらかじめコードブロックの符号打ち切り点の候補を定めておく方が効率が良い。コードブロックの符号打ち切りは、符号化パス単位に行われるので、基本的には全ての符号化パス境界で符号打ち切りが可能である。しかし、上述の符号打ち切り点ｎｉ決定アルゴリズムを適用する場合、符号打ち切り候補点間のレート・歪みの勾配を表す値、Ｓｉ（ｋ）＝ΔＤｉ（ｋ）／ΔＲｉ（ｋ）が、ｋに伴って単調減少となるように打ち切り候補点が決定され、条件を満たさない符号化パス境界は符号打ち切り点として選択されない。
【００１３】
例えば、図１０のように、４つの符号化パスにより符号化されたコードブロックを考える。図１０は、コードブロックの各パスのレートと歪みの関係の一例を示す図である。すなわち、基本的には、図１０の打ち切り可能点０〜４で示される４つのパスの境界で符号を打ち切ることが可能である。しかし、打ち切り可能点２ではレート・歪みの勾配が単調減少となっておらず、コードブロックの符号を打ち切るのは効率的でないため、上述のアルゴリズムでは符号打ち切り点として選択されることはない。
【００１４】
以下、全符号化パスの境界から符号打ち切り点の候補を選択するアルゴリズムについて説明する。図５は、符号打ち切り点の候補を選択する処理の流れを説明するためのフローチャートである。ここでは、符号打ち切り点の候補の集合をＮｉとする。
【００１５】
まず、符号打ち切り点の候補の集合Ｎｉの初期状態として、着目するコードブロックの全符号化パスの境界の集まりとする（ステップＳ５０１）。例えば、コードブロックＢｉの符号化パスの数をｋｉ＿ｍａｘとすると、Ｎｉ＝｛１，２，３，…，ｋｉ＿ｍａｘ｝である。次に、候補判定の対象となる符号打ち切り点ｐを０に設定する（ステップＳ５０２）。また、候補判定の対象となる符号打ち切り点の次の打ち切り点として、ｋを１に設定する（ステップＳ５０３）。
【００１６】
そして、設定されたｋが集合Ｎｉに属しているか否かを判定し（ステップＳ５０４）、Ｎｉに属している場合（Ｙｅｓ）、符号打ち切り点をｐからｋに移動させた場合の符号量増加分ΔＲｉ（ｋ）、歪み指標値減少分ΔＤｉ（ｋ）、及び、この区間のレート・歪み勾配Ｓｉ（ｋ）を求める（ステップＳ５０５）。一方、Ｎｉに属さない場合（Ｎｏ）、後述するステップＳ５０８へと処理を移す。
【００１７】
ステップＳ５０５の処理後、ｐ≠０の場合であって、かつＳｉ（ｋ）＞Ｓｉ（ｐ）であるか否かを比較する（ステップＳ５０６）。その結果、ｐ≠０、かつ、Ｓｉ（ｋ）＞Ｓｉ（ｐ）の場合（Ｙｅｓ）、ｐを集合Ｎｉから除いて（ステップＳ５１０）、ステップＳ５０２へと戻る。一方、それ以外の場合には（例えば、ｐ＝０やＳｉ（ｋ）≦Ｓｉ（ｐ））、ｐにｋを設定し（ステップＳ５０７）、ｋの値に１を加えて更新する（ステップＳ５０８）。
【００１８】
そして、ｋとｋｉ＿ｍａｘを比較して（ステップＳ５０９）、ｋ≦ｋｉ＿ｍａｘならば（Ｎｏ）、更新されたｋについてステップＳ５０４から処理を行う。一方、ｋ＞ｋｉ＿ｍａｘならば（Ｙｅｓ）、処理を終了して、この時点での集合Ｎｉが符号打ち切り点の候補集合となる。例えば、先に例に挙げた図１０に示すようなコードブロックの場合、打ち切り点の候補集合Ｎｉ＝｛１，３，４｝となり、これらの打ち切り候補点では図１１に示すようにレート・歪み勾配がｋに伴って単調減少となる。すなわち、図１１は、上述した単調減少化処理によりパスが統合される様子を示す図である。
【００１９】
以上により得られた符号打ち切り点候補集合Ｎｉに属するｋについて、レート・歪み勾配Ｓｉ（ｋ）、符号量Ｒｉ（ｋ）の値を保持しておき、Ｓｉ（ｋ）＞λとなる最大のｋを選択する。λの値が小さい場合には、符号打ち切り点は下がって切り捨てられる符号は少なくなり、逆にλの値が大きい場合には、符号打ち切り点は上がって切り捨てられる符号は多くなるため、乗数λは画質のパラメータとみなすことができる。そして、大きいλの値から小さい値へと変化させながら、総符号量Ｒ＝Ｒｍａｘ、あるいはＲ≒Ｒｍａｘとなるλを探して、そのλに基づいて各コードブロックの符号打ち切り点を決定することで、レート・歪み勾配の最適化を図ることができる。
【００２０】
以下、レート・歪み最適化手法をＪＰＥＧ２０００に適用する一形態について説明する。但し、ＪＰＥＧ２０００による符号化の具体的方法については勧告書（非特許文献１）に詳細に説明されているので、ここでは簡単な例についてその大まかな処理の流れのみを説明する。
【００２１】
また、説明簡略化のため、符号化対象画像は各画素が８ビット（０〜２５５）で表現された５１２×５１２画素のモノクロ画像とし、符号化対象画像の各画素の水平方向の画素位置（座標）をｘ、垂直方向の画素位置をｙとして、画素位置（ｘ，ｙ）の画素値をＰ（ｘ，ｙ）で表す。また、ＪＰＥＧ２０００の符号化の条件として、タイル分割なし、離散ウェーブレット変換２回、９×７非可逆フィルタ（9-7 Irreversible Filter）使用、コードブロックサイズは６４×６４、１レイヤでの符号列形成として説明する。その他にも、エントロピー符号化のオプション等の様々な条件設定が必要であるが、ここでは特に言及しない。
【００２２】
図２は、一般的なＪＰＥＧ２０００符号化を行う画像符号化装置の構成を示すブロック図である。図２において、２００は画像データ入力部、２０１は離散ウェーブレット変換部、２０２は係数量子化部、２０３はコードブロック分割部、２０４はコードブロック符号化部、２０５は符号列形成部、２０６は符号列格納部、２０７はコードブロック情報格納部、２０８は符号出力部である。
【００２３】
まず、画像データ入力部２００から符号化対象の画像データを構成する各画素値Ｐ（ｘ，ｙ）が順に入力される。画像データ入力部２００では、入力される各画素値Ｐ（ｘ，ｙ）から中間値１２８を引くことで、０から２５５の入力データのＤＣレベルシフトを行い、−１２８から１２７までのデータＰ'（ｘ，ｙ）に変換して、離散ウェーブレット変換部２０１へと出力する。
【００２４】
離散ウェーブレット変換部２０１では、ＤＣレベルシフト後の入力データＰ'（ｘ、ｙ）を不図示の内部バッファに適宜格納し、２次元離散ウェーブレット変換を実施する。２次元離散ウェーブレット変換は、１次元の離散ウェーブレット変換を水平及び垂直方向それぞれに適用することにより行われる。離散ウェーブレット変換部２０１では、１次元離散ウェーブレット変換として９×７非可逆フィルタを使用する。
【００２５】
図３は、２次元離散ウェーブレット変換によって処理される符号化対象画像のサブバンドを説明するための図である。すなわち、離散ウェーブレット変換部２０１では、図３（ａ）に示されるような符号化対象画像に対して、まず垂直方向に１次元離散ウェーブレット変換を適用し、図３（ｂ）に示されるように低周波サブバンドＬと高周波サブバンドＨとに分解する。次に、それぞれのサブバンドに対して水平方向の１次元離散ウェーブレット変換を適用することにより、図３（ｃ）に示されるようなＬＬ、ＨＬ、ＬＨ、ＨＨの４つのサブバンドに分解する。
【００２６】
離散ウェーブレット変換部２０１では、上述した２次元離散ウェーブレット変換により得られたサブバンドＬＬに対して、さらに繰り返して２次元離散ウェーブレット変換を適用する。これによって、符号化対象画像をＬＬ、ＨＬ１、ＬＨ１、ＨＨ１、ＨＬ２、ＬＨ２、ＨＨ２の７つのサブバンドに分解することができる。
【００２７】
図６は、２回の２次元離散ウェーブレット変換によって得られる７つのサブバンドを説明するための図である。図６に示すように、復号側では、ＬＬサブバンドの係数を復号することにより、水平・垂直方向ともに１／４の大きさで画像を再生することができ、さらにＨＬ１、ＬＨ１、ＨＨ１の係数を復号することにより、水平・垂直１／２の大きさの画像を再生することができる。そして、ＨＬ２、ＬＨ２、ＨＨ２まで復号することにより、元の画像と同じ大きさの画像を再生することができる。以降、ＬＬサブバンドを解像度レベル０、ＬＨ１、ＨＬ１、ＨＨ１を解像度レベル１、ＬＨ２、ＨＬ２、ＨＨ２を解像度レベル２という呼び方で呼ぶ。
【００２８】
尚、以降では、各サブバンド内の係数をＣ（Ｓ，ｘ，ｙ）と表す。ここで、Ｓはサブバンドの種類を表し、ＬＬ、ＬＨ１、ＨＬ１、ＨＨ１、ＬＨ２、ＨＬ２、ＨＨ２のいずれかである。また、（ｘ，ｙ）は各サブバンド内の左上隅の係数位置を（０，０）としたときの水平方向及び垂直方向の係数位置（座標）を表す。
【００２９】
係数量子化部２０２では、離散ウェーブレット変換部２０１で生成された各サブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を、各サブバンド毎に定めた量子化ステップｄｅｌｔａ（Ｓ）を用いて量子化する。ここで、量子化された係数値をＱ（Ｓ，ｘ，ｙ）と表すとすると、係数量子化部２０３で行われる量子化処理は次式により表すことができる。
【００３０】
【数３】
2005101862.tif 000005
【００３１】
ここで、ｓｉｇｎ｛Ｉ｝は整数Ｉの正負符号を表す関数であり、Ｉが正の場合は１を、負の場合は−１を返す。また、ｆｌｏｏｒ｛Ｒ｝は実数Ｒを超えない最大の整数値を表す。
コードブロック分割部２０３は、係数量子化部２０２で量子化されたサブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を不図示の内部バッファに適宜格納して、コードブロックとよばれる所定の大きさの矩形に分割して切り出す。コードブロック分割は、サブバンドの左上隅を基準として、６４×６４のブロックに分割することで行われる。これにより、ＬＬ、ＨＬ１、ＬＨ１、ＨＨ１の各サブバンドは、それぞれ４つのコードブロックに分割され、ＨＬ２、ＬＨ２、ＨＨ２の各サブバンドは１６個のコードブロックに分割される。
【００３２】
尚、各コードブロックには、順番に、重複しない識別番号ｉ（０〜６３）を割り振り、Ｂ０、Ｂ１、Ｂ２…Ｂ６３のように、Ｂｉという形でコードブロックを特定する。また、識別番号ｉは、解像度レベル順に割り振り、同一解像度レベル内においては、ＨＬ、ＬＨ、ＨＨサブバンドの順に、同一サブバンド内においてはラスタースキャン順に番号を付けるものとする。図７は、コードブロック分割部２０３におけるコードブロック分割の様子を示す図である。図７において、実線はサブバンドの境界を表し、点線はコードブロックの境界を示しており、点線または実線で区切られる矩形がコードブロックである。
【００３３】
コードブロック符号化部２０４は、コードブロック分割部２０３により切り出されたコードブロックＢｉ内の量子化された係数値Ｑ（Ｓ，ｘ，ｙ）（以降、単に「係数値」と称す。）の絶対値を自然２進数で表現して、上位の桁から下位の桁へとビットプレーン方向を優先して二値算術符号化し、コードブロックの符号化データを符号列格納部２０６に格納する。各ビットプレーンは、最上位のビットプレーンを除いて、３つのパスに分けて符号化する。尚、パスへの分割、各パスでの具体的な符号化方法については、勧告書に従う。
【００３４】
すなわち、コードブロック符号化部２０４は、各パスの符号化毎に着目するパスの符号量増加分ΔＲｉ（ｋ）と、歪み指標値減少分ΔＤｉ（ｋ）とを求め、図８に示すテーブルを構築して不図示の内部バッファに格納する。図８は、コードブロック符号化部２０４の内部に構築されるコードブロックＢｉの情報の例を示す図である。尚、歪み指標値には、平均二乗誤差や、サブバンド毎に重みをつけて導出される重み付き平均二乗誤差等が用いられる。３種類のパスそれぞれについて、各係数の歪み指標値減少分を導出する一方式は、非特許文献１（勧告書の附属書Ｊ）等に記されている。
【００３５】
着目するコードブロックＢｉについて、全パスの符号化が終了し、図８に示すようなテーブルが完成されると、前述した図５に示す符号打ち切り点の候補を選択するアルゴリズムを実施し、全符号化パス境界の集合からＳｉ（ｋ）が単調減少となる符号打ち切り点候補集合Ｎｉを求める。そして、図９に示すように、候補集合Ｎｉの要素の数ＮＰと、各打ち切り候補点でのパス番号ｋと、レート・歪み勾配Ｓｉ（ｋ）と、符号量Ｒｉ（ｋ）とをコードブロック情報格納部２０７に格納する。すなわち、図９は、コードブロック情報格納部２０７に格納される符号打ち切り候補点の情報の例を示す図である。
【００３６】
符号列形成部２０５は、コードブロック符号化部２０４により全てのコードブロックの符号化が終了すると、コードブロック情報格納部２０５に格納される各コードブロックの打ち切り候補点の情報を参照しながら、総符号量Ｒ＝Ｒｍａｘ、あるいはＲ≒Ｒｍａｘとなるλを探して、Ｓｉ（ｋ）＞λとなる部分の符号を集めて最終符号列を形成し、出力する。
【００３７】
図１４は、符号列形成部２０５におけるλ決定の処理の流れを説明するためのフローチャートである。以下、図１４を用いて、符号列形成部２０５によるしきい値λ決定の処理について説明する。尚、以下では、しきい値を表す変数としてＳを導入し、処理終了時点での変数Ｓの値がλとなる。
【００３８】
符号列形成部２０５では、まず、コードブロック情報格納部２０７に格納される全コードブロックの打ち切り候補点の情報を参照して、Ｓｉ（ｋ）の最小値Ｓｍｉｎと最大値Ｓｍａｘを求める（ステップＳ１４０１）。次に、しきい値を表す変数ＳにステップＳ１４０１で求められたＳｍａｘを設定する（ステップＳ１４０２）。続いて、変数Ｓからあらかじめ定めたしきい値変更幅ΔＳを減じ、変数Ｓの値を少しだけ下げる（ステップＳ１４０３）。
【００３９】
そして、コードブロック番号を表す変数ｉに０を設定し、累積符号量Ｒを０に初期化する（ステップＳ１４０４）。次いで、コードブロック情報格納部２０５に格納されるコードブロックＢｉの打ち切り候補点情報を参照して、Ｓｉ（ｋ）＞Ｓを満たす最大のｋを求め、コードブロックＢｉの打ち切り点ｎｉとする（ステップＳ１４０５）。Ｓｉ（ｋ）の値は、コードブロックＢｉの打ち切り候補点順に単調減少化されているので、Ｓｉ（ｋ）を候補点の順番に比較していくことでｎｉを求めることができる。
【００４０】
そして、ステップＳ１４０５で求めた打ち切り点ｎｉでのコードブロックＢｉの符号量Ｒｉ（ｎｉ）を累積符号量Ｒに加える（ステップＳ１４０６）。さらに、ｉに１を加えて更新し（ステップＳ１４０７）、ｉを６４と比較する（ステップＳ１４０８）。その結果、ｉが６４ならば（Ｙｅｓ）、ステップ１４０９へ進む。一方、ｉが６４以外の場合（Ｎｏ）、ステップＳ１４０５に処理を移して、次のコードブロックについて符号量加算を行う。
【００４１】
ステップＳ１４０９では、ｉが６４の場合、すなわち、しきい値Ｓについて全コードブロックからの累積符号量の算出が終了した場合、累積符号量Ｒを目標符号量Ｒｍａｘと比較する。その結果、Ｒ＜Ｒｍａｘの場合（Ｙｅｓ）、ステップＳ１４１０へ進み、そうでない場合（Ｎｏ）、ステップＳ１４１１へと処理を移す。ステップＳ１４１１へと処理が移された場合には、現在のしきい値Ｓでは目標符号量を超えるため、ΔＳを加えて一つ前のしきい値Ｓに戻して処理を終了する（ステップＳ１４１１）。
【００４２】
ステップＳ１４１０では、しきい値ＳをステップＳ１４０１で求めた最小値Ｓｍｉｎと比較し、Ｓ＞Ｓｍｉｎであれば（Ｙｅｓ）、ステップＳ１４０３へと戻り、Ｓの値をまた少し小さくしてから、再びステップＳ１４０９までの処理を行う。一方、ステップＳ１４１０において、Ｓ≦Ｓｍｉｎであれば（Ｎｏ）、本処理を終了する。そして、処理終了時点でのＳが、しきい値λとして選択される。
【００４３】
符号列形成部２０５は、上述した処理によって求められたしきい値λに対し、各コードブロックからＳｉ（ｋ）＞λとなる部分の符号を符号列格納部２０６から読み出して、ＪＰＥＧ２０００符号列のフォーマットに従って情報（メインヘッダ、タイルヘッダ、パケットヘッダ等）を付加して、ＪＰＥＧ２０００の符号列を形成し、符号出力部２０８へと出力する。
【００４４】
符号出力部２０８は、符号列形成部２０５により生成されたＪＰＥＧ２０００符号化データを装置外部に出力する。符号出力部２０８は、例えば、ハードディスク、光磁気ディスク、メモリ等の記憶媒体、又は、ネットワークへのインタフェース等で実現される。
【非特許文献１】標準勧告書（ＩＳＯ／ＩＥＣ  １５４４４−１）の附属書Ｊ  例とガイドライン（Annex J  Examples and guidelines）
【非特許文献２】"Generalized Lagrange Multiplier Method for Solving Problems of Optimum Allocation of Resources", Operation Research, vol.11, pp.399-417, 1963。
【発明の開示】
【発明が解決しようとする課題】
【００４５】
しかしながら、上述の方法によりＲ≒Ｒｍａｘとなる最大のλを見つけるためには、様々なλで総符号量Ｒを求めて目標符号量Ｒｍａｘと比較するという処理を繰り返す必要があり、符号打ち切り点候補の情報Ｓｉ（ｋ）、Ｒｉ（ｋ）を格納するメモリへの多数回のアクセスや、Ｓｉ（ｋ）とλの比較等の、総符号量Ｒを求めるために必要な演算コストなどから多くの処理時間を必要とするなどの問題があった。
【００４６】
本発明は、このような事情を考慮してなされたものであり、画像圧縮時の画像符号化における符号量（レート）・歪み最適化処理に要する演算コストを好適に低減することができる画像符号化装置及び画像符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００４７】
上記課題を解決するため、本発明は、画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類手段と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択手段と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界カテゴリ内で探索する探索手段と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成手段と
を備えることを特徴とする。
【００４８】
また、本発明は、画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化装置であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該小区分の符号量・歪み勾配の最大値と最小値とを算出し、該最大値と該最小値との間を複数の区間に分割する分割手段と、
前記符号量・歪み勾配に基づいて、分割された各区間毎の累積符号量を算出する算出手段と、
算出された前記累積符号量を保持する保持手段と、
累積符号量が目標符号量以上になったときの区間を境界区間として選択する選択手段と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界区間内で探索する探索手段と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成手段と
を備えることを特徴とする。
【００４９】
さらに、本発明は、画像データを複数の小領域に分割し、符号量・歪み最適化処理を行って、該小領域を符号化する画像符号化方法であって、
各小領域内の符号量・歪み勾配をさらに複数の小区分に分割し、該複数の小区分をカテゴリ分類する分類工程と、
前記符号量・歪み勾配に基づいて分類された各カテゴリ毎の累積符号量を算出する算出工程と、
算出された前記累積符号量を保持手段に保持する保持工程と、
累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する選択工程と、
前記小領域の符号化データが前記目標符号量となるときの該符号量・歪み勾配のしきい値を前記境界カテゴリ内で探索する探索工程と、
探索された前記しきい値以上の符号量・歪み勾配の符号化データを用いて、前記小領域の符号列を形成する符号列形成工程と
を有することを特徴とする。
【発明の効果】
【００５０】
本発明によれば、画像圧縮時の画像符号化における符号量（レート）・歪み最適化処理に要する演算コストを好適に低減することができる。
【発明を実施するための最良の形態】
【００５１】
以下、本発明の好適な実施の形態について説明する。
【実施例１】
【００５２】
図１は、本発明の第１の実施例に係る画像符号化装置の構成を示すブロック図である。前述した図２に示す従来の画像符号化装置と共通するブロックについては同じ記号を用い、説明を省略する。図１に示すように、第１の実施例に係る画像符号化装置は、画像データ入力部２００、離散ウェーブレット変換部２０１、係数量子化部２０２、コードブロック分割部２０３、コードブロック符号化部２０４、符号列形成部１０３、コードブロック情報格納部２０７、符号列格納部２０６、カテゴリ情報生成部１０１、カテゴリ情報格納部１０２及び符号出力部２０８とを備える。
【００５３】
以下、図１を参照して、第１の本実施例に係る画像符号化装置の動作例について説明する。尚、図１に示す画像符号化装置で符号化対象とされる画像符号化データは、前述した図２で示す一般的なＪＰＥＧ２０００符号化を行う画像符号化装置の場合と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとする。また、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても従来例と同じである。
【００５４】
図１に示す画像符号化装置では、符号量（レート）・歪み最適化処理を簡易化するため、レート・歪み勾配にｍ個のカテゴリを設け、符号化処理と並行して各符号化パス（又は、単調減少化により統合されたパス。以降、単に「符号化パス」と呼ぶ。）をカテゴリに分類し、各カテゴリ毎の累積符号量を算出しカウントする。以下、ｍ個のカテゴリは、レート・歪み勾配の急峻なカテゴリから緩やかなカテゴリへ順序付けられ、Ｃ（１）からＣ（ｍ）のように１からｍまでの番号で識別する。尚、ある番号ｃのカテゴリＣ（ｃ）とカテゴリＣ（ｃ＋１）の境界条件となるレート・歪み勾配のしきい値をＴ（ｃ）と表す。ここで、Ｔ（ｃ）とＴ（ｃ＋１）には、Ｔ（ｃ）＞Ｔ（ｃ＋１）の関係がある。
【００５５】
ここで、Ｓｉ（ｋ）≧Ｔ（１）となる符号化パスは、カテゴリＣ（１）に分類され、Ｔ（ｃ−１）＞Ｓｉ（ｋ）≧Ｔ（ｃ）となる符号化パスは、カテゴリＣ（ｃ）に分類され、Ｔ（ｍ−１）＞Ｓｉ（ｋ）となる符号化パスは、カテゴリＣ（ｍ）に分類される。
【００５６】
また、カテゴリ情報格納部１０３には、図１２に示すようなテーブルを用意しておき、各カテゴリ毎に累積符号量ＲＣ（ｃ）を保持する。すなわち、図１２は、カテゴリ情報格納部１０２に保持されるカテゴリの情報を示す図である。尚、符号化処理の開始時には各カテゴリの累積符号量ＲＣ（ｃ）を全て０に初期化する。
【００５７】
図１において、符号化対象画像は、画像データ入力部２００から入力され、コードブロック符号化部２０４までの処理によって、前述した一般的な画像符号化装置でのＪＰＥＧ２０００符号化の場合と同様にしてコードブロックに分割され、コードブロック単位に符号化される。
【００５８】
カテゴリ情報生成部１０１では、コードブロック符号化部２０４により１つのコードブロックＢｉの符号化処理が行われ、レート・歪み勾配の単調減少化処理が行われると、コードブロック情報格納部２０７に格納されるコードブロックＢｉの打ち切り候補点の情報を参照して、カテゴリ情報格納部１０２に保持される各カテゴリの総符号量を更新する。
【００５９】
図１３は、カテゴリ情報生成部１０１における各カテゴリの符号量更新処理の流れを示す図である。以下、図１３を用いて、カテゴリ情報生成部１０１の処理の流れについて説明する。
【００６０】
コードブロック符号化部２０４により着目するコードブロックＢｉの符号化処理が終了すると、まず、コードブロック情報格納部２０７に図９に示すような形式で格納されているコードブロックＢｉの情報から、符号打ち切り候補点の集合Ｎｉの要素数ＮＰを読み出す（ステップＳ１３０１）。次に、カテゴリを表す変数ｃに１を設定し（ステップＳ１３０２）、打ち切り候補点の番号を表す変数ｊを０に設定する（ステップＳ１３０３）。続いて、変数ｊに１を加える（ステップＳ１３０４）。
【００６１】
そして、コードブロック情報格納部２０７からｊ番目の打ち切り候補点の情報を読み出す（ステップＳ１３０５）。ここで、打ち切り候補点の情報とは、打ち切り符号化パス番号ｋ、レート・歪み勾配Ｓｉ（ｋ）及び符号量Ｒｉ（ｋ）である。そして、レート・歪み勾配Ｓｉ（ｋ）をカテゴリのしきい値Ｔ（ｃ）と比較する（ステップＳ１３０６）。その結果、Ｓｉ（ｋ）≧Ｔ（ｃ）ならば（Ｎｏ）、着目する符号化パスをカテゴリＣ（ｃ）に分類し、ステップＳ１３０９へ処理を移す。一方、Ｓｉ（ｋ）＜Ｔ（ｃ）ならば（Ｙｅｓ）、カテゴリの番号を表す変数ｃに１を加えて、次のカテゴリに比較対象を変更する（ステップＳ１３０７）。
【００６２】
次いで、変数ｃとカテゴリの数ｍを比較し（ステップＳ１３０８）、ｃ＝ｍならば（Ｙｅｓ）、着目する符号化パスをカテゴリＣ（ｍ）に分類してステップＳ１３０９へと処理を移し、ｃ≠ｍならば（Ｎｏ）、ステップＳ１３０６へ処理を移す。ステップＳ１３０９では、カテゴリの累積符号量ＲＣ（ｃ）に着目するパスの符号量Ｒｉ（ｋ）を加えて更新する。そして、打ち切り候補点の番号を表す変数ｊをＮＰと比較し（ステップＳ１３１０）、ｊ≠ＮＰならば（Ｎｏ）、ステップＳ１３０４へ戻って、次の候補点について同様にステップＳ１３０５からステップＳ１３０９の処理を行う。一方、ｊ＝ＮＰならば（Ｙｅｓ）、着目するコードブロックＢｉについての処理を終了する。
【００６３】
コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いてカテゴリ情報生成部１０１により最終コードブロックについてのカテゴリ情報更新処理が終了すると、符号列形成部１０３は、カテゴリ情報格納部１０２に格納される各カテゴリの総符号量とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照して、総符号量Ｒ＝Ｒｍａｘ、或いはＲ≒Ｒｍａｘとなる最大のλを探し、符号列格納部２０６からＳｉ（ｋ）＞λとなる部分の符号を集めて符号列（例えば、ＪＰＥＧ２０００符号列）を形成し、符号出力部２０８へ出力する。
【００６４】
図１５は、画像符号化装置の符号列形成部１０３で実施されるしきい値決定処理の流れを説明するためのフローチャートである。尚、前述した従来例で説明した符号列形成部２０５におけるしきい値決定処理（図１４）と共通するステップについては同じ番号を用い、説明を省略する。
【００６５】
まず、目標符号量Ｒｍａｘがカテゴリ内となる境界カテゴリｃを求める（ステップＳ１５０１）。具体的には、カテゴリＣ（１）からＣ（ｍ）に向かって順に累積符号量ＲＣ（ｃ）を加算していき、ΣＲＣ（ｃ）＞Ｒｍａｘとなる最小のｃを求める。すなわち、累積符号量が目標符号量以上になったときのカテゴリを境界カテゴリとして選択する。次いで、境界カテゴリｃが１かどうかを判定し（ステップＳ１５０２）、１であれば（Ｙｅｓ）、図１４に示した従来のしきい値決定処理へと移行する。一方、境界カテゴリｃが１でない場合（Ｎｏ）は、ステップＳ１５０３に処理を移す。
【００６６】
ステップＳ１５０３では、しきい値Ｓの初期値としてＴ（ｃ−１）を設定する。その後、上述した図１４に示すステップＳ１４０３からステップＳ１４０８までの処理を行う。そして、ステップＳ１４０８において、ｉが６４と判定された場合、すなわち、識別番号ｉ＝０〜６３までの全コードブロックが終了した場合、累積符号量Ｒと目標符号量Ｒｍａｘとを比較する（ステップＳ１５０４）。その結果、Ｒ＜Ｒｍａｘの場合（Ｙｅｓ）は、ステップＳ１４０３に戻って、しきい値Ｓを少しだけ（ΔＳ）小さくしてから再度、累積符号量Ｒを算出する上記処理を行う。一方、Ｒ≧Ｒｍａｘの場合（Ｎｏ）はステップＳ１４１１へと処理を移す。ステップＳ１４１１へと処理が移された場合には、現在のしきい値Ｓでは目標符号量を超えるため、ΔＳを加えて一つ前のしきい値Ｓに戻して処理を終了する（ステップＳ１４１１）。
【００６７】
上述したように、従来のしきい値決定処理では、ＳｍａｘからＳｍｉｎまでの範囲で目標符号量となるしきい値を探索していたのに対し、本実施例に係る画像符号化装置では、カテゴリ毎の累積符号量を保持しておくことにより、しきい値探索の範囲を境界カテゴリ内に限定することができる。このように、各コードブロックの符号打ち切り候補点をカテゴリ分類して、各カテゴリの総符号量を保持しておくことにより、目標符号量Ｒ以下となる最大のλを探索する範囲を限定することができ、画像圧縮時の画像符号化における符号量（レート）・歪み最適化処理に要する演算コストを好適に低減することができる。
【実施例２】
【００６８】
前述した第１の実施例に係る画像符号化装置では、符号量（レート）・歪み勾配のカテゴリ毎に累積符号量を保持し、目標符号量にまたがるカテゴリ（境界カテゴリ）の内部でしきい値探索することで、レート・歪み最適化処理の簡易化を図った。ここで、カテゴリ数を多くして、十分細かく分類するようにした場合、或いは、多少の性能低下が許容できるような場合には、境界カテゴリ内のしきい値探索処理を省略することも可能である。以下、第２の実施例では、境界カテゴリ内のしきい値探索を行わない画像符号化装置による符号化処理の例について説明する。
【００６９】
本実施例に係る画像符号化装置は、上記第１の実施例における図１で説明した画像符号化装置と、符号列形成部１０３の処理のみ異なり、その他については同一のものを用いる。以下、本実施例に係る画像符号化装置の符号列形成部１０３の処理について説明する。尚、本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述の従来例や第１の実施例と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても従来例や第１の実施例と同じである。
【００７０】
図１に示すように、符号列形成部１０３は、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いてカテゴリ情報生成部１０１により最終コードブロックについてのカテゴリ情報更新処理が終了すると、カテゴリ情報格納部１０２に格納される各カテゴリの総符号量とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、符号列格納部２０６から符号列を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へ出力する。
【００７１】
尚、本実施例では、境界カテゴリの番号ｃを求め、コードブロック番号ｔｉ−１までは境界カテゴリＣ（ｃ）までの符号を、また、コードブロック番号ｔｉ以上についてはカテゴリＣ（ｃ−１）までの符号を読み出してＪＰＥＧ２０００符号列を形成する。すなわち、本実施例では、境界カテゴリよりも優先度の高いカテゴリに含まれる全符号化データと境界カテゴリに含まれる一部又は全部の符号化データとを用いて符号列を形成する。ここで、境界カテゴリに含まれる一部又は全部の符号化データとは、境界カテゴリに含まれる符号化データのうち、符号列の符号量が目標符号量に達するようになるためのデータである。
【００７２】
図１６は、本発明の第２の実施例に係る画像符号化装置の符号列形成部１０３で実施されるコードブロック番号のしきい値ｔｉの決定処理の流れを説明するためのフローチャートである。まず、境界カテゴリｃを求める（ステップＳ１６０１）。尚、ステップＳ１６０１の処理は、第１の実施例における符号列形成部１０３のしきい値決定処理で説明したステップＳ１５０１（図１５）と同じである。
【００７３】
次に、累積符号量ＲにＲＣ（ｃ−１）を設定し（ステップＳ１６０２）、コードブロック番号のしきい値ｔｉの初期値として０を設定する（ステップＳ１６０３）。さらに、着目するコードブロックｔｉについて、カテゴリｃ−１に含まれる符号打ち切り候補点の最大値ｋ１を求める（ステップＳ１６０４）。最大値ｋ１は、符号打ち切り点の順番にレート・歪み勾配Ｓｔｉ（ｋ１）をＴ（ｃ−１）と比較し、Ｓｔｉ（ｋ１）≧Ｔ（ｃ−１）となる最大のｋ１を求めることで得られる。
【００７４】
同様に、カテゴリｃに含まれる符号打ち切り点の最大値ｋ２を求める（ステップＳ１６０５）。次いで、累積符号量ＲにＲｔｉ（ｋ２）−Ｒｔｉ（ｋ１）を加える（ステップＳ１６０６）。続いて、累積符号量Ｒを目標符号量Ｒｍａｘと比較する（ステップＳ１６０７）。その結果、Ｒ＜Ｒｍａｘの場合（Ｙｅｓ）はｔｉの値を１つ増加させ（ステップＳ１６０８）、ステップＳ１６０４へ処理を移し、上述した符号量の累積を継続する。一方、Ｒ≧Ｒｍａｘの場合（Ｎｏ）は処理を終了し、終了時点でのｔｉをコードブロック番号のしきい値とする。
【００７５】
上述したように、本実施例に係る画像符号化装置で得られるＪＰＥＧ２０００符号列には、全てのコードブロックでカテゴリＣ（ｃ−１）までの符号列が含まれ、さらに目標符号量に達するまでコードブロックの順番でカテゴリＣ（ｃ）の符号列が含まれる。本実施例で説明した画像符号化処理は、第１の実施例における画像符号化処理と比較して、レート・歪み最適化の点ではやや効率低下を伴うが、さまざまなしきい値で符号量の見積もりをする必要がなく、より簡易にレート・歪み特性の向上を行うことができる。
【実施例３】
【００７６】
前述した第１の実施例に係る画像符号化装置では、レート・歪み勾配のカテゴリ毎に累積符号量を保持し、目標符号量にまたがるカテゴリ（境界カテゴリ）の内部でしきい値探索することでレート・歪み最適化処理の簡易化を図った。すなわち、境界カテゴリ内部でのしきい値探索では、しきい値を少しずつ変化させながら目標符号量となるしきい値を探索する。これに対し、本実施例では、境界カテゴリとその直前のカテゴリ（優先度が１段階高いカテゴリ）の情報からしきい値λを推定することで、より効率的にしきい値探索する例について説明する。
【００７７】
本実施例に係る画像符号化装置は、第１の実施例において説明した図１のブロック図で示される画像符号化装置と符号列形成部１０３の処理のみ異なり、その他は同一のものである。以下、第３の実施例に係る画像符号化装置における符号列形成部１０３の処理について説明する。尚、本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述した従来例、第１及び第２の実施例と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても、従来例、第１及び第２の実施例と同じである。
【００７８】
コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いてカテゴリ情報生成部１０１により最終コードブロックについてのカテゴリ情報更新処理が終了すると、符号列形成部１０３は、カテゴリ情報格納部１０２に格納される各カテゴリの総符号量とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、総符号量Ｒ＝Ｒｍａｘ、或いはＲ≒Ｒｍａｘとなる最大のλを探して、符号列格納部２０６からＳｉ（ｋ）＞λとなる部分の符号を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へ出力する。
【００７９】
図１７は、第３の実施例に係る画像符号化装置の符号列形成部１０３におけるしきい値決定処理の手順を説明するためのフローチャートである。まず、境界カテゴリ番号ｃを求める（ステップＳ１７０１）。具体的には、カテゴリＣ（１）からＣ（ｍ）に向かって順に累積符号量ＲＣ（ｃ）を加算していき、ΣＲＣ（ｃ）＞Ｒｍａｘとなる最小のｃを求める。次いで、ｃの値が１であるかどうかを判断する（ステップＳ１７０２）。
【００８０】
その結果、ｃが１である場合（Ｙｅｓ）は、コードブロック情報格納部２０７に格納される全コードブロックの打ち切り候補点の情報を参照して、Ｓｉ（ｋ）の最大値Ｓｍａｘを求める（ステップＳ１７１３）。続いて、最小値ＳｍｉｎにＴ（ｃ）を設定し（ステップＳ１７１４）、後述するＳｍａｘ、Ｓｍｉｎ間のしきい値探索処理に移る。
【００８１】
一方、ステップＳ１７０２において境界カテゴリｃが１でない場合（Ｎｏ）には、図１８に示すように、境界カテゴリｃの一つ前のカテゴリＣ（ｃ−１）（すなわち、当該カテゴリは、境界カテゴリよりも１段階優先度が高いカテゴリである。）までの累積符号量Ｒとレート・歪み勾配のしきい値Ｔ（ｃ−１）と、境界カテゴリＣ（ｃ）までの累積符号量Ｒとレート・歪み勾配のしきい値Ｔ（ｃ）を結ぶ線分を考え、目標符号量Ｒｍａｘに対応するレート・歪み勾配Ｓを算出する（ステップＳ１７０３）。図１８は、第３の実施例における境界カテゴリＣ（ｃ）とカテゴリＣ（ｃ−１）の情報からＲｍａｘに対応するしきい値Ｓを推定する様子を示す図である。ここで、しきい値Ｓは以下の式（４）を用いて算出される。
【００８２】
【数４】
2005101862.tif 000006
【００８３】
次いで、ステップＳ１７０４では、コードブロックの番号を表す変数ｉを０に、累積符号量Ｒを０に設定する。次に、着目するコードブロックｉについて、Ｓｉ（ｋ）≧Ｓとなる最大のｋを求める（ステップＳ１７０５）。そして、累積符号量ＲにＲｉ（ｋ）を加算する（ステップＳ１７０６）。また、コードブロック番号ｉを６４と比較して（ステップＳ１７０７）、ｉ＜６４の場合（Ｙｅｓ）はｉに１を加算し（ステップＳ１７０８）、ステップＳ１７０５へ戻る。
一方、ステップＳ１７０７でｉ≠６４の場合（Ｎｏ）は、累積符号量ＲをＲｍａｘと比較して（ステップＳ１７０９）、Ｒ≦Ｒｍａｘの場合（Ｙｅｓ）はステップＳ１７１０へ、Ｒ＞Ｒｍａｘの場合（Ｎｏ）はステップＳ１７１１へ分岐する。
【００８４】
ここで、Ｒ＞Ｒｍａｘの場合（Ｎｏ）は、勾配の最大値ＳｍａｘにＴ（ｃ−１）を、最小値ＳｍｉｎにＳを設定し（ステップＳ１７１１）、後述するＳｍａｘ、Ｓｍｉｎ間のしきい値探索処理へと移る。一方、Ｒ≦Ｒｍａｘの場合（Ｙｅｓ）は、Ｒが十分にＲｍａｘに近い値かどうかを判定し（ステップＳ１７０９）、Ｒ≒Ｒｍａｘの場合（Ｙｅｓ）は処理を終了し、そうでない場合（Ｎｏ）はＳｍａｘにＳを、ＳｍｉｎにＴ（ｃ）を設定して、Ｓｍａｘ、Ｓｍｉｎ間のしきい値探索処理へ移る。
【００８５】
尚、Ｓｍａｘ、Ｓｍｉｎ間のしきい値探索処理は、従来例の説明で述べた符号列形成部２０５におけるしきい値探索処理（図１４）で、最初のＳｍａｘ、Ｓｍｉｎの探索（ステップＳ１４０１）を除いたものである。
【００８６】
以上述べたように、レート・歪み勾配のカテゴリ分割を行い、目標符号量にまたがるカテゴリ（境界カテゴリ）周囲のカテゴリの累積符号量、しきい値の情報から、目標符号量に相当するしきい値を推定することにより、より効率的に境界カテゴリ内のしきい値探索を行うことができる。
【実施例４】
【００８７】
図２１は、本発明の第４の実施例に係る画像符号化装置の構成を示すブロック図である。前述の従来例や第１の実施例に係る画像符号化装置と共通するブロックについては同じ記号を用い、説明を省略する。図２１に示すように、第４の実施例に係る画像符号化装置は、画像データ入力部２００、離散ウェーブレット変換部２０１、係数量子化部２０２、コードブロック分割部２０３、コードブロック符号化部２０４、符号列格納部２０６、コードブロック情報格納部２０７、符号出力部２０８、区間分割部２１０１及び符号列形成部２１０２を備える。
【００８８】
以下、図２１を参照して、本実施例に係る画像符号化装置の動作手順について説明する。
【００８９】
本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述した従来例等と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとする。また、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても従来例等と同じである。
【００９０】
符号化対象画像は、画像データ入力部２００から入力され、従来例と同様にして画像データ入力部２００からコードブロック符号化部２０４までの処理により、コードブロックに分割され、コードブロック単位に符号化される。
【００９１】
そして、全てのコードブロックがコードブロック符号化部２０４で符号化されると、区間分割部２１０１はコードブロック情報格納部２０７に格納されるコードブロックＢｉの打ち切り候補点の情報を参照して、レート・歪み勾配の最大値と最小値を算出し、その区間をＮ個の区間に分割（Ｎ分割）し、各区間分割点における符号量を求めて図２０に示すようなテーブルを作成して、不図示の内部バッファに格納する。
【００９２】
図２０は、第４の実施例における区間分割部２１０１に保持される区間情報を示す図である。本実施例では、図２０に示すように、Ｎ個の区間をレート・歪み勾配の急な区間から順に１から番号を付けてＫ（１）、Ｋ（２）、…、Ｋ（Ｎ）のようにＫ（ｎ）の形式で表す。また、区間Ｋ（ｎ）と区間Ｋ（ｎ＋１）の境界となるレート・歪み勾配のしきい値をＴ（ｎ）、区間Ｋ（ｎ）までに含まれる累積符号量をＲＫ（ｎ）と表す。
【００９３】
図１９は、第４の実施例に係る画像符号化装置の区間分割部２１０１における区間分割処理と区間情報生成処理の手順を説明するためのフローチャートである。以下、図１９を用いて、区間分割部２１０１における処理の流れについて説明する。
【００９４】
コードブロック符号化部２０４により全てのコードブロックの符号化処理が終了すると、区間分割部２１０１は、コードブロック情報格納部２０７に格納される全コードブロックの打ち切り候補点の情報を参照して、レート・歪み勾配の最大値Ｓｍａｘ、最小値Ｓｍｉｎを求める（ステップＳ１９０１）。次に、Ｓｍａｘ、Ｓｍｉｎ間をＮ分割して、各区間のしきい値Ｔ（ｎ）を定める（ステップＳ１９０２）。ここで、本実施例では、図２６に示すようにＳｍａｘ、Ｓｍｉｎ間を等間隔に区間分割するものとする。図２６は、区間分割部２１０１においてＳｍａｘ、Ｓｍｉｎ間をＮ区間に等間隔に分割する様子を示す図である。従って、しきい値Ｔ（ｎ）は以下の式（５）を用いて求めることができる。
【００９５】
【数５】
2005101862.tif 000007
【００９６】
区間のしきい値Ｔ（ｎ）が定まった後、続いて、各コードブロックから区間の符号量Ｋ（ｎ）を求める処理に移る。そこで、コードブロック番号を表す変数ｉを０に初期化する（ステップＳ１９０３）。次に、着目するコードブロックＢｉについて、各符号打ち切り点毎にどの区間に属するかを判断して、属する区間の符号量ＲＫ（ｎ）を更新する（ステップＳ１９０４）。尚、ステップＳ１９０４の具体的処理については後述する。次に、変数ｉを１増加させ（ステップＳ１９０５）、そのｉを６４と比較する（ステップＳ１９０６）。その結果、ｉ＝６４の場合（Ｙｅｓ）は処理を終了し、そうでない場合（Ｎｏ）はステップＳ１９０４に戻って処理を継続する。
ここで、ステップＳ１９０４の処理について詳細に説明する。図２７は、区間分割部２１０１における各区間の符号量を更新するにステップＳ１９０４の処理の手順を説明するためのフローチャートである。まず、コードブロック情報格納部２０７に前述した図９に示すような形式で格納されているコードブロックＢｉの情報から、符号打ち切り候補点の集合Ｎｉの要素数ＮＰを読み出す（ステップＳ２７０１）。次に、区間番号を表す変数ｎに１を（ステップＳ２７０２）、打ち切り候補点の番号を表す変数ｊを０に設定する（ステップＳ２７０３）。続いて、変数ｊに１を加える（ステップＳ２７０４）。
【００９７】
さらに、コードブロック情報格納部２０７からｊ番目の打ち切り候補点の情報を読み出す（ステップＳ２７０５）。ここで、打ち切り候補点の情報とは、打ち切り符号化パス番号ｋ、レート・歪み勾配Ｓｉ（ｋ）、符号量Ｒｉ（ｋ）である。その後、レート・歪み勾配Ｓｉ（ｋ）を区間Ｋ（ｎ）のしきい値Ｔ（ｎ）と比較する（ステップＳ２７０６）。
【００９８】
その結果、Ｓｉ（ｋ）≧Ｔ（ｎ）の場合（Ｎｏ）、着目する符号化パスは区間Ｋ（ｎ）に含まれるとしてステップＳ２７０９へ処理を移す。一方、Ｓｉ（ｋ）＜Ｔ（ｎ）の場合（Ｙｅｓ）、区間の番号を表す変数ｎに１を加えて、次の区間に比較対象を変更する（ステップＳ２７０７）。そして、変数ｎと区間の数Ｎを比較する（ステップＳ２７０８）。
【００９９】
その結果、ｎ＝Ｎの場合（Ｙｅｓ）、着目する符号化パスは区間Ｋ（ｎ）に属すると判断して、ステップ２７０９へと処理を移す。一方、ｎ≠Ｎの場合（Ｎｏ）はステップＳ２７０６へと処理を移す。
【０１００】
ステップＳ２７０９では、区間の累積符号量ＲＫ（ｎ）に着目するパスの符号量Ｒｉ（ｋ）を加えて更新する。その後、打ち切り候補点の番号を表す変数ｊをＮＰと比較する（ステップＳ２７１０）。その結果、ｊ≠ＮＰの場合（Ｎｏ）はステップＳ２７０４へ戻って、次の候補点について、同様にステップＳ２７０５からステップＳ２７０９の処理を行う。一方、ｊ＝ＮＰの場合（Ｙｅｓ）は着目するコードブロックＢｉについての処理を終了する。
【０１０１】
以上の処理により、区間分割部２１０１内部の不図示のバッファに図２０に示す形式のテーブルを構築することができる。
【０１０２】
符号列形成部２１０２は、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いて区間分割部２１０１により区間分割と区間情報の生成処理が終了すると、区間分割部２１０１の内部に格納される区間情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照して、総符号量Ｒ＝Ｒｍａｘ、或いはＲ≒Ｒｍａｘとなる最大のλを探して、符号列格納部２０６からＳｉ（ｋ）＞λとなる部分の符号を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へ出力する。
【０１０３】
図２２は、第４の実施例に係る画像符号化装置の符号列形成部２１０２におけるしきい値決定処理手順を説明するためのフローチャートである。図２２のフローチャートでは、従来例等で説明した符号列形成部２０５におけるしきい値決定処理（図１４）と共通するステップについては同じ番号を用い、説明を省略する。
【０１０４】
符号列形成部２１０２では、まず、目標符号量Ｒｍａｘを含む区間（「境界区間」と呼ぶ。）を選択する（ステップＳ２２０１）。具体的には、区間Ｋ（１）からＫ（Ｎ）に向かって順に累積符号量ＲＫ（ｎ）を加算していき、ΣＲＫ（ｎ）＞Ｒｍａｘとなる最小のｎを求める。次いで、ｎの値が１であるかどうかを判断する（ステップＳ２２０２）。その結果、ｎ＝１の場合（Ｙｅｓ）、図１４で示した従来のしきい値決定処理へと移行し、ｎ≠１の場合（Ｎｏ）はステップＳ２２０３に処理を移す。
【０１０５】
ステップＳ２２０３では、しきい値Ｓの初期値としてＴ（ｎ−１）を設定する。次いで、累積符号量Ｒと目標符号量Ｒｍａｘとを比較し（ステップＳ２２０４）、Ｒ＜Ｒｍａｘの場合（Ｙｅｓ）はステップＳ１４０３に戻って、しきい値Ｓを少しだけ（ΔＳ）小さくしてから再度、累積符号量Ｒを算出する。一方、Ｒ≧Ｒｍａｘの場合（Ｎｏ）は、ステップＳ１４１１へと処理を移す。ステップＳ１４１１へと処理が移された場合には、現在のしきい値Ｓでは目標符号量を超えるため、ΔＳを加えて一つ前のしきい値Ｓに戻して処理を終了する（ステップＳ１４１１）。
【０１０６】
このように、従来のしきい値決定処理では、ＳｍａｘからＳｍｉｎの範囲で目標符号量となるしきい値を探索したのに対し、本実施例に係る画像符号化装置では区間毎の累積符号量を保持しておくことにより、しきい値探索の範囲を境界区間内に限定することができる。
【０１０７】
すなわち、Ｓｍａｘ、Ｓｍｉｎ間をＮ区間に分割し、各区間の総符号量を求めることにより、目標符号量Ｒ以下となる最大のλを探索する範囲を境界区間内に限定することができ、処理の簡易化を図ることができる。
【実施例５】
【０１０８】
前述の第４の実施例に係る画像符号化装置では、レート・歪み勾配の最大、最小値間をＮ個の区間に分割し、目標符号量を含む区間（境界区間）の内部でしきい値探索することでレート・歪み最適化処理の簡易化を図った。ここで、区間分割数Ｎを多くして、ある程度細かく区分した場合、或いは、多少の性能低下が許容できる場合には、境界区間内のしきい値探索処理を省略することも可能である。以下、境界区間内のしきい値探索を行わない実施例について説明する。
【０１０９】
本実施例に係る画像符号化装置のブロック図は第４の実施例で説明した図２１に示す画像符号化装置と同じであり、符号列形成部２１０２の処理のみ異なる。以下、第５の実施例に係る画像符号化装置の符号列形成部２１０２の処理について説明する。尚、本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述の従来例や第４の実施例等と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても前述の実施例等と同じである。
【０１１０】
符号列形成部２１０２では、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いて区間分割部２１０１により区間分割と、区間情報生成処理が終了すると、区間分割部２１０１の内部に格納される各区間の情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、符号列格納部２０６から符号列を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へ出力する。本実施例では、境界区間の番号ｎを求め、所定のコードブロック番号ｔｉ−１まではＴ（ｎ）をしきい値としてＳｉ（ｋ）≧Ｔ（ｎ）までの符号を読み出し、また、コードブロック番号ｔｉ以上についてはＴ（ｎ−１）をしきい値としてＳｉ（ｋ）≧Ｔ（ｎ−１）までの符号を読み出してＪＰＥＧ２０００符号列を形成する。すなわち、本実施例では、境界区間よりも上位の区間に含まれる全符号化データと境界区間に含まれる一部又は全部の符号化データとを用いて符号列を形成する。ここで、境界区間に含まれる一部又は全部の符号化データとは、境界区間に含まれる符号化データのうち、符号列の符号量が目標符号量に達するようになるためのデータである。
【０１１１】
図２３は、第２の実施例に係る画像符号化装置における符号列形成部２１０２で実施されるコードブロック番号のしきい値ｔｉを決定する処理の流れを説明するためのフローチャートである。まず、境界区間ｎを求める（ステップＳ２３０１）。ステップＳ２３０１の処理は、第４の実施例における符号列形成部２１０２のしきい値決定処理で説明したステップＳ２２０１（図２２）と同じである。
【０１１２】
次に、累積符号量ＲにＲＫ(ｎ−１)を設定し（ステップＳ２３０２）、コードブロック番号のしきい値ｔｉの初期値として０を設定する（ステップＳ２３０３）。そして、着目するコードブロックｔｉについて、区間ｎ−１に含まれる符号打ち切り候補点の最大値ｋ１を求める（ステップＳ２３０４）。ｋ１は、符号打ち切り点の順番にレート・歪み勾配Ｓｔｉ（ｋ１）をＴ（ｎ−１）と比較し、Ｓｔｉ（ｋ１）≧Ｔ（ｎ−１）となる最大のｋ１を求めることで得られる。
【０１１３】
同様に、区間ｎに含まれる符号打ち切り点の最大値ｋ２を求める（ステップＳ２３０５）。そして、累積符号量ＲにＲｔｉ（ｋ２）−Ｒｔｉ（ｋ１）を加える（ステップＳ２３０６）。続いて、累積符号量Rを目標符号量Ｒｍａｘと比較し（ステップＳ２３０７）、Ｒ＜Ｒｍａｘの場合（Ｙｅｓ）はｔｉの値を１つ増加させ（ステップＳ２３０８）、ステップＳ２３０４へ処理を移し、符号量の累積を継続する。一方、Ｒ≧Ｒｍａｘの場合（Ｎｏ）は処理を終了し、終了時点でのｔｉをコードブロック番号のしきい値とする。
【０１１４】
上述したように、本実施例に係る画像符号化装置で得られるＪＰＥＧ２０００符号列には、全てのコードブロックで区間Ｋ（ｎ−１）までの符号列が含まれ、さらに目標符号量に達するまでコードブロックの順番で区間Ｋ（ｎ）の符号列が含まれる。本実施例の符号化処理は、第４の実施例と比べて、レート・歪み最適化の点ではやや効率低下を伴うが、符号量の見積もりが必要なのは各区間境界となるしきい値のみであり、より簡易にレート・歪み特性の向上を行うことができる。
【実施例６】
【０１１５】
前述した第４の実施例に係る画像符号化装置では、レート・歪み勾配の最大値、最小値間をＮ区間に分割し、目標符号量にまたがる区間（境界区間）の内部でしきい値探索することでレート・歪み最適化処理の簡易化を図ったが、境界区間内部でのしきい値探索では、しきい値を少しずつ変化させながら目標符号量となるしきい値を探索する処理が必要となる。そこで、本実施例では、各区間の情報からしきい値λを推定することで、より効率的にしきい値探索する例について説明する。
【０１１６】
本実施例に係る画像符号化装置は、第４の実施例の説明に用いた図２１のブロック図で示される画像符号化装置と符号列形成部２１０２の処理のみ異なり、その他は同じものである。以下、第６の実施例に係る画像符号化装置における符号列形成部２１０２の処理について説明する。尚、本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述した従来例や第４、第５の実施例と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても同様である。
【０１１７】
符号列形成部２１０２では、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いて区間分割部２１０１により区間分割と、区間情報の生成処理が終了すると、区間分割部２１０１の内部に格納される各区間の情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、総符号量Ｒ＝Ｒｍａｘ、或いはＲ≒Ｒｍａｘとなる最大のλを探して、符号列格納部２０６からＳｉ（ｋ）＞λとなる部分の符号を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へ出力する。
【０１１８】
図２４は、第６の実施例に係る画像符号化装置の符号列形成部２１０２におけるしきい値決定処理の流れを説明するためのフローチャートである。まず、境界区間の番号ｎを求める（ステップＳ２４０１）。具体的には区間Ｋ（１）からＫ（Ｎ）に向かって順に累積符号量ＲＫ（ｎ）を加算していき、ΣＲＫ（ｎ）＞Ｒｍａｘとなる最小のｎを求める。
【０１１９】
そして、ｎの値が１かどうかを判断し（ステップＳ２４０２）、ｎ＝１の場合（Ｙｅｓ）は、ステップＳ２４１３へと処理を移し、それ以外の場合（Ｎｏ）にはステップ２４０３へと進む。ステップＳ２４１３では、区間分割部２１０１の処理で得たレート・歪み勾配の最大値Ｓｍａｘを読み出す。続いて、最小値にＴ（ｎ）を設定し（ステップＳ２４１４）、後述するＳｍａｘ、Ｓｍｉｎ間のしきい値探索処理に移る。
【０１２０】
一方、ステップＳ２４０２で境界区間の番号ｎが１以外である場合（Ｎｏ）は、図２５に示すように、境界区間Ｋ（ｎ）の一つ前（すなわち、１段階上位）の区間Ｋ（ｎ−１）までの累積符号量とレート・歪み勾配のしきい値Ｔ（ｎ−１）と、境界区間Ｋ（ｎ）までの累積符号量とレート・歪み勾配のしきい値Ｔ（ｎ）を結ぶ線分を考え、目標符号量Ｒｍａｘに対応するレート・歪み勾配のしきい値Ｓを算出（推定）する（ステップＳ２４０３）。ここで、図２５は、境界区間Ｋ（ｎ）と区間Ｋ（ｎ−１）の情報からＲｍａｘに対応するしきい値Ｓを推定する様子を説明するための図である。しきい値Ｓは以下の式（６）により算出される。
【０１２１】
【数６】
2005101862.tif 000008
【０１２２】
ステップＳ２４０４では、コードブロックの番号を表す変数ｉを０に、累積符号量Ｒを０に設定する。次に、着目するコードブロックｉについて、Ｓｉ（ｋ）≧Ｓとなる最大のｋを求める（ステップＳ２４０５）。そして、累積符号量ＲにＲｉ（ｋ）を加算する（ステップＳ２４０６）。さらに、コードブロック番号ｉを６４と比較して（ステップＳ２４０７）、ｉ＜６４の場合（Ｙｅｓ）はｉに１を加算し（ステップＳ２４０８）、ステップＳ２４０５へ戻る。一方、ｉ＜６４でない場合（Ｎｏ）はステップＳ２４０９に処理を移す。
ステップＳ２４０９では、累積符号量ＲをＲｍａｘと比較し、Ｒ≦Ｒｍａｘの場合（Ｙｅｓ）はステップＳ２４１０へ、Ｒ＞Ｒｍａｘの場合（Ｎｏ）はステップＳ２４１１へ分岐する。
【０１２３】
すなわち、Ｒ＞Ｒｍａｘの場合は、勾配の最大値ＳｍａｘにＴ（ｎ−１）を、最小値ＳｍｉｎにＳを設定し（ステップＳ２４１１）、後述するＳｍａｘ、Ｓｍｉｎ間のしきい値探索処理へと移る。
【０１２４】
一方、Ｒ≦Ｒｍａｘの場合は、Ｒが十分にＲｍａｘに近い値かどうか（Ｒ≒Ｒｍａｘ）を判定し（ステップＳ２４１０）、Ｒｍａｘに十分近い値である場合（Ｙｅｓ）は処理を終了し、そうでない場合（Ｎｏ）は、ＳｍａｘにＳを、ＳｍｉｎにＴ（ｎ）を設定してＳｍａｘ、Ｓｍｉｎ間のしきい値探索処理へ移る（ステップＳ２４１２）。
【０１２５】
尚、Ｓｍａｘ、Ｓｍｉｎ間のしきい値探索処理は、従来例の説明で述べた符号列形成部２０５のしきい値探索処理（図１４）で、最初のＳｍａｘ、Ｓｍｉｎの探索（ステップＳ１４０１）を除いたものである。
【０１２６】
以上述べたように、本実施例では、レート・歪み勾配の最大値、最小値間をＮ分割し、目標符号量にまたがる区間（境界区間）の周囲の区間の累積符号量、しきい値の情報から、目標符号量に相当するしきい値を推定することにより、より効率的に境界区間内のしきい値探索を行うことができる。
【実施例７】
【０１２７】
図２８は、本発明の第７の実施例に係る画像符号化装置の構成を示すブロック図である。図２８においては、前述した従来例や第１〜第６の実施例と共通するブロックについては同一の記号を用い、説明を省略する。以下、本実施例に係る画像符号化装置の動作について説明する。尚、本実施例に係る画像符号化装置で符号化対象とする画像符号化データは、前述の従来例や第１〜第６の実施例と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択等の符号化の条件についても従来例、第１〜第６の実施例と同じである。
【０１２８】
境界カテゴリ探索部２８０１では、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いてカテゴリ情報生成部１０１により最終コードブロックについてのカテゴリ情報更新処理が終了すると、カテゴリ情報格納部１０２に格納される各カテゴリの情報を参照して目標符号量Ｒを含む境界カテゴリＣ（ｃ）を求め、区間分割部２８０２へ境界カテゴリ番号を出力する。
【０１２９】
区間分割部２８０２では、カテゴリ情報格納部１０２から境界カテゴリＣ（ｃ）のしきい値Ｔ（ｃ−１）とＴ（ｃ）を読み出し、その区間をＮ分割して各区間分割点における符号量を求めて図２０のようなテーブルを作成し、不図示の内部バッファに格納する。図２０では、Ｎ個の区間をレート・歪み勾配の急な区間から順に１から番号を付けてＫ（１）、Ｋ（２）、…、Ｋ（Ｎ）のようにＫ（ｎ）の形式で表す。また、区間Ｋ（ｎ）と区間Ｋ（ｎ＋１）の境界となるレート・歪み勾配のしきい値をＴ（ｎ）、区間Ｋ（ｎ）に含まれる符号量をＲＫ（ｎ）と表す。
【０１３０】
区間分割部２８０２における区間分割、区間情報生成処理の流れは、前述した第４の実施例に係る画像符号化装置の区間分割部２１０１における処理とステップＳ１９０１を除いて同一である。前述の区間分割部２１０１では、ステップＳ１９０１でレート・歪み勾配の最大値Ｓｍａｘと最小値Ｓｍｉｎを全コードブロックの符号打ち切り候補点から探索したが、区間分割部２８０２では境界カテゴリ探索部２８０１から指定される境界カテゴリ番号ｃに基づき、カテゴリ情報格納部１０２からＴ（ｃ−１）、Ｔ（ｃ）を読み出し、Ｔ（ｃ−１）をＳｍａｘ、Ｔ（ｃ）をＳｍｉｎとして以降の処理を行う。但し、ｃ＝１の場合には、全コードブロックの符号打ち切り点から最大値を探索してＳｍｉｎとする。
【０１３１】
以上述べたように、本実施例では、レート・歪み勾配のカテゴリ分割を行い、目標符号量にまたがるカテゴリ（境界カテゴリ）を求め、さらに境界カテゴリ内部をＮ区間に分割して境界区間を求める、境界区間内で目標符号量に相当するしきい値を推定することにより、より効率的に境界カテゴリ内のしきい値探索を行うことができる。
【実施例８】
【０１３２】
本発明は、上述した実施例だけに限定されるものではない。例えば、上述した第１から第７の実施例においては、タイル分割なし、離散ウェーブレット変換２回、９×７非可逆フィルタ（9-7 Irreversible Filter）使用、コードブロックサイズは６４×６４、１レイヤでの符号列形成として説明したが、ＪＰＥＧ２０００符号化の条件を変更した場合にも適用できる。例えば、複数のビットレートでレイヤ構成する場合、それぞれのレイヤで目標符号量Ｒｍａｘを設定することにより適用することができる。その他、離散ウェーブレット変換のフィルタ、適用回数等を変更しても構わないことは言うまでもない。
【０１３３】
また、本発明はＪＰＥＧ２０００での実施に好適であるが、符号化データを小区分に分けて符号量、歪み指標値を得られるその他の符号化方式においても適用することが可能である。
【０１３４】
また、上述の実施例では、コードブロック情報格納部、符号列格納部のように、目的に応じてブロックを定義しているが、単一の格納部（記憶領域）を用意して、使い分けるようにするような構成としても構わない。
【０１３５】
また、上述の実施例ではコードブロック情報格納部、カテゴリ情報格納部、符号列格納部のように目的に応じてブロックを定義しているが、単一の記憶領域を用意して使い分けるような構成としても構わない。
【０１３６】
また、上述の実施例では、５１２×５１２の各画素８ビットのモノクロ画像データを符号化対象画像として説明したが、その他のサイズ、ビット深度の画像、各画素が複数の色成分で表されたカラー画像など、その他の画像データに適用しても構わない。さらに、動画像の各フレーム、フィールドなどに対して適用しても構わない。
【０１３７】
尚、本発明は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【０１３８】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（又は記憶媒体）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４１】
【図１】本発明の第１の実施例に係る画像符号化装置の構成を示すブロック図である。
【図２】一般的なＪＰＥＧ２０００符号化を行う画像符号化装置の構成を示すブロック図である。
【図３】２次元離散ウェーブレット変換によって処理される符号化対象画像のサブバンドを説明するための図である。
【図４】有効符号化パスの数がｋｉ＿ｍａｘであるコードブロックＢｉについて符号打ち切り点ｎｉを決定する処理の手順を説明するためのフローチャートである。
【図５】符号打ち切り点の候補を選択する処理の流れを説明するためのフローチャートである。
【図６】２回の２次元離散ウェーブレット変換によって得られる７つのサブバンドを説明するための図である。
【図７】コードブロック分割部２０３におけるコードブロック分割の様子を示す図である。
【図８】コードブロック符号化部２０４の内部に構築されるコードブロックＢｉの情報の例を示す図である。
【図９】コードブロック情報格納部２０７に格納される符号打ち切り候補点の情報の例を示す図である。
【図１０】コードブロックの各パスのレートと歪みの関係の一例を示す図である。
【図１１】上述した単調減少化処理によりパスが統合される様子を示す図である。
【図１２】カテゴリ情報格納部１０２に保持されるカテゴリの情報を示す図である。
【図１３】カテゴリ情報生成部１０１における各カテゴリの符号量更新処理の流れを示す図である。
【図１４】符号列形成部２０５におけるλ決定の処理の流れを説明するためのフローチャートである。
【図１５】画像符号化装置の符号列形成部１０３で実施されるしきい値決定処理の流れを説明するためのフローチャートである。
【図１６】本発明の第２の実施例に係る画像符号化装置の符号列形成部１０３で実施されるコードブロック番号のしきい値ｔｉの決定処理の流れを説明するためのフローチャートである。
【図１７】第３の実施例に係る画像符号化装置の符号列形成部１０３におけるしきい値決定処理の手順を説明するためのフローチャートである。
【図１８】第３の実施例における境界カテゴリＣ（ｃ）とカテゴリＣ（ｃ−１）の情報からＲｍａｘに対応するしきい値Ｓを推定する様子を示す図である。
【図１９】第４の実施例に係る画像符号化装置の区間分割部２１０１における区間分割処理と区間情報生成処理の手順を説明するためのフローチャートである。
【図２０】第４の実施例における区間分割部２１０１に保持される区間情報を示す図である。
【図２１】本発明の第４の実施例に係る画像符号化装置の構成を示すブロック図である。
【図２２】第４の実施例に係る画像符号化装置の符号列形成部２１０２におけるしきい値決定処理手順を説明するためのフローチャートである。
【図２３】第２の実施例に係る画像符号化装置における符号列形成部２１０２で実施されるコードブロック番号のしきい値ｔｉを決定する処理の流れを説明するためのフローチャートである。
【図２４】第６の実施例に係る画像符号化装置の符号列形成部２１０２におけるしきい値決定処理の流れを説明するためのフローチャートである。
【図２５】境界区間Ｋ（ｎ）と区間Ｋ（ｎ−１）の情報からＲｍａｘに対応するしきい値Ｓを推定する様子を説明するための図である。
【図２６】区間分割部２１０１においてＳｍａｘ、Ｓｍｉｎ間をＮ区間に等間隔に分割する様子を示す図である。
【図２７】区間分割部２１０１における各区間の符号量を更新するにステップＳ１９０４の処理の手順を説明するためのフローチャートである。
【図２８】本発明の第７の実施例に係る画像符号化装置の構成を示すブロック図である。
【符号の説明】
【０１４２】
１０１  カテゴリ情報生成部
１０２  カテゴリ情報格納部
１０３  符号列形成部
２００  画像データ入力部
２０１  離散ウェーブレット変換部
２０２  係数量子化部
２０３  コードブロック分割部
２０４  コードブロック符号化部
２０５  符号列形成部
２０６  符号列格納部
２０７  コードブロック情報格納部
２０８  符号出力部
【図１】
2005101862.tif 000009
【図２】
2005101862.tif 000010
【図３】
2005101862.tif 000011
【図４】
2005101862.tif 000012
【図５】
2005101862.tif 000013
【図６】
2005101862.tif 000014
【図７】
2005101862.tif 000015
【図８】
2005101862.tif 000016
【図９】
2005101862.tif 000017
【図１０】
2005101862.tif 000018
【図１１】
2005101862.tif 000019
【図１２】
2005101862.tif 000020
【図１３】
2005101862.tif 000021
【図１４】
2005101862.tif 000022
【図１５】
2005101862.tif 000023
【図１６】
2005101862.tif 000024
【図１７】
2005101862.tif 000025
【図１８】
2005101862.tif 000026
【図１９】
2005101862.tif 000027
【図２０】
2005101862.tif 000028
【図２１】
2005101862.tif 000029
【図２２】
2005101862.tif 000030
【図２３】
2005101862.tif 000031
【図２４】
2005101862.tif 000032
【図２５】
2005101862.tif 000033
【図２６】
2005101862.tif 000034
【図２７】
2005101862.tif 000035
【図２８】
2005101862.tif 000036