(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】ブロックベクトル予測子リファイメントを使用したビデオ圧縮
(51)【国際特許分類】
H04N 19/105 20140101AFI20241016BHJP
H04N 19/176 20140101ALI20241016BHJP
H04N 19/139 20140101ALI20241016BHJP
【FI】
H04N19/105
H04N19/176
H04N19/139
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519694
(86)(22)【出願日】2022-09-30
(85)【翻訳文提出日】2024-05-29
(86)【国際出願番号】 US2022045388
(87)【国際公開番号】W WO2023056018
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】518272407
【氏名又は名称】コムキャスト ケーブル コミュニケーションズ, エルエルシー
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】コール,ダミアン ルイズ
(72)【発明者】
【氏名】ペ,テ ミョン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN10
5C159NN16
5C159NN21
5C159NN28
5C159PP04
5C159RC11
5C159TA33
5C159TB08
5C159TC26
5C159UA02
5C159UA05
(57)【要約】
ビデオフレームのブロックを符号化および/または復号化することが、同一のフレーム内または異なるフレーム内の以前に復号化された基準ブロックに基づいてもよい。基準ブロックは、ブロックベクトル(BV)によって示され得る。BVは、ブロックベクトル予測子(BVP)とBVとの間の差として符号化され得る。BVPは、BVPの予測精度を改善するように調整され得る。
【選択図】
図18
【特許請求の範囲】
【請求項1】
コンピューティング装置によって、一つまたは複数の候補ブロックベクトル予測子(BVP)を決定することであって、前記一つまたは複数の候補BVPの各々が、
現在のブロックの幅に基づき決定される水平コンポーネント、または
前記現在のブロックの高さに基づき決定される垂直コンポーネント、のうちの少なくとも一つを含む、決定することと、
前記一つまたは複数の候補BVPの中から、前記現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す、少なくとも一つの候補BVPを含むように変更された候補BVPのリストに基づき、前記現在のブロックのブロックベクトル(BV)を決定することと、を含む、方法。
【請求項2】
前記少なくとも一つの候補BVPが、
候補BVPの前記リスト内のBVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、および
前記候補BVPのリスト内の前記BVPの垂直コンポーネントおよび前記現在のブロックの高さの合計としての垂直距離がゼロよりも大きいことに基づき、前記一つまたは複数の候補BVPの中から選択される、請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記幅が、cbWidthであり、
前記現在のブロックの前記高さがcbHeightであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記水平コンポーネントが、-cbWidthに等しく、および
前記候補BVPの前記垂直コンポーネントが、-cbHeightに等しい、請求項1および2のいずれか一項に記載の方法。
【請求項4】
前記現在のブロックの前記幅が、cbWidthであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記水平コンポーネントが、-cbWidthに等しく、および
前記候補BVPの前記垂直コンポーネントが、候補BVPの前記リスト中のBVPの垂直コンポーネントに等しい、請求項1および2のいずれか一項に記載の方法。
【請求項5】
前記現在のブロックの前記高さがcbHeightであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記垂直コンポーネントが、-cbHeightに等しく、
前記候補BVPの前記水平コンポーネントが、候補BVPの前記リスト中のBVPの水平コンポーネントに等しい、請求項1および2のいずれか一項に記載の方法。
【請求項6】
前記少なくとも一つの候補BVPが、
前記一つまたは複数の候補BVPの各々について、それぞれのブロックベクトル差(BVD)を決定すること、および
前記少なくとも一つの候補BVPのBVDが、前記それぞれのBVDの中で最も小さいことに基づき、前記少なくとも一つの候補BVPを選択することに基づき、前記一つまたは複数の候補BVPの中から選択される、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記一つまたは複数の候補BVPを前記決定することが、候補BVPの前記リスト中のBVPが前記IBC基準領域外にあると決定することに基づく、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記現在のブロックの前記幅がcbWidthであり、前記現在のブロックの前記高さがcbHeightであり、前記一つまたは複数の候補BVPを前記決定することが、
BVPの水平コンポーネントが、-cbWidthよりも大きく、および
前記BVPの垂直コンポーネントが-cbHeightよりも大きい、と決定することに基づく、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記コンピューティング装置がエンコーダーを含み、前記方法が、前記少なくとも一つの候補BVPの表示をデコーダーに送信することをさらに含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
候補BVPの前記リストが、候補BVPの前記リスト中の少なくとも一つのBVPを、前記少なくとも一つの候補BVPに置き換えることによって変更される、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記BVおよび前記少なくとも一つの候補BVPの候補BVPに基づき、ブロックベクトル差(BVD)を決定することと、
前記BVDの表示をデコーダーに送信することと、をさらに含む、請求項1~10のいずれか一項に記載の方法。
【請求項12】
ブロックベクトル差(BVD)の表示を受信することと、
前記BVDと、前記少なくとも一つの候補BVPの候補BVPとに基づき、前記BVを決定することと、をさらに含む、請求項1~11のいずれか一項に記載の方法。
【請求項13】
コンピューティング装置であって、
一つまたは複数のプロセッサーと、
前記一つまたは複数のプロセッサーによって実行されると、前記コンピューティング装置に請求項1~12のいずれか一項に記載の方法を実行させる命令を格納するメモリーと、を含む、コンピューティング装置。
【請求項14】
請求項1~12のいずれか一項に記載の方法を実行するように構成される第一のコンピューティング装置と、
前記少なくとも一つの候補BVPを使用して、前記現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含む、システム。
【請求項15】
実行されると、請求項1~12のいずれか一項に記載の方法の性能を生じさせる命令を格納する、コンピューター可読媒体。
【請求項16】
コンピューティング装置によって、
ブロックベクトル予測子(BVP)の水平コンポーネントおよびビデオフレームの現在のブロックの幅の合計としての水平距離、および
前記BVPの垂直コンポーネントおよび前記現在のブロックの高さの合計としての垂直距離であって、前記BVPが、前記現在のブロックの位置に対する基準ブロックの位置を示す、垂直距離を計算することと、
前記水平距離がゼロよりも大きく、前記垂直距離がゼロよりも大きいと決定することと、
前記決定に基づき、および前記水平距離と前記垂直距離との比較に基づき、前記BVPを調整されたBVPに置き換えることであって、
前記調整されたBVPの水平コンポーネントが、前記現在のブロックの前記幅に基づくか、または
前記調整されたBVPの垂直コンポーネントが、前記現在のブロックの前記高さに基づく、置き換えることと、を含む、方法。
【請求項17】
前記現在のブロックの前記幅がcbWidthであり、前記方法が、
前記水平距離が前記垂直距離未満であることに基づき、
前記調整されたBVPの前記水平コンポーネントを-cbWidthに等しいように、および
前記調整されたBVPの前記垂直コンポーネントを前記BVPの前記垂直コンポーネントに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項18】
前記現在のブロックの前記高さがcbHeightであり、前記方法が、
前記水平距離が前記垂直距離よりも大きいことに基づき、
前記調整されたBVPの前記水平コンポーネントを前記BVPの前記水平コンポーネントに等しいように、および
前記調整されたBVPの前記垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項19】
前記現在のブロックの前記幅がcbWidthであり、前記現在のブロックの前記高さがcbHeightであり、前記方法が、
前記水平距離が前記第一の垂直距離に等しいことに基づき、
前記調整されたBVPの前記水平コンポーネントを-cbWidthに等しいように、および
前記調整されたBVPの前記垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項20】
前記BVPを前記調整されたBVPに前記置き換えることが、
前記現在のブロックの位置から、ブロック間コピー(IBC)基準領域の左端の垂直境界までの第二の水平距離が、前記現在のブロックの前記幅よりも大きいこと、または
前記現在のブロックの前記位置から、前記現在のブロックの前記IBC基準領域の最も上の水平境界までの第二の垂直距離が、前記現在のブロックの前記高さよりも大きいこと、のうちの少なくとも一つにさらに基づく、請求項16に記載の方法。
【請求項21】
ブロックベクトル差(BVD)の表示を受信することをさらに含む、請求項16~20のいずれか一項に記載の方法。
【請求項22】
前記現在のブロックのブロックベクトル(BV)を、前記調整されたBVPとブロックベクトル差(BVD)の組み合わせとして決定することをさらに含む、請求項16~21のいずれか一項に記載の方法。
【請求項23】
ブロックベクトル差(BVD)を、前記現在のブロックのブロックベクトル(BV)と前記調整されたBVPとの組み合わせとして決定することをさらに含む、請求項16~21のいずれか一項に記載の方法。
【請求項24】
ブロックベクトル差(BVD)の表示を送信することをさらに含む、請求項16~21および25のいずれか一項に記載の方法。
【請求項25】
前記調整されたBVPを、高度な動きベクトル予測(AMVP)に関連付けられる、またはマージモードに関連付けられる候補BVPのリストに追加することをさらに含む、請求項16~24のいずれか一項に記載の方法。
【請求項26】
前記現在のブロックを符号化または復号化するために、前記調整されたBVPを使用することをさらに含む、請求項16~25のいずれか一項に記載の方法。
【請求項27】
前記一つまたは複数の候補BVPを前記決定することが、候補BVPの前記リスト中のBVPが前記IBC基準領域外にあると決定することに基づく、請求項16~26のいずれか一項に記載の方法。
【請求項28】
コンピューティング装置であって、
一つまたは複数のプロセッサーと、
前記一つまたは複数のプロセッサーによって実行されると、前記コンピューティング装置に請求項16~27のいずれか一項に記載の方法を実行させる命令を格納するメモリーと、を含む、コンピューティング装置。
【請求項29】
請求項16~27のいずれか一項に記載の方法を実行するように構成される第一のコンピューティング装置と、
前記調整されたBVPに基づき、前記現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含む、システム。
【請求項30】
実行されると、請求項16~27のいずれか一項に記載の方法の性能を生じさせる命令を格納する、コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月30日に出願された米国仮特許出願第63/250,336号、および2022年3月3日に出願された米国仮特許出願第63/316,312号の利益を主張する。上記の参照された出願は、その全体が参照によって本明細書に組み込まれる。
【背景技術】
【0002】
コンピューティング装置は、記憶、送信、受信、および/または表示のためにビデオを処理する。ビデオを処理することが、例えば、ビデオに関連付けられるデータサイズを減少させるために、符号化および復号化を含む。
【発明の概要】
【0003】
以下の概要は、特定の機能について簡略化された概要を示すものである。概要は広範な概要ではなく、キーとなるまたは重要な要素を特定することを意図したものではない。
【0004】
ビデオは、連続的に表示される一連のフレームを含み得る。予測符号化および復号化は、フレーム内のブロックに関連付けられる情報を使用して、同一のフレーム内の他のブロックを符号化および/または復号化することを伴い得る。例えば、ブロックに関連付けられる情報(例えば、ブロックの輝度および/または彩度コンポーネント)は、同一のフレーム内の基準ブロックに関連付けられる以前に復号化された情報を使用して符号化され得る。基準ブロックは、符号化または復号化される現在のブロックに対する基準ブロックの位置を表すブロックベクトル(BV)の形態で示され得る。BV自体は、BVを直接示すために必要なシグナリングオーバーヘッドを低減するために、ブロックベクトル予測子(BVP)の関数として示され得る。エンコーダーおよび/またはデコーダーは、フレームの復号化された領域内にある一つまたは複数のBVPを決定し得る。例えば、エンコーダーおよび/またはデコーダーが、基準領域と関連付けられる現在のブロックおよび/または境界の寸法に基づき、一つまたは複数のBVPを決定し得る。復号化された領域におけるBVPを決定することが、BVPがBVの密接な予測であることを確実にするのに役立ち得る。BVの密接な予測であるBVPは、BVを示すために必要なシグナリングオーバーヘッドの低減などの追加の利点を提供し得る。
【0005】
これらおよびその他の特徴および利点は、以下でより詳細に説明される。
【図面の簡単な説明】
【0006】
一部の特徴は、限定ではなく例として添付図面に示される。図面では、同様の数字が同様の要素を参照している。
【0007】
【
図1】
図1は、例示的なビデオコーディング/デコーディングシステムを示す。
【
図4】
図4は、コーディングツリーブロック(CTB)の例示的な四分木分割を示す。
【
図5】
図5は、
図4のCTBの例示的な四分木分割に対応する例示的な四分木を示す。
【
図6】
図6は、例示的な二分木分割および三分木分割を示す。
【
図7】
図7は、CTBの四分木およびマルチタイプツリー分割の組み合わせの例を示す。
【
図8】
図8は、
図7に示すCTBの四分木とマルチタイプツリー分割の組み合わせに対応する木を示す。
【
図9】
図9は、現在のブロックのイントラ予測のために決定された基準サンプルの例示的なセットを示す。
【
図11】
図11は、現在のブロックおよび対応する基準サンプルを示す。
【
図12】
図12は、現在のブロックの予測のためのイントラ予測モードの適用を示す。
【
図15A】
図15Aは、現在のブロックに対する例示的な空間候補隣接ブロックを示す。
【
図16】
図16は、符号化のためのイントラブロックコピー(IBC)の例を示す。
【
図17D】
図17Dは、調整されたブロックベクトル予測子(BVP)の例示的な方法を示す。
【
図18】
図18は、調整されたBVPを有するIBCの例を示す。
【
図19】
図19は、調整されたBVPを有するIBCの例を示す。
【
図20】
図20は、調整されたBVPを有するIBCの例を示す。
【
図22】
図22は、BVPを調整されたBVPに置き換えるための例示的な方法を示す。
【
図24】
図24は、BVPを調整する前に実施され得る距離チェックの例を示す。
【
図25】
図25は、BVPを調整されたBVPに置き換えるための例示的な方法を示す。
【
図26】
図26は、本明細書に記載の実施例のいずれかを使用し得るコンピューターシステムの例を示す。
【
図27】
図27は、本明細書に記載されるさまざまなデバイスのいずれかを実施するために使用され得るコンピューティング装置の例示的な要素を示す。
【発明を実施するための形態】
【0008】
添付図面および説明は、実施例を提供する。図面および/または記載に示す実施例は非排他的であり、図示および記載される特徴は、他の実施例で実践され得ることが理解されるべきである。ビデオデータストレージおよび/または送信/受信の技術分野で使用され得る、ビデオ符号化および復号化システムの動作のための例が提供される。より具体的には、本明細書に開示される技術は、符号化および/または復号化デバイスおよび/またはシステムで使用されるビデオ圧縮に関連し得る。
【0009】
複数のピクチャー/フレームを含むビデオシーケンスは、記憶および/または送信のためにデジタル形式で表され得る。デジタル形式でビデオシーケンスを表すことは、大量のビットを必要とし得る。ビデオシーケンスと関連付けられ得る大きなデータサイズは、記憶および/または送信のためにかなりのリソースを必要とし得る。ビデオ符号化は、より効率的な記憶および/または送信のために、ビデオシーケンスのサイズを圧縮するために使用され得る。ビデオ復号化を使用して、表示および/または他の形態の消費のために圧縮されたビデオシーケンスを復元することができる。
【0010】
図1は、例示的なビデオコーディング/デコーディングシステムを示す。ビデオコーディング/デコーディングシステム100は、ソース装置102、送信媒体104、および宛先装置106を含み得る。ソース装置102は、より効率的な記憶および/または送信のために、ビデオシーケンス108をビットストリーム110に符号化し得る。ソース装置102は、ビットストリーム110を、送信媒体104を介して宛先装置106に記憶および/または送信/伝送し得る。宛先装置106は、ビットストリーム110を復号化して、ビデオシーケンス108を表示し得る。宛先装置106は、送信媒体104を介してソース装置102からビットストリーム110を受信し得る。ソース装置102および/または宛先装置106は、複数の異なる装置(例えば、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォン、ウェアラブルデバイス、テレビ、カメラ、ビデオゲームコンソール、セットトップボックス、ビデオストリーミングデバイスなど)のいずれかであり得る。
【0011】
ソース装置102は、ビデオソース112、エンコーダー114、および/または出力インターフェイス116のうちの一つまたは複数を含んでもよい(例えば、ビデオシーケンス108をビットストリーム110に符号化するため)。ビデオソース112は、自然なシーンおよび/または合成的に生成されたシーンの撮像に基づき、ビデオシーケンス108を提供および/または生成し得る。合成的に生成されたシーンは、コンピューター生成グラフィックおよび/またはスクリーンコンテンツを含むシーンであり得る。ビデオソース112は、ビデオキャプチャデバイス(例えば、ビデオカメラ)、以前にキャプチャされた自然なシーンおよび/または合成的に生成されたシーンを含むビデオアーカイブ、ビデオコンテンツプロバイダーからキャプチャされた自然なシーンおよび/または合成的に生成されたシーンを受信するためのビデオフィードインターフェイス、および/または合成シーンを生成するためのプロセッサー、を含み得る。
【0012】
ビデオシーケンス108などのビデオシーケンスは、一連のピクチャー(フレームとも呼ばれる)を含むことができる。ビデオシーケンスは、ピクチャー間の一定の時間間隔または可変時間間隔を使用して、ビデオシーケンスのピクチャーの連続的な提示に基づき、動きの印象を達成し得る。ピクチャーは、強度値の一つまたは複数のサンプルアレイを含み得る。強度値は、ピクチャー内の一連の規則的に間隔を置いた位置で取得(例えば、測定、決定、提供)され得る。カラーピクチャーは、輝度サンプルアレイおよび二つの発色サンプルアレイを含み得る(例えば、典型的には含む)。輝度サンプルアレイは、ピクチャーの明るさ(例えば、輝度コンポーネント、Y)を表す強度値を含み得る。発色サンプルアレイは、明るさとは別のピクチャー(例えば、彩度コンポーネント、CbおよびCr)の青色および赤色コンポーネントをそれぞれ表す強度値を含み得る。他のカラーピクチャーサンプルアレイは、異なるカラースキーム(例えば、赤、緑、青(RGB)カラースキーム)に基づき可能である。カラーピクチャー内の画素は、カラーピクチャーを表すために使用されるサンプルアレイの所与の場所に対する全ての強度値(例えば、輝度コンポーネント、彩度コンポーネント)を指し/含み/関連付けることができる。モノクロームピクチャーは、単一の輝度サンプルアレイを含み得る。ピクセルは、モノクロームピクチャーにおいて、モノクロームピクチャーを表すために使用される単一の輝度サンプルアレイの所与の位置における強度値(例えば、輝度コンポーネント)を指し/含み/関連付けることができる。
【0013】
エンコーダー114は、ビデオシーケンス108をビットストリーム110に符号化し得る。エンコーダー114は、一つまたは複数の予測技術を適用/使用して(例えば、ビデオシーケンス108を符号化するために)、ビデオシーケンス108の冗長情報を低減し得る。冗長情報は、デコーダーで予測され得、ビデオシーケンスの正確な復号化のためにデコーダーに送信される必要はない情報を含み得る。例えば、エンコーダー114は、空間予測(例えば、イントラフレームまたはイントラ予測)、時間予測(例えば、インターフレーム予測またはインター予測)、インター層予測、および/または他の予測技術を適用して、ビデオシーケンス108の冗長情報を低減し得る。エンコーダー114は、例えば、一つまたは複数の予測技術を適用する前に、ビデオシーケンス108を含むピクチャーをブロックと呼ばれる長方形領域に分割し得る。次に、エンコーダー114は、予測技術のうちの一つまたは複数を使用してブロックを符号化し得る。
【0014】
エンコーダー114は、例えば、時間予測のために、ビデオシーケンス108の別のピクチャー(例えば、基準ピクチャー)で符号化されるブロックに類似したブロックを検索し得る。次いで、検索中に決定されるブロック(例えば、予測ブロック)を使用して、符号化されるブロックを予測し得る。エンコーダー114は、例えば、空間予測のために、ビデオシーケンス108の同じピクチャー内で符号化されるブロックの再構成される隣接サンプルからのデータに基づき、予測ブロックを形成し得る。再構成されるサンプルは、符号化され、その後、復号化されたサンプルであり得る。エンコーダー114は、符号化されるブロックと予測ブロックとの間の差に基づき、予測誤差(例えば、残差)を決定し得る。予測誤差は、ビデオシーケンスの正確な復号化のためにデコーダーに送信/伝達され得る非冗長情報を表し得る。
【0015】
エンコーダー114は、(例えば、離散コサイン変換(DCT)、または任意の他の変換を使用して)予測誤差に変換を適用して、変換係数を生成し得る。エンコーダー114は、予測ブロック(例えば、予測タイプ、動きベクトル、および予測モード)を決定するために使用される変換係数、および他の情報に基づき、ビットストリーム110を形成し得る。エンコーダー114は、ビットストリーム110を形成する前に予測ブロックを決定するために使用される変換係数および/または他の情報の量子化およびエントロピーコーディングのうちの一つまたは複数を実行し得る。定量化および/またはエントロピーコーディングは、ビデオシーケンス108を保存および/または送信するために必要なビットの量をさらに減少させ得る。
【0016】
出力インターフェイス116は、宛先装置106への送信のために、ビットストリーム110を送信媒体104上に書き込む、および/または保存するように構成され得る。出力インターフェイス116は、ビットストリーム110を送信媒体104を介して宛先装置106に送信/伝送、アップロード、および/またはストリームするように構成され得る。出力インターフェイス116は、一つまたは複数の専有の、オープンソースの、および/または規格化された通信プロトコルに従って、ビットストリーム110を送信/伝送、アップロード、および/またはストリーミングするように構成された有線および/または無線送信機を含み得る(例えば、デジタルビデオ放送(DVB)規格、先進テレビジョンシステム委員会(ATSC)規格、統合サービスデジタル放送(ISDB)規格、Data Over Cable Service Interface Specification(DOCSIS)規格、第3世代パートナーシッププロジェクト(3GPP(登録商標))規格、電気電子学会(IEEE)規格、インターネットプロトコル(IP)規格ワイヤレスアプリケーションプロトコル(WAP)規格、および/またはその他の通信プロトコル)。
【0017】
送信媒体104は、無線、有線、および/またはコンピューター可読媒体を含み得る。例えば、送信媒体104は、一つまたは複数のワイヤ、ケーブル、エアーインターフェイス、光ディスク、フラッシュメモリー、および/または磁気メモリーを含み得る。送信媒体104は、符号化されたビデオデータを格納および/または送信/伝送するように構成される、一つまたは複数のネットワーク(例えば、インターネット)またはファイルサーバーを含んでもよい。
【0018】
宛先装置108は、ビットストリーム110を表示のためにビデオシーケンス108に復号化し得る。宛先装置106は、入力インターフェイス118、デコーダー120、および/またはビデオディスプレイ122のうちの一つまたは複数を含んでもよい。入力インターフェイス118は、ソース装置102によって、送信媒体104上に記憶されたビットストリーム110を読み取るように構成され得る。入力インターフェイス118は、送信媒体104を介してソース装置102からビットストリーム110を受信、ダウンロード、および/またはストリームするように構成され得る。入力インターフェイス118は、一つまたは複数の専有の、オープンソースの、規格化された通信プロトコル、および/または任意の他の通信プロトコル(例えば、本明細書で参照されるような)に従って、ビットストリーム110を受信、ダウンロード、および/またはストリームするように構成される有線および/または無線受信機を含み得る。
【0019】
デコーダー120は、ビデオシーケンス108を符号化されたビットストリーム110から復号化し得る。デコーダー120は、エンコーダー114と同様の様式でビデオシーケンス108のピクチャーに対する予測ブロックを生成し、例えば、ビデオシーケンスをデ符号化するためのブロックに対する予測誤差を決定し得る。デコーダー120は、ビットストリーム110で受信された予測タイプ、予測モード、および/または動きベクトルを使用して/それらに基づき、予測ブロックを生成し得る。デコーダー120は、ビットストリーム110で受信された変換係数を使用して、予測誤差を決定し得る。デコーダー120は、変換係数を使用して、変換基底関数を重み付けすることによって、予測誤差を決定し得る。デコーダー120は、予測ブロックと予測誤差とを組み合わせて、ビデオシーケンス108を復号化し得る。宛先装置での復号化されたビデオシーケンスは、ソース装置102によって送信されるビデオシーケンス108など、送信されるのと同じビデオシーケンスであってもよく、または必ずしもそうでなくてもよい。例えば、デコーダー120は、例えば、エンコーダー114によるビデオシーケンス108の損失圧縮、および/または宛先装置106への送信中に符号化されたビットストリーム110に導入されたエラーのために、ビデオシーケンス108に近似するビデオシーケンスを復号化し得る。
【0020】
ビデオディスプレイ122は、ビデオシーケンス108をユーザーに表示することができる。ビデオディスプレイ122は、陰極速度管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、および/またはビデオシーケンス108を表示するのに適した任意の他の表示装置を含んでもよい。
【0021】
ビデオ符号化/復号化システム100は、単に一例であり、ビデオ符号化/復号化システム100および/またはビデオ符号化/復号化システム100の変更バージョンとは異なるビデオ符号化/復号化システムは、本明細書に記載の方法およびプロセスを実行し得る。例えば、ビデオ符号化/復号化システム100は、他のコンポーネントおよび/または配置を含んでもよい。ビデオソース112は、ソース装置102の外部にあり得る。ビデオ表示装置122は、宛先装置106の外部にあってもよく、または(例えば、ビデオシーケンス108が機械および/または記憶装置による消費を意図している場合)完全に省略され得る。ソース装置102は、ビデオデコーダーをさらに含んでもよく、宛先装置104は、ビデオエンコーダーをさらに含んでもよい。例えば、ソース装置102は、宛先装置106から符号化されたビットストリームをさらに受信して、デバイス間の双方向ビデオ送信をサポートするように構成され得る。
【0022】
エンコーダー114および/またはデコーダー120は、一つまたは複数の専有または業界ビデオコーディング規格に従って動作し得る。例えば、エンコーダー114および/またはデコーダー120は、一つまたは複数の専有の、オープンソースの、および/または規格化されたプロトコル(例えば、国際電気通信連合電気通信規格化部門(ITU-T)H.263、ITU-T H.264、および動画像専門家グループ(MPEG)-4ビジュアル(Advanced Video Coding(AVC)としても知られる)、ITU-T H.265およびMPEG-H Part 2(High Efficiency Video Coding(HEVC)としても知られる)、ITU-T H.265およびMPEG-IPart 3(Versatile Video Coding(VVC)としても知られる)、WebM VP8およびVP9コーデック、および/またはAOMedia Video 1(AV1))、および/またはその他の通信プロトコルに従って動作することができる。
【0023】
図2は、例示的なエンコーダーを示す。
図2に示すエンコーダー200は、本明細書に記載の一つまたは複数のプロセスを実装し得る。エンコーダー200は、より効率的な記憶および/または送信のために、ビデオシーケンス202をビットストリーム204に符号化し得る。エンコーダー200は、
図1に示すようにビデオコーディング/デコーディングシステム100(例えば、エンコーダー114として)、または任意のコンピューティング、通信、もしくは電子デバイス(例えば、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォン、ウェアラブルデバイス、テレビ、カメラ、ビデオゲームコンソール、セットトップボックス、ビデオストリーミングデバイスなど)に実装され得る。エンコーダー200は、インター予測ユニット206、イントラ予測ユニット208、コンバイナー210および212、変換および量子化ユニット(TR+Q)ユニット214、逆変換および量子化ユニット(iTR+iQ)216、エントロピーコーディングユニット218、一つまたは複数のフィルター220、および/またはバッファ222のうちの一つまたは複数を含んでもよい。
【0024】
エンコーダー200は、ビデオシーケンス202のピクチャー(例えば、フレーム)をブロックに分割し(例えば、これを含み)、ブロックごとにビデオシーケンス202を符号化し得る。エンコーダー200は、インター予測ユニット206またはイントラ予測ユニット208のいずれかを使用して符号化されるブロック上で予測技術を実行/適用し得る。インター予測ユニット206は、ビデオシーケンス202の別の再構成されるピクチャー(例えば、基準ピクチャー)で符号化されるブロックに類似したブロックを検索することによってインター予測を実行し得る。再構成されるピクチャーは、符号化され、その後復号化されたピクチャーであり得る。次に、検索中に決定されるブロック(例えば、予測ブロック)を使用して、冗長情報を除去するために符号化されるブロックを予測し得る。インター予測ユニット206は、ビデオシーケンス202のピクチャーからピクチャーまでのシーンコンテンツにおける時間的冗長性または類似性を利用して、予測ブロックを決定し得る。例えば、ビデオシーケンス202のピクチャー間のシーンコンテンツは、経時的にスクリーンコンテンツの動きまたはアフィン変換による差異を除いて類似し得る。
【0025】
イントラ予測ユニット208は、ビデオシーケンス202の同じピクチャー内で符号化されるブロックの再構成される隣接サンプルからのデータに基づき予測ブロックを形成することによって、イントラ予測を実行し得る。再構成されるサンプルは、符号化され、次いで復号化されたサンプルを指し得る。イントラ予測ユニット208は、ビデオシーケンス202のピクチャー内のシーンコンテンツにおける空間的冗長性または類似性を利用して、予測ブロックを決定し得る。例えば、ピクチャーの中のシーンコンテンツの領域のテクスチャーは、同じピクチャーの中のシーンコンテンツの領域のすぐ周囲の領域のテクスチャーと類似し得る。
【0026】
コンバイナー210は、符号化されるブロックと予測ブロックとの間の差に基づき、予測誤差(例えば、残差)を決定し得る。予測誤差は、ビデオシーケンスの正確な復号化のためにデコーダーに送信/伝達され得る非冗長情報を表し得る。
【0027】
変換および量子化ユニット214は、予測誤差を変換および量子化し得る。変換および量子化ユニット214は、例えば、DCTを適用して、予測誤差の相関情報を減少させることによって、予測誤差を変換係数に変換し得る。変換および量子化ユニット214は、変換係数のデータを、所定の代表値のセットにマッピングすることによって、係数を量子化し得る。変換および量子化ユニット214は、係数を量子化して、ビットストリーム204内の無関係な情報を低減し得る。無関係な情報は、(例えば、受信装置で)復号化後、ビデオシーケンス202に可視および/または知覚可能な歪みを生成することなく、係数から除去され得る情報であり得る。
【0028】
エントロピーコーディングユニット218は、一つまたは複数のエントロピーコーディング方法を量子化変換係数に適用して、ビットレートをさらに低減し得る。例えば、エントロピーコーディングユニット218は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ演算コーディング(CABAC)、および/またはコンテキストベースのバイナリ演算コーディング(SBAC)を適用し得る。エントロピー符号化された係数は、ビットストリーム204を形成するようにパックされ得る。
【0029】
逆変換および量子化ユニット216は、量子化変換係数を逆量子化および逆変換して、再構成される予測誤差を決定し得る。コンバイナー212は、再構成される予測誤差を予測ブロックと組み合わせて、再構成されるブロックを形成し得る。フィルター220は、例えば、非ブロック化フィルターおよび/またはサンプル適応オフセット(SAO)フィルターを使用して、再構成されるブロックをフィルター処理し得る。バッファ222は、再構成されるブロックを、ビデオシーケンス202の同じおよび/または異なるピクチャー内の一つまたは複数の他のブロックの予測のために記憶し得る。
【0030】
エンコーダー200は、エンコーダー制御ユニットをさらに含んでもよい。エンコーダー制御ユニットは、
図2に示すエンコーダー200の一つまたは複数のユニットを制御するように構成し得る。エンコーダー制御ユニットは、ビットストリーム204が、一つまたは複数の専有コーディングプロトコル、業界ビデオコーディング規格、および/または任意の他の通信プロトコルの要件に従って生成され得るように、エンコーダー200の一つまたは複数のユニットを制御し得る。例えば、エンコーダー制御ユニットは、ビットストリーム204が、ITU-T H.263、AVC、HEVC、VVC、VP8、VP9、AV1およびまたは任意の他のビデオコーディング規格/フォーマットの一つまたは複数に準拠して生成されるように、エンコーダー200の一つまたは複数のユニットを制御し得る。
【0031】
エンコーダー制御ユニットは、ビットストリーム204のビットレートを最小化(または低減)すること、および/または再構成されるビデオ品質を最大化(または増加)すること(例えば、専有コーディングプロトコル、業界ビデオコーディング規格、および/または任意の他の通信プロトコルの制約内)を試み得る。例えば、エンコーダー制御ユニットは、再構成されるビデオ品質が特定のレベル/閾値を下回らないように、ビットストリーム204のビットレートを最小化もしくは低減しようと試みてもよく、および/またはビットストリーム204のビットレートが特定のレベル/閾値を超過しないように、再構成されるビデオ品質を最大化もしくは増加しようと試みてもよい。エンコーダー制御ユニットは、ブロックがインター予測ユニット206によってインター予測されるか、またはイントラ予測ユニット208によってイントラ予測されるか、にかかわらず、ビデオシーケンス202のピクチャーをブロックに分割すること、ブロックのインター予測のための動きベクトル、ブロックのイントラ予測のための複数のイントラ予測モードのうちのイントラ予測モード、フィルター220によって実行されるフィルターリング、および/または変換および量子化ユニット214によって適用される一つまたは複数の変換タイプおよび/または量子化パラメーター、のうちの一つまたは複数を決定/制御することができる。エンコーダー制御ユニットは、符号化されるブロックまたはピクチャーに対するレート歪み測定に基づき、上記のうちの一つまたは複数を決定/制御し得る。エンコーダー制御ユニットは、上記のうちの一つまたは複数を決定/制御して、符号化されるブロックまたはピクチャーのレート歪み測定を低減し得る。
【0032】
ブロックを符号化するために使用される予測タイプ(イントラまたはインター予測)、ブロックの予測情報(イントラ予測の場合、イントラ予測モード、動きベクトルなど)、および/または変換および/または量子化パラメーターが、(例えば、ビットレートを低減するために)さらに圧縮されるエントロピーコーディングユニット218に送信され得る。予測タイプ、予測情報、ならびに変換および/または量子化パラメーターは、ビットストリーム204を形成するために、予測誤差でパックされ得る。
【0033】
エンコーダー200は、単に一例であり、エンコーダー200および/またはエンコーダー200の変更バージョンとは異なるエンコーダーは、本明細書に記載の方法およびプロセスを実施し得る。例えば、エンコーダー200は、他のコンポーネントおよび/または配置を有し得る。
図2に示すコンポーネントのうちの一つまたは複数は、エンコーダー200(例えば、エントロピーコーディングユニット218および/またはフィルター220)に任意に含まれてもよい。
【0034】
図3は、例示的なデコーダーを示す。
図3に示すデコーダー300は、本明細書に記載の一つまたは複数のプロセスを実装し得る。デコーダー300は、ビットストリーム302を、表示および/または何らかの他の形態の消費のために復号化されたビデオシーケンスに復号化し得る。デコーダー300は、
図1のビデオコーディング/デコーディングシステム100、および/またはコンピューティング、通信、もしくは電子デバイス(例えば、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォン、ウェアラブルデバイス、テレビ、カメラ、ビデオゲームコンソール、セットトップボックス、および/またはビデオストリーミングデバイス)に実装され得る。デコーダー300は、エントロピーデコーディングユニット306、逆変換および量子化(iTR+iQ)ユニット308、コンバイナー310、一つまたは複数のフィルター312、バッファ314、インター予測ユニット316、および/またはイントラ予測ユニット318を含んでもよい。
【0035】
デコーダー300は、デコーダー300の一つまたは複数のユニットを制御するように構成されるデコーダー制御ユニットを含み得る。デコーダー制御ユニットは、ビットストリーム302が、一つまたは複数の専有コーディングプロトコル、業界ビデオコーディング規格、および/または任意の他の通信プロトコルの要件に従って復号化されるように、デコーダー300の一つまたは複数のユニットを制御し得る。例えば、デコーダー制御ユニットは、ビットストリーム302が、ITU-T H.263、AVC、HEVC、VVC、VP8、VP9、AV1およびまたは任意の他のビデオコーディング規格/フォーマットの一つまたは複数に準拠して復号化されるように、デコーダー300の一つまたは複数のユニットを制御し得る。
【0036】
デコーダー制御ユニットは、ブロックがインター予測ユニット316によってインター予測されるか、イントラ予測ユニット318によってイントラ予測されるか、にかかわらず、ブロックのインター予測のための動きベクトル、ブロックのイントラ予測のための複数のイントラ予測モードのうちのイントラ予測モード、フィルター312によって実行されるフィルターリング、および/または逆変換および量子化ユニット308によって適用される一つまたは複数の逆変換タイプおよび/または逆量子化パラメーター、のうちの一つまたは複数を決定/制御することができる。デコーダー制御ユニットによって使用される制御パラメーターのうちの一つまたは複数は、ビットストリーム302にパックされ得る。
【0037】
エントロピーデコーディングユニット306は、ビットストリーム302をエントロピーデコーディングし得る。逆変換および量子化ユニット308は、量子化変換係数を逆量子化および/または逆変換して、復号化予測誤差を決定し得る。コンバイナー310は、復号化された予測誤差を予測ブロックと組み合わせて、復号化されたブロックを形成し得る。予測ブロックは、インター予測ユニット318またはインター予測ユニット316によって生成され得る(例えば、
図2のエンコーダー200に関して上述したように)。フィルター312は、例えば、非ブロック化フィルターおよび/またはサンプル適応オフセット(SAO)フィルターを使用して、復号化されたブロックをフィルターリングし得る。バッファ314は、ビットストリーム302内のビデオシーケンスの同じおよび/または異なるピクチャー内の一つまたは複数の他のブロックの予測のために、復号化されたブロックを記憶し得る。
図3に示すように、復号化されたビデオシーケンス304は、フィルター312から出力され得る。
【0038】
デコーダー300は、単に一例であり、デコーダー300および/またはデコーダー300の変更バージョンとは異なるデコーダーが、本明細書に記載の方法およびプロセスを実施し得る。例えば、デコーダー300は、他のコンポーネントおよび/または配置を有し得る。
図3に示すコンポーネントのうちの一つまたは複数は、任意選択的に、デコーダー300(例えば、エントロピーデコーディングユニット306および/またはフィルター312)に含まれてもよい。
【0039】
図2および
図3には示されていないが、エンコーダー200およびデコーダー300の各々は、インター予測およびイントラ予測ユニットに加えて、イントラブロックコピーユニットをさらに含んでもよい。イントラブロックコピーユニットは、インター予測ユニットと同様に実行/動作し得るが、同じピクチャー内のブロックを予測し得る。例えば、イントラブロックコピーユニットは、スクリーンコンテンツに現れる反復パターンを利用し得る。スクリーンコンテンツは、コンピューター生成テキスト、グラフィック、アニメーションなどを含み得る。
【0040】
ビデオ符号化および/または復号化は、ブロックごとに実施され得る。ピクチャーをブロックに分割するプロセスは、ピクチャーの内容に基づき適応的であり得る。例えば、コーディング効率を改善するために、より高いレベルの均質性を有するピクチャーの領域で、より大きなブロック分割が使用され得る。
【0041】
ピクチャー(例えば、HEVC、または任意の他のコーディング規格/フォーマット)は、コーディングツリーブロック(CTB)と称され得る、重複しない正方形ブロックに分割され得る。CTBは、サンプルアレイのサンプルを含んでもよい。CTBは、2n×2nサンプルのサイズを有してもよく、nは、符号化システムのパラメーターによって指定され得る。例えば、nは、4、5、6、または任意の他の値であり得る。CTBは、任意の他のサイズを有し得る。CTBは、半垂直および半水平サイズのコーディングブロック(CB)に再帰的な四分木分割によってさらに分割され得る。CTBは、四分木の根を形成し得る。再帰的な四分木分割の一部としてさらに分割されないCBは、四分木の葉CBと称されてもよく、そうでなければ、四分木の非葉CBと称され得る。CBは、符号化システムのパラメーターによって指定された最小サイズを有し得る。例えば、CBは、4×4、8×8、16×16、32×32、64×64のサンプルの最小サイズ、または任意の他の最小サイズを有し得る。CBは、インター予測およびイントラ予測を実行するために、一つまたは複数の予測ブロック(PB)にさらに分割され得る。PBは、同じ予測タイプ/モードが適用され得るサンプルの長方形ブロックであり得る。変換のために、CBは、一つまたは複数の変換ブロック(TB)に分割され得る。TBは、適用された変換サイズを決定/示し得る、サンプルの長方形ブロックであり得る。
【0042】
図4は、CTBの四分木分割の例を示す。
図5は、
図4のCTB400の例示的な四分木分割に対応する四分木を示す。
図4および5に示すように、CTB400は、最初に、半垂直および半水平サイズの四つのCBに分割され得る。CTB400の第一のレベル分割の結果として得られるCBのうちの三つは、葉CBであり得る。CTB400の第一のレベル分割の三つの葉CBは、
図4および5でそれぞれ7、8、および9と標識される。CTB400の第一のレベル分割の非葉CBは、半垂直および半水平サイズの四つのサブCBに分割され得る。CTB400の第二のレベル分割の結果的なサブCBのうちの三つは、葉CBであり得る。CTB400の第二のレベル分割の三つの葉CBは、
図4および5でそれぞれ0、5、および6と標識される。CTB400の第二のレベル分割の非葉CBは、半垂直および半水平サイズの四つの葉CBに分割され得る。四つの葉CBは、
図4および
図5においてそれぞれ1、2、3、および4と標識され得る。
【0043】
図4のCTB400は、それぞれ0~9と標識された10の葉CB、および/または任意の他の数葉CBに分割され得る。10の葉CBは、10のCB葉ノード(例えば、
図5)に対応し得る。他の実施例では、CTBは、異なる数の葉CBに分割され得る。CTB400の結果的な四分木分割は、zスキャン(例えば、左から右、上から下)を使用してスキャンされて、CB葉ノードを符号化/復号化するためのシーケンス順序を形成し得る。
図4および
図5の各CB葉ノードの数値ラベル(例えば、インジケーター、インデックス)は、符号化/復号化のためのシーケンス順序に対応し得る。例えば、CB葉ノード0は、最初に符号化/復号化されてもよく、CB葉ノード9は、最後に符号化/復号化され得る。
図4および5には示されていないが、各、CB葉ノードは、一つまたは複数のPBおよび/またはTBを含んでもよい。
【0044】
VVC(または任意の他のコーディング規格/フォーマット)内のピクチャーは、同様の様式(HEVCなど)で分割され得る。ピクチャーは、まず、重複しない正方形CTBに分割され得る。次いで、CTBは、再帰的な四分木分割を使用して、半垂直および半水平サイズのCBに分割され得る。(例えば、VVC中の)四分木葉ノードは、二分木または三分木の分割(または任意の他の分割)によって、等しくないサイズのCBにさらに分割され得る。
【0045】
図6は、例示的な二分木分割および三分木分割を示す。二分木分割は、親ブロックを垂直方向602または水平方向604のいずれかで半分に分割し得る。結果として得られる分割は、親ブロックと比較して半分のサイズであり得る。結果として得られる分割は、親ブロックサイズの半分未満および/または半分超のサイズに対応し得る。三分木分割は、垂直方向606または水平方向608のいずれかで、親ブロックを三つの部分に分割し得る。
図6は、中間分割が三分木分割内の他の二つの端分割の二倍の大きさであり得る実施例を示す。他の実施例では、分割は、互いおよび親ブロックに対して他のサイズであり得る。二元木分割および三分木分割は、マルチタイプツリー分割の例である。マルチタイプツリー分割は、親ブロックを他の量のより小さなブロックに分割することを含み得る。(例えば、VVC中の)ブロック分割戦略は、四分木分割への二分木および/または三分木分割の追加のために、四分木+マルチタイプツリー分割と呼んでもよい。
【0046】
図7は、CTBの四分木およびマルチタイプツリー分割の組み合わせの例を示す。
図8は、
図7に示したCTB700の四分木とマルチタイプツリーを組み合わせた分割に対応する木を示す。
図7および
図8の両方において、四分木分割は実線で示され、マルチタイプツリー分割は破線で示される。CTB700は、
図4に記載されるCTB400と同じ四分木分割で示され、CTB700の四分木分割の説明は省略される。CTB700の四分木分割は、単に一例であり、CTBは、CTB700とは異なる様式で四分木分割され得る。CTB700の追加的なマルチタイプツリー分割は、
図4に示される三つの葉CBに対して行われ得る。さらに分割されるものとして
図7に示される
図4の三つの葉CBは、葉CB5、8、および9であり得る。三つの葉CBは、一つまたは複数の二分木および三分木分割を使用してさらに分割され得る。
【0047】
図4の葉CB5は、垂直二分木分割に基づき、二つのCBに分割され得る。結果として得られる二つのCBは、
図7および
図8でそれぞれ5および6と標識された葉CBであり得る。
図4の葉CB8は、垂直三分木分割に基づき、三つのCBに分割され得る。三つの結果として生じるCBのうち二つは、
図7および8でそれぞれ9および14と標識された葉CBであり得る。残りの非葉CBは、水平二分木分割に基づき、最初に二つのCBに分割され得る。二つのCBのうちの一つは、10と標識された葉CBであり得る。二つのCBのうちの他方は、垂直三分木分割に基づき、三つのCBにさらに分割され得る。得られた三つのCBは、
図7および8でそれぞれ11、12、および13と標識された葉CBであり得る。
図4の葉CB9は、水平三分木分割に基づき、三つのCBに分割され得る。三つのCBのうち二つは、
図7および8でそれぞれ15および19と標識された葉CBであり得る。残りの非葉CBは、別の水平三分木分割に基づき、三つのCBに分割され得る。得られた三つのCBは全て、
図7および8でそれぞれ16、17、および18と標識された葉CBであり得る。
【0048】
全体として、CTB700は、それぞれ0~19と標識された20の葉CBに分割され得る。CTB700の結果的な四分木+マルチタイプツリー分割は、zスキャン(左から右、上から下)を使用してスキャンされて、CB葉ノードを符号化/復号化するためのシーケンス順序を形成し得る。
図7および
図8の各CB葉ノードの数値ラベルは、CB葉ノード0が最初に符号化/復号化され、CB葉ノード19が最後に符号化/復号化された状態で、符号化/復号化のシーケンス順序に対応し得る。
図7および
図8には示されていないが、各、CB葉ノードは、一つまたは複数のPBおよび/またはTBを含んでもよいことに留意されたい。
【0049】
コーディング規格/フォーマット(例えば、HEVC、VVC、またはコーディング規格/フォーマットの任意の他のもの)は、(例えば、さまざまなブロック(例えば、CTB、CB、PB、TB)を指定することに加えて)さまざまなユニットを定義し得る。ブロックは、サンプルアレイ内のサンプルの長方形領域を含み得る。ユニットは、ピクチャーならびにブロックのシンタックス要素および予測データを形成する異なるサンプルアレイ(例えば、輝度および彩度サンプルアレイ)からのサンプルの共位置にされたブロックを含み得る。コーディングツリーユニット(CTU)は、異なるサンプルアレイの併置されたCTBを含んでもよく、符号化されたビットストリーム内に完全なエンティティを形成し得る。コーディングユニット(CU)は、CBのサンプルを符号化するために使用される異なるサンプルアレイおよびシンタックス構造の併置されたCBを含んでもよい。予測ユニット(PU)は、PBを予測するために使用される異なるサンプルアレイおよびシンタックス要素の併置されたPBを含み得る。変換ユニット(TU)は、TBを変換するために使用される異なるサンプルアレイおよびシンタックス要素のTBを含んでもよい。
【0050】
ブロックは、CTB、CB、PB、TB、CTU、CU、PU、および/またはTUのいずれかを指し得る(例えば、HEVC、VVC、または任意の他のコーディングフォーマット/規格の文脈において)。ブロックは、任意のビデオコーディングフォーマット/規格/プロトコルの文脈における類似のデータ構造を指すために使用され得る。例えば、ブロックは、AVC規格におけるマクロブロック、VP8コードフォーマットにおけるマクロブロックもしくはサブブロック、VP9コードフォーマットにおけるスーパーブロックもしくはサブブロック、またはAV1コードフォーマットにおけるスーパーブロックもしくはサブブロックを指し得る。
【0051】
符号化されるブロックのサンプル(例えば、現在のブロック)は、現在のブロックの左端の列に隣接する列のサンプル、およびイントラ予測など、現在のブロックの最上行に隣接する行のサンプルから予測され得る。隣接する列および行からのサンプルは、基準サンプルと総称され得る。現在のブロックの各サンプルは、現在のブロック内のサンプルの位置を、基準サンプルに沿った点に対して所与の方向に投影することによって(例えば、イントラ予測モードで)予測され得る。サンプルは、投影が基準サンプル上に直接入らない場合、投影点の二つの最も近い基準サンプル間で補間することによって予測され得る。予測誤差(例えば、残差)は、現在のブロックの予測サンプル値と元のサンプル値との間の差に基づき、現在のブロックに対して決定され得る。
【0052】
サンプルを予測すること、および予測サンプルと元のサンプルとの間の差に基づき予測誤差を決定することが、複数の異なるイントラ予測モード(例えば、非方向性イントラ予測モードを含む)に対して(例えば、エンコーダーで)実施され得る。エンコーダーは、現在のブロックを符号化するために、複数のイントラ予測モードのうちの一つおよびその対応する予測誤差を選択し得る。エンコーダーは、現在のブロックの復号化のために、選択された予測モードおよびその対応する予測誤差の表示をデコーダーに送信し得る。デコーダーが、エンコーダーによって示されるイントラ予測モードを使用して、現在のブロックのサンプルを予測すること、および/または予測サンプルを予測誤差と組み合わせることによって、現在のブロックを復号化し得る。
【0053】
図9は、現在のブロックのイントラ予測のために決定された基準サンプルの例示的なセットを示す。現在のブロック904は、エンコードおよび/または復号化されるブロックに対応し得る。現在のブロック904は、
図7に示すように、分割されたCTB700のブロック3に対応することができる。本明細書に記載されるように、分割されたCTB700のブロックの数値ラベル0~19は、ブロックを符号化/復号化するためのシーケンス順序に対応してもよく、
図9の実施例のように使用され得る。
【0054】
現在のブロック904は、サイズがw×hサンプルであり得る。基準サンプル902は、現在のブロック904の最上行に隣接する行の2wサンプル(または任意の他の数のサンプル)、現在のブロック904の最左端列に隣接する列の2hサンプル(または任意の他の数のサンプル)、および現在のブロック904に対する左上隣接隅サンプルを含み得る。現在のブロック904は、w=h=sであるように、正方形であり得る。他の実施例では、現在のブロックは、w≠hであるように正方形である必要はない。現在のブロック904の隣接ブロックからの利用可能なサンプルは、基準サンプル902のセットを構築するために使用され得る。サンプルは、基準サンプル902のセットを構築するために利用できない場合があり例えば、サンプルが現在のブロックのピクチャーの外側にある場合、サンプルは現在のブロックの異なるスライスの一部であり(例えば、スライスの概念が使用される場合)、および/またはサンプルは、インターコードされたブロックに属し、かつ制約されたイントラ予測が示される。例えば、制約されたイントラ予測が示される場合、イントラ予測は、インター予測ブロックに依存し得ない。
【0055】
基準サンプル902のセットを構築するために利用可能ではないサンプルは、符号化/復号化のためのシーケンス順序に基づき、エンコーダーでまだ符号化および再構成されていない、ならびに/またはデコーダーで復号化されていないブロック内のサンプルを含み得る。基準サンプルのセット内に含めることからのこうしたサンプルの制限は、エンコーダーおよびデコーダーの両方で同一の予測結果を決定することを可能にし得る。隣接ブロック0、1、および2からのサンプルは、これらのブロックがエンコーダーで符号化および再構成され、現在のブロック904の符号化の前にデコーダーで復号化されることを考慮すると、基準サンプル902を構築するために利用可能であり得る。隣接ブロック0、1、および2からのサンプルは、例えば、隣接ブロック0、1、および2からのサンプルの利用可能性を妨げる他の問題(例えば、上述のような)がなければ、基準サンプル902を構築するために利用可能であり得る。隣接ブロック6からの基準サンプル902の部分は、符号化/復号化のためのシーケンス順序のために利用可能でない可能性がある(例えば、ブロック6は、符号化/復号化のためのシーケンス順序に基づいて、エンコーダーにおいてまだ符号化および再構成されておらず、かつ/またはデコーダーにおいて復号化されていない可能性があるため)。
【0056】
基準サンプル902からの利用できないサンプルは、利用可能な基準サンプル902のうちの一つまたは複数で充填され得る。例えば、利用できない基準サンプルは、最も近い利用可能な基準サンプルで充填され得る。最も近い利用可能な基準サンプルは、利用できない基準の位置から基準サンプル902を通して時計回り方向に移動することによって決定され得る。基準サンプル902は、例えば、基準サンプルが利用できない場合に、ピクチャーが符号化される動的範囲の中間値で充填され得る。
【0057】
基準サンプル902は、符号化される現在のブロック904のサイズおよび適用されるイントラ予測モードに基づきフィルターリングされ得る。
図9は、ブロックのイントラ予測のための基準サンプルの例示的な決定を示す。基準サンプルは、上述のものとは異なる方法で決定され得る。例えば、複数の基準線は、他の実例(例えば、VVC)で使用され得る。
【0058】
現在のブロック904のサンプルは、基準サンプル902に基づき、例えば、基準サンプルの決定および(任意選択的に)フィルターリングに基づき、イントラ予測され得る。少なくとも一部の(例えば、ほとんどの)エンコーダー/デコーダーが、一つまたは複数のビデオコーディング規格に従って、複数のイントラ予測モードをサポートし得る。例えば、HEVCは、平面モード、直流(DC)モード、および33の角度モードを含む、35のイントラ予測モードをサポートする。VVCは、平面モード、DCモード、および65の角度モードを含む、67のイントラ予測モードをサポートする。平面およびDCモードを使用して、ピクチャーの滑らかで徐々に変化する領域を予測し得る。角度モードは、ピクチャーの領域における方向構造を予測するために使用され得る。任意の量のイントラ予測モードがサポートされ得る。
【0059】
図10Aおよび10Bは、例示的なイントラ予測モードを示す。
図10Aは、HEVCによってサポートされるなどの35のイントラ予測モードを示す。35のイントラ予測モードは、インデックス0~34によって示され/識別され得る。予測モード0は、平面モードに対応し得る。予測モード1は、DCモードに対応し得る。予測モード2~34は、角度モードに対応し得る。予測モード2~18は、主予測源が水平方向にあるため、水平予測モードと呼んでもよい。予測モード19~34は、主予測源が垂直方向にあるため、垂直予測モードと呼んでもよい。
【0060】
図10Bは、VVCによってサポートされるなど、67のイントラ予測モードを示す。67のイントラ予測モードは、インデックス0~66によって示され/識別され得る。予測モード0は、平面モードに対応し得る。予測モード1はDCモードに対応する。予測モード2~66は、角度モードに対応し得る。予測モード2~34は、主予測源が水平方向にあるため、水平予測モードと呼んでもよい。予測モード35~66は、主予測源が垂直方向にあるため、垂直予測モードと呼んでもよい。
図10Bに示されるイントラ予測モードのいくつかは、VVCのブロックが正方形である必要はないため、広角方向によって適応的に置換され得る。
【0061】
図11は、現在のブロックおよび対応する基準サンプルを示す。
図11では、
図9からの現在のブロック904および基準サンプル902は、二次元x、y平面に示され、サンプルはp[x][y]として参照され得る。予測プロセスを簡略化するために、基準サンプル902は、二つの一次元アレイに配置され得る。現在のブロック904の上方の基準サンプル902は、一次元アレイref
1[x]に配置され得る。
ref
1[x]=p[-1+x][-1],(x≧0) (1)
【0062】
現在のブロック904の左の基準サンプル902は、一次元アレイref2[y]に配置され得る。
ref2[y]:=p[-1][-1+y],(y≧0) (2)
【0063】
予測プロセスは、現在のブロック904内の位置[x][y]における予測サンプルp[x][y](例えば、予測値)の決定を含み得る。平面モードの場合、現在のブロック904内の位置〔x][y〕にあるサンプルは、二つの補間値の平均を決定/計算することによって予測され得る。二つの補間値のうちの第一のものは、現在のブロック904内の位置[x][y]における水平線形補間に基づいてもよい。二つの補間値のうちの二つ目は、現在のブロック904内の位置[x][y]での垂直線形補間に基づいてもよい。現在のブロック904における予測サンプルp[x][y]は、以下のように決定/計算され得る。
【数1】
式中、
h[x][y]=(s-x-1)・ref
2[y]+(x+1)・ref
1[s](4)
は、現在のブロック904内の位置[x][y]における水平線形補間であってもよく、
v[x][y]=(s-y-1)・ref
1[x]+(y+1)・ref
2[s](5)
は、現在のブロック904内の位置[x][y]における垂直線形補間であり得る。sは、現在のブロック904の側面(例えば、側面上のサンプルの数)の長さと等しくてもよい。
【0064】
現在のブロック904内の位置[x][y]のサンプルは、DCモードなど、基準サンプル902の平均によって予測され得る。現在のブロック904における予測サンプルp[x][y]は、以下のように決定/計算され得る。
【数2】
【0065】
現在のブロック904内の位置[x][y]におけるサンプルは、所与の角度モードによって指定された方向に、角度モードなどについて、基準サンプル902を含むサンプルの水平または垂直線上の点に、位置[x][y]を投影することによって予測され得る。位置[x][y]のサンプルは、突出部が基準サンプル上に直接入らない場合、投影点の二つの最も近い基準サンプル間で補間することによって予測され得る。角度モードによって指定された方向は、垂直予測モード(例えば、HEVCのモード19~34およびVVCのモード35~66)のy軸に対して画定される角度φによって与えられてもよい。角度モードによって指定された方向は、水平予測モード(例えば、HEVCのモード2~18およびVVCのモード2~34)のx軸に対して画定される角度φによって与えられてもよい。
【0066】
図12は、現在のブロックの予測のためのイントラ予測モードの適用を示す。
図12は、垂直予測モード906に対する、現在のブロック904内の位置[x][y]での試料の予測を具体的に示す。垂直予測モード906は、垂直軸に対して角度φによって与えられてもよい。垂直投影モードにおける、現在のブロック904内の位置[x][y]は、基準サンプルの水平線ref
1[x]上の点(例えば、投影点)に投影され得る。基準サンプル902は、例示を容易にするために
図12に部分的にのみ示される。
図12に見られるように、基準サンプルref
1[x]の水平線上の投影点は、正確には基準サンプル上にない場合があり現在のブロック904の予測サンプルp[x][y]は、例えば、投影点が二つの基準サンプル間の分画サンプル位置に落下する場合、二つの基準サンプル間で直線補間することによって決定/計算され得る。予測サンプルp[x][y]は、以下のように決定され得る。
p[x][y]=(1-i
f)・ref
1[x+i
i+1]+i
f・ref
1[x+i
i+2] (7)
i
iは、位置[x][y]に対する投影点の水平変位の整数部分であり得る。i
iは、垂直予測モード906の角度φの接線の関数として、以下のように決定/計算され得る。
【数3】
i
fは、位置[x][y]に対する投影点の水平変位の小数部であってもよく、下記のように、決定/計算され得る。
【数4】
式中
【数5】
は整数床関数である。
【0067】
現在のブロック904内のサンプルの位置[x][y]は、水平予測モードなど、基準サンプルref
2[y]の垂直線上に投影され得る。水平予測モードに対する予測サンプルp[x][y]は、以下のように決定/計算され得る。
p[x][y]=(1-i
f)・ref
2[y+i
i+1]+i
f・ref
2[y+i
i+2] (10)
i
iは、位置〔x][y〕に対する投影点の垂直変位の整数部分であってもよく、i
iは、水平予測モードの角度φの接線の関数として、以下のように決定/計算されてもよい。
【数6】
i
fは、位置[x][y]に対する投影点の垂直変位の小数部であり得る。i
fは、以下のように決定/計算され得る。
【数7】
式中
【数8】
は整数フロアである。
【0068】
式(7)および(10)によって与えられる補間関数は、エンコーダーおよび/またはデコーダー(例えば、
図2のエンコーダー200および/または
図3のデコーダー300)によって実装され得る。補間関数は、有限インパルス応答(FIR)フィルターによって実装され得る。例えば、補間関数は、2タップFIRフィルターのセットとして実装され得る。2タップFIRフィルターの係数は、それぞれ(1-i
f)およびi
fによって与えられてもよい。角度イントラ予測における予測サンプルp[x][y]は、いくつかの所定のレベルのサンプル精度(例えば、1/32サンプル精度、または任意の他の指標によって定義される精度)で計算され得る。1/32サンプル精度のために、2タップFIR補間フィルターのセットは、最大32の異なる2タップFIR補間フィルターを含んでもよく、これは、投影変位i
fの小数部の32の可能な値の各々に対して一つである。他の実施例では、異なるレベルのサンプル精度が使用され得る。
【0069】
FIRフィルターは、彩度サンプルおよび/または輝度サンプルを予測するために使用され得る。例えば、2タップ補間FIRフィルターは、彩度サンプルを予測するために使用されてもよく、同じまたは異なる補間技術/フィルターが、輝度サンプルに使用され得る。例えば、4タップFIRフィルターを使用して、輝度サンプルの予測値を決定し得る。4タップFIRフィルターの係数は、i
f(例えば、2タップFIRフィルターと類似)に基づき決定され得る。1/32サンプル精度のために、32の異なる4タップFIRフィルターのセットは、最大32の異なる4タップFIRフィルターを含んでもよく、これは、投影変位i
fの小数部の32の可能な値のそれぞれに対して一つである。他の実施例では、異なるレベルのサンプル精度が使用され得る。4タップFIRフィルターのセットは、ルックアップテーブル(LUT)に記憶され、i
fに基づき参照され得る。垂直予測モードに対する予測サンプルp[x][y]は、4タップFIRフィルターに基づいて以下のように決定され得る。
【数9】
式中、fT[i],i=0...3,はフィルター係数であってもよく、Idxは整数変位である。水平予測モードについて、予測サンプルp[x][y]は、以下のように4タップFIRフィルターに基づき決定され得る。
【数10】
【0070】
予測される現在のブロック904内のサンプルの位置[x][y]が負のx座標に投影される場合、補足的な基準サンプルを決定/構築し得る。サンプルの位置[x][y]は、例えば、負の垂直予測角度φが使用される場合、負のx座標に投影され得る。補足的な基準サンプルは、負の垂直予測角度φを使用して、基準サンプル902の垂直線内のref2[y]の基準サンプルを基準サンプル902の水平線に投影することによって決定/構築され得る。例えば、予測される現在のブロック904内のサンプルの位置[x][y]が負のy座標に投影される場合、補足的な基準サンプルも同様に決定され得る。サンプルの位置[x][y]は、例えば、負の水平予測角度φが使用される場合、負のy座標に投影され得る。補足的な基準サンプルは、負の水平予測角度φを使用して、基準サンプル902の水平線上のref2[y]の基準サンプルを基準サンプル902の垂直線に投影することによって決定/構築され得る。
【0071】
エンコーダーは、(例えば、本明細書に記載される機能のうちの一つまたは複数を使用して)複数のイントラ予測モードに対して符号化される現在のブロック(例えば、現在のブロック904)のサンプルを決定/予測し得る。例えば、エンコーダーは、HEVCにおける35のイントラ予測モードまたはVVCにおける67のイントラ予測モードの各々に対する現在のブロックのサンプルを予測することができる。エンコーダーは、適用される各イントラ予測モードについて、イントラ予測モードに対して決定された予測サンプルと現在のブロックの元のサンプルとの間の差(例えば、二乗差(SSD)の合計、絶対差(SAD)の合計、または絶対変換された差(SATD)の合計)に基づき、現在のブロックに対する対応する予測誤差を決定し得る。エンコーダーは、判定された予測誤差に基づき、現在のブロックを符号化するイントラ予測モードのうちの一つを決定/選択し得る。例えば、エンコーダーは、現在のブロックに対する最小の予測誤差をもたらすイントラ予測モードを選択し得る。エンコーダーは、イントラ予測モードを選択して、予測誤差を使用して決定されたレート歪み測定値(例えば、ラグランジアンレート歪みコスト)に基づき、現在のブロックを符号化し得る。エンコーダーは、現在のブロックの復号化のために、選択されたイントラ予測モードおよびその対応する予測誤差(例えば、残差)の表示をデコーダーに送信し得る。
【0072】
デコーダーが、イントラ予測モードに対して復号化される現在のブロック(例えば、現在のブロック904)のサンプルを決定/予測し得る。例えば、デコーダーが、ブロックのエンコーダーから予測モード(例えば、角度イントラ予測モード)の表示を受信し得る。デコーダーが、基準サンプルのセットを構築し、同様の様式で(例えば、エンコーダーについて上述したように)ブロックについてエンコーダーによって示される予測モードに基づきイントラ予測を実行し得る。デコーダーが、ブロックを再構成するために、ブロックの残差に、ブロックのサンプルの予測値(例えば、イントラ予測に基づき決定される)を追加する。デコーダーが、ブロックのエンコーダーから角度イントラ予測モードの表示を受信する必要はない。デコーダーが、例えば、他の基準に基づき、イントラ予測モードを決定し得る。本明細書のさまざまな実施例は、HEVCおよびVVCのイントラ予測モードに対応するが、本明細書に記載の方法、デバイス、およびシステムは、(例えば、VP8、VP9、AV1などの他のビデオコーディング規格/フォーマットで使用されるような)他のイントラ予測モードに適用/使用され得る。
【0073】
イントラ予測は、ビデオシーケンスの同じピクチャーの空間的に隣接サンプル間の相関を利用して、ビデオ圧縮を実施し得る。インター予測は、ビデオ圧縮を実施するために使用され得る別のコーディングツールである。インター予測は、ビデオシーケンスの異なるピクチャーのサンプルブロック間の時間ドメインの相関を利用し得る。例えば、物体は、ビデオシーケンスの複数のピクチャーにわたって見ることができる。物体は、複数のピクチャーにわたって(例えば、いくらかの並進運動および/またはアフィン運動によって)移動するか、または静止したままであり得る。符号化される現在のピクチャーのサンプルの現在のブロックは、以前に復号化されたピクチャーのサンプルの対応するブロックを有し得る/関連付けられ得る。対応するサンプルのブロックは、サンプルの現在のブロックを正確に予測し得る。サンプルの対応するブロックは、例えば、両方のブロックで表される物体がブロックのそれぞれのピクチャーにわたって移動することに起因して、サンプルの現在のブロックから変位され得る。以前に復号化されたピクチャーは、基準ピクチャーであり得る。基準ピクチャー内の対応するサンプルのブロックは、動き補償予測のための基準ブロックであり得る。エンコーダーは、ブロックマッチング技術を使用して、物体の変位(または動き)を推定し、および/または基準ピクチャー内の基準ブロックを決定し得る。
【0074】
エンコーダーは、現在のブロックと現在のブロックに対する予測との間の差を決定し得る。エンコーダーは、例えば、現在のブロックに対する予測(例えば、インター予測を使用して)を決定/生成することに基づき/決定/生成した後に、差を決定し得る。差は、予測誤差および/または残差と呼んでもよい。次に、エンコーダーは、ビットストリーム、予測誤差、および/または他の関連する予測情報を記憶および/または送信(例えば、信号)し得る。予測誤差および/または他の関連する予測情報は、復号化または他のフォーマットの消費に使用され得る。デコーダーが、現在のブロックのサンプルを予測することによって(例えば、関連する予測情報を使用することによって)、かつ予測サンプルを予測誤差と組み合わせることによって、現在のブロックを復号化し得る。
【0075】
図13Aは、インター予測の例を示す。インター予測は、符号化される現在のピクチャー1302の現在のブロック1300に対して実施され得る。エンコーダー(例えば、
図2に示すエンコーダー200)は、インター予測を実行して、基準ピクチャー1306内の基準ブロック1304を決定および/または生成し得る。基準ブロック1304は、現在のブロック1300を予測するために使用され得る。基準ピクチャー(例えば、基準ピクチャー1306)は、エンコーダーおよびデコーダーで利用可能な事前デコードピクチャーであり得る。以前の復号化されたピクチャーの可用性は、現在のブロック1300が符号化または復号化されるときに、以前の復号化されたピクチャーが復号化されたピクチャーバッファ内で利用可能かどうかに依存し得る/基づき得る。エンコーダーは、現在のブロック1300と類似している(または実質的に類似している)基準ブロックに対して一つまたは複数の基準ピクチャーを検索し得る。エンコーダーは、検索プロセス中に試験されたブロックから、最良に一致する基準ブロックを決定し得る。最良に一致する基準ブロックは、基準ブロック1304であり得る。エンコーダーは、基準ブロック1304が、一つまたは複数のコスト基準に基づき、最良に一致する基準ブロックであると決定し得る。一つまたは複数のコスト基準は、レート歪み基準(例えば、ラグランジアンレート歪みコスト)を含み得る。一つまたは複数のコスト基準は、基準ブロック1304の予測サンプルと現在のブロック1300の元のサンプルとの間の差(例えば、SSD、SAD、および/またはSATD)に基づいてもよい。
【0076】
エンコーダーは、基準領域1308内の基準ブロック1304を検索し得る。基準領域1308は、基準ピクチャー1306内の現在のブロック1300の併置位置(またはブロック)1310の周りに位置付けられ得る。併置されたブロック1310は、基準ピクチャー1306において、現在のピクチャー1302の現在のブロック1300と同じ位置を有し得る。基準領域1308は、検索範囲と呼んでもよい。基準領域1308は、基準ピクチャー1306の外側に少なくとも部分的に延在し得る。一定の境界延長部は、例えば、基準領域1308が基準ピクチャー1306の外側に延在する場合に使用され得る。一定の境界延長部は、基準ピクチャー1306の外側に延在する基準領域1308の一部分に隣接する、基準ピクチャー1306の行または列内のサンプルの値が、基準ピクチャー1306の外側のサンプル位置に使用され得るように使用され得る。基準領域1308内の潜在的な位置のサブセット、または全ての潜在的な位置は、基準ブロック1304について検索され得る。エンコーダーは、一つまたは複数の検索実装を利用して、基準ブロック1304を決定および/または生成し得る。例えば、エンコーダーは、現在のブロック1300に対する隣接ブロックの動き情報に基づき、候補検索位置のセットを決定し得る。
【0077】
一つまたは複数の基準ピクチャーは、インター予測中にエンコーダーによって検索されて、最良に一致する基準ブロックを決定および/または生成し得る。エンコーダーによって検索される基準ピクチャーは、一つまたは複数の基準ピクチャーリストに含まれ得る(例えば、追加され得る)。例えば、HEVCおよびVVCにおいて(および/または一つまたは複数の他の通信プロトコルにおいて)、二つの基準ピクチャーリスト(例えば、基準ピクチャーリスト0および基準ピクチャーリスト1)が使用され得る。基準ピクチャーリストは、一つまたは複数のピクチャーを含み得る。基準ブロック1304の基準ピクチャー1306は、基準ピクチャー1306を含む基準ピクチャーリストを指す基準インデックスによって示され得る。
【0078】
図13Bは、例示的な動きベクトルを示す。基準ブロック1304と現在のブロック1300との間の変位は、それぞれのピクチャーにわたる基準ブロック1304と現在のブロック1300との間の動きの推定として解釈され得る。変位は、動きベクトル1312によって表され得る。例えば、動きベクトル1312は、現在のブロック1300の位置に対する水平コンポーネント(MV
x)および垂直コンポーネント(MV
y)によって示され得る。動きベクトル(例えば、動きベクトル1312)は、小数または整数の解像度を有し得る。小数解像度を有する動きベクトルは、基準ピクチャー内の二つのサンプルの間に指し示して、現在のブロック1300の動きのより良い推定を提供し得る。例えば、動きベクトルは、1/2、1/4、1/8、1/16、1/32、または任意の他の分画サンプル解像度を有し得る。整数位置でのサンプル間の補間を使用して、例えば、動きベクトルが、基準ピクチャー内の非整数サンプル値を指す場合、基準ブロックおよびその対応するサンプルを分画位置で生成し得る。補間は、二つ以上のタップを有するフィルターによって実施され得る。
【0079】
エンコーダーは、基準ブロック1304と現在のブロック1300との間の差(例えば、対応するサンプル毎の差)を決定し得る。エンコーダーは、例えば、基準ブロック1304が、現在のブロック1300に対してインター予測を使用して決定および/または生成されたことに基づき/その後に、基準ブロック1304と現在のブロック1300との間の差を決定し得る。差は、予測誤差および/または残差と呼んでもよい。エンコーダーは、ビットストリーム、予測誤差および/または関連する動き情報内に/を介して、(例えば、信号)を記憶および/または送信し得る。予測誤差および/または関連する動き情報は、復号化(例えば、現在のブロック1300を復号化)および/または他の形態の消費に使用され得る。動き情報は、動きベクトル1312および/または基準インジケーター/インデックスを含み得る。基準インジケーターは、基準ピクチャーリスト内の基準ピクチャー1306を示し得る。動き情報は、動きベクトル1312の表示および/または基準インデックスの表示を含み得る。基準インデックスは、基準ピクチャーリスト内の基準ピクチャー1306を示し得る。デコーダーが、基準ブロック1304を決定および/または生成することによって、現在のブロック1300を復号化し得る。デコーダーが、例えば、動き情報に基づき、基準ブロック1304を決定および/または生成し得る。基準ブロック1304は、現在のブロック1300の予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることに基づき、現在のブロック1300を復号化し得る。
【0080】
図13Aに示すようにインター予測は、現在のブロック1300の予測のソースとして、一つの基準ピクチャー1306を使用して実施され得る。単一のピクチャーを使用した現在のブロックの予測に基づくインター予測は、単予測と呼んでもよい。
【0081】
図14は、双予測の例を示す。現在のブロック1400に対する予測は、双予測を使用して、二つのピクチャーに基づいてもよい。双予測は、例えば、ビデオシーケンスが高速動作、カメラパニング、ズーム、および/またはシーン変化を含む場合に有用であり得る。双予測は、一つのシーンからフェードアウトを撮像するために有用であってもよく、または一つのシーンから別のシーンへフェードアウトを撮像するために有用であってもよく、二つのピクチャーは、異なるレベルの強度で同時に効果的に表示され得る。
【0082】
単予測および双予測のうちの一方または両方は、インター予測(例えば、エンコーダーおよび/またはデコーダー)を実施するために利用可能/使用され得る。特定のタイプのインター予測(例えば、ユニ予測および/または双予測)を実行することが、現在のブロック1400のスライスタイプに依存し得る。例えば、Pスライスについては、インター予測を実行するために単予測のみが利用可能/使用され得る。Bスライスについては、インター予測を実行するために、単予測または双予測のいずれかを使用し得る。エンコーダーは、例えば、エンコーダーが単予測を使用する場合、基準ピクチャーリスト0から、現在のブロック1400を予測するための基準ブロックを決定および/または生成し得る。エンコーダーは、基準ピクチャーリスト0から現在のブロック1400を予測するための第一の基準ブロックを決定および/または生成し、例えば、エンコーダーが双予測を使用する場合、基準ピクチャーリスト1から現在のブロック1400を予測するための第二の基準ブロックを決定および/または生成し得る。
【0083】
図14は、双予測を使用して実施されるインター予測の例を示す。二つの基準ブロック1402および1404を使用して、現在のブロック1400を予測し得る。基準ブロック1402は、基準ピクチャーリスト0または基準ピクチャーリスト1のうちの一つの基準ピクチャー内にあり得る。基準ブロック1404は、基準ピクチャーリスト0または基準ピクチャーリスト1のうちの別の一つの基準ピクチャー内にあり得る。
図14に示すように、基準ブロック1402は、現在のブロック1400の現在のピクチャーに先行する(例えば、時間的に)第一のピクチャー内にあってもよく、基準ブロック1402は、現在のブロック1400の現在のピクチャーに続く(例えば、時間的に)第二のピクチャー内にあり得る。第一のピクチャーは、ピクチャーオーダーカウント(POC)の観点から、現在のピクチャーに先行し得る。第二のピクチャーは、POCの観点から現在のピクチャーに続き得る。基準ピクチャーは、POCの観点から、現在のピクチャーに先行するか、または現在のピクチャーに続き得る。POCは、ピクチャーが出力される順序(例えば、復号化されたピクチャーバッファから)であり得る/を示し得る。POCは、ピクチャーが一般的に表示されるように意図される順序であり得る/を示し得る。出力されるピクチャーは、必ずしも表示されなくてもよいが、異なる処理および/または消費(例えば、トランスコーディング)を受けてもよい。双予測を使用して/のために決定および/または生成された二つの基準ブロックは、同じ基準ピクチャーに対応し得る(例えば、含まれ得る)。基準ピクチャーは、例えば、二つの基準ブロックが同じ基準ピクチャーに対応する場合、基準ピクチャーリスト0および基準ピクチャーリスト1の両方に含まれ得る。
【0084】
構成可能な重みおよび/またはオフセット値が、一つまたは複数のインター予測基準ブロックに適用され得る。エンコーダーは、ピクチャーパラメーターセット(PPS)内のフラグを使用して、加重予測の使用を可能にし得る。エンコーダーは、現在のブロック1400のスライスセグメントヘッダー内の重み付けおよび/またはオフセットパラメーターを送信/シグナリングし得る。輝度コンポーネントおよび彩度コンポーネントについて、異なる重みおよび/またはオフセットパラメーターが信号送信され得る。
【0085】
エンコーダーは、インター予測を使用して、現在のブロック1400の基準ブロック1402および1404を決定および/または生成し得る。エンコーダーは、現在のブロック1400と基準ブロック1402および1404の各々との間の差を決定し得る。差異は、予測誤差または残差と呼んでもよい。エンコーダーは、ビットストリーム内に/を介して、予測誤差およびそれらのそれぞれの関連する動き情報を記憶および/または送信/シグナリングし得る。予測誤差およびそれらのそれぞれの関連する動き情報は、復号化または他の形態の消費に使用され得る。基準ブロック1402に対する動き情報は、動きベクトル1406および基準インジケーター/インデックスを含み得る。基準インジケーターは、基準ピクチャーリスト内の基準ブロック1402の基準ピクチャーを示し得る。基準ブロック1402に対する動き情報は、動きベクトル1406の表示および/または基準インデックスの表示を含み得る。基準インデックスは、基準ピクチャーリスト内の基準ブロック1402の基準ピクチャーを示し得る。
【0086】
基準ブロック1404に対する動き情報は、動きベクトル1408および/または基準インデックス/インジケーターを含み得る。基準インジケーターは、基準ピクチャーリスト内の基準ブロック1408の基準ピクチャーを示し得る。基準ブロック1404に対する動き情報は、動きベクトル1408の表示および/または基準インデックスの表示を含み得る。基準インデックスは、基準ピクチャーリスト内の基準ブロック1404の基準ピクチャーを示し得る。
【0087】
デコーダーが、基準ブロック1402および1404を決定および/または生成することによって、現在のブロック1400を復号化し得る。デコーダーが、例えば、基準ブロック1402および1404に対するそれぞれの動き情報に基づき、基準ブロック1402および1404を決定および/または生成し得る。基準ブロック1402および1404は、現在のブロック1400の予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることに基づき、現在のブロックを復号化し得る。
【0088】
動き情報は、例えば、ビットストリーム(例えば、HEVC、VVC、および/または他のビデオコーディング規格/フォーマット/プロトコル)に/を介して格納および/または送信/シグナリングされる前に、予測的に符号化され得る。現在のブロックに対する動き情報は、現在のブロックに隣接する一つまたは複数のブロックの動き情報に基づき予測的に符号化され得る。隣接ブロックの動き情報は、現在のブロックに表される物体の動きが、多くの場合、隣接ブロック内の物体の動きと同じ(または類似している)ため、多くの場合、現在のブロックの動き情報と相関し得る。動き情報予測技術は、高度な動きベクトル予測(AMVP)およびインター予測ブロックマージを含み得る。
【0089】
エンコーダー(例えば、
図2に示すエンコーダー200)は、動きベクトルを符号化し得る。エンコーダーは、符号化される現在のブロックの動きベクトルと動きベクトル予測子(MVP)との間の差として、動きベクトルを(例えば、AMVPを使用して)符号化し得る。エンコーダーは、候補MVPのリストからMVPを決定/選択し得る。候補MVPは、現在のブロックの現在のピクチャーの隣接ブロックの以前に復号化された動きベクトルまたは他の基準ピクチャーの現在のブロックの併置位置またはその近くにあるブロックであってもよく、/に対応し得る。エンコーダーおよび/またはデコーダーが、候補MVPのリストを生成および/または決定し得る。
【0090】
エンコーダーは、候補MVPのリストからMVPを決定/選択し得る。エンコーダーは、ビットストリーム内に/を介して、選択されたMVPおよび動きベクトル差(MVD)の表示を送信/シグナリングし得る。エンコーダーは、インデックス/インジケーターを使用して、ビットストリーム内の選択されたMVPを示し得る。インデックスは、候補MVPのリスト内の選択されたMVPを示し得る。MVDは、現在のブロックの動きベクトルと選択されたMVPとの間の差に基づき決定/計算され得る。例えば、符号化される現在のブロックの位置に対する位置(例えば、水平コンポーネント(MV
x)および垂直コンポーネント(MV
y)によって表される)を示す動きベクトルについて、MVDは、二つのコンポーネントMVD
xおよびMVD
yによって表され得る。MVDxおよびMVDyは、以下のように決定/計算され得る。
MVD
x=MV
x-MVP
x(15)
MVD
y=MV
y-MVP
y(16)
MVD
xおよびMVD
yはそれぞれ、MVDの水平および垂直コンポーネントを表し得る。MVP
xおよびMVP
yはそれぞれ、MVPの水平コンポーネントおよび垂直コンポーネントを表し得る。デコーダー(例えば、
図3に示すデコーダー300)は、ビットストリームに示されるMVPにMVDを追加することによって、動きベクトルを復号化し得る。デコーダーが、基準ブロックを決定および/または生成することによって、現在のブロックを復号化し得る。デコーダーが、例えば、復号化された動きベクトルに基づき、基準ブロックを決定および/または生成し得る。基準ブロックは、現在のブロックの予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることによって、現在のブロックを復号化し得る。
【0091】
AMVPに対する候補MVPのリスト(例えば、HEVC、VVC、および/または一つまたは複数の他の通信プロトコル)は、二つ以上の候補(例えば、候補AおよびB)を含み得る。候補AおよびBは、符号化される現在のブロックの五つの空間隣接ブロックから決定/導出される最大二つの空間候補MVP、二つの時間的、同一位置のブロックから決定/導出される一つの時間的候補MVP(例えば、二つの空間的候補MVPの両方が利用できない、または同一である場合)、またはゼロ動きベクトル候補MVP(例えば、空間候補MVPまたは時間的候補MVPの一方または両方が利用できない場合)を含み得る。他の量の空間候補MVP、空間隣接ブロック、時間候補MVP、および/または時間的、同一位置のブロックが、候補MVPのリストに使用され得る。
【0092】
図15Aは、現在のブロックに対する空間候補隣接ブロックを示す。例えば、五つ(または任意の他の数)の空間候補隣接ブロックが、符号化される現在のブロック1500に対して位置し得る。五つの空間候補隣接ブロックは、A
0、A
1、B
0、B
1、およびB
2であり得る。
図15Bは、現在のブロックに対する時間的、同一位置のブロックを示す。例えば、二つの(または任意の他の数)時間的、同一位置のブロックは、現在のブロック1500に対して位置し得る。二つの時間的、同一位置のブロックは、C0およびC1であり得る。二つの時間的、同一位置のブロックは、現在のブロック1500の現在のピクチャーとは異なってもよい一つまたは複数の基準ピクチャー内にあり得る。
【0093】
エンコーダー(例えば、
図2に示すエンコーダー200)は、インター予測ブロックマージ(例えば、マージモード)を使用して、動きベクトルを符号化し得る。エンコーダー(例えば、マージモードを使用する)は、現在のブロックのインター予測のために、隣接ブロック(例えば、隣接ブロックA
0、A
1、B
0、B
1、およびB
2)の一つ)の同じ動き情報を再利用し得る。エンコーダー(例えば、マージモードを使用する)は、現在のブロックのインター予測のために、時間的、同一位置のブロック(例えば、時間的、同一位置のブロックC
0およびC
1のうちの一つ)の同じ動き情報を再利用し得る。MVDは、隣接ブロックまたは時間的、同一位置のブロックのものと同じ動き情報が、(例えば、エンコーダーおよび/またはデコーダーで)現在のブロックに使用され得るため、現在のブロックに対して送信(例えば、示され、シグナリング)される必要はない。MVDが現在のブロックに対して示される必要がないため、現在のブロックの動き情報を送信/シグナリングするためのシグナリングオーバーヘッドは、低減され得る。エンコーダーおよび/またはデコーダー(例えば、エンコーダーおよびデコーダーの両方)は、(例えば、AMVPと類似した様式で)現在のブロックの隣接ブロックまたは時間的、同一位置のブロックから、動き情報の候補リストを生成し得る。エンコーダーは、符号化される現在のブロックの動き情報を予測するために、候補リスト内の一つの隣接ブロックまたは一つの時間的、同一位置のブロックの動き情報を使用する(例えば、継承する)ことを決定し得る。エンコーダーは、ビットストリーム内に/を介して、候補リストから決定された動き情報の表示をシグナリング/送信し得る。例えば、エンコーダーは、インジケーター/インデックスをシグナリング/送信/送信し得る。インデックスは、候補動き情報のリスト内の決定された動き情報を示し得る。エンコーダーは、決定された動き情報を示すために、インデックスをシグナリング/送信し得る。
【0094】
(例えば、HEVC、VVC、または任意の他の符号化フォーマット/規格/プロトコル内)マージモードのための候補動き情報のリストは、(例えば、
図15Aに示すように)五つ(または任意の他の数)の空間隣接ブロックから導出/決定される最大四つ(または任意の他の数)の空間マージ候補、(例えば、
図15Bに示されるように)二つ(または任意の他の数)の時間的、同一位置のブロックから導出される、一つ(または任意の他の数)の時間的マージ候補、および/または双方予測候補およびゼロ動きベクトル候補を含む追加のマージ候補、を含んでもよい。マージモードに使用される空間隣接ブロックおよび時間的、同一位置のブロックは、AMVPに使用される空間隣接ブロックおよび時間的、同一位置のブロックと同じであり得る。
【0095】
インター予測は、本明細書に記載されるもの以外の他の方法およびバリアントで実施され得る。例えば、AMVPおよびマージモード以外の動き情報予測技術を使用し得る。本明細書のさまざまな実施例は、HEVCおよびVVCで使用されるものなどのインター予測モードに対応するが、本明細書に記載の方法、デバイス、およびシステムは、(例えば、VP8、VP9、AV1などの他のビデオコーディング規格/フォーマットに使用されるような)他のインター予測モードに適用/使用され得る。履歴ベースの動きベクトル予測(HMVP)、組み合わせられたイントラ/インター予測モード(CIIP)、および/または動きベクトル差(MMVD)とのマージモード(例えば、VVCに記載されるように)を実施/使用することができ、本開示の範囲内である。
【0096】
ブロックマッチングを使用して(例えば、インター予測において)、符号化される現在のブロックとは異なるピクチャーの基準ブロックを決定し得る。ブロックマッチングを使用して、符号化される現在のブロックのものと同じピクチャーの基準ブロックを決定することもできる。基準ブロックは、現在のブロックと同じピクチャーで、ブロックマッチングを使用して決定されると、多くの場合、現在のブロックを正確に予測しえない(例えば、カメラでキャプチャされたビデオの場合)。スクリーンビデオコンテンツに対する予測精度は、例えば、現在のブロックと同じピクチャーの基準ブロックが符号化に使用される場合、同様に影響を受け得ない。スクリーンコンテンツビデオは、例えば、コンピューター生成テキスト、グラフィック、アニメーションなどを含み得る。スクリーンビデオコンテンツは、同じピクチャー内に反復パターン(例えば、テキストおよびグラフィックの反復パターン)を含み得る(例えば、多くの場合含んでもよい)。基準ブロック(例えば、ブロックマッチングを使用して決定される)を使用することが、符号化される現在のブロックと同じピクチャーにおいて、スクリーンコンテンツビデオに対して効率的な圧縮を提供し得る。
【0097】
予測技術を(例えば、HEVC、VVC、および/または任意の他のコーディング規格/フォーマット/プロトコルにおいて)使用して、(例えば、スクリーンコンテンツビデオの)同じピクチャー内のサンプルのブロック間の相関関係を利用し得る。予測技術は、イントラブロックコピー(IBC)または現在のピクチャー基準(CPR)と呼んでもよい。エンコーダーは、変位ベクトル(例えば、ブロックベクトル(BV))を決定するために、(例えば、インター予測と類似の)ブロックマッチング技術を適用/使用し得る。BVは、現在のブロックの位置から、現在のブロックに最良に一致する基準ブロックの相対位置を示し得る(例えば、イントラブロック補償予測に従って)。例えば、基準ブロックの相対位置は、基準ブロックの左上隅(または任意の他の点/サンプル)の相対位置であり得る。BVは、現在のブロックから、現在のブロックと最良に一致する基準ブロックへの相対的変位を示し得る。エンコーダーは、検索プロセス中に試験されたブロックから(例えば、インター予測に使用されるものと類似した様式で)最良に一致する基準ブロックを決定し得る。エンコーダーは、一つまたは複数のコスト基準に基づき、基準ブロックが最良に一致する基準ブロックであると決定し得る。一つまたは複数のコスト基準は、レート歪み基準(例えば、ラグランジアンレート歪みコスト)を含み得る。一つまたは複数のコスト基準は、例えば、基準ブロックの予測サンプルと現在のブロックの元のサンプルとの間の一つまたは複数の差異(例えば、SSD、SAD、SATD、および/またはハッシュ関数に基づき決定される差異)に基づいてもよい。基準ブロックは、現在のピクチャーのサンプルの以前の復号化されたブロックに対応し/を含み得る。基準ブロックは、ループ内フィルターリング動作(例えば、非ブロック化および/またはSAWフィルターリング)によって処理される前に、現在のピクチャーのサンプルの復号化されたブロックを含み得る。
【0098】
図16は、符号化のためのICBの例を示す。
図16に示す例示的なIBCは、スクリーンコンテンツに対応し得る。それらの境界で始まる矢印を有する長方形の部分/断面は、符号化される現在のブロックであり得る。矢印が指す長方形の部分/断面は、現在のブロックを予測するための基準ブロックであり得る。
【0099】
基準ブロックは、現在のブロックについて、IBCについて決定および/または生成され得る。エンコーダーは、基準ブロックと現在のブロックとの間の差(例えば、対応するサンプル毎の差)を決定し得る。差は、予測誤差または残差と呼んでもよい。エンコーダーは、ビットストリーム内に/を介して、予測誤差および/または関連する予測情報を記憶および/または送信/シグナリングし得る。予測誤差および/または関連する予測情報は、復号化および/または他の形態の消費に使用され得る。予測情報は、BVを含んでもよい。予測情報は、BVの表示を含み得る。デコーダー(例えば、
図3に示すデコーダー300)は、基準ブロックを決定および/または生成することによって、現在のブロックを復号化し得る。デコーダーが、例えば、予測情報(例えば、BV)に基づき、現在のブロックを決定および/または生成し得る。基準ブロックは、現在のブロックの予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることによって、現在のブロックを復号化し得る。
【0100】
BVは、ビットストリームにおいて/を介して保存および/または送信/シグナリングされる前に、予測的に符号化され得る(例えば、HEVC、VVC、および/または任意の他のコーディング規格/フォーマット/プロトコルにおいて)。現在のブロックに対するBVは、現在のブロックに隣接するBVブロックに基づき予測的に符号化され得る。例えば、エンコーダーは、マージモード(例えば、インター予測について本明細書に記載されるものと同様の様式)、AMVP(例えば、インター予測について本明細書に記載されるもの)、またはAMVPと同様の技術を使用して、BVを予測的に符号化し得る。AMVPと同様の技術は、BV予測および差分符号化(またはIBCに対するAMVP)であり得る。
【0101】
BV予測および符号化を行うエンコーダー(例えば、
図2に示すエンコーダー200)は、符号化される現在のブロックのBVとBV予測子(BVP)との間の差としてBVを符号化し得る。エンコーダーは、候補BVPのリストからBVPを選択/決定し得る。候補BVPは、現在のピクチャー中の現在のブロックに隣接するブロックの以前に復号化されたBVを含んでも/対応し得る。エンコーダーおよび/またはデコーダーが、候補BVPのリストを生成または決定し得る。
【0102】
エンコーダーは、ビットストリーム内に/を介して、選択されたBVPおよびBV差(BVD)の表示を送信/シグナリングし得る。エンコーダーは、インデックス/インジケーターを使用して、ビットストリーム内の選択されたBVPを示し得る。インデックスは、候補BVPのリスト内の選択されたBVPを示し得る。BVDは、現在のブロックのBVと選択されたBVPとの間の差に基づき決定/算出され得る。例えば、符号化される現在のブロックの位置に対する水平コンポーネント(BV
x)および垂直コンポーネント(BVy)によって表されるBVについては、BVDは、二つのコンポーネントBVD
xおよびBVD
yによって表され得る。BVD
xおよびBVD
yは、以下のように決定/算出され得る:
BVD
x=BV
x-BVP
x(17)
BVD
y=BV
y-BVP
y(18)
BVD
xおよびBVD
yはそれぞれ、BVDの水平コンポーネントおよび垂直コンポーネントを表し得る。BVP
xおよびBVP
yはそれぞれ、BVPの水平コンポーネントおよび垂直コンポーネントを表し得る。デコーダー(例えば、
図3に示すデコーダー300)は、ビットストリーム内に/を介して示されるBVPにBVDを付加することによって、BVを復号化し得る。デコーダーが、基準ブロックを決定および/または生成することによって、現在のブロックを復号化し得る。デコーダーが、例えば、復号化されたBVに基づき、基準ブロックを決定および/または生成し得る。基準ブロックは、現在のブロックの予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることによって、現在のブロックを復号化し得る。
【0103】
隣接ブロックと同じBVを現在のブロックに使用してもよく、BVDをマージモードなどで現在のブロックに別々にシグナリング/送信する必要はない。隣接ブロックの復号化されたBVに対応し得るBVP(候補BVPにおいて)は、それ自体が現在のブロックのBVとして使用され得る。BVDを送信しないことは、シグナリングオーバーヘッドを低減し得る。
【0104】
(例えば、HEVC、VVC、および/または任意の他のコーディング規格/フォーマット/プロトコル内の)候補BVPのリストは、二つ(またはそれ以上)の候補を含んでもよい。候補は、候補AおよびBを含んでもよい。候補AおよびBは、符号化される現在のブロックの五つ(または任意の他の数)の空間隣接ブロックから決定/導出される、最大二つ(または任意の他の数)の空間候補BVP、および/または(例えば、空間隣接候補が利用できない場合)最後の二つ(または任意の他の数)の符号化されたBVのうちの一つまたは複数を含んでもよい。空間隣接候補は、例えば、隣接ブロックがイントラ予測またはインター予測を使用して符号化される場合、利用でき得ない。IBCを使用して符号化される、現在のブロックに対する、空間候補隣接ブロックの位置は、インター予測における動きベクトルの符号化に使用される空間候補隣接ブロックと類似した様式で例示され得る(例えば、
図15Aに示すように)。例えば、IBCの五つの空間候補隣接ブロックは、それぞれA
0、A
1、B
0、B
1、およびB
2と示され得る。
【0105】
少なくとも一部のエンコーダーおよび/またはデコーダーでは、現在のブロック(例えば、IBCを使用して符号化される)に対するBVは、現在のブロックから基準領域(例えば、IBC基準領域)内の基準ブロックへの相対的変位を示すように制約され得る。基準領域は、(例えば、エンコーダーで)以前に符号化され、その後(例えば、デコーダーで)復号化された、現在のブロックの現在のピクチャーにおける領域の少なくとも一部分に対応し得る。基準ブロックを基準領域内に制約することが、現在のブロックを処理するときに、符号化および復号化システムが同一の結果をもたらし得ることを確実にし得る。BVを予測的に符号化するために使用されるBVPは、基準領域内で同様に制約され得ない。BVPは、現在のブロックの空間的に隣接ブロックのBVおよび/または以前に符号化された(例えば、履歴ベースの)BVに基づき決定/導出され得るため、同様に制約され得ない。BVPは、IBC基準領域内で、BVのように(例えば、現在のブロックから基準ブロックへの相対的変位を示すために)BVPが制約され得ないため、BVを正確に予測しえない。例えば、BVPは、BVの近似推定値ではあり得ない。非制約BVPを使用したBVの不正確な予測は、BVとBVPの間のBVDを示すシグナリングオーバーヘッド(例えば、必要なビットの量)の増加の可能性などの一つまたは複数の問題を引き起こす可能性がある。
【0106】
本明細書に記載されるさまざまな例は、例えば、(例えば、IBC手順を使用して決定される)BVのより正確な予測を提供するようにBVPを調整することによって、BVPの改善を提供する。デバイス(例えば、エンコーダー、ソース装置、コンピューティング装置など)は、一つまたは複数の基準に基づきBVPを調整し得る。一つまたは複数の基準は、BVPによって示される、符号化される現在のブロックの位置に対する位置に基づいてもよい。一つまたは複数の基準は、位置が基準領域(例えば、IBC基準領域)内にあるかどうかを決定することを含み得る。一つまたは複数の基準は、位置が、一つまたは複数の所定の方向に、現在のブロックから少なくとも一つまたは複数のオフセット離れているかどうかを判定することを含み得る。一つまたは複数の基準は、符号化される現在のブロックの寸法に基づいてもよい。一つまたは複数の基準は、基準領域の一つまたは複数の境界に対する、BVPによって示される位置に基づいてもよい。エンコーダーは、一つまたは複数の基準が満たされるか、または満たされていないことに基づき、調整されたBVPを使用し得る。例えば、エンコーダーは、(例えば、リストに存在するような)BVPを調整されたBVPに置き換えてもよい。調整されたBVPを使用すること、および/またはBVPを調整されたBVPに置き換えることが、符号化されたビデオの送信に必要なシグナリングオーバーヘッドの低減などの利点を提供し得る。例えば、ブロックのBVDを表すために必要なビットの量は、BVPが調整されたBVPによって置き換えられる場合、減少され得る。
【0107】
エンコーダーは、BVPが、現在のブロックの位置に対する、少なくとも第一のオフセットだけ現在のブロックの左にも、少なくとも第二のオフセットだけ現在のブロックの上方にもない位置を指す/示すと決定し得る。第一のオフセットは、現在のブロックの幅と等しくてもよい。第二のオフセットは、現在のブロックの高さと等しくてもよい。エンコーダーは、例えば、BVPが、現在のブロックの位置に対する、現在のブロックから左への少なくとも第一のオフセット距離でも、現在のブロックの上方の少なくとも第二のオフセット距離でもない位置を指す場合、BVPが現在のブロックの基準領域(例えば、IBC基準領域)の外側の位置を指すと決定し得る。エンコーダーは、例えば、基準領域の外側を指しているBVPに基づき、調整されたBVPを使用し得る。エンコーダーは、例えば、基準領域の外側を指しているBVPに基づき、BVPを調整されたBVPに置き換えてもよい。調整されたBVPを使用して、現在のブロックに対するBVを決定または予測(例えば、コードおよび/またはデコード)し得る。BVPの改善をもたらすこれらおよびその他の特徴を、以下にさらに説明する。
【0108】
図17Aは、符号化のためのICBの例を示す。エンコーダー(例えば、
図2に示すエンコーダー200)は、IBCモードを使用して、現在のピクチャー(または現在のピクチャーの一部分)1702内の現在のブロック1700を符号化し得る。現在のブロック1700は、コーディングツリーユニット(CTU)1704内のコーディングブロック(CB)であり得る。IBCを使用するエンコーダーは、現在のブロックのものと同じ、現在のピクチャーの基準ブロックを検索し得る。現在のピクチャーの一部のみが、基準ブロックを検索するために利用可能であり得る。例えば、現在のブロックの符号化前に復号化された現在のピクチャーの一部のみが、基準ブロックを検索するために利用可能であり得る。基準ブロックを検索するために利用可能な現在のピクチャーの一部は、IBC基準領域であり得る。現在のブロックの符号化前に復号化された現在のピクチャーの一部のみを検索することが、符号化および復号化システムが同一の結果を生成し得るが、IBC基準領域を制限し得ることを確実にし得る。
【0109】
ブロックは、特定の順序でスキャンされ得る。ブロックは、zスキャンを使用して、左から右、上から下へと(例えば、HEVC、VVC、および/または他のコーディング規格/フォーマット/プロトコルにおいて)スキャンされて、符号化/復号化のためのシーケンス順序を形成し得る。左および上方の現在のCTU1704へのCTU(
図17Aに示すように、大きな四角タイルによって表される)は、例えば、zスキャンに基づき、現在のCTU1704および現在のブロック1700の前に符号化/復号化され得る。これらのCTU(例えば、CTU1703-1~1703-6)のサンプルは、現在のブロック1700を予測するための基準ブロックを決定するための例示的なIBC基準領域1706を形成し得る。符号化/復号化のための異なるシーケンス順序は、他のビデオエンコーダー/デコーダーに使用され得る。異なるシーケンス順序を使用することが、それに応じてIBC基準領域1706を変更し得る。
【0110】
IBC基準領域1706は、有効な基準ブロックの位置を表し得る。IBC基準領域1706(例えば、影付きで示されるように)は、現在のブロック1700の符号化/復号化/予測に使用され得る基準ブロックの有効な場所/位置の形態で定義/表され得る。基準ブロックの位置は、基準ブロックの左上隅の場所/位置として定義され得る。左上隅がIBC基準領域1706の境界(例えば、最下または右端の境界)の外側にあるか、またはそれと一致する基準ブロックは、少なくとも部分的にIBC基準領域の外側にあり得、および/または現在のブロック1700と一致し得る。左上隅がIBC基準領域1706の境界(例えば、最下または右端の境界)の外側にあるか、またはそれと一致する基準ブロックは、IBC基準領域1706の外側に位置するとみなされ得る。基準ブロックの位置は、BVを使用して、現在のブロック1700に対して定義され得る。
【0111】
IBC基準領域1706は、現在のブロック1700の左および上部を囲むL字形状領域を含み得ない。L字形状領域は、現在のブロック1700の幅(例えば、cbWidth)および現在のブロックの高さ(例えば、cbHeight)の観点から画定され得る。例えば、L字形状領域の左部は(cbWidth-1)に等しい幅を有してもよく、L字形状領域の上部は(cbHeight-1)に等しい高さを有し得る。IBC基準領域1706は、BVが、現在のブロック1700または現在のピクチャー1702の再構成されていない領域と(少なくとも部分的に)重複し得る基準ブロックを指すのを防止するために、L字形状領域を含み得ない。
【0112】
図17Bは、IBC基準領域にない基準ブロックの例示的位置を示す。例えば、基準ブロック1709の左上隅1707は、IBC基準領域1706の境界(例えば、右端または下端)と一致してもよく、および/またはIBC基準領域1706の外側であり得る。基準ブロック1709は、IBC基準領域1706の外側にあるとみなされ得る。
【0113】
図17Cは、IBC基準領域内にある基準ブロックの例示的位置を示す。例えば、基準ブロック1713の左上隅1711は、IBC基準領域1706内にあり得る。基準ブロック1713は、例えば、基準ブロック1713の左上隅1711がIBC基準領域1706内にあることに基づき、IBC基準領域1706の外側にあるとみなされ得る。
【0114】
一つまたは複数の基準領域制約(例えば、符号化/復号化シーケンス順序に加えて)は、IBC基準領域1706上に配置され得る。例えば、IBC基準領域1706は、基準サンプルを記憶するための限定されたメモリー(例えば、エンコーダーにおける)に基づき制約され得る。IBC基準領域1706は、並列処理アプローチ(例えば、タイルまたは波面並列処理(WPP))に基づき決定されるCTUに制約され得る。タイルは、異なるタイルのCTU間のコーディング依存性が許容されないように、CTUの長方形領域にピクチャーを柔軟に細分するためのピクチャー分割プロセスの一部として使用され得る。WPPは、ピクチャーをCTU行に分割するために、ピクチャー分割プロセスの一部として同様に使用され得る。CTU行への分割は、異なる分割のCTU間の依存性が許可されないようなものであり得る。タイルまたはWPPの使用は、ピクチャー分割の並列処理を可能にし得る。
【0115】
エンコーダーは、ブロックマッチング技術を使用して/適用して、ブロックベクトル(BV)1708を決定し得る。BVは、現在のブロック1700から、IBC基準領域1706内の基準ブロック1710への相対的変位を示し得る。基準ブロック1710は、(例えば、イントラブロック補償予測に従って)現在のブロック1700と最良に合致するブロックであり得る。IBC基準領域1706は、BV1708に適用され得る制約であり得る。BV1708は、現在のブロック1700から、IBC基準領域1706内にある基準ブロックへの変位を示すために、IBC基準領域1706によって制約され得る。エンコーダーは、検索プロセス中に試験されるブロック(例えば、IBC基準領域1706内)の中から、最良に一致する基準ブロック1710を決定し得る。エンコーダーは、一つまたは複数のコスト基準が、レート歪み基準(例えば、ラグランジアンレート歪みコスト)を含み得るため、基準ブロック1710が、一つまたは複数のコスト基準に基づき、最良に一致する基準ブロックであり得ると決定し得る。一つまたは複数のコスト基準は、例えば、基準ブロック1710の予測サンプルと現在のブロック1700の元のサンプルとの間の一つまたは複数の差異(例えば、SSD、SAD、SATD、および/またはハッシュ関数に基づき決定される差異のうちの一つまたは複数)に基づいてもよい。基準ブロック1710は、ループ内フィルターリング動作(例えば、非ブロック化および/またはSAOフィルターリング)によって処理される前に、現在のピクチャー1702の復号化された(および/または再構成された)サンプルを含み得る。
【0116】
エンコーダーは、現在のブロック1700と基準ブロック1710との間の差(例えば、対応するサンプル毎の差)を決定および/または使用し得る。差は、予測誤差または残差と呼んでもよい。エンコーダーは、ビットストリーム内に/を介して、復号化のための予測誤差および関連する予測情報を記憶および/または送信/シグナリングし得る。
【0117】
予測情報は、BV1708を含んでもよい。予測情報は、BV1708の表示を含み得る。BV1708は、ビットストリーム内に/を介して保存および/または送信/シグナリングされる前に、(例えば、HEVC、VVC、および/または他のビデオ圧縮フォーマット/規格/プロトコルにおいて)予測的に符号化され得る。現在のブロック1700のBV1708は、インター予測に適用されるAMVPと同様の技術を使用して予測的に符号化され得る。AMVPと同様の技術(インター予測に適用)は、IBCに対するBV予測および差分符号化またはAMVPと称され得る。エンコーダーは、BV予測および差分符号化を使用して、BV1708とBVP1712との間の差としてBV1708を符号化し得る。エンコーダーは、候補BVPのリストからBVP1712を選択/決定し得る。候補BVPは、現在のブロック1700の隣接ブロックの以前に復号化されたBVに対応し/を含み得、または他のソースを起源とし得る。無効なBVP候補(例えば、ゼロの大きさのxコンポーネントおよびyコンポーネントを有する)は、例えば、現在のブロック1700の隣接ブロックからのBVが利用できない場合に、候補BVPのリストに追加され得る。エンコーダーおよび/またはデコーダーが、候補BVPのリストを生成および/または決定し得る。
【0118】
エンコーダーは、BVD1714を決定し得る。BVD1714は、BV1708とBVP1712との間の差に基づき決定/算出され得る。例えば、BVD1714は、二つの方向性コンポーネントBVD
xおよびBVD
yによって表され得る。BVD
xおよびBVD
yは、以下のように決定/算出され得る:
BVD
x=BV
x-BVP
x(17)
BVD
y=BV
y-BVP
y(18)
BVD
xおよびBVD
yはそれぞれ、BVD1714の水平コンポーネントおよび垂直コンポーネントを表し得る。BV
xおよびBV
yはそれぞれ、BV1708の水平コンポーネントおよび垂直コンポーネントを表し得る。BVP
xおよびBVP
yはそれぞれ、BVP1712の水平および垂直コンポーネントを表し得る。水平x軸および垂直y軸は、参照目的のために、現在のピクチャー1702の右下隅に示される。
図17Aに示すように、x軸(例えば、x軸値)は、左から右に増加してもよく、y軸(例えば、y軸値)は、上から下に増加し得る。
【0119】
エンコーダーは、ビットストリーム内に/を介して、予測誤差、選択されたBVP1712の表示、および式(17)および(18)に基づき決定されるBVD1714の別のコンポーネントを送信/シグナリングし得る。BVP1712の表示は、候補BVPのリスト内のBVP1712を示すインデックスであり得る。デコーダー(例えば、
図3に示すデコーダー300)は、BVD1714の対応するコンポーネントをBVP1712の対応するコンポーネントに追加することによって、BV1708を復号化し得る。デコーダーが、基準ブロック1710を決定および/または生成することによって、現在のブロック1700を復号化し得る。デコーダーが、復号化されたBVを使用して、基準ブロック1710を決定および/または生成し得る。基準ブロック1710は、現在のブロック1700の予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測をビットストリームで/を介して受信された予測誤差と組み合わせることに基づき、現在のブロックを復号化し得る。
【0120】
BVP1712は、現在のブロック1700の位置から位置(例えば、サンプル位置)1716への相対的変位を示し得る。ブロックの位置(例えば、現在のブロック1700、基準ブロック1710)は、ブロック(例えば、現在のブロック1700、基準ブロック1710)の左上サンプルの位置によって/それに対応して決定され得る。ブロックの位置は、ブロックの任意の他のサンプルによって/それに対応して決定され得る。位置1716は、整数サンプル位置または二つの整数サンプル位置の間の分画サンプル位置であり得る。BVP1712によって示されるサンプル位置1716は、BVP1712が、現在のブロック1700の空間的に隣接ブロックおよび/または以前に符号化されたBVから導き出され得るため、(
図17Aに示すように)IBC基準領域1706の外にあり得る。BV1708は、現在のブロック1700から、IBC基準領域1706内の基準ブロック1710の位置への相対的変位を示すように制約され得る。基準ブロック1710の位置は、基準ブロック1710の左上サンプル(または任意の他のサンプル)の位置によって決定され得る。BVP1712は、BVP1712が、現在のブロック1700から、IBC基準領域1706の外側にあり得るサンプル位置1716への相対的変位を示し得る一方で、BV1708が、現在のブロック1700から、IBC基準領域1706内にある基準ブロック1710の位置への相対変位を示し得るため、BV1708を正確に予測し得ない。BV1708の不正確な予測は、BVD1714を示すためにより高いシグナリングオーバーヘッドを必要とし得る。本明細書のさまざまな実施例は、BVをより正確に予測するためにBVP(例えば、BVP1716)を調節することを記載する。
【0121】
BVP1712がBV1708のより正確な予測であることは、BVPがIBC基準領域内にある位置(例えば、位置1716)を示すことに対応し得る。エンコーダーおよび/またはデコーダーが、BVP1712が、IBC基準領域内にある位置(例えば、位置1716)を指す/示すかどうかを判定し得る。BVP1712がIBC基準領域内にある位置を指す/示すことは、BVPがBV1708のより正確な予測であることをもたらし得る。BVP1712がBV1708のより正確な予測であることは、BVD1714のシグナリング/送信に対するシグナリングオーバーヘッドの低下をもたらし得る。エンコーダーおよび/またはデコーダーが、例えば、BVP1712が、IBC基準領域内にない位置を指す/示すと決定することに基づき、BVP1712を調整されたBVPに置換/調整し得る。
【0122】
BVP1712が、IBC基準領域内にある位置(例えば、位置1716)を指す/示すかどうかを決定することが、その位置が、現在のブロック1700から、一つまたは複数の所定の方向に、少なくとも一つまたは複数のオフセットだけ離れているかどうかを決定することを含み得る。一つまたは複数の所定の方向は、ビデオコーディングに使用されるスキャンタイプに基づいてもよい。例えば、zスキャン(例えば、左から右、上から下へのスキャン)を使用するビデオコーディングの場合、一つまたは複数の方向は、現在のブロック1700の上方を指す第一の方向と、現在のブロックの左を指す第二の方向と、を含み得る。BVP1712が、IBC基準領域内にある位置を指す/示すかどうかを決定することが、位置が、現在のブロック1700の左から少なくとも第一のオフセット距離だけ離れている、および/または現在のブロックから少なくとも第二のオフセット距離だけ離れているかどうかを決定することを含み得る。第一のオフセット距離および第二のオフセット距離は、現在のブロック1700の寸法(例えば、現在のブロック1700の幅および/または高さ)の関数として定義され得る。
【0123】
図17Aを参照し、エンコーダーおよび/またはデコーダーが、BVP1712が、少なくとも第一のオフセット距離(例えば、現在のブロック1700の幅(cbWidth)に少なくとも等しい距離だけ、または何らかの追加のオフセット量または他のオフセット量だけ)だけ現在のブロック1700の左にも、少なくとも第二のオフセット距離(例えば、現在のブロック1700の高さ(cbHeight)に少なくとも等しい距離だけ、または何らかの追加または他のオフセット量だけ)だけ現在のブロック1700の上方にもない、位置1716を示すと判定することができる。BVP1712は、例えば、位置1716が、少なくとも第一のオフセット距離だけ現在のブロック1700の左にも、少なくとも第二のオフセット距離だけ現在のブロック1700の上にもない場合に、現在のブロック1700のIBC基準領域1706の外側にあり得る、現在のピクチャー1702の非影付き領域(例えば、
図17Aに示すように)の位置を指し得る。
【0124】
上述のように、IBC基準領域1706は、BVが、現在のブロック1700または現在のピクチャー1702の再構成されていない領域と(少なくとも部分的に)重複し得る基準ブロックを指すのを防止するために、L字形状領域を含み得ない。エンコーダーまたはデコーダーが、BVP1712が、IBC基準領域1706内または外にある位置1716を指す/示すかどうかを判定し得る。エンコーダーまたはデコーダーが、BVP1712の水平コンポーネントBVPxと第一のオフセット距離との合計がゼロよりも大きく、およびBVP1712の垂直コンポーネントBVPyと第二のオフセット距離との合計がゼロよりも大きい、ことを決定することによって、BVP1712が、少なくとも第一のオフセット距離(例えば、cbWidth、または任意の他の距離)だけ、現在のブロック1700の左にも、少なくとも第二のオフセット距離(例えば、cbHeight、または任意の他の距離)だけ、現在のブロック1700の上方にもない、位置1716を指し/示すことを決定し得る。決定は、BVP1712の水平コンポーネントBVPxが-cbWidthよりも大きく、BVP1712の垂直コンポーネントBVPyが-cbHeightよりも大きいと決定することとして、(例えば、第一のオフセット距離がcbWidthであり、第二のオフセット距離がcbHeightである場合)同等に述べられてもよい。
【0125】
エンコーダーおよび/またはデコーダーが、例えば、BVP1712によって示される位置1716を決定することに基づき、BVP1712を調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、例えば、位置1716がIBC基準領域1706内にない(例えば、外にある)と決定することに基づき、BVP1712を調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、例えば、位置1716が、少なくとも第一のオフセット距離だけ(例えば、現在のブロック1700の幅(cbWidth)に等しい距離だけ)、現在のブロック1700の左にも、少なくとも第二のオフセット距離だけ(例えば、現在のブロック1700の高さ(cbHeight)に等しい距離だけ)、現在のブロック1700の上方にもないと決定することに基づき、BVP1712を調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP1712を、上記の条件のうちの一つまたは複数を満たす調整されたBVPに置き換えてもよい。
【0126】
エンコーダーおよび/またはデコーダーが、BVP1712を、現在のブロック1700の位置からIBC基準領域1706内の位置への変位を示し得る調整されたBVPに置き換え得る。例えば、エンコーダーおよび/またはデコーダーが、BVP1712を、-cbWidthに等しい水平コンポーネントと、BVP1712の垂直コンポーネントBVPyに等しい垂直コンポーネントとを含む調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP1712を、BVP1712の水平コンポーネントBVPxに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP1712を、-cbWidthに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP1712を、少なくとも第一のオフセット距離(例えば、cbWidth)だけ現在のブロック1700の左側にあり、および/または少なくとも第二のオフセット距離(例えば、cbHeight)だけ現在のブロック1700の上方にある調整されたBVPで、置換し得る。エンコーダーおよび/またはデコーダーが、例えば位置1716が、少なくとも第一のオフセット距離(例えば、現在のブロック1700の幅(cbWidth)に等しい距離)だけ現在のブロック1700の左にも、少なくとも第二のオフセット距離(例えば、現在のブロック1700の高さ(cbHeight)に等しい距離)だけ現在のブロック1700の上方にもない、ことを決定することに基づき、BVP1712を、現在のブロック1700の位置からIBC基準領域1706内の位置への変位を示す調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、IBC基準領域1706内にある、現在のブロック1700の位置に対する位置を指す/示す調整されたBVPでBVP1712を置換し得る。エンコーダーおよび/またはデコーダーが、一つまたは複数の調整されたBVP候補を決定することに基づき、BVP1712を調整されたBVPに置き換えてもよい。
【0127】
図17Dは、調整されたBVPの例示的な方法を示す。方法1750は、調整されたBVP候補を決定することを含み得る。例示的な方法1750は、エンコーダーおよび/またはデコーダーで実施され得る。ステップ1752で、エンコーダーおよび/またはデコーダーが、複数の調整されたBVP候補を決定し得る。複数の調整されたBVP候補は、第一のオフセット距離の負の値(例えば、-cbWidth)に等しい水平コンポーネント、およびBVP1712の垂直コンポーネントBVP
yに等しい垂直コンポーネントを有する第一の調整されたBVP候補、BVP1712の水平コンポーネントBVP
xに等しい水平コンポーネント、および第二のオフセット距離の負(例えば、-cbHeight)に等しい垂直コンポーネントを有する第二の調整されたBVP候補、および第一のオフセット距離の負(例えば、-cbWidth)に等しい水平コンポーネント、および第二のオフセット距離の負(例えば、-cbHeight)に等しい垂直コンポーネントを有する第三の調整されたBVP候補、のうちの少なくとも二つを含み得る。複数の調整されたBVP候補は、現在のブロック1700の幅(cbWidth)に基づく水平コンポーネントを有する第一の調整されたBVP候補、現在のブロックの高さ(cbHeight)に基づく垂直コンポーネントを有する第二の調整されたBVP候補、および、現在のブロック1700の幅(cbWidth)に基づく水平コンポーネントと、現在のブロックの高さ(cbHeight)に等しい垂直コンポーネントとを有する第三の調整されたBVP候補、のうちの少なくとも二つを含み得る。
【0128】
ステップ1754で、エンコーダーおよび/またはデコーダーが、複数の調整されたBVP候補から調整されたBVPを選択し得る。例えば、エンコーダーおよび/またはデコーダーが、調整されたBVP候補のうちの一つを、BVP1712を置換するための調整されたBVPとして決定/選択し得る。ステップ1758で、エンコーダーおよび/またはデコーダーが、調整されたBVPを候補BVPのリストに追加し得る。エンコーダーおよび/またはデコーダーが、例えば、調整されたBVP候補の各々に対して決定/算出されたBVDに基づき、調整されたBVP候補(例えば、候補BVPのリスト内)のうちの一つを選択し得る。BVPは、各調整されたBVP候補について、BV1708と調整されたBVP候補との間の差として決定/算出され得る。エンコーダーおよび/またはデコーダーが、調整されたBVP候補に対して計算されたBVDの中で、最小のBVDをもたらす調整されたBVP候補を、調整されたBVPとして選択し得る。
【0129】
エンコーダーおよび/またはデコーダーが、所定の順序に基づき調整されたBVP候補を選択し得る。所定の順序は、第一、第二、および第三の調整されたBVP候補を含んでもよい。エンコーダーおよび/またはデコーダーが、有効な調整されたBVP候補のみの中から、調整されたBVP候補のうちの一つを選択し得る。有効なBVP候補は、現在のブロック1700の位置からIBC基準領域1706内の位置への変位を示す候補であり得る。エンコーダーは、ビットストリーム内に/を介して、デコーダーに、選択された調整されたBVP候補の表示を送信/シグナリングし得る。デコーダーが、ビットストリームから表示を受信し、BVPを選択された調整されたBVP候補に置き換え得る。調整されたBVPを使用して、BVP1712に関して記載されるのと同じ様式で、BV1708を(例えば、エンコーダーにおいて)予測および/または(例えば、デコーダーにおいて)決定し得る。
【0130】
図18は、調整されたBVPを有するIBCの例を示す。エンコーダーおよび/またはデコーダーが、(例えば、
図17Aを参照して記述された)BVP1712を、調整されたBVP1812に置き換えてもよい。BVP1712を調整されたBVP1812に置き換えることは、
図17A~Dを参照して記述されるように、一つまたは複数の考慮に基づいてもよい。調整されたBVPは、一つまたは複数の調整されたBVP候補から決定/選択され得る。調整されたBVP候補は、
図17A~17Dを参照して記述されるように、一つまたは複数の考慮に基づいて決定することができる。例えば、調整されたBVP1812は、-cbWidthに等しい水平コンポーネントと、BVP1712の垂直コンポーネントBVP
yに等しい垂直コンポーネントとを含み得る。
図18に示すように、調整されたBVP1812は、
図17AのBVD1714のBVD
xの水平コンポーネントよりも、BVD1814の水平コンポーネントBVD
xの長さを減少させることによって、BV1708のより良好な予測を提供し得る。
【0131】
図19は、調整されたBVPを有するIBCの例を示す。エンコーダーおよび/またはデコーダーが、BVP1712を調整されたBVP1912に置き換えてもよい。BVP1712を調整されたBVP1912に置き換えることは、
図17A~Dを参照して記述されるように、一つまたは複数の考慮に基づいてもよい。調整されたBVPは、一つまたは複数の調整されたBVP候補から決定/選択され得る。調整されたBVP候補は、
図17A~Dを参照して記述されるように、一つまたは複数の考慮に基づいて決定することができる。調整されたBVP1912は、BVP1712の水平コンポーネントBVP
xに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含み得る。
図19に示すように、調整されたBVP1912は、
図17AのBVD1714の垂直コンポーネントBVDyと比較して、BVD1914の垂直コンポーネントBVD
yの長さを増加させることによって、BV1708のより悪い予測を提供し得る。
【0132】
図20は、調整されたBVPを有するIBCの例を示す。エンコーダーおよび/またはデコーダーが、BVP1712を調整されたBVP2012に置き換えてもよい。BVP1712を調整されたBVP1912に置き換えることは、
図17A~Dを参照して記述されるように、一つまたは複数の考慮に基づいてもよい。調整されたBVPは、一つまたは複数の調整されたBVP候補から決定/選択され得る。調整されたBVP候補は、
図17A~Dを参照して記述されるように、一つまたは複数の考慮に基づいて決定することができる。調整されたBVP2012は、-cbWidthに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含み得る。
図20に示されるように、調整されたBVP2012は、
図17のBVD1714の水平コンポーネントと比較して、BVD2014の水平コンポーネントの長さを減少させることによって、一点においてBV1708のより良好な予測を提供し得るが、
図17のBVD1714の垂直コンポーネントBVD
yと比較して、BVD2014の垂直コンポーネントBVD
yの長さを増加させることによって、別の点においてBV1708のより悪い予測を提供し得る。
【0133】
エンコーダーおよび/またはデコーダーが、上述のBVPと同様の様式で調整されたBVPを使用し得る。例えば、エンコーダーは、式17および18に従って調整されたBVPに基づきBVDを決定し得る。エンコーダーは、ビットストリーム内に/を介して、予測誤差、調整されたBVPの表示、およびBVDの別のコンポーネントを送信/シグナリングし得る。調整されたBVPの表示は、候補BVPのリスト内の調整されたBVPを示すインデックスであり得る。デコーダー(例えば、
図3に示すデコーダー300)は、BVDの対応するコンポーネントを、調整されたBVPの対応するコンポーネントに追加することによって、BVを復号化し得る。デコーダーが、基準ブロックを決定および/または生成することによって、現在のブロックを復号化し得る。デコーダーが、復号化されたBVを使用して、基準ブロックを決定および/または生成し得る。基準ブロックは、現在のブロックの予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測をビットストリームで/を介して受信された予測誤差と組み合わせることに基づき、現在のブロックを復号化し得る。
【0134】
図17A~17D、
図18、
図19、および
図20に示すように、IBC基準領域1706は、単に例示的であり、IBC基準領域は、IBC基準領域1706とは異なってもよい。
図17A~17D、
図18、
図19、および
図20を参照して、本明細書に記述される方法、装置、システムが、IBC基準領域1706とは異なるIBC基準領域に使用/適用され得る。例えば、IBC基準領域1706は、異なるセットのIBC基準領域制約に基づき決定されるIBC基準領域によって置換され得る。IBC基準領域1706は、例えば、現在のピクチャー1702の再構成される部分および/または一つまたは複数のWPP分割またはタイル分割に制約されることに加えて、限定されたメモリーサイズ(例えば、IBC基準サンプルメモリー)に記憶され得る、復号化されたまたは再構成されるサンプルの数/量を含むようにさらに制約され得る。IBC基準サンプルメモリーのサイズは、エンコーダーまたはデコーダーを用いてオンチップで実装されることに基づき制限され得る。IBC基準領域は、エンコーダーまたはデコーダーからのより大きなサイズのIBC基準サンプルメモリーオフチップを使用することによって、サイズが増大し得る。オフチップメモリーを使用することが、より高いメモリー帯域幅要件、および(例えば、IBC基準領域1706における)サンプルを、IBC基準サンプルメモリーへ、および/またはそれから書き込みおよび/または読み取る際の遅延の増加を必要とし得る。
【0135】
IBC基準領域(例えば、IBC基準領域1706)は、現在のCTUの再構成される部分、および/または現在のCTUの左側への一つまたは複数の再構成されるCTUに制約され得る。現在のCTUの左への一つまたは複数の再構成されるCTUは、現在のCTUの再構成される部分または符号化される現在のブロックが位置する仮想パイプラインデータユニット(VPDU)のいずれかと併置される、一つまたは複数の再構成されるCTUの左端の、一部分を含み得ない。異なるCTU内のサンプルのブロックは、同じサイズおよび/またはCTUオフセットを有することに基づき、併置され得る。ブロックのCTUオフセットは、ブロックが位置するCTUの左上隅に対するブロックの左上隅のオフセットであり得る。
【0136】
IBC基準領域は、現在のCTUの再構成される部分と併置される、より再構成されるCTUの左端の、部分を含み得ない。例えば、IBC基準領域は、現在のCTUの再構成される部分と併置される、より再構成されるCTUの左端の、部分を含み得ない。なぜなら、IBC基準サンプルメモリーは、円形バッファと同様の様式で実装され得るためである。例えば、IBC基準サンプルメモリーは、一つまたは複数のCTUに対応する再構成される基準サンプルを記憶し得る。現在のCTUの再構成される基準サンプルは、例えば、IBC基準サンプルメモリーが充填される場合、現在のCTUの左から最も遠くに(例えば、ピクチャーまたはフレーム内)位置する、IBC基準サンプルメモリーに保存された、CTUの再構成される基準サンプルを置き換え得る。現在のCTUの左に最も遠い、ピクチャーまたはフレーム内に、位置するIBC基準サンプルメモリーに保存されたCTUのサンプルは、IBC基準サンプルメモリー内の最も古いデータに対応し得る。本明細書に記載されるように、IBC基準サンプルメモリー内のサンプルを更新することが、現在のCTUを処理するときに、左端のCTUからの再構成される基準サンプルの少なくとも一部が、IBC基準サンプルメモリーに記憶されたままであることを可能にし得る。IBC基準サンプルメモリーに保存された左端のCTUの残りの基準サンプルは、現在のCTUの現在のブロックを予測するために使用され得る。
【0137】
CTUは、一度に処理されてもよく、または一度に処理されなくてもよい。例えば、エンコーダーおよび/またはデコーダーの典型的なハードウェア実装では、CTUは一度に処理され得ない。CTUは、パイプライン段階による処理のためにVPDUに分割され得る。VPDUは、4×4のサンプル領域、16×16のサンプル領域、32×32のサンプル領域、64×64のサンプル領域、128×128のサンプル領域、または任意の他のサンプル領域サイズを含み得る。VPDUのサイズは、最大VPDUサイズ(例えば、64×64のサンプル領域)および現在のCTUのサイズ(例えば、幅または高さ)のうちのより小さい一つに基づき決定され得る。符号化されるブロックが位置するVPDUと併置される、一つまたは複数の再構成されるCTUの左端の、部分は、IBC基準領域からさらに除外され得る。IBC基準領域から一つまたは複数の再構成されるCTUの左端のこの部分を除外することが、IBC基準サンプルメモリーの部分(例えば、この部分から再構成される基準サンプルを記憶するために使用される)が、VPDUに対応する現在のCTUの領域内にサンプルのみを格納することを可能にし得る。VPDUに対応する現在のCTUの領域内にサンプルのみを格納することが、エンコーダーおよび/またはデコーダー設計における特定の複雑さを低減および/または回避し得る。
【0138】
IBC基準領域に含まれる現在のCTUの左に対する再構成されるCTUの量は、IBC基準サンプルメモリーが記憶し得る再構成される基準サンプルの量および/または現在のピクチャーのCTUのサイズに基づき決定され得る。IBC基準領域に含まれる現在のCTUの左側への、再構成されるCTUの量は、IBC基準サンプルメモリーが記憶し得る再構成される基準サンプルの量を、現在のピクチャーのCTUのサイズで割ることに基づき決定され得る。例えば、IBC基準領域に対して128×128の再構成される基準サンプルを記憶してもよく、CTUサイズが128×128のサンプルである、IBC基準サンプルメモリーについて、IBC基準領域に含まれる現在のCTUの左側への再構成されるCTUの量は、(128×128)/(128×128)つまり1CTUと等しくてもよい。別の実施例として、IBC基準領域に対して128×128の再構成される基準サンプルを記憶してもよく、かつCTUサイズが64×64のサンプルであるメモリーについては、IBC基準領域に含まれる現在のCTUの左側に再構成されるCTUの量は、(128×128)/(64×64)つまり4CTUと等しくてもよい。
【0139】
図21Aは、例示的なIBC基準領域を示す。IBC基準領域2100は、IBC基準サンプルメモリーサイズおよびCTUサイズに基づき決定され得る。IBC基準サンプルメモリーサイズは、CTUサイズと等しくてもよい。IBC基準サンプルメモリーサイズは、128×128サンプル(または任意の他の数のサンプル)と等しくてもよい。CTUサイズは、128×128サンプル(または任意の他の数のサンプル)と等しくてもよい。IBC基準領域2100に含まれるように、現在のCTU2104の左側への再構成されるCTUの量は、(128×128)/(128×128)つまり1CTUと等しくてもよい。IBC基準領域2100は、再構成領域2110の一部分であり得る。IBC基準領域2100内のサンプルは、再構成領域2110内のサンプルのサブセットであり得る。符号化される現在のブロック2102のサンプルは、VPDU2108内のサンプルのサブセットであり得る。
【0140】
図21Aは、現在のCTU2104内の現在のブロック2102を示す。現在のブロック2102は、現在のCTU2104で符号化された第一のブロックであってもよく、IBCモードを使用して符号化され得る。
図17を参照して記載されるように、ブロックは、IBC基準領域2100内の最良に一致する基準ブロックを決定することによって、IBCモードを使用して符号化され得る。IBC基準領域2100は、現在のCTU2104の再構成される部分、および現在のブロック2102が位置する現在のCTU2104の再構成される部分またはVPDU2108のいずれかと併置される、再構成されるCTU2106の、一部分を含まない現在のCTU2104の左への単一の再構成されるCTU2106に制約され得る。CTUは、複数のVPDUに分割され得る。例えば、
図21Aは、サイズ64×64のサンプルの4つのVPDUに分割され得る。現在のブロック2102のIBC基準領域2100は、VPDU2108と併置される再構成されるCTU2106の64×64領域を除いて、再構成される領域2110(ハッチングで示される)を含み得る。併置された領域は、
図21AのXでマークされる。IBC基準領域2100は、現在のCTU2102の左側への異なる量のCTUを含み得る。現在のCTU2102の左側にある、IBC基準領域2100における、CTUの量は、異なるCTUサイズに対して異なってもよい。例えば、64×64のCTUサイズについては、IBC基準領域2100は、IBC基準サンプルメモリーが記憶し得る再構成される基準サンプルの量を現在のピクチャーのCTUのサイズで割ることに基づき、現在のCTU2102の左側への4CTUを含んでもよい。図示を容易にするため、
図21Aには、
図17を参照して記述されるように現在のブロックを囲むL字形状領域は示していない。こうしたL字形状領域は、IBC基準領域2100から除外され得る。
【0141】
図21Bは、例示的なIBC基準領域を示す。
図21Bは、現在のCTU2104の後に符号化されたブロックに対するIBC基準領域2118を示す。後に符号化されたブロックは、現在のブロック2112であり得る。現在のブロック2112は、IBCモード(例えば、
図17A~Dを参照して上述したような)を使用して符号化され得る。現在のブロック2112は、IBC基準領域2118内の最良に一致する基準ブロックを決定することによって符号化され得る。現在のブロック2112のIBC基準領域2118は、現在のCTU2104の再構成される部分、および現在のCTU2104の再構成される部分または現在のブロック2112が位置するVPDU2114のいずれかと併置される、再構成されるCTU2106の、一部分を含まない再構成されるCTU2106に制約され得る。現在のCTU2104は、サイズ64x64サンプルの4つのVPDUに分割され得る(例えば、
図21Aを参照して記述されるように)。現在のブロック2112のためのIBC基準領域2118は、現在のCTU2104の再構成された部分および/またはVPDU2114のいずれかと併置されるCTU2106の部分を除く、再構成された領域2116(ハッチングで示される)で構成され得る。
図21Bでは、併置された領域がそれぞれXで示されている。図示を容易にするために、
図21Bは、
図17Aに関して説明したような現在のブロックを囲むL字形状領域を示していない。このようなL字形状領域は、IBC基準領域2118から除外され得る。
【0142】
図22は、BVPを調整されたBVPに置き換えるための例示的な方法を示す。方法2200は、ビデオ符号化または復号化システム内のデバイスによって行われてもよい。例えば、デバイスは、エンコーダーおよび/またはデコーダーであり得る(例えば、
図2に示すエンコーダー200および/または
図3に示すデコーダー300)。
【0143】
ステップ2202で、デバイスは、BVPの水平コンポーネントと現在のブロックの幅(例えば、cbWidth)の合計がゼロよりも大きいと決定し得る。デバイスは、BVPの垂直コンポーネントと現在のブロックの高さ(例えば、cbHeight)の合計がゼロよりも大きいとさらに決定し得る。
【0144】
ステップ2204で、BVPは、ステップ2202でなされた決定に基づき、調整されたBVPに置き換えられてもよい。調整されたBVPの水平コンポーネントが、-cbWidthに等しくてもよく、調整されたBVPの垂直コンポーネントが、BVPの垂直コンポーネントに等しくてもよい。調整されたBVPの水平コンポーネントが、BVPの水平コンポーネントと等しくてもよく、調整されたBVPの垂直コンポーネントが、-cbHeightと等しくてもよい。調整されたBVPの水平コンポーネントが、-cbWidthに等しくてもよく、調整されたBVPの垂直コンポーネントが、-cbHeightに等しくてもよい。
【0145】
BVPを調整されたBVPに置き換えることは、複数の調整されたBVP候補を決定することを含み得る。調整されたBVP候補は、-cbWidthに等しい水平コンポーネントおよびBVPの垂直コンポーネントBVPyに等しい垂直コンポーネントを有する第一の調整されたBVP候補、BVPの水平コンポーネントBVPxに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを有する第二の調整されたBVP候補、および-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを有する第三の調整されたBVP候補のうちの少なくとも二つを含む。
【0146】
BVPを調整されたBVPに置き換えることは、調整されたBVP候補のうちの一つを調整されたBVPとして選択することを含み得る。選択は、有効な調整されたBVP候補の中にあり得る。調整されたBVPは、調整されたBVP候補の各々に対して決定/算出されたBVDに基づき、調整されたBVP候補から選択され得る。調整されたBVPは、調整されたBVP候補について計算されたBVDの中で最小のBVDと関連付けられてもよい。
【0147】
方法2200は、ビットストリーム内に/を介して、調整されたBVPの表示を送信/シグナリングすることを含み得る。方法2200は、ビットストリーム内に/を介して、調整されたBVPの表示を受信することを含み得る。ステップ2206において、調整されたBVPを使用して、現在のブロックに対するBVを決定または予測し得る(例えば、エンコーダーまたはデコーダーにおいて)。例えば、エンコーダーは、調整されたBVPおよびBVに基づきBVDを決定し得る(例えば、式17および18を使用して)。デコーダーが、調整されたBVPおよびBVDの受信した指標を使用して、BVを復号化し得る。
【0148】
エンコーダー(例えば、
図2に示すエンコーダー200)は、マージモードを使用してBVを符号化し得る。マージモードを使用するエンコーダーは、現在のブロックのIBC予測のために、現在のブロックまたは他のブロックの隣接ブロックと同じBVを再使用することができる。現在のブロックに対応するBVDは、例えば、少なくとも隣接するブロックまたは他のブロックの同じBVが使用され得るため、送信/シグナリングされる必要はない。現在のブロックのBVをシグナリングするためのシグナリングオーバーヘッドは、低減され得る。BV予測および差分符号化(またはIBCに対するAMVP)と同様の様式で、エンコーダーおよびデコーダーの両方が、マージモードに対する現在のブロックの隣接ブロックまたは他のブロックから、BVPの候補リストを生成し得る。エンコーダーは、符号化される現在のブロックのBV情報を予測するために、候補リスト中のBVPのうちの一つのBVを使用(または継承)することを決定し得る。エンコーダーは、ビットストリーム内に/を介して、候補リストから決定されたBVPの表示を送信/シグナリングし得る。例えば、エンコーダーは、候補BVPのリスト中の決定されたBVPを示すインジケーター/インデックスを送信/シグナリングし得る。デコーダーが、マージモードのエンコーダーと同じ様式で、候補BVPのリストを生成、決定、および/または構築し得る。BVPは、ビットストリーム内に/を介して、デコーダーに、候補BVPのリスト内のBVPのインデックス/インジケーターとして示され得る。デコーダーが、BVPと関連付けられる決定されたBVを使用して基準ブロックを決定および/または生成することによって、現在のブロックを復号化し得る。基準ブロックは、現在のブロックの予測に対応/を形成(例えば、考慮)し得る。デコーダーが、予測を予測誤差と組み合わせることによって、現在のブロックを復号化し得る。マージモードのための候補BVPのリスト(例えば、HEVC、VVC、および/または他のコーディング規格/フォーマット/プロトコル)は、IBCのAMVPで使用される五つ(または任意の他の数)の空間隣接ブロック、および/または一つまたは複数の追加の履歴ベースのBVPから導出される、最大四つ(または任意の他の数)の空間マージ候補を含んでもよい。
【0149】
図23A、
図23B、および
図23Cは、候補BVP調整の例を示す。エンコーダー(例えば、
図2に示すエンコーダー200)および/またはデコーダー(例えば、
図3のデコーダー300)は、ICBを使用して、CTU2302内の現在のブロック2300を符号化し得る。エンコーダーおよび/またはデコーダーが、本明細書に記載されるように、IBCを使用して現在のブロック2300を符号化し得る。
【0150】
IBCを使用するエンコーダーは、現在のブロックのものと同じ、現在のピクチャーの基準ブロックを検索し得る。現在のピクチャーの一部のみが、基準ブロックを検索するために利用可能であり得る。例えば、現在のブロックの符号化前に復号化された現在のピクチャーの一部のみが、基準ブロックを検索するために利用可能であり得る。基準ブロックを検索するために利用可能な現在のピクチャーの一部は、IBC基準領域であり得る。現在のブロックの符号化前に復号化された現在のピクチャーの一部のみを検索することが、符号化および復号化システムが同一の結果を生成し得るが、IBC基準領域を制限し得ることを確実にし得る。
【0151】
ブロックは、特定の順序でスキャンされ得る。例えば、ブロックは、zスキャン(例えば、HEVC、VVC、任意の他のコーディング規格/フォーマット/プロトコル)を使用して、左から右、上から下へスキャンされて、符号化/復号化のためのシーケンス順序を形成し得る。zスキャンに基づき、CTU2302内の現在のブロック2300の左および/またはその上方への、CTU2302およびブロック(
図23Aに示されない)の左および/またはその上方へのCTU(
図23Aに示されない)は、現在のブロック2300を予測するための基準ブロックを決定するための例示的なIBC基準領域2304を形成し得る。符号化/復号化のための異なるシーケンス順序またはピクチャー分割方法は、いくつかのビデオエンコーダーおよび/またはデコーダーに使用され得る。異なるシーケンス順序またはピクチャー分割方法を使用することが、それに応じて、IBC基準領域2304を変更し得る。
【0152】
一つまたは複数の追加のIBC基準領域制約は、例えば、符号化/復号化シーケンス順序に加えて、IBC基準領域2304上に配置され得る。例えば、IBC基準領域2304は、スライス境界、タイル境界、WPP、および/または現在のブロック2300を予測するための基準サンプルを記憶するための限定されたメモリーに基づき制約され得る。タイルは、異なるタイルのCTU間のコーディング依存性が許容されないように、CTUの長方形領域にピクチャーを柔軟に細分するためのピクチャー分割プロセスの一部として使用され得る。WPPは、ピクチャーの分割プロセスの一部として、ピクチャーをCTU行に分割するために(同様に)使用され得る。CTU行への分割は、異なる分割のCTU間の依存性が許可されないようなものであり得る。タイルおよび/またはWPPの使用は、ピクチャー分割の並列処理を可能にし得る。CTU2302の左および/またはその上方への一つまたは複数のCTU(
図23Aに示されない)は、例えば、基準サンプルを記憶するための限定されたメモリーのため、および/または並列処理アプローチのうちの一つのため、IBC基準領域2304の一部ではあり得ない。
【0153】
IBC基準領域2304は、(例えば、IBCに基づき現在のブロック2300を符号化するように決定される)任意のBVが、現在のブロック2300の位置から、現在のブロック2300と重複しない(または部分的に重複しない)基準ブロックの位置への変位を示すように制約され得る。BVに関する制約は、
図23Aに示すように、現在のブロック2300と基準領域2304との間の逆さL字型ギャップ(または現在のブロック1700と基準領域1706との間のギャップ)をもたらし得る。L字型ギャップは、現在のブロック2300の左側にcbWidth-1の幅(ここで、cbWidthは現在のブロック2300の幅である)および/または現在のブロック2300の上方にcbHeight-1の長さ(ここで、cbHeightは現在のブロック2300の高さである)を有し得る。本明細書のブロックの位置は、ブロックの左上サンプルの位置を指し得る。ブロックの位置は、他の例示的なシナリオにおけるブロック内の別のサンプルの位置によって決定され得る。ピクチャー中のサンプルの位置は、水平方向(変数xによって与えられる)のサンプル番号および垂直方向(変数yによって与えられる)のサンプル番号によって示され得る。水平方向のサンプル番号および垂直方向のサンプル番号は、ピクチャーの左上隅のピクチャー座標系の原点(例えば、割り当てられた(x、y)=(0、0))に対するものであり得る。水平方向のサンプル番号および垂直方向のサンプル番号は、サンプルが位置するブロック(例えば、CTU)の左上のサンプルに対するものであり得る。正の方向は、水平x方向に直角であり得る。xのより大きな値は、サンプル位置が正の水平方向にさらに右であることを意味し得る。正の方向は、垂直y方向に下向きであり得る。yのより大きな値は、サンプル位置が、正の垂直方向にさらに下がってもよいことを意味し得る。
【0154】
エンコーダーは、ブロックマッチング技術を適用/使用して、BV2306を決定し得る。BV2306は、現在のブロック2300の位置から基準ブロック2308の位置への変位を示し得る(例えば、ブロック内補償予測に従って)。基準ブロック2308は、IBC基準領域2304内の、現在のブロック2300と最良に一致するブロックであり得る。BV2306は、現在のブロック2300の位置から、IBC基準領域2304内にある基準ブロックの位置への変位を示すために、(例えば、本明細書に記載されるように)IBC基準領域2304によって制約され得る。エンコーダーは、検索プロセス中に試験された可能性がある、IBC基準領域2304内の位置を有するブロックから最良に一致する基準ブロックを決定し得る。エンコーダーは、基準ブロックが、レート歪み基準(例えば、ラグランジアンレート歪みコスト)などの一つまたは複数のコスト基準に基づき、最良に一致する基準ブロックであると決定し得る。一つまたは複数のコスト基準は、例えば、基準ブロックの予測サンプルと現在のブロックの元のサンプルとの間の差(例えば、SSD、SAD、SATD、および/またはハッシュ関数に基づき決定される差)に基づいてもよい。基準ブロックは、ループ内フィルターリング動作(例えば、非ブロック化および/またはSAWフィルターリング)によって処理される前に、現在のピクチャーの復号化された(および/または再構成された)サンプルを含み得る。
【0155】
エンコーダーは、例えば、IBCを使用した基準ブロック2308の決定に基づき、現在のブロック2300と基準ブロック2308との間の差(例えば、対応するサンプル毎の差)を決定し得る。差は、予測誤差および/または残差と呼んでもよい。次に、エンコーダーは、デコーダーによる復号化のために、ビットストリーム内に/を介して、予測誤差および/または関連する予測情報を記憶および/または送信/シグナリングし得る。
【0156】
エンコーダーおよび/またはデコーダーが、BV2306を予測的に符号化するための候補BVPのリストを決定し得る。エンコーダーおよび/またはデコーダーが、複数のソースに由来する候補BVPから候補BVPのリストを構築/決定し得る。複数のソースは、現在のブロック2300の空間的に隣接ブロック、現在のブロック2300の時間的に同一位置のブロック、および/または履歴ベースのBVのIBC情報を含み得る。エンコーダーおよび/またはデコーダーが、IBCまたはマージモードにAMVPを使用することに基づき、BVを予測的に符号化するための候補BVPのリストを構築/決定し得る。
【0157】
(例えば、空間的に隣接ブロックのBVなどの供給源、および/または履歴ベースのBVからの)候補BVPは、現在のブロック2300の位置から、BV2306のようなIBC基準領域2304内にない場合がある基準ブロックの位置への変位を示し得る。候補BVPは、例えば、候補BVPが、現在のブロック2300の位置から、(例えば、BV2306とは異なり)IBC基準領域2304内にない場合がある基準ブロックの位置への変位を示し得るため、BV2306の正確な予測を提供し得ない。BV2306と候補BVPとの間のBVDを送信/伝送するために必要なビットの量は、不正確な予測のために高い場合がある。さらに、BVは、BVPによってのみ予測され得る(例えば、マージモードにおいて)。IBC基準領域の外側を指す候補BVPは、基準ブロックのサンプルの全て/一部が復号化され得ないため、BVを予測するために使用され得ない。
【0158】
図23Aは、候補BVPの例を示す。候補BVP2310(または単にBVP2310)は、現在のブロック2300の位置から基準ブロック2312の位置への変位を示し得る。基準ブロック2312は、IBC基準領域2304内になくてもよい。
【0159】
エンコーダーおよび/またはデコーダーが、BVP2310が、現在のブロック2300の位置から少なくとも現在のブロック2300の幅(cbWidth)に等しい量だけ現在のブロック2300の左にも、少なくとも現在のブロック2300の高さ(cbHeight)に等しい量だけ現在のブロック2300の上方にもない、基準ブロック2312の位置への変位を示すと決定し得る。例えば、BVP2310は、現在のブロック2300の位置から、現在のブロック2300の左および上部を囲むL字形状領域内、またはL字形状領域の右および下方の領域内の基準ブロック2312の位置への変位を示してもよく、その両方/どちらかが、IBC基準領域2304の外側にあり得る。IBC基準領域1704におけるL字形状領域(例えば、現在のブロック2300の左部分および上部を包囲し、左部分は(cbWidth-1)に等しい幅を有し、上部は(cbHeight-1)に等しい高さを有する)の非包含は、BV2306が現在のブロック2300と(少なくとも部分的に)重複する基準ブロックを指すのを防止することである。
【0160】
エンコーダーまたはデコーダーが、BVP2310が、BVP2310の水平コンポーネントBVPxおよびcbWidthの合計がゼロよりも大きい、およびBVP2310の垂直コンポーネントBVPyおよびcbHeightの合計が、ゼロよりも大きいと決定することにより、現在のブロック2300の位置から、少なくともcbWidthに等しい量だけ現在のブロック2300の左側にも、少なくともcbHeightに等しい量だけ現在のブロック2300の上方にもない基準ブロック2312の位置への変位を示すと決定し得る。第一および第二の決定は、BVP2310の水平コンポーネントBVPxが-cbWidthよりも大きく、およびBVP2310の垂直コンポーネントBVPyが-cbHeightよりも大きいと決定することとして同等に述べられ得る。第一および第二の決定は、BVP2310の水平コンポーネントBVPxの大きさがcbWidth未満であり、BVP2310の垂直コンポーネントBVPyの大きさがcbHeight未満であると決定すると同等に述べられてもよい。
【0161】
エンコーダーおよび/またはデコーダーが、BVP2310を調整されたBVPに置き換えてもよい。エンコーダーおよび/またはデコーダーが、例えば、基準ブロック2312の位置が、少なくともcbWidthに等しい量だけ現在のブロック2300の左側にも、少なくともcbHeightに等しい量だけ現在のブロック2300の上方にもないと決定することに基づき、BVP2310を調整されたBVPに置き換えてもよい。調整されたBVPは、現在のブロック2300の位置から、IBC基準領域2304内の基準ブロックの位置への変位を示し得る。例えば、エンコーダーおよび/またはデコーダーが、基準ブロック2312の位置から現在のブロック2300のIBC基準領域2304の最も近い垂直境界までの水平距離2314、および基準ブロック2312の位置から現在のブロック2300のIBC基準領域2304の最も近い水平境界までの垂直距離2316を決定および/または計算し得る。水平距離2314は、cbWidthとBVP2310の水平コンポーネントBVPxの合計に基づき決定され得る。垂直距離2316は、cbHeightおよびBVP2310の垂直コンポーネントBVPyの合計に基づき決定され得る。エンコーダーおよび/またはデコーダーが、水平距離2314と垂直距離2316との比較に基づき、BVP2310を調整されたBVPに置き換えてもよい。調整されたBVPは、水平距離2314が垂直距離2316よりも大きいかどうか、水平距離2314が垂直距離2316よりも小さいかどうか、および/または水平距離2314が垂直距離2316に等しいかどうかのうちの一つまたは複数に基づいてもよい。BVP調整は、基準ブロック2312の位置の変化が最小限であり得るような様式であり得る。
【0162】
エンコーダーおよび/またはデコーダーが、例えば、水平距離1714が垂直距離1716未満であることに基づき、BVP2310を調整されたBVP2318に置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP2310を例えば、水平距離1714が垂直距離1716未満であることに基づき、現在のブロック2300(-cbWidth)の幅の負に等しい水平コンポーネントおよびBVP2310の垂直コンポーネントに等しい垂直コンポーネントを含む調整されたBVP2318に置き換えてもよい。
図23Aは、水平距離2314が垂直距離2316よりも小さい例を示す。
図23Aの調整されたBVP2318は、例えば、水平距離2314が垂直距離2316未満であることに基づき、-cbWidthに等しい水平コンポーネントと、BVP2310の垂直コンポーネントに等しい垂直コンポーネントとを含み得る。
【0163】
エンコーダーおよび/またはデコーダーが、例えば、水平距離1714が垂直距離1716よりも大きいことに基づき、BVP2310を調整されたBVP2318に置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP2310を、BVP2310の水平コンポーネントに等しい水平コンポーネントと、現在のブロックの高さの負(-cbHeight)に等しい垂直コンポーネントとを含む調整されたBVP2318に置き換えてもよい。
【0164】
図23Bは、水平距離2314が垂直距離2316よりも大きい実施例を示す。
図23Bの調整されたBVP2318は、例えば、水平距離2314が垂直距離2316よりも大きいことに基づき、BVP2310の水平コンポーネントに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む。
【0165】
エンコーダーおよび/またはデコーダーが、例えば、水平距離2314が垂直距離2316に等しいことに基づき、BVP2310を調整されたBVP2318に置き換えてもよい。エンコーダーおよび/またはデコーダーが、BVP2310を、-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む調整されたBVP2318に置き換えてもよい。
【0166】
図23Cは、水平距離2314が垂直距離2316に等しい例を示している。
図23Cにおいて、調整されたBVP2318は、例えば、水平距離2314が垂直距離2316に等しいことに基づき、
-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む。
【0167】
図24は、距離チェックの例を示す。距離チェックは、BVPを調整する前に実施され得る。BVPは、
図23A、
図23B、および/または
図23Cを参照して記述されるようにBVP2310であり得る。
図23A、
図23B、および/または
図23Cを参照して記述されるように、BVP2310の水平および垂直コンポーネントの一方または両方は、調整されたBVP2324を生成するように調整され得る。BVP2310の水平コンポーネントが、-cbWidthに調整されてもよく、および/またはBVP2310の垂直コンポーネントが、-cbHeightに調整され得る。エンコーダーおよび/またはデコーダーが、例えばBVP2310の水平および垂直コンポーネントのいずれかまたは両方を調整する前に、現在のブロック2300の位置からIBC基準領域2304の垂直境界(例えば、左端の垂直境界)までの水平距離2402を決定してもよく、および/または現在のブロック2300の位置からIBC基準領域2304の水平境界(例えば、最も上の水平境界)までの垂直距離2404を決定し得る。水平距離2402は、例えば、BVP2310の水平コンポーネントを-cbWidthに調整するために、cbWidth以上であり得る。垂直距離2404は、例えば、BVP2310の垂直コンポーネントを-cbHeightに調整するために、cbHeight以上であり得る。
【0168】
水平距離2314および垂直距離2316に基づくBVP2310の交換は、例えば、水平距離2402がcbWidth以上であること、および垂直距離2404が-cbHeight以上であることの両方に基づき、
図23A、
図23B、および/または
図23Cを参照して、前述のように実施され得る。BVP2310は、例えば、水平距離2402がcbWidth以上であること、および垂直距離2404が-cbHeight以上であることの両方に基づき、調整されたBVP2324によって置き換えられてもよい。BVP2310は、水平距離2314が垂直距離2316未満であることに基づき、-cbWidthに等しい水平コンポーネントおよびBVP2310の垂直コンポーネントに等しい垂直コンポーネント、水平距離2314が垂直距離2316よりも大きいことに基づき、BVP2310の水平コンポーネントに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネント、または水平距離2314が垂直距離2316に等しいことに基づき、-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む、調整されたBVP2324によって置き換えられてもよい。
【0169】
BVP2310は、例えば、水平距離2402がcbWidth以上であり、垂直距離2404が-cbHeight未満であることに基づき、-cbWidthに等しい水平コンポーネントと、BVP2310の垂直コンポーネントに等しい垂直コンポーネントとを含む調整されたBVPによって置き換えられてもよい。BVP2310は、例えば、水平距離2402がcbWidth未満であり、垂直距離2404が-cbHeight以上であることに基づき、BVP2310の水平コンポーネントに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む調整されたBVPによって置き換えられてもよい。
【0170】
図23A、
図23B、
図23C、および/または
図24に示されるように、IBC基準領域2304は、単に例示的であり、IBC基準領域は、IBC基準領域2304とは異なってもよい。
図23A、
図23B、
図23C、および/または
図24を参照して記述される、方法、装置、システムが、IBC基準領域2304とは異なるIBC基準領域に使用/適用され得る。例えば、IBC基準領域2304は、異なるセットのIBC基準領域制約に基づき決定されるIBC基準領域によって置換され得る。IBC基準領域2304は、限られたメモリーサイズ(例えば、IBC基準サンプルメモリー)に格納され得る復号化または再構成されるサンプルの数/量を含むように(さらに)制約され得る。IBC基準サンプルメモリーのサイズは、エンコーダーを有するオンチップおよび/またはデコーダーを有するオンチップを実装することに基づき制限され得る。IBC基準領域2304は、エンコーダーからのより大きなサイズのIBC基準サンプルメモリーオフチップおよび/またはデコーダーからのオフチップを使用することによって、サイズが増加し得る。オフチップメモリーを使用することが、より高いメモリー帯域幅要件、および/または(例えば、IBC基準領域2304における)サンプルを、IBC基準サンプルメモリーへ、および/またはそれから書き込みおよび/または読み取る際の遅延の増加を必要とし得る。IBC基準領域2304は、IBC基準領域1706、2100、および2118を参照して上述したさまざまな考慮に従って決定および/または制約され得る。
【0171】
図25は、BVPを調整されたBVPに置き換えるための例示的な方法を示す。
図25に示す方法2500は、エンコーダーおよび/またはデコーダーによって実装され得る(例えば、
図2に示すエンコーダー200および/または
図3に示すデコーダー300)。
【0172】
ステップ2502において、BVPの水平コンポーネントと現在のブロックの幅(cbWidth)の合計は、ゼロよりも大きいと決定されてもよく、BVDの垂直コンポーネントと現在のブロックの高さ(cbHeight)の合計は、ゼロよりも大きいと決定され得る。BVPは、現在のブロックの位置から基準ブロックの位置への変位を示し得る。
【0173】
ステップ2504で、第一の水平距離および第一の垂直距離が決定され得る。第一の水平距離は、基準ブロックの位置から、現在のブロックのIBC基準領域の第一の垂直境界までの距離であり得る。第一の垂直距離は、基準ブロックの位置から、現在のブロックのIBC基準領域の第一の水平境界までの距離であり得る。第一の水平距離は、cbWidthとBVPの水平コンポーネントとの合計に基づき決定/計算され得る。第一の第一の垂直距離は、cbHeightとBVPの垂直コンポーネントとの合計に基づき決定/計算され得る。
【0174】
ステップ2506で、BVPは、調整されたBVPで置換され得る。BVPは、例えば、第一の水平距離と第一の垂直距離との比較に基づき、調整されたBWPに置換され得る。BVPは、例えば、第一の水平距離が第一の垂直距離未満であることに基づき、-cbWidthに等しい水平コンポーネントおよびBVPの垂直コンポーネントに等しい垂直コンポーネントを含む調整されたBVPに置換され得る。BVPは、例えば、第一の水平距離が第一の垂直距離よりも大きいことに基づき、BVPの水平コンポーネントに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む調整されたBVPに置換され得る。BVPは、例えば、第一の水平距離が第一の垂直距離に等しいことに基づき、-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む調整されたBVPに置換され得る。
【0175】
BVPは、例えば、現在のブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離がcbWidthよりも大きいこと、および現在のブロックの位置から現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離がcbHeightよりも大きいことに基づき、調整されたBVPに置換され得る。IBC基準領域の第二の垂直境界は、IBC基準領域の左端の垂直境界であってもよく、IBC基準領域の第二の水平境界は、IBC基準領域の一番上の水平境界であり得る。
【0176】
方法2500は、調整されたBVPに基づきBVを決定することを含み得る。方法2500は、調整されたBVPに基づきBVを予測することを含み得る。例えば、BVは、AMVPおよび/またはマージモードに従って調整されたBVPに基づき予測され得る。方法2500は、調整されたBVPをリスト候補BVPに追加することを含み得る。候補BVPのリストは、AMVPおよび/またはマージモード用であり得る。
【0177】
本明細書のさまざまな実施例は、ハードウェア(例えば、アナログおよび/またはデジタル回路を使用して)、ソフトウェア(例えば、一つまたは複数の汎用もしくは専用プロセッサーによる記憶/受信された命令の実行を通して)、および/またはハードウェアとソフトウェアの組み合わせとして実装され得る。本明細書のさまざまな実施例は、コンピューターシステムまたは他の処理システムを含む環境で実装され得る。
【0178】
図26は、本明細書に記載の実施例のいずれかを使用し得るコンピューターシステムの例を示す。例えば、
図26に示す例示的なコンピューターシステム2600は、本明細書に記載の方法のうちの一つまたは複数を実装し得る。例えば、本明細書に記載されるさまざまなデバイスおよび/またはシステム(例えば、
図1、2、および3)は、一つまたは複数のコンピューターシステム2600の形態で実装され得る。さらに、本開示に図示されるフローチャートのステップの各々は、一つまたは複数のコンピューターシステム2600上に実装され得る。
【0179】
コンピューターシステム2600は、プロセッサー2604などの一つまたは複数のプロセッサーを含んでもよい。プロセッサー2604は、特殊用途プロセッサー、汎用プロセッサー、マイクロプロセッサー、および/またはデジタル信号プロセッサーであり得る。プロセッサー2604は、通信インフラ2602(例えば、バスまたはネットワーク)に接続され得る。コンピューターシステム2600はまた、メインメモリー2606(例えば、ランダムアクセスメモリー(RAM))および/または二次メモリー2608を含んでもよい。
【0180】
二次メモリー2608は、ハードディスクドライブ2610および/または取り外し可能なストレージドライブ2612(例えば、磁気テープドライブ、光ディスクドライブ、および/または同種のもの)を含んでもよい。取り外し可能なストレージドライブ2612は、取り外し可能な記憶ユニット2616から読み取られ、および/または取り外し可能な記憶ユニット2616に書き込まれてもよい。取り外し可能な記憶ユニット2616は、磁気テープ、光ディスク、および/またはこれに類するものを含んでもよい。取り外し可能な記憶ユニット2616は、取り外し可能なストレージドライブ2612によって読み取られてもよく、および/または取り外し可能なストレージドライブ2612に書き込まれてもよい。取り外し可能な記憶ユニット2616は、その中にコンピューターソフトウェアおよび/またはデータを格納したコンピューター使用可能ストレージ媒体を含んでもよい。
【0181】
二次メモリー2608は、コンピュータープログラムまたは他の命令をコンピューターシステム2600にロードすることを可能にするための他の類似の手段を含んでもよい。こうした手段は、取り外し可能な記憶ユニット2618および/またはインターフェイス2614を含み得る。こうした手段の例は、プログラムカートリッジおよび/またはカートリッジインターフェイス(ビデオゲーム装置など)、リムーバブルメモリーチップ(消去可能プログラマブル読み出し専用メモリー(EPROM)またはプログラマブル読み出し専用メモリー(PROM)など)、ならびに関連するソケット、サムドライブおよびUSBポート、ならびに/またはソフトウェアおよび/またはデータを取り外し可能な記憶ユニット2618からコンピューターシステム2600に転送することを可能にし得る他の取り外し可能な記憶ユニット2618およびインターフェイス2614を含んでもよい。
【0182】
コンピューターシステム2600はまた、通信インターフェイス2620を含んでもよい。通信インターフェイス2620は、ソフトウェアおよびデータをコンピューターシステム2600と外部装置との間で転送することを可能にし得る。通信インターフェイス2620の例は、モデム、ネットワークインターフェイス(例えば、イーサネットカード)、通信ポートなどを含み得る。通信インターフェイス2620を介して転送されるソフトウェアおよび/またはデータは、電子、電磁、光学、および/または通信インターフェイス2620によって受信され得る他の信号であり得る信号の形態であり得る。信号は、通信経路2622を介して通信インターフェイス2620に提供され得る。通信経路2622は、信号を伝送してもよく、ワイヤもしくはケーブル、光ファイバ、電話線、携帯電話リンク、RFリンク、および/または任意の他の通信チャネルを使用して実装され得る。
【0183】
コンピュータープログラム媒体および/またはコンピューター可読媒体は、取り外し可能な記憶ユニット2616および2618、またはハードディスクドライブ2610に取り付けられたハードディスクなどの有形ストレージ媒体を指すために使用され得る。コンピュータープログラム製品は、コンピューターシステム2600にソフトウェアを提供するための手段であり得る。コンピュータープログラム(コンピューター制御ロジックとも呼ばれ得る)は、メインメモリー2606および/または二次メモリー2608に保存され得る。コンピュータープログラムは、通信インターフェイス2620を介して受信され得る。こうしたコンピュータープログラムは、実行されると、コンピューターシステム2600が、本明細書で論じるように、本開示を実施することを可能にし得る。特に、コンピュータープログラムは、実行されるとき、プロセッサー2604が、本明細書に記載される方法のいずれかなどの本開示のプロセスを実施することを可能にし得る。従って、こうしたコンピュータープログラムは、コンピューターシステム2600のコントローラーを表し得る。
【0184】
図27は、例えば、ソース装置(例えば、102)、エンコーダー(例えば、200)、宛先装置(例えば、106)、デコーダー(例えば、300)、および/または本明細書に記載される任意のコンピューティング装置を含む、本明細書に記載されるさまざまな装置のいずれかを実装するために使用され得るコンピューティング装置の例示的な要素を示す。コンピューティング装置2730は、ランダムアクセスメモリー(RAM)2733、リムーバブル媒体2734(ユニバーサルシリアルバス(USB)ドライブ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)、もしくはフロッピーディスクドライブなど)、または任意の他の所望のストレージ媒体に格納される命令を実行し得る、一つまたは複数のプロセッサー2731を含み得る。命令はまた、接続される(または内部)ハードドライブ2735に記憶され得る。コンピューティング装置2730はまた、プロセッサー2731上で実行されるプロセス、およびコンピューティング装置2730の任意のハードウェアおよび/またはソフトウェアコンポーネント(例えば、ROM2732、RAM2733、リムーバブル媒体2734、ハードドライブ2735、デバイスコントローラー2737、ネットワークインターフェイス2739、GPS2741、Bluetoothインターフェイス2742、WiFiインターフェイス2743など)へのアクセスを要求する任意のプロセスを監視するための一つまたは複数のコンピュータープログラムの命令を実行し得るセキュリティプロセッサー(図示せず)を含んでもよい。コンピューティング装置2730は、ディスプレイ2736(例えば、スクリーン、表示装置、モニター、テレビなど)などの一つまたは複数の出力装置を含んでもよく、ビデオプロセッサーなどの一つまたは複数の出力装置コントローラー2737を含んでもよい。また、リモートコントロール、キーボード、マウス、タッチスクリーン、マイクなど、一つまたは複数のユーザー入力装置2738があり得る。コンピューティング装置2730はまた、有線インターフェイス、無線インターフェイス、または二つの組み合わせであり得る、ネットワークインターフェイス2739などの一つまたは複数のネットワークインターフェイスを含んでもよい。ネットワークインターフェイス2739は、コンピューティング装置2730がネットワーク2740(例えば、RAN、またはその他の任意のネットワーク)と通信するためのインターフェイスを提供し得る。ネットワークインターフェイス2739は、モデム(例えば、ケーブルモデム)を含んでもよく、外部ネットワーク2740は、通信リンク、外部ネットワーク、家庭内ネットワーク、プロバイダーの無線、同軸、ファイバ、またはハイブリッドファイバー/同軸分配システム(例えば、DOCSISネットワーク)、または任意の他の所望のネットワークを含んでもよい。さらに、コンピューティング装置2730は、グローバル位置決め信号を受信および処理し、外部サーバーおよびアンテナから可能な支援を得て、コンピューティング装置2730の地理的位置を決定するように構成され得る、グローバル位置決めシステム(GPS)マイクロプロセッサー2741などの位置検出装置を含んでもよい。
【0185】
図27の例はハードウェア構成であり得るが、示されたコンポーネントはソフトウェアとして実装され得る。所望の場合には、コンピューティング装置2730の構成要素を追加、除去、結合、分割などするように変更を加えてもよい。さらに、構成要素は、基本的なコンピューティング装置および構成要素を使用して実装されてもよく、同じ構成要素(例えば、プロセッサー2731、ROMストレージ2732、ディスプレイ2736など)を使用して、本明細書に記載される他のコンピューティング装置および構成要素のいずれかを実装し得る。例えば、本明細書で説明されるさまざまな構成要素は、
図27に示すように、コンピューター可読媒体に格納されたコンピューター実行可能命令を実行するプロセッサーなどの構成要素を有するコンピューティング装置を使用して実装され得る。本明細書に記載されるエンティティの一部または全ては、ソフトウェアベースであってもよく、共通の物理プラットフォームに共存し得る(例えば、要求エンティティは、依存エンティティとは別のソフトウェアプロセスおよびプログラムであってもよく、それら両方とも共通のコンピューティング装置上でソフトウェアとして実行され得る)。
【0186】
以下、さまざまな特性が、番号付き条項または段落のセットにおいて強調表示される。これらの特徴は、本発明または発明の概念を限定していると解釈されるものではなく、本明細書に記述されるいくつかの特徴の強調として、そのような特徴の特定の順序の重要性または関連性を示唆することなく、単に提供されるものである。
【0187】
条項1.
コンピューティング装置によって、一つまたは複数の候補ブロックベクトル予測子(BVP)を決定することを含み、一つまたは複数の候補BVPの各々が、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含む、方法。
【0188】
条項2.
一つまたは複数の候補BVPの中から少なくとも一つの候補BVPを含むように変更される候補BVPのリストに基づき、現在のブロックのブロックベクトル(BV)を決定することをさらに含む、条項1に記載の方法。
【0189】
条項3.
少なくとも一つの候補BVPが、現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す、条項1および2のいずれか一項に記載の方法。
【0190】
条項4.
少なくとも一つの候補BVPが、候補BVPのリスト中のBVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、および候補BVPのリスト中のBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離がゼロよりも大きいことに基づき、一つまたは複数の候補BVPの中から選択される、条項1~3のいずれか一項に記載の方法。
【0191】
条項5.
現在のブロックの幅が、cbWidthであり、現在のブロックの高さが、cbHeightであり、少なくとも一つの候補BVPの中で、候補BVPの水平コンポーネントが、-cbWidthに等しく、および候補BVPの垂直コンポーネントが、-cbHeightに等しい、条項1~4のいずれか一項に記載の方法。
【0192】
条項6.
現在のブロックの幅が、cbWidthであり、少なくとも一つの候補BVPの中で、候補BVPの水平コンポーネントが、-cbWidthと等しく、および候補BVPの垂直コンポーネントが、候補BVPのリスト中のBVPの垂直コンポーネントに等しい、条項1~5のいずれか一項に記載の方法。
【0193】
条項7.
現在のブロックの高さが、cbHeightであり、少なくとも一つの候補BVPの中で、候補BVPの垂直コンポーネントが、-cbHeightに等しく、および候補BVPの水平コンポーネントが、候補BVPのリスト中のBVPの水平コンポーネントに等しい、条項1~6のいずれか一項に記載の方法。
【0194】
条項8.
少なくとも一つの候補BVPが、一つまたは複数の候補BVPの各々に対するそれぞれのブロックベクトル差(BVD)を決定すること、および少なくとも一つの候補BVPに対するBVDが、それぞれのBVDの中で最も小さいことに基づき、少なくとも一つの候補BVPを選択することに基づき、一つまたは複数の候補BVPの中から選択される、条項1~7のいずれか一項に記載の方法。
【0195】
条項9.
一つまたは複数の候補BVPを決定することが、候補BVPのリスト中のBVPが、IBC基準領域外にあると決定することに基づく、条項1~8のいずれか一項に記載の方法。
【0196】
条項10.
現在のブロックの幅がcbWidthであり、現在のブロックの高さがcbHeightであり、一つまたは複数の候補BVPを決定することが、BVPの水平コンポーネントが-cbWidthよりも大きく、BVPの垂直コンポーネントが-cbHeightよりも大きいと決定することに基づく、条項1~9のいずれか一項に記載の方法。
【0197】
条項11.
コンピューティング装置がエンコーダーを含み、方法が、少なくとも一つの候補BVPの表示をデコーダーに送信することをさらに含む、条項1~10のいずれか一項に記載の方法。
【0198】
条項12.
候補BVPのリスト中の少なくとも一つのBVPを、少なくとも一つの候補BVPに置き換えることをさらに含む、条項1~11のいずれか一項に記載の方法。
【0199】
条項13.
少なくとも一つの候補BVPのBVおよび候補BVPに基づき、ブロックベクトル差(BVD)を決定することと、BVDの表示をデコーダーに送信することと、をさらに含む、条項1~12のいずれか一項に記載の方法。
【0200】
条項14.
BVによって示される基準ブロックに基づき現在のブロックを符号化することをさらに含む、条項1~13のいずれか一項に記載の方法。
【0201】
条項15.
ブロックベクトル差(BVD)の表示を受信することと、BVDおよび少なくとも一つの候補BVPの候補BVPに基づき、BVを決定することと、をさらに含む、条項1~14のいずれか一項に記載の方法。
【0202】
条項16.
BVによって示される基準ブロックに基づき、現在のブロックを復号化することをさらに含む、条項1~15のいずれか一項に記載の方法。
【0203】
条項17.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項1~16のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0204】
条項18.
条項1~16のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、少なくとも一つの候補BVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0205】
条項19.
実行されると、条項1~16のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0206】
条項20.
候補BVPのリストにおける、ブロックベクトル予測子(BVP)の水平コンポーネント、および現在のブロックの幅の合計としての水平距離がゼロよりも大きい、およびBVPの垂直コンポーネント、および現在のブロックの高さの合計としての垂直距離がゼロよりも大きいと決定することを含む、方法。
【0207】
条項21.
決定に基づき、候補BVPのリスト内のBVPを、調整されたBVPに置き換えることをさらに含む、条項20に記載の方法。
【0208】
条項22.
候補BVPのリストを使用して、現在のブロックのブロックベクトル(BV)を決定することをさらに含む、条項20および21のいずれか一項に記載の方法。
【0209】
条項23.
調整されたBVPが、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含む、条項20~22のいずれか一項に記載の方法。
【0210】
条項24.
現在のブロックの幅が、cbWidthであり、調整されたBVPの水平コンポーネントが、-cbWidthに等しい、条項20~23のいずれか一項に記載の方法。
【0211】
条項25.
現在のブロックの高さがcbHeightであり、調整されたBVPの垂直コンポーネントが-cbHeightに等しい、条項20~24のいずれか一項に記載の方法。
【0212】
条項26.
現在のブロックの幅が、cbWidthであり、調整されたBVPの水平コンポーネントが、-cbWidthに等しく、および調整されたBVPの垂直コンポーネントが、BVPの垂直コンポーネントに等しい、条項20~25のいずれか一項に記載の方法。
【0213】
条項27.
現在のブロックの高さがcbHeightであり、調整されたBVPの垂直コンポーネントが-cbHeightに等しく、および調整されたBVPの水平コンポーネントがBVPの水平コンポーネントに等しい、条項20~26のいずれか一項に記載の方法。
【0214】
条項28.
BVPを調整されたBVPに置き換えることが、調整されたBVPに対するブロックベクトル差(BVD)が、一つまたは複数の候補BVPのそれぞれについて決定されたBVDの中で最小であることに基づき、一つまたは複数の候補BVPから、調整されたBVPを選択することを含む、条項20~27のいずれか一項に記載の方法。
【0215】
条項29.
BVPを調整されたBVPに置き換えることが、コンピューティング装置によって、一つまたは複数の候補BVPを決定することを含み、一つまたは複数の候補BVPの各々が、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含む、条項20~28のいずれか一項に記載の方法。
【0216】
条項30.
現在のブロックの幅がcbWidthであり、現在のブロックの高さがcbHeightであり、一つまたは複数の候補BVPが、-cbWidthに等しい水平コンポーネントと、BVPの垂直コンポーネントに等しい垂直コンポーネントとを含む、第一の候補BVP、BVPの水平コンポーネントに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む、第二のBVP候補、およびcbWidthに等しい水平コンポーネントと、-cbHeightに等しい垂直コンポーネントとを含む、第三のBVP候補、の一つまたは複数を含む、条項20~29のいずれか一項に記載の方法。
【0217】
条項31.
BVPを調整されたBVPに置き換えることが、BVPを一つまたは複数の候補BVPのうちの選択された一つに置き換えることを含む、条項20~30のいずれか一項に記載の方法。
【0218】
条項32.
一つまたは複数の候補BVPにおける一つまたは複数の有効な候補BVPを決定することをさらに含み、BVPを調整されたBVPに置き換えることが、BVPを一つまたは複数の有効な候補BVPの選択された一つに置き換えることを含む、条項20~31のいずれか一項に記載の方法。
【0219】
条項33.
調整されたBVPの表示を送信することをさらに含む、条項20~32のいずれか一項に記載の方法。
【0220】
条項34.
調整されたBVPを使用して、ブロックベクトル差(BVD)を決定することをさらに含む、条項20~33のいずれか一項に記載の方法。
【0221】
条項35.
調整されたBVPの表示を受信することをさらに含む、条項20~34のいずれか一項に記載の方法。
【0222】
条項36.
調整されたBVPを使用してBVを決定することをさらに含む、条項20~35のいずれか一項に記載の方法。
【0223】
条項37.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項20~36のいずれか一項に記載の方法を実行させる、命令を記憶するメモリーとを含む、コンピューティング装置。
【0224】
条項38.
条項20~36のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0225】
条項39.
実行されると、条項20~36のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0226】
条項40.
コンピューティング装置によって、候補BVPのリスト内のブロックベクトル予測子(BVP)が、現在のブロックからIBC基準領域の外側の位置への変位を示すBVPに基づき、現在のブロックに関連付けられるブロック間コピー(IBC)基準領域の外側にあると決定することを含む、方法。
【0227】
条項41.
決定に基づき、候補BVPのリスト内のBVPを、現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す調整されたBVPに置き換えることをさらに含む、条項40に記載の方法。
【0228】
条項42.
候補BVPのリストを使用して、現在のブロックのブロックベクトル(BV)を決定することをさらに含む、条項40および41のいずれか一項に記載の方法。
【0229】
条項43.
BVPが、現在のブロックに関連付けられるICBの外側にあると決定することが、BVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、およびBVPの垂直コンポーネントと現在のブロックの高さとの合計としての垂直距離がゼロよりも大きいことに基づく、条項40~42のいずれか一項に記載の方法。
【0230】
条項44.
現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含む、一つまたは複数の候補BVPから調整されたBVPを選択することをさらに含む、条項40~43のいずれか一項に記載の方法。
【0231】
条項45.
BVPを調整されたBVPに置き換えることが、調整されたBVPに対するブロックベクトル差(BVD)が、一つまたは複数の候補BVPのそれぞれについて決定されたBVDの中で最小であることに基づき、一つまたは複数の候補BVPから、調整されたBVPを選択することを含む、条項40~44のいずれか一項に記載の方法。
【0232】
条項46.
調整されたBVPの表示を受信装置に送信することをさらに含む、条項40~45のいずれか一項に記載の方法。
【0233】
条項47.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項40~46のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0234】
条項48.
条項40~46のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0235】
条項49.
実行されると、条項40~46のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0236】
条項50.
コンピューティング装置によって、ブロックベクトル予測子(BVP)の水平コンポーネントおよびビデオフレームの現在のブロックの幅の合計としての水平距離、およびBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離を計算することを含み、BVPが、現在のブロックの位置に対する基準ブロックの位置を示す、方法。
【0237】
条項51.
水平距離がゼロよりも大きく、垂直距離がゼロよりも大きいと決定することをさらに含む、条項50に記載の方法。
【0238】
条項52.
決定に基づき、および水平距離と垂直距離との比較に基づき、および水平距離と垂直距離との間の比較に基づき、BVPを調整されたBVPに置き換えることをさらに含み、調整されたBVPの水平コンポーネントが、現在のブロックの幅に基づくか、または調整されたBVPの垂直コンポーネントが、現在のブロックの高さに基づく、条項50および51のいずれか一項に記載の方法。
【0239】
条項53.
現在のブロックの幅が、cbWidthであり、方法が、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することをさらに含む、条項50~52のいずれか一項に記載の方法。
【0240】
条項54.
現在のブロックの高さがcbHeightであり、方法が、水平距離が垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、条項50~53のいずれか一項に記載の方法。
【0241】
条項55.
現在のブロックの幅がcbWidthであり、現在のブロックの高さがcbHeightであり、方法が、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定すること、をさらに含む、条項50~54のいずれか一項に記載の方法。
【0242】
条項56.
BVPを調整されたBVPに置き換えることが、現在のブロックの位置から、ブロック間コピー(IBC)基準領域の左端の垂直境界までの第二の水平距離が現在のブロックの幅よりも大きい、または現在のブロックの位置から、現在のブロックのIBC基準領域の最も上の水平境界までの第二の垂直距離が現在のブロックの高さよりも大きい、ことの少なくとも一つにさらに基づく、条項50~55のいずれか一項に記載の方法、
【0243】
条項57.
ブロックベクトル差(BVD)の表示を受信することをさらに含む、条項50~56のいずれか一項に記載の方法。
【0244】
条項58.
現在のブロックのブロックベクトル(BV)を、調整されたBVPとブロックベクトル差(BVD)との組み合わせとして決定することをさらに含む、条項50~57のいずれか一項に記載の方法。
【0245】
条項59.
ブロックベクトル差(BVD)を、現在のブロックのブロックベクトル(BV)と調整されたBVPとの組み合わせとして、決定することをさらに含む、条項50~58のいずれか一項に記載の方法。
【0246】
条項60.
ブロックベクトル差(BVD)の表示を送信することをさらに含む、条項50~59のいずれか一項に記載の方法。
【0247】
条項61.
調整されたBVPを、高度な動きベクトル予測(AMVP)に関連付けられる、またはマージモードに関連付けられる候補BVPのリストに追加することをさらに含む、条項50~60のいずれか一項に記載の方法。
【0248】
条項62.
現在のブロックを符号化または復号化するために、調整されたBVPを使用することをさらに含む、条項50~61のいずれか一項に記載の方法。
【0249】
条項63.
一つまたは複数の候補BVPを決定することが、候補BVPのリスト中のBVPが、IBC基準領域外にあると決定することに基づく、条項50~62のいずれか一項に記載の方法。
【0250】
条項64.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項50~63のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0251】
条項65.
条項50~63のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0252】
条項66.
実行されると、条項50~63のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0253】
条項67.
コンピューティング装置によって、基準ブロックの位置からビデオフレームの現在のブロックのイントラブロックコピー(IBC)基準領域の垂直境界までの水平距離、基準ブロックの位置から現在のブロックのIBC基準領域の水平境界までの垂直距離を計算することを含む、方法。
【0254】
条項68.
ブロックベクトル予測子(BVP)の水平コンポーネントと現在のブロックの幅との合計が、ゼロよりも大きいと決定すること、およびBVPの垂直コンポーネントと現在のブロックの高さとの合計が、ゼロよりも大きいと決定することをさらに含み、BVPが、現在のブロックの位置に対する基準ブロックの位置を示す、条項67に記載の方法。
【0255】
条項69.
決定に基づき、および水平距離と垂直距離との比較に基づき、BVPを調整されたBVPに置き換えることをさらに含む、条項67および68のいずれか一項に記載の方法。
【0256】
条項70.
現在のブロックの幅が、cbWidthであり、方法が、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することをさらに含む、条項67~69のいずれか一項に記載の方法。
【0257】
条項71.
現在のブロックの高さがcbHeightであり、水平距離が第一の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定すること、をさらに含む、条項67~70のいずれか一項に記載の方法。
【0258】
条項72.
現在のブロックの幅が、cbWidthであり、現在のブロックの高さが、cbHeightであり、方法が、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、条項67~71のいずれか一項に記載の方法。
【0259】
条項73.
BVPを調整されたBVPに置き換えることが、現在のブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離が、現在のブロックの幅よりも大きく、IBC基準領域の第二の垂直境界が、IBC基準領域の左端の垂直境界であること、現在のブロックの位置から現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離が、現在のブロックの高さよりも大きく、IBC基準領域の第二の水平境界が、IBC基準領域の最も上の水平境界であること、の少なくとも一つにさらに基づく、条項67~72のいずれか一項に記載の方法。
【0260】
条項74.
水平距離が、BVPの水平コンポーネントと現在のブロックの幅との合計に基づき、垂直距離が、BVPの垂直コンポーネントと現在のブロックの高さとの合計に基づく、条項67~73のいずれか一項に記載の方法。
【0261】
条項75.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項67~74のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0262】
条項76.
条項67~74のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0263】
条項77.
実行されると、条項67~74のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0264】
条項78.
コンピューティング装置によって、および基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複することを決定することを含む、方法。
【0265】
条項79.
決定に基づき、基準ブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の垂直境界までの水平距離、および基準ブロックの位置から現在のブロックのIBC基準領域の水平境界までの垂直距離を計算することをさらに含む、条項78に記載の方法。
【0266】
条項80.
水平距離および垂直距離の比較に基づき、BVPを調整されたBVPに置き換えることをさらに含む、条項78および79のいずれか一項に記載の方法。
【0267】
条項81.
BVPを調整されたBVPに置き換えることが、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含む、条項78~80のいずれか一項に記載の方法。
【0268】
条項82.
BVPを調整されたBVPに置き換えることが、水平距離が垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが、現在のブロックの高さであるように、設定することを含む、条項78~81のいずれか一項に記載の方法。
【0269】
条項83.
BVPを調整されたBVPに置き換えることが、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項78~82のいずれか一項に記載の方法。
【0270】
条項84.
現在のブロックの位置からIBC基準領域の第二の垂直境界までの第二の水平距離であって、第二の垂直境界が、IBC基準領域の左端の垂直境界である、第二の水平距離、および現在のブロックの位置から、IBC基準領域の第二の水平境界までの第二の垂直距離であって、第二の水平境界が、IBC基準領域の最も上の水平境界である、第二の垂直距離を、計算することをさらに含む、条項78~83のいずれか一項に記載の方法。
【0271】
条項85.
BVPを調整されたBVPに置き換えることが、第二の水平距離が現在のブロックの幅よりも大きく、第二の垂直距離が現在のブロックの高さ未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含む、条項78~84のいずれか一項に記載の方法。
【0272】
条項86.
BVPを調整されたBVPに置き換えることが、第二の水平距離が現在のブロックの幅未満であり、第二の垂直距離が現在のブロックの高さよりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項78~85のいずれか一項に記載の方法。
【0273】
条項87.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項78~86のいずれか一項に記載の方法を実行させる、命令を記憶するメモリーとを含む、コンピューティング装置。
【0274】
条項88.
条項78~86のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0275】
条項89.
実行されると、条項78~86のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0276】
条項90.
コンピューティング装置によって、および基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複すると決定することを含む、方法。
【0277】
条項91.
決定に基づき、現在のブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の第一の垂直境界までの第一の水平距離、および現在のブロックの位置から現在のブロックのIBC基準領域の第一の水平境界までの第一の垂直距離を計算することをさらに含む、条項90に記載の方法。
【0278】
条項92.
BVPを、第一の水平距離および第一の垂直距離に基づき調整されたBVPに置き換えることをさらに含む、条項90および91のいずれか一項に記載の方法。
【0279】
条項93.
BVPを調整されたBVPに置き換えることが、第一の水平距離が現在のブロックの幅よりも大きく、第一の垂直距離が現在のブロックの高さ未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することをさらに含む、条項90~92のいずれか一項に記載の方法。
【0280】
条項94.
BVPを調整されたBVPに置き換えることが、第一の水平距離が現在のブロックの幅未満であり、第一の垂直距離が現在のブロックの高さよりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項90~93のいずれか一項に記載の方法。
【0281】
条項95.
第一の水平距離が現在のブロックの幅よりも大きく、第一の垂直距離が現在のブロックの高さよりも大きいことに基づき、基準ブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離、および基準ブロックの位置から、現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離を計算することをさらに含む、条項90~94のいずれか一項に記載の方法。
【0282】
条項96.
BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含む、条項90~95のいずれか一項に記載の方法。
【0283】
条項97.
BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが、現在のブロックの高さであるように、設定することを含む、条項90~96のいずれか一項に記載の方法。
【0284】
条項98.
BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項90~97のいずれか一項に記載の方法。
【0285】
条項99.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項90~98のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0286】
条項100.
条項90~98のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0287】
条項101.
実行されると、条項90~98のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0288】
条項102.
コンピューティング装置によって、および基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複すると決定することを含む、方法。
【0289】
条項103.
決定することに基づき、基準ブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の第一の垂直境界までの第一の水平距離、基準ブロックの位置から現在のブロックのIBC基準領域の第一の水平境界までの第一の垂直距離を計算することをさらに含む、条項102に記載の方法。
【0290】
条項104.
第一の水平距離と第一の垂直距離との比較に基づき、BVPを調整されたBVPに置き換えることをさらに含む、条項102および103のいずれか一項に記載の方法。
【0291】
条項105.
基準ブロックが現在のブロックとオーバーラップすると決定することが、BVPの水平コンポーネントと現在のブロックの幅の合計がゼロよりも大きく、BVPの垂直コンポーネントと現在のブロックの高さの合計がゼロよりも大きいと決定することを含む、条項102~104のいずれか一項に記載の方法。
【0292】
条項106.
BVPを調整されたBVPに置き換えることが、現在のブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離が、現在のブロックの幅よりも大きいこと、および現在のブロックの位置から現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離が、現在のブロックの高さよりも大きいこと、にさらに基づく、条項102~105のいずれか一項に記載の方法。
【0293】
条項107.
IBC基準領域の第二の垂直境界が、IBC基準領域の左端の垂直境界であり、IBC基準領域の第二の水平境界が、IBC基準領域の一番上の水平境界である、条項102~106のいずれか一項に記載の方法。
【0294】
条項108.
BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含む、条項102~107のいずれか一項に記載の方法。
【0295】
条項109.
BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項102~108のいずれか一項に記載の方法。
【0296】
条項110.
BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することであって、cbHeightが現在のブロックの高さであるように、設定することを含む、条項102~109のいずれか一項に記載の方法。
【0297】
条項111.
一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に条項102~110のいずれか一項に記載の方法を実行させる命令を記憶するメモリーとを含む、コンピューティング装置。
【0298】
条項112.
条項102~110のいずれか一項に記載の方法を実施するように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティングとを含む、システム。
【0299】
条項113.
実行されると、条項102~110のいずれか一項に記載の方法の性能を生じさせる命令を格納するコンピューター可読媒体。
【0300】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、一つまたは複数の候補ブロックベクトル予測子(BVP)を決定してもよく、一つまたは複数の候補BVPの各々は、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含む。コンピューティング装置は、現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す、一つまたは複数の候補BVPの中から、少なくとも一つの候補BVPを含むように変更された候補BVPのリストに基づき、現在のブロックのブロックベクトル(BV)を決定し得る。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。少なくとも一つの候補BVPは、候補BVPのリスト内のBVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、および候補BVPのリスト内のBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離がゼロよりも大きいことに基づき、一つまたは複数の候補BVPの中から選択される。現在のブロックの幅は、cbWidthであり得る。現在のブロックの高さは、cbHeightであり得る。少なくとも一つの候補BVPの中で、候補BVPの水平コンポーネントが、-cbWidthに等しくてもよく、候補BVPの垂直コンポーネントが、-cbHeightに等しくてもよい。少なくとも一つの候補BVPの中で、候補BVPの水平コンポーネントが、-cbWidthと等しくてもよく、候補BVPの垂直コンポーネントが、候補BVPのリスト中のBVPの垂直コンポーネントに等しい。少なくとも一つの候補BVPの中で、候補BVPの垂直コンポーネントが、-cbHeightに等しくてもよく、候補BVPの水平コンポーネントが、候補BVPのリスト中のBVPの水平コンポーネントに等しくてもよい。少なくとも一つの候補BVPが、一つまたは複数の候補BVPの各々について、それぞれのブロックベクトル差(BVD)を決定すること、および少なくとも一つの候補BVPのBVDが、それぞれのBVDの中で最も小さいことに基づき、少なくとも一つの候補BVPを選択することに基づき、一つまたは複数の候補BVPの中から選択され得る。一つまたは複数の候補BVPを決定することが、候補BVPのリスト中のBVPがIBC基準領域外にあると決定することに基づいてもよい。一つまたは複数の候補BVPを決定することが、BVPの水平コンポーネントが-cbWidthよりも大きく、BVPの垂直コンポーネントが-cbHeightよりも大きいと決定することに基づいてもよい。コンピューティング装置は、エンコーダーを含んでもよい。コンピューティング装置は、少なくとも一つの候補BVPの表示をデコーダーに送信し得る。コンピューティング装置は、候補BVPのリスト内の少なくとも一つのBVPを、少なくとも一つの候補BVPで置換し得る。コンピューティング装置は、BVおよび少なくとも一つの候補BVPの候補BVPに基づき、ブロックベクトル差(BVD)を決定し得る。コンピューティング装置は、BVDの表示をデコーダーに送信し得る。コンピューティング装置は、BVによって示される基準ブロックに基づき、現在のブロックを符号化し得る。コンピューティング装置は、ブロックベクトル差(BVD)の表示を受信し得る。コンピューティング装置は、BVDおよび少なくとも一つの候補BVPの候補BVPに基づき、BVを決定し得る。コンピューティング装置は、BVによって示される基準ブロックに基づき、現在のブロックを復号化し得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、少なくとも一つの候補BVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0301】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、候補BVPのリストにおける、ブロックベクトル予測子(BVP)の水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きい、およびBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離がゼロよりも大きいと決定し得る。コンピューティング装置は、決定に基づき、候補BVPのリスト内のBVPを、調整されたBVPで置換し得る。コンピューティング装置は、候補BVPのリストを使用して、現在のブロックに対するブロックベクトル(BV)を決定し得る。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。調整されたBVPは、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含み得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。調整されたBVPの水平コンポーネントが、-cbWidthに等しくてもよい。調整されたBVPの垂直コンポーネントが、-cbHeightに等しくてもよい。調整されたBVPの水平コンポーネントが、-cbWidthに等しくてもよく、調整されたBVPの垂直コンポーネントが、BVPの垂直コンポーネントに等しくてもよい。調整されたBVPの垂直コンポーネントが、-cbHeightと等しくてもよく、調整されたBVPの水平コンポーネントが、BVPの水平コンポーネントと等しくてもよい。BVPを調整されたBVPに置き換えることが、調整されたBVPに対するブロックベクトル差(BVD)が、一つまたは複数の候補BVPのそれぞれに対して決定されたBVDの中で最小であることに基づき、一つまたは複数の候補BVPから、調整されたBVPを選択することを含み得る。BVPを調整されたBVPに置き換えることが、コンピューティング装置によって、一つまたは複数の候補BVPを決定することを含み得る。一つまたは複数の候補BVPの各々は、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントのうちの少なくとも一つを含んでもよい。一つまたは複数の候補BVPは、-cbWidthに等しい水平コンポーネントおよびBVPの垂直コンポーネントに等しい垂直コンポーネントを含む第一の候補BVPと、BVPの水平コンポーネントに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む第二のBVP候補と、-cbWidthに等しい水平コンポーネントおよび-cbHeightに等しい垂直コンポーネントを含む第三のBVP候補とのうちの一つまたは複数を含み得る。BVPを調整されたBVPに置き換えることが、BVPを一つまたは複数の候補BVPのうちの選択された一つに置き換えることを含み得る。コンピューティング装置は、一つまたは複数の候補BVP内の一つまたは複数の有効な候補BVPを決定し得る。BVPを調整されたBVPに置き換えることが、BVPを一つまたは複数の有効な候補BVPのうちの選択された一つに置き換えることを含み得る。コンピューティング装置は、調整されたBVPの表示を送信し得る。コンピューティング装置は、調整されたBVPを使用して、ブロックベクトル差(BVD)を決定し得る。コンピューティング装置は、調整されたBVPの表示を受信し得る。コンピューティング装置は、調整されたBVPを使用して、BVを決定し得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0302】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、候補BVPのリスト内のブロックベクトル予測子(BVP)が、現在のブロックからIBC基準領域の外側の位置への変位を示すBVPに基づき、現在のブロックに関連付けられるブロック間コピー(IBC)基準領域の外側にあると決定し得る。コンピューティング装置は、決定に基づき、候補BVPのリスト内のBVPを、現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す調整されたBVPに置換し得る。コンピューティング装置は、候補BVPのリストを使用して、現在のブロックに対するブロックベクトル(BV)を決定し得る。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。BVPが、現在のブロックに関連付けられるIBCの外側にあると判定することが、BVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、およびBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離がゼロよりも大きいことに基づいてもよい。コンピューティング装置は、現在のブロックの幅に基づき決定される水平コンポーネント、または現在のブロックの高さに基づき決定される垂直コンポーネントとの少なくとも一つを含む、一つまたは複数の候補BVPから調整されたBVPを選択し得る。BVPを調整されたBVPに置き換えることが、調整されたBVPに対するブロックベクトル差(BVD)が、一つまたは複数の候補BVPの各々に対して決定されたBVDの中で最小であることに基づき、一つまたは複数の候補BVPから、調整されたBVPを選択することを含んでもよい。コンピューティング装置は、調整されたBVPの表示を受信装置に送信し得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0303】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、ブロックベクトル予測子(BVP)の水平コンポーネントおよびビデオフレームの現在のブロックの幅の合計としての水平距離、およびBVPの垂直コンポーネントおよび現在のブロックの高さの合計としての垂直距離を計算し得る。BVPは、現在のブロックの位置に対する基準ブロックの位置を示し得る。コンピューティング装置は、水平距離がゼロよりも大きい、および垂直距離がゼロよりも大きいと決定し得る。コンピューティング装置は、決定に基づき、および水平距離と垂直距離との比較に基づき、BVPを調整されたBVPに置き換えてもよい。調整されたBVPの水平コンポーネントが、現在のブロックの幅に基づいてもよい。調整されたBVPの垂直コンポーネントが、現在のブロックの高さに基づいてもよい。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。コンピューティング装置は、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定し、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定し得る。コンピューティング装置は、水平距離が垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定し、調整されたBVPの垂直コンポーネントを-cbHeightに設定し得る。コンピューティング装置は、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定し、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定し得る。BVPを調整されたBVPに置き換えることが、現在のブロックの位置からブロック間コピー(IBC)基準領域の左端の垂直境界までの第二の水平距離が、現在のブロックの幅よりも大きいこと、または現在のブロックの位置から現在のブロックのIBC基準領域の一番上の水平境界までの第二の垂直距離が、現在のブロックの高さよりも大きいことのうちの少なくとも一つにさらに基づいてもよい。コンピューティング装置は、ブロックベクトル差(BVD)の表示を受信し得る。コンピューティング装置は、調整されたBVPとブロックベクトル差(BVD)との組み合わせとして、現在のブロックのブロックベクトル(BV)を決定し得る。コンピューティング装置は、現在のブロックのブロックベクトル(BV)と調整されたBVPとの組み合わせとして、ブロックベクトル差(BVD)を決定し得る。コンピューティング装置は、ブロックベクトル差(BVD)の表示を送信し得る。コンピューティング装置は、調整されたBVPを、高度な動きベクトル予測(AMVP)に関連付けられる、またはマージモードに関連付けられる候補BVPのリストに追加し得る。コンピューティング装置は、現在のブロックを符号化または復号化するために、調整されたBVPを使用し得る。一つまたは複数の候補BVPを決定することが、候補BVPのリスト中のBVPがIBC基準領域外にあると決定することに基づいてもよい。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0304】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、基準ブロックの位置からビデオフレームの現在のブロックのイントラブロックコピー(IBC)基準領域の垂直境界までの水平距離、基準ブロックの位置から現在のブロックのIBC基準領域の水平境界までの垂直距離を計算し得る。コンピューティング装置は、ブロックベクトル予測子(BVP)の水平コンポーネントと現在のブロックの幅との合計がゼロよりも大きく、BVPの垂直コンポーネントと現在のブロックの高さとの合計がゼロよりも大きいと決定し得る。BVPは、現在のブロックの位置に対する基準ブロックの位置を示し得る。コンピューティング装置は、決定に基づき、および水平距離と垂直距離との比較に基づき、BVPを調整されたBVPに置き換えてもよい。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。コンピューティング装置は、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定し、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定し得る。コンピューティング装置は、水平距離が第一の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定し、調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定し得る。コンピューティング装置は、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定し、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定し得る。BVPを調整されたBVPに置き換えることが、現在のブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離が、現在のブロックの幅よりも大きく、IBC基準領域の第二の垂直境界が、IBC基準領域の左端の垂直境界であること、現在のブロックの位置から現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離が、現在のブロックの高さよりも大きく、IBC基準領域の第二の水平境界が、IBC基準領域の最も上の水平境界であること、の少なくとも一つにさらに基づいてもよい。水平距離は、BVPの水平コンポーネントと現在のブロックの幅との合計に基づいてもよい。垂直距離は、BVPの垂直コンポーネントと現在のブロックの高さとの合計に基づいてもよい。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0305】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複すると決定し得る。コンピューティング装置は、決定に基づき、基準ブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の垂直境界までの水平距離、および基準ブロックの位置から現在のブロックのIBC基準領域の水平境界までの垂直距離を計算し得る。コンピューティング装置は、水平距離と垂直距離の比較に基づき、BVPを調整されたBVPに置き換えてもよい。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。BVPを調整されたBVPに置き換えることが、水平距離が垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、水平距離が垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定することであって、cbWidthが現在のブロックの幅であるように、設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。コンピューティング装置は、現在のブロックの位置からIBC基準領域の第二の垂直境界までの第二の水平距離であって、第二の垂直境界が、IBC基準領域の左端の垂直境界である、第二の水平距離、および現在のブロックの位置から、IBC基準領域の第二の水平境界までの第二の垂直距離であって、第二の水平境界が、IBC基準領域の一番上の水平境界である、第二の垂直距離を計算し得る。BVPを調整されたBVPに置き換えることが、第二の水平距離が現在のブロックの幅よりも大きく、第二の垂直距離が現在のブロックの高さ未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第二の水平距離が現在のブロックの幅未満であり、第二の垂直距離が現在のブロックの高さよりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0306】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複すると決定し得る。コンピューティング装置は、決定に基づき、現在のブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の第一の垂直境界までの第一の水平距離、および現在のブロックの位置から現在のブロックのIBC基準領域の第一の水平境界までの第一の垂直距離を計算し得る。コンピューティング装置は、第一の水平距離および第一の垂直距離に基づき、BVPを調整されたBVPに置き換えてもよい。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。BVPを調整されたBVPに置き換えることが、第一の水平距離が現在のブロックの幅よりも大きく、第一の垂直距離が現在のブロックの高さ未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第一の水平距離が現在のブロックの幅未満であり、第一の垂直距離が現在のブロックの高さよりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。コンピューティング装置は、第一の水平距離が現在のブロックの幅よりも大きく、第一の垂直距離が現在のブロックの高さよりも大きいことに基づき、基準ブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離、および基準ブロックの位置から、現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離を計算し得る。BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離未満であることに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第二の水平距離が第二の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0307】
コンピューティング装置は、複数の動作を含む方法を実行し得る。コンピューティング装置は、基準ブロックのブロックベクトル予測子(BVP)に基づき、基準ブロックがビデオフレームの現在のブロックと重複すると決定し得る。コンピューティング装置は、決定に基づき、基準ブロックの位置から現在のブロックのイントラブロックコピー(IBC)基準領域の第一の垂直境界までの第一の水平距離、基準ブロックの位置から現在のブロックのIBC基準領域の第一の水平境界までの第一の垂直距離を計算し得る。コンピューティング装置は、第一の水平距離と第一の垂直距離との比較に基づき、BVPを調整されたBVPに置き換えてもよい。コンピューティング装置はまた、一つまたは複数の追加の動作を実行し得る。現在のブロックの幅はcbWidthであってもよく、現在のブロックの高さはcbHeightであり得る。基準ブロックが現在のブロックと重複すると決定することが、BVPの水平コンポーネントと現在のブロックの幅の合計がゼロよりも大きく、BVPの垂直コンポーネントと現在のブロックの高さの合計がゼロよりも大きいと決定することを含み得る。BVPを調整されたBVPに置き換えることが、現在のブロックの位置から現在のブロックのIBC基準領域の第二の垂直境界までの第二の水平距離が現在のブロックの幅よりも大きいこと、および現在のブロックの位置から現在のブロックのIBC基準領域の第二の水平境界までの第二の垂直距離が現在のブロックの高さよりも大きいことにさらに基づいてもよい。IBC基準領域の第二の垂直境界は、IBC基準領域の左端の垂直境界であり得る。IBC基準領域の第二の水平境界は、IBC基準領域の最も上の水平境界であり得る。BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離未満であることに基づき、調整されたBVPの水平コンポーネント-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントをBVPの垂直コンポーネントに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離よりも大きいことに基づき、調整されたBVPの水平コンポーネントをBVPの水平コンポーネントに等しいように設定すること、および調整されたBVPの垂直コンポーネント-cbHeightに等しいように設定することを含み得る。BVPを調整されたBVPに置き換えることが、第一の水平距離が第一の垂直距離に等しいことに基づき、調整されたBVPの水平コンポーネントを-cbWidthに等しいように設定すること、および調整されたBVPの垂直コンポーネントを-cbHeightに等しいように設定することを含み得る。コンピューティング装置は、一つまたは複数のプロセッサーと、一つまたは複数のプロセッサーによって実行されると、コンピューティング装置に、記載された方法、追加の動作を実行させ、および/または追加の要素を含ませる命令を記憶するメモリーとを含み得る。システムは、記載の方法、追加の動作を実施し、および/または追加の要素を含むように構成される第一のコンピューティング装置と、調整されたBVPを使用して現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含み得る。コンピューター可読媒体は、実行されると、記載された方法の性能、追加の動作を引き起こす、および/または追加の要素を含む命令を格納し得る。
【0308】
本明細書の一つまたは複数の実施例は、フローチャート、フロー図、データフロー図、構造図、および/またはブロック図として描写され得るプロセスとして記述され得る。フローチャートは、動作を逐次的なプロセスとして記述し得るが、一つまたは複数の動作は、並列または同時に実施され得る。示される動作の順序は、再配置され得る。プロセスは、その動作が完了したときに終了し得るが、図には示されていない追加のステップを有し得る。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが機能に対応する場合、その終了は、呼び出し関数または主要関数への関数の戻りに対応し得る。
【0309】
本明細書に記載の動作は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードに実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータープログラム製品)は、コンピューター可読または機械可読媒体に格納され得る。プロセッサーは、必要なタスクを実行し得る。本開示の特徴は、例えば、特定用途向け集積回路(ASIC)およびゲートアレイなどのハードウェアコンポーネントを使用して、ハードウェアに実装され得る。本明細書に記載の機能を実施するためのハードウェア状態マシンの実施も、当業者には明らかであろう。
【0310】
本明細書に記載される一つまたは複数の特徴は、一つまたは複数のコンピューターまたは他のデバイスによって実行される、一つまたは複数のプログラムモジュールなど、コンピューターで使用可能なデータおよび/またはコンピューター実行可能命令に実装され得る。一般に、プログラムモジュールは、コンピューター内のプロセッサーまたはデータ処理装置によって実行されるとき、特定のタスクを実行する、または特定の抽象データ型を実現するルーチン、プログラム、物体、構成要素、データ構造などを含む。コンピューター実行可能命令が、ハードディスク、光ディスク、リムーバブルストレージ媒体、ソリッドステートメモリー、RAMなどの一つまたは複数のコンピューター可読媒体上に記憶され得る。プログラムモジュールの機能は、所望に応じて組み合わせられてもよく、または分配され得る。機能性は、ファームウェアまたはハードウェア等価物、例えば集積回路、フィールドプログラマブルゲートアレイ(FPGA)などにおいて、全部または一部で実装され得る。特定のデータ構造を使用して、本明細書に記述される一つまたは複数の特徴をより効果的に実装することができ、かかるデータ構造は、本明細書に記述されるコンピューター実行可能命令およびコンピューターで使用可能なデータの範囲内で意図される。コンピューター可読媒体は、ポータブルまたは非ポータブル記憶装置、光学記憶装置、ならびに命令および/またはデータを記憶、収容、または運ぶことができるさまざまな他の媒体を含み得るが、これらに限定されない。コンピューター可読媒体は、データが記憶され得、無線または有線接続を介して伝播するキャリア波および/または一時的電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例としては、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光学ストレージ媒体、フラッシュメモリー、メモリーまたはメモリーデバイスが挙げられるが、これらに限定されない。コンピューター可読媒体は、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組み合わせを表し得る、コードおよび/または機械実行可能命令を記憶し得る。コードセグメントは、情報、データ、引数、パラメーター、またはメモリーコンテンツを通過および/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメーター、データなどは、メモリー共有、メッセージ通過、トークン通過、ネットワーク送信などを含む任意の適切な手段を介して、通過、転送、または送信され得る。
【0311】
非一時的な有形コンピューター可読媒体は、本明細書に記載の動作を引き起こすように構成される一つまたは複数のプロセッサーによって実行可能な命令を含み得る。製品は、本明細書に記載の動作を可能にすることをデバイス(例えば、エンコーダー、デコーダー、送信機、受信機など)に行わせるプログラム可能ハードウェアを可能にするための命令が符号化された非一時的有形コンピューター可読機械アクセス可能媒体を含み得る。デバイス、またはシステム内などの一つまたは複数の装置は、一つまたは複数のプロセッサー、メモリー、インターフェイス、および/または同種のものを含み得る。
【0312】
本明細書に記載される通信は、任意の量のメッセージ、情報要素、フィールド、パラメーター、値、表示、情報、ビット、および/または類似のものを使用して、決定、生成、送信、および/または受信され得る。一つまたは複数の実施例は、用語/語句メッセージ、情報要素、フィールド、パラメーター、値、表示、情報、ビット、および/または類似のもののいずれかを使用して本明細書に記述され得るが、当業者は、こうした通信が、他のこうした用語を含む、これらの用語のうちの任意の一つまたは複数を使用して実施され得ることを理解する。例えば、一つまたは複数のパラメーター、フィールド、および/または情報要素(IE)は、一つまたは複数の情報オブジェクト、値、および/または任意の他の情報を含み得る。情報オブジェクトは、一つまたは複数の他の物体を含んでもよい。少なくともいくつかの(または全て)パラメーター、フィールド、IE、および/または同種のものが使用されてもよく、コンテキストに応じて互換性があり得る。意味または定義が与えられる場合、かかる意味または定義が支配する。
【0313】
本明細書に記載される実施例の一つまたは複数の要素は、モジュールとして実装され得る。モジュールは、定義された機能を実行する要素、および/または他の要素への定義されたインターフェイスを有する要素であり得る。モジュールは、ハードウェア、ハードウェアと組み合わせたソフトウェア、ファームウェア、ウエットウェア(例えば、生物学的要素を有するハードウェア)、またはそれらの組み合わせに実装されてもよく、それら全ては、挙動的に等価であり得る。例えば、モジュールは、ハードウェアマシン(C、C++、Fortran、Java、Basic、Matlabなど)もしくはSimulink、Stateflow、GNU Octave、またはLabVIEWMathScriptで実行されるように構成されるコンピューター言語で記述されたソフトウェアルーチンで実装され得る。追加的または代替的に、ディスクリートまたはプログラム可能なアナログ、デジタルおよび/または量子ハードウェアを組み込んだ物理ハードウェアを使用してモジュールを実装することが可能であり得る。プログラム可能ハードウェアの例としては、コンピューター、マイクロコントローラー、マイクロプロセッサー、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、および/または複雑なプログラマブル論理デバイス(CPLD)が挙げられる。コンピューター、マイクロコントローラー、および/またはマイクロプロセッサーは、アセンブリー、C、C++などの言語を使用してプログラムされ得る。FPGA、ASIC、CPLDは、多くの場合、プログラマブルデバイスの機能が少ない内部ハードウェアモジュール間の接続を構成し得るVHSICハードウェア記述言語(VHDL)またはVerilogなどのハードウェア記述言語(HDL)を使用してプログラムされる。上述の技術は、機能的モジュールの結果を達成するために組み合わせて使用され得る。
【0314】
本明細書に記述された動作のうちの一つまたは複数は、条件付きであり得る。例えば、コンピューティング装置、通信装置、エンコーダー、デコーダー、ネットワーク、上記の組み合わせ、および/または類似のものなど、特定の基準が満たされる場合、一つまたは複数の動作が実施され得る。例示的な基準は、デバイス設定、トラフィック負荷、初期システムセットアップ、パケットサイズ、トラフィック特性、上記の組み合わせなどの一つまたは複数の条件に基づき得る。一つまたは複数の基準が満たされる場合、さまざまな実施例を使用し得る。本明細書に記載される実施例の任意の部分を任意の順序で、任意の条件に基づいて実装することが可能であり得る。
【0315】
実施例は上記に記載されるが、これらの実施例の特徴および/またはステップは、任意の所望の様式で組み合わせ、分割、省略、再構成、改訂、および/または拡張され得る。当業者には、さまざまな変更、改変、および改善が容易に起こるであろう。かかる変更、修正、および改善は、本明細書に明示的に記載されていないが、本明細書の一部となることが意図され、本明細書の記載の趣旨および範囲内であることが意図される。従って、前述の記載は、例示のみを目的としており、限定するものではない。
【手続補正書】
【提出日】2024-06-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング装置によって、一つまたは複数の候補ブロックベクトル予測子(BVP)を決定することであって、前記一つまたは複数の候補BVPの各々が、
現在のブロックの幅に基づき決定される水平コンポーネント、または
前記現在のブロックの高さに基づき決定される垂直コンポーネント、のうちの少なくとも一つを含む、決定することと、
前記一つまたは複数の候補BVPの中から、前記現在のブロックからイントラブロックコピー(IBC)基準領域内の位置への変位を示す、少なくとも一つの候補BVPを含むように変更された候補BVPのリストに基づき、前記現在のブロックのブロックベクトル(BV)を決定することと、
少なくとも一つの前記候補BVPを用いて前記現在ブロック符号化または復号化することと、を含む、方法。
【請求項2】
前記少なくとも一つの候補BVPが、
候補BVPの前記リスト内のBVPの水平コンポーネントおよび現在のブロックの幅の合計としての水平距離がゼロよりも大きいこと、および
前記候補BVPのリスト内の前記BVPの垂直コンポーネントおよび前記現在のブロックの高さの合計としての垂直距離がゼロよりも大きいことに基づき、前記一つまたは複数の候補BVPの中から選択される、請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記幅が、cbWidthであり、
前記現在のブロックの前記高さがcbHeightであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記水平コンポーネントが、-cbWidthに等しく、および
前記候補BVPの前記垂直コンポーネントが、-cbHeightに等しい、請求項
1に記載の方法。
【請求項4】
前記現在のブロックの前記幅が、cbWidthであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記水平コンポーネントが、-cbWidthに等しく、および
前記候補BVPの前記垂直コンポーネントが、候補BVPの前記リスト中のBVPの垂直コンポーネントに等しい、請求項
1に記載の方法。
【請求項5】
前記現在のブロックの前記高さがcbHeightであり、
前記少なくとも一つの候補BVPの中で、候補BVPの前記垂直コンポーネントが、-cbHeightに等しく、
前記候補BVPの前記水平コンポーネントが、候補BVPの前記リスト中のBVPの水平コンポーネントに等しい、請求項
1に記載の方法。
【請求項6】
前記少なくとも一つの候補BVPが、
前記一つまたは複数の候補BVPの各々について、それぞれのブロックベクトル差(BVD)を決定すること、および
前記少なくとも一つの候補BVPのBVDが、前記それぞれのBVDの中で最も小さいことに基づき、前記少なくとも一つの候補BVPを選択することに基づき、前記一つまたは複数の候補BVPの中から選択される、請求項
1に記載の方法。
【請求項7】
前記一つまたは複数の候補BVPを前記決定することが、候補BVPの前記リスト中のBVPが前記IBC基準領域外にあると決定することに基づく、請求項
1に記載の方法。
【請求項8】
前記現在のブロックの前記幅がcbWidthであり、前記現在のブロックの前記高さがcbHeightであり、前記一つまたは複数の候補BVPを前記決定することが、
BVPの水平コンポーネントが、-cbWidthよりも大きく、および
前記BVPの垂直コンポーネントが-cbHeightよりも大きい、と決定することに基づく、請求項
1に記載の方法。
【請求項9】
前記コンピューティング装置がエンコーダーを含み、前記方法が、前記少なくとも一つの候補BVPの表示をデコーダーに送信することをさらに含む、請求項
1に記載の方法。
【請求項10】
候補BVPの前記リストが、候補BVPの前記リスト中の少なくとも一つのBVPを、前記少なくとも一つの候補BVPに置き換えることによって変更される、請求項
1に記載の方法。
【請求項11】
前記BVおよび前記少なくとも一つの候補BVPの候補BVPに基づき、ブロックベクトル差(BVD)を決定することと、
前記BVDの表示をデコーダーに送信することと、をさらに含む、請求項
1に記載の方法。
【請求項12】
ブロックベクトル差(BVD)の表示を受信することと、
前記BVDと、前記少なくとも一つの候補BVPの候補BVPとに基づき、前記BVを決定することと、をさらに含む、請求項
1に記載の方法。
【請求項13】
コンピューティング装置であって、
一つまたは複数のプロセッサーと、
前記一つまたは複数のプロセッサーによって実行されると、前記コンピューティング装置に請求項1~12のいずれか一項に記載の方法を実行させる命令を格納するメモリーと、を含む、コンピューティング装置。
【請求項14】
請求項1~12のいずれか一項に記載の方法を実行するように構成される第一のコンピューティング装置と、
前記少なくとも一つの候補BVPを使用して、前記現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含む、システム。
【請求項15】
実行されると、請求項1~12のいずれか一項に記載の方法の性能を生じさせる命令を格納する、コンピューター可読媒体。
【請求項16】
コンピューティング装置によって、
ブロックベクトル予測子(BVP)の水平コンポーネントおよびビデオフレームの現在のブロックの幅の合計としての水平距離、および
前記BVPの垂直コンポーネントおよび前記現在のブロックの高さの合計としての垂直距離であって、前記BVPが、前記現在のブロックの位置に対する基準ブロックの位置を示す、垂直距離を計算することと、
前記水平距離がゼロよりも大きく、前記垂直距離がゼロよりも大きいと決定することと、
前記決定に基づき、および前記水平距離と前記垂直距離との比較に基づき、前記BVPを調整されたBVPに置き換えることであって、
前記調整されたBVPの水平コンポーネントが、前記現在のブロックの前記幅に基づくか、または
前記調整されたBVPの垂直コンポーネントが、前記現在のブロックの前記高さに基づく、置き換えることと、
少なくとも一つの前記調整されたBVPを用いて前記現在ブロック符号化または復号化することと、を含む、方法。
【請求項17】
前記現在のブロックの前記幅がcbWidthであり、前記方法が、
前記水平距離が前記垂直距離未満であることに基づき、
前記調整されたBVPの前記水平コンポーネントを-cbWidthに等しいように、
および
前記調整されたBVPの前記垂直コンポーネントを前記BVPの前記垂直コンポーネントに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項18】
前記現在のブロックの前記高さがcbHeightであり、前記方法が、
前記水平距離が前記垂直距離よりも大きいことに基づき、
前記調整されたBVPの前記水平コンポーネントを前記BVPの前記水平コンポーネントに等しいように、および
前記調整されたBVPの前記垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項19】
前記現在のブロックの前記幅がcbWidthであり、前記現在のブロックの前記高さがcbHeightであり、前記方法が、
前記水平距離が前記第一の垂直距離に等しいことに基づき、
前記調整されたBVPの前記水平コンポーネントを-cbWidthに等しいように、
および
前記調整されたBVPの前記垂直コンポーネントを-cbHeightに等しいように設定することをさらに含む、請求項16に記載の方法。
【請求項20】
前記BVPを前記調整されたBVPに前記置き換えることが、
前記現在のブロックの位置から、ブロック間コピー(IBC)基準領域の左端の垂直境界までの第二の水平距離が、前記現在のブロックの前記幅よりも大きいこと、または
前記現在のブロックの前記位置から、前記現在のブロックの前記IBC基準領域の最も上の水平境界までの第二の垂直距離が、前記現在のブロックの前記高さよりも大きいこと、のうちの少なくとも一つにさらに基づく、請求項16に記載の方法。
【請求項21】
ブロックベクトル差(BVD)の表示を受信することをさらに含む、請求項1
6に記載の方法。
【請求項22】
前記現在のブロックのブロックベクトル(BV)を、前記調整されたBVPとブロックベクトル差(BVD)の組み合わせとして決定することをさらに含む、請求項1
6に記載の方法。
【請求項23】
ブロックベクトル差(BVD)を、前記現在のブロックのブロックベクトル(BV)と前記調整されたBVPとの組み合わせとして決定することをさらに含む、請求項1
6に記載の方法。
【請求項24】
ブロックベクトル差(BVD)の表示を送信することをさらに含む、請求項1
6に記載の方法。
【請求項25】
前記調整されたBVPを、高度な動きベクトル予測(AMVP)に関連付けられる、またはマージモードに関連付けられる候補BVPのリストに追加することをさらに含む、請求項1
6に記載の方法。
【請求項26】
前記現在のブロックを符号化または復号化するために、前記調整されたBVPを使用することをさらに含む、請求項1
6に記載の方法。
【請求項27】
前記一つまたは複数の候補BVPを前記決定することが、候補BVPの前記リスト中のBVPが前記IBC基準領域外にあると決定することに基づく、請求項1
6に記載の方法。
【請求項28】
コンピューティング装置であって、
一つまたは複数のプロセッサーと、
前記一つまたは複数のプロセッサーによって実行されると、前記コンピューティング装置に請求項16~27のいずれか一項に記載の方法を実行させる命令を格納するメモリーと、を含む、コンピューティング装置。
【請求項29】
請求項16~27のいずれか一項に記載の方法を実行するように構成される第一のコンピューティング装置と、
前記調整されたBVPに基づき、前記現在のブロックを符号化または復号化するように構成される第二のコンピューティング装置と、を含む、システム。
【請求項30】
実行されると、請求項16~27のいずれか一項に記載の方法の性能を生じさせる命令を格納する、コンピューター可読媒体。
【国際調査報告】