(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023123713
(43)【公開日】2023-09-05
(54)【発明の名称】コーディングブロック又はサブブロック境界でのデブロッキングフィルタリング
(51)【国際特許分類】
H04N 19/117 20140101AFI20230829BHJP
H04N 19/136 20140101ALI20230829BHJP
H04N 19/176 20140101ALI20230829BHJP
H04N 19/70 20140101ALI20230829BHJP
【FI】
H04N19/117
H04N19/136
H04N19/176
H04N19/70
【審査請求】有
【請求項の数】18
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023105609
(22)【出願日】2023-06-28
(62)【分割の表示】P 2022512298の分割
【原出願日】2020-08-24
(31)【優先権主張番号】PCT/CN2019/102217
(32)【優先日】2019-08-23
(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)【発明者】
【氏名】リュウ,ホンビン
(57)【要約】 (修正有)
【課題】デブロッキングフィルタのようなインループフィルタリングを使用するビデオ及びイメージ符号化及び復号化方法を提供する。
【解決手段】方法は、ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきサブブロック境界を決定するステップと、デブロッキングフィルタを用いてビデオとビデオのコーディングされた表現との間の変換を実行するステップと、を含む。ルールは、デブロッキングフィルタが、現在のビデオブロックのサブブロックの位置と予め定義された値との和と、現在のビデオブロックの幅又は高さと、の間の関係をチェックせずに、決定されることを定める。
【選択図】
図8A
【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
サブブロック時間動きベクトル予測モード又はアフィン予測モードでコーディングされているビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップと、
前記決定に基づき前記現在のビデオブロックと前記ビデオのビットストリームとの間の変換を実行するステップと
を有し、
前記ルールは、前記サブブロック境界を決定するときに、前記現在のビデオブロック内の第2垂直位置(y2)及び第2水平位置(x2)での前記サブブロック境界の第2水平サブブロック境界の第2デブロッキングフィルタ長さが、i)垂直位置(y2+dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、ii)垂直位置(y2-dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、のうちの一方又は両方をチェックすることに基づき決定されることを定め、dyは0以上の整数である、
方法。
【請求項2】
前記第2デブロッキングフィルタ長さは、i)前記垂直位置(y2+dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であること、又はii)前記垂直位置(y2-dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であることのうちの少なくとも一方を満足することに応答して、1に等しく、
前記第2デブロッキングフィルタ長さは、Pサイドのデブロッキングフィルタ長さ、又はQサイドのデブロッキングフィルタ長さを含む、
請求項1に記載の方法。
【請求項3】
前記第2デブロッキングフィルタ長さは、前記現在のビデオブロックの高さとy2+dyとの間の第2関係をチェックすることを省略することによって、決定される、
請求項1に記載の方法。
【請求項4】
前記現在のビデオブロックの高さとy2+dyとの間の前記第2関係は、y2+dyが前記現在のビデオブロックの高さ以上であるかどうかを有する、
請求項3に記載の方法。
【請求項5】
dyは4又は8に等しい、
請求項1に記載の方法。
【請求項6】
前記ルールは、前記サブブロック境界を決定するときに、前記現在のビデオブロック内の第1水平位置(x1)及び第1垂直位置(y1)での前記サブブロック境界の第1垂直サブブロック境界の第1デブロッキングフィルタ長さが、i)水平位置(x1+dx)及び前記第1垂直位置(y1)での境界が変換ブロック境界であるか否か、ii)水平位置(x1-dx)及び前記第1垂直位置(y1)での境界が変換ブロック境界であるか否か、のうちの一方又は両方をチェックすることに基づき決定されることを定め、dxは0以上の整数である、
請求項1に記載の方法。
【請求項7】
前記第1デブロッキングフィルタ長さは、i)前記水平位置(x1+dx)及び前記第1垂直位置(y1)での境界が変換ブロック境界であること、又はii)前記水平位置(x1-dx)及び前記第1垂直位置(y1)での境界が変換ブロック境界であることのうちの少なくとも一方を満足することに応答して、1に等しく、
前記第1デブロッキングフィルタ長さは、Pサイドのデブロッキングフィルタ長さ、又はQサイドのデブロッキングフィルタ長さを含む、
請求項6に記載の方法。
【請求項8】
前記第1デブロッキングフィルタ長さは、前記現在のビデオブロックの幅とx1+dxとの間の第1関係をチェックすることを省略することによって、決定される、
請求項6に記載の方法。
【請求項9】
前記現在のビデオブロックの幅とx1+dxとの間の前記第1関係は、x1+dxが前記現在のビデオブロックの幅以上であるかどうかを有する、
請求項8に記載の方法。
【請求項10】
dxは4又は8に等しい、
請求項6に記載の方法。
【請求項11】
前記現在のビデオブロックのブロックエッジが前記サブブロック境界の第3サブブロック境界であり、前記第3サブブロック境界沿いの2つの隣接サンプルの少なくとも一方がインター-イントラ複合予測(CIIP)モードでコーディングされている場合に、前記変換中に、前記第3サブブロック境界に適用される境界強さが2に等しいことを決定するステップを更に有する、
請求項1に記載の方法。
【請求項12】
前記ビットストリームは、フォーマッティングルールに従い、
前記フォーマッティングルールは、クロマフォーマットサンプリングシンタックス要素に基づき、1つ以上の量子化関連クロマシンタックス要素をビットストリームに含めるかどうかを定める、
請求項1に記載の方法。
【請求項13】
前記1つ以上の量子化関連クロマシンタックス要素は、ピクチャパラメータセットに含まれ、
i)Cb量子化パラメータを導出するために使用されるルーマ量子化パラメータに対するオフセットを示す第1シンタックス要素、
ii)Cr量子化パラメータを導出するために使用されるルーマ量子化パラメータに対するオフセットを示す第2シンタックス要素、
iii)CbCr合同量子化パラメータを導出するために使用されるルーマ量子化パラメータに対するオフセットを示す第3シンタックス要素、
iv)クロマ成分量子化パラメータを導出するために使用されるルーマ量子化パラメータに対するオフセットを示すフラグがコーディングユニットレベル若しくは変換ユニットレベルに存在することを許されていることを示す第4シンタックス要素、又は
v)前記クロマ成分量子化パラメータを導出するために使用されるルーマ量子化パラメータに対するオフセットを示すフラグがスライスレベルに存在することを許されていることを示す第5シンタックス要素
のうちの少なくとも1つを有する、
請求項12に記載の方法。
【請求項14】
前記変換は、前記現在のビデオブロックを前記ビットストリームに符号化することを含む、
請求項1に記載の方法。
【請求項15】
前記変換は、前記現在のビデオブロックを前記ビットストリームから復号することを含む、
請求項1に記載の方法。
【請求項16】
ビデオデータを処理する装置であって、
プロセッサと、命令を有する非一時的なメモリとを有し、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
サブブロック時間動きベクトル予測モード又はアフィン予測モードでコーディングされているビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップと、
前記決定に基づき前記現在のビデオブロックと前記ビデオのビットストリームとの間の変換を実行するステップと
を実行させ、
前記ルールは、前記サブブロック境界を決定するときに、前記現在のビデオブロック内の第2垂直位置(y2)及び第2水平位置(x2)での前記サブブロック境界の第2水平サブブロック境界の第2デブロッキングフィルタ長さが、i)垂直位置(y2+dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、ii)垂直位置(y2-dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、のうちの一方又は両方をチェックすることに基づき決定されることを定め、dyは0以上の整数である、
装置。
【請求項17】
プロセッサに、
サブブロック時間動きベクトル予測モード又はアフィン予測モードでコーディングされているビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップと、
前記決定に基づき前記現在のビデオブロックと前記ビデオのビットストリームとの間の変換を実行するステップと
を実行させる命令を記憶し、
前記ルールは、前記サブブロック境界を決定するときに、前記現在のビデオブロック内の第2垂直位置(y2)及び第2水平位置(x2)での前記サブブロック境界の第2水平サブブロック境界の第2デブロッキングフィルタ長さが、i)垂直位置(y2+dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、ii)垂直位置(y2-dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、のうちの一方又は両方をチェックすることに基づき決定されることを定め、dyは0以上の整数である、
非一時的なコンピュータ可読記憶媒体。
【請求項18】
ビデオ処理装置によって実行された方法によって生成されるビデオのビットストリームを記憶する非一時的なコンピュータ可読記録媒体であって、
前記方法は、
サブブロック時間動きベクトル予測モード又はアフィン予測モードでコーディングされている前記ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップと、
前記決定に基づき前記ビットストリームを生成するステップと
を有し、
前記ルールは、前記サブブロック境界を決定するときに、前記現在のビデオブロック内の第2垂直位置(y2)及び第2水平位置(x2)での前記サブブロック境界の第2水平サブブロック境界の第2デブロッキングフィルタ長さが、i)垂直位置(y2+dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、ii)垂直位置(y2-dy)及び前記第2水平位置(x2)での境界が変換ブロック境界であるか否か、のうちの一方又は両方をチェックすることに基づき決定されることを定め、dyは0以上の整数である、
非一時的なコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、ビデオ符号化及び復号化に関する。
【背景技術】
【0002】
ビデオ圧縮の進歩にかかわらず、デジタルビデオは、インターネット及び他のデジタル通信ネットワーク上での最大のバンド幅使用を占めている。ビデオを受信し表示することができるユーザデバイスの接続数が増えるにつれて、デジタルビデオ利用のためのバンド幅需要は増え続けることが予想される。
【発明の概要】
【0003】
デバイス、システム、及び方法は、デジタルビデオ処理に関係があり、具体的には、デブロッキングフィルタのようなインループフィルタリングを使用するビデオ及びイメージ符号化及び復号化に関係がある。
【0004】
1つの例となる態様において、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップと、デブロッキングフィルタを用いて、ビデオとビデオのコーディングされた表現との間の変換を実行するステップとを有し、ルールは、i)現在のビデオブロックのサブブロックの位置と予め定義された値との和と、ii)現在のビデオブロックの幅又は高さとの間の関係をチェックせずに、デブロッキングフィルタ長さが決定されることを定める。
【0005】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ルールに基づき、デブロッキングフィルタが現在のビデオブロックのサブブロック間の境界に適用されるかどうか、及び/又はデブロッキングフィルタが適用される場合に使用されるデブロッキングパラメータに関して決定を行うステップと、決定に基づき変換を実行するステップとを有し、ルールは、境界がサブブロックのN×Mサンプルグリッドに位置するかどうか、及び/又は境界が現在のビデオブロックの自然境界であるかどうかに基づき、N及びMは整数である。
【0006】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、現在のビデオブロックが予測のための複数のサブパーティションに分割されているジオメトリ予測モードでコーディングされた前記現在のビデオブロックのN×Nサンプルグリッドにデブロッキングフィルタを適用するとの決定を行うステップと、決定に基づき、現在のビデオブロックを含むビデオとビデオのコーディングされた表現との間の変換を実行するステップとを有し、Nは4又は8に等しい。
【0007】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきサブブロック境界を決定するステップと、デブロッキングフィルタを用いて、ビデオとビデオのコーディングされた表現との間の変換を実行するステップとを有する。
【0008】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ルールに基づきデブロッキングフィルタを用いて現在のビデオブロックのサブブロック境界に適用される境界強さを決定するステップと、決定に基づき変換を実行するステップとを有し、ルールは、サブブロック境界が変換ブロック境界であるかどうかにかかわらず、境界強さが2に等しくセットされることを定める。
【0009】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換をルールに従って実行するステップを有し、変換は、符号化中に、現在のビデオブロックを変換ブロック(TB)にパーティション化し、TBレベル変換をTBに適用すること、又は復号化中に、ビデオのコーディングされた表現内のコーディングされたサンプルにTBレベル逆変換を適用することを有するサブブロック変換(SBT)ツールを使用し、ルールは、水平方向及び/又は垂直方向において少なくとも3つのTB境界にわたって適応フィルタが有効にされることを定める。
【0010】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、現在のビデオブロックのエッジの両側にある2つの隣接サンプルが、非ゼロ変換係数レベルを含まない2つの変換ブロックに属する、との第1決定を行うステップと、第1決定に基づき、現在のブロックエッジのデブロッキングフィルタ強さを0とセットするとの第2決定を行うステップと、第1決定及び第2決定を用いて変換を実行するステップとを有する。
【0011】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、デコーダ側動きベクトル精緻化(DMVR)ツールを用いて実行するステップと、変換の間に生成された再構成されたビデオブロックにデブロッキングフィルタを適用するステップとを有し、DMVRツールは、コーディングされた表現内のコーディングされた動きベクトルを精緻化することによって生成された精緻化された動きベクトルを使用する動き補償によって、再構成されたビデオブロックを生成することを含み、デブロッキングフィルタのパラメータは、精緻化された動きベクトルに基づく。
【0012】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ルールに基づき、デブロッキングフィルタプロセスのためのデブロッキングフィルタ強さを決定するステップと、決定に基づき変換を実行するステップとを有し、ルールは、デブロッキングフィルタ強さが、現在のビデオブロックの隣接するブロックの予測モードに依存しないことを定める。
【0013】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、デブロッキングフィルタが現在のビデオブロックの境界に適用されるかどうか、及び/又はデブロッキングフィルタが適用される場合に使用されるデブロッキングパラメータを、境界のタイプに依存する又は該タイプとは無関係であるルールに基づき、決定するステップと、決定に基づき変換を実行するステップとを有する。
【0014】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオのビデオ領域とビデオのコーディングされた表現との間の変換のために、ある方向のデブロッキングフィルタが、水平境界からNサンプル離れている仮想境界にわたって適用されないと決定するステップと、決定に基づき変換を実行するステップとを有し、Nは0よりも大きい整数である。
【0015】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオのビデオ領域とビデオのコーディングされた表現との間の変換のために、デブロッキングフィルタを使用するデブロッキングプロセス中にサンプルの値をクリップすべきかどうか又はどのようにクリップすべきかを、デブロッキングフィルタによってフィルタリング処理される境界がビデオ領域の水平境界からNサンプル離れている仮想境界と一致するかどうかに依存するルールに基づき、決定するステップと、決定に基づき変換を実行するステップとを有し、Nは0よりも大きい整数である。
【0016】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために使用されるコーディングツールをルールに従って決定するステップと、コーディングツールに従って変換を実行するステップとを有し、ルールは、サブブロック変換(STB)ツールがサブブロックベースのコーディングモードでのみ使用されることを定める。
【0017】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、イントラサブパーティショニング(ISP)モードの使用に従ってサブパーティションに分割される現在のビデオブロックについて、現在のビデオブロックの2つのサブパーティション間の境界にデブロッキングフィルタを適用することを決定するステップと、決定に基づきビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行するステップとを有する。
【0018】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、現在のビデオブロックがサブパーティションに分割されるジオメトリ予測モードでコーディングされた現在のビデオブロックについて、現在のビデオブロックの2つのM×N領域の間の境界にデブロッキングフィルタを適用することを決定するステップと、決定に基づきビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行するステップとを有し、M及びNは整数である。
【0019】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオブロックを含むビデオとビデオのコーディングされた表現との間の変換のために、2つの隣接するビデオブロックの少なくとも1つが、2つの隣接するビデオブロックのうちの少なくとも1つがサブパーティションに分割されるジオメトリ予測モードでコーディングされていることにより、2つの隣接するビデオブロックの間の境界にデブロッキングフィルタを適用することを決定するステップと、決定に基づき変換を実行するステップとを有する。
【0020】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ルールに基づき、フィルタリングプロセスで使用されるフィルタリングパラメータを決定するステップと、決定に基づき変換を実行するステップとを有し、ルールは、フィルタリングパラメータが、i)動き補償プロセスで使用される動き情報、ii)動きストレージに格納されている動き情報、又はiii)動きベクトル予測プロセスで使用される動き情報、に依存することを定める。
【0021】
他の例となる態様において、ビデオ処理の他の方法が開示される。方法は、ビデオとビデオのコーディングされた表現との間の変換を実行するステップを有し、コーディングされた表現は、フォーマッティングルールに従い、フォーマッティングルールは、クロマフォーマット、クロマ成分に関連したコーディングモード、又はクロマ情報シンタックス要素に基づき、クロマ成分を示すクロマシンタックス要素を前記コーディングされた表現に含めるべきかどうかを定める。
【0022】
更なる他の代表的な態様において、上記の方法は、プロセッサ実行可能コードの形で具現され、コンピュータ可読プログラム媒体に記憶される。
【0023】
更なる他の代表的な態様において、上記の方法を実行するよう構成され又は動作可能であるデバイスが開示される。デバイスは、この方法を実装するようプログラムされているプロセッサを含み得る。
【0024】
更なる他の代表的な態様において、ビデオデコーダ装置が、本明細書で記載されている方法を実装してもよい。
【0025】
開示されている技術の上記及び他の態様及び特徴は、図面、明細書、及び特許請求の範囲で更に詳細に記載される。
【図面の簡単な説明】
【0026】
【
図1】p
i,k及びq
i,kのサンプル位置の例を示す。
【
図2】8×8グリッドに対するデブロッキングの例を示す。
【
図3】4×Nブロック、N×4ブロック、8×Nブロック、及びN×8ブロックについての1つのサンプル変更を伴った弱フィルタの例を示す。
【
図4】仮想境界での変更されたブロック分類の例を示す。
【
図5】仮想境界でのルーマ成分に対する変更されたALFフィルタリングの例を示す。
【
図6A】ビデオ処理のためのハードウェアプラットフォームの実施例のブロック図である。
【
図6B】ビデオ処理のためのハードウェアプラットフォームの実施例のブロック図である。
【
図7】ビデオ処理の方法の例のフローチャートである。
【
図8A】ビデオ処理の方法の例のフローチャートを示す。
【
図8B】ビデオ処理の方法の例のフローチャートを示す。
【
図8C】ビデオ処理の方法の例のフローチャートを示す。
【
図8D】ビデオ処理の方法の例のフローチャートを示す。
【
図9A】ビデオ処理の方法の例のフローチャートを示す。
【
図9B】ビデオ処理の方法の例のフローチャートを示す。
【
図9C】ビデオ処理の方法の例のフローチャートを示す。
【
図9D】ビデオ処理の方法の例のフローチャートを示す。
【
図9E】ビデオ処理の方法の例のフローチャートを示す。
【
図9F】ビデオ処理の方法の例のフローチャートを示す。
【
図9G】ビデオ処理の方法の例のフローチャートを示す。
【
図9H】ビデオ処理の方法の例のフローチャートを示す。
【
図9I】ビデオ処理の方法の例のフローチャートを示す。
【
図10A】ビデオ処理の方法の例のフローチャートを示す。
【
図10B】ビデオ処理の方法の例のフローチャートを示す。
【
図10C】ビデオ処理の方法の例のフローチャートを示す。
【発明を実施するための形態】
【0027】
開示されている技術の実施形態は、圧縮性能を改善するために既存のビデオコーディング標準規格(例えば、HEVC、H.265)及び将来の標準規格に適用され得る。セクション見出しは、記載の読みやすさを改善するために本明細書で使用されており、開示又は実施形態(及び/又は実施)を各々のセクションにのみ限定するものでは決してない。
【0028】
[1 概要]
本明細書は、ビデオコーディング技術に関係がある。具体的に、それは、ビデオコーディングにおけるデブロッキングフィルタ及び関連する技術に関する。それは、HEVCのような既存のビデオコーディング標準規格、又は最終合意されるべき標準規格(Versatile Video Coding)に適用され得る。それはまた、将来のビデオ標準規格又はビデオコーデックにも適用可能である。
【0029】
[2 最初の議論]
ビデオコーディング標準規格は、よく知られているITU-T及びISO/IEC標準規格の開発を通じて主に発展してきた。ITU-TはH.261及びH.263を作り出し、ISO/IECはMPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同でH.262/MPEG-2 Video及びH264/MPEG-4 Advanced Video Coding(AVC)及びH.265/HEVC標準規格を作り出した。H.262以降、ビデオコーディング標準規格は、時間予測に変換コーディングをプラスしたものが利用されるハイブリッド型ビデオコーディング構造に基づいている。HEVCを超える将来のビデオコーディング技術を探求するために、Joint Video Exploration Team(JVET)が2015年にVCEG及びMPEGによって共同で設立された。それ以降、多くの新しい手法がJVETによって採用され、Joint Exploration Model(JEM)と呼ばれる参照ソフトウェアに置かれてきた。JVETミーティングは、四半期ごとに一度同時に開催され、新しいコーディング標準規格は、HEVCと比較して50%のビットレート低減を目標としている。新しいビデオコーディング標準規格は、2018年4月のJVETミーティングでVersatile Video Coding(VVC)と正式に名付けられ、VVCテストモデル(VTM)の第1バージョンはその時にリリースされた。VVC標準化に貢献する連続的な取り組みがあるために、新しいコーディング技術が、JVETミーティングのたびにVVC標準規格に採用されている。VVC作業ドラフト及びテストモデルVTMは、毎回のミーティング後に更新されている。VVCプロジェクトは、現在、2020年7月のミーティングでの技術的完成を目指している(FDIS)。
【0030】
[2.1 VVCにおけるデブロッキングフィルタ]
VTM6には全部で3つのインループフィルタがある。デブロッキングフィルタ及びSAO(HEVCにおける2つのループフィルタ)に加えて、適応ループフィルタ(ALF)がVTM5では適用される。VTM6におけるフィルタリングプロセスの順序は、デブロッキングフィルタ、SAO、及びALFである。VTM6では、デブロッキングフィルタプロセスは、HEVCにおけるそれらとほぼ同じである。しかし、次の変更が加えられている。
a)再構成されたサンプルの平均ルーマレベルに依存するデブロッキングフィルタのフィルタ強さ
b)デブロッキングtCテーブル拡張
c)4×4サンプルグリッドに対するルーマデブロッキング及び8×8サンプルグリッドに対するクロマデブロッキング
d)ルーマに対するより強いデブロッキングフィルタ
e)クロマに対するより強いデブロッキングフィルタ
【0031】
[2.1.1 再構成された平均ルーマレベルに依存するフィルタ強さ]
HEVCでは、デブロッキングフィルタのフィルタ強さは、平均量子化パラメータqPLから導出される変数β及びt
Cによって制御される。VTM5では、デブロッキングフィルタは、再構成されたサンプルのルーマレベルに従ってオフセットをqP
Lに加えることによって、デブロッキングフィルタの強さを制御する。再構成されたルーマレベルLLは、次のように導出される:
LL=((p
0,0+p
0,3+q
0,0+q
0,3)>>2)/(1<<bitDepth)
ここで、サンプル値p
i,k及びq
i,k(i=0,・・・、3、k=0及び3)は、
図1に示されるように導出される。
【0032】
変数qPLは、次のように導出される:
qPL=((QpQ+QpP+1)>>1)+qpOffset
ここで、QpQ及びQpPは、サンプルq0,0及びp0,0を夫々含むコーディングユニットの量子化パラメータを表す。オフセットqpOffsetは伝達関数に依存し、値はSPSにおいて通知される。
【0033】
[2.1.2 デブロッキングtCテーブル拡張]
VVCでは、最大QPが51から63に変更されており、ブロックQPに基づきデブロッキングパラメータtCの値を導出するよう、対応する変更をデブロッキングテーブルに反映することが望ましい。表1は、QP範囲の拡張に適合するよう更新されたt
C’テーブルである。変数t
Cは、次のように導出される:
t
C=BitDepth
Y<10?(t
C’+2)>>(10-BitDepth
Y):t
C’×(1<<(BitDepth
Y-10))
【表1】
【0034】
[2.1.3 ルーマに対するより強いデブロッキングフィルタ]
双線形フィルタ(より強いデブロッキングフィルタ)は、境界のどちらか一方の側でのサンプルが大きいブロックに属するときに使用される。サンプルが大きいブロックに属するとは、幅が垂直エッジについて32以上であるとき、及び高さが水平エッジについて32以上であるときとして定義される。i=0~Sp-1についてのブロック境界サンプルp
i、及びj=0~Sq-1についてのブロック境界サンプルq
iは、その場合に、次のように、線形補間によって置換される:
p
i’=(f
i×Middle
s,t+(64-f
i)×P
s+32)>>6),p
i±t
CPD
iにクリップされる
q
j’=(g
j×Middle
s,t+(64-g
j)×Q
s+32)>>6),q
j±t
CPD
jにクリップされる
ここで、tCPD
i及びtCPD
jの項は、位置依存のクリッピングであり、g
j、f
i、Middle
s,t、P
s、及びQ
sは、次で与えられる:
【表2】
【0035】
上記のより強いルーマフィルタは、条件1、条件2及び条件3の全てが真(TRUE)である場合にのみ使用される。条件1は、「大きいブロック条件」である。個の条件は、P-side及びQ-sideでのサンプルが大きいブロックに属するかどうかを検出する。条件2及び条件3は、次によって決定される:
条件2=(d<β)?TRUE:FAILSE
条件3=StrongFilterCondition=(dpqは(β>>2)よりも小さい,sp3+sq3は(3×β>>5)よりも小さい,かつAbs(p0-q0)は(5×tC+1)>>1よりも小さい)?TRUE:FALSE
【0036】
[2.1.4 クロマに対する強いデブロッキングフィルタ]
クロマに対する次の強いデブロッキングフィルタが定義される:
p2’=(3×p3+2×p2+p1+p0+q0+4)>>3
p1’=(2×p3+p2+2×p1+p0+q0+q1+4)>>3
p0’=(p3+p2+p1+2×p0+q0+q1+q2+4)>>3
【0037】
上記のクロマフィルタは、8×8クロマサンプルグリッドに対してデブロッキングを実行する。クロマ強フィルタは、ブロック境界の両側で使用される。ここで、クロマフィルタは、クロマエッジの両側が(クロマサンプルの単位で)8以上であり、かつ、3つの条件による次の決定が満足されるときに、選択される。第1の決定は、境界強さ及び大きいブロックの決定に関する。第2及び第3の決定は、基本的にはHEVCルーマ決定に関するものと同じであり、夫々、オン/オフ決定及び強フィルタ決定である。第1の決定では、境界強さ(bS)が、表2に示されるように、クロマフィルタリングについては変更されている。表3の条件がその後にチェックされる。条件が満足される場合に、より優先度が低い残りの条件はスキップされる。
【表3】
【0038】
クロマデブロッキングは、大きいブロック境界が検出される場合に、bSが2に等しいか、あるいは、bSが1に等しいときに実行される。第2及び第3の条件は、HEVCルーマ強フィルタ決定と基本的に同じである。
【0039】
[2.1.5 4×4サンプルグリッドに対するルーマデブロッキング及び8×8サンプルグリッドに対するクロマデブロッキング]
VTM5.0は、8×8サンプルグリッドに対してデブロッキングを実行する。従って、デブロッキングは、8×8サンプルグリッドと重なり合う全てのブロックエッジについてのみ実行される。VTM5.0のパーティショニングスキーム(二分木(Binary-Tree,BT)、三分木(Ternary-Tree,TT)、イントラサブパーティション、サブブロック変換)により、いくつかの長いCUエッジは、8×8サンプルグリッドと重なり合わないが、依然として十分なブロッキングアーチファクトを有することがある。シナリオは
図2に表されている。灰色で示されているエッジは、4×16ブロックに属し、VTM5.0デブロッキングは、このエッジが8×8サンプルグリッドと重なり合わないということで、このエッジに対してデブロッキングを実行しない。
【0040】
VTM6.0では、4×4サンプルグリッドに対してはルーマデブロッキングを、8×8サンプルグリッドに対してはクロマデブロッキングを適用することが採用されている。エッジを共有するブロックのいずれかが4サンプル(つまり、垂直エッジについては、幅=4サンプル、水平エッジについて、長さ=4サンプル)を有する場合に、それは、サンプルを1つ又は全く変更せずにルーマ弱フィルタリングを適用する。
【0041】
垂直エッジについて実行される種々のステップが以下で説明される。
【0042】
フィルタのオン/オフ条件(つまり、d<β,ここで、d=dpq0+dpq3かつdpq0=dp0+dq0かつdpq3=dp3+dq3)が夫々のエッジについて真であると評価されるかどうかをチェックする。真である場合に、次いで
●ブロックの1つが4サンプルのブロック幅を有するかどうかをチェックする。真である場合に、次いで
●最大1つのサンプル変更を伴う弱フィルタを適用する。従って、次の条件:|δ|<10(tC)(なお、δ=(9×(q0-p0)-(3×(q1-p1)+8))>>4)がチェックされ、条件が真であると評価される場合に、次いで、サンプルp0及びq0が変更され、そうでない場合には、フィルタリングは適用されない。
【0043】
図3は、4×Nブロック、N×4ブロック、8×Nブロック、及びN×8ブロックについての1つのサンプル変更を伴った弱フィルタの例を示す。
【0044】
[2.1.6 境界決定(フィルタリング処理され得るエッジ)]
フィルタリングは、ルーマについては4×4グリッドに、クロマについては8×8グリッドに適用される。加えて、それは、変換ブロック境界又はコーディングサブブロック境界でなければならない(例えば、アフィン動き予測、ATMVPの利用による。)。そのような境界でないものについては、フィルタは無効にされる。maxFilterLengthPs及びmaxFilterLengthQsは、P-side及びQ-sideの夫々でいくつのサンプルがフィルタリング処理されるべきかを示す。
【0045】
[2.1.6.1 TU境界]
水平エッジの各4つの列(又は水平エッジの各4つの行)について、Pブロック及びQブロックについて別々にフィルタ長さを決定するよう次をチェックする。水平エッジを例とすると:
- 行が変換ブロックエッジである(つまり、位置(xCb+x,yCb+y)が変換ブロックエッジにある)場合に、edgeFlags[x][y]は1に等しくセットされる。
- edgeFlags[x][y]が1に等しくセットされる場合に、次が適用される:
- maxFilterLengthQs[x][y]がセットされる:
- P又はQの変換ブロック高さが4以下である場合に、
maxFilterLengthQs[x][y]は1にセットされる;
- Qの変換ブロック高さが32以上である場合に、
maxFilterLengthQs[x][y]は7にセットされる;
- 他の場合には、
maxFilterLengthQs[x][y]は3にセットされる。
- maxFilterLengthPs[x][y]がセットされる:
- P又はQの変換ブロック幅が4以下である場合に、
maxFilterLengthPs[x][y]は1にセットされる;
- Pの変換ブロック幅が32以上である場合に、
maxFilterLengthPs[x][y]は7にセットされる;
- 他の場合には、
maxFilterLengthPs[x][y]は3にセットされる。
【0046】
[2.1.6.2 サブブロック境界]
サブブロック境界検出のためにデブロッキングフィルタプロセスで使用されるサブブロック高さは、Max(8,nCbH/numSbY)にセットされる。
- アレイエッジTbFlagsはedgeFlagsに等しくセットされる。
- yEdge=0..min((nCbH/8)-1,numSbY-1)、x=0..nCbW-1について:
- 現在のコーディングブロック内の垂直位置yは、yEdge×sbHに等しくセットされる。
- edgeFlags[x][y]が1に等しいとき、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]の値は、次のように変更される:
- yが0(最初のサブブロック)に等しく、edgeFlags[x][y]が1に等しい場合に、次が適用される:
- numSbYが1よりも大きい(Qがサブブロックコーディングされている)とき、次が適用される:
【数1】
- inter_affine_flag[xCb][yCb-1]が1に等しいか、あるいは、merge_subblock_flag[xCb][yCb-1]が1に等しい(Pがサブブロックコーディングされている)とき、次が適用される:
【数2】
- そうではなく、edgeTbFlags[x][y]が1に等しい(最初のサブブロック及びTB境界でない)場合に、次が適用される:
【数3】
- そうではなく、次の条件:
- (y+4)がnCbH以上である(最後のサブブロック);
- edgeTbFlags[x][y-4]が1に等しい(上に4サンプル離れてTU境界がある);
- edgeTbFlags[x][y+4]が1に等しい(下に4サンプル離れてTU境界がある)
の1つ以上が真である場合に、次が適用される:
【数4】
- そうではなく、次の条件:
- yEdgeが1に等しい(2番目のサブブロック);
- yEdgeが(nCB/8)-1に等しい(最後のサブブロック);
- edgeTbFlags[x][y-sbH]が1に等しい(上にsbHサンプル離れてTU境界がある);
- edgeTbFlags[x][y+sbH]が1に等しい(下にsbHサンプル離れてTU境界がある)
の1つ以上が真である場合に、次が適用される:
【数5】
- 上記以外の場合には、次が適用される:
【数6】
【0047】
デブロッキングフィルタは、変換エッジでは4×4ルーマグリッドに対して有効にされるが、サブブロック境界では8×8ルーマグリッドに対して有効にされることが分かる。サブブロック境界は、STMVP及びアフィンモードによって導入された予測ユニット境界を含む。8×8グリッド上のサブブロック境界及びアフィンサブブロックについては、HEVCデブロッキングフィルタにおけるPU内の同じロジックが適用される。PU境界については、デブロッキングフィルタは、隣接サブブロックの参照ピクチャ及び動きベクトル間の差を考慮して8×8グリッドに対して適用される。
【0048】
[2.2 VVC規格WD6におけるデブロッキングフィルタリングプロセス]
デブロッキングフィルタの次の仕様は、VVC作業草案JVET-O2001-vEから抜粋されている。
【0049】
[2.2.1 デブロッキングフィルタプロセス]
[2.2.1.1 概略]
このプロセスへの入力は、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureL、ChromaArrayTypeが0に等しくないときには、アレイrecPictureCb及びrecPictureCrである。
【0050】
このプロセスの出力は、デブロッキング後の変更された再構成されたピクチャ、つまり、アレイrecPictureL、ChromaArrayTypeが0に等しくないときには、アレイrecPictureCb及びrecPictureCrである。
【0051】
ピクチャ内の垂直エッジが最初にフィルタリング処理される。次いで、ピクチャ内の水平エッジが、垂直エッジフィルタリングプロセスによって変更されたサンプルを入力として用いて、フィルタリング処理される。各CTUのCTB内の垂直及び水平エッジは、コーディングユニット単位で別々に処理される。コーディングユニット内のコーディングブロックの垂直エッジは、コーディングブロックの左側にあるエッジから始まって、その幾何学的な順序でコーディングブロックの右側へ向かってエッジの中を進みながら、フィルタリング処理される。コーディングユニット内のコーディングブロックの水平エッジは、コーディングブロックの上にあるエッジから始まって、その幾何学的な順序でコーディングブロックの下へ向かってエッジの中を進みながら、フィルタリング処理される。
注記-フィルタリングプロセスは、この仕様ではピクチャ単位で定められているが、フィルタリングプロセスは、デコーダが同じ出力値を生成するように処理の依存関係の順序を適切に考慮しているという条件で、コーディングユニット単位で実装可能であり、同等の結果を得ることができる。
【0052】
デブロッキングフィルタプロセスは、次のタイプのエッジを除いて、ピクチャの全てのコーディングサブブロックエッジ及び変換ブロックエッジに適用される:
- ピクチャの境界にあるエッジ,
- loop_filter_across_subpic_enabled_flag[SubPicIdx]が0に等しいサブピクチャの境界と一致するエッジ,
- pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しいときにピクチャの垂直境界と一致するエッジ,
- loop_filter_across_bricks_enabled_flagが0に等しいときにブリック境界と一致するエッジ,
- loop_filter_across_slices_enabled_flagが0に等しいときにスライス境界と一致するエッジ,
- 1に等しいslice_deblocking_filter_disabled_flagを有するスライスの上又は左境界と一致するエッジ,
- 1に等しいslice_deblocking_filter_disabled_flagを有するスライス内のエッジ,
- ルーマ成分の4×4サンプルグリッド境界に対応しないエッジ,
- クロマ成分の8×8サンプルグリッド境界に対応しないエッジ,
- エッジの両側が1に等しいintra_bdpcm_flagを有するルーマ成分内のエッジ,
- 関連する変換ユニットのエッジではないクロマサブブロックのエッジ。
【0053】
エッジタイプ、垂直(vertical)又は水平(horizontal)は、表8-17で定められるように、変数edgeTypeによって表される。
【表4】
【0054】
現在のスライスのslice_deblocking_filter_disabled_flagが0に等しいとき、次が適用される:
- 変数treeTypeがDUAL_TREE_LUMAに等しくセットされる。
- 垂直エッジは、変数treeType、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureL、及びEDGE_VERに等しい変数edgeTypeを入力として、デブロッキング後の変更された再構成されたピクチャ、つまり、アレイrecPictureLを出力として用いて、第8.8.3.2節で定められているように、1方向のためのデブロッキングフィルタプロセスを呼び出すことによってフィルタリング処理される。
- 水平エッジは、変数treeType、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureL、及びEDGE_HORに等しい変数edgeTypeを入力として、デブロッキング後の変更された再構成されたピクチャ、つまり、アレイrecPictureLを出力として用いて、第8.8.3.2節で定められているように、1方向のためのデブロッキングフィルタプロセスを呼び出すことによってフィルタリング処理される。
- ChromaArrayTypeが0に等しくないとき、次が適用される:
- 変数treeTypeはDUAL_TREE_CHROMAに等しくセットされる。
- 垂直エッジは、変数treeType、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureCb及びrecPictureCr、並びにEDGE_VERに等しい変数edgeTypeを入力として、デブロッキング後の変更された再構成されたピクチャ、つまり、アレイrecPictureLを出力として用いて、第8.8.3.2節で定められているように、1方向のためのデブロッキングフィルタプロセスを呼び出すことによってフィルタリング処理される。
- 水平エッジは、変数treeType、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureCb及びrecPictureCr、並びにEDGE_HORに等しい変数edgeTypeを入力として、デブロッキング後の変更された再構成されたピクチャ、つまり、アレイrecPictureLを出力として用いて、第8.8.3.2節で定められているように、1方向のためのデブロッキングフィルタプロセスを呼び出すことによってフィルタリング処理される。
【0055】
[2.2.1.2 1方向のためのデブロッキングフィルタ]
このプロセスへの入力は:
- ルーマ成分(DUAL_TREE_LUMA)又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されているかどうかを示す変数treeType,
- treeTypegaDUAL_TREE_LUMAに等しいとき、デブロッキング前の再構成されたピクチャ、つまり、アレイrecPictureL,
- ChromaArrayTypeが0に等しくなく、かつ、treeTypeがDUAL_TREE_CHROMAに等しいとき、アレイrecPictureCb及びrecPictureCr,
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType
である。
【0056】
このプロセスの出力は、デブロッキング後の変更された再構成されたピクチャであり、つまり:
- treeTypeがDUAL_TREE_LUMAに等しいとき、アレイrecPictureL,
- ChromaArrayTypeが0に等しくなく、かつ、treeTypeがDUAL_TREE_CHROMAに等しいとき、アレイrecPictureCb及びrecPictureCr
である。
【0057】
変数firstCompIdx及びlastCompIdxは、次のように導出される:
【数7】
【0058】
firstCompIdx以上lastCompIdx以下の範囲をとる色成分インデックスによって示されるコーディングユニットの色成分ごとの各コーディングユニット及び各コーディングブロックについて、コーディングブロック幅nCbW、コーディングブロック高さnCbH、及びコーディングブロックの左上サンプルの位置(xCb,yCb)により、cIdxが0に等しいとき、又はcIdxが0に等しくなく、edgeTypeがEDGE_VERに等しく、xCb%8が0に等しいとき、又はcIdxが0に等しくなく、edgeTypeがEDGE_HORに等しく、yCb%8が0に等しいとき、エッジは、次の順序づけられたステップによってフィルタリング処理される。
【0059】
1.変数filterEdgeFlagが次のように導出される:
- edgeTypeがEDGE_VERに等しく、次の条件の1つ以上が真である場合に、filterEdgeFlagは0に等しくセットされる:
- 現在のコーディングブロックの左境界がピクチャの左境界である;
- 現在のコーディングブロックの左境界がサブピクチャの左又は右境界であり、loop_filter_across_subpic_enabled_flag[SubPicIdx]が0に等しい;
- 現在のコーディングブロックの左境界がブリックの左境界であり、loop_filter_across_bricks_enabled_flagが0に等しい;
- 現在のコーディングブロックの左境界がスライスの左境界であり、loop_filter_across_slices_enabled_flagが0に等しい;
- 現在のコーディングブロックの左境界がピクチャの垂直仮想境界の1つであり、pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しい。
- そうではなく、edgeTypeがEDGE_HORに等しく、次の条件の1つ以上が真である場合に、変数filterEdgeFlagは0に等しくセットされる:
- 現在のルーマコーディングブロックの上境界がピクチャの上境界である;
- 現在のコーディングブロックの上境界がサブピクチャの上又は下境界であり、loop_filter_across_subpic_enabled_flag[SubPicIdx]が0に等しい;
- 現在のコーディングブロックの上境界がブリックの上境界であり、loop_filter_across_bricks_enabled_flagが0に等しい;
- 現在のコーディングブロックの上境界がスライスの上境界であり、loop_filter_across_slices_enabled_flagが0に等しい;
- 現在のコーディングブロックの上境界がピクチャの水平仮想境界の1つであり、pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しい。
【0060】
2.2次元(nCbW)×(nCbH)アレイの全ての要素edgeFlags、maxFilterLengthQs及びmaxFilterLengthPsが、0に等しくなるよう初期化される。
【0061】
3.第8.8.3.3節で定められている変換ブロック境界の導出プロセスが、位置(xCb,yCb)、コーディングブロック幅nCbW、コーディングブロック高さnCbH、変数cIdx、変数filterEdgeFlag、アレイedgeFlags、最大フィルタ長さアレイmaxFilterLengthPs及びmaxFilterLengthQs、並びに変数edgeTypeを入力として、変更されたアレイedgeFlags、変更された最大フィルタ長さアレイmaxFilterLengthPs及びmaxFilterLengthQsを出力として用いて、呼び出される。
【0062】
4.cIdxが0に等しい場合に、第8.8.3.4節で定められているコーディングサブブロック境界の導出プロセスが、位置(xCb,yCb)、コーディングブロック幅nCbW、コーディングブロック高さnCbH、アレイedgeFlags、最大フィルタ長さアレイmaxFilterLengthPs及びmaxFilterLengthQs、並びに変数edgeTypeを入力として、変更されたアレイedgeFlags、変更された最大フィルタ長さアレイmaxFilterLengthPs及びmaxFilterLengthQsを出力として用いて、呼び出される。
【0063】
5.ピクチャサンプルアレイrecPictureが、次のように導出される:
- cIdxが0に等しい場合に、recPictureは、デブロッキング前の再構成されたルーマピクチャサンプルアレイrecPictureLに等しくセットされる,
- そうではなく、cIdxが1に等しい場合に、recPictureは、デブロッキング前の再構成されたクロマピクチャサンプルアレイrecPictureCbに等しくセットされる,
- 上記以外の場合(cIdxが2に等しい場合)に、recPictureは、デブロッキング前の再構成されたクロマピクチャサンプルアレイrecPictureCrに等しくセットされる。
【0064】
6.第8.8.3.5節で定められている境界フィルタリング強さの導出プロセスが、ピクチャサンプルアレイrecPicture、ルーマ位置(xCb,yCb)、コーディングブロック幅nCbW、コーディングブロック高さnCbH、変数edgeType、変数cIdx、及びアレイedgeFlagsを入力として、(nCbW)×(nCbH)アレイbSを出力として用いて、呼び出される。
【0065】
7.1つの方向のためのエッジフィルタリングプロセスが、変数edgeType、変数cIdx、デブロッキング前の再構成されたピクチャrecPicture、位置(xCb,yCb)、コーディングブロック幅nCbW、コーディングブロック高さnCbH、慣れ日にアレイbS、maxFilterLengthPs、及びmaxFilterLengthQsを入力として、変更された再構成されたピクチャrecPictureを出力として用いて、第8.8.3.6節で定められているように、コーディングブロックについて呼び出される。
【0066】
[2.2.1.3 変換ブロック境界の導出プロセス]
このプロセスへの入力は:
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの幅を示す変数nCbW,
- 現在のコーディングブロックの高さを示す変数nCbH,
- 現在のコーディングブロックの色成分を示す変数cIdx,
- 変数filterEdgeFlag,
- 2次元(nCbW)×(nCbH)アレイedgeFlags,
- 2次元(nCbW)×(nCbH)アレイmaxFilterLengthQs及びmaxFilterLengthPs,
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType
である。
【0067】
このプロセスの出力は:
- 変更された2次元(nCbW)×(nCbH)アレイedgeFlags,
- 変更された2次元(nCbW)×(nCbH)アレイmaxFilterLengthQs及びmaxFilterLengthPs
である。
【0068】
edgeTypeに応じて、アレイedgeFlags、maxFilterLengthPs及びmaxFilterLengthQsは、次のように導出される:
- 変数gridSizeが次のようにセットされる:
【数8】
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
- 変数numEdgesはMax(1,nCbW/gridSize)に等しくセットされる。
- xEdge=0..numEdges-1及びy=0..nCbH-1について、次が適用される:
- 現在のコーディングブロック内の水平位置xはxEdge×gridSizeに等しくセットされる。
- edgeFlags[x][y]の値は次のように導出される:
- pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しく、(xCb+x)がいずれかのn=0..pps_num_ver_virtual_boundaries-1についてPpsVirtualBoundariesPosX[n]に等しい場合に、edgeFlags[x][y]は0に等しくセットされる。
- そうではなく、xが0に等しい場合に、edgeFlags[x][y]はfilterEdgeFlagに等しくセットされる。
- そうではなく、位置(xCb+x,yCb+y)が変換ブロックエッジにある場合に、edgeFlags[x][y]は1に等しくセットされる。
- edgeFlags[x][y]が1に等しいとき、次が適用される:
- cIdxが0に等しい場合に、次が適用される:
- maxFilterLengthQs[x][y]の値は次のように導出される:
- ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの幅が4以下であるか、あるいは、ルーマ位置(xCb+x-1,yCb+y)での変換ブロックのルーマサンプルでの幅が4以下である場合に、maxFilterLengthQs[x][y]は1に等しくセットされる。
- そうではなく、ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの幅が32以上である場合に、maxFilterLengthQs[x][y]は7に等しくセットされる。
- 上記以外の場合に、maxFilterLengthQs[x][y]は3に等しくセットされる。
- maxFilterLengthPs[x][y]の値は次のように導出される:
- ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの幅が4以下であるか、あるいは、ルーマ位置(xCb+x-1,yCb+y)での変換ブロックのルーマサンプルでの幅が4以下である場合に、maxFilterLengthPs[x][y]は1に等しくセットされる。
- そうではなく、ルーマ位置(xCb+x-1,yCb+y)での変換ブロックのルーマサンプルでの幅が32以上である場合に、maxFilterLengthPs[x][y]は7に等しくセットされる。
- 上記以外の場合に、maxFilterLengthPs[x][y]は3に等しくセットされる。
- そうでない場合(cIdxが0に等しくない場合)に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]の値は、次のように導出される::
- クロマ位置(xCb+x,yCb+y)での変換ブロックのクロマサンプルでの幅及びクロマ位置(xCb+x-1,yCb+y)での幅が両方とも8以下である場合に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]は3に等しくセットされる。
- 上記以外の場合に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]は1に等しくセットされる。
- そうでない場合(edgeTypeがEDGE_HORである場合)に、次が適用される:
- 変数numEdgesはMax(1,nCbH/gridSize)に等しくセットされる。
- yEdge=0..numEdges-1及びx=0..nCbW-1について、次が適用される:
- 現在のコーディングブロック内の垂直位置yはyEdge×gridSizeに等しくセットされる。
- edgeFlags[x][y]の値は次のように導出される:
- pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しく、(yCb+y)がいずれかのn=0..pps_num_hor_virtual_boundaries-1についてPpsVirtualBoundariesPosY[n]に等しい場合に、edgeFlags[x][y]は0に等しくセットされる。
- そうではなく、yが0に等しい場合に、edgeFlags[x][y]はfilterEdgeFlagに等しくセットされる。
- そうではなく、位置(xCb+x,yCb+y)が変換ブロックエッジにある場合に、edgeFlags[x][y]は1に等しくセットされる。
- edgeFlags[x][y]が1に等しいとき、次が適用される:
- cIdxが0に等しい場合に、次が適用される:
- maxFilterLengthQs[x][y]の値は次のように導出される:
- ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの高さが4以下であるか、あるいは、ルーマ位置(xCb+x,yCb+y-1)での変換ブロックのルーマサンプルでの高さが4以下である場合に、maxFilterLengthQs[x][y]は1に等しくセットされる。
- そうではなく、ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの高さが32以上である場合に、maxFilterLengthQs[x][y]は7に等しくセットされる。
- 上記以外の場合に、maxFilterLengthQs[x][y]は3に等しくセットされる。
- maxFilterLengthPs[x][y]の値は次のように導出される:
- ルーマ位置(xCb+x,yCb+y)での変換ブロックのルーマサンプルでの高さが4以下であるか、あるいは、ルーマ位置(xCb+x,yCb+y-1)での変換ブロックのルーマサンプルでの高さが4以下である場合に、maxFilterLengthPs[x][y]は1に等しくセットされる。
- そうではなく、ルーマ位置(xCb+x,yCb+y-1)での変換ブロックのルーマサンプルでの幅が32以上である場合に、maxFilterLengthPs[x][y]は7に等しくセットされる。
- 上記以外の場合に、maxFilterLengthPs[x][y]は3に等しくセットされる。
- そうでない場合(cIdxが0に等しくない場合)に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]の値は、次のように導出される::
- 次の条件の全てが真である場合に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]は3に等しくセットされる:
- クロマ位置(xCb+x,yCb+y)での変換ブロックのクロマサンプルでの高さ及びクロマ位置(xCb+x,yCb+y-1)での高さが両方とも8以下である。
- (yCb+y)%CtbHeightCが0よりも大きい、つまり、水平エッジが上側クロマCTB境界と重なり合わない。
- 上記以外の場合に、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]は1に等しくセットされる。
【0069】
[2.2.1.4 コーディングサブブロック境界の導出プロセス]
このプロセスへの入力は:
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの幅を示す変数nCbW,
- 現在のコーディングブロックの高さを示す変数nCbH,
- 2次元(nCbW)×(nCbH)アレイedgeFlags,
- 2次元(nCbW)×(nCbH)アレイmaxFilterLengthQs及びmaxFilterLengthPs,
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType
である。
【0070】
このプロセスの出力は:
- 変更された2次元(nCbW)×(nCbH)アレイedgeFlags,
- 変更された2次元(nCbW)×(nCbH)アレイmaxFilterLengthQs及びmaxFilterLengthPs
である。
【0071】
水平方向におけるコーディングサブブロックの数numSbX及び垂直方向におけるコーディングサブブロックの数numSbYは、次のように導出される:
- inter_affine_flag[xCb][yCb]が1に等しいか、あるいは、merge_subblock_flag[xCb][yCb]が1に等しい場合に、numSbX及びnumSbYは、NumbSbX[xCb][yCb]及びNumbSbY[xCb][yCb]に夫々等しくセットされる。
- 上記以外の場合に、numSbX及びnumSbYは両方とも1に等しくセットされる。
【0072】
edgeTypeの値に応じて、次が適用される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
- 変数sbWはMax(8,nCbW/numSbX)に等しくセットされる。
- アレイedgeTbFlagsはedgeFlagsに等しくセットされる。
- xEdge=0..min((nCbW/8)-1,numSbX-1)、y=0..nCbH-1について:
- 現在のコーディングブロック内の水平位置xはxEdge×sBWに等しくセットされる。
- edgeFlags[x][y]の値は次のように導出される:
- pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しく、xがいずれかのn=0..pps_num_ver_virtual_boundaries-1についてPpsVirtualBoundariesPosX[n]に等しい場合に、次が適用される:
【数9】
- そうでない場合には、次が適用される:
【数10】
- edgeFlags[x][y]が1に等しいとき、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]の値は、次のように変更される:
- xが0に等しい場合に、次が適用される:
- numSbXが1よりも多いとき、次が適用される:
【数11】
- inter_affine_flag[xCb-1][yCb]が1に等しいか、あるいは、merge_subblock_flag[xCb-1][yCb]が1に等しいとき、次が適用される:
【数12】
- そうではなく、edgeTbFlags[x][y]が1に等しい場合に、次が適用される:
【数13】
- そうではなく、次の条件:
- (x+4)がnCbW以上である,
- edgeTbFlags[x-4][y]が1に等しい,
- edgeTbFlags[x+4][y]が1に等しい
のうちの1つ以上が真である場合に、次が適用される:
【数14】
- そうではなく、次の条件:
- xEdgeが1に等しい,
- xEdgeが(nCbW/8)-1に等しい,
- edgeTbFlags[x-sbW][y]が1に等しい,
- edgeTbFlags[x+sbW][y]が1に等しい
のうちの1つ以上が真である場合に、次が適用される:
【数15】
- 上記以外の場合には、次が適用される:
【数16】
- そうではなく、edgeTypeがEDGE_HORである場合に、次が適用される:
- 変数sbHはMax(8,nCbH/numSbY)に等しくセットされる。
- アレイedgeTbFlagsはedgeFlagsに等しくセットされる。
- yEdge=0..min((nCbH/8)-1,numSbY-1)、x=0..nCbW-1について:
- 現在のコーディングブロック内の垂直位置yはyEdge×sBHに等しくセットされる。
- edgeFlags[x][y]の値は次のように導出される:
- pps_loop_flter_across_virtual_boundaries_disabled_flagが1に等しく、yがいずれかのn=0..pps_num_hor_virtual_boundaries-1についてPpsVirtualBoundariesPosY[n]に等しい場合に、次が適用される:
【数17】
- そうでない場合には、次が適用される:
【数18】
- edgeFlags[x][y]が1に等しいとき、maxFilterLengthPs[x][y]及びmaxFilterLengthQs[x][y]の値は、次のように変更される:
- yが0に等しく、edgeFlags[x][y]が1に等しい場合に、次が適用される:
- numSbYが1よりも多いとき、次が適用される:
【数19】
- inter_affine_flag[xCb][yCb-1]が1に等しいか、あるいは、merge_subblock_flag[xCb][yCb-1]が1に等しいとき、次が適用される:
【数20】
- そうではなく、edgeTbFlags[x][y]が1に等しい場合に、次が適用される:
【数21】
- そうではなく、次の条件:
- (y+4)がnCbH以上である,
- edgeTbFlags[x][y-4]が1に等しい,
- edgeTbFlags[x][y+4]が1に等しい
のうちの1つ以上が真である場合に、次が適用される:
【数22】
- そうではなく、次の条件:
- yEdgeが1に等しい,
- yEdgeが(nCbH/8)-1に等しい,
- edgeTbFlags[x][y-sbH]が1に等しい,
- edgeTbFlags[x][y+sbH]が1に等しい
のうちの1つ以上が真である場合に、次が適用される:
【数23】
- 上記以外の場合には、次が適用される:
【数24】
【0073】
[2.2.1.5 境界フィルタリング強さの導出プロセス]
このプロセスへの入力は:
- ピクチャサンプルアレイrecPicture,
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの幅を示す変数nCbW,
- 現在のコーディングブロックの高さを示す変数nCbH,
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 現在のコーディングブロックの色成分を示す変数cIdx,
- 2次元(nCbW)×(nCbH)アレイedgeFlags
である。
【0074】
このプロセスの出力は、境界フィルタリング強さを示す2次元(nCbW)×(nCbH)アレイbSである。
【0075】
変数xD
i、yD
j、xN及びyNは、次のように導出される:
- 変数gridSizeは、次のようにセットされる:
【数25】
- edgeTypeがEDGE_VERに等しい場合、
【数26】
- そうではない場合(edgeTypeがEDGE_HORである場合)、
【数27】
xD
i(i=0..xN)及びyD
j(j=0..yN)について、次が適用される:
- edgeFlags[xD
i][yD
j]が0に等しい場合に、変数bS[xD
i][yD
j]は0に等しくセットされる。
- そうでない場合には、次が適用される:
- サンプル値p
0及びq
0は、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合、p
0はrecPicture[xCb+xD
i-1][yCb+yD
j]に等しくセットされ、q
0はrecPicture[xCb+xD
i][yCb+yD
j]に等しくセットされる。
- そうでない場合(edgeTypeがEDGE_HORである場合)、p
0はrecPicture[xCb+xD
i][yCb+yD
j-1]に等しくセットされ、q
0はrecPicture[xCb+xD
i][yCb+yD
j]に等しくセットされる。
- 変数bS[xD
i][yD
j]は、次のように導出される:
- cIdxが0に等しく、サンプルp0及びq0の両方が、1に等しいintra_bdpcm_flagを有するコーディングブロックにある場合に、bS[xD
i][yD
j]は0に等しくセットされる。
- そうではなく、サンプルp
0又はq
0が、イントラ予測モードデコーディングされたコーディングユニットのコーディングブロックにある場合に、bS[xD
i][yD
j]は2に等しくセットされる。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp
0又はq
0が、1に等しいclip_flagを有するコーディングブロックにある場合に、bS[xD
i][yD
j]は2に等しくセットされる。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、サンプルp
0又はq
0が、1つ以上の非ゼロ変換係数レベルを含む変換ブロックにある場合に、bS[xD
i][yD
j]は1に等しくセットされる。
- そうではなく、ブロックエッジが変換ブロックエッジでもあり、cIdxが0よりも大きく、サンプルp
0又はq
0が、1に等しいtu_joint_cbcr_residual_flagを有する変換ユニットにある場合に、bS[xD
i][yD
j]は1に等しくセットされる。
- そうではなく、サンプルp
0を含むコーディングサブブロックの予測モードが、サンプルq
0を含むコーディングサブブロックの予測モードとは異なる(つまり、コーディングサブブロックの一方がIBC予測モードでコーディングされ、他方がインター予測モードでコーディングされる)場合に、bS[xD
i][yD
j]は1に等しくセットされる。
- そうではなく、cIdxが0に等しく、次の条件
- サンプルp
0を含むコーディングサブブロック及びサンプルq
0を含むコーディングサブブロックが両方ともIBC予測モードでコーディングされ、2つのコーディングサブブロックの予測で使用されるブロックベクトルの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上である。
- サンプルp
0を含むコーディングサブブロックの予測のために、サンプルq
0を含むコーディングサブブロックの予測のためとは異なる参照ピクチャ又は異なる数の動きベクトルが使用される。
注記1:2つのコーディングサブブロックに使用される参照ピクチャが同じであるか又は異なるかの決定は、どのピクチャが参照されるかにのみ基づき、参照ピクチャリスト0へのインデックス又は参照ピクチャリスト1へのインデックスを用いて予測が形成されるかどうかにも、参照ピクチャリスト内のインデックス位置が異なるかどうかにも無関係である。
注記2:(xSb,ySb)をカバーする左上サンプルを含むコーディングサブブロックの予測のために使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
- 1つの動きベクトルが、サンプルp
0を含むコーディングサブブロックを予測するために使用され、1つの動きベクトルが、サンプルq
0を含むコーディングサブブロックを予測するために使用され、使用される動きベクトルの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上である。
- 2つの動きベクトル及び2つの参照ピクチャが、サンプルp
0を含むコーディングサブブロックを予測するために使用され、同じ2つの参照ピクチャの2つの動きベクトルが、サンプルq
0を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャについて2つのコーディングサブブロックの予測で使用される2つの動きベクトルの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上である。
- 同じ参照ピクチャの2つの動きベクトルが、サンプルp
0を含むコーディングサブブロックを予測するために使用され、同じ参照ピクチャの2つの動きベクトルが、サンプルq
0を含むコーディングサブブロックを予測するために使用され、次の条件の両方が真である:
- 2つのコーディングサブブロックの予測で使用されるリスト0動きベクトルの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上であるか、あるいは、2つのコーディングサブブロックの予測で使用されるリスト1動きベクトルの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上である。
- サンプルp
0を含むコーディングサブブロックの予測で使用されるリスト0動きベクトルと、サンプルq
0を含むコーディングサブブロックの予測で使用されるリスト1動きベクトルとの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上であるか、あるいは、サンプルp
0を含むコーディングサブブロックの予測で使用されるリスト1動きベクトルと、サンプルq
0を含むコーディングサブブロックの予測で使用されるリスト0動きベクトルとの水平又は垂直成分の間の絶対差が、1/16ルーマサンプルの単位で8以上である。
のうちの1つ以上が真である場合に、bS[xD
i][yD
j]は1に等しくセットされる。
- 上記以外の場合に、変数bS[xD
i][yD
j]は0に等しくセットされる。
【0076】
[2.2.1.6 1つの方向のためのエッジフィルタリングプロセス]
このプロセスへの入力は:
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 現在のコーディングブロックの色成分を示す変数cIdx,
- デブロッキング前の再構成されたピクチャrecPicture,
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの幅を示す変数nCbW,
- 現在のコーディングブロックの高さを示す変数nCbH,
- 境界強さを示すアレイbS,
- 変数filterEdgeFlag,
- アレイmaxFilterLengthPs及びmaxFilterLengthQs
である。
【0077】
このプロセスの出力は、デブロッキング後の変更された再構成されたピクチャrecPictureである。
【0078】
エッジフィルタリングプロセスのために、次が適用される:
- 変数gridSizeは、次のようにセットされる:
【数28】
- 変数subW、subH、xN、yNは、次のように導出される:
【数29】
- 変数xD
k(k=0..xN)及びyD
m(m=0..yN)は、次のように導出される:
【数30】
- xD
k(k=0..xN)及びyD
m(m=0..yN)について、次が適用される:
- bS[xD
k][yD
m]が0よりも大きい場合に、次の順序づけられたステップが適用される:
- cIdxが0に等しい場合に、現在のコーディングユニットのルーマコーディングブロック内のエッジに対するフィルタリングプロセスは、次の順序づけられたステップから成る:
1.第8.8.3.6.1節で定められているルーマブロックエッジに対する決定プロセスが、ルーマピクチャサンプルアレイrecPicture、ルーマコーディングブロックの位置(xCb,yCb)、(xD
k,yD
m)に等しくセットされたブロックのルーマ位置(xBl,yBl)、エッジ方向edgeType、境界フィルタリング強さbS[xD
k][yD
m]、maxFilterLengthPs[xD
k][yD
m]に等しくセットされた最大フィルタ長さmaxFilterLengthP、maxFilterLengthQs[xD
k][yD
m]に等しくセットされた最大フィルタ長さmaxFilterLengthQを入力として、決定dE、dEp及びdEq、変更された最大フィルタ長さmaxFilterLengthP及びmaxFilterLengthQ、並びに変数t
Cを出力として用いて、呼び出される。
2.第8.8.3.6.2節で定められているブロックエッジのためのフィルタリングプロセスが、ルーマピクチャサンプルアレイrecPicture、ルーマコーディングブロックの位置(xCb,yCb)、(xD
k,yD
m)に等しくセットされたブロックのルーマ位置(xBl,yBl)、エッジ方向edgeType、決定dE、dEp及びdEq、最大フィルタ長さmaxFilterLengthP及びmaxFilterLengthQ、並びに変数t
Cを入力として、変更されたルーマピクチャサンプルアレイrecPictureを出力として用いて、呼び出される。
- そうではない場合(cIdxが0に等しくない場合)に、cIdxによって指定される現在のコーディングユニットのクロマコーディングブロック内のエッジに対するフィルタリングプロセスは、次の順序づけられたステップから成る:
1.変数cQpPicOffsetが次のように導出される:
【数31】
2.第8.8.3.6.3節で定められているクロマブロックエッジのための決定プロセスが、クロマピクチャサンプルアレイrecPicture、クロマコーディングブロックの位置(xCb,yCb)、(xD
k,yD
m)に等しくセットされたクロマのルーマ位置(xBl,yBl)、エッジ方向edgeType、変数cIdx、変数cQpPicOffset、境界フィルタリング強さbS[xD
k][yD
m]、及びmaxFilterLengthPs[xD
k][yD
m]に等しくセットされた変数maxFilterLengthCbCrを入力として、変更された変数maxFilterLengthCbCr、及び変数t
Cを出力として用いて、呼び出される。
3.maxFilterLengthCbCrが0よりも大きいとき、第8.8.3.6.4節で定められているクロマブロックエッジのためのフィルタリングプロセスが、クロマピクチャサンプルアレイrecPicture、クロマコーディングブロックの位置(xCb,yCb)、(xD
k,yD
m)に等しくセットされたブロックのクロマ位置(xBl,yBl)、エッジ方向edgeType、変数maxFilterLengthCbCr、及び変数t
Cを入力として、変更されたクロマピクチャサンプルアレイrecPictureを出力として用いて、呼び出される。
【0079】
[2.2.1.6.1 ルーマブロックエッジのための決定プロセス]
このプロセスへの入力は:
- ピクチャサンプルアレイrecPicture,
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの左上サンプルに対する現在のブロックの左上サンプルを指定する位置(xBl,yBl),
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 境界フィルタリング強さを示す変数bS,
- 最大フィルタ長さを示す変数maxFilterLengthP,
- 最大フィルタ長さを示す変数maxFilterLengthQ
である。
【0080】
このプロセスの出力は:
- 決定を含む変数dE、dEp及びdEq,
- 変更されたフィルタ長さ変数maxFilterLengthP及びmaxFilterLengthQ,
- 変数tC
である。
【0081】
サンプル値p
i,k及びq
j,k(i=0..maxFilterLengthP、j=0..maxFilterLengthQ、k=0及び3)は、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
【数32】
- そうでない場合(edgeTypeがEDGE_HORに等しい場合)、次が適用される:
【数33】
【0082】
変数qpOffsetは、次のように導出される:
- sps_ladf_enabled_flagが1に等しい場合に、次が適用される:
- 再構成されたルーマレベルの変数lumaLevelは、次のように導出される:
【数34】
- 変数qpOffsetは、sps_ladf_lowest_interval_qp_offsetに等しくセットされ、次のように変更される:
【数35】
- 上記以外の場合に、qpOffsetは0に等しくセットされる。
【0083】
変数Qp
Q及びQp
Pは、夫々サンプルq
0,0及びp
0,0を含むコーディングブロックを含むコーディングユニットのQp
Y値に等しくセットされる。変数qPは、次のように導出される。
【数36】
【0084】
変数β’の値は、次のように導出された量子化パラメータQに基づき表8-18で指定されるように決定される:
【数37】
ここで、slice_beta_offset_div2は、サンプルq
0,0を含むスライスについてのシンタックス要素slice_beta_offset_div2の値である。
【0085】
【0086】
変数t
C’の値は、次のように導出された量子化パラメータQに基づき表8-18で指定されるように決定される:
【数39】
ここで、slice_tc_offset_div2は、サンプルq
0,0を含むスライスについてのシンタックス要素slice_tc_offset_div2の値である。
【0087】
【0088】
次の順序づけられたステップが適用される:
1.変数dp0、dp3、dq0、及びdq3が、次のように導出される:
【数41】
2.maxFilterLengthP及びmaxFilterLengthQが両方とも3以上であるとき、変数sp0、sq0、spq0、sp3、sq3、及びspq3が、次のように導出される:
【数42】
3.変数sidePisLargeBlk及びsideQisLargeBlkが0に等しくセットされる。
4.maxFilterLengthPが3よりも大きいとき、sidePisLargeBlkは1に等しくセットされる。
5.maxFilterLengthQが3よりも大きいとき、sideQisLargeBlkは1に等しくセットされる。
6.edgeTypeがEDGE_HORであり、(yCb+yBl)%CtbSizeYが0に等しいとき、sidePisLargeBlkは0に等しくセットされる。
7.変数dSam0及びdSam3が0に初期化される。
8.sidePisLargeBlk又はsideQisLargeBlkが0よりも大きいとき、次が適用される:
a.変数qp0L、dp3Lが導出され、maxFilterLengthPは次のように変更される:
- sidePisLargeBlkが1に等しい場合に、次が適用される:
【数43】
- 上記以外の場合に、次が適用される:
【数44】
b.変数dq0L及びdq3Lは、次のように導出される:
- sideQisLargeBlkが1に等しい場合に、次が適用される:
【数45】
- 上記以外の場合に、次が適用される:
【数46】
c.変数dpq0L、dpq3L、及びdLは、次のように導出される:
【数47】
d.dLがβよりも小さいとき、次の順序づけられたステップが適用される:
i.変数dpqが2×dpq0Lに等しくセットされる。
ii.変数spがsp0に等しくセットされ、変数sqがsq0に等しくセットされ、変数spqがspq0に等しくセットされる。
iii.変数p
0、p
3、q
0及びq
3は最初に0に初期化され、次いで、次のように、sidePisLargeBlk及びsideQisLargeBlkに従って変更される:
- sidePisLargeBlkが1に等しいとき、次が適用される:
【数48】
- sideQisLargeBlkが1に等しいとき、次が適用される:
【数49】
iv.サンプル位置(xCb+xBl,yCb+yBl)について、第8.8.3.6.5節で指定されるようなルーマサンプルのための決定プロセスが、サンプル値p
0、p
3、q
0及びq
3、変数dpq、sp、sq、spq、sidePisLargeBlk、sideQisLargeBlk、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam0に割り当てられる。
v.変数dpqが2×dpq3Lに等しくセットされる。
vi.変数spがsp3に等しくセットされ、変数sqがsq3に等しくセットされ、変数spqがspq3に等しくセットされる。
vii.変数p
0、p
3、q
0及びq
3は最初に0に初期化され、次いで、次のように、sidePisLargeBlk及びsideQisLargeBlkに従って変更される:
- sidePisLargeBlkが1に等しいとき、次が適用される:
【数50】
- sideQisLargeBlkが1に等しいとき、次が適用される:
【数51】
viii.サンプル位置(xCb+xBl,yCb+yBl+3)についてedgeTypeがEDGE_VERに等しいとき、又はサンプル位置(xCb+xBl+3,yCb+yBl)についてedgeTypeがEDGE_HORに等しいとき、第8.8.3.6.5節で指定されるようなルーマサンプルのための決定プロセスが、サンプル値p
0、p
3、q
0及びq
3、変数dpq、sp、sq、spq、sidePisLargeBlk、sideQisLargeBlk、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam3に割り当てられる。
9.変数dE、dEp及びdEqが次のように導出される:
- dSam0及びdSam3が両方とも1に等しい場合に、変数dEは3に等しくセットされ、dEpは1に等しくセットされ、dEqは1に等しくセットされる。
- 上記以外の場合には、次の順序づけられたステップが適用される:
a.変数dpq0、dpq3、dp、dq及びdが、次のように導出される:
【数52】
b.変数dE、dEp、dEq、sidePisLargeBlk、及びsideQisLargeBlkが、0に等しくセットされる。
c.dがβよりも小さく、maxFilterLengthP及びmaxFilterLengthQが両方とも2よりも大きいとき、次の順序づけられたステップが適用される:
i.変数dpqが2×dpq0Lに等しくセットされる。
ii.変数spがsp0に等しくセットされ、変数sqがsq0に等しくセットされ、変数spqがspq0に等しくセットされる。
iii.サンプル位置(xCb+xBl,yCb+yBl)について、第8.8.3.6.5節で指定されるようなルーマサンプルのための決定プロセスが、全て0に等しくセットされた変数p
0、p
3、q
0及びq
3、変数dpq、sp、sq、spq、sidePisLargeBlk、sideQisLargeBlk、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam0に割り当てられる。
iv.変数dpqが2×dpq3Lに等しくセットされる。
v.変数spがsp3に等しくセットされ、変数sqがsq3に等しくセットされ、変数spqがspq3に等しくセットされる。
vi.サンプル位置(xCb+xBl,yCb+yBl+3)についてedgeTypeがEDGE_VERに等しいとき、又はサンプル位置(xCb+xBl+3,yCb+yBl)についてedgeTypeがEDGE_HORに等しいとき、第8.8.3.6.5節で指定されるようなルーマサンプルのための決定プロセスが、全て0に等しくセットされた変数p
0、p
3、q
0及びq
3、変数dpq、sp、sq、spq、sidePisLargeBlk、sideQisLargeBlk、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam3に割り当てられる。
d.dがβよりも小さいとき、次の順序づけられたステップが適用される:
i.変数dEが1に等しくセットされる。
ii.dSam0が1に等しく、dSam3が1に等しいとき、変数dEは2に等しくセットされる。
iii.maxFilterLengthPが1よりも大きく、maxFilterLengthQが1よりも大きく、dpが(β+(β>>1))>>3よりも小さいとき、変数dEpは1に等しくセットされる。
iv.maxFilterLengthPが1よりも大きく、maxFilterLengthQが1よりも大きく、dpが(β+(β>>1))>>3よりも小さいとき、変数dEqは1に等しくセットされる。
【表5】
【0089】
[2.2.1.6.2 ルーマブロックエッジのためのフィルタリングプロセス]
このプロセスへの入力は:
- ピクチャサンプルアレイrecPicture,
- 現在のピクチャの左上サンプルに対して現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb),
- 現在のコーディングブロックの左上サンプルに対する現在のブロックの左上サンプルを指定する位置(xBl,yBl),
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 決定を含む変数dE、dEp、及びdEq,
- 最大フィルタ長さを含む変数maxFilterLengthP及びmaxFilterLengthQ,
- 変数tC
である。
【0090】
このプロセスの出力は、変更されたピクチャサンプルアレイrecPictureである。
【0091】
edgeTypeの値に応じて、次が適用される:
- edgeTypeがEDGE_VERである場合に、次の順序づけられたステップが適用される:
1.サンプル値p
i,k及びq
j,k(i=0..maxFilterLengthP、j=0..maxFilterLengthQ、k=0..3)は、次のように導出される:
【数53】
2.dEが0に等しくなく、dEが3に等しくないとき、各サンプル位置(xCb+xBl,yCb+yBl+k)(k=0..3)について、次の順序づけられたステップが適用される:
a.第8.8.3.6.6節で指定されているように短いフィルタを使用するルーマサンプルのためのフィルタリングプロセスは、サンプル値p
i,k、q
i,k(i=0..3)、(xCb+xBl-i-1,yCb+yBl+k)に等しくセットされた位置(xP
i,yP
i)及び(xCb+xBl+i,yCb+yBl+k)に等しくセットされた位置(xQ
i,yQ
i)(i=0..2)、決定dE、変数dEp及びdEq、並びに変数t
Cを入力として、ブロック境界の夫々の側からのフィルタリングされたサンプルの数nDp及びnDq並びにフィルタリングされたサンプル値p
i’及びq
j’を出力として用いて、呼び出される。
b.nDpが0よりも大きいとき、フィルタリングされたサンプル値p
i’(i=0..nDp-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数54】
c.nDqが0よりも大きいとき、フィルタリングされたサンプル値q
j’(j=0..nDq-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数55】
3.dEが3に等しいとき、各サンプル位置(xCb+xBl,yCb+yBl+k)(k=0..3)について、次の順序づけられたステップが適用される:
a.第8.8.3.6.7節で指定されているように長いフィルタを使用するルーマサンプルのためのフィルタリングプロセスは、サンプル値p
i,k、q
j,k(i=0..maxFilterLengthP及びj=0..maxFilterLengthQ)、(xCb+xBl-i-1,yCb+yBl+k)に等しくセットされた位置(xP
i,yP
i)及び(xCb+xBl+j,yCb+yBl+k)に等しくセットされた位置(xQ
j,yQ
j)(j=0..maxFilterLengthQ-1)、変数maxFilterLengthP、maxFilterLengthQ、及びt
Cを入力として、フィルタリングされたサンプル値p
i’及びq
j’を出力として用いて、呼び出される。
b.フィルタリングされたサンプル値p
i’(i=0..maxFilterLengthP-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数56】
c.フィルタリングされたサンプル値q
j’(j=0..maxFilterLengthQ-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数57】
- そうではない場合(edgeTypeがEDGE_HORである場合)には、次の順序づけられたステップが適用される:
1.サンプル値p
i,k及びq
j,k(i=0..maxFilterLengthP、j=0..maxFilterLengthQ、k=0..3)は、次のように導出される:
【数58】
2.dEが0に等しくなく、dEが3に等しくないとき、各サンプル位置(xCb+xBl+k,yCb+yBl)(k=0..3)について、次の順序づけられたステップが適用される:
a.第8.8.3.6.6節で指定されているように短いフィルタを使用するルーマサンプルのためのフィルタリングプロセスは、サンプル値p
i,k、q
i,k(i=0..3)、(xCb+xBl+k,yCb+yBl-i-1)に等しくセットされた位置(xP
i,yP
i)及び(xCb+xBl+k,yCb+yBl+i)に等しくセットされた位置(xQ
i,yQ
i)(i=0..2)、決定dE、変数dEp及びdEq、並びに変数t
Cを入力として、ブロック境界の夫々の側からのフィルタリングされたサンプルの数nDp及びnDq並びにフィルタリングされたサンプル値p
i’及びq
j’を出力として用いて、呼び出される。
b.nDpが0よりも大きいとき、フィルタリングされたサンプル値p
i’(i=0..nDp-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数59】
c.nDqが0よりも大きいとき、フィルタリングされたサンプル値q
j’(j=0..nDq-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数60】
3.dEが3に等しいとき、各サンプル位置(xCb+xBl+k,yCb+yBl)(k=0..3)について、次の順序づけられたステップが適用される:
a.第8.8.3.6.7節で指定されているように長いフィルタを使用するルーマサンプルのためのフィルタリングプロセスは、サンプル値p
i,k、q
j,k(i=0..maxFilterLengthP及びj=0..maxFilterLengthQ)、(xCb+xBl+k,yCb+yBl-i-1)に等しくセットされた位置(xP
i,yP
i)及び(xCb+xBl+kyCb+yBl+j)に等しくセットされた位置(xQ
j,yQ
j)(j=0..maxFilterLengthQ-1)、変数maxFilterLengthP、maxFilterLengthQ、及びt
Cを入力として、フィルタリングされたサンプル値p
i’及びq
j’を出力として用いて、呼び出される。
b.フィルタリングされたサンプル値p
i’(i=0..maxFilterLengthP-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数61】
c.フィルタリングされたサンプル値q
j’(j=0..maxFilterLengthQ-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数62】
【0092】
[2.2.1.6.3 クロマブロックエッジのための決定プロセス]
このプロセスは、ChromaArrayTypeが0に等しくないときにのみ呼び出される。
【0093】
このプロセスへの入力は:
- クロマピクチャサンプルアレイrecPicture,
- 現在のピクチャの左上クロマサンプルに対して現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb),
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl),
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 色成分インデックスを示す変数cIdx,
- ピクチャレベルのクロマ量子化パラメータオフセットを示す変数cQpPicOffset,
- 境界フィルタリング強さを示す変数bS,
- 変数maxFilterLengthCbCr
である。
【0094】
このプロセスの出力は:
- 変更された変数maxFilterLengthCbCr,
- 変数tC
である。
【0095】
変数maxKが、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
【数63】
- そうでない場合(edgeTypeがEDGE_HORである場合)には、次が適用される:
【数64】
【0096】
値p
i及びq
i(i=0..maxFilterLengthCbCr、k=0..maxK)は、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
【数65】
- そうでない場合(edgeTypeがEDGE_HORに等しい場合)、次が適用される:
【数66】
【0097】
変数QpQ及びQpPは、夫々サンプルq0,0及びp0,0を含むコーディングブロックを含むコーディングユニットのQpY値に等しくセットされる。
【0098】
変数Qp
Cは、次のように導出される。
【数67】
注記:変数cQpPicOffsetは、フィルタリング処理されたクロマ成分がCb又はCr成分であるかどうかに応じて、pps_cb_qp_offset又はpps_cr_qp_offsetの値を調整する。しかし、ピクチャ内の調整の量を変更する必要性を回避するために、フィルタリングプロセスは、slice_cb_qp_offset又はslice_cr_qp_offsetの値の調整も、(cu_chroma_qp_offset_enabled_flagが1に等しいときに)CuQpOffset
Cb、CuQpOffset
Cr、又はCuQpOffset
CbCrの値の調整も含まない。
【0099】
変数β’の値は、次のように導出された量子化パラメータQに基づき表8-18で指定されるように決定される:
【数68】
ここで、slice_beta_offset_div2は、サンプルq
0,0を含むスライスについてのシンタックス要素slice_beta_offset_div2の値である。
【0100】
【0101】
変数t
C’の値は、次のように導出された量子化パラメータQに基づき表8-18で指定されるように決定される:
【数70】
ここで、slice_tc_offset_div2は、サンプルq
0,0を含むスライスについてのシンタックス要素slice_tc_offset_div2の値である。
【0102】
【0103】
maxFilterLengthCbCrが1に等しく、bSが2に等しくないとき、maxFilterLengthCbCrは0に等しくセットされる。
【0104】
maxFilterLengthCbCrが3に等しいとき、次の順序づけられたステップが適用される:
1.変数n1、dpq0、dpq1、dq、dq及びdが、次のように導出される:
【数72】
2.変数dSam0及びdSam1が両方とも0に等しくセットされる。
3.変数dがβよりも小さいとき、次の順序づけられたステップが適用される:
a.変数dpqが2×dpq0に等しくセットされる。
b.変数dSam0が、サンプル位置(xCb+xBl,yCb+yBl)について第8.8.3.6.8節で指定されているクロマサンプルのための決定プロセスを、サンプル値p
0,0、p
3,0、q
0,0及びq
3,0、変数dpq、β、及びtCを入力として用いて呼び出すことによって、導出され、出力が、決定dSam0に割り当てられる。
c.変数dpqが2×dpq1に等しくセットされる。
d.変数dSam1が次のように変更される:
- サンプル位置(xCb+xBl,yCb+yBl+n1)についてedgeTypeがEDGE_VERに等しいとき、第8.8.3.6.8節で指定されるようなクロマサンプルのための決定プロセスが、サンプル値p
0,n1、p
3,n1、q
0,n1及びq
3,n1、変数dpq、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam1に割り当てられる。
- そうでない場合(edgeTypeがEDGE_HORに等しい場合)には、サンプル位置(xCb+xBl+n1,yCb+yBl)について、第8.8.3.6.8節で指定されるようなクロマサンプルのための決定プロセスが、サンプル値p
0,n1、p
3,n1、q
0,n1及びq
3,n1、変数dpq、β、及びt
Cを入力として用いて呼び出され、出力が、決定dSam1に割り当てられる。
4.変数maxFilterLengthCbCrは、次のように変更される:
- dSam0が1に等しく、dSam1が1に等しい場合に、maxFilterLengthCbCrは3に等しくセットされる。
- そうでない場合には、maxFilterLengthCbCrは1に等しくセットされる。
【0105】
[2.2.1.6.4 クロマブロックエッジのためのフィルタリングプロセス]
このプロセスは、ChromaArrayTypeが0に等しくないときにのみ呼び出される。
【0106】
このプロセスへの入力は:
- クロマピクチャサンプルアレイrecPicture,
- 現在のピクチャの左上クロマサンプルに対して現在のクロマコーディングブロックの左上サンプルを指定するクロマ位置(xCb,yCb),
- 現在のクロマコーディングブロックの左上サンプルに対する現在のクロマブロックの左上サンプルを指定するクロマ位置(xBl,yBl),
- 垂直エッジ(EDGE_VER)又は水平エッジ(EDGE_HOL)がフィルタリング処理されるかどうかを示す変数edgeType,
- 最大クロマフィルタ長さを含む変数maxFilterLengthCbCr,
- 変数tC
である。
【0107】
このプロセスの出力は、変更されたクロマピクチャサンプルアレイrecPictureである。
【0108】
変数maxKが、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
【数73】
- そうでない場合(edgeTypeがEDGE_HORである場合)には、次が適用される:
【数74】
【0109】
値p
i及びq
i(i=0..maxFilterLengthCbCr、k=0..maxK)は、次のように導出される:
- edgeTypeがEDGE_VERに等しい場合に、次が適用される:
【数75】
- そうでない場合(edgeTypeがEDGE_HORに等しい場合)、次が適用される:
【数76】
【0110】
edgeTypeの値に応じて、次が適用される:
- edgeTypeがEDGE_VERに等しい場合に、各サンプル位置(xCb+xBl,yCb+yBl+k)、k=0..maxKについて、次の順序づけられたステップが適用される:
1.第8.8.3.6.9節で指定されているようなクロマサンプルのためのフィルタリングプロセスは、変数maxFilterLengthCbCr、サンプル値p
i,k、q
i,k(i=0..maxFilterLengthCbCr)、位置(xCb+xBl-i-1,yCb+yBl+k)及び(xCb+xBl+i,yCb+yBl+k)(i=0..maxFilterLengthCbCr-1)、並びに変数t
Cを入力として、フィルタリングされたサンプル値p
i’及びq
i’(i=0..maxFilterLengthCbCr-1)を出力として用いて、呼び出される。
2.フィルタリングされたサンプル値p
i’及びq
i’(i=0..maxFilterLengthCbCr-1)は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数77】
- そうでない場合(edgeTypeがEDGE_HORに等しい場合)、各サンプル位置(xCb+xBl+k,yCb+yBl)、k=0..maxKについて、次の順序づけられたステップが適用される:
1.第8.8.3.6.9節で指定されているようなクロマサンプルのためのフィルタリングプロセスは、変数maxFilterLengthCbCr、サンプル値p
i,k、q
i,k(i=0..maxFilterLengthCbCr)、位置(xCb+xBl+k,yCb+yBl-i-1)及び(xCb+xBl+k,yCb+yBl+i)、並びに変数t
Cを入力として、フィルタリングされたサンプル値p
i’及びq
i’を出力として用いて、呼び出される。
2.フィルタリングされたサンプル値p
i’及びq
i’は、次のように、サンプルアレイrecPicture内の対応するサンプルを置換する:
【数78】
【0111】
[2.2.1.6.5 ルーマサンプルのための決定プロセス]
このプロセスへの入力は:
- サンプル値p0、p3、q0及びq3,
- 変数dpq、sp、sq、spq、sidePisLargeBlk、sideQisLargeBlk、β、及びtC
である。
【0112】
このプロセスの出力は、決定を含む変数dSamである。
【0113】
変数sp及びsqは、次のように変更される:
- sidePisLargeBlkが1に等しいとき、次が適用される:
【数79】
- sideQisLargeBlkが1に等しいとき、次が適用される:
【数80】
【0114】
変数sThrは、次のように導出される:
- sidePisLargeBlkが1に等しいか、あるいは、sideQisLargeBlkが1に等しい場合に、次が適用される:
【数81】
- 上記以外の場合に、次が適用される:
【数82】
【0115】
変数dSamは、次のように指定される:
- 次の条件の全てが真である場合に、dSamは1に等しくセットされる:
- dpqが(β>>2)よりも小さい,
- sp+sqがsThrよりも小さい,
- spqが(5×tC+1)>>1よりも小さい。
- 上記以外の場合に、dSamは0に等しくセットされる。
【0116】
[2.2.1.6.6 短いフィルタを使用するルーマサンプルのためのフィルタリングプロセス]
このプロセスのへ入力は:
- サンプル値pi及びqi(i=0..3),
- pi及びqiの位置(xPi,yPi)及び(xQi,yQi)(i=0..2),
- 変数dE,
- 夫々サンプルp1及びq1にフィルタリング処理を施すとの決定を含む変数dEp及びdEq,
- 変数tC
である。
【0117】
このプロセスの出力は:
- フィルタリングされたサンプルの数nDp及びnDq,
- フィルタリングされたサンプル値pi’及びqj’(i=0..nDp-1、j=0..nDq-1)
である。
【0118】
dEの値に応じて、次が適用される:
- 変数dEが2に等しい場合に、nDp及びnDqは両方とも3に等しくセットされ、次の強フィルタリングが適用される:
【数83】
- 上記以外の場合に、nDp及びnDqは両方とも0に等しくセットされ、次の弱フィルタリングが適用される:
- 次が適用される:
【数84】
- Abs(Δ)がt
C×10よりも小さいとき、次の順序づけられたステップが適用される:
- フィルタリングされたサンプル値p
0’及びq
0’が次のように指定される:
【数85】
- dEpが1に等しいとき、フィルタリングされたサンプル値p
1’は次のように指定される:
【数86】
- dEqが1に等しいとき、フィルタリングされたサンプル値q
1’は次のように指定される:
【数87】
- nDpはdEp+1に等しくセットされ、nDqはdEq+1に等しくセットされる。
【0119】
nDpが0よりも大きく、次の条件の1つ以上が真であるとき、nDpは0に等しくセットされる:
- サンプルp0を含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルp0を含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0120】
nDqが0よりも大きく、次の条件の1つ以上が真であるとき、nDqは0に等しくセットされる:
- サンプルq0を含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルq0を含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0121】
[2.2.1.6.7 長いフィルタを使用するルーマサンプルのためのフィルタリングプロセス]
このプロセスのへ入力は:
- 変数maxFilterLengthP及びmaxFilterLengthQ,
- サンプル値pi及びqj(i=0..maxFilterLengthP及びj=0..maxFilterLengthQ),
- pi及びqjの位置(xPi,yPi)及び(xQj,yQj)(i=0..maxFilterLengthP-1及びj=0..maxFilterLengthQ-1),
- 変数tC
である。
【0122】
このプロセスの出力は:
- フィルタリングされたサンプル値pi’及びqj’(i=0..maxFilterLengthP-1、j=0..maxFilterLengthQ-1)
である。
【0123】
変数refMiddleが、次のように導出される:
- maxFilterLengthPがmaxFilterLengthQに等しく、maxFilterLengthPが5に等しい場合に、次が適用される:
【数88】
- そうでなく、maxFilterLengthPがmaxFilterLengthQに等しく、maxFilterLengthPが5に等しくない場合に、次が適用される:
【数89】
- 上記以外の場合に、次の条件:
- maxFilterLengthQが7に等しく、maxFilterLengthPが5に等しい,
- maxFilterLengthQが5に等しく、maxFilterLengthPが7に等しい
の1つが真である場合に、次が適用される:
【数90】
- 上記以外の場合に、次の条件:
- maxFilterLengthQが5に等しく、maxFilterLengthPが3に等しい,
- maxFilterLengthQが3に等しく、maxFilterLengthPが5に等しい
の1つが真である場合に、次が適用される:
【数91】
- 上記以外の場合に、maxFilterLengthQが7に等しく、maxFilterLengthPが3に等しい場合に、次が適用される:
【数92】
- その他の場合に、次が適用される:
【数93】
【0124】
変数refP及びrefQは、次のように導出される:
【数94】
【0125】
変数f
i及びt
CPD
iは、次のように定義される:
- maxFilterLengthPが7に等しい場合に、次が適用される:
【数95】
- そうではなく、maxFilterLengthPが5に等しい場合に、次が適用される:
【数96】
- 上記以外の場合に、次が適用される:
【数97】
【0126】
変数g
j及びt
CQD
jは、次のように定義される:
- maxFilterLengthQが7に等しい場合に、次が適用される:
【数98】
- そうではなく、maxFilterLengthQが5に等しい場合に、次が適用される:
【数99】
- 上記以外の場合に、次が適用される:
【数100】
【0127】
フィルタリングされたサンプル値p
i’及びq
j’(i=0..maxFilterLengthP-1、j=0..maxFilterLengthQ-1)は次のように導出される:
【数101】
【0128】
次の条件の1つ以上が真であるとき、フィルタリングされたサンプル値pi’は、対応する入力サンプル値pi(i=0..maxFilterLengthP-1)によって置換される:
- サンプルpiを含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルpiを含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0129】
次の条件の1つ以上が真であるとき、フィルタリングされたサンプル値qi’は、対応する入力サンプル値qj(j=0..maxFilterLengthQ-1)によって置換される:
- サンプルqiを含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルqiを含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0130】
[2.2.1.6.8 クロマサンプルのための決定プロセス]
このプロセスへの入力は:
- サンプル値p0、p3、q0及びq3,
- 変数dpq、β及びtC
である。
【0131】
このプロセスの出力は、決定を含む変数dSamである。
【0132】
変数dSamは、次のように指定される:
- 次の条件の全てが真である場合に、dSamは1に等しくセットされる:
- dpqが(β>>2)よりも小さい,
- Abs(p3-p0)+Abs(q0-q3)は(β>>3)よりも小さい,
- Abs(p0-q0)は(5×tC+1)>>1よりも小さい。
- そうではない場合に、dSamは0に等しくセットされる。
【0133】
[2.2.1.6.9 クロマサンプルのためのフィルタリングプロセス]
このプロセスは、ChromaArrayTypeが0に等しくなく呼び出される。
【0134】
このプロセスへの入力は:
- 変数maxFilterLength,
- クロマサンプル値pi及びqi(i=0..maxFilterLengthCbCr),
- pi及びqiのクロマ位置(xPi,yPi)及び(xQi,yQi)(i=0..maxFilterLengthCbCr-1),
- 変数tC
である。
【0135】
このプロセスの出力は、フィルタリングされたサンプル値pi’及びqi’(i=0..maxFilterLengthCbCr-1)である。
【0136】
フィルタリングされたサンプル値p
i’及びq
i’(i=0..maxFilterLengthCbCr-1)は、次のように導出される:
- maxFilterLengthCbCrが3に等しい場合に、次の強フィルタリングが適用される:
【数102】
- そうではない場合に、次の弱フィルタリングが適用される:
【数103】
【0137】
次の条件の1つ以上が真であるとき、フィルタリングされたサンプル値pi’は、対応する入力サンプル値pi(i=0..maxFilterLengthCbCr-1)によって置換される:
- サンプルpiを含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルpiを含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0138】
次の条件の1つ以上が真であるとき、フィルタリングされたサンプル値qi’は、対応する入力サンプル値qi(i=0..maxFilterLengthCbCr-1)によって置換される:
- サンプルqiを含むコーディングブロックを含むコーディングユニットのcu_transquant_bypass_flagが1に等しい,
- サンプルqiを含むコーディングブロックを含むコーディングユニットのpred_mode_plt_flagが1に等しい。
【0139】
[2.4 ラインバッファ低減のための仮想境界フィルタリングプロセス]
VTM6では、ラインバッファ要件を低減するために、変更されたブロック分類及びフィルタリングが、水平CTU境界に近いサンプルに対して用いられる。このために、仮想境界は、
図4に示されるように、“N”個のサンプルを含む水平CTU境界をシフトすることによってラインとして定義される。Nは、ルーマ成分については4に等しく、クロマ成分については2に等しい。
【0140】
図4は、仮想境界での変更されたブロック分類の例を示す。
【0141】
図5に示されるように、変更されたブロック分類がルーマ成分に適用される。仮想境界の上にある4×4ブロックの1Dラプラシアン勾配計算については、仮想境界の上にあるサンプルのみが使用される。同様に、仮想境界の下にある4×4ブロックの1Dラプラシアン勾配計算については、仮想境界の下にあるサンプルのみが使用される。それに応じて、活性値Aの量子化は、1Dラプラシアン勾配計算で使用されるサンプル数の減少を考慮に入れることによってスケーリングされる。
【0142】
フィルタリングプロセスについては、仮想境界での対称パディング動作が、ルーマ及びクロマの両方の成分のために使用される。
図5に示されるように、フィルタリングされているサンプルが仮想境界の下に位置している場合に、仮想境界の上に位置している隣接サンプルがパディングされる。一方、他方の側にある対応するサンプルも対称的にパディングされる。
【0143】
図5は、仮想境界でのルーマ成分に対する変更されたALFフィルタリングの実例を示す。
【0144】
[3 開示されている実施形態及び技術によって解決される技術的問題の例]
最新のVVC作業草案JVET-O2001-v14には、以下で記載されるいくつかの問題がある。
(1)4×4サンプルグリッドルーマデブロックフィルタリングが仮想境界に適用され、これは、部分CTUに基づいたインループフィルタリングに使用されるラインバッファを増大させる。改善された方法が、余分のラインバッファを低減するために使用され得る。
(2)WD6では、ルーマデブロッキングが4×4グリッド変換ブロック境界で適用されるが、サブブロック境界については、ラインデブロッキングは8×8グリッドで適用される。しかし、サブブロックベースのアフィン予測は4×4に基づいており、これにより、2つの隣接する4×4ブロックの間の動きベクトル差は大きくなる。従って、ブロッキングアーチファクトが4×4サブブロック境界で起こる可能性があり、ルーマデブロッキングフィルタを4×4グリッドサブブロック境界に拡張する必要がある。
(3)WD6では、デブロッキングフィルタは、マージトライアングル予測モード(Triangle Prediction Mode,TPM)コーディングされたブロックの内部サブブロックエッジに適用されない。しかし、TPMブロックの動きベクトルは4×4ブロック粒度で記憶され、これは、2つの隣接する4×4ブロックの間の動きベクトル差を大きくする可能性がある。よって、デブロッキングフィルタをTPMブロック内部のエッジに適用することが必要とされ得る。
(4)WD6では全てのクロマフラグがクロマフォーマットに応じて通知されるわけではない。これは望ましくないことがある。
(5)WD6では、PPSシンタックス要素log2_transform_skip_max_size_minus2がSPSシンタックス要素を条件として通知される。これは、SPSとPPSとの間のパージング依存性を引き起こす可能性がある。
(6)WD6では、maxFilterLengthPsの設定は、現在のコーディングブロックが1よりも多い8×8ブロックを含むかどうかに依存する。例えば、8×8アフィン又はSbTMVPコーディングされたブロックについては、maxFilterLengthPsは変更されないままであり、変換ブロック境界から導出される。しかし、他のサブブロック境界については、maxFilterLengthQsがmini(5,maxFilterLengthQs)にリセットされる。
(7)WD6では、maxFilterLengthQsの設定は、エッジが最初のサブブロック境界(最左又は最上)に位置しているかどうかに依存する。次の2つの場合について:
a)垂直エッジの左にあるブロックがサブブロックコーディングされていない。
b)水平エッジブロックの上にあるブロックがサブブロックコーディングされていない。
上記の場合について、maxFilterLengthPsは変更されないままであり、変換ブロック境界から導出される。しかし、他のサブブロック境界については、maxFilterLengthPsがmini(5,maxFilterLengthPs)にリセットされる。
(8)WD6では、サブブロックエッジのmaxFilterLengthPs及びmaxFilterLengthQsの設定は、エッジの位置に4をプラスしたものが現在のコーディングブロック幅以上であるかどうかに依存するが、これは不要である場合がある。
(9)WD6では、変換ブロックエッジから4サンプル離れている内部サブブロックエッジについて、maxFilterLengthPs及びmaxFilterLengthQsは1にセットされる。そうではなく、内部の最初/最後のサブブロックエッジ、及びTUエッジから8サンプル離れているサブブロックエッジについては、maxFilterLengthPs及びmaxFilterLengthQsは2にセットされる。そうではなく、他の内部サブブロックエッジについては、maxFilterLengthPs及びmaxFilterLengthQsは3にセットされる。これらの条件は更に精緻化されてもよい。
(10)WD6では、デブロッキングフィルタ強さbSの設定は、隣接するブロックの予測モードに依存する(例えば、サンプルp0を含むコーディングサブブロックの予測モードがサンプルq0を含むコーディングサブブロックの予測モードとは異なる場合に、bSは1に等しくセットされる。)。
(11)WD6では、それが変換ブロックエッジであり、エッジのどちらかの側に位置する1つの隣接するブロックがCIIPモードでコーディングされている場合に、このエッジのデブロッキングフィルタ強さbSは2にセットされる。
【0145】
[4 実施形態及び技術の列挙]
以下の詳述されている発明は、一般概念を説明するための例と見なされるべきである。これらの発明は、狭い意味で解釈されるべきではない。更に、これらの発明は、如何なる方法でも組み合わせ可能である。
【0146】
以下の開示で、「自然境界」との用語は、2つのコーディングブロック(例えば、2つのCU)、又は2つの予測ブロック(例えば、2つのPU)、又は2つの変換ブロック(2つのTU)、又は2つのサブブロックの間の境界を指し得る。
【0147】
デブロッキングプロセスは、自然境界から、デブロッキングプロセスを考慮しているいくつかの“境界”(例えば、サブブロック境界又は変換ブロック境界)を導出する。これらの境界は、以下の開示で「デブロッキング境界」とも呼ばれることがある。
【0148】
一例で、デブロッキング境界は自然境界でなければならいが、自然境界はデブロッキング境界でなくてもよい。境界がデブロッキング境界出ない場合に、それは、デブロッキングプロセスで考慮されなくてもよい。
【0149】
「エッジ」との用語は、以下の開示で「境界」と同等である。
【0150】
[コーディングブロック及びサブブロック境界でのデブロッキングフィルタ]
1.ルーマデブロッキングフィルタが、サブブロック自然境界上の4×4グリッドで適用され得る。
a.一例で、現在のサブブロック自然境界がルーマデブロッキングフィルタリング処理される必要があるか否かの決定(例えば、edgeFlagsの値)は、4×4グリッドで実行され得る。
i.一例で、現在のサブブロック自然境界がルーマデブロッキングフィルタリング処理される必要があるか否かの決定(例えば、edgeFlagsの値)は、8×8グリッドで実行され得ない。
b.一例で、ルーマデブロッキングフィルタ長さの決定(例えば、maxFilterLengthPs及びmaxFilterLengthQs)は、4×4グリッドで適用され得る。
i.一例で、ルーマデブロッキングフィルタ長さの決定(maxFilterLengthPs及びmaxFilterLengthQs)は、8×8グリッドで適用され得ない。
c.一例で、サブブロックコーディングされたブロックにおけるサブブロック境界/フィルタ長さ/フィルタ強さ決定のためのグリッド単位(例えば、4×4又は8×8)は、サブブロックコーディング方法に依存し得る。
i.一例で、サブブロックコーディングされたブロックにおけるサブブロック境界/フィルタ長さ/フィルタ強さ決定のためのグリッド単位(例えば、4×4又は8×8)は、動き補償/動き導出で使用されるサブブロックサイズと整列され得る。
ii.一例で、現在のブロックがアフィンコーディングされる場合に、ルーマデブロッキングフィルタは、アフィンサブブロック境界上の4×4グリッドで適用され得る。
1)例えば、アフィンコーディングされたブロックのサブブロック境界については、上記のビュレット1.a及びビュレット2.aが適用され得る。
iii.一例で、現在のブロックがSbTMVPコーディングされる場合に、デブロッキングフィルタは、SbTMVPサブブロック境界上の8×8グリッドで適用され得る。
【0151】
2.クロマデブロッキングフィルタが、サブブロック自然境界で適用され得る。
a.一例で、クロマデブロッキングフィルタは、N×M(例えば、8×8又は4×4又は4×8又は8×4)グリッドサブブロック境界で適用され得る。
b.一例で、現在のクロマデブロッキングエッジがサブブロック境界であるか否かの決定(例えば、edgeFlagsの値)は、N×N(N=8又は4)グリッドで実行され得る。
c.一例で、クロマデブロッキングフィルタ長さの決定(例えば、maxFilterLengthPs及びmaxFilterLengthQs)は、N×M(例えば、8×8又は4×4又は4×8又は8×4)で適用され得る。
d.一例で、クロマデブロッキングフィルタ長さの値(例えば、maxFilterLengthPs及びmaxFilterLengthQs)は、L(例えば、L=3又は2又は1)以下であり得る。
e.一例で、クロマサブブロック境界のための境界フィルタリング強さの値(例えば、bS)は、動きベクトルの数、参照ピクチャ、現在の境界の両側に位置している2つの隣接ピクセル間の絶対BV/MV差に依存し得る。
f.上記の方法を適用すべきかどうかは、現在のブロックがサブブロックベースの技術(例えば、SbTMVP、アフィン、DMVR、デュアルツリーの場合におけるクロマIBCモード)デコーディングされることに依存し得る。
g.上記の方法を適用すべきかどうかは、色サブサンプリングフォーマット(4:4:4に等しいか否か)に依存し得る。
h.デブロッキンググリッドN×Mは色フォーマットに依存し得る。
【0152】
3.トランアングル予測モード(TPM)(ジオメトリ予測モードとも呼ばれる。)でコーディングされたブロックについては、N×N(N=4又は8)グリッドデブロッキングフィルタが適用され得る。
a.一例で、TPMコーディングされたブロックのための内部エッジ導出は、SbTMVP及び/又はアフィンコーディングされたブロックのためのサブブロック境界導出プロセスと同じであり得る。
b.一例で、TPMコーディングされたブロックは、サブブロックコーディングされたブロックとして扱われてもよく、サブブロック境界/フィルタ長さ/フィルタ強さ決定は、4×4又は8×8グリッドで決定され得る。
【0153】
4.デブロッキングフィルタ長さの設定は、最初のサブブロックデブロッキング境界(例えば、最左の垂直境界又は最上の水平境界)であることにかかわらず、全てのサブブロックデブロッキング境界について同じように扱われ得る。
a.現在のコーディングブロックの最左の垂直境界(及び/又は最上の水平境界)については、デブロッキングフィルタ長さの値は、それが変換ブロックエッジ(例えば、edgeTbFlags)と一致するか否かを条件とされ得る。
i.一例で、現在のコーディングブロックの最左の垂直境界(又は最上の水平境界)については、この境界のedgeTbFlagsが1に等しい場合に、現在のブロックのデブロッキングフィルタ長さmaxFilterLengthPsは、その境界の左(又は上)にある隣接コーディングブロックがSbTMVPコーディング又はアフィンコーディングされているかどうかにかかわらず、Min(5,maxFilterLengthPs)にセットされ得る。
ii.一例で、現在のコーディングブロックの最左の垂直境界(又は最上の水平境界)については、この境界のedgeTbFlagsが1に等しい場合に、現在のブロックのデブロッキングフィルタ長さmaxFilterLengthPsは、現在のコーディングブロック内のサブブロックの数にかかわらず、Min(5,maxFilterLengthPs)にセットされる。
【0154】
5.サブブロックデブロッキング境界を導出するとき、デブロッキングフィルタ長さの決定は、サブブロックエッジ位置(例えば、現在のコーディングブロックのサブブロックエッジインデックス(例えば、xEdge))に依存し得る。xEdgeの範囲が「0,M」であるとする。ここで、Mは0以上の整数である。
a.一例で、[a,b]の範囲内のxEdgeについては、maxFilterLengthPs及び/又はmaxFilterLengthQsは、固定整数値L(例えば、L=1,2,3)にセットされ得る。
i.一例で、a=0又は1である。
ii.一例で、b=M又はM-1である。
iii.一例で、a=b=0又は1又はM又はM-1である。
【0155】
6.xが現在のコーディングブロック内の水平/垂直サブブロック位置を表すとして、デブロッキングフィルタ長さの決定は、x+delta(例えば、deltaは4又は8に等しい。)とコーディングブロック幅/高さとの間の関係に依存し得る。
a.一例で、SbTMVP及びアフィンサブブロック境界を導出するとき、デブロッキングフィルタ長さ(例えば、maxFilterLengthPs及び/又はmaxFilterLengthQs)は、x+deltaがブロック幅/高さ以上であるかどうかをチェックせずに決定され得る。
b.一例で、SbTMVP及びアフィンサブブロック境界を導出するとき、デブロッキングフィルタ長さ(例えば、maxFilterLengthPs及び/又はmaxFilterLengthQs)は、x+deltaがブロック幅/高さ以上であるかどうかをチェックすることによって決定され得る。
【0156】
7.サブブロックデブロッキング境界を導出するとき、ブロック内の列xでの垂直境界又は行yでの水平境界のデブロッキングフィルタ長さの決定は、列x+dxでの垂直境界又は行y+dyでの水平境界が変換ブロック境界であるか否かに依存し得る。dx及びdyは、4又は8といった整数である。
a.一例で、ブロック(例えば、SbTMVP及び/又はアフィンでコーディングされている。)のサブブロック境界を導出するとき、ブロック内の列xでの垂直境界又は行yでの水平境界のデブロッキングフィルタ長さ(例えば、maxFilterLengthPs及びmaxFilterLengthQs)の決定は、以下の場合のうちの1つに依存し得る:
i.x+dx>=ブロック幅が満足されるかどうか、及び/又はy+dy>=ブロック高さが満足されるかどうかをチェックせずに、列x+dxでの垂直境界又は行y+dyでの水平境界が変換ブロック境界であるか否か;
ii.列x+dxでの垂直境界又は行y+dyでの水平境界が変換ブロック境界であるか否か、並びにx+dx>=ブロック幅が満足されるかどうか、及び/又はy+dy>=ブロック高さが満足されるかどうか。
b.代替的に、ブロック(例えば、SbTMVP及び/又はアフィンでコーディングされている。)のサブブロック境界を導出するとき、ブロック内の列xでの垂直境界又は行yでの水平境界のデブロッキングフィルタ長さ(例えば、maxFilterLengthPs及びmaxFilterLengthQs)の決定は、列x+dxでの垂直境界又は行y+dyでの水平境界が変換ブロック境界であるか否かに依存しなくてもよい。
【0157】
[デブロッキングフィルタに関する一般的な課題]
8.SBTコーディングされたブロックについては、(当該ブロックよりも小さい)変換ブロックの間の2つのデブロッキング境界にマークを付す代わりに、1つの方向(水平又は垂直)について3つの変換ブロック境界にマークを付すことが提案される。
a.一例で、1つの方向(水平又は垂直)について、2つの変換ブロック境界及びコーディングされたブロック境界は全て、デブロッキングフィルタプロセスでフィルタリング処理され得るデブロッキング境界として扱われる。
b.代替的に、更に、コーディングされたブロック境界にフィルタリング処理を施すかどうかは、それがサブブロック境界であるかどうかなどに更に依存してもよい。
【0158】
9.現在のブロックエッジの両側に位置している2つの隣接サンプルが、非ゼロ変換係数レベルを有さない2つの変換ブロックに属する場合に、このエッジのデブロッキングフィルタ強さ(例えば、bS)は0にセットされ得る。
a.一例で、現在の変換ブロックエッジの両側に位置している2つの隣接サンプルが、非ゼロ変換係数レベルを有さない2つの変換ブロックに属し、2つの隣接サンプルのうちの1つがマージトライアングル予測モード(TPM)としてコーディングされている場合に、bSは0にセットされ得る。
b.一例で、現在の変換ブロックエッジの両側に位置している2つの隣接サンプルが、非ゼロ変換係数レベルを有さない2つの変換ブロックに属し、2つの隣接サンプル間の動きベクトル差が閾値T(例えば、1/16ルーマサンプルの単位でT=8)よりも大きい場合に、bSは0にセットされ得る。
c.一例で、変換ブロック境界でのデブロッキングフィルタ強さの決定は、動きベクトルに関連した基準から切り離されてもよい。
【0159】
10.DMVRでの導出されたMVDは、デブロッキングで使用されてもよい。
a.一例で、DMVRによって処理されたCUについて、デブロッキングは、通知されたMVの代わりに、サブブロックの導出されたMVDを用いて、CU内のサブブロック境界で実行され得る。
b.一例で、DMVRによって処理されたCUについて、デブロッキングは、CUの通知されたMVを用いて、CU境界で実行され得る。
c.代替的に、DMVRによって処理されたCUについて。デブロッキングは、CU境界でのサブブロックの導出されたMVD及び通知されたMVを用いて、CU境界で実行され得る。
i.例えば、CU境界にあるブロックについて、MVは、関連するサブブロックの導出されたMVDを通知されたMVに加えることによって生成され得、次いで、デブロッキングのために使用され得る。
【0160】
11.デブロッキングフィルタ強さbSの設定は、隣接するブロックの予測モードに依存してなくてもよい。
a.一例で、デブロッキングフィルタ強さbSの設定は、隣接するブロックの1つがMODE_INTRAとしてコーディングされているかどうかに関して決定され得るが、MODE_IBC及び/又はMODE_INTERに関しては決定されない。
【0161】
12.エッジにフィルタリング処理を施すべきかどうか及び/又はどのようにフィルタリング処理を施すべきかは、エッジタイプ(例えば、変換ブロック境界又はサブブロック境界)に依存し得る。
a.一例で、変換ブロック境界でのデブロッキングフィルタ強さ及びコーディングサブブロック境界でのデブロッキングフィルタ強さは、別々に決定され得る。
i.一例で、変換ブロック境界フラグは、(nCbW)×(nCbH)アレイAで記憶され得、一方、コーディングサブブロック境界は、(nCbW)×(nCbH)アレイBで記憶され得る。ここで、A及びBは異なるアレイバッファである。
ii.一例で、変換ブロック境界のデブロッキングフィルタ強さ(例えば、bS)は、変換係数(例えば、非ゼロ係数)に従ってセットされ得る。
1)一例で、現在の変換ブロックエッジの両側に位置している2つの隣接サンプルの両方がゼロ変換係数レベルを有する場合に、bSは0にセットされ得る。
iii.一例で、コーディングサブブロック境界のデブロッキングフィルタ強さ(例えば、bS)は、動きベクトル、及び/又は現在の境界の両側に位置している2つの隣接ピクセル間の参照ピクチャに従って、セットされ得る。
iv.一例で、ブロックエッジが変換ブロックエッジでもあるがサブブロック境界ではなく、エッジ沿いの2つの隣接サンプルのうちの少なくとも一方がCIIPモードによるコーディングブロック内にある場合に、境界強さ(Boundary Strength,BS)はX(X=1又は2)に等しくセットされる。
b.代替的に、フィルタ強さ/フィルタ長さ/境界強さの決定は、異なるエッジタイプについて同じであってよい。
i.一例で、ブロックエッジが変換ブロックエッジ又はサブブロック境界でもあり、エッジ沿いの2つの隣接サンプルのうちの少なくとも一方がCIIPモードによるコーディングブロック内にある場合に、境界強さ(BS)はX(X=1又は2)に等しくセットされる。
【0162】
[仮想境界との相互作用]
13.デブロッキングフィルタは、水平CTU境界の上にN個のサンプル(例えば、ルーマについてはN=4、クロマについてはN=2)である仮想境界で適用され得ない。
a.一例で、仮想境界と一致するTU/CU/PU/サブブロックエッジについては、水平エッジデブロックフィルタリングは適用され得ない。
b.代替的に、更に、仮想境界と一致するTU/CU/PU/サブブロックエッジについては、垂直エッジデブロックフィルタリングが依然として適用され得る。
【0163】
14.一例で、デブロッキングプロセスで値をクリップすべきかどうか及び/又はどのようにクリップすべきかは、デブロッキングフィルタによってフィルタリング処理される境界が仮想境界と一致するかどうかに依存し得る。
a.一例で、値pを有するサンプルは、デブロッキングプロセス後に値p’であるよう変更され、pはp’=p+d’として導出され、d’=Clip3(t1,t2,d)であり、ここで、dは、デブロッキングプロセスで導出され、[t1,t2]は、クリッピング範囲である。t1及び/又はt2は、デブロッキングフィルタによってフィルタリング処理される境界が仮想境界と一致するかどうかに依存し得る。
i.一例で、t1=-2N及びt2=2N-1であり、Nは整数である。
1)例えば、Nは色成分に依存し得る。
2)例えば、Nはエンコーダからデコーダへ送られ得る。
3)例えば、Nはサンプルビットデプスに依存し得る。
【0164】
[他のコーディングツールとの相互作用]
15.SBT及びサブブロックベースのコーディング方法(例えば、SbTMVP及び/又はアフィン)が排他的に使用され得る。
a.SBTは、SbTMVP及びアフィン予測ブロックのようなサブブロックベースのコーディングブロックに対しては許されないことがある。
b.一例で、コーディングブロックがSbTMVPでコーディングされる場合に、SBTは適用され得ない。
c.一例で、コーディングブロックがアフィン予測でコーディングされる場合に、SBTは適用され得ない。
d.一例で、コーディングブロックがSbTMVP又はアフィン予測でコーディングされる場合に、SBTは適用され得ない。
i.例えば、inter_affine_flagが1に等しいか、又はmerge_subblock_flagが1に等しいとき、cu_sbt_flagは通知されず、0であると推測され得る。
【0165】
16.上記の例について、コーディングツールが許可されない場合に、ツールの利用の指示の通知はスキップされる。
a.代替的に、第2ツールが適用されるときに第1ツールが許可されない場合には、第1ツールの利用の通知は、第2ツールが適用されないという条件下であってよい。
【0166】
17.デブロッキングフィルタは、イントラサブパーティショニング(Intra Sub-Partitioning,ISP)モードでコーディングされたブロックの2つのサブパーティション間の境界に適用され得る。
a.一例で、ブロックの2つのサブパーティション間にある列xでの垂直境界は、xがx=M×P+offset及び/又はx<Wを満足する場合に、デブロッキングによってフィルタリング処理される。ここで、offset、M及びPは正の整数である。一例で、M=1,2,3...、及びP=1である。他の例では、M=1,2,3...、及びP=2である。Wはブロックの幅である。例えば、offset=0である。
b.一例で、ブロックの2つのサブパーティション間にある行yでの水平境界は、yがy=M×P+offset及び/又はy<Hを満足する場合に、デブロッキングによってフィルタリング処理される。ここで、offset、M及びPは正の整数である。一例で、M=1,2,3...、及びP=1である。他の例では、M=1,2,3...、及びP=2である。Hはブロックの高さである。例えば、offset=0である。
c.代替的に、デブロッキングフィルタは、ISPモードでコーディングされたブロックの2つのサブパーティション間の境界に適用されない。
【0167】
18.デブロッキングフィルタは、TPMでコーディングされたブロックの2つのM×N(例えば、4×4又は8×8)領域間の境界に適用され得る。
a.例えば、2つの隣接するコーディングブロックのうちの1つがTPMでコーディングされたブロックである場合に、2つのブロック間の境界はデブロッキングフィルタリング処理され得る。
【0168】
19.フィルタリングプロセス(例えば、デブロックフィルタ、SAO、ALF)は、次のコーディングされたブロックについて動き保存/動きベクトル予測で使用されたものの代わりに、動き補償プロセスで使用されたTPMコーディングされたブロックの動き情報に依存し得る。
a.一例で、デブロッキングフィルタ強さ(例えば、bS)導出プロセス中、TPMコーディングされたブロックの動きベクトルは、動き補償プロセスで使用されたものであってよい。
b.一例で、TPMコーディングされたブロックの記憶されているH×H(例えば、4×4)動きベクトルは、デブロッキング境界フィルタリング強さ設定のために使用され得ない。
c.一例で、TPM動き補償に使用された動きベクトルは、デブロッキング境界フィルタリング強さ設定のために使用され得る。
d.代替的に、動き補償プロセス又は動き保存若しくは動きベクトル予測プロセスでの動き情報を使用すべきかどうかは、適応的に変更され得る。
e.代替的に、動き補償プロセス又は動き保存若しくは動きベクトル予測プロセスでの動き情報を使用すべきかどうかは、復号された情報及び/又はブロック寸法などに基づき決定され得る。
【0169】
[クロマフラグ通知]
20.クロマシンタックス要素の通知は、クロマフォーマットサンプリング構造(例えば、chroma_format_idc)及び/又はコーディング方法(例えば、separate_colour_plane_flag及び/又はChromaArrayTypeなど)に依存し得る。
a.一例で、PPS Cb/Crフラグは、クロマフォーマットサンプリング構造に従って通知され得る。
i.一例で、ChromaArrayTypeが真に等しい場合に、シンタックス要素Xは通知され得る。さもなければ、シンタックス要素Xは通知されなくてもよい。
ii.一例で、クロマフォーマットがモノクロ(例えば、4:0:0)である場合に、シンタックス要素Xは通知され得る。さもなければ、シンタックス要素Xは通知されなくてもよい。
iii.一例で、クロマフォーマットが4:4:4であり、separate_colour_plane_flagが1に等しい場合に、シンタックス要素Xは通知され得る。さもなければ、シンタックス要素Xは通知されなくてもよい。
iv.例えば、xは、上記のビュレットにおいて、pps_cb_qp_offset及びpps_cr_qp_offsetであってよい。
v.例えば、Xは、上記のビュレットにおいて、pps_joint_cbcr_qp_offsetであってよい。
vi.例えば、Xは、上記のビュレットにおいて、cu_chroma_qp_offset_enabled_flagであってよい。
vii.例えば、Xは、上記のビュレットにおいて、pps_slice_chroma_qp_offsets_present_flagであってよい。
【0170】
21.PPSシンタックス要素は、SPSシンタックス要素に依存しなくてもよい。
a.一例で、PPSシンタックス要素log2_transform_skip_max_size_minus2は、SPSシンタックス要素(例えば、sps_transform_skip_enabled_flag)によって条件付きで通知されなくてもよい。
【0171】
[5 実施形態]
以下は、例となる実施形態であり、VVC規格に適用され得る。変更は、最新のVVC作業草案(JVET-O2001-v14)に基づいている。新たに加えられた部分は、太字イタリック体で強調表示されており、VVC作業草案から削除された部分は、二重括弧でマークされている(例えば、[[a]]は、文字“a”の削除を表す。)。
【0172】
サブブロック境界について4×4グリッドでルーマデブロッキングフィルタを適用することに関する実施形態#1
【表6】
【0173】
4×4グリッドのアフィンコーディングされたサブブロック境界及び8×8グリッドのSbTMVPコーディングされたサブブロック境界でのルーマデブロッキングフィルタの適用、並びに、8×8グリッドサブブロック境界でのクロマデブロッキングフィルタの適用に関する実施形態#2
【表7】
【0174】
変換ブロックエッジのためのデブロッキングフィルタ強さ設定を動きベクトルから切り離すことに関する実施形態#3
【表8】
【0175】
最初のサブブロック境界のデブロッキングフィルタ長さを決定することに関する実施形態#4
【表9】
【0176】
コーディングブロック寸法をチェックせずにデブロッキングフィルタ長さを決定することに関する実施形態#5
【表10】
【0177】
サブブロック境界のインデックスによってデブロッキングフィルタ長さを決定することに関する実施形態#6
【表11】
【0178】
隣接TUエッジによってデブロッキングフィルタ長さを決定することに関する実施形態#7
【表12】
【0179】
SbTMVP/アフィン予測ブロックに対するSBTの無効化に関する実施形態#8
【表13】
【0180】
ALF仮想境界での水平エッジデブロッキングの無効化に関する実施形態#9
【表14】
【0181】
クロマフラグ通知に関する実施形態#10
【表15】
【0182】
【0183】
【0184】
図6Aは、ビデオ処理装置600のブロック図である。装置600は、本明細書で記載されている方法の1つ以上を実装するために使用され得る。装置600は、スマートフォン、タブレット、コンピュータ、インターネット・オブ・シングス(Internet of Things,IoT)レシーバ、などで具現化されてもよい。装置600は、1つ以上のプロセッサ602,1つ以上のメモリ604、及びビデオ処理ハードウェア606を含み得る。プロセッサ602は、本明細書で記載されている1つ以上の方法を実装するよう構成され得る。メモリ(複数のメモリ)604は、本明細書で記載されている方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用され得る。ビデオ処理ハードウェア606は、本明細書で記載されているいくつかの技術をハードウェア回路において実装するために使用され得る。
【0185】
図6Bは、開示されている技術が実装され得るビデオ処理システムのブロック図の他の例である。
図6Bは、本明細書で開示されている様々な技術が実装され得る、例となるビデオ処理システム610を示すブロック図である。様々な実施は、システム610のコンポーネントの一部又は全部を含んでもよい。システム610は、ビデオコンテンツを受ける入力部612を含み得る。ビデオコンテンツは、生の又は圧縮されていないフォーマット、例えば、8又は10ビットのマルチコンポーネントピクセル値で受け取られてもよく、あるいは、圧縮された又は符号化されたフォーマットであってもよい。入力部612は、ネットワークインターフェース、ペリフェラルバスインターバス、又はストレージインターフェースに相当してもよい。ネットワークインターフェースの例には、Ethernet(登録商標)、受動光ネットワーク(Passive Optical Network,PON)などのような有線インターフェース、及びWi-Fi又はセルラーネットワークなどの無線インターフェースが含まれる。
【0186】
システム610は、本明細書で記載されている様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント614を含んでもよい。コーディングコンポーネント614は、ビデオのコーディングされた表現を生成するよう、入力部612からコーディングコンポーネント614の出力部へのビデオの平均ビットレートを低減し得る。コーディング技術は、従って、ビデオ圧縮又はビデオトランスコーディング技術と時々呼ばれる。コーディングコンポーネント614の出力は、コンポーネント616によって表されるように、保存されても、あるいは、接続された通信を介して伝送されてもよい。入力部612で受け取られたビデオの保存又は通信されたビットストリーム(又はコーディングされた)表現は、ピクセル値又は表示インターフェース620へ送られる表示可能なビデオを生成するコンポーネント618によって使用されてもよい。ユーザが見ることができるビデオをビットストリーム表現から生成するプロセスは、ビデオ圧縮解除と時々呼ばれる。更に、特定のビデオ処理動作が「コーディング」動作又はツールと呼ばれる一方で、そのようなコーディングツール又は動作はエンコーダで使用され、そして、コーディングの結果を入れ替える対応する復号化ツール又は動作は、デコーダによって実行されることが理解されるだろう。
【0187】
ペリフェラルバスインターフェース又は表示インターフェースの例には、ユニバーサルシリアルバス(Universal Serial Bus,USB)又は高精細マルチメディアインターフェース(High Definition Multimedia Interface,HDMI(登録商標))又はDisplayport(登録商標)などが含まれ得る。ストレージインターフェースの例には、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース、などがある。本明細書で説明されている技術は、携帯電話機、ラップトップ、スマートフォン、あるいは、デジタルデータ処理及び/又はビデオ表示を実行する能力がある他のデバイスなどの様々な電子デバイスで具現化されてもよい。
【0188】
開示されている技術のいくつかの実施形態は、ビデオ処理ツール又はモードを有効にするとの決定又は判定を行うことを含む。例において、ビデオ処理ツール又はモードが有効にされる場合に、エンコーダは、ビデオのブロックの処理においてそのツール又はモードを使用又は実装するが、結果として得られるビットストリームを、そのツール又はモードの利用に基づいて必ずしも変更しなくてもよい。つまり、ビデオのブロックからビデオのビットストリーム表現への変換は、ビデオ処理ツール又はモードが決定又は判定に基づいて有効にされる場合にそれを使用することになる。他の例においては、ビデオ処理ツール又はモードが有効にされる場合に、デコーダは、ビットストリームがそのビデオ処理ツール又はモードに基づいて変更されていると知った上でビットストリームを処理する。つまり、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定又は判定に基づいて有効にされたビデオ処理ツール又はモードを用いて実行されることになる。
【0189】
開示されている技術のいくつかの実施形態は、ビデオ処理ツール又はモードを無効にするとの決定又は判定を行うことを含む。例において、ビデオ処理ツール又はモードが無効にされる場合に、エンコーダは、ビデオのブロックからビデオのビットストリーム表現への変換においてそのツール又はモードを使用しない。他の例においては、ビデオ処理ツール又はモードが無効にされる場合に、デコーダは、決定又は判定に基づいて無効にされたビデオ処理ツール又はモードを用いてビットストリームが変更されていないと知った上でビットストリームを処理する。
【0190】
本明細書中、「ビデオ処理」という用語は、ビデオ符号化、ビデオ復号化、ビデオ圧縮又はビデオ圧縮解除を指し得る。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から、対応するビットストリーム表現への変換中に、又はその逆も同様に、適用されてもよい。現在のビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるような、ビットストリーム内で同一位置にあるか又は異なった場所に広がっているかのどちらかであるビットに対応してもよい。例えば、マクロブロックは、変換及びコーディングされた誤差残余値に関して、更には、ビットストリーム内のヘッダ及び他のフィールドにおけるビットを用いて、符号化されてもよい。
【0191】
以下の付記の第1の組は、いくつかの実施形態のおける好適な付記として実装され得る。
【0192】
以下の付記は、前のセクションで挙げられている項目(例えば、項目1)で記載されている追加の技術とともに実装され得る。
【0193】
付記1.
ビデオ処理の方法(例えば、
図7に表されている方法700)であって、
ビデオと該ビデオのビットストリーム表現との間の変換のために、デブロッキングフィルタが現在のサブブロックの自然境界に適用されるかどうか又はどのように適用されるかに関する決定を、前記現在のサブブロックのサイズに依存したサイズルール、及び/又はポジションルール、及び/又はコーディングモードルールに基づき行うステップ(702)と、
前記決定に従って前記変換を実行するステップ(704)と
を有し、
前記サイズルールは、前記デブロッキングフィルタが4×4サブブロックに対して適用されることを定める、方法。
【0194】
付記2.
前記デブロッキングフィルタがどのように適用されるかに関する決定を行うステップは、フィルタ長さを決定するステップを含む、
付記1に記載の方法。
【0195】
付記3.
前記サイズルールは、前記デブロッキングフィルタが8×8サブブロックに適用されないことを更に定めるか、あるいは、前記サイズルールは、前記デブロッキングフィルタがどのように適用されるかに関する決定が8×8サブブロックに対しては実行されないことを更に定める、
付記1に記載の方法。
【0196】
付記4.
前記コーディングモードルールは、前記現在のサブブロックの動き補償又は動き導出エッジと整列する前記自然境界で前記デブロッキングフィルタを有効にすることを定める、
付記1乃至3のうちいずれかに記載の方法。
【0197】
以下の付記は、前のセクションで挙げられている項目(例えば、項目4)で記載されている追加の技術とともに実装され得る。
【0198】
付記5.
前記ポジションルールは、ビデオ領域内の他のサブブロックのために使用されるのと同じであるフィルタ長さを前記現在のサブブロックのために使用されることを定める、
付記1乃至4のうちいずれかに記載の方法。
【0199】
付記6.
前記ビデオ領域は、前記現在のサブブロックを含む現在のブロックである、
付記5に記載の方法。
【0200】
以下の付記は、前のセクションで挙げられている項目(例えば、項目4)で記載されている追加の技術とともに実装され得る。
【0201】
付記7.
ビデオ処理の方法であって、
ビデオと該ビデオのビットストリーム表現との間の変換のために、前記ビデオのビデオ領域に対してデブロッキングフィルタを使用するとの決定を行うステップと、
前記決定に従って前記変換を実行するステップと
を有し、
前記デブロッキングフィルタは、前記ビデオ領域に関連した仮想境界の位置に依存するルールに従って、前記ビデオ領域のサンプルに選択的に適用される、
方法。
【0202】
付記8.
前記ビデオ領域は、コーディングツリーユニットに対応し、
前記仮想境界は、水平コーディングツリーユニット境界の上にあるN個のサンプルであり、
前記ルールは、前記仮想境界では前記デブロッキングフィルタを無効にすることを定める、
付記7に記載の方法。
【0203】
付記9.
前記ビデオ領域は、変換ユニットであり、
前記ルールは、前記仮想境界と一致する前記ビデオ領域の水平エッジでは前記デブロッキングフィルタを無効にすることを定める、
付記7に記載の方法。
【0204】
付記10.
前記ビデオ領域は、予測ユニットであり、
前記ルールは、前記仮想境界と一致する前記ビデオ領域の水平エッジでは前記デブロッキングフィルタを無効にすることを定める、
付記7に記載の方法。
【0205】
付記11.
前記ルールは、前記仮想境界と一致する前記ビデオ領域の垂直エッジでは前記デブロッキングフィルタを無効にすることを定める、
付記7又は9乃至10のうちいずれかに記載の方法。
【0206】
以下の付記は、前のセクションで挙げられている項目(例えば、項目14)で記載されている追加の技術とともに実装され得る。
【0207】
付記12.
ビデオ処理の方法であって、
ビデオと該ビデオのビットストリーム表現との間の変換のために、前記ビデオのビデオ領域に対してデブロッキングフィルタを使用するとの決定を行うステップと、
前記デブロッキングフィルタの計算が、前記ビデオ領域に関連した仮想境界の位置に依存するルールに従って実行されるように、前記決定に従って前記変換を実行するステップと
を有する方法。
【0208】
付記13.
前記ルールは、前記デブロッキングフィルタを使用することによってサンプルpがサンプルp’に変更されることを定め、
P’=p+d’であり、d’=Clip3(t1,t2,d)であり、
dは、前記変換の間に導出され、
[t1,t2]は、クリッピング範囲であり、t1及びt2は整数である、
付記12に記載の方法。
【0209】
付記14.
t1又はt2は、前記デブロッキングフィルタが前記仮想境界に適用されるかどうかに依存する、
付記13に記載の方法。
【0210】
付記15.
t1=-2Nかつt2=2N-1であり、
Nは整数である、
付記13乃至14のうちいずれかに記載の方法。
【0211】
以下の付記は、前のセクションで挙げられている項目(例えば、項目15)で記載されている追加の技術とともに実装され得る。
【0212】
付記16.
ビデオ処理の方法であって、
少なくとも一部が複数のサブブロックを含む複数のビデオブロックを有するビデオと、該ビデオのコーディングされた表現との間の変換を、サブブロック変換モード及びサブブロックコーディングモードが前記変換の間に相互排他的に使用されることを定める排他ルールに基づき実行するステップを有する方法。
【0213】
付記17.
前記サブブロックコーディングモードは、アフィンコーディングモードに対応する、
付記16に記載の方法。
【0214】
付記18.
前記サブブロックコーディングモードは、SbTMVP(Subblock Temporal Motion Vector Predictor)モードを含む、
付記16又は17に記載の方法。
【0215】
以下の付記は、前のセクションで挙げられている項目(例えば、項目16)で記載されている追加の技術とともに実装され得る。
【0216】
付記19.
前記コーディングされた表現は、前記排他ルールにより除外されるコーディングモードのシンタックス要素を除く、
付記16乃至18のうちいずれかに記載の方法。
【0217】
以下の付記は、前のセクションで挙げられている項目(例えば、項目20)で記載されている追加の技術とともに実装され得る。
【0218】
付記20.
ビデオ処理の方法であって、
ビデオのクロマ成分に関連したコーディング方法又はクロマフォーマットに基づき、前記ビデオと該ビデオのコーディングされた表現との間の変換のために、シンタックス要素が前記コーディングされた表現において通知されるかどうかに関する決定を行うステップと、
前記決定に基づき前記変換を実行するステップと
を有する方法。
【0219】
付記21.
前記クロマフォーマットは、クロマフォーマットサンプリング構造を有する、
付記20に記載の方法。
【0220】
付記22.
前記シンタックス要素は、クロマフォーマットサンプリング構造に従ってピクチャパラメータセットにおいて条件付きで通知されるCb/Crフラグである、
付記20乃至21のうちいずれかに記載の方法。
【0221】
付記23.
前記シンタックス要素はXと呼ばれ、前記クロマフォーマットがモノクロフォーマットである場合にのみ通知される、
付記20に記載の方法。
【0222】
付記24.
前記シンタックス要素はXと呼ばれ、前記クロマフォーマットが4:4:4である場合にのみ通知され、別個のカラーフラグは1にセットされる、
付記20に記載の方法。
【0223】
付記25.
Xは、pps_cb_qp_offset又はpps_cr_qp_offset又はpps_joint_cbcr_qp_offset又はcu_chroma_qp_offset_enabled_flag又はpps_slice_chroma_qp_offsets_preesent_flagである、
付記23又は24に記載の方法。
【0224】
以下の付記は、前のセクションで挙げられている項目(例えば、項目21)で記載されている追加の技術とともに実装され得る。
【0225】
付記26.
ビデオ処理の方法であって、
複数のピクチャの連続を含むビデオのコーディングされた表現において第1シンタックス要素のパージング(parsing)を行うステップと、
前記パージングに基づき前記ビデオを生成するステップと
を有し、
前記第1シンタックス要素は、ピクチャパラメータセットレベルで前記コーディングされた表現に含まれ、
前記パージングは、シーケンスパラメータセットレベルでの第2シンタックス要素の存在に応じて前記第1シンタックス要素の使用を除く暗黙的ルールがないときに実行される、
方法。
【0226】
付記27.
ビデオ処理の方法であって、
ピクチャパラメータセットレベルで、複数のピクチャの連続を含むビデオのコーディングされた表現に第1シンタックス要素を含めるステップと、
前記含めることに基づき前記コーディングされた表現を生成するステップと
を有し、
前記含めるステップは、シーケンスパラメータセットレベルでの第2シンタックス要素の存在に応じて前記第1シンタックス要素の包含を除く暗黙的ルールがないときに実行される、
方法。
【0227】
付記28.
前記第1シンタックス要素は、log2_transform_skip_max_size_minus2であり、
前記第2シンタックス要素は、sps_transform_skip_enabled_flagである、
付記26乃至27のうちいずれかに記載の方法。
【0228】
付記29.
変換は、ビデオをコーディングされた表現に符号化することを有する、
付記1乃至28のうちいずれかに記載の方法。
【0229】
付記30.
変換は、コーディングされた表現を復号してビデオのピクセル値を生成することを有する、
付記1乃至28のうちいずれかに記載の方法。
【0230】
付記31.
付記1乃至30のうちの1つ以上に記載されている方法を実装するよう構成されたプロセッサを有するビデオ復号化装置。
【0231】
付記32.
付記1乃至30のうちの1つ以上に記載されている方法を実装するよう構成されたプロセッサを有するビデオ符号化装置。
【0232】
付記33.
コンピュータコードを記憶しているコンピュータプログラム製品であって、
前記コードは、プロセッサによって実行される場合に、該プロセッサに、付記1乃至30のうちいずれかに記載の方法を実装させる、
コンピュータプログラム製品。
【0233】
付記34.
本明細書で記載されている方法、装置、又はシステム。
【0234】
以下の付記は、いくつかの実施形態及び技術について記載する。付記の第2の組は、前のセクションにおける開示された技術の特定の特徴及び態様(例えば、項目1乃至7)について記載する。
【0235】
付記1.
ビデオ処理の方法(例えば、
図8Aに表されている方法810)であって、
ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきであるサブブロック境界を決定するステップ(812)と、
前記デブロッキングフィルタを用いて、前記ビデオと該ビデオのコーディングされた表現との間の変換を実行するステップ(814)と
を有し、
前記ルールは、i)前記現在のビデオブロックのサブブロックの位置と予め定義された値との和と、ii)前記現在のビデオブロックの幅又は高さとの間の関係をチェックせずに、デブロッキングフィルタ長さが決定されることを定める、
方法。
【0236】
付記2.
前記ルールは、x+dxの値が前記現在のビデオブロックの幅以上であるかどうかをチェックせずに、垂直方向における前記デブロッキングフィルタ長さが決定されることを定める、
付記1に記載の方法。
【0237】
付記3.
xは、前記現在のビデオブロックにおける当該サブブロックの水平位置である、
付記2に記載の方法。
【0238】
付記4.
dxは4に等しくセットされる、
付記3に記載の方法。
【0239】
付記5.
前記ルールは、y+dxの値が前記現在のビデオブロックの高さ以上であるかどうかをチェックせずに、水平方向における前記デブロッキングフィルタ長さが決定されることを定める、
付記1に記載の方法。
【0240】
付記6.
yは、前記現在のビデオブロックにおける当該サブブロックの垂直位置である、
付記5に記載の方法。
【0241】
付記7.
dyは4に等しくセットされる、
付記6に記載の方法。
【0242】
付記8.
ビデオ処理の方法(例えば、
図8Bに表されている方法820)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ルールに基づき、デブロッキングフィルタが前記現在のビデオブロックのサブブロック間の境界に適用されるかどうか、及び/又は前記デブロッキングフィルタが適用される場合に使用されるデブロッキングパラメータに関して決定を行う(822)ステップと、
前記決定に基づき前記変換を実行するステップ(824)と
を有し、
前記ルールは、前記境界がサブブロックのN×Mサンプルグリッドに位置するかどうか、及び/又は前記境界が前記現在のビデオブロックの自然境界であるかどうかに基づき、
N及びMは整数である、方法。
【0243】
付記9.
前記デブロッキングパラメータは、デブロッキングフィルタ長さ及び/又はデブロッキングフィルタ強さを含む、
付記8に記載の方法。
【0244】
付記10.
前記デブロッキングフィルタは、前記ビデオのルーマ情報を含むビデオ情報にデブロッキングフィルタリング処理を施すルーマデブロッキングフィルタに対応し、
前記決定を行うステップは、前記ルーマデブロッキングフィルタを4×4サンプルグリッドに適用することを定める前記ルールに基づき、前記ルーマデブロッキングフィルタを適用すると決定する、
付記8又は9に記載の方法。
【0245】
付記11.
前記ルールは、前記境界が8×8サンプルグリッドに位置する場合に、前記自然境界である前記境界には前記ルーマデブロッキングフィルタが適用されないことを更に定める、
付記10に記載の方法。
【0246】
付記12.
前記決定を行うステップは、フィルタ長さを決定するステップを含む、
付記8に記載の方法。
【0247】
付記13.
前記フィルタ長さの決定は、前記デブロッキングフィルタが、前記ビデオのルーマ情報を含むビデオ情報にデブロッキングフィルタリング処理を施すルーマデブロッキングフィルタに対応する場合に、4×4サンプルグリッドに対して適用され、8×8サンプルグリッドに対しては適用されない、
付記12に記載の方法。
【0248】
付記14.
前記N×Mサンプルグリッドは、当該サブブロックのコーディングモードを決定される、
付記8に記載の方法。
【0249】
付記15.
前記N×Mサンプルグリッドは、当該サブブロックの動き補償又は動き導出エッジと整列する、
付記14に記載の方法。
【0250】
付記16.
前記デブロッキングフィルタは、前記ビデオのクロマ情報を含むビデオ情報にデブロッキングフィルタリング処理を施すクロマデブロッキングフィルタに対応する、
付記8に記載の方法。
【0251】
付記17.
前記ルールは、前記クロマデブロッキングフィルタが前記N×Mサンプルグリッドに適用されることを更に定め、N及びMの夫々は4又は8である、
付記16に記載の方法。
【0252】
付記18.
前記決定を行うステップは、現在のクロマデブロッキングエッジが当該サブブロックの境界であるかどうかを決定するステップを含み、そのような決定は、N×Nサンプルグリッドに対して実行され、Nは4又は8である、
付記16に記載の方法。
【0253】
付記19.
前記フィルタ長さの決定は、前記デブロッキングフィルタが、前記ビデオのクロマ情報を含むビデオ情報にデブロッキングフィルタリング処理を施すクロマデブロッキングフィルタに対応する場合に、前記N×Mサンプルグリッドに対して適用され、N及びMの夫々は4又は8である、
付記12に記載の方法。
【0254】
付記20.
クロマデブロッキングフィルタに対して決定される前記フィルタ長さは、L以下である、
付記12に記載の方法。
【0255】
付記21.
前記クロマデブロッキングフィルタの強さは、i)動きベクトルの数、ii)参照ピクチャ、又はiii)前記境界の両側に位置している2つの隣接ピクセルの間の絶対ブロックベクトル(Block Vector,BV)又は動きベクトル(Motion Vector,MV)差、のうちの少なくとも1つに依存する、
付記16に記載の方法。
【0256】
付記22.
前記決定を行うステップは、前記サブブロックがサブブロックベースの方法を用いてコーディングされるかどうかに更に依存して実行される、
付記8に記載の方法。
【0257】
付記23.
前記現在のサブブロックは、アフィンコーディングモード、SbTMVP(Subblock Temporal Motion Vector Predictor)モード、DMVR(Decoder-side Motion Vector Refinement)モード、クロマIBC(Inter Block Copy)モードでコーディングされる、
付記22に記載の方法。
【0258】
付記24.
前記決定を行うステップは、前記ビデオのカラーサブサンプリングフォーマットに依存する、
付記8に記載の方法。
【0259】
付記25.
N及びMは、前記ビデオのカラーフォーマットに依存する、
付記8乃至24のうちいずれかに記載の方法。
【0260】
付記26.
ビデオ処理の方法(例えば、
図8Cに表されている方法830)であって、
現在のビデオブロックが予測のための複数のサブパーティションに分割されているジオメトリ予測モードでコーディングされた前記現在のビデオブロックのN×Nサンプルグリッドにデブロッキングフィルタを適用するとの決定を行うステップ(832)と、
前記決定に基づき、前記現在のビデオブロックを含むビデオと該ビデオのコーディングされた表現との間の変換を実行するステップ(834)と
を有し、
Nは4又は8に等しい、
方法。
【0261】
付記27.
前記現在のビデオブロックに対する内部エッジ導出は、SbTMVP(Subblock Temporal Motion Vector Predictor)モード及び/又はアフィンモードを用いてコーディングされたビデオブロックに対するサブブロック境界導出プロセスに適用されるルールに基づき、実行される、
付記26に記載の方法。
【0262】
付記28.
前記デブロッキングフィルタの境界、フィルタ長さ、及び/又はフィルタ強さは、4×4サンプルグリッド又は8×8サンプルグリッドに基づき決定される、
付記26に記載の方法。
【0263】
付記29.
ビデオ処理の方法(例えば、
図8Dに表されている方法840)であって、
ビデオの現在のビデオブロックのサブブロックについて、ルールに従って、デブロッキングフィルタが適用されるべきサブブロック境界を決定するステップ(842)と、
前記デブロッキングフィルタを用いて、前記ビデオと該ビデオのコーディングされた表現との間の変換を実行するステップ(844)と
を有する方法。
【0264】
付記30.
前記ルールは、最左垂直境界又は最上水平境界のためのデブロッキングフィルタ長さが、他のサブブロックのために使用されるのと同じであることを定める、
付記29に記載の方法。
【0265】
付記31.
前記ルールは、前記最左垂直境界又は前記最上水平境界が変換ブロックエッジと一致するかどうかに基づき、前記デブロッキングフィルタ長さが決定されることを更に定める、
付記30に記載の方法。
【0266】
付記32.
前記最左垂直境界又は前記最上水平境界について、前記デブロッキングフィルタ長さ(maxFilterLengthPs)は、1)前記最左垂直境界又は前記最上水平境界に対して左隣又は上隣にあるブロックがSbTMVPコーディング若しくはアフィンコーディングされているかどうか、及び/又は2)前記現在のビデオブロック内のサブブロックの数、にかかわらず、Min(5,maxFilterLengthPs)にセットされる、
付記30に記載の方法。
【0267】
付記33.
前記ルールは、デブロッキングフィルタ長さが、対応するサブブロックのサブブロックエッジ位置に基づき決定されることを定める、
付記29に記載の方法。
【0268】
付記34.
前記サブブロックエッジ位置は、[0,M]の範囲を有する対応するサブブロックエッジインデックス(xEdge)を有し、Mは、0以上の整数である、
付記33に記載の方法。
【0269】
付記35.
[a,b]の範囲内のxEdgeについて、前記デブロッキングフィルタ長さは、固定整数値(L)にセットされ、a及びbは、0以上の整数である、
付記34に記載の方法。
【0270】
付記36.
a=0又は1、あるいは、b=M又はM-1、あるいは、a=b=0、1、M又はM-1である、
付記35に記載の方法。
【0271】
付記37.
前記ルールは、デブロッキングフィルタ長さが、前記現在のビデオブロックのサイズとx+deltaの値との間の関係に基づき決定されることを定め、
xは、前記現在のビデオブロック内の水平又は垂直サブブロック位置を表し、deltaは整数である、
付記29に記載の方法。
【0272】
付記38.
前記デブロッキングフィルタ長さは、x+deltaの値が前記現在のビデオブロックの幅又は高さ以上であるかどうかをチェックすることによって、決定される、
付記37に記載の方法。
【0273】
付記39.
前記ルールは、前記現在のビデオブロックにおける列xでの垂直境界又は行yでの水平境界のデブロッキングフィルタ長さが、列x+dxでの垂直境界又はy+dyでの水平境界が変換ブロック境界であるか否かに基づき決定されることを定め、
dx及びdyは整数である、
付記29に記載の方法。
【0274】
付記40.
前記現在のビデオブロックは、SbTMVP(Subblock Temporal Motion Vector Predictor)モード及び/又はアフィンモードを用いてコーディングされる、
付記39に記載の方法。
【0275】
付記41.
前記デブロッキングフィルタ長さは、x+dxが前記現在のビデオブロックの幅以上であるという第1条件が満足されるかどうか、及び/又はy+dyが前記現在のビデオブロックの高さ以上であるという第2条件が満足されるかどうかをチェックせずに、決定される、
付記39に記載の方法。
【0276】
付記42.
前記デブロッキングフィルタ長さは、x+dxが前記現在のビデオブロックの幅以上であるという第1条件が満足されるかどうか、及び/又はy+dyが前記現在のビデオブロックの高さ以上であるという第2条件が満足されるかどうかに更に基づき、決定される、
付記39に記載の方法。
【0277】
付記43.
前記変換の実行は、前記コーディングされた表現を前記現在のビデオブロックから生成することを含む、
付記1乃至42のうちいずれかに記載の方法。
【0278】
付記44.
前記変換の実行は、前記現在のビデオブロックを前記コーディングされた表現から生成することを含む、
付記1乃至42のうちいずれかに記載の方法。
【0279】
付記45.
付記1乃至44のうちいずれか1つ以上に記載されている方法を実装するよう構成されたプロセッサを有するビデオ処理装置。
【0280】
付記46.
実行される場合に、プロセッサに、付記1乃至44のうちいずれか1つ以上に記載されている方法を実装させるプログラムコードを記憶しているコンピュータ可読媒体。
【0281】
付記の第3の組は、前のセクションにおける開示された技術の特定の特徴及び態様(例えば、項目8乃至20)について記載する。
【0282】
付記1.
ビデオ処理の方法(例えば、
図9Aに表されている方法910)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ルールに基づきデブロッキングフィルタを用いて前記現在のビデオブロックのサブブロック境界に適用される境界強さを決定するステップ(912)と、
前記決定に基づき前記変換を実行するステップ(914)と
を有し、
前記ルールは、前記サブブロック境界が変換ブロック境界であるかどうかにかかわらず、前記境界強さが2に等しくセットされることを定める、方法。
【0283】
付記2.
前記ルールは、前記変換ブロック境界ではない前記サブブロック境界に対して前記境界強さが2に等しくセットされることを定める、
付記1に記載の方法。
【0284】
付記3.
前記ルールは、前記境界沿いの2つの隣接サンプルのうちの少なくとも1つがインター-イントラ複合予測(Combined Inter-Intra Prediction,CIIP)モードを用いてコーディングされることを定める、
付記1又は2に記載の方法。
【0285】
付記4.
前記CIIPモードは、インター予測サンプル及びイントラ予測サンプルの加重和に基づき予測サンプルを導出するために使用される、
付記3に記載の方法。
【0286】
付記5.
ビデオ処理の方法(例えば、
図9Bに表されている方法920)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換をルールに従って実行するステップ(922)を有し、
前記変換は、
符号化中に、前記現在のビデオブロックを変換ブロック(Transform Blocks,TB)にパーティション化し、TBレベル変換を前記TBに適用すること、又は
復号化中に、前記ビデオの前記コーディングされた表現内のコーディングされたサンプルにTBレベル逆変換を適用すること
を有するサブブロック変換(Sb-Block Transform,SBT)ツールを使用し、
前記ルールは、水平方向及び/又は垂直方向において少なくとも3つのTB境界にわたって適応フィルタが有効にされることを定める、
方法。
【0287】
付記6.
前記少なくとも3つのTB境界は、前記変換ブロック間の2つのTB境界と、前記現在のビデオブロックのコーディングブロック境界とを含む、
付記5に記載の方法。
【0288】
付記7.
変換ブロックは、前記現在のビデオブロックよりもサイズが小さい、
付記6に記載の方法。
【0289】
付記8.
前記コーディングブロック境界にフィルタリング処理を施すべきかどうかは、前記コーディングブロック境界が前記現在のビデオブロックのサブブロック間のサブブロック境界であるかどうかに依存する、
付記6に記載の方法。
【0290】
付記9.
ビデオ処理の方法(例えば、
図9Cに表されている方法930)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、前記現在のビデオブロックのエッジの両側にある2つの隣接サンプルが、非ゼロ変換係数レベルを含まない2つの変換ブロックに属するとの第1決定を行うステップ(932)と、
前記第1決定に基づき、前記現在のブロックエッジのデブロッキングフィルタ強さを0とセットするとの第2決定を行うステップ(934)と、
前記第1決定及び前記第2決定を用いて前記変換を実行するステップ(936)と
を有する方法。
【0291】
付記10.
前記2つの隣接サンプルのうちの1つは、前記現在のビデオブロックがサブパーティションに分割されるジオメトリ予測モードとしてコーディングされている、
付記9に記載の方法。
【0292】
付記11.
前記2つの隣接サンプルの間の動きベクトル差は、閾値Tよりも高く、Tは整数である、
付記9に記載の方法。
【0293】
付記12.
変換ブロック境界での前記デブロッキングフィルタ強さについての前記第2決定は、動きベクトル関連ルールから独立して行われる、
付記9に記載の方法。
【0294】
付記13.
ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、デコーダ側動きベクトル精緻化(Decoder-side Motion Vector Refinement,DMVR)ツールを用いて実行するステップと、
前記変換の間に生成された再構成されたビデオブロックにデブロッキングフィルタを適用するステップと
を有し、
前記DMVRツールは、前記コーディングされた表現内のコーディングされた動きベクトルを精緻化することによって生成された精緻化された動きベクトルを使用する動き補償によって前記再構成されたビデオブロックを生成することを含み、
前記デブロッキングフィルタのパラメータは、前記精緻化された動きベクトルに基づく、
方法。
【0295】
付記14.
前記現在のビデオブロックは、前DMVRによって処理されたコーディングユニット(Coding Unit,CU)に対応し、
前記デブロッキングプロセスは、前記現在のビデオブロックのサブブロックの前記精緻化された動きベクトルを用いて前記コーディングユニット内のサブブロック境界で実行される、
付記13に記載の方法。
【0296】
付記15.
前記現在のビデオブロックは、前DMVRによって処理されたコーディングユニット(CU)に対応し、
前記デブロッキングプロセスは、前記CUの通知された動きベクトルを用いてCU境界で実行される、
付記13に記載の方法。
【0297】
付記16.
前記現在のビデオブロックは、前DMVRによって処理されたコーディングユニット(CU)に対応し、
前記デブロッキングプロセスは、前記CUの通知された動きベクトルと、前記現在のビデオブロックのサブブロックの前記精緻化された動きベクトルとを用いてCU境界で実行される、
付記13に記載の方法。
【0298】
付記17.
ビデオ処理の方法(例えば、
図9Dに表されている方法940)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ルールに基づき、デブロッキングフィルタプロセスのためのデブロッキングフィルタ強さを決定するステップ(942)と、
前記決定に基づき前記変換を実行するステップ(944)と
を有し、
前記ルールは、前記デブロッキングフィルタ強さが、前記現在のビデオブロックの隣接するブロックの予測モードに依存しないことを定める、方法。
【0299】
付記18.
特定のコーディングモードは、前記現在のビデオブロックを含むビデオフレームを指し示すブロックベクトルを用いて予測ブロックを生成するインターブロックコピー(Inter Block Copy,IBC)モード、又は時間相関を用いて前記ビデオを表現又は再構成することを含むインターコーディングモードである、
付記17に記載の方法。
【0300】
付記19.
前記ルールは、前記デブロッキングフィルタ強さが、前に処理されたビデオブロックに基づき前記ビデオを表現又は再構成することを含むイントラモードを用いて前記隣接するブロックの1つがコーディングされているかどうかに依存することを定める、
付記17又は18に記載の方法。
【0301】
付記20.
ビデオ処理の方法(例えば、
図9Eに表されている方法950)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、デブロッキングフィルタが前記現在のビデオブロックの境界に適用されるかどうか、及び/又は前記デブロッキングフィルタが適用される場合に使用されるデブロッキングパラメータを、前記境界のタイプに依存する又は該タイプとは無関係であるルールに基づき、決定するステップ(952)と、
前記決定に基づき前記変換を実行するステップ(954)と
を有する方法。
【0302】
付記21.
前記境界のタイプは、前記境界が変換ブロック境界又はサブブロック境界であるかどうかに関係がある、
付記20に記載の方法。
【0303】
付記22.
前記ルールは、デブロッキングフィルタ強さが、変換ブロック境界又はサブブロック境界に対して異なる値として決定されることを定める、
付記20又は21に記載の方法。
【0304】
付記23.
変換ブロック境界フラグが第1アレイバッファに格納され、サブブロック境界フラグが、前記第1アレイバッファとは異なる第2アレイバッファに格納される、
付記22に記載の方法。
【0305】
付記24.
前記変換ブロック境界のための前記デブロッキングフィルタ強さは、変換係数に基づき決定される、
付記22に記載の方法。
【0306】
付記25.
前記サブブロック境界のための前記デブロッキングフィルタ強さは、前記境界の両側に位置している2つの隣接ピクセルの間の参照ピクチャ及び/又は動きベクトルに基づき決定される、
付記22に記載の方法。
【0307】
付記26.
前記ルールは、1)前記境界が前記変換ブロック境界であって前記サブブロック境界ではなく、2)前記境界沿いの2つの隣接サンプルのうちの少なくとも1つがインターイントラ複合予測(CIIP)モードを用いてコーディングされている場合に、1又は2に等しくセットされることを定め、Xは1又は2である、
付記22に記載の方法。
【0308】
付記27.
前記デブロッキングパラメータは、フィルタ強さ、フィルタ長さ、又は境界強さ、のうちの少なくとも1つを含み、
前記ルールは、前記境界の異なるタイプについて同じパラメータを使用することを定める、
付記20に記載の方法。
【0309】
付記28.
ビデオ処理の方法(例えば、
図9Fに表されている方法960)であって、
ビデオのビデオ領域と前記ビデオのコーディングされた表現との間の変換のために、ある方向のデブロッキングフィルタが、水平境界からNサンプル離れている仮想境界にわたって適用されないと決定するステップ(962)と、
前記決定に基づき前記変換を実行するステップ(964)と
を有し、
Nは0よりも大きい整数である、方法。
【0310】
付記29.
Nは、ルーマ成分に対応する前記ビデオ領域については4であり、
Nは、クロマ成分に対応する前記ビデオ領域については2である、
付記28に記載の方法。
【0311】
付記30.
前記決定するステップは、水平方向のデブロッキングフィルタが、前記現在のビデオブロックの変換ユニット、コーディングユニット、予測ユニット、又はサブブロックの境界に適用されないことを決定し、前記境界は前記仮想境界と一致する、
付記28又は29に記載の方法。
【0312】
付記31.
前記決定するステップは、垂直方向のデブロッキングフィルタが、前記現在のビデオブロックの変換ユニット、コーディングユニット、予測ユニット、又はサブブロックの境界に適用されることを決定し、前記境界は前記仮想境界と一致する、
付記28又は29に記載の方法。
【0313】
付記32.
ビデオ処理の方法(例えば、
図9Gに表されている方法970)であって、
ビデオのビデオ領域と前記ビデオのコーディングされた表現との間の変換のために、デブロッキングフィルタを使用するデブロッキングプロセス中にサンプルの値をクリップすべきかどうか又はどのようにクリップすべきかを、前記デブロッキングフィルタによってフィルタリング処理される境界が前記ビデオ領域の水平境界からNサンプル離れている仮想境界と一致するかどうかに依存するルールに基づき、決定するステップ(972)と、
前記決定に基づき前記変換を実行するステップ(974)と
を有し、
Nは0よりも大きい整数である、方法。
【0314】
付記33.
前記ルールは、値(p)を有する前記サンプルが前記デブロッキングフィルタを使用することによって異なる値(p’)に変更されることを定め、p’=p+d’であり、d’=Clip3(t1,t2,d)であり、dは前記変換の間に導出され、[t1,t2]はクリッピング範囲であり、t1及びt1は整数である、
付記32に記載の方法。
【0315】
付記34.
t1又はt2は、前記デブロッキングフィルタが前記仮想境界に適用されるかどうかに依存する、
付記33に記載の方法。
【0316】
付記35.
t1=-2N及びt2=2N-1であり、
Nは整数である、
付記33又は34に記載の方法。
【0317】
付記36.
Nは、色成分及び/又はサンプルビットデプスに依存する、
付記35に記載の方法。
【0318】
付記37.
ビデオ処理の方法(例えば、
図9Hに表されている方法980)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために使用されるコーディングツールをルールに従って決定するステップ(982)と、
前記コーディングツールに従って前記変換を実行するステップ(984)と
を有し、
前記ルールは、サブブロック変換(STB)ツールがサブブロックベースのコーディングモードでのみ使用されることを定める、方法。
【0319】
付記38.
前記サブブロックベースのコーディングモードは、アフィンコーディングモード又はSbTMVP(Subblock Temporal Motion Vector Predictor)モードを含む、
付記37に記載の方法。
【0320】
付記39.
前記コーディングされた表現は、前記ルールにより除外される前記サブブロックベースのコーディングモードのシンタックス要素を除く、
付記37又は38に記載の方法。
【0321】
付記40.
ビデオ処理の方法(例えば、
図9Iに表されている方法990)であって、
イントラサブパーティショニング(Intra Sub-Partitioning,ISP)モードの使用に従ってサブパーティションに分割される現在のビデオブロックについて、前記現在のビデオブロックの2つのサブパーティション間の境界にデブロッキングフィルタを適用することを決定するステップ(992)と、
前記決定に基づき前記ビデオの前記現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップ(994)と
を有する方法。
【0322】
付記41.
前記現在のビデオブロックの前記2つのサブパーティション間にある列xでの垂直境界は、xがx=M×P+offset及び/又はx<Wを満足する場合に、前記デブロッキングフィルタによってフィルタリング処理され、
offset、M及びPは正の整数であり、Wは前記現在のビデオブロックの幅である、
付記40に記載の方法。
【0323】
付記42.
前記現在のビデオブロックの前記2つのサブパーティション間にある行yでの水平境界は、yがy=M×P+offset及び/又はy<Hを満足する場合に、前記デブロッキングフィルタによってフィルタリング処理され、
offset、M及びPは正の整数であり、Hは前記現在のビデオブロックの高さである、
付記40に記載の方法。
【0324】
付記43.
ビデオ処理の方法(例えば、
図10Aに表されている方法1010)であって、
現在のビデオブロックがサブパーティションに分割されるジオメトリ予測モードでコーディングされた前記現在のビデオブロックについて、前記現在のビデオブロックの2つのM×N領域の間の境界にデブロッキングフィルタを適用することを決定するステップ(1012)と、
前記決定に基づきビデオの前記現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップ(1014)と
を有し、
M及びNは整数である、方法。
【0325】
付記44.
M×Nは4×4又は8×8に等しい、
付記43に記載の方法。
【0326】
付記45.
ビデオ処理の方法(例えば、
図10Bに表されている方法1020)であって、
ビデオブロックを含むビデオと該ビデオのコーディングされた表現との間の変換のために、2つの隣接するビデオブロックの少なくとも1つが、前記2つの隣接するビデオブロックのうちの少なくとも1つがサブパーティションに分割されるジオメトリ予測モードでコーディングされていることにより、前記2つの隣接するビデオブロックの間の境界にデブロッキングフィルタを適用することを決定するステップ(1022)と、
前記決定に基づき前記変換を実行するステップ(1024)と
を有する方法。
【0327】
付記46.
ビデオ処理の方法(例えば、
図10Cに表されている方法1030)であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ルールに基づき、フィルタリングプロセスで使用されるフィルタリングパラメータを決定するステップ(1032)と、
前記決定に基づき前記変換を実行するステップ(1034)と
を有し、
前記ルールは、前記フィルタリングパラメータが、i)動き補償プロセスで使用される動き情報、ii)動きストレージに格納されている動き情報、又はiii)動きベクトル予測プロセスで使用される動き情報、に依存することを定める、
方法。
【0328】
付記47.
前記ルールは、前記2つの隣接するビデオブロックのうちの少なくとも1つがサブパーティションに分割されるジオメトリ予測モードでコーディングされた前記現在のビデオブロックについて、前記フィルタリングプロセスが前記動き補償プロセスで使用される前記動き情報に基づくことを定める、
付記46に記載の方法。
【0329】
付記48.
前記ルールは、デブロッキングフィルタ強さ導出プロセス中に及び/又はデブロッキング境界フィルタリング強さ設定のために、動き補償プロセスで使用される動きベクトルを使用することを更に定める、
付記47に記載の方法。
【0330】
付記49.
前記ルールは、前記現在のビデオブロックの記憶されているH×H動きベクトルが、デブロッキング境界フィルタリング強さ設定のために使用されないことを更に定める、Hは0よりも大きい整数である、
付記47に記載の方法。
【0331】
付記50.
前記ルールは、復号された情報及び/又はブロック寸法に依存する、
付記47に記載の方法。
【0332】
付記51.
ビデオ処理の方法であって、
ビデオと該ビデオのコーディングされた表現との間の変換を実行するステップを有し、
前記コーディングされた表現は、フォーマッティングルールに従い、
前記フォーマッティングルールは、クロマフォーマット、クロマ成分に関連したコーディングモード、又はクロマ情報シンタックス要素に基づき、前記クロマ成分を示すクロマシンタックス要素を前記コーディングされた表現に含めるべきかどうかを定める、
方法。
【0333】
付記52.
前記クロマシンタックス要素は、前記クロマフォーマットのサンプリング構造又は前記クロマ情報シンタックス要素に従ってピクチャパラメータセットにおいて条件付きで通知されるCb/Crフラグである、
付記51に記載の方法。
【0334】
付記53.
前記クロマシンタックス要素はXと呼ばれ、ChromaArrayTypeが真に等しい場合に通知される、
付記51に記載の方法。
【0335】
付記54.
前記クロマシンタックス要素はXと呼ばれ、前記クロマフォーマットがモノクロフォーマットである場合にのみ通知される、
付記51又は52に記載の方法。
【0336】
付記55.
前記クロマシンタックス要素はXと呼ばれ、前記クロマフォーマットが4:4:4である場合にのみ通知され、別個のカラーフラグは1にセットされる、
付記51又は52に記載の方法。
【0337】
付記56.
前記クロマシンタックス要素はXと呼ばれ、前記クロマ情報シンタックス要素が1にセットされる場合にのみ通知される、
付記51又は52に記載の方法。
【0338】
付記57.
Xは、i)pps_cb_qp_offset又はii)pps_cr_qp_offset又はiii)pps_joint_cbcr_qp_offset又はiv)cu_chroma_qp_offset_enabled_flag又はv)pps_slice_chroma_qp_offsets_present_flagである、
付記52乃至56のうちいずれかに記載の方法。
【0339】
付記58.
前記変換の実行は、前記コーディングされた表現を前記現在のビデオブロックから生成することを含む、
付記1乃至57のうちいずれかに記載の方法。
【0340】
付記59.
前記変換の実行は、前記現在のビデオブロックを前記コーディングされた表現から生成することを含む、
付記1乃至57のうちいずれかに記載の方法。
【0341】
付記60.
付記1乃至59のうちいずれか1つ以上に記載されている方法を実装するよう構成されたプロセッサを有するビデオ処理装置。
【0342】
付記61.
実行される場合に、プロセッサに、付記1乃至59のうちいずれか1つ以上に記載されている方法を実装させるプログラムコードを記憶しているコンピュータ可読媒体。いくつかの実施形態で、コンピュータ可読媒体は、本明細書で記載されている技術に従って生成されたコーディングされた表現又はビットストリームを記憶する。
【0343】
本明細書で記載されている開示された及び他の解決法、例、実施形態、モジュール及び機能的動作は、デジタル電子回路で、あるいは、本明細書で開示されている構造及びそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、又はハードウェアで、あるいは、それらのうちの1つ以上の組み合わせで実装可能である。開示された及び他の実施形態は、1つ以上のコンピュータプログラム製品として、つまり、データ処理装置によって実行されるか又はその動作を制御するコンピュータ可読媒体で符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装可能である。コンピュータ可読媒体は、マシン可読記憶デバイス、マシン可読記憶基板、メモリデバイス、マシン可読な伝播信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであることができる。「データ処理装置」との用語は、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及びマシンを包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコード、を含むことができる。伝播信号は、人工的に生成された信号、例えば、適切な受信器装置への伝送のために情報を符号化するよう生成される、マシンにより生成された電気、光、又は電磁気信号である。
【0344】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる。)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとしてを含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、問題となっているプログラムに専用の単一のファイルで、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで、実行されるようデプロイ可能である。
【0345】
本明細書で記載されているプロセス及びロジックフローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及びロジックフローはまた、専用のロジック回路、例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)又は特定用途向け集積回路(ASIC)によっても実行可能であり、装置は、そのようなものとして実装可能である。
【0346】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリ又はその両方から命令及びデータを読み出す。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスとである。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク、又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス;磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスク;光学磁気ディスク;並びにCD ROM及びDVD-ROMディスクを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0347】
本明細書は、多数の詳細を含むが、それらは、あらゆる対象の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態に関連して本明細書で記載されている特定の特徴は、単一の実施形態で組み合わせて実装することもできる。逆に、単一の実施形態に関連して記載されている様々な特徴はまた、複数の実施形態で別々に、又は何らかの適切なサブコンビネーションで、実装することもできる。更に、特徴は、特定の組み合わせで動作するものとして先に説明され、更には、そのようなものとして最初に請求されることがあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてもよい。
【0348】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が示されているその特定の順序で又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。更に、本明細書で記載されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0349】
ほんのわずかの実施及び例が記載されており、他の実施、強化及び変形は、本特許文献で記載及び例示されているものに基づいて行われ得る。
【0350】
[関連出願への相互参照]
本願は、2019年8月23日付けに出願された国際特許出願第PCT/CN2019/102217号の優先権及びその利益を主張して2020年8月24日付けで出願された国際特許出願第PCT/CN2020/110784号の国内移行である特願2022-512298号の分割出願である。上記の出願の全開示は、本願の開示の部分として参照により援用される。
【外国語明細書】