(57)【特許請求の範囲】
【請求項１】
画像を符号化して生成されたビットストリームを復号する画像復号装置であって、当該ビットストリームに含まれる、前記画像内の復号対象のブロックに対応する符号化データを復号する画像復号装置であって、
前記復号対象のブロックが予測符号化されているか、パレット符号化されているかを判定する第１判定手段と、
前記第１判定手段によって前記復号対象のブロックがパレット符号化されていると判定された場合に、前記復号対象のブロック内の画素がエスケープ符号化されているか否かを判定する第２判定手段と、
前記第１判定手段によって前記復号対象のブロックが予測符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを用いて前記復号対象のブロックを復号し、
前記第１判定手段によって前記復号対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定手段によって前記復号対象のブロック内の画素がエスケープ符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記復号対象のブロックを復号する復号手段と
を備え、
前記ビットストリームから復号される前記情報は、
前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、
前記復号手段は、
前記第３量子化パラメータに前記差分を加算することで、前記第１量子化パラメータを導出し、
当該第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで、前記第２量子化パラメータを導出する
ことを特徴とする画像復号装置。
【請求項２】
前記第１判定手段によって前記復号対象のブロックが予測符号化されていると判定された場合に、前記復号対象のブロックに対応する符号化データを復号することにより変換係数を取得し、前記ビットストリームに含まれる前記第１量子化パラメータを用いて、前記取得した変換係数に対して逆量子化処理を施す第２復号手段を備える
ことを特徴とする請求項１に記載の画像復号装置。
【請求項３】
前記復号手段は、前記復号対象のブロック内の画素の画素値に対応する符号化データを復号することにより前記画素の画素値を取得し、前記第２量子化パラメータを用いて、前記取得した画素値に対して逆量子化処理を施す
ことを特徴とする請求項１又は２に記載の画像復号装置。
【請求項４】
更に、前記第２判定手段によって前記復号対象のブロック内の画素がエスケープ符号化されていないと判定された場合、前記パレット符号化する場合に用いられたパレットのインデックスを示すデータを復号することによって、前記復号対象のブロック内の画素の画素値を復号する第２の復号手段を有する
ことを特徴とする請求項１〜３のいずれか１項に記載の画像復号装置。
【請求項５】
前記復号手段は、前記第２判定手段によって前記復号対象のブロック内の画素がエスケープ符号化されていると判定された場合、前記パレットを用いずに、前記復号対象のブロック内の画素の画素値を復号する
ことを特徴とする請求項４に記載の画像復号装置。
【請求項６】
前記第２量子化パラメータは、前記復号対象のブロックに対応する符号化データのビット深度及び／又は、画素値の取り得る範囲と予測誤差の取り得る範囲との違いに基づいて、前記第１量子化パラメータを補正することで得られる
ことを特徴とする請求項１〜５のいずれか１項に記載の画像復号装置。
【請求項７】
前記第２量子化パラメータは、量子化ステップを１以上にするよう前記第１量子化パラメータを補正することで得られる
ことを特徴とする請求項１〜６のいずれか１項に記載の画像復号装置。
【請求項８】
更に、前記復号対象のブロックが量子化又は逆量子化されているか否かを判定する第３判定手段を有し、
前記第２判定手段によって前記復号対象のブロック内の画素がエスケープ符号化された場合であって、且つ、前記第３判定手段によって前記復号対象のブロックが量子化又は逆量子化されていないと判定された場合、前記第１量子化パラメータは符号化又は復号されない
ことを特徴とする請求項１〜７のいずれか１項に記載の画像復号装置。
【請求項９】
画像内の符号化対象のブロックを符号化する画像符号化装置であって、
前記符号化対象のブロックを予測符号化するか、パレット符号化するかを判定する第１判定手段と、
前記第１判定手段によって前記符号化対象のブロックをパレット符号化すると判定された場合に、前記符号化対象のブロック内の画素をエスケープ符号化するか否かを判定する第２判定手段と、
前記第１判定手段によって前記符号化対象のブロックが予測符号化すると判定された場合、第１量子化パラメータを用いて前記符号化対象のブロックを符号化し、
前記第１判定手段によって前記符号化対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定手段によって前記符号化対象のブロック内の画素をエスケープ符号化すると判定された場合、前記第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する符号化手段と
を備え、
前記符号化手段は、前記第２の量子化パラメータを用いて前記符号化対象のブロックを符号化する場合であっても、前記第１の量子化パラメータを導出するための情報を符号化し、
前記第１の量子化パラメータを導出するための前記情報は、
前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、
前記符号化手段は、
前記第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで得られる前記第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する
ことを特徴とする画像符号化装置。
【請求項１０】
更に、前記第１判定手段によって前記符号化対象のブロックを予測符号化すると判定された場合に、前記符号化対象のブロックに予測処理及び直交変換処理を施すことにより変換係数を取得し、当該取得した変換係数に対して前記第１量子化パラメータを用いて量子化処理を施す第２符号化手段を備える
ことを特徴とする請求項９に記載の画像符号化装置。
【請求項１１】
前記符号化手段は、前記符号化対象のブロック内の画素の画素値に対して、前記第２量子化パラメータを用いて量子化処理を施す
ことを特徴とする請求項９又は１０に記載の画像符号化装置。
【請求項１２】
更に、前記第２判定手段によって前記符号化対象のブロックをエスケープ符号化すると判定された場合、前記パレット符号化する場合に用いられるパレットのインデックスを示すデータを符号化することによって、前記符号化対象のブロックを符号化する第２の符号化手段を有する
ことを特徴とする請求項９〜１１のいずれか１項に記載の画像符号化装置。
【請求項１３】
前記符号化手段は、前記第２判定手段によって前記符号化対象のブロック内をエスケープ符号化すると判定された場合、前記パレットを用いずに、前記符号化対象のブロックを符号化する
ことを特徴とする請求項１２に記載の画像符号化装置。
【請求項１４】
前記第２量子化パラメータは、前記符号化対象のブロックのビット深度及び／又は、画素値の取り得る範囲と予測誤差の取り得る範囲との違いに基づいて、前記第１量子化パラメータを補正することで得られる
ことを特徴とする請求項９〜１３のいずれか１項に記載の画像符号化装置。
【請求項１５】
前記第２量子化パラメータは、量子化ステップを１以上にするよう前記第１量子化パラメータを補正することで得られる
ことを特徴とする請求項９〜１４のいずれか１項に記載の画像符号化装置。
【請求項１６】
更に、前記符号化対象のブロックが量子化又されるか否かを判定する第３判定手段を有し、
前記第２判定手段によって前記符号化対象のブロックがエスケープ符号化される場合であって、且つ、前記第３判定手段によって前記符号化対象のブロックが量子化されると判定された場合、前記第１量子化パラメータは符号化されない
ことを特徴とする請求項９〜１５のいずれか１項に記載の画像符号化装置。
【請求項１７】
画像を符号化して生成されたビットストリームを復号する画像復号方法であって、当該ビットストリームに含まれる、前記画像内の復号対象のブロックに対応する符号化データを復号する画像復号方法であって、
前記復号対象のブロックが予測符号化されているか、パレット符号化されているかを判定する第１判定工程と、
前記第１判定工程によって前記復号対象のブロックがパレット符号化されていると判定された場合に、前記復号対象のブロック内の画素がエスケープ符号化されているか否かを判定する第２判定工程と、
前記第１判定工程によって前記復号対象のブロックが予測符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを用いて前記復号対象のブロックを復号し、
前記第１判定工程によって前記復号対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定工程によって前記復号対象のブロック内の画素がエスケープ符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記復号対象のブロックを復号する復号工程と
を有し、
前記ビットストリームから復号される前記情報は、
前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、
前記復号工程において、
前記第３量子化パラメータに前記差分を加算することで、前記第１量子化パラメータを導出し、
当該第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで、前記第２量子化パラメータを導出する
ことを特徴とする画像復号方法。
【請求項１８】
画像内の符号化対象のブロックを符号化する画像符号化方法であって、
前記符号化対象のブロックを予測符号化するか、パレット符号化するかを判定する第１判定工程と、
前記第１判定工程によって前記符号化対象のブロックをパレット符号化すると判定された場合に、前記符号化対象のブロック内の画素をエスケープ符号化するか否かを判定する第２判定工程と、
前記第１判定工程によって前記符号化対象のブロックが予測符号化すると判定された場合、第１量子化パラメータを用いて前記符号化対象のブロックを符号化し、
前記第１判定工程によって前記符号化対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定工程によって前記符号化対象のブロック内の画素をエスケープ符号化すると判定された場合、前記第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する符号化工程と
を備え、
前記符号化工程において、前記第２の量子化パラメータを用いて前記符号化対象のブロックを符号化する場合であっても、前記第１の量子化パラメータを導出するための情報を符号化し、
前記第１の量子化パラメータを導出するための前記情報は、
前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、
前記符号化工程において、
前記第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで得られる前記第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する
ことを特徴とする画像符号化方法。
【請求項１９】
請求項１〜８のいずれか１項に記載の画像復号装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【請求項２０】
請求項９〜１６のいずれか１項に記載の画像符号化装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像の符号化技術、及び復号技術に関し、特に動画像において、画素をパレットテーブルにある限られた数の色に置き換えて符号化及び復号するパレット符号化技術に関する。
【背景技術】
【０００２】
動画像の圧縮記録の符号化方式として、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）符号化方式（以下、ＨＥＶＣ）が知られている。そして、ＨＥＶＣの拡張仕様として、カメラなどで撮影された画像とは異なる人工画の圧縮効率を高めることを可能にするスクリーンコンテント符号化（ＳＣＣ：Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ）の規格化が検討されている。
【０００３】
そして、スクリーンコンテント符号化において、パレット符号化という技術が提案されている（特許文献１）。パレット符号化では、予め決められた数の色をパレットテーブルとして登録する。そして、入力された画素の値（画素値）を、パレットテーブルの色と比較し該当する色をパレットテーブル上のインデックスで示し、当該インデックスを符号化する。尚、パレット符号化においては、色の数に限りがあるため、パレットテーブルに登録された色では表せない色が含まれる場合がある。このような色をエスケープ色と呼び、エスケープ色については画素値を必要に応じて量子化したものを符号化する。この符号化方法をエスケープ符号化と称する。
【０００４】
また、スクリーンコンテント符号化が主な対象としているコンピュータ画面などでは人工画と写真などの撮影された画像が混在する。撮影された画像については従来からの予測符号化が有効である。予測符号化は、イントラ予測（画面内予測）及びインター予測（画面間予測符号化）を行い、これらの予測によって生成された予測誤差を変換し、量子化して符号化する符号化方式である。そこで、スクリーンコンテント符号化では、符号化単位（例えばブロック単位）毎に、パレット符号化を行うか、予測符号化を行うかを切り替えることができる。以下、パレット符号化を行うブロックをパレット符号化ブロックと称し、予測符号化を行うブロックを非パレット符号化ブロックと称する。このように、パレット符号化と予測符号化とを切り替えることにより、画面内（ピクチャ内）に非自然画像の部分と自然画像の部分とが混在する場合であっても、適応的に符号化することができる。
【０００５】
また、量子化で用いられる量子化パラメータは、画質・符号量を制御することができるパラメータである。例えば、量子化パラメータの値を大きくするほど符号量を減少させることができ、量子化パラメータの値を小さくするほど画質を高くすることができる。
【０００６】
スクリーンコンテント符号化の規格化において、パレット符号化ブロックを符号化・復号する際に用いる量子化パラメータを、非パレット符号化ブロックを符号化・復号する際に用いる量子化パラメータと同じパラメータとすることが標準案に採用されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】ＷＯ２０１４／１６５７８４Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、１つの量子化パラメータをエスケープ符号化と予測符号化に用いることにより、符号化効率が低下する場合がある。即ち、パレット符号化ブロックのエスケープ符号化では量子化パラメータを用いて画素値を量子化する。これに対して、非パレット符号化ブロックの予測符号化では量子化パラメータを用いて予測誤差乃至変換係数を量子化する。尚、変換係数は、予測誤差を直交変換した係数である。また、以後、変換係数を量子化したものを変換量子化係数と呼ぶ。そして、画素値と予測誤差乃至変換係数は画面内における取りうる範囲（領域）が異なる。また、画素値と変換係数とでは、値の性質も全く異なっている。以上のことから、１つの量子化パラメータで画素値と変換係数の両方を制御することは困難であり、効率的な符号化が行えない場合がある。以上のことから、パレット符号化におけるエスケープ符号化と、非パレット符号化（予測符号化）において、適切な量子化パラメータと用いて符号化・復号可能な画像符号化装置及び画像復号装置を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本発明の画像復号装置は、以下の構成を有する。即ち、画像を符号化して生成されたビットストリームを復号する画像復号装置であって、当該ビットストリームに含まれる、前記画像内の復号対象のブロックに対応する符号化データを復号する画像復号装置であって、前記復号対象のブロックが予測符号化されているか、パレット符号化されているかを判定する第１判定手段と、前記第１判定手段によって前記復号対象のブロックがパレット符号化されていると判定された場合に、前記復号対象のブロック内の画素がエスケープ符号化されているか否かを判定する第２判定手段と、前記第１判定手段によって前記復号対象のブロックが予測符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを用いて前記復号対象のブロックを復号し、前記第１判定手段によって前記復号対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定手段によって前記復号対象のブロック内の画素がエスケープ符号化されていると判定された場合、前記ビットストリームから復号される情報に基づいて前記復号対象のブロックに対応する第１量子化パラメータを導出し、その第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記復号対象のブロックを復号する復号手段とを備え、前記ビットストリームから復号される前記情報は、前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、前記復号手段は、前記第３量子化パラメータに前記差分を加算することで、前記第１量子化パラメータを導出し、当該第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで、前記第２量子化パラメータを導出する。
【００１０】
また、本発明の画像符号化装置は、以下の構成を有する。即ち、画像内の符号化対象のブロックを符号化する画像符号化装置であって、前記符号化対象のブロックを予測符号化するか、パレット符号化するかを判定する第１判定手段と、前記第１判定手段によって前記符号化対象のブロックをパレット符号化すると判定された場合に、前記符号化対象のブロック内の画素をエスケープ符号化するか否かを判定する第２判定手段と、前記第１判定手段によって前記符号化対象のブロックが予測符号化すると判定された場合、第１量子化パラメータを用いて前記符号化対象のブロックを符号化し、前記第１判定手段によって前記符号化対象のブロックがパレット符号化されていると判定された場合であって、前記第２判定手段によって前記符号化対象のブロック内の画素をエスケープ符号化すると判定された場合、前記第１量子化パラメータを補正することで得られる第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する符号化手段とを備え、前記符号化手段は、前記第２の量子化パラメータを用いて前記符号化対象のブロックを符号化する場合であっても、前記第１の量子化パラメータを導出するための情報を符号化し、前記第１の量子化パラメータを導出するための前記情報は、前記第１量子化パラメータよりも前の量子化パラメータ、又は、当該前の量子化パラメータに基づく量子化パラメータのいずれかである第３量子化パラメータと、前記復号対象のブロックに対応する前記第１量子化パラメータとの差分を示す情報であり、前記符号化手段は、前記第１量子化パラメータと所定のオフセット値に基づく所定の演算を行って前記第１量子化パラメータを補正することで得られる前記第２量子化パラメータを用いて、前記符号化対象のブロックを符号化する。
【発明の効果】
【００１１】
パレット符号化におけるエスケープ符号化と、非パレット符号化（予測符号化）とのそれぞれに適応的に量子化パラメータを用いることができる。即ち、エスケープ符号化と予測符号化とにおいて同一の量子化パラメータを用いる場合と比較して、それぞれに適応した異なる量子化パラメータを用いることができ、その結果、符号化効率を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１及び実施形態３に係る画像復号装置の構成例を示すブロック図
【図２】実施形態１の一例における画像復号処理を示すフローチャート
【図３】実施形態２及び実施形態４に係る画像符号化装置の構成を示すブロック図
【図４】実施形態２における画像符号化処理を示すフローチャート
【図５】実施形態３における画像復号処理を示すフローチャート
【図６】実施形態４における画像符号化処理を示すフローチャート
【図７】画像符号化装置、及び画像復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図
【図８】実施形態１の他の例における画像復号処理を示すフローチャート
【発明を実施するための形態】
【００１３】
以下、添付の図面を参照して、本発明をその実施形態の一例に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、図示された構成に限定されるものではない。また、以下の各実施形態では動画像の圧縮記録の符号化方式としてＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）符号化方式をベースに用いる場合について記載するが、これに限定されず、他の符号化方式を用いても構わない。また、以下の各実施形態において、パレットテーブルは、画素の色情報を示す画素値に関する情報を含み、パレットテーブルに含まれる画素値に関する情報にはインデックスが付されている。尚、画素の色情報を示す画素値に関する情報には、ＲＧＢやＹＣｂＣｒなどの色空間における画素値に関する情報等がある。
【００１４】
（実施形態１）
以下、本実施形態に係る画像復号装置について図面を参照して説明する。まず、本実施形態における画像復号装置１００の構成について、図１を用いて説明する。図１は、本実施形態に係る画像復号装置１００の構成を示すブロック図である。図１において、分離部１０１は、画像復号装置１００に入力されたビットストリームから、ヘッダ及び符号データを分離する。ここで、本実施形態において符号データは、ブロック単位の画素を構成する。ヘッダ復号部１０２は、分離部１０１で分離されたヘッダを復号する。即ち、ヘッダ復号部１０２は、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ等のヘッダ情報を復号し、後段の各部に出力する。エントロピー復号部１０３は、分離部１０１で分離された符号データを復号し、画素を構成する情報を取得する。
【００１５】
セレクタ１０４は、外部（ヘッダ復号部１０２）からの入力に基づいて、ヘッダ復号部１０２及びエントロピー復号部１０３の復号結果の出力先をパレット復号部１０５又は予測誤差復号部１１１のいずれかから選択する。即ち、セレクタ１０４は、ヘッダ復号部１０２から出力される、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の復号結果に基づいて、前段のエントロピー復号部１０３の復号結果の出力先を選択する。尚、本実施形態においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号がビットストリームに含まれるか否かを示す符号である。また、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号は、ブロックがパレット符号化ブロックであるか非パレット符号化ブロックであるかを表す符号である。
【００１６】
パレット復号部１０５は、エントロピー復号部１０３で復号された、復号対象のブロック内の各画素のパレットテーブル上のインデックスを表すｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号を復号し、インデックスを再生（再構成）する。そして、パレット復号部１０５は、再構成したインデックスに基づいて、エントロピー復号部１０３の復号結果の出力先をパレット参照部１０８かエスケープ復号部１１０のいずれかから選択する。例えば、パレットテーブルに登録されているインデックスの数がＮ個（以下、このＮをパレットサイズの値と呼称する）である場合、各パレット（色）を０からＮ−１のインデックスで示すことができる。また、エスケープ符号化をＮのインデックスで示すことができる。即ち、エスケープ符号化を示すインデックスは、パレットテーブルに含まれるインデックスの個数（Ｎ）及びパレットテーブルに含まれる色の個数（Ｎ−１）に基づく。パレット復号部１０５は、再構成したインデックスがＮ（０からＮ−１以外）である場合に、復号対象の符号データがエスケープ符号化された画素のデータであるとして処理する。
【００１７】
ＱＰ復号部１０６は、スライスヘッダに含まれるｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号や、各ブロック単位の符号データに含まれる量子化パラメータの更新に関する符号を復号し、量子化パラメータを再構成する。ｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号は、スライスにおける量子化パラメータの初期値を表す。量子化パラメータの更新に関する符号にはｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号がある。前者は量子化パラメータの差分の絶対値を表し、後者は量子化パラメータの差分の符号を表す。画像復号装置１００は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号とｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号とに基づいて量子化パラメータを更新する。ＱＰメモリ１０７は、ＱＰ復号部１０６で復号された量子化パラメータを保持する。
【００１８】
パレット参照部１０８は、パレット復号部１０５で復号されたｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号の復号結果であるインデックスを入力し、インデックスに該当する（対応する）パレットテーブル上の画素値に関する情報を読み出し、再生画素値として出力する。尚、本実施形態において再生画素値は、復号対象の画素を復号した結果である画素値を示す。ＱＰ補正部１０９は、ＱＰ復号部１０６で復号された量子化パラメータをエスケープ符号化されたブロックを復号する際に用いる量子化パラメータに補正する。エスケープ復号部１１０は、エスケープ符号化された符号データを復号し、逆量子化を行って再生画素値として出力する。ここで、本実施形態においてパレット復号部１０５によってｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号の値がパレットサイズの値と等しいと判断された場合に、エスケープ復号部１１０は、次の処理を行う。即ち、エスケープ復号部１１０は、続くｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号を復号し、量子化された画素値を再生（再構成）する。さらに、エスケープ復号部１１０は、ＱＰ補正部１０９から量子化パラメータの補正値ＱＰｐ（補正量子化パラメータ）を入力し、逆量子化を行って再生画素値を生成する。予測誤差復号部１１１は、エントロピー復号部１０３を経由して入力されたブロックの符号化データを復号し、変換量子化係数を再生（再構成）する。さらに、予測誤差復号部１１１は、再生した変換量子化係数に対して逆量子化及び逆直交変換を行い、予測誤差データを再生（再構成）する。
【００１９】
画素予測再構成部１１２は、エントロピー復号部１０３で復号された予測モード、動きベクトル等の情報に基づいて、ピクチャメモリ１１５に格納された復号済みの画像データに予測処理を施す。そして、画素予測再構成部１１２は、復号済みの画像データを予測した結果（予測画像データ）と、予測誤差復号部１１１で再構成された予測誤差データとを加算し、画素値を再生する。画素再構成部１１３は、パレット参照部１０８又はエスケープ復号部１１０で再生された再生画素値を入力し、復号対象のブロックを復号した画像データとして再構成する。復号画像バッファ１１４は、画素再構成部１１３で再構成された、復号対象のブロックを復号した画像データを、スライス単位で外部への出力のために一時的に格納する。また、参照に必要な画素データは逐次、ピクチャメモリ１１５に出力される。ピクチャメモリ１１５は、再生された画像データを予測符号化に用いられる参照画像として格納する。
【００２０】
次に、図２を用いて、本実施形態の画像復号装置１００における画像の復号処理を説明する。図２は、本実施形態における画像復号装置１００で実行される画像復号処理の手順を示すフローチャートである。図２に示すフローチャートの処理は、画像復号装置１００の起動が完了し、復号するビットストリームが決定された後に開始される。
【００２１】
ステップＳ２０１において分離部１０１は、動画像のシーケンスの仕様を表すヘッダ情報であるシーケンスパラメータセット（ＳＰＳ：Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）の符号データをヘッダ復号部１０２に入力する。そして、ステップＳ２０１においてヘッダ復号部１０２は、分離部１０１から入力されたＳＰＳの符号データを復号する。尚、本実施形態においてＳＰＳには、画像のサイズ、最大のブロックサイズ等の情報が含まれる。また本実施形態におけるＳＰＳには、拡張されたパラメータセットとして、動画像のシーケンスにパレット符号化を使った符号が含まれる可能性を示すｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が含まれる。ここで、本実施形態において、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１である場合に、ヘッダ復号部１０２はスライス内にパレット符号化されたブロックが含まれている可能性があると判断する。一方、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０である場合に、ヘッダ復号部１０２は、スライス内にパレット符号化されたブロックが含まれていないと判断する。そして、ヘッダ復号部１０２は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値をエントロピー復号部１０３に出力する。
【００２２】
さらに、ステップＳ２０１においてエントロピー復号部１０３は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値に応じてブロック単位でｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号を復号する。即ち、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１の場合、エントロピー復号部１０３はｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を復号し、復号したｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値をセレクタ１０４に出力する。一方、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０であれば、エントロピー復号部１０３はｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を復号せず、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値として０をセレクタ１０４に出力する。そしてセレクタ１０４は、エントロピー復号部１０３から入力されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１であればエントロピー復号部１０３の復号結果の出力先をパレット復号部１０５とする。一方、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０であれば、セレクタ１０４はエントロピー復号部１０３の復号結果の出力先を予測誤差復号部１１１とする。
【００２３】
ステップＳ２０２において分離部１０１は、動画像の各ピクチャの仕様を表すピクチャパラメータセット（ＰＰＳ：Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）の符号データをヘッダ復号部１０２に入力する。そして、ステップＳ２０２においてヘッダ復号部１０２は、分離部１０１から入力されたＰＰＳの符号データを復号する。尚、本実施形態においてＰＰＳには、ブロック単位での量子化パラメータの更新の可否を表すｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が含まれる。さらに、本実施形態においてＰＰＳには、逆直交変換と逆量子化を行わないバイパス処理が行われる可能性を表すｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が含まれる。ヘッダ復号部１０２は、これらのｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号及びｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値をエントロピー復号部１０３に入力する。
【００２４】
ステップＳ２０３において画像復号装置１００は、動画像の各ピクチャ単位の復号を行うループを開始する。以下、ステップＳ２２４まで、画像復号装置１００はピクチャ内の処理を行い、動画像のシーケンスに含まれる全てのピクチャの復号が終了するまでそれぞれのピクチャを復号する。
【００２５】
ステップＳ２０４において画像復号装置１００は、復号対象のピクチャの各スライス単位の復号を行うループを開始する。以下、ステップＳ２２５まで、画像復号装置１００はスライス内の処理を行い、復号対象のピクチャに含まれる全てのスライスの復号が終了するまでそれぞれのスライスを復号する。
【００２６】
ステップＳ２０５において分離部１０１は、動画像のスライスの仕様を表すヘッダ情報であるスライスヘッダの符号データをヘッダ復号部１０２に入力する。ヘッダ復号部１０２は、分離部１０１から入力されたスライスヘッダの符号データを復号する。ここで、本実施形態におけるスライスヘッダには、復号対象のスライス内の各ブロックの逆量子化に使用される量子化パラメータの初期値を計算するのに用いられるｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号が含まれている。ヘッダ復号部１０２は、スライスヘッダの符号データを復号することにより、ｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号の値を取得する。即ち、ヘッダ復号部１０２は、スライスヘッダに含まれるｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号を復号し、ｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号の値を取得する。そして、ヘッダ復号部１０２は、取得したｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号の値をＱＰ復号部１０６へ出力する。
【００２７】
さらに、ステップＳ２０５においてＱＰ復号部１０６は、ヘッダ復号部１０２から入力されたｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号の値に基づいて量子化パラメータＱＰ（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）を算出する。尚、本実施形態において、量子化パラメータＱＰの値の算出に関しては、ＨＥＶＣ符号化方式の方法を用いることとする。そして、ＱＰ復号部１０６は、算出した量子化パラメータＱＰをＱＰメモリ１０７、ＱＰ補正部１０９、及び予測誤差復号部１１１に出力する。ＱＰメモリ１０７は、入力された量子化パラメータＱＰをブロック単位で格納する。
【００２８】
ステップＳ２０６において画像復号装置１００は、復号対象のスライス内の各ブロック単位の復号を行うループを開始する。以下、ステップＳ２２３まで、画像復号装置１００はブロック内の処理を行い、復号対象のスライスに含まれる全てのブロックの復号が終了するまでそれぞれのブロックを復号する。
【００２９】
ステップＳ２０７において分離部１０１は、ブロック単位で符号データをエントロピー復号部１０３に入力する。ステップＳ２０７においてエントロピー復号部１０３は、分離部１０１から入力されたブロックの符号データを復号する。ここで、エントロピー復号部１０３は、ステップＳ２０２にて復号したＰＰＳに含まれるｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が１であれば、次の処理を行う。即ち、エントロピー復号部１０３は、ブロックの符号データに含まれるｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号を復号する。尚、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号は、復号対象のブロックの逆量子化及び逆直交変換を行わないか行うか（スキップするか否か）を示している。本実施形態において、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１の場合にブロックの符号データをエントロピー復号して算出された予測誤差に逆量子化及び逆直交変換を行わないことを示す。また、０の場合にブロックの符号データをエントロピー復号して算出された予測誤差に逆量子化及び逆直交変換を行うことを示す。
【００３０】
また、ステップＳ２０７においてエントロピー復号部１０３は、復号対象のブロックに予測処理を施す際に用いる予測モードを復号する。エントロピー復号部１０３は、復号した予測モードがイントラ予測モードである場合に、ステップＳ２０１においてヘッダ復号部１０２によって復号されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を取得（参照）する。エントロピー復号部１０３は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１である場合に、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号を復号し、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を生成する。エントロピー復号部１０３は、生成したｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値に基づいて、復号対象のブロックがパレット符号化ブロックであるのか、非パレット符号化ブロックであるのかを判定する。即ち、本実施形態においてエントロピー復号部１０３は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合に、復号対象のブロックがパレット符号化ブロックであることを表す。ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合に、復号対象のブロックが非パレット符号化ブロックであることを表す。また、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０であれば、ビットストリーム内にｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号は存在せず、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値は０と仮定される。
【００３１】
そして、エントロピー復号部１０３は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１であり、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号がスライスヘッダにあればこれらの符号を復号する。ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇがスライスヘッダにある場合、量子化パラメータが更新されていることを示す。そして、エントロピー復号部１０３は、復号したｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値と、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値をＱＰ復号部１０６に出力する。
【００３２】
ステップＳ２０８においてＱＰ復号部１０６は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値がエントロピー復号部１０３から入力されたか否かを判定する。ＱＰ復号部１０６は、これらの符号が入力された場合に量子化パラメータＱＰの更新が行われると判断し、ステップＳ２０９に進む。一方、ＱＰ復号部１０６は、これらの符号の値が入力されなかった場合にステップＳ２１０に進む。
【００３３】
ステップＳ２０９においてＱＰ復号部１０６は、エントロピー復号部１０３から入力されたｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号を復号する。即ち、ＱＰ復号部１０６は、これらの符号を復号することによって、復号対象のブロックと、当該復号対象のブロックの直前に復号されたブロックとの量子化パラメータの差分値を示す誤差ΔＱＰを再構成する。そして、ＱＰ復号部１０６は、ＱＰメモリ１０７に格納されている量子化パラメータであって、復号対象のブロックの直前のブロックを復号（量子化）するために用いられた量子化パラメータＱＰ＿ｐｒｅｖを取得（参照）する。さらに、ＱＰ復号部１０６は、再構成した誤差ΔＱＰと、取得した量子化パラメータＱＰ＿ｐｒｅｖとを加算して、復号対象のブロックの量子化に用いる量子化パラメータＱＰを生成（更新）する。そして、ＱＰ復号部１０６は、更新した量子化パラメータＱＰをＱＰメモリ１０７に出力し、ＱＰメモリ１０７は入力された量子化パラメータＱＰを格納する。また、ＱＰ復号部１０６は、更新した量子化パラメータＱＰを、ＱＰ補正部１０９及び予測誤差復号部１１１に出力する。
【００３４】
尚、参照する量子化パラメータＱＰ＿ｐｒｅｖは、直前に復号されたブロックの量子化パラメータＱＰ＿ｐｒｅｖに限らず、復号済みの複数のブロックの量子化に用いられた量子化パラメータに基づいて生成された値をＱＰ＿ｐｒｅｖとして用いても構わない。例えば、ＱＰメモリ１０７に格納されている複数の量子化パラメータから、復号対象のピクチャにおける復号対象のブロックの上に位置するブロックと左に位置するブロックの各量子化パラメータの平均値をＱＰ＿ｐｒｅｖとして用いても構わない。
【００３５】
ステップＳ２１０においてエントロピー復号部１０３は、復号対象のブロックがパレット符号化ブロックであるか、非パレット符号化ブロックであるかを判定する。本実施形態にてエントロピー復号部１０３は、ヘッダ復号部１０２によって復号されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値に基づいて、復号対象のブロックがパレット符号化ブロックであるか非パレット符号化ブロックであるかを判定することができる。即ち、エントロピー復号部１０３は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１であれば、復号対象のブロックはパレット符号化ブロックであると判定し、ステップＳ２１１の処理へ進む。一方、エントロピー復号部１０３は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０であれば、復号対象のブロックは非パレット符号化ブロックであると判定し、ステップＳ２１８の処理へ進む。また、ステップＳ２１０においてセレクタ１０４は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値に基づいて、ヘッダ復号部１０２及びエントロピー復号部１０３の復号結果の出力先を決定する。即ち、セレクタ１０４は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合に、出力先としてパレット復号部１０５を指定し、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合に、出力先として予測誤差復号部１１１を指定する。
【００３６】
まず、復号対象のブロックがパレット符号化ブロックである場合（ステップＳ２１０においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合）の処理について説明する。
【００３７】
ステップＳ２１１においてＱＰ補正部１０９は、ＱＰメモリ１０７からＱＰ復号部１０６を介して入力された量子化パラメータＱＰを補正し、量子化パラメータの補正値ＱＰｐを算出する。そして、ＱＰ補正部１０９は、算出した量子化パラメータの補正値ＱＰｐをエスケープ復号部１１０に出力する。ＱＰ補正部１０９によって算出された量子化パラメータの補正値ＱＰｐは、エスケープ符号化された符号データを復号する場合に、逆量子化のために用いられる。尚、ＱＰ補正部１０９は、算出した量子化パラメータの補正値ＱＰｐを保持する。
【００３８】
ここで、ＱＰ補正部１０９が量子化パラメータの補正値ＱＰｐを算出する方法について説明する。ＱＰ補正部１０９は、以下の（１）式に示すように、ＱＰ復号部１０６から入力された量子化パラメータＱＰに、予め決められた値ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴを加算することによって量子化パラメータを補正する。尚、ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴは、復号される画像データのビット深度、及び／又は画素値と予測誤差との取りうる値の範囲の違いに基づいて算出（設定、決定）することができる。
【００３９】
ＱＰｐ＝ＱＰ＋ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴ  …（１）
ステップＳ２１２において画像復号装置１００は、各画素単位の復号を行うループを開始する。以下、ステップＳ２１６まで、画像復号装置１００は、復号対象のブロック内の画素単位で処理を行い、復号対象のブロックに含まれる全ての画素の復号が終了するまでそれぞれの画素を復号する。
【００４０】
ステップＳ２１３においてパレット復号部１０５は、画素毎ｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号を復号し、インデックスを再生する。
【００４１】
ステップＳ２１４においてパレット復号部１０５は、復号対象のブロック内の復号対象の画素が、パレット符号化されているかエスケープ符号化されているかを判断する。本実施形態のステップＳ２１４においてパレット復号部１０５は、ステップＳ２１３で再構成したインデックスの値がパレットサイズの値未満であれば、復号対象の画素がパレット符号化されていると判断し、ステップＳ２１５の処理へ進む。さらに、復号対象の画素がパレット符号化されている場合（ステップＳ２１４のＹＥＳ）、パレット復号部１０５は再構成したインデックスをパレット参照部１０８に出力する。一方、ステップＳ２１４において、ステップＳ２１３で再構成したインデックスの値がパレットサイズの値と等しければ、パレット復号部１０５は復号対象の画素がエスケープ符号化されていると判断し、ステップＳ２１６の処理へ進む。さらに、復号対象の画素がエスケープ符号化されている場合（ステップＳ２１４のＮＯ）、パレット復号部１０５は、ｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号の後に続くｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号をエスケープ復号部１１０に入力する。尚、本実施形態のステップＳ２１４にてパレット復号部１０５は、ステップＳ２１３で再構成されたインデックスの値とパレットサイズの値とを比較することによって、復号対象の画素がパレット符号化されているかエスケープ符号化されているかを判定した。しかしながら、復号対象の画素がパレット符号化されているかエスケープ符号化されているかの判定方法は、これに限定されない。即ち、本実施形態のステップＳ２１４においてパレット復号部１０５は、ステップＳ２１３で再構成されたインデックスの値とパレットテーブルに含まれるインデックスとに基づいて判定する方法を用いても構わない。
【００４２】
ステップＳ２１５においてパレット参照部１０８は、ステップＳ２１４においてパレット復号部１０５によって復号されたインデックスを参照し、そのインテックスが指し示す（対応する）パレットテーブルに登録されている色を示す画素値を再生画素値とする。そして、パレット参照部１０８は再構成した再生画素値を画素再構成部１１３に出力し、画素再構成部１１３は入力した再生画素値を復号対象のブロック内の適合する位置に格納する。
【００４３】
ステップＳ２１６においてエスケープ復号部１１０は、ブロックの符号データに含まれるｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号を復号して、量子化された画素値（エスケープ量子化係数）を再生（再構成）する。尚、本実施形態においてエスケープ復号部１１０は、エントロピー復号部１０３からセレクタ１０４及びパレット復号部１０５を介して、ｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号を取得する。さらに、ステップＳ２１６においてエスケープ復号部１１０は、ステップＳ２１１においてＱＰ補正部１０９によって補正された量子化パラメータの補正値ＱＰｐを用いて量子化ステップを算出する。そして、エスケープ復号部１１０は、算出した量子化ステップを用いて、量子化された画素値を逆量子化し、画素値（再生画素値）を再構成する。画素再構成部１１３は再構成した再生画素値を復号対象のブロック内の適合する位置に格納する。
【００４４】
ステップＳ２１７において画素再構成部１１３は、復号対象のブロック内の全ての画素について復号処理が行われたか否かを判定する。画素再構成部１１３は、全ての画素の復号処理が行われたと判断した場合に、再生された画素値を復号画像バッファ１１４に出力する。そして、復号画像バッファ１１４は、画素再構成部１１３から入力されるブロック単位の画素値である再構成された画像を、ピクチャメモリ１１５に適宜出力する。一方、ステップＳ２１７において画素再構成部１１３が、復号対象のブロック内の全ての画素の復号処理が行われていないと判断した場合に、画像復号装置１００はステップＳ２１２に戻り、復号した画素の次の画素の復号処理を行う。
【００４５】
次に、復号対象のブロックが非パレット符号化ブロックである場合（ステップＳ２１０においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合）の処理について説明する。
【００４６】
ステップＳ２１８において予測誤差復号部１１１は、エントロピー復号部１０３からセレクタ１０４を介して、予測誤差の変換量子化係数の符号データを入力する。そして、予測誤差復号部１１１は入力した予測誤差の変換量子化係数の符号データを復号して、変換量子化係数を再構成する。ここで、変換量子化係数とは、画像を符号化する符号化装置において、画像に予測処理を施して算出された予測誤差に、直交変換及び量子化を施すことにより算出される係数である。
【００４７】
ステップＳ２１９において予測誤差復号部１１１は、ステップＳ２１８において再構成した変換量子化係数に対して逆量子化を行い、変換係数（直交変換係数）を再構成する。さらに、予測誤差復号部１１１は、再構成した変換係数に逆直交変換を施し、予測誤差を再構成する。予測誤差復号部１１１は、再構成した予測誤差を画素予測再構成部１１２に出力する。尚、本実施形態において予測誤差復号部１１１は、ステップＳ２０５又はステップＳ２０９においてＱＰ復号部１０６によって算出された量子化パラメータＱＰを用いて量子化ステップを算出し、算出した量子化ステップを用いて変換量子化係数を逆量子化する。
【００４８】
ステップＳ２２０において画素予測再構成部１１２は、エントロピー復号部１０３で復号された情報に基づいて、ピクチャメモリ１１５に格納された復号済みの画像データに予測処理を施し、予測画像データを生成する。ここで、画素予測再構成部１１２は、エントロピー復号部１０３で復号された、符号化モード、イントラ予測モード、動きベクトル等、予測処理を行う場合に用いられる情報を取得する。そして画素予測再構成部１１２は、取得した予測処理を行う場合に用いられる情報に基づいて、ピクチャメモリ１１５に格納された画素値を参照して予測画像データを生成する。
【００４９】
ステップＳ２２１において画素予測再構成部１１２は、ステップＳ２２０において生成した予測画像データと、ステップＳ２１９において予測誤差復号部１１１で再構成された予測誤差とを加算し、画素値を再構成する。そして、画素予測再構成部１１２は、再構成した画素値を、復号画像バッファ１１４に出力する。復号画像バッファ１１４は、画素再構成部１１３で再構成された、復号対象のブロックを復号した画像データを、ピクチャメモリ１１５に適宜出力する。
【００５０】
ステップＳ２２２において復号画像バッファ１１４は、復号対象のスライス内の全てのブロックについて復号処理が行われたか否かを判定する。復号画像バッファ１１４は、全てのブロックの復号処理が行われたと判断した場合に、再構成された画像データをスライス単位で、画像復号装置１００の外部に適宜出力する。一方、ステップＳ２２２において復号画像バッファ１１４が、復号対象のスライス内の全てのブロックの復号処理が行われていないと判断した場合に、画像復号装置１００はステップＳ２０６に戻り、復号したブロックの次のブロックの復号処理を行う。
【００５１】
ステップＳ２２３において復号画像バッファ１１４は、復号対象のピクチャ内の全てのスライスについて復号処理が行われたか否かを判定する。復号画像バッファ１１４が、全てのスライスの復号処理が行われたと判断した場合に、画像復号装置１００はステップＳ２２４に進む。一方、ステップＳ２２３において復号画像バッファ１１４が、復号対象のピクチャ内の全てのスライスの復号処理が行われていないと判断した場合に、画像復号装置１００はステップＳ２０４に戻り、復号したスライスの次のスライスの復号処理を行う。
【００５２】
ステップＳ２２４において分離部１０１は、画像復号装置１００に入力された全てのピクチャについて復号処理が行われたか否かを判定する。即ち、分離部１０１は、画像復号装置１００内に、未だ復号されていない符号データがあるか否かを判定する。ステップＳ２２４において分離部１０１が、入力された全てのピクチャの復号処理が行われたと判断した場合に、画像復号装置１００は画像の復号処理を終了する。一方、ステップＳ２２４において分離部１０１が、全てのピクチャの復号処理が行われていないと判断した場合に、画像復号装置１００はステップＳ２０３に戻り、復号したピクチャの次のピクチャの復号処理を行う。
【００５３】
上述したように、本実施形態における画像復号装置１００の構成及び画像の復号処理により、非パレット符号化（予測符号化）における予測誤差の逆量子化と、パレット符号化における画素値の逆量子化において、適応的に量子化パラメータを用いる。即ち、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに対して、異なる量子化パラメータを用いることも可能である。このように、本実施形態における画像復号装置１００は、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに適した量子化パラメータを用いて、復号処理ができる。このため、本実施形態によって画像復号装置１００は、パレット符号化ブロックと非パレット符号化ブロックとに同じ量子化パラメータを用いる場合と比較して符号化効率を向上させることができる。
【００５４】
また、特にパレット符号化ブロックに関しては、処理される画像データのビット深度、及び／又は画素値と、予測誤差との取り得る値の範囲の違いを考慮して、復号処理をすることができる。
【００５５】
また、本実施形態において画像復号装置１００は、非パレット符号化ブロックに用いる量子化パラメータを補正して、パレット符号化ブロックを逆量子化するために用いられる量子化パラメータを生成することができる。即ち、ブロックに対する１つの量子化パラメータからパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータを生成することができる。このため、符号化装置側でパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータをビットストリームに挿入しておく必要がなく、符号量の増加を抑制することができる。
【００５６】
尚、本実施形態において、量子化パラメータＱＰの補正において、上述の（１）式に示すように、予め決められた値ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴを加算して補正を行ったが、これに限定されない。例えば、以下の（２）式に示すように予め決められた値を積算したり、（３）式に示すように予め決められた値だけ量子化パラメータの値をシフトしたりして、量子化パラメータＱＰを補正しても構わない。
【００５７】
ＱＰｐ＝ＱＰ＊ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴ  …（２）
ＱＰｐ＝ＱＰ＜＜ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴ  …（３）
さらに、量子化パラメータＱＰの補正において、予め決められた固定値（ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴ）を用いることに限定されず、可変の値を用いてもよい。例えば、ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴが可変の値である場合、符号化側でシーケンスパラメータセットのヘッダにＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴを符号化した符号データを挿入する。即ち、復号側ではヘッダ復号部１０２が当該符号データを復号することによって、補正時に加えるＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴを取得することができ、量子化パラメータの補正値ＱＰｐを算出することができる。このことから、画像復号装置１００は、上述した（２）式及び（３）式に示すＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴとして可変の値を用いて、量子化パラメータの補正値ＱＰｐを算出することもできる。
【００５８】
また、本実施形態において画像復号装置１００は、量子化パラメータＱＰを用いてパレット符号化と非パレット符号化とに対するそれぞれの量子化パラメータを同時に制御したが、これに限定されない。即ち、パレット符号化における量子化パラメータと非パレット符号化における量子化パラメータとを、個別に予め用意しておいても構わない。この場合、画像復号装置１００は、復号対象のブロックがパレット符号化ブロック又は非パレット符号化ブロックのどちらであるかを判断し、予め用意されていたいずれかの量子化パラメータを用いて復号処理を行っても構わない。
【００５９】
次に、非パレット符号化ブロックが続いた後、パレット符号化ブロックが続きその後に非パレット符号化ブロックが続く場合について、画像復号装置１００の処理を以下に説明する。この場合、パレット符号化ブロックの前後の非パレット符号化ブロックで同じような画質の制御を行うために、画像復号装置１００は、非パレット符号化ブロックが続いた後、パレット符号化ブロックに変わるブロックの量子化パラメータを更新する。このように量子化パラメータを更新することにより、パレット符号化ブロックと非パレット符号化ブロックで独立して量子化パラメータを制御することができる。さらに、その後、画像復号装置１００は、パレット符号化ブロックが続いた後、非パレット符号化ブロックに変わるブロックの量子化パラメータを、パレット符号化ブロックの前の非パレット符号化ブロックで用いた量子化パラメータに戻す必要がある。即ち、画像復号装置１００は、量子化パラメータを再度更新する必要である。
【００６０】
また、パレット符号化ブロックで量子化パラメータが更新された場合、パレット符号化ブロックの先頭のブロックで更新された量子化パラメータを考慮し、当該パレット符号化ブロックの後の非パレット符号化ブロックで量子化パラメータを更新する必要がある。即ち、パレット符号化ブロックの先頭のブロックで更新された量子化パラメータ、及び／又は更新前後の量子化パラメータの差分値を常に保持する必要があり、処理負荷が増大する場合がある。また、これらの量子化パラメータを符号化・復号しなければならないため、符号化効率が低下する場合がある。
【００６１】
上述したように、パレット符号化ブロックで量子化パラメータが更新された場合を考慮して、画像復号装置１００は次のような処理を行ってもよい。即ち、画像復号装置１００は、仮の量子化パラメータＱＰｔを設け、初期値としてＱＰ復号部１０６が算出した量子化パラメータＱＰを仮の量子化パラメータＱＰｔに複写（設定）する。そして、画像復号装置１００は、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０であればｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値に基づいて量子化パラメータＱＰを更新する。一方、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１であれば、画像復号装置１００はｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値に基づいて仮の量子化パラメータＱＰｔを更新する。この処理において、仮の量子化パラメータＱＰｔはパレット符号化ブロックのみで使われるため、画像復号装置１００はステップＳ２１１において、上述した（１）式の代わりに次の式（１´）式を用いる。
【００６２】
ＱＰｐ＝ＱＰｔ＋ＰＡＬＥＴＴＥ＿ＥＳＣＡＰＥ＿ＱＰ＿ＤＥＦＡＵＬＴ＿ＯＦＦＳＥＴ  …（１´）
このように仮の量子化パラメータＱＰｔを設けることにより、画像復号装置１００は、パレット符号化ブロックで量子化パラメータが更新された場合において、パレット符号化ブロックの先頭のブロックで更新された量子化パラメータを保持する必要がなくなる。また、画像復号装置１００は、更新前後の量子化パラメータの差分値を保持する必要もなくなる。
【００６３】
尚、本実施形態において画像復号装置１００は、図２に示すフローチャートの処理に基づいて画像復号処理を行ったが、これに限定されない。例えば、画像復号装置１００は、図８に示すフローチャートの処理に基づいて画像復号処理を行うことも可能である。図８に示す例においてＱＰ復号部１０６は、量子化パラメータＱＰの他に仮の量子化パラメータＱＰｔを保持する点で図２のフローチャートの処理と異なる。
【００６４】
ステップＳ２０５においてＱＰ復号部１０６は、算出した初期値である量子化パラメータＱＰを仮の量子化パラメータＱＰｔの初期値として複写（設定）する。
【００６５】
ステップＳ２１０において、エントロピー復号部１０３が復号対象のブロックはパレット符号化ブロックであると判定した場合に、画像復号装置１００はステップＳ８０１に進む。一方、ステップＳ２１０において、エントロピー復号部１０３が復号対象のブロックは非パレット符号化ブロックであると判定した場合に、画像復号装置１００はステップＳ８０３に進む。
【００６６】
ステップＳ８０１においてＱＰ復号部１０６は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値の有無によって、量子化パラメータの更新が行われるか否かを判定する。ＱＰ復号部１０６が量子化パラメータの更新が行われたと判定した場合に、画像復号装置１００はステップＳ８０２に進み、ＱＰ復号部１０６が量子化パラメータの更新が行われなかったと判定した場合に、画像復号装置１００はステップＳ８１１に進む。
【００６７】
ステップＳ８０２においてＱＰ復号部１０６は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値に基づいて、ステップＳ２０５で複写した仮の量子化パラメータＱＰｔを更新する。
【００６８】
ステップＳ８１１においてＱＰ補正部１０９は、（１´）式に基づき、量子化パラメータの補正値ＱＰｐを算出する。
【００６９】
ステップＳ８０３においてＱＰ復号部１０６は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値の有無によって、量子化パラメータの更新が行われるか否かを判定する。ＱＰ復号部１０６が量子化パラメータの更新が行われたと判定した場合に、画像復号装置１００はステップＳ８０４に進み、ＱＰ復号部１０６が量子化パラメータの更新が行われなかったと判定した場合に画像復号装置１００はステップＳ２１８に進む。
【００７０】
ステップＳ８０４にてＱＰ復号部１０６は、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値に基づいて、ステップＳ２０５で複写した量子化パラメータＱＰを更新する。
【００７１】
上述した図８の処理により、同じｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値を用いて、パレット符号化と非パレット符号化のそれぞれに適応した量子化パラメータの更新を行うことができる。
【００７２】
尚、本実施形態において、１つの処理対象のブロックに対して１つの量子化パラメータＱＰを扱うように記述したが、これに限定されない。例えば、輝度、色差毎に量子化パラメータを独立に用いても構わない。
【００７３】
また、本実施形態において、量子化パラメータの差分を符号化する際に、直前のブロックの量子化パラメータを参照値（予測値）として使用する例を示したが、これに限定されない。例えば、ブロックの左と上のブロックの量子化パラメータの平均値を参照値としても構わない。
【００７４】
（実施形態２）
以下、本実施形態に係る画像符号化装置について図面を参照して説明する。まず、本実施形態における画像符号化装置３００の構成について図３を用いて説明する。図３は、本実施形態に係る画像符号化装置３００の構成を示すブロック図である。図３において、ピクチャバッファ３０１は、符号化対象の画像データをピクチャ単位で一時的に蓄積する。ブロック分割部３０２は、ピクチャバッファから入力されたピクチャから、符号化対象のブロックを切り出す。
【００７５】
設定部３０３は、符号化対象のブロックに対するパレット符号化の可否、直交変換・量子化処理の省略（スキップ）の可否、ブロック単位での量子化パラメータの制御（調整）の可否を決定する。ここで、設定部３０３は、シーケンスでのパレット符号化利用の可能性の有無に関して、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を出力する。直交変換・量子化のスキップ処理の可否に関して、ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を出力する。また、設定部３０３は、ブロック単位での量子化パラメータの調整の可否に関して、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を出力する。
【００７６】
パレット判定部３０４は、ブロック分割部３０２から出力されるブロックの画像データに対して、パレット符号化を行うか否かを判定する。パレット判定部３０４は、設定部３０３から出力されるｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１であれば、パレット符号化を行うか否かの判定結果としてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号を出力する。一方、設定部３０３から出力されるｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０であれば、パレット判定部３０４はｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を０とする。セレクタ３０５は、パレット判定部３０４から出力されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値に基づいて、ブロック分割部３０２から出力されるブロック単位の画像データの出力先を決定する。パレット判定部３０４から出力されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１であれば、セレクタ３０５は入力されたブロック単位の画素値を画素判定部３０６に入力する。一方、パレット判定部３０４から出力されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０であれば、セレクタ３０５は入力されたブロック単位の画像値を予測誤差生成部３１３に入力する。
【００７７】
画素判定部３０６は、ブロック分割部３０２からセレクタ３０５を介して入力されたブロックの画素値に関し、パレット符号化を行うか、エスケープ符号化を行うかを決定する。即ち、画素判定部３０６は、入力された画素の画素値が、パレットテーブルに登録された色の画素値であるか否かを判定する。そして、画素判定部３０６は、入力された画素の画素値がパレットテーブルに含まれる色の画素値であれば、当該画素の画像データをパレット符号化部３１０に出力し、そうでなければ、当該画素の画像データをエスケープ符号化部３１２に出力する。
【００７８】
ここで、本実施形態においてパレットテーブルは画素判定部３０６に保持されている。即ち、画素判定部３０６は保持しているパレットテーブルに含まれる色の情報と、入力された画素の画像データとを比較して、当該画素の画像データがパレットテーブルに含まれる色と一致するか否かを判定する。尚、パレットテーブルが保持されている処理部は画素判定部３０６に限定されず、他の処理部がパレットテーブルを保持していても構わない。即ち、他の処理部が、保持しているパレットテーブルと画素判定部３０６に入力された画素の画像データとを比較し、比較結果に関する情報を画素判定部３０６が取得しても構わない。また、画素判定部３０６が他の処理部で保持されているパレットテーブルを取得して、入力された画素の画像データと比較しても構わない。
【００７９】
レート制御部３０７は、統合部３１８によって生成された符号データのデータ量に基づいて、符号データのレートを制御するために量子化パラメータＱＰを算出する。ＱＰ設定・更新部３０８は、レート制御部３０７によって算出された量子化パラメータＱＰを符号化するための処理を行う。まず、ＱＰ設定・更新部３０８は、レート制御部３０７によって算出された量子化パラメータＱＰに基づいて、スライス単位で量子化パラメータＱＰの初期値を決定する。尚、ＱＰ設定・更新部３０８により決定された量子化パラメータＱＰは、符号化対象のスライスの先頭のブロック（最初に符号化されるブロック）の量子化パラメータＱＰとされる。そして、ＱＰ設定・更新部３０８は、決定した量子化パラメータをヘッダ符号化部３１６に入力する。ヘッダ符号化部３１６でｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号が符号化されてスライスヘッダに挿入される。さらに、ＱＰ設定・更新部３０８は、処理対象のブロックの量子化パラメータを前のブロックで用いた量子化パラメータから更新（変更）する場合に、処理対象のブロックと前のブロックとで用いられる各量子化パラメータの差分値を算出する。尚、処理対象のブロックの量子化パラメータを前のブロックで用いた量子化パラメータとの差分値はｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号の値、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の値であり、エントロピー符号化部３１７で符号化される。
【００８０】
ＱＰメモリ３０９は、ＱＰ設定・更新部３０８によって決定された量子化パラメータＱＰを保持する。パレット符号化部３１０は、ブロック分割部３０２からセレクタ３０５を介して入力された画素値を示すインデックスを決定する。ここで、画素値を示すインデックスは、パレットテーブルに含まれる色のうち画素値に対応する色を示すインデックスである。ＱＰ補正部３１１は、レート制御部３０７によって算出された量子化パラメータを補正し、エスケープ符号化における量子化で用いる量子化パラメータの補正値ＱＰｐを生成する。エスケープ符号化部３１２は、ＱＰ補正部３１１によって生成された量子化パラメータの補正値ＱＰｐを用いて、符号化対象のブロックの量子化を行う。画素再構成部３１９は、パレット符号化部３１０およびエスケープ符号化部３１２で符号化された画素を局所復号（再構成）し、再生画素値を生成する。
【００８１】
予測誤差生成部３１３は、ブロック単位で予測モードを決定し、決定した予測モードに基づいて予測誤差を生成する。尚、予測誤差生成部３１３は、決定した予測モードの他にも、イントラ予測モードや動きベクトル等の情報を画素予測再構成部３１４やエントロピー符号化部３１７へ出力する。画素予測再構成部３１４は、予測誤差生成部３１３にから出力された予測モード、動きベクトル等の情報に基づいて、ピクチャメモリ３１５に格納された画素値を予測値（予測処理で参照される参照値）として取得する。そして、画素予測再構成部３１４は、予測誤差生成部３１３によって生成された予測誤差とピクチャメモリ３１５から取得した予測値とを加算し、再生画素値を生成する。
【００８２】
ピクチャメモリ３１５は、画素再構成部３１９で生成された再生画素値、及び、画素予測再構成部３１４で生成された再生画素値を格納する。
【００８３】
ヘッダ符号化部３１６は、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ等のヘッダ情報を符号化する。エントロピー符号化部３１７は、ブロック単位での符号を符号化する。統合部３１８は、ヘッダ符号化部３１６によって生成された符号データとエントロピー符号化部３１７によって生成された符号データを統合し、ビットストリームを生成し、画像符号化装置３００の外部に出力する。
【００８４】
次に、図４を用いて、本実施形態の画像符号化装置３００における画像の符号化処理を説明する。図４は、本実施形態における画像符号化装置３００で実行される画像符号化処理の手順を示すフローチャートである。図４に示すフローチャートの処理は、画像符号化装置３００の起動が完了し、符号化する動画像の画像データが決定された後に開始される。
【００８５】
ステップＳ４０１において設定部３０３は、符号化の仕様として、画像のサイズ、最大ブロックサイズ等の情報を決定し、決定した情報をヘッダ符号化部３１６に出力する。また、ステップＳ４０１において設定部３０３は、画像符号化装置３００に入力された動画像のシーケンスに対してパレット符号化を用いる可能性があるか否かを決定する。そして、設定部３０３は、決定結果に基づいてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を設定する。本実施形態において設定部３０３は、パレット符号化を可能性がある用いる場合にｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を１とする。一方、本実施形態において設定部３０３は、パレット符号化を用いる可能性がない場合にｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を０とする。
【００８６】
また、ステップＳ４０１において設定部３０３は、ブロック単位での量子化パラメータの更新を行うか（更新が可能か）否かを決定し、決定した結果に基づいてｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を設定する。本実施形態において設定部３０３は、量子化パラメータの更新を行う場合にｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を１とし、更新を行わない場合にｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を０とする。さらに、ステップＳ４０１において設定部３０３は、直交変換と量子化を行わないバイパス処理を行うか否かを決定し、決定した結果に基づいてｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を設定する。本実施形態において設定部３０３は、バイパス処理を用いる可能性がある場合にはｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を１とする。一方、バイパス処理を用いる可能性がない場合にはｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を０とする。
【００８７】
ステップＳ４０２においてヘッダ符号化部３１６は、動画像のシーケンスの仕様を表すヘッダ情報であるＳＰＳを符号化する。即ち、本実施形態においてヘッダ符号化部３１６は、画像のサイズ、最大ブロックサイズ等の情報が含まれるＳＰＳを符号化する。さらに、ヘッダ符号化部３１６は、ステップＳ４０１において設定部３０３によって生成されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号をＳＰＳの符号として符号化する。
【００８８】
ステップＳ４０３においてヘッダ符号化部３１６は、動画像の各ピクチャの仕様を表すＰＰＳを符号化する。本実施形態においてＰＰＳには、ブロック単位での量子化パラメータの更新の可否を表す情報、及びバイパス処理が行われる可能性を表す情報が含まれる。即ち、ステップＳ４０３にてヘッダ符号化部３１６は、ステップＳ４０１にて設定部３０３によって生成されたｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号、及びｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を符号化する。
【００８９】
尚、本実施形態のステップＳ４０１及びステップＳ４０２においてヘッダ符号化部３１６は、符号化した結果であるヘッダ情報に関する符号データを統合部３１８に入力する。
【００９０】
ステップＳ４０４において画像符号化装置３００は、動画像の各ピクチャ単位の符号化を行うループを開始する。以下、ステップＳ４２８まで、画像符号化装置３００はピクチャ内の処理を行い、動画像のシーケンスに含まれる全てのピクチャの符号化が終了するまでそれぞれのピクチャを符号化する。
【００９１】
ステップＳ４０５において画像符号化装置３００は、符号化対象のピクチャの各スライス単位の符号化を行うループを開始する。以下、ステップＳ４２７まで、画像符号化装置３００はスライス内の処理を行い、符号化対象のピクチャに含まれる全てのスライスの符号化が終了するまでそれぞれのスライスを符号化する。
【００９２】
ステップＳ４０６においてヘッダ符号化部３１６は、動画像のスライスの仕様を表すヘッダ情報であるスライスヘッダの符号化を行う。尚、本実施形態においてスライスヘッダには、各ブロックの量子化に使用される量子化パラメータＱＰの初期値を表すｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号が含まれている。そして、ヘッダ符号化部３１６は、ｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号を含むスライスヘッダの符号データを統合部３１８に出力する。
【００９３】
尚、ｓｌｉｃｅ＿ｑｐ＿ｄｅｌｔａ符号は、ＱＰ設定・更新部３０８によって、レート制御部３０７で決定された量子化パラメータの初期値に基づいて生成される。ここで、本実施形態においてレート制御部３０７は、符号化に先立ち、目標のビットレートになるように量子化パラメータＱＰの初期値を決定する。さらに、レート制御部３０７は、量子化パラメータＱＰの初期値をＱＰ設定・更新部３０８、ＱＰ補正部３１１、及び予測誤差生成部３１３へ出力する。また、レート制御部３０７で決定された量子化パラメータＱＰの初期値はＱＰメモリ３０９で保持される。
【００９４】
ステップＳ４０７において画像符号化装置３００は、符号化対象のスライス内の各ブロック単位の符号化を行うループを開始する。以下、ステップＳ４２６まで、画像符号化装置３００はブロック内の処理を行い、符号化対象のスライスに含まれる全てのブロックの符号化が終了するまでそれぞれのブロックを符号化する。ブロック分割部３０２は走査順にピクチャバッファ３０１から符号化するブロックの画像データを取得し、パレット判定部３０４及びセレクタ３０５に出力する。
【００９５】
ステップＳ４０８においてパレット判定部３０４は、ブロック分割部３０２から出力された符号化対象のブロックの画像データに対して、パレット符号化を行うか否かを判定する。ここで、パレット判定部３０４は、設定部３０３から出力されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値に基づいて、符号化対象のブロックの画像データをパレット符号化するか否かを判定する。即ち、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０であれば、パレット判定部３０４はパレット符号化を行うか否かの判定を行わない。そして、パレット判定部３０４はｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号に０を設定し、後段の処理部に出力する。一方、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１であれば、パレット判定部３０４はパレット符号化を行うか否かを判定する。尚、本実施形態においてパレット判定部３０４は、パレット符号化を行うか否かの判定を、ブロック内の画素値の分布などの特徴量に基づいて決定することができる。そして、パレット判定部３０４は、判定結果をｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号としてＱＰ設定・更新部３０８、ＱＰ補正部３１１、及び予測誤差生成部３１３に出力する。本実施形態においてパレット判定部３０４は、符号化対象のブロックをパレット符号化する場合にｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を１に設定する。一方、パレット判定部３０４は、符号化対象のブロックをパレット符号化しない場合にｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値を０に設定する。
【００９６】
ステップＳ４０９においてレート制御部３０７は、統合部３１８によって生成された符号化済みの符号データのデータ量に基づいて、符号データのレートを制御するために量子化パラメータＱＰを決定する。例えば、符号化済みの符号データのデータ量が所定の上限値より大きい場合には、量子化パラメータＱＰの値を前の量子化パラメータの値よりも大きくなるよう更新（変更）する。一方、符号データのデータ量が所定の下限値より小さい（又は下限値以下）場合には、量子化パラメータＱＰの値を前の量子化パラメータの値よりも小さくなるよう更新する。また、符号化済みの符号データのデータ量が適量である場合（所定の下限値以上であって所定の上限値以下である場合）には、量子化パラメータを更新せずに前の量子化パラメータを量子化パラメータＱＰとして決定しても構わない。
【００９７】
ステップＳ４１０にてＱＰ設定・更新部３０８は、ステップＳ４０９にてレート制御部３０７により決定された量子化パラメータＱＰに基づき、量子化パラメータＱＰが前のブロックの量子化パラメータＱＰ＿ｐｒｅｖから更新（変更）されたか否かを判定する。ステップＳ４１０において量子化パラメータＱＰが更新された場合に、画像符号化装置３００はステップＳ４１１の処理に進み、量子化パラメータＱＰが更新されなかった場合に、画像符号化装置３００はステップＳ４１２の処理に進む。
【００９８】
ステップＳ４１１においてＱＰ設定・更新部３０８は、ＱＰメモリ３０９に保持されている、前のブロックで用いられた量子化パラメータＱＰ＿ｐｒｅｖを取得（参照）する。そして、ＱＰ設定・更新部３０８は、取得した量子化パラメータＱＰ＿ｐｒｅｖと、レート制御部３０７によって決定（更新）された量子化パラメータＱＰとの差分値を算出する。さらに、ＱＰ設定・更新部３０８は、算出した差分値をｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号としてエントロピー符号化部３１７に出力する。また、ＱＰ設定・更新部３０８は、レート制御部３０７によって決定された量子化パラメータＱＰをＱＰメモリ３０９に出力し、ＱＰメモリ３０９はＱＰ設定・更新部３０８から出力された当該量子化パラメータＱＰを格納する。
【００９９】
ここで、ＱＰ設定・更新部３０８は、符号化対象のブロックの直前に符号化されたブロックを量子化に用いられた量子化パラメータを、量子化パラメータＱＰ＿ｐｒｅｖとして用いてもよい。尚、直前に符号化されたブロックの量子化パラメータＱＰ＿ｐｒｅｖに限らず、符号化済みの複数のブロックの量子化に用いられた量子化パラメータに基づいて生成された値をＱＰ＿ｐｒｅｖｔとして用いても構わない。即ちＱＰメモリ３０９に格納されている複数の量子化パラメータから、符号化対象のピクチャにおいて符号化対象のブックの左に位置するブロックと上に位置するブロックの各量子化パラメータの平均値をＱＰ＿ｐｒｅｖｔとして用いても構わない。
【０１００】
ステップＳ４１２においてセレクタ３０５は、符号化対象のブロックをパレット符号化するか否かを判定する。即ち、セレクタ３０５は、ステップＳ４０８においてパレット判定部３０４によって決定されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値に基づいて、符号化対象のブロックがパレット符号化ブロックであるか非パレット符号化ブロックであるかを判定する。ステップＳ４１２において符号化対象のブロックがパレット符号化ブロックであると判定された場合（ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合）、画像符号化装置３００はステップＳ４１４の処理に進む。尚、この場合（符号化対象のブロックがパレット符号化ブロックである場合）、セレクタ３０５は符号化対象のブロックの画像データを画素判定部３０６に出力する。一方、ステップＳ４１２において符号化対象のブロックが非パレット符号化ブロックであると判定された場合（ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合）、画像符号化装置３００はステップＳ４２１の処理に進む。尚、この場合（符号化対象のブロックが非パレット符号化ブロックである場合）、セレクタ３０５は符号化対象のブロックの画像データを予測誤差生成部３１３に出力する。
【０１０１】
まず  符号化対象のブロックがパレット符号化ブロックである場合（ステップＳ４１２においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合）の処理について説明する。
【０１０２】
ステップＳ４１３においてＱＰ補正部３１１は、ステップＳ４０９においてレート制御部３０７によって決定された量子化パラメータＱＰを取得する。そして、ＱＰ補正部３１１は、取得した量子化パラメータＱＰを補正し、量子化パラメータの補正値ＱＰｐを算出する。そして、ＱＰ補正部３１１は、算出した量子化パラメータの補正値ＱＰｐをエスケープ符号化部３１２に出力する。即ち、ステップＳ４１３においてＱＰ補正部３１１によって算出された量子化パラメータの補正値ＱＰｐは、符号化対象のブロックをエスケープ符号化部３１２によってエスケープ符号化する場合の量子化において用いられる。尚、本実施形態においてＱＰ補正部３１１は、量子化パラメータの補正値ＱＰｐを算出（補正）する方法として、実施形態１において示した（１）式を用いる。尚、量子化パラメータの補正値ＱＰｐの算出方法はこれに限定されず、実施形態１において示した（２）式乃至（３）式を用いても構わないし、他の方法を用いても構わない。
【０１０３】
ステップＳ４１４においてエントロピー符号化部３１７は、ステップＳ４０８においてパレット判定部３０４によって設定されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を符号化する。ここでは、符号化対象のブロックはパレット符号化を行うパレット符号化ブロックであるため、パレット判定部３０４によって設定されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値は１である。
【０１０４】
ステップＳ４１５において画像符号化装置３００は、各画素単位の符号化を行うループを開始する。以下、ステップＳ４２０まで、画像符号化装置３００は、符号化対象のブロック内の画素単位で処理を行い、符号化対象のブロックに含まれる全ての画素の符号化が終了するまでそれぞれの画素を符号化する。
【０１０５】
ステップＳ４１６において画素判定部３０６は、符号化対象の画素をパレット符号化するか、エスケープ符号化するかを判定する。本実施形態において画素判定部３０６は、符号化する画素の色がパレットテーブルに含まれる色と一致するか否かを判定し、判定結果に基づいて符号化対象の画素をパレット符号化するかエスケープ符号化するかを決定する。ステップＳ４１６にてパレットテーブルに登録された色のうち符号化対象の画素の色と一致するものがあれば、画素判定部３０６は符号化対象の画素をパレット符号化すると決定し（ステップＳ４１６にてＮＯ）、画像符号化装置３００はステップＳ４１７に進む。一方、ステップＳ４１６にてパレットテーブルに符号化対象の画素の色と一致する色が含まれなければ、画素判定部３０６は符号化対象の画素をエスケープ符号化すると決定し（ステップＳ４１６にてＹＥＳ）、画像符号化装置３００はステップＳ４１８に進む。尚、本実施形態において画素判定部３０６は、符号化対象の画素の画素値がパレットテーブルに含まれる色の画素値と完全に一致する場合のみ、符号化対象の画素をパレット符号化し、そうでない場合はエスケープ符号化すると決定している。しかしながら、符号化対象の画素にエスケープ符号化を用いるかパレット符号化を用いるかの決定する方法はこれに限定されない。例えば、画素判定部３０６は、符号化対象の画素の画素値がパレットテーブルに含まれる色のうちの一つと、一致しないものの非常に近い色である場合、符号化対象の画素をパレット符号化する方法を用いても構わない。このように、符号化対象の画素の画素値がパレットテーブルに含まれる色と近い色である場合にパレット符号化を用いることにより、エスケープ符号化を用いる場合よりも、符号量を少なくすることが可能である。
【０１０６】
ステップＳ４１７においてパレット符号化部３１０は、符号化対象の画素をパレット符号化する。即ち、パレット符号化部３１０は、パレットテーブルに基づいて符号化対象の画素に対応する色を表すインデックスを決定し、決定したインデックスをｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号としてエントロピー符号化部３１７に出力する。さらに、ステップＳ４１７においてエントロピー符号化部３１７は、パレット符号化部３１０から出力されたｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号をエントロピー符号化し、画素の符号データを生成する。エントロピー符号化部３１７は生成した画素の符号データを統合部３１８に出力する。また、ステップＳ４１７において画素再構成部３１９は、パレット符号化部３１０によって生成された符号化対象の画素の符号データをパレット符号化部３１０から入力し、入力した符号データを局所復号（再構成）する。そして、再構成された画素値を、当該符号化対象の画素を含むブロック内の適合する位置に格納する。
【０１０７】
ステップＳ４１８においてエスケープ符号化部３１２は、符号化対象の画素をエスケープ符号化する。即ち、エスケープ符号化部３１２は、パレットテーブルにおいてエスケープ符号化を示すインデックスをｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号としてエントロピー符号化部３１７に出力する。さらに、ステップＳ４１８においてエントロピー符号化部３１７は、エスケープ符号化部３１２から出力されたｐａｌｅｔｔｅ＿ｉｎｄｅｘ符号をエントロピー符号化し、画素の符号データを生成する。エントロピー符号化部３１７は、生成した画素の符号データを統合部３１８に出力する。
【０１０８】
ステップＳ４１９においてエスケープ符号化部３１２は、符号化する画素に対して、ステップＳ４１３においてＱＰ補正部３１１によって生成された量子化パラメータの補正値ＱＰｐを用いて量子化を行う。即ち、エスケープ符号化部３１２は、量子化パラメータの補正値ＱＰｐに基づいて量子化ステップを算出し、算出した量子化ステップを用いて符号化対象の画素を量子化し、量子化済みの画素値であるｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号を生成する。さらに、エントロピー符号化部３１７は、エスケープ符号化部３１２によって生成されたｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号をエントロピー符号化し、画素の符号データを生成する。エントロピー符号化部３１７は、生成した画素の符号データを統合部３１８に出力する。
【０１０９】
また、ステップＳ４１９において画素再構成部３１９は、符号化対象の画素を量子化するために用いた量子化パラメータの補正値ＱＰｐ、及び量子化済みの画素値をエスケープ符号化部３１２から入力する。そして、画素再構成部３１９は、入力された量子化パラメータの補正値ＱＰｐに基づいて量子化ステップを算出し、算出した量子化ステップを用いて、入力された量子化済みの画素値を逆量子化し、符号化対象の画素の画素値を再生（再構成）する。そして、再構成された画素値を、当該符号化対象の画素を含むブロック内の適合する位置に格納する。
【０１１０】
ステップＳ４２０において画素判定部３０６は、符号化対象のブロック内の全ての画素について符号化処理が行われたか否かを判定する。ステップＳ４２０において全ての画素の符号化処理が行われたと判断された場合に、画像符号化装置３００はステップＳ４２６に進む。一方、ステップＳ４２０において全ての画素の符号化が行われていないと判断された場合に、画像符号化装置３００はステップＳ４１６の処理に戻り、符号化対象のブロック内の次の画素の符号化を行う。
【０１１１】
次に、符号化対象のブロックが非パレット符号化ブロックである場合（ステップＳ４１２においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合）の処理について説明する。
【０１１２】
ステップＳ４２１においてエントロピー符号化部３１７は、ステップＳ４０８においてパレット判定部３０４によって設定されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値を符号化する。ここでは、符号化対象のブロックはパレット符号化を行わない非パレット符号化ブックであるため、パレット判定部３０４によって設定されたｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値は０である。
【０１１３】
ステップＳ４２２において予測誤差生成部３１３は、符号化対象の画素に対して用いる予測方法を決定する。即ち、予測誤差生成部３１３は、ピクチャメモリ３１５に格納されている局所復号済みの画像データを参照し、符号化対象の画素にイントラ予測又はインター予測のどちらの予測方法を用いるかを決定する。また、予測誤差生成部３１３によって決定された予測方法に関する情報が後段の処理部へ出力される。ここで、予測方法に関する情報は、予測符号化モード（イントラ予測かインター予測かを表す）、イントラ予測モード（ＤＣ、垂直、水平、Ｐｌａｎｅ等を示す）、動きベクトル等の情報を示す。そして、エントロピー符号化部３１７は、予測誤差生成部３１３から出力された予測方法に関する情報をエントロピー符号化する。
【０１１４】
ステップＳ４２３において予測誤差生成部３１３は、ステップＳ４２２にて決定した予測方法を用いて符号化対象の画素に予測処理を施し、予測誤差を生成する。
【０１１５】
ステップＳ４２４において予測誤差生成部３１３は、ステップＳ４２３にて生成した予測誤差に対して直交変換を行い、変換係数を算出する。さらに、予測誤差生成部３１３は、算出した変換係数に対して、レート制御部３０７から入力された量子化パラメータＱＰに基づいて算出した量子化ステップを用いて量子化を行い、変換量子化係数を算出する。予測誤差生成部３１３は、算出した変換量子化係数をエントロピー符号化部３１７に入力する。
【０１１６】
ステップＳ４２９において画素予測再構成部３１４は、ステップＳ４２４において予測誤差生成部３１３によって算出された変換量子化係数に対して逆量子化を行い、予測誤差を再構成する。ここで、画素予測再構成部３１４は、当該変換量子化係数に対して、レート制御部３０７から入力された量子化パラメータＱＰに基づいて算出した量子化ステップを用いて逆量子化を行い、変換係数を再構成する。さらに、画素予測再構成部３１４は、変換係数に逆直交変換を行い、予測誤差を再構成する。また、画素予測再構成部３１４は、予測誤差生成部３１３から出力された予測方法に関する情報に基づいて、ピクチャメモリ３１５に格納された局所復号済みの画素値（再構成画素）を用いて（参照して）予測処理を施し、予測画像データを生成する。そして、画素予測再構成部３１４は、本ステップにおいて生成した予測画像データと再構成した予測誤差とを加算し、ブロック単位での画素値を再生する。画素予測再構成部３１４は、再生したブロック単位の画素値をピクチャメモリ３１５に出力する。
【０１１７】
ステップＳ４２５においてエントロピー符号化部３１７は、ステップＳ４２４において予測誤差生成部３１３によって算出された変換量子化係数に対してエントロピー符号化を行い、画素の符号データを生成する。エントロピー符号化部３１７は、生成した画素の符号データを統合部３１８に出力する。統合部３１８は、エントロピー符号化部３１７によって生成された符号データとヘッダ符号化部３１６によって生成された符号データとを統合し、ビットストリームを生成し、画像符号化装置３００の外部に適宜出力する。
【０１１８】
ステップＳ４２６においてエントロピー符号化部３１７は、符号化対象のスライス内の全てのブロックについて符号化が行われたか否かを判定する。ステップＳ４２６において全てのブロックの符号化が行われたと判断された場合に、画像符号化装置３００はステップＳ４２７に進む。一方、ステップＳ４２６において全てのブロックの再生が行われていないと判断された場合に、画像符号化装置３００はステップＳ４０７に戻り、符号化対象のスライス内の次のブロックの符号化を行う。
【０１１９】
ステップＳ４２７においてエントロピー符号化部３１７は、符号化対象のピクチャ内の全てのスライスについて符号化が行われたか否かを判定する。ステップＳ４２７において全てのスライスの符号化が行われたと判断された場合に、画像符号化装置３００はステップＳ４２８に進む。一方、ステップＳ４２７において全てのスライスの符号化が行われていないと判断された場合に、画像符号化装置３００はステップＳ４０５に戻り、符号化対象のピクチャ内の次のスライスの符号化を行う。
【０１２０】
ステップＳ４２８においてブロック分割部３０２は、画像符号化装置３００に入力された全てのピクチャについて符号化が行われたか否かを判定する。ステップＳ４２８において全てのピクチャの符号化が行われたと判断された場合に、画像符号化装置３００は画像の符号化処理を終了する。一方、ステップＳ４２８において全てのピクチャの符号化が行われていないと判断された場合に、画像符号化装置３００はステップＳ４０４に戻り、符号化したピクチャの次のピクチャの符号化を行う。
【０１２１】
上述したように、本実施形態における画像符号化装置３００の構成及び画像の符号化処理により、非パレット符号化（予測符号化）における予測誤差の量子化と、パレット符号化における画素値の量子化において、適応的に量子化パラメータを用いる。即ち、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに対して、異なる量子化パラメータを用いることも可能である。このように、本実施形態における画像符号化装置３００は、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに適した量子化パラメータを用いて、符号化処理ができる。このため、本実施形態によって画像符号化装置３００は、パレット符号化ブロックと非パレット符号化ブロックとに同じ量子化パラメータを用いる場合と比較して符号化効率を向上させることができる。
【０１２２】
また、特にパレット符号化ブロックに関しては、処理される画像データのビット深度、及び／又は画素値と、予測誤差との取り得る値の範囲の違いを考慮して、符号化処理をすることができる。
【０１２３】
また、本実施形態において画像符号化装置３００は、非パレット符号化ブロックに用いる量子化パラメータを補正して、パレット符号化ブロックを量子化するために用いられる量子化パラメータを生成することができる。即ち、ブロックに対する１つの量子化パラメータからパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータを生成することができる。このため、画像符号化装置３００は、パレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータをビットストリームに挿入しておく必要がなく、符号量の増加を抑制することができる。
【０１２４】
また、本実施形態において画像符号化装置３００は、１つの量子化パラメータＱＰを用いてパレット符号化と非パレット符号化での量子化パラメータの両方を同時に制御したが、これに限定されない。即ち、画像符号化装置３００は、各符号化モードにおける量子化パラメータを個別に格納し、更新時に処理対象のブロックがパレット符号化ブロックであるか否かに基づいて、更新前の量子化パラメータをそれぞれ保持しても構わない。このように、画像符号化装置３００は、パレット符号化と非パレット符号化とに対して、それぞれ量子化パラメータを格納するようにしても構わない。
【０１２５】
尚、本実施形態において、１つの処理対象のブロックに対して１つの量子化パラメータＱＰを扱うように記述したが、これに限定されない。例えば、輝度、色差毎に量子化パラメータを独立に用いても構わない。
【０１２６】
また、本実施形態において、量子化パラメータの差分を符号化する際に、直前のブロックの量子化パラメータを参照値（予測値）として使用する例を示したが、これに限定されない。例えば、ブロックの左と上のブロックの量子化パラメータの平均値を参照値としても構わない。
【０１２７】
（実施形態３）
上述した実施形態１では、その量子化の対象に応じて補正を行って逆量子化を行っていた。ＨＥＶＣでは量子化パラメータはその値が４の時に量子化ステップが１になるように符号化されている。量子化パラメータの値が大きくなるにつれ、非線形に量子化ステップも大きくなるように設計されている。また、ＨＥＶＣでは量子化パラメータはその値が４未満の値も取りうる。この場合、量子化ステップが１以下になり、階調数が増大する表現が可能である。パレット符号化において、色を減色する技術であり、量子化ステップが１以下にすることに意味はなく、無駄である。そこで、本実施形態では量子化ステップが１以下になる場合の補正処理について説明する。
【０１２８】
本実施形態に係る画像復号装置に関しては、実施形態１と同じく図１の構成を利用できるため、ここでの説明を省略する。以下、図５を用いて、本実施形態の画像復号装置１００における画像の復号処理を説明する。図５は、本実施形態における画像復号装置１００で実行される画像復号処理の手順を示すフローチャートである。尚、図５おいて、図２のステップと同じ機能を実現するステップは同じ符号を付与し、その説明を省略する。
【０１２９】
ステップＳ２０１からステップＳ２０７までは実施形態１の図１に示す処理と同様に処理する。尚、ステップＳ２０２においてヘッダ復号部１０２は、ブロック単位での量子化パラメータの更新の可否を表すｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を復号する。ここで、本実施形態において、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１の場合、ブロック単位での量子化パラメータの更新が可能であることを示す。一方、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０の場合、ブロック単位で、ｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号が出現しない。したがって、この値はブロック単位での量子化パラメータの更新は行われないことを示す。
【０１３０】
また、本実施形態のステップＳ２０２においてヘッダ復号部１０２は、ブロックの復号において逆直交変換及び／又は逆量子化を行わない可能性を表すｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を復号する。
【０１３１】
ここで、本実施形態において、ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号について以下に説明する。まず、復号対象のブロックが非パレット符号化ブロックである場合について説明する。復号対象のブロックが非パレット符号化ブロックであってｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１の場合には、復号対象のブロックが直交変換と量子化の処理を省略して符号化される可能性があることを示す。各ブロックが直交変換と量子化の処理を省略されているかはブロック毎のｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号で表される。ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば直交変換と量子化の処理を省略されており、０であれば、省略されていないことを示す。また、復号対象のブロックが非パレット符号化ブロックであってｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０の場合には、復号対象のブロックが直交変換と量子化の処理を省略して符号化される可能性がないことを示す。この時、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値は常に０と仮定される。
【０１３２】
次に、復号対象のブロックがパレット符号化ブロックである場合について説明する。復号対象のブロックがパレット符号化ブロックである場合、ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号はエスケープ符号化時の量子化処理の省略の有無の可能性を表す。即ち、復号対象のブロックがパレット符号化ブロックであってｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が１の場合には、量子化処理が省略されている可能性を示す。一方、復号対象のブロックがパレット符号化ブロックであってｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号の値が０の場合には、エスケープ符号化されている時は量子化処理が施されていることを示す。いずれのブロックが量子化の処理を省略されているかはブロック毎のｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号で表される。本符号の値が１であれば量子化の処理を省略されており、０であれば、省略されていない。
【０１３３】
ステップＳ５５１においてエントロピー復号部１０３は、復号対象のブロックの変換量子化係数に対して逆量子化及び逆直交変換を行うか行わないかを決定する。尚、本実施形態においてエントロピー復号部１０３は、ステップＳ２０７において復号したｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値を比較することにより、ブロックの復号において逆量子化及び逆直交変換を行うか否かを判定する。
【０１３４】
即ち、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば、エントロピー復号部１０３はブロックの変換量子化係数に対して逆量子化及び／又は逆直交変換を行わないと判定する。即ち、ステップＳ５５１において逆量子化及び／又は逆直交変換を行わないと判定された場合に、画像復号装置１００は、量子化パラメータの更新を行わず、ステップＳ２１０に進む。
【０１３５】
一方、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０であれば、エントロピー復号部１０３は非パレット符号化ブロックの変換量子化係数に対して、逆量子化及び逆直交変換を行うと判定する。また、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０であれば、エントロピー復号部１０３はパレット符号化ブロックにおいて逆量子化を行うと判定する。そして、逆量子化及び／又は逆直交変換を行うと判定された場合には、量子化パラメータの更新が行われる可能性がある。即ち、ステップＳ５５１において逆量子化及び／又は逆直交変換を行うと判定された場合に、画像復号装置１００はステップＳ２０８に進み、復号するブロックで量子化パラメータの更新の有無の判定を行う。
【０１３６】
まず、復号対象のブロックがパレット符号化ブロックである場合（ステップＳ２１０においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合）の処理について説明する。
【０１３７】
ステップＳ２１１においてＱＰ補正部１０９は、実施形態１におけるステップＳ２１１の処理と同様に、ＱＰメモリ１０７からＱＰ復号部１０６を介して入力された量子化パラメータＱＰを（１）式を用いて補正し、量子化パラメータの補正値ＱＰｐを算出する。
【０１３８】
ステップＳ５５２においてＱＰ補正部１０９は、ステップＳ２１１において算出した量子化パラメータの補正値ＱＰｐと、予め決められた所定の値（閾値ＴＨ１）とを比較する。そして、ステップＳ５５２においてＱＰ補正部１０９は、量子化パラメータの補正値ＱＰｐが閾値ＴＨ１より小さい（又は閾値ＴＨ１以下）と判定した場合にステップＳ５５３へ進む。一方、ステップＳ５５２においてＱＰ補正部１０９は、量子化パラメータの補正値ＱＰｐが閾値ＴＨ１以上（または閾値ＴＨ１より大きい）であると判定した場合にステップＳ２１２へ進む。例えば、本実施形態において閾値ＴＨ１は、量子化ステップを１以下にする上限値である４とする。
【０１３９】
ステップＳ５５３においてＱＰ補正部１０９は、ステップＳ２１１において補正した量子化パラメータの補正値ＱＰｐをさらに補正する。本実施形態においてＱＰ補正部１０９は、（４）式に示すように、量子化パラメータの補正値ＱＰｐに、予め決められた値ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴを加算することによって量子化パラメータを補正する。例えば、ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴの値は、補正後の量子化パラメータの補正値ＱＰｐを４以上の値にするために、４とする。
【０１４０】
ＱＰｐ＝ＱＰｐ＋ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴ  …（４）
上述したステップＳ５５２及びステップＳ５５３の処理によって、パレット符号化ブロックを符号化する場合に、量子化ステップの値を１以上（量子化パラメータの値を４以上）に設定することができる。即ち、パレット符号化において量子化ステップの値が１未満の場合に不要となる符号を削減することができる。
【０１４１】
ステップＳ２１４において復号対象のブロック内の復号対象の画素がパレット符号化されていないと判定された場合（ステップＳ２１４のＮＯ）、画像復号装置１００はステップＳ５５４の処理へ進む。ステップＳ５５４においてエントロピー復号部１０３は、ブロックの予測誤差に対して逆量子化及び逆直交変換を行うか否かを決定する。即ち、ステップＳ５５４にてエントロピー復号部１０３は、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば、ブロックの復号された予測誤差は画素値の差分値であり、逆量子化及び逆直交変換を行うと判定する。そして、この場合（ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１の場合）、画像復号装置１００はステップＳ２１６に進む。一方、ステップＳ５５４にてエントロピー復号部１０３は、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０であれば、ブロックの予測誤差は変換量子化係数であり、逆量子化及び逆直交変換を行わないと判定する。そして、この場合（ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０の場合）、画像復号装置１００はステップＳ５５５に進む。
【０１４２】
ステップＳ５５５において、エスケープ復号部１１０は、画素単位でパレット復号部１０５から入力されたｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号を復号して、復号対象のブロック内の復号対象の画素の画素値を再構成する。
【０１４３】
次に、復号対象のブロックが非パレット符号化ブロックである場合（ステップＳ２１０においてｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合）の処理について説明する。
【０１４４】
ステップＳ５５６においてエントロピー復号部１０３は、復号対象のブロックの逆量子化及び逆直交変換をスキップするか否かを決定する。即ち、ステップＳ５５６においてエントロピー復号部１０３は、復号したｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値を比較する。そして、ステップＳ５５６にてエントロピー復号部１０３は、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１の場合に、復号対象のブロックの逆量子化及び逆直交変換をスキップすると判定し、画像復号装置１００はステップＳ２２０に進む。尚、ステップＳ５５６において逆量子化及び逆直交変換をスキップすると判定された場合、以降の処理においてステップＳ２１８にて再生された変換量子化係数を画素値の予測誤差として用いる。一方、ステップＳ５５６にてエントロピー復号部１０３は、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０の場合に、復号対象のブロックの逆量子化及び逆直交変換を行うと判定し、画像復号装置はステップＳ２１９に進む。尚、ステップＳ５５６において逆量子化及び逆直交変換を行うと判定された場合、以降の処理においてステップＳ２１８にて再生された変換量子化係数を変換量子化係数として用いる。
【０１４５】
次に、以上で説明したように、本実施形態において画像復号装置１００に入力された符号データのシンタックスを下記に示す。表１は非パレット符号化ブロックを復号する場合のｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の様子を表す。表２はパレット符号化ブロックを復号する場合のｃｕ＿ｑｐ＿ｄｅｌｔａ＿ａｂｓ符号、及びｃｕ＿ｑｐ＿ｄｅｌｔａ＿ｓｉｇｎ＿ｆｌａｇ符号の様子を表す。表１及び表２に示すように、本実施形態におけるシンタックスは、従来のＨＥＶＣにおけるシンタックスに斜字で記載された部分の条件が加えられている。
【０１４６】
【表１】
0006532222.tif 000002
【０１４７】
【表２】
0006532222.tif 000003
【０１４８】
上述したように、本実施形態における画像復号装置１００の構成及び画像の復号処理により、非パレット符号化（予測符号化）における予測誤差の逆量子化と、パレット符号化における画素値の逆量子化において、適応的に量子化パラメータを用いる。即ち、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに対して、異なる量子化パラメータを用いることも可能である。このように、本実施形態における画像復号装置１００は、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに適した量子化パラメータを用いて、復号処理ができる。このため、本実施形態によって画像復号装置１００は、パレット符号化ブロックと非パレット符号化ブロックとに同じ量子化パラメータを用いる場合と比較して符号化効率を向上させることができる。
【０１４９】
また、特にパレット符号化ブロックに関しては、処理される画像データのビット深度、及び／又は画素値と、予測誤差との取り得る値の範囲の違いを考慮して、復号処理をすることができる。
【０１５０】
また、本実施形態において画像復号装置１００は、非パレット符号化ブロックに用いる量子化パラメータを補正して、パレット符号化ブロックを逆量子化するために用いられる量子化パラメータを生成することができる。即ち、ブロックに対する１つの量子化パラメータからパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータを生成することができる。このため、符号化装置側でパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータをビットストリームに挿入しておく必要がなく、符号量の増加を抑制することができる。
【０１５１】
また、本実施形態において画像復号装置１００は、量子化ステップを１以上に設定することができる。即ち、画像復号装置１００は、量子化パラメータＱＰを４以上に設定することができる。例えば、量子化パラメータＱＰが４以下であった場合、パレット符号化ブロックにおいて、処理対象の画素値は１未満の量子化ステップによって逆量子化されてしまう。このように、１以上の量子化ステップを用いて逆量子化することにより、画像復号装置１００は、処理対象の符号データのデータ量の無用な増加を防ぐことができる。
【０１５２】
また、本実施形態において画像復号装置１００は、量子化パラメータの更新をブロックが逆量子化を行うブロックのみで行うようにすることで、逆量子化を行わないブロックでの量子化パラメータの更新を防ぐことができる。これにより、画像復号装置１００は、不用意に量子化パラメータの更新が行うことを防ぎ、画質の制御を行いたい時のみに量子化パラメータの更新が行うことができる。
【０１５３】
尚、本実施形態で予め決められた閾値ＴＨ１より小さい値の量子化パラメータＱＰの補正において、ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴの加算を行ったが、これに限定されない。パレット符号化用の量子化パラメータＱＰの値を４以上に制限しても構わない。例えば、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が１の場合は、符号化ビットストリームの量子化パラメータが４以下になることを禁止する、といった制限を持たせることも可能である。
【０１５４】
また、画像復号装置１００は、予め決められた閾値ＴＨ１より小さい値の量子化パラメータＱＰの値を４に置き換えて、量子化パラメータＱＰの補正を行っても構わない。即ち、（５）式のように補正を行うことも可能である。
【０１５５】
ｉｆ  （ＱＰｐ＜＝３）      ＱＰｐ＝４                ・・・（５）
尚、本実施形態において、１つの処理対象のブロックに対して１つの量子化パラメータＱＰを扱うように記述したが、これに限定されない。例えば、輝度、色差毎に量子化パラメータを独立に用いても構わない。
【０１５６】
また、本実施形態において、量子化パラメータの差分を符号化する際に、直前のブロックの量子化パラメータを参照値（予測値）として使用する例を示したが、これに限定されない。例えば、ブロックの左と上のブロックの量子化パラメータの平均値を参照値としても構わない。
【０１５７】
（実施形態４）
上述した実施形態２では、その量子化の対象に応じて補正を行って逆量子化を行っていた。ＨＥＶＣでは量子化パラメータはその値が４の時に量子化ステップが１になるように符号化されている。量子化パラメータの値が大きくなるにつれ、非線形に量子化ステップも大きくなるように設計されている。また、ＨＥＶＣでは量子化パラメータはその値が４未満の値も取りうる。この場合、量子化ステップが１以下になり、階調数が増大する表現が可能である。パレット符号化において、色を減色する技術であり、量子化ステップが１以下にすることに意味はなく、無駄である。そこで、本実施形態では量子化ステップが１以下になる場合の補正処理について説明する。  本実施形態に係る画像号化装置に関しては、実施形態２と同じく図３の構成を利用できるため、ここでの説明を省略する。以下、図６を用いて、本実施形態の画像符号化装置３００における画像の符号化処理について説明する。図６は、本実施形態における画像符号化装置３００で実行される画像符号化処理の手順を表すフローチャートである。尚、図６おいて、図４のステップと同じ機能を実現するステップについては同じ番号を付し、その説明を省略する。
【０１５８】
ステップＳ４０１からステップＳ４０７までは実施形態２の図４に示す処理と同様に処理する。
【０１５９】
ステップＳ６５１においてパレット判定部３０４は、ステップＳ４０８と同様に、ブロック分割部３０２から出力されたブロックの画像データに対して、パレット符号化を行うか否かを判定する。また、ステップＳ６５１において予測誤差生成部３１３は、ブロックの画像データに対して、直交変換と量子化を行わないか行うか（即ち、ロスレスで符号化するか否か）を判断する。尚、本実施形態において予測誤差生成部３１３は、部分的に劣化のない画像を送る必要がある場合にロスレス符号化を行うと判断する。例えば、予測誤差生成部３１３は、画像符号化装置３００外部の処理部（不図示）に設定されたロスレス符号化を行う領域（ブロック）に関する情報等を取得し、ロスレス符号化を行うか否かを決定しても構わない。そして、ステップＳ６５１において予測誤差生成部３１３は、ロスレス符号化を行うと決定した場合に、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値を１に設定する。一方、ステップＳ６５１において予測誤差生成部３１３は、ロスレス符号化を行わないと決定した場合に、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値を０に設定する。
【０１６０】
ステップＳ６５２においてエントロピー符号化部３１７は、ステップＳ６５１において予測誤差生成部３１３によって設定されたｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値に基づいた判定を行う。ステップＳ６５２においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば、画像符号化装置３００はステップＳ４１２に進む。一方、ステップＳ６５２においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０であれば、画像符号化装置３００はステップＳ４１１に進む。即ち、ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば、画像符号化装置３００はステップＳ４１０とステップＳ４１１で行われる量子化パラメータの更新に関する符号化を行わない。この処理により、本実施形態における画像符号化装置３００は、実施形態３の表１及び表２に示したシンタックスの符号を生成することができる。
【０１６１】
以下に、ステップＳ４１２において符号化対象のブロックがパレット符号化ブロックであると判定された場合の処理について説明する。尚、ステップＳ４１３においてＱＰ補正部３１１は、実施形態２と同様に、エスケープ符号化時の逆量子化に用いるために補正された量子化パラメータの補正値ＱＰｐを算出する。
【０１６２】
ステップＳ６５３において、ＱＰ補正部３１１はステップＳ４１３において算出した量子化パラメータの補正値ＱＰｐと、予め決められた所定の値（閾値ＴＨ１）とを比較する。例えば、本実施形態において閾値ＴＨ１は、量子化ステップを１以下にする上限値である４とする。そして、ステップＳ６５３においてＱＰ補正部３１１は、量子化パラメータの補正値ＱＰｐが閾値ＴＨ１より小さいと判定した場合にステップＳ６５４に進み、量子化パラメータの補正値ＱＰｐが閾値ＴＨ１以上であると判定した場合にステップＳ４１４に進む。
【０１６３】
ステップＳ６５４においてＱＰ補正部３１１は、ステップＳ４１３で補正した量子化パラメータの補正値ＱＰｐをさらに補正する。本実施形態においてＱＰ補正部３１１は、実施形態３における（４）式に示すように、量子化パラメータの補正値ＱＰｐに、予め決められた値ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴを加算することによって量子化パラメータを補正する。
【０１６４】
また、ステップＳ６５５においてエントロピー符号化部３１７は、ステップＳ６５１において予測誤差生成部３１３によって設定されたｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値に基づいた判定を行う。ステップＳ６５５においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１であれば、画像符号化装置３００はステップＳ６５６に進む。一方、ステップＳ６５５においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０であれば、画像符号化装置３００はステップＳ４１９に進む。
【０１６５】
ステップＳ６５６においてエスケープ符号化部３１２は、入力された符号化対象の画素値をそのままｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号に設定する。そして、エントロピー符号化部３１７は、エスケープ符号化部３１２から入力したｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌ符号をエントロピー符号化する。また、ステップＳ６５６において画素再構成部３１９は、符号化対象の画素の画素値をエスケープ符号化部３１２から入力し、入力された画素値を、当該符号化対象の画素を含むブロック内の適合する位置に格納する。
【０１６６】
次に、ステップＳ４１２において符号化対象のブロックが非パレット符号化ブロックであると判定された場合の処理について説明する。
【０１６７】
ステップＳ６５７においてエントロピー符号化部３１７は、ステップＳ６５１において予測誤差生成部３１３によって設定されたｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値に基づいた判定を行う。ステップＳ６５７においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が１の場合は、画像符号化装置３００はステップＳ４２５に進む。この場合、直交変換、量子化が行われないため、ステップＳ４２３にて生成された予測誤差は画素値の予測誤差である。一方、ステップＳ６５７においてｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ符号の値が０の場合は、画像符号化装置３００はステップＳ４２４に進む。この場合、直交変換、量子化が行われるため、ステップＳ４２４にて算出された予測誤差は変換量子化係数である。
【０１６８】
上述したように、本実施形態における画像符号化装置３００の構成及び画像の符号化処理により、非パレット符号化（予測符号化）における予測誤差の量子化と、パレット符号化における画素値の量子化において、適応的に量子化パラメータを用いる。即ち、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに対して、異なる量子化パラメータを用いることも可能である。このように、本実施形態における画像符号化装置３００は、パレット符号化ブロックと非パレット符号化ブロックのそれぞれに適した量子化パラメータを用いて、符号化処理ができる。このため、本実施形態によって画像符号化装置３００は、パレット符号化ブロックと非パレット符号化ブロックとに同じ量子化パラメータを用いる場合と比較して符号化効率を向上させることができる。
【０１６９】
また、特にパレット符号化ブロックに関しては、処理される画像データのビット深度、及び／又は画素値と、予測誤差との取り得る値の範囲の違いを考慮して、符号化処理をすることができる。
【０１７０】
また、本実施形態において画像符号化装置３００は、非パレット符号化ブロックに用いる量子化パラメータを補正して、パレット符号化ブロックを量子化するために用いられる量子化パラメータを生成することができる。即ち、ブロックに対する１つの量子化パラメータからパレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータを生成することができる。このため、画像符号化装置３００は、パレット符号化ブロック用と非パレット符号化ブロック用の量子化パラメータをビットストリームに挿入しておく必要がなく、符号量の増加を抑制することができる。
【０１７１】
また、本実施形態において画像符号化装置３００は、量子化ステップを１以上に設定することができる。即ち、画像符号化装置３００は、量子化パラメータＱＰを４以上に設定することができる。例えば、量子化パラメータＱＰが４以下であった場合、パレット符号化ブロックにおいて、処理対象の画素値は１未満の量子化ステップによって量子化されてしまう。このように、１以上の量子化ステップを用いて量子化することにより、画像符号化装置３００は、処理対象の符号データのデータ量の無用な増加を防ぐことができる。
【０１７２】
また、本実施形態において画像符号化装置３００は、量子化パラメータの更新をブロックが量子化を行うブロックのみで行うようにすることで、量子化を行わないブロックでの量子化パラメータの更新を防ぐことができる。これにより、画像符号化装置３００は、不用意に量子化パラメータの更新が行うことを防ぎ、画質の制御を行いたい時のみに量子化パラメータの更新が行うことができる。  尚、本実施形態において画像符号化装置３００は、１つの量子化パラメータＱＰを用いてパレット符号化と非パレット符号化での量子化パラメータの両方を同時に制御したが、これに限定されない。即ち、画像符号化装置３００は、各符号化モードにおける量子化パラメータを個別に格納し、更新時に処理対象のブロックがパレット符号化ブロックであるか否かに基づいて、更新前の量子化パラメータをそれぞれ保持しても構わない。このように、画像符号化装置３００は、パレット符号化と非パレット符号化とに対して、それぞれ量子化パラメータを格納するようにしても構わない。
【０１７３】
また、本実施形態において、１つの処理対象のブロックに対して１つの量子化パラメータＱＰを扱うように記述したが、これに限定されない。例えば、輝度、色差毎に量子化パラメータを独立に用いても構わない。
【０１７４】
また、本実施形態において、量子化パラメータの差分を符号化する際に、直前のブロックの量子化パラメータを参照値（予測値）として使用する例を示したが、これに限定されない。例えば、ブロックの左と上のブロックの量子化パラメータの平均値を参照値としても構わない。
【０１７５】
尚、本実施形態で予め決められた閾値ＴＨ１より小さい値の量子化パラメータＱＰの補正において、ＰＡＬＥＴＴＥ＿ＱＰ＿ＯＦＦＳＥＴの加算を行ったが、これに限定されない。パレット符号化用の量子化パラメータＱＰの値を４以上に制限しても構わない。例えば、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が１の場合は、符号化ビットストリームの量子化パラメータが４以下になることを禁止する、といった制限を持たせることも可能である。
【０１７６】
また、画像符号化装置３００は、予め決められた閾値ＴＨ１より小さい値の量子化パラメータＱＰの値を４に置き換えて、量子化パラメータＱＰの補正を行っても構わない。即ち、実施形態３に示す（５）式を用いて量子化パラメータを補正することも可能である。
【０１７７】
（実施形態５）
図１及び図３に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行う処理をコンピュータプログラムでもって構成しても良い。以下、図７を用いて本実施形態について説明する。図７は、上記各実施形態に係る画像符号化装置及び／又は画像復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【０１７８】
ＣＰＵ７０１は、ＲＡＭ７０２やＲＯＭ７０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像符号化装置及び／又は画像復号装置が行うものとして上述した各処理を実行する。即ち、ＣＰＵ７０１は、図１、図３に示した各処理部として機能することになる。
【０１７９】
ＲＡＭ７０２は、外部記憶装置７０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）７０７を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ７０２は、ＣＰＵ７０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ７０２は、例えば、ピクチャメモリとして割り当てたり、その他の各種のエリアを適宜、提供したりすることができる。
【０１８０】
ＲＯＭ７０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部７０４は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をＣＰＵ７０１に対して入力することができる。表示部７０５は、ＣＰＵ７０１による復号の結果を表示する。また、表示部７０５は例えば液晶ディスプレイで構成される。
【０１８１】
外部記憶装置７０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置７０６には、ＯＳ（オペレーティングシステム）や、図１、図３に示した各部の機能をＣＰＵ７０１に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置７０６には、処理対象としての各画像データが保存されていても良い。
【０１８２】
外部記憶装置７０６に保存されているコンピュータプログラムやデータは、ＣＰＵ７０１による制御に従って適宜、ＲＡＭ７０２にロードされ、ＣＰＵ７０１による処理対象となる。Ｉ／Ｆ７０７には、ＬＡＮやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのＩ／Ｆ７０７を介して様々な情報を取得したり、送出したりすることができる。７０８は上述の各部を繋ぐバスである。
【０１８３】
上述の構成からなる作動は前述のフローチャートで説明した作動をＣＰＵ７０１が中心となってその制御を行う。
【０１８４】
（その他の実施形態）
尚、上述した各実施形態において、各符号の値は０又は１に限定されない。例えば、上述の各実施形態ではｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が１である場合に処理対象のブロックがパレット符号化を用いるが、ｐａｌｅｔｔｅ＿ｍｏｄｅ＿ｆｌａｇ符号の値が０である場合にパレット符号化を用いるよう設定しても構わない。他の符号に着いても同様である。
【０１８５】
また、上述した各実施形態において、ピクチャ、スライス、ブロックの処理を完了したか否かを、画像復号装置１００又は画像符号化装置３００の各処理部によって判定したが、これに限定されない。即ち、画像復号装置１００又は画像符号化装置３００の他の処理部が判定しても構わないし、画像復号装置１００又は画像符号化装置３００の全体制御部（不図示）が判定しても構わない。また、画像復号装置１００又は画像符号化装置３００の外部の処理部が判定しても構わない。
【０１８６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１８７】
１００  画像復号装置
１０１  分離部
１０２  ヘッダ復号部
１０３  エントロピー復号部
１０４  セレクタ
１０５  パレット復号部
１０６  ＱＰ復号部
１０７  ＱＰメモリ
１０８  パレット参照部
１０９  ＱＰ補正部
１１０  エスケープ復号部
１１１  予測誤差復号部
１１２  画素予測再構成部
１１３  画素再構成部
１１４  復号画像バッファ
１１５  ピクチャメモリ
３００  画像符号化装置
３０１  ピクチャバッファ
３０２  ブロック分割部
３０３  設定部
３０４  パレット判定部
３０５  セレクタ
３０６  画素判定部
３０７  レート制御部
３０８  ＱＰ設定・更新部
３０９  ＱＰメモリ
３１０  パレット符号化部
３１１  ＱＰ補正部
３１２  エスケープ符号化部
３１３  予測誤差生成部
３１４  画素予測再構成部
３１５  ピクチャメモリ
３１６  ヘッダ符号化部
３１７  エントロピー符号化部
３１８  統合部
３１９  画素再構成部
【図１】
0006532222.tif 000004
【図２】
0006532222.tif 000005
【図３】
0006532222.tif 000006
【図４】
0006532222.tif 000007
【図５】
0006532222.tif 000008
【図６】
0006532222.tif 000009
【図７】
0006532222.tif 000010
【図８】
0006532222.tif 000011