(57)【要約】【課題】符号量の上限を保証することができ、かつ、平均符号量が小さい圧縮を実現できる装置を提供する。【解決手段】画像符号化装置は、予測部１２と、予測誤差算出部１４と、予測誤差符号化部１６を備える。予測部１２は注目画素の予測画素値を算出し、予測誤差算出部１４は注目画素の予測誤差値を算出する。予測誤差符号化部１６は、予測誤差値のビット数と誤差値を符号化する際に有効ビット数を設定し、誤差値が有効ビット数を超える場合に有効ビット数分の上位ビットのみを誤差値として符号化する。【選択図】図１
2013223206.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力する手段と、
前記画像データのうちの処理対象となる注目画素の予測画素値を算出する予測手段と、
前記注目画素の実際の画素値と前記予測画素値を用いて予測誤差値を算出する予測誤差算出手段と、
前記予測画素値をビット数と誤差値からなる情報で符号化する手段であって、前記ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを誤差値として符号化する符号化手段と、
を備えることを特徴とする画像符号化装置。
【請求項２】
前記符号化手段で符号化された前記予測誤差値を量子化する量子化手段と、
量子化された前記予測誤差値を前記予測手段にフィードバックするフィードバック手段と、
を備え、前記予測手段は、量子化された前記予測誤差値を用いて次の注目画素の予測誤差値を算出することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記符号化手段は、前記ビット数として、画像のブロックに含まれる複数の画素の予測誤差を表現できるビット数のうちの最大値を用いることを特徴とする請求項１，２のいずれかに記載の画像符号化装置。
【請求項４】
前記有効ビット数は、予め設定された固定のビット数であることを特徴とする画像符号化装置。
【請求項５】
前記有効ビット数は、前記予測手段により前記注目画素に対して順次算出される前記予測誤差値に応じて可変設定されることを特徴とする画像符号化装置。
【請求項６】
符号化された画像データを入力する手段と、
符号化された前記画像データに含まれるビット数データと誤差データを切り出す切り出し手段と、
前記ビット数データを復号するとともに、前記ビット数データを用いて前記誤差データを復号して予測誤差値を算出する予測誤差値復号化手段と、
前記予測誤差を用いて注目画素の画素値を算出する画素値算出手段と、
を備えることを特徴とする画像復号化装置。
【請求項７】
コンピュータに、
画像データを入力するステップと、
前記画像データのうちの処理対象となる注目画素の予測画素値を算出するステップと、
前記注目画素の実際の画素値と前記予測画素値を用いて予測誤差値を算出するステップと、
前記予測画素値をビット数と誤差値からなる情報で符号化するステップであって、前記ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを誤差値として符号化するステップ
を実行させることを特徴とするプログラム。
【請求項８】
画像データを入力する手段と、
前記画像データを離散コサイン変換する手段と、
離散コサイン変換された前記画像データの係数をハフマン符号化する手段であって、ハフマン符号化の付加ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを符号化する符号化手段と、
を備えることを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置及び画像復号化装置並びにプログラムに関する。
【背景技術】
【０００２】
従来から、画像を符号化あるいは圧縮する種々の方式が提案されている。このような方式としてＪＰＥＧやＢＴＣ（ブロックトランケーション符号化）がある。前者は可変長符号化方式であって、周波数変換と量子化を組み合わせることで画質劣化が少ないままで符号量を削減している。後者は固定長符号化方式であって、ブロックを固定長の情報で表現することによりある決まった符号量に符号化できる。
【０００３】
特許文献１には、カラー画像の表現する表色データ毎に差分量子化特性を調定する際に色彩の明るさを表す表色データについては色彩の明るさを表す表色データの予測値に従い設定された許容量子化誤差に応じて適応的に差分信号の量子化特性を調定する適応型差分符号化方式が開示されている。
【０００４】
特許文献２には、ブロック内の各画素と量子化以前の画素を用いて算出した各画素の予測値との差分の最大値に基づいて各画素の取りうる量子化特性のダイナミックレンジについての上限及び下限を定める画像符号化方式が開示されている。
【０００５】
特許文献３には、予測差分値から第１オフセット値を減じた値を量子化し、第２オフセット値を加算し、加算結果をさらに符号化予測値に加減算することでＭビットの符号化データを得る画像符号化・復号化装置が開示されている。
【０００６】
特許文献４及び特許文献５には、予測誤差値をシンボルとして、複数のシンボルをまとめてブロックを生成し、ブロック毎に符号語を割り当てる符号化装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６３−７６６８４号公報
【特許文献２】特開平０３−１１２２７３号公報
【特許文献３】特開２０１０−１６６５２０号公報
【特許文献４】特開２００８−６７３５１号公報
【特許文献５】特開２００８−６７３６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ＪＰＥＧ方式では符号量の上限が抑えられず、また、画像の複数ライン（例えば８ライン）を同時に処理する場合等には装置が大型化する。また、ＢＴＣ方式では情報量の少ない入力に対しても一律に符号量が固定値となる。
【０００９】
本発明は、符号量の上限を保証することができ、かつ、平均符号量が小さい圧縮を実現できる装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に記載された発明は、画像データを入力する手段と、前記画像データのうちの処理対象となる注目画素の予測画素値を算出する予測手段と、前記注目画素の実際の画素値と前記予測画素値を用いて予測誤差値を算出する予測誤差算出手段と、前記予測画素値をビット数と誤差値からなる情報で符号化する手段であって、前記ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを誤差値として符号化する符号化手段とを備えることを特徴とする画像符号化装置である。
【００１１】
請求項２に記載された発明は、前記符号化手段で符号化された前記予測誤差値を量子化する量子化手段と、量子化された前記予測誤差値を前記予測手段にフィードバックするフィードバック手段とを備え、前記予測手段は、量子化された前記予測誤差値を用いて次の注目画素の予測誤差値を算出することを特徴とする請求項１記載の画像符号化装置である。
【００１２】
請求項３に記載された発明は、前記符号化手段は、前記ビット数として、画像のブロックに含まれる複数の画素の予測誤差を表現できるビット数のうちの最大値を用いることを特徴とする請求項１，２のいずれかに記載の画像符号化装置である。
【００１３】
請求項４に記載された発明は、前記有効ビット数は、予め設定された固定のビット数であることを特徴とする画像符号化装置である。
【００１４】
請求項５に記載された発明は、前記有効ビット数は、前記予測手段により前記注目画素に対して順次算出される前記予測誤差値に応じて可変設定されることを特徴とする画像符号化装置である。
【００１５】
請求項６に記載された発明は、符号化された画像データを入力する手段と、符号化された前記画像データに含まれるビット数データと誤差データを切り出す切り出し手段と、前記ビット数データを復号するとともに、前記ビット数データを用いて前記誤差データを復号して予測誤差値を算出する予測誤差値復号化手段と、前記予測誤差を用いて注目画素の画素値を算出する画素値算出手段とを備えることを特徴とする画像復号化装置である。
【００１６】
請求項７に記載された発明は、コンピュータに、画像データを入力するステップと、前記画像データのうちの処理対象となる注目画素の予測画素値を算出するステップと、前記注目画素の実際の画素値と前記予測画素値を用いて予測誤差値を算出するステップと、前記予測画素値をビット数と誤差値からなる情報で符号化するステップであって、前記ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを誤差値として符号化するステップを実行させることを特徴とするプログラムである。
【００１７】
請求項８に記載された発明は、画像データを入力する手段と、前記画像データを離散コサイン変換する手段と、離散コサイン変換された前記画像データの係数をハフマン符号化する手段であって、ハフマン符号化の付加ビット数が有効ビット数を超える場合に、前記有効ビット数分の上位ビットのみを符号化する符号化手段とを備えることを特徴とする画像符号化装置である。
【発明の効果】
【００１８】
請求項１，６，７に記載された発明によれば、上記構成を有しない場合に比べて符号量の上限が抑制される。
【００１９】
請求項２に記載された発明によれば、上記構成を有しない場合に比べて量子化誤差の累積が抑制される。
【００２０】
請求項３に記載された発明によれば、上記構成を有しない場合に比べて符号量が低減される。
【００２１】
請求項４に記載された発明によれば、簡易的な処理で符号化される。
【００２２】
請求項５に記載された発明によれば、有効ビット数が適当な値に調整される。
【００２３】
請求項８に記載された発明によれば、ＪＰＥＧ方式に適用しつつ上記構成を有しない場合に比べて符号量の上限が抑制される。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態における画像符号化装置の構成ブロック図である。
【図２】図１の構成における具体例を示す図である。
【図３】ビット数とビットパッキングの説明図である。
【図４】符号化された画像データの一例を示す図である。
【図５】第１実施形態の処理フローチャートである。
【図６】第１実施形態の他の処理フローチャートである。
【図７】図６の処理の具体例を示す図である。
【図８】第１実施形態のさらに他の処理フローチャートである。
【図９】図８の処理の具体例を示す図である。
【図１０】第１実施形態における画像復号化装置の構成ブロック図である。
【図１１】第２実施形態の符号化された画像データの一例を示す図である。
【図１２】第３実施形態の符号化された画像データの一例を示す図である。
【図１３】第４実施形態における画像符号化装置の構成ブロック図である。
【図１４】図１３の構成における具体例を示す図である。
【図１５】従来の符号量制御装置と第４実施形態の符号量制御装置の構成ブロック図である。
【図１６】付加ビット数の設定を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面に基づき本発明の実施形態について説明する。
【００２６】
＜第１実施形態＞
図１に、本実施形態における画像符号化装置の構成ブロック図を示す。画像符号化装置は、画像入力部１０と、予測部１２と、予測誤差算出部１４と、予測誤差符号化部１６と、符号出力部２４と、画像量子化部２６を備える。
【００２７】
画像入力部１０は、処理対象となる画像データを取得する。一例は、ドキュメントを読み取って電子データ化するスキャナである。画像入力部１０は、取得した画像データを予測部１２に出力するとともに、予測誤差算出部１４に出力する。
【００２８】
予測部１２は、注目画素、すなわち処理対象となる画素の画素値を予測する。予測部１２は、例えばライン毎に処理する場合において、注目ラインより１つ前のラインの画素値を予測値とする。より特定的には、横方向ラインを主走査方向、これに垂直な上下方向を副走査方向とし、上から下に処理が行われるものとすると、注目ラインよりも１つ上のラインの画素値を予測値とする。もちろん、これは一例であって、他の方法、例えば１画素毎に処理を行うものとする場合に直左画素の画素値を予測値とする等も可能である。この場合についてはさらに後述する。
【００２９】
予測誤差算出部１４は、予測部１２で予測された予測値と、注目画素における実際の画素値との差分を演算する。例えば、注目画素の予測値が１６であり、注目画素の実際の画素値が２０である場合、予測誤差＝２０−１６＝４と算出される。予測誤差算出部１４は、算出した予測誤差を予測誤差符号化部１６に出力する。
【００３０】
予測誤差符号化部１６は、予測誤差算出部１４で算出された予測誤差を符号化する。予想誤差符号化部１６は、ビット数算出部１８と、ビットパッキング部２０と、ビット数符号化部２２を備える。
【００３１】
ビット数算出部１８は、予測誤差算出部１４で算出された予測誤差値を表現可能なビット数を算出する。例えば、予測誤差値が４である場合、２進表現では０１００であるからビット数算出部１８はビット数を４と算出する。また、予測誤差値が２６である場合、２進表現では０１１０１０であるからビット数算出部１８はビット数を６と算出する。なお、ビット数算出部１８は、予測誤差値のビット数を算出するに際し、予測誤差値として負値もあり得るため符号ビットを含めてビット数を算出する。ビット数算出部１８は、処理対象の複数の画素の予測誤差のビット数のうち、最大のビット数をビット数符号化部２２及びビットパッキング部２０に出力する。例えば、複数の画素の予測誤差値を表現できるビット数が４ビット、５ビット、６ビットである場合、これらのうちの最大ビット数である６ビットをビット数として選択する。
【００３２】
ビット数符号化部２２は、ビット数算出部１８で算出されたビット数を符号化する。
【００３３】
ビットパッキング部２０は、ビット数算出部１８で算出されたビット数に基づいて有効ビット数を算出し、この有効ビット数で複数の画素の予測誤差値をブロック単位でパッキングする。ビットパッキング部２０は、パッキングする際に、そのビット数が有効ビット数を超える予測誤差値に対しては、有効ビット数分の上位ビットのみを予測誤差値として採用する。例えば、有効ビット数を４ビットとし、予測誤差値が２６の場合、２進表現では「０１１０１０」であり６ビットとなって４ビットを超えるため、ビットパッキング部２０は、予測誤差の６ビットのうち、上位の４ビットのみを採用して「０１１０」とする。なお、この場合、元々の６ビットのうちの下位２ビット「１０」を四捨五入して、上位の４ビットの下位ビットを設定してもよい。この場合、上位の４ビットは四捨五入の結果、「０１１１」となる。四捨五入は上位の４ビットのみを採用することに伴う誤差をできるだけ少なくするための処理であり、必ずしも必須ではない。
【００３４】
このように、予測誤差値のビット数が有効ビット数を超える場合に上位のビットから有効ビット数分のみを採用するのは、予測誤差値では上位ビットに重要な情報が含まれている事実に基づくものである。
【００３５】
符号出力部２４は、ビット数符号化部２２からの符号化ビット数と、ビットパッキング部２０からのパッキングされた予測誤差値を符号化された画像データとして出力する。
【００３６】
一方、画像量子化部２６は、ビットパッキング部２０で生じた量子化誤差を算出する。算出された量子化誤差は予測部１２にフィードバックされる。画像量子化部２６は、量子化誤差を算出する機能と、これを予測部１２にフィードバックする機能を有するといえる。
【００３７】
例えば、注目画素における予測誤差値が「４」である場合、画像量子化部２６はこの予測誤差値を符号化誤差として予測部１２に出力する。予測部１２は、次の注目画素の予測値を算出する際にこの符号化誤差「４」を用いる。具体的には、次の注目画素の予測値は、当該注目画素の一つ前の画素の画素値であるが、これに符号化誤差を加算することで次の注目画素の予測値を修正する。また、注目画素における予測誤差が「２６」である場合、ビットパッキング部２０によりパッキングされる結果、その予測誤差値は「０１１１」＝２８となるため、この符号化誤差「２８」を予測部１２に出力する。予測部１２は、次の注目画素の予測値を算出する際にこの符号化誤差「２８」を用いる。
【００３８】
図１における予測部１２、予測誤差算出部１４、予測誤差符号化部１６、符号出力部２４、画像量子化部２６は、具体的にはコンピュータを構成するＣＰＵ等のプロセッサ及びメモリで構成される。プロセッサは、ＲＯＭ等のプログラムメモリに格納されたプログラムを読み出し、これを実行することで各部の機能を実現する。また、図１に示す画像符号化装置は、各端末とネットワークで接続され、スキャナ機能やプリント機能等を備える複合機に組み込むことができる。
【００３９】
次に、本実施形態の符号化処理について、具体的に説明する。
【００４０】
図２に、図１の構成における符号化処理の具体例を示す。画像入力部１０で画像を取得した結果、画像の第（ｎ−１）ラインを構成する画素の画素値が例えば「１６」、「９」，「２４」，「８０」，・・・であり、第ｎラインを構成する画素の画素値が例えば「２０」，「２４」，「５０」，「７７」，・・・であるとする。符号化は、ブロック単位で行うものとし、処理ブロックは３２画素×１の１ラインで構成されるものとする。予測部１２は、注目ラインである第ｎラインの１つ上のラインである第（ｎ−１）ラインの画素から、注目ラインの画素の画素値を予測する。例えば、予測部１２は、第（ｎ−１）ラインの画素値をそのまま第ｎラインの画素値として予測し、第ｎラインの画素値を「１６」，「９」，「２４」，「８０」，・・・と予測する。画像入力部１０からの第ｎラインの実際の画素値、及び予測部１２からの第ｎラインの予測値は、ともに予測誤差算出部１４に供給される。
【００４１】
予測誤差算出部１４は、第ｎラインの実際の画素値と予測値との差分を演算して予測誤差値を算出する。ここで、
実際の画素値＝２０，２４，５０，７７
予測値＝１６，１９，２４，８０
であるから、予測誤差値は、２０−１６＝４，２４−１９＝５，５０−２４＝２６，７７−８０＝−３となる。算出された予測誤差値である「４」，「５」，「２６」、「−３」は、予測誤差符号化部１６に供給される。
【００４２】
図３に、予測誤差符号化部１６における符号化の例を示す。予測誤差値「４」の２進表現は８ビットで「０ｂ０００００１００」であり、これを表現できるビット数は符号ビットを含めて４ビットである。予測誤差値「５」の２進表現は８ビットで「０ｂ０００００１０１」であり、これを表現できるビット数は符号ビットを含めて４ビットである。予測誤差値「２６」の２進表現は８ビットで「０ｂ０００１１０１０」であり、これを表現できるビット数は符号ビットを含めて６ビットである。予測誤差値「−３」の２進表現は８ビットで「０ｂ１１１１１１０１」であり、これを表現できるビット数は３ビットである。ビット数算出部１８は、これらのビット数のうちの最大のビット数である６ビットを選択する。
【００４３】
また、ビットパッキング部２０は、有効ビット数を例えば予め設定された「４」に制限し、この有効ビット数で予測誤差値をパッキングする。このとき、パッキングすべき予測誤差値のビット数は「４」，「４」，「６」，「３」であり、有効ビット数の「４」を超える「６」が含まれているため、有効ビット数の「４」に抑えるために有効ビット数分の上位４ビットのみを採用する。すなわち、予測誤差値「４」の２進表現は「０ｂ０００００１００」であり、６ビットの「０００１００」のうち、下位２ビットを切り捨ててそれよりも上位の４ビットを抽出して「０００１」とする。なお、下位２ビットを切り捨てるのではなく、四捨五入してもよい。また、予測誤差値「５」の２進表現は「０ｂ０００００１０１」であり、６ビットの「０００１０１」のうち、下位２ビット「０１」を切り捨てて上位の４ビットのみを抽出して「０００１」とする。また、予測誤差値「２６」の２進表現は「０ｂ０００１１０１０」であり、６ビットの「０１１０１０」のうち、下位２ビット「１０」を切り捨てて上位の４ビットを抽出して「０１１０」とする。下位２ビットを切り捨てるのではなく、下位２ビットの「１０」のうち、第２位ビットの「１」に着目し、これを四捨五入して「０１１１」としてもよい。図３では、この場合の例を示す。また、予測誤差値「−３」の２進表現は「０ｂ１１１１１１０１」であり、６ビットの「１１１１０１」のうち、下位２ビット「０１」を切り捨てて上位の４ビットを抽出して「１１１１」とする。
【００４４】
以上のようにして、予測誤差値「４」、「５」、「２６」、「−３」は、それぞれ「０００１」、「０００１」、「０１１１」、「１１１１」に有効ビット数の４ビットで符号化される。
【００４５】
一方、これらの符号化に伴う符号化誤差については、以下の通りである。すなわち、「０００１」は下位２ビットを切り捨てた結果であるから、これに下位２ビットを付加して８ビットで「０００００１００」のはずであり、符号化誤差は「０００００１００」＝「４」である。また、「０１１１」は、下位２ビットを付加して８ビットで「０００１１１００」＝「２８」である。また、「１１１１」は、下位２ビットを付加して８ビットで「１１１１１１００」＝「−４」である。図３において、予測誤差値「４」、「５」、「２６」、「−３」の符号化誤差は、それぞれ「４」、「４」、「２８」、「−４」として示されている。画像量子化部２６は、これらの符号化誤差値を算出し、予測部１２にフィードバックする。
【００４６】
再び図２に戻り、画像量子化部２６で符号化誤差を算出して予測部１２にフィードバックすると、予測部１２は、この符号化誤差を用いて、次のラインである第（ｎ＋１）ラインの予測値を算出する際に、基準となる第ｎラインの画素値を修正する。すなわち、予測部１２は、第ｎラインの予測値を第（ｎ−１）ラインの画素値である「１６」、「１９」、「２４」、「８０」としたが、これらに符号化誤差値「４」、「４」、「２８」、「−４」を加算して第ｎラインの画素値を修正する。修正第ｎラインの画素値は、１６＋４＝２０，１９＋４＝２３，２４＋２８＝５２，８０−４＝７６となる。図では、これらの修正された画素値を修正第ｎラインの画素値として示す。予測部１２は、この修正第ｎラインの画素値を次の注目ラインである第（ｎ＋１）ラインの予測値として算出し、予測誤差算出部１４に出力する。すなわち、予測部１２は、第ｎラインの符号化を行った後に、この第ｎラインにおける符号化誤差を用いて次の注目ラインである第（ｎ＋１）ラインの予測値を算出する。符号化誤差を用いて予測値を修正することで、符号化誤差の累積が効果的に抑制される。
【００４７】
図４に、符号出力部２４から出力される符号化データ（符号化された画像データ）１００の一例を示す。符号化された予測誤差値「０００１」，「０００１」，「０１１１」，「１１１１」がブロック単位でパッキングされて誤差部１０４を構成し、その先頭に当該ブロックの予測誤差の最大ビット数の６ビットを規定したヘッダ１０２が付加される。すなわち、符号化データ１００は、予測誤差値を符号化したものであり、ビット数と誤差値から構成される。誤差値は、有効ビット数の４ビットに制限されており、これ以上のビット数は存在していない。従って、符号量の上限が確実に保証されることになる。従来のＪＰＥＧ方式では符号量の上限が抑制されず、本実施形態における画像符号化装置との相違は明らかである。また、有効ビット数についても、例えば予測誤差値のダイナミックレンジに応じて設定することで、情報量の少ない入力に対しては有効ビット数が適応的に小さく設定され、平均符号量を抑制することができる。
【００４８】
図５に、本実施形態における符号化処理をフローチャートで示す。まず、予測部１２で画素値を予測する（Ｓ１０１）。予測方法は任意であるが、例えば注目ラインである第ｎラインの１つ上の第（ｎ−１）ラインの画素値を援用して第ｎラインの予測値とする。
【００４９】
次に、予測誤差算出部１４で予測誤差を算出する（Ｓ１０２）。具体的には、注目ラインの実際の画素値と予測画素値との差分を演算することで予測誤差値を算出する。
【００５０】
次に、ビット数算出部１８でビット数（必要ビット数）を算出する（Ｓ１０３）。すなわち、予測誤差値を表現するために最小限必要なビット数を算出する。上記のように、予測誤差値が「４」、「５」、「２６」、「−３」である場合、それぞれを表現できるビット数は符号ビットを含めてそれぞれ４ビット、４ビット、６ビット、３ビットである。これらの最大ビット数の６ビットが選択される。なお、有効ビット数に関しては、予め設定された固定値でもよく、あるいは予測誤差値のダイナミックレンジから適応的に設定してもよい。この例では、有効ビット数は予め「４」に設定されているものとする。
【００５１】
次に、ビットパッキング部２０及びビット数符号化部２２でそれぞれ予測誤差値及びビット数を符号化する（Ｓ１０４）。すなわち、注目ラインの予測誤差値をそれぞれ有効ビット数の４ビットで符号化してパッキングし、その先頭に最大ビット数の６ビットを符号化してヘッダとして付加する。
【００５２】
次に、画像量子化部２６で量子化誤差、すなわち符号化誤差を算出して予測部１２にフィードバックし、予測部１２で符号化誤差を次の注目ラインである第（ｎ＋１）ラインの予測値に反映する（Ｓ１０５）。本実施形態では、有効ビット数の４ビットで符号化するため、無視される下位の２ビット分の誤差が生じることになるが、上記のように符号化誤差を次のラインの予測値に反映させることで誤差の累積が抑制される。
【００５３】
なお、本実施形態では、１ラインを構成する複数の画素群を１つのブロックとし、このブロック単位で符号化処理を実施しているが、ブロック単位ではなく画素単位で処理することもできるのは言うまでもない。
【００５４】
また、本実施形態では、予測部１２で次の注目ラインの画素値を予測する際に、既に処理された画素を用いることなく予測しているが、既に処理された画素を用いて予測してもよい。次に、この場合の処理について説明する。
【００５５】
図６に、既に処理された画素を用いて予測して符号化する場合の処理フローチャートを示す。具体的には、隣接する左側の画素値を用いて注目画素の画素値を符号化する処理を順次繰り返していく処理である。
【００５６】
まず、必要ビット数を示す引数ｂを１に初期化した上で（Ｓ２０１）、注目画素の画素値を予測する（Ｓ２０２）。具体的には、注目画素の左側に隣接する画素の画素値を注目画素の予測値とする。そして、注目画素の実際の画素値と予測値との差分を演算して注目画素の予測誤差値を算出する（Ｓ２０３）。
【００５７】
次に、予測誤差値を表現するために必要なビット数を算出し、この必要ビット数が引数ｂ以下であるか否かを判定する（Ｓ２０４）。引数ｂの初期値は、上記のようにＳ２０１でｂ＝１に設定されており、通常、予測誤差値は１ビットで表現できないので、Ｓ２０４でＮＯと判定され、引数ｂに必要ビット数を設定し直す（Ｓ２０５）。例えば、予測誤差値が３１であり、これを表現するのに６ビット必要であるから、引数ｂ＝６に設定される。もちろん、予測誤差値によっては引数ｂを１のまま維持できる場合もあるが、この場合には引数ｂはそのままである。
【００５８】
引数ｂを設定し直した後、既処理符号を修正する（Ｓ２０６）。既処理符号の修正については後述する。そして、予測誤差値を有効ビット数で符号化し（Ｓ２０７）、量子化誤差（符号化誤差）を算出してこれを予測部１２にフィードバックして次の予測値に反映させる（Ｓ２０８）。
【００５９】
Ｓ２０２〜Ｓ２０８の処理を全画素について実行し、全画素について実行した後に処理を終了する（Ｓ２０９）。
【００６０】
算出された予測誤差値を表現できる必要ビット数が引数ｂ以下である限り、引数ｂの値はそのまま維持され、各画素の予測画素値は、順次、有効ビット数で符号化されて量子化誤差（符号化誤差）が反映されていく（Ｓ２０４でＹＥＳの場合）。
【００６１】
一方、予測誤差値が大きく、表現するための必要ビット数が引数ｂを超えてしまう場合には、そのままでは予測誤差値を表現することができないので、必要ビット数を設定し直し、新たに設定した必要ビット数で符号化をやり直す。例えば、必要ビット数がｂ＝６ビットであったとしても、予測誤差値が６ビットで表現できる上限である「３１」を超えた場合にはこれを表現することができないので、必要ビットを６ビットから７ビットに設定し直す。以上の処理を繰り返し実行することで、全ての画素の符号化を順次行う。
【００６２】
図７に、図６の処理を具体的に示す。注目画素の左側に隣接する画素から予測する場合である。図７（ａ）に示すように、第ｎラインの画素値が、「１０」，「２０」，「２３」，「５４」，「６７」であるとする。今、第ｎラインを構成する複数の画素を左側から順に１番目、２番目、３番目、４番目、５番目とすると、予測部１２は、最も左側にある１番目の画素の画素値「１０」を２番目の画素の予測値として用いる。予測誤差算出部１４は、２番目の画素の予測誤差値として、２０−１０＝１０を算出する。同様に、２番目の画素の画素値「２０」を３番目の画素の予測値として用い、３番目の画素の予測誤差値は、２３−２０＝３となる。また、３番目の画素の画素値「２３」を４番目の画素の予測値として用い、４番目の画素の予測誤差値は５４−２３＝３１となる。また、４番目の画素の画素値「５４」を５番目の画素の予測値として用い、５番目の画素の予測誤差値は６７−５４＝１３となる。
【００６３】
算出された予測誤差値「１０」，「３」，「３１」，「１３」の２進表現は、それぞれ図７（ｂ）に示すように、「０ｂ００００１０１０」，「０ｂ００００００１１」，「０ｂ０００１１１１１」，「０ｂ００００１１０１」であり、表現するために必要なビット数は、符号ビットを含めてそれぞれ５ビット、３ビット、６ビット、５ビットである。必要ビット数を暫定的に６ビットとし、有効ビット数を４ビットに設定し、予測誤差値「１０」を有効ビット数の４ビットで符号化するために、６ビットの「００１０１０」のうち、下位２ビット「１０」を四捨五入して上位４ビットのみを抽出して「００１１」とする。
【００６４】
すると、図７（ｃ）に示すように、有効ビット数４ビットで符号化された「００１１」は、８ビット表現では「００００１１００」＝１２を意味するから、この符号化誤差の「１２」を１番目の画素値である「１０」に加算して、２番目の画素値を「２２」に修正する。符号化誤差で修正された２番目の画素値「２２」を３番目の画素の予測値とするので、３番目の画素の予測誤差値は、２３−２２＝１に修正される。
【００６５】
すると、図７（ｄ）に示すように、予測誤差値「１」の２進表現は「０ｂ０００００００１」であり、有効ビット数の４ビットでは「００００」となる。この「００００」は、８ビット表現では「００００００００」＝０を意味するから、この符号化誤差の「０」を３番目の画素値である「２２」に加算して、３番目の画素値を「２２」に修正する。３番目の画素値が４番目の画素の予測値となるため、４番目の画素の予測誤差値は、５４−２２＝３２に修正される。
【００６６】
しかしながら、予測誤差値「３２」は、２進表現では「０ｂ００１０００００」となり、これを表現するためには７ビットが必要となるため、当初の必要ビット数である６ビットを超えてしまう（オーバフロー）。そこで、必要な最大ビット数を６ビットから７ビットに修正して、再び符号化をやり直す。
【００６７】
すなわち、図７（ｅ）に示すように、２番目の画素の予測誤差値「１０」の２進表現は、上記のように「０ｂ００００１０１０」であり、必要ビット数７を有効ビット数の４に抑えるために、下位３ビットを切り捨てる（あるいは四捨五入する）。「００００１０１０」の下位３ビットを四捨五入して上位の４ビットを抽出すると「０００１」であり、これは８ビット表現では「０００１０００」＝８を意味するから、２番目の画素値を１０＋８＝１８に修正する。２番目の画素値が３番目の画素の予測値となるから、３番目の画素の予測誤差値は、２３−１８＝５に修正される。
【００６８】
図７（ｆ）に示すように、予測誤差値「５」の２進表現は「０ｂ０００００１０１」であり、有効ビット数の４に抑えるために下位３ビットを四捨五入して上位４ビットを抽出すると「０００１」となる。これは８ビット表現では「０００１０００」＝８を意味するから、３番目の画素値を１８＋８＝２６に修正する。３番目の画素値が４番目の画素値の予測値となるから、４番目の画素の予測値は、５４−２６＝２８となる。この予測誤差値「２８」は、必要ビット数の７ビットで表現可能な範囲内である。
【００６９】
図７（ｇ）に示すように、予測誤差値「２８」の２進表現は「０ｂ０００１１１００」であり、必要ビット数７を有効ビット数の４に抑えるために下位３ビットを四捨五入する。「０００１１１００」の下位３ビットを四捨五入して上位の４ビットを抽出すると「０１００」であり、これは８ビット表現では「００１０００００」＝３２を意味するから、４番目の画素値を２６＋３２＝５８に修正する。４番目の画素値が５番目の画素の予測値となるから、５番目の画素の予測値は、６７−５８＝９に修正される。
【００７０】
図７（ｈ）に示すように、予測誤差値「９」の２進表現は「０ｂ０００００１０１」であり、有効ビット数の４に抑えるために下位３ビットを四捨五入して上位の４ビットを抽出すると「０００１」となる。これは、８ビット表現では「００００１０００」＝８を意味するから、５番目の画素値を５８＋８＝６４に修正する。
【００７１】
以上のようにして、予測誤差値が必要ビット数を超えた場合には、その時点で当該予測値を表現できるように必要ビット数に変更して再度符号化をやり直すことで、最終的に全ての予測誤差値を符号化することができる。
【００７２】
図６及び図７の例では、予測誤差値が大きい場合において、これを表現するために必要なビット数を適宜設定し直して符号化を繰り返すが、予測に既処理画素を用いる場合においても、必要なビット数を固定する処理方法も可能である。以下ではこの場合について説明する。
【００７３】
図８に、必要ビット数を固定する処理のフローチャートを示す。まず、画素値を予測する（Ｓ３０１）。具体的には、注目画素の左側に隣接する画素の画素値を注目画素の予測値とする。そして、注目画素の実際の画素値と予測値との差分を演算して予測誤差を算出する（Ｓ３０２）。
【００７４】
次に、予測誤差値を表現するための必要ビット数ｂを算出する（Ｓ３０３）。ここで算出された必要ビット数ｂは以後、変更されることなく固定される。例えば、予測誤差値が「３１」である場合、必要ビット数は６ビットに設定され、この値が以後そのまま保持される。必要ビット数ｂを算出して設定した後、このｂ以下で予測誤差値を符号化する（Ｓ３０４）。仮に、予測誤差値が大きく、必要ビット数ｂで表現できない場合でも、当該予測誤差値を必要ビット数ｂで表現するように強制的に丸める。例えば、予測誤差値が「３２」である場合、既述したように本来は６ビットでは表現できず７ビットが必要であるが、「３２」を「３１」に丸めて６ビットで表現する。
【００７５】
予測誤差値を必要に応じて丸めて符号化した後、量子化誤差（符号化誤差）を算出してこれを反映させ（Ｓ３０５）、予測誤差値を修正する（Ｓ３０６）。以上の処理を全画素について繰り返し実行する（Ｓ３０７）。
【００７６】
図９に、図８の処理を具体的に示す。注目画素の左に隣接する画素から予測する場合である。図９（ａ）に示すように、第ｎラインの画素値が、「１０」，「２０」，「２３」，「５４」，「６７」であるとする。第ｎラインを構成する複数の画素を左から順に１番目、２番目、３番目、４番目、５番目とすると、最も左側にある１番目の画素の画素値「１０」を２番目の画素の予測値として用い、２番目の画素の予測誤差値は、２０−１０＝１０となる。同様に、２番目の画素の画素値「２０」を３番目の画素の予測値として用い、３番目の画素の予測誤差値は、２３−２０＝３となる。また、３番目の画素の画素値「２３」を４番目の画素の予測値として用い、４番目の画素の予測誤差値は５４−２３＝３１となる。また、４番目の画素の画素値「５４」を５番目の画素の予測値として用い、５番目の画素の予測誤差値は６７−５４＝１３となる。
【００７７】
予測誤差値「１０」，「３」，「３１」，「１３」の２進表現は、それぞれ図９（ｂ）に示すように、「０ｂ００００１０１０」、「０ｂ００００００１１」、「０ｂ０００１１１１１」、「０ｂ００００１１０１」であり、表現できる必要ビット数は符号ビットを含めてそれぞれ５ビット、３ビット、６ビット、５ビットである。必要ビット数を６ビットに設定するとともに有効ビット数を４ビットとし、予測誤差値「１０」を有効ビット数の４ビットで符号化するために、６ビットの「００１０１０」のうち、下位２ビット「１０」を四捨五入して上位４ビットを抽出して「００１１」とする。
【００７８】
すると、図９（ｃ）に示すように、符号化された「００１１」は、８ビット表現では「００００１１００」＝１２を意味するから、この符号化誤差の「１２」を２番目の画素の予測値である「１０」に加算して、２番目の画素値を「２２」に修正する。２番目の画素値「２２」が３番目の画素の予測値となるため、３番目の画素の予測誤差値は、２３−２２＝１に修正される。
【００７９】
すると、図９（ｄ）に示すように、予測誤差値「１」の２進表現は「０ｂ０００００００１」であり、有効ビット数の４ビットでは「００００」となる。この「００００」は、８ビット表現では「００００００００」＝０を意味するから、この符号化誤差の「０」を３番目の画素値の予測値である「２２」に加算して、３番目の画素値を「２２」に修正する。３番目の画素値が４番目の画素の予測値となるため、４番目の画素の予測誤差値は、５４−２２＝３２に修正される。
【００８０】
次に、図９（ｅ）に示すように、予測誤差値「３２」は６ビットでは表現できず本来であれば７ビットが必要であるが、この処理では全ての予測誤差値を６ビット以下で表現する。つまり、予測誤差値「３２」を「３１」に丸めて、「０１１１」とする。これは、８ビット表現では「０００１１１００」＝２８を意味するから、この符号化誤差の「２８」を４番目の画素値の予測値である「２２」に加算して、４番目の画素値を「５０」に修正する。４番目の画素値が５番目の画素の予測値となるから、５番目の画素の予測誤差値は、６７−５０＝１７に修正される。
【００８１】
最後に、図９（ｆ）に示すように、予測誤差値「１７」の２進表現は「０ｂ０００１００００」であり、有効ビット数の４ビットでは「０１００」となる。この「０１００」は８ビット表現では「０００１００００」＝１６を意味するから、この符号化誤差の「１６」を５番目の画素の予測値である「５０」に加算して、５番目の画素値を「６６」に修正する。
【００８２】
以上のように、必要ビット数を固定することで、符号化のやり直しを回避して処理時間を短縮することができる。また、予測誤差値を必要ビット数以下に丸めることにより生じる誤差は、量子化誤差（符号化誤差）として予測値にフィードバックして修正するため、累積誤差も抑制される。
【００８３】
次に、図１に示す画像符号化装置に対応する画像復号化装置について説明する。
【００８４】
図１０に、画像復号化装置の構成ブロック図を示す。画像復号化装置は、符号入力部５０と、符号切り出し部５２と、ビット数復号部５４と、ビットアンパッキング部５６と、予測誤差加算部５８と、予測部６０と、画像出力部６２を備える。
【００８５】
符号入力部５０は、図１における符号出力部２４に対応する機能ブロックであり、図１の画像符号化装置で符号化された画像データを取得する。符号化された画像データの一例は、例えば図４の如くである。
【００８６】
符号切り出し部５２は、符号化された画像データからビット数とこれに伴うビットパッキングに応じて次の符号を切り出す。具体的には、画像復号化装置では、画像符号化装置における有効ビット数が既知となっており、この有効ビット数を用いて符号を切り出していく。例えば、図４のような符号化された画像データでは、有効ビット数が４ビットである場合、符号切り出し部５２は、４ビット符号化データとして「０００１」を切り出し、次に４ビット符号化データとして「０００１」を切り出し、次に４ビット符号化データとして「０１１１」を切り出し、次に４ビット符号化データとして「１１１１」を切り出していく。また、符号切り出し部５２は、符号化された画像データのヘッダにあるビット数の情報も切り出す。符号切り出し部５２は、ヘッダのビット数情報をビット数復号部５４に出力し、順次切り出した４ビットデータ、すなわち符号化された予測誤差値データをビットアンパッキング部５６に出力する。
【００８７】
ビット数復号部５４は、図１におけるビット数符号化部２２に対応する機能ブロックで、ビット数符号化部２２の逆処理を行ってビット数を復号する。これにより、例えば予測誤差値のビット数を６ビットと復号する。
【００８８】
ビットアンパッキング部５６は、図１におけるビットパッキング部２０に対応する機能ブロックで、ビットパッキング部２０の逆処理を行って予測誤差値を算出する。すなわち、予測誤差値が６ビットである場合、有効ビット数は既知の４ビットであり、符号化時には下位２ビットを切り捨てて（あるいは四捨五入して）それよりも上位の４ビットのみを抽出して符号化しているから、４ビットデータの下位２ビットに「００」を付加して予測誤差値を算出する。
【００８９】
予測誤差加算部５８は、図１におえる予測誤差算出部１４に対応する機能ブロックで、予測誤差算出部１４の逆処理を行って復号化画素値（伸長画素値）を算出する。具体的には、予測部６０で予測された注目画素の予測値に予測誤差値を加算することで復号化画素値を算出する。予測誤差加算部５８は、復号化（伸長）画素値を画像出力部６２に出力する。
【００９０】
予測部６０は、図１における予測部１２に対応する機能ブロックで、復号化画素値に基づいて注目画素の予測値を算出する。具体的には、復号化画素値をそのまま次の注目画素の予測値とする。予測誤差加算部５８は、予測部６０で予測された画素値に予測誤差値を加算することで注目画素の画素値を復号化する。
【００９１】
なお、本願出願人は、ある原画像に対して本実施形態の方法により符号化した場合（有効ビット数を４ビットとした場合）と、比較例として画素値の下位４ビットを単にマスクして符号化した場合とでＳＮ比を評価した結果、比較例は２９．２０ｄＢであるのに対し、本実施形態では２９．６７ｄＢが得られることを確認している。また、同じ原画像に対し、画質評価の指標の一つであるＳＳＩＭを評価した結果、比較例は９１．５２％であるのに対し、本実施形態では９４．５５％であることを確認している。
【００９２】
＜第２実施形態＞
上記の第１実施形態では、図４に示すようにビット数の情報をビットパッキングされた予測誤差値の先頭にヘッダとして付加しているが、図１１に示すようにビット数の情報をビットパッキングされた予測誤差値とは別のストリームデータとしてもよい。なお、別のストリームデータとしてのビット数の情報は、例えばランレングス符号化やハフマン符号化で符号化し得る。
【００９３】
＜第３実施形態＞
また、上記の第１実施形態では、ブロック単位で符号化する際のビット数を同一値としているが（図５や図８を参照。図６ではビット数は変化するが、最終的なビット数は一律である）、画素毎にビット数を変化させることもできる。この場合、ビット数の情報は、図１２に示すように画素毎にビット数の情報が付加される。図１２は、図３におけるビット数「４」，「４」，「６」，「３」をそのまま用いたものである。ビット数の情報は図１１と同様に別のストリームデータとすることができ、これもランレングス符号化やハフマン符号化で符号化し得る。
【００９４】
＜第４実施形態＞
第１実施形態では、予測誤差値を有効ビット数で符号化したが、本発明はこれに限定されるものではなく、ＪＰＥＧ等の可変長符号化方式にも適用することができる。次に、ＪＰＥＧのハフマン符号化に適用した場合の例を示す。
【００９５】
図１３に、本実施形態における画像符号化装置の構成ブロック図を示す。本実施形態の画像符号化装置は、画像入力部１１０と、ＤＣＴ部１１２と、量子化部１１４と、ハフマン（Ｈｕｆｆｍａｎ）符号化部１１６と、符号出力部１２６を備える。ハフマン符号化部１１６は、さらに、符号決定部１１８と、付加ビット数算出部１２２と、ビットパッキング部１２０と、符号合成部１２４を備える。
【００９６】
画像入力部１１０は、画像データを取得する。
【００９７】
ＤＣＴ部１１２は、取得した画像データのブロックにＤＣＴ（離散コサイン変換）を実行して量子化部１１４に出力する。
【００９８】
量子化部１１４は、ＤＣＴの係数を量子化してハフマン符号化部１１６に出力する。
【００９９】
ハフマン符号化部１１６の符号決定部１１８は、量子化部１１４での量子化結果に対して割り当てる符号を決定する。ハフマン符号化部１１６の付加ビット数算出部１２２は、割り当てた符号に応じて付加ビット数を決定する。ここで、付加ビットとは、符号決定部１１８で割り当てた符号、すなわちシンボル群の特定値を示すデータのビットを意味する。本実施形態における付加ビット数が、第１実施形態における有効ビット数に相当する。ハフマン符号化部１１６のビットパッキング部１２０は、付加ビット数算出部１２２で決定された付加ビットを用いてビットをパッキングする。ハフマン符号化部１２４の符号合成部１２４は、符号決定部１１８で決定された符号と、ビットパッキング部１２０でパッキングされたビットを合成することで符号化された画像データを生成し、符号出力部１２６に出力する。
【０１００】
次に、本実施形態の符号化処理について、具体的に説明する。
【０１０１】
図１４に、図１３の構成における符号化処理の具体例を示す。画像入力部１１０で取得し、ＤＣＴ部１１２でＤＣＴ（離散コサイン変換）して得られた結果のＤＣＴ値が、例えば「０」，「−１３」，「−１」，「６」であるとする。なお、実際にはＤＣ値はブロックの先頭で１つしか出現せず、その後に複数のＡＣ値が連続するので、このように各ブロックのＤＣ値が続くことはないが、説明の都合上、ＡＣ値を無視してＤＣ値のみを例示している。もちろん、本実施形態の処理は、ＤＣ値のみならずＡＣ値にも同様に適用できることは言うまでもない。
【０１０２】
符号決定部１１８は、これらのＤＣ値を符号化するが、図１４に併せて示す符号化テーブルを参照すると、ＤＣ値「０」は符号化すると「００」となる。また、付加ビット数は０である。同様に、ＤＣ値「−１３」は符号化すると「１０１」となる。図において、ＤＣ値が「−１５，−１４，−１３，−１２，−１１，−１０，−９，−８，、８，９，１０，１１，１２，１３，１４，１５」の場合、これらは「１０１」に符号化されることを示し、このためＤＣ値「−１３」もこのテーブルに従って「１０１」に符号化されることを矢印で示す。符号化テーブルには、符号例とともにデフォルトの付加ビット数が括弧付で示されている。ＤＣ値「−１３」の属するグループの付加ビット数のデフォルト値は「４」である。一方、本実施形態では、この付加ビット数を所定のビット数に制限することで符号量の上限を抑制する。例えば、図１４の符号化テーブルに示すように、付加ビット数を「２」に制限する。従って、付加ビット数算出部１２２は、ＤＣ値「−１３」に対する付加ビット数を、デフォルトの「４」から「２」に変更する。また、ビットパッキング部１２０では、付加ビット数が「４」から「２」に変更されたことに従い、付加ビットを２ビットで表現する。具体的には、ＤＣ値「−１３」の付加ビットが「００１０」であるとして、このうちの下位２ビットを切り捨て、上位の２ビットのみを抽出して「００」とする。
【０１０３】
また、ＤＣ値「−１」は、符号化テーブルに従って「０１０」に符号化され、デフォルトの付加ビット数は「１」であるため付加ビット数算出部１２２はこの値をそのまま維持する。また、ビットパッキング部１２０でも、付加ビットを１ビットのまま「０」とする。なお、付加ビットは、より詳しくは、そのグループで小さい方から何番目かを示すものであり、−１の属するグループはー１、１であり、−１は小さい方から１番目であるから「０」となる。因みに、「−４」の属するグループでは、「−７」の付加ビットは「０００」、「−６」の付加ビットが「００１」、「−５」の付加ビットが「０１０」、「−４」の付加ビットが「０１１」、「４」の付加ビットが「１００」、「５」の付加ビットが「１０１」、「６」の付加ビットが「１１０」等である。
【０１０４】
また、ＤＣ値「６」は、符号化テーブルに従って「１００」に符号化され、デフォルトの付加ビット数は「３」であるが、付加ビット数算出部１２２は付加ビット数を「２」に制限する。また、ビットパッキング部１２０では、付加ビット数が「３」から「２」に変更されたことに従い、付加ビットを２ビットで表現する。具体的には、ＤＣ値「６」の付加ビットが「１１０」であるから、下位１ビットを切り捨て、上位の２ビットのみを抽出して「１１」とする。
【０１０５】
以上のようにして符号決定部１１８で符号が決定され、ビットパッキング部１２０で付加ビットのパッキングが実行されると、符号合成部１２４ではこれらのビットを合成する。ＤＣ値「０」の場合、符号化結果は「０」であり、付加ビット数は０であるから、符号合成部１２４での合成結果も「０」のままである。
【０１０６】
ＤＣ値「−１３」の場合、符号化結果は「１０１」であり、付加ビットは「００」であるから、これらを合成すると「１０１００」となる。デフォルトでは付加ビット数は４であるため、デフォルトでは合成結果も７ビットとなるところ、本実施形態では合成結果は５ビットに抑制される。
【０１０７】
ＤＣ値「−１」の場合、符号化結果は「０１０」であり、付加ビットは「０」であるから、これらを合成すると「０１００」となる。
【０１０８】
ＤＣ値「６」の場合、符号化結果は「１００」であり、付加ビットは「１１」であるから。これらを合成すると「１００１１」となる。デフォルトでは付加ビット数は３であるため、デフォルトでは合成結果も６ビットとなるところ、本実施系値では５ビットに抑制される。
【０１０９】
なお、符号化テーブルからも分かるように、ＤＣ値の絶対値が増大する程、デフォルトの付加ビット数が４ビット、５ビット、６ビット、・・・と増大するため、本実施形態における付加ビット数の制限による符号量の抑制効果が大きくなる。また、図１４の符号化テーブルには、付加ビット数を２ビットに制限した場合の、各グループにおける量子化ＤＣ値例も併せて示す。例えば、ＤＣ値「−４」の属するグループでは、付加ビット数が「３」から「２」に制限されるため、当該グループに属するＤＣ値の数は８個から４個に制限される。このため、量子化ＤＣ値としては、例えば「−７」，「−５」，「５」，、「７」の４個となる。同様に、ＤＣ値「−１３」の属するグループでは、付加ビット数が「４」から「２」に制限されるため、当該グループに属するＤＣ値の数も４個に制限される。このため、量子化ＤＣ値としては、例えば「−１４」，「−１０」，「１０」，「１４」の４個となる。
【０１１０】
図１５に、従来の一般的な符号量制御装置の機能ブロック図と、本実施形態における画像符号化装置の符号量制御機能のブロック図とを対比して示す。一般的に、符号量を制御する際には、ハフマン符号化された符号化データを入力し、ハフマン符号化データを伸長し、逆量子化し、その後に再量子化してハフマン再圧縮するという工程を経る。これに対し、本実施形態では、上記のようにハフマン符号を切り出して、付加ビットのうちの下位ビットを切り捨てるという工程を行うだけで済む。すなわち、付加ビット数を所定数、例えば２ビットに制限し、付加ビット数が２ビットを超える場合には、下位ビットを切り捨てて上位２ビットのみを抽出するだけで済む。従って、本実施形態では従来の一般的な符号量制御装置の構成に対して簡易な構成となり、かつ、従来のように逆量子化した後に再量子化するという工程を経ないので、再量子化誤差が累積しない効果もある。
【０１１１】
本実施形態では、付加ビット数を２ビットに固定的に制限しているが、グループ番号（ＳＳＳＳ）に応じて付加ビット数の制限値を適応的に変化させてもよい。
【０１１２】
図１６に、付加ビット数をグループ番号（ＳＳＳＳ）に応じて変化させる場合の一例を示す。図において、「本発明例１」は、上記のように付加ビット数を「２」に制限する場合であり、「本発明例２」は、グループ番号（ＳＳＳＳ）に応じて付加ビット数を「２」または「３」に設定する。具体的には、ＳＳＳＳ＝３〜５では付加ビット数を「３」に制限し、ＳＳＳＳ＝６その他では付加ビット数を「２」に制限する。もちろん、これは例示であり、デフォルトの付加ビット数よりも小さいビット数に制限するとの思想の下で任意の付加ビット数を設定し得る。
【符号の説明】
【０１１３】
１０  画像入力部、１２  予測部、１４  予測誤差算出部、１６  予測誤差符号化部、１８  ビット数算出部、２０  ビットパッキング部、２２  ビット数符号化部、２４  符号出力部、５０  符号入力部、５２  符号切り出し部、５４  ビット数復号部、５６  ビットアンパッキング部、５８  予測誤差加算部、６０  予測部、６２  画像出力部、１１０  画像入力部、１１２  ＤＣＴ部、１１４  量子化部、１１６  ハフマン符号化部、１１８  符号決定部、１２０  ビットパッキング部、１２２  付加ビット算出部、１２４  符号合成部、１２６  符号出力部。
【図１】
2013223206.tif 000003
【図２】
2013223206.tif 000004
【図３】
2013223206.tif 000005
【図４】
2013223206.tif 000006
【図５】
2013223206.tif 000007
【図６】
2013223206.tif 000008
【図７】
2013223206.tif 000009
【図８】
2013223206.tif 000010
【図９】
2013223206.tif 000011
【図１０】
2013223206.tif 000012
【図１１】
2013223206.tif 000013
【図１２】
2013223206.tif 000014
【図１３】
2013223206.tif 000015
【図１４】
2013223206.tif 000016
【図１５】
2013223206.tif 000017
【図１６】
2013223206.tif 000018