(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164589
(43)【公開日】2023-11-10
(54)【発明の名称】フィルタリングを用いた行列ベースイントラ予測
(51)【国際特許分類】
H04N 19/593 20140101AFI20231102BHJP
H04N 19/59 20140101ALI20231102BHJP
【FI】
H04N19/593
H04N19/59
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023150874
(22)【出願日】2023-09-19
(62)【分割の表示】P 2021563241の分割
【原出願日】2020-05-05
(31)【優先権主張番号】PCT/CN2019/085399
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/087047
(32)【優先日】2019-05-15
(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】
前記左及び上参照境界サンプルは、イントラ参照サンプルフィルタリングプロセスを用いることなく導出される、請求項2に記載の方法。
【請求項4】
前記アップサンプリング演算への入力は、前記映像ブロックの前記参照境界サンプルを平均することによっては計算されない、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記アップサンプリング演算への前記入力のうち少なくとも1つは、前記参照境界サンプルからコピーされる、請求項4に記載の方法。
【請求項6】
前記第1のイントラモードを適用するかを指し示す第1の構文要素が前記ビットストリームに含められる、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記行列ベクトル乗算演算は、前記アップサンプリング演算に先立つ転置演算に続かれる、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記転置演算は、第1の値の幅及び第2の値の高さを持つブロックを、前記第2の値の幅及び前記第1の値の高さを持つブロックに変換する、請求項7に記載の方法。
【請求項9】
前記変換は、前記映像ブロックを前記ビットストリームへと符号化することを含む、請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記変換は、前記ビットストリームから前記映像ブロックを復号することを含む、請求項1乃至8のいずれか一項に記載の方法。
【請求項11】
プロセッサと、命令を有する非一時的なメモリと、を有する映像データを処理する装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
映像の映像ブロックと前記映像のビットストリームとの間での変換のために、前記映像の前記映像ブロックに第1のイントラモードが適用されることを決定させ、前記第1のイントラモードにおけるプロセスは、前記映像の前記映像ブロックに関する予測サンプルを生成するための、前記映像ブロックのサイズに基づく境界ダウンサンプリング演算と、それに続く行列ベクトル乗算演算及び選択的に続くアップサンプリング演算とを含み、
前記予測サンプルに基づいて前記変換を実行させ、
前記境界ダウンサンプリング演算において、前記映像ブロックのダウンサンプリング後の境界サイズが前記映像ブロックのサイズより小さい場合、前記映像の前記映像ブロックの参照境界サンプルから、前記境界ダウンサンプリング演算によって、減少した境界サンプルが生成されて、前記行列ベクトル乗算演算への入力を生成するために使用され、前記減少した境界サンプルは、前記映像ブロックの前記参照境界サンプル及びダウンスケーリング係数から生成され、
前記ダウンスケーリング係数は、水平方向及び垂直方向においてそれぞれ計算され、
前記ダウンスケーリング係数は、前記映像ブロックのサイズに基づいて計算される、
装置。
【請求項12】
命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
映像の映像ブロックと前記映像のビットストリームとの間での変換のために、前記映像の前記映像ブロックに第1のイントラモードが適用されることを決定させ、前記第1のイントラモードにおけるプロセスは、前記映像の前記映像ブロックに関する予測サンプルを生成するための、前記映像ブロックのサイズに基づく境界ダウンサンプリング演算と、それに続く行列ベクトル乗算演算及び選択的に続くアップサンプリング演算とを含み、
前記予測サンプルに基づいて前記変換を実行させ、
前記境界ダウンサンプリング演算において、前記映像ブロックのダウンサンプリング後の境界サイズが前記映像ブロックのサイズより小さい場合、前記映像の前記映像ブロックの参照境界サンプルから、前記境界ダウンサンプリング演算によって、減少したサンプルが生成されて、前記行列ベクトル乗算演算への入力を生成するために使用され、前記減少した境界サンプルは、前記映像ブロックの前記参照境界サンプル及びダウンスケーリング係数から生成され、
前記ダウンスケーリング係数は、水平方向及び垂直方向においてそれぞれ計算され、
前記ダウンスケーリング係数は、前記映像ブロックのサイズに基づいて計算される、
コンピュータ読み取り可能記憶媒体。
【請求項13】
映像のビットストリームを格納する方法であって、
前記映像の映像ブロックに第1のイントラモードが適用されることを決定するステップであり、前記第1のイントラモードにおけるプロセスは、前記映像の前記映像ブロックに関する予測サンプルを生成するための、前記映像ブロックのサイズに基づく境界ダウンサンプリング演算と、それに続く行列ベクトル乗算演算及び選択的に続くアップサンプリング演算とを含む、ステップと、
前記予測サンプルに基づいて前記ビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に格納するステップと、
を有し、
前記境界ダウンサンプリング演算において、前記映像ブロックのダウンサンプリング後の境界サイズが前記映像ブロックのサイズより小さい場合、前記映像の前記映像ブロックの参照境界サンプルから、前記境界ダウンサンプリング演算によって、減少した境界サンプルが生成されて、前記行列ベクトル乗算演算への入力を生成するために使用され、前記減少した境界サンプルは、前記映像ブロックの前記参照境界サンプル及びダウンスケーリング係数から生成され、
前記ダウンスケーリング係数は、水平方向及び垂直方向においてそれぞれ計算され、
前記ダウンスケーリング係数は、前記映像ブロックのサイズに基づいて計算される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年5月5日に出願された国際特許出願第PCT/CN2020/088584号に基づく特願2021-563241の分割出願であり、当該国際特許出願は、2019年5月1日に出願された国際特許出願第PCT/CN2019/085399号及び2019年5月15日に出願された国際特許出願第PCT/CN2019/087047号の優先権及び利益を主張するものである。上記特許出願の全てをそれらの全体にてここに援用する。
【0002】
この特許文書は、映像符号化技術、装置及びシステムに関連する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅使用を占めている。映像を受信して表示することが可能な接続ユーザ装置の数が増えるにつれて、デジタル映像使用に対する帯域幅需要が増加し続けることが予期される。
【発明の概要】
【0004】
デジタル映像符号化、そして具体的には、映像符号化のための行列ベースイントラ予測法に関係する装置、システム及び方法が記載される。記載される方法は、既存の映像符号化標準(例えば、HEVC(High Efficiency Video Coding)及び将来の映像符号化標準(例えば、VVC(Versatile Video Coding))若しくはコーデックの双方に適用され得る。
【0005】
第1の例の映像処理のための方法は、映像の現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を、行列ベースイントラ予測(matrix based intra prediction;MIP)モードを用いて実行するステップを含み、MIPモードにおいて、現在映像ブロックの予測ブロックは、現在映像ブロックの左に位置する及び現在映像ブロックの上に位置する参照境界サンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定され、境界ダウンサンプリング演算において現在映像ブロックの参照境界サンプルから計算された減少した境界サンプルの代わりに、参照境界サンプルが直接的に、アップサンプリング演算における予測プロセスに使用される。
【0006】
第2の例の映像処理のための方法は、映像の現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、行列ベースイントラ予測(MIP)モードに関連するアップサンプリング演算にて、現在映像ブロックのサンプルに対して少なくとも2つのフィルタリング段階を実行するステップであり、MIPモードにおいて、現在映像ブロックの予測ブロックは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定され、少なくとも2つのフィルタリング段階のうちの第1のフィルタリング段階におけるサンプルの第1の精度は、少なくとも2つのフィルタリング段階のうちの第2のフィルタリング段階におけるサンプルの第2の精度とは異なる、実行するステップと、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0007】
第3の例の映像符号化方法は、行列ベースイントラ予測(MIP)モードを用いて映像の現在映像ブロックを符号化するステップであり、MIPモードにおいて、現在映像ブロックの予測ブロックは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定される、実行するステップと、現在映像ブロックの符号化表現に、現在映像ブロックに対するMIPモードの適用可能性を指し示す構文要素を、該構文要素のコンテキストがルールに基づいて導出される算術符号化を用いて追加するステップと、を含む。
【0008】
第4の例の映像復号方法は、現在映像ブロックを有する映像の符号化表現を、現在映像ブロックが行列ベースイントラ予測(MIP)モードを用いて符号化されるかを指し示す構文要素に関して解析するステップであり、該構文要素は、該構文要素に関するコンテキストがルールに基づいて導出される算術符号化を用いて符号化される、解析するステップと、現在映像ブロックの符号化表現を復号して復号現在映像ブロックを生成するステップであり、現在映像ブロックがMIPモードを用いて符号化される場合に、当該復号は、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって、現在映像ブロックの予測ブロックを決定することを含む、復号するステップと、を含む。
【0009】
代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックがアフィン線形加重イントラ予測(affine linear weighted intra prediction;ALWIP)モードを用いて符号化されることを決定するステップと、該決定に基づき、非ALWIPイントラモード向けの最確モード(most probable modes;MPM)リストの少なくとも一部に基づいて、ALWIPモード向けのMPMリストの少なくとも一部を構築するステップと、ALWIPモード向けのMPMリストに基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0010】
他の代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックのルマコンポーネントが、アフィン線形加重イントラ予測(ALWIP)モードを用いて符号化されることを決定するステップと、該決定に基づいてクロマイントラモードを推定するステップと、クロマイントラモードに基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0011】
更なる他の代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックがアフィン線形加重イントラ予測(ALWIP)モードを用いて符号化されることを決定するステップと、該決定に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0012】
更なる他の代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックがアフィン線形加重イントラ予測(ALWIP)モードとは異なる符号化モードを用いて符号化されることを決定するステップと、該決定に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0013】
更なる他の代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックに対して、アフィン線形加重イントラ予測(ALWIP)モードを用いて第1の予測を生成するステップと、第1の予測に基づいて、位置依存イントラ予測コンビネーション(position dependent intra prediction combination;PDPC)を用いて第2の予測を生成するステップと、第2の予測に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0014】
更なる他の代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この例示的な方法は、現在映像ブロックがアフィン線形加重イントラ予測(ALWIP)モードを用いて符号化されることを決定するステップと、ALWIPモードに基づいて、現在映像ブロックの複数のサブブロックを予測するステップと、該予測に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0015】
更なる他の代表的な一態様において、映像処理の方法が開示される。当該方法は、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、現在映像ブロックに対するルールに基づいて、アフィン線形加重イントラ予測(ALWIP)モードの使用を指し示すフラグのコンテキストを決定するステップと、ALWIPモードに基づいて、現在映像ブロックの複数のサブブロックを予測するステップと、該予測に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
【0016】
更なる他の代表的な一態様において、映像処理の方法が開示される。当該方法は、現在映像ブロックがアフィン線形加重イントラ予測(ALWIP)モードを用いて符号化されることを決定するステップと、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、ALWIPモードに関連するアップサンプリングプロセスにて、現在映像ブロックのサンプルに対して少なくとも2つのフィルタリング段階を実行するステップと、を含み、少なくとも2つのフィルタリング段階のうちの第1のフィルタリング段階におけるサンプルの第1の精度は、少なくとも2つのフィルタリング段階のうちの第2のフィルタリング段階におけるサンプルの第2の精度とは異なる。
【0017】
更なる他の代表的な一態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ読み取り可能なプログラム媒体に格納される。
【0018】
更なる他の代表的な一態様において、上述の方法を実行するように構成された又は動作可能な装置が開示される。当該装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0019】
更なる他の代表的な一態様において、ビデオデコーダ装置が、ここに記載される方法を実装し得る。
【0020】
開示される技術の上述の及び他の態様及び特徴が、図面、明細書、及び特許請求の範囲に更に詳細に記載される。
【図面の簡単な説明】
【0021】
【
図1】33個のイントラ予測方向の一例を示している。
【
図2】67個のイントラ予測モードの一例を示している。
【
図3】線形モデルの重みの導出に使用されるサンプルの位置の一例を示している。
【
図4】予測ブロックに隣接する4つの参照ラインの一例を示している。
【
図6】4×4ブロックに関するALWIPの一例を示している。
【
図7】8×8ブロックに関するALWIPの一例を示している。
【
図8】8×4ブロックに関するALWIPの一例を示している。
【
図9】16×16ブロックに関するALWIPの一例を示している。
【
図10】MPMリスト構築に使用される隣接ブロックの一例を示している。
【
図11】開示される技術に従った、行列ベースイントラ予測に関する方法の一例のフローチャートを示している。
【
図12】開示される技術に従った、行列ベースイントラ予測に関する方法の他の一例のフローチャートを示している。
【
図13】開示される技術に従った、行列ベースイントラ予測に関する方法の更なる他の一例のフローチャートを示している。
【
図14】開示される技術に従った、行列ベースイントラ予測に関する方法の更なる他の一例のフローチャートを示している。
【
図15】本文書に記載されるビジュアルメディア復号又はビジュアルメディア符号化技術を実装するためのハードウェアプラットフォームの一例のブロック図である。
【
図17】この開示の技術を利用し得る映像符号化システムの一例を示すブロック図である。
【
図18】ビデオエンコーダの一例を示すブロック図である。
【
図19】ビデオデコーダの一例を示すブロック図である。
【
図20】ここに開示される様々な技術が実装され得る映像処理システムの一例を示すブロック図である。
【
図21】
図21-24は、開示される技術に従った、行列ベースイントラ予測に関する方法例を記載している。
【
図22】
図21-24は、開示される技術に従った、行列ベースイントラ予測に関する方法例を記載している。
【
図23】
図21-24は、開示される技術に従った、行列ベースイントラ予測に関する方法例を記載している。
【
図24】
図21-24は、開示される技術に従った、行列ベースイントラ予測に関する方法例を記載している。
【発明を実施するための形態】
【0022】
より高い解像度の映像に対する高まる要求により、映像符号化方法及び技術は、現代技術においてどこにでも見られるものになっている。映像コーデックは、典型的に、デジタル映像を圧縮又は解凍する電子回路又はソフトウェアを含み、より高い符号化効率を提供するために絶えず改良されている。映像コーデックは、圧縮されていない映像を圧縮フォーマットに変換し、又はその逆の変換を行う。映像品質、映像を表現するために使用されるデータの量(ビットレートによって決定される)、符号化及び復号のアルゴリズムの複雑さ、データ損失及び誤差に対する感度、編集の容易さ、ランダムアクセス、及びエンド・ツー・エンド遅延(レイテンシ)の間に複雑な関係がある。圧縮フォーマットは、通常、例えばHEVC(High Efficiency Video Coding)標準(H.265又はMPEG-H Part2としても知られている)、成立されることになるVVC(Versatile Video Coding)標準、又は他の現在及び/又は将来の映像符号化標準といった、標準映像圧縮仕様に準拠する。
【0023】
開示される技術の実施形態は、ランタイム性能を改善するために、既存の映像符号化標準(例えば、HEVC、H.265)及び将来の標準に適用され得る。本文書では、説明の読みやすさを向上させるためにセクション見出しを使用するが、それらセクション見出しは、説明又は実施形態(及び/又は実装)をそれぞれのセクションのみに限定するものではない。
【0024】
1 HEVCに関する簡単なレビュー
1.1 HEVC/H.265におけるイントラ予測
イントラ予測は、検討されているカラーチャネルにおける先行して再構成されたサンプルを用いて、所与のTB(変換ブロック)に関するサンプルを生成することを含む。イントラ予測モードは、ルマ(luma)チャネル及びクロマ(chroma)チャネルに関して別々に信号伝達され、クロマチャネルイントラ予測モードは、オプションで、‘DM_CHROMA’モードを介してルマチャネルイントラ予測モードに依存する。イントラ予測モードはPB(予測ブロック)レベルで信号伝達されるが、イントラ予測プロセスは、CUの残りの四分木階層に従ってTBレベルで適用され、それにより、1つのTBの符号化がCU内の次のTBの符号化に影響すること、及びそれ故に、参照値として使用されるサンプルまでの距離を短くすることを可能にする。
【0025】
HEVCは、DCモード、プレーナ(planar)モード、及び33個の方向若しくは‘角度’イントラ予測モードという35個のイントラ予測モードを含んでいる。33の角度イントラ予測モードは
図1に示されている。
【0026】
クロマカラーチャネルに関連するPBでは、イントラ予測モードは、プレーナモード、DCモード、水平モード、垂直モード、‘DM_CHROMA’モード、又は時々、対角モード‘34’のいずれかとして規定される。
【0027】
なお、クロマフォーマット4:2:2及び4:2:0では、クロマPBは(それぞれ)2つ又は4つのルマPBと重なり合うとすることができ、この場合、DM_CHROMAでのルマ方向はこれらのルマPBの左上からとられる。
【0028】
DM_CHROMAモードは、ルマカラーチャネルPBのイントラ予測モードがクロマカラーチャネルPBに適用されることを指し示す。これは比較的一般的であるので、intra_chroma_pred_modeの最確モード符号化スキームは、このモードが選択されることを好むようにバイアスされる。
【0029】
2 VVCにおけるイントラ予測の例
2.1 67個のイントラ予測モードを備えたイントラモード符号化
自然映像内で示される任意のエッジ方向を捕捉するために、方向イントラモードの数が、HEVCで使用されるような33個から65個に拡張される。追加の方向モードを、
図2に赤色の点線矢印として示しており、プレーナモード及びDCモードは同じままである。これらのいっそう密な方向イントラ予測モードが、全てのブロックサイズに適用されるとともに、ルマイントラ予測及びクロマイントラ予測の両方に適用される。
【0030】
2.2 クロスコンポーネント線形モデル(CCLM)の例
一部の実施形態において、また、クロスコンポーネント冗長性を低減させるために、クロスコンポーネント線形モデル(cross-component linear model;CCLM)予測モード(LMとしても参照される)がJEMにおいて使用され、そこでは、クロマサンプルが、以下:
【数1】
の線形モデルを使用することによって、同じCUの再構成されたルマサンプルに基づいて予測される。
【0031】
ここで、pred
C(i,j)は、CU内の予測クロマサンプルを表し、recL’(i,j)は、同じCUのダウンサンプリングされた再構成ルマサンプルを表す。線形モデルパラメータα及びβは、ダウンサンプリングされた隣接ルマサンプルのセット内で最小サンプル値を持つルマサンプル及び最大サンプル値を持つルマサンプルとそれらの対応するクロマサンプルとである、2つのサンプルからのルマ値とクロマ値との間の関係から導出される。
図3は、CCLMモードに関与する現在ブロックのサンプル並びに左サンプル及び上サンプルの位置の一例を示している。
【0032】
このパラメータ計算は、復号プロセスの一部として実行され、単にエンコーダ探索処理としてではない。結果として、α及びβ値をデコーダに伝達するために使用される構文はない。
【0033】
クロマイントラモード符号化では、合計8つのイントラモードがクロマイントラモード符号化向けに可能にされている。それらのモードは、5つの伝統的なイントラモードと、3つのクロスコンポーネント線形モデルモード(CCLM、LM_A、及びLM_L)とを含む。クロマモード符号化は、対応するルマブロックのイントラ予測モードに直接的に依存する。Iスライスでは、ルマコンポーネントとクロマコンポーネントとに対して別々のブロック分割構造が可能であるため、1つのクロマブロックが複数のルマブロックに対応することがある。従って、クロマDMモードでは、現在クロマブロックの中心位置をカバーする対応するルマブロックのイントラ予測モードが直接継承される。
【0034】
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インデックスのみを信号伝達する。
【0035】
2.4イントラサブパーティション(ISP)
イントラサブパーティション(Intra Sub-Partitions;ISP)ツールは、ルマイントラ予測ブロックを、ブロックサイズに応じて垂直方向又は水平方向に2つ又は4つのサブパーティションに分割する。例えば、ISPでの最小ブロックサイズは4×8(又は8×4)である。ブロックサイズが4×8(又は8×4)よりも大きい場合、対応するブロックが4つのサブパーティションによって分割される。
図5は、2つの可能性の例を示している。全てのサブパーティションが、少なくとも16サンプルを持つという条件を満たす。
【0036】
各サブパーティションについて、予測信号に残差信号を加えることによって再構成サンプルが得られる。ここで、残差信号は、例えばエントロピー復号、逆量子化及び逆変換などのプロセスによって生成される。従って、各サブパーティションの再構成サンプル値は、次のサブパーティションの予測を生成するのに利用可能であり、各サブパーティションが繰り返し処理される。さらに、処理される最初のサブパーティションは、CUの左上サンプルを含むものであり、その後、下向き(水平スプリット)又は右向き(垂直スプリット)に続く。結果として、サブパーティション予測信号を生成するのに使用される参照サンプルは、ラインの左側及び上方にのみ位置する。全てのサブパーティションが同じイントラモードを共有する。
【0037】
2.5 アフィン線形加重イントラ予測(ALWIP又は行列ベースイントラ予測)
アフィン線形加重イントラ予測(ALWIP、行列ベースイントラ予測(MIP)としても知られる)がJVET-N0217で提案されている。
【0038】
JVET-N0217において2つのテストが行われている。テスト1において、ALWIPは、8Kバイトのメモリ制約及びサンプル当たり最大4回の乗算で設計される。テスト2はテスト1と同様であるが、メモリ要求及びモデルアーキテクチャの観点で設計を更に単純化する:
・全てのブロック形状に対して単一セットの行列及びオフセットベクトル。
・全てのブロック形状に対してモード数を19まで削減。
・メモリ要求を5760個の10ビット値すなわち7.20キロバイトまで削減。
・予測サンプルの線形補間が方向あたり単一ステップで実行され、第1のテストにおいてのような反復補間を置き換える。
【0039】
2.5.1 JVET-N0217のテスト1
幅W及び高さHの矩形ブロックのサンプルを予測するために、アフィン線形加重イントラ予測(ALWIP)は、ブロックの左の1ラインのH個の再構成隣接境界サンプルと、ブロックの上の1ラインのW個の再構成隣接境界サンプルとを入力としてとる。これらの再構成サンプルが利用可能でない場合には、それらは、従来からのイントラ予測において行われている通りに生成される。予測信号の生成は、次の3つのステップに基づく。
【0040】
境界サンプルから、W=H=4のケースで4つのサンプル、それ以外の全てのケースで8つのサンプルが、平均することによって抽出される。
【0041】
それら平均したサンプルを入力として、行列ベクトル乗算及びそれに続くオフセットの加算が実行される。その結果は、元のブロック内のサンプルのサブサンプリングされたセットについての減少された予測信号である。
【0042】
サブサンプリングされたセットについての予測信号から、残りの位置の予測信号が、各方向に単一ステップの線形補間である線形補間によって生成される。
【0043】
予測信号を生成するのに必要とされる行列及びオフセットベクトルは、行列の3セットS0、S1、S2からとられる。セットS0は、各々が16行及び4列を持つ18個の行列A0
i,i∈{0,…,17}及び各々がサイズ16の18個のオフセットベクトルb0
i,i∈{0,…,17}からなる。このセットの行列及びオフセットベクトルは、サイズ4×4のブロックに使用される。セットS1は、各々が16行及び8列を持つ10個の行列A1
i,i∈{0,…,9}及び各々がサイズ16の10個のオフセットベクトルb1
i,i∈{0,…,9}からなる。このセットの行列及びオフセットベクトルは、サイズ4×8、8×4、及び8×8のブロックに使用される。最後に、セットS2は、各々が64行及び8列を持つ6個の行列A2
i,i∈{0,…,5}及び各々がサイズ64の6個のオフセットベクトルb2
i,i∈{0,…,5}からなる。このセットの行列及びオフセットベクトル、又はこれらの行列及びオフセットベクトルの一部は、他の全てのブロック形状に使用される。
【0044】
行列ベクトル積の計算に必要な乗算の総数は常に4×W×H以下である。換言すれば、ALWIPモードで必要とされる乗算はサンプル当たり多くて4回である。
【0045】
2.5.2 境界の平均化
第1のステップにて、入力境界bdrytop及びbdryleftが、より小さい境界bdryred
top及びbdryred
leftへと減少(reduced)される。ここで、bdryred
top及びbdryred
leftは、4×4ブロックのケースではどちらも2サンプルからなり、それ以外の全てのケースでどちらも4サンプルからなる。
【0046】
4×4ブロックのケースでは、0≦i<2で、
【数2】
と定義され、bdry
red
leftも同様に定義される。
【0047】
それ以外のケースで、ブロック幅WがW=4・2kとして与えられる場合、0≦i<4で、
【数3】
と定義され、bdry
red
leftも同様に定義される。
【0048】
これら2つの減少された境界bdry
red
top及びbdry
red
leftが減少境界ベクトルbdry
redへと連結され、これは故に、形状4×4のブロックではサイズ4、それ以外の全ての形状のブロックではサイズ8のものである。モード(mode)がALWIPモードを指す場合、この連結は次のように定義される:
【数4】
【0049】
最後に、サブサンプリングされた予測信号の補間のために、大きいブロックについて、平均した境界の第2のバージョンが必要である。すなわち、min(W,H)>8且つW≧Hである場合、W=8×2lと記述し、0≦i<8で、
【数5】
と定義する。
【0050】
min(W,H)>8且つH>Wである場合、同様にbdryredII
leftを定義する。
【0051】
2.5.3 行列ベクトル乗算による減少予測信号の生成
減少された入力ベクトルbdry
redから、減少された予測信号pred
redを生成する。後者の信号は、幅W
red及び高さH
redのダウンサンプリングされたブロックについての信号である。ここで、W
red及びH
redは:
【数6】
として定義される。
【0052】
減少予測信号predredは、行列ベクトル積を計算し、補正値を加算することによって計算される:
predred=A・bdryred+b
【0053】
ここで、Aは、Wred・Hred行を持ち、且つW=H=4の場合に4列、それ以外の全てのケースで8列を持つ行列であり、bは、サイズWred・Hredのベクトルである。
【0054】
行列A及びベクトルbは、以下のように、セットS
0、S
1、S
2のうちの1つからとられる。インデックスidx=idx(W,H)を、次のように定義する:
【数7】
【0055】
【0056】
そして、idx≦1又はidx=2且つmin(W,H)>4である場合、A=Aidx
m及びb=bidx
mとする。idx=2且つmin(W,H)=4である場合、W=4のケースではダウンサンプリングされたブロック内の奇数のx座標に対応するAidx
mの全ての行又はH=4のケースではダウンサンプリングされたブロック内の奇数のy座標に対応するAidx
mの全ての行を除外することによって生じる行列をAとする。
【0057】
最後に、以下の場合に、減少された予測信号がその転置行列で置き換えられる:
・W=H=4、且つモード≧18
・max(W,H)=8、且つモード≧10
・max(W,H)>8、且つモード≧6。
【0058】
predredの計算に必要な乗算の数は、W=H=4のケースで4である。何故なら、この場合、Aは4列及び16行を有するからである。それ以外の全てのケースでは、Aは8列及びWred・Hred行を有し、直ちに確認されることには、これらのケースでは8・Wred・Hred≦4W・H回の乗算が必要であり、すなわち、これらのケースでも、predredを計算するのに必要とされる乗算の数はサンプル当たり多くて4である。
【0059】
2.5.4 ALWIPプロセス全体の例示
平均化、行列ベクトル乗算、及び線形補間のプロセス全体を、
図6-
図9にて異なる形状について例示する。なお、残りの形状は、図示のケースのうちの1つにおいてのように扱われる。
【0060】
1. 4×4ブロックを所与として、ALWIPは境界の各軸に沿って2つの平均をとる。得られた4つの入力サンプルが行列ベクトル乗算に入る。セットS0から行列がとられる。オフセットを加えた後、これは16個の最終予測サンプルを生み出す。この予測信号を生成するのに線形補間は必要でない。従って、サンプル当たり合計で(4・16)/(4・4)=4回の乗算が行われる。
【0061】
2. 8×8ブロックを所与として、ALWIPは境界の各軸に沿って4つの平均をとる。得られた8つの入力サンプルが行列ベクトル乗算に入る。セットS1から行列がとられる。これは、予測ブロックの奇数位置に16個のサンプルを生み出す。従って、サンプル当たり合計で(8・16)/(8・8)=2回の乗算が行われる。オフセットを加えた後、これらのサンプルは、減少された上境界を用いることによって垂直方向に補間される。元の左境界を用いることによって水平補間が続く。
【0062】
3. 8×4ブロックを所与として、ALWIPは境界の水平軸に沿った4つの平均と、左境界上の4つの元の境界値とをとる。得られた8つの入力サンプルが行列ベクトル乗算に入る。セットS1から行列がとられる。これは、予測ブロックの奇数水平位置且つ各垂直位置に16個のサンプルを生み出す。従って、サンプル当たり合計で(8・16)/(8・4)=4回の乗算が行われる。オフセットを加えた後、これらのサンプルは、元の左境界を用いることによって水平方向に補間される。
【0063】
4. 16×16ブロックを所与として、ALWIPは境界の各軸に沿って4つの平均をとる。得られた8つの入力サンプルが行列ベクトル乗算に入る。セットS2から行列がとられる。これは、予測ブロックの奇数位置に64個のサンプルを生み出す。従って、サンプル当たり合計で(8・64)/(16・16)=2回の乗算が行われる。オフセットを加えた後、これらのサンプルは、上境界の8つの平均を用いることによって垂直方向に補間される。元の左境界を用いることによって水平補間が続く。補間プロセスは、このケースにおいて、如何なる乗算も追加しない。従って、合計として、サンプル当たり2回の乗算がALWIP予測を計算するのに必要とされる。
【0064】
より大きい形状の場合、手順は基本的に同じであり、サンプル当たりの乗算数が4未満であることを確認するのは容易である。
【0065】
W>8であるW×8ブロックの場合、サンプルが奇数水平位置且つ各垂直位置に与えられるので、水平補間のみが必要である。
【0066】
最後に、W>8であるW×4ブロックの場合、ダウンサンプリングされたブロック内の横軸に沿った奇数エントリに対応する全ての行を除外することによって生じる行列をA_kとする。従って、出力サイズは32であり、この場合も水平補間のみが実行されるままである。
【0067】
転置されたケースも、これらに従って扱われる。
【0068】
2.5.5 単一ステップ線形補間
max(W,H)≧8であるW×Hブロックでは、予測信号は、Wred×Hredについての減少された予測信号predredから線形補間による生じる。ブロック形状に応じて、垂直方向、水平方向、又は両方向に線形補間が行われる。線形補間が両方向に適用される場合、それは、W<Hの場合には先ず水平方向に適用され、それ以外の場合には先ず垂直方向に適用される。
【0069】
一般性を損なうことなく、max(W,H)≧8且つW≧HであるW×Hブロックを考える。すると、一次元線形補間は以下のように行われる。一般性を損なうことなく、垂直方向での線形補間を記述すれば十分である。最初に、減少予測信号が、境界信号によって上に拡張される。垂直アップサンプリング係数U
ver=H/H
redを定義し、U
ver=2
uver>1と記述する。そして、拡張された減少予測信号を、
【数9】
により定義する。
【0070】
そして、この拡張された減少予測信号から、垂直方向に線形補間された予測信号が、0≦x<W
red、0≦y<H
red、及び0≦k<U
verについて、
【数10】
によって生成される。
【0071】
2.5.6 提案するイントラ予測モードの信号伝達
イントラモードにおける各符号化ユニット(CU)について、対応する予測ユニット(PU)にALWIPモードが適用されるか否かを指し示すフラグが、ビットストリーム内で送られる。後者のインデックスの信号伝達は、JVET-M0043においてと同じようにMRLと調和される。ALWIPモードが適用される場合、ALWIPモードのインデックスpredmodeが、3つのMPMSを有するMPMリストを用いて信号伝達される。
【0072】
ここで、MPMの導出は、以下のように、上及び左PUのイントラモードを用いて行われる。従来からのイントラ予測モードpredmodeAngularの各々にALWIPモードを割り当てる3つの固定テーブルmap_angular_to_alwipidx,idx∈{0,1,2}が存在する:
predmodeALWIP=map_angular_to_alwipidx[predmodeAngular]
【0073】
幅W及び高さHの各PUに対して、セクション2.5.3においてのように3つのセットのうちのどれからALWIPパラメータが取られるかを指し示すインデックス:
idx(PU)=idx(W,H)∈{0,1,2}
を定義する。
【0074】
上予測ユニットPU
aboveが利用可能であり、現在PUと同じCTUに属し、且つイントラモードにある場合であって、idx(PU)=idx(PU
above)であり且つALWIPがALWIPモードpredmode
ALWIP
aboveでPU
aboveに適用される場合、
【数11】
とする。
【0075】
上PUが利用可能であり、現在PUと同じCTUに属し、且つイントラモードにある場合であって、従来からのイントラ予測モードpredmode
Angular
aboveが上PUに適用される場合、
【数12】
とする。
【0076】
その他全てのケースでは、
【数13】
とし、これは、このモードが利用可能でないことを意味する。同じようにして、しかし、左PUが現在PUと同じCTUに属する必要があるという制約なしに、モードmode
ALWIP
leftを導出する。
【0077】
最後に、各々が3つの異なるALWIPモードを含む3つの固定デフォルトリストlistidx、idx∈{0,1,2}が提供される。デフォルトリストlistidx(PU)並びにモードmodeALWIP
above及びmodeALWIP
leftから、-1をデフォルト値に置き換え且つ繰り返しを排除することによって、3つの異なるMPMを構築する。
【0078】
ALWIP MPMリスト構築に使用される左隣接ブロック及び上隣接ブロックは、
図10に示すA1及びB1である。
【0079】
2.5.7 従来からのルマ及びクロマイントラ予測モードのための適応MPMリスト導出
提案されるALWIPモードは、従来からのイントラ予測モードのMPMベースの符号化と、以下のように調和される。従来からのイントラ予測モードに対するルマ及びクロマMPMリスト導出プロセスは、所与のPUについてのALWIPモードpredmodeALWIPを従来からのイントラ予測モードのうちの1つにマッピングする固定テーブルmap_alwip_to_angularidx,idx∈{0,1,2}を使用する:
predmodeAngular=map_alwip_to_angularidx(PU)[predmodeALWIP]
【0080】
ルマMPMリスト導出では、ALWIPモードpredmodeALWIPを使用する隣接ルマブロックに遭遇すると常に、このブロックは、あたかも従来からのイントラ予測モードpredmodeAngularを使用しているかのように扱われる。クロマMPMリスト導出では、現在ルマブロックがLWIPモードを使用するときは常に、同じマッピングを用いてALWIPモードを従来からのイントラ予測モードに変換する。
【0081】
2.5.8 対応する変更ワーキングドラフト
一部の実施形態において、このセクションに記載されるように、開示される技術の実施形態に基づいて、intra_lwip_flag、intra_lwip_mpm_flag、intra_lwip_mpm_idx及びintra_lwip_mpm_remainderに関する部分がワーキングドラフトに追加されている。
【0082】
一部の実施形態において、このセクションに記載されるように、開示される技術の実施形態に基づくワーキングドラフトへの追加及び変更を表すために、<begin>タグ及び<end>タグが使用される。
構文テーブル
符号化ユニット構文
【表1】
セマンティック
<begin> 1に等しいintra_lwip_flag[x0][y0]は、ルマサンプルについてのイントラ予測タイプがアフィン線形加重イントラ予測であることを規定する。0に等しいintra_lwip_flag[x0][y0]は、ルマサンプルについてのイントラ予測タイプがアフィン線形加重イントラ予測ではないことを規定する。
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に等しい場合、再構成ピクチャが次のように変更される:
SL[xCb+i][yCb+j]=
pcm_sample_luma[(cbHeight*j)+i]<<(BitDepthY-PcmBitDepthY), (8-6)
with i=0..cbWidth-1,j=0..cbHeight-1
- それ以外の場合、以下が適用される:
1. ルマイントラ予測モードは次のように導出される:
- intra_lwip_flag[xCb][yCb]が1に等しい場合、8.4.X節に規定されるアフィン線形加重イントラ予測モードの導出プロセスが、ルマ位置(xCb,yCb)、ルマサンプルにおける現在符号化ブロックの幅cbWidth、及びルマサンプルにおける現在符号化ブロックの高さcbHeightを入力として呼び出される;
- そうでない場合、8.4.2節に規定されるルマイントラ予測モードの導出プロセスが、ルマ位置(xCb,yCb)、ルマサンプルにおける現在符号化ブロックの幅cbWidth、及びルマサンプルにおける現在符号化ブロックの高さcbHeightを入力として呼び出される;
2. 8.4.4.1節に規定されるイントラブロックの一般的な復号プロセスが、ルマ位置(xCb,yCb)、ツリータイプtreeType、cbWidthに等しく設定された変数nTbW、cbHeightに等しく設定された変数nTbH、IntraPredModeY[xCb][yCb]に等しく設定された変数predModeIntra、及び0に等しく設定された変数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. A又はBのいずれかで置き換えられるXについて、変数candLwipModeXが次のように導出される:
- 6.4.X節に規定されるブロックの利用可能性導出プロセス[Ed.(BB):近隣ブロック利用可能性チェックプロセスtbd]が、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)、及び(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として呼び出され、その出力がavailableXに割り当てられる;
- 候補アフィン線形加重イントラ予測モードcandLwipModeXが次のように導出される:
- 次の条件のうちの1つ以上がtrueである場合、candLwipModeXは-1に等しく設定される;
- 変数availableXがFALSEに等しい;
- CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、且つmh_intra_flag[xNbX][yNbX]が1に等しくない;
- pcm_flag[xNbX][yNbX]が1に等しい;
- XがBに等しく、且つyCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい;
- それ以外の場合、以下が適用される:
- 8.4.X.1節に規定されるブロックのサイズタイプ導出プロセスが、ルマサンプルにおける現在符号化ブロックの幅cbWidth、及びルマサンプルにおける現在符号化ブロックの高さcbHeightを入力として呼び出され、その出力が変数sizeIdに割り当てられる;
- intra_lwip_flag[xNbX][yNbX]が1に等しい場合、8.4.X.1節に規定されるブロックのサイズタイプ導出プロセスが、ルマサンプルにおける隣接符号化ブロックの幅nbWidthX、及びルマサンプルにおける隣接符号化ブロックの高さnbHeightXを入力として呼び出され、その出力が変数sizeIdXに割り当てられる;
- sizeIdがsizeIdXに等しい場合、candLwipModeXはIntraPredModeY[xNbX][yNbX]に等しく設定される;
- そうでない場合、candLwipModeXは-1に等しく設定される;
- それ以外の場合、candLwipModeXは、表8-X1に規定されるようにIntraPredModeY[xNbX][yNbX]及びsizeIdを用いて導出される;
3. x=0..2でのcandLwipModeList[x]が、表8-X2に規定されるようにlwipMpmCand[sizeId]を用いて、次のように導出される:
- candLwipModeA及びcandLwipModeBが両方とも-1に等しい場合、以下が適用される:
candLwipModeList[0]=lwipMpmCand[sizeId][0] (8-X1)
candLwipModeList[1]=lwipMpmCand[sizeId][1] (8-X2)
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X3)
- そうでない場合、以下が適用される:
- candLwipModeAがcandLwipModeBに等しい場合、又はcandLwipModeA若しくはcandLwipModeBのいずれかが-1に等しい場合、以下が適用される:
candLwipModeList[0]=(candLwipModeA!=-1)?
candLwipModeA:candLwipModeB (8-X4)
- candLwipModeList[0]がlwipMpmCand[sizeId][0]に等しい場合、以下が適用される:
candLwipModeList[1]=lwipMpmCand[sizeId][1] (8-X5)
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X6)
- それ以外の場合、以下が適用される:
candLwipModeList[1]=lwipMpmCand[sizeId][0] (8-X7)
candLwipModeList[2]=(candLwipModeList[0]!=lwipMpmCand[sizeId][1])?
lwipMpmCand[sizeId][1]:lwipMpmCand[sizeId][2] (8-X8)
- それ以外の場合、以下が適用される:
candLwipModeList[0]=candLwipModeA (8-X9)
candLwipModeList[1]=candLwipModeB (8-X10)
- candLwipModeA及びcandLwipModeBが両方ともlwipMpmCand[sizeId][0]に等しくない場合、以下が適用される:
candLwipModeList[2]=lwipMpmCand[sizeId][0] (8-X11)
- そうでない場合、以下が適用される:
- candLwipModeA及びcandLwipModeBが両方ともlwipMpmCand[sizeId][1]に等しくない場合、以下が適用される:
candLwipModeList[2]=lwipMpmCand[sizeId][1] (8-X12)
- そうでない場合、以下が適用される:
candLwipModeList[2]=lwipMpmCand[sizeId][2] (8-X13)
4. 以下の手順を適用することにより、IntraPredModeY[xCb][yCb]が導出される:
- intra_lwip_mpm_flag[xCb][yCb]が1に等しい場合、IntraPredModeY[xCb][yCb]はcandLwipModeList[intra_lwip_mpm_idx[xCb][yCb]に等しく設定される;
- そうでない場合、IntraPredModeY[xCb][yCb]は、以下の順序付けられたステップを適用することによって導出される:
1. i=0..1で、及び各iについてj=(i+1)..2で、candLwipModeList[i]がcandLwipModeList[j]より大きい場合、双方の値が次のように交換される:
(candLwipModeList[i],candLwipModeList[j])=
Swap(candLwipModeList[i],candLwipModeList[j]) (8-X14)
2. IntraPredModeY[xCb][yCb]が、以下の順序付けられたステップによって導出される:
i. IntraPredModeY[xCb][yCb]が、intra_lwip_mpm_remainder[xCb][yCb]に等しく設定される;
ii. 両端を含めて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に等しく設定される。
【表2】
【表3】
<end>
8.4.2 ルマイントラ予測モードの導出プロセス
このプロセスへの入力は以下である:
- 現在ルマ符号化ブロックの左上サンプルを現在ピクチャの左上ルマサンプルに対して規定するルマ位置(xCb,yCb)、
- ルマサンプルにおける現在符号化ブロックの幅を規定する変数cbWidth、
- ルマサンプルにおける現在符号化ブロックの高さを規定する変数cbHeight。
このプロセスにて、ルマイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
表8-1は、イントラ予測モードIntraPredModeY[xCb][yCb]についての値及び関連する名称を規定している。
【表4】
IntraPredModeY[xCb][yCb]は、以下の順序付けられたステップによって導出される:
1. 隣接位置(xNbA,yNbA)及び(xNbB,yNbB)が、それぞれ、(xCb-1,yCb+cbHeight-1)及び(xCb+cbWidth-1,yCb-1)に等しく設定される;
2. A又はBのいずれかで置き換えられるXについて、変数candIntraPredModeXが次のように導出される:
- <begin>6.4.X節に規定されるブロックの利用可能性導出プロセス[Ed.(BB):近隣ブロック利用可能性チェックプロセスtbd]<end>が、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)、及び(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として呼び出され、その出力がavailableXに割り当てられる;
- 候補イントラ予測モードcandIntraPredModeXが次のように導出される:
- 次の条件のうちの1つ以上がtrueである場合、candIntraPredModeXはINTRA_PLANARに等しく設定される;
- 変数availableXがFALSEに等しい;
- CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、且つclip_flag[xNbX][yNbX]が1に等しくない;
- pcm_flag[xNbX][yNbX]が1に等しい;
- XがBに等しく、且つyCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい;
- そうでない場合、candIntraPredModeXは次のように導出される:
- intra_lwip_flag[xCb][yCb]が1に等しい場合、candIntraPredModeXは、以下の順序付けられたステップによって導出される:
i. 8.4.X.1節に規定されるブロックのサイズタイプ導出プロセスが、ルマサンプルにおける現在符号化ブロックの幅cbWidth及びルマサンプルにおける現在符号化ブロックの高さcbHeightを入力として呼び出され、その出力が変数sizeIdに割り当てられる;
ii. 表8-X3に規定されるようにIntraPredModeY[xNbX][yNbX]及びsizeIdを使用して、candIntraPredModeXが導出される;
- そうでない場合、candIntraPredModeXはIntraPredModeY[xNbX][yNbX]に等しく設定される;
2. 変数ispDefaultMode1及びispDefaultMode2が次のように定義される:
- IntraSubPartitionsSplitTypeがISP_HOR_SPLITに等しい場合、ispDefaultMode1はINTRA_ANGULAR18に等しく設定され、ispDefaultMode2はINTRA_ANGULAR5に等しく設定される;
- そうでない場合、ispDefaultMode1はINTRA_ANGULAR50に等しく設定され、ispDefaultMode2はINTRA_ANGULAR63に等しく設定される。
…
【表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を入力として呼び出され、その出力がpreSamplesである。
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に割り当てられる。
変数numModes、boundarySize、predW、predH、及びpredCが、表8-X4に規定されるようにsizeIdを使用して導出される。
【表6】
フラグisTransposedが次のように導出される:
isTransposed=(predModeIntra>(numModes/2))?1:0 (8-X15)
フラグneedUpsBdryHor及びneedUpsBdryVerが次のように導出される:
needUpsBdryHor=(nTbW>predW)?TRUE:FALSE (8X16)
needUpsBdryVer=(nTbH>predH)?TRUE:FALSE (8X17)
変数upsBdryW及びupsBdryHが次のように導出される:
upsBdryW=(nTbH>nTbW)?nTbW:predW (8-X18)
upsBdryH=(nTbH>nTbW)?predH:nTbH (8-X19)
変数lwipW及びlwipHが次のように導出される:
lwipW=(isTransposed==1)?predH:predW (8-X20)
lwipH=(isTransposed==1)?predW:predH (8-X21)
x=0..nTbW-1での参照サンプルrefT[x]及びy=0..nTbH-1での参照サンプルrefL[y]の生成のために、8.4.4.2.X2節に規定される参照サンプル導出プロセスが、サンプル位置(xTbCmp,yTbCmp)、変換ブロック幅nTbW、変換ブロック高さnTbHを入力とし、x=0..nTbW-1での上参照サンプルrefT[x]及びy=0..nTbH-1での左参照サンプルrefL[y]を出力として呼び出される。
x=0..2*boundarySize-1での境界サンプルp[x]の生成のために、以下が適用される:
- 8.4.4.2.X3節に規定される境界減少プロセスが、上参照サンプルに対して、ブロックサイズnTbW、参照サンプルrefT、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryVer、及びアップサンプリング境界サイズupsBdryWを入力とし、x=0..boundrySize-1での減少境界サンプルredT[x]及びx=0..upsBdryW-1でのアップサンプリング境界サンプルupsBdryT[x]を出力として呼び出される。
- 8.4.4.2.X3項に規定される境界減少プロセスが、左参照サンプルに対して、ブロックサイズnTbW、参照サンプルrefL、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryHor、及びアップサンプリング境界サイズupsBdryHを入力とし、x=0..boundrySize-1での減少境界サンプルredL[x]及びx=0..upsBdryH-1でのアップサンプリング境界サンプルupsBdryL[x]を出力として呼び出される。
- 減少された上及び左境界サンプルredT及びredLが、次のように境界サンプルアレイpに割り当てられる:
- isTransposedが1に等しい場合、p[x]が、x=0..boundarySize-1でredL[x]に等しく設定され、p[x+boundarySize]が、x=0..boundarySize-1でredL[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が次のように導出される:
modeId=predModeIntra-(isTransposed==1)?(numModes/2):0 (8-X22)
- x=0..2*boundarySize-1,y=0..predC*predC-1での重み行列mWeight[x][y]が、表8-XX[TBD:重み行列の加算]に規定されるようにsizeId及びmodoIdを用いて導出される;
- y=0..predC*predC-1でのバイアスベクトルvBias[y]が、表8-XX[TBD:バイアスベクトルの加算]に規定されるようにsizeId及びmodoIdを用いて導出される;
- 変数sWが、表8-X5に規定されるようにsizeId及びmodoIdを用いて導出される;
- x=0..lwipW-1,y=0..lwipH-1でのアフィン線形加重サンプルpredLwip[x][y]が、次のように導出される:
【数14】
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節に規定される予測アップサンプリングプロセスが、入力ブロック幅predW、入力ブロック高さpredH、アフィン線形加重サンプルpredLwip、変換ブロック幅nTbW、変換ブロック高さnTbH、アップサンプリング境界幅upsBdryW、アップサンプリング境界高さupsBdryH、上アップサンプリング境界サンプルupsBdryT、及び左アップサンプリング境界サンプルupsBdryLを入力として呼び出され、その出力が予測サンプルアレイpredSamplesである;
- それ以外の場合、x=0..nTbW-1,y=0..nTbH-1でのpredSamples[x][y]がpredLwip[x][y]に等しく設定される。
【表7】
8.4.4.2.X2 参照サンプル導出プロセス
このプロセスへの入力は以下である:
- 現在変換ブロックの左上ルマサンプルを現在ピクチャの左上ルマサンプルに対して規定するサンプル位置(xTbY,yTbY)、
- 変換ブロック幅を規定する変数nTbW、
- 変換ブロック高さを規定する変数nTbH。
このプロセスの出力は、x=0..nTbW-1での上参照サンプルrefT[x]及びy=0..nTbH-1での左参照サンプルrefL[y]である。
x=0..nTbW-1での隣接サンプルrefT[x]及びy=0..nTbH-1でのrefL[y]は、インループフィルタプロセスに先立つ構築サンプルであり、次のように導出される:
- 上隣接ルマ位置(xNbT,yNbT)及び左隣接ルマ位置(xNbL,yNbL)が:
(xNbT,yNbT)=(xTbY+x,yTbY-1) (8-X28)
(xNbL,yNbL)=(xTbY-1,yTbY+y) (8-X29)
によって規定される;
- 6.4.X節[Ed.(BB):隣接ブロック利用可能性チェックプロセスtbd]に規定されるブロックの利用可能性導出プロセスが、(xTbY,yTbY)に等しく設定される現在ルマ位置(xCurr,yCurr)及び上隣接ルマ位置(xNbT,yNbT)を入力として呼び出され、その出力が、x=0..nTbW-1でのavailTop[x]に割り当てられる;
- 6.4.X節[Ed.(BB):隣接ブロック利用可能性チェックプロセスtbd]に規定されるブロックの利用可能性導出プロセスが、(xTbY,yTbY)に等しく設定される現在ルマ位置(xCurr,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<<(BitDepth
Y-1)に等しく設定される;
- それ以外の場合、x=0..nTbW-1での参照サンプルrefT[x]は、以下の順序付けられたステップによって導出される:
1. 変数lastTが、FALSEに等しいx=0..nTbW-1でのシーケンスavailTop[x]の最初の要素の位置xに等しく設定される;
2. 全てのx=0..lastT-1に対して、位置(xNbT,yNbT)のサンプルがrefT[x]に割り当てられる;
3. 全てのx=lastT..nTbW-1に対して、refT[x]はrefT[lastT-1]に等しく設定される;
- y=0..nTbH-1での左参照サンプルrefL[x]が次のように導出される:
- y=0..nTbH-1での全てのavailLeft[y]がTRUEに等しい場合、その位置(xNbL,yNbL)のサンプルが、y=0..nTbH-1でのrefL[y]に割り当てられる;
- そうでなく、availLeft[0]がFALSEに等しい場合、y=0..nTbH-1での全てのrefL[y]が、1<<(BitDepth
Y-1)に等しく設定される;
- それ以外の場合、y=0..nTbH-1での参照サンプルrefL[y]は、以下の順序付けられたステップによって導出される:
1. 変数lastLが、FALSEに等しいy=0..nTbH-1でのシーケンスavailLeft[y]の最初の要素の位置yに等しく設定される;
2. 全てのy=0..lastL-1に対して、位置(xNbL,yNbL)のサンプルがrefL[y]に割り当てられる;
3. 全てのy=lastL..nTbH-1に対して、refL[y]はrefL[lastL-1]に等しく設定される。
境界減少プロセスの仕様
このプロセスへの入力は以下である:
- 変換ブロックサイズを規定する変数nTbX、
- x=0..nTbX-1での参照サンプルrefX[x]、
- ダウンサンプリングした境界サイズを規定する変数boundarySize、
- アップサンプリングに中間境界サンプルが必要であるかを規定するフラグneedUpsBdryX、
- アップサンプリングに関する境界サイズを規定する変数upsBdrySize。
このプロセスの出力は、x=0..boundarySize-1での減少境界サンプルredX[x]及びx=0..upsBdrySize-1でのアップサンプリング境界サンプルupsBdryX[x]である。
x=0..upsBdrySize-1でのアップサンプリング境界サンプルupsBdryX[x]は、次のように導出される:
- needUpsBdryXがTRUEに等しく、且つupsBdrySizeがnTbXより小さい場合、以下が適用される:
【数15】
- そうでない場合(upsBdrySizeがnTbXに等しい)、upsBdryX[x]はrefX[x]に等しく設定される。
x=0..boundarySize-1での減少境界サンプルredX[x]は次のように導出される:
- boundarySizeがupsBdrySizeより小さい場合、以下が適用される:
【数16】
- そうでない場合(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..upsByW-1での上アップサンプリング境界サンプルupsBdryT[x]、
- x=0..upsBdryH-1での左アップサンプリング境界サンプルupsBdryL[x]。
このプロセスの出力は、x=0..nTbW-1,y=0..nTbH-1での予測サンプルpredSamples[x][y]である。
x=0..predW-1,y=0..predH-1でのpredLwip[x][y]から、疎な予測サンプルpredSamples[m][n]が、次のように導出される:
upHor=nTbW/predW (8-X34)
upVer=nTbH/predH (8-X35)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predLwip[x][y] (8-X36)
次のように、x=0..upsBdryW-1での上境界サンプルupsBdryT[x]がpredSamples[m][-1]に割り当てられる:
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-X37)
y=0..upsBdryH-1での左境界サンプルupsBdryL[y]が、次のように、predSamples[-1][n]に割り当てられる:
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-X38)
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として、次のように適用される:
predSamples[xHor+dX][yHor]=((upHor-dX)*predSamples[xHor][yHor]+
dX*predSamples[xHor+upHor][yHor])/upHor (8-X39)
2. m=0..nTbW-1,n=0..predH-1での全ての疎な位置(xVer,yVer)=(m,n*upVer-1)に対する垂直アップサンプリングが、dY=1..upVer-1として、次のように適用される:
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+
dY*predSamples[xVer][yVer+upVer])/upVer (8-X40)
- そうでない場合、以下の順序付けられたステップが適用され:
1. upVerが1より大きい場合、m=1..predW,n=0..predH-1での全ての疎な位置(xVer,yVer)=(m*upHor-1,n*upVer-1)に対する垂直アップサンプリングが、dY=1..upVer-1として、(8-X40)に規定されるように適用される;
2. m=0..predW-1,n=0..nTbH-1での全ての疎な位置(xHor,yHor)=(m*upHor-1,n)に対する水平アップサンプリングが、dX=1..upHor-1として、(8-X39)に規定されるように適用される。
<end>
【表8】
【表9】
【表10】
<end>
【0083】
ALWIPの概要
幅W及び高さHの矩形ブロックのサンプルを予測するために、アフィン線形加重イントラ予測(ALWIP)は、ブロックの左の1ラインのH個の再構成隣接境界サンプルと、ブロックの上の1ラインのW個の再構成隣接境界サンプルとを入力としてとる。これらの再構成サンプルが利用可能でない場合には、それらは、従来からのイントラ予測において行われている通りに生成される。ALWIPはルマイントラブロックにのみ適用される。クロマイントラブロックについては、従来からのイントラ符号化モードが適用される。
【0084】
予測信号の生成は、次の3つのステップに基づく。
【0085】
1. 境界サンプルから、W=H=4のケースで4つのサンプル、それ以外の全てのケースで8つのサンプルが、平均することによって抽出される。
【0086】
2. それら平均したサンプルを入力として、行列ベクトル乗算及びそれに続くオフセットの加算が実行される。その結果は、元のブロック内のサンプルのサブサンプリングされたセットについての減少された予測信号である。
【0087】
3. サブサンプリングされたセットについての予測信号から、残りの位置の予測信号が、各方向に単一ステップの線形補間である線形補間によって生成される。
【0088】
ALWIPモードが適用される場合、ALWIPモードのインデックスpredmodeが、3つのMPMSを有するMPMリストを用いて信号伝達される。ここで、MPMの導出は、以下のように、上及び左PUのイントラモードを用いて行われる。従来からのイントラ予測モードpredmodeAngularの各々にALWIPモードを割り当てる3つの固定テーブルmap_angular_to_alwipidx,idx∈{0,1,2}が存在する:
predmodeALWIP=map_angular_to_alwipidx[predmodeAngular]
【0089】
幅W及び高さHの各PUに対して、3つのセットのうちのどれからALWIPパラメータが取られるかを指し示すインデックス:
idx(PU)=idx(W,H)∈{0,1,2}
を定義する。
【0090】
上予測ユニットPU
aboveが利用可能であり、現在PUと同じCTUに属し、且つイントラモードにある場合であって、idx(PU)=idx(PU
above)であり且つALWIPがALWIPモードpredmode
ALWIP
aboveでPU
aboveに適用される場合、
【数17】
とする。
【0091】
上PUが利用可能であり、現在PUと同じCTUに属し、且つイントラモードにある場合であって、従来からのイントラ予測モードpredmode
Angular
aboveが上PUに適用される場合、
【数18】
とする。
【0092】
その他全てのケースでは、
【数19】
とし、これは、このモードが利用可能でないことを意味する。同じようにして、しかし、左PUが現在PUと同じCTUに属する必要があるという制約なしに、モードmode
ALWIP
leftを導出する。
【0093】
最後に、各々が3つの異なるALWIPモードを含む3つの固定デフォルトリストlistidx、idx∈{0,1,2}が提供される。デフォルトリストlistidx(PU)並びにモードmodeALWIP
above及びmodeALWIP
leftから、-1をデフォルト値に置き換え且つ繰り返しを排除することによって、3つの異なるMPMを構築する。
【0094】
ルマMPMリスト導出では、ALWIPモードpredmode
ALWIPを使用する隣接ルマブロックに遭遇すると常に、このブロックは、あたかも従来からのイントラ予測モードpredmode
Angularを使用しているかのように扱われる。
【数20】
【0095】
3. VVCにおける変換
3.1 MTS(Multiple Transform Selection)
HEVCで採用されてきたDCT-IIに加えて、マルチ変換選択(MTS)スキームが、インター及びイントラのどちらの符号化ブロックを残差符号化することにも使用される。これは、DCT8/DST7から選択される複数の変換を使用する。新たに導入された変換行列はDST-VII及びDCT-VIIIである。
【0096】
3.2 JVET-N0193で提案されたRST(Reduced Secondary Transform)
RSTは、4×4及び8×8ブロックに対して、それぞれ16×16及び16×64非分離変換を適用する。一次の順変換及び逆変換は依然として2つの1D水平/垂直変換パスと同じ方法で実行される。二次の順変換及び逆変換は、一次変換のそれとは別のプロセスステップである。エンコーダでは、先ず、一次順変換が実行され、二次順変換及び量子化と、CABACビット符号化とが続く。デコーダでは、先ず、CABACビット復号及び逆量子の後に二次逆変換が実行され、次に一次逆変換が続く。RSTは、イントラスライス及びインタースライスの両方でイントラ符号化TUにのみ適用される。
【0097】
3.3 JVET-N0185におけるイントラモード符号化向けの統一MPMリスト
複数参照ライン(MRL)及びイントラサブパーティション(ISP)符号化ツールが適用されるか否かに関係なく、イントラブロック向けに統一(ユニファイド)6-MPMリストが提案されている。このMPMリストは、VTM4.0においてのように、左及び上の隣接ブロックのイントラモードに基づいて構築される。左のモードをLeftと表記し、上ブロックのモードをAboveと表記すると、統一MPMリストは以下の通りである:
・隣接ブロックが利用可能でないとき、そのイントラモードはデフォルトでPlanarに設定される。
・モードLeft及びAboveの両方が非角度モードである場合:
MPMリスト→{Planar,DC,V,H,V-4,V+4}
・モードLeft及びAboveの一方が角度モードであり、他方が非角度モードである場合:
a. モードMaxをLeftとAboveとの大きい方のモードとして設定する
b. MPMリスト→{Planar,Max,DC,Max-1,Max+1,Max-2}
・Left及びAboveがどちらも角度モードであり且つ相異なる場合:
a. モードMaxをLeftとAboveの大きい方のモードとして設定する;
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がどちらも角度モードであり且つそれらが同じである場合:
a. MPMリスト→{Planar,Left,Left-1,Left+1,DC,Left-2}
【0098】
加えて、MPMインデックスコードワードの最初のビンは、CABACコンテキスト符号化される。現在イントラブロックがMRL有効、ISP有効、又は通常イントラブロックであるかに対応して、合計3つのコンテキストが使用される。
【0099】
統一MPMリスト構築に使用される左隣接ブロック及び上隣接ブロックは、
図10に示すA2及びB2である。
【0100】
最初に、1つのMPMフラグが符号化される。ブロックがMPMリスト内のモードの1つで符号化される場合、更にMPMインデックスが符号化される。そうでない場合には、残りのモードへのインデックス(MPMを除く)が符号化される。
【0101】
4 既存の実装における欠点の例
JVET-N0217におけるALWIPの設計は以下の問題を有する:
1)2019年3月のJVETミーティングにて、MRLモード、ISPモード、通常イントラモードに対して統一6-MPMリスト生成が採用された。しかし、アフィン線形加重予測モードは異なる3-MPMリスト構築を使用しており、そのことがMPMリスト構築を複雑にする。複雑なMPMリスト構築は、特に例えば4×4サンプルなどの小さいブロックに関して、デコーダのスループットを損ねる可能性がある;
2)ALWIPはブロックのルマコンポーネントにのみ適用される。ALWIP符号化ブロックのクロマコンポーネントについては、クロマモードインデックスが符号化されてデコーダに送信され、それが不必要な信号伝達をもたらし得る;
3)他の符号化ツールとのALWIPと相互作用を考慮すべきである;
4)次式:
【数21】
にてupsBdryXを計算するとき、Log2(uDwn)-1が-1に等しくなることが可能であり、-1での左シフトが定まらない;
5)予測サンプルをアップサンプリングするとき、丸めが適用されない;
6) デブロッキングプロセスにおいて、ALWIP符号化ブロックは通常イントラブロックとして扱われる。
【0102】
5 マトリクスベースのイントラ符号化に関する例示的方法
ここで開示される技術の実施形態は、既存の実装の欠点を解消し、それにより、より高い符号化効率及びより低い計算複雑性を有する映像符号化を提供する。映像符号化のための行列ベースイントラ予測法は、本文書に記載されるように、既存の及び将来の映像符号化標準の双方を強化することができ、様々な実装に関して説明される以下の例にて明らかになる。以下に提供される開示技術の例は、一般的概念を説明するものであり、限定するものとして解釈されることを意味するものではない。一例において、そうでないことが明示的に示されない限り、これらの例にて説明される様々な特徴は組み合わされることができる。
【0103】
以下の説明において、イントラ予測モードは角度イントラ予測モード(DC、プレーナ、CCLM、及び他の取り得るイントラ予測モードを含む)を指し、イントラモードは通常イントラモード、又はMRL、又はISP、又はALWIPを指す。
【0104】
以下の説明において、“他のイントラモード”は、例えば通常イントラモード、又はMRL、又はISPなどの、ALWIP以外の1つ又は複数のイントラモードを指すとし得る。
【0105】
以下の説明において、SatShift(x,n)は、
【数22】
として定義され、Shift(x,n)は、Shift(x,n)=(x+offset0)>>nとして定義される。
【0106】
一例において、offset0及び/又はoffset1は、(1<<n)>>1又は(1<<(n-1))に設定される。他の一例において、offset0及び/又はoffset1は0に設定される。
【0107】
他の一例において、offset0=offset1=((1<<n)>>1)-1又は((1<<(n-1)))-1である。
【0108】
Clip3(min,max,x)は、
【数23】
として定義される。
【0109】
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リストを構築し得る。その後、それらの一部又は全てを、ALWIP符号化ブロック用のMPMリストに更に追加され得るMPMへと変換し得る;
1)あるいは、また、変換したMPMをALWIP符号化ブロック用の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)あるいは、非ALWIPイントラモード用のMPMリストがALWIP用のMPMリストを導出するために更に使用する得る場合に、全ての候補イントラ予測モード(隣接ブロックからのイントラ予測モードと例えばプレーナ及びDCなどのデフォルトイントラ予測モードとを含み得る)が、非ALWIPイントラモード向けのMPMリストを構築するために使用される前に、対応するALWIPイントラ予測モードに変換されてもよい;
3)一例において、2つの変換されたALWIPイントラ予測モードが比較され得る;
a. 一例において、それらが同じである場合、それらのうちの一方のみがALWIP用のMPMリストに入れられ得る;
b. 一例において、それらが同じである場合、それらのうちの一方のみが非ALWIPイントラモード用のMPMリストに入れられ得る;
iii. 一例において、非ALWIPイントラモード用のMPMリスト内のS個のイントラ予測モードのうちのK個を、ALWIPモード向けのMPMリストとして選び得る。例えば、Kは3に等しく、Sは6に等しい;
1)一例において、非ALWIPイントラモード用のMPMリスト内の最初の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リストではMode X0であってもよい;
1)一例において、X0は、Planarから変換されたALWIPイントラ予測モードとし得る;
c. 一例において、MPMリストにおけるスタッフィングモードが異なってもよい;
i. 例えば、非ALWIPイントラモード用のMPMリストの最初の3つのスタッフィングモードは、DC、Vertical及びHorizontalであり得るが、それらはALWIP用のMPMリストではMode X1、X2、X3であってもよい;
1)一例において、X1、X2、X3は、異なるsizeIdに対して異なってもよい;
ii. 一例において、スタッフィングモードの数が異なってもよい;
d. 一例において、MPMリストにおける隣接モードが異なってもよい;
i. 例えば、隣接ブロックの通常イントラ予測モードが、非ALWIPイントラモード用のMPMリストを構築するのに使用される。そして、それらが、ALWIPモード用のMPMリストを構築するためのALWIPイントラ予測モードに変換される;
e. 一例において、MPMリストにおけるシフトされたモードが異なってもよい;
i. 例えば、Xは通常イントラ予測モードであり、K0は整数であるとして、X+K0が、非ALWIPイントラモード用のMPMリストに入れられ得る。そして、YはALWIPイントラ予測モードであり、K1は整数であるとして、Y+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. 一例において、例えばその(ALWIP)モードを通常イントラモードの1つにマッピングすることによってなどで、対応するルマブロックのイントラ予測モードに従ってDMモードが導出され得る;
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であると推定され得る;
15. ALWIPを適用することができるかがブロック幅(W)及び/又は高さ(H)に依存し得ることが提案される;
c. 例えば、W>=T1(又はW>T1)且つH>=T2(又はH>T2)の場合(例えば、T1=T2=32)、ALWIPは適用されることができないとし得る;
i. 例えば、W<=T1(又はW<T1)且つH<=T2(又はH<T2)の場合(例えば、T1=T2=32)、ALWIPは適用されることができないとし得る;
d. 例えば、W>=T1(又はW>T1)又はH>=T2(又はH>T2)の場合(例えば、T1=T2=32)、ALWIPは適用されることができないとし得る;
i. 例えば、W<=T1(又はW<T1)又はH<=T2(又はH<T2)の場合(例えば、T1=T2=32)、ALWIPは適用されることができないとし得る;
e. 例えば、W+H>=T(又はW+H>T)の場合(例えば、T=256)、ALWIPは適用されることができないとし得る;
i. 例えば、W+H<=T(又はW+H<T)の場合(例えば、T=256)、ALWIPは適用されることができないとし得る;
f. 例えば、W*H>=T(又はW*H>T)の場合(例えば、T=256)、ALWIPは適用されることができないとし得る;
i. 例えば、W*H<=T(又はW*H<T)の場合(例えば、T=256)、ALWIPは適用されることができないとし得る;
g. 例えば、ALWIPを適用することができない場合、intra_lwip_flagは信号伝達されずに、0であると推定され得る;
ALWIPにおける計算問題
16. ALWIPに関与するシフト演算は、Sは0以上でなければならないとして、Sだけ数を左シフト又は右シフトするのみとすることができることが提案される;
a. 一例において、Sが0であるとき又は0より大きいときに、右シフト演算は異なるとし得る;
i. 一例において、upsBdryX[x]は、
uDwn>1のとき、
【数24】
として計算されるべきであり、
uDwnが1に等しいとき、
【数25】
として計算されるべきである;
b. 一例において、upsBdryX[x]は、
【数26】
として計算されるべきである;
17. それた結果が、ALWIPのアップサンプリングプロセスにおいてゼロに向かう方に又はゼロから遠ざかる方に丸められるべきであることが提案される;
i. 一例において、
predSamples[xHor+dX][yHor]=((upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor]+offsetHor)/upHor (8-X39)
及び
predSamples[xVer][yVer+dY]=((upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer]+offsetVer)/upVer (8-X40)
であり、ここで、offsetHor及びoffsetVerは整数である。例えば、offsetHor=upHor/2、且つoffsetVer=upVer/2である;
他の符号化ツールとの相互作用
18. ALWIPがCIIP符号化ブロックに使用され得ることが提案される;
a. 一例において、CIIP符号化ブロックにおいて、イントラ予測信号を生成するためにALWIPイントラ予測モードが使用されるのか、それとも例えばプレーナなどの通常イントラ予測モードが使用されるのかが、明示的に信号伝達され得る;
b. 一例において、イントラ予測信号を生成するためにALWIPイントラ予測モードが使用されるのか、それとも例えばプレーナなどの通常イントラ予測モードが使用されるのかが、暗示的に推定され得る;
i. 一例において、CIIP符号化ブロックではALWIPイントラ予測モードは決して使用されないとし得る;
1)代わりに、CIIP符号化ブロックでは通常イントラ予測が決して使用されないとしてもよい;
ii. 一例において、イントラ予測信号を生成するためにALWIPイントラ予測モードが使用されるのか、それとも例えばプレーナなどの通常イントラ予測モードが使用されるのかが、隣接ブロックの情報から推定されてもよい;
19. CCLMモードにおいて隣接ルマサンプルをダウンサンプリングするために使用される手順の全体又は一部が、ALWIPモードにおいて隣接サンプルをダウンサンプリングするために使用され得ることが提案される;
a. あるいは、ALWIPモードにおいて隣接ルマサンプルをダウンサンプリングするために使用される手順の全体又は一部が、CCLMモードにおいて隣接サンプルをダウンサンプリングするために使用されてもよい;
b. ダウンサンプリング手順は、CCLMプロセスで使用されるときとALWIPプロセスで使用されるときとで異なるパラメータ/引数で呼び出され得る;
c. 一例において、CCLMプロセスにおけるダウンサンプリング方法(例えば隣接ルマ位置の選択、ダウンサンプリングフィルタなど)が、ALWIPプロセスにおいて利用され得る;
d. 隣接ルマサンプルをダウンサンプリングする手順は、少なくとも、ダウンサンプリングされる位置の選択、ダウンサンプリングフィルタ、丸め、クリッピング演算を含む;
20. ALWIPモードで符号化されるブロックは、RST又は/及び二次変換又は/及び回転変換又は/及び非分離二次変換(Non-Separable Secondary Transform;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(luma mapping with chroma scaling)としても知られる)情報に依存し得る;
a. 一例において、リシェイピングがオンであるときとオフであるときとで異なる行列又は/及びオフセットベクトルが使用され得る;
b. 一例において、異なるリシェイピングパラメータに対して異なる行列又は/及びオフセットベクトルが使用され得る;
c. 一例において、ALWIPは常に元のドメインで実行され得る;
i. 例えば、ALWIPで使用される前に、隣接サンプルが(リシェイピングが適用される場合の)元のドメインにマッピングされる;
28. ALWIPは、リシェイピングが適用されるときに無効にされ得る;
a. あるいは、ALWIPが有効にされるときにリシェイピングが無効にされ得る;
b. 一例において、ALWIPは、リシェイピングが適用されるときにHDR(高ダイナミックレンジ)コンテンツに対して無効にされてもよい;
29. ALWIPで使用される行列は、サンプルのビット深度に依存し得る;
a. あるいは、さらに、ALWIPで使用されるオフセット値は、サンプルビット深度に依存し得る;
b. あるいは、行列パラメータ及びオフセット値は、Nビットサンプルに対してMビット精度で格納されることができ(M<=N)、例えば、行列パラメータ及びオフセット値は、10ビットサンプルに対して8ビット精度で格納されることができる;
c. サンプルのビット深度は、例えばルマなどのカラーコンポーネントに関する入力アレイのビット深度とし得る;
d. サンプルビット深度は、例えばルマなどのカラーコンポーネントに関する内部アレイ/再構成サンプルのビット深度とし得る;
30. 規定されたブロックサイズに対する行列パラメータ及び/又はオフセット値は、他のブロックサイズに対する行列パラメータ及び/又はオフセット値から導出され得る;
31. 一例において、8×8ブロックの16×8行列を、4×4ブロックの16×4行列から導出することができる;
32. ALWIPによって生成された予測が、更に使用される予測信号を得るために処理されることになる中途信号又は中間信号として扱われ得ることが提案される;
a. 一例において、ALWIPによって生成された予測に位置依存イントラ予測コンビネーション(PDPC)が適用されて、更に使用される予測信号を生成し得る;
i. 一例において、PDPCは、ALWIP符号化ブロックに対して、ブロックが例えばプレーナ又はDCなどの特定の通常イントラ予測モードで符号化されるのと同じようにして行われる;
ii. 一例において、PDPCは、ALWIP符号化ブロックに対して、ALWIPイントラ予測モードから変換された通常イントラ予測モードでブロックが符号化されるのと同じようにして行われる;
iii. 一例において、PDPCは、ALWIP符号化ブロックに対して条件付きで適用される;
1)例えば、PDPCは、ALWIPイントラ予測モードから変換された通常イントラ予測モードに対してPDPCが適用される場合にのみ、ALWIP符号化ブロックに対して適用される;
b. 一例において、ALWIPによって生成された境界サンプル予測が隣接サンプルとともにフィルタリングされて、更に使用される予測信号を生成し得る;
i. 一例において、境界サンプルに対するフィルタリングは、ALWIP符号化ブロックに対して、ブロックが例えばプレーナ又はDCなどの特定の通常イントラ予測モードで符号化されるのと同じようにして行われる;
ii. 一例において、境界サンプルに対するフィルタリングは、ALWIP符号化ブロックに対して、ALWIPイントラ予測モードから変換された通常イントラ予測モードでブロックが符号化されるのと同じようにして行われる;
iii. 一例において、境界サンプルに対するフィルタリングは、ALWIP符号化ブロックに対して条件付きで適用される;
1)例えば、境界サンプルに対するフィルタリングは、ALWIPイントラ予測モードから変換された通常イントラ予測モードに対して境界サンプルに対するフィルタリングが適用される場合にのみ、ALWIP符号化ブロックに対して適用される;
33. バイリニア補間フィルタ以外の補間フィルタがALWIPのアップサンプリングプロセスで使用され得ることが提案される;
a. 一例において、4タップ補間フィルタがALWIPのアップサンプリングプロセスで使用され得る;
i. 例えば、クロマコンポーネントの動き補償を行うために使用されるVVCにおける4タップ補間フィルタが、ALWIPのアップサンプリングプロセスで使用され得る;
ii. 例えば、角度イントラ予測を行うために使用されるVVCにおける4タップ補間フィルタが、ALWIPのアップサンプリングプロセスで使用され得る;
iii. 例えば、ルマコンポーネントの動き補償を行うために使用されるVVCにおける8タップ補間フィルタが、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フラグのコンテキストを導出するために使用される。一例を表2に示す。あるいは、さらに、コンテキストインデックスoffset ctxInc=(condL&&availableL)+(condA&&availableA)+ctxSetIdx*3である;
【表11】
ii. 一例において、隣接ブロックのうちの1つのALWIP情報(例えばintra_lwip_flag)が、算術符号化にてALWIPフラグのコンテキストを導出するのに使用され、隣接ブロックは左隣接ブロックとし得る。一例を表3に示す。あるいは、さらに、コンテキストインデックスoffset ctxInc=(condL&&availableL)+ctxSetIdx*3である。
【表12】
iii. 一例において、隣接ブロックのうちの1つのALWIPフラグ情報(例えばintra_lwip_flag)の1つが、算術符号化にてALWIPフラグのコンテキストを導出するのに使用され、隣接ブロックは上隣接ブロックとし得る。一例を表4に示す。あるいは、さらに、コンテキストインデックスoffset ctxInc=(condA&&availableA)+ctxSetIdx*3である。
【表13】
c. 一例において、算術符号化にてALWIPフラグを符号化するために、1つの固定コンテキストが使用される;
d. 一例において、ALWIPフラグは、算術符号化にてバイパス符号化される;
e. あるいは、算術符号化にてALWIPフラグを符号化するために、K個のコンテキストが使用され得る。使用されるコンテキストは、ブロックの寸法(例えば、Wと表記される幅及びHと表記される高さ)に依存し得る;
i. 一例において、Kは2に等しい。W>N*H又はH>N*W(例えば、N=2)である場合、最初のコンテキストが使用され、そうでない場合、2番目のコンテキストが使用される;
38. 算術符号化にてALWIPフラグ(例えば、intra_lwip_flag)を符号化するのにN(N>=0)個のコンテキストが使用され得ることが提案される;
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. 一例において、隣接ブロックは、{右上,上,左上,左,左下}のうちのいずれか1つとし得る。隣接ブロックの一例が
図10に記載されている;
ii. 一例において、隣接ブロックは、{右上,上,左上,左,左下}ブロックのうちのいずれか1つとし得る。隣接ブロックの一例が
図16に記載されている;
c. 一例において、算術符号化にてALWIPフラグを符号化するために1つの固定コンテキストが使用され得る;
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である。
5. 実施形態
新たに追加される部分を太字体でハイライトし、削除される部分を下線でハイライトする。
5.1 一例
ALWIPフラグを符号化するために3つのコンテキストが使用される。
【表14】
5.2 一例
ALWIPフラグを符号化するために1つの固定コンテキストが使用される。
【表15】
5.3 一例
境界減少プロセスを1ステップで実行する。
以下の実施形態は、採用されたJVET-N0220-提案-テスト-CE3-4.1_v2に基づく。
8.4.4.2.X1 アフィン線形加重イントラサンプル予測
8.4.4.2.X3 境界減少プロセスの仕様
このプロセスへの入力は以下である:
- 変換ブロックサイズを規定する変数nTbX、
- x=0..nTbX-1での参照サンプルrefX[x]、
- ダウンサンプリングした境界サイズを規定する変数boundarySize、
- アップサンプリングに中間境界サンプルが必要であるかを規定するフラグneedUpsBdryX、
- アップサンプリングに関する境界サイズを規定する変数upsBdrySize。
このプロセスの出力は、x=0..boundarySize-1での減少境界サンプルredX[x]及びx=0..upsBdrySize-1でのアップサンプリング境界サンプルupsBdryX[x]である。
x=0..upsBdrySize-1でのアップサンプリング境界サンプルupsBdryX[x]は、次のように導出される:
- needUpsBdryXがTRUEに等しく、且つupsBdrySizeがnTbXより小さい場合、以下が適用される:
【数27】
- そうでない場合(upsBdrySizeがnTbXに等しい)、upsBdryX[x]はrefX[x]に等しく設定される。
x=0..boundarySize-1での減少境界サンプルredX[x]は次のように導出される:
- boundarySizeが
upsBdrySize nTbXより小さい場合、以下が適用される:
【数28】
式8-X33内の項
upsBdryXは削除される。
- そうでない場合(boundarySizeが
upsBdrySize nTbXに等しい)、redX[x]は
upsBdryX[x] refX[x]に等しく設定される。
5.4 一例
ALWIPのアップサンプリングプロセスの異なるフィルタリング段階において異なる精度で予測サンプルを導出する。
以下の実施形態は、採用されたJVET-N0217-提案-テスト-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..upsByW-1での上アップサンプリング境界サンプルupsBdryT[x]、
- x=0..upsBdryH-1での左アップサンプリング境界サンプルupsBdryL[x]。
このプロセスの出力は、x=0..nTbW-1,y=0..nTbH-1での予測サンプルpredSamples[x][y]である。
x=0..predW-1,y=0..predH-1でのpredLwip[x][y]から、疎な予測サンプルpredSamples[m][n]が、次のように導出される:
upHor=nTbW/predW (8-X34)
upVer=nTbH/predH (8-X35)
predSamples[(x+1)*upHor-1][(y+1)*upVer-1]=predLwip[x][y] (8-X36)
次のように、x=0..upsBdryW-1での上境界サンプルupsBdryT[x]がpredSamples[m][-1]に割り当てられる:
predSamples[(x+1)*(nTbW/upsBdryW)-1][-1]=upsBdryT[x] (8-X37)
y=0..upsBdryH-1での左境界サンプルupsBdryL[y]が、次のように、predSamples[-1][n]に割り当てられる:
predSamples[-1][(y+1)*(nTbH/upsBdryH)-1]=upsBdryL[y] (8-X38)
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として、次のように適用される:
【数29】
2. m=0..nTbW-1,n=0..predH-1での全ての疎な位置(xVer,yVer)=(m,n*upVer-1)に対する垂直アップサンプリングが、dY=1..upVer
-1として、次のように適用される:
【数30】
- そうでない場合、以下の順序付けられたステップが適用され:
【数31】
5.5 項目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は2タップフィルタの係数であり、F1+F2=2
Nである。
次いで、第2段階における出力結果が、
S’(Sx+Kx-1,Sy+1)=F3*S’(Sx+Kx-1,Sy)+F4*S’(Sx+Kx-1,Sy+Ky)
として導出され得る。
F3、F4は2タップフィルタの係数であり、F3+F4=2
Nである。
そして、最終的なアップサンプリングサンプル値が、
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-2400、のコンテキストで組み込まれ得る。
【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(Reduced Secondary Transform)、二次変換、回転変換、又は非分離二次変換(NSST)のうちの1つ以上を適用するステップを含む。
【0140】
一部の実施形態において、方法1400は更に、ブロックベースのDPCM(differential pulse coded modulation)又は残差DPCMを適用するステップを含む。
【0141】
一部の実施形態において、映像処理方法は、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、現在映像ブロックに対するルールに基づいて、アフィン線形加重イントラ予測(ALWIP)モードの使用を指し示すフラグのコンテキストを決定することと、ALWIPモードに基づいて、現在映像ブロックの複数のサブブロックを予測することと、該予測に基づいて、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行することとを含む。ルールは、先験的技術を用いて暗示的に規定されてもよいし、符号化ビットストリーム内で信号伝達されてもよい。この方法の他の例及び態様は、セクション4の項目37及び38に更に記載されている。
【0142】
一部の実施形態において、映像処理のための方法は、現在映像ブロックがアフィン線形加重イントラ予測(ALWIP)モードを用いて符号化されることを決定することと、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、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】
6 開示技術の実装例
図15は、映像処理装置1500のブロック図である。装置1500は、ここに記載される方法のうちの1つ以上を実装するために使用され得る。装置1500は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器にて具現化され得る。装置1500は、1つ以上のプロセッサ1502、1つ以上のメモリ1504、及び映像処理ハードウェア1506を含み得る。(1つ以上の)プロセッサ1502は、本文書に記載される1つ以上の方法(以下に限られないが方法11100-1400及び2100-2400を含む)を実行するように構成され得る。(1つ以上の)メモリ1504は、ここに記載される方法及び技術を実行するのに使用されるデータ及びコードを格納するために使用され得る。映像処理ハードウェア1506は、本文書に記載される一部の技術をハードウェア回路にて実装するために使用され得る。
【0146】
一部の実施形態において、映像符号化方法は、
図15に関して説明したようなハードウェアプラットフォーム上に実装される装置を用いて実装され得る。
【0147】
開示される技術の一部の実施形態は、映像処理ツール又はモードを有効にする決定を行うことを含む。一例において、映像処理ツール又はモードが有効にされるとき、エンコーダは、映像のブロックの処理においてそのツール又はモードを使用又は実装することになるが、必ずしも、そのツール又はモードの使用に基づいて、結果として生じるビットストリームを変更するわけではない。すなわち、映像のブロックから映像のビットストリーム表現への変換は、映像処理ツール又はモードを、それが決定に基づいて有効にされるときに使用することになる。他の一例において、映像処理ツール又はモードが有効にされるとき、デコーダは、その映像処理ツール又はモードに基づいてビットストリームが変更されていることを知って、ビットストリームを処理することになる。すなわち、映像のビットストリーム表現から映像のブロックへの変換は、決定に基づいて有効にされていた映像処理ツール又はモードを用いて実行されることになる。
【0148】
開示される技術の一部の実施形態は、映像処理ツール又はモードを無効にする決定を行うことを含む。一例において、映像処理ツール又はモードが無効にされるとき、エンコーダは、映像のブロックの映像のビットストリームへの変換においてそのツール又はモードを使用しないことになる。他の一例において、映像処理ツール又はモードが無効にされるとき、デコーダは、決定に基づいて無効にされていた映像処理ツール又はモードを用いてはビットストリームが変更されていないことを知って、ビットストリームを処理することになる。
【0149】
図17は、この開示の技術を利用し得る映像符号化システム100の一例を示すブロック図である。
図17に示すように、映像符号化システム100は、ソース装置110及びデスティネーション装置120を含み得る。ソース装置110は、符号化映像データを生成し、映像符号化装置として参照され得る。デスティネーション装置120は、ソース装置110によって生成された符号化映像データを復号することができ、映像復号装置として参照され得る。ソース装置110は、映像ソース112、ビデオエンコーダ114、及び入力/出力(I/O)インタフェース116を含み得る。
【0150】
映像ソース112は、例えば、映像キャプチャ装置、映像コンテンツプロバイダから映像データを受信するインタフェース、及び/又は映像データを生成するコンピュータグラフィックスシステム、又はそのようなソースの組み合わせなどの、ソースを含み得る。映像データは、1つ以上のピクチャを有し得る。ビデオエンコーダ114は、映像ソース112からの映像データを符号化してビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成する一連のビットを含み得る。ビットストリームは、符号化ピクチャ及び関連データを含み得る。符号化ピクチャはピクチャの符号化表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、及び他の構文構造を含み得る。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信器を含み得る。符号化映像データは、I/Oインタフェース116を介し、ネットワーク130aを通じて直接、デスティネーション装置120に伝送され得る。符号化映像データはまた、デスティネーション装置120によるアクセスのためにストレージ媒体/サーバ130b上に格納されてもよい。
【0151】
デスティネーション装置120は、I/Oインタフェース126、ビデオデコーダ124、及び表示装置122を含み得る。
【0152】
I/Oインタフェース126は、受信器及び/又はモデムを含み得る。I/Oインタフェース126は、ソース装置110又はストレージ媒体/サーバ130bから符号化映像データを取得し得る。ビデオデコーダ124は符号化映像データを復号し得る。表示装置122は、復号映像データをユーザに表示し得る。表示装置122は、デスティネーション装置120と一体化されてもよいし、あるいは、外部表示装置とインタフェースするように構成されたデスティネーション装置120の外部にあってもよい。
【0153】
ビデオエンコーダ114及びビデオデコーダ124は、例えばハイエフィシェンシビデオコーディング(HEVC)標準、バーサタイルビデオコーディング(VVC)標準、及び他の現行の及び/又は将来の標準などの、映像圧縮標準に従って動作し得る。
【0154】
図18は、
図17に示したシステム100内のビデオエンコーダ114とし得るものであるビデオエンコーダ200の一例を示すブロック図である。
【0155】
ビデオエンコーダ200は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。
図18の例において、ビデオエンコーダ200は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0156】
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含み得る。
【0157】
他の例において、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでいてもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在映像ブロックが位置するところのピクチャである、というIBCモードで予測を実行し得る。
【0158】
また、例えば動き推定ユニット204及び動き補償ユニット205などの一部のコンポーネントは、
図35の例では説明の目的で別々に表されているが、高度に集積されることができる。
【0159】
分割ユニット201は、ピクチャを1つ以上の映像ブロックに分割し得る。ビデオエンコーダ200及びビデオデコーダ300は、様々な映像ブロックサイズをサポートし得る。
【0160】
モード選択ユニット203は、例えば誤差結果に基づいて、イントラ又はインターである複数の符号化モードのうちの1つを選択し、得られたイントラ又はインター符号化ブロックを、残差ブロックデータを生成する残差生成ユニット207と、参照ピクチャとしての使用のために符号化ブロックを再構成する再構成ユニット212とに提供し得る。一部の例において、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくものである組み合わせイントラ・インター予測(combination of intra and inter predication;CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの分解能(例えば、サブピクセル又は整数ピクセルの精度)を選択し得る。
【0161】
現在映像ブロックに対してインター予測を実行するために、動き推定ユニット204が、バッファ213からの1つ以上の参照フレームを現在映像ブロックと比較することによって、現在映像ブロックについての動き情報を生成し得る。動き補償ユニット205が、現在映像ブロックに関連付けられたピクチャ以外の、バッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在映像ブロックについての予測映像ブロックを決定し得る。
【0162】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在映像ブロックがIスライス内にあるか、Pスライス内にあるか、それともBスライス内にあるかに応じて、現在映像ブロックに対して異なる演算を実行し得る。
【0163】
一部の例において、動き推定ユニット204は、現在映像ブロックに対して片方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0又はリスト1の参照ピクチャを探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0又はリスト1内の参照ピクチャを指し示す参照インデックスと、現在映像ブロックと参照映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、上記参照インデックスと、予測方向インジケータと、上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0164】
他の例において、動き推定ユニット204は、現在映像ブロックに対して双方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0内の参照ピクチャを探索し得るとともに、現在映像ブロックに対するもう1つの参照映像ブロックについてリスト1内の参照ピクチャも探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0内の及びリスト1内の参照ピクチャを指し示す参照インデックスと、それら参照映像ブロックと現在映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、それら参照インデックスと、現在映像ブロックの上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0165】
一部の例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報の完全なセットを出力し得る。
【0166】
一部の例において、動き推定ユニット204は、現在映像についての動き情報の完全なセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して現在映像ブロックの動き情報を信号伝達してもよい。例えば、動き推定ユニット204は、現在映像ブロックの動き情報が隣接映像ブロックの動き情報と十分に似ていると判定し得る。
【0167】
一例において、動き推定ユニット204は、現在映像ブロックに関連付けられる構文構造内で、現在映像ブロックが別の映像ブロックと同じ動き情報を持つことをビデオデコーダ300に示す値を指し示し得る。
【0168】
他の一例において、動き推定ユニット204は、現在映像ブロックに関連付けられる構文構造内で、別の映像ブロックと動きベクトル差(MVD)とを特定してもよい。動きベクトル差は、現在映像ブロックの動きベクトルと、指し示される映像ブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、指し示された映像ブロックの動きベクトルと動きベクトル差とを用いて、現在映像ブロックの動きベクトルを決定し得る。
【0169】
上述のように、ビデオエンコーダ200は、動きベクトルを予測的に信号伝達し得る。ビデオエンコーダ200によって実装され得る予測的シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP)及びマージモードシグナリングを含む。
【0170】
イントラ予測ユニット206は、現在映像ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット206が現在映像ブロックに対してイントラ予測を実行するとき、イントラ予測ユニット206は、同じピクチャ内の他の映像ブロックの復号サンプルに基づいて、現在映像ブロックについての予測データを生成し得る。現在映像ブロックについての予測データは、予測映像ブロックと様々な構文要素とを含み得る。
【0171】
残差生成ユニット207は、現在映像ブロックの(1つ以上の)予測映像ブロックを現在映像ブロックから差し引くことによって(例えば、マイナス符号によって示される)、現在映像ブロックについての残差データを生成し得る。現在映像ブロックの残差データは、現在映像ブロック内のサンプルの異なるサンプル成分に対応する残差映像ブロックを含み得る。
【0172】
他の例では、例えばスキップモードにおいて、現在映像ブロックのために現在映像ブロックについての残差データが存在しないことがあり、残差生成ユニット207は減算演算を実行しないことがある。
【0173】
変換処理ユニット208は、現在映像ブロックに関連する残差映像ブロックに1つ以上の変換を適用することによって、現在映像ブロックについての1つ以上の変換係数映像ブロックを生成し得る。
【0174】
変換処理ユニット208が現在映像ブロックに関する変換係数映像ブロックを生成した後、量子化ユニット209が、現在映像ブロックに関する変換係数映像ブロックを、現在映像ブロックに関する1つ以上の量子化パラメータ(QP)値に基づいて量子化し得る。
【0175】
逆量子化ユニット210及び逆変換ユニット211が、変換係数映像ブロックに、それぞれ、逆量子化及び逆変換を適用して、変換係数映像ブロックから残差映像ブロックを再構成し得る。再構成ユニット212が、再構成された残差映像ブロックを、予測ユニット202によって生成された1つ以上の予測映像ブロックからの対応するサンプルに足し合わせて、バッファ213に記憶される現在ブロックに関する再構成映像ブロックを生成し得る。
【0176】
再構成ユニット212が映像ブロックを再構成した後、映像ブロック内の映像ブロッキングアーチファクトを低減させるために、ループフィルタリング演算が実行され得る。
【0177】
エントロピー符号化ユニット214が、ビデオエンコーダ200の他の機能コンポーネントからデータを受信し得る。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化演算を実行してエントロピー符号化データを生成し、そして、エントロピー符号化データを含むビットストリームを出力し得る。
【0178】
図19は、
図17に示したシステム100内のビデオデコーダ124とし得るものであるビデオデコーダ300の一例を示すブロック図である。
【0179】
ビデオデコーダ300は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。
図19の例において、ビデオデコーダ300は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0180】
図19の例において、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、再構成ユニット306、及びバッファ307を含んでいる。ビデオデコーダ300は、一部の例において、ビデオエンコーダ200(
図18)に関して説明した符号化パスに対して概ね逆の復号パスを実行し得る。
【0181】
エントロピー復号ユニット301が符号化ビットストリームを取り出し得る。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含み得る。エントロピー復号ユニット301はエントロピー符号化映像データを復号することができ、エントロピー復号された映像データから、動き補償ユニット302が、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他のモーション情報を含む動き情報を決定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定し得る。
【0182】
動き補償ユニット302は、場合により補間フィルタに基づく補間を実行して、動き補償ブロックを生成し得る。サブピクセル精度で使用される補間フィルタに関する識別子が構文要素に含められ得る。
【0183】
動き補償ユニット302は、映像ブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算し得る。動き補償ユニット302は、ビデオエンコーダ200によって使用された補間フィルタを、受信した構文情報に従って決定し、その補間フィルタを用いて予測ブロックを生成し得る。
【0184】
動き補償ユニット302は、構文情報の一部を用いて、符号化映像シーケンスのフレーム及び/又はスライスを符号化するのに使用されるブロックのサイズ、符号化映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを指し示すモード、各インター符号化ブロックに関する1つ又は複数の参照フレーム(及び参照フレームリスト)、及び符号化映像シーケンスを復号するための他の情報を決定し得る。
【0185】
イントラ予測ユニット303は、例えばビットストリーム内で受信した、イントラ予測モードを用いて、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット303が、ビットストリーム内で提供されてエントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303が逆変換を適用する。
【0186】
再構成ユニット306が、残差ブロックを、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックと足し合わせて、復号ブロックを形成し得る。望まれる場合、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするよう、デブロッキングフィルタも適用され得る。そして、復号映像ブロックがバッファ307に格納され、それが、後の動き補償/イントラ予測のための参照ブロックを提供し、また、表示装置上での提示のための復号映像を生成する。
【0187】
図20は、ここに開示される様々な技術が実装され得る映像処理システム2000の一例を示すブロック図である。様々な実装は、システム2000のコンポーネントの一部又は全てを含み得る。システム2000は、映像コンテンツを受信する入力2002を含み得る。映像コンテンツは、例えば8ビット又は10ビットのマルチコンポーネント(多成分)ピクセル値といった、ロー(未加工)又は未圧縮のフォーマットで受信されてもよいし、あるいは圧縮又は符号化されたフォーマットで受信されてもよい。入力2002は、ネットワークインタフェース、周辺バスインタフェース、又はストレージインタフェースを表し得る。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)などの有線インタフェース、及びWi-Fi(登録商標)若しくはセルラーインタフェースなどの無線インタフェースを含む。
【0188】
システム2000は、本文書に記載される様々なコーディング又は符号化方法を実装し得る符号化コンポーネント2004を含み得る。符号化コンポーネント2004は、入力2002から符号化コンポーネント2004の出力まで映像の平均ビットレートを低減させて、映像の符号化表現を生成し得る。符号化技術は、それ故に、映像圧縮技術又は映像トランスコーディング技術と呼ばれることがある。符号化コンポーネント2004の出力は、格納されるか、コンポーネント2006によって表されるように接続されて通信を介して伝送されるかし得る。入力2002で受信された映像の格納又は通信されるビットストリーム(又は符号化)表現は、ディスプレイインタフェース2010に送られるピクセル値又は表示可能映像を生成するためにコンポーネント2008によって使用され得る。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像解凍と呼ばれることがある。また、特定の映像処理操作が“符号化”の操作又はツールとして参照されることがあるが、理解されることには、符号化のツール又は操作はエンコーダで使用され、符号化の結果を裏返す対応する復号のツール又は操作がデコーダで実行されることになる。
【0189】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート(Displayport)などを含み得る。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェースなどを含む。本文書に記載される技術は、例えば携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実行することが可能な他の装置などの、種々のエレクトロニクス装置にて具現化され得る。
【0190】
一部の実施形態において、ALWIPモード又はMIPモードは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算(又は平均演算)を行い、続いて行列ベクトル乗算演算を行い、続いて選択的に(又はオプションで)アップサンプリング演算(又は線形補間演算)を行うことによって、現在映像ブロックの予測ブロックを計算するために使用される。一部の実施形態において、ALWIPモード又はMIPモードは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算(又は平均演算)を行い、続いて行列ベクトル乗算演算を行うことによって、現在映像ブロックの予測ブロックを計算するために使用される。一部の実施形態において、ALWIPモード又はMIPモードはまた、行列ベクトル乗算演算を行った後に、アップサンプリング演算(又は線形補間演算)を行うことができる。
【0191】
図21は、行列ベースイントラ予測に関する例示的な方法2100を示している。動作2102は、映像の現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を、行列ベースイントラ予測(MIP)モードを用いて実行することを含み、MIPモードにおいて、現在映像ブロックの予測ブロックは、現在映像ブロックの左に位置する及び現在映像ブロックの上に位置する参照境界サンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定され、境界ダウンサンプリング演算において現在映像ブロックの参照境界サンプルから計算された減少した境界サンプルの代わりに、参照境界サンプルが直接的に、アップサンプリング演算における予測プロセスに使用される。
【0192】
方法2100に関する一部の実施形態において、現在映像ブロックのアップサンプリング境界サンプルに関連する位置にある参照境界サンプルが直接的に、アップサンプリング演算における予測プロセスに使用される。方法2100に関する一部の実施形態において、アップサンプリング境界サンプルは、複数の隣接する参照境界サンプルを平均することによっては計算されない。方法2100に関する一部の実施形態において、減少した境界サンプルは、現在映像ブロックの参照境界サンプル及びダウンスケーリング係数から計算される。方法2100に関する一部の実施形態において、境界ダウンサンプリング演算は、一段階の境界サンプルダウンサンプリング演算を含む。方法2100に関する一部の実施形態において、ダウンスケーリング係数は、変換ブロックサイズ及びダウンサンプリング後の境界サイズによって計算される。
【0193】
図22は、行列ベースイントラ予測に関する例示的な方法2200を示している。動作2202は、映像の現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換の間に、行列ベースイントラ予測(MIP)モードに関連するアップサンプリング演算にて、現在映像ブロックのサンプルに対して少なくとも2つのフィルタリング段階を実行することを含み、MIPモードにおいて、現在映像ブロックの予測ブロックは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定され、少なくとも2つのフィルタリング段階のうちの第1のフィルタリング段階におけるサンプルの第1の精度は、少なくとも2つのフィルタリング段階のうちの第2のフィルタリング段階におけるサンプルの第2の精度とは異なる。動作2204は、現在映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行することを含む。
【0194】
方法2200に関する一部の実施形態において、現在映像ブロックのサンプルは、予測サンプル、アップサンプリング演算の前の中間サンプル、又はアップサンプリング演算の後の中間サンプルである。方法2200に関する一部の実施形態において、サンプルは、第1のフィルタリング段階で水平方向に第1次元にてアップサンプリングされ、サンプルは、第2のフィルタリング段階で垂直方向に第2次元にてアップサンプリングされ、第1のフィルタリング段階が第2のフィルタリング段階に先行する。方法2200に関する一部の実施形態において、サンプルは、第1のフィルタリング段階で垂直方向に第1次元にてアップサンプリングされ、サンプルは、第2のフィルタリング段階で水平方向に第2次元にてアップサンプリングされ、第1のフィルタリング段階が第2のフィルタリング段階に先行する。
【0195】
方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果が、第2のフィルタリング段階への入力サンプルを提供し、且つ第1のフィルタリング段階は、サンプルに対して右シフト演算又は除算操作を行うことを排除する。方法2200に関する一部の実施形態において、第2のフィルタリング段階への入力サンプルを、変数Shift1だけ右シフトすること、又は変数Dem1で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果を、変数Shift2だけ右シフトすること、又は変数Dem2で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、変数Shift1=2×変数Shift2であり、変数Dem1=変数Dem2×変数Dem2である。方法2200に関する一部の実施形態において、現在映像ブロックのサンプルのうちの少なくとも一部は、第2のフィルタリング段階に送られる前に、変数Shift3だけ左シフトされ又は変数Dem3を乗算され、サンプルのうちの上記少なくとも一部は、第1のフィルタリング段階の出力アップサンプリング結果ではない。方法2200に関する一部の実施形態において、変数Shift3=変数Shift1であり、変数Dem3=変数Dem2である。
【0196】
方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果が、変数Shift1だけ右シフトされて又は変数Dem1で除算されて、処理された出力を生成し、且つ処理された出力が、第2のフィルタリング段階への入力サンプルを提供する。方法2200に関する一部の実施形態において、第2のフィルタリング段階の入力サンプルを、変数Shift2だけ右シフトすること、又は変数Dem2で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1に等しくなく、変数Dem2は変数Dem1に等しくない。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1より大きく、変数Dem2は変数Dem1より大きい。方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果を、変数Shift3だけ右シフトすること、又は変数Dem3で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、変数Shift3は変数Shift1に等しく、変数Dem3は変数Dem1に等しくない。
【0197】
方法2200に関する一部の実施形態において、変数Shift3=変数Shift1+変数Shift2である。方法2200に関する一部の実施形態において、現在映像ブロックのサンプルのうちの少なくとも一部は、第2のフィルタリング段階に送られる前に左シフトされ又は乗算され、サンプルのうちの上記少なくとも一部は、第1のフィルタリング段階の出力アップサンプリング結果ではない。方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果が、変数Shift1だけ左シフトされて又は変数Dem1を乗算されて、処理された出力を生成し、処理された出力が、第2のフィルタリング段階への入力サンプルを提供する。方法2200に関する一部の実施形態において、第2のフィルタリング段階の入力サンプルを、ある係数だけ右シフトすることによって、又は係数で除算することによって、最終的なアップサンプリング結果が取得される。
【0198】
方法2200に関する一部の実施形態において、第1のフィルタリング段階の出力アップサンプリング結果を、ある係数だけ右シフトすることによって、又は係数で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、現在映像ブロックのサンプルのうちの少なくとも一部は、第2のフィルタリング段階に送られる前に、変数Shift2だけ左シフトされ又は変数Dem2を乗算され、サンプルのうちの上記少なくとも一部は、第1のフィルタリング段階の出力アップサンプリング結果ではない。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1に等しくなく、変数Dem2は変数Dem1に等しくない。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1より大きく、変数Dem2は変数Dem1より大きい。
【0199】
方法2200に関する一部の実施形態において、第1のフィルタリング段階に入力されるサンプルが、変数Shift1だけ左シフトされて又は変数Dem1を乗算されて、処理された出力を生成し、処理された出力が、第2のフィルタリング段階への入力サンプルを提供する。方法2200に関する一部の実施形態において、第2のフィルタリング段階の入力サンプルを、ある係数だけ右シフトすることによって、又は係数で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、第1のフィルタリング段階の処理された結果を、ある係数だけ右シフトすることによって、又は係数で除算することによって、最終的なアップサンプリング結果が取得される。方法2200に関する一部の実施形態において、現在映像ブロックのサンプルのうちの少なくとも一部は、第2のフィルタリング段階に送られる前に、変数Shift2だけ左シフトされ又は変数Dem2を乗算され、サンプルのうちの上記少なくとも一部は、第1のフィルタリング段階の出力アップサンプリング結果ではない。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1に等しくなく、変数Dem2は変数Dem1に等しくない。方法2200に関する一部の実施形態において、変数Shift2は変数Shift1より大きく、変数Dem2は変数Dem1より大きい。
【0200】
図23は、行列ベースイントラ予測に関する映像符号化方法2300の一例を記載している。動作2302は、行列ベースイントラ予測(MIP)モードを用いて映像の現在映像ブロックを符号化することを含み、MIPモードにおいて、現在映像ブロックの予測ブロックは、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって決定される。動作2304は、現在映像ブロックの符号化表現に、現在映像ブロックに対するMIPモードの適用可能性を指し示す構文要素を、該構文要素のコンテキストがルールに基づいて導出される算術符号化を用いて追加することを含む。
【0201】
図24は、行列ベースイントラ予測に関する映像復号方法2400の一例を記載している。動作2402は、現在映像ブロックを有する映像の符号化表現を、現在映像ブロックが行列ベースイントラ予測(MIP)モードを用いて符号化されるかを指し示す構文要素に関して解析することを含み、該構文要素は、該構文要素に関するコンテキストがルールに基づいて導出される算術符号化を用いて符号化される。動作2404は、現在映像ブロックの符号化表現を復号して復号現在映像ブロックを生成することを含み、現在映像ブロックがMIPモードを用いて符号化される場合に、当該復号は、映像のうち先行して符号化されたサンプルに対して、境界ダウンサンプリング演算を行い、続いて行列ベクトル乗算演算を行い、続いて選択的にアップサンプリング演算を行うことによって、現在映像ブロックの予測ブロックを決定することを含む。
【0202】
方法2300及び/又は2400に関する一部の実施形態において、ルールは、(Abs(Log2(cbWidth)-Log2(cbHeight)))が1より大きいことに応答して構文要素のコンテキストが導出されることを定め、ここで、cbWidthは現在映像ブロックの幅であり、cbHeightは現在の映像ブロックの高さである。方法2300及び/又は2400に関する一部の実施形態において、ルールは、(Abs(Log2(cbWidth)-Log2(cbHeight)))が1より小さいことに応答して構文要素のコンテキストが導出されることを定め、ここで、cbWidthは現在映像ブロックの幅であり、cbHeightは現在映像ブロックの高さである。方法2300及び/又は2400に関する一部の実施形態において、ルールは、現在映像ブロックの1つ以上の隣接映像ブロックのMIPモード関連情報及び/又は1つ以上の隣接映像ブロックの利用可能性を用いることによって構文要素のコンテキストが導出されることを規定する。
【0203】
方法2300及び/又は2400に関する一部の実施形態において、構文要素のコンテキストは、現在映像ブロックの左隣接映像ブロックの第1のMIP構文要素と、現在映像ブロックの上隣接映像ブロックの第2のMIP構文要素と、左隣接映像ブロック及び上隣接映像ブロックの利用可能性とに基づいて導出される。方法2300及び/又は2400に関する一部の実施形態において、コンテキスト(offset ctxInc)は、次式:offset ctxInc=(condL&&availableL)+(condA&&availableA)+ctxSetIdx*3に基づいて導出され、ここで、condLは、現在映像ブロックの左隣接映像ブロックの第1のMIP構文要素であり、condAは、現在映像ブロック上隣接映像ブロックの第2のMIP構文要素であり、avallableL及びavallableAは、それぞれ、左隣接映像ブロック及び上隣接映像ブロックの利用可能性を示し、&&は論理積(And)演算を示し、ctxSetIdxは所定のコンテキストインデックスである。
【0204】
方法2300及び/又は2400に関する一部の実施形態において、コンテキストは、現在映像ブロックの左隣接映像ブロックのMIP構文要素と、左隣接映像ブロックの利用可能性とに基づいて導出される。方法2300及び/又は2400に関する一部の実施形態において、コンテキスト(offset ctxInc)は、次式:offset ctxInc=(condL&&availableL)+ctxSetIdx*3に基づいて導出され、ここで、condLは、現在映像ブロックの左隣接映像ブロックのMIP構文要素であり、avallableLは、左隣接映像ブロックの利用可能性を示し、&&は論理積(And)演算を示し、ctxSetIdxは所定のコンテキストインデックスである。
【0205】
方法2300及び/又は2400に関する一部の実施形態において、コンテキストは、現在映像ブロックの上隣接映像ブロックのMIP構文要素と、上隣接映像ブロックの利用可能性とに基づいて導出される。方法2300及び/又は2400に関する一部の実施形態において、コンテキスト(offset ctxInc)は、次式:offset ctxInc=(condA&&availableA)+ctxSetIdx*3に基づいて導出され、ここで、condAは、現在映像ブロックの上隣接映像ブロックのMIP構文要素であり、avallableAは、上隣接映像ブロックの利用可能性を示し、&&は論理積(And)演算を示し、ctxSetIdxは所定のコンテキストインデックスである。方法2300及び/又は2400に関する一部の実施形態において、所定のコンテキストインデックスctxSetIdxはゼロに等しい。方法2300及び/又は2400に関する一部の実施形態において、ルールは、構文要素のコンテキストが1つの固定コンテキストであり、それを使用して構文要素が算術符号化を用いて符号化されることを規定する。方法2300及び/又は2400に関する一部の実施形態において、ルールは、構文要素が算術符号化を用いてバイパス符号化されることを規定する。
【0206】
方法2300及び/又は2400に関する一部の実施形態において、Kは2以上であるとして、ルールは、コンテキストがK個のコンテキストから導出されることを規定する。方法2300及び/又は2400に関する一部の実施形態において、W>N*H又はH>N*Wであることに応答して、K個のコンテキストからのある順序で最初のコンテキストが使用され、Nは2である。方法2300及び/又は2400に関する一部の実施形態において、W≦N*H又はH≦N*Wであることに応答して、K個のコンテキストからのある順序で2番目のコンテキストが使用され、Nは2である。方法2300及び/又は2400に関する一部の実施形態において、Nはゼロ以上であるとして、ルールは、コンテキストが、N個の他のコンテキストから導出されることを規定する。方法2300及び/又は2400に関する一部の実施形態において、Nは3に等しく、構文要素のコンテキストは、2つの映像ブロックの2つのMIP構文要素及び/又は2つの映像ブロックの利用可能性を用いることによって導出され、該2つの映像ブロックは、現在映像ブロックの2つの隣接映像ブロックであり、又は該2つの映像ブロックは、現在映像ブロックの2つの非隣接映像ブロックである。
【0207】
2つの隣接映像ブロックは、現在映像ブロックに対する上隣接映像ブロックと、現在映像ブロックに対する左隣接映像ブロックとを含む。方法2300及び/又は2400に関する一部の実施形態において、上隣接映像ブロックは位置(x0,y0-1)をカバーし、左隣接映像ブロックは位置(x0-1,y0)をカバーし、ルマ位置(x0,y0)が現在映像ブロックの左上サンプルを規定する。方法2300及び/又は2400に関する一部の実施形態において、2つの隣接映像ブロックは、現在映像ブロックに対する上隣接映像ブロックと、現在映像ブロックに対する左下隣接映像ブロックとを含む。方法2300及び/又は2400に関する一部の実施形態において、2つの隣接する映像ブロックは、現在映像ブロックに対する上隣接映像ブロックと、現在映像ブロックに対する右上隣接映像ブロックとを含む。方法2300及び/又は2400に関する一部の実施形態において、2つの隣接映像ブロックは、現在映像ブロックに対する右上隣接映像ブロックと、現在映像ブロックに対する左隣接映像ブロックとを含む。
【0208】
方法2300及び/又は2400に関する一部の実施形態において、2つの隣接映像ブロックは、現在映像ブロックに対する右上隣接映像ブロックと、現在映像ブロックに対する左下隣接映像ブロックとを含む。方法2300及び/又は2400に関する一部の実施形態において、2つの隣接映像ブロックは、現在映像ブロックに対する左隣接映像ブロックと、現在映像ブロックに対する左下隣接映像ブロックとを含む。方法2300及び/又は2400に関する一部の実施形態において、2つの隣接映像ブロックは、現在映像ブロックに対する右上隣接映像ブロック、現在映像ブロックに対する上隣接映像ブロック、現在映像ブロックに対する左上隣接映像ブロック、現在映像ブロックに対する左隣接映像ブロック、及び現在映像ブロックに対する左下隣接映像ブロック、のうちのいずれか2つを含む。
【0209】
方法2300及び/又は2400に関する一部の実施形態において、Nは2に等しく、構文要素のコンテキストは、1つの映像ブロックの1つのMIP構文要素及び/又は1つの映像ブロックの利用可能性を用いることによって導出され、該1つの映像ブロックは、現在映像ブロックの隣接映像ブロックであり、又は該1つの映像ブロックは、現在映像ブロックの非隣接映像ブロックである。方法2300及び/又は2400に関する一部の実施形態において、1つの隣接映像ブロックは、現在映像ブロックに対する右上隣接映像ブロック、現在映像ブロックに対する上隣接映像ブロック、現在映像ブロックに対する左上隣接映像ブロック、現在映像ブロックに対する左隣接映像ブロック、及び現在映像ブロックに対する左下隣接映像ブロック、のうちのいずれか1つを含む。方法2300及び/又は2400に関する一部の実施形態において、ルールは、構文要素のコンテキストが1つの固定コンテキストであり、それを使用して構文要素が算術符号化を用いて符号化されることを規定する。方法2300及び/又は2400に関する一部の実施形態において、ルールは、構文要素が算術符号化を用いてバイパス符号化されることを規定する。
【0210】
以上から、理解されることには、ここに開示された技術の特定の実施形態を説明の目的でここに記述したが、発明の範囲から逸脱することなく様々な変更が為され得る。従って、ここに開示された技術は、添付の請求項による場合を除き、限定されるものではない。
【0211】
この特許文書に記述される主題及び機能動作の実装は、この明細書に開示されている構造及びそれらに構造的に均等なものを含め、様々なシステム、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、あるいはこれらのうちの1つ以上の組み合わせにて実施されることができる。この明細書に記述される主題の実装は、1つ以上のコンピュータプログラムプロダクトとして実装されることができ、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、有形の非一時的なコンピュータ読み取り可能媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基板、メモリ装置、機械読み取り可能な伝搬信号を生じさせる物質の組成、又はそれらのうちの1つ以上の組み合わせとすることができる。用語“データ処理ユニット”又は“データ処理装置”は、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理するあらゆる装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードといった、問題としているコンピュータプログラムのための実行環境を作り出すコードを含むことができる。
【0212】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含め、如何なる形態のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に格納されてもよいし、問題としているプログラムに専用の単一ファイルに格納されてもよいし、あるいは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されてもよいし、あるいは、一箇所に配置された、又は複数箇所に分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されてもよい。
【0213】
この明細書に記載されるプロセス及び論理フローは、入力データについて演算して出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。これらのプロセス及び論理フローはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった専用の論理回路によって実行されることもでき、また、装置も、そのような専用の論理回路として実装されることができる。
【0214】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを格納するための1つ以上の大容量ストレージ装置を含み、あるいは、大容量ストレージ装置からデータを受信したり、それにデータを転送したりするように動作的に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、例えばEPROM、EEPROM、及びフラッシュメモリデバイスといった半導体メモリデバイスを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われたり、それに組み込まれたりしてもよい。
【0215】
意図されることには、明細書は、図面と共に、単に例示的なものとみなされ、例示的なとは一例を意味する。ここで使用されるとき、“又は”の使用は、文脈が別のことを明確に示していない限り、“及び/又は”を含むことが意図される。
【0216】
この特許文書は数多くの詳細が含んでいるが、それらは、いずれかの発明又は特許請求され得るものの範囲についての限定として解釈されるべきでなく、むしろ、特定の発明の特定の実施形態に特有とし得る機構の説明として解釈されるべきである。別々の実施形態の文脈でこの特許文書に記載されている特定の複数の機構が、単一の実施形態にて組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で説明されている種々の機構が、複数の実施形態にて別々に、又は何らかの好適なサブコンビネーションで実装されることもできる。さらには、複数の機構が、特定の組み合わせにて作用するものとして上述され、さらには当初はそのように特許請求されていることがあり得るが、場合によって、特許請求されている組み合わせからの1以上の機構を組み合わせから除くこともでき、また、特許請求されている組み合わせをサブコンビネーション又はサブコンビネーションのバリエーションへと導いてもよい。
【0217】
同様に、図面には処理が特定の順序で示されるが、このことは、所望の結果を達成するために、それらの動作が図示される特定の順序で若しくは順番に実行されること、又は図示される全ての処理が実行されることを要求するものとして理解されるべきでない。また、この特許文書に記載されている実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきでない。
【0218】
ほんの少しの実装及び例を記載したのみであり、この特許文書に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われ得る。
【外国語明細書】