(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-09-25
(54)【発明の名称】ビデオデコーディング方法、ビデオデコーディング装置およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/513 20140101AFI20250917BHJP
H04N 19/186 20140101ALI20250917BHJP
H04N 19/593 20140101ALI20250917BHJP
【FI】
H04N19/513
H04N19/186
H04N19/593
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2025514864
(86)(22)【出願日】2023-10-04
(85)【翻訳文提出日】2025-03-11
(86)【国際出願番号】 US2023075928
(87)【国際公開番号】W WO2024137016
(87)【国際公開日】2024-06-27
(32)【優先日】2022-12-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-10-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
【氏名又は名称原語表記】TENCENT AMERICA LLC
【住所又は居所原語表記】2747 Park Boulevard Palo Alto, California 94306, USA
(74)【代理人】
【識別番号】100112656
【氏名又は名称】宮田 英毅
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】シュ,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK14
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN21
5C159PP16
5C159RC12
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示の態様は、ビデオコーディングのための方法及び装置を含む。装置の1つは、ピクチャ内の現在の領域のビットストリームを受信する処理回路を含む。現在の領域は輝度コーディング領域と彩度コーディング領域を含む。輝度コーディング領域と彩度コーディング領域とが別々のコーディングツリー構造を用いて分割される。処理回路は、彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)を決定する。彩度BVはピクチャ内の彩度参照ブロックを示す。処理回路は、彩度参照ブロックのコロケーションされた輝度サンプルが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断する。彩度BVが有効である場合は、処理回路は、彩度参照ブロックに基づいて、現在の彩度ブロックを再構成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
デコーダでのビデオデコーディング方法であって、
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信することと、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定することと、
前記彩度参照ブロックのコロケーションされた輝度サンプルが、前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断することと、
前記彩度BVが有効であるとの判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成すること、を含む方法。
【請求項2】
前記現在の彩度ブロックは、(i)イントラブロックコピー(IBC)モード、(ii)イントラテンプレートマッチング予測(IntraTMP)モード、及び、(iii)ダイレクトブロックベクトル(DBV)モード、のうちの1つで予測される、請求項1に記載の方法。
【請求項3】
前記現在の彩度ブロックが前記IBCモードで予測されることに応じて、前記彩度BVが有効であるか判断することは、
(i)前記彩度参照ブロックの前記コロケーションされた輝度サンプルが、前記現在の彩度ブロックの前記コロケーションされた輝度サンプルを含む前記輝度領域の許可されたIBC参照範囲にあること、及び、(ii)前記彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、前記彩度BVが有効であると判断することを含み、前記許可された範囲は前記許可されたIBC参照範囲である、請求項2に記載の方法。
【請求項4】
前記彩度BVが有効ではないとの判断に応じて、
前記彩度BVを補正して、有効な彩度BVを得ることと、
前記有効な彩度BVが示す別の彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成することと、をさらに含み、
(i)前記別の彩度参照ブロックのコロケーションされた輝度サンプルが、前記輝度領域の前記許可されたIBC参照範囲にあり、及び、(ii)前記別の彩度参照ブロック内の彩度サンプルが既に再構成されている、
請求項3に記載の方法。
【請求項5】
前記現在の彩度ブロックが前記IBCモードで予測されることに応じて、前記彩度BVを決定することは、
前記コーディング情報から前記彩度BVを明示的にデコードすること、を含む、請求項2に記載の方法。
【請求項6】
前記現在の彩度ブロックが前記IntraTMPモード又は前記DBVモードで予測されることに応じて、前記彩度BVが有効であるか判断することは、
(i)前記彩度参照ブロックの前記コロケーションされた輝度サンプルが、前記現在の彩度ブロックの前記コロケーションされた輝度サンプルを含む前記輝度領域の前記許可された範囲にあること、及び、(ii)前記彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、前記彩度BVが有効であると判断することを含む、請求項2に記載の方法。
【請求項7】
前記現在の彩度ブロックが前記IntraTMPモード又は前記DBVモードで予測されることに応じて、前記彩度BVを決定することは、
前記IntraTMPモード又は前記DBVモードをそれぞれ用いて前記彩度BVを導出することを含む、請求項2に記載の方法。
【請求項8】
前記現在の領域は、現在のコーディングツリーユニット(CTU)であり、
前記輝度コーディング領域は、前記現在のCTU内の輝度コーディングツリーブロック(CTB)であり、
前記彩度コーディング領域は、前記現在のCTU内の彩度CTBである、請求項1に記載の方法。
【請求項9】
前記ピクチャ内の現在のコーディングツリーユニット(CTU)は四分木分割を用いて4つのコーディングユニットに分割され、
前記現在の領域は前記4つのコーディングユニットのうちのコーディングユニットである、請求項1に記載の方法。
【請求項10】
前記許可された範囲は、現在のコーディングツリーユニット(CTU)又は1つ以上の過去に再構成されたCTU内の再構成された輝度サンプルのうちの少なくとも1つを含み、前記現在のCTUは前記現在の領域を含む、請求項2に記載の方法。
【請求項11】
前記ビットストリーム内の前記コーディング情報は、前記輝度コーディング領域と前記彩度コーディング領域とが前記別々のコーディングツリー構造を用いて分割されることを示すフラグを含む、請求項1に記載の方法。
【請求項12】
デコーダでのビデオデコーディング方法であって、
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信することと、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定することと、
前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲をスケーリングして、前記現在の彩度ブロックの許可されたIBC参照範囲を決定することと、
(i)前記彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)前記彩度参照ブロックが前記現在の彩度ブロックの前記許可されたIBC参照範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断することと、
前記彩度BVが有効であるとの前記判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成すること、を含む方法。
【請求項13】
前記現在の彩度ブロックの前記許可されたIBC参照範囲と前記輝度領域の前記許可されたIBC参照範囲との間の倍率は、彩度サンプリングフォーマットに依存する、請求項12に記載の方法。
【請求項14】
前記倍率は、水平倍率と垂直倍率とを含み、
前記彩度サンプリングフォーマットが4:2:0であることに応じて、前記水平倍率は2、前記垂直倍率は2であり、
前記彩度サンプリングフォーマットが4:2:2であることに応じて、前記水平倍率は2、前記垂直倍率は1であり、
前記彩度サンプリングフォーマットが4:4:4であることに応じて、前記水平倍率は1、前記垂直倍率は1である、請求項13に記載の方法。
【請求項15】
前記現在の彩度ブロックの前記許可されたIBC参照範囲と前記輝度領域の前記許可されたIBC参照範囲との間の倍率は、異なるディメンションで異なる、請求項12に記載の方法。
【請求項16】
前記彩度BVが有効であるかを判断することは、
(i)前記彩度参照ブロック内の前記彩度サンプルが既に再構成され、及び、(ii)前記彩度参照ブロックが前記現在の彩度ブロックの前記許可されたIBC参照範囲の中にあること、に応じて、前記彩度BVが有効であると判断することを含む、請求項12に記載の方法。
【請求項17】
前記彩度BVが有効でないとの判断に応じて、
前記彩度BVを補正して、有効な彩度BVを得ることと、
前記有効な彩度BVが示す別の彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成することと、をさらに含み、
(i)前記彩度参照ブロック内の前記彩度サンプルは、既に再構成され、及び、(ii)前記別の彩度参照ブロックは、前記現在の彩度ブロックの前記許可されたIBC参照範囲内にある、請求項16に記載の方法。
【請求項18】
前記彩度BVを決定することは、
(i)前記彩度BVを前記コーディング情報から明示的にデコードすること、又は
(ii)イントラテンプレートマッチング予測(IntraTMP)モード又はダイレクトブロックベクトル(DBV)モードを用いて前記彩度BVを導出すること、
を含む、請求項12に記載の方法。
【請求項19】
前記現在の領域は、現在のコーディングツリーユニット(CTU)であり、
前記輝度コーディング領域は、前記現在のCTU内の輝度コーディングツリーブロック(CTB)であり、
前記彩度コーディング領域は、前記現在のCTU内の彩度CTBである、請求項12に記載の方法。
【請求項20】
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信し、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定し、
前記彩度参照ブロックのコロケーションされた輝度サンプルが、前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断し、
前記彩度BVが有効であるとの前記判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成する処理回路を備えたビデオデコーディング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2022年12月21日に出願された米国仮出願第63/434,398号である「IBC彩度ブロックベクトル検索範囲の検証」に対する優先権の利益を主張する、2023年10月3日に出願された米国特許出願第18/376,352号である「IBC彩度ブロックベクトル検索範囲の検証」に対する優先権の利益を主張する。先行出願の開示内容は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概してビデオコーディングに関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される「背景技術」の記載は、を概して本開示の文脈を提示するためのものである。この背景技術セクションに記載されている範囲で、現在の発明者の研究、並びに、そうでない場合出願時に従来技術として認められない可能性のある記載の態様は、本開示に対する従来技術として明示的にも暗黙的にも認められない。
【0004】
画像/ビデオ圧縮は、画像/ビデオデータを異なるデバイス、ストレージ、及びネットワークをわたって最小の品質低下で送信する手助けとなり得る。いくつかの例では、ビデオコーデック技術は、空間的及び時間的冗長性に基づいて、ビデオを圧縮することができる。一例では、ビデオコーデックは、空間的冗長性に基づいて画像を圧縮することができるイントラ予測と呼ばれる技術を使用することができる。例えばイントラ予測は、サンプル予測のための再構成中に、現在のピクチャから参照データを使用することができる。別の例では、ビデオコーデックは、時間的冗長性に基づいて画像を圧縮することができるインター予測と呼ばれる技術を使用することができる。例えば、インター予測は、過去に再構成されたピクチャから現在のピクチャ内のサンプルを動き補償を使って予測することができる。動き補償は、動きベクトル(motion vector、「MV」)により示すことができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
【課題を解決するための手段】
【0006】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法及び装置を含む。いくつかの例では、ビデオデコーディング装置は処理回路を含む。処理回路は、ピクチャ内の現在の領域のビットストリームを受信する。現在の領域は輝度コーディング領域と彩度コーディング領域を含む。ビットストリーム内のコーディング情報は輝度コーディング領域と彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す。処理回路は、彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)を決定する。彩度BVはピクチャ内の彩度参照ブロックを示す。処理回路は、現在の彩度ブロックのコロケーションされた輝度サンプルと彩度参照ブロックのコロケーションされた輝度サンプルとに基づいて、彩度BVが有効であるかを判断する。彩度BVが有効であるとの判断に応じて、処理回路は、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックを再構成する。一例では、処理回路は、彩度参照ブロックのコロケーションされた輝度サンプルが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断する。
【0007】
一実施形態では、現在の彩度ブロックは、(i)イントラブロックコピー(IBC)モード、(ii)イントラテンプレートマッチング予測(IntraTMP)モード、及び、(iii)ダイレクトブロックベクトル(DBV)モード、のうちの1つで予測される。
【0008】
一実施形態では、処理回路は、(i)彩度参照ブロックのコロケーションされた輝度サンプルが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたIBC参照範囲にあること、及び、(ii)彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、彩度BVが有効であると判断する。許可された範囲は許可されたIBC参照範囲であり得る。
【0009】
一例では、現在の彩度BVが有効ではないとの判断に応じて、処理回路は、彩度BVを補正して、有効な彩度BVを得る、及び、有効な彩度BVが示す別の彩度参照ブロックに基づいて、現在の彩度ブロックを再構成する。(i)別の彩度参照ブロックのコロケーションされた輝度サンプルが、輝度領域の許可されたIBC参照範囲にあり、及び、(ii)別の彩度参照ブロック内の彩度サンプルが既に再構成された。
【0010】
一例では、処理回路は、(i)コーディング情報から彩度BVを明示的にデコードする、又は、(ii)IntraTMPモード又はDBVモードを用いて彩度BVを導出する。
【0011】
一例では、現在の領域は、現在のコーディングツリーユニット(CTU)であり、輝度コーディング領域は、現在のCTU内の輝度コーディングツリーブロック(CTB)であり、彩度コーディング領域は、現在のCTU内の彩度CTBである。
【0012】
一例では、ピクチャ内の現在のCTUは四分木分割を用いて4つのコーディングユニットに分割され、現在の領域は4つのコーディングユニットのうちの1つのコーディングユニットである。
【0013】
一例では、許可されたIBC参照範囲は、現在のコーディングツリーユニット(CTU)又は1つ以上の過去に再構成されたCTU内の再構成された輝度サンプルのうちの少なくとも1つを含み、現在のCTUは現在の領域を含む。
【0014】
一例では、ビットストリーム内のコーディング情報は、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグを含む。
【0015】
一実施形態では、処理回路は、(i)彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)彩度参照ブロックが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲からスケーリングされる現在の彩度ブロックの許可されたIBC参照範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断する。彩度BVが有効であるとの判断に応じて、処理回路は彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックを再構成する。
【0016】
一実施形態では、処理回路は、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたIBC参照範囲をスケーリングして、現在の彩度ブロックの許可されたIBC参照範囲を決定する。
【0017】
一実施形態では、現在の彩度ブロックの許可されたIBC参照範囲と輝度領域の許可されたIBC参照範囲との倍率は、彩度サンプリングフォーマットに依存する。
【0018】
一例では、現在の彩度ブロックの許可されたIBC参照範囲と輝度領域の許可されたIBC参照範囲との倍率は、異なるディメンションで異なる。
【0019】
一例では、倍率は、水平倍率と垂直倍率とを含む。彩度サンプリングフォーマットが4:2:0であることに応じて、水平倍率は2、垂直倍率は2である。彩度サンプリングフォーマットが4:2:2であることに応じて、水平倍率は2、垂直倍率は1である。彩度サンプリングフォーマットが4:4:4であることに応じて、水平倍率は1、垂直倍率は1である。
【0020】
一実施形態では、処理回路は、(i)彩度参照ブロック内の彩度サンプルが既に再構成され、及び、(ii)彩度参照ブロックが現在の彩度ブロックの許可されたIBC参照範囲の中にあること、に応じて、彩度BVが有効であるかを判断する。
【0021】
一例では、彩度BVが有効でないとの判断に応じて、処理回路は、彩度BVを補正して、有効な彩度BVを得る、及び、有効な彩度BVが示す別の彩度参照ブロックに基づいて、現在の彩度ブロックを再構成する。(i)彩度参照ブロック内の彩度サンプルは、既に再構成され、及び、(ii)別の彩度参照ブロックは、現在の彩度ブロックの許可されたIBC参照範囲内にある。
【0022】
本開示の態様は、コンピュータによって実行されると、コンピュータにビデオエンコーディング/デコーディングのための方法を実行させる命令を記憶する非一時的なコンピュータ読取可能な媒体も提供する。
【図面の簡単な説明】
【0023】
開示された主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【0024】
【
図1】
図1は、通信システム(100)の例示的なブロック図を示す概略図である。
【0025】
【
図2】
図2は、デコーダの例示的なブロック図を示す概略図である。
【0026】
【
図3】
図3は、エンコーダの例示的なブロック図を示す概略図である。
【0027】
【
図4】
図4は、本開示のいくつかの実施形態に係る現在のCU(401)に関連付けられたBVを示す。
【0028】
【
図5】
図5は、本開示の実施形態に係る、再構成処理中の4つの中間時点での参照サンプルメモリ(reference sample memory、「RSM」)更新処理を示す。
【0029】
【
図6】
図6は、本開示の実施形態に係る左隣のCTU及び現在のCTUを図示し、有効参照エリアを示す。
【0030】
【
図7】
図7は、本開示の実施形態に係る、あるスーパーブロック予測におけるイントラブロックコピー(Intra Block Copy、「IntraBC」)モードのための予測エリアの例を示す。
【0031】
【
図8】
図8は、本開示の実施形態に係る、現在のピクチャ内のCTU又はSBのデコード中に行われる、RSMにおけるメモリ再利用機構又はメモリ更新処理の例を示す。
【0032】
【
図9】
図9A-Bは、本開示の実施形態に係る、現在のSB(又はCTU)のデコード中に行われる、RSMにおけるメモリ更新処理の例を示し、(a)SBルートでの水平分割(
図9A)又は(b)SBルートでの垂直分割(
図9B)で行われる。
【0033】
【
図10】
図10は、本開示の実施形態に係る、イントラテンプレートマッチング予測(intra template matching prediction、「IntraTMP」)モードの例を示す。
【0034】
【
図11】
図11は、本開示のいくつかの実施形態に係る現在の彩度ブロックの例示的な許可された参照範囲を示す。
【0035】
【
図12】
図12は、本開示のいくつかの実施形態に係るデコーディング処理の概要を示すフローチャートである。
【0036】
【
図13】
図13は、本開示のいくつかの実施形態に係るエンコーディング処理の概要を示すフローチャートである。
【0037】
【
図14】
図14は、本開示のいくつかの実施形態に係るデコーディング処理の概要を示すフローチャートである。
【0038】
【
図15】
図15は、本開示のいくつかの実施形態に係るエンコーディング処理の概要を示すフローチャートである。
【0039】
【
図16】
図16は、一実施形態に係るコンピュータシステムの概略図である。
【発明を実施するための形態】
【0040】
図1は、いくつかの例におけるビデオ処理システム(100)のブロック図を示す。ビデオ処理システム(100)は、開示された主題の応用の一例であり、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダである。開示された主題は、他のビデオによって可能になるアプリケーションに等しく適用可能であり、当該アプリケーションには、例えば、ビデオ会議、デジタルTV、ストリーミングサービス、CD,DVD,メモリスティック等のデジタル媒体に圧縮後のビデオを記憶すること、が含まれる。
【0041】
ビデオ処理システム(100)は、撮影サブシステム(113)を含み、撮影サブシステム(113)は例えば非圧縮のビデオピクチャ(102)のストリームを作成する、例えばデジタルカメラなどのビデオソース(101)を含み得る。一例では、ビデオピクチャ(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)として知られている。開示された主題は、VVCのコンテキストに使用されてもよい。
【0042】
なお、電子デバイス(120)及び(130)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(120)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(130)は、ビデオエンコーダ(図示せず)を含むことができる。
【0043】
図2は、ビデオデコーダ(210)の例示的なブロック図を示す。ビデオデコーダ(210)は、電子デバイス(230)に含まれてもよい。電子デバイス(230)は、受信機(231)(例えば、受信回路)を含むことができる。ビデオデコーダ(210)は、
図1の例におけるビデオデコーダ(110)の代わりに使用することができる。
【0044】
受信機(231)は、例えばビデオデコーダ(210)によってデコードされる1つ以上のコード化ビデオシーケンスを受信してもよい。一実施形態では、一度に1つのコード化ビデオシーケンスを受信し、各コード化ビデオシーケンスのデコードは、他のコード化ビデオシーケンスのデコードから独立している。コード化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(201)から受信されてもよい。受信機(231)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コード化オーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受信してもよい。受信機(231)は、コード化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(215)は、受信機(231)とエントロピーデコーダ/パーサ(220)(以降、「パーサ(220)」)の間に結合されてもよい。特定の用途では、バッファメモリ(215)は、ビデオデコーダ(210)の一部である。他の場合、バッファメモリ(215)は、ビデオデコーダ(210)(図示せず)の外部に存在することができる。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(210)の外部にバッファメモリ(図示せず)が存在し、さらに、例えば、再生タイミングを処理するためにビデオデコーダ(210)の内部に別のバッファメモリ(215)が存在することができる。受信機(231)が十分な帯域幅及び可制御性を有する記憶/転送装置から、又は等同期ネットワークからデータを受信する際に、バッファメモリ(215)は必要ではないことがあり、小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(215)が必要であることがあり、バッファメモリ(215)は、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ(210)の外部のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0045】
ビデオデコーダ(210)は、コード化ビデオシーケンスからシンボル(221)を再構築するパーサ(220)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(210)の動作を管理するために使用される情報を含み、そして、電子デバイス(230)の不可欠な部分ではないが、
図2に示されるように電子デバイス(230)に結合することができるレンダリングデバイス(212)(例えば、表示画面)のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイスのための制御情報は、補助強化情報(SEI)メッセージ又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であってもよい。パーサ(220)は、受信されたコード化ビデオシーケンスを構文解析/エントロピーデコードしてもよい。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に合わせることができ、可変長コーディング、ハフマンコーディング、コンテキスト感受性を有するもしくは有さない算術コーディングなどを含む様々な原理に従うことができる。パーサ(220)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出してもよい。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(220)は、コード化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報も抽出してもよい。
【0046】
パーサ(220)は、シンボル(221)を作成するために、バッファメモリ(215)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析動作を実行してもよい。
【0047】
シンボル(221)の再構築は、コード化されたビデオピクチャ又はその一部(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)のタイプ及び他の要因に応じて、複数の異なるユニットに関与することができる。どのユニットが、どのように関与するかは、パーサ(220)によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ(220)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0048】
すでに述べた機能ブロックに加え、ビデオデコーダ(210)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分することができる。商業的制約で動作する実際の実装では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分は適切である。
【0049】
第1のユニットは、スケーラ/逆変換ユニット(251)である。スケーラ/逆変換ユニット(251)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(221)としてパーサ(220)から受信する。スケーラ/逆変換ユニット(251)は、アグリゲータ(255)に入力可能なサンプル値を含むブロックを出力することができる。
【0050】
場合によっては、スケーラ/逆変換ユニット(251)の出力サンプルは、イントラコード化ブロックに関係することがある。イントラコード化ブロックは、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用することができる。このような予測情報は、イントラピクチャ予測ユニット(252)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(252)は、現在ピクチャバッファ(258)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(258)は、例えば、部分的に再構築された現在ピクチャ及び/又は完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(255)は、場合によっては、サンプルごとに、イントラ予測ユニット(252)が生成した予測情報を、スケーラ/逆変換ユニット(251)によって提供される出力サンプル情報に追加する。
【0051】
他の場合では、スケーラ/逆変換ユニット(251)の出力サンプルは、インターコード化された、潜在的に動き補償されたブロックに関係することがある。このような場合に、動き補償予測ユニット(253)は、参照ピクチャメモリ(257)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(221)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(255)によってスケーラ/逆変換ユニット(251)の出力に追加することができる(この場合に、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニット(253)が予測サンプルを取り出す参照ピクチャメモリ(257)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有し得るシンボル(221)の形態で動き補償予測ユニット(253)に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに参照ピクチャメモリ(257)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0052】
アグリゲータ(255)の出力サンプルは、ループフィルタユニット(256)において様々なループフィルタリング技術によって用いられてもよい。ビデオ圧縮技術は、コード化ビデオシーケンス(コード化されたビデオビットストリームとも呼ばれる)に含まれ、パーサ(220)からのシンボル(221)としてループフィルタユニット(256)に利用可能とされたパラメータによって制御されるループ内フィルタ技術を含むことができる。ビデオ圧縮は、コード化ピクチャ又はコード化ビデオシーケンスの(デコーディング順序で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできる。
【0053】
ループフィルタユニット(256)の出力は、レンダリングデバイス(212)へ出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(257)に記憶することができるサンプルストリームであり得る。
【0054】
特定のコード化ピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に再構築され、コード化ピクチャが(例えば、パーサ(220)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(258)は、参照ピクチャメモリ(257)の一部になることができ、下記のコード化ピクチャの再構築を開始する前に新しい現在ピクチャバッファを再割当てすることができる。
【0055】
ビデオデコーダ(210)は、所定のビデオ圧縮技術又はITU-T勧告H.265のような規格に従ってデコード動作を実行することができる。コード化ビデオシーケンスがビデオ圧縮技術又は規格の構文と、ビデオ圧縮技術又は規格で文書化されたプロファイルとの両方に準拠しているという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術又は規格によって指定される構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールから、特定のツールをそのプロファイルで利用可能な唯一のツールとして選択することができる。コード化ビデオシーケンスの複雑さがビデオ圧縮技術又は規格のレベルで限定される範囲内にあることも、コンプライアンスに対して必要である。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。場合によっては、レベルによって設定された制限は、仮想参照デコーダ(HRD)の仕様及びコード化ビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0056】
一実施形態では、受信機(231)は、エンコードされたビデオとともに追加の(冗長)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、及び/又は、元のビデオデータをより正確に再構築するためにビデオデコーダ(210)によって使用されてもよい。追加のデータは、例えば、時間的、空間的又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態であり得る。
【0057】
図3は、ビデオエンコーダ(303)の例示的なブロック図を示す。ビデオエンコーダ(303)は、電子デバイス(320)に含まれる。電子デバイス(320)は、送信機(340)(例えば、送信回路)を含む。ビデオエンコーダ(303)は、
図1の例におけるビデオエンコーダ(103)の代わりに使用することができる。
【0058】
ビデオエンコーダ(303)は、ビデオエンコーダ(303)によってコード化すべきビデオ画像を撮影し得るビデオソース(301)(
図3の例では電子デバイス(320)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(301)は、電子デバイス(320)の一部である。
【0059】
ビデオソース(301)は、ビデオエンコーダ(303)によってコード化すべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(301)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(301)は、ローカル画像情報をビデオシーケンスとして撮影するカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。以下の説明ではサンプルを中心に説明する。
【0060】
一実施形態によれば、ビデオエンコーダ(303)は、リアルタイムで又は要求される任意の他の時間制約の下でソースビデオシーケンスのピクチャをコード化し、コード化ビデオシーケンス(343)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(350)の機能の1つである。いくつかの実施形態では、コントローラ(350)は、以下で説明されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明瞭にするために、結合は図示されていない。コントローラ(350)によって設定されたパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値…)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(350)は、特定のシステム設計に対して最適化されたビデオエンコーダ(303)に関係する他の適切な機能を有するように構成することができる。
【0061】
いくつかの実施形態では、ビデオエンコーダ(303)は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ(330)(例えば、コード化すべき入力ピクチャ及び参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、及びビデオエンコーダ(303)に埋め込まれた(ローカル)デコーダ(333)を含むことができる。デコーダ(333)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(334)に入力される。シンボルストリームのデコードにより、(ローカル又はリモート)デコーダの位置に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(334)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性のこの基本原理(及び例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連技術にも使用されている。
【0062】
「ローカル」デコーダ(333)の動作は、前文で
図2に関連して既に詳細に説明された、ビデオデコーダ(210)などの「リモート」デコーダの動作と同様であり得る。しかしながら、
図2も簡単に参照し、シンボルが利用可能であり、エントロピーコーダ(345)及びパーサ(220)によるコード化ビデオシーケンスへのシンボルのエンコード/デコードは可逆であり得るため、バッファメモリ(215)及びパーサ(220)を含むビデオデコーダ(210)のエントロピーデコード部分は、ローカルデコーダ(333)では完全に実装されない場合がある。
【0063】
一実施形態では、デコーダに存在する構文解析/エントロピーデコード以外のデコーダ技術は、対応するエンコーダに同一又は実質的に同一の機能的形態で存在する。したがって、開示された主題は、デコーダの動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域で、より詳細な説明が以下に提供される。
【0064】
動作中、いくつかの例では、ソースコーダ(330)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予めコード化されたピクチャを参照して入力ピクチャを予測的にコード化する動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン(332)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差をコード化する。
【0065】
ローカルビデオデコーダ(333)は、ソースコーダ(330)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータをデコードすることができる。コーディングエンジン(332)の動作は、有利には非可逆プロセスであり得る。コード化ビデオデータがビデオデコーダ(
図3に図示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(333)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャメモリ(334)に記憶させることができる。このようにして、ビデオエンコーダ(303)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。
【0066】
予測子(335)は、コーディングエンジン(332)の予測検索を実行することができる。つまり、新しいコード化すべきピクチャについて、予測子(335)は、(候補の参照画素ブロックとしての)サンプルデータ、又は、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(334)で検索することができる。予測子(335)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに動作することができる。場合によっては、予測子(335)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(334)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0067】
コントローラ(350)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(330)のコーディング動作を管理してもよい。
【0068】
前述の全ての機能ユニットの出力は、エントロピーコーダ(345)でエントロピーコーディングされてもよい。エントロピーコーダ(345)は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルに対して可逆圧縮を適用することにより、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
【0069】
送信機(340)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(360)を介した送信の準備のために、エントロピーコーダ(345)によって作成されたコード化ビデオシーケンスをバッファリングすることができる。送信機(340)は、ビデオエンコーダ(303)からのコード化ビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータ及び/又は補助データストリーム(ソースは図示されていない)とマージしてもよい。
【0070】
コントローラ(350)は、ビデオエンコーダ(303)の動作を管理してもよい。コーディング中、コントローラ(350)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、これは、各々のピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、下記のピクチャタイプのいずれかが割り当てられてもよいことが多い。
【0071】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずにコード化及びデコードされ得る。いくつかのビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。
【0072】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によりコード化及びデコードされ得る。
【0073】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために2つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によりコード化及びデコードされ得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために2つ以上の参照ピクチャ及び関連メタデータを使用することができる。
【0074】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8又は16×16サンプルのブロック)に空間的に細分され、ブロックごとにコード化されてもよい。ブロックは、ブロックの各々のピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは、非予測的にコード化されてもよく、同一のピクチャの既にコード化されたブロックを参照して予測的にコード化されてもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの予めコード化された参照ピクチャを参照して、空間的予測又は時間的予測を介して予測的にコード化されてもよい。Bピクチャのブロックは、1つ又は2つの予めコード化された参照ピクチャを参照して、空間的予測又は時間的予測を介して予測的にコード化されてもよい。
【0075】
ビデオエンコーダ(303)は、ITU-T勧告H.265などの所定のビデオコーディング技術又は規格に従ってコーディング動作を実行することができる。動作中、ビデオエンコーダ(303)は、入力ビデオシーケンスの時間的冗長性及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化ビデオデータは、使用されるビデオコーディング技術又は規格によって指定された構文に従う場合がある。
【0076】
一実施形態では、送信機(340)は、エンコードされたビデオとともに追加のデータを送信してもよい。ソースコーダ(330)は、このようなデータをコード化ビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長ピクチャ及び冗長スライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0077】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として撮影され得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在ピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予めコード化され、まだバッファリングされている参照ピクチャにおける参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコード化することができる。動きベクトルは、参照ピクチャにおける参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0078】
いくつかの実施形態では、インターピクチャ予測において双予測技術を使用することができる。双予測技術によれば、ビデオにおける現在ピクチャよりデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去及び将来にあり得る)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャを使用する。現在ピクチャにおけるブロックは、第1の参照ピクチャにおける第1の参照ブロックを指す第1の動きベクトル、及び第2の参照ピクチャにおける第2の参照ブロックを指す第2の動きベクトルによってコード化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせから予測することができる。
【0079】
さらに、マージモード技術をインターピクチャ予測に使用して、コーディング効率を向上させることができる。
【0080】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャのうちのピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、又は16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ以上のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、又は4つの32×32画素のCU、又は16個の16×16画素のCUに分割することができる。一例では、各CUを解析して、インター予測タイプ又はイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。
【0081】
なお、ビデオエンコーダ(103)及び(303)とビデオデコーダ(110)及び(210)とは、任意の適切な技術を用いて実装することができる。一実施形態では、ビデオエンコーダ(103)及び(303)とビデオデコーダ(110)及び(210)とは、1つ以上の集積回路を用いて実装することができる。別の実施形態では、ビデオエンコーダ(103)及び(303)とビデオデコーダ(110)及び(210)とは、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装することができる。
【0082】
HEVC及びVVCに用いられる等のイントラブロックコピーモード(IntraBCモード又はIBCモードとも呼ばれる)の例を以下で説明する。
【0083】
いくつかのIBCコーディングツールが、HEVCスクリーンコンテンツコーディング(Screen Content Coding、「SCC」)拡張において現在のピクチャ参照(current picture referencing、「CPR」)として用いられる。IBCモードは、現在のピクチャ(現在のフレームとも呼ばれる)が参照ピクチャ(参照フレームとも呼ばれる)としてIBCモードにおいて用いられるインター予測のために用いられるコーディング技術を使用できる。IBCモードを使用する利点は、2次元(2D)の空間的ベクトルを参照サンプルへのアドレッシング機構の表現として使用できるIBCモードの参照構造である。IBCモードのアーキテクチャの利点は、IBCの統合に必要な仕様の変更が比較的小さく、製造者がHEVCバージョン1などの所与の予測技術を既に実装している場合に、実装負荷を緩和できることだ。HEVC SCC拡張のCPRは空間的インター予測モードであり得、インター予測モードのシンタックス構造と同一のシンタックス構造又は類似のシンタックス構造、及び、インター予測モードのデコーディング処理と類似するデコーディング処理となる。
【0084】
IBCモードをインター予測処理に統合することができる。いくつかの例では、IBCモード(又はCPR)はインター予測モードであり、イントラのみで予測されたスライスがIBCモードの使用を許容する予測されたスライスとなるべきである。IBCモードが適用可能である場合は、コーダは、現在のピクチャを指すポインタの1つの入力により参照ピクチャリストを拡張することができる。例えば、現在のピクチャは、共有されたデコード済みピクチャバッファ(decoded picture buffer、「DPB」)の1ピクチャサイズのバッファを使用する。IBCモードシグナリングは潜在的とすることができる。例えば、選択した参照ピクチャが現在のピクチャを指す場合は、CUはIBCモードを採用できる。様々な実施形態では、IBC処理で用いられる参照サンプルはフィルタリングされていなく、通常のインター予測と異なる。IBC処理に用いられる対応する参照ピクチャは、長期参照である。メモリ必要量を最小化するために、コーダは現在のピクチャを再構成した後にバッファを解放できる、例えば、コーダは現在のピクチャを再構成した後にバッファを直ちに解放する。フィルタリング済みの再構成されたピクチャは、当該再構成されたピクチャが参照ピクチャであるときに、コーダによって短期参照としてDPBへ戻すことができる。
【0085】
ブロックベクトル(BV)コーディングにおいて、再構成されたエリアへの参照は、インター予測で用いられるMVと類似する2DのBVを介して行うことができる。BVの予測及びコーディングはインター予測処理におけるMV予測及びコーディングを再利用することができる。いくつかの例では、輝度BVは、通常のインターコード化されたCTUに用いられるMVの精度の四分の一(又は1/4-pel)ではなく、整数の解像度である。
【0086】
図4は、本開示の実施形態に係る現在のCU(401)に関連付けられたBVを示す。各四角形(400)はCTUを表すことができる。グレーの影付きエリアは既にコード化されたエリア又は既にコード化された領域を表し、白の影無しエリアはコード化すべきエリア又は領域を表す。再構成中の現在のCTU(400(4))は、現在のCU(401)と、コード化されたエリア(402)と、コード化すべきエリア(403)と、を含む。一例では、現在のCU(401)をコード化した後に、エリア(403)がコード化される。
【0087】
HEVCにおける等の例では、現在のCTU(400(4))の右上にある2つのCTU(400(1)-400(2))を除くグレーの影付きエリアをIBCモードにおける参照エリアとして使用することができ、ウェーブフロント並列処理(Wavefront Parallel Processing、「WPP」)を許容する。HEVCに許容されるBVは、参照エリア(例えば、2つのCTU(400(1)-400(2))を除くグレーの影付きエリア)内のブロックを指すことができる。例えば、HEVCに許容されるBV(405)は参照ブロック(411)を指す。
【0088】
VVCにおける等の例では、現在のCTU(400(4))に加えて、現在のCTU(400(4))の左にある左隣のCTU(400(3))のみをIBCモードにおける参照エリアとして許容する。一例では、VVCにおけるIBCモードで用いられる参照エリアは、点線エリア(415)内であり、コード化されたサンプルを含む。例えば、VVCで許容されるBV(406)は参照ブロック(412)を指す。一例では、最終BVを決定するためにBV予測子へ加えられる前に、デコードされた動きベクトル差(motion vector difference、「MVD」)又はBVのブロックベクトル差(block vector difference、「BVD」)を左へ(例えば2つ)シフトする。
【0089】
IBCモードはインター予測モードと異なることができ、後述するもの等の実装的及び性能的理由のために特別な操作を用いてよい。実施形態では、IBC参照サンプルはフィルタリングされていない、例えば、デブロッキングフィルタ(deblocking filter、「DBF」)及びサンプル適応オフセット(sample adaptive offset、「SAO」)を含むがこれらに限られないインループ(in-loop)フィルタリング処理前の再構成サンプルがIBCモードにおいて参照サンプルとして用いられる。ここで、HEVCに用いられる等の他のインター予測モードは、フィルタリング済みサンプルを参照サンプルとして採用する。実施形態では、IBCモードのための輝度サンプル補間はない。実施形態では、彩度BVを輝度BVから導出し、彩度BVが非整数である場合は、彩度サンプル補間を用いる。実施形態では、彩度BVが非整数であり、参照ブロックが利用可能な領域の境界付近にある。例えば、周辺の再構成サンプルは境界の外側にあり、彩度サンプル補間を行う。1つの境界付近にある線を指すBVは、そのようなケースを回避可能ではないだろう。
【0090】
VVCに用いられる等の例示的なIBCアーキテクチャを以下で説明する。HEVC SCC拡張に用いられる等のIBCモードのため有効参照エリアは、現在のピクチャの既に再構成されたエリアのほぼ全体を、
図4で説明したもの等の並列処理目的のための一部を例外として、含むことができる。
図4は、HEVCにおけるIBCモードのための参照エリアと、VVCにおける設定を示す。例えば、
図4を参照すると、現在のCTU(400(4))の左にあるCTU(400(3))のみが、現在のCTU(400(4))の再構成処理の開始時に、参照サンプルエリアとして働くことができる。いくつかの例では、HEVCにおける概念の戻しが、ハードウェア実装が外部メモリを採用するDPBにおける追加メモリのための必要条件である。一例では、外部メモリへの追加アクセスによりメモリ帯域が増加し、DPBの使用への魅力が低減する。いくつかの実施形態では、VVCにおける等のIBCモードは、オンチップで実現でき、ハードウェアアーキテクチャにおけるIBCモードの実装の複雑さを著しく低減できる固定メモリを使用することができる。一実施形態では、重要な修正は、HEVC SCC拡張における等のインター予測処理内の統合から離れたシグナリング概念に対応する。
【0091】
図5は、本開示の実施形態に係る、再構成処理中の4つの中間時点(501)-(504)における参照サンプルメモリ(RSM)(510)更新処理を示す。薄いグレーの影付きエリアは左隣のCTUの参照サンプルを表すことができる。濃いグレーの影付きエリアは現在のCTUの参照サンプルを表すことができる。白及び影無しエリアはコード化すべき領域(例えば、次のコーディングエリア)を表すことができる。
【0092】
VVCで用いられる等のIBCモードのシンタックス及びセマンティックの例を以下で説明する。VVCで用いられる等のIBCアーキテクチャは、IBCモードがイントラ予測モードとインター予測モードに加えて第3の予測モードである専用のコーディングモードを形成することができる。ビットストリームは、例えば、ブロックサイズが64×64以下であるときに、コーディングユニットのIBCモードを示すIBCシンタックス要素(例えば、sIBCシンタックス要素)を運ぶことができる。一実施形態では、IBCモードを利用できる最大のCUサイズが64×64であり、RSMの継続メモリ更新機構を実現する。参照サンプルアドレッシング機構は、2次元オフセットを示しインター予測モードのベクトルコーディング処理を再利用することで、HEVC SCC拡張で使用されるものと同一であり得る。一例では、彩度分木(chroma separate tree、「CST」)がアクティブであり、コーダは輝度BVから彩度BVを導出することができなく、輝度コーディングブロックのためだけのIBCモード使用となる。
【0093】
VVCで用いられる等のIBCモードにおける参照エリアとサンプルメモリを以下で説明する。VVCで用いられる等のIBC設計は、参照サンプルを記憶するために色成分ごとに固定メモリサイズ(例えば128×128)を採用することができ、このためハードウェア実装におけるオンチップ配置の可能性を与えることができる。一例では、VVCにおける最大CTUサイズは128×128である。一実施形態では、最大CTUサイズ設定が128×128と等しいときに、RSMは1つCTUのサンプルを記憶することができる。一例では、RSMの特徴は、左隣のCTUの再構成サンプルを現在のCTUの再構成サンプルに置換できる継続更新機構を含む。
【0094】
図5は、再構成処理中の4つの中間時点(501)-(504)における更新機構のためのRSM例(例えば、簡易化されたRSM例)を示す。
図5を参照すると、現在のCTU再構成の開始を表す第1の中間時点(501)で、一例では、RSM(510)は左隣のCTUの参照サンプルのみを含む。他の3つの中間時点(502)-(504)では、再構成処理は左隣のCTUのサンプルを現在のCTUのバリアントに置換する。RSM(510)の潜在的分割を適用することができ、RSM(510)を4つの互いに素な64×64エリア(511)-(514)に分割することができる。RSMをCTUへマッピングするときにコーダが対応するエリアにある第1のコーディングユニットを処理すると、エリアのリセットが生じるようにでき、ハードウェア実装労力を軽減する。
【0095】
図5に示される例では、IBCモードで用いられる参照エリアを記憶するために、固定メモリ(例えば、RSM(510))を割り当てることができる。コーディング処理(例えば、エンコーディング処理又は再構成処理)の間に、異なる中間時点(例えば(501)-(504))でRSMの一部を更新することができる。
図5は、VVCにおけるIBCモードのための参照エリア及びVVCにおける設定を示す。
【0096】
図5を参照すると、RSM(510)は、現在のCTUの一部及び/又は左隣のCTUの一部を含むことができる。
図5に示される例では、RSMのサイズはCTUのサイズと等しい。RSM(510)は部分(511)-(514)を含むことができる。
【0097】
現在のCTUのコーディング処理の開始であるコーディング処理の第1の中間時点(501)では、RSM(510)は左隣のCTUの全体を含み、左隣のCTUの全体は現在のCTUのコーディング処理の開始においてIBCモードにおける参照エリアとして働くことができる。現在のCTUのコーディング処理の開始でのRSM(510)は現在のCTUを含まず、部分(511)-(514)は左隣のCTUの再構成サンプルを含む。
【0098】
現在のCTUのコーディング処理の第2の中間時点(502)では、現在のCTU内の左上領域のサブエリア(531)が既にコード化され(例えば、エンコードされ又は再構成され)、現在のCTU内の左上領域のサブエリア(532)がコード化の最中の(例えば、エンコードの最中の又は再構成の最中の)現在のCUであり、現在のCTU内の左上領域のサブエリア(533)が今後コード化される。RSM(510)が更新され、左隣のCTUの一部及び現在のCTUの一部を含む。例えば、RSM(510)内の部分(512)-(514)は、第1の中間時点(501)と同じ左隣のCTU内の再構成サンプルを記憶する一方、部分(511)は現在のCTUのサブエリア(531)を記憶するように更新される。第2の中間時点(502)での参照エリアは、部分(512)-(514)に記憶された左隣のCTUの再構成サンプルと、部分(511)に記憶された現在のCTUのサブエリア(531)の再構成サンプルと、を含むことができる。
【0099】
現在のCTUのコーディング処理の第3の中間時点(503)では、現在のCTUの左上領域が既に再構成されている。現在のCTUの右上領域はサブエリア(541)-(543)を含む。サブエリア(541)(濃いグレーの影付き)が既にコード化され(例えば、エンコードされ又は再構成され)、サブエリア(542)がコード化の最中の(例えば、エンコードの最中の又は再構成の最中の)現在のCUであり、サブエリア(543)(白色及び影無し)が今後コード化される。RSM(510)内の部分(513)-(514)は第1の中間時点(501)と同じ左隣のCTU内の再構成サンプルを記憶する一方、部分(511)-(512)については、部分(511)が現在のCTUの左上領域の再構成サンプルを記憶し、部分(512)が現在のCTUのサブエリア(541)を記憶するように、更新される。第3の中間時点(503)での参照エリアは、(i)部分(513)-(514)に記憶された左隣のCTUの再構成サンプルと、(ii)部分(511)に記憶された現在のCTUの左上領域の再構成サンプル及び部分(512)に記憶された現在のCTUのサブエリア(541)の再構成サンプルと、を含むことができる。
【0100】
現在のCTUのコーディング処理の第4の中間時点(504)では、現在のCTU内の左上領域と、右上領域と、左下領域とが既に再構成されている。現在のCTUの右下領域は、サブエリア(551)-(553)を含む。サブエリア(551)(濃いグレーの影付き)が既にコード化され(例えば、エンコードされ又は再構成され)、サブエリア(552)がコード化の最中の(例えば、エンコードの最中の又は再構成の最中の)現在のCUであり、サブエリア(553)(白色及び影無し)が今後コード化される。部分(511)が第3の中間時点(503)と同じ現在のCTU内の左上領域の再構成サンプルを記憶する一方、部分(512)-(514)については、部分(512)-(513)が現在のCTUの右上領域及び左下領域の再構成サンプルをそれぞれ記憶し、部分(514)が現在のCTUのサブエリア(551)を記憶するように、更新される。第4の中間時点(504)での参照エリアは、部分(511)-(514)に記憶された現在のCTUの再構成サンプルを含むことができる。第4の中間時点(504)でRSM(510)は、左隣のCTU内のエリアを含まない。
【0101】
図6は、左隣のCTU(601)及び現在のCTU(602)を図示し、RSM設計及び継続更新機構による有効参照エリアを示す。左隣のCTU(601)はエリア(611)-(614)を含むことができる。現在のCTU(602)はエリア(621)-(624)を含むことができる。現在のCTU(602)内のエリア(623)は、コード化の最中の現在のCU(603)と、既にコード化されているサブエリア(651)と、今後コード化されるサブエリア(653)と、を含む。グレーの影付きエリアはRSMに記憶されたサンプルを含むことができ、白及び影無しエリアは置換後のサンプル又は再構成されていないサンプルを含むことができる。
【0102】
図6は、RSMの継続更新概念の例を空間的に示す。
図6に示される例における再構成時に、RSM更新処理は、左隣のCTU(601)内の白及び影無しエリア(611)-(613)がカバーするサンプルを、現在のCTU(602)のグレーの影付きエリア(例えば、エリア(621)-(622)及びサブエリア(651))に置換した。
図6では、RSMは、(i)左隣のCTU(601)内のエリア(614)と、(ii)現在のCTU(602)のエリア(621)-(622)及びサブエリア(651)と、を含むことができる。
【0103】
RSMは、左隣にあるCTUを1つより多くを含んでよく、例えば、最大CTUサイズがRSMサイズ(例えば128×128)より小さいときは、左隣にある複数のCTUをIBCモードにおける参照エリアとして使用することができる。例えば、最大CTUサイズが32×32と等しいときは、サイズが128×128であるRSMは左隣にある15個のCTUのサンプルを記憶してよい。
【0104】
VVCで用いられる等のIBCモードの例示的なブロックベクトル(BV)を以下で説明する。BVコーディングは、インター予測のために規定された処理を採用することができる。IBCモードのBVコーディングは、候補リスト構成のためにより単純な規則を使用することができる。例えば、インター予測のための候補リスト構成は、5つの空間的候補と、1つの時間的候補と、6つの履歴ベース候補と、を含んでよい。インター予測では、履歴ベース候補について複数の候補比較を用いて、最終候補リストへの重複入力を避ける。また、インター予測では、候補リスト構成は、ペアワイズで平均化された候補を含んでよい。一実施形態では、IBCリスト構成処理は、2つの空間的近隣のBVと、5つの履歴ベースBV(history-based BV、「HBVP」)のみを検討し、候補リストに加えられたときに第1のHBVPのみを空間的候補と比較する。通常のインター予測マージモード用と通常モードのその他用の2つの異なる候補リストを使用できる一方で、IBCモードにおける候補リストは両ケースに対応する。IBCモードでは、マージモードは候補リストの最大6つの候補を使用してよく、通常モードは候補リストの1番目と2番目の候補のみを使用する。IBCモードにおけるブロックベクトル差(BVD)コーディングは、インター予測に用いられる動きベクトル差(MVD)処理を採用することができ、任意の適切な大きさの最終BVを生じる。一実施形態では、再構成BVは参照サンプルエリアの外側のエリアを指してよく、例えば、各方向の(例えば、水平方向と垂直方向のそれぞれの)絶対オフセットを、RSMの幅と高さでモジュロ演算により除去することにより、再構成BVに対して補正が行われる。
【0105】
彩度BVの導出処理は、以下を含むことができる。現在のコーディングツリータイプがSINGLE_TREEであるとき、彩度ブロックは輝度ブロックに対応する。IBCモードでコード化された彩度ブロックのBVは、彩度サンプリングフォーマット(例えば、4:2:0,4:2:2)及び彩度BV精度を考慮した適切なスケーリングで、輝度ブロックのBVから導出できる。以下に導出処理を説明する。当該処理への入力は、十六分の一片サンプル精度bvLでの輝度BVを含むことができる。当該処理への出力は、三十二分の一片サンプル精度bvCでの彩度BVを含むことができる。彩度BVは、対応する輝度BVから導出できる。彩度BV bvCを以下のように導出できる。
bvC[0]=((bvL[0]>>(3+SubWidthC))*32 式(1)
bvC[1]=((bvL[1]>>(3+SubHeightC))*32 式(2)
【0106】
変数SubWidthC及びSubHeightCを、sps_chroma_format_idcにより指定することができる彩度フォーマットサンプリング構造に応じて、表1で指定できる。
【表1】
【0107】
モノクロームサンプリング(例えば、彩度フォーマットがモノクローム)では、輝度アレイであると名目上考えられるサンプルアレイが1つだけある。
【0108】
4:2:0サンプリングでは、2つの彩度アレイのそれぞれが輝度アレイの半分の高さ及び半分の幅を有することができる。
【0109】
4:2:2サンプリングでは、2つの彩度アレイのそれぞれが輝度アレイと同じ高さ及び半分の幅を有することができる。
【0110】
4:4:4サンプリングでは、2つの彩度アレイのそれぞれが輝度アレイと同じ高さ及び同じ幅を有することができる。
【0111】
ビデオシーケンスにおいて輝度アレイ及び彩度アレイの各サンプルを表すために必要なビット数は、8以上16以下の範囲であり得る。
【0112】
AV1で用いられる等のIntraBCモードを以下で説明する。AV1における等の一実施形態では、イントラブロックコピー(IntraBC)モードは、現在のブロックの同じピクチャ内に予測ブロックを置くために、ベクトルを使用できる。当該ベクトルをブロックベクトル(BV)と呼ぶ。BVをビットストリーム内でシグナリングすることができる、また、BVを表す精度は整数ポイントであり得る。IntraBCモードにおける予測処理は、インターピクチャ予測に類似する。IntraBCモードとインター予測との違いは、IntraBCモードでは、ループフィルタリングを適用する前に、予測子ブロックを現在のピクチャの再構成サンプルから形成することができることだ。そのため、IntraBCモードは、BVをMVとして使用する現在のピクチャ内の「動き補償」として考えることができる。
【0113】
現在のブロックについて、IntraBCモードが現在のブロックで可能であるか否かを示すフラグを、ビットストリームで最初に送信することができる。その後、現在のブロックがIntraBCモードでコード化される場合は、現在のBVから予測BVをサブトラクションすることで、BV差を導出できる。BV差値の水平成分及び垂直成分に応じて、BV差を複数のタイプ(例えば、4タイプ)に分類することができる。タイプ情報をビットストリームにシグナリングすることができ、その後、2つの(水平及び垂直)成分のBV差値をシグナリングすることができる。
【0114】
IntraBCモードはスクリーンコンテンツなどの所与のコンテンツをコーディングするために例外的に有効であり得る。一例では、IntraBCモードはハードウェア設計への課題をも導入する。ハードウェア設計を促進するために、以下の修正を採用することができる。IntraBCモードが許容されると、ループフィルタは無効となる。ループフィルタは、DBF及び/又は、制約付き指向性増強フィルタ(constrained directional enhancement filter、「CDEF」)及び/又は、ループレストレーション(loop restoration、「LR」)フィルタ等を含むことができる。ループフィルタを無効にすることで、IntraBCモードを可能にするため専用の第2のピクチャバッファを避けることができる。
【0115】
並列デコーディングを促進するためには、予測は制限されたエリアを超えることはできない。一実施形態では、1つのスーパーブロック又はCTUについて、当該スーパーブロック(又はCTU)の左上位置の座標が(x0,y0)である場合は、垂直座標がy0より小さく、水平座標がx0+2(y0-y)より小さい場合にのみ、IntraBCモードにより位置(x,y)での予測にアクセスできる。
【0116】
ハードウェア書き戻し遅延を許容するために、IntraBC予測が直近の再構成エリアにアクセスすることができない。制限された直近の再構成エリアは、1からn個のスーパーブロック(又はCTU)であり得る。このように、上述した修正に加えて、スーパーブロック(又はCTU)の左上位置の座標が(x0,y0)である場合は、垂直座標がy0より小さく、水平座標がx0+2(y0-y)-Dより小さい場合に、IntraBCモードにより位置(x,y)での予測にアクセスできる。ここで、DはIntraBCモードのために制限された直近の再構成エリアを示す。DがAVMで指定された等の2つのスーパーブロックであるときの予測エリアが
図7に示される。
【0117】
図7は、本開示の実施形態に係る1つのスーパーブロック予測におけるIntraBCモードのための予測エリアの一例を示す。四角形それぞれは、スーパーブロック又はCTUを表すことができる。グレーの影付きエリアは、例えば、再構成中のそれぞれの現在のスーパーブロック(710)にとってIBCモードでアクセス可能な、許可された検索エリアを含むことができる。黒の影付きエリアは、例えばDが2つのスーパーブロック(又は2つのCTU)を含むときに、再構成中のそれぞれの現在のスーパーブロック(710)にとってIBCモードでアクセスできない、許可されていない検索エリアを含むことができる。白の影無しエリアは、コード化すべき(例えば再構成すべき)スーパーブロックを含む。一例では、現在のスーパーブロック(710(1))について、直近の再構成エリアは、現在のスーパーブロック(710(1))の左にある2つのスーパーブロック(721)-(722)を含む(例えば、Dは2つのスーパーブロック)。スーパーブロック(721)-(722)は、現在のスーパーブロック(710(1))にとってアクセス可能ではない。許可された検索エリア(730)は現在のスーパーブロック(710(1))にとってアクセス可能である。
【0118】
AV1において等のローカル参照範囲を持つIntraBCモードを以下で説明する。IntraBCモードは、AV1コーデックにおける等のローカル参照範囲で使用することができる。一実施形態では、
図8、9A-9Bに示される等の64×64ベース適用のメモリ再利用機構で、「オンチップ」メモリ(RSMと呼ぶ)の1つのスーパーブロック(SB)サイズを割り当てて、参照サンプルを記憶する。例えば、AV1におけるIntraBCモードの設計に加えて、以下の変更(1)-(3)を行う。(1)IntraBCモードにおける最大ブロックサイズを64×64に限定できる。(2)参照ブロック及び現在のブロックは同一SB行にある。一例では、参照ブロックを現在のSB又は現在のSBの左にある1つのSBにのみ置くことができる。(3)64×64ユニットの参照サンプルメモリのいずれかが、現在のSBから再構成サンプルで更新を開始すると、64×64ユニット全体に(例えば、左SBから)過去に記憶した参照サンプルは、IntraBCモードの予測サンプル生成において使用不可としてマーキングする。
【0119】
図8は、本開示の実施形態に係る、現在のピクチャ内のCTU又はSB(例えば、現在のSB(801))のデコード中に行われる、RSMにおけるメモリ再利用機構又はメモリ更新機構の例を示す。行1-2は、RSMの観点からの例を示す。行1は状態(0)でのRSM(810)を示す。行2は状態(1)-(4)でのRSM(810)を示す。行3は、状態(0)-(4)での現在のピクチャにおける、コード化されている最中の現在のSB(801)及び左隣のSB(802)等のピクチャの観点からの例を示す。SBルートで四分木分割を使用することができる。SBは4つの領域を含むことができる。一例では、4つの領域それぞれのサイズは64×64である。一例では、現在のSB(801)は4つの領域4-7を含み、左隣のSB(802)は4つの領域0-3を含む。
【0120】
図8を参照すると、各SBのコーディング開始時(状態(0))で、RSMは過去にコード化したSB(例えば、左隣のSB(802))のサンプルを記憶する。現在のブロックが現在のSB(801)内の4つの領域(例えば、4つの64×64領域)のうちの1つにある場合は(例えば、状態(1)-状態(4)のうちの1つに示されるように)、RSM(810)における対応する領域を空とし、現在のコーディング領域(例えば現在の64×64コーディング領域)のサンプルを記憶するために使用することができる。このように、状態(1)から状態(4)等に示されるように、現在のSB(801)内のサンプルによって、RSM(810)内のサンプルを徐々に更新することができる。
【0121】
状態(1)を参照すると、現在のブロック(811)は現在のSB(801)内の領域4にあり、RSM(810)内の対応する領域(例えば、左上領域)を空にして、コード化の最中の現在の領域である領域4のサンプルを記憶するために使用することができる。行3を参照すると、BV(例えば、エンコードされたBV又はデコードされたBV)(821)は、現在のブロック(811)から、現在のブロック(811)の検索範囲841(検索範囲(841)の境界が点線で示されている)内にある参照ブロック(831)を指すことができる。行2を参照すると、RSM(810)内の対応するオフセット(851)は、現在のブロック(811)から、RSM(810)内の参照ブロック(831)を指すことができる。状態(1)では、検索範囲(841)は左隣のSB(802)の領域1-3と、領域4内のコード化されたサブ領域(861)とを含む。検索範囲(841)は左隣のSB(802)の領域0を含まない。
【0122】
状態(2)を参照すると、現在のブロック(812)は現在のSB(801)内の領域5にあり、RSM(810)内の対応する領域(例えば、右上領域)を空にして、コード化の最中の現在の領域である領域5のサンプルを記憶するために使用することができる。BV(822)は、現在のブロック(812)から、現在のブロック(812)の検索範囲842(検索範囲(842)の境界が点線で示されている)内にある参照ブロック(832)を指すことができる。RSM(810)内の対応するオフセット(852)は、現在のブロック(812)から、RSM(810)内の参照ブロック(832)を指すことができる。状態(2)では、検索範囲(842)は(i)左隣のSB(802)の領域2-3と、(ii)現在のSB(801)にある領域4及び領域5内のコード化されたサブ領域(862)を含む。検索範囲(842)は左隣のSB(802)の領域0-1を含まない。
【0123】
状態(3)を参照すると、現在のブロック(813)は現在のSB(801)内の領域6にあり、RSM(810)内の対応する領域(例えば、左下領域)を空にして、コード化の最中の現在の領域である領域6のサンプルを記憶するために使用することができる。BV(823)は、現在のブロック(813)から、現在のブロック(813)の検索範囲843(検索範囲(843)の境界が点線で示されている)内にある参照ブロック(833)を指すことができる。RSM(810)内の対応するオフセット(853)は、現在のブロック(813)から、RSM(810)内の参照ブロック(833)を指すことができる。状態(3)では、検索範囲(843)は(i)左隣のSB(802)の領域3と、(ii)現在のSB(801)にある領域4-5と、領域6内のコード化されたサブ領域(863)とを含む。検索範囲(843)は左隣のSB(802)の領域0-2を含まない。
【0124】
状態(4)を参照すると、現在のブロック(814)は現在のSB(801)内の領域7にあり、RSM(810)内の対応する領域(例えば、右下領域)を空にして、コード化の最中の現在の領域である領域7のサンプルを記憶するために使用することができる。BV(824)は、現在のブロック(814)から、現在のブロック(814)の検索範囲844(検索範囲(844)の境界が点線で示されている)内にある参照ブロック(834)を指すことができる。RSM(810)内の対応するオフセット(854)は、現在のブロック(814)から、RSM(810)内の参照ブロック(834)を指すことができる。状態(4)では、検索範囲(844)は現在のSB(801)にある領域4-6と、領域7内のコード化されたサブ領域(864)とを含む。検索範囲(844)は左隣のSB(802)の領域0-3を含まない。
【0125】
現在のSB(801)が完全にコード化されると(状態(4))、RSM(810)全体を現在のSB(801)のサンプル(例えば、全てのサンプル)で埋めることができる。
【0126】
図8に示される例では、最初に四分木分割を用いて現在のSB(801)を分割する。4つの64×64領域のコーディング順序は、左上領域(例えば、領域4)、右上領域(例えば、領域5)、左下領域(例えば、領域6)、右下領域(例えば、領域7)、であり、左上領域を最初にコード化し、左上領域と右上領域と左下領域をコード化した後に右下領域をコード化する。
図9Bに示される等の他のブロック分割決定では、RSM更新処理が、例えば、RSMの各領域を現在のSB内の再構成サンプルを用いて置換する等、同様であり得る。
【0127】
図9A-9Bは、本開示の実施形態に係る、現在のSB(又はCTU)(901)のデコード中に行われるRSMにおけるメモリ更新処理の例を示し、(a)SBルートでの水平分割(
図9A)又は(b)SBルートでの垂直分割(
図9B)で行われる。
【0128】
図9A-9Bでは、左隣のSB(902)は既にコード化されている。現在のSB(901)がコード化(例えば、エンコード又はデコード)の最中である。一例では、現在のSB(901)及び左隣のSB(902)それぞれのサイズは128×128である。現在のSB(901)及び左隣のSB(902)それぞれは、サイズが64×64の4つの領域(例えば、4つのブロック)を含むことができる。現在のSB(901)はブロック4-7を含むことができ、左隣のSB(902)はブロック0-3を含むことができる。
【0129】
図9Aでは、SBルートでの水平分割が行われ、その後垂直分割が行われる。現在のSB(901)は4つのブロック、即ち、左上のブロック(例えば、ブロック4)、左下のブロック(例えば、ブロック6)、右上のブロック(例えば、ブロック5)、右下のブロック(例えば、ブロック7)、を含むことができる。現在のSB(901)のコーディング順序は、左上のブロック(状態1)、右上のブロック(状態2)、左下のブロック(状態3)、右下のブロック(状態4)であり得る。
【0130】
図9Bでは、SBルートでの垂直分割が行われ、その後水平分割が行われる。現在のSB(901)のコーディング順序は、左上のブロック(状態1)、左下のブロック(状態2)、右上のブロック(状態3)、右下のブロック(状態4)であり得る。
【0131】
図9A-9Bを参照すると、現在のSB(901)に対する現在のコーディングブロックの相対位置に応じて、以下が適用されてよい。
【0132】
1.
図9A-9Bの状態(1)を参照すると、現在のブロック(931)が現在のSB(901)の左上のブロック(例えば、ブロック4)(例えば、64×64ブロック)に該当する場合は、現在のブロック(931)は、現在のSB(901)のブロック(961)内の既に再構成されたサンプルに加えて、左のSB(902)の右下のブロック3(例えば、64×64ブロック)と、左下のブロック2(例えば、64×64ブロック)と、右上のブロック1(例えば、64×64ブロック)との内の参照サンプルを参照することができる。現在のブロック(931)の検索範囲は、ブロック1-3とブロック(961)とを含むことができる。
【0133】
2.
図9Aの状態(2)又は
図9Bの状態(3)を参照すると、現在のブロック(932)が現在のSB(901)の右上のブロック5(例えば、64×64ブロック)に該当する場合は、現在のSB(901)の既に再構成されたサンプルに加えて、(a)現在のSB(901)に対して(0,64)の相対位置にある輝度サンプルが再構成されていない場合は、
図9Aの状態(2)等に示されるように、現在のブロック(932)は、左のSB(902)の左下のブロック2(例えば、64×64ブロック)と右下のブロック3(例えば、64×64 ブロック)との内の参照サンプルを参照することができ、現在のブロック(932)の検索範囲は、ブロック2-4とブロック(962)とを含むことができる。(b)そうではなく、左上の隅(例えば、現在のSB(901)に対して(0,64)の相対位置)にある輝度サンプルの再構成が終わっている場合は、
図9Bの状態(3)等に示されるように、現在のブロック(932)は、左のSB(902)の右下のブロック3(例えば、64×64ブロック)内の参照サンプルを参照することができ、現在のブロック(932)の検索範囲は、ブロック3,4,6及びブロック(962)を含むことができる。
【0134】
3.
図9Aの状態(3)又は
図9Bの状態(2)を参照すると、現在のブロック(933)が現在のSB(901)の左下のブロックに該当する場合は、現在のSB(901)の既に再構成されたサンプルに加えて、(a)現在のSB(901)に対して相対輝度位置(64,0)が未だ再構成されていない場合は、
図9Bの状態(2)等に示されるように、現在のブロック(933)は、左のSB(902)の右上のブロック1(例えば、64×64ブロック)と右下のブロック3(例えば、64×64ブロック)との内の参照サンプルを参照することができ、現在のブロック(933)の検索範囲は、ブロック1,3,4とブロック(963)とを含むことができる。(b)そうではなく、ブロック5の左上の隅(例えば、現在のSB(901)に対して(64,0)の相対位置)にある輝度サンプルの再構成が終わっている場合は、
図9Aの状態(3)等に示されるように、現在のブロック(933)は、左のSB(902)の右下のブロック3(例えば、64×64ブロック)内の参照サンプルを参照することができ、現在のブロック(933)の検索範囲は、ブロック3-5及びブロック(963)を含むことができる。
【0135】
4.現在のブロック(934)が現在のSB(901)の右下のブロック7に該当する場合は、現在のブロック(934)は、ブロック4-6及びブロック(964)内の既に再構成されたサンプル等、現在のSB(901)内の既に再構成されたサンプルのみを参照することができ、現在のブロック(934)の検索範囲はブロック4-6及びブロック(964)を含むことができる。
【0136】
図10は、本開示の実施形態に係るイントラテンプレートマッチング予測(intra template matching prediction、「IntraTMP」)モードの例を示す。ECMソフトウェア等の一実施形態では、IntraTMPは、現在のフレーム(又は現在のピクチャ)の再構成された部分から最良の予測ブロック(1021)をコピーすることができる空間的イントラ予測モードであり、最良の予測ブロック(1021)のテンプレート(例えば、L字型テンプレート)(1020)は、現在のブロック(1011)の現在のテンプレート(1010)に一致することができる。事前に定められた検索範囲に対して、エンコーダは、現在のフレームの再構成された部分において、現在のテンプレート(1010)に最も類似するテンプレート(1020)を検索することができ、対応するブロック(1021)を予測ブロックとして使用することができる。エンコーダは、IntraTMPモードの使用をシグナリングすることができ、同一の予測動作をデコーダ側で行うことができる。
【0137】
現在のブロック(1011)のL字型の因果近隣等の現在のテンプレート(1010)と事前に定められた検索エリア内の別のブロック(例えば、(1021))のテンプレート(例えば、(1020))とをマッチングすることで、予測信号を生成することができる。
図10に示される例示的な検索エリアは、複数のCTU(又はSB)を含むことができる。
図10を参照すると、当該検索エリアは現在のCTU R1(例えば、現在のCTU R1の一部)と、左上のCTU R2と、上のCTU R3と、左のCTU R4と、を含むことができる。費用関数は、差分の絶対値の和(sum of absolute differences、「SAD」)等の任意の適切な費用関数を含むことができる。
【0138】
各領域内で、デコーダは、現在のテンプレート(1010)に対して最小費用(例えば、最小SAD)を有するテンプレート(例えば、(1020))を検索することができ、また、最小SADを有するテンプレートに関連付けられたブロック(例えば、(1021))を予測ブロックとして使用することができる。
【0139】
(SearchRange_w,SearchRange_h)によって示される領域の大きさは、1画素あたりのSAD比較数が固定するように、ブロック寸法(BlkW,BlkH)に比例するように以下のように設定できる。
SearchRange_w=a*BlkW 式(3)
SearchRange_h=a*BlkH 式(4)
【0140】
パラメータ「a」はゲインと複雑性との間のトレードオフを制御する定数であり得る。一例では、「a」は5である。
【0141】
イントラテンプレートマッチングツールを、幅及び高さ64以下のサイズ等の所与のサイズのCUについて可能にできる。IntraTMPモードの最大CUサイズは、設定可能であり得る。
【0142】
デコーダ側のイントラモード導出(decoder-side intra mode derivation、「DIMD」)が現在のCUに対して用いられないときは、例えばCUレベルで専用のフラグを介してIntraTMPモードをシグナリングすることができる。
【0143】
デュアルツリーブロック構造の文脈では、彩度IBCモードを可能にできる。VVCにおいて等の実施形態では、コーディングツリータイプが彩度分木(例えば、DUAL_TREE_CHORMA)等のデュアルツリータイプであるときは、IBCモードは、輝度コーディングブロックのためだけに適用され、彩度イントラコーディングブロックは他のイントラ予測モードを用いるだけでよく、彩度分木(例えば、DUAL_TREE_CHORMA)のためのイントラ彩度コーディングブロックのコーディング効率を限定する。いくつかの例では、彩度IBCモードは彩度分木ケースにおいて可能にできる。
【0144】
一実施形態では、同一スライス又は同一タイル内の全ての再構成された参照サンプルをIBC予測に使用することができる。様々な例では、
図4-8,9A,9Bで説明される等のように、上述した参照エリア内のサンプルのサブセットのみを許可するために、より厳しい制限が適用される。
【0145】
例えば、CTUサイズが輝度サンプルにおいて128×128であるとき、現在のCTUの再構成された部分に加えて、現在の行の上にある2つのCTU行とともに複数の左のCTU(例えば、現在のCTUと同じ行にある過去にコード化されたCTU)を参照することができる。IBCモードのための検索範囲は、現在のCTUの再構成された部分と、複数の左のCTUと、現在の行の上にある2つのCTU行と、を含むことができる。
【0146】
別の例では、CTUサイズが輝度サンプルにおいて256×256であるとき、現在のCTUの再構成された部分に加えて、現在の行の上にある1つのCTU行とともに複数の左のCTU(例えば、現在のCTUと同じ行にある過去にコード化されたCTU)を参照することができる。IBCモードのための検索範囲は、現在のCTUの再構成された部分と、複数の左のCTUと、現在の行の上にある1つのCTU行と、を含むことができる。
【0147】
上記2つのケースの違いは、IBC予測のための参照サンプルを記憶するために用いられるメモリが大体同じであることを確認できる。
【0148】
いくつかの実施形態では、CSTケースで彩度IBCモードを用いるとき、彩度コーディングブロックに対して、対応する輝度サンプルが同一コーディングブロックサイズ及び同一位置に揃わないことがある。例えば、対応する輝度サンプルが彩度コーディングブロックとコロケーションし、複数の輝度ブロックからの輝度サンプルを含むことがある。このように、彩度BVの検証は輝度BVの検証と同じでないことがある。いくつかの例では、CSTケースに対して彩度BVが有効かを判断する効率的方法が望まれる。本開示は、彩度コーディングブロックのための彩度BVの検証のように、別々のイントラ輝度/彩度コーディングツリー構造(例えば、イントラデュアルツリー)が使用される場合に、彩度成分上でIBCモードを可能とすること、に関する。例えば、本開示で与えられる効率的方法は、彩度ブロックの彩度BVが彩度分木ケースで有効かを決定し、(例えば、
図11-15に説明される)当該方法は効率的であり得、彩度分木ケースにおけるコーディング効率を向上できる。
【0149】
一実施形態では、ブロックのBVの検証は2つの基準、即ち、a)BVが指す参照ブロックの再構成が終わっているか、及び、b)IBC予測またはIBCモードに対して参照ブロックを許可できるか、を含む。両基準を満たすとき、例えば、BVが指す参照ブロックの再構成が終わっていて、且つ、当該参照ブロックがIBCモードに対して許可されているときは、BVは有効なBVである。そうでなければ、BVは無効なBVである。
【0150】
第2の基準、例えばIBCモードに対して参照ブロックを許可できること、は参照ブロックが当該ブロックの許可されたIBC参照範囲内にあることを含むことができる。当該ブロックの許可されたIBC参照範囲は、当該ブロックを含む現在のピクチャ内の任意の適切なコード化されたエリア(例えば、再構成されたエリア)を含むことができる。本開示では、ブロックの許可されたIBC参照範囲の様々な例を説明する。様々な例には、(i)
図4に示されるようなHEVCで用いられる等の現在のCU(401)の2つのCTU(400(1)-400(2))を除くグレーの影付きエリアと、(ii)
図4に示されるようなVVCで用いられる等の現在のCTU(400(4))と左隣のCTU(400(3))を含む点線エリア(415)内のコード化されたサンプル(例えば、再構成されたサンプル)と、(iii)VVCに用いられ且つ
図5-6に示される等の参照エリアであって、固定メモリサイズのRSMとRSM更新処理が用いられるものと、(iv)AV1において用いられ且つ
図7に示される許可された検索エリアと、(v)AV1で用いられる等の検索範囲(例えば、
図8の(841)-(844)のうちの1つ)又はAV1で用いられ得る
図9A-9Bに説明される検索範囲のうちの1つと、(vi)
図10で説明される等のIntraTMPモードで事前に定められた検索範囲と、(vii)本開示で説明された検索範囲等のIBCモード、IntraBCモード、又はIntraTMPモードのための任意の適切な検索範囲と、等がある。
【0151】
当該ブロックの許可されたIBC参照範囲は、参照範囲、参照エリア、検索範囲、及び/又は、検索エリア等とも呼ぶことができる。いくつかの例では、当該ブロックの許可されたIBC参照範囲は、許可されたIBC参照範囲が例えば現在のCTU等に制限されるときには、ローカル参照範囲と呼ぶ。
【0152】
一実施形態では、コード化の最中(例えば、再構成中)のピクチャ又は現在のピクチャ(1101)内の領域(又はコーディング領域)(1102)は、輝度コーディング領域(1120)及び彩度コーディング領域(1110)を含む。彩度コーディング領域(1110)は輝度コーディング領域(1120)とコロケーションしている、例えば、彩度コーディング領域(1110)及び輝度コーディング領域(1120)は、現在のピクチャ(1101)内の同一物理領域(1102)に対応する。彩度コーディング領域(1110)及び輝度コーディング領域(1120)の寸法(例えば、幅及び/又は高さ)は、表1に指定される等の変数SubWidthC及びSubHeightCにより関連することができる。変数SubWidthC及びSubHeightCは、表1に指定される等の4:2:0及び4:2:2等の彩度フォーマットサンプリング構造(又は彩度サンプリングフォーマット)に依存することができる。
図11に示される例では、彩度フォーマットサンプリング構造は4:2:0であり、彩度コーディング領域(1110)の幅及び高さは、それぞれ輝度コーディング領域(1120)の半分の幅及び高さである。
【0153】
コーディングツリータイプは、VVCで用いられる等のデュアルツリータイプであり得る。領域(1102)のデュアルツリータイプにおいて、輝度コーディング領域(1120)と彩度コーディング領域(1110)とを2つの別々のコーディングツリー構造を用いて分割することができる。一例では、IBCモード、IntraBCモード、及び/又は、IntraTMPモード等を使って、領域(1102)をピクチャ(1101)の再構成されたサンプルを用いてコード化する。一例では、ピクチャ(1101)はイントラピクチャ(Iピクチャ)である。輝度コーディング領域(1120)と彩度コーディング領域(1110)とを別々のイントラ輝度/彩度コーディングツリー構造(例えば、イントラデュアルツリー)を用いて分割することができる。
【0154】
輝度コーディング領域(1120)を任意の適切なコーディングツリー構造を用いて分割することができる。彩度コーディング領域(1110)を任意の適切なコーディングツリー構造を用いて分割することができる。
図11に示される例では、彩度コーディング領域(1110)は、例えば二分木によって、彩度ブロック(1111)-(1112)に分割される。彩度ブロック(1111)はコード化すべき(例えば、エンコードすべき又は再構成すべき)ブロックであり、現在の彩度ブロックと呼ぶことができる。一例では、彩度ブロック(1112)は現在の彩度ブロック(1111)がコード化された後にコード化すべきブロックである。
図11に示される例では、輝度コーディング領域(1120)が、例えば四分木分割及び/又は二分木、等により、輝度ブロック(1121)-(1129)に分割される。例えば、輝度コーディング領域(1120)は四分木分割を用いて4つのブロックに分割される。輝度コーディング領域(1120)の左上のブロックが二分木を用いて輝度ブロック(1121)-(1122)に更に分割される。輝度コーディング領域(1120)の右上のブロックが二分木を用いて輝度ブロック(1127)-(1128)に更に分割される。輝度コーディング領域(1120)の左下のブロックが四分木分割を用いて輝度ブロック(1123)-(1126)に更に分割される。輝度コーディング領域(1120)の右下のブロックは分割されなく、輝度ブロック(1129)である。
【0155】
一実施形態では、領域(1102)は、ピクチャ(1101)においてコード化の最中(例えば、再構成中)である現在のCTUであり、輝度コーディング領域(1120)は、現在のCTU(1102)内の輝度コーディングツリーブロック(luma coding tree block、「CTB」)であり、彩度コーディング領域(1110)は、現在のCTU(1102)内の彩度CTBである。輝度CTB及び彩度CTBは、上述したもの等の別々のコーディングツリー構造を用いて分割することができる。
【0156】
一実施形態では、ピクチャ(1101)においてコード化の最中(例えば、再構成中)である現在のCTUは、例えば四分木分割を用いて4つのコーディングユニットにする等、コーディングユニットに分割することができる。領域(1102)は4つのコーディングユニットのうちの1つのコーディングユニットであり得る。当該コーディングユニット(又は領域(1102))内の輝度コーディング領域(1120)及び彩度コーディング領域(1110)は、上述したもの等の別々のコーディングツリー構造を用いて分割することができる。
【0157】
彩度コーディング領域(1110)内の彩度ブロック(1111)の彩度ブロックベクトル(BV)(1113)を決定することができる。現在の彩度ブロック(1111)を、IBCモード、IntraBCモード、又はIntraTMPモードを用いてコード化することができる。彩度BV(1113)は、ピクチャ(1101)内の彩度参照ブロック(1131)を示すことができる。現在の彩度ブロック(1111)のコロケーションされた輝度サンプルと、彩度参照ブロック(1131)のコロケーションされた輝度サンプルと、に基づいて、彩度BV(1113)が有効かを決定することができる。
【0158】
領域(1102)に対してデュアルツリーを用いるときは、現在の彩度ブロック(1111)を、輝度コーディング領域(1120)うちの1つ以上の輝度ブロックにコロケーションすることができる。現在の彩度ブロック(1111)にコロケーションされる輝度ブロックの数は、領域(1102)を分割するために用いられるコーディングツリー構造に依存することができる。
図11を参照すると、現在の彩度ブロック(1111)は、輝度ブロック(1121)-(1126)にコロケーションされ得る。輝度コーディング領域(1120)内の輝度領域(1141)は、輝度ブロック(1121)-(1126)を含み、現在の彩度ブロック(1111)にコロケーションされる。現在の彩度ブロック(1111)のコロケーションされた輝度サンプルは、輝度領域(1141)(又は輝度ブロック(1121)-(1126))内の輝度サンプルを含むことができる。
【0159】
彩度参照ブロック(1131)は、輝度領域(1132)とコロケーションすることができ、例えば、彩度参照ブロック(1131)及び輝度領域(1132)は、現在のピクチャ(1101)における同一の物理領域(1103)に対応する。領域(1103)は、彩度参照ブロック(1131)及び輝度領域(1132)を含むことができる。彩度参照ブロック(1131)のコロケーションされた輝度サンプルは、輝度領域(1132)内の輝度サンプルを含むことができる。輝度領域(1132)は、例えば、(i)輝度領域(1132)、又は、(ii)輝度領域(1132)を含む輝度CTU、を分割するために用いられるコーディングツリー構造に応じて、1つ以上の輝度ブロックを含むことができる。
【0160】
一実施形態では、現在の彩度ブロック(1111)をコード化する前に、輝度コーディング領域(1120)及び輝度領域(1132)内の輝度サンプルは既にコード化されている(例えば、再構成されている)。
【0161】
彩度BV(1113)が有効であるとの判断に応じて、彩度BV(1113)が示す彩度参照ブロック(1131)に基づいて、現在の彩度ブロック(1111)をコード化(例えば、エンコードまたは再構成)することができる。一例では、彩度BV(1113)が無効である場合は、彩度BV(1113)を補正して、有効な彩度BVを得ることができる(例えば、前述した倍率で補正されたRSMの幅及び高さでのモジュロ演算により方向ごとに絶対オフセットを除去することにより)。現在の彩度ブロック(1111)を再構成するために有効な彩度BVを使用することができる。
【0162】
本開示の一実施形態によると、2つの基準、即ち、(i)彩度参照ブロック(1131)のコロケーションされた輝度サンプル(例えば、輝度領域(1132)内の輝度サンプル)が、現在の彩度ブロック(1111)のコロケーションされた輝度サンプルを含む輝度領域(1141)の許可されたIBC参照範囲内にあること、及び、(ii)彩度参照ブロック(1131)内の彩度サンプルが既に再構成されたこと、を満たす場合に、彩度BVが有効であると判断する。
図11に示すもの等の例では、第1の基準は、輝度領域(1141)がIBCモード、IntraBCモード、IntraTMPモード、又は、類似のモードでコード化すべき輝度ブロックであった場合は、輝度領域(1132)内の輝度サンプルが、輝度領域(1141)の許可されたIBC参照範囲内にあること、を要求する。輝度領域(1141)の許可されたIBC参照範囲の例は、
図4-8,9A-9B,10において等、本開示で説明されている。
【0163】
一実施形態では、許可されたIBC参照範囲は、現在のCTU及び/又は1つ以上の過去に再構成されたCTU内の再構成された輝度サンプルを含む。現在のCTUは領域(1102)を含む。
【0164】
一実施形態では、彩度BV(1113)が有効でない場合は、彩度BV(1113)を補正して、有効な彩度BVを得ることができる。有効な彩度BVが示す別の彩度参照ブロックに基づいて、現在の彩度ブロック(1111)をコード化する(例えば、エンコードする又は再構成する)ことができる。例えば、(i)当該別の彩度参照ブロックのコロケーションされた輝度サンプルは輝度領域(1141)の許可されたIBC参照範囲内にあり、及び、(ii)当該別の彩度参照ブロック内の彩度サンプルは既に再構成された。
【0165】
一実施形態では、ビットストリームから(例えば、ビットストリーム内のコーディング情報から)明示的に彩度BV(1113)をデコードすることで、彩度BV(1113)を決定することができ、これはインター予測で用いられMVのデコーディングと類似する。彩度BV(1113)の予測及びコーディングは、インター予測処理におけるMV予測及びコーディングを再利用することができる。
【0166】
一実施形態では、例えば、IntraTMPモード、導出されたブロックベクトルモード、又は、ダイレクトブロックベクトル(direct block vector、「DBV」)モード等を潜在的に用いて彩度BV(1113)を導出することで、彩度BV(1113)を決定することができる。
【0167】
ダイレクトブロックベクトル(DBV)モードの例を以下で説明する。イントラスライスで彩度デュアルツリーがアクティブ状態であるとき、ダイレクトブロックベクトル(DBV)モードとしてコード化された彩度CUにとって、輝度成分の複数の位置(例えば5つの位置)での輝度ブロックのうちの1つはIBCモード又はIntraTmpモードでコード化され、ブロックベクトル(例えば、輝度BV bvL)を使用して、彩度CBのための彩度BV(bvC)を導出する。テンプレートマッチングに従って、ブロックベクトルスケーリング処理を決定することができる。
【0168】
一例では、ビットストリーム内のコーディング情報は、輝度コーディング領域(1120)と彩度コーディング領域(1110)とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグ(例えば、sps_qtbtt_dual_tree_intra_flag)を含む。シーケンスパラメータセット(sequence parameter set、「SPS」)におけるシーケンスレベル等の任意の適切なレベルで、当該フラグをシグナリングすることができる。一例では、1と等しいフラグsps_qtbtt_dual_tree_intra_flagは、Iスライスに対して、各CTUが64×64輝度サンプルを有するコーディングユニットに潜在的四分木分割を用いて分割されること、を指定し、これらのコーディングユニットは、輝度成分と彩度成分とのための2つの別々のコーディングツリーシンタックス構造のルートである。0と等しいフラグsps_qtbtt_dual_tree_intra_flagは、Iスライスに対して別々のコーディングツリーシンタックス構造を使用しないこと、を指定する。sps_qtbtt_dual_tree_intra_flagが存在しないときは、0と等しいと推定する。
【0169】
本開示の別の実施形態によると、(i)彩度参照ブロック(1131)内の彩度サンプルが既に再構成されたか、及び、(ii)彩度参照ブロック(1131)が現在の彩度ブロック(1111)の許可されたIBC参照範囲内にあるか、に基づいて、彩度BV(1113)が有効であるかを判断することができる。一実施形態では、現在の彩度ブロック(1111)の許可されたIBC参照範囲は、対応する輝度領域の許可されたIBC参照範囲からスケーリングされる。対応する輝度領域は、現在の彩度ブロック(1111)のコロケーションされた輝度サンプル(例えば、輝度領域(1141)内の輝度サンプル)を含むことができる。一例では、対応する輝度領域は、輝度領域(1141)である。
【0170】
現在の彩度ブロック(1111)の許可されたIBC参照範囲と輝度領域(1141)の許可されたIBC参照範囲との倍率は、彩度フォーマットサンプリング構造に依存することができる。
【0171】
倍率は、水平倍率と垂直倍率とを含むことができる。彩度フォーマットサンプリング構造が4:2:0であることに応じて、水平倍率は2、垂直倍率は2である。例えば、彩度ケースで用いられる場合は、輝度幅と輝度高さを倍率2で縮小する。4:2:0フォーマットでは、現在の彩度ブロック(1111)の許可されたIBC参照範囲の水平方向の寸法(例えば、水平寸法)は、輝度領域(1141)の許可されたIBC参照範囲の水平寸法の1/2であり、現在の彩度ブロック(1111)の許可されたIBC参照範囲の垂直方向の寸法(例えば、垂直寸法)は、輝度領域(1141)の許可されたIBC参照範囲の垂直寸法の1/2である。輝度領域(1141)の許可されたIBC参照範囲の形状は、
図4に示される等の四角形又は
図6,8,9A,及び9Bに示される等の不規則な形状など、任意の適切な形状をとることができる。
【0172】
彩度フォーマットサンプリング構造が4:2:2であることに応じて、水平倍率は2、垂直倍率は1である。例えば、4:2:2フォーマットでは、輝度幅を倍率2で縮小し、輝度高さは彩度ケースと同一のままとすることができる。彩度フォーマットサンプリング構造が4:4:4であることに応じて、水平倍率は1、垂直倍率は1である。
【0173】
一実施形態では、現在の彩度ブロック(1111)の彩度BV(1113)が有効であるか判断するために、輝度ケース用に設計されたパラメータ(領域の幅及び/又は高さに関するパラメータ等)を、相応して彩度ケースにスケーリングすることができる。彩度チャネル又は成分について(例えば、U及びVチャネル)、上述した等のように、倍率は異なるディメンション(例えば、幅及び/又は高さ)において同一であっても異なってもよい。
【0174】
図12は、本開示の実施形態に係る処理(1200)の概要を示すフローチャートである。処理(1200)をビデオデコーダで使用することができる。様々な実施形態では、ビデオデコーダ(110)の機能を行う処理回路、及び、ビデオデコーダ(210)の機能を行う処理回路、等の処理回路によって、処理(1200)を実行する。いくつかの実施形態では、処理(1200)はソフトウェア命令に実装されるため、処理回路は、ソフトウェア命令を実行するとき、処理(1200)を実行する。処理(1200)は、(S1201)から開始し、(S1210)に進む。
【0175】
(S1210)では、ピクチャ(例えば、ピクチャ(1101))内の現在の領域(例えば、領域(1102))のビットストリームを受信する。再構成すべき現在の領域(例えば、(1102))は、輝度コーディング領域(例えば、(1120))及び彩度コーディング領域(例えば、(1110))を含む。ビットストリーム内のコーディング情報は、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されること、を示すことができる。一例では、ビットストリーム内のコーディング情報は、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグ(例えば、sps_qtbtt_dual_tree_intra_flag)を含む。
【0176】
一例では、現在の領域は再構成すべき現在のCTUであり、輝度コーディング領域は現在のCTU内の輝度コーディングツリーブロック(CTB)であり、彩度コーディング領域は現在のCTU内の彩度CTBである。
【0177】
別の例では、ピクチャ内の現在のCTUは四分木分割を用いて4つのコーディングユニットに分割され、現在の領域は4つのコーディングユニットのうちの1つのコーディングユニットである。
【0178】
(S1220)では、
図11で説明された等のように、彩度コーディング領域(例えば、(1110))内の再構成中である現在の彩度ブロック(例えば、(1111))の彩度ブロックベクトル(BV)(例えば、(1113))を決定することができる。彩度BVは、ピクチャ(例えば、(1101))内の彩度参照ブロック(例えば、(1131))を示すことができる。
【0179】
一例では、BVコーディングは、インター予測のために規定された処理を採用するが、候補リスト構成のためにより単純な規則を使用する。一例では、輝度ブロックのBVからIBC BVを導出することができる。
【0180】
一例では、現在の彩度ブロックは、(i)IBCモード、(ii)IntraTMPモード、及び(iii)DBVモード、のうちの1つで予測される。
【0181】
彩度BVを明示的にデコードすることで、例えばコーディング情報から、彩度BVを決定することができる。一例では、現在の彩度ブロックがIBCモードで予測されることに応じて、彩度BVをコーディング情報から明示的にデコードする。IntraTMPモード、DBVモード、又は他のモードを用いる等、彩度BVを潜在的に導出することで、彩度BVを決定することができる。一例では、現在の彩度ブロックがIntraTMPモード又はDBVモードで予測されることに応じて、IntraTMPモード又はDBVモードをそれぞれ用いて彩度BVを導出する。
【0182】
上記方法は、明示的にデコードされた彩度BVの有効性に適用できるだけでなく、IntraTMPモード又はDBVモード等の他の導出されたBVモードに適用することもできる。
【0183】
(S1230)では、
図11で説明された等のように、現在の彩度ブロックのコロケーションされた輝度サンプル及び彩度参照ブロックのコロケーションされた輝度サンプルに基づいて、彩度BVが有効であるかを判断することができる。
【0184】
一例では、彩度ブロックベクトルが有効であるかを判断するために、現在の彩度ブロックのコロケーションされた輝度サンプルを評価に使用することができる。一例では、当該コロケーションされた輝度サンプルは、許可されたIBC参照範囲内又は現在のCTU内にあるべきであり、参照彩度ブロックは再構成を終えているべきである。一例では、彩度参照ブロックのコロケーションされた輝度サンプルが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された領域内にあるかに基づいて、彩度BVが有効であるかを判断する。例えば、開示された方法は、現在の彩度ブロックのコロケーションされた輝度サンプル及び彩度参照ブロックのコロケーションされた輝度サンプルが許可された範囲内にあるかに基づいて、彩度BVが有効であるかを判断する。彩度BVが有効であるとの判断に応じて、開示された方法は、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックを再構成することができる。
【0185】
一実施形態では、(i)彩度参照ブロックのコロケーションされた輝度サンプルが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲にあること、及び、(ii)彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、彩度BVが有効であると判断する。
【0186】
一例では、許可されたIBC参照範囲は、現在のCTU及び/又は過去に再構成された1つ以上のCTU内の再構成された輝度サンプルを含む。現在のCTUは現在の領域を含む。
【0187】
(S1240)では、彩度BVが有効である場合は、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックを再構成することができる。
【0188】
その後、処理は(S1299)に進み、終了する。
【0189】
処理(1200)は、適切に適合することができる。処理(1200)のステップは、変更及び/又は省略することができる。追加ステップを追加することができる。任意の適切な実装順序を使用することができる。
【0190】
一例では、彩度BVが有効でない場合は、彩度BVを補正して、有効な彩度BVを得る。有効な彩度BVが示す別の彩度参照ブロックに基づいて、現在の彩度ブロックを再構成することができる。一例では、(i)当該別の彩度参照ブロックのコロケーションされた輝度サンプルが、輝度領域の許可されたIBC参照範囲にあり、及び、(ii)当該別の彩度参照ブロック内の彩度サンプルが既に再構成された。
【0191】
図13は、本開示の実施形態に係る処理(1300)の概要を示すフローチャートである。処理(1300)をビデオエンコーダで使用することができる。様々な実施形態では、ビデオエンコーダ(103)の機能を行う処理回路、及び、ビデオエンコーダ(303)の機能を行う処理回路、等の処理回路によって、処理(1300)を実行する。いくつかの実施形態では、処理(1300)はソフトウェア命令に実装されるため、処理回路は、ソフトウェア命令を実行するとき、処理(1300)を実行する。処理は、(S1301)から開始し、(S1310)に進む。
【0192】
(S1310)では、彩度コーディング領域(例えば、(1110))内の再構成中である現在の彩度ブロック(例えば、(1111))の彩度BV(例えば、(1113))を決定することができる。彩度BVは、ピクチャ(例えば、(1101))内の彩度参照ブロック(例えば、(1131))を示すことができる。ピクチャの現在の領域(例えば、(1102))内の輝度コーディング領域と彩度コーディング領域とを2つの別々のコーディングツリー構造を用いて分割することができる。
【0193】
(S1320)では、
図11-12で説明された等のように、現在の彩度ブロックのコロケーションされた輝度サンプル及び彩度参照ブロックのコロケーションされた輝度サンプルに基づいて、彩度BVが有効であるかを判断することができる。
【0194】
(S1330)では、彩度BVが有効であるとの判断に応じて、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックをエンコードすることができる。
【0195】
その後、処理は(S1399)に進み、終了する。
【0196】
処理(1300)は、適切に適合することができる。処理(1300)のステップは、変更及び/又は省略することができる。追加ステップを追加することができる。任意の適切な実装順序を使用することができる。
【0197】
一例では、エンコードされた彩度コーディング領域はビットストリームに含まれ、デコーダへ送られる。輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すように、コーディング情報をエンコードすることができる。一例では、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグをエンコードし、ビットストリームに含ませる。
【0198】
図14は、本開示の実施形態に係る処理(1400)の概要を示すフローチャートである。処理(1400)をビデオデコーダで使用することができる。様々な実施形態では、ビデオデコーダ(110)の機能を行う処理回路、及び、ビデオデコーダ(210)の機能を行う処理回路、等の処理回路によって、処理(1400)を実行する。いくつかの実施形態では、処理(1400)はソフトウェア命令に実装されるため、処理回路は、ソフトウェア命令を実行するとき、処理(1400)を実行する。処理(1400)は、(S1401)から開始し、(S1410)に進む。
【0199】
(S1410)では、ピクチャ(例えば、ピクチャ(1101))内の現在の領域(例えば、領域(1102))のビットストリームを受信する。現在の領域(例えば、(1102))は、輝度コーディング領域(例えば、(1120))及び彩度コーディング領域(例えば、(1110))を含む。ビットストリーム内のコーディング情報は、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されること、を示すことができる。一例では、ビットストリーム内のコーディング情報は、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグを含む。
【0200】
一例では、現在の領域は再構成中の現在のコーディングツリーユニット(CTU)であり、輝度コーディング領域は現在のCTU内の輝度コーディングツリーブロック(CTB)であり、彩度コーディング領域は現在のCTU内の彩度CTBである。
【0201】
別の例では、ピクチャ内の現在のCTUは四分木分割を用いて4つのコーディングユニットに分割され、現在の領域は4つのコーディングユニットのうちの1つのコーディングユニットである。
【0202】
(S1420)では、
図11-12で説明された等のように、彩度コーディング領域(例えば、(1110))内の現在の彩度ブロック(例えば、(1111))の彩度ブロックベクトル(BV)(例えば、(1113))を決定することができる。彩度BVは、ピクチャ(例えば、(1101))内の彩度参照ブロック(例えば、(1131))を示すことができる。
【0203】
彩度BVを明示的にデコードすることで、彩度BVを決定することができる。IntraTMPモード、DBVモード、又は他のモードを用いる等、彩度BVを潜在的に導出することで、彩度BVを決定することができる。
【0204】
(S1430)では、
図11で説明された等のように、(i)彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)彩度参照ブロックが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたIBC参照範囲からスケーリングされた現在の彩度ブロックの許可されたIBC参照範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断することができる。
【0205】
一例では、輝度ケース用に設計された(領域の幅又は高さに関する等の)全てのパラメータを彩度に相応してスケーリングすることで、彩度BVが有効であるかを判断することができる。例えば、開示された方法は、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたIBC参照範囲をスケーリングし、現在の彩度ブロックの許可されたIBC参照範囲を決定してよい。また、開示された方法は、(i)彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)彩度参照ブロックが、現在の彩度ブロックの許可されたイントラブロックコピー(IBC)参照範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断することができる。彩度BVが有効であるとの判断に応じて、開示された方法は、彩度BVが示す彩度参照ブロックに基づいて現在の彩度ブロックを再構成することができる。
【0206】
一実施形態では、現在の彩度ブロックの許可されたIBC参照範囲と輝度領域の許可されたIBC参照範囲との倍率は、彩度フォーマットサンプリング構造に依存することができる。倍率は、水平倍率と垂直倍率とを含むことができる。彩度フォーマットサンプリング構造が4:2:0であることに応じて、水平倍率は2、垂直倍率は2である。彩度フォーマットサンプリング構造が4:2:2であることに応じて、水平倍率は2、垂直倍率は1である。彩度フォーマットサンプリング構造が4:4:4であることに応じて、水平倍率は1、垂直倍率は1である。
【0207】
一例では、U及びVチャネルについて、倍率は異なるディメンションにおいて同一でなくてもよい(4:2:2フォーマット等)。例えば、4:2:0フォーマットでは、彩度ケースで使用されると、全ての輝度幅及び輝度高さは倍率2で縮小される。別の例では、4:2:2フォーマットでは、輝度幅は倍率2で縮小され、輝度高さは彩度ケースと同一のままとすることができる。
【0208】
一例では、現在の彩度ブロックの許可されたIBC参照範囲と輝度領域の許可されたIBC参照範囲との倍率は、異なるディメンションにおいて異なる。
【0209】
一例では、許可されたIBC参照範囲は、現在のCTU及び/又は過去に再構成された1つ以上のCTU内の再構成された輝度サンプルを含む。現在のCTUは現在の領域を含む。
【0210】
(S1440)では、彩度BVが有効であるとの判断に応じて、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックを再構成することができる。
【0211】
その後、処理は(S1499)に進み、終了する。
【0212】
処理(1400)は、適切に適合することができる。処理(1400)のステップは、変更及び/又は省略することができる。追加ステップを追加することができる。任意の適切な実装順序を使用することができる。
【0213】
一例では、彩度BVが有効ではないとの判断に応じて、彩度BVを補正して、有効な彩度BVを得る。有効な彩度BVが示す別の彩度参照ブロックに基づいて、現在の彩度ブロックを再構成することができる。一例では、(i)彩度参照ブロック内の彩度サンプルは、既に再構成され、及び、(ii)当該別の彩度参照ブロックは、現在の彩度ブロックの許可されたIBC参照範囲内にある。
【0214】
図15は本開示の実施形態に係る処理(1500)の概要を示すフローチャートである。処理(1500)をビデオエンコーダで使用することができる。様々な実施形態では、ビデオエンコーダ(103)の機能を行う処理回路、及び、ビデオエンコーダ(303)の機能を行う処理回路、等の処理回路によって、処理(1500)を実行する。いくつかの実施形態では、処理(1500)はソフトウェア命令に実装されるため、処理回路は、ソフトウェア命令を実行するとき、処理(1500)を実行する。処理は、(S1501)から開始し、(S1510)に進む。
【0215】
(S1510)では、彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)を決定することができる。彩度BVは、ピクチャ内の彩度参照ブロックを示すことができる。ピクチャの現在の領域内の輝度コーディング領域と彩度コーディング領域とを2つの別々のコーディングツリー構造を用いて分割することができる。
【0216】
(S1520)では、
図11及び
図14で説明された等のように、(i)彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)彩度参照ブロックが、現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲からスケーリングされた現在の彩度ブロックの許可されたIBC参照範囲の中にあるか、に基づいて、彩度BVが有効であるかを判断することができる。
【0217】
一例では、彩度ブロックベクトルが有効であるかを判断するために、輝度ケース用に設計された(領域の幅又は高さに関する等の)全てのパラメータを彩度に相応してスケーリングする。U及びVチャネルについて、倍率は異なるディメンションにおいて同一でなくてもよい(4:2:2フォーマット等)。例えば、4:2:0フォーマットである場合は、彩度ケースで使用されると、全ての輝度幅及び輝度高さを倍率2で縮小する必要がある。別の例では、4:2:2フォーマットでは、輝度幅を倍率2で縮小する必要があり、輝度高さは彩度と同一のままとすることができる。
【0218】
一実施形態では、現在の彩度ブロックの許可されたIBC参照範囲と輝度領域の許可されたIBC参照範囲との倍率は、彩度フォーマットサンプリング構造に依存することができる。倍率は、水平倍率と垂直倍率とを含むことができる。彩度フォーマットサンプリング構造が4:2:0であることに応じて、水平倍率は2、垂直倍率は2である。彩度フォーマットサンプリング構造が4:2:2であることに応じて、水平倍率は2、垂直倍率は1である。彩度フォーマットサンプリング構造が4:4:4であることに応じて、水平倍率は1、垂直倍率は1である。
【0219】
(S1530)では、彩度BVが有効であるとの判断に応じて、彩度BVが示す彩度参照ブロックに基づいて、現在の彩度ブロックをエンコードすることができる。
【0220】
その後、処理は(S1599)に進み、終了する。
【0221】
処理(1500)は、適切に適合することができる。処理(1500)のステップは、変更及び/又は省略することができる。追加ステップを追加することができる。任意の適切な実装順序を使用することができる。
【0222】
一例では、エンコードされた現在の彩度ブロックはビットストリームに含まれ、デコーダへ送られる。輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すように、コーディング情報をエンコードすることができる。一例では、輝度コーディング領域と彩度コーディング領域とが2つの別々のコーディングツリー構造を用いて分割されることを示すフラグをエンコードし、ビットストリームに含ませる。
【0223】
本開示の実施形態は、別々に用いる又は任意の順序で組み合わせてよい。また、方法(又は実施形態)のそれぞれ、エンコーダ、及びデコーダを処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)で実装してよい。一例では、1つ以上のプロセッサが非一時的なコンピュータ可読媒体に記憶されたプログラムを実行する。
【0224】
以上で説明された技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図16は、開示された主題の特定の実施形態を実装することに適したコンピュータシステム(1600)を示す。
【0225】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又はそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、又は解釈、マイクロコード実行などによって実行することができる命令を含むコードを作成する任意の適切な機械コード又はコンピュータ言語を用いてコード化することができる。
【0226】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータ又はその構成要素上で実行することができる。
【0227】
コンピュータシステム(1600)について、
図16に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能範囲に関する限定を示唆することを意図するものではない。構成要素の構成は、コンピュータシステム(1600)の例示的な実施形態で示される構成要素のうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。
【0228】
コンピュータシステム(1600)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を通じて、1人以上の人間ユーザによる入力に応答することができる。ヒューマンインタフェースデバイスは、オーディオ(スピーチ、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接的に関連しない特定のメディアを取り込むために使用することもできる。
【0229】
入力ヒューマンインタフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクフォン(1606)、スキャナ(1607)及びカメラ(1608)(それぞれが1つのみ示される)のうちの1つ以上を含んでもよい。
【0230】
コンピュータシステム(1600)はまた、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光、及び匂い/味を通じて、1人以上の人間ユーザの感覚を刺激することができる。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(図示せず)、又はジョイスティック(1605)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(図示せず)など)、視覚出力デバイス(それぞれがタッチスクリーン入力能力、触覚フィードバック能力の有無にかかわらず、一部が、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレ及びスモークタンク(図示せず)などの手段を介して、2次元の視覚出力又は3次元以上の出力を出力できる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)など)、及びプリンタ(図示せず)を含んでもよい。
【0231】
コンピュータシステム(1600)はまた、ヒューマンアクセス可能な記憶装置と、それらに関連する媒体、例えば、CD/DVDを有するCD/DVD ROM/RW(1620)若しくは同様な媒体(1621)、サムドライブ(1622)、及びリムーバブルハードドライブ若しくはソリッドステートドライブ(1623)を含む光媒体、テープ及びフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどとを含んでもよい。
【0232】
当業者はまた、本明細書に開示された主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことを理解すべきである。
【0233】
コンピュータシステム(1600)はまた、1つ以上の通信ネットワーク(1655)へのインタフェース(1654)を含んでもよい。ネットワークは、例えば、無線、有線、光ネットワークであり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用及び産業用、リアルタイム、遅延耐性ネットワークなどであり得る。ネットワークの例は、イーサネット及び無線LANなどのローカルエリアネットワークと、GSM、3G、4G、5G、LTEなどを含むセルラーネットワークと、ケーブルTV、衛星TV及び地上波放送TVを含むTV有線又は無線ワイドエリアデジタルネットワークと、CANバスなどを含む車両用及び産業用ネットワークと、を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1649)(例えば、コンピュータシステム(1600)のUSBポートなど)に接続された外部ネットワークインタフェースアダプタを必要とする。他のネットワークは一般的に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は、他のエンティティと通信することができる。このような通信は、例えば、ローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対して、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANバスから特定のCANバスデバイスへ)、又は双方向であってもよい。上記のように、特定のプロトコルとプロトコルスタックをこれらのネットワークとネットワークインタフェースのそれぞれに使用することができる。
【0234】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(1600)のコア(1640)に接続することができる。
【0235】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィックス処理装置(GPU)(1642)、フィールドプログラマブルゲートエリア(FPGA)(1643)の形態の専用プログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(1644)、及びグラフィックアダプタ(1650)などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、及びユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1647)と共に、システムバス(1648)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1648)は、1つ以上の物理プラグの形態でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(1648)に直接接続されてもよく、周辺バス(1649)を介して接続されてもよい。一例では、画面(1610)は、グラフィックアダプタ(1650)に接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0236】
CPU(1641)、GPU(1642)、FPGA(1643)及びアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1645)又はRAM(1646)に記憶することができる。過渡的なデータは、RAM(1646)に記憶することもできるが、恒久的なデータは、例えば内部大容量記憶装置(1647)に記憶することができる。CPU(1641)、GPU(1642)、大容量記憶装置(1647)、ROM(1645)、RAM(1646)などのうちの1つ以上と密接に関連付けることができるキャッシュメモリを使用して、任意のメモリデバイスに対する高速記憶及び検索を可能にすることができる。
【0237】
コンピュータ可読媒体には、様々なコンピュータ実施動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、コンピュータソフトウェア分野の当業者によく知られている利用可能な種類のものであってもよい。
【0238】
限定ではなく、あくまでも一例として、アーキテクチャ(1600)、具体的にはコア(1640)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体に具体化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、コア内部大容量記憶装置(1647)又はROM(1645)などの、非一時的な性質のコア(1640)の特定の記憶装置以外に、以上に紹介したようにユーザがアクセス可能な大容量記憶装置に関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶でき、コア(1640)によって実行することができる。コンピュータ可読媒体は、特定の需要に応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1640)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に記憶されたデータ構造を定義するステップと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更するステップとを含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ(1644))に配線されるか又は他の方法で具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの参照は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ可読媒体への参照は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、又はその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0239】
本開示における「のうち少なくとも1つ」又は「のうちの1つ」の使用は、記載した要素の任意の1つ又は組み合わせを意図する。例えば、A,B,又はCのうちの少なくとも1つ、A,B,及びCのうちの少なくとも1つ、A,B,及び/又はCのうちの少なくとも1つ、AからCのうちの少なくとも1つ、への言及は、Aのみ、Bのみ、Cのみ、又は、それらの任意の組み合わせを含むことを意図する。A又はBのうちの1つ、及び、A及びBのうちの1つ、への言及は、A又はB又は(A及びB)を含むことを意図する。「のうちの1つ」の使用は、記載した要素が相互排他的でないとき等の適用可能な場合は、当該要素の任意の組み合わせを排除しない。
【0240】
本開示は、一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、及び様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、開示の原理を具体化するため、その精神及び範囲内にある多数のシステム及び方法を考案することができることが理解されたい。
【手続補正書】
【提出日】2025-03-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダでのビデオデコーディング方法であって、
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信することと、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定することと、
前記彩度参照ブロックのコロケーションされた輝度サンプルが、前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断することと、
前記彩度BVが有効であるとの判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成すること、を含む方法。
【請求項2】
前記現在の彩度ブロックは、(i)イントラブロックコピー(IBC)モード、(ii)イントラテンプレートマッチング予測(IntraTMP)モード、及び、(iii)ダイレクトブロックベクトル(DBV)モード、のうちの1つで予測される、請求項1に記載の方法。
【請求項3】
前記現在の彩度ブロックが前記IBCモードで予測されることに応じて、前記彩度BVが有効であるか判断することは、
(i)前記彩度参照ブロックの前記コロケーションされた輝度サンプルが、前記現在の彩度ブロックの前記コロケーションされた輝度サンプルを含む前記輝度領域の許可されたIBC参照範囲にあること、及び、(ii)前記彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、前記彩度BVが有効であると判断することを含み、前記許可された範囲は前記許可されたIBC参照範囲である、請求項2に記載の方法。
【請求項4】
前記彩度BVが有効ではないとの判断に応じて、
前記彩度BVを補正して、有効な彩度BVを得ることと、
前記有効な彩度BVが示す別の彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成することと、をさらに含み、
(i)前記別の彩度参照ブロックのコロケーションされた輝度サンプルが、前記輝度領域の前記許可されたIBC参照範囲にあり、及び、(ii)前記別の彩度参照ブロック内の彩度サンプルが既に再構成されている、
請求項3に記載の方法。
【請求項5】
前記現在の彩度ブロックが前記IBCモードで予測されることに応じて、前記彩度BVを決定することは、
前記コーディング情報から前記彩度BVを明示的にデコードすること、を含む、請求項2に記載の方法。
【請求項6】
前記現在の彩度ブロックが前記IntraTMPモード又は前記DBVモードで予測されることに応じて、前記彩度BVが有効であるか判断することは、
(i)前記彩度参照ブロックの前記コロケーションされた輝度サンプルが、前記現在の彩度ブロックの前記コロケーションされた輝度サンプルを含む前記輝度領域の前記許可された範囲にあること、及び、(ii)前記彩度参照ブロック内の彩度サンプルが既に再構成されたこと、に応じて、前記彩度BVが有効であると判断することを含む、請求項2に記載の方法。
【請求項7】
前記現在の彩度ブロックが前記IntraTMPモード又は前記DBVモードで予測されることに応じて、前記彩度BVを決定することは、
前記IntraTMPモード又は前記DBVモードをそれぞれ用いて前記彩度BVを導出することを含む、請求項2に記載の方法。
【請求項8】
前記現在の領域は、現在のコーディングツリーユニット(CTU)であり、
前記輝度コーディング領域は、前記現在のCTU内の輝度コーディングツリーブロック(CTB)であり、
前記彩度コーディング領域は、前記現在のCTU内の彩度CTBである、請求項1に記載の方法。
【請求項9】
前記ピクチャ内の現在のコーディングツリーユニット(CTU)は四分木分割を用いて4つのコーディングユニットに分割され、
前記現在の領域は前記4つのコーディングユニットのうちのコーディングユニットである、請求項1に記載の方法。
【請求項10】
前記許可された範囲は、現在のコーディングツリーユニット(CTU)又は1つ以上の過去に再構成されたCTU内の再構成された輝度サンプルのうちの少なくとも1つを含み、前記現在のCTUは前記現在の領域を含む、請求項2に記載の方法。
【請求項11】
前記ビットストリーム内の前記コーディング情報は、前記輝度コーディング領域と前記彩度コーディング領域とが前記別々のコーディングツリー構造を用いて分割されることを示すフラグを含む、請求項1に記載の方法。
【請求項12】
デコーダでのビデオデコーディング方法であって、
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信することと、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定することと、
前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲をスケーリングして、前記現在の彩度ブロックの許可されたIBC参照範囲を決定することと、
(i)前記彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)前記彩度参照ブロックが前記現在の彩度ブロックの前記許可されたIBC参照範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断することと、
前記彩度BVが有効であるとの前記判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成すること、を含む方法。
【請求項13】
前記現在の彩度ブロックの前記許可されたIBC参照範囲と前記輝度領域の前記許可されたIBC参照範囲との間の倍率は、彩度サンプリングフォーマットに依存する、請求項12に記載の方法。
【請求項14】
前記倍率は、水平倍率と垂直倍率とを含み、
前記彩度サンプリングフォーマットが4:2:0であることに応じて、前記水平倍率は2、前記垂直倍率は2であり、
前記彩度サンプリングフォーマットが4:2:2であることに応じて、前記水平倍率は2、前記垂直倍率は1であり、
前記彩度サンプリングフォーマットが4:4:4であることに応じて、前記水平倍率は1、前記垂直倍率は1である、請求項13に記載の方法。
【請求項15】
前記現在の彩度ブロックの前記許可されたIBC参照範囲と前記輝度領域の前記許可されたIBC参照範囲との間の倍率は、異なるディメンションで異なる、請求項12に記載の方法。
【請求項16】
前記彩度BVが有効であるかを判断することは、
(i)前記彩度参照ブロック内の前記彩度サンプルが既に再構成され、及び、(ii)前記彩度参照ブロックが前記現在の彩度ブロックの前記許可されたIBC参照範囲の中にあること、に応じて、前記彩度BVが有効であると判断することを含む、請求項12に記載の方法。
【請求項17】
前記彩度BVが有効でないとの判断に応じて、
前記彩度BVを補正して、有効な彩度BVを得ることと、
前記有効な彩度BVが示す別の彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成することと、をさらに含み、
(i)前記彩度参照ブロック内の前記彩度サンプルは、既に再構成され、及び、(ii)前記別の彩度参照ブロックは、前記現在の彩度ブロックの前記許可されたIBC参照範囲内にある、請求項16に記載の方法。
【請求項18】
前記彩度BVを決定することは、
(i)前記彩度BVを前記コーディング情報から明示的にデコードすること、又は
(ii)イントラテンプレートマッチング予測(IntraTMP)モード又はダイレクトブロックベクトル(DBV)モードを用いて前記彩度BVを導出すること、
を含む、請求項12に記載の方法。
【請求項19】
前記現在の領域は、現在のコーディングツリーユニット(CTU)であり、
前記輝度コーディング領域は、前記現在のCTU内の輝度コーディングツリーブロック(CTB)であり、
前記彩度コーディング領域は、前記現在のCTU内の彩度CTBである、請求項12に記載の方法。
【請求項20】
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信し、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定し、
前記彩度参照ブロックのコロケーションされた輝度サンプルが、前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可された範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断し、
前記彩度BVが有効であるとの前記判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成する処理回路を備えたビデオデコーディング装置。
【請求項21】
ピクチャ内の現在の領域のビットストリームであって、前記現在の領域は輝度コーディング領域と彩度コーディング領域を含み、前記ビットストリーム内のコーディング情報が前記輝度コーディング領域と前記彩度コーディング領域とが別々のコーディングツリー構造を用いて分割されることを示す、ビットストリームを受信することと、
前記彩度コーディング領域内の現在の彩度ブロックの彩度ブロックベクトル(BV)であって、前記彩度BVは前記ピクチャ内の彩度参照ブロックを示す、彩度BVを決定することと、
前記現在の彩度ブロックのコロケーションされた輝度サンプルを含む輝度領域の許可されたイントラブロックコピー(IBC)参照範囲をスケーリングして、前記現在の彩度ブロックの許可されたIBC参照範囲を決定することと、
(i)前記彩度参照ブロック内の彩度サンプルが既に再構成されたか、及び、(ii)前記彩度参照ブロックが前記現在の彩度ブロックの前記許可されたIBC参照範囲の中にあるか、に基づいて、前記彩度BVが有効であるかを判断することと、
前記彩度BVが有効であるとの前記判断に応じて、前記彩度BVが示す前記彩度参照ブロックに基づいて、前記現在の彩度ブロックを再構成する処理回路を備えたビデオデコーディング装置。
【請求項22】
コンピュータ指令を含むコンピュータプログラムであって、コンピュータ機器のプロセッサが前記コンピュータ指令を実行することにより、前記コンピュータ機器に請求項1~19のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
【
図1】
図1は、
ビデオ処理システム(100)の例示的なブロック図を示す概略図である。
【手続補正4】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】