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

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

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

特開2024-26141カラーコンポーネントに基づくシンタックスシグナリング及び構文解析
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024026141
(43)【公開日】2024-02-28
(54)【発明の名称】カラーコンポーネントに基づくシンタックスシグナリング及び構文解析
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240220BHJP
   H04N 19/186 20140101ALI20240220BHJP
   H04N 19/105 20140101ALI20240220BHJP
【FI】
H04N19/70
H04N19/186
H04N19/105
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023197883
(22)【出願日】2023-11-22
(62)【分割の表示】P 2022524990の分割
【原出願日】2020-10-28
(31)【優先権主張番号】PCT/CN2019/113646
(32)【優先日】2019-10-28
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】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)【発明者】
【氏名】シュイ,ジィジォン
(57)【要約】      (修正有)
【課題】ビデオコーディングのためのマトリクスベースのイントラ予測方法を含むデジタルビデオコーディングのための方法及び装置を提供する。
【解決手段】方法は、複数のビデオブロックを含むビデオの現在のビデオブロックと、該ビデオのビットストリーム表現との間の変換のために、ルールに基づいてマトリクスベースのイントラ予測(MIP)ツールのための最確モード(MPM)リストを生成することを含む。MIPツールは、変換の間に、ビデオの前にコード化されたサンプルに対して、境界ダウンサンプリング動作を行い、次いでマトリクスベクトル乗算動作を行い、次いで、選択的にアップサンプリング動作を行うことにより、現在のビデオブロックの予測ブロックを決定する。ルールは、MIPモードの数と複数のビデオブロックの寸法との間のマッピングを指定すること及び生成することに基づいて変換を行うことを含む。
【選択図】図11
【特許請求の範囲】
【請求項1】
ビデオ処理の方法であって、
ビデオの現在のクロマブロックと、該ビデオのビットストリームとの間の変換のために、二次変換ツールに関する第1のサイド情報が該現在のクロマブロックのために前記ビットストリームに含まれているかどうかを1つ以上の条件が満たされているかどうかを確認することにより特定することと、
少なくとも前記特定することに基づいて前記変換を行うことと、
を含み、
前記二次変換ツールは、量子化の前にビデオブロックの残差に適用される順方向一次変換の出力に対して、エンコーディングの間に順方向二次変換を適用すること又は逆方向一次変換を適用する前に前記ビデオブロックの逆量子化の出力に対して、デコーディングの間に逆方向二次変換を適用することを含み、
前記1つ以上の条件が満たされているかどうかを確認することは、前記現在のクロマブロックのツリータイプが二重ツリークロマであるかどうかを確認することを含む、方法。
【請求項2】
前記第1のサイド情報はLFNSTインテックスを示すシンタックス要素である、請求項1に記載の方法。
【請求項3】
前記現在のクロマブロックのツリータイプが二重ツリークロマであることに対応して、前記第1のサイド情報が前記現在のクロマブロックのために前記ビットストリームに含まれているかどうかは、対応するルーマブロックのコーディングモードが第1のコーディングモードであるかどうかから切り離され、
前記第1のコーディングモードでは、前記対応するルーマブロックの予測ブロックは、境界ダウンサンプリング動作を行い、次いでマトリクスベクトル乗算動作を行い、次いで、選択的にアップサンプリング動作を行うことにより前記対応するルーマブロックの予測ブロックが特定される、請求項2に記載の方法。
【請求項4】
前記現在のクロマブロックのツリータイプが二重ツリークロマではないことに対応して、前記1つ以上の条件が満たされているかどうかを確認することは、前記対応するルーマブロックのコーディングモードが前記第1のコーディングモードであるかどうかを確認すること又はLFNSTによって考慮されるブロック幅及びブロック高さの両方が16以上であるかどうかを確認することを含む、請求項3に記載の方法。
【請求項5】
前記現在のクロマブロックのツリータイプが二重ツリークロマであることに対応して、前記第1のサイド情報が前記現在のクロマブロックのために前記ビットストリームに含まれているかどうかはLFNSTによって考慮されるブロック幅及びブロック高さから切り離される、請求項2に記載の方法。
【請求項6】
前記現在のクロマブロックのツリータイプが二重ツリークロマであることに対応して、前記現在のクロマブロック及び対応するルーマブロックのために前記ビットストリームに異なる前記第1のサイド情報がそれぞれ含まれる、請求項1に記載の方法。
【請求項7】
前記現在のクロマブロックのツリータイプが二重ツリークロマであることに対応して、前記現在のクロマブロック及び対応するルーマブロックのために前記ビットストリームに同じ前記第1のサイド情報が含まれ、
前記現在のクロマブロック及び前記対応するクロマブロックは異なるクロマコンポーネントのブロックである、請求項6に記載の方法。
【請求項8】
前記現在のクロマブロックが二重ツリー構造又はローカル二重ツリー構造にあることに対応して、前記現在のクロマブロックのツリータイプは二重ツリークロマである、請求項6に記載の方法。
【請求項9】
前記現在のクロマブロックのツリータイプが単一ツリーであることに対応して、前記現在のクロマブロック及び対応するルーマブロックのために前記ビットストリームに同じ前記第1のサイド情報が含まれる、請求項1に記載の方法。
【請求項10】
前記現在のクロマブロックのツリータイプが二重ツリークロマであることに対応して、前記現在のクロマブロックに対して第1のコーディングモードが無効にされ、
前記第1のコーディングモードにおいて、前記現在のクロマブロックの予測ブロックは境界ダウンサンプリング動作を行い、次いでマトリクスベクトル乗算動作を行い、次いで、選択的にアップサンプリング動作を行うことにより特定される、請求項1に記載の方法。
【請求項11】
前記現在のクロマブロックのツリータイプが単一ツリーであることに対応して、前記現在のクロマブロック及び対応するクロマブロックのために前記ビットストリームに前記第1のコーディングモードが有効かどうかを示す同じシンタックス要素が含まれ、
前記現在のクロマブロック及び前記対応するクロマブロックは異なるクロマコンポーネントのブロックである、請求項10に記載の方法。
【請求項12】
前記変換は、前記現在のクロマブロックを前記ビットストリームにエンコーディングすることを含む、請求項1乃至11のいずれか一項に記載の方法。
【請求項13】
前記変換は、前記ビットストリームから前記現在のクロマブロックをデコーディングすることを含む、請求項1乃至11のいずれか一項に記載の方法。
【請求項14】
プロセッサと、命令を有する非一時的メモリとを含む、ビデオデータを処理するための装置であって、該プロセッサによって実行された場合、該命令は該プロセッサに、
ビデオの現在のクロマブロックと、該ビデオのビットストリームとの間の変換のために、二次変換ツールに関する第1のサイド情報が該現在のクロマブロックのために前記ビットストリームに含まれているかどうかを1つ以上の条件が満たされているかどうかを確認することにより特定することと、
少なくとも前記特定することに基づいて前記変換を行うことと、
を行わせ、
前記二次変換ツールは、量子化の前にビデオブロックの残差に適用される順方向一次変換の出力に対して、エンコーディングの間に順方向二次変換を適用すること又は逆方向一次変換を適用する前に前記ビデオブロックの逆量子化の出力に対して、デコーディングの間に逆方向二次変換を適用することを含み、
前記1つ以上の条件が満たされているかどうかを確認することは、前記現在のクロマブロックのツリータイプが二重ツリークロマであるかどうかを確認することを含む、装置。
【請求項15】
命令を記憶する非一時的コンピュータ読み取り可能記憶媒体であって、該命令は、プロセッサに、
ビデオの現在のクロマブロックと、該ビデオのビットストリームとの間の変換のために、二次変換ツールに関する第1のサイド情報が該現在のクロマブロックのために前記ビットストリームに含まれているかどうかを1つ以上の条件が満たされているかどうかを確認することにより特定することと、
少なくとも前記特定することに基づいて前記変換を行うことと、
を行わせ、
前記二次変換ツールは、量子化の前にビデオブロックの残差に適用される順方向一次変換の出力に対して、エンコーディングの間に順方向二次変換を適用すること又は逆方向一次変換を適用する前に前記ビデオブロックの逆量子化の出力に対して、デコーディングの間に逆方向二次変換を適用することを含み、
前記1つ以上の条件が満たされているかどうかを確認することは前記現在のクロマブロックのツリータイプが二重ツリークロマであるかどうかを確認することを含む、非一時的コンピュータ読み取り可能記憶媒体。
【請求項16】
ビデオのビットストリームを記憶するための方法であって、該方法は、
ビデオの現在のクロマブロックのために、二次変換ツールに関する第1のサイド情報が該現在のクロマブロックのために前記ビットストリームに含まれているかどうかを1つ以上の条件が満たされているかどうかを確認することにより特定することと、
少なくとも前記特定することに基づいて前記ビットストリームを生成することと、
非一時的コンピュータ読み取り可能記憶媒体に前記ビットストリームを記憶することと、
を含み、
前記二次変換ツールは、量子化の前にビデオブロックの残差に適用される順方向一次変換の出力に対して、エンコーディングの間に順方向二次変換を適用すること又は逆方向一次変換を適用する前に前記ビデオブロックの逆量子化の出力に対して、デコーディングの間に逆方向二次変換を適用することを含み、
前記1つ以上の条件が満たされているかどうかを確認することは、前記現在のクロマブロックのツリータイプが二重ツリークロマであるかどうかを確認することを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
適用特許法及び/又はパリ条約に従った規則に基づき、本願は、2019年10月8日に出願された国際特許出願第PCT/CN2019/113646号の優先権及び利益を適時に主張する。法に基づく全ての目的のために、前述の出願の全ての開示は、参照により、本願の開示の一部として組み込まれる。
【0002】
本願は、ビデオコーディング技術、装置及びシステムに関する。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは依然としてインターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅使用を占めている。ビデオの受信及び表示が可能な接続ユーザ装置の数が増加するにつれて、デジタルビデオ使用のための帯域幅の需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオコーディングに関する装置、システム及び方法、具体的には、ビデオコーディングのためのマトリクスベースのイントラ予測方法を説明する。説明する方法は、既存のビデオコーディング規格(例えば、高効率ビデオコーディング(HEVC))及び将来のビデオコーディング規格(例えば、汎用ビデオコーディング(VVC))又はコーデックの両方に適用され得る。
【0005】
代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、複数のビデオブロックを含むビデオの現在のビデオブロックと、該ビデオのビットストリーム表現との間の変換のために、ルールに基づいてマトリクスベースのイントラ予測(MIP)ツールのための最確モード(MPM)リストを生成することであって、MIPツールは、該変換の間に、前記ビデオの前にコード化されたサンプルに対して、境界ダウンサンプリング動作と、次いでマトリクスベクトル乗算動作と、次いで、選択的にアップサンプリング動作を行うことにより、現在のビデオブロックの予測ブロックを決定することを含み、該ルールは、MIPモードの数と複数のビデオブロックの寸法との間のマッピングを規定する、ことと、前記生成することに基づいて前記変換を行うこととを含む。
【0006】
別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、ビデオのクロマビデオブロックと該ビデオのビットストリーム表現との間の変換を、ルールに基づいて該クロマビデオブロックに適用される二次変換ツールのサイド情報(side information)を用いて行うこと、を含み、該二次変換ツールは、前記ルールに基づいて適用される場合、量子化の前に前記クロマビデオブロックの残差に適用される順方向一次変換の出力に対して、エンコーディングの間に順方向二次変換を適用するか又は逆方向一次変換を適用する前に、前記クロマビデオブロックの逆量子化の出力に対して、デコーディングの間に逆方向二次変換を適用することを含み、前記ビットストリーム表現において前記サイド情報がコード化される方法は、対応するルーマビデオブロックのコーディングモードに依存しない。
【0007】
別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、該判定することに基づき、ALWIPモードのための最確モード(MPM)リストの少なくとも一部を非ALWIPイントラモードのためのMPMリストの少なくとも一部に基づいて構築することと、ALWIPモードのためのMPMリストに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0008】
別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックのルーマコンポーネントが、アフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、該判定することに基づいて、クロマイントラモードを推定することと、該クロマイントラモードに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0009】
さらに別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、該判定することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0010】
さらに別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードとは異なるコーディングモードを用いてコード化されていると判定することと、該判定することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0011】
さらに別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックのために、アフィン線形重み付けイントラ予測(ALWIP)モードを用いて第1の予測を生成することと、該第1の予測に基づいて、PDPC(position dependent intra prediction combination)を用いて第2の予測を生成することと、第2の予測に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0012】
さらに別の代表的な態様では、開示の技術は、ビデオ処理のための方法を提供するために用いられ得る。この例示の方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、該予測することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0013】
さらに別の代表的な態様では、ビデオ処理の方法が開示される。本方法は、現在のビデオブロックのためのルールに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、アフィン線形重み付けイントラ予測(ALWIP)モードの使用を示すフラグのコンテキストを決定することと、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、該予測することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うこととを含む。
【0014】
さらに別の代表的な態様では、ビデオ処理の方法が開示される。本方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスにおいて、現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うこととを含み、少なくとも2つのフィルタリングステージの第1のフィルタリングステージにおけるサンプルの第1の精度は、少なくとも2つのフィルタリングステージの第2のフィルタリングステージにおけるサンプルの第2の精度とは異なる。
【0015】
さらに別の態様では、ビデオ処理の方法が開示される。本方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うこととを含み、アップサンプリングプロセスは、垂直及び水平の両方のアップサンプリングが行われる場合について固定の順序で行われる。
【0016】
さらに別の態様では、ビデオ処理の方法が開示される。本方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うこととを含み、該変換は、アップサンプリングプロセスの前に転置(transposing)動作を行うことを含む。
【0017】
さらに別の態様では、ビデオ処理の方法が開示される。本方法は、ビデオの現在のビデオブロックとビデオのビットストリーム表現との間の変換のために、現在のビデオブロックが条件を満たすことにより、変換における二次変換の使用のシグナリングが輝度マトリクスベースのイントラ予測(MIP)ツールのシグナリングから切り離されていると判定することと、該判定することに基づいて前記変換を行うこととを含む。
【0018】
さらに別の態様では、ビデオ処理の方法が開示される。本方法は、ビデオの現在のビデオブロックに関連するコーディング条件に基づいて、二次変換に関連するサイド情報がビデオのビットストリーム表現に含まれているかどうか判定することと、該判定することに基づいて現在のビデオブロックとビットストリーム表現との間の変換を行うこととを含む。
【0019】
さらに別の代表的な態様では、上述の方法はプロセッサ実行可能コードの形態で具現化され、コンピュータ読み取り可能プログラム媒体に記憶される。
【0020】
さらに別の代表的な態様では、上述の方法を行うように構成されるか又は動作可能な装置が開示される。本装置は、この方法を実施するようにプログラムされたプロセッサを含み得る。
【0021】
さらに別の代表的な態様では、ビデオデコーダ装置は、本明細書に記載の方法を実施し得る。
【0022】
開示の技術の上記の及び他の態様及び特徴は、図面、明細書及び特許請求の範囲においてより詳細に説明されている。
【図面の簡単な説明】
【0023】
図1図1は、33のイントラ予測方向の一例を示す。
図2図2は、67のイントラ予測モードの一例を示す。
図3図3は、線形モデルの重みの導出のために用いられるサンプルの位置の例を示す。
図4図4は、予測ブロックに隣接する4つの参照線の例を示す。
図5図5A及び図5Bは、ブロックサイズに応じたサブパーティションの例を示す。
図6図6は、4×4ブロックのためのALWIPの一例を示す。
図7図7は、8×8ブロックのためのALWIPの一例を示す。
図8図8は、8×4ブロックのためのALWIPの一例を示す。
図9図9は、16×16ブロックのためのALWIPの一例を示す。
図10図10は、MPMリスト構築において用いられる隣接ブロックの一例を示す。
図11図11は、開示の技術に係る、マトリクスベースのイントラ予測のための例示の方法のフローチャートを示す。
図12図12は、開示の技術に係る、マトリクスベースのイントラ予測のための別の例示の方法のフローチャートを示す。
図13図13は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法のフローチャートを示す。
図14図14は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法のフローチャートを示す。
図15図15は、本願で説明するビジュアルメディアデコーディング又はビジュアルメディアエンコーディング技術を実施するためのハードウェアプラットフォームの一例のブロック図である。
図16図16は、隣接ブロックの一例を示す。
図17図17は、提案する縮小境界サンプル生成の一例である。
図18図18は、元の再構成された近隣サンプルを用いた提案するアップサンプリングの例を示す。
図19図19は、ビデオデコーダの一例を示すブロック図である。
図20図20は、本明細書で開示の様々な技術が実施され得る例示のビデオ処理システムを示すブロック図である。
図21図21は、本開示の技術を利用し得る例示のビデオコーディングシステムを示すブロック図である。
図22図22は、ビデオエンコーダの一例を示すブロック図である。
図23図23は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法の例示のフローチャートを示す。
図24図24は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法の例示のフローチャートを示す。
図25図25は、コンテキストコード化ビンを有するシンタックス要素へのctxIncの割り当てを含む、更新されたテーブルを示す。
図26図26は、コンテキストコード化ビンを有するシンタックス要素へのctxIncの割り当てを含む、更新されたテーブルを示す。
図27図27は、イントラ予測モードとMIPモードとの間のマッピングの仕様のための更新されたテーブルを示す。
図28図28は、MIP及びイントラ予測モード間のマッピングの仕様のための更新されたテーブルを示す。
【発明を実施するための形態】
【0024】
より高い解像度のビデオに対する要求の高まりにより、ビデオコーディング方法及び技術は現代の技術においてありふれたものになっている。ビデオコーデックは、典型的には、デジタルビデオを圧縮又は解凍する電子回路又はソフトウェアを含み、より高いコーディング効率を提供するために絶えず改良されている。ビデオコーデックは、圧縮されていないビデオの圧縮形式への変換又はその逆を行う。ビデオ品質、(ビットレートによって決定される)ビデオを表現するために用いられるデータの量、エンコーディン及びデコーディングアルゴリズムの複雑さ、データ損失及びエラーに対する感度、編集の容易さ、ランダムアクセス及びエンドツーエンド遅延(待ち時間)の間には複雑な関係がある。圧縮フォーマットは、通常、標準的なビデオ圧縮規格、例えば、高効率ビデオコーディング(HEVC)規格(H.265又はMPEG-H Part 2としても知られる)、最終化される汎用ビデオコーディング(VVC)規格又は他の現在の及び/又は将来のビデオコーディング規格に準拠する。
【0025】
開示の技術の実施形態は、ランタイム性能を改善するために、既存のビデオコーディング規格(例えば、HEVC、H.265)及び将来の規格に適用され得る。本明細書では、説明の可読性を向上させるためにセクション見出しを用いているが、説明又は実施形態(及び/又は実施)をそれぞれのセクションのみに限定するものではない。
【0026】
1 HEVCについての簡単なレビュー
1.1 HEVC/H.265におけるイントラ予測
イントラ予測は、考慮されたカラーチャネルで先に再構成されたサンプルを用いて、所与のTB(変換ブロック)のためにサンプルを生成することを伴う。イントラ予測モードはルーマ及びクロマチャンネルに対して別々にシグナリングされ、クロマチャンネルイントラ予測モードは「DM_CHROMA」モードを介してルーマチャンネルイントラ予測モードに任意に依存する。イントラ予測モードはPB(予測ブロック)レベルでシグナリングされるが、イントラ予測プロセスはCUの残差四分木階層に従ってTBレベルで適用されるため、1つのTBのコーディングがCU内の次のTBのコーディングに影響を与えることができるため、参照値として用いられるサンプルへの距離が減少される。
【0027】
HEVCはDCモード、平面モード及び33の方向性又は「角度」イントラ予測モードの35のイントラ予測モードを含む。33の角度イントラ予測モードを図1に示す。
【0028】
クロマカラーチャネルに関連するPBの場合、イントラ予測モードは、平面、DC、水平、垂直、「DM_CHROMA」モード又は時々、対角モード「34」のいずれかで指定される。
【0029】
クロマフォーマット4:2:2及び4:2:0では、クロマPBは(それぞれ)2つ又は4つのルーマPBと重複し得る。この場合、DM_CHROMAのためのルーマ方向はこれらのルミナンスPBの左上から取得される。
【0030】
DM_CHROMAモードは、ルーマカラーチャネルPBのイントラ予測モードがクロマカラーチャネルPBに適用されることを示す。これは比較的一般的であるため、intra_croma_pred_modeの最確モードコーディング方式はこのモードが選択される方に有利に偏る。
【0031】
2 VVCにおけるイントラ予測の例
2.1 67のイントラ予測モードによるイントラモードコーディング
自然ビデオで提示される任意のエッジ方向を捕捉するために、方向性イントラモードの数は、HEVCで用いられる33から65に広げられている。追加の方向性モードは、図2において赤色の点線の矢印として示され、平面モード及びDCモードは同じままである。これらのより高密度の方向性イントラ予測モードは、全てのブロックサイズと、ルーマ及びクロマイントラ予測の双方とに適用される。
【0032】
2.2 クロスコンポーネント線形モデル(CCLM)の例
一部の実施形態では、クロスコンポーネント冗長性を低減するために、クロスコンポーネント線形モデル(CCLM)予測モード(LMとも呼ばれる)がJEMで用いられ、クロマサンプルは、以下のような線形モデルを用いることにより同じCUの再構成ルーマサンプルに基づいて予測される。
pred(i,j)=α・rec’(i,j)+β (1)
【0033】
ここでは、pred(i,j)はCU内の予測クロマサンプルを表し、rec’(i,j)は同じCUのダウンサンプリングされた再構成ルーマサンプルを表す。線形モデルパラメータα及びβは、2つのサンプルからのルーマ値とクロマ値との関係から導出され、2つのサンプルはダウンサンプリングされた隣接するルーマサンプルのセット内でサンプル値が最小及び最大サンプルを持つルーマサンプルと、それらの対応するクロマサンプルである。図3は、左及び上のサンプルと、CCLMモードに関与する現在のブロックのサンプルとの位置の例を示す。
【0034】
このパラメータ計算はデコーディングプロセスの一部として行われ、単にエンコーダ探索操作として行われるだけではない。その結果、α及びβの値をデコーダに伝えるためにシンタックスは用いられない。
【0035】
クロマイントラモードコーディングでは、クロマイントラモードコーディングのために合計で8つのイントラモードが許されている。これらのモードは5つの従来のイントラモードと3つのクロスコンポーネント線形モデルモード(CCLM、LM_A、LM_L)を含む。クロマモードコーディングは、対応するルーマブロックのイントラ予測モードに直接依存する。Iスライスではルーマ及びクロマコンポーネントに対して別々のブロック分割構造が有効になっているため、1つのクロマブロックが複数のルーマブロックに対応し得る。したがって、クロマDMモードでは、現在のクロマブロックの中心位置をカバーする対応するルーマブロックのイントラ予測モードが直接継承される。
【0036】
2.3 複数参照ライン(MRL)イントラ予測
複数参照ライン(Multiple reference line)(MRL)イントラ予測はイントラ予測のためにより多くの参照ラインを用いる。図4には4つの参照ラインの例を示し、セグメントA及びFのサンプルは、再構成された隣接サンプルからフェッチされているのではなく、それぞれセグメントB及びEからの最も近いサンプルでパディングされている。HEVCイントラピクチャ予測は最も近い参照ライン(すなわち、参照ライン0)を用いる。MRLでは、2つの追加のライン(参照ライン1及び参照ライン3)が用いられる。選択された参照ラインのインデックス(mrl_idx)はシグナリングされ、イントラ予測子を生成するために用いられる。0より大きい参照ラインidxの場合、MPMリストには追加の参照ラインモードのみが含まれ、残りのモードなしでMPMインデックスのみがシグナリングされる。
【0037】
2.4 イントラサブパーティション(ISP)
イントラサブパーティション(ISP)ツールは、イントラ予測されたルーマブロックをブロックサイズに応じて垂直又は水平方向に2つ又は4つのサブパーティションに分割する。例えば、ISPの最小ブロックサイズは4×8(又は8×4)である。ブロックサイズが4×8(又は8×4)よりも大きい場合、対応するブロックは4つのサブパーティションに分割される。図5は2つの可能性の例を示す。全てのサブパーティションは、少なくとも16のサンプルを有する条件を満たす。
【0038】
各サブパーティションについて、再構成されたサンプルは、残差信号を予測信号に加えることによって得られる。ここで、残差信号はエントロピーデコーディング、逆量子化及び逆変換等のプロセスにより生成される。したがって、各サブパーティションの再構成されたサンプル値は次のサブパーティションの予測を生成するために利用可能であり、各サブパーティションは繰り返し処理される。加えて、処理すべき第1のサブパーティションはCUの左上のサンプルを含みものであり、下方向に(水平分割)又は右方向に(垂直分割)に続く。その結果、サブパーティション予測信号を生成するために用いられる参照サンプルは、ラインの左及び上側にのみ位置する。全てのサブパーティションは同じイントラモードを共有する。
【0039】
2.5 アフィン線形重み付けイントラ予測(ALWIP又はマトリクスベースのイントラ予測)
アフィン線形重み付けイントラ予測(Affine linear weighted intra prediction)(ALWIP、マトリクスベースのイントラ予測(MIP)としても知られる)がJVET―N0217で提案されている。
【0040】
JVET-N0217では、2つのテストが実施される。テスト1では、ALWIPは8Kバイトのメモリ制限で、サンプル当たり最大4乗算で設計される。テスト2はテスト1と同様であるが、メモリ要件及びモデルアーキテクチャの観点から設計がさらに簡素化される。
・全てのブロック形状に対して単一セットのマトリクス及びオフセットベクトル。
・全てのブロック形状に対してモード数を19に低減する。
・メモリ要件を5760の10ビット値、すなわち7.20キロバイトに低減する。
・予測されたサンプルの線形補間は、方向毎に単一ステップで行い、第1のテストのように反復補間を置き換える。
【0041】
2.5.1 JVET-N0217のテスト1
幅W及び高さHの矩形ブロックのサンプルを予測するために、アフィン線形重み付けイントラ予測(ALWIP)は、ブロックの左のH再構成隣接境界サンプルの1ラインと、ブロックの上のW再構成隣接境界サンプルの1ラインを入力として取る。再構成されたサンプルが利用可能でない場合は、従来のイントラ予測でなされるように生成される。予測信号の生成は下記の3つのステップに基づく。
【0042】
境界サンプルのうち、W=H=4の場合には4つのサンプルが、それ以外の全ての場合には8つのサンプルが平均化により抽出される。
【0043】
平均化されたサンプルを入力として用いて、マトリクスベクトル乗算と、その後にオフセットの加算が行われる。その結果、元のブロック内のサブサンプリングされたサンプルセットについての低減された予測信号が得られる。
【0044】
残りの位置での予測信号は、各方向において単一ステップの線形補間である線形補間により、サブサンプリングされたセットについての予測信号から生成される。
【0045】
予測信号を生成するために必要なマトリクス及びオフセットベクトルは、3組のマトリクスS、S、Sから取られる。セットSは、それぞれが16の行及び4つの列を有する18のマトリクスA ,i∈{0,…,17}と、それぞれのサイズが16である18のオフセットベクトルb ,i∈{0,…,17}とからなる。そのセットのマトリクス及びオフセットベクトルが4×4のサイズのブロックのために用いられる。セットSは、それぞれが16の行及び8つの列を有する10のマトリクスA ,i∈{0,…,9}と、それぞれのサイズが16である10のオフセットベクトルb ,i∈{0,…,9}とからなる。そのセットのマトリクス及びオフセットベクトルが4×8、8×4及び8×8のサイズのブロックのために用いられる。最後に、セットSは、それぞれが64の行及び8つの列を有する6つのマトリクスA ,i∈{0,…,5}と、それぞれのサイズが64である6つのオフセットベクトルb ,i∈{0,…,5}とからなる。そのセットのマトリクス及びオフセットベクトル又はこれらのマトリクス及びオフセットベクトルの一部は全ての他のブロック形状のために用いられる。
【0046】
マトリクスベクトルの積の計算に必要な乗算の総数は常に4×W×H 以下になる。つまり、ALWIPモードでは、サンプル当たり最大で4回の乗算が必要となる。
【0047】
2.5.2 境界の平均化
第1のステップでは、入力境界bdrytop及びbdryleftは、より小さい境界
(外1)
及び
(外2)
に縮小される(reduced)。ここで、
(外1)
及び
(外2)
は、4×4のブロックの場合には双方2つのサンプルからなり、それ以外の全ての場合では双方4つのサンプルからなる。
【0048】
4×4のブロックの場合、0≦i≦2の場合以下のように定義される。
【0049】
【数1】
(外2)
は同様に定義される。
【0050】
それ以外の場合、ブロックの幅WがW=4・2で与えられ、0≦i≦2の場合、以下のように定義される。
【0051】
【数2】
(外2)
は同様に定義される。
【0052】
2つの縮小された境界
(外1)
及び
(外2)
は縮小された境界ベクトルbdryredに連結され、境界ベクトルbdryredは4×4の形状のブロックの場合のサイズは4であり、それ以外の全ての形状のブロックの場合のサイズは8である。modeがALWIPモードを意味する場合、この連結は以下のように定義される。
【0053】
【数3】
【0054】
最後に、サブサンプリングされた予測信号の補間のために、大きなブロックいついて、第2のバーションの平均化境界は必要になる。つまり、min(W,H)>8で、W≧Hの場合、W=8*2と記載され、0≦i<8の場合、以下のように定義される。
【0055】
【数4】
【0056】
min(W,H)>8で、H>Wの場合、
(外2)
は同様に定義される。
【0057】
2.5.3 マトリクスベクトル乗算による縮小予測信号の生成
縮小された入力ベクトルbdryredから、縮小された予測信号predredを生成する。後者の信号は、幅Wred及び高さHredのダウンサンプリングされたブロックについての信号である。ここで、Wred及びHredは以下のように定義される。
【0058】
【数5】
【0059】
【数6】
【0060】
縮小された予測信号predredはマトリクスベクトルを算出し、オフセットを加えることにより以下のように計算される。
【0061】
predred=A・bdryred+b
ここで、Aは、Wred・Hred行を有し、W=H=4の場合には4つの列を、他の全ての場合には8つの列を有するマトリクスである。bはサイズがWred・Hredのベクトルである。
【0062】
マトリクスA及びベクトルbはセットS、S、Sのうちの1つから以下のように取られる。インデックスidx=idx(W,H)は以下のように定義される。
【0063】
【数7】
【0064】
さらにmは以下のようになる。
【0065】
【数8】
【0066】
そして、idx≦1又はidx=2であり、min(W,H)>4の場合、A=
(外3)
及びb=
(外4)
となる。idx=2であり、min(W,H)=4の場合、Aは、W=4の場合、ダウンサンプリングされたブロックの奇数のx座標に対応し、H=4の場合にはダウンサンプリングされたブロックの奇数のy座標に対応する
(外3)
の各列を除外することにより生じるマトリクスである。
【0067】
最後に、縮小された予測信号は、
・W=H=4及びmode≧18
・max(W,H)=8及びmode≧10
・max(W,H)>8及びmode≧6
の場合にその転置により置き換えられる。
【0068】
W=H=4の場合、predredの算出に必要な乗算の数は4である。何故なら、この場合、Aは4つの行及び16の列を有するからである。他の全ての場合、Aは8つの行と、Wred・Hred列とを有し、それらの場合には、8・Wred・Hred≦4・W・H回の乗算が必要になることを即座に確認する。すなわち、これらの場合でも、predredの算出にはサンプル当たり最大で4回の乗算が必要になる。
【0069】
2.5.4 ALWIPプロセス全体の説明
平均化、マトリクスベクトル乗算及び線形補間のプロセス全体が、異なる形状について図6図9に示される。なお、残りの形状は図示の場合のうちの1つと同様に扱われる。
【0070】
1. 4×4ブロックであると仮定すると、ALWIPは境界の各軸に沿って2回の平均を取る。得られた4つの入力サンプルはマトリクスベクトル乗算に入る。マトリクスはセットSから取られる。オフセットを加えた後、16の最終の予測サンプルが得られる。予測信号を生成するために線形補間は必要ではない。そのため、サンプル当たり合計で(4・16)/(4・4)=4の乗算が行われる。
【0071】
2. 8×8ブロックであると仮定すると、ALWIPは境界の各軸に沿って4回の平均を取る。得られた8つの入力サンプルはマトリクスベクトル乗算に入る。マトリクスはセットSから取られる。予測ブロックの奇数位置で16のサンプルが得られる。そのため、サンプル当たり合計で(8・16)/(8・8)=2の乗算が行われる。オフセットを加えた後に、これらのサンプルは縮小された上側境界を用いることにより垂直方向に補間される。次に、元の左の境界を用いることにより水平補間が行われる。
【0072】
3. 8×4ブロックであると仮定すると、ALWIPは境界の水平軸に沿って4回の平均と、左の境界で4つの元の境界値とを取る。得られた8つの入力サンプルはマトリクスベクトル乗算に入る。マトリクスはセットSから取られる。予測ブロックの奇数の水平位置及び各垂直位置で16のサンプルが得られる。そのため、サンプル当たり合計で(8・16)/(8・4)=4の乗算が行われる。オフセットを加えた後に、これらのサンプルは元の左の境界を用いることにより水平補間される。
【0073】
4. 16×16ブロックであると仮定すると、ALWIPは境界の水平軸に沿って4回の平均を取る。得られた8つの入力サンプルはマトリクスベクトル乗算に入る。マトリクスはセットSから取られる。予測ブロックの奇数の位置で16のサンプルが得られる。そのため、サンプル当たり合計で(8・64)/(16・16)=2の乗算が行われる。オフセットを加えた後に、これらのサンプルは上側境界の8つの平均を用いることにより垂直方向に補間される。次に、元の左の境界を用いることにより水平補間が行われる。この場合、補間プロセスは何ら乗算を加えない。そのため、ALWIP予測を算出するために、サンプル当たり2回の乗算が全体で必要になる。
【0074】
より大きな形状については、手順は本質的に同じであり、サンプル当たりの乗算の数は4未満であるためチェックが容易である。
【0075】
W>8のW×8ブロックについては、サンプルが奇数の水平位置と各垂直位置に与えられるため、水平補間のみが必要である。
【0076】
最後に、W>8のW×4ブロックについては、A_kbeは、ダウンサンプリングされたブロックの水平軸に沿った奇数のエントリに対応する各行を除外することによって生じるマトリクスとする。そのため、出力サイズは32であり、ここでも水平補間のみが行われる。
【0077】
転置されたケースはそれに応じて取り扱われる。
【0078】
2.5.5 単一ステップ線形補間
max(W,H)≧8のW×Hブロックの場合、予測信号は、線形補間によるWred×Hred対して縮小された予測信号から生じる。ブロックの形状に応じて、垂直、水平又は両方向で線形補間が行われる。線形補間が両方向に適用される場合、W<Hの場合に最初に水平方向に適用され、それ以外の場合は垂直方向に最初に適用される。
【0079】
一般性を失うことなく、max(W,H)≧8及びW≧Hの場合のW×Hのブロックを考え見る。そして、一次元線形補間が次のように行われる。一般性を失うことなく、垂直方向への線形補間を記述すれば十分である。先ず、縮小された予測信号は、境界信号によって上部に拡げる。垂直方向のアップサンプリング係数Uver=H/Hredを定義し、Uver=2uver>1を記載する。そして、拡げられた縮小された予測信号は以下のように定義される。
【0080】
【数9】
【0081】
次いで、この拡げられた縮小された予測信号から、垂直線形補間予測信号が以下のように生成される。
【0082】
【数10】
0≦x≦Wredの場合、0≦y<Hred及び0≦κ<Uverである。
【0083】
2.5.6 提案するイントラ予測モードの信号化
イントラモードにおける各コーディングユニット(CU)について、ALWIPモードが対応する予測ユニット(PU)に適用されるかどうかを示すフラグがビットストリームで送信される。後者のインデックスの信号化は、JVET-M0043と同様にMRLと調和される。ALWIPモードが適用される場合、ALWIPモードのインデックスpremodeが3MPMのMPM-listを用いてシグナリングされる。
【0084】
ここで、MPMの導出は、上側及び左側のPUのイントラモードを用いて次のように行われる。ALWIPモードを各従来のイントラ予測モードpremodeAngularに割り当てる3つの固定テーブルmap_angular_to_ALWIPidxがある(idx∈{0,1,2})。
【0085】
premodeALWIP=map_angular_to_ALWIPidx[premodeAngular
幅W及び高さHの各PUについて、セクション2.5.3のように3つのセットのうちのどれからALWIPパラメータを取るべきかを示すインデックスidx(PU)=idx(W,H)∈{0,1,2}が定義される。
【0086】
上の予測ユニットPUaboveが利用可能で、現在のPUと同じCTUに属し、イントラモードにあり、idx(PU)=idx(PUabove)であり、ALWIPがALWIPモード
(外5)
でPUaboveに適用される場合、以下のようになる。
【0087】
【数11】
【0088】
上側の予測ユニットPUが利用可能で、現在のPUと同じCTUに属し、イントラモードにあり、上側のPUに従来のイントラ予測モード
(外6)
が適用される場合、以下のようになる。
【0089】
【数12】
【0090】
それ以外の全ての場合は以下のようになる。
【数13】
【0091】
これは、このモードは利用できないことを意味する。方法は同じであるものの左側のPUが現在のPUと同じCTUに属する必要があるという制約がない方法で、モード
(外7)
が導出される。
【0092】
最後に、3つの固定デフォルトリストlistidx(idx∈{0,1,2})が提供され、それぞれは3つの異なるALWIPモードを含む。デフォルトリストlistidx(PU)と、モード
(外5)
及び
(外7)
のうち、デフォルト値で-1に置き換え、繰り返しを除外することにより3つの異なるMPMを構築する。
【0093】
ALWIPのMPMリスト構築で使用される左側の隣接ブロック及び上側の隣接ブロックは、図10に示すようにA1及びB1である。
【0094】
2.5.7 従来のルーマ及びクロマイントラ予測モードのための適応MPMリスト導出
提案するALWIPモードは、従来のイントラ予測モードのMPMベースのコーディングと次のように調和される。従来のイントラ予測モードのためのルーマ及びクロマMPMリストの導出プロセスは固定テーブルmap_ALWIP_to_angularidx(idx∈{0,1,2})を用い、所与のPUのALWIPモードpremodeALWIPを従来のイントラ予測モードの1つにマッピングする。
premodeAngular=map_ALWIP_to_angularidx(PU)[premodeALWIP
【0095】
ルーマのMPMリストの導出では、ALWIPモードpremodeALWIPを用いる隣接ルーマブロックに遭遇すると、このブロックは、従来のイントラ予測モードpremodeAngularを用いたものであるかのように扱われる。クロマのMPMリストの導出では、現在のルーマブロックがLWIPモードを用いる場合は常に、ALWIPモードを従来のイントラ予測モードに変換するために同じマッピングが用いられる。
【0096】
2.5.8 対応する修正作業原案
一部の実施形態では、このセクションで説明したようい、intra_lwip_flag、intra_lwip_mpm_flag、intra_lwip_mpm_idx及びintra_lwip_mpm_remainderに関する部分が、開示の技術の実施形態に基づいて作業原案に追加されている。
【0097】
一部の実施形態では、このセクションで説明したように、開示の技術の実施形態に基づいて作業原案になされた追加及び修正を示すために<begin>及び<end>タグが用いられている。
【0098】
シンタックステーブル
コーディングユニットシンタックス
【0099】
【表1】
【0100】
意味論
<begin>intra_lwip_flag[x0][y0]=1は、ルーマサンプルのためのイントラ予測の種類はアフィン線形重み付けイントラ予測であることを指定する。intra_lwip_flag[x0][y0]=0は、ルーマサンプルのためのイントラ予測の種類はアフィン線形重み付けイントラ予測でないことを指定する。
intra_lwip_flag[x0][y0]が存在しない場合、それは0と等しいと推定される。
シンタックス要素intra_lwip_mpm_flag[x0][y0]、intra_lwip_mpm_idx[x0][y0]及びintra_lwip_mpm_remainder[x0][y0]はルーマサンプルのためのアフィン線形重み付けイントラ予測モードを指定する。アレイインデックスx0、y0は、ピクチャの左上のルーマサンプルに対して、考慮されるコーディングブロックの左上のルーマサンプルの位置(x0、y0)を指定する。intra_lwip_mpm_flag[x0][y0]=1の場合、アフィン線形重み付けイントラ予測モードは、8.4.X項に従って隣接するイントラ予測コーディングユニットから推定される。
intra_lwip_mpm_flag[x0][y0]が存在しない場合、それは1と等しいと推定される。<end>
intra_subpartitions_split_flag[x0][y0]は、イントラサブパーティション分割の種類が水平か垂直かを指定する。intra_subpartitions_split_flag[x0][y0]が存在しない場合は以下のように推定される。
-intra_lwip_flag[x0][y0]=1の場合、intra_subpartitions_split_flag[x0][y0]は0と等しいと推定される。
-そうでなければ、下記が適用される。
-cbHeightがMaxTbSizeYより大きい場合、intra_subpartitions_split_flag[x0][y0]は0と等しいと推定される。
-そうでなければ、(cbWidthがMaxTbSizeYよりも大きい)、intra_subpartitions_split_flag[x0][y0]は1と等しいと推定される。
【0101】
デコーディングプロセス
8.4.1 イントラ予測モードでコード化されたコーディングユニットのための一般的なデコーディングプロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
-単一ツリー又は二重ツリーのどちらが用いられているか、二重ツリーが用いられている場合は、現在のツリーがルーマ又はクロマコンポーネントのどちらに対応するかを指定する変数treeTypeと、
である。
このプロセスの出力はインループフィルタリングの前の修正された再構成ピクチャである。
8.7.1項で指定される量子化パラメータの導出プロセスが、ルーマ位置(xCb,yCb)、ルーマサンプル内の現在のコーディングブロックの幅cbWidth、ルーマサンプル内の現在のコーディングブロックの高さcbHeight及び変数treeTypeを入力として呼び出される。
treeTypeがSINGLE_TREEに等しいか又はtreeTypeがDUAL_TREE_LUMAと等しい場合、ルーマサンプルのためのデコーディングプロセスは以下のように指定される。
pcm_flag「xCb」「yCb」=1の場合、再構成ピクチャは以下のように修正される。
【0102】
【数14】
【0103】
そうでなければ、以下が適用される。
1. ルーマイントラ予測モードは次のように導出される。
-intra_lwip_flag[xCb][yCb]=1の場合、8.4.X項で指定されるアフィン線形重み付けイントラ予測モードの導出プロセスは、ルーマ位置(xCb,yCb)、ルーマサンプル内の現在のコーディングブロックの幅cbWidth、ルーマサンプル内の現在のコーディングブロックの高さcbHeightを入力として呼び出される。
-そうでなければ、8.4.2項で指定されるルーマイントラ予測モードの導出プロセスが、ルーマ位置(xCb,yCb)、ルーマサンプル内の現在のコーディングブロックの幅cbWidth、ルーマサンプル内の現在のコーディングブロックの高さcbHeightを入力として呼び出される。
2. 8.4.4.1項で指定されるイントラブロックの一般的な復号化プロセスが、ルーマ位置(xCb,yCb)、ツリーの種類treeType、cbWidthと等しく設定された変数nTbW、cbHeightと等しく設定された変数nTbH、IntraPredModeY[xCb][yCb]と等しく設定された変数predModeintra、0と等しく設定された変数cldxを入力として呼び出され、出力はインループフィルタリング前の修正された再構成ピクチャである。
...
<begin>
【0104】
8.4.X アフィン線形重み付けイントラ予測モードの導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のルーマコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
である。
このプロセスでは、アフィン線形重み付けイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
IntraPredModeY[xCb][yCb]は、以下の順番のステップによって導出される。
1.隣接位置(xNbA、yNbA)及び(xNbB、yNbB)は、それぞれ(xCb-1,yCb)及び(xCb,yCb-1)と等しく設定される。
2.A又はBのいずれかで置き換えられるXについて、変数candLwipModeXは以下のように導出される。
-6.4.X項で規定されるブロックの可用性導出プロセス[Ed.(BB):近隣ブロック可用性確認プロセスtbd]は、(xCb,yCb)と等しくと設定された位置(xCurr,yCurr)と、(xNbX,yNbX)と等しく設定された隣接位置(xNbY,yNbY)を入力として呼び出され、出力はavalableXに割り当てられる。
-アフィン線形重み付けイントラ予測モードの候補candLwipModeXは以下のように導出される。
-以下の条件のうちの1つ以上に該当する場合、candLwipModeX=-1に設定される:
-変数availableX=FALSEの場合。
-CuPredMode[xNbX][yNbX]がMODE_INTRAと等しくなく、mh_intra_flag[xNbX][yNbX]が1と等しくない場合。
-pcm_flag[xNbX][yNbX]=1の場合。
-X=Bであり、yCb-1は((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい場合。
-そうでなければ、以下が適用される。
-8.4.X.1項で規定されるブロックのサイズタイプ導出プロセスは、ルーマサンプル内の現在のコーディングブロックの幅cbWidthと、ルーマサンプル内の現在のコーディングブロックの高さcbHeightとを入力として呼び出され、出力は変数sizeIdに割り当てられる。
-intra_lwip_flag[xNbX][yNbX]=1の場合、8.4.X.1項に規定のブロックのサイズタイプ導出プロセスは、ルーマサンプル内の隣接するコーディングブロックの幅nbWidthX及びルーマサンプル内の隣接するコーディングブロックの高さnbHeightXを入力として呼び出され、出力は変数sizeIdXに割り当てられる。
-sizeId=sizeIdXの場合、candLwipModeX=IntraPredModeY[xNbX][yNbX]に設定される。
そうでなければ、candLwipModeX=-1に設定される。
-そうでなければ、candLwipModeXは、IntraPredModeY[xNbX][yNbX]及び表8-X1に規定のsizeIdを用いて導出される。
3. candLwipModeList[x](x=0..2)は、表8-X2に規定のlwipMPMCand[sizeId]を用いて以下のように導出される。
-candLwipModeA及びcandLwipModeBの両方が=-1の場合、以下が適用される。
candLwipModeList[0]=lwipMpmCand[sizeId][0] (8-X1)
candLwipModeList[1]=lwipMpmCand[sizeId][1] (8-X2)
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X3)
-そうでなければ、以下が適用される。
-candLwipModeA=candLwipModeBの場合又はcandLwipModeA又はcandLwipModeBのいずれかが=-1の場合は、以下が適用される。
candLwipModeList[0]=(candLwipModeA!=-1)?candLwipModeA:candLwipModeB (8-X4)
-candLwipModeList[0]=lwipMpmCand[sizeId][0]の場合は、以下が適用される。
candLwipModeList[1]=lwipMpmCand[sizeId][1] (8-X5)
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X6)
-そうでなければ、以下が適用される。
candLwipModeList[1]=lwipMpmCand[sizeId][0] (8-X7)
candLwipModeList[2]=(candLwipMode[0]!=lwipMpmCand[sizeId][1])?lwipMpmCand[sizeId][1]:lwipMpmCand[sizeId][2] (8-X8)
-そうでなければ、以下が適用される。
candLwipModeList[0]=candLwipModeA (8-X9)
candLwipModeList「0」=candLwipModeB (8-X10)
-candLwipModeA及びcandLwipModeBの両方がlwipMpmCand[sizeId][0]と等しくない場合、以下が適用される。
candLwipModeList[2]=lwipMpmCand[sizeId][0] (8-X11)
-そうでなければ、以下が適用される。
-candLwipModeA及びcandLwipModeBの両方がlwipMpmCand[sizeId][1]と等しくない場合、以下が適用される。
candLwipModeList[2]=lwipMpmCand[sizeId][1] (8-X12)
-そうでなければ、以下が適用される。
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X13)
4.IntraPredModeY[xCb][yCb]は、以下の手順を適用することにより導出される。
-intra_lwip_mpm_flag[xCb][yCb]=1の場合、IntraPredModeY[xCb][yCb]=candLwipModeList[intra_lwip_mpm_idx[xCb][yCb]]に設定される。
-そうでなければ、IntraPredModeY[xCb][yCb]は、以下の順番のステップを適用することにより導出される。
1.candLwipModeList[i]がcandLwipModeList[j]より大きい場合(i=0..1及び各iについて、j=(i+1)..2)、両方の値は次のように交換される。
(candLwipModeList[i],candLwipModeList[j])=Swap(candLwipModeList[i],candLwipModeList[j]) (8-X14)
2.IntraPredModeY[xCb][yCb]は以下の順番のステップにより導出される。
i.IntraPredModeY[xCb][yCb]=intra_lwip_mpm_remainder[xCb][yCb]に設定される。
ii.i=0~2の場合、IntraPredModeY[xCb][yCb]がcandLwipModeList[i]以上の場合、IntraPredModeY[xCb][yCb]の値は1インクリメントされる。
変数IntraPredModeY[x][y](x=xCb..xCb+cbWidth-1及びy=yCb..yCb+cbHeight-1)は、IntraPredModeY[xCb][yCb]と等しくなるように設定される。
【0105】
8.4.X.1 予測ブロックサイズタイプの導出プロセス
このプロセスへの入力は、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
である。
このプロセスの出力は変数sizeIdである。
変数sizeIdは以下のように導出される。
-cbWidth及びcbHeightの両方が=4の場合、sizeIdは=0に設定される。
-そうでなければ、cbWidth及びcbHeightの両方が8以下の場合、sizeId=1に設定される。
-そうでなければ、sizeIdは=2に設定される。
【0106】
【表2】
表8-X1:イントラ予測とアフィン線形重み付けイントラ予測モードとの間のマッピングの仕様
【0107】
【表3】
表8-X2:アフィン線形重み付けイントラ予測候補モードの仕様
<end>
【0108】
8.4.2. ルーマイントラ予測モードの導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のルーマコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、である。
このプロセスでは、ルーマイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
表8-1は、イントラ予測モードIntraPredModeY[xCb][yCb]の値及び関連名称を規定する。
【0109】
【表4】
【0110】
IntraPredModeY[xCb][yCb]は以下の順番のステップにより導出される。
1.隣接位置(xNbA,yNbA)及び(xNbB,yNbB)はそれぞれ(xCb-1,yCb+cbHeight-1)及び(xCb+cbWidth-1,yCb-1)に等しく設定される。
2.A又はBのいずれかで置き換えられるXについて、変数candIntraPredModeXは以下のように導出される。
-節<begin>6.4.X「Ed.(BB):隣接ブロック可用性確認プロセスtbd」<end>で規定されるブロックの可用性導出プロセスは、(xCb,yCb)と等しく設定された位置(xCurr,yCur)及び(xNbY,yNbY)と等しく設定された隣接位置(xNbY,yNbY)を入力として呼び出され、出力はavailableXに割り当てられる。
-イントラ予測候補モードcandIntraPredModeXは以下のように導出される。
以下の条件のうちの1つ以上に該当する場合、candIntraPredModeX=INTRA_PLANARに設定される:
-変数availableX=FALSEの場合。
-CuPredMode[xNbX][yNbX]がMODE_INTRAと等しくなく、clip_flag[xNbX][yNbX]が1と等しくない場合。
-pcm_flag[xNbX][yNbX]=1の場合。
-X=Bであり、yCb-1は((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい場合。
そうでなければ、candIntraPredModeXは以下のように導出される。
-intra_lwip_flag[xCb][yCb]=1の場合、candIntraPredModeXは以下の順番のステップにより導出される。
i. 8.4.X.1項で規定されたブロックのサイズタイプ導出プロセスは、ルーマサンプル内の現在のコーディングブロックの幅cbWidth及びルーマサンプル内の現在のコーディングブロックの高さcbHeightを入力として呼び出され、出力は変数sizeIdに割り当てられる。
ii. candIntraPredModeXは、IntraPredModeY[xNbX][yNbX]及び表8-X3に規定のsizeIdを用いて導出される。
-そうでなければ、candIntraPredModeX=IntraPredModeY[xNbX][yNbX]に設定される。
3.変数ispDefaultMode1及びispDefaultMode2は以下のように定義される:
-IntraSubPartitionsSplitType=ISP_HOR_SPLITの場合、ispDefaultMode1=INTRA_ANGULAR18に設定され、ispDefaultMode2=INTRA_ANGULAR5に設定される。
-そうでなければ、ispDefaultMode1=INTRA_ANGULAR50設定され、ispDefaultMode2=INTRA_ANGULAR63に設定される。
...
【0111】
【表5】
表8-X3:アフィン線形重み付けイントラ予測モードとイントラ予測モードとの間のマッピングの仕様
【0112】
8.4.3 クロマイントラ予測モードの導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のクロマコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、である。
このプロセスでは、クロマ内予測モードIntraPredModeC[xCb」[yCb]が導出される。
対応するルーマイントラ予測モードlumaIntraPredModeは以下のように導出される。
-intra_lwip_flag[xCb][yCb]=1の場合、lumaIntraPredModeは以下の順番のステップにより導出される。
i. 8.4.X.1項で規定されたブロックのサイズタイプ導出プロセスは、ルーマサンプル内の現在のコーディングブロックの幅cbWidthと、ルーマサンプル内の現在のコーディングブロックの高さcbHeightを入力として呼び出され、出力は変数sizeIdに割り当てられる。
ii. ルーマイントラ予測モードは、表8-X3に規定のIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]及びsizeIdを用いて導出され、candIntraPredModeXの値がlumaIntraPredModeに割り当てられる。
-そうでなければ、lumaIntraPredMode=IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]に設定される。
クロマ内予測モードIntraPredModeC[xCb][yCb]は、表8-2及び表8-3に規定のintra_croma_pred_mode[xCb][yCb]
及びlumaIntraPredModeを用いて導出される。
...
【0113】
xxx.イントラサンプル予測
<begin>
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)と、
-イントラ予測モードを指定する変数predModeIntraと、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
-コーディングブロック幅を指定する変数nCbWと、
-コーディングブロック高さを指定する変数nCbHと、
-現在のブロックのカラーコンポーネントを指定する変数cIdxと、である。
このプロセスの出力は、予測サンプルpredSamples[x][y](x=0..nTbW-1、y=0..nTbH-1)である。
予測サンプルpredSamples[x][y]は以下のように導出される。
-intra_lwip_flag[xTbCmp][yTbCmp]=1で、cIdx=0の場合、8.4.4.2.X1項に規定のアフィン線形重み付けイントラサンプル予測プロセスが位置(xTbCmp,yTbCmp)、イントラ予測モードpredModeIntra、変換ブロック幅nTbW及び変換ブロック高さnTbHを入力として呼び出され、出力はpredSamplesである。
-そうでなければ、8.4.4.2.X1項に規定の一般的なイントラサンプル予測プロセスが、位置(xTbCmp,yTbCmp)、イントラ予測モードpredModeIntra、変換ブロック幅nTbW及び変換ブロック高さnTbH、コーディングブロック幅nCbW及びコーディングブロック高さnCbH並びに変数CIdxを入力として呼び出され、出力はpredSamplesである。
【0114】
8.4.4.2.X1 アフィン線形重み付けイントラサンプル予測
このプロセスへの入力は、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)と、
-イントラ予測モードを指定する変数predModeIntraと、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、である。
このプロセスの出力は、予測サンプルpredSamples[x][y](x=0..nTbW-1、y=0..nTbH-1)である。
8.4.X.1項で規定のブロックのサイズタイプ導出プロセスは、変換ブロック幅nTbW及び変換ブロック高さnTbHを入力として呼び出され、出力は変数sizeIdに割り当てられる。
変数numMode、boundarySize、predW、predH及びpredCは、表8-X4に規定のsizeIdを用いて導出される。
【0115】
【表6】
表8-X4:sizeIdに応じたモードの数、境界サンプルサイズ及び予測サイズの仕様
【0116】
フラグisTransposedは以下のように導出される。
isTransposed=(predModeIntra>(numModes/2))?1:0 (8-X15)
フラグneedUpsBdryHor及びneedUpsBdryVerは以下のように導出される。
needUpsBdryHor=(nTbW>predW)?TRUE:FALSE(8-X16)
needUpsBdryHor=(nTbH>predH)?TRUE:FALSE(8-X17)
変数upsBdryW及びupsBdryHは以下のように導出される。
upsBdryW=(nTbH>nTbW)?nTbW:predW (8-X18)
upsBdryH=(nTbH>nTbW)?predH:nTbH (8-X19)
変数lwipW及びlwipHは以下のように導出される。
lwipW=(isTransposed= =1)?predH:predW (8-X20)
lwipH=(isTransposed= =1)?predW:predH (8-X21)
参照サンプルrefT[x](x=0..nTbW-1)及びrefL[y](y=0..nTbH-1)の生成のために、8.4.4.2.X2項に規定の参照サンプル導出プロセスが、位置(xTbCmp,yTbCmp)、変換ブロック幅nTbW及び変換ブロック高さnTbHを入力、左上のrefT[x](x=0..nTbW-1)及びrefL[y](y=0..nTbH-1)を出力として呼び出される。
境界サンプルp[x](x=0..2*boundarySize-1)の生成のために、以下が適用される。
-上側参照サンプルのために、8.4.4.2.X3項に規定の境界縮小プロセスが、ブロックサイズnTbW、参照サンプルrefT、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer及びアップサンプリング境界サイズupsBdryWを入力とし、アップサンプリング境界サンプルupBdryT[x](x=0..boundrySize-1)及び縮小境界サンプルredT[x](x=0..upsBdryW-1)を出力として呼び出される。
-左側参照サンプルのために、8.4.4.2.X3項に規定される境界縮小プロセスが、ブロックサイズnTbW、参照サンプルrefL、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer及びアップサンプリング境界サイズupsBdryWを入力とし、縮小境界サンプルredL[x](x=0..boundrySize-1)及びアップサンプリング境界サンプルupBdryT[x](x=0..upsBdryW-1)を出力として呼び出される。
-縮小上側境界サンプルredT及び縮小左側境界サンプルredLは以下のように境界サンプルアレイpに割り当てられる。
isTransposed=1の場合、p[x]=redL[x](x=0..boundrySize-1)に設定され、p[x+boundarySize]=redT[x]に(x=0..boundrySize-1)設定される。
そうでなければ、p[x]=redT[x](x=0..boundrySize-1)に設定され、p[x+boundarySize]=redL[x]に(x=0..boundrySize-1)設定される。
predModeIntraに従ったイントラサンプル予測プロセスでは、以下の順番のステップが適用される。
1.アフィン線形加重サンプルpredLwip[x][y](x=0..lwipW-1,y=0..lwipH-1)は以下のように導出される。
-変数modeIdが以下のように導出される。
modeId=predModeIntra-(isTransposed= =1)?(numModes/2):0 (8-X21)
-重みマトリクスmWeight[x][y](x=0..2*boundarySize-1,y=0..predC*predC-1)は、表8-XX[TBD:
追加重みマトリクス]で規定のsizeId及びmodeIdを用いて導出される。
-バイアスベクトルvBias[y](y=0..predC*predC-1)は、表8-XX[TBD:
追加重みマトリクス]で規定のsizeId及びmodelIdを用いて導出される。
-変数sWは、表8-X5に規定のsizeId及びmodelIdを用いて導出される。
-アフィン線形加重サンプルpredLwip[x][y](x=0..lwipW-1,y=0..lwipH-1)は以下のように導出される。
oW=1<<(sW-1) (8-X23)
sB=BitDepth-1 (8-X24)
incW=(predC>lwipW)?2:1 (8-X25)
incH=(predC>lwipH)?2:1 (8-X26)
【0117】
【数15】
【0118】
予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
-isTransposed=1の場合、predLwip[x][y](x=0..nTbW-1,y=0..nTbH-1)=predLwip[y][x]に設定される。
-needUpsBdryVer=TRUEであるか又はneedUpsBdryHor=TRUEの場合、8.4.4.2.X4項に規定の予測アップサンプリングプロセスが、入力ブロック幅preW、入力ブロック高さpredH、アフィン線形加重サンプルpredLwip、変換ブロック幅nTbW、変換ブロック高さnTbH、アップサンプリング境界幅upsBdryW、アップサンプリング境界高さupsBdryH、上側アップサンプリング境界サンプルupsBdryT及び左側アップサンプリング境界サンプルupsBdryLを入力として呼び出され、出力は予測サンプルアレイpredSamplesである。
-そうでなければpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)=predLwip[x][y]に設定される。
【0119】
【表7】
表8-X5:sizeId及びmodeIdに応じた重みシフトの仕様
【0120】
8.4.4.2.X2 参照サンプル導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在の変換ブロックの左上のルーマサンプルを指定するサンプル位置(xTbY,yTbY)と、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、である。
このプロセスの出力は、上側参照サンプルrefT[x](x=0..nTbW-1)、左側参照サンプルrefL[y](y=0..nTbH-1)である。
隣接サンプルrefT[x](x=0..nTbW-1)及びサンプルrefL[y](y=0..nTbH-1)はインループフィルタプロセスの前に構築されるサンプルであり、以下のように導出される。
上側の隣接ルーマ位置(xNbT,yNbT)及び左側の隣接ルーマ位置(xNbL,yNbL)は以下のように指定される。
(xNbT,yNbT)=(xTbY+x,yTbY-1) (8-X28)
(xNbL,yNbL)=(xTbY-1,yTbY+y) (8-X29)
-6.4.X項に規定されるブロックの可用性導出プロセス[Ed.(BB):隣接ブロック可用性確認プロセスtbd]は、(xTbY,yTbY)と等しく設定された現在のルーマ位置(xCurr,yCurr)と、上側の隣接ルーマ位置(xNbT,yNbT)を入力として呼び出され、出力はavalTop[x](x=0..nTbW-1)に割り当てられる。
-6.4.X項に規定されるブロックの可用性導出プロセス[Ed.(BB):隣接ブロック可用性確認プロセスtbd]は、(xTbY,yTbY)と等しく設定された現在のルーマ位置(xCurr,yCurr)と、左側の隣接ルーマ位置(xNbT,yNbT)を入力として呼び出され、出力はavalLeft[x](y=0..nTbH-1)に割り当てられる。
-上側参照サンプルrefT[x](x=0..nTbW-1)は以下のように導出される。
-全てのavalTop[x](x=0..nTbW-1)=TRUEの場合、位置(xNbT,yNbT)のサンプルはrefT[x](x=0..nTbW-1)に割り当てられる。
-そうでなければ、availTop[0]=FALSEの場合、全てのrefT[x](x=0..nTbW-1)は1<<(BitDepth-1)と等しく設定される。
-そうでなければ、参照サンプルrefT[x](x=0.nTbW-1)は、以下の順番のステップにより導出される。
1. 変数lastTは、FALSEと等しいシーケンスavailTop[x](x=1..nTbW-1)の内の第1の要素の位置xと等しくなるように設定される。
2. x=0..lastT-1毎に、位置(xNbT,yNbT)のサンプルがrefT[x]に割り当てられる。
3. x=lastT..ntbW-1毎に、refT[x]=refT[lastT-1]に設定される。
-左側参照サンプルrefL[y](x=0..nTbH-1)は以下のように導出される。
-全てのavalLeft[y](y=0..nTbH-1)=TRUEの場合、位置(xNbT,yNbT)のサンプルはrefL[y](y=0..nTbH-1)に割り当てられる。
-そうでなければ、availLeft[0]=FALSEの場合、全てのrefL[y](y=0..nTbH-1)は1<<(BitDepth-1)と等しく設定される。
-そうでなければ、参照サンプルrefL[y](y=0.nTbH-1)は、以下の順番のステップにより導出される。
1. 変数lastLは、FALSEと等しいシーケンスavailLeft[y](y=1..nTbH-1)の内の第1の要素の位置yと等しくなるように設定される。
2. y=0..lastL-1毎に、位置(xNbT,yNbT)のサンプルがrefL[y]に割り当てられる。
3. y=lastL..ntbH-1毎に、refL[y]=refL[lastL-1]に設定される。
【0121】
境界縮小プロセスの仕様
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在の変換ブロックの左上のルーマサンプルを指定するサンプル位置(xTbY,yTbY)と、
-変換ブロックサイズを指定する変数nTbXと、
-参照サンプルrefX[x](x=0..nTbX-1)と、
-ダウンサンプリング境界サイズを指定する変数boundarySizeと、
-アップサンプリングのために中間境界サンプルが必要かどうかを指定するフラグneedUpsbdryXと、
-アップサンプリングのための境界サイズを指定する変数UpsbdrySizeと、である。
このプロセスの出力は、縮小境界サンプルredX[x](x=0..boundarySize-1)及びアップサンプリング境界サンプルupBdryX[x](x=0..upsBdrySize-1)である。
アップサンプリング境界サンプルupBdryX[x](x=0..upsBdrySize-1)は以下のように導出される。
-needUpsBdryX=TRUEであり、upsBdrySizeがnTbXよりも小さい場合、以下が適用される。
uDwn=nTbX/upsBdrySize (8-X28)
【0122】
【数16】
【0123】
-そうでなかれば、(upsBdrySize=nTbX)、upBdryX[x]=refX[x]に設定される。
縮小境界サンプルredX[x](x=0..boundarySize-1)は以下のように導出される。
-boundarySizeがupsBdrySizeよりも小さい場合、以下が適用される。
uDwn=nTbX/upsBdrySize (8-X28)
bDwn=upsBdrySize/boundarySize (8-X32)
【0124】
【数17】
【0125】
-そうでなかれば、(boundarySize=upsBdrySize)、redX[x]=upBdryX[x]に設定される。
【0126】
8.4.4.2.X4 予測アップサンプリングプロセスの仕様
このプロセスへの入力は、
-入力ブロック幅を指定する変数predWと、
-入力ブロック高さを指定する変数predHと、
-アフィン線形加重サンプルpredLwip[x][y](x=0..predW-1,y=0..predH-1)と、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
-アップサンプリング境界幅を指定する変数upsBdryWと、
-アップサンプリング境界高さを指定する変数upsBdryHと、
-上側アップサンプリング境界サンプルupsBdryT[x](x=0..upsBdryW-1)と、
-左側アップサンプリング境界サンプルupsBdryL[x](x=0..upsBdryH-1)と、である。
このプロセスの出力は、予測サンプルpredSamples[x][y](x=0..nTbW-1、x=0..nTbF-1)である。
スパース予測サンプルpredSamples[m][n]はpredLwip[x][y](x=0..predW-1、y=0..predH-1)は以下のように導出される。
upHor=nTbW/predW (8-X34)
upVer=nTbH/predH (8-X35)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predLwip[x][y] (8-X36)
上側境界サンプルupsBdryT[x](x=0..upsBdryW-1)はpredSamples[m][-1]に以下の様に割り当てられる。
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-X37)
左側境界サンプルupsBdryL[y](y=0..upsBdryH-1)はpredSamples[-1][n]に以下の様に割り当てられる。
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-X38)
予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
-nTbHがnTbWよりも大きい場合、次の順番のステップが適用される。
1.upHorが1より大きい場合、全てのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=1..predH)は以下のようにdX=1..upHor-1に適用される。
predSamples[xHor+dX」[yHor]=((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor])/upHor (8-X39)
2.全てのスパース位置(xVer,yVer)=(m,n*upVer-1)のために(なお、M=0..nTbW-1,n=0..predH-1)、垂直サンプリングがdY=1..upVer-1で以下のように適用される。
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer])/upVer (8-X40)
-そうでなかれば、以下の順番のステップが適用される。
1.upVerが1より大きい場合、垂直サンプリングが、全てのスパース位置(xVer,yVer)=(m*upHor-1,n*upVer-1)のために(なお、m=1..predW、n=0..predH-1)、(8-X40)で規定したようにdY=1..upVer-1で適用される。
2.水平サンプリングが、全てのスパース位置(xHor,yHor)=(m*upHor-1,n)のために(なお、m=0..predW-1、n=0..nTbH-1)、(8-X39)で規定したようにdX=1..upHor-1で適用される。
<end>
【0127】
【表8】
表9-9:シンタックス要素及び関連する2値化
【0128】
【表9】
表9-15:コンテキストコード化されたビンを用いたシンタックス要素へのctxIncの割り当て
【0129】
【表10】
表9-16:左及び上側のコンテキスト要素を用いたctxIncの仕様
<end>
【0130】
ALWIPの概要
幅W及び高さHの矩形ブロックのサンプルを予測するために、アフィン線形重み付けイントラ予測(ALWIP)は、ブロックの左側のH再構成隣接境界サンプルの1ラインと、ブロックの上側のW再構成隣接境界サンプルの1ラインを入力としてとる。再構成されたサンプルが利用可能でない場合、それらは、従来のイントラ予測と同様に生成される。ALWIPはルーマイントラブロックのみに適用される。クロマイントラブロックについては、従来のイントラコーディングモードが適用される。
【0131】
予測信号の生成は以下の3つのステップに基づく。
1. 境界サンプルのうち、W=H=4の場合は4つのサンプルが,それ以外の全ての場合では8つのサンプルが平均化により抽出される。
2. 平均化したサンプルを入力として、マトリクスベクトル乗算と、その後にオフセットの加算が行われる。その結果、元のブロック内のサブサンプリングされたサンプルセットに対する縮小された予測信号が得られる。
3. 残りの位置での予測信号は、各方向で単一ステップ線形補間である線形補間により、サブサンプリングされたセットに対する予測信号から生成される。
【0132】
ALWIPモードが適用される場合、ALWIPモードのインデックスpremodeは、3MPMSのMPMリストを用いてシグナリングされる。ここで、MPMの導出は、上側及び左側PUのイントラモードを用いて以下のように行われる。各従来のイントラ予測モードpremodeAngularにALWIPモードを割り当てる3つの固定テーブル
map_angular_to_ALWIPidxがある(idx∈{0,1,2})。
【0133】
premodeALWIP=map_angular_to_ALWIPidx[premodeAngular
幅W及び高さHの各PUについて、3つのセットのうちのどれからALWIPパラメータを取るべきかを示すインデックスidx(PU)=idx(W,H)∈{0,1,2}が定義される。
【0134】
上側の予測ユニットPUaboveが利用可能で、現在のPUと同じCTUに属し、イントラモードにあり、idx(PU)=idx(PUabove)であり、ALWIPがALWIPモード
(外5)
でPUaboveに適用される場合、以下のようになる。
【0135】
【数17】
【0136】
上側のPUが利用可能で、現在のPUと同じCTUに属し、イントラモードにあり、上側のPUに従来のイントラ予測モード
(外6)
が適用される場合、以下のようになる。
【0137】
【数18】
【0138】
それ以外の全ての場合は以下のようになる。
【0139】
【数19】
【0140】
これは、このモードは利用できないことを意味する。方法は同じであるものの左側のPUが現在のPUと同じCTUに属する必要がある制約がない方法で、モード
(外7)
が導出される。
【0141】
最後に、3つの固定デフォルトリストlistidx(idx∈{0,1,2})が提供され、それぞれは3つの異なるALWIPモードを含む。デフォルトリストlistidx(PU)と、モード
(外5)
及び
(外7)
のうち、デフォルト値で-1に置き換え、繰り返しを除外することにより3つの異なるMPMを構築する。
【0142】
ルーマMPMリストの導出の場合、ALWIPモードpremodeALWIPを用いる隣接ルーマブロックに遭遇したときには常にこのブロックは従来のイントラ予測モードpremodeAngularを用いているものとして扱われる。
【0143】
premodeAngular=map_ALWIP_to_angularidx(PU)[premodeALWIP
【0144】
33 VVCにおける変換
3.1 多重変換選択(MTS)
HEVCで用いられてきたDCT―IIに加えて、多重変換選択(MTS)方式が、インター及びイントラコード化ブロックの両方の残留コーディングのために用いられる。それは、DCT8/DST7からの多重選択変換を用いる。新たに導入された変換マトリクスはDST-VII及びDCT-VIIIである。
【0145】
3.2 JVET-N0193で提案される縮小二次変換(RST)
縮小二次変換(RST)は、4×4及び8×8ブロックに対して、それぞれ16×16及び16×64の分離不能変換をそれぞれ適用する。2つの1次元水平/垂直変換パスと同じ方法で一次順方向変換及び逆方向変換が依然行われる。二次順方向変換及び逆変方向換は、一次変換とは別のプロセスステップである。エンコーダの場合、一次順方向変換が先ず行われ、次に二次順方向変換及び量子化と、CABACビットエンコーディングが行われる。デコーダの場合、CABACビットデコーディング及び逆量子化が行われ、次に、二次逆方向変換が最初に行われ、次に一次逆方向変換が行われる。RSTは、イントラスライス及びインタースライスの両方のイントラコード化TUにのみ適用される。
【0146】
3.3 JVET-N0185におけるイントラモードコーディングのための統一MPMリスト
多重参照ライン(MRL)及びイントラサブパーティション(ISP)コーディングツールが適用されるかどうかに関わらず、イントラブロックのための統一6-MPMリストが提案されている。MPMリストは、VTM4.0のように、左側及び上側の隣接ブロックのイントラモードに基づいて構築される。左側のモードがLeft、上側ブロックのモードがAboveと表記されると仮定した場合、統一MPMリストは以下のように構築される。
・隣接ブロックが利用できない場合、そのイントラモードはデフォルトでプラナーに設定される。
・Left及びAboveの双方のモードが非角度モードの場合、
a.MPMリスト→{プラナー,DC,V,H,V-4,V+4}となる。
・Left及びAboveモードの一方が角度モードで、他方が非角度モードの場合、
a.Left及びAboveにおいてより大きなモードとしてモードMaxが設定され、
b.MPMリスト→{プラナー,Max,DC,Max-1,Max+1,Max-2}となる。
・Left及びAboveの双方が角度モードであり、それらが異なる場合、
a.Left及びAboveにおいてより大きなモードとしてモードMaxが設定され、
b.Left及びAboveモードの差が2~62の範囲内にある場合、
i.MPMリスト→{プラナー,Left,Above,DC,Max-1,Max+1}となり、
c.そうでなければ、
i.MPMリスト→{プラナー,Left,Above,DC,Max-2,Max+2}となる。
・Left及びAboveの双方が角度であり、それらが同じ場合、
a.MPMリスト→{プラナー,Left,Left-1,Left+1,DC,Left-2}となる。
【0147】
さらに、MPMインデックスコードワードの第1のビンはCABACコンテキストコード化されている。現在のイントラブロックがMRL有効か、ISP有効か又は通常のイントラブロックかに対応して合計で3つのコンテキストが用いられる。
【0148】
統一MPMリスト構築で用いられる左側隣接ブロック及び上側隣接ブロックは、図10に示すA2及びB2である。
【0149】
1つのMPMフラグが最初にコード化される。ブロックがMPMリスト内のモードのうちの1つでコード化されている場合、MPMインデックスがさらにコード化される。そうでなれば、残りのモードのインデックス(MPMを除く)がコード化される。
【0150】
VVCにおけるLFNSTのシグナリング
JVET-P2001-v9で規定されているLFNSTのシグナリングは以下の通りである。
【0151】
7.3.9.5 コーディングユニットシンタックス
【0152】
【表11】
【0153】
4 既存の実施における欠点の例
JVET-N0217におけるALWIPの設計には以下の問題がある。
【0154】
1)2019年3月のJVETミーティングで、MRLモード、ISPモード、通常イントラモードのために統一6-MPMリスト生成が採用された。しかしながら、アフィン線形加重予測モードは異なる3-MPMリスト構築を用いるため、MPMリスト構築を複雑にする。複雑なMPMリスト構築は、とりわけ4×4サンプル等の小さなブロックの場合、デコーダのスループットが損なわれ得る。
【0155】
2)ALWIPはブロックのルーマコンポーネントにのみ適用される。ALWPコード化ブロックのクロマコンポーネントの場合、クロマモードインデックスがコード化され、デコーダに送信されるため、結果として不必要なシグナリングがもたらされ得る。
【0156】
3)ALWIPと他のコーディングツールとの相互作用を考慮すべきである。
【0157】
4)upsBdryXを下記式で算出する場合、
【0158】
【数20】
Log2(uDwn)-1は-1と等しい一方で、-1でシフトされる左側は定義されていない。
【0159】
5)予測サンプルをアップサンプリングする場合、丸めは適用されない。
【0160】
6)デブロッキングプロセスでは、ALWIPコード化ブロックは通常のイントラブロックとして扱われる。
【0161】
7)ALWIPフラグ(例えば、intra_lwip_flag)のコーディングに使われるコンテキストが多すぎる(例えば、4つ)。
【0162】
8)垂直アップサンプリング及び水平アップサンプリングの両方が必要な場合、アップサンプリングの順番はブロックの形状に依存する。これはハードウェアに優しくない。
【0163】
9)線形補間フィルタはアップサンプリングに用いられるが、これは非効率的であり得る。
【0164】
ALWIPで利用される2段階ダウンサンプリング方法は、不必要な計算複雑性を引き起子し得る。加えて、アップサンプリングされた予測ブロックを生成するためにダウンサンプリングされた参照サンプルを用いることは不正確になり得る。
【0165】
MIPはルーマコンポーネントのみに適用されたが、LFNSTは二重ツリーの場合の下では、変換マトリクスインデックスの別々のシグナリングでルーマ及びクロマコンポーネントの両方に適用され得る。しかしながら、二重ツリークロマの場合に、クロマコンポーネントのシンタックス要素をパースするとき、MIPがルーマブロックに適用されるかどうか(すなわち、intra_MIP_flag[x0][y0]=0かどうか)に依存し得る。異なるカラーコンポーネント間のそのような依存は望ましくない。
【0166】
5 マトリクスベースのイントラコーディングのための例示の方法
本開示の技術の実施形態は、既存の実施形態の欠点を克服することにより、コーディング効率がより高いが、計算の複雑性がより少ないビデオコーディングを提供する。ビデオコーディングのためのマトリクスベースのイントラ予測方法は、本明細書に記載されているように、既存の及び将来のビデオコーディング規格の両方を向上させ、様々な実施のために説明する以下の例で明らかにされる。以下で提供される開示の技術の例は一般的な概念を説明するものであり、限定的に解釈されることを意図するものではない。例において、別段そうでないことが明示されていない限り、これらの例で説明する様々な特徴は組み合わされ得る。
【0167】
以下の説明では、イントラ予測モードは(DC、プラナー、CLM及び他の可能なイントラ予測モードを含む)角度イントラ予測モードに言及するものであり、イントラモードは通常イントラモード又はMRL又はISP又はALWIPに言及するものである。
【0168】
以下の説明では、「他のイントラモード」とは、通常のイントラモード、MRL、ISP等のALWIP以外の1つ以上のイントラモードに言及し得る。
【0169】
以下の議論では、SatShift(x,n)は以下のように定義される。
【0170】
【数21】
Shift(x,n)は、Shift(x,n)=(x+offset0)>>nと定義される。
【0171】
1つの例では、offset0及び/又はoffset1は、(1<<n)>1又は(1<<(n-1))に設定される。別の例では、offset0及び/又はoffset1は0に設定される。
【0172】
別の例では、offset0=offset1=((1<n)>>1)-1又は((1<<(n-1)))-1である。
【0173】
Clip3(min,max,x)は以下のように定義される。
【0174】
【数22】
【0175】
ALWIPのためのMPMリスト構築
1. ALWIPのためのMPMリストの全体又は一部は、非ALWIPイントラモード(通常イントラモード、MRL又はISP等)のためのMPMリストを構築する手順全体又は全一部に従って構築され得ることが提案される。
a. 1つの例では、ALWIPのためのMPMリストのサイズは、非ALWIPイントラモードのためのMPMリストのサイズと同じであり得る。
i. 例えば、MPMリストのサイズは、ALWIPモード及び非ALWIPイントラモードの双方で6である。
b. 1つの例では、ALWIPのためのMPMリストは、非ALWIPイントラモードのためのMPMリストから導出され得る。
i. 1つの例では、非ALWIPイントラモードのためのMPMリストが先ず構築され得る。その後、それらの一部又は全てがMPMに変換され、これがALWIPコード化ブロックのためのMPMリストにさらに加えられ得る。
1) あるいは、さらに、ALWIPコード化ブロックのためのMPMリストに変換したMPMを加える場合、プルーニングが適用され得る。
2) ALWIPコード化ブロックのためのMPMリストにデフォルトモードが加えられ得る。
a. 1つの例では、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換される前に加えられ得る。
b. あるいは、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換された後に加えられ得る。
c. あるいは、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換されたものとインターリーブ方式で加えられ得る。
d. 1つの例では、デフォルトモードは、全ての種類のブロックに対して同じであるように固定され得る。
e. あるいは、デフォルトモードは、隣接ブロックの可用性、隣接ブロックのモード情報、ブロック寸法等のコード化情報に従って決定され得る。
ii. 1つの例では、非ALWIPイントラモードのMPMリストの1つのイントラ予測モードは、それがALWIPのMPMリストに入れられたときに、それが対応するALWIPイントラ予測モードに変換され得る。
1) あるいは、非ALWIPイントラモードのためのMPMリストの全てのイントラ予測モードは、ALWIPのMPMリストを構築するために用いられる前に、対応するALWIPイントラ予測モードに変換され得る。
2) あるいは、(隣接ブロックからのイントラ予測モード及びプラナーやDC等のデフォルトイントラ予測モードを含み得る)全てのイントラ予測モード候補は、非ALWIPイントラモードのためのMPMリストがALWIPのMPMリストを導出するために用いられる場合に、非ALWIPイントラモードのためのMPMリストを構築するために用いられる前に、対応するALWIPイントラ予測モードに変換され得る。
3) 1つの例では、2つの変換されたALWIPイントラ予測モードが比較され得る。
a. 1つの例では、それらが同じである場合、それらのうちの1つのみがALWIPのためのMPMリストに入れられ得る。
b. 1つの例では、それらが同じである場合、そのうちの1つのみが非ALWIPイントラモードのためのMPMリストに入れられ得る。
iii. 1つの例では、非ALWIPイントラモードのためのMPMリスト内のS個のイントラ予測モードのうちのK個が、ALWIPモードのMPMリストとして選択されてもよく、例えば、K=3であり、S=6である。
1) 1つの例では、非ALWIPイントラモードのためのMPMリスト内の第1のKイントラ予測モードが、ALWIPモードのためのMPMリストとして選択され得る。
【0176】
2. ALWIPのためのMPMリストを導出するために用いられる1つ以上の隣接ブロックが、非ALWIPイントラモード(通常イントラモード、MRL又はISP等)のためのMPMリストの導出にも用いられ得ることが提案される。
a. 1つの例では、ALWIPのMPMリストを導出するために用いられる現在のブロックの左側の隣接ブロックは、非ALWIPイントラモードのためのMPMリストを導出するために用いられるものと同じであるべきである。
i. 現在のブロックの左上隅が(xCb,yCb)であり、現在のブロックの幅及び高さがW及びHであると仮定すると、1つの例では、ALWIP及び非ALWIPイントラモードの両方のためのMPMリストを導出するために用いられる左側の隣接ブロックは、位置(xCb-1,yCb)をカバーし得る。代替的な例では、ALWIPモード及び非ALWIPイントラモードの両方のMPMリストを導出するために用いられる左側の隣接ブロックは、位置(xCb-1,yCb+H-1)をカバーし得る。
ii. 例えば、統一MPMリストの構築で用いられる左側及び上側隣接ブロックは、図10に示すA2及びB2である。
b. 1つの例では、ALWIPのためのMPMリストを導出するために用いられる現在のブロックの上の隣接ブロックは、非ALWIPイントラモードのためのMPMリストを導出するために用いられるものと同じであるべきである。
i. 現在のブロックの左上隅が(xCb,yCb)であり、現在のブロックの幅及び高さがW及びHであると仮定すると、1つの例では、ALWIP及び非ALWIPイントラモードの両方のためのMPMリストを導出するために用いられる上側の隣接ブロックが位置(xCb,yCb-1)をカバーし得る。代替的な例では、ALWIPモード及び非ALWIPイントラモードの両方のためのMPMリストを導出するために用いられる上側の隣接ブロックは、位置(xCb+W-1,yCb-1)をカバーし得る。
ii. 例えば、統一MPMリストの構築で用いられる左側隣接ブロック及び上側隣接ブロックは、図10に示すA1及びB1である。
【0177】
3. ALWIPのためのMPMリストは、現在のブロックの幅及び/又は高さに応じて異なる方法で構築され得ることが提案される。
a. 1つの例では、異なるブロック寸法のために異なる隣接ブロックがアクセスされ得る。
【0178】
4. ALWIPのためのMPMリスト及び非ALWIPイントラモードのためのMPMリストは、パラメータが異なるが同じ手順で構築され得ることが提案される。
a. 1つの例では、非ALWIPイントラモードのためのMPMリスト内のS個のイントラ予測モードのうちのK個が、ALWIPモードで用いられるMPMリストのために導出されてもよく、例えば、K=3であり、S=6である。
i. 1つの例では、MPMリスト構築手順における第1のKイントラ予測モードは、ALWIPモードで用いられるMPMリストのために導出され得る。
b. 1つの例では、MPMリスト内の第1のモードは異なり得る。
i. 例えば、非ALWIPイントラモードのためのMPMリスト内の第1のモードはプラナーであり得るが、ALWIPのためのMPMリスト内ではモードX0であり得る。
1) 1つの例では、X0は、プラナーから変換されたALWIPイントラ予測モードであり得る。
c. 1つの例では、MPMリスト内のスタッフィングモードが異なり得る。
i. 例えば、非ALWIPイントラモードのためのMPMリスト内の第1の3つのスタッフィングモードは、DC、垂直及び水平であり得るが、ALWIPのMPMリスト内ではモードX1、X2、X3であり得る。
1) 1つの例では、X1、X2、X3は、異なるsizeIdに対して異なり得る。
ii. 1つの例では、スタッフィングモードの数は異なり得る。
d. 1つの例では、MPMリスト内の隣接モードは異なり得る。
i. 例えば、隣接ブロックの通常のイントラ予測モードは、非ALWIPイントラモードのためのMPMリストを構築するために用いられる。そして、それらがALWIPイントラ予測モードに変換されて、ALWIPモードのためのMPMリストが構築される。
e. 1つの例では、MPMリスト内のシフトされたモードは異なり得る。
i. 例えば、X+K0(Xは通常のイントラ予測モードであり、K0は整数である)は、非ALWIPイントラモードのためのMPMリストに入れられ得る。そして、Y+K1(YはALWIPイントラ予測モードであり、K1は整数である)は、ALWIPのためのMPMリストに入れられてもよく、K0はK1と異なり得る。
1) 1つの例では、K1は幅及び高さに依存し得る。
【0179】
5. 非ALWIPイントラモードで現在のブロックのためのMPMリストを構築する際に、隣接ブロックがALWIPでコード化されている場合、該隣接ブロックは利用できないものとして扱われることが提案される。
a. あるいは、非ALWIPイントラモードで現在のブロックのためのMPMリストを構築する際に、隣接ブロックがALWIPでコード化されている場合、該隣接ブロックは予め設定されたイントラ予測モード(例えば、プラナー)でコード化されているものとして扱われる。
【0180】
6. ALWIPモードで現在のブロックのためのMPMリストを構築する際に、隣接ブロックが非ALWIPイントラモードでコード化されている場合、該隣接ブロックは使用できないものとして扱われることが提案される。
a. あるいは、ALWIPモードで現在のブロックのためのMPMリストを構築する際に、隣接ブロックが非ALWIPイントラモードでコード化されている場合、該隣接ブロックは予め設定されたALWIPイントラ予測モードXでコード化されているものとして扱われる。
i. 1つの例では、Xは、幅及び/又は高さ等のブロック寸法に依存し得る。
【0181】
7. ラインバッファからALWIPフラグの記憶を取り除くことが提案される。
a. 1つの例では、アクセスすべき第2のブロックは、現在のブロックと比べて異なるLCU/CTU行/領域に位置する場合、第2のブロックがALWIPでコード化されているかどうかの条件チェックがスキップされる。
b. 1つの例では、アクセスすべき第2のブロックが現在のブロックと比べて異なるLCU/CTU行/領域に位置する場合、第2のブロックは非ALWIPモードと同様に扱われる、例えば、通常のイントラコード化ブロックとして扱われる。
【0182】
8. ALWIPフラグをコーディングする場合、K個(K>=0)以下のコンテキストが用いられ得る。
a. 1つの例では、K=1である。
【0183】
9. ALWIPモードに関連するモードインデックスを直接記憶する代わりに、ALWIPコード化ブロックの変換されたイントラ予測モードを記憶することが提案される。
a. 1つの例では、1つのALWIPコード化ブロックに関連するデコードされたモードインデックスは、セクション2.5.7で説明したように、例えばmap_alwip_to_angularに従って、通常のイントラモードにマッピングされる。
b. あるいは、さらに、ALWIPフラグの記憶が完全に取り除かれる。
c. あるいは、さらに、ALWIPモードの記憶が完全に取り除かれる。
d. あるいは、1つの隣接/現在のブロックがALWIPフラグでコード化されているかどうかの状態確認がスキップされ得る。
e. あるいは、さらに、ALWIPコード化ブロックに割り当てられるモードの変換及び1つのアクセスされたブロックに関連する通常のイントラ予測がスキップされ得る。
【0184】
異なるカラーコンポーネントに対するALWIP
10. 対応するルーマブロックがALWIPモードでコード化されている場合、推定クロマイントラモード(例えば、DMモード)が常に適用され得ることが提案される。
a. 1つの例では、対応するルーマブロックがALWIPモードでコード化されている場合、クロマイントラモードは、シグナリングを行うことなくDMモードであると推定される。
b. 1つの例では、対応するルーマブロックは、所与の位置に位置するクロマサンプルの対応するサンプル(例えば、現在のクロマブロックの左上、現在のクロマブロックの中心)をカバーするものであり得る。
c. 1つの例では、DMモードは、例えば(ALWIP)モードを通常のイントラモードの1つにマッピングすることを介して対応するルーマブロックのイントラ予測モードに従って導出され得る。
【0185】
11. クロマブロックの対応するルーマブロックがALWIPモードでコード化される場合、いくつかのDMモードが導出され得る。
【0186】
12. クロマモード決定プロセス(例えば、直接モード/派生モード)において、それがALWIPコード化されているかどうか及び/又はそのALWIPモードを特定するために用いられる対応するルーマブロックは、コード化されたクロマブロック及び/又はカラーフォーマットの寸法と共に、左上の位置に応じて決定され得る。
a. コード化されたクロマブロックの左上の位置を(xCb,yCb)、コード化されたクロマブロックの幅及び高さをそれぞれCbWidth及びCbHeightであり、全ての位置及び長さがルーマサンプルユニット内にあると仮定する。
b. 1つの例では、対応するルーマブロックは、位置(xCb+offsetY,yCb+offsetY)をカバーするルーマブロック(例えば、コーディングブロック)として選択してもよく、offsetX及びoffsetYの両方が=0であることは許容されない。
i. 1つの例では、offsetX=(CbWidth/2)又は(CbWidth/2-1)又は(CbWidth/2+1)である。
ii. 1つの例では、offsetY=(CbHeight/2)又は(CbHeight/2-1)又は(CbHeight/2+1)である。
【0187】
13. 1つの対応するルーマブロックがALWIPモードでコード化されている場合、クロマブロックに特殊モードが割り当てられることが提案される。
a. 1つの例では、特殊モードは、ALWIPコード化ブロックに関連するイントラ予測モードにかかわらず、所与の通常のイントラ予測モードとして定義される。
b. 1つの例では、この特殊なモードに異なる方法でイントラ予測を割り当てられ得る。
c. あるいは、ルーマブロックがALWIPモードでコード化されている場合、クロマDMモードのための関連する通常のイントラモードは、常に特殊モードと識別されると推測され得る。
d. あるいは、さらに、クロマモードのシグナリングがスキップされ得る。
e. あるいは、クロマブロックの対応するルーマブロックがALWIPモードでコード化され、DMモードがクロマブロックに対してシグナリングされている場合、事前に定義されたイントラ予測モードがクロマブロックに対して適用される。
i. 例えば、予め定義されたイントラ予測モードはプラナーモードであり得る。
ii. 例えば、予め定義されたイントラ予測モードは、スクリーンコンテンツの表示等のコード化された情報に依存し得る。
1) 1つの例では、スクリーンコンテンツの表示が、コンテンツがカメラキャプチャされたコンテンツであることを示す場合、それはプラナーモードに設定され得る。
2) 1つの例では、スクリーンコンテンツの表示が、コンテンツがスクリーンコンテンツであることを示す場合、それは水平予測モードに設定され得る。
f. 1つの例では、クロマブロックの対応するルーマブロックがALWIPモードでコード化されている場合、DMモードはクロマブロックに対して絶対に用いられなくてもよい。
i. 例えば、DMモード関連するシンタックスはシグナリングされなくてもよい。
1) 1つの例では、対応するルーマブロックがALWIPモードであり、sps_cclm_enabled_flag=falseの場合、4つのクロマモードがクロマブロックに対してシグナリングされ得る。
a. 例えば、この場合、イントラクロマモードの二値化には最大で2つのビンが必要になり得る。
1) 1つの例では、対応するルーマブロックがALWIPモードであり、sps_cclm_enabled_flag=trueの場合、7つのクロマモードがクロマブロックに対してシグナリングされ得る。
a. 例えば、この場合、イントラクロマモードの二値化には最大で4つのビンが必要になり得る。
【0188】
14. ALWIPがクロマコンポーネントにも適用され得ることが提案される。
a. 1つの例では、マトリクス及び/又はバイアスベクトルは、異なるカラーコンポーネントで異なり得る。
b. 1つの例では、マトリクス及び/又はバイアスベクトルは、Cb及びCrに対して共に予め定義され得る。
i. 1つの例では、Cb及びCrコンポーネントが連結され得る。
ii. 1つの例では、Cb及びCrコンポーネントがインターリーブされ得る。
c. 1つの例では、クロマコンポーネントは、対応するルーマブロックと同じALWIPイントラ予測モードを共有し得る。
i. 1つの例では、対応するルーマブロックがALWIPモードを適用し、クロマブロックがDMモードでコード化されている場合、同じALWIPイントラ予測モードがクロマコンポーネントに適用される。
ii. 1つの例では、同じALWIPイントラ予測モードがクロマコンポーネントに適用され、その後の線形補間をスキップできる。
iii. 1つの例では、同じALWIPイントラ予測モードが、サブサンプリングされたマトリクス及び/又はバイアスベクトルを有するクロマコンポーネントに適用される。
d. 1つの例では、異なるコンポーネントに対するALWIPイントラ予測モードの数が異なり得る。
i. 例えば、クロマコンポーネントのためのALWIPイントラ予測モードの数は、同じブロック幅及び高さのルーマコンポーネントのためのものの数よりも少なくてもよい。
【0189】
ALWIPの適用性
15. ALWIPを適用可能かどうかがシグナリングされ得ることが提案される。
a. 例えば、それは、シーケンスレベルで(例えば、SPSで)、ピクチャレベルで(例えば、PPS又はピクチャヘッダで)、スライスレベルで(例えば、スライスヘッダで)、タイルグループレベルで(例えば、タイルグループヘッダで)、タイルレベルで、CTU行レベルで又はCTUレベルでシグナリングされ得る。
b. 例えば、ALWIPが適用できない場合、intra_lwip_flagはシグナリングされず、0であると推測され得る。
【0190】
16. ALWIPを適用できるかどうかは、ブロック幅(W)及び/又は高さ(H)に依存し得ることが提案される。
c. 例えば、W>=T1(又はW>T1)及びH>=T2(又はH>T2)の場合、ALWIPは適用されなくてもよい(例:T1=T2=32)。
i. 例えば、W<=T1(又はW<T1)及びH<=T2(又はH<T2)の場合、ALWIPは適用されなくてもよい(例:T1=T2=32)。
d. 例えば、W>=T1(又はW>T1)又はH>=T2(又はH>T2)の場合、ALWIPは適用されなくてもよい(例:T1=T2=32)。
i. 例えば、W<=T1(又はW<T1)又はH<=T2(又はH<T2)の場合、ALWIPは適用されなくてもよい(例:T1=T2=32)
e. 例えば、W+H>=T(又はW*H>T)の場合、ALWIPは適用されなくてもよい(例えば、T=256)。
i. 例えば、W+H<=T(又はW+H<T)の場合、ALWIPは適用されなくてもよい(例えば、T=256)。
f. 例えば、W*H>=T(又はW*H>T)の場合、ALWIPは適用されなくてもよい(例えば、T=256)。
i. 例えば、W*H<=T(又はW*H<T)の場合、ALWIPは適用されなくてもよい(例えば、T=256)。
g. 例えば、ALWIPが適用できない場合、intra_lwip_flagはシグナリングされず、0であると推測され得る。
【0191】
ALWIPにおける計算の問題
17. ALWIPで伴うシフト演算は、Sの数(Sは0以上でなければならない)の左シフト又は右シフトのみ可能であることが提案される。
a. 1つの例では、S=0又は0より大きい場合、右シフト演算は異なり得る。
i. 1つの例では、upsBdryX[x]は以下のように計算される。
【0192】
【数23】
【0193】
b. 1つの例では、upsBdryX[x]は以下のように計算される。
【0194】
【数24】
【0195】
18. ALWIPのアップサンプリングプロセスにおいて、結果はゼロに近づくか又はゼロから離れるように丸められるべきであることが提案される。
a. 1つの例では、
predSamples[xHor+dX][yHor]=((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor]+offsetHor)/upHor (8-X39)
及び
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer]+offsetVer)/upVer (8-X40)
であり、offsetHor及びoffsetVerは整数である。例えば、offsetHor=upHor/2及びoffsetVer=upVer/2である。
【0196】
他のコーディングツールとの相互作用
19. ALWIPをCIIPコード化ブロックのために用いられ得ることが提案された。
a. 1つの例では、CIIPコード化ブロックにおいて、イントラ予測信号を生成するために用いられるのがALWIPイントラ予測モードであるか又はプラナー等の通常のイントラ予測モードであるかが明示的にシグナリングされ得る。
b. 1つの例では、イントラ予測信号を生成するために用いられるのがALWIPイントラ予測モードであるか又はプラナー等の通常のイントラ予測モードであるかが暗黙的に推測され得る。
i. 1つの例では、CIIPコード化ブロックでALWIPイントラ予測モードが絶対に用いられなくてもよい。
1) あるいは、CIIPコード化ブロックで通常のイントラ予測が絶対に用いられなくてもよい。
ii. 1つの例では、隣接ブロックの情報から、イントラ予測信号を生成するために用いられるのがALWIPイントラ予測モードであるか又はプラナー等の通常のイントラ予測モードであるかが推測され得る。
【0197】
20. CCLMモードにある隣接ルーマサンプルをダウンサンプリングするために用いられる手順の全て又は一部が、ALWIPモードにある隣接サンプルをダウンサンプリングするために用いられ得ることが提案される。
a. あるいは、ALWIPモードにある隣接ルーマサンプルをダウンサンプリングするために用いられる手順の全て又は一部が、CCLMモードにある隣接サンプルをダウンサンプリングするために用いられ得る。
b. ダウンサンプリング手順は、それがCCLMプロセス及びALWIPプロセスで用いられる場合、異なるパラメータ/引数を用いて呼び出され得る。
c. 1つの例では、CCLMプロセスにおけるダウンサンプリング方法(例えば、隣接ルーマ位置の選択、ダウンサンプリングフィルタ)がALWIPプロセスで利用され得る。
d. 隣接ルーマサンプルをダウンサンプリングする手順には、ダウンサンプリングされた位置の選択、ダウンサンプリングフィルタ、丸めこみ、クリッピング演算を少なくとも含む。
【0198】
21. ALWIPモードでコード化されたブロックは、RST又は/及び二次変換又は/及び回転変換又は/及び分離不能二次変換(NSST)を適用できないことが提案される。
a. 1つの例では、そのような制約が適用され得るかどうかは、例えば、(15)で説明した条件と同じように、ブロックの寸法情報に依存し得る。
b. あるいは、RST又は/及び二次変換又は/及び回転変換又は/及びNSSTが適用されている場合、ALWIPモードは許可されなくてもよい。
c. あるいは、ALWIPモードでコード化されたブロックは、RST又は/及び二次変換又は/及び回転変換又は/及び分離不能二次変換(NSST)を適用し得る。
i. 1つの例では、変換マトリクスの選択は、ALWIPイントラ予測モードに依存し得る。
ii. 1つの例では、変換マトリクスの選択は、ALWIPイントラ予測モードから変換された通常のイントラ予測モードに依存し得る。
iii. 1つの例では、変換マトリクスの選択は、ALWIPイントラ予測モードから変換された通常のイントラ予測モードの分類に依存し得る。
【0199】
22. ALWIPモードでコード化されたブロックは、ブロックベースのDPCM(BDPCM)又は残差RDPCMを適用できないことが提案される。
a. あるいは、BDPCM又はRDPCMが適用されている場合、ALWIPモードは許可されなくてもよい。
【0200】
23. ALWIPモードでコード化されたブロックは、変換としてDCT-IIのみを用いり得ることが提案される。
a. 1つの例では、変換マトリクスインデックスのシグナリングは常にスキップされる。
b. あるいは、ALWIPモードでコード化されたブロックのために用いられる変換は、明示的にシグナリングされるのではなく、暗黙的に導出され得ることが提案される。例えば、変換は、JVET-M0303で提案されている方法に従って選択され得る。
c. あるいは、ALWIPモードでコード化されたブロックは、変換スキップのみを用いり得ることが提案される。
i. あるいは、さらに、ALWIPが用いられる場合、変換スキップの使用を示すシグナリングはスキップされる。
d. 1つの例では、ALWIPモード情報(例えば、有効/無効、予測モードインデックス)は、変換マトリクスの表示の後に条件付きでシグナリングされ得る。
i. 1つの例では、所与の変換マトリクス(例えば、変換スキップ又はDCT-II)のために、ALWIPモード情報の表示がシグナリングされ得る。
ii. あるいは、さらに、ALWIPモード情報の表示は、一部の予め定義された変換マトリクスについてスキップされ得る。
【0201】
24. ALWIPモードでコード化されたブロックは、選択された変換がモードに依存する場合、ALWIPイントラ予測モードから変換された通常のイントラ予測でコード化されたものとみなされる。
【0202】
25. ALWIPモードでは変換スキップを用いなくてもよい。
a. 例えば、この場合、変換スキップの使用の表示をさらにシグナリングする必要はない。
b. あるいは、変換スキップが適用される場合、ALWIPモードが許可されなくてもよい。
i. 例えば、この場合、変換スキップが適用される場合、ALWIPモード情報をシグナリングする必要がない。
【0203】
26. デブロッキングフィルター、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタリングプロセスで、フィルタをどのように選択するか及び/又はサンプルをフィルタリングするかどうかは、ALWIPの使用により決定され得る。
【0204】
27. フィルタリングされていない隣接サンプルがALWIPモードで用いられ得る。
a. あるいは、フィルタリングされた隣接サンプルがALWIPモードで用いられ得る。
b. 1つの例では、フィルタリングされた隣接サンプルがダウンサンプリングのために用いられ、フィルタリングされていない隣接サンプルがアップサンプリングのために用いられ得る。
c. 1つの例では、フィルタリングされていない隣接サンプルがダウンサンプリングに用いられ、フィルタリングされていない隣接サンプルがアップサンプリングのために用いられ得る。
d. 1つの例では、フィルタリングされた左側隣接サンプルがアップサンプリングに用いられ、フィルタリングされていない上側隣接サンプルがアップサンプリングに用いられ得る。
e. 1つの例では、フィルタリングされていない左側隣接サンプルがアップサンプリングに用いられ、フィルタリングされた上側隣接サンプルがアップサンプリングに用いられ得る。
f. 1つの例では、フィルタリングされた隣接サンプルを用いるか又はフィルタリングされていない隣接サンプルを用いるかは、ALWIPモードに依存し得る。
i. 1つの例では、ALWIPモードは従来のイントラ予測モードに変換されてもよく、フィルタリングされた隣接サンプルが用いられるか又はフィルタリングされていない隣接サンプルが用いられるかは、変換された従来のイントラ予測モードに依存し得る。例えば、そのような決定は従来のイントラ予測モードと同じである。
ii. あるいは、ALWIPモードのためにフィルタリングされた隣接サンプルを用いるか又はフィルタリングされていない隣接サンプルを用いるかがシグナリングされ得る。
g. 1つの例では、フィルタリングされたサンプルは、従来のイントラ予測モードと同じように生成され得る。
【0205】
28. どのマトリクス又は/及びオフセットベクトルを用いるかは、再形成(LMCS、クロマスケーリングによるルーママッピングとしても知られている)情報に依存し得る。
a. 1つの例では、再形成がオン及びオフの場合、異なるマトリクス又は/及びオフセットベクトルが用いられ得る。
b. 1つの例では、異なるマトリクス又は/及びオフセットベクトルが、異なる再形成パラメータのために用いられ得る。
c. 1つの例では、ALWIPは常に元のドメインで行われ得る。
i. 例えば、隣接サンプルは、ALWIPで用いられる前に元のドメインにマッピングされる(再形成が適用される場合)。
【0206】
29. 再形成が適用される場合、ALWIPは無効にされ得る。
a. あるいは、ALWIPが有効な場合に、再形成が無効にされ得る。
b. 1つの例では、ALWIPは、再形成が適用される場合にHDR(高ダイナミックレンジ)コンテンツに対して無効にされ得る。
【0207】
30. ALWIPで用いられるマトリクスはサンプルのビット深度に依存し得る。
a. あるいは、さらに、ALWIPで用いられるオフセット値は、サンプルのビット深度に依存し得る。
b. あるいは、マトリクスパラメータ及びオフセット値は、Nビットサンプル(M<=N)に対してMビット精度で記憶でき、例えば、マトリクスパラメータ及びオフセット値は、10ビットサンプルに対して8ビット精度で記憶できる。
c. サンプルビット深度は、ルーマ等のカラーコンポーネントのための入力アレイのビット深度であり得る。
d. サンプルビット深度は、ルーマ等のカラーコンポーネントのための内部アレイ/再構成サンプルのビット深度であり得る。
【0208】
31. 指定されたブロックサイズのためのマトリクスパラメータ及び/又はオフセット値は、他のブロックサイズのためのマトリクスパラメータ及び/又はオフセット値から導出され得る。
【0209】
32. 1つの例では、8×8ブロックの16×8マトリクスは、4×4ブロックの16×4マトリクスから導出可能である。
【0210】
33. ALWIPによって生成される予測は、さらに用いられる予測信号を得るために処理される中間信号として扱われ得ることが提案される。
a. 1つの例では、位置依存イントラ予測コンビネーション(PDPC)は、さらに用いられる予測信号を生成するためにALWIPによって生成される予測に適用され得る。
i. 1つの例では、PDPCは、ブロックがプラナー又はDC等の特定の通常のイントラ予測モードでコード化されるのと同じ方法でALWIPコード化ブロックに対して行われる。
ii. 1つの例では、PDPCは、ALWIPイントラ予測モードから変換される通常のイントラ予測モードでコード化されるブロックと同じ方法でALWIPコード化ブロックに対して行われる。
iii. 1つの例では、PDPCは、条件付きでALWIPコード化ブロックに適用される。
1)例えば、ALWIP内部予測モードから変換された通常のイントラ予測モードにPDPCが適用されている場合にのみ、PDPCがALWIPコード化ブロックに対して適用される。
a. 1つの例では、ALWIPによって生成された境界サンプル予測は、さらに用いられる予測信号を生成するために隣接サンプルでフィルタリングされ得る。
i. 1つの例では、境界サンプルに対するフィルタリングは、ブロックがプラナー又はDC等の特定の通常のイントラ予測モードでコード化されるのと同じ方法で、ALWIPコード化ブロックに対して行われる。
ii. 1つの例では、境界サンプルに対するフィルタリングは、ALWIPイントラ予測モードから変換された通常のイントラ予測モードでブロックがコード化されるのと同じ方法で、ALWIPコード化ブロックに対して行われる。
iii. 1つの例では、境界サンプルに対するフィルタリングは、条件付きでALWIPコード化ブロックに対して適用される。
1)例えば、境界サンプルに対するフィルタリングがALWIPイントラ予測モードから変換された通常のイントラ予測モードに適用される場合にのみ、境界サンプルに対するフィルタリングがALWIPコード化ブロックに対して適用される。
【0211】
34. バイリニア補間フィルタ以外の補間フィルタをALWIPのアップサンプリングプロセスで用いられ得ることが提案される。
a. 1つの例では、4タップ補間フィルタがALWIPのアップサンプリングプロセスで用いられ得る。
i. 例えば、クロマコンポーネントのための動き補償を行うために用いられるVVCの4タップ補間フィルタは、ALWIPのアップサンプリングプロセスで用いられ得る。
ii. 例えば、角度イントラ予測を行うために用いられるVVCの4タップ補間フィルタは、ALWIPのアップサンプリングプロセスで用いられ得る。
iii. 例えば、ルーマコンポーネントの動き補償を行うために用いられるVVCの8タップ補間フィルタは、ALWIPのアップサンプリングプロセスで用いられ得る。
【0212】
35. ALWIPモードでコード化されたブロック内のサンプルは異なる方法で予測され得る。
a. 1つの例では、W*Hブロックの場合、該ブロック内のsW*sHサブブロックの予測は、それにsW*sH ALWIPを適用することにより生成され得る。
i. 1つの例では、W*Hブロックの場合、その左上のW/2*H/2ブロックの予測は、それにW/2*H/2 ALWIPを適用することにより生成され得る。
ii. 1つの例では、W*Hブロックの場合、その左側のW/2*Hブロックの予測は、それにW/2*H ALWIPを適用することにより生成され得る。
iii. 1つの例では、W*Hブロックの場合、その上側のW*H/2ブロックの予測は、それにW*H/2 ALWIPを適用することにより生成され得る。
iv. 1つの例では、sW*sHサブブロックは、利用可能な左側又は/及び上側の隣接サンプルを有し得る。
b. 1つの例では、サブブロックの位置をどのように決定するかは、ブロックの寸法に依存し得る。
i. 例えば、W>=Hの場合、その左側のW/2*Hブロックの予測は、それにW/2*H ALWIPを適用することにより生成され得る。
ii. 例えば、H>=Wの場合、その上側のW*H/2ブロックの予測は、それにW*H/2 ALWIPを適用することにより生成され得る。
iii. 例えば、W=Hの場合、その左上のW/2*H/2ブロックの予測は、それにW/2*H/2 ALWIPを適用することにより生成され得る。
c. さらに、1つの例では、残りのサンプル(例えば、サンプルがsW*sHサブブロックに属していない)の予測は、W*H ALWIPを適用することにより生成され得る。
i. あるいは、残りのサンプルの予測は、従来のイントラ予測(例えば、イントラモードとして返還イントラ予測モードを用いる)を適用することにより生成され得る。
ii. さらに、sW*sHサブブロック内のサンプルについて計算がスキップされ得る。
【0213】
35. ALWIPモードでコード化されたブロック内のサンプルは、サブブロック(例えば、サイズsW*sH)レベルで予測され得る。
a. 1つの例では、sW*sH ALWIPは、隣接する再構成サンプル(例えば、境界サブブロックの場合)又は/及び隣接する予測サンプル(例えば、内部サブブロックの場合)を用いて各サブブロックに適用され得る。
b. 1つの例では、サブブロックはラスタ走査順序で予測され得る。
c. 1つの例では、サブブロックは、ジグザグ順に予測され得る。
d. 1つの例では、サブブロックの幅(高さ)は、sWMax(sHMax)以下であり得る。
e. 1つの例では、幅又は高さのいずれか又は幅及び高さの両方を有するブロックが閾値Lよりも大きい(又は等しい)場合、そのブロックは複数のサブブロックに分割され得る。
f. 閾値Lは、SPS/PPS/ピクチャ/スライス/タイルグループ/タイルレベルで予め定義され得るか又はシグナリングされ得る。
i. あるいは、閾値は、ブロックサイズ、ピクチャタイプ、時間層インデックス等の特定のコード化情報に依存し得る。
【0214】
37. 隣接サンプル(近隣の又は非近隣の)は、ALWIPで用いられる前にフィルタリングされることが提案される。
a. あるいは、隣接サンプルは、ALWIPで用いられる前にフィルタリングされない。
b. あるいは、隣接サンプルは、ALWIPで用いられる前に条件的にフィルタリングされる。
i. 例えば、隣接するサンプルは、ALWIPイントラ予測モードが1又は一部の特定の値と等しい場合にのみ、ALWIPで用いられる前にフィルタリングされる。
【0215】
38. ALWIPフラグをコード化する場合、算術コード化におけるALWIPフラグのためのコンテキストを導出する方法は、現在のブロックの全ての次元で同じであることが提案される。
a. 1つの例では、算術コード化におけるALWIPフラグのためのコンテキストを導出する方法は、(Abs(Log2(cbWidth)-Log2(cbHeight)))が1より大きいかそうでない場合同じであり、CbWidth及びCbHeightは、それぞれ現在のブロックの幅及び高さである。
b. 1つの例では、算術コード化におけるALWIPフラグのためのコンテキストの導出は、隣接ブロックのALWIP情報及び/又は隣接ブロックの可用性のみに依存する。
i. 1つの例では、複数の隣接ブロックのALWIP情報(例えば、intra_lwip_flag)及び/又は隣接ブロックの可用性が直接用いられる。例えば、左側及び上側の隣接ブロックのALWIPフラグ及び/又は左側及び隣接ブロックの可用性は、算術コード化におけるALWIPフラグのためのコンテキストを導出するために用いられる。一例を表5に示す。あるいは、さらに、コンテキストインデックスオフセットctxInc=(condL && availableL)+(condA && availableA)+ctxSetIdx*3である。
【0216】
【表12】
表5:左側及び上側のシンタックス要素を用いたctxIncの仕様
【0217】
ii. 1つの例では、隣接ブロックのALWIP情報(例えば、intra_lwip_flag)のうちの1つが算術コード化におけるALWIPフラグのためのコンテキストを導出するために用いられ、隣接ブロックは左側隣接ブロックであり得る。一例を表6に示す。あるいは、さらに、コンテキストインデックスオフセットctxInc=(condL && availableL)+ctxSetIdx*3である。
【0218】
【表13】
表6:左側及び上側のシンタックス要素を用いたctxIncの仕様
【0219】
iii. 1つの例では、隣接ブロックのALWIPフラグ情報(例えば、intra_lwip_flag)のうちの1つが算術コード化におけるALWIPフラグのコンテキストを導出するために使われ、隣接ブロックは上側の隣接ブロックであり得る。一例を表7に示す。あるいは、さらに、コンテキストインデックスオフセットctxInc=(condA && availableA)+ctxSetIdx*3である。
【0220】
【表14】
表7:左側及び上側のシンタックス要素を用いたctxIncの仕様
【0221】
c. 1つの例では、1つの固定コンテキストが算術コード化でALWIPフラグをコード化するために用いられる。
d. 1つの例では、ALWIPフラグは算術コード化においてバイパスコード化される。
e. あるいは、Kコンテキストが算術コード化でALWIPフラグをコード化するために用いられ得る。用いられるコンテキストは、ブロックの寸法(例えば、Wで示される幅及びHで示される高さ)に依存し得る。
i. 1つの例では、K=2である。W>N*H又はH>N*W(例えば、N=2)の場合、第1のコンテキストが用いられ、そうでなければ第2のコンテキストが用いられる。
【0222】
39. 算術コード化でALWIPフラグ(例えば、intra_lwip_flag)をコード化するためにN個(N>=0)のコンテキストが用いられ得ることが提案される。
a. 1つの例では、N=3である。2つの隣接及び/又は非近接ブロックのALWIPフラグ及び/又は可用性は、算術コード化におけるALWIPフラグのために用いられるコンテキストを導出するために用いられ得る。
i. 1つの例では、2つの隣接ブロックは、上側(例えば、図10のB1)ブロック及び左側(例えば、図10のA1)ブロックを含み得る。
ii. 1つの例では、2つの隣接ブロックは、上側ブロック及び左下(例えば、図10のA2)ブロックを含み得る。
iii. 1つの例では、2つの隣接ブロックは上側ブロック及び右上(例えば、図10のB2)ブロックを含み得る。
iv. 1つの例では、2つの隣接ブロックは右上(例えば、図10のB2)ブロック及び左側(例えば、図10のA1)ブロックを含み得る。
v. 1つの例では、2つの隣接ブロックは右上(例えば、図10のB2)ブロック及び左下(例えば、図10のA2)ブロックを含み得る。
vi. 1つの例では、2つの隣接ブロックは左側ブロック(例えば、図10のA1)及び左下(例えば、図10のA2)ブロックを含み得る。
vii. 1つの例では、隣接ブロックは、図10とは異なるように定義され得る。一例を図16に示す。2つの隣接するブロックは、{右上、左上、左上、左下}ブロックのうちのいずれか2つを含み得る。例えば、2つの隣接ブロックは、{B0,B1,B2,A0,A1}のうちのいずれか2つのブロックを含み得る。
b. 1つの例では、N=2である。1つの隣接ブロック及び/又は非近接ブロックのALWIPフラグ及び/又は可用性は、算術コーディング化においてALWIPフラグのために用いられるコンテキストを導出するために用いられ得る。
i. 1つの例では、隣接ブロックは、{右上、左上、左上、左下}のいずれかであり得る。隣接ブロックの一例を図10に示す。
ii. 1つの例では、隣接ブロックは、{右上、左上、左上、左下}ブロックのいずれかであり得る。隣接ブロックの一例を図16に示す。
c. 1つの例では、1つの固定コンテキストが、算術コード化におけるALWIPフラグをコード化するために用いられ得る。
d. 1つの例では、ALWIPフラグは、算術コード化においてバイパスコード化され得る。図16は、隣接ブロックの一例を示す。
【0223】
40. アップサンプリング境界サンプルを計算することなく縮小境界サンプルが生成され得るが提案される。
a. 1つの例では、アップサンプリング境界サンプル位置に参照サンプルは、予測アップサンプリングプロセスで直接用いられる。
i. 1つの例では、アップサンプリング境界サンプルは、複数の隣接する参照サンプルを平均化することによって計算されなくてもよい。
b. 1つの例では、縮小境界サンプルは、参照サンプル及びダウンスケーリング係数から直接計算され得る。
i. 1つの例ではダウンスケーリング係数は、変換ブロックサイズ及びダウンサンプリングされた境界サイズにより計算され得る。
【0224】
41. マトリクス乗算のために用いられる縮小境界サンプルは一段階で生成され得ることが提案される。
a. 1つの例では、それらは、元の再構成された隣接サンプルから一段階で直接生成され得る(なお、VVC WD5は、セクション2.2.1.5.4.4に記載されているように、ALWIP縮小境界サンプルを生成するために2段階ダウンサンプリングを用いる)。元の再構成された隣接サンプルは、さらなる処理なしにデコードされた隣接サンプルであり得る。例えば、元の再構成された隣接サンプルは角度インター予測サンプルを生成するために用いられ得る。
b. 1つの例では、縮小境界サンプルは、現在のブロックの上側の隣接する行及び/又は左側の隣接する列に位置する元の再構成されたサンプルから生成され得る。
i. 1つの例では、現在のブロックに(所与の順序で)隣接するM個の元の再構成されたサンプルから、N個の縮小境界サンプルを生成する必要があると仮定すると、各K個の連続する元の再構成された隣接サンプルが、1つの出力縮小境界サンプルを得るために用いられ得る。
1) 1つの例では、K=M/Nである。
a. あるいは、K=(M+N/2)/Nである。
2) 1つの例では、1つの出力縮小境界サンプルは、K個の連続する元の再構成された隣接サンプルの平均として導出され得る。
3) 1つの例では、1つの出力縮小境界サンプルは、K個の連続する元の再構成された隣接サンプルの加重平均として導出され得る。
c. 1つの例では、左側の縮小境界サンプルは、現在のブロックの左側の隣接する列に位置する元の再構成サンプルから生成され得る。一方で、上側縮小サンプルは、現在のブロックの上側で隣接する行に位置する元の再構成サンプルから生成され得る。
i. 例えば、図17に示すように、boundaryleft及びboundarytopとそれぞれ表記される左側境界及び上側境界の4つの縮小境界サンプルは、現行の16×16ALWIPブロックの(図中の16×16ブロックに隣接する灰色のグリッドとして表記される)左/上側の元の隣接する再構成サンプルによって生成される。
d. 縮小境界サンプルをどのように生成するかは、ブロック寸法/コード化情報(例えば、イントラ予測モード、変換タイプ等)に依存し得る。
e. 1つの例では、上述の方法は、縮小境界サンプルの生成を必要とする全てのサイズのALWIPブロックに適用され得る(例えば、4×4のALWIPブロックから64×64のALWIPブロックに)。
f. 1つのでは、現在のブロックの左側の隣接する列及び現在のブロックの上側の隣接する行のための縮小境界サンプルの生成プロセスは、異なる方法で行われ得る。
i. 例えば、8×4のALWIPブロックの場合、予め定義された縮小境界サンプルの数は、上側に4つ、左側に4つであり、そして、8×4のALWIPブロックの上側に位置する8つの隣接サンプルを用いて上側の4つの縮小境界サンプルを生成する一方で、8×4のALWIPブロックの左側の列に位置する4つの隣接サンプルは、左側の4つの縮小境界サンプルとして直接コピーされる。
【0225】
42. 縮小予測ブロックから最終の予測ブロックを生成するために、(現在のブロックに近接するか又は近接していない)元の再構成された隣接サンプルの全て又は一部をアップサンプリングプロセスで用いることを提案する。
a. 1つの例では、元の再構成された隣接サンプルは、現在のブロックの上側の隣接する行及び/又は左側の隣接する列に位置し得る。図18に一例を示し、該例では、64×64の最終予測ブロックが、8×8の縮小予測ブロックに加えて、64×64ブロックの元の再構成された隣接サンプルからのアップサンプリングにより生成される。
i. あるいは、さらに、縮小境界サンプルは、縮小予測ブロックを得るためのマトリクス乗算のみに用いられ得るが、最終予測ブロックを生成するためのアップサンプリングプロセスには用いられなくてもよい。例えば、K個の縮小境界サンプルは、MxNの縮小予測ブロックを生成するためにALWIPのマトリクス乗算に入力され得るが、アップサンプリングプロセスにおける最終予測ブロックを生成するためには用いられなくてもよい。例えば、K=8であり、M×Nは8×8である。
b. 1つの例では、選択された元の再構成された隣接サンプルは、縮小予測ブロックから最終予測ブロックを生成するためにアップサンプリングプロセスで用いられ得る。
i. 例えば、現在のブロックの左側の全ての元の再構成された隣接サンプルが選択され得る。
ii. 例えば、現在のブロックの上側の全ての元の再構成された隣接サンプルが選択され得る。
iii. 例えば、現在のブロックの左側の各M個の連続する元の再構成された隣接サンプルのうちのK個が選択され得る。例えば、K=1であり、M=2/4/8である。
1) 例えば、各M個の連続する隣接サンプルのうちの後半のK個の元の再構成された隣接サンプルが選択され得る。
2) 例えば、各M個の連続する隣接サンプルのうちの最初のK個の元の再構成された隣接サンプルが選択され得る。
iv. 例えば、現在のブロックの上側の各M個の連続する元の再構成された隣接サンプルのうちのK個が選択され得る。例えば、K=1であり、M=2/4/8である。
1) 例えば、各M個の連続する隣接サンプルのうちの後半のK個の元の再構成された隣接サンプルが選択され得る。
2) 例えば、各M個の連続する隣接サンプルのうちの最初のK個の元の再構成された隣接サンプルが選択され得る。
v. 例えば、選択は、ブロックの幅及び高さに依存し得る。blkW及びblkHがALWIPブロックの幅及び高さをそれぞれ示すと仮定する。そして、(blkX,blkY)はブロックの左上の位置を表す。
1) 例えば、blkWがblkH以上の場合、現在のブロックの左側の全ての元の再構成された隣接サンプルが選択され得る及び/又はMで示される、現在のブロックの上側の選択された元の再構成された隣接サンプルの数はblkWに依存し得る。
a. 1つの例では、現在のブロックの上側のk番目の選択されたサンプルは、位置(blkX+(k+1)*blkW/M-1,blkY-1)にあってもよく、kは0~M-1である。
b. 例えば、blkW<=8の場合、M=4である。
c. 例えば、blkW>8の場合、M=8である。
d. あるいは、blkWとblkHとの間の関係にかかわらず、現在のブロックの左側の元の再構成された隣接サンプルの全てが選択され得る及び/又は現在のブロックの上側のM個の元の再構成された隣接サンプルが選択され得る。Mは上記の規則によって決定される。
2) 例えば、blkWがblkHよりも小さい場合、現在のブロックの上側の元の再構成された隣接サンプルの全てが選択され得る及び/又はMで示される、現在のブロックの左側の選択された元の再構成された隣接サンプルの数はblkHに依存し得る。
a. 1つの例では、現在のブロックの側のk番目の選択されたサンプルは、位置(blkX-1,blkY+(k+1)*blkH/M-1)にあってもよく、kは0~M-1である。
b. 例えば、blkH<=8の場合、M=4である。
c. 例えば、blkH>8の場合、M=8である。
d. あるいは、blkWとblkHとの間の関係にかかわらず、現在のブロックの上側の元の再構成された隣接サンプルの全てが選択され得る及び/又は現在のブロックの左側のM個の元の再構成された隣接サンプルが選択され得る。Mは上記の規則によって決定される。
c. 1つの例では、ALWIPアップサンプリングに用いられる隣接サンプルは、最終予測ブロックを生成するために用いられる前にさらに修正され得る(例えば、フィルタリング、フィルタはNタップフィルタであり、例えばN=2又は3)。
i. 1つの例では、隣接サンプルフィルタリングプロセスは、ALWIPモードに従って適応的に適用され得る。
d. 最終予測ブロックをどのように生成するか(例えば、線形補間)は、ブロック寸法/コード化情報(例えば、イントラ予測方向、変換タイプ等)に依存し得る。
【0226】
43. 1つの例では、サンプルは、ALWIPでのアップサンプリングプロセスにおける異なるフィルタリング段階で異なる精度を有し得る。「サンプル」とは、アップサンプリングの前の又は後の予測サンプル又は中間サンプルをいう。
a. 1つの例では、ALWIPでのアップサンプリングプロセスにおいて、サンプルは、第1のフィルタリング段階で第1の寸法に沿って水平方向にアップサンプリングされ、次いで、サンプルは第2のフィルタリング段階で第2の寸法に沿って垂直方向にアップサンプリングされる。
i. あるいは、ALWIPでのアップサンプリングプロセスにおいて、サンプルは、第1のフィルタリング段階で第1の寸法に沿って垂直方向にアップサンプリングされ、次いで、サンプルは、第2のフィルタリング段階で第2の寸法に沿って水平方向にアップサンプリングされる。
b. 1つの例では、第1のフィルタリング段階における右側シフト又は分割を伴わない出力アップサンプリングの結果が、第2のフィルタリング段階への入力サンプルとして用いられ得る。
i. 1つの例では、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、最終のアップサンプリングの結果を導出するためにShift1だけ右側にシフトされ得るか又はDem1で分割され得る。
ii. 1つの例では、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、最終のアップサンプリングの結果を導出するためにShift2だけ右側にシフトされ得るか又はDem2で分割され得る。
1)1つの例では、Shift1=2×Shift2;Dem1=Dem2×Dem2である。
iii. 1つの例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリングの結果ではないサンプルは、第2のフィルタリング段階に入力される前に、Shift3だけ左側にシフトされ得るか又はDem3で分割され得る。
1)1つの例では、Shift3=Shift1;Dem3=Dem2である。
c. 1つの例では、第1のフィルタリング段階における出力アップサンプリングの結果は、第2のフィルタリング段階への入力サンプルとして用いられる前に、Shift1だけ右側にシフトされ得るか又はDem1で分割され得る。
i. 1つの例では、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、最終のアップサンプリングの結果を導出するためにShift2だけ右側にシフトされ得るか又はDem2で分割され得る。Shift2はShift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem2はDem1と等しくなくてもよく、例えば、Dem2>Dem1であり得る。
ii. 1つの例では、第1のフィルタリング段階における出力アップサンプリングフィルタリング結果は、最終のアップサンプリングの結果を導出するためにShift3だけ右側にシフトされ得るか又はDem3で分割され得る。Shift3はShift1と等しくてもよく、Dem3はDem1と等しくなくてもよい。
1)1つの例では、Shift3=Shift1+Shift2である。
iii. 1つの例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、因数で左側にシフトされ得るか又は乗算され得る。
d. 1つの例では、第1のフィルタリング段階における出力アップサンプリングの結果は、第2のフィルタリング段階への入力サンプルとして用いられる前に、Shift1だけ左側にシフトされ得るか又はDem1によって乗算され得る。
i. 1つの例では、第2のフィルタリング段階における出力アップサンプリングの結果は、最終のアップサンプリングの結果を導出するために、因数で右側にシフトされ得るか又は分割され得る。
ii. 1つの例では、第1のフィルタリング段階における出力アップサンプリングの結果は、最終のアップサンプリングの結果を導出するために、因数で右側にシフトされ得るか又は分割され得る。
iii. 1つの例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、Shift2だけ左側にシフトされ得るか又はDem2により乗算され得る。Shift2はShift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem1はDem2と等しくなくてもよく、例えば、Dem2>Dem1である。
e. 1つの例では、第1のフィルタリング段階に入力されるサンプルは、第1のフィルタリング段階への入力サンプルとして用いられる前に、Shift1だけ左側にシフトされ得るか又はDem1により乗算され得る。
i. 1つの例では、第2のフィルタリング段階における出力アップサンプリングの結果は、最終のアップサンプリングの結果を導出するために、因数で右側にシフトされ得るか又は分割され得る。
ii. 1つの例では、第1のフィルタリング段階における出力アップサンプリングの結果は、最終のアップサンプリングの結果を導出するために、因数で右側にシフトされ得るか又は分割され得る。
iii. 1つの例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、Shift2だけ左側にシフトされ得るか又はDem2により乗算され得る。Shift2はShift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem1はDem2と等しくなくてもよく、例えば、Dem2>Dem1である。
【0227】
44. ALWIPにおけるアップサンプリングは、垂直アップサンプリング及び水平アップサンプリングの両方が必要な場合、固定の順序で行われ得ることが提案される。
a. 1つの例では、水平アップサンプリングが最初に行われ、垂直アップサンプリングが二番目に行われ得る。
b. 1つの例では、垂直アップサンプリングが最初に行われ、水平アップサンプリングが二番目に行われ得る。
【0228】
45. 1つの例では、アップサンプリングの前のALWIPにおける予測サンプルは、ブロック寸法に従って転置され得る。
a. 1つの例では、W*Hブロックが最初にH*Wブロックに転置され、その後にアップサンプリングが適用され得る。
b. あるいは、さらに、アップサンプリングプロセスの後に、アップサンプリングされたサンプルが逆の方法で転置され得る。
【0229】
46. バイリニアフィルタの代わりに代替補間フィルタをALWIPにおけるアップサンプリングに用いられ得ることが提案される。
a. 1つの例では、(4-タップ、6-タップ、8-タップ等)ガウスフィルタが用いられ得る。
b. 1つの例では、(4-タップ、6-タップ、8-タップ等)キュービックフィルタが用いられ得る。
c. 1つの例では、クロマサンプルのための動き補償に用いられる補間フィルタが用いられ得る。
d. 1つの例では、ルーマサンプルのための動き補償に用いられる補間フィルタ(6タップ、8タップ等)が用いられ得る。
e. どの補間フィルタを用いるかは、ブロック寸法に依存し得る。
f. どの補間フィルタを用いるかは、アップサンプリング比に依存し得る。
g. どの補間フィルタを用いるかは、ALWIPの予測モードに依存し得る。
h. どの補間フィルタを用いるかは、アップサンプリングのためにどれだけのサンプルが利用可能かに依存し得る。
i. 例えば、1つの行(又は列)に4つの利用可能なサンプル(隣接する参照サンプルを除く)がある場合、4-タップ補間フィルタが用いられ得る。
ii. 例えば、1つの行(又は列)に8つの利用可能なサンプル(隣接する参照サンプルを除く)がある場合、4-タップ又は8-タップ補間フィルタが用いられ得る。
【0230】
47. ALWIPモードでコード化されたブロックのためのMPMは、隣接ブロックから独立して構築され得ることが提案される。
a. 1つの例では、ALWIPモードでコード化されたブロックのためのMPMは、予め定義されている。
i. 例えば、予め定義されたMPMは、全てのブロック寸法に対して{M0,M1,M2}である。例えば、M0=0、M1=1及びM2=2である。
ii. 例えば、ALWIPモードでコード化されたブロックのための予め定義されたMPMは、ブロックの寸法に依存し得る。例えば、ALWIPモードでコード化されたブロックのための予め定義されたMPMは、セクション2.2.1.5で定義されたsizeIdに依存し得る。
1) 例えば、sizeId=0の場合、MPMは{17,34,5}の順になる。
2) 例えば、sizeId=1の場合、MPMは{0,7,16}の順になる。
3) 例えば、sizeId=2の場合、MPMは{1,4,6}の順になる。
iii. 例えば、ALWIPモードでコード化されたブロックのための予め定義されたMPMは、最初のKマトリクスに関連するように固定されるべきである。
1) 1つの例では、K=3である。
2) 1つの例では、Kはブロック寸法に依存し得る。
b. 1つの例では、全ての種類の幅及び高さを有するブロックに対して、固定数(例えば11)のMIPモードがあるが、MPMはsizeIdが異なるブロックに対して異なり得る。
i. 例えば、sizeId=0の場合、MPMは{10,5,1}の順になる。
ii. 例えば、sizeId=1の場合、MPMは{9,7,1}の順になる。
iii. 例えば、sizeId=2の場合、MPMは{6,1,8}の順になる。
c. 1つの例では、全ての種類の幅及び高さを有するブロックに対して、固定数(例えば11)のMIPモードがあり、MPMは全ての種類の幅及び高さを有するブロックに対して同じである。
【0231】
48. ブロック寸法に関係なく、ALWIPのために利用されるマトリクスの数を統一することが提案される。
a. 1つの例では、全てのブロック寸法に対してS個のマトリクスが記憶され得る。例えば、S=11又はS=19又はS=35である。
b. 1つの例では、ALWIPモードシグナリングは、全てのブロック寸法に対して同じ方法で行われる。
c. あるいは、さらに、マトリクスは異なるブロック寸法に対して異なり得る。
【0232】
49. クロマブロックの二次変換(例えば、LFNST)のコーディング/パーシングサイド情報は対応するルミナンスMIP情報から切り離され得ることが提案される。すなわち、対応するルーマブロックがMIPモードでコード化されていても、サイド情報は依然としてシグナリング/パースされ得る。
a. あるいは、さらに、クロマブロックのために二次変換を適用するかどうかは、対応するルミナンスMIP情報から切り離され得る。
i. 1つの例では、対応するルーマブロックがMIPモードでコード化されていても、二次変換が依然として適用され得る。
b. 1つの例では、クロマブロックは、二重ツリー構造又はローカル二重ツリー構造内にあり得る。
c. 1つの例では、二重ツリークロマの場合、LFNSTが適用されるかどうかは、対応するルーマブロックがMIPコード化されているかどうかから切り離され得る。
i. あるいは、さらに、二重ツリークロマの場合、LFNSTを適用するかどうかは、ブロックがM×Nよりも小さいかどうか(例えば、M=N=16)から切り離され得る。
d. 1つの例では、二重ツリークロマの場合、LFNSTを適用するかどうかは、現在のクロマブロックがMIPによってコード化されているかどうかから切り離され得る。
i. あるいは、さらに、MIPは、クロマブロックに対して常に無効にされ得る。
ii. あるいは、二重ツリークロマの場合、LFNSTを適用するかどうかは、現在のクロマブロックがMIPによってコード化されるかどうかから切り離され得る。
e. 1つの例では、二重ツリークロマの場合、(lfnst_idx等の)LFNSTインデックスのシグナリングは、MIPフラグ(例えば、intra_MIP_flag)から切り離され得る。あるいは、単一ツリー又は二重ツリールーマの場合、LFNSTが適用されるかどうかは、対応するルーマブロックがMIPによってコード化されているかどうかにより条件を付けられ得る。
i. 1つの例では、単一ツリー又は二重ツリールーマの場合(例えば、treeType=DUAL_TREE_CHROMAではない場合)、(lfnst_idx等の)LFNSTインデックスのシグナリングは、対応するMIPコード化ルーマブロックの寸法によって条件付けられ得る。
1) 例えば、treeType=DUAL_TREE_CHROMAではなく、対応するルーマブロックがMIP(intra_MIP_flagがtrue)モードでコード化され、対応するルーマブロックのmin(幅、高さ)が16以上である場合にのみ、(lfnst_idx等の)LFNSTインデックスがシグナリングされ得る。
【0233】
50. ツリータイプの条件確認の下で、二次変換(例えば、lfnst_idx)のサイド情報をシグナリングすることが提案される。
a. 1つの例では、サイド情報をシグナリングするかどうかは、ツリータイプがクロマローカル二重ツリーの場合を含み得る、クロマ二重ツリー(例えば、treeType==DUAL_TREE_CHROMA)であるかどうかに依存し得る。
i. あるいは、サイド情報をシグナリングするかどうかは、ツリータイプが、クロマローカル二重ツリーの場合を除くクロマ二重ツリーであるかどうかに依存し得る。
b. 条件Aは、「MIPは適用されず、LFNSTによって考慮されるブロック幅及びブロック高さの両方は、16等の整数Nを下回らない」と定義される。例えば、条件Aは、JVET-P2001-v9で、(!intra_mip_flag[x0][y0]||Min(lfnstWidth,lfnstHeight)>=16)と記述され得る。条件Bは、「現在のブロックは二重ツリー(又はローカル二重ツリー)構造内のクロマブロックである」と定義され、例えば、(treeType==DUAL_TREE_CHROMA)と記述され得る。条件Cは、「現在のブロックは二重ツリー(又はローカル二重ツリー)構造内のルーマブロックである」と定義される。例えば、条件Cは、(treeType==DUAL_TREE_LUMA)と記述され得る。
i. LFNSTを用いることができるかどうかを決定するために条件Aを用いるかどうかは、条件Bに依存し得ることが提案される。
1) 例えば、条件BがTRUEの場合、条件Aは無視される。そうでない場合(条件BはFALSE)、条件AがFALSEであれば、LFNSTは用いられない。
ii. LFNSTに関する情報の全て又は一部をシグナリングできるかどうかを判定するために条件Aを用いるかどうかは、条件Bに依存し得ることが提案される。
1) 例えば、条件BがTRUEの場合、条件Aは無視される。そうでない場合(条件BはFALSE)、条件AがFALSEであれば、LFNSTに関する情報の全て又は一部はシグナリングされない。
iii. LFNSTを用いることができるかどうかを決定するために条件Aを用いるかどうかは、条件Cに依存し得ることが提案される。
1) 例えば、条件CがFALSEの場合、条件Aは無視される。そうでない場合(条件BはFALSE)、条件AがFALSEであれば、LFNSTは用いられない。
iv. LFNSTに関する情報の全て又は一部をシグナリングできるかどうかを判定するために条件Aを用いるかどうかは、条件Cに依存し得ることが提案される。
1) 例えば、条件CがFALSEの場合、条件Aは無視される。そうでない場合(条件BはFALSE)、条件AがFALSEであれば、LFNSTに関する情報の全て又は一部はシグナリングされない。
v. 1つの例では、単一ツリーの場合、条件AはルーマコンポーネントにLFNSTを適用するかどうかのみを制御し得る。
1) 例えば、1つの例では、クロマコンポーネントにLFNSTを適用する条件が満たされているが、条件AがFALSEの場合、LFNSTはルーマコンポーネントには適用されないが、クロマコンポーネントに適用され得る。
a. この場合、LFNSTに関する全ての又は一部の情報は、クロマコンポーネントに対してLFNSTを適用するかどうか及び/又はどのように適用するかを制御するためにシグナリングされる。
【0234】
51. 二次変換のサイド情報(例えば、lfnst_idx)のシグナリング/パーシングは、カラーコンポーネントに依存して分類され得る。
a. 1つの例では、二次変換の個々のサイド情報(例えば、lfnst_idx)は、各カラーコンポーネント(例えば、Y、Cb
Cr)に対してシグナリング/パースされ得る。例えば、lfnst_idx[cIdx]は異なるcIdxに対して異なり得る。cIdxは、カラーコンポーネントY、Cb及びCrに対してそれぞれ0、1及び2であり得る。
i. 1つの例では、クロマコンポーネント(Cb及びCr等)は、二次変換の同じサイド情報を共有し得る。
a. 1つの例では、二次変換の個々のサイド情報(例えば、lfnst_idx)は、ル-マ及びクロマコンポーネントに対してシグナリング/パースされ得る。例えば、lfnst_idx[cIdx]は異なるcIdxに対して異なり得る。cIdxは、ルーマ及びクロマコンポーネントに対してそれぞれ0及び1であり得る。
【0235】
52. MIPのサイド情報(例えば、intra_mip_flag)のシグナリング/パーシングはカラーコンポーネントに依存して分類され得る。
a. 1つの例では、MIPの個々のサイド情報(例えば、intra_mip_flag)は、各カラーコンポーネント(例えば、Y、Cb、Cr)に対してシグナリング/パースされ得る。例えば、intra_mip_flag[cIdx]は異なるcIdxに対して異なり得る。cIdxは、カラーコンポーネントY、Cb及びCrに対してそれぞれ0、1及び2であり得る。
i. 1つの例では、クロマコンポーネント(Cb及びCr等)は、MIPの同じサイド情報を共有し得る。
b. 1つの例では、MIPの個々のサイド情報(例えば、intra_MIP_flag)は、ル-マ及びクロマコンポーネントのためにシグナリング/パースされ得る。例えば、intra_mip_flag[cIdx]は異なるcIdxに対して異なり得る。cIdxは、ルーマ及びクロマコンポーネントに対してそれぞれ0及び1であり得る。
【0236】
5.実施形態
新たに追加された部分を太字の斜体で強調表示し、削除された部分は図面においては取り消し線で又は本明細書では太字の下線テキストで強調表示されている。
【0237】
5.1 1つの例
ALWIPフラグをコーディングするために3つのコンテキストが用いられる。図25は、コンテキストコード化ビンを有するシンタックス要素へのctxIncの割り当てを含む、更新されたテーブルを示す。
【0238】
5.2 1つの例
ALWIPフラグをコーディングするために1つの固定コンテキストが用いられる。図26は、コンテキストコード化ビンを有するシンタックス要素へのctxIncの割り当てを含む、更新されたテーブルを示す。
【0239】
5.3 1つの例
1ステップで境界縮小プロセスを行う。
【0240】
以下の実施形態は、採用したJVET-N0220の提案テストCE3-4.1_v2に基づく。
【0241】
8.4.4.2.X1 アフィン線形加重サンプル予測
8.4.4.2.X3 境界縮小プロセスの仕様
このプロセスへの入力は、
-変換ブロックサイズを指定する変数nTbXと、
-参照サンプルrefX[x](x=0..nTbX-1)と、
-ダウンサンプリングされた境界サイズを指定する変数boundySizeと、
-アップサンプリングに中間境界サンプルが必要かどうかを指定するフラグneedUpsBdryXと、
-アップサンプリングのための境界サイズを指定する変数upsBdrySizeと、
である。
このプロセスの出力は、縮小境界サンプルredX[x](x=0..boundarySize-1)とアップサンプリング境界サンプルupsBdryX[x](x=0..upsBdrySize-1)である。
【0242】
アップサンプリング境界サンプルupsBdryX[x](x=0..upsBdrySize-1)は以下のように導出される。
-needUpsBdryX=TRUEで、upsBdrySizeがnTbXより小さい場合、以下が適用される。
uDwn=nTbX/upsBdrySize (8-X30)
【0243】
【数25】
【0244】
-そうでない場合(upsBdrySize=nTbX)、upsBdryX[x]=refX[x]に設定される。
【0245】
縮小境界サンプルredX[x](x=0..boundarySize-1)は以下のように導出される。
-boundarySizeがupBdrySize nTbXより小さい場合、以下が適用される。
bDwn=upsBdrySize nTbX/boundarySize (8-X32)
【0246】
【数26】
式(8-X33)の二重角括弧内に示す「upsBdryX」という用語は削除される。
【0247】
-そうでない場合(boundarySize=upsBdrySize nTbX)、redX[x]はupsBdryX[x] refX[x]に等しく設定される。
【0248】
5.4 1つの例
ALWIPのアップサンプリングプロセスにおいて、異なるフィルタリング段階で異なる精度の予測サンプルを導出する。
【0249】
以下の実施形態は、採用したJVET-N0227の提案テストCE3-4.1_v2に基づく。
【0250】
8.4.4.2.X4 予測アップサンプリングプロセスの仕様
このプロセスへの入力は、
-入力ブロック幅を指定する変数predWと、
-入力ブロックの高さを指定する変数predHと、
-アフィン線形加重サンプルpredLwip[x][y](x=0..predW-1,y=0..predH-1)と、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
-アップサンプリング境界幅を指定する変数upsBdryWと、
-アップサンプリング境界高さを指定する変数upsBdryHと、
-上側アップサンプリング境界サンプルupsBdryT[x](x=0..upsBdryW-1)と、
-左側アップサンプリング境界サンプルupsBdryL[x](x=0..upsBdryH-1)と、
である。
このプロセスの出力は予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)である。
【0251】
スパース予測サンプルpredSamples[m][n]は、以下のようにpredLwip[x][y](x=0..predW-1,y=0..predH-1)から導出される。
upHor=nTbW/predW (8-X34)
upVer=nTbH/predH (8-X35)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predLwip[x][y] (8-X36)
上側境界サンプルupsBdryT[x](x=0..upsBdryW-1)は、以下のようにpredSamples[m][-1]に割り当てられる。
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-X37)
左側境界サンプルupsBdryL[y](y=0..upsBdryH-1)は、以下のようにpredSamples[-1][n]に割り当てられる。
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-X38)
予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
-nTbHがnTbWより大きい場合、下記の順番のステップが適用される。
1. upHorが1より大きい場合、全てのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=1..predH)がdX=1..upHor-1で以下のように適用される。
predSamples[xHor+dX][yHor]=((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor])/upHor (8-X39)
2. 全てのスパース位置(xVer,yVer)=(m,n*upVer-1)(m=0..nTbW-1,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で以下のように適用される。
yVer=-1の場合、predSamples[xVer][yVer]=predSamples[xVer][yVer]<<log2(upHor)
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer])/upVer+(1<<(log2(upHor)+log2(upVer)-1)))>>(log2(upHor)+log2(upVer)) (8-X40)
-そうでない場合は、以下の順番の手順が適用される。
1. upVerが1より大きい場合、(8-X40)(8-X41)で規定されるように、全てのスパース位置(xVer,yVer)=(m*upVer-1,n*Ver-1)(m=1..predW,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で適用される。
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer]) (8-X41)
2. 全てのスパース位置(xHor,yHor)=(m*upHor-1,n)(m=0..predW-1,n=0..nTbH-1)のための水平アップサンプリングがdX=1..upHor-1(8-X39)で規定されているように以下のように適用される。
xHor=-1の場合、predSamples[xHor][yHor]=predSamples[xHor][yHor]<<log2(upver)
predSamples[xHor+dX][yHor]=((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor]+(1<<(log2(upHor)+log2(upVer)-1)))>>(log2(upHor)+log2(upVer)) (8-X42)
【0252】
5.5 ブレット40に対応する例
ブロック寸法がW×Hであるとする。サンプルP(x,y)(x=Sx,Sx+Kx,Sx+2Kx,Sx+3Kx,...,y=Sy,Sy+Ky,Sy+2Ky,Sy+3Ky...)がアップサンプリングサンプルS(x,y)(x=0,1,2...W-1,y=0,1,2,...H-1)を導出するためにアップサンプリングプロセスに入力される。Kx及びKyはそれぞれ水平方向及び垂直方向に沿ったステップサイズである。(Sx,Sy)は開始位置である。
【0253】
1-Dアップサンプリングが第1段階で水平方向に行われ、1-Dアップサンプリングが第2段階で垂直方向に行われるとする。
【0254】
1つの例では、右シフトを伴わない第1段階における出力結果は以下のように導出され得る。
S’(Sx+Kx-1,Sy)=F1*P(Sx,Sy)+F2*P(Sx+Kx,Sy)
S’(Sx+Kx-1,Sy+Ky)=F1*P(Sx,Sy+Ky)+F2*P(Sx+Kx,Sy+Ky)
F1、F2は2-タップフィルタの係数であり、F1+F2=2である。
【0255】
次いで、第2段階の出力結果は以下のように導出され得る。
S’(Sx+Kx-1,Sy+1)=F3*S’(Sx+Kx-1,Sy)+F4*S’(Sx+Kx-1,Sy+Ky)
F3、F4は2-タップフィルタの係数であり、F3+F4=2である。
【0256】
その後、最終的にアップサンプリングされたサンプル値は以下のように導出される。
S(Sx+Kx-1,Sy+1)=Shift(S’(Sx+Kx-1,Sy+1),2N);
S(Sx+Kx-1,Sy)=Shift(S’(Sx+Kx-1,Sy),N);
S(Sx+Kx-1,Sy+Ky)=Shift(S’(Sx+Kx-1,Sy+Ky), N);
【0257】
5.6 1つの例
縮小境界サンプルを一段階で導出し、アップサンプリングのための参照バッファを生成する。
【0258】
以下の実施形態は、採用されたJVET-N0217の提案テストCE3-4.1_v2に基づく。
【0259】
8.4.4.2.X1 アフィン線形イントラサンプル予測
8.4.4.2.X3 境界縮小プロセスの仕様
...
アップサンプリング境界サンプルupsBdryX[x](x=0..upsBdrySize-1)は以下のように導出される。
-needUpsBdryX=TRUEであり、upsBdrySizeがnTbXより小さい場合、下記が適用される。
uDwn=nTbX/upsBdrySize (8-X30)
【0260】
【数27】
【0261】
-そうでない場合(upsBdrySize=nTbX)、upsBdryX[x]=refX[x]に設定される。
【0262】
縮小境界サンプルredX[x](x=0..boundarySize-1)は以下のように導出される。
-boundarySizeがupBdrySize nTbXより小さい場合、以下が適用される。
bDwn=upsBdrySize nTbX/boundarySize (8-X32)
【0263】
【数28】
式(8-X33)の二重角括弧に示される「upsBdryX」という用語は削除される。
【0264】
-そうでない場合(boundarySize=upsBdrySize nTbX)、redX[x]=upsBdryX[x]に設定される。
【0265】
5.7 1つの例
ALWIP(マトリクスベースのイントラ予測又はMIPとしても知られる)の固定順序アップサンプリングの例をここで提示する。テキストはJVET-N1001-v6に基づく。
【0266】
5.7.1 最初に水平アップサンプリング、次いで垂直アップサンプリング
8.4.5.2.1 マトリクスベースのイントラサンプル予測
このプロセスへの入力は、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)と、
-イントラ予測モードを指定する変数predModeIntraと、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
である。
このプロセスの出力は、予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)である。
【0267】
変数numModes、boundarySize、predW、predH及びpredCは、表8-7に規定のMIPSizeId[xTbCmp][yTbCmp]を用いて導出される。
【0268】
【表15】
表8-7:MipSizeIdを用いた、予測モードの数numMode、境界サイズboundarySize、予測サイズpredW、predH及びpredCの仕様
【0269】
転置されたフラグは下記のように導出される。
isTransposed=(predModeIntra>(numModes/2))?TRUE:FALSE (8-52)
フラグneedUpsBdryHor及びneedUpsBdryVerは下記のように導出される。
needUpsBdryHor=(nTbW>predW)?TRUE:FALSE (8-57)
needUpsBdryVer=(nTbH>predH)?TRUE:FALSE (8-58)
【0270】
変数upsBdryW及びupsBdryHは下記のように導出される。
upsBdryW=(nTbH>nTbW)?nTbW:predW (8-59)
upsBdryH=(nTbH>nTbW)?predH:nTbH (8-60)
upsBdryW=nTbW (8-59)
upsBdryH=predH (8-60)
【0271】
変数mipW及びmipHは下記のように導出される。
mipW=isTransposed?predH:predW (8-61)
mipH=isTransposed?predW:predH (8-62)
【0272】
参照サンプルrefT[x](x=0..nTbW-1)及びrefL[y](y=0..nTbH-1)の生成のために、8.4.5.2.2項に規定のMIP参照サンプル導出プロセスを、サンプル位置(xTbCmp,yTbCmp)、変換ブロック幅nTbW、変換ブロック高さnTbHを入力とし、上側及び左側参照サンプルrefT[x](x=0..nTbW-1)及びrefL[y](y=0..nTbH-1)を出力として呼び出される。
【0273】
境界サンプルp[x](x=0..2*boundarySize-1)の生成のために、下記が適用される。
-8.4.5.2.3項に規定のMIP境界ダウンサンプリングプロセスは、参照サンプルrefT[x](x=0..nTbW-1)、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryHor及びアップサンプリング境界サイズupsByWを入力とし、縮小境界サンプルredT[x](x=0..boundarySize-1)及びアップサンプリング境界サンプルupsBdryT[x](x=0..upsByW-1)を出力として、ブロックサイズnTbWの上側参照サンプルのために呼び出される。
-8.4.5.2.3項に規定のMIP境界ダウンサンプリングプロセスは、参照サンプルrefL[y](y=0..nTbH-1)、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer及びアップサンプリング境界サイズupsByHを入力とし、縮小境界サンプルredL[x](x=0..boundarySize-1)及びアップサンプリング境界サンプルupsBdryL[x](x=0..upsByH-1)を出力として、ブロックサイズnTbHの左側参照サンプルのために呼び出される。
-縮小された上側境界サンプルredT及び左側境界サンプルredLは、以下のように境界サンプルアレイpに割り当てられる。
【0274】
-isTransposed=1の場合、p[x]=redL[x](x=0..boundarySize-1)に設定され、p[x+boundarySize]=redT[x](x=0..boundarySize-1)に設定される。
【0275】
-そうでない場合、p[x]=redT[x](x=0..boundarySize-1)に設定され、p[x+boundarySize]=redL[x](x=0..boundarySize-1)に設定される。
【0276】
predModeIntraに従ったイントラサンプル予測プロセスの場合、以下の順番のステップが適用される。
3.マトリクスベースのイントラ予測サンプルpredmip[x][y](x=0..mipW-1,y=0..mipH-1)は以下のように導出される。
-変数modeIdは以下のように導出される。
modeId=predModeIntra-(isTransposed?numModes/2:0) (8-63)
-重みマトリクスmWeight[x][y](x=0..2*boundarySize-1,y=0..predC*predC-1)は、MipSizeId[xTbCmp][yTbCmp]及び表8-XX[Ed.(BB):非10ビット重みソリューションが採用された後に重みマトリクスを追加]を用いて導出される。
-バイアスベクトルvBias[y](y=0..predC*predC-1)は、表8-XX[Ed.(BB):非10ビット重みソリューションが採用された後にバイアスベクトルを追加]に規定のsizeId及びmodeIdを用いて導出される。
-変数sWは、MipSizeId[xTbCmp][yTbCmp]及び表8-8に規定のmodeIdを用いて導出される。
-マトリクスベースの予測サンプルpredMIP[x][y](x=0..mipW-1,y=0..mipH-1)は以下のように導出される。
oW=1<<(sW-1) (8-64)
sB=BitDepth-1 (8-65)
incW=(predC>mipW)?2:1 (8-66)
incH=(predC>mipH)?2:1 (8-67)
【0277】
【数29】
【0278】
4.isTransposed=TRUEの場合、predH×predWのアレイpredMip[x][y](x=0..predH-1,y=0..predW-1)は以下のように転置される。
predTemp[y][x]=predMip[x][y] (8-69)
predMip=predTemp (8-70)
5.予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
-needUpsBdryVer=TRUEの場合又はneedUpsBdryHor=TRUEの場合、8.4.5.2.4項に規定のMIP予測アップサンプリングプロセスが、入力ブロック幅preW、入力ブロック高さpredH、マトリクスベースのイントラ予測サンプルpredMip[x][y](x=0..predW-1,y=0..predH-1)、変換ブロック幅nTbW、変換ブロック高さnTbH、アップサンプリング境界幅updryW、アップサンプリング境界高さupsBdryH、上側アップサンプリング境界サンプルupsBdryT及び左側アップサンプリング境界サンプルupsBdryLを入力として呼び出され、出力は予測サンプルアレイpredSamplesである。
-そうでない場合、predSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)=predMip[x][y]に設定される。
6.予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)
は以下のようにクリップされる。
predSamples[x][y]=Clip1(predSamples[x][y]) (8-71)
【0279】
【表16】
表8-8:MipSizeId及びmodeIdに応じた重さシフトsWの仕様
【0280】
8.4.5.2.4 MIP予測アップサンプリングプロセス
このプロセスへの入力は、
-入力ブロック幅を指定する変数predWと、
-入力ブロックの高さを指定する変数predHと、
-マトリクスベースの予測サンプルpredMip[x][y](x=0..predW-1,y=0..predH-1)と、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
-アップサンプリング境界幅を指定する変数upsBdryWと、
-アップサンプリング境界高さを指定する変数upsBdryHと、
-上側アップサンプリング境界サンプルupsBdryT[x](x=0..upsBdryW-1)と、
-左側アップサンプリング境界サンプルupsBdryL[x](x=0..upsBdryH-1)と、
である。
このプロセスの出力は予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)である。
【0281】
スパース予測サンプルpredSamples[m][n]は、predMip[x][y](x=0..predW-1,y=0..predH-1)から以下のように導出される。
upHor=nTbW/predW (8-78)
upVer=nTbH/predH (8-79)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predMip[x][y] (8-80)
上側境界サンプルupsBdryT[x](x=0..upsBdryW-1)はpredSamples[m][-1]に以下のように割り当てられる。
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-81)
左側境界サンプupsBdryL[y](y=0..upsBdryH-1)はpredSamples[-1][n]に以下のように割り当てられる。
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-82)
予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
nTbHがnTbWより大きい場合、次の順番のステップが適用される。
1.upHorが1より大きい場合、全てのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=1..predH)は、dX=1..upHor-1で以下のように適用される。
sum=(upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] (8-83)
predSamples[xHor+dX」[yHor]=(sum+upHor/2-(sum<0?1:
0)/upHor (8-84)
2.全てのスパース位置(xVer,yVer)=(m,n*upVer-1)(m=0..nTbW-1,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で以下のように適用される。
sum=(upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] (8-85)
predSamples[xVer][yVer+dY]=(sum+upVer/2-(sum<0?1:0))/upVer (8-86)
そうでない場合は、以下の順番の手ステップが適用される。
1.upVerが1より大きい場合、全てのスパース位置(xVer,yVer)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で以下のように適用される。
【0282】
sum=(upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] (8-87)
predSamples[xVer][yVer+dY]=(sum+upVer/2-(sum<0?1:0))/upVer (8-88)
2.全てのスパース位置(xHor,yHor)=(m*upHor-1,n)(m=0..predW-1,n=0..nTbH-1)のための水平アップサンプリングがdY=1..upHor-1で以下のように適用される。
【0283】
sum=(upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] (8-89)
predSamples[xHor+dX][yHor]=(sum+upHor/2-(sum<0?1:0))/uPHor (8-90)
【0284】
5.7.2 最初に垂直アップリングサンプル、次に水平アップサンプリング
8.4.5.2.1 マトリクスベースのイントラサンプル予測
このプロセスへの入力は、
-現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)と、
-イントラ予測モードを指定する変数predModeIntraと、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロックの高さを指定する変数nTbHと、
である。
このプロセスの出力は、予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)である。
【0285】
変数numModes、boundarySize、predW、predH及びpredCは、表8-7に規定のMipSizeId[xTbCmp][yTbCmp]を用いて導出される。
【0286】
【表17】
表8-7:MipSizeIdを用いた予測モードの数numMode、境界サイズboundarySize、予測サイズpredW、predH、predCの仕様
【0287】
フラグisTransposedは以下のように導出される。
isTransposed=(predModeIntra>(numModes/2)) ?TRUE:FALSE (8-56)
【0288】
フラグneedUpsBdryHor及びneedUpsBdryVerは以下のように導出される。
needUpsBdryHor = (nTbW > predW) ?TRUE:FALSE (8-57)
needUpsBdryVer = (nTbH > predH) ?TRUE:FALSE (8-58)
【0289】
変数upsBdryW及びupsBdryHは以下のように導出される。
upsBdryW=(nTbH>nTbW)?nTbW:predW (8-59)
upsBdryH=(nTbH>nTbW)?predH:nTbH (8-60)
upsBdryW=predW (8-59)
upsBdryH=nTbH (8-60)
【0290】
変数mipW及びmipHは以下のように導出される。
mipW=isTransposed?predH:predW (8-61)
mipH=isTransposed?predW:predH (8-62)
【0291】
参照サンプルrefT[x](x=0..nTbW-1)及び参照サンプルrefL[y](y=0..nTbH-1)の生成のために、8.4.5.2.2項に規定のMIP参照サンプル導出プロセスがサンプル位置(xTbCmp,yTbCmp)、変換ブロック幅nTbW、変換ブロック高さnTbHを入力し、上側参照サンプルrefT[x](x=0..nTbW-1)及び左側参照サンプルrefL[y](y=0..nTbH-1)を出力として呼び出される。
【0292】
境界サンプルp[x](x=0..2*boundarySize-1)の生成のために、以下が適用される。
-8.4.5.2.3項に規定のMIP境界ダウンサンプリングプロセスは、上側参照サンプルのために、ブロックサイズnTbW、参照サンプルrefT[x](x=0..nTbW-1)、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryHor、アップサンプリング境界サイズupsBdryWを入力とし、縮小境界サンプルredT[x](x=0..boundySize-1)及びアップサンプリング境界サンプルupBdryT[x](x=0..upsBdryW-1)を出力として呼び出される。
-8.4.5.2.3項に規定のMIP境界ダウンサンプリングプロセスは、左側参照サンプルのために、ブロックサイズnTbH、参照サンプルrefL[y](y=0..nTbH-1)、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer、アップサンプリング境界サイズupsBdryHを入力とし、縮小境界サンプルredL[x](x=0..boundySize-1)及びアップサンプリング境界サンプルupBdryL[x](x=0..upsBdryH-1)を出力として呼び出される。
-縮小上側及び左側境界サンプルredT及びredLは、次のように境界サンプルアレイpに割り当てられる。
-isTransposed=1の場合、p[x]=redL[x](x=0..boundarySize-1)に設定され、p[x+boundarySize]=redT[x](x=0..boundarySize-1)に設定される。
-そうでなければ、p[x]=redT[x](x=0..boundarySize-1)に設定され、p[x+boundarySize]=redL[x](x=0..boundarySize-1)に設定される。
【0293】
predModeIntraに従ったイントラサンプル予測プロセスについては、以下の順番のステップが適用される。
【0294】
7. マトリクスベースの予測サンプルpredMip[x][y](x=0..mipW-1,y=0..mipH-1)は以下のように導出される。
-変数modeIdは以下のように導出される。
【0295】
modeId=predModeIntra-(isTransposed?numModes/2:0) (8-63)
-重みマトリクスmWeight[x][y](x=0..2*bounderySize-1,y=0..predC*predC-1)は、表8-XX[Ed.(BB):非10ビット重み解決策が採用された場合に重みマトリクスを追加]で規定のMipSizeId[xTbCmp][yTbCmp]及びmodeIdを用いて導出される。
-バイアスベクトルvBias[y](y=0..predC*predC-1)は、表8-XX[Ed.(BB):非10ビット重み解決策が採用された場合にバイアスベクトルを追加]で規定のsizeId及びmodeIdを用いて導出される。
-変数sWは、表8-8で規定のMipSizeId[xTbCmp][yTbCmp]及びmodeIdを用いて導出される。
-マトリクスベースの予測サンプルpredMip[x][y](x=0..mipW-1,y=0..mipH-1)は以下のように導出される。
【0296】
oW=1<<(sW-1) (8-64)
sB=BitDepth-1 (8-65)
incW=(predC>mipW)?2:1 (8-66)
incH=(predC>mipH)?2:1 (8-67)
【0297】
【数30】
【0298】
8. isTransposedが=TRUEの場合、predH×predWのアレイpredMip[x][y](x=0..predH-1,y=0..predW-1)は以下のように転置される。
predTemp[y][x]=predMip[x][y] (8-69)
predMip=predTemp (8-70)
【0299】
9. 予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
-needUpsBdryVer=TRUEの場合又はneedUpsBdryHor=TRUEの場合、8.4.5.2.4項に規定のMIP予測アップサンプリングプロセスが入力ブロック幅preW、入力ブロック高さpredH、マトリクスベースのイントラ予測サンプルpredMip[x][y](x=0. .predW-1,y=0..predH-1)、変換ブロック幅nTbW、変換ブロック高さnTbH、アップサンプリング境界幅upBdryW、アップサンプリング境界高さupsBdryH、上側アップサンプリング境界サンプルupsBdryT及び左側アップサンプリング境界サンプルupsBdryLを入力として呼び出され、出力は予測サンプルアレイpredSamplesである。
-そうでなければ、predSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)=predMip[x][y]に設定される。
【0300】
10. 予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のようにクリッピングされる。
predSamples[x][y]=Clip1(predSamples[x][y]) (8-71)
【0301】
【表18】
表8-8:MipSizeId及びmodeIdに応じた重みシフトsWの仕様
【0302】
8.4.5.2.4 MIP予測アップサンプリングプロセス
このプロセスへの入力は、
-入力ブロック幅を指定する変数predWと、
-入力ブロックの高さを指定する変数predHと、
-マトリクスベースの予測サンプルpredMip[x][y](x=0..predW-1,y=0..predH-1)と、
-変換ブロック幅を指定する変数nTbWと、
-変換ブロック高さを指定する変数nTbHと、
-アップサンプリング境界幅を指定する変数upsBdryWと、
-アップサンプリング境界高さを指定する変数upsBdryHと、
-上側アップサンプリング境界サンプルupsBdryT[x](x=0..upsBdryW-1)と、
-左側アップサンプリング境界サンプルupsBdryL[x](x=0..upsBdryH-1)と、
である。
このプロセスの出力は予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)である。
【0303】
スパース予測サンプルpredSamples[m][n]は、predMip[x][y](x=0..predW-1,y=0..predH-1)から以下のように導出される。
upHor=nTbW/predW (8-78)
upVer=nTbH/predH (8-79)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predMip[x][y] (8-80)
上側境界サンプルupsBdryT[x](x=0..upsBdryW-1)はpredSamples[m][-1]に以下のように割り当てられる。
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-81)
左側境界サンプupsBdryL[y](y=0..upsBdryH-1)はpredSamples[-1][n]に以下のように割り当てられる。
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-82)
予測サンプルpredSamples[x][y](x=0..nTbW-1,y=0..nTbH-1)は以下のように導出される。
nTbHがnTbWより大きい場合、次の順番のステップが適用される。
【0304】
1. upHorが1より大きい場合、全てのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=1..predH)は、dX=1..upHor-1で以下のように適用される。
sum=(upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] (8-83)
predSamples[xHor+dX」[yHor]=(sum+upHor/2-(sum<0?1:
0)/upHor (8-84)
2. 全てのスパース位置(xVer,yVer)=(m,n*upVer-1)(m=0..nTbW-1,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で以下のように適用される。
sum=(upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] (8-85)
predSamples[xVer][yVer+dY]=(sum+upVer/2-(sum<0?1:0))/upVer (8-86)
そうでない場合は、以下の順番の手ステップが適用される。
【0305】
1. upVerが1より大きい場合、全てのスパース位置(xVer,yVer)=(m*upHor-1,n*upVer-1)(m=0..predW-1,n=0..predH-1)のための垂直アップサンプリングがdY=1..upVer-1で以下のように適用される。
【0306】
sum=(upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] (8-87)
predSamples[xVer][yVer+dY]=(sum+upVer/2-(sum<0?1:0))/upVer (8-88)
2. 全てのスパース位置(xHor,yHor)=(m*upHor-1,n)(m=0..predW-1,n=0..nTbH-1)のための水平アップサンプリングがdY=1..upHor-1で以下のように適用される。
【0307】
sum=(upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] (8-89)
predSamples[xHor+dX][yHor]=(sum+upHor/2-(sum<0?1:0))/uPHor (8-90)
【0308】
5.8 MPMコーディングのためのJVET-N1001-v7に基づく例示の作業原案
8.4.2 MIPモードの導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のルーマコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
である。
【0309】
このプロセスでは、マトリクスベースのイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。IntraPredModeY[xCb][yCb]は以下の順番のステップにより導出される。
【0310】
5. 隣接位置(xNbA,yNbA)及び(xNbB,yNbB)は(xCb-1,yCb)及び(xCb,yCb-1)にそれぞれ等しく設定される。
【0311】
6. A又はBで置き換えられるXの場合、変数candMIPModeXは以下のように導出される。
-6.4.X項[Ed.(BB):隣接ブロック可用性確認プロセスtbd]に規定のブロックのための可用性導出プロセスは、(xCb,yCb)と等しく設定された位置(xCurr,yCur)及び(xNbX,yNbX)と等しく設定された隣接位置(xNbY,yNbY)を入力として呼び出され、出力はavailableXに割り当てられる。
-MIPモード候補candMIPModeXは以下のように導出される。
-以下の条件のうちの1つ以上が真の場合、candMIPModeX=-1に設定される。
-変数availableX=FALSEの場合。
-CuPredMode[xNbX][yNbX]はMODE_INTRAと等しくなく、ciip_flag[xNbX][yNbX]は1と等しくないの場合。
-pcm_flag[xNbX][yNbX]=1の場合。
-X=Bで、yCb-1は((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい場合。
-そうでなければ、以下が適用される。
-intra_MIP_flag[xNbX][yNbX]=1の場合、以下が適用される。
-MIPSizeId[xCb][yCb]=MipSizeId[xNbX][yNbX]の場合、candMipModeX=IntraPredModeY[xNbX][yNbX]に設定される。
-そうでなければ、candMipModeX=-1に設定される。
-そうでなければ、candMipModeXは、表8-4に規定のIntraPredModeY[xNbX][yNbX]及びMipSizeId[xCb][yCb]を用いて導出される。
【0312】
7. candMipModeList[x](x=0..2)は、表8-2に規定のmipMpmCand[sizeId]を用いて以下のように導出される。
【0313】
-candMipModeA及びcandMipModeBの双方が=-1の場合、以下が適用される。
candMipModeList[0]=mipMpmCand[sizeId][0] (8-10)
candMipModeList[1]=mipMpmCand[sizeId][1] (8-11)
candMipModeList[2]=mipMpmCand[sizeId][2] (8-12)
【0314】
-そうでなければ、以下が適用される。
-candMipModeA=candMipModeBの場合又はcandMipModeA又はcandMipModeBのいずれかが=-1の場合、以下が適用される。
candMipModeList[0]=(candMipModeA!=-1)?candMipModeA:candMipModeB (8-13)
-candMipModeList[0]=mipMpmCand[sizeId][0]の場合、以下が適用される。
candMipModeList[1]=mipMpmCand[sizeId][1] (8-14)
candMipModeList[2]=mipMpmCand[sizeId][2] (8-15)
-そうでなければ、以下が適用される。
candMipModeList[1]=mipMpmCand[sizeId][0] (8-16)
candMipModeList[2]=(candMipModeList[0]!=mipMpmCand[sizeId][1])?
mipMpmCand[sizeId][1]:mipMpmCand[sizeId][2] (8-17)
-そうでなければ、以下が適用される。
candMipModeList[0]=candMipModeA (8-18)
candMipModeList[1]=candMipModeB (8-19)
-candMipModeA及びcandMipModeBの両方がMipMpmCand[sizeId][0]と等しくない場合、以下が適用される。
candMipModeList[2]=mipMpmCand[sizeId][0] (8-20)
-そうでなければ、以下が適用される。
-candMipModeA及びcandMipModeBの両方がmipMpmCand[sizeId][1]と等しくない場合、以下が適用される。
candMipModeList[2]=mipMpmCand[sizeId][1] (8-21)
-そうでなければ、以下が適用される。
candMipModeList[2]=mipMpmCand[sizeId][2] (8-22)
【0315】
8. IntraPredModeY[xCb][yCb]は以下の手順を適用することにより導出される。
-intra_mip_mpm_flag[xCb][yCb]=1の場合IntraPredModeY[xCb][yCb]=candMipModeList[intra_mip_mpm_idx[xCb][yCb]]に設定される。
-そうでなければ、IntraPredModeY[xCb][yCb]は以下の順番のステップを適用することにより導出される。
3. candMipModeList[i]がcandMIPModeList[j]よりもi=0..1及び各i,j=(i+1)..2について大きい場合、両方の値は以下のように交換される。
(candMipModeList[i],candMipModeList[j])=Swap(candMipModeList[i],candMipModeList[j]) (8-23)
4. IntraPredModeY[xCb][yCb]は以下の順番のステップにより導出される。
i. IntraPredModeY[xCb][yCb]=intra_mip_mpm_remainder[xCb][yCb]に設定される。
ii. i=0~2の場合、IntraPredModeY[xCb][yCb]がcandMipModeList[i]以上の場合、IntraPredModeY[xCb][yCb]の値は1インクリメントされる。
変数IntraPredModeY[x][y](x=xCb..xCb+cbWidth-1及びy=yCb..yCb+cbHeight-1)はIntraPredModeY[xCb][yCb]と等しくなるように設定される。
【0316】
図27は、イントラ予測モード及びMIPモード間のマッピングの仕様のための更新されたテーブルを示す。
【0317】
【表19】
表8-2:MIP候補モードMipMpmCand[sizeId][x]の仕様
【0318】
i. ルーマイントラ予測モードのための導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のルミナンスコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
である。
【0319】
このプロセスでは、ルーマイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。表8-3は、イントラ予測モードIntraPredModeY[xCb][yCb]の値及び関連名称を規定する。
【0320】
【表20】
表8-3:イントラ予測モード及び関連名称の仕様
【0321】
IntraPredModeY[xCb][yCb]は以下のように導出される。
-BdpcmFlag[xCb][yCb]=1の場合又はintra_luma_not_planar_flag[xCb][yCb]=0の場合、IntraPredModeY[xCb][yCb]=INTRA_PLANARに設定される。
-そうでなけば(intra_luma_not_planar_flag[xCb][yCb]=1の場合)、以下の順番のステップが適用される。
9.隣接位置(xNbA,yNbA)及び(xNbB,yNbB)は、それぞれ(xCb-1,yCb+cbHeight-1)及び(xCb+cbWidth-1,yCb-1)に等しく設定される。
10. A又はBのいずれかで置き換えられるいるXの場合、変数candIntraPredModeXは以下のように導出される。
-6.4.X項[Ed.(BB):隣接ブロック可用性確認プロセスtbd]で規定されているブロックのための可用性導出プロセスが、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)と、(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)とを入力として呼び出され、出力がavailableXに割り当てられる。
-イントラ予測モード候補candIntraPredModeXは以下のように導出される。
-以下の条件のうちの1つ以上が真の場合、candIntraPredModeX=INTRA_PLANARに設定される。
-変数availableX=FALSEの場合。
-CuPredMode[xNbX][yNbX]がMODE_INTRAと等しくなく、ciip_flag[xNbX][yNbX]が1と等しくない場合。
-pcm_flag[xNbX][yNbX]=1の場合。
-X=Bであり、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい場合。
-intra_mip_flag[xCb][yCb]=1の場合。
-そうでなければ、candIntraPredModeXは以下のように導出される。
-intra_mip_flag[xCb][yCb]=1の場合、candIntraPredModeXは、表8-4に規定されているIntraPredModeY[xNbX][yNbX]及びMipSizeId[xCb][yCb]を用いて導出される。
そうでなければ、candIntraPredModeX=IntraPredModeY[xNbX][yNbX]に設定される。
11. candModeList[x](x=0..4)は以下のように導出される。
-candIntraPredModeB=candIntraPredModeAであり、candIntraPredModeAがINTRA_DCよりも大きい場合、candModeList[x](x=0..4)は以下のように導出される。
candModeList[0]=candIntraPredModeA (8-24)
candModeList[1]=2+((candIntraPredModeA+61)%64) (8-25)
candModeList[2]=2+((candIntraPredModeA-1)%64) (8-26)
candModeList[3]=INTRA_DC (8-27)
candModeList[4]=2+((candIntraPredModeA+60)%64) (8-28)
-そうでなければ、candIntraPredModeBがcandIntraPredModeAと等しくなく、candIntraPredModeA又はcandIntraPredModeBがINTRA_DCよりも大きい場合、以下が適用される。
-変数minAB及びmaxABは以下のように導出される。
minAB=Min(candIntraPredModeA,candIntraPredModeB) (8-29)
maxAB=Max(candIntraPredModeA,candIntraPredModeB) (8-30)
-candIntraPredModeA及びcandIntraPredModeBの両方がINTRA_DCよりも大きい場合、candModeList[x](x=0..4)は以下のように導出される。
candModeList[0]=candIntraPredModeA (8-31)
candModeList[1]=candIntraPredModeB (8-32)
candModeList[2]=INTRA_DC (8-33)
-maxAB-minABが2~62の範囲にある場合は、以下が適用される。
candModeList[3]=2+((maxAB+61)%64) (8-34)
candModeList[4]=2+((maxAB-1)%64) (8-35)
-そうでなければ、以下が適用される。
candModeList[3]=2+((maxAB+60)%64) (8-36)
candModeList[4]=2+((maxAB)%64) (8-37)
-そうでなければ(candIntraPredModeA又はcandIntraPredModeBがINTRA_DCより大きい場合)、candModeList[x](x=0..4)は以下のように導出される。
candModeList[0]=maxAB (8-38)
candModeList[1]=INTRA_DC (8-39)
candModeList[2]=2+((maxAB+61)%64) (8-40)
candModeList[3]=2+((maxAB-1)%64) (8-41)
candModeList[4]=2+((maxAB+60)%64) (8-42)
-そうでなければ、以下が適用される。
candModeList[0]=INTRA_DC (8-43)
candModeList[1]=INTRA_ANGULAR50 (8-44)
candModeList[1]=INTRA_ANGULAR18 (8-45)
candModeList[1]=INTRA_ANGULAR46 (8-46)
candModeList[1]=INTRA_ANGULAR54 (8-47)
12. IntraPredModeY[xCb][yCb]は以下の手順を適用することにより導出される。
-intra_luma_mpm_flag[xCb][yCb]=1の場合、IntraPredModeY[xCb][yCb]=candModeList[intra_luma_mpm_idx[xCb][yCb]]に設定される。
-そうでなければ、IntraPredModeY[xCb][yCb]は以下の順番のステップを適用することにより導出される。
5. candModeList[i]がcandModeList[j]よりもi=0..3及び各i,j=(i+1)..4について大きい場合、両方の値は以下のように交換される。
(candModeList[i],candModeList[j])=Swap(candModeList[i],candModeList[j]) (8-48)
6.IntraPredModeY[xCb][yCb]は以下の順番のステップにより導出される。
i. IntraPredModeY[xCb][yCb]=intra_luma_mpm_remainder[xCb][yCb]に設定される。
ii. IntraPredModeY[xCb][yCb]の値は1インクリメントされる。
iii. i=0~4で、IntraPredModeY[xCb][yCb]がcandModeList[i]以上の場合、IntraPredModeY[xCb][yCb]の値は1インクリメントされる。
【0322】
変数IntraPredModeY[x][y](x=xCb..xCb+cbWidth-1及びy=yCb..yCb+cbHeight-1)=IntraPredModeY[xCb][yCb]に設定される。
【0323】
図28は、MIPモード及びイントラ予測モード間のマッピングの仕様のための更新されたテーブルを示す。
【0324】
8.4.4 クロマイントラ予測モードのための導出プロセス
このプロセスへの入力は、
-現在のピクチャの左上のルーマサンプルに対する現在のクロマコーディングブロックの左上のサンプルを指定するルーマ位置(xCb,yCb)と、
-ルーマサンプル内の現在のコーディングブロックの幅を指定する変数cbWidthと、
-ルーマサンプル内の現在のコーディングブロックの高さを指定する変数cbHeightと、
である。
【0325】
このプロセスでは、クロマイントラ予測モードIntraPredModeC[xCb][yCb]が導出される。対応するルーマイントラ予測モードlumaIntraPredModeは以下のように導出される。
【0326】
-intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] =1の場合、lumaIntraPredModeは、表8-4に規定されているIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]及びsizeIdを用いて導出されたINTRA_PLANARと等しく設定され、candIntraPredModeXの値がlumaIntraPredModeに割り当てられる
【0327】
-そうでなければ、lumaIntraPredMode=IntraPredModeY[xCb+cbWidth/2」「yCb+cbHeight/2]に設定される。
【0328】
クロマイントラ予測モードIntraPredModeC[xCb][yCb]は、表8-5及び表8-6で規定されたintra_chroma_pred_mode[xCb][yCb]及びlumaIntraPredModeを用いて導出される。
【0329】
5.9 二重ツリークロマの場合にlfnst_idxをシグナリングする実施形態
以下の修正はJVET_P2001_v9に基づく。修正は太字のイタリック体を用いた強調表示テキストにより示される。
【0330】
7.3.9.5 コーディングユニットシンタックス
【0331】
【表21】
【0332】
7.4.10.5 コーディングユニットの意味論
...
【0333】
1と等しいintra_mip_flag[x0][y0]は、ルーマサンプルのためのイントラ予測タイプがマトリクスベースのイントラ予測であることを指定する。0と等しいintra_mip_flag[x0][y0]は、ルーマサンプルのためのイントラ予測タイプがマトリクスベースのイントラ予測でないことを指定する。
【0334】
intra_mip_flag[x0][y0]がSINGLE_TREE又はDUAL_TREE_LUMAケースに存在しない場合、それは0に等しいと推定される。
【0335】
上述の例は、ビデオエンコーダ及び/又はデコーダで実施され得る以下で説明する方法、例えば、方法1100、1200、1300、1400、2300及び/又は2400の文脈に組み込まれ得る。
【0336】
図11は、ビデオ処理のための例示の方法のフローチャートを示す。この方法1100は、ステップ1110で、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することを含む。
【0337】
方法1100は、ステップ1120で、前記判定することに基づいて、ALWIPモードのための最確モード(MPM)リストの少なくとも一部を、非ALWIPイントラモードのためのMPMリストの少なくとも一部に基づいて構築することを含む。
【0338】
方法1100は、ステップ1130で、ALWIPモードのためのMPMリストに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うことを含む。
【0339】
一部の実施形態では、ALWIPモードのMPMリストのサイズは、非ALWIPイントラモードのためのMPMリストのサイズと同一である。例では、ALWIPモードのMPMリストのサイズは6である。
【0340】
一部の実施形態では、方法1100は、ALWIPモードのためのMPMリストにデフォルトモードを挿入するステップをさらに含む。一例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部の前に挿入される。別の例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部の後に挿入される。さらに別の例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部と交互的に挿入される。
【0341】
一部の実施形態では、ALWIPモードのためのMPMリスト及び非ALWIPイントラモードのためのMPMリストの構築は1つ以上の隣接ブロックに基づく。
【0342】
一部の実施形態では、ALWIPモードのためのMPMリスト及び非ALWIPイントラモードのためのMPMリストの構築は、現在のビデオブロックの高さ又は幅に基づく。
【0343】
一部の実施形態では、ALWIPモードのためのMPMリストの構築は第1のパラメータセットに基づき、第1のパラメータセットは、非ALWIPイントラモードのためのMPMリストの構築に用いられる第2のパラメータセットとは異なる。
【0344】
一部の実施形態では、方法1100は、現在のビデオブロックの隣接ブロックがALWIPモードでコード化されていると判定し、非ALWIPイントラモードのためのMPMリストを構築する際に、隣接ブロックは利用不可であると指定するステップをさらに含む。
【0345】
一部の実施形態では、方法1100は、現在のビデオブロックの隣接ブロックが非ALWIPイントラモードでコード化されていると判定し、ALWIPモードのためのMPMリストを構築する際に、隣接ブロックは利用不可であると指定するステップをさらに含む。
【0346】
一部の実施形態では、非ALWIPイントラモードは、通常イントラモード、複数参照ライン(MRL)イントラ予測モード又はイントラサブパーティション(ISP)ツールに基づく。
【0347】
図12は、ビデオ処理のための例示の方法のフローチャートを示す。方法1200は、ステップ1210で、現在のビデオブロックのルーマコンポーネントはアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することを含む。
【0348】
方法1200は、ステップ1220で、前記判定することに基づいて、クロマイントラモードを推測することを含む。
【0349】
方法1200は、ステップ1230で、クロマイントラモードに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うことを含む。
【0350】
一部の実施形態では、ルーマコンポーネントは、クロマコンポーネントの所定のクロマサンプルをカバーする。1つの例では、所定のクロマサンプルはクロマコンポーネントの左上のサンプル又は中央のサンプルである。
【0351】
一部の実施形態では、推測されたクロマイントラモードはDMモードである。
【0352】
一部の実施形態では、推測されたクロマイントラモードはALWIPモードである。
【0353】
一部の実施形態では、ALWIPモードは、現在のビデオブロックの1つ以上のクロマコンポーネントに適用される。
【0354】
一部の実施形態では、ALWIPモードの異なるマトリクス又はバイアスベクトルが、現在のビデオブロックの異なるカラーコンポーネントに適用される。1つの例では、異なるマトリクス又はバイアスベクトルは、Cb及びCrコンポーネントのために共同で定義される。別の例では、Cb及びCrコンポーネントは連結されている。さらに別の例では、Cb及びCrコンポーネントはインターリーブされている。
【0355】
図13は、ビデオ処理のための例示の方法のフローチャートを示す。方法1300は、ステップ1310で、現在のビデオブロックがアフィン線形重み付けイントラ予測モード(ALWIP)を用いてコード化されていると判定することを含む。
【0356】
方法1300は、ステップ1320で、前記判定することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うことを含む。
【0357】
一部の実施形態では、前記判定することは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイルヘッダ、コーディングツリーユニット(CTU)行又はCTU領域におけるシグナリングに基づく。
【0358】
一部の実施形態では、前記判定することは、現在のビデオブロックの高さ(H)又は幅(W)に基づく。1つの例では、W>T1又はH>T2である。別の例では、W≧T1又はH≧T2である。さらに別の例では、W<T1又はH<T2である。さらに別の例では、W≦T1又はH≦T2である。さらに別の例では、T1=32及びT2=32である。
【0359】
一部の実施形態では、前記判定することは、現在のビデオブロックの高さ(H)又は幅(W)に基づく。1つの例では、W+H≦Tである。別の例では、W+H≧Tである。さらに別の例では、W×H≦Tである。さらに別の例では、W×H≧Tである。さらに別の例ではT=256である。
【0360】
図14は、ビデオ処理のための例示の方法のフローチャートを示す。この方法1400は、ステップ1410で、現在のビデオブロックが、アフィン線形重み付けイントラ予測(ALWIP)モードとは異なるコーディングモードを用いてコード化されていると判定することを含む。
【0361】
方法1400は、ステップ1420で、前記判定することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うことを含む。
【0362】
一部の実施形態では、コーディングモードは、イントラ及びインター予測モードの組み合わせ(CIIP)であり、方法1400は、ALWIPモードと通常のイントラ予測モードとの間での選択を行うステップをさらに含む。1つの例では、選択を行うことは、現在のビデオブロックのビットストリーム表現における明示的なシグナリングに基づく。別の例では、選択を行うことは、所定のルールに基づく。さらに別の例では、所定のルールは、現在のビデオブロックがCIIPモードを用いてコード化されている場合に、常にALWIPモードを選択する。さらに別の例では、所定のルールは、現在のビデオブロックがCIIPモードを用いてコード化されている場合、常に通常のイントラ予測モードを選択する。
【0363】
一部の実施形態では、コーディングモードは、クロスコンポーネント線形モデル(CCLM)予測モードである。1つの例では、ALWIPモードのためのダウンサンプリング手順は、CCLM予測モードのためのダウンサンプリング手順に基づく。別の例では、ALWIPモードのためのダウンサンプリング手順は第1のパラメータセットに基づき、CCLM予測モードのためのダウンサンプリング手順は、第1のパラメータセットとは異なる第2のパラメータセットに基づく。さらに別の例では、ALWIPモード又はCCLM予測モードのためのダウンサンプリング手順は、ダウンサンプリング位置の選択、ダウンサンプリングフィルタの選択、丸め込み動作又はクリッピング動作のうちの少なくとも1つを含む。
【0364】
一部の実施形態では、方法1400は、縮小二次変換(RST)、二次変換、回転変換又は非分離二次変換(NSST)のうちの1つ以上を適用するステップをさらに含む。
【0365】
一部の実施形態では、方法1400は、ブロックベースの差動パルスコード化変調(DPCM)又は残差DPCMを適用するステップをさらに含む。
【0366】
一部の実施形態では、ビデオ処理方法は、現在のビデオブロックのためのルールに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間にアフィン線形重み付けイントラ予測(ALWIP)モードの使用を示すフラグのコンテキストを判定することと、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、予測することに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を行うことを含む。ルールは、アプリオリ技術を用いて暗黙的に規定され得るか又はコード化ビットストリームでシグナリングされ得る。この方法の他の例及び態様は、セクション4の37号及び38号にさらに記載されている。
【0367】
一部の実施形態では、ビデオ処理のための方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスにおいて、現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うことを含み、少なくとも2つのフィルタリングステージのうちの第1のフィルタリングステージにおけるサンプルの第1の精度は、少なくとも2つのフィルタリングステージの第2のフィルタリングステージにおけるサンプルの第2の精度とは異なる。
【0368】
1つの例では、現在のビデオブロックのサンプルは、予測サンプル、アップサンプリングプロセスの前の中間サンプル又はアップサンプリングプロセスの後の中間サンプルである。別の例では、サンプルは、第1のフィルタリングステージで水平方向に第1の寸法でアップサンプリングされ、サンプルは、第2のフィルタリングステージで垂直方向に第2の寸法でアップサンプリングされる。さらに別の例では、サンプルは、第1のフィルタリングステージで垂直方向に第1の寸法でアップサンプリングされ、サンプルは、第2のフィルタリングステージで水平方向に第2の寸法でアップサンプリングされる。
【0369】
1つの例では、第1のフィルタリングステージの出力は、処理された出力を生成するために右シフトされているか又は除算され、処理された出力は、第2のフィルタリングステージへの入力である。別の例では、第1のフィルタリングステージの出力は、処理された出力を生成するために左シフト又は乗算され、処理された出力は、第2のフィルタリングステージへの入力である。本方法の他の例及び態様は、セクション4の40号にさらに記載されている。
【0370】
セクション4の41号~43号にさらに記載されているように、ビデオ処理方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスで現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うことを含み、アップサンプリングプロセスは、垂直及び水平両方のアップサンプリングが行われる場合に、一定の順序で行われる。セクション4の41号~43号にさらに記載されているように、別の方法は、現在のビデオブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを用いてコード化されていると判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換の間に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを行うことを含み、前記変換は、アップサンプリングプロセスの前に転置動作を行うことを含む。
【0371】
上記の方法のさらなる特徴は、セクション4の41号~43号に記載されている。
【0372】
一部の実施形態では、ビデオ処理の方法は、ビデオの現在のビデオブロックとビデオのビットストリーム表現との間の変換のために、変換における二次変換の使用のシグナリングが、現在のビデオブロックが条件を満たすことに起因して、輝度マトリクスベースのイントラ予測(MIP)ツールのシグナリングから切り離されていると判定することと、該判定することに基づいて変換を行うこととを含む。追加の例お飛び特徴は、前セクションの49号に記載されている。
【0373】
一部の実施形態では、ビデオ処理方法は、ビデオの現在のビデオブロックに関連するコーディング条件に基づいて、二次変換に関連するサイド情報がビデオのビットストリーム表現に含まれるかどうか判定することと、該判定することに基づいて、現在のビデオブロックとビットストリーム表現との間の変換を行うこととを含む。追加の特徴及び例は、前のセクションの50号及び51号に記載されている。
【0374】
6 開示の技術の例示の実施
図15は、ビデオ処理装置1500のブロック図である。装置1500は、本明細書で説明する方法のうちの1つ以上を実施するために用いられ得る。装置1500は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等で具体化され得る。装置1500は、1つ以上のプロセッサ1502、1つ以上のメモリ1504及びビデオ処理ハードウェア1506を含み得る。プロセッサ1502は、本明細書で説明する1つ以上の方法(限定されないが、方法1100、1200、1300及び1400、2300及び/又は2400を含む)を実施するように構成され得る。メモリ(複数のメモリ)1504は、本明細書で説明する方法及び技術を実施するために用いられるデータ及びコードを記憶するために用いられ得る。ビデオ処理ハードウェア1506は、ハードウェア回路で、本明細書で説明するいくつかの技術を実施するために用いられ得る。
【0375】
一部の実施形態では、ビデオコーディング方法は、図15に関して説明したハードウェアプラットフォーム上で実施される装置を用いて実施され得る。
【0376】
開示の技術の一部の実施形態は、ビデオ処理ツール又はモードを有効にする決定又は判断を行うことを含む。1つの例では、ビデオ処理ツール又はモードが有効である場合、エンコーダは、ビデオのブロックの処理においてツール又はモードを使用又は実施するが、ツール又はモードの使用に基づいて結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、決定又は判断に基づいて有効になっている場合、ビデオ処理ツール又はモードを用いる。別の例では、ビデオ処理ツール又はモードが有効である場合、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づいて修正されているとの知識により、ビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定又は判断に基づいて有効にされたビデオ処理ツール又はモードを用いて行われる。
【0377】
開示の技術の一部の実施形態は、ビデオ処理ツール又はモードを無効にする決定又は判断を行うことを含む。1つの例では、ビデオ処理ツール又はモードが無効にされている場合、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際にツール又はモードを用いない。別の例では、ビデオ処理ツール又はモードが無効にされている場合、デコーダは、決定又は判断に基づいて無効にされたビデオ処理ツール又はモードを用いてビットストリームが修正されていないとの知識によりビットストリームを処理する。
【0378】
図21は、本開示の技術を利用し得る例示のビデオコーディングシステム100を示すブロック図である。図21に示すように、ビデオコーディングシステム100は、ソース装置110及び宛先装置120を含み得る。ソース装置110はエンコードされたビデオデータを生成し、ビデオエンコーディング装置と呼ばれ得る。宛先装置120は、ソース装置110によって生成されたエンコードされたビデオデータをデコードし、ビデオデコーディング装置と呼ばれ得る。ソース装置110は、ビデオソース112、ビデオエンコーダ114及び入出力(I/O)インターフェイス116を含み得る。
【0379】
ビデオソース112は、ビデオキャプチャ装置等のソース、ビデオコンテンツプロバイダからビデオデータを受信するためのインターフェイス及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム又はそのようなソースの組み合わせを含み得る。ビデオデータは1つ以上のピクチャを含み得る。ビデオエンコーダ114は、ビットストリームを生成するためにビデオソース112からのビデオデータをエンコードする。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化されたピクチャ及び関連するデータを含み得る。コード化されたピクチャはピクチャのコード化された表現である。関連するデータは、シーケンスパラメータセット、ピクチャパラメータセット及び他のシンタックス構造を含み得る。I/Oインターフェイス116は、変調器/復調器(モデム)及び/又は送信器を含み得る。エンコードされたビデオデータは、ネットワーク130aを介してI/Oインターフェイス116を介して宛先装置120に直接送信され得る。エンコードされたビデオデータは、宛先装置120によるアクセスのために記憶媒体/サーバ130bにも記憶され得る。
【0380】
宛先装置120は、I/Oインターフェイス126、ビデオデコーダ124及びディスプレイ装置122を含み得る。
【0381】
I/Oインターフェイス126は受信器及び/又はモデムを含み得る。I/Oインターフェイス126は、ソース装置110又は記憶媒体/サーバ130bからエンコードされたビデオデータを取得し得る。ビデオデコーダ124は、エンコードされたビデオデータをデコードし得る。ディスプレイ装置122は、デコードされたビデオデータをユーザに表示し得る。ディスプレイ装置122は宛先装置120と一体化され得るか又は外部ディスプレイ装置とやりとりするように構成された宛先装置120の外部にあってもよい。
【0382】
ビデオエンコーダ114及びビデオデコーダ124は、高効率ビデオコーディング(HEVC)規格、汎用ビデオコーディング(VVC)規格及びその他の現在の及び/又は更なる規格等のビデオ圧縮規格に従って動作し得る。
【0383】
図22は、図21に示すシステム100内のビデオエンコーダ114であり得るビデオエンコーダ200の一例を示すブロック図である。
【0384】
ビデオエンコーダ200は、本開示の技術のいずれか又は全てを行うように構成され得る。図22の例では、ビデオエンコーダ200は複数の機能コンポーネントを含む。本開示で説明する技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。一部の例では、プロセッサは、本開示で説明する技術のいずれか又は全てを行うように構成され得る。
【0385】
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピーエンコーディングユニット214とを含み得る。
【0386】
他の例では、ビデオエンコーダ200はより多くの、より少ない又は異なる機能コンポーネントを含み得る。1つの例では、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含み得る。IBCユニットは、少なくとも1つの参照ピクチャが現在のビデオブロックが位置するピクチャであるIBCモードで予測を行い得る。
【0387】
さらに、動き推定ユニット204及び動き補償ユニット205等の一部のコンポーネントは高度に統合されてもよいが、説明のために図22の例では別々に表されている。
【0388】
分割ユニット201は、ピクチャを1つ以上のビデオブロックに分割し得る。ビデオエンコーダ200及びビデオデコーダ300は様々なビデオブロックサイズをサポートし得る。
【0389】
モード選択ユニット203は、例えばエラー結果に基づいて、コーディングモード(イントラ又はインター)のうちの1つを選択し、結果として得られたイントラ又はインターコード化ブロックを、残差ブロックデータを生成するために残差生成ユニット207に、参照ピクチャとして用いるためにエンコードされたブロックを再構成するために再構成ユニット212に提供する。一部の例では、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づく、イントラ及びインター予測(CIIP)モードの組み合わせを選択し得る。モード選択ユニット203は、インター予測の場合に、ブロックための動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)も選択し得る。
【0390】
現在のビデオブロックにインター予測を行うために、動き推定ユニット204は、バッファ213から1つ以上の参照フレームを現在のビデオブロックと比較することによって、現在のビデオブロックのための動き情報を生成し得る。動き補償ユニット205は、現在のビデオブロックに関連するピクチャ以外にバッファ213からのピクチャの動き情報及びデコードされたサンプルに基づいて、現在のビデオブロックのための予測ビデオブロックを特定し得る。
【0391】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在のビデオブロックがIスライスにあるか、Pスライスにあるか又はBスライスにあるかによって、現在のビデオブロックに対して異なる動作を行い得る。
【0392】
一部の例では、動き推定ユニット204は、現在のビデオブロックに対して単一方向予測を行ってもよく、動き推定ユニット204は、現在のビデオブロック用の参照ビデオブロックのためにリスト0又はリスト1の参照ピクチャを検索し得る。次に、動き推定ユニット204は、参照ビデオブロックと、現在のビデオブロックと参照ビデオブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0又はリスト1内の参照ピクチャを示す参照インデックスを生成し得る。動き推定ユニット204は、現在のビデオブロックの動き情報として、参照インデックス、予測方向インジケータ及び動きベクトルを出力し得る。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成し得る。
【0393】
他の例では、動き推定ユニット204は、現在のビデオブロックについて双方向予測を行ってもよく、動き推定ユニット204は、現在のビデオブロック用の参照ビデオブロックについてリスト0内の参照ピクチャを検索し、現在のビデオブロック用の別の参照ビデオブロックについてもリスト1内の参照ピクチャを検索し得る。次に、動き推定ユニット204は、参照ビデオブロックと、参照ビデオブロックと現在のビデオブロックとの間の空間的変位を示す動きベクトルとを含むリスト0及びリスト1における参照ピクチャを示す参照インデックスを生成し得る。動き推定ユニット204は、現在のビデオブロックの参照インデックス及び動きベクトルを現在のビデオブロックの動き情報として出力し得る。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のビデオブロックの予測ビデオブロックを生成し得る。
【0394】
一部の例では、動き推定ユニット204は、デコーダのデコーディング処理のために完全な動き情報のセットを出力し得る。
【0395】
一部の例では、動き推定ユニット204は、現在のビデオのための完全な動き情報のセットを出力しなくてもよい。むしろ、動き推定ユニット204は、他のビデオブロックの動き情報を参照して現在のビデオブロックの動き情報を信号化することができる。例えば、動き推定ユニット204は、現在のビデオブロックの動き情報が隣接するビデオブロックの動き情報と十分に類似していると判断し得る。
【0396】
1つの例では、動き推定ユニット204は、現在のビデオブロックに関連するシンタックス構造において、現在のビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオデコーダ300に示す値を示し得る。
【0397】
別の例では、動き推定ユニット204は、現在のビデオブロックに関連するシンタックス構造において、別のビデオブロック及び動きベクトル差(MVD)を識別し得る。動きベクトル差は、現在のビデオブロックの動きベクトルと、示されたビデオブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、示されたビデオブロックの動きベクトルと動きベクトル差とを用いて、現在のビデオブロックの動きベクトルを特定し得る。
【0398】
上述のように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングし得る。ビデオエンコーダ200によって実施され得る予測シグナリング技術の2つの例は、高度動きベクトル予測(AMVP)及びマージモードシグナリングを含む。
【0399】
イントラ予測ユニット206は、現在のビデオブロックに対してイントラ予測を行い得る。イントラ予測ユニット206が現在のビデオブロックに対してイントラ予測を行う場合、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックのデコードされたサンプルに基づいて、現在のビデオブロックのための予測データを生成し得る。現在のビデオブロックのための予測データは、予測されたビデオブロック及び様々なシンタックス要素を含み得る。
【0400】
残差生成ユニット207は、現在のビデオブロックから現在のビデオブロックの予測されたビデオブロックを差し引くことにより(例えば、マイナス記号によって示される)、現在のビデオブロックのための残差データを生成し得る。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプル成分に対応する残差ビデオブロックを含み得る。
【0401】
他の例では、例えばスキップモードでは、現在のビデオブロックのための残差データが存在しないことがあり、残差生成ユニット207は減算動作を行わなくてもよい。
【0402】
変換処理ユニット208は、現在のビデオブロックに関連する残差ビデオブロックに対して1つ以上の変換を適用することにより、現在のビデオブロックのための1つ以上の変換係数ビデオブロックを生成し得る。
【0403】
変換処理ユニット208が現在のビデオブロックに関連する変換係数ビデオブロックを生成した後で、量子化ユニット209は、現在のビデオブロックに関連する1つ以上の量子化パラメータ(QP)値に基づいて、現在のビデオブロックに関連する変換係数ビデオブロックを量子化し得る。
【0404】
逆量子化ユニット210及び逆変換ユニット211は、変換係数ビデオブロックから残差ビデオブロックを再構成するために、変換係数ビデオブロックにそれぞれ逆量子化及び逆変換を適用し得る。再構成ユニット212は、予測ユニット202によって生成された1つ以上の予測されたビデオブロックからの対応するサンプルに、再構成された残差ビデオブロックを追加して、現在のブロックに関連する再構成されたビデオブロックをバッファ213に格納するために生成し得る。
【0405】
再構成ユニット212がビデオブロックを再構成した後、ビデオブロックにおけるビデオブロッキングアーチファクトを低減するためにループフィルタ動作が行われ得る。
【0406】
エントロピーエンコーディングユニット214は、ビデオエンコーダ200の他の機能コンポーネントからデータを受信し得る。エントロピーエンコーディングユニット214がデータを受信すると、エントロピーエンコーディングユニット214は、1つ以上のエントロピーエンコーディング動作を行って、エントロピーエンコードデータを生成し、エントロピーエンコードデータを含むビットストリームを出力し得る。
【0407】
図19は、図21に示すシステム100におけるビデオデコーダ114であり得るビデオデコーダ300の一例を示すブロック図である。
【0408】
ビデオデコーダ300は、本開示の技術のいずれか又は全てを行うように構成され得る。図19の例では、ビデオデコーダ300は、複数の機能コンポーネントを含む。本開示で説明する技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。一部の例では、プロセッサは、本開示で説明する技術のいずれか又は全てを行うように構成され得る。
【0409】
図19の例では、ビデオデコーダ300は、エントロピーデコーディングユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305及び再構成ユニット306及びバッファ307を含む。ビデオデコーダ300は、一部の例では、ビデオエンコーダ200(図22)に関して説明したエンコーディングパスと概ね逆のデコーディングパスを行い得る。
【0410】
エントロピーデコーディングユニット301は、エンコードされたビットストリームを読み出し得る。エンコードされたビットストリームはエントロピーコード化ビデオデータ(例えば、ビデオデータのエンコードされたブロック)を含み得る。エントロピーデコーディングユニット301はエントロピーコード化ビデオデータをデコードし、エントロピーデコードビデオデータから、動き補償ユニット302は動きベクトル、動きベクトル精度、参照ピクチャリストインデックス及び他の動き情報を含む動き情報を特定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することにより、そのような情報を特定し得る。
【0411】
動き補償ユニット302は動き補償ブロックを生成し、場合によっては補間フィルタに基づいて補間を行い得る。サブピクセル精度で用いられるべき補間フィルタのための識別子は、シンタックス要素に含まれ得る。
【0412】
動き補償ユニット302は、ビデオブロックのコード化の間にビデオエンコーダ20によって用いられる補間フィルタを用いて、参照ブロックのサブ整数ピクセルのための補間値を計算し得る。動き補償ユニット302は、受信されたシンタックス情報に従ってビデオエンコーダ200によって用いられる補間フィルタを決定し、予測ブロックを生成するために補間フィルタを用い得る。
【0413】
動き補償ユニット302は、エンコードされたビデオシーケンスのフレーム及び/又はスライスをエンコードするために用いられるブロックのサイズ、エンコードされたビデオシーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのようにエンコードされるかを示すモード、各インターエンコードされたブロックのための1つ以上の参照フレーム(及び参照フレームリスト)及びエンコードされたビデオシーケンスを復号するための他の情報を決定するために、シンタックス情報の一部を用いり得る。
【0414】
イントラ予測ユニット303は、例えば、ビットストリームで受信されたイントラ予測モードを用いて、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット303は、ビットストリーム内で提供され、エントロピー復号化ユニット301によって復号化される量子化ビデオブロック係数を逆量子化、すなわち脱量子化する。逆変換ユニット303は逆変換を適用する。
【0415】
再構成ユニット306は、残差ブロックを動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックと合算して、復号化ブロックを形成し得る。所望により、ブロック性アーチファクトを除去するために、復号化ブロックをフィルタリングするためデブロックフィルタも適用され得る。次いで、復号化ビデオブロックはバッファ307に格納され、バッファ307は、後続の動き補償のための参照ブロックを提供し、ディスプレイ装置で提示するためにデコードされたビデオも生成する。
【0416】
図20は、本明細書に開示の様々な技術が実施され得る例示のビデオ処理システム2000を示すブロック図である。様々な実施は、システム2000のコンポーネントの一部又は全てを含み得る。システム2000は、ビデオコンテンツを受信するための入力2002を含み得る。ビデオコンテンツは生の状態又は非圧縮形式で、例えば8又は10ビットの多成分画素値で受信され得るか又は圧縮又はコード化形式で受信され得る。入力2002は、ネットワークインターフェイス、周辺バスインターフェイス又は記憶インターフェイスを表し得る。ネットワークインターフェイスの例としては、イーサネット、受動光ネットワーク(PON)等の有線インターフェイス等及びWi-Fi又はセルラーインターフェイス等の無線インターフェイスが挙げられる。
【0417】
システム2000は、本明細書で説明する様々なコーディング又はエンコーディング方法を実施し得るコーディングコンポーネント2414を含み得る。コーディングコンポーネント2414は、入力2002からコード化コンポーネント2004の出力へのビデオの平均ビットレートを低減して、ビデオのコード化表現を生成し得る。したがって、コーディング技術は、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれることがある。コーディングコンポーネント2414の出力は格納され得るか又はコンポーネント2006によって表されるように、通信接続を介して送信され得る。入力2002で受信されたビデオの記憶又は通信されたビットストリーム(又はコード化)表現は、ディスプレイインターフェイス2010に送られる表示可能なビデオ又は画素値を生成するためにコンポーネント2418によって用いられ得る。ビットストリーム表現からユーザが視聴可能なビデオを生成するプロセスは、ビデオ解凍と時々呼ばれる。さらに、特定のビデオ処理動作は、「コーディング」動作又はツールと呼ばれるが、コーディングツール又は動作はエンコーダで用いられ、コーディングの結果を反転する対応するデコーディングツール又は動作はデコーダで行われることになるのが理解されよう。
【0418】
周辺バスインターフェイス又はディスプレイインターフェイスの例としては、ユニバーサルシリアルバス(USB)又は高精細度マルチメディアインターフェイス(HDMI(登録商標))又はディスプレイポート等が挙げられる。記憶インターフェイスの例としては、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス等が挙げられる。本明細書で説明する技術は、携帯電話、ラップトップ、スマートフォン又はデジタルデータ処理及び/又はビデオ表示を行うことが可能な他の装置といった様々な電子装置で具現化され得る。
【0419】
一部の実施形態では、ビデオの前にコード化されたサンプルに対して境界ダウンサンプリング動作(又は平均化動作)を行い、その後にマトリクスベクトル乗算動作を行い、選択的に(又は任意で)アップサンプリング動作(又は線形補完操作)を行うことにより、現在のビデオブロックの予測ブロックを計算するためにALWIPモード又はMIPモードが用いられる。一部の実施形態では、ビデオの前にコード化されたサンプルに対して境界ダウンサンプリング動作(又は平均化動作)を行い、その後にマトリクスベクトル乗算動作を行うことにより、現在のビデオブロックの予測ブロックを計算するためにALWIPモード又はMIPモードが用いられる。一部の実施形態では、ALWIPモード又はMIPモードは、マトリクスベクトル乗算動作を行った後に、アップサンプリング動作(又は線形補間動作)を行うこともできる。
【0420】
図23は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法2300の例示のフローチャートを示す。動作2302は、複数のビデオブロックを含むビデオの現在のビデオブロックと、ビデオのビットストリーム表現との間での変換のために、ルールに基づいて、マトリクスベースのイントラ予測(MIP)ツールのための最確モードリストを生成することを含み、該MIPツールは、該変換の間に、ビデオの先にコード化されたサンプルに対して、境界ダウンサンプリング動作を、その後にマトリクスベクトル乗算動作と、その後に選択的にアップサンプリング動作を行うことにより、現在のビデオブロックの予測ブロックを特定することを含み、前記ルールは、MIPモードの数と、複数のビデオブロックの寸法との間のマッピングを規定する。動作2304は、前記生成することに基づいて前記変換を行うことを含む。
【0421】
方法2300の一部の実施形態では、ルールは、MIPモードの数が異なる寸法のブロックに対して同じであることを規定する。方法2300の一部の実施形態では、MIPモードの数は11と等しい。方法2300の一部の実施形態では、ルールは、現在のビデオブロックの寸法の識別子がゼロと等しいことに応答して、MPMリストが{10、5、1}を含むことを規定する。方法2300の一部の実施形態では、ルールは、現在のビデオブロックの寸法の識別子が1と等しいことに応答して、MPMリストが{9、7、1}を含むことを規定する。方法2300の一部の実施形態では、ルールは、現在のビデオブロックの寸法の識別子が2と等しいことに応答して、MPMリストが{6、1、8}を含むことを規定する。方法2300の一部の実施形態では、ルールは、現在のビデオブロックのMPMリストは隣接するビデオブロックの別のMPMリストと同じであることを規定する。
【0422】
図24は、開示の技術に係る、マトリクスベースのイントラ予測のためのさらに別の例示の方法2400の例示のフローチャートを示す。動作2402は、ビデオのクロマビデオブロックと、該ビデオのビットストリーム表現との間の変換を、ルールに基づいてクロマビデオブロックに適用される二次変換ツールのサイド情報を用いて行うことを含み、二次変換ツールは、ルールに基づいて適用された場合、エンコーディングの間に、量子化の前にクロマビデオブロックの残差に適用される前方一次変換の出力に対して前方二次変換を適用すること又は復号の間に、逆方向一次変換を適用する前に、クロマビデオブロックの脱量子化の出力に逆方向二次変換を適用するステップを含み、ビットストリーム表現においてコード化されるサイド情報の方法は、対応するルーマビデオブロックのコーディングモードに依存しない。
【0423】
方法2400の一部の実施形態では、コーディングモードは、対応するルーマビデオブロックの予測ブロックが、ビデオの前にコード化されたサンプルに対して境界ダウンサンプリング動作を行い、その後にマトリクスベクトル乗算動作を行い、その後に選択的にアップサンプリング動作を行うことによって決定されるマトリクスベースのイントラ予測(MIP)モードを含む。方法2400の一部の実施形態では、二次変換ツールは、低周波分離不可能変換(LFNST)ツールを含む。方法2400の一部の実施形態では、ルールは、二次変換ツールがクロマビデオブロックに適用されるかどうかは、対応するルーマビデオブロックのコーディングモードに依存しないことを規定する。方法2400の一部の実施形態では、ルールは、対応するルーマビデオブロックがコーディングモードでコード化されている場合、二次変換ツールがクロマビデオブロックに適用されることを規定する。方法2400の一部の実施形態では、クロマビデオブロックは、二重ツリー構造又はローカル二重ツリー構造内にある。
【0424】
方法2400の一部の実施形態では、ルールは、クロマビデオブロックが二重ツリー構造内にある場合、LFNSTツールがクロマビデオブロックに適用されるかどうかは、対応するルーマビデオブロックがマトリクスベースのイントラ予測(MIP)コーディングモードでコード化されるかどうかに依存しないことを規定する。方法2400の一部の実施形態では、ルールは、LFNSTツールがクロマビデオブロックに適用されるかどうかは、クロマビデオブロックの寸法がM×N以上であるかどうかに依存しないことを規定し、M及びNは整数である。方法2400の一部の実施形態では、M=16及びN=16である。方法2400の一部の実施形態では、クロマビデオブロックは二重ツリー構造内にあり、ルールは、LFNSTツールがクロマビデオブロックに適用されるかどうかは、クロマビデオブロックがコーディングモードでコード化されるかどうかに依存しないことを規定する。方法2400の一部の実施形態では、コーディングモードはクロマビデオブロックに対して無効にされている。
【0425】
方法2400の一部の実施形態では、クロマビデオブロックは二重ツリー構造内にあり、ビットストリーム表現におけるLFNSTツールのインデックスのシグナリングは、対応するルーマビデオブロックがコーディングモードでコード化されるかどうかを示すシンタックス要素のシグナリングに依存しない。方法2400の一部の実施形態では、対応するルーマビデオブロックは単一ツリー構造又は二重ツリー構造内にあり、ルールは、LFNSTツールがクロマビデオブロックに適用されるかどうかは、対応するルーマビデオブロックがコーディングモードでコード化されているかどうかに依存することを規定する。方法2400の一部の実施形態では、ビットストリーム表現におけるLFNSTツールのインデックスのシグナリングは、コーディングモードでコード化されている対応するルーマビデオブロックの寸法に依存する。
【0426】
方法2400の一部の実施形態では、クロマビデオブロックが二重ツリー構造内になく、対応するルーマビデオブロックがコーディングモードでコード化され、対応するルーマビデオブロックの最小幅又は最小高さが16ピクセル以上であることに対応して、LFNSTツールのインデックスがビットストリーム表現においてシグナリングされる。方法2400の一部の実施形態では、ビットストリーム表現がサイド情報を含むかどうかは、クロマビデオブロックに関連するツリータイプに基づく。方法2400の一部の実施形態では、ビットストリーム表現がサイド情報を含むかどうかは、クロマビデオブロックが二重ツリー構造内にあることに基づく。方法2400の一部の実施形態では、二重ツリー構造はローカル二重ツリー構造を含む。方法2400の一部の実施形態では、二重ツリー構造はローカル二重ツリー構造を除外する。
【0427】
方法2400のいくつかの実施形態では、条件Aが真であるとは、コーディングモードが対応するルーマビデオブロックに適用されず、LFNSTツールによって考慮されるクロマビデオブロックの幅及び高さは整数N以上であることと定義され、条件Bが真であるとは、現在のビデオブロックがクロマビデオブロックであり、クロマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、LFNSTツールをクロマビデオブロックに適用するかどうかを決定するために条件Aを用いるかどうかは、条件Bに依存する。方法2400のいくつかの実施形態では、条件Bが真である場合、条件Aは、LFNSTツールがクロマビデオブロックに適用されるかどうかを判断するために使用されない。方法2400のいくつかの実施形態では、条件Bが真でない場合、LFNSTツールは、条件Aが真でないことに応答して、クロマビデオブロックに適用されない。方法2400のいくつかの実施形態において、真である条件Aは、対応するルーマビデオブロックに適用されないコード化モード、およびLFNSTツールによって考慮されるクロマビデオブロックの幅および高さが整数N以上であると定義され、真である条件Bは、クロマビデオブロックであり、二重ツリー構造またはローカル二重ツリー構造内にあるクロマビデオブロックとして定義され、条件Aは、ビットストリーム表現においてLFNSTツールに関する情報の全てまたは一部が信号化されるかどうかを判断するために使用されるかどうかは、条件Bに依存する。方法2400の一部の実施形態では、条件Bが真の場合、LFNSTツールをクロマビデオブロックに適用するかどうかを決定するために条件Aが用いられない。方法2400の一部の実施形態では、条件Bが真でない場合、LFNSTツールは、条件Aが真でないことに対応してクロマビデオブロックに適用されない。方法2400の実施形態では、条件Aが真であるとは、コーディングモードが対応するルーマビデオブロックに適用されず、LFNSTツールによって考慮されるクロマビデオブロックの幅及び高さが整数N以上であることと定義され、条件Bが真であるとは、現在のビデオブロックがクロマビデオブロックであり、クロマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部をシグナリングするかどうかを決定するために条件Aが用いられるかどうかは条件Bに依存する。
【0428】
方法2400の一部の実施形態では、条件Bが真の場合、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部をシグナリングするかどうかを決定するために条件Aが用いられない。方法2400の一部の実施形態では、条件Bが真でない場合、条件Aが真でないことに対応して、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部はシグナリングされない。方法2400の一部の実施形態では、条件Aが真であるとは、コーディングモードが対応するルーマビデオブロックに適用されず、LFNSTツールによって考慮されるクロマビデオブロックの幅及び高さが整数N以上であることと定義され、条件Bが真であるとは、現在のビデオブロックがクロマビデオブロックであり、クロマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、条件Cが真であるとは、現在のビデオブロックがルーマビデオブロックであり、該ルーマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、LFNSTツールがクロマビデオブロックに適用されるかどうかを決定するために条件Aが用いられるかどうかは条件Cに依存する。
【0429】
方法2400の一部の実施形態では、条件Cが真でない場合、LFNSTツールがクロマビデオブロックに適用されるかどうかを判断するために条件Aは用いられない。方法2400の一部の実施形態では、条件Bが真でない場合、LFNSTツールは、条件Aが真でないことに対応してクロマビデオブロックに適用されない。方法2400の一部の実施形態では、条件Aが真であるとは、コーディングモードが対応するルーマビデオブロックに適用されず、LFNSTツールによって考慮されるクロマビデオブロックの幅及び高さが整数N以上であることと定義され、条件Bが真であるとは、現在のビデオブロックがクロマビデオブロックであり、クロマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、条件Cが真であるとは、現在のビデオブロックがルーマビデオブロックであり、該ルーマビデオブロックが二重ツリー構造又はローカル二重ツリー構造内にあることと定義され、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部をシグナリングするかどうかを決定するために条件Aが用いられるかどうかは条件Cに依存する。
【0430】
方法2400の一部の実施形態では、条件Cが真でない場合、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部をシグナリングするかどうかを決定するために条件Aが用いられない。方法2400の一部の実施形態では、条件Bが真でない場合、条件Aが真でないことに対応して、ビットストリーム表現においてLFNSTツールに関する情報の全て又は一部はシグナリングされない。方法2400の一部の実施形態では、条件Aが真であるとは、コーディングモードが対応するルーマビデオブロックに適用されず、LFNSTツールによって考慮されるクロマビデオブロックの幅及び高さが整数N以上であることと定義され、単一ツリー構造の場合、条件Aは、LFNSTツールが対応するルーマビデオブロックに適用されるかどうかを決定するためのみに用いられる。
【0431】
方法2400の一部の実施形態では、条件Aが真でないことに対応して、LFNSTツールは対応するルーマビデオブロックに適用されず、LFNSTツールはクロマビデオブロックに適用され、LFNSTツールはクロマビデオブロックに適用可能である。方法2400の一部の実施形態では、LFNSTツールに関する情報の全て又は一部の情報は、LFNSTツールがクロマビデオブロックに適用されるかどうか及び/又はどのように適用されるかを制御するために、ビットストリーム表現においてシグナリングされる。方法2400の一部の実施形態では、二次変換ツールのサイド情報のエンコーディング又はデコーディングは、カラーコンポーネントに基づいて分類される。方法2400の一部の実施形態では、個々の前記サイド情報は各カラーコンポーネントについてエンコード又はデコードされる。方法2400の一部の実施形態では、カラーコンポーネントは、ルーマコンポーネント、青色差クロマコンポーネント及び赤色差クロマコンポーネントを含む。方法2400の一部の実施形態では、1つのカラーコンポーネントのための個々の前記サイド情報は別のカラーコンポーネントのものとは異なる。
【0432】
方法2400の一部の実施形態では、青色差クロマコンポーネント及び赤色差クロマコンポーネントは、コーディングモードの同じ別のサイド情報を共有する。方法2400の一部の実施形態では、サイド情報の第1の個別サイド情報はルーマコンポーネントのためにエンコード又はデコードされ、サイド情報の第2の個別サイド情報は、複数のクロマコンポーネントのためにエンコード又はデコードされている。方法2400の一部の実施形態では、ルーマコンポーネントのためのサイド情報の第1の個別サイド情報は、複数のクロマコンポーネントのためのサイド情報の第2の個別サイド情報とは異なる。方法2400の一部の実施形態では、変換を行うことは、カラーコンポーネントに基づいて分類されるコーディングモードの別のサイド情報のエンコーディング又はデコーディングをさらに含む。方法2400の一部の実施形態では、別のサイド情報の個別サイド情報は、各カラーコンポーネントについてエンコード又はデコードされている。方法2400の一部の実施形態では、カラーコンポーネントはルーマコンポーネント、青色差クロマコンポーネント及び赤色差クロマコンポーネントを含む。方法2400の一部の実施形態では、1つのカラーコンポーネントのための個々の別のサイド情報は、別のカラーコンポーネントのためのものとは異なる。方法2400の一部の実施形態では、青色差クロマコンポーネント及び赤色差クロマコンポーネントが、コーディングモードのための同じ別のサイド情報を共有する。
【0433】
方法2400の一部の実施形態では、別のサイド情報の第1の個別サイド情報はルーマコンポーネントのためにエンコード又はデコードされ、別のサイド情報の第2の個別サイド情報は複数のクロマコンポーネントのためにエンコード又はデコードされている。方法2400の一部の実施形態では、ルーマコンポーネントのためのサイド情報の第1の個別サイド情報は、複数のクロマコンポーネントのサイド情報の第2の個別サイド情報とは異なる。方法2300及び/又は2400の一部の実施形態では、変換は、クロマビデオブロック又は現在のビデオブロックを生成するためにビットストリーム表現をデコーディングすることを含む。方法2300及び/又は2400の一部の実施形態では、変換は、ビットストリーム表現を生成するためにビデオをエンコーディングすることを含む。
【0434】
以上から、本開示の技術の特定の実施形態は説明を目的として本明細書に記載されているが、開示の技術の範囲から逸脱することなく、様々な修正を行うことができることが理解されるであろう。したがって、本開示の技術は、添付の特許請求の範囲を除いて、限定されない。
【0435】
本明細書で説明した主題及び機能動作の実施は、本明細書で開示の構造及びそれらの構造的同等物又はそれらのうちの1つ以上の組み合わせを含む、様々なシステム、デジタル電子回路又はコンピュータソフトウェア、ファームウェア又はハードウェアで実施することができる。本明細書で説明した主題の実施は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又はデータ処理装置の動作を制御するために、有形及び非一時的なコンピュータ読み取り可能媒体上にエンコードされているコンピュータプログラム命令の1つ以上のモジュールとして実施可能である。コンピュータ読み取り可能媒体は、機械により読み出し可能な記憶デバイス、機械により読み出し可能な記憶担体、メモリデバイス、機械により読み出し可能な伝搬信号をもたらす組成物又はそれらの1つ以上の組み合わせであることができる。「データ処理ユニット」又は「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む、データを処理する全ての装置、デバイス及び機械を包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0436】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン若しくは他のユニットとして、を含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、問題となっているプログラムに専用の単一のファイルで又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで、実行されるようデプロイ可能である。
【0437】
本明細書で記載されているプロセス及び論理フローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及び論理フローはまた、専用のロジック回路、例えば、FPGA(Field Programmable Gate Array)又はASIC(Application-Specific Integrated Circuit)によっても実行可能であり、装置は、そのようなものとしても実施可能である。
【0438】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受け取ることになる。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスと、である。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ読み取り可能媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM及びフラッシュメモリデバイスを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0439】
本明細書は、図面と共に例示のみとしてみなされることを意図しており、例示とは一例を意味する。本明細書で用いられているように、「又は」の使用は、別段明記されていない限り、「及び/又は」を含むことを意図する。
【0440】
本明細書は、多数の詳細を含むが、それらは、あらゆる発明の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈で本明細書に記載されている特定の特徴は、単一の実施形態と組み合わせても実施可能である。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々に又は何らかの適切なサブコンビネーションでも実施可能である。さらに、特徴は、特定の組み合わせで動作するものとして上述され、そのようなものとして最初に請求されることさえあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてもよい。
【0441】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が、示されているその特定の順序で、又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。さらに、本明細書に記載されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0442】
ほんのわずかの実施及び例が説明されており、他の実施、強化及び変形は、本明細書で記載及び例示されているものに基づいて行われ得る。
図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
図26
図27
図28
【外国語明細書】