(57)【要約】【課題】ビデオ符号化におけるパレット符号化を用いた映像データのブロックを符号化する方法と装置を提供する。【解決手段】ビデオ符号化におけるパレット符号化を用いた映像データのブロックを符号化する方法と装置が開示される。一実施形態によると、現在のブロック中に、一つのみのシングルパレットインデックスがあるかがまず決定される。現在のブロック中に、一つのみのシングルパレットインデックスがある場合、 現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略される。現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかに関する決定は、パレットインデックス符号化に対応しないひとつ以上の構文要素に基づく。【選択図】図２
2016046814.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ符号化システムにおけるパレット符号化を用いる映像データのブロックを符号化する方法であって、前記方法は、
現在のブロックに関連する入力データを受信する工程と、
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかを判断する工程と、
前記現在のブロック中に、一つのみのシングルパレットインデックスがある場合、前記現在のブロックの現在のパレットインデックスマップのエンコーダ側でのシグナリングを省略するか、または、前記現在のブロックの現在のパレットインデックスマップを復号する構文のデコーダ側での解析を省略する工程と、
を有することを特徴とする方法。
【請求項２】
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかを判断する前記工程は、前記現在のブロックの現在のパレット表を前記エンコーダ側でシグナリングした後、または、前記現在のブロックの前記現在のパレット表を前記デコーダ側で解析した後、実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかを判断する前記工程は、第一数の予測されたパレットに対応する第一構文要素、第二数のシグナリングされたパレットに対応する第二構文要素、および、前記現在のブロック中に、Escapeサンプルがあるかどうかを示すCU_level_escape_flagに対応する第三構文要素のひとつ、または、組み合わせに基づくことを特徴とする請求項１に記載の方法。
【請求項４】
前記現在のブロック中に、一つのみのシングルパレットインデックスがある場合、前記一つのみのシングルパレットインデックスは、前記デコーダ側でゼロに推測されることを特徴とする請求項３に記載の方法。
【請求項５】
予測されたパレットの前記第一数が１、シグナリングされたパレットの前記第二数がゼロ、および、前記CU_level_escape_flagがEscapeサンプルがないことを示す場合、前記現在のパレットインデックスマップは、シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定されることを特徴とする請求項３に記載の方法。
【請求項６】
前記シングルカラーパレットインデックスは、前のパレット表から予測されるパレット素子に対応することを特徴とする請求項５に記載の方法。
【請求項７】
予測されたパレットの前記第一数がゼロ、シグナリングされたパレットの前記第二数が１、および、CU_level_escape_flagがEscapeサンプルがないことを示す場合、前記現在のパレットインデックスマップは、シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定されることを特徴とする請求項３に記載の方法。
【請求項８】
前記シングルカラーパレットインデックスは、前記現在のブロックの符号化データを含むビットストリームでシグナリングされるパレット素子に対応することを特徴とする請求項７に記載の方法。
【請求項９】
予測されたパレットの前記第一数がゼロ、シグナリングされたパレットの前記第二数がゼロ、および、前記CU_level_escape_flagが、少なくとも一つのEscapeサンプルを示す場合、前記現在のブロックの前記現在のパレットインデックスマップが全Escapeサンプルとして復号されることを特徴とする請求項３に記載の方法。
【請求項１０】
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかを判断する前記工程は、前記現在のブロックのパレットインデックスの最大可能値に対応する第一構文要素に基づき、前記現在のブロックの前記パレットインデックスの前記最大可能値がゼロの場合、前記現在のブロック中に、一つのみのシングルパレットインデックスがあることを特徴とする請求項１に記載の方法。
【請求項１１】
前記現在のブロックの前記パレットインデックスの前記最大可能値がゼロの場合、調整されたインデックスマップに対応する第二構文要素は生成されないことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるとき、パレット実行タイプ、関連するパレットインデックス、および、パレット実行に対応する構文要素は、前記エンコーダ側で省略されることを特徴とする請求項１に記載の方法。
【請求項１３】
ビデオ符号化システムにおけるパレット符号化を用いた映像データのブロックを符号化する装置であって、前記装置は、
現在のブロックに関連する入力データを受信する、
前記現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうか判断する、および、
前記現在のブロック中に、一つのみのシングルパレットインデックスがある場合、前記現在のブロックの現在のパレットインデックスマップのシグナリングをエンコーダ側で省略する、または、前記現在のブロックの現在のパレットインデックスマップを復号する構文の解析をデコーダ側で省略するように、一つ以上の電子回路を設定することを特徴とする装置。
【請求項１４】
ビデオ符号化システムにおけるパレット符号化を用いた映像データのブロックを符号化する方法であって、第一構文要素がアサートされる場合、前記ビデオ符号化システムは、映像データの前記ブロック中に、一つのみのシングルパレットインデックスがあるかどうかを示す前記第一構文要素、および、前記シングルパレットインデックスを示す第二構文要素を組み込み、前記方法は、
現在のブロックに関連する入力データを受信する工程と、
前記現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む前記現在のブロックの対応する総パレットサイズを、エンコーダ側、または、デコーダ側で生成する工程と、
前記Escapeインデックスを含む前記現在のブロックの前記総パレットサイズが１に等しい場合、現在の第一構文要素と現在の第二構文要素の前記エンコーダ側でのシグナリングを省略する、または、前記現在の第一構文要素と前記現在の第二構文要素の各自の値を、前記デコーダ側で推定する工程と、
を有することを特徴とする方法。
【請求項１５】
さらに、前記総パレットサイズが１より大きい場合、前記現在の第一構文要素を前記エンコーダ側でシグナリングするか、または、前記現在の第一構文要素を前記デコーダ側で解析する工程を有することを特徴とする請求項１４に記載の方法。
【請求項１６】
さらに、前記現在の第一構文要素が１に等しい場合、前記現在の第二構文要素を前記エンコーダ側でシグナリングするか、または、前記現在の第二構文要素を前記デコーダ側で解析する工程を有することを特徴とする請求項１４に記載の方法。
【請求項１７】
前記現在のブロックの全サンプルは、前記現在の第二構文要素に等しい一つの現在のインデックス値を有すると推定されることを特徴とする請求項１６に記載の方法。
【請求項１８】
さらに、前記現在の第一構文要素がゼロに等しい場合、前記現在のブロックの現在のインデックスマップを、前記エンコーダ側でシグナリングするか、または、前記現在のブロックの前記現在のインデックスマップを、前記デコーダ側で解析する工程を有することを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージ、および、映像データのパレットインデックス符号化に関するものであって、特に、本発明は、ブロック中に、一つのみのシングルパレットインデックスがあるときの符号化効率を改善する各種技術に関するものである。
【背景技術】
【０００２】
高効率ビデオ符号化(ＨＥＶＣ)は、近年発展している新しい符号化基準である。高効率ビデオ符号化(ＨＥＶＣ)システムにおいて、Ｈ.２６４/ＡＶＣの固定サイズのマクロブロックは、符号化ユニット(ＣＵ)というフレキシブルなブロックにより代替される。ＣＵ中の画素は、同じ符号化パラメータを共有して、符号化効率を改善する。ＣＵは最大ＣＵ(ＬＣＵ)から始まり、ＨＥＶＣの符号化ツリーユニット(ＣＴＵ)とも称される。符号化ユニットの概念に加え、予測単位(ＰＵ)の概念もＨＥＶＣに導入される。一旦、ＣＵ階層ツリーの分割が行われると、各リーフＣＵは、予測タイプ、および、ＰＵ分割にしたがって、さらに、ひとつ以上の予測単位(ＰＵ)に分割される。スクリーンコンテント符号化のいくつかの符号化ツールが発展している。本発明に関連するこれらのツールは、以下で簡潔に再検討される。
【０００３】
パレット符号化
ＨＥＶＣスクリーンコンテント符号化 (ＳＣＣ)の発展期間中、いくつかの提案が開示されて、パレットベース符号化に取り組んでいる。たとえば、パレット予測と共有技術が、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による符号化プロセスの例は以下のようである。
【０００４】
１．パレットの送信:まず、カラーインデックス表 (パレット表とも称される)サイズが、パレット素子(すなわち、カラー値)により送信される。
２．画素値の送信:ＣＵ中の画素がラスター走査順序で符号化される。ひとつ以上の画素の各群において、まず、ランベース(run-base)モードのフラグが送信されて、 “コピーインデックスモード”または“copy-aboveモード”が用いられるかどうかを示す。
２．１“コピーインデックスモード”:このランベースモードにおいて、まず、各自パレットインデックスが、run値を表す各自run値 “palette_run” (たとえば、Ｍ)によりシグナリングされる。ある文献では、“コピーインデックスモード”は、“インデックス”モードとも称される。本発明において、用語“palette_run”は、 “pixel_run”、または、単に “run”とも称される。run値は、合計Ｍ個の連続したサンプルが、すべて、runモードを用いて符号化されることを示す。ビットストリーム中でシグナリングされるとき、同じパレットインデックスを有するので、現在の位置、および、以下のＭ位置に送信されるこれ以上の情報が必要ない。パレットインデックス (たとえば、i)も、全３カラーコンポーネントにより共有され、それは、YUV 色空間の場合において、再構築された画素値が (Y, U, V) = (paletteY[i], paletteU[i], paletteV[i])であることを意味する。 
２．２“copy-aboveモード”:copy-aboveモードにおいて、各自の値 “palette_run” (たとえば、N)が送信されて、現在の画素、および、以下の N 画素にとって、パレットインデックスが、ロウ中の対応するパレットインデックスと同じであることを示す。
３．剰余の送信:ステージ２で送信されるパレットインデックスが画素値に戻されて、予測として用いられる。ＨＥＶＣ剰余符号化を用いて、剰余情報が送信され、再構築のために、予測器に加えられる。
【０００５】
図１Ａ〜図１Ｃは、スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ、および、パレットインデックスマップ符号化の例を説明する。図１Ａは、パレットカラーのパレットインデックス０から３、および、Escapeサンプルのパレットインデックス４を有するパレットインデックスマップを説明する。Escapeサンプルに対応するインデックスは、この発明において、Escapeインデックスとも称される。図１Ｂは、SCM-2.0によるパレットインデックスマップ符号化を説明し、“コピーインデックスモード”が、３、１、２および６に対応する“パレット実行”を有する第一ロウ中の４群(１１０、１２０、１３０と１４０)のインデックスに適用される。図１Ｃは、第二ロウのパレットインデックスマップ符号化の例を説明し、８、１ および４に対応する実行により、“copy-aboveモード”が第一群サンプル(１５０)に適用され、“コピーインデックスモード”が次の二群(１６０と１７０)に適用される。
【０００６】
コピーインデックスモード、および、copy-aboveモード両方は、この発明において、“コピーモード”と称される。コピーインデックスモードにおいて、コピーインデックス符号化画素の主要画素のパレットインデックスが送信される。コピーインデックス符号化画素の数量も送信される。デコーダ側で、基本の画素に符号化モード(すなわち、コピーインデックスモード)を決定後、主要画素のパレットインデックスの情報、および、コピーインデックス符号化画素の数量のみが、コピーインデックス符号化画素の再構築に必要とされる。主要画素に続く画素は、予測器(すなわち、左の画素)から“複製”することにより再構築される。画素値は、パレット表を用いて再構築される。copy-aboveモードにおいて、上述の画素がすでに再構築されているので、送信される必要がある予測器に関連するパレットインデックス(すなわち、上述の画素)がない。現在の画素は、上述の画素から“複製”される。
【０００７】
パレット表シグナリング
【０００８】
スクリーンコンテキスト符号化テストモデル 2 (SCM-2.0, 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, 30 Jun. - 9 Jul. 2014, Document: JCTVC-R1014)（非特許文献３）に導入されるパレット符号化モードにおいて、パレット予測表が用いられて、前もって符号化/復号されたパレットカラーを保存するので、それらは、後続のブロックのパレットの予測器として用いられる。デコーダがビットストリームを復号するとき、最初のパレット符号化ブロックのパレットカラーが、パレット予測表中に保存される。次のパレット符号化ブロックは、パレット予測器として保存された表からの色を使用することができる。パレット予測器により予測されないこれらの色に対し、そのパレット中の新色がシグナリングされる。現在のブロックのパレットを再構築するため、パレットを再構築する構文はSCM-2.0で記述され、一例は以下のように示される。
【０００９】
ステップ 1: パレットをシグナリング、または、解析する。
このステップにおいて、パレットは、パレット共有フラグ(すなわちpalette_sharing_flag) が設定されるかどうかをまずチェックすることにより、エンコーダ側でシグナリングされると共に、デコーダ側で再構築される。パレット共有フラグが設定される(すなわち、値１を有する)場合、現在のパレットは、前のブロックのパレットと同じである。そうでなければ、パレットは、パレット更新工程にしたがって再構築される。パレットを再構築する構文構造の例は以下で示される。
‘palette_sharing_flag’を解析する。
‘palette_sharing_flag’ が１に等しい場合、現在のパレットは、前のブロックのパレットと同じである。
そうでなければ、
‘reuse_flags’を解析して、パレット予測表中のどの素子が現在のパレットで再利用されるかを示す。
‘num_signalled_palette’を解析して、いくつの新しいパレットカラーが、現在のパレットに復号される必要があるかを示す。
‘num_signalled_palette’をループし、パレットカラー値を解析する。
【００１０】
ステップ 2.カラーインデックスマップをシグナリング、または、解析する。
パレットがシグナリング、または、再構築された後、カラーインデックスマップが、再構築されたパレット、および、符号化されたカラーインデックスを用いて、以下のように、エンコーダ側でシグナリングされるか、または、デコーダ側で再構築される。この発明において、カラーインデックスマップは、パレットインデックスマップ、または、インデックスマップとも称される。
‘scan order’を解析して、hor-traverse または ver-traverseかどうか示す。
‘block_level_escape_flag’を解析して、Escapeサンプル ‘新しいrunモード’または‘copy-aboveモード’があるかどうか示す。
‘コピーインデックスモード’の場合、 ‘index’を解析する
index = ESCAPEの場合、Escapeサンプル値を解析する
index!= ESCAPEの場合、 ‘run’を解析して、同じインデックスで、数量サンプルを示す
‘copy-aboveモード’の場合、 ‘run’を解析して、同じインデックスで、数量サンプルを、直接、上述のサンプルとして示す
【００１１】
カラーインデックスマップ符号化の符号化効率をさらに改善することが望まれる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】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-R1014 (SCM-2.0, 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, 30 Jun. - 9 Jul. 2014, Document: JCTVC-R1014)
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ビデオ符号化におけるパレット符号化を用いた映像データのブロックを符号化する方法と装置が開示される。
【課題を解決するための手段】
【００１４】
本発明の一実施形態によると、現在のブロック中に、一つのみのシングルパレットインデックスがあるかがまず決定される。現在のブロック中に、一つのみのシングルパレットインデックスがある場合、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する任意の構文の解析がデコーダ側で省略される。現在のブロックの現在のパレット表をエンコーダ側でシグナリングした後、または、現在のブロックの現在のパレット表をデコーダ側で解析した後、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかが実行される。現在のブロック中に、一つのみのシングルパレットインデックスがあるとき、パレット実行タイプ、関連するパレットインデックス、および、パレット実行に対応する構文要素は、エンコーダ側で省略される。
【００１５】
現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかは、予測されたパレットの数量を表す構文要素、シグナリングされたパレットの数量を表す構文要素、および、現在のブロック中に、Escapeサンプルがあるかを示す構文要素 (たとえば、CU_level_escape_flag)に基づく。現在のブロック中に、一つのみのシングルパレットインデックスがある場合、シングルパレットインデックスが、デコーダ側でゼロになると推定される。予測されたパレットの数量が１である、シグナリングされたパレットの数量がゼロである、および、CU_level_escape_flagが、Escapeサンプルがないことを示す場合、現在のパレットインデックスマップが、一シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定される。この場合、シングルカラーパレットインデックスは、前のパレット表から予測されるパレットインデックスに対応する。予測されたパレットの数量がゼロ、シグナリングされたパレットの数量が１である、および、CU_level_escape_flagが、Escapeサンプルがないことを示す場合、現在のパレットインデックスマップは、一シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定される。この場合、シングルカラーパレットインデックスは、現在のブロックの符号化データを含むビットストリームでシグナリングされるパレットインデックスに対応する。予測されたパレットの数量がゼロ、シグナリングされたパレットの数量がゼロ、および、CU_level_escape_flag が、少なくともひとつのEscapeサンプルを示す場合、現在のブロックの現在のパレットインデックスマップは、全Escapeサンプルとして復号される。
【００１６】
別の実施形態において、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかは、現在のブロックのパレットインデックスの最大可能値に対応する構文要素に基づいて決定される。現在のブロックのパレットインデックスの最大可能値がゼロである場合、現在のブロック中に、一つのみのシングルパレットインデックスがある。現在のブロックのパレットインデックスの最大可能値がゼロである場合、調整されたインデックスマップに対応する構文要素は生成されない。
【００１７】
別の実施形態は、映像データのブロック中に、一つのみのシングルパレットインデックがあるかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素を組み込んだシステムに対処する。この実施形態によると、現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む現在のブロックの対応する総パレットサイズが、エンコーダ側、または、デコーダ側で生成される。Escapeインデックスを含む現在のブロックの総パレットサイズが１に等しい場合、現在の第一構文要素、および、現在の第二構文要素のシグナリングが、エンコーダ側で省略されるか、または、現在の第一構文要素と現在の第二構文要素の各自の値が、デコーダ側で推定される。総パレットサイズが１より大きい場合、現在の第一構文要素がエンコーダ側でシグナリングされるか、または、現在の第一構文要素がデコーダ側で解析される。現在の第一構文要素が１に等しい場合、現在の第二構文要素がエンコーダ側でシグナリングされるか、または、現在の第二構文要素がデコーダ側で解析される。この場合、現在のブロックの全サンプルが、現在の第二構文要素に等しい一つの現在のインデックス値を有することが推定される。現在の第一構文要素がゼロに等しい場合、現在のブロックの現在のインデックスマップはエンコーダ側でシグナリングされるか、または、現在のブロックの現在のインデックスマップがデコーダ側で解析される。
【発明の効果】
【００１８】
本発明により、カラーインデックスマップ符号化の符号化効率がさらに改善される。
【図面の簡単な説明】
【００１９】
【図１Ａ】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップの例を示す図である。
【図１Ｂ】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ符号化の例を示す図である。
【図１Ｃ】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ符号化の例を示す図である。
【図２】本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略されることを示す図である。
【図３】本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの総パレットサイズに対応する構文要素がエンコーダ側でシグナリングされるか、または、デコーダ側で解析され、および、総パレットサイズが１に等しい場合、映像データのブロック中に、一つのみのシングルパレットインデックスがあるかどうかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素が省略される。
【発明を実施するための形態】
【００２０】
本発明のこれらの、及び他の特徴、態様、及び利点は、以下の説明、添付した特許請求の範囲、及び添付した図面に関して、より良く理解されよう。
【００２１】
スクリーンコンテキスト符号化テストモデル 2 (SCM-2.0, 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, 30 Jun. - 9 Jul. 2014, Document: JCTVC-R1014)（非特許文献３）中で開示されるカラーインデックスマップ符号化の構文構造は、一ブロック中の全サンプルが同じカラーインデックスを有するとき、非効率である。この場合、新しい実行、copy-aboveモード、または、ランレングス(run length)のシグナリングが不要になる。したがって、本発明は、均一なインデックスマップを有するこのようなブロックを識別、および、シグナリングする方法を開示する。
【００２２】
ブロック中に一パレット素子だけあるときの検出とシグナリング
【００２３】
一実施形態において、ブロック中のシングルパレットインデックス (すなわち、現在のブロック中に、一つのみのシングルパレットインデックスがある)の条件は、パレットインデックスマップをシグナリングする必要性がなく、黙示的に、ひとつ以上のシグナリングされた構文要素に基づいて識別される。たとえば、一パレットインデックスの条件は、以下のように、SCM-2.0で定義される構文に基づいて決定される:
a）# of 予測されたパレット = 1, # of シグナリングされたパレット = 0, CU_level_escape_flag = 0
上述の条件は、パレット予測器 (すなわち、 # of 予測されたパレット = 1)からの一パレットカラーがある、シグナリングされたパレットがない(すなわち、# of シグナリングされたパレット = 0)、および、Escapeサンプルがない(すなわち、CU_level_escape_flag = 0)ケースに対応する。
b)# of 予測されたパレット = 0, # of シグナリングされたパレット = 1, CU_level_escape_flag = 0
上述の条件は、パレット予測器からのパレットカラーがない、一シグナリングされたパレットがあり、Escapeサンプルがないケースに対応する。
c）# of 予測されたパレット = 0, # of シグナリングされたパレット = 0, CU_level_escape_flag = 1
上述の条件は、パレット予測器からのパレットカラーがない、シグナリングされたパレットがない、および、全サンプルがEscapeサンプルであるケースに対応する。
【００２４】
構文、たとえば、SCM-2.0中のpalette_reuse_flagsを復号したあと、予測されたパレットの数量が生成され、これは、パレットが再利用されるかを示す。予測されたパレットの数量は、さらに、ビットストリーム中のその他の構文要素に基づいて決定される。本発明は、予測、および／または、シグナリングされたパレットの数量がシグナリングされる特定の方法に限定されない。この原理は、その他の構文要素に基づいて、パレットの単一素子の条件を識別する。全ケース (すなわち、示されるケース a) から c))において、ブロック中の全サンプルに対し、一つのみの可能なインデックス値 (たとえば、0) がある。よって、上述の実施形態によると、上述のケースがいつアサートされても (すなわち、ケースがtrueである)、インデックスマップをシグナリングする構文は省略され、且つ、全インデックスは０として推測される。一つのみのインデックスは、さらに、ケースaの前のパレットから予測されるインデックスに基づいて決定される。一つのみのインデックスは、さらに、ケースｂのビットストリームでシグナリングされるインデックスに基づいて決定される。一実施形態において、ブロックのパレット表をエンコーダ側でシグナリング、または、ブロックのパレット表をデコーダ側で解析後、ブロック中に、一つのみのシングルパレットインデックスがあるかどうかの判断が実行される。
【００２５】
注意すべきことは、SCM-2.0のパレット構文にしたがって、ケース a) と b)の本発明の実施形態は、ブロック全体のサイズの新しい実行のシグナリング、または、ブロック幅に等しいランレングスを有する連続した複製を省略することである。ケース c)において、SCM-2.0 パレットは、ESCAPEの実行を許可しないので、本発明の実施形態は、ある長さを有するEscapeインデックスを連続してシグナリングする従来のアプローチに大幅な省略を提供する。ESCAPEの実行が許可される場合(たとえば、SCM-3.0 中とその後)、ケース c) は、ブロック全体のサイズの新しい実行のシグナリングを省略する。
【００２６】
single_index_flagを有するpalette_sharing_flagの組み込み
【００２７】
この実施例において、符号化効率が、新しいフラグ、single_index_flagを有するpalette_sharing_flagのシグナリングにより、ブロック中のシングルパレットインデックスのケースに対し改善される。新しいフラグ、single_index_flagは、palette_sharing_flagが１に等しく、それが、ブロック中の全サンプルが同じインデックスを用いることを示す場合に、シグナリングされる。さらに、同じインデックスは、前のパレット (共有されるパレット)中の素子のひとつを指し示す。palette_sharing_flagとsingle_index_flag両方の結合された構文設計は、以下のようにまとめられる。
【００２８】
palette_sharing_flag = 0の場合、以下のケースに対し、ブロック中の全インデックスは０として推測される:
a)# of 予測されたパレット = 1, # of シグナリングされたパレット = 0, CU_level_escape_flag = 0
上述の条件は、パレット予測器 (すなわち、 # of 予測されたパレット = 1)からの一パレットカラーがあり、シグナリングされたパレットがない、および、Escapeサンプルがない (すなわち、CU_level_escape_flag = 0)ケースに対応する。
b)# of 予測されたパレット = 0, # of シグナリングされたパレット = 1, CU_level_escape_flag = 0
上述の条件は、予測されたパレットがない、新しい色として送信される一パレットカラー (すなわち、 # of 予測されたパレット = 0 および # of シグナリングされたパレット = 1)がある、および、Escapeサンプルがないケースに対応する。
c)# of 予測されたパレット = 0, # of シグナリングされたパレット = 0, CU_level_escape_flag = 1
上述の条件は、現在のパレットが空である(すなわち、 # of 予測されたパレット = 0 および # of シグナリングされたパレット = 0)、且つ、全サンプルがEscapeサンプルであるケースに対応する。
【００２９】
palette_sharing_flag = 1の場合、本発明の実施形態によるインデックスマップ符号化は以下のように示される。
d)前のパレットサイズ =1、且つ、CU_level_escape_flag = 0の場合、ブロック中の全インデックスは０として推測される。
上述の条件は、現在のパレットが前のパレットと同じで、且つ、一インデックスだけを有し (すなわち、前のパレットサイズ =1)、且つ、Escapeサンプルがないケースに対応する。ブロック中の全インデックス は０として推測される。
e)前のパレットサイズ =1、および、CU_level_escape_flag = 1の場合、本発明の実施形態による二つのアプローチは、以下のように用いられる。
i．新しいフラグsingle_index_flagをシグナリングせずに、通常のインデックスマップ符号化を用いて、インデックスマップを符号化する。
ii．新しいフラグsingle_index_flag をまずシグナリングする。single_index_flagが1である場合、single_indexをシグナリングする。全サンプルインデックスがsingle_indexとして推定される。そうでなければ (すなわち、single_index_flag = 0)、通常のインデックスマップ符号化で、インデックスマップを符号化する。
ｆ)前のパレットサイズ >1, CU_level_escape_flag = 0または1の場合、本発明の実施形態による二つのアプローチは以下のように用いられる。
i．新しいフラグ, single_index_flagをシグナリングせずに、通常のインデックス符号化を用いて、インデックスマップを符号化する。
ii．まず、新しいフラグ,single_index_flagをシグナリングする。single_index_flagが1である場合、single_indexをシグナリングする。全サンプルインデックスがsingle_indexとして推定される。そうでなければ (すなわち、single_index_flag = 0)、通常のインデックスマップ符号化で、インデックスマップを符号化する。
【００３０】
single_index_flagのシグナリング、または、推定
【００３１】
この実施例において、single_index_flagとsingle_indexのシグナリングは、パレット符号化 (たとえば、palette_sharing_flag, 予測されたパレット、新しく送信されたパレット、および、CU_level_escape_flagシグナリングの後)の後、および、インデックスマップ符号化前である。
【００３２】
総パレットサイズ (Escapeインデックスを含む)が１に等しい場合、single_index_flagは１であると推定される。single_indexは０であると推定される。全サンプルインデックスは、０であるsingle_indexとして推定される。
【００３３】
そうでなければ (すなわち、総パレットサイズが１より大きい)、新しいフラグ、single_index_flagがシグナリングされる。single_index_flagが１に等しい場合、single_indexがシグナリングされる。全サンプルインデックスがsingle_indexであると推定される。そうでなければ (すなわち、single_index_flag = 0)、インデックスマップが、通常のインデックスマップ符号化を用いて符号化される。
【００３４】
ゼロ/シングルカラーパレットのシグナリング
【００３５】
本発明の一実施形態によると、現在のパレットが空である (すなわち、全サンプルがエスケープ符号化される)場合、または、現在のパレットが、一つのみのカラーを有し、且つ、Escapeがない場合 (すなわち、パレットインデックス 0の全サンプル)、palette_run_type_flag (コピーインデックスモード、または、copy_above modeを示す)、パレットインデックスpalette_index_idcのシグナリング、および、インデックス実行がすべて、パレット符号化ブロックに対し省略される。ＣＵ全体 (すなわち、ＣＵ幅×ＣＵ高さ-1)を超過するとき、パレットインデックスは０として生成され、且つ、インデックス実行が生じる。しかし、これらのシングルインデックス値ケースにおいて、シグナリング (エンコーダ)、および、解析(デコーダ)は、複数の条件付きチェックを用いることにより省略され、異なる条件が、異なる構文要素のためにチェックされる。例の構文表と意味は以下のように示される。
【００３６】
パレットインデックスの各実行の上述の構文要素を省略する条件の確認プロセスは、以下のように討論される。
a)まず、palette_run_type_flagを解析するかどうかが、indexMax.をチェックすることにより決定される。
b)その後、パレットインデックスpalette_index_idcを解析するかどうかが、生成された可変adjustedIndexMaxを用いて決定され、この生成は、それ自身の条件付きチェックを必要とし、以下の抜粋されたテキストを参照する。
c)最後に、パレット実行を解析するかどうかが、再度、indexMax.により決定される。
【００３７】
さらに、二個以上のパレットインデックス値を有する一般のパレット符号化ＣＵにおいて、複数のパレット実行をループして、構文を解析するときの各実行に対し、条件indexMaxが、不必要に二回確認される。
【００３８】
現存の設計による構文表と復号プロセスは共に、パレットインデックスマップ符号化に関連するこれらのパーツに対し最適化されない。表１は、SCM-3.0とSCC Draft Text 2によるpalette_coding ()の構文を示す。表１に示されるように、indexmaxがゼロより大きいかどうかに関する条件は、(1-1) と (1-2)に注記されるように、二回確認される。
【表１】
2016046814.tif 000003
【００３９】
可変indexMaxは、現在の符号化ユニットのパレットインデックスの最大可能値を特定する。palette_escape_val_present_flagが１に等しい場合、indexMaxは、currentPaletteSizeに等しくなるように設定される。palette_escape_val_present_flagが0に等しい場合、indexMax iは、 (currentPaletteSize - 1)に等しくなるように設定される。
【００４０】
可変adjustedIndexMax は、以下のようなindexMax 調整プロセスに従って生成される:
adjustedIndexMax = indexMax
(scanPos > 0)の場合 
adjustedIndexMax -  = 1
【００４１】
本発明において、いくつのかの方法が開示されて、パレットインデックスマップの構文と復号プロセスを改善する。
【００４２】
パレットインデックスの構文と復号プロセスの改善
【００４３】
一実施形態において、パレット実行タイプ、パレットインデックス、および、パレット実行のシグナリングは、一つのみの条件付きチェックに基づいて、簡単に省略される。本発明の具体例を組み込んだ構文表が表２に示される。表２中の構文表によると、パレットインデックスの各実行に対し、以下が実行される:
a) indexMax (すなわち、注記 (2-1))上の一つのみのシングル条件付きチェックが実行されて、palette_run_type_flag, palette_index_idc、および、パレット実行を省略するかどうか決定する。従来の構文設計におけるindexMax (すなわち、注記 (2-2)と(2-3))の二回の確認が、二重抹消線に示されるように削除される。
b) indexMaxが０より大きくない場合、adjustedIndexMax ((2-4)に注記される)を生成する必要がない。
c) 二個以上のパレットインデックス値を有するパレット符号化ＣＵにおいて、複数のパレット実行をループし、構文を解析するとき、条件 indexMax は、一度だけ確認される。
【表２】
2016046814.tif 000004
【００４４】
別の実施形態において、条件付きチェックが、インデックス位置 (すなわち、while( scanPos < nCbS * nCbS ))上のwhileループ外で機能する。パレットサイズが空である、または、１であるとき、ゼロである全インデックスにより、実行は、たった一度である;条件全体がwhileループ外側で構築される。この実施例中、複数のパレット実行をループして、構文を解析するとき、二個以上のパレットインデックス値を有するパレットＣＵにおいて、条件indexMaxをチェックする必要がまったくない。可能なインデックス値(indexMax =0)だけを有するケースに関して、解析/復号は、whileループを省略し、且つ、palette_escape_val_present_flagが１に等しいとき、復号される構文要素だけがエスケープ値である。
【表３】
2016046814.tif 000005
【００４５】
図２は、本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略される。ステップ２１０において、システムは、現在のブロックに関連する入力データを受信する。符号化において、現在のブロックに関連する入力データは、符号化されるブロックの現在のパレットとエスケープフラグに対応する。復号において、現在のブロックに関連する入力データは、現在のパレット、および、エスケープフラグに対応する。現在のブロックに関連する入力データは、メモリ(たとえば、コンピュータメモリ、バッファ (ＲＡＭまたはＤＲＡＭ)またはその他の媒体)、または、プロセッサから回収される。ステップ２２０において、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうか判断する。ステップ２３０において、現在のブロック中に、一つのみのシングルパレットインデックスがある場合、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略される。
【００４６】
図３は、本発明によるパレットインデックスマップ符号化のフローチャートであり、現在のブロックの総パレットサイズに対応するひとつ以上の構文要素は、エンコーダ側でシグナリングされるか、または、デコーダ側で解析され、且つ、総パレットサイズが１に等しい場合、映像データのブロック中に、一つのみのシングルパレットインデックスがあるかどうかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素が省略される。ステップ３１０に示されるように、システムは、現在のブロックに関連する入力データを受信する。ステップ３２０において、現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む現在のブロックの対応する総パレットサイズが、エンコーダ側、または、デコーダ側で生成される。ステップ３３０において、Escapeインデックスを含む現在のブロックの総パレットサイズが１に等しい場合、現在の第一構文要素、および、現在の第二構文要素のシグナリングがエンコーダ側で省略されるか、または、現在の第一構文要素と現在の第二構文要素の各自の値が、デコーダ側で推定される。
【００４７】
上の記述が提示されて、当業者に、特定のアプリケーションとその要求のコンテキストに記述される通り、本発明を行うことができる。当業者なら、記述された具体例への各種修正が理解でき、ここで定義される一般原則は別の実施例にも応用できる。よって、本発明は、記述される特定の実施例に制限することを目的としておらず、原理と新規特徴と一致する最大範囲に一致する。上述の記述において、本発明の十分な理解を提供するため、各種特定の詳細が説明される。当業者なら、本発明が行えることが理解できる。
【００４８】
上述の本発明の具体例は、各種ハードウェア、ソフトウェアコード、または、それらの組み合わせで実行される。たとえば、本発明の具体例は、画像圧縮チップに整合される回路、または、画像圧縮ソフトウェアに整合されるプログラムコードで、上述の処理を実行する。本発明の具体例は、デジタルシグナルプロセッサ (ＤＳＰ)で実行されるプログラムコードで、上述の処理を実行する。本発明は、さらに、コンピュータプロセッサ、デジタルシグナルプロセッサ、マイクロプロセッサ、または、フィールドプログラマブルゲートアレイ (ＦＰＧＡ)により実行される複数の機能を含む。これらのプロセッサは、本発明により具体化される特定の方法を定義する機械読み取り可能ソフトウェアコード、または、ファームウェアコードを実行することにより、本発明による特定のタスクを実行するように設定される。ソフトウェアコード、または、ファームウェアコードは、異なるプログラミング言語、および、異なるフォーマット、または、スタイルで開発される。ソフトウェアコードは、さらに、異なるターゲットプラットフォームにコンパイルされる。しかし、本発明によるタスクを実行するソフトウェアコードの異なるコードフォーマット、スタイル、および、言語、および、設定コードのその他の手段は、本発明の精神を逸脱しない。
【００４９】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【００５０】
１１０、１２０、１３０、１４０、１５０、１６０、１７０  群
【図１Ａ】
2016046814.tif 000006
【図１Ｂ】
2016046814.tif 000007
【図１Ｃ】
2016046814.tif 000008
【図２】
2016046814.tif 000009
【図３】
2016046814.tif 000010