(57)【特許請求の範囲】
【請求項１】
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する第１符号量と、前記特定のエントリを前記第２パレットに含めない場合に発生する第２符号量とを推定し、前記第２符号量が前記第１符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定する決定部と、
前記決定部が決定した前記特定のエントリを含む前記第２パレットを生成する生成部と、
前記第２パレットを用いて前記第２ブロックを符号化するパレット符号化部と、
を備えることを特徴とする画像符号化装置。
【請求項２】
前記決定部は、前記第２ブロックよりも後に符号化される第３ブロックにおいて前記特定のエントリに対応する画素値が発生する発生確率を求め、前記特定のエントリが前記第２パレットから外され、前記第３ブロックにおいて前記特定のエントリに対応する画素値が出現した場合に、前記第３ブロックの符号化に用いられる第３パレットに前記特定のエントリを再登録するための符号量と、前記発生確率とを含む計算式により、前記第２符号量を計算することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記符号化対象画像の画素値を解析して、前記符号化対象画像の画素値分布を表す画素値分布情報を生成する解析部をさらに備え、
前記決定部は、前記符号化対象画像の画素数に対する、前記特定のエントリに対応する画素値の画素数の比率を、前記画素値分布情報から求め、前記比率を前記発生確率として用いることを特徴とする請求項２記載の画像符号化装置。
【請求項４】
前記第２ブロックよりも前に符号化された複数のブロックの画素値と前記第２ブロックの画素値とを解析して、前記複数のブロック及び前記第２ブロックの画素値分布を表す画素値分布情報を生成する解析部をさらに備え、
前記決定部は、前記複数のブロック及び前記第２ブロックの画素数に対する、前記特定のエントリに対応する画素値の画素数の比率を、前記画素値分布情報から求め、前記比率を前記発生確率として用いることを特徴とする請求項２記載の画像符号化装置。
【請求項５】
画像符号化装置が、
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する第１符号量と、前記特定のエントリを前記第２パレットに含めない場合に発生する第２符号量とを推定し、
前記第２符号量が前記第１符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定し、
決定した前記特定のエントリを含む前記第２パレットを生成し、
前記第２パレットを用いて前記第２ブロックを符号化する、
ことを特徴とする画像符号化方法。
【請求項６】
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する第１符号量と、前記特定のエントリを前記第２パレットに含めない場合に発生する第２符号量とを推定し、
前記第２符号量が前記第１符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定し、
決定した前記特定のエントリを含む前記第２パレットを生成し、
前記第２パレットを用いて前記第２ブロックを符号化する、
処理をコンピュータに実行させる画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法、及び画像符号化プログラムに関する。
【背景技術】
【０００２】
動画像データは、非常に大きなデータ量を有することが多い。このため、送信装置から受信装置へ動画像データを送信する場合、又は動画像データを記憶装置に格納する場合には、動画像データの圧縮符号化が行われる。
【０００３】
代表的な動画像符号化標準としては、Moving Picture Experts Group phase 2（ＭＰＥＧ−２）、ＭＰＥＧ−４、又はH.264 MPEG-4 Advanced Video Coding（ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４）が知られている。これらの動画像符号化標準は、International Organization for Standardization/International Electrotechnical Commission（ＩＳＯ／ＩＥＣ）により策定されている。
【０００４】
上述した動画像符号化標準は、インター予測符号化とイントラ予測符号化の２つの符号化方式を採用している。インター予測符号化は、符号化対象ピクチャを符号化済みピクチャの情報を用いて符号化する符号化方式であり、イントラ予測符号化は、符号化対象ピクチャが持つ情報のみを用いて符号化対象ピクチャを符号化する符号化方式である。
【０００５】
２０１３年１月には、High Efficiency Video Coding（ＨＥＶＣ）と呼ばれる次世代動画像符号化標準が、Joint Collaborative Team on Video Coding（ＪＣＴＶＣ）と呼ばれる組織により策定された（例えば、非特許文献１及び非特許文献２を参照）。ＪＣＴＶＣは、International Telecommunication Union Telecommunication Standardization Sector（ＩＴＵ−Ｔ）とＩＳＯ／ＩＥＣが共同で運営している組織である。
【０００６】
ＨＥＶＣは、Sample Adaptive Offset（ＳＡＯ）と呼ばれる新たなフィルタ、及びＨ．２６４が策定されたときにはハードウェアの制限により実装することが困難であったツールを導入することで、Ｈ．２６４の２倍の符号化効率を達成している。
【０００７】
さらに、ＪＣＴＶＣは、ＨＥＶＣの拡張として、スクリーンコンテンツ向けの符号化標準であるScreen Content Coding（ＳＣＣ）を策定している。ＳＣＣは、パーソナルコンピュータ（ＰＣ）のデスクトップ画面等の人工的な映像を符号化するための符号化標準である。ＳＣＣは、クラウド上のサーバから送信される映像を圧縮する用途のように、これからの時代に適した符号化標準として期待されている。
【０００８】
ＳＣＣは、ＰＣの画面等の人工的な映像を扱うことを目的としており、その圧縮対象となる映像には、医療用の映像、Computer Aided Design（ＣＡＤ）の映像等も含まれる。このため、ＳＣＣにはＲＧＢ色空間、４：４：４色空間等を考慮したツールが含まれている。これらの映像は、自然画像と比較して色成分の空間的相関がより高く、また、使用される色の数が制限される場合が多いため、ＳＣＣで追加されたツールは、このような映像の特性を利用して符号化効率の向上を実現している。
【０００９】
ＳＣＣで追加された代表的なツールとしては、Cross Component Prediction（ＣＣＰ）、Adaptive Color Transform（ＡＣＴ）、パレット符号化等が挙げられる。ＣＣＰは、それぞれの色成分の予測誤差間の相関を利用して、予測誤差を削減する技術であり、ＡＣＴは、予測誤差に対して、例えば、ＹＣｏＣｇ色空間からＲＧＢ色空間への変換を適用することで、色成分間の相関を削減する技術である。
【００１０】
パレット符号化は、映像に頻出する色成分をインデックスで表し、そのインデックスを符号化することで、符号量を削減する技術である。例えば、ＹＵＶ色空間のそれぞれの色成分が８ビットで表される場合、通常の符号化では、単純に考えると、１つの色を表現するための符号量は合計２４ビットになる。
【００１１】
一方、パレット符号化では、頻出する色成分が存在する場合、その色成分にインデックスが付与され、色成分の代わりにインデックスが符号化される。例えば、インデックスの総数が、８ビットで表現可能な２５６個である場合、単純に考えると、１つの色を表現するための符号量は８ビットになる。したがって、符号化後の情報量が２４ビットから８ビットに削減される。
【００１２】
もちろん、このような符号量の計算は単純化した例であり、実際の符号化では、直交変換及び算術符号化が行われるため、計算結果は異なってくる。しかし、基本的な考え方として、色をそのままの色成分で表すのではなく、少数のインデックスで表すことで、情報量を削減することが可能である。
【００１３】
ＳＣＣにより扱われる人工的な映像では、自然画像と比較して、同じ色が何度も使用され、さらに使用される色の種類もより限定的である、という傾向が見られる。パレット符号化では、その出現頻度の高い少数の色を、符号量の小さいインデックスで表すことで、情報量が削減され、符号化効率が向上する。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】JCTVC-V1005, “High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 5”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, October 2015
【非特許文献２】JCTVC-S1002, “High Efficiency Video Coding (HEVC) Test Model 16 (HM 16) Improved Encoder Description”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, February-October 2014
【発明の概要】
【発明が解決しようとする課題】
【００１５】
従来のパレット生成方法では、符号化対象画像内において、直前に符号化されたブロックのパレットに含まれるエントリの色と、符号化対象ブロックに含まれる色とが比較される。そして、直前のパレットに符号化対象ブロックと同じ色が存在する場合、直前のパレットのエントリが再利用される。しかしながら、ブロック間における局所的な相関のみに基づいて、再利用されるエントリを決定すると、パレットの符号量が増大して、符号化効率が低下することがある。
【００１６】
なお、かかる問題は、スクリーンコンテンツ画像に対するパレット符号化に限らず、画素値のバリエーションが少ない他の画像に対するパレット符号化においても生ずるものである。
【００１７】
１つの側面において、本発明は、パレット符号化の符号化効率を向上させることを目的とする。
【課題を解決するための手段】
【００１８】
１つの案では、画像符号化装置は、決定部、生成部、及びパレット符号化部を含む。
決定部は、符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、第２パレットのエントリ候補ではない場合、符号化対象画像の画素値分布に基づいて、第１指標と第２指標とを求める。
【００１９】
第２パレットは、第１ブロックよりも後に符号化される第２ブロックの符号化に用いられるパレットである。第１指標は、特定のエントリを第２パレットに含める場合に発生する符号量を示し、第２指標は、特定のエントリを第２パレットに含めない場合に発生する符号量を示す。
【００２０】
次に、決定部は、第１指標と第２指標とに基づいて、第２パレットに含めるエントリを決定する。生成部は、決定部が決定したエントリを含む第２パレットを生成し、パレット符号化部は、第２パレットを用いて第２ブロックを符号化する。
【発明の効果】
【００２１】
実施形態によれば、パレット符号化の符号化効率を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】パレット生成部の構成図である。
【図２】パレットの復号に関するシンタックスを示す図である。
【図３】パレット生成処理を示す図である。
【図４】次のＣＵに対するパレット生成処理を示す図である。
【図５】画像符号化装置の構成図である。
【図６】画像符号化処理のフローチャートである。
【図７】画像符号化装置の具体例を示す構成図である。
【図８】画素値分布情報を用いるパレット生成部の構成図である。
【図９】画素値分布情報を用いるパレット生成処理を示す図である。
【図１０】truncated unary二値化の符号列を示す図である。
【図１１】exponential Golomb符号化の符号列を示す図である。
【図１２】第１指標及び第２指標の計算方法を示す図である。
【図１３】画素値分布情報を用いるパレット生成処理のフローチャートである。
【図１４】画素値分布情報をブロック毎に更新するパレット生成処理のフローチャートである。
【図１５】情報処理装置の構成図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら、実施形態を詳細に説明する。
まず、ＨＥＶＣにおけるブロック分割について説明する。ＨＥＶＣでは、Coding Tree Unit（ＣＴＵ）、Coding Unit（ＣＵ）、Prediction Unit（ＰＵ）、及びTransform Unit（ＴＵ）と呼ばれる４種類のブロックが用意されている。ＣＴＵは、ブロック分割を木構造とみなしたときの根ノードとなるブロックであり、ＣＵが取りうる最大ブロックサイズに対応する。
【００２４】
ＣＵは、その木構造の葉ノードとなるブロックであり、インター予測、イントラ予測等の予測モードが決定される単位である。つまり、ＣＵ内では、インター予測とイントラ予測のように、異なる種類の予測が共存することはない。
【００２５】
ＰＵは、ＣＵをさらに分割したブロックであり、ＣＵに対して決められた予測モードの中で、最適な予測方法が選択される単位である。例えば、イントラ予測の場合は、予測方向が選択され、インター予測の場合は、動きベクトルが選択される。また、ＰＵは、正方形である必要はなく、ＣＵの１辺のサイズを２Ｎとして、２Ｎ×Ｎ、Ｎ×２Ｎ等の長方形になることもある。ＴＵは、ＣＵをさらに分割したブロックであり、直交変換が実施される単位である。ＴＵのサイズは、ＰＵのサイズとは無関係である。
【００２６】
パレット符号化は、ＣＵを単位として実施され、ＣＵ毎に符号化に用いるパレットが生成される。そして、ＣＵ内の各画素の画素値が表す色が、パレットに登録されたインデックスによって指定され、パレット及び各画素のインデックスが符号化される。パレットは、パレットテーブルと呼ばれることもある。
【００２７】
図１は、動画像符号化装置に設けられるパレット生成部の構成例を示している。図１のパレット生成部１０１は、エントリ候補生成部１１１、比較部１１２、及び生成部１１３を含む。
【００２８】
エントリ候補生成部１１１は、符号化対象ＣＵの画素値の中から、符号化対象ＣＵのパレットに登録されるエントリの候補（エントリ候補）を抽出して、比較部１１２へ出力する。例えば、エントリ候補生成部１１１は、符号化対象ＣＵに含まれる色の頻度ヒストグラムを生成し、頻度の高い色から順に所定数の色をエントリ候補として抽出する。
【００２９】
比較部１１２は、エントリ候補生成部１１１から出力されるエントリ候補と、生成部１１３からフィードバックされるパレットに含まれるエントリとを比較する。フィードバックされるパレットは、符号化対象ＣＵの直前に符号化されたＣＵのパレットである。そして、比較部１１２は、エントリ候補と同じ色がフィードバックされたパレットに含まれているか否かを示す比較結果を、生成部１１３へ出力する。
【００３０】
生成部１１３は、比較結果に基づいて、パレットに残すエントリと、パレットに新規に追加するエントリとを含む、符号化対象ＣＵのパレットを生成する。新規に追加されるエントリは、色を表す画素値と、その色を示すインデックスとを含む。
【００３１】
動画像符号化装置は、生成された符号化対象ＣＵのパレットを用いて符号化対象ＣＵを符号化し、符号化ＣＵ及びパレットを動画像復号装置へ送信する。動画像復号装置は、動画像符号化装置から符号化ＣＵ及びパレットを受信し、パレットを用いて符号化ＣＵを復号する。
【００３２】
図２は、パレットの復号に関するシンタックスの例を示している。パレット符号化では、直前に復号されたＣＵのパレットを参照することで、パレットを表現するための情報量を削減している。この場合、パレットは、次のような手順で復号される。
【００３３】
動画像復号装置は、直前に復号されたＣＵのパレットを参照して、再利用されるエントリを検索する。どのインデックスが示す色を再利用するかは、直前に復号されたＣＵのパレットにおけるエントリ間の距離を表すランによって、指定される。再利用されるエントリの検索に対応するシンタックスは、ｐａｌｅｔｔｅ＿ｐｒｅｄｉｃｔｏｒ＿ｒｕｎである。この検索によって、再利用されるエントリが確定する。なお、ｐａｌｅｔｔｅ＿ｐｒｅｄｉｃｔｏｒ＿ｒｕｎが１である場合は、再利用されるエントリの検索が打ち切られる。
【００３４】
次に、動画像復号装置は、復号対象ＣＵ（符号化ＣＵ）のパレットに新規に追加されるエントリの個数を、ｎｕｍ＿ｓｉｇｎａｌｌｅｄ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓから取得し、その個数だけ新規エントリの画素値を復号する。この新規エントリに対応するシンタックスは、ｎｅｗ＿ｐａｌｅｔｔｅ＿ｅｎｔｒｉｅｓ［ｃＩｄｘ］［ｉ］である。ここで、変数ｃＩｄｘとｉは、それぞれ輝度や色差等の色成分のインデックスと、符号化対象ＣＵのパレットに新しく追加されるエントリを復号するループのためのインデックスを表す。
【００３５】
以上のような手順により、復号対象ＣＵのパレットが確定する。その後、動画像復号装置は、パレットを用いて復号対象ＣＵを復号する。復号対象ＣＵ内の画素がパレットに存在するインデックスを表す場合、動画像復号装置は、そのインデックスによって指定される画素値をパレットから取得する。一方、復号対象ＣＵ内の画素がパレットに存在しない色を表す場合、動画像復号装置は、ｐａｌｅｔｔｅ＿ｅｓｃａｐｅ＿ｖａｌとして新規に画素値を復号する。
【００３６】
非特許文献１には、動画像符号化装置におけるパレット生成方法が記載されている。このパレット生成方法によれば、符号化対象ＣＵのパレットを生成する際、直前に符号化されたＣＵのパレットのエントリの画素値と、符号化対象ＣＵ内の画素の画素値とが比較される。そして、直前のパレットに符号化対象ＣＵの画素と同じ色が存在する場合、そのエントリの位置を示すランを指定することで、直前のパレットのエントリが再利用される。その後、符号化対象ＣＵ内で頻度の高い他の色も、パレットに追加される。
【００３７】
図３は、このようなパレット生成方法によるパレット生成処理の例を示している。図１のパレット生成部１０１は、直前に符号化されたＣＵのパレット３０１のエントリを利用して、符号化対象ＣＵのパレット３０２を生成する。パレット３０１には、色Ａ〜色Ｅを含む複数の色が登録されている。
【００３８】
エントリ候補生成部１１１は、符号化対象ＣＵ内の色の頻度ヒストグラム３０３を生成し、頻度ヒストグラム３０３において頻度の高い色から順に所定数の色を、エントリ候補として抽出する。比較部１１２は、エントリ候補の色とパレット３０１に登録された色とを比較する。
【００３９】
この例では、頻度ヒストグラム３０３に含まれる色Ａ、色Ｆ、色Ｄ、色Ｇ、及び色Ｃが、エントリ候補として抽出される。このうち、色Ａは、パレット３０１内のインデックス“０”が示すエントリの色と同じであるため、このエントリがパレット３０２において再利用される。そこで、生成部１１３は、パレット３０１内においてインデックス“０”のエントリを示すラン“０”を符号化して、パレット３０２のインデックス“０”の位置に登録する。
【００４０】
同様に、頻度ヒストグラム３０３に含まれる色Ｃ及び色Ｄは、パレット３０１内のインデックス“２”及びインデックス“３”が示すエントリの色と同じであるため、これらのエントリがパレット３０２において再利用される。
【００４１】
そこで、生成部１１３は、パレット３０１内においてインデックス“０”のエントリとインデックス“２”のエントリとの距離を表すラン“２”を符号化して、パレット３０２のインデックス“１”の位置に登録する。そして、生成部１１３は、パレット３０１内においてインデックス“２”のエントリとインデックス“３”のエントリとの距離を表すラン“１”を符号化して、パレット３０２のインデックス“２”の位置に登録する。
【００４２】
次に、生成部１１３は、頻度ヒストグラム３０３に含まれる残りのエントリ候補を、新規のエントリとしてパレット３０２に追加し、画素値を用いて直接符号化する。このとき、生成部１１３は、残りのエントリ候補の個数を符号化した後に、頻度の高い色から順に続きのインデックスを割り当て、色を表す画素値と割り当てたインデックスとを符号化する。これにより、色Ｆはインデックス“３”の位置に登録され、色Ｇはインデックス“４”の位置に登録される。
【００４３】
このようなパレット生成処理によれば、画像内に頻出する色のエントリは、パレットから外されることなく残り続けるため、複数のＣＵが符号化されていくにつれて、徐々に小さなインデックスが割り当てられるようになる。そして、頻出する色のエントリ間におけるインデックスの差分が小さくなるため、エントリ間の距離を表すランも小さくなる。このため、再利用されるエントリを符号化するための符号量は減少する。
【００４４】
図４は、図３のパレット生成処理における符号化対象ＣＵの次のＣＵに対するパレット生成処理の例を示している。符号化対象ＣＵの頻度ヒストグラム３０３に色Ｂが含まれていない場合、頻度ヒストグラム３０３に基づいて生成されるパレット３０２には、色Ｂのエントリは含まれない。
【００４５】
しかし、符号化対象画像全体において色Ｂの頻度が高い場合、符号化対象ＣＵよりも後に符号化されるＣＵにおいて、色Ｂは遠からず再び出現することになる。例えば、符号化対象ＣＵの次のＣＵにおいて色Ｂが再び出現し、そのＣＵの頻度ヒストグラム４０１が生成された場合、頻度ヒストグラム４０１に基づいて、そのＣＵのパレット４０２が生成される。
【００４６】
この例では、頻度ヒストグラム４０１に含まれる色Ａ、色Ｂ、色Ｆ、色Ｄ、及び色Ｃが、エントリ候補として抽出される。このうち、色Ａは、パレット３０２内のインデックス“０”が示すエントリの色と同じであるため、このエントリがパレット４０２において再利用される。そこで、生成部１１３は、パレット３０２内においてインデックス“０”のエントリを示すラン“０”を符号化して、パレット４０２のインデックス“０”の位置に登録する。
【００４７】
同様に、頻度ヒストグラム４０１に含まれる色Ｃ、色Ｄ、及び色Ｆは、パレット３０２内のインデックス“１”、インデックス“２”、及びインデックス“３”が示すエントリの色と同じであるため、これらのエントリがパレット４０２において再利用される。
【００４８】
そこで、生成部１１３は、パレット３０２内においてインデックス“０”のエントリとインデックス“１”のエントリとの距離を表すラン“１”を符号化して、パレット４０２のインデックス“１”の位置に登録する。
【００４９】
次に、生成部１１３は、パレット３０２内においてインデックス“１”のエントリとインデックス“２”のエントリとの距離を表すラン“１”を符号化して、パレット４０２のインデックス“２”の位置に登録する。そして、生成部１１３は、パレット３０２内においてインデックス“２”のエントリとインデックス“３”のエントリとの距離を表すラン“１”を符号化して、パレット４０２のインデックス“３”の位置に登録する。
【００５０】
次に、生成部１１３は、頻度ヒストグラム４０１に含まれる残りのエントリ候補を、新規のエントリとしてパレット４０２に追加し、画素値を用いて直接符号化する。これにより、パレット３０１のインデックス“１”の位置に登録されていた色Ｂが、パレット４０２のインデックス“４”の位置に再登録される。
【００５１】
例えば、ＹＵＶ色空間のそれぞれの色成分が８ビットで表される場合、色Ｂを再登録するための追加コストとして、２４ビットの符号量が発生する。さらに、新規に追加される色Ｂのエントリは、再利用されるエントリの後ろに追加される。このため、パレット４０２を用いるＣＵに後続する別のＣＵのパレットにおいて、そのエントリを再利用する場合、エントリを指定するランの値が大きくなり、ランの符号量が増大する。
【００５２】
このように、非特許文献１のパレット生成方法では、直前のＣＵに含まれる色と符号化対象ＣＵに含まれる色との間の局所的な相関のみに基づいて、再利用されるエントリを決定している。このため、符号化対象画像全体で頻度が高くても、たまたま符号化対象ＣＵに含まれていなかった色は、パレットから外されてしまい、その色をパレットに再登録するための符号量が増大する。
【００５３】
図５は、実施形態の画像符号化装置の構成例を示している。図５の画像符号化装置５０１は、決定部５１１、生成部５１２、及びパレット符号化部５１３を含む。
【００５４】
図６は、図５の画像符号化装置５０１が行う画像符号化処理の例を示すフローチャートである。まず、決定部５１１は、符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、第２パレットのエントリ候補ではない場合、符号化対象画像の画素値分布に基づいて、第１指標と第２指標とを求める（ステップ６０１）。
【００５５】
第２パレットは、第１ブロックよりも後に符号化される第２ブロックの符号化に用いられるパレットである。第１指標は、特定のエントリを第２パレットに含める場合に発生する符号量を示し、第２指標は、特定のエントリを第２パレットに含めない場合に発生する符号量を示す。
【００５６】
次に、決定部５１１は、第１指標と第２指標とに基づいて、第２パレットに含めるエントリを決定する（ステップ６０２）。生成部５１２は、決定部５１１が決定したエントリを含む第２パレットを生成し（ステップ６０３）、パレット符号化部５１３は、第２パレットを用いて第２ブロックを符号化する（ステップ６０４）。
【００５７】
このような画像符号化装置５０１によれば、パレット符号化の符号化効率を向上させることができる。
【００５８】
図７は、図５の画像符号化装置５０１の具体例を示している。図７の画像符号化装置５０１は、パレット生成部７０１、パレット符号化部７０２、減算部７０３、変換部７０４、量子化部７０５、及びエントロピー符号化部７０６を含む。さらに、画像符号化装置５０１は、逆量子化部７０７、逆変換部７０８、加算部７０９、選択部７１０、イントラ予測部７１１、インター予測部７１２、及び復号画像記憶部７１３を含む。パレット符号化部７０２は、図５のパレット符号化部５１３に対応する。
【００５９】
画像符号化装置５０１は、例えば、ハードウェア回路として実装することができる。この場合、画像符号化装置５０１の各構成要素を個別の回路として実装してもよく、１つの集積回路として実装してもよい。
【００６０】
画像符号化装置５０１は、入力される符号化対象動画像を符号化し、符号化動画像をビットストリームとして出力する。符号化対象動画像は、複数の時刻それぞれにおける複数の画像を含む。これらの画像の各々が、符号化対象画像（符号化対象ピクチャ）として画像符号化装置５０１に入力される。各画像は、カラー画像であってもよく、モノクロ画像であってもよい。画像がカラー画像である場合、画素値はＲＧＢ形式であってもよく、ＹＵＶ形式であってもよい。
【００６１】
符号化対象画像は、ブロック毎に分割され、各ブロックが符号化対象ブロックとして、パレット生成部７０１、減算部７０３、及びインター予測部７１２に入力される。ＨＥＶＣの場合、各ブロックはＣＴＵ又はＣＵに対応する。
【００６２】
パレット生成部７０１は、符号化対象ブロックに含まれる各画素の画素値から、符号化対象ブロックのパレットを生成し、生成したパレットをパレット符号化部７０２へ出力する。パレット符号化部７０２は、パレット生成部７０１から出力されるパレットを用いて、符号化対象ブロックの各画素の画素値をインデックスに置き換えることで、符号化対象ブロックを符号化し、符号化結果をエントロピー符号化部７０６へ出力する。
【００６３】
減算部７０３は、符号化対象ブロックと、選択部７１０から出力される予測ブロック画像との差分を表す予測誤差信号を、変換部７０４へ出力する。変換部７０４は、直交変換によって、予測誤差信号を空間信号から空間周波数信号に変換し、水平方向及び垂直方向の周波数成分に分離された周波数信号を、量子化部７０５へ出力する。
【００６４】
量子化部７０５は、変換部７０４から出力される周波数信号を、所定のステップサイズで量子化して係数情報を生成し、その係数情報を符号化結果として、エントロピー符号化部７０６及び逆量子化部７０７へ出力する。量子化を行うことによって、周波数信号がスケールダウンされ、符号量が削減される。
【００６５】
逆量子化部７０７は、量子化部７０５から出力される符号化結果を逆量子化することで、係数情報の信号を元のスケールに戻し、逆量子化された周波数信号を逆変換部７０８へ出力する。逆変換部７０８は、逆直交変換によって、逆量子化部７０７から出力される周波数信号を空間信号に戻し、再構成予測誤差信号を加算部７０９へ出力する。
【００６６】
加算部７０９は、選択部７１０から出力される予測ブロック画像と、再構成予測誤差信号とを加算することで復号ブロック画像を生成し、生成した復号ブロック画像をイントラ予測部７１１及び復号画像記憶部７１３へ出力する。復号画像記憶部７１３は、復号ブロック画像を蓄積し、蓄積された復号ブロック画像を参照画像として、イントラ予測部７１１及びインター予測部７１２へ出力する。
【００６７】
イントラ予測部７１１は、参照画像を用いて、符号化対象画像内の既に符号化された周辺画素の画素値から、符号化対象ブロックのイントラ予測ブロック画像を生成し、イントラ予測ブロック画像を選択部７１０へ出力する。インター予測部７１２は、参照画像を用いて、符号化対象ブロックに対する動き補償を行うことで、インター予測ブロック画像を生成し、インター予測ブロック画像を選択部７１０へ出力する。
【００６８】
選択部７１０は、イントラ予測部７１１から出力されるイントラ予測ブロック画像、又はインター予測部７１２から出力されるインター予測ブロック画像のいずれか一方を選択し、選択した予測ブロック画像を減算部７０３及び加算部７０９へ出力する。
【００６９】
エントロピー符号化部７０６は、パレット符号化部７０２及び量子化部７０５から出力される符号化結果と、イントラ予測部７１１及びインター予測部７１２から出力される予測モードの情報とをエントロピー符号化する。エントロピー符号化では、信号中の各シンボルの出現頻度に応じて、可変長符号が割り当てられる。そして、エントロピー符号化部７０６は、可変長符号を含むビットストリームを出力する。
【００７０】
画像符号化装置５０１は、複数の画像の符号化結果を含む符号化動画像を、不図示の画像復号装置へ送信し、画像復号装置は、符号化動画像を復号して符号化対象動画像を復元する。
【００７１】
画像符号化装置５０１は、様々な用途に利用される。例えば、画像符号化装置５０１を、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータ、又は携帯電話機に組み込むことも可能である。
【００７２】
図８は、図７のパレット生成部７０１の構成例を示している。図８のパレット生成部７０１は、解析部８０１、記憶部８０２、エントリ候補生成部８０３、記憶部８０４、比較部８０５、決定部８０６、及び生成部８０７を含む。決定部８０６及び生成部８０７は、それぞれ、図５の決定部５１１及び生成部５１２に対応する。
【００７３】
解析部８０１は、符号化対象画像に含まれるすべてのブロックの画素値を解析して、符号化対象画像の画素値分布を表す画素値分布情報を生成し、生成した画素値分布情報を記憶部８０２に格納する。例えば、解析部８０１は、符号化対象画像全体における各色の出現頻度を計算し、複数の色の出現頻度を示す画素値分布情報を生成する。
【００７４】
エントリ候補生成部８０３は、符号化対象ブロックの画素値の中から、符号化対象ブロックのパレットに登録されるエントリ候補を抽出し、抽出したエントリ候補を記憶部８０４に格納する。例えば、エントリ候補生成部８０３は、符号化対象ブロックに含まれる色の頻度ヒストグラムを生成し、頻度の高い色から順に所定数の色をエントリ候補として抽出する。
【００７５】
比較部８０５は、記憶部８０４が記憶するエントリ候補と、生成部８０７からフィードバックされるパレットに含まれるエントリとを比較する。フィードバックされるパレットは、符号化対象ブロックの直前に符号化されたブロックのパレットである。そして、比較部８０５は、エントリ候補と同じ色がフィードバックされたパレットに含まれているか否かを示す比較結果を、決定部８０６へ出力する。
【００７６】
決定部８０６は、比較部８０５が出力する比較結果に基づいて、直前に符号化されたブロックのパレットに含まれるエントリのうち、符号化対象ブロックのパレットのエントリ候補ではないエントリを特定する。次に、決定部８０６は、記憶部８０２が記憶する画素値分布情報に基づいて、特定したエントリをパレットに含める場合に発生する符号量を示す第１指標と、そのエントリをパレットに含めない場合に発生する符号量を示す第２指標とを求める。
【００７７】
そして、決定部８０６は、第１指標と第２指標とに基づいて、そのエントリを符号化対象ブロックのパレットに含めるか否かを決定し、パレットに含めるエントリを示すエントリ情報を、生成部８０７へ出力する。生成部８０７は、決定部８０６が出力するエントリ情報に従って、パレットに残すエントリと、パレットに新規に追加するエントリとを含む、符号化対象ブロックのパレットを生成する。
【００７８】
図９は、図８のパレット生成部７０１が行うパレット生成処理の例を示している。パレット生成部７０１は、図３のパレット３０１のエントリを利用して、符号化対象ＣＵのパレット９０２を生成する。パレット３０１は、直前に符号化されたＣＵのパレットである。
【００７９】
解析部８０１は、符号化対象画像全体の画素値を解析して、符号化対象画像の画素値分布を表す画素値分布情報９０１を生成する。例えば、画素値分布情報９０１として、符号化対象画像に含まれるそれぞれの色の出現頻度を表す頻度ヒストグラムを用いることができる。
【００８０】
エントリ候補生成部８０３は、符号化対象ＣＵ内の色の頻度ヒストグラム３０３を生成し、頻度ヒストグラム３０３において頻度の高い色から順に所定数の色を、エントリ候補として抽出する。比較部８０５は、エントリ候補の色とパレット３０１に登録された色とを比較する。
【００８１】
この例では、頻度ヒストグラム３０３に含まれる色Ａ、色Ｆ、色Ｄ、色Ｇ、及び色Ｃが、エントリ候補として抽出される。このうち、色Ａ、色Ｃ、及び色Ｄは、パレット３０１内のインデックス“０”、インデックス“２”、及びインデックス“３”が示すエントリの色と同じであるため、これらのエントリがパレット９０２において再利用される。そこで、決定部８０６は、色Ａ、色Ｃ、及び色Ｄのエントリをパレット９０２に含めると決定する。
【００８２】
一方、パレット３０１内のインデックス“１”が示すエントリの色Ｂは、符号化対象ＣＵには存在しないため、エントリ候補に含まれていない。
【００８３】
そこで、決定部８０６は、画素値分布情報９０１に基づいて、符号化対象ＣＵよりも後に符号化されるＣＵにおいて色Ｂが発生する発生確率を求める。そして、決定部８０６は、色Ｂの発生確率に基づいて、色Ｂをパレット９０２に含める場合に発生する符号量を示す第１指標と、色Ｂをパレット９０２に含めない場合に発生する符号量を示す第２指標とを求める。
【００８４】
第２指標が示す符号量が第１指標が示す符号量よりも大きい場合、決定部８０６は、色Ｂのエントリをパレット９０２に含めると決定する。一方、第２指標が示す符号量が第１指標が示す符号量以下である場合、決定部８０６は、色Ｂのエントリをパレット９０２に含めないと決定する。この例では、第２指標が示す符号量が第１指標が示す符号量よりも大きいため、色Ｂのエントリをパレット９０２に含めると決定される。したがって、パレット３０１内のインデックス“０”〜インデックス“３”が示す４個のエントリが、パレット９０２内に残される。
【００８５】
まず、生成部８０７は、パレット３０１内においてインデックス“０”のエントリを示すラン“０”を符号化して、パレット９０２のインデックス“０”の位置に登録する。次に、生成部８０７は、パレット３０１内においてインデックス“０”のエントリとインデックス“１”のエントリとの距離を表すラン“１”を符号化して、パレット９０２のインデックス“１”の位置に登録する。
【００８６】
次に、生成部８０７は、パレット３０１内においてインデックス“１”のエントリとインデックス“２”のエントリとの距離を表すラン“１”を符号化して、パレット９０２のインデックス“２”の位置に登録する。そして、生成部８０７は、パレット３０１内においてインデックス“２”のエントリとインデックス“３”のエントリとの距離を表すラン“１”を符号化して、パレット９０２のインデックス“３”の位置に登録する。
【００８７】
決定部８０６は、さらに、パレット３０１に含まれていない残りのエントリ候補である色Ｆ及び色Ｇを、パレット９０２に含めると決定する。そこで、生成部１１３は、色Ｆ及び色Ｇの画素値を含むエントリを、それぞれ、パレット９０２のインデックス“４”及び“５”の位置に登録する。
【００８８】
このように、決定部８０６は、符号化対象画像全体における色の出現頻度に基づいて、その色のエントリをパレットに残した場合に発生する符号量と、そのエントリをパレットから外した場合に発生する符号量とを確率的に推定する。推定された２種類の符号量を比較して、その色をパレットに残すか否かを決定することで、符号化対象画像のパレットの符号量を確率的に最適化することが可能になる。
【００８９】
次に、画素値分布情報に含まれるｉ番目の色に対する第１指標及び第２指標の計算方法について説明する。決定部８０６は、符号化対象画像の画素数に対するｉ番目の色の画素数の比率を計算し、計算した比率を、符号化対象ブロックよりも後に符号化されるブロックにおいて、その色が発生する発生確率ｐｉとして用いる。
【００９０】
ｉ番目の色のエントリを符号化対象ブロックのパレットに残した場合、そのエントリがパレット内の比較的小さなインデックスの位置に挿入されるため、パレットに残されるエントリのランが短くなる。しかし、パレット内にｉ番目の色のエントリを保持し続けるための符号が発生する。さらに、登録されるエントリの個数が増加するため、インデックスの符号量も増加する。
【００９１】
この場合、決定部８０６は、ｉ番目の色のエントリを保持し続ける場合のランの符号量を用いて、次式により、発生する符号量を示す第１指標Ｑ１を計算することができる。
【００９２】
Ｑ１＝ランの符号量      （１）
【００９３】
一方、ｉ番目の色のエントリを符号化対象ブロックのパレットから外して、それよりも後のブロックのパレットに再登録した場合、パレットに残されたエントリの後ろにそのエントリが新規に登録され、画素値を登録するための符号が発生する。しかし、パレット内にｉ番目の色のエントリを保持するための符号量は不要になる。
【００９４】
この場合、決定部８０６は、発生確率ｐｉと、ｉ番目の色の画素値の符号量と、その色を再登録したパレットのランの符号量と、その色を再登録しないパレットのランの符号量とを用いて、次式により、発生する符号量を示す第２指標Ｑ２を計算することができる。
【００９５】
Ｑ２＝（画素値の符号量＋再登録したパレットのランの符号量）×ｐｉ
＋再登録しないパレットのランの符号量×（１−ｐｉ）          （２）
【００９６】
式（２）の画素値の符号量は、符号化対象ブロックのパレットから外された色が、それよりも後のブロックに出現した場合に、そのブロックのパレットにその色のエントリを再登録するための符号量に対応する。色を再登録するための画素値の符号量は、直前のブロックのパレットのエントリを再利用するためのランの符号量よりも大きいため、発生確率ｐｉがある程度の大きさであれば、式（２）の第１項が第２項よりも支配的になると考えられる。
【００９７】
まず、ランとラン符号との対応関係がtruncated unary二値化によって表される場合を考える。truncated unary二値化は、値の区切り文字（termination code）を“０”として、数字を二値化する方法である。
【００９８】
図１０は、非特許文献１に記載されたtruncated unary二値化の符号列の例を示している。図１０の符号列によれば、ラン“０”は１つの値で表され、ラン“１”は２つの値で表され、ラン“２”は３つの値で表される。符号列中の値が“０”及び“１”となる確率がそれぞれ５０％であり、１つの値を表すのに１ビットを使用するバイパス符号化を実施した場合、ラン“０”、ラン“１”、及びラン“２”は、それぞれ、１ビット、２ビット、及び３ビットで表される。
【００９９】
なお、図１０の符号列において、区切り文字を表す“０”と数字を表す“１”とを反転させて用いてもよい。二値化方法は、truncated unary二値化に限られるものではない。例えば、exponential Golomb符号化を用いて、ランを二値化することもできる。
【０１００】
図１１は、非特許文献１に記載されたexponential Golomb符号化の符号列の例を示している。図１１の符号列によれば、ラン“０”は１つの値で表され、ラン“１”は３つの値で表され、ラン“２”も３つの値で表される。符号列中の値が“０”及び“１”となる確率がそれぞれ５０％であり、１つの値を表すのに１ビットを使用するバイパス符号化を実施した場合、ラン“０”、ラン“１”、及びラン“２”は、それぞれ、１ビット、３ビット、及び３ビットで表される。
【０１０１】
図１２は、第１指標及び第２指標の計算方法の例を示している。この例では、簡単のため、truncated unary二値化を採用している。色Ｂ及び色Ｅが直前に符号化されたＣＵのパレットには含まれているが、符号化対象ＣＵには含まれていない場合、これらの色に対して指標Ｑ１及び指標Ｑ２が計算される。
【０１０２】
まず、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットから外した後、符号化対象ＣＵの次のＣＵにおいて色Ｂ及び色Ｅがエントリ候補として抽出された場合、図１２（ａ）に示すように、色Ｂ及び色Ｅのエントリがパレット１２０１に再登録される。
【０１０３】
この例では、パレット１２０１の色Ａ、色Ｃ、色Ｄ、色Ｆ、及び色Ｇのランは、それぞれ、“０”、“２”、“１”、“２”、及び“１”である。この場合、図１０のtruncated unary二値化を適用することで、色Ａ、色Ｃ、色Ｄ、色Ｆ、及び色Ｇのランの符号量は、それぞれ、１ビット、３ビット、２ビット、３ビット、及び２ビットになる。したがって、パレット１２０１のランの符号量は、合計１１ビットになる。
【０１０４】
また、１つの色の画素値の符号量が２４ビットである場合、再登録される色Ｂ及び色Ｅのエントリの符号量は、合計４８ビットになる。
【０１０５】
一方、符号化対象ＣＵ次のＣＵにおいて色Ｂ及び色Ｅがエントリ候補として抽出されなかった場合、色Ｂ及び色Ｅを再登録しないパレット１２０２が生成される。
【０１０６】
この例では、パレット１２０２の色Ａ、色Ｃ、色Ｄ、色Ｆ、及び色Ｇのランは、それぞれ、“０”、“１”、“１”、“１”、及び“１”である。この場合、図１０のtruncated unary二値化を適用することで、色Ａ、色Ｃ、色Ｄ、色Ｆ、及び色Ｇのランの符号量は、それぞれ、１ビット、２ビット、２ビット、２ビット、及び２ビットになる。したがって、パレット１２０２のランの符号量は、合計９ビットになる。
【０１０７】
色Ｂ及び色Ｅの発生確率ｐｉがともにｐである場合、指標Ｑ２は、式（２）を用いて、次式のように計算される。
【０１０８】
Ｑ２＝（４８ビット＋１１ビット）×ｐ＋９ビット×（１−ｐ）
＝５９ビット×ｐ＋９ビット×（１−ｐ）                    （３）
【０１０９】
次に、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットに残した後、符号化対象ＣＵの次のＣＵにおいて色Ｂ及び色Ｅがエントリ候補として抽出された場合、図１２（ｂ）に示すように、パレット１２０３が生成される。
【０１１０】
この例では、パレット１２０３の色Ａのランは“０”であり、色Ｂ〜色Ｇのランは“１”である。この場合、図１０のtruncated unary二値化を適用することで、色Ａのランの符号量は１ビットになり、色Ｂ〜色Ｇのランの符号量は２ビットになる。したがって、パレット１２０３のランの符号量は、合計１３ビットになる。
【０１１１】
一方、符号化対象ＣＵの次のＣＵにおいて色Ｂ及び色Ｅがエントリ候補として抽出されなかった場合でも、色Ｂ及び色Ｅのエントリを保持し続けるため、それらの色を残したパレット１２０４が生成される。パレット１２０４のランの符号量は、パレット１２０３の場合と同様に、合計１３ビットになる。
【０１１２】
したがって、指標Ｑ１は、式（１）を用いて、次式のように計算される。
【０１１３】
Ｑ１＝１３ビット      （４）
【０１１４】
例えば、符号化対象画像における色Ｂ及び色Ｅの出現頻度が大きく、発生確率ｐが大きい場合、式（３）の第１項が支配的になるため、Ｑ２がＱ１よりも大きくなる。この場合、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットに残すと決定される。
【０１１５】
逆に、符号化対象画像における色Ｂ及び色Ｅの出現頻度が小さく、発生確率ｐが小さい場合、式（３）の第２項の方が支配的になるため、Ｑ２がＱ１よりも小さくなる。この場合、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットに残さないと決定される。
【０１１６】
発生確率ｐが小さくなればなるほど、式（３）の第１項の影響が小さくなるため、式（３）のＱ２と式（４）のＱ１とが等しいと仮定することで、２種類の符号量がバランスする発生確率ｐｍを求めることができる。式（３）のＱ２と式（４）のＱ１とが等しいとき、次式が成り立つ。
【０１１７】
５９ビット×ｐｍ＋９ビット×（１−ｐｍ）＝１３ビット      （５）
【０１１８】
式（５）より、ｐｍは、次式のように計算される。
【０１１９】
ｐｍ＝（１３ビット−９ビット）／（５９ビット−９ビット）
＝４ビット／５０ビット
＝０．０８                                                  （６）
【０１２０】
したがって、発生確率ｐが０．０８よりも大きい場合、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットに残すと決定され、発生確率ｐが０．０８以下である場合、色Ｂ及び色Ｅのエントリを符号化対象ＣＵのパレットに残さないと決定される。
【０１２１】
図１３は、図８のパレット生成部７０１が行うパレット生成処理の例を示すフローチャートである。まず、解析部８０１は、符号化対象画像の画素値を解析して、画素値分布情報を生成する（ステップ１３０１）。
【０１２２】
次に、パレット生成部７０１は、符号化対象画像内のブロック毎に、ステップ１３０２〜ステップ１３０９のループ処理を行う。まず、エントリ候補生成部８０３は、符号化対象ブロックの画素値の中から、符号化対象ブロックのエントリ候補を抽出する（ステップ１３０２）。次に、比較部８０５は、エントリ候補と、直前に符号化されたブロックのパレットのエントリとを比較する（ステップ１３０３）。
【０１２３】
直前に符号化されたブロックのパレットの特定のエントリがエントリ候補に含まれていない場合（ステップ１３０３，ＮＯ）、決定部８０６は、画素値分布情報に基づいて、特定のエントリに対する指標Ｑ１及び指標Ｑ２を求める（ステップ１３０４）。そして、決定部８０６は、指標Ｑ１と指標Ｑ２とを比較する（ステップ１３０５）。
【０１２４】
指標Ｑ２が指標Ｑ１よりも大きい場合（ステップ１３０５，ＹＥＳ）、決定部８０６は、特定のエントリを符号化対象ブロックのパレットに含めると決定する（ステップ１３０６）。一方、指標Ｑ２が指標Ｑ１以下である場合（ステップ１３０５，ＮＯ）、決定部８０６は、特定のエントリを符号化対象ブロックのパレットに含めないと決定する（ステップ１３０７）。
【０１２５】
次に、生成部８０７は、パレットに残すエントリと、パレットに新規に追加するエントリとを含む、符号化対象ブロックのパレットを生成する（ステップ１３０９）。指標Ｑ２が指標Ｑ１よりも大きい場合、直前に符号化されたブロックのパレットのエントリのうち、エントリ候補に含まれているエントリと、エントリ候補に含まれていない特定のエントリとが、パレットに残される。一方、指標Ｑ２が指標Ｑ１以下である場合、直前に符号化されたブロックのパレットのエントリのうち、エントリ候補に含まれているエントリのみがパレットに残される。
【０１２６】
そして、パレット生成部７０１は、次のブロックを符号化対象ブロックとして用いて、ステップ１３０２以降の処理を繰り返す。
【０１２７】
一方、直前に符号化されたブロックのパレットのすべてのエントリがエントリ候補に含まれている場合（ステップ１３０３，ＹＥＳ）、決定部８０６は、それらのエントリを符号化対象ブロックのパレットに含めると決定する（ステップ１３０８）。そして、パレット生成部７０１は、ステップ１３０９以降の処理を行う。
【０１２８】
符号化対象画像内のすべてのブロックのパレットが生成された場合、パレット生成部７０１は、処理を終了する。このようなパレット生成処理によれば、符号化対象画像全体の画素値分布情報に基づいて、パレットの符号量を最適化することができる。
【０１２９】
ところで、パレット生成部７０１は、符号化対象画像全体の画素値を解析する代わりに、符号化対象ブロックよりも前に符号化されたブロックと符号化対象ブロックの画素値を解析して、符号化対象画像の画素値分布情報を段階的に生成することも可能である。
【０１３０】
この場合、解析部８０１は、符号化対象画像に含まれるブロックの画素値の解析結果を、ブロック毎に記憶部８０２に蓄積する。そして、解析部８０１は、符号化対象ブロックの画素値を解析した解析結果と、記憶部８０２に蓄積された解析結果とを用いて、画素値分布情報を生成し、生成した画素値分布情報を記憶部８０２に格納する。
【０１３１】
これにより、符号化対象画像の画素値の統計情報がブロック毎に蓄積されていき、画素値分布情報がブロック毎に更新される。決定部８０６は、ブロック毎に更新される画素値分布情報に基づいて、第１指標及び第２指標を求める。
【０１３２】
図１４は、画素値分布情報をブロック毎に更新するパレット生成処理の例を示すフローチャートである。パレット生成部７０１は、符号化対象画像内のブロック毎に、ステップ１４０１〜ステップ１４０９のループ処理を行う。
【０１３３】
まず、解析部８０１は、符号化対象ブロックの画素値を解析し、得られた解析結果と記憶部８０２に蓄積された解析結果とを用いて、符号化対象画像の画素値分布情報を生成する（ステップ１４０１）。
【０１３４】
ステップ１４０２〜ステップ１４０９の処理は、図１３のステップ１３０２〜ステップ１３０９の処理と同様である。ステップ１４０９の処理の後、パレット生成部７０１は、次のブロックを符号化対象ブロックとして用いて、ステップ１４０１以降の処理を繰り返す。
【０１３５】
このようなパレット生成処理によれば、最初に符号化対象画像全体の画素値分布情報を生成する処理を省略することができ、段階的に生成される画素値分布情報に基づいて、パレットの符号量を最適化することができる。
【０１３６】
図１３及び図１４のパレット生成処理において、解析部８０１は、必ずしも符号化対象画像全体を対象として画素値分布情報を生成する必要はなく、符号化対象画像の部分領域を対象として画素値分布情報を生成してもよい。例えば、解析部８０１は、符号化対象画像を所定サイズの領域に分割し、符号化対象ブロックが属する領域の画素値に基づいて、画素値分布情報を生成することもできる。
【０１３７】
図５及び図７の画像符号化装置５０１の構成は一例に過ぎず、画像符号化装置５０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図７の画像符号化装置５０１において、ブロックの予測符号化を行わない場合、減算部７０３、変換部７０４、量子化部７０５、逆量子化部７０７、逆変換部７０８、及び加算部７０９を省略することができる。この場合、選択部７１０、イントラ予測部７１１、インター予測部７１２、及び復号画像記憶部７１３も省略することができる。エントロピー符号化を行わない場合、エントロピー符号化部７０６を省略することができる。
【０１３８】
図８のパレット生成部７０１の構成は一例に過ぎず、画像符号化装置５０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、画素値分布情報が画像符号化装置５０１の外部から入力される場合、解析部８０１及び記憶部８０２を省略することができる。
【０１３９】
図６、図１３、及び図１４に示したフローチャートは一例に過ぎず、画像符号化装置５０１の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図１３のステップ１３０５又は図１４のステップ１４０５において、Ｑ２とＱ１が一致する場合、決定部８０６は、特定のエントリを符号化対象ブロックのパレットに含めると決定してもよい。
【０１４０】
図２のシンタックス、図１０の符号列、及び図１１の符号列は一例に過ぎず、動画像符号化標準に応じて別のシンタックス又は符号列を用いてもよい。
【０１４１】
図３のパレット３０１、パレット３０２、及び頻度ヒストグラム３０３と、図４の頻度ヒストグラム４０１及びパレット４０２と、図９の画素値分布情報９０１及びパレット９０２と、図１２のパレット１２０１〜パレット１２０４は、一例に過ぎない。符号化対象動画像に応じて別のパレット、頻度ヒストグラム、及び画素値分布情報が生成されることもある。
【０１４２】
式（１）〜式（６）は一例に過ぎず、画像符号化装置５０１の構成又は条件に応じて別の計算式を用いてもよい。例えば、式（２）の画素値の符号量の代わりに、パレットから外された色のエントリを再登録するための別の符号量を用いてもよい。
【０１４３】
パレット符号化が適用される符号化対象画像は、スクリーンコンテンツ画像に限定されるものではなく、画素値のバリエーションが少ない他の画像であってもよい。また、パレット符号化が適用される符号化対象画像は、動画像に限定されるものではなく、静止画像であってもよい。
【０１４４】
図５及び図７画像符号化装置５０１は、ハードウェア回路として実装することもでき、図１５に示すような情報処理装置（コンピュータ）を用いて実装することもできる。
【０１４５】
図１５の情報処理装置は、Central Processing Unit（ＣＰＵ）１５０１、メモリ１５０２、入力装置１５０３、出力装置１５０４、補助記憶装置１５０５、媒体駆動装置１５０６、及びネットワーク接続装置１５０７を備える。これらの構成要素はバス１５０８により互いに接続されている。
【０１４６】
メモリ１５０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、画像符号化処理に用いられるプログラム及びデータを記憶する。メモリ１５０２は、図７の復号画像記憶部７１３、図８の記憶部８０２、及び記憶部８０４として用いることができる。
【０１４７】
ＣＰＵ１５０１（プロセッサ）は、例えば、メモリ１５０２を利用してプログラムを実行することにより、図５の決定部５１１、生成部５１２、及びパレット符号化部５１３として動作する。
【０１４８】
ＣＰＵ１５０１は、メモリ１５０２を利用してプログラムを実行することにより、図７のパレット生成部７０１、パレット符号化部７０２、減算部７０３、変換部７０４、量子化部７０５、及びエントロピー符号化部７０６としても動作する。ＣＰＵ１５０１は、逆量子化部７０７、逆変換部７０８、加算部７０９、選択部７１０、イントラ予測部７１１、及びインター予測部７１２としても動作する。
【０１４９】
ＣＰＵ１５０１は、メモリ１５０２を利用してプログラムを実行することにより、図８の解析部８０１、エントリ候補生成部８０３、比較部８０５、決定部８０６、及び生成部８０７としても動作する。
【０１５０】
入力装置１５０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置１５０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。
【０１５１】
補助記憶装置１５０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１５０５は、ハードディスクドライブであってもよい。補助記憶装置１５０５は、情報処理装置は、補助記憶装置１５０５にプログラム及びデータを格納しておき、それらをメモリ１５０２にロードして使用することができる。
【０１５２】
媒体駆動装置１５０６は、可搬型記録媒体１５０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１５０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１５０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、又はUniversal Serial Bus（ＵＳＢ）メモリであってもよい。ユーザ又はオペレータは、この可搬型記録媒体１５０９にプログラム及びデータを格納しておき、それらをメモリ１５０２にロードして使用することができる。
【０１５３】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ１５０２、補助記憶装置１５０５、及び可搬型記録媒体１５０９のような、物理的な（非一時的な）記録媒体が含まれる。
【０１５４】
ネットワーク接続装置１５０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。ネットワーク接続装置１５０７は、符号化動画像を画像復号装置へ送信することもできる。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１５０７を介して受け取り、それらをメモリ１５０２にロードして使用することもできる。
【０１５５】
なお、情報処理装置が図１５のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要の場合は、入力装置１５０３及び出力装置１５０４を省略してもよい。また、情報処理装置が可搬型記録媒体１５０９にアクセスしない場合は、媒体駆動装置１５０６を省略してもよい。
【０１５６】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１５７】
図１乃至図１５を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する符号量を示す第１指標と、前記特定のエントリを前記第２パレットに含めない場合に発生する符号量を示す第２指標とを、前記符号化対象画像の画素値分布に基づいて求め、前記第１指標と前記第２指標とに基づいて、前記第２パレットに含めるエントリを決定する決定部と、
前記決定部が決定した前記エントリを含む前記第２パレットを生成する生成部と、
前記第２パレットを用いて前記第２ブロックを符号化するパレット符号化部と、
を備えることを特徴とする画像符号化装置。
（付記２）
前記決定部は、前記画素値分布に基づいて、前記第２ブロックよりも後に符号化される第３ブロックにおいて前記特定のエントリに対応する画素値が発生する発生確率を求め、前記発生確率に基づいて前記第１指標と前記第２指標とを求め、前記第２指標が示す前記符号量が前記第１指標が示す前記符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定することを特徴とする付記１記載の画像符号化装置。
（付記３）
前記符号化対象画像の画素値を解析して、前記画素値分布を表す画素値分布情報を生成する解析部をさらに備え、
前記決定部は、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記１又は２記載の画像符号化装置。
（付記４）
前記第２ブロックよりも前に符号化された複数のブロックの画素値と前記第２ブロックの画素値とを解析して、前記画素値分布を表す画素値分布情報を生成する解析部をさらに備え、
前記決定部は、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記１又は２記載の画像符号化装置。
（付記５）
前記第２指標が示す前記符号量は、前記特定のエントリが前記第２パレットに残されず、前記第３ブロックにおいて前記特定のエントリに対応する画素値が出現した場合に、前記第３ブロックの符号化に用いられる第３パレットに前記特定のエントリを再登録するための符号量を含むことを特徴とする付記１乃至４のいずれか１項に記載の画像符号化装置。
（付記６）
画像符号化装置が、
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する符号量を示す第１指標と、前記特定のエントリを前記第２パレットに含めない場合に発生する符号量を示す第２指標とを、前記符号化対象画像の画素値分布に基づいて求め、
前記第１指標と前記第２指標とに基づいて、前記第２パレットに含めるエントリを決定し、
決定した前記エントリを含む前記第２パレットを生成し、
前記第２パレットを用いて前記第２ブロックを符号化する、
ことを特徴とする画像符号化方法。
（付記７）
前記画像符号化装置は、前記画素値分布に基づいて、前記第２ブロックよりも後に符号化される第３ブロックにおいて前記特定のエントリに対応する画素値が発生する発生確率を求め、前記発生確率に基づいて前記第１指標と前記第２指標とを求め、前記第２指標が示す前記符号量が前記第１指標が示す前記符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定することを特徴とする付記６記載の画像符号化方法。
（付記８）
前記画像符号化装置は、前記符号化対象画像の画素値を解析して、前記画素値分布を表す画素値分布情報を生成し、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記６又は７記載の画像符号化方法。
（付記９）
前記画像符号化装置は、前記第２ブロックよりも前に符号化された複数のブロックの画素値と前記第２ブロックの画素値とを解析して、前記画素値分布を表す画素値分布情報を生成し、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記６又は７記載の画像符号化方法。
（付記１０）
前記第２指標が示す前記符号量は、前記特定のエントリが前記第２パレットに残されず、前記第３ブロックにおいて前記特定のエントリに対応する画素値が出現した場合に、前記第３ブロックの符号化に用いられる第３パレットに前記特定のエントリを再登録するための符号量を含むことを特徴とする付記６乃至９のいずれか１項に記載の画像符号化方法。
（付記１１）
符号化対象画像内の第１ブロックの符号化に用いられた第１パレットに含まれる特定のエントリが、前記第１ブロックよりも後に符号化される第２ブロックの符号化に用いられる第２パレットのエントリ候補ではない場合、前記特定のエントリを前記第２パレットに含める場合に発生する符号量を示す第１指標と、前記特定のエントリを前記第２パレットに含めない場合に発生する符号量を示す第２指標とを、前記符号化対象画像の画素値分布に基づいて求め、
前記第１指標と前記第２指標とに基づいて、前記第２パレットに含めるエントリを決定し、
決定した前記エントリを含む前記第２パレットを生成し、
前記第２パレットを用いて前記第２ブロックを符号化する、
処理をコンピュータに実行させる画像符号化プログラム。
（付記１２）
前記コンピュータは、前記画素値分布に基づいて、前記第２ブロックよりも後に符号化される第３ブロックにおいて前記特定のエントリに対応する画素値が発生する発生確率を求め、前記発生確率に基づいて前記第１指標と前記第２指標とを求め、前記第２指標が示す前記符号量が前記第１指標が示す前記符号量よりも大きい場合、前記特定のエントリを前記第２パレットに含めると決定することを特徴とする付記１１記載の画像符号化プログラム。
（付記１３）
前記コンピュータは、前記符号化対象画像の画素値を解析して、前記画素値分布を表す画素値分布情報を生成し、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記１１又は１２記載の画像符号化プログラム。
（付記１４）
前記コンピュータは、前記第２ブロックよりも前に符号化された複数のブロックの画素値と前記第２ブロックの画素値とを解析して、前記画素値分布を表す画素値分布情報を生成し、前記画素値分布情報を用いて前記第１指標と前記第２指標とを求めることを特徴とする付記１１又は１２記載の画像符号化プログラム。
（付記１５）
前記第２指標が示す前記符号量は、前記特定のエントリが前記第２パレットに残されず、前記第３ブロックにおいて前記特定のエントリに対応する画素値が出現した場合に、前記第３ブロックの符号化に用いられる第３パレットに前記特定のエントリを再登録するための符号量を含むことを特徴とする付記１１乃至１４のいずれか１項に記載の画像符号化プログラム。
【符号の説明】
【０１５８】
１０１、７０１  パレット生成部
１１１、８０３  エントリ候補生成部
１１２、８０５  比較部
１１３、５１２、８０７  生成部
３０１、３０２、４０２、９０２、１２０１〜１２０４  パレット
３０３、４０１  頻度ヒストグラム
５０１  画像符号化装置
５１１、８０６  決定部
５１３、７０２  パレット符号化部
７０３  減算部
７０４  変換部
７０５  量子化部
７０６  エントロピー符号化部
７０７  逆量子化部
７０８  逆変換部
７０９  加算部
７１０  選択部
７１１  イントラ予測部
７１２  インター予測部
７１３  復号画像記憶部
８０１  解析部
８０２、８０４  記憶部
９０１  画素値分布情報
１５０１  ＣＰＵ
１５０２  メモリ
１５０３  入力装置
１５０４  出力装置
１５０５  補助記憶装置
１５０６  媒体駆動装置
１５０７  ネットワーク接続装置
１５０８  バス
１５０９  可搬型記録媒体
【図１】
0006662123.tif 000002
【図２】
0006662123.tif 000003
【図３】
0006662123.tif 000004
【図４】
0006662123.tif 000005
【図５】
0006662123.tif 000006
【図６】
0006662123.tif 000007
【図７】
0006662123.tif 000008
【図８】
0006662123.tif 000009
【図９】
0006662123.tif 000010
【図１０】
0006662123.tif 000011
【図１１】
0006662123.tif 000012
【図１２】
0006662123.tif 000013
【図１３】
0006662123.tif 000014
【図１４】
0006662123.tif 000015
【図１５】
0006662123.tif 000016