IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7556037ローカルデュアルツリー向けのパレットモード
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-13
(45)【発行日】2024-09-25
(54)【発明の名称】ローカルデュアルツリー向けのパレットモード
(51)【国際特許分類】
   H04N 19/117 20140101AFI20240917BHJP
   H04N 19/119 20140101ALI20240917BHJP
   H04N 19/157 20140101ALI20240917BHJP
   H04N 19/176 20140101ALI20240917BHJP
   H04N 19/186 20140101ALI20240917BHJP
   H04N 19/46 20140101ALI20240917BHJP
   H04N 19/593 20140101ALI20240917BHJP
   H04N 19/96 20140101ALI20240917BHJP
【FI】
H04N19/117
H04N19/119
H04N19/157
H04N19/176
H04N19/186
H04N19/46
H04N19/593
H04N19/96
【請求項の数】 12
(21)【出願番号】P 2022547710
(86)(22)【出願日】2021-02-05
(65)【公表番号】
(43)【公表日】2023-03-31
(86)【国際出願番号】 CN2021075408
(87)【国際公開番号】W WO2021155833
(87)【国際公開日】2021-08-12
【審査請求日】2022-08-09
(31)【優先権主張番号】PCT/CN2020/074316
(32)【優先日】2020-02-05
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2020/091661
(32)【優先日】2020-05-21
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ワン,イェ-クイ
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ズゥー,ウェイジア
(72)【発明者】
【氏名】ワン,ユエ
(72)【発明者】
【氏名】ワン,ヤン
(72)【発明者】
【氏名】リュウ,ホンビン
【審査官】久保 光宏
(56)【参考文献】
【文献】国際公開第2021/150407(WO,A1)
【文献】特表2022-525430(JP,A)
【文献】特許第7451731(JP,B2)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 8)",Document: JVET-Q2001-vB, [online],JVET-Q2001 (version 11),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年01月27日,Pages 13,74-76,162-164,214-216,[令和5年8月7日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9675> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v11.zip>.,(See document file "JVET-Q2001-vB.docx" in the zip file "JVET-Q2001-v11.zip".)
【文献】Mohammed Golam Sarwer, et al.,"CE2-related: On maximum palette size of VVC",Document: JVET-Q0291-v2, [online],JVET-Q0291 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年01月08日,Pages 1-4,[令和5年8月7日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9116> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0291-v2.zip>.,(See document file "JVET-Q0291-v2-clean.docx" in the zip file "JVET-Q0291-v2.zip".)
【文献】Yu-Chen Sun, et al.,"Analysis of Palette Mode on Versatile Video Coding",Proceedings of 2019 IEEE Conference on Multimedia Information Processing and Retrieval (MIPR),IEEE,2019年03月30日,Pages 455-458,ISBN: 978-1-7281-1198-8, <DOI: 10.1109/MIPR.2019.00091>.
【文献】Wei Pu, et al.,"Palette Mode Coding in HEVC Screen Content Coding Extension",IEEE Journal on Emerging and Selected Topics in Circuits and Systems,IEEE,2016年11月18日,Vol.6, No.4,Pages 420-432,ISSN: 2156-3357, <DOI: 10.1109/JETCAS.2016.2605661>.
【文献】Yu-Chen Sun, et al.,"PALETTE MODE - A NEW CODING TOOL IN SCREEN CONTENT CODING EXTENSIONS OF HEVC",Proceedings of 2015 IEEE International Conference on Image Processing (ICIP),IEEE,2015年09月30日,Pages 2409-2413,ISBN: 978-1-4799-8339-1, <DOI: 10.1109/ICIP.2015.7351234>.
【文献】Ling Li, et al.,"AHG12: Signaling of chroma presence in PPS and APS",Document: JVET-Q0420-v1, [online],JVET-Q0420 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年01月01日,Pages 1-3,[令和6年1月29日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9245> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0420-v1.zip>.,(See document file "JVET-Q0420-v1.docx" in the zip file "JVET-Q0420-v1.zip".)
【文献】Ye-Kui Wang,"AHG9: A summary of proposals on chroma deblocking tc and β offsets signalling",Document: JVET-R0338-v3, [online],JVET-R0338 (version 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月04日,Pages 1-5,[令和6年1月29日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9982> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0338-v3.zip>.,(See document file "JVET-R0338-v3.docx" in the zip file "JVET-R0338-v3.zip".)
【文献】Hai Wei Sun, et al.,"AHG9: On signaling of deblocking parameters for coding monochrome pictures",Document: JVET-R0078, [online],JVET-R0078 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月02日,Pages 1-6,[令和6年1月29日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9722> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0078-v1.zip>.,(See document file "JVET-R0078.docx" in the zip file "JVET-R0078-v1.zip".)
【文献】Jizheng Xu, et al.,"Chroma deblocking parameters based on chroma coding tools",Document: JVET-R0077-v1, [online],JVET-R0077 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月02日,Pages 1-3,[令和6年1月29日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9721> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0077-v1.zip>.,(See document file "JVET-R0077-v1.docx" in the zip file "JVET-R0077-v1.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
映像の第1の映像ブロックと前記映像のビットストリームとの間での変換のために、前記第1の映像ブロックに第1の予測モードが適用されることを決定するステップと、
予測子パレットテーブルを維持管理するステップと、
前記第1の予測モードにて、前記予測子パレットテーブルに基づいて、前記第1の映像ブロックに対する1つ以上のパレット予測子を有する第1のパレットを構築するステップと、
前記第1の予測モードに基づいて前記変換を実行するステップと、
を有し、
前記第1の予測モードにおいて、前記第1の映像ブロックの再構成サンプルは、前記第1のパレットから導出されるパレット予測子、又はエスケープサンプルのうちの少なくとも一方によって表され
前記第1のパレット内のエントリの最大数が、前記第1の映像ブロックのツリータイプに基づき、
クロマコンポーネントについてのコーディングツールオフセットに関する第1のフラグが、前記ビットストリーム内のピクチャパラメータセット(PPS)に含められ、
クロマデブロッキングパラメータオフセットを規定する第1セットのシンタックス要素が前記ビットストリーム内の前記PPSに含まれるかが、前記第1のフラグの値に基づいて決定され、
前記映像の映像ピクチャについてのクロマデブロッキングパラメータオフセットを規定する第2セットのシンタックス要素が、前記PPSを参照するピクチャヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記映像ピクチャのスライスについてのクロマデブロッキングパラメータオフセットを規定する第3セットのシンタックス要素が、前記PPSを参照するスライスヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記第1のフラグの前記値は、前記映像ピクチャのカラーフォーマットに関係し、
前記第1のフラグが第1の値を持つ場合、前記第1セットのシンタックス要素、前記第2セットのシンタックス要素、及び前記第3セットのシンタックス要素は存在しない、
方法。
【請求項2】
前記予測子パレットテーブルは、前記第1のパレットに基づいて更新される、請求項1に記載の方法。
【請求項3】
前記映像の第2の映像ブロックに前記第1の予測モードが適用され、前記第2の映像ブロックに対する第2のパレットが、前記予測子パレットテーブルに基づいて構築され、
前記第1の映像ブロックにシングルツリーが適用され、且つ前記第2の映像ブロックにローカルデュアルツリーが適用される場合に、前記第1のパレット内のエントリの前記最大数は、前記第2のパレット内のエントリの最大数とは異なる、
請求項1又は2に記載の方法。
【請求項4】
前記第1の映像ブロックに前記シングルツリーが適用され、且つ前記第2の映像ブロックに前記ローカルデュアルツリーが適用される場合に、前記第2のパレット内のエントリの前記最大数は、前記第1のパレット内のエントリの前記最大数より少ない、請求項3に記載の方法。
【請求項5】
前記第1の映像ブロックに前記シングルツリーが適用され、且つ前記第2の映像ブロックに前記ローカルデュアルツリーが適用される場合に、前記第2のパレット内のエントリの前記最大数は、前記第1のパレット内のエントリの前記最大数の半分である、請求項3に記載の方法。
【請求項6】
前記第2の映像ブロックはルマブロックであり、前記第2の映像ブロックは、コーディングツリーノードのルマ親ブロックをスプリットすることによって取得され、前記コーディングツリーノードのクロマ親ブロックはスプリットされることが許されない、請求項3に記載の方法。
【請求項7】
前記映像の第2の映像ブロックに前記第1の予測モードが適用され、前記第2の映像ブロックに対する第2のパレットが、前記予測子パレットテーブルに基づいて構築され、
前記第1の映像ブロックにデュアルツリーが適用され、且つ前記第2の映像ブロックにローカルデュアルツリーが適用される場合に、前記予測子パレットテーブル内のエントリの最大数が、前記第1の映像ブロックに対してと、前記第2の映像ブロックに対してと、で異なる、
請求項1に記載の方法。
【請求項8】
前記変換は、前記映像を前記ビットストリームへと符号化することを含む、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記変換は、前記ビットストリームから前記映像を復号することを含む、請求項1乃至7のいずれか一項に記載の方法。
【請求項10】
プロセッサと、命令を有する非一時的なメモリと、を有する映像データを処理する装置であって、前記命令は、前記プロセッサによる実行を受けて、前記プロセッサに、
映像の第1の映像ブロックと前記映像のビットストリームとの間での変換のために、前記第1の映像ブロックに第1の予測モードが適用されることを決定させ、
予測子パレットテーブルを維持管理させ、
前記第1の予測モードにて、前記予測子パレットテーブルに基づいて、前記第1の映像ブロックに対する1つ以上のパレット予測子を有する第1のパレットを構築させ、
前記第1の予測モードに基づいて前記変換を実行させ、
前記第1の予測モードにおいて、前記第1の映像ブロックの再構成サンプルは、前記第1のパレットから導出されるパレット予測子、又はエスケープサンプルのうちの少なくとも一方によって表され
前記第1のパレット内のエントリの最大数が、前記第1の映像ブロックのツリータイプに基づき、
クロマコンポーネントについてのコーディングツールオフセットに関する第1のフラグが、前記ビットストリーム内のピクチャパラメータセット(PPS)に含められ、
クロマデブロッキングパラメータオフセットを規定する第1セットのシンタックス要素が前記ビットストリーム内の前記PPSに含まれるかが、前記第1のフラグの値に基づいて決定され、
前記映像の映像ピクチャについてのクロマデブロッキングパラメータオフセットを規定する第2セットのシンタックス要素が、前記PPSを参照するピクチャヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記映像ピクチャのスライスについてのクロマデブロッキングパラメータオフセットを規定する第3セットのシンタックス要素が、前記PPSを参照するスライスヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記第1のフラグの前記値は、前記映像ピクチャのカラーフォーマットに関係し、
前記第1のフラグが第1の値を持つ場合、前記第1セットのシンタックス要素、前記第2セットのシンタックス要素、及び前記第3セットのシンタックス要素は存在しない、
装置。
【請求項11】
命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
映像の第1の映像ブロックと前記映像のビットストリームとの間での変換のために、前記第1の映像ブロックに第1の予測モードが適用されることを決定させ、
予測子パレットテーブルを維持管理させ、
前記第1の予測モードにて、前記予測子パレットテーブルに基づいて、前記第1の映像ブロックに対する1つ以上のパレット予測子を有する第1のパレットを構築させ、
前記第1の予測モードに基づいて前記変換を実行させ、
前記第1の予測モードにおいて、前記第1の映像ブロックの再構成サンプルは、前記第1のパレットから導出されるパレット予測子、又はエスケープサンプルのうちの少なくとも一方によって表され
前記第1のパレット内のエントリの最大数が、前記第1の映像ブロックのツリータイプに基づき、
クロマコンポーネントについてのコーディングツールオフセットに関する第1のフラグが、前記ビットストリーム内のピクチャパラメータセット(PPS)に含められ、
クロマデブロッキングパラメータオフセットを規定する第1セットのシンタックス要素が前記ビットストリーム内の前記PPSに含まれるかが、前記第1のフラグの値に基づいて決定され、
前記映像の映像ピクチャについてのクロマデブロッキングパラメータオフセットを規定する第2セットのシンタックス要素が、前記PPSを参照するピクチャヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記映像ピクチャのスライスについてのクロマデブロッキングパラメータオフセットを規定する第3セットのシンタックス要素が、前記PPSを参照するスライスヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記第1のフラグの前記値は、前記映像ピクチャのカラーフォーマットに関係し、
前記第1のフラグが第1の値を持つ場合、前記第1セットのシンタックス要素、前記第2セットのシンタックス要素、及び前記第3セットのシンタックス要素は存在しない、
コンピュータ読み取り可能記憶媒体。
【請求項12】
映像のビットストリームを格納する方法であって、
映像の第1の映像ブロックについて、該第1の映像ブロックに第1の予測モードが適用されることを決定するステップと、
予測子パレットテーブルを維持管理するステップと、
前記第1の予測モードにて、前記予測子パレットテーブルに基づいて、前記第1の映像ブロックに対する1つ以上のパレット予測子を有する第1のパレットを構築するステップと、
前記第1の予測モードに基づいて前記映像のビットストリームを生成するステップと、
前記ビットストリームを非一時的コンピュータ読み取り可能記録媒体に格納するステップと、
を有し、
前記第1の予測モードにおいて、前記第1の映像ブロックの再構成サンプルは、前記第1のパレットから導出されるパレット予測子、又はエスケープサンプルのうちの少なくとも一方によって表され
前記第1のパレット内のエントリの最大数が、前記第1の映像ブロックのツリータイプに基づき、
クロマコンポーネントについてのコーディングツールオフセットに関する第1のフラグが、前記ビットストリーム内のピクチャパラメータセット(PPS)に含められ、
クロマデブロッキングパラメータオフセットを規定する第1セットのシンタックス要素が前記ビットストリーム内の前記PPSに含まれるかが、前記第1のフラグの値に基づいて決定され、
前記映像の映像ピクチャについてのクロマデブロッキングパラメータオフセットを規定する第2セットのシンタックス要素が、前記PPSを参照するピクチャヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記映像ピクチャのスライスについてのクロマデブロッキングパラメータオフセットを規定する第3セットのシンタックス要素が、前記PPSを参照するスライスヘッダに含まれるかが、前記第1のフラグの前記値に基づいて決定され、
前記第1のフラグの前記値は、前記映像ピクチャのカラーフォーマットに関係し、
前記第1のフラグが第1の値を持つ場合、前記第1セットのシンタックス要素、前記第2セットのシンタックス要素、及び前記第3セットのシンタックス要素は存在しない、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
の出願は、2020年2月5日に出願された国際特許出願第PCT/CN20/074316号及び2020年5月21日に出願された国際特許出願第PCT/CN20/091661号の優先権及び利益を主張するものである2020年12月28日に出願された国際特許出願第PCT/CN2021/075408号の国内移行出願である。上記出願の開示全体を、この出願の開示の一部として援用する。
【0002】
この特許文書は、画像及び映像コーディング及びデコーディングに関する。
【背景技術】
【0003】
デジタル映像は、インターネット及びその他のデジタル通信ネットワーク上で最大の帯域幅使用を占めている。映像を受信して表示することが可能な接続ユーザ装置の数が増加するにつれて、デジタル映像の使用に対する帯域幅需要が増加し続けることが予期される。
【発明の概要】
【0004】
本文書は、映像の表現のために代表的なサンプル値のパレットが使用されるパレットモードを使用する映像処理のためにビデオエンコーダ及びデコーダによって使用されることができる技術を開示する。
【0005】
一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。映像ブロックのパレットのサイズが、映像ブロックにローカルデュアルツリーが適用されるかに基づいて決定される。
【0006】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。映像ブロックのパレット予測子のサイズが、映像ブロックにローカルデュアルツリーが適用されるかに基づく。
【0007】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。変換は、少なくとも最大許容値又は最小許容値によって制約される量子化パラメータを用いてエスケープサンプルの値がビットストリーム内にコーディングされることを規定するルールに従う。
【0008】
他の一態様例において、映像処理方法が開示される。当該方法は、映像のブロックと映像のビットストリームとの間での変換を、クロマコーディングツールに関連するパラメータがビットストリームの適応パラメータセット内に存在するかが適応パラメータセット内の制御フラグに基づくことを規定するフォーマットルールに従って、実行することを含む。
【0009】
他の一態様例において、映像処理方法が開示される。当該方法は、映像のブロックと映像のビットストリームとの間での変換を実行することを含む。ビットストリームは、映像がモノクロである又は映像のカラーコンポーネント同士が別々に処理される場合に、量子化パラメータに関連付けられたシンタックス要素がビットストリームのピクチャヘッダ内で省略されることを規定するフォーマットルールに従う。
【0010】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、変換に対して、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードと、残差ドメイン内でカラー空間変換が行われる適応カラー変換モードとが、相互に排他的に有効にされることを規定するルールに従って実行することを含む。
【0011】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。映像ブロックの残差ブロックのカラー空間にかかわらず、残差ドメイン内でカラー空間変換が行われる適応カラー変換モードが残差ブロックに適用される。
【0012】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。映像ブロックは、変換スキップ残差コーディングツールを用いてコーディングされ、変換スキップ残差コーディングツールでは、映像ブロックの変換スキップコーディングの残差係数が、コンテキストコーディングプロセス又はバイパスコーディングプロセスを用いてコーディングされる。変換において、バイパスコーディングプロセスの開始時又は終了時に、映像ブロック内で許容される残りのコンテキストコーディングビンの数を規定する変数に対して処理が適用される。
【0013】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、変換スキップ残差コーディングプロセスを用いて実行することを含む。変換において、シンタックス要素が特定のスキャンパスに属するかを指し示す変数に対して処理が適用される。
【0014】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。変換において、係数レベルのサイン(符号)を示すシンタックス要素がバイパスコーディングプロセスを用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、映像ブロックの領域内の1つ以上の係数の同じシンタックス要素が順番にコーディングされるスキャンパスのインデックスに基づく。
【0015】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のビットストリームとの間での変換を、変換スキップ残差コーディングプロセスを用いて実行することを含む。変換において、係数レベルのサインを示すシンタックス要素がバイパスコーディングプロセスを用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、シンタックス要素が別のシンタックス要素と同じスキャンパス内でシグナリングされるかに基づく。
【0016】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のコーディング表現との間での変換を実行することを含み、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードが、映像ブロックのコーディング表現に対して使用され、パレット外のサンプルは、エスケープシンボルと、ルールによって決定される最小許容値と最大許容値との間の範囲内の量子化パラメータを用いて量子化される値とを使用してコーディングされる。
【0017】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のコーディング表現との間での変換を実行することを含み、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードが、映像ブロックのコーディング表現に対して使用され、パレットのサイズは、映像ブロックとコーディング表現との間での変換に対してローカルデュアルツリーが使用されるかについてのルールに依存する。
【0018】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像ブロックと映像のコーディング表現との間での変換を実行することを含み、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードが、映像ブロックのコーディング表現に対して使用され、パレット予測子のサイズは、映像ブロックとコーディング表現との間での変換に対してローカルデュアルツリーが使用されるかについてのルールに依存する。
【0019】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像領域の映像ブロックと映像のコーディング表現との間での変換のために、コーディング条件に基づいて、映像のクロマコンポーネントのためのデブロッキングオフセットを特定するシンタックス要素が映像領域レベルでコーディング表現に含められるかを決定し、該決定に基づいて変換を実行することを含み、デブロッキングオフセットは、映像ブロックに対するデブロッキング処理を選択的に有効にするために使用される。
【0020】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像領域の映像ブロックと映像のコーディング表現との間での変換のために、コーディング条件に基づいて、クロマコーディングツールの使用を特定するシンタックス要素が映像領域レベルでコーディング表現に含められるかを決定し、該決定に基づいて変換を実行することを含み、デブロッキングオフセットは、映像ブロックに対するデブロッキング処理を選択的に有効にするために使用される。
【0021】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像領域の映像ブロックと映像のコーディング表現との間での変換を実行することを含み、コーディング表現はフォーマットに従い、フォーマットは、映像のクロマコンポーネントのためのデブロッキングオフセットを示す第1のフラグがコーディング表現に含められるかが、クロマコンポーネントの量子化パラメータオフセットを示す第2のフラグがコーディング表現に含められるかに基づくことを規定する。
【0022】
他の一態様例において、映像処理方法が開示される。当該方法は、映像の映像領域の映像ブロックと映像のコーディング表現との間での変換を実行することを含み、コーディング表現はフォーマットルールに従い、フォーマットルールは、1つ以上のクロマコーディングツールの適用可能性を示す1つ以上のパラメータが映像領域レベル又は映像ブロックレベルでコーディング表現に含められるかを、コーディング表現内のシンタックス要素が制御することを規定する。
【0023】
更なる他の一態様例において、ビデオエンコーダ装置が開示される。当該ビデオエンコーダは、上述の方法を実装するように構成されたプロセッサを有する。
【0024】
更なる他の一態様例において、ビデオデコーダ装置が開示される。当該ビデオデコーダは、上述の方法を実装するように構成されたプロセッサを有する。
【0025】
更なる他の一態様例において、コードを格納したコンピュータ読み取り可能媒体が開示される。該コードは、プロセッサ実行可能コードの形態で、ここに記載される方法の1つを具現化する。
【0026】
これらの及び他の特徴が、本文書の全体を通じて記述される。
【図面の簡単な説明】
【0027】
図1】パレットモードでコーディングされるブロックの一例を示している。
図2】パレットエントリをシグナリングするためのパレット予測子の使用を例示している。
図3】水平及び垂直横断スキャンの例を示している。
図4】パレットインデックスのコーディング例を示している。
図5A図5A-5Bは、最小クロマインター予測ユニットの例を示している。
図5B図5A-5Bは、最小クロマインター予測ユニットの例を示している。
図6】ACTを用いた復号プロセスの説明図である。
図7】映像処理システムの一例のブロック図である。
図8】映像処理装置のブロック図である。
図9】映像処理の方法例のフローチャートである。
図10】本開示の一部の実施形態に従った映像コーディングシステムを示すブロック図である。
図11】本開示の一部の実施形態に従ったエンコーダを示すブロック図である。
図12】本開示の一部の実施形態に従ったデコーダを示すブロック図である。
図13】本技術に従った映像処理の一方法のフローチャート表現である。
図14】本技術に従った映像処理の他の一方法のフローチャート表現である。
図15】本技術に従った映像処理の他の一方法のフローチャート表現である。
図16】本技術に従った映像処理の他の一方法のフローチャート表現である。
図17】本技術に従った映像処理の他の一方法のフローチャート表現である。
図18】本技術に従った映像処理の他の一方法のフローチャート表現である。
図19】本技術に従った映像処理の他の一方法のフローチャート表現である。
図20】本技術に従った映像処理の他の一方法のフローチャート表現である。
図21】本技術に従った映像処理の他の一方法のフローチャート表現である。
図22】本技術に従った映像処理の他の一方法のフローチャート表現である。
図23】本技術に従った映像処理の更なる他の一方法のフローチャート表現である。
【発明を実施するための形態】
【0028】
本文書では、理解を容易にするためにセクション見出しを使用するが、それらは、各セクションで開示される技術及び実施形態の適用可能性をそのセクションのみに限るものではない。また、一部の記述において単に理解を容易にするためにH.266用語を使用するが、それは、開示される技術の範囲を限定するものではない。従って、ここに記載される技術は、他のビデオコーデックプロトコル及び設計にも適用可能である。
【0029】
1. 概説
この文書は映像コーディング技術に関する。具体的には、これは、パレットコーディングにおけるインデックス及びエスケープシンボルコーディング、クロマフォーマットシグナリング、及び残差コーディングに関する。これは、HEVCのような既存の映像コーディング標準に適用されてもよいし、成立される標準(バーサタイルビデオコーディング)に適用されてもよい。これは、将来の映像コーディング標準又はビデオコーデックにも適用可能である。
【0030】
2. 映像コーディング標準
映像コーディング標準は、主に、周知のITU-T及びISO/IEC標準の開発を通じて発展してきた。ITU-TがH.261及びH.263を作成し、ISO/IECがMPEG-1及びMPEG-4 Visualを作成出し、そして、これら2つの組織が共同で、H.262/MPEG-2 Video及びH.264/MPEG-4 AVC(Advanced Video Coding)及びH.265/HEVC標準を作成した。H.262以来、映像コーディング標準は、時間予測に加えて変換コーディングが利用されるハイブリッド映像コーディング構造に基づいている。HEVCの先の将来の映像コーディング技術を探求するため、2015年にVCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、数多くの新しい方法が、JVETによって採用され、共同探索モデルJEM(Joint Exploration Model)と名付けられたリファレンスソフトウェアに入れられてきた。2018年4月には、HEVCと比較して50%のビットレート低減を目指すVVC標準に取り組むべく、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間でJVET(Joint Video Expert Team)を発足させた。
【0031】
2.1 HEVCスクリーンコンテンツコーディング拡張(HEVC-SCC)におけるパレットモード
2.1.1 パレットモードの概念
パレットモードの背後にある基本的なアイディアは、CU内のピクセルが代表的なカラー値の小さいセットによって表現されるというものである。このセットがパレットと称される。そして、(場合により量子化される)コンポーネント値に続かれるエスケープシンボルをシグナリングすることによって、パレットの外にあるサンプルを示すことも可能である。この種のピクセルをエスケープピクセルと呼ぶ。パレットモードを図1に例示する。図1に示されるように、3つのカラーコンポーネント(ルマ及び2つのクロマコンポーネント)を有する各画素について、パレットへのインデックスが調えられ、パレットに調えられた値に基づいてブロックが再構成され得る。
【0032】
2.1.2 パレットエントリのコーディング
パレットエントリのコーディングのために、パレット予測子が維持管理される。パレットの最大サイズとパレット予測子がSPS内でシグナリングされる。HEVC-SCCでは、PPSにpalette_predictor_initializer_present_flagが導入される。このフラグが1であるとき、パレット予測子を初期化するためのエントリがビットストリーム内でシグナリングされる。パレット予測子は、各CTU行(row)、各スライス、及び各タイルの開始時に初期化される。palette_predictor_initializer_present_flagの値に応じて、パレット予測子は、0にリセットされるか、PPS内でシグナリングされるパレット予測子イニシャライザエントリを用いて初期化されるかする。HEVC-SCCでは、PPSレベルでのパレット予測子初期化の明示的な無効化を可能にするために、サイズ0のパレット予測子イニシャライザが有効にされていた。
【0033】
パレット予測子の各エントリに対して、それが現在パレットの一部であるかを指し示すために、再利用フラグがシグナリングされる。これを図2に示す。再利用フラグは、ゼロのランレングスコーディングを用いて送られる。この後に、新しいパレットエントリの数が、次数0の指数ゴロム(Exponential Golomb;EG)コード、すなわち、EG-0を用いてシグナリングされる。最後に、新しいパレットエントリのコンポーネント値がシグナリングされる。
【0034】
2.1.3 パレットインデックスのコーディング
パレットインデックスは、図3に示すように水平及び垂直横断スキャンを用いてコーディングされる。スキャン順序は、palette_transpose_flagを用いてビットストリーム内で明示的にシグナリングされる。このサブセクションの残りの部分では、スキャンは水平方向であると仮定する。
【0035】
パレットインデックスは、‘COPY_LEFT’及び“COPY_ABOVE’という2つのパレットサンプルモードを用いてコーディングされる。‘COPY_LEFT’モードでは、復号されたインデックスにパレットインデックスが割り当てられる。‘COPY_ABOVE’モードでは、上の行内のサンプルのパレットインデックスがコピーされる。‘COPY_LEFT’モード及び‘COPY_ABOVE’モードの両方で、やはり同じモードでコーディングされる後続サンプルの数を規定するラン値がシグナリングされる。
【0036】
パレットモードにおいて、エスケープシンボルについてのインデックスの値はパレットエントリの数である。そして、エスケープシンボルが‘COPY_LEFT’又は‘COPY_ABOVE’モードにおけるランの一部であるとき、エスケープシンボルごとにエスケープコンポーネント値がシグナリングされる。パレットインデックスのコーディングを図4に例示する。
【0037】
このシンタックスオーダーは、次のように遂行される。先ず、CUに対するインデックス値の数がシグナリングされる。これに続いて、トランケイテッドバイナリコーディングを用いたCU全体の実際のインデックス値のシグナリングが行われる。インデックスの数とインデックス値との両方がバイパスモードでコーディングされる。これは、インデックス関連のバイパスビンをグループにまとめる。次いで、パレットサンプルモード(必要な場合)及びランが、インターリーブ方式でシグナリングされる。最後に、CU全体に対するエスケープシンボルに対応するコンポーネントエスケープ値がグループにまとめられ、バイパスモードでコーディングされる。エスケープシンボルの二値化は、3次のEGコーディング、すなわち、EG-3である。
【0038】
インデックス値をシグナリングした後に、追加のシンタックス要素であるlast_run_type_flagがシグナリングされる。このシンタックス要素がインデックスの数と共に、ブロック内の最後のランに対応するラン値をシグナリングすることを不要にする。
【0039】
HEVC-SCCでは、パレットモードは4:2:2、4:2:0、及びモノクロフォーマットに対しても有効にされる。パレットエントリ及びパレットインデックスのシグナリングは、全てのクロマフォーマットに対して略同じである。非モノクロフォーマットの場合、各パレットエントリが3つのコンポーネントで構成される。モノクロフォーマットでは、各パレットエントリが1つのコンポーネントで構成される。サブサンプリングされるクロマ方向で、クロマサンプルは、2で割り切れるルマサンプルインデックスに関連付けられる。CUに対するパレットインデックスを再構成した後、サンプルがそれに関連付けられた1つのコンポーネントのみを持つ場合、パレットエントリの最初のコンポーネントのみが使用される。シグナリングにおける唯一の違いは、エスケープコンポーネント値に関する。各エスケープシンボルについて、シグナリングされるエスケープコンポーネント値の数が、そのシンボルに関連付けられたコンポーネントの数に応じて異なり得る。
【0040】
図4は、パレットインデックスのコーディングの一例を示すものである。
【0041】
さらに、パレットインデックスコーディングにはインデックス調整プロセスが存在する。パレットインデックスをシグナリングするとき、左隣接インデックス又は上隣接インデックスは現在インデックスと異なるはずである。従って、1つの可能性を除去することにより、現在パレットインデックスの範囲を1だけ減らし得る。その後、インデックスが、トランケイテッドバイナリ(TB)二値化でシグナリングされる。
【0042】
この部分に関連するテキストを以下に示すが、以下において、CurrPaletteIndexは現在パレットインデックスであり、adjustedRefPaletteIndexは予測インデックスである。
【0043】
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表される配列へのインデックスであるパレットインデックスを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。PaletteIndexMap[xC][yC]の値は、両端を含めて0からMaxPaletteIndexの範囲内である。
【0044】
変数adjustedRefPaletteIndexは次のように導出される:
adjustedRefPaletteIndex=MaxPaletteIndex+1
if(PaletteScanPos>0){
xcPrev=x0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][0]
ycPrev=y0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][1]
if(CopyAboveIndicesFlag[xcPrev][ycPrev]==0){
adjustedRefPaletteIndex=PaletteIndexMap[xcPrev][ycPrev]{ (7-157)
}
else{
if(!palette_transpose_flag)
adjustedRefPaletteIndex=PaletteIndexMap[xC][yC-1]
else
adjustedRefPaletteIndex=PaletteIndexMap[xC-1][yC]
}
}
CopyAboveIndicesFlag[xC][yC]が0に等しいとき、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++
また、パレットモードにおけるランレングス要素はコンテキストコーディングされる。JVET-O2011-vEに記載されている関連するコンテキスト導出プロセスは、次のように示される:
シンタックス要素palette_run_prefixについてのctxIncの導出プロセス
このプロセスへの入力は、ビンインデックスbinIdx、並びにシンタックス要素copy_above_palette_indices_flag及びpalette_idx_idcである;
このプロセスの出力は変数ctxIncである;
変数ctxIncは次のように導出される:
- copy_above_palette_indices_flaが0に等しく、且つbinIdxが0に等しい場合、ctxIncは次のように導出される:
ctxInc=(palette_idx_idc<1)?0:((palette_idx_idc<3)?1:2) (9-69)
- それ以外の場合、ctxIncは表1によって与えられる:
【表1】
【0045】
2.2 VVCにおけるパレットモード
2.2.1 デュアルツリーでのパレット
VVCでは、イントラスライスをコーディングするのにデュアルツリーコーディング構造が使用され、故に、ルマコンポーネントと2つのクロマコンポーネントとで異なるパレット及びパレットインデックスを持ち得る。また、2つのクロマコンポーネントは同じパレット及びパレットインデックスを共有する。
【0046】
2.2.2 別個のモードとしてのパレット
一部の実施形態において、コーディングユニットに対する予測モードは、MODE_INTRA、MODE_INTER、MODE_IBC、及びMODE_PLTとすることができる。それに従って予測モードの二値化が変更される。
【0047】
IBCがオフにされるとき、Iタイル上で、最初の1つのビンが、現在予測モードがMODE_PLTであるか否かを指し示すために使用される。P/Bタイル上では、最初のビンは、現在予測モードがMODE_INTRAであるか否かを指し示すために使用される。そうでない場合、現在予測モードがMODE_PLTである又はMODE_INTERであることを指し示すために、1つの追加のビンが使用される。
【0048】
IBCがオンにされるとき、Iタイル上で、最初のビンは、現在予測モードがMODE_IBCであるか否かを指し示すために使用される。そうでない場合、2番目のビンが、現在予測モードがMODE_PLTである又はMODE_INTRAであることを指し示すために使われる。P/Bタイル上では、最初のビンは、現在予測モードがMODE_INTRAであるか否かを指し示すために使用される。それがイントラモードである場合、2番目のビンは、現在予測モードがMODE_PLTである又はMODE_INTRAであることを指し示すために使用される。そうでない場合、2番目のビンは、現在予測モードがMODE_IBCである又はMODE_INTERであることを指し示すために使用される。
【0049】
テキスト例は次のように示される。
(外1)
【0050】
2.2.3 パレットモードシンタックス
(外2)
【0051】
2.2.4 パレットモードセマンティクス
以下のセマンティクスにおいて、配列インデックスx0、y0は、ピクチャの左上ルマサンプルに対する、検討中のコーディングブロックの左上ルマサンプルの位置(x0,y0)を規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。配列インデックスstartCompは、現在パレットテーブルの最初のカラーコンポーネントを規定する。0に等しいstartCompはYコンポーネントを指し示す。1に等しいstartCompはCbコンポーネントを指し示す。2に等しいstartCompはCrコンポーネントを指し示す。numCompsは、現在パレットテーブル内のカラーコンポーネントの数を規定する。
【0052】
予測子パレットは、現在パレット内のエントリを予測するのに使用される以前のコーディングユニットからのパレットエントリで構成される。
【0053】
変数PredictorPaletteSize[startComp]は、現在パレットテーブルの最初のカラーコンポーネントstartCompについての予測子パレットのサイズを規定する。PredictorPaletteSizeは、第8.4.5.3節に規定されるように導出される。
【0054】
1に等しい変数PalettePredictorEntryReuseFlags[i]は、予測子パレット内のi番目のエントリが現在パレットで再利用されることを規定する。0に等しいPalettePredictorEntryReuseFlags[i]は、予測子パレット内のi番目のエントリが現在パレットのエントリではないことを規定する。配列PalettePredictorEntryReuseFlags[i]の全ての要素が0に初期化される。
【0055】
palette_predector_runは、配列PalettePredictorEntryReuseFlags内の非ゼロのエントリの前にあるゼロの数を決定するのに使用される。
【0056】
palette_predictor_runの値が、両端を含めて0から(PredictorPaletteSize-predectorEntryIdx)の範囲内であることがビットストリーム適合の要件であり、ここで、predictorEntryIdxは、配列PalettePredictorEntryReuseFlags内での現在位置に対応する。変数NumPredictedPaletteEntriesは、予測子パレットから再利用される現在パレット内のエントリの数を規定する。NumPredictedPalletteEntriesの値は、両端を含めて0からpalette_max_sizeの範囲内である。
【0057】
num_signalled_palette_entriesは、現在パレットテーブルの最初のカラーコンポーネントstartCompについて明示的にシグナリングされる現在パレット内のエントリの数を規定する。
【0058】
num_signalled_palette_entriesが存在しないとき、それは0に等しいと推定される。
【0059】
変数CurrentPaletteSize[startComp]は、現在パレットテーブルの最初のカラーコンポーネントstartCompについての現在パレットのサイズを規定し、次のように導出される:
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries+
num_signalled_palette_entries (7-155)
【0060】
CurrentPaletteSize[startComp]の値は、両端を含めて0からpalette_max_sizeの範囲内である。
new_palette_entries[cIdx][i]は、カラーコンポーネントcIdxについてi番目にシグナリングされるパレットエントリについての値を規定する。
変数PredictorPaletteEntries[cIdx][i]は、カラーコンポーネントcIdxについての予測子パレット内のi番目の要素を規定する。
変数CurrentPaletteEntries[cIdx][i]は、カラーコンポーネントcIdxについての現在パレット内のi番目の要素を規定し、次のように導出される:
numPredictedPaletteEntries=0
for(i=0;i<PredictorPaletteSize[startComp];i++)
if(PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries]=
PredictorPaletteEntries[cIdx][i]
numPredictedPaletteEntries++
}
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++) (7-156)
for(i=0;i<num_signalled_palette_entries[startComp];i++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries+i]=
new_palette_entries[cIdx][i]
1に等しいpalette_escape_val_presen_flagは、現在コーディングユニットが少なくとも1つのエスケープコーディングされたサンプルを含むことを規定する。0に等しいpalette_escape_val_presen_flagは、現在コーディングユニット内にエスケープコーディングされたサンプルがないことを規定する。存在しないとき、palette_escape_val_present_flagの値は1に等しいと推定される。
変数MaxPaletteIndexは、現在コーディングユニットに対するパレットインデックスについての最大の取り得る値を規定する。MaxPaletteIndexの値は、CurrentPaletteSize[startComp]-1+palette_escape_val_presen_flagに等しく設定される。
num_palette_index_minus1+1は、現在ブロックについて明示的にシグナリングされる又は推定されるパレットインデックスの数である。
num_palette_indexs_minus1が存在しないとき、それは0に等しいと推定される。
palette_idx_idcは、パレットテーブルCurrentPaletteEntriesへのインデックスを指し示すインジケーションである。palette_idx_idcの値は、ブロック内の最初のインデックスに対しては両端を含めて0からMaxPaletteIndexの範囲内であり、ブロック内の残りのインデックスに対しては両端を含めて0から(MaxPaletteIndex-1)の範囲内である。
palette_idx_idcが存在しないとき、それは0に等しいと推定される。
変数PaletteIndexIdc[i]は、明示的にシグナリングされる又は推定されるi番目のpalette_idx_idcを格納する。配列PaletteIndexIdc[i]の全ての要素が0に初期化される。
1に等しいcopy_above_indices_for_final_run_flagは、コーディングユニット内の最後の位置のパレットインデックスが、水平横断スキャンが使用される場合は上の行内のパレットインデックスからコピーされ、垂直横断スキャン走査が使用される場合は左の列内のパレットインデックスからコピーされることを規定する。0に等しいcopy_above_indices_for_final_run_flagは、コーディングユニット内の最後の位置のパレットインデックスが、PaletteIndexIdc[num_palette_indices_minus1]からコピーされることを規定する。
copy_above_indices_for_final_run_flagが存在しないとき、それは0に等しいと推定される。
1に等しいpalette_transpose_flagは、現在コーディングユニット内のサンプルについてのインデックスをスキャンするのに垂直横断スキャンが適用されることを規定する。0に等しいpalette_transpose_flagは、現在コーディングユニット内のサンプルについてのインデックスをスキャンするのに水平横断スキャンが適用されることを規定する。存在しないとき、palette_transpose_flagの値は0に等しいと推定される。
配列TraverseScanOrderは、パレットコーディングのためのスキャン順序配列を規定する。palette_transpose_flagが0に等しい場合、TraverseScanOrderは水平スキャン順序HorTravScanOrderを割り当てられ、palette_transpose_flagが1に等しい場合、TraverseScanOrderは垂直スキャン順序VerTravScanOrderを割り当てられる。
1に等しいcopy_above_palette_indices_flagは、パレットインデックスが、水平横断スキャンが使用される場合には上の行内の同じ位置のパレットインデックスに等しく、垂直横断スキャンが使用される場合には左の列内の同じ位置のパレットインデックスに等しいことを規定する。0に等しcopy_above_palette_indices_flagは、サンプルのパレットインデックスを指し示すインジケーションがビットストリーム内にコーディングされる又は推定されることを規定する。
1に等しい変数CopyAboveIndicesFlag[xC][yC]は、パレットインデックスが上の行(水平スキャン)又は左の列(垂直スキャン)内のパレットインデックスからコピーされることを規定する。0に等しいCopyAboveIndicesFlag[xC][yC]は、パレットインデックスがビットストリーム内に明示的にコーディングされる又は推定されることを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。PaletteIndexMap[xC][yC]の値は、両端を含めて0から(MaxPaletteIndex-1)の範囲内である。
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表される配列へのインデックスであるパレットインデックスを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。PaletteIndexMap[xC][yC]の値は、両端を含めて0からMaxPaletteIndexの範囲内である。
変数adjustedRefPaletteIndexは次のように導出される:
adjustedRefPaletteIndex=MaxPaletteIndex+1
if(PaletteScanPos>0){
xcPrev=x0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][0]
ycPrev=y0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][1]
if(CopyAboveIndicesFlag[xcPrev][ycPrev]==0){
adjustedRefPaletteIndex=PaletteIndexMap[xcPrev][ycPrev]{ (7-157)
}
else{
if(!palette_transpose_flag)
adjustedRefPaletteIndex=PaletteIndexMap[xC][yC-1]
else
adjustedRefPaletteIndex=PaletteIndexMap[xC-1][yC]
}
}
CopyAboveIndicesFlag[xC][yC]が0に等しいとき、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++ (7-158)
palette_run_prefixは、存在するとき、PaletteRunMinus1の二値化におけるプレフィックス部分を規定する。
palette_run_suffixは、変数PaletteRunMinus1の導出に使用される。存在しないとき、palette_run_suffixの値は0に等しいと推定される。
RunToEndが0に等しいとき、変数PaletteRunMinus1は次のように導出される:
- PaletteMaxRunMinus1が0に等しい場合、変数PaletteRunMinus1は0に等しく設定される。
- そうでない場合(PaletteMaxRunMinus1が0より大きい)、以下が適用される:
- palette_run_prefixが2より小さい場合、以下が適用される:
PaletteRunMinus1=palette_run_prefix (7-159)
- そうでない場合(palette_run_prefixが2以上である)、以下が適用される:
PrefixOffset=1<<(palette_run_prefix-1)
PaletteRunMinus1=PrefixOffset+palette_run_suffix (7-160)
変数PaletteRunMinus1は次のように使用される:
- CopyAboveIndicesFlag[xC][yC]が0に等しい場合、PaletteRunMinus1は、同じパレットインデックスを持つ連続する位置の数から1を引いたものを規定する。
- そうでなく、palette_transpose_flagが0に等しい場合、PaletteRunMinus1は、上の行内の対応する位置で使用されるのと同じパレットインデックスを有する連続する位置の数から1を引いたものを規定する。
- それ以外の場合、PaletteRunMinus1は、左の列内の対応する位置で使用されるのと同じパレットインデックスを有する連続する位置の数から1を引いたものを規定する。
RunToEndが0に等しいとき、変数PaletteMaxRunMinus1は、PaletteRunMinus1についての最大の取り得る値を表し、PaletteMaxRunMinus1の値が0以上であることがビットストリーム適合の要件である。
palette_escape_valは、コンポーネントについての量子化済みのエスケープコーディングされたサンプル値を規定する。
変数PaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]がMaxPaletteIndexに等しく且つpalette_escape_val_present_flagが1に等しいサンプルのエスケープ値を規定する。配列インデックスcIdxはカラーコンポーネントを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。
PaletteEscapeVal[cIdx][xC][yC]が、0に等しいcIdxに対しては両端を含めて0から(1<<(BitDepthY+1))-1の範囲内であり、0に等しくないcIdxに対しては両端を含めて0から(1<<(BitDepthC+1))-1の範囲内であることがビットストリーム適合の要件である。
【0061】
2.2.5 ラインベースのCGパレットモード
ラインベースのCGパレットモードがVVCに採用された。この方法では、パレットモードの各CUが、横断スキャンモードに基づいてm個のサンプル(このテストではm=16)の複数のセグメントへと分割される。各セグメント内でのパレットランコーディングの符号化順序は、次の通りである:各ピクセルに対して、該ピクセルが先行ピクセルと同じモードのものであるかどうか、すなわち、先行するスキャン済みピクセルと現在ピクセルがどちらもランタイプCOPY_ABOVEのものであるかどうか、又は先行するスキャン済みピクセルと現在ピクセルがどちらもランタイプINDEXであって同じインデックス値のものであるかどうか、を指し示す1つのコンテキストコーディングされたビンrun_copy_flag=0がシグナリングされる。そうでない場合、run_copy_flag=1がシグナリングされる。そのピクセルと先行ピクセルとが異なるモードのものである場合、つまりはINDEX又はCOPY_ABOVEであるそのピクセルのランタイプを指し示す1つのコンテキストコーディングされたビンcopy_above_palette_indices_flagがシグナリングされる。VTM6.0でのパレットモードと同じく、サンプルが最初の行内(水平横断スキャン)又は最初の列内(垂直横断スキャン)にある場合には、デフォルトでINDEXモードが使用されるので、デコーダがランタイプを構文解析する必要はない。また、先行して構文解析されたランタイプがCOPY_ABOVEである場合にも、デコーダがランタイプを構文解析する必要はない。1つのセグメント内のピクセルのパレットランコーディングの後に、各ラインCG内でのスループットを改善するために、コンテキストコーディングされたビンの符号化/構文解析とは別に、(INDEXモードでの)インデックス値及び量子化されたエスケープカラーがバイパスコーディングされ且つグループ化される。インデックス値はここでは、VTMにおいてのようにパレットランコーディング前に処理される代わりに、ランコーディング後にコーディング/構文解析されるので、エンコーダがインデックス値の数num_palette_indices_minus1及び最後のランタイプcopy_above_indices_for_final_run_flagをシグナリングする必要はない。
【0062】
一部の実施形態におけるラインベースのCGパレットモードのテキストは、以下のように示される。
パレットコーディングシンタックス
(外3)
7.4.9.6 パレットコーディングセマンティクス
以下のセマンティクスにおいて、配列インデックスx0、y0は、ピクチャの左上ルマサンプルに対する、検討中のコーディングブロックの左上ルマサンプルの位置(x0,y0)を規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。配列インデックスstartCompは、現在パレットテーブルの最初のカラーコンポーネントを規定する。0に等しいstartCompはYコンポーネントを指し示す。1に等しいstartCompはCbコンポーネントを指し示す。2に等しいstartCompはCrコンポーネントを指し示す。numCompsは、現在パレットテーブル内のカラーコンポーネントの数を規定する。
予測子パレットは、現在パレット内のエントリを予測するのに使用される以前のコーディングユニットからのパレットエントリで構成される。
変数PredictorPaletteSize[startComp]は、現在パレットテーブルの最初のカラーコンポーネントstartCompについての予測子パレットのサイズを規定する。PredictorPaletteSizeは、第8.4.5.3節に規定されるように導出される。
1に等しい変数PalettePredictorEntryReuseFlags[i]は、予測子パレット内のi番目のエントリが現在パレットで再利用されることを規定する。0に等しいPalettePredictorEntryReuseFlags[i]は、予測子パレット内のi番目のエントリが現在パレットのエントリではないことを規定する。配列PalettePredictorEntryReuseFlags[i]の全ての要素が0に初期化される。
palette_predector_runは、配列PalettePredictorEntryReuseFlags内の非ゼロのエントリの前にあるゼロの数を決定するのに使用される。
palette_predictor_runの値が、両端を含めて0から(PredictorPaletteSize-predectorEntryIdx)の範囲内であることがビットストリーム適合の要件であり、ここで、predictorEntryIdxは、配列PalettePredictorEntryReuseFlags内での現在位置に対応する。変数NumPredictedPaletteEntriesは、予測子パレットから再利用される現在パレット内のエントリの数を規定する。NumPredictedPalletteEntriesの値は、両端を含めて0からpalette_max_sizeの範囲内である。
num_signalled_palette_entriesは、現在パレットテーブルの最初のカラーコンポーネントstartCompについて明示的にシグナリングされる現在パレット内のエントリの数を規定する。
num_signalled_palette_entriesが存在しないとき、それは0に等しいと推定される。
変数CurrentPaletteSize[startComp]は、現在パレットテーブルの最初のカラーコンポーネントstartCompについての現在パレットのサイズを規定し、次のように導出される:
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries+
num_signalled_palette_entries (7-155)
CurrentPaletteSize[startComp]の値は、両端を含めて0からpalette_max_sizeの範囲内である。
new_palette_entries[cIdx][i]は、カラーコンポーネントcIdxについてi番目にシグナリングされるパレットエントリについての値を規定する。
変数PredictorPaletteEntries[cIdx][i]は、カラーコンポーネントcIdxについての予測子パレット内のi番目の要素を規定する。
変数CurrentPaletteEntries[cIdx][i]は、カラーコンポーネントcIdxについての現在パレット内のi番目の要素を規定し、次のように導出される:
numPredictedPaletteEntries=0
for(i=0;i<PredictorPaletteSize[startComp];i++)
if(PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries]=
PredictorPaletteEntries[cIdx][i]
numPredictedPaletteEntries++
}
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++) (7-156)
for(i=0;i<num_signalled_palette_entries[startComp];i++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries+i]=
new_palette_entries[cIdx][i]
1に等しいpalette_escape_val_presen_flagは、現在コーディングユニットが少なくとも1つのエスケープコーディングされたサンプルを含むことを規定する。0に等しいpalette_escape_val_presen_flagは、現在コーディングユニット内にエスケープコーディングされたサンプルがないことを規定する。存在しないとき、palette_escape_val_present_flagの値は1に等しいと推定される。
変数MaxPaletteIndexは、現在コーディングユニットに対するパレットインデックスについての最大の取り得る値を規定する。MaxPaletteIndexの値は、CurrentPaletteSize[startComp]-1+palette_escape_val_presen_flagに等しく設定される。
palette_idx_idcは、パレットテーブルCurrentPaletteEntriesへのインデックスを指し示すインジケーションである。palette_idx_idcの値は、ブロック内の最初のインデックスに対しては両端を含めて0からMaxPaletteIndexの範囲内であり、ブロック内の残りのインデックスに対しては両端を含めて0から(MaxPaletteIndex-1)の範囲内である。
palette_idx_idcが存在しないとき、それは0に等しいと推定される。
1に等しいpalette_transpose_flagは、現在コーディングユニット内のサンプルについてのインデックスをスキャンするのに垂直横断スキャンが適用されることを規定する。0に等しいpalette_transpose_flagは、現在コーディングユニット内のサンプルについてのインデックスをスキャンするのに水平横断スキャンが適用されることを規定する。存在しないとき、palette_transpose_flagの値は0に等しいと推定される。
配列TraverseScanOrderは、パレットコーディングのためのスキャン順序配列を規定する。palette_transpose_flagが0に等しい場合、TraverseScanOrderは水平スキャン順序HorTravScanOrderを割り当てられ、palette_transpose_flagが1に等しい場合、TraverseScanOrderは垂直スキャン順序VerTravScanOrderを割り当てられる。
1に等しいrun_copy_flagは、copy_above_palette_indices_flagが0に等しい場合に、パレットランタイプが、先行してスキャンされた位置においてと同じランタイプであり且つパレットランインデックスが先行位置におけるインデックスと同じであることを規定する。それ以外の場合、run_copy_flagは0に等しい。
1に等しいcopy_above_palette_indices_flagは、パレットインデックスが、水平横断スキャンが使用される場合には上の行内の同じ位置のパレットインデックスに等しく、垂直横断スキャンが使用される場合には左の列内の同じ位置のパレットインデックスに等しいことを規定する。0に等しcopy_above_palette_indices_flagは、サンプルのパレットインデックスを指し示すインジケーションがビットストリーム内にコーディングされる又は推定されることを規定する。
1に等しい変数CopyAboveIndicesFlag[xC][yC]は、パレットインデックスが上の行(水平スキャン)又は左の列(垂直スキャン)内のパレットインデックスからコピーされることを規定する。0に等しいCopyAboveIndicesFlag[xC][yC]は、パレットインデックスがビットストリーム内に明示的にコーディングされる又は推定されることを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表される配列へのインデックスであるパレットインデックスを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。PaletteIndexMap[xC][yC]の値は、両端を含めて0からMaxPaletteIndexの範囲内である。
変数adjustedRefPaletteIndexは次のように導出される:
adjustedRefPaletteIndex=MaxPaletteIndex+1
if(PaletteScanPos>0){
xcPrev=x0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][0]
ycPrev=y0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][1]
if(CopyAboveIndicesFlag[xcPrev][ycPrev]==0){
adjustedRefPaletteIndex=PaletteIndexMap[xcPrev][ycPrev]{ (7-157)
}
else{
if(!palette_transpose_flag)
adjustedRefPaletteIndex=PaletteIndexMap[xC][yC-1]
else
adjustedRefPaletteIndex=PaletteIndexMap[xC-1][yC]
}
}
CopyAboveIndicesFlag[xC][yC]が0に等しいとき、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++ (7-158)
palette_escape_valは、コンポーネントについての量子化済みのエスケープコーディングされたサンプル値を規定する。
変数PaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]がMaxPaletteIndexに等しく且つpalette_escape_val_present_flagが1に等しいサンプルのエスケープ値を規定する。配列インデックスcIdxはカラーコンポーネントを規定する。配列インデックスxC、yCは、ピクチャの左上ルマサンプルに対するサンプルの位置(xC,yC)を規定する。
PaletteEscapeVal[cIdx][xC][yC]が、0に等しいcIdxに対しては両端を含めて0から(1<<(BitDepthY+1))-1の範囲内であり、0に等しくないcIdxに対しては両端を含めて0から(1<<(BitDepthC+1))-1の範囲内であることがビットストリーム適合の要件である。
【0063】
2.3 VVCにおけるローカルデュアルツリー
典型的なハードウェアビデオエンコーダ及びデコーダでは、隣接するイントラブロック間でのサンプル処理データ依存性のために、より小さいイントラブロックをピクチャが有するときに処理スループットが低下する。イントラブロックの予測子生成は、隣接ブロックからの上及び左境界再構成サンプルを必要とする。従って、イントラ予測はブロック毎に順に処理されなければならない。
【0064】
HEVCでは、最小のイントラCUは8×8ルマサンプルである。最小イントラCUのルマコンポーネントは、4つの4×4ルマのイントラ予測ユニット(PU)へと更に分割されることができるが、最小イントラCUのクロマコンポーネントは更に分割されることができない。従って、最悪の場合のハードウェア処理スループットは、4×4クロマイントラブロック又は4×4ルマイントラブロックが処理されるときに発生する。
【0065】
VTM5.0では、単一の(シングル)コーディングツリーにおいて、クロマパーティションは常にルマに従い、且つ最小イントラCUは4×4ルマサンプルであるので、最小のクロマイントラCBは2×2である。従って、VTM5.0では、シングルコーディングツリーにおける最小クロマイントラCBは2×2である。VVC復号での最悪の場合のハードウェア処理スループットは、HEVC復号でのそれの、たったの1/4である。さらに、クロマイントラCBの再構成プロセスは、クロコンポーネントリニアモデル(CCLM)、4タップ補間フィルタ、位置依存イントラ予測コンビネーション(PDPC)、及び結合インターイントラ予測(CIIP)を含むツールを採用した後に、HEVCでのそれよりも遥かに複雑になる。ハードウェアデコーダにおいて高い処理スループットを達成することは難題である。このセクションにて、最悪の場合のハードウェア処理スループットを改善する方法を提案する。
【0066】
この方法の目的は、クロマイントラCBの分割を制約することによって、16クロマサンプルより小さいクロマイントラCBを禁止することである。
【0067】
シングルコーディングツリーにおいて、SCIPUは、そのクロマブロックサイズがTHクロマサンプル以上であり且つ4THルマサンプルより小さい少なくとも1つの子ルマブロックを持つコーディングツリーノードとして定義され、この寄稿ではTHを16に設定する。各SCIPU内で、全てのCBがインターであるか、あるいは、全てのCBが非インターである、すなわち、イントラ又はIBCのいずれかであるか、が要求される。非インターSCIPUの場合、さらに、非インターSCIPUのクロマが更には分割されないこと及びSCIPUのルマが更に分割されることが許されることが要求される。斯くして、最小クロマイントラCBサイズは16クロマサンプルであり、2×2、2×4、及び4×2クロマCBが除かれる。さらに、非インターSCIPUの場合にクロマスケーリングは適用されない。加えて、ルマブロックが更に分割され、且つクロマブロックが分割されない場合に、ローカルデュアルツリーコーディング構造が構築される。
【0068】
SCIPUの2つの例を図5A-5Bに示す。図5Aでは、8×4クロマサンプルからの三分木(TT)スプリットは、16クロマサンプルより小さいクロマCBをもたらすことになるので、8×4クロマサンプルの1つのクロマCB及び3つのルマCB(4×8、8×8、4×8ルマCB)が1つのSCIPUを形成している。図5Bでは、4×4クロマサンプルからの二分木(BT)スプリットは、16クロマサンプルより小さいクロマCBをもたらすことになるので、4×4クロマサンプル(8×4クロマサンプルの左側)の1つのクロマCB及び3つのルマCB(8×4、4×4、4×4のルマCB)が1つのSCIPUを形成するとともに、4×4サンプル(8×4のクロマサンプルの右側)の他の1つのクロマCB及び2つのルマCB(8×4、8×4のルマCB)が1つのSCIPUを形成している。
【0069】
提案する方法では、現在スライスがIスライスである、又は現在SCIPUがもう一度のスプリット後にその中に4×4ルマパーティションを持つ場合(VVCではインター4×4は許されないため)、SCIPUのタイプは非インターであると推定される;それ以外の場合、SCIPUのタイプ(インター又は非インター)は、SCIPU内のCUを構文解析する前に、シグナリングされる1つのフラグによって示される。
【0070】
上の方法を適用することにより、最悪の場合のハードウェア処理スループットは、2×2のクロマブロックの代わりに、4×4、2×8、又は8×2のクロマブロックが処理される場合に発生する。最悪の場合のハードウェア処理スループットは、HEVCでのそれと同じであり、VTM5.0でのそれの4倍である。
【0071】
2.4 変換スキップ(Transform Skip;TS)
HEVCにおいてと同様に、ブロックの残差を変換スキップモードでコーディングすることができる。シンタックスコーディングの冗長性を回避するために、CUレベルMTS_CU_flagがゼロに等しくないとき、変換スキップフラグはシグナリングされない。変換スキップに対するブロックサイズ制限は、JEM4でのMTSに対するそれと同じであり、それは、ブロックの幅及び高さの両方が32以下である場合にCUに対して変換スキップが適用可能であることを示すものである。なお、黙示的MTS変換は、現在CUに対してLFNST又はMIPがアクティブにされる場合にDCT2に設定される。また、黙示的MTSは、インターコーディングブロックに対してMTSが有効にされるときになおも有効にされることができる。
【0072】
さらに、変換スキップブロックに対して、最小許容量子化パラメータ(QP)が6*(internalBitDepth-inputBitDepth)+4として定められる。
【0073】
2.5 代替ルマハーフペル補間フィルタ
一部の実施形態において、代替ハーフペル補間フィルタを提案する。
【0074】
動きベクトル精度に応じてハーフペルルマ補間フィルタの切り換えが行われる。既存のクォータペル、フルペル、及び4ペルAMVRモードに加えて、新たなハーフペル精度AMVRモードが導入される。ハーフペル動きベクトル精度の場合にのみ、代替ハーフペルルマ補間フィルタを選択することができる。
【0075】
ハーフペル動きベクトル精度(すなわち、ハーフペルAMVRモード)を用いる非アフィン、非マージの、インターコーディングCUに対して、新たなシンタックス要素hpelIfIdxの値に基づいて、HEVC/VVCハーフペルルマ補間フィルタと1つ以上の代替ハーフペル補間との間の切り換えを行う。シンタックス要素hpelIfIdxは、ハーフペルAMVRモードの場合にのみシグナリングされる。空間マージ候補を用いるスキップ/マージモードの場合には、シンタックス要素hpelIfIdxの値は隣接ブロックから継承される。
【0076】
2.6 適応カラー変換(Adaptive Color Transform;ACT)
図6は、ACTが適用される復号フローチャートを示している。図6に示すように、カラー空間変換が残差ドメインで実行される。具体的には、逆変換の後に、逆ACTという名の1つの追加の復号モジュールが導入されて、YCgCoドメインからの残差を元のドメインに変換し戻す。
【0077】
VVCでは、最大変換サイズが1コーディングユニット(CU)の幅又は高さより小さくなければ、1CUリーフノードも変換処理の単位として使用される。従って、提案する実装では、1CUに対して、その残差をコーディングするためのカラー空間を選択すべくACTフラグをシグナリングする。さらに、HEVC ACT設計に従い、インター及びIBC CUでは、CU内に少なくとも1つの非ゼロ係数が存在する場合にのみACTを有効にする。イントラCUでは、クロマコンポーネントがルマコンポーネントと同じイントラ予測モード、すなわち、DMモードを選択する場合にのみACTを有効にする。
【0078】
カラー空間変換に使用されるコア変換は、HEVCで使用されるものと同じに保たれる。具体的には、次のように記述される以下の順方向及び逆方向のYCgCoカラー変換行列が適用されする:
【数1】
【0079】
さらに、カラー変換の前後での残差信号のダイナミックレンジ変化を補償するために、(-5,-5,-3)のQP調整が変換残差に適用される。
【0080】
一方、順カラー変換及び逆カラー変換は、3つのコンポーネント全ての残差にアクセスする必要がある。対応して、提案する実装では、3つのコンポーネントの残差の全てが利用可能ではない以下の2つの状況においてACTを無効にする:
1. セパレートツリーパーティション: セパレートツリーが適用されるとき、1つのCTUの中のルマサンプルとクロマサンプルが、異なる構造によって分割される。これは、ルマツリーのCUがルマコンポーネントのみを含むとともに、クロマツリーのCUが2つのクロマコンポーネントのみを含むことをもたらす;
2. イントラサブパーティション予測(ISP): ルマにのみISPサブパーティションが適用され、クロマ信号はスプリットすることなくコーディングされる。現行のISP設計では、最後のISPサブパーティションを除き、その他のサブパーティションはルマコンポーネントのみを含む。
【0081】
2.7 EG(k)を用いたエスケープ値の二値化
エスケープ値の二値化にEG(k)を用いる場合、ベースQpが十分に大きい(又はコーディングすべきシンボルが十分に小さい)とき、EG(k)のビット長をそれ以上短くすることはできない。例えば、EG(5)では、ベースQp>=23のとき、ビット長は、EG5での最小ビット長である6に達する。同様に、ベースQp>=35のとき、ビット長はEG3での最小値に達する。ベースQp>=29のとき、ビット長はEG4での最小値に達する。このような場合、Qpを更に増加させることは、ビットレートを減らすことはできずに歪みを増加させてしまう。それはビットの無駄である。
【0082】
2.8 変換スキップモードにおける係数コーディング
現在のVVCドラフトでは、変換スキップレベルの信号特性及び統計に対して残差コーディングを適応させるために、変換スキップ(TS)モードでの係数コーディングについて、非TS係数コーディングとの比較で、幾つかの変更が提案されている。
【0083】
現在のVVCでは、係数をコーディングするために、変換スキップ残差符号化プロセスにおいて3つのスキャンパスが使用される。最初のスキャンパスは、変換係数レベルが0より大きいかを指し示すシンタックス要素と、他の関連するシンタックス要素(例えば、sig_coeff_flag、coeff_sign_flag、及びpar_level_flag)をコーディングするために使用される。2番目/X超(greater than X)スキャンパスは、変換係数レベルがX(例えば、X=1,2,3,4,5)より大きいかを指し示すシンタックス要素をコーディングするために使用される。3番目/残余スキャンパスは、残りのシンタックス要素(例えば、abs_remainder及びcoeff_sign_flag)をコーディングするために使用される。
【0084】
現在のVVCでは、Table 131に示されるように、変換係数レベルのサイン(符号)を示すシンタックス要素(例えば、coeff_sign_flag)がバイパスモードでコーディングされるのか、それともコンテキストコーディングモードでコーディングされるのかは、関連する変換ブロックに変換が適用されるのか否かを指し示すシンタックス要素(例えば、transform_skip_flag)、残りの許容されるコンテキストコーディングビンの数(例えば、RemCcbs)、現在スライスについての変換スキップブロックの残差サンプルを構文解析するためにresidual_coding()シンタックス構造が使用されるのかを指し示すシンタックス要素(例えば、sh_ts_residual_coding_disabled_flag)に依存する。
7.3.10.11 残差コーディングシンタックス
(外4)
(外5)
【0085】
2.8.1 サインフラグcoeff_sign_flagのコンテキストモデリング及びコンテキストインデックスオフセット導出
【表2】
【表3】
【表4】
9.3.4.2.10 変換スキップモードのためのシンタックス要素coeff_sign_flagに対するctxIncの導出プロセス
このプロセスへの入力は、カラーコンポーネントインデックスcIdx、現在ピクチャの左上サンプルに対して現在変換ブロックの左上サンプルを規定するルマ位置(x0,y0)、現在の係数スキャン位置(xC,yC)である。
このプロセスの出力は変数ctxIncである。
変数LeftSign及びaboveSignが次のように導出される:
leftSign=(xC==0)?0:CoeffSignLevel[xC-1][yC] (1594)
aboveSign=(yC==0)?0:CoeffSignLevel[xC][yC-1] (1595)
変数ctxIncが次のように導出される:
- leftSignが0に等しく、且つaboveSignが0に等しい場合、又はleftSignが-aboveSignに等しい場合、以下が適用される:
ctxInc=(BdpcmFlag[x0][y0][cIdx]==0?0:3) (1596)
- そうでなく、leftSignが0以上であり、且つaboveSignが0以上である場合、以下が適用される:
ctxInc=(BdpcmFlag[x0][y0][cIdx]?1:4) (1597)
- それ以外の場合、以下が適用される:
ctxInc=(BdpcmFlag[x0][y0][cIdx]?2:5) (1598)
【0086】
3 ここに記載される技術的ソリューションによって解決される技術的問題の例
(1)エスケープ値に対する二値化方法としてのEG(k)は、Qpが閾値より大きいときにビットを無駄にし得る。
(2)パレットサイズが、ローカルデュアルツリーにとって過度に大きいことがある。
(3)クロマツールが適用されない場合にはクロマパラメータをシグナリングする必要がない。
(4)JVET-R2001-vAにおける係数コーディングはスクリーンコンテンツコーディングに対してコーディングの利益を達成することができるが、その係数コーディング及びTSモードは依然として幾らかの欠点を有し得る:
a. サインフラグに対してバイパスコーディングを使用すべきかコンテキストコーディングを使用すべきかが、以下のケースで不明である:
i. 残りの許容されるコンテキストコーディングビンの数(RemCcbsによって表される)が0に等しい;
ii. 現在ブロックがTSモードでコーディングされる;
iii. sh_ts_residual_coding_disabled_flagがfalseである。
【0087】
4 実施形態及び技術の例
以下の項目の列挙は、一般的な概念を説明するための例として見なされるべきである。これらの項目は狭義に解釈されるべきでない。また、これらの項目は何らかのやり方で組み合わされることができる。
以下の例は、VVCにおけるパレットスキーム及び他の全てのパレット関連スキームに適用され得る。
1. エスケープ値再構成のためのQpは、最大許容値及び/又は最小許容値を有し得る:
a. 一例において、QPは、最大許容値以下である及び/又は最小許容値以上であるようにクリッピングされ得る;
b. 一例において、エスケープ値再構成のための最大許容Qpは、二値化方法に依存し得る;
c. 一例において、エスケープ値再構成のために最大許容Qpは(T+B)とすることができ、Bはビット深度に基づく:
i. 一例において、Tは定数とし得る:
1. 一例において、Tは23とし得る;
2. 一例において、Tは23未満の数とし得る;
3. 一例において、Tは35とし得る;
4. 一例において、Tは35未満の数とし得る;
5. 一例において、Tは29とし得る;
6. 一例において、Tは29未満の数とし得る;
ii. 一例において、Tは、映像領域(例えば、シーケンス、ピクチャ、スライス/タイル/サブピクチャ)内で示され得る:
1. 一例において、TはVPS/SPS/PPS/PH/SH内で示され得る;
iii. 一例において、BはQpBdOffset(例えば、6*bit_depth_minus8)に設定され得る;
d. 一例において、エスケープ値再構成のために最大許容Qpは、(23+QpBdOffset)とし得る:
i. あるいは、さらに、EG5を用いてエスケープ値をコーディングする;
ii. あるいは、エスケープ値再構成のための最大許容Qpは(K+QpBdOffset)とすることができ、Kは23未満の数である;
e. 一例において、エスケープ値再構成のために最大許容Qpは、(35+QpBdOffset)とし得る:
i. あるいは、さらに、EG3を用いてエスケープ値をコーディングする;
ii. あるいは、エスケープ値再構成のための最大許容Qpは(K+QpBdOffset)とすることができ、Kは35未満の数である;
f. あるいは、エスケープ値再構成のために最大許容Qpは、(29+QpBdOffset)とし得る:
i. あるいは、さらに、EG4を用いてエスケープ値をコーディングする;
ii. あるいは、エスケープ値再構成のための最大許容Qpは(K+QpBdOffset)とすることができ、Kは29未満の数である。
パレットサイズ関連
2. ローカルデュアルツリーが適用される場合とされない場合とでパレットサイズが異なり得ることを提案する:
a. 一例において、ローカルデュアルツリーでは、パレットサイズが縮小され得ることを提案する;
b. 一例において、ローカルデュアルツリーが適用される場合に、ルマCUとクロマCUとでパレットサイズが異なり得る;
c. 一例において、ローカルデュアルツリーにおけるルマCUについてのパレットサイズと比較して、又はローカルデュアルツリーが適用されない場合のパレットサイズと比較して、クロマCUについてのパレットサイズが縮小され得る:
i. 一例において、クロマについてのパレットサイズが半分に縮小され得る。
3. ローカルデュアルツリーが適用される場合とされない場合とでパレット予測子サイズが異なり得ることを提案する:
a. 一例において、ローカルデュアルツリーでは、パレット予測子サイズが縮小され得ることを提案する;
b. 一例において、ローカルデュアルツリーが適用される場合に、ルマCUとクロマCUとでパレット予測子サイズが異なり得る;
c. 一例において、ローカルデュアルツリーにおけるルマCUについてのパレット予測子サイズと比較して、又はローカルデュアルツリーが適用されない場合のパレット予測子サイズと比較して、クロマCUについてのパレット予測子サイズが縮小され得る:
i. 一例において、クロマについてのパレット予測子サイズが半分に縮小され得る。
クロマデブロッキング関連
4. スライスレベル及び/又はより高いレベル(すなわち、領域サイズがスライスよりも大きい)(例えば、PPS又はピクチャヘッダ内)でクロマデブロッキングオフセットをシグナリング/構文解析するかが、カラーフォーマット、及び/又はセパレートプレーンコーディング有効化フラグ、及び/又はChromaArrayType、及び/又はクロマデブロッキングオフセットが存在するかを指し示すフラグ、及び/又はクロマデブロッキングオフセット若しくは何らかの他のクロマツールパラメータが存在するかを指し示すフラグに依存し得る:
a. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、スライスレベル及び/又はより高いレベル(すなわち、領域サイズがスライスよりも大きい)でのクロマデブロッキングオフセットのシグナリング/構文解析が常にスキップされ得る;
b. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
c. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、ph_cb_beta_offset_div2、ph_cb_tc_offset_div2、ph_cr_beta_offset_div2、ph_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
d. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、slice_cb_beta_offset_div2、slice_cb_tc_offset_div2、slice_cr_beta_offset_div2、slice_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
e. あるいは、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用されるときに、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2が0に等しいことを、適合ビットストリームは満足するものとする;
f. 一例において、chroma_format_idcが0に等しく、且つseparate_colour_plane_flagが1に等しくない、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
g. 一例において、chroma_format_idcが0に等しく、且つseparate_colour_plane_flagが1に等しくない、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、pps_cb_beta_offset_div2、ph_cb_tc_offset_div2、ph_cr_beta_offset_div2、ph_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
h. 一例において、chroma_format_idcが0に等しく、且つseparate_colour_plane_flagが1に等しくない、又はクロマデブロッキングオフセットを示すフラグが存在しないとき、slice_cb_beta_offset_div2、slice_cb_tc_offset_div2、slice_cr_beta_offset_div2、slice_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
i. あるいは、さらに、シンタックス要素のシグナリングがスキップされるとき、そのシンタックス要素の値は0に等しいと推定される。
5. カラーフォーマット、及び/又はセパレートプレーンコーディング有効化フラグ、及び/又はChromaArrayType、及び/又はクロマデブロッキングオフセットが存在するかを指し示すフラグ、及び/又はクロマデブロッキングオフセット若しくは何らかの他のクロマツールパラメータが存在するかを指し示すフラグ(例えば、pps_chroma_tool_params_present_flag)が、PPS及び/又はSPS及び/又はAPS内で示され得る:
a. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、及び/又は上記フラグがfalseであるとき、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
b. 一例において、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、及び/又は上記フラグがfalseであるとき、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
c. 一例において、クロマツールオフセット関連シンタックス要素(例えば、pps_cb_qp_offset、pps_cr_qp_offset、pps_joint_cbcr_qp_offset_present_flag、pps_slice_chroma_qp_offsets_present_flag、pps_cu_chroma_qp_offset_list_enabled_flag)は、ChromaArrayTypeが0に等しくないこと及び/又は上記フラグがfalseであることの条件チェックの下でシグナリングされる;
d. 適合ビットストリームでは、PPS内でシグナリングされるカラーフォーマット及び/又はセパレートプレーンコーディング有効化フラグ及び/又はChromaArrayTypeが、関連するSPS内でシグナリングされる対応する情報と同じであることが要求される。
6. クロマqpオフセットがシグナリング/構文解析されるべきかを制御するフラグが、クロマデブロッキングオフセットがシグナリング/構文解析されるべきかということも制御し得ることを提案する:
a. 一例において、フラグpps_chroma_tool_params_present_flagを用いて、クロマqpオフセットがシグナリング/構文解析されるべきかということと、クロマデブロッキングオフセットがシグナリング/構文解析されるべきかということとを制御し得る。
7. クロマデブロッキングオフセットがシグナリング/構文解析されるべきかを制御するために、PPS内に、例えばpps_chroma_deblocking_params_present_flagといった制御フラグが追加され得る:
a. 一例において、フラグが0に等しいとき、pps_cb_beta_offset_div2、pps_cb_tc_offset_div2、pps_cr_beta_offset_div2、pps_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
b. 一例において、フラグが0に等しいとき、ph_cb_beta_offset_div2、ph_cb_tc_offset_div2、ph_cr_beta_offset_div2、ph_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
c. 一例において、フラグが0に等しいとき、slice_cb_beta_offset_div2、slice_cb_tc_offset_div2、slice_cr_beta_offset_div2、slice_cr_tc_offset_div2のシグナリング/構文解析が常にスキップされ得る;
d. あるいは、さらに、適合ビットストリームでは、ChromaArrayTypeが0に等しいときに上記フラグが0に等しいことが要求される。
APS内のクロマツール関連パラメータ
8. APS内でクロマツール関連パラメータがシグナリング/構文解析されるべきかを制御するために、APS内に、例えばaps_chroma_tool_params_present_flagといった制御フラグが追加され得る:
a. 一例において、aps_chroma_tool_params_present_flagが0に等しいとき、alf_chroma_filter_signal_flag、alf_cc_cb_filter_signal_flag、及びalf_cc_cr_filter_signal_flagが常にスキップされ、0に等しいと推定され得る;
b. 一例において、aps_chroma_tool_params_present_flagが0に等しいとき、scaling_list_chroma_present_flagが常にスキップされ、0に等しいと推定され得る。
ピクチャヘッダ内の他のクロマツール関連パラメータ
9. 一例において、ph_log2_diff_min_qt_min_cb_intra_slice_lumaのシグナリング/構文解析は、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はこのシンタックス要素(及び場合により他のシンタックス要素も)を示すフラグが存在しないときに、常にスキップされ得る。
10. 一例において、ph_log2_diff_min_qt_min_cb_intra_slice_chromaのシグナリング/構文解析は、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はこのシンタックス要素(及び場合により他のシンタックス要素も)を示すフラグが存在しないときに、常にスキップされ得る。
11. 一例において、ph_log2_diff_min_qt_min_cb_inter_sliceのシグナリング/構文解析は、ChromaArrayTypeが0に等しい、又はカラーフォーマットが4:0:0である、又はセパレートプレーンコーディングが適用される、又はこのシンタックス要素(及び場合により他のシンタックス要素も)を示すフラグが存在しないときに、常にスキップされ得る。
適応カラー変換(ACT)関連
12. パレットモード及び適応カラー変換は排他的にブロックに適用され得る:
a. 一例において、ブロックにパレットモードが使用されるとき、そのブロックに適応カラー変換は使用されない:
i. 一例において、ブロックにパレットモードが適用されるとき、ACT使用のシグナリングはスキップされ得る:
1. あるいは、さらに、ACTの使用はfalseであると推定される;
b. 一例において、ブロックに適応カラー変換が使用されるとき、そのブロックにパレットモードは使用されない:
i. 一例において、ブロックにACTが適用されるとき、パレットモード使用のシグナリングはスキップされ得る:
1. あるいは、さらに、パレットモードの使用はfalseであると推定される;
c. ACTのon/offフラグのインジケーションをシグナリングすべきかどうかは、予測モードがMODE_PLTに等しくないかに依存し得る;
d. ACTのon/offフラグのインジケーションをシグナリングすべきかどうかは、パレットモードのインジケーションが使用されないか(例えば、!pred_mode_plt_flag)に依存し得る。
13. 適応カラー変換は、コーディングユニットの残差ブロックに、そのカラー空間にかかわらずに適用され得る:
e. 一例において、GBRカラー空間のコーディングユニットの残差ブロックに適応カラー変換が適用され得る;
f. 一例において、YCbCrカラー空間のコーディングユニットの残差ブロックに適応カラー変換が適用され得る。
係数サインフラグに対してバイパスコーディング又はコンテキストコーディングの使用法
14. 変換スキップ残差コーディングプロセスの3番目/残余スキャンパスにおける残りのシンタックス要素(例えば、シンタックス要素abs_remainder及びcoeff_sign_flag)に対するバイパスコーディングの開始時(又は/及びバイパスコーディングの終了時)に、残りの許容されるコンテキストコーディングビンの数を規定する変数(例えば、RemCcbs)に処理が適用され得る:
g. 一例において、処理は、テンポラリ変数(例えば、tempRemCcbs)を用いてRemCcbsを保存し、RemCcbsを特定の値(例えば0など)に等しいように設定することとし得る。バイパスコーディングの終了時に、RemCcbsをtempRemCcbsに等しいように設定する:
i. 一例において、処理は、RemCcbsを特定の値Nに等しいように設定することとすることができ、この値は整数であり、Mより小さい:
1. 一例において、Mは3に等しい;
h. 係数レベルのサインを示すシンタックス要素(例えば、coeff_sign_flag)がバイパスモードでコーディングされるか、それともコンテキストコーディングモードでコーディングされるのかは、残りの許容されるコンテキストコーディングビンの数(例えば、RemCcbs)に依存し得る:
i. 一例において、残りの許容されるコンテキストコーディングビンの数(例えば、RemCcbs)がN(例えばN=0など)に等しいとき、係数レベルのサイン(例えば、coeff_sign_flag)はバイパスモードでコーディングされる;
ii. 一例において、RemCcbsがM以上であるとき、サインフラグはコンテキストコーディングモードでコーディングされる;
i. 一例において、処理は、RemCcbsを、RemCcbsを除く少なくとも1つの変数又はシンタックス要素に依存する値に等しいように設定することとし得る。
15. 変換スキップ残差コーディングプロセスにおいて、シンタックス要素(例えば、coeff_sign_flag)が特定のスキャンパス(例えば、最初のスキャンパス又は/及び3番目の/残余係数スキャンパス)に属するかを指し示す変数に処理が適用され得る:
j. 一例において、処理は、変数(例えば、remScanPass)を用いて、現在スキャンパスが3番目の/残余スキャンパスであるか否かを指し示すこととし得る:
i. 一例において、最初のスキャンパスの開始時にremScanPassがAに等しく設定され、3番目の/残余スキャンパスの開始時にremScanPassがBに等しく設定される。AはBに等しくない;
ii. 係数レベルのサインを示すシンタックス要素(例えば、coeff_sign_flag)がバイパスモードでコーディングされるか、それともコンテキストコーディングモードでコーディングされるのかは、remScanPassに依存し得る:
1. 一例において、remScanPassがBに等しいとき、係数レベルのサインはバイパスモードでコーディングされる;
2. 一例において、remScanPassがAに等しいとき、係数レベルのサインはコンテキストコーディングモードでコーディングされる;
k. あるいは、処理は、現在スキャンパスが最初のスキャンパスであるか否かを指し示すために変数を使用することとし得る;
l. あるいは、処理は、現在スキャンパスが2番目の/X超スキャンパスであるか否かを指し示すために変数を使用することとし得る。
16. スキャンパス内では、ブロックの領域内の1つ又は複数の係数の同じシンタックス要素が順番にコーディングされ、係数レベルのサインを示すシンタックス要素(SE)がバイパスモードでコーディングされるのか、それともコンテキストコーディングモードでコーディングされるのかは、スキャンパスのインデックスに依存し得る:
m. 一例において、SEは、それが最初のスキャンパスでシグナリングされるとき、コンテキストコーディングモードでコーディングされ得る;
n. 一例において、SEは、3番目の/残余スキャンパスでシグナリングされるとき、バイパスモードでコーディングされ得る;
o. 一例において、上の方法は、変換スキップ(BDPCM/QR-BDPCMを含む又は除くTS)残差コーディングプロセス、及び/又は非TSコーディングブロックに対する係数コーディングプロセスに適用可能である。
17. 係数レベルのサインを示すシンタックス要素(SE)がバイパスモードでコーディングされるのか、それともコンテキストコーディングモードでコーディングされるのかは、それが、変換スキップ残差コーディングプロセスにおいて、別のシンタックス要素(例えば、sig_coeff_flag、par_level_flag、abs_remainder)と同じスキャンパス内でシグナリングされるかに依存し得る:
p. 一例において、SEは、それがsig_coeff_flag又は/及びpar_level_flagと同じスキャンパス内でシグナリングされるとき、コンテキストコーディングモードでコーディングされ得る;
q. 一例において、SEは、それがabs_remainderと同じスキャンパス内でシグナリングされるとき、バイパスモードでコーディングされ得る。
全般的特徴
18. 上の方法を適用すべきか及び/又はどのように適用するかは、以下に基づき得る:
a. 映像コンテンツ(例えば、スクリーンコンテンツ、天然コンテンツ)
b. DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大コーディングユニット(LCU)/コーディングユニット(CU)/LCU行/一文のLCU/TU/PUブロック/ビデオコーディングユニット内でシグナリングされるメッセージ
c. CU/PU/TU/ブロック/ビデオコーディングユニットの位置
d. 現在ブロック及び/又はその隣接ブロックのブロック寸法
e. 現在ブロック及び/又はその隣接ブロックのブロック形状
f. 現在ブロックの量子化パラメータ
g. カラーフォーマットのインジケーション(例えば、4:2:0、4:4:4、RGB、又はYUVなど)
h. コーディングツリー構造(例えば、デュアルツリー又はシングルツリーなど)
i. スライス/タイルグループタイプ及び/又はピクチャタイプ
j. カラーコンポーネント(例えば、ルマコンポーネント及び/又はクロマコンポーネントにのみ適用され得る)
k. 時間レイヤID
l. 標準のプロファイル/レベル/ティア
m. 現在ブロックが1つのエスケープサンプルを持つか否か
i. 一例において、上の方法は、現在ブロックが少なくとも1つのエスケープサンプルを持つ場合にのみ適用され得る
n. 現在ブロックが無損失モードでコーディングされるか否か(例えば、cu_transquant_bypass_flag)
ii. 一例において、上の方法は、現在ブロックが無損失モードでコーディングされない場合にのみ適用され得る
o. 無損失コーディングが有効にされるか否か(例えば、transquant_bypass_enabled、cu_transquant_bypass_flag)。
【0088】
5 実施形態
以下の実施形態においては、追加される部分が、太字の、下線付きの、イタリック体のテキストとして記される。削除される部分は[[]]内に記される。
【0089】
5.1 実施形態#1
8.4.5.3 パレットモードでの復号プロセス
(外6)
【0090】
5.2 実施形態#2
7.3.2.4 ピクチャパラメータセットRBSPシンタックス
(外7)
7.3.2.7 ピクチャヘッダ構造シンタックス
(外8)
7.3.7.1 一般スライスヘッダシンタックス
(外9)
【0091】
5.3 実施形態#3
7.4.2.4 ピクチャパラメータセットRBSPシンタックス
(外10)
7.3.2.5 適応パラメータセットRBSPシンタックス
(外11)
7.3.2.7 ピクチャヘッダ構造シンタックス
(外12)
7.3.2.19 適応ループフィルタデータシンタックス
(外13)
7.3.2.21 スケーリングリストデータシンタックス
(外14)
7.3.7.1 一般スライスヘッダシンタックス
(外15)
7.4.3.4 ピクチャパラメータセットRBSPセマンティクス
(外16)
7.4.3.5 適応パラメータセットセマンティクス
(外17)
【0092】
5.4 実施形態#4
7.4.2.4 ピクチャパラメータセットRBSPシンタックス
(外18)
7.3.2.7 ピクチャヘッダ構造シンタックス
(外19)
7.3.7.1 一般スライスヘッダシンタックス
(外20)
7.4.3.4 ピクチャパラメータセットRBSPセマンティクス
(外21)
【0093】
5.5 実施形態#5
(外22)
【0094】
5.5.1 実施形態#5.1
7.3.10.5 コーディングユニットシンタックス
(外23)
あるいは、以下が適用されてもよい:
(外24)
【0095】
5.6 実施形態#6
コーディングユニットセマンティクス
(外25)
【0096】
5.7 実施形態#7
7.3.10.11 残差コーディングシンタックス
(外26)
9.3.4 復号プロセスフロー
9.3.4.2 ctxTable、ctxIdx、及びbypassFlagの導出プロセス
9.3.4.2.1 一般
【表5】
【0097】
5.8 実施形態#8
7.3.10.11 残差コーディングシンタックス
(外27)
ただし、AはBと等しくない。例えば、A=0、B=1などである。
あるいは、A=1、B=0。
あるいは、A=-1、B=0。
あるいは、A=0、B=-1。
9.3.4 復号プロセスフロー
9.3.4.2 ctxTable、ctxIdx、及びbypassFlagの導出プロセス
9.3.4.2.1 一般
【表6】
【0098】
5.9 実施形態#9
7.3.10.11 残差コーディングシンタックス
(外28)
7.4.11.11 残差コーディングセマンティクス
(外29)
9.3.2 初期化プロセス
9.3.2.2 コンテキスト変数に対する初期化プロセス
【表7】
9.3.3 二値化プロセス
9.3.3.1 一般
【表8】
9.3.4 復号プロセスフロー
9.3.4.2 ctxTable、ctxIdx、及びbypassFlagの導出プロセス
9.3.4.2.1 一般
【表9】
(外30)
【0099】
5.10 実施形態#10
(外31)
【0100】
図7は、ここに開示される様々な技術が実装され得る映像処理システム1900の一例を示すブロック図である。様々な実装は、システム1900のコンポーネントの一部又は全てを含み得る。システム1900は、映像コンテンツを受信する入力1902を含み得る。映像コンテンツは、例えば8ビット又は10ビットのマルチコンポーネント(多成分)ピクセル値といった、ロー(未加工)又は未圧縮のフォーマットで受信されてもよいし、あるいは圧縮又は符号化されたフォーマットで受信されてもよい。入力1902は、ネットワークインタフェース、周辺バスインタフェース、又はストレージインタフェースを表し得る。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)などの有線インタフェース、及びWi-Fi(登録商標)若しくはセルラーインタフェースなどの無線インタフェースを含む。
【0101】
システム1900は、本文書に記載される様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント1904を含み得る。コーディングコンポーネント1904は、入力1902からコーディングコンポーネント1904の出力まで映像の平均ビットレートを低減させて、映像のコーディングされた表現を生成し得る。コーディング技術は、それ故に、映像圧縮技術又は映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント1904の出力は、格納されるか、コンポーネント1906によって表されるように接続されて通信を介して伝送されるかし得る。入力1902で受信された映像の格納又は通信されるビットストリーム(又はコーディングされた)表現は、ディスプレイインタフェース910に送られるピクセル値又は表示可能映像を生成するためにコンポーネント1908によって使用され得る。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像解凍と呼ばれることがある。また、特定の映像処理操作が“コーディング”の操作又はツールとして参照されることがあるが、理解されることには、コーディングのツール又は操作はエンコーダで使用され、コーディングの結果を裏返す対応する復号のツール又は操作がデコーダで実行されることになる。
【0102】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート(Displayport)などを含み得る。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェースなどを含む。本文書に記載される技術は、例えば携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実行することが可能な他の装置などの、種々のエレクトロニクス装置にて具現化され得る。
【0103】
図8は、映像処理装置3600のブロック図である。装置3600は、ここに記載される方法のうちの1つ以上を実装するために使用され得る。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器などにて具現化され得る。装置3600は、1つ以上のプロセッサ3602、1つ以上のメモリ3604、及び映像処理ハードウェア3606を含み得る。(1つ以上の)プロセッサ3602は、本文書に記載される1つ以上の方法を実行するように構成され得る。(1つ以上の)メモリ3604は、ここに記載される方法及び技術を実行するのに使用されるデータ及びコードを格納するために使用され得る。映像処理ハードウェア3606は、本文書に記載される一部の技術をハードウェア回路にて実装するために使用され得る。
【0104】
図10は、この開示の技術を利用し得る映像コーディングシステム100の一例を示すブロック図である。
【0105】
図10に示すように、映像コーディングシステム100は、ソース装置110及びデスティネーション装置120を含み得る。ソース装置110は、符号化映像データを生成し、映像符号化装置として参照され得る。デスティネーション装置120は、ソース装置110によって生成された符号化映像データを復号することができ、映像復号装置として参照され得る。
【0106】
ソース装置110は、映像ソース112、ビデオエンコーダ114、及び入力/出力(I/O)インタフェース116を含み得る。
【0107】
映像ソース112は、例えば、映像キャプチャ装置、映像コンテンツプロバイダから映像データを受信するインタフェース、及び/又は映像データを生成するコンピュータグラフィックスシステム、又はそのようなソースの組み合わせなどの、ソースを含み得る。映像データは、1つ以上のピクチャを有し得る。ビデオエンコーダ114は、映像ソース112からの映像データを符号化してビットストリームを生成する。ビットストリームは、映像データのコーディングされた表現を形成する一連のビットを含み得る。ビットストリームは、コーディングされたピクチャ及び関連データを含み得る。コーディングされたピクチャはピクチャのコーディングされた表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、及び他のシンタックス構造を含み得る。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信器を含み得る。符号化映像データは、I/Oインタフェース116を介し、ネットワーク130aを通じて直接、デスティネーション装置120に伝送され得る。符号化映像データはまた、デスティネーション装置120によるアクセスのためにストレージ媒体/サーバ130b上に格納されてもよい。
【0108】
デスティネーション装置120は、I/Oインタフェース126、ビデオデコーダ124、及び表示装置122を含み得る。
【0109】
I/Oインタフェース126は、受信器及び/又はモデムを含み得る。I/Oインタフェース126は、ソース装置110又はストレージ媒体/サーバ130bから符号化映像データを取得し得る。ビデオデコーダ124は符号化映像データを復号し得る。表示装置122は、復号映像データをユーザに表示し得る。表示装置122は、デスティネーション装置120と一体化されてもよいし、あるいは、外部表示装置とインタフェースするように構成されたデスティネーション装置120の外部にあってもよい。
【0110】
ビデオエンコーダ114及びビデオデコーダ124は、例えばハイエフィシェンシビデオコーディング(HEVC)標準、バーサタイルビデオコーディング(VVC)標準、及び他の現行の及び/又は将来の標準などの、映像圧縮標準に従って動作し得る。
【0111】
図11は、図10に示したシステム100内のビデオエンコーダ114とし得るものであるビデオエンコーダ200の一例を示すブロック図である。
【0112】
ビデオエンコーダ200は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。図11の例において、ビデオエンコーダ200は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0113】
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピーコーディングユニット214とを含み得る。
【0114】
他の例において、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでいてもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在映像ブロックが位置するところのピクチャである、というIBCモードで予測を実行し得る。
【0115】
また、例えば動き推定ユニット204及び動き補償ユニット205などの一部のコンポーネントは、図11の例では説明の目的で別々に表されているが、高度に集積されることができる。
【0116】
分割ユニット201は、ピクチャを1つ以上の映像ブロックに分割し得る。ビデオエンコーダ200及びビデオデコーダ300は、様々な映像ブロックサイズをサポートし得る。
【0117】
モード選択ユニット203は、例えば誤差結果に基づいて、イントラ又はインターである複数のコーディングモードのうちの1つを選択し、得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成する残差生成ユニット207と、参照ピクチャとしての使用のために符号化ブロックを再構成する再構成ユニット212とに提供し得る。一部の例において、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくものである組み合わせイントラ・インター予測(combination of intra and inter predication;CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの分解能(例えば、サブピクセル又は整数ピクセルの精度)を選択し得る。
【0118】
現在映像ブロックに対してインター予測を実行するために、動き推定ユニット204が、バッファ213からの1つ以上の参照フレームを現在映像ブロックと比較することによって、現在映像ブロックについての動き情報を生成し得る。動き補償ユニット205が、現在映像ブロックに関連付けられたピクチャ以外の、バッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在映像ブロックについての予測映像ブロックを決定し得る。
【0119】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在映像ブロックがIスライス内にあるか、Pスライス内にあるか、それともBスライス内にあるかに応じて、現在映像ブロックに対して異なる演算を実行し得る。
【0120】
一部の例において、動き推定ユニット204は、現在映像ブロックに対して片方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0又はリスト1の参照ピクチャを探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0又はリスト1内の参照ピクチャを指し示す参照インデックスと、現在映像ブロックと参照映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、上記参照インデックスと、予測方向インジケータと、上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0121】
他の例において、動き推定ユニット204は、現在映像ブロックに対して双方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0内の参照ピクチャを探索し得るとともに、現在映像ブロックに対するもう1つの参照映像ブロックについてリスト1内の参照ピクチャも探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0内の及びリスト1内の参照ピクチャを指し示す参照インデックスと、それら参照映像ブロックと現在映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、それら参照インデックスと、現在映像ブロックの上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0122】
一部の例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報の完全なセットを出力し得る。
【0123】
一部の例において、動き推定ユニット204は、現在映像についての動き情報の完全なセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して現在映像ブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在映像ブロックの動き情報が隣接映像ブロックの動き情報と十分に似ていると判定し得る。
【0124】
一例において、動き推定ユニット204は、現在映像ブロックに関連付けられるシンタックス構造内で、現在映像ブロックが別の映像ブロックと同じ動き情報を持つことをビデオデコーダ300に示す値を指し示し得る。
【0125】
他の一例において、動き推定ユニット204は、現在映像ブロックに関連付けられるシンタックス構造内で、別の映像ブロックと動きベクトル差(MVD)とを特定してもよい。動きベクトル差は、現在映像ブロックの動きベクトルと、指し示される映像ブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、指し示された映像ブロックの動きベクトルと動きベクトル差とを用いて、現在映像ブロックの動きベクトルを決定し得る。
【0126】
上述のように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングし得る。ビデオエンコーダ200によって実装され得る予測的シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP)及びマージモードシグナリングを含む。
【0127】
イントラ予測ユニット206は、現在映像ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット206が現在映像ブロックに対してイントラ予測を実行するとき、イントラ予測ユニット206は、同じピクチャ内の他の映像ブロックの復号サンプルに基づいて、現在映像ブロックについての予測データを生成し得る。現在映像ブロックについての予測データは、予測映像ブロックと様々なシンタックス要素とを含み得る。
【0128】
残差生成ユニット207は、現在映像ブロックの(1つ以上の)予測映像ブロックを現在映像ブロックから差し引くことによって(例えば、マイナス符号によって示される)、現在映像ブロックについての残差データを生成し得る。現在映像ブロックの残差データは、現在映像ブロック内のサンプルの異なるサンプル成分に対応する残差映像ブロックを含み得る。
【0129】
他の例では、例えばスキップモードにおいて、現在映像ブロックのために現在映像ブロックについての残差データが存在しないことがあり、残差生成ユニット207は減算演算を実行しないことがある。
【0130】
変換処理ユニット208は、現在映像ブロックに関連する残差映像ブロックに1つ以上の変換を適用することによって、現在映像ブロックについての1つ以上の変換係数映像ブロックを生成し得る。
【0131】
変換処理ユニット208が現在映像ブロックに関する変換係数映像ブロックを生成した後、量子化ユニット209が、現在映像ブロックに関する変換係数映像ブロックを、現在映像ブロックに関する1つ以上の量子化パラメータ(QP)値に基づいて量子化し得る。
【0132】
逆量子化ユニット210及び逆変換ユニット211が、変換係数映像ブロックに、それぞれ、逆量子化及び逆変換を適用して、変換係数映像ブロックから残差映像ブロックを再構成し得る。再構成ユニット212が、再構成された残差映像ブロックを、予測ユニット202によって生成された1つ以上の予測映像ブロックからの対応するサンプルに足し合わせて、バッファ213に記憶される現在ブロックに関する再構成映像ブロックを生成し得る。
【0133】
再構成ユニット212が映像ブロックを再構成した後、映像ブロック内の映像ブロッキングアーチファクトを低減させるために、ループフィルタリング演算が実行され得る。
【0134】
エントロピーコーディングユニット214が、ビデオエンコーダ200の他の機能コンポーネントからデータを受信し得る。エントロピーコーディングユニット214がデータを受信すると、エントロピーコーディングユニット214は、1つ以上のエントロピー符号化演算を実行してエントロピー符号化データを生成し、そして、エントロピー符号化データを含むビットストリームを出力し得る。
【0135】
図12は、図10に示したシステム100内のビデオデコーダ124とし得るものであるビデオデコーダ300の一例を示すブロック図である。
【0136】
ビデオデコーダ300は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。図12の例において、ビデオデコーダ300は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0137】
図12の例において、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、再構成ユニット306、及びバッファ307を含んでいる。ビデオデコーダ300は、一部の例において、ビデオエンコーダ200(例えば、図11)に関して説明した符号化パスに対して概ね逆の復号パスを実行し得る。
【0138】
エントロピー復号ユニット301が符号化ビットストリームを取り出し得る。符号化ビットストリームは、エントロピーコーディングされた映像データ(例えば、映像データの符号化ブロック)を含み得る。エントロピー復号ユニット301はエントロピーコーディングされた映像データを復号することができ、エントロピー復号された映像データから、動き補償ユニット302が、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他のモーション情報を含む動き情報を決定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定し得る。
【0139】
動き補償ユニット302は、場合により補間フィルタに基づく補間を実行して、動き補償ブロックを生成し得る。サブピクセル精度で使用される補間フィルタに関する識別子がシンタックス要素に含められ得る。
【0140】
動き補償ユニット302は、映像ブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算し得る。動き補償ユニット302は、ビデオエンコーダ200によって使用された補間フィルタを、受信したシンタックス情報に従って決定し、その補間フィルタを用いて予測ブロックを生成し得る。
【0141】
動き補償ユニット302は、シンタックス情報の一部を用いて、符号化映像シーケンスのフレーム及び/又はスライスを符号化するのに使用されるブロックのサイズ、符号化映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを指し示すモード、各インター符号化ブロックに関する1つ又は複数の参照フレーム(及び参照フレームリスト)、及び符号化映像シーケンスを復号するための他の情報を決定し得る。
【0142】
イントラ予測ユニット303は、例えばビットストリーム内で受信した、イントラ予測モードを用いて、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット304が、ビットストリーム内で提供されてエントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化する、例えば、量子化解除する。逆変換ユニット305が逆変換を適用する。
【0143】
再構成ユニット306が、残差ブロックを、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックと足し合わせて、復号ブロックを形成し得る。望まれる場合、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするよう、デブロッキングフィルタも適用され得る。そして、復号映像ブロックがバッファ307に格納され、それが、後の動き補償/イントラ予測のための参照ブロックを提供し、また、ディスプレイ装置上での提示のために復号された映像を生成する。
【0144】
次に、一部の実施形態によって好まれるソリューションのリストを提供する。
【0145】
以下のソリューションは、先行セクション(例えば、項目1)で説明した技術の実施形態例を示す。
【0146】
1. 映像処理の方法(例えば、図9に示した方法900)であって、映像の映像ブロックと前記映像のコーディング表現との間での変換を実行するステップ(902)を有し、代表的なカラー値のパレットを用いて前記映像ブロックのサンプルが表現されるパレットモードが、前記映像ブロックの前記コーディング表現に対して使用され、前記パレットの外のサンプルは、エスケープシンボルと、ルールによって決定される最小許容値と最大許容値との間の範囲内の量子化パラメータを用いて量子化される値とを使用してコーディングされる。
【0147】
2. 前記最大許容値は、前記映像ブロックの前記コーディング表現に使用される二値化方法に依存する、ソリューション1の方法。
【0148】
3. 前記最大許容値はT+Bとして表現され、Bは、前記映像ブロックの前記サンプルの表現のビット深度に基づく数であり、Tは所定の数である、ソリューション1の方法。
【0149】
以下のソリューションは、先行セクション(例えば、項目2)で説明した技術の実施形態例を示す。
【0150】
4. 映像処理の方法であって、映像の映像ブロックと前記映像のコーディング表現との間での変換を実行するステップを有し、代表的なカラー値のパレットを用いて前記映像ブロックのサンプルが表現されるパレットモードが、前記映像ブロックの前記コーディング表現に対して使用され、前記パレットのサイズが、前記映像ブロックと前記コーディング表現との間での前記変換に対してローカルデュアルツリーが使用されるかについてのルールに依存する。
【0151】
5. 前記パレットの前記サイズは、前記ローカルデュアルツリーの使用によって前記映像のカラーコンポーネントに依存する、ソリューション4の方法。
【0152】
6. 前記ルールは、前記映像ブロックがクロマブロックである場合に、前記映像ブロックがルマブロックである場合よりも小さいパレットサイズを用いることを規定する、ソリューション5の方法。
【0153】
以下のソリューションは、先行セクション(例えば、項目3)で説明した技術の実施形態例を示す。
【0154】
7. 映像処理の方法であって、映像の映像ブロックと前記映像のコーディング表現との間での変換を実行するステップを有し、代表的なカラー値のパレットを用いて前記映像ブロックのサンプルが表現されるパレットモードが、前記映像ブロックの前記コーディング表現に対して使用され、パレット予測子のサイズが、前記映像ブロックと前記コーディング表現との間での前記変換に対してローカルデュアルツリーが使用されるかについてのルールに依存する。
【0155】
8. 前記パレット予測子の前記サイズは、前記ローカルデュアルツリーの使用によって前記映像ブロックのカラーコンポーネントに依存する、ソリューション7の方法。
【0156】
9. 前記ルールは、前記映像ブロックがクロマブロックである場合に、前記映像ブロックがルマブロックである場合よりも小さいパレットサイズを用いることを規定する、ソリューション8の方法。
【0157】
以下のソリューションは、先行セクション(例えば、項目4)で説明した技術の実施形態例を示す。
【0158】
10. 映像処理の方法であって、映像の映像領域の映像ブロックと前記映像のコーディング表現との間での変換のために、コーディング条件に基づいて、前記映像のクロマコンポーネントのためのデブロッキングオフセットを特定するシンタックス要素が映像領域レベルで前記コーディング表現に含められるかを決定するステップと、前記決定に基づいて前記変換を実行するステップとを有し、前記デブロッキングオフセットは、前記映像ブロックに対するデブロッキング処理を選択的に有効にするために使用される。
【0159】
11. 前記映像領域は、ビデオスライス又はビデオピクチャである、ソリューション10の方法。
【0160】
12. 前記コーディング条件は、前記映像のカラーフォーマットを有する、ソリューション10乃至11のいずれかの方法。
【0161】
13. 前記コーディング条件は、前記変換のためにセパレートプレーンコーディングが有効にされるかに基づく、ソリューション10乃至12のいずれかの方法。
【0162】
14. 前記コーディング条件は、クロマ配列タイプが前記コーディング表現に含められるかに基づく、ソリューション10乃至13のいずれかの方法。
【0163】
以下のソリューションは、先行セクション(例えば、項目5)で説明した技術の実施形態例を示す。
【0164】
15. 映像処理の方法であって、映像の映像領域の映像ブロックと前記映像のコーディング表現との間での変換のために、コーディング条件に基づいて、クロマコーディングツールの使用を特定するシンタックス要素が映像領域レベルで前記コーディング表現に含められるかを決定するステップと、前記決定に基づいて前記変換を実行するステップとを有し、デブロッキングオフセットは、前記映像ブロックに対するデブロッキング処理を選択的に有効にするために使用される。
【0165】
16. 前記映像領域は、ビデオスライス又はビデオピクチャである、ソリューション15の方法。
【0166】
17. 前記コーディング条件は、適応パラメータセットにシンタックス要素を含めることに対応する、ソリューション15乃至16のいずれかの方法。
【0167】
以下のソリューションは、先行セクション(例えば、項目6、項目7)で説明した技術の実施形態例を示す。
【0168】
18. 映像処理の方法であって、映像の映像領域の映像ブロックと前記映像のコーディング表現との間での変換を実行するステップを有し、前記コーディング表現はフォーマットに従い、前記フォーマットは、前記映像のクロマコンポーネントのためのデブロッキングオフセットを示す第1のフラグが前記コーディング表現に含められるかが、前記クロマコンポーネントの量子化パラメータオフセットを示す第2のフラグが前記コーディング表現に含められるかに基づくことを規定する。
【0169】
19. 前記フォーマットルールは、前記第1のフラグ及び前記第2のフラグが前記コーディング表現に含められるかを指し示す第3のフラグを前記コーディング表現が含むことを規定する、ソリューション18の方法。
【0170】
20. 前記第3のフラグは、ピクチャパラメータセット内で前記コーディング表現に含められる、ソリューション18乃至19のいずれかの方法。
【0171】
以下のソリューションは、先行セクション(例えば、項目8-項目12)で説明した技術の実施形態例を示す。
【0172】
21. 映像処理の方法であって、映像の映像領域の映像ブロックと前記映像のコーディング表現との間での変換を実行するステップを有し、前記コーディング表現はフォーマットルールに従い、前記フォーマットルールは、1つ以上のクロマコーディングツールの適用可能性を示す1つ以上のパラメータが映像領域レベル又は映像ブロックレベルで前記コーディング表現に含められるかを、前記コーディング表現内のシンタックス要素が制御することを規定する。
【0173】
22. 前記シンタックス要素は適応パラメータセットに含められる、ソリューション21の方法。
【0174】
23. 前記フォーマットルールは、前記シンタックス要素の第1の値が、前記1つ以上のパラメータが前記コーディング表現から除かれ且つ前記コーディング表現の解析中にスキップされることを指し示す、ことを規定する、ソリューション21乃至22のいずれかの方法。
【0175】
24. 前記変換は、前記映像が条件を満たすことによって当該方法を使用する、上記ソリューションのいずれかの方法。
【0176】
25. 前記条件は、映像コンテンツのタイプ、又は前記コーディング表現によって使用されるプロファイル若しくはティア若しくはレベルを有する、ソリューション24の方法。
【0177】
26. 前記条件は、前記映像ブロック及び/又は隣接映像ブロックのブロック寸法、又は前記映像のカラーフォーマット、又は前記映像ブロックの前記変換に使用されるコーディングツリー構造、又は前記映像領域のタイプを含む、上記ソリューションのいずれかの方法。
【0178】
27. 前記変換は、前記映像を前記コーディング表現へと符号化することを有する、ソリューション1乃至26のいずれかに記載の方法。
【0179】
28. 前記変換は、前記コーディング表現を復号して前記映像のピクセル値を生成することを有する、ソリューション1乃至26のいずれかに記載の方法。
【0180】
29. ソリューション1乃至28のうち1つ以上に記載の方法を実行するように構成されたプロセッサを有する映像復号装置。
【0181】
30. ソリューション1乃至28のうち1つ以上に記載の方法を実行するように構成されたプロセッサを有する映像符号化装置。
【0182】
31. コンピュータコードを格納したコンピュータプログラムプロダクトであって、前記コードは、プロセッサによって実行されるときに、ソリューション1乃至28のいずれかに記載の方法を前記プロセッサに実行させる、コンピュータプログラムプロダクト。
32. 本文書に記載の方法、装置又はシステム。
【0183】
図13は、本技術に従った映像処理の方法1300のフローチャート表現である。方法1300は、処理1310にて、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。映像ブロックのパレットのサイズが、映像ブロックにローカルデュアルツリーが適用されるかに基づいて決定される。
【0184】
一部の実施形態において、コーディングユニットにローカルデュアルツリーが適用される場合、コーディングユニットのルマブロックのみに対して、コーディングユニットのパーティションパラメータに基づいてパーティション演算が適用され、パーティション演算は、コーディングユニットのモードタイプに従って、コーディングユニットの少なくとも1つのクロマブロックには適用可能でない。一部の実施形態において、映像ブロックにローカルデュアルツリーが適用される場合、パレットのサイズは縮小される。一部の実施形態において、映像ブロックにローカルデュアルツリーが適用される場合、パレットのサイズは、映像ブロックにローカルデュアルツリーが適用されない場合のパレットのサイズに比べて縮小される。一部の実施形態において、映像ブロックにローカルデュアルツリーが適用される場合、パレットのサイズは、映像ブロックに通常のシングルツリーが適用される場合のパレットのサイズに比べて縮小される。一部の実施形態において、パレットのサイズが半分に縮小される。
【0185】
一部の実施形態において、ローカルデュアルツリーが適用される場合、クロマコンポーネントの映像ブロックのパレットのサイズが、ルマコンポーネントの映像ブロックのパレットのサイズとは異なる。一部の実施形態において、クロマコンポーネントの映像ブロックのパレットのサイズは、ルマコンポーネントの映像ブロックのパレットのサイズよりも小さい。一部の実施形態において、クロマコンポーネントの映像ブロックのパレットのサイズは、ルマコンポーネントの映像ブロックのパレットのサイズの半分である。
【0186】
図14は、本技術に従った映像処理の方法1400のフローチャート表現である。方法1400は、処理1410にて、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。映像ブロックのパレット予測子のサイズが、映像ブロックにローカルデュアルツリーが適用されるかに基づく。
【0187】
一部の実施形態において、変換にローカルデュアルツリーが適用される場合、パレット予測子のサイズは縮小される。一部の実施形態において、ローカルデュアルツリーが適用される場合、クロマコンポーネントの映像ブロックのパレット予測子のサイズは、ルマコンポーネントの映像ブロックのパレット予測子のサイズとは異なる。一部の実施形態において、クロマコンポーネントの映像ブロックのパレット予測子のサイズは、ルマコンポーネントの映像ブロックのパレットのサイズよりも小さい。一部の実施形態において、クロマコンポーネントの映像ブロックのパレット予測子のサイズは、ルマコンポーネントの映像ブロックのパレットのサイズに比べて半分に縮小される。
【0188】
図15は、本技術に従った映像処理の方法1500のフローチャート表現である。方法1500は、処理1510にて、映像の映像ブロックと映像のビットストリームとの間での変換を、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードを用いて実行することを含む。変換は、少なくとも最大許容値又は最小許容値によって制約される量子化パラメータを用いてエスケープサンプルの値がビットストリーム内にコーディングされることを規定するルールに従う。
【0189】
一部の実施形態において、エスケープサンプルは、サンプルのうち、パレットの代表的なカラー値に分類されないサブセットを含み、量子化パラメータは、最大許容値以下である又は最小許容値以上であるように制約される。一部の実施形態において、最大許容値は、変換に使用される二値化方法に基づいて決定される。一部の実施形態において、最大許容値は(T+B)として表され、Bはビット深度を表す。一部の実施形態において、Tは、ビットストリームの映像領域内で示される。一部の実施形態において、Tは、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、ピクチャヘッダ、又はスライスヘッダ内でシグナリングされる。一部の実施形態において、Bは、量子化パラメータに関連付けられたビット深度オフセットに等しい。一部の実施形態において、最大許容値は、量子化パラメータに関連付けられたビット深度オフセットにTを加えたものに等しい。一部の実施形態において、Tは定数である。一部の実施形態において、Tは、23、35、又は39に等しい。一部の実施形態において、Tは、23未満、35未満、又は29未満の定数である。一部の実施形態において、エスケープサンプルの値は、EG5、EG3、又はEG4のビット長を用いてコーディングされる。
【0190】
図16は、本技術に従った映像処理の方法1600のフローチャート表現である。方法1600は、処理1610にて、映像のブロックと映像のビットストリームとの間での変換を実行することを含む。変換は、クロマコーディングツールに関連するパラメータがビットストリームの適応パラメータセット内に存在するかが適応パラメータセット内の制御フラグに基づくことを規定するフォーマットルールに従う。
【0191】
一部の実施形態において、制御フラグが0に等しい場合、パラメータは適応パラメータセット内で省略される。一部の実施形態において、パラメータは少なくとも、適応ループフィルタのクロマコンポーネントに対する信号フラグ、適応ループフィルタのCbコンポーネントに対する信号フラグ、適応ループフィルタのCrコンポーネントに対する信号フラグ、又はクロマコンポーネントに対するスケーリングリストが存在するかを指し示す信号フラグを含む。
【0192】
図17は、本技術に従った映像処理の方法1700のフローチャート表現である。方法1700は、処理1710にて、映像のブロックと映像のビットストリームとの間での変換を実行することを含む。ビットストリームは、映像がモノクロである又は映像のカラーコンポーネント同士が別々に処理される場合に、量子化パラメータに関連付けられたシンタックス要素がビットストリームのピクチャヘッダ内で省略される、ことを規定するフォーマットルールに従う。一部の実施形態において、映像がモノクロであることは、(1)シンタックス要素ChromaArrayTypeが0に等しいこと、(2)映像のカラーフォーマットが4:0:0に等しいことに基づいて決定される。一部の実施形態において、シンタックス要素は、ph_log2_diff_min_qt_min_cb_intra_slice_luma、ph_log2_diff_min_qt_min_cb_intra_slice_chroma、又はph_log2_diff_min_qt_min_cb_inter_sliceを有する。
【0193】
図18は、本技術に従った映像処理の方法1800のフローチャート表現である。方法1800は、処理1810にて、映像の映像ブロックと映像のビットストリームとの間での変換を、該変換に対して、代表的なカラー値のパレットを用いて映像ブロックのサンプルが表現されるパレットモードと、残差ドメイン内でカラー空間変換が行われる適応カラー変換モードとが、相互に排他的に有効にされる、ことを規定するルールに従って実行することを含む。
【0194】
一部の実施形態において、変換に対してパレットモードが適用される場合、適応カラー変換モードは無効にされる。一部の実施形態において、適応カラー変換モードの情報のシグナリングが変換に対して省略される。一部の実施形態において、適応カラー変換モードの使用は無効にされていると推定される。一部の実施形態において、変換に対して適応カラー変換モードが適用される場合、パレットモードは無効にされる。一部の実施形態において、パレットモードの情報のシグナリングが変換に対して省略される。一部の実施形態において、パレットモードの使用は無効にされていると推定される。
【0195】
図19は、本技術に従った映像処理の方法1900のフローチャート表現である。方法1900は、処理1910にて、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。映像ブロックの残差ブロックのカラー空間にかかわらず、残差ドメイン内でカラー空間変換が行われる適応カラー変換モードが残差ブロックに適用される。一部の実施形態において、残差ブロックのカラー空間は、緑青赤(GBR)カラー空間又はYCbCrカラー空間を有する。
【0196】
図20は、本技術に従った映像処理の方法2000のフローチャート表現である。方法2000は、処理2010にて、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。映像ブロックは、変換スキップ残差コーディングツールを用いてコーディングされ、変換スキップ残差コーディングツールでは、映像ブロックの変換スキップコーディングの残差係数が、コンテキストコーディングプロセス又はバイパスコーディングプロセスを用いてコーディングされる。変換において、バイパスコーディングプロセスの開始時又は終了時に、映像ブロック内で許容される残りのコンテキストコーディングビンの数を規定する変数に対して処理が適用される。
【0197】
一部の実施形態において、処理は、映像ブロック内で許容される残りのコンテキストコーディングビンの数をテンポラリ変数に格納し、テンポラリ変数に基づいて変数を設定する、ことを有する。一部の実施形態において、処理は、Nは整数であるとして、変数を値Nに設定する、ことを有する。一部の実施形態において、Mは3に等しいとして、NはMより小さい。一部の実施形態において、Nは、別の変数又は別のシンタックス要素に基づく。一部の実施形態において、係数レベルのサインを示すシンタックス要素が、バイパスコーディングプロセス用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、映像ブロック内で許容される残りのコンテキストコーディングビンの数に基づく。
【0198】
一部の実施形態において、Nは0以上の整数であるとして、映像ブロック内で許容される残りのコンテキストコーディングビンの数がNに等しい場合に、係数レベルのサインはバイパスコーディングプロセスを用いてコーディングされる。一部の実施形態において、Nは整数であるとして、映像ブロック内で許容される残りのコンテキストコーディングビンの数がM以上である場合に、係数レベルのサインはコンテキストコーディングプロセスを用いてコーディングされる。
【0199】
図21は、本技術に従った映像処理の方法2100のフローチャート表現である。方法2100は、処理2110にて、映像の映像ブロックと映像のビットストリームとの間での変換を、変換スキップ残差コーディングプロセスを用いて実行することを含む。変換において、シンタックス要素が特定のスキャンパスに属するかを指し示す変数に対して処理が適用される。
【0200】
一部の実施形態において、処理は、現在スキャンパスが3番目のスキャンパス又は残余スキャンパスであることを指し示す値を変数に割り当てる、ことを有する。一部の実施形態において、処理は、現在スキャンパスが最初のスキャンパスであることを指し示す値を変数に割り当てる、ことを有する。一部の実施形態において、処理は、現在スキャンパスが2番目のスキャンパス又はX超スキャンパスであることを指し示す値を変数に割り当てる、ことを有する。一部の実施形態において、処理は、最初のスキャンパスの開始時に第1の値を変数に割り当て、3番目のスキャンパス又は残余スキャンパスの開始時に第2の値を変数に割り当てる、ことを有し、第1の値は第2の値に等しくない。
【0201】
一部の実施形態において、係数レベルのサインを示すシンタックス要素が、バイパスコーディングプロセス用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、変数に基づく。一部の実施形態において、特定のスキャンパスが3番目のスキャンパス又は残余スキャンパスであることを変数が指し示す場合、係数レベルのサインはバイパスコーディングプロセスを用いてコーディングされる。一部の実施形態において、特定のスキャンパスが最初のスキャンパスであることを変数が指し示す場合、係数レベルのサインはコンテキストコーディングプロセスを用いてコーディングされる。
【0202】
図22は、本技術に従った映像処理の方法2200のフローチャート表現である。方法2200は、処理2210にて、映像の映像ブロックと映像のビットストリームとの間での変換を実行することを含む。変換において、係数レベルのサインを示すシンタックス要素がバイパスコーディングプロセスを用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、映像ブロックの領域内の1つ以上の係数の同じシンタックス要素が順番にコーディングされるスキャンパスのインデックスに基づく。一部の実施形態において、変換は、変換スキップ残差コーディングプロセス、又は映像ブロックが非変換スキップコーディングされる係数コーディングプロセスを用いて実行される。
【0203】
図23は、本技術に従った映像処理の方法2300のフローチャート表現である。方法2300は、処理2310にて、映像の映像ブロックと映像のビットストリームとの間での変換を、変換スキップ残差コーディングプロセスを用いて実行することを含む。変換において、係数レベルのサインを示すシンタックス要素がバイパスコーディングプロセスを用いてコーディングされるのか、それともコンテキストコーディングプロセスを用いてコーディングされるのかが、シンタックス要素が別のシンタックス要素と同じスキャンパス内でシグナリングされるかに基づく。
【0204】
一部の実施形態において、シンタックス要素は、sig_coeff_flag又はpar_level_flagとしてシグナリングされる。一部の実施形態において、シンタックス要素がabs_remainderと同じスキャンパス内でシグナリングされる場合、シンタックス要素はバイパスコーディングプロセスを用いてコーディングされる。
【0205】
一部の実施形態において、上記方法のうちの1つ以上の適用可能性が映像の特徴に基づく。一部の実施形態において、特徴は映像のコンテンツを有する。一部の実施形態において、特徴は、デコーダパラメータセット、シーケンスパラメータセット、ビデオパラメータセット、ピクチャパラメータセット、適応パラメータセット、ピクチャヘッダ、スライスヘッダ、タイルグループヘッダ、最大コーディングユニット(LCU)、コーディングユニット(CU)、LCU行、一群のLCU、変換ユニット(TU)、ピクチャユニット(PU)ブロック、又はビデオコーディングユニット内でシグナリングされるメッセージを有する。一部の実施形態において、特徴は、コーディングユニット、ピクチャユニット、変換ユニット、又はブロックの位置を有する。一部の実施形態において、特徴は、映像ブロックの、及び/又は映像ブロックの隣接ブロックの、寸法又は形状を有する。一部の実施形態において、特徴は、映像ブロックの量子化パラメータを有する。一部の実施形態において、特徴は、映像のカラーフォーマットを有する。一部の実施形態において、特徴は、映像のコーディングツリー構造を有する。一部の実施形態において、特徴は、スライス、タイルグループ、又はピクチャのタイプを有する。一部の実施形態において、特徴は、映像ブロックのカラーコンポーネントを有する。一部の実施形態において、特徴は、時間レイヤ識別子を有する。一部の実施形態において、特徴は、ビデオ標準のプロファイル、レベル、又はティアを有する。一部の実施形態において、特徴は、映像ブロックがエスケープサンプルを含むかどうかを有する。一部の実施形態において、当該方法は、映像ブロックが少なくとも1つのエスケープサンプルを含む場合にのみ適用可能である。一部の実施形態において、特徴は、映像ブロックが無損失モードを用いてコーディングされるかどうかを有する。一部の実施形態において、当該方法は、映像ブロックが無損失モードを用いてコーディングされるのではない場合にのみ適用可能である。
【0206】
一部の実施形態において、変換は、映像をビットストリームへと符号化することを有する。一部の実施形態において、変換は、ビットストリームから映像を復号することを有する。
【0207】
本文書において、用語“映像処理”は、映像符号化、映像復号、映像圧縮、又は映像解凍を指し得る。例えば、映像圧縮アルゴリズムが、映像のピクセル表現から対応するビットストリーム表現への変換又はその逆の変換において適用され得る。現在映像ブロックのビットストリーム表現は、例えば、シンタックスによって規定されるように、ビットストリーム内で一緒に置かれたビット又は複数の異なる場所に散らされたビットのいずれかに対応する。例えば、変換されコーディングされるエラー残差値に関して、ビットストリーム内のヘッダ及び他のフィールドの中のビットを用いて、マクロブロックを符号化し得る。
【0208】
開示される及びその他のソリューション、この文書に記述される例、実施形態、モジュール及び機能動作は、この文書に開示されている構造及びそれらに構造的に均等なものを含め、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、あるいはこれらのうちの1つ以上の組み合わせにて実施されることができる。開示される及びその他の実施形態は、1つ以上のコンピュータプログラムプロダクトとして実装されることができ、例えば、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、コンピュータ読み取り可能媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基板、メモリ装置、機械読み取り可能な伝搬信号を生じさせる物質の組成、又はそれらのうちの1つ以上の組み合わせとすることができる。用語“データ処理装置”は、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理するあらゆる装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードといった、問題としているコンピュータプログラムのための実行環境を作り出すコードを含むことができる。伝播される信号は、人工的に生成される信号であり、例えば、適切な受信器装置への伝送のために情報をエンコードするために生成される機械生成による電気信号、光信号、又は電磁信号である。
【0209】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含め、如何なる形態のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に格納されてもよいし、問題としているプログラムに専用の単一ファイルに格納されてもよいし、あるいは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されてもよいし、あるいは、一箇所に配置された、又は複数箇所に分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されてもよい。
【0210】
この文書に記載されるプロセス及び論理フローは、入力データについて演算して出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。これらのプロセス及び論理フローはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった専用の論理回路によって実行されることもでき、また、装置も、そのような専用の論理回路として実装されることができる。
【0211】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを格納するための1つ以上の大容量ストレージ装置を含み、あるいは、大容量ストレージ装置からデータを受信したり、それにデータを転送したりするように動作的に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、例えばEPROM、EEPROM、及びフラッシュメモリデバイスといった半導体メモリデバイス、例えば内部ハードディスク又はリムーバブルディスクといった磁気ディスク;光磁気ディスク;並びにCD ROM及びDVD-ROMディスクを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われたり、それに組み込まれたりしてもよい。
【0212】
この特許文書は数多くの詳細が含んでいるが、それらは、いずれかの主題又は特許請求され得るものの範囲についての限定として解釈されるべきでなく、むしろ、特定の技術の特定の実施形態に特有とし得る機構の説明として解釈されるべきである。別々の実施形態の文脈でこの特許文書に記載されている特定の複数の機構が、単一の実施形態にて組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で説明されている種々の機構が、複数の実施形態にて別々に、又は何らかの好適なサブコンビネーションで実装されることもできる。さらには、複数の機構が、特定の組み合わせにて作用するものとして上述され、さらには当初はそのように特許請求されていることがあり得るが、場合によって、特許請求されている組み合わせからの1以上の機構を組み合わせから除くこともでき、また、特許請求されている組み合わせをサブコンビネーション又はサブコンビネーションのバリエーションへと導いてもよい。
【0213】
同様に、図面には処理が特定の順序で示されるが、このことは、所望の結果を達成するために、それらの動作が図示される特定の順序で若しくは順番に実行されること、又は図示される全ての処理が実行されることを要求するものとして理解されるべきでない。また、この特許文書に記載されている実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきでない。
【0214】
ほんの少しの実装及び例を記載したのみであり、この特許文書に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われ得る。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23