(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-26
(45)【発行日】2023-07-04
(54)【発明の名称】ビデオ処理方法、装置、記憶媒体、及び記憶方法
(51)【国際特許分類】
H04N 19/593 20140101AFI20230627BHJP
H04N 19/59 20140101ALI20230627BHJP
H04N 19/105 20140101ALI20230627BHJP
H04N 19/157 20140101ALI20230627BHJP
H04N 19/176 20140101ALI20230627BHJP
【FI】
H04N19/593
H04N19/59
H04N19/105
H04N19/157
H04N19/176
(21)【出願番号】P 2021559284
(86)(22)【出願日】2020-04-13
(86)【国際出願番号】 CN2020084455
(87)【国際公開番号】W WO2020207491
(87)【国際公開日】2020-10-15
【審査請求日】2021-10-05
(31)【優先権主張番号】PCT/CN2019/082424
(32)【優先日】2019-04-12
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】シュイ,ジィジォン
【審査官】久保 光宏
(56)【参考文献】
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 4)",Document: JVET-M1001-v7, [online],JVET-N0217 (version 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年03月25日,Pages 116-120,[令和4年10月17日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=5937> and <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0217-v3.zip>.,(See document file "JVET-M1001-v7_proposal_text_CE3-4.2_v1.docx" included in the zip file "JVET-N0217-v3.zip".)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 5)",Document: JVET-N1001-v6, [online],JVET-N1001 (version 6),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年05月23日,Pages 134-139,[令和5年4月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6640> and <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v6.zip>.,(See document file "JVET-N1001-v6.docx" in cluded in the zip file "JVET-N1001-v6.zip".)
【文献】Jonathan Pfaff, et al.,"CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2)",Document: JVET-N0217, [online],JVET-N0217 (version 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年03月25日,Pages 1-17,[令和4年10月17日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=5937> and <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0217-v3.zip>.,(See document file "JVET-N0217_v1.docx" included in the zip file "JVET-N0217-v3.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオ処理方法であって:
ビデオの現在のビデオ・ブロックと前記現在のビデオ・ブロックのビットストリームとの間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップ;
を含み、前記MIPモードにおいては、前記現在のビデオ・ブロックの予測サンプルは、前記現在のビデオ・ブロックの参照サンプルに関して前記現在のビデオ・ブロックのサイズに基づいて境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;
前記予測サンプルは、前記アップサンプリング処理において以下の式:
predSamples[
xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[
xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, 及び
predSamples[
xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[
xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer
に従って決定され、offsetHor及びoffsetVerは整数であり、
upHorは前記現在のビデオ・ブロックのサイズに基づく所定値と前記現在のビデオ・ブロックの幅との関数であり、
upVerは前記現在のビデオ・ブロックのサイズに基づく前記所定値と前記現在のビデオ・ブロックの高さとの関数であり、
dXは、1...upHor-1であり、
dYは、1...upVer-1であり、及び
xHorは前記upHorに基づく位置であり、yHorは前記upVerに基づく位置である、方法。
【請求項2】
offsetHor=upHor/2であり、offsetVer=upVer/2である、請求項1に記載の方法。
【請求項3】
前記境界ダウンサンプリング処理は、少なくとも1つの参照境界サンプルの合計に左ビット・シフト処理又は右ビット・シフト処理を適用することによって、境界サンプルをルールに従って導出することを含み、及び前記ルールは、左ビット・シフト処理又は右ビット・シフト処理を適用するかどうかを決定する、請求項1又は2に記載の方法。
【請求項4】
前記ルールは、前記右ビット・シフト処理は、シフトされるビット数が0より大きいことに応じて適用されることを規定している、請求項3に記載の方法。
【請求項5】
前記境界サンプ
ルは、以下の式:
【数1】
を使用して計算され、
redBdryS[x]は境界サンプルを示し、
bDwnは前記現在のビデオ・ブロックのサイズ及び境界サイズの関数であり、
refS[x]は参照サンプルxのナンバーを示し、
>>は前記右ビット・シフト処理を示し、及び
<<は前記左ビット・シフト処理を示す、請求項
3又は4に記載の方法。
【請求項6】
前記境界サイズは、前記現在のビデオ・ブロックのサイズに基づいて事前に決定されている、請求項5に記載の方法。
【請求項7】
bDwnは、bDwn=nTbs/boundarySize として計算され、nTbs及びboundarySizeはそれぞれ前記現在のビデオ・ブロックのサイズ及び前記境界サイズを表す、請求項5に記載の方法。
【請求項8】
前記MIPモードは複数のタイプを含み、前記現在のビデオ・ブロックのタイプ・インデックスは、以前のビデオ・ブロックのタイプ・インデックスを指すことを除外して導出される、請求項1-7のうちの何れか1項に記載の方法。
【請求項9】
前記現在のビデオ・ブロックの前記タイプ・インデックスは、前記ビットストリームに明示的に含まれている、請求項8に記載の方法。
【請求項10】
前記変換は、前記現在のビデオ・ブロックを前記ビットストリームに符号化することを含む、
請求項1-9のうちの何れか1項に記載の方法。
【請求項11】
前記変換は、前記現在のビデオ・ブロックを前記ビットストリームから復号化することを含む、
請求項1-9のうちの何れか1項に記載の方法。
【請求項12】
プロセッサと命令を伴う非一時的なメモリとを備えるビデオ・データを処理する装置であって、前記命令は、前記プロセッサにより実行されると、前記プロセッサに:
ビデオの現在のビデオ・ブロックと前記現在のビデオ・ブロックのビットストリームとの間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップ;
を行わせ、前記MIPモードにおいては、前記現在のビデオ・ブロックの予測サンプルは、前記現在のビデオ・ブロックの参照サンプルに関して前記現在のビデオ・ブロックのサイズに基づいて境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;
前記予測サンプルは、前記アップサンプリング処理において以下の式:
predSamples[
xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[
xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, 及び
predSamples[
xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[
xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer
に従って決定され、offsetHor及びoffsetVerは整数であり、
upHorは前記現在のビデオ・ブロックのサイズに基づく所定値と前記現在のビデオ・ブロックの幅との関数であり、
upVerは前記現在のビデオ・ブロックのサイズに基づく前記所定値と前記現在のビデオ・ブロックの高さとの関数であり、
dXは、1...upHor-1であり、
dYは、1...upVer-1であり、及び
xHorは前記upHorに基づく位置であり、yHorは前記upVerに基づく位置である、装置。
【請求項13】
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに:
ビデオの現在のビデオ・ブロックと前記現在のビデオ・ブロックのビットストリームとの間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップ;
を行わせ、前記MIPモードにおいては、前記現在のビデオ・ブロックの予測サンプルは、前記現在のビデオ・ブロックの参照サンプルに関して前記現在のビデオ・ブロックのサイズに基づいて境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;
前記予測サンプルは、前記アップサンプリング処理において以下の式:
predSamples[
xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[
xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, 及び
predSamples[
xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[
xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer
に従って決定され、offsetHor及びoffsetVerは整数であり、
upHorは前記現在のビデオ・ブロックのサイズに基づく所定値と前記現在のビデオ・ブロックの幅との関数であり、
upVerは前記現在のビデオ・ブロックのサイズに基づく前記所定値と前記現在のビデオ・ブロックの高さとの関数であり、
dXは、1...upHor-1であり、
dYは、1...upVer-1であり、及び
xHorは前記upHorに基づく位置であり、yHorは前記upVerに基づく位置である、記憶媒体。
【請求項14】
ビデオのビットストリームを記憶す
る方法
であって、
前記ビデオの現在のビデオ・ブロック
に関する前記ビットストリームを、マトリクス・ベースのイントラ予測(MIP)モードを使用して生成するステップ
であって、前記MIPモードにおいては、前記現在のビデオ・ブロックの予測サンプルは、前記現在のビデオ・ブロックの参照サンプルに関して前記現在のビデオ・ブロックのサイズに基づいて境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され
る、ステップ;
前記ビットストリームを、非一時的なコンピュータ読み取り可能な記憶媒体に記憶するステップ;
を含み、前記予測サンプルは、前記アップサンプリング処理において以下の式:
predSamples[
xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[
xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, 及び
predSamples[
xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[
xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer
に従って決定され、offsetHor及びoffsetVerは整数であり、
upHorは前記現在のビデオ・ブロックのサイズに基づく所定値と前記現在のビデオ・ブロックの幅との関数であり、
upVerは前記現在のビデオ・ブロックのサイズに基づく前記所定値と前記現在のビデオ・ブロックの高さとの関数であり、
dXは、1...upHor-1であり、
dYは、1...upVer-1であり、及び
xHorは前記upHorに基づく位置であり、yHorは前記upVerに基づく位置である、
方法。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願
本願は2020年4月13日付で出願された国際特許出願番号第PCT/CN2020/084455号の国内段階におけるものであり、同出願は2019年4月12日付で出願された国際特許出願番号PCT/CN2019/082424号に対する優先権及び利益を主張している。前述の出願の開示全体は、本願の開示の一部分として参照により援用される。
【0002】
技術分野
本特許文献は、ビデオ・コーディング技術、デバイス及びシステムに関連する。
【0003】
背景
ビデオ圧縮の進歩にもかかわらず、デジタル・ビデオは、インターネットや他のデジタル通信ネットワークにおける最大の帯域幅を依然として占めている。ビデオを受信して表示することが可能な接続ユーザー・デバイス数が増加するにつれて、デジタル・ビデオの利用に対する帯域幅の需要は増加し続けるであろうということが予想される。
【発明の概要】
【0004】
デジタル・ビデオ・コーディングに関連するデバイス、システム及び方法、具体的には、ビデオ・コーディングのためのマトリックス・ベースのイントラ予測方法が説明される。説明される方法は、既存のビデオ・コーディング規格(例えば、高効率ビデオ・コーディング(High Efficiency Video Coding,HEVC)及び将来のビデオ・コーディング規格(例えば、汎用ビデオ・コーディング(Versatile Video Coding,VVC)又はコーデックの両方に適用することが可能である。
【0005】
第1実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換に関し、第1最確モード(most probable mode,MPM)リストをルールに基づいて第1手順を使用して生成するステップ;及び現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を第1MPMリストを使用して実行するステップを含み、現在のビデオ・ブロックの変換はマトリクス・ベースのイントラ予測(MIP)モードを使用し、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;ルールは、第1MPMリストの生成に使用される第1手順は、MIPモードとは異なる非MIPイントラ・モードを使用してコーディングされるビデオの他のビデオ・ブロックの変換のための第2MPMリストの生成に使用される第2手順と同じであることを指定し;及び第1MPMリストの少なくとも一部分は第2MPMリストの少なくとも一部分に基づいて生成される。
【0006】
第2実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換に関し、最確モード(MPM)リストをルールに基づいて生成するステップであって、ルールは現在のビデオ・ブロックの隣接するビデオ・ブロックがマトリクス・ベースのイントラ予測(MIP)モードでコーディングされるかどうかに基づいており、MIPモードにおいては、隣接するビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;及び現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換をMPMリストを使用して実行するステップであって、変換は非MIPモードを現在のビデオ・ブロックに適用し、非MIPモードはMIPモードとは異なる、ステップを含む。
【0007】
第3実施例のビデオ処理方法は、現在のビデオ・ブロックのコーディングされた表現におけるコーディングされたビデオの現在のビデオ・ブロックを、マトリクス・ベースのイントラ予測(MIP)モードを使用して復号化するステップであって、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;及び現在のビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを示す情報をライン・バッファに記憶することなく、復号化に関連するライン・バッファを更新するステップとを含む。
【0008】
第4実施例のビデオ処理方法は、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、現在のビデオ・ブロックは、マトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされ、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され、ここで、算術符号化又は復号化プロセスにおける高々K個のコンテキストをして、フラグはビットストリーム表現にコーディングされ、フラグは、現在のビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを示し、Kはゼロ以上である。
【0009】
第5実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換に関し、マトリクス・ベースのイントラ予測(MIP)モードでコーディングされる現在のビデオ・ブロックに対するイントラ予測モードを生成するステップであって、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;現在のビデオ・ブロックがMIPモードでコーディングされるかどうかに基づいて、イントラ予測モードを示す情報を格納するための規則を決定するステップ;及びルールに従って変換を実行するステップであって、ルールは、イントラ予測モードのシンタックス要素は現在のビデオ・ブロックのビットストリーム表現に格納されることを定義し、ルールは、現在のビデオ・ブロックのMIPモードのモード・インデックスはビットストリーム表現に格納されないことを定義している、ステップを含む。
【0010】
第6実施例のビデオ処理方法は、ビデオのルマ・ビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされる旨の第1判定を行うステップであって、MIPモードにおいては、ルマ・ビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;第1判定に基づいて、ルマ・ビデオ・ブロックに関連付けられるクロマ・ビデオ・ブロックに対して使用されるべきクロマ・イントラ・モードに関する第2判定を行うステップ;及び第2判定に基づいて、クロマ・ビデオ・ブロックとクロマ・ビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0011】
第7実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換は、マトリクス・ベースのイントラ予測(MIP)モードを使用して現在のビデオ・ブロックをコーディングするかどうかの判定に基づいており、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。
【0012】
第8実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックを現在のビデオ・ブロックのビットストリーム表現に符号化するために、マトリクス・ベースのイントラ予測(MIP)モード及びMIPモードとは異なるコーディング・モードを、現在のビデオ・ブロックを符号化するために使用するかどうかをルールに従って決定するステップであって、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む、ステップ;及び決定に基づいて、現在のビデオ・ブロックの符号化された表現をビットストリーム表現に加えるステップを含む。
【0013】
第9実施例のビデオ処理方法は、ビデオの現在のブロックはマトリクス・ベースのイントラ予測(MIP)モード及びMIPとは異なるコーディング・モードを使用してビットストリーム表現に符号化されることを決定するステップであって、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む、ステップ;及びビットストリーム表現を分析及び復号化することによって、現在のビデオ・ブロックの復号化された表現を生成するステップを含む。
【0014】
第10実施例のビデオ処理方法は、ビデオ及び現在のビデオ・ブロックのコーディングされた表現の間の変換において、ビデオの現在のビデオ・ブロックの再構成されたブロックに対するループ・フィルタの適用性に関する判定を行うステップであって、現在のビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされ、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;及び判定に従って現在のビデオ・ブロックを処理するステップを含む。
【0015】
第11実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックを現在のビデオ・ブロックのビットストリーム表現に符号化するために、使用すべき現在のビデオ・ブロックの隣接するサンプルのタイプをルールに従って決定するステップ;及び決定に基づいて、現在のビデオ・ブロックの符号化された表現をビットストリーム表現に追加するステップであって、現在のビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用して符号化され、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップを含む。
【0016】
第12実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックは、マトリクス・ベースのイントラ予測(MIP)モードを使用して、及び現在のビデオ・ブロックの隣接するサンプルのタイプを使用して、ビットストリーム表現に符号化されていることをルールに従って判定するステップであって、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む、ステップ;及びビットストリーム表現を分析及び復号化することによって、現在のビデオ・ブロックの復号化された表現を生成するステップを含む。
【0017】
第13実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、変換は、マトリクス・ベースのイントラ予測(MIP)モードを使用して、サンプルの行列を使用する行列乗算を選択及び適用することによって、及び/又は現在のビデオ・ブロックに対するオフセット・ベクトルを使用するオフセットを選択及び加算することによって、現在のビデオ・ブロックに対する予測ブロックを生成するステップを含み、サンプルは、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得され、選択は、現在のビデオ・ブロックの参照ピクチャに関して、クロマ・スケーリングを伴うルマ・マッピング(LMCS)技術を適用することに関連付けられるリシェイピング情報に基づいている。
【0018】
第14実施例のビデオ処理方法は、現在のブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされるべきであると決定するステップであって、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;及び決定に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップであって、変換を実行することは、MIPモード及び他のコーディング技術の共同適用(co-application)のルールに基づいている、ステップを含む。
【0019】
第15実施例のビデオ処理方法は、マトリクス・ベースのイントラ予測(MIP)モードを使用して、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、MIPモードを使用して変換を実行することは、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得されるサンプルの行列を使用する行列乗算を適用することによって、予測ブロックを生成することを含み、行列はサンプルのビット深度に依存している。
【0020】
第16実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックに関し、マトリクス・ベースのイントラ予測(MIP)モードを使用して中間予測信号を生成するステップであって、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップ;中間予測信号に基づいて、最終予測信号を生成するステップ;及び最終予測信号に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0021】
第17実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み;変換を実行することは、MIPモードに対するアップサンプリング処理において補間フィルタを使用することを含み;MIPモードにおいて、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得されるサンプルの第1セットに、行列乗算が適用され、前記補間フィルタは、行列乗算から取得されるサンプルの第2セットに適用され;及び補間フィルタは双一次補間フィルタを除外している。
【0022】
第18実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換をルールに従って実行するステップを含み、ルールは、変換中におけるマトリクス・ベースのイントラ予測(MIP)モード又は変換モードの適用関係を指定し;MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含み;及び変換モードは、現在のビデオ・ブロックに対する予測ブロックを決定するために変換処理の使用を指定している。
【0023】
第19実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;変換を実行することは、少なくとも1つの参照境界サンプルの合計に左ビット・シフト処理又は右ビット・シフト処理を適用することによって、境界サンプルをルールに従って導出することを含み;及びルールは、左ビット・シフト処理又は右ビット・シフト処理を適用するかどうかを決定する。
【0024】
第20実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み;MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され;予測サンプルpredSamples[xHor+dX][yHor]は、アップサンプリング処理において以下の式:
predSamples[ xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[ xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, 及び
predSamples[ xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[ xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer
に従って決定され、offsetHor及びoffsetVerは整数であり、upHorは現在のビデオ・ブロックのサイズに基づく所定値と現在のビデオ・ブロックの幅との関数であり、 upVerは現在のビデオ・ブロックのサイズに基づく所定値と現在のビデオ・ブロックの高さとの関数であり、dXは、1・・・upHor-1であり、dYは、1・・・upVer-1であり、及びxHorはupHorに基づく位置であり、yHorは記upVerに基づく位置である。
【0025】
第21実施例のビデオ処理方法は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換に関し、マトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされる現在のビデオ・ブロックに対するイントラ予測モードを生成するステップであって、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される、ステップと、現在のビデオ・ブロックはMIPモードでコーディングされるかどうかに基づいてイントラ予測モードを示す情報を記憶するルールを決定するステップと、ルールに従って変換を実行するステップであって、ルールは、ビットストリーム表現は、現在のビデオ・ブロックに関連するMIPモードを示す情報の記憶を除外することを規定している、ステップとを含む。
【0026】
更に別の代表的な態様において、開示される技術は、ビデオ処理方法を提供するために使用されてもよい。この例示的な方法は、現在のビデオ・ブロックがアフィン線形重み付けイントラ予測(affine linear weighted intra prediction,ALWIP)モードを使用してコーディングされることを決定するステップと、その決定に基づいて、ALWIPモードに対する最確モード(MPM)リストの少なくとも一部分を、非ALWIPイントラ・モードに対するMPMリストの少なくとも一部分に基づいて構成するステップと、ALWIPモードに対するMPMリストに基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0027】
更に別の代表的な態様において、開示される技術は、ビデオ処理方法を提供するために使用されてもよい。この例示的な方法は、現在のビデオ・ブロックのルマ成分が、アフィン線形重み付けイントラ予測(ALWIP)モードを使用してコーディングされることを決定するステップと、決定に基づいてクロマ・イントラ・モードを推定するステップと、クロマ・イントラ・モードに基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0028】
更に別の代表的な態様において、開示される技術は、ビデオ処理方法を提供するために使用されてもよい。この例示的な方法は、現在のビデオ・ブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを使用してコーディングされることを決定するステップと、その決定に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0029】
更に別の代表的な態様において、開示される技術は、ビデオ処理方法を提供するために使用されてもよい。この例示的な方法は、現在のビデオ・ブロックがアフィン線形重み付けイントラ予測(ALWIP)モードとは異なるコーディング・モードを使用してコーディングされることを決定するステップと、その決定に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップとを含む。
【0030】
更に別の代表的な態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ読み取り可能なプログラム媒体に記憶される。
【0031】
更に別の代表的な態様において、上述の方法を実行するように構成される又は動作可能であるデバイスが開示される。デバイスは、この方法を実装するようにプログラムされるプロセッサを含むことができる。
【0032】
更に別の代表的な態様において、ビデオ・デコーダ装置は本願で説明される方法を実装することができる。
【0033】
開示される技術の上記及び他の態様及び特徴は、図面、明細書及び特許請求の範囲においてより詳細に説明される。
【図面の簡単な説明】
【0034】
【0035】
【0036】
【
図3】線形モデルの重みの導出に使用されるサンプルの位置の例を示す。
【0037】
【
図4】予測ブロックに隣接する4つの参照ラインの例を示す。
【0038】
【
図5A】ブロック・サイズに応じたサブ・パーティションの例を示す。
【
図5B】ブロック・サイズに応じたサブ・パーティションの例を示す。
【0039】
【
図6】4×4ブロックに対するALWIPの例を示す。
【0040】
【
図7】8×8ブロックに対するALWIPの例を示す。
【0041】
【
図8】8×4ブロックに対するALWIPの例を示す。
【0042】
【
図9】16×16ブロックに対するALWIPの例を示す。
【0043】
【
図10】MPMリスト構成で使用する隣接ブロックの例を示す。
【0044】
【
図11】開示される技術によるマトリクス・ベースのイントラ予測のための例示的な方法のフローチャートを示す。
【0045】
【
図12】開示される技術によるマトリクス・ベースのイントラ予測のための別の例示的な方法のフローチャートを示す。
【0046】
【
図13】開示される技術によるマトリクス・ベースのイントラ予測のための更に別の例示的な方法のフローチャートを示す。
【0047】
【
図14】開示される技術によるマトリクス・ベースのイントラ予測のための更に別の例示的な方法のフローチャートを示す。
【0048】
【
図15】本文書で説明されるビジュアル・メディア復号化又はビジュアル・メディア符号化技術を実装するためのハードウェア・プラットフォームの一例のブロック図である。
【0049】
【
図16】本願で開示される様々な技術を実装することが可能な例示的なビデオ処理システムを示すブロック図である。
【0050】
【
図17】本開示の技術を利用することが可能な例示的なビデオ・コーディング・システムを示すブロック図である。
【0051】
【
図18】ビデオ・エンコーダの一例を示すブロック図である。
【0052】
【
図19】ビデオ・デコーダの一例を示すブロック図である。
【0053】
【
図20】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図21】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図22】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図23】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図24】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図25】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図26】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図27A】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図27B】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図28】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図29A】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図29B】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図30】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図31】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図32】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図33】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図34】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図35】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図36】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図37】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【
図38】開示される技術によるマトリクス・ベースのイントラ予測のための追加的な方法例の例示的なフローチャートを示す。
【発明を実施するための形態】
【0054】
より高い解像度のビデオの益々増える要請に起因して、ビデオ・コーディング方法及び技術は現代技術の至る所に存在する。ビデオ・コーデックは、典型的には、デジタル・ビデオを圧縮又は解凍する電子回路又はソフトウェアを含み、より高い符号化効率を提供するために絶えず改良されている。ビデオ・コーデックは、圧縮されていないビデオを圧縮された形式へ、又は逆向きに変換する。ビデオ品質と、ビデオを表現するために使用されるデータ量(ビット・レートによって決定される)と、符号化及び復号化アルゴリズムの複雑さと、データ損失及びエラーに対する感度と、編集の容易さと、ランダム・アクセスと、エンド・ツー・エンド遅延(レイテンシ)との間には複雑な関係が存在する。圧縮されたフォーマットは、通常、標準的なビデオ圧縮規格、例えば、高効率ビデオ符号化(HEVC)規格(H.265又はMPEG-H Part 2としても知られている)、ファイナライズされた汎用ビデオ・コーディング(VVC)規格、又は他の現在及び/又は将来のビデオ・コーディング規格に準拠している。
【0055】
開示される技術の実施形態は、ランタイム・パフォーマンスを改善するために、既存のビデオ・コーディング規格(例えば、HEVC,H.265)及び将来の規格に適用される可能性がある。セクション見出しは、本特許文献においては説明の可読性を向上させるために使用されており、如何なる方法によっても、本説明又は実施形態(及び/又は実装)を個々のセクションだけに限定してはいない。
【0056】
1 HEVCの簡単なレビュー
1.1 HEVC/H.265におけるイントラ予測
イントラ予測は、予め想定されたカラー・チャネルで以前に再構成されたサンプルを使用して、所与のTB(変換ブロック)のサンプルを作成することを含む。イントラ予測モードは、ルマ及びクロマ・チャネルに対して別々にシグナリングされ、クロマ・チャネル・イントラ予測モードは、‘DM_CHROMA’モードを介してルマ・チャネル・イントラ予測モードにオプションとして依存する。イントラ予測モードは、PB(予測ブロック)レベルでシグナリングされるが、イントラ予測プロセスは、CUの残差四分木階層に従ってTBレベルで適用され、これにより1つのTBのコーディングがCU内の次のTBのコーディングに影響を及ぼすことを許容し、従って参照値として使用されるサンプルまでの距離を短縮する。
【0057】
HEVCは、35個のイントラ予測モード(DCモード、平面モード、3個の方向、即ち「角度」イントラ予測モード)を含む。33個の角度イントラ予測モードは
図1に示されている。
【0058】
クロマ・カラー・チャネルに関連するPBについては、イントラ予測モードは、平面、DC、水平、垂直、‘DM_CHROMA’モード、又は時には対角モード‘34’の何れかとして指定される。
【0059】
クロマ・フォーマット4:2:2及び4:2:0の場合、クロマPBは(それぞれ)2つ又は4つのルマPBと重複する可能性があり;この場合、DM_CHROMAのルマ方向は、これらのルマPBの左上から得られる。
【0060】
DM_CHROMAモードは、ルマ・カラー・チャネルPBのイントラ予測モードがクロマ・カラー・チャネルPBに適用されることを示す。これは比較的一般的であるので、intra_chroma_pred_modeの最確モード・コーディング方式は、このモードが選択される方にバイアスされる。
【0061】
2 VVCにおけるイントラ予測の例
2.1 67個のイントラ予測モードによるイントラ・モード・コーディング
自然なビデオで提示される任意のエッジ方向を捕らえるために、方向イントラ・モードの数は、HEVCで使用されているような33個から65個へ拡張される。追加の方向モードは、
図2において赤色の点線の矢印として描かれており、平面及びDCモードは同じままである。これらのより高密度な方向性イントラ予測モードは、全てのブロック・サイズに対して、そしてルマ及びクロマ・イントラ予測の両方に対して適用される。
【0062】
2.2 クロス・コンポーネント線形モデル(CCLM)の例
幾つかの実施態様において、クロス・コンポーネント冗長性を低減するために、クロス・コンポーネント線形モデル(CCLM)予測モード(LMとも呼ばれる)がJEMにおいて使用されており、クロマ・サンプルは、以下のような線形モデルを使用することによって、同じCUの再構成済みのルマ・サンプルに基づいて予測される:
【0063】
【0064】
ここで、pred
C(i,j)はCUにおける予測されるクロマ・サンプルを表現し、rec
L’(i,j)は同じCUのダウンサンプリングされた再構成されたルマ・サンプルを表現する。線形モデル・パラメータα及びβは、2つのサンプルからのルマ値とクロマ値の関係から導出され、2つのサンプルは、ダウンサンプリングされた隣接するルマ・サンプルのセットの中で最小サンプル値及び最大サンプル値のルマ・サンプル、及びそれらの対応するクロマ・サンプルである。
図3は、CCLMモードに関与する現在のブロックのサンプルと左及び上のサンプルの位置の例を示す。
【0065】
このパラメータ計算は、復号化プロセスの一部として実行され、エンコーダの探索動作と全く同じではない。その結果、αとβの値をデコーダへ伝えるためのシンタックスは使用されない。
【0066】
クロマ・イントラ・モード・コーディングの場合、合計8つのクロマ・イントラ・モードが、クロマ・イントラ・モード・コーディングに許容される。これらのモードは、5つの伝統的なイントラ・モードと3つのクロス・コンポーネント線形モデル(CCLM,LM_A,及びLM_L)を含む。クロマ・モード・コーディングは、対応するルマ・ブロックのイントラ予測モードに直接的に依存する。Iスライスではルマ及びクロマ成分について別々のブロック・パーティショニング構造がイネーブルにされているので、1つのクロマ・ブロックが複数のルマ・ブロックに対応する場合がある。従って、クロマDMモードの場合、現在のクロマ・ブロックの中心位置をカバーする対応するルマ・ブロックのイントラ予測モードが直接的に継承される。
【0067】
2.3 多重参照ライン(MRL)イントラ予測
多重参照ライン(MRL)イントラ予測は、イントラ予測のために、より多くの参照ラインを使用する。
図4において、4つの参照ラインの例が描かれており、ここで、セグメントA及びFのサンプルは、再構成された隣接するサンプルからフェッチされるのではなく、それぞれセグメントB及びEからの最も近いサンプルでパディングされる。HEVCイントラ・ピクチャ予測は、最も近い参照ライン(即ち参照ライン0)を使用する。MRLでは、2つの追加ライン(参照ライン1及び参照ライン3)が使用される。選択された参照ラインのインデックス(mrl_idx)は、シグナリングされて、イントラ予測子を生成するために使用される。0より大きな参照ラインidxの場合、追加の参照ライン・モードをMPMリストに含めるだけであり、残りのモード無しにmpmインデックスをシグナリングするだけである。
【0068】
2.4 イントラ・サブ・パーティション(ISP)
イントラ・サブ・パーティション(ISP)ツールは、ブロック・サイズに応じて、ルマ・イントラ予測ブロックを垂直に又は水平に2つ又は4つのサブ・パーティションに分割する。例えば、ISPの最小ブロック・サイズは4x8(又は8x4)である。ブロック・サイズが4×8(又は8×4)より大きい場合、対応するブロックは4つのサブ・パーティションで分割される。
図5は、2つの可能性のある例を示す。すべてのサブ・パーティションは、少なくとも16サンプルを有するという条件を充足する。
【0069】
各サブ・パーティションについて、再構成されたサンプルは、残差信号を予測信号に加えることによって取得される。ここで、残差信号はエントロピー復号化、逆量子化、及び逆変換のようなプロセスによって生成される。従って、各サブ・パーティションの再構成されたサンプル値は、次のサブ・パーティションの予測を生成するために利用可能であり、各サブ・パーティションは反復的に処理される。更に、最初に処理されるサブ・パーティションは、CUの左上のサンプルを含むものであり、次いで、下方に(水平分割)又は右側に(垂直分割)に続くものである。その結果、サブ・パーティション予測信号を生成するために使用される参照サンプルは、ラインの左側及び上側に配置されるだけである。すべてのサブ・パーティションは同じイントラ・モードを共有する。
【0070】
2.5 アフィン線形重み付けイントラ予測(ALWIP又はマトリクス・ベースのイントラ予測)
アフィン線形重み付けイントラ予測(ALWIP、マトリクス・ベースのイントラ予測(MIP)としても知られている)は、JVET-N0217で提案されている。
【0071】
JVET-N0217では、2つのテストが行われる。テスト1では、ALWIPは、8Kバイトのメモリ制限で、サンプル当たり高々4回の乗算で設計される。テスト2はテスト1と同様であるが、メモリ要求とモデル・アーキテクチャの観点から設計を更に単純化する。
【0072】
○ 全てのブロック形状について単一セットの行列及びオフセット・ベクトル
【0073】
○ 全てのブロック形状についてモード数を19に削減する。
【0074】
○ メモリ所要量を5760・10ビット値、即ち7.20キロバイトに削減する。
【0075】
○ 予測されたサンプルの線形補間は、方向ごとに単一ステップで実行され、第1テストでのように、反復的な補間を置き換える。
【0076】
2.5.1 JVET-N0217のテスト1
幅Wと高さHの矩形ブロックのサンプルを予測するために、アフィン線形重み付けイントラ予測(ALWIP)は、ブロックの左のH個の再構成された隣接する境界サンプルによる1ラインと、ブロックの上のW個の再構成された隣接する境界サンプルによる1ラインとを入力として取る。再構成されたサンプルが利用可能でない場合、それらは通常のイントラ予測と同様に生成される。予測信号の生成は、次の3つのステップに基づく:
【0077】
境界サンプルのうち、W=H=4の場合は4サンプル、他の全ての場合は8サンプルが、平均化により抽出される。
【0078】
平均化されたサンプルを入力として、行列ベクトル乗算とそれに続くオフセットの加算とが実行される。その結果は、元のブロック中のサブサンプリングされたサンプルのセットに関する縮小された予測信号(reduced prediction signal)である。
【0079】
残りの位置における予測信号は、各方向のシングル・ステップ線形補間である線形補間によって、サブサンプリングされたセットに関する予測信号から生成される。
【0080】
予測信号を生成するために必要とされる行列とオフセット・ベクトルは、行列の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}とで構成される。その集合に属する行列及びオフセット・ベクトル、又はこれらの行列及びオフセット・ベクトルの一部は、他の全てのブロック形状に関して使用される。
【0081】
行列ベクトル積の計算に必要とされる乗算の総数は、常に4×W×H以下である。言い換えれば、ALWIPモードついては、サンプル当たり最大4回の乗算が必要とされる。
【0082】
2.5.2 境界の平均化
第1ステップでは、入力境界bdrytop及びbdryleftは、より小さな境界bdryred
top及びbdryred
leftに縮小される。ここで、bdryred
top及びbdryred
leftは、4×4ブロックの場合は双方ともに2サンプルで構成され、他の全ての場合は双方ともに4サンプルで構成される。
4×4ブロックの場合において、0≦i<2に関し、次のように定められる。
【0083】
【0084】
同様にbdryred
leftが定められる。
それ以外の場合において、ブロック幅WがW=4・2k,0≦i<4で与えられる場合、次のように定められる。
【0085】
【0086】
同様にbdryred
leftが定められる。
【0087】
2つの縮小された境界bdryred
top及びbdryred
leftは、縮小境界ベクトルbdryredに連結され、これは、形状4×4のブロックについてサイズ4であり、他の全ての形状のブロックについてサイズ8である。モードがALWIPモードを指す場合、この連結は次のように定められる:
【0088】
【0089】
最終的に、サブサンプリングされた予測信号の補間に関し、大きなブロックでは、平均化された境界の第2バージョンが必要とされる。即ち、min(W,H)>8及びW≧Hであり、W=8*2lと書ける場合、0≦i<8に関し、次のように定められる:
【0090】
【0091】
min(W,H)>8及びH>Wである場合、bdryredII
leftは同様に定められる。
2.5.3 行列ベクトル乗算による縮小予測信号の生成
縮小された入力ベクトルbdryredから、縮小された予測信号predredを生成する。後者の信号は、幅Wred及び高さHredのダウンサンプリングされたブロックに関する信号である。ここで、Wred及び高さHredは次のように定められる。
【0092】
【0093】
【0094】
縮小された予測信号predredは、行列ベクトル積を計算してオフセットを加えることによって計算される:
【0095】
【0096】
ここで、Aは、Wred・Hred個の行と、W=H=4の場合には4列、他の全ての場合には8列とを有する行列である。BはWred・Hred個のサイズのベクトルである。
【0097】
行列A及びベクトルbは、次のように集合S0,S1,S2のうちの1つから取得される。インデックスidx=idx(W,H)を次のように定める:
【0098】
【0099】
更に、mを次のように設定する:
【0100】
【0101】
次いで、idx≦1又はidx=2及びmin(W,H)>4ならば、A=Aidx
m及びb=bidx
mとする。idx=2及びmin(W,H)=4である場合、Aを、Aidx
mの全ての行を除外することによって生じる行列であるとし、即ちW=4である場合、ダウンサンプリングされたブロックにおける奇数x座標に対応し、或いはH=4である場合、ダウンサンプリングされたブロックにおける奇数y座標に対応する。
【0102】
最終的に、次の場合には、縮小された予測信号は、その転置(transpose)によって置換される:
【0103】
○ W=H=4及びmode≧18
【0104】
○ max(W,H)=8及びmode≧10
【0105】
○ max(W,H)>8及びmode≧6
【0106】
predredの計算に必要な乗算の回数は、W=H=4の場合には4であり、なぜならその場合Aは4列及び16行を有するからである。他のすべての場合、Aは8列とWred・Hred行を有し、この場合、8・Wred・Hred≦4・W・H回の乗算が必要とされること、即ちこの場合、predredを計算するためにサンプル当たり高々4回の乗算が必要とされることを速やかに確認できる。
【0107】
2.5.4 ALWIPプロセス全体の説明
平均化、行列ベクトル乗算、及び線形補間の全体的なプロセスが、
図6-9で様々な形状に関して示されている。残りの形状は、図示のケースのうちの1つと同様に扱われることに留意されたい。
【0108】
1.4×4 ブロックであるとすると、ALWIPは境界の各軸に沿って2つの平均をとる。結果の4つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S0から取られる。オフセットを加えた後、これは16個の最終予測サンプルを生じる。予測信号を生成するために線形補間は不要である。従って、サンプル当たり合計(4・16)/(4・4)=4回の乗算が実行される。
【0109】
2.8×8 ブロックであるとすると、ALWIPは境界の各軸に沿って4つの平均をとる。行列は集合S1から取られる。これは予測ブロックの奇数位置における16個のサンプルを生じる。従って、サンプル当たり合計(8・16)/(8・8)=2回の乗算が実行される。オフセットを加えた後、これらのサンプルは、縮小された上・境界を使用することによって、垂直方向に補間される。元の左・境界を使用することによって、水平補間が続く。
【0110】
3.8×4 ブロックであるとすると、ALWIPは境界の水平軸に沿って4つの平均と、左境界における4つの元の境界値とをとる。結果の8つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S1から取られる。これは予測ブロックの水平方向の奇数位置と垂直方向の各位置とで16個のサンプルを生じる。従って、サンプル当たり合計(8・16)/(8・4)=4回の乗算が実行される。オフセットを加えた後、これらのサンプルは、元の左境界を使用することによって、水平方向に補間される。
【0111】
4.16×16 ブロックであるとすると、ALWIPは境界の各軸に沿って4つの平均をとる。結果の8つの入力サンプルは、行列ベクトル乗算に入る。行列は集合S2から取られる。これは予測ブロックの奇数位置で64個のサンプルを生じる。従って、サンプル当たり合計(8・64)/(16・16)=2回の乗算が実行される。オフセットを加えた後、これらのサンプルは、上境界の8つの平均を使用することによって、垂直方向に補間される。元の左境界を使用することによって、水平補間が続く。この場合、補間プロセスは、如何なる乗算も追加しない。従って、ALWIP予測を計算するためには、全体として、サンプル当たり2回の乗算が必要とされる。
【0112】
より大きな形状についても、手順は本質的には同じであり、サンプル当たりの乗算回数は4未満であることを確認することは容易である。
【0113】
W×8(W>8)ブロックの場合、水平補間のみ必要となり、なぜならサンプルは奇数の水平位置であって各垂直位置で与えられているからである。
【0114】
最終的に、W×4(W>8)ブロックの場合、A_kbeを、ダウンサンプリングしたブロックの水平軸に沿った奇数エントリに対応する全ての行を除外することによって生じる行列とする。従って、出力サイズは32であり、再び、水平補間のみが実行される。
【0115】
転置されるケースは相応に取り扱われる。
【0116】
2.5.5. シングル・ステップ線形補間
W×Hブロック(max(W,H)≧8)の場合、予測信号は、Wred×Hredに関する線形補間によって、縮小された予測信号から生じる。ブロックの形状に応じて、線形補間は、垂直方向、水平方向、又は双方向に行われる。線形補間が双方向に適用されるべきである場合、W<Hならば最初に水平方向に適用され、それ以外は最初に垂直方向に適用される。
【0117】
一般性を失うことなくW×Hブロック(max(W,H)≧8及びW≧H)を考察する。次いで、1次元線形補間が以下のように実行される。一般性を失うことなく、垂直方向の線形補間を説明すれば十分である。先ず、縮小された予測信号が、境界信号によってトップまで拡張される。垂直方向のアップサンプリング因子Uver=H/Hredを定義し、Uver=2uver>1と書く。次いで、拡張された縮小予測信号を次のように定義する:
【0118】
【0119】
次いで、この拡張された縮小予測信号から、垂直方向に線形補間された予測信号を、次のようにして生成する:
【0120】
【0121】
2.5.6 提案されるイントラ予測モードのシグナリング
【0122】
イントラ・モードにおける各コーディング・ユニット(CU)に関し、ALWIPモードが、対応する予測ユニット(PU)に適用されるべきであるか否かを示すフラグは、ビットストリームで送信される。後者のインデックスのシグナリングは、JVET-M0043と同様にMRLと調和する。ALWIPモードが適用されるべきである場合、ALWIPモードのインデックスpredmodeが、3MPMSを伴うMPMリストを使用してシグナリングされる。
【0123】
ここで、MPMの導出は、以下のように、上及び左PUのイントラ・モードを使用して実行される。3つの固定されたテーブルmap_angular_to_alwipidx, idx∈{0,1,2}が存在し、これらはそれぞれ従来のイントラ予測モードpredmodeAngularにALWIPモードを割り当てる。
【0124】
【0125】
幅W及び高さHのPU各々に関し、インデックスを定義する:
【0126】
idx(PU)=idx(W,H)∈{0,1,2}
【0127】
このインデックスは、ALWIPパラメータが、3つの集合のうちのものからセクション2.5.3と同様に取得されることを指定する。
【0128】
上の予測ユニットPUaboveが利用可能であり、現在のPUと同じCTUに所属し、イントラ・モードにある場合、idx(PU)=idx(PUabove)である場合、及びALWIPモードがALWIPモードpredmodeALWIP
aboveでPUaboveに適用される場合、次のように設定する:
【0129】
【0130】
上の予測ユニットが利用可能であり、現在のPUと同じCTUに所属し、イントラ・モードにある場合、従来のイントラ予測モードpredmodeAngular
aboveが上のPUに適用される場合、次のように設定する:
【0131】
【0132】
他の全ての場合、次のように設定する:
【0133】
【0134】
これは、このモードが利用可能でないことを意味する。同様に、但し、左側のPUが現在のPUと同じCTUに所属しなければならないという制約なしに、モードmodeALWIP
leftを導出する。
【0135】
最終的に、3つの固定されたデフォルト・リストlistidx,idx∈{0,1,2}が提供され、それぞれが3つの異なるALWIPモードを含む。デフォルト・リストlistidx(PU)及びモードmodeALWIP
above及びmodeALWIP
leftのうち、デフォルト値を-1に置き換えて繰り返しを省略することによって、3つの異なるMPMを構成する。
【0136】
ALWIP MPMリスト構成で使用される左隣接ブロック及び上隣接ブロックは、
図10に示すようにA1及びB1である。
【0137】
2.5.7 従来のルマ及びクロマ・イントラ予測モードに対する適応MPMリストの導出
提案されるALWIPモードは、次のように、従来のイントラ予測モードのMPMベース・コーディングと調和する。従来のイントラ予測モードに対するルマ及びクロマMPMリストの導出プロセスは、固定されたテーブルmap_alwip_to_angularidx,idx∈{0,1,2}を使用して、所与のPUに関するALWIPモードを、従来のイントラ予測モードの1つにマッピングする:
【0138】
【0139】
ルマMPMリスト導出の場合、ALWIPモードpredmodeALWIPを使用する隣接ルマ・ブロックに遭遇すると常に、このブロックは、あたかも従来のイントラ予測モードpredmodeAngularを使用していたかのように扱われる。クロマMPMリスト導出の場合、現在のルマ・ブロックがALWIPモードを使用する場合は常に、同じマッピングが、ALWIPモードを従来のイントラ予測モードに変換するために使用される。
【0140】
2.5.8 相応に修正されるワーキング・ドラフト
幾つかの実施形態において、このセクションで説明されるように、intra_lwip_flag, intra_lwip_mpm_flag, intra_lwip_mpm_idx及びintra_lwip_mpm_remainderに関連する部分が、開示される技術の実施形態に基づいてワーキング・ドラフトに追加されている。
【0141】
幾つかの実施態様において、このセクションで説明されるように、<begin>タグ及び<end>タグは、開示される技術の実施態様に基づくワーキング・ドラフトに対する追加及び修正を示すために使用される。
シンタックス・テーブル
コーディング・ユニット・シンタックス
【0142】
【数18】
セマンティクス
<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に等しいと推定される。
- それ以外の場合(cbHeightが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. XがA又はBに置き換わる場合、変数candLwipModeXは次のように導出される:
- 条項6.4.Xで指定されるようなブロックに対する利用可能性導出プロセス[Ed.(BB):隣接ブロック利用可能性検査プロセスtbd]は、(xCb, yCb)に等しく設定された位置(xCurrr, yCurr)と、(xNbX, yNbX)に等しく設定された隣接する位置(xNbY, yNbY)とを入力として、呼び出され、出力はavalableXに割り当てられる。
- 候補のアフィン線形重み付けイントラ予測モードcandLwipModeXは次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、candLwipModeXは-1に設定される。
- 変数availableXはFALSEに等しい。
- CuPredMode[ xNbX ][ yNbX ]はMODE_INTRAに等しくなく、且つmh_intra_flag[ xNbX ][ yNbX ]は1に等しくない。
- pcm_flag[ xNbX ][ yNbX ]は1に等しい。
- XはBに等しく、且つyCb-1は( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )より小さい。
- それ以外の場合、以下を適用する:
- 条項8.4.X.1で指定されるようなブロックに対するサイズ・タイプ導出プロセスは、ルマ・サンプルにおける現在のコーディング・ブロックの幅cbWidthと、ルマ・サンプルにおける現在のコーディング・ブロックの高さcbHeightとを入力として、呼び出され、出力は変数sizeIdに割り当てられる。
- intra_lwip_flag[ xNbX ][ yNbX ]が1に等しい場合、条項8.4.X.1で指定されるようなブロックに対するサイズ・タイプの導出プロセスは、ルマ・サンプルにおける隣接するコーディング・ブロックの幅nbWidthXと、ルマ・サンプルにおける隣接するコーディング・ブロックの高さnbHeightXを入力として、呼び出され、出力は変数sizeIdXに割り当てられる。
- sizeIdがsizeIdXに等しい場合、candLwipModeXはIntraPredModeY[ xNbX ][ yNbX ]に等しく設定される。
- それ以外の場合、candLwipModeXは-1に等しく設定される。
- それ以外の場合、candLwipModeXは、テーブル8-X1で指定されるようなIntraPredModeY[ xNbX ][ yNbX ]及びsizeIdを使用して導出される。
3. x=0..2においてcandLwipModeList[ x ]は、テーブル8-X1で指定されるような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. candLwipModeList[ i ]がi=0..1に対して及びi,j=(i+1)..2に対して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に等しく設定される。
テーブル8-X1 - イントラ予測及びアフィン線形重み付けイントラ予測モード間のマッピングの仕様
【0143】
【表1】
テーブル8-X2-アフィン線形重み付けイントラ予測候補モードの仕様
【0144】
【表2】
<end>
8.4.2 ルマ・イントラ予測モードの導出プロセス
このプロセスに対する入力は次のとおりである:
- ルマ位置(xCb, yCb):現在のピクチャの左上ルマ・サンプルに対する現在のルマ・コーディング・ブロックの左上サンプルを指定する。
- 変数cbWidth:ルマ・サンプルの現在のコーディング・ブロックの幅を指定する。
- 変数cbHeight:ルマ・サンプルの現在のコーディング・ブロックの高さを指定する。
このプロセスでは、ルマ・イントラ予測モードIntraPredModeY[ xCb ][ yCb ]が導出される。
テーブル8-1は、イントラ予測モードIntraPredModeY[ xCb ][ yCb ]と関連する名称に対する値を指定している。
テーブル8-1 イントラ予測モード及び関連する名称の仕様
【0145】
【表3】
NOTE - :イントラ予測モードINTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLMは、クロマ成分のみに適用可能である。
IntraPredModeY[xCb][yCb]は、以下のステップ順序で導出される。
1. 隣接する位置( xNbA, yNbA )及び( xNbB, yNbB )はそれぞれ( xCb - 1, yCb + cbHeight - 1 )及び( xCb + cbWidth - 1, yCb - 1 )に等しく設定される。
2. XがA又はBで置換される場合、変数candIntraPredModeXは次のように導出される:
- 条項6.4.Xで指定されるようなブロックに対する利用可能性導出プロセス<begin>[Ed.(BB):隣接ブロック利用可能性検査プロセスtbd]<end>は、( xCb, yCb )に等しく設定された位置( xCurr, yCurr )と、( xNbX, yNbX )に等しく設定された隣接する位置( xNbY, yNbY )とを入力として、呼び出され、出力はavailableXに割り当てられる。
- 候補イントラ予測モードcandIntraPredModeXは次のように導出される:
- 以下の条件のうちの1つ以上が真である場合、candIntraPredModeXはINTRA_PLANARに等しく設定される。
- 変数availableXはFALSEに等しい。
- CuPredMode[ xNbX ][ yNbX ]はMODE_INTRAに等しくなく、且つciip_flag[ xNbX ][ yNbX ]は1に等しくない。
- pcm_flag[ xNbX ][ yNbX ]は1に等しい。
- XはBに等しく、且つyCb-1は( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY )より小さい。
- それ以外の場合、candIntraPredModeXは次のように導出される。
- intra_lwip_flag[ xCb ][ yCb ]が1に等しい場合、candIntraPredModeXは以下のステップ順序で導出される:
i. 条項8.4.X.1で指定されるようなブロックに対するサイズ・タイプ導出プロセスは、ルマ・サンプルにおける現在のコーディング・ブロックの幅cbWidthと、ルマ・サンプルにおける現在のコーディング・ブロックの高さcbHeightとを入力として、呼び出され、出力は変数sizeIdに割り当てられる。
ii. candIntraPredModeXは、テーブル8-X3で指定されるようなIntraPredModeY[ xNbX ][ yNbX ]及びsizeIdを使用して導出される。
- それ以外の場合、candIntraPredModeXはIntraPredModeY[ xNbX ][ yNbX ]に等しく設定される。
3. 変数ispDefaultMode1及びispDefaultMode2は次のように定義される:
- IntraSubPartitionsSplitTypeがISP_HOR_SPLITに等しい場合、ispDefaultMode1はINTRA_ANGULAR18に等しく設定され、ispDefaultMode2はINTRA_ANGULAR5に等しく設定される。
- それ以外の場合、ispDefaultMode1はINTRA_ANGULAR50に等しく設定され、ispDefaultMode2はINTRA_ANGULAR63に等しく設定される。
・・・
テーブル8-X3 - アフィン線形重み付けイントラ予測モードとイントラ予測モードとの間のマッピングの仕様
【0146】
【表4】
8.4.3 クロマ・イントラ予測モードの導出プロセス
このプロセスに対する入力は次のとおりである:
- ルマ位置(xCb, yCb):現在のピクチャの左上ルマ・サンプルに対する現在のクロマ・コーディング・ブロックの左上サンプルを指定する。
- 変数cbWidth:ルマ・サンプルの現在のコーディング・ブロックの幅を指定する。
- 変数cbHeight:ルマ・サンプルの現在のコーディング・ブロックの高さを指定する。
このプロセスでは、クロマ・イントラ予測モードIntraPredModeC[ xCb ][ yCb ]が導出される。
- 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を使用して導出される。
- それ以外の場合、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を、入力として呼び出され、出力はpredSamplesである。
- それ以外の場合、8.4.4.2.X1で指定されているような一般的なイントラ・サンプル予測プロセスは、位置( xTbCmp, yTbCmp )、イントラ予測モードpredModeIntra、変換ブロック幅nTbW及び高さnTbH、コーディング・ブロック幅nCbW及び高さnCbH、及び変数cIdxを入力として、呼び出され、出力はpredSamplesである。
8.4.4.2.X1 アフィン線形重み付けイントラ・サンプル予測
このプロセスに対する入力は次のとおりである:
- サンプル位置(xTbCmp, yTbCmp):現在のピクチャの左上サンプルに対する現在の変換ブロックの左上サンプルを指定する。
- 変数predModeIntra:イントラ予測モードを指定する。
- 変数nTbW:変換ブロックの幅を指定する。
- 変数nTbH :変換ブロックの高さを指定する。
このプロセスの出力は、x=0..nTbW-1, y=0..nTbH-1に関する予測されたサンプルpredSamples[ x ][ y ]である。
条項8.4.X.1で指定されているようなブロックに対するサイズ・タイプ導出プロセスは、変換ブロック幅nTbWと、変換ブロック高さnTbHとを、入力として呼び出され、出力は変数sizeIdに割り当てられる。
変数numModes, boundarySize, predW, predH及びpredCは、表8-X4で指定されているようなsizeIdを使用して導出される。
テーブル8-X4 - sizedIdに依存するモード数、境界サンプル・サイズ、及び予測サイズの仕様
【0147】
【表5】
トランスポーズドされたフラグは、次のように導出される:
isTransposed = ( predModeIntra > ( numModes / 2 ) ) ? 1 : 0 (8-X15)
フラグneedUpsBdryHor及びneedUpsBdryVerは、次のように導出される:
needUpsBdryHor = ( nTbW > predW ) ? TRUE : FALSE (8-X16)
needUpsBdryVer = ( nTbH > predH ) ? TRUE : FALSE (8-X17)
変数variables 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..boundarySize - 1に関する縮小境界サンプルredT[ x ]、及びx = 0..upsBdryW - 1に関するアップサンプリング境界サンプルupsBdryT[ x ]を出力として、呼び出される。
- 条項8.4.4.2.X3で指定されているような境界縮小プロセスは、左の参照サンプルに関し、ブロック・サイズnTbH、参照サンプルrefL、境界サイズboundarySize、アップサンプリング境界フラグneedUpsBdryHor、アップサンプリング境界サイズupsBdryHを入力として、x = 0..boundarySize - 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に関してredT[ x ]に等しく設定される。
- それ以外の場合、p[ x ]は、x = 0..boundarySize - 1に関してredT[ x ]に等しく設定され、p[ x + boundarySize ]はx = 0..boundarySize - 1に関してredL[ x ]に等しく設定される。
predModeIntraに従うイントラ・サンプル予測プロセスの場合、以下のステップ順序を適用する:
1. x = 0..lwipW - 1, y = 0..lwipH - 1に関するアフィン線形重み付けサンプルは、次のように導出される:
- 変数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及びmodeIdを使用して導出される。
- y = 0..predC * predC - 1に関するバイアス・ベクトルvBias[ y ]は、テーブル8-XX[TBD:バイアス・ベクトルを加える]で指定されるようなsizeId及びmodeIdを使用して導出される。
- 変数sWは、テーブル8-X5で指定されるようなsizeId及びmodeIdを使用して導出される。
- x = 0..lwipW - 1, y = 0..lwipH - 1に関するアフィン線形重み付けサンプルpredLwip[ x ][ y ]は、次のように導出される:
【0148】
【数19】
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 ]に等しく設定される。
テーブル8-X5 - izeId及びmodeIdに依存するウェイト・シフトの仕様
【0149】
【表6】
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)に等しく設定される現在のルマ位置(xCurrr, yCurrr)と、上の隣接するルマ位置(xNbT, yNbT)とを入力として、呼び出され、出力はx = 0..nTbW-1に関してavailTop[ x ]に割り当てられる。
- 条項6.4.X [Ed. (BB):隣接ブロック利用可能性検査プロセスtbd]で指定されるようなブロックに対する利用可能性導出プロセスは、(xTbY, yTbY)に等しく設定される現在のルマ位置(xCurrr, yCurrr)と、左の隣接するルマ位置(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 = 1..nTbW - 1に関するシーケンスavailTop[ x ]の第1要素の位置xに等しく設定される。
2. 全てのx = 0..lastT - 1に関し、位置( xNbT, yNbT )におけるサンプルは、refT[ x ]に割り当てられる。
3. 全てのx = lastT..nTbW - 1に関し、refT[ x ]はrefT[ lastT - 1 ]に等しく設定される。
- x = 0..nTbH - 1に関する左の参照サンプルrefL[ y ]は次のように導出される:
- y = 0..nTbH - 1に関する全てのavailLeft[ y ]がTRUEに等しい場合、位置( xNbL, yNbL )におけるサンプルは、y = 0..nTbH - 1に関するrefL[ y ]に割り当てられる。
- それ以外の場合、availLeft[ 0 ]がFALSEに等しい場合、y = 0..nTbH - 1に関する全てのrefL[ y ]は、1 << ( BitDepth
Y - 1 )に等しく設定される。
- それ以外の場合、y = 0..nTbH - 1に関する参照サンプルrefL[ y ]は、以下のステップ順序によって導出される:
1. 変数lastLは、FALSEに等しい、y = 1..nTbH - 1に関するシーケンスavailLeft[ y ]の第1要素の位置yに等しく設定される。
2. 全てのy = 0..lastL - 1に関し、位置( xNbL, yNbL )におけるサンプルは、refL[ y ]に割り当てられる。
3. 全てのy = lastL..nTbH - 1に関し、refL[ y ]はrefL[ lastL - 1 ]に等しく設定される。
境界縮小プロセスの仕様
このプロセスに対する入力は次のとおりである:
- 変数nTbX:変換ブロック・サイズを指定する。
- 参照サンプルrefX[ x ]:x = 0..nTbX - 1。
- 変数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より小さい場合、以下を適用する:
【0150】
【数20】
- それ以外の場合(upsBdrySizeはnTbXに等しい)、upsBdryX[ x ]はrefX[ x ]に等しく設定される。
x = 0..boundarySize - 1に関する縮小境界サンプルredX[ x ]は、次のように導出される:
- boundarySizeがupsBdrySizeより小さい場合、以下を適用する
【0151】
【数21】
- それ以外の場合(boundarySizeはupsBdrySizeに等しい)、redX[ x ]はupsBdryX[ x ]に等しく設定される。
8.4.4.2.X4 予測アップサンプリング・プロセスの仕様
このプロセスに対する入力は次のとおりである:
- 変数predW:入力ブロック幅を指定する。
- 変数predH:入力ブロック高さを指定する。
- アフィン線形重み付けサンプルpredLwip[ x ][ y ]:x = 0..predW - 1, y = 0..predH - 1。
- 変数nTbW:変換ブロック幅を指定する。
- 変数nTbH:変換ブロック高さを指定する。
- 変数upsBdryW:アップサンプリング境界幅を指定する。
- 変数upsBdryH:アップサンプリング境界高さを指定する。
- 上のアップサンプリング境界サンプルupsBdryT[ x ]:x = 0..upsBdryW - 1。
- 左のアップサンプリング境界サンプルupsBdryL[ x ]:x = 0..upsBdryH - 1。
このプロセスの出力は、x = 0..nTbW - 1, y = 0..nTbH - 1.に関する予測サンプルpredSamples[ x ][ y ]である。
スパースな予測サンプルpredSamples[ m ][ n ]は、x = 0..predW - 1, y = 0..predH - 1に関してpredLwip[ x ][ y ]から次のように導出される:
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 )は、(8-X40)で指定されるようにdY = 1..upVer - 1に関して適用される。
2. m = 0..predW - 1, n = 0..nTbH - 1の全てのスパースな位置に関する水平アップサンプリング( xHor, yHor ) = ( m * upHor - 1, n )は、(8-X39)で指定されるようにdX = 1..upHor - 1に関して適用される。
<end>
テーブル9-9 - シンタックス要素及び関連するバイナリゼーション
【0152】
【表7】
テーブル9-15 - コンテキスト符号化ビンを用いたctxIncのシンタックス要素に対する割り当て
【0153】
【表8】
テーブル9-16 - 左及び上シンタックス要素を使用するctxIncの仕様
【0154】
【0155】
[0142]ALWPの概要
幅Wと高さHの矩形ブロックのサンプルを予測するために、アフィン線形重み付けイントラ予測(Affine linear weighted intra prediction,ALWIP)は、ブロックの左側にあるH個の再構成された隣接境界サンプルの1ラインと、ブロックの上側にあるW個の再構成された隣接境界サンプルの1ラインとを入力として取る。再構成されたサンプルが利用できない場合、それらは通常のイントラ予測と同様に生成される。ALWIPはルマ・イントラ・ブロックに適用されるだけである。クロマ・イントラ・ブロックに対しては、従来のイントラ・コーディング・モードが適用される。
[0143]予測信号の生成は、以下の3つのステップに基づいている:
[0144]1. 境界サンプルのうち、W=H=4の場合は4サンプル、それ以外の場合は8サンプルが、平均化により抽出される。
[0145]2. 行列ベクトル乗算に続いてオフセットの加算が、平均化されたサンプルを入力として用いて実行される。その結果は、元のブロック中のサブサンプリングされたサンプルのセットに関する縮小された予測信号である。
[0146]3. 残りの位置における予測信号は、各方向の単一ステップ線形補間である線形補間によって、サブサンプリングされたセットに関する予測信号から生成される。
[0147]ALWIPモードが適用されるべきである場合、ALWIPモードのインデックスpredmodeは、3MPMSと共にMPM-listを使用してシグナリングされる。ここで、MPMの導出は、以下のように、上及び左PUのイントラ・モードを使用して実行される。従来のイントラ予測モードpredmodeAngularの各々にALWIPモードを割り当てる3つの固定されたテーブルmap_angular_to_alwipidx,idx∈{0,1,2}が存在する。
[0148]predmodeALWIP = map_angular_to_alwipidx[predmodeAngular]
[0149]-[0151]
幅W及び高さHのPU各々に関し、インデックス
idx(PU) = idx(W,H) ∈{0,1,2}
を定義し、これは、3つのセットのうちALWIPパラメータが取り出される元のセットを指定する。
[0152]上記の予測ユニットPUaboveが利用可能であり、現在のPUと同じCTUに所属し、イントラ・モードにある場合であって、idx(PU) = idx(PUabove)であり、且つALWIPモードpredmodeALWIP
aboveと共にPUaboveに関してALWIPが適用される場合、次のように設定する。
[0153]modeALWIPabove = predmodeALWIP
above
[0154]上のPUが利用可能であり、現在のPUと同じCTUに所属し、イントラ・モードにある場合であって、従来のイントラ予測モードpredmodeAngular
aboveが上のPUに適用される場合、次のように設定する。
[0155]modeALWIP
above = map_angular_to_alwipidx(PUabove)[predmodeAngular
above]
【0156】
他の場合、次のように設定する
【0157】
modeALWIP
above = -1
【0158】
これは、そのモードが利用不能であることを意味する。同様に、左側のPUが現在のPUと同じCTUに所属しなければならないという制約なしに、モードmodeALWIP
leftを導出する。
【0159】
最後に、3つの固定されたデフォルト・リストlistidx,idx∈{0,1,2}が提供され、それら各々は3つの異なるALWIPモードを含む。デフォルト・リストlistidx(PU)及びモードmodeALWIP
above, modeALWIP
leftから、3つの異なるMPMは、デフォルト値を-1に置換して繰り返しを省略することによって構成される。
【0160】
ルマMPMリスト導出の場合、隣接ルマ・ブロックがALWIPモードpredmodeALWIPを使用するものに遭遇すると、このブロックは、あたかも従来のイントラ予測モードpredemodeAngularを使用していたかのように取り扱われる。
【0161】
predemodeAngular = map_alwip_to_angularidx(PU)[predmodeALWIP]
【0162】
3 VVCにおける変換
3.1 多重変換選択(MTS)
HEVCで採用されているDCT-IIに加えて、多重変換選択(Multiple Transform Selection,MTS)方式が、インター及びイントラ・コーディング・ブロック双方の残差コーディングに使用される。それはDCT8/DST7から選択される複数の変換を使用する。新たに導入される変換行列はDST-VIIとDCT-VIIIである。
【0163】
3.2 JVET-N0193で提案される縮小二次変換(RST)
縮小二次変換(RST)は16×16及び16×64のノン・セパラブル変換それぞれを4×4及び8×8ブロックに適用する。一次フォワード変換とインバース変換は、2つの1-D水平/垂直変換パスと同じ方法で依然として実行される。二次フォワード変換とインバース変換は、一次変換とは別のプロセス・ステップである。エンコーダについては、一次フォワード変換が最初に実行され、次いで二次フォワード変換と量子化、そしてCABACビット符号化が続く。デコーダについては、CABACビット復号化及び逆量子化、そして二次インバース変換が先ず実行され、一次インバース変換が続く。RSTは、イントラ・スライス及びインター・スライス双方のイントラ・コーディングされたTUにのみ適用される。
【0164】
3.3 JVET-N0185におけるイントラ・モード・コーディングのための統一されたMPMリスト
多重参照ライン(MRL)及びイントラ・サブ・パーティション(ISP)コーディング・ツールが適用されるか否かにかかわらず、統一された6-MPMリストがイントラ・ブロックに対して提案される。MPMリストは、VTM4.0でのように、左及び上の隣接するブロックの左上のイントラ・モードに基づいて構成される。左のモードをLeftとし、上のブロックのモードをAboveと仮定すると、統一されたMPMリストは次のように構成される:
・ 隣接するブロックが利用可能でない場合、そのイントラ・モードはデフォルトで平面(Planar)に設定される。
・ 双方のモードLeftとAboveが非角度モードである場合:
a. 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}
【0165】
更に、MPMインデックス・コードワードの最初のビンは、CABACコンテキスト・コーディングされる。現在のイントラ・ブロックがMRL有効であるか、ISP有効であるか、又はノーマル・イントラ・ブロックであるかに対応して、合計3つのコンテキストが使用さる。
【0166】
統一されたMPMリスト構成で使用される左隣接ブロック及び上隣接ブロックは、
図10に示されるようなA2及びB2である。
【0167】
1つのMPMフラグが先ずコーディングされる。ブロックがMPMリスト内のモードの1つでコーディングされる場合、MPMインデックスが更にコーディングされる。それ以外の場合、残りのモードのインデックス(MPMを除く)がコーディングされる。
【0168】
4 既存の実装における欠点の例
JVET-N0217におけるALWIPの設計は、次のような問題を有する:
【0169】
1) 2019年3月のJVET会議において、MRLモード、ISPモード、ノーマル・イントラ・モードについて、統一された6-MPMリスト生成が採用された。しかしながら、アフィン線形重み付け予測モードは、異なる3-MPMリスト構成を使用しており、これはMPMリスト構成を複雑化されたものにする。複雑なMPMリスト構成は、特に4×4サンプルのような小さなブロックについて、デコーダのスループットを損なう可能性がある。
【0170】
2) ALWIPはブロックのルマ成分に適用されるだけである。ALWPコーディングされたブロックのクロマ成分については、クロマ・モード・インデックスがコーディングされてデコーダへ送信され、これは不必要なシグナリングを招く結果となり得る。
【0171】
3) ALWIPと他のコーディング・ツールとの相互作用が考慮されるべきである。
4) 次式で upsBdryXを計算する場合
【0172】
【数22】
Log2(uDwn)-1は-1に等しいとすることが可能であるが、-1による左シフトは定義されていない。
【0173】
5) 予測サンプルをアップサンプリングする場合、丸めが適用されることはない。
【0174】
6) デブロッキング・プロセスでは、ALWIPコーディングされたブロックは、ノーマル・イントラ・ブロックとして扱われる。
【0175】
5 マトリクス・ベースのイントラ・コーディングに関する方法例
ここで開示される技術の実施形態は、既存の実装の欠点を克服し、それにより、ビデオ・コーディングに、より高い符号化効率をもたらすが、より少ない計算の複雑さしかもたらさない。ビデオ・コーディングの関するマトリクス・ベースのイントラ予測方法は、本文書で説明されるように、既存の及び将来の双方のビデオ・コーディング規格を向上させる可能性があり、種々の実装について説明されている以下の実施例において解明される。以下に提供される開示される技術の例は、一般的な概念を説明しており、限定として解釈されるようには意図されていない。実施例では、明示的に相反するように示されていない限り、これらの実施例で説明される種々の特徴は組み合わせられる可能性がある。
【0176】
以下の説明において、イントラ予測モードとは、角度イントラ予測モード(DC、平面、CCLM、及びその他の可能なイントラ予測モードを含む)を指し;イントラ・モードとは、ノーマル・イントラ・モード、MRL、ISP、又はALWIPを指す。
【0177】
以下の説明において、「他のイントラ・モード」とは、ノーマル・イントラ・モード、MRL、又はISPのような、ALWIP以外の1つ又は複数のイントラ・モードを指す可能性がある。
【0178】
以下の議論において、SatShift(x,n)は次のように定義される:
【0179】
【0180】
Shift(x, n)は、Shift(x,n) = (x + offset0)>>n として定義される。
【0181】
一例では、offset0及び/又はoffset1は、(1<<n)>1又は(1<<(n-1))に設定される。別の例では、offset0及び/又はoffset1は0に設定される。
【0182】
別の例では、offset0=offset1= ((1<<n)>>1)-1 or ((1<<(n-1)))-1である。
In another example, offset0=offset1= ((1<<n)>>1)-1 又は ((1<<(n-1)))-1 である。
Clip3(min, max, x)は次のように定義される:
【0183】
【0184】
ALWIP用のMPMリスト構築
1. ALWIP用のMPMリストの全部又は一部は、非ALWIPイントラ・モード(例えば、ノーマル・イントラ・モード、MRL、ISP)用のMPMリストを構築する手順の全部又は一部に従って構築される、ということが提案される。
a. 一例では、ALWIP用のMPMリストのサイズは、非ALWIPイントラ・モードのMPMリストのサイズと同じであってもよい。
i. 例えば、MPMリストのサイズは、ALWIP及び非ALWIPイントラ・モード双方に対して6である。
b. 一例では、ALWIP用のMPMリストは、非ALWIPイントラ・モードのMPMリストから導出することができる。
i. 一例では、非ALWIPイントラ・モード用のMPMリストは、最初に構築されてもよい。その後、それらの一部又は全部がMPMを変換することができ、更にこれをALWIPコーディングされたブロックの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リストを導出するために更に使用されてもよい場合には、すべての候補イントラ予測モード(隣接するブロックからのイントラ予測モード、及びPlanar及び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リストの第1モードは異なっていてもよい。
i. 例えば、非ALWIPイントラ・モードのMPMリストの第1モードは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イントラ予測モードに変換して、ALWIPモード用のMPMリストを構築する。
e. 一例では、MPMリスト内のシフトされたモードは異なっていてもよい。
i. 例えば、X+K0(Xはノーマル・イントラ予測モードであり、K0は整数である)は、非ALWIPイントラ・モード用のMPMリストに投入されてもよい。また、Y+K1(YはALWIPイントラ予測モードであり、K1は整数である)は、ALWIP用のMPMリストに投入されることが可能であり、K0はK1とは異なっていてもよい。
1) 一例では、K1は幅及び高さに依存してもよい。
5. 非ALWIPイントラ・モードで現在のブロックのMPMリストを構築する際に、隣接するブロックがALWIPでコーディングされている場合、隣接するブロックは使用不能であるとして扱われることが、提案される。
a. 代替的に、非ALWIPイントラ・モードで現在のブロックのMPMリストを構築する際に、ALWIPでコーディングされている場合、隣接するブロックは、予め定義されたイントラ予測モード(例えば、Planar)でコーディングされているものとして扱われる。
6. ALWIPモードで現在のブロックのMPMリストを構成する際に、隣接するブロックが非ALWIPイントラ・モードでコーディングされている場合、隣接するブロックは使用不能であるとして扱われることが、提案される。
a. 代替的に、ALWIPモードで現在のブロックのMPMリストを構成する際に、非ALWIPイントラ・モードでコーディングされている場合、隣接するブロックは、予め定義されたALWIPイントラ予測モードXでコーディングされているものとして扱われる。
i. 一例では、Xは、幅及び/又は高さのようなブロック寸法に依存してもよい。
7. ライン・バッファからALWIPフラグのストレージを削除することが提案される。
a. 一例では、アクセスされるべき2番目のブロックが現在のブロックと比較して異なるLCU/CTU行/領域に位置する場合、2番目のブロックはALWIPでコーディングされているかどうかの条件付けられた検査はスキップされる。
b. 一例では、アクセスされるべき2番目のブロックが現在のブロックと比較して異なるLCU/CTU行/領域に位置する場合、2番目のブロックは、ノーマル・イントラ・コーディングされたブロックとして扱われるように、非ALWIPモードと同様に扱われる。
8. ALWIPフラグを符号化する場合、高々K個(K>=0)のコンテキストが使用されてもよい。
a. 一例では、K=1である。
9. ALWIPモードに関連するモード・インデックスを直接的に格納する代わりに、ALWIPコーディングされたブロックの変換されたイントラ予測モードを格納することが、提案される。
a. 一例では、1つのALWIPコーディングされたブロックに関連する復号化されたモード・インデックスは、セクション2.5.7に説明されるようなmap_alwip_to_angularに従って、ノーマル・イントラ・モードにマッピングされる。
b. 更に、代替的に、ALWIPフラグの格納は、完全に除去される。
c. 更に、代替的に、ALWIPモードの格納は、完全に除去される。
d. 更に、代替的に、1つの隣接する/現在のブロックがALWIPフラグでコーディングされるかどうかの状態検査は、スキップされてもよい。
e. 更に、代替的に、ALWIPコーディングされたブロックに割り当てられたモードの変換、及び1つのアクセスされたブロックに関連するノーマル・イントラ予測は、スキップされてもよい。
異なるカラー成分に関するALWIP
10. 対応するルマ・ブロックがALWIPモードでコーディングされる場合に、推定されるクロマ・イントラ・モード(例えば、DMモード)は常に適用されるかもしれないことが、提案される。
a. 一例では、クロマ・イントラ・モードは、対応するルマ・ブロックがALWIPモードでコーディングされている場合には、シグナリング無しにDMモードであると推定される。
b. 一例では、対応するルマ・ブロックは、所与の場所に位置するクロマ・サンプルの対応するサンプル(例えば、現在のクロマ・ブロックの左上、現在のクロマ・ブロックの中央)をカバーするものであってもよい。
c. 一例では、DMモードは、例えば(ALWIP)モードをノーマル・イントラ・モードの1つにマッピングすることによって、対応するルマ・ブロックのイントラ予測モードに従って導出されてもよい。
11. クロマ・ブロックの対応するルマ・ブロックがALWIPモードでコーディングされる場合、幾つかのDMモードが導出される可能性がある。
12. 1つの対応するルマ・ブロックがALWIPモードでコーディングされる場合、特殊モードがクロマ・ブロックに割り当てられることが、提案される。
a. 一例では、特殊モードは、ALWIPコーディングされたブロックに関連するイントラ予測モードにかかわらず、所与のノーマル・イントラ予測モードであるように定義される。
b. 一例では、イントラ予測の多様な方法がこの特殊モードに割り当てられてもよい。
13. ALWIPがクロマ成分に適用されてもよいことが、提案される。
a. 一例では、マトリクス及び/又はバイアス・ベクトルは、異なるカラー成分に対しては異なっていてもよい。
b. 一例では、行列及び/又はバイアス・ベクトルは、Cb及びCrに対して一緒に事前に定義されてもよい。
i. 一例では、Cb及びCr成分は連結されてもよい。
ii. 一例では、Cb及びCr成分はインターリーブされてもよい。
c. 一例では、クロマ成分は、対応するルマ・ブロックと同じALWIPイントラ予測モードを共有してもよい。
i. 一例では、対応するルマ・ブロックがALWIPモードを適用し、クロマ・ブロックがDMモードでコーディングされる場合、同じALWIPイントラ予測モードがクロマ成分に適用される。
ii. 一例では、同じALWIPイントラ予測モードがクロマ成分に適用され、その後の線形補間をスキップすることができる。
iii. 一例では、同じALWIPイントラ予測モードが、サブサンプリングされた行列及び/又はバイアス・ベクトルとともに、クロマ成分に適用される。
d. 一例では、異なる成分に対するALWIPイントラ予測モードの数は異なっていてもよい。
i. 例えば、クロマ成分に対するALWIPイントラ予測モードの数は、同じブロック幅と高さのルマ・コンポーネントに対する数より少なくてもよい。
ALWIPの適用
14. ALWIPを適用できるかどうかをシグナリングしてもよいことが、提案される。
a. 例えば、シーケンス・レベルで(例えば、SPSで)、ピクチャ・レベルで(例えば、PPS又はピクチャ・ヘッダで)、スライス・レベルで(例えば、スライス・ヘッダで)、タイル・グループ・レベルで(例えば、タイル・グループ・ヘッダで)、タイル・レベルで、CTU行レベルで、又はCTUレベルでシグナリングされてもよい。
b. 例えば、ALWIPが適用できない場合、intra_lwip_flagはシグナリングされず、0であると推定されてもよい。
15. ALWIPを適用できるかどうかは、ブロック幅(W)及び/又は高さ(H)に依存してもよいことが、提案される。
c. 例えば、W>=T1(又はW>T1)及びH>=T2(又はH>T2)である場合に、ALWIPは適用されない場合がある。例えば、T1=T2=32である。
i. 例えば、W<=T1(又はW<T1)及びH<=T2(又はH<T2)である場合に、ALWIPは適用されない場合がある。例えば、T1=T2=32である。
d. 例えば、W>=T1(又はW>T1)又はH>=T2(又はH>T2)である場合に、ALWIPは適用されない場合がある。例えば、T1=T2=32である。
i. 例えば、W<=T1(又はW<T1)又はH<=T2(又はH<T2)である場合に、ALWIPは適用されない場合がある。例えば、T1=T2=32、又はT1=T2=8である。
e. 例えば、W+H>= T(又はW*H> T)である場合、ALWIPは適用されないかもしれない。例えば、T=256である。
i. 例えば、W+H<=T(又はW + H< T)である場合、ALWIPは適用されないかもしれない。例えば、T=256である。
f. 例えば、W*H>= T(又はW*H>T)である場合、ALWIPは適用されないかもしれない。例えば、T = 256である。
i. 例えば、W*H<= T(又はW*H<T)である場合、ALWIPは適用されないかもしれない。例えば、T=256である。
g. 例えば、ALWIPを適用できない場合、intra_lwip_flag はシグナリングされず、0であると推定されてもよい。
ALWPにおける計算上の問題
16. ALWIPに係わる如何なるシフト演算も、Sによる数だけ左シフト又は右シフトのみが可能であることが提案され、ここで、Sは0以上でなければならない。
a. 一例では、Sが0以上である場合、右シフト動作は異なる場合がある。
i. 一例では、upsBdryX[x]は次のように計算されるべきである。
【0185】
【数25】
b. 一例では、upsBdryX[x]は次のように計算されるべきである。
【0186】
【数26】
17. 結果は、ALWIPのアップサンプリング・プロセスにおいてゼロに向かって又はゼロから離れるように丸められるべきであることが、提案される。
a. 一例では、
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イントラ予測モード又はPlanarのようなノーマル・イントラ予測モードが、イントラ予測信号を生成するために使用されるか否かが、明示的にシグナリングされてもよい。
b. 一例では、ALWIPイントラ予測モード又はPlanarのようなノーマル・イントラ予測モードが、イントラ予測信号を生成するために使用されてもよいかどうかは、暗黙のうちに推定することができる。
i. 一例では、ALWIPイントラ予測モードは、CIIPコーディングされたブロックでは決して使用されない可能性がある。
1) 代替的に、ノーマル・イントラ予測は、CIIPコーディングされたブロックでは決して使用されない可能性がある。
ii. 一例では、ALWIPイントラ予測モード又はPlanarのようなノーマル・イントラ予測モードがイントラ予測信号を生成するために使用されるかどうかは、隣接するブロックの情報から推測されてもよい。
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)としても知られている)情報に依存する可能性がある。
a. 一例では、リシェイピングがオン及びオフされる場合に、異なる行列又は/及びオフセット・ベクトルが使用されてもよい。
b. 一例では、異なる行列又は/及びオフセット・ベクトルが、異なるリシェイピング・パラメータに使用されてもよい。
c. 一例では、ALWIPは、オリジナル・ドメインで常に実行されてもよい。
i. 例えば、隣接するサンプルは、(リシェイピングが適用される場合)ALWIPで使用される前に、オリジナル・ドメインにマッピングされる。
28. ALWIPは、リシェイピングが適用される場合に、ディセーブルにされる可能性がある。
a. 代替的に、ALWIPがイネーブルにされる場合に、リシェイピングはディセーブルにされてもよい。
b. 一例では、リシェイピングが適用される場合に、ALWIPはHDR(ハイ・ダイナミック・レンジ)コンテンツに対してディセーブルにされてもよい。
29. ALWIPで使用される行列は、サンプルのビット深度に依存する可能性がある。
30. ALWIPによって生成される予測は、更に使用されるべき予測信号を取得するために処理されることになる中間信号として、取り扱われてもよいことが、提案される。
a. 一例では、位置依存イントラ予測コンビネーション(Position Dependent Intra Prediction Combination,PDPC)は、更に使用される予測信号を生成するために、ALWIPによって生成される予測に関して適用されてもよい。
b. 一例では、ALWIPによって生成される境界サンプル予測は、更に使用されるべき予測信号を生成するために、隣接するサンプルと共にフィルタリングされることが可能である。
31. バイリニア補間フィルタ以外の補間フィルタは、ALWIPのアップサンプリング・プロセスで使用されてもよいことが、提案される。
a. 一例では、4タップ補間フィルタは、ALWIPのアップサンプリング・プロセスで使用されてもよい。
i. 例えば、クロマ成分の動き補償を行うために使用されるVVCにおける4タップ補間フィルタは、ALWIPのアップサンプリング・プロセスで使用されてもよい。
ii. 例えば、角度イントラ予測を行うために使用されるVVCにおける4タップ補間フィルタは、ALWIPのアップサンプリング・プロセスにおいて使用されてもよい。
iii. 例えば、ルマ成分の動き補償を行うために使用されるVVCにおける8タップ補間フィルタは、ALWIPのアップサンプリング・プロセスで使用されてもよい。
[0185]上述の実施例は、以下で説明される方法、例えば方法1100ないし1400、及び2000ないし3800の状況に組み込まれることが可能であり、これらの方法はビデオ・エンコーダ及び/又はデコーダで実装される可能性がある。
[0186]
図11は、ビデオ処理のための例示的な方法のフローチャートを示す。方法1100は、ステップ1102において、現在のビデオ・ブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを使用してコーディングされることを決定するステップを含む。
【0187】
方法1100は、決定に基づいて、ステップ1104において、ALWIPモードに対する最確モード(MPM)リストの少なくとも一部分を、非ALWIPイントラ・モードに対するMPMリストの少なくとも一部分に基づいて、構築するステップを含む。
【0188】
方法1100は、ステップ1106において、ALWIPモードのMPMリストに基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0189】
幾つかの実施形態では、ALWIPモードのMPMリストのサイズは、非ALWIPイントラ・モードのMPMリストのサイズと同じである。一例では、ALWIPモードのMPMリストのサイズは6である。
【0190】
幾つかの実施形態では、方法1100は、デフォルト・モードをALWIPモードのMPMリストに挿入するステップを更に含む。一例では、デフォルト・モードは、非ALWIPイントラ・モードのMPMリストに基づくALWIPモードに対するMPMリストの一部分の前に挿入される。別の例では、デフォルト・モードは、非ALWIPイントラ・モードのMPMリストに基づくALWIPモードに対するMPMリストの一部分の後に挿入される。更に別の例では、デフォルト・モードは、非ALWIPイントラ・モードのMPMリストに基づくALWIPモードのMPMリストの一部分とインターリーブ方式で挿入される。
【0191】
幾つかの実施形態では、ALWIPモードのためのMPMリスト及び非ALWIPイントラ・モードのためのMPMリストの構築は、1つ以上の隣接するブロックに基づく。
【0192】
幾つか実施形態では、ALWIPモードのMPMリスト及び非ALWIPイントラ・モードのMPMリストの構築は、現在のビデオ・ブロックの高さ又は幅に基づく。
【0193】
幾つかの実施形態では、ALWIPモードのためのMPMリストの構築は、非ALWIPイントラ・モードのためのMPMリストの構築に使用されるパラメータの第2セットとは異なるパラメータの第1セットに基づいている。
【0194】
幾つかの実施形態では、方法1100は、現在のビデオ・ブロックの隣接するブロックがALWIPモードでコーディングされていることを決定し、非ALWIPイントラ・モードのためのMPMリストを構築する際に、隣接するブロックを使用不能として指定するステップを更に含む。
【0195】
幾つかの実施形態では、方法1100は、現在のビデオ・ブロックの隣接するブロックが非ALWIPイントラ・モードでコーディングされていることを決定し、ALWIPモードのためのMPMリストを構築する際に、隣接するブロックを使用不能として指定するステップを更に含む。
【0196】
幾つかの実施態様では、非ALWIPイントラ・モードは、ノーマル・イントラ・モード、多重参照ライン(MRL)イントラ予測モード、又はイントラ・サブ・パーティション(ISP)ツールに基づく。
【0197】
図12は、ビデオ処理のための例示的な方法のフローチャートを示す。この方法1200は、ステップ1210において、現在のビデオ・ブロックのルマ成分が、アフィン線形重み付けイントラ予測(ALWIP)モードを使用してコーディングされることを決定するステップを含む。
【0198】
方法1200は、ステップ1220において、決定に基づいて、クロマ・イントラ・モードを推定するステップを含む。
【0199】
方法1200は、ステップ1230において、クロマ・イントラ・モードに基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0200】
幾つかの実施態様では、ルマ成分は、クロマ成分の所定のクロマ・サンプルをカバーする。一例では、所定のクロマ・サンプルは、クロマ成分の左上サンプルは中央サンプルである。
【0201】
幾つかの実施態様では、推定されるクロマ・イントラ・モードは、DMモードである。
【0202】
幾つかの実施形態では、推定されたクロマ・イントラ・モードはALWIPモードである。
【0203】
幾つかの実施形態では、ALWIPモードは現在のビデオ・ブロックの1つ以上のクロマ成分に適用される。
【0204】
幾つかの実施形態では、ALWIPモードの異なる行列又はバイアス・ベクトルが、現在のビデオ・ブロックの異なるカラー成分に適用される。一例では、異なる行列又はバイアス・ベクトルが、Cb及びCr成分に対して事前に一緒に定義される。別の例では、Cb及びCr成分は連結される。更に別の例では、Cb及びCr成分はインターリーブされる。
【0205】
図13は、ビデオ処理のための例示的な方法のフローチャートを示す。方法1300は、ステップ1302において、現在のビデオ・ブロックがアフィン線形重み付けイントラ予測(ALWIP)モードを使用してコーディングされることを決定するステップを含む。
【0206】
方法1300は、決定に基づいて、ステップ1304において、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0207】
幾つかの実施形態では、決定は、シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、スライス・ヘッダ、タイル・グループ・ヘッダ、タイル・ヘッダ、コーディング・ツリー・ユニット(CTU)の行又はCTU領域におけるシグナリングに基づく。
【0208】
幾つかの実施態様において、決定は、現在のビデオ・ブロックの高さ(H)又は幅(W)に基づく。一例では、W>T1又はH>T2である。別の例では、W≧T1又はH≧T2である。更に別の例では、W<T1又はH<T2である。更に別の例では、W≦T1又はH≦T2である。更に別の例では、T1=32及びT2=32である。
【0209】
幾つかの実施態様において、決定は、現在のビデオ・ブロックの高さ(H)又は幅(W)に基づく。一例では、W+H≦Tである。別の例では、W+H≧Tである。更に別の例では、W×H≦Tである。更に別の例では、W×H≧Tである。更に別の例では、T=256である。
【0210】
図14は、ビデオ処理のための例示的な方法のフローチャートを示す。方法1400は、ステップ1402において、現在のビデオ・ブロックが、アフィン線形重み付けイントラ予測(ALWIP)モードとは異なるコーディング・モードを使用してコーディングされることを決定するステップを含む。
【0211】
方法1400は、決定に基づいて、ステップ1404において、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0212】
幾つかの実施形態では、コーディング・モードは、組み合わせイントラ及びインター予測(CIIP)モードであり、方法1400は、ALWIPモードとノーマル・イントラ予測モードとの間で選択を実行するステップを更に含む。一例では、選択を実行するステップは、現在のビデオ・ブロックのビットストリーム表現における明示的なシグナリングに基づいている。別の例では、選択を実行するステップは、所定のルールに基づいている。更に別の例では、所定のルールは、現在のビデオ・ブロックがCIIPモードを使用してコーディングされる場合に、ALWIPモードを常に選択する。更に別の例では、所定のルールは、現在のビデオ・ブロックがCIIPモードを使用してコーディングされる場合に、ノーマル・イントラ予測モードを常に選択する。
【0213】
幾つかの実施態様において、コーディング・モードは、クロス・コンポーネント線形モデル(CCLM)予測モードである。一例では、ALWIPモードのダウンサンプリング手順は、CCLM予測モードのダウンサンプリング手順に基づいている。別の例では、ALWIPモードのダウンサンプリング手順は、パラメータの第1セットに基づいており、CCLM予測モードのダウンサンプリング手順は、パラメータの第1セットとは異なるパラメータの第2セットに基づいている。更に別の例では、ALWIPモード又はCCLM予測モードに対するダウンサンプリング手順は、ダウンサンプリングされた位置の選択、ダウンサンプリング・フィルタの選択、丸め処理又はクリッピング処理のうちの少なくとも1つを含む。
【0214】
幾つかの実施形態では、方法1400は、縮小二次変換(RST)、二次変換、回転変換、又はノン・セパラブル二次変換(NSST)のうちの1つ以上を適用するステップを更に含む。
【0215】
幾つかの実施形態では、方法1400は、ブロック・ベースの差分パルス符号化変調(DPCM)又は残差DPCMを適用するステップを更に含む。
【0216】
6 開示される技術の実装例
図15は、ビデオ処理装置1500のブロック図である。装置1500は、本願で説明される1つ以上の方法を実装するために使用されてもよい。装置1500は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機などで具体化されてもよい。装置1500は、1つ以上のプロセッサ1502、1つ以上のメモリ1504、及びビデオ処理ハードウェア1506を含んでもよい。プロセッサ1502は、本文書で説明される1つ以上の方法(方法1100ないし1400、及び2000ないし3800を含むが、これらに限定されない)を実装するように構成されてもよい。メモリ(memories)1504は、本願で説明される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてもよい。ビデオ処理ハードウェア1506は、ハードウェア回路において、本文書で説明される幾つかの技術を実装するために使用されてもよい。
【0217】
幾つかの実施形態では、ビデオ・コーディング方法は、
図15に関連して説明されるようなハードウェア・プラットフォーム上で実装される装置を使用して実装されてもよい。
【0218】
図16は、本願で開示される種々の技術が実装され得る例示的なビデオ処理システム1600を示すブロック図である。種々の実装は、システム1600の構成要素の一部又は全部を含んでもよい。システム1600は、ビデオ・コンテンツを受信するための入力1602を含んでもよい。ビデオ・コンテンツは、生の又は非圧縮のフォーマット、例えば、8又は10ビットの多重成分ピクセル値で受信されてもよいし、又は圧縮された又は符号化されたフォーマットで受信されてもよい。入力1602は、ネットワーク・インターフェース、周辺バス・インターフェース、又は記憶インターフェースを表現している可能性がある。ネットワーク・インターフェースの例は、イーサーネット、光受動ネットワーク(PON)などの有線インターフェースや、Wi-Fi又はセルラー・インターフェースのような無線インターフェースを含む。
【0219】
システム1600は、本文書で説明される種々のコーディング又は符号化方法を実装することが可能なコーディング構成要素1604を含んでもよい。コーディング構成要素1604は、入力1602からコーディング構成要素1604の出力までのビデオの平均ビットレートを低減して、ビデオのコーディングされた表現を生成することができる。従って、コーディング技術は、ビデオ圧縮又はビデオ・トランスコーディング技術と呼ばれることが間々ある。コーディング構成要素1604の出力は、記憶されてもよいし、あるいは構成要素1606によって表現されているように接続された通信を介して伝送されてもよい。入力1602で受信されたビデオの記憶又は通信されるビットストリーム(又はコーディングされた)表現は、ディスプレイ・インターフェース1610に送信されるピクセル値又は表示可能なビデオを生成するために、構成要素1608によって使用されてもよい。ビットストリーム表現から、ユーザーが視聴可能なビデオを生成するプロセスは、ビデオ解凍と呼ばれることが間々ある。更に、特定のビデオ処理操作は、「コーディングする」操作又はツールと称されるが、コーディング・ツール又は操作はエンコーダで使用され、コーディングの結果を逆向きに処理する対応する復号化ツール又は操作はデコーダで実行されることが理解されるであろう。
【0220】
周辺バス・インターフェース又はディスプレイ・インターフェースの例は、ユニバーサル・シリアル・バス(USB)又は高解像度マルチメディア・インターフェース(HDMI(登録商標))、ディスプレイポート(Displayport)などを含む可能性がある。ストレージ・インターフェースの例は、シリアル・アドバンスト・テクノロジ・アタッチメント(serial advanced technology attachment,SATA)、PCI、IDEインターフェースなどを含む。本文書で説明される技術は、携帯電話、ラップトップ、スマートフォン、又はその他のデバイスであって、デジタル・データ処理及び/又はビデオ表示を実行することが可能なデバイス、のような種々の電子デバイスで具体化されることが可能である。
【0221】
開示される技術の幾つかの実施形態は、ビデオ処理ツール又はモードを動作可能にする判断又は決定を行うことを含む。一例では、ビデオ処理ツール又はモードがイネーブルである場合に、エンコーダは、ビデオのブロックの処理においてツール又はモードを使用又は実装するであろうが、必ずしも、結果として生じるビットストリームをツール又はモードの使用に基づいて修正しない可能性がある。即ち、ビデオのブロックからビデオのビットストリーム表現への変換は、判断又は決定に基づいてイネーブルにされた場合に、ビデオ処理ツール又はモードを使用するであろう。別の例では、ビデオ処理ツール又はモードがイネーブルである場合には、デコーダは、ビットストリームがビデオ処理ツール又はモードに基づいて修正されている旨の情報とともに、ビットストリームを処理するであろう。即ち、ビデオのビットストリーム表現からビデオのブロックへの変換は、判断又は決定に基づいてイネーブルにされたビデオ処理ツール又はモードを使用して実行されるであろう。
【0222】
開示された技術の幾つかの実施形態は、ビデオ処理ツール又はモードをディセーブルにする判断又は決定を行うことを含む。一例では、ビデオ処理ツール又はモードがディセーブルにされる場合、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツール又はモードを使用しないであろう。別の例では、ビデオ処理ツール又はモードがディセーブルにされる場合、デコーダは、ビットストリームが、その判断又は決定に基づいてディセーブルにされたビデオ処理ツール又はモードを使用して修正されていない旨の情報とともに、ビットストリームを処理するであろう。
【0223】
図17は、本開示の技術を利用することが可能な例示的なビデオ・コーディング・システム100を示すブロック図である。
図17に示すように、ビデオ・コーディング・システム100は、送信元デバイス110及び送信先デバイス120を含む可能性がある。送信元デバイス110は、符号化されたビデオ・データを生成することが可能であり、ビデオ符号化デバイスと言及されてもよい。送信先デバイス120は、送信元デバイス110によって生成された符号化されたビデオ・データを復号可することが可能であり、ビデオ復号化デバイスと言及されてもよい。送信元デバイス110は、ビデオ・ソース112、ビデオ・エンコーダ114、及び入力/出力(I/O)インターフェース116を含むことが可能である。
【0224】
ビデオ・ソース112は、ビデオ・キャプチャ・デバイスのようなソース、ビデオ・コンテンツ・プロバイダーからビデオ・データを受信するためのインターフェース、及び/又はビデオ・データを生成するためのコンピュータ・グラフィックス・システム、又はそのようなソースの組み合わせを含んでもよい。ビデオ・データは、1つ以上のピクチャを含む可能性がある。ビデオ・エンコーダ114は、ビデオ・ソース112からのビデオ・データを符号化してビットストリームを生成する。ビットストリームは、ビデオ・データのコーディングされた表現を形成するビットのシーケンスを含む可能性がある。ビットストリームは、コーディングされたピクチャ及び関連するデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連するデータは、シーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、及び他の構文構造を含んでもよい。I/Oインターフェース116は、変調器/復調器(モデム)及び/又は送信機を含んでもよい。符号化されたビデオ・データは、ネットワーク130aを通じてI/Oインターフェース116を介して送信先デバイス120へ直接的に送信されてもよい。符号化されたビデオ・データはまた、送信先デバイス120によるアクセスのために記憶媒体/サーバー130b上に格納されてもよい。
【0225】
送信先デバイス120は、I/Oインターフェース126、ビデオ・デコーダ124、及びディスプレイ・デバイス122を含んでもよい。
【0226】
I/Oインターフェース126は、受信機及び/又はモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110又は記憶媒体/サーバー130bから、符号化されたビデオ・データを取得することができる。ビデオ・デコーダ124は、符号化されたビデオ・データを復号化することができる。ディスプレイ・デバイス122は、復号化されたビデオ・データをユーザーに表示することができる。ディスプレイ・デバイス122は、送信先デバイス120と一体化されてもよいし、又は送信先デバイス120の外部にあってもよく、その場合の送信先デバイスは外部ディスプレイ・デバイスとのインターフェースとなるように構成される。
【0227】
ビデオ・エンコーダ114及びビデオ・デコーダ124は、高効率ビデオ・コーディング(HEVC)規格、汎用ビデオ・コーディング(VVC)規格、及びその他の現行及び/又は将来の規格のようなビデオ圧縮規格に従って動作することができる。
【0228】
図18はビデオ・エンコーダ200の一例を示すブロック図であり、これは
図17に示すシステム100内のビデオ・エンコーダ114であってもよい。
【0229】
ビデオ・エンコーダ200は、本開示の技術の何れか又は全てを実行するように構成することができる。
図18の例では、ビデオ・エンコーダ200は、複数の機能的構成要素を含む。本開示で説明される技術は、ビデオ・エンコーダ200の種々の構成要素の間で共有されてもよい。幾つかの例において、プロセッサは、本開示で説明される技術の何れか又は全てを実行するように構成することができる。
【0230】
ビデオ・エンコーダ200の機能的な構成要素は、パーティション・ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含むことが可能な予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含むことが可能である。
【0231】
他の例では、ビデオ・エンコーダ200は、より多い、より少ない、又は異なる機能的な構成要素を含むことができる。一例では、予測ユニット202は、イントラ・ブロック・コピー(IBC)ユニットを含むことができる。IBCユニットはIBCモードで予測を実行することが可能であり、そのモードでは、少なくとも1つの参照ピクチャは現在のビデオ・ブロックが配置されているピクチャである。
【0232】
更に、動き推定ユニット204や動き補償ユニット205のような幾つかの構成要素は、高度に統合されていてもよいが、説明のために
図18の例では別々に表現されている。
【0233】
パーティション・ユニット201は、ピクチャを1つ以上のビデオ・ブロックにパーティション化することができる。ビデオ・エンコーダ200及びビデオ・デコーダ300は、様々なビデオ・ブロック・サイズをサポートすることができる。
【0234】
モード選択ユニット203は、コーディング・モードのうちの一方、インター又はイントラを、例えば誤り結果に基づいて選択し、その結果のイントラ・コーディング又はインター・コーディングされたブロックを、残差ブロック・データ生成のために残差生成ユニット207へ、及び参照ピクチャとして使用する符号化済みブロックの再構成のために再構成ユニット212へ提供する。幾つかの例では、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づいているイントラ&インター予測コンビネーション(CIIP)モードを選択することができる。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの解像度(例えば、サブ・ピクセル又は整数ピクセル精度)を選択することができる。
【0235】
現在のビデオ・ブロックに関してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在のビデオ・ブロックと比較することによって、現在のビデオ・ブロックの動き情報を生成することができる。動き補償ユニット205は、現在のビデオ・ブロックに関連するピクチャ以外のバッファ213からのピクチャの動き情報及び復号化されたサンプルに基づいて、現在のビデオ・ブロックについて予測されるビデオ・ブロックを決定することができる。
【0236】
動き推定ユニット204と動き補償ユニット205は、例えば、現在のビデオ・ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかどうかに依存して、現在のビデオ・ブロックに対して様々な処理を実行することができる。
【0237】
幾つかの例では、動き推定ユニット204は、現在のビデオ・ブロックに対して片-方向予測を実行することができ、動き推定ユニット204は、現在のビデオ・ブロックに対する参照ピクチャ・ブロックについて、リスト0又はリスト1の参照ピクチャを検索することができる。次いで、動き推定ユニット204は、参照ビデオ・ブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックスと、現在のビデオ・ブロック及び参照ビデオ・ブロックの間の空間的変位を示す動きンベクトルとを生成することができる。動き推定ユニット204は、参照インデックス、予測方向インジケータ、及び動きベクトルを、現在のビデオ・ブロックの動き情報として出力することができる。動き補償ユニット205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のブロックの予測されたビデオ・ブロックを生成することができる。
【0238】
他の例では、動き推定ユニット204は、現在のビデオ・ブロックに対して双-方向予測を実行することができ、動き推定ユニット204は、現在のビデオ・ブロックに対する参照ビデオ・ブロックについて、リスト0内の参照ピクチャを検索することができ、また、現在のビデオ・ブロックに対する別の参照ビデオ・ブロックについて、リスト1内の参照ピクチャを検索することができる。次いで、動き推定ユニット204は、参照ビデオ・ブロックを含むリスト0及びリスト1内の参照ピクチャを示す参照インデックスと、参照ビデオ・ブロック及び現在のビデオ・ブロックの間の空間的変位を示す動きベクトルとを生成することができる。動き推定ユニット204は、現在のビデオ・ブロックの動き情報として、現在のビデオ・ブロックの参照インデックスと動きベクトルを出力することができる。動き補償ユニット205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のビデオ・ブロックの予測されたビデオ・ブロックを生成することができる。
【0239】
幾つかの例では、動き推定ユニット204は、デコーダの復号化処理のための動き情報の完全なセットを出力することができる。
【0240】
幾つかの例では、動き推定ユニット204は、現在のビデオに対する動き情報の完全なセットを出力しない可能性がある。むしろ、動き推定ユニット204は、他のビデオ・ブロックの動き情報を参照して、現在のビデオ・ブロックの動き情報をシグナリングすることができる。例えば、動き推定ユニット204は、現在のビデオ・ブロックの動き情報が、隣接するビデオ・ブロックの動き情報と十分に類似していると判断することができる。
【0241】
一例では、動き推定ユニット204は、現在のビデオ・ブロックに関連するシンタックス構造において、現在のビデオ・ブロックが別のビデオ・ブロックと同じ動き情報を有することをビデオ・デコーダ300に指示する値を指定することができる。
【0242】
別の例では、動き推定ユニット204は、現在のビデオ・ブロックに関連するシンタックス構造において、別のビデオ・ブロック及び動きベクトル差分(MVD)を識別することができる。動きベクトル差分は、現在のビデオ・ブロックの動きベクトルと指定されたビデオ・ブロックの動きベクトルとの間の差分を示す。ビデオ・デコーダ300は、指定されたビデオ・ブロックの動きベクトルと動きベクトル差分とを使用して、現在のビデオ・ブロックの動きベクトルを決定することができる。
【0243】
上述したように、ビデオ・エンコーダ200は、動きベクトルを予測的にシグナリングすることができる。ビデオ・エンコーダ200によって実現され得る予測シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP)及びマージ・モード・シグナリングを含む。
【0244】
イントラ予測ユニット206は、現在のビデオ・ブロックに対してイントラ予測を実行することができる。イントラ予測ユニット206が現在のビデオ・ブロックに対してイントラ予測を実行する場合、イントラ予測ユニット206は、同じピクチャ内の他のビデオ・ブロックの復号化されたサンプルに基づいて、現在のビデオ・ブロックに対する予測データを生成することができる。現在のビデオ・ブロックに対する予測データは、予測されるビデオ・ブロックと種々のシンタックス要素を含んでもよい。
【0245】
残差生成ユニット207は、現在のビデオ・ブロックから、現在のビデオ・ブロックの予測されたビデオ・ブロックを減算することによって(例えば、マイナス符号で示される)、現在のビデオ・ブロックに対する残差データを生成することができる。現在のビデオ・ブロックの残差データは、現在のビデオ・ブロック内のサンプルの異なるサンプル成分に対応する残差ビデオ・ブロックを含んでもよい。
【0246】
他の例では、例えばスキップ・モードでは、現在のビデオ・ブロックに関し、現在のビデオ・ブロックに対する残差データが存在しない場合があり、残差生成ユニット207は減算処理を実行しない可能性がある。
【0247】
変換処理ユニット208は、現在のビデオ・ブロックに関連する残差ビデオ・ブロックに、1つ以上の変換を適用することによって、現在のビデオ・ブロックに対する1つ以上の変換係数ビデオ・ブロックを生成することができる。
【0248】
変換処理ユニット208が現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを生成した後、量子化ユニット209は、現在のビデオ・ブロックに関連する1つ以上の量子化パラメータ(QP)値に基づいて、現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを量子化することができる。
【0249】
逆量子化ユニット210及び逆変換ユニット211はそれぞれ逆量子化及び逆変換を変換係数ビデオ・ブロックに適用し、変換係数ビデオ・ブロックから残差ビデオ・ブロックを再構成することができる。再構成ユニット212は、再構成された残差ビデオ・ブロックを、予測ユニット202によって生成された1つ以上の予測されたビデオ・ブロックからの対応するサンプルに追加し、現在のブロックに関連する再構成されたビデオ・ブロックを生成して、バッファ213に記憶することができる。
【0250】
再構成ユニット212がビデオ・ブロックを再構成した後、ループ・フィルタリング動作を実行し、ビデオ・ブロック内のビデオ・ブロッキング・アーチファクトを低減することができる。
【0251】
エントロピー符号化ユニット214は、ビデオ・エンコーダ200の他の機能的な構成要素からデータを受信することができる。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化動作を実行して、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力することができる。
【0252】
図19は、ビデオ・デコーダ300の一例を示すブロック図であり、これは
図17に示すシステム100内のビデオ・デコーダ114であってもよい。
【0253】
ビデオ・デコーダ300は、本開示の技術の何れか又は全てを実行するように構成することができる。
図19の例では、ビデオ・デコーダ300は、複数の機能的構成要素を含む。本開示で説明される技術は、ビデオ・デコーダ300の種々の構成要素の間で共有されてもよい。幾つかの例において、プロセッサは、本開示で説明される技術の何れか又は全てを実行するように構成することができる。
【0254】
図19の例では、ビデオ・デコーダ300は、エントロピー復号化ユニット301と、動き補償ユニット302と、イントラ予測ユニット303と、逆量子化ユニット304と、逆変換ユニット305と、再構成ユニット306と、バッファ307とを含む。ビデオ・デコーダ300は、幾つかの例において、ビデオ・エンコーダ200(
図18)に関して説明した符号化経路と概ね逆の復号化経路を実行することができる。
【0255】
エントロピー復号化ユニット301は、符号化されたビットストリームを取り出すことができる。符号化されたビットストリームは、エントロピー符号化されたビデオ・データ(例えば、ビデオ・データの符号化されたブロック)を含むことができる。エントロピー復号化ユニット301は、エントロピー符号化されたビデオ・データを復号化することができ、エントロピー復号化されたビデオ・データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャ・リスト・インデックス、及び他の動き情報を含む動き情報を決定することができる。動き補償ユニット302は、例えば、AMVP及びマージ・モードを実行することによって、そのような情報を決定することができる。
【0256】
動き補償ユニット302は、おそらくは補間フィルタに基づいて補間を実行することによって、動き補償されたブロックを生成することができる。サブ・ピクセル精度で使用される補間フィルタのための識別子が、シンタックス要素に含まれてもよい。
【0257】
動き補償ユニット302は、ビデオ・ブロックの符号化中にビデオ・エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間された値を計算してもよい。動き補償ユニット302は、受信したシンタックス情報に従ってビデオ・エンコーダ200によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0258】
動き補償ユニット302は、シンタックス情報の一部を使用して、符号化されたビデオ・シーケンスのフレーム及び/又はスライスを符号化するために使用されるブロックのサイズ、符号化されたビデオ・シーケンスのピクチャの各マクロブロックがどのようにパーティション化されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを示すモード、インター符号化されたブロック各々に対する1つ以上の参照フレーム(及び参照フレーム・リスト)、及び符号化されたビデオ・シーケンスを復号化するための他の情報を決定することができる。
【0259】
イントラ予測ユニット303は、例えば、ビットストリームで受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成することができる。逆量子化ユニット303は、ビットストリーム内で提供される、エントロピー復号化ユニット301によって復号化される量子化されたビデオ・ブロック係数を、逆量子化する、即ち、量子化解除する。逆変換ユニット303は、逆変換を適用する。
【0260】
再構成ユニット306は、残差ブロックを、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックと合算して、復号化されたブロックを形成することができる。所望であれば、復号化されたブロックをフィルタリングしてブロック性アーチファクトを除去するために、デブロッキング・フィルタが適用されてもよい。次いで、復号化されたビデオ・ブロックはバッファ307に格納され、バッファ307は、後続の動き補償/イントラ予測のための参照ブロックを提供し、また、ディスプレイ・デバイスでの提示のために復号化されたビデオを生成する。
【0261】
幾つかの実施形態では、ビデオの以前にコーディングされたサンプルに対して境界ダウンサンプリング(又は平均化処理)を行い、行列ベクトル乗算処理を行った後に、選択的に(又はオプションとして)アップサンプリング処理(又は線形補間処理)を実行することによって、現在のビデオ・ブロックの予測ブロックを計算するために、ALWIPモード又はMIPモードが使用される。幾つかの実施形態では、ビデオの以前にコーディングされたサンプルに対して境界ダウンサンプリング(又は平均化処理)を行った後に、行列ベクトル乗算処理を実行することによって、現在のビデオ・ブロックの予測ブロックを計算するために、ALWIPモード又はMIPモードが使用される。幾つかの実施形態では、ALWIPモード又はMIPモードは、行列ベクトル乗算処理を実行した後に、アップサンプリング処理(又は線形補間処理)を実行することができる。
【0262】
図20は、マトリクス・ベースのイントラ予測のための例示的な方法2000の例示的なフローチャートを示す。オペレーション2002は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換に関し、第1最確モード(MPM)リストを第1手順を利用してルールに基づいて生成するステップを含む。オペレーション2004は、現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を第1MPMリストを使用して実行するステップを含み、現在のビデオ・ブロックの変換はマトリクス・ベースのイントラ予測(MIP)モードを使用し、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され、ルールは、第1MPMリストの生成に使用される第1手順は、MIPモードとは異なる非MIPイントラ・モードを使用してコーディングされるビデオの他のビデオ・ブロックの変換のための第2MPMリストの生成に使用される第2手順と同じであることを指定し、第1MPMリストの少なくとも一部分は第2MPMリストの少なくとも一部分に基づいて生成される。
【0263】
方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストのサイズは、非MIPイントラ・モードに対する第2MPMリストのサイズと同じである。 方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストのサイズ、及び非MIPイントラ・モードに対する第2MPMリストのサイズは、6である。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリストは、MIPモードに対する第1MPMリストが構成される前に構成される。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリストのうちの全部又は一部は、MIPモードに対する第1MPMリストの一部分に追加されるMPMに変換される。
【0264】
方法2000の幾つかの実施形態において、MPMのサブセットは、MPMをプルーニングすることによって、MIPモードに対する第1MPMリストの一部分に追加される。 幾つかの実施形態において、方法2000は、デフォルトのイントラ予測モードを、MIPモードに対する第1MPMリストに追加するステップを更に含む。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、非MIPイントラ・モードに対する第2MPMリストの一部分に基づくMIPモードに対する第1MPMリストの一部分の前において、MIPモードに対する第1MPMリストに追加される。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、非MIPイントラ・モードに対する第2MPMリストの一部分に基づくMIPモードに対する第1MPMリストの一部分の後において、MIPモードに対する第1MPMリストに追加される。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、非MIPイントラ・モードに対する第2MPMリストの一部分に基づくMIPモードに対する第1MPMリストの一部分と交互方式で、MIPモードに対する第1MPMリストに追加される。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、複数のタイプのビデオ・ブロックに対して同じである。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、現在のビデオ・ブロックのコーディングされた情報に基づいて決定される。方法2000の幾つかの実施形態において、コーディングされた情報は、隣接するビデオ・ブロックの利用可能性、隣接するビデオ・ブロックのモード情報、又は現在のビデオ・ブロックのブロック寸法を含む。
【0265】
方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の1つのイントラ予測モードは、MIPモードに対する第1MPMリストに追加される被変換MIPモードを取得するために、その対応するMIPモードに変換される。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の全てのイントラ予測モードは、MIPモードに対する第1MPMリストに追加される複数の被変換MIPモードを取得するために、その対応するMIPモードに変換される。方法2000の幾つかの実施形態において、全てのイントラ予測モードは、非MIPイントラ・モードに対する第2MPMリストを構成するために使用される複数の被変換MIPモードを取得するために、その対応するMIPモードに変換される。方法2000の幾つかの実施形態において、全てのイントラ予測モードは、現在のビデオ・ブロックの隣接するビデオ・ブロックからのイントラ予測モードとデフォルトのイントラ予測モードとを含む。方法2000の幾つかの実施形態において、デフォルトのイントラ予測モードは、平面モードと直流(DC)モードとを含む。
【0266】
方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の2つのイントラ予測モードは、2つの被変換MIPモードを取得するために、その対応するMIPモードに変換され、2つの被変換MIPモードのうちの1つは、2つの被変換MIPモードが同じであることに応じて、MIPモードに対する第1MPMリストに追加される。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の2つのイントラ予測モードは、2つの被変換MIPモードを取得するために、その対応するMIPモードに変換され、2つの被変換MIPモードのうちの1つは、2つの被変換MIPモードが同じであることに応じて、非MIPイントラ・モードに対する第2MPMリストに追加される。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリストは、S個のイントラ予測モードを含み、S個のうちのK個のイントラ予測モードは、MIPモードに対する第1MPMリストに含まれるように選択される。方法2000の幾つかの実施形態において、Kは3であり、Sは6である。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の最初のK個のイントラ予測モードは、MIPモードに対する第1MPMリストに含まれるように選択される。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストと非MIPイントラ・モードに対する第2MPMリストとは、現在のビデオ・ブロックの1つ以上の隣接するビデオ・ブロックに基づいて導出又は構成される。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストと非MIPイントラ・モードに対する第2MPMリストとは、現在のビデオ・ブロックの左に位置する同じ隣接するビデオ・ブロックに基づいて導出又は構成される。
【0267】
方法2000の幾つかの実施形態において、左に位置する同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの左正面にあり且つ現在のビデオ・ブロックと整列している。方法2000の幾つかの実施形態において、同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの左及び下にある。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストと非MIPイントラ・モードに対する第2MPMリストとは、同じ隣接するビデオ・ブロックに基づいて導出又は構成され、同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの左で最も下の位置にあるか、又は同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの上で最も右の位置にある。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストと非MIPイントラ・モードに対する第2MPMリストとは、現在のビデオ・ブロックの上に位置する同じ隣接するビデオ・ブロックに基づいて導出又は構成される。
【0268】
方法2000の幾つかの実施形態において、上に位置する同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの真上にあり且つ現在のビデオ・ブロックと整列している。方法2000の幾つかの実施形態において、同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの左及び上に位置する。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストと非MIPイントラ・モードに対する第2MPMリストとは、同じ隣接するビデオ・ブロックに基づいて導出又は構成され、同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの上で最も左の位置にあるか、又は同じ隣接するビデオ・ブロックは、現在のビデオ・ブロックの左で最も上の位置にある。方法2000の幾つかの実施形態において、 非MIPイントラ・モードは、イントラ予測モード、多重参照ライン(MRL)イントラ予測モード、又はイントラ・サブ・パーティション(ISP)ツールに基づいている。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストは、現在のビデオ・ブロックの高さ又は幅に更に基づいている。
【0269】
方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストは、現在のビデオ・ブロックの隣接するビデオ・ブロックの高さ又は幅に更に基づいている。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストは、パラメータの第1セットに基づいて構成され、パラメータの第1セットは、非MIPイントラ・モードに対する第2MPMリストを構成するために使用されるパラメータの第2セットとは異なる。方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリストは、S個のイントラ予測モードを含み、S個のうちのK個のイントラ予測モードは、MIPモードに対する第1MPMリストに含まれるように導出される。方法2000の幾つかの実施形態において、Kは3であり、Sは6である。
【0270】
方法2000の幾つかの実施形態において、非MIPイントラ・モードに対する第2MPMリスト内の最初のK個のイントラ予測モードは、MIPモードに対する第1MPMリストに含まれるように導出される。方法2000の幾つかの実施形態において、 MIPモードに対する第1MPMリスト内で列挙される第1モードは、非MIPイントラ・モードに対する第2MPMリスト内で列挙される第1モードとは異なる。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリスト内で列挙される第1モードは、第1モードであり、非MIPイントラ・モードに対する第2MPMリスト内で列挙される第1モードは、平面モードである。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリスト内の第1モードは、非MIPイントラ・モードに対する第2MPMリスト内の平面モードから変換される。
【0271】
方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストはスタッフィング・モードの第1セットを含み、スタッフィング・モードの第1セットは非MIPイントラ・モードに対する第2MPMリストに含まれるスタッフィング・モードの第2セットとは異なる。方法2000の幾つかの実施形態において、 スタッフィング・モードの第1セットは、第1モード、第2モード、及び第3モードを含み、スタッフィング・モードの第2セットは、直流(DC)モード、垂直モード、及び水平モードを含む。方法2000の幾つかの実施形態において、 第1モード、第2モード、及び第3モードは、現在のビデオ・ブロックのサイズに基づいて、スタッフィング・モードの第1セットに含まれる。方法2000の幾つかの実施形態において、 MIPモードに対する前記第1MPMリストは、現在のビデオ・ブロックの隣接するビデオ・ブロックのイントラ予測モードの第1セットを含み、非MIPイントラ・モードに対する第2MPMリストは、現在のビデオ・ブロックの隣接するビデオ・ブロックのイントラ予測モードの第2セットを含み、イントラ予測モードの第1セットはイントラ予測モードの第2セットと異なる。
【0272】
方法2000の幾つかの実施形態において、イントラ予測モードの第2セットは、イントラ予測モードの第1セットに含まれるMIPモードに変換されるイントラ予測モードを含む。方法2000の幾つかの実施形態において、MIPモードに対する第1MPMリストは、シフト・イントラ予測モードの第1セットを含み、非MIPイントラ・モードに対する第2MPMリストは、シフト・イントラ予測モードの第2セットを含み、シフト・イントラ予測モードの第1セットは、シフト・イントラ予測モードの第2セットと異なる。方法2000の幾つかの実施形態において、シフト・イントラ予測モードの第1セットは、第1式Y+K1に従ってMIPモード(Y)をK1だけシフトしたものを含み、シフト・イントラ予測モードの第2セットは、第2式X+K0に従って非MIPイントラ・モード(X)をK0だけシフトしたものを含み、K1はK0と異なる。方法2000の幾つかの実施形態において、K1は現在のビデオ・ブロックの幅と高さに依存する。
【0273】
幾つかの実施形態において、方法2000は、現在のビデオ・ブロックの隣接するビデオ・ブロックは非MIPイントラ・モードでコーディングされる旨の第1判定を行うステップ;及び第1判定に応じて、隣接するビデオ・ブロックは、MIPモードに対する第1MPMリストの構成に利用可能でない旨の第2判定を行うステップを更に含む。
【0274】
幾つかの実施形態において、方法2000は、 現在のビデオ・ブロックの隣接するビデオ・ブロックは非MIPイントラ・モードでコーディングされる旨の第1判定を行うステップ;及び第1判定に応じて、隣接するビデオ・ブロックは、事前に決定されるMIPイントラ予測モードでコーディングされる旨の第2判定を行うステップであって、MIPモードに対する第1MPMリストは、事前に決定されるMIPイントラ予測モードを使用して構成される、ステップを更に含む。方法2000の幾つかの実施形態において、事前に決定されるMIPイントラ予測モードは、現在のビデオ・ブロックの幅及び/又は高さに依存する。
【0275】
図21は、マトリクス・ベースのイントラ予測のための例示的な方法2100の例示的なフローチャートを示す。オペレーション2102は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換に関し、最確モード(MPM)リストをルールに基づいて生成するステップを含み、ルールは現在のビデオ・ブロックの隣接するビデオ・ブロックがマトリクス・ベースのイントラ予測(MIP)モードでコーディングされるかどうかに基づいており、MIPモードにおいては、隣接するビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション2104は、現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換をMPMリストを使用して実行するステップを含み、変換は非MIPモードを現在のビデオ・ブロックに適用し、非MIPモードはMIPモードとは異なる。
【0276】
方法2100の幾つかの実施形態において、ルールは、MIPモードでコーディングされた隣接するビデオ・ブロックは、非MIPモードでコーディングされた現在のビデオ・ブロックに対するMPMリストを生成するためには利用可能でないものとして取り扱われる。方法2100の幾つかの実施形態において、ルールは、MIPモードでコーディングされた隣接するビデオ・ブロックは事前に定められたイントラ予測モードでコーディングされるように決定されることを指定している。方法2100の幾つかの実施形態において、ルールは、事前に定められたイントラ予測モードは平面モードを含むことを指定している。
【0277】
図22は、マトリクス・ベースのイントラ予測のための例示的な方法2200の例示的なフローチャートを示す。オペレーション2202は、現在のビデオ・ブロックのコーディングされた表現におけるコーディングされたビデオの現在のビデオ・ブロックを、マトリクス・ベースのイントラ予測(MIP)モードを使用して復号化するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション2204は、現在のビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを示す情報をライン・バッファに記憶することなく、復号化に関連するライン・バッファを更新するステップを含む。
【0278】
幾つかの実施形態では、方法2200は、ビデオの第2ビデオ・ブロックにアクセスするステップを更に含み、第2ビデオ・ブロックは、現在のビデオ・ブロックを復号化する前に復号化され、第2ビデオ・ブロックは、現在のビデオ・ブロックのものと比較した場合に、異なる最大コーディング・ユニット(LCU)又はコーディング・ツリー・ユニット(CTU)行又はCTU領域に位置し、現在のビデオ・ブロックは、第2ビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを決定することなく復号化される。幾つかの実施形態において、方法2200は、第2ビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを決定することなく、第2ビデオ・ブロックが非MIPイントラ・モードを使用してコーディングされることを決定することによって、第2ビデオ・ブロックにアクセスするステップであって、第2ビデオ・ブロックは、現在のビデオ・ブロックのものとは異なる最大コーディング・ユニット(LCU)又はコーディング・ツリー・ユニット(CTU)行又はCTU領域に位置する、ステップ;及び、第2ビデオ・ブロックにアクセスすることに基づいて、現在のビデオ・ブロックを復号化するステップを更に含む。
【0279】
図23は、マトリクス・ベースのイントラ予測のための例示的な方法2300の例示的なフローチャートを示す。オペレーション2302は、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、現在のビデオ・ブロックは、マトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされ、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され、ここで、算術符号化又は復号化プロセスにおける高々K個のコンテキストをして、フラグはビットストリーム表現にコーディングされ、フラグは、現在のビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを示し、Kはゼロ以上である。方法2300の幾つかの実施形態において、Kは1である。方法2300の幾つかの実施形態において、Kは4である。
【0280】
図24は、マトリクス・ベースのイントラ予測のための例示的な方法2400の例示的なフローチャートを示す。オペレーション2402は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換に関し、マトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされる現在のビデオ・ブロックに対するイントラ予測モードを生成するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション2404は、現在のビデオ・ブロックはMIPモードでコーディングされるかどうかに基づいてイントラ予測モードを示す情報を記憶するルールを決定するステップを含む。オペレーション2406は、ルールに従って変換を実行するステップを含み、ルールは、イントラ予測モードに対するシンタックス要素が現在のビデオ・ブロックに対するビットストリーム表現に保存されることを定義し、ルールは、現在のビデオ・ブロックに対するMIPモードのモード・インデックスがビットストリーム表現に保存されないことを定義する。
【0281】
方法2400の幾つかの実施形態において、MIPモードのモード・インデックスは、イントラ予測モードに関連付けられる。方法2400の幾つかの実施形態において、ルールは、ビットストリーム表現は、現在のビデオ・ブロックがMIPモードでコーディングされることを示すフラグを除外することを定義する。方法2400の幾つかの実施形態において、ルールは、ビットストリーム表現が現在のビデオ・ブロックに関連するMIPモードを示す情報の記憶を排除することを定義する。方法2400の幾つかの実施形態において、方法2400は、変換後に、ビデオの第2ビデオ・ブロックと第2ビデオ・ブロックのビットストリーム表現との間で第2変換を実行するステップを更に含み、第2ビデオ・ブロックは、現在のビデオ・ブロックの隣接するビデオ・ブロックであり、第2変換は、第2ビデオ・ブロックがMIPモードを使用してコーディングされるかどうかを決定することなく実行される。
【0282】
図25は、マトリクス・ベースのイントラ予測のための例示的な方法2500の例示的なフローチャートを示す。オペレーション2502は、ビデオのルマ・ビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされる旨の第1判定を行うステップを含み、MIPモードにおいては、ルマ・ビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション2504は、第1判定に基づいて、ルマ・ビデオ・ブロックに関連付けられるクロマ・ビデオ・ブロックに対して使用されるべきクロマ・イントラ・モードに関する第2判定を行うステップを含む。オペレーション2506は、第2判定に基づいて、クロマ・ビデオ・ブロックとクロマ・ビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0283】
方法2500の幾つかの実施形態において、第2判定を行うステップは、シグナリングに依存することなく、クロマ・イントラ・モードが導出モード(Derived Mode, DM)であると判定するステップを含む。方法2500の幾つかの実施形態において、ルマ・ビデオ・ブロックは、クロマ・ビデオ・ブロックの所定の対応するクロマ・サンプルをカバーする。方法2500の幾つかの実施形態において、 所定の対応するクロマ・サンプルは、クロマ・ビデオ・ブロックの左上サンプル又は中央サンプルである。方法2500の幾つかの実施形態において、クロマ・イントラ・モードは、導出モード(DM)を含む。方法2500の幾つかの実施形態において、DMは、ルマ・ビデオ・ブロックの第2イントラ予測モードから、クロマ・ビデオ・ブロックの第1イントラ予測モードを導出するために使用される。方法2500の幾つかの実施形態において、ルマ・ビデオ・ブロックに関連するMIPモードは、予め定義されたイントラ・モードにマッピングされる。
【0284】
方法2500の幾つかの実施形態において、ルマ・ビデオ・ブロックはMIPモードでコーディングされる旨の第1判定に応答して、複数の導出モード(DM)が導出される。方法2500の幾つかの実施形態において、クロマ・イントラ・モードは、指定されたイントラ予測モードを含む。方法2500の幾つかの実施形態において、予め定義されたイントラ・モード又は指定されたイントラ・モードは、Planarモードである。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは、MIPモードを使用してコーディングされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは、第2クロマ・ビデオ・ブロックの第2行列又は第2バイアス・ベクトルとは異なる第1行列又は第1バイアス・ベクトルを使用してコーディングされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは青色成分であり、第1行列又は第1バイアス・ベクトルは、青色成分に対して予め定義されており、第2クロマ・ビデオ・ブロックは赤色成分であり、第2行列又は第2バイアス・ベクトルは、赤色成分に対して予め定義されている。
【0285】
方法2500の幾つかの実施形態において、青色成分と赤色成分は連結される。方法2500の幾つかの実施形態において、青色成分及び赤色成分はインターリーブされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは、ルマ・ビデオ・ブロックに使用されるMIPモードと同じMIPモードを使用してコーディングされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは、導出モード(DM)を使用してコーディングされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックがMIPモードを使用してコーディングされた後、アップサンプリング処理(又は線形補間技術)はスキップされる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは、サブサンプリングされた行列及び/又はバイアス・ベクトルを使用するMIPモードでコーディングされる。方法2500の幾つかの実施形態において、ルマ・ビデオ・ブロック及びクロマ・ビデオ・ブロックに対するMIPモード数は異なる。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロックは第1数のMIPモードに関連し、ルマ・ビデオ・ブロックは第2数のMIPモードに関連し、MIPモードの第1数はMIPモードの第2数よりも小さい。方法2500の幾つかの実施形態において、クロマ・ビデオ・ブロック及びルマ・ビデオ・ブロックは、同じサイズを有する。
【0286】
図26は、マトリクス・ベースのイントラ予測のための例示的な方法2600の例示的なフローチャートを示す。オペレーション2602は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのコーディングされた表現との間の変換を実行するステップを含み、変換は、マトリクス・ベースのイントラ予測(MIP)モードを使用して現在のビデオ・ブロックをコーディングするかどうかの判定に基づいており(又は判定することに基づいており)、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。
【0287】
方法2600の幾つかの実施形態において、現在のビデオ・ブロックはMIPモードでコーディングされるべきである旨の判定に応答して、シンタックス要素が、コーディングされた表現に含められ、シンタックス要素は現在のビデオ・ブロックをコーディングするためのMIPモードの使用を示す。方法2600の幾つかの実施形態において、コーディングされた表現は、MIPモードが現在のビデオ・ブロックに対してイネーブル又はディセーブルにされていることを示すシンタックス要素を含み、シンタックス要素は、現在のビデオ・ブロックをコーディングするためにMIPモードが許容されるか又は許容されないかを示す。方法2600の幾つかの実施形態において、シンタックス要素は、現在のビデオ・ブロックがMIPモードでコーディングされるべきでない旨の判定に応答して、コーディングされた表現に含められず、シンタックス要素は、現在のビデオ・ブロックに対してMIPモードが使用されるかどうかを示す。
【0288】
方法2600の幾つかの実施形態において、MIPモードをイネーブルにすることを示す第2シンタックス要素は、シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、スライス・ヘッダ、タイル・グループ・ヘッダ、タイル・ヘッダ、コーディング・ツリー・ユニット(CTU)行、又はCTU領域に更に含まれる。方法2600の幾つかの実施形態において、変換のためにMIPモードを使用するかどうかの判定は、現在のビデオ・ブロックの高さ(H)及び/又は幅(W)に基づく。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W≧T1及びH≧T2であることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W≦T1及びH≦T2であることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W≧T1又はH≧T2であることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W≦T1又はH≦T2であることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、T1=32及びT2=32である。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W+H≧Tであることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W+H≦Tであることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W×H≧Tであることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、現在のビデオ・ブロックは、W×H≦Tであることに応答して、MIPモードを使用してコーディングされないように決定される。方法2600の幾つかの実施形態において、 T=256である。
【0289】
図27Aは、マトリクス・ベースのイントラ予測のための例示的なビデオ符号化方法2700Aの例示的なフローチャートを示す。オペレーション2702Aは、ビデオの現在のビデオ・ブロックを現在のビデオ・ブロックのビットストリーム表現に符号化するために、マトリクス・ベースのイントラ予測(MIP)モード及びMIPモードとは異なるコーディング・モードを、現在のビデオ・ブロックを符号化するために使用するかどうかをルールに従って決定するステップであって、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む。オペレーション2704は、決定に基づいて、現在のビデオ・ブロックの符号化された表現をビットストリーム表現に加えるステップを含む。
【0290】
図27Bは、マトリクス・ベースのイントラ予測のための例示的なビデオ復号化方法2700Bの例示的なフローチャートを示す。オペレーション2702Bは、ビデオの現在のブロックはマトリクス・ベースのイントラ予測(MIP)モード及びMIPとは異なるコーディング・モードを使用してビットストリーム表現に符号化されることを決定するステップを含み、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む。オペレーション2704Bは、ビットストリーム表現を分析及び復号化することによって、現在のビデオ・ブロックの復号化された表現を生成するステップを含む。
【0291】
方法2700A及び/又は2700Bの幾つかの実施形態において、コーディング・モードは、組み合わせイントラ&インター予測(CIIP)モードであり、方法は、MIPモードとイントラ予測モードとの間で選択を実行することによって、現在のビデオ・ブロックのイントラ予測信号を生成するステップを更に含む。方法2700A及び/又は2700Bの幾つかの実施形態において、選択を実行することは、現在のビデオ・ブロックのビットストリーム表現におけるシグナリングに基づく。方法2700A及び/又は2700Bの幾つかの実施形態において、選択を実行することは、所定のルールに基づく。方法2700A及び/又は2700Bの幾つかの実施形態において、所定のルールは、現在のビデオ・ブロックがCIIPモードを使用してコーディングされることに応答して、MIPモードを選択する。方法2700A及び/又は2700Bの幾つかの実施形態において、所定のルールは、現在のビデオ・ブロックがCIIPモードを使用してコーディングされることに応答して、イントラ予測モードを選択する。方法2700A及び/又は2700Bの幾つかの実施形態において、所定のルールは、現在のビデオ・ブロックがCIIPモードを使用してコーディングされることに応答して、Planarモードを選択する。方法2700A及び/又は2700Bの幾つかの実施形態において、選択を実行することは、現在のビデオ・ブロックの隣接するビデオ・ブロックに関連する情報に基づく。
【0292】
方法2700A及び/又は2700Bの幾つかの実施形態において、コーディング・モードは、クロス・コンポーネント線形モデル(CCLM)予測モードである。方法2700A及び/又は2700Bの幾つかの実施形態において、MIPモードで現在のビデオ・ブロックの隣接するサンプルをダウンサンプリングするための第1ダウンサンプリング手順は、現在のビデオ・ブロックの隣接するルマ・サンプルがダウンサンプリングされるCCLM予測モードに関する第2ダウンサンプリング手順の少なくとも一部分を使用する。方法2700A及び/又は2700Bの幾つかの実施形態において、 CCLM予測モードで現在のビデオ・ブロックの隣接するサンプルをダウンサンプリングするための第1ダウンサンプリング手順は、現在のビデオ・ブロックの隣接するルマ・サンプルがダウンサンプリングされるMIP予測モードに関する第2ダウンサンプリング手順の少なくとも一部分を使用する。方法2700A及び/又は2700Bの幾つかの実施形態において、MIPモードに関する第1ダウンサンプリング手順は、第1セットのパラメータに基づいており、CCLM予測モードに関する第1ダウンサンプリング手順は、第1セットのパラメータとは異なる第2セットのパラメータに基づいている。
【0293】
方法2700A及び/又は2700Bの幾つかの実施形態において、MIPモードのための第1ダウンサンプリング手順及びCCLM予測モードのための第2ダウンサンプリング手順は、隣接するルマ位置の選択又はダウンサンプリング・フィルタの選択を含む。方法2700A及び/又は2700Bの幾つかの実施形態において、隣接するルマ・サンプルは、ダウンサンプリングされた位置の選択、ダウンサンプリング・フィルタの選択、丸め処理又はクリッピング処理のうちの少なくとも1つを使用してダウンサンプリングされる。方法2700A及び/又は2700Bの幾つかの実施形態において、ルールは、ブロック・ベースの差分パルス符号化変調(BDPCM)又は残差DPCMがMIPモードでコーディングされる現在のビデオ・ブロックには適用されないことを定義している。方法2700A及び/又は2700Bの幾つかの実施形態において、ルールは、ブロック・ベースの差分パルス符号化変調(BDPCM)又は残差DPCMを適用することに応答して、MIPモードは現在のビデオ・ブロックへの適用を許容していないことを定義している。
【0294】
図28は、マトリクス・ベースのイントラ予測のための例示的な方法2800の例示的なフローチャートを示す。オペレーション2802は、ビデオ及び現在のビデオ・ブロックのコーディングされた表現の間の変換において、ビデオの現在のビデオ・ブロックの再構成されたブロックに対するループ・フィルタの適用性に関する判定を行うステップを含み、現在のビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされ、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション2804は、判定に従って現在のビデオ・ブロックを処理するステップを含む。
【0295】
方法2800の幾つかの実施形態において、ループ・フィルタは、デブロッキング・フィルタを含む。方法2800の幾つかの実施形態において、ループ・フィルタは、サンプル適応オフセット(SAO)を含む。方法2800の幾つかの実施形態において、ループ・フィルタは、適応ループ・フィルタ(ALF)を含む。
【0296】
図29Aは、マトリクス・ベースのイントラ予測のための例示的なビデオ符号化方法2900Aの例示的なフローチャートを示す。オペレーション2902Aは、ビデオの現在のビデオ・ブロックを現在のビデオ・ブロックのビットストリーム表現に符号化するために、使用すべき現在のビデオ・ブロックの隣接するサンプルのタイプをルールに従って決定するステップを含む。オペレーション2904Aは、決定に基づいて、現在のビデオ・ブロックの符号化された表現をビットストリーム表現に追加するステップを含み、現在のビデオ・ブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用して符号化され、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。
【0297】
図29Bは、マトリクス・ベースのイントラ予測のための例示的なビデオ復号化方法2900Bの例示的なフローチャートを示す。オペレーション2902Bは、ビデオの現在のビデオ・ブロックは、マトリクス・ベースのイントラ予測(MIP)モードを使用して、及び現在のビデオ・ブロックの隣接するサンプルのタイプを使用して、ビットストリーム表現に符号化されていることをルールに従って判定するステップを含み、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含む。オペレーション2904Bは、ビットストリーム表現を分析及び復号化することによって、現在のビデオ・ブロックの復号化された表現を生成するステップを含む。
【0298】
方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、隣接するサンプルのタイプは、フィルタリングされていない隣接するサンプルであることを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、フィルタリングされていない隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング・プロセスに使用されることを定義しており、ルールは、フィルタリングされていない隣接するサンプルを含む隣接するサンプルのタイプが、ダウンサンプリング・プロセスに使用されることを定義しており、ルールは、フィルタリングされていない隣接するサンプルを含む隣接するサンプルのタイプが、行列ベクトル乗算処理に使用されることを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、隣接するサンプルのタイプが隣接するサンプルをフィルタリングすることを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、フィルタリングされていない隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義しており、ルールは、フィルタリングされた隣接するサンプルを含む隣接するサンプルのタイプが、ダウンサンプリング技術のために使用されることを定義している。
【0299】
方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、フィルタリングされていない隣接するサンプルを含む隣接するサンプルのタイプが、ダウンサンプリング技術のために使用されことを定義しており、ルールは、フィルタリングされた隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、フィルタリングされていない上に隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義しており、ルールは、フィルタリングされた左に隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、ルールは、フィルタリングされていない左に隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義しており、ルールは、フィルタリングされた上に隣接するサンプルを含む隣接するサンプルのタイプが、アップサンプリング技術のために使用されることを定義している。
【0300】
方法2900A及び/又は2900Bの幾つかの実施形態において、隣接するサンプルのタイプは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルを含み、ルールは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルが使用されるかどうかは、現在のビデオ・ブロックのMIPモードに基づくことを定義している。
【0301】
幾つかの実施形態において、方法2900A及び/又は2900Bは、MIPモードをイントラ予測モードに変換するステップを更に含み、隣接するサンプルのタイプは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルを含み、ルールは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルが使用されるかどうかは、イントラ予測モードに基づくことを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、隣接するサンプルのタイプは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルを含み、ルールは、フィルタリングされていない隣接するサンプル又はフィルタリングされた隣接するサンプルが使用されるかどうかは、シンタックス要素又はシグナリングに基づくことを定義している。方法2900A及び/又は2900Bの幾つかの実施形態において、フィルタリングされた隣接するサンプル、又はフィルタリングされた左に隣接するサンプル、又はフィルタリングされた上に隣接するサンプルは、イントラ予測モードを使用して生成される。
【0302】
図30は、マトリクス・ベースのイントラ予測のための例示的な方法3000の例示的なフローチャートを示す。オペレーション3002は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、変換は、マトリクス・ベースのイントラ予測(MIP)モードを使用して、サンプルの行列を使用する行列乗算を選択及び適用することによって、及び/又は現在のビデオ・ブロックに対するオフセット・ベクトルを使用するオフセットを選択及び加算することによって、現在のビデオ・ブロックに対する予測ブロックを生成することを含み、サンプルは、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得され、選択は、現在のビデオ・ブロックの参照ピクチャに関して、クロマ・スケーリングを伴うルマ・マッピング(LMCS)技術を適用することに関連付けられるリシェイピング情報に基づいている。方法3000の幾つかの実施形態において、リシェイピング技術が参照ピクチャに対してイネーブルにされている場合、リシェイピング情報は行列及び/又はオフセット・ベクトルに関連付けられ、その行列及び/又はオフセット・ベクトルは、参照ピクチャに対してリシェイピング技術がディセーブルにされる場合にリシェイピング情報に関連付けられるものとは異なる。方法3000の幾つかの実施形態において、異なる行列及び/又はオフセット・ベクトルが、リシェイピング情報の異なるリシェイピング・パラメータのために使用される。方法3000の幾つかの実施形態において、変換を実行することは、オリジナル・ドメイン内でMIPモードを使用して、現在のビデオ・ブロックに関してイントラ予測を実行することを含む。方法3000の幾つかの実施形態において、方法3000の幾つかの実施形態では、現在のビデオ・ブロックの隣接するサンプルは、リシェイピング情報を適用することに応答して、オリジナル・ドメインにマッピングされ、ここで、隣接するサンプルは、MIPモードで使用される前に、オリジナル・ドメインにマッピングされる。
【0303】
図31は、マトリクス・ベースのイントラ予測のための例示的な方法3100の例示的なフローチャートを示す。オペレーション3102は、現在のブロックはマトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされるべきであると決定するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション3104は、決定に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、変換を実行することは、MIPモード及び他のコーディング技術の共同適用のルールに基づいている。
【0304】
方法3100の幾つかの実施形態において、ルールは、MIPモード及び別のコーディング技術が相互に排他的に使用されることを規定している。方法3100の幾つかの実施形態において、ルールは、別のコーディング技術が、ハイ・ダイナミック・レンジ(HDR)技術又はリシェイピング技術であることを規定している。
【0305】
図32は、マトリクス・ベースのイントラ予測のための例示的な方法3200の例示的なフローチャートを示す。オペレーション3202は、マトリクス・ベースのイントラ予測(MIP)モードを使用して、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含み、MIPモードを使用して変換を実行することは、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得されるサンプルの行列を使用する行列乗算を適用することによって、予測ブロックを生成することを含み、行列はサンプルのビット深度に依存している。
【0306】
図33は、マトリクス・ベースのイントラ予測のための例示的な方法3300の例示的なフローチャートを示す。オペレーション3302は、ビデオの現在のビデオ・ブロックに関し、マトリクス・ベースのイントラ予測(MIP)モードを使用して中間予測信号を生成するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション3304は、中間予測信号に基づいて、最終予測信号を生成するステップを含む。オペレーション3306は、最終予測信号に基づいて、現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を実行するステップを含む。
【0307】
方法3300の幾つかの実施形態において、最終予測信号を生成することは、位置依存イントラ予測コンビネーション(PDPC)を中間予測信号に適用することによって実行される。方法3300の幾つかの実施形態において、最終予測信号を生成することは、MIPモードを用いて、ビデオの以前にコーディングされたサンプルを生成することによって、及び現在のビデオ・ブロックの隣接するサンプルを用いて、以前にコーディングされたサンプルをフィルタリングすることによって実行される。
【0308】
図34は、マトリクス・ベースのイントラ予測のための例示的な方法3400の例示的なフローチャートを示す。オペレーション3402は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み、変換を実行することは、MIPモードに対するアップサンプリング処理において補間フィルタを使用することを含み、MIPモードにおいて、ビデオの以前にコーディングされたサンプルの行及び列に関する平均から取得されるサンプルの第1セットに、行列乗算が適用され、行列乗算から取得されるサンプルの第2セットに補間フィルタが適用され、補間フィルタは双一次補間フィルタを除外している。
【0309】
方法3400の幾つかの実施形態において、補間フィルタは4タップ補間フィルタを含む。方法3400の幾つかの実施形態において、現在のビデオ・ブロックのクロマ成分の動き補償は、4タップ補間フィルタを使用して実行される。方法3400の幾つかの実施形態において、現在のビデオ・ブロックの角度イントラ予測は、4タップ補間フィルタを使用して実行される。方法3400の幾つかの実施形態において、補間フィルタは、8タップ補間フィルタを含み、現在のビデオ・ブロックのルマ成分の動き補償は、8タップ補間フィルタを使用して実行される。
【0310】
図35は、マトリクス・ベースのイントラ予測のための例示的な方法3500の例示的なフローチャートを示す。オペレーション3502は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換をルールに従って実行するステップを含み、ルールは、変換中におけるマトリクス・ベースのイントラ予測(MIP)モード又は変換モードの適用関係を指定し、MIPモードは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって、現在のビデオ・ブロックの予測ブロックを決定することを含み、変換モードは、現在のビデオ・ブロックに対する予測ブロックを決定するために変換処理の使用を指定している。
【0311】
方法3500の幾つかの実施形態において、変換モードは、縮小二次変換(RST)、二次変換、回転変換、又はノン・セパラブル二次変換(NSST)を含む。方法3500の幾つかの実施形態において、ルールは、MIPモードが現在のビデオ・ブロックに適用されることに応答して、変換モードを使用する変換処理は適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、現在のビデオ・ブロックの高さ(H)又は幅(W)に基づいて、変換モードを使用して変換処理を適用するかどうかを指定している。方法3500の幾つかの実施形態において、ルールは、W≧T1及びH≧T2であることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W≦T1及びH≦T2であることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W≧T1又はH≧T2であることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W≦T1又はH≦T2であることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、T=32及びT2=32である。方法3500の幾つかの実施形態において、ルールは、W+H≧Tであることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W+H≦Tであることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W×H≧Tであることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、ルールは、W×H≦Tであることに応答して、変換モードを使用する変換処理は現在のビデオ・ブロックに適用されないことを指定している。方法3500の幾つかの実施形態において、T=256である。
【0312】
方法3500の幾つかの実施形態において、ルールは、現在のビデオ・ブロックがMIPモードでコーディングされることに応答して、変換モードを使用する変換処理が適用されることを指定している。方法3500の幾つかの実施形態において、変換処理のための変換行列又はカーネルの選択は、現在のビデオ・ブロックがMIPモードでコーディングされることに基づいている。実施形態において、方法3500は、MIPモードをイントラ予測モードに変換するステップと、変換されたイントラ予測モードに基づいて、変換行列又はカーネルを選択するステップとを更に含む。幾つかの実施形態において、方法3500は、MIPモードをイントラ予測モードに変換するステップと、変換されたイントラ予測モードの分類に基づいて、変換行列又はカーネルを選択するステップとを更に含む。方法3500の幾つかの実施形態において、変換されたイントラ予測モードは、平面モードを含む。
【0313】
方法3500の幾つかの実施形態において、ルールは、MIPモードが現在のビデオ・ブロックに適用されることを許容されていない場合に、変換モードを使用する変換処理が現在のビデオ・ブロックに適用されることを指定している。方法3500の幾つかの実施形態において、ルールは、離散コサイン変換タイプII(DCT-II)変換コーディング技術が、MIPモードを使用してコーディングされる現在のビデオ・ブロックに適用されることを指定している。方法3500の幾つかの実施形態において、現在のビデオ・ブロックのビットストリーム表現は、DCT-II変換コーディング技術のための変換行列インデックスのシグナリングを除外する。方法3500の幾つかの実施形態において、変換を実行することは、DCT-II変換コーディング技術によって使用される変換行列を導出することを含む。方法3500の幾つかの実施形態において、ビットストリーム表現は、変換行列の指示の後にシグナリングされるMIPモードに関連する情報を含む。
【0314】
方法3500の幾つかの実施形態において、ビットストリーム表現は、変換行列に対するMIPモードの指示を含む。方法3500の幾つかの実施形態において、ルールは、ビットストリーム表現が、予め定義された変換行列に対するMIPモードの指示を除外することを指定している。方法3500の幾つかの実施形態において、ルールは、現在のビデオ・ブロックがMIPモードでコーディングされることに応答して、変換スキップ技術を用いた変換処理が、ビデオ・ブロックに適用されることを指定している。方法3500の幾つかの実施形態において、現在のビデオ・ブロックがMIPモードでコーディングされる場合、現在のビデオ・ブロックのビットストリーム表現は、 変換スキップ技術のシグナリングを除外する。方法3500の幾つかの実施形態において、ルールは、モード依存性の変換行列又はカーネルを選択することによって変換処理が実行される場合に、MIPモードでコーディングされる現在のビデオ・ブロックに関し、MIPモードは予め定義されたイントラ予測モードに変換されることを指定している。方法3500の幾つかの実施形態において、ルールは、変換スキップ技術を使用する変換処理が、MIPモードでコーディングされる現在のビデオ・ブロックに対して許可されないことを指定している。方法3500の幾つかの実施形態において、ビットストリーム表現は、変換スキップ技術の使用を示すシグナリングを除外している。方法3500の幾つかの実施形態において、ルールは、MIPモードでコーディングされていない現在のビデオ・ブロックに対して、変換スキップ技術を使用する変換処理が許容されることを指定している。方法3500の幾つかの実施形態において、ビットストリーム表現は、MIPモードを使用することを示すシグナリングを除外している。
【0315】
図36は、マトリクス・ベースのイントラ予測のための例示的な方法3600の例示的なフローチャートを示す。オペレーション3602は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され、変換を実行することは、少なくとも1つの参照境界サンプルの合計に左ビット・シフト処理又は右ビット・シフト処理を適用することによって、境界サンプルをルールに従って導出することを含み、ルールは、左ビット・シフト処理又は右ビット・シフト処理を適用するかどうかを決定する。
【0316】
方法3600の幾つかの実施形態において、ルールは、シフトされるビット数がビットがゼロ以上であることに応答して、右ビット・シフト処理が適用されることを定義している。方法3600の幾つかの実施形態において、ルールは、シフトされるビット数がゼロよりも大きいことに応答して、右ビット・シフト処理は第1技法を使用して適用されることを定義しており、ルールは、シフトされるビット数がゼロに等しいことに応答して、右ビット・シフト処理は第2技法を使用して適用されることを定義しており、第1技法は第2技法とは異なる。
方法3600の幾つかの実施形態において、境界サンプルupsBdryX[x]は、以下のうちの1つの式を使用して計算され:
【0317】
【数27】
ここで、uDwnは現在のビデオ・ブロック・サイズと境界サイズの関数であり、refX[x] は参照サンプルxの数を示し、>>は右ビット・シフト処理を示し、<<は左ビット・シフト処理を示す。方法3600の幾つかの実施形態において、境界サンプルupsBdryX[x]は、以下の式を使用して計算され:
【0318】
【数28】
ここで、uDwnは現在のビデオ・ブロック・サイズと境界サイズの関数であり、refX[x] は参照サンプルxの数を示し、>>は右ビット・シフト処理を示し、<<は左ビット・シフト処理を示す。
方法3600の幾つかの実施形態において、境界サイズは、現在のビデオ・ブロック・サイズに基づいて事前に定義される。方法3600の幾つかの実施形態において、uDwnは、uDwn=nTbs/boundarySize として計算され、nTbs及びboundarySizeはそれぞれ現在のビデオ・ブロック・サイズ及び境界サイズを表す。方法3600の幾つかの実施形態において、境界サンプルupsBdryX[x]は、以下のうちの1つの式を使用して計算される:
【0319】
【数29】
図37は、マトリクス・ベースのイントラ予測のための例示的な方法3700の例示的なフローチャートを示す。オペレーション3702は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換を、マトリクス・ベースのイントラ予測(MIP)モードを使用して実行するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定され、予測サンプルpredSamples[xHor+dX][yHor]は、アップサンプリング処理において以下の式:
predSamples[ xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[ xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor,及び
predSamples[ xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[ xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer,
に従って決定され、offsetHor及びoffsetVerは整数であり、upHorは現在のビデオ・ブロックのサイズに基づく所定値と現在のビデオ・ブロックの幅との関数であり、upVerは現在のビデオ・ブロックのサイズに基づく所定値と現在のビデオ・ブロックの高さとの関数であり、dXは、1・・・upHor-1であり、dYは、1・・・upVer-1であり、及びxHorはupHorに基づく位置であり、yHorは記upVerに基づく位置である。方法3700の幾つかの実施形態において、offsetHor=upHor/2、及び offsetVer=upVer/2である。
【0320】
図38は、マトリクス・ベースのイントラ予測のための例示的な方法3800の例示的なフローチャートを示す。オペレーション3802は、ビデオの現在のビデオ・ブロックと現在のビデオ・ブロックのビットストリーム表現との間の変換に関し、マトリクス・ベースのイントラ予測(MIP)モードを使用してコーディングされる現在のビデオ・ブロックに対するイントラ予測モードを生成するステップを含み、MIPモードにおいては、現在のビデオ・ブロックの予測ブロックは、ビデオの以前にコーディングされたサンプルに関して境界ダウンサンプリング処理を行って行列ベクトル乗算処理を行った後に選択的にアップサンプリング処理を行うことによって決定される。オペレーション3804は、現在のビデオ・ブロックはMIPモードでコーディングされるかどうかに基づいてイントラ予測モードを示す情報を記憶するルールを決定する。オペレーション3806は、ルールに従って変換を実行するステップを含み、ルールは、ビットストリーム表現は、現在のビデオ・ブロックに関連するMIPモードを示す情報の記憶を除外することを規定している。
【0321】
本特許文献は、コーディングされた表現を意味するようにビットストリーム表現に言及し、またその逆もあり得る。以上から、本開示の技術の特定の実施形態が本願において説明の目的で説明されているが、本発明の範囲を逸脱することなく、種々の修正が行われてもよいことが、理解されるであろう。従って、本願で開示される技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0322】
本特許文献で説明される対象事項及び機能的動作の実装は、本明細書で開示される構造及びそれらの構造的均等物を含む、種々のシステム、デジタル電子回路、又はコンピュータ・ソフトウェア、ファームウェア、又はハードウェア、又はそれらの1つ以上の組み合わせにおいて実現することができる。本明細書で説明される対象事項の実装は、1つ以上のコンピュータ・プログラム製品として、即ち、データ処理装置による実行のための、又はその動作を制御するための、有形且つ非一時的なコンピュータ読み取り可能な媒体上で符号化されているコンピュータ・プログラム命令の1つ以上のモジュールとして、実装することができる。コンピュータ読み取り可能な媒体は、機械読み取り可能なストレージ・デバイス、機械読み取り可能なストレージ基板、メモリ・デバイス、機械読み取り可能な伝搬信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであるとすることが可能である。用語「データ処理ユニット」又は「データ処理装置」は、例えば、プログラマブル・プロセッサ、コンピュータ、又は複数のプロセッサ又はコンピュータを含む、データを処理するためのすべての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題としているコンピュータ・プログラムの実行環境を生成するコード、例えば、プロセッサ・ファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0323】
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、コードとしても知られている)は、コンパイル又は解釈された言語を含む、任意の形式のプログラミング言語で書くことが可能であり、それは、スタンド・アロン・プログラムとして、又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に適したその他のユニットとして、任意の形式で配備することができる。コンピュータ・プログラムは、必ずしもファイル・システム内のファイルに対応するとは限らない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)内に、問題としているプログラム専用の単一ファイル内に、又は複数の調整されたファイル(例えば、1つ以上のモジュール、サブ・プログラム、又はコードの一部分を記憶するファイル)内に、保存されることが可能である。コンピュータ・プログラムは、1つのコンピュータ上で又は複数のコンピュータ上で実行されるように配備することが可能であり、複数のコンピュータは、1つのサイトに配置されるか、又は複数のサイトにわたって分散されて通信ネットワークによって相互接続されている。
【0324】
本明細書で説明されるプロセス及びロジックの流れは、1つ以上のコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行され、入力データに作用して出力を生成することによって機能を実行することができる。プロセス及びロジックのフローはまた、例えばFPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)のような特殊目的論理回路によって実行されることが可能であり、また、それらとして装置を実装することも可能である。
【0325】
コンピュータ・プログラムの実行に適したプロセッサは、例えば、汎用及び専用双方のマイクロプロセッサ、及び任意の種類のデジタル・コンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリ・メモリ又はランダム・アクセス・メモリ又は双方から命令及びデータを受信するであろう。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリ・デバイスである。一般に、コンピュータはまた、データを記憶するための1つ以上の大容量ストレージ・デバイス、例えば磁気的なもの、磁気光ディスク、又は光ディスクを含み、あるいはそれらからデータを受信したり、それらへデータを転送したり、若しくは双方のために動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有することを必須とはしない。コンピュータ・プログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能な媒体は、例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイスのような半導体メモリ・デバイスを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリ・デバイスを含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されるか、又はそこに内蔵されることが可能である。
【0326】
明細書は図面と共に模範としてのみ考慮されることが意図されており、模範は例を意味する。本願で使用されるように、「又は」の使用は、文脈が明らかに別意を示していない限り、「及び/又は」を含むように意図されている。
【0327】
本特許文献は多くの詳細が含んでいるが、これらは、何れかの発明やクレームされ得るもの範囲に関する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有である可能性のある特徴の説明として解釈されるべきである。別々の実施形態の文脈で本特許文献で説明されている特定の特徴は、組み合わせて単一の実施形態で実施することも可能である。逆に、単一の実施形態の文脈で説明されている種々の特徴は、複数の実施形態において別々に、又は任意の適切なサブコンビネーションで実施することも可能である。更に、特徴が、特定の組み合わせにおいて作用するものとして上述されていたり、当初にそのようにクレームされていたりさえするかもしれないが、クレームされた組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから切り出されることが可能であり、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に仕向けられる可能性がある。
【0328】
同様に、図中、動作は特定の順序で描かれているが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で又は順番通りに実行されること、又は、例示されたすべての動作が実行されること、を要求するものとして理解されるべきではない。更に、この特許文献で説明される実施形態における種々のシステム構成要素の分け方は、すべての実施形態でこのような分け方を要求とするものとして理解されるべきではない。
【0329】
僅かな実装例及び実施例のみが記述されているに過ぎず、本特許文献で説明され図示されているものに基づいて他の実装、拡張及び変更を行うことができる