(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-05
(54)【発明の名称】映像コーディングツールのレベルベースシグナリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20221128BHJP
【FI】
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022520782
(86)(22)【出願日】2020-10-09
(85)【翻訳文提出日】2022-04-04
(86)【国際出願番号】 CN2020119912
(87)【国際公開番号】W WO2021063418
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】PCT/CN2019/109837
(32)【優先日】2019-10-05
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ワン,ユエ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159RC11
(57)【要約】
映像処理の方法の一例は、映像と前記映像のビットストリーム表現との間での変換を実行することを含む。当該ビットストリーム表現は、当該ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の対応する第2のシンタックス要素が当該ビットストリーム表現に含められるかを規定するフォーマットルールに準拠する。
【特許請求の範囲】
【請求項1】
映像処理の方法であって、
映像と前記映像のビットストリーム表現との間での変換のために、前記映像のカラーフォーマットに基づいて、ジョイントCb-Cr残差コーディングツールの使用をシグナリングする方式を決定するステップと、
前記決定に基づいて前記変換を実行するステップと、
を有する方法。
【請求項2】
前記方式は、前記カラーフォーマットが非ゼロの値を持つことをシンタックス要素が指し示す場合に、前記ジョイントCb-Cr残差コーディングツールの前記使用のシグナリングが前記ビットストリーム表現に含められることを規定する、請求項1に記載の方法。
【請求項3】
前記カラーフォーマットが非ゼロの値を持つことを前記シンタックス要素が指し示す場合、前記ジョイントCb-Cr残差コーディングツールに使用されるクロマサンプルの座標が、対応するルマサンプルのスケーリング座標に基づいて決定される、請求項2に記載の方法。
【請求項4】
2つのクロマアレイのサンプルが座標(x/SubWidthC,y/SubHeightC)を持ち、(x,y)は、対応するルマサンプルの座標であり、SubWidthC及びSubHeightCはスケーリング係数である、請求項3に記載の方法。
【請求項5】
前記方式は、前記映像の前記カラーフォーマットが4:0:0である場合に、前記ジョイントCb-Cr残差コーディングツールの使用のシグナリングが前記ビットストリーム表現において省略されることを規定する、請求項1に記載の方法。
【請求項6】
映像処理の方法であって、
映像と前記映像のビットストリーム表現との間での変換を実行するステップを有し、
前記ビットストリーム表現は、前記ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の対応する第2のシンタックス要素が前記ビットストリーム表現に含められるかを規定するフォーマットルールに準拠する、
方法。
【請求項7】
前記第1の映像ユニットは、ピクチャヘッダ又はピクチャパラメータセットを有する、請求項6に記載の方法。
【請求項8】
前記第2の映像ユニットは、スライスヘッダ又はスライスパラメータセットを有する、請求項7に記載の方法。
【請求項9】
前記第1の映像ユニットは、ビデオパラメータセット、スライスパラメータセット、又はピクチャパラメータセットを有する、請求項6に記載の方法。
【請求項10】
前記第2の映像ユニットはピクチャヘッダを有する、請求項9に記載の方法。
【請求項11】
前記フォーマットルールは、前記ビットストリーム表現内の前記第1の映像ユニットに前記第1のシンタックス要素が含められる場合に、前記第2の映像ユニット内の前記第2のシンタックス要素が前記ビットストリーム表現において省略されることを規定する、請求項6乃至10のいずれかに記載の方法。
【請求項12】
前記フォーマットルールは、前記ビットストリーム表現内の前記第1の映像ユニットに前記第1のシンタックス要素が含められる場合に、前記第2の映像ユニット内の前記第2のシンタックス要素が前記ビットストリーム表現に含められることを規定する、請求項6乃至10のいずれかに記載の方法。
【請求項13】
前記第2のシンタックス要素がその後にシグナリングされるかを指し示すインジケータが前記第2の映像ユニットに含められる、請求項12に記載の方法。
【請求項14】
前記ビットストリーム表現に前記第2のシンタックス要素が含められる場合、前記第2の映像ユニットに関連するスライスは、前記第1のシンタックス要素を考慮することなく、前記第2のシンタックス要素の前記インジケータに従って処理される、請求項13に記載の方法。
【請求項15】
前記第1の映像ユニットに関連付けられた前記第2の映像ユニットに前記第2のシンタックス要素が含められるかを指し示すインジケータが、前記第1の映像ユニットに含められる、請求項12に記載の方法。
【請求項16】
前記第1の映像ユニットはピクチャヘッダであり、前記第2の映像ユニットはスライスヘッダであり、前記ピクチャヘッダ内の前記第1のシンタックス要素は、前記スライスヘッダ内の前記第2のシンタックス要素と機能的に等価である、請求項6乃至15のいずれかに記載の方法。
【請求項17】
前記第1の映像ユニットはスライスパラメータセットであり、前記第2の映像ユニットはピクチャヘッダであり、前記スライスパラメータセット内の前記第1のシンタックス要素は、前記ピクチャヘッダ内の前記第2のシンタックス要素と機能的に等価である、請求項6乃至15のいずれかに記載の方法。
【請求項18】
前記第1の映像ユニットはピクチャパラメータセットであり、前記第2の映像ユニットはピクチャヘッダであり、前記ピクチャパラメータセット内の前記第1のシンタックス要素は、前記ピクチャヘッダ内の前記第2のシンタックス要素と機能的に等価である、請求項6乃至15のいずれかに記載の方法。
【請求項19】
映像処理の方法であって、
映像の領域と前記映像のビットストリーム表現との間での変換を実行するステップを有し、
前記変換において、複数変換選択(MTS)コーディングツールが前記領域の全てのブロックに対して無効にされるかを指し示す第1のシンタックス要素が前記ビットストリーム表現に含められる、
方法。
【請求項20】
前記領域は、スライス、ピクチャ、又はシーケンスの全体を有する、請求項19に記載の方法。
【請求項21】
前記変換において、イントラコーディングされるブロックに前記MTSコーディングツールを適用する方式を指し示す第2のシンタックス要素が、前記第1のシンタックス要素に基づいて条件付きで前記ビットストリーム表現に含められる、請求項19又は20に記載の方法。
【請求項22】
前記第2のシンタックス要素は、前記MTSコーディングツールが前記領域内の全てのブロックに対して無効にされるのでないことを前記第1のシンタックス要素が指し示す場合に、前記ビットストリーム表現に含められる、請求項21に記載の方法。
【請求項23】
前記変換において、インターコーディングされるブロックに前記MTSコーディングツールを適用する方式を指し示す第3のシンタックス要素が、前記第1のシンタックス要素に基づいて条件付きで前記ビットストリーム表現に含められる、請求項19乃至22のいずれかに記載の方法。
【請求項24】
前記第3のシンタックス要素は、前記MTSコーディングツールが前記領域内の全てのブロックに対して無効にされるのでないことを前記第1のシンタックス要素が指し示す場合に、前記ビットストリーム表現に含められる、請求項23に記載の方法。
【請求項25】
前記第3のシンタックス要素は、サブブロック変換コーディングツールの適用可能性に更に基づいて条件付きで前記ビットストリーム表現に含められる、請求項23に記載の方法。
【請求項26】
前記第2のシンタックス要素はsps_intra_mts_selectionを有し、前記第3のシンタックス要素はsps_inter_mts_selectionを有する、請求項19乃至25のいずれかに記載の方法。
【請求項27】
前記MTSコーディングツールは、複数の変換の中からの変換の選択に基づく、請求項19乃至26のいずれかに記載の方法。
【請求項28】
映像処理の方法であって、
映像と前記映像のビットストリーム表現との間での変換のために、変換スキップモードでコーディングされるブロックの第1の最大ブロックサイズをシグナリングすることのルールを、変換コーディングされるブロックの第2の最大ブロックサイズに基づいて決定するステップと、
前記決定に基づいて前記変換を実行するステップと、
を有する方法。
【請求項29】
前記ルールは、前記第1の最大ブロックサイズが前記第2の最大ブロックサイズ以下であることを規定する、請求項28に記載の方法。
【請求項30】
前記変換は、前記映像を前記ビットストリーム表現に符号化することを含む、請求項1乃至29のいずれかに記載の方法。
【請求項31】
前記変換は、前記ビットストリーム表現を前記映像に復号することを含む、請求項1乃至29のいずれかに記載の方法。
【請求項32】
請求項1乃至31のいずれかに記載の方法を実行するように構成されたプロセッサを有する映像処理装置。
【請求項33】
コードを格納したコンピュータ読み取り可能媒体であって、前記コードは、プロセッサによる実行を受けて、該プロセッサに請求項1乃至31のいずれかに記載の方法を実行させる、コンピュータ読み取り可能媒体。
【請求項34】
請求項1乃至31のいずれかに記載の方法に従って生成されたビットストリーム表現を格納したコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
パリ条約に基づく適用可能な特許法及び/又は規則の下で、この出願は、2019年10月5日に出願された国際特許出願第PCT/CN2019/109837号の優先権及び利益を適時に主張して行われる。法律の下での全ての目的のために、上記出願の開示全体を、この出願の開示の一部として援用する。
【0002】
この特許文書は、映像コーティング技術、装置及びシステムに関する。
【背景技術】
【0003】
現在、より良い圧縮比を提供するため、又はより低い複雑さ若しくは並列化実装を可能にする映像符号化及び復号スキームを提供するために、現行のビデオコーデック技術の性能を向上させるための努力が進められている。産業界の専門家が最近、幾つかの新しい映像コーディングツールを提案しており、それらの有効性を判定するためのテストが現在進行中である。
【発明の概要】
【0004】
デジタル映像コーティング、そして具体的には、動きベクトルの管理に関係する装置、システム及び方法が記載される。記載される方法は、既存の映像符号化標準(例えば、ハイエフィシェンシビデオコーディング(High Efficiency Video Coding,HEVC)若しくはバーサタイルビデオコーディング(Versatile Video Coding))及び将来の映像符号化標準若しくはビデオコーデックに適用され得る。
【0005】
代表的な一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、映像と該映像のビットストリーム表現との間での変換のために、該映像のカラーフォーマットに基づいて、ジョイントCb-Cr残差コーディングツールの使用をシグナリングする方式を決定することを含む。この方法はまた、該決定に基づいて上変換を実行することを含む。
【0006】
代表的な他の一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、映像と該映像のビットストリーム表現との間での変換を実行することを含む。当該ビットストリーム表現は、当該ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の対応する第2のシンタックス要素が当該ビットストリーム表現に含められるかを規定するフォーマットルールに準拠する。
【0007】
代表的な他の一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、映像の領域と該映像のビットストリーム表現との間での変換を実行することを含む。当該変換において、複数変換選択(MTS)コーディングツールが上記領域の全てのブロックに対して無効にされるかを指し示す第1のシンタックス要素が上記ビットストリーム表現に含められる。
【0008】
代表的な他の一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、映像と該映像のビットストリーム表現との間での変換のために、変換スキップモードでコーディングされるブロックの第1の最大ブロックサイズをシグナリングすることのルールを、変換コーディングされるブロックの第2の最大ブロックサイズに基づいて決定することを含む。この方法はまた、該決定に基づいて上記変換を実行することを含む。
【0009】
代表的な他の一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、映像のクロマコンポーネントのブロックと該映像のビットストリーム表現との間での変換を、クロマブロックの最終的な予測が、パーティションに基づく重みを用いて該クロマブロックの複数の予測を混合することによって決定される分割モードコーディングツールを用いて実行することを含む。当該変換において、上記重みは、当該ブロックのクロマコンポーネントにおけるクロマサンプル位置のタイプに基づいて決定される。
【0010】
代表的な他の一態様において、開示される技術は、映像処理のための方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、参照ピクチャの解像度及び/又はサイズが現在映像ブロックの解像度及び/又はサイズと異なる場合、現在映像ブロックを用いて予測される一群の隣接又は非隣接サンプルに同一の補間フィルタが適用される。
【0011】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、参照ピクチャの解像度及び/又はサイズが現在映像ブロックの解像度及び/又はサイズと異なる場合、現在映像ブロックを用いて予測されるブロックは、現在ブロックに関係する整数値動き情報を用いることのみ許される。
【0012】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、参照ピクチャの解像度及び/又はサイズが現在映像ブロックの解像度及び/又はサイズと異なる場合、現在映像ブロックを用いて予測されるブロックを導出するために補間フィルタが適用され、該補間フィルタはルールに基づいて選択される。
【0013】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、参照ピクチャの解像度及び/又はサイズが現在映像ブロックの解像度及び/又はサイズと異なる場合、デブロッキングフィルタを選択的に適用し、該デブロッキングフィルタの強さが、現在映像ブロックの解像度及び/又はサイズに対する参照ピクチャの解像度及び/又はサイズに関係するルールに従って設定される。
【0014】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、現在映像ブロックの参照ピクチャが、現在映像ブロックの寸法に基づくルールに従ってリサンプリングされる。
【0015】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、現在映像ブロックへのコーディングツールの使用が、現在映像ブロックの解像度/サイズに対する現在映像ブロックの参照ピクチャの解像度/サイズに応じて選択的に有効又は無効にされる。
【0016】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、複数の映像ブロックと該複数の映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、第1の適合ウィンドウが第1の映像ブロックに対して画成され、第2の適合ウィンドウが第2の映像ブロックに対して画成され、第2の適合ウィンドウに対する第1の適合ウィンドウの幅及び/又は高さの比が、少なくとも適合ビットストリームに基づくルールに従う。
【0017】
代表的な他の一態様において、開示される技術は、映像処理のための別の方法を提供するために使用され得る。この方法は、複数の映像ブロックと該複数の映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、第1の適合ウィンドウが第1の映像ブロックに対して画成され、第2の適合ウィンドウが第2の映像ブロックに対して画成され、第2の適合ウィンドウに対する第1の適合ウィンドウの幅及び/又は高さの比が、少なくとも適合ビットストリームに基づくルールに従う。
【0018】
さらに、代表的な一態様において、プロセッサと、命令を有する非一時的なメモリと、を有する映像システム内の装置が開示される。当該命令は、当該プロセッサによる実行を受けて、当該プロセッサに、開示される方法のうちのいずれか1つ以上を実行させる。
【0019】
代表的な一態様において、ここに記載される方法を実装するように構成されたプロセッサを有する映像復号装置が開示される。
【0020】
代表的な一態様において、ここに記載される方法を実装するように構成されたプロセッサを有する映像符号化装置が開示される。
【0021】
また、非一時的なコンピュータ読み取り可能媒体に格納されたコンピュータプログラムプロダクトであって、開示される方法のうちの1つ以上を実行するためのプログラムコードを含むコンピュータプログラムプロダクトが開示される。
【0022】
開示される技術の上述の及び他の態様及び特徴が、図面、明細書、及び特許請求の範囲に更に詳細に記載される。
【図面の簡単な説明】
【0023】
【
図1】サブブロック動きベクトル(VSB)及び動きベクトル差の一例を示している。
【
図2】16個の4×4領域に分割された16×16映像ブロックの一例を示している。
【
図3A】サンプル内の特定の位置の一例を示している。
【
図3B】サンプル内の特定の位置の他の一例を示している。
【
図3C】サンプル内の特定の位置の更なる他の一例を示している。
【
図4A】現在サンプル及びその参照サンプルの位置の一例を示している。
【
図4B】現在サンプル及びその参照サンプルの位置の他の一例を示している。
【
図5】本文書に記載されるビジュアルメディア復号又はビジュアルメディア符号化技術を実装するためのハードウェアプラットフォームの一例のブロック図である。
【
図6】映像コーディングのための方法の一例のフローチャートを示している。
【
図7】開示される技術が実装され得る映像処理システムの一例のブロック図である。
【
図8】映像コーティングシステムの一例を示すブロック図である。
【
図9】本開示の一部の実施形態に従ったエンコーダを示すブロック図である。
【
図10】本開示の一部の実施形態に従ったデコーダを示すブロック図である。
【
図11】本技術に従ったよる映像処理の一方法のフローチャート表現である。
【
図12】本技術に従ったよる映像処理の他の一方法のフローチャート表現である。
【
図13】本技術に従ったよる映像処理の他の一方法のフローチャート表現である。
【
図14】本技術に従ったよる映像処理の他の一方法のフローチャート表現である。
【
図15】本技術に従ったよる映像処理の更なる他の一方法のフローチャート表現である。
【発明を実施するための形態】
【0024】
1. HEVC/H.265における映像符号化
映像符号化標準は、主に、周知のITU-T及びISO/IEC標準の開発を通じて発展してきた。ITU-TがH.261及びH.263を作成し、ISO/IECがMPEG-1及びMPEG-4 Visualを作成出し、そして、これら2つの組織が共同で、H.262/MPEG-2 Video及びH.264/MPEG-4 AVC(Advanced Video Coding)及びH.265/HEVC標準を作成した。H.262以来、映像符号化標準は、時間予測に加えて変換符号化が利用されるハイブリッド映像符号化構造に基づいている。HEVCの先の将来の映像符号化技術を探求するため、2015年にVCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、数多くの新しい方法が、JVETによって採用され、共同探索モデルJEM(Joint Exploration Model)と名付けられたリファレンスソフトウェアに入れられてきた。2018年4月には、HEVCと比較して50%のビットレート低減を目指すVVC標準に取り組むべく、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間でJVET(Joint Video Expert Team)を発足させた。
【0025】
2. 概説
2.1. 適応解像度変更(Adaptive Resolution Change;ARC)
AVC及びHEVCは、IDR又はイントラランダムアクセスポイント(IRAP)ピクチャを導入する必要なしに解像度を変更する能力を持っておらず、そのような能力は、適応解像度変更(ARC)と称され得る。以下を含めて、ARC機能の恩恵を受けるユースケース又は適用シナリオが存在する。
【0026】
- ビデオ電話及び会議におけるレート適応。変化するネットワーク状態に対して、コーディングされる映像を適応させるため、ネットワーク状態が悪化して利用可能な帯域幅が小さくなるときに、エンコーダは、より低解像度のピクチャを符号化することによって、それに適応し得る。現在、ピクチャ解像度を変えることは、IRAPピクチャの後にしか行うことができず、これは幾つかの問題を有する。妥当な品質のIRAPピクチャは、インター符号化ピクチャよりも遥かに大きく、それに対応して、復号するのがいっそう複雑になり、時間及びリソースのコストがかかる。このことは、ローディングの理由でデコーダによって解像度変更が要求される場合に問題となる。それはまた、低遅延のバッファ条件を破壊してオーディオ再同期を強制し得るとともに、ストリームのエンド・ツー・エンド遅延が少なくとも一時的に増加することになる。これは、乏しいユーザ体験を与え得る。
【0027】
- マルチパーティビデオ会議におけるアクティブスピーカ変化。マルチパーティビデオ会議では、アクティブスピーカが、残りの会議参加者に対する映像よりも大きい映像サイズで示されることが一般的である。アクティブスピーカが変わるとき、各参加者に対するピクチャ解像度も調節される必要があり得る。ARC機能を持つことの必要性は、アクティブスピーカのそのような変化が頻繁に発生する場合にいっそう重要になる。
【0028】
- ストリーミングにおける高速スタート。ストリーミングアプリケーションでは、表示を始める前に、アプリケーションが、ある一定長さの復号ピクチャに至るまでバッファリングするのが一般的である。より低い解像度でビットストリームを始めることは、アプリケーションが、より速く表示を開始するのに十分なピクチャをバッファ内に持つことを可能にする。
【0029】
- ストリーミングにおける適応ストリームスイッチング。ダイナミックアダプティブストリーミング・オーバ・HTTP(DASH)仕様は、@mediaStreamStructureIdという名称の機能を含んでいる。これは、例えばHEVCにおける関連RASLピクチャを伴うCRAピクチャといった、復号不可能なリーディングピクチャを有するオープンGOPランダムアクセスポイントで、異なる表現間での切り換えを可能にする。同じ映像の2つの異なる表現が異なるビットレートを持つが、空間分解能は同じで、それらが同じ値の@mediaStreamStructureIdを持つとき、関連RASLピクチャを伴うCRAピクチャにて2つの表現間の切り換えを行うことができ、切り換え位置のCRAピクチャに伴うRASLピクチャを許容可能な品質で復号することができ、それ故にシームレスな切り換えを可能にする。ARCを用いることで、@mediaStreamStructureId機能はまた、異なる空間解像度を持つDASH表現間での切り換えにも使用できる。
【0030】
ARCはダイナミック解像度変換としても知られている。
【0031】
ARCはまた、例えばH.263付属書Pなどの参照ピクチャリサンプリング(Reference Picture Resampling;RPR)の特殊なケースと見なすこともできる。
【0032】
2.2. H.263付属書Pにおける参照ピクチャリサンプリング
このモードは、予測のために使用する前に参照ピクチャをワープさせるアルゴリズムを記述する。これは、予測されているピクチャとは異なるソースフォーマットを持つ参照ピクチャをリサンプリングするのに有用であり得る。これはまた、参照ピクチャの形状、サイズ、及び位置をワープさせることによって、グローバル動き推定又は回転運動の推定に使用されることができる。使用されるワープパラメータ及びリサンプリングアルゴリズをシンタックスが含む。参照ピクチャリサンプリングモードの最も単純な動作レベルは、アップサンプリング及びダウンサンプリングプロセスにFIRフィルタを適用すればよいときの黙示的なファクタ4のリサンプリングである。この場合、その使用は、新たなピクチャのサイズ(ピクチャヘッダにて示される)が先行ピクチャのサイズと異なるときに理解されるので、追加のシグナリングオーバヘッドは必要とされない。
【0033】
2.3. VVCにおける適合ウィンドウ(Conformance Window)
VVCにおける適合ウィンドウは矩形を定めている。適合ウィンドウの内側のサンプルは関心画像に属する。適合ウィンドウの外側のサンプルは出力時に破棄され得る。
【0034】
適合ウィンドウが適用されるとき、RPRにおけるスケーリング比は適合ウィンドウに基づいて導出される。
ピクチャパラメータセットRBSPシンタックス
(外1)
【0035】
2.4. 参照ピクチャリサンプリング(RPR)
一部の実施形態において、ARCは、参照ピクチャリサンプリング(RPR)としても知られている。RPRでは、コロケートピクチャが現在ピクチャと異なる解像度を持つ場合に、TMVPが無効にされる。その他に、参照ピクチャが現在ピクチャと異なる解像度を持つ場合に、BDOF及びDMVRが無効にされる。
【0036】
参照ピクチャが現在ピクチャとは異なる解像度を持つ場合に通常のMCを扱うために、補間セクションが以下のように定義される:
8.5.6.3 分数サンプル補間プロセス
8.5.6.3.1 全般
このプロセスへの入力は以下である:
- 現在ピクチャの左上ルマサンプルに対して現在コーディングサブブロックの左上サンプルを規定するルマ位置(xSb,ySb)、
- 現在コーディングサブブロックの幅を規定する変数sbWidth、
- 現在コーディングサブブロックの高さを規定する変数sbHeight、
- 動きベクトルオフセットmvOffset、
- 精緻化動きベクトルrefMvLX、
- 選択された参照ピクチャサンプルアレイrefPicLX、
- ハーフサンプル補間フィルタインデックスhpelIfIdx、
- 双方向オプティカルフローフラグbdofFlag、
- 現在ブロックのカラー成分インデックスを規定する変数cIdx。
このプロセスの出力は以下である:
- 予測サンプル値の(sbWidth+brdExtSize)×(sbHeight+brdExtSize)配列predSamplesLX。
予測ブロック境界拡張サイズbrdExtSizeは、次のように導出される:
brdExtSize=(bdofFlag||(inter_affine_flag[xSb][ySb]&&sps_affine_prof_enabled_flag))?2:0 (8-752)
変数fRefWidthは、ルマサンプル単位で参照ピクチャのPicOutputWidthLに等しく設定される。
変数fRefHeightは、ルマサンプル単位で参照ピクチャのPicOutputHeightLに等しく設定される。
動きベクトルmvLXは、(refMvLX-mvOffset)に等しく設定される。
- cIdxが0に等しい場合、以下が適用される:
- スケーリング係数及びそれらの固定小数点表現が、次のように定義される
hori_scale_fp=((fRefWidth<<14)+(PicOutputWidthL>>1))/PicOutputWidthL (8-753)
vert_scale_fp=((fRefHeight<<14)+(PicOutputHeightL>>1))/PicOutputHeightL (8-754)
- (xIntL,yIntL)をフルサンプル単位で与えられるルマ位置とし、(xFracL,yFracL)を1/16サンプル単位で与えられるオフセットとする。これらの変数は、参照サンプル配列refPicLXの内側の分数サンプル位置を規定するためにこの節でのみ使用される;
- 参照サンプルパディングのための境界ブロックの左上座標(xSbInt
L,ySbInt
L)が、(xSb+(mvLX[0]>>4),ySb+(mvLX[1]>>4))に等しく設定される;
- 予測ルマサンプル配列preSamplesLXの内側の各ルマサンプル位置(x
L=0..sbWidth-1+brdExtSize,y
L=0..sbHeight-1+brdExtSize)について、対応する予測ルマサンプル値preSamplesLX[x
L][y
L]が、次のように導出される:
- (refxSb
L,refySb
L)及び(refx
L,refy
L)を、1/16サンプル単位で与えられる動きベクトル(refMvLX[0],refMvLX[1])によって指されるルマ位置とする。変数refxSb
L、refx
L、refySb
L、及びrefy
Lは、次のように導出される:
refxSb
L=((xSb<<4)+refMvLX[0])*hori_scale_fp (8-755)
refx
L=((Sign(refxSb)*((Abs(refxSb)+128)>>8)
+x
L*((hori_scale_fp+8)>>4))+32)>>6 (8-756)
refySb
L=((ySb<<4)+refMvLX[1])*vert_scale_fp (8-757)
refy
L=((Sign(refySb)*((Abs(refySb)+128)>>8)+y
L*
((vert_scale_fp+8)>>4))+32)>>6 (8-758)
- 変数xInt
L、yInt
L、xFrac
L、及びyFrac
Lは、次のように導出される:
xInt
L=refx
L>>4 (8-759)
yInt
L=refy
L>>4 (8-760)
xFrac
L=refx
L&15 (8-761)
yFrac
L=refy
L&15 (8-762)
- bdofFlagがTRUEに等しく又は(sps_affine_prof_enabled_flagがTRUEに等しく且つinter_affine_flag[xSb][ySb]がTRUEに等しく)、且つ以下の条件のうち1つ以上が真である場合、第8.5.6.3.3節に規定されるルマ整数サンプルフェッチングプロセスを、(xInt
L+(xFrac
L>>3)-1),yInt
L+(yFrac
L>>3)-1)及びrefPicLXを入力として呼び出すことによって、予測ルマサンプル値preSamplesLX[x
L][y
L]が導出される:
- x
Lが0に等しい
- x
LがsbWidth+1に等しい
- y
Lが0に等しい
- y
LがsbHeight+1に等しい;
- そうでない場合、第8.5.6.3.2節に規定されるルマサンプル8タップ補間フィルタリングプロセスを、(xIntL-(brdExtSize>0? 1:0),yIntL-(brdExtSize>0? 1:0))、(xFracL,yFracL)、(xSbInt
L,ySbInt
L)、refPicLX、hpelIfIdx、sbWidth、sbHeight、及び(xSb,ySb)を入力として呼び出すことによって、予測ルマサンプル値preSamplesLX[x
L][y
L]が導出される;
- それ以外の場合(cIdxが0に等しくない)、以下が適用される:
- (xIntC,yIntC)をフルサンプル単位で与えられるクロマ位置とし、(xFracC,yFracC)を1/32サンプル単位で与えられるオフセットとする。これらの変数は、参照サンプル配列refPicLXの内側の一般的な分数サンプル位置を規定するためにこの節でのみ使用される;
- 参照サンプルパディングのための境界ブロックの左上座標(xSbIntC,ySbIntC)が、((xSb/SubWidthC)+(mvLX[0]>>5),(ySb/SubHeightC)+(mvLX[1]>>5))に等しく設定される;
- 予測クロマサンプル配列preSamplesLXの内側の各クロマサンプル位置(xC=0..sbWidth-1,yC=0..sbHeight-1)について、対応する予測クロマサンプル値preSamplesLX[xC][yC]が、次のように導出される:
- (refxSbC,refySbC)及び(refxC,refyC)を、1/32サンプル単位で与えられた動きベクトル(mvLX[0]、mvLX[1])によって指されるクロマ位置とする。変数refxSb
C、refySb
C、refx
C、及びrefy
Cが、次のように導出される:
refxSb
C=((xSb/SubWidthC<<5)+mvLX[0])*hori_scale_fp (8-763)
refx
C=((Sign(refxSbC)*((Abs(refxSbC)+256)>>9)
+xC*((hori_scale_fp+8)>>4))+16)>>5 (8-764)
refySb
C=((ySb/SubHeightC<<5)+mvLX[1])*vert_scale_fp (8-765)
refy
C=((Sign(refySbC)*((Abs(refySbC)+256)>>9)
+yC*((vert_scale_fp+8)>>4))+16)>>5 (8-766)
- 変数xInt
C、yInt
C、xFrac
C、及びyFrac
Cが、次のように導出される:
xInt
C=refxC>>5 (8-767)
yInt
C=refyC>>5 (8-768)
xFrac
C=refyC&31 (8-769)
yFrac
C=refyC&31 (8-770)
- 8.5.6.3.4節に規定されるプロセスを、(xIntC,yIntC)、(xFracC,yFracC)、(xSbIntC,ySbIntC)、sbWidth、sbHeight、及びrefPicLXを入力として呼び出すことによって、予測サンプル値preSamplesLX[xC][yC]が導出される;
8.5.6.3.2 ルマサンプル補間フィルタリングプロセス
このプロセスへの入力は以下である:
- フルサンプル単位のルマ位置(xInt
L,yInt
L)、
- 分数サンプル単位のルマ位置(xFrac
L,yFrac
L)、
- 参照ピクチャの左上のルマサンプルに対して、参照サンプルパディングのための境界ブロックの左上サンプルを規定する、フルサンプル単位のルマ位置(xSbInt
L,ySbInt
L)、
- ルマ参照サンプル配列refPicLX
L、
- ハーフサンプル補間フィルタインデックスhpelIfIdx、
- 現在サブブロックの幅を規定する変数sbWidth、
- 現在サブブロックの高さを規定する変数sbHeight、
- 現在ピクチャの左上ルマサンプルに対して現在サブブロックの左上サンプルを規定するルマ位置(xSb,ySb);
このプロセスの出力は、予測ルマサンプル値preSampleLX
Lである;
変数shift1、shift2、及びshift3が、次のように導出される:
- 変数shift1はMin(4,BitDepth
Y-8)に等しく設定され、変数shift2は6に等しく設定され、変数shift3はMax(2,14-BitDepth
Y)に等しく設定される;
- 変数picWがpic_width_in_luma_samplesに等しく設定され、変数picHがpic_height_in_luma_samplesに等しく設定される;
xFrac
L又はyFrac
Lに等しい各1/16分数サンプル位置pに対するルマ補間フィルタ係数f
L[p]が、次のように導出される:
- MotionModelIdc[xSb][ySb]が0より大きく、且つsbWidth及びsbHeightが両方とも4に等しい場合、ルマ補間フィルタ係数f
L[p]は表2で規定される;
- そうでない場合、ルマ補間フィルタ係数f
L[p]はhpelIfIdxに応じて表1で規定される;
フルサンプル単位のルマ位置(xInt
i,yInt
i)が、i=0..7に対して次のように導出される:
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される:
xInt
i=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,xInt
L+i-3)
(8-771)
yInt
i=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yInt
L+i-3)
(8-772)
- そうでない場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい)場合、以下が適用される:
xInt
i=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag?
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xInt
L+i-3:
xInt
L+i-3) (8-773)
yInt
i=Clip3(0,picH-1,yInt
L+i-3) (8-774)
フルサンプルユニットのルマの位置は更に、i=0..7に対して、次のように変更される:
xInt
i=Clip3(xSbInt
L-3,xSbInt
L+sbWidth+4,xInt
i) (8-775)
yInt
i=Clip3(ySbInt
L-3,ySbInt
L+sbHeight+4,yInt
i) (8-776)
予測ルマサンプル値presampleLX
Lが、次のように導出される:
- xFrac
L及びyFrac
Lの両方が0に等しい場合、predSampleLX
Lの値は次のように導出される:
predSampleLX
L=refPicLXL[xInt3][yInt3]<<shift3 (8-777)
- そうでなく、xFrac
Lが0に等しくなく且つyFrac
Lが0に等しい場合、predSampleLX
Lの値は次のように導出される:
【数1】
- そうでなく、xFrac
Lが0に等しく且つyFrac
Lが0に等しくない場合、predSampleLX
Lの値は次のように導出される:
【数2】
- そうでなく、xFrac
Lが0に等しくなく且つyFrac
Lが0に等しくない場合、predSampleLX
Lの値は次のように導出される:
- n=0..7のサンプル配列temp[n]が、次のように導出される:
【数3】
- 予測ルマサンプル値predSampleLX
Lが、次のように導出される:
【数4】
【表1】
【表2】
8.5.6.3.3 ルマ整数サンプルフェッチングプロセス
このプロセスへの入力は以下である:
- フルサンプル単位のルマ位置(xInt
L,yInt
L)、
- ルマ参照サンプル配列refPicLX
L
このプロセスの出力は予測ルマサンプル値preSampleLX
Lである;
変数shiftがMax(2,14-BitDepth
Y)に等しく設定される;
変数picWがpic_width_in_luma_samplesに等しく設定され、変数picHがpic_height_in_luma_samplesに等しく設定される;
フルサンプル単位のルマ位置(xInt,yInt)が、次のように導出される:
xInt=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag? (8-782)
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xInt
L):xIntL)
yInt=Clip3(0,picH-1,yInt
L) (8-783)
予測ルマサンプル値predSampleLXLが、次のように導出される:
predSampleLX
L=refPicLX
L[xInt][yInt]<<shift3 (8-784)
8.5.6.3.4 クロマサンプル補間プロセス
このプロセスへの入力は以下である:
- フルサンプル単位のクロマ位置(xInt
C,yInt
C)、
- 1/32分数サンプル単位のクロマ位置(xFrac
C,yFrac
C)、
- 参照ピクチャの左上クロマサンプルに対して参照サンプルパディングのための境界ブロックの左上サンプルを規定するフルサンプル単位のクロマ位置(xSbIntC,ySbIntC)、
- 現在サブブロックの幅を規定する変数sbWidth、
- 現在サブブロックの高さを規定する変数sbHight、
- クロマ参照サンプル配列refPicLX
C;
このプロセスの出力は予測クロマサンプル値predSampleLX
Cである;
変数shift1、shift2、及びshift3が、次のように導出される:
- 変数shift1はMin(4,BitDepth
C-8)に等しく設定され、変数shift2は6に等しく設定され、変数shift3はMax(2,14-BitDepth
C)に等しく設定される;
- 変数picW
Cがpic_width_in_luma_samples/SubWidthCに等しく設定され、変数picH
Cがpic_height_in_luma_samples/SubHeightCに等しく設定される;
xFrac
C又はyFrac
Cに等しい各1/32分数サンプル位置pに対するクロマ補間フィルタ係数f
C[p]は、表3で規定される;
変数xOffsetが、((sps_ref_wrapavarunce_offset_minus1+1)*MinCbSizeY)/SubWidthCに等しく設定される;
フルサンプル単位のクロマ位置(xInt
i,yInt
i)が、i=0..3に対して、次のように導出される:
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される:
xInt
i=Clip3(SubPicLeftBoundaryPos/SubWidthC,
SubPicRightBoundaryPos/SubWidthC,xInt
L+i) (8-785)
yInt
i=Clip3(SubPicTopBoundaryPos/SubHeightC,
SubPicBotBoundaryPos/SubHeightC,yInt
L+i) (8-786)
- そうでない場合(subpic_treated_as_pic_flag[subPicIdx]が0に等しい)、以下が適用される:
xInt
i=Clip3(0,picW
C-1,sps_ref_wraparound_enabled_flag?
ClipH(xOffset,picW
C,xInt
C+i-1):xInt
C+i-1) (8-787)
yInt
i=Clip3(0,picH
C-1,yInt
C+i-1) (8-788)
フルサンプル単位のクロマ位置(xInt
i,yInt
i)が更に、i=0..3に対して、次のように変更される:
xInt
i=Clip3(xSbIntC-1,xSbIntC+sbWidth+2,xInt
i) (8-789)
yInt
i=Clip3(ySbIntC-1,ySbIntC+sbHeight+2,yInt
i) (8-790)
予測クロマサンプル値presampleLX
Cが、次のように導出される:
- xFrac
C及びyFrac
Cの両方が0に等しい場合、predSampleLX
Cの値は次のように導出される:
predSampleLX
C=refPicLX
C[xInt
1][yInt
1]<<shift3 (8-791)
- そうでなく、xFrac
Cが0に等しくなく且つyFrac
Cが0に等しい場合、predSampleLX
Cの値は次のように導出される:
【数5】
- そうでなく、xFrac
Cが0に等しく且つyFrac
Cが0に等しくない場合、predSampleLX
Cの値は次のように導出される:
【数6】
- そうでなく、xFrac
Cが0に等しくなく且つyFrac
Cが0に等しくない場合、predSampleLX
Cの値は次のように導出される:
- n=0..3のサンプル配列temp[n]が、次のように導出される:
【数7】
- 予測クロマサンプル値predSampleLX
Cが、次のように導出される:
predSampleLX
C=(f
C[yFrac
C][0]*temp[0]+f
C[yFrac
C][1]*temp[1]+
f
C[yFrac
C][2]*temp[2]+f
C[yFrac
C][3]*temp[3])>>shift2
(8-795)
【表3】
【0037】
2.5. 精緻化サブブロックベースアフィン動き補償予測
ここに開示される技術は、オプティカルフローを用いてサブブロックベースアフィン動き補償予測を精緻化する方法を含む。サブブロックベースアフィン動き補償が実行された後、予測サンプルが、オプティカルフロー方程式によって導出された差分を付えることによって精緻化され、これを、オプティカルフローでの予測精緻化(prediction refinement with optical flow;PROF)と呼ぶ、提案する方法は、メモリアクセス帯域幅を増加させることなく、ピクセルレベル粒度でインター予測を達成することができる。
【0038】
動き補償のより細かい粒度を達成するために、この寄稿は、オプティカルフローを用いてサブブロックベースアフィン動き補償予測を精緻化する方法を提案する。サブブロックベースアフィン動き補償が実行された後、オプティカルフロー方程式によって導出された差分を付えることによって、ルマ予測サンプルが精緻化される。提案するPROF(prediction refinement with optical flow)は、以下の4つのステップとして記述される。
【0039】
ステップ1) サブブロックベースアフィン動き補償を実行して、サブブロック予測I(i,j)を生成する。
【0040】
ステップ2) 各サンプル位置で3タップフィルタ[-1,0,1]を用いて、サブブロック予測の空間勾配gx(i,j)及びgy(i,j)を計算する:
gx(i,j)=I(i+1,j)-I(i-1,j)
gy(i,j)=I(i,j+1)-I(i,j-1)
この勾配計算のために、サブブロック予測がサイドごと1ピクセルだけ拡張される。メモリ帯域幅及び複雑さを抑制するために、拡張される境界上のピクセルは、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。従って、パディング領域のための追加の補間は回避される。
【0041】
ステップ3) オプティカルフロー方程式によってルマ予測精緻化(ΔIと表記):
ΔI(i,j)=g
x(i,j)*Δv
x(i,j)+g
y(i,j)*Δv
y(i,j)
が計算され、ここで、デルタMV(Δv(i,j)と表記)は、
図1に示すように、サンプル位置(i,j)について計算されたピクセルMV(v(i,j)と表記)と、ピクセル(i,j)が属するサブブロックのサブブロックMVとの間の差分である。
【0042】
アフィンモデルパラメータ及びサブブロック中心に対するピクセル位置はサブブロックごとに変化されないので、最初のサブブロックについてΔv(i,j)を計算し、それを同一CU内の他のサブブロックに対して再利用することができる。ピクセル位置からサブブロックの中心までの水平方向及び垂直方向のオフセットをx及びyとすると、Δv(x,y)を、次式:
【数8】
によって導出することができる。
4パラメータアフィンモデルでは、
【数9】
であり、
6パラメータアフィンモデルでは、
【数10】
であり、ここで、(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は、左上、右上、及び左下の制御点(コントロールポイント)動きベクトルであり、w及びhはCUの幅及び高さである。
【0043】
ステップ4) 最後に、このルマ予測精緻化がサブブロック予測I(i,j)に足し合わされる。最終的な予測I’が、次式:
I’(i,j)=I(i,j)+ΔI(i,j)
として生成される。
【0044】
以下、一部詳細を説明する。
【0045】
a) PROFのための勾配導出方法
一部の実施形態において、勾配は、各参照リストについてサブブロック(VTM-4.0における4×4サブブロック)ごとに計算される。各サブブロックについて、参照ブロックの最も近い整数サンプルをフェッチして、サンプルの4辺の外側のラインをパディングする。
【0046】
現在サブブロックについてのMVを(MVx,MVy)とする。次いで、(FracX,FracY)=(MVx&15,MVy&15)として分数部分が計算される。整数部分は(IntX,IntY)=(MVx>>4, MVy>>4)として計算される。オフセット(OffsetX,OffsetY)が:
OffsetX=FracX>7? 1:0;
OffsetY=FracY>7? 1:0;
として導出される。
【0047】
現在サブブロックの左上座標が(xCur,yCur)であり、現在サブブロックの寸法がW×Hであるとする。次いで、(xCor0,yCor0)、(xCor1,yCor1)、(xCor2,yCor2)、及び(xCor3,yCor3)が:
(xCor0,yCor0)=(xCur+IntX+OffsetX-1,
yCur+IntY+OffsetY-1);
(xCor1,yCor1)=(xCur+IntX+OffsetX-1,
yCur+IntY+OffsetY+H);
(xCor2,yCor2)=(xCur+IntX+OffsetX-1,
yCur+IntY+OffsetY);
(xCor3,yCor3)=(xCur+IntX+OffsetX+W,
yCur+IntY+OffsetY);
として計算される。
【0048】
x=0..W-1、y=0..H-1でのPredSample[x][y]がサブブロックの予測サンプルを格納するとする。次いで、パディングサンプルが:
PredSample[x][-1]=
(Ref(xCor0+x,yCor0)<<Shift0)-
Rounding, for x=-1..W;
PredSample[x][H]=
(Ref(xCor1+x,yCor1)<<Shift0)-
Rounding, for x=-1..W;
PredSample[-1][y]=
(Ref(xCor2,yCor2+y)<<Shift0)-
Rounding, for y=0..H-1;
PredSample[W][y]=
(Ref(xCor3,yCor3+y)<<Shift0)-
Rounding, for y=0..H-1
として導出され、ここで、Recは参照ピクチャを表す。Roundingは整数であり、この例示的なPROF実装では213に等しい。Shift0=Max(2,(14-BitDepth))であり、PROFは、VTM-4.0におけるBIOとは異なり、勾配の精度を上げることを試みるものであり、ここでは、勾配は、入力ルマサンプルと同じ精度で出力される。
【0049】
PROFでの勾配は、以下のように計算される:
Shift1=Shift0-4
gradientH[x][y]=(predSamples[x+1][y]-predSample[x-1][y])>>Shift1
gradientV[x][y]=(pred Sample[x][y+1]-predSample[x][y-1])>>Shift1
理解されるべきことには、predSamples[x][y]は、補間後の精度を保つ。
【0050】
b) PROFのためのΔv導出方法
Δv(posX=0..W-1、posY=0..H-1でdMvH[posX][posY]及びdMvV[posX][posY]と表記)の導出は、以下のように記述されることができる。
【0051】
現在ブロックの寸法がcbWidth×cbHeightであり、制御点動きベクトルの数がnumCpMvであり、そして、cpIdx=0..numCpMv-1で、制御点動きベクトルがcpMvLX[cpIdx]であり、Xは2つの参照リストを表す0又は1であるとする。
【0052】
変数log2CbW及びlog2CbHが、次のように導出される:
log2CbW=Log2(cbWidth)
log2CbH=Log2(cbHeight)
変数mvScaleHor、mvScaleVer、dHorX、及びdVerXが、次のように導出される:
mvScaleHor=cpMvLX[0][0]<<7
mvScaleVer=cpMvLX[0][1]<<7
dHorX=(cpMvLX[1][0]-cpMvLX[0][0])<<(7-log2CbW)
dVerX=(cpMvLX[1][1]-cpMvLX[0][1])<<(7-log2CbW)
【0053】
変数dHorY及びdVerYが、次のように導出される:
- numCpMvが3に等しい場合、以下が適用される:
dHorY=(cpMvLX[2][0]-cpMvLX[0][0])<<(7-log2CbH)
dVerY=(cpMvLX[2][1]-cpMvLX[0][1])<<(7-log2CbH)
- そうでない場合(numCpMvが2に等しい)、以下が適用される:
dHorY=-dVerX
dVerY=dHorX
【0054】
変数qHorX、qVerX、qHorY、及びqVerYが:
qHorX=dHorX<<2;
qVerX=dVerX<<2;
qHorY=dHorY<<2;
qVerY=dVerY<<2;
として導出される。
【0055】
dMvH[0][0]及びdMvV[0][0]が:
dMvH[0][0]=((dHorX+dHorY)<<1)-((qHorX+qHorY)<<1);
dMvV[0][0]=((dVerX+dVerY)<<1)-((qVerX+qVerY)<<1);
として計算される。
【0056】
1からW-1までのxPosについて、dMvH[xPos][0]及びdMvV[xPos][0]が:
dMvH[xPos][0]=dMvH[xPos-1][0]+qHorX;
dMvV[xPos][0]=dMvV[xPos-1][0]+qVerX;
として導出される。
【0057】
1からH-1までのyPosについて、以下が適用される:
xPos=0..W-1で、dMvH[xPos][yPos]=dMvH[xPos][yPos-1]+qHorY
xPos=0..W-1で、dMvV[xPos][yPos]=dMvV[xPos][yPos-1]+qVerY
【0058】
最後に、posX=0..W-1、posY=0..H-1でのdMvH[xPos][yPos]及びdMvV[xPos][yPos]が:
dMvH[xPos][yPos]=SatShift(dMvH[xPos][yPos],7+2-1);
dMvV[xPos][yPos]=SatShift(dMvV[xPos][yPos],7+2-1);
として右シフトされ、ここで、SatShift(x,n)及びShift(x,n)は:
【数11】
として定義される。
【0059】
一例において、offset0及び/又はoffset1は、(1<<n)>>1に設定される。
【0060】
c)PROFのためのΔI導出方法
サブブロックの内側の位置(posX,posY)について、その対応するΔv(i,j)を、(dMvH[posX][posY],dMvV[posX][posY])と表記する。その対応する勾配を(gradientH[posX][posY],gradientV[posX][posY])と表記する。
【0061】
次いで、ΔI(posX,posY)が、次のように導出される:
(dMvH[posX][posY],dMvV[posX][posY])が、以下のようにクリッピングされる:
dMvH[posX][posY]=Clip3(-32768,32767,dMvH[posX][posY]);
dMvV[posX][posY]=Clip3(-32768,32767,dMvV[posX][posY]);
ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY];
ΔI(posX,posY)=Shift(ΔI(posX,posY),1+1+4);
ΔI(posX,posY)=Clip3(-(213-1),213-1,ΔI(posX,posY))。
【0062】
d)PROFのためのI’導出方法
現在ブロックが双予測又は重み付け予測としてコーディングされない場合、
I’(posX,posY)=Shift((I(posX,posY)+ΔI(posX,posY))),Shift0、
I’(posX,posY)=ClipSample(I’(posX,posY))
であり、ここで、ClipSampleは、サンプル値を妥当な出力サンプル値へとクリッピングする。そして、I’(posX,posY)がインター予測値として出力される;
そうでない場合(現在ブロックが双予測又は重み付け予測としてコーディングされる)、I’(posX,posY)は格納されて、他の予測値及び/又は重み付け値に従ってインター予測値を生成するのに使用されることになる。
【0063】
2.6. スライスヘッダ例
(外2)
2.7. シーケンスパラメータセット例
(外3)
2.8.ピクチャパラメータセット例
(外4)
2.9.適応パラメータセット例
(外5)
(外6)
(外7)
(外8)
【0064】
2.10. ピクチャヘッダ例
一部の実施形態において、ピクチャヘッダは、以下の特性を有するように設計される。
【0065】
1. ピクチャヘッダNALユニットの時間ID及びレイヤIDが、そのピクチャヘッダを含むレイヤアクセスユニットの時間ID及びレイヤIDと同じである。
【0066】
2. ピクチャヘッダNALユニットが、その関連ピクチャの最初のスライスを含むNALユニットに先行する。これは、ピクチャヘッダと、そのピクチャヘッダに関連付けられたピクチャのスライスとの間の関連付けを、ピクチャヘッダIDがピクチャヘッダ内でシグナリングされてスライスヘッダから参照されることを必要とせずに確立する。
【0067】
3. ピクチャヘッダNALユニットが、ピクチャレベルのパラメータセット、又は例えばDPS、VPS、SPS、PPSなどの、より高いレベルのものに続く。これは結果として、それらのパラメータセットがピクチャ内又はアクセスユニット内で繰り返されない/存在しないことを必要とする。
【0068】
4. ピクチャヘッダが、その関連ピクチャのピクチャタイプについての情報を含む。ピクチャタイプは、以下(網羅的なリストではない)を定義するのに使用され得る:
a. ピクチャはIDRピクチャである;
b. ピクチャはCRAピクチャである;
c. ピクチャはGDRピクチャである;
d. ピクチャは非IRAP、非GDRピクチャであり、Iスライスのみを含む;
e. ピクチャは非IRAP、非GDRピクチャであり、Pスライス及びIスライスのみを含むことができる;
f. ピクチャは非IRAP、非GDRピクチャであり、Bスライス、Pスライス、及び/又はIスライスのいずれかを含む。
【0069】
5. スライスヘッダ内でのピクチャレベルシンタックス要素のシグナリングをピクチャヘッダに移動させる。
【0070】
6. 同一ピクチャの全てのスライスに対して典型的に同じであるスライスヘッダ内の非ピクチャレベルシンタックス要素を、ピクチャヘッダ内でシグナリングする。それらのシンタックス要素がピクチャヘッダ内に存在しないとき、それらはスライスヘッダ内でシグナリングされてもよい。
【0071】
一部の実装において、必須ピクチャヘッダコンセプトが、ピクチャの最初のVCL NALユニットとしてピクチャ当たり一度伝送されるように使用される。現行ではスライスヘッダ内にあるシンタックス要素をこのピクチャヘッダに移動させることも提案される。機能的にピクチャヘッダ当たり一度だけ伝送される必要があるシンタックス要素は、所与のピクチャに対して何度も送信される(例えば、スライスヘッダ内のシンタックス要素はスライス当たり一度伝送される)代わりに、ピクチャヘッダに移動され得る。ピクチャ内で同じであるように制約されるスライスヘッダシンタックス要素を移動させる。
【0072】
それらのシンタックス要素は既に、ピクチャの全てのスライスで同じであるように制約されている。主張しておくことには、それらのフィールドをピクチャヘッダに移動させて、それらがスライス当たり一回ではなくピクチャ当たり一回のみシグナリングされるようにすることは、それらのシンタックス要素の機能を何ら変えることなく、不要で冗長なビット伝送を回避することになる。
【0073】
1. 一部の実装では、以下のセマンティック制約が存在する。
【0074】
存在する場合に、スライスヘッダシンタックス要素slice_pic_parameter_set_id、non_reference_picture_flag、colour_plane_id、slice_pic_order_cnt_lsb、recovery_poc_cnt、no_output_of_prior_pics_flag、pic_output_flag、及びslice_temporal_mvp_enabled_flagの各々の値は、ある符号化ピクチャの全てのスライスヘッダで同じである。従って、これらのシンタックス要素の各々をピクチャヘッダに移動させて、不要な冗長ビットを回避し得る。
【0075】
recovery_poc_cnt及びno_output_of_prior_pics_flagは、この寄稿ではピクチャヘッダに移動されない。スライスヘッダにおけるそれらの存在は、スライスヘッダnal_unit_typeの条件付きチェックに依存し、それ故に、これらのシンタックス要素をピクチャヘッダに移動させることを望む場合には、それらを調べることを提案する。
【0076】
2. 一部の実装では、以下のセマンティック制約が存在する。
【0077】
存在する場合に、slice_lmcs_aps_idの値は、ピクチャの全てのスライスに対して同じである。
【0078】
存在する場合に、slice_scaling_list_aps_idの値は、ピクチャの全てのスライスに対して同じである。従って、これらのシンタックス要素の各々をピクチャヘッダに移動させて、不要な冗長ビットを回避し得る。
【0079】
一部の実施形態において、これらシンタックス要素は、現行では、ピクチャの全てのスライスで同じであるようには制約されていない。全スライスヘッダにて多数のシンタックス要素を処理することには複雑さの影響があると主張されるとき、VVC全体設計を単純化するためにどのシンタックス要素をピクチャヘッダに移動させることができるかを決定すべく、これらのシンタックス要素の予想される用法を評価することを提案する。
【0080】
1. 以下のシンタックス要素をピクチャヘッダに移動させることを提案する。現行では、これらについて、異なるスライスに対して異なる値を持つという制約はないが、主張しておくことには、これらの予想される用法はピクチャレベルで変化し得るので、全スライスヘッダ内でこれらを伝送することには、利益がない/最小限であるとともに、符号化損失が存在する:
a. six_minus_max_num_merge_cand
b. five_minus_max_num_subblock_merge_cand
c. slice_fpel_mmvd_enabled_flag
d. slice_disable_bdof_dmvr_flag
e. max_num_merge_cand_minus_max_num_triangle_cand
f. slice_six_minus_max_num_ibc_merge_cand
【0081】
2. 以下のシンタックス要素をピクチャヘッダに移動させることを提案する。現行では、これらについて、異なるスライスに対して異なる値を持つという制約はないが、主張しておくことには、これらの予想される用法はピクチャレベルで変化し得るので、全スライスヘッダ内でこれらを伝送することには、利益がない/最小限であるとともに、符号化損失が存在する:
a. partition_constraints_override_flag
b. slice_log2_diff_min_qt_min_cb_luma
c. slice_max_mtt_hierarchy_depth_luma
d. slice_log2_diff_max_bt_min_qt_luma
e. slice_log2_diff_max_tt_min_qt_luma
f. slice_log2_diff_min_qt_min_cb_chroma
g. slice_max_mtt_hierarchy_depth_chroma
h. slice_log2_diff_max_bt_min_qt_chroma
i. slice_log2_diff_max_tt_min_qt_chroma
【0082】
これらのシンタックス要素の一部に関連する条件付きチェック“slice_type==I”は、ピクチャヘッダへの移動に伴って削除されている。
【0083】
3. 以下のシンタックス要素をピクチャヘッダに移動させることを提案する。現行では、これらについて、異なるスライスに対して異なる値を持つという制約はないが、主張しておくことには、これらの予想される用法はピクチャレベルで変化し得るので、全スライスヘッダ内でこれらを伝送することには、利益がない/最小限であるとともに、符号化損失が存在する:
a. mvd_l1_zero_flag
【0084】
これらのシンタックス要素の一部に関連する条件付きチェック“slice_type==B”は、ピクチャヘッダへの移動に伴って削除されている。
【0085】
4. 以下のシンタックス要素をピクチャヘッダに移動させることを提案する。現行では、これらについて、異なるスライスに対して異なる値を持つという制約はないが、主張しておくことには、これらの予想される用法はピクチャレベルで変化し得るので、全スライスヘッダ内でこれらを伝送することには、利益がない/最小限であるとともに、符号化損失が存在する:
a. dep_quant_enabled_flag
b. sign_data_hiding_enabled_flag
【0086】
3.既存の実装の欠点
DMVR及びBIOは、動きベクトルを精緻化する際に元の信号が関与せず、このことが、不正確な動き情報を有すコーディングブロックを生じさせることがある。また、DMVR及びBIOは動き精緻化後の分数動きベクトルを使用するときがあるのに対し、スクリーン映像は整数動きベクトルを有するのが通常であり、これは、現行の動き情報をより不正確にし、コーディング性能を悪化させる。
【0087】
VVCでRPRが適用されるとき、RPR(ARC)は以下の問題を有し得る。
【0088】
1. RPRでは、ブロック内の隣接し合うサンプルに対して補間フィルタが異なることがあり、これはSIMD(単一命令複数データ)実装に望ましくない。
【0089】
2. 境界領域がRPRを考慮しない。
【0090】
3. 「適合クロッピングウィンドウオフセットパラメータは出力でのみ適用される。内部復号プロセスは全て、クロッピングされてないピクチャサイズに適用される。」と注意書きされている。しかしながら、それらのパラメータは、RPRが適用されるときに復号プロセスで使用されることがある。
【0091】
4. 参照サンプル位置を導出するときに、RPRは、2つの適合ウィンドウ間の比のみを考慮する。しかし、2つの適合ウィンドウ間の左上オフセット差も考慮されるべきである。
【0092】
5. VVCでは参照ピクチャの幅/高さと現在ピクチャの幅/高さとの比が制約されている。しかしながら、参照ピクチャの適合ウィンドウの幅/高さと現在ピクチャの適合ウィンドウの幅/高さとの比は制約されていない。
【0093】
6. 全てのシンタックス要素がピクチャヘッダ内で適切に扱われているわけではない。
【0094】
7. 現行のVVCにおいては、TPM、GEO予測モードで、映像シーケンスのクロマサンプル位置タイプに関係なくクロマ混合重みが導出されている。例えば、TPM/GEOにおいて、クロマ重みがルマ重みから導出される場合、クロマ信号のサンプリングに一致するように、ルマ重みをダウンサンプリングする必要があり得る。クロマダウンサンプリングは、通常、ITU-R BT.601又はITU-R BT.709コンテナで広く使用されているものであるクロマサンプル位置タイプ0を仮定して適用される。しかしながら、これは、異なるクロマサンプル位置タイプが使用される場合に、クロマサンプルとダウンサンプリングされたルマサンプルとの間にミスアライメントを生じさせ、コーディング性能を低下させてしまい得る。
【0095】
4. 技術及び実施形態の例
以下に記載される詳細な実施形態は、一般的概念を説明するための例とみなされるべきである。これらの実施形態は狭義に解釈されるべきではない。さらに、これらの実施形態は、何らかのやり方で組み合わされることができる。
【0096】
以下に記載される方法はまた、以下に記載されるDMVR及びBIOに加えて、他のデコーダ動き情報導出技術にも適用可能であり得る。
【0097】
動きベクトルを(mv_x,mv_y)と表記し、mv_xは水平成分、mv_yは垂直成分である。
【0098】
この開示において、ピクチャの解像度(又は寸法、幅/高さ、又はサイズ)は、符号化/復号ピクチャの解像度(又は寸法、幅/高さ、又はサイズ)を指すことができ、あるいは符号化/復号ピクチャの適合ウィンドウの解像度(又は寸法、幅/高さ、又はサイズ)を指してもよい。
RPRにおける動き補償
1. 参照ピクチャの解像度が現在ピクチャとは異なるとき、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいとき、現在ブロックの一群のサンプル(サンプルのグループ)(少なくとも2つのサンプル)についての予測値は、同じ水平及び/又は垂直補間フィルタを用いて生成され得る:
a. 一例において、該グループは、ブロックの領域内の全てのサンプルを有し得る:
i. 例えば、ブロックは、互いに重なり合わないS個のM×N矩形に分割され得る。各M×N矩形がグループである。
図2に示す例において、16×16ブロックを、各々がグループである16個の4×4矩形に分割することができる;
ii. 例えば、N個のサンプルを有する行がグループである。Nは、ブロック幅以下の整数である。一例において、Nは、4又は8又はブロック幅である;
iii. 例えば、N個のサンプルを有する列がグループである。Nは、ブロック高さ以下の整数である。一例において、Nは、4又は8又はブロック高さである;
iv. M及び/又はNは、予め定められてもよいし、あるいは例えばブロック寸法/符号化情報などに基づいてオンザフライで導出されてもよいし、あるいはシグナリングされてもよい;
b. 一例において、グループ内のサンプルは、同じMV(共有MVと表記する)を持ち得る;
c. 一例において、グループ内のサンプルは、同じ水平成分(共有水平成分と表記する)を有するMVを持ち得る;
d. 一例において、グループ内のサンプルは、同じ垂直成分(共有垂直成分と表記する)を有するMVを持ち得る;
e. 一例において、グループ内のサンプルは、水平成分の同じ分数部分(共有分数水平成分と表記する)を有するMVを持ち得る:
i. 例えば、第1のサンプルに対するMVが(MV1x,MV1y)であり、第2のサンプルに対するMVが(MV2x,MV2y)であるとすると、MV1x&(2
M-1)がMV2x&(2
M-1)に等しいことを満足すべきであり、ここで、MはMV精度を表す。例えば、M=4である;
f. 一例において、グループ内のサンプルは、垂直成分の同じ分数部分(共有分数垂直成分と表記する)を有するMVを持ち得る:
i. 例えば、第1のサンプルに対するMVが(MV1x,MV1y)であり、第2のサンプルに対するMVが(MV2x,MV2y)であるとすると、MV1y&(2
M-1)がMV2y&(2
M-1)に等しいことを満足すべきであり、ここで、MはMV精度を表す。例えば、M=4である;
g. 一例において、予測されるグループ内のサンプルについて、先ず、現在ピクチャ及び参照ピクチャ(例えば、JVET-O2001-v14の8.5.6.3.1で導出される参照ピクチャ(例えば、(refx
L,refy
L))に従って、MV
bと表記する動きベクトルが導出される。次いで、MV
bを更に、例えば上の箇条書きなどの要件を満たすようにMV’に変更する(例えば、丸める/切り捨てる/クリッピングする)ことができ、MV’が、サンプルの予測サンプルを導出するのに使用されることになる:
i. 一例において、MV’は、MV
bと同じ整数部分を持ち、MV’の小数部分は、共有分数水平成分及び/又は共有分数垂直部分であるように設定される;
ii. 一例において、MV’は、共有分数水平成分及び/又は共有分数垂直成分のうちMV
bに近い方に設定される;
h. 共有動きベクトル(及び/又は共有水平成分及び/又は共有垂直成分、及び/又は共有分数水平成分及び/又は共有分数垂直成分)は、グループ内の特定のサンプルの共有動きベクトル(及び/又は共有水平成分及び/又は共有垂直成分、及び/又は共有分数水平成分及び/又は共有分数垂直成分)に設定され得る:
i. 例えば、特定のサンプルは、例えば
図3Aに示す“A”、“B”、“C”及び“D”など、矩形のグループのコーナーにあるとし得る;
ii. 例えば、特定のサンプルは、例えば
図3Aに示す“E”、“F”、“G”及び“H”など、矩形のグループの中心にあるとし得る;
iii. 例えば、特定のサンプルは、例えば
図3B及び3Cに示す“A”及び“D”など、行形状又は列形状のグループの一端にあるとし得る;
iv. 例えば、特定のサンプルは、例えば
図3B及び3Cに示す“B”及び“C”など、行形状又は列形状のグループの中央にあるとし得る;
v. 一例において、特定のサンプルの動きベクトルは、箇条書きgで述べたMV
bとし得る;
i. 共有動きベクトル(及び/又は共有水平成分及び/又は共有垂直成分、及び/又は共有分数水平成分及び/又は共有分数垂直成分)は、そのグループ内の全てのサンプルと異なる位置にある仮想サンプルの動きベクトル(及び/又は水平成分及び/又は垂直成分、及び/又は分数水平成分及び/又は分数垂直成分)であるように設定され得る:
i. 一例において、仮想サンプルはグループ内にはないが、グループ内の全てのサンプルをカバーする領域内に位置する:
1) あるいは、仮想サンプルは、グループ内の全てのサンプルをカバーする領域の外側、例えば、該領域の右下の位置の隣、に位置する;
ii. 一例において、仮想サンプルのMVは、実際のサンプルと同じようにして導出されるが、複数の異なる位置で導出される;
iii.
図3A-3C内の“V”は、仮想サンプルの3つの例を示している;
j. 共有MV(及び/又は共有水平成分及び/又は共有垂直成分、及び/又は共有分数水平成分及び/又は共有分数垂直成分)は、複数のサンプル及び/又は仮想サンプルのMV(及び/又は水平成分及び/又は垂直成分、及び/又は分数水平成分及び/又は分数垂直成分)の関数であるように設定され得る:
i. 例えば、共有MV(及び/又は共有水平成分及び/又は共有垂直成分、及び/又は共有分数水平成分及び/又は共有分数垂直成分)は、グループ内のサンプルの全て若しくは一部の、又は
図3Aのサンプル“E”、“F”、“G”、“H”の、又は
図3Aのサンプル“E”、“H”の、又は
図3Aのサンプル“A”、“B”、“C”、“D”の、又は
図3Aのサンプル“A”、“D”の、又は
図3Bのサンプル“B”、“C”の、又は
図3Bのサンプル“A”、“D”の、又は
図3Cのサンプル“B”、“C”の、又は
図3Cのサンプル“A”、“D”のMV(及び/又は水平成分及び/又は垂直成分、及び/又は分数水平成分及び/又は分数垂直成分)の平均であるように設定され得る。
2. 参照ピクチャの解像度が現在ピクチャとは異なるとき、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいとき、整数MVのみが、現在ブロックの予測ブロックを導出する動き補償プロセスを実行するのを許されることを提案する:
a. 一例において、予測されるサンプルに対する複合動きベクトルは、使用される前に整数MVに丸められる;
b. 一例において、予測されるサンプルに対する複合動きベクトルは、復号動きベクトルに最も近い整数MVに丸められる;
c. 一例において、予測されるサンプルに対する複合動きベクトルは、水平方向に復号動きベクトルに最も近い整数MVに丸められる;
d. 一例において、予測されるサンプルに対する複合動きベクトルは、垂直方向に復号動きベクトルに最も近い整数MVに丸められる。
3. 現在ブロック内のサンプルに対する動き補償プロセスで使用される動きベクトル(例えば、上の箇条書きで述べた共有MV/共有水平又は垂直又は分数成分/MV’)は、復号ピクチャバッファに格納されて、現在ピクチャ/異なるピクチャ内の後続ブロックの動きベクトル予測に利用され得る:
a. あるいは、現在ブロック内のサンプルに対する動き補償プロセスで使用される動きベクトル(例えば、上の箇条書きで述べた共有MV/共有水平又は垂直又は分数成分/MV’)は、現在ピクチャ/異なるピクチャ内の後続ブロックの動きベクトル予測に利用されることを禁止されてもよい:
i. 一例において、復号動きベクトル(例えば、上の箇条書きにおけるMV
b)が、現在ピクチャ/異なるピクチャ内の後続ブロックの動きベクトル予測に利用され得る;
b. 一例において、現在ブロック内のサンプルに対する動き補償プロセスで使用される動きベクトルは、フィルタリングプロセス(例えば、デブロッキングフィルタ/SAO/ALF)で利用され得る:
i. あるいは、復号動きベクトル(例えば、上の箇条書きにおけるMV
b)が、フィルタリングプロセスに利用されてもよい;
c. 一例において、このようなMVは、サブブロックレベルで導出されて、各サブブロックに対して記憶され得る。
4. 現在ブロックの予測ブロックを導出する動き補償プロセスで使用される補間フィルタが、参照ピクチャの解像度が現在ピクチャとは異なるか、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいかに応じて選択され得ることを提案する:
a. 一例において、条件Aが満たされるときに、より少ないタップを有する補間フィルタを適用することができ、条件Aは、現在ピクチャ及び/又は参照ピクチャの寸法に依存する:
i. 一例において、条件Aは、参照ピクチャの解像度が現在ピクチャとは異なることである;
ii. 一例において、条件Aは、参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいことである;
iii. 一例において、条件Aは、W1>a*W2及び/又はH1>b*H2であり、ここで、(W1,H1)は参照ピクチャの幅及び高さを表し、(W2,H2)は現在ピクチャの幅及び高さを表し、a及びbは2つの係数であり、例えば、a=b=1.5である;
iv. 一例において、条件Aは、双予測が使用されるかにも依存し得る;
v. 一例において、1タップフィルタが適用される。換言すれば、フィルタリングなしの整数ピクセルが補間結果として出力される;
vi. 一例において、参照ピクチャの解像度が現在ピクチャとは異なるとき、双線形フィルタが適用される;
vii. 一例において、参照ピクチャの解像度が現在ピクチャとは異なるとき、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいとき、4タップフィルタ又は6タップフィルタが適用される:
1) 6タップフィルタは、アフィン動き補償にも使用され得る;
2) 4タップフィルタは、クロマサンプルに対する補間にも使用され得る;
b. 一例において、参照ピクチャの解像度が現在ピクチャとは異なるとき、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいとき、補間を実行するためにパディングサンプルが使用される;
c. 箇条書き4に開示される方法を適用するかどうか、及び/又はどのように適用するかは、カラー成分に依存し得る:
i. 例えば、当該方法はルマコンポーネントのみに適用される;
d. 箇条書き4に開示される方法を適用するかどうか、及び/又はどのように適用するかは、補間フィルタリング方向に依存し得る:
i. 例えば、当該方法は水平フィルタリングのみに適用される;
ii. 例えば、当該方法は垂直フィルタリングのみに適用される。
5. 参照ピクチャの解像度が現在ピクチャとは異なるとき、又は参照ピクチャの幅及び/又は高さが現在ピクチャのそれよりも大きいとき、予測ブロック生成のための二段階プロセスが適用されることを提案する:
a. 第1段階にて、現在ピクチャ及び参照ピクチャの幅及び/又は高さに応じて参照ピクチャ内の領域のアップサンプリング又はダウンサンプリングによって、仮想参照ブロックが生成される;
b. 第2段階にて、現在ピクチャ及び参照ピクチャの幅及び/又は高さとは無関係に補間フィルタリングを適用することによって、仮想参照ブロックから予測サンプルが生成される。
6. 一部の実施形態においてのような参照サンプルパディングのための境界ブロックの左上座標(xSbInt
L,ySbInt
L)の計算が、現在ピクチャ及び参照ピクチャの幅及び/又は高さに応じて導出され得ることを提案する:
a. 一例において、フルサンプル単位のルマ位置が:
xInt
i=Clip3(xSbInt
L-Dx,xSbInt
L+sbWidth+Ux,xInt
i)、
yInt
i=Clip3(ySbInt
L-Dy,ySbInt
L+sbHeight+Uy,yInt
i)
のように変更され、ここで、Dx及び/又はDy、及び/又はUx及び/又はUyは、現在ピクチャ及び参照ピクチャの幅及び/又は高さに依存し得る;
b. 一例において、フルサンプル単位のクロマ位置が:
xInti=Clip3(xSbInt
C-Dx,xSbInt
C+sbWidth+Ux,xInti)、
yInti=Clip3(ySbInt
C-Dy,ySbInt
C+sbHeight+Uy,yInti)
のように変更され、ここで、Dx及び/又はDy、及び/又はUx及び/又はUyは、現在ピクチャ及び参照ピクチャの幅及び/又は高さに依存し得る。
7. 現在ピクチャと同じ参照ピクチャ解像度に基づく動きベクトルをブロック用に記憶/使用することに代えて、解像度差を考慮に入れた実際の動きベクトルを使用することを提案する:
a. あるいは、さらに、動きベクトルを用いて予測ブロックを生成するときに、現在ピクチャ及び参照ピクチャの解像度(例えば、(refx
L,refy
L))に従って動きベクトルを更に変更する必要はない。
RPRと他のコーディングツールとの間の相互作用
8. フィルタリングプロセス(例えば、デブロッキングフィルタ)を適用すべきか/どのように適用するかは、参照ピクチャの解像度及び/又は現在ピクチャの解像度に依存し得る:
a. 一例において、デブロッキングフィルタにおける境界強度(BS)設定が、動きベクトル差に加えて解像度差を考慮に入れ得る:
i. 一例において、現在ピクチャ及び参照ピクチャの解像度に応じてスケーリングされた動きベクトル差を用いて境界強度を決定し得る;
b. 一例において、ブロックAの少なくとも1つの参照ピクチャの解像度がブロックBの少なくとも1つの参照ピクチャの解像度と異なる(又はそれよりも小さい若しくは大きい)場合に、ブロックAとブロックBとの間の境界に対するデブロッキングフィルタの強さが、それら2つのブロックに対して同じ解像度が使用される場合と比較して異なるように(例えば、増加されて/減少されて)設定され得る;
c. 一例において、ブロックAの少なくとも1つの参照ピクチャの解像度がブロックBの少なくとも1つの参照ピクチャの解像度と異なる(又はそれよりも小さい若しくは大きい)場合に、ブロックAとブロックBの間の境界が、フィルタリングされるべきとしてマークされる(例えば、BSが2に設定される);
d. 一例において、ブロックA及び/又はブロックBの少なくとも1つの参照ピクチャの解像度が現在ピクチャの解像度と異なる(又はそれよりも小さい若しくは大きい)場合に、ブロックAとブロックBとの間の境界に対するデブロッキングフィルタの強さが、参照ピクチャ及び現在ピクチャに同じ解像度が使用される場合と比較して異なるように(例えば、増加されて/減少されて)設定され得る;
e. 一例において、2つのブロックの間の境界が、それら2つのうちの少なくとも一方のブロックの少なくとも1つの参照ピクチャが現在のピクチャの解像度と異なる解像度を持つ場合に、フィルタリングされるべきとしてマークされる(例えば、BSが2に設定される)。
9. サブピクチャが存在するとき、適合ビットストリームは、参照ピクチャが現在ピクチャと同じ解像度を持たなければならないことを満たすべきであるとし得る:
a. あるいは、参照ピクチャが現在ピクチャとは異なる解像度を持つとき、現在ピクチャにサブピクチャは存在しない;
b. あるいは、現在ピクチャ内のサブピクチャに対して、現在ピクチャとは異なる解像度を有する参照ピクチャを使用することが禁止される:
i. あるいは、さらに、異なる解像度を有する参照ピクチャを除外するために参照ピクチャ管理が呼び出され得る。
10. 一例において、異なる解像度を有するピクチャに対して別々にサブピクチャ(例えば、1つのピクチャをどのように複数のサブピクチャにスプリットするか)が定義され得る:
一例において、参照ピクチャが現在ピクチャとは異なる解像度を持つ場合、現在ピクチャのサブピクチャをスケーリング及び/又はオフセットすることによって、参照ピクチャ内の対応するサブピクチャを導出することができる。
11. 参照ピクチャが現在ピクチャの解像度とは異なる解像度を持つとき、PROF(オプティカルフローでの予測精緻化)を有効にすることができる:
a. 一例において、一群のサンプルに対して、一組のMV(MV
gと表記する)が生成され、箇条書き1に記載したように動き補償に使用され得る。一方、各サンプルに対してMV(MV
pと表記する)を導出することができ、MV
pとMV
gとの間の差(例えば、PROFで使用されるΔvに対応する)が、勾配(例えば、動き補償ブロックの空間勾配)と共に、予測精緻化を導出するために使用され得る;
b. 一例において、MV
pは、MV
gとは異なる精度を有し得る。例えば、MV
pは、1/Nペル(N>0)精度でのものであることができ、N=32、64などである;
c. 一例において、MV
gは、内部MV精度(例えば、1/16ペル)とは異なる精度でのものであることができる;
d. 一例において、予測精緻化が予測ブロックに足し合わされて、精緻化予測ブロックを生成する;
e. 一例において、このような方法は各予測方向で適用され得る;
f. 一例において、このような方法は片予測の場合にのみ適用され得る;
g. 一例において、このような方法は片予測又は/及び双予測で適用され得る;
h. 一例において、このような方法は、参照ピクチャが現在ピクチャとは異なる解像度を持つ場合にのみ適用され得る。
12. 参照ピクチャの解像度が現在ピクチャのそれとは異なるとき、現在ブロックの予測ブロックを導出する動き補償プロセスを実行するのに、ブロック/サブブロックに対して1つのMVのみが利用され得ることを提案する:
a. 一例において、ブロック/サブブロックに対する唯一のMVは、ブロック/サブブロック内の各サンプルに関連する全てのMVの関数(例えば、平均)として定められ得る;
b. 一例において、ブロック/サブブロックに対する唯一のMVは、ブロック/サブブロック内の選択されたサンプル(例えば、中心サンプル)に関連する選択されたMVとして定められ得る;
c. 一例において、4×4ブロック又はサブブロック(例えば、4×1)に対して唯一のMVが使用され得る;
d. 一例において、ブロックベースの動きベクトルに起因する精度損失を補償するために、更にBIOが適用され得る。
13. 参照ピクチャの幅及び/又は高さが現在ピクチャのそれとは異なるとき、ブロックベースの動きベクトルをシグナリングしない怠惰(レイジー)モードが適用され得る:
a. 一例において、動きベクトルもシグナリングされず、動き補償プロセスは静止画像の純粋な解像度変化の場合を近似する;
b. 一例において、解像度が変化するときに、ピクチャ/タイル/ブリック/CTUレベルで動きベクトルのみがシグナリングされ、関係するブロックがその動きベクトルを使用し得る。
14. アフィン予測モード及び/又は非アフィン予測モードでコーディングされるブロックについて、参照ピクチャの幅及び/又は高さが現在ピクチャのそれとは異なるとき、動き補償を近似するためにPROFが適用され得る:
a. 一例において、PROFは、参照ピクチャの幅及び/又は高さと現在ピクチャのそれとが異なるときに有効にされ得る;
b. 一例において、一組のアフィン運動が、指し示された動きと、スケーリングされてPROFによって使用される解像度とを組み合わせることによって生成され得る。
15. 参照ピクチャの幅及び/又は高さが現在ピクチャのそれとは異なるとき、動き補償を近似するために、インターウィーブ予測(例えば、JVET-K0102で提案されているような)が適用され得る:
a. 一例において、解像度変化(ズーミング)がアフィン運動として表現され、インターウィーブ動き予測が適用され得る。
16. 現在ピクチャの幅及び/又は高さが、同じIRAP期間内のIRAPピクチャのそれとは異なるとき、LMCS及び/又はクロマ残差スケーリングが無効にされ得る:
a. 一例において、LMCSが無効にされるとき、例えばslice_lmcs_enabled_flag、slice_lmcs_aps_id、及びslice_chroma_residual_scale_flagなどのスライスレベルフラグは、シグナリングされずに0であると推定され得る;
b. 一例において、クロマ残差スケーリングが無効にされるとき、例えばslice_chroma_residual_scale_flagなどのスライスレベルフラグは、シグナリングされずに0であると推定され得る。
RPRについての制約
17. RPRは、ブロック寸法制約を有するコーディングブロックに適用され得る:
a. 一例において、Mをブロック幅、Nをブロック高さとして、M×Nコーディングブロックについて、M*N<T又はM*N<=Tであるとき(例えばT=256など)、RPRは使用されないとし得る;
b. 一例において、M<K(又はM<=K)(例えばK=16など)及び/又はN<L(又はN<=L)(例えばL=16など)であるとき、RPRは使用されないとし得る。
18. アクティブ参照ピクチャ(又はその適合ウィンドウ)の幅及び/又は高さと現在ピクチャ(又はその適合ウィンドウ)のそれとの間の比を制約するために、ビットストリーム適合が付加され得る。refPicW及びrefPicHが参照ピクチャの幅及び高さを表し、curPicW及びcurPicHが現在ピクチャの幅及び高さを表すとする:
a. 一例において、(refPicW÷curPicW)が整数に等しいとき、その参照ピクチャはアクティブ参照ピクチャとしてマークされ得る:
i. あるいは、(refPicW÷curPicW)が分数に等しいとき、その参照ピクチャは利用可能でないとしてマークされ得る;
b. 一例において、例えばX=1/2など、Xは分数を表し、例えばn=1,2,3,4,…など、nは整数を表すとして、(refPicW÷curPicW)が(X*n)に等しいとき、その参照ピクチャはアクティブ参照ピクチャとしてマークされ得る:
i. 一例において、(refPicW÷curPicW)が(X*n)に等しくないとき、その参照ピクチャは利用可能でないとしてマークされ得る。
19. M×Nブロックに対してコーディングツール(例えば、双予測/全体的な三角予測モード(TPM)/TPMにおける混合プロセス)を有効にすべきか及び/又はどのように有効にするかが、参照ピクチャ(又はそれらの適合ウィンドウ)の解像度及び/又は現在ピクチャ(又はその適合ウィンドウ)の解像度に依存し得る:
a. 一例において、M*N<T又はM*N<=T(例えばT=64など)である;
b. 一例において、M<K(又はM<=K)(例えばK=16など)及び/又はN<L(又はN<=L)(例えばL=16など)である;
c. 一例において、少なくとも1つの参照ピクチャの幅/高さが現在ピクチャとは異なるとき、コーディングツールは許可されない:
i. 一例において、ブロックの少なくとも1つの参照ピクチャの幅/高さが現在ピクチャのそれよりも大きいとき、コーディングツールは許可されない;
d. 一例において、ブロックの各参照ピクチャの幅/高さが現在ピクチャのそれとは異なるとき、コーディングツールは許可されない:
i. 一例において、各参照ピクチャの幅/高さが現在ピクチャのそれよりも大きいとき、コーディングツールは許可されない;
e. あるいは、さらに、コーディングツールが許可されないとき、動き補償は、片予測として1つのMVで行われ得る。
適合ウィンドウ関連
20. Nは1より大きい正の整数であるとして、適合クロッピングウィンドウオフセットパラメータ(例えば、conf_win_left_offset)が、1ペルに代えてNペル精度でシグナリングされる:
a. 一例において、実際のオフセットは、シグナリングされたオフセットにNを乗じたものとして導出され得る;
b. 一例において、Nは4又は8に設定される。
21. 適合クロッピングウィンドウオフセットパラメータが出力で適用されるのみではないことを提案する。特定の内部復号プロセスが、クロッピングされたピクチャサイズ(すなわち、ピクチャ内の適合ウィンドウの解像度)に依存し得る。
22. 第1の映像ユニットにおいてと、第2の映像ユニットにおいてとで、(pic_width_in_luma_samples,pic_height_in_luma_samples)と表記されるピクチャの幅及び/又は高さが同じであるとき、第1の映像ユニット(例えば、PPS)においてと、第2の映像ユニットにおいてとで、適合クロッピングウィンドウオフセットパラメータが異なり得ることを提案する。
23. 第1の映像ユニットにおいてと、第2の映像ユニットにおいてとで、(pic_width_in_luma_samples,pic_height_in_luma_samples)と表記されるピクチャの幅及び/又は高さが異なるとき、適合ビットストリームでは、第1の映像ユニット(例えば、PPS)においてと、第2の映像ユニットにおいてとで、適合クロッピングウィンドウオフセットパラメータが同じであるべきことを提案する:
a. 第1の映像ユニットにおいてと、第2の映像ユニットにおいてとで、(pic_width_in_luma_samples,pic_height_in_luma_samples)と表記されるピクチャの幅及び/又は高さが同じであろうとなかとろうと、適合ビットストリームでは、第1の映像ユニット(例えば、PPS)においてと、第2の映像ユニットにおいてとで、適合クロッピングウィンドウオフセットパラメータが同じであるべきことを提案する。
24. 第1の映像ユニット(例えば、PPS)に規定される適合ウィンドウの幅及び高さをそれぞれW1及びH1と表記するとする。第2の映像ユニット(例えば、PPS)に規定される適合ウィンドウの幅及び高さをそれぞれW2及びH2と表記する。第1の映像ユニット(例えば、PPS)に規定される適合ウィンドウの左上の位置をX1及びY1と表記する。第2の映像ユニット(例えば、PPS)に規定される適合ウィンドウの左上の位置をX2及びY2と表記する。第1の映像ユニット(例えば、PPS)に規定される符号化/復号ピクチャの幅及び高さ(例えば、pic_width_in_luma_samples及びpic_height_in_luma_samples)をそれぞれPW1及びPH1と表記する。第2の映像ユニット(例えば、PPS)に規定される符号化/復号ピクチャの幅及び高さをそれぞれPW2及びPH2と表記する:
a. 一例において、適合ビットストリームではW1/W2がX1/X2に等しくあるべきである:
i. あるいは、適合ビットストリームではW1/X1がW2/X2に等しくあるべきである;
ii. あるいは、適合ビットストリームではW1*X2がW2*X1に等しくあるべきである;
b. 一例において、適合ビットストリームではH1/H2がY1/Y2に等しくあるべきである:
i. あるいは、適合ビットストリームではH1/Y1がH2/Y2に等しくあるべきである;
ii. あるいは、適合ビットストリームではH1*Y2がH2*Y1に等しくあるべきである;
c. 一例において、適合ビットストリームではPW1/PW2がX1/X2に等しくあるべきである:
i. あるいは、適合ビットストリームではPW1/X1がPW2/X2に等しくあるべきである;
ii. あるいは、適合ビットストリームではPW1*X2がPW2*X1に等しくあるべきである;
d. 一例において、適合ビットストリームではPH1/PH2がY1/Y2に等しくあるべきである:
i. あるいは、適合ビットストリームではPH1/Y1がPH2/Y2に等しくあるべきである;
ii. あるいは、適合ビットストリームではPH1*Y2がPH2*Y1に等しくあるべきである;
e. 一例において、適合ビットストリームではPW1/PW2がW1/W2に等しくあるべきである:
i. あるいは、適合ビットストリームではPW1/W1がPW2/W2に等しくあるべきである;
ii. あるいは、適合ビットストリームではPW1*W2がPW2*W1に等しくあるべきである;
f. 一例において、適合ビットストリームではPH1/PH2がH1/H2に等しくあるべきである:
i. あるいは、適合ビットストリームではPH1/H1がPH2/H2に等しくあるべきである;
ii. あるいは、適合ビットストリームではPH1*H2がPH2*H1に等しくあるべきである;
g. 適合ビットストリームでは、PW1がPW2よりも大きい場合、W1はW2よりも大きくなければならない;
h. 適合ビットストリームでは、PW1がPW2よりも小さい場合、W1はW2よりも小さくなければならない;
i. 適合ビットストリームでは、(PW1-PW2)*(W1-W2)は0以上でなければならない;
j. 適合ビットストリームでは、PH1がPH2よりも大きい場合、H1はH2よりも大きくなければならない;
k. 適合ビットストリームでは、PH1がPH2よりも小さい場合、H1はH2よりも小さくなければならない;
l. 適合ビットストリームでは、(PH1-PH2)*(H1-H2)は0以上でなければならない;
m. 適合ビットストリームでは、PW1>=PW2である場合、W1/W2はPW1/PW2以下(又は以上)でなければならない;
n. 適合ビットストリームでは、PH1>=PH2である場合、H1/H2はPH1/PHW2以下(又は以上)でなければならない。
25. 現在ピクチャの適合ウィンドウの幅及び高さをそれぞれW及びHと表記するとする。参照ピクチャの適合ウィンドウの幅及び高さをそれぞれW’及びH’と表記する。適合ビットストリームは、以下の制約の少なくとも1つに従うべきである:
a. W*pw>=W’; pwは例えば2などの整数である;
b. W*pw>W’; pwは例えば2などの整数である;
c. W’*pw’>=W; pw’は例えば8などの整数である;
d. W’*pw’>W; pw’は例えば8などの整数である;
e. H*ph>=H’; phは例えば2などの整数である;
f. H*ph>H’; phは例えば2などの整数である;
g. H’*ph’>=H; ph’は例えば8などの整数である;
h. H’*ph’>H; ph’は例えば8などの整数である;
i. 一例において、pwはpw’に等しい;
j. 一例において、phはph’に等しい;
k. 一例において、pwはphに等しい;
l. 一例において、pw’はph’に等しい;
m. 一例において、上の小箇条書きは、W及びHがそれぞれ現在ピクチャの幅及び高さを表すときに、適合ビットストリームによって満足される必要があるとし得る。W’及びH’は、参照ピクチャの幅及び高さを表す。
26. 適合ウィンドウパラメータが部分的にシグナリングされることを提案する:
a. 一例において、ピクチャの適合ウィンドウの左上サンプルは、そのピクチャにおけるそれと同じである;
b. 例えば、VVCで定義されるconf_win_left_offsetは、シグナリングされずに0であると推定される;
c. 例えば、VVCで定義されるconf_win_top_offsetは、シグナリングされずに0であると推定される。
27. 参照サンプルの位置(例えば、VVCで定義される(refx
L,refy
L))の導出が、現在ピクチャ及び/又は参照ピクチャの適合ウィンドウの左上の位置(例えば、VVCで定義される(conf_win_left_offset,conf_win_top_offset))に依存し得ることを提案する。
図4は、(a)VVCにおいてと同様に、及び(b)及び提案する方法において導出されるサンプル位置の例を示している。破線の矩形が適合ウィンドウを表している:
a. 一例において、依存性は、現在ピクチャの幅及び/又は高さと参照ピクチャのそれとが異なるときにのみ存在する;
b. 一例において、参照サンプルの水平位置(例えば、VVCで定義されるRefx
L)の導出は、現在ピクチャ及び/又は参照ピクチャの適合ウィンドウの左位置(例えば、VVCで定義されるconf_win_left_offset)に依存し得る:
i. 一例において、現在ピクチャ内の適合ウィンドウの左上の位置に対する現在サンプルの水平位置(xSb’と表記)が計算され、参照サンプルの位置を導出するために使用される:
1) 例えば、xSb’=xSb-(conf_win_left_offset<<Prec)が計算され、参照サンプルの位置を導出するために使用される。ここで、xSbは現在ピクチャ内の現在サンプルの水平位置を表す。conf_win_left_offsetは現在ピクチャの適合ウィンドウ内の左上サンプルの水平位置を表す。PrecはxSb及びxSb’の精度を表し、ここで、(xSb>>Prec)は、現在ピクチャに対する現在サンプルの実際の水平座標を示し得る。例えば、Prec=0又はPrec=4である;
ii. 一例において、参照ピクチャ内の適合ウィンドウの左上の位置に対する参照サンプルの水平位置(Rx’と表記)が計算される:
1) Rx’の計算は、xSb’、及び/又は動きベクトル、及び/又はリサンプリング比に依存し得る;
iii. 一例において、参照ピクチャに対する参照サンプルの水平位置(Rxと表記)が、Rx’に依存して計算される:
1) 例えば、Rx=Rx’+(conf_win_left_offset_ref<<Prec)が計算され、conf_win_left_offset_refは、参照ピクチャの適合ウィンドウ内の左上サンプルの水平位置を表す。Precは、Rx及びRx’の精度を表す。例えば、Prec=0又はPrec=4である;
iv. 一例において、Rxは、xSb’、及び/又は動きベクトル、及び/又はリサンプリング比に依存して直接計算され得る。換言すれば、Rx’及びRxについての導出の2つのステップが一ステップの計算へと結合される;
v. 現在ピクチャ及び/又は参照ピクチャの適合ウィンドウの左位置(例えば、VVCで定義されるconf_win_left_offset)を使用すべきか、及び/又はどのように使用するかは、カラー成分及び/又はカラーフォーマットに依存し得る:
1) 例えば、conf_win_left_offsetを、conf_win_left_offset=conf_win_left_offset*SubWidthCとして改訂することができ、ここで、SubWidthCは、カラー成分の水平方向のサンプリングステップを定義する。例えば、SubWidthCはルマコンポーネントに対して1に等しい。SubWidthCは、カラーフォーマットが4:2:0又は4:2:2である場合、クロマコンポーネントに対しては2に等しい;
2) 例えば、conf_win_left_offsetを、conf_win_left_offset=conf_win_left_offset/SubWidthCとして改訂することができ、ここで、SubWidthCは、カラー成分の水平方向のサンプリングステップを定義する。例えば、SubWidthCはルマコンポーネントに対して1に等しい。SubWidthCは、カラーフォーマットが4:2:0又は4:2:2である場合、クロマコンポーネントに対しては2に等しい;
c. 一例において、参照サンプルの垂直位置(例えば、VVCで定義されるRefy
L)の導出は、現在ピクチャ及び/又は参照ピクチャの適合ウィンドウの上位置(例えば、VVCで定義されるconf_win_top_offset)に依存し得る:
i. 一例において、現在ピクチャ内の適合ウィンドウの左上の位置に対する現在サンプルの垂直位置(ySb’と表記)が計算され、参照サンプルの位置を導出するために使用される:
1) 例えば、ySb’=ySb-(conf_win_top_offset<<Prec)が計算され、参照サンプルの位置を導出するために使用される。ここで、ySbは現在ピクチャ内の現在サンプルの垂直位置を表す。conf_win_top_offsetは現在ピクチャの適合ウィンドウ内の左上サンプルの垂直位置を表す。PrecはySb及びySb’の精度を表す。例えば、Prec=0又はPrec=4である;
ii. 一例において、参照ピクチャ内の適合ウィンドウの左上の位置に対する参照サンプルの垂直位置(Ry’と表記)が計算される:
1) Ry’の計算は、ySb’、及び/又は動きベクトル、及び/又はリサンプリング比に依存し得る;
iii. 一例において、参照ピクチャに対する参照サンプルの垂直位置(Ryと表記)が、Ry’に依存して計算される:
1) 例えば、Ry=Ry’+(conf_win_top_offset_ref<<Prec)が計算され、conf_win_top_offset_refは、参照ピクチャの適合ウィンドウ内の左上サンプルの垂直位置を表す。Precは、Ry及びRy’の精度を表す。例えば、Prec=0又はPrec=4である;
iv. 一例において、Ryは、ySb’、及び/又は動きベクトル、及び/又はリサンプリング比に依存して直接計算され得る。換言すれば、Ry’及びRyについての導出の2つのステップが一ステップの計算へと結合される;
v. 現在ピクチャ及び/又は参照ピクチャの適合ウィンドウの上位置(例えば、VVCで定義されるconf_win_top_offset)を使用すべきか、及び/又はどのように使用するかは、カラー成分及び/又はカラーフォーマットに依存し得る:
1) 例えば、conf_win_top_offsetを、conf_win_top_offset=conf_win_top_offset*SubHeightCとして改訂することができ、ここで、SubHeightCは、カラー成分の垂直方向のサンプリングステップを定義する。例えば、SubHeightCはルマコンポーネントに対して1に等しい。SubHeightCは、カラーフォーマットが4:2:0である場合、クロマコンポーネントに対しては2に等しい;
2) 例えば、conf_win_top_offsetを、conf_win_top_offset=conf_win_top_offset/SubHeightCとして改訂することができ、ここで、SubHeightCは、カラー成分の垂直方向のサンプリングステップを定義する。例えば、SubHeightCはルマコンポーネントに対して1に等しい。SubHeightCは、カラーフォーマットが4:2:0である場合、クロマコンポーネントに対しては2に等しい;
28. 参照サンプルの水平座標の整数部分が[minW,maxW]にクリッピングされ得ることを提案する。参照ピクチャの適合ウィンドウの幅及び高さをそれぞれW及びHと表記するとする。参照ピクチャの適合ウィンドウの幅及び高さをW’及びH’と表記する。参照ピクチャ内の適合ウィンドウの左上の位置を(X0,Y0)と表記する:
a. 一例において、minWは0に等しい;
b. 一例において、minWはX0に等しい;
c. 一例において、maxWはW-1に等しい;
d. 一例において、maxWはW’-1に等しい;
e. 一例において、maxWはX0+W’-1に等しい;
f. 一例において、minW及び/又はmaxWは、カラーフォーマット及び/又はカラー成分に基づいて変更されてもよい:
i. 例えば、minWはminW*SubCに変更される;
ii. 例えば、minWはminW/SubCに変更される;
iii. 例えば、maxWはmaxW*SubCに変更される;
iv. 例えば、maxWはmaxW*SubCに変更される;
v. 一例において、SubCはルマコンポーネントに対して1に等しい;
vi. 一例において、カラーフォーマットが4:2:0である場合、SubCはクロマコンポーネントに対して2に等しい;
vii. 一例において、カラーフォーマットが4:2:2である場合、SubCはクロマコンポーネントに対して2に等しい;
viii. 一例において、カラーフォーマットが4:4:4である場合、SubCはクロマコンポーネントに対して1に等しい;
g. 一例において、クリッピングを行うべきか、及び/又はどのように行うかは、現在ピクチャ(又はその中の適合ウィンドウ)の寸法及び参照ピクチャ(又はその中の適合ウィンドウ)の寸法に依存し得る:
i. 一例において、クリッピングは、現在ピクチャ(又はその中の適合ウィンドウ)の寸法と参照ピクチャ(又はその中の適合ウィンドウ)の寸法とが異なるときにのみ行われる。
29. 参照サンプルの垂直座標の整数部分が[minH,maxH]にクリッピングされ得ることを提案する。参照ピクチャの適合ウィンドウの幅及び高さをそれぞれW及びHと表記するとする。参照ピクチャの適合ウィンドウの幅及び高さをW’及びH’と表記する。参照ピクチャ内の適合ウィンドウの左上の位置を(X0,Y0)と表記する:
a. 一例において、minHは0に等しい;
b. 一例において、minHはY0に等しい;
c. 一例において、maxHはH-1に等しい;
d. 一例において、maxHはH’-1に等しい;
e. 一例において、maxHはY0+H’-1に等しい;
f. 一例において、minH及び/又はmaxHは、カラーフォーマット及び/又はカラー成分に基づいて変更されてもよい:
i. 例えば、minHはminH*SubCに変更される;
ii. 例えば、minHはminH/SubCに変更される;
iii. 例えば、maxHはmaxH*SubCに変更される;
iv. 例えば、maxHはmaxH*SubCに変更される;
v. 一例において、SubCはルマコンポーネントに対して1に等しい;
vi. 一例において、カラーフォーマットが4:2:0である場合、SubCはクロマコンポーネントに対して2に等しい;
vii. 一例において、カラーフォーマットが4:2:2である場合、SubCはクロマコンポーネントに対して1に等しい;
viii. 一例において、カラーフォーマットが4:4:4である場合、SubCはクロマコンポーネントに対して1に等しい;
g. 一例において、クリッピングを行うべきか、及び/又はどのように行うかは、現在ピクチャ(又はその中の適合ウィンドウ)の寸法及び参照ピクチャ(又はその中の適合ウィンドウ)の寸法に依存し得る:
i. 一例において、クリッピングは、現在ピクチャ(又はその中の適合ウィンドウ)の寸法と参照ピクチャ(又はその中の適合ウィンドウ)の寸法とが異なるときにのみ行われる。
以下の説明では、第1のシンタックス要素と第2のシンタックス要素との2つのシンタックス要素が等価な機能を持つが、異なる映像ユニット(例えば、VPS/SPS/PPS/スライスヘッダ/ピクチャヘッダなど)でシグナリングされ得る場合に、第1のシンタックス要素は第2のシンタックス要素に“対応する”と言う。
30. シンタックス要素が第1の映像ユニット(例えば、ピクチャヘッダ又はPPS)内でシグナリングされ、より高いレベル(例えばSPSなど)又はより低いレベル(例えばスライスヘッダなど)の第2の映像ユニットで、対応するシンタックス要素がシグナリングされないことを提案する:
a. あるいは、第1のシンタックス要素が第1の映像ユニット(例えば、ピクチャヘッダ又はPPS)内でシグナリングされ得るとともに、対応する第2のシンタックス要素が、より低いレベル(例えばスライスヘッダなど)の第2の映像ユニット内でシグナリングされ得る:
i. あるいは、第2のシンタックス要素がその後にシグナリングされるかを通知するインジケータが第2の映像ユニット内でシグナリングされ得る;
ii. 一例において、第2の映像ユニット(例えばスライスヘッダなど)に関連するスライスは、第2のものがシグナリングされる場合に第1のものの代わりに第2のシンタックス要素のインジケーションに続き得る;
iii. 第1の映像ユニットに関連するいずれかのスライス(又は他の映像ユニット)内で第2のシンタックス要素がシグナリングされるかを通知するために、第1のシンタックス要素に関連するインジケータが第1の映像ユニット内でシグナリングされてもよい;
b. あるいは、第1のシンタックス要素が、より高いレベル(例えばVPS/SPS/PPSなど)の第1の映像ユニット内でシグナリングされ得るとともに、対応する第2のシンタックス要素が、第2の映像ユニット(例えばピクチャヘッダなど)内でシグナリングされ得る:
i. あるいは、第2のシンタックス要素がその後にシグナリングされるかを通知するインジケータがシグナリングされ得る;
ii. 一例において、第2の映像ユニットに関連するピクチャ(これは複数のスライスに分割され得る)が、第2のものがシグナリングされる場合に第1のものの代わりに第2のシンタックス要素のインジケーションに続き得る;
c. ピクチャヘッダ内の第1のシンタックス要素は、セクション2.6で規定されるようなスライスヘッダ内の第2のシンタックス要素(しかし、例えばslice_temporal_mvp_enabled_flag、cabac_init_flag、six_minus_max_num_merge_cand、five_minus_max_num_subblock_merge_cand、slice_fpel_mmvd_enabled_flag、slice_disable_bdof_dmvr_flag、max_num_merge_cand_minus_max_num_triangle_cand、slice_fpel_mmvd_enabled_flag、slice_six_minus_max_num_ibc_merge_cand、slice_joint_cbcr_sign_flag、slice_qp_delta、…などに限られる)と等価な機能を持ち得るが、ピクチャの全てのスタイスを制御し得る;
d. セクション2.6で規定されるようなSPS内の第1のシンタックス要素は、ピクチャヘッダ内の第2のシンタックス要素(しかし、例えばsps_bdof_dmvr_slice_present_flag、sps_mmvd_enabled_flag、sps_isp_enabled_flag、sps_mrl_enabled_flag、sps_mip_enabled_flag、sps_cclm_enabled_flag、sps_mts_enabled_flag…などに限られる)と等価な機能を持ち得るが、関連するピクチャ(これは複数のスライスに分割され得る)のみを制御し得る;
e. セクション2.7で規定されるようなPPS内の第1のシンタックス要素は、ピクチャヘッダ内の第2のシンタックス要素(しかし、例えばentropy_coding_sync_enabled_flag、entry_point_offsets_present_flag、cabac_init_present_flag、rpl1_idx_present_flag…などに限られる)と等価な機能を持ち得るが、関連するピクチャ(これは複数のスライスに分割され得る)のみを制御し得る。
31. この開示(箇条書き1-箇条書き29)において、用語“適合ウィンドウ”は、例えば“スケーリングウィンドウ”などの他の用語で置き換えられてもよい。スケーリングウィンドウは、適合ウィンドウとは異なるようにシグナリングされてもよく、RPRのための参照サンプル位置を導出するのに使用されるスケーリング比及び/又は左上オフセットを導出するために使用される:
a. 一例において、スケーリングウィンドウは、適合ウィンドウによって制約され得る。例えば、適合ビットストリームでは、スケーリングウィンドウは適合ウィンドウに含まれなければならない。
32. 変換スキップコーディングされるブロックの許容最大ブロックサイズをシグナリングすべきか、及び/又はどのようにシグナリングするかは、変換コーディングされるブロックの最大ブロックサイズに依存し得る:
a. あるいは、変換スキップコーディングされるブロックの最大ブロックサイズは、適合ビットストリームにおいて変換コーディングされるブロックの最大ブロックサイズよりも大きくすることはできない。
33. ジョイントCb-Cr残差(Joint Cb-Cr Residue;JCCR)コーディングを有効にすることのインジケーション(例えばsps_joint_cbcr_enabled_flagなど)をシグナリングすべきか、及び/又はどのようにシグナリングするかは、カラーフォーマット(例えば4:0:0、4:2:0など)に依存し得る:
a. 例えば、カラーフォーマットが4:0:0である場合、ジョイントCb-Cr残差(JCCR)を有効にすることのインジケーションはシグナリングされないとし得る。例示的なシンタックス設計は以下の通りである:
(外9)
TPM/GEOにおけるクロマ混合マスク生成のためのダウンサンプリングフィルタタイプ
34. クロマサンプルについての混合重み導出に使用されるダウンサンプリングフィルタのタイプが、映像ユニットレベル(例えばSPS/VPS/PPS/PPS/ピクチャヘッダ/サブピクチャ/スライス/スライスヘッダ/タイル/ブリック/CTU/VPDUレベルなど)でシグナリングされ得る:
a. 一例において、コンテンツの異なるクロマフォーマットタイプを切り換えるために、ハイレベルフラグがシグナリングされ得る:
i. 一例において、クロマフォーマットタイプ0とクロマフォーマットタイプ2との間で切り換えるために、ハイレベルフラグがシグナリングされ得る;
ii. 一例において、TPM/GEO予測モードにおける左上のダウンサンプリングルマ重みが左上ルマ重みとコロケートである(すなわち、クロマサンプル位置タイプ0)かを規定するために、フラグがシグナリングされ得る;
iii. 一例において、TPM/GEO予測モードにおける左上ダウンサンプリングルマサンプルが左上ルマサンプルと水平方向にはコロケートであるが、左上ルマサンプルに対して0.5単位のルマサンプルだけ垂直方向にシフトされている(すなわち、クロマサンプル位置タイプ2)かを規定するために、フラグがシグナリングされ得る;
b. 一例において、ダウンサンプリングフィルタのタイプは、4:2:0クロマフォーマット及び/又は4:2:2クロマフォーマットに対してシグナリングされ得る;
c. 一例において、TPM/GEO予測に使用されるクロマダウンサンプリングフィルタのタイプを規定するために、フラグがシグナリングされ得る:
i. 一例において、このフラグは、TPM/GEO予測モードにおけるクロマ重み導出のためにダウンサンプリングフィルタAを使用するのかダウンサンプリングフィルタBを使用するのかについてシグナリングされ得る。
35. クロマサンプルについての混合重み導出に使用されるダウンサンプリングフィルタのタイプが、映像ユニットレベル(例えばSPS/VPS/PPS/PPS/ピクチャヘッダ/サブピクチャ/スライス/スライスヘッダ/タイル/ブリック/CTU/VPDUレベルなど)で導出され得る:
a. 一例において、クロマサブサンプリングフィルタタイプとコンテンツのクロマフォーマットタイプとの間の対応関係を規定するために、ルックアップテーブルが規定され得る。
36. 異なるクロマサンプル位置タイプの場合に、特定のダウンサンプリングフィルタがTPM/GEO予測モードに使用され得る:
a. 一例において、特定のクロマサンプル位置タイプ(例えば、クロマサンプル位置タイプ0)の場合に、TPM/GEOのクロマ重みは、コロケート左上ルマ重みからサブサンプリングされ得る;
b. 一例において、特定のクロマサンプル位置タイプ(例えば、クロマサンプル位置タイプ0又は2)の場合に、特定のXタップフィルタ(Xは、例えばX=6又は5などの定数)が、TPM/GEO予測モードにおけるクロマ重みサブサンプリングに使用され得る。
37. 映像ユニット(例えば、SPS、PPS、ピクチャヘッダ、スライスヘッダなど)内で、全てのブロック(スライス/ピクチャ)に対して複数変換選択(Multiple Transform Selection;MTS)が無効にされるかを指し示す第1のシンタックス要素(例えばフラグなど)がシグナリングされ得る。MTSは、複数の変換の中からのレート歪みコストを最大化する変換の選択に基づく:
a. イントラコーディングされるブロック(スライス/ピクチャ)にMTSをどのように適用するか(例えば、MTSを有効にする/MTSを無効にする/黙示的MTS/明示的MTSなど)を指し示す第2のシンタックス要素が、第1のシンタックス要素に基づいて条件付きでシグナリングされる。例えば、第2のシンタックス要素は、全てのブロック(スライス/ピクチャ)に対してMTSが無効にされることを第1のシンタックス要素が指し示す場合にのみシグナリングされる;
b. インターコーディングされるブロック(スライス/ピクチャ)にMTSをどのように適用するか(例えば、MTSを有効にする/MTSを無効にする/黙示的MTS/明示的MTSなど)を指し示す第3のシンタックス要素が、第1のシンタックス要素に基づいて条件付きでシグナリングされる。例えば、第3のシンタックス要素は、全てのブロック(スライス/ピクチャ)に対してMTSが無効にされるのではないことを第1のシンタックス要素が指し示す場合にのみシグナリングされる;
c. 例示的なシンタックス設計は以下の通りである:
(外10)
d. 第3のシンタックス要素は、サブブロック変換(Sub-Block Transform;SBT)が適用されるか否かに基づいて条件付きでシグナリングされ得る。
例示的なシンタックス設計は以下の通りである:
(外11)
e. 例示的なシンタックス設計は以下の通りである:
(外12)
【0099】
5. 更なる実施形態
以下では、テキスト変更を、下線付きの太字のイタリック体で示す。
【0100】
5.1. 適合ウィンドウについての制約の実施形態
(外13)
【0101】
5.2. 参照サンプル位置導出の実施形態1
(外14)
【0102】
5.3. 参照サンプル位置導出の実施形態2
(外15)
【0103】
5.4. 参照サンプル位置導出の実施形態3
(外16)
【0104】
5.5. 参照サンプル位置クリッピングの実施形態1
(外17)
【0105】
5.6. 参照サンプル位置クリッピングの実施形態2
(外18)
【0106】
6. 開示技術の実装例
図5は、映像処理装置500のブロック図である。装置500は、ここに記載される方法のうちの1つ以上を実装するために使用され得る。装置500は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器にて具現化され得る。装置500は、1つ以上のプロセッサ502、1つ以上のメモリ504、及び映像処理ハードウェア506を含み得る。(1つ以上の)プロセッサ502は、本文書に記載される1つ以上の方法を実行するように構成され得る。(1つ以上の)メモリ504は、ここに記載される方法及び技術を実行するのに使用されるデータ及びコードを格納するために使用され得る。映像処理ハードウェア506は、本文書に記載される一部の技術をハードウェア回路にて実装するために使用されることができ、また、部分的に又は完全にプロセッサ502の一部(例えば、グラフィックスプロセッサコアGPU又は他の信号処理回路)であることができる。
【0107】
本文書において、用語“映像処理”又はコーディングは、映像符号化、映像復号、映像圧縮、又は映像解凍を指し得る。例えば、映像圧縮アルゴリズムが、映像のピクセル表現から対応するビットストリーム表現への変換又はその逆の変換において適用され得る。現在映像ブロックのビットストリーム表現は、例えば、シンタックスによって規定されるように、ビットストリーム内で一緒に置かれたビット又は複数の異なる場所に散らされたビットのいずれかに対応する。例えば、変換され符号化されたエラー残差値に関して、ビットストリーム内のヘッダ及び他のフィールドの中のビットを用いて、マクロブロックを符号化し得る。
【0108】
理解されることには、開示される方法及び技術は、本文書に開示される技術の使用を可能にすることによって、例えばスマートフォン、ラップトップ、デスクトップ、及び類似の装置などの映像処理装置に組み込まれたビデオエンコーダ及び/又はデコーダの実施形態に利益をもたらすことになる。
【0109】
図6は、映像処理の方法600の一例のフローチャートである。方法600は、610にて、現在映像ブロックと該現在映像ブロックの符号化表現との間での変換を実行することを含み、当該変換において、参照ピクチャの解像度及び/又はサイズが現在映像ブロックの解像度及び/又はサイズと異なる場合、現在映像ブロックを用いて予測される一群の隣接又は非隣接サンプルに同一の補間フィルタが適用される。
【0110】
一部の実施形態を以下の項ベースのフォーマットを用いて記載する。
【0111】
1. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、参照ピクチャの解像度及び/又はサイズが前記現在映像ブロックの解像度及び/又はサイズと異なる場合、前記現在映像ブロックを用いて予測される一群の隣接又は非隣接サンプルに同一の補間フィルタが適用される、ステップ、
を有する方法。
【0112】
2. 前記同一の補間フィルタは垂直補間フィルタである、項1に記載の方法。
【0113】
3. 前記同一の補間フィルタは水平補間フィルタである、項1に記載の方法。
【0114】
4. 前記一群の隣接又は非隣接サンプルは、前記現在映像ブロックのある領域内に位置する全てのサンプルを含む、項1に記載の方法。
【0115】
5. 前記現在映像ブロックは、各々がサイズM×Nである複数の矩形に分割される、項4に記載の方法。
【0116】
6. M及び/又はNは予め決められている、項5に記載の方法。
【0117】
7. M及び/又はNは、前記現在映像ブロックの寸法から導出される、項5に記載の方法。
【0118】
8. M及び/又はNは、前記現在映像ブロックの前記符号化表現内でシグナリングされる、項5に記載の方法。
【0119】
9. 前記一群のサンプルは同じ動きベクトルを共有する、項1に記載の方法。
【0120】
10. 前記一群のサンプルは、同じ水平成分、及び/又は水平成分の同じ分数部分を共有する、項9に記載の方法。
【0121】
11. 前記一群のサンプルは、同じ垂直成分、及び/又は垂直成分の同じ分数部分を共有する、項9に記載の方法。
【0122】
12. 前記同じ動きベクトル又はその成分は、前記参照ピクチャの前記解像度、前記参照ピクチャの前記サイズ、前記現在映像ブロックの前記解像度、前記現在映像ブロックの前記サイズ、又は精度値、のうちの1つに少なくとも基づく1つ以上のルールを満たす、項9乃至11のいずれかに記載の方法。
【0123】
13. 前記同じ動きベクトル又はその成分は、前記現在映像ブロック内に位置するサンプルの動き情報に相当する、項9乃至11のいずれかに記載の方法。
【0124】
14. 前記同じ動きベクトル又はその成分は、前記一群の内側又は外側に位置する仮想サンプルの動き情報に設定される、項9乃至11のいずれかに記載の方法。
【0125】
15. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、参照ピクチャの解像度及び/又はサイズが前記現在映像ブロックの解像度及び/又はサイズと異なる場合、前記現在映像ブロックを用いて予測されるブロックは、前記現在ブロックに関係する整数値動き情報を用いることのみ許される、ステップ、
を有する方法。
【0126】
16. 前記整数値動き情報は、前記現在映像ブロックの元の動き情報を丸めることによって導出される、項15に記載の方法。
【0127】
17. 前記現在映像ブロックの前記元の動き情報は、水平方向及び/又は垂直方向にある、項15に記載の方法。
【0128】
18. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、参照ピクチャの解像度及び/又はサイズが前記現在映像ブロックの解像度及び/又はサイズと異なる場合、前記現在映像ブロックを用いて予測されるブロックを導出するために補間フィルタが適用され、該補間フィルタはルールに基づいて選択される、ステップ、
を有する方法。
【0129】
19. 前記ルールは、前記現在映像ブロックの前記解像度及び/又は前記サイズに対する前記参照ピクチャの前記解像度及び/又は前記サイズに関係する、項18に記載の方法。
【0130】
20. 前記補間フィルタは垂直補間フィルタである、項18に記載の方法。
【0131】
21. 前記補間フィルタは水平補間フィルタである、項18に記載の方法。
【0132】
22. 前記補間フィルタは、1タップフィルタ、双線形フィルタ、4タップフィルタ、又は6タップフィルタのうちの1つである、項18に記載の方法。
【0133】
23. 前記補間フィルタは、前記変換の他のステップの一部として使用される、項22に記載の方法。
【0134】
24. 前記補間フィルタは、パディングサンプルの使用を含む、項18に記載の方法。
【0135】
25. 前記補間フィルタの使用は、前記現在映像ブロックのサンプルのカラー成分に依存する、項18に記載の方法。
【0136】
26. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、参照ピクチャの解像度及び/又はサイズが前記現在映像ブロックの解像度及び/又はサイズと異なる場合、デブロッキングフィルタを選択的に適用し、該デブロッキングフィルタの強さが、前記現在映像ブロックの前記解像度及び/又は前記サイズに対する前記参照ピクチャの前記解像度及び/又は前記サイズに関係するルールに従って設定される、ステップ、
を有する方法。
【0137】
27. 前記デブロッキングフィルタの前記強さは映像ブロックごとに変化する、項27に記載の方法。
【0138】
28. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、前記現在映像ブロックのサブピクチャが存在する場合、適合ビットストリームは、前記現在映像ブロックの前記解像度及び/又は前記サイズに対する前記参照ピクチャの前記解像度及び/又は前記サイズに関係するルールを満たす、ステップ、
を有する方法。
【0139】
29. 前記現在映像ブロックを1つ以上のサブピクチャにスプリットするステップであり、当該スプリットすることは、少なくとも、前記現在映像ブロックの前記解像度に依存する、ステップ、
を更に有する項28に記載の方法。
【0140】
30. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、前記現在映像ブロックの参照ピクチャが、前記現在映像ブロックの寸法に基づくルールに従ってリサンプリングされる、ステップ、
を有する方法。
【0141】
31. 映像処理の方法であって、
現在映像ブロックと前記現在映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、前記現在映像ブロックへのコーディングツールの使用が、前記現在映像ブロックの解像度/サイズに対する前記現在映像ブロックの参照ピクチャの解像度/サイズに応じて選択的に有効又は無効にされる、ステップ、
を有する方法。
【0142】
32. 前記一群のサンプルは適合ウィンドウ内に位置する、以上の項のいずれかに記載の方法。
【0143】
33. 前記適合ウィンドウは矩形の形状である、項32に記載の方法。
【0144】
34. 前記解像度は、前記符号化/復号映像ブロックの解像度、又は前記符号化/復号映像ブロック内の前記適合ウィンドウの解像度に関する、以上の項のいずれかに記載の方法。
【0145】
35. 前記サイズは、前記符号化/復号映像ブロックのサイズ、又は前記符号化/復号映像ブロック内の前記適合ウィンドウのサイズに関する、以上の項のいずれかに記載の方法。
【0146】
36. 前記寸法は、前記符号化/復号映像ブロックの寸法、又は前記符号化/復号映像ブロック内の前記適合ウィンドウの寸法に関する、以上の項のいずれかに記載の方法。
【0147】
37. 前記適合ウィンドウは、適合クロッピングウィンドウパラメータのセットによって画成される、項32に記載の方法。
【0148】
38. 適合クロッピングウィンドウパラメータのセットのうちの少なくとも一部が、前記符号化表現内で黙示的又は明示的にシグナリングされる、項37に記載の方法。
【0149】
39. 適合クロッピングウィンドウパラメータの前記セットは、前記符号化表現内でシグナリングされることを許されない、以上の項のいずれかに記載の方法。
【0150】
40. 前記参照サンプルの位置は、前記適合ウィンドウ内の前記現在映像ブロックの左上サンプルに対して導出される、以上の項のいずれかに記載の方法。
【0151】
41. 映像処理の方法であって、
複数の映像ブロックと前記複数の映像ブロックの符号化表現との間での変換を実行するステップであり、前記変換において、第1の適合ウィンドウが第1の映像ブロックに対して画成され、第2の適合ウィンドウが第2の映像ブロックに対して画成され、前記第2の適合ウィンドウに対する前記第1の適合ウィンドウの幅及び/又は高さの比が、少なくとも適合ビットストリームに基づくルールに従う、ステップ、
を有する方法。
【0152】
42. 項1乃至41のいずれかに記載の方法を実装するように構成されたプロセッサを有する映像復号装置。
【0153】
43. 項1乃至41のいずれかに記載の方法を実装するように構成されたプロセッサを有する映像符号化装置。
【0154】
また、非一時的なコンピュータ読み取り可能媒体に格納されたコンピュータプログラムプロダクトであって、開示される方法のうちの1つ以上を実行するためのプログラムコードを含むコンピュータプログラムプロダクトが開示される。
【0155】
44. コンピュータコードを格納したコンピュータプログラムプロダクトであって、前記コードは、プロセッサによって実行されるときに、該プロセッサに項1乃至41のいずれかに記載の方法を実行させる、コンピュータプログラムプロダクト。
【0156】
45. 本文書に記載の方法、装置、又はシステム。
【0157】
図7は、ここに開示される様々な技術が実装され得る映像処理システム700の一例を示すブロック図である。様々な実装は、システム700のコンポーネントの一部又は全てを含み得る。システム700は、映像コンテンツを受信する入力702を含み得る。映像コンテンツは、例えば8ビット又は10ビットのマルチコンポーネント(多成分)ピクセル値といった、ロー(未加工)又は未圧縮のフォーマットで受信されてもよいし、あるいは圧縮又は符号化されたフォーマットで受信されてもよい。入力702は、ネットワークインタフェース、周辺バスインタフェース、又はストレージインタフェースを表し得る。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)などの有線インタフェース、及びWi-Fi(登録商標)若しくはセルラーインタフェースなどの無線インタフェースを含む。
【0158】
システム700は、本文書に記載される様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント704を含み得る。コーディングコンポーネント704は、入力702からコーディングコンポーネント704の出力まで映像の平均ビットレートを低減させて、映像の符号化表現を生成し得る。コーディング技術は、それ故に、映像圧縮技術又は映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント704の出力は、格納されるか、コンポーネント706によって表されるように接続されて通信を介して伝送されるかし得る。入力702で受信された映像の格納又は通信されるビットストリーム(又は符号化)表現は、ディスプレイインタフェース710に送られるピクセル値又は表示可能映像を生成するためにコンポーネント708によって使用され得る。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像解凍と呼ばれることがある。また、特定の映像処理操作が“コーディング”の操作又はツールとして参照されることがあるが、理解されることには、コーディングのツール又は操作はエンコーダで使用され、コーディングの結果を裏返す対応する復号のツール又は操作がデコーダで実行されることになる。
【0159】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート(Displayport)などを含み得る。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェースなどを含む。本文書に記載される技術は、例えば携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実行することが可能な他の装置などの、種々のエレクトロニクス装置にて具現化され得る。
【0160】
図8は、この開示の技術を利用し得る映像コーティングシステム100の一例を示すブロック図である。
【0161】
図8に示すように、映像コーティングシステム100は、ソース装置110及びデスティネーション装置120を含み得る。ソース装置110は、符号化映像データを生成し、映像符号化装置として参照され得る。デスティネーション装置120は、ソース装置110によって生成された符号化映像データを復号することができ、映像復号装置として参照され得る。
【0162】
ソース装置110は、映像ソース112、ビデオエンコーダ114、及び入力/出力(I/O)インタフェース116を含み得る。
【0163】
映像ソース112は、例えば、映像キャプチャ装置、映像コンテンツプロバイダから映像データを受信するインタフェース、及び/又は映像データを生成するコンピュータグラフィックスシステム、又はそのようなソースの組み合わせなどの、ソースを含み得る。映像データは、1つ以上のピクチャを有し得る。ビデオエンコーダ114は、映像ソース112からの映像データを符号化してビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成する一連のビットを含み得る。ビットストリームは、符号化ピクチャ及び関連データを含み得る。符号化ピクチャはピクチャの符号化表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、及び他のシンタックス構造を含み得る。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信器を含み得る。符号化映像データは、I/Oインタフェース116を介し、ネットワーク130aを通じて直接、デスティネーション装置120に伝送され得る。符号化映像データはまた、デスティネーション装置120によるアクセスのためにストレージ媒体/サーバ130b上に格納されてもよい。
【0164】
デスティネーション装置120は、I/Oインタフェース126、ビデオデコーダ124、及び表示装置122を含み得る。
【0165】
I/Oインタフェース126は、受信器及び/又はモデムを含み得る。I/Oインタフェース126は、ソース装置110又はストレージ媒体/サーバ130bから符号化映像データを取得し得る。ビデオデコーダ124は符号化映像データを復号し得る。表示装置122は、復号映像データをユーザに表示し得る。表示装置122は、デスティネーション装置120と一体化されてもよいし、あるいは、外部表示装置とインタフェースするように構成されたデスティネーション装置120の外部にあってもよい。
【0166】
ビデオエンコーダ114及びビデオデコーダ124は、例えばハイエフィシェンシビデオコーディング(HEVC)標準、バーサタイルビデオコーディング(VVC)標準、及び他の現行の及び/又は将来の標準などの、映像圧縮標準に従って動作し得る。
【0167】
図9は、
図8に示したシステム100内のビデオエンコーダ114とし得るものであるビデオエンコーダ200の一例を示すブロック図である。
【0168】
ビデオエンコーダ200は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。
図9の例において、ビデオエンコーダ200は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0169】
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含み得る。
【0170】
他の例において、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでいてもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在映像ブロックが位置するところのピクチャである、というIBCモードで予測を実行し得る。
【0171】
また、例えば動き推定ユニット204及び動き補償ユニット205などの一部のコンポーネントは、
図5の例では説明の目的で別々に表されているが、高度に集積されることができる。
【0172】
分割ユニット201は、ピクチャを1つ以上の映像ブロックに分割し得る。ビデオエンコーダ200及びビデオデコーダ300は、様々な映像ブロックサイズをサポートし得る。
【0173】
モード選択ユニット203は、例えば誤差結果に基づいて、イントラ又はインターである複数のコーティングモードのうちの1つを選択し、得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成する残差生成ユニット207と、参照ピクチャとしての使用のために符号化ブロックを再構成する再構成ユニット212とに提供し得る。一部の例において、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくものである組み合わせイントラ・インター予測(combination of intra and inter predication;CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの分解能(例えば、サブピクセル又は整数ピクセルの精度)を選択し得る。
【0174】
現在映像ブロックに対してインター予測を実行するために、動き推定ユニット204が、バッファ213からの1つ以上の参照フレームを現在映像ブロックと比較することによって、現在映像ブロックについての動き情報を生成し得る。動き補償ユニット205が、現在映像ブロックに関連付けられたピクチャ以外の、バッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在映像ブロックについての予測映像ブロックを決定し得る。
【0175】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在映像ブロックがIスライス内にあるか、Pスライス内にあるか、それともBスライス内にあるかに応じて、現在映像ブロックに対して異なる演算を実行し得る。
【0176】
一部の例において、動き推定ユニット204は、現在映像ブロックに対して片方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0又はリスト1の参照ピクチャを探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0又はリスト1内の参照ピクチャを指し示す参照インデックスと、現在映像ブロックと参照映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、上記参照インデックスと、予測方向インジケータと、上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0177】
他の例において、動き推定ユニット204は、現在映像ブロックに対して双方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0内の参照ピクチャを探索し得るとともに、現在映像ブロックに対するもう1つの参照映像ブロックについてリスト1内の参照ピクチャも探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0内の及びリスト1内の参照ピクチャを指し示す参照インデックスと、それら参照映像ブロックと現在映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、それら参照インデックスと、現在映像ブロックの上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
【0178】
一部の例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報の完全なセットを出力し得る。
【0179】
一部の例において、動き推定ユニット204は、現在映像についての動き情報の完全なセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して現在映像ブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在映像ブロックの動き情報が隣接映像ブロックの動き情報と十分に似ていると判定し得る。
【0180】
一例において、動き推定ユニット204は、現在映像ブロックに関連付けられるシンタックス構造内で、現在映像ブロックが別の映像ブロックと同じ動き情報を持つことをビデオデコーダ300に示す値を指し示し得る。
【0181】
他の一例において、動き推定ユニット204は、現在映像ブロックに関連付けられるシンタックス構造内で、別の映像ブロックと動きベクトル差(MVD)とを特定してもよい。動きベクトル差は、現在映像ブロックの動きベクトルと、指し示される映像ブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、指し示された映像ブロックの動きベクトルと動きベクトル差とを用いて、現在映像ブロックの動きベクトルを決定し得る。
【0182】
上述のように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングし得る。ビデオエンコーダ200によって実装され得る予測的シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP)及びマージモードシグナリングを含む。
【0183】
イントラ予測ユニット206は、現在映像ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット206が現在映像ブロックに対してイントラ予測を実行するとき、イントラ予測ユニット206は、同じピクチャ内の他の映像ブロックの復号サンプルに基づいて、現在映像ブロックについての予測データを生成し得る。現在映像ブロックについての予測データは、予測映像ブロックと様々なシンタックス要素とを含み得る。
【0184】
残差生成ユニット207は、現在映像ブロックの(1つ以上の)予測映像ブロックを現在映像ブロックから差し引くことによって(例えば、マイナス符号によって示される)、現在映像ブロックについての残差データを生成し得る。現在映像ブロックの残差データは、現在映像ブロック内のサンプルの異なるサンプル成分に対応する残差映像ブロックを含み得る。
【0185】
他の例では、例えばスキップモードにおいて、現在映像ブロックのために現在映像ブロックについての残差データが存在しないことがあり、残差生成ユニット207は減算演算を実行しないことがある。
【0186】
変換処理ユニット208は、現在映像ブロックに関連する残差映像ブロックに1つ以上の変換を適用することによって、現在映像ブロックについての1つ以上の変換係数映像ブロックを生成し得る。
【0187】
変換処理ユニット208が現在映像ブロックに関する変換係数映像ブロックを生成した後、量子化ユニット209が、現在映像ブロックに関する変換係数映像ブロックを、現在映像ブロックに関する1つ以上の量子化パラメータ(QP)値に基づいて量子化し得る。
【0188】
逆量子化ユニット210及び逆変換ユニット211が、変換係数映像ブロックに、それぞれ、逆量子化及び逆変換を適用して、変換係数映像ブロックから残差映像ブロックを再構成し得る。再構成ユニット212が、再構成された残差映像ブロックを、予測ユニット202によって生成された1つ以上の予測映像ブロックからの対応するサンプルに足し合わせて、バッファ213に記憶される現在ブロックに関する再構成映像ブロックを生成し得る。
【0189】
再構成ユニット212が映像ブロックを再構成した後、映像ブロック内の映像ブロッキングアーチファクトを低減させるために、ループフィルタリング演算が実行され得る。
【0190】
エントロピー符号化ユニット214が、ビデオエンコーダ200の他の機能コンポーネントからデータを受信し得る。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化演算を実行してエントロピー符号化データを生成し、そして、エントロピー符号化データを含むビットストリームを出力し得る。
【0191】
図10は、
図8に示したシステム100内のビデオデコーダ124とし得るものであるビデオデコーダ300の一例を示すブロック図である。
【0192】
ビデオデコーダ300は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。
図10の例において、ビデオデコーダ300は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
【0193】
図10の例において、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、再構成ユニット306、及びバッファ307を含んでいる。ビデオデコーダ300は、一部の例において、ビデオエンコーダ200(例えば、
図9)に関して説明した符号化パスに対して概ね逆の復号パスを実行し得る。
【0194】
エントロピー復号ユニット301が符号化ビットストリームを取り出し得る。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含み得る。エントロピー復号ユニット301はエントロピー符号化映像データを復号することができ、エントロピー復号された映像データから、動き補償ユニット302が、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他のモーション情報を含む動き情報を決定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定し得る。
【0195】
動き補償ユニット302は、場合により補間フィルタに基づく補間を実行して、動き補償ブロックを生成し得る。サブピクセル精度で使用される補間フィルタに関する識別子がシンタックス要素に含められ得る。
【0196】
動き補償ユニット302は、映像ブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算し得る。動き補償ユニット302は、ビデオエンコーダ200によって使用された補間フィルタを、受信したシンタックス情報に従って決定し、その補間フィルタを用いて予測ブロックを生成し得る。
【0197】
動き補償ユニット302は、シンタックス情報の一部を用いて、符号化映像シーケンスのフレーム及び/又はスライスを符号化するのに使用されるブロックのサイズ、符号化映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを指し示すモード、各インター符号化ブロックに関する1つ又は複数の参照フレーム(及び参照フレームリスト)、及び符号化映像シーケンスを復号するための他の情報を決定し得る。
【0198】
イントラ予測ユニット303は、例えばビットストリーム内で受信した、イントラ予測モードを用いて、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット303が、ビットストリーム内で提供されてエントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303が逆変換を適用する。
【0199】
再構成ユニット306が、残差ブロックを、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックと足し合わせて、復号ブロックを形成し得る。望まれる場合、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするよう、デブロッキングフィルタも適用され得る。そして、復号映像ブロックがバッファ307に格納され、それが、後の動き補償のための参照ブロックを提供する。
【0200】
図11は、本技術に従った映像処理の一方法のフローチャート表現である。方法1100は、動作1110にて、映像と該映像のビットストリーム表現との間での変換のために、該映像のカラーフォーマットに基づいて、ジョイントCb-Cr残差コーディングツールの使用をシグナリングする方式を決定することを含む。方法1100はまた、動作1120にて、該決定に基づいて上記変換を実行することを含む。
【0201】
一部の実施形態において、上記方式は、カラーフォーマットが非ゼロの値を持つことをシンタックス要素が指し示す場合に、ジョイントCb-Cr残差コーディングツールの使用のシグナリングがビットストリーム表現に含められることを規定する。一部の実施形態において、カラーフォーマットが非ゼロの値を持つことをシンタックス要素が指し示す場合、ジョイントCb-Cr残差コーディングツールに使用されるクロマサンプルの座標が、対応するルマサンプルのスケーリング座標に基づいて決定される。一部の実施形態において、2つのクロマアレイのサンプルが座標(x/SubWidthC,y/SubHeightC)を持ち、(x,y)は、対応するルマサンプルの座標であり、SubWidthC及びSubHeightCはスケーリング係数である。一部の実施形態において、上記方式は、映像のカラーフォーマットが4:0:0である場合に、ジョイントCb-Cr残差コーディングツールの使用のシグナリングがビットストリーム表現において省略されることを規定する。
【0202】
図12は、本技術に従った映像処理の一方法のフローチャート表現である。方法1200は、動作1210にて、映像と該映像のビットストリーム表現との間での変換を実行することを含む。当該ビットストリーム表現は、当該ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の対応する第2のシンタックス要素が当該ビットストリーム表現に含められるかを規定するフォーマットルールに準拠する。
【0203】
一部の実施形態において、第1の映像ユニットは、ピクチャヘッダ又はピクチャパラメータセットを有する。一部の実施形態において、第2の映像ユニットは、スライスヘッダ又はスライスパラメータセットを有する。一部の実施形態において、第1の映像ユニットは、ビデオパラメータセット、スライスパラメータセット、又はピクチャパラメータセットを有する。一部の実施形態において、第2の映像ユニットはピクチャヘッダを有する。
【0204】
一部の実施形態において、上記フォーマットルールは、ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の第2のシンタックス要素がビットストリーム表現において省略されることを規定する。一部の実施形態において、上記フォーマットルールは、ビットストリーム表現内の第1の映像ユニットに第1のシンタックス要素が含められる場合に、第2の映像ユニット内の第2のシンタックス要素がビットストリーム表現に含められることを規定する。一部の実施形態において、第2のシンタックス要素がその後にシグナリングされるかを指し示すインジケータが第2の映像ユニットに含められる。一部の実施形態において、当該ビットストリーム表現に第2のシンタックス要素が含められる場合、第2の映像ユニットに関連するスライスは、第1のシンタックス要素を考慮することなく、第2のシンタックス要素のインジケータに従って処理される。一部の実施形態において、第1の映像ユニットに関連付けられた第2の映像ユニットに第2のシンタックス要素が含められるかを指し示すインジケータが、第1の映像ユニットに含められる。
【0205】
一部の実施形態において、第1の映像ユニットはピクチャヘッダであり、第2の映像ユニットはスライスヘッダであり、ピクチャヘッダ内の第1のシンタックス要素は、スライスヘッダ内の第2のシンタックス要素と機能的に等価である。一部の実施形態において、第1の映像ユニットはスライスパラメータセットであり、第2の映像ユニットはピクチャヘッダであり、スライスパラメータセット内の第1のシンタックス要素は、ピクチャヘッダ内の第2のシンタックス要素と機能的に等価である。一部の実施形態において、第1の映像ユニットはピクチャパラメータセットであり、第2の映像ユニットはピクチャヘッダであり、ピクチャパラメータセット内の第1のシンタックス要素は、ピクチャヘッダ内の第2のシンタックス要素と機能的に等価である。
【0206】
図13は、本技術に従った映像処理の一方法のフローチャート表現である。方法1300は、動作1310にて、映像の領域と該映像のビットストリーム表現との間での変換を実行することを含む。当該変換において、複数変換選択(Multiple Transform Selection;MTS)コーディングツールが領域の全てのブロックに対して無効にされるかを指し示す第1のシンタックス要素がビットストリーム表現に含められる。
【0207】
一部の実施形態において、上記領域は、スライス、ピクチャ、又はシーケンスの全体を有する。一部の実施形態において、当該変換において、イントラコーディングされるブロックにMTSコーディングツールを適用する方式を指し示す第2のシンタックス要素が、第1のシンタックス要素に基づいて条件付きでビットストリーム表現に含められる。一部の実施形態において、第2のシンタックス要素は、MTSコーディングツールが領域内の全てのブロックに対して無効にされるのでないことを第1のシンタックス要素が指し示す場合に、ビットストリーム表現に含められる。一部の実施形態において、当該変換において、インターコーディングされるブロックにMTSコーディングツールを適用する方式を指し示す第3のシンタックス要素が、第1のシンタックス要素に基づいて条件付きでビットストリーム表現に含められる。一部の実施形態において、第3のシンタックス要素は、MTSコーディングツールが領域内の全てのブロックに対して無効にされるのでないことを第1のシンタックス要素が指し示す場合に、ビットストリーム表現に含められる。一部の実施形態において、第3のシンタックス要素は、サブブロック変換コーディングツールの適用可能性に更に基づいて条件付きでビットストリーム表現に含められる。一部の実施形態において、第2のシンタックス要素はsps_intra_mts_selectionを有し、第3のシンタックス要素はsps_inter_mts_selectionを有する。一部の実施形態において、MTSコーディングツールは、複数の変換の中からの変換の選択に基づく。
【0208】
図14は、本技術に従った映像処理の一方法のフローチャート表現である。方法1400は、動作1410にて、映像と該映像のビットストリーム表現との間での変換のために、変換スキップモードでコーディングされるブロックの第1の最大ブロックサイズをシグナリングすることのルールを、変換コーディングされるブロックの第2の最大ブロックサイズに基づいて決定することを含む。方法1400はまた、動作1420にて、該決定に基づいて上記変換を実行することを含む。一部の実施形態において、上記ルールは、第1の最大ブロックサイズが第2の最大ブロックサイズ以下であることを規定する。
【0209】
図15は、本技術に従った映像処理の一方法のフローチャート表現である。方法1500は、動作1510にて、映像のクロマコンポーネントのブロックと該映像のビットストリーム表現との間での変換を、クロマブロックの最終的な予測が、パーティションに基づく重みを用いて該クロマブロックの複数の予測を混合することによって決定される分割モードコーディングツールを用いて実行することを含む。当該変換において、上記重みは、当該ブロックのクロマコンポーネントにおけるクロマサンプル位置のタイプに基づいて決定される。
【0210】
一部の実施形態において、第1タイプのクロマサンプル位置を有するクロマコンポーネントの重みは、ブロックのルマコンポーネントにおけるルマサンプル位置に使用される重みに基づいて決定される。一部の実施形態において、該ルマサンプル位置は、コロケートの左上ルマサンプル位置である。一部の実施形態において、クロマサンプル位置の第1タイプはクロマサンプル位置タイプ0を有する。一部の実施形態において、第1タイプのクロマサンプル位置を有するクロマコンポーネントの重みは、ブロックのルマコンポーネントにおけるルマサンプル位置に使用される重みからサブサンプリングされる。
【0211】
一部の実施形態において、重みを決定するためにダウンサンプリングフィルタが使用され、該ダウンサンプリングフィルタは、ブロックのクロマコンポーネントにおけるクロマサンプル位置のタイプに基づいて決定される。一部の実施形態において、該ダウンサンプリングフィルタはX-タップフィルタを有し、Xは正の整数である。一部の実施形態において、Xは5又は6である。
【0212】
一部の実施形態において、上記パーティションのうちの少なくとも1つのパーティションは非矩形パーティションである。一部の実施形態において、上記パーティションのうちの少なくとも1つのパーティションは、角度付きエッジを持つ。一部の実施形態において、上記ダウンサンプリングフィルタは、インジケーションルールに従ってビットストリーム表現の映像ユニット内で指し示される。一部の実施形態において、該映像ユニットは、スライスパラメータセット、ビデオパラメータセット、ピクチャパラメータセット、ピクチャヘッダ、サブピクチャ、スライス、スライスヘッダ、タイル、ブリック、コーディングツリーユニット、仮想パイプラインデータユニットを有する。
【0213】
一部の実施形態において、ダウンサンプリングフィルタのタイプは、ビットストリーム表現内の第1のシンタックス要素によって指し示される。一部の実施形態において、映像の相異なるクロマフォーマットタイプ間での切り換えを指し示す第2のシンタックス要素がビットストリーム表現に含められる。一部の実施形態において、これら相異なるクロマフォーマットタイプは、クロマフォーマットタイプ0又はクロマフォーマットタイプ2のうちの少なくとも一方を有する。一部の実施形態において、領域の左上位置におけるダウンサンプリングされたルマ重みが、対応するルマ重みとコロケートであるかを指し示す第3のシンタックス要素が、ビットストリーム表現に含められる。一部の実施形態において、該第3のシンタックス要素はクロマサンプル位置タイプ0を指し示す。一部の実施形態において、領域の左上位置にあるダウンサンプリングされたルマサンプルが、対応するルマサンプルと水平方向でコロケートであり、且つ該対応するルマサンプルに対して垂直方向に0.5ユニットだけシフトされるか、を指し示す第3のシンタックス要素が、ビットストリーム表現に含められる。一部の実施形態において、該第3のシンタックス要素はクロマサンプル位置タイプ2を指し示す。一部の実施形態において、上記インジケーションルールは、映像のカラーフォーマットが4:2:0又は4:2:2である場合にダウンサンプリングフィルタのタイプが第1のシンタックス要素に含められることを規定する。一部の実施形態において、上記インジケーションルールは、ビットストリーム表現内の別のシンタックス要素が、第1タイプのダウンサンプリングフィルタが使用されるのか、それとも第2のタイプのダウンサンプリングフィルタが使用されるのかを指し示すことを規定する。
【0214】
一部の実施形態において、ダウンサンプリングフィルタのタイプは、ビットストリーム表現の映像ユニットに基づいて導出される。一部の実施形態において、ダウンサンプリングフィルタとコンテンツのクロマフォーマットタイプとの間の対応関係を規定するためにルックアップテーブルが使用される。
【0215】
一部の実施形態において、上記分割モードコーディングツールは、三角形パーティションモードツールに対応する。一部の実施形態において、上記分割モードコーディングツールは、幾何学的パーティションモードツールに対応する。
【0216】
一部の実施形態において、上記変換は、映像をビットストリーム表現に符号化することを含む。一部の実施形態において、上記変換は、ビットストリーム表現を映像に復号することを含む。
【0217】
開示される技術の一部の実施形態は、映像処理ツール又はモードを有効にする決定を行うことを含む。一例において、映像処理ツール又はモードが有効にされるとき、エンコーダは、映像のブロックの処理においてそのツール又はモードを使用又は実装することになるが、必ずしも、そのツール又はモードの使用に基づいて、結果として生じるビットストリームを変更するわけではない。すなわち、映像のブロックから映像のビットストリーム表現への変換は、映像処理ツール又はモードを、それが決定に基づいて有効にされるときに使用することになる。他の一例において、映像処理ツール又はモードが有効にされるとき、デコーダは、その映像処理ツール又はモードに基づいてビットストリームが変更されていることを知って、ビットストリームを処理することになる。すなわち、映像のビットストリーム表現から映像のブロックへの変換は、決定に基づいて有効にされていた映像処理ツール又はモードを用いて実行されることになる。
【0218】
開示される技術の一部の実施形態は、映像処理ツール又はモードを無効にする決定を行うことを含む。一例において、映像処理ツール又はモードが無効にされるとき、エンコーダは、映像のブロックの映像のビットストリームへの変換においてそのツール又はモードを使用しないことになる。他の一例において、映像処理ツール又はモードが無効にされるとき、デコーダは、決定に基づいて無効にされていた映像処理ツール又はモードを用いてはビットストリームが変更されていないことを知って、ビットストリームを処理することになる。
【0219】
開示される及びその他のソリューション、この文書に記述される例、実施形態、モジュール及び機能動作は、この文書に開示されている構造及びそれらに構造的に均等なものを含め、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、あるいはこれらのうちの1つ以上の組み合わせにて実施されることができる。開示される及びその他の実施形態は、1つ以上のコンピュータプログラムプロダクトとして実装されることができ、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、コンピュータ読み取り可能媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基板、メモリ装置、機械読み取り可能な伝搬信号を生じさせる物質の組成、又はそれらのうちの1つ以上の組み合わせとすることができる。用語“データ処理装置”は、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理するあらゆる装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードといった、問題としているコンピュータプログラムのための実行環境を作り出すコードを含むことができる。伝播される信号は、人工的に生成される信号であり、例えば、適切な受信器装置への伝送のために情報をエンコードするために生成される機械生成による電気信号、光信号、又は電磁信号である。
【0220】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含め、如何なる形態のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に格納されてもよいし、問題としているプログラムに専用の単一ファイルに格納されてもよいし、あるいは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されてもよいし、あるいは、一箇所に配置された、又は複数箇所に分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されてもよい。
【0221】
この文書に記載されるプロセス及び論理フローは、入力データについて演算して出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。これらのプロセス及び論理フローはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった専用の論理回路によって実行されることもでき、また、装置も、そのような専用の論理回路として実装されることができる。
【0222】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを格納するための1つ以上の大容量ストレージ装置を含み、あるいは、大容量ストレージ装置からデータを受信したり、それにデータを転送したりするように動作的に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、例えばEPROM、EEPROM、及びフラッシュメモリデバイスといった半導体メモリデバイス、例えば内部ハードディスク又はリムーバブルディスクといった磁気ディスク;光磁気ディスク;並びにCD ROM及びDVD-ROMディスクを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われたり、それに組み込まれたりしてもよい。
【0223】
この特許文書は数多くの詳細が含んでいるが、それらは、いずれかの主題又は特許請求され得るものの範囲についての限定として解釈されるべきでなく、むしろ、特定の技術の特定の実施形態に特有とし得る機構の説明として解釈されるべきである。別々の実施形態の文脈でこの特許文書に記載されている特定の複数の機構が、単一の実施形態にて組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で説明されている種々の機構が、複数の実施形態にて別々に、又は何らかの好適なサブコンビネーションで実装されることもできる。さらには、複数の機構が、特定の組み合わせにて作用するものとして上述され、さらには当初はそのように特許請求されていることがあり得るが、場合によって、特許請求されている組み合わせからの1以上の機構を組み合わせから除くこともでき、また、特許請求されている組み合わせをサブコンビネーション又はサブコンビネーションのバリエーションへと導いてもよい。
【0224】
同様に、図面には処理が特定の順序で示されるが、このことは、所望の結果を達成するために、それらの動作が図示される特定の順序で若しくは順番に実行されること、又は図示される全ての処理が実行されることを要求するものとして理解されるべきでない。また、この特許文書に記載されている実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきでない。
【0225】
ほんの少しの実装及び例を記載したのみであり、この特許文書に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われ得る。
【手続補正書】
【提出日】2022-04-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
映像の映像ユニットと前記映像のビットストリームとの間での変換のために、第1のシンタックス要素及び第2のシンタックス要素を決定するステップと、
前記決定に基づいて前記変換を実行するステップと、
を有し、
前記第1のシンタックス要素と前記第2のシンタックス要素は等価な機能を持ち、
前記第1のシンタックス要素は、前記映像ユニットにおける第1レベルにて前記ビットストリームに含められ、前記第2のシンタックス要素は、前記映像ユニットにおける第2レベルにて前記ビットストリームに含められ、
前記第1レベルはピクチャヘッダであり且つ前記第2レベルはスライスヘッダ、シーケンスパラメータセット若しくはピクチャパラメータセットであり、又は、前記第1レベルはスライスヘッダであり且つ前記第2レベルはシーケンスパラメータセット若しくはピクチャパラメータセットである、
方法。
【請求項2】
前記第1のシンタックス要素は、ルママッピング及びクロマスケーリングを有するコーディングツールが有効にされるかを規定して前記スライスヘッダに含められ、前記第2のシンタックス要素は、前記コーディングツールが有効にされるかを規定して前記シーケンスパラメータセットに含められ、
前記第1のシンタックス要素が前記スライスヘッダに含められないとき、前記第2のシンタックス要素は前記シーケンスパラメータセットに含められない、
請求項1に記載の方法。
【請求項3】
前記第1のシンタックス要素は、明示的スケーリングリストの使用が有効にされるかを規定して前記スライスヘッダに含められ、前記第2のシンタックス要素は、前記明示的スケーリングリストの使用が有効にされるかを規定して前記シーケンスパラメータセットに含められ、
前記第2のシンタックス要素が前記シーケンスパラメータセットに含められないとき、前記第1のシンタックス要素は前記スライスヘッダに含められない、
請求項1又は2に記載の方法。
【請求項4】
前記第1のシンタックス要素は、ALFが有効にされるかを規定して前記スライスヘッダに含められ、前記第2のシンタックス要素は、ALFが有効にされるかを規定して前記シーケンスパラメータセットに含められ、
前記第2のシンタックス要素が前記シーケンスパラメータセットに含められないとき、前記第1のシンタックス要素は前記スライスヘッダに含められない、
請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記第1のシンタックス要素は、フルペルのみのmmvdが有効にされるかを規定して前記ピクチャヘッダに含められ、前記第2のシンタックス要素は、フルペルのみのmmvdが有効にされるかを規定して前記シーケンスパラメータセットに含められ、
前記第2のシンタックス要素が前記シーケンスパラメータセットに含められないとき、前記第1のシンタックス要素は前記ピクチャヘッダに含められない、
請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
クロマ残差のジョイントコーディングが有効にされるかを規定する第3のシンタックス要素が前記シーケンスパラメータセットに含められるかが、前記シーケンスパラメータセットのカラーフォーマットに依存する、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記シーケンスパラメータセットのカラーフォーマットが4:0:0である場合、前記第3のシンタックス要素は前記シーケンスパラメータセットに含められず、前記シーケンスパラメータセットのカラーフォーマットが4:2:0、4:2:2、又は4:4:4である場合、前記第3のシンタックス要素は前記シーケンスパラメータセットに含められる、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
クロマ残差のジョイントコーディングが有効にされることを前記第3のシンタックス要素が規定するとき、前記シーケンスパラメータセットとは異なるレベルで前記ビットストリーム内にjoint_cbcr_sign_flagが含められ、
クロマ残差のジョイントコーディングが有効にされないことを前記第3のシンタックス要素が規定するとき、前記ビットストリーム内に前記joint_cbcr_sign_flagは含められない、
請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
sps_explicit_mts_intra_enabled_flag及びsps_explicit_mts_inter_enabled_flagが存在するかを規定するsps_mts_enabled_flagが前記シーケンスパラメータセットに含められ、
複数変換選択MTSが全てのピクチャに対して無効にされるかを指し示す第4のシンタックス要素が前記ビットストリームに含められる、
請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記変換は、前記映像ユニットを前記ビットストリームへと符号化することを含む、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記変換は、前記ビットストリームから前記映像ユニットを復号することを含む、請求項1乃至9のいずれか一項に記載の方法。
【請求項12】
プロセッサと、命令を有する非一時的なメモリと、を有する映像データを処理する装置であって、前記命令は、前記プロセッサによる実行を受けて、前記プロセッサに、
映像の映像ユニットと前記映像のビットストリームとの間での変換のために、第1のシンタックス要素及び第2のシンタックス要素を決定させ、
前記決定に基づいて前記変換を実行させ、
前記第1のシンタックス要素と前記第2のシンタックス要素は等価な機能を持ち、
前記第1のシンタックス要素は、前記映像ユニットにおける第1レベルにて前記ビットストリームに含められ、前記第2のシンタックス要素は、前記映像ユニットにおける第2レベルにて前記ビットストリームに含められ、
前記第1レベルはピクチャヘッダであり且つ前記第2レベルはスライスヘッダ、シーケンスパラメータセット若しくはピクチャパラメータセットであり、又は、前記第1レベルはスライスヘッダであり且つ前記第2レベルはシーケンスパラメータセット若しくはピクチャパラメータセットである、
装置。
【請求項13】
命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
映像の映像ユニットと前記映像のビットストリームとの間での変換のために、第1のシンタックス要素及び第2のシンタックス要素を決定させ、
前記決定に基づいて前記変換を実行させ、
前記第1のシンタックス要素と前記第2のシンタックス要素は等価な機能を持ち、
前記第1のシンタックス要素は、前記映像ユニットにおける第1レベルにて前記ビットストリームに含められ、前記第2のシンタックス要素は、前記映像ユニットにおける第2レベルにて前記ビットストリームに含められ、
前記第1レベルはピクチャヘッダであり且つ前記第2レベルはスライスヘッダ、シーケンスパラメータセット若しくはピクチャパラメータセットであり、又は、前記第1レベルはスライスヘッダであり且つ前記第2レベルはシーケンスパラメータセット若しくはピクチャパラメータセットである、
コンピュータ読み取り可能記憶媒体。
【請求項14】
映像処理装置により実行される方法によって生成された映像のビットストリームを格納した非一時的なコンピュータ読み取り可能記録媒体であって、前記方法は、
前記映像の映像ユニットについて、第1のシンタックス要素及び第2のシンタックス要素を決定するステップと、
前記決定に基づいて前記ビットストリームを生成するステップと、
を有し、
前記第1のシンタックス要素と前記第2のシンタックス要素は等価な機能を持ち、
前記第1のシンタックス要素は、前記映像ユニットにおける第1レベルにて前記ビットストリームに含められ、前記第2のシンタックス要素は、前記映像ユニットにおける第2レベルにて前記ビットストリームに含められ、
前記第1レベルはピクチャヘッダであり且つ前記第2レベルはスライスヘッダ、シーケンスパラメータセット若しくはピクチャパラメータセットであり、又は、前記第1レベルはスライスヘッダであり且つ前記第2レベルはシーケンスパラメータセット若しくはピクチャパラメータセットである、
コンピュータ読み取り可能記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
この出願は、2019年10月5日に出願された国際特許出願第PCT/CN2019/109837号の優先権及び利益を主張するものである2020年10月9日に出願された国際特許出願PCT/CN2020/119912号の国内移行出願である。上記出願の開示全体を、この出願の開示の一部として援用する。
【国際調査報告】