特許第6149076号(P6149076)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 寰發股▲ふん▼有限公司の特許一覧

特許6149076イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置
<>
  • 特許6149076-イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 図000005
  • 特許6149076-イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 図000006
  • 特許6149076-イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 図000007
  • 特許6149076-イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 図000008
  • 特許6149076-イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6149076
(24)【登録日】2017年5月26日
(45)【発行日】2017年6月14日
(54)【発明の名称】イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20170607BHJP
   H04N 19/463 20140101ALI20170607BHJP
【FI】
   H04N19/70
   H04N19/463
【請求項の数】17
【全頁数】17
(21)【出願番号】特願2015-163631(P2015-163631)
(22)【出願日】2015年8月21日
(65)【公開番号】特開2016-46814(P2016-46814A)
(43)【公開日】2016年4月4日
【審査請求日】2015年8月21日
(31)【優先権主張番号】62/041,180
(32)【優先日】2014年8月25日
(33)【優先権主張国】US
(31)【優先権主張番号】62/106,357
(32)【優先日】2015年1月22日
(33)【優先権主張国】US
(31)【優先権主張番号】14/805,605
(32)【優先日】2015年7月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516251901
【氏名又は名称】寰發股▲ふん▼有限公司
【氏名又は名称原語表記】HFI Innovation Inc.
(74)【代理人】
【識別番号】100082175
【弁理士】
【氏名又は名称】高田 守
(74)【代理人】
【識別番号】100106150
【弁理士】
【氏名又は名称】高橋 英樹
(72)【発明者】
【氏名】ライ ワンリン
(72)【発明者】
【氏名】劉 杉
(72)【発明者】
【氏名】莊 子▲徳▼
(72)【発明者】
【氏名】キム ジュンスン
【審査官】 長谷川 素直
(56)【参考文献】
【文献】 特開2014−107742(JP,A)
【文献】 Liwei Guo(外2名),CE3: Results of Test 3.1 on Palette Mode for Screen Content Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-N0247,米国,ITU-T,2013年 8月 2日,p.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ符号化システムにおけるパレット符号化を用いる映像データのブロックを符号化・復号する方法であって、前記方法は、
現在のブロックに関連し、パレット符号化(エンコード)またはパレット復号(デコード)される入力映像データを受信する工程と、
前記現在のブロック中に、一つのみのパレットインデックスがあるかどうかを、予測されたパレットの数(第一数)を表す第一構文要素、シグナリングされたパレットの数(第二数)を表す第二構文要素、前記現在のブロック中に、Escapeサンプルがあるかどうかを示すCU_level_escape_flagを表す第三構文要素、および、前記現在のブロックのパレットインデックスの最大可能値に対応する第四構文要素の組み合わせで特定される情報に基づいて判断する工程と、
前記現在のブロック中に、一つのみのパレットインデックスがある場合、前記現在のブロックの現在のパレットインデックスマップのエンコーダ側でのシグナリングを省略するか、または、前記現在のブロックの現在のパレットインデックスマップを復号する構文のデコーダ側での解析を省略する工程と、
を有することを特徴とする方法。
【請求項2】
前記現在のブロック中に、一つのみのパレットインデックスがあるかどうかを判断する前記工程は、前記現在のブロックの現在のパレット表を前記エンコーダ側でシグナリングした後、または、前記現在のブロックの前記現在のパレット表を前記デコーダ側で解析した後、実行されることを特徴とする請求項1に記載の方法。
【請求項3】
前記現在のブロック中に、一つのみのパレットインデックスがある場合、前記一つのみのパレットインデックスは、前記デコーダ側でゼロに推測されることを特徴とする請求項に記載の方法。
【請求項4】
予測されたパレットの前記第一数が1、シグナリングされたパレットの前記第二数がゼロ、および、前記CU_level_escape_flagがEscapeサンプルがないことを示す場合、前記現在のパレットインデックスマップは、シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定されることを特徴とする請求項に記載の方法。
【請求項5】
前記シングルカラーパレットインデックスは、前のパレット表から予測されるパレットカラーに対応することを特徴とする請求項に記載の方法。
【請求項6】
予測されたパレットの前記第一数がゼロ、シグナリングされたパレットの前記第二数が1、および、CU_level_escape_flagがEscapeサンプルがないことを示す場合、前記現在のパレットインデックスマップは、シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定されることを特徴とする請求項に記載の方法。
【請求項7】
前記シングルカラーパレットインデックスは、前記現在のブロックの符号化データを含むビットストリームでシグナリングされるパレットインデックスに対応することを特徴とする請求項に記載の方法。
【請求項8】
予測されたパレットの前記第一数がゼロ、シグナリングされたパレットの前記第二数がゼロ、および、前記CU_level_escape_flagが、少なくとも一つのEscapeサンプルを示す場合、前記現在のブロックの前記現在のパレットインデックスマップが全Escapeサンプルとして復号されることを特徴とする請求項に記載の方法。
【請求項9】
記現在のブロックの前記パレットインデックスの前記最大可能値がゼロの場合、前記現在のブロック中に一つのみのパレットインデックスがあることを特徴とする請求項1に記載の方法。
【請求項10】
前記現在のブロックの前記パレットインデックスの前記最大可能値がゼロの場合前記最大可能値に基づいて調整される調整インデックスマップに対応する第構文要素は生成されないことを特徴とする請求項に記載の方法。
【請求項11】
前記現在のブロック中に、一つのみのパレットインデックスがあるとき、パレットランタイプ、前記現在のブロックに関連するパレットインデックス、および、前記現在のブロックにおけるパレットランのそれぞれに対応する構文要素は、前記エンコーダ側で省略されることを特徴とする請求項1に記載の方法。
【請求項12】
ビデオ符号化システムにおけるパレット符号化を用いた映像データのブロックを符号化・復号する装置であって、前記装置は、
現在のブロックに関連し、パレット符号化(エンコード)またはパレット復号(デコード)される入力映像を受信する、
前記現在のブロック中に、一つのみのパレットインデックスがあるかどうかを、予測されたパレットの数(第一数)を表す第一構文要素、シグナリングされたパレットの数(第二数)を表す第二構文要素、および、前記現在のブロック中に、Escapeサンプルがあるかどうかを示すCU_level_escape_flagを表す第三構文要素、および、前記現在のブロックのパレットインデックスの最大可能値に対応する第四構文要素の組み合わせで特定される情報に基づいて判断する、および、
前記現在のブロック中に、一つのみのパレットインデックスがある場合、前記現在のブロックの現在のパレットインデックスマップのシグナリングをエンコーダ側で省略する、または、前記現在のブロックの現在のパレットインデックスマップを復号する構文の解析をデコーダ側で省略するように、一つ以上の電子回路を設定することを特徴とする装置。
【請求項13】
ビデオ符号化システムにおけるパレット符号化を用いた映像データのブロックを符号化・復号する方法であって、一つのみのパレットインデックスがあるかどうかを示す第一構文要素がアサートされる場合、前記ビデオ符号化システムは、映像データの前記ブロック中に、前記第一構文要素、および、前記パレットインデックスを示す第二構文要素を組み込み、前記方法は、
現在のブロックに関連する入力データを受信する工程と、
前記現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む前記現在のブロックの対応する総パレットサイズを、エンコーダ側、または、デコーダ側で生成する工程と、
前記Escapeインデックスを含む前記現在のブロックの前記総パレットサイズが1に等しい場合、現在の第一構文要素と現在の第二構文要素の前記エンコーダ側でのシグナリングを省略する、または、前記現在の第一構文要素と前記現在の第二構文要素の各自の値を、前記デコーダ側で推定する工程と、
を有することを特徴とする方法。
【請求項14】
さらに、前記総パレットサイズが1より大きい場合、前記現在の第一構文要素を前記エンコーダ側でシグナリングするか、または、前記現在の第一構文要素を前記デコーダ側で解析する工程を有することを特徴とする請求項13に記載の方法。
【請求項15】
さらに、前記現在の第一構文要素が1に等しい場合、前記現在の第二構文要素を前記エンコーダ側でシグナリングするか、または、前記現在の第二構文要素を前記デコーダ側で解析する工程を有することを特徴とする請求項13に記載の方法。
【請求項16】
前記現在のブロックの全サンプルは、前記現在の第二構文要素に等しい一つの現在のインデックス値を有すると推定されることを特徴とする請求項15に記載の方法。
【請求項17】
さらに、前記現在の第一構文要素がゼロに等しい場合、前記現在のブロックの現在のインデックスマップを、前記エンコーダ側でシグナリングするか、または、前記現在のブロックの前記現在のインデックスマップを、前記デコーダ側で解析する工程を有することを特徴とする請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イメージ、および、映像データのパレットインデックス符号化に関するものであって、特に、本発明は、ブロック中に、一つのみのシングルパレットインデックスがあるときの符号化効率を改善する各種技術に関するものである。
【背景技術】
【0002】
高効率ビデオ符号化(HEVC)は、近年発展している新しい符号化基準である。高効率ビデオ符号化(HEVC)システムにおいて、H.264/AVCの固定サイズのマクロブロックは、符号化ユニット(CU)というフレキシブルなブロックにより代替される。CU中の画素は、同じ符号化パラメータを共有して、符号化効率を改善する。CUは最大CU(LCU)から始まり、HEVCの符号化ツリーユニット(CTU)とも称される。符号化ユニットの概念に加え、予測単位(PU)の概念もHEVCに導入される。一旦、CU階層ツリーの分割が行われると、各リーフCUは、予測タイプ、および、PU分割にしたがって、さらに、ひとつ以上の予測単位(PU)に分割される。スクリーンコンテント符号化のいくつかの符号化ツールが発展している。本発明に関連するこれらのツールは、以下で簡潔に再検討される。
【0003】
パレット符号化
HEVCスクリーンコンテント符号化 (SCC)の発展期間中、いくつかの提案が開示されて、パレットベース符号化に取り組んでいる。たとえば、パレット予測と共有技術が、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)(非特許文献1)および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)(非特許文献2)で開示される。JCTVC-N0247(非特許文献1)とJCTVC-O0218(非特許文献2)において、各カラーコンポーネントのパレットが構成、および、送信される。パレットが、その左に隣接するCUから予測(または、共有)されて、ビットレートを低下させる。その後、所定ブロック中の全画素が、それらのパレットインデックスを用いて符号化される。JCTVC-N0247による符号化プロセスの例は以下のようである。
【0004】
1.パレットの送信:まず、カラーインデックス表 (パレット表とも称される)サイズが、パレット素子(すなわち、カラー値)により送信される。
2.画素値の送信:CU中の画素がラスター走査順序で符号化される。ひとつ以上の画素の各群において、まず、ランベース(run-base)モードのフラグが送信されて、 “コピーインデックスモード”または“copy-aboveモード”が用いられるかどうかを示す。
2.1“コピーインデックスモード”:このランベースモードにおいて、まず、各自パレットインデックスが、run値を表す各自run値 “palette_run” (たとえば、M)によりシグナリングされる。ある文献では、“コピーインデックスモード”は、“インデックス”モードとも称される。本発明において、用語“palette_run”は、 “pixel_run”、または、単に “run”とも称される。run値は、合計M個の連続したサンプルが、すべて、runモードを用いて符号化されることを示す。ビットストリーム中でシグナリングされるとき、同じパレットインデックスを有するので、現在の位置、および、以下のM位置に送信されるこれ以上の情報が必要ない。パレットインデックス (たとえば、i)も、全3カラーコンポーネントにより共有され、それは、YUV 色空間の場合において、再構築された画素値が (Y, U, V) = (paletteY[i], paletteU[i], paletteV[i])であることを意味する。
2.2“copy-aboveモード”:copy-aboveモードにおいて、各自の値 “palette_run” (たとえば、N)が送信されて、現在の画素、および、以下の N 画素にとって、パレットインデックスが、ロウ中の対応するパレットインデックスと同じであることを示す。
3.剰余の送信:ステージ2で送信されるパレットインデックスが画素値に戻されて、予測として用いられる。HEVC剰余符号化を用いて、剰余情報が送信され、再構築のために、予測器に加えられる。
【0005】
図1A図1Cは、スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ、および、パレットインデックスマップ符号化の例を説明する。図1Aは、パレットカラーのパレットインデックス0から3、および、Escapeサンプルのパレットインデックス4を有するパレットインデックスマップを説明する。Escapeサンプルに対応するインデックスは、この発明において、Escapeインデックスとも称される。図1Bは、SCM-2.0によるパレットインデックスマップ符号化を説明し、“コピーインデックスモード”が、3、1、2および6に対応する“パレット実行”を有する第一ロウ中の4群(110、120、130と140)のインデックスに適用される。図1Cは、第二ロウのパレットインデックスマップ符号化の例を説明し、8、1 および4に対応する実行により、“copy-aboveモード”が第一群サンプル(150)に適用され、“コピーインデックスモード”が次の二群(160と170)に適用される。
【0006】
コピーインデックスモード、および、copy-aboveモード両方は、この発明において、“コピーモード”と称される。コピーインデックスモードにおいて、コピーインデックス符号化画素の主要画素のパレットインデックスが送信される。コピーインデックス符号化画素の数量も送信される。デコーダ側で、基本の画素に符号化モード(すなわち、コピーインデックスモード)を決定後、主要画素のパレットインデックスの情報、および、コピーインデックス符号化画素の数量のみが、コピーインデックス符号化画素の再構築に必要とされる。主要画素に続く画素は、予測器(すなわち、左の画素)から“複製”することにより再構築される。画素値は、パレット表を用いて再構築される。copy-aboveモードにおいて、上述の画素がすでに再構築されているので、送信される必要がある予測器に関連するパレットインデックス(すなわち、上述の画素)がない。現在の画素は、上述の画素から“複製”される。
【0007】
パレット表シグナリング
【0008】
スクリーンコンテキスト符号化テストモデル 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)(非特許文献3)に導入されるパレット符号化モードにおいて、パレット予測表が用いられて、前もって符号化/復号されたパレットカラーを保存するので、それらは、後続のブロックのパレットの予測器として用いられる。デコーダがビットストリームを復号するとき、最初のパレット符号化ブロックのパレットカラーが、パレット予測表中に保存される。次のパレット符号化ブロックは、パレット予測器として保存された表からの色を使用することができる。パレット予測器により予測されないこれらの色に対し、そのパレット中の新色がシグナリングされる。現在のブロックのパレットを再構築するため、パレットを再構築する構文はSCM-2.0で記述され、一例は以下のように示される。
【0009】
ステップ 1: パレットをシグナリング、または、解析する。
このステップにおいて、パレットは、パレット共有フラグ(すなわちpalette_sharing_flag) が設定されるかどうかをまずチェックすることにより、エンコーダ側でシグナリングされると共に、デコーダ側で再構築される。パレット共有フラグが設定される(すなわち、値1を有する)場合、現在のパレットは、前のブロックのパレットと同じである。そうでなければ、パレットは、パレット更新工程にしたがって再構築される。パレットを再構築する構文構造の例は以下で示される。
‘palette_sharing_flag’を解析する。
‘palette_sharing_flag’ が1に等しい場合、現在のパレットは、前のブロックのパレットと同じである。
そうでなければ、
‘reuse_flags’を解析して、パレット予測表中のどの素子が現在のパレットで再利用されるかを示す。
‘num_signalled_palette’を解析して、いくつの新しいパレットカラーが、現在のパレットに復号される必要があるかを示す。
‘num_signalled_palette’をループし、パレットカラー値を解析する。
【0010】
ステップ 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’を解析して、同じインデックスで、数量サンプルを、直接、上述のサンプルとして示す
【0011】
カラーインデックスマップ符号化の符号化効率をさらに改善することが望まれる。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】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)
【非特許文献2】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)
【非特許文献3】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)
【発明の概要】
【発明が解決しようとする課題】
【0013】
ビデオ符号化におけるパレット符号化を用いた映像データのブロックを符号化する方法と装置が開示される。
【課題を解決するための手段】
【0014】
本発明の一実施形態によると、現在のブロック中に、一つのみのシングルパレットインデックスがあるかがまず決定される。現在のブロック中に、一つのみのシングルパレットインデックスがある場合、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する任意の構文の解析がデコーダ側で省略される。現在のブロックの現在のパレット表をエンコーダ側でシグナリングした後、または、現在のブロックの現在のパレット表をデコーダ側で解析した後、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかが実行される。現在のブロック中に、一つのみのシングルパレットインデックスがあるとき、パレット実行タイプ、関連するパレットインデックス、および、パレット実行に対応する構文要素は、エンコーダ側で省略される。
【0015】
現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかは、予測されたパレットの数量を表す構文要素、シグナリングされたパレットの数量を表す構文要素、および、現在のブロック中に、Escapeサンプルがあるかを示す構文要素 (たとえば、CU_level_escape_flag)に基づく。現在のブロック中に、一つのみのシングルパレットインデックスがある場合、シングルパレットインデックスが、デコーダ側でゼロになると推定される。予測されたパレットの数量が1である、シグナリングされたパレットの数量がゼロである、および、CU_level_escape_flagが、Escapeサンプルがないことを示す場合、現在のパレットインデックスマップが、一シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定される。この場合、シングルカラーパレットインデックスは、前のパレット表から予測されるパレットインデックスに対応する。予測されたパレットの数量がゼロ、シグナリングされたパレットの数量が1である、および、CU_level_escape_flagが、Escapeサンプルがないことを示す場合、現在のパレットインデックスマップは、一シングルカラーパレットインデックスを有し、Escapeサンプルがないと推定される。この場合、シングルカラーパレットインデックスは、現在のブロックの符号化データを含むビットストリームでシグナリングされるパレットインデックスに対応する。予測されたパレットの数量がゼロ、シグナリングされたパレットの数量がゼロ、および、CU_level_escape_flag が、少なくともひとつのEscapeサンプルを示す場合、現在のブロックの現在のパレットインデックスマップは、全Escapeサンプルとして復号される。
【0016】
別の実施形態において、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうかは、現在のブロックのパレットインデックスの最大可能値に対応する構文要素に基づいて決定される。現在のブロックのパレットインデックスの最大可能値がゼロである場合、現在のブロック中に、一つのみのシングルパレットインデックスがある。現在のブロックのパレットインデックスの最大可能値がゼロである場合、調整されたインデックスマップに対応する構文要素は生成されない。
【0017】
別の実施形態は、映像データのブロック中に、一つのみのシングルパレットインデックがあるかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素を組み込んだシステムに対処する。この実施形態によると、現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む現在のブロックの対応する総パレットサイズが、エンコーダ側、または、デコーダ側で生成される。Escapeインデックスを含む現在のブロックの総パレットサイズが1に等しい場合、現在の第一構文要素、および、現在の第二構文要素のシグナリングが、エンコーダ側で省略されるか、または、現在の第一構文要素と現在の第二構文要素の各自の値が、デコーダ側で推定される。総パレットサイズが1より大きい場合、現在の第一構文要素がエンコーダ側でシグナリングされるか、または、現在の第一構文要素がデコーダ側で解析される。現在の第一構文要素が1に等しい場合、現在の第二構文要素がエンコーダ側でシグナリングされるか、または、現在の第二構文要素がデコーダ側で解析される。この場合、現在のブロックの全サンプルが、現在の第二構文要素に等しい一つの現在のインデックス値を有することが推定される。現在の第一構文要素がゼロに等しい場合、現在のブロックの現在のインデックスマップはエンコーダ側でシグナリングされるか、または、現在のブロックの現在のインデックスマップがデコーダ側で解析される。
【発明の効果】
【0018】
本発明により、カラーインデックスマップ符号化の符号化効率がさらに改善される。
【図面の簡単な説明】
【0019】
図1A】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップの例を示す図である。
図1B】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ符号化の例を示す図である。
図1C】スクリーンコンテント符号化テストモデル 2.0 (SCM-2.0)によるパレットインデックスマップ符号化の例を示す図である。
図2】本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略されることを示す図である。
図3】本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの総パレットサイズに対応する構文要素がエンコーダ側でシグナリングされるか、または、デコーダ側で解析され、および、総パレットサイズが1に等しい場合、映像データのブロック中に、一つのみのシングルパレットインデックスがあるかどうかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素が省略される。
【発明を実施するための形態】
【0020】
本発明のこれらの、及び他の特徴、態様、及び利点は、以下の説明、添付した特許請求の範囲、及び添付した図面に関して、より良く理解されよう。
【0021】
スクリーンコンテキスト符号化テストモデル 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)(非特許文献3)中で開示されるカラーインデックスマップ符号化の構文構造は、一ブロック中の全サンプルが同じカラーインデックスを有するとき、非効率である。この場合、新しい実行、copy-aboveモード、または、ランレングス(run length)のシグナリングが不要になる。したがって、本発明は、均一なインデックスマップを有するこのようなブロックを識別、および、シグナリングする方法を開示する。
【0022】
ブロック中に一パレット素子だけあるときの検出とシグナリング
【0023】
一実施形態において、ブロック中のシングルパレットインデックス (すなわち、現在のブロック中に、一つのみのシングルパレットインデックスがある)の条件は、パレットインデックスマップをシグナリングする必要性がなく、黙示的に、ひとつ以上のシグナリングされた構文要素に基づいて識別される。たとえば、一パレットインデックスの条件は、以下のように、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サンプルであるケースに対応する。
【0024】
構文、たとえば、SCM-2.0中のpalette_reuse_flagsを復号したあと、予測されたパレットの数量が生成され、これは、パレットが再利用されるかを示す。予測されたパレットの数量は、さらに、ビットストリーム中のその他の構文要素に基づいて決定される。本発明は、予測、および/または、シグナリングされたパレットの数量がシグナリングされる特定の方法に限定されない。この原理は、その他の構文要素に基づいて、パレットの単一素子の条件を識別する。全ケース (すなわち、示されるケース a) から c))において、ブロック中の全サンプルに対し、一つのみの可能なインデックス値 (たとえば、0) がある。よって、上述の実施形態によると、上述のケースがいつアサートされても (すなわち、ケースがtrueである)、インデックスマップをシグナリングする構文は省略され、且つ、全インデックスは0として推測される。一つのみのインデックスは、さらに、ケースaの前のパレットから予測されるインデックスに基づいて決定される。一つのみのインデックスは、さらに、ケースbのビットストリームでシグナリングされるインデックスに基づいて決定される。一実施形態において、ブロックのパレット表をエンコーダ側でシグナリング、または、ブロックのパレット表をデコーダ側で解析後、ブロック中に、一つのみのシングルパレットインデックスがあるかどうかの判断が実行される。
【0025】
注意すべきことは、SCM-2.0のパレット構文にしたがって、ケース a) と b)の本発明の実施形態は、ブロック全体のサイズの新しい実行のシグナリング、または、ブロック幅に等しいランレングスを有する連続した複製を省略することである。ケース c)において、SCM-2.0 パレットは、ESCAPEの実行を許可しないので、本発明の実施形態は、ある長さを有するEscapeインデックスを連続してシグナリングする従来のアプローチに大幅な省略を提供する。ESCAPEの実行が許可される場合(たとえば、SCM-3.0 中とその後)、ケース c) は、ブロック全体のサイズの新しい実行のシグナリングを省略する。
【0026】
single_index_flagを有するpalette_sharing_flagの組み込み
【0027】
この実施例において、符号化効率が、新しいフラグ、single_index_flagを有するpalette_sharing_flagのシグナリングにより、ブロック中のシングルパレットインデックスのケースに対し改善される。新しいフラグ、single_index_flagは、palette_sharing_flagが1に等しく、それが、ブロック中の全サンプルが同じインデックスを用いることを示す場合に、シグナリングされる。さらに、同じインデックスは、前のパレット (共有されるパレット)中の素子のひとつを指し示す。palette_sharing_flagとsingle_index_flag両方の結合された構文設計は、以下のようにまとめられる。
【0028】
palette_sharing_flag = 0の場合、以下のケースに対し、ブロック中の全インデックスは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サンプルであるケースに対応する。
【0029】
palette_sharing_flag = 1の場合、本発明の実施形態によるインデックスマップ符号化は以下のように示される。
d)前のパレットサイズ =1、且つ、CU_level_escape_flag = 0の場合、ブロック中の全インデックスは0として推測される。
上述の条件は、現在のパレットが前のパレットと同じで、且つ、一インデックスだけを有し (すなわち、前のパレットサイズ =1)、且つ、Escapeサンプルがないケースに対応する。ブロック中の全インデックス は0として推測される。
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)、通常のインデックスマップ符号化で、インデックスマップを符号化する。
f)前のパレットサイズ >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)、通常のインデックスマップ符号化で、インデックスマップを符号化する。
【0030】
single_index_flagのシグナリング、または、推定
【0031】
この実施例において、single_index_flagとsingle_indexのシグナリングは、パレット符号化 (たとえば、palette_sharing_flag, 予測されたパレット、新しく送信されたパレット、および、CU_level_escape_flagシグナリングの後)の後、および、インデックスマップ符号化前である。
【0032】
総パレットサイズ (Escapeインデックスを含む)が1に等しい場合、single_index_flagは1であると推定される。single_indexは0であると推定される。全サンプルインデックスは、0であるsingle_indexとして推定される。
【0033】
そうでなければ (すなわち、総パレットサイズが1より大きい)、新しいフラグ、single_index_flagがシグナリングされる。single_index_flagが1に等しい場合、single_indexがシグナリングされる。全サンプルインデックスがsingle_indexであると推定される。そうでなければ (すなわち、single_index_flag = 0)、インデックスマップが、通常のインデックスマップ符号化を用いて符号化される。
【0034】
ゼロ/シングルカラーパレットのシグナリング
【0035】
本発明の一実施形態によると、現在のパレットが空である (すなわち、全サンプルがエスケープ符号化される)場合、または、現在のパレットが、一つのみのカラーを有し、且つ、Escapeがない場合 (すなわち、パレットインデックス 0の全サンプル)、palette_run_type_flag (コピーインデックスモード、または、copy_above modeを示す)、パレットインデックスpalette_index_idcのシグナリング、および、インデックス実行がすべて、パレット符号化ブロックに対し省略される。CU全体 (すなわち、CU幅×CU高さ-1)を超過するとき、パレットインデックスは0として生成され、且つ、インデックス実行が生じる。しかし、これらのシングルインデックス値ケースにおいて、シグナリング (エンコーダ)、および、解析(デコーダ)は、複数の条件付きチェックを用いることにより省略され、異なる条件が、異なる構文要素のためにチェックされる。例の構文表と意味は以下のように示される。
【0036】
パレットインデックスの各実行の上述の構文要素を省略する条件の確認プロセスは、以下のように討論される。
a)まず、palette_run_type_flagを解析するかどうかが、indexMax.をチェックすることにより決定される。
b)その後、パレットインデックスpalette_index_idcを解析するかどうかが、生成された可変adjustedIndexMaxを用いて決定され、この生成は、それ自身の条件付きチェックを必要とし、以下の抜粋されたテキストを参照する。
c)最後に、パレット実行を解析するかどうかが、再度、indexMax.により決定される。
【0037】
さらに、二個以上のパレットインデックス値を有する一般のパレット符号化CUにおいて、複数のパレット実行をループして、構文を解析するときの各実行に対し、条件indexMaxが、不必要に二回確認される。
【0038】
現存の設計による構文表と復号プロセスは共に、パレットインデックスマップ符号化に関連するこれらのパーツに対し最適化されない。表1は、SCM-3.0とSCC Draft Text 2によるpalette_coding ()の構文を示す。表1に示されるように、indexmaxがゼロより大きいかどうかに関する条件は、(1-1) と (1-2)に注記されるように、二回確認される。













【表1】
【0039】
可変indexMaxは、現在の符号化ユニットのパレットインデックスの最大可能値を特定する。palette_escape_val_present_flagが1に等しい場合、indexMaxは、currentPaletteSizeに等しくなるように設定される。palette_escape_val_present_flagが0に等しい場合、indexMax iは、 (currentPaletteSize - 1)に等しくなるように設定される。
【0040】
可変adjustedIndexMax は、以下のようなindexMax 調整プロセスに従って生成される:
adjustedIndexMax = indexMax
(scanPos > 0)の場合
adjustedIndexMax - = 1
【0041】
本発明において、いくつのかの方法が開示されて、パレットインデックスマップの構文と復号プロセスを改善する。
【0042】
パレットインデックスの構文と復号プロセスの改善
【0043】
一実施形態において、パレット実行タイプ、パレットインデックス、および、パレット実行のシグナリングは、一つのみの条件付きチェックに基づいて、簡単に省略される。本発明の具体例を組み込んだ構文表が表2に示される。表2中の構文表によると、パレットインデックスの各実行に対し、以下が実行される:
a) indexMax (すなわち、注記 (2-1))上の一つのみのシングル条件付きチェックが実行されて、palette_run_type_flag, palette_index_idc、および、パレット実行を省略するかどうか決定する。従来の構文設計におけるindexMax (すなわち、注記 (2-2)と(2-3))の二回の確認が、二重抹消線に示されるように削除される。
b) indexMaxが0より大きくない場合、adjustedIndexMax ((2-4)に注記される)を生成する必要がない。
c) 二個以上のパレットインデックス値を有するパレット符号化CUにおいて、複数のパレット実行をループし、構文を解析するとき、条件 indexMax は、一度だけ確認される。
【表2】
【0044】
別の実施形態において、条件付きチェックが、インデックス位置 (すなわち、while( scanPos < nCbS * nCbS ))上のwhileループ外で機能する。パレットサイズが空である、または、1であるとき、ゼロである全インデックスにより、実行は、たった一度である;条件全体がwhileループ外側で構築される。この実施例中、複数のパレット実行をループして、構文を解析するとき、二個以上のパレットインデックス値を有するパレットCUにおいて、条件indexMaxをチェックする必要がまったくない。可能なインデックス値(indexMax =0)だけを有するケースに関して、解析/復号は、whileループを省略し、且つ、palette_escape_val_present_flagが1に等しいとき、復号される構文要素だけがエスケープ値である。










【表3】
【0045】
図2は、本発明の具体例によるパレットインデックスマップ符号化のフローチャートで、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略される。ステップ210において、システムは、現在のブロックに関連する入力データを受信する。符号化において、現在のブロックに関連する入力データは、符号化されるブロックの現在のパレットとエスケープフラグに対応する。復号において、現在のブロックに関連する入力データは、現在のパレット、および、エスケープフラグに対応する。現在のブロックに関連する入力データは、メモリ(たとえば、コンピュータメモリ、バッファ (RAMまたはDRAM)またはその他の媒体)、または、プロセッサから回収される。ステップ220において、現在のブロック中に、一つのみのシングルパレットインデックスがあるかどうか判断する。ステップ230において、現在のブロック中に、一つのみのシングルパレットインデックスがある場合、現在のブロックの現在のパレットインデックスマップのシグナリングがエンコーダ側で省略されるか、または、現在のブロックの現在のパレットインデックスマップを復号する構文の解析がデコーダ側で省略される。
【0046】
図3は、本発明によるパレットインデックスマップ符号化のフローチャートであり、現在のブロックの総パレットサイズに対応するひとつ以上の構文要素は、エンコーダ側でシグナリングされるか、または、デコーダ側で解析され、且つ、総パレットサイズが1に等しい場合、映像データのブロック中に、一つのみのシングルパレットインデックスがあるかどうかを示す第一構文要素、および、第一構文要素がアサートされる場合、一シングルパレットインデックスを示す第二構文要素が省略される。ステップ310に示されるように、システムは、現在のブロックに関連する入力データを受信する。ステップ320において、現在のブロックの現在のパレット表をシグナリング、または、解析後、Escapeインデックスを含む現在のブロックの対応する総パレットサイズが、エンコーダ側、または、デコーダ側で生成される。ステップ330において、Escapeインデックスを含む現在のブロックの総パレットサイズが1に等しい場合、現在の第一構文要素、および、現在の第二構文要素のシグナリングがエンコーダ側で省略されるか、または、現在の第一構文要素と現在の第二構文要素の各自の値が、デコーダ側で推定される。
【0047】
上の記述が提示されて、当業者に、特定のアプリケーションとその要求のコンテキストに記述される通り、本発明を行うことができる。当業者なら、記述された具体例への各種修正が理解でき、ここで定義される一般原則は別の実施例にも応用できる。よって、本発明は、記述される特定の実施例に制限することを目的としておらず、原理と新規特徴と一致する最大範囲に一致する。上述の記述において、本発明の十分な理解を提供するため、各種特定の詳細が説明される。当業者なら、本発明が行えることが理解できる。
【0048】
上述の本発明の具体例は、各種ハードウェア、ソフトウェアコード、または、それらの組み合わせで実行される。たとえば、本発明の具体例は、画像圧縮チップに整合される回路、または、画像圧縮ソフトウェアに整合されるプログラムコードで、上述の処理を実行する。本発明の具体例は、デジタルシグナルプロセッサ (DSP)で実行されるプログラムコードで、上述の処理を実行する。本発明は、さらに、コンピュータプロセッサ、デジタルシグナルプロセッサ、マイクロプロセッサ、または、フィールドプログラマブルゲートアレイ (FPGA)により実行される複数の機能を含む。これらのプロセッサは、本発明により具体化される特定の方法を定義する機械読み取り可能ソフトウェアコード、または、ファームウェアコードを実行することにより、本発明による特定のタスクを実行するように設定される。ソフトウェアコード、または、ファームウェアコードは、異なるプログラミング言語、および、異なるフォーマット、または、スタイルで開発される。ソフトウェアコードは、さらに、異なるターゲットプラットフォームにコンパイルされる。しかし、本発明によるタスクを実行するソフトウェアコードの異なるコードフォーマット、スタイル、および、言語、および、設定コードのその他の手段は、本発明の精神を逸脱しない。
【0049】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【0050】
110、120、130、140、150、160、170 群
図1A
図1B
図1C
図2
図3