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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特表2025-501634サブブロックのイントラ及びインターコーディング
<>
  • 特表-サブブロックのイントラ及びインターコーディング 図1
  • 特表-サブブロックのイントラ及びインターコーディング 図2
  • 特表-サブブロックのイントラ及びインターコーディング 図3
  • 特表-サブブロックのイントラ及びインターコーディング 図4
  • 特表-サブブロックのイントラ及びインターコーディング 図5
  • 特表-サブブロックのイントラ及びインターコーディング 図6
  • 特表-サブブロックのイントラ及びインターコーディング 図7
  • 特表-サブブロックのイントラ及びインターコーディング 図8
  • 特表-サブブロックのイントラ及びインターコーディング 図9
  • 特表-サブブロックのイントラ及びインターコーディング 図10
  • 特表-サブブロックのイントラ及びインターコーディング 図11
  • 特表-サブブロックのイントラ及びインターコーディング 図12
  • 特表-サブブロックのイントラ及びインターコーディング 図13
  • 特表-サブブロックのイントラ及びインターコーディング 図14
  • 特表-サブブロックのイントラ及びインターコーディング 図15
  • 特表-サブブロックのイントラ及びインターコーディング 図16
  • 特表-サブブロックのイントラ及びインターコーディング 図17
  • 特表-サブブロックのイントラ及びインターコーディング 図18
  • 特表-サブブロックのイントラ及びインターコーディング 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-22
(54)【発明の名称】サブブロックのイントラ及びインターコーディング
(51)【国際特許分類】
   H04N 19/107 20140101AFI20250115BHJP
   H04N 19/157 20140101ALI20250115BHJP
   H04N 19/46 20140101ALI20250115BHJP
   H04N 19/176 20140101ALI20250115BHJP
【FI】
H04N19/107
H04N19/157
H04N19/46
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024538733
(86)(22)【出願日】2023-06-13
(85)【翻訳文提出日】2024-06-25
(86)【国際出願番号】 US2023068356
(87)【国際公開番号】W WO2024011006
(87)【国際公開日】2024-01-11
(31)【優先権主張番号】63/359,155
(32)【優先日】2022-07-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/207,578
(32)【優先日】2023-06-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リー,グイチュン
(72)【発明者】
【氏名】チェン,リエン-フェイ
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN10
5C159NN11
5C159RC12
5C159TA23
5C159TA26
5C159TC27
5C159UA02
5C159UA05
5C159UA16
5C159UA33
(57)【要約】
処理回路は、ピクチャを少なくとも搬送するコーディングビットストリームを受信し、コーディングビットストリーム内の第1のシンタックスエレメント値に基づいて、ピクチャ内の現在コーディングユニット(CU, coding unit)がサブブロックベースのインター予測モードでコーディングされると決定し、サブブロックベースのインター予測モードでコーディングされた現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされると決定する。処理回路は、サブブロックベースのインター予測モードに基づいて、インター予測によって現在CUの1つ以上の第2のサブブロックを再構成し、1つ以上の第2のサブブロックは、現在CU内の1つ以上の第1のサブブロックと重複しない。処理回路は、現在CUがサブブロックベースのインター予測モードでコーディングされる一方で、イントラ予測によって現在CUの1つ以上の第1のサブブロックを再構成する。
【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
複数のサブブロックを含むブロックを含むピクチャを少なくとも搬送するコーディングビットストリームを受信するステップと、
前記コーディングビットストリーム内の第1のシンタックスエレメント値に基づいて、前記ピクチャ内の現在コーディングユニット(CU)がサブブロックベースのインター予測モードでコーディングされると決定するステップと、
前記サブブロックベースのインター予測モードでコーディングされた前記現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされると決定するステップと、
前記サブブロックベースのインター予測モードに基づいて、インター予測によって前記現在CUの1つ以上の第2のサブブロックを再構成するステップであって、前記1つ以上の第2のサブブロックは、前記現在CU内の前記1つ以上の第1のサブブロックと重複しない、ステップと、
前記現在CUが前記サブブロックベースのインター予測モードでコーディングされる一方で、前記イントラ予測によって前記現在CUの前記1つ以上の第1のサブブロックを再構成するステップと
を含む方法。
【請求項2】
前記サブブロックベースのインター予測モードは、アフィンモード、回帰ベースのインター予測モード、又はサブブロックベースの時間動きベクトル予測(SbTMVP)モードのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記現在CU内の前記1つ以上の第1のサブブロックが前記イントラ予測によってコーディングされると決定するステップは、
前記現在CU内の少なくとも1つのサブブロックが前記イントラ予測によってコーディングされるか否かを示す第1のフラグを決定するステップと、
前記コーディングビットストリームから、前記現在CU内のサブブロックにそれぞれ関連する第2のフラグを復号するステップであって、前記現在CU内のサブブロックに関連する第2のフラグは、前記サブブロックが前記イントラ予測によってコーディングされるか否かを示す、ステップと
を含む、請求項1に記載の方法。
【請求項4】
前記第1のフラグを決定するステップは、
前記コーディングビットストリームから前記第1のフラグを復号するステップを更に含む、請求項3に記載の方法。
【請求項5】
前記第1のフラグを決定するステップは、
前記現在CUがサブブロックベースの時間動きベクトル予測(SbTMVP)モードでコーディングされるとき、前記現在CU内のサブブロックについての同一位置のブロックが有効な動きベクトルを有さないという決定に応じて、前記第1のフラグが真値であると導出するステップ、又は
前記現在CUが前記SbTMVPモードでコーディングされるとき、前記現在CU内の各サブブロックが有効な動きベクトルを有するという決定に応じて、前記第1のフラグが偽値であると導出するステップ
を更に含む、請求項3に記載の方法。
【請求項6】
前記現在CUの前記1つ以上の第2のサブブロックは、前記現在CUの前記1つ以上の第1のサブブロックの前に再構成され、前記現在CUの前記1つ以上の第1のサブブロックは、前記1つ以上の第2のサブブロックの位置に基づいて決定される特定の順序に従って再構成される、請求項1に記載の方法。
【請求項7】
ラスタ走査順序に従って前記現在CUの前記1つ以上の第2のサブブロックを再構成するステップと、
前記1つ以上の第2のサブブロックが再構成された後に、前記ラスタ走査順序に従って記現在CUの前記1つ以上の第1のサブブロックを再構成するステップと
を更に含む、請求項1に記載の方法。
【請求項8】
前記1つ以上の第1のサブブロック内の第1のサブブロックについて、前記現在CU内の隣接インターコーディングサブブロック及び隣接イントラコーディングサブブロックに従って前記第1のサブブロックを再構成するステップを更に含む、請求項6に記載の方法。
【請求項9】
第1のフラグが真であることに応じて、変換ユニットサイズがサブブロックのサイズであると決定するステップであって、前記第1のフラグは、前記現在CU内の少なくとも1つのサブブロックが前記イントラ予測によってコーディングされるか否かを示す、ステップと、
前記第1のフラグが偽であることに応じて、前記変換ユニットサイズが前記現在CUのサイズであると決定するステップと
を更に含む、請求項1に記載の方法。
【請求項10】
前記現在CUのサイズの変換ユニットを取得するために逆変換を実行するステップと、
前記変換ユニットに従って前記1つ以上の第2のサブブロックに対応する残差値を決定するステップと
を更に含む、請求項1に記載の方法。
【請求項11】
前記現在CU内のサブブロックのサイズの1つ以上の変換ユニットを取得するために逆変換を実行するステップであって、前記1つ以上の変換ユニットは、それぞれ前記1つ以上の第1のサブブロックに対応する、ステップと、
前記1つ以上の変換ユニットに従って、前記1つ以上の第1のサブブロックに対応する残差値を決定するステップと
を更に含む、請求項1に記載の方法。
【請求項12】
前記1つ以上の第1のサブブロックを再構成するステップは、
選択された平滑モードのセット又は非方向性モードのセットとして、最確モード()のセットのうちの少なくとも1つから選択されたイントラ予測モードに基づいて、前記1つ以上の第1のサブブロック内の第1のサブブロックを再構成するステップを更に含む、請求項1に記載の方法。
【請求項13】
前記1つ以上の第1のサブブロックを再構成するステップは、
1つ以上の右の列、1つ以上の下の行、1つ以上の角のサンプル、1つ以上の右上の行又は1つ以上の左下の列のうちの少なくとも1つに従って、前記1つ以上の第1のサブブロック内の第1のサブブロックを再構成するステップを更に含む、請求項1に記載の方法。
【請求項14】
前記1つ以上の第1のサブブロックを再構成するステップは、
前記イントラ予測によって前記1つ以上の第1のサブブロック内のサブブロックのルマ成分及び少なくとも1つのクロマ成分を再構成するステップを更に含む、請求項1に記載の方法。
【請求項15】
前記1つ以上の第1のサブブロックを再構成するステップは、
前記現在CU内の前記1つ以上の第1のサブブロックが前記イントラ予測によってコーディングされることに応じて、前記1つ以上の第2のサブブロックを再構成するための制約と共に、前記インター予測を決定するステップを更に含む、請求項1に記載の方法。
【請求項16】
前記インター予測を決定するステップは、
前記インター予測のために単予測を使用することを決定するステップを更に含む、請求項15に記載の方法。
【請求項17】
前記1つ以上の第1のサブブロックを再構成するステップは、
前記現在CUの隣接ピクセルからイントラ予測モードの予測子を決定するステップであって、前記イントラ予測モードは、最確モード(MPM)、デコーダ側イントラモード導出(DIMD)モード、テンプレートベースイントラモード導出(TIMD)モード又は方向性イントラ予測モードのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項18】
処理回路を含むビデオ処理の装置であって、
前記処理回路は、請求項1乃至17のうちいずれか1項に記載の方法を実行するように構成される、装置。
【請求項19】
コンピュータに請求項1乃至17のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項20】
ビデオ符号化のための方法であって、
ピクチャ内の現在コーディングユニット(CU)がサブブロックベースのインター予測モードでコーディングされると決定するステップと、
前記現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされると決定するステップと、
前記現在CU内の1つ以上の第2のサブブロックがインター予測によってコーディングされると決定するステップであって、前記1つ以上の第2のサブブロックは、前記現在CU内の前記1つ以上の第1のサブブロックと重複しない、ステップと、
前記サブブロックベースのインター予測モードで前記現在CUをビットストリームに符号化する一方で、前記イントラ予測によって前記現在CUの前記1つ以上の第1のサブブロックを前記ビットストリームに符号化するステップと、
前記ビットストリームを送信するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2023年6月8日に出願された「SUBBLOCK INTRA AND INTER CODING」という名称の米国特許出願第18/207,578号の優先権の利益を主張するものであり、この米国特許出願は、2022年7月7日に出願された「Subblock Intra and Inter Coding」という名称の米国仮出願第63/359,155号の優先権の利益を主張する。先の出願の開示の全内容を参照によって援用する。
【0002】
[技術分野]
本開示は、概してビデオ符号化(コーディング)に関する実施形態について説明する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的とする。本発明者らの研究は、この背景技術の項に記載されている範囲で、出願時に先行技術として認定されていない説明の側面と同様に、明示的にも暗黙的にも本開示に対する先行技術として認められるものではない。
【0004】
画像/ビデオ圧縮は、最小限の品質劣化で、異なるデバイス、ストレージ及びネットワークにわたって画像/ビデオファイルを伝送するのを助けることができる。いくつかの例では、ビデオコーデック技術は、空間的及び時間的冗長性に基づいてビデオを圧縮できる。一例では、ビデオコーデックは、空間的冗長性に基づいて画像を圧縮できるイントラ予測と呼ばれる技術を使用できる。例えば、イントラ予測は、サンプル予測のために、再構成中の現在ピクチャからの参照データを使用できる。別の例では、ビデオコーデックは、時間冗長性に基づいて画像を圧縮できるインター予測と呼ばれる技術を使用できる。例えば、インター予測は、動き補償を用いて以前に再構成されたピクチャから現在ピクチャ内のサンプルを予測できる。動き補償は、一般的に、動きベクトル(MV, motion vector)によって示される。
【発明の概要】
【0005】
本開示の態様は、ビデオ符号化/復号のための方法及び装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。処理回路は、複数のサブブロックを含むブロックを含むピクチャを少なくとも搬送するコーディングビットストリームを受信し、コーディングビットストリーム内の第1のシンタックスエレメント値に基づいて、ピクチャ内の現在コーディングユニット(CU, coding unit)がサブブロックベースのインター予測モードでコーディングされると決定し、サブブロックベースのインター予測モードでコーディングされた現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされると決定する。処理回路は、サブブロックベースのインター予測モードに基づいて、インター予測によって現在CUの1つ以上の第2のサブブロックを再構成し、1つ以上の第2のサブブロックは、現在CU内の1つ以上の第1のサブブロックと重複しない。処理回路は、現在CUがサブブロックベースのインター予測モードでコーディングされる一方で、イントラ予測によって現在CUの1つ以上の第1のサブブロックを再構成する。
【0006】
いくつかの例では、サブブロックベースのインター予測モードは、アフィンモード、回帰ベースのインター予測モード、又はサブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)モードのうちの少なくとも1つを含む。
【0007】
いくつかの例では、現在CU内の少なくとも1つのサブブロックがイントラ予測によってコーディングされるか否かを示す第1のフラグが決定され、次いで、現在CU内のサブブロックにそれぞれ関連する第2のフラグがビットストリームから復号され、現在CU内のサブブロックに関連する第2のフラグは、サブブロックがイントラ予測によってコーディングされるか否かを示す。一例では、第1のフラグはビットストリームから復号される。
【0008】
いくつかの例では、第1のフラグは信号伝達(シグナリング)なしに導出される。一例では、第1のフラグは、現在CUがサブブロックベースの時間動きベクトル予測(SbTMVP)モードでコーディングされるとき、現在CU内のサブブロックについての同一位置のブロックが有効な動きベクトルを有さないという決定に応じて、真値と導出される。別の例では、第1のフラグは、現在CUがSbTMVPモードでコーディングされるとき、現在CU内の各サブブロックが有効な動きベクトルを有するという決定に応じて、偽値と導出される。
【0009】
いくつかの例では、現在CUの1つ以上の第2のサブブロックは、現在CUの1つ以上の第1のサブブロックの前に再構成され、現在CUの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックの位置に基づいて決定される特定の順序に従って再構成される。
【0010】
一例では、現在CUの1つ以上の第2のサブブロックは、ラスタ走査順序に従って再構成され、現在CUの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックが再構成された後にラスタ走査順序に従って再構成される。
【0011】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックについて、第1のサブブロックは、再構成された現在CU内の隣接インターコーディングサブブロック及び隣接イントラコーディングサブブロックに従って予測される。
【0012】
一例では、変換ユニットサイズは、第1のフラグが真であることに応じてサブブロックのサイズであると決定され、第1のフラグは、現在CU内の少なくとも1つのサブブロックがイントラ予測によってコーディングされるか否かを示す。別の例では、変換ユニットサイズは、第1のフラグが偽であることに応じて、現在CUのサイズであると決定される。
【0013】
いくつかの例では、現在CUのサイズの変換ユニットを取得するために逆変換が実行され、1つ以上の第2のサブブロックに対応する残差値が、変換ユニットに従って決定される。次いで、インター予測に基づいて予測された1つ以上の第2のサブブロック及び残差値が、1つ以上の第2のサブブロックの再構成のために組み合わされる。
【0014】
いくつかの例では、現在CU内のサブブロックのサイズの1つ以上の変換ユニットを取得するために逆変換が取得され、1つ以上の変換ユニットは、それぞれ1つ以上の第1のサブブロックに対応する。1つ以上の変換ユニットに従って、1つ以上の第1のサブブロックに対応する残差値が決定される。次いで、イントラ予測に基づいて予測された1つ以上の第1のサブブロック及び残差値が、1つ以上の第1のサブブロックの再構成のために組み合わされる。
【0015】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、選択された平滑モードのセット又は非方向性モードのセットとして、最確モード(most portable mode)のセットのうちの少なくとも1つから選択されたイントラ予測モードに基づいて再構成される。
【0016】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、1つ以上の右の列、1つ以上の下の行、1つ以上の角のサンプル、1つ以上の右上の行又は1つ以上の左下の列のうちの少なくとも1つに従って再構成される。
【0017】
いくつかの例では、1つ以上の第1のサブブロック内の各サブブロックについて、サブブロックのルマ成分及びクロマ成分が共にイントラ予測によって再構成される。
【0018】
いくつかの例では、現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされることに応じて、1つ以上の第2のサブブロックを再構成するための制約と共に、インター予測が決定される。一例では、単予測がインター予測に使用される。
【0019】
いくつかの例では、イントラ予測モードの予測子が現在CUの隣接ピクセルから決定され、イントラ予測モードは、最確モード(MPM, most probable mode)、デコーダ側イントラモード導出(DIMD, decode-side intra mode derivation)モード、テンプレートベースイントラモード導出(TIMD, template based intra mode derivation)モード又は方向性イントラ予測モードのうちの少なくとも1つを含む。
【0020】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されたとき、コンピュータにビデオ復号のための方法を実行させる命令を記憶した非一時的なコンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0021】
開示の主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
図1】通信システム(100)の例示的なブロック図の概略図である。
図2】デコーダの例示的なブロック図の概略図である。
図3】エンコーダの例示的なブロック図の概略図である。
図4】本開示の一実施形態による空間マージ候補の位置を示す。
図5】本開示の一実施形態による、空間マージ候補の冗長性検査のために考慮される候補ペアを示す。
図6】時間マージ候補のための例示的な動きベクトルスケーリングを示す。
図7】現在CUの時間マージ候補のための例示的な候補位置(例えば、C0及びC1)を示す。
図8】いくつかの例における探索プロセスの例を示す。
図9】いくつかの例における探索点の例を示す。
図10】いくつかの例における改良方向を示す図を示す。
図11】いくつかの例における例示的なサブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)プロセスを示す。
図12】いくつかの例における例示的なサブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)プロセスを示す。
図13】本開示のいくつかの実施形態によるコーディングブロックの図を示す。
図14】本開示のいくつかの実施形態によるコーディングブロックの図を示す。
図15】本開示のいくつかの実施形態による、サブブロックのためにイントラ予測を使用する図を示す。
図16】本開示のいくつかの実施形態による、サブブロックのためにイントラ予測を使用する図を示す。
図17】本開示のいくつかの実施形態によるプロセスを概説するフローチャートを示す。
図18】本開示のいくつかの実施形態による別のプロセスを概説するフローチャートを示す。
図19】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0022】
図1は、いくつかの例におけるビデオ処理システム(100)のブロック図を示す。ビデオ処理システム(100)は、開示の主題のアプリケーションの例であり、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダである。開示の主題は、例えば、テレビ会議、デジタルTV、ストリーミングサービス、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションにも同様に適用可能である。
【0023】
ビデオ処理システム(100)は、例えば、圧縮されていないビデオピクチャ(102)のストリームを作成するビデオソース(101)、例えば、デジタルカメラを含むことができるキャプチャサブシステム(113)を含む。一例では、ビデオピクチャのストリーム(102)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(104)(又は符号化ビデオビットストリーム(コーディングビデオビットストリーム))と比較して高いデータ量を強調するために太線で示されているビデオピクチャのストリーム(102)は、ビデオソース(101)に結合されたビデオエンコーダ(103)を含む電子デバイス(120)によって処理できる。ビデオエンコーダ(103)は、以下でより詳細に説明するように、開示される主題の態様を可能にするか或いは実装するためのハードウェア、ソフトウェア又はそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(102)と比較してより低いデータ量を強調するために細い線として示されている符号化ビデオデータ(104)(又は符号化ビデオビットストリーム)は、将来の使用のためにストリーミングサーバ(105)に記憶できる。図1におけるクライアントサブシステム(106)及び(108)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(105)にアクセスして、符号化ビデオデータ(104)のコピー(107)及び(109)を取り出すことができる。クライアントサブシステム(106)は、例えば、電子デバイス(130)内にビデオデコーダ(110)を含むことができる。ビデオデコーダ(110)は、符号化ビデオデータの入力コピー(107)を復号し、ディスプレイ(112)(例えば、表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできるビデオピクチャの出力ストリーム(111)を作成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(104)、(107)及び(109)(例えば、ビデオビットストリーム)は、いくつかのビデオコーディング/圧縮標準に従って符号化できる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング標準は、非公式には、VVC(Versatile Video Coding)として知られている。開示される主題は、VVCの文脈で使用されてもよい。
【0024】
電子デバイス(120)及び(130)は、他の構成要素(図示せず)を含むことができる点に留意する。例えば、電子デバイス(120)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(130)は、ビデオエンコーダ(図示せず)を含むこともできる。
【0025】
図2は、ビデオデコーダ(210)の例示的なブロック図を示す。ビデオデコーダ(210)は、電子デバイス(230)に含まれることができる。電子デバイス(230)は、受信機(231)(例えば、受信回路)を含むことができる。ビデオデコーダ(210)は、図1の例におけるビデオデコーダ(110)の代わりに使用できる。
【0026】
受信機(231)は、ビデオデコーダ(210)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよい。一実施形態では、一度に1つの符号化ビデオシーケンスが受信されてもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスの復号とは独立している。符号化ビデオシーケンスは、チャネル(201)から受信されてもよく、当該チャネルは、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(231)は、符号化ビデオデータを、他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム)と共に受信してもよく、これらは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信機(231)は、符号化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(215)は、受信機(231)とエントロピーデコーダ/パーサ(220)(以下、「パーサ」(220)という)との間に結合されてもよい。特定の用途では、バッファメモリ(215)はビデオデコーダ(210)の一部である。他の場合には、ビデオデコーダの外部とすることができる(図示せず)。更に他の場合には、例えば、ネットワークジッタを防止するために、ビデオデコーダ(210)の外部のバッファメモリ(図示せず)が存在することができ、例えば、再生タイミングに対処するために、ビデオデコーダ(210)内に更に他のバッファメモリ(215)が存在することができる。受信機(231)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイスから、或いは、等時性(isosynchronous)ネットワークからデータを受信している場合、バッファメモリ(215)は必要なくてもよく或いは小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用については、バッファメモリ(215)が必要とされてもよく、比較的大きくすることができ、有利には適応的なサイズとすることができ、ビデオデコーダ(210)の外部のオペレーティングシステム及び同様の要素(図示せず)において少なくとも部分的に実装されてもよい。
【0027】
ビデオデコーダ(210)は、符号化ビデオシーケンスからシンボル(221)を再構成するためのパーサ(220)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(210)の動作を管理するために使用される情報を含み、図2に示すように、電子デバイス(230)の一体的な部分ではないが電子デバイス(230)に結合できるレンダリングデバイス(212)(例えば、ディスプレイ画面)のようなレンダリングデバイスを制御するための情報を潜在的に含む。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEI, Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(VUI, Video Usability Information)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(220)は、受信した符号化ビデオシーケンスを解析/エントロピー復号してもよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を伴う或いは伴わない算術符号化等を含む、様々な原理に従うことができる。パーサ(220)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうち少なくとも1つについてのサブグループパラメータのセットを抽出してもよい。サブグループは、グループオブピクチャ(GOP, Group of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU, Coding Unit)、ブロック、変換ユニット(TU, Transformation Unit)、予測ユニット(PU, Prediction Unit)等を含んでもよい。また、パーサ(220)は、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル等のような情報を抽出してもよい。
【0028】
パーサ(220)は、シンボル(221)を生成するために、バッファメモリ(215)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。
【0029】
シンボル(221)の再構成には、符号化ビデオピクチャ又はその部分のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)及び他の要因に依存して、複数の異なるユニットが関与することができる。どのユニットが関与するか及びどのように関与するかは、パーサ(220)によって符号化ビデオシーケンスから解析されたサブグループ制御情報によって制御できる。パーサ(220)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0030】
上記の機能ブロックの他に、ビデオデコーダ(210)は、概念的に、以下に説明するような複数の機能ユニットに細分できる。商用的な制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合できる。しかし、開示の主題を説明する目的で、以下の機能ユニットに概念的に細分することが適切である。
【0031】
第1のユニットは、スケーラ/逆変換ユニット(251)である。スケーラ/逆変換ユニット(251)は、パーサ(220)からシンボル(221)として、制御情報(どの変換を使用するべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む)と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(251)は、アグリゲータ(255)に入力され得るサンプル値を含むブロックを出力することができる。
【0032】
場合によっては、スケーラ/逆変換ユニット(251)の出力サンプルは、イントラ符号化ブロックに関連することができる。イントラ符号化ブロックは、前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの前に再構成された部分からの予測情報を使用できるブロックに関連することができる。このような予測情報は、イントラピクチャ予測ユニット(252)によって提供できる。場合によっては、イントラピクチャ予測ユニット(252)は、現在ピクチャバッファ(258)から取り出された周囲の既に再構成された情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(258)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファする。場合によっては、アグリゲータ(255)は、サンプル毎に、イントラ予測ユニット(252)が生成した予測情報を、スケーラ/逆変換ユニット(251)によって提供された出力サンプル情報に追加する。
【0033】
他の場合には、スケーラ/逆変換ユニット(251)の出力サンプルは、インター符号化されて潜在的に動き補償されたブロックに関連することができる。このような場合、動き補償予測ユニット(253)は、参照ピクチャメモリ(257)にアクセスして、予測に使用されるサンプルを取り出すことができる。ブロックに関連するシンボル(221)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(255)によってスケーラ/逆変換ユニット(251)の出力(この場合には、残差サンプル又は残差信号と呼ばれる)に追加できる。動き補償予測ユニット(253)が予測サンプルを取り出す参照ピクチャメモリ(257)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有することができるシンボル(221)の形式で動き補償予測ユニット(253)に利用可能な動きベクトルによって制御できる。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(257)から取り出されるサンプル値の補間、動きベクトル予測メカニズム等を含むことができる。
【0034】
アグリゲータ255)の出力サンプルは、ループフィルタユニット(256)内の様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術はループ内フィルタ技術を含むことができ、当該ループ内フィルタ技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(220)からシンボル(221)としてループフィルタユニット(256)に利用可能にされる。ビデオ圧縮はまた、符号化ピクチャ又は符号化ビデオシーケンスの(復号順に)前の部分の復号の間に取得されたメタ情報に応答すると共に、前に再構成されてループフィルタリングされたサンプル値にも応答することができる。
【0035】
ループフィルタユニット(256)の出力はサンプルストリームとすることができ、当該サンプルストリームは、レンダリングデバイス(212)に出力できると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(257)に記憶できる。
【0036】
特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構成され、符号化ピクチャが(例えば、パーサ(220)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(258)は参照ピクチャメモリ(257)の一部となることができ、新たな現在ピクチャバッファが、後続の符号化ピクチャの再構成を開始する前に再割り当てされることができる。
【0037】
ビデオデコーダ(210)は、所定のビデオ圧縮技術又はITU-T Rec. H.265のような標準に従って復号動作を実行してもよい。符号化ビデオシーケンスがビデオ圧縮技術又は標準に文書化されているようにビデオ圧縮技術又は標準のシンタックス及びプロファイルの双方に従うという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって指定されたシンタックスに適合してもよい。具体的には、プロファイルは、ビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルの下で使用するためのツールのみとしての特定のツールを選択できる。また、コンプライアンスのために、符号化ビデオシーケンスの複雑さは、ビデオ圧縮技術又は標準のレベルによって定義される範囲内になることが必要になり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒当たりのメガサンプル単位で測定される)、最大参照ピクチャサイズ等を制限する。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD, Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスで伝達されるHRDバッファ管理についてのメタデータを通じて更に制限できる。
【0038】
一実施形態では、受信機(231)は、符号化ビデオと共に更なる(冗長な)データを受信してもよい。更なるデータは、符号化ビデオシーケンスの一部として含まれてもよい。更なるデータは、データを適切に復号するために、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(210)によって使用されてもよい。更なるデータは、例えば、時間、空間又は信号対雑音比(SNR, signal to noise ratio)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式とすることができる。
【0039】
図3は、ビデオエンコーダ(303)の例示的なブロック図を示す。ビデオエンコーダ(303)は、電子デバイス(320)に含まれる。電子デバイス(320)は、送信機(340)(例えば、送信回路)を含む。ビデオエンコーダ(303)は、図1の例におけるビデオエンコーダ(103)の代わりに使用できる。
【0040】
ビデオエンコーダ(303)は、ビデオエンコーダ(303)によってコーディングされるビデオ画像をキャプチャし得るビデオソース(301)(図3の例では電子デバイス(320)の一部ではない)からビデオサンプルを受信してもよい。別の例では、ビデオソース(301)は、電子デバイス(320)の一部である。
【0041】
ビデオソース(301)は、デジタルビデオサンプルストリームの形式でビデオエンコーダ(303)によって符号化されるべきソースビデオシーケンスを提供してもよく、当該デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット等)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB等)及びいずれかの適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)とすることができる。メディア提供システムにおいて、ビデオソース(301)は、事前に準備されたビデオを記憶する記憶デバイスでもよい。テレビ会議システムでは、ビデオソース(301)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、順に見たときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間配列として構成されてもよく、各画素は、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解できる。以下の説明は、サンプルに焦点を当てる。
【0042】
一実施形態によれば、ビデオエンコーダ(303)は、リアルタイムで或いは要求されるいずれかの他の時間制約下で、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(343)に符号化及び圧縮してもよい。適切な符号化速度を実現することは、コントローラ(350)の1つの機能である。いくつかの実施形態では、コントローラ(350)は、以下に説明するように、他の機能ユニットを制御でき、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラ(350)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(350)は、特定のシステム設計のために最適化されたビデオエンコーダ(303)に関連する他の適切な機能を有するように構成できる。
【0043】
いくつかの実施形態では、ビデオエンコーダ(303)は、符号化ループで動作するように構成される。非常に簡略化した説明として、一例では、符号化ループは、ソースコーダ(330)(例えば、符号化されるべき入力ピクチャ及び参照ピクチャに基づいてシンボルストリームのようなシンボルを生成することを担う)と、ビデオエンコーダ(303)に埋め込まれた(ローカル)デコーダ(333)とを含むことができる。デコーダ(333)は、(リモート)デコーダが生成するのと同様にサンプルデータを生成するようにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(334)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)と独立したビット単位の正確な結果をもたらすので、参照ピクチャメモリ(334)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期(例えば、チャネルエラーの理由で同期が維持できない場合の結果として生じるドリフトを含む)のこの基本原理は、いくつかの関連技術においても同様に使用される。
【0044】
「ローカル」デコーダ(333)の動作は、ビデオデコーダ(210)のような「リモート」デコーダ(210)と同じものとすることができ、これは、図2に関連して上記において既に詳細に説明した。しかし、簡単に図2を参照すると、シンボルが利用可能であり、エントロピーコーダ(345)及びパーサ(220)による符号化ビデオシーケンスへのシンボルの符号化/復号が可逆になり得るので、バッファメモリ(215)及びパーサ(220)を含むビデオデコーダ(210)のエントロピー復号部分は、ローカルデコーダ(433)に完全には実装されなくてもよい。
【0045】
一実施形態では、デコーダ内に存在する解析/エントロピー復号を除くデコーダ技術は、対応するエンコーダ内に同一又は実質的に同一の機能形式で存在する。したがって、開示の主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略できる。特定の領域において、より詳細な説明が以下に提供される。
【0046】
動作中に、いくつかの例では、ソースコーダ(330)は、動き補償予測符号化を実行してもよく、当該動き補償予測符号化は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する。このように、符号化エンジン(332)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャの画素ブロックとの間の差を符号化する。
【0047】
ローカルビデオデコーダ(333)は、ソースコーダ(330)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータを復号してもよい。符号化エンジン(332)の動作は、有利には、不可逆処理でもよい。符号化ビデオデータがビデオデコーダ(図3に図示せず)で復号され得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカになり得る。ローカルビデオデコーダ(333)は、参照ピクチャに対してビデオデコーダによって実行され得る復号処理を複製し、再構成された参照ピクチャを参照ピクチャメモリ(334)に記憶させてもよい。このように、ビデオエンコーダ(303)は、遠端のビデオデコーダによって取得される(送信エラーのない)再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶してもよい。
【0048】
予測器(335)は、符号化エンジン(332)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなピクチャについて、予測器(335)は、(候補参照画素ブロックとしての)サンプルデータ又は特定のメタデータ(参照ピクチャ動きベクトル、ブロック形状等)を求めて参照ピクチャメモリ(334)を検索してもよい。これらは、新たなピクチャについての適切な予測参照として機能してもよい。予測器(335)は、適切な予測参照を検出するために、サンプルブロック毎画素ブロック毎(sample block-by-pixel block)に動作してもよい。場合によっては、予測器(335)によって取得された検索結果によって決定された入力ピクチャは、参照ピクチャメモリ(334)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0049】
コントローラ(350)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(330)の符号化動作を管理してもよい。
【0050】
全ての上記の機能ユニットの出力は、エントロピーコーダ(345)におけるエントロピー符号化を受けてもよい。エントロピーコーダ(345)は、ハフマン符号化、可変長符号化、算術符号化等のような技術に従って、シンボルに可逆圧縮を適用することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0051】
送信機(340)は、エントロピーコーダ(345)によって生成された符号化ビデオシーケンスをバッファして、通信チャネル(360)を介した送信の準備をしてもよく、当該通信チャネル(360)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。送信機(340)は、ビデオエンコーダ(330)からの符号化ビデオデータを、送信されるべき他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム(図示せず))とマージしてもよい。
【0052】
コントローラ(350)は、ビデオエンコーダ(303)の動作を管理してもよい。符号化中に、コントローラ(350)は、各符号化ピクチャに、特定の符号化ピクチャタイプを割り当ててもよい。当該符号化ピクチャタイプは、各ピクチャに適用され得る符号化技術に影響を与えてもよい。例えば、ピクチャは、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
【0053】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用することなく符号化及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR, Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0054】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。
【0055】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。同様に、複数予測ピクチャは、単一のブロックの再構成のために、2つよりも多くの参照ピクチャ及び関連するメタデータを使用できる。
【0056】
ソースピクチャは、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16サンプルのブロック)に空間的に細分され、ブロック毎にコーディングされてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して或いは時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して或いは時間予測を介して、予測的にコーディングされてもよい。
【0057】
ビデオエンコーダ(303)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は標準に従ってコーディング動作を実行してもよい。その動作において、ビデオエンコーダ(303)は、入力ビデオシーケンスにおける時間的冗長性及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行してもよい。したがって、コーディングビデオデータは、使用されているビデオコーディング技術又は標準によって指定されたシンタックスに準拠してもよい。
【0058】
一実施形態では、送信機(340)は、符号化ビデオと共に更なるデータを伝送してもよい。ソースコーダ(330(は、このようなデータをコーディングビデオシーケンスの一部として含めてもよい。更なるデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでもよい。
【0059】
ビデオは、時系列において複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャの間の(時間又は他の)相関を利用する。一例では、現在ピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックにパーティション分割される。現在ピクチャ内のブロックが、ビデオにおいて前にコーディングされており依然としてバッファされている参照ピクチャ内の参照ブロックに類似するとき、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングできる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
【0060】
いくつかの実施形態では、双予測技術が、インターピクチャ予測において使用できる。双予測技術によれば、ビデオにおける現在ピクチャよりも復号順序において共に前にある(ただし、表示順序においてそれぞれ過去及び未来にあってもよい)第1の参照ピクチャ及び第2の参照ピクチャのような、2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングできる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測できる。
【0061】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード(merge mode)技術が使用できる。
【0062】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU, coding tree unit)にパーティション分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのように同じサイズを有する。一般的に、CTUは、1つのルマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB, coding tree block)を含む。各CTUは、1つ以上のコーディングユニット(CU, coding unit)に再帰的に四分木分割できる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割できる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのようなCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU, prediction unit)に分割される。一般的に、各PUは、ルマ予測ブロック(PB, prediction block)及び2つのクロマPBを含む。一実施形態では、コーディング(符号化/復号)の予測動作は、予測ブロック単位で実行される。予測ブロックの一例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のようなピクセルの値(例えば、ルマ値)の行列を含む。
【0063】
ビデオエンコーダ(103)及び(303)並びにビデオデコーダ(110)及び(210)は、いずれかの適切な技術を使用して実装できる点に留意する。一実施形態では、ビデオエンコーダ(103)及び(303)並びにビデオデコーダ(110)及び(210)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(103)及び(303)並びにビデオデコーダ(110)及び(210)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0064】
本開示の態様は、サブブロックイントラ及びインターコーディングのための技術を提供する。
【0065】
VVCでは、様々なインター予測モードが使用できる。インター予測CUについて、動きパラメータは、MVと、1つ以上の参照ピクチャインデックスと、参照ピクチャリスト使用インデックスと、インター予測サンプル生成のために使用されるべき特定のコーディング特徴についての更なる情報とを含むことができる。動きパラメータは、明示的又は暗黙的に信号伝達できる。CUがスキップモードでコーディングされるとき、CUは、PUに関連付けられることができ、有意な残差係数、コーディングされた動きベクトル差分若しくはMV差(例えば、MVD)又は参照ピクチャインデックスを有することができない。マージモードが指定でき、現在CUのための動きパラメータは、空間候補及び/又は時間候補を含む隣接CUと、任意選択でVVCにおいて導入されるような更なる情報とから取得される。マージモードは、スキップモードだけでなく、インター予測CUにも適用できる。一例では、マージモードの代替は、動きパラメータの明示的伝送であり、MV、各参照ピクチャリストについての対応する参照ピクチャインデックス、及び参照ピクチャリスト使用フラグ、並びに他の情報が、CU毎に明示的に信号伝達される。
【0066】
VVCのような一実施形態では、VVCテストモデル(VTM, VVC Test model)リファレンスソフトウェアは、拡張マージ予測、マージ動きベクトル差(MMVD, merge motion vector difference)モード、対称MVD信号伝達を用いる適応動きベクトル予測(AMVP, adaptive motion vector)モード、アフィン動き補償予測、サブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)、適応動きベクトル解像度(AMVR, adaptive motion vector resolution)、動きフィールド(動き場)ストレージ(1/16ルマサンプルMVストレージ及び8×8動きフィールド圧縮)、CUレベル重みを用いた双予測(BCW, bi-prediction with CU-level weights)、双方向オプティカルフロー(BDOF, bi-directional optical flow)、オプティカルフローを使用した予測改良(PROF, prediction refinement using optical flow)、デコーダ側動きベクトル改良(DMVR, decoder side motion vector refinement)、複合インター及びイントラ予測(CIIP, combined inter and intra prediction)、幾何学的パーティション分割モード(GPM, geometric partitioning mode)等を含む1つ以上の改良インター予測コーディングツールを含む。インター予測及び関連する方法については、以下に詳細に説明する。
【0067】
いくつかの例において拡張マージ予測が使用できる。VTM4のような一例では、マージ候補リストは、以下の5つのタイプの候補、すなわち、空間隣接CUからの空間動きベクトル予測子(MVP, spatial motion vector predictor)、同一位置のCUからの時間MVP、先入れ先出し(FIFO, first-in-first-out)テーブルからの履歴ベースMVP(HMVP, history-based MVP)、ペアワイズ平均MVP及びゼロMVを順に含めることによって構成される。
【0068】
マージ候補リストのサイズは、スライスヘッダで信号伝達できる。一例では、マージ候補リストの最大許容サイズは、VTM4において6である。マージモードでコーディングされた各CUについて、最良マージ候補のインデックス(例えば、マージインデックス)は、短縮単項二値化(TU, truncated unary binarization)を使用して符号化できる。マージインデックスの最初のビンは、コンテキスト(例えば、コンテキスト適応型バイナリ算術コーディング(CABAC, context-adaptive binary arithmetic coding))を用いてコーディングでき、バイパスコーディングが他のビンのために使用できる。
【0069】
マージ候補の各カテゴリの生成プロセスのいくつかの例が以下において提供される。一実施形態では、空間候補は以下のように導出される。VVCにおける空間マージ候補の導出は、HEVCにおける導出と同一とすることができる。一例では、図4に示す位置にある候補のうち、最大で4つのマージ候補が選択される。
【0070】
図4は、本発明の一実施形態による空間マージ候補の位置を示す。図4を参照すると、導出の順序は、B1、A1、B0、A0及びB2である。位置B2は、位置A0、B0、B1及びA1のいずれのCUも利用可能でない(例えば、CUが別のスライス又は別のタイルに属するため)か、或いは、イントラコーディングされるときのみ考慮される。位置A1の候補が追加された後に、残りの候補の追加は、同じ動き情報を有する候補が候補リストから除外されることを確保する冗長性検査を受け、それにより、コーディング効率が改善される。
【0071】
計算の複雑さを低減するために、上述の冗長性検査において、全ての可能な候補ペアが考慮されるとは限らない。その代わりに、図5において矢印で結ばれたペアのみが考慮され、冗長性検査に使用される対応する候補が同じ動き情報を有さない場合のみ、候補が候補リストに追加される。
【0072】
図5は、本開示の実施形態による、空間マージ候補の冗長性検査のために考慮される候補ペアを示す。図5を参照すると、矢印で結ばれたペアは、A1とB1、A1とA0、A1とB2、B1とB0、及びB1とB2である。したがって、位置B1、A0及び/又はB2の候補が位置A1の候補と比較でき、位置B0及び/又はB2の候補が位置B1の候補と比較できる。
【0073】
一実施形態では、時間候補は以下のように導出される。一例では、1つのみの時間マージ候補が候補リストに追加される。図6は、時間マージ候補のための例示的な動きベクトルスケーリングを示す。現在ピクチャ(601)内の現在CU(611)の時間マージ候補を導出するために、(例えば、図6において点線によって示される)スケーリングされたMV(621)が、同一位置の参照ピクチャ(604)に属する同一位置のCU(612)に基づいて導出できる。同一位置のCU(612)を導出するために使用される参照ピクチャリストは、スライスヘッダ内で明示的に信号伝達できる。時間マージ候補のためのスケーリングされたMV(621)は、図6において点線によって示すように取得できる。スケーリングされたMV(621)は、ピクチャオーダーカウント(POC, picture order count)距離tb及びtdを使用して、同一位置のCU(612)のMVからスケーリングできる。POC距離tbは、現在ピクチャ(601)の現在参照ピクチャ(602)と現在ピクチャ(601)との間のPOC差であると定義できる。POC距離tdは、同一位置のピクチャ(603)の同一位置の参照ピクチャ(604)と同一位置のピクチャ(603)との間のPOC差であると定義できる。時間マージ候補の参照ピクチャインデックスは、ゼロに設定できる。
【0074】
図7は、現在CUの時間マージ候補のための例示的な候補位置(例えば、C0及びC1)を示す。時間マージ候補の位置は、候補位置C0及びC1から選択できる。候補位置C0は、現在CUの同一位置のCU(710)の右下角に位置する。候補位置C1は、現在CUの同一位置のCU(710)の中心に位置する。候補位置C0におけるCUが利用可能でないか、イントラコーディングされるか、或いは、CTUの現在の行の外側にある場合、候補位置C1は、時間マージ候補を導出するために使用される。そうでない場合、例えば、候補位置C0におけるCUが利用可能であり、インターコーディングされ、CTUの現在の行にある場合、候補位置C0は、時間マージ候補を導出するために使用される。
【0075】
一実施形態では、VVC等において、動きベクトル差を用いたマージ(MMVD, merge with motion vector difference)モードが使用され、暗黙的に導出された動き情報が、CU(例えば、現在CU)のサンプルを予測するために使用できる。MMVDモードは、動きベクトル表現法と共にスキップモード又はマージモードのいずれかに使用される。MMVDマージフラグは、例えば、スキップフラグ又はマージフラグを信号伝達した後に、MMVDモードがCUのために使用されるか否かを指定するために信号伝達できる。
【0076】
いくつかの例では、MMVDはマージ候補を再利用する。マージ候補の中から候補が選択され、動きベクトル表現法によって更に拡張できる。MMVDは、簡略化された信号伝達を用いた動きベクトル表現を提供する。いくつかの例では、動きベクトル表現法は、開始点と、動きの大きさと、動き方向とを含む。
【0077】
いくつかの例(例えば、VVC)では、MMVD技術は、開始点の候補を選択するためにマージ候補リストを使用できる。しかし、一例では、デフォルトマージタイプ(MRG_TYPE_DEFAULT_N)である候補のみがMMVDの拡張のために考慮される。
【0078】
いくつかの例では、ベース候補インデックスが、開始点を定義するために使用される。ベース候補インデックスは、表1に示すようなリスト内の候補の中で最良の候補を示す。例えば、リストは、動きベクトル予測子(MVP, motion vector predictor)を有するマージ候補リストである。ベース候補インデックスは、マージ候補リスト内の最良の候補を示すことができる。
【表1】
【0079】
一例では、ベース候補の数が1に等しい場合、ベース候補IDXは信号伝達されない点に留意する。
【0080】
MMVDモードでは、マージ候補(MVベース又はMV開始点とも呼ばれる)が選択された後に、マージ候補は、信号伝達されたMVD情報のような更なる情報によって改良できる。更なる情報は、動きの大きさを指定するために使用されるインデックス(距離インデックス、例えば、mmvd_distance_idx[x0][y0]等)と、動きの方向を示すために使用されるインデックス(方向インデックス、例えば、mmvd_direction_idx[x0][y0]等)とを含むことができる。MMVDモードでは、マージリスト内の最初の2つの候補のうちの1つがMVベースとして選択できる。例えば、マージ候補フラグ(例えば、mmvd_cand_flag[x0][y0])は、マージリスト内の最初の2つの候補のうちの1つを示す。マージ候補フラグは、最初の2つの候補のうちのどちらが選択されるかを示す(例えば、指定する)ために信号伝達できる。更なる情報は、MVベースに対するMVD(又は動きオフセット)を示すことができる。例えば、動きの大きさはMVDの大きさを示し、動きの方向はMVDの方向を示す。
【0081】
一例では、マージ候補リストから選択されたマージ候補は、参照ピクチャにおける開始点又はMV開始点を提供するために使用される。現在ブロックの動きベクトルは、開始点と、開始点に関する動きの大きさ及び動きの方向を含む動きオフセット(又はMVD)とで表現できる。エンコーダ側では、マージ候補の選択及び動きオフセットの決定は、図8に示すような探索プロセス(評価プロセス)に基づくことができる。デコーダ側では、選択されたマージ候補及び動きオフセットは、エンコーダ側からの信号伝達に基づいて決定できる。
【0082】
図8は、MMVDモードにおける探索プロセス(800)の例を示す。図9は、MMVDモードにおける探索点の例を示す。いくつかの例では、図9の探索点のサブセット又は全体のセットが、図9の探索プロセス(800)において使用される。例えば、エンコーダ側で探索プロセス(800)を実行することによって、マージ候補フラグ(例えば、mmvd_cand_flag[x0][y0])、距離インデックス(例えば、mmvd_distance_idx[x0][y0])及び方向インデックス(例えば、mmvd_direction_idx[x0][y0])を含む更なる情報が、現在ピクチャ(又は現在フレーム)内の現在ブロック(801)について決定できる。
【0083】
第1のマージ候補に属する第1の動きベクトル(811)及び第2の動きベクトル(821)が示されている。第1の動きベクトル(811)及び第2の動きベクトル(821)は、探索プロセス(800)において使用されるMV開始点である。第1のマージ候補は、現在ブロック(801)について構築されたマージ候補リスト上のマージ候補とすることができる。第1の動きベクトル(811)及び第2の動きベクトル(821)は、それぞれ、参照ピクチャリストL0及びL1内の2つの参照ピクチャ(802)及び(803)に関連付けられることができる。図8図9を参照すると、第1の動きベクトル(811)及び第2の動きベクトル(821)は、図9に示すように、それぞれ参照ピクチャ(802)及び(803)内の2つの開始点(911)及び(921)を指すことができる。
【0084】
図9を参照すると、図9の2つの開始点(911)及び(921)は、参照ピクチャ(802)及び(803)において決定できる。一例では、開始点(911)及び(921)に基づいて、参照ピクチャ(802)及び(803)内で開始点(911)及び(921)から垂直方向(+Y又は-Yによって表される)又は水平方向(+X及び-Xによって表される)に延びる複数の所定の点が評価できる。一例では、点(914)及び(924)(例えば、図8において1Sのシフトによって示される)のペア、又は点(915)及び(925)(例えば、図8において2Sのシフトによって示される)のペアのように、それぞれの開始点(911)又は(921)に関して互いをミラーリングする点のペアが、現在ブロック(801)のための動きベクトル予測子候補を形成し得る動きベクトルのペア(例えば、図8におけるMV(813)及び(823))を決定するために使用できる。開始点(911)又は(921)の周りの所定の点に基づいて決定された動きベクトル予測子候補(例えば、図8におけるMV(813)及び(823))が評価できる。
【0085】
距離インデックス(例えば、mmvd_distance_idx[x0][y0])は、動きの大きさの情報を指定し、マージ候補フラグによって示される開始点からの所定のオフセット(例えば、図8における1S又は2S)を示すことができる。一例では、所定のオフセットはMMVDステップとも呼ばれる点に留意する。
【0086】
図8を参照すると、オフセット(例えば、MVD(812)又はMVD(822))が、開始MV(例えば、MV(811)又は(821))の水平成分又は垂直成分に適用(例えば、加算)できる。距離インデックス(IDX)と所定のオフセットとの例示的な関係は、表2に指定されている。フルペルMMVDがオフであるとき、例えば、フルペルMMVDフラグ(例えば、slice_fpel_mmvd_enabled_flag)が0に等しいとき、MMVDの所定のオフセットの範囲は、1/4ルマサンプルから32ルマサンプルとすることができる。フルペルMMVDがオフであるとき、所定のオフセットは、ルマサンプルの分数(例えば、1/4ピクセル又は1/2ピクセル)のように、非整数値を有することができる。フルペルMMVDがオンであるとき、例えば、フルペルMMVDフラグ(例えば、slice_fpel_mmvd_enabled_flag)が1に等しいとき、MMVDの所定のオフセットの範囲は、1ルマサンプルから128ルマサンプルとすることができる。一例では、フルペルMMVDがオンであるとき、所定のオフセットは、1つ以上のルマサンプルのように、整数値のみを有する。
【表2】
【0087】
方向インデックスは、開始点に対するMVDの方向(又は動きの方向)を表すことができる。一例では、方向インデックスは、表3に示す4つの方向のうちの1つを表す。表3におけるMVD符号の意味は、開始MVの情報に従って変化し得る。一例では、開始MVが単予測MVであるか、或いは、開始MVが双予測MVであり、双方の参照リストが現在ピクチャの同じ側を指す(例えば、2つの参照ピクチャのPOCが共に現在ピクチャのPOCよりも大きいか、或いは、2つの参照ピクチャのPOCが共に現在ピクチャのPOCよりも小さい)とき、表3におけるMVD符号は、開始MVに加算されるMVオフセット(又はMVD)の符号を指定する。
【0088】
開始MVが双予測MVであり、2つのMVが現在ピクチャの異なる側を指す(例えば、一方の参照ピクチャのPOCが現在ピクチャのPOCよりも大きく、他方の参照ピクチャのPOCが現在ピクチャのPOCよりも小さい)とき、表3におけるMVD符号は、開始MVのリスト0のMV成分に加算されるMVオフセット(又はMVD)の符号を指定し、リスト1のMVのためのMVD符号は反対の値を有する。図8を参照すると、開始MV(811)及び(821)は双予測MVであり、2つのMV(811)及び(821)は現在ピクチャの異なる側を指す。L1参照ピクチャ(803)のPOCは、現在ピクチャのPOCよりも大きく、L0参照ピクチャ(802)のPOCは、現在ピクチャのPOCよりも小さい。表2における方向インデックス(例えば、00)によって示されるMVD符号(例えば、x軸の符号「+」)は、開始MV(例えば、(811))のリスト0のMV成分に追加されるMVD(例えば、MVD(812))の符号(例えば、x軸の符号「+」)を指定し、開始MV(例えば、(821))のリスト1のMV成分のためのMVD(822)のMVD符号は、MVD(812)の符号「+」とは反対の符号「-」のように、反対の値を有する。
【0089】
表3を参照すると、方向インデックス00はx軸の正の方向を示し、方向インデックス01はx軸の負の方向を示し、方向インデックス10はy軸の正の方向を示し、方向インデックス11はy軸の負の方向を示す。
【表3】
【0090】
シンタックスエレメントmmvd_merge_flag[x0][y0]は、現在CUのMMVDマージフラグを表すために使用できる。一例では、1に等しいMMVDマージフラグ(例えば、mmvd_merge_flag[x0][y0])は、MMVDモードが現在CUのインター予測パラメータを生成するために使用されることを指定する。0に等しいMMVDマージフラグ(例えば、mmvd_merge_flag[x0][y0])は、MMVDモードがインター予測パラメータを生成するために使用されないことを指定する。アレイインデックスx0及びy0は、ピクチャ(例えば、現在ピクチャ)の左上ルマサンプルに対する、検討されるコーディングブロック(例えば、現在CB)の左上ルマサンプルの位置(x0, y0)を指定できる。
【0091】
MMVDマージフラグ(例えば、mmvd_merge_flag[x0][y0])が現在CUについて存在しないとき、MMVDマージフラグ(例えば、mmvd_merge_flag[x0][y0])は、現在CUについて0に等しいと推定できる。
【0092】
いくつかの例では、MMVDフラグは、スキップフラグ及びマージフラグを送信した直後に信号伝達される。スキップ及びマージフラグが真である場合、MMVDフラグが解析される。MMVDフラグが1に等しい場合、MMVDシンタックスが解析される。しかし、MMVDフラグが1でない場合、いくつかの例ではAFFINEフラグが解析される。AFFINEフラグが1に等しい場合、AFFINEモードが復号に使用される。しかし、AFFINEフラグが1でない場合、いくつかの例では、スキップ/マージインデックスはVTMのスキップ/マージモードについて解析される。
【0093】
本開示の一態様によれば、テンプレートマッチングベースの候補並べ替えは、MMVD及びアフィンMMVDに対して実行できる。
【0094】
いくつかの例では、MMVDオフセットは、MMVDモード及びアフィンMMVDモードについてより多くの位置に拡張される。
【0095】
図10は、MMVDについて改良方向が追加できる方向を示す図を示す。図10では、k×π/8の対角に沿った更なる改良位置が追加され、kは整数である。位置(1001)は、ベース候補に対応し、開始点とすることができ、位置(1011~(1014)は、それぞれ、0、π/2、π及び3π/2の方向にある。更なる方向が追加される。例えば、位置(1021)~(1024)は、それぞれ、π/4、3π/4、5π/4及び7π/4の方向にあり、位置(1031)~(1038)は、それぞれ、π/8、3π/8、5π/8、7π/8、9π/8、11π/8、13π/8及び15π/8の方向にある。したがって、方向の数は4から16に増加する。さらに、一例では、各方向は6つのMMVD改良位置を有することができる。可能なMMVD改良位置の総数は16×6である。
【0096】
本開示の一態様によれば、現在テンプレート(例えば、現在ブロックの上の1行及び左の1列)と参照テンプレートとの間のSADコストが、各改良位置について計算できる。改良位置のSADコストに基づいて、各ベース候補についての全ての可能なMMVD改良位置(16×6)が並べ替えられる。次いで、最小テンプレートSADコストを有するもののような、上の1/8の改良位置(例えば、12)のような改良位置の上部分が、利用可能な位置として、結果としてのMMVDインデックスコーディングのために保持される。MMVDインデックスは、2に等しいパラメータを有するライスコード(rice code)によって2値化される。
【0097】
いくつかの例では、アフィンMMVDのための改良位置が増加でき、テンプレートマッチングベースの候補並べ替えがアフィンMMVD並べ替えに適用できる。例えば、アフィンMMVD改良位置は、0、π/4、π/2、3π/4、π、5π/4、3π/2及び7π/4の8つの方向のそれぞれのような、k×π/4の対角に沿った方向にある。各方向は、6つのアフィンMMVD改良位置を有することができる。可能なアフィンMMVD改良位置の総数は8×6である。一例では、現在テンプレート(例えば、現在ブロックの上の1行及び左の1列)と参照テンプレートとの間のSADコストが、各改良位置について計算できる。改良位置のSADコストに基づいて、各ベース候補についての全ての可能なアフィンMMVD改良位置(8×6)が並べ替えられる。次いで、最小テンプレートSADコストを有するもののような、上の1/2の改良位置(例えば、24)のような改良位置の上部分が、利用可能な位置として、結果としてのアフィンMMVDインデックスコーディングのために保持される。
【0098】
コーディング効率を改善し、MVの伝送オーバーヘッドを低減するために、サブブロックレベルのMV改良が、CUレベルの時間動きベクトル予測(TMVP, temporal motion vector prediction)を拡張するために適用できる。一例では、サブブロックベースのTMVP(SbTMVP, subblock-based TMVP)モードは、同一位置の参照ピクチャからサブブロックレベルで動き情報を継承することを可能にする。現在ピクチャ内の現在CU(例えば、大きいサイズを有する現在CU)の各サブブロックは、ブロッパーティション構造又はそれぞれの動き情報を明示的に伝送することなしに、それぞれの動き情報を有することができる。SbTMVPモードでは、各サブブロックの動き情報は、例えば、3つのステップで以下のように取得できる。第1のステップでは、現在CUの変位ベクトル(DV, displacement vector)が導出できる。第2のステップでは、SbTMVP候補の利用可能性が検査でき、中心動き(例えば、現在CUの中心動き)が導出できる。第3のステップでは、サブブロック動き情報は、DVを使用して同一位置のブロック内の対応するサブブロックから導出できる。3つのステップは、1つ又は2つのステップに組み合わされることができ、及び/又は、3つのステップの順序は調整されてもよい。
【0099】
参照フレーム又は参照ピクチャ内の同一位置のブロックから時間MVを導出するTMVP候補導出とは異なり、SbTMVPモードでは、DV(例えば、現在CUの左隣接CUのMVから導出されたDV)は、現在ピクチャ内にある現在CU内の各サブブロックについて同一位置のピクチャ内の対応するサブブロックを位置特定するために適用できる。対応するサブブロックがインターコーディングされない場合、現在サブブロックの動き情報は、同一位置のブロックの中心動きに設定できる。
【0100】
SbTMVPモードは、例えば、VVCを含む様々なビデオコーディング標準によってサポートできる。TMVPモードと同様に、例えば、HEVCにおいて、SbTMVPモードでは、同一位置のピクチャ内の動きフィールド(動き情報フィールド又はMVフィールドとも呼ばれる)は、現在ピクチャ内のCUについてMV予測及びマージモードを改善するために使用できる。一例では、TMVPモードによって使用される同じ同一位置のピクチャがSbTVMPモードにおいて使用される。一例では、SbTMVPモードは、以下の側面において、すなわち、(i)TMVPモードがCUレベルで動き情報を予測し、SbTMVPモードがサブCUレベルで動き情報を予測すること、(ii)TMVPモードが同一位置のピクチャ内の同一位置のブロックから時間MVを取り出し(例えば、同一位置のブロックは現在CUに対して右下又は中央ブロックである)、SbTMVPモードが同一位置のピクチャから時間動き情報を取り出す前に動きシフトを適用できることにおいて、TMVPモードとは異なる。一例では、SbTMVPモードで使用される動きシフトは、現在CUの空間隣接ブロックのうちの1つのMVから取得される。
【0101】
図11図12は、SbTMVPモードで使用される例示的なSbTMVPプロセスを示す。SbTMVPプロセスは、現在ピクチャ(1211)内の現在CU(例えば、現在ブロック)(1101)内のサブCU(例えば、サブブロック)のMVを、例えば、2つのステップで予測できる。第1のステップでは、図11図12において現在ブロック(1101)の空間隣接(例えば、A1)が検査される。空間隣接(例えば、A1)が、同一位置のピクチャ(1212)を空間隣接(例えば、A1)の参照ピクチャとして使用するMV(1221)を有する場合、MV(1221)は、現在ブロック(1101)に適用されるべき動きシフト(又はDV)であるように選択できる。このようなMV(例えば、同一位置のピクチャ(1212)を参照ピクチャとして使用するMV)が識別されない場合、動きシフト又はDVはゼロのMV(例えば、(0, 0))に設定できる。いくつかの例では、このようなMVが空間隣接A1について識別されない場合、A0、B0、B1等のような更なる空間隣接のMVが検査される。
【0102】
第2のステップにおいて、第1のステップにおいて識別された動きシフト又はDV(1221)が現在ブロック(1101)に適用されて(例えば、DV(1221)が現在ブロックの座標に追加されて)、同一位置のピクチャ(1212)からサブCUレベルの動き情報(例えば、MV及び参照インデックスを含む)を取得できる。図12に示す例では、動きシフト又はDV(1221)は、現在ブロック(1101)の空間隣接A1(例えば、ブロックA1)のMVになるように設定される。現在ブロック(1101)内の各サブCU又はサブブロック(1231)について、同一位置のピクチャ(1212)内の対応する同一位置のブロック(1201)の動き情報(例えば、同一位置のブロック(1201)の中心サンプルをカバーする最小動きグリッドの動き情報)が、サブCU又はサブブロック(1231)の動き情報を導出するために使用できる。同一位置のブロック(1201)内の同一位置のサブCU(1232)の動き情報が識別された後に、同一位置のサブCU(1232)の動き情報は、例えば、HEVCにおいて使用されるTMVPプロセスと同様の方法のようなスケーリング方法を使用して、現在サブCU(1231)の動き情報(例えば、MV及び1つ以上の参照インデックス)に変換でき、時間MVの参照ピクチャを現在CUの参照ピクチャに整合させるために時間動きスケーリングが適用される。
【0103】
DV(1221)に基づいて導出された現在ブロック(1101)の動きフィールドは、MV及び1つ以上の関連する参照インデックスのような、現在ブロック(1101)内の各サブブロック(1231)の動き情報を含むことができる。現在ブロック(1101)の動きフィールドはまた、SbTMVP候補とも呼ばれ、DV(1221)に対応する。
【0104】
図12は、現在ブロック1101の動きフィールド又はSbTMVP候補の一例を示す。双予測されるサブブロック(1231(1))の動き情報は、第1のMVと、参照ピクチャリスト0(L0)内の第1の参照ピクチャを示す第1のインデックスと、第2のMVと、参照ピクチャリスト1(L1)内の第2の参照ピクチャを示す第2のインデックスとを含む。一例では、単予測されるサブブロック(1231(2))の動き情報は、MVと、L0又はL1内の参照ピクチャを示すインデックスとを含む。
【0105】
一例では、DV(1221)は、同一位置のピクチャ(1212)内の変位した中心位置を位置特定するために、現在ブロック(1101)の中心位置に適用される。変位した中心位置を含むブロックがインターコーディングされない場合、SbTMVP候補は利用可能でないと考えられる。そうではなく、変位した中心位置を含むブロック(例えば、同一位置のブロック(1201))がインターコーディングされる場合、現在ブロック(1101)の中心動きと呼ばれる、現在ブロック(1101)の中心位置の動き情報は、同一位置のピクチャ(1212)内の変位した中心位置を含むブロックの動き情報から導出できる。一例では、スケーリングプロセスが、同一位置のピクチャ(1212)内の変位した中心位置を含むブロックの動き情報から現在ブロック(1101)の中心動きを導出するために使用できる。SbTMVP候補が利用可能であるとき、DV(1221)は、現在ブロック(1101)の各サブブロック(1232)について同一位置のピクチャ(1212)内の対応するサブブロック(1231)を見つけるために適用できる。対応するサブブロック(1232)の動き情報は、現在ブロック(1101)の中心動きを導出するために使用されるのと同じ方法等で、現在ブロック(1101)内のサブブロック(1231)の動き情報を導出するために使用できる。一例では、対応するサブブロック(1232)がインターコーディングされない場合、現在サブブロック(1231)の動き情報は、現在ブロック(1101)の中心動きになるように設定される。
【0106】
いくつかの例(例えば、VVC及びECM)では、SbTMVPモード、アフィンモード等のようなサブブロックベースの動きモード(サブブロックベースのインター予測モードとも呼ばれる)は、インター予測モードを用いたサブブロックベースの動きモードでコーディングブロック内の全てのサブブロックをコーディング(符号化/復号)する。本開示の一態様によれば、ビデオコンテンツの動的な特徴により、コーディングブロック内の全てのサブブロックが必ずしも一貫した動きモデルに従うとは限らず、特に異なるサブブロックが異なるオブジェクトに属するとき、いくつかのサブブロックはイントラ予測モードを用いてより良くコーディングされる可能性がある。
【0107】
本開示のいくつかの態様は、サブブロックベースの動きモードでコーディングされるコーディングブロック内の1つ以上のサブブロックがイントラ予測モードでコーディングされることを可能にする技術を提供する。
【0108】
本開示の一態様によれば、コーディングブロックがサブブロックベースのインター予測モード(例えば、SbTMVPモード、アフィンモード等)を用いてコーディングされるとき、コーディングブロック内のサブブロックのうちの1つ以上は、イントラ予測モードを用いてコーディングできる。
【0109】
図13は、本開示のいくつかの実施形態によるコーディングブロック(1300)の図を示す。コーディングブロック(1300)は、サブブロックベースのインター予測モードでコーディングされる。コーディングブロック(1300)は、図13に示すように16個のサブブロックのような複数のサブブロックを含む。16個のサブブロックのうち、13個のサブブロックは、例えば、図13の矢印で示す動きベクトルにそれぞれ基づいて、インター予測モードでコーディングされ、3個のサブブロック(1301)~(1303)は、イントラ予測モードでコーディングされる。
【0110】
サブブロックベースのインター予測モードは、アフィンモードアフィン、回帰ベースのインター予測モード、SbTMVPモード等のように、いずれかの適切なサブブロックベースのインター予測モードとすることができる点に留意する。いくつかの例では、回帰ベースのインター予測モードは、線形回帰に基づいて隣接サブブロックの動きベクトルを使用してコーディングブロック内のサブブロックのための動きベクトルを導出できる。
【0111】
いくつかの実施形態では、コーディングブロック内のサブブロックがイントラ予測モードによってコーディングされるか否かを決定するために、コーディングブロック内の少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるか否かを示すための第1のフラグが信号伝達されてもよく、或いは、暗黙的に導出されてもよい。例えば、第1のフラグが0であるとき、コーディングブロック内のサブブロックの全てがインター予測モードでコーディングされ、第1のフラグが1であるとき、コーディングブロック内の少なくとも1つのサブブロックがイントラ予測モードでコーディングされる。
【0112】
一実施形態では、関連するサブブロックがイントラ予測モードによってコーディングされるか否かを示すための第2のフラグが各サブブロックについて信号伝達される。
【0113】
第1のフラグは、いくつかの例では信号伝達なしに暗黙的に導出できる点に留意する。一例では、コーディングブロックがSbTMVPモードでコーディングされ、対応する同一位置のブロックが有効な動きベクトルを有さないサブブロックが存在するとき、第1のフラグは暗黙的に1に設定される。別の例では、コーディングブロックがSbTMVPモードでコーディングされ、コーディングブロック内の全てのサブブロックの対応する同一位置のブロックが有効な動きベクトルを有するとき、第1のフラグは暗黙的に0として設定される。
【0114】
一実施形態では、第2のフラグは、各サブブロックについて条件付きで信号伝達される。例えば、サブブロックが参照ピクチャの動きベクトルフィールド内に関連する動きベクトルを有さないとき、サブブロックがイントラ予測モードによってコーディングされるか否かを示すために第2のフラグが信号伝達される。
【0115】
本発明の一態様によれば、コーディングブロックがサブブロックベースのインター予測モードでコーディングされ、コーディングブロック内の少なくとも1つのサブブロックがイントラ予測モードでコーディングされるとき、インター予測モードでコーディングされたサブブロックが最初に再構成され、次いで、イントラ予測モードでコーディングされた残りのサブブロックが、特定のコーディング順序に従って再構成される。
【0116】
いくつかの例では、特定のコーディング順序は、インター予測モードによってコーディングされるブロックの位置によって決定される。
【0117】
いくつかの例では、現在サブブロックについて、現在サブブロックの前に再構成された隣接イントラコーディングサブブロックは、全ての隣接インターコーディングサブブロックと共に、イントラコーディングされる現在サブブロックのための参照サンプルとして使用できる。
【0118】
図14は、本開示のいくつかの実施形態によるコーディングブロック(1400)の図を示す。コーディングブロック(1400)は、サブブロックベースのインター予測モードでコーディングされ、イントラコーディングされるサブブロック(1401)を含む。サブブロック(1401)は、(灰色のサブブロックによって示すように)インターコーディングされる他のサブブロックによって囲まれる。灰色のサブブロックの再構成は、イントラコーディングサブブロックであるサブブロック(1401)の予測に使用できる。
【0119】
いくつかの例では、コーディングブロックに関連するat_least_one_intra_flag(いくつかの例では第1のフラグとも呼ばれる)が、コーディングブロック内の少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるか否かを示すために信号伝達される。at_least_one_intra_flagが偽であるとき、イントラ予測においてコーディングされるコーディングブロック内のサブブロックは存在せず、変換ユニット(TU, transform unit)サイズはコーディングユニット(CU, coding unit)サイズ(コーディングブロックサイズ)に等しい。そうでない場合(at_least_one_intra_flagが真である場合)、TUサイズはサブブロックサイズと同一である。次いで、インター予測モードによってコーディングされる(コーディングブロック内の)第1の1つ以上のサブブロックが、最初にラスタ走査順序で再構成され、次いで、イントラ予測モードによってコーディングされる(コーディングブロック内の)第2の1つ以上のサブブロックが、ラスタ走査順序で再構成される。
【0120】
本開示の一態様によれば、少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるとき、インター予測モードによってコーディングされた全てのサブブロックの残差サンプルがまとめられ、その上に変換が適用され、イントラコーディングされるサブブロック位置について、順方向変換及び逆方向変換を適用するためにいくつかの残差が埋められる。一例では、変換ユニットを形成するためにイントラコーディングされるサブブロックの位置において残差として埋めるために、いずれかの適切な値が使用できる。
【0121】
本開示の一態様によれば、少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるとき、イントラコーディング、予測、変換及び残差コーディングされる各サブブロックはサブブロックレベルで行われる。
【0122】
本開示の一態様によれば、サブブロックがイントラ予測モードによってコーディングされるとき、利用可能なイントラ予測モードは、最確モード(MPM, most probable mode)、又は選択された平滑(smooth)モード若しくは非方向性モードのような、限られたセットから選択されてもよい。平滑モード、平滑垂直モード及び平滑水平モードのような平滑モードは、線形補間を使用して、フィルタリングされたサンプルによって構成される非常に平滑な表面を生成できる。
【0123】
本開示の一態様によれば、サブブロックがイントラ予測モードによってコーディングされるとき、サブブロック予測のために使用されるイントラ予測モードは、上の行及び左の列に加えて、より多くの利用可能な参照サンプルを使用するように拡張できる。いくつかの例では、利用可能な参照サンプルの1つ以上の右の列が、サブブロックのためのイントラ予測において使用できる。いくつかの例では、利用可能な参照サンプルの1つ以上の下の行が、サブブロックのためのイントラ予測において使用できる。いくつかの例では、サブブロックに隣接する角のサンプルが、サブブロックのイントラ予測において使用できる。いくつかの例では、参照サンプルの複数の行及び/又は複数の列が使用されてもよい。
【0124】
図15は、本開示のいくつかの実施形態によるサブブロック(1501)のためにイントラ予測を使用する図を示す。サブブロック(1501)は、コーディングブロック(図示せず)内のサブブロックのうちの1つであり、コーディングブロックは、サブブロックベースのインター予測モードでコーディングされ、サブブロック(1501)は、イントラ予測モードでコーディングされる。
【0125】
いくつかの例では、サブブロック(1501)のサブブロック予測のために使用されるイントラ予測モードは、上の行(例えば、上の行(1510)の中のすぐ上の行)及び左の列(例えば、左の列(1530)の中のすぐ左の列)に加えて、より多くの利用可能な参照サンプルを使用するように拡張できる。一例では、利用可能な参照サンプルの複数の上の行(1510)が、サブブロック(1501)のイントラ予測において使用できる。別の例では、利用可能な参照サンプルの複数の上の行(1510)が、サブブロック(1501)のイントラ予測において使用できる。別の例では、利用可能な参照サンプルの右の列(1540)の中の1つ以上の右の列が、サブブロック(1501)のためにイントラ予測において使用できる。別の例では、利用可能な参照サンプルの下の行(1520)の中の1つ以上の下の行が、サブブロック(1501)のイントラ予測において使用できる。別の例では、角(1551)~(1554)の中の1つ以上の利用可能な角の参照サンプルのように、サブブロック(1501)に隣接する角のサンプルが、サブブロック(1501)のイントラ予測において使用でき得る。
【0126】
図16は、本開示のいくつかの実施形態による、サブブロック(1601)のためにイントラ予測を使用する図を示す。サブブロック(1601)は、コーディングブロック(図示せず)内のサブブロックのうちの1つであり、コーディングブロックは、サブブロックベースのインター予測モードでコーディングされ、サブブロック(1601)は、イントラ予測モードでコーディングされる。
【0127】
図16に示す例と同様に、サブブロック(1601)のサブブロック予測に使用されるイントラ予測モードは、上の行(例えば、上の行(1610)の中のすぐ上の行)及び左の列(例えば、左の列(1630)の中のすぐ左の列)に加えて、より多くの利用可能な参照サンプルを使用するように拡張できる。いくつかの例では、利用可能な参照サンプルの右下の列(1680)の中の1つ以上の列が、サブブロック(1601)のイントラ予測において使用できる。いくつかの例では、利用可能な参照サンプルの右上の行(1660)の中の1つ以上の行が、サブブロック(1601)のイントラ予測において使用できる。
【0128】
いくつかの例では、サブブロックベースのインター予測モードのコーディングブロック内のサブブロックがイントラ予測モードによってコーディングされるとき、サブブロックのルマ成分及びクロマ成分は、共にイントラ予測モードによってコーディングされる。
【0129】
いくつかの例では、サブブロックベースのインター予測モードのコーディングブロック内の少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるとき、インター予測モードでコーディングされる他のサブブロックは、計算の複雑さを低減するためにインター予測に対する制約を有してもよい。一例では、計算の複雑さを低減するために、インター予測は単予測に限定される。
【0130】
本開示の一態様によれば、イントラ予測モードでコーディングされたサブブロックのための(例えば、イントラ予測モードを予測するための)1つ以上の予測子は、VVC及びECMリファレンスソフトウェアにおけるイントラ予測プロセスのように、現在コーディングユニット(CU, coding unit)の隣接ピクセルから決定される。サポートされるイントラ予測モードは、最確モード(MPM, most probable mode)、デコーダ側イントラモード導出(DIMD, decoder-side intra mode derivation)、テンプレートベースイントラモード導出(TIMD, template based intra mode derivation)、方向性イントラ予測モード等を含むが、これらに限定されない。いくつかの例では、イントラ予測モードでコーディングされたサブブロック(例えば、第1のサブブロック)の予測子は、サブブロックレベルのデータ依存性なしに、インター予測モードでコーディングされた第2のサブブロックと並列に復号できる。第2のサブブロックの復号は第1のサブブロックに依存せず、第1のサブブロックの予測子の復号は第2のサブブロックに依存しない。
【0131】
図17は、本開示の一実施形態によるプロセス(1700)を概説するフローチャートを示す。プロセス(1700)は、ビデオエンコーダにおいて使用できる。様々な実施形態では、プロセス(1700)は、ビデオエンコーダ(103)の機能を実行する処理回路、ビデオエンコーダ(303)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1700)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1700)を実行する。プロセスは(S1701)で始まり、(S1710)に進む。
【0132】
(S1710)において、サブブロックベースのインター予測モードでコーディングするために、ピクチャ内の現在コーディングユニット(CU, coding unit)が決定される。
【0133】
(S1720)において、イントラ予測によるコーディングのために、現在CU内の1つ以上の第1のサブブロックが決定される。
【0134】
(S1730)において、現在CUがビットストリームに符号化され、現在CUの1つ以上の第2のサブブロックがインター予測によって符号化され、現在CUの1つ以上の第1のサブブロックがイントラ予測によって符号化される。
【0135】
いくつかの例では、サブブロックベースのインター予測モードは、サブブロックレベルでCUを符号化するいずれかの適切なインター予測モードとすることができる。一例では、サブブロックベースのインター予測モードはアフィンモードである。別の例では、サブブロックベースのインター予測モードは、回帰ベースのインター予測モードである。別の例では、サブブロックベースのインター予測モードは、サブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)モードである。
【0136】
いくつかの例では、第1のフラグがビットストリームに符号化され、第1のフラグは、現在CU内の少なくとも1つのサブブロックがイントラ予測モードによってコーディングされることを示す。さらに、第2のフラグがビットストリームに符号化され、第2のフラグは、現在CU内のサブブロックにそれぞれ関連する。現在CU内のサブブロックに関連する第2のフラグは、サブブロックがイントラ予測によってコーディングされるか否かを示す。
【0137】
いくつかの例では、第1のフラグはビットストリームに符号化されない。一例では、第1のフラグは、現在CUがサブブロックベースの時間動きベクトル予測(SbTMVP)モードでコーディングされるとき、現在CU内のサブブロックについての同一位置のブロックが有効な動きベクトルを有さないという決定に応じて、真値と導出される。別の例では、第1のフラグは、現在CUがSbTMVPモードでコーディングされるとき、現在CU内の各サブブロックが有効な動きベクトルを有するという決定に応じて、偽値と導出される。
【0138】
いくつかの例では、現在CUの1つ以上の第2のサブブロックは、現在CUの1つ以上の第1のサブブロックの前に再構成され、現在ブロックの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックの位置に基づいて決定される特定の順序に従って再構成される。一例では、現在CUの1つ以上の第2のサブブロックは、ラスタ走査順序に従って再構成され、現在CUの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックが再構成された後にラスタ走査順序に従って再構成される。いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックについて、第1のサブブロックは、現在CU内の隣接インターコーディングサブブロック及び隣接イントラコーディングサブブロックに従って再構成される。
【0139】
いくつかの例では、現在CUの変換ユニットサイズは、第1のフラグが真であることに応じてサブブロックのサイズであると決定され、第1のフラグは、現在CU内の少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるか否かを示す。別の例では、変換ユニットサイズは、第1のフラグが偽であることに応じて、現在CUのサイズであると決定される。
【0140】
いくつかの例では、現在CU内のサブブロックがイントラ予測によってコーディングされるとき、インター予測モードによってコーディングされた全てのサブブロック(例えば、第2の1つ以上のサブブロック)の残差サンプルと、第1の1つ以上のサブブロックのパディングされた残差サンプルとがまとめられ、その上に変換が適用される。イントラコーディングされる第1の1つ以上のサブブロックについて、いずれかの適切な残差値が変換を適用するためのパディングに使用できる。
【0141】
いくつかの例では、少なくとも1つのサブブロックがイントラ予測モードによってコーディングされるとき、イントラコーディング、予測、変換及び残差コーディングされる各サブブロックは、サブブロックレベルで行われる。
【0142】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、選択された平滑モードのセット又は非方向性モードのセットとして、最確モード(most portable mode)のセットのうちの少なくとも1つから選択されたイントラ予測モードに基づいて再構成される。
【0143】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、1つ以上の右の列、1つ以上の下の行、1つ以上の角のサンプル、1つ以上の右上の行又は1つ以上の左下の列のうちの少なくとも1つに従って再構成される。
【0144】
一例では、イントラ予測による1つ以上の第1のサブブロック内のイントラコーディングサブブロックについて、イントラコーディングサブブロックのルマ成分及び少なくとも1つのクロマ成分の双方がイントラ予測によって符号化される。
【0145】
いくつかの例では、現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされることに応じて、1つ以上の第2のサブブロックを再構成するためのインター予測に制約が適用される。一例では、単予測がインター予測に使用され、双予測は使用できない。
【0146】
いくつかの例では、イントラ予測のためのイントラ予測モードの予測子が現在CUの隣接ピクセルから決定される。イントラ予測モードは、最確モード(MPM, most probable mode)、デコーダ側イントラモード導出(DIMD, decode-side intra mode derivation)モード、テンプレートベースイントラモード導出(TIMD, template based intra mode derivation)モード又は方向性イントラ予測モードのうちの1つとすることができる。
【0147】
次いで、プロセスは(S1799)に進み、終了する。
【0148】
プロセス(1700)は適切に適合できる。プロセス(1700)におけるステップは、修正及び/又は省略できる。更なるステップが追加できる。いずれかの適切な実施順序が使用できる。
【0149】
図18は、本開示の一実施形態によるプロセス(1800)を概説するフローチャートを示す。プロセス(1800)は、ビデオデコーダにおいて使用できる。様々な実施形態では、プロセス(1800)は、ビデオデコーダ(110)の機能を実行する処理回路、ビデオデコーダ(210)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1800)を実行する。プロセスは(S1801)で始まり、(S1810)に進む。
【0150】
(S1810)において、少なくともピクチャを搬送するビットストリームが受信される。
【0151】
(S1820)において、ピクチャ内の現在コーディングユニット(CU, coding unit)が、サブブロックベースのインター予測モードでコーディングされると決定される。
【0152】
(S1830)において、現在CU内の1つ以上の第1のサブブロックが、イントラ予測によってコーディングされると決定される。
【0153】
(S1840)において、現在CUの1つ以上の第2のサブブロックが、インター予測に基づいて再構成される。
【0154】
(S1850)において、現在CUの1つ以上の第1のサブブロックが、イントラ予測に基づいて再構成される。
【0155】
いくつかの例では、サブブロックベースのインター予測モードは、アフィンモード、回帰ベースのインター予測モード、又はサブブロックベースの時間動きベクトル予測(SbTMVP, subblock-based temporal motion vector prediction)モードのうちの少なくとも1つを含む。
【0156】
いくつかの例では、現在CU内の少なくとも1つのサブブロックがイントラ予測によってコーディングされるか否かを示す第1のフラグが決定され、次いで、現在CU内のサブブロックにそれぞれ関連する第2のフラグがビットストリームから復号され、現在CU内のサブブロックに関連する第2のフラグは、サブブロックがイントラ予測によってコーディングされるか否かを示す。一例では、第1のフラグはビットストリームから復号される。
【0157】
いくつかの例では、第1のフラグは信号伝達(シグナリング)なしに導出される。一例では、第1のフラグは、現在CUがサブブロックベースの時間動きベクトル予測(SbTMVP)モードでコーディングされるとき、現在CU内のサブブロックについての同一位置のブロックが有効な動きベクトルを有さないという決定に応じて、真値と導出される。別の例では、第1のフラグは、現在CUがSbTMVPモードでコーディングされるとき、現在CU内の各サブブロックが有効な動きベクトルを有するという決定に応じて、偽値と導出される。
【0158】
いくつかの例では、現在CUの1つ以上の第2のサブブロックは、現在CUの1つ以上の第1のサブブロックの前に再構成され、現在CUの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックの位置に基づいて決定される特定の順序に従って再構成される。
【0159】
一例では、現在CUの1つ以上の第2のサブブロックは、ラスタ走査順序に従って再構成され、現在CUの1つ以上の第1のサブブロックは、1つ以上の第2のサブブロックが再構成された後にラスタ走査順序に従って再構成される。
【0160】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックについて、第1のサブブロックは、現在CU内の隣接インターコーディングサブブロック及び隣接イントラコーディングサブブロックに従って予測される。
【0161】
一例では、変換ユニットサイズは、第1のフラグが真であることに応じてサブブロックのサイズであると決定され、第1のフラグは、現在CU内の少なくとも1つのサブブロックがイントラ予測によってコーディングされるか否かを示す。別の例では、変換ユニットサイズは、第1のフラグが偽であることに応じて、現在CUのサイズであると決定される。
【0162】
いくつかの例では、現在CUのサイズの変換ユニットを取得するために逆変換が実行され、1つ以上の第2のサブブロックに対応する残差値が、変換ユニットに従って決定される。次いで、インター予測に基づいて予測された1つ以上の第2のサブブロック及び残差値が、1つ以上の第2のサブブロックの再構成のために組み合わされる。
【0163】
いくつかの例では、現在CU内のサブブロックのサイズの1つ以上の変換ユニットを取得するために逆変換が取得され、1つ以上の変換ユニットは、それぞれ1つ以上の第1のサブブロックに対応する。1つ以上の変換ユニットに従って、1つ以上の第1のサブブロックに対応する残差値が決定される。次いで、イントラ予測に基づいて予測された1つ以上の第1のサブブロック及び残差値が、1つ以上の第1のサブブロックの再構成のために組み合わされる。
【0164】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、選択された平滑モードのセット又は非方向性モードのセットとして、最確モード(most portable mode)のセットのうちの少なくとも1つから選択されたイントラ予測モードに基づいて再構成される。
【0165】
いくつかの例では、1つ以上の第1のサブブロック内の第1のサブブロックは、1つ以上の右の列、1つ以上の下の行、1つ以上の角のサンプル、1つ以上の右上の行又は1つ以上の左下の列のうちの少なくとも1つに従って再構成される。
【0166】
いくつかの例では、1つ以上の第1のサブブロック内の各サブブロックについて、サブブロックのルマ成分及びクロマ成分が共にイントラ予測によって再構成される。
【0167】
いくつかの例では、現在CU内の1つ以上の第1のサブブロックがイントラ予測によってコーディングされることに応じて、1つ以上の第2のサブブロックを再構成するための制約と共に、インター予測が決定される。一例では、単予測がインター予測に使用される。
【0168】
いくつかの例では、イントラ予測モードの予測子が現在CUの隣接ピクセルから決定され、イントラ予測モードは、最確モード(MPM, most probable mode)、デコーダ側イントラモード導出(DIMD, decode-side intra mode derivation)モード、テンプレートベースイントラモード導出(TIMD, template based intra mode derivation)モード又は方向性イントラ予測モードのうちの少なくとも1つを含む。
【0169】
次いで、プロセスは(S1899)に進み、終了する。
【0170】
プロセス(1800)は適切に適合できる。プロセス(1800)におけるステップは、修正及び/又は省略できる。更なるステップが追加できる。いずれかの適切な実施順序が使用できる。
【0171】
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶できる。例えば図19は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
【0172】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンキング又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ、1つ以上のコンピュータ中央処理装置(CPU, central processing unit)、グラフィクス処理ユニット(GPU, Graphics Processing Unit)等によって直接的に或いは解釈、マイクロコード実行等を通じて実行できる命令を含む、コードを作成することができる。
【0173】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素において実行できる。
【0174】
コンピュータシステム(1900)について図19に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関して、如何なる制限も示唆するように意図されていない。また、構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示される構成要素の任意の1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0175】
コンピュータシステム(1900)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェース入力デバイスは、オーディオ(音声、音楽、環境音等)、画像(スキャンされた画像、静止画像カメラから得られる写真画像等)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関係しているとは限らない、特定の媒体をキャプチャするためにも使用できる。
【0176】
ヒューマンインタフェース入力デバイスは、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチ画面(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロホン(1906)、スキャナ(1907)及びカメラ(1908)(それぞれの1つのみが図示される)のうちの1つ以上を含んでもよい。
【0177】
コンピュータシステム(1900)はまた、特定のヒューマンインタフェース出力デバイスも含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音響、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチ画面(1910)、データグローブ(図示せず)又はジョイスティック(1905)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカー(1909)、ヘッドフォン(図示せず)等)、視覚出力デバイス(各々タッチ画面入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にもかかわらないが、その一部は、立体画像出力や仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を通じて、2次元視覚出力又は3次元超の出力を出力することができる、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1910)等)及びプリンタ(図示せず)を含んでよい。
【0178】
コンピュータシステム(1900)はまた、CD/DVDを有するCD/DVD ROM/RW(1920)を含む光媒体又は類似の媒体(1921)、サムドライブ(1922)、取り外し可能ハードドライブ又はソリッドステートドライブ(193)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、ヒューマンアクセス可能なストレージデバイス及びそれらの関連する媒体も含むことができる。
【0179】
当業者はまた、現在開示されている主題に関連して使用されるとき、「コンピュータ可読媒体」という用語が、伝送媒体、搬送波又は他の一時的信号を包含しないことを理解すべきである。
【0180】
コンピュータシステム(1900)はまた、1つ以上の通信ネットワーク(1955)へのインタフェース(1954)も含むことができる。ネットワークは、例えば無線、有線、光とすることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN等のローカルエリアネットワーク、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANBus等を含む車両及び産業用ネットワークを含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1949)に取り付けられ外部ネットワークインタフェースアダプタ(例えばコンピュータシステム(1900)のUSBポート等)を必要とし、他のものは、一般的に、後述するシステムバスへの取り付けによって(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)、コンピュータシステム(1900)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は、他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対する、単方向の受信専用(例えば放送TV)、単方向の送信専用(例えば特定のCANbusから特定のCANbusデバイスへ)又は双方向とすることができる。上記のように、特定のプロトコル及びプロトコルスタックが、これらのネットワーク及びネットワークインタフェースのそれぞれにおいて使用ができる。
【0181】
上記のヒューマンインタフェースデバイス、ヒューマンアクセス可能なストレージデバイス及びネットワークインタフェースは、コンピュータシステム(1900)のコア(1940)に取り付けられることができる。
【0182】
コア(1940)は、1つ以上の中央処理装置(CPU)(1941)、グラフィクス処理ユニット(GPU)(1942)、フィールドプログラマブルゲートアレイ(FPGA)(1943)の形式の専用のプログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィクスアダプタ(1950)等を含むことができる。これらのデバイスは、読取専用メモリ(ROM)(1945)、ランダムアクセスメモリ(RAM)(1946)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量ストレージ(1947)とともに、システムバス(1948)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形式でアクセス可能である。周辺デバイスは、コアのシステムバス(1948)に直接に或いは周辺バス(1949)を通じて取り付けられることができる。一例では、画面(1910)がグラフィクスアダプタ(1950)に接続できる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0183】
CPU(1941)、GPU(1942)、FPGA(1943)及びアクセラレータ(1944)は、組み合わされて上記のコンピュータコードを構成することができる、特定の命令を実行できる。そのコンピュータコードは、ROM(1945)又はRAM(1946)に記憶できる。また、一時的なデータはRAM(1946)に記憶でき、一方、永久的なデータは、例えば内部大容量ストレージ(1947)に記憶できる。1つ以上のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)等と密接に関連付けることができるキャッシュメモリの使用を通じて、メモリデバイスのいずれかに対する高速記憶及び取り出しを可能にできる。
【0184】
コンピュータ可読媒体は、様々なコンピュータ実装される動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、或いは、これらは、コンピュータソフトウェア技術の当業者に周知且つ利用可能な種類のものとすることができる。
【0185】
限定ではなく例として、アーキテクチャ(1900)及び特にコア(1940)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果としての機能を提供することができる。このようなコンピュータ可読媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(1947)又はROM(1945)のような非一時的な性質のコア(1940)の特定のストレージに関連付けられる媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(1940)によって実行できる。コンピュータ可読媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1940)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1946)に記憶されるデータ構造を定義することと、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することとを含む、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。さらに或いは代替として、コンピュータシステムは、論理ハードワイヤ又は他の方法で回路(例えばアクセラレータ(1944))内に具現化された結果として機能を提供することができ、この回路は、ソフトウェアの代わりに或いはソフトウェアとともに動作して、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)等)、実行のためのロジックを具体化する回路又は適切な場合にはその双方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0186】
本開示は、いくつかの例示的な実施形態について説明しているが、本開示の範囲内にある変更、置換及び様々な代替均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか或いは説明されていないが、本開示の原理を具体化しており、よって、本開示の精神及び範囲内にある、様々システム及び方法を考案することができることが理解される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【国際調査報告】