(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-24
(54)【発明の名称】映像コーディングのための方法及び装置
(51)【国際特許分類】
H04N 19/593 20140101AFI20221116BHJP
H04N 19/11 20140101ALI20221116BHJP
【FI】
H04N19/593
H04N19/11
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022518660
(86)(22)【出願日】2021-03-31
(85)【翻訳文提出日】2022-03-23
(86)【国際出願番号】 US2021025219
(87)【国際公開番号】W WO2021202769
(87)【国際公開日】2021-10-07
(32)【優先日】2020-04-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159TA33
5C159TB04
5C159TC41
(57)【要約】
本開示の態様は、映像復号のための方法及び処理回路を含む装置を提供する。処理回路は、現在ピクチャの現在ブロックに対するコーディング情報を復号するように構成される。コーディング情報は、現在ブロックに対するコーディングモードがイントラブロックコピー(IBC)モード及びストリングコピーモードのうちの一方であることを指し示すことができる。処理回路は、現在ブロックに対するコーディングモード及び履歴バッファに基づいて、現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報を決定するように構成される。履歴バッファは、少なくとも、IBCモードで先行して復号されたブロック及びストリングコピーモードで先行して復号されたストリングの、ベクトル情報を格納するように構成されることができる。処理回路は、現在ベクトル情報に基づいて現在ユニットのサンプルを再構成するように構成される。
【特許請求の範囲】
【請求項1】
デコーダが実行する映像復号のための方法であって、
現在ピクチャの現在ブロックに対するコーディング情報を復号するステップであり、前記コーディング情報は、前記現在ブロックに対するコーディングモードがイントラブロックコピー(IBC)モード及びストリングコピーモードのうちの一方であることを指し示す、ステップと、
前記現在ブロックに対するコーディングモード及び履歴バッファに基づいて、前記現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報を決定するステップであり、前記履歴バッファは、少なくとも、前記IBCモードで先行して復号されたブロック及び前記ストリングコピーモードで先行して復号されたストリングの、ベクトル情報を格納するように構成されている、ステップと、
前記現在ベクトル情報に基づいて前記現在ユニットのサンプルを再構成するステップと、
を有する方法。
【請求項2】
前記現在ブロックに対する前記コーディングモードは前記IBCモードであり、
前記現在ユニットのサンプルは前記現在ブロックであり、
前記現在ベクトル情報を前記決定するステップは更に、
少なくとも前記履歴バッファ内の前記ベクトル情報に基づいて、前記現在ブロックに対するBV予測子候補リストを決定し、
前記BV予測子候補リストに基づいて、前記現在ベクトル情報内の現在BVを決定する、
ことを含む、
請求項1に記載の方法。
【請求項3】
前記現在ブロックに対する前記コーディングモードは前記ストリングコピーモードであり、
前記現在ユニットのサンプルは前記現在ブロック内の現在ストリングであり、
前記現在ベクトル情報を前記決定するステップは更に、
前記履歴バッファ内の前記ベクトル情報から前記現在ベクトル情報内の現在SVを決定し、前記現在SVは前記現在ストリングに対するものである、
ことを含む、
請求項1に記載の方法。
【請求項4】
前記現在ベクトル情報が前記履歴バッファ内の前記ベクトル情報のうちの1つ以上と異なることに基づいて、前記現在ベクトル情報を前記履歴バッファに格納するステップ、
を更に有する請求項1に記載の方法。
【請求項5】
前記現在ベクトル情報を前記格納するステップは、
前記現在ベクトル情報が前記履歴バッファ内の前記ベクトル情報のうちの前記1つ以上と異なることを、前記現在ベクトル情報内の現在ベクトルと前記履歴バッファ内の前記ベクトル情報のうちの前記1つ以上の各先行ベクトルとの間の差が所定の閾値よりも大きいことに基づいて決定する、
ことを有する、請求項4に記載の方法。
【請求項6】
前記現在ベクトル情報を前記格納するステップは、
前記現在ベクトル情報が前記履歴バッファ内の前記ベクトル情報のうちの前記1つ以上と異なることを、前記現在ベクトル情報の現在ユニットサイズと前記ベクトル情報のうちの前記1つ以上の各々の先行ユニットサイズとの間のサイズ差が所定のサイズ閾値よりも大きいことに基づいて決定し、前記現在ベクトル情報の前記現在ユニットサイズは、前記現在ユニット内のサンプルの数を示し、前記履歴バッファ内の前記ベクトル情報は、前記IBCモードで先行して復号された前記ブロック及び前記ストリングコピーモードで先行して復号された前記ストリングを含む先行ユニットのサンプルを復号するのに使用され、前記先行ユニットサイズは、それぞれの前記先行ユニット内のサンプルの数を示す、
ことを有する、請求項4に記載の方法。
【請求項7】
前記現在ベクトルと前記ベクトル情報のうちの前記1つ以上のうち1つの先行ベクトルとの間の差が所定の閾値よりも大きくないことに基づいて、前記ベクトル情報のうちの前記1つ以上のうち前記1つを前記履歴バッファから除去するステップ、
を更に有する請求項6に記載の方法。
【請求項8】
ベクトル情報のうちの前記1つ以上は、(i)前記履歴バッファ内の前記ベクトル情報のサブセット、又は(ii)前記履歴バッファ内の前記ベクトル情報を含む、請求項4に記載の方法。
【請求項9】
前記履歴バッファ内の前記ベクトル情報のうちの1つは、ストリングベクトルと、(i)ストリング位置及び(ii)前記ストリングコピーモードで先行して復号された前記ストリングのストリングサイズのうちの一方と、を含み、
前記ストリング位置は、前記ストリングコピーモードで先行して復号された前記ストリング内の所定のサンプルの位置であり、
前記ストリングサイズは、前記ストリングコピーモードで先行して復号された前記ストリング内のサンプルの数である、
請求項1に記載の方法。
【請求項10】
前記ベクトル情報は、先行ベクトル及び先行ユニットサイズと、前記IBCモードで先行して復号された前記ブロック及び前記ストリングコピーモードで先行して復号された前記ストリングを含んだ、対応する先行して復号されたユニットのサンプルの先行ユニット位置と、を含み、
当該方法は更に、前記履歴バッファに格納された前記ベクトル情報の各々を、(i)それぞれの前記ベクトル情報の前記先行ユニットサイズ、(ii)それぞれの前記ベクトル情報の前記先行ユニット位置、又は(iii)それぞれの前記ベクトル情報が、先行して復号された1つ以上のユニットのサンプルを予測するのに使用された回数、のうちの少なくとも1つに基づいて、複数のカテゴリのうちの1つに分類するステップを含み、前記履歴バッファは、クラスベースの履歴バッファである、
請求項1に記載の方法。
【請求項11】
前記現在ブロックに対する前記コーディング情報は更にインデックスを含み、
前記現在ユニットのサンプルに対する前記現在ベクトル情報を前記決定するステップは更に、前記複数のカテゴリのうちの前記インデックスによって指し示されるカテゴリにおける第1エントリとなる前記現在ベクトル情報を決定する、ことを含む、
請求項10記載の方法。
【請求項12】
映像復号のための装置であって、
1つ以上のプロセッサと、
コンピュータプログラムを格納した1つ以上のメモリと、
を有し、
前記コンピュータプログラムは、前記1つ以上のプロセッサに、請求項1乃至11のいずれか一項に記載の方法を実行させる、
装置。
【請求項13】
デコーダが実行する映像復号のための方法であって、
現在ブロックに対するコーディング情報を復号するステップであり、前記コーディング情報は、前記現在ブロックがストリングコピーモードでコーディングされることを指し示す、ステップと、
前記コーディング情報に基づいて前記現在ブロック内の現在ストリングのストリングベクトル(SV)及びストリング長を決定するステップであり、前記ストリング長はN3×Lであり、N3及びLは正の整数であり、Lは1より大きい、ステップと、
前記現在ストリングの前記SV及び前記ストリング長に基づいて前記現在ストリングを再構成するステップと、
を有する方法。
【請求項14】
前記現在ブロックはルマブロックであり、Lは4である、請求項13に記載の方法。
【請求項15】
前記現在ブロックはクロマブロックであり、
クロマサブサンプリングフォーマットは、前記クロマブロックが、対応するルマブロックの半分の高さ及び半分の幅を持つことを指し示す4:2:0であり、
前記クロマブロックが前記対応するルマブロックと一緒にコーディングされることに基づいて、Lは2であり、
前記クロマブロックが前記対応するルマブロックとは別々にコーディングされることに基づいて、Lは4である、
請求項13記載の方法。
【請求項16】
前記現在ブロックは、前記現在ストリングを持つ1つ以上のストリングを含み、
前記現在ブロックは更に、前記1つ以上のストリングの外側にエスケープサンプルを含み、
前記エスケープサンプルの数はL、又はLの倍数である、
請求項13記載の方法。
【請求項17】
前記現在ブロックの同一行内のエスケープサンプルの数はL、又はLの倍数である、請求項16に記載の方法。
【請求項18】
前記コーディング情報は更に、前記ストリング長を示すシンタックス要素を含み、
前記シンタックス要素の符号化値は、前記ストリング長をLで割ったものである、
請求項13に記載の方法。
【請求項19】
前記シンタックス要素の前記符号化値は、1から(M1/L-1)の範囲内の整数であり、M1は、前記現在ブロック内のサンプルの数である、
請求項18に記載の方法。
【請求項20】
前記コーディング情報を前記復号するステップは更に、前記シンタックス要素を復号することを含み、
前記ストリング長を決定するステップは更に、前記シンタックス要素の前記符号化値にLを乗じたものとなる前記ストリング長を決定することを含む、
請求項18に記載の方法。
【請求項21】
前記コーディング情報を前記復号するステップは更に、前記SVに使用される解像度を示すシンタックス要素の復号することを含む、
請求項13に記載の方法。
【請求項22】
前記シンタックス要素は、前記SVの前記解像度が(i)1サンプル及び(ii)4サンプルのうちの一方であることを指し示す1ビットを有し、
前記SVの前記解像度が4サンプルであることに基づき、前記SVを前記決定するステップは更に、
前記コーディング情報から中間SVを決定し、
前記中間SVに4を乗じたものとなる前記SVを決定する、
ことを含む、
請求項21記載の方法。
【請求項23】
前記現在ブロックは、前記現在ストリングを有する複数のストリングを含み、前記複数のストリングにおいて符号化される最後のストリングの最後のストリング長はシグナリングされない、請求項13に記載の方法。
【請求項24】
前記最後のストリング長は、(i)前記現在ブロック内のサンプルの数、及び(ii)前記複数のストリング内の1つ以上の残りのストリングの1つ以上のストリング長に基づいて決定される、請求項23に記載の方法。
【請求項25】
前記コーディング情報は、前記現在ストリングが前記最後のストリングであるかを指し示すフラグを含む、請求項23に記載の方法。
【請求項26】
映像復号のための装置であって、
1つ以上のプロセッサと、
コンピュータプログラムを格納した1つ以上のメモリと、
を有し、
前記コンピュータプログラムは、前記1つ以上のプロセッサに、請求項13乃至25のいずれか一項に記載の方法を実行させる、
装置。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年4月1日に出願された米国仮出願第63/003,665号“HISTORY BASED VECTOR PREDICTION FOR INTRA PICTURE BLOCK AND STRING COPYING”に対する優先権の利益を主張するものである2021年3月16日に出願された米国特許出願第17/203,189号“METHOD AND APPARATUS FOR VIDEO CODING”及び2021年3月29日に出願された米国特許出願第17/215,886号“METHOD AND APPARATUS FOR VIDEO CODING”に対する優先権の利益を主張するものである。これら先行出願の開示全体をそれらの全体にてここに援用する。
【0002】
本開示は、映像コーディングに概して関係する実施形態を記述する。
【背景技術】
【0003】
ここに提示される背景説明は、開示に係る状況を概略的に提示するためのものである。この背景セクションに記載される範囲においての、ここに名を連ねる発明者の仕事、並びに、出願時にさもなければ従来技術として適格でないかもしれない記載の態様は、明示的にも、暗示的にも、本開示に対する従来技術として認められるものではない。
【0004】
動き補償を用いるインターピクチャ予測を使用して映像符号化及び復号を実行することができる。圧縮されていないデジタル映像は一連のピクチャを含み、各ピクチャが、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を持つ。一連のピクチャは、固定又は可変のピクチャレート(非公式にはフレームレートとしても知られる)を持つことができ、例えば、毎秒60ピクチャ、すなわち、60Hzのピクチャレートを持ち得る。圧縮されていない映像は、特定のビットレート要求を持つ。例えば、サンプル当たり8ビットの1080p60 4:2:0映像(60Hzのフレームレートで1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのような映像は、600GByteを超えるストレージ空間を必要とする。
【0005】
映像の符号化及び復号の1つの目的は、圧縮を通じての入力映像信号の冗長性の低減であるとし得る。圧縮は、前述の帯域幅要求及び/又はストレージ空間要求を、場合によって2桁以上の大きさで、低減させる助けとなることができる。可逆圧縮及び非可逆圧縮の双方、並びにこれらの組み合わせを使用することができる。可逆圧縮は、原信号の正確な複製を圧縮された原信号から再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は、原信号と同じにならないことがあるが、原信号と再構成信号との間の歪みは、再構成信号を意図した用途に有用にするのに十分な小ささとなる。映像の場合、非可逆圧縮が広く用いられる。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン配信アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比はそれを反映し、より高い許容/我慢できる歪みは、より高い圧縮比をもたらすことができる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピーコーディングを含め、幾つかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングにおいて、サンプル値は、先行して再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。一部のビデオコーデックにおいて、ピクチャは複数ブロックのサンプルへと空間的に細分される。全てのブロックのサンプルがイントラモードでコーディングされる場合、そのピクチャはイントラピクチャとすることができる。イントラピクチャ及び例えば独立デコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用されることができ、従って、コーディングされる映像ビットストリーム及び映像セッションにおける最初のピクチャとして、又は静止画として使用されることができる。イントラブロックのサンプルを変換にかけることができ、変換係数が、エントロピーコーディングの前に量子化され得る。イントラ予測は、変換前ドメインにおけるサンプル値を最小化する技術であるとし得る。場合により、変換後のDC値が小さいほど、及びAC係数が小さいほど、エントロピーコーディング後にブロックを表すのに所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られるような伝統的なイントラコーディングはイントラ予測を使用しない。しかしながら、より新しい一部の映像圧縮技術は、例えば、空間的に隣接し復号順で先行するブロックのデータの符号化及び/又は復号中に得られた周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術を、以後、“イントラ予測”技術と呼ぶ。なお、少なくとも一部のケースにおいて、イントラ予測は、再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからのものは使用しない。
【0009】
数多くの異なる形態のイントラ予測が存在し得る。所与の映像コーディング技術において、そのような技術のうち2つ以上が使用され得る場合、使用される技術がイントラ予測モードでコーディングされ得る。ある特定のケースにおいて、モードはサブモード及び/又はパラメータを有することができ、それらが個別にコーディングされる又はモードコードワードに含められることができる。所与のモード、サブモード、及び/又はパラメータの組み合わせにどのコードワードを使用するかということは、イントラ予測を通じたコーディング効率利得に影響を与え得ることであり、コードワードをビットストリームに変換するのに使用されるエントロピーコーディング技術も同様であり得る。
【0010】
イントラ予測の特定のモードが、H.264で導入され、H.265で改良され、そして、例えば共同探査モデル(JEM)、バーサタイルビデオコーディング(VVC)、及びベンチマークセット(BMS)などの、より新しいコーディング技術でさらに改良された。既に利用可能なサンプルに属する隣接サンプル値を用いて予測子ブロックが形成され得る。隣接サンプルのサンプル値が、方向に従って予測子ブロックにコピーされる。使用する方向の参照が、ビットストリームにコーディングされるか、それ自体が予測されるかし得る。
【0011】
図1Aを参照するに、右下に、H.265の33個の取り得る予測子方向(35個のイントラモードのうちの33個の角度モードに対応)から知られる9個の予測子方向のサブセットが描かれている。矢印が集まった点(101)が予測中のサンプルを表す。矢印は、その方向からサンプルが予測されることを表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で右上の1つのサンプル又は複数のサンプルから予測されることを指し示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で左下の1つのサンプル又は複数のサンプルから予測されることを指し示す。
【0012】
なおも
図1Aを参照するに、左上に、4×4サンプルの正方形ブロック(104)(破線の太線で示す)が描かれている。正方形ブロック(104)は、16個のサンプルを含み、各サンプルが、“S”と、Y次元でのその位置(例えば、行インデックス)と、X次元でのその位置(例えば、列インデックス)とでラベル付けられている。例えば、サンプルS21は、Y次元で(上から)2番目、且つX次元で(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内の、Y及びXの両方の次元で4番目のサンプルである。このブロックは4×4サンプルのサイズなので、S44は右下にある。さらに、同様の番号付けスキームに従った参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するY位置(例えば、行インデックス)及びX位置(列インデックス)とでラベル付けられている。H.264及びH.265の両方で、予測サンプルは再構成中のブロックに隣接し、それ故に、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、シグナリングされる予測方向によって、隣接サンプルからの参照サンプル値を適宜にコピーすることによって機能する。例えば、このブロックについて、予測方向が矢印(102)と一致すること、すなわち、水平から45度右上の1つ又は複数の予測サンプル又はサンプルからサンプルが予測されること、を指し示すシグナリングを符号化映像ビットストリームが含んでいると仮定する。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。そして、サンプルS44は、参照サンプルR08から予測される。
【0014】
特定のケースにおいて、特に、方向を45度ずつ等分できない場合に、参照サンプルを計算するために、例えば内挿により、複数の参照サンプルの値を結合することがある。
【0015】
映像コーディング技術が発展するにつれて、取り得る方向の数が増加している。H.264(2003年)では、9個の異なる方向を表すことができた。これが、H.265(2013年)では33個に増加し、JEM/VVC/BMSは、開示された時点で、65個に至る方向をサポートすることができる。最も可能性の高い方向を特定するために実験が行われており、そして、より可能性の低い方向に対するペナルティを受け入れて、それら可能性の高い方向を少数のビットで表現するように、エントロピーコーディングにおける特定の技術が用いられる。さらに、それらの方向自体が、隣接する既に復号されたブロックで用いられた隣接方向から予測されることもある。
【0016】
図1Bは、徐々に数が増えている予測方向を例示すために、JEMに従った65個のイントラ予測方向を描いた概略図(180)を示している。
【0017】
符号化映像ビットストリームにおける方向を表すイントラ予測方向ビットのマッピングは、映像コーディング技術ごとに異なり得るものであり、例えば、イントラ予測モードへの予測方向の単純な直接マッピングから、コードワードや、最確モードを含む複雑な適応方式、及び同様の技術まで及び得る。しかし、どのケースでも、映像コンテンツには、他の特定の方向よりも統計的に発生しにくい特定の方向が存在し得る。映像圧縮の目標は冗長性の低減であるので、良好に動作する映像コーディング技術では、それら可能性の低い方向は、可能性の高い方向よりも多数のビットで表されることになる。
【0018】
動き補償は、非可逆圧縮技術であるとし得るとともに、先行して再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって指し示される方向に空間的にシフトされた後に、新たに再構成されるピクチャ又はピクチャ部分の予測のために使用される技術に関係するとすることができる。一部のケースにおいて、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは、2つの次元X及びYを有することができ、あるいは、使用する参照ピクチャを指し示すインジケーションを3つめとして3つの次元を有することができる(後者は、間接的に、時間次元であるとすることができる)。
【0019】
一部の映像圧縮技術では、サンプルデータのある特定の領域に適用可能なMVを、例えば、復号順でそのMVに先行するMVであって再構成中の領域に空間的に隣接するサンプルデータの別領域に関係するMVからなど、別のMVから予測することができる。そうすることは、そのMVをコーディングするのに必要なデータの量を大幅に減らすことができ、それにより冗長性を取り除いて圧縮を高めることができる。MV予測は、効果的に機能することができる。何故なら、例えば、カメラに由来する入力ビデオ信号(ナチュラルビデオとして知られる)をコーディングするとき、単一のMVが適用可能である領域よりも大きい領域が同様の方向に移動し、それ故に、場合により、隣接する領域のMVから導出される同様の動きベクトルを用いて予測されることができる、という統計的尤度があるからである。これがもたらすのは、所与の領域に対して見出されたMVが、周囲のMVから予測されるMVと類似又は同じであり、ひいては、エントロピーコーディングの後に、そのMVを直接コーディングする場合に使用されることになるものよりも少ないビット数で表されることができるということである。一部のケースでは、MV予測は、原信号(はっきり言えば、サンプルストリーム)から導出される信号(はっきり言えば、MV)の可逆圧縮の一例であることができる。他のケースでは、例えば、幾つかの周囲MVから予測子を計算する際の丸め誤差のために、MV予測それ自体が非可逆的であるとし得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T勧告H.265,“High Efficiency Video Coding”、2016年12月)に記述されている。H.265が提供するそれら多数のMV予測メカニズムのうち、以下では“空間マージ”と称する技術をここで説明する。
【0021】
図2を参照するに、現在ブロック(201)は、空間的にシフトされた同じサイズの先行ブロックから予測可能であることが動き探索プロセス中にエンコーダによって見出されたサンプルを有する。MVを直接コーディングする代わりに、MVを、A0、A1、及びB0、B1、B2(それぞれ202から206)と表記する5つの周囲サンプルのうちのいずれか1つに関連するMVを用いて、例えば(復号順で)直前の参照ピクチャからなど、1つ以上の参照ピクチャに関連するメタデータから導出することができる。H.265において、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、映像符号化/復号のための方法及び装置を提供する。一部の例において、映像復号のための装置は処理回路を含む。処理回路は、現在ピクチャの現在ブロックに対するコーディング情報を復号するように構成されることができる。コーディング情報は、現在ブロックに対するコーディングモードがイントラブロックコピー(IBC)モード及びストリングコピーモードのうちの一方であることを指し示すことができる。処理回路は、現在ブロックに対するコーディングモード及び履歴バッファに基づいて、現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報を決定するように構成されることができる。履歴バッファは、少なくとも、IBCモードで先行して復号されたブロック及びストリングコピーモードで先行して復号されたストリングの、ベクトル情報を格納するように構成されることができる。処理回路は、現在ベクトル情報に基づいて現在ユニットのサンプルを再構成するように構成されることができる。
【0023】
一実施形態において、現在ブロックに対するコーディングモードはIBCモードである。現在ユニットのサンプルは現在ブロックである。処理回路は、少なくとも履歴バッファ内のベクトル情報に基づいて、現在ブロックに対するBV予測子候補リストを決定し、BV予測子候補リストに基づいて、現在ベクトル情報内の現在BVを決定するように構成されることができる。
【0024】
一実施形態において、現在ブロックに対するコーディングモードはストリングコピーモードである。現在ユニットのサンプルは現在ブロック内の現在ストリングである。処理回路は、履歴バッファ内のベクトル情報から現在ベクトル情報内の現在SVを決定するように構成されることができる。現在SVは現在ストリングに対するものである。
【0025】
一実施形態において、処理回路は、現在ベクトル情報が履歴バッファ内のベクトル情報のうちの1つ以上と異なる場合に、現在ベクトル情報を履歴バッファに格納するように構成されることができる。一例において、処理回路は、現在ベクトル情報内の現在ベクトルと履歴バッファ内のベクトル情報のうちの1つ以上の各先行ベクトルとの間の差が所定の閾値よりも大きいときに、現在ベクトル情報が履歴バッファ内のベクトル情報のうちの1つ以上と異なると決定するように構成される。
【0026】
一例において、処理回路は、現在ベクトル情報が履歴バッファ内のベクトル情報のうちの1つ以上と異なることを、現在ベクトル情報の現在ユニットサイズとベクトル情報のうちの1つ以上の各々の先行ユニットサイズとの間のサイズ差が所定のサイズ閾値よりも大きいことに基づいて決定するように構成されることができる。現在ベクトル情報の現在ユニットサイズは、現在ユニット内のサンプルの数を示すことができる。履歴バッファ内のベクトル情報は、IBCモードで先行して復号されたブロック及びストリングコピーモードで先行して復号されたストリングを含む先行ユニットのサンプルを復号するのに使用されることができる。先行ユニットサイズは、それぞれの先行ユニット内のサンプルの数を示すことができる。一例において、現在ベクトルとベクトル情報のうちの1つ以上のうち1つの先行ベクトルとの間の差が所定の閾値よりも大きくないことに基づいて、処理回路は、ベクトル情報のうちの1つ以上のうち1つを履歴バッファから除去するように構成される。
【0027】
一実施形態において、ベクトル情報のうちの1つ以上は、(i)履歴バッファ内のベクトル情報のサブセット、又は(ii)履歴バッファ内のベクトル情報を含む。
【0028】
一実施形態において、履歴バッファ内のベクトル情報のうちの1つは、ストリングベクトルと、(i)ストリング位置及び(ii)ストリングコピーモードで先行して復号されたストリングのストリングサイズのうちの一方と、を含む。ストリング位置は、ストリングコピーモードで先行して復号されたストリング内の所定のサンプルの位置である。ストリングサイズは、ストリングコピーモードで先行して復号されたストリング内のサンプルの数である。
【0029】
一実施形態において、履歴バッファ内のベクトル情報は、先行ベクトル及び先行ユニットサイズと、IBCモードで先行して復号されたブロック及びストリングコピーモードで先行して復号されたストリングを含んだ、対応する先行して復号されたユニットのサンプルの先行ユニット位置と、を含む。処理回路は、履歴バッファに格納されたベクトル情報の各々を、(i)それぞれのベクトル情報の先行ユニットサイズ、(ii)それぞれのベクトル情報の先行ユニット位置、又は(iii)それぞれのベクトル情報が、先行して復号された1つ以上のユニットのサンプルを予測するのに使用された回数、のうちの少なくとも1つに基づいて、複数のカテゴリのうちの1つに分類するように構成されることができる。履歴バッファは、クラスベースの履歴バッファとすることができる。一例において、現在ブロックに対するコーディング情報は更にインデックスを含む。処理回路は、複数のカテゴリのうちのインデックスによって指し示されるカテゴリにおける第1エントリとなる現在ベクトル情報を決定するように構成されることができる。
【0030】
本開示の態様によれば、処理回路は、現在ブロックに対するコーディング情報を復号するように構成されることができる。コーディング情報は、現在ブロックがストリングコピーモードでコーディングされることを指し示すことができる。処理回路は、コーディング情報に基づいて現在ブロック内の現在ストリングのストリングベクトル(SV)及びストリング長を決定するように構成されることができる。ストリング長はN3×Lとすることができ、N3及びLは正の整数であり、Lは1より大きい。処理回路は、現在ストリングのSV及びストリング長に基づいて現在ストリングを再構成するように構成されることができる。
【0031】
一例において、現在ブロックはルマブロックであり、Lは4である。
【0032】
一例において、現在ブロックはクロマブロックである。クロマサブサンプリングフォーマットは、クロマブロックが、対応するルマブロックの半分の高さ及び半分の幅を持つことを指し示す4:2:0である。クロマブロックが対応するルマブロックと一緒にコーディングされることに基づいて、Lは2であり、クロマブロックが対応するルマブロックとは別々にコーディングされることに基づいて、Lは4である。
【0033】
一例において、現在ブロックは、現在ストリングを持つ1つ以上のストリングを含む。現在ブロックは更に、1つ以上のストリングの外側にエスケープサンプルを含む。エスケープサンプルの数はL、又はLの倍数である。一例において、現在ブロックの同一行内のエスケープサンプルの数はL、又はLの倍数である。
【0034】
一実施形態において、コーディング情報は更に、ストリング長を示すシンタックス要素を含む。シンタックス要素の符号化値は、ストリング長をLで割ったものである。シンタックス要素の符号化値は、1から(M1/L-1)の範囲内の整数であり、M1は、現在ブロック内のサンプルの数である。一例において、処理回路は、シンタックス要素を復号し、さらに、シンタックス要素の符号化値にLを乗じたものとなるストリング長を決定するように構成される。
【0035】
一実施形態において、処理回路は、SVに使用される解像度を示すシンタックス要素の復号するように構成される。一例において、シンタックス要素は、SVの解像度が(i)1サンプル及び(ii)4サンプルのうちの一方であることを指し示す1ビットを有する。SVの解像度が4サンプルであることに基づき、処理回路は、コーディング情報から中間SVを決定し、中間SVに4を乗じたものとなるSVを決定するように構成される。
【0036】
一例において、現在ブロックは、現在ストリングを有する複数のストリングを含み、複数のストリングにおいて符号化される最後のストリングの最後のストリング長はシグナリングされない。一例において、最後のストリング長は、(i)現在ブロック内のサンプルの数、及び(ii)複数のストリング内の1つ以上の残りのストリングの1つ以上のストリング長に基づいて決定される。一例において、コーディング情報は、現在ストリングが最後のストリングであるかを指し示すフラグを含む。
【0037】
本開示の態様はまた、映像符号化/復号用のコンピュータによって実行されるときに該コンピュータに映像復号のための方法のいずれかを実行させる命令を格納した非一時的コンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0038】
開示に係る事項の更なる特徴、性質、及び様々な利点が、以下の詳細な説明及び添付の図面から、よりいっそう明らかになる。
【
図1A】イントラ予測モードの例示的なサブセットを概略的に示している。
【
図2】一例における現在ブロック及びその周囲の空間マージ候補を概略的に示している。
【
図3】一実施形態に従った通信システム(300)の簡略ブロック図を概略的に示している。
【
図4】一実施形態に従った通信システム(400)の簡略ブロック図を概略的に示している。
【
図5】一実施形態に従ったデコーダの簡略ブロック図を概略的に示している。
【
図6】一実施形態に従ったエンコーダの簡略ブロック図を概略的に示している。
【
図7】他の一実施形態に従ったエンコーダのブロック図を示している。
【
図8】他の一実施形態に従ったデコーダのブロック図を示している。
【
図9】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図10】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図11】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図12A】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図12B】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図12C】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図12D】本開示の一実施形態に従ったイントラブロックコピーの一例を示している。
【
図13】本開示の一実施形態に従った現在ブロックに対するイントラブロックコピーブロックベクトル予測についての空間クラスの一例を示している。
【
図14】本開示の一実施形態に従ったストリングコピーモードの一例を示している。
【
図15】本開示の一実施形態に従ったプロセス(1500)を概説するフローチャートを示している。
【
図16】本開示の一実施形態に従ったプロセス(1600)を概説するフローチャートを示している。
【
図17】一実施形態に従ったコンピュータシステムの概略図である。
【発明を実施するための形態】
【0039】
図3は、本開示の一実施形態に従った通信システム(300)の簡略ブロック図を例示している。通信システム(300)は、例えばネットワーク(350)を介して、互いに通信することができる複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)及び(320)を含む。
図3の例において、第1の対の端末装置(310)及び(320)は、データの一方向伝送を行う。例えば、端末装置(310)が、映像データ(例えば、端末装置(310)によってキャプチャされた映像ピクチャのストリーム)を、ネットワーク(350)を介した他の端末装置(320)への伝送のために符号化し得る。符号化された映像データは、1つ以上の符号化映像ビットストリームの形態で伝送されることができる。端末装置(320)が、ネットワーク(350)から符号化映像データを受信し、符号化映像データを復号して映像ピクチャを復元し、復元した映像データに従って映像ピクチャを表示し得る。一方向データ伝送は、メディアサービス提供アプリケーション及びそれに類するものにおいて一般的であり得る。
【0040】
他の一例において、通信システム(300)は、例えば、テレビ会議中に発生し得る符号化映像データの双方向伝送を行う第2の対の端末装置(330)及び(340)を含む。データの双方向伝送では、一例において、端末装置(330)及び(340)の各端末装置が、映像データ(例えば、その端末装置によってキャプチャされた映像ピクチャのストリーム)を、ネットワーク(350)を介した端末装置(330)及び(340)のうちの他方の端末装置への伝送のために符号化し得る。端末装置(330)及び(340)の各端末装置はまた、端末装置(330)及び(340)のうちの他方の端末装置によって送信された符号化映像データを受信し得るとともに、符号化映像データを復号して映像ピクチャを復元し、そして、復元した映像データに従って、アクセス可能なディスプレイ装置に映像ピクチャを表示し得る。
【0041】
図3において、端末装置(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されているが、本開示の原理は、そのように限定されるものではないとし得る。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のテレビ会議機器での用途を見出し。ネットワーク(350)は、例えば、配線(有線)通信ネットワーク及び/又は無線通信ネットワークを含め、端末装置(310)、(320)、(330)及び(340)間で符号化された映像データを伝達するあらゆる数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネル及び/又はパケット交換チャネルにてデータを交換し得る。代表的なネットワークは、遠距離通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットを含む。本説明の目的上、ネットワーク(350)のアーキテクチャ及びトポロジーは、以下にて説明しない限り、本開示の動作にとって重要ではないとし得る。
【0042】
図4は、開示に係る事項に関するアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を例示している。開示に係る事項は、例えば、テレビ会議や、デジタルTVや、CD、DVD、メモリスティック及びこれらに類するものを含むデジタル媒体上での圧縮映像の格納などを含め、映像を使用可能な他の用途にも等しく適用されることができる。
【0043】
ストリーミングシステムは、例えば圧縮されていない映像ピクチャのストリーム(402)を作り出す例えばデジタルカメラといった映像ソース(401)を含み得るものであるキャプチャサブシステム(413)を含み得る。一例において、映像ピクチャのストリーム(402)は、デジタルカメラによって撮影されるサンプルを含む。映像ピクチャのストリーム(402)は、符号化された映像データ(404)(又は符号化映像ビットストリーム)と比較して高いデータボリュームであることを強調するために太線として描かれており、映像ソース(401)に結合されたビデオエンコーダ(403)を含んだエレクトロニクス装置(420)によって処理され得る。ビデオエンコーダ(403)は、更に詳細に後述される開示に係る事項の態様を使用可能にする又は実装するための、ハードウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。符号化された映像データ(404)(又は符号化映像ビットストリーム(404))は、映像ピクチャのストリーム(402)と比較して低いデータボリュームであることを強調するために細線として描かれており、後の使用のためにストリーミングサーバ(405)に格納されることができる。例えば
図4のクライアントサブシステム(406)及び(408)などの1つ以上のストリーミングクライアントサブシステムが、符号化された映像データ(404)のコピー(407)及び(409)を取り出すためにストリーミングサーバ(405)にアクセスすることができる。クライアントサブシステム(406)は、例えばエレクトロニクス装置(430)内の、ビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、入ってくる符号化された映像データのコピー(407)を復号し、出ていく映像ピクチャのストリーム(411)を作り出すことができ、出ていく映像ピクチャのストリーム(411)が、ディスプレイ(412)(例えば、表示スクリーン)又は他のレンダリング装置(図示せず)上でレンダリングされ得る。一部のストリーミングシステムにおいて、符号化された映像データ(404)、(407)、及び(409)(例えば、映像ビットストリーム)は、特定の映像符号化/圧縮標準に従って符号化されることができる。それら標準の例は、ITU-T勧告H.265を含む。一例において、開発中のある映像符号化標準は、非公式にバーサタイルビデオコーディング(Versatile Video Coding;VVC)として知られている。開示に係る事項は、VVCの文脈で使用され得る。
【0044】
なお、エレクトロニクス装置(420)及び(430)は、他のコンポーネント(図示せず)を含むことができる。例えば、エレクトロニクス装置(420)はビデオデコーダ(図示せず)を含むことができ、エレクトロニクス装置(430)はビデオエンコーダ(図示せず)も含むことができる。
【0045】
図5は、本開示の一実施形態に従ったビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、エレクトロニクス装置(530)に含まれ得る。エレクトロニクス装置(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(410)の代わりに使用されることができる。
【0046】
受信器(531)が、これと同じ実施形態又は他の一実施形態において、一度に1つの符号化映像シーケンスで、ビデオデコーダ(510)によって復号されることになる1つ以上の符号化映像シーケンスを受信することができ、各符号化映像シーケンスの復号は、他の符号化映像シーケンスとは独立である。符号化映像シーケンスは、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得るものであるチャネル(501)から受信され得る。受信器(531)は、符号化映像データを、例えば符号化された音声データ及び/又は補助データストリームといった他のデータと共に受信してもよく、それらのデータは、それらそれぞれの使用エンティティ(図示せず)に転送され得る。受信器(531)は、符号化映像シーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、受信器(531)とエントロピーデコーダ/パーサ520(以下、“パーサ(520)”)との間にバッファメモリ(515)が結合され得る。特定のアプリケーションにおいて、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のものにおいて、それは、ビデオデコーダ(510)の外部にあってもよい(図示せず)。更なる他のものにおいて、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミングを取り扱うために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在することができる。受信器(531)が、十分な帯域幅及び可制御性の格納/転送装置から又は等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は、必要とされなくてもよく、又は小さくされることができる。例えばインターネットなどのベストエフォート型パケットネットワーク上での使用では、バッファメモリ(515)が、必要とされ得るとともに、比較的大きくされ、そして、有利には適応可能なサイズのものにされることができ、また、少なくとも部分的に、ビデオデコーダ(510)の外部のオペレーティングシステム又は同様の要素(図示せず)にて実装され得る。
【0047】
ビデオデコーダ(510)は、符号化映像シーケンスからシンボル(521)を再構成するためのパーサ(520)を含み得る。それらシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含むとともに、可能性として、
図5に示したように、エレクトロニクス装置(530)の統合部分ではないがエレクトロニクス装置(530)に結合されることが可能な、例えばレンダー装置(512)(例えば、表示スクリーン)などのレンダリング装置を制御する情報を含み得る。(1つ以上の)レンダリング装置用の制御情報は、補足強化情報(Supplementary Enhancement Information;SEI)メッセージ又はビデオユーザビリティ情報(Video Usability Information;VUI)パラメータセットフラグメント(図示せず)の形態とし得る。パーサ(520)は、受け取った符号化映像シーケンスを構文解析/エントロピー復号し得る。符号化映像シーケンスの符号化は、映像符号化技術又は標準によることができ、可変長符号化、ハフマン符号化、文脈依存性を持つ又は持たない算術符号化などを含め、様々な原理に従うことができる。パーサ(520)は、符号化映像シーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つに関する一組のサブグループパラメータを抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、符号化映像シーケンス情報から、例えば変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出し得る。
【0048】
パーサ(520)は、シンボル(521)を生み出すよう、バッファメモリ(515)から受け取った映像シーケンスにエントロピー復号/構文解析処理を実行し得る。
【0049】
シンボル(521)の再構成には、符号化された映像ピクチャ又はその部分のタイプ及び他の要因(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロックなど)に応じて、複数の異なるユニットが関与し得る。どのユニットが関与するか、及びそれらがどのように関与するかは、パーサ(520)によって符号化映像シーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数ユニットとの間でのこのようなサブグループ制御情報の流れは、明瞭さのために図示していない。
【0050】
既述の機能ブロックを超えて、ビデオデコーダ(510)は概念的に、後述のような多数の機能ユニットに細分化されることができる。商業上の制約の下で稼働する実用的な実装において、これらのユニットのうちの多くが互いに密接にインタラクトし、少なくとも部分的に互いに統合され得る。しかしながら、開示に係る事項を説明するという目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
【0051】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からの(1つ以上の)シンボル(521)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることが可能な、サンプル値を有するブロックを出力することができる。
【0052】
場合により、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、先行して再構成されたピクチャからの予測情報を使用していないが、現在ピクチャのうち先行して再構成された部分からの予測情報を使用することができるブロック、に関係し得る。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合により、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合により、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に付加する。
【0053】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、動き補償された可能性のあるブロックに関係し得る。このような場合、動き補償予測ユニット(553)が、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(521)に従って動き補償した後、これらのサンプルが、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に付加されて、出力サンプル情報を生成することができる。そこから動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動きベクトルによって制御されることができ、例えばX、Y、及び参照ピクチャ成分を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
【0054】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)にて様々なループフィルタリング技術に掛けられ得る。映像圧縮技術は、インループ(in-loop)フィルタ技術を含むことができ、これは、符号化映像シーケンス(符号化映像ビットストリームとも称する)に含められてパーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるパラメータによって制御されるが、符号化ピクチャ又は符号化映像シーケンスのうちの(復号順で)先行部分の復号中に得られたメタ情報にも応答することができるとともに、先行して再構成されてループフィルタリングされたサンプル値にも応答することができる。
【0055】
ループフィルタユニット(556)の出力は、レンダー装置(512)に出力されることが可能なサンプルストリームとすることができ、これはまた、将来のインターピクチャ予測での使用のために参照ピクチャメモリ(557)に格納されることができる。
【0056】
ある特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構成され、その符号化ピクチャが参照ピクチャとして(例えば、パーサ(520)によって)特定されると、現在ピクチャバッファ(558)が参照ピクチャメモリ(557)の一部となり得るとともに、次の符号化ピクチャの再構成を開始する前に新しい現在ピクチャバッファが再割り当てされ得る。
【0057】
ビデオデコーダ(510)は、例えばITU-T勧告H.265などの標準における所定の映像圧縮技術に従って復号処理を実行し得る。符号化映像シーケンスは、映像圧縮技術又は標準の構文と映像圧縮技術又は標準において文書化されたプロファイルとの双方を忠実に守るという意味で、使用される映像圧縮技術又は標準によって規定される構文に従い得る。具体的には、プロファイルは、映像圧縮技術又は標準において利用可能な全てのツールから、特定のツールを、そのプロファイルの下での使用に利用可能なツールはそれだけであるように選択することができる。また、コンプライアンスのために、符号化映像シーケンスの複雑さが、映像圧縮技術又は標準のレベルによって規定される範囲内にあることも必要である。場合により、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制約する。レベルによって設定される制限は、場合により、仮説的リファレンスデコーダ(Hypothetical Reference Decoder;HRD)仕様、及び符号化映像シーケンスにてシグナリングされるHRDバッファ管理用のメタデータを通して更に制約され得る。
【0058】
一実施形態において、受信器(531)は、符号化された映像と共に追加(冗長)データを受信し得る。追加データは、(1つ以上の)符号化映像シーケンスの一部として含められ得る。追加データは、データを適切に復号するため、及び/又は元の映像データをいっそう正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正符号などの形態とし得る。
【0059】
図6は、本開示の一実施形態に従った、ビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、エレクトロニクス装置(620)に含まれる。例えば、エレクトロニクス装置(620)は送信器(640)(例えば、送信回路)を含んでいる。ビデオエンコーダ(603)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用されることができる。
【0060】
ビデオエンコーダ(603)は、エンコーダ(603)によって符号化されることになる(1つ以上の)映像画像をキャプチャし得る映像ソース(601)(
図6の例ではエレクトロニクス装置(620)の一部ではない)から映像サンプルを受信し得る。他の一例において、映像ソース(601)は、エレクトロニクス装置(620)の一部である。
【0061】
映像ソース(601)は、ビデオエンコーダ(603)によって符号化されるソース映像シーケンスを、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、及び任意の好適なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとし得るデジタル映像サンプルストリームの形態で提供し得る。メディアサービス提供システムにおいて、映像ソース(601)は、事前に準備された映像を格納したストレージ装置とし得る。テレビ会議システムでは、映像ソース(601)は、ローカルな画像情報を映像シーケンスとしてキャプチャするカメラとし得る。映像データは、順に見たときに動きを伝える複数の個々のピクチャとして提供され得る。それらピクチャ自体は、ピクセルの空間アレイとして編成されることができ、各ピクセルが、使用されるサンプリング構造、色空間などに応じて、1つ以上のサンプルを有することができる。当業者は、ピクセルとサンプルとの関係を直ちに理解することができる。以下の説明は、サンプルに焦点を当てている。
【0062】
一実施形態によれば、ビデオエンコーダ(603)は、ソース映像シーケンスのピクチャを、リアルタイムで、又はアプリケーションによって要求される他の時間制約下で、符号化映像シーケンス(643)へと符号化及び圧縮し得る。適切な符号化速度を強制することが、コントローラ(650)の1つの機能である。一部の実施形態において、コントローラ(650)は、後述するような他の機能ユニットを制御するとともに、それら他の機能ユニットに機能的に結合される。その結合は、明瞭さのために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。コントローラ(650)は、特定のシステム設計に合わせて最適化されるビデオエンコーダ(603)に関連する他の好適な機能を有するように構成されることができる。
【0063】
一部の実施形態において、ビデオエンコーダ(603)は、符号化ループにて動作するように構成される。過度に単純化した説明として、一例において、符号化ループは、ソースコーダ(630)(例えば、符号化される入力ピクチャ及び(1つ以上の)参照ピクチャに基づいて例えばシンボルストリームなどのシンボルを作成することを担う)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(シンボルと符号化映像ビットストリームとの間での圧縮が、開示に係る事項において検討される映像圧縮技術において可逆であるときに)(リモート)デコーダも作成するのと同様にして、シンボルを再構成してサンプルデータを生成する。再構成されたサンプルストリーム(サンプルデータ)が、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)に依存しないビット正確な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに“見る”のとまったく同じサンプル値を参照ピクチャサンプルとして“見る”。この参照ピクチャ同期性の基本原理(及び、例えばチャネルエラーのために、同期性を維持することができない場合に結果として生じるドリフト)は、一部の関連技術でも使用されている。
【0064】
“ローカル”デコーダ(633)の動作は、例えばビデオデコーダ(510)などの“リモート”デコーダのものと同じであるとすることができ、それは、
図5に関連して既に詳細に上述されている。しかしながら、
図5も手短に参照するに、シンボルが利用可能であり、且つエントロピーコーダ(645)及びパーサ(520)によるシンボルの符号化映像シーケンスへの符号化/復号は可逆であるとし得るので、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)に完全に実装されなくてよい。
【0065】
この時点で気付くことができることには、デコーダ内に存在する構文解析/エントロピー復号を除く如何なるデコーダ技術も、対応するエンコーダ内に、実質的に同じ機能的形態で、必ず存在する必要がある。エンコーダ技術の説明は、徹底して説明したデコーダ技術の逆であるので、省略することができる。特定の分野においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0066】
動作時、一部の例において、ソースコーダ(630)は、入力ピクチャを、映像シーケンスからの、“参照ピクチャ”として指定された1つ以上の先に符号化されたピクチャに対して予測的に符号化するものである動き補償予測符号化を実行し得る。斯くして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する(1つ以上の)予測基準として選択され得る(1つ以上の)参照ピクチャのピクセルブロックとの間の差分を符号化する。
【0067】
ローカルビデオデコーダ(633)は、参照ピクチャとして指定され得るピクチャの符号化映像データを、ソースコーダ(630)によって作成されたシンボルに基づいて復号し得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスとし得る。符号化映像データが映像デコーダ(
図6には示されていない)で復号され得るとき、再構成された映像シーケンスは典型的に、幾分の誤差を伴うソース映像シーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャ上でビデオデコーダによって実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させるようにし得る。斯くして、ビデオエンコーダ(603)は、ファーエンドのビデオデコーダによって得られることになる再構成参照ピクチャと共通のコンテンツを持つ再構成参照ピクチャのコピーをローカルに格納し得る。
【0068】
予測器(635)は、コーディングエンジン(632)のために予測探索を実行し得る。すなわち、符号化すべき新たなピクチャに関して、予測器(636)は、新たなピクチャ用の適切な予測基準としての役割を果たし得るサンプルデータ(候補参照ピクセルブロックとして)又は例えば参照ピクチャ動きベクトルやブロック形状などの特定のメタデータについて、参照ピクチャメモリ(634)を検索し得る。予測器(635)は、適切な予測参照を見出すために、ピクセルブロック毎に動作し得る。場合により、予測器(635)によって得られた検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測基準を有し得る。
【0069】
コントローラ(650)は、例えば、映像データを符号化するのに使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(630)の符号化処理を管理し得る。
【0070】
前述の全ての機能ユニットの出力が、エントロピーコーダ(645)におけるエントロピー符号化に掛けられ得る。エントロピーコーダ(645)は、例えばハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化映像シーケンスへと変換する。
【0071】
送信器(640)が、エントロピーコーダ(645)によって生成された(1つ以上の)符号化映像シーケンスをバッファリングし、通信チャネル(660)を介した伝送のために準備し得る。通信チャネル(660)は、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得る。送信器(640)は、ビデオコーダ(603)からの符号化映像データを、例えば符号化オーディオデータ及び/又は補助データストリーム(ソースは図示していない)といった、送信される他のデータとマージし得る。
【0072】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。符号化において、コントローラ(650)は、各符号化ピクチャに、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得るものである特定の符号化ピクチャタイプを割り当て得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つを割り当てられ得る。
【0073】
イントラピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用することなく符号化及び復号され得るものとし得る。一部の映像コーデックは、例えば独立デコーダリフレッシュ(Independent Decoder Refresh;IDR)ピクチャを含め、複数の異なるタイプのイントラピクチャを許している。当業者は、Iピクチャのそれら異形、並びにそれらそれぞれの用途及び特徴を知っている。
【0074】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くて1つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。
【0075】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くて2つの動きベクトルと参照インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。同様に、多重予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャと関連メタデータとを使用することができる。
【0076】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16サンプルのブロック)に細分化され、ブロック毎に符号化され得る。ブロックは、それらブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは非予測的に符号化されることができ、あるいは、それらは同じピクチャの既に符号化されたブロックを参照して予測的に符号化されることができる(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの先に符号化された参照ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。
【0077】
ビデオエンコーダ(603)は、例えばITU-T勧告H.265などの所定の映像符号化技術又は標準に従って符号化処理を実行し得る。その動作において、ビデオエンコーダ(603)は、入力映像シーケンスにおける時間的及び空間的な冗長性を活用する予測的な符号化処理を含め、様々な圧縮処理を実行し得る。符号化された映像データは、それ故に、使用されている映像符号化技術又は標準によって規定される構文に従い得る。
【0078】
一実施形態において、送信器(640)は、符号化された映像と共に追加データを送信し得る。ソースコーダ(630)が、そのようなデータを、符号化映像シーケンスの一部として含め得る。追加データは、時間的/空間的/SNRエンハンスメントレイヤ、例えば冗長ピクチャ及びスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを有し得る。
【0079】
映像は、時間シーケンスにて複数のソースピクチャ(映像ピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャ内の空間的な相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例において、現在ピクチャと称される符号化/復号中の特定のピクチャが、複数のブロックへと分割される。現在ピクチャ内のあるブロックが、映像内の先に符号化され且つ依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在ピクチャ内のそのブロックは、動きベクトルと称されるベクトルによって符号化されることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを特定する第3の次元を持つことができる。
【0080】
一部の実施形態において、インターピクチャ予測において双予測技術を使用することができる。双予測技術によれば、例えば、映像内でどちらも現在ピクチャに対して復号順で先である(しかし、表示順では、それぞれ過去及び将来であってもよい)第1の参照ピクチャ及び第2の参照ピクチャなどの、2つの参照ピクチャが使用される。現在ピクチャ内のブロックを、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化することができる。そのブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0081】
さらに、インターピクチャ予測において符号化効率を改善するために、マージモード技術を使用することができる。
【0082】
本開示の一部の実施形態によれば、例えばインターピクチャ予測及びイントラピクチャ予測などの予測が、ブロックの単位で実行される。例えば、HEVC標準によれば、映像ピクチャのシーケンス内のピクチャが、圧縮のために複数のコーディングツリーユニット(CTU)に分割され、ピクチャ内のそれらCTUは、例えば64×64ピクセル、32×32ピクセル、又は16×16ピクセルなどの同一サイズを有する。一般に、CTUは、1つのルマ(luma)CTBと2つのクロマ(chroma)CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUが、1つ又は複数のコーディングユニット(CU)へと再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割されることができる。一例において、各CUが、例えばインター予測タイプ又はイントラ予測タイプなど、そのCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、ルマ予測ブロック(PB)と2つのクロマPBとを含む。一実施形態において、コーディング(符号化/復号)に際しての予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを用いると、該予測ブロックは、例えば8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、及びこれらに類するものなど、ピクセルの値(例えば、ルマ値)の行列を含む。
【0083】
図7は、本開示の他の一実施形態に従ったビデオエンコーダ(703)の図を示している。ビデオエンコーダ(703)は、映像ピクチャのシーケンス内の現在映像ピクチャの中の処理ブロック(例えば、予測ブロック)のサンプル値を受信し、該処理ブロックを符号化映像シーケンスの一部である符号化ピクチャへと符号化するように構成される。一例において、ビデオエンコーダ(703)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0084】
HEVCの例において、ビデオエンコーダ(703)は、例えば予測ブロックの8×8サンプルなどの、処理ブロックに関するサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート-歪み最適化を用いて、処理ブロックが最良に符号化されるのが、イントラモードを用いてなのか、インターモードを用いてなのか、それとも双予測モードを用いてなのかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して処理ブロックを符号化ピクチャへと符号化することができ、処理ブロックがインターモード又は双予測モードで符号化される場合、ビデオエンコーダ(703)は、それぞれ、インター予測技術又は双予測技術を使用して処理ブロックを符号化ピクチャへと符号化することができる。特定の映像符号化技術において、マージモードは、予測子の外側の符号化動きベクトル成分の利益なしで1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードとし得る。特定の他の映像符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例において、ビデオエンコーダ(703)は、例えば処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの、他のコンポーネントを含む。
【0085】
図7の例において、ビデオエンコーダ(703)は、
図7に示すように共に結合された、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピーエンコーダ(725)を含んでいる。
【0086】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、先行ピクチャ内及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術に従った冗長情報の記述、動きベクトル、マージモード情報)を生成し、そして、何らかの好適技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。一部の例において、参照ピクチャは、符号化された映像情報に基づいて復号された参照ピクチャである。
【0087】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、一部のケースにおいて、ブロックを、同じピクチャ内の既に符号化されたブロックと比較し、変換後の量子化係数を生成し、一部のケースでは、イントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成する。一例において、イントラエンコーダ(722)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0088】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成される。一例において、全般コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるとき、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、モードがインターモードであるときには、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0089】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例において、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数が量子化処理にかけられて、量子化された変換係数が得られる。様々な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックが好適に処理されて、復号されたピクチャが生成され、そして、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ得るとともに、一部の例では参照ピクチャとして使用され得る。
【0090】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、例えばHEVC標準などの好適な標準に従って種々の情報を含めるように構成される。一例において、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適情報を、ビットストリームに含めるように構成される。なお、本開示に係る事項によれば、インターモード又は双予測モードのいずれかのマージサブモードにてブロックを符号化するとき、残差情報は存在しない。
【0091】
図8は、本開示の他の一実施形態に従ったビデオデコーダ(810)の図を示している。ビデオデコーダ(810)は、符号化映像シーケンスの一部である符号化されたピクチャを受信し、該符号化されたピクチャを復号して再構成ピクチャを生成するように構成される。一例において、ビデオデコーダ(810)は、
図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0092】
図8の例において、ビデオデコーダ(810)は、
図8に示すように共に結合された、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含んでいる。
【0093】
エントロピーデコーダ(871)は、符号化されたピクチャから、符号化されたピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は他のサブモードにおける後者の2つなど)、それぞれイントラデコーダ(872)又はインターデコーダ(880)による予測のために使用される特定のサンプル又はメタデータを特定することができる予測情報(例えば、イントラ予測情報又はインター予測情報など)、例えば量子化された変換係数の形態をした残差情報、及びこれらに類するものを含むことができる。一例において、予測モードがインターモード又は双予測モードであるときには、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるときには、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化にかけられることができ、残差デコーダ(873)に提供される。
【0094】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0095】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0096】
残差デコーダ(873)は、逆量子化を実行して、逆量子化された変換係数を抽出し、そして、逆量子化された変換係数を処理して、残差を周波数ドメインから空間ドメインに変換するように構成される。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)を必要としてもよく、その情報は、エントロピーデコーダ(871)によって提供され得る(これは、低ボリュームの制御情報のみとし得るのでデータ経路は不図示)。
【0097】
再構成モジュール(874)は、残差デコーダ(873)によって出力される残差と、(場合に応じてインター又はイントラ予測モジュールによって出力される)予測結果とを空間ドメインで組み合わせて、再構成ブロックを形成するように構成される。再構成ブロックは、再構成ピクチャの一部とすることができ、代わって再構成ピクチャは、再構成映像の一部とすることができる。なお、視覚的な品質を向上させるために、例えばデブロッキング処理及びそれに類するものなど、他の好適な処理を実行することができる。
【0098】
なお、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、如何なる好適技術を用いて実装されてもよい。一実施形態において、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、1つ以上の集積回路を用いて実装され得る。他の一実施形態において、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装され得る。
【0099】
本開示の態様は、イントラピクチャブロック、ストリングコピーモードを使用するストリング、又はこれらに類するものに対する履歴ベースベクトル予測に関する技術を提供する。
【0100】
ブロックベースの補償は、インター予測及びイントラ予測に使用されることができる。インター予測では、異なるピクチャからのブロックベースの補償が動き補償として知られている。ブロックベースの補償はまた、例えばイントラ予測においてなど、同じピクチャ内の先行再構成領域からも行われることができる。同一ピクチャ内の再構成領域からのブロックベースの補償は、イントラピクチャブロック補償、現在ピクチャ参照(CPR)、又はイントラブロックコピー(IBC)と呼ばれている。現在ブロックと同一ピクチャ内の参照ブロック(予測ブロックとも呼ばれる)との間のオフセットを指し示す変位ベクトルはブロックベクトル(BV)と呼ばれ、参照ブロックに基づいて現在ブロックを符号化/復号することができる。任意の値(x方向又はy方向のいずれかで正又は負)をとることができるものである動き補償における動きベクトルとは異なり、BVは、参照ブロックが利用可能であり且つ既に再構成されていることを保証するために、2、3の制約を有する。また、一部の例において、並列処理を考慮して、タイル境界、スライス境界、又は波面はしご形境界である一部の基準領域が除外される。
【0101】
ブロックベクトルのコーディングは、明示的又は黙示的のいずれであってもよい。明示モードでは、ブロックベクトルとその予測子との間のBV差がシグナリングされる。黙示モードでは、マージモードでの動きベクトルと同様にして、BV差を使用することなく予測子(ブロックベクトル予測子と呼ばれる)からブロックベクトルが復元される。明示なモードのことを、非マージBV予測モードと呼ぶことができる。黙示モードのことを、マージBV予測モードと呼ぶことができる。
【0102】
ブロックベクトルの解像度は、一部の実装において整数位置に制約される。他のシステムでは、ブロックベクトルは分数位置を指すことが許される。
【0103】
一部の例において、ブロックレベルでのイントラブロックコピーの使用は、例えばIBCフラグなどのブロックレベルフラグを用いてシグナリングされることができる。一実施形態において、ブロックレベルフラグは、現在ブロックが明示的にコーディングされるときにシグナリングされる。一部の例において、ブロックレベルでのイントラブロックコピーの使用は、参照インデックスアプローチを用いてシグナリングされることができる。その場合、復号中の現在ピクチャが参照ピクチャ又は特別参照ピクチャとして扱われる。一例において、そのような参照ピクチャは参照ピクチャのリストの最後の位置に置かれる。特別参照ピクチャはまた、例えば復号ピクチャバッファ(DPB)などのバッファ内で他の時間参照ピクチャと共に管理される。
【0104】
IBCモードにはバリエーションが存在し得る。一例において、IBCモードは、イントラ予測モード及びインター予測モードとは異なる第3のモードとして扱われる。従って、黙示モード(又はマージモード)及び明示モードでのBV予測は、通常のインターモードとは別である。IBCモードのために別個のマージ候補リストを規定することができ、その別個のマージ候補リストのエントリがBVである。同様に、一例において、IBC明示モードでのBV予測候補リストはBVのみを含む。それら2つのリスト(すなわち、別々のマージ候補リストとBV予測候補リスト)に適用される一般ルールは、それら2つのリストが、候補導出プロセスに関して、通常のマージモードで使用されるマージ候補リスト又は通常のAMVPモードで使用されるAMVP予測子リストと同じ論理に従うことができるということである。例えば、IBCモード用の別個のマージ候補リストを導出するために、例えばHEVC又はVVCインターマージモードでの5つの空間隣接位置(例えば、
図2のA0、A1、及びB0、B1、B2)がアクセスされる。
【0105】
上述のように、ピクチャ内の再構成中の現在ブロックのBVは、特定の制約を有し得るものであり、故に、現在ブロックに対する参照ブロックは探索範囲内にある。探索範囲は、そこから参照ブロックが選択され得るピクチャの一部を指す。例えば、探索範囲は、ピクチャ内の再構成領域の特定の部分の中とし得る。探索範囲のサイズ、位置、形状、及び/又はこれらに類するものが制約され得る。あるいは、BVが制約され得る。一例において、BVは、x及びy成分を含む二次元ベクトルであり、x及びy成分のうちの少なくとも一方が制約され得る。制約は、BV、探索範囲、又はBVと探索範囲との組み合わせに関して規定され得る。様々な例において、BVに関して特定の制約が規定されるとき、探索範囲はそれに従って制約される。同様に、探索範囲に関して特定の制約が規定されるとき、BVはそれに従って制約される。
【0106】
図9は、本開示の一実施形態に従ったイントラブロックコピーの一例を示している。現在ピクチャ(900)が、復号の下で再構成されることになる。現在ピクチャ(900)は、再構成済みの領域(910)(灰色の領域)と、復号すべき領域(920)(白色の領域)とを含んでいる。現在ブロック(930)が、デコーダによって再構成中である。現在ブロック(930)は、再構成済みの領域(910)内にある参照ブロック(940)から再構成されることができる。参照ブロック(940)と現在ブロック(930)との間の位置オフセットがブロックベクトル(950)(又はBV(950))と呼ばれる。
図9の例において、再構成済みの領域(910)内に探索範囲(960)があり、参照ブロック(940)は探索範囲(960)内にあり、ブロックベクトル(950)は、探索範囲(960)内の参照ブロック(940)を指すように制約される。
【0107】
様々な制約がBV及び/又は探索範囲に適用され得る。一実施形態において、現在CTB内の再構成中の現在ブロックの探索範囲は、現在CTB内にあるように制約される。
【0108】
一実施形態において、イントラブロックコピーに使用される参照サンプルを格納するための有効メモリ要求は、1つのCTBのサイズである。一例において、CTBサイズは128×128サンプルである。現在CTBには、再構成中の現在領域を含む。現在領域は64×64サンプルのサイズを持つ。参照メモリは現在領域内の再構成済みサンプルも格納することができるので、128×128サンプルのCTBサイズに参照メモリサイズが等しいとき、参照メモリは、あと3つの64×64サンプルの領域を格納することができる。従って、探索範囲は、参照サンプルを格納するための総メモリ要求(例えば、128×128サンプル又は合計4つの64×64参照サンプルの、1つのCTBのサイズ)を変えないままで、先行再構成CTBの特定の部分を含むことができる。一例において、先行再構成CTBは、例えば
図10に示すように、現在CTBの左に隣接するものである。
【0109】
図10は、本開示の一実施形態に従ったイントラブロックコピーの一例を示している。現在ピクチャ(1001)は、再構成中の現在CTB(1015)、及び現在CTB(1015)の左に隣接するものである先行再構成CTB(1010)を含んでいる。現在ピクチャ(1001)内のCTBは、例えば128×128サンプルなどのCTBサイズ、及び例えば128サンプルなどのCTB幅を持つ。現在CTB(1015)は4つの領域(1016)-(1019)を含み、現在領域(1016)が再構成中である。現在領域(1016)は、複数のコーディングブロック(1021)-(1029)を含む。同様に、先行再構成CTB(1010)は、4つの領域(1011)-(1014)を含む。コーディングブロック(1021)-(1025)は再構成されており、現在ブロック(1026)が再構成中であり、コーディングブロック(1026)-(1027)及び領域(1017)-(1019)が再構成されることになる。
【0110】
現在領域(1016)は、コロケート領域(すなわち、先行再構成CTB(1010)内の領域(1011))を持つ。先行再構成CTB(1010)に対するコロケート領域(1011)の相対位置は、現在CTB(1015)に対する現在領域(1016)の相対位置と同じであるとすることができる。
図10に示す例において、現在領域(1016)は現在CTB(1015)内の左上領域であり、従って、コロケート領域(1011)も先行再構成CTB(1010)内の左上領域である。先行再構成CTB(1010)の位置が現在CTB (1015)の位置からCTB幅だけオフセットされているので、コロケート領域(1011)の位置は現在領域(1016)の位置からCTB幅だけオフセットされている。
【0111】
一実施形態において、現在領域(1016)のコロケート領域は先行再構成CTB内にあり、先行再構成CTBの位置は現在CTB(1015)の位置からのCTB幅の1つ又は倍数だけオフセットされており、従って、コロケート領域の位置も、現在領域(1016)の位置から、対応したCTB幅の1つ又は倍数だけオフセットされている。コロケート領域の位置は、現在領域(1016)から左シフトされることができ、上シフトされることができ、あるいは、これらに類するものをされることができる。
【0112】
上述のように、現在ブロック(1026)に対する探索範囲のサイズは、CTBサイズによって制約される。
図10の例において、探索範囲は、先行再構成CTB(1010)内の領域(1012)-(1014)と、例えばコーディングブロック(1021)-(1025)などの既に再構成された現在領域(1016)の部分とを含むことができる。探索範囲は、さらに、探索範囲のサイズがCTBサイズ内となるようにコロケート領域(1011)を除外する。
図10を参照するに、参照ブロック(1091)は、先行再構成CTB(1010)内の領域(1014)に位置している。ブロックベクトル(1020)が、現在ブロック(1026)とそれぞれの参照ブロック(1091)との間のオフセットを指し示す。参照ブロック(1091)は探索範囲内にある。
【0113】
図10に示す例は、現在領域が現在CTB(1015)内の別の位置にある他のシナリオに好適に適応されることができる。一例において、現在ブロックが領域(1017)内にあるとき、現在ブロックに対するコロケート領域は領域(1012)となる。従って、探索範囲は、領域(1013)-(1014)、領域(1016)、及び既に再構成された領域(1017)の部分を含むことができる。探索範囲は、さらに、探索範囲のサイズがCTBサイズ内となるように、領域(1011)及びコロケート領域(1012)を除外する。一例において、現在ブロックが領域(1018)内にあるとき、現在ブロックに対するコロケート領域は領域(1013)となる。従って、探索範囲は、領域(1014)、領域(1016)-(1017)、及び既に再構成された領域(1018)の部分を含むことができる。探索範囲は、さらに、探索範囲のサイズがCTBサイズ内となるように、領域(1011)-(1012)及びコロケート領域(1013)を除外する。一例において、現在ブロックが領域(1019)内にあるとき、現在ブロックに対するコロケート領域は領域(1014)となる。従って、探索範囲は、領域(1016)-(1018)、及び既に再構成された領域(1019)の部分を含むことができる。探索範囲は、さらに、探索範囲のサイズがCTBサイズ内となるように、先行再構成CTB(1010)を除外する。
【0114】
上の説明において、参照ブロックは、先行再構成CTB(1010)又は現在CTB(1015)の中にあることができる。
【0115】
一実施形態において、探索範囲は、以下のように規定され得る。一例において、現在ピクチャはルマピクチャであり、現在CTBは、複数のルマサンプルを含むルマCTBであり、BV(mvL)はビットストリーム適合についての以下の制約を満たす。一例において、BV(mvL)は、分数解像度(例えば、1/16ペル解像度)を持つ。
【0116】
制約は、現在ブロックに対する参照ブロックが既に再構成されているという第1の条件を含む。参照ブロックが長方形の形状を持つとき、参照ブロックの左上サンプル及び右下サンプルが再構成されているかを確かめるために隣接ブロック利用可能性検査プロセス(又は参照ブロック利用可能性検査プロセス)を実施することができる。参照ブロックの左上サンプル及び右下サンプルの両方が再構成されているとき、参照ブロックは再構成されていると決定される。
【0117】
例えば、参照ブロック利用可能性の導出プロセスが、(xCb,yCb)に設定される現在ブロックの左上サンプルの位置(xCurr,yCurr)及び参照ブロックの左上サンプルの位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))を入力として呼び出されるとき、出力は、参照ブロックの左上サンプルが再構成されているときにTRUEに等しく、ここで、ブロックベクトルmvLは、x成分mvL[0]及びy成分mvL[1]を持つ二次元ベクトルである。BV(mvL)が例えば1/16ペル解像度などの分数解像度を持つとき、x成分mvL[0]及びy成分mvL[1]は、それぞれmvL[0]>>4及びmvL[1]>>4によって示されるように整数解像度を持つようにシフトされる。
【0118】
同様に、ブロック利用可能性の導出プロセスが、(xCb,yCb)に設定される現在ブロックの左上サンプルの位置(xCurr,yCurr)及び参照ブロックの右下サンプルの位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)を入力として呼び出されるとき、出力は、参照ブロックの右下サンプルが再構成されているときにTRUEに等し。パラメータcbWidth及びcbHeightは、参照ブロックの幅及び高さを表す。
【0119】
制約はまた、次の第2の条件のうちの少なくとも一方を含むことができる:1)(mvL[0]>>4)+cbWidthの値が0以下であり、これは、参照ブロックが現在ブロックの左側にあり且つ現在ブロックと重ならないことを指し示す;2)(mvL[1]>>4)+cbHeightの値が0以下であり、これは、参照ブロックが現在ブロックの上にあり且つ現在ブロックと重ならないことを指し示す。
【0120】
制約はまた、次の第3の条件がブロックベクトルmvLによって満たされることを含むことができる:
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY (1)
(yCb+(mvL[1]>>4+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2Size (2)
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1 (3)
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY) (4)
ここで、パラメータCtbLog2SizeYはCTB幅をlog2形式で表す。例えば、CTB幅が128サンプルであるとき、CtbLog2SizeYは7である。式(1)-(2)は、参照ブロックを含むCTBが現在CTBと同じCTB行にあること(例えば、参照ブロックが先行再構成CTB(1010)内にあるときに、先行再構成CTB(1010)が現在CTB(1015)と同じ行にあること)を規定する。式(3)-(4)は、参照ブロックを含むCTBが現在CTBの左のCTB列又は現在CTBと同じCTB列のいずれかにあることを規定する。式(1)-(4)によって記述される第3の条件は、参照ブロックを含むCTBが、
図10を参照しての説明と同様に、例えば現在CTB(1015)などの現在CTB、又は例えば先行再構成CTB(1010)などの、現在CTBの左に隣接するもの、のいずれかであることを規定する。
【0121】
制約は更に、次の第4の条件を含むことができる:参照ブロックが現在CTBの左に隣接するものの中にあるとき、参照ブロックに対するコロケート領域は再構成されていない(すなわち、コロケート領域内のいずれのサンプルも再構成されていない)。さらに、参照ブロックに対するコロケート領域は現在CTB内にある。
図10の例において、参照ブロック(1091)に対するコロケート領域は、参照ブロック(1091)が位置する領域(1014)からCTB幅だけオフセットされた領域(1019)であり、領域(1019)は再構成されていない。従って、ブロックベクトル(1020)及び参照ブロック(1091)は、上述の第4の条件を満たす。
【0122】
一例において、第4の条件は以下のように規定され得る:(xCb+(mvL[0]>>4))>>CtbLog2SizeYが(xCb>>CtbLog2SizeY)-1に等しいとき、参照ブロック利用可能性の導出プロセスが、(xCb,yCb)に設定される現在ブロックの位置(xCurr,yCurr)及び位置(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))を入力として呼び出され、出力は、例えば
図10に示すように、コロケート領域が再構成されていないことを指し示すFALSEに等しい。
【0123】
探索範囲及び/又はブロックベクトルに対する制約は、上述の第1、第2、第3、及び第4の条件の好適な組み合わせを含むことができる。一例において、制約は、例えば
図10に示すように、第1、第2、第3、及び第4の条件を含む。一例において、第1、第2、第3、及び/又は第4の条件は変更されることができ、制約は、変更された第1、第2、第3、及び/又は第4の条件を含む。
【0124】
第4の条件によれば、コーディングブロック(1022)-(1029)のうちの1つが現在ブロックであるとき、参照ブロックは領域(1011)内にあることはできず、故に、コーディングブロック(1022)-(1029)のうちの上記1つに対する探索範囲は領域(1011)を除外する。領域(1011)を除外する理由は、次のように規定される:参照ブロックが領域(1011)内にある場合、参照ブロックに対するコロケート領域は領域(1016)であるが、少なくともコーディングブロック(1021)内のサンプルは再構成されており、従って、第4の条件に違反する。一方、例えば
図11の領域(1116)内のコーディングブロック(1121)のように、現在領域内で最初に再構成されるコーディングブロックについては、参照ブロックに対するコロケート領域(1116)がまだ再構成されていないので、第4の条件は、参照ブロックが領域(1111)内にあることを妨げない。
【0125】
図11は、本開示の一実施形態に従ったイントラブロックコピーの一例を示している。現在ピクチャ(1101)は、再構成中の現在CTB(1115)、及び現在CTB(1115)の左に隣接するものである先行再構成CTB(1110)を含んでいる。現在ピクチャ(1101)内のCTBは、CTBサイズ及びCTB幅を持つ。現在CTB(1115)は4つの領域(1116)-(1119)を含んでおり、現在領域(1116)が再構成中である。現在領域(1116)は、複数のコーディングブロック(1121)-(1129)を含む。同様に、先行再構成CTB(1110)は4つの領域(1111)-(1114)を含む。再構成中の現在ブロック(1121)は、現在領域(1116)内で最初に再構成されるものであり、コーディングブロック(1122)-(1129)は再構成されることになる。一例において、CTBサイズは128×128サンプルであり、領域(1111)-(1114)及び(1116)-(1119)の各々は64×64サンプルである。参照メモリサイズは、CTBサイズに等しく、128×128サンプルであり、従って、探索範囲は、参照メモリサイズによって限られるとき、3つの領域と追加領域の一部とを含む。
【0126】
図10を参照して説明したのと同様に、現在領域(1116)は、コロケート領域(すなわち、先行再構成CTB(1110)内の領域(1111))を持つ。上述の第4の条件によれば、現在ブロック(1121)に対する参照ブロックは領域(1111)内にあってもよく、従って、探索範囲は領域(1111)-(1114)を含むことができる。例えば、参照ブロックが領域(1111)内にある場合、参照ブロックのコロケート領域は領域(1116)であり、領域(1116)内のいずれのサンプルも、現在ブロック(1121)の再構成の前に再構成されていない。しかしながら、
図10及び第4の条件を参照して説明したように、例えば、コーディングブロック(1121)の再構成の後、領域(1111)は、もはや、コーディングブロック(1122)を再構成するための探索範囲に含めるのに利用可能でない。従って、参照メモリバッファの厳密な同期及びタイミング制御が使用されるべきであり、難題となり得る。
【0127】
一部の実施形態によれば、現在ブロックが現在CTBの現在領域内で最初に再構成されるものであるとき、探索範囲は、現在CTB及び先行再構成CTBが同じ現在ピクチャ内にある場合の先行再構成CTB内にある現在領域のコロケート領域を除外することができる。先行再構成CTB内のコロケート領域を除外する探索範囲内に参照ブロックがあるようにブロックベクトルを決定することができる。一実施形態において、探索範囲は、復号順でコロケート領域の後且つ現在ブロックの前に再構成されるコーディングブロックを含む。
【0128】
以下の説明において、CTBサイズは様々であることができ、最大CTBサイズは参照メモリサイズと同じに設定される。一例において、参照メモリサイズ又は最大CTBサイズは128×128サンプルである。これらの説明は、他の参照メモリサイズ又は最大CTBサイズに好適に適応され得る。
【0129】
一実施形態において、CTBサイズは参照メモリサイズに等しい。先行再構成CTBは現在CTBの左隣であり、コロケート領域の位置は、現在領域の位置からのCTB幅だけオフセットされ、探索範囲内のコーディングブロックは、現在CTB及び先行再構成CTBのうちの少なくとも一方の中にある。
【0130】
図12A-12Dは、本開示の一実施形態に従ったイントラブロックコピーの例を示している。
図12A-12Dを参照するに、現在ピクチャ(1201)は、再構成中の現在CTB(1215)、及び現在CTB(1215)の左に隣接するものである先行再構成CTB(1210)を含んでいる。現在ピクチャ(1201)内のCTBは、CTBサイズ及びCTB幅を持つ。現在CTB(1215)は4つの領域(1216)-(1219)を含む。同様に、先行再構成CTB(1210)は4つの領域(1211)-(1214)を含む。一実施形態において、CTBサイズは、最大CTBサイズであり、参照メモリサイズに等しい。一例において、CTBサイズ及び参照メモリサイズは128×128サンプルであり、従って、領域(1211)-(1214)及び(1216)-(1219)の各々は64×64サンプルのサイズを持つ。
【0131】
図12A-12Dに示す例において、現在CTB(1215)は、それぞれ領域(1216)-(1219)に対応する左上領域、右上領域、左下領域、及び右下領域を含んでいる。先行再構成CTB(1210)は、それぞれ領域(1211)-(1214)に対応する左上領域、右上領域、左下領域、及び右下領域を含んでいる。
【0132】
図12Aを参照するに、現在領域(1216)が再構成中である。現在領域(1216)は、複数のコーディングブロック(1221)-(1229)を含むことができる。現在領域(1216)は、先行再構成CTB(1210)内にコロケート領域すなわち領域(1211)を持つ。再構成すべきコーディングブロック(1221)-(1229)のうちの1つに対する探索範囲は、コロケート領域(1211)を除外することができる。探索範囲は、復号順でコロケート領域(1211)の後且つ現在領域(1216)の前に再構成される先行再構成CTB(1210)の領域(1212)-(1214)を含むことができる。
【0133】
図12Aを参照するに、コロケート領域(1211)の位置は、現在領域(1216)の位置から、例えば128サンプルなどのCTB幅だけオフセットされている。例えば、コロケート領域(1211)の位置は、現在領域(1216)の位置から128サンプルだけ左シフトされている。
【0134】
図12Aを再び参照するに、現在領域(1216)が現在CTB(1215)の左上領域であるとき、コロケート領域(1211)は先行再構成CTB(1210)の左上領域であり、探索領域は先行再構成CTBの左上領域を除外する。
【0135】
図12Bを参照するに、現在領域(1217)が再構成中である。現在領域(1217)は、複数のコーディングブロック(1241)-(1249)を含むことができる。現在領域(1217)は、コロケート領域(すなわち、先行再構成CTB(1210)内の領域(1212))を持つ。複数のコーディングブロック(1241)-(1249)のうちの1つに対する探索範囲は、コロケート領域(1212)を除外することができる。探索範囲は、先行再構成CTB(1210)の領域(1213)-(1214)と、コロケート領域(1212)の後且つ現在領域(1217)の前に再構成された現在CTB(1215)内の領域(1216)とを含む。探索範囲は、さらに、参照メモリサイズの制約(すなわち、1つのCTBのサイズ)のため、領域(1211)を除外する。同様に、コロケート領域(1212)の位置は、現在領域(1217)の位置から、例えば128サンプルなどのCTB幅だけオフセットされている。
【0136】
図12Bの例において、現在領域(1217)は現在CTB(1215)の右上領域であり、コロケート領域(1212)も先行再構成CTB(1210)の右上領域であり、探索領域は先行再構成CTB(1210)の右上領域を除外する。
【0137】
図12Cを参照するに、現在領域(1218)が再構成中である。現在領域(1218)は、複数のコーディングブロック(1261)-(1269)を含むことができる。現在領域(1218)は、先行再構成CTB(1210)内にコロケート領域(すなわち、領域(1213))を持つ。複数のコーディングブロック(1261)-(1269)のうちの1つに対する探索範囲は、コロケート領域(1213)を除外することができる。探索範囲は、先行再構成CTB(1210)の領域(1214)と、コロケート領域(1213)の後且つ現在領域(1218)の前に再構成された現在CTB(1215)内の領域(1216)-(1217)とを含む。同様に、探索範囲は、さらに、参照メモリサイズの制約のため、領域(1211)-(1212)を除外する。コロケート領域(1213)の位置は、現在領域(1218)の位置から、例えば128サンプルなどのCTB幅だけオフセットされている。
図12Cの例において、現在領域(1218)が現在CTB(1215)の左下領域であるとき、コロケート領域(1213)も先行再構成CTB(1210)の左下領域であり、探索領域は先行再構成CTB(1210)の左下領域を除外する。
【0138】
図12Dを参照するに、現在領域(1219)が再構成中である。現在領域(1219)は、複数のコーディングブロック(1281)-(1289)を含むことができる。現在領域(1219)は、先行再構成CTB(1210)内にコロケート領域(すなわち、領域(1214))を持つ。複数のコーディングブロック(1281)-(1289)のうちの1つに対する探索範囲は、コロケート領域(1214)を除外することができる。探索範囲は、復号順でコロケート領域(1214)の後且つ現在領域(1219)の前に再構成された現在CTB(1215)内の領域(1216)-(1218)を含む。探索範囲は、参照メモリサイズの制約のため、領域(1211)-(1213)を除外し、従って、探索範囲は先行再構成CTB(1210)を除外する。同様に、コロケート領域(1214)の位置は、現在領域(1219)の位置から、例えば128サンプルなどのCTB幅だけオフセットされている。
図12Dの例において、現在領域(1219)が現在CTB(1215)の右下領域であるとき、コロケート領域(1214)も先行再構成CTB(1210)の右下領域であり、探索領域は先行再構成CTB(1210)の右下領域を除外する。
【0139】
戻って
図2を参照するに、A0、A1、及びB0、B1、B2(それぞれ、202から206)と表記する5つの周辺サンプル(又は複数の位置)に関連するMVが、空間マージ候補として参照され得る。空間マージ候補に基づいて候補リスト(例えば、マージ候補リスト)を形成することができる。これらの位置から候補リストを形成することには任意の好適順序が用いられ得る。一例において、順序は、A0が最初、B2が最後として、A0、B0、B1、A1、及びB2とすることができる。一例において、順序は、A1が最初、B2が最後として、A1、B1、B0、A0、及びB2とすることができる。
【0140】
一部の実施形態によれば、現在ブロックに対する動きベクトル予測候補(HMVP候補とも呼ぶ)を提供するために、現在ブロック(例えば、コーディングブロック(CB)又は現在CU)に対して先行してコーディングされたブロックの動き情報を、履歴ベース動きベクトル予測(history-based motion vector prediction;HMVP)バッファ(例えば、テーブル)に格納することができる。HMVPバッファは、1つ以上のHMVP候補を含むことができ、符号化/復号プロセスの間、維持管理されることができる。一例において、HMVPバッファ内のHMVP候補は、先行してコーディングされたブロックの動き情報に対応する。HMVPバッファは、任意の好適なエンコーダ及び/又はデコーダで使用されることができる。マージ候補リストに、(1つ以上の)空間MVP及び(1つ以上の)TMVPの後ろに、(1つ以上の)HMVP候補を追加することができる。
【0141】
HMVPバッファは、新たなCTU(又は新たなCTB)行にとりかかるときにリセットされる(例えば、エンプティにされる)ことができる。非サブブロックのインターコーディングブロックが存在するとき、関連する動き情報を、新たなHMVP候補として、HMVPバッファの最後のエントリに追加することができる。
【0142】
例えばVTM3においてなどの一例において、HMVPバッファのバッファサイズ(Sによって表記する)は6に設定され、これは、最大6つのHMVP候補がHMVPバッファに追加され得ることを示す。一部の実施形態において、HMVPバッファは、先入れ先出し(FIFO)ルールで動作することができ、従って、HMVPバッファに最初に格納された動き情報(又はHMVP候補)が、例えばHMVPバッファが一杯のときに、HMVPバッファから最初に除去される。新たなHMVP候補をHMVPバッファに挿入するとき、同一又は類似のHMVP候補がHMVPバッファ内にあるかを決定するために先ず冗長性検査が適用されるというものである制約付きFIFOルールを利用することができる。同一又は類似のHMVP候補がHMVPバッファ内にあると決定された場合、その同一又は類似のHMVP候補をHMVPバッファから除去することができ、残りのHMVP候補をHMVPバッファ内で前方に移動させることができる。
【0143】
HMVP候補は、例えばマージモードにおいてなど、マージ候補リスト構築プロセスに使用されることができる。HMVPバッファ内の直近に格納された(1つ以上の)HMVP候補を順に検査し、マージ候補リストに、TMVP候補の後ろに挿入することができる。冗長性検査は、マージ候補リスト内にある空間又は時間マージ候補に関してHMVP候補に適用されることができる。これらの説明は、AMVP候補リストを構築するためにAMVPモードに好適に適応されることができる。
【0144】
冗長性検査処理の数を減らすために、以下の単純化を使用することができる:
(i)マージ候補リストを生成するのに使用されるHMVP候補の数が(N<=4)?M:(8-N)として設定され得る。Nは、マージ候補リスト内の既存候補の数を示し、Mは、HMVPバッファ内で利用可能なHMVP候補の数を示す。マージ候補リスト内の既存候補の数(N)が4以下であるとき、マージ候補リストを生成するのに使用されるHMVP候補の数はMに等しい。そうでない場合、マージ候補リストを生成するのに使用されるHMVP候補の数は(8-N)に等しい;
(ii)利用可能なマージ候補の総数が最大許容マージ候補数-1に達すると、HMVPバッファからのマージ候補リスト構築プロセスが終了される。
【0145】
IBCモードがインター予測モードとは別のモードとして動作するとき、IBCモード向けの単純化されたBV導出プロセスが使用され得る。履歴ベースブロックベクトル予測バッファ(HBVPバッファと呼ばれる)を使用してBV予測を行うことができる。HBVPバッファは、現在ピクチャ内の現在ブロック(例えば、CB又はCU)の先行してコーディングされたブロックのBV情報(例えば、BV)を格納するのに使用されることができる。一例において、HBVPバッファは、例えばHMVPバッファなどの他のバッファとは別個の履歴バッファである。HBVPバッファはテーブルとすることができる。
【0146】
HBVPバッファは、現在ブロックに対するBV予測子(BVP)候補(HBVP候補とも呼ばれる)を提供することができる。HBVPバッファ(例えば、テーブル)は、1つ以上のHBVP候補を含むことができ、符号化/復号プロセスの間、維持管理されることができる。一例において、HBVPバッファ内のHBVP候補は、現在ピクチャ内の先行してコーディングされたブロックのBV情報に対応する。HBVPバッファは、任意の好適なエンコーダ及び/又はデコーダで使用されることができる。(1つ以上の)HBVP候補を、BV予測向けに構成されたマージ候補リストに、現在ブロックの(1つ以上の)空間隣接ブロックのBVの後ろに追加することができる。BV予測向けに構成されたマージ候補リストは、マージBV予測モード及び/又は非マージBV予測モードに使用されることができる。
【0147】
HBVPバッファは、新たなCTU(又は新たなCTB)行にとりかかるときにリセットされる(例えば、エンプティにされる)ことができる。
【0148】
例えばVVCにおいてなどの一例において、HBVPバッファのバッファサイズは6に設定され、これは、最大6つのHBVP候補がHBVPバッファに追加され得ることを示す。一部の実施形態において、HBVPバッファは、FIFOルールで動作することができ、従って、HBVPバッファに最初に格納されたBV情報(又はHBVP候補)が、例えばHBVPバッファが一杯のときに、HBVPバッファから最初に除去される。新たなHBVP候補をHBVPバッファに挿入するとき、同一又は類似のHBVP候補がHBVPバッファ内にあるかを決定するために先ず冗長性検査が適用されるというものである制約付きFIFOルールを利用することができる。同一又は類似のHBVP候補がHBVPバッファ内にあると決定された場合、その同一又は類似のHBVP候補をHBVPバッファから除去することができ、残りのHBVP候補をHBVPバッファ内で前方に移動させることができる。
【0149】
HBVP候補は、例えばマージBV予測モードにおいてなど、マージ候補リスト構築プロセスに使用されることができる。HBVPバッファ内の直近に格納された(1つ以上の)HBVP候補を順に検査し、マージ候補リストに、(1つ以上の)空間候補の後ろに挿入することができる。冗長性検査は、マージ候補リスト内にある空間マージ候補に関してHBVP候補に適用されることができる。
【0150】
一実施形態において、HBVPバッファは、IBCモードでコーディングされた1つ以上の先行してコーディングされたブロックの1つ以上のBV情報を格納するために構築される。上記1つ以上のBV情報は、IBCモードでコーディングされた上記1つ以上の先行してコーディングされたブロックの1つ以上のBVを含むことができる。さらに、上記1つ以上のBV情報の各々は、IBCモードでコーディングされたそれぞれの先行してコーディングされたブロックの例えばブロックサイズ、ブロック位置、及び/又はこれらに類するものなどのサイド情報(又は追加情報)を含むことができる。
【0151】
現在ブロックに対するクラスベースの履歴ベースブロックベクトル予測(CBVPとも呼ばれる)では、一定の条件を満たすHBVPバッファ内の1つ以上のBV情報を、対応するカテゴリ(クラスとも呼ばれる)に分類し、故に、CBVPバッファを形成することができる。一例において、HBVPバッファ内の各BV情報は、例えばIBCモードでコーディングされた、それぞれの先行してコーディングされたブロックに関するものである。先行してコーディングされたブロックに関するBV情報は、BV、ブロックサイズ、ブロック位置、及び/又はこれらに類するものを含むことができる。先行してコーディングされたブロックは、ブロック幅、ブロック高さ、及びブロック面積を持つ。ブロック面積は、ブロック幅とブロック高さとを掛け合わせたものとすることができる。一例において、ブロックサイズはブロック面積で表される。先行してコーディングされたブロックのブロック位置は、先行してコーディングされたブロックの左上隅(例えば、4×4の領域の左上隅)又は左上サンプルによって表されることができる。
【0152】
図13は、本開示の一実施形態に従った、現在ブロック(例えば、CB、CU)(1310)に対するIBC BV予測の空間クラスの一例を示している。左領域(1302)は、現在ブロック(1310)の左にあるとすることができる。左領域(1302)内のそれぞれのブロック位置を持つ先行してコーディングされたブロックに関するBV情報を、左候補又は左BV候補と呼ぶことができる。上領域(1303)は、現在ブロック(1310)の上にあるとすることができる。上領域(1303)内のそれぞれのブロック位置を持つ先行してコーディングされたブロックに関するBV情報を、上候補又は上BV候補と呼ぶことができる。左上領域(1304)は、現在ブロック(1310)の左上にあるとすることができる。左上領域(1304)内のそれぞれのブロック位置を持つ先行してコーディングされたブロックに関するBV情報を、左上候補又は左上BV候補と呼ぶことができる。右上領域(1305)は、現在ブロック(1310)の右上にあるとすることができる。右上領域(1305)内のそれぞれのブロック位置を持つ先行してコーディングされたブロックに関するBV情報を、右上候補又は右上BV候補と呼ぶことができる。左下領域(1306)は、現在ブロック(1310)の左下にあるとすることができる。左下領域(1306)内のそれぞれのブロック位置を持つ先行してコーディングされたブロックに関するBV情報を、左下候補又は左下BV候補と呼ぶことができる。他の種類の空間クラスも規定してCBVPバッファに使用することができる。
【0153】
先行してコーディングされたブロックに関するBV情報が以下の条件を満たす場合、そのBV情報を対応するカテゴリ(又はクラス)に分類することができる:
(i)クラス0:ブロックサイズ(例えば、ブロック面積)が閾値(例えば、64ピクセル)以上である;
(ii)クラス1:そのBVの生起(又は頻度)が2以上である。BVの生起は、(1つ以上の)先行してコーディングされたブロックを予測するのにそのBVが用いられる回数を指すことができる。CBVPバッファを形成するために剪定(プルーニング)プロセスが使用される場合、先行してコーディングされたブロックを予測する際にそのBVが複数回使用されるとき、そのBVは(同じBVを持つ複数のエントリに代えて)1つのエントリに格納されることができる。BVの生起は記録されることができる;
(iii)クラス2:先行してコーディングされたブロックの部分(例えば、4×4領域の左上隅)が現在ブロック(1310)の左にあって、ブロック位置が左領域(1302)内にある。先行してコーディングされたブロックは左領域(1302)内にあることができる。あるいは、先行してコーディングされたブロックは、ブロック位置が左領域(1302)内にあって、左領域(1302)を含む複数の領域に跨っていてもよい;
(iv)クラス3:先行してコーディングされたブロックの部分(例えば、4×4領域の左上隅)が現在ブロック(1310)の上にあって、ブロック位置が上領域(1303)内にある。先行してコーディングされたブロックは上領域(1303)内にあることができる。あるいは、先行してコーディングされたブロックは、ブロック位置が上領域(1303)内にあって、上領域(1303)を含む複数の領域に跨っていてもよい;
(v)クラス4:先行してコーディングされたブロックの部分(例えば、4×4領域の左上隅)が現在ブロック(1310)の左上の側にあって、ブロック位置が左上領域(1304)内にある。先行してコーディングされたブロックは左上領域(1304)内にあることができる。あるいは、先行してコーディングされたブロックは、ブロック位置が左上領域(1304)内にあって、左上領域(1304)を含む複数の領域に跨っていてもよい;
(vi)クラス5:先行してコーディングされたブロックの部分(例えば、4×4領域の左上隅)が現在ブロック(1310)の右上の側にあって、ブロック位置が右上領域(1305)内にある。先行してコーディングされたブロックは右上領域(1305)内にあることができる。あるいは、先行してコーディングされたブロックは、ブロック位置が右上領域(1305)内にあって、右上領域(1305)を含む複数の領域に跨っていてもよい;
(vii)クラス6:コーディングされたブロックの部分(例えば、4×4領域の左上隅)が現在ブロック(1310)の左下の側にあって、ブロック位置が左下領域(1306)内にある。先行してコーディングされたブロックは左下領域(1306)内にあることができる。あるいは、先行してコーディングされたブロックは、ブロック位置が左下領域(1306)内にあって、左下領域(1306)を含む複数の領域に跨っていてもよい。
【0154】
各カテゴリ(又はクラス)について、直近にコーディングされたブロックのBVをBVP候補として導出することができる。CBVPバッファは、クラス0からクラス6の順に各カテゴリの(1つ以上の)BV予測子を付け足すことによって構築されることができる。CBVPについての上の説明は、より少ないクラス又は上述されていない追加のクラスを含むように好適に適応されることができる。クラス0-6のうちの1つ以上を変更してもよい。一例において、HBVPバッファ内の各エントリが、7つのクラス0-6のうちの1つに分類される。クラス0-6のうちのどれが選択されたかを指し示すためにインデックスをシグナリングすることができる。デコーダ側で、選択されたクラスの最初のエントリを用いて、現在ブロックに対するBVを予測することができる。
【0155】
図14は、本開示の一実施形態に従ったストリングコピーモードの一例を示している。ストリングコピーモードは、ストリングマッチングモード又はイントラストリングコピーモードとも呼ばれ得る。現在ピクチャ(1410)は、再構成済みの領域(灰色の領域)(1420)と、再構成中の領域(1421)とを含んでいる。領域(1421)内の現在ブロック(1435)が再構成中である。現在ブロック(1435)は、CB、CU、又はこれらに類するものとすることができる。現在ブロック(1435)は、複数のストリング(例えば、ストリング(1430)及び(1431))を含むことができる。一例において、現在ブロック(1435)は、1つのストリングが走査順に沿って次のストリングに続かれた複数の連続するストリングに分割される。走査順は、例えばラスタ走査順、横断走査順、又はこれらに類するものなどの任意の好適な走査順とし得る。
【0156】
再構成済みの領域(1420)は、ストリング(1430)及び(1431)を再構成するための参照領域として使用されることができる。
【0157】
複数のストリングの各々について、ストリングオフセットベクトル(SVと呼ぶ)及びストリングの長さ(ストリング長と呼ぶ)をシグナリングすることができる。SV(例えば、SV0)は、再構成すべきストリング(例えば、ストリング(1430))と、既に再構成された参照領域(1420)内に位置するそれぞれの参照ストリング(例えば、参照ストリング(1400))との間の変位を指し示す変位ベクトルとすることができる。参照ストリングは、再構成すべきストリングを再構成するのに使用されることができる。従って、SVは、対応する参照ストリングが参照領域(1420)内のどこに位置するかを指し示すことができる。ストリング長も参照ストリングの長さを示すことができる。
図14を参照するに、現在ブロック(1435)は、64サンプルを含む8×8のCBであり、ラスタ走査順を用いて2つのストリング(例えば、ストリング(1430)及び(1431))に分割されている。ストリング(1430)は、現在ブロック(1435)の最初の29サンプルを含み、ストリング(1431)は、現在ブロック(1435)の残りの35サンプルを含んでいる。ストリング(1430)を再構成するのに使用される参照ストリング(1400)は、対応するストリングベクトルSV0によって指し示されることができ、ストリング(1431)を再構成するのに使用される参照ストリング(1401)は、対応するストリングベクトルSV1によって指し示されることができる。
【0158】
一般に、ストリングサイズは、ストリングの長さ又はストリング内のサンプルの数を指すことができる。
図14を参照するに、ストリング(1430)は29サンプルを含んでおり、従って、ストリング(1430)のストリングサイズは29である。ストリング(1431)は35サンプルを含んでおり、従って、ストリング(1431)のストリングサイズは35である。ストリング位置(又はストリングポジション)は、ストリング内のあるサンプル(例えば、復号順で最初のサンプル)のサンプル位置によって表されることができる。
【0159】
上の説明は、任意の好適数のストリングを含む現在ブロックを再構成するように好適に適応されることができる。あるいは、一例において、現在ブロック内のサンプルが参照領域内に一致するサンプルを持たないとき、エスケープサンプルがシグナリングされ、参照領域内の再構成済みのサンプルを参照することなくエスケープサンプルの値を直接的にコーディングすることができる。
【0160】
本開示において、ベクトル予測は、IBCモードでのBV予測及び/又はストリングコピーモードでのSV予測を含むことができる。ベクトル予測は、スキップモードベクトル予測、マージモード(又は直接モード)ベクトル予測、及び/又は差分コーディングを用いたベクトル予測を含むことができる。スキップモードベクトル予測及びマージモードベクトル予測において、ベクトル(例えば、BV、SV)は、差分コーディングを用いることなく直接的に予測子(又は例えばBV予測子、SV予測子などのベクトル予測子)から復元されることができる。例えば、BV予測のためのマージモードベクトル予測はマージBV予測モードであり、BVはBV予測子に等しいとすることができる。同様に、SV予測のためのマージモードベクトル予測はマージSV予測モードであり、SVはSV予測子に等しいとすることができる。BV予測のために差分コーディングを用いるベクトル予測は、明示モード及び/又は非マージBV予測モードとすることができる。
【0161】
本開示の態様によれば、履歴ベースSV予測バッファ(HSVPバッファと呼ばれる)を用いてSV予測を実行することができる。HSVPバッファは、現在ピクチャのストリングコピーモードでコーディングされた1つ以上の先行してコーディングされたストリングの1つ以上の先行SV情報(例えば、SV)を格納するように構成されることができる。HSVPバッファは、現在ピクチャの現在ブロック内の現在ストリングを予測するのに使用されることができる。一例において、ストリングコピーモードでコーディングされた上記1つ以上の先行してコーディングされたストリングは、現在ブロックの前に復号される。上記1つ以上の先行SV情報は、上記1つ以上の先行してコーディングされたストリングの1つ以上の先行SVを含むことができる。さらに、上記1つ以上の先行SV情報の各々は、それぞれの上記先行してコーディングされたストリングの例えばストリングサイズ、ストリング位置、及び/又はこれらに類するものなどの先行サイド情報(又は追加情報)を含むことができる。HSVPバッファ内の上記1つ以上の先行SV情報は、現在ストリングに対するSV予測(SVP)候補又はHSVP候補を含むことができる。HSVPバッファ(例えば、テーブル)は、符号化/復号プロセスの間、維持管理されることができる。HSVPバッファは、任意の好適なエンコーダ及び/又はデコーダで使用されることができる。
【0162】
本開示の態様によれば、HSVPバッファは、例えば復号順、復号順の逆、又は所定の順序などの好適順序で1つ以上の先行SV情報を格納する別個の履歴バッファとすることができる。HSVPバッファ内のエントリ(例えば、1つ以上の先行SV情報)は、ストリングコピーモードで再構成される現在ストリングを予測するのに使用されることができる。一例において、HSVPバッファは、例えばHMVPバッファ、HBVPバッファ、及びこれらに類するものなどの(1つ以上の)他の履歴バッファとは別個である。
【0163】
新たなエントリ(例えば、新たなSV情報)をHSVPバッファに追加すべきかを決定するために、該新たなSV情報をHSVPバッファ内の既存エントリ(例えば、1つ以上の先行SV情報)と比較することができる。一例において、新たなSV情報をHSVPバッファ内の既存エントリの各々と比較することができる。新たなSV情報が唯一無二であると決定されたとき、該新たなSV情報をHSVPバッファに追加(例えば、格納)することができる。新たなSV情報の唯一無二性(例えば、新たなSV情報がHSVP内の既存エントリと異なるか)は別途決定されることができる。新たなSV情報の唯一無二性は、該新たなSV情報の新たなSVと、上記1つ以上の先行SV情報の1つ以上の先行SVとに基づいて決定されることができる。
【0164】
一例において、新たなSVと上記1つ以上の先行SVの各々との間のそれぞれのベクトル差(又はSV差)が条件を満たす(例えば、それぞれのベクトル差が閾値よりも大きい)場合、その新たなSV情報は唯一無二である又は上記1つ以上のSV情報とは異なると決定される。
【0165】
一例において、ベクトル差が条件を満たさない(例えば、ベクトル差が閾値よりも大きくない)場合、さらに、その新たなSV情報の新たなサイド情報(例えば、新たなストリングサイズ)が、上記1つ以上の先行SV情報の先行サイド情報と比較される。例えば、新たなストリングサイズが、上記1つ以上の先行SV情報の各ストリングサイズと比較される。新たなストリングサイズと上記1つ以上の先行SV情報の各ストリングサイズとの間のストリングサイズ差がサイズ条件を満たす(例えば、ストリングサイズ差がサイズ閾値よりも大きい)場合、その新たなストリングサイズは上記1つ以上の先行SV情報の(1つ以上の)ストリングサイズとは異なると決定される。従って、その新たなSV情報は、上記1つ以上のSV情報とは異なると決定される。
【0166】
新たなSV情報がHSVPバッファ内の既存エントリの各々と異なる場合、該新たなSV情報は唯一無二であると決定されることができる。あるいは、新たなエントリをHSVPバッファに追加すべきかを決定するために、新たなSV情報を、HSVPバッファ内の既存エントリのサブセット(例えば、上記1つ以上の先行SV情報のサブセット)と、上述したのと同様に比較することができる。例えば、既存エントリのサブセットは、N1をHSVPバッファ内のエントリの数より小さい正の整数として、HSVPバッファ内の最初のN1個のエントリを含む。新たなSV情報が唯一無二であると決定された場合、上述のように、該新たなSV情報をHSVPバッファに格納することができる。
【0167】
一部の例において、新たなSV情報がHSVPバッファに格納されるとき、HSVPバッファ内の既存エントリのうちの1つが除去される。
【0168】
HSVPバッファは、新たなCTU(又は新たなCTB)行にとりかかるときにリセットされる(例えば、エンプティにされる)ことができる。
【0169】
CBVPと同様に、クラスベースの履歴ベースストリングベクトル予測(CSVP)を、例えば現在ストリングを予測するために構築することができる。CSVPでは、一定の条件を満たすHSVPバッファ内の1つ以上の先行SV情報を、対応するカテゴリ(又はクラス)に分類し、故に、CSVPバッファを形成することができる。一例において、HSVPバッファ内の先行SV情報の各々は、現在ブロックの前に復号される先行してコーディングされたストリングに関するものである。先行してコーディングされたストリングに関する先行SV情報は、SV、ストリングサイズ、ストリング位置、及び/又はこれらに類するものを含むことができる。
【0170】
CBVPバッファを参照して上述したのと同様に、例えばストリングサイズ、SVの生起、ストリング位置、及びこれらに類するもののうちの1つ以上に基づいて、複数のカテゴリ又はクラスを構築することができる。一例において、上記複数のカテゴリは、ストリングのサイズ及びSVの生起のうちの1つ以上に基づいて構築される。複数のクラスからSV予測子を選択するため、特定のクラス内の最初のエントリを指すためのインデックスを使用することができる。
【0171】
開示の態様によれば、先行してコーディングされたストリングに関する先行SV情報が以下の条件を満たす場合に、先行SV情報を対応するカテゴリ(又はクラス)に分類することができる:
(i)クラス0:ストリングサイズが閾値以上である;
(ii)クラス1:SVの生起(又は頻度)が2以上である。SVの生起は、(1つ以上の)先行してコーディングされたストリングを予測するのにそのSVが用いられる回数を指す。CSVPバッファを形成するために剪定(プルーニング)プロセスが使用される場合、先行してコーディングされたストリングを予測する際にそのSVが複数回使用されるとき、そのSVは(同じSVを持つ複数のエントリに代えて)1つのエントリに格納されることができる。一例において、SVの生起は記録される。
【0172】
CSVPバッファは、クラス0からクラス6の順に各カテゴリの(1つ以上の)SV予測子を付け足すことによって構築されることができる。上述のように、複数のクラスからSV予測子を選択するため、特定のクラス内の最初のエントリを指すためのインデックスを使用することができる。一部の例において、該インデックスがシグナリングされるとき、SV予測子は現在ストリングに対するSVであると決定されることができる。そうでなく、インデックスがシグナリングされないとき、現在ストリングのSVを直接的にコーディングすることができる。
【0173】
本開示の態様によれば、現在ピクチャの現在ブロックに対するコーディング情報を復号することができる。コーディング情報は、現在ブロックに対するコーディングモードがIBCモード及びストリングコピーモードのうちの一方であることを指し示すことができる。
【0174】
現在ピクチャ内の、先行して復号された、サンプルのユニットのベクトル情報を格納するように履歴バッファを構成することができる。一例において、先行して復号された、サンプルのユニットは、IBCモードで先行して復号されたブロック及び/又はストリングコピーモードで先行して復号されたストリングを含む。先行して復号された、サンプルのユニットは、現在ブロックの前に復号されることができる。ベクトル情報は履歴バッファのエントリとして含められることができる。ベクトル情報の各々が、先行して復号されたサンプルのユニットのうちの対応する1つを予測するのに使用されるベクトル(例えば、BV、SV)を含むことができる。一部の例において、ベクトル情報の各々は更に、先行して復号されたサンプルのユニットのうちの上記1つの追加情報(又はサイド情報)、例えば、先行して復号されたサンプルのユニットのうちの上記1つのユニットサイズ、ユニット位置などを含む。先行して復号されたサンプルのユニットの各々は、ブロック(例えば、CB)又はストリングとすることができる。
【0175】
現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報は、現在ブロックに対するコーディングモードに基づいて決定されることができる。一例において、現在ベクトル情報は、現在ブロックに対するコーディングモードと履歴バッファとに基づいて決定される。現在ベクトル情報は、現在ユニットのサンプルを予測するのに使用される現在ベクトルを含むことができる。現在ブロックのコーディングモードがIBCモードである場合、現在ベクトルは現在ブロックに対する現在BVである。コーディングモードがストリングコピーモードである場合、現在ベクトルは現在ブロック内の現在ストリングに対する現在SVである。現在ユニットのサンプルは、例えば現在ベクトルを含む現在ベクトル情報に基づいて再構成されることができる。
【0176】
本開示の態様によれば、履歴バッファは、先行してコーディングされた(1つ以上の)ブロックに対する(1つ以上の)HBVP候補及び先行してコーディングされた(1つ以上の)ストリングに対する(1つ以上の)HSVP候補を格納するためのジョイントバッファとすることができる。(1つ以上の)HSVP候補(例えば、(1つ以上の)SV)及び(1つ以上の)HBVP候補(例えば、(1つ以上の)BV)は、例えば復号順、復号順の逆、又は所定の順序などの好適順序で履歴バッファに格納されることができる。履歴バッファ内のエントリは、例えば、コーディングモードがストリングコピーモードである場合の現在SV、又はコーディングモードがIBCモードである場合の現在BVなどの、現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報を予測するのに使用されることができる。
【0177】
一実施形態において、現在ブロックに対するコーディングモードはIBCモードであり、現在ユニットのサンプルは現在ブロックである。従って、現在ブロックに対するBV予測子候補リストを、少なくとも履歴バッファ内のベクトル情報に基づいて決定することができ、現在BVを、現在ベクトル情報が現在BVを含むBV予測子候補リストに基づいて決定することができる。BV予測子候補リストは、履歴バッファ内の(1つ以上の)BV及び/又は(1つ以上の)SVを含むことができる。BV予測子候補リストは更に、現在ブロックの(1つ以上の)空間候補を含むことができる。
【0178】
現在ブロックがマージBV予測モード又はスキップモードベクトル予測を用いて予測されるとき、現在BVはBV予測子候補リストから予測される。例えば、現在BVは、履歴バッファ内の(1つ以上の)BV及び(1つ以上の)SVのうちの1つである。現在ブロックが非マージBV予測モードを用いて予測されるとき、現在BVは、BV予測子候補リスト、及び現在BVとBV予測子候補リスト内のBV候補(例えば、履歴バッファ内の(1つ以上の)BV及び(1つ以上の)SVのうちの1つ)との間のベクトル差から予測される。
【0179】
一実施形態において、現在ブロックに対するコーディングモードはストリングコピーモードである。従って、現在ユニットのサンプルは現在ブロック内の現在ストリングであり、現在SVは現在ストリングに対するものである。現在ストリングに対する現在SVは、履歴バッファ内のベクトル情報から決定されることができる。履歴バッファ内のエントリ(例えば、ベクトル情報のうちの1つ)を指すためにインデックス(例えば、フラグ)をシグナリングすることができる。エントリが、IBCモードで先行して復号されたブロックに対するものである場合、現在ストリングに対する現在SVは、IBCモードで先行して復号されたブロックを予測するのに使用されたBVである。エントリが、ストリングコピーモードで先行して復号されたストリングに対するものである場合、現在ストリングに対する現在SVは、ストリングコピーモードで先行して復号されたストリングを予測するのに使用されたSVである。あるいは、現在ストリングに対する現在SVは、直接的にコーディングされることができ、従って、現在SVを予測するために履歴バッファ内のどのエントリを使用すべきかを指し示すインデックスがシグナリングされないときに、例えばコーディング情報から、直接的に決定されることができる。
【0180】
本開示の態様によれば、現在ベクトル情報を履歴バッファに追加すべきかを、現在ベクトル情報と、履歴バッファ内のベクトル情報のうちの1つ以上とに基づいて決定することができる。現在ベクトル情報がベクトル情報のうちの上記1つ以上と異なるとき、現在ベクトル情報を履歴バッファに格納することができる。現在ベクトル情報がベクトル情報のうちの上記1つ以上と異なるとき、現在ベクトル情報は唯一無二であるとみなされる。ベクトル情報のうちの上記1つ以上は、(i)履歴バッファ内のベクトル情報のサブセット(例えば、最初のN2個のエントリ)、又は(ii)履歴バッファ内のベクトル情報を含むことができる。N2は、履歴バッファ内のベクトル情報における情報の数よりも小さい正の整数とすることができる。
【0181】
現在ベクトル情報の唯一無二性は、現在ベクトルと、履歴バッファ内のベクトル情報のうちの上記1つ以上のそれぞれのベクトル(例えば、SV及び/又はBV)との間のベクトル差に基づいて決定されることができる。一例において、ベクトル情報のうちの上記1つ以上の各々は、BV又はSVである先行ベクトルを含む。現在ベクトルと履歴バッファ内のベクトル情報のうちの上記1つ以上の各先行ベクトルとの間の差(ベクトル差とも呼ぶ)が条件を満たす(例えば、差が所定の閾値よりも大きい)場合、その現在ベクトル情報は唯一無二である又はベクトル情報のうちの上記1つ以上と異なると決定されることができる。従って、その現在ベクトル情報を履歴バッファに格納することができる。そうでなく、現在ベクトルとベクトル情報のうちの上記1つ以上のうち1つの先行ベクトルとの間の差が条件を満たさない(例えば、差が所定の閾値よりも大きくない)場合、その現在ベクトル情報は、ベクトル情報のうちの上記1つ以上のうち上記1つと異なるものではないと決定されることができる、従って、その現在ベクトル情報は唯一無二でない。一例において、唯一無二でない現在ベクトル情報は履歴バッファに格納されない。一例において、ベクトル情報のうちの上記1つ以上のうち上記1つの先行ベクトルの生起が1だけ増加され、生起が記録される。
【0182】
現在のベクトル情報は、例えば現在ユニットのサンプルの現在ユニットサイズ、現在ユニット位置、及び/又はこれらに類するものなどの、追加の現在情報を含むことができる。現在ユニットサイズは、現在ユニットのサンプルのサンプル数を示すことができる。履歴バッファ内のベクトル情報の上記1つ以上は、現在ピクチャ内の先行して復号されたサンプルのユニットのうちの対応する1つ以上のユニットの、例えば先行ユニットサイズ、先行ユニット位置などの、追加の先行情報を含むことができる。各先行ユニットサイズは、それぞれの先行して復号されたユニットのサンプルのサンプル数を示すことができる。
【0183】
一実施形態において、現在ベクトル情報の唯一無二性は、現在ユニットのサンプルの上記追加の現在情報と、先行して復号されたサンプルのユニットのうちの上記1つ以上の上記追加の先行情報とに基づいて決定されることができる。例えば、現在ユニットサイズと、ベクトル情報のうちの上記1つ以上のそれぞれの先行ユニットサイズ各々と、の間のサイズ差が、所定のサイズ閾値よりも大きい場合、その現在ベクトル情報は、ベクトル情報のうちの上記1つ以上とは異なると決定される。
【0184】
一実施形態において、現在ベクトルとベクトル情報のうちの上記1つ以上のそれぞれの先行ベクトル(例えば、SV及び/又はBV)との間のベクトル差に加えて、現在ベクトル情報の唯一無二性は、現在ユニットのサンプルの前記追加の現在情報と、先行して復号されたサンプルのユニットのうちの上記1つ以上の上記追加の先行情報と、に更に基づいて決定されることができる。例えば、現在ベクトルと履歴バッファ内のベクトル情報のうちの上記1つのうち1つの先行ベクトルとの間の差が所定の閾値よりも大きくないとき、その現在ベクトル情報は、現在ユニットサイズとベクトル情報のうちの上記1つ以上のそれぞれの先行ユニットサイズ各々との間のサイズ差が所定のサイズ閾値よりも大きいならば、ベクトル情報のうちの上記1つ以上とは異なると決定される。さらに、その現在ベクトル情報を履歴バッファに格納することができ、ベクトル情報のうちの上記1つ以上ののうち上記1つを履歴バッファから除去することができる。あるいは、その現在ベクトル情報で、履歴バッファ内のベクトル情報のうちの上記1つ以上のうち上記1つを置き換えることができる。一例において、ベクトル情報のうちの上記1つ以上のうち上記1つの先行ベクトルの生起が1だけ増加され、その生起が、その現在ベクトル情報の現在ベクトルの生起として記録される。
【0185】
本開示の一態様によれば、履歴バッファ内のベクトル情報は、対応する先行して復号されたユニットのサンプルの、先行ベクトル、先行ユニットサイズ、及び先行ユニット位置を含むことができる。従って、ベクトル情報の各々は、以下に限定されないが、先行ベクトルの生起、先行ユニットサイズ、先行ユニット位置、及び/又はこれらに類するものに基づいて、複数のカテゴリ(又はクラス)のうちの1つに分類されることができる。先行ベクトルの生起は、1つ以上の先行して復号されたユニットのサンプルを予測するのにその先行ベクトルが用いられた回数を指すことができる。一例において、2つの先行して復号されたユニットのサンプルを予測するのに同一の先行ベクトルが使用され、従って、ベクトル情報のうちの対応する1つは、直近に復号されたユニットのサンプルの先行ベクトル、先行ユニットサイズ、及び先行ユニット位置を含む。その先行ベクトルの生起は2である。一例において、ベクトル情報の各々は、先行ベクトルの生起と先行ユニットサイズとに基づいて、複数のカテゴリのうちの1つに分類されることができる。従って、履歴バッファは、CBVP及びCSVPを参照して上述したものと同様のクラスベースの履歴バッファとすることができる。クラスベースの履歴バッファは、(1つ以上の)CBVP候補と(1つ以上の)CSVP候補とを含むジョイントバッファとすることができる。一例において、現在ブロックに対するコーディング情報は更にインデックス(例えば、フラグ)を含む。該インデックスによって複数のカテゴリのうちの1つが指し示され、現在ベクトル情報は、複数のカテゴリのうちの該1つ内のエントリ(例えば、最初のエントリ)であると決定されることができる。
【0186】
本開示の一態様によれば、履歴バッファ内のベクトル情報のうちの1つは、ストリングコピーモードで先行して復号されたストリングの、ストリングベクトルと、(i)ストリング位置及び(ii)ストリングサイズのうちの一方とを含むことができる。ストリング位置は、ストリングコピーモードで先行して復号されたストリング内の所定のサンプルの位置とすることができる。所定のサンプルは、走査順(例えば、復号順、復号順の逆、又はこれらに類するもの)で最初のサンプル、最後のサンプル、又は任意の好適なサンプルとし得る。ストリングサイズは、ストリングコピーモードで先行して復号されたストリング内のサンプルの数とすることができる。
【0187】
本開示の態様によれば、現在ブロックに対するコーディング情報を復号することができ、該コーディング情報は、現在ブロックがストリングコピーモードでコーディングされることを指し示し得る。一例において、現在ブロックは1つ以上のストリングを含む。
【0188】
コーディング情報に基づいて、現在ブロック内の現在ストリングのSV及びストリング長を決定することができる。一例において、現在ストリングは、上記1つ以上のストリングのうちの1つである。ストリング長は、ブロックサイズ(例えば、ブロック面積)は現在ブロック内のサンプルの数であるとして、例えば1から(ブロックサイズ-1)までの範囲内などの任意の好適な整数とすることができる。ブロックサイズは、ブロック幅にブロック高さを乗じたものに等しいとし得る。本開示の一態様によれば、ストリング長は、正の整数L、又はLの倍数とすることができ、例えば、ストリング長はN3×Lに等しい。N3は正の整数であり、Lは1より大きい。一例において、Lは、現在ブロックのブロックサイズを2で割ったもの以下である。例えば、ストリング長は、L、2L、又は3Lなどとすることができる。Lが4である場合、ストリング長は4、8、又は12などである。
【0189】
現在ストリングのSV及びストリング長に基づいて現在ストリングを再構成することができる。
【0190】
一例において、現在ブロックはルマブロックであり、Lは4又は4ルマサンプルである。
【0191】
一例において、現在ブロックはクロマブロックである。クロマサブサンプリングフォーマットは、クロマブロックが、対応するルマブロックの半分の高さ及び半分の幅を持つことを指し示す4:2:0である。クロマブロックが対応するルマブロックと一緒にコーディングされる場合、Lは2又は2クロマサンプルである。クロマブロックが対応するルマブロックと別々にコーディングされる場合、Lは4又は4クロマサンプルである。
【0192】
一例において、現在ブロックは更に、上記1つ以上のストリングの外側にエスケープサンプルを含む。エスケープサンプルは、対応する(1つ以上の)SVによって示される(1つ以上の)参照ストリングを用いて予測されない。エスケープサンプルは、直接復号されることができる。エスケープサンプルの数はL、又はLの倍数とし得る。一例において、現在ブロックの同一行内のエスケープサンプルの数は、例えばL又は2Lなど、L又はLの倍数である。
【0193】
本開示の態様によれば、コーディング情報は更に、ストリング長を示すシンタックス要素(又は長さシンタックス要素)を含むことができる。現在ストリングの実際のストリング長(例えば、8サンプル)をコーディングする代わりに、長さシンタックス要素がストリング長をL(例えば、4)で割ったものに等しい符号化値(例えば、2)を持つようにコーディングすることができる。
【0194】
該シンタックス要素を復号した後、該シンタックス要素の符号化値(例えば、2)にLを乗算してストリング長(例えば、8)を復元することができる。
【0195】
該シンタックス要素の符号化値は、1から(M1/L-1)の範囲内の整数とすることができ、M1はブロックサイズ(例えば、現在ブロック内のサンプルの数)とすることができる。例えば、M1が256である場合、Lは4であり、従って、M1/Lは64であり、上記範囲は1から63である。従って、上記シンタックス要素の符号化値は、1,2,…,又は63であることができ、それぞれ、ストリング長が4,8,…,又は252であることを示す。従って、上記シンタックス要素の値を1又はLの倍数として符号化することにより、シンタックス要素の符号化値の範囲を、Lから(M1-L)の範囲から、1から(M1/L-1)の範囲に狭めることができる。例えば、M1が256であり且つLが4である場合、シンタックス要素の値の範囲を、4-252(4の刻み幅を持つ)から、1-63(1の刻み幅を持つ)に狭めることができ、故に、コーディング効率を高めることができる。
【0196】
SVをコーディングする際に、複数の解像度(又は複数の精度)を用いることができる。所定の一組の解像度からのどの解像度でSVがコーディングされるかを指し示すために、映像ビットストリーム内でシンタックス要素(例えば、解像度シンタックス要素、インジケータなど)をシグナリングすることができる。一例において、SVに使用される解像度を示す解像度シンタックス要素は、コーディング情報から復号されることができる。
【0197】
一実施形態において、所定の一組の解像度は、(i)1サンプル(1ペル)解像度及び(ii)4サンプル(4ペル)解像度の2つの解像度を含み、従って、SVに使用される解像度は、1ビットを有する解像度シンタックス要素(例えば1ビットインジケータなど)を用いて、1ペル解像度又は4ペル解像度から選択されることができる。4ペル解像度が選択される場合、SVのx成分及びy成分の両方が4又は4の倍数である。従って、復号されたSV(又は予測が使用されない場合の中間SV)又はSV差(又は中間SV差)を2ビットだけ左シフトして、SV(又は実際のSV)を再構成することができる。2ビットの左シフト演算は、中間SV又は中間SV差に4を乗じることと等価である。
【0198】
ストリングサイズ(又はストリング長)は、ブロック(例えば、CB又はCU)内のストリング内のサンプルの数を表すことができる。一例において、ストリングサイズは1から(M1-1)までの数であり、ここで、M1はブロックサイズ(例えば、ブロック内のサンプルの数)である。一例において、上述のように、ストリングサイズはL又はLの倍数であり、Lの刻み幅でLから(M1-L)の範囲内である。ブロック内のコーディングされるストリング各々について、それぞれのストリングサイズを示す長さ情報をシグナリングすることができる。本開示の態様によれば、ブロック内の最後のコーディングされるストリング(例えば、最後にコーディングされるストリング)の最後の長さ情報は、シグナリングされる必要がない。一例において、
図14を参照するに、ストリング(1430)が最初にコーディング(例えば、符号化及び復号)され、ストリング(1431)が続く。従って、ストリング(1431)が、現在ブロック(1435)内の最後のコーディングされるストリングである。代わりに、ストリング(1431)が最初にコーディングされ、ストリング(1430)が続く場合には、ストリング(1430)が、現在ブロック(1435)内の最後にコーディングされるストリングである。最後の長さ情報は、最後のコーディングされるストリングの最後のストリングサイズ(又は最後のストリング長)を示すことができる。従って、最後のコーディングされるストリングの最後のストリングサイズはシグナルされない。
【0199】
最後のコーディングされるストリングの最後のストリングサイズがシグナリングされないとき、最後のストリングサイズは、ブロック内の既にコーディングされたサンプルの数から推定されることができる。最後のストリングサイズは、ブロック内のサンプルの数と、ブロック内の既にコーディングされたサンプルの数とから推定されることができる。一例において、ブロックは複数のストリングを含み、ブロック内の既にコーディングされたサンプルの数は、上記複数のストリング内の1つ以上の残りのストリングの1つ以上のストリング長から決定される。従って、最後のストリング長は、(i)現在ブロック内のサンプルの数、及び(ii)上記複数のストリング内の上記1つ以上の残りのストリングの上記1つ以上のストリング長に基づいて決定されることができる。
【0200】
例えば、
図14を参照するに、現在ブロック(1435)は、ストリング(1430)及び(1431)の2つのストリングを含んでいる。ストリング(1430)が最初にコーディングされ、ストリング(1431)は、ストリング(1430)をコーディングした後に、最後にコーディングされる。ストリング(1431)は、現在ブロック(1435)内の最後のコーディングされるストリングであり、従って、ストリング(1431)の最後のストリング長はコーディングされる必要がない。最後のストリング長は、ブロックサイズ(例えば、64サンプル)及び現在ブロック(1435)内の既にコーディングされたサンプルの数から推定されることができる。
図14の例において、現在ブロック(1435)内の既にコーディングされたサンプルの数は、ストリング(1430)のストリングサイズ(例えば、29)である。最後のストリング長は、ブロックサイズ(例えば、64)から現在ブロック(1435)内の既にコーディングされたサンプルの数(例えば、29)を差し引いたものに等しいと推定されることができ、故に、35サンプルである。
【0201】
ブロック内の上記複数のストリングのうちの1つについて、上記複数のストリングのうちの当該1つがブロック内の最後のコーディングされるストリング(例えば、ブロック内で最後にコーディングされるストリング)であるかを指し示すために、フラグ(例えば、ラストコーディングストリングフラグ)をシグナリングすることができる。該フラグが真(true)である場合、上記複数のストリングのうちの当該1つは、ブロック内の最後のコーディングされるストリングである。上記複数のストリングのうちの当該1つ(例えば、最後のコーディングされるストリング)のストリングサイズはシグナリングされる必要がない。
【0202】
ブロック内の上記複数のストリングの各々について、フラグ(例えば、ラストコーディングストリングフラグ)をシグナリングしてもよい。
図14を参照するに、ストリング(1430)について第1のフラグ(又は第1のラストコーディングストリングフラグ)がシグナリングされ、ストリング(1431)について第2のフラグ(又は第2のラストコーディングストリングフラグ)がシグナリングされる。第1のフラグは、ストリング(1430)が最後のコーディングされるストリングでないことを指し示す偽(false)であり、第2のフラグは、ストリング(1431)が最後のコーディングされるストリングであることを指し示す真(true)である。
【0203】
上記複数のストリングのうちの上記1つについてのフラグは、例えば、コンテキスト適応バイナリ算術コーディング(CABAC)を用いてコンテキストコーディングされることができる。このフラグのコンテキストモデリングは、上記複数のストリングのうちの上記1つのストリング位置に依存し得る。上述のように、そのストリング位置は、上記複数のストリングのうちの上記1つ内のサンプル(例えば、復号順で最初のサンプル)の位置によって表されることができる。
【0204】
このフラグのコンテキストモデリングは、ブロック内の、上記複数のストリングのうちの上記1つの前にコーディングされる残りのサンプルの数に依存してもよい。
【0205】
一例において、上記複数のストリングのうちの上記1つがブロック内の最初のストリングである場合、このフラグをシグナリングする必要はない。
【0206】
図15は、本開示の一実施形態に従ったプロセス(1500)を概説するフローチャートを示している。プロセス(1500)は、符号化映像シーケンスのピクチャ内のブロック又はストリングを再構成するために使用されることができる。プロセス(1500)は、再構成中のブロックについての予測ブロックを生成するために、ブロックの再構成において使用されることができる。本開示におけるブロックという用語は、予測ブロック、CB、CU、又はこれらに類するものとして解釈され得る。様々な実施形態において、プロセス(1500)は、例えば、端末装置(310)、(320)、(330)及び(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路ビデオエンコーダ(603)の機能を実行する処理回路、及びこれらに類するものなどの、処理回路によって実行される。一部の実施形態において、プロセス(1500)は、ソフトウェア命令にて実装され、従って、処理回路がソフトウェア命令を実行するときに、処理回路がプロセス(1500)を実行する。当該プロセスは(S1501)で開始して(S1510)に進む。
【0207】
(S1510)にて、現在ピクチャの現在ブロックに対するコーディング情報が復号され得る。コーディング情報は、現在ブロックに対するコーディングモードがIBCモード及びストリングコピーモードのうちの一方であることを指し示すことができる。
【0208】
(S1520)にて、現在ブロックに対するコーディングモード及び履歴バッファに基づいて、現在ブロック内の現在ユニットのサンプルに対する現在ベクトル情報が決定され得る。履歴バッファは、現在ピクチャ内の先行して復号されたユニットのサンプルのベクトル情報を格納するように構成されることができる。一例において、先行して復号されたユニットのサンプルは、IBCモードで先行して復号されたブロック及び/又はストリングコピーモードで先行して復号されたストリングを含む。一例において、先行して復号されたユニットのサンプルは、現在ブロックの前に復号されている。履歴バッファは、HSVPバッファとHBVPバッファとを組み合わせたジョイントバッファとすることができる。
【0209】
ベクトル情報は、履歴バッファのエントリとして格納されることができる。ベクトル情報の各々は、先行して復号されたユニットのサンプルのうちの対応する1つを予測するのに使用されたベクトル(例えば、BV、SV)を含むことができる。一部の例において、ベクトル情報の各々は更に、先行して復号されたユニットのサンプルのうちの上記1つの、追加情報(又はサイド情報)、例えば、先行して復号されたユニットのサンプルのうちの上記1つのユニットサイズ、ユニット位置など、を含む。先行して復号されたユニットのサンプルの各々はブロック(例えば、CB)又はストリングとすることができる。
【0210】
現在ベクトル情報は、現在ユニットのサンプルを予測するのに使用される現在ベクトルを含むことができる。現在ブロックのコーディングモードがIBCモードである場合、現在ユニットのサンプルは現在ブロックであり、現在ベクトルは、現在ブロックに対する現在BVである。コーディングモードがストリングコピーモードである場合、現在ユニットのサンプルは現在ブロック内の現在ストリングであり、現在ベクトルは、現在ブロック内の現在ストリングの現在SVである。
【0211】
(S1530)において、現在ユニットのサンプルが、例えば現在ベクトルを含む現在ベクトル情報に基づいて再構成され得る。
【0212】
プロセス(1500)は好適に適応されることができる。プロセス(1500)の(1つ以上の)ステップが変更及び/又は省略されてもよい。更なる(1つ以上の)ステップが追加されてもよい。任意の好適順序での実装が使用され得る。例えば、上述のように、現在ベクトル情報が唯一無二であると決定されたとき、現在ベクトル情報を履歴バッファに格納することができる。一部の例において、現在ベクトル情報が履歴バッファに格納されているとき、剪定プロセスを用いて履歴バッファ内のベクトル情報のうちの1つが除去される。
【0213】
図16は、本開示の一実施形態に従ったプロセス(1600)を概説するフローチャートを示している。プロセス(1600)は、符号化映像シーケンスのピクチャ内の現在ブロック内のストリングを再構成するために使用されることができる。プロセス(1600)はまた、再構成中の現在ブロックについての予測ブロックを生成するために、現在ブロックの再構成において使用されることができる。本開示におけるブロックという用語は、予測ブロック、CB、CU、又はこれらに類するものとして解釈され得る。様々な実施形態において、プロセス(1600)は、例えば、端末装置(310)、(320)、(330)及び(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路ビデオエンコーダ(603)の機能を実行する処理回路、及びこれらに類するものなどの、処理回路によって実行される。一部の実施形態において、プロセス(1600)は、ソフトウェア命令にて実装され、従って、処理回路がソフトウェア命令を実行するときに、処理回路がプロセス(1600)を実行する。当該プロセスは(S1601)で開始して(S1610)に進む。
【0214】
(S1610)にて、現在ブロックに対するコーディング情報が復号され得る。コーディング情報は、現在ブロックがストリングコピーモードでコーディングされることを指し示すことができる。一例において、現在ブロックは、1つ以上のストリングを含む。
【0215】
(S1620)にて、コーディング情報に基づいて、現在ブロック内の現在ストリングのSV及びストリング長が決定され得る。現在ストリングは、上記1つ以上のストリングのうちの1つとすることができる。ストリング長は、1より大きい正の整数L、又はLの倍数とすることができ、故に、ストリング長はN3×Lに等しいとすることができる。上述のように、N3は正の整数である。
【0216】
一例において、現在ブロックはルマブロックであり、Lは4である。
【0217】
一例において、現在ブロックはクロマブロックであり、クロマサブサンプリングフォーマットは4:2:0である。クロマブロックが、対応するルマブロックと一緒にコーディングされる場合、Lは2である。クロマブロックが対応するルマブロックとは別々にコーディングされる場合、Lは4である。
【0218】
一例において、現在ブロックは更に、上記1つ以上のストリングの外側にあるエスケープサンプルを含む。エスケープサンプルの数はL、又はLの倍数とし得る。
【0219】
一例において、コーディング情報は更に、ストリング長を示すシンタックス要素を含む。シンタックス要素の符号化値は、ストリング長をLで割ったものである。シンタックス要素の符号化値は、1から(M1/L-1)の範囲内の整数とすることができ、M1は、現在ブロック内のサンプルの数である。ストリング長は、シンタックス要素の符号化値にLを乗じたものとなるように決定されることができる。
【0220】
(S1630)にて、現在ストリングのSV及びストリング長に基づいて現在ストリングが再構成され得る。
【0221】
プロセス(1600)は好適に適応されることができる。プロセス(1600)の(1つ以上の)ステップが変更及び/又は省略されてもよい。更なる(1つ以上の)ステップが追加されてもよい。任意の好適順序での実装が使用され得る。例えば、コーディング情報は更に、SVに使用される解像度を示すシンタックス要素を含む。一例において、シンタックス要素は、SVの解像度が1ペル又は4ペルであることを指し示す1ビットを有する。SVの解像度が4ペルである場合、処理回路は、コーディング情報から中間SVを決定することができ、中間SVに4を乗じたものとなるようにSVを決定することができる。
【0222】
一例において、現在ブロックは、複数のストリングを含む。複数のストリングにおいて符号化される最後のストリングの最後のストリング長はシグナリングされない。最後のストリング長は、(i)現在ブロック内のサンプルの数、及び(ii)複数のストリング内の1つ以上の残りのストリングの1つ以上のストリング長に基づいて決定されることができる。コーディング情報は、現在ストリングが最後のストリングであるかを指し示すフラグを含むことができる。
【0223】
本開示の実施形態は、任意の順序で別々に又は組み合わせて使用され得る。また、これらの方法(又は実施形態)の各々、エンコーダ、及びデコーダは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一例において、それら1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。
【0224】
上述の技術は、1つ以上のコンピュータ読み取り可能媒体に物理的に格納された、コンピュータ読み取り可能命令を用いたコンピュータソフトウェアとして、実装されることができる。例えば、
図17は、開示に係る事項の特定の実施形態を実装するのに好適なコンピュータシステム(1700)を示している。
【0225】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様の機構に掛けられることで、直接的に又はインタープリット、マイクロコード実行及びこれらに類するものを介して1つ以上のコンピュータ中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、及びこれらに類するものによって実行されることが可能な命令を有するコードを作り出し得るような、任意の好適な機械コード又はコンピュータ言語を用いてコード化され得る。
【0226】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、及びこれらに類するものを含め、様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0227】
コンピュータシステム(1700)に関して
図17に示したコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能性の範囲についての何らかの限定を示唆する意図はない。また、コンポーネントの構成も、コンピュータシステム(1700)のこの例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性又は要件も持つものとして解釈されるべきでない。
【0228】
コンピュータシステム(1700)は、特定のヒューマンインタフェース入力装置を含んでもよい。そのようなヒューマンインタフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブを動かすことなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャなど)、嗅覚入力(図示せず)を介した、一人以上の人間ユーザによる入力に応答し得る。ヒューマンインタフェース装置はまた、例えばオーディオ(例えば、会話、音楽、周囲の音など)、画像(例えば、走査画像、静止画カメラから得られる写真画像など)、映像(例えば、二次元映像、立体視映像を含む3次元映像など)などの、人間による意識的な入力には必ずしも直接関係しない特定の媒体を捕捉するために使用されてもよい。
【0229】
入力ヒューマンインタフェース装置は、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチスクリーン(1710)、データグローブ(図示せず)、ジョイスティック(1705)、マイクロフォン(1706)、スキャナ(1707)、カメラ(1708)(各々1つのみ図示している)のうちの1つ以上を含み得る。
【0230】
コンピュータシステム(1700)はまた、特定のヒューマンインタフェース出力装置を含み得る。そのようなヒューマンインタフェース出力装置は、例えば、触覚出力、音、光、及び臭い/味を通して、一人以上の人間ユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(1710)、データグローブ(図示せず)、又はジョイスティック(1705)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあってもよい)、オーディオ出力装置(例えば、スピーカー(1709)、ヘッドフォン(図示せず)など)、視覚出力装置(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1710)(各々がタッチスクリーン入力機能を有する又は有さない。各々が触覚フィードバック機能を有する又は有さない。これらの一部は、二次元の視覚出力、又は例えば立体視出力などの手段を通じて四次元以上の出力を出力することができるとし得る。)、仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含み得る。
【0231】
コンピュータシステム(1700)はまた、例えば、CD/DVD若しくは類似の媒体(1721)を有するCD/DVD ROM/RW(1720)を含む光媒体、サムドライブ(1722)、取り外し可能なハードドライブ若しくは又はソリッドステートドライブ(1723)、例えばテープ及びフロッピーディスク(登録商標、図示せず)などのレガシー磁気媒体、例えばセキュリティドングルなどの特殊化されたROM/ASIC/PLDベースの装置(図示せず)、及びこれらに類するものなどの、人間アクセス可能なストレージ装置及びそれらの関連媒体を含み得る。
【0232】
当業者がこれまた理解するはずのことには、ここでの開示に係る事項に関連して使用される用語“コンピュータ読み取り可能媒体”は、伝送媒体、搬送波、又は他の一時的な信号を含まない。
【0233】
コンピュータシステム(1700)はまた、1つ以上の通信ネットワーク(1755)へのインタフェース(1754)を含み得る。ネットワークは、例えば、無線、有線、光とし得る。ネットワークは更に、ローカル、広域、大都市、車両及び産業、リアルタイム、耐遅延などとし得る。ネットワークの例は、例えばイーサネット(登録商標)などのローカルエリアネットワークや、無線LANや、GSM、3G、4G、5G、LTE及びこれらに類するものを含むセルラネットワークや、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワークや、CANBusを含む車両及び産業などを含む。特定のネットワークは一般に、特定の汎用データポート又はペリフェラルバス(1749)(例えば、コンピュータシステム(1700)のUSBポートなど)に取り付けられる外付けネットワークインタフェースアダプタを必要とし、他のものは一般に、後述のシステムバスへの取り付けによってコンピュータシステム(1700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース、又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1700)は、他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)であってもよいし、単方向の送信のみ(例えば、特定のCANbus装置に対するCANbus)であってもよいし、あるいは、例えばローカル又は広域デジタルネットワークを用いた他のコンピュータシステムに対しての、双方向であってもよい。特定のプロトコル及びプロトコルスタックが、上述のようにネットワーク及びネットワークインタフェースの各々上で使用され得る。
【0234】
前述のヒューマンインタフェース装置、人間アクセス可能なストレージ装置、及びネットワークインタフェースは、コンピュータシステム(1700)のコア(1740)に取り付けられることができる。
【0235】
コア(1740)は、1つ以上の中央演算処理ユニット(CPU)(1741)、グラフィックス処理ユニット(GPU)(1742)、フィールドプログラマブルゲートアレイ(FPGA)(1743)の形態の特殊なプログラム可能なプロセッシングユニット、特定のタスク用のハードウェアアクセラレータ(1744)、グラフィックスアダプタ(1750)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)(1745)、ランダムアクセスメモリ(1746)、例えば内部のユーザアクセス可能でないハードドライブ、SSDなどの内部大容量ストレージ(1747)、及びこれらに類するもの(1747)と共に、システムバス(1748)を介して接続され得る。一部のコンピュータシステムにおいて、システムバス(1748)は、追加のCPU、GPU、及びこれらに類するものによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能にされ得る。周辺装置は、コアのシステムバス(1748)に直接的に、又はペリフェラルバス(1749)を介して、のいずれで取り付けられてもよい。一例において、ディスプレイ(1710)はグラフィックスアダプタ(1750)に接続されることができる。ペリフェラルバスのアーキテクチャは、PCI、USB、及びこれらに類するものを含む。
【0236】
CPU(1741)、GPU(1742)、FPGA(1743)、及びアクセラレータ(1744)は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行し得る。そのコンピュータコードは、ROM(1745)又はRAM(1746)に格納され得る。RAM(1746)には過渡的なデータも格納されることができ、永久的なデータは、例えば内部大容量ストレージ(1747)に格納されることができる。メモリデバイスのいずれかへの高速な記憶及び取り出しが、1つ以上のCPU(1741)、GPU(1742)、大容量ストレージ(1747)、ROM(1745)、RAM(1746)、及びこれらに類するものの近くに付随し得るキャッシュメモリの使用によって可能にされ得る。
【0237】
コンピュータ読み取り可能媒体はその上に、様々なコンピュータ実装処理を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的に合わせて特別に設計及び構築されたものであってもよいし、あるいは、それらは、コンピュータソフトウェア技術の当業者にとって周知且つ利用可能な種類のものであってもよい。
【0238】
一例として、限定ではなく、アーキテクチャ(1700)、特にコア(1740)、を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現化されたソフトウェアを(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータ、及びこれらに類するものを含む)が実行することの結果として機能を提供することができる。そのようなコンピュータ読み取り可能媒体は、例えばコア内部の大容量ストレージ(1747)又はROM(1745)などの、非一時的性質のものであるコア(1740)の特定のストレージ、及び上で紹介したようなユーザアクセス可能な大容量ストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア(1740)によって実行されることができる。コンピュータ読み取り可能媒体は、具体的なニーズに従って、1つ以上のメモリデバイス又はチップを含み得る。ソフトウェアは、コア(1740)及び特にその中のプロセッサ(CPU、GPU、FPGA、及びこれらに類するものを含む)に、RAM(1746)に格納されるデータ構造を規定すること、及びそのようなデータ構造を、ソフトウェアによって規定されたプロセスに従って変更することを含めて、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ(1744))にて配線された又はその他の方法で具体化されたロジックの結果として、機能を提供してもよい。ソフトウェアへの言及はロジックを含み、また、適当な場合にその逆もまた然りである。コンピュータ読み取り可能媒体への言及は、実行のためのソフトウェアを格納した回路(例えば、集積回路(IC)など)、実行のためのロジックを具体化した回路、又は適当な場合にこれら双方を含み得る。本開示は、ハードウェア及びソフトウェアの好適な組み合わせを含む。
付録A:頭字語
JEM:joint exploration model(共同探索モデル)
VVC:versatile video coding(バーサタイルビデオコーディング)
BMS:benchmark set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(ハイエフィシェンシビデオコーディング)
MPM:most probable mode(最確モード)
WAIP:Wide-Angle Intra Prediction(広角イントラ予測)
SEI:Supplementary Enhancement Information(補足強化情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOPs:Groups of Pictures(グループ・オブ・ピクチャ)
TUs:Transform Units,(変換ユニット)
PUs:Prediction Units(予測ユニット)
CTUs:Coding Tree Units(コーディングツリーユニット)
CTBs:Coding Tree Blocks(コーディングツリーブロック)
PBs:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮説的リファレンスデコーダ)
SDR:standard dynamic range(標準ダイナミックレンジ)
SNR:Signal Noise Ratio(信号対雑音比)
CPUs:Central Processing Units(中央演算処理ユニット)
GPUs:Graphics Processing Units(グラフィックス処理ユニット)
CRT:Cathode Ray Tube(陰極線管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク)
ROM:Read-Only Memory(読み出し専用メモリ)
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカルエリアネットワーク)
GSM:Global System for Mobile communications(グローバルシステムフォーモバイルコミュニケーションズ)
LTE:Long-Term Evolution(ロングタームエボリューション)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
FPGA:Field Programmable Gate Areas(フィールドプログラマブルゲートアレイ)
SSD:solid-state drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
PDPC:Position Dependent Prediction Combination(位置依存予測コンビネーション)
ISP:Intra Sub-Partitions(イントラサブパーティション)
SPS:Sequence Parameter Setting(シーケンスパラメータセッティング)
【0239】
この開示は幾つかの例示的な実施形態を記述しているが、開示の範囲に入る変更、置換、及び様々な均等な代替が存在する。従って、理解されることには、当業者は、ここでは明示的に図示されたり説明されたりしていないものの、開示の原理を具体化し、それ故に、その精神及び範囲の中にあるような、数多くのシステム及び方法を考案することができるであろう。
【国際調査報告】