(57)【特許請求の範囲】
【請求項１】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、他のインデックスに従ってインデックスを導出する所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記所定のモードを前記現在のインデックスに適用した場合に導出されるインデックスを除いたインデックスの集合から前記現在のインデックスを導出する、方法。
【請求項２】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの前のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの前のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する、方法。
【請求項３】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの上のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの上のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する、方法。
【請求項４】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する装置であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、他のインデックスに従ってインデックスを導出する所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記所定のモードを前記現在のインデックスに適用した場合に導出されるインデックスを除いたインデックスの集合から前記現在のインデックスを導出する導出手段、
を有する装置。
【請求項５】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する装置であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの前のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの前のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する導出手段、
を有する装置
【請求項６】
パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する装置であって、
前記インデックスは、前記インデックスを複数含むパレットに属し、
前記インデックスは、所定の順番で導出され、
前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの上のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、
前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの上のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する導出手段、
を有する装置。
【請求項７】
請求項４〜６のいずれか１項に記載の装置の導出手段として、コンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化および復号に関する。より正確には、本発明はパレットモード符号化方法を対象とする。パレットモードは、high efficiency video coding（ＨＥＶＣ：ＩＳＯ／ＩＥＣ  ２３００８−２  ＭＰＥＧ−Ｈ  Ｐａｒｔ２／  ＩＴＵ−Ｔ  Ｈ．２６５）国際規格のレンジ拡張の範囲に示されている、新しい符号化方法である。この方法は、「スクリーンコンテンツ」ビデオシーケンスを対象とするビデオ符号化に有効である。
【０００２】
本発明は、効率的な符号化方法を使用することによってパレットモードの符号化効率を改善する。
【背景技術】
【０００３】
本明細書におけるパレットは、インデックスと画素値とを関連付けるエントリから成る参照テーブルとして定義される。必ずしもそうとは限らないが一般的には、画素の値は、その画素に関連付けられた各色成分の値によって構成され、その結果カラーパレットとなる。その一方で、画素の値は単一の画素成分で構成されていてもよく、その結果単色パレットとなる。
【０００４】
画素のブロックを符号化するこのモードは、一般的にパレット符号化モードと称される。例えば、high efficiency video coding（ＨＥＶＣ：ＩＳＯ／ＩＥＣ  ２３００８−２  ＭＰＥＧ−Ｈ  Ｐａｒｔ２１  ＩＴＵ−Ｔ  Ｈ．２６５）国際規格のレンジ拡張にこのモードを採用することが考えられる。
【０００５】
あるビデオシーケンス中の画像を符号化するとき、画像はまず、符号化ツリーブロック（ＣＴＢ：Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｂｌｏｃｋ）と称される同じサイズの画素の符号化エンティティに分割される。符号化ツリーブロックのサイズは通常６４×６４画素である。各符号化ツリーブロックはその後、より小さいブロックの階層ツリーに分割されてもよく、そのサイズは様々であり、これらは符号化する実際の画素ブロックである。符号化するこれらの小さいブロックは、符号化ユニット（ＣＵ：Ｃｏｄｉｎｇ  Ｕｎｉｔ）と称される。
【０００６】
特定の符号化ユニットの符号化は、通常は予測的である。つまり、予測ブロックが最初に決定される。次に、予測ブロックと符号化ユニットとの差が計算される。この差は残差と呼ばれる。次に、この残差が圧縮される。符号化ユニットの実際の符号化情報は、予測ブロックおよび圧縮残差を決定する方法を示す何らかの情報を含む。最良の予測ブロックは、効率的に圧縮できる少ない残差を得るために、符号化ユニットと可能な限り類似するブロックである。
【０００７】
符号化モードは、符号化ユニットの予測符号化方法のための予測ブロックを決定するために使用される方法に基づいて定義される。
【０００８】
第一の符号化モードは、ＩＮＴＲＡモードと称される。ＩＮＴＲＡモードによれば、予測ブロックは、現在の画像内の符号化ユニットを直接囲む画素の値に基づいて構築される。予測ブロックは現在の画像のブロックではなく構成物であることは注目すべきである。境界のどの画素が予測ブロックを構築するために実際に使用されるのか、およびこれらがどのように使用されるのかを決定するために、方向が利用される。ＩＮＴＲＡモードの背景にある考え方は、自然画像の全体的な一貫性のため、符号化ユニットを直接囲む画素が現在の符号化ユニットの画素と類似しやすいことである。したがって、これらの周囲画素に基づく予測ブロックを用いて符号化ユニットの画素の値の良好に予測することが可能である。
【０００９】
第二の符号化モードはＩＮＴＥＲモードと称される。ＩＮＴＥＲモードによれば、予測ブロックは別の画像のブロックである。ＩＮＴＥＲモードの背景にある考え方は、シーケンス中の連続画像が一般的によく似ていることである。主な違いは、通常、カメラのスクロールによる、またはその風景の中の移動物体による、これらの画像間の動きに起因する。予測ブロックは、現在の画像内の符号化ユニットの位置に対して相対的に、基準画像内のその位置を付与するベクトルによって決定される。このベクトルは、動きベクトルと称される。このモードによれば、このモードを用いたこのような符号化ユニットの符号化は、動きベクトルおよび圧縮残差を含む動き情報を含む。
【００１０】
本明細書では、パレットモードと呼ばれる第三の符号化モードに焦点を当てる。パレットモードの第一の変形例によれば、任意の符号化ユニットの予測ブロックをパレットからのインデックスのブロックとして定義することが可能である。予測ブロック内の各画素位置に対して、予測ブロックは、符号化ユニット内に同じ位置を有する（すなわち、位置を共有する）画素の値に最も近いパレット内の画素値と関連付けられたインデックスを含む。予測ブロックと符号化ユニットとの差を表す残差がその後、計算され符号化される。パレット内のエントリインデックスは、「レベル」としても知られる。
【００１１】
第一の変形例に係るパレットモードを使用するとき、インデックスの予測ブロックはビットストリームで送信されなければならない。この送信において、インデックスの予測ブロックは３つのシンタックス要素を用いてバイナリ符号化される。「Ｐｒｅｄ  ｍｏｄｅ」と呼ばれる第一のシンタックス要素は、２つの符号化モード間の識別を可能にする。値０を有するＰｒｅｄ  ｍｏｄｅに対応する第一モード（「コピーレフトモード」、「左予測モード」、または「インデックスモード」としても知られる）において、符号化されるレベルの値はビットストリームで送信されなければならない。値１を有するＰｒｅｄモードに対応する第二モードでは、符号化されるレベルの値は、予測ブロック内の前記画素の値から得られる。レベルは送信されなくてもよい。
【００１２】
パレットモードの第二の変形例によれば、パレットから任意の符号化ユニットを予測するインデックスブロックを定義することも可能である。ＣＵ内の各画素位置に対して、インデックスブロックは、符号化ユニット内に同じ位置を有する（すなわち、位置を共有する）画素の値を代表するパレット内の画素値と関連付けられたインデックスを含む。画素値がパレットのインデックス値に関連付けることができない場合には、「エスケープ値」として追加インデックス値も生成される。この「エスケープ値」は、対応する画素値が直接符号化されていることを示す。
【００１３】
第二の変形例によれば、インデックスブロックおよびエスケープ値は、パレットを用いてビットストリームで送信される。第一の変形例について言及されたのと同じシンタックス要素が使用される。
【００１４】
厳密には、インデックスのブロックは画像の一部ではないが、類推により、このレベルのブロックの要素を指すために、用語「画素」が使用されることは注目すべきである。
【００１５】
「Ｌｅｖｅｌ」と呼ばれる第二のシンタックス要素は、第一モードにおけるレベルの値の送信のために定義される。「Ｒｕｎ」と呼ばれる第三のシンタックス要素は、繰り返し値を符号化するために使用される。予測ブロックは左上端から右下端まで、左右および上下へ１行ずつ走査される（ラスター走査順）ことを考慮して、ランシンタックス要素は、同じ符号化を有する予測ブロック内の連続する画素の数となる。Ｐｒｅｄ  Ｍｏｄｅが０の場合、これが同じレベル値を有する予測ブロックの連続画素の数である。Ｐｒｅｄ  Ｍｏｄｅが１の場合、これは上の画素のレベル値に対応するレベル値を有する予測ブロックの連続画素の数である。
【発明の概要】
【００１６】
本発明は、パレットモードの符号化効率を改善することを目的とする。
【００１７】
本発明のある態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、前記インデックスは、前記インデックスを複数含むパレットに属し、前記インデックスは、所定の順番で導出され、前記インデックスは、他のインデックスに従ってインデックスを導出する所定のモードを用いて導出することが可能であり、前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記所定のモードを前記現在のインデックスに適用した場合に導出されるインデックスを除いたインデックスの集合から前記現在のインデックスを導出する。
本発明のある態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、前記インデックスは、前記インデックスを複数含むパレットに属し、前記インデックスは、所定の順番で導出され、前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの前のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの前のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する。
本発明のある態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化又は復号するために使用される、画素値に関連付けられたインデックスを導出する方法であって、前記インデックスは、前記インデックスを複数含むパレットに属し、前記インデックスは、所定の順番で導出され、前記インデックスは、導出対象のインデックスが当該導出対象のインデックスの上のインデックスと等しいことを示す所定のモードを用いて導出することが可能であり、前記所定の順番において第１のインデックスに続く現在のインデックスを導出する場合において、前記所定のモードで前記第１のインデックスが導出されていた場合、前記現在のインデックスの上のインデックスを除いたインデックスの集合から前記現在のインデックスを導出する。
本発明の第一の態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法が提供され、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、インデックスブロックのインデックスは任意の符号化順にしたがって符号化され、インデックスブロック中の現在のインデックスに関連付けられた予測のモードを表す符号化パラメータは、現在のインデックスが上以外の予測モードとしてインデックスブロックの１行目に位置する場合に、推測される。
【００１８】
本発明の第二の態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法が提供され、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、インデックスブロックのインデックスは任意の符号化順に符号化され、現在のインデックスが、上と等しい予測モードを表す関連付けられた符号化パラメータを有し、符号化順で前のインデックスに続く場合に、インデックスブロックの現在のインデックスに関連付けられた予測のモードを表す符号化パラメータは、上に等しい予測モード以外のモードであるとして推測される。
【００１９】
一実施形態において、前記上と等しい予測モード以外の予測モードは、左に等しい予測のモードである。
【００２０】
本発明の第三の態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法が提供され、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、インデックスブロックのインデックスは任意の符号化順に符号化され、現在のインデックスが任意の符号化順にしたがって前のインデックスに続くとき、現在のインデックスの値は、前記前のインデックスに関連付けられた予測モードに応じて推測される。
【００２１】
一実施形態において、現在のインデックスが関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスに適用されたときに前のインデックスと関連付けられた予測のモードによるインデックスの値を含まないインデックス値のリストから推測される。
【００２２】
一実施形態において、現在のインデックスが左に等しい関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスの左側のインデックスの値を含まない値のリストから推測される。
【００２３】
一実施形態において、現在のインデックスが上と等しい予測方向を表す関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスの上のインデックスの値を含まない値のリストから推測される。
【００２４】
一実施形態において、現在のインデックスが上と等しい予測方向を表す関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、左と等しい予測モードは、現在のインデックスの符号化パラメータである。
【００２５】
本発明の第四の態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測するステップを備える、符号化ユニットを符号化または復号する方法が提供され、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、インデックスブロックのインデックスは任意の符号化順に従って符号化され、現在のインデックスが任意の符号化順にしたがって前のインデックスに続く場合に、現在のインデックスの値は、前のインデックスに関連付けられた予測のモードにしたがってインデックスの値を含まないインデックス値のリストから推測され、かつ前記現在のインデックスの値を表す語の長さは、前記値のリスト中の値の数をＭとし、現在のインデックスの値を表す語の長さを表すビットの数をＮとしたとき、Ｍ＝２Ｎ−Ｒなどのように、整数Ｒの値にしたがって修正される。
【００２６】
一実施形態において、現在のインデックスが左と等しい関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスの左側のインデックスの値を含まない値のリストから推測される。
【００２７】
一実施形態において、現在のインデックスが上と等しい予測方向を表す関連付けられた予測モードを有し、符号化順で前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスの上のインデックスの値を含まない値のリストから推測される。
【００２８】
本発明の第五の態様によれば、第一から第三の態様に係る符号化パラメータの値を推測する方法を備える、符号化ユニットを符号化する方法が提供される。
【００２９】
本発明の第六の態様によれば、第一から第三の態様のいずれかに係る符号化パラメータの値を推測する方法を備える、符号化ユニットを復号する方法が提供される。
【００３０】
本発明の第七の態様によれば、第一から第三の態様のいずれかの方法を実行する手段を備える、符号化パラメータを決定する装置が提供される。
【００３１】
本発明の第八の態様によれば、第四または第五の態様のいずれかの符号化方法を実行する手段を備える、ビットストリーム内の符号化ユニットを符号化するための装置が提供される。
【００３２】
本発明の第九の態様によれば、第四から第六の態様のいずれかの復号方法を実行する手段を備える、ビットストリームから符号化ユニットを復号するための装置が提供される。
【００３３】
本発明の第十の態様によれば、プログラミング可能な装置によって実行される場合に第一から第六の態様のいずれかの方法を装置に実行させるための実行可能命令を備える、コンピュータプログラムが提供される。
【００３４】
本発明の第十一の態様によれば、コンピュータまたはプロセッサ上で起動されると、第一から第六の態様のいずれかの方法をコンピュータまたはプロセッサに実行させる、非一時的コンピュータ可読搬送媒体が提供される。
【００３５】
第十二の態様によれば、本発明は、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を提供し、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、パレット符号化モードは現在の符号化ユニットを予測するためにインデックスブロックから予測ブロックを構築するステップを備え、インデックスブロックのインデックスは任意の符号化順に従い符号化され、画素ブロックの現在の画素に関連付けられたパラメータは、画素を符号化する順に応じて文脈情報の機能において推測される。
【００３６】
一実施形態において、第一パラメータは、インデックスブロックの現在のインデックスの予測のモードを表す。
【００３７】
一実施形態において、前記第一パラメータは、現在のインデックスがインデックスブロックのインデックスの列内の第一の位置にある場合に推測される。
【００３８】
一実施形態において、前記第一パラメータは、現在のインデックスが上と等しい予測モードを表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、推測される。
【００３９】
一実施形態において、第二パラメータは、現在のインデックスの値を表す。
【００４０】
一実施形態において、現在のインデックスが左と等しい予測のモードを表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの左側のインデックスの値を含まない値のリストから推測される。
【００４１】
他の実施形態において、現在のインデックスが左と等しい予測のモードを表す関連付けられた第一パラメータを有し、かつ所定の基準を満たす関連付けられた第二パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの左側のインデックスの値を含まない値のリストから推測される。
【００４２】
一実施形態において、前記関連付けられた第二パラメータは、所定値よりも低いときに所定の基準を満たす。
【００４３】
一実施形態において、現在のインデックスが上と等しい予測方向を表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの上のインデックスの値を含まない値のリストから推測される。
【００４４】
一実施形態において、現在のインデックスの第二パラメータを推測するための前記値のリストが、現在のインデックスおよび／または所定値の左側または上のインデックスの値を含まない場合には、第二パラメータを表す語の長さは所定の基準にしたがって調整される。語の長さはゼロ以上である。
【００４５】
一実施形態において、現在のインデックスの第二パラメータを推測するための前記値のリストが少なくとも１つの所定値を含まない場合には、第二パラメータを表す語の長さは所定の基準にしたがって調整される。
【００４６】
一実施形態において、第二パラメータを表す語の長さは、前記値のリスト中の値の数にしたがって調整される。
【００４７】
一実施形態において、第二パラメータを表す語の長さは、前記値のリスト中の値の数をＭとし、第二パラメータを表す語の長さを表すビットの数をＮとしたとき、Ｍ＝２Ｎ−Ｒなど、整数Ｒの値にしたがって調整される。
【００４８】
言い換えると、上記の実施形態において、現在のインデックスがそれぞれ左または上に等しい予測モードを表す関連付けられた第一パラメータを有し、（符号化順で）前のインデックスに続く場合に（または以下に定義されるようなその他いずれか所定の状況で）、現在のインデックスの第二パラメータは、現在のインデックスのそれぞれ左または上のインデックスの値を含まない値のリスト（以下、「スパースリスト」という）から、推測される。このような実施形態において、これは符号化するインデックスの実際の範囲を縮小するために利用することができる。可能な値の最大数を減らすことができ、インデックスが欠落インデックスを上回る場合には、その値もまた減らすことができる。これは、効率的なインデックス符号化方法と組み合わせることができる。Ｍ＝２Ｎ−Ｒ、Ｎ＞０、および０＜Ｒ＜２Ｎの整数となるような要素の数Ｍでは、最も単純となるようにＮビットでインデックスを符号化する代わりに、以下のことが行われる。
−値「ｖａｌ」のインデックスがＲ未満である場合には、これはそのままＮ−１ビットで符号化され、
−そうでなければ、ｖａｌ＋ＲがＮビットで符号化される。
【００４９】
第十三の態様によれば、本発明は、第十二の態様に係るパレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を備える、符号化ユニットを符号化または復号する方法を提供する。
【００５０】
第十四の態様では、本発明は、第十二の態様に係るパレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を実施するモジュールを備える、符号化ユニットを符号化または復号するための装置を提供する。
【００５１】
第十五の態様では、第十二の態様に係る符号化パラメータの値を推測する方法を備える、符号化ユニットを符号化または復号する方法が提供される。デジタル画像の符号化されたシーケンスを含むビデオビットストリームの復号には、符号化ユニットの前記復号が含まれてもよく、またデジタル画像のシーケンスのビットストリームへの符号化には、符号化ユニットの前記符号化が含まれてもよい。
【００５２】
第十六の態様では、第十二の態様に係る方法を実行する手段を備える、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測するための装置が提供される。
【００５３】
第十七の態様では、第十五の態様のそれぞれの符号化または復号方法を実行する手段を備える、符号化ユニットを符号化または復号するための装置が提供される。
【００５４】
第十八の態様では、本発明は、１つ以上のマイクロプロセッサまたはコンピュータによって実行されると、第十二、十三、および十五の態様のいずれかの方法をプロセッサまたはコンピュータに実行させるプログラムを記憶する、非一時的コンピュータ可読媒体を提供する。
【００５５】
第十九の態様では、本発明は、コンピュータプログラムの命令を記憶するコンピュータまたはマイクロプロセッサによって読み取り可能な情報記憶手段を提供し、これは第十二、十三、および十五の態様のいずれかの方法を実施できるようにする。
【００５６】
第二十の態様では、本発明は、プログラミング可能な装置によって実行される場合に、第十二、十三、および十五の態様のいずれかの方法を装置に実行させるための実行可能命令を備える、コンピュータプログラムを提供する。
【００５７】
本発明の第二十一の態様によれば、パレットを使用するパレットモードにしたがって符号化ユニットを処理するためインデックスブロックからインデックスを符号化するために使用される符号化パラメータの値を決定する方法が提供され、各インデックスは符号化ユニットを形成する画素のうちの１つに関連付けられ、前記パレットには画素値に関連付けられた一連のインデックスが含まれ、前記処理には、対応する符号化ユニットを予測するためにインデックスブロックおよびパレットから符号化ユニット予測子を取得するステップを備える。前記方法には、前記画素の空間的近傍にしたがい、また符号化ユニットを形成する画素の符号化順を考慮して、符号化ユニットの画素のうちの１つに関連付けられたインデックスに対し１つ以上の符号化パラメータを決定するステップを備える。
【００５８】
例えば、空間的近傍には、検討される画素の上に位置する画素を含む。
【００５９】
一実施形態において、決定された第一符号化パラメータは、インデックスブロックのインデックスの予測モードを表す。
【００６０】
一実施形態において、第一符号化パラメータは、現在のインデックスの位置がインデックスブロックのインデックスの一列目である場合に、推定される。
【００６１】
一実施形態において、前記第一パラメータは、現在のインデックスが、上に等しい予測のモードを表す関連付けられた第一パラメータを有し、処理順で前のインデックスに続く場合に、推定される。
【００６２】
一実施形態において、決定された第二符号化パラメータは、現在のインデックスの値を表す。
【００６３】
一実施形態において、現在のインデックスが、左と等しい予測モードを表す関連付けられた第一パラメータを有し、処理順で前のインデックスに続く場合、現在のインデックスの第二パラメータは、現在のインデックスの左側のインデックスの値を含まないインデックス値のリストから決定される。
【００６４】
一実施形態において、現在のインデックスが、左と等しい予測のモードを表す関連付けられた第一パラメータを有し、かつ所定条件を満たす関連付けられた第二パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックス値の第二パラメータは、現在のインデックスの左側のインデックスの値を含まないインデックス値のリストから決定される。
【００６５】
一実施形態において、所定条件とは、関連付けられた第二パラメータが所定のインデックス値よりも小さいことをいう。
【００６６】
一実施形態において、現在のインデックスが、上と等しい予測方向を表す関連付けられた第一パラメータを有し、処理順で前のインデックスに続く場合、現在のインデックスの第二パラメータは、現在のインデックスの上のインデックスの値を含まないインデックス値のリストから決定される。
【００６７】
一実施形態において、インデックスが、左と等しい予測方向を表す予測の第一モードを表す関連付けられた第一符号化パラメータを有するインデックスに続く場合、インデックスの第二符号化パラメータは、パレットのサイズから１を差し引いた値以下の多数のインデックス値を含むインデックス値のリストから決定される。
【００６８】
一実施形態において、第一の予測モードは、複数の使用可能な予測モードのうちの１つであり、前記リストのインデックス値は予測の複数のモードに依存する。
【００６９】
一実施形態において、第一の予測モード以外の予測モードを用いて予測することが可能なインデックスの値を参照するインデックス値は、前記リストに含まれない。
【００７０】
一実施形態において、インデックス値のリストには、パレットのサイズから２を差し引いた値以下の数のインデックス値が含まれる。
【００７１】
一実施形態において、第一の予測モード以外の予測モードを用いて予測されたインデックスの数が１より大きい場合、インデックス値のリストがパレットのサイズから１を差し引いた値に等しいサイズとなるように、他の予測モードでの予測が可能なインデックスの値のうちで最も低いインデックス値は含まれない。
【００７２】
一実施形態において、使用可能な複数の予測モードのうちの１つは、パターンを記憶するテーブルから符号化パラメータが決定される遷移モードであり、パターンはインデックスブロックのインデックスに隣接する少なくとも１つのインデックスで構成され、前記パターンは、パターンの近傍内の位置に予想されるインデックスに対応する少なくとも１つの予測インデックスに関連付けられる。
【００７３】
本発明の第二十二の態様によれば、上述の方法にしたがって符号化パラメータの値を決定するステップを備える、符号化ユニットを符号化する方法が提案される。符号化パラメータの値は、符号化ユニットを符号化するためのインデックスブロックからインデックスを得るために使用され、前記符号化ユニット予測子は、インデックスブロックおよびパレットから生成される。
【００７４】
本発明の第二十三の態様によれば、符号化パラメータの値を取得するステップを備える、ビットストリームから符号化ユニットを復号する方法が提案され、前記符号化パラメータの値は上述の方法を用いて決定されたものである。符号化パラメータの値は、符号化ユニットを復号するためにインデックスブロックからインデックスを取得するために使用され、前記符号化ユニット予測子は、インデックスブロック、およびビットストリームから抽出されたパレットから取得される。
【００７５】
一実施形態において、前記値のリスト中の値の数にしたがって第二符号化パラメータを表す語の長さを修正するステップには、前記値のリスト中の値の数をＭとし、第二パラメータを表す語の長さを表すビットの数をＮとしたとき、Ｍ＝２Ｎ−Ｒなど、整数Ｒの値にしたがって語の長さを修正するステップを備える。
【００７６】
本発明の第二十四の態様によれば、上述の請求項のいずれかに記載の方法を実行する手段を備える、符号化パラメータの値を決定する装置が提案される。
【００７７】
本発明の第二十五の態様によれば、上述のそれぞれの符号化または復号方法を実行する手段を備える、符号化ユニットを符号化または復号するための装置が提案される。
【００７８】
本発明の第二十六の態様によれば、プログラミング可能な装置によって実行されると上述の方法を装置に実行させる実行可能命令を備える、コンピュータプログラムが提案される。
【００７９】
本発明の第二十七の態様によれば、コンピュータまたはプロセッサ上で起動されると、上述の方法をコンピュータまたはプロセッサに実行させる、非一時的コンピュータ可読搬送媒体が提案される。
【００８０】
本発明の第二十八の態様によれば、パレットにしたがって画像の符号化ユニットを符号化するために使用されるインデックスブロックのインデックスを符号化するための符号化パラメータを決定する方法が提案され、各インデックスは符号化ユニットを形成する画素のうちの１つと関連付けられており、パレットには、画素値と関連付けられた一連のインデックスが含まれる。前記方法は、
−対応する符号化パラメータに基づいてパレットから符号化ユニットに関連するインデックスブロックの各インデックスを生成するステップと、
−インデックスブロックのインデックスが、符号化ユニットの少なくとも１つの画素において、パレットから生成できない場合には、生成できない前記インデックスブロックのインデックスを置き換えるためのエスケープ値に対応するインデックス値を生成するステップと、
−前記画素の空間的近傍にしたがい、かつおよび符号化ユニットの画素の符号化順を考慮した、インデックスに対応する１つ以上の符号化パラメータを決定するステップと、
を備える。
【００８１】
例えば、空間的近傍には、検討される画素の上に位置する画素が含まれる。
【００８２】
一実施形態において、第一符号化パラメータは、インデックスブロックのインデックスの予測モードを表す。
【００８３】
一実施形態において、前記第一符号化パラメータは、現在のインデックスの位置がインデックスブロックのインデックスの列である場合に、推定される。
【００８４】
一実施形態において、前記第一符号化パラメータは、現在のインデックスが上に等しい予測のモードを表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、推定される。
【００８５】
一実施形態において、決定された第二符号化パラメータは、インデックスブロックの生成されたインデックスの値を表す。
【００８６】
一実施形態において、生成されたインデックスが、左に等しい予測モードを表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合、現在のインデックスの第二パラメータは、現在のインデックスの左側のインデックスの値を含まないインデックス値のリストから決定される。
【００８７】
一実施形態において、現在のインデックスが、左に等しい予測のモードを表す関連付けられた第一パラメータを有し、かつ所定条件を満たす関連付けられた第二パラメータを有する符号化順で前のインデックスに続く場合に、現在のインデックス値の第二パラメータは、現在のインデックスの左側のインデックスの値を含まない値のリストから決定される。
【００８８】
一実施形態において、所定条件とは、関連付けられた第二パラメータが所定のインデックス値よりも小さいことをいう。
【００８９】
一実施形態において、現在のインデックスが上に等しい予測方向を表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの上のインデックスの値を含まないインデックス値のリストから決定される。
【００９０】
一実施形態において、インデックスが、左に等しい予測方向を表す予測の第一モードを表す関連付けられた第一符号化パラメータを有するインデックスに続く場合、インデックスの第二符号化パラメータは、パレットのサイズから１を差し引いた値以下のより少な多数のインデックス値を有するインデックス値のリストから決定される。
【００９１】
一実施形態において、予測の第一モードは予測の利用可能な複数のモードのうちの１つであり、前記リストインデックス値は予測の複数のモードに依存する。
【００９２】
一実施形態において、第一の予測モード以外の予測のモードを用いて予測することが可能なインデックスの値を参照するインデックス値は、前記リストに含まれない。
【００９３】
一実施形態において、インデックス値のリストには、パレットのサイズから２を差し引いたより少ないかまたはこれと等しい多数のインデックス値が含まれる。
【００９４】
一実施形態において、第一の予測モード以外の予測モードを用いて予測されたインデックスの数が１より大きい場合、インデックス値のリストにパレットのサイズから１を差し引いた値に等しいサイズが含まれるように、他の予測モードでの予測が可能なインデックスの値のうちで最も低いインデックス値を含まない。
【００９５】
一実施形態において、利用可能な複数の予測モードのうちの１つは、パターンを記憶するテーブルから符号化パラメータが決定される遷移モードであり、パターンはインデックスブロックのインデックスに隣接する少なくとも１つのインデックスで構成され、前記パターンは、パターンの近傍内の位置に予想されるインデックスに対応する少なくとも１つの予測インデックスに関連付けられる。
【００９６】
本発明の第二十九の態様によれば、上述の方法にしたがって符号化パラメータの値を決定するステップを備える、符号化ユニットを符号化する方法が提案される。
【００９７】
本発明の第三十の態様によれば、ビットストリームから取得されたパレットにしたがって、画像の符号化ユニットを復号するために使用されるインデックスブロックのインデックスを復号する方法が提案され、各インデックスは符号化ユニットを形成する画素のうちの１つと関連し、パレットは、画素値と関連付けられた一連のインデックスを含む。前記方法は、
−ビットストリームからパレットを取得し、符号化パラメータにしたがって、ビットストリームおよび取得されたパレットからインデックスブロックを生成するステップと、
−入手可能であればパレットから生成できない前記インデックスブロックのインデックスを置き換えるためのエスケープ値に対応するインデックス値をビットストリームから取得するステップと、
−符号化ユニットを形成する画素の符号化順を考慮した前記画素の空間的近傍にしたがってインデックスに対応する符号化パラメータを決定するステップと、を備える。
【００９８】
一実施形態において、符号化パラメータは、上述の方法を用いて符号化ユニットを符号化するときに、符号化順を考慮して決定される。
【００９９】
一実施形態において、前記値のリスト中の値の数にしたがって第二符号化パラメータを表す語の長さを修正するステップは、Ｍ＝２Ｎ−Ｒなど、整数Ｒの値にしたがって語の長さを修正するステップを備え、ここでＭは前記値のリスト中の値の数であり、  Ｎは第二パラメータを表す語の長さを表すビットの数である。
【０１００】
本発明の第三十一の態様によれば、上述の方法を実行する手段を備える、符号化パラメータを決定するための装置が提案される。
【０１０１】
本発明の第三十二の態様によれば、上述のそれぞれの符号化方法を実行する手段を備える、符号化ユニットを符号化するための装置が提案される。
【０１０２】
本発明の第三十三の態様によれば、上述のそれぞれの復号方法を実行する手段を備える、符号化ユニットを復号するための装置が提案される。
【０１０３】
本発明の第三十四の態様によれば、プログラミング可能な装置によって実行される場合に、上述の方法を装置に実行させるための実行可能命令を備える、コンピュータプログラムが提案される。
【０１０４】
本発明の第三十五の態様によれば、コンピュータまたはプロセッサ上で起動されると、上述の方法をコンピュータまたはプロセッサに実行させる、非一時的コンピュータ可読搬送媒体が提案される。
【０１０５】
第三十六の態様によれば、本発明は、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を提供し、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、パレット符号化モードは現在の符号化ユニットを予測するためにインデックスブロックから予測ブロックを構築するステップを備え、インデックスブロックのインデックスは任意の符号化順に符号化され、画素ブロックの現在の画素と関連付けられたパラメータは、画素を符号化する順に応じて文脈情報の機能において推測される
【０１０６】
一実施形態において、第一パラメータは、インデックスブロックの現在のインデックスの予測のモードを表す。
【０１０７】
一実施形態において、前記第一パラメータは、現在のインデックスがインデックスブロックのインデックスの列内の第一の位置にある場合に、推測される。
【０１０８】
一実施形態において、前記第一パラメータは、現在のインデックスが上と等しい予測モードを表す関連付けられた第一パラメータを有して符号化順で前のインデックスに続く場合に、推測される。
【０１０９】
一実施形態において、第二パラメータは、現在のインデックスの値を表す。
【０１１０】
一実施形態において、現在のインデックスが左に等しい予測モードを表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの左側のインデックスの値を含まない値のリストから推測される。
【０１１１】
一実施形態において、現在のインデックスが上に等しい予測方向を表す関連付けられた第一パラメータを有し、符号化順で前のインデックスに続く場合に、現在のインデックスの第二パラメータは、現在のインデックスの上のインデックスの値を含まない値のリストから推測される。
【０１１２】
第三十七の態様において、本発明は、第三十六の態様に係るパレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を備える、符号化ユニットを符号化または復号する方法を提供する。
【０１１３】
第三十八の態様において、本発明は、第三十六の態様に係るパレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法を実施するモジュールを備える、符号化ユニットを符号化または復号するための装置を提供する。
【０１１４】
第三十九の態様において、本発明は、符号化または復号装置内のマイクロプロセッサまたはコンピュータによって実行されると、第三十六および三十七の態様の方法を装置に実行させるプログラムを記憶する、非一時的コンピュータ可読媒体を提供する。
【０１１５】
第四十の態様において、本発明は、コンピュータプログラムの命令を記憶し、コンピュータまたはマイクロプロセッサによって読み取り可能な情報記憶手段を提供し、それにより第三十六および三十七の態様の方法の実施が可能になる。
【０１１６】
第四十一の態様によれば、本発明は、パレットモードにしたがって画像の画素の現在のブロックを符号化または復号する方法を提供し、カラーパレットを用いるパレットモードは、現在のブロックの画素の少なくとも１つの成分を表す一連の値を備え、前記方法は、カラーパレット予測子を取得するステップと、カラーパレット予測子を用いて現在のブロックのカラーパレットを予測するステップと、を備える。当然のことながら、第四十一の態様のパレットモードは、上記に記載したいずれの態様を実行する際にも適用可能である。
【０１１７】
一実施形態において、前記画像のブロックは、所定の走査順にしたがって順序づけられ、カラーパレット予測子は、画像の任意の因果領域のパレットモードにしたがって符号化された最後のブロックのカラーパレットから決定される。
【０１１８】
一実施形態において、現在のカラーパレットの値は、カラーパレット予測子に含まれる値から予測される。
【０１１９】
一実施形態において、カラーパレットの値は順序づけられ、現在のカラーパレットの値は、前記値がカラーパレット予測子内の同じ順を有する値から予測されたものかを表すフラグと関連付けられる。
【０１２０】
一実施形態において、前記任意の因果領域は、現在の画素ブロックを含む符号化エンティティですでに再構築された部分である。
【０１２１】
一実施形態において、カラーパレットの値は順序づけられ、現在のカラーパレットの値は、前記値がカラーパレット予測子内の任意の順を有する値から予測されたか否かを表すフラグと関連付けられている。
【０１２２】
一実施形態において、カラーパレット予測子は、画像の各符号化エンティティと関連付けられている。
【０１２３】
一実施形態において、前記カラーパレット予測子は、現在のブロックの近傍の画素から取得される。
【０１２４】
本発明の第四十二の態様によれば、パレット符号化モードにしたがって符号化ユニットを符号化するために使用されるインデックスブロックのインデックスの符号化において使用される符号化パラメータの値を推測する方法が提供され、前記インデックスは画素値に関連付けられた一連のインデックスを含むパレットに属し、インデックスブロックのインデックスは任意の符号化順に符号化され、現在のインデックスが、上に等しい予測方向を表す予測の関連付けられたモードを有し、任意の符号化順にしたがって前のインデックスに続く場合、現在のインデックスの値は、現在のインデックスの上のインデックスの値を含まない値のリストから推測される。
【０１２５】
一実施形態において、左に等しい予測のモードは、現在のインデックスを符号化するために使用される。
【０１２６】
本発明による方法の少なくとも一部は、コンピュータによって実施してもよい。よって、本発明は、完全なハードウェア形態、完全なソフトウェア形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいはソフトウェアおよびハードウェア態様を組み合わせた形態で実施してもよく、いずれも本明細書では概して「回路」、「モジュール」、または「システム」と称する。さらに、本発明は、媒体中に表現されるコンピュータ使用可能プログラムコードを有する任意の有形表現媒体において具現化される、コンピュータプログラム製品の形態をとっても良い。
【０１２７】
本発明はソフトウェアで実施可能なので、本発明は、適切な任意の搬送媒体上に、プログラミング可能な装置に提供するためのコンピュータ読み取り可能コードとして実現可能である。有形搬送媒体には、フロッピーディスク、ＣＤ−ＲＯＭ、ハードディスクドライブ、ＵＳＢキー、メモリーカード、磁気テープ装置、または固体メモリ装置などの記憶媒体が含まれるであろう。一時的搬送媒体には、電気信号、電子信号、光信号、音響信号、磁気信号、あるいはマイクロ波やＲＦ信号のような電磁信号などの信号を含んでも良い。
【図面の簡単な説明】
【０１２８】
以下、単なる一例として、本発明の実施形態を添付の図面を参照して説明する。
【図１】ビデオエンコーダのアーキテクチャを示す図である。
【図２】ビデオデコーダのアーキテクチャを示す図である。
【図３】因果領域の概念を示す図である。
【図４】ＨＥＶＣレンジ拡張でサポートされるクロマフォーマットを示す図である。
【図５】ＣＵにおけるＣＴＢ分割およびこれらＣＵの走査順復号を示す図である。
【図６】ＨＥＶＣのｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇのための復号プロセスを示す図である。
【図７ａ】パレットモードにしたがって画素値を復号するための第一復号プロセスを示す図である。
【図７ｂ】パレットモードにしたがって画素値を復号するための第二復号プロセスを示す図である。
【図８ａ】図７ａに関するレベル導出のパレットおよびブロック／ＣＵの一例を示す図である。
【図８ｂ】図７ｂに関するレベル導出のパレットおよびブロック／ＣＵの別の例を示す図である。
【図９】生成された構文パレット要素の一例を示す図である。
【図１０】パレットモード構文の復号プロセスを示す図である。
【図１１】デコーダ側のレベルのブロック／ＣＵの構築を示す図である。
【図１２】エンコーダ側のパレット決定アルゴリズムを示す図である。
【図１３】レベルのブロック／ＣＵ、予測モード、およびランの現在の実施の処理選択を示す図である。
【図１４】本発明の第一の実施形態を示す図である。
【図１５】本発明の第二の実施形態を示す図である。
【図１６】レベルおよびラン符号化の組み合わせに関する本発明の別の実施形態を示す図である。
【図１７】前の予測モードから決定されたものとしてスパースインデックスリストを考慮したインデックスの符号化を示す図である。
【図１８】図１７の符号化プロセスにしたがって符号化されたインデックスの復号を示す図である。
【図１９】リストが２つ以上の欠落レベルを含むときの、より一般的な文脈におけるスパースインデックスリストを考慮したインデックスの符号化を示す図である。
【図２０】図１９の符号化プロセスにしたがって符号化されたインデックスの復号を示す図である。
【図２１ａ】遷移モードを表す図である。
【図２１ｂ】遷移モードを表す図である。
【図２２】コンピュータデバイスの概略ブロック図である。
【発明を実施するための形態】
【０１２９】
ビデオ圧縮規格の一般原理のひとつは、空間的および時間的冗長性による利益を受けることで、ビデオビットレートを低減することである。図１および図２に、それぞれビデオエンコーダおよびビデオデコーダで実行される異なるステップを示す。
【０１３０】
図１は、ＨＥＶＣエンコーダのアーキテクチャを示す。ビデオシーケンスエンコーダにおいて、元のシーケンス（１０１）は、複数の画素ブロック（１０２）に分割される。次に、各ブロックに対して符号化モードが実施される。符号化モードには、空間的予測に基づくモード（ＩＮＴＲＡ）（１０３）、および時間的予測に基づくモード（ＩＮＴＥＲ、Ｂｉｄｉｒ、Ｓｋｉｐ）（１０４、１０５）の二つのファミリがある。ＩＮＴＲＡブロックは一般的に、イントラ予測と呼ばれるプロセスによって、その因果境界における符号化画素から予測される。
【０１３１】
時間的予測は第一に、以前のまたは未来のフレーム（基準フレーム（１１６））内で、符号化すべきブロックに最も近い基準領域を探し（動き推定（１０４））、第二に選択された領域を用いてこのブロックを予測すること（動き補償（１０５））に本質が存する。
【０１３２】
いずれの（空間的および時間的予測）の場合も、元の予測されたブロックから予測を減ずることによって、残差が計算される。
【０１３３】
イントラ予測では、予測方向が符号化される。時間的予測では、少なくとも１つの動きベクトルが符号化される。ただし、動きベクトル符号化に関係するビットレートコストをさらに低減するために、動きベクトルは直接符号化されるものではない。実際、動きが均一であると仮定すると、この動きベクトルと、その近傍の動きベクトル（例えば、隣接または周囲のブロックの動きベクトル）との差として動きベクトルを符号化することは、特に興味深い。例えばＨ．２６４では、動きベクトルは、現在のブロックの上および左側に位置する３つのブロック間で計算された中央値ベクトルに対して符号化される。中央値ベクトルと現在のブロックの動きベクトルとの間で計算された差（残差動きベクトルとも呼ばれる）のみが、ビットストリーム中で符号化される。このプロセスは、モジュール「Ｍｖ予測および符号化」によって実行される（１１７）。各符号化ベクトルの値は、動きベクトルフィールドに記憶される（１１８）。予測に使用される近傍の動きベクトルは、動きベクトルフィールドから抽出される（１１８）。ＨＥＶＣでは、動きベクトル符号化プロセスはわずかに異なり、以下のセクションで詳述される。
【０１３４】
その後、レート歪特性を最適化するモードが選択される（１０６）。冗長性をさらに低減するために、変換（ＤＣＴ）が残差ブロックに適用され（１０７）、量子化が係数に適用される（１０８）。量子化された係数のブロックはその後エントロピー符号化され（１０９）、その結果がビットストリームに挿入される（１１０）。エンコーダはその後、未来の動き推定のために、符号化されたフレームの復号を実行する（１１１から１１６）。これにより、エンコーダとデコーダは同じ基準フレームを持つことができる。
【０１３５】
符号化フレームを再構築するために、画素ドメイン内の「復号された」残差を提供するため、残差を逆量子化し（１１１）、逆変換する（１１２）。符号化モード（ＩＮＴＥＲまたはＩＮＴＲＡ）にしたがって、この残差はＩＮＴＥＲ予測子（１１４）またはＩＮＴＲＡ予測子に加算される。
【０１３６】
次に、フレームのこの第一の再構築は、１種類または複数種類のポストフィルタリングによって、フィルタリングされる（１１５）。これらのポストフィルタは、エンコーダおよびデコーダループに組み込まれている。つまり、エンコーダおよびデコーダ側で同じ基準フレームを使用するために、エンコーダおよびデコーダ側で再構築されたフレームにこれらを適用する必要がある。このポストフィルタリングの目的は、圧縮アーチファクトを除去することである。例えば、Ｈ．２６４／ＡＶＣはデブロッキングフィルタを使用する。このフィルタは、残差のＤＣＴ量子化およびブロックの動き補償によるブロッキングアーチファクトを除去することができる。現在のＨＥＶＣ規格では、デブロッキングフィルタ、画素適応オフセット（ＳＡＯ：ｓａｍｐｌｅ  ａｄａｐｔｉｖｅ  ｏｆｆｓｅｔ）、および適応ループフィルタ（ＡＬＦ：ａｄａｐｔｉｖｅ  ｌｏｏｐ  ｆｉｌｔｅｒ）の３タイプのループフィルタが使用されている。これらのループフィルタは、以下のセクションに記載される。
【０１３７】
図２は、ＨＥＶＣデコーダのアーキテクチャを示す。デコーダの原理を図２に表した。まず、ビデオストリーム（２０１）をエントロピー復号する（２０２）。次に残差データが逆量子化（２０３）、及び逆変換され（２０４）、画素値を取得する。モードデータもまたエントロピー復号され、モードの機能において、ＩＮＴＲＡタイプ復号またはＩＮＴＥＲタイプ復号が実行される。ＩＮＴＲＡモードの場合、ＩＮＴＲＡ予測子は、ビットストリーム中で指定されたイントラ予測モードの機能において決定される（２０５）。モードがＩＮＴＥＲである場合、動き情報はビットストリームから抽出される（２０２）。これは、基準フレームインデックスおよび動きベクトル残差で構成される。動きベクトル予測子は、ために動きベクトル残差に加算され、動きベクトルを取得する（２１０）。動きベクトルはその後、基準フレーム内の基準領域の位置を特定するために使用される（２０６）。なお、動きベクトルデータまたは動きベクトルフィールド（２１１）は、次の復号される動きベクトルの予測に使用するために、復号された動きベクトルで更新されることに留意されたい。復号されたフレームのこの第一の再構築は、エンコーダ側で使用されたのと全く同じポストフィルタを用いてポストフィルタリングされる（２０７）。デコーダの出力は、非圧縮ビデオである（２０９）。
【０１３８】
図３は、ビデオエンコーダまたはビデオデコーダの因果概念を示す。インデックスＡを符号化するとき、Ｂの部分はすべて、Ａの符号化効率を改善するために使用可能である。Ｃにはアクセスできない。図４は、未来のＨＥＶＣレンジ拡張がサポートする新しいビデオフォーマットを示す。一般にＨＥＶＣ  ＲＥｘｔとも呼ばれるＨＥＶＣレンジ拡張は、新しいビデオ符号化規格ＨＥＶＣの定義の下での拡張である。この拡張の目的は、追加のカラーフォーマットおよびビット深度を用いてビデオシーケンスを符号化するための追加ツールを提供することである。より具体的には、この拡張は、４：２：２ビデオカラーフォーマット、ならびに４：４：４ビデオカラーフォーマットもサポートすることになる。現在のＨＥＶＣ規格がカラーサンプルごとに８および１０ビットの４：２：０カラーフォーマットを扱うことができる場合、ＨＥＶＣレンジ拡張はさらに、８ビットから１４ビットまでの範囲に拡張されたビット深度を有する４：２：２および４：４：４ビデオフォーマットをサポートする。カラー画像（ｐｉｃｔｕｒｅ）は一般的に、Ｒ、Ｇ、およびＢの３つの色成分からなる。
【０１３９】
これらの成分は一般的に相関しており、画像およびビデオ圧縮において画像を処理する前に色成分を無相関化するのが、非常に一般的である。最も一般的な形式は、ＹＵＶカラーフォーマットである。ＹＵＶ信号は通常、線形変換を用いて、ＲＧＢ画像から３つのＲ、Ｇ、およびＢ入力画像に生成される。Ｙは通常は輝度成分と呼ばれ、ＵおよびＶは一般的にクロマ成分と呼ばれる。用語「ＹＣｂＣｒ」もまた、用語「ＹＵＶ」の代わりに一般的に使用される。
【０１４０】
３つの色成分に異なるサンプリング比を適用するのが非常に一般的である。サブサンプリングスキームは一般的に、幅Ｊ画素、高さ２画素の概念領域内の輝度およびクロミナンスサンプルの数を示す三連比Ｊ：ａ：ｂ（例えば、４：２：２）として表される。各項は（順に）以下とする：
Ｊ：水平サンプリング基準（概念領域の幅）。通常、４。
ａ：Ｊ個の画素の１行目にあるクロミナンスサンプル（Ｃｒ、Ｃｂ）の数。
ｂ：Ｊ個の画素の２行目にある（追加の）クロミナンスサンプル（Ｃｒ、Ｃｂ）の数。
【０１４１】
図４は、ＨＥＶＣ  ＲＥｘｔにおいて検討された異なるクロマフォーマットを示す。３つの色成分の画像サイズ、および色成分のタイプが異なるため、これらのフォーマットは異なっている。
【０１４２】
（４０１）に示される４：２：０  ＹＵＶクロマフォーマットでは、画像は、Ｙ（４０１．１）、Ｕ（Ｃｒともいう）（４０１．２）、Ｖ（Ｃｂともいう）（４０１．３）の３つの色成分でできている。Ｙ成分画像が幅Ｗ画素、高さＨ画素である場合、ＵおよびＶ成分画像は、幅Ｗ／２画素、高さＨ／２画素である。
【０１４３】
（４０２）に示される４：２：２  ＹＵＶクロマフォーマットでは、画像は、Ｙ（４０２．１）、Ｕ（Ｃｒともいう）（４０２．２）、およびＶ（Ｃｂともいう）（４０２．３）の３つの色成分でできている。Ｙ成分画像が幅Ｗ画素、高さＨ画素である場合、ＵおよびＶ成分画像は、幅Ｗ／２画素、高さＨ画素である。
【０１４４】
（４０３）に示される４：４：４  ＹＵＶクロマフォーマットでは、画像は、Ｙ（４０３．１）、Ｕ（Ｃｒともいう）（４０３．２）、およびＶ（Ｃｂともいう）（４０３．３）での３つの色成分でできている。３つの成分は同じ幅Ｗおよび高さＨである。（４０３）に示される４：４：４  ＲＧＢクロマフォーマットでは、画像は、Ｒ（４０３．１）、Ｇ（４０３．２）、およびＢ（４０３．３）の３つの色成分でできている。３つの成分は同じ幅Ｗおよび高さＨである。
【０１４５】
画像が単色であるとき、そのフォーマットは４：０：０と名付けられる。入力サンプルのビット深度は、各色成分での各画素に関連するビットの数である。ＨＥＶＣバージョン１は、４：２：０フォーマットの８ビット入力サンプル向けに定義されている。入力サンプルが８ビットで表されるとき、各サンプルは２８＝２５６の値を取ることができる。いくつかの用途では、サンプルのより大きなダイナミックを得るために、入力サンプルのビット深度を拡張するのに有用である。一般的に、この目的は、ビデオの視覚品質を向上させることである。周知のビット深度は８、１０、１２、１４、および１６ビットである。ＨＥＶＣのレンジ拡張（ＲＥｘｔ：Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎ）は、拡張されたカラーフォーマットに加えて、このより大きなダイナミックスを対象とする。
【０１４６】
また、ＨＥＶＣのレンジ拡張（ＲＥｘｔ）は、入力シーケンスを可逆符号化することができる。可逆コーデック（非可逆コーデックの逆）の目的は、入力と全く同一の復号された出力を得ることである。これを実現するために、非可逆コーデックと比較して、多数のものを修正または追加しなければならない。以下が、ＨＥＶＣが非可逆処理を行うために必要とされる具体的なものを限定的に示した一覧である。
・量子化（エラーの主要な原因）の除去
・通常のコサイン／サイン変換は、（無損失符号化にもはや適していないことに加えて）誤りを導く可能性があるため、バイパス変換の強制実行
・ＤＢＦおよびＳＡＯなど、量子化ノイズを補償する際に特別に調整されたツールの除去
【０１４７】
また、ＨＥＶＣのレンジ拡張（ＲＥｘｔ）に固有の追加ツールは、ナチュラルシーケンスに加えて、「スクリーンコンテンツ」ビデオシーケンスを効率的に符号化するために、追加されたかまたは検討中である。「スクリーンコンテンツ」シーケンスとは、非常に特有のコンテンツを有する特定のシーケンスを指す。「スクリーンコンテンツ」ビデオシーケンスは、例えば文字列、スライド形式のプレゼンテーション、グラフィカルユーザインターフェース、テーブルなどを含む、その他の装置のパーソナルコンピュータから取得されたものに対応する、ビデオシーケンスに関する。これら特定のシーケンスは、ナチュラルビデオシーケンスと比較して、かなり異なる統計を有する。ビデオ符号化において、従来のビデオ符号化ツールの性能は、この特有のビデオコンテンツには非効率となる場合がある。
【０１４８】
検討されている現在のツールは、「ＩＮＴＲＡブロックコピー」モードおよび「カラーパレット」モードである。これらは、ナチュラルビデオシーケンスを対象とする従来の方法よりも優れた効率性を実証した。カラーパレットモードは、スクリーンコンテンツビデオシーケンスを対象とするときにＨＥＶＣレンジ拡張の符号化効率をさらに改善するために、本発明の範囲内で検討しているツールである。
【０１４９】
図５は、符号化ユニットにおける符号化ツリーブロックの分割、およびこれら符号化ユニットの走査順復号を示す。ＨＥＶＣ規格では、ブロック構造は符号化ツリーブロック（ＣＴＢ）によって組織される。フレームは、いくつかの重複しない正方形の符号化ツリーブロックを含む。符号化ツリーブロックのサイズは、６４×６４から１６×１６まで様々であってもよい。このサイズはシーケンスレベルで決定される。符号化効率性において、最も効率的なサイズは、最大で６４×６４である。なお、すべての符号化ツリーブロックは画像境界において同じサイズを有することに留意する。この場合、サイズは画素の数に応じて適合させる。
【０１５０】
各符号化ツリーブロックは、１つ以上の正方形の符号化ユニット（ＣＵ）を含む。符号化ツリーブロックは、４分木構造に基づいて、いくつかの符号化ユニットに分割される。符号化ツリーブロック内の各符号化ユニットの符号化または復号順は、ラスター走査順に基づいて４分木構造に続く。図５は、符号化ユニットの復号順の一例を示す。同図において、各符号化ユニット内の数字は、この符号化ツリーブロックの各符号化ユニットの復号順を示す。
【０１５１】
図６は、ＨＥＶＣシンタックス符号化を示す。ＨＥＶＣ規格において、またはＨＥＶＣ  ＲＥｘｔにおいて、異なるシンタックス要素を符号化するために、いくつかの方法が使用される。ＨＥＶＣは、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ  ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）、ゴロムライス符号、または固定長符号化と呼ばれる単純な２進表現など、複数タイプのエントロピー符号化を使用する。ほとんどの場合、２値化プロセスは、異なるシンタックス要素を表すため符号化の前に実行される。この２値化プロセスはまた非常に特有であり、異なるシンタックス要素に依存する。
【０１５２】
例えば、「ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇ」と呼ばれるシンタックス要素は、係数残差の絶対値または絶対値の一部を含む。この特殊な符号化の考えは、第一の値にゴロムライス符号を、より高い値には指数ゴロムを、使用することである。より具体的には、ゴロムパラメータと呼ばれる任意のパラメータに応じて、つまり第一の値（例えば０から３）を表すためにゴロムライス符号が使用され、その後より高い値（４以上）には指数ゴロム符号が使用される。
【０１５３】
図６は、この特有な復号プロセスのこの原理を示す。このプロセスの入力データはビットストリーム（６０１）、およびはライスゴロム順またはパラメータとして知られるｒＰａｒａｍである。このプロセスの出力は、復号されたシンボルである（６１２）。
【０１５４】
プレフィックス値は１に等しく設定され（６０２）、その後１ビットがビットストリーム（６０１）から抽出され、変数フラグは復号された値に等しく設定される（６０３）。このフラグが０に等しい場合（６０４）、プレフィックス値はインクリメントされ（６０５）、別の１ビットがビットストリームから抽出される（６０３）。フラグ値が１に等しいとき、決定モジュール（６０６）は、値Ｐｒｅｆｉｘが３未満であるか否かを確認する。真であれば、Ｎ＝ｒＰａｒａｍビットがビットストリーム（６０１）から抽出され（６０８）、変数「ｃｏｄｅｗｏｒｄ」に設定される。この「ｃｏｄｅｗｏｒｄ」は、ゴロムライス表示に対応する。シンボル値（６１２）は、ステップ（６０９）に示されるように、（（ｐｒｅｆｉｘ＜＜ｒＰａｒａｍ）＋ｃｏｄｅｗｏｒｄ）に等しく設定される。ここで＜＜は左シフト演算子である。
【０１５５】
Ｐｒｅｆｉｘがステップ（６０６）において３以上である場合、次のステップは（６１０）であり、ここでＮ＝（ｐｒｅｆｉｘ−３＋ｒＰａｒａｍ）ビットがビットストリームから抽出され、これを変数「ｃｏｄｅｗｏｒｄ」に設定する（６１０）。シンボル値（６１１）は、（（１＜＜（ｐｒｅｆｉｘ−３））＋２）＜＜ｒＰａｒａｍ）＋ｃｏｄｅｗｏｒｄに等しく設定される。これは、指数ゴロム表示に対応する。以下の技術的注記において、同図に示されているこの復号プロセス（または対称的には符号化プロセス）は、入力パラメータＰａｒａｍを有するＧｏｌｏｍｂ＿Ｈと呼ばれる。なお、単純にＧｏｌｏｍｂ＿Ｈ（Ｐａｒａｍ）と記すことができる。ＨＥＶＣ規格およびＨＥＶＣレンジ拡張において、ゴロムパラメータ「ｒＰａｒａｍ」は、符号化される信号にエントロピー符号化を適合させるために、式にしたがって更新される。この式は、係数が大きい値を有するときにゴロム順を上げることによってゴロム符号サイズを縮小しようとするものである。ＨＥＶＣ規格において、更新は以下の式で表わされる。
ｒＰａｒａｍ＝Ｍｉｎ（ｃＬａｓｔＲｉｃｅＰａｒａｍ＋（ｃＬａｓｔＡｂｓＬｅｖｅｌ＞（３＊（１＜＜ｃＬａｓｔＲｉｃｅＰａｒａｍ））？１：０），４）
ここでｃＬａｓｔＲｉｃｅＰａｒａｍは最後に使用されたｒＰａｒａｍ、ｃＬａｓｔＡｂｓＬｅｖｅｌは最後に復号されたｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇである。なお、符号化または復号される第一パラメータには、ｃＬａｓｔＲｉｃｅＰａｒａｍおよびｃＬａｓｔＡｂｓＬｅｖｅｌは０に等しく設定されることに留意されたい。また、パラメータｒＰａｒａｍが４の値を超えてはならないことにも留意されたい。
【０１５６】
ＨＥＶＣレンジ拡張では、より大きいビット深度を扱うため、また可逆符号化を含む拡張形式のビデオ圧縮（４：２：２および４：４：４）を処理するアプリケーションで必要とされる超高品質を考慮するために、この式は更新されている。レンジ拡張では、更新式は以下のように変更されている。
ｒＰａｒａｍ＝Ｍｉｎ（ｃＬａｓｔＲｉｃｅＰａｒａｍ＋（ｃＬａｓｔＡｂｓＬｅｖｅｌ＞＞（２＋ｃＬａｓｔＲｉｃｅＰａｒａｍ）），７）。
【０１５７】
この式を用いると、Ｐａｒａｍの最大値は７である。また、変換ブロックのサブブロック向けｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｒｅｍａｉｎｉｎｇの最初の符号化では、ゴロムパラメータは以下に等しく設定される。
ｒＰａｒａｍ＝Ｍａｘ（０，ｃＲｉｃｅＰａｒａｍ−（ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ｜｜ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ？１：２））
ここで変数「ｔｒａｎｓｆｏｒｍ＿ｓｋｉｐ＿ｆｌａｇ」は、現在のＣＵに対して変換がスキップされた場合は１に設定され、変換が使用された場合は０に設定される。
【０１５８】
変数「ｃｕ＿ｔｒａｎｓｑｕａｎｔ＿ｂｙｐａｓｓ＿ｆｌａｇ」は、ＣＵが可逆符号化された場合は１、それ以外は０に設定される。
【０１５９】
変数「ｃＲｉｃｅＰａｒａｍ」は、ブロック全体の別のサブブロックの最後に使用されたｒＰａｒａｍに等しく設定され、それ以外では０に設定される。
【０１６０】
以下、本発明の焦点である、パレットモードの原理を説明する。パレットモードは、レンジ拡張の適用範囲内で提示された、新しい符号化方法である。この方法は、「スクリーンコンテンツ」ビデオシーケンスを対象とするビデオ符号化に有効である。ＨＥＶＣレンジ拡張に対して提案されたパレット方法は、予測モードの一種である。つまり、パレット方法は、動き予測（Ｉｎｔｅｒの場合）またはイントラ予測によって実行される予測と同様に任意のＣＵの符号化のための予測子を構築するために使用される。予測の生成の後、残差ＣＵは変換、量子化、および符号化される。
【０１６１】
パレットは一般的にＮ組の色のセットを含むテーブルによって表わされ、各色は任意の色空間内のその成分によって定義される。例えば、通常のＲＧＢ形式において、パレットは、Ｎ組のＰ要素のリストで構成される（ＲＧＢではＮ＝３）。より正確には、各要素はＲＧＢ形式の固定のカラートリプレットに対応する。当然ながら、これはＲＧＢまたはＹＵＶカラーフォーマットに限定されるものではない。その他のカラーフォーマットがパレットによって表されてもよく、それよりも少ないかまたは多くの色を使用することができる（つまり、Ｎは３ではない）。
【０１６２】
エンコーダ側では、ＲＥｘｔで検討されているパレットモードは、任意の入力ＣＵの画素値を有限数のインデックス（またはレベル）に変換することに本質が存する。これらのインデックスは、限られた数の色を定義する、関連付けられたパレットのインデックスを指す。パレットモード法を適用した後、結果的に得られるＣＵはインデックスからなり、その後、関連付けられたパレット（ＣＵを表すために使用される限られたトリプレットのテーブル）を有するデコーダに送信される。
【０１６３】
エンコーダ側でパレットモードを適用するために多くのやり方で進めることができるが、しかし画素ブロックを表す最も簡単なやり方は以下のとおりである。
・（例えば、全体的な歪みを最小化することによって）符号化する画素のＣＵを最適に表わすＰ個のトリプレットを探す
・次にＰ個のトリプレットの中で最も近い色を各画素に関連付ける。つまり、符号化する値は対応するインデックスである。
【０１６４】
デコーダ側では、パレットモードは、逆方向に変換することに本質が存する。つまり、ＣＵの各画素に関連付けられた復号された各インデックスについて、プロセスが、各ＣＵのビットストリーム内で符号化されたパレットを使用することによってＣＵを再構成することに本質が存する。つまり、ＣＵの各画素に対応する色を再構成するための色により、各画素に関連付けられた各インデックスが置き換えられる。すでに述べられたように、パレットモードは予測モードであり、つまり残差符号化を関連付けることができる。これはその後、最終的に再構成されたＣＵを構築するために、予測に追加される。
【０１６５】
さらに、図７ａに、ＨＥＶＣのレンジ拡張において検討中の、デコーダ側のパレットモード予測の原理を示す。現在のＣＵの予測モードは、ビットストリーム（７０１）からステップ（７０２）において抽出される。現在、パレットモードは、ビットストリーム内のスキップフラグの前に位置するフラグによって特定される。このフラグは、単一の文脈を用いてＣＡＢＡＣ符号化される。このモードがパレットモードであれば（７０３）、パレットモードの関連するシンタックス（７０５）は、ビットストリーム（７０１）から抽出される（７０４）。
【０１６６】
次に、ステップ（７０６）において、パレット（７０７）およびレベルのブロック／ＣＵ（７０８）の２つの要素が構築される。このレベルのブロック／ＣＵおよび関連付けられたパレットにしたがって、ブロック／ＣＵ予測子（画素ドメイン中）（７１０）が構築される（７０９）。つまり、ブロック／ＣＵの各レベルについて、（ＲＧＢまたはＹＵＶ）色が各画素に関連付けられる。
【０１６７】
次に、ＣＵ残差がビットストリーム（７０１）から復号される（７１１）。レンジ拡張において検討中の現在の実施パレットモードでは、パレットモードに関連付けられた残差は、共通のＨＥＶＣ残差間符号化方法を用いて符号化される。ＣＵの残差を求めるため、従来の逆量子化および逆変換が実行される。再構築されたＣＵ（７１４）を形成するために、このブロック残差（７１２）にブロック予測子（７１０）が加算される（７１３）。
【０１６８】
図７ｂは、ＨＥＶＣの画面符号化拡張（Ｓｃｒｅｅｎ  ｃｏｄｉｎｇ  Ｅｘｔｅｎｓｉｏｎ）において検討中のデコーダ側のパレットモードの別の実施を記載する。この場合、残差はなく、予測自体もない。代わりに、パレットによって適切に表すことができない画素がエスケープ値として符号化される。つまりインデックスは、明確に量子化された画素値が送信されることを示すために使用される。画素がエスケープ値として符号化されたとき、以下に記載されるようなエスケープフラグが所定値に設定されている。その結果、図７ａと比較すると、一部のステップが修正される。残差が符号化されていなければシンタックスはわずかに変化しているので、ステップ７０４ｂは、７０５と比較すると、固有のシンタックス７０５ｂを抽出する。実際にこの新しいモードにおいて、画素値は、可能であればパレットモードを用いて符号化されている。それ以外は、画素値がパレット要素を用いて符号化できない場合には（例えばパレットがその最大サイズに到達し、新しい値が追加できないため）、画素値はエスケープ値として符号化される。
【０１６９】
するとデコーダは、図７ａのステップ７０６のように、パレット７０７、レベルのＣＵ１０８、加えてエスケープ画素値のブロック７１５を、ステップ７０６ｂにおいて再構築する。この新しいブロック７１５は、出力ブロック７１４を生成するために、既知のブロック７０８およびパレット７０７に組み込まれる。
【０１７０】
図８ａは、エンコーダ側のパレット方法の原理を示す。現在のＣＵ８０１は、３つの値（Ｙ，Ｕ，Ｖ）または（Ｒ，Ｇ，Ｂ）を有する画素の代わりにレベルを含む、同じサイズのブロック８０２に変換される。このブロックまたはＣＵ８０３に関連付けられたパレットが構築され、各レベルエントリについて関連する画素色値を含む。なお、単色用途では、画素値は１つの成分しか含むことができないことに留意する。
【０１７１】
図８ｂは、図７ａに関連してエスケープ画素値を使用して、この原理を拡大する。画素ブロック８０１ｂの画素値８１１がパレット要素によって表せないときには、これはエスケープ値であるとして信号送信される。これは、例えば８１２（値３を取る）など、（７０８と同様に）８０２ｂ内の特定のインデックスレベルを用いて信号送信可能であり、パレット８０３ｂ（７０７と同様）中のそのエントリ８１３は、実際には定義されない。よって、パレット要素は実際には送信されない。代わりに、エスケープ画素値が、８０４ｂ（７１５と同様）の一部として送信される。明らかに、エスケープフラグのようなエスケープ画素値を信号送信するために、８１２／８１３以外の手段が使用可能である。
【０１７２】
図７ａにおいて述べたように、パレットは符号化され、各ＣＵごとにビットストリームに挿入される。同じように、レベルのブロック／ＣＵも符号化され、ビットストリームに挿入される。図９に一例が示されている。この例において、ＣＵは水平順（例えば左から右へ）に１行ずつ処理される。
【０１７３】
図９において、レベルのブロック／ＣＵ（９１）は、図中のもの（８０２）と全く同じである。テーブル（９２）および（９３）は、ブロック／ＣＵ（９１）を処理するための連続ステップを示す。テーブル（９３）は、テーブル（９２）の以下のステップとして読み取られる。これらのテーブルで使用される色は、同じ色を有する画素ブロック／ＣＵ（９１）を処理するための８つのステップに対応する。
【０１７４】
これら２つのテーブルは、パレットモードと関連付けられた現在のシンタックスを示す。これらのシンタックス要素は、ＣＵ（９１）のビットストリーム内の関連付けられた符号化情報に対応する。これらのテーブルにおいて、３つの主要な構文要素は、パレットモードの動作全体を表すために使用され、かつ以下のように使用される。
・「Ｐｒｅｄ  ｍｏｄｅ」フラグ
このフラグが「０」と等しいとき、これは、現在の画素に新しいレベルが使用されることを意味する。レベルはこのフラグの後、ただちに信号送信される。
このフラグが「１」と等しいとき、これは、「コピーアップ」モードが使用されることを意味する。より具体的には、現在の画素レベルが、（ラスター走査順と同じ位置で開始して）すぐ上の列に位置する画素レベルに対応することを意味する。「Ｐｒｅｄモード」フラグが「１」に等しい場合には、直後にレベルを信号送信する必要はない。
すぐ上の列に位置する画素レベルは、現在の画素の空間的近傍にある。
・「Ｌｅｖｅｌ」
このシンタックス要素は、現在の画素のパレットのレベル値を示す。
・「Ｒｕｎ」
このシンタックス要素は、「Ｐｒｅｄ  ｍｏｄｅ」フラグに依存する、異なる意味を有する。
「Ｐｒｅｄ  ｍｏｄｅ」フラグが「０」に等しいとき、このシンタックス要素は、現在のものの直後に同じレベルが適用される、連続画素の数を示す。例えばＲｕｎ＝８の場合、これは現在のレベルが、現在のサンプル（画素位置）、および後続の８サンプルに適用されることを意味し、これは合計９サンプルに対応する。
「Ｐｒｅｄ  ｍｏｄｅ」フラグが「１」と等しいとき、このシンタックス要素は、現在のものの直後に「コピーアップ」モードが適用される、連続画素の数を示す。例えば、Ｒｕｎ＝３１の場合、これは現在のサンプルのレベルが、上の行のサンプル、ならびに後続の３１サンプルからコピーされることを意味し、これは合計３２サンプルに対応する。
【０１７５】
テーブル（９２）および（９３）に、パレットモードを用いてブロック／ＣＵ（９１）を表すための８つのステップを表す。各ステップは「Ｐｒｅｄ  ｍｏｄｅ」フラグの符号化で始まり、「Ｐｒｅｄ  ｍｏｄｅ」フラグが「０」に等しい場合にはレベルシンタックス要素がこれに続き、「Ｐｒｅｄ  ｍｏｄｅ」フラグが「１」に等しい場合には「Ｒｕｎ」シンタックス要素がこれに続く。「Ｌｅｖｅｌ」シンタックス要素には必ず「Ｒｕｎ」シンタックス要素が続く。
【０１７６】
図１０は、パレットモードのシンタックス要素復号を示す。
【０１７７】
現在のブロックのために復号された予測モードがパレットモードであるとき、デコーダはまず、このブロックに関連付けられたシンタックスを復号し、次に図１１に記載されるＣＵの再構築プロセスを適用する。
【０１７８】
図１０は、パレットモードに関連するシンタックス要素の復号プロセスを詳細に示す。まず、パレットのサイズがビットストリーム（１００１）から抽出され復号（１００２）される。ステップ（１００２）で復号されたこのサイズ値に１を追加することにより、パレットの正確なサイズ（Ｐａｌｅｔｔｅ＿ｓｉｚｅ）が取得される。実際、サイズは単項符号を用いて符号化され、値０が最小ビット数（１ビット）をとり、パレットのサイズは０に等しくなることはできない。そうでなければ、画素値はブロック予測子を構築するために使用することはできない。
【０１７９】
次に、パレット値復号に対応するプロセスが始まる。パレットのインデックスに対応する変数ｉが０に等しく設定され（１００４）、次にステップ１００５において、ｉがパレットサイズ（Ｐａｌｅｔｔｅ＿ｓｉｚｅ）に等しいか否かを確認するためのテストが実行される。該当しない場合には、１つのパレット要素がビットストリーム（１００１）から抽出され復号（１００６）され、次にｉに等しい関連するレベル／インデックスを有するパレットに加えられる。次に変数ｉは、ステップ（１００７）でインクリメントされる。ｉがパレットサイズと等しい場合には（１００５）、パレットは完全に復号されている。
【０１８０】
次に、レベルのブロックの復号に対応するプロセスが実行される。まず、画素カウンタに対応する変数ｊ、ならびに変数ｓｙｎｔａｘ＿ｉは、０に設定される（１００８）。次に、画素カウンタがブロック／ＣＵに含まれる画素の数に対応するか否かの確認が実行される。ステップ（１００９）において答えが「はい」の場合、プロセスはステップ（１０１７）で終了し、そうでなければ１つの予測モードに対応するフラグ「Ｐｒｅｄ  ｍｏｄｅ」の値が、ビットストリーム（１００１）から抽出されて復号（１０１０）される。
【０１８１】
「Ｐｒｅｄ  ｍｏｄｅ」の値は、復号されたすべての「Ｐｒｅｄ  ｍｏｄｅ」値を含むインデックスｓｙｎｔａｘ＿ｉにおいて、テーブルに加えられる。この「Ｐｒｅｄ  ｍｏｄｅ」の値が０に等しい場合（１０１１）、「Ｌｅｖｅｌ」に対応するシンタックス要素は、ビットストリーム（１００１）から抽出されて復号（１０１２）される。この変数「Ｌｅｖｅｌ」は復号されたすべてのレベルを含むインデックスｓｙｎｔａｘ＿ｉにおいて、テーブルに加えられる。画素カウンタに対応する変数ｊは、１だけインクリメントされる（１０１３）。
【０１８２】
次に、ステップ（１０１４）で「Ｒｕｎ」構文要素が復号される。シンタックス要素「Ｐｒｅｄ  ｍｏｄｅ」が１に等しい場合（１０１１）、「Ｒｕｎ」値もまたステップ（１０１４）において復号される。このシンタックス要素「Ｒｕｎ」は、復号されたすべてのランを含むインデックスｓｙｎｔａｘ＿ｉにおいて、テーブルに加えられる。
【０１８３】
次にステップ（１０１５）において、値ｊは、ステップ（１０１４）で復号されたランの値だけインクリメントされる。変数ｓｙｎｔａｘ＿ｉがインクリメントされる。カウンタｊがブロック内の画素の数と等しい場合には、パレット予測子を構築するためのシンタックスが完了する（１０１７）。パレットに関連するこのプロセスの終わりに、デコーダは、パレットと、このＣＵのパレット予測モードに関連付けられたすべての「Ｐｒｅｄ  ｍｏｄｅ」、「Ｌｅｖｅｌ」、および「Ｒｕｎ」シンタックス要素のリストを含むテーブルとを知ることになる。デコーダはその後、ＣＵの再構築プロセスに進むことができる。以下の表は、各シンタックス要素のエントロピー符号の使用法を示す。
【表１】
0006537511.tif 000002
図１１は、予測子として使用されることになるＣＵを構築するための、再構築プロセスを示す。このプロセスの入力データは、「Ｐｒｅｄ  ｍｏｄｅ」、「Ｌｅｖｅｌ」、および「Ｒｕｎ」のリスト、ならびにブロック／ＣＵサイズを含む、テーブルである。第一ステップ（１１０１）において、画素カウンタを表す変数ｉが０に等しく設定され、変数ｊもまた０に等しく設定される。次に、インデックスｊの「Ｐｒｅｄ  ｍｏｄｅ」のテーブルから抽出された要素が０に等しいか否かを確認する（１１０４）。０に等しい場合、これは現在の画素ｉのために新しいレベルが符号化されることを意味する。ゆえに位置ｉにおける画素の値は、レベルのテーブルのインデックスｊのレベルに等しく設定される（１１０５）（Ｂｌｏｃｋ［ｉ］＝Ｌｅｖｅｌ［ｊ］）。
【０１８４】
変数ｉは１だけインクリメントされる（１１０６）。変数ｋは０に等しく設定される（１１０７）。ｋがインデックスｊにおけるランのテーブルの「Ｒｕｎ」要素に等しいか否かを知るために、（１１０８）において確認が実行される。該当しない場合には、位置ｉにおける画素の値（レベル値）は位置ｉ−１における画素の値（レベル値）と等しく設定され（１１０９）、これは以下の式Ｂｌｏｃｋ［ｉ］＝Ｂｌｏｃｋ［ｉ−１］に対応する。変数ｉ（１１１０）および変数ｋ（１１１１）はその後、１だけインクリメントされる。ステップ１１０８における確認が「はい」を返したら、左のレベル値の伝播が完了し、ステップ１１２０が実行される。
【０１８５】
ステップ１１０４における確認が値「いいえ」を返すと、「コピーアップ」モードが開始する。変数ｋは０に等しく設定される（１１１２）。ステップ１１１３は、（ｋ−１）がインデックスｊのランのテーブルの「Ｒｕｎ」要素と等しいか否かを確認する。該当しない場合、位置ｉの画素の値（レベル値）は、上の列の位置ｉにおける画素の値（レベル値）に等しく設定される（１０１４）。これは、以下の式Ｂｌｏｃｋ［ｉ］＝Ｂｌｏｃｋ［ｉ−ｗｉｄｔｈ］に対応する。値「ｗｉｄｔｈ」は、ブロック／ＣＵの幅である。変数ｉおよび変数ｋはその後、ステップ１１１５および１１１６において１だけインクリメントされる。ステップ１１１３における確認が値「はい」を返したら、予測モード「コピーアップ」は完了し、次のステップ１１２０が実行される。
【０１８６】
ステップ１１２０において、変数ｉがブロック／ＣＵ内の画素の量と等しいか否かの確認が実行される。該当しない場合、変数ｊは１だけインクリメントされ（１１２１）、プロセスは上記ですでに説明したステップ（１１０４）を続けて実行する。
【０１８７】
ステップ（１１２０）において確認の結果が「はい」であった場合、すべてのレベルは、ステップ（１１２２）でブロックの各画素に対して影響を与える（１１２２）。
【０１８８】
次に、最終段階（１１２３）は、パレット内容にしたがって色値の各レベルを変換することに本質が存する。このプロセスは、ブロック内の位置のレベルおよびパレットのエントリにしたがって、各ブロック位置の画素値（Ｙ，Ｕ，Ｖ）または（Ｒ，Ｇ，Ｂ）に対して影響を与える。図１２は、エンコーダ側のパレット決定アルゴリズムを示す。
【０１８９】
このプロセスの入力データは、元のブロック／ＣＵおよびブロック／ＣＵサイズである。この例ではＹＵＶパレットを作成するが、ＲＧＢパレットも同じやり方で構築可能である。
【０１９０】
第一ステップ（１２０１）において、画素カウンタ「ｉ」を表す変数および変数「Ｐａｌｅｔｔｅ＿ｓｉｚｅ」が０に設定される。閾値を表す変数「ＴＨ」は、９に設定される。次にステップ（１２０３）において、画素ｐｉが元のブロック（１２０４）から読み取られる（１２０３）。次に変数ｊが０に設定され（１２０５）、ステップ（１２０６）において、パレットサイズが変数「ｊ」に等しいか否かの確認が実行される。
【０１９１】
これが該当する場合、インデックス「ｊ」におけるパレットは、画素値ｐｉに等しく設定される（１２０９）。つまり、現在の画素Ｐｉがパレットのエントリになる。より正確には、以下の代入が実行される
・ＰＡＬＹ［ｊ］＝（Ｙｉ）
・ＰＡＬＵ［ｊ］＝（Ｕｉ）
・ＰＡＬＶ［ｊ］＝（Ｖｉ）
【０１９２】
パレットサイズ（Ｐａｌｅｔｔｅ＿ｓｉｚｅ）は１だけインクリメントされ（１２１０）、発生テーブルは、インデックス「パレットサイズ」については１に等しく設定される（１２１１）。次に、ブロック／ＣＵの次の画素「ｉ」を検討するために、変数ｉがインクリメントされる（１２１３）。
【０１９３】
ブロック／ＣＵのすべての画素が処理されたか否かの確認が、ステップ（１２１４）で実行される。「はい」の場合、以下で説明する順序づけプロセス（１２１５）によってプロセスが完了し、そうでなければ次の画素が、すでに記載されたステップ（１２０３）で検討される。
【０１９４】
確認が値「いいえ」を返したときはステップ（１２０６）に戻り、次のステップは、ステップ（１２０７）であり、ｐｉとインデックスｊにおけるパレット要素との間の各色成分の絶対値が計算される。すべての絶対差が厳密にＴＨ（本実施形態では９に設定）と同等の閾値以下である場合、パレット内のエントリ「ｊ」に関する発生カウンタは、１だけインクリメントされる。ステップ（１２１２）の後、次のステップでは、すでに説明したステップ（１２１３）である。ステップ（１２０７）において、確認が「いいえ」の回答を返したとき、その他のパレット要素を現在の画素と比較するために（１２０７）、変数ｊはインクリメントされる（１２０８）。パレット内のいずれの要素も基準を満たさない場合には、パレットに新しい要素が加えられる（１２０９、１２１０、１２１１）。
【０１９５】
なお、決定モジュール（１２０７）は、４４４個の（ＹＵＶまたはＲＧＢ）シーケンスの各色要素を比較することができるが、４２０個のシーケンスについてしか輝度色成分を比較できない。
【０１９６】
このプロセスの終わりに、テーブル「カウンタ」は、パレット要素の発生を含む。次にステップ（１２１５）において、パレット要素は、最も頻度の高い要素がパレット内の第一の位置になるように、これらの発生にしたがって順序づけられる。
【０１９７】
また、パレットサイズは、現在の実施において２４に固定されているパレットの最大サイズを超過することができる。パレットサイズが２４を超過した場合、パレットサイズは２４に等しく設定され、残りの要素はパレットから削除される。これらのプロセスの終わりに、パレットが構築される。これは実施の一例に過ぎず、このアルゴリズムを用いてパレットを直接構築することも可能である。
【０１９８】
図１３は、レベルのブロック、予測モード、およびランの現在の実施の選択のプロセスを示す。このプロセスの入力データは、元のブロック／ＣＵ、パレット、およびブロック／ＣＵサイズである。
【０１９９】
第一ステップにおいて、画素カウンタに関する変数「ｉ」が０に設定される（１３０１）。
【０２００】
予測の２つのモード（「Ｐｒｅｄ  ｍｏｄｅ」＝０および「Ｐｒｅｄ  ｍｏｄｅ」＝１）が、個別に評価される。
【０２０１】
「コピーアップ」予測（「Ｐｒｅｄ  ｍｏｄｅ」＝１に対応）では、変数「ｉｃｏｐｙ」が０に等しく設定される（１３０３）。次にステップ（１３０４）は、画素位置ブロック［ｉ＋ｉｃｏｐｙ］における現在のレベルが、位置ブロック［ｉ＋ｉｃｏｐｙ−ｗｉｄｔｈ］に対応する上の列の画素のレベルに等しいか否かを確認するが、ここで「ｗｉｄｔｈ」は、検討される現在のブロック／ＣＵの幅に対応する。答えが「はい」の場合、変数「ｉｃｏｐｙ」はステップ（１３０５）において１だけインクリメントされる。
【０２０２】
なお、ブロック／ＣＵの各インデックスのレベルはステップ（１３０８）において並行して決定されることに留意する。これは、最も近いパレット要素内の位置ｉにおける画素に対して作用することに本質が存する（１３０８）。このプロセスは、位置ｉ、パレット（１３０６）、および元のブロック（１３０７）を使用する。ステップ（１３０８）において、レベルはブロック／ＣＵ内の位置「ｉ」に位置するサンプルに関連付けられる。
【０２０３】
ステップ（１３０４）において答えが「いいえ」を返した場合、変数「ｉｃｏｐｙ」は決定モジュール１３１４に送信される。この変数「ｉｃｏｐｙ」は、上の列からコピーされた値の数に対応する。
【０２０４】
並行して（または連続的に）、左予測モードのラン値を決定するためのループが、処理される。まず、変数「ｉＳｔａｒｔ」および「ｊ」は「ｉ」と等しく設定され、「ｉｌｅｆｔ」は０に等しく設定される（１００９）。ステップ（１３１０）において、ｊ！＝０か否か、「Ｐｒｅｄ  ｍｏｄｅ［ｊ−１］」＝０か否か、およびＢｌｏｃｋ［ｊ］＝Ｂｌｏｃｋ［ｊ−１］か否かの確認が実行される。真である場合、変数「ｉｌｅｆｔ」は１だけインクリメントされ（１３１１）、変数ｊもインクリメントされる（１３１２）。
【０２０５】
ステップ１３１０において、答えが「いいえ」であるとき、次のステップは、新しい確認が実行される（１３１３）である。「ｊ」が「ｉＳｔａｒｔ」より大きい場合（１３１３）、これは予測されておらずレベルを用いて直接符号化されていない予測モードの第一の値ではないかどうか（ｊ！＝０またはＰｒｅｄ  ｍｏｄｅ［ｊ−１］＝０）を確認する。これが第一の値ではない場合、変数「ｉｌｅｆｔ」は決定モジュール１３１４に送信される。そしてこれは第一の確認済みレベルとなり（１３１３）、変数ｊのみがインクリメントされる。コピーアップ予測のループと同様に、インデックスｉのレベルＢｌｏｃｋ［ｉ］は、同じループで決定される（１３０８）。
【０２０６】
「左予測」および「コピーアップ」モードの最大ランを計算した後、「ｉｃｏｐｙ」！＝０か否か、および「ｉｃｏｐｙ」＋２が「ｉｌｅｆｔ」より大きいか否かを知ることにしたがって、変数「ｉｌｅｆｔ」および「ｉｃｏｐｙ」が比較される（１３１４）。つまり、「ｉｃｏｐｙ」が０である場合に「左予測」モードが選択される（「ｃｏｐｙ」！＝０）（１３１５）。これが０とは異なり、「ｉｃｏｐｙ」＋２が「ｉｌｅｆｔ」より大きい場合、「コピーアップ」モードが選択される（１３１６）。「左予測」モードでは、「ＰｒｅｄＭｏｄｅ」変数は０に等しく設定され、ランは「ｉｌｅｆｔ」に等しく設定される（１３１５）。「コピーアップ」モードでは、「ＰｒｅｄＭｏｄｅ」変数は１に等しく設定され、ランは「ｉｃｏｐｙ」−１に等しく設定される（１３１６）。
【０２０７】
次に、「Ｐｒｅｄモード」および「Ｒｕｎ」を含むテーブルが、現在の値「Ｐｒｅｄ  ｍｏｄｅ」および「Ｒｕｎ」で更新される（１３１７）。なお、ステップ（１３１８）で検討すべき次の位置は、「Ｒｕｎ」値によってインクリメントされた現在の位置に対応することに留意する。次に、最後の画素が処理されたことを知るための確認が、ステップ（１３１９）において実行される。「はい」の場合、プロセスは終了するが（１３２０）、そうでなければ２つの予測モード「左予測」および「コピーアップ」の評価が、次の画素位置について評価される。
【０２０８】
このプロセスの終わりに、エンコーダは、ブロック／ＣＵの各サンプルのレベルを知り、２つのテーブル「Ｐｒｅｄ  ｍｏｄｅ」および「Ｒｕｎ」の内容に基づいて、ブロック／ＣＵの対応するシンタックスを符号化することができる。
【０２０９】
ブロック予測を決定するために、エンコーダはその後、パレットにしたがって定義されたレベルのブロックを変換する。
【０２１０】
本発明の第一の実施形態においては、「Ｐｒｅｄ  ｍｏｄｅ」の符号化／復号化は、レベルのブロックの一列目では回避される。本実施形態では、レベルの信号送信に対応するモード「Ｐｒｅｄ  ｍｏｄｅ」＝０のみが、一列目に使用される。実際、上の列は存在しない、またはこの上の列は符号化されているレベルのブロック内にはないために、「Ｐｒｅｄ  ｍｏｄｅ」＝１、「コピーアップ」予測モードは一列目では適用不可能と見なされ、あるいはこれがパレットモードに属する場合には、この列は同じパレットを使用すべきではない。本実施形態の利点は、「コピーアップ」予測モードが利用可能な場合、「Ｐｒｅｄ  ｍｏｄｅ」の信号送信のためにビットを節約することである。
【０２１１】
図１４は、本実施形態を示す。図１４は図１０に基づく。モジュール１４０１から１４１７は、モジュール１００１から１０１７と同じである。変数ｊが列内の画素の数よりも少ないときの「Ｐｒｅｄ  ｍｏｄｅ」の復号を回避するために、モジュール１４１８が追加されている。
【０２１２】
本実施形態の代替は、上の列にレベル選択プロセスを適用することである。これは、上の列の各画素にレベルの影響を与えることに本質が存する。この場合、「コピーアップ」モードは、内側ブロック内と同じ機能を有し、この上の列のいくつかのレベルをコピーすることができる。この上の列が別のパレットモードＣＵに属する場合、この上の列に対応するレベルは、上のＣＵのパレットおよび現在のＣＵが異なったとしても、現在のパレットの「コピーアップ」モードに使用可能である。
【０２１３】
一実施形態において、「Ｐｒｅｄ  ｍｏｄｅ」の復号は、最後に復号された「Ｐｒｅｄ  ｍｏｄｅ」に依存する。「Ｐｒｅｄ  ｍｏｄｅ」は、最後に復号された「Ｐｒｅｄ  ｍｏｄｅ」が１に等しいときには（「コピーアップ」）復号されない。実際、最後のモードが「コピーアップ」である場合、現在のレベルが上のレベルと等しいことを選択する最も簡単な方法は、最後の「コピーアップ」のランに＋１を追加することである。本実施形態の利点は、「コピーアップ」予測モードの後に「Ｐｒｅｄ  ｍｏｄｅ」の信号送信を省略することである。図１５は、本実施形態を示す。図１５は、図１０に基づく。モジュール１５０１から１５１７は、Ｌａｓｔ＿Ｐｒｅｄ変数が０に等しく設定されているモジュール１５０８を除いて、モジュール１００１から１０１７と同じである。モジュール１５１８は、Ｌａｓｔ＿Ｐｒｅｄが１に設定されているか否か（「コピーアップ」）を確認する。該当する場合、変数「Ｐｒｅｄ  ｍｏｄｅ」はビットストリームから抽出されず、これは０に設定される（１５１９）。また、レベルおよび／またはラン値を復号した後、変数Ｌａｓｔ＿Ｐｒｅｄは「Ｐｒｅｄ  ｍｏｄｅ」に等しく設定される。
【０２１４】
代替実施形態では、「Ｐｒｅｄ  ｍｏｄｅ」は常に復号されるが、これが行われるときには復号プロセスが変更される。そのため、「コピーアップ」が「コピーアップ」に続くとき、レベルを送信することなく「Ｐｒｅｄ  ｍｏｄｅ」＝０が適用される。コピーされたレベルは、最後に復号されたレベル（左レベル）に等しく設定される。本実施形態の利点は、「Ｐｒｅｄ  ｍｏｄｅ」と最後に復号された「Ｐｒｅｄ  ｍｏｄｅ」との間の構文解析依存を回避することである。
【０２１５】
一実施形態において、「Ｐｒｅｄ  ｍｏｄｅ」は、最後に復号された「Ｐｒｅｄ  ｍｏｄｅ」、左レベル、および上レベルに依存する。「Ｐｒｅｄ  ｍｏｄｅ」は、最後に復号された「Ｐｒｅｄ  ｍｏｄｅ」が０に等しい場合、および上レベルが左レベルに等しい場合には、復号されない。実際、その場合、現在のレベルが上レベルに等しいことを選択する最も簡単な方法は、最後の「Ｐｒｅｄ  ｍｏｄｅ」のランに１を追加することである。先の実施形態のように、利点は、この条件が真であるときに「Ｐｒｅｄ  ｍｏｄｅ」に関連するビットを節約することである。
【０２１６】
本発明の一実施形態において、復号されたレベルの値は、最後の「Ｐｒｅｄ  ｍｏｄｅ」の値に依存し、この「Ｐｒｅｄ  ｍｏｄｅ」にしたがって、復号されたレベルは、左レベルまたは上レベルの値に依存する。実際、Ｌａｓｔ＿ｐｒｅｄが０に等しいとき、レベルは左レベルと等しくなってはならず、別途ラン値に＋１を設定する方が簡単である。同じように、Ｌａｓｔ＿ｐｒｅｄが１に等しいとき（「コピーアップ」）、レベルは上レベルと等しくなってはならず、別途ラン値に＋１を設定する方が簡単である。この実施形態の利点は、レベルの符号化においていくらかのビットを節約することである。したがって、Ｌａｓｔ＿Ｐｒｅｄが０に等しいとき、現在のレベルが左レベルよりも大きい場合には、１を差し引いたレベルに設定される。同じように、Ｌａｓｔ＿Ｐｒｅｄが１に等しいとき、現在のレベルが上レベルよりも高い場合には、１を差し引いたレベルに設定される。また、最大可能レベル値がデクリメントされる。なお、先行技術のセクションで述べたように、最大値は、現在の実施におけるレベル当たりのビット数を固定するために使用されることに留意する。最大サイズがＰａｌｅｔｔｅ＿ｓｉｚｅであることにも留意する。本実施形態は、Ｐａｌｅｔｔｅ＿ｓｉｚｅのみが２に等しいときに、特に有効である。実際にその場合には、第一レベルを除きレベルを符号化する必要はない。実施を簡素化するために、本実施形態は、Ｐａｌｅｔｔｅ＿ｓｉｚｅが２と等しいときにのみ適用される。
【０２１７】
図１６の別の実施形態において、「Ｌｅｖｅｌ」値は、ランに関する情報を含む。具体的には、「Ｌｅｖｅｌ」が固定長符号化を用いて符号化される場合には、いくつかの可能なｃｏｄｅｗｏｒｄは利用されず、強制的により多くの情報を保持させることができる。この場合、復号された「Ｌｅｖｅｌ」がＰａｌｅｔｔｅ＿ｓｉｚｅ以上であれば、この値は特定のラン長および「Ｌｅｖｅｌ」に対応する。図１６では、１６１７に具体的なケースを示す。１６１７では、−ラン値は「Ｌｅｖｅｌ」−Ｐａｌｅｔｔｅ＿ｓｉｚｅであると推定可能であり、
−「Ｌｅｖｅｌ」は、値Ｘ（通常は０）のその他の「Ｌｅｖｅｌ」であり、実際にはパレットの一部である（すなわち、「Ｌｅｖｅｌ」＜Ｐａｌｅｔｔｅ＿ｓｉｚｅ）。
【０２１８】
当然ながら、Ｐａｌｅｔｔｅ＿ｓｉｚｅ以上の各「Ｌｅｖｅｌ」は特定の「Ｌｅｖｅｌ」および「Ｒｕｎ」値を表すと推測できる。これは、この場合にランが実際にどのように符号化されるかに影響を及ぼすことがある。上記は、「Ｌｅｖｅｌ」および「Ｒｕｎ」値のいくつかの組み合わせはその「Ｒｕｎ」値を明示的に送信されないことを示している。我々の具体例において、Ｐａｌｅｔｔｅ＿ｓｉｚｅから２Ｂ−１までの「Ｌｅｖｅｌ」値は「Ｒｕｎ」値を符号化するので、０からＴ＝２Ｂ−１−Ｐａｌｅｔｔｅ＿ｓｉｚｅまでの「Ｒｕｎ」値は符号化されないことが、わかる。ここでＰはパレット要素の数、Ｂは２Ｂが２Ｂ≧Ｐとなる最小整数となるような整数である。この場合、復号された「Ｒｕｎ」値は、Ｔによってインクリメントされる。このことを考慮するとさらに、例えば順序３の指数ゴロム符号など、この具体的なケース（ステップ１６．１４）において特定のエントロピー符号が推測できる。
【０２１９】
図１７は、レベル（または代表インデックス）符号化の簡素化された実施形態を示し、その目的は単にこの符号化を説明するためである。結果的に、ステップ１７．３から１７．１５は本実施形態にとって重要なステップであり、その他のステップは任意に簡素化されたままである。「ｉｄｘ」を、レベルのブロック内のラスター走査順にしたがって符号化すべき現在のレベルの位置とし、ｌｖｌを前記ブロックに対応するアレイとし、Ｗをブロックの幅（１行あたりのレベルの数を単位とする）とし、Ｍを現在のパレット内の要素の数とする。そこでステップ１７．１では、とりわけブロック内の現在の位置「ｉｄｘ」を０に設定することによってインデックス符号化が実行されるループを初期化する。ステップ１７．２は、レベルが符号化されるべきか否かを確認する。これは好適な実施形態において、位置「ｉｄｘ」における予測モードが「コピーレフト」であるか否かを確認するのと似ている。
【０２２０】
符号化しなければならないレベルがない場合には、処理は直接ステップ１７．１６までスキップし、そうでなければこれはステップ１７．３に続く。このステップは、符号化すべき変数「ｖａｌ」の値をｌｖｌ［ｉｄｘ］に、スパースリスト内の可能なレベルの数「Ｍ’」を「Ｍ」に設定することによって（すなわち、存在しない要素はない）、レベルの符号化の準備をする。次にステップ１７．４は、最後のモード、すなわちラスター走査順で先に使用された予測モードが「コピーレフト」であったか否かを確認する。これが判断できなかった場合（例えば、「ｉｄｘ」が０であるため）、または最後のモードが「エスケープモード」として知られるモードであったため、または最後のモードが「コピーレフト」ではないため、処理はステップ１７．５に続くが、そうでなければステップ１７．６が実行され、一時変数「ＴＨ」がラスター走査順で前のレベルに設定され、その後ステップ１７．８に進む。
【０２２１】
別の実施形態では、ステップ１７．４は、位置「ｉｄｘ−１」における予測モード（最後のモード）が「コピーレフト」であったか否かを確認するステップ、および位置「ｉｄｘ−１」におけるレベルが特定条件を満たしたか否か、特に位置「ｉｄｘ−１」におけるにレベルが「ｌｖｌ［ｉｄｘ−１］＜ＬＩＭＩＴ」などの所定値ＬＩＭＩＴより小さいか否かを確認するステップを、備えることができる。この新しい実施形態は、「Ｒｕｎ」機能が前のブロックを符号化するために使用された場合に特に有用であり、この機能は、同じレベルを有する連続ブロックのすべてについて同じ値を符号化することを含んでいる。しかしながら、本実施形態において、ラン機能は、閾値ＬＩＭＩＴより上のブロックについては無効にしてもよい。ステップ１７．５に戻り、このステップでは、前のモードが「コピーアップ」であったか否かを確認する。ステップ１７．４については、その判断ができない場合またはそうではない場合には、処理はステップ１７．１１まで完全にスキップし、そうでなければ変数ＴＨの値は、１行あたりのレベルの数Ｗに等しい値を位置から減ずることによって、ラスター走査順で現在のものの上のレベルに設定される。次にプロセスは、１７．６からの処理と同じように、ステップ１７．８に進む。いずれも変数ＴＨを設定しており、これはスパースリスト中に存在しないものである。
【０２２２】
実際には変数ＴＨは、使用された最後のモードに応じて位置ｉｄｘで取ることができないレベル値を表す。例えば最後のモードが「コピーレフトモード」であった場合、ｉｄｘでのレベルはｉｄｘ−１のレベルと同じになることはなく、それ以外は最後のモードを用いて符号化されたことになる。
【０２２３】
したがって、Ｍ’はステップ１７．８においてＭ−１に設定される。次にステップ１７．９は、符号化すべき値「ｖａｌ」と変数ＴＨの値とを比較する。これがＴＨより大きい場合には、符号化すべき値がステップ１７．１０でデクリメントされる。実際、ｖａｌの値がＴＨより小さい場合には、これはステップ１７．８による影響を受けない。いずれの場合も、これにステップ１７．１１が続く。
【０２２４】
ここで、Ｍ’が１と比較される。可能なレベルがひとつだけだとすれば、その値は推測可能であり、レベル符号化はすべて省略され、したがって処理はステップ１７．１６までスキップする。
【０２２５】
そうでない場合は、ステップ１７．１２で、可能なレベルの数Ｍ’、ビット数Ｎ、Ｎ≧０、および整数値Ｒを前提とすると、代わりにＮ＝Ｎ＋１およびＲ＝２ＮとされるＭ’＝２Ｎの特殊な場合にＭ’＝２Ｎ−Ｒとなるように、０＜Ｒ≦２＜Ｎ＞が決定される。ＮまたはＲの値は、テーブルに記憶されるか、または計算されることが可能である。例えば、Ｎまたは２＜Ｎ＞あるいはその何らかの変形がＭ’から容易に計算可能であり、したがってＲが容易に推定可能であるシステムが考えられる。Ｍ’＝５では、これはＲ＝３およびＮ＝３となり、Ｍ−８では、これはＲ＝８およびＮ＝４となる。次にステップ１７．１３が実行される。これらの値は、インデックスｃｏｄｅｗｏｒｄの符号化および復号が簡単になるように考案されているが、より短いｃｏｄｅｗｏｒｄを特定のレベルに結び付けるという同じ目的を達成するために異なる決定およびｃｏｄｅｗｏｒｄが採用されてもよいことを、当業者は理解するだろう。
【０２２６】
なお、Ｍ’＝２Ｎの場合には、特殊なケースが発生し、これには必ずステップ１７．１４が続き、Ｎ−１ではなくＮ＋１−１を用いる。これは、追加確認および図１８のステップとして実施可能であるが、特にテーブルを用いて実施される場合には、この挙動を満たす値をステップ１７．１２で見つける方が簡単である。
【０２２７】
ステップ１７．１３では、符号化すべき値「ｖａｌ」をＲと比較する。それの方が小さい場合には、その値は実際に、ステップ１７．１４で行われるように、Ｎ−１ビットで符号化されることが可能である。そうでなければ、Ｎビットが必要とされ、代わりにステップ１７．１５においてｖａｌ＋ＲがＮビット上で符号化される。これは、図１８においてより明確になるように、追加ビットを復号するか否かを決定する前にデコーダがＮ−１ビットのみを確認できるように、行われる。
【０２２８】
図１７に戻ると、ステップ１７．１４または１７．１５のいずれでも、処理は１７．１６に続く。これは単なるループ操作であり、ここで少なくとも位置が、符号化すべき次の要素に更新される。一旦位置が更新されると、ステップ１７．１７において、ブロックの終わりに到達したか否かが判断される。到達していない場合には、処理はステップ１７．２に戻り、そうでなければステップ１７．１８で終了する。
【０２２９】
図１７の対応する復号プロセスを示す図１８に言及したが、そこでは「ｉｄｘ」、「ｖａｌ」、「Ｍ」、「Ｍ’」、「Ｎ」、および「Ｒ」は同じ意味が維持される。ステップ１８．１は、例えばｉｄｘを０に設定することによって、レベルの復号を初期化する。次にステップ１８．２では、現在のモードが「コピーレフト」であるか否かを確認する。そうでない場合には、いずれのレベル（またはインデックス）も復号される必要はなく、処理はステップ１８．２０にスキップする。そうでなければ、Ｍ’はＭに設定される。ステップ１８．４および１８．５ではそれぞれ、前に使用されたモードがそれぞれ「コピーレフト」および「コピーアップ」であるか否かを確認し、該当すればそれぞれステップ１８．６および１８．７に進み、そうでない場合またはこの前のモードを判断できなかった場合には、それぞれステップ１８．５および１８．９に進む。欠落しているレベルがあるため、Ｍ’がＭ−１に設定されるステップ１８．８に進む前に、ステップ１８．６および１８．７では、それぞれ前のものおよび上のものである、欠落レベルにＴＨを設定する。その一方でステップ１８．９では、欠落している値がないことを示す最大値ＭＡＸに、ＴＨを設定する。ステップ１８．８および１８．９の次が、ステップ１８．１０である。
【０２３０】
ステップ１８．１０では、可能なレベルが１つしかないか否かを確認し、その場合、これは暗黙である。ステップ１８．１１において、復号値ｖａｌは０に設定される。そうでなければ、ステップ１７．１２で行われたように、ＮおよびＲがステップ１８．１２おいて決定される。図１７を説明するときに述べたように、まず、「ｖａｌ」がステップ１８．１３においてＮ−１ビットから読み取られる。これにより、ｖａｌがＲより小さいか否かをステップ１８．１４で確認することが可能になる。それに該当する場合には、符号化された値は本当にＮ−１ビットで符号化されており、それはすでに完全に復号されているので、処理はステップ１８．１７に進む。そうでなければ、ステップ１８．１５においてもう１ビットが読み取られる。そしてステップ１８．１６では、読み取られたビットの値「ｂｉｔ」（したがって０または１）を用いて、２＊ｖａｌ＋ｂｉｔ−Ｒである実際の符号化された値を決定することができる。符号化された値が決定されたので、ステップ１８．１７を実行することができる。
【０２３１】
これらは、ステップ１７．９および１７．１０の逆である。復号値がＴＨ未満の場合には、復号値は実際のレベルであり、したがってステップ１８．１８ではこれを「ｖａｌ」に設定する。そうでなければ、ステップ１７．１０が実行され、それによりステップ１８．１９では現在のレベルをｖａｌ＋１に設定することによって処理を逆行させる。なお、ステップ１８．９では、ステップ１８．１９が決して実行されないように、ＴＨを最大値ＭＡＸに設定する。いずれにせよ、次のステップ１８．２０ではｉｄｘを次の位置に更新し、その後ステップ１８．２１に進む。このステップではブロックの終わりに到達したか否かを検証するが、この場合、レベル復号はステップ１８．２２で停止し、そうでなければ処理はステップ１８．２に戻る。
【０２３２】
より一般的には、上述のスパースリストは、いずれか所定のレベル値を差し引いた値のリストであってもよく、つまり上述のように左のレベル値または上のレベル値を意味するが、その他の所定のレベル値であってもよく、またレベルまたは上のレベル値と組み合わせても組み合わせなくてもよい。
【０２３３】
スパースリストを更新するための別の実施形態が、図１９に示されている。本実施形態は、３つ以上の所定のレベルまたはインデックス値が存在するとき、つまり３つ以上の予測モードが検討されるときにスパースリストを処理する方法を提案する。好適な実施形態において、Ｐが利用可能な予測モードの数である場合、スパースリストを取得するために、最大Ｐ−１個のレベル値が取り除かれてもよい。実際、予測モードのうちの１つ（例えば「コピーレフト」）を用いてレベル値を符号化する必要がある場合、これは、他のモード（例えば、「コピーアップ」または図２１に示されるような「遷移モード」と呼ばれるモード）が選択されないこと、また具体的には関連付けられたレベル値が不可能であることを示している。使用されるモードが「コピーアップ」または「遷移モード」である場合も、同じ論理があてはまる。言い換えると、前のインデックスのモードが「コピーレフト」または「遷移」モードのいずれかである場合には、現在の画素／レベルをカバーするために左側のランが代わりに１だけインクリメントされるので、左側のレベルは繰り返されない。
【０２３４】
処理は図１７と非常によく似ている。スパースリスト中で２つ以上のレベル値が禁止されることを考慮するためのステップ１９．４から１９．１０を除いて、２つの図ではステップは同じである。
【０２３５】
ステップ１９．４では、Ｐ個の別のモードに関連付けられたレベル値を決定することが可能であり、これら別のモードのリストは、前に使用されたモードに依存することがある。例えば、「コピーレフト」モード、「コピーアップ」モード、およびパターンテーブルの所定値を暗黙に参照することによって任意の画素のレベル値の符号化を可能にする遷移モードの３つのモードが考えられる。パターンテーブルは、最後に処理された画素の値、および符号化すべき現在の画素の関連付けられた値を含む。遷移モードは、図２１を参照することのよりより詳細に記載する。
【０２３６】
禁止レベルの最初のリストＬは、こうして作成される。ステップ１９．５はその後、リストＬをフィルタリングして縮小リストＬ’にする。第一の実施形態は、レベルの降順でＬをソートし、そして重複するレベル値を除外してＬ’に結果を記憶させることである。したがって、Ｌが｛６，０，４，１，６｝と等しい場合には、Ｌ’は｛６，４，１，０｝に等しい。
【０２３７】
別の実施形態では、重複のソートおよび除外は複雑なので、Ｌのサブセットのみが処理される。例えば、前記サブセットは、Ｒ＝Ｑ＝１の最も明白な実施形態を用いて、リストＬの中で最も小さいレベル値の数Ｑが取得され、Ｌ’の中のＲ≦Ｑレベル値などの数Ｒが取得されるものである。
【０２３８】
フィルタリングプロセスには、禁止レベル値を考慮に入れるための、現在のパレットの新たなソートを含まれる。例えば現在のパレットが｛０，１，２，３，４，５，６，７｝に等しい場合、これはＬ’の禁止レベル値を除外した後｛２，３，５，７｝となる。そして、それぞれのインデックス２、３、５、および７は、以下に記載される処理の後、０、１、２、および３としてそれぞれ符号化されることになる。
【０２３９】
その結果、０≦ｐ≦Ｐ（Ｐはモードの数）となるようなｐ個のレベル値（ｐはＬ’サイズと等しい）が決定され、スパーリストにはＭ’＝Ｍ−ｐ個の要素が含まれる。ステップ１９．６において、スパースリストのサイズＭ’が計算される。また、Ｌ’の最初の要素は、ループカウンタｉをＯに設定することによって選択される。
【０２４０】
ステップ１９．７はその後、Ｌ’の中に要素が残っているか否かを確認する。残っていなければ、Ｌ’は完全に使用されており、処理は先に記載されたステップ１７．１１と類似のステップ１９．１１で再開する。そうでなければ、ステップ１９．８はステップ１７．９と同じように動作する。一時変数ＴＨｉが、縮小リストＬ’の第一の値（ｉ＝０）に設定される。
【０２４１】
値ｖａｌが変数ＴＨｉよりも大きい場合には、ｖａｌは上述のスパースリストのソートを考慮に入れるため、ステップ１９．９でデクリメントされる。いずれの場合においても、プロセスはステップ１９．１０に続き、そこで例えばループカウンタｉをインクリメントすることによってＬ’の中の次のレベルを選択する。よって、変数ＴＨｉは新しい値を取る。処理は次にステップ１９．７に戻る。
【０２４２】
図２０は、対応する復号プロセスを示す。ステップ２０．１から２０．３、２０．１０から２０．１６、および２０．２０から２０．２２はそれぞれ、図１８のこれらのバージョンと同一である。ステップ２０．４はステップ１９．４と同一である。ステップ２０．５はステップ１９．５と同一であってもよい。その結果、ｐ個の要素を含むリストＬ’が決定され、ステップ２０．６でのスパーリストに新しいサイズＭ’＝Ｍ−ｐがもたらされる。
【０２４３】
次に、ステップ１９．７から１９．１０に記載されたプロセスが、逆順で実行される。このためステップ２０．７では、例えばループカウンタをｐ−１に設定することによって、リストＬ’の中で最も高いレベルを選択する。ｐは０に等しくてもよく、またはＬ’の中で最も低いレベルはすでに処理されているので、ステップ２０．８ではループカウンタを確認する。本実施形態において、Ｌ’は昇順で記憶されている。Ｌ’の中のすべての要素がステップ２０．９、２０．７、および２０．１８の処理が実行されていれば（つまり、すべての可能な値が検討されていれば）、レベル値ｖａｌは完全に復号されており、それはステップ２０．１９で影響を受ける。あるいはｖａｌは、ステップ２０．９で、リストＬ’の現在のレベルＴＨｉと比較される。それの方が低ければ処理は必要とされないが、そうでなければステップ２０．１７においてインクリメントされる。最後にステップ２０．１８を通じて、ステップ２０．８のテストに戻る前にｉをデクリメントすることによって、Ｌ’の次のレベルが選択される。
【０２４４】
ステップ１９．７から１９．１０のプロセスに応じて、上述の復号プロセスは簡素化されることが可能である。例えば、リストＬ’は最大で１つの要素を含むことができ、これにより、ＴＨが例えば１８．６または１８．７によって示されるように適切に設定されていれば、ステップ１８．１７から１８．１９のように再利用が可能となる。リストＬ’の中の１つの要素のみを取得するための解決策の１つは、リストＬ’を得るために、リストＬから最小レベル値を選択することである。
【０２４５】
別の実施形態によれば、ステップ２０．５において、デクリメント順でＬをソートし、ステップ２０．７、２０．８、および２０．１８を相応に修正することが可能である。
【０２４６】
ａおよびｂに分割された図２１は、遷移モードと名付けられた予測のモードを示す。好適な実施形態によれば、このモードは図１９および図２０の実施形態の予測モードの１つである。
【０２４７】
図２１ａはパターン、すなわち複数の近傍パレットレベルおよび位置およびレベルのつながりを示す。パターン符号化の主旨は、符号化すべきブロックの中の冗長性を利用することである。通常、ブロック内で同じ遷移が行われる。つまり、画素のサブセットがブロックの異なる場所で見出される。したがって、遷移モードはいくつかのパターンを、一般的にはパターンテーブルに記憶させる。パターンは、対象画素を包囲する任意の配置における画素のサブセットを定義する。対象画素のレベルの値は、異なるパターンの発生でも同じとする。この場合、レベル値の符号化は、パターン予測モードを用いることによって省略できる。対象画素の実際の値は、記憶されたパターンの中で対象画素の実際の周囲に対応するパターンを探すことによって、取得される。パターンテーブル内の特定されたパターンと関連付けられたレベル値は、対象画素のレベルの実際の値となる。すなわち、遷移モードと呼ばれる新しい予測モードは、パターンテーブルの所定値を暗黙に参照することによる、任意の画素のレベル値の符号化を可能にする。
【０２４８】
例えば、パターン２１．１は、ｘの値をその左近傍レベルと関連付け、その一方で２１．２は上近傍を使用し、２１．３は両方を使用する。２１．４から２１．６によって示されるように、このいわゆるパターンの性質は多様であり、ここでの重要な特性は、特定のレベル値をレベル値の近傍と関連付けできることであるがわかる。図２１ｂは、パターン２１．１の左のレベル値を２１．１の右のレベルの値ｘと関連付けることにより、このプロセスを示す。このテーブルがどのようにしてあらゆる形式のパターンにも適合可能であるかは、当業者にとって自明である。このテーブルは当然ながら、符号化または復号化のいずれの時点でも初期化または更新可能である。
【０２４９】
以下のパラグラフに、その他の好適な実施形態を記載する。
【０２５０】
図２２は、本発明の１つまたは複数の実施形態の実施のための計算装置２４００の概略ブロック図である。計算装置２４００は、マイクロコンピュータ、ワークステーション、または軽量ポータブルデバイスなどの装置である。計算装置２４００は、
−マイクロプロセッサなどの中央処理装置（ＣＰＵ）２４０１と、
−本発明の実施形態の方法の実行可能コード、ならびに本発明の実施形態に係る画像の少なくとも一部を符号化または復号する方法を実施するために必要な変数およびパラメータを記録するレジスタを記憶するためのものであって、そのメモリ容量は、例えば拡張ポートに接続された任意のＲＡＭによって拡張可能である、ランダムアクセスメモリ（ＲＡＭ）２４０２と、
−本発明の実施形態を実施するためのコンピュータプログラムを記憶するための読み取り専用メモリ（ＲＯＭ）２４０３と、
−通常は、処理すべきデジタルデータが送受信される通信ネットワークに接続されている、ネットワークインターフェース２４０４と、
に接続された、通信バスを備える。
【０２５１】
ネットワークインターフェース２４０４は、単一のネットワークインターフェースであってもよく、あるいは一連の異なるネットワークインターフェースで構成されていてもよい（例えば、有線および無線インターフェース、または異なる種類の有線または無線インターフェース）。データパケットは、ＣＰＵ２４０１内で起動しているソフトウェアアプリケーションの制御の下で、送信の際にネットワークインターフェースに書き込まれ、受信の際にネットワークインターフェースから読み取られる。
−ユーザインターフェース２４０５は、ユーザからの入力を受け付けるため、またはユーザに情報を表示するために使用されてもよい；
−ハードディスク（ＨＤ）２４０６は、大容量記憶装置として提供されてもよい；
−Ｉ／Ｏモジュール２４０７は、ビデオソースまたはディスプレイなど、外部装置とデータを送受信するために使用されてもよい。
【０２５２】
実行可能コードは、読み取り専用メモリ２４０３、ハードディスク２４０６、または例えばディスクなどのリムーバブルデジタル媒体のいずれかに記憶されてもよい。変形例によれば、プログラムの実行可能コードは、実行される前に、ハードディスク２４０６など、通信装置２４００の記憶手段の１つに記憶されるために、ネットワークインターフェース２４０４を介して、通信ネットワークによって受信されることが可能である。
【０２５３】
中央処理装置２４０１は、本発明の実施形態にしたがって、１つまたは複数のプログラムの命令またはソフトウェアコードの一部の実行を制御および指示するよう構成されており、この命令は前記記憶手段の１つに記憶される。電源投入後、ＣＰＵ２４０１は、例えばプログラムＲＯＭ２４０３またはハードディスク（ＨＤ）２４０６から命令が読み込まれた後に、ソフトウェアアプリケーションに関するメインＲＡＭメモリ２４０２からのこれらの命令を実行することができる。このようなソフトウェアアプリケーションは、ＣＰＵ２４０１によって実行されると、図６から図７ｂおよび図１０から図２０に示されるフローチャートのステップを実行させる。
【０２５４】
本実施形態において、装置は、本発明を実施するためにソフトウェアを使用する、プログラミング可能な装置である。しかしながら代わりに、本発明は、（例えば、特定用途向け集積回路すなわちＡＳＩＣの形式で）ハードウェアで実施してもよい。
【０２５５】
例えば、「エスケープモード」と呼ばれる周知のモード（図７ｂおよび図８ｂ参照）は、画素がレベル値では表せないこと、およびその画素値が明示的に送信されることを、例えば特定のレベル値を用いて信号送信することに本質が存する。好適な実施形態は、パレットが、格納可能な値の最大数に到達した場合にのみ、エスケープフラグを挿入することである。この場合、パレットはＭＡＸ−１個のインデックスしか格納できず（ＭＡＸは、格納可能な値の最大数）、パレット内の位置ＭＡＸにおける値はエスケープレベルである。この場合、値のリストから減じられた所定のレベル値は、パレットの最後のインデックスである。
【０２５６】
本最終実施形態は、モードがコピーレフトである場合に有効である。例えば、図１７（または図１９）を参照すると、Ｍを１だけ減少させるために、ステップ１７．２と１７．３との間に新しいステップが追加される。特定のレベル予測モード（コピーアップまたはコピーレフト以外）は、特定のスパースリスト、および本明細書に提示される概念をこの特定モードに拡大するやり方を、結果的にもたらすかも知れないしもたらさないかも知れないことは、当業者によって理解されるだろう。
【０２５７】
従来技術において述べられたように、要素を用いないパレットの使用は禁止されており、Ｐａｌｅｔｔｅ＿ｓｉｚｅは復号化側に１を加えたものと等しく設定される（Ｐａｌｅｔｔｅ＿ｓｉｚｅ−１が符号化される）。一実施形態において、１と等しい値Ｐａｌｅｔｔｅ＿ｓｉｚｅもまた禁止されている。実際これは、一定のブロックを復号するためにパレット内の１つの色のみを使用することに存し、ビデオコーデックにおいて、１つのブロックが、すべての画素について同じ値またはほぼ同じ値を含む場合には、その他の効果的なモードが存在する。そしてその場合、パレットモードはあまり最適ではない。例えば、イントラＤＣモードの方が効果的である。したがって、本実施形態は、図１０のモジュール１００３の動作を（Ｐａｌｅｔｔｅ＿ｓｉｚｅ＝Ｓｉｚｅ＋１の代わりに）Ｐａｌｅｔｔｅ＿ｓｉｚｅ＝Ｓｉｚｅ＋２によって変更することに本質が存する。これらの実施形態は組み合わせてもよい。
【０２５８】
以上、本発明は特定の実施形態を参照して記載したが、本発明はその特定の実施形態に限定されるものではなく、本発明の範囲に含まれる修正は、当業者にとって自明であろう。
【０２５９】
上記に説明の実施形態を参照すると、多くのさらなる修正および変形が当業者に提案されることになるが、これらは例示のみによって提供されるものであり、添付請求項のみによって定められる本発明の範囲を限定するものではない。具体的には、適切であれば、異なる実施形態の異なる特徴を入れ替えてもよい。
【０２６０】
請求項において、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」は他の要素またはステップを排除するものではなく、不定冠詞「ａ」または「ａｎ」は複数を排除するものではない。異なる特徴は相互に異なる従属請求項に列挙されるという単なる事実は、これらの特徴の組み合わせが有利に使用できないことを示すものではない。
【図１】
0006537511.tif 000003
【図２】
0006537511.tif 000004
【図３】
0006537511.tif 000005
【図４】
0006537511.tif 000006
【図５】
0006537511.tif 000007
【図６】
0006537511.tif 000008
【図７ａ】
0006537511.tif 000009
【図７ｂ】
0006537511.tif 000010
【図８ａ】
0006537511.tif 000011
【図８ｂ】
0006537511.tif 000012
【図９】
0006537511.tif 000013
【図１０】
0006537511.tif 000014
【図１１】
0006537511.tif 000015
【図１２】
0006537511.tif 000016
【図１３】
0006537511.tif 000017
【図１４】
0006537511.tif 000018
【図１５】
0006537511.tif 000019
【図１６】
0006537511.tif 000020
【図１７】
0006537511.tif 000021
【図１８】
0006537511.tif 000022
【図１９】
0006537511.tif 000023
【図２０】
0006537511.tif 000024
【図２１ａ】
0006537511.tif 000025
【図２１ｂ】
0006537511.tif 000026
【図２２】
0006537511.tif 000027