(57)【要約】      （修正有）【課題】パレットモード符号化ブロックに対して生成される構文要素のコンテキスト適応型２値算術符号化に関して符号化効率を改善する方法を提供する。【解決手段】エントロピー符号化システムは、現在のブロックについてのパレットインデックスマップを受け取る。現在のパレットを通して、あるスキャニング順序で現在のパレットインデックスと同インデックスを有する連続した画素の数を決定する。２値化方法を用いて連続した画素の数マイナス１を２値文字列に変換する。現在のパレットインデックスに応じて適応的に選択されるコンテキストに従って、２値文字列のうち少なくとも１つの２値に対してレギュラーＣＡＢＡＣモードを適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による２値文字列の符号化を行う。【選択図】図２
2018170771.tif 000002
【特許請求の範囲】
【請求項１】
パレットインデックスマップを符号化する方法であって、
現在のブロックについてのパレットインデックスマップを受け取る工程と、
前記現在のブロックを通してあるスキャニング順序で、現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数を決定する工程と、
２値化方法を用いて、前記連続した画素の数マイナス１を２値文字列に変換する工程と、
前記現在のパレットインデックスに応じて適応的に選択されるコンテキストに従って、前記２値文字列のうち少なくとも１つの２値に対してレギュラーＣＡＢＡＣモードを適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による前記２値文字列の符号化を行う工程と、
を有する方法。
【請求項２】
パレットインデックスマップを復号化する方法であって、
インデックスモードに対応する現在のソースシンボルに関する現在のブロックの圧縮データを含む入力された符号化ビットストリームを受け取る工程と、
現在のランモードに対応する現在のパレットインデックスを決定する工程と、
前記現在のパレットインデックスに応じて適応的に選択されるコンテキストに従って、２値文字列のうち少なくとも１つの２値に対してレギュラーＣＡＢＡＣモードを適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による前記２値文字列の復号化を行う工程と、
２値化方法を用いて、前記２値文字列を、前記現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数に関連するランレングス値に変換する工程と、ここで、前記ランレングス値は、前記連続した画素の数マイナス１に対応し、
前記現在のブロックを通してあるスキャニング順序で、前記現在のパレットインデックスを用いて前記連続した画素の数を再構成する工程と、
を有する方法。
【請求項３】
前記現在のパレットインデックスは、前記入力された符号化ビットストリームから構文解析されるパレットインデックス、あるいは、再構成パレットインデックスに対応する
請求項２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１４年６月２０日に出願された米国特許仮出願番号６２／０１４９７０、２０１４年６月２６日に出願された米国特許仮出願番号６２／０１７４０１、２０１４年７月３日に出願された米国特許仮出願番号６２／０２０５１８、および、２０１４年７月７日に出願された米国特許仮出願番号６２／０２１２８７から優先権を主張する。これら米国特許仮出願は、参照によって本願に引用される。
【０００２】
本発明は、ビデオ符号化に関連する構文のエントロピー符号化に関する。特に、本発明は、ビデオ符号化に関する構文の２値化とコンテキスト適応型符号化の技術に関する。
【背景技術】
【０００３】
高効率ビデオ符号化（ＨＥＶＣ）は、近年発展している新しい符号化基準である。高効率ビデオ符号化（ＨＥＶＣ）システムにおいて、Ｈ．２６４／ＡＶＣの固定サイズのマクロブロックは、符号化ユニット（ＣＵ）という名のフレキシブルブロックによって置き換えられる。ＣＵ中の画素は、同じ符号化パラメータを共有して、符号化効率を改善する。ＣＵは、ＨＥＶＣにおいて、符号化ツリーユニット（ＣＴＵ）とも称される最大ＣＵ（ＬＣＵ）から始まる。符号化ユニットの概念に加え、予測ユニット（ＰＵ）の概念もＨＥＶＣに導入される。一旦、ＣＵ階層ツリーの分割が行われると、各リーフＣＵは、予測タイプとＰＵ分割にしたがって、さらに、一つ以上の予測ユニット（ＰＵ）に分割される。
【０００４】
コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）は、先進型ビデオ符号化、たとえば、Ｈ．２６４とＨＥＶＣ中に幅広く用いられている高効率エントロピー符号化ツールである。たとえば、ＨＥＶＣ基準の各種構文要素が、ＣＡＢＡＣモードで符号化される。このとき、エントロピー符号化は、基礎の構文要素に関連するコンテキストに基づいて、適応的に、２値化構文要素に適用される。図１は、ＣＡＢＡＣプロセスを示すブロック図である。ＣＡＢＡＣエンジン中の演算コーダーはバイナリシンボル値だけを符号化することができるので、ＣＡＢＡＣプロセスは、２値化部（１１０）を用いて、構文要素の値を２進列に変換する必要がある。この変換プロセスは、一般に、２値化と称される。符号化プロセス中、確率モデルが、異なるコンテキストの符号化シンボルから徐々に組み立てられる。コンテキストモデラー（１２０）はモデリングの目的を果たす。通常のコンテキストベースの符号化期間中、２値演算符号器に相当するレギュラー符号化エンジン（１３０）が用いられる。次のバイナリシンボルを符号化するモデリングコンテキストの選択は、符号化情報により決定される。シンボルはコンテキストモデリング段階無しで符号化することも可能であり、複雑性を減少させるために、バイパスモードと一般的に称される等しい確率分布を採用する。バイパスシンボルに対しては、バイパス符号化エンジン（１４０）が用いられる。図１に示されるように、スイッチ（Ｓ１、Ｓ２、Ｓ３）を用いることにより、データフローの行き先をレギュラーＣＡＢＡモードとバイパスモードとの間で切り替える。レギュラーＣＡＢＡＣモードが選択されるとき、スイッチは上方コンタクトの方に切り替えられる。図１に示されるように、バイパスモードが選択されるとき、スイッチは下方コンタクトの方に切り替えられる。
【０００５】
ＪＣＴ標準化組織は、現在、ＨＥＶＣスクリーンコンテンツ向け符号化（ＳＣＣ）拡張を開発している過程にある。連続した色調を有する従来の加工しないビデオと対照的に、スクリーンコンテンツビデオは、通常、少量のパイロットカラーと鋭角および境界を含む。いくつかの新しいツールが現在研究されていて、未来のＨＥＶＣ  ＳＣＣ拡張に採用される可能性がある。
【０００６】
ＨＥＶＣレンジ拡張（ＲＥｘｔ）の初期開発中、既に、パレットベース符号化に取り組むいくつかの提案がなされている。例えば、ＪＣＴＶＣ−Ｎ０２４７（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）、及びＪＣＴＶＣ−Ｏ０２１８（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）には、パレット予測と共有技術が開示されている。ＪＣＴＶＣ−Ｎ０２４７において、各カラーコンポーネントのパレットが構築、および、送信される。パレットが、左側隣接ＣＵから予測（あるいは、シェア）されて、ビットレートを減少させる。その後、それらのパレットインデックスを用いて、所定のブロック中の全画素が符号化される。ＪＣＴＶＣ−Ｎ０２４７による符号化プロセスの例は次の通りである。
【０００７】
１．パレットの送信：カラーインデックステーブルサイズがまず送信され、次に、パレットエレメンツが送信される。
２．画素値の送信：ＣＵ中の画素が、ラスター走査順序で符号化される。一つ以上の画素の各群において、まず、ランベースモードのフラグが送信されて、“ラン”モードまたは“上方コピー”モードが用いられるかどうかを示す。
２．１  Ｉｎｄｅｘ＿Ｍｏｄｅ：Ｉｎｄｅｘ＿Ｍｏｄｅにおいて、まず、パレットインデックスがシグナリングされて、次に、ラン値を示す“ｐａｌｅｔｔｅ＿ｒｕｎ”（たとえば、Ｍ）が続く。ラン値は、Ｍ個のサンプルの総数がすべて、Ｉｎｄｅｘ＿Ｍｏｄｅを用いて符号化されることを示す。ビットストリームでシグナリングされるのと同じパレットインデックスを有するので、それ以上の情報は、現在の位置および続くＭ個の位置に送信される必要がない。パレットインデックス（たとえば、ｉ）は、さらに、全部で３個のカラーコンポーネントによりシェアされてもよく、それは、ＹＵＶカラースペースの場合において、再構成された画素値が（Ｙ，Ｕ，Ｖ）＝（ｐａｌｅｔｔｅＹ［ｉ］，ｐａｌｅｔｔｅＵ［ｉ］，ｐａｌｅｔｔｅＶ［ｉ］）であることを意味する。
２．２  Ｃｏｐｙ＿Ａｂｏｖｅ＿Ｍｏｄｅ：Ｃｏｐｙ＿Ａｂｏｖｅ＿Ｍｏｄｅにおいて、値“ｃｏｐｙ＿ｒｕｎ”（たとえば、Ｎ）が送信される。これは、続くＮ個の位置（現在のものを含む）について、パレットインデックスは、上方ロウ中の対応するパレットインデックスと同じであることを示す。
３．剰余の送信：ステージ２で送信されるパレットインデックスが画素値に変換され、予測として用いられる。剰余情報は、ＨＥＶＣ剰余コーディングを用いて送信され、且つ、再構成の予測に加えられる。
【０００８】
一般のビデオ符号化と共に、スクリーンコンテンツ向け符号化においてパレットモード符号化ブロックに対して生成される構文要素に関連する符号化効率をさらに改善する方法を開発することが望まれる。
【発明の概要】
【０００９】
ビデオ符号化システムにおいて生成されるソースシンボルをエントロピー符号化及びエントロピー復号化する方法と装置を開示する。本発明によれば、まず、現在のシンボル値についてＭＳＢ（最上位ビット）インデックス、および、任意のリファインメントビットが決定される。単項コードあるいは短縮単項コードを用いて、現在のシンボル値のＭＳＢインデックスに関連するプレフィックス部を２値化することにより第１の２進列が生成される。さらに、もしリファインメントビットが存在する場合、固定長コードあるいは短縮２進コードを用いて、現在のシンボル値の１つ以上のリファインメントビットに対応するサフィックス部を２値化することにより、第２の２進列が生成される。第１の２進列は、ＣＡＢＡＣ（コンテキスト適応型２値算術符号化）を用いて符号化される。第２の２進列が存在する場合、第２の２進列もＣＡＢＡＣを用いて符号化される。
【００１０】
プレフィックス部は、ＭＳＢインデックスプラス１に対応してもよい。また、ｘがゼロより大きい場合、プレフィックス部は（ｆｌｏｏｒ（ｌｏｇ２（ｘ）＋１）であり、ｘが０である場合、プレフィックス部は０であってもよい。ここで、ｘは前記現在のシンボル値を示し、ｆｌｏｏｒ（ｙ）は、ｙ以下の最大整数を出力するｆｌｏｏｒ関数であり、ｌｏｇ２（）は、２を底とする対数関数である。第１の２進列の２値が閾値Ｔ以下の２値インデックスを有する場合、当該２値はレギュラーＣＡＢＡＣモードで符号化されてもよい。第１の２進列の２値が閾値Ｔより大きい２値インデックスを有する場合、当該２値はバイパスモードで符号化されてもよい。
【００１１】
１つの実施形態において、現在のソースシンボルは、ＳＣＣ（スクリーンコンテンツ向け符号化）のパレットモード符号化ブロック中の連続的に繰り返すパレットインデックスのランレングスマイナス１を示す。第１の２進列は、（ｆｌｏｏｒ（ｌｏｇ２（（ＭａｘＰａｌｅｔｔｅＲｕｎ））＋１）に等しい最大値を有する短縮単項コードを用いてプレフィックス部を２値化することにより導出される。ここで、ＭａｘＰａｌｅｔｔｅＲｕｎは、現在の符号化ユニット（ＣＵ）中の残りのまだ符号化されていない画素の数のマイナス１に等しい。第２の２進列は、（ＭａｘＰａｌｅｔｔｅＲｕｎ−（１＜＜（ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１−１）））に等しい最大を有する短縮２進コードを用いてサフィックス部を２値化することにより導出される。ここで、ＭａｘＰａｌｅｔｔｅＲｕｎは、現在の符号化ユニット（ＣＵ）中の残りのまだ符号化されていない画素の数のマイナス１に等しく、ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１は、プレフィックス部の値を示す。
【００１２】
ＣＡＢＡＣは、連続的に繰り返すパレットインデックスのランタイプが条件とされていてもよく、レギュラーＣＡＢＡＣモードは、第１の２進列、あるいは、第２の２進列の１つ以上の２値に適用されてもよい。例えば、現在のソースシンボルは、上方ロウ中の連続第１インデックスの第１ランレングスマイナス１を表す構文Ｃｏｐｙ＿Ａｂｏｖｅ＿Ｍｏｄｅ、あるいは、同じロウ中の連続第２インデックスの第２ランレングスマイナス１を表す構文Ｉｎｄｅｘ＿Ｍｏｄｅに対応していてもよい。ゼロに等しい２値インデックスを有する第１の２進列の２値は、３個のコンテキストを有するレギュラーＣＡＢＡＣモードで符号化される。パレットインデックスが第１閾値Ｔ１より小さい場合、第１コンテキストが選択される。パレットインデックスが第１閾値Ｔ１以上で、且つ、第２閾値Ｔ２より小さい場合、第２コンテキストが選択される。パレットインデックスが第２閾値Ｔ２以上である場合、第３コンテキストが選択される。第２閾値Ｔ２は、第１閾値Ｔ１より大きい。例えば、第１閾値Ｔ１は２であり、第２閾値Ｔ２は４あるいは８である。
【００１３】
現在のソースシンボルは、二次元符号付きあるいは符号なしのソースベクトルの第１コンポーネント、あるいは、第２コンポーネントの絶対値に対応していてもよい。また、プレフィックス部は、サフィックス部及び符号ビットよりも前に符号化される。
【００１４】
本発明の別の実施形態において、インデックスモードに対し、現在のブロックを通してあるスキャニング順序で、現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数が決定される。２値化方法を用いて、連続した画素の数マイナス１が２値文字列に変換される。現在のパレットインデックスに応じて適応的に選択されるコンテキストに従って、２値文字列のうち少なくとも１つの２値に対してレギュラーＣＡＢＡＣモードを適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による２値文字列の符号化が行われる。対応する復号プロセスも開示される。例えば、デコーダは、インデックスモードに対応する現在のソースシンボルに関する現在のブロックの圧縮データを含む入力された符号化ビットストリームを受け取る。現在のランモードに対応する現在のパレットインデックスが決定される。そして、現在のパレットインデックスに応じて適応的に選択されるコンテキストに従って、２値文字列のうち少なくとも１つの２値に対してレギュラーＣＡＢＡＣモードを適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による２値文字列の復号化が行われる。２値化方法を用いて、２値文字列が、現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数に関連するランレングス値に変換される。ここで、ランレングス値は、連続した画素の数マイナス１に対応する。デコーダ側において、現在のパレットインデックスは、入力された符号化ビットストリームから構文解析されるパレットインデックス、あるいは、再構成パレットインデックスに対応していてもよい。
【図面の簡単な説明】
【００１５】
【図１】ＣＡＢＡＣ（コンテキスト適応型２値算術符号化）のブロック図である。ソース構文は、レギュラーＣＡＢＡＣモード、あるいは、バイパスモードを用いて、適応的に符号化される。
【図２】本発明の一実施形態に係るソースシンボルのエントロピー符号化システムのフローチャートである。ソースシンボルはプレフィックス部及びサフィックス部で表され、プレフィックス部及びサフィックス部の２進列はＣＡＢＡＣを用いて符号化される。
【図３】本発明の一実施形態に係るソースシンボルのエントロピー復号化システムのフローチャートである。ソースシンボルはプレフィックス部及びサフィックス部で表され、プレフィックス部及びサフィックス部の２進列はＣＡＢＡＣを用いて符号化される。
【発明を実施するための形態】
【００１６】
以下の記述は、本発明を実現する最適なモードである。この記述は、本発明の一般原則を説明することを目的とするものであり、本発明を限定するものではない。本発明の範囲は、特許請求の範囲によって決定される。
【００１７】
本発明は、ビデオ符号化等のソースデータ圧縮システムにおいて生成されるソースシンボルの普遍的なエントロピー符号化方法を開示する。本方法は、ソースシンボルに対応する符号なしの値を、最上位ビット（ＭＳＢ）部分とその値のリファインメントビット部分の２つの部分からなるバイナリー形式で表す。ＭＳＢ部分中の各要素には、インデックスが割り当てられる。結果として得られるコード名は、プレフィックス部とサフィックス部の連結となる。プレフィックス部は、シンボル値のＭＳＢインデックスに関連する。一実施形態において、ＭＳＢ部分は、ｆｌｏｏｒ（ｌｏｇ２（ｘ））にしたがって決定される。ｘは、ソースシンボルに関連する符号なしの値に対応する。ｆｌｏｏｒ（ｙ）は、ｙ以下の最大整数を出力するｆｌｏｏｒ関数である。ｌｏｇ２（ｘ）は２を底とする対数関数である。この例において、対応するＭＳＢ部分は、ｘ＝０の場合に無意味になる。したがって、“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”により表されるＭＳＢ部分プラス１が導入される。符号なしのシンボルｘのＭＳＢプラス１、つまり“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”は次のように導出される。
【００１８】
【数１】
2018170771.tif 000003
【００１９】
最大構文値が知られている場合、プレフィックス部は、可変長さコード、たとえば、単項コードあるいは短縮単項コードを用いて符号化される。所定のシンボル値に関して、サフィックス部は存在するかもしれないし、存在しないかもしれない。サフィックス部はリファインメントビットを表す。ｍｓｂ＿ｉｄ＿ｐｌｕｓ１＞１の場合、サフィックス部は存在する。ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓにより示されるリファインメントビットの値は、固定長のバイナリーコード、あるいは、短縮２進コードを用いて２値化される。たとえば、最大構文値が知られている場合、リファインメントビットの値は、（“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”−１）、あるいは、短縮２進コードに等しい文字列長さを有する文字列により示される。復号された構文値ｘは、以下にしたがって、復号されたプレフィックス部（すなわち、（“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”−１））と復号されたサフィックス部（すなわち、“ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓ”）に基づいて導出される。
【００２０】
【数２】
2018170771.tif 000004
【００２１】
表１は、本発明の実施形態を組み込んだ２値化プロセスによるシンボル値０〜３１に対応するコード名２値文字列（２進列とも称される）を示す。“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”の値は、式（１）に基づいて導出される。リファインメントビットの長さは（“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”−１）にしたがって決定される。本発明による２値化プロセスは、上述の２値化プロセスを、符号付きシンボル値の絶対値プラス符号化情報に適用することによって、符号付きソースシンボルに適用することもできる。さらに、２値化プロセスを各ベクトルコンポーネントに用いることにより、２値化プロセスを、多次元ソースデータ、たとえば、ベクトルに適用することもできる。
【００２２】
【表１】
2018170771.tif 000005
【００２３】
本発明によれば、“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”に関して得られた２値文字列は、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）により符号化される。プレフィックス部は、更に複雑なコンテキストモデリングスキームにより、ＣＡＢＡＣで符号化される。本発明によれば、リファインメントと符号ビットは、より簡潔なコンテキストモデリングスキームで、あるいは、バイパスモードで符号化される。一実施形態において、プレフィックス部２値文字列は、閾値Ｔ以下である２値インデックス値を有する２値についてはＣＡＢＡＣモードで符号化され、それ以外はバイパスモードで符号化される。一実施形態において、文脈選択は、２値インデックスに基づいて行われる。また、隣接インデックス値を有するいくつかの２値は、同じコンテキストをシェアすることができる。別の実施形態において、Ｔは、ビットストリーム構文解析スループット制約と符号化効率要求に基づいて、適応的に選択される。低い閾値Ｔの場合、より多くのシンボルがバイパスモードで符号化されるので、低い符号化効率の代わりに、ビットストリーム構文解析スループットを増加させる。閾値Ｔも、現在の符号化ユニット（ＣＵ）中の符号化ＣＡＢＡＣ２値の消費に応じて調整される。たとえば、現在の符号化ユニットにおいてより小さいＣＡＢＡＣ符号化２値が望まれる場合、小さい閾値Ｔが用いられる。いくつかの実施形態において、閾値Ｔは、ＣＵサイズに応じて適応的に選択される。たとえば、パレット符号化がＣＵに適用される場合、大きいＣＵサイズは、ランモードにおいて、長いランレングスになる。この場合、さらなる符号化効率向上のために、大きい閾値が用いられる。
【００２４】
本発明は、普遍的符号化ツールとして開発され、多様な符号化統計に対応する異なる構文タイプのエントロピー符号化に役立つ。本発明は、特に、イントラブロックコピー（ＩｎｔｒａＢＣ）、パレット符号化、および、イントラ文字列コピーに例示される新たな符号化ツールに由来する、混合したビデオコンテンツタイプと多数の新しい構文タイプを有するスクリーンコンテンツ向け符号化に有益である。表２は、本発明の実施形態を組み込んだコンテキストベース符号化を用いた、符号なしソースシンボルの符号化／復号化を示す構文表である。異なるコンテキストモデリングスキームは、入力パラメータ“ｓｙｎｔａｘＴｙｐｅ”により特定される異なる構文タイプに使用される。表２に示されるように、構文“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”により示されるプレフィックス部がまずシグナリングされる。“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”の値が１より大きい場合、構文“ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓ”がシグナリングされる。言い換えれば、“ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”の値が０か１の場合、サフィックス部はシグナリングされない。
【００２５】
【表２】
2018170771.tif 000006
【００２６】
上記で開示されるＭＳＢインデックスのコンテキストベース符号化は、符号化プロセス期間中に生成される各種構文要素に適用可能である。たとえば、ＨＥＶＣ  ＲＥｘｔで定められるスクリーンコンテンツ向け符号化（ＳＣＣ）において、ブロック中のカラーインデックスは、“Ｒｕｎ”モードを用いて符号化されてもよい。“Ｒｕｎ”モードが選択されるとき、現在のパレットランモードにおいて連続的に繰り返す画素の数マイナス１がシグナリングされる。前述のように、Ｉｎｄｅｘ＿ＭｏｄｅとＣｏｐｙ＿Ａｂｏｖｅ＿Ｍｏｄｅとで示される２種類の“Ｒｕｎ”モードがある。一実施形態において、プレフィックス部とサフィックス部の両方を、最大ラン値“ＭａｘＰａｌｅｔｔｅＲｕｎ”を用いて短縮シグナリングで符号化する。ここで、“ＭａｘＰａｌｅｔｔｅＲｕｎ”は、現在の符号化ユニット（ＣＵ）中の残りのまだ符号化されていない画素の数量のマイナス１に等しい。結果として得られるプレフィックス構文“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”は、ｃＭａｘ＝ｆｌｏｏｒ（ｌｏｇ２（（ＭａｘＰａｌｅｔｔｅＲｕｎ））＋１の短縮単項コードを用いて符号化される。ここで、関数ｆｌｏｏｒ（ｘ）は、ｘ以下である最大整数を出力する。サフィックス構文“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓ”は、ｃＭａｘ＝ＭａｘＰａｌｅｔｔｅＲｕｎ−（１＜＜（ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１−１））を有する短縮２進コードを用いて符号化される。さらに、プレフィックス“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”は、コンテキストベース符号化を用いて符号化される。ここで、コンテキストは、２値インデックスに基づいて形成される。二個の別々のコンテキストセットは、それぞれ、Ｃｏｐｙ＿Ａｂｏｖｅ＿Ｍｏｄｅに等しい“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ”とＩｎｄｅｘ＿Ｍｏｄｅに使用される。
【００２７】
バイパスモードは、閾値Ｔｒより大きいインデックス値を有する２値を符号化するのに用いられる。たとえば、Ｔｒは、４か６に等しい。“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ”がＩｎｄｅｘ＿Ｍｏｄｅに等しく、現在のパレットインデックスが大きいとき、パレットランレングスマイナス１は、通常、０に等しい。よって、２値インデックス０のコンテキストモデリングは、さらに、Ｉｎｄｅｘ＿Ｍｏｄｅランタイプについて、現在のパレットインデックス“ｐａｌｅｔｔｅＩｎｄｅｘ”が条件とされている。一実施形態において、（ｐａｌｅｔｔｅＩｎｄｅｘ＜Ｔ１）に対し、第１コンテキスト（すなわち、コンテキストインデックス＝０）が選択される。（Ｔ１＜＝ｐａｌｅｔｔｅＩｎｄｅｘ＜Ｔ２）に対し、第２コンテキスト（すなわち、コンテキストインデックス＝１）が選択される。（Ｔ２＜＝ｐａｌｅｔｔｅＩｎｄｅｘ）に対し、第３コンテキスト（すなわち、コンテキストインデックス＝１）が選択される。閾値Ｔ２は閾値Ｔ１より大きい。Ｔ１とＴ２の値は、適当に選択される。たとえば、Ｔ１は２に等しく、Ｔ２は、４か８に等しい。
【００２８】
表３は、プレフィックス“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”のコンテキストベース符号化における文脈選択のマッピング表である。文脈選択は、冗長性除去による符号化された修正パレットインデックスに対応する構文解析パレットインデックスが条件とされる。文脈選択も、パレットテーブルにより用いられる実際のパレットインデックスに対応する再構成パレットインデックスが条件とされている。一実施形態において、“ｐａｌｅｔｔｅ＿ｒｕｎ＿ｔｙｐｅ＿ｆｌａｇ”がＣｏｐｙ＿Ｉｎｄｅｘ＿Ｍｏｄｅに等しく、構文解析パレットインデックス値が閾値Ｔｓより大きいとき、パレットラン符号化はスキップされる。この場合、パレットランレングスマイナス１が０になると推定される。一実施形態において、Ｔｓは、現在のＣＵ中のパレットカラーの数量から導出される。閾値Ｔｒ、Ｔ１、Ｔ２、あるいは、Ｔｓは、ＳＰＳ（ｓｅｑｕｅｎｃｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ）、ＰＰＳ（ｐｉｃｔｕｒｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ）、スライスヘッダー、および／あるいは、パレットモード符号化ＣＵでシグナリングされる。
【００２９】
【表３】
2018170771.tif 000007
【００３０】
構文要素に関連するＭＳＢインデックスのコンテキストベース符号化の別の例において、得られたプレフィックス構文“ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”は、ｃＭａｘ＝ｆｌｏｏｒ（ｌｏｇ２（（ＭａｘＰａｌｅｔｔｅＩｄｘ））＋１を有する短縮単項コードを用いて符号化される。サフィックス構文“ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｒｅｆｉｎｅｍｅｎｔ＿ｂｉｔｓ”は、ｃＭａｘ＝ＭａｘＰａｌｅｔｔｅＩｄｘ−（１＜＜（ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１−１））を有する短縮２進コードにより符号化される。エントロピー符号化プレフィックス“ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”のコンテキストモデリングは、２値インデックスが条件とされてもよい。エントロピー符号化プレフィックス“ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”のコンテキストモデリングは、さらに、ＭａｘＰａｌｅｔｔｅＩｄｘが条件とされてもよい。“ＭａｘＰａｌｅｔｔｅＩｄｘ”は、冗長性除去による最大修正パレットインデックスに対応する最大構文解析パレットインデックスを示す。別の実施形態において、“ＭａｘＰａｌｅｔｔｅＩｄｘ”は、パレットテーブルにより使用される最大の実際のパレットインデックスに対応する最大の再構成パレットインデックスを表す。表４は、プレフィックス“ｐａｌｅｔｔｅ＿ｉｎｄｅｘ＿ｍｓｂ＿ｉｄ＿ｐｌｕｓ１”のコンテキストベース符号化における文脈選択のマッピングテーブルを示す。ここで、異なるコンテキストセットは、異なる値のｃＭａｘ＝ｆｌｏｏｒ（ｌｏｇ２（（ＭａｘＰａｌｅｔｔｅＩｄｘ））＋１を有するＣＵに用いられてもよい。
【００３１】
【表４】
2018170771.tif 000008
【００３２】
上記のコンテキストベースの符号化は、ＨＥＶＣ  ＲＥｘｔに関連するスクリーンコンテンツ向け符号化（ＳＣＣ）に用いられるイントラ文字列コピー（ＩｎｔｒａＢＣ）ツール中で使用される参照文字列に関連する別の構文要素にも適用可能である。たとえば、本発明によるコンテキストベース符号化は、構文要素ｄｉｃｔｉｏｎａｒｙ＿ｐｒｅｄ＿ｌｅｎｇｔｈ＿ｍｉｎｕｓ１、ｄｉｃｔｉｏｎａｙ＿ｐｒｅｄ＿ｏｆｆｓｅｔ＿ｍｉｎｕｓ１、及び（ｄｉｃｔｉｏｎａｙ＿ｐｒｅｄ＿ｏｆｆｓｅｔＸ、ｄｉｃｔｉｏｎａｙ＿ｐｒｅｄ＿ｏｆｆｓｅｔＹ）のそれぞれで表される長さマイナス１、オフセットマイナス１、及びオフセットベクトルを表すＭＳＢインデックスに適用可能である。長さの符号化において、残りのまだ符号化されていない画素の数マイナス１に等しい最大ラン値を用いてプレフィックス部とサフィックス部を符号化するために短縮シグナリングが用いられてもよい。オフセットベクトルの符号化において、本発明によるコンテキストベースの符号化は、各ベクトルコンポーネントの絶対値に適用可能である。表５から表７は、上述の構文要素のそれぞれで表される長さマイナス１、オフセットマイナス１、及びオフセットベクトル（ｘ，ｙ）に関する文脈選択のマッピング表である。
【００３３】
【表５】
2018170771.tif 000009
【００３４】
【表６】
2018170771.tif 000010
【００３５】
【表７】
2018170771.tif 000011
【００３６】
インデックスモードにおいて、現在のパレットインデックスとランレングスがシグナリングされる。パレットインデックスは、通常、対応するランレングスの前にシグナリングされる。本発明の別の実施形態において、対応するランレングスは、パレットインデックスに基づいて、コンテキスト適応型符号化される。たとえば、インデックスモードに対し、現在のブロックを通してあるスキャニング順序で、現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数が決定される。連続した画素の数のマイナス１は、２値化方法を用いて、２値文字列に変換される。同じパレットインデックスに基づいて適応的に選択されるコンテキストにしたがって、レギュラーＣＡＢＡＣモードを、２値文字列の少なくとも一つの２値に適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による２値文字列の符号化が行われる。対応する復号化プロセスは、エンコーダにより実行されるこれらのステップを実行する。たとえば、デコーダは、インデックスモードに対応する現在のソースシンボルに関する現在のブロックの圧縮データを含む入力符号化ビットストリームを受けとる。現在のランモードに関する現在のパレットインデックスが決定される。その後、現在のパレットインデックスに基づいて適応的に選択されるコンテキストにしたがって、レギュラーＣＡＢＡＣモードを、２値文字列の少なくとも一つの２値に適用することにより、コンテキスト適応型２値算術符号化（ＣＡＢＡＣ）による２値文字列の復号化が行われる。２値文字列は、２値化方法を用いて、現在のパレットインデックスと同じパレットインデックスを有する連続した画素の数に関連するランレングス値に変換される。ランレングス値は、連続した画素の数のマイナス１に対応する。現在のブロックを通してあるスキャニング順序で、現在のパレットインデックスを用いて、符号化された連続画素が再構成される。デコーダ側で、現在のパレットインデックスは、入力符号化ビットストリームから構文解析されるパレットインデックス、あるいは、再構成パレットインデックスに対応する。
【００３７】
図２は、本発明の一実施形態によるソースシンボルのエントロピー符号化システムのフローチャートである。ソースシンボルは、プレフィックス部及びサフィックス部で表される。プレフィックス部及びサフィックス部の２進列は、ＣＡＢＡＣを用いて符号化される。工程２１０において、システムは、一連のシンボル値に属する現在のシンボル値を有する現在のソースシンボルを受けとる。入力データは、符号化される現在のブロックの画素データ、あるいは、カラーインデックスに対応する。入力データは、メモリ（たとえば、コンピュータメモリ、バッファ（ＲＡＭやＤＲＡＭ）、あるいは、その他の媒体）、あるいは、プロセッサから取得される。工程２２０において、現在のシンボル値についてＭＳＢ（最上位ビット）インデックスと任意のリファインメントビットが決定される。工程２３０において、単項コードあるいは短縮単項コードを用いて、現在のシンボル値のＭＳＢインデックスに関連するプレフィックス部を２値化することにより、第１の２進列が導出される。工程２４０において、もしリファインメントビットが存在する場合、固定長コードあるいは短縮２進コードを用いて、現在のシンボル値の１つ以上のリファインメントビットに対応するサフィックス部を２値化することにより、第２の２進列が導出される。工程２５０において、第１の２進列はＣＡＢＡＣ（コンテキスト適応型２値算術符号化）を用いて符号化される。第２の２進列が存在する場合、第２の２進列もＣＡＢＡＣを用いて符号化される。
【００３８】
図３は、本発明の一実施形態に係るソースシンボルのエントロピー復号化システムのフローチャートである。ソースシンボルは、プレフィックス部及びサフィックス部で表される。プレフィックス部及びサフィックス部の２進列は、ＣＡＢＡＣを用いて符号化される。ステップ３１０において、システムは、現在のソースシンボルに関する圧縮データを含む入力符号化ビットストリームを受けとる。入力符号化ビットストリームは、メモリ（たとえば、コンピュータメモリ、バッファ（ＲＡＭやＤＲＡＭ）、あるいは、その他の媒体）、あるいは、プロセッサから取得される。工程３２０において、符号化されたビットストリームは、ＣＡＢＡＣ（コンテキスト適応型２値算術符号化）を用いて復号化され、第１の２進列、および、もしあれば第２の２進列を回復する。工程３３０において、現在のソースシンボルの現在のシンボル値のＭＳＢ（最上位ビット）インデックスに関連するプレフィックス部は、単項コードあるいは短縮単項コードを用いて第１の２進列を復号化することにより回復される。工程３４０において、もし第２の２進列が存在する場合、現在のシンボル値の１つ以上のリファインメントビットに対応するサフィックス部は、固定長コードあるいは短縮２進コードを用いて第２の２進列を復号化することにより回復される。工程３５０において、現在のシンボル値のＭＳＢインデックスと、もしリファインメントビットが存在する場合は現在のシンボル値のリファインメントビットとに基づいて、現在のソースシンボルが回復される。
【００３９】
上記に示されたフローチャートは、本発明に係るプレフィックス部とサフィックス部を用いたエントロピー符号化を説明する。当業者は、本発明の精神と領域を脱しない範囲内で、各ステップを修正、再アレンジ、分割、結合して、本発明を実行することができる。本開示において、特定の構文と語義が用いられて、例を説明し、本発明の実施形態を実行する。当業者は、本発明の精神と領域を脱しない範囲内で、構文と語義を、等価の構文と語義と置き換えることにより、本発明を実施する。
【００４０】
上記の説明により、当業者は、特定のアプリケーションとその要求のコンテキストに記述される通り、本発明を行うことができる。当業者なら、記述された具体例への各種修正が理解でき、ここで定義される一般原則は別の実施例にも応用できる。よって、本発明は、記述される特定の実施例に制限することを目的としておらず、原理と新規特徴と一致する最大範囲に一致する。上述の記述において、本発明の十分な理解を提供するため、各種特定の詳細が説明される。当業者なら、本発明が行えることが理解できる。
【００４１】
上述の本発明の実施形態は、各種ハードウェア、ソフトウェアコード、または、それらの組み合わせで実行される。たとえば、本発明の実施形態は、画像圧縮チップに整合される回路、または、画像圧縮ソフトウェアに整合されるプログラムコードで、上述の処理を実行する。本発明の実施形態は、デジタルシグナルプロセッサ（ＤＳＰ）で実行されるプログラムコードで、上述の処理を実行する。本発明は、さらに、コンピュータプロセッサ、デジタルシグナルプロセッサ、マイクロプロセッサ、または、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）により実行される複数の機能を含む。これらのプロセッサは、本発明により具体化される特定の方法を定義する機械読み取り可能ソフトウェアコード、または、ファームウェアコードを実行することにより、本発明による特定のタスクを実行するように設定される。ソフトウェアコード、または、ファームウェアコードは、異なるプログラミング言語、および、異なるフォーマット、または、スタイルで開発される。ソフトウェアコードは、さらに、異なるターゲットプラットフォームにコンパイルされる。しかし、本発明によるタスクを実行するソフトウェアコードの異なるコードフォーマット、スタイル、および、言語、および、設定コードのその他の手段は、本発明の精神を逸脱しない。
【００４２】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図１】
2018170771.tif 000012
【図２】
2018170771.tif 000013
【図３】
2018170771.tif 000014