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

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

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

特許7372449スキップしたブロックを変換するための残差コーディング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】スキップしたブロックを変換するための残差コーディング
(51)【国際特許分類】
   H04N 19/18 20140101AFI20231024BHJP
   H04N 19/12 20140101ALI20231024BHJP
   H04N 19/136 20140101ALI20231024BHJP
【FI】
H04N19/18
H04N19/12
H04N19/136
【請求項の数】 15
(21)【出願番号】P 2022510897
(86)(22)【出願日】2020-08-20
(65)【公表番号】
(43)【公表日】2022-10-26
(86)【国際出願番号】 CN2020110150
(87)【国際公開番号】W WO2021032145
(87)【国際公開日】2021-02-25
【審査請求日】2022-03-03
(31)【優先権主張番号】PCT/CN2019/101608
(32)【優先日】2019-08-20
(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)【発明者】
【氏名】ワン,ユエ
【審査官】久保 光宏
(56)【参考文献】
【文献】Marta Karczewicz, et al.,"CE7: Sign context, level mapping, and bitplane coding for TS residual coding (CE7-3.7, CE7-3.8, CE7-3.9, CE7-3.10, and CE7-3.11)",Document: JVET-O0122-v3, [online],JVET-O0122 (version 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月04日,Pages 1-23,[令和5年2月20日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6726> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0122-v3.zip>.,(See document file "JVET-O0122-v3.docx" in the zip file "JVET-O0122-v3.zip".)
【文献】村上 篤道(外2名)編,「高効率映像符号化技術 HEVC/H.265とその応用」,第1版,日本,株式会社オーム社,2013年02月25日,第145頁,ISBN: 978-4-274-21329-8.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、当該方法は、
ビデオの現在のブロックと前記ビデオのビットストリームとの間の変換について、有意係数フラグがゼロに等しいかどうかに基づいて、レベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定するステップであって、前記有意係数フラグは、前記現在のブロックの残差係数が、ゼロより大きい絶対レベルを有するかどうかを示し、前記レベルマッピング操作又は前記レベル再マッピング操作は、前記残差係数の第1の表現と、前記残差係数の隣接する残差係数に基づく前記残差係数の第2の表現との間の変更を含む、前記決定するステップと、
前記決定に基づいて、前記レベルマッピング操作又は前記レベル再マッピング操作を選択的に使用して前記変換を実行するステップと、を含む、
方法。
【請求項2】
前記現在のブロックは、前記現在のブロックの前記残差係数に対する変換操作がスキップされる、変換スキップ(TS)モードでコード化される、請求項1に記載の方法。
【請求項3】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記有意係数フラグがゼロに等しいことに応答して、無効にされる、請求項1又は2に記載の方法。
【請求項4】
前記レベルマッピング操作又は前記レベル再マッピング操作が有効にされるかどうかは、係数レベルの絶対値がゼロに等しいかどうかにさらに基づく、請求項1又は2に記載の方法。
【請求項5】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記係数レベルの前記絶対値がゼロに等しいことに応答して、無効にされる、請求項4に記載の方法。
【請求項6】
前記レベルマッピング操作又は前記レベル再マッピング操作が有効にされるかどうかは、係数レベルの絶対値と、前記係数レベルの残りの絶対値との組合せがゼロに等しいかどうかにさらに基づく、請求項1又は2に記載の方法。
【請求項7】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記組合せがゼロに等しいことに応答して、無効にされる、請求項6に記載の方法。
【請求項8】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記有意係数フラグがゼロに等しくないことに応答して、有効にされる、請求項1乃至3のいずれか一項に記載の方法。
【請求項9】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記係数レベルの前記絶対値がゼロに等しくないことに応答して、有効にされる、請求項4又は5に記載の方法。
【請求項10】
前記レベルマッピング操作又は前記レベル再マッピング操作は、前記組合せがゼロに等しくないことに応答して、有効にされる、請求項6又は7に記載の方法。
【請求項11】
前記変換は、前記現在のブロックを前記ビットストリームに符号化することを含む、請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
前記変換は、前記ビットストリームから前記現在のブロックを復号化することを含む、請求項1乃至10のいずれか一項に記載の方法。
【請求項13】
プロセッサと、その上に命令を含む非一時的なメモリとを含むビデオデータを処理するための機器であって、前記命令が前記プロセッサによって実行されると、該プロセッサに、
ビデオの現在のブロックと前記ビデオのビットストリームとの間の変換について、有意係数フラグがゼロに等しいかどうかに基づいて、レベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定することであって、前記有意係数フラグは、前記現在のブロックの残差係数がゼロより大きい絶対レベルを有するかどうかを示し、前記レベルマッピング操作又は前記レベル再マッピング操作は、前記残差係数の第1の表現と、前記残差係数の隣接する残差係数に基づく前記残差係数の第2の表現との間の変更を含む、前記決定すること、及び
前記決定に基づいて、前記レベルマッピング操作又は前記レベル再マッピング操作を選択的に使用して前記変換を実行すること、を行わせる、
機器。
【請求項14】
命令を格納する非一時的なコンピュータ可読記憶媒体であって、前記命令がプロセッサによって実行されると、該プロセッサに、
ビデオの現在のブロックと前記ビデオのビットストリームとの間の変換について、有意係数フラグがゼロに等しいかどうかに基づいて、レベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定することであって、前記有意係数フラグは、前記現在のブロックの残差係数がゼロより大きい絶対レベルを有するかどうかを示し、前記レベルマッピング操作又は前記レベル再マッピング操作は、前記残差係数の第1の表現と、前記残差係数の隣接する残差係数に基づく前記残差係数の第2の表現との間の変更を含む、前記決定すること、及び
前記決定に基づいて、前記レベルマッピング操作又は前記レベル再マッピング操作を選択的に使用して変換を実行すること、を行わせる、
非一時的なコンピュータ可読記憶媒体。
【請求項15】
ビデオ処理機器によって実行される方法によって生成されるビデオのビットストリームを格納する方法であって、当該方法は、
前記ビデオの現在のブロックについて、有意係数フラグがゼロに等しいかどうかに基づいて、レベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定するステップであって、前記有意係数フラグは、前記現在のブロックの残差係数がゼロより大きい絶対値レベルを有するかどうかを示し、前記レベルマッピング操作又は前記レベル再マッピング操作は、前記残差係数の第1の表現と、前記残差係数の隣接する残差係数に基づく前記残差係数の第2の表現との間の変更を含む、前記決定するステップと、
前記決定に基づいて、前記レベルマッピング操作又は前記レベル再マッピング操作を選択的に使用して前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ可読媒体に格納するステップと、を含む、
方法
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2020年8月20日に出願した国際特許出願第PCT/CN2020/110150号に基づいており、この国際出願は、2019年8月20日に出願した国際特許出願第PCT/CN2019/101608号の優先権及びその利益を主している前述の全ての特許出願は、その全体が参照により本明細書に組み込まれる。
【0002】
この特許文書は、ビデオコーディング(coding)技術、装置、及びシステムに関する。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然としてインターネット及び他のデジタル通信ネットワーク上で最大の帯域幅使用を占めている。ビデオを受信及び表示することができる接続状態のユーザ装置の数が増えるにつれて、デジタルビデオの使用に対する帯域幅の需要は増加し続けるものと予想される。
【発明の概要】
【0004】
デジタルビデオコーディング、具体的には、変換スキップブロックコーディングツールを使用するビデオコーディング及びデコーディングに関連する装置、システム、及び方法を開示する。
【0005】
例示的な一態様では、ビデオ処理の方法を開示する。この方法は、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバート(conversion)に関して、規則に基づいてレベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定するステップであって、レベルマッピング操作又はレベル再マッピング操作には、現在のブロックの残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロックの残差係数の第2の表現との間の変更が含まれる、決定するステップと;決定に基づいてレベルマッピング操作又はレベル再マッピング操作を選択的に使用してコンバートを実行するステップと;を含む。
【0006】
別の例示的な態様では、ビデオ処理の方法を開示する。この方法は、規則に基づいて、レベルマッピング操作又はレベル再マッピング操作中に予測子として使用される1つ又は複数の以前に復号化した係数を決定するステップであって、レベルマッピング操作又はレベル再マッピング操作には、残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロックの残差係数の第2の表現との間の変更が含まれ、1つ又は複数の以前に復号化した係数は、復号化順序又はスキャン順序に従って使用される、決定するステップと;1つ又は複数の以前に復号化した係数を使用して、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行するステップと;を含む。
【0007】
別の例示的な態様では、ビデオ処理の方法を開示する。この方法は、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行するステップを含み、ビットストリーム表現は、現在のブロックのビデオユニットの係数のサブセットの絶対値がMより大きいことを示すために構文要素をビットストリームに含めることを定めるフォーマット規則に準拠し、Mは整数である。
【0008】
別の例示的な態様では、ビデオ処理の方法を開示する。この方法は、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算の有効化に関連する条件が満たされるかどうかを判定するステップと;判定に基づいてレベル再計算は選択的に使用されるコンバートを実行するステップであって、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる、実行するステップと;を含む。
【0009】
別の例示的な態様では、ビデオ処理の別の方法を開示する。この方法は、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算を実行するための条件が満たされるかどうかを判定するステップであって、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる、判定するステップと;規則に基づいて、レベル再計算中に予測子として使用される1つ又は複数の復号化した係数を決定するステップと;1つ又は複数の復号化した係数を使用してコンバートを実行するステップと;を含む。
【0010】
別の例示的な態様では、ビデオ処理の別の方法を開示する。この方法は、ビデオの現在のブロックとコード化した(coded)表現との間のコンバートに関して、現在のブロックに対応するビデオユニットの絶対係数のサブセットが全てMより大きいかどうかを判定するステップであって、Mは整数である、判定するステップと;判定に基づいてコンバートを実行するステップと;を含む。
【0011】
別の例示的な態様では、ビデオ処理の別の方法を開示する。この方法は、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算の有効化に関連する規則が満たされるかどうかを判定するステップであって、コンバートはブロック差分パルス符号変調(BDPCM)コーディングツールを使用する、判定するステップと;判定に基づいてレベル再計算が選択的に使用されるコンバートを実行するステップであって、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる、実行するステップと;を含む。
【0012】
別の例示的な態様では、ビデオ処理の別の方法を開示する。この方法は、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算の有効化に関連する規則が満たされるかどうかを判定するステップであって、コンバートはパレットコーディングモードに基づく、判定するステップと;判定に基づいてレベル再計算が選択的に使用されるコンバートを実行するステップであって、レベル再計算は、コンバート中にパレットインデックス又はエスケープシンボルの第1の表現と、パレットインデックス又はエスケープシンボルの第2の表現との間の変更が含まれる、実行するステップと;を含む。
【0013】
さらに別の例示的な態様では、ビデオ処理の別の方法を開示する。この方法は、現在のブロックと現在のブロックのビットストリーム表現との間のコンバートが、現在のブロックの係数に対する変換操作をスキップする変換スキップモードに基づくことを決定するステップと;係数及び規則に基づいて、コンバートのコンテキストモデルを決定するステップと;変換スキップモードを使用して及びコンテキストモデルに基づいてコンバートを実行するステップと;を含む。
【0014】
さらに別の代表的な態様では、上記の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ可読プログラム媒体に格納される。
【0015】
さらに別の代表的な態様では、上記の方法を実行するように構成又は動作可能な装置を開示する。装置は、この方法を実施するようにプログラムされたプロセッサを含み得る。
【0016】
さらに別の代表的な態様では、ビデオデコーダ機器は、本明細書に記載の方法を実施することができる。
【0017】
開示する技術の上記及び他の態様及び特徴は、図面、説明、及び特許請求の範囲でより詳細に説明する。
【図面の簡単な説明】
【0018】
図1】例示的なビデオエンコーダ実施態様のブロック図である。
図2】JME(Joint Exploration Model)の2次変換の例を示す図である。
図3】例示的又は縮小した2次変換(RST)を示す図である。
図4】順方向及び逆方向の縮小変換の例を示す図である。
図5】16×48マトリックスを用いた順方向RST8×8プロセスの例を示す図である。
図6】サブブロック変換モードSBT-V及びSBT-Hの図である。
図7】対角の直立スキャン順序(例えば、CGとしての4×4)を示す図である。
図8】8×8ブロック(CGサイズ:4×4)の例の対角の直立スキャンを示す図である。
図9】確率モデルを選択するために使用されるテンプレートの図である。
図10】従属量子化の提案するアプローチで使用される2つのスカラー量子化器の図である。
図11】提案する従属量子化のための状態遷移及び量子化器選択の例を示す図である。
図12】現在の係数値X、隣接する左の係数値X、及び隣接する上(above)の係数値Xの例を示す図である。
図13】パレットモードでコード化したブロックの例を示す図である。
図14】パレットエントリを通知するためのパレット予測子の使用を示す図である。
図15】水平方向及び垂直方向トラバース・スキャンの例を示す図である。
図16】パレットインデックスのコーディング例を示す図である。
図17】ビデオ処理のためのハードウェアプラットフォームの例示的な実施態様のブロック図である。
図18】ビデオ処理の例示的な方法のフローチャートである。
図19】ビデオデコーダの例を示すブロック図である。
図20】本明細書に開示する様々な技術を実施することができる例示的なビデオ処理システムを示すブロック図である。
図21】本開示の技術を利用することができる例示的なビデオコーディングシステムを示すブロック図である。
図22】ビデオエンコーダの例を示すブロック図である。
図23】ビデオ処理の例示的な方法のフローチャートである。
図24】ビデオ処理の例示的な方法のフローチャートである。
図25】ビデオ処理の例示的な方法のフローチャートである。
【発明を実施するための形態】
【0019】
開示する技術の実施形態は、既存のビデオコーディング規格(例えば、HEVC、H.265)及び圧縮性能を向上させる将来の規格に適用することができる。段落の見出しは、説明の読み易さを高めるために本文書で使用しており、議論又は実施形態(及び/又は実施態様)をそれぞれの段落のみに限定するものではない。
【0020】
1.概要
この文書は、画像/ビデオコーディング技術に関連している。具体的には、画像/ビデオコーディングの残差コーディングに関連している。その技術は、HEVCのような既存のビデオコーディング規格、又は最終化される規格(多用途ビデオコーディング)に適用することができる。また、その技術は、将来のビデオコーディング規格又はビデオコーデックにも適用することができる。
【0021】
2.最初の議論
ビデオコーディング規格は、主に、よく知られているITU-T及びISO/IEC規格の開発を通じて進化してきた。ITU-TはH.261及びH.263を作成し、ISO/IECはMPEG-1及びMPEG-4Visualを作成し、2つの組織は共同でH.262/MPEG-2ビデオ及びH.264/MPEG-4AVC(Advanced Video Coding)及びH.265/HEVC規格を作成した。H.262以降、ビデオコーディング規格は、時間予測及び変換コーディングが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを超えた将来のビデオコーディング技術を探求するために、2015年にVCEG及びMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)という名前のリファレンスソフトウェアに組み込まれている。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の合同ビデオエキスパートチーム(JVET)が設立され、HEVCと比較して50%のビットレート削減を目標としたVVC規格に取り組んでいる。
【0022】
VVCドラフトの最新バージョン、すなわち、多用途ビデオコーディング(委員会ドラフト)は、以下で見つけることができる:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip
【0023】
VTMと名付けられたVVCの最新の参照ソフトウェアは、以下で見つけることができる:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0
【0024】
2.1. 典型的なビデオコーデックのコーディングフロー
図1は、VVCのエンコーダブロック図の例を示しており、これには、デブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)、及びALFの3つのインループ(in-loop)フィルタリングブロックが含まれている。予め規定したフィルタを使用するDFとは異なり、SAO及びALFは、現在のピクチャの元のサンプルを利用し、オフセットを追加し、有限インパルス応答(FIR)フィルタを適用することにより、元のサンプルと再構成したサンプルとの間の平均二乗誤差を減らし、コード化した(coded)サイド情報が、オフセット及びフィルタ係数を通知する。ALFは、各ピクチャの最後の処理段階にあり、以前の段階で作成したアーティファクトをキャッチして修正しようとするツールと見なすことができる。
【0025】
2.2. VVCでの変換コーディング
2.2.1. VVCのマルチ変換セット(MTS)
2.2.1.1 明示的なマルチ変換セット(MTS)
VTM4では、最大64×64のサイズの大きなブロックサイズの変換が有効になり、これは主に、高解像度ビデオ、例えば1080p及び4Kシーケンスに役立つ。サイズ(幅又は高さ、又は幅と高さとの両方)が64に等しい変換ブロックでは、高周波数の変換係数がゼロにされるため、低周波数の係数のみが保持される。例えば、Mがブロック幅でありNがブロック高さであるM×N変換ブロックについて、Mが64に等しい場合に、変換係数の左の32列のみが維持される。同様に、Nが64に等しい場合に、変換係数の上の32行のみが維持される。変換スキップモードを大きなブロックに使用するときに、値をゼロにすることなくブロック全体が使用される。
【0026】
HEVCで採用されているDCT-IIに加えて、マルチ変換選択(MTS)スキームが、インターコード化したブロックとイントラコード化したブロックとの両方の残差コーディングに使用される。そのMTSスキームは、DCT8/DST7から選択した複数の変換を使用する。新しく導入する変換行列は、DST-VII及びDCT-VIIIである。以下の表1は、選択したDST/DCTの基底関数を示している。
【表1】
【0027】
変換行列の直交性を維持するために、変換行列は、HEVCの変換行列よりも正確に量子化される。変換した係数の中間値を16ビットの範囲内に保つために、水平変換後及び垂直変換後に、全ての係数は、10ビットである必要がある。
【0028】
MTSスキームを制御するために、個別の有効化フラグが、SPSレベルでイントラ及びインターにそれぞれ指定される。MTSがSPSで有効になっている場合に、MTSが適用されるか否かを示すためにCUレベルフラグが通知される。ここでは、MTSはルマ(luma:輝度)にのみ適用される。MTS CUレベルフラグは、次の条件が満たされた場合に通知される。
- 幅と高さとの両方が32以下
- CBFフラグが1に等しい
【0029】
MTS CUフラグがゼロに等しい場合に、次に、DCT2が両方向に適用される。しかしながら、MTS CUフラグが1に等しい場合に、次に、水平方向及び垂直方向それぞれの変換タイプを示すために、他の2つのフラグが追加で通知される。変換及びシグナリングのマッピングテーブルが表2に示される。変換行列の精度に関して、8ビットの1次変換コアが使用される。従って、4ポイントDCT2及びDST-7,8ポイント、16ポイント及び32ポイントDCT2を含む、HEVCで使用される全ての変換コアは同じままになる。また、64ポイントDCT2、4ポイントDCT-8、8ポイント、16ポイント、32ポイントDST-7及びDCT-8を含む他の変換コアは、8ビットの1次変換コアを使用する。
【表2】
【0030】
大きなサイズのDST-7及びDCT-8の複雑さを軽減するために、サイズ(幅又は高さ、又は幅と高さとの両方)が32に等しいDST-7及びDCT-8ブロックでは、高周波数の変換係数はゼロにされる。16×16の低周波数領域内の係数のみが保持される。
【0031】
異なる変換が適用される場合に加えて、VVCは、HEVCのTSの概念に似た変換スキップ(TS)と呼ばれるモードもサポートする。TSはMTSの特殊なケースとして扱われる。
【0032】
2.2.2. JVET-N0193で提案される縮小2次変換(RST)
2.2.2.1. JEMの分離不可能な2次変換(NSST)
JEMでは、2次変換が、順方向1次変換と量子化との間に(エンコーダで)、及び逆量子化と逆1次変換との間に(デコーダ側で)適用される。図2に示されるように、4×4(又は8×8)の2次変換は、ブロックサイズに応じて実行される。例えば、4×4の2次変換は小さなブロック(つまり、min(最小)(幅,高さ)<8)に適用され、8×8の2次変換は8×8ブロック毎に大きなブロック(つまり、min(幅,高さ)>4)に適用される。
【0033】
分離不可能な変換の適用は、例として入力を使用して次のように説明される。分離不可能な変換を適用するには、4×4入力ブロックX
【数1】
は、最初にベクトルXとして表される。
【数2】
【0034】
分離不可能な変換は、F=T・Xとして計算され、ここで、Fは変換係数ベクトルを示し、Tは16×16変換行列である。その後、16×1係数ベクトルFは、そのブロックのスキャン順序(水平、垂直、又は対角)を使用して4×4ブロックとして再編成される。インデックスが小さい係数は、小さいスキャンインデックスを用いて4×4係数ブロックに配置される。合計35個の変換セットがあり、変換セット毎に3つの分離不可能な変換行列(カーネル)が使用される。イントラ予測モードから変換セットへのマッピングは予め規定される。変換セット毎に、選択した分離不可能な2次変換(NSST)候補は、明示的に通知される2次変換インデックスによってさらに指定される。インデックスは、変換係数の後にイントラCU毎に1回ビットストリームで通知される。
【0035】
2.2.2.2. JVET-N0193の縮小2次変換(RST)
RST(別名LFNST(Low Frequency Non-Separable Transform))はJVET-K0099で導入され、4つの変換セット(35個の変換セットではなく)マッピングがJVET-L0133で導入された。このJVET-N0193では、16×64(さらに16×48に縮小)及び16×16マトリックスが採用されている。表記上の便宜のために、16×64(16×48に縮小)変換はRST8×8として示され、16×16変換はRST4×4として示される。図3は、RSTの例を示している。
【0036】
2.2.2.2.1. RST計算
縮小変換(RT)の主な考え方は、N次元ベクトルを異なる空間のR次元ベクトルにマッピングすることであり、ここで、R/N(R<N)は縮小係数である。
【0037】
RT行列は次のようなR×N行列である。
【数3】
【0038】
ここで、変換のR行はN次元空間のR基底である。RTの逆変換行列は、その順変換の転置である。順方向及び逆方向のRTが図4に示されている。
【0039】
この寄与では、縮小係数4(1/4サイズ)のRST8×8が適用される。このため、従来の8×8の分離不可能な変換行列サイズである64×64の代わりに、16×64の直接(direct)行列が使用される。換言すると、64×16の反転(invert)RST行列は、デコーダ側で使用され、8×8の左上の領域にコア(1次)変換係数を生成する。順方向RST8×8は、16×64(又は8×8ブロックの場合は8×64)行列を使用するため、所与の8×8領域内の左上の4×4領域にのみ非ゼロ係数を生成する。換言すると、RSTが適用される場合に、次に、左上の4×4領域を除く8×8領域の係数はゼロのみになる。RST4×4の場合に、16×16(又は4×4ブロックの場合は8×16)の直接行列乗算が適用される。
【0040】
反転RSTは、次の2つの条件が満たされた場合に条件付きで適用される。
- ブロックサイズが所与のしきい値以上(W>=4&&H>=4)
- 変換スキップモードフラグがゼロに等しい
【0041】
変換係数ブロックの幅(W)と高さ(H)との両方が4より大きい場合に、次に、RST8×8は変換係数ブロックの左上の8×8領域に適用される。それ以外の場合に、RST4×4は、変換係数ブロックの左上のmin(8,W)×min(8,H)領域に適用される。
【0042】
RSTインデックスが0に等しい場合に、RSTは適用されない。それ以外の場合に、RSTが適用され、そのカーネルはRSTインデックスを用いて選択される。RSTの選択方法及びRSTインデックスのコーディングについては後で説明する。
【0043】
さらに、RSTは、イントラスライスとインタースライスとの両方のイントラCU、及びルマとクロマ(chroma:色差)との両方に適用される。デュアル(dual)ツリーが有効になっている場合に、ルマとクロマのRSTインデックスは別々に通知される。インタースライスの(デュアルツリーが無効になっている)場合に、単一のRSTインデックスが、通知され、ルマとクロマとの両方に使用される。
【0044】
2.2.2.2.2. RSTの制限
ISPモードが選択されると、RSTが無効にされ、RSTが全ての実行可能なパーティションブロックに適用されたとしても性能の改善が僅かであったため、RSTインデックスは通知されない。さらに、ISPで予測された残差に対してRSTを無効にすると、符号化の複雑さが軽減される可能性がある。
【0045】
2.2.2.2.3. RST選択
RST行列は、4つの変換セットから選択され、各変換セットは、2つの変換から構成される。どの変換セットが適用されるかは、イントラ予測モードから次のように決定される。
1)3つのCCLMモードのいずれかが示されている場合に、変換セット0が選択される。
2)それ以外の場合に、変換セットの選択は表3に従って実行される。
【表3】
【0046】
イントラ予測モード(IntraPredMode)として示される、テーブルにアクセスするためのインデックスは、広角イントラ予測に使用される変換したモードインデックスである[-14,83]の範囲を有する。
【0047】
2.2.2.2.4. 縮小した寸法のRST行列
更なる単純化として、同じ変換セット構成で16×64の代わりに16×48行列が適用され、各行列は、右下4×4ブロックを除く左上8×8ブロック内の3つの4×4ブロックから48個の入力データを取得する(図5)。
【0048】
図5は、16×48マトリックスを用いた順方向RST8×8プロセスの例を示している。
【0049】
2.2.3. サブブロック変換
cu_cbfが1に等しいインター予測CUの場合に、残差ブロック全体又は残差ブロックの一部が復号化されているかどうかを示すために、cu_sbt_flagが通知され得る。前者の場合に、インターMTS情報はさらに解析され、CUの変換タイプが決定される。後者の場合(つまり、SBTが有効になっている場合)に、残差ブロックの一部は推定適応変換でコード化され、残差ブロックの他の部分はゼロになる。SBTは、インター-イントラモードと三角予測モードとの組合せには適用されない。
【0050】
サブブロック変換では、位置依存変換は、SBT-V及びSBT-H(常にDCT-2を使用するクロマTB)のルマ変換ブロックに適用される。SBT-H及びSBT-Vの2つの位置は、異なるコア変換に関連付けられる。より具体的には、各SBT位置の水平変換及び垂直変換が図6に指定される。例えば、SBT-V位置0の水平変換及び垂直変換は、それぞれDCT-8及びDST-7である。残差TUの片側が32より大きい場合に、対応する変換はDCT-2として設定される。従って、サブブロック変換は、残差ブロックのTUタイリング、cbf、並びに水平変換及び垂直変換を共同で指定し、これは、ブロックの主要な残差がブロックの片側にある場合の構文ショートカットと見なされ得る。
【0051】
図6は、サブブロック変換モードSBT-V及びSBT-Hの図である。
【0052】
2.2.4. 量子化残差ドメインブロック差分パルス符号変調符号化(QR-BDPCM)
量子化残差ドメインBDPCM(以下、QR-BDPCMと表記)と呼ばれる、HEVCにおけるBDPCMの分散が、VVCで使用される。BDPCMとは異なり、イントラ予測は、イントラ予測と同様に、予測方向(水平又は垂直予測)でサンプルをコピーすることにより、ブロック全体で行われる。残差は量子化され、量子化した残差とその予測子(水平又は垂直)の量子化値との間のデルタがコード化される。
【0053】
サイズM(幅)×N(高さ)のブロックの場合に、ri,j、0<=i<=M-1、0<=j<=N-1を、上(above)又は左のブロック境界サンプルからのフィルタリングしていないサンプルを使用して、イントラ予測を水平方向に(予測ブロックを横切る左の隣接ピクセル値を1行ずつコピーする)又は垂直方向に(予測ブロックの各行に上部(top)の隣接行をコピーする)実行した後の予測残差とする。Q(ri,j)、0<=i<=M-1、0<=j<=N-1が残差ri,jの量子化バージョンを表すとする。ここで、残差は元のブロック値と予測ブロック値との間の差である。次に、ブロックDPCMが量子化した残差サンプルに適用され、要素r i,jを有する修正したM×NアレイRが生成される。垂直BDPCMが通知される場合に:
【数4】
【0054】
水平予測の場合に、同様の規則が適用され、残りの量子化したサンプルは次のように取得される。
【数5】
【0055】
残りの量子化したサンプルr i,jはデコーダに送信される。
【0056】
デコーダ側では、上記の計算が逆になり、Q(ri,j)、0<=i<=M-1、0<=j<=N-1が生成される。垂直予測の場合に、
【数6】
【0057】
水平の場合に、
【数7】
【0058】
逆量子化した残差Q-1(Q(ri,j))がイントラブロック予測値に追加され、再構成したサンプル値が生成される。
【0059】
QR-BDPCMでは常に変換スキップが使用される。
【0060】
2.3. 係数のエントロピーコーディング
2.3.1. 変換を適用したブロックの係数コーディング
HEVCでは、コーディングブロックの変換係数は、重複しない係数グループ(CG、又はサブブロック)を使用してコード化され、各CGにはコーディングブロックの4×4ブロックの係数が含まれる。コーディングブロック内のCG、及びCG内の変換係数は、予め規定したスキャン順序に従ってコード化される。
【0061】
コーディングブロック内のCG、及びCG内の変換係数は、予め規定したスキャン順序に従ってコード化される。CGとCG内の係数とは両方とも、対角の直立(diagonal up-right)スキャン順序に従う。4×4ブロック及び8×8スキャン順序の例が図7及び図8にそれぞれ示されている。
【0062】
図7は、対角の直立スキャン順序を示している(例えば、CGとしての4×4)。
【0063】
図8は、8×8ブロック(CGサイズ:4×4)の例の対角の直立スキャンを示している。
【0064】
コーディング順序は逆のスキャン順序(すなわち、図8のCG3からCG0への復号化)であり、1つのブロックを復号化するときに、最後の非ゼロ係数の座標が最初に復号化されることに留意されたい。
【0065】
少なくとも1つの非ゼロ変換係数を含むCGの変換係数レベルのコーディングは、マルチスキャンパスに分離され得る。VVC3では、CG毎に、通常のコード化したビン及びバイパスコード化したビンがコーディング順に分離される。最初に、サブブロックの全ての通常のコード化したビンが送信され、その後、バイパスコード化したビンが送信される。サブブロックの変換係数レベルは、スキャン位置を5回通過するときに次のようにコード化される。
パス1:重要(有意)性のコーディング(sig_flag)、1より大きいフラグ(greater 1 flag)(gt1_flag)、パリティ(par_level_flag)、2より大きいフラグ(greater 2 flag)(gt2_flag)がコーディング順に処理される。sig_flagが1に等しい場合に、最初に(絶対レベルが1より大きいかどうかを指定する)gt1_flagがコード化される。gt1_flagが1に等しい場合に、par_flagが追加でコード化される(それは、絶対レベルから2を引いたパリティを指定する)。
パス2:残りの絶対レベル(剰余)のコーディングは、gt2_flagが1に等しい又はgt1_flagが1に等しい全てのスキャン位置で処理される。非2値化構文要素は、Golomb-Riceコードで2値化され、結果として得られるビンは、算術コーディングエンジンのバイパスモードでコード化される。
パス3:第1のパスでsig_flagがコード化されていない(通常のコード化したビンの制限に達したため)係数の絶対レベル(absLevel)は、Golomb-Riceコードを使用して算術コーディングエンジンのバイパスモードで完全にコード化される。
パス4:sig_coeff_flagが1に等しい全てのスキャン位置の符号(sign_flag)のコーディング。
【0066】
4×4サブブロックでは、32個以下の通常コード化したビン(sig_flag、par_flag、gt1_flag、及びgt2_flag)が符号化又は復号化されることが保証されている。2×2クロマ・サブブロックの場合に、通常のコード化されるビンの数は8に制限される。
【0067】
非2値化構文要素の残り(パス3内)をコーディングするためのRiceパラメータ(ricePar)は、HEVCと同様に導出される。各サブブロックの開始時に、riceParは0に等しく設定される。構文要素の残りをコーディングした後に、Riceパラメータは予め規定した式に従って修正される。非2値化構文要素absLevel(パス4)をコーディングするために、ローカルテンプレートの絶対値sumAbsの合計が決定される。変数ricePar及びposZeroは、テーブル・ルックアップによる依存量子化及びsumAbsに基づいて決定される。中間変数codeValueは次のように導出される。
- absLevel[k]が0に等しい場合に、codeValueは、posZeroに等しく設定される。
- それ以外の場合に、absLevel[k]がposZero以下である場合に、codeValueは、absLevel[k]-1に等しく設定される。
- それ以外の場合(absLevel[k]がposZeroより大きい場合)に、codeValueは、absLevel[k]に等しく設定される。
codeValueの値は、RiceパラメータriceParを含むGolomb-Riceコードを使用してコード化される。
【0068】
2.3.1.1. 係数コーディングのためのコンテキストモデリング
変換係数レベルの絶対値に関連する構文要素の確率モデルの選択は、ローカルネイバー(local neighborhood)における絶対レベル又は部分的に再構成した絶対レベルの値に依存する。使用されるテンプレートが図9に示されている。
【0069】
図9は、確率モデルを選択するために使用されるテンプレートの図である。黒い四角は現在のスキャン位置を示し、パターンで示されている四角は使用されるローカルネイバーを表す。
【0070】
選択した確率モデルは、ローカルネイバーの絶対レベル(又は部分的に再構成した絶対レベル)と、ローカルネイバーの0より大きい絶対レベルの数(1に等しいsig_coeff_flagsの数によって与えられる)の合計とに依存する。コンテキストモデリング及び2値化処理は、ローカルネイバーに対する次の対策に依存する。
・numSig:ローカルネイバーの非ゼロのレベルの数;
・sumAbs1:ローカルネイバーの第1のパス後に部分的に再構成した絶対レベル(absLevel1)の合計;
・sumAbs:ローカルネイバーの再構成した絶対レベルの合計;
・対角位置(d):変換ブロック内の現在のスキャン位置の水平座標と垂直座標との合計。
【0071】
numSig、sumAbs1、及びdの値に基づいて、sig_flag、par_flag、gt1_flag、及びgt2_flagをコーディングするための確率モデルが選択される。abs_remainderを2値化するためのRiceパラメータは、sumAbs及びnumSigの値に基づいて選択される。
【0072】
2.3.1.2. 依存量子化(Dependent Quantization:DQ)
さらに、同じHEVCスカラー量子化が、依存スケール量子化と呼ばれる新しい概念で使用される。依存スカラー量子化とは、変換係数の許容可能な再構成値のセットが、再構成順序で現在の変換係数レベルに先行する変換係数レベルの値に依存するアプローチを指す。このアプローチの主な効果は、HEVCで使用される従来の独立したスカラー量子化と比較して、許容可能な再構成ベクトルがN次元ベクトル空間に密にパックされることである(Nは変換ブロック内の変換係数の数を表す)。つまり、N次元単位ボリュームあたりの許容可能な再構成ベクトルの所与の平均数に対して、入力ベクトルと最も近い再構成ベクトルとの間の平均歪みが減少する。依存スカラー量子化のアプローチは、(a)異なる再構成レベルで2つのスカラー量子化器を規定し、(b)2つのスカラー量子化器の間を切り替えるプロセスを規定することによって実現される。
【0073】
図10は、従属量子化の提案するアプローチで使用される2つのスカラー量子化器の図解である。
【0074】
使用される2つのスカラー量子化器は、Q0及びQ1によって示され、図10に示されている。利用可能な再構成レベルの位置は、量子化ステップサイズΔによって一意に指定される。使用されるスカラー量子化器(Q0又はQ1)は、ビットストリームで明示的に通知されない。代わりに、現在の変換係数に使用される量子化器は、コーディング/再構成の順序で現在の変換係数に先行する変換係数レベルのパリティによって決定される。
【0075】
図11は、提案する従属量子化のための状態遷移及び量子化器選択の例を示している。
【0076】
図11に示されるように、2つのスカラー量子化器(Q0及びQ1)間の切り替えは、4つの状態を含む状態マシンを介して実現される。状態は、0、1、2、3の4つの異なる値を取ることができる。これは、コーディング/再構成の順序で現在の変換係数に先行する変換係数レベルのパリティによって一意に決定される。変換ブロックの逆量子化の開始時に、状態は0に設定される。変換係数はスキャン順序で(つまり、エントロピー復号化されるのと同じ順序で)再構成される。現在の変換係数が再構成された後に、状態は図11に示されるように更新され、ここで、kは変換係数レベルの値を示す。
【0077】
2.3.2. TSコード化ブロック及びQR-BDPCMコード化ブロックの係数コーディング
QR-BDPCMは、TSコード化ブロックのコンテキストモデリング方法に従う。
【0078】
2.3.2.1. レベルマッピング及び再マッピング
RDPCMが現在のコーディングユニットに適用されない場合に、絶対係数レベル、absCoeffLevelは、以下の方法によってコード化される修正されるレベルにマッピングされ、これは、現在の残差サンプルの左及び上(above)の量子化した残差サンプルの値に依存する。Xが現在の係数の左側の絶対係数レベルを示し、Xが上の係数の絶対係数レベルを示すものとする。絶対係数レベルabsCoeffで係数を表すために、マッピングされたabsCoeffModがコード化され、これは次のように導出される。
・エンコーダ側でのレベルマッピング、absCoeffは量子化した絶対係数であり、absCoeffModはビットストリームで送信される量子化した絶対係数である。
【数8】
・デコード側でのレベルの再マッピング、absCoeffModはビットストリームからの復号値であり、absCoeffは逆量子化プロセスで使用される絶対係数である。
【数9】
【0079】
さらに、VTM5.0におけるabs_level_gt1_flagのコンテキスト導出は、上(above)の隣接係数及び左の隣接係数(図12のX及びX)の情報を利用する以下の方法に置き換えられる。RDPCMが現在のコーディングユニットに適用されない場合に、XとXとの両方がゼロである場合にコンテキストオフセット0が使用され、2つの隣接する係数の一方のみが非ゼロである場合にコンテキストオフセット1が使用され、XとXとの両方が非ゼロである場合にコンテキストオフセット2が使用される。RDPCMが現在のコーディングユニットに適用される場合に、コンテキストオフセット3が使用される。
【0080】
2.3.2.2. 符号コンテキストモデリング
VTM5.0における符号コーディングコンテキスト導出は、上(above)の隣接係数及び左の隣接係数の符号(sign)情報を利用して符号コーディングコンテキストオフセットを導出する以下の方法に置き換えられる。
【0081】
図12は、現在の係数値X、隣接する左の係数値X、及び隣接する上(above)の係数値Xの例を示している。
【0082】
図12に示されるように、Xは左の隣接係数値であり、Xは上(above)の隣接係数値である。RDPCMが現在のコーディングユニットに適用されない場合に:XとXとの両方がゼロ又は非ゼロであるが符号が反対である場合に、コンテキストオフセット0が使用され、XとXとの両方が非負である場合に、コンテキストオフセット1が使用され、それ以外の場合にコンテキストオフセット2が使用される。RDPCMが現在のコーディングユニットに適用される場合に:XとXとの両方がゼロ又は非ゼロであるが符号が反対である場合に、コンテキストオフセット3が使用され、XとXとの両方が非負である場合に、コンテキストオフセット4が使用され、それ以外の場合に、コンテキストオフセット5が使用される。これは以下の表によって要約することができる。
【表4】
【0083】
2.3.2.3. コーディングパス
TS残差をコーディングする修正した変換係数レベル。非ゼロの係数が含まれている場合に、各CGをコード化するためにマルチパスが適用される。
・1回目のパス:必要に応じて、0より大きいフラグ(sig_coeff_flag)、符号フラグ(coeff_sign_flag)、1より大きいフラグ(abs_level_gtx_flag[0])、及びパリティフラグ(par_level_flag)をコード化する。
・2回目~5回目のパス:
〇j番目のパスでは、(2*j)より大きなフラグ(abs_level_gtx_flag[j-1])をコード化する
・6回目のパス:係数の大きさ(magnitude)の残りの部分(abs_remainder)をコード化する。
【0084】
2.3.2.4. 非TS残差コーディングと比較した変更の要約
通常の残差コーディングの場合と比較して、TSの残差コーディングには、以下の変更が含まれる。
1)最後のx/y位置のシグナリングなし、
2)以前の全てのフラグが0に等しい場合に、最後のサブブロックを除く全てのサブブロックに対してコード化したcoded_sub_block_flag、
3)縮小したテンプレートを用いたsig_coeff_flagコンテキストモデリング、
4)abs_level_gtX_flag[0]及びpar_level_flagの単一コンテキストモデル、
5)符号フラグ、5、7、9より大きい追加フラグのコンテキストモデリング、
6)残りの2値化処理のための修正したRiceパラメータの導出、
7)サンプル毎のコンテキストコード化したビンの数、1つのブロック内のサンプル毎に2つのビンの制限。
【0085】
2.3.2.5. 構文及びセマンティクス
7.3.8.10 変換単位の構文
【表5】
7.3.8.11 残差コーディング構文
【表6】
コンテキストコード化したビンの数は、各CGのサンプル毎に2ビン以下に制限される。
【表7】
【0086】
2.4. HEVC画面コンテンツコーディング拡張機能(HEVC-SCC)のパレットモード
2.4.1. パレットモードの概念
パレットモードの背後にある基本的な考え方は、CU内のピクセルが、代表的な色値の小さなセットによって表されるということである。このセットはパレットと呼ばれる。また、エスケープシンボルに続いて(場合によっては量子化した)成分値を通知することにより、パレットの外側にあるサンプルを示すこともできる。この種のピクセルはエスケープピクセルと呼ばれる。パレットモードが図13に示されている。図13に示されるように、3つの色成分(ルマ及び2つのクロマ成分)を有する各ピクセルについて、パレットへのインデックスが作成され、パレット内の作成された値に基づいてブロックを再構成することができる。図13において、「x」と記されたブロックは、入力ブロックのそれらの領域がパレット値0と1との間のサンプル値を有することを示し、「y」と記されたブロックは、入力ブロックのその領域がパレット値3と4との間にサンプル値を有することを示す。
【0087】
図13は、パレットモードでコード化したブロックの例を示している。
【0088】
2.4.2. パレットエントリのコーディング
パレットエントリのコーディングのために、パレット予測子が維持される。パレットの最大サイズ及びパレット予測子は、SPSで通知される。HEVC-SCCでは、paltte_predictor_initializer_present_flagがPPSに導入される。このフラグが1である場合に、パレット予測子を初期化するためのエントリがビットストリームで通知される。パレット予測子は、各CTU行、各スライス、及び各タイルの先頭で初期化される。パレット予測子は、paltte_predictor_initializer_present_flagの値に応じて、0にリセットされるか、又はPPSで通知されるパレット予測子の初期化エントリを使用して初期化される。HEVC-SCCでは、サイズ0のパレット予測子の初期化子が有効になり、PPSレベルでパレット予測子の初期化を明示的に無効にできるようになった。
【0089】
パレット予測子の各エントリについて、それ(エントリ)が現在のパレットの一部であるかどうかを示すために再利用フラグが通知される。これは図14に示されている。再利用フラグは、ゼロのランレングス(run-length)コーディングを使用して送信される。この後に、新しいパレットエントリの数は、次数0の指数Golomb(EG)コード、つまりEG-0を使用して通知される。最後に、新しいパレットエントリの成分値が通知される。
【0090】
図14は、パレットエントリを通知するためのパレット予測子の使用を示している。
【0091】
2.4.3. パレットインデックスのコーディング
パレットインデックスは、図15に示されるように、水平方向及び垂直方向トラバース・スキャンを使用してコード化される。スキャン順序は、palette_transpose_flagを使用してビットストリームで明示的に通知される。サブセクションの残りの部分では、スキャンが水平であると想定される。
【0092】
図15は、水平方向及び垂直方向トラバース・スキャンの例を示している。
【0093】
パレットインデックスは、2つのパレットサンプルモード:‘COPY_LEFT’及び‘COPY_ABOVE’を使用してコード化される。‘COPY_LEFT’モードでは、パレットインデックスは復号化したインデックスに割り当てられる。‘COPY_ABOVE’モードでは、上(above)の行のサンプルのパレットインデックスがコピーされる。‘COPY_LEFT’モードと‘COPY_ABOVE’モードとの両方で、同じモードを使用してコード化される後続のサンプルの数を指定する実行値が通知される。
【0094】
パレットモードでは、エスケープサンプルのインデックスの値はパレットエントリの数である。また、エスケープシンボルが‘COPY_LEFT’又は‘COPY_ABOVE’モードでの実行の一部である場合に、エスケープの成分値はエスケープシンボル毎に通知される。パレットインデックスのコーディングが図16に示されている。
【0095】
この構文順序は、以下のように達成される。最初に、CUのインデックス値の数が通知される。これに続いて、切り捨てられた2値化コーディングを使用してCU全体の実際のインデックス値が通知される。インデックスの数とインデックス値との両方がバイパスモードでコード化される。これにより、インデックス関連のバイパスビンがグループ化される。次に、パレットサンプルモード(必要な場合)及び実行がインターリーブ方法で通知される。最後に、CU全体のエスケープサンプルに対応するエスケープ成分値が一緒にグループ化され、バイパスモードでコード化される。エスケープサンプルの2値化処理は、3次のEGコーディング、つまりEG-3である。
【0096】
インデックス値を通知した後に、追加の構文要素、last_run_type_flagが通知される。この構文要素は、インデックスの数と組み合わせて、ブロック内の最後の実行に対応する実行値を通知する必要性をなくす。
【0097】
HEVC-SCCでは、パレットモードは、4:2:2、4:2:0、及びモノクロクロマフォーマットに対しても有効にされる。パレットエントリ及びパレットインデックスのシグナリングは、全てのクロマフォーマットで略同じである。非モノクロフォーマットの場合に、各パレットエントリは3つの成分で構成される。モノクロフォーマットの場合に、各パレットエントリは単一の成分で構成される。サブサンプリングされたクロマ方向の場合、クロマサンプルは2で割り切れるルマ・サンプルインデックスに関連付けられる。CUのパレットインデックスを再構成した後に、サンプルに関連付けられる成分が1つだけの場合に、パレットエントリの最初の成分のみが使用される。シグナリングの唯一の違いは、エスケープの成分値である。エスケープサンプル毎に、通知されるエスケープ成分値の数は、そのサンプルに関連付けられる成分の数によって異なる場合がある。
【0098】
さらに、パレットインデックスコーディングにはインデックス調整プロセスがある。パレットインデックスを通知する場合に、左の隣接インデックス又は上(above)の隣接インデックスは現在のインデックスとは異なる必要がある。従って、1つの可能性を除くことにより、現在のパレットインデックスの範囲を1だけ減らすことができる。その後、インデックスは切り捨てられた2値化(TB)の2値化処理で通知される。
【0099】
この部分に関連するテキストは、以下のように示され、ここで、CurrPaletteIndexは、現在のパレットインデックスであり、adjustedRefPaletteIndexは、予測インデックスである。変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表されるアレイへのインデックスであるパレットインデックスを指定する。アレイ・インデックスxC、yCは、ピクチャの左上のルマ・サンプルに対するサンプルの位置(xC、yC)を指定する。PaletteIndexMap[xC][yC]の値は、0からMaxPaletteIndexまでの範囲(境界を含む)でなければならない。
【0100】
変数adjustedRefPaletteIndexは以下のように導出される:
【数10】
【0101】
CopyAboveIndicesFlag[xC][yC]が0に等しい場合に、変数CurrPaletteIndexは次のように導出される。
【数11】
【0102】
2.4.4. VVCのパレットモード
2.4.4.1. デュアルツリーのパレット
VVCでは、デュアルツリーコーディング構造がイントラスライスのコーディングに使用されるので、ルマ成分及び2つのクロマ成分は、異なるパレット及びパレットインデックスを有し得る。さらに、2つのクロマ成分は、同じパレット及びパレットインデックスを共有する。
【0103】
2.4.4.2. 別モードとしてのパレット
JVET-N0258及び現在のVTMでは、コーディングユニットの予測モードは、MODE_INTRA、MODE_INTER、MODE_IBC、及びMODE_PLTであり得る。それに応じて、予測モードの2値化処理が変更される。
【0104】
IBCがオフにされるときに、Iタイル上で、1つの第1のビンが、現在の予測モードがMODE_PLTであるか否かを示すために使用される。P/Bタイルでは、第1のビンは、現在の予測モードがMODE_INTRAであるか否かを示すために使用される。そうでない場合に、現在の予測モードがMODE_PLT又はMODE_INTERであることを示すために1つの追加のビンが使用される。
【0105】
IBCがオンにされるときに、Iタイル上で、第1のビンは、現在の予測モードがMODE_IBCであるか否かを示すために使用される。そうでない場合に、第2のビンは、現在の予測モードがMODE_PLTであるか又はMODE_INTRAであるかを示すために使用される。P/Bタイルでは、第1のビンは、現在の予測モードがMODE_INTRAであるか否かを示すために使用される。イントラモードの場合に、第2のビンは、現在の予測モードがMODE_PLT又はMODE_INTRAであることを示すために使用される。そうでない場合に、第2のビンは、現在の予測モードがMODE_IBC又はMODE_INTERであることを示すために使用される。
【0106】
3.実施形態によって解決される技術的課題
現在の設計には、以下の問題がある。
1.レベルマッピング/再マッピングの現在の設計では、再マッピングプロセスが常に実行されるため、復号化した係数をゼロに等しくすることはできない。
a.例えば、復号化したAbsLevelPassX[xC][yC]+abs_remainder[n]が0に等しい場合に、復号化した有意フラグが0に等しい場合でも、7.3.8.11サブ節に従って、TransCoeffLevelは-1にリセットされる。
b.一方、マッピングプロセスは、非ゼロの係数にのみ適用されるため、このようなエンコーダ制約が必要になり得る。それ以外の場合に、同じ値「1」は、係数が0に等しいか、又は予測子に等しい等、様々な方法で解釈される場合がある。
2.符号フラグ/1より大きいフラグのコンテキストモデリングは、2つの空間ネイバー(neighbor)に依存する。しかしながら、異なるコーディングブロックの場合に、空間ネイバーに関する相関は、スキャン順序で現在のブロックに隣接するブロックに比べて弱い可能性がある。
3.パレットインデックスのコーディングは、上(above)のサンプル又は左のサンプルのいずれかからの情報に純粋に基づいている。上(above)のネイバーと左のネイバーとの両方の関係は十分に活用されていない。
4.我々の解析によると、様々なコンテキストでの現在の係数と隣接する係数の相関関係は次の通りである。
【表8】
見てわかるように、同じビン値は、異なるコンテキストの下で異なる確率に関連付けられ得る。関連する確率が比較的低い場合(コンテキストオフセットが2に等しい場合等)、コンテキストコード化したビンの効率も低くなる。
【0107】
4.例示的な実施形態及び技術
以下の項目のリストは、一般的な概念を説明するための例として考慮すべきである。これらの項目は、狭い意味で解釈すべきではない。さらに、これらの項目は任意の方法で組み合わせることができる。
【0108】
以下の議論において、CUは、単一のツリーコーディング構造を有する3色成分全てに関連する情報を含み得る。又は、CUは、単色コーディングでルマ色成分にのみ関連する情報を含み得る。又は、CUは、デュアルツリーコーディング構造を有するルマ色成分(例えば、YCbCrフォーマットのY成分又はGBRフォーマットのG成分)にのみ関連する情報を含み得る。又は、CUは、デュアルツリーコーディング構造を有する2つのクロマ成分(例えば、YCbCrフォーマットのCb及びCr成分又はGBRフォーマットのB及びR成分)にのみ関連付する情報を含み得る。
【0109】
以下の説明において、「ブロック」は、コーディングユニット(CU)又は変換ユニット(TU)又はコーディングブロック(CB)又は変換ブロック(TB)を指し得る。
レベルマッピング/再マッピングの有効化に関連
1.復号化した残差係数のレベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスを有効にするかどうかは、復号値が0に等しくないかどうかによって異なり得る。
a.一例では、復号値(例えば、AbsLevelPassX[xC][yC]又はsig_coeff_flag[xC][yC]又はAbsLevelPassX[xC][yC]+abs_remainder[n])が0に等しい場合に、レベルマッピング/再マッピングプロセスはスキップされる。
b.一例では、レベルマッピング/再マッピングプロセスは、復号値(例えば、AbsLevelPassX[xC][yC]又はsig_coeff_flag[xC][yC]又はAbsLevelPassX[xC][yC]+abs_remainder[n])が0に等しくないという条件下で呼び出される。
c.一例では、適合ビットストリームは、量子化値又はレベルマッピングの前にコード化される値が0に等しい場合に、コード化した有意フラグ(例えば、sig_coeff_flag)が0に等しくなければならないことを満たすものとする。
2.レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスを有効にするかどうかは、現在のブロック及び/又は隣接ブロック(近接(adjacent)又は非近接(non-adjacent)ブロック)の復号化した残差情報に依存し得る。
a.一例では、レベル再マッピングを適用するかどうかは、現在のブロックが非BDPCM TSモードでコード化されているという条件に加えて、オンザフライ(on-the-fly)で導出される。
3.レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスを有効にするかどうかは、ビデオユニットで通知されるサイド情報に依存し得る。
a.一例では、少なくとも1つの復号値が現在のブロックを再構成するべく使用される前に再マッピングすべきかどうかを示すために、フラグが通知され得る。
b.一例では、ビデオユニットは、CTU(例えば、VPDU)/CTU/CTB/複数のCTU/複数のCU/CTU行/タイル/ブリック/スライス/ピクチャ、サブピクチャ/シーケンス/ビュー等のサブ領域である。
c.一例では、提案する方法を有効にするかどうか、及び/又は提案する方法をどの様に有効にするかは、シーケンスパラメータセット/ビューパラメータセット/適応パラメータセット/ピクチャパラメータセット/ピクチャヘッダ/スライスヘッダ/CU/PU/TU/CTU/CTB等で通知され得る。
4.レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスを有効にするかどうかは、色フォーマット/色成分に依存し得る。
a.例えば、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは、ルマ成分にのみ適用でき、クロマ成分には適用できない。
b.例えば、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは、色フォーマットが4:2:0である場合に、ルマ成分にのみ適用でき、クロマ成分には適用できない。
c.例えば、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは、色フォーマットが4:4:4である場合、又は個別の色平面(color plane:カラープレーン)コーディングが使用される場合にのみ、全ての色成分をクロメート処理することができる。
5.レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスを有効にするかどうかは、ブロックの寸法W×Hに依存し得る。
a.例えば、W*H>=T1又はW*H>T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
b.例えば、W*H<=T1又はW*H<T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
c.例えば、Min(最小)(W,H)>=T1又はMin(W,H)>T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
d.例えば、Max(最大)(W,H)<=T1又はMax(W,H)<T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
e.例えば、Min(W,H)<=T1又はMin(W,H)<T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
f.例えば、Max(W,H)>=T1又はMax(W,H)>T1の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
g.例えば、W>=T1及びH>=T2の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
h.例えば、W<=T1及びH<=T2の場合に、レベルマッピング(エンコーダ側)又はレベル再マッピング(デコーダ側)プロセスは有効にならない。
i.T1及びT2は、上記の箇条書き(bullet)の整数である。
6.2つの空間的に隣接する復号化した係数(左又は上(above))を使用してレベルマッピング/再マッピングプロセスで使用される予測子を決定する代わりに、復号化/スキャン順序に従って1つ又は複数の復号化した係数を使用することを提案する。
a.一例では、最近のK個の復号化した係数が利用される。
b.一例では、最近のM個の(M>K)復号化した係数のうちのK個の復号化した係数が利用される。
c.一例では、Kは、予め規定されるか、又は通知され得る。
d.一例では、Kは、復号化した情報に基づいてオンザフライで導出され得る。
e.一例では、Kは、既に復号化した係数の数に依存し得る。
i.例えば、S個の係数は既に復号化されている。次に、KはK=Min(S,M)として導出され、ここで、Mは2等の固定数である。
構文要素に関連
7.構文要素は、ビデオユニット内の絶対係数のサブセットが全てMより大きいかどうかを示すようにコード化することができ、ここで、Mは整数である。
a.一例では、ビデオユニットは、係数グループ(CG、例えば、4×4)/変換ブロック/変換ユニット/予測ブロック/コーディングブロックである。
b.一例では、サブセットはスキャン順序に基づいて規定される。
i.一例では、サブセットは、順方向スキャン順序に従った最初のL個の係数を含み得る。
ii.一例では、サブセットは、順方向スキャン順序に従った最後のL個の係数、又はビデオユニットの復号化順序に従った最初のL個の係数を含み得る。
c.一例では、サブセットは座標に基づいて規定される。
i.一例では、サブセットは、長方形領域内の係数を含み得る。
ii.一例では、サブセットは、正方形領域内の係数を含み得る。
d.一例では、サブセットは、コード化されるモード情報/ブロック寸法に基づいて規定される。
i.一例では、現在のブロックがQR-BDPCM又はBDPCMの他の分散(variance)でコード化され、垂直方向に予測される場合に、サブセットは最上行のサブセットとして規定される。
ii.一例では、現在のブロックがQR-BDPCM又はBDPCMの他の分散でコード化され、水平方向に予測される場合に、サブセットは左端の列のサブセットとして規定される。
e.一例では、Mは0、1、2、3、4、5に等しい。
コンテキストモデリングに関連
8.レベルマッピング/再マッピングの概念は、他の非TSコード化ブロック(例えば、BDPCMコード化ブロック)にも適用できる場合がある。
a.あるいはまた、さらに、規定した位置にある残差に対してのみ、レベルマッピング/再マッピングプロセスが適用される。
i.一例では、規定した位置は、予測方向に依存し得る。
1)一例では、垂直予測方向に関して、第1の行に位置する残差をマッピング/再マッピングすることができる。
2)一例では、水平予測方向に関して、第1の列に位置する残差をマッピング/再マッピングすることができる。
b.あるいはまた、さらに、予測的にコード化していない残差に対してのみ、レベルマッピング/再マッピングプロセスが適用される。
i.一例では、垂直予測方向に関して、第1の行に位置する残差をマッピング/再マッピングすることができる。
ii.一例では、水平予測方向に関して、第1の列に位置する残差をマッピング/再マッピングすることができる。
9.レベルマッピング/再マッピングプロセスを利用して、パレットインデックスをコード化する、又はパレットモードでシンボルコーディングをエスケープすることができる。
a.一例では、以前にコード化したパレットインデックスの最大値に基づいて、パレットインデックスは、エンコーダ側でマッピングされ、デコーダ側で再マッピングされ得る。
b.一例では、マッピング及び再マッピングプロセスは、全てのパレットコード化ブロックに対して呼び出され得る。
i.あるいはまた、それらプロセスは特定の条件下で呼び出すこともできる。
10.以前にコード化した係数/パレットインデックス等を表すパラメータaiを使用して、コンテキストモデリングプロセスで関数f(a0,a1,・・・,)を使用することを提案する。
a.一例では、関数fは、最大又は最小関数として規定することができる。
b.パラメータaiは、現在のサンプル/係数及び一部のネイバー(近接又は非近接)をカバーするテンプレート内のパラメータであり得る。
i.一例では、パレットインデックスコーディングの場合に、左及び上(above)のパレットインデックスは両方とも、インデックスをコード化するために関数fに基づいて利用され得る。
c.パラメータaiは、現在のサンプル/係数に対してスキャン/復号化順序のパラメータであり得る。
11.符号(sign)フラグ又は他の構文要素のコーディングのコンテキストモデリングに2つの空間的に隣接する復号化した係数(左又は上(above))を使用する代わりに、復号化/スキャン順序に従って1つ又は複数の復号化した係数を使用することを提案する。
a.一例では、最近のK個(例えば、K=2)の復号化した係数が利用される。
b.一例では、最近のM個(M>K)の復号化した係数のうちのK個の復号化した係数が利用される。
c.一例では、Kは、予め規定されるか、又は通知され得る。
d.一例では、Kは、復号化した情報に基づいてオンザフライで導出され得る。
e.一例では、Kは、既に復号化した係数の数に依存し得る。
i.例えば、S個の係数が既に復号化されている。次に、KはK=Min(S,M)として導出され、ここで、Mは2等の固定数である。
12.符号フラグ又は他の構文要素のコーディングのコンテキストモデリングに2つの空間的に隣接する復号化した係数(左又は上(above))を使用する代わりに、予測方向に従って1つ又は複数の復号化した係数を使用することを提案する。
a.一例では、垂直予測方向を有するBDPCMコード化ブロックの場合に、同じ列内の以前に復号化した係数を利用することができる。
b.一例では、水平予測方向を有するBDPCMコード化ブロックの場合に、同じ行内の以前に復号化した係数を利用することができる。
c.一例では、垂直予測方向を有するBDPCMコード化ブロックの場合に、同じ行内の以前に復号化した係数を利用することができる。
d.一例では、水平予測方向を有するBDPCMコード化ブロックの場合に、同じ列内の以前に復号化した係数を利用することができる。
13.同じ2値化処理(例えば、「0」は正の値を示し、「1」は負の値を示す)で符号フラグをコーディングする代わりに、隣接ブロックからの情報に基づいて、又は選択したコンテキストに基づいて等、符号値を動的に設定することを提案する(つまり、復号化したビン値は、様々なセマンティクスに解釈され得る)。
a.一例では、エンコーダ側では、符号化されるビン値は、現在の係数の符号情報が以前にコード化した係数の符号情報の大部分と同じであるかどうかに基づく。
b.一例では、選択したコンテキストがネイバーの大部分が負を表している場合に(例えば、2つのネイバーがチェックされ、2つのネイバーが両方とも負である場合、又は一方が負であり、他方がゼロに等しい場合に)、「1」に等しい復号化したビンは正の値を示し、「0」は負の値を示し得る。
i.あるいはまた、さらに、選択したコンテキストがネイバーの大部分が正を表している場合に(例えば、2つのネイバーがチェックされ、2つのネイバーが両方とも正である場合、又は一方が正であり、他方がゼロに等しい場合に)、「0」に等しい復号化したビンは正の値を示し、「1」は負の値を示し得る。
c.一例では、選択したコンテキストがネイバーの大部分が負を表している場合に(例えば、2つのネイバーがチェックされ、2つのネイバーが両方とも負である場合、又は一方が負であり、他方がゼロに等しい場合に)、「0」に等しい復号化したビンは正の値を示し、「1」は負の値を示し得る。
i.あるいはまた、さらに、選択したコンテキストがネイバーの大部分が正を表している場合に(例えば、2つのネイバーがチェックされ、2つのネイバーが両方とも正である場合、又は一方が正であり、他方がゼロに等しい場合に)、「1」に等しい復号化したビンは正の値を示し、「0」は負の値を示し得る。
一般的な使用法
14.提案する方法を有効にするかどうか、及び/又はどの箇条書きを適用するかについての指標は、ビデオユニットレベルで通知することができる。
a.一例では、ビデオユニットは、タイル/ブリック/スライス/ピクチャ/サブピクチャ/シーケンス/ビュー等であり得る。
b.一例では、提案する方法を有効にするかどうか、及び/又は提案する方法をどの様に有効にするかは、シーケンスパラメータセット/ビューパラメータセット/適応パラメータセット/ピクチャパラメータセット/ピクチャヘッダ/スライスヘッダで通知することができる。
c.一例では、提案する方法を有効にするかどうか、及び/又は提案する方法をどの様に有効にするかは、ビデオコンテンツが画面コンテンツであるかどうかを示すために使用される1つの構文要素等の他の構文要素によって制御され得る。
15.提案する方法を有効にするかどうか、及び/又は提案する方法をどの様に有効にするかは、ブロック寸法、スライスタイプ/ピクチャタイプ/時間層(temporal layer)インデックス/ビデオコンテンツ/色成分/パーティション分割ツリータイプ/コード化モード/変換情報等のコーディング情報に依存し得る。
d.一例では、幅がT1以下で高さがT2以下のブロックについて、提案する方法を適用することができる。
e.一例では、幅がT1以下で又は高さがT2以下のブロックについて、提案する方法を適用することができる。
f.一例では、幅×高さがT3以下のブロックについて、提案する方法を適用することができる。
【0110】
上記の技術を使用するいくつかの実施形態は、例示の目的で説明している。
5.実施形態
5.1.実施形態#1
この実施形態は、レベル再マッピングプロセスを有効にするかどうかが、復号値に依存するかどうかの例を示し、(例えば、AbsLevelPassX[xC][yC]又はsig_coeff_flag[xC][yC]又は(AbsLevelPassX[xC][yC]+abs_remainder[n]))は0に等しくない。
VVC WDと比較した変更は、太字の斜体のテキストで強調表示される。
7.3.8.11 残差コーディング構文
【表9】
【0111】
図17は、ビデオ処理機器1700のブロック図である。機器1700は、本明細書で説明する方法のうちの1つ又は複数を実施するために使用され得る。機器1700は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等で具体化することができる。機器1700は、1つ又は複数のプロセッサ1702、1つ又は複数のメモリ1704、及びビデオ処理ハードウェア1706を含むことができる。プロセッサ1702は、本文書で説明する1つ又は複数の方法を実施するように構成され得る。1つ又は複数のメモリ1704は、本明細書で説明する方法及び技術を実施するために使用されるデータ及びコードを格納するために使用され得る。ビデオ処理ハードウェア1706は、ハードウェア回路において、本文書で説明するいくつかの技術を実施するために使用され得る。いくつかの実施形態では、ビデオ処理ハードウェア1706は、少なくとも部分的にプロセッサ1702、例えばグラフィックスコプロセッサの内部にあり得る。
【0112】
以下の解決策は、いくつかの実施形態において好ましい解決策として実施され得る。
【0113】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目1)で説明した追加の技術と一緒に実施され得る。
【0114】
1.ビデオ処理の方法(例えば、図18に示される方法1800)は、ビデオの現在のブロックとビットストリーム表現との間のコンバート(conversion)に関して、レベル再計算の有効化に関連する条件が満たされるかどうかを判定するステップ(1802)と;判定に基づいてレベル再計算が選択的に使用されるコンバートを実行するステップ(1804)と;を含み、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる。
【0115】
2.条件は、コンバート中の残差係数の復号値に依存する、解決策1の方法。
【0116】
3.条件は、残差係数の復号値がゼロに等しくないことである、解決策2の方法。
【0117】
4.条件は、残差係数の復号値がゼロに等しいということである、解決策2の方法。
【0118】
5.条件が満たされないためにレベル再計算を無効にするステップをさらに含む、解決策4の方法。
【0119】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目2)で説明した追加の技術と一緒に実施され得る。
【0120】
6.条件は、コンバート中に使用される現在のブロックのコーディングモードに依存する、解決策1の方法。
【0121】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目3)で説明した追加の技術と一緒に実施され得る。
【0122】
7.条件は、コンバートに使用される現在のブロックに関するサイド情報(side information)に基づく、解決策1の方法。
【0123】
8.サイド情報には、レベル再計算が現在のブロックのコンバートのために有効にされることを通知する構文要素が含まれる、解決策7の方法。
【0124】
9.構文要素はビデオ領域レベルに含まれ、ビデオ領域には現在のブロックが含まれる、解決策8の方法。
【0125】
10.ビデオ領域には、ビデオの単一のコーディングツリーユニット又は複数のコーディングユニット、或いは行又はタイル又はブリック又はスライス又はピクチャ又はサブピクチャ又はシーケンス又はビューが含まれる、解決策9の方法。
【0126】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目4)で説明した追加の技術と一緒に実施され得る。
【0127】
11.条件は、現在のブロックが属するビデオの色フォーマット又は色成分にさらに依存する、解決策1~10のいずれか1つの方法。
【0128】
12.条件は、レベル再計算が、ルマブロックに対して有効にされ、クロマブロックに対して無効にされることである、解決策11の方法。
【0129】
13.条件は、レベル再計算が4:4:4フォーマットに対してのみ有効であるということである、解決策11又は12の方法。
【0130】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目5)で説明した追加の技術と一緒に実施され得る。
【0131】
14.条件は、現在のブロックの寸法に基づく、解決策1~13のいずれか1つの方法。
【0132】
15.現在のブロックの寸法には高さH及び幅Wが含まれ、条件は、現在のブロックがW*H>=T1を満たすため、レベル再計算が無効にされるということであり、T1は整数である、解決策14の方法。
【0133】
16.現在のブロックの寸法には高さH及び幅Wが含まれ、条件は、現在のブロックがW*H>=T1を満たすため、レベル再計算が有効にされるということであり、T1は整数である、解決策14の方法。
【0134】
17.現在のブロックの寸法には高さH及び幅Wが含まれ、条件は、min(W,H)>=T1のため、レベル再計算が無効にされるということであり、T1は整数である、解決策14の方法。
【0135】
18.現在のブロックの寸法には高さH及び幅Wが含まれ、条件は、min(W,H)>=T1のため、レベル再計算が有効にされるということであり、T1は整数である、解決策14の方法。
【0136】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目6)で説明した追加の技術と一緒に実施され得る。
【0137】
19.ビデオ処理の方法であって、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算を実行するための条件が満たされるかどうかを判定するステップであって、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる、判定するステップと;規則に基づいて、レベルの再計算中に予測子として使用される1つ又は複数の復号化した係数を決定するステップと;1つ又は複数の復号化した係数を使用してコンバートを実行するステップと;を含む。
【0138】
20.規則は、1つ又は複数の復号化した係数の数及び/又はアイデンティティを定める、解決策19の方法。
【0139】
21.規則は、最新のK個の復号化した係数を使用することを定め、Kは整数である、解決策20の方法。
【0140】
22.Kは、コード化した表現において構文要素を介して通知される、解決策21の方法。
【0141】
23.Kは、コード化した表現で通知されない、解決策21の方法。
【0142】
24.Kは、現在のブロックのコンバートの状態に基づいて決定可能である、解決策21の方法。
【0143】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目7)で説明した追加の技術と一緒に実施され得る。
【0144】
25.ビデオ処理の方法であって、ビデオの現在のブロックとコード化した表現との間のコンバートに関して、現在のブロックに対応するビデオユニットの絶対係数のサブセットが全てMより大きいかどうかを判定するステップであって、Mは整数である、判定するステップと;判定に基づいてコンバートを実行するステップと;を含む。
【0145】
26.ビデオユニットは、現在のブロックの係数グループである、解決策25の方法。
【0146】
27.ビデオユニットは、現在のブロックの変換ブロック又は予測ブロック又はコーディングブロックである、解決策25の方法。
【0147】
28.サブセットは、コンバートで使用される係数のスキャン順序に基づく、解決策25~27のいずれか1つの方法。
【0148】
29.サブセットは、ビデオユニットを構成するピクセルの座標に基づく、解決策25~28のいずれか1つの方法。
【0149】
30.サブセットは、現在のブロックのコード化モードに基づく、解決策25~29のいずれか1つの方法。
【0150】
31.サブセットは、現在のブロックの寸法に基づく、解決策25~30のいずれか1つの方法。
【0151】
32.Mはゼロである、解決策25~31のいずれか1つの方法。
【0152】
33.Mは1である、解決策25~31のいずれか1つの方法。
【0153】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目8)で説明した追加の技術と一緒に実施され得る。
【0154】
34.ビデオ処理の方法であって、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算の有効化に関連する規則が満たされるかどうかを判定するステップであって、コンバートは、ブロック差分パルス符号変調(BDPCM)コーディングツールを使用する、判定するステップと;判定に基づいてレベル再計算が選択的に使用されるコンバートを実行するステップであって、レベル再計算には、残差係数の第1の表現と、コンバート中に使用される現在のブロックの残差係数の第2の表現との間の変更が含まれる、実行するステップと;を含む。
【0155】
35.規則は、レベル再計算が残差ブロックの特定の位置に対してのみ実行されることを定める、解決策34の方法。
【0156】
36.規則は、現在のブロックの予測不可能にコード化された残差係数に対してのみレベル再計算を適用することを定める、解決策34の方法。
【0157】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目9)で説明した追加の技術と一緒に実施され得る。
【0158】
37.ビデオ処理の方法であって、ビデオの現在のブロックとビットストリーム表現との間のコンバートに関するレベル再計算の有効化に関連する規則が満たされるかどうかを判定するステップであって、コンバートはパレットコーディングモードに基づく、判定するステップと;判定に基づいてレベル再計算が選択的に使用されるコンバートを実行するステップであって、レベル再計算には、コンバート中にパレットインデックス又はエスケープシンボルの第1の表現とパレットインデックス又はエスケープシンボルの第2の表現との間の変更が含まれる、実行するステップと;を含む。
【0159】
38.規則は、レベル再計算が以前のブロックに対して実行されたレベル再計算に基づくことをさらに定める、解決策37の方法。
【0160】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目10)で説明した追加の技術と一緒に実施され得る。
【0161】
39.コンバートは、コンテキストモデリング関数f(a0,a1,・・・,)をさらに使用し、パラメータaiは、以前にコード化したパレットインデックスの係数を表す、解決策1~38のいずれか1つの方法。
【0162】
40.パラメータaiの順序が、現在のブロックに使用されるスキャン順序の関数である、解決策39の方法。
【0163】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目11、12)で説明した追加の技術と一緒に実施され得る。
【0164】
41.ビデオ処理の方法であって、現在のブロックと現在のブロックのビットストリーム表現との間のコンバートが、現在のブロックの係数に対する変換操作がスキップされる変換スキップモードに基づいていると判定するステップと;係数及び規則に基づいてコンバートのコンテキストモデルを決定するステップと;変換スキップモードを使用してコンテキストモデルに基づいてコンバートを実行するステップと;を含む。
【0165】
42.規則は、コンテキストモデルを決定するために係数の復号化又はスキャン順序を使用することを定める、解決策41の方法。
【0166】
43.規則は、最新のK個の係数を使用することを定める、解決策42の方法。
【0167】
44.規則は、コンテキストモデルを決定するために係数の予測方向を使用することを定める、解決策41の方法。
【0168】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目13)で説明した追加の技術と一緒に実施され得る。
【0169】
45.方法の使用は、構文要素を使用してコード化した表現で通知される、解決策1~44のいずれか1つの方法。
【0170】
46.構文要素は、シーケンスパラメータセット/ビューパラメータセット、適応パラメータセット、ピクチャパラメータセット、ピクチャヘッダ、又はスライスヘッダに含められる、解決策45の方法。
【0171】
以下の解決策は、前のセクションでリスト化した項目(例えば、項目14)で説明した追加の技術と一緒に実施され得る。
【0172】
47.方法は、コーディング条件に基づいて選択的に使用される、解決策1~46のいずれか1つの方法。
【0173】
48.コーディング条件は、コーディング情報又はブロック寸法又はスライスタイプ又はピクチャタイプ又は時間層インデックス又はビデオコンテンツ又は色成分又はパーティション分割ツリータイプ又はコード化モード又は変換情報である、解決策47の方法。
【0174】
49.コンバートは、ビデオをコード化した表現に符号化することを含む、解決策1~48のいずれか1つの方法。
【0175】
50.コンバートは、コード化した表現を復号化して、ビデオのピクセル値を生成することを含む、解決策1~48のいずれか1つの方法。
【0176】
51.解決策1~50のうちの1つ又は複数に記載される方法を実施するように構成されたプロセッサを含むビデオ復号化機器。
【0177】
52.解決策1~50のうちの1つ又は複数に記載される方法を実施するように構成されたプロセッサを含むビデオ符号化機器。
【0178】
53.コンピュータコードを格納したコンピュータプログラム製品であって、コードがプロセッサによって実行されると、プロセッサに、解決策1~50のいずれかに記載される方法を実施させる、コンピュータプログラム製品。
【0179】
54.本文書で説明する方法、装置又はシステム。
【0180】
開示する技術のいくつかの実施形態は、ビデオ処理ツール又はモードを有効にするための決定又は判定を行うことを含む。一例では、ビデオ処理ツール又はモードが有効である場合に、エンコーダは、ビデオのブロックの処理でツール又はモードを使用又は実装するが、ツール又はモードの使用に基づいて結果として得られるビットストリームを必ずしも修正しない場合がある。つまり、ビデオのブロックからビデオのビットストリーム表現へのコンバートは、決定又は判定に基づいて有効にされたときに、ビデオ処理ツール又はモードを使用する。別の例では、ビデオ処理ツール又はモードが有効である場合に、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づいて修正されたことを認識してビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへのコンバートは、決定又は判定に基づいて有効にされたビデオ処理ツール又はモードを使用して実行される。
【0181】
開示する技術のいくつかの実施形態は、ビデオ処理ツール又はモードを無効にする決定又は判定を行うことを含む。一例では、ビデオ処理ツール又はモードが無効である場合に、エンコーダは、ビデオのブロックをビデオのビットストリーム表現にコンバートする際にツール又はモードを使用しない。別の例では、ビデオ処理ツール又はモードが無効である場合に、デコーダは、決定又は判定に基づいて無効にされたビデオ処理ツール又はモードを使用してビットストリームが修正されていないことを認識してビットストリームを処理する。
【0182】
図21は、本開示の技術を利用することができる例示的なビデオコーディングシステム100を示すブロック図である。図21に示されるように、ビデオコーディングシステム100は、ソース(source:送信元)装置110及び宛先(destination:送信先)装置120を含み得る。ソース装置110は、符号化したビデオデータを生成し、ビデオ符号化装置と呼ばれ得る。宛先装置120は、ソース装置110によって生成された符号化したビデオデータを復号化することができ、ビデオ復号化装置と呼ばれ得る。ソース装置110は、ビデオソース112、ビデオエンコーダ114、及び入力/出力(I/O)インターフェイス116を含み得る。
【0183】
ビデオソース112は、ビデオキャプチャ装置、ビデオコンテンツプロバイダからビデオデータを受信するためのインターフェイス、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム、又はそのようなソースの組合せ等のソースを含み得る。ビデオデータは、1つ又は複数のピクチャを含み得る。ビデオエンコーダ114は、ビデオソース112からのビデオデータを符号化して、ビットストリームを生成する。ビットストリームは、ビデオデータのコード化した表現を形成するビットのシーケンスを含み得る。ビットストリームには、コード化したピクチャ及び関連データが含まれ得る。コード化したピクチャは、ピクチャのコード化した表現である。関連データには、シーケンスパラメータセット、ピクチャパラメータセット、及び他の構文構造が含まれ得る。I/Oインターフェイス116には、変調器/復調器(モデム)及び/又は送信機が含まれ得る。符号化したビデオデータは、ネットワーク130aを通じてI/Oインターフェイス116を介して宛先装置120に直接送信され得る。符号化したビデオデータはまた、宛先装置120によるアクセスのために記憶媒体/サーバ130bに格納され得る。
【0184】
宛先装置120は、I/Oインターフェイス126、ビデオデコーダ124、及び表示装置122を含み得る。
【0185】
I/Oインターフェイス126は、受信機及び/又はモデムを含み得る。I/Oインターフェイス126は、ソース装置110又は記憶媒体/サーバ130bから符号化したビデオデータを取得することができる。ビデオデコーダ124は、符号化したビデオデータを復号化することができる。表示装置122は、復号化したビデオデータをユーザに表示することができる。表示装置122は、宛先装置120と統合され得るか、又は宛先装置120の外部にあり、外部表示装置とインターフェイスするように構成される。
【0186】
ビデオエンコーダ114及びビデオデコーダ124は、高効率ビデオコーディング(HEVC)規格、多用途ビデオコーディング(VVM)規格、及び他の現在及び/又は将来の規格等のビデオ圧縮規格に従って動作することができる。
【0187】
図22は、ビデオエンコーダ200の例を示すブロック図であり、これは、図21に示されるシステム100のビデオエンコーダ114であり得る。
【0188】
ビデオエンコーダ200は、本開示の技術のいずれか又は全てを実行するように構成され得る。図22の例では、ビデオエンコーダ200は、複数の機能コンポーネントを含む。本開示で説明する技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。いくつかの例では、プロセッサは、本開示で説明する技術のいずれか又は全てを実行するように構成され得る。
【0189】
ビデオエンコーダ200の機能コンポーネントは、パーティションユニット201、(モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及び内部予測ユニット206を含み得る)予測ユニット202、残差生成ユニット207、変換ユニット208、量子化ユニット209、逆量子化ユニット210、逆変換ユニット211、再構成ユニット212、バッファ213、及びエントロピー符号化ユニット214を含み得る。
【0190】
他の例では、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含み得る。一例では、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含み得る。IBCユニットは、少なくとも1つの参照ピクチャが、現在のビデオブロックが配置されているピクチャであるIBCモードで予測を行うことができる。
【0191】
さらに、動き推定ユニット204及び動き補償ユニット205等のいくつかのコンポーネントは、高度に統合され得るが、説明のために図22の例では別々に示されている。
【0192】
パーティションユニット201は、ピクチャを1つ又は複数のビデオブロックにパーティション分割することができる。ビデオエンコーダ200及びビデオデコーダ300は、様々なビデオブロックサイズをサポートすることができる。
【0193】
モード選択ユニット203は、例えばエラー結果に基づいて、イントラ又はインターのコーディングモードの1つを選択し、結果として得られるイントラ又はインターコード化したブロックを、残差生成ユニット207に提供して残差ブロックデータを生成し、またそのブロックを再構成ユニット212に提供して参照ピクチャとして使用するために符号化したブロックを再構成する。いくつかの例では、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づく、イントラ及びインター予測(CIIP)モードの組合せを選択することができる。モード選択ユニット203はまた、インター予測の場合に、ブロックの動きベクトルの解像度(例えば、サブピクセル又は整数ピクセルの精度)を選択することができる。
【0194】
現在のビデオブロックに対してインター予測を行うために、動き推定ユニット204は、バッファ213からの1つ又は複数の参照フレームを現在のビデオブロックと比較することによって、現在のビデオブロックの動き情報を生成することができる。動き補償ユニット205は、現在のビデオブロックに関連するピクチャ以外のバッファ213からのピクチャの動き情報及び復号化したサンプルに基づいて、現在のビデオブロックの予測ビデオブロックを決定することができる。
【0195】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在のビデオブロックがIスライス、Pスライス、又はBスライスのいずれであるかに応じて、現在のビデオブロックに対して異なる動作を実行することができる。
【0196】
いくつかの例では、動き推定ユニット204は、現在のビデオブロックに対して一方向予測を行うことができ、動き推定ユニット204は、リスト0又はリスト1の参照ピクチャを検索して、現在のビデオブロックの参照ビデオブロックを探すことができる。次に、動き推定ユニット204は、参照ビデオブロックを含むリスト0又はリスト1の参照ピクチャを示す参照インデックスと、現在のビデオブロックと参照ビデオブロックとの間の空間変位を示す動きベクトルとを生成することができる。動き推定ユニット204は、参照インデックス、予測方向インジケータ、及び動きベクトルを、現在のビデオブロックの動き情報として出力することができる。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のブロックの予測されるビデオブロックを生成することができる。
【0197】
他の例では、動き推定ユニット204は、現在のビデオブロックに対して双方向予測を行うことができ、動き推定ユニット204は、リスト0内の参照ピクチャを検索して、現在のビデオブロックの参照ビデオブロックを探すことができ、また、リスト1内の参照ピクチャを検索して、現在のビデオブロックの別の参照ビデオブロックを探すことができる。次に、動き推定ユニット204は、参照ビデオブロックを含むリスト0及びリスト1内の参照ピクチャを示す参照インデックスと、参照ビデオブロックと現在のビデオブロックとの間の空間変位を示す動きベクトルとを生成することができる。動き推定ユニット204は、現在のビデオブロックの参照インデックス及び動きベクトルを、現在のビデオブロックの動き情報として出力することができる。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のビデオブロックの予測されるビデオブロックを生成することができる。
【0198】
いくつかの例では、動き推定ユニット204は、デコーダの復号化処理のために動き情報の完全なセットを出力することができる。
【0199】
いくつかの例では、動き推定ユニット204は、現在のビデオの動き情報の完全なセットを出力しない場合がある。むしろ、動き推定ユニット204は、別のビデオブロックの動き情報を参照して、現在のビデオブロックの動き情報を通知することができる。例えば、動き推定ユニット204は、現在のビデオブロックの動き情報が隣接するビデオブロックの動き情報と十分に類似していると判定することができる。
【0200】
一例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、現在のビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオデコーダ300に示す値を示すことができる。
【0201】
別の例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、別のビデオブロック及び動きベクトル差(MVD)を識別することができる。動きベクトル差は、現在のビデオブロックの動きベクトルと示されたビデオブロックの動きベクトルとの間の差(相違)を示す。ビデオデコーダ300は、示されたビデオブロックの動きベクトル及び動きベクトル差を使用して、現在のビデオブロックの動きベクトルを決定することができる。
【0202】
上記のように、ビデオエンコーダ200は、動きベクトルを予測的に通知することができる。ビデオエンコーダ200によって実施され得る予測シグナリング技術の2つの例には、高度な動きベクトル予測(AMVP)及びマージモードシグナリングが含まれる。
【0203】
イントラ予測ユニット206は、現在のビデオブロックに対してイントラ予測を行うことができる。イントラ予測ユニット206が現在のビデオブロックに対してイントラ予測を行うときに、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号化したサンプルに基づいて、現在のビデオブロックの予測データを生成することができる。現在のビデオブロックの予測データには、予測されるビデオブロック及び様々な構文要素が含まれ得る。
【0204】
残差生成ユニット207は、現在のビデオブロックの予測されるビデオブロックを現在のビデオブロックから差し引く(例えば、マイナス記号で示される)ことによって、現在のビデオブロックの残差データを生成することができる。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプルコンポーネントに対応する残差ビデオブロックを含み得る。
【0205】
他の例では、例えばスキップモードにおいて、現在のビデオブロックに関して現在のビデオブロックの残差データがない場合があり、残差生成ユニット207は減算動作を実行しない場合がある。
【0206】
変換処理ユニット208は、1つ又は複数の変換を現在のビデオブロックに関連する残差ビデオブロックに適用することによって、現在のビデオブロックに対して1つ又は複数の変換係数ビデオブロックを生成することができる。
【0207】
変換処理ユニット208が現在のビデオブロックに関連する変換係数ビデオブロックを生成した後に、量子化ユニット209は、現在のビデオブロックに関連する1つ又は複数の量子化パラメータ(QP)値に基づいて、現在のビデオブロックに関連する変換係数ビデオブロックを量子化することができる。
【0208】
逆量子化ユニット210及び逆変換ユニット211は、逆量子化及び逆変換をそれぞれ変換係数ビデオブロックに適用して、変換係数ビデオブロックから残差ビデオブロックを再構成することができる。再構成ユニット212は、再構成した残差ビデオブロックを、予測ユニット202によって生成された1つ又は複数の予測ビデオブロックからの対応するサンプルに追加して、(バッファ213に格納するために)現在のブロックに関連する再構成ビデオブロックを生成することができる。
【0209】
再構成ユニット212がビデオブロックを再構成した後に、ループフィルタリング動作を実行して、ビデオブロック内のビデオブロッキングアーチファクトを低減することができる。
【0210】
エントロピー符号化ユニット214は、ビデオエンコーダ200の他の機能コンポーネントからデータを受信することができる。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ又は複数のエントロピー符号化操作を実行して、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力することができる。
【0211】
図19は、図21に示されるシステム100内のビデオデコーダ114であり得るビデオデコーダ300の例を示すブロック図である。
【0212】
ビデオデコーダ300は、本開示の技術のいずれか又は全てを実行するように構成され得る。図19の例では、ビデオデコーダ300は、複数の機能コンポーネントを含む。本開示で説明する技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。いくつかの例では、プロセッサは、本開示で説明する技術のいずれか又は全てを実行するように構成され得る。
【0213】
図19の例では、ビデオデコーダ300は、エントロピー復号化ユニット310、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、及び再構成ユニット306及びバッファ307を含む。いくつかの例では、ビデオエンコーダ300は、ビデオエンコーダ200(図22)に関して説明する符号化パスと一般に逆の復号化パスを実行する。
【0214】
エントロピー復号化ユニット310は、符号化したビットストリームを検索(retrive:取得)することができる。符号化したビットストリームは、エントロピー符号化ビデオデータ(例えば、ビデオデータの符号化したブロック)を含み得る。エントロピー復号化ユニット310は、エントロピー符号化ビデオデータを復号化することができ、エントロピー復号化ビデオデータから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他の動き情報を含む動き情報を決定することができる。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定することができる。
【0215】
動き補償ユニット302は、動きを補償したブロックを生成し得、おそらく補間フィルタに基づいて補間を実行し得る。サブピクセル精度で使用される補間フィルタの識別子は、構文要素に含まれ得る。
【0216】
動き補償ユニット302は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算することができる。動き補償ユニット302は、受信した構文情報に従ってビデオエンコーダ200によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0217】
動き補償ユニット302は、いくつかの構文情報を使用して、符号化したビデオシーケンスのフレーム及び/又はスライスを符号化するために使用されるブロックのサイズ、符号化したビデオシーケンスのピクチャの各マクロブロックがどの様にパーティション分割されるかを記述するパーティション情報、各パーティションがどの様に符号化されるかを示すモード、各インター符号化したブロックの1つ又は複数の参照フレーム(及び参照フレームリスト)、及び符号化したビデオシーケンスを復号化する他の情報を決定することができる。
【0218】
イントラ予測ユニット303は、例えばビットストリームで受信したイントラ予測モードを使用して、空間的に近接するブロックから予測ブロックを形成することができる。逆量子化ユニット303は、ビットストリームで提供され、エントロピー復号化ユニット310によって復号化した量子化したビデオブロック係数を逆量子化、すなわち、量子化解除(de-quantize)する。逆変換ユニット303は、逆変換を適用する。
【0219】
再構成ユニット306は、残差ブロックを、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックと合計して、復号化したブロックを形成することができる。必要に応じて、ブロック性アーティファクトを除去するために、デブロッキングフィルタを適用して、復号化したブロックをフィルタリングすることもできる。次に、復号化したビデオブロックは、バッファ307に格納され、これは、後続の動き補償/イントラ予測のための参照ブロックを提供し、また、表示装置上に提示するための復号化したビデオを生成する。
【0220】
本文書において、「ビデオ処理」という用語は、ビデオ符号化、ビデオ復号化、ビデオ圧縮又はビデオ解凍を指し得る。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から対応するビットストリーム表現への、又はその逆へのコンバート中に適用され得る。現在のビデオブロックのビットストリーム表現、又はコード化した表現は、例えば、構文によって規定されるように、ビットストリーム内の異なる場所に同じ場所に配置されるか、又はビットストリームに広がっているビットに対応し得る。例えば、ビデオブロックは、変換及びコード化したエラー残差値の観点から、またヘッダのビット及びビットストリームの他のフィールドを使用して符号化することができる。さらに、コンバート中に、デコーダは、上記の解決策で説明しているように、決定に基づいて、いくつかのフィールドが存在するか、又は存在しない可能性があるということを認識してビットストリームを解析することができる。同様に、エンコーダは、特定の構文フィールドが含まれるか含まれないかを判定し、それに応じて、構文フィールドをコード化した表現に含めるか又はこれから除外することによって、コード化した表現を生成することができる。
【0221】
図20は、本明細書で開示する様々な技術が実施され得る例示的なビデオ処理システム2000を示すブロック図である。様々な実施態様は、システム2000のコンポーネントのいくつか又は全てを含み得る。システム2000は、ビデオコンテンツを受信するための入力2002を含み得る。ビデオコンテンツは、生の又は非圧縮形式、例えば、8又は10ビットの多成分ピクセル値で受信され得るか、又は圧縮又は符号化したフォーマットであり得る。入力2002は、ネットワークインターフェイス、周辺バスインターフェイス、又はストレージインターフェイスを表すことができる。ネットワークインターフェイスの例には、イーサネット、パッシブ光ネットワーク(PON)等の有線インターフェイス、及びWi-Fi又はセルラーインターフェイス等の無線インターフェイスが含まれる。
【0222】
システム2000は、本文書で説明する様々なコーディング又は符号化方法を実施し得るコーディングコンポーネント2004を含み得る。コーディングコンポーネント2004は、ビデオの入力2002からコーディングコンポーネント2004の出力への平均ビットレートを低減して、ビデオのコード化した表現を生成することができる。従って、コーディング技術は、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれることもある。コーディングコンポーネント2004の出力は、コンポーネント2006によって表されるように、格納又は接続した通信を介して送信され得る。入力2002で受信したビデオの格納又は通信されたビットストリーム(又はコード化した)表現は、コンポーネント2008によって使用され、ディスプレイ・インターフェイス2010に送られるピクセル値又は表示可能なビデオを生成することができる。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ビデオ解凍と呼ばれることもある。さらに、特定のビデオ処理操作は「コーディング」操作又はツールと呼ばれるが、コーディングツール又は操作はエンコーダで使用され、コーディングの結果を逆転させる対応するデコードツール又は操作は、デコーダによって実行されることが理解されよう。
【0223】
周辺バスインターフェイス又はディスプレイ・インターフェイスの例には、ユニバーサルシリアルバス(HBS)又は高品位マルチメディアインターフェイス(HDMI(登録商標))又はディスプレイポート等が含まれ得る。ストレージインターフェイスの例には、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス等が含まれる。本文書で説明する技術は、携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又はビデオ表示を実行することができる他の装置等の様々な電子装置で具体化することができる。
【0224】
図23は、ビデオ処理方法2300を示しており、この方法は、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートに関して、規則に基づいてレベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定するステップ(2302)であって、レベルマッピング操作又はレベル再マッピング操作には、現在のブロックの残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロックの残差係数の第2の表現との間の変更が含まれる、決定するステップと;決定に基づいてレベルマッピング操作又はレベル再マッピング操作を選択的に使用してコンバートを実行するステップ(2304)と;を含む。
【0225】
図24は、ビデオ処理方法2400を示しており、この方法は、規則に基づいて、レベルマッピング操作又はレベル再マッピング操作中に予測子として使用される1つ又は複数の以前に復号化した係数を決定するステップ(2402)であって、レベルマッピング操作又はレベル再マッピング操作には、残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロックの残差係数の第2の表現との間の変更が含まれ、1つ又は複数の以前に復号化した係数は、復号化順序又はスキャン順序に従って使用される、決定するステップと;1つ又は複数の以前に復号化した係数を使用してビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行する(2404)ステップと;を含む。
【0226】
図25は、ビデオ処理方法2500を示しており、この方法は、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行するステップ(2502)を含み、ビットストリーム表現は、現在のブロックのビデオユニットの係数のサブセットの絶対値がMより大きいことを示すために構文要素がビットストリームに含められることを定めるフォーマット規則に準拠し、Mは整数である。
【0227】
以下のセクションは、番号が付けられた例示的なビデオ処理技術を説明する。
【0228】
1.ビデオ処理の方法は、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートに関して、規則に基づいてレベルマッピング操作又はレベル再マッピング操作を有効にするかどうかを決定するステップであって、レベルマッピング操作又はレベル再マッピング操作には、現在のブロックの残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロックの残差係数の第2の表現との間の変更が含まれる、決定するステップと;決定に基づいてレベルマッピング操作又はレベル再マッピング操作を選択的に使用してコンバートを実行するステップと;を含む。
【0229】
2.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、残差係数の復号値又は残差係数の信号値がゼロに等しくないかどうかに基づくことを定める、例1の方法。
【0230】
3.規則は、残差係数の復号値又は残差係数の信号値がゼロに等しいことに応答して、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定める、例1の方法。
【0231】
4.残差係数の復号値又は残差係数の信号値は、残差係数がゼロより大きい絶対レベルを有するかどうかを示す有意な係数フラグの値をビットストリーム表現に含む、例2又は3の方法。
【0232】
5.残差係数の復号値又は残差係数の信号値は、係数レベルの絶対値を含む、例2又は3の方法。
【0233】
6A.残差係数の復号値又は残差係数の信号値は、係数レベルの第1の絶対値と、残差係数の残りの大きさ(magnitude)の第2の絶対値との組合せを含む、例2又は3の方法。
【0234】
6B.残差係数の復号値又は残差係数の信号値は、残差係数の残りの大きさを含む、例2又は3の方法。
【0235】
7.残差係数の量子化値又はレベルマッピング操作を適用する前にコード化される残差係数の値がゼロに等しい場合に、ビットストリーム表現で示される有意な係数フラグは、ゼロに等しく、有意な係数フラグは、残差係数の絶対レベルがゼロより大きいかどうかを示す、例1の方法。
【0236】
8.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、現在のブロック又は現在のブロックの隣接ブロックのいずれかの復号化した残差情報に依存することを定める、例1の方法。
【0237】
9.隣接ブロックは、現在のブロックに近接して配置された近接する隣接ブロックである、又は隣接ブロックは、現在のブロックに近接していない非近接状態の隣接ブロックである、例8の方法。
【0238】
10.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、コンバート中に使用される現在のブロックのコーディングモードに基づいて判定可能であるかどうかを定める、例8の方法。
【0239】
11.コーディングモードは、現在のブロックの残差係数に対する変換操作がスキップされる非ブロック差分パルス符号変調(非BDPCM)トランスポートスキップ(TS)モードを含む、例10の方法。
【0240】
12.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、現在のブロックのサイド情報に基づくことを定め、サイド情報は、現在のブロックを含むビデオ領域レベルで通知される、例1の方法。
【0241】
13.サイド情報は、レベルマッピング操作又はレベル再マッピング操作が現在のブロックのコンバートに対して有効にされるかどうかを通知する構文要素に関連付けられる、例12の方法。
【0242】
14.ビデオ領域レベルには、コーディングツリーユニット(CTU)のサブ領域が含まれる、例12の方法。
【0243】
15.コーディングツリーユニット(CTU)のサブ領域には、仮想パイプラインデータユニット(VPDU)、単一のコーディングツリーユニット(CTU)、コーディングツリーブロック(CTB)、複数のコーディングツリーユニット(CTU)、複数のコーディングユニット(CU)、コーディングツリーユニット(CTU)の行、タイル、ブリック、スライス、ピクチャ、サブピクチャ、シーケンス、又はビデオのビューが含まれる、例14の方法。
【0244】
16.レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、ビットストリーム表現において、ビデオのシーケンスパラメータセット、ビューパラメータセット、適応パラメータセット、ピクチャパラメータセット、ピクチャヘッダ、スライスヘッダ、コーディングユニット(CU)、ピクチャユニット(PU)、変換ユニット(TU)、コーディングツリーユニット(CTU)、又はコーディングツリーブロック(CTB)で示される、例12の方法。
【0245】
17.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、現在のブロックが属するビデオの色フォーマット又は色成分に基づくことを定める、例1の方法。
【0246】
18.規則は、レベルマッピング操作又はレベル再マッピング操作が、ルマブロックに対して有効にされ、クロマブロックに対して無効にされることを定める、例17の方法。
【0247】
19.規則は、ビデオの色フォーマットが4:2:0フォーマットである場合に、レベルマッピング操作又はレベル再マッピング操作が、ルマブロックに対して有効にされ、クロマブロックに対して無効にされることを定める、例17の方法。
【0248】
20.規則は、ビデオの色フォーマットが4:4:4フォーマットである場合、又は別個の色平面コーディングモードがコンバート中に使用されている場合に、レベルマッピング操作又はレベル再マッピング操作が、全ての色成分に対して有効にされることを定める、例17の方法。
【0249】
21.規則は、レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、現在のブロックの寸法に基づくことを定める、例1の方法。
【0250】
22.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、現在のブロックがW*H>=T1を満たすため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0251】
23.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、現在のブロックがW*H<=T1を満たすため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0252】
24.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、min(W,H)>=T1のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0253】
25.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、max(W,H)<=T1のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0254】
26.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、min(W,H)<=T1のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0255】
27.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、max(W,H)>=T1のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1は整数である、例21の方法。
【0256】
28.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、W>=T1及びH>=T2のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1及びT2は整数である、例21の方法。
【0257】
29.現在のブロックの寸法には高さH及び幅Wが含まれ、規則は、W<=T1及びH<=T2のため、レベルマッピング操作又はレベル再マッピング操作が無効にされることを定め、T1及びT2は整数である、例21の方法。
【0258】
30.ビデオ処理の方法であって、規則に基づいて、レベルマッピング操作又はレベル再マッピング操作中に予測子として使用される1つ又は複数の以前に復号化した係数を決定するステップであって、レベルマッピング操作又はレベル再マッピング操作には、残差係数の第1の表現と、残差係数の隣接する残差係数に基づく現在のブロック残差係数の第2の表現との間の変更が含まれ、1つ又は複数の以前に復号化した係数は、復号化順序又はスキャン順序に従って使用される、決定するステップと;1つ又は複数の以前に復号化した係数を使用してビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行するステップと;を含む。
【0259】
31.規則は、最新のK個の以前に復号化した係数を使用することを定め、Kは整数である、例30の方法。
【0260】
32.規則は、最新のM個の以前に復号化した係数のうちのK個の以前に復号化した係数が使用されることを定め、K及びMは整数であり、MはKより大きい、例30の方法。
【0261】
33.1つ又は複数の以前に復号化した係数のいくつかが、ビットストリーム表現において構文要素を介して通知される、例30の方法。
【0262】
34.1つ又は複数の以前に復号化した係数のいくつかが、予め規定される、例30の方法。
【0263】
35.1つ又は複数の以前に復号化した係数のいくつかが、現在のブロックの復号化した情報に基づいて決定可能である、例30の方法。
【0264】
36.1つ又は複数の以前に復号化した係数のいくつかが、復号化した残差係数の数に依存する、例30の方法。
【0265】
37.数はS又はMの最小値であり、Sは復号化した残差係数の数であり、Mは固定数である、例36の方法。
【0266】
38.ビデオ処理の方法であって、ビデオの現在のブロックとビデオのビットストリーム表現との間のコンバートを実行するステップを含み、ビットストリーム表現は、現在のブロックのビデオユニットの係数のサブセットの絶対値がMより大きいことを示すために構文要素をビットストリームに含めることを定めるフォーマット規則に準拠し、Mは整数である。
【0267】
39.ビデオユニットは、現在のブロックの係数グループ又は変換ブロック又は予測ブロック又はコーディングブロックである、例38の方法。
【0268】
40.サブセットは、コンバートで使用されるスキャン順序に基づく、例38の方法。
【0269】
41.サブセットには、順方向スキャン順序に従った最初のL個の係数が含まれ、Lは整数である、例40の方法。
【0270】
42.サブセットには、順方向スキャン順序に従った最後のL個の係数が含まれ、Lは整数である、例40の方法。
【0271】
43.サブセットには、ビデオユニットの復号化順序に従った最初のL個の係数が含まれ、Lは整数である、例40の方法。
【0272】
44.サブセットは、ビデオユニットを構成するピクセルの座標に基づく、例38の方法。
【0273】
45.サブセットには、ビデオユニットの長方形領域内の係数が含まれる、例44の方法。
【0274】
46.サブセットには、ビデオユニットの正方形領域内の係数が含まれる、例44の方法。
【0275】
47.サブセットは、現在のブロックのコード化モードに基づく、例38の方法。
【0276】
48.サブセットは、現在のブロックがブロック差分パルス符号変調(BDPCM)コーディングツール又は量子化残差ドメインBDPCM(QR-BDPCM)コーディングツールでコード化されていることに応答して、及び現在のブロックが垂直方向に予測されていることに応答して、最上行の係数を含むように規定される、例47の方法。
【0277】
49.サブセットは、現在のブロックがブロック差分パルス符号変調(BDPCM)コーディングツール又は量子化残差ドメインBDPCM(QR-BDPCM)コーディングツールでコード化されていることに応答して、及び現在のブロックが水平方向に予測されていることに応答して、左端の行の係数を含むように規定される、例47の方法。
【0278】
50.サブセットは、現在のブロックの寸法に基づく、例38の方法。
【0279】
51.Mは、0、1、2、3、4、又は5に等しい、例38の方法。
【0280】
52.現在のブロックは、非変換スキップコード化ブロックである、例1の方法。
【0281】
53.コンバートは、現在のブロックに対してブロック差分パルス符号変調(BDPCM)コーディングツールを使用する、例52の方法。
【0282】
54.規則は、レベルマッピング操作又はレベル再マッピング操作が、残差係数の特定の位置に対してのみ実行されることを定める、例52の方法。
【0283】
55.特定の位置は、予測方向に依存する、例54の方法。
【0284】
56.残差係数は、予測方向が垂直であることに応答して第1の行に配置される、例55の方法。
【0285】
57.残差係数は、予測方向が水平であることに応答して第1の列に配置される、例55の方法。
【0286】
58.規則は、レベルマッピング操作又はレベル再マッピング操作が、予測不可能にコード化された残差係数に対してのみ有効にされることを定める、例52の方法。
【0287】
59.残差係数は、垂直予測方向の第1の行に配置される、例58の方法。
【0288】
60.残差係数は、水平予測方向の第1の列に配置される、例58の方法。
【0289】
61.コンバートは、パレットコーディングモードに基づく、例1の方法。
【0290】
62.規則は、パレットインデックスが、ビデオの以前のブロックからの以前にコード化したパレットインデックスの最大値に基づくことをさらに定める、例61の方法。
【0291】
63.規則は、レベルマッピング操作又はレベル再マッピングが、ビデオの全てのパレットコード化ブロックに対して有効にされることをさらに定める、例61の方法。
【0292】
64.規則は、レベルマッピング操作又はレベル再マッピングが、指定された条件下で有効にされることをさらに定める、例61の方法。
【0293】
65.コンバートは、残差係数が現在のブロックの隣接ブロックの残差情報に依存するコンテキストモデリングプロセスをさらに使用し、コンテキストモデリングプロセスは、コンテキストモデリング関数f(a0,a1,・・・,)を用いて使用し、パラメータaiは、以前にコード化した係数又はパレットインデックスを表し、iはゼロ以上である。
【0294】
66.コンテキストモデリング関数f(a0,a1,・・・,)は、最大関数又は最小関数である、例65の方法。
【0295】
67.パラメータaiには、現在のサンプル又は係数、及び現在のブロックの少なくともいくつかの隣接ブロックをカバーするテンプレートが含まれる、例65の方法。
【0296】
68.パレットインデックスコーディングに関して、パレットインデックスは、コンテキストモデリング関数f(a0,a1,・・・,)に基づいて、左パレットインデックス及び上(above)パレットインデックスを使用してコード化される、例67の方法。
【0297】
69.パレットインデックスコーディングに関して、パレットインデックスは、コンテキストモデリング関数f(a0,a1,・・・,)に基づいて、左パレットインデックス及び上(above)パレットインデックスを使用してコード化される、例67の方法。
【0298】
70.パラメータaiの順序が、現在のブロックに使用されるスキャン順序の関数である、例65の方法。
【0299】
71.1つ又は複数の復号化した係数が、コンバート中にコンテキストモデリングプロセスの構文要素を取得するために使用され、1つ又は複数の復号化した係数は、復号化順序又はスキャン順序に従って使用される、例1の方法。
【0300】
72.構文要素には、コーディング符号(coding sign)フラグが含まれる、例71の方法。
【0301】
73.最新のK個の復号化した係数が使用され、Kは整数である、例71の方法。
【0302】
74.最新のM個の復号化した係数のうちのK個の復号化した係数が使用され、K及びMは整数であり、MはKよりも大きい、例71の方法。
【0303】
75.1つ又は複数の復号化した係数のいくつかが、ビットストリーム表現において構文要素を介して通知される、例71の方法。
【0304】
76.1つ又は複数の復号化した係数のいくつかが、予め規定される、例71の方法。
【0305】
77.1つ又は複数の復号化した係数のいくつかが、現在のブロックの復号化した情報に基づいて決定可能である、例71の方法。
【0306】
78.1つ又は複数の復号化した係数のいくつかが、復号化した残差係数の数に依存する、例71の方法。
【0307】
79.数はS又はMの最小値であり、Sは復号化した残差係数の数であり、Mは固定数である、例78の方法。
【0308】
80.1つ又は複数の復号化した係数が、コンバート中にコンテキストモデリングプロセスの構文要素を取得するために使用され、1つ又は複数の復号化した係数は、予測方向に従って使用される、例1の方法。
【0309】
81.構文要素には、コーディング符号フラグが含まれる、例80の方法。
【0310】
82.1つ又は複数の復号化した係数は、現在のブロックが垂直予測方向のブロック差分パルス符号変調(BDPCM)コード化ブロックであることに応答して、現在のブロックの列と同じ列にある1つ又は複数の以前に復号化した係数である、例80の方法。
【0311】
83.1つ又は複数の復号化した係数は、現在のブロックが水平予測方向のブロック差分パルス符号変調(BDPCM)コード化ブロックであることに応答して、現在のブロックの行と同じ行にある1つ又は複数の以前に復号化した係数である、例80の方法。
【0312】
84.1つ又は複数の復号化した係数は、現在のブロックが垂直予測方向のブロック差分パルス符号変調(BDPCM)コード化ブロックであることに応答して、現在のブロックの行と同じ行にある1つ又は複数の以前に復号化した係数である、例80の方法。
【0313】
85.1つ又は複数の復号化した係数は、現在のブロックが水平予測方向のブロック差分パルス符号変調(BDPCM)コード化ブロックであることに応答して、現在のブロックの列と同じ列にある1つ又は複数の以前に復号化した係数である、例80の方法。
【0314】
86.1つ又は複数の復号化した係数は、コンバート中にコンテキストモデリングプロセスの構文要素を取得するために使用され、構文要素の値は、現在のブロックの隣接ブロック情報に従って、又は選択したコンテキストに従って動的に設定される、例1の方法。
【0315】
87.構文要素の値は、現在の係数の符号情報が、ビデオの以前にコード化した係数の符号情報の大部分と同じであるかどうかに基づく、例86の方法。
【0316】
88.隣接ブロックの大部分を表す選択したコンテキストが負であることに応答して、構文要素の値は、正の値を示すために1に等しく、構文要素の値は、負の値を示すためにゼロに等しい、例86の方法。
【0317】
89.隣接ブロックの大部分は、2つの隣接ブロックが負であることに応答して、又は1つの隣接ブロックが負であり、別の隣接ブロックがゼロに等しいことに応答して、負である、例88の方法。
【0318】
90.隣接ブロックの大部分を表す選択したコンテキストが正であることに応答して、構文要素の値は、正の値を示すためにゼロに等しく、構文要素の値は、負の値を示すために1に等しい、例86の方法。
【0319】
91.隣接ブロックの大部分は、2つの隣接ブロックが正であることに応答して、又は1つの隣接ブロックが正であり、別の隣接ブロックがゼロに等しいことに応答して、正である、例90の方法。
【0320】
92.隣接ブロックの大部分を表す選択したコンテキストが負であることに応答して、構文要素の値は、正の値を示すためにゼロに等しく、構文要素の値は、負の値を示すために1に等しい、例86の方法。
【0321】
93.隣接ブロックの大部分は、2つの隣接ブロックが負であることに応答して、又は1つの隣接ブロックが負であり、別の隣接ブロックがゼロに等しいことに応答して、負である、例92の方法。
【0322】
94.隣接ブロックの大部分を表す選択したコンテキストが正であることに応答して、構文要素の値は、正の値を示すために1に等しく、構文要素の値は、負の値を示すためにゼロに等しい、例86の方法。
【0323】
95.隣接ブロックの大部分は、2つの隣接ブロックが正であることに応答して、又は1つの隣接ブロックが正であり、別の隣接ブロックがゼロに等しいことに応答して、正である、例94の方法。
【0324】
96.レベルマッピング操作又はレベル再マッピング操作が現在のブロックに対して有効にされるかどうかが、ビデオユニットレベルで示される、例1~95のいずれか1つの方法。
【0325】
97.ビデオユニットには、タイル、ブリック、スライス、ピクチャ、サブピクチャ、シーケンス、ビューが含まれる、例96の方法。
【0326】
98.レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうか、及びレベル再マッピング操作を有効にするプロセスが、シーケンスパラメータセット、ビューパラメータセット、適応パラメータセット、ピクチャパラメータセット、ピクチャヘッダ、又はスライスヘッダで通知される、例96の方法。
【0327】
99.レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうか、及びレベルマッピング操作又はレベル再マッピング操作が有効化されるプロセスが、構文要素によって示される、例96の方法。
【0328】
100.構文要素は、ビデオに関連するビデオコンテンツが画面コンテンツであるかどうかを示す、例99の方法。
【0329】
101.レベルマッピング操作又はレベル再マッピング操作が有効にされるかどうかが、現在のブロックのコーディング情報に基づく、例1~95のいずれか1つの方法。
【0330】
102.コーディング情報には、現在のブロックのブロック寸法、スライスタイプ、ピクチャタイプ、時間層インデックス、ビデオコンテンツ、色成分、パーティション分割ツリータイプ、コード化モード、又は変換情報が含まれる、例101の方法。
【0331】
103.レベルマッピング操作又はレベル再マッピング操作は、現在のブロックの幅がT1以下であり、及び現在のブロックの高さがT2以下であることに応答して、有効にされる、例101の方法。
【0332】
104.レベルマッピング操作又はレベル再マッピング操作は、現在のブロックの幅がT1以下であるか、又は現在のブロックの高さがT2以下であることに応答して、有効にされる、例101の方法。
【0333】
105.レベルマッピング操作又はレベル再マッピング操作は、現在のブロックの幅×現在のビデオブロックの高さがT3以下であることに応答して、有効にされる、例101の方法。
【0334】
106.コンバートには、現在のブロックをビットストリーム表現に符号化することが含まれる、例1~107のいずれか1つの方法。
【0335】
107.コンバートには、ビットストリーム表現を復号化して現在のブロックのピクセル値を生成することが含まれる、例1~107のいずれか1つの方法。
【0336】
108.例1~107のうちの1つ又は複数に記載の方法を実施するように構成されたプロセッサを含むビデオ復号化機器。
【0337】
109.例1~107のうちの1つ又は複数に記載の方法を実施するように構成されたプロセッサを含むビデオ符号化機器。
【0338】
110.コンピュータコードを格納したコンピュータプログラム製品であって、そのコードがプロセッサによって実行されると、プロセッサに、例1~107のいずれかに記載の方法を実施させる。
【0339】
本文書で説明する本開示及び他の解決策、例、実施形態、モジュール、及び機能的動作は、本文書に開示される構造及びそれらの構造的均等物、或いはそれらの1つ又は複数の組合せを含む、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、又はハードウェアに実装することができる。開示した他の実施形態は、1つ又は複数のコンピュータプログラム製品、すなわち、データ処理機器による実行のために、又はデータ処理機器の動作を制御するためにコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ又は複数のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、機械可読伝播信号に影響を与える物質の組成物、又はそれらの1つ又は複数の組合せであり得る。「データ処理機器」という用語は、例えば、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ又はコンピュータを含む、データを処理するための全ての機器、装置、及びマシンを包含する。機器は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、或いはそれらの1つ又は複数の組合せを構成するコードを含むことができる。伝播される信号は、適切な受信機機器に送信するための情報を符号化するために生成される、人工的に生成される信号、例えば、マシンによって生成された電気、光、又は電磁信号である。
【0340】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル又は解釈された言語を含む任意の形式のプログラミング言語で書くことができ、スタンドアロンプログラム、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、又は他のユニットを含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しているわけではない。プログラムは、他のプログラム又はデータを保持するファイルの一部(例えば、マークアップ言語ドキュメントに保存された1つ又は複数のスクリプト)、問題のプログラム専用の単一のファイル、又は複数の調整されたファイル(例えば、1つ又は複数のモジュール、サブプログラム、又はコードの一部を格納するファイル)に格納することができる。コンピュータプログラムは、1台のコンピュータ、又は複数のコンピュータで実行されるように展開でき、複数のコンピュータは、1つのサイトに配置されるか、複数のサイトに分散され、通信ネットワークによって相互接続される。
【0341】
本文書で説明するプロセス及び論理フローは、1つ又は複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を実行する1つ又は複数のプログラム可能なプロセッサによって実行することができる。プロセス及び論理フローは、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)等の特殊用途の論理回路によって実行することもでき、機器を実装することもできる。
【0342】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用目的のマイクロプロセッサと特殊目的のマイクロプロセッサとの両方、及び任意の種類のデジタルコンピュータの任意の1つ又は複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリ又はランダムアクセスメモリ、或いはその両方から命令及びデータを受け取る。コンピュータの重要な要素は、命令を実行するためのプロセッサと、命令及びデータを格納するための1つ又は複数のメモリ装置である。一般に、コンピュータはまた、データを記憶するための1つ又は複数の大容量記憶装置、例えば、磁気、磁気光ディスク、又は光ディスクを含むか、又はデータを受信するか、又はデータを転送するか、或いはその両方に動作可能に結合される。しかしながら、コンピュータにそのような装置が必要なわけではない。コンピュータプログラムの命令及びデータを格納するのに適したコンピュータ可読媒体には、あらゆる形態の不揮発性メモリ、媒体及びメモリ装置が含まれ、例えば、EPROM、EEPROM、及びフラッシュメモリ装置等の半導体メモリ装置;例えば、内蔵ハードディスク又はリムーバブルディスク等の磁気ディスク;光磁気ディスク;及びCD ROM及びDVD-ROMディスクが含まれる。プロセッサ及びメモリは、特別な目的の論理回路によって補完又は組み込むことができる。
【0343】
この特許文書は多くの詳細を含むが、これらは、主題の範囲又は特許請求の範囲の制限として解釈すべきではなく、むしろ特定の技術の特定の実施形態に固有であり得る特徴の説明として解釈すべきである。別個の実施形態の文脈でこの特許文書で説明している特定の特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈で説明した様々な特徴は、複数の実施形態で別々に、又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組合せで作用するものとして上で説明し、最初にそのように主張しても、主張した組合せからの1つ又は複数の特徴は、場合によっては組合せから切り出され得、主張した組合せは、サブコンビネーション又はサブコンビネーションの変形を対象とし得る。
【0344】
同様に、操作が特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような操作が示される特定の順序又は連続した順序で実行されること、又は図示される全ての操作が実行されることを要求するものとして理解すべきではない。さらに、この特許文書で説明した実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解すべきではない。
【0345】
少数の実施態様及び例のみを説明しており、他の実施態様、拡張、及び変形は、この特許文書に説明及び図示していることに基づいて行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25