(57)【要約】      （修正有）【課題】コピーモードを用いたパレット符号化のエスケープ画素である予測器に関連した問題を克服する方法を提供する。【解決手段】コピーアバッヴモードにおける予測器がエスケープ画素である場合、現在のエスケープ画素のエスケープ値は、送信され、予測器と関連したエスケープ画素が送信されたエスケープ値を用いて再構築されることができるようになる。エンコーダ側に制限をかけられ、コピーアバッヴモードでは、現在の画素の上方に配置された上方画素がエスケープ画素のとき、コピーアバッヴランは終了し、または、コピーアバッヴモードは選択されない。また、画素値の直接コピーが用いられる。予測器がエスケープ画素である場合、エスケープインデックスとエスケープ値、または予測器の再構築された画素値は、再構築された現在の画素に直接コピーされる。【選択図】図６Ｂ
2019198104.tif 000002
【特許請求の範囲】
【請求項１】
画像用のパレット予測を用いたパレットモード符号化の方法であって、
前記方法は、
現在のブロックと関連した入力データを受信するステップ、
１つ以上の現在の画素用に現在の符号化モードを決定するステップ、
任意の予測器がエスケープ画素の場合、前記予測器を所定のパレットインデックスに割り当てるステップ、および
前記１つ以上の予測器を用いて、前記１つ以上の現在の画素を符号化または復号化するステップ、
を含む方法。
【請求項２】
前記所定のパレットインデックスは、パレットインデックス０に対応する請求項１に記載の方法。
【請求項３】
前記現在の符号化モードがコピーアバッヴモードの場合、前記１つ以上の予測器は、前記１つ以上の現在の画素の上方に配置された１つ以上の上方画素に対応する請求項１に記載の方法。
【請求項４】
前記現在の符号化モードがコピーインデックスモードの場合、前記１つ以上の予測器は、主要の現在の画素に対応する請求項１に記載の方法。
【請求項５】
前記主要の現在の画素は、エスケープインデックスとして符号化され、１つ以上の以下の現在の画素は、少なくとも１つの以下の現在の画素が存在する場合、エンコーダ側で所定のパレットインデックスとして符号化される請求項４に記載の方法。
【請求項６】
前記所定のパレットインデックスとして符号化された、以下の現在の画素の数を示すラン値は、エンコーダ側でシグナリングされる請求項５に記載の方法。
【請求項７】
前記エスケープ画素に対応する１つ以上のエスケープ値は、シグナリングされる請求項４に記載の方法。
【請求項８】
解析された前記主要の現在の画素がエスケープインデックスの場合、所定のパレットインデックスに対応した画素インデックスを有する以下の現在の画素の数は、デコーダ側で再構築され、前記以下の現在の画素の数は、ビットストリームから解析されたラン値によって示される請求項４に記載の方法。
【請求項９】
前記主要の現在の画素は、エスケープインデックスとして符号化され、１つ以上の以下の現在の画素は、エンコーダ側でエスケープインデックスとして符号化される請求項４に記載の方法。
【請求項１０】
ラン値の第１の数は、前記エスケープインデックスとして符号化された以下の現在の画素の数は、エンコーダ側でシグナリングされる請求項９に記載の方法。
【請求項１１】
前記１つ以上の現在の画素の１つ、足す、ラン値の第１の数、に対応する各エスケープ画素の、各カラーコンポーネントの１つのエスケープ値がシグナリングされる請求項１０に記載の方法。
【請求項１２】
解析された前記主要の現在の画素がエスケープインデックスの場合、エスケープインデックスに対応した画素インデックスを有する以下の現在の画素の数は、デコーダ側で再構築され、前記以下の現在の画素の数は、ビットストリームから解析されたラン値の第１の数によって示される請求項４に記載の方法。
【請求項１３】
前記１つ以上の現在の画素の１つ、足す、ラン値の第１の数、に対応する各エスケープ画素の、各カラーコンポーネントの１つのエスケープ値が解析される請求項１２に記載の方法。
【請求項１４】
前記現在の符号化モードがコピーインデックスモードに対応する場合、
調整された最大パレットインデックス（ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘ）は、符号化ユニット（ＣＵ）の第１のサンプルを除く最大のパレットインデックス引く１（即ち、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ - １）に等しくなるように固定される請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１４年７月７日に出願された米国仮出願番号第６２／０２１，２８９号、２０１４年７月２２日に出願された米国仮出願番号第６２／０２７，３３４号、２０１４年７月３０日に出願された米国仮出願番号第６２／０３０，７１４号、２０１４年８月１１日に出願された米国仮出願番号第６２／０３５，６２５号、２０１４年８月２１日に出願された米国仮出願番号第６２／０４０，０２０号、２０１４年８月２１日に出願された米国仮出願番号第６２／０４０，０２２号を基礎とする優先権を主張するものであり、その開示内容は参照することにより本明細書に組み入れられる。
【０００２】
本発明は、ビデオデータのパレット符号化に関し、特に、予測器がエスケープ画素に対応するとき、予測器のコピーモードに関連する問題を解決する各種の技術に関するものである。
【背景技術】
【０００３】
高効率ビデオ符号化（ＨＥＶＣ）は、近年発展している新しい符号化基準である。高効率ビデオ符号化（ＨＥＶＣ）システムにおいて、Ｈ.２６４/ＡＶＣの固定サイズのマクロブロックは、符号化ユニット（ＣＵ）というフレキシブルなブロックにより代替される。ＣＵ中の画素は、同じ符号化パラメータを共有して、符号化効率を改善する。ＣＵは最大ＣＵ（ＬＣＵ）から始まり、ＨＥＶＣの符号化ツリーユニット（ＣＴＵ）とも称される。符号化ユニットの概念に加え、予測単位（ＰＵ）の概念もＨＥＶＣに導入される。一旦、ＣＵ階層ツリーの分割が行われると、各リーフＣＵは、予測タイプ、および、ＰＵ分割にしたがって、さらに、１つ以上の予測単位（ＰＵ）に分割される。スクリーンコンテント符号化のいくつかの符号化ツールが発展している。本発明に関連するパレット符号化ツールを、以下に簡潔に記載する。
【０００４】
パレット符号化
【０００５】
ＨＥＶＣスクリーンコンテンツ符号化（ＳＣＣ）の発展期間中、いくつかの提案が開示されて、パレットベース符号化に取り組んでいる。例えば、パレット予測と共有技術が、JCTVC-N0247 (Guo et al.,“RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 14th Meeting: Vienna, AT, 25 July - 2 Aug. 2013 Document: JCTVC-N0247)（非特許文献１）およびJCTVC-O0218 (Guo et al.,“Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013, Document: JCTVC-O0218)（非特許文献２）で開示される。JCTVC-N0247（非特許文献１）とJCTVC-O0218（非特許文献２）において、各カラーコンポーネントのパレットが構成、および、送信される。パレットが、その左に隣接するＣＵから予測（または、共有）されて、ビットレートを低下させる。その後、所定ブロック中の全画素が、それらのパレットインデックスを用いて符号化される。JCTVC-N0247 による符号化プロセスの例は以下のようである。
１．パレットの送信:  まず、カラーインデックス表 （パレット表とも称される）サイズが、パレット素子（即ち、カラー値）により送信される。
２．画素値の送信:  ＣＵ中の画素がラスター走査順序で符号化される。１つ以上の画素の各群において、まず、ランベース（ｒｕｎ−ｂａｓｅ）モードのフラグが送信されて、“コピーインデックスモード(copy index mode)”または“コピーアバッヴモード(copy above mode)”が用いられるかどうかを示す。
２．１  “コピーインデックスモード”:  このランベースモードにおいて、まず、各自パレットインデックスが、ｒｕｎ値を表す各自ｒｕｎ値 “palette_run” （例えば、Ｍ）によりシグナリングされる。ある文献では、“コピーインデックスモード”は、“インデックス”モードとも称される。本発明において、用語“palette_run”は、“pixel_run”、または、単に “run”とも称される。ｒｕｎ値は、合計Ｍ個の連続したサンプルが、すべて、ｒｕｎモードを用いて符号化されることを示す。ビットストリーム中でシグナリングされるとき、同じパレットインデックスを有するので、現在の位置、および、以下のＭ位置に送信されるこれ以上の情報が必要ない。パレットインデックス （例えば、ｉ）も、全ての３カラーコンポーネントにより共有され、それは、YUV 色空間の場合において、再構築された画素値が (Y, U, V) = (paletteY[i], paletteU[i], paletteV[i])であることを意味する。
２．２  “モード”:  コピーアバッヴモードにおいて、各自の値 “palette_run”（例えば、Ｎ）が送信されて、現在の画素および以下のＮ画素において、パレットインデックスが、列中の対応するパレットインデックスと同じであることを示す。
３．剰余の送信:  ステージ２で送信されるパレットインデックスが画素値に戻されて、予測として用いられる。ＨＥＶＣ剰余符号化を用いて、剰余情報が送信され、再構築のために、予測に加えられる。
【０００６】
コピーインデックスモード、および、コピーアバッヴモード両方は、この発明において、“コピーモード”と称される。コピーインデックスモードでは、コピーインデックス符号化画素の主要画素のパレットインデックスが送信される。コピーインデックス符号化画素の数も送信される。デコーダ側では、下方の画素の符号化モード（即ち、コピーインデックスモード）を決定した後、主要画素のパレットインデックスの情報、および、コピーインデックス符号化画素の数のみが、コピーインデックス符号化画素の再構築に必要とされる。主要画素に続く画素は、予測器（即ち、左の画素）から“複製”することにより再構築される。画素値は、パレット表を用いて再構築される。コピーアバッヴモードにおいて、上方画素がすでに再構築されているので、送信される必要がある予測器に関連するパレットインデックス（即ち、上方画素）がない。現在の画素は、上方画素から“複製”される。
【０００７】
JCTVC-N0247において、各コンポーネントのパレットが構成、および、送信される。パレットが、その左に隣接するＣＵから予測（または、共有）されて、ビットレートを低下させる。JCTVC-O0218において、パレットの各構成要素は、トリプレットであり、３カラーコンポーネントの特定の組み合わせを示す。また、ＣＵをまたぐパレットの予測符号化（ｐｒｅｄｉｃｔｉｖｅ ｃｏｄｉｎｇ）が除去される。
【０００８】
JCTVC-O0218に類似したもう１つのパレット符号化技術も開示されている。左のＣＵから全てのパレット表を予測する代わりに、個々のパレットのパレットカラーエントリが上記ＣＵまたは左のＣＵの正確に対応するパレットカラーエントリから予測される。
【０００９】
画素パレットインデックス値の送信において、予測符号化方法は、JCTVC-O0182 (Guo et al., “AHG8: Major-color-based screen content coding”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013, Document: JCTVC-O0182)に開示されたインデックスで用いられる。３つのタイプのラインモード、即ち、水平モード、垂直モード、およびノーマルモードが各インデックスラインの符号化に用いられる。水平モードでは、同じラインの全てのインデックスは、同じ値を有する。その値が上方画素ラインの第１の画素と同じである場合、ラインモードのシグナリングビットのみが送信される。垂直モードでは、現在のインデックスラインが上記インデックスラインと同じであることを示している。従って、ラインモードのシグナリングビットのみが送信される。ノーマルモードでは、ラインのインデックスは、個別に予測される。各インデックスの位置では、左隣接、または上記隣接が予測器として用いられ、予測シンボルがデコーダに送信される。
【００１０】
また、画素は、主要色の画素（パレットカラーを指しているパレットインデックス）およびJCTVC-O0182に基づくエスケープ画素に分類される。主要色の画素において、画素値は、主要なカラーインデックス（即ち、パレットインデックス）およびデコーダ側でパレット表に基づいて再構築される。エスケープ画素では、画素値は、ビットストリーム中でさらにシグナリングされる。
【００１１】
パレット表シグナリング
【００１２】
スクリーンコンテンツ符号化（ＳＣＣ）基準のリファレンスソフトウェアでは、SCM-2.0 (Joshi et al., Screen content coding test model 2 (SCM 2), Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, July 2014, Document No.: JCTVC-R1014), 向上したパレットスキームが、JCTVC-R0348 (Onno, et al., Suggested combined software and text for run-based palette mode, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, July 2014, Document No.: JCTVC-R0348)に整合される。前のパレット符号化ＣＵのパレット表は、現在のパレット表の符号化用に予測器として用いられる。パレット表の符号化では、現在のパレット表は、前の符号化されたパレット表（パレット予測器）のどのパレットカラーを再利用するかを選ぶことによって、または新しいパレットカラーを送信することによってシグナリングされる。現在のパレットサイズは、予測されたパレットサイズ（即ち、numPredPreviousPalette）に送信されたパレットサイズ（即ち、num_signaled_palette_entries）を加えたサイズとしてセットされる。予測されたパレットは、前の再構築されたパレット符号化ＣＵから導出されたパレットである。現在のＣＵをパレットモードとして符号化するとき、予測されたパレットを用いた予測されていないこれらのパレットカラーは、ビットストリーム（即ち、シグナリングされたエントリ）に直接送信される。
【００１３】
パレット更新の例が以下に示される。この実施例では、現在のＣＵは、６に等しいパレットサイズを有するパレットモードとして符号化される。６つの主要色の中の３つは、パレット予測器から予測され（numPredPreviousPalette = 3）、もう３つは、ビットストリーム（即ち、シグナリングされたエントリ）に直接送信される。送信された３色は、以下に示される例示的構文を用いてシグナリングされることができる。
num_signaled_palette_entries  = 3
for(cIdx=0; cIdx＜3; cIdx++ )// signal colors for different components
for(i=0; i＜num_signaled_palette_entries; i++ )
palette_entries[cIdx][numPredPreviousPalette+i]
【００１４】
この実施例では、パレットサイズは６つであるため、０〜５のパレットインデックスが用いられ、パレットカラー表にエントリする主要色を示す。３つの予測されたパレットカラーは、インデックス０〜２で表されている。このように、３つの新しいパレットエントリは、インデックス３〜５用に送信される。
【００１５】
ＳＣＭ−２．０では、ウェーブフロント並列処理（ｗａｖｅｆｒｏｎｔ ｐａｒａｌｌｅｌ ｐｒｏｃｅｓｓｉｎｇ； ＷＰＰ）が適用されていない場合、パレット予測表は、各スライスの初め、または各タイルの初めで初期化（リセット）される。ＷＰＰが適用される場合、最後の符号化パレット表は、各スライスの初め、または各タイルの初めで初期化（リセット）されるだけでなく、各ＣＴＵ列の初めでも初期化（リセット）される。
【００１６】
パレット予測の符号化
【００１７】
JCTVC-O0218 および JCTVC-N0247では、パレット予測のフラグは、最後に符号化されたパレットＣＵからパレットを予測するように用いられる。１ビットが各エントリに用いられる。パレットエントリのパレット予測のフラグが１の場合、このパレットは、現在のＣＵ用に再利用される。
【００１８】
JCTVC-R0348では、符号語（ｃｏｄｅｗｏｒｄ）の異なる２値化方法が開示され、各予測されたパレット間のゼロラン（ｚｅｒｏ−ｒｕｎｓ）が符号化される。もう１つの実施例が図１に示される。符号語Ｎは、次のパレットの１である再利用フラグの前にＮ個のゼロがあることを意味している。例えば、“０”は、次のパレットが再利用されることを意味する（即ち、現在および次の再利用フラグ１の間に０はない）。“１”は、第２の次のパレットが再利用されることを意味する。１０のパレットを有するパレット予測表における、ゼロランベースのパレット予測のもう１つの実施例が図１に示される。０、２、３、５、および８に対応するパレット表のパレットエントリは、現在のＣＵによって再利用される。予測されたパレットのゼロランはそれぞれ{0, 1, 0, 1, 2}である。
【００１９】
２値化方法は、order-K (EG-K code)を有するExponential-Golomb符号、order-K (EG-K code)を有するtruncated Exponential-Golomb符号、またはN-bit Truncated Unary code + EG-K codeであることができる。Ｋは、０、１、２、または３であることができる。Ｎは、０、１、２、または３であることができる。
【００２０】
最後に使用されたパレットをシグナリングするために、エンドコード（ＥＣ）を符号語内に挿入する方法が、JCTVC-R0228 (Seregin, et al., Non-SCCE3: Run-length coding for palette predictor, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18th Meeting: Sapporo, JP, July 2014, Document No.: JCTVC-R0228) で開示される。ＥＣ以上のゼロランは、１によって増加される。デコーダ側では、復号されたゼロランがＥＣと等しい場合、他に予測されたパレットがないことを意味する。復号されたゼロランがＥＣより大きい場合、実際のゼロランは、復号されたゼロラン引く１である。例えば、ＥＣは、１にセットされることができ、１以上の任意のゼロランは、１によって増加される。従って、図１の実施例において、符号化または復号化された符号語は、図２に示されるように{0, 2, 0, 2, 3, 1}となる。
【００２１】
現存するパレット符号化では、予測器がエスケープ画素のとき、デコーダは問題が発生する可能性がある。例えば、コピーアバッヴモードが選ばれて、上方画素がエスケープ画素である場合、エスケープ画素の下方にある現在の画素は、正確に再構築されない可能性がある。現存する、コピーアバッヴモードに従って、ラン値（ｒｕｎ ｖａｌｕｅ）のみがシグナリングされる。エスケープインデックスは、上記エスケープ画素の下方にある現在の画素に割り当てられることができる。しかしながら、エスケープ値が送信されないため、上記エスケープ画素の下方にある現在の画素は、再構築されることができない。従って、エスケープ画素である予測器と関連する問題を克服する方法を開発することが必要である。
【発明の概要】
【課題を解決するための手段】
【００２２】
コピーモードを用いたパレット符号化のエスケープ画素である予測器に関連した問題を克服する方法が開示される。本発明の１つの実施形態に基づいた、コピーアバッヴモードにおける予測器がエスケープ画素である場合、現在のエスケープ画素のエスケープ値は、送信され、予測器と関連したエスケープ画素が送信されたエスケープ値を用いて再構築されることができるようになる。エスケープ画素の各コンポーネントのエスケープ値は、送信されることができる。コピーアバッヴモードで予測されている連続した画素の数に対応したラン値は、シグナリング、導出、または推定されることができる。ラン値がシグナリングされた場合、エスケープ画素用にエスケープ値の前にシグナリングされることができる。現在の画素の主要画素の上に配置された上方画素がエスケープ画素の場合、ラン値は、ゼロになるように制限される。現在の符号化モードがコピーインデックスモードに対応し、シグナリングされたインデックスがエスケープインデックスの場合、コピーインデックスモードで予測されている連続した画素の数に対応したラン値は、シグナリング、導出、または推定されることができる。ラン値がシグナリングされた場合、エスケープ画素用にエスケープ値の前にシグナリングされることができる。連続した画素は、エスケープ画素として符号化される。連続したエスケープ画素のパレットインデックスは、エスケープインデックスとして符号化され、エスケープ画素のエスケープ値は送信される。調整された最大パレットインデックス（ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘ）は、符号化ユニット（ＣＵ）の第１のサンプル以外、最大パレットインデックス引く１に等しくなるように固定される（即ち、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ - １）。対応するデコーダ側の実施形態も開示される。
【００２３】
もう１つの実施形態では、エスケープ画素である予測器と関連した問題は、エンコーダ側に制限をかけることによって解決される。コピーアバッヴモードでは、現在の画素の上方に配置された上方画素がエスケープ画素のとき、コピーアバッヴランは終了し、コピーアバッヴモードは、現在の画素に使用不可能として指定されるか、またはコピーアバッヴモードに選択されない。従って、エスケープ画素である予測器と関連した問題は生じなくなる。
【００２４】
またもう１つの実施形態では、エスケープ画素である予測器と関連した問題は、エスケープ値、エスケープインデックスとエスケープ値の両方、または予測器がエスケープ画素であるときに、予測器の再構築された画素値を直接コピーすることによって解決される。例えば、コピーアバッヴモードでは、現在の画素の上方に配置された上方画素がエスケープ画素の場合、現在の画素は、エスケープインデックスとエスケープ値、または上方画素の再構築された画素値をコピーすることによって再構築されることができる。
【００２５】
またもう１つの実施形態では、エスケープ画素である予測器と関連した問題は、パレットインデックス０など、所定のパレットインデックスによって予測器と置き換えることによって解決される。例えば、コピーアバッヴモードでは、エスケープ画素である任意の上方画素は、所定のインデックスとして処理される。言い換えれば、現在の画素が所定のインデックスであり、上方画素がエスケープ画素である場合、コピーアバッヴランは続く。コピーインデックスモードのケースでは、Ｎの連続した画素がエスケープ画素の場合、主要画素は、パレットインデックス（即ち、エスケープインデックス）および画素値（即ち、エスケープ値）を送信することによって符号化される。全ての以下の画素は所定のインデックスとして符号化される。
【図面の簡単な説明】
【００２６】
【図１】０、２、３、５、および８に対応するパレット表のエントリが、現在のＣＵによって再利用され、予測されたパレットのゼロランはそれぞれ{0, 1, 0, 1, 2}である、例示的なゼロランベースのパレット予測を示している。
【図２】“１”に対応するエンドコード（ＥＣ）が、再利用フラグの符号化の終了を示すのに用いられ、図１に対応するゼロランが{0, 2, 0, 2, 3, 1}となる、例示的なゼロランベースのパレット予測を示している。
【図３Ａ】隣接画素のカラー値を表１のカラーインデックス表に基づいたカラーインデックスに置き換えるサンプルを示しており、図３Ａの隣接画素値は、図３Ｂの隣接画素インデックスに置き換えられる。
【図３Ｂ】隣接画素のカラー値を表１のカラーインデックス表に基づいたカラーインデックスに置き換えるサンプルを示しており、図３Ａの隣接画素値は、図３Ｂの隣接画素インデックスに置き換えられる。
【図４】隣接画素からのカラーインデックス予測の実施例を示しており、第１の画素のインデックスは、上記隣接画素を予測器として用いて、第１の画素のインデックスが１として復号化される。
【図５Ａ】前のコピーアバッヴモードと関連した冗長の例を示しており、現在のサンプルは、“？”と示され、上記インデックスは“Ａ”である。
【図５Ｂ】前のコピーアバッヴ右モードと関連した冗長の例を示しており、現在のサンプルは、“？”と示され、上記右インデックスは“Ｃ”である。
【図６Ａ】前のコピーインデックスモードと関連した冗長の例を示しており、現在のサンプルは、“？”と示され、左インデックスは“Ａ”である。
【図６Ｂ】本発明の実施形態に基づいて決定された冗長のケースにおける置換インデックス予測器を用いた実施例を示している。
【発明を実施するための形態】
【００２７】
以下の説明は、本発明を実施するベストモードが開示されている。この説明は、本発明の一般原理を例示する目的のためのもので本発明を限定するものではない。本発明の範囲は、添付の請求の範囲を参考にして決定される。
【００２８】
予測モードでの予測器としてのエスケープ画素の課題
【００２９】
JCTVC-O0218、JCTVC-N0247、およびJCTVC-O0182では、いくつかの予測モード、例えば、コピーアバッヴモードおよびコピーインデックスモードは、パレットインデックスマップ符号化でサポートされる。コピーインデックスモードは、ブロック内の画素が左から右へラスタースキャン順序に処理されるとき、左の画素のインデックスがコピーされるため、ときに“copy left mode”とも称される。また、コピーレフトモード（copy left mode）は、この開示では、横断走査順序で前の画素をコピーすることを称することもある。これらのモードでは、カラーインデックスは、予測器、例えば１つ以上の上記サンプルまたは左のサンプルからコピーされる。Screen Content Coding Test Model 2 (SCM-2.0)、JCTVC-O0218に類似したランベースのパレット符号化方法、およびJCTVC-N0247は、整合される。ＳＣＭ−２．０では、コピーアバッヴモードおよびコピーインデックスモードが用いられる。エスケープサンプルは、ｒｕｎモードの最大パレットサイズと等しいカラーインデックスで符号化される。ｒｕｎモードでは、符号化されたパレットサイズがコピーインデックスモードの最大パレットサイズと等しい場合、各コンポーネント値（例えば、Ｒ／Ｇ／ＢコンポーネントまたはY／U／Vコンポーネント）はシグナリングされる。
【００３０】
しかしながら、ＳＣＭ−２．０では、コピーアバッヴモードが用いられ、上記のサンプルがエスケープサンプルとして符号化された場合、エスケープ値は、シグナリングされない。デコーダはこれらのサンプル値を再構築することができない。この問題を克服するために、各種の方法が以下に開示される。
【００３１】
Ａ．エスケープ値のシグナリングにおけるエンコーダの制約
【００３２】
この実施形態に基づいて、エスケープサンプルまたはエスケープカラーインデックスは、コピーインデックスモードで、または新しいインデックスモードのみで符号化されることができるように、エンコーダの制約が開示される。言い換えれば、このケースにおいて、例えばコピーアバッヴモードなどの他の予測コピーモードは用いられない。従って、コピーアバッヴモードのケースでは、上方画素のエスケープ画素でないエスケープ画素のみがコピーアバッヴモードにおける予測器として用いられることができる。従って、コピーアバッヴモードが用いられた場合、エスケープ値をシグナリングする必要がない。この開示では、サンプルおよび画素は、同じ意味で用いられる。従って、エスケープサンプルは、エスケープ画素とも呼ばれることができる。
【００３３】
Ｂ．エスケープサンプルを予測器として使用不可能にする
【００３４】
この実施形態に基づいて、エスケープサンプルまたはエスケープカラーインデックスは、コピーインデックスモードで、または新しいインデックスモードのみで符号化されることができる。言い換えれば、このケースにおいて、例えばコピーアバッヴモードなどの他の予測コピーモードは用いられない。従って、予測コピーモード（例えばコピーアバッヴモード）が用いられた場合、エスケープ値をシグナリングする必要がない。また、コピーモード（例えば、コピーアバッヴモードの上記サンプル）の予測器がエスケープサンプルの場合、コピーモードは、使用可能でなくなる。コピーモードの構文は、除去されることができる。例えば、上記サンプルがエスケープサンプルである場合、現在のサンプル用のコピーアバッヴモードはなくなる。例えば、現在の予測モードは、上記サンプルがエスケープサンプルである場合、コピーインデックスモードとして推定されることができる。もう１つの実施例では、上記サンプルのカラーインデックスは、コピーアバッヴモードが用いられる場合、現在の画素用にコピーされる。上記サンプルがエスケープサンプルである場合、インデックスコピーの工程は、終了する。例えば、コピーアバッヴモードがシグナリングされ、ｒｕｎが５であり、上記第３のサンプルがエスケープサンプルである場合、上記２つのサンプルのみコピーする。実際のｒｕｎ値は、１と等しい。
【００３５】
Ｃ．コピーモードにおいて再構築された画素値の直接コピー
【００３６】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、画素値がコピーモードで符号化された各位置（例えば、上、左、上部左、Ｍラインの上部、上部右位置）で再構築された画素値と等しいことを示す。これらの予測コピーモードでエスケープの符号化（例えば、エスケープ値を符号化する）は必要でない。
【００３７】
この方法では、ｐａｌｅｔｔｅ＿ｒｕｎは、シグナリングされたインデックスがエスケープインデックスと等しくても、コピーインデックスモードに対してシグナリングされることができる。エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０（例えば、Ｎ）より大きい場合、デコーダは、現在のサンプルおよび次のサンプルに再構築された値を充填する。エスケープ値は、ｐａｌｅｔｔｅ＿ｒｕｎの構文の後、シグナリングされることができる。
【００３８】
Ｄ．エスケープサンプル予測器（Ｅｓｃａｐｅ  ｓａｍｐｌｅ  ｐｒｅｄｉｃｔｏｒ）用のコピーモードにおけるエスケープ値およびインデックスの直接コピー
【００３９】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、カラーインデックスがコピーモードで符号化された位置で各カラーインデックスと等しいことを示し、カラーインデックスが各コピーモードの位置（例えば、上、左、上部左、Ｍラインの上部、上部右、など）でカラーインデックスと等しいことを示す。しかしながら、予測器がエスケープサンプルである場合、現在のサンプルは、インデックス（即ち、エスケープインデックス）をコピーするだけでなく、予測器からエスケープ値（例えば、ｐａｌｅｔｔｅ＿Ｅｓｃａｐｅ＿ｖａｌ）もコピーする。これらの予測コピーモードでエスケープの符号化（例えば、エスケープ値を符号化する）は必要でない。
【００４０】
ｐａｌｅｔｔｅ＿ｒｕｎは、シグナリングされたインデックスがエスケープインデックスと等しくても、コピーインデックスモードに対してシグナリングされることができる。エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０（例えば、Ｎ）より大きい場合、デコーダは、現在のサンプルおよび次のサンプル用にエスケープ値を充填する。エスケープ値は、ｐａｌｅｔｔｅ＿ｒｕｎの構文の後、シグナリングされることができる。もう１つの実施例では、エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０より大きい場合、エスケープ値の（Ｎ＋１）サンプルはサンプリングされる。
【００４１】
Ｅ．エスケープサンプル予測器用のコピーモードにおけるエスケープ値の直接コピー
【００４２】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、カラーインデックスが各コピーモードの位置（例えば、上、左、上部左、Ｍラインの上部、上部右、など）でカラーインデックスと等しいことを示す。しかしながら、予測器がエスケープサンプルである場合、現在のサンプルは、予測器からエスケープ値（例えば、ｐａｌｅｔｔｅ＿Ｅｓｃａｐｅ＿ｖａｌ）をコピーし、現在のインデックスを所定のインデックス（例えば、０）として設定する。これらの予測コピーモードでエスケープの符号化（例えば、エスケープ値を符号化する）は必要でない。
【００４３】
この方法では、ｐａｌｅｔｔｅ＿ｒｕｎは、シグナリングされたインデックスがエスケープインデックスと等しくても、コピーインデックスモードに対してシグナリングされることができる。エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０（例えば、Ｎ）より大きい場合、第１のサンプルは、エスケープ値で再構築され、余剰のサンプルは、所定のインデックスで再構築される。エスケープ値は、ｐａｌｅｔｔｅ＿ｒｕｎの構文の後、シグナリングされることができる。
【００４４】
Ｆ． エスケープサンプル予測器用の予測コピーモードにおける所定のカラーインデックスとしてエスケープサンプルを処理する
【００４５】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、カラーインデックスが各コピーモードの位置（例えば、上、左、上部左、Ｍラインの上部、上部右、など）でカラーインデックスと等しいことを示す。しかしながら、予測器がエスケープサンプルである場合、予測器のカラーインデックスは、本発明の実施形態に基づいて所定のカラーインデックス（例えば、０）として処理される。例えば、コピーアバッヴモードが現在の画素に対してシグナリングされ、予測器（即ち、現在の画素上方の画素）がエスケープ画素である場合、予測器は、所定のインデックスとして処理される。従って、現在の画素が所定のインデックスと等しい場合、コピーアバッヴラン（ｃｏｐｙ−ａｂｏｖｅ ｒｕｎ）が続く。デコーダ側では、現在のインデックスは、予測器（即ち、現在の画素上方の画素）がエスケープ画素である場合、所定のインデックスに設定される。これらの予測コピーモードでエスケープの符号化（例えば、エスケープ値を符号化する）は必要でない。
【００４６】
この実施形態は、コピーインデックスモードのケースにも用いられることができる。従って、ｐａｌｅｔｔｅ＿ｒｕｎは、シグナリングされたインデックスがエスケープインデックスと等しくても、コピーインデックスモードに対してシグナリングされることができる。シグナリングされたインデックスと関連したエスケープ値は、ｐａｌｅｔｔｅ＿ｒｕｎの構文の後、シグナリングされることができる。エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０より大きい場合、第１のサンプルは、エスケープ値で再構築され、余剰のサンプルは、所定のインデックスで再構築される。例えば、コピーインデックスモードが用いられ、ｐａｌｅｔｔｅ＿ｒｕｎが４の場合、主要画素は、エスケープ画素であり、次の４つのピクセルは、所定のインデックスを有する。５つの画素は、現在の実施形態に基づいてコピーインデックスモードを用いて符号化される。エスケープ画素である主要画素を使用可能にし、この予測器を所定のインデックスとして処理することによって、コピーインデックスモードが従来のコピーインデックスモードから変更されたことは明らかである。もう１つの例では、エスケープインデックスのｐａｌｅｔｔｅ＿ｒｕｎが０（例えば、Ｎ）より大きい場合、第１のサンプルは、エスケープ値で再構築され、余剰のサンプルも各サンプル用にエスケープ値をシグナリングする必要がある。余剰のサンプルは、シグナリングされたエスケープ値でそれぞれ再構築される。エスケープ値の（Ｎ＋１）サンプルはシグナリングされる。
【００４７】
一実施形態に基づいて、コピーインデックスモードの調整された最大パレットインデックス（ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘ）は、符号化ユニット（ＣＵ）の第１のサンプル以外、最大パレットインデックス引く１に等しくなるように固定される（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ ‐ １に固定される）。ＣＵの第１のサンプルにおいて、ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘは、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘに等しい。ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘは、予測器または最後に符号化されたインデックスがエスケープサンプルであってもなくても、独立している。このパラメータは、固定長符号符号化またはｔｒｕｎｃａｔｅ ｂｉｎａｒｙ符号符号化のインデックス符号化に用いられることができる。
【００４８】
Ｇ．予測器がエスケープサンプルの場合、エスケープ値を送信する
【００４９】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、カラーインデックスが各コピーモードの位置（例えば、上、左、上部左、Ｍラインの上部、上部右、など）でカラーインデックスと等しいことを示す。しかしながら、予測器がエスケープサンプルである場合、エスケープの符号化（例えば、エスケープ値を符号化する）は、本発明の実施形態に基づいて、これらのサンプルに対してシグナリングされる。例えば、上記サンプルがエスケープサンプルであり、コピーアバッヴモードが現在のサンプル（現在のエスケープ画素とも呼ばれる）に選ばれた場合、各コンポーネントのエスケープ値は、現在のサンプル用にシグナリングされる。即ち、コピーアバッヴモードが選ばれ、上方画素がエスケープ画素の場合、現在の画素用の３コンポーネント（例えば、ＹＵＶコンポーネントまたはＲＧＢコンポーネント）の値がシグナリングされる。エスケープ値は、“palette_run”の後、シグナリングされることができる。シグナリングされるエスケープ値の数は、予測器から予測されているエスケープサンプルの数によって決まる。また、予測器からの第１のサンプルがエスケープサンプルの場合、ｐａｌｅｔｔｅ＿ｒｕｎは、０として推定されるか、または０に設定されることができる。
【００５０】
予測器がエスケープサンプルの場合、もう１つの制約が増加され、ｐａｌｅｔｔｅ＿ｒｕｎが終了する。このように、ｐａｌｅｔｔｅ＿ｒｕｎは、終了することができる。
【００５１】
Ｈ．予測器がエスケープサンプルの場合、エスケープラン（ｅｓｃａｐｅ ｒｕｎ）のエスケープ値を送信する
【００５２】
コピーモードでは、値 “palette_run” （例えば、Ｎ）が送信、導出、または推定されて、現在の画素および以下のＮ画素において、カラーインデックスが各コピーモードの位置（例えば、上、左、上部左、Ｍラインの上部、上部右、など）でカラーインデックスと等しいことを示す。しかしながら、予測器がエスケープサンプルである場合、エスケープの符号化（例えば、エスケープ値を符号化する）は、これらのサンプルに対してシグナリングされる。例えば、上記サンプルがエスケープサンプルであり、コピーアバッヴモードが選ばれた場合、各コンポーネントのエスケープ値は、現在のサンプル（現在のエスケープ画素とも呼ばれる）用にシグナリングされる。エスケープ値は、“palette_run”の直後、シグナリングされることができる。シグナリングされるエスケープ値の数は、予測器から予測されているエスケープサンプルの数によって決まる。コピーインデックスモードにおいて、シグナリングされたインデックスがエスケープインデックスのとき、ｐａｌｅｔｔｅ＿ｒｕｎは、シグナリングされて、現在の画素および以下のＮ画素がエスケープサンプルであることを示すことができる。エスケープコード（例えば、エスケープ値を符号化する）は、これらのサンプルに対してシグナリングされる。エスケープ値は、ｐａｌｅｔｔｅ＿ｒｕｎの構文の後、シグナリングされることができる。
【００５３】
この実施形態に基づいて、コピーインデックスモードの調整された最大パレットインデックス（ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘ）は、符号化ユニット（ＣＵ）の第１のサンプル以外、最大パレットインデックス引く１に等しくなるように固定される（ＭａｘＰａｌｅｔｔｅＩｎｄｅｘ ‐ １に固定される）。ＣＵの第１のサンプルにおいて、ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘは、ＭａｘＰａｌｅｔｔｅＩｎｄｅｘに等しい。ＡｄｊｕｓｔｅｄＭａｘＰａｌｅｔｔｅＩｎｄｅｘは、予測器または最後に符号化されたインデックスがエスケープサンプルであってもなくても、独立している。このパラメータは、固定長符号符号化またはｔｒｕｎｃａｔｅ ｂｉｎａｒｙ符号符号化のインデックス符号化に用いられることができる。
【００５４】
Ｉ．エスケープインデックスからインデックスを予測する
【００５５】
予測元（ｐｒｅｄｉｃｔｉｏｎ ｓｏｕｒｃｅ）（例えば、上記インデックスまたは左のインデックス）がエスケープインデックスの場合、現在のサンプルのインデックスは、エスケープサンプルとして推定される。次いで、現在のサンプル用のエスケープ値がシグナリングされる。
【００５６】
例えば、現在のｐａｌｅｔｔｅ＿ｒｕｎがコピーアバッヴモードとしてシグナリングされ、少なくとも１つの上記サンプルがエスケープインデックスの場合、エスケープインデックスを有するサンプルは、エスケープサンプルとして推定される。次いで、エスケープ値がシグナリングされる。
【００５７】
もう１つの実施例では、ｐａｌｅｔｔｅ＿ｒｕｎがコピーレフトモードとしてシグナリングされ、左のインデックスがエスケープインデックスの場合、現在のサンプルは、エスケープサンプルとして推定される。次いで、エスケープ値がシグナリングされる。従って、現在のｐａｌｅｔｔｅ＿ｒｕｎがコピーインデックスモードとしてシグナリングされ、新しいシグナリングされたインデックスがエスケープインデックスの場合、ｐａｌｅｔｔｅ＿ｒｕｎと関連した全てのサンプルは、エスケープサンプルとして推定される。次いで、エスケープ値がシグナリングされる。
【００５８】
この実施例では、ｐａｌｅｔｔｅ＿ｒｕｎのＮサンプルがエスケープインデックスとして推定されるとき、Ｍエスケープ画素値がシグナリングされ、ＮおよびＭは、正の整数である。Ｍは、Ｎと等しいことができ、個々のエスケープ画素値は、このケースにおいてｐａｌｅｔｔｅ＿ｒｕｎの全てのサンプル用にシグナリングされる。Ｍは、Ｎより小さく、エスケープ画素値は、ｐａｌｅｔｔｅ＿ｒｕｎの一部のサンプルに送信され、余剰のサンプルは、送信されたエスケープ値をシェアする。例えば、Ｍは、１つであり、全てのサンプルに送信された１つのエスケープ値は、エスケープインデックスとして推定されてこのエスケープ値をシェアする。
【００５９】
Ｊ．導出された、または所定のインデックスを用いて、エスケープインデックスからインデックスを予測する
【００６０】
予測元（例えば、上記インデックスまたは左のインデックス）がエスケープインデックスの場合、現在のサンプルのインデックスは、予測元が予測のために用いられる場合、導出された、または所定のインデックスとして推定される。所定のインデックスは、０であることができる。
【００６１】
例えば、現在のｐａｌｅｔｔｅ＿ｒｕｎがコピーアバッヴモードとしてシグナリングされ、少なくとも１つの上記サンプルがエスケープインデックスの場合、エスケープインデックスを有するサンプルは、関連する予測モードが用いられる場合、導出された、または所定のインデックスとして推定される。所定のインデックスは、０であることができる。
【００６２】
もう１つの実施例では、ｐａｌｅｔｔｅ＿ｒｕｎがコピーインデックスモードとしてシグナリングされ、左のインデックスがエスケープインデックスの場合、現在のサンプルは、関連する予測モードが用いられる場合、導出された、または所定のインデックスとして推定される。所定のインデックスは、０であることができる。
【００６３】
もう１つの実施例では、現在のｐａｌｅｔｔｅ＿ｒｕｎがコピーインデックスモードによってシグナリングされた場合、ｐａｌｅｔｔｅ＿ｒｕｎ値は、シグナリングされ、新しいシグナリングされたインデックスがエスケープインデックであるかどうかを示す。新しいシグナリングされたインデックスがエスケープインデックスである場合、ｐａｌｅｔｔｅ＿ｒｕｎの第１のサンプルは、エスケープインデックスとして推定され、余剰のサンプルは、導出された、または所定のインデックスとして推定される。所定のインデックスは、０であることができる。
【００６４】
Ｋ．インデックス符号化の冗長インデックスを除去する
【００６５】
ＳＣＭ ２．０では、デコーダは、冗長インデックスが除去されることができるようにいくつかの条件をチェックする必要がある。例えば、デコーダは、前のｐａｌｅｔｔｅ＿ｒｕｎがコピーアバッヴモードであるかどうかと、上記サンプルがエスケープインデックスとして符号化されないかどうかをチェックすることができる。両方の条件が真である場合、上記サンプルのインデックスは、冗長インデックス値として処理され、インデックス符号化の間に除去されることができる。
【００６６】
一実施形態では、条件のチェックは、解析の段階で除去されることができる。コピーインデックスモードがＣＵの第１のサンプル以外の任意のサンプルの位置に用いられる場合、少なくとも１つの冗長インデックス値が存在する。従って、解析の段階では、デコーダは、条件のチェックなしに固定された冗長インデックスの数（例えば、１）を直接除去することができる。
【００６７】
いずれかの予測方法がＣＵ（ＣＵの境界をまたぐ予測）の第１サンプルに用いられた場合、前述のエスケープ画素予測は、上述の冗長の除去と組み合わせられることができる。インデックス値の解析方法は、以下のように定義されることができる。コピーインデックスモードが任意のサンプルの位置に用いられる場合、少なくとも１つの冗長インデックス値が存在する。従って、解析の段階では、デコーダは、条件のチェックなしに固定された冗長インデックスを直接除去することができる。
【００６８】
Ｌ．インデックス符号化の冗長インデックスの除去後、インデックス値を再構築する
【００６９】
インデックスの再構築の段階では、デコーダは、除去された冗長インデックス値を計算する。解析されたインデックス値が除去された冗長インデックス値以上の場合、再構築されたインデックス値は、解析されたインデックス値に１を加えた値と等しい。等しくない場合、再構築されたインデックス値は、解析されたインデックス値である。
【００７０】
“Ｉ．エスケープインデックスからインデックスを予測する”に開示された実施形態に基づいて、予測元がエスケープインデックスの場合、除去された冗長インデックス値は、エスケープインデックス値である。
【００７１】
“Ｊ．導出された、または所定のインデックスを用いて、エスケープインデックスからインデックスを予測する” に開示された実施形態に基づいて、予測元がエスケープインデックスの場合、除去された冗長インデックス値は、導出された、または所定のインデックスである。所定のインデックスは０である。
【００７２】
Ｍ．隣接画素からカラーインデックスマップ符号化を予測する
【００７３】
現在のＣＵの主要のカラーインデックスマップは、現在のＣＵの隣接画素（ＮＰ）から予測されることができる。カラーインデックスマップを符号化するとき、エンコーダ／デコーダは、まず、隣接画素（ＮＰ）を決定することができる。ＰＮは、現在の符号化ユニットのカラーインデックスを予測するのに用いられることができる。予測の前、ＮＰの画素値は、主要のカラーテーブルによってカラーインデックス内にマッピングされることができ、マッピングされたカラーインデックスは、現在の符号化ユニットのカラーインデックスを予測するのに用いられる。例えば、表１に示されるように、現在の符号化ユニットの主要なカラーテーブルを用いることによって、ＮＰの画素値は、図３Ａと図３Ｂに示されたようにカラーインデックス内にマッピングされることができる。隣接画素値は、イタリック体と括弧で示され、マッピングされたカラーインデックスは、各ＮＰの画素値の下方に示される。
【表１】
2019198104.tif 000003
【００７４】
ＮＰは、任意の前に復号化された、または再構築された画素であることができ、空間的に隣接するサンプルまたは時間的に隣接するサンプル、および各剰余を含む。隣接画素は、サンプル適応オフセット（ＳＡＯ）またはデブロッキングフィルタなどのループ内フィルタのない再構築された画素であることができる。隣接画素は、ＳＡＯ、デブロッキングフィルタ、またはＳＡＯおよびデブロッキングフィルタの両方でフィルタリングされた、再構築された画素であることもできる。時間的ＮＰは、参照画像の同一位置にある、または動きベクトルで示された位置にある画素であることができる。一例実施例では、ＮＰは、最も近い上記列、および最も近い左の行の画素に簡素化される。
【００７５】
符号化の間、カラーインデックスは、ＮＰによって予測されることができる。図４は、画素のカラーインデックスが上記ＮＰによって測定された実施例を示している。第１の画素のインデックスは、この実施例では、１として復号化される。
【００７６】
ＮＰのカラー値をカラーインデックスにマッピングする量子化方法を簡素化するために、デコーダは、パレットの一部の色だけをテストすることができる。ＮＰに適合する色がない場合、デコーダは、固定された、または導出されたインデックスをＮＰに割り当てることができる。例えば、デコーダは、Ntest1からNtest2のカラーインデックスのみをテストする。適合する色がない場合、デコーダはＮＰを割り当て、インデックスNtest3とNtest3は、０であることができる。Ntest1とNtest2は、固定される、または導出されることができる。Ntest1とNtest2は、ＣＵサイズに基づいて導出されることができる。
【００７７】
ＮＰに適合する色を識別するために、デコーダはNtestカラーをＮＰとテストすることもできる。テストされた色の間の違いがCtest1であり、ＮＰがしきい値より小さい場合、ＮＰは、インデックスCtest1に割り当てられる。しきい値は固定される、または導出されることができる。例えば、しきい値は、ＱＰ設定に基づいて導出されることができる。ＮＰのスレッショルド値より小さい、それに対応した違いを有する１つ以上のテストされた色がある場合、ＮＰは、より小さい違いを有するテストされた色に量子化されることができる。
【００７８】
カラーインデックスにＮＰの値の量子化を簡素化するために、ＮＰのスレッショルド値より小さい、違いを有する１つ以上のテストされた色がある場合、ＮＰは、最新のテストされた色に量子化されることができる。色をテストする順序は、最大のインデックスから最小のインデックスの順序（即ち、最小発生インデックスから最大発生インデックス）であることができる。言い換えれば、それらの両方が異なるスレッショルド値内にあるとき、より大きい発生インデックスは、より小さい発生インデックスを上書きする。
【００７９】
もう1つの実施形態では、ＮＰのスレッショルド値より小さい、違いを有する１つ以上のテストされた色がある場合、ＮＰは、最初のテストされた色に量子化されることができる。色をテストする順最小のインデックスから最大のインデックスの順序（即ち、最大発生インデックスから最小発生インデックス）であることができる。言い換えれば、それらの両方が異なるスレッショルド値内にあるとき、より大きい発生インデックスは、より小さい発生インデックスを上書きする。テストプロセスは、任意のテストカラーが適合された場合、早期に終了することができる。
【００８０】
カラーインデックスにＮＰの値の量子化を簡素化するもう1つの方法において、デコーダは、カラー値のNMSB_COLOR MSBsのみを用いて、パレットのカラーを有する画素と比較することができる。NMSB_COLORは、固定される、または導出されることができる。NMSB_COLORは、ＣＵサイズに基づいて導出されることができる。異なるカラーコンポーネントにおいて、NMSB_COLORは、異なることができる。例えば、Ｙ／ＧコンポーネントのNMSB_COLORは、ＵＶ／ＲＢコンポーネントのNMSB_COLORは、より大きいことができる。
【００８１】
上述の“予測モードのエスケープカラー（Escape color with prediction mode）” および “ＮＰからカラーインデックスマップ符号化を予測する（Prediction for color index map coding from NPs）”の技術は、統一されることができる。例えば、デコーダは、“Prediction for color index map coding from NPs”において、ＮＰをエスケープインデックス内に直接量子化することができる。結果、第1の列の画素がコピーアバッヴモードとしてシグナリングされた場合、画素は、エスケープインデックスから予測されることができる。エスケープインデックスから予測を処理するには、“コピーモードで再構築された値を直接コピーする（Direct copy of the reconstructed value in the copy mode）” または “エスケープサンプル予測器用のコピーモードで再構築された値を直接コピーする（Direct copy of the reconstructed value in the copy mode for the Escape sample predictor）”。言い換えれば、予測器は、ＮＰの再構築された画素値を第1の列の画素にコピーする。第1の列の上方から予測された画素の再構築されたインデックスは、エスケープインデックスとして推定される。
【００８２】
本発明の1つの態様は、“Escape”インデックスを符号化するカラーインデックス符号化に取り組んでいる。インデックス“Escape”は、画素値がパレット表のどのインデックスにもマッピングされることができない画素にある。カラーインデックス符号化のさまざまな実施形態が以下に述べられる。
【００８３】
i．エスケープのラン（ｒｕｎ）
【００８４】
JCTVC-N0247に開示されたパレット符号化スキームでは、“copy_index mode” およびインデックス “Escape”がまずシグナリングされ、次いでインデックス “Escape”を有する画素を符号化するためにその実際の画素値をシグナリングする。インデックス “Escape”を有する画素が連続して配置されたとき、このプロセスは、インデックス “Escape”を有する各画素に対して繰り返される。例えば、{“copy_index mode”, “Escape index”, value}に対応する構文の設定は、インデックス “Escape”を有する連続した画素に対して繰り返されることができる。1つの実施形態では、“copy_index mode” または “copy_above mode”に加えて、新しい予測モード（例えば、“Escape run mode”）がエスケープインデックスに含まれる。上述のモードのシグナリング後、インデックス “Escape”をシグナリングすることなく、“number of run”および画素値がシグナリングされる。例示的なプロセスが以下に述べられる。
１）各位置において、フラグが送信され、“copy_above mode”、“copy_index mode”、および “Escape run mode”の中から選ばれた予測モードを示す。
２）“copy_above mode” が用いられた場合、 “palette_run”は、フラグに次いで送信される。現在の位置からのランの数のインデックスは、スキャンの順序に沿った上記ラインのそれらと同じである。
３）“copy_above mode” が用いられた場合、“palette_run”は、フラグの後、“palette_run”に次いでシグナリングされる。ランの数においては、インデックスは、シグナリングされたインデックスと同じである。
４）“Escape run mode”が用いられた場合、 “palette_run”がシグナリングされる。ランの数の画素値がシグナリングされる。
【００８５】
ii．コピーアバッヴモードのエスケープ
【００８６】
画素が“copy_above mode”のとき、画素のインデックスは、スキャンの方向に沿ったその上方画素と同じである。従来技術は、エスケープ画素またはエスケープインデックスが“copy_above mode”のランに含まれているとき、プロセスを定義していない。1つの実施形態では、“copy_above mode”のランがエスケープインデックスを含んでもいなくてもシグナリングされる。この実施形態に基づいた例示的なプロセスおよびシグナリングが以下に述べられる。
１）“copy_above mode”が用いられた場合、 “palette_run”は、モードフラグに次いでシグナリングされる。現在の位置からのランの数のインデックスは、スキャンの順序に沿った上記ラインのそれらと同じである。
２）ランの数の後、“Escape in the run” フラグは、送信され、任意のエスケープピクセルが “copy_above”画素に存在するかどうかを示す。
３）“Escape in the run” が真である場合、これらのエスケープ画素の画素値は、順次にシグナリングされる。
【００８７】
上述の実施例では、エスケープインデックスの数が導出される。もう1つの実施形態では、“copy_above mode”の現在のセットの“Escape”インデックスの数は、画素値をシグナリングする前に明示的にシグナリングされる。この明示的なシグナリングは、“Escape in the run”フラグと代替することができる。
【００８８】
iii．“palette_run”のシグナリング
【００８９】
“palette_run”は、インデックスのシグナリング後、またはシグナリング前にシグナリングされることができる。従来の技術では、“number of runs”は、インデックスの後にシグナリングされる。本発明の実施形態では、“palette_run”のシグナリングの順序は、変えられる。例えば、“palette_run”は、“index”が存在するときに“index”の前に、または“index”が存在しないときに予測モードの後にシグナリングされる。実施形態に基づいた例示的なプロセスおよびシグナリングは、以下に述べられる。
１）各位置において、まず、フラグが送信され、“copy_above mode”および“copy_index mode”から選ばれた予測モードを示す。
２）“palette_run”が送信される。
３）“copy_above mode”が用いられたとき、現在の位置からのランの数のインデックスは、スキャンの順序に沿った上記ラインのそれらと同じである。
４）“copy_index mode”が用いられたとき、“index”は、フラグの後、シグナリングされる。
ａ．“index”が“Escape”の場合、現在の位置からのランの数の画素値がシグナリングされる。
ｂ．“index”がパレット表にある場合、現在の位置からのランの数のインデックスは、シグナリングされたインデックスと同じである。
【００９０】
上述の“palette_run”のシグナリングの技術は、本発明で述べられた他の技術と組み合わせられる。
【００９１】
他の実施例では、“palette_run”は、予測モードおよびインデックスの前にシグナリングされる。例示的なシグナリングおよびプロセスは以下に述べられる。
１）各位置では、“palette_run”がシグナリングされる。
２）フラグが“palette_run”に次いでシグナリングされ、“copy_above mode” および “copy_index mode”から選ばれた予測モードを示す。
ａ．“copy_above mode” が用いられた場合、のそれらと同じ現在の位置からのランの数のインデックスは、スキャンの順序に沿った上記ラインのそれらと同じである。
ｂ．“copy_index mode”が用いられたとき、“index”は、フラグの後、シグナリングされる。
i．“index”が“Escape”の場合、現在の位置からのランの数の画素値がシグナリングされる。
ii．“index”がパレット表にある場合、現在の位置からのランの数のインデックスは、シグナリングされたインデックスと同じである。
【００９２】
上述の“palette_run”のシグナリングの技術は、本発明で述べられた他の技術と組み合わせられる。
【００９３】
もう1つの実施形態では、“palette_run”が１と等しいとき、インデックスが現在の位置に対してシグナリングされる。言い換えれば、予測モードのシグナリングが必要ない。インデックスがエスケープの場合、画素値はエスケープインデックスの後、シグナリングされる。例示的なシグナリングおよびプロセスは以下に示される。
１）各位置では、“palette_run”がシグナリングされる。
２）“palette_run”が１と等しいとき、“index”がシグナリングされる。また、“index”が“Escape”の場合、画素値がシグナリングされる。
３）その他（即ち、“palette_run”が１より大きい）
フラグが“palette_run”に次いでシグナリングされ、“copy_above mode” および “copy_index mode”から選ばれた予測モードを示す。
ａ．“copy_above mode” が用いられた場合、のそれらと同じ現在の位置からのランの数のインデックスは、スキャンの順序に沿った上記ラインのそれらと同じである。
ｂ．“copy_index mode”が用いられたとき、“index”は、フラグの後、シグナリングされる。
i．“index”が“Escape”の場合、現在の位置からのランの数の画素値がシグナリングされる。
ii．“index”がパレット表にある場合、現在の位置からのランの数のインデックスは、シグナリングされたインデックスと同じである。
【００９４】
上述の“palette_run”のシグナリングの技術は、本発明で述べられた他の技術と組み合わせられる。
【００９５】
iv．“Escape”の画素値をシグナリングする
【００９６】
“Escape”インデックスに対応する画素値がシグナリングされたとき、実際値が直接シグナリングされる。サンプル値を直接シグナリングする代わりに、実際値と参照値の間の違いもシグナリングされることができる（即ち、差分符号化）。従来の技術では、差動符号化の参照値は、同じＣＵの既に再構築されたエスケープ値に基づいている。本発明のいくつかの実施形態では、他の参照値も用いられることができる。例えば、参照値は、直接シグナリングされる、または導出されることができる。もう1つの実施例では、参照値は、パレット予測表の第Ｎ番目のインデックスであることができ、インデックスＮと値差分がシグナリングされる。またもう1つの実施例では、参照値は、隣接ブロックから再構築された値であることができる。参照値は、再構築された従来のイントラ／インター、パレット値、またはエスケープ値であることができる。参照値は、連続した“Escape”画素の最小画素値であることができる。また、参照値は、連続した“Escape”画素のＮ番目の値であることができる。
【００９７】
Ｎ．遷移コピー（ｔｒａｎｓｉｔｉｏｎ ｃｏｐｙ；  ＴＣ）予測のヒルベルト（Hilbert）インデックススキャン
【００９８】
遷移コピー（ＴＣ）予測では、値“palette_run” （例えば、Ｎ）が送信、または導出されて、現在の画素および以下のＮ画素において、パレットインデックスは、遷移コピー表導出（ｔｒａｎｓｉｔｉｏｎ−ｃｏｐｙ−ｔａｂｌｅ−ｄｅｒｉｖｅｄ； ＴＣＴ ｄｅｒｉｖｅｄ）インデックスと等しい。Ｎは１であることができる。
【００９９】
符号化の間、デコーダは、遷移コピー表（ｔｒａｎｓｉｔｉｏｎ ｃｏｐｙ  ｔａｂｌｅ；  ＴＣＴ）を維持し、前のＫ復号化インデックスと次のＮインデックスの間の関係を符号化する。次いで、新しいＮインデックスを復号する前に、デコーダは、前のＫ復号化インデックスを用いて、以下のＮインデックスの予測パターンを探索する。ＮおよびＫは、送信または導出される。
【０１００】
遷移コピーにおいて、ブロック内のカラーインデックスは、ブロックを通過するスキャンパターンに基づいて処理される。本発明の実施形態に基づいて、インデックスマップは、ヒルベルトスキャンの順序を用いてスキャンされる。ヒルベルトスキャンから得られたランレングスが符号化される。開始位置は、ヒルベルトスキャン用に変えられることができる。インデックスマップは、まず回転されて、次いでスキャンされる。スキャンパターンは、例えば、JCTVC-R0348で開示されたこれらのように、異なるパレット関連符号化用に用いられることができる。
【０１０１】
Ｏ．冗長の予測モードの構文を除去する
【０１０２】
本発明の1つの実施形態は、予測モードが冗長である場合、予測モードの構文を除去する。例えば、上述の画素がエスケープ画素の場合、コピーアバッヴモードは、除去されることができ、予測モードがコピーインデックスモードとして推定されることができる。
【０１０３】
もう1つの実施例では、最後の予測モードがコピーインデックスモードであり、上方画素は、エスケープ画素でなく、上方画素と前の画素のインデックスは、同じである場合、コピーアバッヴモードは、除去されることができる。予測モードは、コピーインデックスモードとして推定されることができる。
【０１０４】
またもう1つの実施例では、最後の予測モードがコピーインデックスモードであり、上方画素と前の画素のインデックスは、同じである場合、コピーアバッヴモードは、除去されることができる。予測モードは、コピーインデックスモードとして推定されることができる。
【０１０５】
またもう1つの実施例では、上方画素がエスケープ画素である場合、または最後の予測モードがコピーインデックスモードであり、上方画素と前の画素のインデックスが同じである場合、コピーアバッヴモードは、除去されることができる。予測モードは、コピーインデックスモードとして推定されることができる。
【０１０６】
コピーアバッヴランモードの予測元を改善する
【０１０７】
パレットコーディングでは、現在の画素の冗長インデックスIrun_redは、最後の符号化した予測モードから導出される。最後の符号化した予測モード以外の予測モードにおいては、第1のインデックス予測器がIrun_redと同じである場合、第1のインデックス予測器は、固定されたインデックス、または導出されたインデックスである、置換インデックス（ｒｅｐｌａｃｅｍｅｎｔ ｉｎｄｅｘ）によって置き換えられることができる。置換インデックスは、０または最小値（ｓｍａｌｌｅｓｔ  ｐｏｓｓｉｂｌｅ）、およびIrun_redと等しくない非冗長インデックス（ｎｏｎ−ｒｅｄｕｎｄａｎｔ ｉｎｄｅｘ）であることができる。例えば、Irun_redが０である場合、置換インデックスは、1に設定されることができる。または、置換インデックスは、０に設定されることができる。インデックスの置換方法は、Irun_redがエスケープインデックスと等しい場合、無効にされることができる。
【０１０８】
ＳＣＭ ２．０では、前の予測モードがコピーアバッヴモードである場合、現在のインデックスは、上記インデックスと同じであることができない。または、現在のインデックス符号化は、コピーアバッヴモードの前のラン内に併合されることができる。この冗長インデックス値は、Irun_redと呼ばれる。図５Ａは、コピーアバッヴモードと関連した冗長の例を示しており、現在のサンプルは、“？”と示され、上記インデックスは“Ａ”である。現在のインデックスは、“Ａ”であることはできず、且つインデックスＡは、現在のインデックスを符号化する冗長である。従って、このケースでは、予測元のリファイメント（ｒｅｆｉｎｅｍｅｎｔ）は、他の予測モードが用いられる場合、開示される。例えば、予測モードがコピーアバッヴ右（ｃｏｐｙ−ａｂｏｖｅ−ｒｉｇｈｔ）モードの場合、上記右画素のインデックスはＡであることはできない。これは、固定されたインデックス、または導出されたインデックスに対応した置換インデックスによって置き換えられることができる。置換インデックスは、図５Ｂに示されたインデックスＣであることができ、“Ｃ”は、０または最小値、およびIrun_redと等しくない非冗長インデックスであることができる。例えば、Irun_redが０である場合、インデックスＣは、1に設定されることができる。または、インデックスＣは、０に設定されることができる。
【０１０９】
もう1つの実施形態では、前の予測モードがコピーインデックスモードである場合、現在のインデックスは、左のインデックス現在のインデックスは、上記インデックスと同じであることができない。または、現在のインデックス符号化は、コピーアバッヴモードの前のラン内に併合されることができる。この冗長インデックス値は、Irun_redと呼ばれる。図６Ａは、コピーアバッヴモードと関連した冗長の例を示しており、現在のサンプルは、“？”と示され、上記インデックスは“Ａ”である。しかしながら、現在の符号化されるべき（ｔｏ−ｂｅ−ｅｎｃｏｄｅ）インデックスの上記インデックスがIrun_redと等しい場合、現在のインデックスのコピーアバッヴ予測は、冗長である。従って、このケースでは、コピーアバッヴモードが用いられる場合、上述のインデックスのインデックス予測器は、置き換えられる。
【０１１０】
現在のｔｏ−ｂｅ−ｅｎｃｏｄｅインデックス、例えば、図６ＡのインデックスＡがIrun_redと等しい場合、デコーダは、図６ＢのインデックスＣのように、固定されたインデックスまたは導出されたインデックスに対応した置換インデックスによってコピーアバッヴモードの上記インデックスのインデックス予測器を置き換えることができる。インデックスＣは、０または最小値、およびIrun_redと等しくない非冗長インデックス（ｎｏｎ−ｒｅｄｕｎｄａｎｔ ｉｎｄｅｘ）であることができる。例えば、Irun_redが０である場合、インデックスＣは、1に設定されることができる。または、インデックスＣは、０に設定されることができる。
【０１１１】
本実施形態に基づいたもう1つの実施例では、Irun_redは、任意の予測モードの冗長インデックス、例えば、コピーアバッヴ２列モード（ｃｏｐｙ−ａｂｏｖｅ−2−ｒｏｗ−ｍｏｄｅ）の上記２列のインデックスであることができる。最後の符号化されたモードがコピーインデックスモードであり、前の符号化されたインデックスがIrun_redと同じ場合、予測モード（例えば、コピーアバッヴ２列モードの上記２列のインデックス）のIrun_redは、導出されたインデックスと置き換えられることができる。
【０１１２】
本実施形態に基づいたまたもう1つの実施例では、コピーアバッヴモードが選ばれることができる符号化モードの1つである場合、予測モードは、コピーインデックスモードのランがコピーアバッヴモードのランより、ずっと大きくても、コピーアバッヴモードに設定される。
【０１１３】
予測器が置換インデックスによって置き換えられた場合、コピーインデックスモードのインデックス符号化は、変更されることができる。２つの冗長インデックス（即ち、Irun_redおよび置換インデックス）は、除去されることができる。例えば、最後の符号化されたモードがコピーインデックスモードであり、上記インデックスが前のインデックスと同じであり、且つ上記インデックスがエスケープインデックスでない場合、２つのインデックスは、現在の画素用のコピーインデックスモードのインデックス符号化で除去されることができる。2つのインデックスの1つは、前のインデックスであり、もう1つは、置換インデックスである。
【０１１４】
実施形態に基づいたまたもう1つの実施例では、最後の符号化されたモードがコピーインデックスモードであり、上記インデックスが前のインデックスと同じである場合、最大値（ｍａｘｉｍｕｍ  ｐｏｓｓｉｂｌｅ）のインデックスは、2より大きく、上記インデックスは、エスケープでなく、2つのインデックスは、現在の画素のコピーインデックスモードのインデックス符号化で除去されることができる。2つのインデックスの1つは、前のインデックスであり、もう1つは、置換インデックスである。
【０１１５】
本発明に基づいたまたもう1つの実施例では、最後の符号化されたモードがコピーインデックスモードであり、上記インデックスが前のインデックスと同じであり、且つ最大値のインデックスが２より大きい場合、２つのインデックスは、現在の画素用のコピーインデックスモードのインデックス符号化で除去されることができる。2つのインデックスの1つは、前のインデックスであり、もう1つは、置換インデックスである。
【０１１６】
本発明に基づいた実施形態は、もう1つのインデックス冗長をチェックする。この技術は、この発明で前に開示されたＴＣリファイメントプロセスに適用されることもできる。従って、インデックス冗長に基づいてＴＣ予測器をリファインするとき、デコーダも更なる冗長を上述の技術によってチェックされるように検討することができる  
【０１１７】
Ｑ．隣接画素からカラーインデックスマップ符号化の冗長インデックスを除去する
【０１１８】
本発明において上述したように、インデックス冗長は、ＳＣＭ−２．０に存在する。前のランがコピー上述ランである場合、現在のインデックスは、新しいコピー左ランで符号化されるとき、現在のインデックスの上記インデックスと同じであることができない。または、現在のインデックス符号化は、前のラン内に併合されることができる。一方では、ＳＣＭ−２．０では、第１の列にコピーアバッヴランがない。従って、デコーダは、第１の列にあるコピーアバッヴランの冗長インデックスのチェックを行わない。
【０１１９】
もう１つの実施形態に基づいて、冗長インデックスの除去も第１の列に適用される。冗長インデックスの除去プロセスは、隣接画素（ＮＰ）に基づいて変更される。第１の列の画素を符号化するとき、エンコーダは、前のランがコピーアバッヴランであるかどうかをチェックする。現在のインデックスは、それが新しいコピー左ランで符号化されたとき、現在のインデックスの上記ＮＰのインデックスと同じであることができない。このケースでは、Irun_redは、現在のインデックスの上記ＮＰのインデックスと等しい。
【０１２０】
解析スループットを向上させるために、デコーダは、解析の段階で符号化されたインデックス値（即ち、Irun_redを除去した）のみを解析し、再構築の段階で真のパレットインデックス（即ち、Irun_redを増加した）を再構築することができる。従って、ＮＰからカラーインデックスの量子化プロセスは、再構築の段階に移動されて、解析スループットを向上させることができる。
【０１２１】
上の記述が提示されて、当業者に、特定のアプリケーションとその要求のコンテキストに記述される通り、本発明を行うことができる。当業者なら、記述された具体例への各種修正が理解でき、ここで定義される一般原則は別の実施例にも応用できる。よって、本発明は、記述される特定の実施例に制限することを目的としておらず、原理と新規特徴と一致する最大範囲に一致する。上述の記述において、本発明の十分な理解を提供するため、各種特定の詳細が説明される。当業者なら、本発明が行えることが理解できる。
【０１２２】
上述の本発明の具体例は、各種ハードウェア、ソフトウェアコード、または、それらの組み合わせで実行される。例えば、本発明の具体例は、画像圧縮チップに整合される回路、または、画像圧縮ソフトウェアに整合されるプログラムコードで、上述の処理を実行する。本発明の具体例は、デジタルシグナルプロセッサ（ＤＳＰ）で実行されるプログラムコードで、上述の処理を実行する。本発明は、さらに、コンピュータプロセッサ、デジタルシグナルプロセッサ、マイクロプロセッサ、または、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）により実行される複数の機能を含む。これらのプロセッサは、本発明により具体化される特定の方法を定義する機械読み取り可能ソフトウェアコード、または、ファームウェアコードを実行することにより、本発明による特定のタスクを実行するように設定される。ソフトウェアコード、または、ファームウェアコードは、異なるプログラミング言語、および、異なるフォーマット、または、スタイルで開発される。ソフトウェアコードは、さらに、異なるターゲットプラットフォームにコンパイルされる。しかし、本発明によるタスクを実行するソフトウェアコードの異なるコードフォーマット、スタイル、および、言語、および、設定コードのその他の手段は、本発明の精神を逸脱しない。
【０１２３】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明を限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図１】
2019198104.tif 000004
【図２】
2019198104.tif 000005
【図３Ａ】
2019198104.tif 000006
【図３Ｂ】
2019198104.tif 000007
【図４】
2019198104.tif 000008
【図５Ａ】
2019198104.tif 000009
【図５Ｂ】
2019198104.tif 000010
【図６Ａ】
2019198104.tif 000011
【図６Ｂ】
2019198104.tif 000012