(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041998
(43)【公開日】2024-03-27
(54)【発明の名称】履歴ベースの動きベクトル予測のための方法並びにその装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/52 20140101AFI20240319BHJP
【FI】
H04N19/52
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024007222
(22)【出願日】2024-01-22
(62)【分割の表示】P 2022205285の分割
【原出願日】2019-07-05
(31)【優先権主張番号】62/698,559
(32)【優先日】2018-07-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/203,364
(32)【優先日】2018-11-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュウ,シャオゾン
(72)【発明者】
【氏名】リー,シャン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】 (修正有)
【課題】履歴ベースの動きベクトル予測のための方法並びにその装置及びコンピュータプログラムを提供する。
【解決手段】デコーダのためのビデオ復号方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含む。ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットの複数のブロックはグリッドとして配置されている。方法はまた、ユニットのうちの1つについて、履歴運動ベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと、復号された現在のブロックの動きベクトルでHMVPバッファを更新するステップと、現在のブロックが、ユニットのうちの1つのグリッド内に含まれる行の先頭にあるかどうかを判断するステップと、を含む。
【選択図】
図13
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ復号の方法であって、
前記デコーダが、
符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、前記現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける前記複数のブロックはグリッドとして配置される、ステップと、
前記複数のユニットのうちの1つのユニットについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、前記複数のブロックからの現在のブロックを復号するステップと、
復号された前記現在のブロックの動きベクトルで前記HMVPバッファを更新するステップと、
前記現在のブロックが前記複数のユニットのうちの前記1つのユニットのグリッドに含まれる行の先頭にあるかどうかを判断するステップと、
前記現在のブロックが前記行の先頭であると判断したことに応じて、前記HMVPバッファをリセットするステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による組み込み]
本願は、2018年11月28日に出願された米国特許出願第16/203,364号「METHOD AND APPARATUS FOR HISTORY-BASED MOTION VECTOR PREDICTION」の優先権の利益を主張する。同出願は、2018年7月16日に出願された米国仮出願第62/698,559号「METHOD AND APPARATUS FOR HISTORY-BASED MOTION VECTOR PREDICTITION」の優先権の利益を主張している。これらの全内容は参照により明細書に組み込まれる。
【0002】
[技術分野]
本開示は、一般的にビデオ符号化に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景の説明は、本開示の文脈を一般的に提示するためのものである。現在の発明者の作業は、その作業がこの背景セクションに記載されている範囲で、並びに出願時に他の方法では先行技術として適格でない可能性がある説明の側面では、本開示に対する先行技術として明示的にも暗示的にも認められていない。
【0004】
動き補償を用いるインターピクチャ予測を使用するビデオ符号化及び復号は、数十年も知られている。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプル及び関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば60ピクチャ/秒又は60Hzの固定又は可変のピクチャレート(略式に、フレームレートとしても知られる)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えばサンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080の輝度サンプル解像度)は1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶領域を必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅又は記憶領域の必要性を、場合によっては2桁以上減らすのに役立つ可能性がある。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組合せを用いることができる。可逆圧縮は、元の信号の正確なコピーを、圧縮された元の信号から再構築することができる技術をいう。非可逆圧縮を使用するとき、再構築された信号は、元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みは、再構築された信号を意図された用途に役立たせるために十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は、用途に依存し、例えば特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン寄与アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い許可/許容可能な歪みが、より高い圧縮比をもたらすことができることを反映し得る。
【0006】
動き補償は、非可逆圧縮技術とすることができ、以前に再構築されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に、新たに再構築されたピクチャ又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じものとすることができる。MVは、X及びYの2次元又は3次元を有することができ、3次元は、使用中の参照ピクチャの表示である(後者は間接的に、時間次元とすることができる)。
【0007】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVを、他のMVから、例えば再構築中の領域に空間的に隣接し、復号順でそのMVに先行するサンプルデータの別の領域に関連するMVから、予測することができる。そのようにすることにより、MVを符号化するために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増加させることができる。MV予測は、例えばカメラから導出された入力ビデオ信号(ナチュラルビデオとして知られる)を符号化する際に、単一のMVが適用可能な領域よりも大きな領域が同様の方向に移動する統計的可能性があり、したがって、場合によっては、隣接領域のMVから導出される同様の動きベクトルを使用して予測することができるので、効果的に機能することができる。その結果、所与の領域について見つかったMVは、周囲のMVから予測されるMVと類似又は同一になり、そして、これは、エントロピー符号化の後、MVを直接符号化する場合に使用されるであろうものよりも少ないビット数で表現することができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測それ自体は、例えばいくつかの周囲のMVから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【0008】
様々なMV予測機構が、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)で説明されている。H.265が提供する多くのMV予測機構のうち、ここで説明されるのは、これから「空間マージ」と呼ばれる技術である。
【0009】
動作ベクトル予測子の履歴バッファが、符号化又は復号を実行するために使用されることがある。一般に、履歴バッファの維持は、各ブロックの後に行われ、符号化又は復号の順序で完了する。このブロックがMV情報のセットとインターモードで符号化される場合、このブロックのMVは、バッファを更新するためにHMVPバッファに入れられる。現在のブロックを符号化又は復号するとき、現在のブロックに対するMV予測子は、以前に符号化された空間的/隣接ブロックから来る可能性がある。これらのブロックのいくつかは、依然としてHMVPバッファ内にある可能性がある。新たに復号/符号化されたMVをHMVPバッファに入れるとき、新たなMVがHMVPバッファ内のすべての以前のMVと異なることを確認するために、いくつかの比較が行われることがある。バッファ内に同じ値を有するMVが既に存在する場合、古いMVはバッファから削除されることになり、新しいMVが最後のエントリとしてバッファに入れられる。履歴バッファのこれらの一般的な維持手順は、符号化又は復号されている現在のブロックに関連しない可能性がある情報を履歴バッファから除去する必要があるときに、履歴バッファを適切にリセットしない。
【発明の概要】
【0010】
本開示の例示的な実施形態は、デコーダのためのビデオ復号の方法を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでHMVPバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの1つのグリッド内に含まれる行の先頭(beginning)にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファをリセットするステップを更に含む。
【0011】
本開示の例示的実施形態は、ビデオ復号のためのビデオデコーダを含む。ビデオデコーダは、符号化されたビデオビットストリームから現在のピクチャを取得するように構成された処理回路を含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の前記複数のブロックはグリッドとして配置されている。処理回路は更に、ユニットのうちの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するように構成される。処理回路は更に、復号された現在のブロックの動きベクトルでHMVPバッファを更新するように構成される。処理回路は更に、現在のブロックがユニットのうちの1つのグリッド内に含まれる行の先頭にあるかどうかを判断するように構成される。処理回路は更に、現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファをリセットするように構成される。
【0012】
本開示の例示的実施形態は、ビデオデコーダ内のプロセッサによって実行されると、プロセッサに方法を実行させる命令を有する非一時的なコンピュータ読取可能媒体を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでHMVPバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの1つのグリッド内に含まれる行の先頭にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファをリセットするステップを更に含む。
【図面の簡単な説明】
【0013】
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう:
【0014】
【
図1】一実施形態による通信システム(100)の簡略化されたブロック図の概略図である。
【0015】
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【0016】
【
図3】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0017】
【
図4】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0018】
【
図5】別の実施形態によるエンコーダのブロック図を示す。
【0019】
【
図6】別の実施形態によるデコーダのブロック図を示す。
【0020】
【
図7】現在のブロックと周囲の空間マージ候補の概略図である。
【0021】
【0022】
【0023】
【
図10A】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【
図10B】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【0024】
【
図11】符号化ツリーユニットに分割された例示のピクチャを示す図である。
【0025】
【
図12】タイルに分割された例示のピクチャを示す図である。
【0026】
【
図13】エンコーダ又はデコーダによって実行されるプロセスの一実施形態を示す図である。
【0027】
【
図14】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0028】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示している。通信システム(100)は、例えばネットワーク(150)を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム(100)は、ネットワーク(150)を介して相互接続される第1ペアの端末デバイス(110)及び(120)を含む。
図1の例では、第1ペアの端末デバイス(110)及び(120)は、データの一方向送信を行う。例えば端末デバイス(110)は、ネットワーク(150)を介して他の端末デバイス(120)へ伝送するために、ビデオデータ(例えば端末デバイス(110)によってキャプチャされるビデオピクチャのストリーム)を符号化してよい。符号化されたビデオデータを、1つ以上の符号化されたビデオビットストリームの形態で送信することができる。端末デバイス(120)は、ネットワーク(150)から符号化されたビデオデータを受け取り、符号化されたビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してよい。一方向性データ伝送は、媒体提供アプリケーション等において一般的であり得る。
【0029】
別の例では、通信システム(100)は、例えばビデオ会議中に起こり得る符号化されたビデオデータの双方向伝送を行う、第2ペアの端末デバイス(130)及び(140)を含む。データの双方向伝送のために、端末デバイス(130)及び(140)の各端末デバイスは、ネットワーク(150)を介して端末デバイス(130)及び(140)のうちの他の端末デバイスへ伝送するために、ビデオデータ(例えば端末デバイスによってキャプチャされるビデオピクチャのストリーム)を符号化してよい。また、端末デバイス(130)及び(140)の各端末デバイスは、端末デバイス(130)及び(140)のうちの他の端末デバイスによって送信された符号化されたビデオデータを受け取ってよく、符号化されたビデオデータを復号してビデオピクチャを復元してよく、復元されたビデオデータに従って、アクセス可能なディスプレイデバイス上にビデオピクチャを表示してよい。
【0030】
図1の例では、端末デバイス(110)、(120)、(130)及び(140)は、サーバ、パーソナルコンピュータ及びスマートフォンとして図示されているが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び/又は専用のビデオ会議機器での用途を見つける。ネットワーク(150)は、符号化されたビデオデータを端末デバイス(110)、(120)、(130)及び(140)の中で伝達する任意の数のネットワークを表し、例えばワイヤ線(有線)及び/又は無線通信ネットワークを含む。通信ネットワーク(150)は、回路切替及び/又はパケット切替チャネルでデータを交換してよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以下で説明されない限り、本開示の動作には重要ではないことがある。
【0031】
図2は、本開示の主題の適用の例示として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を図示している。開示される主題は、例えばビデオ会議、デジタルテレビ、CD、DVD、メモリスティック等を含むデジタルメディア上における圧縮ビデオの格納を含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0032】
ストリーミングシステムは、キャプチャサブシステム(213)を含んでよい。キャプチャサブシステム(213)は、例えば圧縮されていないビデオピクチャのストリーム(202)を作成するビデオソース(201)、例えばデジタルカメラを含むことができる。一例では、ビデオピクチャのストリーム(202)は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム(202)は、符号化されたビデオデータ(204)(又は符号化されたビデオビットストリーム)と比べると、高データボリュームを強調するために、太線で示されており、ビデオソース(201)に結合されるビデオエンコーダ(203)を含む電子デバイス(220)によって処理することができる。ビデオエンコーダ(203)は、以下でより詳細に説明される開示される主題の態様を可能に又は実装するために、ハードウェア、ソフトウェア又はそれらの組合せを含むことができる。符号化されたビデオデータ(204)(又は符号化されたビットストリーム(204))は、ビデオピクチャのストリーム(202)と比べると、より低いデータボリュームを強調するために、細線で示されており、将来の使用のために、ストリーミングサーバ(205)上に格納され得る。
図2のクライアントサブシステム(206)及び(208)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、符号化されたビデオデータ(204)のコピー(207)及び(209)を取り出すことができる。クライアントサブシステム(206)は、例えば電子デバイス(230)内にビデオデコーダ(210)を含むことができる。ビデオデコーダ(210)は、符号化されたビデオデータの入ってきたコピー(207)を復号し、ディスプレイ(212)(例えばディスプレイ画面)又は他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(211)を作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(204)(207)及び(209)(例えばビデオストリーム)を、特定のビデオ符号化/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T推奨のH.265を含む。一例では、開発中のビデオ符号化規格は、略式に、Versatile Video Coding又はVVCとして知られている。開示される主題は、VVCのコンテキストで使用されてよい。
【0033】
電子デバイス(220)及び(230)は他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば電子デバイス(220)はビデオデコーダ(図示せず)を含むことができ、同様に電子デバイス(230)はビデオエンコーダ(図示せず)を含むことができる。
【0034】
図3は、本開示の実施形態によるビデオデコーダ(310)のブロック図を示している。ビデオデコーダ(310)を電子デバイス(330)に含めることができる。電子デバイス(330)は、レシーバ(331)(例えば受信回路)を含むことができる。ビデオデコーダ(310)を、
図2の例のビデオデコーダ(210)の代わりに使用することができる。
【0035】
レシーバ(331)は、ビデオデコーダ(310)によって復号されるべき1つ以上の符号化されたビデオシーケンスを受け取ってよく;同じ又は別の実施形態では、一度に1つの符号化されたビデオシーケンスであってよく、この場合、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスとは独立である。符号化されたビデオシーケンスは、チャネル(301)から受け取られてよく、該チャネル(301)は、符号化されたビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。レシーバ(331)は、エンティティ(図示せず)を使用してそれらのそれぞれに転送され得る他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリームとともに、符号化されたビデオデータを受け取ってよい。レシーバ(331)は、符号化されたビデオストリームを他のデータとは分離してよい。ネットワークジッタと戦うために、バッファメモリ(315)は、レシーバ(331)とエントロピーデコーダ/パーサ(320)(以後、「パーサ(320)」)の間に結合されてよい。特定の適用では、バッファメモリ(315)は、ビデオデコーダ(310)の一部である。他の例では、バッファメモリ(315)は、ビデオデコーダ(31)(図示せず)の外部とすることができる。また他の例では、ビデオデコーダ(310)の内部の、例えば再生タイミングを扱う別のバッファメモリ(315)に加えて、例えばネットワークジッタと戦うバッファメモリ(図示せず)がビデオデコーダ(310)の外部に存在する可能性もある。レシーバ(331)が、十分な帯域幅及び制御可能性の格納/転送デバイスから又は同期ネットワーク(isosynchronous network)からデータを受け取っているとき、バッファメモリ(315)は必要とされないことがあるか又は小さい可能性がある。そのようなベストエフォートのパケットネットワークにおける使用のために、バッファメモリ(315)は必要とされることがあり、比較的大きいものとすることができ、有利には適応サイズとすることができ、少なくとも部分的に、ビデオデコーダ(310)の外部でオペレーティングシステム内又は同様の要素(図示せず)内で実装されてよい。
【0036】
ビデオデコーダ(310)は、符号化されたビデオシーケンスからシンボル(321)を再構築するためにパーサ(320)を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ(310)の動作を管理するために使用される情報と、潜在的に
図3に示したように電子デバイス(33)の一体部分ではないが、電子デバイス(330)と結合することができるレンダリングデバイス(312)(例えばディスプレイ画面)等のレンダリングデバイスを制御する情報を含む。レンダリングデバイスのための制御情報は、補足強調情報(SEI:Supplementary Enhancement Information)メッセージ又はビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形であってよい。パーサ(320)は、受け取った符号化されたビデオシーケンスを解析/エントロピー復号してよい。符号化されるビデオシーケンスの符号化は、ビデオ符号化技術又は規格によるものとすることができ、可変長符号化、ハフマン符号化、文脈依存を伴うか又は伴わない算術符号化等を含む、様々な原理に従うことができる。パーサ(320)は、符号化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについての1組のサブグループパラメータを、グループの少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マイクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことができる。パーサ(320)は、符号化されたビデオシーケンスから、例えば変換係数、量子化気パラメータ値、動きベクトル等の情報も抽出し得る。
【0037】
パーサ(320)は、シンボル(321)を作成するよう、バッファメモリ(315)から受け取ったビデオシーケンスに対してエントロピー復号/解析操作を実行し得る。
【0038】
シンボル(321)の再構築は、符号化されたビデオピクチャ又はその一部(例えばインター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて、複数の異なるユニットを要する可能性がある。どのユニットが及びどのように関与するかは、符号化されたビデオシーケンスからパーサ(320)によって解析されたサブグループ制御情報によって制御できる。以下、パーサ(320)と複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確性のために示されない。
【0039】
すでに述べた機能ブロックの他に、ビデオデコーダ(310)を、以下で説明されるように複数の機能ユニットに概念的に細分することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは、相互に密接に相互作用し、少なくとも部分的に相互に統合される可能性がある。しかしながら、開示される主題を説明する目的のために、以下、機能ユニットへの概念的細分は適切である。
【0040】
第1ユニットは、スカラー/逆変換ユニット(351)である。スカラー/逆変換ユニット(351)は、量子化された変換係数、並びに使用すべき変換、ブロックサイズ、量子化因子、量子化スケーリングメトリクス等を含む制御情報を、パーサ(32)からのシンボル(321)として受け取る。スカラー/逆変換ユニット(351)は、アグリゲータ(355)に入力することができるサンプル値を含むブロックを出力することができる。
【0041】
場合によって、スカラー/逆変換ユニット(351)の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係する可能性がある。そのような予測情報を、イントラピクチャ予測ユニット(352)によって提供することができる。いくつかの場合では、イントラピクチャ予測ユニット(352)は、現在のピクチャバッファ(358)からフェッチされた、周囲の既に再構築された情報を使用して、同じサイズのブロック及び再構築中のそのブロックの形状を生成する。現在のピクチャバッファ(358)は、例えば部分的に再構築された現在のピクチャ及び/又は完全に再構築された現在のピクチャをバッファする。アグリゲータ(355)は、場合によって、サンプルごとに、予測ユニット(352)によって生成された予測情報を、スカラー/逆変換ユニット(351)によって提供されるような出力サンプル情報に追加する。
【0042】
他の場合には、スカラー/逆変換ユニット(351)の出力サンプルは、インター符号化された、潜在的には動き補償されたブロックに関係する可能性がある。そのような場合、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測のために使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(321)に従って、フェッチされたサンプルを動き補償した後、出力サンプル情報を生成するために、これらのサンプルを、アグリゲータ(355)によって、(この場合、残差サンプル又は残差信号と呼ばれる)スカラー/逆変換ユニット(351)の出力に追加することができる。動き補償予測ユニット(353)が予測サンプルをフェッチする参照ピクチャメモリ(357)内のアドレスを、例えばX、Y及び参照ピクチャコンポーネントを有することができるシンボル(321)の形態で動き補償予測ユニット(343)に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに、参照ピクチャメモリ(357)からフェッチされるサンプル値の補間、動きベクトル予測機構等も含むことができる。
【0043】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされるインループフィルタ技術を含むことができるが、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)以前の部分の復号の間に取得されるメタ情報に応じるだけでなく、以前に再構築されてループフィルタされたサンプル値にも応じたものとすることができる。
【0044】
ループフィルタユニット(356)の出力は、レンダリングデバイス(312)に出力することができ、将来のインターピクチャ予測での使用のために参照ピクチャメモリ(357)に格納することができ、サンプルストリームとすることができる。
【0045】
特定の符号化されたピクチャは、いったん十分に再構築されると、将来の予測のために参照ピクチャとして使用することができる。例えば現在のピクチャに対応する符号化されたピクチャが十分に再構築されて、符号化されたピクチャが参照ピクチャとして(例えばパーサ(320)によって)識別されると、現在のピクチャバッファ(358)は、参照ピクチャメモリ(357)の一部になることができ、続く符号化されたピクチャの再構築を開始する前にフレッシュな現在のピクチャバッファを再割り当てすることができる。
【0046】
ビデオデコーダ(310)は、ITU-T Rec. H265等の規格の所定のビデオ圧縮技術に従って復号動作を実行してよい。符号化されたビデオシーケンスは、該符号化されたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格のドキュメントとしてのプロファイルの双方に固着するという意味で、使用されているビデオ圧縮技術又は規格によって指定されるシンタックスに準拠し得る。具体的に、プロファイルは、特定のツールを、ビデオ圧縮技術又は規格で利用可能なツールのすべてから、そのプロファイルの下で使用するための利用可能な唯一のツールとして選択することができる。また、準拠のために必要なことは、符号化されたビデオシーケンスの複雑性が、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることである。場合によって、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズ等を制約する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、符号化されたビデオシーケンスでシグナリングされるHRDバッファ管理のためのメタデータを通して更に制約される可能性がある。
【0047】
実施形態において、レシーバ(331)は、符号化されたビデオとともに追加の(冗長)データを受け取ってよい。追加のデータは、符号化されたビデオシーケンスの一部として含まれてよい。追加のデータは、ビデオデコーダ(310によって、データを適切に復号し、かつ/又は元のビデオデータをより正確に再構築するために使用されてよい。追加のデータは、例えば時間的、空間的又は信号雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方エラー訂正コード等の形態とすることができる。
【0048】
図4は、本開示の実施形態によるビデオエンコーダ(403)のブロック図を示している。ビデオエンコーダ(403)は電子デバイス(420)に含まれる。電子デバイス(420)はトランスミッタ(440)(例えば送信回路)を含む。ビデオエンコーダ(403)を、
図2の例のビデオエンコーダ(203)の代わりに使用することができる。
【0049】
ビデオエンコーダ(403)は、ビデオソース(401)(
図4の例では、電子デバイス(420)の一部ではない)からビデオサンプルを受け取ってよく、ビデオソース(401)は、ビデオエンコーダ(403)によって符号化されるべきビデオイメージをキャプチャし得る。別の例では、ビデオソース(401)は、電子デバイス(420)の一部である。
【0050】
ビデオソース(401)は、任意の適切なビット深度(例えば8ビット、10ビット、12ビット、...)、任意の色空間(例えばBT.601 Y CrCB、RGB、...)及び任意の適切なサンプリング構造(例えばY CrCb 4:2:0、Y CrCb 4:4:4)とすることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(403)によって符号化されるべきソースビデオシーケンスを提供してよい。メディアサービングシステムでは、ビデオソース(401)は、以前に準備されたビデオを格納しているストレージデバイスであってよい。ビデ会議システムでは、ビデオソース(401)は、ローカルイメージ情報をビデオシーケンスとしてキャプチャするカメラであってよい。ビデオデータは、シーケンスとして見られるときに動きを伝える、複数の個々のピクチャとして提供されてよい。ピクチャそれ自体が、ピクチャの空間アレイとして構成されてもよく、この場合、各ピクチャは、使用中のサンプリング構造、色空間等に応じて1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0051】
実施形態によると、ビデオエンコーダ(403)は、ソースビデオシーケンスのピクチャを、リアルタイムで又は適用によって要求される任意の他の時間制約下で、符号化されたビデオシーケンス(443)に符号化して圧縮することができる。適切な符号化スピードを実施することは、コントローラ(450)の1つの機能である。いくつかの実施形態において、コントローラ(450)は、以下で説明される他の機能ユニットを制御し、それらの他の機能ユニットに機能的に結合される。結合は明確性のために示されていない。コントローラ(450)によって設定されたパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル検索範囲等を含むことができる。コントローラ(45)は、特定のシステム設計のために最適化されたビデオエンコーダ(403)に関連する、他の適切な機能を有するように構成され得る。
【0052】
いくつかの実施形態において、ビデオエンコーダ(403)は、符号化ループで動作するように構成される。過剰に単純化された説明として、一例において、符号化ループは、(例えば符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することに関与する)ソースコーダ(430)と、ビデオエンコーダ(403)に組み込まれた(ローカル)デコーダ(433)を含むことができる。デコーダ(433)は、(リモート)デコーダが作成する方法と同様の方法で(シンボルと、符号化されたビデオビットストリームとの間の任意の圧縮が、開示される主題で考慮されるビデオ圧縮技術で可逆であるように)シンボルを再構築してサンプルデータを作成する。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)に依存しないビット正確な結果(bit-exact results)をもたらすので、参照ピクチャメモリ(434)の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」ものと全く同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本的原理(及び例えばチャネルエラーのために同期生を維持できない場合に結果として生じるドリフト)は、いくつかの関連技術において同様に使用される。
【0053】
「ローカル」デコーダ(433)の動作は、
図3に関連して上記で既に詳述した、ビデオデコーダ(310)のような「リモート」デコーダのものと同じにすることができる。しかしながら、簡潔に
図3も参照すると、シンボルが利用可能であり、エントロピーコーダ(445)及びパーサ(320)による符号化ビデオシーケンスへのシンボルの符号化/復号は可逆とすることができ、バッファメモリ(315)を含むビデオデコーダ(310)のエントロピー復号部分及びパーサ(320)は、ローカルデコーダ(433)では完全に実装されないことがある。
【0054】
この時点で行うことができる観察は、デコーダ内に存在する構文解析/エントロピー復号を除く任意のデコーダ技術も必ず、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があることである。この理由のために、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に説明されるデコーダ技術の反対であるので、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0055】
動作中に、いくつかの例において、ソースコーダ(430)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する、動き補償予測符号化を実行してよい。このようにして、符号化エンジン(432)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差を符号化する。
【0056】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号してよい。符号化エンジン(432)の動作は有利には、非可逆プロセスであり得る。符号化されたビデオデータがビデオデコーダ(
図4では図示せず)で復号され得るとき、再構築されたビデオシーケンスは、典型的に、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってよい。ローカルビデオデコーダ(433)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(434)に記憶させてよい。このようにして、ビデオエンコーダ(403)は、共通のコンテンツを有する再構築された参照ピクチャのコピーを、遠端のビデオデコーダによって得られることになる(送信エラーのない)再構築された参照ピクチャとしてローカルに記憶してよい。
【0057】
予測子(435)は、符号化エンジン(432)について予測探索を実行してよい。すなわち、符号化されるべき新しいピクチャに対して、予測子(435)は、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータについて、参照ピクチャメモリ(434)を検索してよく、これらは、新たなピクチャについて適切な予測参照として機能し得る。予測子(435)は、適切な予測参照を見つけるために、ピクセルブロックバイサンプルブロックベース(sample block-by-pixel block basis)で作用し得る。場合によっては、予測子(435)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
【0058】
コントローラ(450)は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(430)の符号化動作を管理してよい。
【0059】
前述の機能ユニットのすべての出力は、エントロピーコーダ(445)におけるエントロピー符号化を受けてよい。エントロピーコーダ(445)は、例えばハフマン符号化、可変長符号化、算術符号化等の当業者に公知の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0060】
トランスミッタ(440)は、エントロピーコーダ(445)によって作成された符号化されたビデオシーケンスをバッファリングして、通信チャネル(460)を介した送信の準備を行ってよく、通信チャネル(460)は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。トランスミッタ(440)は、ビデオコーダ(403)からの符号化されたビデオデータを、例えば符号化されたオーディオデータ及び/又は補助データストリーム(図示されないソース)のような、送信されるべき他のデータとマージしてよい。
【0061】
コントローラ(450)は、ビデオエンコーダ(403)の動作を管理してよい。符号化の間、コントローラ(450)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当ててよく、該符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得る。例えばピクチャは、しばしば、次のピクチャタイプの1つとして割り当てられてよい:
【0062】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用することなく、符号化されて復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR」:Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0063】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。
【0064】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構築のために、2つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0065】
ソースピクチャは一般に、空間的に複数のサンプルブロック(例えば各々4×4、8×8、4×8又は16×16サンプルのブロック)に分割され、ブロック毎に符号化されてよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えばIピクチャのブロックは、非予測的に符号化されてもよく、あるいはこれらは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。
【0066】
ビデオエンコーダ(403)は、ITU-T Rec. H.265等の所定のビデオ符号化技術又は規格に従って符号化動作を実行してよい。その動作において、ビデオエンコーダ(403)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を悪用する予測符号化動作を含む、様々な圧縮動作を実行してよい。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術又は規格によって指定された構文に準拠し得る。
【0067】
一実施形態では、トランスミッタ(440)は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ(430)は、そのようなデータを、符号化されたビデオシーケンスの一部として含んでよい。追加データは、時間的/空間的/SNR強調層、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEI(Supplementary Enhancement Information)メッセージ、視覚的ユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメント等を含んでもよい。
【0068】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャの空間相関の使用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を使用する。一例では、現在のピクチャと呼ばれる符号化/復号中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオ内の、以前に符号化されて依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックを、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合は、参照ピクチャを識別する三次元(third dimension)を有することができる。
【0069】
いくつかの実施形態において、双予測技術(bi-prediction technique)を、インターピクチャ予測において使用することができる。双予測技術によれば、ビデオ内の現在のピクチャに対して復号順で両方とも先にある(しかし、それぞれ、表示順では、過去及び将来であり得る)第1及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによって符号化できる。該ブロックは、第1参照ブロックと第2参照ブロックの組合せによって予測できる。
【0070】
さらに、符号化効率を改善するために、マージモード技法をインターピクチャ予測で使用することができる。
【0071】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックのユニットで実行される。例えばHEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU:coding tree units)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのような同じサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロミナンスCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUを、1つ又は複数の符号化ユニット(CU)に再帰的に4分木分割することができる。例えば64×64ピクセルのCTUを、64×64ピクセルの1つの符号化ユニット(CU)、32×32ピクセルの4つのCU又は16×16ピクセルの16個のCUに分割することができる。一例では、各CUを分析して、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定する。CUは時間的及び/又は空間的予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルマ予測ブロック(PB)と2つのクロミナンスPBを含む。一実施形態では、符号化(符号化/復号)における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のピクセルに対する値(例えばルマ値)の行列を含む。
【0072】
図5は、本開示の別の実施形態によるビデオエンコーダ(503)の図を示す。ビデオエンコーダ(503)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば予測ブロック)を受け取り、処理ブロックを、符号化されたビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一実施形態では、ビデオエンコーダ(503)は、
図2の例のビデオエンコーダ(203)の代わりに使用される。
【0073】
HEVCの例では、ビデオエンコーダ(503)は、8×8サンプルの予測ブロック等の処理ブロックのサンプル値のマトリックスを受け取る。ビデオエンコーダ(503)は、処理ブロックが、イントラモード、インターモード、あるいは例えばレート歪み最適化を用いる双予測モードを使用して、最も良く符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化されるとき、ビデオエンコーダ(503)は、イントラ予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよく;処理ブロックがインターモード又は双予測モードで符号化されるとき、ビデオエンコーダ(503)は、それぞれ、インター予測又は双予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよい。ある種のビデオ符号化技術では、マージモードは、インターピクチャ予測サブモードとすることができ、この場合、動きベクトルは、1つ以上の動きベクトル予測子から、該予測子の外部の符号化された動きベクトル構成要素の利益なしに導出される。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル構成要素が存在してもよい。一実施形態では、ビデオエンコーダ(503)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他の構成要素を含む。
【0074】
図5の例では、ビデオエンコーダ(503)は、
図5に示されるように一緒に結合される、インターエンコーダ(530)、イントラエンコーダ(522)、残差計算機(523)、スイッチ(526)、残差エンコーダ(524)、一般コントローラ(521)及びエントロピーエンコーダ(525)を含む。
【0075】
インターエンコーダ(530)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、ブロックを参照ピクチャ内の1つ以上の参照ブロックと比較し(例えば以前のピクチャ及び後のピクチャ内のブロック)、インター予測情報(例えばインター符号化技術による冗長情報の説明、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば予測ブロック)を計算するように構成される。
【0076】
イントラエンコーダ(522)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、場合によっては、ブロックを、同じピクチャ内の既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。
【0077】
一般コントローラ(521)は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ(503)の他の構成要素を制御するように構成される。一例では、一般コントローラ(521)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(526)に提供する。例えばモードがイントラのとき、一般コントローラ(521)は、残差計算機(523)による使用のためにイントラモードの結果を選択するようにスイッチ(526)を制御し、イントラ予測情報を選択してビットストリームにイントラ予測情報を含めるようにエントロピーエンコーダ(525)を制御し、モードがインターモードのとき、一般コントローラ(521)は、残差計算機(523)による使用のためにインター予測結果を選択するようにスイッチ(526)を制御し、インター予測情報を選択してビットストリームにインター予測情報を含めるようにエントロピーエンコーダ(525)を制御する。
【0078】
残差計算機(523)は、受け取ったブロックと、イントラエンコーダ(522)又はインターエンコーダ(530)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(524)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(524)は、周波数領域の残差データを変換し、変換係数を生成するように構成される。変換係数は、次いで、量子化処理を受けて、量子化された変換係数を得る。
【0079】
エントロピーエンコーダ(525)は、符号化されたブロックを含むようにビットストリームをフォーマットするよう構成される。エントロピーエンコーダ(525)は、HEVC規格等の適切な規格に従った様々な情報を含むように構成される。一例では、エントロピーエンコーダ(525)は、一般制御データ、選択された予測情報(例えばイントラ予測情報又はインター予測情報)、残差情報及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題に従って、インターモード又は双予測モードのいずれかのマージサブモードでブロックを符号化するとき、残差情報は存在しないことに留意されたい。
【0080】
図6は、本開示の別の実施形態によるビデオデコーダ(610)の図を示す。ビデオデコーダ(610)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受け取り、符号化されたピクチャを復号して、再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(610)は、
図2の例のビデオデコーダ(210)の代わりに使用される。
【0081】
図6の例では、ビデオデコーダ(610)は、
図6に図示されるように一緒に結合される、エントロピーデコーダ(671)、インターデコーダ(680)、残差デコーダ(673)、再構築モジュール(674)及びイントラデコーダ(672)を含む。
【0082】
エントロピーデコーダ(671)は、符号化されたピクチャから、該符号化されたピクチャが構成される構文要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えばブロックが符号化されるモード(例えばイントラ、インター、双予測、マージサブモード又は別のサブモードにおける後者の2つ等)、それぞれイントラデコーダ(672)又はインターデコーダ(680)によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えばイントラ予測情報又はインター予測情報)、例えば量子化された変換係数等の形態の残差情報を含むことができる。一例では、予測モードがインター又は双予測モードのとき、インター予測情報がインターデコーダ(680)に提供され;予測タイプがイントラ予測タイプのとき、イントラ予測情報がイントラデコーダ(672)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(673)に提供される。
【0083】
インターデコーダ(680)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0084】
イントラデコーダ(672)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0085】
残差デコーダ(673)は、逆量子化を実行して非量子化(de-quantized)変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(673)はまた、特定の制御情報(量子化器パラメータQPを含む)も必要とすることがあり、その情報は、エントロピーデコーダ(671)(低ボリューム制御情報のみであり得るので、データ経路は図示されない)によって提供されてもよい。
【0086】
再構築モジュール(674)は、空間領域において、残差デコーダ(673)による出力としての残差と、(場合によっては、インター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構築ブロックを形成するように構成され、再構築ブロックは再構築ピクチャの一部であってもよく、再構築ピクチャは再構築ビデオの一部であってもよい。デブロッキング操作等の他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【0087】
ビデオエンコーダ(203)、(403)及び(503)、並びにビデオデコーダ(210)、(310)及び(610)は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ(203)、(403)及び(503)、並びにビデオデコーダ(210)、(310)及び(610)を、1つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(203)、(403)及び(403)、並びにビデオデコーダ(210)、(310)及び(610)を、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装することができる。
【0088】
マージ候補は、現在のブロックの空間的又は時間的隣接ブロックからの動き情報をチェックすることによって形成されてもよい。
図7を参照すると、現在のブロック(701)は、空間的にシフトされた同じサイズの前のブロックから予測可能である、動き検索プロセス中にエンコーダ/デコーダによって見つけられたサンプルを含む。いくつかの実施形態では、その動きベクトルを直接符号化する代わりに、動きベクトルを、1つ以上の参照ピクチャに関連付けられるメタデータから、(復号順で)最新の参照ピクチャから、例えばD、A、C、B及びE(それぞれ702~706)で示される5つの周囲のサンプルのいずれかに関連付けられる動きベクトルを使用して、導出することができる。ブロックA、B、C、D及びEは、空間マージ候補と呼ばれてよい。これらの候補は、連続的にチェックされてマージ候補リストに入ってよい。重複する候補がリストから除去されることを確実にするために、プルーニング操作が実行されてもよい。
【0089】
いくつかの実施形態では、空間的候補をマージリストに入れた後、時間的候補もチェックしてリストにする。例えば指定された参照ピクチャ内の現在のブロックの並置ブロック(collocated block)を見つける。参照ピクチャ内のC0位置(707)における動き情報は、時間マージ候補として使用される。C0位置は、このブロックの左上の角が、現在のブロック701の参照ピクチャ内の並置ブロックの右下の角である参照ピクチャ内のブロックであってよい。参照ピクチャ内の並置ブロックは、現在のブロック701と同じ位置座標(例えばx及びy座標)を含んでよい。C0位置(707)のブロックがインターモードで符号化されていない又は利用可能でない場合、C1位置のブロックを使用してもよい。C1位置のブロックは、参照ピクチャ内の並置ブロック内のブロックの中心位置(例えばw/2、h/2)に左上の角を有してよい。特に、位置C1のブロックは、参照ピクチャの並置ブロックのサブブロックであってよい。上記の例では、w及びhはそれぞれ、ブロックの幅及び高さである。いくつかの実施形態によれば、追加のマージ候補は、組み合わされた双予測候補及びゼロ動きベクトル候補を含む。
【0090】
スキップモードは、動きデータが、明示的にシグナリングされる代わりに推定されることと、予測残差がゼロであること(すなわち、変換係数が送信されないこと)とをブロックに対して示すために使用されてもよい。インターピクチャ予測スライス内の各CUの開始時に、(i)CUが1つのPUのみを含むこと(例えば2Nx2N)、(ii)マージモードを使用して動きデータを導出すること又は(iii)ビットストリーム内に残差データが存在しないこと、のうちの1つ以上を暗示する、スキップフラグ(例えばskip_flag)がシグナリングされることがある。
【0091】
いくつかの実施形態によれば、サブCUモードは、追加のマージ候補として有効にされる。いくつかの実施形態では、サブCUモードをシグナリングするために追加の構文要素は使用されない。いくつかの実施形態では、2つの追加のマージ候補を各CUのマージ候補リストに追加して、代替の時間的動きベクトル予測(ATMVP:alternative temporal motion vector prediction)モード及び空間的-時間的動きベクトル予測(STMVP:spatial-temporal motion vector prediction)モードを表す。
【0092】
シーケンスパラメータセットは、マージリスト内の候補の数を示してよい。例えばシーケンスパラメータセットがATMVP及びSTMVPが有効であることを示す場合、最大7つのマージ候補をマージリストで使用してよい。追加マージ候補の符号化ロジックは、マージ候補リスト内の他のマージ候補と同じであってもよく、その結果、Pスライス又はBスライス内のCU毎に、2つの追加マージ候補に対して2つ以上のレート歪み(RD:rate-distortion)チェックが実行される。マージ候補の順序は、A、B、C、D、ATMVP、STMVP、E(リスト内のマージ候補が6未満のとき)、時間的候補、結合された双予測候補及びゼロ動きベクトル候補であってよい。マージ候補リストは、マージインデックスによって参照されてよい。いくつかの実施形態では、マージインデックスのすべてのビンは、コンテキスト適応バイナリ算術符号化(CABAC:context-adaptive binary arithmetic coding)によってコンテキスト符号化される。他の実施形態では、最初のビンのみがコンテキスト符号化され、残りのビンはコンテキストバイパス符号化される。
【0093】
いくつかの実施形態によれば、候補動きベクトルは、8×8ブロックのステップサイズで、以前に符号化されたブロックから探索される。
図8は、8×8ブロックで囲まれた現在のブロック800を示す。最も近い空間的隣接はカテゴリ1の候補であり、すぐ上の行(すなわち、ブロックmv0及びmv1を含む行)、左側の列(すなわち、mv2を含む列)及び右上の角(すなわち、mv2)をカテゴリ1として含む。カテゴリ2候補は、現在のブロック境界から離れており、以前に符号化されたフレーム内に並置されている、外側領域のブロックを含んでよい。カテゴリ2の候補は、最大3つの候補を含んでよい。
図8において、カテゴリ2の候補は、外側の上の行(すなわち、ブロックmv4及びmv5を含む行)及び外側の左の列(すなわち、ブロックmv5及びmv6を含む列)から選択され得る。異なる参照フレームから予測されるか又はイントラ符号化された隣接ブロックは、リストからプルーニングされてよい。残りの参照ブロックには、各々重みが割り当てられてよい。重みは、現在のブロックまでの距離に関係してもよい。一例として、
図8を参照すると、候補リストは、以下のカテゴリ1候補:すなわちmv1、mv0、mv2及びmv3を含んでよい。候補リストは更に、以下のカテゴリ2候補:すなわち、mv5、mv6及びmv4を含んでよい。
【0094】
いくつかの実施形態によれば、拡張マージモードは、現在のブロックにすぐ隣接しないブロックを含む追加のマージ候補を含む。これらの候補は、左、上、左下、右上及び左上の方向であり得る。マージ候補の最大数は10個であってよい。
図9は、参照ブロック(すなわち、対角線パターンを有するブロック)によって左、左上、上及び右上で囲まれた現在のブロック900を示す。参照ブロックは、
図7のブロックA、B、C、D及びEにそれぞれ対応する隣接ブロックA、B、C、D及びEを含んでもよい。
図9において、参照ブロックの左上の角は、現在のブロック900に対して(-96、-96)のオフセットを有してもよい。各候補ブロックB(i、j)又はC(i、j)は、それぞれ、その以前のB又はC候補ブロックと比較して、垂直方向に16のオフセットを有してよい。各候補ブロックA(i、j)又はD(i、j)は、それぞれ、以前のA又はD候補ブロックと比較して、水平方向に16のオフセットを有してよい。各E(i、j)ブロックは、その以前のE候補と比較して、水平方向及び垂直方向の両方において16のオフセットを有してよい。候補は、現在のブロック900に最も近い参照ブロックから、現在のブロック900から最も遠い参照ブロックまでの方向でチェックされ得る。チェックされる候補の順序は、A(i、j)、B(i、j)、C(i、j)、D(i、j)及びE(i、j)であり得る。
【0095】
図9では、拡張された隣接位置は、現在のブロック900に対して又は現在のブロック900を含む現在のピクチャに対して決定されてよい。いくつかの実施形態によれば、これらの拡張された隣接位置から値をフェッチする代わりに、N個の以前に符号化されたブロックの動き情報を履歴動きベクトル予測(HMVP:history motion vector prediction)バッファに記憶して、より多くの動きベクトル予測候補を提供する。HMVPバッファは、複数のHMVP候補を含んでもよく、符号化/復号プロセスの間に維持されてもよい。いくつかの実施形態において、HMVPバッファは、このHMVPバッファが、マージモード又はAMVPモード等の動きベクトル予測プロセスの間に使用されるときに、最新の符号化された動き情報が最初に考慮され得るように、先入れ先出し(FIFO)原理で動作してよい。
【0096】
本開示の実施形態は、インターピクチャ予測符号化のための動きベクトル予測子を得るいくつかの方法を開示する。これらの方法は、履歴ベースのMVバッファからのMV予測子を使用することと、バッファ管理を実行することを含む。これらの方法は、マージモードと、差分符号化を用いる動きベクトル予測(AMVPモード)の両方に適用されてよい。本開示の実施形態は、マージ及び一般的なMV予測概念を使用する任意のビデオ符号化方法に拡張されてもよい。また、本開示の実施形態は、スキップモードがマージモードを使用して動き情報を導出するので、スキップモードに適用されてもよい。
【0097】
図10A及び
図10Bは、それぞれ、候補が挿入される前と後のHMVPバッファを示している。
図10A及び
図10Bに示されるように、HMVPバッファは、インデックス[0]~[4]を有する5つのエントリを含む。
図10Bでは、エントリCL_0は、インデックス[4]に挿入され、これにより、他のエントリが1つずつ左に移動し、その結果、エントリHMPV_0がバッファから除去されることになる。エントリCL_0は、以前に符号化又は復号されたブロックの動きベクトル予測子情報を含んでよい。
【0098】
いくつかの実施形態によれば、HMVPバッファ内の各エントリは、ブロックがインター符号化モードで符号化されている場合、以前に符号化されたブロックからの動き情報である。このブロックは、2つの動きベクトルを有する双方向予測モード又は1つの動きベクトルを有する単方向モードで符号化されてよい。HMVPバッファ内の各エントリについて、双方向モードで符号化されている場合、そのエントリは、MV_L0(その参照インデックスを有する)及びMV_L1(その参照インデックスを有する)としてのMVのペアを含む。いくつかの実施形態によれば、双方向モードに対応する2つの単方向動きベクトルは、(i)L0の参照インデックスを元の予測子として使用する、L0予測のためのMV_L0と、(ii)L1の参照インデックスを元の予測子として使用する、L1予測のためのMV_L1を含む。
【0099】
いくつかの実施形態において、HMVPバッファ内の各元の双方向MV予測子について、元のMV予測子から導出された2つの単方向MV予測子も、元の双方向MV予測子がマージ候補リストに入れられたときに、マージリスト内の新しい候補として考慮される。一実施形態では、MV_L0及びMV_L1は、対応する元の双方向MVがリストに入れられるたびに、それらの対応する元の双方向MV予測子の後にリストに入れられる。別の実施形態では、MV_L0及びMV_L1は、HMVPバッファからのN個の元のMV予測子がリストに入れられた後に入れられ、ここで、Nは整数値である。Nは、HMVPバッファからマージリストに入れることを許容されるMV候補の数であってもよく、あるいはNは、HMVPバッファからマージリストにコピーされる最大許容数よりも小さい固定数であってもよい。いくつかの実施形態によれば、HMVPバッファ内のエントリが、AMVPモードにおいてMV予測子を生成するために使用されるとき、HMVPバッファ内の各元の双方向予測子について、上述の方法と同様の方法を使用して、単方向予測子MV_L0及びMV_L1を生成してよい。これらの2つの予測因子は、AMVP MV予測候補リストが満杯でない場合、該AMVP MV予測候補リスト内で追加の予測因子として使用されてよい。
【0100】
いくつかの実施形態によれば、HMVPバッファは、条件が満たされると、空にされるか又はゼロ状態にリセットされる。条件は、(i)現在のCUがCTUの先頭であること、(ii)現在のCUがタイルの先頭であること、(iii)現在のCUがCTU行の先頭であること又は(iv)現在のCUがスライスの先頭であることであってよい。
【0101】
いくつかの実施形態によれば、すべてのCTU行の第1CTU(first CTU)が完了した後、同じサイズのHMVPバッファを有するHMVP_rowバッファを使用して、HMVPバッファのエントリを格納する。したがって、新しいCTU行の開始時に、HMVPバッファは、HMVP_rowバッファ内の情報で満たされ得る。CTU行の最後にHMVPバッファをリセットし、HMVP_rowバッファの内容をHMVPバッファにコピーすることによって、復号されている第1CTUのブロックは、第1CTUの真上のCTUからの情報で復号され得る。
【0102】
いくつかの実施形態において、ピクチャ内の各タイルについて、HMVP_rowバッファを使用して、各タイル行の第1CTUが終了した後にHMVP情報を格納する。したがって、新たなタイル行の第1CTUについて、HMVPバッファは、HMVP_rowバッファからの情報を使用して満たされ得る。いくつかの実施形態において、HMVP_rowバッファは、タイル又はスライスの第1CTU行の開始時にゼロ状態に開始される。
【0103】
図11は、CTU_00~CTU_23に分割された例示的なピクチャ1100を示す。CTU_00~CTU_03は、第1CTU行 CTU_Row_[0]にある。CTU_10~CTU_13は、第2CTU行 CTU_Row_[1]にある。CTU_20~CTU_23は、第3CTU_行にある。ピクチャ1100内の各CTUは、複数のブロックに更に分割されてもよい。ブロックは、CU又は符号化ブロック(CB)であってよい。
【0104】
いくつかの実施形態では、ピクチャ1100の第1CTU(例えばCTU_00)内の最初のブロックが復号される前に、HMVPバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに格納されてよい。別の例では、HMVPバッファは、ゼロ状態(例えばバッファ内の有効なエントリがない)に初期化されてもよい。加えて、HMVP_rowバッファは、ピクチャ1100の第1CTU(例えばCTU_00)内の最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。CTU_00の最後のブロック(例えばCTU_Row_[0]の最初のCTU)が符号化又は復号されると、HMVPバッファの内容がHMVP_rowバッファにコピーされる。CTU_03の最後のブロックが符号化又は復号されると(例えばCTU_Row_[0]の最後のCTU)、CTU_10の最初のブロックが符号化又は復号される前に(例えばCTU_Row_[1]の最初のCTU)、HMVPバッファが空にされ、HMVP_rowバッファの内容がHMVPバッファにコピーされる。したがって、HMVPバッファをリセットし、HMVP_rowバッファの内容をHMVPバッファにコピーすることによって、CTU_10のブロックの符号化又は復号は、CTU_03からの情報よりもCTU_10の符号化又は復号により関連し得る、CTU_00からの情報(例えばCTU_10より上のブロック)で実行され得る。
【0105】
HMVPバッファの内容をHMVP_rowにコピーする同様のプロセスは、CTU_10及びCTU_20の最後のブロックが符号化又は復号された後に実行されてもよい。さらに、HMVPバッファをクリアする内容をコピーし、HMVP_rowバッファの内容をHVMPバッファにコピーする同様のプロセスは、CTU_13の最後のブロックが符号化又は復号された後に実行されてもよい。
【0106】
図12は、2つのタイルTile_1及びTile_2に分割されたピクチャ1100の例を示す。いくつかの実施形態において、Tile_1の第1CTU(例えばCTU_00)の最初のブロックが符号化又は復号される前に、HMVPバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに記憶されてよい。HMVPバッファはまた、ゼロ状態に初期化されてもよい。加えて、HMVP_rowバッファは、ピクチャ1100の第1CTU(例えばCTU_00)における最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。CTU_00の最後のブロック(例えばTile_1のCTU_Row_[0]の最初のCTU)が符号化又は復号されると、HMVPバッファの内容がHMVP_rowバッファにコピーされる。CTU_01の最後のブロックが符号化又は復号されると(例えばTile_1のCTU_Row_[0]の最後のCTU)、CTU_10の最初のブロックが符号化又は復号される前に(例えばTile_1のCTU_Row_[1]の最初のCTU)、HMVPバッファが空にされ、HMVP_rowバッファの内容がHMVPバッファにコピーされる。したがって、HMVPバッファをリセットし、HMVP_rowバッファの内容をHMVPバッファにコピーすることによって、CTU_10のブロックの符号化又は復号は、CTU_01からの情報よりもCTU_10の符号化又は復号により関連し得る、CTU_00からの情報で実行され得る。
【0107】
Tile_2は、Tile_1と並行に符号化又は復号されてもよく、別個のHMVP及びHMVP_rowバッファを有してよく、それぞれ、Tile_1と同様に初期化されてもよい。CTU_02の最後のブロック(例えばTile_2のCTU_Row_[0]の最初のCTU)が符号化又は復号されると、HMVPバッファの内容がHMVP_rowバッファにコピーされる。CTU_03の最後のブロックが符号化又は復号されると(例えばTile_2のCTU_Row_[0]の最後のCTU)、CTU_12の最初のブロックが符号化又は復号される前に(例えTile_2のCTU_Row_[1]の最初のCTU)、HMVPバッファが空にされ、HMVP_rowバッファの内容がHMVPバッファにコピーされる。したがって、HMVPバッファをリセットし、HMVP_rowバッファの内容をHMVPバッファにコピーすることによって、CTU_12のブロックの符号化又は復号は、CTU_03からの情報よりもCTU_12の復号により関連し得る、CTU_02からの情報で実行され得る。
【0108】
図13は、エンコーダ503等のエンコーダ又はデコーダ610等のデコーダによって実行されるプロセスの一実施形態を示す。プロセスは、ステップS1300で開始してよく、ステップS1300において、現在のピクチャがビデオビットストリームから取得される。例えばピクチャ1100(
図11)は、この取得されたピクチャであってもよい。プロセスは、ステップS1302に進み、ステップS1302において、現在のブロックが、HMVPバッファからの1つ以上のエントリを使用して符号化/復号される。例えばピクチャ1100を参照すると、CTU_00の最初のブロックが符号化/復号されている場合、HMVPバッファは初期状態に初期化されてよく、最初のブロックは、HMVPバッファが初期化された後に、HMVPバッファからの1つ以上のエントリで符号化/復号されてもよい。プロセスは、ステップS1304に進み、ステップS1304において、HMVPバッファは、符号化/復号された現在のブロックの動きベクトル情報で更新される。
【0109】
プロセスは、ステップS1306に進み、現在の符号化/復号されたブロックがCTU行の末尾にあるかどうかを判断する。例えばピクチャ1100を参照すると、符号化/復号される現在のブロックがCTU_03の最後のブロックである場合、符号化/復号されるべき次のブロックは、次の行であるCTU_10の最初のブロックである。現在の符号化/復号されたブロックがCTU行の末尾にある場合、プロセスはステップS1308に進み、ステップS1308において、HMVPバッファがリセットされ(例えば空にされ)、次のブロックが符号化/復号される前に、HMVP_rowバッファの内容がHMVPバッファにコピーされる。プロセスは、ステップS1308からステップS1314に進み、これは、以下に更に詳細に説明される。
【0110】
現在の符号化/復号されたブロックがCTU行の末尾でない場合、プロセスはステップS1310に進み、現在の符号化/復号されたブロックがCTU行の第1CTUの最後のブロックであるかどうかを判断する。現在の符号化/復号されたブロックがCTU行内の第1CTUの最後のブロックである場合、プロセスはステップS1312に進み、ステップS1312において、HMVPバッファの内容がHVMP_rowバッファにコピーされる。例えばピクチャ1100を参照すると、現在の符号化/復号されたブロックがCTU_00の最後のブロックである場合、HVMPバッファの内容は、CTU_01の最初のブロックが符号化/復号される前に、HMVP_rowバッファの内容にコピーされる。プロセスは、ステップS1312からステップS1314に進み、これは、以下で更に詳細に説明される。
【0111】
現在の符号化/復号されたブロックがCTU行内の第1CTUの最後のブロックでない場合、プロセスはステップS1314に進み、現在の符号化/復号されたブロックが取得されたピクチャ内の最後のブロックであるかどうかを判断する。現在の符号化/復号されたブロックが、取得されたピクチャ内の最後のブロックである場合、
図13のプロセスは終了する。例えば現在の符号化/復号されたブロックがCTU_23の最後のブロックである場合、
図13のプロセスは完了する。現在の符号化/復号されたブロックが取得されたピクチャ内の最後のブロックでない場合、プロセスはステップS1314からステップS1302に戻る。
【0112】
上述の技術は、コンピュータ読取可能な命令を使用してコンピュータソフトウェアとして実装でき、1つ以上のコンピュータ読取可能な媒体に物理的に格納できる。例えば
図14は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1400)を示す。
【0113】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコード化されて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)等によって直接的に、あるいは翻訳、マイクロコード実行等を通して実行され得る命令を含むコードを作成し得る。
【0114】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行され得る。
【0115】
コンピュータシステム(1400)の
図14に示される構成要素は、性質上例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定も示唆するように意図されていない。また、構成要素の構成も、コンピュータシステム(1400)の例示的な実施形態で図示される構成要素の任意の1つ又は組合せに関するいかなる従属性又は要件も有するものとして解釈されるべきではない。
【0116】
コンピュータシステム(1400)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(例えばキーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば音声、拍手)、視覚入力(例えばジェスチャ)、嗅覚入力(図示せず)を通して、1人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスを使用して、オーディオ(例えばスピーチ、音楽、周囲音)、画像(例えばスキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば2次元ビデオ、立体ビデオを含む3次元ビデオ)といった、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャすることができる。
【0117】
入力ヒューマンインタフェースデバイスは:キーボード(1401)、マウス(1402)、トラックパッド(1403)、タッチスクリーン(1410)、データグローブ(図示せず)、ジョイスティック(1405)、マイクロホン(1406)、スキャナ(1407)、カメラ(1408)、のうちの(図示されているものの1つのみの)1つ以上を含んでもよい。
【0118】
コンピュータシステム(1400)は、特定のヒューマンインタフェース出力デバイスも含んでもよい。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光及び嗅覚/味覚を通して、1人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチスクリーン(1410)、データグローブ(図示せず)又はジョイスティック(1405)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する可能性がある)、オーディオ出力デバイス(例えばスピーカ(1409)、ヘッドフォン(図示せず))、視覚出力デバイス(例えばCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1410)であり、各々タッチスクリーン入力機能を有するか又は有さず、各々触覚フィードバック機能を有するか有さず、その一部は、二次元視覚出力を出力するか、例えば立体出力、仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を通して三次元超の出力を出力する能力を有する可能性がある)及びプリンタ(図示せず)を含んでよい。
【0119】
コンピュータシステム(1400)は、CD/DVD又は同様の媒体(1421)を有するCD/DVD ROM/RW(1420)、サムドライブ(1422)、取り外し可能ハードドライブ又はソリッドステートドライブ(1423)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能なストレージデバイス及びその関連する媒体も含むことができる。
【0120】
当業者はまた、「コンピュータ読取可能媒体」という用語が、現在開示されている主題に関連して使用されるとき、伝送媒体、搬送波又は他の一時的信号を包含しないことも理解すべきである。
【0121】
コンピュータシステム(1400)は、1つ以上の通信ネットワークへのインタフェースも含むことができる。ネットワークは、例えば無線、有線、光であり得る。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANBusを含む車両及び産業等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1449)(例えばコンピュータシステム(1400)のUSBポート)に取り付けられる外部ネットワークインタフェースアダプタを必要とするが、他のものは、一般に、以下で説明されるシステムバスへの取り付けによって、コンピュータシステム(1400)のコアに統合される(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1400)は、他のエンティティと通信することができる。このような通信は、単指向性、受信専用(例えば放送TV)、単指向性送信専用(例えば特定のCANBusデバイスへのCANBus)又は例えばローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性とすることができる。特定のプロトコル及びプロトコルスタックを、上述のように、それらのネットワーク及びネットワークインタフェースの各々において使用することができる。
【0122】
前述のヒューマンインタフェースデバイス、人間がアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム(1400)のコア(1440)に取り付けることができる。
【0123】
コア(1440)は、1つ以上の中央処理ユニット(CPU)(1441)、グラフィクス処理ユニット(GPU)(1442)、フィールドプログラマブルゲートエリア(FPGA)(1443)の形の特別なプログラマブル処理ユニット、特定のタスクのハードウェアアクセラレータ(1444)等を含むことができる。これらのデバイスは、読取専用メモリ(ROM)(1445)、ランダムアクセスメモリ(1446)、内部非ユーザアクセス可能ハードドライブ、SSD(1447)等の内部大容量ストレージとともに、システムバス(1448)を介して接続されてよい。いくつかのコンピュータシステムでは、システムバス(1448)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(1448)に直接取り付けられることも、周辺バス(1449)を介して取り付けられることもできる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0124】
CPU(1441)、GPU(1442)、FPGA(1443)及びアクセラレータ(1444)は、組み合わせて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1445)又はRAM(1446)に記憶することができる。移行データは、RAM(1446)に記憶することもできるが、永久データは、例えば内部大容量ストレージ(1447)に記憶することができる。1つ以上のCPU(1441)、GPU(1442)、大容量ストレージ(1447)、ROM(1445)、RAM(1446)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0125】
コンピュータ読取可能媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、あるいはそれらは、コンピュータソフトウェア分野の当業者に周知かつ入手可能な種類のものとすることができる。
【0126】
限定ではなく一例として、アーキテクチャ(1400)、具体的にはコア(1440)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供することができる。そのようなコンピュータ読取可能媒体は、上述のようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(1447)又はROM(1445)のように、非一時的な性質のコア(1440)の特定のストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアを、そのようなデバイスに格納してコア(1440)によって実行することができる。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1440)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1446)に格納されるデータ構造を定義し、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することを含め、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、回路(例えばアクセラレータ(1444))内にハードワイヤードされた又は他の方法で具体化されたロジックの結果として機能を提供することができ、これは、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに又はそれとともに動作することができる。ソフトウェアへの参照はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを格納する回路(例えば集積回路(IC))、実行のためのロジックを具体化する回路又は適切な場合にはその双方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
付録A:頭字語
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:集積回路
CU:符号化ユニット
【0127】
本開示では、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換及び様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、したがって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
【0128】
(1)デコーダが実行するビデオ復号の方法であって、当該方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと;前記複数のユニットの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと;復号された現在のブロックの動きベクトルでHMVPバッファを更新するステップと;現在のブロックが複数のユニットの1つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと;現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファをリセットするステップと;を含む。
【0129】
(2)現在のブロックが行の第1ユニット(first unit)の最後のブロックであるかどうかを判断するステップと;現在のブロックが行の第1ユニットの最後のブロックであると判断したことに応じて、HMVPバッファの内容を行バッファにコピーするステップと;を更に含む、特徴(1)に記載の方法。
【0130】
(3)現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファの各エントリがリセットされた後に、行バッファの内容をHMVPバッファにコピーするステップを更に含む、特徴(2)に記載の方法。
【0131】
(4)HMVPバッファは先入れ先出し(FIFO)バッファであり、動きベクトルでHMVPバッファを更新するステップは、HMVPバッファの最後のエントリに動きベクトルを格納するステップと、HMVPバッファの最初のエントリを削除するステップとを含む、特徴(1)~(3)のいずれか1つに記載の方法。
【0132】
(5)ユニットは、符号化ツリーユニット(CTU)である、特徴(1)~(4)のいずれか1つに記載の方法。
【0133】
(6)ユニットはタイルであり、ユニットのうち復号された1つは第1タイルであり、複数のユニットからの第1タイル及び第2タイルは並行に復号される、特徴(2)~(5)のいずれか1つに記載の方法。
【0134】
(7)ビデオ復号のためのビデオデコーダであって:符号化されたビデオビットストリームから現在のピクチャを取得し、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成し、複数のユニットの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号し、復号された現在のブロックの動きベクトルでHMVPバッファを更新し、現在のブロックが複数のユニットの1つのグリッドに含まれる行の先頭にあるかどうかを判断し、現在のブロックが行の先頭にあると判断したことに応じて、HMVPバッファをリセットする、ように構成された処理回路を含む、ビデオデコーダ。
【0135】
(8)処理回路は、現在のブロックが行の第1ユニットの最後のブロックであるかどうかを判断し、現在のブロックが行の第1ユニットの最後のブロックであると判断したことに応じて、HMVPバッファの内容を行バッファにコピーするように更に構成される、特徴(7)に記載のビデオデコーダ。
【0136】
(9)処理回路は、現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファの各エントリがリセットされた後に、行バッファの内容をHMVPバッファにコピーするように更に構成される、特徴(8)に記載のビデオデコーダ。
【0137】
(10)HMVPバッファは先入れ先出し(FIFO)バッファであり、動きベクトルでHMVPバッファを更新することは、HMVPバッファの最後のエントリに動きベクトルを格納することと、HMVPバッファの最初のエントリを削除することを含む、特徴(7)~(9)のいずれか1つに記載のビデオデコーダ。
【0138】
(11)ユニットは、符号化ツリーユニット(CTU)である、特徴(7)~(10)のいずれか1つに記載のビデオデコーダ。
【0139】
(12)ユニットはタイルであり、ユニットのうち復号された1つは第1タイルであり、複数のユニットからの第1タイル及び第2タイルは並行に復号される、特徴(8)~(11)のいずれか1つに記載のビデオデコーダ。
【0140】
(13)ビデオデコーダ内のプロセッサによって実行されると、該プロセッサに、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと;複数のユニットの1つについて、履歴動きベクトル(HMVP)バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと;復号された現在のブロックの動きベクトルでHMVPバッファを更新するステップと;現在のブロックが複数のユニットの1つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと;現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファをリセットするステップと;を含む方法を実行させる命令を有する、非一時的コンピュータ読取可能媒体。
【0141】
(14)方法は、現在のブロックが行の第1ユニットの最後のブロックであるかどうかを判断するステップと;現在のブロックが行の第1ユニットの最後のブロックであると判断したことに応じて、HMVPバッファの内容を行バッファにコピーするステップと;を更に含む、特徴(13)に記載の非一時的コンピュータ読取可能媒体。
【0142】
(15)方法は、現在のブロックが行の先頭であると判断したことに応じて、HMVPバッファの各エントリがリセットされた後に、行バッファの内容をHMVPバッファにコピーするステップ、を更に含む、特徴(14)に記載の非一時的コンピュータ読取可能媒体。
【0143】
(16)HMVPバッファは先入れ先出し(FIFO)バッファであり、動きベクトルでHMVPバッファを更新するステップは、HMVPバッファの最後のエントリに動きベクトルを格納するステップと、HMVPバッファの最初のエントリを削除するステップとを含む、特徴(13)~(15)のいずれか1つに記載の非一時的コンピュータ読取可能媒体。
【0144】
(17)ユニットは、符号化ツリーユニット(CTU)である、特徴(13)~(16)のいずれか1つに記載の非一時的コンピュータ読取可能媒体。
【0145】
(18)ユニットはタイルであり、ユニットのうち復号された1つは第1タイルであり、複数のユニットからの第1タイル及び第2タイルは並行に復号される、特徴(14)~(17)のいずれか1つに記載の非一時的コンピュータ読取可能媒体。
【外国語明細書】