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

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

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

特開2024-97853アップサンプリングを使用した行列ベースのイントラ予測
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024097853
(43)【公開日】2024-07-19
(54)【発明の名称】アップサンプリングを使用した行列ベースのイントラ予測
(51)【国際特許分類】
   H04N 19/593 20140101AFI20240711BHJP
   H04N 19/59 20140101ALI20240711BHJP
   H04N 19/70 20140101ALI20240711BHJP
【FI】
H04N19/593
H04N19/59
H04N19/70
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024074587
(22)【出願日】2024-05-02
(62)【分割の表示】P 2021568702の分割
【原出願日】2020-05-21
(31)【優先権主張番号】PCT/CN2019/087987
(32)【優先日】2019-05-22
(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)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、行列ベクトル乗算動作から取得されたサンプルに対して、垂直方向と水平方向の両方向において固定順序でアップサンプリング動作が実行される。
【選択図】図21
【特許請求の範囲】
【請求項1】
ビデオ処理の方法であって、
ビデオのビデオブロックと前記ビデオのビットストリームとの間の変換のために、第1のイントラモードが前記ビデオの前記ビデオブロックに適用されることを判定することであって、前記第1のイントラモードは、前記ビデオブロックに対する予測サンプルを生成するために、行列ベクトル乗算動作と、それに続くアップサンプリング動作とを含む、判定することと、
前記予測サンプルに基づいて、前記変換を実行することと、を含み、
前記アップサンプリング動作は、水平アップサンプリング動作と、垂直アップサンプリング動作とを含み、前記水平アップサンプリング動作および前記垂直アップサンプリング動作は、固定順序で実行され,
前記水平アップサンプリング動作は、前記垂直アップサンプリング動作の前に実行される、方法。
【請求項2】
前記ビデオブロックの幅は、前記ビデオブロックの高さより大きい、請求項1に記載の方法。
【請求項3】
前記予測サンプルは、前記水平アップサンプリング動作において、((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor]+offsetHor)/upHorに従って判定され、
upHorは、前記ビデオブロックの幅と前記ビデオブロックの前記幅および高さに基づいた予め定義された値の関数であり、
offsetHorは、整数であり、
1≦dX≦upHor-1であり、
xHorは、upHorに基づいた位置であり、yHorは、upVerに基づいた位置であり、
upVerは、前記ビデオブロックの前記高さと前記ビデオブロックの前記幅および前記高さに基づいた前記予め定義された値の関数である、請求項1に記載の方法。
【請求項4】
前記予測サンプルは、前記垂直アップサンプリング動作において、((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer]+offsetVer)/upVerに従って判定され、
upVerは、前記ビデオブロックの高さと前記ビデオブロックの幅および前記高さに基づいた予め定義された値の関数であり、
offsetVerは、整数であり、
1≦dY≦upVer-1である、請求項1に記載の方法。
【請求項5】
前記行列ベクトル乗算動作に続いて、前記アップサンプリング動作の前に転置動作が実行される、請求項1に記載の方法。
【請求項6】
前記転置動作は、第1の値の幅と第2の値の高さを有するサンプルブロックを前記第2の値の前記幅と前記第1の値の前記高さを有する前記サンプルブロックに変換し、
前記サンプルブロックは、前記行列ベクトル乗算動作を実行することによって取得される、請求項5に記載の方法。
【請求項7】
前記転置動作を適用するかどうかを示す第1の構文要素が前記ビットストリームに含まれる、請求項5に記載の方法。
【請求項8】
前記行列ベクトル乗算動作の入力サンプルは、前記ビデオブロックの幅および高さに基づいて前記ビデオブロックの境界基準サンプルに対してダウンサンプリング動作を実行することによって取得される、請求項1に記載の方法。
【請求項9】
前記第1のイントラモードを適用するかどうかを示す第2の構文要素が前記ビットストリームに含まれる、請求項1に記載の方法。
【請求項10】
前記変換は、前記ビデオブロックを前記ビットストリームに符号化することを含む、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記変換は、前記ビットストリームから前記ビデオブロックを復号することを含む、請求項1~9のいずれか一項に記載の方法。
【請求項12】
ビデオデータを処理するための装置であって、プロセッサと、命令を有する非一時的なメモリとを含み、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
ビデオのビデオブロックと前記ビデオのビットストリームとの間の変換のために、第1のイントラモードが前記ビデオの前記ビデオブロックに適用されることを判定することであって、前記第1のイントラモードは、前記ビデオブロックに対する予測サンプルを生成するために、行列ベクトル乗算動作と、それに続くアップサンプリング動作とを含む、判定することと、
前記予測サンプルに基づいて、前記変換を実行することと、を行わせ、
前記アップサンプリング動作は、水平アップサンプリング動作と、垂直アップサンプリング動作とを含み、前記水平アップサンプリング動作および前記垂直アップサンプリング動作は、固定順序で実行され、
前記水平アップサンプリング動作は、前記垂直アップサンプリング動作の前に実行される、装置。
【請求項13】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、プロセッサに、
ビデオのビデオブロックと前記ビデオのビットストリームとの間の変換のために、第1のイントラモードが前記ビデオの前記ビデオブロックに適用されることを判定することであって、前記第1のイントラモードは、前記ビデオブロックに対する予測サンプルを生成するために、行列ベクトル乗算動作と、それに続くアップサンプリング動作とを含む、判定することと、
前記予測サンプルに基づいて、前記変換を実行することと、を行わせ、
前記アップサンプリング動作は、水平アップサンプリング動作と、垂直アップサンプリング動作とを含み、前記水平アップサンプリング動作および前記垂直アップサンプリング動作は、固定順序で実行され、
前記水平アップサンプリング動作は、前記垂直アップサンプリング動作の前に実行される、非一時的なコンピュータ可読記憶媒体。
【請求項14】
ビデオのビットストリームを記憶するための方法であって、
第1のイントラモードが前記ビデオのビデオブロックに適用されることを判定することであって、前記第1のイントラモードは、前記ビデオブロックに対する予測サンプルを生成するために、行列ベクトル乗算動作と、それに続くアップサンプリング動作とを含む、判定することと、
前記判定に基づいて、前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、
前記アップサンプリング動作は、水平アップサンプリング動作と、垂直アップサンプリング動作とを含み、前記水平アップサンプリング動作および前記垂直アップサンプリング動作は、固定順序で実行され、
前記水平アップサンプリング動作は、前記垂直アップサンプリング動作の前に実行される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2019年5月22日に出願された国際特許出願第PCT/CN2019/087987号の優先権および利益を適時に主張する2020年5月21日に出願された国際特許出願第PCT/CN2020/091542号の国内段階である日本特許出願第2021-568702号の分割出願である。前述の出願の開示全体は、この出願の開示の一部として参照により組み込まれる。
【0002】
本特許文書は、ビデオコーディング技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオを受信および表示することが可能な接続ユーザデバイスの数が増加するにつれて、デジタルビデオの利用に対する帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオコーディングに関係するデバイス、システムおよび方法、具体的には、ビデオコーディングのための行列ベースのイントラ予測方法を記載する。記載された方法は、既存のビデオコーディング標準(例えば、HEVC(High Efficiency Video Coding))および将来のビデオコーディング標準(例えば、VVC(Versatile Video Coding))またはコーデックの両方に適用され得る。
【0005】
第1の例示的なビデオ処理のための方法は、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、行列ベクトル乗算動作から取得されたサンプルに対して、垂直方向と水平方向の両方向において固定順序でアップサンプリング動作が実行される。
【0006】
第2の例示的なビデオ処理のための方法であって、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、変換は、アップサンプリング動作の前に転置動作を実行することを含み、転置動作は、境界ダウンサンプリング動作および行列ベクトル乗算動作を実行することによって取得される予測ブロックの第1のサンプルセットを転置し、転置動作は、予測ブロックの寸法に従って実行される。
【0007】
第3の例示的なビデオ処理のための方法であって、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、アップサンプリング動作は、規則に従って双線形フィルタ以外の補間フィルタを選択および使用することによって実行される。
【0008】
別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用してコーディングされることを判定することと、その判定に基づいて、非ALWIPイントラモードのための最確モード(MPM,most probable mode)リストの少なくとも一部分に基づいて、ALWIPモードのためのMPMリストの少なくとも一部分を構成することと、ALWIPモードのためのMPMリストに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0009】
別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックの輝度コンポーネントが、アフィン線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)を使用してコーディングされることを判定することと、その判定に基づいて、色差イントラモードを推論することと、色差イントラモードに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0010】
さらに別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用してコーディングされることを判定することと、その判定に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0011】
さらに別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードとは異なるコーディングモードを使用してコーディングされることを判定することと、その判定に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0012】
さらに別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックに対して、アフィン線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用して第1の予測を生成することと、第1の予測に基づいて、位置依存イントラ予測組み合わせ(PDPC,position dependent intra prediction combination)を使用して第2の予測を生成することと、第2の予測に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0013】
さらに別の代表的な態様では、開示された技術は、ビデオ処理のための方法を提供するために使用され得る。この例示的な方法は、現在のビデオブロックが線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用してコーディングされることを判定することであって、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、その予測に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0014】
さらに別の代表的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックの規則に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードの使用を示すフラグのコンテキストを判定することと、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、その予測に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。
【0015】
さらに別の代表的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックが線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて、現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することであって、少なくとも2つのフィルタリングステージの第1のフィルタリングステージにおけるサンプルの第1の精度は、少なくとも2つのフィルタリングステージの第2のフィルタリングステージにおけるサンプルの第2の精度とは異なる。
【0016】
さらに別の態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックが線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)を使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することであって、アップサンプリングプロセスは、垂直および水平の両方のアップサンプリングが実行される場合に対して固定順に実行される。
【0017】
さらに別の態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックが、線形加重イントラ予測(ALWIP,affine linear weighted intra prediction)モードを使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することとであって、この変換は、アップサンプリングプロセスの前に転置動作を実行することを含む、ことと、を含む。
【0018】
さらに別の代表的な態様では、上述の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ可読プログラム媒体に記憶される。
【0019】
さらに別の代表的な態様では、上述の方法を実行するように構成または動作可能なデバイスが開示される。デバイスは、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0020】
さらに別の代表的な態様では、ビデオ復号器装置は、本明細書に記載される方法を実装してもよい。
【0021】
開示された技術の上記の態様および特徴は、図面、明細書および特許請求の範囲により詳細に記載されている。
【図面の簡単な説明】
【0022】
図1】33のイントラ予測方向の一例を示す。
図2】67のイントラ予測モードの一例を示す。
図3】線形モデルの重みの導出のために使用されるサンプルの位置の一例を示す。
図4】予測ブロックに隣接する4つの基準ラインの例を示す。
図5A】ブロックサイズに依存したサブパーティションの例を示す。
図5B】ブロックサイズに依存したサブパーティションの例を示す。
図6】4×4ブロックのALWIPの一例を示す。
図7】8×8ブロックのALWIPの一例を示す。
図8】8×4ブロックのALWIPの一例を示す。
図9】16×16ブロックのALWIPの一例を示す。
図10】MPMリスト構成において使用される隣接するブロックの一例を示す。
図11】開示された技術に従った、行列ベースのイントラ予測のための例示的な方法のフローチャートを示す。
図12】開示された技術に従った、行列ベースのイントラ予測のための別の例示的な方法のフローチャートを示す。
図13】開示された技術に従った、行列ベースのイントラ予測のためのさらに別の例示的な方法のフローチャートを示す。
図14】開示された技術に従った、行列ベースのイントラ予測のためのさらに別の例示的な方法のフローチャートを示す。
図15】本文書に記載されたビジュアルメディア復号またはビジュアルメディア符号化技術を実装するためのハードウェアプラットフォームの一例のブロック図である。
図16】隣接するブロックの一例を示す。
図17】本開示の技術を利用することができる例示的なビデオコーディングシステムを示すブロック図である。
図18】ビデオ符号化器の一例を示すブロック図である。
図19】ビデオ復号器の一例を示すブロック図である。
図20】本明細書に開示される様々な技術を実装することができる例示的なビデオ処理システムを示すブロック図である。
図21】開示された技術に従った、行列ベースのイントラ予測のための3つの例示的な方法のフローチャートを示す。
図22】開示された技術に従った、行列ベースのイントラ予測のための3つの例示的な方法のフローチャートを示す。
図23】開示された技術に従った、行列ベースのイントラ予測のための3つの例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【0023】
より高解像度のビデオに対する要求が高まっているため、ビデオコーディング方法および技術は、現代の技術では至るところに存在している。ビデオコーデックは、典型的には、デジタルビデオを圧縮または解凍する電子回路またはソフトウェアを含み、より高いコーディング効率を提供するために絶えず改善されている。ビデオコーデックは、圧縮されていないビデオを圧縮された形式に変換するか、又はその逆を行う。ビデオ品質、ビデオを表すために使用されるデータ量(ビットレートによって判定される)、符号化および復号アルゴリズムの複雑性、データ損失およびエラーに対する感度、編集の容易さ、ランダムアクセス、およびエンドツーエンド遅延(レイテンシ)の間には複雑な関係がある。圧縮フォーマットは、通常、標準的なビデオ圧縮仕様、例えば、HEVC(High Efficiency Video Coding)標準(H.265またはMPEG-H Part 2としても知られている)、完成されるVVC(Versatile Video Coding)標準、または他の現在および/または将来のビデオコーディング標準に準拠する。
【0024】
開示された技術の実施形態は、ランタイム性能を改善するために、既存のビデオコーディング標準(例えば、HEVC、H.265)および将来の標準に適用され得る。本文書では、明細書の可読性を改善するためにセクション見出しを使用しているが、説明または実施形態(および/または実装)をそれぞれのセクションのみに限定するものでは決してない。
【0025】
1 HEVCに対する簡単なレビュー
1.11.1 HEVC/H.265におけるイントラ予測
イントラ予測は、考慮された色チャネルで以前に再構成されたサンプルを使用して、与えられたTB(transform block)に対するサンプルを生成することを伴う。イントラ予測モードは輝度チャネルと色差チャネルに対して別々にシグナリングされ、色差チャネルイントラ予測モードは、「DM_CHROMA」モードを介して輝度チャネルイントラ予測モードに任意選択で依存する。イントラ予測モードはPB(prediction block)レベルでシグナリングされるが、CUの残りのクワッドツリー階層に従ってイントラ予測プロセスは、TBレベルで適用され、それにより1つのTBのコーディングがCU内の次のTBのコーディングに影響することを可能にし、したがって基準値として使用されるサンプルまでの距離を短縮する。
【0026】
HEVCは、DCモード、Planarモード、および33の指向性または「angular」イントラ予測モードの35のイントラ予測モードを含む。33のangularイントラ予測モードが図1に示されている。
【0027】
色差色チャネルに関連するPBに対しては、イントラ予測モードは、Planar、DC、水平、垂直、「DM_CHROMA」モード、または時には対角モード「34」のいずれかで指定される。
【0028】
色差フォーマット4:2:2および4:2:0に対して、色差PBは(それぞれ)2つまたは4つの輝度PBと重複してもよく、この場合、DM_CHROMAの輝度方向はこれらの輝度PBの左上から取られる。
【0029】
DM_CHROMAモードは、輝度色チャネルPBのイントラ予測モードが色差色チャネルPBに適用されることを示す。これは比較的一般的なので、intra_croma_pred_modeの最確モードコーディングスキームは、このモードが選択される方を支持してバイアスされる。
【0030】
2 VVCにおけるイントラ予測の例
2.12.1 67のイントラ予測モードを有するイントラモードコーディング
ナチュラルビデオで提示された任意のエッジ方向を捕捉するために、方向イントラモードの数は、HEVCで使用されるように33から65に拡張される。追加の方向モードは、図2において赤色の点線の矢印として示され、平面モードおよびDCモードは、同じままである。これらのより高密度の指向性イントラ予測モードは、すべてのブロックサイズおよび輝度と色差イントラ予測の両方に適用される。
【0031】
2.2 クロスコンポーネント線形モデル(CCLM,cross-component linear model)の例
いくつかの実施形態では、クロスコンポーネント冗長性を低減するために、CCLM(cross-component linear model)予測モード(LMとも称される)が、JEMにおいて使用され、これに対して、色差サンプルは、以下のような線形モデルを使用して同じCUの再構成された輝度サンプルに基づいて予測される。
【数1】
【0032】
ここで、pred(i,j)は、CU内の予測される色差サンプルを表し、rec′(i,j)は、同じCUのダウンサンプリングされた再構成された輝度サンプルを表す。線形モデルパラメータαおよびβは、2つのサンプルからの輝度値と色差値の関係から導出され、2つのサンプルは、最小サンプル値とダウンサンプリングされた隣接する輝度サンプルのセット内の最大サンプルを有する輝度サンプルと、対応する色差サンプルである。図3は、左及び上のサンプルの位置とCCLMモードに関与する現在のブロックのサンプルの例を示す。
【0033】
このパラメータ計算は、復号プロセスの一部として実行され、単に符号化器の探索動作として実行されるだけではない。その結果、αとβの値を復号器に搬送するための構文は使用されない。
【0034】
色差イントラモードコーディングの場合、色差イントラモードコーディングに合計8つのイントラモードが許容されている。これらのモードは、5つの従来のイントラモードと3つのクロスコンポーネント線形モデルモード(CCLM、LM_AおよびLM_L)を含む。色差モードコーディングは、対応する輝度ブロックのイントラ予測モードに直接依存する。Iスライスでは輝度コンポーネントと色差コンポーネントに対して別々のブロック分割構造が有効にされるため、1つの色差ブロックが複数の輝度ブロックに対応してもよい。従って、色差DMモードの場合、現在の色差ブロックの中心位置をカバーする対応する輝度ブロックのイントラ予測モードが直接継承される。
【0035】
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インデックスのみがシグナリングされる。
【0036】
2.4 イントラサブパーティション(ISP,Intra sub-partition)
イントラサブパーティション(ISP)ツールは、ブロックサイズに依存して、輝度イントラ予測されたブロックを垂直方向または水平方向に2つまたは4つのサブパーティションに分割する。例えば、ISPのための最小ブロックサイズは4x8(または8x4)である。ブロックサイズが4×8(または8×4)を超える場合、対応するブロックは4つのサブパーティションによって分割される。図5Aおよび図5Bは、2つの可能性の例を示す。すべてのサブパーティションは、少なくとも16のサンプルを有することの条件を満たす。
【0037】
各サブパーティションに対して、再構成されたサンプルは、予測信号に残差信号を加えることによって取得される。ここで、残差信号はエントロピー復号、逆量子化および逆変換などのプロセスによって生成される。従って、各サブパーティションの再構成されたサンプル値は、次のサブパーティションの予測を生成するために利用可能であり、各サブパーティションは繰り返し処理される。追加的に、最初に処理されるサブパーティションは、CUの左上のサンプルを含み、続いて下向き(水平分裂)または右向き(垂直分裂)に続くものである。その結果、サブパーティション予測信号を生成するために使用される基準サンプルは、ラインの左および上にのみ位置する。すべてのサブパーティションは同じイントラモードを共有する。
【0038】
2.5 アフィン線形加重イントラ予測(ALWIP,Affine linear weighted intra predictionまたは行列ベースのイントラ予測)
アフィン線形加重イントラ予測(ALWIP、行列ベースのイントラ予測(MIP,Matrix based intra prediction)としても知られる)は、JVET‐N0217で提案された。
【0039】
JVET-N0217では、2つのテストが行われる。テスト1では、ALWIPは8Kバイトのメモリ制限で、サンプル当たり最大4乗算で設計される。テスト2はテスト1と同様であるが、メモリ要件とモデルアーキテクチャの観点から設計をさらに単純化する。
○ すべてのブロック形状に対する行列とオフセットベクトルの単一セット
○ すべてのブロック形状に対するモード数を19に低減
○ メモリ要件を5760の10ビット値、すなわち7.20キロバイトに低減
○ 予測されたサンプルの線形補間が、最初のテストのように、反復補間を置き換えて、方向ごとに単一ステップで実施される。
【0040】
2.5.1 JVET-N0217のテスト1
幅Wと高さHの矩形ブロックのサンプルを予測するために、アフィン線形加重イントラ予測(ALWIP)は、ブロックの左にあるH個の再構成された隣接境界サンプルの1ラインと、ブロックの上にあるW個の再構成された隣接境界サンプルの1ラインを入力としてとる。再構成されたサンプルが利用できない場合は、通常のイントラ予測と同様に生成される。予測信号の生成は、以下の3つのステップに基づく。
【0041】
境界サンプルのうち、W=H=4の場合は4サンプル、それ以外の場合は8サンプルを平均して抽出した。
【0042】
平均化されたサンプルを入力として用いて、行列ベクトル乗算が実施され、続いてオフセットの加算が実施される。その結果、元のブロック中のサブサンプリングされたサンプルのセットに対する減少した予測信号が得られる。
【0043】
残りの位置での予測信号は、各方向の単一ステップ線形補間である線形補間によってサブサンプリングされたセットに対する予測信号から生成される。
【0044】
予測信号を生成するために必要な行列とオフセットベクトルは、行列の3つのセットS、S、Sから取られる。セットSは、18行列
【数2】
であって、各々が16行4列を有するものと、18オフセットベクトル
【数3】
であって、各々がサイズ16であるものと、からなる。そのセットの行列とオフセットベクトルが、サイズ4×4のブロックのために使用される。セットSは、10行列
【数4】
であって、各々が16行8列を有するものと、10オフセットベクトル
【数5】
であって、各々がサイズ16であるものと、からなる。
そのセットの行列とオフセットベクトルが、サイズ4×8、8×4および8×8のブロックのために使用される。最後に、セットSは、6行列
【数6】
であって、各々が64行8列を有するものと、6オフセットベクトル
【数7】
であって、サイズ64であるものと、からなる。そのセットの行列およびオフセットベクトル、またはこれらの行列およびオフセットベクトルの一部が、他のすべてのブロック形状のために使用される。
【0045】
行列ベクトル積の計算に必要な乗算の総数は常に4×W×H以下である。言い換えれば、ALWIPモードでは、サンプル当たり最大4回の乗算が必要である。
【0046】
2.5.2 境界の平均化
第1のステップでは、bdrytopとbdryleftの入力境界が、小さな境界
【数8】
および
【数9】
に低減される。ここで、
【数10】
および
【数11】
であって、両方とも4×4ブロックの場合は2サンプル、それ以外の場合は4サンプルからなる。
【0047】
4×4ブロックの場合、0≦i<2に対して、
【数12】
を定義し、
【数13】
を同様に定義する。
【0048】
そうでなければ、ブロック幅WがW=4・2として与えられる場合、0≦i<4に対して、
【数14】
を定義し、
【数15】
を同様に定義する。
【0049】
低減された2つの境界
【数16】
および
【数17】
は、形状4×4のブロックに対してはサイズ4、それ以外のすべての形状のブロックに対してはサイズ8の低減された境界ベクトルbdryredに連結される。
モードがALWIPモードを指す場合、この連結は以下のように定義される。
【数18】
【0050】
最後に、サブサンプリングされた予測信号の補間に対して、大きなブロックに対する平均化境界の第2のバージョンが必要である。
すなわち、min(W,H)>8でW≧Hである場合、W=8×2と書き、0≦i<8に対して、
【数19】
を定義する。
【0051】
min(W,H)>8かつH>Wであれば、以下のように定義する。
【数20】
を同様に定義する。
【0052】
2.5.3 行列ベクトル乗算による低減された予測信号の生成
低減された入力ベクトルbdryredの中から、低減された予測信号predredを生成する。後者の信号は、幅Wredおよび高さHredのダウンサンプリングされたブロックに対する信号である。ここで、WredとHredは、以下のように定義される。
【数21】
【0053】
低減された予測信号は行列ベクトル積を計算し、オフセットを加算することによって計算される。
【数22】
【0054】
ここで、Aは、Wred・Hred行を有し、W=H=4の場合は4列、それ以外の場合は8列を有する行列である。bは、サイズWred・Hredのベクトルである。
【0055】
行列Aおよびベクトルbは、セットS、S、Sのいずれかから以下のように取られる。以下のように、インデックスidx=idx(W,H)を定義する。
【数23】
【0056】
さらに、以下のように、mを以下のようにおく。
【数24】
【0057】
次に、idx≦1またはidx=2で、min(W,H)>4である場合、
【数25】
および
【数26】
をおく。idx=2かつmin(W,H)=4である場合は、Aは、
【数27】
のすべての行を除くことによって生じる行列とする。これは、W=4である場合は、ダウンサンプリングされたブロックの奇数のX座標に対応するか、またはH=4である場合は、ダウンサンプリングされたブロックの奇数のY座標に対応する。
【0058】
最後に、次の場合は、低減された予測シグナルがその転置によって置き換えられる。
○ W=H=4及びmode≧10
○ max(W,H)=8及びmode≧10
○ max(W,H)>8及びmode≧6
【0059】
W=H=4の場合は、この場合は、Aは4列16行であるため、predredの計算に必要な乗算数は4である。それ以外の場合は、Aは、8列とWred・Hred行を有し、これらの場合に直ちに8・Wred・Hred≦4・W・H乗算が必要であることを確認する。すなわち、これらの場合もまた、predredを計算するために、1サンプル当たり最大4乗算が必要である。
【0060】
2.5.4 ALWIPプロセス全体の説明
平均化、行列ベクトル乗算、および線形補間のプロセス全体が、図6~9に異なる形状に対して示されている。残りの形状は、示されたケースの1つと同様に扱われることに留意する。
【0061】
1. 4×4ブロックが与えられると、ALWIPは、境界の各軸に沿って2つの平均をとる。得られた4つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットSからとられる。オフセットを加算した後に、16の最終予測サンプルが得られる。線形補間は、予測信号を生成するためには必要ではない。したがって、サンプル当たり合計(4・16)/(4・4)=4乗算が実行される。
【0062】
2. 8×8ブロックが与えられると、ALWIPは、境界の各軸に沿って4つの平均をとる。得られた8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットSからとられる。これにより、予測ブロックの奇数位置に16サンプルが得られる。したがって、サンプル当たり合計(8・16)/(8・8)=2乗算が実行される。オフセットを加算した後、これらのサンプルは、低減された頂部境界を使用して垂直方向に補間される。次に、水平補間が、元の左の境界を使用して行われる。
【0063】
3. 8×4ブロックが与えられると、ALWIPは、境界の水平軸に沿って4つの平均をとり、左境界の4つの元の境界値をとる。得られた8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットSからとられる。これにより、予測ブロックの奇数水平位置および各垂直方向位置に16サンプルが得られる。したがって、サンプル当たり合計(8・16)/(8・4)=4乗算が実行される。オフセットを加算した後、これらのサンプルは、元の左境界を使用して補間される。
【0064】
4. 16×16ブロックが与えられると、ALWIPは、境界の各軸に沿って4つの平均をとる。得られた8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットSからとられる。これにより、予測ブロックの奇数位置に64サンプルが得られる。したがって、サンプル当たり合計(8・64)/(16・16)=2乗算が実行される。オフセットを加算した後、これらのサンプルは、上部境界の8つの平均を使用して垂直方向に補間される。次に、水平補間が、元の左の境界を使用して行われる。この場合、補間処理は、いかなる乗算も加算しない。したがって、全体として、ALWIP予測を計算するためには、サンプル当たり2つの乗算が必要である。
【0065】
より大きな形状の場合、手順は本質的に同じであり、サンプル当たりの乗算数が4未満であることをチェックすることは容易である。
【0066】
W>8のW×8ブロックの場合、サンプルが奇数の水平位置と各垂直位置で与えられるので、水平補間のみが必要である。
【0067】
最後に、W>8のW×4ブロックの場合、A_kbeは、ダウンサンプリングされたブロックの水平軸に沿った奇数のエントリに対応するすべての行を除外することによって生じる行列とする。従って、出力サイズは32であり、再度、水平補間のみが実行される。
【0068】
転置された場合はそれに応じて扱われる。
【0069】
2.5.5 単一ステップ線形補間
max(W,H)≧8のW×Hブロックの場合、予測信号は線形補間によってWred×Hredに対する低減された予測信号predredから生じる。ブロックの形状に依存して、垂直方向、水平方向、または両方向に線形補間を行う。線形補間を両方向に適用する場合、W<Hである場合、最初に水平方向に適用し、それ以外であれば最初に垂直方向に適用する。
【0070】
一般性を損なうことなく、max(W,H)≧8かつW≧HのW×Hブロックを考える。次に、一次元線形補間を以下のように実行する。一般性を損なうことなく、垂直方向の線形補間を記載すれば十分である。最初に、境界信号によって低減された予測信号を上部まで拡張する。垂直アップサンプリングファクタUver=H/Hredを定義し、
【数28】
を書き込む。次に、拡張された縮小された予測信号を
【数29】
によって定義する。
【0071】
次いで、この拡張された縮小された予測信号から、垂直線形補間予測信号を
【数30】
によって生成する。
【0072】
2.5.6 提案したイントラ予測モードのシグナリング
イントラモードにおける各CU(Coding Unit)に対して、ALWIPモードが対応するPU(Prediction Unit)に適用されるかどうかを示すフラグがビットストリームで送信される。後者のインデックスのシグナリングは、JVET-M0043と同様にMRLと調和する。ALWIPモードが適用される場合、ALWIPモードのインデックpredmodeは、3MPMを有するMPMリストを使用してシグナリングされる。
【0073】
ここで、MPMの導出は、以下のように、上および左のPUのイントラモードを使用して実行される。3つの固定テーブルmap_angular_to_alwipidx
【数31】
があり、これらは、各従来のイントラ予測モードpredmodeAngularに、ALWIPモード
【数32】
を割り当てる。
【0074】
幅Wと高さHの各PUに対して、インデックス
【数33】
を定義し、これは、ALWIPパラメータがセクション2.5.3のように3つのセットうちのどれから取られるかを示す。
【0075】
上の予測ユニットPUaboveが利用可能な場合、現在のPUと同じCTUに属し、イントラモードにあり、
【数34】
である場合、およびALWIPがALWIPモードでPUaboveに適用される場合、
【数35】
であり、
【数36】
をおく。
【0076】
上のPUaboveが利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合であって、従来のイントラ予測モード
【数37】
が上のPUに対して適用される場合、
【数38】
をおく。
【0077】
それ以外の場合は、
【数39】
をおき、これは、このモードが利用可能ではないことを意味する。
同じように、左のPUが現在のPUと同じCTUに属する必要があるという制約なしに、モード
【数40】
を導出する。
【0078】
最後に、3つの固定デフォルトリスト
【数41】
が提供され、その各々が3つの異なるALWIPモードを含む。デフォルトリスト
【数42】
、モード
【数43】
および
【数44】
から、デフォルト値に-1を代入し、繰り返しを省略することによって、3つの異なるMPMを構成する。
【0079】
ALWIP MPMリスト構成において使用される左の隣接するブロックおよび上の隣接するブロックは、図10に示すようにA1およびB1である。
【0080】
2.5.7 従来の輝度および色差イントラ予測モードのための適応MPMリストの導出
提案されたALWIPモードは、従来のイントラ予測モードのMPMベースのコーディングと以下のように調和する。従来のイントラ予測モードのための輝度および色差MPMリストの導出プロセスは固定テーブル
【数45】
を使用し、これは、所与のPUに対するALWIPモードpredmodeALWIPを従来のイントラ予測モード
【数46】
にマッピングする。
【0081】
輝度MPMリスト導出の場合、ALWIPモードpredmodeALWIPを使用する隣接輝度ブロックに遭遇するときはいつも、このブロックは、従来のイントラ予測predmodeAngularを使用しているかのように扱われる。
色差MPMリスト導出の場合、現在の輝度ブロックがLWIPモードを使用するときはいつでも、同じマッピングがALWIPモードを従来のイントラ予測モードに変換するために使用される。
【0082】
2.5.8 対応する修正ワーキングドラフト
いくつかの実施形態では、本セクションで記載されるように、開示された技術の実施形態に基づいて、intra_lwip_flag、intra_lwip_mpm_flag、intra_lwip_mpm_idxおよびintra_lwip_mpm_reminderに関係する部分がワーキングドラフトに追加されている。
【0083】
いくつかの実施形態では、本セクションで記載されるように、<begin>タグおよび<end>タグは、開示された技術の実施態様に基づいて、ワーキングドラフトへの追加および修正を示すために使用される。
構文テーブル
コーディングユニット構文
【表1】
意味
<begin>intra_lwip_flag[x0][y0]が1に等しいことは、輝度サンプルのイントラ予測タイプがアフィン線形加重イントラ予測であることを指定する。intra_lwip_flag[x0][y0]が1に等しいことは、輝度サンプルのイントラ予測タイプがアフィン線形加重イントラ予測ではないことを指定する。
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に等しいと推論される。
復号プロセス
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に等しい場合、再構成されたピクチャは、以下のように修正される。
【数47】
- そうでなければ、以下を適用する。
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]に等しくセットされた変数predModelIntra、0に等しくセットされた変数cIdxで呼び出され、出力は、ループ内フィルタリング前の修正された再構成されたピクチャである。
...
<begin>
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. XがAまたはBに置き換えられる場合、変数candLwipModeXは以下のように導出される。
- 6.4.X項で指定されたブロックに対する可用性導出プロセス[Ed.(BB):隣接するブロック可用性チェックプロセスtbd]は、入力として、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)、および(xNbX,yNbX)に等しくセットされた隣接位置(xNbY,yNbY)で呼び出され、出力はavalableXに割り当てられる。
- 候補のアフィン線形加重イントラ予測モードcandLwipModeXは以下のように導出される。
- 次の条件のうちの1つ以上が満たされる場合、candLwipModeXは-1に等しくセットされる。
- 変数avallableXは、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. x=0..2のcandLwipModeList[x]は、表8-X2で指定されたlwipMpmCand[sizeId]を使用して、以下のように導出される。
- candLwipModeAとcandLwipModeBが両方とも-1に等しい場合、以下を適用する。
【数48】
- そうでなければ、以下を適用する。
- candLwipModeAがcandLwipModeBに等しい場合、またはcandLwipModeAまたはcandLwipModeBが-1に等しい場合、以下を適用する。
【数49】
- candLwipModeList[0]がlwipMpmCand[sizeId][0]に等しい場合、以下を適用する。
【数50】
- そうでなければ、以下を適用する。
【数51】
- そうでなければ、以下を適用する。
【数52】
- candLwipModeAとcandLwipModeBが両方ともlwipMpmCand[sizeId][0]に等しくない場合、以下を適用する。
【数53】
- そうでなければ、以下を適用する。
- candLwipModeAとcandLwipModeBが両方ともlwipMpmCand[sizeId][1]に等しくない場合、以下を適用する。
【数54】
- そうでなければ、以下を適用する。
【数55】
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. i=0..1および各i,j=(i+1..2)に対してcandLwipModeList[i]がcandLwipModeList[j]より大きいときに、両方の値は以下のようにスワップされる。
【数56】
2. IntraPredModeY[xCb][yCb]は、以下の順序のステップによって導出される。
i. IntraPredModeY[xCb][yCb]は、intra_lwip_mpm_remainder[xCb][yCb]に等しくセットされる。
ii. 0~2に等しいiに対して、IntraPredModeY[xCb][yCb]がcandLwipModeList[i]以上であるときに、IntraPredModeY[xCb][yCb]の値は1でインクリメントされる。
x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の変数IntraPredModeY[x][y]は、IntraPredModeY[xCb][yCb]に等しくセットされる。
8.4.X.1
予測ブロックサイズタイプに対する導出プロセス
このプロセスへの入力は、以下のようである。
- 輝度サンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
- 輝度サンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
このプロセスの出力は、変数sizeIdである。
変数sizeIdは、次のように導出される。
- cbWidthとcbHeightの両方が4に等しい場合、sizeIdは0にセットされる。
- そうでなければ、cbWidthとcbHeightの両方が8に等しい場合、sizeIdは1に等しくセットされる。
- そうでなければ、sizeIdは2にセットされる。
表8-X1-イントラ予測モードとアフィン線形加重イントラ予測モードとのマッピングの仕様
【表2】
表8-X2-アフィン線形加重イントラ予測候補モードの仕様
【表3】
<end>
8.4.2 輝度イントラ予測モードに対する導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度コーディングブロックの左上のサンプルを指定する輝度位置(xCb,yCb)
- 輝度サンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
- 輝度サンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
このプロセスでは、輝度イントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
表8-1は、イントラ予測モードIntraPredModeY[xCb][yCb]に対する値と関連する名前を指定する。
表8-1-イントラ予測モードと関連する名前の仕様
【表4】
注記-イントラ予測モードINTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLMは、色差コンポーネントにのみ適用可能である。
IntraPredModeY[xCb][yCb]は、以下の順序のステップによって導出される。
1. 隣接位置(xNbA,yNbA)と(xNbB,yNbB)は、それぞれ(xCb-1,yCb+cbHeight-1)と(xCb+cbWidth-1,yCb-1)に等しくセットされる。
2. XがAまたはBに置き換えられる場合、変数candIntraPredModeXは以下のように導出される。
- <begin>6.4.X項[Ed.(BB):隣接するブロック可用性チェックプロセスtbd]<end>で指定されたブロックに対する可用性導出プロセスは、入力として、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)、および(xNbX,yNbX)に等しくセットされた隣接位置(xNbY,yNbY)で呼び出され、出力はavalableXに割り当てられる。
- 候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、candIntraPredModeXはINTRA_PLANARに等しくセットされる。
- 変数avallableXは、FALSEに等しい。
- CuPredMode[xNbX][yNbX]は、MODE_INTRAに等しくなく、ciip_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]に等しくセットされる。
変数ispDefaultMode1およびispDefaultMode2は、以下のように定義される。
- IntraSubPartitionsSplitTypeがISP_HOR_SPLITに等しい場合、ispDefaultMode1は、INTRA_ANGULAR18に等しくセットされ、ispDefaultMode2は、INTRA_ANGULAR5に等しくセットされる。
- そうでなければ、ispDefaultMode1は、INTRA_ANGULAR50に等しくセットされ、ispDefaultMode2は、INTRA_ANGULAR63に等しくセットされる。
...
表8-X3-アフィン線形加重イントラ予測候補モードとイントラ予測モードとのマッピングの仕様
【表5】
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_chroma_pred_mode[xCb][yCb]とlumaIntraPredModeを使用して導出される。
...
xxx.
イントラサンプル予測
<begin>
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)
- イントラ予測モードを指定する変数predModeIntra
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- コーディングブロック幅を指定する変数nCbW
- コーディングブロック高さを指定する変数nCbH
- 現在のブロックの色コンポーネントを指定する変数cIdx
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1の予測されたサンプルpredSamples[x][y]である。予測されたサンプルpredSamples[x][y]は、以下のように導出される。
- intra_lwip_flag[xTbCmp][yTbCmp]が1に等しく、cIdxが0に等しい場合、8.4.4.2.X1項で指定されたアフィン線形加重イントラサンプル予測プロセスは、入力として、位置(xTbCmp,yTbCmp)、イントラ予測モードpredModeIntra、変換ブロック幅nTbWおよび高さnTbHで呼び出され、出力は、preSamplesである。
- そうでなければ、8.4.4.2.X1項で指定された一般的なイントラサンプル予測プロセスは、入力として、位置(xTbCmp,yTbCmp)、イントラ予測モードpredModeIntra、変換ブロック幅nTbWおよび高さnTbH、コーディングブロック幅nCbWおよび高さnCbH、並びに変数cIdxで呼び出され、出力はpredSamplesである。
8.4.4.2.X1 アフィン線形加重イントラサンプル予測
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のサンプルに対する現在の変換ブロックの左上のサンプルを指定するサンプル位置(xTbCmp,yTbCmp)
- イントラ予測モードを指定する変数predModeIntra
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1の予測されたサンプルpredSamples[x][y]である。
8.4.X.1項で指定されたブロックに対するサイズタイプ導出処理は、入力として、変換ブロック幅nTbW、変換ブロック高さnTbHで呼び出され、出力は、変数sizeIdに割り当てられる。
変数numMode、boundarySize、predW、predH、predCは、表8-X4で指定されたsizeIdを使用して導出される。
表8-X4-sizeIdに依存したモード数、境界サンプルサイズ、予測サイズの使用
【表6】
フラグisTransposedは、以下のように導出される。
【数57】
フラグneedUpsBdryHorとneedUpsBdryVerは、以下のように導出される。
【数58】
変数upsBdryWとupsBdryHは、以下のように導出される。
【数59】
変数lwipWとlwipHは次のように導出される。
【数60】
x=0..nTbW-1の基準サンプルrefT[x]、y=0..nTbH-1の基準サンプルrefL[y]の生成の場合、8.4.4.2.X2項に指定された基準サンプル導出プロセスは、入力として、サンプル位置(xTbCmp,yTbCmp)、変換ブロック幅nTbW、変換ブロック高nTbHで呼びされ、出力としては、上部および左の基準サンプルrefT[x](x=0..nTbW-1)およびrefL[y](y=0..nTbH-1)である。
x=0..2*boundarySize-1の境界サンプルp[x]の生成の場合、以下を適用する。
- 8.4.4.2.X3項で指定された境界低減プロセスは、上部の基準サンプルに対して、入力として、ブロックサイズnTbW、基準サンプルrefT、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer、およびアップサンプリング境界サイズupsBdryWで呼び出され、出力としては、低減された境界サンプルredT[x](x=0..boundrySize-1)およびアップサンプリング境界サンプルのupsBdryT[x](x=0..upsBdryW-1)である。
- 8.4.4.2.X3項で指定された境界低減プロセスは、左の基準サンプルに対して、入力として、ブロックサイズnTbH、基準サンプルrefL、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryHor、およびアップサンプリング境界サイズupsBdryHで呼び出され、出力としては、低減された境界サンプルredL[x](x=0..boundrySize-1)およびアップサンプリング境界サンプルupsBdryL[x](x=0..upsBdryH-1)である。
- 低減された上部および左の境界サンプルredTおよびredLは、以下のように境界サンプルアレイpに割り当てられる。
- isTransposedが1に等しい場合、p[x]は、x=0..boundarySize-1でredL[x]に等しくセットされ、p[x+boundarySize]は、x=0..boundarySize-1でredT[x}に等しくセットされる。
- そうでなければ、p[x]は、x=0..boundarySize-1でredT[x]に等しくセットされ、p[x+boundarySize]は、x=0..boundarySize-1でredL[x}に等しくセットされる。
predModeIntraに従ったイントラサンプル予測プロセスの場合、以下の順序のステップが適用される。
1. x=0..lwipW-1、y=0..lwipH-1のアフィン線形加重サンプルpredLwip[x][y]は、以下のように導出される。
- 変数modeIdは、以下のように導出される。
【数61】
- x=0.2*boundarySize-1、y=0..predC*predC-1の重み行列mWeight[x][y]は、表8-XX[TBD:重み行列を追加]で指定されたsizeIdおよびmodeIDを使用して導出される。
- y=0..predC*predC-1のバイアスベクトルvBias[y]は、表8-XX[TBD:バイアスベクトルを追加]で指定されているsizeIdおよびmodeIdを使用して導出される。
- 変数sWは、表8-X5で指定されたsizeIdおよびモードIdを使用して導出される。
- x=0..lwipW-1、y=0..lwipH-1のアフィン線形加重サンプルpredLwip[x][y]は、以下のように導出される。
【数62】
2. x=0..nTbW-1,y=0..nTbH-1の予測されたサンプルpredSamples[x][y]は、以下のように導出される。
- isTransposedが1に等しいときに、x=0..predW-1,y=0..predH-1のpredLwip[x][y]は、predLwip[y][x]に等しくセットされる。
- needUpsBdryVerがTRUEに等しい場合、またはneedUpsBdryHorがTRUEに等しい場合、8.4.4.2.X4項で指定された予測アップサンプリングプロセスは、入力として、入力ブロック幅preW、入力ブロック高さpredH、アフィン線形加重サンプルpredLwip、変換ブロック幅nTbW、変換ブロック高さnTbH、アップサンプリング境界幅upsBdryW、アップサンプリング境界高さupsBdryH、上部のアップアップ境界サンプルupsBdryT、および左のアップアンプリング境界サンプルupsBdryLで呼び出され、出力は、予測されたサンプルアレイpredSamplesである。
- そうでなければ、x=0..nTbW-1、y=0..nTbH-1のpredSamples[x][y]は、predLwip[x][y]に等しくセットされる。
表8-X5-sizeIdとmodeIdに依存した重みシフトの仕様
【表7】
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)は、
【数63】
- 6.4.X項で指定されたブロックに対する可用性導出プロセス[Ed.(BB):隣接するブロック可用性チェックプロセスtbd]は、入力として、(xTbY,yTbY)に等しくセットされた現在の輝度位置(xCurr,yCurr)と、上部の隣接する輝度位置(xNbT,yNbT)で呼び出され、出力は、x=0..nTbW-1のavailTop[x]に割り当てられる。
- 6.4.X項で指定されたブロックに対する可用性導出プロセス[Ed.(BB):隣接するブロック可用性チェック処理tbd]は、入力として、(xTbY,yTbY)に等しくセットされた現在の輝度位置(xCur,yCurr)、および左の隣接する輝度位置(xNbL,yNbL)で呼び出され、出力は、y=0..nTbH-1のavailLeft[y]に割り当てられる。
- x=0..nTbW-1の上部の基準サンプルrefT[x]は、以下のように導出される。
- x=0..nTbW-1のすべてのavailTop[x]がTRUEに等しい場合、その位置(xNbT,yNbT)でのサンプルは、x=0..nTbW-1のrefT[x]に割り当てられる。
- そうでなければ、availTop[0]がFALSEに等しい場合、x=0..nTbW-1のすべてのrefT[x]は1<<(BitDepthY-1)に等しくセットされる。
- そうでなければ、x=0..nTbW-1の基準サンプルrefT[x]は、以下の順序のステップによって導出される。
1. 変数lastTは、FALSEに等しいx=1..nTbW-1のシーケンスavailTop[x]における最初の要素の位置xに等しくセットされる。
2. 各x=0..lastT-1に対して、位置(xNbT,yNbT)でのサンプルは、refT[x]に割り当てられる。
3. 各x=lastT..nTbW-1に対して、refT[x]は、refT[lastT-1]に等しくセットされる。
- x=0..nTbH-1の左の基準サンプルrefL[y]は、以下のように導出される。
- y=0..nTbH-1のすべてのavailLeft[y]がTRUEに等しい場合、その位置(xNbL,yNbL)でのサンプルは、y=0..nTbH-1のrefL[y]に割り当てられる。
- そうでなければ、availLeft[0]がFALSEに等しい場合、y=0..nTbH-1のすべてのrefL[x]は1<<(BitDepthY-1)に等しくセットされる。
- そうでなければ、y=0..nTbH-1の基準サンプルrefL[y]は、以下の順序のステップによって導かれる。
1. 変数lastLは、FALSEに等しいy=1..nTbH-1のシーケンスavailLeft[y]における最初の要素の位置yに等しくセットされる。
2. 各y=0..lastL-1に対して、位置(xNbL,yNbL)でのサンプルは、refL[y]に割り当てられる。
3. 各y=lastL..nTbH-1に対して、refL[y]は、refL[lastL-1]に等しくセットされる。
境界低減プロセスの仕様
このプロセスへの入力は、以下のようである。
- 変換ブロックサイズを指定する変数nTbH
- x=0..nTbX-1の基準サンプルrefX[x]
- ダウンサンプリングした境界サイズを指定する変数boundySize
- アップサンプリングに中間境界サンプルが必要かどうかを指定するフラグneedUpsBdryX
- アップサンプリングのための境界サイズを指定する変数upsBdrySize
このプロセスの出力は、x=0..boundarySize-1の低減された境界サンプルredX[x]およびx=0..upsBdrySize-1のアップサンプリング境界サンプルupsBdryX[x]である。
x=0..upsBdrySize-1のアップサンプリング境界サンプルupsBdryX[x]は、以下のように導出される。
- needUpsBdryXがTRUEに等しく、upsBdrySizeがnTbXより小さい場合、以下を適用する。
【数64】
- そうでなければ(upsBdrySizeはnTbXに等しい)、upsBdryX[x]はrefX[x]に等しくセットされる。
x=0..boundarySize-1の低減された境界サンプルredX[x]は、以下のように導出される。
- boundarySizeがupBdrySizeより小さい場合、以下を適用する。
【数65】
- それ以外の場合(boundarySizeはupsBdrySizeに等しい)、redX[x]はupsBdryX[x]に等しくセットされる。
8.4.4.2.X4 予測アップサンプリングプロセスの仕様
このプロセスへの入力は、以下のようである。
- 入力ブロック幅を指定する変数predW
- 入力ブロック高さを指定する変数predH
- x=0..predW-1、y=0..predH-1のアフィン線形加重サンプルpredLwip[x][y]
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- アップサンプリング境界幅を指定する変数upsBdryW
- アップサンプリング境界高さを指定する変数upsBdryH
- x=0..upsBdryW-1の上部の境界サンプルupsBdryT[x]
- x=0..upsBdryH-1の左のアップサンプリング境界サンプルupsBdryL[x]
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1の予測されたサンプルpredSamples[x][y]である。
まばらな予測されたサンプルpredSamples[m][n]は、x=0..predW-1、y=0..predH-1のpredLwip[x][y]から、以下のように導出される。
【数66】
x=0..upsBdryW-1の上部の境界サンプルupsBdryTは、以下のようにpredSamples[m][-1]に割り当てられる。
【数67】
y=0..upsBdryH-1のupsBdryL[y]の左の境界サンプルは、以下のようにpredSamples[-1][n]に割り当てられる。
【数68】
x=0..nTbW-1,y=0..nTbH-1の予測されたサンプルpredSamples[x][y]は、以下のように導出される。
- nTbHがnTbWより大きい場合、以下の順序のステップが適用される。
1. upHorが1より大きい場合、m=0..predW-1、n=1..predHのすべてのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)のための水平アップサンプリングは、以下のようにdX=1..upHor-1を用いて適用される。
【数69】
2. m=0..nTbW-1、n=0..predH-1のすべてのスパース位置(xVer,yVer)=(m,n*upVer-1)のための垂直アップサンプリングは、以下のようにdY=1..upVer-1を用いて適用される。
【数70】
- そうでなければ、以下の順序のステップを適用する。
1. upVerが1より大きいときに、m=1..predW、n=1..predH-1のすべてのスパース位置(xVer,yVer)=(m*upHor-1,n*upVer-1)のための垂直アップサンプリングは、以下のようにdX=1..upVer-1を用いて適用される。
2. m=0..predW-1、n=0..nTbH-1のすべてのスパース位置(xHor,yHor)=(m*upHor-1,n)のための水平アップサンプリングは、(8-X39)で指定されたdX=1..upHor-1を用いて適用される。
<end>
表9-9-構文要素と関連するバイナリ化
【表8】
表9-15-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【表9】
表9-16-左および上部の構文要素を使用したctxIncの仕様
【表10】
<end>
【0084】
ALWIPの概要
幅Wと高さHの矩形ブロックのサンプルを予測するために、アフィン線形加重イントラ予測(ALWIP)は、ブロックの左のH個の再構成された隣接境界サンプルの1ラインと、ブロックの上のW個の再構成された隣接境界サンプルの1ラインを入力としてとる。再構成されたサンプルが利用できない場合は、通常のイントラ予測と同様に生成される。ALWIPは輝度イントラブロックにのみ適用される。色差イントラブロックに対して、従来のイントラコーディングモードが適用される。
【0085】
予測信号の生成は、以下の3つのステップに基づく。
【0086】
1. 境界サンプルのうち、W=H=4の場合は4サンプル、それ以外の場合は8サンプルを平均して抽出される。
2. 平均化されたサンプルを入力として用いて、行列ベクトル乗算が実施され、次にオフセットの加算が実施される。その結果、元のブロック中のサブサンプリングされたサンプルのセットに対する減少した予測信号が得られる。
3. 残りの位置での予測信号は、各方向の単一ステップ線形補間である線形補間によってサブサンプリングされたセットに対する予測信号から生成される。
【0087】
ALWIPモードが適用される場合、ALWIPモードのインデックpredmodeは、3MPMを有するMPMリストを使用してシグナリングされる。ここで、MPMの導出は、以下のように、上および左のPUのイントラモードを使用して実行される。3つの固定テーブル
【数71】
があり、これらは、各従来のイントラ予測モードpredmodeAngularに、ALWIPモード
【数72】
を割り当てる。
【0088】
幅Wと高さHの各PUに対して、インデックス
【数73】
を定義し、これは、ALWIPパラメータが3つのセットうちのどれから取られるかを示す。
【0089】
上の予測ユニットPUaboveが利用可能な場合、現在のPUと同じCTUに属し、イントラモードにある場合であって、idx(PU)=idx(PUabove)である場合であって、ALWIPが、ALWIPモード
【数74】
でPUaboveに適用される場合、以下をおく。
【数75】
【0090】
上のPUaboveが利用可能であり、現在のPUと同じCTUに属し、イントラモードにある場合であって、従来のイントラ予測モード
【数76】
が上のPUに対して適用される場合、以下をおく。
【数77】
【0091】
それ以外の場合は、
【数78】
をおき、これは、このモードが利用可能ではないことを意味する。
同じように、左のPUが現在のPUと同じCTUに属する必要があるという制約なしに、モード
【数79】
を導出する。
【0092】
最後に、3つの固定デフォルトリスト
【数80】
が提供され、その各々が3つの異なるALWIPモードを含む。
デフォルトリスト
【数81】
、モード
【数82】
および
【数83】
から、デフォルト値に-1を代入し、繰り返しを省略することによって、3つの異なるMPMを構成する。
【0093】
輝度MPMリスト導出の場合、ALWIPモードpredmodeALWIPを使用する隣接輝度ブロックに遭遇するときはいつも、このブロックは、従来のイントラ予測predmodeAngularを使用しているかのように扱われる。
【数84】
【0094】
3. VVCにおける変換
3.1 多重変換選択(MTS)
HEVCで使用されてきたDCT‐IIに加えて、MTS(Multiple Transform Selection)スキームが、インターおよびイントラコーディングされたブロック内の両方の残差コーディングのために使用される。DCT8/DST7から選択された複数の変換を使用する。新しく導入された変換行列はDST-VIIとDCT-VIIIである。
【0095】
3.2 JVET-N0193で提案された低減された二次変換(RST)
低減された二次変換(RST)は、4×4および8×8ブロックに対して、それぞれ16×16および16×64の分離することができない変換を適用する。一次順変換と逆変換は、依然として、2つの1-D水平/垂直変換パスと同様に実行される。二次順変換と逆変換は、一次変換とは別のプロセスステップである。符号化器の場合、一次順変換が最初に実行され、続いて二次順変換と量子化、およびCABACビット符号化が実行される。復号器の場合、CABACビット復号および逆量子化が実行され、次いで二次逆変換が最初に実行され、次に一次逆変換が実行される。RSTは、イントラスライスとインタースライスの両方のイントラコーディングされたTUにのみ適用する。
【0096】
3.3 JVET-N0185におけるイントラモードコーディングのための統一MPMリスト
複数の基準ライン(MRL)およびイントラサブパーティション(ISP)コーディングツールが適用されるかどうかに関係なく、イントラブロックに対して統一6‐MPMリストを提案する。MPMリストは、VTM4.0のように、左上の隣接するブロックのイントラモードに基づいて構成される。左のモードをLeft、上のブロックのモードをAboveとすると、統一MPMリストは、以下のように構成される。
・ 隣接するブロックが利用できないときに、デフォルトでそのイントラモードは、Planarにセットされる。
・ モードLeftとモードAboveが非angularモードである場合、
a. MPMリスト→{Planar,DC,V,H,V-4,V+4}
・ モードLeftとモードAboveのうちの一方がangularモードで、他方が非angularモードである場合、
a. LeftとAboveにおけるより大きいモードとしてモードMaxをセットする
b. MPMリスト→{Planar,Max,DC,Max-1,Max+1,Max-2}
・ LeftとAboveが両方ともangularであり、それらが異なる場合、
a. LeftとAboveにおけるより大きいモードとしてモードMaxをセットする
b. モードLeftとモードAboveの差が2~62の範囲である場合、
i. MPMリスト→{Planar,Left,Above,DC,Max-1,Max+1}
c. そうでなければ、
i. MPMリスト→{Planar,Left,Above,DC,Max-2,Max+2}
・ LeftとAboveが両方ともangularであり、それらが同じである場合、
a. MPMリスト→{Planar,Left,Left-1,Left+1,DC,Left-2}
【0097】
さらに、MPMインデックスコードワードの最初のビンは、CABACコンテキストコーディングされている。現在のイントラブロックがMRL有効か、ISP有効か、通常のイントラブロックかに対応する合計3つのコンテキストが使用される。
【0098】
統一MPMリスト構成において使用される左の隣接するブロックおよび上の隣接するブロックは、図10に示すようにA2およびB2である。
【0099】
1つのMPMフラグが最初にコーディングされる。ブロックがMPMリスト内のモードの1つでコーディングされる場合、MPMインデックスがさらにコーディングされる。そうでなければ、残りのモードのインデックス(MPMを除く)がコーディングされる。
【0100】
4 既存の実装における欠点の例
JVET-N0217におけるALWIPの設計は、以下の問題を有する。
【0101】
1) 2019年3月のJVETミーティングでは、MRLモード、ISPモード、通常イントラモードに対して統一6-MPMリスト生成が採用された。しかし、アフィン線形加重予測モードは、MPMリスト構成を複雑にする異なる3-MPMリスト構成を使用する。複雑なMPMリスト構成は、特に4×4サンプルなどの小さなブロックに対して、復号器のスループットを損なう可能性がある。
2) ALWIPは、ブロックの輝度コンポーネントにのみ適用される。ALWPコーディングされたブロックの色差コンポーネントに対して、色差モードインデックスがコーディングされ、復号器に送信され、不必要なシグナリングをもたらす可能性がある。
3) ALWIPと他のコーディングツールとの相互作用を考慮すべきである。
4)
【数85】
を計算するときに、Log2(uDwn)-1が-1に等しいが、-1による左方シフトが定義されていない可能性がある。
5) 予測サンプルをアップサンプリングするときに、丸めは適用されない。
6) ブロック解除プロセスでは、ALWIPコーディングされたブロックは、通常のイントラブロックとして扱われる。
7) ALWIPフラグ(例えば、intra_lwip_flag)をコーディングする際に、あまりに多くのコンテキスト(例えば、4)が使われる。
8) 垂直アップサンプリングと水平アップサンプリングの両方が必要なときに、アップサンプリング順序はブロック形状に依存する。これはハードウェアに優しいものではない。
9) 線形補間フィルタは、アップサンプリングのために使用されるが、これは非効率である。
【0102】
5 行列ベースのイントラコーディングのための例示的な方法
本開示の技術の実施形態は、既存の実装の欠点を克服し、それによりより高いコーディング効率を有するが、より低い計算複雑性を有するビデオコーディングを提供する。ビデオコーディングのための行列ベースのイントラ予測方法は、本文書に記載されているように、既存および将来のビデオコーディング標準の両方を向上させる可能性があり、様々な実装に対して記載されている以下の例において解明されている。以下に提供される開示された技術の例は、一般的な概念を説明するものであり、限定的なものとして解釈されることを意図していない。一例では、明示的に反対に示されない限り、これらの例に記載されている様々な特徴を組み合わせてもよい。
【0103】
以下の説明では、イントラ予測モードは、angularイントラ予測モード(DC、planar、CCLM、および他の可能なイントラ予測モードを含む)を指し、イントラモードは、通常イントラモード、MRL、ISPまたはALWIPを指す。
【0104】
以下の説明では、「他のイントラモード」とは、通常のイントラモード、MRL、またはISPなど、ALWIP以外の1つ以上のイントラモードを指す。
【0105】
以下の説明では、SatShift(x,n)は、以下のように定義される。
【数86】
【0106】
Shift(x,n)は、Shift(x,n)=(x+offset0)>>nと定義される。
【0107】
一例では、offset0および/またはoffset1は、(1<<n)>1または(1<<(n-1))にセットされる。別の例では、offset0および/またはoffset1が0にセットされる。
【0108】
別の例では、offset0=offset1=((1<<n)>>1)-1または(1<<(n-1))-1である。
【0109】
Clip3(min,max,x)は、以下のように定義される。
【数87】
ALWIPのためのMPMリスト構成
1. ALWIPのためのMPMリストの全部または一部は、非ALWIPイントラモード(通常イントラモード、MRL、またはISPなど)のためのMPMリストを構成するための全部または一部の手順に従って構成することを提案する。
a. 一例では、ALWIPのためのMPMリストのサイズは、非ALWIPイントラモードのためのMPMリストのサイズと同じでもよい。
i. 例えば、ALWIPモードと非ALWIPイントラモードの両方に対して、MPMリストのサイズは6である。
b. 一例では、ALWIPのためのMPMリストは、非ALWIPイントラモードのためのMPMリストから導出されてもよい。
i. 一例では、非ALWIPイントラモードのためのMPMリストが最初に構成されてもよい。その後、それらの一部または全部が、MPMに変換されてもよく、これがさらにALWIPコーディングされたブロックのためのMPMリストに追加されてもよい。
1) 代替的には、ALWIPコーディングされたブロックのためのMPMリストに、変換されたMPMを追加するときに、プルーニングが適用されてもよい。
2) デフォルトモードが、ALWIPコーディングされたブロックのためのMPMリストに追加されてもよい。
a. 一例では、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換される前に追加されてもよい。
b. 代替的には、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換された後に追加されてもよい。
c. 代替的には、デフォルトモードは、非ALWIPイントラモードのMPMリストから変換されたものとインターリーブ方式で追加されてもよい。
d. 一例では、デフォルトモードは、すべての種類のブロックに対して同じであるように固定されてもよい。
e. 代替的には、デフォルトモードは、隣接するブロックの可用性、隣接するブロックのモード情報、ブロック寸法などのコーディングされた情報に従って判定されてもよい。
ii. 一例では、非ALWIPイントラモードのためのMPMリスト内の1つのイントラ予測モードは、それがALWIPのためのMPMリストにおかれるときに、対応するALWIPイントラ予測モードに変換されてもよい。
1) 代替的には、非ALWIPイントラモードのためのMPMリスト内のすべてのイントラ予測モードは、ALWIPのためのMPMリストを構成するために使用される前に、対応するALWIPイントラ予測モードに変換されてもよい。
2) 代替的には、すべての候補イントラ予測モード(隣接するブロックからのイントラ予測モードおよびPlanarおよびDCなどのデフォルトイントラ予測モードを含んでもよい)は、非ALWIPイントラモードのためのMPMリストをさらにALWIPのMPMリストを導出するために使用してもよい場合、非ALWIPイントラモードのためのMPMリストを構成するために使用される前に、対応するALWIPイントラ予測モードに変換されてもよい。
3) 一例では、2つの変換されたALWIPイントラ予測モードが比較されてもよい。
a. 一例では、それらが同じである場合、それらのうちの1つだけがALWIPのためのMPMリストにおかれてもよい。
b. 一例では、それらが同じである場合、それらのうちの1つだけが非ALWIPのためのMPMリストにおかれてもよい。
iii. 一例では、非ALWIPイントラモードのためのMPMリスト内のS個のイントラ予測モードのうちのK個を、ALWIPモードのためのMPMリストとしてピックしてもよい。例えば、Kは、3に等しく、Sは、6に等しい。
1) 一例では、非ALWIPイントラモードのためのMPMリスト内のS個のイントラ予測モードのうちの最初のK個を、ALWIPモードのためのMPMリストとしてピックしてもよい。
2. ALWIPのためのMPMリストを導出するために使用される1つ以上の隣接するブロックがまた、非ALWIPイントラモード(通常イントラモード、MRL、またはISPなど)のためのMPMリストを導出するために使用され得ることを提案する。
a. 一例では、ALWIPのためのMPMリストを導出するために使用される現在のブロックの左の隣接するブロックは、非ALWIPイントラモードのためのMPMリストを導出するために使用されるものと同じであるべきである。
i. 現在のブロックの左上角が(xCb,yCb)で、現在のブロックの幅と高さがWとHであるとすると、一例では、ALWIPと非ALWIPイントラモードの両方のためのMPMリストを導出するために使用される左の隣接するブロックが位置(xCb-1,yCb)をカバーしてもよい。代替的な例では、ALWIPモードと非ALWIPイントラモードの両方のためのMPMリストを導出するために使用される左の隣接するブロックが、位置(xCb-1、yCb+H-1)をカバーしてもよい。
ii. 例えば、統一MPMリスト構成において使用される左の隣接するブロックおよび上の隣接するブロックは、図10に示すようにA2およびB2である。
b. 一例では、ALWIPのためのMPMリストを導出するために使用される現在のブロックの上の隣接するブロックは、非ALWIPイントラモードのためのMPMリストを導出するために使用されるものと同じであるべきである。
i. 現在のブロックの左上角が(xCb,yCb)で、現在のブロックの幅と高さがWとHであるとすると、一例では、ALWIPと非ALWIPイントラモードの両方のためのMPMリストを導出するために使用される上の隣接するブロックが位置(xCb,yCb-1)をカバーしてもよい。代替的な例では、ALWIPモードと非ALWIPイントラモードの両方のためのMPMリストを導出するために使用されるの上の隣接するブロックが、位置(xCb+W-1,yCb-1)をカバーしてもよい。
ii. 例えば、統一MPMリスト構成において使用される左の隣接するブロックおよび上方の隣接するブロックは、図10に示すようにA1およびB1である。
3. ALWIPのためのMPMリストが、現在のブロックの幅および/または高さに従って、異なる方法で構成され得ることを提案する。
a. 一例では、異なるブロック寸法のために異なる隣接するブロックにアクセスしてもよい。
4. ALWIPのためのMPMリストと非ALWIPイントラモードのためのMPMリストは、同じ手順で構成してもよいが、異なるパラメータで構成してもよいことを提案する。
a. 一例では、非ALWIPイントラモードのためのMPMリスト構成手順におけるS個のイントラ予測モードのうちのK個を、ALWIPモードにおいて使用されるMPMリストのために導出してもよい。例えば、Kは、3に等しく、Sは、6に等しい。
i. 一例では、MPMリスト構成手順における最初のK個のイントラ予測モードを、ALWIPモードにおいて使用されるMPMリストのために導出してもよい。
b. 一例では、MPMリスト内の最初のモードは異なってもよい。
i. 例えば、非ALWIPイントラモードのためのMPMリスト内の最初のモードは、Planarであってもよいし、ALWIPのためのMPMリスト内のモードX0であってもよい。
1) 一例では、X0は、Planarから変換されたALWIPイントラ予測モードであってもよい。
c. 一例では、MPMリスト内のスタッフィングモードが異なってもよい。
i. 例えば、非ALWIPイントラモードのためのMPMリスト内の最初の3つのスタッフィングモードは、DC、垂直および水平であってもよいが、それらは、ALWIPのためのMPMリストのモードX1、X2、X3であってもよい。
1) 一例において、X1、X2、X3は、異なるsizeIdに対して異なってもよい。
ii. 一例では、スタッフィングモードの数は、異なってもよい。
d. 一例では、MPMリスト内の隣接するモードが異なってもよい。
i. 例えば、隣接するブロックの通常のイントラ予測モードは、非ALWIPイントラモードのためのMPMリストを構成するために使用される。そして、それらをALWIPイントラ予測モードに変換し、ALWIPモードのためのMPMリストを構成する。
e. 一例では、MPMリスト内のシフトモードは、異なってもよい。
i. 例えば、X+K0(Xは、通常のイントラ予測モードであり、K0は、整数である)は、非ALWIPイントラモードのためのMPMリストにおかれてもよい。また、Y+K1(Yは、ALWIPイントラ予測モードであり、K1は、整数である)は、ALWIPためのMPMリストにおかれてもよく、K0は、K1とは異なってもよい。
1) 一例では、K1は、幅および高さに依存してもよい。
5. 非ALWIPイントラモードで現在のブロックのためのMPMリストを構成するときに、隣接するブロックがALWIPでコーディングされている場合、隣接するブロックは、利用不可として扱われることを提案する。
a. 代替的には、非ALWIPイントラモードで現在のブロックのためのMPMリストを構成するときに、隣接するブロックがALWIPでコーディングされている場合、隣接するブロックは、予め定義されたイントラ予測モード(Planarなど)でコーディングされているとして扱われる。
6. ALWIPモードで現在のブロックのためのMPMリストを構成するときに、隣接するブロックが非ALWIPイントラモードでコーディングされている場合、隣接するブロックは利用不可として扱われることを提案する。
a. 代替的には、ALWIPモードで現在のブロックのためのMPMリストを構成するときに、隣接するブロックが非ALWIPイントラモードでコードディングされている場合、隣接するブロックは、予め定義されたALWIPイントラ予測モードXでコーディングされているとして扱われる。
i. 一例において、Xは、幅および/または高さなどのブロック寸法に依存してもよい。
7. ラインバッファからALWIPフラグの記憶を除去することを提案する。
a. 一例では、アクセスされる2番目のブロックが現在のブロックとは異なるLCU/CTU行/領域に位置するときに、2番目のブロックがALWIPでコーディングされるかどうかの条件付きチェックはスキップされる。
b. 一例では、アクセスされる2番目のブロックが現在のブロックとは異なるLCU/CTU行/領域に位置するときに、2番目のブロックは、通常のイントラコーディングされたブロックとして扱われるように、非ALWIPモードと同様に扱われる。
8. ALWIPフラグを符号化するときに、わずかK(K>=0)コンテキストが使われてもよい。
a. 一例では、K=1である。
9. ALWIPモードに関連したモードインデックスを直接記憶する代わりに、ALWIPコーディングされたブロックの変換されたイントラ予測モードを記憶することを提案する。
a. 一例では、1つのALWIPコーディングされたブロックに関連する復号されたモードインデックスは、2.5.7項に記載されているように、map_alwip_to_angularなどに従って、通常のイントラモードにマッピングされる。
b. 代替的には、さらに、ALWIPフラグの記憶は、完全に除去される。
c. 代替的には、さらに、ALWIPモードの記憶は、完全に除去される。
d. 代替的には、1つの隣接する/現在のブロックがALWIPフラグでコーディングされるかどうかの状態チェックをスキップしてもよい。
e. 代替的に、さらに、ALWIPコーディングされたブロックに割り当てられたモードの変換および1つのアクセスされたブロックに関連する通常のイントラ予測をスキップしてもよい。
異なる色コンポーネントに対するALWIP
10. 対応する輝度ブロックがALWIPモードでコーディングされている場合、推論された色差イントラモード(例えば、DMモード)が常に適用され得ることを提案する。
a. 一例では、色差イントラモードは、対応する輝度ブロックがALWIPモードでコーディングされている場合、シグナリングなしでDMモードであると推論される。
b. 一例において、対応する輝度ブロックは、所与の位置に位置する色差サンプルの対応するサンプル(例えば、現在の色差ブロックの左上、現在の色差ブロックの中心)をカバーするものであってもよい。
c. 一例では、DMモードは、例えば(ALWIP)モードを通常のイントラモードの1つにマッピングすることなどを介して、対応する輝度ブロックのイントラ予測モードに従って導出してもよい。
11. 色差ブロックの対応する輝度ブロックがALWIPモードでコーディングされているときに、いくつかのDMモードが導出されてもよい。
12. 1つの対応する輝度ブロックがALWIPモードでコーディングされる場合、特別モードが色差ブロックに割り当てられることを提案する。
a. 一例では、特別モードは、ALWIPコーディングされたブロックに関連するイントラ予測モードにかかわらず、所与の通常イントラ予測モードであると定義される。
b. 一例では、イントラ予測の異なる方法がこの特別モードに割り当てられてもよい。
13. ALWIPが色差コンポーネントにも適用されてもよいことを提案する。
a .一例では、マトリクスおよび/またはバイアスベクトルは、異なる色コンポーネントに対して異なってもよい。
b. 一例では、行列および/またはバイアスベクトルは、CbおよびCrに対して一緒に予め定義されてもよい。
i. 一例では、CbおよびCrコンポーネントが連結されてもよい。
ii. 一例では、CbおよびCrコンポーネントがインターリーブされてもよい。
c. 一例では、色差コンポーネントは、対応する輝度ブロックと同じALWIPイントラ予測モードを共有してもよい。
i. 一例では、対応する輝度ブロックがALWIPモードを適用し、色差ブロックがDMモードでコーディングされている場合、同じALWIPイントラ予測モードが色差コンポーネントに適用される。
ii. 一例では、同じALWIPイントラ予測モードが色差コンポーネントに適用され、その後の線形補間をスキップすることができる。
iii. 一例では、同じALWIPイントラ予測モードが、サブサンプリングされた行列および/またはバイアスベクトルを有する色差コンポーネントに適用される。
d. 一例では、異なるコンポーネントに対するALWIPイントラ予測モードの数が異なる可能性がある。
i. たとえば、色差コンポーネントに対するALWIPイントラ予測モードの数は、同じブロック幅と高さの輝度コンポーネントに対する数よりも少なくてもよい。
ALWIPの適用性
14. ALWIPを適用できるかどうかをシグナリングし得ることを提案する。
a. 例えば、それは、(例えば、SPSにおける)シーケンスレベル、(例えば、PPSまたは画像ヘッダにおける)ピクチャレベル、(例えば、スライスヘッダにおける)スライスレベル、(例えば、タイルグループヘッダにおける)タイルグループレベル、タイルレベル、CTU行レベル、またはCTUレベルでシグナリングされてもよい。
b. 例えば、ALWIPが適用できない場合、intra_lwip_flagはシグナリングされず、0であると推論されない。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であると推論されない。
ALWIPにおける計算上の問題
16. ALWIPに関与する任意シフト動作は、Sによる数の左シフトまたは右シフトのみが可能であり、Sは0以上でなければならない、ことを提案する。
a. 一例では、Sが0または0より大きいときに、右シフト動作は異なってもよい。
i. 一例では、upsBdryX[x]は以下のように計算されるべきである。uDwn>1であるときに、
【数88】
であり、およびuDwnが1に等しいときに、
【数89】
である。
b. 一例では、upsBdryX[x]は次のように計算されるべきである。
【数90】
17. 結果は、ALWIPのアップサンプリングプロセスにおいてゼロに近づくかゼロから離れるように丸められるべきであることを提案する。
a. 一例では、
【数91】
および
【数92】
であり、offsetHorとoffsetVerは整数である。たとえば、offsetHor=upHor/2であり、offsetVer=upVer/2である。
他のコーディングツールとの相互作用
ALWIPは、CIIPコーディングされたブロックに使用されてもよいことを提案する。
a. 一例では、CIIPコーディングされたブロックにおいて、ALWIPイントラ予測モードまたはPlanarなどの通常イントラ予測モードがイントラ予測信号を生成するために使用されるかどうかを明示的にシグナリングしてもよい。
b. 一例では、ALWIPイントラ予測モードまたはPlanarなどの通常イントラ予測モードかイントラ予測信号を生成するために使用され得るかどうかを黙示的に推論してもよい。
i. 一例では、ALWIPイントラ予測モードは、CIIPコーディングされたブロックにおいては決して使用されなくてもよい。
代替的には、通常のイントラ予測は、CIIPコーディングされたブロックにおいては決して使用されなくてもよい。
ii. 一例では、隣接するブロックの情報から、ALWIPイントラ予測モードまたはPlanarなどの通常イントラ予測モードがイントラ予測信号を生成するために使用されるかどうかを推論してもよい。
19. CCLMモードで隣接する輝度サンプルをダウンサンプリングするために使用される手順の全部または一部が、ALWIPモードで隣接するサンプルをダウンサンプリングするために使用され得ることを提案する。
a. 代替的には、ALWIPモードで隣接する輝度サンプルをダウンサンプリングするために使用される手順の全部または一部が、CCLMモードで隣接するサンプルをダウンサンプリングするために使用されてもよい。
b. ダウンサンプリング手順は、CCLMプロセスおよびALWIPプロセスで使用されるときに、異なるパラメータ/引数で呼び出されてもよい。
c. 一例において、CCLMプロセスにおけるダウンサンプリング方法(隣接する輝度位置の選択、ダウンサンプリングフィルタなど)は、ALWIPプロセスで利用され得る。
d. 隣接する輝度サンプルをダウンサンプリングするために使用される手順は、少なくともダウンサンプリング位置の選択、ダウンサンプリングフィルタ、丸め、クリッピング動作を含む。
20. ALWIPモードでコーディングされたブロックは、RSTまたは/および二次変換または/および回転変換または/および非分離二次変換(NSST)を適用できないことを提案する。
a. 一例において、そのような制約が適用され得るかどうかは、例えば、(15)に記載される条件と同じように、ブロックの寸法情報に依存し得る。
b. 代替的には、RSTまたは/および二次変換または/および回転変換または/およびNSSTが適用されるときに、ALWIPモードは許可されなくてもよい。
c. 代替的には、ALWIPモードでコーディングされたブロックは、RSTまたは/および二次変換または/および回転変換または/および非分離二次変換(NSST)を適用してもよい。
i. 一例では、変換行列の選択は、ALWIPイントラ予測モードに依存してもよい。
ii. 一例では、変換行列の選択は、ALWIPイントラ予測モードから変換される通常のイントラ予測モードに依存してもよい。
iii. 一例では、変換行列の選択は、ALWIPイントラ予測モードから変換される通常のイントラ予測モードの分類に依存してもよい。
21. ALWIPモードでコーディングされたブロックは、ブロックベースのDPCM(BDPCM)または残差RDPCMを適用できないことを提案する。
a. 代替的には、BDPCMまたはRDPCMが適用されるときに、ALWIPモードは許可されなくてもよい。
22. ALWIPモードでコーディングされたブロックは変換としてDCT‐IIのみを使用してもよいことを提案する。
a. 一例では、変換行列インデックスのシグナリングは常にスキップされる。
b. 代替的には、ALWIPモードでコーディングされたブロックに使用される変換は、明示的にシグナリングされるのではなく、暗黙的に導出されてもよいことが提案される。例えば、変換は、JVET-M0303で提案された方式に合わせて選択されてもよい。
c. 代替的には、ALWIPモードでコーディングされたブロックは変換スキップのみを使用してもよいことを提案する。
i. 代替的には、ALWIPが使用されるときに、変換スキップの使用を示す信号はスキップされる。
d. 一例では、ALWIPモード情報(有効/無効、予測モードインデックスなど)は、変換マトリクスの指示後に条件付きでシグナリングされてもよい。
i. 一例では、所与の変換マトリクス(例えば、変換スキップまたはDCT-II)に対して、ALWIPモード情報の指示は、シグナリングされてもよい。
ii. 代替的には、さらに、ALWIPモード情報の指示は、いくつかの予め定義された変換行列に対してスキップされてもよい。
23. ALWIPモードでコーディングされたブロックは、選択された変換がモードに依存するときに、ALWIPイントラ予測モードから変換された通常のイントラ予測でコーディングされるとみなされることを提案する。
24. ALWIPモードでは、変換スキップを使用しなくてもよい。
a. 例えば、この場合、変換スキップの使用の指示をさらにシグナリングする必要はない。
b. 代替的には、変換スキップを適用したときに、ALWIPモードは許可されなくてもよい。
i. 例えば、この場合、変換スキップを適用したときに、ALWIPモード情報をシグナリングする必要はない。
25. ブロック解除フィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)、フィルタの選択方法および/またはサンプルをフィルタするかどうかは、ALWIPの使用により判定されてもよい。
26. ALWIPモードでは、フィルタリングされていない隣接するサンプルを使用してもよい。
a. 代替的には、フィルタリングされた隣接するサンプルがALWIPモードで使用されてもよい。
b. 一例では、フィルタリングされた隣接するサンプルをダウンサンプリングのために使用してもよく、フィルタリングされていない隣接するサンプルをアップサンプリングのために使用してもよい。
c. 一例では、フィルタリングされていない隣接するサンプルをダウンサンプリングのために使用してもよく、フィルタリングされた隣接するサンプルをアップサンプリングのために使用してもよい。
d. 一例では、フィルタリングされた左の隣接するサンプルをアップサンプリングのために使用してもよく、フィルタリングされていない隣接するサンプルをアップサンプリングのために使用してもよい。
e. 一例では、フィルタリングされていない左の隣接するサンプルをアップサンプリングのために使用してもよく、フィルタリングされた上の隣接するサンプルをアップサンプリングのために使用してもよい。
f. 一例では、フィルタリングされた隣接するサンプルを使用するか、フィルタリングされていない隣接サンプルを使用するかは、ALWIPモードに依存してもよい。
i. 一例において、ALWIPモードは、従来のイントラ予測モードに変換されてもよく、フィルタリングされた隣接するサンプルを使用するか、フィルタリングされていない隣接サンプルを使用するかは、変換された従来のイントラ予測モードに依存してもよい。例えば、このような決定は、従来のイントラ予測モードと同じである。
ii. 代替的には、ALWIPモードに対して、フィルタリングされた隣接するサンプルを使用するか、フィルタリングされていない隣接するサンプルを使用するかは、シグナリングされてもよい。
g. 一例では、フィルタリングされたサンプルは、従来のイントラ予測モードと同じように生成されてもよい。
27. どの行列または/およびオフセットベクトルが使用されるかは、再整形(LMCS、色差・スケーリングによる輝度マッピングとしても知られる)情報に依存してもよい。
a. 一例では、再整形がオンおよびオフのときに、異なる行列または/およびオフセットベクトルが使用されてもよい。
b. 一例では、異なるマトリクスまたはオフセットベクトルが、異なる再整形パラメータのために使用されてもよい。
c. 一例では、ALWIPは、常に元のドメインで実行されてもよい。
i. 例えば、隣接するサンプルは、ALWIPにおいて使用される前に、元のドメイン(再整形が適用される場合)にマッピングされる。
28. ALWIPは、再整形が適用されるときに、無効にされてもよい。
a. 代替的には、ALWIPが有効にされるときに、再整形が無効にされてもよい。
b. 一例では、ALWIPは、再整形が適用されるときにHDR(高ダイナミックレンジ)コンテンツに対して無効にされてもよい。
29. ALWIPで使用される行列は、サンプルのビット深度に依存してもよい。
a. 代替的には、さらに、ALWIPにおいて使用されるオフセット値は、サンプルのビット深度に依存してもよい。
b. 代替的には、行列パラメータおよびオフセット値は、Nビットサンプル(M<=N)に対してMビット精度で記憶することができ、例えば、行列パラメータおよびオフセット値は、10ビットサンプルに対して8ビット精度で記憶することができる。
c. サンプルのビット深度は、輝度などの色コンポーネントのための入力アレイのビット深度であってもよい。
d. サンプルビット深度は、輝度などの色コンポーネントのための内部アレイ/再構成されたサンプルのビット深度であってもよい。
30. 指定されたブロックサイズに対する行列パラメータおよび/またはオフセット値は、他のブロックサイズに対する行列パラメータおよび/またはオフセット値から導出されてもよい。
31. 一例では、8×8ブロックの16×8行列は、4×4ブロックの16×4行列から導出され得る。
32. ALWIPによって生成された予測は、さらに使用される予測信号を取得するために処理される中間信号として扱われてもよいことを提案する。
a. 一例では、位置依存イントラ予測組み合わせ(PDPC)は、ALWIPによって生成された予測に適用され、さらに使用される予測信号を生成してもよい。
i. 一例では、PDPCは、ブロックがPlanarまたはDCなどの特定の通常のイントラ予測モードでコーディングされるのと同様にALWIPコーディングされたブロックに対して行われる。
ii. 一例では、PDPCは、ALWIPイントラ予測モードから変換される通常イントラ予測モードでコーディングされるブロックと同様にALWIPコーディングされたブロックに対して行われる。
iii. 一例では、PDPCは、条件付きでALWIPコーディングされたブロックに適用される。
例えば、PDCPが、ALWIPイントラ予測モードから変換された通常のイントラ予測モードに適用されたときにのみ、PDPCは、ALWIP符号化ブロックに適用される。
b. 一例では、ALWIPによって生成された境界サンプル予測は、隣接するサンプルでフィルタリングされて、さらに使用される予測信号を生成してもよい。
i. 一例では、境界サンプル上のフィルタリングは、ブロックがPlanarまたはDCなどの特定の通常のイントラ予測モードでコーディングされるのと同様にALWIPコーディングされたブロックに対して行われる。
ii. 一例では、境界サンプル上のフィルタリングは、ALWIPイントラ予測モードから変換される通常イントラ予測モードでコーディングされるブロックと同様にALWIPコーディングされたブロックに対して行われる。
iii. 一例では、境界サンプル上のフィルタリングは、条件付きでALWIPコーディングされたブロックに適用される。
1) 例えば、境界サンプル上のフィルタリングが、ALWIPイントラ予測モードから変換された通常のイントラ予測モードに適用されるときにのみ、境界サンプル上のフィルタリングがALWIPコーディングされたブロックに適用される。
33. 双線形補間フィルタ以外の補間フィルタをALWIPのアップサンプリングプロセスで使用できることを提案する。
a. 一例では、4tap補間フィルタは、ALWIPのアップサンプリングプロセスにおいて使用されてもよい。
i. 例えば、色差コンポーネントの動き補償を行うために使用されるVVCにおける4tap補間フィルタは、ALWIPのアップサンプリングプロセスにおいて使用されてもよい。
ii. 例えば、angularイントラ予測を行うために使用されるVVCにおける4tap補間フィルタは、ALWIPのアップサンプリングプロセスにおいて使用されてもよい。
iii. 例えば、輝度コンポーネントの動き補償を行うために使用されるVVCにおける8tap補間フィルタは、ALWIPのアップサンプリングプロセスにおいて使用されてもよい。
34. ALWIPモードでコーディングされたブロック内のサンプルは、異なる方法で予測されてもよい。
a. 一例では、W*Hブロックに対して、その中のsW*sH サブブロックの予測は、それにsW*sH ALWIPを適用することによって、生成されてもよい。
i. 一例では、W*Hブロックに対して、その左上のW/2*H/2ブロックの予測は、それにW/2*H/2 ALWIPを適用することによって生成されてもよい。
ii. 一例では、W*Hブロックに対して、その左のW/2*Hブロックの予測は、それにW/2*H ALWIPを適用することによって生成されてもよい。
iii. 一例では、W*Hブロックに対して、その上のW*H/2ブロックの予測は、それにW*H/2 ALWIPを適用することによって生成されてもよい。
iv. 一例では、sW*sHサブブロックは、利用可能な左または/および上の隣接するサンプルを有してもよい。
b. 一例では、サブブロックの位置を決定する方法は、ブロックの寸法に依存してもよい。
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. さらに、一例では、残りのサンプル(例えば、サンプルがsW*sHサブブロックに属さない)の予測は、W*H ALWIPを適用することによって生成されてもよい。
i. 代替的には、残りのサンプルの予測は、従来のイントラ予測を適用する(例えば、イントラモードとして変換されたイントラ予測モードを使用する)ことによって生成されてもよい。
ii. さらに、sW*sHサブブロック内のサンプルについて計算をスキップしてもよい。
35. ALWIPモードでコーディングされたブロック内のサンプルは、サブブロック(例えば、サイズsW*sH)レベルで予測されてもよい。
a. 一例では、sW*sH ALWIPは、隣接する再構成されたサンプル(例えば、境界サブブロックについて)または隣接する予測サンプル(例えば、内部サブブロックについて)を使用して各サブブロックに適用されてもよい。
b. 一例では、サブブロックは、ラスタ走査順序で予測されてもよい。
c. 一例では、サブブロックは、ジグザグ順序で予測されてもよい。
d. 一例では、サブブロックの幅(高さ)は、sWMax(sHMax)以下であってもよい。
e. 一例では、幅または高さのいずれか、または幅および高さの両方が、閾値Lよりも大きい(または等しい)ブロックであるときに、そのブロックは、複数のサブブロックに分裂されてもよい。
f. 閾値Lは、SPS/PPS/ピクチャ/スライス/タイルグループ/タイルレベルで予め定義されていてもよいし、シグナリングされてもよい。
i. 代替的には、閾値は、ブロックサイズ、ピクチャタイプ、時間層インデックスなどの特定のコーディングされた情報に依存してもよい。
36. 隣接するサンプル(隣接または非隣接)が、ALWIPにおいて使用される前にフィルタリングされることを提案する。
a. 代替的には、隣接するサンプルは、ALWIPにおいて使用される前にフィルタリングされない。
b. 代替的には、隣接するサンプルは、ALWIPにおいて使用される前に条件付きでフィルタリングされる。
i. 例えば、隣接するサンプルは、ALWIPイントラ予測モードが1つ以上の特定の値に等しいときにのみ、ALWIPにおいて使用される前にフィルタリングされる。
37. ALWIPフラグをコーディングするときに、算術コーディングにおけるALWIPフラグのコンテキストを導出するための方法は、現在のブロックのすべての寸法に対して同じであることを提案する。
a. 一例では、算術コーディングにおけるALWIPフラグのコンテキストを導出するための方法は、(Abs(Log2(cbWidth)-Log2(cbHeight)))が1より大きいときとそうでないときで同じであり、CbWidthとCbHeightは、それぞれ現在のブロックの幅と高さである。
b. 一例では、算術コーディングにおけるALWIPフラグのコンテキストの導出は、隣接するブロックのALWIP情報および/または隣接するブロックの可用性にのみ依存する。
i. 一例では、複数の隣接するブロックのALWIP情報(例えば、intra_lwip_flag)および/または隣接するブロックの可用性が直接使用される。
例えば、左および上の隣接するブロックのALWIPフラグおよび/または左の隣接するブロックの可用性は、算術コーディングにおけるALWIPフラグのコンテキストを導出するために使用される。
表1に例を示す。
代替的には、コンテキストインデックスオフセットctxInc=(condL&&avalableL)+(condA&avalableA)+ctxSetIdx*3である。
表1-左および上の構文要素を使用したctxIncの仕様
【表11】
ii. 一例では、隣接するブロックのALWIP情報(例えば、intra_lwip_flag)の1つが算術コーディングにおけるALWIPフラグのコンテキストを導出するために使用され、隣接するブロックは左の隣接するブロックであってもよい。表2に例を示す。代替的には、さらに、コンテキストインデックスオフセットは、ctxInc=(condL&&avalableL)+ctxSetIdx*3である。
表2-左および上の構文要素を使用したctxIncの仕様
【表12】
iii. 一例では、隣接するブロックのALWIP情報(例えば、intra_lwip_flag)の1つが算術コーディングにおけるALWIPフラグのコンテキストを導出するために使用され、隣接するブロックは上の隣接するブロックであってもよい。表3に例を示す。代替的には、さらに、コンテキストインデックスオフセットは、ctxInc=(condA&&availableA)+ctxSetIdx*3である。
表3-左および上の構文要素を使用したctxIncの仕様
【表13】
c. 一例では、1つの固定コンテキストが、算術コーディングにおいて、ALWIPフラグをコーディングするために使用される。
d. 一例では、ALWIPフラグは、算術コーディングにおいてバイパス(bypass)コーディングされる。
e. 代替的には、K個のコンテキストが算術コーディングにおいてALWIPフラグをコーディングするために使用されてもよい。使用されるコンテキストは、ブロックの寸法(例えば、Wで示される幅およびHで示される高さ)に依存してもよい。
i. 一例では、Kは、2に等しい。
38. W>N*HまたはH>N*W(例えば、N=2)であるときに、第1のコンテキストが使用され、そうでなければ、第2のコンテキストが使用される。N(N>=0)コンテキストが算術コーディングにおいてALWIPフラグ(例えば、intra_lwip_flag)をコーディングするために使用され得ることを提案する。
a. 一例では、Nは、3に等しい。ALWIPフラグおよび/または2つの隣接するブロックおよび非隣接するブロックの可用性は、算術コーディングにおけるALWIPフラグのために使用されるコンテキストを導出するために使用されてもよい。
i. 一例において、2つの隣接するブロックは、上方のブロック(例えば、図10のB1)および左のブロック(例えば、図10のA1)を含んでもよい。
ii. 一例において、2つの隣接するブロックは、上方のブロックおよび左下のブロック(例えば、図10のA2)を含んでもよい。
iii. 一例において、2つの隣接するブロックは、上方のブロックおよび右上のブロック(例えば、図10のB2)を含んでもよい。
iv. 一例において、2つの隣接するブロックは、右上のブロック(例えば、図10のB2)および左のブロック(例えば、図10のA1)を含んでもよい。
v. 一例において、2つの隣接するブロックは、右上のブロック(例えば、図10のB2)および左下のブロック(例えば、図10のA2)を含んでもよい。
vi. 一例において、2つの隣接するブロックは、左のブロック(例えば、図10のA1)および左下のブロック(例えば、図10のA2)を含んでもよい。
vii. 一例では、隣接するブロックは、図10とは異なるように定義されてもよく、一例は、図16に記載されている。2つの隣接するブロックは、{右上、上、左上、左、左下}ブロックのうちの任意の2つを含んでもよい。例えば、2つの隣接するブロックは、{B0,B1,B2,A0,A1}内のブロックのうちの任意の2つを含んでもよい。
b. 一例では、Nは、2に等しい。ALWIPフラグおよび/または1つの隣接するブロックおよび非隣接するブロックの可用性は、算術コーディングにおけるALWIPフラグのために使用されるコンテキストを導出するために使用されてもよい。
i. 一例では、隣接するブロックは、{右上、左上、左上、左下}のいずれかであってもよい。隣接するブロックの一例が、図10に記載されている。
ii. 一例では、隣接するブロックは、{右上、上、左上、左、左下}ブロックのいずれかであってもよい。隣接するブロックの一例が、図16に記載されている。
c. 一例では、1つの固定コンテキストが、算術コーディングにおけるALWIPフラグをコーディングするために使用されてもよい。
d. 一例では、ALWIPフラグは、算術コーディングにおいてバイパスコーディングされてもよい。図16は、隣接するブロックの一例を示す。
39. 低減された境界サンプルは、アップサンプリング境界サンプルを計算せずに生成され得ることを提案した。
a. 一例では、アップサンプリング境界位置に位置する基準サンプルは、予測アップサンプリングプロセスのために直接使用される。
i. 一例では、アップサンプリング境界サンプルは、複数の隣接する基準サンプルを平均することによっては計算されなくてもよい。
b. 一例では、低減された境界サンプルは、基準サンプルおよびダウンスケーリングファクタから直接計算されてもよい。
i. 一例では、ダウンスケーリング係数は、変換ブロックサイズおよびダウンサンプリングされた境界サイズによって計算されてもよい。
40. 一例では、サンプルは、ALWIPにおけるアップサンプリングプロセスにおいて、異なるフィルタリング段階において異なる精度であってもよい。「サンプル」とは、アップサンプリングの前または後の予測サンプルまたは中間サンプルを指してもよい。
a. 一例では、サンプルは、第1のフィルタリング段階で水平方向に第1の寸法に沿ってアップサンプリングされ、次いで、サンプルは、ALWIPにおけるアップサンプリングプロセスにおける第2のフィルタリング段階で垂直方向に第2の寸法に沿ってアップサンプリングされる。
i. 代替的には、サンプルは、第1のフィルタリング段階で垂直方向に第1の寸法に沿ってアップサンプリングされ、次いで、サンプルは、ALWIPにおけるアップサンプリングプロセスにおける第2のフィルタリング段階で水平方向に第2の寸法に沿ってアップサンプリングされる。
b. 一例では、第1のフィルタリング段階における右シフトまたは除算を伴わない出力アップサンプリング結果は、第2のフィルタリング段階への入力サンプルとして使用されてもよい。
i. 一例では、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、Shift1によって右シフトされるか、またはDem1によって除算されて、最終的なアップサンプリングの結果を導出してもよい。
ii. 一例では、第1のフィルタリング段階における出力アップサンプリングフィルタリング結果は、Shift2によって右シフトされるか、またはDem2によって除算されて、最終的なアップサンプリングの結果を導出してもよい。
1) 一例では、Shift1=2×Shift2であり、Dem1=Dem2×Dem2である。
iii. 一例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、左シフトShift3されるか、またはDem3によって乗算されてもよい。
1) 一例では、Shift3=Shift1であり、Dem3=Dem2である。
c. 一例において、第1のフィルタリング段階における出力アップサンプリング結果は、第2のフィルタリング段階への入力サンプルとして使用される前に、Shift1によって右シフトされるか、またはDem1によって除算されてもよい。
i. 一例では、第2のフィルタリング段階における出力アップサンプリングのフィルタリング結果は、Shift2によって右シフトされるか、またはDem2によって除算されて、最終的なアップサンプリング結果を導出してもよく、Shift2は、Shift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem2は、Dem1と等しくなくてもよく、例えば、Dem2>Dem1である。
ii. 一例において、第1のフィルタリング段階における出力アップサンプリングのフィルタリング結果は、Shift3によって右シフトされるか、またはDem3によって除算されて、最終的なアップサンプリング結果を導出することができ、Shift3は、Shift1に等しくてもよく、Dem3は、Dem1に等しくなくてもよい。
1) 一例では、Shift3=Shift1+Shift2である。
iii. 一例において、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、左シフトされるか、またはファクタによって乗算されてもよい。
d. 一例において、第1のフィルタリング段階における出力アップサンプリング結果は、第2のフィルタリング段階への入力サンプルとして使用される前に、Shift1によって左シフトされるか、またはDem1によって乗算されてもよい。
i. 一例において、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、右シフトされるか、またはファクタによって除算されて、最終的なアップサンプリングされた結果を導出してもよい。
ii. 一例において、第1のフィルタリング段階における出力アップサンプリングフィルタリング結果は、右シフトされるか、またはファクタによって除算されて、最終的なアップサンプリングされた結果を導出してもよい。
iii. 一例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、Shift2によって左シフトされるか、またはDem2によって乗算され、Shift2は、Shift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem1は、Dem2と等しくなくてもよく、例えば、Dem2>Dem1である。
e. 一例では、第1のフィルタリング段階に入力されるサンプルは、第1のフィルタリング段階への入力サンプルとして使用される前に、Shift1によって左シフトされるか、またはDem1によって乗算されてもよい。
i. 一例において、第2のフィルタリング段階における出力アップサンプリングフィルタリング結果は、右シフトされるか、またはファクタによって除算されて、最終的なアップサンプリングされた結果を導出してもよい。
ii. 一例において、第1のフィルタリング段階における出力アップサンプリングフィルタリング結果は、右シフトされるか、またはファクタによって除算されて、最終的なアップサンプリングされた結果を導出してもよい。
iii. 一例では、第2のフィルタリング段階に入力されるが、第1のフィルタリング段階における出力アップサンプリング結果ではないサンプルは、第2のフィルタリング段階に入力される前に、Shift2によって左シフトされるか、またはDem2によって乗算され、Shift2は、Shift1と等しくなくてもよく、例えば、Shift2>Shift1であり、Dem2は、Dem1と等しくなくてもよく、例えば、Dem2>Dem1である。
41. ALWIPにおけるアップサンプリングが、垂直アップサンプリングと水平アップサンプリングの両方が必要なときに、固定順序で実行され得ることを提案する。
a. 一例では、水平アップサンプリングが最初に実行され、垂直アップサンプリングが第2に行われてもよい。
b. 一例では、垂直アップサンプリングが最初に実行され、水平アップサンプリングが第2に行われてもよい。
42. 一例では、アップサンプリング前のALWIPにおける予測サンプルは、ブロック寸法に従って転置されてもよい。
a. 一例において、W*Hブロックは、最初にH*Wブロックに転置され、その後、アップサンプリングが適用されてもよい。
b. 代替的には、さらに、アップサンプリングプロセスの後に、アップサンプリングされたサンプルは、逆のやり方で転置されてもよい。
43. 双線形補間フィルタの代わりの代替的な補間フィルタがALWIPにおけるアップサンプリングで使用され得ることを提案する。
a. 一例では、(4-tap、6-tap、8-tapなど)ガウスフィルタが使用されてもよい。
b. 一例では、(4-tap、6-tap、8-tapなど)立方フィルタが使用されてもよい。
c. 一例では、色差サンプルのための動き補償に使用される補間フィルタが使用されてもよい。
d. 一例では、輝度サンプルのための動補償に使用される補間フィルタ(6tap、8tapなど)が使用されてもよい。
e. どの補間フィルタが使用されるかは、ブロック寸法に依存してもよい。
f. どの補間フィルタが使用されるかは、アップサンプリング比に依存してもよい。
g. どの補間フィルタを使用するかは、ALWIPの予測モードによって依存してもよい。
h. どの補間フィルタが使用されるかは、アップサンプリングに利用可能なサンプル数に依存してもよい。
i. 例えば、1つの行(または列)に4つの利用可能なサンプル(隣接する基準サンプルを除く)があるときに、4tap補間フィルタが使用されてもよい。
ii. 例えば、1つの行(または列)に8つの利用可能なサンプル(隣接する基準サンプルを除く)がある場合、4tapまたは8tap補間フィルタが使用されてもよい。
5. 実施形態
新たに追加された部分は太字のイタリック体で強調表示され(以下、いくつかの箇所では、(太字イタリック開始)~(太字イタリック終了)でこの範囲を示す)、削除された部分は下線の付いたイタリック体で強調表示される(以下、いくつかの箇所では、(下線イタリック開始)~(下線イタリック終了)でこの範囲を示す))。
5.1 一例
ALWIPフラグをコーディングするために3つのコンテキストが使用される。
表9-15-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【表14】
5.2 一例
ALWIPフラグをコーディングするために1つの固定コンテキストが使用される。
表9-15-コンテキストコーディングされたビンを有する構文要素へのctxIncの割り当て
【表15】
5.3 一例
境界低減処理を1ステップで実行する。
以下の実施形態は、採用されたJVET-N0220-proposal-text-CE3-4.1_v2に基づく。
8.4.4.2.X1 アフィン線形加重イントラサンプル予測
(太字イタリック開始)8.4.4.2.X3 境界低減プロセスの仕様(太字イタリック終了)
このプロセスへの入力は、以下のようである。
- 変換ブロックサイズを指定する変数nTbH
- x=0..nTbX-1の基準サンプルrefX[x]
- ダウンサンプリングした境界サイズを指定する変数boundySize
- アップサンプリングに中間境界サンプルが必要かどうかを指定するフラグneedUpsBdryX
- アップサンプリングのための境界サイズを指定する変数upsBdrySize
このプロセスの出力は、x=0..boundarySize-1の低減された境界サンプルredX[x]およびx=0..upsBdrySize-1のアップサンプリング境界サンプルupsBdryX[x]である。
x=0..upsBdrySize-1のアップサンプリング境界サンプルupsBdryX[x]は、以下のように導出される。
- needUpsBdryXがTRUEに等しく、upsBdrySizeがnTbXより小さい場合、以下を適用する。
【数93】
- そうでなければ(upsBdrySizeはnTbXに等しい)、upsBdryX[x]はrefX[x]に等しくセットされる。
x=0..boundarySize-1の低減された境界サンプルredX[x]は、以下のように導出される。
- boundarySizeが(下線イタリック開始)upsBdrySize(下線イタリック終了) nTbXより小さい場合、以下を適用する。
【数94】
式8-X33における項(下線イタリック開始)upsBdryX(下線イタリック終了)
は削除される。
- そうでなければ(boundarySizeは(下線イタリック開始)upsBdrySize(下線イタリック終了)
nTbXと等しい)、redX[x]は以下と等しくセットされる。
【数95】
5.4 一例
一例では、サンプルは、ALWIPにおけるアップサンプリングプロセスにおいて、異なるフィルタリング段階において異なる精度で予測サンプルを導出する。
以下の実施形態は、採用されたJVET-N0217-proposal-text-CE3-4.1_v2に基づく。
(太字イタリック開始)8.4.4.2.X4 予測アップサンプリングプロセスの仕様(太字イタリック終了
このプロセスへの入力は、以下のようである。
- 入力ブロック幅を指定する変数predW
- 入力ブロック高さを指定する変数predH
- x=0..predW-1、y=0..predH-1のアフィン線形加重サンプルpredLwip[x][y]
- 変換ブロック幅を指定する変数nTbW
- 変換ブロック高さを指定する変数nTbH
- アップサンプリング境界幅を指定する変数upsBdryW
- アップサンプリング境界高さを指定する変数upsBdryH
- x=0..upsBdryW-1の上部の境界サンプルupsBdryT[x]
- x=0..upsBdryH-1の左のアップサンプリング境界サンプルupsBdryL[x]
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1の予測されたサンプルpredSamples[x][y]である。
まばらな予測されたサンプルpredSamples[m][n]は、x=0..predW-1、y=0..predH-1のpredLwip[x][y]から、以下のように導出される。
【数96】
x=0..upsBdryW-1の上部の境界サンプルupsBdryTは、以下のようにpredSamples[m][-1]に割り当てられる。
【数97】
y=0..upsBdryH-1のupsBdryL[y]の左の境界サンプルは、以下のようにpredSamples[-1][n]に割り当てられる。
【数98】
x=0..nTbW-1,y=0..nTbH-1の予測されたサンプルpredSamples[x][y]は、以下のように導出される。
- nTbHがnTbWより大きい場合、以下の順序のステップが適用される。
1. upHorが1より大きい場合、m=0..predW-1、n=1..predHのすべてのスパース位置(xHor,yHor)=(m*upHor-1,n*upVer-1)のための水平アップサンプリングは、dX=1..upHor(下線イタリック開始)-1(下線イタリック終了)
を用いて適用される。
【数99】
2. m=0..nTbW-1、n=0..predH-1のすべてのスパース位置(xVer,yVer)=(m,n*upVer-1)のための垂直アップサンプリングは、以下のようにdY=1..upVer(下線イタリック開始)-1(下線イタリック終了)を用いて適用される。(太字イタリック開始)yVerが-1に等しい場合、(太字イタリック終了)
【数100】
【数101】
- そうでなければ、以下の順序のステップを適用する。
1. upVerが1より大きいときに、m=1..predW、n=1..predH-1のすべてのスパース位置(xVer,yVer)=(m*upHor-1,n*upVer-1)のための垂直アップサンプリングは、
(下線イタリック開始)(8-X40)(下線イタリック終了)(太字イタリック開始)(8-X41)(太字イタリック終了)
で指定されたdX=1..upVer-1を用いて適用される。
【数102】
2. m=0..predW-1、n=0..nTbH-1のすべてのスパース位置(xHor,yHor)=(m*upHor-1,n)のための水平アップサンプリングは、(下線イタリック開始)(8-X39)で(下線イタリック終了)(太字イタリック開始)以下のように(太字イタリック終了)指定されたdX=1..upHor-1を用いて適用される。
(太字イタリック開始)xHorが-1に等しい場合、(太字イタリック終了)
【数103】
【数104】
箇条書きの40に対応する例
ブロック寸法をW×Hとする。x=Sx,Sx+Kx,Sx+2Kx,Sx+3Kx,...,y=Sy,Sy+Ky,Sy+2Ky,Sy+3Ky...のサンプルP(x,y)をアップサンプリングプロセスに入力し、x=0,1,2...W-1,y=0,1,2,...H-1のアップサンプリングされたサンプルS(x,y)を導出する。KxとKyはそれぞれ水平方向と垂直方向に沿ったステップサイズである。(Sx,Sy)は開始位置である。
1-Dアップサンプリングが第1の段階で水平方向に行われ、1-Dアップサンプリングが第2の段階で垂直方向に行われるとする。
一例では、右シフトを伴わない第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は2tapフィルタの係数であり、F1+F2=2である。
次いで、第2の段階の出力結果を以下のように導出されてもよい。
S′(Sx+Kx-1,Sy+1)=F3*S′(Sx+Kx-1,Sy)+F4*S′(Sx+Kx-1,Sy+Ky)
F3、F4は2tapフィルタの係数であり、F3+F4=2である。
その後、最終的にアップサンプリングされたサンプル値は、以下のように導出されてもよい。
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)
【0110】
上述の実施例は、例えば、ビデオ符号化器および/または復号器で実装され得る以下に記載される方法、例えば、方法1100~1400および2100~2300のコンテキストにおいて組み込まれてもよい。
【0111】
図11は、ビデオ処理のための例示的な方法のフローチャートを示す。この方法1100は、ステップ1110において、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP)モードを使用してコーディングされることを判定することを含む。
【0112】
方法1100は、ステップ1120において、その判定に基づいて、非ALWIPイントラモードのためのMPMリストの少なくとも一部分に基づいて、ALWIPモードのための最確モード(MPM)リストの少なくとも一部分を構成することを含む。
【0113】
方法1100は、ステップ1130において、ALWIPモードのためのMPMリストに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することを含む。
【0114】
いくつかの実施形態では、ALWIPモードのMPMリストのサイズは、非ALWIPイントラモードのためのMPMリストのサイズと同一である。一例では、ALWIPモードのMPMリストのサイズは6である。
【0115】
いくつかの実施形態では、方法1100は、ALWIPモードのためのMPMリストにデフォルトモードを挿入するステップをさらに含む。一例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部分の前に挿入される。別の例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部分の後に挿入される。一例では、デフォルトモードは、非ALWIPイントラモードのためのMPMリストに基づくALWIPモードのためのMPMリストの一部分とインターリーブ方式で挿入される。
【0116】
いくつかの実施態様では、ALWIPモードのためのMPMリストおよび非ALWIPイントラモードのためのMPMリストを構成することは、1つ以上の隣接するブロックに基づく。
【0117】
いくつかの実施態様では、ALWIPモードのためのMPMリストおよび非ALWIPイントラモードのためのMPMリストを構成することは、現在のビデオブロックの高さまたは幅に基づく。
【0118】
いくつかの実施形態では、ALWIPモードのためのMPMリストを構成することは、非ALWIPイントラモードのためのMPMリストを構成するために使用される第2のセットのパラメータとは異なる第1のセットのパラメータに基づく。
【0119】
いくつかの実施形態では、本方法1100は、現在のビデオブロックの隣接するブロックがALWIPモードでコーディングされたことを判定し、非ALWIPイントラモードのためのMPMリストを構成する際に、隣接するブロックを利用不可と指定するステップをさらに含む。
【0120】
いくつかの実施形態では、本方法1100は、現在のビデオブロックの隣接するブロックが非ALWIPイントラモードでコーディングされたことを判定し、ALWIPモードのためのMPMリストを構成する際に、隣接するブロックを利用不可と指定するステップをさらに含む。
【0121】
いくつかの実施態様では、非ALWIPイントラモードは、通常イントラモード、複数の基準ライン(MRL)イントラ予測モードまたはイントラサブパーティション(ISP)ツールに基づく。
【0122】
図12は、ビデオ処理のための例示的な方法のフローチャートを示す。この方法1200は、ステップ1210において、現在のビデオブロックの輝度コンポーネントが、アフィン線形加重イントラ予測(ALWIP)モードを使用してコーディングされることを判定することを含む。
【0123】
方法1200は、ステップ1220において、その判定に基づいて、色差イントラモードを推論することを含む。
【0124】
方法1200は、ステップ1230において、色差イントラモードに基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することを含む。
【0125】
いくつかの実施形態では、輝度コンポーネントは、色差コンポーネントの所定の色差サンプルをカバーする。一実施形態では、所定の色差サンプルは、左上サンプルまたは色差コンポーネントの中心サンプルである。
【0126】
いくつかの実施形態では、推論される色差イントラモードは、DMモードである。
【0127】
いくつかの実施形態では、推論される色差イントラモードは、ALWIPモードである。
【0128】
いくつかの実施形態では、ALWIPモードは、現在のビデオブロックの1つ以上の色差コンポーネントに適用される。
【0129】
いくつかの実施形態では、ALWIPモードの異なる行列またはバイアスベクトルは、現在のビデオブロックの異なる色コンポーネントに適用される。一実施形態では、異なる行列またはバイアスベクトルは、CbおよびCrコンポーネントに対して一緒に予め定義される。別の例では、CbおよびCrコンポーネントが連結される。さらに別の例では、CbおよびCrコンポーネントがインターリーブされる。
【0130】
図13は、ビデオ処理のための例示的な方法のフローチャートを示す。この方法1300は、ステップ1310において、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP)モードを使用してコーディングされることを判定することを含む。
【0131】
方法1300は、ステップ1320において、その判定に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することを含む。
【0132】
いくつかの実施形態では、判定は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルグループヘッダ、タイルヘッダ、コーディングツリーユニット(CTU)行、またはCTU領域におけるシグナリングに基づく。
【0133】
いくつかの実施形態では、その判定は、現在のビデオブロックの高さ(H)または幅(W)に基づく。一例では、W>T1またはH>T2である。別の例では、W≧T1またはH≧T2である。さらに別の例では、W<T1またはH<T2である。さらに別の例では、W≦T1またはH≦T2である。さらに別の例では、T1=32およびT2=32である。
【0134】
いくつかの実施形態では、その判定は、現在のビデオブロックの高さ(H)または幅(W)に基づく。一例では、W+H≦Tである。別の例では、W+H≧Tである。さらに別の例では、W×H≦Tである。さらに別の実施例では、W×H≧Tである。さらに別の例では、T=256である。
【0135】
図14は、ビデオ処理のための例示的な方法のフローチャートを示す。この方法1400は、ステップ1410において、現在のビデオブロックが、アフィン線形加重イントラ予測(ALWIP)モードとは異なるコーディングモードを使用してコーディングされることを判定することを含む。
【0136】
方法1400は、ステップ1420において、その判定に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することを含む。
【0137】
いくつかの実施形態では、コーディングモードは、イントラおよびインター予測(CIIP)モードの組み合わせであり、方法1400は、ALWIPモードと通常イントラ予測モードとの間で選択を実行するステップをさらに含む。一例では、選択を実行することは、現在のビデオブロックのビットストリーム表現における明示的な信号に基づく。別の例では、選択を実行することは、所定の規則に基づく。さらに別の例では、所定のルールは、現在のビデオブロックがCIIPモードを使用してコーディングされるときに、常にALWIPモードを選択する。さらに別の例では、所定のルールは、現在のビデオブロックがCIIPモードを使用してコーディングされるときに、常に通常のイントラ予測モードを選択する。
【0138】
いくつかの実施形態では、コーディングモードは、クロスコンポーネント線形モデル(CCLM)予測モードである。一例では、ALWIPモードのためのダウンサンプリング手順は、CCLM予測モードのためのダウンサンプリング手順に基づく。別の例では、ALWIPモードのためのダウンサンプリング手順は、第1のセットのパラメータに基づき、CCLM予測モードのためのダウンサンプリング手順は、第1のセットのパラメータとは異なる第2のセットのパラメータに基づく。さらに別の例では、ALWIPモードまたはCCLM予測モードのためのダウンサンプリング手順は、ダウンサンプリング位置の選択、ダウンサンプリングフィルタの選択、丸め動作またはクリッピング動作のうちの少なくとも1つを含む。
【0139】
いくつかの実施形態では、方法1400は、低減二次変換(RST)、二次変換、回転変換、または非分離二次変換(NSST)のうちの1つ以上を適用するステップをさらに含む。
【0140】
いくつかの実施形態では、方法1400は、ブロックベースの差動パルスコーディング変調(DPCM)または残差DPCMを適用するステップをさらに含む。
【0141】
いくつかの実施形態では、ビデオ処理方法は、現在のビデオブロックの規則に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIP(affine linear weighted intra prediction)モードの使用を示すフラグのコンテキストを判定することと、ALWIPモードに基づいて、現在のビデオブロックの複数のサブブロックを予測することと、その予測に基づいて、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を実行することと、を含む。規則は、アプリオリな技術を使用して暗黙的に指定されてもよいし、コーディングされたビットストリームにおいてシグナリングされてもよい。この方法の他の例および態様は、セクション4の項目37および38にさらに記載されている。
【0142】
いくつかの実施形態では、ビデオ処理のための方法は、現在のビデオブロックがALWIP(affine linear weighted intra prediction)モードを使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて、現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することであって、少なくとも2つのフィルタリングステージの第1のフィルタリングステージにおけるサンプルの第1の精度は、少なくとも2つのフィルタリングステージの第2のフィルタリングステージにおけるサンプルの第2の精度とは異なる、実行することと、を含む。
【0143】
一例では、現在のビデオブロックのサンプルは、予測サンプル、アップサンプリングプロセス前の中間サンプル、またはアップサンプリングプロセス後の中間サンプルである。別の例では、サンプルは、第1のフィルタリング段階で水平方向に第1の寸法でアップサンプリングされ、サンプルは、第2のフィルタリング段階で垂直方向に第2の寸法でアップサンプリングされる。さらに別の例では、サンプルは、第1のフィルタリング段階で垂直方向に第1の寸法でアップサンプリングされ、サンプルは、第2のフィルタリング段階で水平方向に第2の寸法でアップサンプリングされる。
【0144】
一実施形態では、第1のフィルタリング段階の出力は、処理された出力を生成するために右シフトまたは除算され、処理された出力は、第2のフィルタリング段階への入力である。別の例では、第1のフィルタリング段階の出力は、処理された出力を生成するために左シフトまたは乗算され、処理された出力は、第2のフィルタリング段階への入力である。この方法の他の例および態様は、セクション4の項目40にさらに記載されている。
【0145】
セクション4の項目41~43にさらに記載されているように、ビデオ処理方法は、現在のビデオブロックがアフィン線形加重イントラ予測(ALWIP)を使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することであって、アップサンプリングプロセスは、垂直および水平の両方のアップサンプリングが実行される場合に対して固定順に実行される。セクション4の項目41~43にさらに記載されているように、別の方法は、現在のビデオブロックが、アフィン線形加重イントラ予測(ALWIP)モードを使用してコーディングされることを判定することと、現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ALWIPモードに関連するアップサンプリングプロセスにおいて現在のビデオブロックのサンプルに対して少なくとも2つのフィルタリングステージを実行することとであって、この変換は、アップサンプリングプロセスの前に転置動作を実行することを含む、ことと、を含む。
【0146】
上記の方法のさらなる特徴は、セクション4の項目41~43に記載されている。
【0147】
6 開示された技術の例示的な実装
図15は、ビデオ復号器のブロック図である。装置1500は、本明細書に記載される方法のうちの1つ以上を実装するために使用されてもよい。装置1500は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機などで具体化されてもよい。装置1500は、1つ以上のプロセッサ1502、1つ以上のメモリ1504、およびビデオ処理ハードウェア1506を含んでもよい。プロセッサ1502は、本文書に記載される1つ以上の方法(方法1100~1400および2100~2300を含むが、これらに限定されない)を実装するように構成されてもよい。メモリ(複数のメモリ)1504は、本明細書に記載される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用されてもよい。ビデオ処理ハードウェア1506は、ハードウェア回路において、本文書に記載されるいくつかの技術を実装するために使用されてもよい。
【0148】
いくつかの実施形態において、ビデオコーディング方法は、図15に関して記載されるようにハードウェアプラットフォーム上に実装される装置を使用して実装されてもよい。
【0149】
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを有効にする決定または判定を行うことを含む。一例では、ビデオ処理ツールまたはモードが有効にされるときに、符号化器は、ビデオのブロックの処理においてツールまたはモードを使用または実装するが、必ずしもツールまたはモードの使用に基づいて結果として生じるビットストリームを修正しないことがある。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、決定または判定に基づいて有効にされるときに、ビデオ処理ツールまたはモードを使用する。別の例では、ビデオ処理ツールまたはモードが有効にされるときに、復号器は、ビットストリームがビデオ処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定または判定に基づいて有効にされたビデオ処理ツールまたはモードを使用して実行される。
【0150】
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを無効にする決定または判定を行うことを含む。一例では、ビデオ処理ツールまたはモードが無効にされるときに、符号化器は、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツールまたはモードを使用しない。別の例では、ビデオ処理ツールまたはモードが無効にされるときに、復号器は、ビットストリームが、決定または判定に基づいて無効にされたビデオ処理ツールまたはモードを使用して修正されていないことを知って、ビットストリームを処理する。
【0151】
図17は、本開示の技術を利用することができる例示的なビデオコーディングシステム100を示すブロック図である。図17に示すように、ビデオコーディングシステム100は、ソースデバイス110および宛先デバイス120を含んでもよい。ソースデバイス110は、ビデオ符号化デバイスと称され得る符号化されたビデオデータを生成する。宛先デバイス120は、ビデオ復号デバイスと称され得るソースデバイス110によって生成された符号化されたビデオデータを復号してもよい。ソースデバイス110は、ビデオソース112、ビデオ符号化器114、および入力/出力(I/O)インターフェース116を含んでもよい。
【0152】
ビデオソース112は、ビデオ捕捉デバイスなどのソース、ビデオコンテンツプロバイダからビデオデータを受信するためのインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組み合わせを含んでもよい。ビデオデータは、1つ以上のピクチャを含んでもよい。ビデオ符号化器114は、ビデオソース112からのビデオデータを符号化してビットストリームを生成する。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連するデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連するデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。入出力インターフェース116は、変調器/復調器(モデム)および/または送信機を含んでもよい。符号化されたビデオデータは、ネットワーク130aを通してI/Oインターフェース116を介して宛先デバイス120に直接送信されてもよい。符号化されたビデオデータはまた、宛先デバイス120によるアクセスのために記憶媒体/サーバ130b上に記憶されてもよい。
【0153】
宛先デバイス120は、I/Oインターフェース126、ビデオ復号器124、およびディスプレイデバイス122を含んでもよい。
【0154】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。入出力インターフェース126は、ソースデバイス110または記憶媒体/サーバ130bから符号化されたビデオデータを取得してもよい。ビデオ復号器124は、符号化されたビデオデータを復号してもよい。ディスプレイデバイス122は、デコードされたビデオデータをユーザに表示してもよい。ディスプレイデバイス122は、宛先デバイス120と一体化されてもよく、または外部ディスプレイデバイスとインターフェースするように構成されている宛先デバイス120の外部にあってもよい。
【0155】
ビデオ符号化器114およびビデオ復号器124は、HEVC(High Efficiency Video Coding)標準、VVM(Versatile Video Coding)標準、および他の現在および/または更なる標準などのビデオ圧縮標準に従って動作してもよい。
【0156】
図18は、図17に示すシステム100内のビデオ符号化器114であってもよいビデオ符号化器200の一例を示すブロック図である。
【0157】
ビデオ符号化器200は、本開示の技術のいずれかまたはすべてを実行するように構成されてもよい。図18の例では、ビデオ符号化器200は、複数の機能コンポーネントを含む。本開示に記載される技術は、ビデオ符号化器200の様々なコンポーネント間で共有され得る。いくつかの例において、プロセッサは、本開示に記載される技術のいずれかまたはすべてを実行するように構成されてもよい。
【0158】
ビデオ符号化器200の機能コンポーネントは、パーティションユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、およびイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214と、を含んでもよい。
【0159】
他の例では、ビデオ符号化器200は、より多くの、より少ない、または異なる機能コンポーネントを含んでもよい。一例では、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの基準ピクチャが現在のビデオブロックが位置するピクチャであるIBCモードで予測を実行してもよい。
【0160】
さらに、動き推定ユニット204や動き補償ユニット205などのいくつかのコンポーネントは、高度に一体化されてもよいが、説明のために図18の例では別々に表されている。
【0161】
パーティションユニット201は、ピクチャを1つ以上のビデオブロックにパーティショニングしてもよい。ビデオ符号化器200およびビデオ復号器300は、様々なビデオブロックサイズをサポートしてもよい。
【0162】
モード選択ユニット203は、例えばエラー結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターのものを選択し、残差ブロックデータを生成するために残差生成ユニット207に、また、基準ピクチャとして使用するために符号化ブロックを再構成するために再構成ユニット212に、結果として生じるイントラまたはインターコーディングされたブロックを提供する。いくつかの例では、モード選択ユニット203は、予測がインター予測信号およびイントラ予測信号に基づく、イントラおよびインター予測の組み合わせ(CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルに対する解像度(例えば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
【0163】
現在のビデオブロックでインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の基準フレームを現在のビデオフレームと比較することによって、現在のビデオブロックのための動き情報を生成してもよい。動き補償ユニット205は、動き情報および現在のビデオブロックに関連するピクチャ以外の、バッファ213からのピクチャの復号されたサンプルに基づいて、現在のビデオブロックための予測されるビデオブロックを判定してもよい。
【0164】
動き推定ユニット204と動き補償ユニット205は、例えば、現在のビデオブロックがIスライス内にあるか、Pスライス内にあるか、Bスライス内にあるかに依存して、現在のビデオブロックに対して異なる動作を実行してもよい。
【0165】
いくつかの例では、動き推定ユニット204は、現在のビデオブロックに対して単一方向の予測を実行してもよく、動き推定ユニット204は、現在のビデオブロックに対する基準ビデオブロックについてリスト0またはリスト1の基準ピクチャを検索することができる。次に、動き推定ユニット204は、基準ビデオブロックと、現在のビデオブロックと基準ビデオブロックとの間の空間的変位を示す動きベクトルとを含むリスト0またはリスト1内の基準ピクチャを示す基準インデックスを生成してもよい。動き推定ユニット204は、現在のビデオブロックの動き情報として、基準インデックス、予測方向インジケータ、および動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される基準ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成してもよい。
【0166】
他の例では、動き推定ユニット204は、現在のビデオブロックに対して双方向予測を実行してもよく、動き推定ユニット204は、リスト0内の基準ピクチャを現在のビデオブロックについての基準ビデオブロックについて検索してもよく、また、リスト1内の基準ピクチャを現在のビデオブロックについての別の基準ビデオブロックについて検索してもよい。次に、動き推定ユニット204は、基準ビデオブロックと、基準ビデオブロックと現在のビデオブロックとの間の空間的変位を示す基準ビデオブロックと動きベクトルを含むリスト0とリスト1内の基準ピクチャを示す基準インデックスを生成してもよい。動き推定ユニット204は、現在のビデオブロックの動き情報として、現在のビデオブロックの基準インデックスおよび動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される基準ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成してもよい。
【0167】
いくつかの例では、動き推定ユニット204は、復号器の復号プロセスのための動き情報の全セットを出力してもよい。
【0168】
いくつかの例では、動き推定ユニット204は、現在のビデオに対する完全なセットの動き情報を出力しなくてもよい。むしろ、動き推定ユニット204は、他のビデオブロックの動き情報を参照して現在のビデオブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在のビデオブロックの動き情報が隣接するビデオブロックの動き情報と十分に類似していると判定してもよい。
【0169】
一例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、現在のビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオ復号器300に示す値を示してもよい。
【0170】
別の例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、別のビデオブロックおよび動きベクトル差(NVD)を識別してもよい。動きベクトル差は、現在のビデオブロックの動きベクトルと示されたビデオブロックの動きベクトルとの間の差を示す。ビデオ復号器300は、示されたビデオブロックの動きベクトルと動きベクトルの差を使用して、現在のビデオブロックの動きベクトルを判定してもよい。
【0171】
上述のように、ビデオ符号化器200は、動きベクトルを予測的にシグナリングしてもよい。ビデオ符号化器200によって実装され得る予測シグナリング技術の2つの例は、高度な動きベクトル予測(AMVP)およびマージモードシグナリングを含む。
【0172】
イントラ予測ユニット206は、現在のビデオブロックに対してイントラ予測を実行してもよい。イントラ予測ユニット206が現在のビデオブロックに対してイントラ予測を行うときに、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号されたサンプルに基づいて、現在のビデオブロックに対する予測データを生成してもよい。現在のビデオブロックに対する予測データは、予測ビデオブロックおよび様々な構文要素を含んでもよい。
【0173】
残差生成ユニット207は、現在のビデオブロックから現在のビデオブロックの予測ビデオブロックを減算することによって(例えば、マイナス記号によって示される)、現在のビデオブロックの残差データを生成してもよい。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプルコンポーネントに対応する残差ビデオブロックを含んでもよい。
【0174】
他の例では、例えばスキップモードにおいて、現在のビデオブロックについての現在のビデオブロックに対する残差データが存在しないことがあり、残差生成ユニット207は減算動作を実行しなくてもよい。
【0175】
変換処理ユニット208は、現在のビデオブロックに関連する残差ビデオブロックに1つ以上の変換を適用することによって、現在のビデオブロックのための1つ以上の変換係数ビデオブロックを生成してもよい。
【0176】
変換処理ユニット208が現在のビデオブロックに関連する変換係数ビデオブロックを生成した後に、量子化ユニット209は、現在のビデオブロックに関連する1つ以上の量子化パラメータ(QP)値に基づいて、現在のビデオブロックに関連する変換係数ビデオブロックを量子化してもよい。
【0177】
逆量子化ユニット210および逆変換ユニット211は、変換係数ビデオブロックから残差ビデオブロックを再構成するために、それぞれ変換係数ビデオブロックに逆量子化および逆変換を適用してもよい。再構成ユニット212は、予測ユニット202によって生成された1つ以上の予測ビデオブロックからの対応するサンプルに、再構成された残差ビデオブロックを追加して、バッファ213に記憶するために現在のブロックに関連する再構成されたビデオブロックを生成してもよい。
【0178】
再構成ユニット212がビデオブロックを再構成した後に、ループフィルタリング動作を実行して、ビデオブロック内のビデオブロッキングのアーチファクトを低減してもよい。
【0179】
エントロピー符号化ユニット214は、ビデオ符号化器200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214がデータを受信するときに、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化動作を実行して、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力する。
【0180】
図19は、図17に示すシステム100内のビデオ復号器124であってもよいビデオ復号器300の一例を示すブロック図である。
【0181】
ビデオ復号器300は、本開示の技術のいずれかまたはすべてを実行するように構成されてもよい。図19の例では、ビデオ復号器300は、複数の機能コンポーネントを含む。本開示に記載される技術は、ビデオ復号器300の様々なコンポーネント間で共有され得る。いくつかの例において、プロセッサは、本開示に記載される技術のいずれかまたはすべてを実行するように構成されてもよい。
【0182】
図19の例では、ビデオ復号器300は、エントロピー復号ユニット301と、動き補償ユニット302と、イントラ予測ユニット303と、逆量子化ユニット304と、逆変換ユニット305と、再構成ユニット306と、バッファ307を含む。ビデオ復号器300は、いくつかの例では、ビデオ符号化器200(図18)に関して記載された符号化パスと概ね逆の復号パスを実行してもよい。
【0183】
エントロピー復号ユニット301は、符号化されたビットストリームを検索してもよい。符号化されたビットストリームは、エントロピーコーディングされたビデオデータ(例えば、ビデオデータの符号化されたブロック)を含んでもよい。エントロピー復号ユニット301は、エントロピーコーディングされたビデオデータを復号してもよく、エントロピー復号されたビデオデータから、動き補償ユニット302は、動きベクトル、動きベクトル精度、基準ピクチャリストインデックス、および他の動き情報を含む動き情報を判定してもよい。動き補償ユニット302は、例えば、AMVPおよびマージモードを実行することによって、そのような情報を判定してもよい。
【0184】
動き補償ユニット302は、動き補償されたブロックを生成することができ、場合により補償フィルタに基づいて補間を実行してもよい。サブピクセル精度で使用される補間フィルタのための識別子は、構文要素に含まれてもよい。
【0185】
動き補償ユニット302は、ビデオブロックの符号化中にビデオ符号化器20によって使用される補間フィルタを使用して、基準ブロックのサブ整数ピクセルに対する補間値を計算してもよい。動き補償ユニット302は、受信された構文情報に従ってビデオ符号化器200によって使用された補間フィルタを判定し、補間フィルタを使用して、予測ブロックを生成する。
【0186】
動き補償ユニット302は、構文情報のうちのいくつかを使用して、符号化されたビデオシーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズ、符号化されたビデオシーケンスのピクチャの各マクロブロックがどのようにパーティショニングされるかを記載するパーティショニング情報、各パーティショニングがどのように符号化されるかを示すモード、各インター符号化ブロックに対する1つ以上の基準フレーム(および基準フレームリスト)、および符号化されたビデオシーケンスを復号するための他の情報を判定してもよい。
【0187】
イントラ予測ユニット303は、例えばビットストリームで受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリーム内で提供され、エントロピー復号ユニット301によって復号された量子化されたビデオブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303は、逆変換を適用する。
【0188】
再構成ユニット306は、残差ブロックを、動き補償ユニット202またはイントラ予測ユニット303によって生成された対応する予測ブロックと合算して、復号されたブロックを形成してもよい。所望であれば、ブロック性アーチファクトを除去するために、復号されたブロックをフィルタリングするためにブロック解除フィルタを適用してもよい。次いで、復号されたビデオブロックはバッファ307に記憶され、バッファ307はまた、後の動き補償/イントラ予測のための基準ブロックを提供し、ディスプレイデバイス上に提示するための復号されたビデオを生成する。
【0189】
図20は、本明細書に開示される様々な技術を実装することができる例示的なビデオ処理システム2000を示すブロック図である。様々な実装は、システム2000のコンポーネントの一部または全部を含んでもよい。システム2000は、ビデオコンテンツを受信するための入力2002を含んでもよい。ビデオコンテンツは、生または圧縮されていないフォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよいし、圧縮されたか、または符号化されたフォーマットであってもよい。入力2002は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(passive optical network)などの有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェースなどの無線インターフェースを含む。
【0190】
システム2000は、本文書に記載されている様々なコーディングまたは符号化方法を実装し得るコーディングコンポーネント2004を含んでもよい。コーディングコンポーネント2004は、ビデオのコーディングされた表現を生成するために、入力2002からコーディングコンポーネント2004の出力へのビデオの平均ビットレートを低減してもよい。従って、コーディング技術は、ビデオ圧縮またはビデオトランスコーディング技術と呼ばれることがある。コーディングコンポーネント2004の出力は、コンポーネント2006によって表されるように、記憶されるか、または接続された通信を介して送信されてもよい。入力2002で受信されたビデオの記憶されたか、または通信されたビットストリーム(またはコーディングされた)表現は、ディスプレイインターフェース2010に送信される画素値または表示可能なビデオを生成するために、コンポーネント2008によって使用されてもよい。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ビデオ解凍と呼ばれることがある。さらに、特定のビデオ処理動作は、「コーディング」動作またはツールと称されるが、コーディングツール若しくは動作は、符号化器で使用されるか、またはコーディングの結果を反転する、対応する復号ツール若しくは動作は、復号器によって実行されることが理解されるであろう。
【0191】
周辺バスインターフェースまたはディスプレイインターフェースの例としては、USB(universal serial bus)、HDMI(登録商標)(high definition multimedia interface)またはディスプレイポートなどを含む。記憶インターフェースの例としては、SATA(serial advanced technology attachment)、PCI、IDEインターフェースなどを含む。本明細書に記載されている技術は、携帯電話、ラップトップ、スマートフォン、またはデジタルデータ処理および/またはビデオディスプレイを実行することが可能な他のデバイスなどの様々な電子デバイスに具体化されてもよい。
【0192】
いくつかの実施形態では、ALWIPモードまたはMIPモードは、ビデオの以前にコーディングされたサンプルに対して、境界ダウンサンプリング動作(または平均化動作)を実行し、続いて行列ベクトル乗算動作を実行し、選択的に(または任意選択で)続いてアップサンプリング動作(または線形補間動作)を実行することによって、現在のビデオブロックの予測ブロックを計算するために使用される。いくつかの実施形態では、ALWIPモードまたはMIPモードは、ビデオの以前にコーディングされたサンプルに対して、境界ダウンサンプリング動作(または平均化動作)を実行し、続いて行列ベクトル乗算動作を実行することによって、現在のビデオブロックの予測ブロックを計算するために使用される。いくつかの実施形態では、ALWIPモードまたはMIPモードはまた、行列ベクトル乗算動作を実行した後に、アップサンプリング動作(または線形補間動作)を事項することができる。
【0193】
図21は、開示された技術に従った、行列ベースのイントラ予測のための別の例示的な方法2100のフローチャートを示す。動作2102は、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、行列ベクトル乗算動作から取得されたサンプルに対して、垂直方向と水平方向の両方向において固定順序でアップサンプリング動作が実行される。
【0194】
方法2100のためのいくつかの実施形態では、固定順序は、最初に水平方向においてアップサンプリング動作を実行し、続いて垂直方向においてアップサンプリング動作を実行することを含む。方法2100のためのいくつかの実施形態では、固定順序は、最初に垂直方向においてアップサンプリング動作を実行し、続いて水平方向においてアップサンプリング動作を実行することを含む。
【0195】
図22は、開示された技術に従った、行列ベースのイントラ予測のための別の例示的な方法2200のフローチャートを示す。動作2202は、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、変換は、アップサンプリング動作の前に転置動作を実行することを含み、転置動作は、境界ダウンサンプリング動作および行列ベクトル乗算動作を実行することによって取得される予測ブロックの第1のサンプルセットを転置し、転置動作は、予測ブロックの寸法に従って実行される。
【0196】
方法2200のためのいくつかの実施形態では、転置動作は、予測ブロックの第1のサンプルセットを転置し、転置動作は、第1の値の幅と第2の値の高さとを有する予測ブロックを、第2の値の幅と第1の値の高さとを有する予測ブロックに変換する。
【0197】
方法2200のためのいくつかの実施形態では、方法2200は、アップサンプリング動作の後に取得された予測ブロックの第2のサンプルセットを転置する別の転置動作を実行することをさらに含み、別の転置動作は、第2の値の幅と第1の値の高さとを有する予測ブロックを、第1の値の幅と第2の値の高さとを有する予測ブロックに変換する。
【0198】
図23は、開示された技術に従った、行列ベースのイントラ予測のための別の例示的な方法2300のフローチャートを示す。動作2302は、ビデオの現在のビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換を、行列ベースのイントラ予測(MIP)モードを使用して実行することであって、MIPモードでは、以前にコーディングされたビデオのサンプルに対して、境界ダウンサンプリング動作を実行し、続いて行列ベクトル乗算動作を実行し、続いてアップサンプリング動作を実行することによって、現在のビデオブロックの予測ブロックが判定される、ことを含み、アップサンプリング動作は、規則に従って双線形フィルタ以外の補間フィルタを選択および使用することによって実行される。
【0199】
方法2300のためのいくつかの実施形態では、規則は、補間フィルタがガウスフィルタであることを指定する。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが立方フィルタであることを指定する。方法2300のためのいくつかの実施形態では、ガウスフィルタまたは立方フィルタは、4tap補間フィルタ、6tap補間フィルタ、または8tap補間フィルタである。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが色差サンプルの動き補償に使用されることを指定する。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが輝度サンプルの動き補償に使用されることを指定する。
【0200】
方法2300のためのいくつかの実施形態では、補間フィルタは、6tap補間フィルタまたは8tap補間フィルタである。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが、現在のビデオブロックの寸法に基づいて選択されることを指定する。方法2300のためのいくつかの実施形態では、規則は、アップサンプリング動作によって使用されたアップサンプリング比に基づいて補間フィルタが選択されることを指定する。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが、予測モードまたはMIPモードのMIPモードインデックスに基づいて選択されることを指定する。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが、アップサンプリング動作に利用可能なサンプル数に基づいて選択されることを指定する。方法2300のためのいくつかの実施形態では、規則は、補間フィルタが、サンプル数が値に等しいことに応答して、4tap補間フィルタであることを指定する。
【0201】
方法2300のためのいくつかの実施形態では、値は、4に等しい。方法2300のいくつかの実施形態では、規則は、補間フィルタが、サンプル数が値に等しいことに応答して、4tap補間フィルタまたは8tap補間フィルタであることを指定する。方法2300のためのいくつかの実施形態では、値は、8に等しい。方法2300のためのいくつかの実施形態では、サンプル数は、隣接する基準サンプルを除外する。方法2300のためのいくつかの実施形態では、変換の実行は、現在のビデオブロックからビットストリーム表現を生成することを含む。方法2300のためのいくつかの実施形態では、変換の実行は、ビットストリーム表現から現在のビデオブロックを生成することを含む。
【0202】
前述から、本明細書において、説明の目的で、本開示の技術の特定の実施形態が記載されているが、本発明の範囲を逸脱することなく、様々な修正を行うことができることが理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲によるものを除き、限定されない。
【0203】
この特許文書に記載されている主題および機能動作の実装は、この明細書に開示されている構造およびそれらの構造的等価物を含む、様々なシステム、デジタル電子回路、もしくはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つ以上の組み合わせにおいて実装することができる。本明細書に記載された主題の実装は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による、またはデータ処理装置の動作を制御するための、有形および非一時的コンピュータ可読媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬信号に影響を与える組成物、またはそれらのうちの1つ以上の組み合わせとすることができる。用語「データ処理ユニット」または「データ処理装置」は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。
【0204】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語を含む、任意の形式のプログラミング言語で書くことができ、それは、スタンドアロン・プログラムとして、またはコンピューティング環境における使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとしてのものを含む、任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータで実行されるように展開することができる。
【0205】
本明細書に記載されているプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、特別目的論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置は、これらとして実装することができる。
【0206】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信するだろう。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上のメモリデバイスである。一般的に、コンピュータはまた、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクからデータを受信したり、これらにデータを転送したり、またはその両方を行うことを含むか、それらを行うように動作可能に結合されるだろう。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスを含む、すべての形式の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特別目的論理回路によって補足されるか、またはこれに組み込むことができる。
【0207】
明細書は、図面と共に、単に例示的と考慮されることを意図しており、例示的とは例を意味する。本明細書で使用される場合、「または」の使用は、コンテキストが他のことを明確に示さない限り、「および/または」を含むことを意図している。
【0208】
この特許文書は多くの詳細が含むが、これらは、いずれかの発明の範囲または請求項に記載され得るものに対する限定ではなく、特定の発明の特定の実施形態に固有であり得る特徴の記載と解釈されるべきである。別々の実施形態のコンテキストでこの特許文書に記載されている特定の特徴はまた、単一の実施形態で組み合わせて実装することができる。逆に、単一の実施形態のコンテキストで記載される様々な特徴はまた、複数の実施形態において別々に、または任意の好適なサブコンビネーションで実装することができる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、最初にそれ自体請求項に記載されてもよいが、請求項に記載された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから削除することができ、請求項に記載された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形を対象としてもよい。
【0209】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を特定の順序でまたは順次に実行すること、または、示されたすべての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文書に記載されている実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてこのような分離を必要とするものとして理解されるべきではない。
【0210】
少数の実装および例が記載されているに過ぎず、この特許文書に記載され、示されているものに基づいて、他の実装、拡張および変形を行うことができる。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
【外国語明細書】