(57)【要約】【課題】ビデオ符号化におけるパレットモードコンテキスト符号化、および、２値化の方法を提供する。【解決手段】パレット符号化をカレントブロックに適用することにより、入力ビットストリームから、カレントブロックに生成される一つ以上のコピーインデックスモードにシグナリングされる第一インデックス値の総数に関連する第一数に対応する符号化第一数を解析して、一つの第一インデックス値およびＮランをシグナリングする。コピーインデックスモードが、全てが一つの第一インデックス値を有するＮ連続インデックスを表し、かつ、Ｎが正の整数である。ライスパラメータで復号されるトランケーティドライスを、符号化第一数のプレフィックス部分に適用する工程を含む復号プロセスを適用することにより、符号化第一数から第一数をリカバーする。パレット復号を適用して、第一数を有する情報を用いて、前記カレントブロックをリカバーする。【選択図】図１
2019208271.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャ中のブロックに用いるパレットインデックスマップデコーディング方法であって、
前記ピクチャ中のカレントブロックに関連する入力ビットストリームを受信する工程と、
分割操作またはテーブルルックアップ操作を用いずに、前記カレントブロックのパレットインデックスの最大可能値を特定する第一変数MaxPaletteIndex, からライスパラメータを導出する工程と、 
パレット符号化を前記カレントブロックに適用することにより、前記入力ビットストリームから、前記カレントブロックに生成される一つ以上のコピーインデックスモードにシグナリングされる第一インデックス値の総数に関連する第一数に対応する符号化第一数を解析して、一つの第一インデックス値およびＮランをシグナリングすることにより、前記コピーインデックスモードが、全てが一つの第一インデックス値を有するＮ連続インデックスを表し、且つ、Ｎが正の整数である工程と、
前記ライスパラメータで復号されるトランケーティドライスを、前記符号化第一数のプレフィックス部分に適用する工程を含む復号プロセスを適用することにより、前記符号化第一数から前記第一数をリカバーする工程、および、
パレット復号を適用して、前記第一数を有する情報を用いて、前記カレントブロックをリカバーする工程、 
を有することを特徴とする方法。
【請求項２】
前記ライスパラメータを前記第一変数から導出する前記工程は、 (2 + MaxPaletteIndex/M)に等しい前記ライスパラメータを割り当て、Ｍは、２の冪の整数で、MaxPaletteIndex/Mに関連する分割操作の必要性を回避することを特徴とする請求項１に記載の方法。
【請求項３】
前記ライスパラメータを前記第一変数から導出する前記工程は、 (2 + (MaxPaletteIndex >> N))に等しい前記ライスパラメータを割り当て、Ｎは正の整数、且つ、“>>” は、右シフト操作に対応することを特徴とする請求項１に記載の方法。
【請求項４】
前記ライスパラメータを前記第一変数から導出する前記工程は、 ((L + MaxPaletteIndex) >> N)に等しい前記ライスパラメータを割り当て、ＬとＮは、正の整数、且つ、 “>>”は、右シフト操作に対応することを特徴とする請求項１に記載の方法。
【請求項５】
ピクチャ中のブロックに用いられるパレットインデックスマップ符号化の方法であって、
前記ピクチャ中のカレントブロックに関連する入力データを受信する工程と、
パレット符号化を前記カレントブロックに適用して、コピーインデックスモードおよびコピーアバブモードを含むパレット符号化モードを用いて、前記カレントブロックの一つ以上の符号化されたシンボルを生成し、一つの第一インデックス値とＮ１ランをシグナリングすることにより、前記コピーインデックスモードは、全てが一つの第一インデックス値を有するＮ１連続インデックスを表し、および、Ｎ２ランをシグナリングすることにより、前記コピーアバブモードは、全て、画素上の対応するＮ２と同じ第二インデックス値を有するＮ２連続第二インデックス値を表し、且つ、Ｎ１とＮ２が、正の整数である工程と、
前記カレントブロックに生成される一つ以上のコピーインデックスモードにシグナリングされる第一インデックス値の総数に関連する第一数を識別する工程と、
分割操作またはテーブルルックアップ操作を用いずに、ライスパラメータを、前記カレントブロックのパレットインデックスの最大可能値を指定する第一変数から導出する工程、および、
前記ライスパラメータを有するトランケーティドライスコードを用いて、前記第一数を２値化して、プレフィックス部分を生成する工程、
を有することを特徴とする方法。
【請求項６】
前記ライスパラメータを前記第一変数から導出する前記工程は、 (2 + MaxPaletteIndex/M)に等しい前記ライスパラメータを割り当て、Ｍは２の冪の整数で、MaxPaletteIndex/Mに関連する分割操作の必要を回避することを特徴とする請求項５に記載の方法。
【請求項７】
前記ライスパラメータを前記第一変数から導出する前記工程は、 (2 + (MaxPaletteIndex >> N))に等しい前記ライスパラメータを割り当て、Ｎは正の整数、且つ、 “>>”は右シフト操作に対応することを特徴とする請求項５に記載の方法。
【請求項８】
前記ライスパラメータを前記第一変数から導出する前記工程は、 ((L + MaxPaletteIndex) >> N)に等しい前記ライスパラメータを割り当て、ＬとＮは、正の整数、且つ、 “>>”は、右シフト操作に対応することを特徴とする請求項５に記載の方法。
【請求項９】
ピクチャ中のブロックに用いられるパレットインデックスマップ符号化の方法であって、
前記ピクチャ中のカレントブロックに関連する入力ビットストリームを受信する工程と、
転置プロセスが、前記カレントブロックの関連するパレットインデックスに適用されるか否かを指定する第一構文要素を解析する工程と、 
前記第一構文要素の後、前記カレントブロックのビットストリームの位置で、第二構文要素を解析して、前記カレントブロックの最新のランタイプモードを指定し、前記最新のランタイプモードが、前記カレントブロックの最新のランタイプが、コピーインデックスモードまたはコピーアバブモードであるかを指定し、および、前記カレントブロックが、コピーインデックスモードとコピーアバブモードを含むランタイムモードを有するパレット符号化モードを用いて符号化される工程、および、
前記カレントブロックの最新のランタイプモード、および、前記カレントブロックの前記一つ以上のランタイプモードを含む復号された情報にしたがって、パレット復号を前記カレントブロックに適用する工程、
を有することを特徴とする方法。
【請求項１０】
ピクチャ中のブロックに用いられるパレットインデックスマップ符号化の方法であって、
前記ピクチャ中のカレントブロックに関連する入力データを受信する工程と、
パレット符号化を前記カレントブロックに適用して、パレット符号化モードを用いて、前記カレントブロックの一つ以上の符号化されたシンボルを生成し、前記パレット符号化モードは、コピーインデックスモードおよびコピーアバブモードを含むランタイプモードを有し、
転置プロセスが、前記カレントブロックの関連するパレットインデックスに適用されるか否かを指定する第一構文要素をシグナリングする工程、および、
前記第一構文要素の後、前記カレントブロックのビットストリームの位置で、第二構文要素をシグナリングして、前記カレントブロックの最新のランタイプモードを指定し、前記最新のランタイプモードが、カレントブロックの最新のランタイプが、前記コピーインデックスモードまたは前記コピーアバブモードであるか指定する工程、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連文献の相互参照］
この出願は、２０１５年４月８日に出願された米国特許仮出願番号６２／１４４５２９、２０１５年４月１０日に出願された米国特許仮出願番号６２／１４５５７８、２０１５年５月２９日に出願された米国特許仮出願番号６２／１６８１５１、２０１５年６月９日に出願された米国特許仮出願番号６２／１７３０３０、２０１５年５月５日に出願されたＰＣＴ／ＣＮ２０１５／０７８２６９から、優先権を主張するものであり、その内容は引用によって本願に援用される。
【０００２】
本発明は、ビデオデータのパレット符号化に関するものであって、特に、複雑性を減少させる、および／または、パレット符号化に関する構文要素に関連するスループットを増加させる各種技術に関するものである。
【背景技術】
【０００３】
高効率映像符号化(ＨＥＶＣ)は、近年発展している新しい符号化基準である。高効率映像符号化(ＨＥＶＣ)システムにおいて、Ｈ.２６４／ＡＶＣの固定サイズのマイクロブロックは、符号化ユニット(ＣＵ)というフレキシブルなブロックにより代替される。近年のＨＥＶＣ発展において、パレットベースの符号化が、スクリーンコンテンツ符号化(ＳＣＣ)に用いられるようになっている。パレット符号化の構文は、主に、二個の部分から構成される。ひとつは、パレット表のシグナリング、もう一つは、符号化されるブロックの情報を表すブロック(即ち、ＣＵ)のインデックスマップのシグナリングである。インデックスマップにおいて、インデックスの数、最新の run_type フラグ、および、グループ化されたインデックスがシグナリングされる。インデックス情報のシグナリング後、一対のランタイプ、および、ランの数が繰り返しシグナリングされる。最後に、必要ならば、エスケープ値の群がシグナリングされる。
【０００４】
ＨＥＶＣ文献 JCTVC-T1005 (Joshi, et al., HEVC Screen Content Coding Draft Text 3, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10-18 Feb. 2015, 文献: JCTVC-T1005)において、対応するブロック (即ち、カレントブロックのビットストリーム中のpalette_run_mode および palette_run 構文要素の前)の符号化データの前に、パレットインデックスはグループ化、および、シグナリングされる。一方、エスケープ画素は、対応するブロックの符号化データの終わりで符号化される。構文要素palette_run_mode および palette_run は、パレットインデックスとエスケープ画素間で符号化される。図１は、JCTVC-T1005によるインデックスマップ構文シグナリングのフローチャートである。インデックスの数(１１０)、最新のrun_type フラグ(１３０)、および、グループ化されたインデックス(１２０)がシグナリングされる。インデックス情報のシグナリング後、一対のランタイプ(１４０)、および、ランの数(１５０)が繰り返しシグナリングされる。最後に、必要であれば、エスケープ値(１６０)の群がシグナリングされる。 
【０００５】
JCTVC-T1005において、last_palette_run_type_flag は、それ自身のコンテキストを用いて符号化する。コンテキスト表は表１に示され、palette_run_type_flag および last_palette_run_type_flagの初期値(即ち、initValue)が明記される。
【表１】
2019208271.tif 000003
【０００６】
さらに、それぞれ、一コンテキスト (ctxIdx = 0)を有するpalette_run_type_flag および last_palette_run_type_flagが、以下の表で明記される。
【表２】
2019208271.tif 000004
【発明の概要】
【課題を解決するための手段】
【０００７】
パレット符号化モードを用いて、最新のランタイプモードに用いる構文要素のコンテキストベースのエントロピー符号化、および、ランタイプモードに用いる構文要素のコンテキストベースのエントロピー符号化間でコンテキストをシェアすることにより、複雑性を減少させるビデオ符号化の方法が開示される。特に、コンテキスト適応型二値算術符号化 (ＣＡＢＡＣ)に対応するコンテキストベースのエントロピー符号化、および、最新のランタイプモードに対応する構文要素、および、ランタイプモードに対応する構文要素のＣＡＢＡＣ符号化は、一単一コンテキストをシェアする。
【０００８】
カレントブロックのパレットインデックスの数に関連する構文要素の２値化の複雑性を減少させる方法も開示される。パレット符号化がカレントブロックに適用されるとき、コピーインデックスモード、および、コピーアバブモード(copy-above mode)を含むパレット符号化モードに対応する一つ以上の符号化されたシンボルを生成する。コピーインデックスモードは、インデックス値およびランの数をシグナリングすることにより、全てが同じインデックス値を有する連続したインデックスの数を示す。パレットインデックス数は、カレントブロックのコピーインデックスモードにシグナリングされるインデックス値に関連する。ライスパラメータは、パレットインデックスの数に対して導出されるとともに、トランケーティド(Truncated)ライスコード(Rice code)が、導出されたライスパラメータにしたがって、パレットインデックスの数に適用されて、プレフィックス部分を生成する。ライスパラメータ導出の従来のアプローチは分割操作を必要とする。本発明の実施形態は、ライスパラメータ導出のための分割操作を回避することにより、複雑性を減少させる。たとえば、ライスパラメータは(2 + MaxPaletteIndex/M)に等しく、Ｍは、MaxPaletteIndex/Mに関連する分割操作の必要性を回避する２の冪の整数である。JCTVC-T1005にしたがって、変数 MaxPaletteIndex は、現在の符号化ユニットに用いるパレットインデックスの最大可能値を特定する。MaxPaletteIndex の値は、カレントパレットサイズ - 1 + palette_escape_val_present_flagに等しくなるように設定される。別の例において、ライスパラメータは(2 + (MaxPaletteIndex >> N)に等しく、且つ、Ｎは正の整数で、且つ、 “>>” は、右シフト操作に対応する。さらに別の実施形態において、ライスパラメータは ((L + (MaxPaletteIndex) >> N))に等しく、且つ、ＬとＮは、正の整数である。
【０００９】
さらに別の方法において、転置プロセスが、カレントブロックの関連するパレットインデックスに指定されるか否かを指定する構文要素は、カレントブロックの最新のランタイプモードを指定する構文要素の後ろの位置で、カレントブロックのビットストリームでシグナリングされる。
【図面の簡単な説明】
【００１０】
【図１】Screen Content Coding Test Module Version 4 (SCM-4.0)に基づいたＨＥＶＣ(高効率映像符号化)に従ったパレットインデックスマップ構文シグナリングの例を示す図である。
【００１１】
【図２】本発明の実施形態によるパレット符号化のフローチャートであり、最新のランタイプモードに用いられる構文要素コンテキストベースのエントロピー符号化、および、ランタイプモードに用いられる構文要素のコンテキストベースのエントロピー符号化は、同一コンテキストをシェアする。
【００１２】
【図３】本発明の実施形態によるパレット符号化のフローチャートであり、複雑性が減少したインデックスの数の２値化に用いるライスパラメータが導出される。
【００１３】
【図４】本発明の実施形態によるパレット符号化のフローチャートであり、転置プロセスが、カレントブロックの関連するパレットインデックスに適用されるか否かを指定する構文要素は、カレントブロックの最新のランタイプモードを指定する構文要素の後の位置で、カレントブロックのビットストリームでシグナリングされる。
【発明を実施するための形態】
【００１４】
本発明のこれらの、及び他の特徴、態様、及び利点は、以下の説明、添付した特許請求 の範囲、及び添付した図面に関して、より良く理解されよう。
【００１５】
最新のパレットランタイプシグナリング
【００１６】
図１に示されるように、インデックスのシグナリング前、または、後に、最新のrun_type が、copy_index または copy_aboveであることを示す一フラグがシグナリングされる。また、インデックスの数をシグナリングする前または後、最新の run_type フラグがシグナリングされる。ランがシグナリングされる前にシグナリングされさえすれば、最新の run_type の位置は、ブロックのビットストリームの範囲にある。 
【００１７】
パフォーマンスを改善するため、本発明の一実施形態において、last_palette_run_type_flag は、palette_run_type_flagのコンテキストをシェアする。既存の慣行において、last_palette_run_type_flag および palette_run_type_flag は、ともに、コンテキストベースのエントロピー符号化を用いて符号化される。さらに、last_palette_run_type_flagと palette_run_type_flagのコンテキストベースのエントロピー符号化は、異なるコンテキストを用いる。この場合、構文要素 palette_run_type_flag および last_palette_run_type_flag のctxInc の導出に用いる構文解析プロセスは、以下のようでなければならない:
このプロセスへの入力は、ピクチャの左上ルマサンプルに関連するサンプルを指定する現在のサンプル位置 ( xC, yC )である。 
このプロセスの出力は、変数 ctxIncである。
【００１８】
変数 ctxInc は以下のように導出される: ctxInc = 0. ctxInc のコンテキスト符号化２値を有する構文要素への割り当ては、以下のように修正されなければならず、ボックスで囲まれるテキストは削除を示す。 last_palette_run_type_flag は、palette_run_type_flagのコンテキストをシェアするので、last_palette_run_type_flagのコンテキストを分離する必要がない。
【表３】
2019208271.tif 000005
【００１９】
パレットランタイプシグナリング
【００２０】
JCTVC-T1005によるランタイプのシグナリングが図１に示される。このアプリケーションにおいて、ランタイプシグナリングに関連する符号化効率を改善する各種技術が開示される。
【００２１】
run_type 符号化に基づいたラン長さ
【００２２】
第一実施形態において、一連の０／１ビットに代わって、連続した copy_index の数がシグナリングされる。連続した copy_index を示す各数がシグナリングされた後、copy_aboveの一構文要素は以下のようである。符号ＥＮＤが用いられて、run_type 符号化の終わりを示し、所定値がＥＮＤに用いられる。シグナリング値がＥＮＤでないとき、run_type 符号化に基づいたラン長さが繰り返される。以下の表は、上述の実施形態を組み込んだ例を示す。
【表４】
2019208271.tif 000006
【００２３】
上述の例(１)および例(２)は、同一のシグナリング値を示す。これらの二個の場合は、最新の run_typeフラグにより分化される。最新の run_typeフラグが１である場合(即ち、copy_above)、一連のランタイプは例(１)に対応する。最新の run_type フラグが０である場合 (即ち、copy_index)、一連のランタイプは例(２)に対応する。
【００２４】
第二実施形態において、第一画素は、常に、copy_index モードを用いて符号化されるので、最初の連続した copy_index モードの数は０であるべきではない。さらに、常に、二個の copy_above モード間の非ゼロ数の連続copy_index モードがある。これにより、シグナリング値は１減少して、符号化効率を改善する。上述の実施形態を組み込んだ例は、以下の表に示される。
【表５】
2019208271.tif 000007
【００２５】
第三実施形態において、インデックスの数が既に分かり、且つ、連続した copy_index (即ち、最新のcopy_above は以下のようである)を有する一連のランタイプが終了するとき、連続した copy_index の最新部分が (インデックスの数 - シグナリングされた数の copy_index) として導出され、最新の連続 copy_indexの数をシグナリングしない。最新のフラグが１である場合、copy_index は、最終段階で、最新のランタイプとして加えられる。この実施形態による例は、以下の表に示される。
【表６】
2019208271.tif 000008
【００２６】
第四実施形態において、スキップされる最新値(たとえば、最新の連続 copy_indexの数)がＥＮＤ信号の所定数より小さいとき、最新値がシグナリングされて、ＥＮＤ信号がスキップされる。たとえば、ＥＮＤの所定値は、３であり、この実施形態による例は、以下の表に示される。
【表７】
2019208271.tif 000009
【００２７】
第五実施形態において、構文要素ＥＮＤが順応してシグナリングされる。インデックスの数がＥＮＤの所定数より少ないとき、所定数は(インデックスの数 -1)として導出される。
【００２８】
第六実施形態において、構文要素ＥＮＤは全くシグナリングされない。連続した copy_index の各数がシグナリングされる。copy_indexの累積数とインデックスの数が比較される。両数が同じである場合、構文解析プロセスが停止する。これにより、ＥＮＤのシグナリングは不要である。この実施形態による例は以下の表に示される。
【表８】
2019208271.tif 000010
【００２９】
第七実施形態において、ＥＮＤの構文要素は、常にシグナリングされ、インデックスの数はシグナリングしない。インデックス数は、第一実施形態または第二実施形態から導出され、インデックスの数をシグナリングする必要がない。この実施形態による例は以下の表に示される。
【表９】
2019208271.tif 000011
【００３０】
たとえば、上述の表の例(１)と(２)において、ＥＮＤ信号の解析後、copy_index モードの総数は１１として導出される。たとえば、例(３)と(４)において、copy_index の総数は５として導出される。
【００３１】
第八実施形態において、シグナリングされた copy_above モードの数が既に知られているとき、copy_aboveモードの現在の数が、シグナリングされた copy_above モードの数に等しいとき、一連のランタイプが終了する。最新のフラグが０である場合、以下の表の例(２)、(３)と(５)に示されるように、最新のcopy_above モードが除去され、除去されたモードは、二重カッコ内で示される。
【表１０】
2019208271.tif 000012
【００３２】
第九実施形態において、インデックス群−１の数が既に知られているとき、解析されたインデックス群の数が、シグナリングされた数のインデックス群に等しいとき、一連のランタイプが終了する。最新のフラグが１である場合、copy_index は、最終段階で、最新のランタイプとして追加される。この実施形態による例は、以下の表に示される。
【表１１】
2019208271.tif 000013
【００３３】
第十実施形態において、ＥＮＤの値は所定である(たとえば、２)。ＥＮＤ−１の数( “２”−１の数)が既に知られているとき、解析された “２”の数がシグナリングされた数のＥＮＤに等しいとき、一連のランタイプが終了する。最新のフラグが１である場合、copy_index は、最終段階で、最新のランタイプとして追加される。この実施形態による例は以下で示され、角括弧中の“２” はＥＮＤの所定値に対応する。
【表１２】
2019208271.tif 000014
【００３４】
連続した copy_indexの数の２値化
【００３５】
上述の実施形態において、各種技術は、ブロックに用いるランタイプを、符号化素子(たとえば、シグナリングされたラン値)に転換する。連続した copy_index の数を示す値は２値化される必要がある。２値化された値は、さらに、ビットストリーム中に含まれる前に、エントロピー符号化により圧縮される。各種２値化技術は以下で開示される。 
【００３６】
固定長コードの一実施形態において、インデックスの数が分かっているとき、連続した copy_index の符号に必要な最大ビット数は固定である。たとえば、連続したインデックスの最大数が９である場合、連続したインデックスの各数を示すのに必要なビットの数は４である。これにより、例(１)中の第一シグナリング値(即ち、４)は、固定の４ビットコード０１００である。第二シグナリング値(即ち、２)は、００１０として符号化される。別の実施形態において、連続したインデックスの数は、トランケーティドバイナリーコード(truncated binary codes)を用いて２値化される。
【００３７】
さらに別の実施形態において、連続したインデックスの数は、常に、０より大きいので、ビットの数は、(最大数の連続したインデックス -1)により決定される。以下の表の例(２)において、ビットの数は３、且つ、第一シグナリング値４は１００として符号化され、第二シグナリング値２は０１０として符号化される。
【表１３】
2019208271.tif 000015
【００３８】
さらに別の実施形態において、適応固定長符号化、および、トランケーティドバイナリーコードが用いられる。インデックスの数が分かっているとき、連続した copy_index の符号化に必要とされる最大数のビットが固定される。また、各連続したcopy_indexを解析した後、最大数のビットは、連続した copy_indexの数により減少する。最大数の連続したインデックスが９である表１３の例(１)において、第一シグナリング値４は、固定３ビットコードで表される。３ビットだけ必要である可用なインデックスの数は４(即ち、9 - (4+1) = 4)なので、第二シグナリング値２は、固定３ビットコード０１０で表される。最新のシグナリング値 1は、固定１ビットコード１により符号化される。別の実施形態において、二個の copy_above間のcopy_index の数は、常に、０より大きいので、最大数のビットは(インデックスの数 - 1)により決定される。表１３の例(２)において、ビットの数は３であり、且つ、第一シグナリング値４は１００として符号化され、第二シグナリング値２は１０として符号化される。両実施形態において、トランケーティドバイナリーコードが用いられる。
【００３９】
さらに別の実施形態において、第Ｎ指数ゴロム符号が、連続したインデックスの数を符号化するのに用いられる。この場合、複数のコンテキストが用いられる。連続した copy_index の解析後、指数ゴロム符号の順序と残りのインデックスの数が２値化に考慮される。
【００４０】
copy_index モードまたは copy_above モードのランの符号化と同様に、連続したインデックスの数も、ＭＳＢ部分および残りの部分により符号化される。連続した copy_indexの解析後、残りの部分が、残りのインデックスの数に基づいて、固定長さのコード、または、トランケーティドバイナリーコードを用いて符号化される。また、複数のコンテキストが用いられる。
【００４１】
パレットランタイプのコンテキストフォーメーション
【００４２】
このアプリケーションにおいて、隣接情報または前に復号された情報から独立したpalette_run_type のコンテキストフォーメーションが開示される。この場合、palette_run_typeのコンテキストフォーメーションだけが、スキャン順序に基づく。
【００４３】
一実施形態において、第一パレットランタイプは、独立したコンテキストセットを用い、残りのパレットランモードは、その他のコンテキストセットを用いる。
【００４４】
別の実施形態において、第一パレットランモードは、第一コンテキスト (たとえば、context-0)を用い、残りのパレットランモードは、第二コンテキスト (たとえば、context - 1)を用いる。
【００４５】
インデックスの数 (num_palette_indices_idc)の２値化
【００４６】
SCM-4.0 パレットインデックスマップ符号化において、まず、num_palette_indices_idcまたは同様の構文要素に示されるインデックスの数がシグナリングされる。インデックスの数をシグナリングするため、まず、変数 (インデックスの数 - パレットサイズ)が導出される。その後、マッピングプロセスが実行されて、 (インデックスの数 - パレットサイズ)を “mapped value”にマップする。マップされた値は、“coeff_abs_level_remaining” と同じ２値化方法で２値化されるとともに、シグナリングされる。プレフィックス部分は、トランケーティドライス(ＴＲ)コードを用いて符号化される。サフィックス部分は、Exp-Golomb コードを用いて符号化される。トランケーティドライスバイナリープロセスは、パラメータcRice Paramを用いて、プレフィックス部分を導出する。この２値化方法において、入力cParamは、2 + MaxPaletteIndex/6に設定され、変数 MaxPaletteIndexは、カレントブロックのパレットインデックスの最大可能値を特定する。しかし、 MaxPaletteIndex/6 は、分割操作 (即ち、６で割る)またはルックアップテーブル操作を必要とする。したがって、本発明の実施形態は、cParam を 2 + MaxPaletteIndex/M に等しくなるよう設定し、且つ、Ｍは２の冪の整数で、分割操作の必要性を回避する。たとえば、Ｍは４か８で、且つ、cParam は、 (2 + (MaxPaletteIndex>>2)) または (2 + (MaxPaletteIndex>>3))として導出され、 “>>” は右シフト操作に対応する。
【００４７】
別の実施形態において、ライスパラメータ導出に用いる６による除法操作は、ライスパラメータを、(2+ (MaxPaletteIndex >>N))に割り当てることにより回避され、Ｎは、log2(MaxPaletteIndex)、たとえば、３より小さい整数である。
【００４８】
別の実施形態において、ライスパラメータ cRiceParam は、cRiceParam = (L + MaxPaletteIndex) >>Nに従って決定され、Ｎは、０、１、２…MaxPaletteIndexであり、Ｌは整数である。たとえば、ＬとＮは、それぞれ、２４と３に設定され、且つ、cParam は、((24 + MaxPaletteIndex) >> 3) = (3 + (MaxPaletteIndex) >> 3))になる。
【００４９】
固定長の２値化を用いて、構文 num_palette_indices_idc または同じ構文要素を２値化することも可能である。palette_runと同じ方法で２値化することもでき、コンテキストで符号化されるか、または、コンテキストなしで符号化される。第Ｎ指数ゴロム符号を用いて符号化することもできる。
【００５０】
パレット符号化モードに用いる高スループットコーディング
【００５１】
パレット符号化において、各種構文要素、たとえば、パレットインデックス、ランタイプ、ランの数、および、エスケープ値はシグナリングされなければなない。これらの構文要素のいくつかは、コンテキスト適応型二値算術符号化 (ＣＡＢＡＣ)を用いて符号化され、ＣＡＢＡＣは、コンテキストモード (即ち、レギュラーモード)およびバイパスモードを有する。コンテキストモードは、さらに効率的に圧縮される。しかし、処理速度は、バイパスモードよりかなり遅い。パレット符号化のスループット率を改善する各種技術が開示される。
【００５２】
一実施形態において、バイパスモード中で符号化されるパレット符号化構文要素は一緒にグループ化される。また、コンテキストモードで符号化されるパレット符号化構文要素は一緒にグループ化される。これにより、一群のコンテキスト符号化構文要素が復号されるとき、演算デコーダ−は異なるモード間で切り換える必要がないので、スループット率は改善されなければならない。 
【００５３】
一実施形態において、バイパスモードで符号化されるパレット符号化構文要素は、符号化コンテキストで符号化される二個のパレット符号化構文要素間のビットストリームに位置すべきではない。
【００５４】
パレット符号化において、構文要素palette_transpose_flag が用いられて、転置プロセスが、現在の符号化ユニットの関連するパレットインデックスに適用されるか否かを設定する。palette_transpose_flagが１に等しいとき、転置プロセスが現在の符号化ユニットの関連するパレットインデックスに適用される。palette_transpose_flag がゼロに等しいとき、転置プロセスは、現在の符号化ユニットの関連するパレットインデックスに適用されない。本発明の一態様は、カレントブロックの符号化データ中のpalette_transpose_flag の位置に対処する。
【００５５】
一実施形態において、palette_transpose_flag は、バイパスモードで符号化される二個のパレット符号化構文要素間のビットストリームに位置すべきではない。 
【００５６】
一実施形態において、palette_transpose_flagは、 last_palette_run_type_flagの後に符号化される。たとえば、JCTVC-T1005 中のpalette_transpose_flag の位置は、以下の表１４に示されるように、last_palette_run_type_flagの後の位置に移動し、本来の palette_transpose_flag 位置は、Note (14-1)により示され、且つ、この実施形態による新しいpalette_transpose_flag 位置は、 Note (14-2)により示される。表１４において、ボックスで囲まれるテキストは削除を示す。
【表１４】
2019208271.tif 000016
【００５７】
その他の実施形態によると、palette_transpose_flag は、ブロックのビットストリームの別の位置で符号化される。たとえば、palette_transpose_flag は、palette_run_type_flag, palette_run_msb_id_plus、または、palette_run_refinement_bitsの後に、符号化される。
【００５８】
一実施形態において、palette_transpose_flag は、バイパスモードにより符号化される、または、palette_transpose_flag は、デコーダ−により、暗示的に生成される。
【００５９】
一実施形態において、last_palette_run_type_flag は、バイパスモードで符号化される。
【００６０】
図２は、本発明の実施形態によるパレット符号化のフローチャートであり、最新のランタイプモードに用いられる構文要素のコンテキストベースのエントロピー符号化、および、ランタイプモードに用いられる構文要素のコンテキストベースのエントロピー符号化は、同一コンテキストをシェアする。工程２１０において、エンコーダは、ピクチャ中のカレントブロックに関連する入力データを受信する。工程２２０において、パレット符号化がカレントブロックに適用されて、パレット符号化モードを用いて、カレントブロックの一つ以上の符号化されたシンボルを生成し、パレット符号化モードは、コピーインデックスモードとコピーアバブモードを含むランタイムモードを有する。工程２３０において、カレントブロックの最新のランタイプモードを表す第一構文要素が、一つ以上の第一コンテキストを有するコンテキストベースのエントロピー符号化を用いて符号化される。工程２４０において、カレントブロックの一つ以上のランタイプモードを表す一つ以上の第二構文要素が、一つ以上の第一コンテキストを有するコンテキストベースのエントロピー符号化を用いて符号化される。工程２５０において、第一構文要素の符号化された第一構文要素、および、一つ以上の第二構文要素の一つ以上の符号化された第二構文要素が、カレントブロックのビットストリームでシグナリングされる。
【００６１】
図２のエンコーダに対応するデコーダフローチャートは、図２のフローチャートと逆の手順を用いて導出される。
【００６２】
図３は、本発明の実施形態によるパレット符号化のフローチャートであり、インデックスの数の２値化に用いられるライスパラメータは、複雑性が減少して導出される。工程３１０において、エンコーダは、ピクチャ中のカレントブロックに関連する入力データを受信する。工程３２０において、パレット符号化がカレントブロックに適用されて、コピーインデックスモードおよびコピーアバブモードを含むパレット符号化モードを用いて、カレントブロックの一つ以上の符号化されたシンボルを生成する。一第一インデックス値とＮ１ランをシグナリングすることにより、コピーインデックスモードが、全てが一第一インデックス値を有するＮ１連続インデックスを表し、および、Ｎ２ランをシグナリングすることにより、コピーアバブモードが、全て、画素上の対応するＮ２と同じ第二インデックス値を有するＮ２連続第二インデックス値を表し、且つ、Ｎ１とＮ２は、正の整数である。工程３３０において、カレントブロックに生成される一つ以上のコピーインデックスモードにシグナリングされる第一インデックス値の総数に関連する第一数が識別される。工程３４０において、ライスパラメータが、分割操作またはテーブルルックアップ操作を用いずに、カレントブロックのパレットインデックスの最大可能値を指定する第一変数から導出される。工程３５０において、第一数が、ライスパラメータを有するトランケーティドライスコードを用いて２値化されて、プレフィックス部分を生成する。
【００６３】
図３中のエンコーダに対応するデコーダ−フローチャートは、図３のフローチャートと逆の手順を用いて導出される。
【００６４】
図４は、本発明の実施形態によるパレット符号化のフローチャートであり、転置プロセスが、カレントブロックの関連するパレットインデックスに適用されるか否かを指定する構文要素は、カレントブロックの最新のランタイプモードを指定する構文要素の後の位置で、カレントブロックのビットストリームでシグナリングされる。工程４１０において、エンコーダは、ピクチャ中のカレントブロックに関連する入力データを受信する。工程４２０において、パレット符号化がカレントブロックに適用されて、パレット符号化モードを用いて、カレントブロックの一つ以上の符号化されたシンボルを生成する。パレット符号化モードは、コピーインデックスモードおよびコピーアバブモードを含むランタイムモードを有する。工程４３０において、転置プロセスが、カレントブロックの関連するパレットインデックスに適用されるか否かを指定する第一構文要素がシグナリングされる。工程４４０において、カレントブロックの最新のランタイプモードを特定する第二構文要素が、第一構文要素の後、カレントブロックのビットストリームの位置でシグナリングされる。最新のランタイプモードは、カレントブロックの最新のランタイプが、コピーインデックスモードまたはコピーアバブモードであるかを指定する。
【００６５】
図４のエンコーダに対応するデコーダフローチャートは、図４のフローチャートの逆の手順を用いて導出される。
【００６６】
上の記述が提示されて、当業者に、特定のアプリケーションとその要求のコンテキストに記述される通り、本発明を行うことができる。当業者なら、記述された具体例への各種修正が理解でき、ここで定義される一般原則は別の実施例にも応用できる。よって、本発明は、記述される特定の実施例に制限することを目的としておらず、原理と新規特徴と一致する最大範囲に一致する。上述の記述において、本発明の十分な理解を提供するため、各種特定の詳細が説明される。当業者なら、本発明が行えることが理解できる。 
【００６７】
上述の本発明の具体例は、各種ハードウェア、ソフトウェアコード、または、それらの組み合わせで実行される。たとえば、本発明の具体例は、画像圧縮チップに整合される回路、または、画像圧縮ソフトウェアに整合されるプログラムコードで、上述の処理を実行する。本発明の具体例は、デジタルシグナルプロセッサ（ＤＳＰ）で実行されるプログラムコードで、上述の処理を実行する。本発明は、さらに、コンピュータプロセッサ、デジタルシグナルプロセッサ、マイクロプロセッサ、または、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）により実行される複数の機能を含む。これらのプロセッサは、本発明により具体化される特定の方法を定義する機械読み取り可能ソフトウェアコード、または、ファームウェアコードを実行することにより、本発明による特定のタスクを実行するように設定される。ソフトウェアコード、または、ファームウェアコードは、異なるプログラミング言語、および、異なるフォーマット、または、スタイルで開発される。ソフトウェアコードは、さらに、異なるターゲットプラットフォームにコンパイルされる。しかし、本発明によるタスクを実行するソフトウェアコードの異なるコードフォーマット、スタイル、および、言語、および、設定コードのその他の手段は、本発明の精神を逸脱しない。
【００６８】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図１】
2019208271.tif 000017
【図２】
2019208271.tif 000018
【図３】
2019208271.tif 000019
【図４】
2019208271.tif 000020