(57)【要約】【課題】  特にJPEG2000等の画像符号化におけるコードブロックのレート・歪み最適化処理に要する演算量、及びメモリアクセス回数を低減を図ることができる。【解決手段】  JPEG2000の符号化処理で選れたコードブロックB0,B1,…を並列に巡回するカウンタCU(0)乃至CU(3)を用意する。そして、各コードブロックにおける符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λの最大値Smax,SminをＮ分割した際の閾値を小さい順に各カウンタに割り当てる。そして、各カウンタでそれぞれの符号量を累積加算させ、オーバーフローした際には、未割り当ての閾値のうち最小値を割り当てることを行う。そして、全コードブロックを一巡し、尚且つ、オーバーフローしなかったカウンタに設定された閾値を限定後の最大値Smax、それより１つ小さな閾値を限定後のSminとして更新する。【選択図】  図１６
2005150842.tif 000002
【特許請求の範囲】
【請求項１】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置であって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを記憶する第１の記憶手段と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を記憶する第２の記憶手段と、
前記第２の記憶手段で記憶された情報に従って、各ブロックにおける符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λを、初期値として全ブロックのレート・歪みの最大値Ｓmaxと最小値Ｓminに基づき決定するλ決定手段と、
該λ決定手段で決定したレート・歪み閾値λにしたがって、各ブロックのどのパス段階までの符号化データの採用するかを判定し、判定された符号化データを前記第１の記憶手段より読出して所定形式の圧縮符号化データとして出力する出力手段とを備え、
更に、前記λ決定手段における前記最大値Ｓmax,最小値Ｓminを更に限定する限定手段を備え、当該限定手段は
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段と、
前記Smax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御手段と、
該巡回制御手段による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定手段と、
該第１の判定手段で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット手段と、
前記巡回制御手段による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定手段と、
該第２の判定手段で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定済みの候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する決定手段とを備える
ことを特徴とする画像データ符号化装置。
【請求項２】
前記決定手段で決定した最大値Smaxと最小値Sminが設定されたカウンタ手段が累積加算した符号量の差が所定値以上の場合、限定後の最大値Smaxと最小値Sminを初期値にして、前記限定手段を再帰的に実行する手段を更に備えることを特徴とする請求項１に記載の画像データ符号化装置。
【請求項３】
前記周波数変換はウェーブレット変換であることを特徴とする請求項１又は２に記載の画像データ符号化装置。
【請求項４】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置であって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを記憶する第１の記憶手段と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を記憶する第２の記憶手段と、
該第２の記憶手段に記憶された情報に基づき、全ブロックの符号量変化に対する歪みを示すレート・歪みの最大値Ｓmaxと最小値Ｓminを求めるレート・歪み値決定手段と、
該レート・歪み値決定手段で決定した最大値Smax、最小値Sminを更に限定すると共に、限定後のSmax及びSminを適用する前記ブロックB0,B1…における境界ブロックBiを決定する限定手段と、
該限定手段で得られた境界ブロックBiまでのブロック群については、限定後のSminを、符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λとして符号データを前記第１の記憶手段より読出し、前記境界ブロックBiに後続するブロック群については限定後のSmaxを前記レート・歪み閾値λにして符号データを前記第１の記憶手段より読出し、所定形式の圧縮符号化データとして出力する出力手段とを備え、
前記限定手段は、
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段と、
前記レート・歪み値決定手段で決定したSmax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御手段と、
該巡回制御手段による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定手段と、
該第１の判定手段で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット手段と、
前記巡回制御手段による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定手段と、
該第２の判定手段で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定済みの候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する第１の決定手段と、
該第１の決定手段で決定された夫々のSmaxに基づく全ブロックの累積符号量を初期符号量Ｒとし、ブロックBjにおける前記Smaxにより決まる打ち切りパス候補ｋ1j、Sminにより決まる打ち切りパス候補K2jとしたときの、それぞれのパス候補におけるブロックBjの符号量をＲj(k1j),Ｒj(k2j)とし、最大許容符号量をＲmaxとしたとき、
Ｒ＋Σ（Ｒj(k2j)−Ｒj(k1j)）＜Ｒmax
（ここで、j=0,1,2,…)
を満たさなくなったブロックの番号jで示されるブロックを、前記境界ブロックＢiとして決定する第２の決定手段と
を備えることを特徴とする画像データ符号化装置。
【請求項５】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置の制御方法であって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを所定の第１の記憶手段に格納する第１の格納工程と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を所定の第２の記憶手段に格納する第２の格納工程と、
前記第２の記憶手段に記憶された情報に従って、各ブロックにおける符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λを、初期値として全ブロックのレート・歪みの最大値Ｓmaxと最小値Ｓminに基づき決定するλ値決定工程と、
該λ決定工程で決定したレート・歪み閾値λにしたがって、各ブロックのどのパス段階までの符号化データの採用するかを判定し、判定された符号化データを前記第１の記憶種案より読出して所定形式の圧縮符号化データとして出力する出力工程とを備え、
更に、前記λ決定工程における前記最大値Ｓmax,最小値Ｓminを更に限定する限定工程を備え、当該限定工程は
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段を確保する工程と、
前記Smax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御工程と、
該巡回制御工程による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定工程と、
該第１の判定工程で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット工程と、
前記巡回制御工程による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定工程と、
該第２の判定工程で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定済みの候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する決定工程とを備える
ことを特徴とする画像データ符号化装置の制御方法。
【請求項６】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置の制御方法であって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを所定の第１の記憶手段に格納する第１の格納工程と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を所定の第２の記憶手段に格納する第２の格納工程と、
該第２の記憶手段に記憶された情報に基づき、全ブロックの符号量変化に対する歪みを示すレート・歪みの最大値Ｓmaxと最小値Ｓminを求めるレート・歪み値決定工程と、
該レート・歪み値決定工程で決定した最大値Smax、最小値Sminを更に限定すると共に、限定後のSmax及びSminを適用する前記ブロックB0,B1…における境界ブロックBiを決定する限定工程と、
該限定工程で得られた境界ブロックBiまでのブロック群については、限定後のSminを、符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λとして、符号データを前記第１の記憶手段より読出し、前記境界ブロックBiに後続するブロック群については限定後のSmaxを前記レート・歪み閾値λにして、符号データを前記第１の記憶手段より読出し、所定形式の圧縮符号化データとして出力する出力工程とを備え、
前記限定工程は、
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段を確保する工程と、
前記レート・歪み値決定工程で決定したSmax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御工程と、
該巡回制御工程による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定工程と、
該第１の判定工程で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット工程と、
前記巡回制御工程による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定工程と、
該第２の判定工程で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定済みの候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する第１の決定工程と、
該第１の決定工程で決定された夫々のSmaxに基づく全ブロックの累積符号量を初期符号量Ｒとし、ブロックBjにおける前記Smaxにより決まる打ち切りパス候補ｋ1j、Sminにより決まる打ち切りパス候補K2jとしたときの、それぞれのパス候補におけるブロックBjの符号量をＲj(k1j),Ｒj(k2j)とし、最大許容符号量をＲmaxとしたとき、
Ｒ＋Σ（Ｒj(k2j)−Ｒj(k1j)）＜Ｒmax
（ここで、j=0,1,2,…)
を満たさなくなったブロックの番号jで示されるブロックを、前記境界ブロックＢiとして決定する第２の決定工程と
を備えることを特徴とする画像データ符号化装置の制御方法。
【請求項７】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置として機能するコンピュータプログラムであって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを記憶する第１の記憶手段と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を記憶する第２の記憶手段と、
前記第２の記憶手段で記憶された情報に従って、各ブロックにおける符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λを、初期値として全ブロックのレート・歪みの最大値Ｓmaxと最小値Ｓminに基づき決定するλ決定手段と、
該λ決定手段で決定したレート・歪み閾値λにしたがって、各ブロックのどのパス段階までの符号化データの採用するかを判定し、判定された符号化データを前記第１の記憶手段より読出して所定形式の圧縮符号化データとして出力する出力手段とを備え、
更に、前記λ決定手段における前記最大値Ｓmax,最小値Ｓminを更に限定する限定手段を備え、当該限定手段は
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段と、
前記Smax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御手段と、
該巡回制御手段による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定手段と、
該第１の判定手段で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット手段と、
前記巡回制御手段による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定手段と、
該第２の判定手段で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定済みの候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する決定手段
として機能することを特徴とするコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項９】
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置として機能するコンピュータプログラムであって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを記憶する第１の記憶手段と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を記憶する第２の記憶手段と、
該第２の記憶手段に記憶された情報に基づき、全ブロックの符号量変化に対する歪みを示すレート・歪みの最大値Ｓmaxと最小値Ｓminを求めるレート・歪み値決定手段と、
該レート・歪み値決定手段で決定した最大値Smax、最小値Sminを更に限定すると共に、限定後のSmax及びSminを適用する前記ブロックB0,B1…における境界ブロックBiを決定する限定手段と、
該限定手段で得られた境界ブロックBiまでのブロック群については、限定後のSminを、符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λとして符号データを前記第１の記憶手段より読出し、前記境界ブロックBiに後続するブロック群については限定後のSmaxを前記レート・歪み閾値λにして符号データを前記第１の記憶手段より読出し、所定形式の圧縮符号化データとして出力する出力手段とを備え、
前記限定手段は、
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段と、
前記レート・歪み値決定手段で決定したSmax、Smin間を複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御手段と、
該巡回制御手段による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定手段と、
該第１の判定手段で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のひとつを再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット手段と、
前記巡回制御手段による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定手段と、
該第２の判定手段で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、設定隅の候補閾値の中で当該閾値候補より小さく、且つ、最大の値を限定後の最小値Sminとして決定する第１の決定手段と、
該第１の決定手段で決定された夫々のSmaxに基づく全ブロックの累積符号量を初期符号量Ｒとし、ブロックBjにおける前記Smaxにより決まる打ち切りパス候補ｋ1j、Sminにより決まる打ち切りパス候補K2jとしたときの、それぞれのパス候補におけるブロックBjの符号量をＲj(k1j),Ｒj(k2j)とし、最大許容符号量をＲmaxとしたとき、
Ｒ＋Σ（Ｒj(k2j)−Ｒj(k1j)）＜Ｒmax
（ここで、j=0,1,2,…)
を満たさなくなったブロックの番号jで示されるブロックを、前記境界ブロックＢiとして決定する第２の決定手段
として機能することを特徴とするコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像または動画像のフレームデータを符号化する画像符号化技術に関するものである。
【背景技術】
【０００２】
画像符号化の効率を向上させる手法の一つとしてレート・歪み最適化手法がある。レート・歪み最適化手法は符号化データを構成する複数の区分ごとに発生符号量と画像の歪みに関する指標値を求め、総符号量が目標値以下という条件の基で総歪み指標値の最小化を図るものである。
【０００３】
ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１での標準化作業により制定された静止画像符号化の国際標準である通称ＪＰＥＧ２０００（ＩＳＯ／ＩＥＣ  １５４４４）では、ウェーブレット変換により得られる各サブバンドの係数をコードブロックと呼ばれる矩形領域に分割してそれぞれ独立に符号化するという構成となっている。そして、各コードブロックを何回かに分けて（何回かのパスに分けて）符号化しており、パスを単位として発生符号量と画像の歪み指標値を求めてレート・歪み最適化手法を適用することが考慮されている。ＪＰＥＧ２０００標準を実施する上での上記レート・歪み最適化手法の一適用方法がある（非特許文献１）。
【０００４】
コードブロックBiの符号打ち切り可能点をniとし、niで符号を打ち切った場合のコードブロックBiの符号量をRi(ni)、歪みの指標値をDi(ni)とするとき、画像全体での歪み指標値Ｄ、および総符号量Ｒは、
Ｄ＝ΣＤi(ni)
Ｒ＝ΣＲi(ni)
と考えることができる。（ここでΣは、「ｉ=1,2,…,コードブロック総数」を変数とする合算関数）。歪みの指標値としては、平均二乗誤差や視覚的に重み付けされた平均二乗誤差など、画質の劣化の度合を表わす様々な値を用いることができる。
【０００５】
レート・歪み最適化の目標は、目標となる総符号量Rmax以下という条件、即ち、Ｒ≦Ｒmaxという条件で、Ｄを最小化する打ち切り点niの集合を求めることである。この最適化問題は、一般化ラグランジェ乗数法（非特許文献２）によって解決することができ、あるλの値について、
Σ（Ｄi(ni)＋λ×Ｒi(ni)）
を最小化する問題に帰着する。λの値は総符号量RがRmax以下となるように調整される。
【０００６】
この式の最小化は、各コードブロックの個々の最小化問題となる。以下、コードブロックBiで、或る与えられたλについてＤi(ni)＋λ・Ｒi(ni)が最小となる符号打ち切り点niを求める単純なアルゴリズムについて説明する。
【０００７】
図４は有効符号化パスの数がki_maxであるコードブロックBiについて符号打ち切り点niを決定する処理の流れを示すものである。図４に示すように、まず、符号打ち切り点niを0に初期化しておく（ステップＳ４０１）。次に、着目する符号打ち切り可能点を示す変数kを１に設定する（ステップＳ４０２）。続いて、着目する符号打ち切り可能点ｋについて、このコードブロックBiの符号打ち切り点をniからkに移動させた場合の符号量増加分ΔRi(k)と歪み指標値減少分ΔDi(k)を求める（ステップＳ４０３）。例えば、ΔRi(k)とΔDi(k)はそれぞれ、ΔRi(k)=Ri(k)-Ri(ni)、ΔDi(k)=Di(ni)-Di(k)により求める。符号打ち切り点niから着目する符号打ち切り可能点kの間にある符号の符号量対歪み指標値としてΔDi(k)/ΔRi(k)を算出してλと比較し（ステップＳ４０４）、大きければniの値をkに更新する（ステップＳ４０５）。次いで、kに１を加えて着目する符号打ち切り点を一つ下げ（ステップＳ４０６）、更新されたkの値をこのコードブロックの符号化パスの数ki_maxと比較し（ステップＳ４０７）、k≦ki_maxであれば更新されたkについてステップＳ４０３から繰り返して処理を行う。こうして、k＞ki_maxであれば処理を終了し、与えられたλでの着目コードブロックBiの符号打ち切り点は終了時点のniを決定する。
【０００８】
このアルゴリズムは種々のλの値について実施されることを考慮すると、あらかじめコードブロックの符号打ち切り点の候補を定めておく方が効率が良い。
【０００９】
コードブロックの符号打ち切りは符号化パス単位に行われるので基本的には全ての符号化パス境界で符号打ち切りが可能であるが、上述の符号打ち切り点ni決定アルゴリズムを適用する場合、符号打ち切り候補点間のレート・歪みの勾配を表す値Si(k)=ΔDi(k)/ΔRi(k)がkに伴って単調減少となるように打ち切り候補点が決定され、条件を満たさない符号化パス境界は符号打ち切り点の候補から除外する。
【００１０】
例えば図１０のように、４つの符号化パスにより符号化されたコードブロックを考える。４つのパスの境界（同図中、打ち切り可能点０から４）で符号を打ち切ることが可能であるが、打ち切り可能点２ではレート・歪みの勾配が単調減少となっておらず、コードブロックの符号を打ち切るのは効率的でないため、上述のアルゴリズムで符号打ち切り点として選択されることはないようにする。
【００１１】
なお、ここで言う、レート・歪みの勾配が減少するとは、その勾配が水平に近くなることを意味する。すなわち、「レート・歪みの勾配」の算術的な傾きの正負の符号は除外していることに注意されたい。
【００１２】
以下、全符号化パスの境界から符号打ち切り点の候補を決定するアルゴリズムについて説明する。
【００１３】
図５は符号打ち切り点の候補を選択する処理の流れを示す図である。ここでは符号打ち切り点の候補の集合をNiとする。まず、符号打ち切り点の候補の集合Niの初期状態として着目するコードブロックの全符号化パスの境界の集まりをセットする（ステップＳ５０１）。すなわち、コードブロックBiの符号化パスの数をki_maxとするとNi={1,2,3,・・・,ki_max}とする。
【００１４】
次に候補判定の対象となる符号打ち切り点pを0に設定する(ステップＳ５０２)。候補判定の対象となる符号打ち切り点の次の打ち切り点としてkを“１”に設定する(ステップＳ５０３)。kが集合Niに属しているか否かを判定し（ステップＳ５０３）、Niに属しているならば符号打ち切り点をpからkに移動させた場合の符号量増加分ΔRi(k),歪み指標値減少分ΔDi(k)を求め、更にこの区間のレート・歪み勾配Si(k)を求める(ステップＳ５０５)。Niに属さないならば後述するステップＳ５０８へと処理を移す。p≠0の場合、Si(k)とSi(p)を比較して(ステップＳ５０６)、Si(k)＞Si(p)ならばpを集合Niから除き（ステップＳ５１０）、ステップＳ５０２へと戻る。それ以外の場合にはpにkを設定し(ステップＳ５０７)、kの値に１を加えて更新し(ステップＳ５０８)、kとki_maxを比較してk≦ki_maxならば更新されたkについてステップＳ５０４から処理を行い、k＞ki_maxならば処理を終了して、この時点での集合Niに残った数字が符号打ち切り点（パス）の候補の集合となる。
【００１５】
上記処理を行うと、先に例に挙げた図１０のようなコードブロックの場合には、採集的に残った注目コードブロックＢｉの打ち切り点の候補集合Niは{1,3,4}となり、これらの打ち切り候補点については図１１に示すようにレート・歪み勾配がkに伴って単調減少となることが約束されることになる。
【００１６】
以上により得られた符号打ち切り点候補集合Niに属するｋについてSi(k),Ri(k)の値を保持しておき、Si(k)＞λとなる最大のkを選択する。λの値が小さい場合には符号打ち切り点は下がって切り捨てられる符号は少なくなり、逆にλの値が大きい場合には符号打ち切り点は上がって切り捨てられる符号は多くなるため、乗数λは画質のパラメータと見なすことができる。大きいλの値から小さい値へと変化させながら総符号量R=Rmax、あるいはR≒Rmaxとなるλを探して、そのλに基づいて各コードブロックの符号打ち切り点を決定することでレート・歪みの最適化を図ることができる。
【００１７】
以下、レート・歪み最適化手法をＪＰＥＧ２０００に適用する一形態について説明する。但し、ＪＰＥＧ２０００による符号化の具体的方法については勧告書に詳細に説明されているので、ここでは簡単な例についてその大まかな処理の流れのみを説明する。
【００１８】
説明簡略化のため、符号化対象画像は、各画素が８ビット（０〜２５５の２５６階調）で表現された５１２×５１２画素のモノクロ画像とし、符号化対象画像の各画素の水平方向の画素位置（座標）をｘ、垂直方向の画素位置をｙとして、画素位置（ｘ，ｙ）の画素値をＰ（ｘ，ｙ）で表す。また、ＪＰＥＧ２０００の符号化の条件として、タイル分割なし（５１２×５１２画素＝１タイル）、離散ウェーブレット変換２回、９×７非可逆フィルタ(9-7 Irreversible Filter)使用、コードブロックサイズは６４×６４、１レイヤでの符号列形成として説明する。その他にも、エントロピ符号化のオプションなど、様々な条件設定が必要であるが、ここでは特に言及しない。
【００１９】
図２はＪＰＥＧ２０００の符号化処理の流れを示す図である。同図において２００は画像入力部、２０１は離散ウェーブレット変換部、２０２は係数量子化部、２０３はコードブロック分割部、２０４はコードブロック符号化部、２０５は符号列形成部、２０６は符号列格納部、２０７はコードブロック情報格納部、２０８は符号出力部である。
【００２０】
まず、画像データ入力部２００から符号化対象の画像データを構成する各画素値Ｐ（ｘ，ｙ）が順に入力される。画像データ入力部２００では入力される各画素値Ｐ（ｘ，ｙ）から中間値１２８を引くことで０から２５５の入力データのＤＣレベルシフトを行い、−１２８から１２７までのデータＰ'（ｘ，ｙ）に変換して、離散ウェーブレット変換部２０１へと出力する。離散ウェーブレット変換部２０１ではＤＣレベルシフト後の入力データＰ'（ｘ、ｙ）を不図示の内部バッファに適宜格納し、２次元離散ウェーブレット変換を実施する。２次元離散ウェーブレット変換は、１次元の離散ウェーブレット変換を水平及び垂直方向それぞれに適用することにより行われる。離散ウェーブレット変換部２０１では１次元離散ウェーブレット変換として先に述べたように、９×７タップの非可逆フィルタを使用することとする。図３は、２次元離散ウェーブレット変換によって処理される符号化対象画像のサブバンドを説明するための図である。
【００２１】
すなわち、図３（ａ）に示されるような符号化対象画像に対して、まず垂直方向に１次元離散ウェーブレット変換を適用し、図３（ｂ）に示されるように低周波サブバンドＬと高周波サブバンドＨとに分解する。次に、それぞれのサブバンドに対して水平方向の１次元離散ウェーブレット変換を適用することにより、図３（ｃ）に示されるようなＬＬ、ＨＬ、ＬＨ、ＨＨの４つのサブバンドに分解し、１回目のウェーブレット変換を完了する。
【００２２】
離散ウェーブレット変換部２０１では、上述した２次元離散ウェーブレット変換により得られたサブバンドＬＬに対して、さらに繰り返して２次元離散ウェーブレット変換（２回目のウェーブレット変換）を適用する。これによって、符号化対象画像をＬＬ、ＨＬ１、ＬＨ１、ＨＨ１、ＨＬ２、ＬＨ２、ＨＨ２の７つのサブバンドに分解することができる。
【００２３】
図６は、２回目の２次元離散ウェーブレット変換によって得られる７つのサブバンドを示している。復号側ではＬＬサブバンドの係数を復号することにより水平・垂直方向ともに原画像の１／４の大きさ（水平・垂直方向画素数が１／４）で画像を再生することができ、さらにＨＬ１，ＬＨ１，ＨＨ１の係数を復号することにより水平・垂直とも１／２の大きさの画像を、ＨＬ２，ＬＨ２，ＨＨ２まで復号することにより元の画像と同じ大きさの画像を再生することができる。換言すれば、この順に画像の解像度が高くなることを意味するので、ＬＬサブバンドに基づいて生成される画像は解像度０、解像度０の画像及びＬＨ１，ＨＬ１，ＨＨ１のサブバンドで生成される画像は解像度レベル１、解像度１の画像及びＬＨ２，ＨＬ２，ＨＨ２のサブバンドで生成される画像は像度レベル２を有すると言い換えることができる。
【００２４】
さて、ここで、各サブバンド内の係数をＣ（Ｓｂ，ｘ，ｙ）と表す。ここで、Ｓｂはサブバンドの種類を表し、ＬＬ、ＬＨ１、ＨＬ１、ＨＨ１、ＬＨ２、ＨＬ２、ＨＨ２のいずれかである。また、（ｘ，ｙ）は各サブバンド内の左上隅の係数位置を（０，０）としたときの水平方向及び垂直方向の係数位置（座標）を表す。
【００２５】
係数量子化部２０２では、離散ウェーブレット変換部２０１で生成された各サブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を、各サブバンド毎に定めた量子化ステップｄｅｌｔａ（Ｓ）を用いて量子化する。ここで、量子化された係数値をＱ（Ｓ，ｘ，ｙ）と表すとすると、係数量子化部２０３で行われる量子化処理は次式により表すことができる。
Ｑ（Ｓ，ｘ，ｙ）＝ｓｉｇｎ｛Ｃ（Ｓ，ｘ，ｙ）｝
×ｆｌｏｏｒ｛｜Ｃ（Ｓ，ｘ，ｙ）｜／ｄｅｌｔａ（Ｓ）｝
ここで、ｓｉｇｎ｛Ｉ｝は整数Ｉの正負符号を表す関数であり、Ｉが正の場合は１を、負の場合は−１を返す。また、ｆｌｏｏｒ｛Ｒ｝は実数Ｒを超えない最大の整数値を表す。
【００２６】
コードブロック分割部２０３は係数量子化部２０２で量子化されたサブバンドの係数Ｃ（Ｓ，ｘ，ｙ）を不図示の内部バッファに適宜格納してコードブロックとよばれる所定の大きさの矩形に分割して切り出す。コードブロック分割はサブバンドの左上隅を基準として例えば６４×６４のブロックに分割することで行われる。
【００２７】
したがって、２回ウェーブレット変換の場合、これによりＬＬ，ＨＬ１，ＬＨ１，ＨＨ１の各サブバンドは１２８×１２８のサイズであるから、それぞれ２×２＝４つのコードブロックを内包し、ＨＬ２，ＬＨ２，ＨＨ２の各サブバンドは４×４＝１６個のコードブロックを内包することになる。各コードブロックには順番に重複しない識別番号ｉ(＝０〜６３)を割り振り、B0,B1,B2,…,B63のようにBiという形でコードブロックを特定する。識別番号ｉは、先に説明したように解像度レベル順に割り振り、同一解像度レベル内においてはＨＬ，ＬＨ，ＨＨサブバンドの順、同一サブバンド内においてはラスタースキャン順に番号付けるものとする。
【００２８】
図７はコードブロック分割部２０３におけるコードブロック分割と番号の割振りの様子を示している。同図において実線はサブバンドの境界を表し、点線はコードブロックの境界を示しており、点線または実線で区切られる矩形がコードブロックである。
【００２９】
コードブロック符号化部２０４はコードブロック分割部２０３により切り出されたコードブロックBi内の量子化された係数値Ｑ（Ｓ，ｘ，ｙ）（以降、単に「係数値」と称す）の絶対値を自然２進数で表現して、上位の桁から下位の桁へとビットプレーン方向を優先して二値算術符号化し、コードブロックの符号化データを符号列格納部２０６に格納する。
【００３０】
このとき、各ビットプレーンは最上位のビットプレーンを除いて３つのパスに分けて符号化する。３つのパスへの分割は、着目するビットプレーンより上位のビットプレーンの情報を参照して行うため、先行するビットプレーンの存在しない最上位のビットプレーンについては複数のパスへに分割しない。
【００３１】
上記を分かりやすく示したのが図１２である。上記では１つのコードブロックは６４×６４サイズとしているが、同図では簡単のため４×５サイズで示している。最上位ビットプレーンについては、先に述べたように、該当するコードブロックの最上位ビットプレーンであるので、全ビットが符号化対象として扱われる。そして、最上位ビットプレーンよりも下位のビットプレーンは、図示の如く３つのグループに分けられ、それぞれの符号化対象ビット位置は図示のように排他的な位置に設定される（全部をまとめると１つのビットプレーンとなる、という意味）。これまで説明した符号化を打ち切るパスが仮にｎパス目としたとき、上位からｎパス目までの符号化データを利用し、それ以降のパスの符号化データを切り捨てることを意味する。
【００３２】
最上位ビットプレーンを除く、各ビットプレーンのパスへの分割、各パスでの具体的な符号化方法については勧告書に従う。各パスの符号化毎に着目するパスの符号量増加分ΔRi(k)と歪み指標値減少分ΔDi(k)を求め、図８に示すテーブルを構築して不図示の内部バッファに格納する。歪み指標値には平均二乗誤差や、サブバンド毎に重みをつけて導出される重み付き平均二乗誤差などが用いられる。３種類のパスそれぞれについて、各係数の歪み指標値減少分を導出する一方式は勧告書の附属書Ｊ等に記されている。着目するコードブロックBiについて全パスの符号化が終了し、図８のようなテーブルが完成されると、先に述べた符号打ち切り点の候補を選択するアルゴリズム（図５）を実行し、全符号化パス境界の集合からSi(k)が単調減少となる符号打ち切り点候補集合Niを求める。図９のように候補集合Niの要素の数NPと各打ち切り候補点でのパス番号k、レート・歪み勾配Si(k)、符号量Ri(k)をコードブロック情報格納部２０７に格納する。
【００３３】
符号列形成部２０５はコードブロック符号化部２０４により全てのコードブロックの符号化が終了すると、コードブロック情報格納部２０５に格納される各コードブロックの打ち切り候補点の情報を参照しながら、総符号量R=Rmax、あるいはR≒Rmaxとなるλを探して、Si(k)＞λとなる部分の符号を集めて最終符号列を形成し、出力する。
【００３４】
図１３に符号列形成部２０５におけるλ決定の処理の流れを示す。以下、同図を用いて符号列形成部２０５による閾値λ決定の処理について説明する。以下の説明において、閾値を表す変数としてSを導入し、処理終了時点での変数Sの値がλとなることに注意されたい。
【００３５】
まず、コードブロック情報格納部２０７に格納される全コードブロックの打ち切り候補点の情報を参照して、Si(k)の最小値Sminと最大値Smaxを求める（ステップＳ１４０１）。次に、閾値を表す変数SにステップＳ１４０１で求めたSmaxを設定する（ステップＳ１４０２）。続いて、変数Sからあらかじめ定めた閾値変更幅ΔSを減じ、変数Sの値を少しだけ下げる（ステップＳ１４０３）。コードブロック番号を表す変数iに0を設定し、累積符号量Rを0に初期化する（ステップＳ１４０４）。再び、コードブロック情報格納部２０５に格納されるコードブロックBiの打ち切り候補点情報を参照してSi(k)＞Sを満たす最大のkを求め、コードブロックBiの打ち切り点niとする（ステップＳ１４０５）。Si(k)の値はコードブロックBiの打ち切り候補点順に単調減少化されているのでSi(k)を候補点の順番に比較していくことでniを求めることができる。ステップＳ１４０５で求めた打ち切り点niでのコードブロックBiの符号量Ri(ni)を累積符号量Rに加える（ステップＳ１４０６）。次いで、変数iに１を加えて更新する（ステップＳ１４０７）。そして、変数iを64と比較し、i=64ならばステップＳ１４０９へ、そうでない場合にはステップＳ１４０５に処理を移して、次のコードブロックについて符号量加算を行う（ステップＳ１４０８）。
【００３６】
変数ｉの値が64に到達した場合、即ち、閾値Sについて全コードブロックからの累積符号量の算出が終了した場合、累積符号量Rを目標符号量Rmaxと比較し、R＜RmaxならばステップＳ１４１０へ、そうでなければステップＳ１４１１へと処理を移す（ステップＳ１４０９）。ステップＳ１４１１へと処理が移された場合には、現在の閾値Sでは目標符号量を超えるため、ΔSを加えてひとつ前の閾値Sに戻して処理を終了する（ステップＳ１４１１）。また、ステップＳ１４１０では閾値SをステップＳ１４０１で求めた最小値Sminと比較し、S＞SminであればステップＳ１４０３へと戻りSの値をまた少し小さくしてから再びステップＳ１４０９までの処理を行い、S≦Sminであれば処理を終了する。処理終了時点でのSが閾値λとして選択される。
【００３７】
上述の処理により求められた閾値λに対し、各コードブロックからSi(k)＞λとなる部分の符号を符号列格納部２０６から読み出して、ＪＰＥＧ２０００符号列のフォーマットに従って情報（メインヘッダ、タイルヘッダ、パケットヘッダなど）を付加してＪＰＥＧ２０００の符号列を形成し、符号出力部２０８へと出力する。
【００３８】
符号出力部２０８は符号列形成部２０５により生成されたＪＰＥＧ２０００符号化データを装置外部に出力する。符号出力部２０８は例えばハードディスク、光磁気ディスク、メモリなどの記憶媒体、または、ネットワークへのインターフェースなどである。
【非特許文献１】標準勧告書（ＩＳＯ／ＩＥＣ  １５４４４−１）の附属書Ｊ
【非特許文献２】“Generalized Lagrange Multiplier Method for Solving Problems of Optimum Allocation of Resources”, Operation Research, vol.11, pp.399-417, 1963
【発明の開示】
【発明が解決しようとする課題】
【００３９】
上述の方法によりR≒Rmaxとなる最大のλを見つけるためには、様々なλで総符号量Rを求めて目標符号量Rmaxと比較するという処理を繰り返す必要があり、符号打ち切り点候補の情報Si(k),Ri(k)を格納するメモリへの多数回のアクセスや、Si(k)とλの比較など、総符号量Rを求めるために多数回の演算が必要となり、多くの処理時間を要する。
【００４０】
本発明は、このような事情を考慮してなされたものであり、より簡易にレート・歪み最適化を実施し得る技術を提供しようとするものである。
【課題を解決するための手段】
【００４１】
かかる課題を解決するため、本発明の画像データ符号化装置は以下の構成を備える。すなわち、
画像データを周波数変換し、変換後のデータを所定サイズの複数のブロックＢ0,Ｂ1,…Ｂnに分割し、分割したブロック内の各係数値のビット情報を上位から下位に向かうパス順に符号化する画像データ符号化装置であって、
周波数変換したデータの各ブロックについて、各パス段階での符号データを記憶する第１の記憶手段と、
前記各ブロックにおける各パス段階における画像の歪みを示す情報と、符号量変化情報との関係情報を記憶する第２の記憶手段と、
前記第２の記憶手段で記憶された情報に従って、各ブロックにおける符号化データを切り捨てるパス位置を決定するためのレート・歪み閾値λを、初期値として全ブロックのレート・歪みの最大値Ｓmaxと最小値Ｓminに基づき決定するλ決定手段と、
該λ決定手段で決定したレート・歪み閾値λにしたがって、各ブロックのどのパス段階までの符号化データの採用するかを判定し、判定された符号化データを前記第１の記憶手段より読出して所定形式の圧縮符号化データとして出力する出力手段とを備え、
更に、前記λ決定手段における前記最大値Ｓmax,最小値Ｓminを更に限定する限定手段を備え、当該限定手段は
与えられた閾値をレート・歪みの閾値とし、当該レート・歪みの閾値に従って前記ブロックＢ0,Ｂ1,Ｂ2…Ｂnを巡回し、ブロック符号量を累積加算するための複数のカウンタ手段と、
前記Smax、Smin間をΔ間隔に複数に分割して複数の候補閾値を求め、前記複数のカウンタ手段それぞれに、前記候補閾値を小さな順に設定し、前記複数のカウンタ手段による符号量の累積加算のための巡回処理を並列に実行させる巡回制御手段と、
該巡回制御手段による巡回処理中、所定符号量を越えた符号量を持つカウンタ手段が存在するか否かを判定する第１の判定手段と、
該第１の判定手段で前記所定符号量を越えた符号量を有するカウンタ手段が存在すると判定した場合、当該カウンタ手段に、未設定の候補閾値のうち最小の候補閾値で再設定すると共に、当該カウンタ手段が累積加算した符号量を零クリアするリセット手段と、
前記巡回制御手段による巡回処理中、全ブロックの符号量の累積加算に成功したカウンタ手段が在るか否かを判定する第２の判定手段と、
該第２の判定手段で、全ブロックの符号量の累積加算に成功したカウンタ手段が在ると判定した場合、当該カウンタ手段にセットされていた閾値候補を限定後の最大値Ｓmax、当該閾値候補より前記Δだけ小さい値を限定後の最小値Sminとして決定する決定手段とを備える。
【発明の効果】
【００４２】
本発明によれば、画像符号化におけるレート・歪み最適化処理に要する演算量、及びメモリアクセス回数を低減を図ることができる。
【発明を実施するための最良の形態】
【００４３】
以下、添付図面に従って本発明に係る実施の形態を説明する。
【００４４】
＜第１の実施形態＞
図１５は、第１の実施形態に係る画像符号化装置の構成を示すブロック図である。前述の従来の画像符号化装置（図２）と共通するブロックについては同じ記号を用い、説明を省略する。
【００４５】
図１５に示すように、第１の実施形態に係る画像符号化装置は、画像入力部２００、離散ウェーブレット変換部２０１、係数量子化部２０２、コードブロック分割部２０３、コードブロック符号化部２０４、符号列形成部２１０２、コードブロック情報格納部２０７、符号列格納部２０６、区間選定部２１０１とを備える。
【００４６】
以下、同図を参照して、本第１の実施形態の画像符号化装置の動作手順について説明する。
【００４７】
本第１の実施形態の画像符号化装置で符号化対象とする画像符号化データは、その説明を簡単なものとするため、先の従来例で説明したのと同じく、５１２×５１２画素で構成され、各画素は８ビットの２５６階調モノクロ画像データとする。また、タイル分割の無（画像＝１タイル）、コードブロックのサイズ６４×６４、ウェーブレット変換は９×７タップフィルタを用いて２回行うものとする。
【００４８】
符号化対象画像は画像入力部２００から入力され、従来例と同様にして、ウエーブレット変換、量子化、コードブロック分割処理を経て、各コードブロックのデータがコードブロック符号化部２０４の処理によりコードブロック単位に符号化が行われる（各コードブロックについて全パスの符号化を行う）。符号化されたデータは符号列格納部２０５に格納され、各パス段階での情報（各パス段階での符号量情報）はコードブロック毎にコードブロック情報格納部２０７に格納される。
【００４９】
全てのコードブロックがコードブロック符号化部２０４で符号化されると、区間選定部２１０１はコードブロック情報格納部２０７に格納されるコードブロックBiの打ち切り候補点の情報を参照して、目標符号量Rmaxとなるレート・歪み勾配の区間を求める。区間選定部２１０１には複数個の符号量カウンタユニットを持つ。本第１の実施形態では、符号量カウンタユニットの数を４個とし、CU0、CU1、CU2、CU3と名前を付けて識別する。CU0〜CU3のそれぞれの符号量カウンタユニットには、レート・歪み勾配の閾値と符号量のカウントを開始したコードブロック番号、および符号量の３つの値が保持される。以降、カウンタユニットCUn(nは0〜3)のレート・歪み勾配の閾値をT(CUn)、カウント開始コードブロック番号をB(CUn)、符号量をL(CUn)と記す。各符号量カウンタユニットには異なるレート・歪み勾配の閾値T(CUn)が設定され、Si(k)＞T(CUn)となる符号化パスの総符号量のカウントが行われる。また、各カウンタユニットはカウンタユニットの状態を示すフラグF(CUn)を保持する。カウンタユニットは動作状態と待機状態の２状態があり、カウンタユニットCUnが動作状態にある場合、F(CUn)=0であり、待機状態の場合にはF(CUn)=1となる。
【００５０】
図１４は、実施形態における区間選定部２１０１における区間選定の処理の流れを示すフローチャートである。以下、同図を用いて説明する。
【００５１】
コードブロック符号化部２０４により全てのコードブロックの符号化処理が終了すると、まず、コードブロック情報格納部２０７に格納される全コードブロックの打ち切り候補点の情報を参照して、レート・歪み勾配の最大値Smax、最小値Sminを求める（ステップＳ１９０１）。
【００５２】
次に、SmaxとSminの区間を均等にN分割してレート・歪み勾配の閾値の変更幅Twを求める（ステップ１９０２）。このときの変更幅Twは、
Tw=(Smax-Smin)/N
で求められる。
【００５３】
次に、区間選定部２１０１の内部に保持する４つの符号量カウンタユニットCU0〜CU3の初期化を行う（ステップＳ１９０３）。カウント開始コードブロック番号には全て０、即ちB(CU0)=B(CU1)=B(CU2)=B(CU3)=0とする。また、符号量についても同様に全て０に設定する。即ち、L(CU0)=L(CU1)=L(CU2)=L(CU3)=0とする。また、カウンタユニットの状態フラグには全て動作状態を示す０を設定する。即ち、F(CU0)=F(CU1)=F(CU2)=F(CU3)=0とする。また、レート・歪み勾配の閾値はCU0からCU3へと、Sminから変更幅Twづつ変えて設定する。各符号量カウンタユニットCUn(nは0〜3)に設定される閾値T(CUn)は以下のようになる。
T(CU0)=Smin
T(CU1)=Smin+Tw
T(CU2)=Smin+2×Tw
T(CU3)=Smin+3×Tw
続いて、レート・歪み勾配の閾値に関するパラメータ変数jを4に、コードブロック番号を表す変数iを0にそれぞれ初期化する（ステップＳ１９０４）。
【００５４】
次に、着目するコードブロックBiについて、各符号打ち切り点毎にSi(k)と各符号量カウンタユニットに保持される閾値T(CU0)〜T(CU3)を比較し、Si(k)＞T(CUn)ならばRi(k)をL(CUn)に加算する（ステップＳ１９０５）。但し、動作状態を表すフラグF(CU(n))が1であるカウンタユニット、即ち、待機状態にあるカウンタユニットについては符号量の加算を行わない。
【００５５】
次に、次のコードブロックをスキャンするため、コードブロック番号を表す変数iを(i+1) ％ 64に更新する（ステップＳ１９０６）。記号％はモジュロ演算を示し、Ａ％ＢはＡをＢで割った余りを表す。ステップＳ１９０６の処理を言い換えるならば、iを１つ増加させ、i=64となった場合にはi=0に設定し直することを意味する。
【００５６】
次に、各符号量カウンタユニットの保持する開始ブロック番号B(CU(n))と更新されたブロック番号iを比較し、全ブロックの符号量カウントが終了したカウンタユニットがないかチェックする（ステップＳ１９０７）。B(CU(n))=iとなっているカウンタユニットは符号量カウント処理がブロックを一巡したことを示しており、このようなカウンタがあった場合にはステップＳ１９０８へ、なければステップＳ１９０９へ処理を移す。
【００５７】
ブロックを一巡し終えたカウンタがない場合には、着目するカウンタCU(k)の保持する符号量L(CU(k))と目標符号量Rmaxを比較し、符号量のオーバーフローが発生していないかどうかを確認する（ステップＳ１９０９）。オーバーフローが発生していない場合にはステップＳ１９０５へと戻り、次のコードブロックBiについて符号量カウントの処理を行う。
【００５８】
また、オーバーフローしている場合には、そのカウンタよりもTwだけ少ない閾値を与えられたカウンタ、即ちCU((k+3)%4)がオーバーフローしているかどうかを確認する（ステップＳ１９１０）。CU((k+3)%4)がオーバーフローしていない場合にはステップＳ１９１３へと処理を移す（x%yは、ｘをｙで割った際の余りを返す関数であることに注意されたい））。
【００５９】
また、オーバーフローしているならば、カウンタユニットを初期化した後、新たな閾値を設定して再稼動させる。即ち、カウント開始コードブロック番号B(CU((k+3)%4))としてその時の変数iの値を設定し、符号量L(CU((k+3)%4))に0を設定する。カウンタユニットの状態フラグF(CU((k+3)%4))には動作状態を示す0を設定する。また、レート・歪み勾配の閾値F(CU((k+3)%4))はSmin+j×Twを設定する。
【００６０】
ステップＳ１９１２では変数jに1を加えて更新し、ステップＳ１９１３では変数kに1を加えて4との剰余を求めて更新する。
【００６１】
一方、ステップＳ１９０７の判定でコードブロックを一巡したカウンタがあれば、一巡したカウンタCU(n)の符号量がオーバーフローしているか否かを判定する（ステップＳ１９０８）。ここで一巡したカウンタが同時に複数ある場合には、一巡したカウンタの中でもっとも大きな閾値が設定されているカウンタに着目して判定を行う。
【００６２】
カウンタCU(n)がオーバーフローしている場合にはカウンタユニットCU(n)の動作状態フラグF(CU(n))に1を設定し、待機状態に移行する（ステップＳ１９１４）。
【００６３】
カウンタCU(n)がオーバーフローしていない場合には処理を終了する。そして、一巡し、かつ、オーバーフローしたカウンタの閾値の最大値が区間の上限値（Smin及びＴｗはそれぞれ負の値を持つことに注意されたい）として決定し、一巡し、かつオーバーフローしないカウンタの閾値の最小値が区間の下限値となる。
【００６４】
以上であるが、上記処理手順をより判りやすくするため、図１６を参照して説明する。同図は、４つのカウンタで区間選択処理を行う際の、それぞれのカウンタに与えるレート・歪み勾配の値の推移を示している。
【００６５】
符号化処理を終えたときの全コードブロックにおけるレート・歪み勾配の最大値Smax、最小値Sminの差をＮ分割した値Twを算出し、４つのカウンタユニットCU(0)〜CU(3)に初期値として閾値として、
T(CU0)=Smin
T(CU1)=Smin+Tw
T(CU2)=Smin+2×Tw
T(CU3)=Smin+3×Tw
を与える。
【００６６】
各カウンタユニットの開始コードブロックの番号として０、各カウンタユニットの符号量を０に初期化する。
B(CU0)=B(CU1)=B(CU2)=B(CU3)=0
L(CU0)=L(CU1)=L(CU2)=L(CU3)=0
なお、以下の説明では、カウンタユニットCU(0)はカウンタユニットCU(1)の下位のカウンタユニット、換言すれば、カウンタユニットCU(1)はカウンタユニットCU(0)の上位のカウンタユニットとして表現する。注意したいのは、実施形態ではこれら４つのカウンタユニットを順番に更新していく（使いまわししていく）ので、カウンタCU(3)は、カウンタユニットCU(2)の上位カウンタユニットであると同時に、カウンタユニットCU(0)の下位カウンタユニットということもできる。
【００６７】
したがって、或るカウンタユニットCU(k)に着目したとき、その下位のカウンタユニットはCU((k+3)%4)として特定できることになる（x%yはｘをｙで割った際の余りを示すことに注意）。逆にカウンタユニットCU(k)の上位のカウンタユニットはCU((k+1)%4)で特定できる。
【００６８】
さて、上記設定が行われると、コードブロックB0から順に、各閾値を有するカウンタユニットがそれぞれの閾値に基づいて符号量を累積加算していく。
【００６９】
そして、或るカウンタユニットCU(k)がオーバーフローした場合には、その下位のカウンタユニットCU((k+3)%4)にセットしていた閾値に４×Twを足し込み、且つ、その時点でのコードブロックの番号から符号量の累積加算を開始することを示すために、B(CU(k+3)%4)にその時のコードブロックの番号を格納する。
【００７０】
なお、上記のように、カウンタユニットCU(k)がオーバーフローする以前に、その下位のカウンタユニットCU((k+3)%4)が一巡してしまうことが起こり得る。このように一巡してしまった場合には、カウンタユニットはそれ以上の符号量の累積加算は行わないで待機状態にする。
【００７１】
上記条件のもとで図１６を参照すると、タイミング1601乃至1604にて各カウンタユニットがオーバーフローした場合、それぞれの下位のカウンタユニットがリセットされている。ここでカウンタユニットCU(2)に着目すると、それがリセットされるのはタイミング１６０３、すなわち、カウンタユニットCU(3)がコードブロックBiのデータを処理した際にオーバーフローになったときになる。このとき、カウンタユニットCU(3)は全コードブロックを一巡していないので、その後も符号量を累積していくが、カウンタユニットCU(3)の上位カウンタユニット（(3+1)%4)=カウンタユニットCU(0)がオーバーフローしたタイミング1604でリセットされる。このとき、カウンタユニットCU(2)の符号量累積する開始するコードブロックはBiにセットされることになる。すなわち、B(CU(2))=Biとなる。
【００７２】
図示の場合、タイミング１６０４以降で再びコードブロックBiのデータを参照するまで、カウンタユニットCU(2)が累積していた符号量R(CU(2))がオーバーフローせずに到達したことを示している。すなわち、カウンタユニットCU(2)にセットされた閾値Smin+6Twで、オーバーフローせずに、全コードブロックの符号量を累積しえたことになる。
【００７３】
したがって、そのカウンタユニットCU(2)の下位カウンタユニットCU(1)にセットしたしき位置Smin+5・Twを下限と決定し、カウンタユニットCU(2)にセットした閾値Smin+6・Twを上限とする区間が選択される。換言すれば、オーバーフローせずに一巡したカウンタユニットCU(2)にセットされた閾値Smin+6・Twを上限値とし、それよりTwだけ小さな閾値であるSmin+5・Twを下限値として決定すれば良いことになる。
【００７４】
図１５に戻るが、符号列形成部２１０２はコードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いて区間選択部２１０１による区間選択処理が終了すると、区間選択部２１０１で選択された区間情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照して、総符号量R=Rmax、あるいはR≒Rmaxとなる最大のλを探して、符号列格納部２０６からSi(k)＞λとなる部分の符号を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へと出力する。このときのλの取り得る範囲に、上記の処理で決定した下限値及び上限値を用いることになる。
【００７５】
符号列形成部２１０２での処理は、図１３に示した従来の閾値決定処理と、ステップＳ１４０１の処理が異なる点を除いて同じである。
【００７６】
先に述べて従来の閾値決定処理では、単純に全コードブロックのレート・歪みの勾配の最大値と最小値を用いて、それをステップＳ１４０１でSmaxとSminを求め、この区間からλを探索した。これに対し、本実施形態では、符号列形成部２１０２ではSminとして区間選択部２１０１で選択した区間の下限値を与え、Smaxとして区間選択部２０７で選択した区間の上限値を与えるものであるから、その範囲を更に限定することが可能となる。また、区間選択部２１０１における区間選択処理は複数の閾値について並行して符号量カウントを行い、かつ、閾値として不適切と判定された時点で次の閾値について符号量カウントを行う構成となっているので、コードブロック情報へのアクセス回数を少なくでき、短時間に区間選択が可能となる。
【００７７】
なお、上記の動作は図１５をその基礎にして説明したが、本実施形態における処理は上記説明で用いたフローチャートにしたがって処理を行うコンピュータプログラムによって実現できるのは明らかである。
【００７８】
図１はその際の装置のブロック構成図であり、パーソナルコンピュータ等の汎用情報処理装置に適用した際の構成を示している。
【００７９】
同図において、１は装置全体の制御を司るＣＰＵであり、２はブートプログラムやＢＩＯＳを記憶しているＲＯＭ、３はＣＰＵ１のワークエリアとして使用されるＲＡＭである。このＲＡＭ３には、本装置が起動した際にＯＳ、並びに、実施形態で説明した画像圧縮に係るプログラムがロードされるものであるが、その際には図示に示す如くカウンタユニットCU(0)乃至CU(3)それぞれの格納エリアが確保されるものである。４はハードディスク等の外部記憶装置であって、ＯＳや画像圧縮プログラムの他、図１５における符号列格納部、コードブロック情報格納部に相当する一時記憶エリア、及び、最終的に出力する符号化データを格納する領域を有する。５はイメージスキャナ等、符号化対象となる画像を入力する画像入力部である。なお、符号化対象を入力するものであれば如何なるものでも良いのは明らかであるので、画像ファイルを記憶した記憶媒体、カメラ等でも良い。６はキーボード（ＫＢ）やマウス（商標）等のポインティングデバイス（ＰＤ）であり、７は表示用のビデオメモリ及びそのビデオメモリへの描画並びにビデオメモリからのデータを映像信号として出力する表示制御部、８は表示装置である。
【００８０】
上記構成において、本装置に電源が投入されると、ＣＰＵ１はＲＯＭ２のブートプログラムにしたがって外部記憶装置４からＯＳをＲＡＭ３にロードし、しかる後、実施形態で説明した画像圧縮処理に係るプログラムを起動することで、ＲＡＭ３中にカウンタユニットの領域を確保し、画像入力部５からの画像データをウェーブレット変換、量子化、コードブロックの全パスについて符号列を符号列格納部に格納すると共に、その際の各パス段階での歪み・レートに関する情報をコードブロック情報格納部に格納する。その後、先に説明した処理を行うことで、最終的に出力符号を出力符号格納部に出力（記憶）することになる。なお、圧縮符号化する際の目標となる符号量Ｒmax等については、ＫＢ＆ＰＤ６等を用いて指定するか、或いは、入力した画像サイズに応じて自動的に決める等を行えば良い。
【００８１】
＜変形例＞
上記実施形態では、或るカウンタユニットCU(k)がオーバーフローしても、その上位カウンタCU((k+1)%4)がオーバーフローしない限り、カウンタユニットCU(k)は一巡するまで符号量を累積加算するものであったが、単純に上限値、下限値を求めるだけで良いのであれば、各カウンタは、全コードブロックを一巡するまでにオーバーフローした際に即座にリセットするようにしてもよい。
【００８２】
図１７はこの場合の各カウンタの閾値の推移を示している。以下、同図について簡単に説明する。
【００８３】
カウンタユニットCU(0)はタイミング1701においてオーバーフローし、その時点でのカウンタユニットCU(0)の符号量R(CU(0))＝０、閾値T(CU(0))＝T(CU(0))+4Twに更新すると共に、累積加算の開始コードブロックB(CU(0))をその際のコードブロックの番号を格納する。
【００８４】
その後に、タイミング1702乃至1706において各カウンタユニットCU(n)がリセットされていく。
【００８５】
ここでタイミング1703にて、カウンタユニットCU(2)がオーバーフローした際のコードブロックがBiであったとする。したがって、この時点でカウンタユニットCU(2)にセットされる閾値T(CU(2))はT(CU(2))=(Smin+2Tw)+4Tw=Smin+6Twに更新され、符号量R(CU(2))＝0、開始コードブロックB(CU(2))=Biがセットされる。
【００８６】
図１７では、その後、コードブロックBi+1,…B63,1,2,…と処理していき、再びコードブロックBiになってもカウンタユニットCU(2)がオーバーフローしないで一巡した例を示している。この場合、カウンタユニットCU(2)にセットされていた閾値Smin+6Twを上限値、カウンタユニットCU(2)にセットされた閾値からTwを減じたSmin+5Twを下限値として決定することになる。すなわち、一巡してもオーバーフローしなかったカウンタユニットに与えた閾値を上限値とし、その閾値より微小量Twを減じたものを下限値とする。
【００８７】
この結果、オーバーフローした際に待機状態になっている期間がなくなる分だけ、処理を高速化させることが可能となる。
【００８８】
＜第２の実施形態＞
前述の第１の実施形態の画像符号化装置ではレート・歪み勾配の最大、最小値間をＮ個の区間に分割し、目標符号量を含む区間（境界区間）の内部で閾値探索することでレート・歪み最適化処理の簡易化を図った。閾値幅Twを決定する際の分割数Ｎを多くしてある程度細かく区分した場合、あるいは、多少の性能低下が許容できる場合には、境界区間内の閾値探索処理を省略することも可能である。以下、境界区間内の閾値探索を行わない例を第２の実施形態として説明する。
【００８９】
本第２の実施形態における画像符号化装置のブロック図は、先に示した第１の実施形態における符号列形成部２１０２の処理内容が異なるのみであり、それ以外は図１５と同じである。そこで、以下では本第２の実施形態における符号列形成部２１０２の処理について説明する。なお、ここでも説明を簡略化させるため、符号化対象とする画像符号化データは、前述の従来例、第１の実施形態と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、９×７タップウェーブレット変換フィルタを行うものとする。
【００９０】
符号列形成部２１０２では、コードブロック符号化部２０４により全てのコードブロック、全てのパスの符号化が終了し、続いて区間選択部２１０１による区間選択処理が終了すると、区間選択部２１０１で選択された区間の情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、符号列格納部２０６から符号列を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へと出力する。
【００９１】
区間選択部２１０１で選択された区間の下限値を保持するカウンタをCU(l)、上限値をCU(h)とし、区間の下限値をT(CU(l))、上限値をT((CU(h))とするとき、本第２の実施形態の画像符号化装置では、所定のコードブロック番号ti-1まではT(CU(l))を閾値としてSi(k)≧T(CU(l))までの符号を読み出し、また、コードブロック番号ti以上についてはT(CU(h))を閾値としてSi(k)≧T(CU(h))までの符号を読み出してＪＰＥＧ２０００符号列を形成する。コードブロックの番号は、図７のように低周波成分から高周波成分に向かう順に番号付けられているので、上記は低周波から高周波に向かう順に並べられたコードブロック群を、２つに分け、前半のコードブロック群（低周波のコードブロック）については下限閾値T(CU(l))を用い、後半のコードブロック群（高周波のコードブロック）については上限閾値T(CU(h))を用いることを意味することになる。
【００９２】
以下、図１９に従い、コードブロック番号の境目tiを決定する処理の流れを示す。
【００９３】
まず、累積符号量ＲにL(CU(h))を設定する（ステップＳ３００１）。次に、コードブロック番号の閾値tiの初期値として0を設定する（ステップＳ３００２）。着目するコードブロックtiについてT(CU(h))以上となる符号打ち切り候補点の最大値k1を求める（ステップＳ３００３）。k1は、符号打ち切り点の順番にレート・歪み勾配Sti(k1)をT(CU(h))と比較し、Sti(k1)≧T(CU(h))となる最大のk1を求めることで得られる。同様にT(CU(l))以上となる符号打ち切り点の最大値k2を求める（ステップＳ３００４）。累積符号量RにRti(k2)-Rti(k1)を加える（ステップ３００５）。続いて、累積符号量Rを目標符号量Rmaxと比較し（ステップ３００６）、R＜Rmaxであればステップ３００７でtiの値を１つ増加させ、ステップ３００３へ処理を移し、符号量の累積を継続する。そうでない場合には処理を終了する。そして、終了時点でのtiが境目となるコードブロック番号となる。
【００９４】
上述のように本第２の実施形態の画像符号化装置で得られるＪＰＥＧ２０００符号列には、全てのコードブロックでレート・歪み勾配の指標値がT(CU(h))以上の符号列が含まれ、さらに目標符号量に達するまでコードブロックの順番でT(CU(l))以上の符号列が含まれる。レート・歪み最適化の点ではやや効率低下を伴うが、符号量の見積もりが必要なのは区間選択部２１０１で選択された区間内のみであり、より簡易にレート・歪み特性の向上を行うことができる。
【００９５】
＜第３の実施形態＞
前述の第１の実施の形態の画像符号化装置では区間選択部２１０１で目標符号量を含む区間（境界区間）を選択し、境界区間内部のみ従来と同じ閾値探索を行うことでレート・歪み最適化処理の簡易化を図った。しかしながら、区間選択部２１０１での区間選択処理を繰り返し行うことで、λを定めることも可能である。以下、この例を第３の実施形態として説明する。
【００９６】
本第３の実施形態における、画像符号化装置のブロック図は第１の実施の形態の説明に用いた図１５と同じであり、区間選択部２１０１、および符号列形成部２１０２の処理のみ異なる。以下、本第３の実施形態における符号列形成部２１０２の処理について説明する。なお、本第３の実施形態の画像符号化装置で符号化対象とする画像符号化データは、前述の従来例、第１の実施の形態と同じく、５１２×５１２の各画素８ビットのモノクロ画像データとし、タイル分割の有無、コードブロックのサイズ、ウェーブレット変換フィルタの選択など、符号化の条件についても従来例、第１の実施の形態と同じである。
【００９７】
第１の実施形態と同様にして、全てのコードブロックがコードブロック符号化部２０４で符号化されると、区間選択部２１０１はコードブロック情報格納部２０７に格納されるコードブロックBiの打ち切り候補点の情報を参照して、目標符号量Rmaxとなるレート・歪み勾配の区間を求める。
【００９８】
図１８に本第３の実施形態の画像符号化装置における区間選択部２１０１の区間選択処理の流れを示す。図において第１の実施の形態の区間選択部２１０１の処理の流れの説明で用いた図１９と同じステップについては同じ番号で示し、説明を省略する。
【００９９】
ステップＳ２９０１はあらかじめ設定した符号量差分の閾値TLと選択した区間の閾値差分とを比較するステップ、ステップＳ２９０２はSmax，Sminの値を更新するステップである。
【０１００】
第１の実施の形態で説明した通り、ステップＳ１９０８でカウンタCU(n)がオーバーフローしていない場合、目標符号量となるレート・歪み勾配を含む境界区間が選択される。ここまでの処理で選択される区間の下限値を保持するカウンタをCU(l)、上限値をCU(h)とするとき、この区間での符号量差分L(CU(l))-L(CU(h))を求め、あらかじめ定めた閾値TLと比較してTLよりも小さい、あるいは等しければ区間選定処理を終了し、閾値TLよりも大きい場合にはステップＳ２９０２に処理を移す。閾値TLは目標とする符号量に対する許容誤差範囲であり、本第３の実施の形態の画像符号化装置にあらかじめ設定されているものとする。
【０１０１】
ステップＳ２９０２ではSminにT(CU(l))を設定し、SmaxにT(CU(h))を設定して、再度ステップＳ１９０３から処理を開始する（再帰的処理となる）。ステップＳ２９０１とステップＳ２９０２を追加して、符号量差分が所定の範囲内に収まるまで繰り返して区間選択処理を行う構成となっている。すなわち、初期状態では全コードブロックの歪み・レートの最大勾配及び最小勾配をSmax,Sminとして行い、下限値、上限値を探し出し、その結果を再帰的にSmax,Sminに設定することを行うものである。
【０１０２】
符号列形成部２１０２では、コードブロック符号化部２０４により全てのコードブロックの符号化が終了し、続いて区間選択部２１０１により境界区間の選択処理が終了すると、区間選択部２１０１の選択した区間の情報とコードブロック情報格納部２０７に格納される各コードブロックの符号打ち切り点の情報を参照し、符号列格納部２０６から符号列を集めてＪＰＥＧ２０００符号列を形成し、符号出力部２０８へと出力する。本実施の形態では、T(CU(h))を閾値として用い、Si(k)≧T(CU(h))までの符号を読み出しＪＰＥＧ２０００符号列を形成する。
【０１０３】
上述のように本第３の実施形態の画像符号化装置では、第１の実施形態と同じく、複数のカウンタユニットに異なる閾値を設定して符号量をカウントし、かつ、閾値として不適切と判断された時点で次の閾値について符号量カウントを行う構成となっており、コードブロック情報へのアクセス回数を少なくし、短時間に区間選択が可能となっている。また、区間の符号量差分を調べて所定範囲となるように繰り返して区間選択を行うことにより、目標符号量と実際に発生する符号量との誤差範囲をある程度限定してJPEG2000符号列を生成することができる。特に、第１の実施形態における閾値変化量Twを求める際の分割数Ｎはある程度大きな値を必要としたが、本第３の実施形態によれば小さなＮで第１の実施形態とほぼ同じ精度の上限値、下限値を決定でき、演算量を減らすことが可能となる。
【０１０４】
＜変形例＞
上述の実施の形態では最終的に得られた境界区間の上限値T(CU(h))を閾値として用いているが、閾値選択の精度を向上するために、区間内部から目標符号量に近くなると思われる閾値を予測しても良い。この場合、例えば、境界区間の上限値T(CU(h))とその符号量L(CU(h))、下限値T(CU(l))とその符号量L(CU(l))を結ぶ線分を考え、以下の式によりRmaxに相当する閾値Sを算出することができる。
S = T(CU(h)) +（Rmax-L(CU(h))）×(T(CU(h))-T(CU(l))) / (L(CU(h)) - L(CU(l)))
このように、境界区間の両端の閾値と符号量を用いて閾値を予測することで、目標符号量からの差異を少なくすることが可能となる。
【０１０５】
＜その他の実施形態＞
本発明は、上述した実施形態に限定されるものではない。例えば、上述した第１から第３の実施形態においては、タイル分割なし、離散ウェーブレット変換２回、９ｘ７非可逆フィルタ(9-7 Irreversible Filter)使用、コードブロックサイズは６４ｘ６４、１レイヤでの符号列形成として説明したが、ＪＰＥＧ２０００符号化の条件を変更した場合にも適用できる。例えば、複数のビットレートでレイヤ構成する場合、それぞれのレイヤで目標符号量Ｒｍａｘを設定することにより適用することができる。その他、離散ウェーブレット変換のフィルタ、適用回数等を変更しても構わないことは言うまでもない。
【０１０６】
また、本発明はＪＰＥＧ２０００での実施に好適であるが、符号化データを小区分に分けて符号量、歪み指標値を得られるその他の符号化方式においても適用することが可能である。
【０１０７】
また、上述の実施形態ではコードブロック情報格納部、符号列格納部のように目的に応じてブロックを定義しているが、単一の記憶領域を用意して使い分けるような構成としても構わない。
【０１０８】
また、上述の実施の形態では、５１２×５１２の各画素８ビットのモノクロ画像データを符号化対象画像として説明したが、その他のサイズ、ビット深度の画像、各画素が複数の色成分で表されたカラー画像など、その他の画像データに適用しても構わない。さらに、動画像の各フレーム、フィールドなどに対して適用しても構わない。
【０１０９】
更に、上記各実施形態では、カウンタユニットを４つ設ける例を示したが、これによって本発明が限定されるものではなく、２以上であれば良い。
【０１１０】
また、実施形態ではウェーブレット変換を用い、コードブロックを複数のパスに分けて符号化する技術を例にしたが、ブロック単位に、そのブロックをパスに分けて符号する技術に適用できるので、ウェーブレット変換に限らず、ＤＣＴ変換を用いた画像圧縮技術にも適用可能である。
【０１１１】
また、上述の実施の形態では、閾値幅Twを決定する際、レート・歪み勾配の最大値Ｓｍａｘ、最小値Ｓｍｉｎ間を等間隔にＮ分割する例を示したが、境界区間となりそうな部分を予測してその部分の閾値幅Twは細かく、その他の部分では荒くするなど、非均等間隔で閾値を変更して各カウンタユニットに設定しても良い。
【０１１２】
さらにまた、先に説明したように、本発明は、パーソナルコンピュータ等の汎用情報処理装置で実行するコンピュータプログラムによっても実現できるものであるから、本発明はかかるコンピュータプログラムをその範疇とするのは明らかである。また、通常、コンピュータプログラムはＣＤＲＯＭ等のコンピュータ可読記憶媒体に記憶され、装置にセットしてシステムにそのコンピュータプログラムをコピーもしくはインストールすることで実行可能となるわけであるから、かかるコンピュータ可読記憶媒体をもその範疇とするのは明らかである。
【図面の簡単な説明】
【０１１３】
【図１】実施形態における装置のブロック構成図である。
【図２】画像符号化装置の従来例の構成を示すブロック図である。
【図３】２次元離散ウェーブレット変換によって処理される符号化対象画像のサブバンドを説明するための図である。
【図４】コードブロックBiの符号打ち切り点niを決定する処理の流れを示すフローチャートである。
【図５】コードブロックBiのパスの統合による単調減少化の処理の流れを示すフローチャートである。
【図６】２回の２次元離散ウェーブレット変換によって得られる７つのサブバンドを説明するための図である。
【図７】コードブロック分割部２０３におけるコードブロック分割の様子を示す図である。
【図８】コードブロック符号化部２０４の内部に構築されるコードブロックBiの情報の例を示す図である。
【図９】コードブロック情報格納部２０７に格納される符号打ち切り候補点の情報を表す図である。
【図１０】コードブロックの各パスのレートと歪みの関係の一例を示す図である。
【図１１】単調減少化処理により、パスが統合される様子を示す図である。
【図１２】コードブロックの各ビットプレーンと、符号化のパスとの関係を示す図である。
【図１３】符号列形成部２０５におけるλ決定の処理の流れを示すフローチャートである。
【図１４】第１の実施形態における区間選択部２１０１で実施される区間選択処理の流れを示すフローチャートである。
【図１５】本発明の第１、第２、第３の実施形態に係る画像符号化装置の機能ブロック構成図である。
【図１６】第１の実施形態における区間選択部２１０１で行われる区間選択処理における各カウンタユニットの閾値の推移を示す図である。
【図１７】第１の実施形態の変形例における各カウンタユニットの閾値の推移を示す図である。
【図１８】第３の実施形態における区間選択部２１０１で実施される区間選択処理の流れを示すフローチャートである。
【図１９】第２の実施形態における符号列形成部２１０２で実施されるコードブロック番号の閾値tiを決定する処理の流れを示すフローチャートである。
【図１】
2005150842.tif 000003
【図２】
2005150842.tif 000004
【図３】
2005150842.tif 000005
【図４】
2005150842.tif 000006
【図５】
2005150842.tif 000007
【図６】
2005150842.tif 000008
【図７】
2005150842.tif 000009
【図８】
2005150842.tif 000010
【図９】
2005150842.tif 000011
【図１０】
2005150842.tif 000012
【図１１】
2005150842.tif 000013
【図１２】
2005150842.tif 000014
【図１３】
2005150842.tif 000015
【図１４】
2005150842.tif 000016
【図１５】
2005150842.tif 000017
【図１６】
2005150842.tif 000018
【図１７】
2005150842.tif 000019
【図１８】
2005150842.tif 000020
【図１９】
2005150842.tif 000021