(57)【特許請求の範囲】
【請求項１】
スクリーンコンテンツ符号化のための方法であって、
現在の符号化ユニット（ＣＵ）に基づいてカラーインデックスマップを導出する段階であり、前記現在のＣＵに基づいて複数の色値を含むパレットテーブルが生成され、前記パレットテーブルの各色に割り当てられるカラーインデックスを使用して前記現在のＣＵから前記カラーインデックスマップが生成され、前記パレットテーブル外の各色に割り当てられる予測残差値を使用して前記現在のＣＵから予測残差マップが生成される、段階と、
前記カラーインデックスマップをエンコードする段階であって、前記カラーインデックスマップの少なくとも一部は１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ符号化技術又は前記現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ符号化技術を使用してエンコードされ、使用された符号化技術の有意距離がインジケータにより示される、段階と、
前記エンコードされたカラーインデックスマップと前記インジケータとを組み合わせて、前記パレットテーブル及び前記予測残差マップとともに受信機に送信する段階と、
を備える方法。
【請求項２】
前記ＣｏｐｙＡｂｏｖｅ符号化技術を使用してエンコードされた前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第１ストリングであって、前記現在のＣＵにおいて、複数のインデックスからなる前記第１ストリングの真上の、複数のインデックスからなるマッチする第２ストリングを有する、複数のインデックスからなる前記第１ストリングであり、
前記ＣｏｐｙＡｂｏｖｅ符号化技術の出力は、複数のインデックスからなる前記第１ストリングの長さを含む、請求項１に記載の方法。
【請求項３】
前記ＩｎｄｅｘＭｏｄｅ符号化技術を使用してエンコードされた前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第３ストリングであって、前記現在のＣＵ内において、全てが、複数のインデックスからなる前記第３ストリングの中の第１のインデックスのすぐ左の参照インデックス値と同じ値を有する複数のインデックスからなる前記第３ストリングであり、
前記ＩｎｄｅｘＭｏｄｅ符号化技術の出力は、複数のインデックスからなる前記第３ストリングの長さを含む、請求項１又は２に記載の方法。
【請求項４】
前記インジケータは第１及び第２のバイナリフラグを含み、
前記第１のバイナリフラグは、使用される符号化技術が有意距離を使用しているか否かを示し、
前記第２のバイナリフラグは、前記有意距離が１又は前記現在のＣＵのブロック幅に等しいことを示し、
前記現在のＣＵのエンコードされたラインは、前記第１及び第２のバイナリフラグのみを使用して信号で伝えられる、
請求項１から３のいずれか一項に記載の方法。
【請求項５】
スクリーンコンテンツ符号化用装置であって、
少なくとも１つのメモリと、
前記少なくとも１つのメモリに接続された少なくとも１つのプロセッサであって、
現在の符号化ユニット（ＣＵ）に基づいて複数の色値を含むパレットテーブルを生成し、前記パレットテーブルの各色に割り当てられるカラーインデックスを使用して前記現在のＣＵからカラーインデックスマップを生成し、前記パレットテーブル外の各色に割り当てられる予測残差値を使用して前記現在のＣＵから予測残差マップを生成し、
前記カラーインデックスマップをエンコードし、前記カラーインデックスマップの少なくとも一部は１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ符号化技術又は前記現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ符号化技術を使用してエンコードされ、使用された符号化技術の有意距離がインジケータにより示され、
前記エンコードされたカラーインデックスマップと前記インジケータとを組み合わせて前記パレットテーブル及び前記予測残差マップとともに受信機に送信する、少なくとも１つのプロセッサと、
を備える装置。
【請求項６】
前記ＣｏｐｙＡｂｏｖｅ符号化技術を使用してエンコードされた前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第１ストリングであって、前記現在のＣＵにおいて、複数のインデックスからなる前記第１ストリングの真上の、複数のインデックスからなるマッチする第２ストリングを有する、複数のインデックスからなる前記第１ストリングであり、
前記ＣｏｐｙＡｂｏｖｅ符号化技術の出力は、複数のインデックスからなる前記第１ストリングの長さを含む、請求項５に記載の装置。
【請求項７】
前記ＩｎｄｅｘＭｏｄｅ符号化技術を使用してエンコードされた前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第３ストリングであって、前記現在のＣＵ内において、全てが、複数のインデックスからなる前記第３ストリングの中の第１のインデックスのすぐ左の参照インデックス値と同じ値を有する複数のインデックスからなる前記第３ストリングであり、
前記ＩｎｄｅｘＭｏｄｅ符号化技術の出力は、複数のインデックスからなる前記第３ストリングの長さを含む、請求項５又は６に記載の装置。
【請求項８】
前記インジケータは第１及び第２のバイナリフラグを含み、
前記第１のバイナリフラグは、使用される符号化技術が有意距離を使用しているか否かを示し、
前記第２のバイナリフラグは、前記有意距離が１又は前記現在のＣＵのブロック幅に等しいことを示し、
前記現在のＣＵのエンコードされたラインは、前記第１及び第２のバイナリフラグのみを使用して信号で伝えられる、
請求項５から７のいずれか一項に記載の装置。
【請求項９】
スクリーンコンテンツ復号化のための方法であって、
現在の符号化ユニット（ＣＵ）に基づいて生成される複数の色値を含むパレットテーブルの各色に割り当てられるカラーインデックスを使用して前記現在のＣＵから生成され、エンコードされたカラーインデックスマップ、前記パレットテーブル、及び前記パレットテーブル外の各色に割り当てられる予測残差値を使用して前記現在のＣＵから生成された予測残差マップを含むビデオビットストリームを受信する段階と、
前記カラーインデックスマップをエンコードするのに使用された符号化技術の有意距離を示すインジケータを受信する段階と、
前記カラーインデックスマップの少なくとも一部を、１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ復号化技術及び前記現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ復号化技術のうち前記インジケータが示す有意距離に対応する復号化技術を使用して、復号化する段階と、
前記パレットテーブル及び前記予測残差マップと組み合わせて前記カラーインデックスマップに基づいて前記現在のＣＵに関連付けられた複数のピクセルを再構成する段階と、
を備える方法。
【請求項１０】
前記ＣｏｐｙＡｂｏｖｅ復号化技術を使用して復号化された前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第１ストリングであって、前記現在のＣＵにおいて、複数のインデックスからなる前記第１ストリングの真上の、複数のインデックスからなるマッチする第２ストリングを有する、複数のインデックスからなる前記第１ストリングであり、
前記ＣｏｐｙＡｂｏｖｅ復号化技術の入力は、複数のインデックスからなる前記第１ストリングの長さを含む、請求項９に記載の方法。
【請求項１１】
前記ＩｎｄｅｘＭｏｄｅ復号化技術を使用して復号化された前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第３ストリングであって、前記現在のＣＵ内において、全てが、複数のインデックスからなる前記第３ストリングの中の第１のインデックスのすぐ左の参照インデックス値と同じ値を有する複数のインデックスからなる前記第３ストリングであり、
前記ＩｎｄｅｘＭｏｄｅ復号化技術の入力は、複数のインデックスからなる前記第３ストリングの長さを含む、請求項９又は１０に記載の方法。
【請求項１２】
前記インジケータは第１及び第２のバイナリフラグを含み、
前記第１のバイナリフラグは、前記符号化技術が有意距離を使用したか否かを示し、
前記第２のバイナリフラグは、前記有意距離が１又は前記現在のＣＵのブロック幅に等しいことを示し、
前記現在のＣＵのエンコードされたラインは、前記第１及び第２のバイナリフラグのみを使用して信号で伝えられる、
請求項９から１１のいずれか一項に記載の方法。
【請求項１３】
スクリーンコンテンツ復号化用装置であって、
少なくとも１つのメモリと、
前記少なくとも１つのメモリに接続された少なくとも１つのプロセッサであって、
現在の符号化ユニット（ＣＵ）に基づいて生成される複数の色値を含むパレットテーブルの各色に割り当てられるカラーインデックスを使用して前記現在のＣＵから生成され、エンコードされたカラーインデックスマップ、前記パレットテーブル、及び前記パレットテーブル外の各色に割り当てられる予測残差値を使用して前記現在のＣＵから生成された予測残差マップを含むビデオビットストリームを受信し、
前記カラーインデックスマップをエンコードするのに使用された符号化技術の有意距離を示すインジケータを受信し、
前記カラーインデックスマップの少なくとも一部を、１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ復号化技術及び前記現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ復号化技術のうち前記インジケータが示す有意距離に対応する復号化技術を使用して、復号化し、
前記パレットテーブル及び前記予測残差マップと組み合わせて前記カラーインデックスマップに基づいて前記現在のＣＵに関連付けられた複数のピクセルを再構成する、少なくとも１つのプロセッサとを備える装置。
【請求項１４】
前記ＣｏｐｙＡｂｏｖｅ復号化技術を使用して復号化された前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第１ストリングであって、前記現在のＣＵにおいて、複数のインデックスからなる前記第１ストリングの真上の、複数のインデックスからなるマッチする第２ストリングを有する、複数のインデックスからなる前記第１ストリングであり、
前記ＣｏｐｙＡｂｏｖｅ復号化技術の入力は、複数のインデックスからなる前記第１ストリングの長さを含む、請求項１３に記載の装置。
【請求項１５】
前記ＩｎｄｅｘＭｏｄｅ復号化技術を使用して復号化された前記カラーインデックスマップの前記少なくとも一部は、複数のインデックスからなる第３ストリングであって、前記現在のＣＵ内において、全てが、複数のインデックスからなる前記第３ストリングの中の第１のインデックスのすぐ左の参照インデックス値と同じ値を有する複数のインデックスからなる前記第３ストリングであり、
前記ＩｎｄｅｘＭｏｄｅ復号化技術の入力は、複数のインデックスからなる前記第３ストリングの長さを含む、請求項１３又は１４に記載の装置。
【請求項１６】
前記インジケータは第１及び第２のバイナリフラグを含み、
前記第１のバイナリフラグは、前記符号化技術が有意距離を使用したか否かを示し、
前記第２のバイナリフラグは、前記有意距離が１又は前記現在のＣＵのブロック幅に等しいことを示し、
前記現在のＣＵのエンコードされたラインは、前記第１及び第２のバイナリフラグのみを使用して信号で伝えられる、
請求項１３から１５のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概してスクリーンコンテンツ符号化に関し、より具体的には、改良されたカラー（パレット）テーブル及びインデックスマップ符号化を用いた先進的なスクリーンコンテンツ符号化に関する。
【背景技術】
【０００２】
スクリーンコンテンツ符号化は、その信号特性が従来のビデオ信号と比較して異なるために、ビデオ圧縮に新たな課題をもたらす。先進的なスクリーンコンテンツ符号化のための複数の既存の技術、例えば、疑似ストリングマッチ（ｐｓｅｕｄｏ  ｓｔｒｉｎｇ  ｍａｔｃｈ）、カラーパレット符号化、及びイントラ動き補償又はイントラブロックコピーが存在する。これらの技術の中でも、疑似ストリングマッチはロスレス符号化について最高利得を示すが、ロッシー符号化モードに対してかなりの複雑性オーバヘッドと困難さとを伴う。カラーパレット符号化は、カメラによって取り込まれたものではないコンテンツ（例えば、コンピュータで生成されたコンテンツ）が通常、多数のビデオシーケンスで見られる連続的又はほぼ連続的な複数の色調ではなく、限られた数の別個の色を含むという前提の下で、スクリーンコンテンツ用に開発されている。疑似ストリングマッチ及びカラーパレット符号化の方法が大きな可能性を示したにもかかわらず、スクリーンコンテンツ符号化用の進行中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）範囲拡張の作業草案（ＷＤ）バージョン４及び参照ソフトウェアにはイントラ動き補償又はイントラブロックコピーが採用された。しかしながら、イントラブロックコピーの符号化性能は、その固定ブロック分解のために制限される。（イントラピクチャにおける動き予測と同様な）ブロックマッチングの実行はまた、計算とメモリアクセスとの両方に対してエンコーダの複雑さを著しく増加させる。
【発明の概要】
【０００３】
一実施形態によると、スクリーンコンテンツ符号化のための方法が提供される。当該方法は、現在の符号化ユニット（ＣＵ）に基づいてカラーインデックスマップを導出する段階を備える。当該方法はまた、カラーインデックスマップをエンコードする段階も備える。当該カラーインデックスマップの少なくとも一部は、第１の符号化技術を使用してエンコードされ、第１のインジケータは、第１の符号化技術の有意距離を示す。当該方法は更に、受信機に送信するために、エンコードされたカラーインデックスマップと第１のインジケータとを組み合わせる段階を備える。
【０００４】
別の実施形態によると、スクリーンコンテンツ復号化のための方法が提供される。当該方法は、カラーインデックスマップを備えるビデオビットストリームを受信する段階を備える。当該方法はまた、第１のインジケータを受信する段階を備える。当該方法は更に、第１の復号化技術を使用してカラーインデックスマップの少なくとも一部を復号化する段階を備える。当該第１のインジケータは、第１の復号化技術の有意距離を示す。加えて、当該方法は、カラーインデックスマップに基づいて、現在の符号化ユニット（ＣＵ）に関連付けられた複数のピクセルを再構成する段階を備える。
【０００５】
他の複数の実施形態は、これらの方法を実行するよう構成された複数の装置を含む。
【図面の簡単な説明】
【０００６】
本開示、及びその複数の利点のより完璧な理解のために、ここで添付の図面と併せて以下の複数の説明が参照される。同様の番号は同様の対象物を示す。
【０００７】
【図１】本開示に係るスクリーンコンテンツ符号化処理を実行する例示的な送信機の機能ブロック図を示す。
【０００８】
【図２】本開示に係るスクリーンコンテンツ復号化処理を実行する例示的な受信機の機能ブロック図を示す。
【０００９】
【図３】本開示に係る、パレットテーブル及びインデックスマップを使用する様々なモジュール及び処理フローの例を示す。
【００１０】
【図４】別々に、及びパックド式で示された複数の色成分を有する例示的な符号化ユニット（ＣＵ）を示す。
【００１１】
【図５Ａ】スクリーンコンテンツ符号化処理での使用のための参照パレットテーブル及び現在のパレットテーブルを示す。
【００１２】
【図５Ｂ】隣接する複数の再構成ブロックを使用するパレットテーブル予測の例を示す。
【００１３】
【図６】水平又は垂直の走査が使用され得る６４×６４のＣＵの例示的なカラーインデックスマップを示す。
【００１４】
【図７】水平走査を使用する一次元（１Ｄ）サーチ後の１Ｄカラーインデックスベクトルの一部を示す。
【００１５】
【図８】Ｕ＿ＰＩＸＥＬモジュールと呼ばれる基本ピクセル処理ユニットの例を示す。
【００１６】
【図９】Ｕ＿ＲＯＷモジュールの例を示す。
【００１７】
【図１０】Ｕ＿ＣＭＰモジュールの例を示す。
【００１８】
【図１１】Ｕ＿ＣＯＬモジュールの例を示す。
【００１９】
【図１２】例示的なＵ＿２Ｄ＿ＢＬＯＣＫモジュールを示す。
【００２０】
【図１３】インデックスマップ処理の水平走査及び垂直走査の例を示す。
【００２１】
【図１４Ａ】４：２：０クロマサンプリングフォーマットの例を示す。
【図１４Ｂ】４：４：４クロマサンプリングフォーマットの例を示す。
【００２２】
【図１５】４：４：４から４：２：０への、又はその逆の補間処理の例を示す。
【００２３】
【図１６】上側インデックスラインバッファ又は左側インデックスラインバッファを使用するカラーインデックスマップ処理の例を示す。
【００２４】
【図１７】本開示に係るスクリーンコンテンツ符号化のための方法を示す。
【００２５】
【図１８】本開示に係るスクリーンコンテンツ復号化のための方法を示す。
【発明を実施するための形態】
【００２６】
以下で説明される図１から図１８と、本特許文献の本発明の原理を説明すべく使用される様々な実施形態とは、説明のためだけのものであり、決して本発明の範囲を限定するものと解釈されるべきではない。当業者ならば、本発明の原理が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実装されてよいことを理解するであろう。
【００２７】
以下の文献及び規格の説明は、これにより、本明細書において十分に述べられたかのように本開示の中に組み込まれる。
【００２８】
Ｔ．Ｌｉｎ、Ｓ．Ｗａｎｇ、Ｐ．Ｚｈａｎｇ、Ｋ．Ｚｈｏｕ、"ＡＨＧ７：Ｆｕｌｌ−ｃｈｒｏｍａ（ＹＵＶ４４４）  ｄｉｃｔｉｏｎａｒｙ＋ｈｙｂｒｉｄ  ｄｕａｌ−ｃｏｄｅｒ  ｅｘｔｅｎｓｉｏｎ  ｏｆ  ＨＥＶＣ"、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｋ０１３３、中国、上海、２０１２年１０月（以下、「参照文献１」とする）。
【００２９】
Ｗ．Ｚｈｕ、Ｊ．Ｘｕ、Ｗ．Ｄｉｎｇ、"ＲＣＥ３  Ｔｅｓｔ  ２：Ｍｕｌｔｉ−ｓｔａｇｅ  Ｂａｓｅ  Ｃｏｌｏｒ  ａｎｄ  Ｉｎｄｅｘ  Ｍａｐ"、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２８７、オーストリア、ウィーン、２０１３年７月（以下、「参照文献２」とする）。
【００３０】
Ｌ．Ｇｕｏ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、Ｊ．Ｓｏｌｅ、"ＲＣＥ３：Ｒｅｓｕｌｔｓ  ｏｆ  Ｔｅｓｔ  ３．１  ｏｎ  Ｐａｌｅｔｔｅ  Ｍｏｄｅ  ｆｏｒ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ"，ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２４７、オーストリア、ウィーン、２０１３年７月（以下、「参照文献３」とする）。
【００３１】
Ｌ．Ｇｕｏ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、Ｊ．Ｓｏｌｅ、Ｒ．Ｊｏｓｈｉ、"Ｎｏｎ−ＲＣＥ３：Ｍｏｄｉｆｉｅｄ  Ｐａｌｅｔｔｅ  Ｍｏｄｅ  ｆｏｒ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ"、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２４９、オーストリア、ウィーン、２０１３年７月（以下、「参照文献４」とする）。
【００３２】
Ｄ．−Ｋ．Ｋｗｏｎ、Ｍ．Ｂｕｄａｇａｖｉ、"ＲＣＥ３：Ｒｅｓｕｌｔｓ  ｏｆ  ｔｅｓｔ  ３．３  ｏｎ  Ｉｎｔｒａ  ｍｏｔｉｏｎ  ｃｏｍｐｅｎｓａｔｉｏｎ、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２０５、オーストリア、ウィーン、２０１３年７月（以下、「参照文献５」とする）。
【００３３】
Ｃ．Ｐａｎｇ、Ｊ．Ｓｏｌｅ、Ｌ．Ｇｕｏ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、Ｒ．Ｊｏｓｈｉ、"Ｎｏｎ−ＲＣＥ３：Ｉｎｔｒａ  Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ  ｗｉｔｈ  ２−Ｄ  ＭＶｓ"、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２５６、オーストリア、ウィーン、２０１３年７月（以下、「参照文献６」とする）。
【００３４】
Ｃ．Ｐａｎｇ、Ｊ．Ｓｏｌｅ、Ｌ．Ｇｕｏ、Ｍ．Ｋａｒｃｚｅｗｉｃｚ、Ｒ．Ｊｏｓｈｉ、"Ｎｏｎ−ＲＣＥ３：Ｐｉｐｅｌｉｎｅ  Ｆｒｉｅｎｄｌｙ  Ｉｎｔｒａ  Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ"、ＪＣＴ−ＶＣ  Ｄｏｃｕｍｅｎｔ、ＪＣＴＶＣ−Ｎ０２５４、オーストリア、ウィーン、２０１３年７月（以下、「参照文献７」とする）。
【００３５】
Ｄ．Ｆｌｙｎｎ、Ｊ．Ｓｏｅｌ  ａｎｄ  Ｔ．
Ｓｕｚｕｋｉ、"Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎ  Ｄｒａｆｔ  ４"、ＪＣＴＶＣ−Ｌ１００５、２０１３年８月（以下、「参照文献８」とする）。
【００３６】
Ｈ．Ｙｕ、Ｋ．ＭｃＣａｎｎ、Ｒ．Ｃｏｈｅｎ、ａｎｄ  Ｐ．Ａｍｏｎ、"Ｄｒａｆｔ  ｃａｌｌ  ｆｏｒ  ｐｒｏｐｏｓａｌｓ  ｆｏｒ  ｃｏｄｉｎｇ  ｏｆ  ｓｃｒｅｅｎ  ｃｏｎｔｅｎｔ  ａｎｄ  ｍｅｄｉｃａｌ  ｖｉｓｕａｌ  ｃｏｎｔｅｎｔ"、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ１３８２９、２０１３年７月（以下、「参照文献９」とする）。
【００３７】
本開示の複数の実施形態は、改良されたパレットテーブル及びインデックスマップ符号化を用いた先進的なスクリーンコンテンツ符号化処理を提供する。開示される実施形態は、Ｈｉｇｈ−Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの現在のバージョン（ＨＥＶＣバージョン２）よりも性能が大幅に優れている。開示される実施形態は、スクリーンコンテンツの符号化専用の複数のアルゴリズムを含む。これらのアルゴリズムは、パレットテーブル（又は、等価的には、カラーテーブル）を使用したピクセル表現、パレットテーブル圧縮、カラーインデックスマップ圧縮、ストリングマッチ、及び残差圧縮を含む。本明細書において開示される実施形態は、将来のＨＥＶＣ拡張として、開発され、ＨＥＶＣ  Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎ（ＲＥｘｔ）と調和され、統合されて、効率的なスクリーンコンテンツ符号化をサポートする。しかしながら、これらの実施形態は、追加的又は代替的に、既存のビデオ規格又は任意の他の適切なビデオ規格で実施され得る。説明を簡単にするために、本明細書では、例としてＨＥＶＣ  ＲＥｘｔを使用して、様々な実施形態を説明する。同様に、圧縮効率を明らかに示すべく、様々な実施形態の実施にはＨＥＶＣ  ＲＥｘｔソフトウェアが使用される。
【００３８】
図１は、本開示に係るスクリーンコンテンツ符号化処理を実行する例示的な送信機の機能ブロック図を示している。図２は、本開示に係るスクリーンコンテンツ復号化処理を実行する例示的な受信機の機能ブロック図を示している。送信機１００及び受信機２００の実施形態は単なる例示である。本開示の範囲から逸脱することなく、送信機１００及び受信機２００の他の実施形態が使用され得る。
【００３９】
送信機１００は、ビットストリーム内の各符号化ユニット（ＣＵ）又は各符号化ツリーユニット（ＣＴＵ）に対して実行され得る高効率カラーパレット圧縮（ＣＰＣ）処理を実行するよう構成されている。図１に示されるように、送信機１００はビットストリーム内のＣＵ１０１から開始する。ＣＵは、ＨＥＶＣ及びＨＥＶＣ  ＲＥｘｔの基本作業ユニットであり、３つの色成分（例えば、当該技術分野では既知のＲＧＢ、ＹＵＶ、ＸＹＺ、又は同様のもの）を含むピクセルの四角のブロックである。例示的なＣＵ１０１が図３に示されている。ＣＵ１０１は、各ピクセルについて明示的な色値（例えば、４７、４８、４９等）を含む８ピクセル×８ピクセルのＣＵである。他の実施形態において、ＣＵ１０１のサイズは、８×８ピクセル以外のもの（例えば、１６×１６ピクセル、３２×３２ピクセル等）であってもよい。いくつかの実施形態において、送信機１００は、ＣＵ１０１の代わりにＣＴＵ１０１から開始してよい。説明を簡単にするために、送信機１００はＣＵ１０１で説明される。当業者ならば、送信機１００が、ＣＴＵ１０１を用いても実質的に同一の処理を実行し得ることを理解するであろう。
【００４０】
パレットテーブル作成ブロック１０３は、（カラーテーブルと称されることもある）パレットテーブルを導出又は生成すべくＣＵ１０１を使用する。例示的なパレットテーブル３０３が図３に示されている。パレットテーブル３０３を導出すべく、パレットテーブル作成ブロック１０３は、１又は複数の順序付けのルールに従って色値を順序付ける。パレットテーブル３０３は、各色値の発生頻度、ＣＵ１０１の各ピクセルの実際の色強度、又は、任意の他の適切な順序付けの（１又は複数の）メトリックに従って順序付けられて、以下のエンコード・オペレーションの効率を上げ得る。
【００４１】
導出されたパレットテーブル３０３に基づいて、色分類ブロック１０５がＣＵ１０１を使用して、ＣＵ１０１の複数の色又は複数のピクセル値をカラーインデックスマップ３１１と１又は複数の予測残差マップ３１３とに割り当てる。テーブルエンコードブロック１０７が、パレットテーブル３０３を受信し、パレットテーブル３０３の複数のエントリをエンコードする。インデックスマップエンコードブロック１０９が、色分類ブロック１０５によって作成されたカラーインデックスマップ３１１をエンコードする。これらのオペレーションは以下でより詳細に説明される。
【００４２】
残差エンコードブロック１１１は、色分類ブロック１０５によって作成された各予測残差マップ３１３をエンコードする。いくつかの実施形態において、残差エンコードブロック１１１は、図３の３２１に示されるように、適応的な固定長又は可変長の残差のバイナリゼーションを実行する。次に、多重化（ＭＵＸ）ブロック１１３が、複数のストリング／ブロックマッチ３１９及びエンコードされた複数の予測残差３２１を使用して圧縮ビットストリームを生成する。いくつかの実施形態において、図３に示されるように、複数のストリング／ブロックマッチ３１９と、エンコードされた複数の予測残差３２１とを組み合わせるべく、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）方法３２３が使用され得る。
【００４３】
図２に戻って、受信機２００は上述されたような、送信機１００によって実行されたスクリーンコンテンツ符号化処理に類似したスクリーンコンテンツ復号化処理を実行するよう構成されている。受信機２００は、圧縮ビデオビットストリームを受信し、次に、デマルチプレクサ２０１を使用して、ビットストリームをエンコードされたパレットテーブル、カラーインデックスマップ、及びエンコードされた複数の予測残差にパースする。テーブル復号化ブロック２０３及びパレットテーブル作成ブロック２０９は、テーブルエンコードブロック１０７及びパレットテーブル作成ブロック１０３とは逆の複数の処理を実行して、各ＣＵについて、完全なパレットテーブルを再構成する。同様に、インデックスマップ復号化ブロック２０５及び残差復号化ブロック２０７は、インデックスマップエンコードブロック１０９及び残差エンコードブロック１１１とは逆の複数の処理を実行して、カラーインデックスマップを再構成する。色分類解除ブロック２１１は、カラーインデックスマップとパレットテーブルとを組み合わせることで各位置におけるピクセル値を導出し、これにより、ＣＴＵ又はＣＵ２１３を再構成する。
【００４４】
図１および２は、スクリーンコンテンツの符号化及び復号化を実行するための送信機１００及び受信機２００の例を示しているが、図１および２には様々な変更が施されてよい。例えば、図１および２の様々なコンポーネントは組み合わされ得、更には細分化され得、又は省略され得、特定の必要性に応じて更なる複数のコンポーネントが追加され得る。特定の例として、様々なコンポーネントは、１つの筐体又は１つの回路基板に共に配置され得る、又は、単一のプロセッサ又は単一の処理ユニットによって実行され得る。
【００４５】
導出されたパレットテーブル３０３に基づいて、元のＣＵ１０１の各ピクセルは、パレットテーブル３０３内の自身のカラーインデックスに変換され得る。本開示の複数の実施形態は、各ＣＵ１０１についてのパレットテーブル３０３及びカラーインデックスマップ３１１（以下で説明される）をストリームへと効率的に圧縮する方法を提供する。受信機側において、圧縮ビットストリームは、完全なパレットテーブル３０３及びカラーインデックスマップ３１１を各ＣＵ１０１について再構成すべくパースされ得、次に、カラーインデックスとパレットテーブルとを組み合わせることで各位置におけるピクセル値を更に導出する。
【００４６】
図４は、別々に、及びパックド式で示された複数の色成分を有するＣＵ４０１の別の例を示している。ＣＵ４０１はＣＵ１０１を表していてよい。図４に示されるように、ＣＵ４０１は８ピクセル×８ピクセルのＣＵである。言うまでもなく、ＣＵ４０１はＮ×Ｎピクセルであり得る。ここで、ＨＥＶＣとの互換性のために、Ｎ＝８、１６、３２、６４である。ＣＵ４０１の各ピクセルは、３つの色成分を異なるサンプリング比（例えば、４：４：４、４：２：２、４：２：０）で含む。すなわち、ＣＵ４０１は、別個の、赤（Ｒ）色成分４０２、緑（Ｇ）色成分４０３、及び青（Ｂ）色成分４０４を含む。他の実施形態において、色成分は、Ｙ、Ｃｂ、Ｃｒ、若しくはＸ、Ｙ  Ｚ、又は複数の成分の別の適切な組み合わせであり得る。
【００４７】
簡単にするために、本開示では４：４：４の配列が使用される。４：２：２及び４：２：０のビデオについて、４：４：４の配列を取得すべく、クロマ・アップサンプリングが適用され得る、又は各クロマ成分４０２−４０４は独立に処理され得る。４：０：０の白黒ビデオの場合では、これらは、他の２つのプレーンなしに、４：４：４の個々のプレーンとして扱われ得る。４：４：４のための全ての方法が直接適用され得る。
【００４８】
色成分４０２−４０４は、パック化処理において共にインターリーブされ、パックドＣＵ４０１をもたらす。一実施形態において、ＣＵ１０１が、パックドモードを使用して処理されたのか（従って、ＣＵ４０１をもたらす）、又は、従来のプラナーモード（ｐｌａｎａｒ  ｍｏｄｅ）を使用して処理されたのか（すなわち、Ｇ、Ｂ、Ｒ成分、又はＹ、Ｕ、Ｖ成分４０２−４０４が独立に処理される）を示すべく、ｅｎａｂｌｅ＿ｐａｃｋｅｄ＿ｃｏｍｐｏｎｅｎｔ＿ｆｌａｇと呼ばれるフラグが各ＣＵ１０１について定義される。
【００４９】
パックドモード及びプラナーモードの両方は、利点及び欠点を有し得る。例えば、プラナーモードは、Ｇ／Ｂ／Ｒ又はＹ／Ｕ／Ｖについて並列の色成分処理をサポートする。しかしながら、プラナーモードは低い符号化効率をもたらす場合がある。パックドモードは、異なる複数の色成分の中でも、ＣＵ１０１についての（パレットテーブル３０３及びカラーインデックスマップ３１１などの）ヘッダ情報を共有し得る。しかしながら、パックドモードは複数の色成分が同時に又は並列に処理されることを妨げることがある。現在のＣＵ１０１がパックドモードでエンコードされるべきかどうかを決定するための１つの簡易な方法は、レート歪み（Ｒ‐Ｄ）コストを測定することである。
【００５０】
ｅｎａｂｌｅ＿ｐａｃｋｅｄ＿ｃｏｍｐｏｎｅｎｔ＿ｆｌａｇは、エンコードモードをデコーダに明示的に信号で伝えるべく使用される。低レベルハンドリングのためにＣＵレベルでｅｎａｂｌｅ＿ｐａｃｋｅｄ＿ｃｏｍｐｏｎｅｎｔ＿ｆｌａｇを定義することに加えて、具体的な適用要件に応じて、当該フラグは、スライスヘッダ又は更にはシーケンスレベル（例えば、Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ又はＰｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）においても複製され得、スライスレベル又はシーケンスレベルでのハンドリングを可能にする。
【００５１】
パレットテーブル及びインデックスマップの導出
【００５２】
以下では、図１のパレットテーブル作成ブロック１０３及びテーブルエンコードブロック１０７における複数のオペレーションを説明する。各ＣＵ１０１について、複数のピクセル位置がトランスバースされ、パレットテーブル３０３及び次の処理のためのカラーインデックスマップ３１１が導出される。各別個の色は、次のエンコード処理の効率を上げるべく、そのヒストグラム（すなわち、発生頻度）若しくはその強度の何れかに応じて、又は任意の方法で、パレットテーブル３０３内で順序付けられる。例えば、エンコード処理が、差分パルス符号化変調（ＤＰＣＭ）法を使用して隣接するピクセル間の差を符号化する場合、当該隣接するピクセルがパレットテーブル３０３の隣接するカラーインデックスで割り当てられるとき、最適な符号化の結果を得ることができる。
【００５３】
ここで、新たなハッシュベースのパレットテーブル導出が説明される。それは、複数の主要色を効率的に決定し、誤差を低減させるべく使用され得る。各ＣＵ１０１について、パレットテーブル作成ブロック１０３は、ＣＵ１０１の各ピクセルの色値を調べ、３つの色成分を一緒に使用して、すなわち、パックドＧ、Ｂ、Ｒ、又はパックドＹ、Ｃｂ、Ｃｒを使用して、各色の発生頻度に応じて降順に色ヒストグラムを作成する。各２４ビットの色を表すべく、Ｇ及びＢの色成分（又は、Ｙ及びＣｂの色成分）は適宜ビットシフトされ得る。すなわち、パックされた各色は、（Ｇ＜＜１６）＋（Ｂ＜＜８）＋（Ｒ）又は（Ｙ＜＜１６）＋（Ｃｂ＜＜８）＋（Ｃｒ）の値に従って表され得る。ここで、＜＜ｘは、左ビットシフト演算である。ヒストグラムは色の発生頻度に従って降順にソートされる。
【００５４】
ロッシー符号化のために、次に、パレットテーブル作成ブロック１０３は、よりコンパクトなパレットテーブル表現を取得すべく、ヒストグラムにより順序付けられた色データに対してハッシュベース隣接色グルーピング処理を施す。各色成分について、（量子化パラメータ（ＱＰ）に依存する）下位Ｘビットはクリアされ、ハッシュ関数（Ｇ＞＞Ｘ＜＜（１６＋Ｘ））｜（Ｂ＞＞Ｘ＜＜（８＋Ｘ））｜（Ｒ＞＞Ｘ＜＜Ｘ）、又は、（Ｙ＞＞Ｘ＜＜（１６＋Ｘ））｜（Ｃｂ＞＞Ｘ＜＜（８＋Ｘ））｜（Ｃｒ＞＞Ｘ＜＜Ｘ）を使用して、対応するハッシュ表現が生成される。ここで、＞＞ｘは右ビットシフト演算であり、ＸはＱＰに基づいて決定される。ハッシュテーブル、或いはバイナリサーチツリー（ＢＳＴ）データ構造が、同一のハッシュ値を有する複数の色を迅速に探すべく利用される。任意の２つのハッシュ値について、それらの距離は、対応する色成分の最大絶対差として定義される。
【００５５】
隣接色グルーピング中、パレットテーブル作成ブロック１０３は、Ｎ個の色が処理されるまで、パックされた複数の色を発生頻度の降順に処理する。現在のＣＵ内の色数がＮより小さい場合、現在のＣＵの全ての色が処理される。Ｎは、予め定められた最大色数（ｍａｘ＿ｎｕｍ＿ｏｆ＿ｃｏｌｏｒｓ）によって制限される。いくつかの実施形態において、ｍａｘ＿ｎｕｍ＿ｏｆ＿ｃｏｌｏｒｓ＝１２８、すなわち、Ｎ≦１２８である。ハッシュベースの色グルーピング後、次に、選択されたＮ個の色（又は、現在のＣＵ内の色数がＮより小さい場合には全ての色）が、パックされた各色の値に基づいてそれらの色を昇順にソートすることで再度順序付けられる。その結果は、図３に示されるパレットテーブル３０３などのパレットテーブルである。パレットテーブル３０３は、４色のサイズ（すなわち、Ｎ＝４）を有している。多くの実施形態では、Ｎ＞４である。しかしながら、説明を簡単にするために、図３においてはＮには４が選択されている。
【００５６】
ＣＵ１０１において表された色数がパレットテーブル３０３の色数Ｎより大きい場合、それほど頻繁に発生しない色は、パレットテーブル３０３外の残余として構成される。例えば、色値４９、５３、５０及び５１がパレットテーブル３０３の一部である一方、色値４８、５２、４７、５４、５５及び５６はパレットテーブル３０３外の残余の複数の色３０５である。
【００５７】
パレットテーブル３０３の導出は、パレットテーブル作成ブロック１０３によって実行され、以下の疑似コードによって記述され得る。
0006524118.tif 000002
【００５８】
上記疑似コードにおいて、ＣｏｍｐｕｔｅＨａｓｈ（Ｃ，ＱＰ）は、ハッシュ関数（Ｇ＞＞Ｘ＜＜（１６＋Ｘ））｜（Ｂ＞＞Ｘ＜＜（８＋Ｘ））｜（Ｒ＞＞Ｘ＜＜Ｘ）、又は、（Ｙ＞＞Ｘ＜＜（１６＋Ｘ））｜（Ｃｂ＞＞Ｘ＜＜（８＋Ｘ））｜（Ｃｒ＞＞Ｘ＜＜Ｘ）を適用してハッシュ値を生成する。ここで、ＸはＱＰに依存する。Ｄｉｓｔ（ｈａｓｈ１，ｈａｓｈ２）は、ｈａｓｈ１及びｈａｓｈ２における対応する色成分の最大絶対差を得る。ここで、ハッシュテーブルデータ構造及びバイナリサーチツリー構造が利用されて、そのハッシュ値に基づいて特定の条件を満たす複数の色を迅速に見付ける。
【００５９】
上述されたように、導出されたパレットテーブル３０３に基づき、色分類ブロック１０５はＣＵ１０１を使用して、ＣＵ１０１の複数の色又は複数のピクセル値をカラーインデックスマップ３１１と１又は複数の予測残差マップ３１３とに割り当てる。すなわち、色分類ブロック１０５は、パレットテーブル３０３の各色をパレットテーブル３０３内のカラーインデックスに割り当てる。例えば、図３の３０７において示されるように、色４９はカラーインデックス０（ＣｏｌｏｒＩｄｘ＝０）が割り当てられ、色５３はカラーインデックス１が割り当てられ、色５０はカラーインデックス２が割り当てられ、色５１はカラーインデックス３（ＣｏｌｏｒＩｄｘ＝３）が割り当てられる。パレットテーブル３０３の複数の色がインデックスを割り当てられ次第、各色のインデックスを使用してＣＵ１０１からカラーインデックスマップ３１１が生成され得る。カラーインデックスマップ３１１の処理は以下でより詳細に説明される。同様に、パレットテーブル３０３外の残余の各色３０５は、３０９に示されるように予測残差値が割り当てられる。残余の複数の色３０５が予測残差値を割り当てられ次第、ＣＵ１０１から予測残差マップ３１３が生成され得る。
【００６０】
プラナーＣＵについて、各色成分は、ｃｏｌｏｒＴａｂｌｅ＿Ｙ、ｃｏｌｏｒＴａｂｌｅ＿Ｕ、ｃｏｌｏｒＴａｂｌｅ＿Ｖ、又は、ｃｏｌｏｒＴａｂｌｅ＿Ｒ、ｃｏｌｏｒＴａｂｌｅ＿Ｇ、ｃｏｌｏｒＴａｂｌｅ＿Ｂなどのそれ自身の個々のパレットテーブルを有し得る。いくつかの実施形態において、ＹＵＶのＹ、又はＧＢＲのＧなどの主成分のパレットテーブルが導出され得、このテーブルは全成分について共有され得る。通常、共有されたＹ又はＧのパレットテーブルを使用することで、Ｙ又はＧ以外の複数の色成分は、元の複数のピクセル色に対する、共有パレットテーブルにおけるそれらからのいくらかのミスマッチを有するであろう。次に、それらのミスマッチな残差をエンコードすべく、（複数のＨＥＶＣ係数符号化方法などの）残差エンジンが適用され得る。他の実施形態については、パックドＣＵに対して、単一のパレットテーブルが全成分の間で共有され得る。
【００６１】
以下の擬似コードは、パレットテーブル及びインデックスマップの導出を例示している。
0006524118.tif 000003
【００６２】
パレットテーブル処理
【００６３】
各ＣＵ１０１について、送信機１００は（明示的なパレットテーブルキャリッジと称される）現在のＣＵ１０１からパレットテーブル３０３を導出し得る、又は、送信機１００は、（暗示的なパレットテーブルキャリッジと称される）現在のＣＵ１０１の左側若しくは上側に隣接するものからパレットテーブル３０３を導出し得る。テーブルエンコードブロック１０７は、パレットテーブル３０３を受信し、パレットテーブル３０３の複数のエントリをエンコードする。
【００６４】
パレットテーブル処理は、パレットテーブル３０３のサイズ（すなわち、別個の色の総数）及び各色それ自体のエンコードを含む。ビットの大部分はパレットテーブル３０３の各色のエンコードによって消費される。よって、色のエンコード（すなわち、パレットテーブル３０３の各エントリのエンコード）に焦点が置かれる。
【００６５】
パレットテーブルの複数の色のエンコードの最も単純な方法は、パルス符号化変調（ＰＣＭ）スタイルのアルゴリズムを使用することである。ここで、各色は独立に符号化される。或いは、連続する色の直近の予測が適用され得、次に、デフォルトの色強度ではなく、予測のデルタがエンコードされ得る。これは、いわゆるＤＰＣＭ（差分ＰＣＭ）スタイルである。両方法とも後に、複雑さのコストと符号化効率との間のトレードオフに応じて、同等確率モデル（ｅｑｕａｌ  ｐｒｏｂａｂｉｌｉｔｙ  ｍｏｄｅｌ）又は適応型コンテキストモデル（ａｄａｐｔｉｖｅ  ｃｏｎｔｅｘｔ  ｍｏｄｅｌ）を使用してエントロピー符号化され得る。
【００６６】
本開示の複数の実施形態は、Ｎｅｉｇｈｂｏｒｉｎｇ  Ｐａｌｅｔｔｅ  Ｔａｂｌｅ  Ｍｅｒｇｅと呼ばれる別の先進的なスキームを提供する。ここで、ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｆｌａｇは、現在のＣＵ（例えば、ＣＵ１０１）がその左側で隣接するＣＵを使用するのか、又はその上側で隣接するＣＵに関連付けられたパレットテーブルを使用するのかを示すべく定義される。どちらも使用しない場合、現在のＣＵは明示的に信号で伝えるパレットテーブルを保持する。この処理は隣接パレットテーブル共有とも称されてよい。このマージ処理により、ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｄｉｒｅｃｔｉｏｎフラグは、上側ＣＵ又は左側ＣＵの何れかからのマージ方向を示す。マージ方向の候補として、上側ＣＵ又は左側ＣＵ以外の方向（例えば、左上、右上など）があり得ることは言うまでもない。しかしながら、概念の簡略化のために、本開示では上側ＣＵ及び左側ＣＵが使用される。現在のＣＵの各ピクセルが、左側ＣＵ又は上側ＣＵに関連付けられた既存のパレットテーブルの複数のエントリと比較され、上記において示されたｄｅｒｉｖｅＩｄｘＭａｐ（）擬似コードによって、最小の予測差分（すなわち、ピクセルからパレットテーブルの最も近い色を差し引く）を与えるインデックスが割り当てられる。予測差分が非ゼロの場合について、残差の全てはＨＥＶＣ  Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎ（ＲＥｘｔ）残差エンジンを使用してエンコードされる。テーブルマージ処理を使用するかどうかの決定は、Ｒ‐Ｄコストによって決定され得る。
【００６７】
カラーテーブルがビットストリームにおいて明示的に伝達される場合、それは各色成分について順に符号化され得る。３つ全ての色成分について順に各エントリを符号化すべく、以下で説明されるように、インターテーブル・パレットスタッフィング（ｉｎｔｅｒ−ｔａｂｌｅ  ｐａｌｅｔｔｅ  ｓｔｕｆｆｉｎｇ）若しくはイントラテーブル・カラーＤＰＣＭ（ｉｎｔｒａ−ｔａｂｌｅ  ｃｏｌｏｒ  ＤＰＣＭ）が適用される。
【００６８】
インターテーブル・パレットスタッフィング
【００６９】
パレットテーブル共有方法が使用されない場合でさえ、パレットテーブル３０３とパレット予測値との間で共通する複数の色が依然として存在する場合がある。故に、エントリ毎にインターテーブル・パレットスタッフィング技術を適用すれば、符号化効率を更に向上させ得る。ここで、パレット予測値は、左側に隣接するＣＵ若しくは上側に隣接するＣＵなどの隣接ブロックから導出される。図５Ａは、本開示に係るインターテーブル・パレットスタッフィング技術で使用され得るパレット予測値５５１及び現在のパレットテーブル５５３を示している。現在のパレットテーブル５５３は図３のパレットテーブル３０３を表わしてよい。パレット予測値５５１は、現在のＣＵの左側に隣接するＣＵから構成され得る。デコーダ側において、パレットは、参照の複数の隣接するＣＵから、パレット予測値５５１に従って適切に更新される。いくつかの実施形態において、パレット予測値は、再構成された隣接ＣＵ若しくは符号化ツリーユニット（ＣＴＵ）から、又は、スライスレベル若しくはシーケンスレベルでのグローバルテーブルから推定され得る。当該技術分野においては公知であるように、スライスはピクチャ内に複数のＣＵを含む。ピクチャは、１又は複数のスライスを含んでよい。シーケンスは複数のスライスを含む。
【００７０】
ｃ（ｉ）及びｒ（ｊ）がそれぞれ、現在のパレットテーブル５５３のｉ番目のエントリ、及びパレット予測値５５１のｊ番目のエントリを表わすものとしよう。各エントリが３つの色成分（ＧＢＲ、ＹＣｂＣｒ、又は同様のもの）を含むことに再度留意されたい。現在のテーブル５５３のｉ≦Ｎである各カラーエントリｃ（ｉ）について、テーブルエンコードブロック１０７はパレット予測値５５１から完全マッチｒ（ｊ）を見付ける。ｃ（ｉ）を信号で伝える代わりに、ｊがプレディケーティブにエンコードされる。予測値は、前に再構成されたｊより大きく、かつ、ｒ（ｋ）［０］≧ｃ（ｉ−１）［０］を満たす最小インデックスｋとして決定される。予測差分（ｊ−ｋ）はビットストリームにおいて信号で伝えられる。当該差分（ｊ−ｋ）は負ではないので、符号ビットは必要ない。
【００７１】
当該技術分野においては公知なように、コンテキスト適応型モデル又はバイパスモデルの何れかが、（ｊ−ｋ）をエンコードすべく使用され得ることに留意されたい。通常、コンテキスト適応型モデルが高効率の複数の目的のために使用される一方で、バイパスモデルは、高スループット及び低複雑性の要件のために使用される。本開示のいくつかの実施形態において、動的トランケーテッド単項バイナリゼーション（ｄｙｎａｍｉｃ  ｔｒｕｎｃａｔｅｄ  ｕｎａｒｙ  ｂｉｎａｒｉｚａｔｉｏｎ）スキームを使用して、インデックス予測差分（ｊ−ｋ）をエンコードすべく、２つのコンテキスト適応型モデルが使用され得る。
【００７２】
イントラテーブル・カラーＤＰＣＭ
【００７３】
現在のパレットテーブル５５３のｉ番目のエントリについて、パレット予測値５５１においてマッチが見付けられない場合、ｉ番目のエントリの値は前のエントリ（（ｉ−１）番目のエントリ）から減算され、その絶対差（｜ｄ（ｉ）｜）は、各成分についてカラーＤＰＣＭを使用してエンコードされる。通常、予測絶対差のためのより少ないビット及び符号ビットが生成され、イントラテーブル・カラーＤＰＣＭを使用してエンコードされる。当該技術分野においては公知であるように、コンテキスト適応型モデル又はバイパスモデルの何れかが使用されて、予測絶対差及び関連付けられた符号ビン（ｂｉｎ）がエンコードされ得る。加えて、符号ビットはいくつかの場合では隠され得る、又は符号化され得る。例えば、現在のパレットテーブル５５３が既に昇順に順序付けられたと仮定すると、Ｙ（又はＧ）の成分差は全く符号ビットを必要としない。同様に、Ｃｂ（又はＢ）の成分差は、対応するＹ（又はＧ）の差分がゼロである場合、符号ビットを必要としない。更に、Ｃｒ（又はＲ）成分差は、Ｙ（又はＧ）及びＣｂ（又はＢ）の差分が共にゼロである場合、符号ビットを必要としない。別の例として、符号ビットは、絶対差がゼロである場合、隠され得る。更に別の例として、符号ビットは、次のバウンダリ条件：ｃ［ｉ−１］−｜ｄ（ｉ）｜＜０、又は、ｃ［ｉ−１］＋｜ｄ（ｉ）｜＞２５５を満たす場合、隠され得る。
【００７４】
現在のテーブル５５３の一番目のエントリｃ（０）について、インターテーブル・パレットスタッフィング技術が使用されない場合、ｃ（０）の各成分は、固定８ビットバイパスコンテキストモデルを使用してエンコードされ得る。追加的又は代替的に、更に性能を向上させるべく、それは適応型コンテキストモデルを使用してエンコードされ得る。
【００７５】
インターテーブル・パレットスタッフィング技術及びイントラテーブル・カラーＤＰＣＭ技術をより良く説明すべく、現在のパレットテーブル５５３のデータを使用する例がここで説明される。
【００７６】
現在のパレットテーブル５５３の一番目のエントリｃ（０）、すなわち、（Ｇ，Ｂ，Ｒ）＝（０，０，１９２）から開始すると、ｃ（０）はパレット予測値５５１においてどれともマッチしないことが分かり、故に、ｃ（０）は独立にエンコードされる。現在のパレットテーブル５５３の二番目のエントリｃ（１）（（Ｇ，Ｂ，Ｒ）＝（０，０，２４０））もまた、パレット予測値５５１においてどれともマッチしない。一番目のエントリｃ（０）が既に符号化されたと仮定すると、ｃ（１）とｃ（０）との予測差分、すなわち、（０，０，２４０）−（０，０，１９２）＝（０，０，４８）のみがビットストリームにおいて伝達されるべきである。現在のテーブル５５３の三番目のエントリｃ（２）について、パレット予測値５５１のｊ＝１において正確なマッチが特定される。前に符号化されたカラーエントリを使用する予測インデックスは０であり、故に、（１−０）＝１のみがエンコードされる必要がある。これらの符号化技術は、現在のテーブル５５３の最後のエントリ（すなわち、図５Ａのｉｄｘ＝１２）がエンコードされるまで適用される。テーブル１は、利用可能なパレット予測値５５１を使用して、現在のテーブル５５３に対してインターテーブル共有及びイントラテーブルＤＰＣＭをどのように適用するかについての段階的な説明を提供する。
【表１】
0006524118.tif 000004
【００７７】
カラーテーブルの明示的な符号化は以下の擬似コードにおいて要約されている。ここで、Ｎ及びＭはそれぞれ、現在のカラーテーブルのエントリ数及び参照カラーテーブルのエントリ数である。
0006524118.tif 000005
【００７８】
カラーテーブルの明示的な復号化は、以下の擬似コードにおいて要約されている。
0006524118.tif 000006
【００７９】
現在のＣＵを符号化するときのマージ処理において使用するための隣接パレットテーブルを生成する方法はいくつか存在する。実装に応じて、それらの方法のうちの１つ（説明を簡単にするために方法Ａと称される）が、エンコーダ及びデコーダの両方における更新を要求する。別の方法（方法Ｂと称される）は、エンコーダ側のみの処理である。両方法がここで説明される。
【００８０】
方法Ａ：この方法では、隣り合うＣＵのパレットテーブルは、ＣＵの深度、サイズ等には関係なく、利用可能な再構成された複数のピクセルに基づいて生成される。各ＣＵについて、（この場合では色類似度がより高いであろうと想定して）、再構成は、同一サイズ及び同一深度のその隣接ＣＵについて回復される。
【００８１】
図５Ｂは、本開示に係る方法Ａを使用するパレットテーブル再生成の例を示している。図５Ｂに示されるように、現在のＣＵ５０１は深度＝２の１６×１６ブロックである。現在のＣＵ５０１の複数の隣接ＣＵは、上側ＣＵ５０２及び左側ＣＵ５０３を含む。上側ＣＵ５０２は、深度＝１の３２×３２ブロックである。上側ＣＵ５０２は、１６×１６の上側ブロック５０４を含む。左側ＣＵ５０３は、深度＝３の８×８ブロックであり、１６×１６ブロック５０５の一部である。方法Ａを使用して、その複数の隣接ＣＵの分割（例えば、８×８の左側ＣＵ５０３、又は、３２×３２の上側ＣＵ５０２）には関係なく、ピクセルオフセット（＝１６）が、左側の１６×１６ブロック５０５を処理すべく現在のＣＵ５０１の原点から左方向に配置され、上側の１６×１６ブロック５０４を処理すべく現在のＣＵ５０１の原点から上方向に配置される。エンコーダ及びデコーダの両方はこのオフセットを維持する。
【００８２】
方法Ｂ：この方法では、現在のＣＵが、その上側で隣接するＣＵ及び／又はその左側で隣接するＣＵと同一のサイズ及び深度を共有する場合、マージ処理が生じる。利用可能な複数の隣接ＣＵのパレットテーブルが使用されて、続く複数のオペレーションのために現在のＣＵのカラーインデックスマップが導出される。例えば、１６×１６の現在のＣＵについて、その隣接ＣＵ（すなわち、その上側に隣接するもの、又はその左側に隣接するものの何れか）がパレットテーブル及びインデックス方法を使用してエンコードされる場合、現在のＣＵについて隣接ＣＵのパレットテーブルが使用されて、Ｒ‐Ｄコストが導出される。このマージコストは、現在のＣＵが（ＨＥＶＣ又はＨＥＶＣ  ＲＥｘｔにおいて存在し得る他の複数の従来のモードだけでなく）そのパレットテーブルを明示的に導出するケースとも比較される。最も低いＲ‐Ｄコストを生成するケースの方が、出力ビットストリームに書き込まれるモードとして選択される。方法Ｂでは、可能性のある異なる複数のモードをシミュレートするのに、エンコーダのみが必要とされる。デコーダにおいて、ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｆｌａｇ及びｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｄｉｒｅｃｔｉｏｎフラグは、デコーダによる追加の処理を必要とすることなくマージ決定及びマージ方向を示す。
【００８３】
予測パレット（ＰＲＥＤＩＣＴＯＲ  ＰＡＬＥＴＴＥ）
【００８４】
更に複雑さを低減すべく、前に符号化されたパレットテーブル、又は、前に符号化されたパレットテーブルから最終的にもたらされる別の予測パレットからもたらされる複数の色をキャッシュすべく、予測パレットが使用される。一実施形態において、予測パレットの複数のエントリは、現在のＣＵの左側ＣＵ又は上側ＣＵの予測パレット又は符号化されたパレットテーブルからもたらされる。ＣＵがカラーパレットでエンコードされた後、このＣＵサイズが、予測パレットに関連付けられたＣＵサイズより大きいか、又はそれに等しい場合、予測パレットは更新され、現在のパレットは予測パレットとは異なる。現在のＣＵがパレットモードを使用してエンコードされない場合、予測パレットに対する変更はない。これは、予測パレット伝搬とも称される。この予測パレットは、各ピクチャ若しくはスライス、又は各ＣＵの行の初めでリセットされてよい。
【００８５】
予測パレットを構成すべく、いくつかの方法が利用可能である。第１の方法において、各ＣＵのエンコードについて、予測パレットは、その左側ＣＵ又は上側ＣＵの予測パレットから構成される。この方法では、１つの予測パレットテーブルが各ＣＵについて保存される。
【００８６】
第２の方法は、予測パレットテーブルの代わりに、上側ＣＵに関連付けられたパレットテーブルが予測処理において使用されるという点で第１の方法とは異なる。
【００８７】
カラーインデックスマップ処理／符号化
【００８８】
インデックスマップエンコードブロック１０９は、色分類ブロック１０５によって作成されたカラーインデックスマップ３１１をエンコードする。カラーインデックスマップ３１１をエンコードすべく、インデックスマップエンコードブロック１０９は、少なくとも１回の走査オペレーション（水平走査３１５又は垂直走査３１７）を実行して、二次元（２Ｄ）カラーインデックスマップ３１１を一次元（１Ｄ）ストリングへと変換する。次に、インデックスマップエンコードブロック１０９は、（以下で説明される）ストリングサーチ・アルゴリズムを実行して、複数のマッチを生成する。いくつかの実施形態において、インデックスマップエンコードブロック１０９は、別々の水平走査オペレーション及び垂直走査オペレーションを実行し、ストリングサーチ・アルゴリズムを実行して、どれがより良好な結果を提供するかを決定する。図６は、水平走査オペレーション及び垂直走査オペレーションの例を示している。図６では、例示的な２Ｄカラーインデックスマップ６０１が示されている。カラーインデックスマップ６０１は、図３のカラーインデックスマップ３１１を表し得る。カラーインデックスマップ６０１は６４×６４のマップであるが、他のサイズのカラーインデックスマップが可能である。図６に示されるように、水平走査（若しくはサーチ）６０２、又は垂直走査（若しくはサーチ）６０３がカラーインデックスマップ６０１に対して実行され得る。
【００８９】
本開示の複数の実施形態は、カラーインデックスマップ３１１をエンコードするための１Ｄストリングマッチング技術及び２Ｄ変動を提供する。各位置において、エンコード技術はマッチしたポイントを見付け、１Ｄストリングマッチについてのマッチした距離及び長さを記録する、又は、２Ｄストリングマッチについてのマッチの幅及び高さを記録する。アンマッチの位置については、そのインデックス強度、或いは、インデックス強度と予測されたインデックス強度との間のデルタ値が直接エンコードされ得る。
【００９０】
単純な１Ｄサーチ方法がカラーインデックスマップ６０１に対して実行され得る。例えば、図７は、カラーインデックスマップ６０１の一番目のインデックス位置からの水平走査を使用する１Ｄサーチの後の、１Ｄカラーインデックスベクトル７００の一部を示す。次に、当該１Ｄカラーインデックスベクトル７００にストリングサーチが適用される。カラーインデックスベクトル７００の（図７において示されるように「１４」である）一番目の位置７０１を見ると、まだバッファリングされた参照はないので、一番目の位置７０１が「アンマッチペア」として処理される。アンマッチペアは、その対応する距離及び長さに対して値−１及び値１が割り当てられ、（ｄｉｓｔ，ｌｅｎ）＝（−１，１）と表記される。二番目の位置７０２もまた「１４」である。二番目の位置７０２は、参照として符号化された一番目のインデックスである。故に、マッチペアの距離はｄｉｓｔ＝１である。三番目の位置７０３においてまた「１４」があるので、マッチペアの長さは２、すなわち、ｌｅｎ＝２である。四番目の位置７０４に向かって移動すると、初めての値である「１７」に遭遇する。よって、当該四番目の位置７０４は別のアンマッチペア、すなわち、（ｄｉｓｔ，ｌｅｎ）＝（−１，１）としてエンコードされる。各アンマッチペアについて、現在のインデックスについてマッチしたインデックスが見付けられないことを信号で伝えるべくマッチ／アンマッチフラグがエンコードされ、このフラグの後に、実際のインデックスの値（例えば、「１４」、「１７」、「６」等の最初の出現）が続く。各マッチペアについて、マッチしたインデックスストリングが見付けられたことを信号で伝えるべく、マッチ／アンマッチフラグがエンコードされ、このフラグの後に、マッチしたストリングの長さが続く。
【００９１】
以下は、図７に示された１Ｄカラーインデックスベクトル７００の一部を使用するエンコード技術についての結果のセットである。
0006524118.tif 000007
【００９２】
以下の擬似コードがこのマッチペアの導出のために与えられる。
0006524118.tif 000008
【００９３】
簡易化されたカラーインデックスマップ符号化
【００９４】
いくつかの実施形態において、１Ｄ方式でのカラーインデックスマップ処理のための簡易化された方法として以下の複数のオペレーションが実行され得る。上述されたように、カラーインデックスマップ６０１は複数のマッチペア又は複数のアンマッチペアによって表され得る。複数のマッチペアについて、複数のグループインデックスのマッチした距離及び長さのペアが受信機に信号で伝えられる。
【００９５】
符号化ユニットがほんの数色しか含まない、いくつかの極めて顕著なシナリオが存在する。これは、同一のインデックス値を有する１又は複数の大きな連続した又は隣接した部分をもたらし得る。そのような場合では、（距離，長さ）のペアを信号で伝えることが、必要以上のオーバヘッドをもたらす場合がある。この問題に対処すべく、以下で説明される簡易化されたカラーインデックスマップ処理方法は更に、カラーインデックスマップの符号化で消費されるビット数を低減する。
【００９６】
１Ｄインデックスマップ符号化解決法と同様に、「距離」の概念は２つの主要なカテゴリ：有意距離（ｓｉｇｎｉｆｉｃａｎｔ  ｄｉｓｔａｎｃｅ）及び通常距離に分けられ得る。通常距離は、複数のコンテキストを使用してエンコードされる。次に、関連付けられた複数の長さが順にエンコードされる。
【００９７】
この方法の複数の実施形態は有意距離を使用する。この方法には２つのタイプの有意距離が存在する。１つは距離＝ｂｌｏｃｋＷｉｄｔｈである。もう１つは、距離＝１である。これらの２つのタイプの有意距離は、距離＝１及び距離＝ｂｌｏｃｋＷｉｄｔｈが、距離分布全体のうちの最も大きな割合と関連付けられているという所見を反映している。それらの２つのタイプの有意距離がここで例として説明される。
【００９８】
距離＝ｂｌｏｃｋＷｉｄｔｈを使用する符号化方法は、ＣｏｐｙＡｂｏｖｅ符号化とも称される。ＣｏｐｙＡｂｏｖｅ符号化法を説明すべく、図６の６４×６４カラーインデックスマップ６０１が再度考察される。カラーインデックスマップ６０１はｂｌｏｃｋＷｉｄｔｈ＝６４を有する。６４×６４カラーインデックスマップ６０１内には、破線で示された、複数のインデックスからなる２つのストリング６１１−６１２がある。ストリング６１２内の複数のインデックス値は、真上のストリング６１１内の対応する複数のインデックス値と同一である。ストリング６１２内の複数のインデックス値は、ストリング６１１内の複数のインデックス値と同一なので、ストリング６１２内の複数のインデックス値はストリング６１１内の複数のインデックス値を参照することでエンコードされ得る。水平走査を使用してカラーインデックスマップ６０１が（図７の１Ｄカラーインデックスベクトル７００に示されるものなどの）１Ｄカラーインデックスベクトルに変換される場合、ストリング６１１−６１２内の対応する複数のインデックス値の間の１Ｄカラーインデックスベクトルに沿った「距離」は、カラーインデックスマップ６０１のブロック幅である６４に等しい。例えば、カラーインデックスマップ６０１が、６４×６４＝４０９６個の要素を有する１Ｄカラーインデックスベクトルに変換される場合、ストリング６１１の一番目の値であるインデックス値「６」と、ストリング６１２の一番目の値であるインデックス値「６」との間のベクトルに沿った距離は６４である。マッチしたストリング６１１−６１２の長さは２７である。なぜなら、各ストリング６１１−６１２は２７個のインデックス値を含むからである。従って、ストリング６１２は、ＣｏｐｙＡｂｏｖｅ符号化法と、２７個のインデックス値の長さとを示すことで簡単に符号化され得る。
【００９９】
距離＝１を使用する符号化方法は、ＩｎｄｅｘＭｏｄｅ符号化又はＣｏｐｙＬｅｆｔ符号化とも称される。ＩｎｄｅｘＭｏｄｅ符号化を説明すべく、カラーインデックスマップ６０１の複数のインデックスからなるストリング６１３を考察しよう。ストリング６１３は、その後に５１個の後続のインデックス値「１４」が続く第１のインデックス値「１４」を含む。ストリング６１３内のインデックス値の各々は同一なので、一番目の「１４」に続く、ストリング６１３の５１個のインデックス値は、（現在のインデックス値の左のインデックスまでの距離が１であるインデックス値が同じ値を有することを示す）距離＝１を使用して一緒に符号化され得る。マッチしたストリング６１３の長さは５１である。従って、ストリング６１３は、ＩｎｄｅｘＭｏｄｅ符号化法と、５１個のインデックス値の長さとを示すことで簡単に符号化され得る。
【０１００】
上述されたように、この簡易化されたカラーインデックスマップ符号化の方法では、符号化に使用された距離は有意な位置のみに限定され得る、すなわち、これらの実施形態での距離は、１又はｂｌｏｃｋＷｉｄｔｈのみに限定され得る。更にオーバヘッドを低減すべく、マッチしたインデックスの長さはまた、符号化ユニット幅に限定され得る。この定義を使用して、距離及び長さのペアは、長さ及び距離のオーバヘッド（それはブロック幅と推定される）を送信することなく、２つのバイナリフラグ（すなわち、２つのビン）のみを使用して信号で伝えられ得る。例えば、第１のフラグは、符号化が有意距離を使用しているのか、又は、有意距離を使用しないのかを示し得る。第１のフラグが、符号化は有意距離を使用していることを示す場合、第２のフラグは、有意距離が１（すなわち、ＩｎｄｅｘＭｏｄｅ）なのか、又はｂｌｏｃｋＷｉｄｔｈ（すなわち、ＣｏｐｙＡｂｏｖｅ）なのかを示し得る。マッチしたストリングは符号化ユニットにおいてライン毎（又は行毎）に生じるので、距離＝１又は距離＝ｂｌｏｃｋＷｉｄｔｈによってマッチしない、ライン内のあらゆるインデックスはアンマッチインデックスとして扱われる。そのようなアンマッチインデックスは個別に１つ１つ符号化される。これらのアンマッチインデックスについて、効率を向上させるべく上述の予測方法が使用され得る。
【０１０１】
デコーダは、上述のＣｏｐｙＡｂｏｖｅ符号化技術及びＩｎｄｅｘＭｏｄｅ符号化技術に類似した複数の復号化オペレーションを実行し得る。例えば、デコーダは、第２のフラグを受信し得、当該第２のフラグの値に基づいて、デコーダはＣｏｐｙＡｂｏｖｅ復号化技術に従って復号化するのか、又はＩｎｄｅｘＭｏｄｅ復号化技術に従って復号化するのかを知る。
【０１０２】
更に上述の１Ｄストリングマッチング技術の２Ｄ変動が使用され得る。２Ｄマッチング技術は以下の複数の段階を含む。
【０１０３】
段階１：現在のピクセルの位置及び参照ピクセルが開始点として特定される。
【０１０４】
段階２：現在のピクセルの右方向及び参照ピクセルに水平１Ｄストリングサーチが適用される。最大サーチ長は、現在の水平行の末尾で制限される。最大サーチ長は、ｒｉｇｈｔ＿ｗｉｄｔｈとして記録され得る。
【０１０５】
段階３：現在のピクセルの左方向及び参照ピクセルに水平１Ｄストリングサーチが適用される。最大サーチ長は現在の水平行の先頭で制限され、かつ、前の２Ｄマッチのｒｉｇｈｔ＿ｗｉｄｔｈによっても制限されてよい。最大サーチ長はｌｅｆｔ＿ｗｉｄｔｈとして記録され得る。
【０１０６】
段階４：現在のピクセル及び参照ピクセルの下のピクセルを、新たな現在のピクセル及び参照ピクセルとして使用して、同一の１Ｄストリングサーチが次の行において実行される。
【０１０７】
段階５：ｒｉｇｈｔ＿ｗｉｄｔｈ＝＝ｌｅｆｔ＿ｗｉｄｔｈ＝＝０の場合、停止する。
【０１０８】
段階６：各高さ［ｎ］＝｛１，２，３…｝について、対応する幅の配列［ｎ］（例えば、｛ｌｅｆｔ＿ｗｉｄｔｈ［１］，ｒｉｇｈｔ＿ｗｉｄｔｈ［１］｝，｛ｌｅｆｔ＿ｗｉｄｔｈ［２］，ｒｉｇｈｔ＿ｗｉｄｔｈ［２］｝，｛ｌｅｆｔ＿ｗｉｄｔｈ［３］，ｒｉｇｈｔ＿ｗｉｄｔｈ［３］｝…）が存在する。
【０１０９】
段階７：各高さ［ｎ］について、新たなｍｉｎ＿ｗｉｄｔｈ配列が、｛｛ｌｗｉｄｔｈ［１］，ｒｗｉｄｔｈ［１］｝，｛ｌｗｉｄｔｈ［２］，ｒｗｉｄｔｈ［２］｝，｛ｌｗｉｄｔｈ［３］，ｒｗｉｄｔｈ［３］｝…｝として定義される。ここで、ｌｗｉｄｔｈ［ｎ］＝ｍｉｎ（ｌｅｆｔ＿ｗｉｄｔｈ［１：ｎ−１］）、ｒｗｉｄｔｈ［ｎ］＝ｍｉｎ（ｒｉｇｈｔ＿ｗｉｄｔｈ［１：ｎ−１］）である。
【０１１０】
段階８：サイズ配列｛ｓｉｚｅ［１］，ｓｉｚｅ［２］，ｓｉｚｅ［３］…｝もまた定義される。ここで、ｓｉｚｅ［ｎ］＝高さ［ｎ］×（ｌｗｉｄｔｈ［ｎ］＋ｈｗｉｄｔｈ［ｎ］）である。
【０１１１】
段階９：ｓｉｚｅ［ｎ］がサイズ配列において最大値を保持するものと仮定すると、２Ｄストリングマッチの幅及び高さは、対応する｛ｌｗｉｄｔｈ［ｎ］，ｒｗｉｄｔｈ［ｎ］，高さ［ｎ］｝を使用して選択される。
【０１１２】
１Ｄサーチ又は２Ｄサーチの速度を最適化するための１つの技術は、実行中のハッシュを使用するものである。いくつかの実施形態において、４‐ピクセルの実行中のハッシュ構造が使用され得る。実行中のハッシュが水平方向における全ピクセルについて計算されて、水平ハッシュ配列ｒｕｎｎｉｎｇ＿ｈａｓｈ＿ｈ［］が生成される。別の実行中のハッシュがｒｕｎｎｉｎｇ＿ｈａｓｈ＿ｈ［］の上部で計算されて、２Ｄハッシュアレイ  ｒｕｎｎｉｎｇ＿ｈａｓｈ＿ｈｖ［］が生成される。２Ｄハッシュアレイ  ｒｕｎｎｉｎｇ＿ｈａｓｈ＿ｈｖ［］内の値の各値のマッチは、４×４ブロックマッチを表す。２Ｄマッチを実行すべく、複数の４×４ブロックマッチが、それらの隣接するものとのピクセルに関する比較を実行する前に見付けられる。ピクセルに関する比較は１‐３ピクセルに限定されるので、サーチ速度は劇的に増加され得る。
【０１１３】
上記の説明から、各行のマッチした幅は互いに異なり、従って、各行は別々に処理されなくてはならない。効率及び低複雑性を達成すべく、本開示の複数の実施形態は、ハードウェア及びソフトウェアの実装の両方において使用され得るブロックベースアルゴリズムを提供する。標準的な動き予測といくつかの点で同様なように、このアルゴリズムは一度に１つの矩形ブロックを処理する。
【０１１４】
図８は、Ｕ＿ＰＩＸＥＬモジュール８００と呼ばれる、このアルゴリズムにおける基本ピクセル処理ユニットの例を示している。Ｕ＿ＰＩＸＥＬモジュール８００は、符号化された信号８０１及び入力信号８０２を受信し、複数の論理ゲート８０３‐８０６を含む。符号化された信号８０１は、参照ピクセルが、前のストリングマッチ・オペレーションから既にエンコードされたかどうかを示すフラグである。任意で、入力信号８０２（ｃｍｐ［ｎ−１］）は強制的に「０」にされ得る。このことにより、最後の「ＯＲ」ゲート８０６をＵ＿ＰＩＸＥＬモジュール８００から取り去ることが可能である。
【０１１５】
例として４×４ブロックを用いる。第１段階は各行の並列処理である。矩形の１つの行の各ピクセルが、１つのＵ＿ＰＩＸＥＬモジュール８００に割り当てられる。各行を処理するための処理ユニットはＵ＿ＲＯＷモジュールと呼ばれる。図９はＵ＿ＲＯＷモジュール９００の例を示している。Ｕ＿ＲＯＷモジュール９００は、複数のＵ＿ＰＩＸＥＬモジュール８００を含む。４×４ブロックの場合では、Ｕ＿ＲＯＷモジュール９００は４つのＵ＿ＰＩＸＥＬモジュール８００を含む。図９に示されるように、Ｕ＿ＲＯＷモジュール９００は、９０１において示されるように、一番目の行、行０を処理中である。
【０１１６】
４×４ブロックの４つの行を処理すべく、４つのＵ＿ＲＯＷモジュール９００が使用される。４つのＵ＿ＲＯＷモジュール９００は、Ｕ＿ＣＭＰモジュール内で並列に配置され得る。図１０は、４つのＵ＿ＲＯＷモジュール９００を含むＵ＿ＣＭＰモジュール１０００の例を示している。Ｕ＿ＣＭＰモジュール１０００の出力は、配列ｃｍｐ［４］［４］である。
【０１１７】
当該アルゴリズムの次の段階は、ｃｍｐ配列の各列の並列処理である。ｃｍｐ配列の列内の各ｃｍｐは、Ｕ＿ＣＯＬモジュールによって処理される。図１１は、ｃｍｐ配列の４つの列１１０１‐１１０４を受信するＵ＿ＣＯＬモジュール１１００の例を示している。４つのＵ＿ＣＯＬモジュール１１００は、４×４ブロックの４つの列を処理すべく使用され得る。４つのＵ＿ＣＯＬモジュール１１００は、Ｕ＿２Ｄ＿ＢＬＯＣＫモジュール内で並列に配置され得る。図１２は、４つのＵ＿ＣＯＬモジュール１１００を含む例示的なＵ＿２Ｄ＿ＢＬＯＣＫモジュール１２００を示している。Ｕ＿２Ｄ＿ＢＬＯＣＫモジュール１２００の出力は、配列ｒｗ［４］［４］である。
【０１１８】
次に配列ｒｗ［ｎ］［０‐３］の各行におけるゼロの数がカウントされ、その４つの結果が配列ｒ＿ｗｉｄｔｈ［ｎ］に記録される。配列ｒ＿ｗｉｄｔｈ［ｎ］は、上述の２Ｄマッチング技術の段階７における配列ｒｗｉｄｔｈ［ｎ］と同一である。配列ｌ＿ｗｉｄｔｈ［ｎ］が同様にして生成される。段階７におけるｍｉｎ＿ｗｉｄｔｈ配列を、｛｛ｌ＿ｗｉｄｔｈ［１］，ｒ＿ｗｉｄｔｈ［１］｝，｛ｌ＿ｗｉｄｔｈ［２］，ｒ＿ｗｉｄｔｈ［２］｝，｛ｌ＿ｗｉｄｔｈ［３］，ｒ＿ｗｉｄｔｈ［３］｝…｝として得ることが可能である。
【０１１９】
このアルゴリズムはハードウェア、又はハードウェア及びソフトウェアの組み合わせで実装され得、任意の最新のＣＰＵ（中央処理装置）、ＤＳＰ（デジタル信号プロセッサ）、又はＧＰＵ（グラフィック処理ユニット）の並列処理フレームワークにおいて機能する。高速ソフトウェア実装のための簡易化された疑似コードが以下に列挙される。
0006524118.tif 000009
【０１２０】
上記擬似コードにおいて示されているように、各ＦＯＲループにおいてデータ依存性はないので、実行速度を上げるべく、ループアンローリング又はＭＭＸ／ＳＳＥなどの典型的なソフトウェア並列処理方法が適用され得る。
【０１２１】
このアルゴリズムはまた、行数が１に限定される場合に、１Ｄサーチに対して適用され得る。固定長ベースの１Ｄサーチの高速ソフトウェア実装のための簡易化された疑似コードが以下に列挙される。
0006524118.tif 000010
【０１２２】
１Ｄサーチ及び２Ｄサーチの両方が完了した後、（１Ｄ長さ，２Ｄサイズ（幅×高さ））の最大のものが「ウィナー（ｗｉｎｎｅｒ）」として選択される。２Ｄマッチのｌｗｉｄｔｈ（左側幅）が非ゼロである場合、前の１Ｄマッチの長さ（長さ＝ｌｅｎｇｔｈ−ｌｗｉｄｔｈ）は、前の１Ｄマッチと現在の２Ｄマッチとの間でのオーバーラップを回避すべく調整され得る。調整後に前の１Ｄマッチの長さゼロになる場合はマッチリストから排除されるべきである。
【０１２３】
次に、以前のマッチが１Ｄマッチである場合はｃｕｒｒｅｎｔ＿ｌｏｃａｔｉｏｎ＋ｌｅｎｇｔｈを、又は、以前のマッチが２Ｄマッチである場合はｃｕｒｒｅｎｔ＿ｌｏｃａｔｉｏｎ＋（ｌｗｉｄｔｈ＋ｒｗｉｄｔｈ）を使用して、開始位置が計算される。１Ｄサーチが実行される場合、何れかのこれからマッチするであろうピクセルが、その位置が２Ｄマッチによって既にカバーされている何れかの前の２Ｄマッチ領域に含まれるとき、次の１又は複数のピクセルが、以前のマッチによって符号化されなかったピクセルが見付けられるまで、最初から最後まで走査される。
【０１２４】
複数のマッチペアを取得した後、これらの符号化要素をバイナリストリームに変換すべく、エントロピーエンジンが適用され得る。いくつかの実施形態において、エントロピーエンジンは同等確率モデルを使用し得る。より良好な圧縮効率のために、先進的な適応型コンテキストモデルも同様に適用され得る。以下の擬似コードは、各マッチペアのためのエンコード手順の例である。
0006524118.tif 000011
【０１２５】
これに対応して、マッチペアについての復号化処理が、以下の擬似コードにおいて提供される。
0006524118.tif 000012
【０１２６】
複数のアンマッチの位置のピクセルのみがビットストリームへとエンコードされることに留意されたい。より正確な統計モデルを持つべく、いくつかの実施形態は、ＣＵ内の全てのピクセルを使用する代わりに、パレットテーブル導出のためのこれらのピクセル及びそれらの隣接するピクセルのみを使用してよい。
【０１２７】
インデックス又はデルタの出力を決定する複数のエンコードモードでは、エンコード結果は通常、限られた数の一意の値を含む。この所見を利用すべく、本開示の複数の実施形態は第２のデルタパレットテーブルを提供する。このデルタパレットテーブルは、全てのリテラルデータが現在のＣＵにおいて得られた後に作成され得る。当該デルタパレットテーブルは、ビットストリームで、明示的に信号で伝えられ得る。或いは、それは、符号化処理中に適応的に作成され得、これにより、テーブルはビットストリームに含まれる必要がなくなる。この選択のためにｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ａｄａｐｔｉｖｅ＿ｆｌａｇが設けられる。
【０１２８】
いくつかの実施形態において、Ｎｅｉｇｈｂｏｒｉｎｇ  Ｄｅｌｔａ  Ｐａｌｅｔｔｅ  Ｔａｂｌｅ  Ｍｅｒｇｅと呼ばれる別の先進的なスキームが提供される。適応型デルタパレット生成では、エンコーダは上部ＣＵ又は左側ＣＵからのデルタパレットを最初の開始点として使用し得る。非適応型パレット生成では、エンコーダはまた、上部ＣＵ又は左側ＣＵからのデルタパレットを使用し得、次に、上部ＣＵ、左側ＣＵ、現在のＣＵの間でＲ‐Ｄコストを比較し得る。
【０１２９】
現在のＣＵがその左側ＣＵからのデルタパレットテーブルを使用するのか、又は、その上側ＣＵからのデルタパレットテーブルを使用するのかを示すべく、ｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｆｌａｇが定義される。現在のＣＵは、同時にｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ａｄａｐｔｉｖｅ＿ｆｌａｇ＝＝０かつｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｆｌａｇ＝＝０の場合のみに、明示的に信号で伝えるデルタパレットテーブルを保持する。マージ処理では、ｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｆｌａｇがアサートされている場合、マージ候補が上側ＣＵ又は左側ＣＵの何れからのものであるのかを示すべく、別のフラグ、ｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ｍｅｒｇｅ＿ｄｉｒｅｃｔｉｏｎが定義される。
【０１３０】
ｄｅｌｔａ＿ｃｏｌｏｒ＿ｔａｂｌｅ＿ａｄａｐｔｉｖｅ＿ｆｌａｇ＝＝１の場合、以下は、適応型デルタパレット生成のためのエンコード処理の例である。デコーダ側において、デコーダがリテラルデータを受信するときはいつも、次にデコーダは複数の逆段階を使用してデルタパレットを再生成し得る。
【０１３１】
段階１：配列ｐａｌｅｔｔｅ＿ｔａｂｌｅ［］及びｐａｌｅｔｔｅ＿ｃｏｕｎｔ［］が定義される。
【０１３２】
段階２：配列ｐａｌｅｔｔｅ＿ｔａｂｌｅ［］がｐａｌｅｔｔｅ＿ｔａｂｌｅ（ｎ）＝ｎ（ｎ＝０…２５５）として初期化される。或いは、上部ＣＵ又は左側ＣＵからのｐａｌｅｔｔｅ＿ｔａｂｌｅ［］が初期値として使用され得る。
【０１３３】
段階３：配列ｐａｌｅｔｔｅ＿ｃｏｕｎｔ［］がｐａｌｅｔｔｅ＿ｃｏｕｎｔ（ｎ）＝０（ｎ＝０…２５５）として初期化される。或いは、上部ＣＵ又は左側ＣＵからのｐａｌｅｔｔｅ＿ｃｏｕｎｔ［］が初期値として使用され得る。
【０１３４】
段階４：任意のデルタ値ｃ'について、以下の複数のオペレーションが実行される。
【０１３５】
ａ）ｐａｌｅｔｔｅ＿ｔａｂｌｅ（ｎ）＝＝デルタｃ'となるように、ｎを配置する。
【０１３６】
ｂ）ｎをデルタｃ'の新たなインデックスとして使用する。
【０１３７】
ｃ）＋＋ｐａｌｅｔｔｅ＿ｃｏｕｎｔ（ｎ）。
【０１３８】
ｄ）降順になるようにｐａｌｅｔｔｅ＿ｃｏｕｎｔ［］をソーティングする。
【０１３９】
ｅ）適宜ｐａｌｅｔｔｅ＿ｔａｂｌｅ［］をソーティングする。
【０１４０】
段階５：処理は段階１に戻り、現在のＣＵ内の全てのデルタｃ'が処理されるまで当該処理が繰り返される。
【０１４１】
テキスト及びグラフィックの両方を含む任意のブロックについて、テキスト部及びグラフィックス部を分けるべくマスクフラグが使用され得る。テキスト部は上述の圧縮方法を使用して圧縮され得、グラフィックス部は別の圧縮方法によって圧縮され得る。マスクフラグによってカバーされた任意のピクセルの値はテキストレイヤによってロスレスに符号化されているので、グラフィックス部の各ピクセルは「ドントケア・ピクセル」とみなされ得る。グラフィックス部が圧縮される場合、最適な圧縮効率を得るべく、任意の値がドントケア・ピクセルに割り当てられ得る。
【０１４２】
インデックスマップ及び複数の残差がパレットテーブル導出処理中に生成される。インデックスマップをロスレスに圧縮することで、１Ｄ又は２Ｄのストリングサーチを使用して効率的な処理が可能となる。いくつかの実施形態において、１Ｄ又は２Ｄのストリングサーチは現在のＣＵ内に制限される。しかしながら、サーチウィンドウは現在のＣＵを超えて拡張され得る。マッチした距離は、水平方向及び垂直方向の動きベクトルのペアを使用してエンコードされ得る。例えば、（ＭＶｙ＝ｍａｔｃｈｅｄ＿ｄｉｓｔａｎｃｅ／ｃｕＷｉｄｔｈ，ＭＶｙ＝ｍａｔｃｈｅｄ＿ｄｉｓｔａｎｃｅ−ｃｕＷｉｄｔｈ×ＭＶｙ）。
【０１４３】
画像は、複数の局所領域において異なる空間的テクスチャ方向性（ｔｅｘｔｕｒｅ  ｏｒｉｅｎｔａｔｉｏｎ）を有し得るので、１Ｄサーチは、ｃｏｌｏｒ＿ｉｄｘ＿ｍａｐ＿ｐｒｅｄ＿ｄｉｒｅｃｔｉｏｎインジケータの値に基づいて水平方向又は垂直方向の何れかにおいて実行され得る。最適なインデックス走査方向は、Ｒ‐Ｄコストに基づいて決定され得る。図１３は、水平走査オペレーション及び垂直走査オペレーションの例を示している。図１３において、例示的な２Ｄカラーインデックスマップ１３０１が示されている。カラーインデックスマップ１３０１は、図３のカラーインデックスマップ３１１を表し得る。カラーインデックスマップ１３０１は８×８マップであるが、他のサイズのカラーインデックスマップも可能である。図１３において示されるように、水平走査１３０２又は垂直走査１３０３がカラーインデックスマップ１３０１に対して実行され得る。いくつかの実施形態において、ｄｅｒｉｖｅＭａｔｃｈＰａｉｒｓ（）と、関連付けられた複数のエントロピー符号化段階とが水平走査及び垂直走査の両方について２回実行される。次に、最終的な走査方向が、Ｒ‐Ｄコストが最小である方向として選択される。
【０１４４】
改良されたバイナリゼーション
【０１４５】
上で示されたように、パレットテーブルと、カラーインデックスマップのマッチ情報のペアとが固定長バイナリゼーションを使用してエンコードされ得る。或いは、可変長バイナリゼーションが使用され得る。例えば、パレットテーブルエンコードでは、パレットテーブルは８つの異なる色値を有してよい。故に、対応するカラーインデックスマップは、８つの異なるインデックスのみを含んでいてよい。全てのインデックス値を平等にエンコードすべく固定の３つのビンを使用する代わりに、背景ピクセルを表すべくただ１つのビンが使用され得る。例えば、背景ピクセルは０として表されてよい。次に、カラーインデックスをエンコードすべく、１０００、１００１、１０１０、１０１１、１１００、１１０１、及び１１１０などの固定長の符号語を使用して残りの７つのピクセル値が表され得る。これは、背景色が画像の最大割合を占有する場合があるという事実に基づいているので、背景色のための別個のただ１つのビットの符号語がスペースを全面的に節約し得る。このシナリオはスクリーンコンテンツではよく起こる。例として、１６×１６ＣＵを考察する。固定３ビン・バイナリゼーションを使用すると、カラーインデックスマップは３×１６×１６＝７６８個のビンを必要とする。或いは、画像の４０パーセントを占有する背景色を０としてインデックス化し、一方で他の複数の色を平等に分散させる。この場合、カラーインデックスマップは２．８×１６×１６＜７６８のビンしか必要としない。
【０１４６】
マッチペアのエンコードについて、現在のＣＵのエリア内の現在の技術制約を考慮して、マッチした距離及び長さの考えられる最大値が、そのバイナリゼーションを制限すべく使用され得る。数学的に、それぞれの場合において、マッチした距離及び長さは６４×６４＝４Ｋにもなり得る。しかしながら、これは通常一緒には起こらない。全てのマッチした位置について、マッチした距離は、Ｌとして示され得る、現在位置と、参照バッファのまさに一番目の位置（例えば、現在のＣＵの一番目の位置）との間の距離によって制限される。故に、距離のバイナリゼーションのための最大ビンは（固定長の代わりに）ｌｏｇ２（Ｌ）＋１であり、長さのバイナリゼーションのための最大ビンはｌｏｇ２（ｃｕＳｉｚｅ−Ｌ）＋１である。式中、ｃｕＳｉｚｅ＝ｃｕＷｉｄｔｈ×ｃｕＨｅｉｇｈｔである。
【０１４７】
パレットテーブル及びインデックスマップに加えて、異なる複数のバイナリゼーション方法によって残差係数符号化が大幅に改良され得る。ＨＥＶＣ  ＲＥｘｔ及びＨＥＶＣバージョンに関して、予測、変換、及び量子化後に従来の複数の方法を使用して生成された当該係数は、通常ほぼゼロの大きさを有するという所見に基づいて、可変長を使用して変換係数はバイナライズされ、非ゼロ値は通常、変換ユニットの左上隅に配置される。しかしながら、変換処理全体を回避することを可能にする、ＨＥＶＣ  ＲＥｘｔの変換スキップ符号化ツールを導入した後、残差の大きさの分布は変化している。特に、複数の別個の色でスクリーンコンテンツに対して変換スキップを可能にした場合、一般的に複数の大きな値（すなわち、「１」、「２」、又は「０」などのゼロ近傍ではない値）を持った係数が存在し、複数の非ゼロ値は、変換ユニットの内部の複数のランダムな位置で生じる場合がある。現在のＨＥＶＣ係数バイナリゼーションが使用される場合、それは非常に長い符号語をもたらす場合がある。或いは、固定長バイナリゼーションが使用され得る。当該固定長バイナリゼーションは、パレットテーブル及びインデックス符号化モードによって生成された残差係数の符号長を節約し得る。
【０１４８】
新たな予測ピクセル生成方法
【０１４９】
上述されたように、カラーインデックスマップのエンコードにおいて、１Ｄ／２Ｄストリングサーチが実行される。マッチしたインデックスが見付けられた、カラーインデックスマップ内の任意の位置において、デコーダはマッチした位置におけるピクセルを用い、それを元のピクセルから減算して残差ピクセルを生成する。この手順は、マッチした位置において、カラーインデックスによって表されるカラーパレットテーブル内の対応する色を使用すること、又は、マッチした位置において、再構成されたピクセルを使用することの何れかによって実行され得る。
【０１５０】
上述の２つの方法に基づいて予測値を生成する２つの方法が存在する。第１の方法では、任意の目標ピクセル位置について、ＲＧＢ値は、マッチした位置における主要色のインデックスによってパレットテーブルから導出され、このＲＧＢ値は目標ピクセルの予測値として使用される。しかしながら、この方法は、デコーダが、現在のＣＵの外部の複数のピクセルに対してカラーインデックス導出手順を実行することを強要し、その結果、復号化時間を増加させる。
【０１５１】
第１の方法におけるカラーインデックス導出手順を回避すべく、任意の目標ピクセル位置について、マッチした位置における再構成されたピクセル値が予測値として使用される、第２の方法が適用される。この方法では、予測ピクセルが現在のＣＵ内にある場合、再構成された値は有効ではない。しかしながら、この場合はカラーインデックスが利用可能であり、カラーパレットテーブル内のそれの対応する色が予測ピクセルとして使用され得る。
【０１５２】
現在のＣＵ内の任意のピクセルの残差値は、元の値からそれの予測値を減算することで導出され得る。次に、それは量子化され、ビットストリームにエンコードされる。現在のＣＵ内の任意のピクセルの再構成された値は、それの予測値と、量子化された残差値とを足すことで導出され得る。
【０１５３】
単一色モード
【０１５４】
単一色ＣＵは、全てのピクセル位置において一色のみを有するＣＵ、又は、そのパレットに一色しか有さず、一様な単一値のインデックスマップを有するＣＵの何れかであり得る。パレットモードで単一色ＣＵを圧縮する方法は複数ある。１つの方法、すなわち、Ｓｉｎｇｌｅ  Ｃｏｌｏｒ  Ｍｏｄｅにおいて、この単一カラーパレット情報のみがエンコードされ、ビットストリームに含まれる。カラーインデックスマップ部全体はスキップされる。これは、一様なオールゼロのインデックスマップのエンコード及び送信とは対照的である。パレットに一色しかなく、インデックスマップがない場合、デコーダ側では、現在のＣＵの全てのピクセル位置は、パレットのその色で充填されるだろう。
【０１５５】
ピクセル領域ストリングコピー
【０１５６】
上述されたように、カラーインデックスマップ領域において１Ｄ／２Ｄストリングコピーが適用される。１Ｄ／２Ｄストリングコピーはまたピクセル領域においても適用され得る。インデックスマップ領域１Ｄ／２Ｄストリングコピーと比較して、ピクセル領域における１Ｄ／２Ｄストリングコピーはいくつかの変更を含む。それらの変更は以下のようなものである。
【０１５７】
１．パレットテーブル及びインデックスマップの生成処理は必要ではなく、スキップされ得る。その代わりに、インデックス領域に対する全てのパレットテーブル生成、インデックスマップ生成、及び１Ｄ／２Ｄストリングサーチは依然として実行されるが、パレットテーブルはビットストリームに書き込まれない。符号化されたマップは、１Ｄストリングマッチの長さ、又は、２Ｄストリングマッチの幅及び高さに基づいて生成される。符号化されたマップは、ピクセル位置が以前のマッチによってカバーされているかどうかを示している。次の開始位置は、以前のマッチによってカバーされていない最初の位置である。
【０１５８】
２．アンマッチデータを符号化する場合、（カラーインデックス値の代わりに）そのＲＧＢ値がビットストリームに書き込まれる。アンマッチデータを符号化する場合、シンタックステーブルにおいてこのＲＧＢ値の前に１ビットのフラグが追加される、ピクセルインデックス符号化方法がまた適用され得る。このＲＧＢ値が初めて現れた場合、当該フラグは１に設定され、このＲＧＢ値自体がビットストリームに符号化される。このＲＧＢ値はその後ルックアップテーブルに追加される。このＲＧＢ値が再度現れた場合、フラグは０に設定され、このＲＧＢ値の代わりのルックアップテーブルのインデックス値が符号化される。
【０１５９】
３．予測ピクセル生成方法が単一色モードのＯｐｔｉｏｎ２を使用する（予測ピクセル位置からの再構成されたピクセル値は予測値として使用される）。
【０１６０】
４．単一色ＣＵについて、単一色モードのＯｐｔｉｏｎ１又はＯｐｔｉｏｎ２の何れかが選択され得る。Ｏｐｔｉｏｎ１が選択された場合、主要色のＲＧＢ値はビットストリームのパレットテーブル部に書き込まれる。Ｏｐｔｉｏｎ２が選択された場合、１Ｄサーチにおいて上側ラインが使用されず、現在のＣＵについて２Ｄオプションが許容されなかったとき、主要色のＲＧＢ値はビットストリームのパレットテーブル部に書き込まれる。
【０１６１】
通常、２Ｄストリングコピーはフレキシブルなアルゴリズムであり、それは、マッチブロックを見付けるべく、異なる幅及び高さの複数のブロックに対して複数のオペレーションを実行し得る。２ＤストリングコピーがＣＵの幅及び高さに制限される場合、２Ｄストリングコピーは固定幅／高さブロックコピーになる。イントラブロックコピー（ＩＢＣ）は、固定幅／高さブロックに対して作用する２Ｄストリングコピーのこの特定の場合と実質的に同一である。固定幅／高さの２Ｄストリングコピーにおいて、残差が同様にエンコードされる。これは、また、ＩＢＣによって使用される残差符号化方法と実質的に同一である。
【０１６２】
混合コンテンツのための適応型クロマサンプリング
【０１６３】
上述の複数の実施形態は、ＨＥＶＣ／ＨＥＶＣ‐ＲＥｘｔのフレームワーク下での高効率スクリーンコンテンツ符号化のための様々な技術を提供する。実際には、（テキスト、グラフィックなどの）純粋なスクリーンコンテンツ、又は、純粋な自然な映像に加えて、コンピュータで生成されたスクリーン材料とカメラによって取り込まれた自然な映像との両方を含むコンテンツもまた存在する。これは混合コンテンツと称される。現在、混合コンテンツは、４：４：４クロマサンプリングで処理される。しかしながら、そのような混合コンテンツ内の組み込まれた、カメラによって取り込まれた自然な映像の部分については、知覚的にロスレスな品質を提供するのに４：２：０のクロマサンプリングで十分な場合がある。これは、人間の視覚が、複数のルマ成分からの空間変化と比較して、複数のクロマ成分における空間変化に対してより敏感ではないという事実に起因する。よって、再構成された同一の視覚品質を維持しつつ、顕著なビットレート低減を達成すべく、通常、複数のクロマ成分（例えば、一般的な４：２：０のビデオフォーマット）に対してサブサンプリングが実行される。
【０１６４】
本開示の複数の実施形態は、フラグ、ｅｎａｂｌｅ＿ｃｈｒｏｍａ＿ｓｕｂｓａｍｐｌｉｎｇを提供する。当該フラグは、再帰的にＣＵレベルで定義され、信号で伝えられる。各ＣＵについて、エンコーダは、レート歪みコストに応じて、それが４：２：０を使用して符号化されているところなのか、又は、４：４：４を使用して符号化されているところなのかを決定する。図１４Ａおよび図１４Ｂは４：２：０及び４：４：４のクロマサンプリングフォーマットの例を示している。図１４Ａは４：２：０のサンプリングの例を示しており、図１４Ｂは、４：４：４のサンプリングの例を示している。
【０１６５】
エンコーダ側において、各ＣＵについて、入力が図１４Ｂに示された４：４：４のソースであると仮定すると、レート歪みコストは、ｅｎａｂｌｅ＿ｃｈｒｏｍａ＿ｓｕｂｓａｍｐｌｉｎｇ＝０又はＦＡＬＳＥの４：４：４エンコード手順を使用して直接導出される。次に、当該処理は、複数の４：４：４サンプルを４：２：０にサブサンプリングして、それのビット消費が導出される。歪み測定のために、再構成された４：２：０フォーマットは、（例えば、誤差二乗和（ＳＳＥ）又は絶対差和（ＳＡＤ）を使用して）補間されて４：４：４フォーマットに戻される。ビット消費と共に、レート歪みコストは、ＣＵを４：２：０の空間でエンコードする場合に導出され、それを、ＣＵを４：４：４でエンコードする場合のコストと比較する。次に、より低いレート歪みコストをもたらすエンコード方法の方が、最終的なエンコード用に選択される。
【０１６６】
図１５は４：４：４から４：２：０への、及びその逆の補間処理の例を示している。通常、ビデオカラーサンプリングフォーマット変換処理は、多数の補間フィルタを必要とする場合がある。実装の複雑性を低減すべく、ＨＥＶＣ補間フィルタ（すなわち、ＤＣＴ‐ＩＦ）が利用されてよい。図１５に示されるように、四角形のボックスは、元の４：４：４のサンプルを表している。４：４：４から４：２：０へと、（円で表された）複数のハーフペルピクセルは、複数のクロマ成分について垂直方向にＤＣＴ‐ＩＦを使用して補間される。図１５には、ダイヤモンドで表された複数のクォーターペル位置もまた示されている。グレーでシェーディングされた円は、４：２：０のサンプルを形成すべく選択される。４：２：０から４：４：４への補間では、処理は複数のクロマ成分のグレーの円から開始し、全ての円を得るべく、複数のハーフペル位置が水平方向に補間され、次に、複数の四角形のボックスは、垂直方向にＤＣＴ‐ＩＦを使用して補間される。補間された複数の四角形のボックスの全てが、再構成された４：４：４の信号を形成すべく選択される。
【０１６７】
エンコーダ制御
【０１６８】
上述したように、エンコーダにおける低レベル処理を制御すべく、複数のフラグが設けられている。例えば、ｅｎａｂｌｅ＿ｐａｃｋｅｄ＿ｃｏｍｐｏｎｅｎｔ＿ｆｌａｇは、処理のエンコードのために、現在のＣＵがそのパックド・フォーマットを使用するのか、又は、従来のプラナーフォーマットを使用するのかを示すべく使用される。パックド・フォーマットを有効にするかどうかの決定は、エンコーダにおいて計算されたＲ‐Ｄコストに依存し得る。いくつかのエンコーダの実装において、決定のためにＣＵのヒストグラムを分析すること、及び、最良の閾値を見付けることによって、低複雑性の解決法が達成され得る。
【０１６９】
パレットテーブルのサイズは、複雑性に直接影響を及ぼす。複雑性と符号化効率との間のトレードオフを制御すべく、パラメータ、ｍａｘＣｏｌｏｒＮｕｍが導入される。最も単純な手段は、最も低いＲ‐Ｄコストをもたらす選択肢を選ぶことである。インデックスマップエンコード方向は、Ｒ‐Ｄ最適化によって、又は局所空間方向性（例えば、Ｓｏｂｅｌオペレータを使用するエッジ方向推定）を使用することによって決定され得る。
【０１７０】
上述の実施形態のうちのいくつかは、全てのＣＴＵ又はＣＵ内の処理を限定してよい。実際には、この制約は緩和され得る。例えば、カラーインデックスマップ処理では、図１６に示されるように、上側ＣＵ又は左側ＣＵからのラインバッファが使用され得る。図１６は、上側インデックスラインバッファ又は左側インデックスラインバッファを使用するカラーインデックスマップ処理の例を示している。上側バッファ及び左側バッファがあれば、サーチは、更に符号化効率を向上させるべく拡張され得る。上側バッファ及び左側バッファが、複数の隣接ＣＵからの再構成された複数のピクセルを使用して形成されたと仮定すると、これらのピクセル（及びそれらの対応するインデックス）は、現在のＣＵインデックスマップの処理前に参照として利用可能である。例えば、図１６に示されるように、再度の順序付けの後、現在のＣＵインデックスマップ１６００は、１４、１４、１４…１、２、１（１Ｄストリングとして提示される）であり得る。ラインバッファの参照がなければ、一番目の「１４」がアンマッチペアとして符号化されるであろう。しかしながら、隣接するラインバッファがあれば、一番目の「１４」は、上側インデックスラインバッファ又は左側インデックスラインバッファの何れかの「１４」とマッチする。従って、ストリングコピーがまさに一番目のピクセルから開始し得る。
【０１７１】
デコーダ・シンタックス
【０１７２】
以下で提供される情報は、図２に示される受信機２００の複数の復号化オペレーションを説明すべく使用され得る。以下に示されるシンタックスはＨＥＶＣ  ＲＥｘｔの委員会草案と連携している。
【０１７３】
７．３．５．８  符号化ユニットシンタックス
0006524118.tif 000013
【０１７４】
図１７は、本開示に係るスクリーンコンテンツ符号化のための方法を示している。図１７に示された方法１７００は上述の主要概念に基づいている。方法１７００は、図１の送信機１００によって実行されてよい。しかしながら、方法１７００はまた、任意の他の適切なデバイス又はシステムでも使用され得る。
【０１７５】
オペレーション１７０１において、デバイスが、現在のＣＵに基づいてカラーインデックスマップを導出する。オペレーション１７０３において、デバイスがカラーインデックスマップをエンコードする。デバイスは、第１の符号化技術を使用してカラーインデックスマップの少なくとも一部をエンコードする。第１のインジケータが、第１の符号化技術の有意距離を示す。例えば、いくつかの実施形態において、第１のインジケータの第１の値は、１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ符号化技術を示し、第１のインジケータの第２の値は、現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ符号化技術を示している。
【０１７６】
デバイスが第１の符号化技術を使用してエンコードするカラーインデックスマップの一部は、複数のインデックスからなる第１ストリングであって、現在のＣＵにおいて、複数のインデックスからなる当該第１ストリングの真上の複数のインデックスからなるマッチする第２ストリングを有する、複数のインデックスからなる第１ストリング、又は、複数のインデックスからなる第３ストリングであって、現在のＣＵにおいて、全てが、複数のインデックスからなる当該第３ストリングの中の第１のインデックスのすぐ左の参照インデックス値と同じ値を有する複数のインデックスからなる第３ストリングの何れかである。
【０１７７】
オペレーション１７０５において、受信機への送信のために、デバイスが、エンコードされたカラーインデックスマップと第１のインジケータとを組み合わせる。
【０１７８】
図１７は、スクリーンコンテンツ符号化のための方法１７００の一例を示しているが、様々な変更が図１７に対して成されてよい。例えば、一連の段階として示されているものの、図１７に示された様々な段階は、オーバーラップすること、並列に起こること、異なる順番で起こること、又は、複数回起こることが可能である。更に、いくつかの段階は組み合わせられる、又は削除されることが可能であり、更なる複数の段階が特定の必要性に従って追加され得る。
【０１７９】
図１８は、本開示に係るスクリーンコンテンツ復号化のための方法を示している。図１８に示された方法１８００は、上述の主要概念に基づいている。方法１８００は、図２の受信機２００によって実行されてよい。しかしながら、方法１８００はまた、任意の他の適切なデバイス又はシステムでも使用され得る。
【０１８０】
オペレーション１８０１において、デバイスが送信機からの圧縮ビデオビットストリームを受信する。ビデオビットストリームは、エンコードされたカラーインデックスマップを含む。デバイスはまた、第１のインジケータも受信する。第１のインジケータは、第１の復号化技術の有意距離を示す。例えば、いくつかの実施形態において、第１のインジケータの第１の値は、１に等しい有意距離を使用するＩｎｄｅｘＭｏｄｅ復号化技術を示し、第１のインジケータの第２の値は、現在のＣＵのブロック幅に等しい有意距離を使用するＣｏｐｙＡｂｏｖｅ復号化技術を示す。
【０１８１】
オペレーション１８０３において、デバイスが、第１の復号化技術を使用してカラーインデックスマップの少なくとも一部を復号化する。ここで、第１のインジケータは、第１の復号化技術の有意距離を示す。その後、オペレーション１８０５において、デバイスが、カラーインデックスマップに基づいて、現在のＣＵに関連付けられた複数のピクセルを再構成する。
【０１８２】
図１８はスクリーンコンテンツ復号化のための方法１８００の一例を示しているが、様々な変更が図１８に対して成されてよい。例えば、一連の段階として示されているものの、図１８に示された様々な段階は、オーバーラップすること、並列に起こること、異なる順番で起こること、又は複数回起こることが可能である。更に、いくつかの段階は組み合わせられる、又は削除されることが可能であり、更なる複数の段階が特定の必要性に従って追加され得る。
【０１８３】
いくつかの実施形態において、デバイスのうちの１又は複数のものの機能又は処理の一部又は全ては、コンピュータ可読プログラムコードから形成され、かつコンピュータ可読媒体において具体化されたコンピュータプログラムによって実施又はサポートされる。「コンピュータ可読プログラムコード」という語句は、ソースコード、オブジェクトコード、及び実行コードを含む、任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という語句は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ、コンパクトディスク（ＣＤ）デジタルビデオディスク（ＤＶＤ）、又は任意の他のタイプのメモリなどの、コンピュータによってアクセス可能な任意のタイプの媒体を含む。
【０１８４】
本特許文献全体を通して使用された特定の単語及び語句の定義を記載することは有利であろう。「含む」及び「備える」という用語、並びにこれらの派生語は、限定することのない含有を意味する。「又は」という用語は両立的であり、及び／又はを意味している。「〜に関連付けられた」及び「それに関連付けられた」という語句、並びにこれらの派生語は、〜内に含まれること、〜と相互接続すること、含有すること、〜内に含有されること、〜に若しくは〜と接続すること、〜に若しくは〜と連結すること、〜と通信可能なこと、〜と協同すること、インターリーブすること、並置すること、〜に近接していること、〜に若しくは〜と結合されていること、有すること、〜の特性を有すること、又は同様のものを含むことを意味している。
【０１８５】
本開示は、特定の実施形態及び概して関連付けられた方法を説明してきたが、これらの実施形態及び方法の修正及び並べ替えが当業者には明らかであろう。従って、例示的実施形態に係る上記の説明は、本開示を定義も制限もしない。以下の特許請求の範囲によって定義される、本開示の主旨及び範囲から逸脱することなく、他の変更、置換、及び修正がまた可能である。
【図１】
0006524118.tif 000014
【図２】
0006524118.tif 000015
【図３】
0006524118.tif 000016
【図４】
0006524118.tif 000017
【図５Ａ】
0006524118.tif 000018
【図５Ｂ】
0006524118.tif 000019
【図６】
0006524118.tif 000020
【図７】
0006524118.tif 000021
【図８】
0006524118.tif 000022
【図９】
0006524118.tif 000023
【図１０】
0006524118.tif 000024
【図１１】
0006524118.tif 000025
【図１２】
0006524118.tif 000026
【図１３】
0006524118.tif 000027
【図１４Ａ】
0006524118.tif 000028
【図１４Ｂ】
0006524118.tif 000029
【図１５】
0006524118.tif 000030
【図１６】
0006524118.tif 000031
【図１７】
0006524118.tif 000032
【図１８】
0006524118.tif 000033