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

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

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

特表2023-552224探索範囲制限を用いたイントラブロックコピー(INTRABC)モードコーディングのための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-14
(54)【発明の名称】探索範囲制限を用いたイントラブロックコピー(INTRABC)モードコーディングのための方法および装置
(51)【国際特許分類】
   H04N 19/105 20140101AFI20231207BHJP
   H04N 19/136 20140101ALI20231207BHJP
   H04N 19/176 20140101ALI20231207BHJP
   H04N 19/593 20140101ALI20231207BHJP
【FI】
H04N19/105
H04N19/136
H04N19/176
H04N19/593
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023534411
(86)(22)【出願日】2022-09-14
(85)【翻訳文提出日】2023-06-06
(86)【国際出願番号】 US2022043507
(87)【国際公開番号】W WO2023043824
(87)【国際公開日】2023-03-23
(31)【優先権主張番号】63/245,678
(32)【優先日】2021-09-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/939,239
(32)【優先日】2022-09-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK14
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC21
5C159ME01
5C159RC12
5C159TA33
5C159TB08
5C159TC26
5C159TC31
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示は、一般に、ビデオコーディングに関し、特にイントラブロックコピーコーディングモードに関する。例えば、ビデオデータを処理するための方法が開示され、方法は、ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取るステップであって、少なくとも1つのブロックが現在のブロックを含む、ステップと、ビデオフレームにおける第1の探索エリアを決定するステップと、第2の探索エリアを決定するステップであって、第2の探索エリアが、IntraBC予測ブロックを位置特定するための第2の候補エリアである、ステップと、ブロックベクトルによって参照されるIntraBC予測ブロックを識別するステップと、IntraBC予測ブロックと第1の探索エリアと第2の探索エリアとの間の空間関係に基づいて予測を決定するステップと、決定された予測に基づいて現在のブロックの少なくとも一部分をデコードするステップと、を含みうる。
【特許請求の範囲】
【請求項1】
ビデオデータを処理するための方法であって、前記方法は、
ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取るステップであって、前記少なくとも1つのブロックが現在のブロックを含む、ステップと、
前記ビデオフレームにおける第1の探索エリアを決定するステップであって、前記第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、前記第1の探索エリアが、前記現在のブロックとの重複を有さず、ブロックのリストを含み、前記IntraBC予測ブロックが、前記現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックである、ステップと、
第2の探索エリアを決定するステップであって、前記第2の探索エリアが、前記IntraBC予測ブロックを位置特定するための第2の候補エリアであり、前記第2の探索エリアが、(i)前記現在のブロックのサブブロック、および(ii)前記現在のブロックの隣接ブロックの少なくとも1つを含む、ステップと、
ブロックベクトルによって参照される前記IntraBC予測ブロックを識別するステップと、
前記IntraBC予測ブロックと前記第1の探索エリアと前記第2の探索エリアとの間の空間関係に基づいて予測を決定するステップと、
前記決定された予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップと
を含む方法。
【請求項2】
前記予測を決定するステップは、
前記IntraBC予測ブロックが前記第1の探索エリアに部分的に位置し、前記第2の探索エリアに部分的に位置することに応答して、前記IntraBC予測ブロックを、前記現在のブロックの前記少なくとも一部分に対するIntraBC予測に使用することを禁止するステップ
を含む、請求項1に記載の方法。
【請求項3】
前記予測を決定するステップは、
前記IntraBC予測ブロックが前記第1の探索エリアの部分集合または前記第2の探索エリアの部分集合であることに応答して、前記IntraBC予測ブロックを、前記現在のブロックの前記少なくとも一部分に対するIntraBC予測に使用することを許可するステップ
を含む、請求項1に記載の方法。
【請求項4】
前記現在のブロックがスーパーブロックを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記現在のブロックの隣接ブロックが同じ行内の、前記現在のブロックの左のブロックであり、前記現在のブロックの隣接ブロックが前記現在のブロックと同じサイズを有する、請求項1に記載の方法。
【請求項6】
前記現在のブロックの左上ピクセルが(x0,y0)の座標位置を有し、
前記ブロックのリスト内の各ブロックの左上ピクセルが(x,y)の座標位置を有し、
yはy0より小さく、
xは[x0+2(y0-y)-D]より小さく、
x0、y0、x、およびyは非負の数であり、Dは、IntraBCモードに対して制限される直近の再構成ブロックの数である、
請求項1から5のいずれか一項に記載の方法。
【請求項7】
Dは2に等しい、請求項6に記載の方法。
【請求項8】
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第1の重複エリアにおいて前記第1の探索エリアと重複し、
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第2の重複エリアにおいて前記第2の探索エリアと重複し、
前記予測を決定するステップは、
前記第1の重複エリアのサイズおよび前記第2の重複エリアのサイズに基づいて、前記第1の重複エリアおよび前記第2の重複エリアからターゲット重複エリアを選択するステップと、
前記ターゲット重複エリア内のサンプルを、前記IntraBC予測ブロック内の前記ターゲット重複エリアに隣接する境界サンプルで置き換えて、更新されたIntraBC予測ブロックを取得するステップと
を含み、
前記予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップは、
前記更新されたIntraBC予測ブロックに基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップ
を含む、
請求項1に記載の方法。
【請求項9】
前記ターゲット重複エリアを選択するステップは、
前記第2の重複エリアのサイズが前記第1の重複エリアのサイズ以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択するステップと、
前記第1の重複エリアのサイズが前記第2の重複エリアのサイズより大きいことに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択するステップと
を含む、請求項8に記載の方法。
【請求項10】
前記ターゲット重複エリアを選択するステップは、
前記第2の重複エリアのサイズが第1の閾値以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択するステップであって、前記第1の閾値が、前記第1の重複エリアのサイズと所定の第1のバイアス係数との積である、ステップと、
前記第1の重複エリアのサイズが第2の閾値以上であることに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択するステップであって、前記第2の閾値が、前記第2の重複エリアのサイズと所定の第2のバイアス係数との積である、ステップと
を含む、請求項8に記載の方法。
【請求項11】
前記第1の重複エリアおよび前記第2の重複エリアのサイズが、それぞれのエリア内のサンプルの数で表される、請求項10に記載の方法。
【請求項12】
前記サンプルの数が、
ルーマサンプルの数、または
クロマサンプルの数
の1つを含む、請求項11に記載の方法。
【請求項13】
前記ターゲット重複エリア内のサンプルを置き換えるステップは、
前記ターゲット重複エリアが前記第1の重複エリアであることに応答して、前記ターゲット重複エリア内のサンプルを前記第2の重複エリアからのサンプルで置き換えるステップと、
前記ターゲット重複エリアが前記第2の重複エリアであることに応答して、前記ターゲット重複エリア内のサンプルを前記第1の重複エリアからのサンプルで置き換えるステップと
を含む、請求項8から12のいずれか一項に記載の方法。
【請求項14】
前記第2の探索エリア内のサンプルが、前記ビデオデータを処理するビデオコーデックのオンチップメモリに記憶される、請求項1から13のいずれか一項に記載の方法。
【請求項15】
コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサとを備えるデバイスであって、前記プロセッサが前記コンピュータ命令を実行するとき、前記プロセッサは前記デバイスに、
ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取らせ、前記少なくとも1つのブロックが現在のブロックを含み、
前記ビデオフレームにおける第1の探索エリアを決定させ、前記第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、前記第1の探索エリアが、前記現在のブロックとの重複を有さず、ブロックのリストを含み、前記IntraBC予測ブロックが、前記現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックであり、
第2の探索エリアを決定させ、前記第2の探索エリアが、前記IntraBC予測ブロックを位置特定するための第2の候補エリアであり、前記第2の探索エリアが、(i)前記現在のブロックのサブブロック、および(ii)前記現在のブロックの隣接ブロックの少なくとも1つを含み、
ブロックベクトルによって参照される前記IntraBC予測ブロックを識別させ、
前記IntraBC予測ブロックと前記第1の探索エリアと前記第2の探索エリアとの間の空間関係に基づいて予測を決定させ、
前記予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードさせる
ように構成される、デバイス。
【請求項16】
前記プロセッサが前記デバイスに前記予測を決定させるように構成されるときに、前記プロセッサは前記デバイスに、
前記IntraBC予測ブロックが前記第1の探索エリアに部分的に位置し、前記第2の探索エリアに部分的に位置することに応答して、前記IntraBC予測ブロックを、前記現在のブロックの前記少なくとも一部分に対するIntraBC予測に使用することを禁止させるように構成される、請求項15に記載のデバイス。
【請求項17】
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第1の重複エリアにおいて前記第1の探索エリアと重複し、
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第2の重複エリアにおいて前記第2の探索エリアと重複し、
前記プロセッサが前記デバイスに前記予測を決定させるように構成されるときに、前記プロセッサは前記デバイスに、
前記第1の重複エリアのサイズおよび前記第2の重複エリアのサイズに基づいて、前記第1の重複エリアおよび前記第2の重複エリアからターゲット重複エリアを選択させ、
前記ターゲット重複エリア内のサンプルを、前記IntraBC予測ブロック内の前記ターゲット重複エリアに隣接する境界サンプルで置き換えて、更新されたIntraBC予測ブロックを取得させるように構成され、
前記プロセッサが前記デバイスに、前記予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードさせるように構成されるときに、前記プロセッサは前記デバイスに、
前記更新されたIntraBC予測ブロックに基づいて前記現在のブロックの前記少なくとも一部分をデコードさせるように構成される、
請求項15に記載のデバイス。
【請求項18】
前記プロセッサが前記デバイスに前記ターゲット重複エリアを選択させるように構成されるときに、前記プロセッサは前記デバイスに、
前記第2の重複エリアのサイズが前記第1の重複エリアのサイズ以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択させ、
前記第1の重複エリアのサイズが前記第2の重複エリアのサイズより大きいことに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択させる
ように構成される、請求項17に記載のデバイス。
【請求項19】
前記プロセッサが前記デバイスに前記ターゲット重複エリアを選択させるように構成されるときに、前記プロセッサは前記デバイスに、
前記第2の重複エリアのサイズが第1の閾値以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択させ、前記第1の閾値が、前記第1の重複エリアのサイズと所定の第1のバイアス係数との積であり、
前記第1の重複エリアのサイズが第2の閾値以上であることに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択させ、前記第2の閾値が、前記第2の重複エリアのサイズと所定の第2のバイアス係数との積である、
ように構成される、請求項17に記載のデバイス。
【請求項20】
コンピュータ可読命令を記憶するための非一時的記憶媒体であって、前記コンピュータ可読命令は、プロセッサによって実行されるとき、前記プロセッサに、
ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取らせ、前記少なくとも1つのブロックが現在のブロックを含み、
前記ビデオフレームにおける第1の探索エリアを決定させ、前記第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、前記第1の探索エリアが、前記現在のブロックとの重複を有さず、ブロックのリストを含み、前記IntraBC予測ブロックが、前記現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックであり、
第2の探索エリアを決定させ、前記第2の探索エリアが、前記IntraBC予測ブロックを位置特定するための第2の候補エリアであり、前記第2の探索エリアが、i)前記現在のブロックのサブブロック、および(ii)前記現在のブロックの隣接ブロックの少なくとも1つを含み、
ブロックベクトルによって参照される前記IntraBC予測ブロックを識別させ、
前記IntraBC予測ブロックと前記第1の探索エリアと前記第2の探索エリアとの間の空間関係に基づいて予測を決定させ、
前記予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードさせる、
非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本出願は、2021年9月17日に出願された、発明の名称を「Method and Apparatus for Intra Block Copy(IntraBC)Mode Coding with Search Range Restrictions」とする米国仮出願第63/245,678号に基づき、その優先権の利益を主張する、2022年9月7日に出願された、発明の名称を「Method and Apparatus for Intra Block Copy(IntraBC)Mode Coding with Search Range Restrictions」とする米国非仮出願第17/939,239号に基づき、その優先権の利益を主張し、これらの各々は参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、1組の高度なビデオコーディング技術を説明する。より具体的には、開示の技術は、ビデオエンコーディングおよびデコーディングにおけるイントラブロックコピー(IntraBC、またはIBC)の実装および強化を含む。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテキストを一般的に提示することを目的としている。ここに記名された発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、それ以外に本出願の出願時において先行技術として適さない可能性のある説明の態様と共に、明示的にも暗示的にも、本開示に対する先行技術としては認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行することができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するフルまたはサブサンプリングクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(代替としてフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080のピクセル解像度、60フレーム/秒のフレームレート、カラーチャネル当たりピクセル当たり8ビットで4:2:0のクロマサブサンプリングのビデオは、1.5Gbit/sの帯域幅に近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減でありうる。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ちうる。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮は、原信号の正確なコピーを、デコーディングプロセスにより圧縮された原信号から再構成することができる技術を指す。非可逆圧縮は、元のビデオ情報がコーディング中に完全に保持されず、デコード中に完全に復元することができないコーディング/デコーディングプロセスを指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではない場合もあるが、原信号と再構成された信号との間の歪みは、若干の情報損失があっても、再構成された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。耐容可能な歪みの量は用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画やテレビの配信用途のユーザよりも高い歪みを容認しうる。特定のコーディングアルゴリズムによって達成可能な圧縮比は、様々な歪み耐性を反映するように選択または調整することができ、より高い耐容可能な歪みは、一般に、より高い損失およびより高い圧縮比をもたらすコーディングアルゴリズムを許容する。
【0006】
ビデオエンコーダおよびビデオデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに、空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャをイントラピクチャと呼ぶことができる。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生物を、デコーダ状態をリセットするために使用することができ、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用することができる。イントラ予測後のブロックのサンプルに、次いで周波数領域への変換を受けさせることができ、そのように生成された変換係数をエントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えば、MPEG-2生成コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接するエンコードおよび/またはデコード中に得られる、イントラコーディングまたはデコードされているデータのブロックにデコード順で先行する周囲のサンプルデータおよび/またはメタデータに基づいてブロックのコーディング/デコーディングを試みる技術を含む。そのような技術を、これ以降、「イントラ予測」技術と呼ぶ。少なくともいくつかの場合に、イントラ予測は再構成中の現在のピクチャからの参照データのみを使用し、他の参照ピクチャからは使用しないことに留意されたい。
【0009】
多くの異なる形態のイントラ予測がありうる。そのような技術のうちの2つ以上が所与のビデオコーディング技術において利用できる場合、使用中の技術をイントラ予測モードと呼ぶことができる。1つまたは複数のイントラ予測モードが特定のコーデックで提供されうる。特定の場合には、モードは、サブモードを有することができ、かつ/または様々なパラメータと関連付けられてもよく、モード/サブモード情報およびビデオのブロックのためのイントラコーディングパラメータを、個別にコーディングするか、またはモードコードワードにまとめて含めることができる。所与のモード、サブモード、および/またはパラメータの組み合わせにどのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、ベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測の場合、予測子ブロックは、利用可能になっている隣接サンプル値を使用して形成することができる。例えば、特定の方向および/またはラインに沿った隣接サンプルの特定のセットの利用可能な値が予測子ブロックにコピーされてもよい。使用中の方向への参照は、ビットストリームにおいてコーディングすることができ、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に描かれているのは、(H.265で指定された35個のイントラモードのうちの33個の角度モードに対応する)H.265の33個の可能な予測子方向において指定された9つの予測子方向の部分集合である。矢印が集中する点(101)は、予測されているサンプルを表す。矢印は、隣接サンプルが101のサンプルを予測するために使用される方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数の隣接サンプルから右上へ、水平方向から45度の角度で予測されることを示している。同様に、矢印(103)は、サンプル(101)が、1つまたは複数の隣接サンプルからサンプル(101)の左下へ、水平方向から22.5度の角度で予測されることを示している。
【0012】
図1Aをさらに参照すると、左上に、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描かれている。正方形ブロック(104)は16サンプルを含み、各々、「S」、そのY次元の位置(例えば、行インデックス)、およびそのX次元の位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルであり、X次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元とX次元の両方でブロック(104)内で4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う参照サンプルの例がさらに示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264とH.265の両方において、再構成中のブロックに予測サンプルに隣接している予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることから開始しうる。例えば、コーディングされたビデオビットストリームは、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルは1つまたは複数の予測サンプルから右上へ、水平方向から45度の角度で予測されると仮定する。そのような場合、サンプル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が隣接する(1つまたは複数の)MVから予測されるのではなく直接コーディングされた場合に使用されるはずのビット数よりも少ないビット数で表されうる。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例となりうる。他の場合、MV予測自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、非可逆でありうる。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.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】
本開示の態様は、一般に、ビデオエンコーディングおよびデコーディングに関し、特に、イントラブロックコピーモードでのビデオエンコーディングおよびデコーディングに関する。
【0023】
本開示の態様は、ビデオデータを処理するための方法を提供する。方法は、ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取るステップであって、少なくとも1つのブロックが現在のブロックを含む、ステップと、ビデオフレームにおける第1の探索エリアを決定するステップであって、第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、第1の探索エリアが、現在のブロックとの重複を有さず、ブロックのリストを含み、IntraBC予測ブロックが、現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックである、ステップと、第2の探索エリアを決定するステップであって、第2の探索エリアが、IntraBC予測ブロックを位置特定するための第2の候補エリアであり、第2の探索エリアが、(i)現在のブロックのサブブロック、および(ii)現在のブロックの隣接ブロックの少なくとも1つを含む、ステップと、ブロックベクトルによって参照されるIntraBC予測ブロックを識別するステップと、IntraBC予測ブロックと第1の探索エリアと第2の探索エリアとの間の空間関係に基づいて予測を決定するステップと、決定された予測に基づいて現在のブロックの少なくとも一部分をデコードするステップと、を含む。
【0024】
本開示の態様はまた、上記の方法の実装形態のいずれかを実行するように構成された回路を含むビデオエンコーディングまたはデコーディングのデバイスまたは装置も提供する。
【0025】
本開示の態様はまた、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されるとき、コンピュータに、ビデオデコーディングおよび/またはエンコーディングのための方法を実行させる命令を記憶している非一時的コンピュータ可読媒体も提供する。
【0026】
開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0027】
図1A】イントラ予測方向モードの例示的な部分集合の概略図である。
図1B】例示的なイントラ予測方向を示す図である。
図2】一例における現在のブロックおよび動きベクトル予測のための現在のブロックの周囲の空間マージ候補を示す概略図である。
図3】一例示的実施形態による通信システム(300)の簡略ブロック図を示す概略図である。
図4】一例示的実施形態による通信システム(400)の簡略ブロック図を示す概略図である。
図5】一例示的実施形態によるビデオデコーダの簡略ブロック図を示す概略図である。
図6】一例示的実施形態によるビデオエンコーダの簡略ブロック図を示す概略図である。
図7】別の例示的実施形態によるビデオエンコーダを示すブロック図である。
図8】別の例示的実施形態によるビデオデコーダを示すブロック図である。
図9】本開示の例示的実施形態によるコーディングブロック分割の方式を示す図である。
図10】本開示の例示的実施形態によるコーディングブロック分割の別の方式を示す図である。
図11】本開示の例示的実施形態によるコーディングブロック分割の別の方式を示す図である。
図12】例示的な分割方式による、ベースブロックのコーディングブロックへの例示的な分割を示す図である。
図13】例示的な三分割方式を示す図である。
図14】例示的な四分木二分木コーディングブロック分割方式を示す図である。
図15】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割するための方式および変換ブロックのコーディング順序を示す図である。
図16】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式および変換ブロックのコーディング順序を示す図である。
図17】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式を示す図である。
図18】現在のコーディングブロックを予測するために同じフレーム内の再構成コーディングブロックを使用するイントラブロックコピー(IBC)の概念を示す図である。
図19】IBCのための参照サンプルとして利用可能な例示的な再構成サンプルを示す図である。
図20】いくつかの例示的な制限を伴うIBCのための参照サンプルとして利用可能な例示的な再構成サンプルを示す図である。
図21】IBCのための例示的なオンチップ参照サンプルメモリ(RSM)更新メカニズムを示す図である。
図22図21の例示的なオンチップRSM更新メカニズムの空間ビューを示す図である。
図23】IBCのための別の例示的なオンチップ参照サンプルメモリ(RSM)更新メカニズムを示す図である。
図24】水平に分割されたスーパーブロックと垂直に分割されたスーパーブロックとのIBCのための例示的なRSM更新メカニズムの空間ビューの比較を示す図である。
図25】IBC参照ブロックのための例示的な非局所探索エリアおよび局所探索エリアを示す図である。
図26】局所参照ブロック探索エリアと非局所参照ブロック探索エリアの両方を用いるIBCのための例示的な予測ブロック、および予測ブロック選択に対する提案の制限を示す図である。
図27】本開示の一例示的実施形態による方法を示すフローチャートである。
図28】本開示の例示的実施形態によるコンピュータシステムを示す概略図である。
【発明を実施するための形態】
【0028】
次に本発明を、本発明の一部を形成し、例として、実施形態の具体例を示す添付の図面を参照して、以降で詳細に説明する。ただし、本発明は様々な異なる形態で具現化されてもよく、したがって、範囲に含められ、または特許請求される主題は、以下に記載される実施形態のいずれにも限定されないものとして解釈されることが意図されていることに留意されたい。また、本発明は、方法、デバイス、構成要素、またはシステムとして具現化されうることにも留意されたい。したがって、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの形態をとりうる。
【0029】
本明細書および特許請求の範囲の全体を通して、用語は、明示的に記載される意味を超えるコンテキストで示唆または暗示される微妙な差異のある意味を有する場合がある。本明細書で使用される「1つの実施形態では」または「いくつかの実施形態では」という句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「別の実施形態では」または「他の実施形態では」という句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「1つの実装形態では」または「いくつかの実装形態では」という句は、必ずしも同じ実装形態を指すものではなく、本明細書で使用される「別の実装形態では」または「他の実装形態では」という句は、必ずしも異なる実装形態を指すものではない。例えば、特許請求される主題は、例示的実施形態/実装形態の組み合わせを全体として、または部分的に含むことが意図されている。
【0030】
一般に、用語は、少なくとも一部はコンテキストにおける用法から理解されうる。例えば、本明細書で使用される、「および」、「または」、「および/または」などの用語は、少なくとも一部はそのような用語が使用されるコンテキストに依存しうる様々な意味を含みうる。典型的には、A、BまたはCなどのリストを関連付けるために使用される場合の「または」は、この場合は包括的な意味で使用される、A、B、およびC、ならびにこの場合は排他的な意味で使用される、A、BまたはCを意味することが意図されている。加えて、本明細書で使用される「1つまたは複数の」または「少なくとも1つの」という用語は、少なくとも一部はコンテキストに依存して、単数の意味の任意の特徴、構造、または特性を記述するために使用される場合もあり、複数の意味の任意の特徴、構造、または特性の組み合わせを記述するために使用される場合もある。同様に、「a」、「an」、「the」などの用語も、やはり、少なくとも一部はコンテキストに依存して、単数の用法を伝えるか、または複数の用法を伝えると理解されうる。加えて、「に基づいて」または「によって決定される」という用語は、必ずしも排他的な要因のセットを伝えることを意図されているものではないと理解されてもよく、代わりに、やはり、少なくとも一部はコンテキストに依存して、必ずしも明示的に記載されていない追加の要因の存在を許容しうる。
【0031】
図3は、本開示の一実施形態による通信システム(300)の簡略ブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1の対を含む。図3の例において、端末デバイス(310)および(320)の第1の対は、データの単方向伝送を実行しうる。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するために(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングしてもよい。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で伝送することができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示しうる。単方向データ伝送は、メディア提供用途などにおいて実装されうる。
【0032】
別の例では、通信システム(300)は、例えばビデオ会議用途中に実装されうるコーディングされたビデオデータの双方向伝送を実行する端末デバイス(330)および(340)の第2の対を含む。データの双方向伝送の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するために、(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングしうる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してもよく、コーディングされたビデオデータをデコードしてビデオピクチャを復元してもよく、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示してもよい。
【0033】
図3の例において、端末デバイス(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして実装されうるが、本開示の基礎を成す原理の適用性はそのように限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用ビデオ会議機器などにおいて実装されてもよい。ネットワーク(350)は、例えば有線(配線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)の間でコーディングされたビデオデータを伝達する任意の数またはタイプのネットワークを表す。通信ネットワーク(350)は、回路交換チャネル、パケット交換チャネル、および/または他のタイプのチャネルでデータを交換しうる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本考察の目的では、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明示的に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0034】
図4は、開示の主題についての用途の一例として、ビデオストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示の主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ用途に等しく適用可能でありうる。
【0035】
ビデオストリーミングシステムは、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えば、デジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含みうる。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。エンコードされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較して多いデータ量を強調するために太線として描かれたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示の主題の態様を可能にするか、または実装するハードウェア、ソフトウェアまたはこれらの組み合わせを含むことができる。非圧縮ビデオピクチャのストリーム(402)と比較して少ないデータ量を強調するために細線として描かれたエンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)上に、または下流のビデオデバイス(図示せず)に直接記憶することができる。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入力コピー(407)をデコードし、圧縮されておらず、ディスプレイ(412)(例えば、表示スクリーン)または他のレンダリングデバイス(図示せず)上でレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を実行するように構成されうる。一部のストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)および(409)(例えば、ビデオビットストリーム)を、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。それらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示の主題は、VVCのコンテキスト、または他のビデオコーディング規格のコンテキストで使用されうる。
【0036】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含むことができる。
【0037】
図5は、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、電子デバイス(530)に含めることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0038】
受信機(531)は、ビデオデコーダ(510)によってデコードされるべき1つまたは複数のコーディングされたビデオシーケンスを受信しうる。同じかまたは別の実施形態において、一度に1つのコーディングされたビデオシーケンスがデコードされてもよく、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたは画像と関連付けられうる。コーディングされたビデオシーケンスはチャネル(501)から受信されてもよく、チャネル(501)は、エンコードされたビデオデータを記憶する記憶デバイス、またはエンコードされたビデオデータを送信するストリーミングソースへのハードウェア/ソフトウェアリンクでありうる。受信機(531)はエンコードされたビデオデータを、それらそれぞれの処理回路(図示せず)に転送されうる、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータと共に受信しうる。受信機(531)は、コーディングされたビデオシーケンスをその他のデータから分離しうる。ネットワークジッタに対抗するために、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)との間にバッファメモリ(515)が配置されうる。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部として実装されうる。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の外部にあってビデオデコーダ(510)から分離されていてもよい(図示せず)。さらに他の用途では、例えば、ネットワークジッタに対抗する目的でビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在することができ、例えば、再生タイミングを処理するために、ビデオデコーダ(510)の内部に追加のバッファメモリ(515)が存在しうる。受信機(531)が十分な帯域幅および可制御性のストア/フォワードデバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要とされる場合があり、または小さくてもよい。インターネットなどのベストエフォート型パケットネットワークでの使用の場合、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きくてもよい。そのようなバッファメモリは、適応サイズで実装されてもよく、オペレーティングシステムまたはビデオデコーダ(510)の外部の同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0039】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含みうる。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、図5に示されるように、電子デバイス(530)の不可欠な部分であってもよいしそうでなくてもよいが、電子デバイス(530)に結合することができるディスプレイ(512)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報を含む。(1つまたは複数の)レンダリングデバイスのための制御情報は補足エンハンスメント情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式でありうる。パーサ(520)は、パーサ(520)によって受信されたコーディングされたビデオシーケンスをパース/エントロピーデコードしうる。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従うことができ、コンテキスト依存性ありまたはなしの可変長コーディング、ハフマンコーディング、算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、サブグループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出しうる。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどといった情報も抽出しうる。
【0040】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取られたビデオシーケンスに対してエントロピーデコード/パース動作を実行しうる。
【0041】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを関与させることができる。関与するユニットおよびそれらがどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されうる。パーサ(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために描かれていない。
【0042】
すでに言及された機能ブロック以外に、ビデオデコーダ(510)を、以下で説明されるようないくつかの機能ユニットに概念的に細分することができる。商業的制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いと一体化される可能性がある。しかしながら、開示の主題の様々な機能を明確に説明する目的で、本開示において以下で機能ユニットへの概念的な細分が採用されている。
【0043】
第1のユニットはスケーラ/逆変換ユニット(551)を含みうる。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびに、どのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受け取りうる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0044】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係しうる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構成され、現在のピクチャバッファ(558)に記憶されている周囲のブロック情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されたものとして出力サンプル情報に追加しうる。
【0045】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係しうる。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されたサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルを、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(ユニット551の出力は残差サンプルまたは残差信号と呼ばれうる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y成分(シフト)、および参照ピクチャ成分(時間)を有しうるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間も含んでいてもよく、動きベクトル予測メカニズムなどと関連付けられていてもよい。
【0046】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応答することもでき、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。以下でさらに詳細に説明されるように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれうる。
【0047】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力するだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することもできるサンプルストリームでありうる。
【0048】
特定のコーディングされたピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングされたピクチャの再構成を開始する前に新しい現在のピクチャバッファを再割り振りすることができる。
【0049】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格で採用された所定のビデオ圧縮技術に従ってデコード動作を実行しうる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格の構文とビデオ圧縮技術または規格に文書化されているプロファイルの両方を順守しているという意味で、使用されているビデオ圧縮技術または規格によって指定されている構文に準拠しうる。具体的には、プロファイルは、そのプロファイル下で利用可能な限られたツールとして、ビデオ圧縮技術または規格において利用可能なすべてのツールの中から特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑度は、ビデオ圧縮技術または規格のレベルによって規定された範囲内にありうる。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構成サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、コーディングされたビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータとによってさらに制限することができる。
【0050】
いくつかの例示的実施形態では、受信機(531)は、エンコードされたビデオと共に追加の(冗長な)データを受信しうる。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれうる。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコードするために、かつ/または元のビデオデータをより正確に再構成するために使用されうる。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)のエンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式でありうる。
【0051】
図6は、本開示の一例示的実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は電子デバイス(620)に含まれうる。電子デバイス(620)は送信機(640)(例えば、送信回路)をさらに含みうる。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0052】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像をキャプチャしうる(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信しうる。別の例では、ビデオソース(601)は電子デバイス(620)の一部分として実装されうる。
【0053】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ…)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形式で提供しうる。メディア提供システムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することができる記憶デバイスでありうる。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラでありうる。ビデオデータは、順番に見られたときに動きを伝える複数の個別のピクチャまたは画像として提供されうる。ピクチャ自体は、ピクセルの空間配列として編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0054】
いくつかの例示的実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングし、圧縮しうる。適切なコーディング速度を実現することが、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で説明される他の機能ユニット機能的に結合され、それらの機能ユニットを制御しうる。この結合は簡潔にするために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するように構成することができる。
【0055】
いくつかの例示的実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されうる。過度に単純化した説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャ、および(1つまたは複数の)参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。(開示の主題で考慮されるビデオ圧縮技術においてはエントロピーコーディングにおけるシンボルとコーディングされたビデオビットストリームとの間のいかなる圧縮も可逆でありうるので)、組み込みデコーダ633はエントロピーコーディングなしでソースコーダ630によってコーディングされたビデオストリームを処理するとしても、デコーダ(633)は、(リモート)デコーダが作成することになるのと同様のやり方で、シンボルを再構成してサンプルデータを作成する。再構成サンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルかリモートか)に関係なくビットイグザクトな結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」ことになるのと全く同じサンプル値を参照ピクチャサンプルとして「見る」。この参照ピクチャ同期性の基本原理(および、例えばチャネル誤りが原因で同期性を維持することができない場合に、結果として生じるドリフト)は、コーディング品質を向上させるために使用される。
【0056】
「ローカル」デコーダ(633)の動作は、図5と併せて上記で詳細にすでに説明されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じとすることができる。図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆でありうるので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピーデコーディング部分、およびパーサ(520)は、エンコーダ内のローカルデコーダ(633)に完全に実装されない場合もある。
【0057】
この時点で言えることは、デコーダ内にのみ存在しうるパーシング/エントロピーデコーディングを除く任意のデコーダ技術が、対応するエンコーダ内においても、実質的に同一の機能形態で存在する必要が必然的にありうるということである。このために、開示の主題は、エンコーダのデコード部分に属するデコーダ動作に時々焦点を当てることがある。よって、エンコーダ技術の説明は、エンコーダ技術が包括的に記載されているデコーダ技術の逆であるので、省略することができる。特定のエリアまたは態様においてのみ、エンコーダのより詳細な説明を以下で提供する。
【0058】
いくつかの例示的実装形態では、動作中、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行しうる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択されうる(1つまたは複数の)参照ピクチャのピクセルブロックとの間のカラーチャネルの差分(または残差)をコーディングする。「残差」およびその形容詞形の「残差の」という用語は、区別なく使用されうる。
【0059】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャのコーディングされたビデオデータをデコードしうる。コーディングエンジン(632)の動作は、有利には、非可逆プロセスでありうる。コーディングされたビデオデータが(図6には示されていない)ビデオデコーダでデコードされうる場合、再構成されたビデオシーケンスは、通常、いくつかの誤りを有するソースビデオシーケンスの複製でありうる。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行されうるデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させうる。このようにして、ビデオエンコーダ(603)は、(伝送誤りなしで)遠端(リモート)ビデオデコーダによって取得されることになる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに記憶しうる。
【0060】
予測器(635)は、コーディングエンジン(632)の予測探索を実行しうる。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、(候補参照ピクセルブロックとしての)サンプルデータ、または新しいピクチャのための適切な予測参照として機能しうる、参照ピクチャ動きベクトル、ブロック形状などといった特定のメタデータを求めて、参照ピクチャメモリ(634)を探索しうる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作しうる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有していてもよい。
【0061】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理しうる。
【0062】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けうる。エントロピーコーダ(645)は、様々な機能ユニットによって生成されたシンボルを、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ったシンボルの可逆圧縮によってコーディングされたビデオシーケンスに変換する。
【0063】
送信機(640)は、エントロピーコーダ(645)によって作成された(1つまたは複数の)コーディングされたビデオシーケンスを、通信チャネル(660)を介した送信に備えるためにバッファしてもよく、通信チャネル(660)は、エンコードされたビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクでありうる。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージしうる。
【0064】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理しうる。コーディング中に、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、これは、それぞれのピクチャに適用されうるコーディング技術に影響を及ぼしうる。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられうる。
【0065】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用することなくコーディングおよびデコードされうるものでありうる。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形形態ならびにそれぞれの用途および特徴を認識している。
【0066】
予測ピクチャ(Pピクチャ)は、最大で1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコードされうるものでありうる。
【0067】
双方向予測ピクチャ(Bピクチャ)は、最大で2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコードされうるものでありうる。同様に、複数予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連メタデータを使用することができる。
【0068】
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4サンプル、8×8サンプル、4×8サンプル、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされうる。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定される他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされうる。例えば、Iピクチャのブロックは、非予測的にコーディングされうるか、または、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされうる(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされうる。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされうる。ソースピクチャまたは中間処理されたピクチャは、他の目的のために他のタイプのブロックに細分されてもよい。コーディングブロックおよび他のタイプブロックの分割は、以下でさらに詳細に説明されるように、同じ方法に従ってもよいし、従わなくてもよい。
【0069】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行しうる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行しうる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠しうる。
【0070】
いくつかの例示的実施形態では、送信機(640)は、エンコードされたビデオと共に追加のデータを送信しうる。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含みうる。追加のデータは、時間/空間/SNRエンハンスメント層、冗長ピクチャおよびスライス、SEIメッセージ、VUIパラメータセットフラグメントなどといった他の形式の冗長データを含みうる。
【0071】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされうる。イントラピクチャ予測(しばしば、イントラ予測と省略される)は、所与のピクチャ内の空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間または他の相関を利用する。例えば、現在のピクチャと呼ばれる、エンコード/デコード中の特定のピクチャがブロックに分割されてもよい。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされた、まだバッファされている参照ピクチャ内の参照ブロックに類似している場合、動きベクトルと呼ばれるベクトルによってコーディングされうる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合に、参照ピクチャを識別する第3の次元を有することができる。
【0072】
いくつかの例示的実施形態では、インターピクチャ予測において双予測技術を使用することができる。そのような双予測技術によれば、どちらもデコード順でビデオ内の現在のピクチャに先行する(が、表示順では、それぞれ、過去または未来にありうる)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャ内のブロックを、第1の参照ピクチャ内の第1の参照ブロックを指し示す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指し示す第2の動きベクトルによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって一緒に予測することができる。
【0073】
さらに、コーディング効率を向上させるために、インターピクチャ予測においてマージモード技術が使用されてもよい。
【0074】
本開示のいくつかの例示的実施形態によれば、インターピクチャ予測やイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、128×128ピクセル、64×64ピクセル、32×32ピクセル、16×16ピクセルなどの同じサイズを有しうる。一般に、CTUは3つの並列のコーディングツリーブロック(CTB)、すなわち、1つのルーマCTBおよび2つのクロマCTBを含みうる。各CTUを、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割することができる。32×32ブロックのうちの1つまたは複数の各々は、16×16ピクセルの4つのCUにさらに分割されうる。いくつかの例示的実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からCUの予測タイプを決定するために、エンコード中に解析されうる。CUは、時間的予測可能性および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割されうる。一般に、各PUは、1つのルーマ予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。CUのPU(または異なるカラーチャネルのPB)への分割は、様々な空間パターンで実行されうる。ルーマPBまたはクロマPBは、例えば、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなどといった、サンプルの値(例えば、ルーマ値)の行列を含みうる。
【0075】
図7は、本開示の別の例示的実施形態によるビデオエンコーダ(703)の図を示している。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。例示のビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用されてもよい。
【0076】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどといった処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、次いで、処理ブロックが、例えば、レート歪み最適化(RDO)を使用して、イントラモード、インターモード、または双予測モードを使用して最適にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディングされると判定された場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコードし、処理ブロックがインターモードまたは双予測モードでコーディングされると判定された場合、ビデオエンコーダ(703)は、インター予測技術または双予測技術を使用して、それぞれ、処理ブロックをコーディングされたピクチャにエンコードしうる。いくつかの例示的実施形態では、マージモードは、予測子の外側のコーディングされた動きベクトル成分の助けを借りずに動きベクトルが1つまたは複数の動きベクトル予測子から導出される、インターピクチャ予測のサブモードとして使用されうる。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在しうる。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、図7に明示的に示されていない構成要素を含みうる。
【0077】
図7の例では、ビデオエンコーダ(703)は、図7の例示的な配置に示されるように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0078】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順で前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明されるように、図7の残差デコーダ728として示されている)図6の例示のエンコーダ620に組み込まれたデコーディングユニット633を使用してエンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャである。
【0079】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成するように、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)はまた、イントラ予測情報および同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算しうる。
【0080】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成されうる。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードである場合、汎用コントローラ(721)は、残差計算器(723)が使用するためのイントラモード結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御し、ブロックの予測モードがインターモードである場合、汎用コントローラ(721)は、残差計算器(723)が使用するためのインター予測結果を選択するようスイッチ(726)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0081】
残差計算器(723)は、受け取られたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックの予測結果との間の差分(残差データ)を計算するように構成されうる。残差エンコーダ(724)は、残差データをエンコードして変換係数を生成するように構成されうる。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成されうる。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な例示的実施形態において、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、デコードされたピクチャは、メモリ回路(図示せず)にバッファし、参照ピクチャとして使用することができる。
【0082】
エントロピーエンコーダ(725)は、エンコードされたブロックを含めるようビットストリームをフォーマットし、エントロピーコーディングを実行するように構成されうる。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、ビットストリームに、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報を含めるように構成されうる。インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報が存在しない場合がある。
【0083】
図8は、本開示の別の実施形態による例示のビデオデコーダ(810)の図を示している。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコードして再構成ピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用されてもよい。
【0084】
図8の例では、ビデオデコーダ(810)は、図8の例示的な配置に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む
【0085】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成されている構文要素を表す特定のシンボルを再構成するように構成することができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測のために使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報)、例えば、量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0086】
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成されうる。
【0087】
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成されうる。
【0088】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されうる。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるために)特定の制御情報を利用してもよく、その情報は、エントロピーデコーダ(871)によって提供されうる(これは、少ないデータ量の制御情報のみでありうるので、データパスは描かれていない)。
【0089】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と(場合によってインター予測モジュールまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成ビデオの一部として再構成ピクチャの一部を形成する再構成ブロックを形成するように構成されうる。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作も実行されうることに留意されたい。
【0090】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装することができることに留意されたい。いくつかの例示的実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0091】
コーディングおよびデコーディングのためのブロック分割に目を向けると、一般的な分割はベースブロックから開始してもよく、所定のルールセット、特定のパターン、パーティションツリー、または任意のパーティション構造もしくは方式に従ってもよい。分割は、階層的かつ再帰的であってもよい。例示的な分割手順または後述される他の手順のいずれか、またはそれらの組み合わせに従ってベースブロックを分離または分割した後、パーティションまたはコーディングブロックの最終セットが取得されうる。これらのパーティションの各々は、パーティション階層内の様々な分割レベルのうちの1つにあってもよく、様々な形状のものであってもよい。パーティションの各々は、コーディングブロック(CB)と呼ばれうる。以下でさらに説明される様々な例示的な分割の実装形態について、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのものでありうる。そのようなパーティションがコーディングブロックと呼ばれるのは、それらが、そのためにいくつかの基本的なコーディング/デコーディング決定が行われ、コーディング/デコーディングパラメータが、最適化され、決定され、エンコードされたビデオビットストリームにおいてシグナリングされうるユニットを形成しうるからである。最終パーティションにおける最高または最深レベルは、ツリーのコーディングブロック分割構造の深さを表す。コーディングブロックは、ルーマコーディングブロックまたはクロマコーディングブロックでありうる。各カラーのCBツリー構造は、コーディングブロックツリー(CBT)と呼ばれる場合がある。
【0092】
すべてのカラーチャネルのコーディングブロックは、まとめてコーディングユニット(CU)と呼ばれる場合がある。すべてのカラーチャネルの階層構造は、まとめてコーディングツリーユニット(CTU)と呼ばれる場合がある。CTU内の様々なカラーチャネルの分割パターンまたは分割構造は、同じである場合もそうでない場合もある。
【0093】
いくつかの実装形態では、ルーマチャネルとクロマチャネルとに使用されるパーティションツリー方式または構造は、同じでなくてもよい場合がある。言い換えれば、ルーマチャネルとクロマチャネルとは、別個のコーディングツリー構造またはパターンを有しうる。さらに、ルーマチャネルとクロマチャネルとが同じコーディングパーティションツリー構造を使用するか、それとも異なるコーディングパーティションツリー構造か、および使用されるべき実際のコーディングパーティションツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、それともIスライスかに依存しうる。例えば、Iスライスの場合、クロマチャネルとルーマチャネルとは、別個のコーディングパーティションツリー構造またはコーディングパーティションツリー構造モードを有しうるのに対し、PスライスまたはBスライスの場合、ルーマチャネルとクロマチャネルとは、同じコーディングパーティションツリー方式を共有しうる。別個のコーディングパーティションツリー構造またはモードが適用される場合、ルーマチャネルはあるコーディングパーティションツリー構造によってCBに分割されてもよく、クロマチャネルは別のコーディングパーティションツリー構造によってクロマCBに分割されてもよい。
【0094】
いくつかの例示的実装形態では、所定の分割パターンがベースブロックに適用されうる。図9に示されるように、例示的な4方式パーティションツリーは、第1の所定のレベル(例えば、ベースブロックサイズとして、64×64ブロックレベルまたは他のサイズ)から開始してもよく、ベースブロックは、所定の最下位レベル(例えば、4×4レベル)まで階層的に分割されてもよい。例えば、ベースブロックは、902、904、906および908で示される4つの所定の分割オプションまたはパターンに従ってもよく、Rと表されたパーティションは、図9に示される同じ分割オプションが最下位レベル(例えば、4×4レベル)まで下位スケールで繰り返されうるという点で、再帰分割が可能である。いくつかの実装形態では、図9の分割方式に追加の制限が適用されうる。図9の実装形態では、長方形パーティション(例えば、1:2/2:1の長方形パーティション)は、可能でありうるが再帰的に用いられることはできないのに対し、正方形パーティションは再帰的に用いられることができる。再帰による図9の後に続く分割により、必要に応じて、コーディングブロックの最終セットが生成される。ルートノードまたはルートブロックからの分割深さを示すために、コーディングツリー深さがさらに定義されうる。ルートノードまたはルートブロック、例えば、64×64ブロックのコーディングツリー深さは0に設定されてもよく、ルートブロックが図9の後に続いて1回さらに分割された後、コーディングツリー深さは1増加する。64×64のベースブロックから4×4の最小パーティションまでの最大または最深レベルは、上記の方式では(レベル0から開始して)4になる。そのような分割方式が、カラーチャネルのうちの1つまたは複数に適用されうる。各カラーチャネルは、図9の方式に従って独立して分割されうる(例えば、各階層レベルにおけるカラーチャネルの各々に対して、所定のパターンの中から分割パターンまたはオプションが独立して決定されうる)。あるいは、カラーチャネルのうちの2つ以上が図9の同じ階層パターンツリーを共有してもよい(例えば、各階層レベルにおける2つ以上のカラーチャネルに対して、所定のパターンの中から同じ分割パターンまたはオプションが選択されうる)。
【0095】
図10は、再帰分割により分割ツリーを形成することを可能にする別の例示的な所定の分割パターンを示している。図10に示されるように、例示的な10方式分割構造またはパターンが事前定義されうる。ルートブロックは、所定のレベルから(例えば、128×128レベルまたは64×64レベルのベースブロックから)開始しうる。図10の例示的な分割構造は、様々な2:1/1:2長方形パーティションおよび4:1/1:4長方形パーティションを含む。図10の2列目の1002、1004、1006、および1008で示される3つのサブパーティションを有する分割タイプは、「T型」パーティションと呼ばれうる。「T型」パーティション1002、1004、1006、および1008は、左T型、上T型、右T型、および下T型と呼ばれうる。いくつかの例示的実装形態では、図10の長方形パーティションのいずれもさらに細分されることができない。ルートノードまたはルートブロックからの分割深さを示すために、コーディングツリー深さがさらに定義されうる。例えば、ルートノードまたはルートブロック、例えば128×128ブロックのコーディングツリー深さは0に設定されてもよく、ルートブロックが図10の後に続いて1回さらに分割された後、コーディングツリー深さは1増加する。いくつかの実装形態では、1010のすべて正方形のパーティションのみが、図10のパターンの後に続くパーティションツリーの次のレベルへの再帰分割が可能でありうる。言い換えれば、再帰分割は、T型パターン1002、1004、1006、および1008内の正方形パーティションに対しては不可能である。再帰による図10の後に続く分割手順により、必要に応じて、コーディングブロックの最終セットが生成される。そのような方式が、カラーチャネルのうちの1つまたは複数に適用されうる。いくつかの実装形態では、より高い柔軟性が8×8レベルより小さいパーティションの使用に対して付加されうる。例えば、特定の場合には2×2クロマインター予測が使用されてもよい。
【0096】
コーディングブロック分割のためのいくつかの他の例示的実装形態では、ベースブロックまたは中間ブロックを四分木パーティションに分割するために四分木構造が使用されうる。そのような四分木分割は、任意の正方形のパーティションに階層的かつ再帰的に適用されうる。ベースブロックまたは中間ブロックまたはパーティションがさらに四分木分割されるかどうかは、ベースブロックまたは中間ブロック/パーティションの様々な局所特性に適合されてもよい。ピクチャ境界における四分木分割がさらに適応されてもよい。例えば、サイズがピクチャ境界に適合するまでブロックが四分木分割を続けるように、ピクチャ境界で暗黙的な四分木分割が実行されてもよい。
【0097】
いくつかの他の例示的実装形態では、ベースブロックからの階層的二分割が使用されている。そのような方式の場合、ベースブロックまたは中間レベルブロックは2つのパーティションに分割されうる。二分割は、水平または垂直のいずれかでありうる。例えば、水平二分割は、ベースブロックまたは中間ブロックを等しい左右のパーティションに分割しうる。同様に、垂直二分割は、ベースブロックまたは中間ブロックを等しい上下のパーティションに分割しうる。そのような二分割は、階層的かつ再帰的でありうる。二分割方式が続行すべきであるかどうか、およびこの方式がさらに続行する場合、水平二分割が使用されるべきかそれとも垂直二分割が使用されるべきかの判定が、ベースブロックまたは中間ブロックの各々で実行されうる。いくつかの実装形態では、さらなる分割は、(一方または両方の次元の)所定の最低パーティションサイズで停止しうる。あるいは、さらなる分割は、ベースブロックから所定の分割レベルまたは深さに達した時点で停止してもよい。いくつかの実装形態では、パーティションのアスペクト比は制限されうる。例えば、パーティションのアスペクト比は、1:4以上(または4:1以下)でありうる。よって、4:1の垂直対水平アスペクト比を有する垂直ストリップパーティションは、2:1の垂直対水平アスペクト比を各々有する上側パーティションと下側パーティションとにのみ垂直にさらに二分割されうる。
【0098】
さらにいくつかの他の例では、図13に示されるように、ベースブロックまたは任意の中間ブロックを分割するために、三分割方式が使用されうる。三分割パターンは、図13の1302に示されるように垂直に、または図13の1304に示されるように水平に実現されうる。図13の例示的な分割比は、垂直または水平のいずれかに1:2:1として示されているが、他の比が事前定義されてもよい。いくつかの実装形態では、2つ以上の異なる比が事前定義されうる。そのような三分割方式は、そのような三分木分割が1つの連続したパーティション内のブロック中心に位置するオブジェクトを取り込むことができ、一方、四分木および二分木は常にブロック中心に沿って分割することになり、よってオブジェクトを別々のパーティションに分割することになるという点で、四分木分割構造または二分割構造を補間するために使用されうる。いくつかの実装形態では、例示的な三分木のパーティションの幅および高さは、追加の変換を回避するために常に2の累乗である。
【0099】
上記の分割方式は、異なる分割レベルで任意の方式で組み合わされてもよい。一例として、上述の四分木方式および二分割方式は、ベースブロックを四分木二分木(QTBT)構造に分割するために組み合わされてもよい。そのような方式では、ベースブロックまたは中間ブロック/パーティションは、指定されている場合、所定の条件のセットに従って四分木分割されうるか、または二分割されうる。特定の例が図14に示されている。図14の例では、ベースブロックは、1402、1404、1406、および1408によって示されるように、最初に4つのパーティションに四分木分割される。その後、結果として得られるパーティションの各々は、4つのさらなるパーティションに四分木分割される(1408など)か、または次のレベルで2つのさらなるパーティションに二分割される(例えば、1402や1406のように、水平または垂直のいずれかに、どちらも対称である)か、または分割されない(1404などの)かのいずれかである。二分割または四分木分割は、1410の全体の例示的パーティションパターンおよび1420の対応するツリー構造/表現によって示されるように、正方形のパーティションに対して再帰的に可能とされてもよく、1420において実線は四分木分割を表しており、破線は二分割を表している。二分割が水平かそれとも垂直かを示すために、各二分割ノード(非リーフ二分割)にフラグが使用されてもよい。例えば、1420に示されるように、1410の分割構造と一致して、フラグ「0」が水平二分割を表し、フラグ「1」が垂直二分割を表してもよい。四分木分割の場合、四分木分割は常に、ブロックまたはパーティションを水平と垂直の両方に分割して、同じサイズの4つのサブブロック/パーティションを生成するため、分割タイプを指示する必要はない。いくつかの実装形態では、フラグ「1」が水平二分割を表してもよく、フラグ「0」が垂直二分割を表してもよい。
【0100】
QTBTのいくつかの例示的実装形態では、四分木分割および二分割ルールセットは、以下の所定のパラメータおよびそれらと関連付けられた対応する関数によって表されている。
-CTUサイズ:四分木のルートノードサイズ(ベースブロックのサイズ)
-MinQTSize:最小許容四分木リーフノードサイズ
-MaxBTSize:最大許容二分木ルートノードサイズ
-MaxBTDepth:最大許容二分木深さ
-MinBTSize:最小許容二分木リーフノードサイズ
QTBT分割構造のいくつかの例示的実装形態では、CTUサイズは、クロマサンプルの2つの対応する64×64ブロックを有する128×128個のルーマサンプルとして設定されてもよく(例示的なクロマサブサンプリングが考慮され使用される場合)、MinQTSizeは16×16として設定されてもよく、MaxBTSizeは64×64として設定されてもよく、MinBTSize(幅と高さの両方について)は4×4として設定されてもよく、MaxBTDepthは4として設定されてもよい。四分木分割は、四分木リーフノードを生成するために最初にCTUに適用されうる。四分木リーフノードは、その最小許容サイズの16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有しうる。ノードが128×128である場合、サイズがMaxBTSize(すなわち、64×64)を超えるため、最初に二分木によっては分割されない。そうでない場合、MaxBTSizeを超えないノードを、二分木によって分割することができる。図14の例では、ベースブロックは128×128である。ベースブロックは、所定のルールセットに従って、四分木分割のみが可能である。ベースブロックは0の分割深さを有する。結果として得られる4つのパーティションの各々は64×64であり、MaxBTSizeを超えず、レベル1でさらに四分木分割または二分木分割されうる。プロセスは続行する。二分木深度さがMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されえない。二分木ノードの幅がMinBTSize(すなわち、4)に等しい場合、それ以上の水平分割は考慮されえない。同様に、二分木ノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。
【0101】
いくつかの例示的実装形態では、上記のQTBT方式は、ルーマおよびクロマが同じQTBT構造または別個のQTBT構造を有するための柔軟性をサポートするように構成されうる。例えば、PスライスおよびBスライスの場合、1つのCTU内のルーマCTBとクロマCTBとは同じQTBT構造を共有しうる。しかし、Iスライスの場合、ルーマCTBはあるQTBT構造によってCBに分割され、クロマCTBは別のQTBT構造によってクロマCBに分割されうる。これは、CUがIスライス内の異なるカラーチャネルを参照するために使用されうること、例えば、Iスライスはルーマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックから成りうること、およびPスライスまたはBスライス内のCUは、3つの色成分すべてのコーディングブロックから成りうることを意味する。
【0102】
いくつかの他の実装形態では、QTBT方式は、上述の三分割方式で補完されうる。そのような実装形態は、マルチタイプツリー(MTT)構造と呼ばれうる。例えば、ノードの二分割に加えて、図13の三分割パターンのうちの1つが選択されてもよい。いくつかの実装形態では、正方形ノードのみが三分割の対象となりうる。三分割が水平かそれとも垂直かを示すために、追加のフラグが使用されうる。
【0103】
QTBT実装形態や三分割によって補完されたQTBT実装形態などの2レベルツリーまたはマルチレベルツリーの設計は、主に複雑度の低減によって動機付けられうる。理論的には、ツリーをトラバースする複雑度はTDであり、Tは分割タイプの数を表し、Dはツリーの深さである。深さ(D)を低減しながら複数のタイプ(T)を使用することによって、トレードオフが行われうる。
【0104】
いくつかの実装形態では、CBがさらに分割されうる。例えば、CBは、コーディングプロセスおよびデコーディングプロセス中のイントラフレーム予測またはインターフレーム予測を目的として、複数の予測ブロック(PB)にさらに分割されてもよい。言い換えれば、CBは異なるサブパーティションにさらに分割されてもよく、そこで個々の予測決定/構成が行われうる。並行して、CBは、ビデオデータの変換または逆変換が実行されるレベルを記述する目的で、複数の変換ブロック(TB)にさらに分割されてもよい。CBのPBおよびTBへの分割方式は、同じであってもよいし同じでなくてもよい。例えば、各分割方式は、例えば、ビデオデータの様々な特性に基づいて独自の手順を使用して実行されてもよい。PBおよびTBの分割方式は、いくつかの例示的実装形態では独立していてもよい。PBおよびTBの分割方式および境界は、いくつかの他の例示的実装形態では相関していてもよい。いくつかの実装形態では、例えば、TBは、PB分割後に分割されてもよく、特に、各PBは、コーディングブロックの分割の後に続いて決定された後、次いで1つまたは複数のTBにさらに分割されてもよい。例えば、いくつかの実装形態では、PBは、1つ、2つ、4つ、または他の数のTBに分割されうる。
【0105】
いくつかの実装形態では、ベースブロックをコーディングブロックに分割し、さらに予測ブロックおよび/または変換ブロックに分割するために、ルーマチャネルおよびクロマチャネルは異なって処理されうる。例えば、いくつかの実装形態では、ルーマチャネルに対してはコーディングブロックの予測ブロックおよび/または変換ブロックへの分割が可能でありうるのに対し、(1つまたは複数の)クロマチャネルに対してはコーディングブロックの予測ブロックおよび/または変換ブロックへのそのような分割は不可能である。そのような実装形態では、よって、ルーマブロックの変換および/または予測は、コーディングブロックレベルでのみ実行されうる。別の例では、ルーマチャネルと(1つまたは複数の)クロマチャネルの最小変換ブロックサイズは異なっていてもよく、例えば、ルーマチャネルのコーディングブロックは、クロマチャネルよりも小さい変換ブロックおよび/または予測ブロックに分割されることが可能でありうる。さらに別の例では、コーディングブロックの変換ブロックおよび/または予測ブロックへの分割の最大深さはルーマチャネルとクロマチャネルとの間で異なっていてもよく、例えば、ルーマチャネルのコーディングブロックは、(1つまたは複数の)クロマチャネルよりも深い変換ブロックおよび/または予測ブロックに分割されることが可能でありうる。具体例として、ルーマコーディングブロックは、最大2レベルだけ下がる再帰分割によって表すことができる複数のサイズの変換ブロックに分割されてもよく、正方形、2:1/1:2、4:1/1:4などの変換ブロック形状、および4×4から64×64までの変換ブロックサイズが可能でありうる。しかしながら、クロマブロックに対しては、ルーマブロックに指定された可能な最大の変換ブロックのみが可能でありうる。
【0106】
コーディングブロックをPBに分割するためのいくつかの例示的実装形態では、PB分割の深さ、形状、および/または他の特性は、PBがイントラコーディングされるかそれともインターコーディングされるかに依存しうる。
【0107】
コーディングブロック(または予測ブロック)の変換ブロックへの分割は、四分木分割および所定のパターン分割を含むがこれらに限定されない様々な例示的な方式で、再帰的または非再帰的に、コーディングブロックまたは予測ブロックの境界の変換ブロックをさらに考慮して実装されうる。一般に、結果として得られる変換ブロックは、異なる分割レベルにある場合もあり、同じサイズのものではない場合もあり、形状が正方形でなくてもよい場合もある(例えば、それらのブロックは、いくつかの許容されるサイズおよびアスペクト比を有する長方形でありうる)。さらなる例は、図15図16および図17に関連して以下でさらに詳細に説明される。
【0108】
しかしながら、いくつかの他の実装形態では、上記の分割方式のいずれかを介して得られたCBは、予測および/または変換のための基本または最小のコーディングブロックとして使用されうる。言い換えれば、インター予測/イントラ予測を実行する目的で、かつ/または変換の目的で、それ以上の分割は実行されない。例えば、上記のQTBT方式から得られたCBが、予測を実行するための単位として直接使用されてもよい。具体的には、そのようなQTBT構造は、複数の分割タイプの概念を排除し、すなわち、CU、PU、およびTUの分離の概念を排除し、上述のようにCU/CB分割形状についてより高い柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは正方形または長方形いずれかの形状を有することができる。そのようなQTBTのリーフノードは、さらなる分割なしで予測および変換処理のための単位として使用される。これは、CU、PU、およびTUが、そのような例示的なQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。
【0109】
上記の様々なCB分割方式、ならびにCBのPBおよび/またはTBへのさらなる分割(PB/TB分割なしを含む)は、任意の方式で組み合わされうる。以下の特定の実装態様は、非限定的な例として提供されている。
【0110】
コーディングブロックおよび変換ブロックの分割の具体的な例示的実装形態を以下で説明する。そのような一例示的実装形態では、ベースブロックが、再帰的四分木分割、または上記の所定の分割パターン(図9および図10ものなど)を使用してコーディングブロックに分割されうる。各レベルで、特定のパーティションのさらなる四分木分割が続行すべきかどうかが、局所ビデオデータ特性によって決定されうる。結果として得られるCBは、様々な四分木分割レベルにあり、様々なサイズのものでありうる。ピクチャエリアをインターピクチャ(時間的)予測を使用してコーディングするか、それともイントラピクチャ(空間的)予測を使用してコーディングするかの判断は、CBレベル(または、3つのカラーチャネルすべての場合にはCUレベル)で行われうる。各CBは、所定のPB分割タイプに従って、1つ、2つ、4つ、または他の数のPBにさらに分割されうる。1つのPB内で、同じ予測プロセスが適用されてもよく、関連情報はPBベースでデコーダに送られてもよい。PB分割タイプに基づく予測プロセスを適用することによって残差ブロックを取得した後、CBを、CBのコーディングツリーと同様の別の四分木構造に従ってTBに分割することができる。ただし、この特定の実装形態では、CBまたはTBは、正方形状に限定されなくてもよい。さらにこの特定の例では、PBは、インター予測では正方形または長方形の形状であってもよく、イントラ予測では正方形のみでありうる。コーディングブロックは、例えば4つの正方形のTBに分割されうる。各TBは、(四分木分割を使用して)再帰的に、残差四分木(RQT)と呼ばれるよりも小さいTBにさらに分割されうる。
【0111】
ベースブロックをCB、PB、および/またはTBに分割するための別の例示的実装形態を以下でさらに説明する。例えば、図9または図10に示されるような複数のパーティションユニットタイプを使用するのではなく、二分割および三分割のセグメント化構造(例えば、上記のような三元分割を伴うQTBTまたはQTBT)を使用するネストされたマルチタイプツリーを有する四分木が使用されてもよい。CB、PB、およびTBの分離(すなわち、CBのPBおよび/またはTBへの分割、ならびにPBのTBへの分割)は、CBがさらなる分割を必要としうる、最大変換長に対して大きすぎるサイズを有するCBに必要な場合を除いて、放棄されてもよい。この例示的な分割方式は、予測と変換の両方をさらなる分割なしにCBレベルで実行できるように、CB分割形状のより高い柔軟性をサポートするように設計されうる。そのようなコーディングツリー構造では、CBは正方形または長方形のどちらかの形状を有しうる。具体的には、コーディングツリーブロック(CTB)が、まず四分木構造によって分割されうる。次いで、四分木リーフノードは、ネストされたマルチタイプツリー構造によってさらに分割されうる。二分割または三分割を使用するネストされたマルチタイプツリー構造の一例が図11に示されている。具体的には、図11の例示的なマルチタイプツリー構造は、垂直二分割(SPLIT_BT_VER)(1102)、水平二分割(SPLIT_BT_HOR)(1104)、垂直三分割(SPLIT_TT_VER)(1106)、および水平三分割(SPLIT_TT_HOR)(1108)と呼ばれる、4つの分割タイプを含む。CBはその場合、マルチタイプツリーのリーフに対応する。この例示的実装形態では、CBが最大変換長に対して大きすぎない限り、このセグメント化は、さらなる分割なしで予測と変換両方の処理に使用される。これは、ほとんどの場合、CB、PB、およびTBが、ネストされたマルチタイプツリーコーディングブロック構造を有する四分木において同じブロックサイズを有することを意味する。例外が発生するのは、サポートされる最大変換長がCBの色成分の幅または高さよりも小さい場合である。いくつかの実装形態では、二分割または三分割に加えて、図11のネストされたパターンは、四分木分割をさらに含みうる。
【0112】
1つのベースブロックに対するブロック分割のネストされたマルチタイプツリーコーディングブロック構造(四分木、二分割、および三分割のオプションを含む)を有する四分木の一具体例が図12に示されている より詳細には、図12は、ベースブロック1200が4つの正方形パーティション1202、1204、1206、および1208に四分木分割されることを示している。さらなる分割のために図11のマルチタイプツリー構造および四分木をさらに使用する決定が、四分木分割されたパーティションの各々について行われる。図12の例では、パーティション1204はこれ以上分割されない。パーティション1202およびパーティション1208は、別の四分木分割を各々採用する。パーティション1202では、第2レベルの四分木分割された左上パーティション、右上パーティション、左下パーティション、および右下パーティションは、四分木、図11の水平二分割1104、非分割、および図11の水平三分割1108の第3レベルの分割をそれぞれ採用する。パーティション1208は別の四分木分割を採用し、第2レベルの四分木分割された左上パーティション、右上パーティション、左下パーティション、および右下パーティションは、図11の垂直三分割1106、非分割、非分割、および図11の水平二分割1104の第3レベルの分割をそれぞれ採用する。1208の第3レベルの左上パーティションのサブパーティションのうちの2つは、図11の水平二分割1104および水平三分割1108に従ってそれぞれさらに分割される。パーティション1206は、2つのパーティションへの図11の垂直二分割1102による第2レベルの分割パターンを採用し、2つのパーティションは図11の水平三分割1108および垂直二分割1102に従って第3レベルでさらに分割される。第4レベルの分割が、図11の水平二分割1104に従ってそれらのうちの1つにさらに適用される。
【0113】
上記の具体例では、最大ルーマ変換サイズは64×64であってもよく、サポートされる最大クロマ変換サイズは、ルーマとは異なる、例えば32×32とすることもできる。図12の上記の例示的なCBは一般に、より小さいPBおよび/またはTBにさらに分割されないが、ルーマコーディングブロックまたはクロマコーディングブロックの幅または高さが最大変換幅または最大変換高さよりも大きい場合、ルーマコーディングブロックまたはクロマコーディングブロックは、水平方向および/または垂直方向の変換サイズ制限を満たすように水平方向および/または垂直方向に自動的に分割されうる。
【0114】
上記のベースブロックをCBに分割するための具体例では、上述のように、コーディングツリー方式は、ルーマとクロマとが別個のブロックツリー構造を有する能力をサポートしうる。例えば、PスライスおよびBスライスの場合、1つのCTU内のルーマCTBとクロマCTBは同じコーディングツリー構造を共有しうる。Iスライスの場合、例えば、ルーマとクロマとは別個のコーディングブロックツリー構造を有しうる。別個のブロックツリー構造が適用される場合、ルーマCTBはあるコーディングツリー構造によってルーマCBに分割されてもよく、クロマCTBは別のコーディングツリー構造によってクロマCBに分割される。これは、Iスライス内のCUはルーマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックから成りうること、およびPスライスまたはBスライス内のCUは常に、ビデオがモノクロでない限り3つの色成分すべてのコーディングブロックから成ることを意味する。
【0115】
コーディングブロックが複数の変換ブロックにさらに分割される場合、その中の変換ブロックは、様々な順序または走査方式に従ってビットストリームにおいて順序付けされうる。コーディングブロックまたは予測ブロックを変換ブロックに分割するための例示的実装形態、および変換ブロックのコーディング順序を、以下でさらに詳細に説明する。いくつかの例示的実装形態では、上述のように、変換分割は、複数の形状、例えば1:1(正方形)、1:2/2:1、および1:4/4:1の変換ブロックをサポートしてもよく、変換ブロックサイズは、例えば4×4から64×64までに及ぶ。いくつかの実装形態では、コーディングブロックが64×64以下の場合、変換ブロック分割は、クロマブロックに対しては、変換ブロックサイズがコーディングブロックサイズと同一であるように、ルーマ成分にのみ適用されうる。そうではなく、コーディングブロックの幅または高さが64よりも大きい場合には、ルーマコーディングブロックとクロマコーディングブロックの両方が、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ブロックの倍数に暗黙的に分割されうる。
【0116】
変換ブロック分割のいくつかの例示的実装形態では、イントラコーディングされたブロックとインターコーディングされたブロックの両方について、コーディングブロックが、所定の数のレベル(例えば、2レベル)までの分割深さを有する複数の変換ブロックにさらに分割されうる。変換ブロックの分割深さとサイズは、関連しうる。いくつかの例示的実装形態について、現在の深さの変換サイズから次の深さの変換サイズへのマッピングを以下の表1に示す。
【0117】
【表1】
【0118】
表1の例示的なマッピングによれば、1:1正方形ブロックの場合、次のレベルの変換分割は、4つの1:1正方形サブ変換ブロックを作成しうる。変換分割は、例えば、4×4で停止しうる。よって、4×4の現在の深さの変換サイズは、次の深さの4×4の同じサイズに対応する。表1の例では、1:2/2:1の非正方形ブロックの場合、次のレベルの変換分割は2つの1:1正方形サブ変換ブロックを作成しうるのに対し、1:4/4:1の非正方形ブロックの場合、次のレベルの変換分割は2つの1:2/2:1サブ変換ブロックを作成しうる。
【0119】
いくつかの例示的実装形態では、イントラコーディングされたブロックのルーマ成分に対して、変換ブロック分割に関してさらなる制限が適用されうる。例えば、変換分割のレベルごとに、すべてのサブ変換ブロックは、同じサイズを有するように制限されうる。例えば、32×16コーディングブロックの場合、レベル1の変換分割は、2つの16×16サブ変換ブロックを作成し、レベル2の変換分割は、8つの8×8サブ変換ブロックを作成する。言い換えれば、変換ユニットを同じサイズに保つために、第2レベルの分割がすべての第1レベルのサブブロックに適用されなければならない。表1によるイントラコーディングされた正方形ブロックに対する変換ブロック分割の一例が、矢印で示されたコーディング順序と共に図15に示されている。具体的には、1502は正方形コーディングブロックを示している。表1による4つの同じサイズの変換ブロックへの第1レベルの分割が、矢印で示されたコーディング順序と共に1504に示されている。表1による、16個の同じサイズの変換ブロックへのすべての第1レベルの同じサイズのブロックの第2レベルの分割が、矢印で示されたコーディング順序と共に1506に示されている。
【0120】
いくつかの例示的実装形態では、インターコーディングされたブロックのルーマ成分に対して、イントラコーディングに対する上記の制限が適用されない場合がある。例えば、第1レベルの変換分割の後、サブ変換ブロックのいずれか1つが、もう1つのレベルでさらに独立して分割されてもよい。よって、結果として得られる変換ブロックは、同じサイズのものである場合もそうでない場合もある。インターコーディングされたブロックの変換ブロックへの例示的分割がそれらのコーディング順序と共に図16に示されている。図16の例では、インターコーディングされたブロック1602は、表1に従って2つのレベルで変換ブロックに分割される。第1レベルで、インターコーディングされたブロックは、同じサイズの4つの変換ブロックに分割される。次いで、(それらのすべてではなく)4つの変換ブロックのうちの1つのみが4つのサブ変換ブロックにさらに分割され、1604で示されるように、2つの異なるサイズを有する合計7つの変換ブロックが得られる。これらの7つの変換ブロックの例示的なコーディング順序が、図16の1604に矢印で示されている。
【0121】
いくつかの例示的実装形態では、(1つまたは複数の)クロマ成分に対して、変換ブロックについての何らかの追加の制限が適用されうる。例えば、(1つまたは複数の)クロマ成分について、変換ブロックサイズは、コーディングブロックサイズと同じ大きさとすることができるが、所定のサイズ、例えば8×8より小さくすることはできない。
【0122】
いくつかの他の例示的実装形態では、幅(W)または高さ(H)が64よりも大きいコーディングブロックについて、ルーマコーディングブロックとクロマコーディングブロックの両方が、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ユニットの倍数に暗黙的に分割されうる。ここで、本開示では、「min(a,b)」は、aとbとで小さい方の値を返しうる。
【0123】
図17は、コーディングブロックまたは予測ブロックを変換ブロックに分割するための別の代替の例示的方式をさらに示している。図17に示されるように、再帰変換分割を使用する代わりに、所定の分割タイプのセットがコーディングブロックの変換タイプに従ってコーディングブロックに適用されうる。図17に示される特定の例では、6つの例示的な分割タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用されうる。変換ブロック分割を生成するそのような方式が、コーディングブロックまたは予測ブロックのいずれかに適用されうる。
【0124】
より詳細には、図17の分割方式は、任意の所与の変換タイプに対して最大6つの例示的な分割タイプを提供する(変換タイプは、例えば、一次変換のタイプ、ADSTその他などを指す)。この方式では、すべてのコーディングブロックまたは予測ブロックに、例えばレート歪みコストに基づいて変換分割タイプが割り当てられうる。一例では、コーディングブロックまたは予測ブロックに割り当てられる変換分割タイプは、コーディングブロックまたは予測ブロックの変換タイプに基づいて決定されうる。図17に例示される6つの変換分割タイプで示されるように、特定の変換分割タイプが、変換ブロックの分割サイズおよびパターンに対応しうる。様々な変換タイプと様々な変換分割タイプとの間の対応関係が、事前定義されうる。一例を、レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられうる変換分割タイプを示す大文字のラベルと共に以下に示す。
【0125】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0126】
・PARTITION_SPLIT:ブロックサイズの1/2の幅、ブロックサイズの1/2の高さの変換サイズを割り当てる。
【0127】
・PARTITION_HORZ:ブロックサイズと同じ幅、ブロックサイズの1/2の高さの変換サイズを割り当てる。
【0128】
・PARTITION_VERT:ブロックサイズの1/2の幅、ブロックサイズと同じ高さの変換サイズを割り当てる。
【0129】
・PARTITION_HORZ4:ブロックサイズと同じ幅、ブロックサイズの1/4の高さの変換サイズを割り当てる。
【0130】
・PARTITION_VERT4:ブロックサイズの1/4の幅、ブロックサイズと同じ高さの変換サイズを割り当てる。
【0131】
上記の例では、図17に示される変換分割タイプはすべて、分割変換ブロックについて均一な変換サイズを含む。これは限定ではなく単なる例である。いくつかの他の実装形態では、混合された変換ブロックサイズが、特定の分割タイプ(またはパターン)の分割変換ブロックに使用されうる。
【0132】
ビデオブロック(複数の予測ブロックにさらに分割されない場合にPBとも呼ばれるPBまたはCB)は、直接エンコードされるのではなく様々な方法で予測されてもよく、それによってビデオデータ内の様々な相関および冗長性を利用して圧縮効率を改善する。これに対応して、そのような予測は様々なモードで実行されうる。例えば、ビデオブロックは、イントラ予測またはインター予測によって予測されうる。特に、インター予測モードでは、ビデオブロックは、単一参照インター予測または複合参照インター予測のいずれかにより、1つまたは複数の他のフレームからの1つまたは複数の他の参照ブロックまたはインター予測子ブロックによって予測されうる。インター予測の実装では、参照ブロックは、そのフレーム識別子(参照ブロックの時間位置)と、エンコードまたはデコードされている現在のブロックと参照ブロックとの間の空間オフセットを示す動きベクトル(参照ブロックの空間位置)とによって指定されうる。参照フレーム識別および動きベクトルは、ビットストリームでシグナリングされうる。空間ブロックオフセットとしての動きベクトルは、直接シグナリングされてもよいし、別の参照動きベクトルまたは予測子動きベクトルによってそれ自体が予測されてもよい。例えば、現在の動きベクトルは、(例えば、候補隣接ブロックの)参照動きベクトルによって直接、または参照動きベクトルと、現在の動きベクトルと参照動きベクトルとの間の動きベクトル差分(MVD)との組み合わせによって予測されうる。後者は、動きベクトル差分によるマージモード(MMVD)と呼ばれることがある。参照動きベクトルは、例えば、現在のブロックの空間的に隣接するブロックまたは時間的に隣接するが空間的にコロケートされたブロックを指し示すポインタとしてビットストリームにおいて識別されうる。
【0133】
いくつかの他の例示的実装形態では、イントラブロックコピー(IBC)予測が使用されうる。IBCでは、現在のフレーム内の現在のブロックは、(時間的に異なるフレームではなく、したがって「イントラ」という用語)現在のフレーム内の別のブロックを、予測されているブロックの位置に対するイントラ予測子または参照ブロックの位置のオフセットを示すためのブロックベクトル(BV)と組み合わせて使用して予測されうる。コーディングブロックの位置は、例えば、現在のフレーム(またはスライス)の左上隅に対する左上隅のピクセル座標によって表されうる。よって、IBCモードは、現在のフレーム内で同様のインター予測概念を使用する。例えば、BVは、インター予測において参照MVおよびMV差分を使用してMVを予測することに類似して、他の参照BVによって直接、または現在のBVと参照BVとの間のBV差分と組み合わせて予測されてもよい。IBCは、特に、例えば、同一のテキストセグメント(文字、記号、単語、句など)が同じフレームの異なる部分に現れ、互いを予測するために使用することができるテキスト情報などのかなりの数の繰り返しパターンを有するスクリーンコンテンツを有するビデオフレームをエンコードおよびデコードするために、改善されたコーディング効率を提供するのに有用である。
【0134】
いくつかの実装形態では、IBCは、通常のイントラ予測モードおよび通常のインター予測モード以外の別個の予測モードとして扱われうる。よって、特定のブロックの予測モードの選択が、3つの異なる予測モード、すなわち、イントラ予測モード、インター予測モード、およびIBCモードの中から行われ、シグナリングされうる。これらの実装形態では、これらのモードの各々においてコーディング効率を最適化するために、これらのモードの各々に柔軟性が組み込まれうる。いくつかの他の実装形態では、IBCは、同様の動きベクトル決定、参照およびコーディングメカニズムを使用して、インター予測モード内のサブモードまたは分岐として扱われうる。そのような実装形態(統合されたインター予測モードおよびIBCモード)では、一般的なインター予測モードとIBCモードとを調和させるために、IBCの柔軟性がいくらか制限される場合がある。しかしながら、そのような実装形態は複雑さが低減され、しかも、IBCをさらに利用して、例えばスクリーンコンテンツによって特徴付けられるビデオフレームのコーディング効率を改善することができる。いくつかの例示的実装形態では、別々のインター予測モードおよびイントラ予測モードのための既存の予め指定されたメカニズムを用いて、インター予測モードはIBCをサポートするように拡張されうる。
【0135】
これらの予測モードの選択は、シーケンスレベル、フレームレベル、ピクチャレベル、スライスレベル、CTUレベル、CTレベル、CUレベル、CBレベル、またはPBレベルを含むがこれらに限定されない様々なレベルで行われうる。例えば、IBC目的では、IBCモードが採用されるかどうかの決定は、CTUレベルで行われ、シグナリングされうる。CTUがIBCモードを採用しているとしてシグナリングされている場合には、CTU全体のすべてのコーディングブロックがIBCによって予測されうる。いくつかの他の実装形態では、IBC予測は、スーパーブロック(SB、またはsuperblock)レベルで決定されうる。各SBは、様々な方法で複数のCTUまたは区分(例えば、四分木区分)に分割されうる。例を以下でさらに示す。
【0136】
図18は、デコーダの観点からの複数のCTUを含む現在のフレームのセクションの例示的なスナップショットを例示している。1802などの各正方形ブロックはCTUを表す。CTUは、上記で詳細に説明されたように、SBなどの、様々な所定のサイズのうちの1つのものでありうる。各CTUは、1つまたは複数のコーディングブロック(または特定のカラーチャネル用の予測ブロック)を含みうる。横線で網掛けされたCTUは、すでに再構成されたCTUを表す。CTU1804は、再構成されている現在のCTUを表す。現在のCTU1804内で、横線で網掛けされたコーディングブロックは、現在のCTU内のすでに再構成されているブロックを表し、斜線で網掛けされたコーディングブロック1806は現在再構成されているのに対し、現在のCTU1804内の網掛けされていないコーディングブロックは再構成を待っている。他の網掛けされていないCTUはまだ処理されていない。
【0137】
IBCで現在のコーディングブロックを予測するために使用される(現在のブロックに対する)参照ブロックの位置またはオフセットは、図18に例示的な矢印で示されるように、BVによって示されうる。例えば、BVは、(図18では「Ref」とラベル付けされている)参照ブロックの左上隅と現在のブロックとの間の位置差分をベクトル形式で示しうる。図18は、基本IBCユニットとしてCTUを使用して示されているが、基礎を成す原理は、SBが基本IBCユニットとして使用される実装形態に適用される。そのような実装形態では、以下でより詳細に説明されるように、各スーパーブロックは複数のCTUに分割されてもよく、各CTUは複数のコーディングブロックにさらに分割されてもよい。
【0138】
以下でより詳細にさらに開示されるように、IBCの現在のCTU/SBに対する参照CTU/SBの位置に応じて、参照CTU/SBは、局所CTU/SBまたは非局所CTU/SBと呼ばれうる。局所CTU/SBは、現在のCTU/SBと一致するCTU/SB、または現在のCTU/SBの近くにあり、再構成されているCTU/SB(例えば、現在のCTU/SBの左隣のCTU/SB)を指しうる。非局所CTU/SBは、現在のCTU/SBからさらに離れたCTU/SBを指しうる。現在のコーディングブロックのIBC予測を実行するときに、局所CTU/SBと非局所CTU/SBのいずれかまたは両方が参照ブロックを求めて探索されうる。IBCが実装される具体的な方法は、局所または非局所CTU/SB参照のための再構成サンプルのオンチップおよびオフチップ記憶管理(オフチップピクチャバッファ(DPB)および/またはオンチップメモリなど)が異なりうるので、参照CTU/SBが局所的であるか非局所的であるかに依存しうる。再構成された局所CTU/SBサンプルは、例えば、IBC用のエンコーダまたはデコーダのオンチップメモリ内の記憶に適しうる。再構成された非局所CTU/SBサンプルは、例えば、オフチップDPBメモリ、または外部メモリに記憶されうる。
【0139】
いくつかの実装形態では、現在のコーディングブロック1804の参照ブロックとして使用されうる再構成ブロックの位置が制限されうる。そのような制限は、様々な要因の結果でありえ、IBCが、一般的なインター予測モードの統合部分として実装されるか、インター予測モードの特別な拡張として実装されるか、それとも別個の独立したIBCモードとして実装されるかに依存しうる。いくつかの例では、現在の再構成CTU/SBサンプルのみがIBC参照ブロックを識別するために探索されうる。いくつかの他の例では、図18の太点線枠1808で示されるように、現在の再構成CTU/SBサンプルおよび別の隣接再構成CTU/SBサンプル(例えば、左隣のCTU/SB)が、参照ブロックの探索および選択に利用できる場合がある。そのような実装形態では、局所再構成CTU/SBサンプルのみが、IBC参照ブロックの探索および選択に使用されうる。いくつかの他の例では、特定のCTU/SBが、様々な他の理由で、IBC参照ブロックの探索および選択に利用できない場合がある。例えば、図18に十字でマークされたCTU/SB1810は、以下でさらに説明されるように、特別な目的(例えば、波面並列処理)に使用されうるので、現在のブロック1804の参照ブロックの探索および選択に利用できない場合がある。
【0140】
いくつかの実装形態では、図18に示されるように、太点線枠1808で形成されたエリアが局所探索エリアと呼ばれうる。局所探索エリア内のサンプルは、オンチップメモリに記憶されうる。
【0141】
いくつかの実装形態では、IntraBCが許容される場合、ループフィルタが無効にされ、ループフィルタは、デブロッキングフィルタ、制約付き方向性エンハンスメントフィルタ(CDEF)、およびループ復元(LR)を含む。これを行うことにより、IntraBCの有効化/サポート専用の第2のピクチャバッファが回避されうる。
【0142】
いくつかの実装形態では、IBC参照ブロックまたは参照サンプルを提供するために使用されることが可能なすでに再構成されたCTU/SBに関する制限が、2つ以上のコーディングブロックが同時にデコードされる並列デコーディングの採用の結果として生じうる。一例が図19に示されており、各正方形はCTU/SBを表している。図19の斜線で網掛けされたCTU/SBによって示されるように、いくつかの連続する行および1つおきの列(2列ごと)の複数のCTU/SBが並列処理で再構成されうる並列デコーディングが実装されうる。横線で網掛けされた他のCTU/SBはすでに再構成されており、網掛けされていないCTU/SBはまだ構成されていないものである。そのような並列処理では、その左上座標が(x0,y0)である現在並列処理されているCTU/SBについて、垂直座標yがy0より小さく、水平座標xがx0+2(y0-y)より小さい場合にのみ、IBC内の現在のCTU/SBを予測するために(x,y)の再構成サンプルにアクセスすることができ、よって、横線で網掛けされたすでに構成されたCTU/SBは、並列処理されている現在のブロックの参照として利用可能でありうる。(x0,y0)、(x,y)等の座標の単位は、ピクセル、ブロック(例えば、SB)などを含みうることに留意されたい。
【0143】
いくつかの実装形態では、直近の再構成サンプルのオフチップDPBへの書き戻し遅延が、特にオフチップDPBがIBC参照サンプルを保持するために使用される場合、現在のブロックのIBC参照サンプルを提供するために使用されうるCTU/SBに対してさらなる制限を課す場合がある。一例が図20に示されており、図19に示されたものに加えて追加の制限が適用されうる。具体的には、ハードウェアの書き戻し遅延を可能にするために、直近の再構成エリアが、参照ブロックの探索および選択のためのIBC予測によってアクセスされえない。制限または禁止される直近の再構成エリアの数は、1~n個のCTU/SBとすることができ、nは正の数であり、nは、書き戻し遅延の持続時間と正の相関を有しうる。よって、図19の特定の並列処理の制限に加えて、1つの現在のCTU/SBの左上位置の座標が(x0,y0)である場合の(斜線で網掛けされた)現在のCTU/SBについて、垂直座標yがy0より小さく、水平座標がx0+2(y0-y)-Dより小さい場合に、位置(x,y)での予測にIBCによってアクセスすることができ、Dは、IBC参照としての使用を制限/禁止される(例えば、現在のCTU/SBの左の)直近の再構成エリアの数を表す。図20は、D=2(ブロック単位で、または、各ブロックが128×128SBであるときにピクセル単位で2×128ピクセル)の場合にIBC参照サンプルとして除外されるそのような追加のCTU/SBを例示している。IBC参照として利用できないこれらの追加のCTU/SBは、反転斜線の網掛けで示されている。
【0144】
いくつかの実装形態では、図20に示されるように、横線で網掛けされたブロックによって形成されたエリアは非局所探索エリアと呼ばれてもよく、このエリア内のサンプルは外部メモリに記憶されうる。
【0145】
以下でもさらに詳細に説明されるいくつかの実装形態では、局所CTU/SB探索エリアと非局所CTU/SB探索エリアの両方がIBC参照ブロックの探索および選択に使用されうる。加えて、オンチップメモリが使用される場合、書き戻し遅延に関するIBC参照としてのすでに構成されたCTU/SBの利用可能性に関する制限の一部が緩和または除去されうる。いくつかのさらなる実装形態では、局所CTU/SBおよび非局所CTU/SBが共存する場合に使用される方法は、例えば、オンチップメモリまたはオフチップメモリのいずれかを使用した参照ブロックのバッファの管理の違いにより異なりうる。これらの実装形態は、以下の開示においてさらに詳細に説明される。
【0146】
いくつかの実装形態では、IBCは、現在のフレーム内のブロックが予測参照として使用されうるように、現在のフレームをインター予測モードにおける参照フレームとして扱う、インター予測モードの拡張として実装されうる。よって、そのようなIBC実装形態は、IBCプロセスが現在のフレームのみを含む場合であっても、インター予測のためのコーディングパスを辿りうる。そのような実装形態では、インター予測モードの参照構造がIBCに適合されてもよく、BVを使用した参照サンプルに対するアドレス指定メカニズムの表現は、インター予測における動きベクトル(MV)に類似しうる。よって、IBCは、参照フレームとしての現在のフレームに基づくインター予測モードとして、類似または同一の構文構造およびデコーディングプロセスに依拠する、特別なインター予測モードとして実装されうる。
【0147】
そのような実装形態では、IBCがインター予測モードとして扱われうるので、イントラのみで予測されたスライスはIBCの使用を可能にするための予測されたスライスにならなければならない。言い換えれば、イントラのみの予測スライスは、(イントラ予測モードはいかなるインター予測処理パスも呼び出さないので)インター予測されず、よって、そのようなイントラのみのスライスにおける予測にはIBCは許容されない。IBCが適用可能である場合、コーダは、参照ピクチャリストを、現在のピクチャを指し示すポインタについての1エントリだけ拡張する。よって、現在のピクチャは、共有されるデコードされたピクチャバッファ(DPB)の最大1つのピクチャサイズのバッファを占有しうる。IBCを使用するためのシグナリングは、インター予測モードにおける参照フレームの選択において暗黙的でありうる。例えば、選択された参照ピクチャが現在のピクチャを指し示す場合、コーディングユニットは、必要かつ利用可能であれば、特別なIBC拡張を有するインター予測のようなコーディングパスを有するIBCを使用する。いくつかの特定の実装形態では、IBCプロセス内の参照サンプルは、通常のインター予測とは対照的に、予測に使用される前にループフィルタリングされない場合がある。さらに、対応する参照の現在のピクチャは、エンコードまたはデコードされるべき次のフレームの近くにあることになるので、長期参照フレームでありうる。いくつかの実装形態では、メモリ要件を最小化するために、コーダは、現在のピクチャを再構成した後にバッファを直ちに解放しうる。コーダは、再構成ピクチャのフィルタリングバージョンを、再構成ピクチャがIBCに使用されるときにフィルタリングされていないとしても、真のインター予測において後のフレームの参照ピクチャになるときに短期参照としてDPBに戻してもよい。
【0148】
上記の例示的実装形態では、IBCはインター予測モードの単なる拡張でありうるとしても、IBCは、通常のインター予測から逸脱しうるいくつかの特別な手順で扱われうる。例えば、IBC参照サンプルもやはりフィルタリングされない場合がある。言い換えれば、デブロッキングフィルタリング(DBF)、サンプル適応オフセット(SAO)フィルタリング、交差成分サンプルオフセット(CCSO)フィルタリングなどを含む、インループフィルタリングプロセスの前の再構成サンプルはIBC予測のために使用されうるのに対し、通常のインター予測モードは、フィルタリングされたサンプルを予測に用いる。別の例では、IBCのためのルーマサンプル補間は実行されなくてもよく、クロマサンプル補間は、クロマBVがルーマBVから導出されるときに非整数である場合にのみ必要でありうる。さらに別の例では、クロマBVが非整数であり、IBCの参照ブロックがIBC参照に利用可能な領域の境界付近にある場合、周囲の再構成サンプルは、クロマ補間を実行するために境界の外側にありうる。単一の境界に隣接した線を指し示すBVは、そのような場合を回避することができない。
【0149】
そのような実装形態では、IBCによる現在のブロックの予測は、現在のBV、および例えば追加のBV差分を予測するために参照BVを使用することを含む、インター予測プロセスの予測およびコーディングメカニズムを再利用しうる。しかしながら、いくつかの特定の実装形態では、ルーマBVは、通常のインター予測のMVの場合と同様に分数精度ではなく整数分解能で実装されてもよい。
【0150】
いくつかの実装形態では、図18に1810として示されているように、波面並列処理(WPP)を可能にするために、(図18に十字で示されている)現在のCTUの右上の2つのCTUを除いて、図18の横の網掛け線で示されているすべてのCTUおよびSBが、IBC参照ブロックの探索および選択に使用されうる。よって、並列処理目的のいくつかの例外を除いて、現在のピクチャのすでに再構成されたエリアのほぼ全体である。
【0151】
いくつかの他の実装形態では、IBC参照ブロックが探索および選択されうるエリアは、局所CTU/SBに制限されうる。一例が、図18の太点線枠1808で示されている。そのような例では、現在のCTUの左のCTU/SBは、現在のCTUの再構成プロセスの開始時にIBCの参照サンプルエリアとして機能しうる。そのような局所参照エリアを使用する場合、DPBに追加の外部メモリ空間を割り振る代わりに、IBC参照用の局所CTU/SBを保持するためにオンチップメモリ空間が割り振られてもよい。いくつかの実装形態では、固定オンチップメモリがIBCに使用されてもよく、それによってIBCをハードウェアアーキテクチャで実装する複雑度が低減される。よって、通常のインター予測から独立した専用のIBCモードが、インター予測モードの単なる拡張として実装されるのではなく、オンチップメモリの利用のために実装されうる。
【0152】
例えば、局所IBC参照サンプル、例えば左CTUまたはSBを記憶するための固定オンチップメモリのサイズは、色成分ごとに128×128であってもよい。いくつかの実装形態では、最大CTUサイズも128×128でありうる。そのような場合、参照サンプルメモリ(RSM)は、単一のCTUのサイズを有するサンプルを保持することができる。いくつかの他の代替実装形態では、CTUサイズはより小さくてもよい。例えば、CTUサイズは64×64であってもよい。よって、RSMは、複数(この例の場合は4つ)のCTUを同時に保持しうる。さらにいくつかの他の実装形態では、RSMは複数のSBを保持してもよく、各SBは1つまたは複数のCTUを含んでいてもよく、各CTUは複数のコーディングブロックを含んでいてもよい。
【0153】
局所オンチップIBC参照のいくつかの実装形態では、オンチップRSMは1つのCTUを保持し、左隣のCTUの再構成サンプルを現在のCTUの再構成サンプルで置き換えるための連続的な更新メカニズムを実装しうる。図21は、再構成プロセス中の4つの中間時間におけるそのような連続的なRSM更新メカニズムの簡略な例を示している。図21の例では、RSMは、1つのCTUを保持する固定サイズを有する。CTUは、暗黙的な分割を含みうる。例えば、CTUは4つの分離エリア(例えば、四分木区分)に暗黙的に分割されてもよい。各エリアは、複数のコーディングブロックを含みうる。CTUは、サイズが128×128でありうるのに対し、例示的なエリアまたは区分の各々は、例示的な四分木区分のサイズが64×64でありうる。中間時間の各々における横線で網掛けされたRSMのエリア/区分は、左隣のCTUの対応する再構成参照サンプルを保持し、縦線グレーで網掛けされたエリア/区分は、現在のCTUの対応する再構成参照サンプルを保持する。斜線で網掛けされたRSMのコーディングブロックは、コーディング/デコード/再構成されている現在のエリア内の現在のコーディングブロックを表す。
【0154】
現在のCTU再構成の開始を表す最初の中間時間に、RSMは、2102で示されるように、4つの例示的なエリアの各々についてのみ左隣のCTUの再構成参照サンプルを含みうる。その他の3つの中間時間では、再構成プロセスは、左隣のCTUの再構成参照サンプルを現在のCTUの再構成サンプルに徐々に置き換えている。RSMにおける64×64のエリア/区分のリセットは、コーダがそのエリア/区分の最初のコーディングブロックを処理するときに行われる。RSMのエリアをリセットする時点で、そのエリアはブランクとみなされ、IBCの再構成参照サンプルを保持していないとみなされる(言い換えれば、RSMのそのエリアは、IBC参照サンプルとして使用する準備ができていない)。そのエリア内の対応する現在のコーディングブロックが処理される際に、RSM内の対応するブロックは、中間時間2104、2106、および2108について図21に示されるように、次の現在のブロックのIBCの参照サンプルとして使用されるべき現在のCTUの対応するブロックの再構成サンプルで満たされる。RSMのエリア/区分に対応してすべてのコーディングブロックが処理されると、そのエリア全体が、様々な中間時間の図21に縦線で完全に網掛けされたエリアで示されるように、IBC参照サンプルとしてこれらの現在のコーディングブロックの再構成サンプルで満たされる。よって、中間時間2104および2106では、RSM内のいくつかのエリア/区分は、隣接CTUからのIBC参照サンプルを保持し、いくつかの他のエリア/区分は、現在のCTUからの参照サンプルを完全に保持するのに対し、いくつかのエリア/区分は、現在のCTUからの参照サンプルを部分的に保持し、部分的に空白である(上記のリセットプロセスの結果としてIBC参照には使用されない)。最後のエリア(例えば、右下エリア)が処理される際に、他の3つのエリアはすべて、IBCの参照サンプルとして現在のCTUの再構成サンプルを保持するのに対し、最後のエリア/区分は、CTUの最後のコーディングブロックが再構成されるまで、現在のCTU内の対応するコーディングブロックの再構成サンプルを部分的に保持し、かつ部分的にブランクであり、最後のコーディングブロックが再構成された時点で、RSM全体は現在のCTUの再構成サンプルを保持し、RSMは、やはりIBCモードでコーディングされる場合に次のCTUに使用する準備ができている。
【0155】
図22は、特に中間時間における空間的なRSMの上記の連続的な更新の実装形態を示しており、すなわち、左隣のCTUと現在のコーディングブロック(斜めの網掛け線で網掛けされたブロック)を有する現在のCTUの両方が示されている。RSM内にあり、現在のコーディングブロックのIBC参照サンプルとして有効なこれら2つのCTUの対応する再構成サンプルは、横と縦の網掛け線で示されている。この例における特定の再構成時間に、処理は、RSMにおいて、左隣のCTU内の網掛けされていないエリアでカバーされたサンプルを、縦の網掛け線で網掛けされた現在のCTUのエリアに置き換えている。隣接CTUからの残りの効果サンプルは、横線の網掛けとして示されている。
【0156】
上記の例示的実装形態では、RSMは、固定RSMサイズがCTUサイズと同じである場合に1つのCTUを含むように実装される。いくつかの他の実装形態では、CTUサイズがより小さい場合、RSMは複数のCTUを含みうる。例えば、CTUのサイズは32×32でありうるのに対し、固定RSMサイズは128×128でありうる。よって、RSMは16個のCTUのサンプルを保持しうる。上述の同じ基礎を成すRSM更新原理に従って、RSMは、再構成される前に現在の128×128パッチの16個の隣接CTUを保持しうる。現在の128×128パッチの最初のコーディングブロックの処理が開始するとすぐに、1つの隣接CTUの再構成サンプルで最初に満たされたRSMの最初の32×32領域が、単一のCTUを保持するRSMについて上述されたように更新されうる。残りの15個の32×32の領域は、IBCの参照サンプルとして15個の隣接CTUを含む。デコードされている現在の128×128パッチの最初の32×32領域に対応するCTUが再構成されると、RSMの最初の32×32領域は、このCTUの再構成サンプルで更新される。次いで、現在の128×128パッチの2番目の32×32領域に対応するCTUが処理され、最終的に再構成サンプルで更新されうる。このプロセスは、RSMの16個の32×32領域が現在の128×128パッチの再構成サンプル(15個のCTUすべて)を含むまで続行する。次いで、デコーディングプロセスは次の128×128パッチに進む。
【0157】
いくつかの他の実装形態では、図21および図22の拡張として、RSMは、隣接CTUのセットを保持しうる。一度に1つの現在のCTUが処理され、最も遠い隣接CTUを保持するRSM部分は、再構成された現在のCTUで上記の方法で更新される。次の現在のCTUについても、やはり、RSM内の最も遠い隣接CTUが更新され、置き換えられる。よって、固定サイズRSMに保持されている複数のCTUは、IBSの隣接CTUの移動ウィンドウとして更新する。
【0158】
オンチップRSMを使用する局所IBCのさらなる具体例の実装形態が図23に示されている。この例では、IBCモードの最大ブロックサイズが制限されうる。例えば、最大のIBCブロックは、64×64であってもよい。オンチップRSMは、スーパーブロック(SB)に対応する固定サイズ、例えば128×128で構成されうる。図23のRSM実装形態は、図21および図22の実装形態の同様の基礎を成す原理を使用する。図23では、RSMは、IBC参照サンプルとして複数の隣接CTUおよび/または現在のCTUを保持しうる。図23の例では、SBは四分木分割されうる。これに対応して、RSMは、各々が64×64である4つの領域またはユニットに四分木分割されうる。これらのエリアの各々は、1つまたは複数のコーディングブロックを保持しうる。あるいは、これらのエリアの各々は1つまたは複数のCTUを保持してもよく、各CTUは1つまたは複数のコーディングブロックを保持してもよい。四分木エリアのコーディング順序は事前定義されうる。例えば、コーディング順序は、左上、右上、左下、右下であってもよい。図23のSBの四分木分割は一例にすぎない。いくつかの他の代替実装形態では、SBは、任意の他の方式に従って分割されてもよい。本明細書に記載される局所IBCのRSM更新実装形態は、それらの代替分割方式に適用される。
【0159】
そのような局所IBC実装形態では、IBC予測に使用されうる局所参照ブロックが制限されうる。例えば、参照ブロックと現在のブロックとが同じSB行にあるべきことが必要とされうる。具体的には、局所参照ブロックは、現在のSB内、または現在のSBの左の1つのSBにのみ配置されうる。別の可能なコーディングブロックによってIBCで予測されている例示的な現在のブロックが、図23に破線矢印で示されている。現在のSBまたは左SBがIBC参照に使用される場合、RSMにおける参照サンプル更新手順は、上述のリセット手順に従いうる。例えば、64×64ユニットの参照サンプルメモリのいずれかが現在のSBからの再構成サンプルでの更新を開始すると、64×64ユニット全体の(左SBからの)以前に記憶された参照サンプルは、IBC予測サンプルを生成するために利用できないとしてマークされ、現在のブロックの再構成サンプルで徐々に更新される。
【0160】
図23は、パネル2302における現在のSBの局所IBCデコード中のRSMの5つの例示的な状態を示している。ここでもやはり、例示的な状態の各々の横線で網掛けされたRSMのエリアは、左隣のSBの対応する四分木エリアの対応する参照サンプルを保持し、縦線グレーで網掛けされたエリア/区分は、現在のSBの対応する参照サンプルを保持する。斜線で網掛けされたRSMのコーディングブロックは、コーディング/デコードされている現在の四分木エリア内の現在のコーディングブロックを表す。各現在のSBのコーディングの開始時に、RSMは以前にコーディングされたSBのサンプルを記憶する(図23のRSM状態(0))。現在のブロックが現在のSBの4つの64×64四分木エリアのうちの1つに位置するとき、RSM内の対応する領域がリセットされ、現在の64×64のコーディング領域のサンプルを記憶するために使用される。このようにして、RSMの各64×64四分木エリア内のサンプルは、現在のSB内のサンプルによって徐々に更新される(状態(1)~状態(3))。現在のSBが完全にコーディングされると、RSM全体が現在のSBのすべてのサンプルで満たされる(状態(4))。
【0161】
図23のパネル2302内の64×64エリアの各々は、空間コーディングシーケンス番号でラベル付けされている。シーケンス0~3は、左隣のSBの4つの64×64四分木エリアを表すのに対し、シーケンス4~7は、現在のSBパネルの4つの64×64四分木エリアを表す。図23では、パネル2304は、図23のパネル2302のRSM状態(1)、状態(2)、および状態(3)について、128×28RSM内の参照サンプルの左隣のSBおよび現在のSBにおける対応する空間分布をさらに例示している。十字のない網掛けエリアは、RSM内の再構成サンプルを有するエリアを表す。十字のある網掛けエリアは、リセットされている(よって、局所IBCの参照サンプルとして利用できない)RSM内の左SBの再構成サンプルを有するエリアを表す。
【0162】
64×64エリアのコーディング順序および対応するRSM更新順序は、(上記の図23に示されている)水平走査または垂直走査のいずれかに従いうる。水平走査は、左上から開始し、右上、左下、および右下に進む。垂直走査は、左上から開始し、左下、右上、および左下に進む。水平走査および垂直走査のための左隣のSBおよび現在のSBの参照サンプル更新プロセスが、現在のSBの4つの64×64エリアの各々が再構成されているときの比較のために、図24のパネル2402およびパネル2404にそれぞれ示されている。図24では、十字のない横線で網掛けされた64×64エリアは、IBCに利用可能なサンプルを有するエリアを表す。十字のある横線で網掛けされたエリアは、現在のSBの対応する再構成サンプルに更新されている左隣のSBのエリアを表す。網掛けされてない領域は、現在のSBの未処理領域を表す。斜線で網掛けされたブロックは、処理されている現在のコーディングブロックを表す。
【0163】
図24に示されるように、現在のSBに対する現在のコーディングブロックの位置に応じて、IBCの参照ブロックに関して以下の制限が適用されうる。
【0164】
現在のブロックが現在のSBの左上64×64エリアに入る場合には、現在のSB内のすでに再構成されたサンプルに加えて、現在のブロックは、図24の2412(水平走査の場合)および2422(垂直走査の場合)に示されるように、左SBの右下、左下、および右上の64×64ブロック内の参照サンプルも参照することができる。
【0165】
現在のブロックが現在のSBの右上64×64ブロックに入る場合には、現在のSB内のすでに再構成されたサンプルに加えて、現在のSBに対して(0,64)に位置するルーマサンプルがまだ再構成されていない場合、現在のブロックは、左SBの左下64×64ブロックおよび右下64×64ブロック内の参照サンプルも参照することができる(図24の2414)。そうでない場合、現在のブロックは、IBCの左SBの右下64×64ブロック内の参照サンプルも参照することができる(図24の2426)。
【0166】
現在のブロックが現在のSBの左下64×64ブロックに入る場合には、現在のSB内のすでに再構成されたサンプルに加えて、現在のSBに対するルーマ位置(64,0)がまだ再構成されていない場合、現在のブロックは、左SBの右上64×64ブロックおよび右下64×64ブロック内の参照サンプルも参照することができる(図24の2424)。そうでない場合、現在のブロックは、IBCの左SBの右下64×64ブロック内の参照サンプルも参照することができる(図24の2416)。
【0167】
現在のブロックが、現在のSBの右下64×64ブロックに入る場合、現在のブロックは、IBCの現在のSB内のすでに再構成されたサンプルのみを参照することができる(図24の2418および2428)。
【0168】
上述のように、いくつかの例示的実装形態では、局所ベースのCTU/SBと非局所ベースのCTU/SBのいずれか一方または両方が、IBC参照ブロックの探索および選択に使用されうる。加えて、オンチップRSMが局所参照に使用される場合、書き戻し遅延に関するIBC参照としてのすでに構成されたCTU/SBの利用可能性に関する制限の一部が緩和または除去されうる。そのような実装形態は、並列デコーディングが用いられるか否かにかかわらず適用されうる。
【0169】
IBCに使用されうる局所参照CTU/SBおよび非局所参照CTU/SBの例示的実装形態が図25に示されており、ここでもやはり、各正方形はCTU/SBを表す。斜線で網掛けされたCTU/SBは、現在のCTU/SB(「0」としてラベル付けされている)を表すのに対し、横線(「1」としてラベル付けされている)、縦線(「2」としてラベル付けされている)、および反転斜線(「3」としてラベル付けされている)で網掛けされたCTU/SBは、すでに構成されたエリアを表す。網掛けされていないCTU/SBは、まだ再構成されていないエリアを表す。図19および図20と同様の並列デコーディングが使用されると仮定されている。縦線(「2」)および反転斜線(「3」)で網掛けされたCTU/SBは、IBC参照のためにオフチップメモリのみが使用されるときのDPBへの書き戻し遅延に起因して、現在のCTU/SBのIBC参照として通常は除外される例示的なエリアを表す(図20参照)。オンチップRSMが使用される場合、図20の制限エリアのうちの1つまたは複数がRSMから直接参照されうるので、除外される必要はない。ここでIBC参照のためにRSMを介してアクセスすることができる制限エリアの数は、RSMのサイズに依存しうる。図25の例では、RSMは、1つのCTU/SBを保持し、上述のRSM更新メカニズムを採用することができると仮定されている。よって、縦線で網掛けされ、「2」とラベル付けされた左隣のCTU/SBは、局所参照に利用可能でありうる。その場合RSMは、左CTU/SBおよび現在のCTU/SBからのサンプルを保持する。よって、図25の例では、非局所IBC参照ブロックに利用可能な探索エリアは、「1」とラベル付けされたCTU/SB(探索エリア1(SA1)、または非局所探索エリア)を含み、局所IBC参照ブロックに利用可能な探索エリアは、「2」および「0」とラベル付けされたCTU/SB(この探索エリアは、探索エリア2(SA2)、または局所探索エリアと呼ばれうる)を含み、IBC参照ブロックの除外エリアは、書き戻し遅延により「3」とラベル付けされたCTU/SBを含む。いくつかの他の実装形態では、制限されたCTU/SB全体を保持することができる十分なオンチップRSMサイズを用いて、これらのすべての潜在的な制限エリアを、局所参照のためにRSMに含めることができる。例えば、「2」および「3」とラベル付けされた両方の左隣のブロックが局所探索エリアに含まれていてもよい。
【0170】
いくつかの他の実装形態では、「0」とラベル付けされた現在のCTU/SBのみ、または現在のCTU/SBの一部分が、局所参照のためにRSMに含まれうる。
【0171】
いくつかの例示的実装形態では、SA1内のサンプルは外部メモリに記憶されうる。
【0172】
いくつかの例示的実装形態では、SA2内のサンプルは、オンチップメモリに記憶されうる。
【0173】
いくつかの例示的実装形態では、外部メモリおよびオンチップメモリは、アクセス速度、アクセスクロック、アクセス帯域幅などといった異なるハードウェア特性を有する。
【0174】
IntraBC予測を実行するとき、ブロックベクトルが、SA1内に部分的に位置しSA2内に部分的に位置するブロックを指し示しているときに、特別な条件が発生しうる。この特別な条件下では、このブロックを予測ブロックとして使用する前に、さらなる制限または処理が適用される必要がありうる。
【0175】
いくつかの例示的実装形態では、この特別な条件下で、ブロックベクトルによって指し示されるブロックは、IntraBCの予測ブロックとして使用されることが許容されないか、または使用から除外される。
【0176】
図26は、それぞれのブロックベクトルによって指し示される様々な例示的なブロックを示している。ブロックAは、SA1およびSA2の両方と重複するため、予測ブロックとして使用されることが許容されず、ブロックBは、SA2に完全に含まれているため、予測ブロックとして使用されることが可能であり、ブロックCは、SA1に完全に含まれているため、予測ブロックとして使用されることが可能である。
【0177】
いくつかの例示的実装形態では、IntraBCのブロックベクトルが、SA1内に部分的に位置し、SA2内に部分的に位置するブロック(Bで表されている)を指し示している場合、SA1と重複しているB内のサンプルを置き換えるか、またはSA2と重複しているB内のサンプルを置き換えることが提案される。サンプルの置き換えは、予測に使用することができる境界サンプルを拡張することによって行われうる。例えば、SA1と重複しているB内のサンプルを置き換えるために、SA2内の境界サンプルが使用されてもよく、SA2と重複しているB内のサンプルを置き換えるために、SA1内の境界サンプルが使用されてもよい。
【0178】
いくつかの例示的実装形態では、サンプル置き換えが適用されるべき重複エリアを決定するために、重複エリアサイズが使用されうる。BとSA1との間の重複エリアサイズがBとSA2との間の重複エリアサイズよりも大きい場合には、BとSA2との間の重複部分に位置するサンプルが置き換えられ、逆もまた同様である。
【0179】
いくつかの例示的実装形態では、サンプル置き換えが適用されるべき重複エリアを決定するために、サンプルの数が使用されうる。BとSA1との間の重複部分で覆われているサンプルの数をS1と表記し、BとSA2との間の重複部分で覆われているサンプルの数をS2と表記する。BとSA2との間の重複部分に位置するサンプルは、S1がS2に重み係数(t1)を乗じたものよりも大きい(すなわち、S1>S2*t1)場合に置き換えられ、t1は事前定義されうるか、または動的にシグナリングされうる。同様に、BとSA1との間の重複部分に位置するサンプルは、S2がS1に重み係数(t2)を乗じたものよりも大きい場合に置き換えられ、t2は事前定義されうるか、または動的にシグナリングされうる。
【0180】
いくつかの例示的実装形態では、BとSA1との間の重複部分にサンプル置き換えが適用される場合、重複部分のサンプルを置き換えるためにSA2内のサンプルが使用されうる。同様に、BとSA2との重複部分にサンプル置き換えが適用される場合、重複部分のサンプル置き換えるためにSA1内のサンプルが使用されうる。
【0181】
いくつかの例示的実装形態では、図26に示されるように、CTU/SB 2602およびCTU/SB 2604は、禁止エリアを形成する。しかしながら、いくつかの他の実装形態では、CTU/SB 2602および/またはCTU/SB 2604はまた、局所探索エリア(または隣接する許容される探索エリアSA2)の一部であってもよい。例えば、オンチップメモリが2602および/または2604内のサンプルを保持するのに十分な大きさである場合。
【0182】
本開示は、ビデオエンコーディング/デコーディングのための方法、装置、およびコンピュータ可読媒体を説明している。本開示は、IntraBCに関する様々な問題に対処した。本開示に記載される方法、デバイス、およびコンピュータ可読媒体は、ビデオコーデックの性能を強化し、コーデックにおけるオンチップメモリの使用を最適化し、IntraBCのための予測エリアの選択および調整を容易にしうる。
【0183】
図27はビデオデータを処理するための例示的な方法2700を示している。方法1900は、ステップ2710、ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取るステップであって、少なくとも1つのブロックが現在のブロックを含む、ステップと、ステップ2720、ビデオフレームにおける第1の探索エリアを決定するステップであって、第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、第1の探索エリアが、現在のブロックとの重複を有さず、ブロックのリストを含み、IntraBC予測ブロックが、現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックである、ステップと、ステップ2730、第2の探索エリアを決定するステップであって、第2の探索エリアが、IntraBC予測ブロックを位置特定するための第2の候補エリアであり、第2の探索エリアが、(i)現在のブロックのサブブロック、および(ii)現在のブロックの隣接ブロックの少なくとも1つを含む、ステップと、ステップ2740、ブロックベクトルによって参照されるIntraBC予測ブロックを識別するステップと、ステップ2750、IntraBC予測ブロックと第1の探索エリアと第2の探索エリアとの間の空間関係に基づいて予測戦略を決定するステップと、ステップ2760、決定された予測に基づいて現在のブロックの少なくとも一部分をデコードするステップと、のうちの一部分または全部を含みうる。
【0184】
本開示の実施形態および実装形態では、必要に応じて、任意のステップおよび/または動作が任意の量または順序で組み合わされ、または配置されうる。ステップおよび/または動作のうちの2つ以上が並列に実行されてもよい。本開示の実施形態および実装形態は、別々に使用されても、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つまたは複数のプロセッサや1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルーマブロックまたはクロマブロックに適用されうる。ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUとして解釈されうる。ここでのブロックという用語は、変換ブロックを指すためにも使用されうる。以下の項目において、ブロックサイズという場合、それは、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、またはエリアサイズ(幅*高さ)、またはブロックのアスペクト比(幅:高さ、もしくは高さ:幅)のいずれかを指しうる。
【0185】
上述の技術は、コンピュータ可読命令を使用する、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装することができる。例えば、図28は、開示の主題の特定の実施形態を実施するのに適したコンピュータシステム(2800)を示している。
【0186】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)およびグラフィックスプロセッシングユニット(GPU)などによって直接的に、または解釈、マイクロコードの実行などを介して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムを受けうる、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングすることができる。
【0187】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行することができる。
【0188】
コンピュータシステム(2800)について図28に示されている構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(2800)の例示的実施形態に示されている構成要素のいずれか1つ、または構成要素の組み合わせに関して、依存性を有するものとも要件を有するものとも解釈されるべきではない。
【0189】
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力デバイスを含みうる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答しうる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(二次元ビデオ、立体ビデオを含む三次元ビデオなど)といった、必ずしも人間による意識的な入力に直接関連しない特定のメディアをキャプチャするために使用することもできる。
【0190】
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロホン(2806)、スキャナ(2807)、カメラ(2808)のうちの1つまたは複数(各々1つだけ図示されている)を含みうる。
【0191】
コンピュータシステム(2800)はまた、特定のヒューマンインターフェース出力デバイスも含みうる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を介して、1人または複数の人間ユーザの感覚を刺激しうる。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもありうる)、オーディオ出力デバイス(スピーカ(2809)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2810)、各々タッチスクリーン入力機能ありまたはなし、各々触覚フィードバック機能ありまたはなしであり、一部は、二次元視覚出力、または立体出力などの手段による三次元を超える出力を出力することができる場合もある、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)など)、ならびにプリンタ(図示せず)が含まれうる。
【0192】
コンピュータシステム(2800)はまた、人間がアクセス可能な記憶デバイス、ならびにCD/DVDまたは同様のメディア(2821)を有するCD/DVD ROM/RW(2820)を含む光学メディア、サムドライブ(2822)、リムーバブルハードドライブまたはソリッドステートドライブ(2823)、テープやフロッピーディスクなどのレガシー磁気メディア(図示せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(図示せず)などといった記憶デバイスの関連メディアも含むことができる。
【0193】
また、当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことも理解するはずである。
【0194】
コンピュータシステム(2800)はまた、1つまたは複数の通信ネットワーク(2855)へのインターフェース(2854)も含むことができる。ネットワークは、例えば、無線、有線、光でありうる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、ならびに遅延耐性などでありうる。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および地上放送テレビを含むテレビ有線または無線ワイドエリアデジタルネットワーク、ならびにCANバスを含む車両用および産業用などが含まれる。特定のネットワークは、一般に、(例えば、コンピュータシステム(2800)のUSBポートなどの)特定の汎用データポートまたは周辺バス(2849)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下に記載されるシステムバスへの接続によってコンピュータシステム(2800)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースやスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2800)は他のエンティティと通信することができる。そのような通信は、単方向、受信のみ(例えば、テレビ放送)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルエリアまたはワイドエリアのデジタルネットワークを使用した他のコンピュータシステムへの双方向とすることができる。上述のようなネットワークおよびネットワークインターフェースの各々で特定のプロトコルおよびプロトコルスタックを使用することができる。
【0195】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)に接続することができる。
【0196】
コア(2840)は、1つまたは複数の中央処理装置(CPU)(2841)、グラフィックスプロセッシングユニット(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形態の専用プログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(2844)、グラフィックスアダプタ(2850)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、ユーザがアクセスできない内蔵ハードドライブなどの内部大容量ストレージ(2847)、SSDなどと共にシステムバス(2848)を介して接続されうる。一部のコンピュータシステムでは、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でシステムバス(2848)にアクセスすることができる。周辺デバイスは、コアのシステムバス(2848)に直接、または周辺バス(2849)を介して接続することができる。一例では、スクリーン(2810)はグラフィックスアダプタ(2850)に接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0197】
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードを、ROM(2845)またはRAM(2846)に記憶することができる。RAM(2846)には暫定的なデータも記憶することができ、一方永続的なデータは、例えば、内部大容量ストレージ(2847)に記憶することができる。1つまたは複数のCPU(2841)、GPU(2842)、大容量ストレージ(2847)、ROM(2845)、RAM(2846)などと密接に関連付けることができるキャッシュメモリの使用によって、メモリデバイスのいずれかに対する高速記憶および取り出しを可能にすることができる。
【0198】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特に設計および構成されたものとすることもでき、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることもできる。
【0199】
非限定的な例として、アーキテクチャを有するコンピュータシステム(2800)、具体的にはコア(2840)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが1つまたは複数の有形のコンピュータ可読媒体において具現化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(2847)やROM(2845)などの非一時的な性質のものであるコア(2840)の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶し、コア(2840)によって実行することができる。コンピュータ可読媒体は、特定の必要性に従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2840)に、具体的にはその中の(CPU、GPU、およびFPGAなどを含む)プロセッサに、RAM(2846)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりにまたはソフトウェアと共に動作することができる、配線されるかまたは他の方法で回路において具現化された論理(例えば、アクセラレータ(2844))の結果として機能を提供することもできる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはこれらの両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0200】
本開示はいくつかの例示的実施形態を記載しているが、変更、置換、および様々な代替の等価物が存在し、それらは本開示の範囲内にある。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化する、よって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【0201】
付記A:頭字語
IBC:イントラブロックコピー
IntraBC:イントラブロックコピー
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足エンハンスメント情報
VUI:ビデオユーザビリティ情報
GOP:グループオブピクチャ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:グローバル移動体通信システム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺機器相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
HDR:ハイダイナミックレンジ
SDR:標準ダイナミックレンジ
JVET:共同ビデオ探索チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コーディングユニット
PU:予測ユニット
TU:変換ユニット
CTU:コーディングツリーユニット
PDPC:位置依存予測組み合わせ
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
PPS:ピクチャパラメータセット
APS:適応パラメータセット
VPS:ビデオパラメータセット
DPS:デコーディングパラメータセット
ALF:適応ループフィルタ
SAO:サンプル適応オフセット
CC-ALF:交差成分適応ループフィルタ
CDEF:制約付き方向性エンハンスメントフィルタ
CCSO:交差成分サンプルオフセット
LSO:ローカルサンプルオフセット
LR:ループ復元フィルタ
AV1:AOMediaビデオ1
AV2:AOMediaビデオ2
RPS:参照ピクチャセット
DPB:デコードされたピクチャバッファ
MMVD:動きベクトル差分によるマージモード
IntraBCまたはIBC:イントラブロックコピー
BV:ブロックベクトル
BVD:ブロックベクトル差分
RSM:参照サンプルメモリ
【符号の説明】
【0202】
101 予測されているサンプル
102 矢印
103 矢印
104 正方形ブロック
180 概略図
201 現在のブロック
202 周囲のサンプル
203 周囲のサンプル
204 周囲のサンプル
205 周囲のサンプル
206 周囲のサンプル
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 エンコードされたビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 エンコードされたビデオデータのコピー
408 クライアントサブシステム
409 エンコードされたビデオデータのコピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在のピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 デコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 コーディングされたビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構成モジュール
880 インターデコーダ
902 分割パターン
904 分割パターン
906 分割パターン
908 分割パターン
1002 T型パーティション
1004 T型パーティション
1006 T型パーティション
1008 T型パーティション
1010 すべて正方形のパーティション
1102 垂直二分割
1104 水平二分割
1106 垂直三分割
1108 水平三分割
1200 ベースブロック
1202 正方形パーティション
1204 正方形パーティション
1206 正方形パーティション
1208 正方形パーティション
1302 垂直三分割パターン
1304 水平三分割パターン
1402 パーティション
1404 パーティション
1406 パーティション
1408 パーティション
1410 全体の例示的パーティションパターン
1420 対応するツリー構造/表現
1502 正方形コーディングブロック
1504 第1レベルの分割
1506 第2レベルの分割
1602 インターコーディングされたブロック
1604 2つの異なるサイズを有する合計7つの変換ブロック
1802 CTU
1804 現在のCTU
1806 コーディングブロック
1808 太点線枠
1810 CTU/SB
2102 第1の中間時間
2104 中間時間
2106 中間時間
2108 中間時間
2302 パネル
2304 パネル
2402 パネル
2404 パネル
2700 ビデオデータを処理するための方法
2800 コンピュータシステム
2801 キーボード
2802 マウス
2803 トラックパッド
2805 ジョイスティック
2806 マイクロホン
2807 スキャナ
2808 カメラ
2809 スピーカ
2810 タッチスクリーン
2820 CD/DVD ROM/RW
2821 CD/DVDまたは同様のメディア
2822 サムドドライブ
2823 リムーバブルハードドライブまたはソリッドステートドライブ
2840 コア
2841 中央処理装置(CPU)
2842 グラフィックスプロセッシングユニット(GPU)
2843 フィールドプログラマブルゲートエリア(FPGA)
2844 特定のタスク用のハードウェアアクセラレータ
2845 読み出し専用メモリ(ROM)
2846 ランダムアクセスメモリ
2847 内部大容量ストレージ
2848 システムバス
2849 汎用データポートまたは周辺バス
2850 グラフィックスアダプタ
2854 インターフェース
2855 通信ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
【手続補正書】
【提出日】2023-06-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデータを処理するための方法であって、前記方法は、
ビデオフレームの少なくとも1つのブロックを含むビデオビットストリームを受け取るステップであって、前記少なくとも1つのブロックが現在のブロックを含む、ステップと、
前記ビデオフレームにおける第1の探索エリアを決定するステップであって、前記第1の探索エリアが、イントラブロックコピー(IntraBC)予測ブロックを位置特定するための第1の候補エリアであり、前記第1の探索エリアが、前記現在のブロックとの重複を有さず、ブロックのリストを含み、前記IntraBC予測ブロックが、前記現在のブロックの少なくとも一部分に対してIntraBC予測を実行するための候補ブロックである、ステップと、
第2の探索エリアを決定するステップであって、前記第2の探索エリアが、前記IntraBC予測ブロックを位置特定するための第2の候補エリアであり、前記第2の探索エリアが、(i)前記現在のブロックのサブブロック、および(ii)前記現在のブロックの隣接ブロックの少なくとも1つを含む、ステップと、
ブロックベクトルによって参照される前記IntraBC予測ブロックを識別するステップと、
前記IntraBC予測ブロックと前記第1の探索エリアと前記第2の探索エリアとの間の空間関係に基づいて予測を決定するステップと、
前記決定された予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップと
を含む方法。
【請求項2】
前記予測を決定するステップは、
前記IntraBC予測ブロックが前記第1の探索エリアに部分的に位置し、前記第2の探索エリアに部分的に位置することに応答して、前記IntraBC予測ブロックを、前記現在のブロックの前記少なくとも一部分に対するIntraBC予測に使用することを禁止するステップ
を含む、請求項1に記載の方法。
【請求項3】
前記予測を決定するステップは、
前記IntraBC予測ブロックが前記第1の探索エリアの部分集合または前記第2の探索エリアの部分集合であることに応答して、前記IntraBC予測ブロックを、前記現在のブロックの前記少なくとも一部分に対するIntraBC予測に使用することを許可するステップ
を含む、請求項1に記載の方法。
【請求項4】
前記現在のブロックがスーパーブロックを含む、請求項1に記載の方法。
【請求項5】
前記現在のブロックの隣接ブロックが同じ行内の、前記現在のブロックの左のブロックであり、前記現在のブロックの隣接ブロックが前記現在のブロックと同じサイズを有する、請求項1に記載の方法。
【請求項6】
前記現在のブロックの左上ピクセルが(x0,y0)の座標位置を有し、
前記ブロックのリスト内の各ブロックの左上ピクセルが(x,y)の座標位置を有し、
yはy0より小さく、
xは[x0+2(y0-y)-D]より小さく、
x0、y0、x、およびyは非負の数であり、Dは、IntraBCモードに対して制限される直近の再構成ブロックの数である、
請求項1に記載の方法。
【請求項7】
Dは2に等しい、請求項6に記載の方法。
【請求項8】
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第1の重複エリアにおいて前記第1の探索エリアと重複し、
前記IntraBC予測ブロックが、前記IntraBC予測ブロックの第2の重複エリアにおいて前記第2の探索エリアと重複し、
前記予測を決定するステップは、
前記第1の重複エリアのサイズおよび前記第2の重複エリアのサイズに基づいて、前記第1の重複エリアおよび前記第2の重複エリアからターゲット重複エリアを選択するステップと、
前記ターゲット重複エリア内のサンプルを、前記IntraBC予測ブロック内の前記ターゲット重複エリアに隣接する境界サンプルで置き換えて、更新されたIntraBC予測ブロックを取得するステップと
を含み、
前記予測に基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップは、
前記更新されたIntraBC予測ブロックに基づいて前記現在のブロックの前記少なくとも一部分をデコードするステップ
を含む、
請求項1に記載の方法。
【請求項9】
前記ターゲット重複エリアを選択するステップは、
前記第2の重複エリアのサイズが前記第1の重複エリアのサイズ以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択するステップと、
前記第1の重複エリアのサイズが前記第2の重複エリアのサイズより大きいことに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択するステップと
を含む、請求項8に記載の方法。
【請求項10】
前記ターゲット重複エリアを選択するステップは、
前記第2の重複エリアのサイズが第1の閾値以上であることに応答して、前記第1の重複エリアを前記ターゲット重複エリアとして選択するステップであって、前記第1の閾値が、前記第1の重複エリアのサイズと所定の第1のバイアス係数との積である、ステップと、
前記第1の重複エリアのサイズが第2の閾値以上であることに応答して、前記第2の重複エリアを前記ターゲット重複エリアとして選択するステップであって、前記第2の閾値が、前記第2の重複エリアのサイズと所定の第2のバイアス係数との積である、ステップと
を含む、請求項8に記載の方法。
【請求項11】
前記第1の重複エリアおよび前記第2の重複エリアのサイズが、それぞれのエリア内のサンプルの数で表される、請求項10に記載の方法。
【請求項12】
前記サンプルの数が、
ルーマサンプルの数、または
クロマサンプルの数
の1つを含む、請求項11に記載の方法。
【請求項13】
前記ターゲット重複エリア内のサンプルを置き換えるステップは、
前記ターゲット重複エリアが前記第1の重複エリアであることに応答して、前記ターゲット重複エリア内のサンプルを前記第2の重複エリアからのサンプルで置き換えるステップと、
前記ターゲット重複エリアが前記第2の重複エリアであることに応答して、前記ターゲット重複エリア内のサンプルを前記第1の重複エリアからのサンプルで置き換えるステップと
を含む、請求項8に記載の方法。
【請求項14】
前記第2の探索エリア内のサンプルが、前記ビデオデータを処理するビデオコーデックのオンチップメモリに記憶される、請求項1に記載の方法。
【請求項15】
請求項1から14のいずれか一項に記載の方法を実行するように構成された装置。
【請求項16】
プロセッサに請求項1から14のいずれか一項に記載の方法を実行させるためのプログラム。
【国際調査報告】