(57)【要約】  現在CTUが現在CTU行の開始CTUであるとき、現在CTU行に対するHMVPリストを初期化するステップと、前記HMVPリストに基づいて現在CTU行を処理するステップとを含む、ビデオ処理方法。この方法を行うことによって、符号化効率および復号効率が改善される。
2021533696.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ処理方法であって、
現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するステップと、
前記HMVPリストに基づいて前記現在CTU行を処理するステップと
を含む、方法。
【請求項２】
前記初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである、請求項1に記載の方法。
【請求項３】
前記現在CTU行は、複数のCTU行からなるピクチャエリアに属し、前記現在CTU行は、前記複数のCTU行のうちのいずれか1つである、請求項1または2に記載の方法。
【請求項４】
前記現在CTU行を除き、前記複数のCTU行の各々に対するHMVPリストを初期化するステップであって、前記複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化するステップ
をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記HMVPリストに基づいて前記現在CTU行を前記処理するステップは、
前記現在CTU行の前記現在CTUを処理するステップと、
前記処理された現在CTUに基づいて、前記初期化されたHMVPリストを更新するステップと、
前記更新されたHMVPリストに基づいて、前記現在CTU行の第2のCTUを処理するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記HMVPリストは、前記現在CTU行の処理されたCTUに従って更新される、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記現在CTU行に対する前記HMVPリストは、以下のように、すなわち、
前記現在CTU行に対する前記HMVPリストを空にするように
初期化される、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記HMVPリストに基づいて前記現在CTU行を前記処理するステップは、
前記現在CTU行の第2のCTUからの前記HMVPリストに基づいて、前記現在CTU行を処理するステップであって、前記第2のCTUは、前記開始CTUに隣接する、処理するステップ
を含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記複数のCTU行は、波面並列処理(WPP)モードで処理される、請求項3から8のいずれか一項に記載の方法。
【請求項１０】
前記現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める、請求項9に記載の方法。
【請求項１１】
前記前のCTU行は、前記現在CTU行に直接隣接し、前記現在CTU行の上にある、前記CTU行である、請求項10に記載の方法。
【請求項１２】
前記前のCTU行の前記特定のCTUは、前記前のCTU行の第2のCTUである;または前記前のCTU行の前記特定のCTUは、前記前のCTU行の第1のCTUである、請求項10または11に記載の方法。
【請求項１３】
ビデオ処理装置であって、
現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するように構成された、初期化ユニットと、
前記HMVPリストに基づいて前記現在CTU行を処理するように構成された、処理ユニットと
を含む、ビデオ処理装置。
【請求項１４】
前記初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである、請求項13に記載の装置。
【請求項１５】
前記現在CTU行は、複数のCTU行からなるピクチャエリアに属し、前記現在CTU行は、前記複数のCTU行のうちのいずれか1つである、請求項13または14に記載の装置。
【請求項１６】
前記初期化ユニットは、
前記現在CTU行を除き、前記複数のCTU行の各々に対するHMVPリストを初期化することであって、前記複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化すること
を行うようにさらに構成される、請求項15に記載の装置。
【請求項１７】
前記処理ユニットは、以下のように、すなわち、
前記現在CTU行の前記現在CTUを処理し、
前記処理された現在CTUに基づいて、前記初期化されたHMVPリストを更新し、
前記更新されたHMVPリストに基づいて、前記現在CTU行の第2のCTUを処理する
ように
前記HMVPリストに基づいて前記現在CTU行を処理するように構成される、請求項13から16のいずれか一項に記載の装置。
【請求項１８】
前記HMVPリストは、前記現在CTU行の処理されたCTUに従って更新される、請求項13から17のいずれか一項に記載の装置。
【請求項１９】
前記初期化ユニットは、以下のように、すなわち、
前記現在CTU行に対する前記HMVPリストを空にするように
前記現在CTU行に対する前記HMVPリストを初期化するようにさらに構成される、請求項13から18のいずれか一項に記載の装置。
【請求項２０】
前記処理ユニットは、以下のように、すなわち、
前記現在CTU行の第2のCTUからの前記HMVPリストに基づいて、前記現在CTU行を処理することであって、前記第2のCTUは、前記開始CTUに隣接する、処理することを行うように
前記HMVPリストに基づいて前記現在CTU行を処理するようにさらに構成される、請求項13から19のいずれか一項に記載の装置。
【請求項２１】
前記複数のCTU行は、波面並列処理(WPP)モードで処理される、請求項15から20のいずれか一項に記載の装置。
【請求項２２】
前記現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める、請求項21に記載の装置。
【請求項２３】
前記前のCTU行は、前記現在CTU行に直接隣接し、前記現在CTU行の上にある、前記CTU行である、請求項22に記載の装置。
【請求項２４】
前記前のCTU行の前記特定のCTUは、前記前のCTU行の第2のCTUである;または前記前のCTU行の前記特定のCTUは、前記前のCTU行の第1のCTUである、請求項22または23に記載の装置。
【請求項２５】
請求項1から12のいずれか一項に記載の方法を行うための処理回路を含む、エンコーダ。
【請求項２６】
請求項1から12のいずれか一項に記載の方法を行うための処理回路を含む、デコーダ。
【請求項２７】
請求項1から12のいずれか一項に記載の方法を行うためのプログラムコードを含む、コンピュータプログラム製品。
【請求項２８】
コンピュータ命令を記憶した、コンピュータ可読記憶媒体であって、前記コンピュータ命令は、1つまたは複数のプロセッサによって実行されると、請求項1から12のいずれか一項に記載の方法を前記1つまたは複数のプロセッサに行わせる、コンピュータ可読記憶媒体。
【請求項２９】
デコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を含み、前記プログラミングは、前記プロセッサによって実行されると、請求項1から12のいずれか一項に記載の方法を行うように前記デコーダを構成する
デコーダ。
【請求項３０】
エンコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を含み、前記プログラミングは、前記プロセッサによって実行されると、請求項1から12のいずれか一項に記載の方法を行うように前記エンコーダを構成する
エンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願(開示)の実施形態は、概して、ビデオコーディングの分野に関し、より詳細には、ビデオ処理方法、ビデオ処理装置、エンコーダ、デコーダ、媒体、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
ビデオコーディング(ビデオ符号化およびビデオ復号)は、幅広いデジタルビデオアプリケーション、たとえば、ブロードキャストデジタルTV、インターネット網およびモバイルネットワークを介したビデオ送信、ビデオチャットなどのリアルタイム会話アプリケーション、ビデオ会議、DVDおよびBlu-ray（登録商標）ディスク、ビデオコンテンツ取得システムおよびビデオコンテンツ編集システム、ならびにセキュリティアプリケーションのカムコーダにおいて使用される。
【０００３】
1990年のH.261規格におけるブロックベースのハイブリッドビデオコーディング手法の発展以来、新たなビデオコーディング技術およびビデオコーディングツールが開発され、新たなビデオコーディング規格の基礎を形成した。さらなるビデオコーディング規格は、MPEG-1ビデオ、MPEG-2ビデオ、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、アドバンストビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)、ITU-T H.266/多目的ビデオコーディング(VVC:Versatile video coding)、ならびにこれらの規格の拡張、たとえば、スケーラビリティおよび/または3次元(3D)拡張を含む。ビデオの作成および使用がますます偏在するようになるにつれて、ビデオトラフィックは、通信ネットワークおよびデータ記憶に対して最も大きな負荷となり、したがって、多数のビデオコーディング規格の目標のうちの1つは、ピクチャ品質を犠牲にせずに、その前の規格と比較してビットレートの低減を達成することであった。最新の高効率ビデオコーディング(HEVC)ですら、品質を犠牲にせずに、AVCの二倍程度にビデオを圧縮することができ、HEVCと比較してビデオをさらに圧縮する必要が存在する。
【発明の概要】
【課題を解決するための手段】
【０００４】
本出願の実施形態は、コーディング効率を改善するための、ビデオ処理方法および対応する装置を提供する。
【０００５】
前述のおよび他の目的は、独立請求項の主題によって達成される。さらなる実装形態は、独立請求項、発明を実施するための形態、および図から明らかである。
【０００６】
本発明の第1の態様は、ビデオ処理方法であって、現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するステップと、HMVPリストに基づいて現在CTU行を処理するステップとを含む、ビデオ処理方法を提供する。開始CTUは、スタート(starting)CTUと呼ばれることもあり、処理される同じCTU行のCTUの第1のCTUである。
【０００７】
現在CTU行に対するHMVPリストは、現在CTU行の処理の開始時に初期化され、現在CTU行のプロセスは、前のCTU行のHMVPリストに基づく必要はなく、それにより、符号化効率および復号効率を改善し得ることが分かる。
【０００８】
第1の態様を参照すると、第1の態様の第1の考えられる実装方法では、初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである。
【０００９】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第2の考えられる実装方法では、現在CTU行は、複数のCTU行からなるピクチャエリアに属し、現在CTU行は、複数のCTU行のうちのいずれか1つ、たとえば、ピクチャエリアの第1の(たとえば、一番上の)CTU行、第2のCTU行、…および最後の(たとえば、一番下の)CTU行である。
【００１０】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第3の考えられる実装方法では、この方法は、現在CTU行を除き、複数のCTU行の各々に対するHMVPリストを初期化するステップであって、複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化するステップをさらに含む。言い換えれば、実施形態は、追加で、ピクチャエリアのすべての他のCTU行に対するHMVPリストを初期化し得、すなわち、ピクチャエリアのすべてのCTU行に対するHMVPリストを初期化し得る。
【００１１】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第4の考えられる実装方法では、HMVPリストに基づいて現在CTU行を処理するステップは、現在CTU行の現在CTUを処理するステップと、処理された現在CTUに基づいて、初期化されたHMVPリストを更新するステップと、更新されたHMVPリストに基づいて、現在CTU行の第2のCTUを処理するステップとを含む。
【００１２】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第5の考えられる実装方法では、HMVPリストは、現在CTU行の処理されたCTUに従って更新される。
【００１３】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第6の考えられる実装方法では、現在CTU行に対するHMVPリストは、以下のように、すなわち、現在CTU行に対するHMVPリストを空にするように、初期化される。
【００１４】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第7の考えられる実装方法では、HMVPリストに基づいて現在CTU行を処理するステップは、現在CTU行の第2のCTUからのHMVPリストに基づいて、現在CTU行を処理するステップであって、第2のCTUは、開始CTUに隣接する、処理するステップを含む。
【００１５】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第8の考えられる実装方法では、複数のCTU行は、波面並列処理(WPP:wavefront parallel processing)モードで処理される。
【００１６】
現在CTU行に対するHMVPリストは現在CTU行の処理の開始時に初期化されるため、WPPモードと組み合わされるとき、ピクチャフレームまたはピクチャエリアのCTU行は、同時に処理可能であり、それにより、符号化効率および復号効率をさらに改善し得ることが分かる。
【００１７】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第9の考えられる実装方法では、現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める(または、現在CTU行の処理が始まる)。
【００１８】
第1の態様、または第1の態様の前述の実装方法のうちのいずれか1つを参照すると、第1の態様の第10の考えられる実装方法では、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上または上方にある、CTU行である。
【００１９】
第1の態様の第9の実装方法または第1の態様の第10の実装方法を参照すると、第1の態様の第11の考えられる実装形態では、前のCTU行の特定のCTUは、前のCTU行の第2のCTUである;または、前のCTU行の特定のCTUは、前のCTU行の第1のCTUである。
【００２０】
本発明の第2の態様は、ビデオ処理装置であって、現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するように構成された、初期化ユニットと、HMVPリストに基づいて現在CTU行を処理するように構成された、処理ユニットとを含む、ビデオ処理装置を提供する。
【００２１】
の第2の態様を参照すると、第2の態様の第1の考えられる実装方法では、初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである。
【００２２】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第2の考えられる実装方法では、現在CTU行は、複数のCTU行からなるピクチャエリアに属し、現在CTU行は、複数のCTU行のうちのいずれか1つである。
【００２３】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第3の考えられる実装方法では、初期化ユニットは、現在CTU行を除き、複数のCTU行の各々に対するHMVPリストを初期化することであって、複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化することを行うようにさらに構成される。
【００２４】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第4の考えられる実装方法では、処理ユニットは、現在CTU行の現在CTUを処理し、処理された現在CTUに基づいて、初期化されたHMVPリストを更新し、更新されたHMVPリストに基づいて、現在CTU行の第2のCTUを処理するようにさらに構成される。
【００２５】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第5の考えられる実装方法では、HMVPリストは、現在CTU行の処理されたCTUに従って更新される。
【００２６】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第6の考えられる実装方法では、初期化ユニットは、以下のように、すなわち、現在CTU行に対するHMVPリストを空にするように、現在CTU行に対するHMVPリストを初期化するようにさらに構成される。
【００２７】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第7の考えられる実装方法では、処理ユニットは、以下のように、すなわち、現在CTU行の第2のCTUからのHMVPリストに基づいて、現在CTU行を処理することであって、第2のCTUは、開始CTUに隣接する、処理することを行うように、HMVPリストに基づいて現在CTU行を処理するようにさらに構成される。
【００２８】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第8の考えられる実装方法では、複数のCTU行は、波面並列処理(WPP)モードで処理される。
【００２９】
第2の態様、または第2の態様その前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第9の考えられる実装方法では、現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める(または、現在CTU行の処理が始まる)。
【００３０】
第2の態様、または第2の態様の前述の実装方法のうちのいずれか1つを参照すると、第2の態様の第10の考えられる実装方法では、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にある、CTU行である。
【００３１】
第2の態様の第9の実装方法または第2の態様の第10の実装方法を参照すると、第2の態様の第11の考えられる実装方法では、前のCTU行の特定のCTUは、前のCTU行の第2のCTUである;または前のCTU行の特定のCTUは、前のCTU行の第1のCTUである。
【００３２】
本発明の第3の態様は、復号デバイスによって実装されるコーディングの方法であって、現在CTU行に対するHMVPリストを構築/初期化するステップと、構築/初期化されたHMVPリストに基づいて、現在CTU行のCTUを処理するステップとを含む、コーディングの方法を提供する。
第3の態様を参照すると、第3の態様の第1の考えられる実装方法では、現在CTU行に対するHMVPリストは、以下のように、すなわち、現在CTU行に対するHMVPリストを空にするように、および/もしくは現在CTU行に対するHMVPリストに対するデフォルト値を設定するように、ならびに/または前のCTU行のCTUのHMVPリストに基づいて、現在CTU行に対するHMVPリストを構築/初期化するように、構築/初期化される。
【００３３】
第3の態様の第1の考えられる実装方法を参照すると、第3の態様の第2の考えられる実装方法では、現在CTU行に対するHMVPリストに対するデフォルト値を設定するステップは、HMVPリストのMVを単予測方法のMVとしてポピュレートするステップであって、単予測方法のMVは、ゼロ動きベクトルであるか、またはゼロ動きベクトルでないか、のいずれかであり、参照ピクチャは、L0リスト内に第1の参照ピクチャを含む、ポピュレートするステップ、および/またはHMVPリストのMVを双予測方法のMVとしてポピュレートするステップであって、双予測方法のMVは、ゼロ動きベクトルであるか、またはゼロ動きベクトルでないか、のいずれかであり、参照ピクチャは、L0リスト内に第1の参照ピクチャを含み、L1リスト内に第1の参照ピクチャを含む、ポピュレートするステップを含む。
【００３４】
第3の態様の第1の考えられる実装方法を参照すると、第3の態様の第3の考えられる実装方法では、各同一位置のピクチャは、各CTU行に対して、またはピクチャ全体に対して、時間的HMVPリストを記憶することができ、現在CTU行に対するHMVPリストに対するデフォルト値を設定するステップは、時間的HMVPリストに基づいて、現在CTU行に対するHMVPリストを初期化/構築するステップを含む。
【００３５】
第3の態様の第1の考えられる実装方法を参照すると、第3の態様の第4の考えられる実装方法では、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にある、CTU行である。
【００３６】
第3の態様の第4の考えられる実装方法を参照すると、第3の態様の第5の考えられる実装方法では、前のCTU行のCTUは、前のCTU行の第2のCTUである。
【００３７】
第3の態様の第4の考えられる実装方法を参照すると、第3の態様の第5の考えられる実装方法では、前のCTU行のCTUは、前のCTU行の第1のCTUである。
【００３８】
本発明の第4の態様は、符号化デバイスによって実装されるコーディングの方法であって、現在CTU行に対するHMVPリストを構築/初期化するステップと、構築/初期化されたHMVPリストに基づいて、現在CTU行のCTUを処理するステップとを含む、コーディングの方法を提供する。
【００３９】
第4の態様を参照すると、第4の態様の第1の考えられる実装方法では、現在CTU行に対するHMVPリストは、以下のように、すなわち、現在CTU行に対するHMVPリストを空にするように;および/もしくは現在CTU行に対するHMVPリストに対するデフォルト値を設定するように、ならびに/または前のCTU行のCTUのHMVPリストに基づいて、現在CTU行に対するHMVPリストを構築/初期化するように、構築/初期化される。
【００４０】
第4の態様の第1の考えられる実装方法を参照すると、第4の態様の第2の考えられる実装方法では、現在CTU行に対するHMVPリストに対するデフォルト値を設定するステップは、HMVPリストのMVを単予測方法のMVとしてポピュレートするステップであって、単予測方法のMVは、ゼロ動きベクトルであるか、またはゼロ動きベクトルでないか、のいずれかであり、参照ピクチャは、L0リスト内に第1の参照ピクチャを含む、ポピュレートするステップ;および/またはHMVPリストのMVを双予測方法のMVとしてポピュレートするステップであって、双予測方法のMVは、ゼロ動きベクトルであるか、またはゼロ動きベクトルでないか、のいずれかであり、参照ピクチャは、L0リスト内に第1の参照ピクチャを含み、L1リスト内に第1の参照ピクチャを含む、ポピュレートするステップを含む。
【００４１】
第4の態様の第1の考えられる実装方法を参照すると、第4の態様の第3の考えられる実装方法では、各同一位置のピクチャは、各CTU行に対して、またはピクチャ全体に対して、時間的HMVPリストを記憶することができ、現在CTU行に対するHMVPリストに対するデフォルト値を設定するステップは、時間的HMVPリストに基づいて、現在CTU行に対するHMVPリストを初期化/構築するステップを含む。
【００４２】
第4の態様の第1の考えられる実装方法を参照すると、第4の態様の第4の考えられる実装方法では、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上または上方にある、CTU行である。
【００４３】
第4の態様の第4の考えられる実装方法を参照すると、第4の態様の第5の考えられる実装方法では、前のCTU行のCTUは、前のCTU行の第2のCTUである。
【００４４】
第4の態様の第4の考えられる実装方法を参照すると、第4の態様の第6の考えられる実装方法では、前のCTU行のCTUは、前のCTU行の第1のCTUである。
【００４５】
本発明の第5の態様は、エンコーダであって、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を実行するための処理回路を含む、エンコーダを提供する。たとえば、エンコーダは、現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するように構成された、初期化回路と、HMVPリストに基づいて現在CTU行を処理するように構成された、処理回路とを含み得る。
【００４６】
本発明の第6の態様は、デコーダであって、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を実行するための処理回路を含む、デコーダを提供する。たとえば、デコーダは、現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するように構成された、初期化回路と、HMVPリストに基づいて現在CTU行を処理するように構成された、処理回路とを含み得る。
【００４７】
本発明の第7の態様は、コンピュータプログラム製品であって、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を実行するためのプログラムコードを含む、コンピュータプログラム製品を提供する。
【００４８】
本発明の第8の態様は、コンピュータ命令を記憶した、コンピュータ可読記憶媒体であって、コンピュータ命令は、1つまたは複数のプロセッサによって実行されると、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を1つまたは複数のプロセッサに実行させる、コンピュータ可読記憶媒体を提供する。
【００４９】
本発明の第9の態様は、デコーダであって、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行されると、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を実行するようにデコーダを構成する、デコーダを提供する。
【００５０】
本発明の第10の態様は、エンコーダであって、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行されると、第1の態様もしくは第1の態様の実装方法のうちのいずれか1つによる、または第3の態様もしくは第3の態様の実装方法のうちのいずれか1つによる、または第4の態様もしくは第4の態様の実装方法のうちのいずれか1つによる、方法を実行するようにエンコーダを構成する、エンコーダを提供する。
【００５１】
以下で、本発明の実施形態は、添付の図および図面を参照してより詳細に説明される。
【図面の簡単な説明】
【００５２】
【図１Ａ】本発明の実施形態を実装するように構成されたビデオコーディングシステムの一例を示すブロック図である。
【図１Ｂ】本発明の実施形態を実装するように構成されたビデオコーディングシステムの他の例を示すブロック図である。
【図２】本発明の実施形態を実装するように構成されたビデオエンコーダの一例を示すブロック図である。
【図３】本発明の実施形態を実装するように構成されたビデオデコーダの1つの例示的な構造を示すブロック図である。
【図４】符号化装置または復号装置の一例を示すブロック図である。
【図５】符号化装置または復号装置の他の例を示すブロック図である。
【図６】マージおよびAMVP候補リスト構築において使用される空間的に近接するブロックの位置を示す図である。
【図７】HMVP方法の復号流れ図である。
【図８】WPP処理順序を示すブロック図である。
【図９】一実施形態によるビデオデコーダの1つの例示的な動作を示す流れ図である。
【図１０】一実施形態による、1つの例示的な動作を示す流れ図である。
【図１１】ビデオ処理装置の一例を示すブロック図である。
【発明を実施するための形態】
【００５３】
以下、同一の参照符号の差異に関して何の特定の注記もない場合、それらの同一の参照符号は、同一の、または少なくとも機能的に同等の特徴を指す。
【００５４】
以下の説明において、添付の図を参照し、これらの図は、本開示の一部を成し、例として、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を示す。本発明の実施形態は、他の態様において使用されてもよく、これらの図に示されない構造的または論理的変更を含むことが理解される。以下の詳細な説明は、したがって、限定的な意味で理解すべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【００５５】
たとえば、説明する方法に関する開示は、この方法を実行するように構成された、対応するデバイスまたはシステムにも有効であり得、逆も同様であることが理解される。たとえば、1つまたは複数の特定の方法ステップについて説明する場合、対応するデバイスは、説明する1つまたは複数の方法ステップを実行するための1つまたは複数のユニットがたとえ図において明示的に説明または示されていない場合であっても、そのような1つまたは複数のユニット、たとえば、機能ユニットを含み得る(たとえば、1つのユニットが1つもしくは複数のステップを実行する、または複数のユニットが各々、複数のステップのうちの1つもしくは複数を実行する)。他方で、たとえば、特定の装置について1つまたは複数のユニット、たとえば、機能ユニットに基づいて説明される場合、対応する方法は、そのような1つまたは複数のステップが図において明示的に説明または示されていない場合ですら、1つまたは複数のユニットの機能性を実行するための1つのステップを含み得る(たとえば、1つのステップが1つもしくは複数のユニットの機能性を実行する、または複数のステップが各々、複数のユニットのうちの1つもしくは複数の機能性を実行する)。さらに、本明細書で説明する様々な例示的な実施形態および/または態様の特徴は、別段に明示的な規定がない限り、互いに組み合わされてよいことが理解される。
【００５６】
ビデオコーディングは、一般に、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。「ピクチャ」という用語の代わりに、「フレーム」または「画像」という用語がビデオコーディングの分野において同義語として使用されることがある。本出願(または、本開示)で使用されるビデオコーディングは、ビデオ符号化またはビデオ復号のいずれかを指す。ビデオ符号化は、一般に、(より効率的な記憶および/または送信のための)ビデオピクチャを表すために必要とされるデータの量を低減するために元のビデオピクチャを(たとえば、圧縮によって)処理することを含めて、ソース側において行われる。ビデオ復号は、宛先側において行われ、一般に、ビデオピクチャを再構築するためにエンコーダと比較して逆処理を含む。ビデオピクチャ(または、後で説明されるように、概して、ピクチャ)の「コーディング」を指す実施形態は、ビデオシーケンスに対する「符号化」または「復号」のいずれかに関することを理解されたい。符号化部分と復号部分の組合せは、CODEC(コーディングおよび復号)とも呼ばれる。
【００５７】
ロスレスビデオコーディングの場合、元のビデオピクチャは再構築可能であり、すなわち、再構築されたビデオピクチャは、(記憶中または送信中に送信損失または他のデータ損失がないと仮定すると)元のビデオピクチャと同じ品質を有する。ロッシービデオコーディングの場合、ビデオピクチャを表すデータの量を低減するために、たとえば、量子化による、さらなる圧縮が実行されるが、これらのビデオピクチャは、デコーダにおいて完全に再構築され得ず、すなわち、再構築されたビデオピクチャの品質は、元のビデオピクチャの品質と比較してより低いかまたは悪い。
【００５８】
H.261以来、いくつかのビデオコーディング規格は、「ロッシー・ハイブリッド・ビデオ・コーデック」のグループに属する(すなわち、サンプル領域内の空間予測および時間予測と変換領域内で量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、一般に、重複しないブロックのセットに分割され、コーディングは、一般に、ブロックレベルで行われる。言い換えれば、エンコーダにおいて、ビデオは、一般に、たとえば、予測ブロックを生成するために空間(イントラピクチャ)予測および時間(インターピクチャ)予測を使用し、残差ブロックを取得するために予測ブロックを現在ブロック(現在処理されている/処理されることになるブロック)から差し引き、残差ブロックを変換し、送信されることになるデータ量を低減する(圧縮)ために変換領域内で残差ブロックを量子化することによって、ブロック(ビデオブロック)レベルで処理され、すなわち、符号化される一方で、デコーダでは、エンコーダと対照的に、表現のために現在ブロックを再構築するために、符号化または圧縮されたブロックに逆処理が部分的に適用される。さらに、エンコーダは、デコーダ処理ループを複製し、両方が後続ブロックを処理するため、すなわち、コーディングするために、同一の予測(たとえば、イントラ予測およびインター予測)および/または再構築を生成するようにする。
【００５９】
本明細書で使用する「ブロック」という用語は、ピクチャまたはフレームの一部分でありうる。説明の便宜上、本発明の実施形態は、本明細書において、高効率ビデオコーディング(HEVC)、またはITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のビデオコーディングに対するジョイントコラボレーションチーム(JCT-VC)によって開発された多目的ビデオコーディング(VVC)の基準ソフトウェアを参照しながら説明される。本発明の実施形態はHEVCまたはVVCに限定されないことを当業者は理解されよう。本発明の実施形態は、CU、PU、およびTUを参照することがある。HEVCでは、CTUは、コーディングツリーとして示される四分木構造を使用することによってCUに分割される。インターピクチャ(時間)予測を使用してピクチャエリアをコーディングするか、またはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングするかに関する決定は、CUレベルで行われる。各CUは、PU分割タイプに従って、1個、2個、または4個のPUにさらに分割され得る。1個のPUの中で、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUに対するコーディングツリーと同様の他の四分木構造に従って、変換ユニット(TU)に分割され得る。最新のビデオ圧縮技術の開発では、コーディングブロックを分割するために、四分木および二分木(QTBT)分割フレームが使用される。QTBTブロック構造において、CUは、正方形または矩形のいずれかの形状を有し得る。たとえば、コーディングツリーユニット(CTU)は、まず四分木構造によって分割される。四分木リーフノードは、二分木構造によってさらに分割される。二分木リーフノードは、コーディングユニット(CU)と呼ばれ、そのセグメンテーションは、さらなる分割なしに予測および変換処理のために使用される。これは、CU、PU、およびTUが、QTBTコーディングブロック構造において同じブロックサイズを有することを意味する。並行して、QTBTブロック構造とともに使用されるべく多分割、たとえば、三分木分割も提案された。
【００６０】
以下、エンコーダ20、デコーダ30、およびコーディングシステム10の実施形態は、図1から図3に基づいて説明される。
【００６１】
図1Aは、1つの例示的なコーディングシステム10、たとえば、本出願(本開示)の技術を利用し得るビデオコーディングシステム10を示す、概念的または概略的なブロック図である。ビデオコーディングシステム10のエンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は、本出願で説明する様々な例による技術を行うように構成され得るデバイスの例を表す。図1Aに示すように、コーディングシステム10は、符号化されたデータ13を復号するために、符号化されたデータ13、たとえば、符号化されたピクチャ13を、たとえば、宛先デバイス14に提供するように構成されたソースデバイス12を含む。
【００６２】
ソースデバイス12は、エンコーダ20を含み、追加として、すなわち、任意選択で、ピクチャソース16、前処理ユニット18、たとえば、ピクチャ前処理ユニット18、および通信インターフェースまたは通信ユニット22を含みうる。
【００６３】
ピクチャソース16は、たとえば、実世界ピクチャをキャプチャするための、任意の種類のピクチャキャプチャデバイス、および/または任意の種類のピクチャもしくはコメント(スクリーンコンテンツコーディングの場合、スクリーン上の一部のテキストも符号化されることになるピクチャまたは画像の一部分と見なされる)生成デバイス、たとえば、コンピュータ動画ピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界ピクチャ、コンピュータ動画ピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/またはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/または提供するための任意の種類のデバイスを含んでもよく、またはそれらであってもよい。
【００６４】
(デジタル)ピクチャは、強度値を有するサンプルの二次元配列もしくは二次元行列であるか、または二次元配列もしくは二次元行列と見なされることができる。配列内のサンプルは、ピクセル(ピクチャ要素の略)またはペル(pel)と呼ばれることもある。配列またはピクチャの水平方向および垂直方向(または、軸)のサンプル数は、ピクチャのサイズおよび/または解像度を定義する。色を表現するために、一般に、3つの色成分が採用され、すなわち、ピクチャは、3つのサンプル配列で表現され得るかまたは含み得る。RBGフォーマットまたは色空間では、ピクチャは、対応する赤、緑、および青のサンプル配列を含む。しかしながら、ビデオコーディングでは、各ピクセルは、一般に、輝度/色度フォーマットまたは色空間、たとえば、Y(ときには、代わりに、Lも使用される)によって示される輝度成分と、CbおよびCrによって示される2つの色度成分とを含む、YCbCrで表される。輝度(または、短く、ルマ)成分Yは、明るさまたは濃度強度(たとえば、グレイスケールピクチャにおけるような)を表し、2つの色度(または、短く、クロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプル配列、および色度値(CbおよびCr)の2つの色度サンプル配列を含む。RGBフォーマットのピクチャは、YCbCrフォーマットに変換(converted)または変換(transformed)されることが可能であり、逆も同様であり、このプロセスは、色変換(transformation)または色変換(conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャは、輝度サンプル配列のみを含み得る。
【００６５】
モノクロサンプリングでは、名目上ルマ配列と見なされる、1つのサンプル配列のみが存在する。
【００６６】
4:2:0サンプリングでは、2つのクロマ配列の各々は、ルマ配列の半分の高さおよび半分の幅を有する。
【００６７】
4:2:2サンプリングでは、2つのクロマ配列の各々は、ルマ配列の同じ高さおよび半分の幅を有する。
【００６８】
4:4:4サンプリングでは、separate_colour_plane_flagの値に応じて、以下が適用される:
-  separate_colour_plane_flagが0に等しい場合、2つのクロマ配列の各々は、ルマ配列と同じ高さおよび幅を有する。
-  そうでない(separate_colour_plane_flagが1に等しい)場合、3つの色平面は、モノクロサンプリングされたピクチャとして別個に処理される。
【００６９】
ピクチャソース16(たとえば、ビデオソース16)は、たとえば、ピクチャをキャプチャするためのカメラ、メモリ、たとえば、前にキャプチャもしくは生成されたピクチャを含むか、またはそれを記憶するピクチャメモリ、および/もしくはピクチャを取得もしくは受信するための任意の種類のインターフェース(内部または外部)であってよい。カメラは、たとえば、ローカルカメラ、または、たとえば、ソースデバイス内に一体化された、一体化カメラであってよく、メモリは、ローカルメモリ、または、たとえば、ソースデバイス内に一体化された、一体化メモリであってよい。インターフェースは、たとえば、外部ビデオソース、たとえば、カメラ、外部メモリ、または外部ピクチャ生成デバイス、たとえば、外部コンピュータグラフィックスプロセッサ、コンピュータ、またはサーバなど、外部ピクチャキャプチャデバイスからピクチャを受信するための外部インターフェースであってよい。インターフェースは、任意の種類のインターフェース、たとえば、任意の特性または標準化されたインターフェースプロトコルによる、ワイヤードインターフェースまたはワイヤレスインターフェース、光インターフェースであってよい。ピクチャデータ17を取得するためのインターフェースは、通信インターフェース22と同じインターフェースであってよく、または通信インターフェース22の一部分であってもよい。
【００７０】
前処理ユニット18および前処理ユニット18によって行われる処理と区別して、ピクチャまたはピクチャデータ17(たとえば、ビデオデータ16)は、生ピクチャまたは生ピクチャデータ17と呼ばれることもある。
【００７１】
前処理ユニット18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。前処理ユニット18によって実行される前処理は、たとえば、トリミング、カラーフォーマット変換(たとえば、RGBからYCbCrへ)、色補正、またはノイズ除去を含み得る。前処理ユニット18は任意選択の構成要素であり得ることが理解され得る。
【００７２】
エンコーダ20(たとえば、ビデオエンコーダ20)は、前処理されたピクチャデータ19を受信し、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細は、以下で、たとえば、図2または図4に基づいて説明される)。
【００７３】
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、記憶または直接的な再構築のために、それを他のデバイス、たとえば、宛先デバイス14もしくは任意の他のデバイスに送信するように、または、それぞれ、符号化されたデータ13を記憶する前に、かつ/または、復号もしくは記憶のために、符号化されたデータ13を他のデバイス、たとえば、宛先デバイス14または任意の他のデバイスに送信する前に、符号化されたピクチャデータ21を処理するように構成され得る。
【００７４】
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を含み、追加で、すなわち、任意選択で、通信インターフェースまたは通信ユニット28、後処理ユニット32、およびディスプレイデバイス34を含み得る。
【００７５】
宛先デバイス14の通信インターフェース28は、符号化されたピクチャデータ21または符号化されたデータ13を、たとえば、ソースデバイス12から直接的にまたは任意の他のソース、たとえば、記憶デバイス、たとえば、符号化ピクチャデータ記憶デバイスから受信するように構成される。
【００７６】
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接的な通信リンク、たとえば、直接的なワイヤード接続もしくはワイヤレス接続を介して、または、任意の種類のネットワーク、たとえば、ワイヤードネットワークもしくはワイヤレスネットワーク、またはそれらの任意の種類の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成され得る。
【００７７】
通信インターフェース22は、たとえば、通信リンクまたは通信ネットワークを介して送信するために、符号化されたピクチャデータ21を適切なフォーマット、たとえば、パケットにパッケージングするように構成され得る。
【００７８】
通信インターフェース22の相手方を成す通信インターフェース28は、たとえば、符号化されたピクチャデータ21を取得するために、符号化されたデータ13をパッケージング解除するように構成され得る。
【００７９】
通信インターフェース22と通信インターフェース28は両方とも、ソースデバイス12から宛先デバイス14を指す、図1Aの符号化されたピクチャデータ13に対する矢印によって示されるような一方向通信インターフェース、または双方向通信インターフェースとして構成されてよく、たとえば、接続をセットアップして、通信リンクおよび/またはデータ送信、たとえば、符号化されたピクチャデータ送信に関する任意の他の情報を肯定応答および交換するために、たとえば、メッセージを送信および受信するように構成されうる。
【００８０】
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細は、以下で、たとえば、図3または図5に基づいて説明される)。
【００８１】
宛先デバイス14のポストプロセッサ32は、後処理されたピクチャデータ33、たとえば後処理されたピクチャ33を取得するために、復号されたピクチャデータ31(再構築されたピクチャデータとも呼ばれる)、たとえば復号されたピクチャ31を後処理するように構成される。後処理ユニット32によって行われる後処理は、たとえば、カラーフォーマット変換(たとえば、YCbCrからRGBへ)、色補正、トリミング、もしくはリサンプリング、または、たとえば、ディスプレイデバイス34によって、たとえば、表示のために復号されたピクチャデータ31を準備するための任意の他の処理を含み得る。
【００８２】
宛先デバイス14のディスプレイデバイス34は、ピクチャを、たとえば、ユーザまたは視聴者に表示するために後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構築されたピクチャを表すための任意の種類のディスプレイ、たとえば、一体化されたまたは外部のディスプレイまたはモニタであってよいか、またはそれを備えてよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS:liquid crystal on silicon)、デジタルライトプロセッサ(DLP:digital light processor)、または任意の種類の他のディスプレイを含み得る。
【００８３】
図1Aは、ソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態は、両方または両方の機能性、ソースデバイス12または対応する機能性、および宛先デバイス14または対応する機能性を備えてもよい。そのような実施形態では、ソースデバイス12または対応する機能性および宛先デバイス14または対応する機能性は、同じハードウェアおよび/もしくはソフトウェアを使用して、または別個のハードウェアおよび/もしくはソフトウェア、またはそれらの任意の組合せによって実装され得る。
【００８４】
説明に基づいて当業者に明らかになるように、図1Aに示すような、異なるユニットの機能性またはソースデバイス12および/もしくは宛先デバイス14内の機能性の存在および(正確な)分離は、実際のデバイスおよび適用例に応じて異なり得る。
【００８５】
エンコーダ20(たとえば、ビデオエンコーダ20)およびデコーダ30(たとえば、ビデオデコーダ30)は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなど、様々な好適な回路のうちのいずれかとして実装され得る。これらの技術が部分的にソフトウェアにおいて実装される場合、デバイスは、好適な、非一時的コンピュータ可読記憶媒体内にソフトウェアに対する命令を記憶することができ、本開示の技術を実行するために、1つまたは複数のプロセッサを使用してハードウェア内で命令を実行し得る。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せ、などを含めて)前述のうちのいずれも、1つまたは複数のプロセッサと見なされ得る。ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、それらのいずれもそれぞれのデバイス内に組み合わされたエンコーダ/デコーダ(CODEC)の部分として一体化され得る。
【００８６】
ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００８７】
ソースデバイス12および宛先デバイス14は、任意の種類のハンドヘルドデバイスまたは固定デバイス、たとえば、ノートブックコンピュータまたはラップトップコンピュータ、モバイルフォン、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイス(コンテンツサービスサーバまたはコンテンツ配信サーバなど)、ブロードキャスト受信器デバイス、ブロードキャスト送信器デバイス、などを含めて、幅広い範囲のデバイスのうちのいずれかを備えてよく、何のオペレーティングシステムも使用しなくてよいか、または任意の種類のオペレーティングシステムを使用してよい。
【００８８】
場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。したがって、ソースデバイス12および宛先デバイス14は、ワイヤレス通信デバイスであってもよい。
【００８９】
場合によっては、図1Aに示すビデオコーディングシステム10は、単なる一例であり、本出願の技術は、符号化デバイスと復号デバイスとの間に何らかのデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データは、ローカルメモリから取り出され、ネットワークを介してストリーミングされる、などである。ビデオ符号化デバイスは、データを符号化してメモリに記憶することができ、かつ/またはビデオ復号デバイスは、メモリからデータを取り出して復号することができる。いくつかの例では、符号化および復号は、互いと通信せず、メモリに対してデータを単に符号化し、かつ/またはメモリからデータを取り出して復号するデバイスによって実行される。
【００９０】
ビデオエンコーダ20を参照しながら説明した上記の例の各々に関して、ビデオデコーダ30は、逆のプロセスを実行するように構成され得ることを理解されたい。シンタックス要素のシグナリングに関しては、ビデオデコーダ30は、そのようなシンタックス要素を受信してパースし、それに応じて、関連するビデオデータを復号するように構成される。いくつかの例では、ビデオエンコーダ20は、1つまたは複数のシンタックス要素を符号化されたビデオビットストリームにエントロピー符号化し得る。そのような例では、ビデオデコーダ30は、そのようなシンタックス要素をパースし、それに応じて、関連するビデオデータを復号し得る。
【００９１】
図1Bは、1つの例示的な実施形態による、図2のエンコーダ20および/または図3のデコーダ30を含む、他の例示的なビデオコーディングシステム40の例示的な図である。システム40は、本出願で説明する様々な例による技術を実装し得る。示される実装形態では、ビデオコーディングシステム40は、撮像デバイス41、ビデオエンコーダ100、ビデオデコーダ30(および/または、処理ユニット46の論理回路47を介して実装されるビデオコーダ)、アンテナ42、1つまたは複数のプロセッサ43、1つまたは複数のメモリストア44、および/またはディスプレイデバイス45を含み得る。
【００９２】
例示するように、撮像デバイス41、アンテナ42、処理ユニット46、論理回路47、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリストア44、および/またはディスプレイデバイス45は、互いに通信することが可能であり得る。上述したように、ビデオエンコーダ20とビデオデコーダ30の両方を用いて示されているが、ビデオコーディングシステム40は、様々な例では、ビデオエンコーダ20のみ、またはビデオデコーダ30のみを含みうる。
【００９３】
図示するように、いくつかの例では、ビデオコーディングシステム40は、アンテナ42を含み得る。アンテナ42は、たとえば、ビデオデータの符号化されたビットストリームを送信または受信するように構成され得る。さらに、いくつかの例では、ビデオコーディングシステム40は、ディスプレイデバイス45を含み得る。ディスプレイデバイス45は、ビデオデータを提示するように構成され得る。図示するように、いくつかの例では、論理回路47は、処理ユニット46を介して実装され得る。処理ユニット46は、特定用途向け集積回路(ASIC)論理、グラフィックスプロセッサ、汎用プロセッサなどを含み得る。ビデオコーディングシステム40は、特定用途向け集積回路(ASIC)論理、グラフィックスプロセッサ、汎用プロセッサ、などを同様に含み得る、任意のプロセッサ43をやはり含み得る。いくつかの例では、論理回路47は、ハードウェア、ビデオコーディング専用ハードウェア、などを介して実装され得、プロセッサ43は、汎用ソフトウェア、オペレーティングシステムなどを介して実装され得る。加えて、メモリストア44は、揮発性メモリ(たとえば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、など)または不揮発性メモリ(たとえば、フラッシュメモリ、など)など、任意のタイプのメモリであってよい。非限定的な例では、メモリストア44は、キャッシュメモリによって実装され得る。いくつかの例では、論理回路47は、(たとえば、画像バッファの実装のために)メモリストア44にアクセスし得る。他の例では、論理回路47および/または処理ユニット46は、画像バッファなどの実装のためにメモリストア(たとえば、キャッシュなど)を含み得る。
【００９４】
いくつかの例では、論理回路を介して実装されるビデオエンコーダ100は、画像バッファ(たとえば、処理ユニット46またはメモリストア44のいずれかを介して))およびグラフィックス処理ユニット(たとえば、処理ユニット46を介して)を含み得る。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図2に関して説明されるような様々なモジュールを実施するために論理回路47を介して実装されるビデオエンコーダ100および/または本明細書に記載の任意の他のエンコーダシステムもしくはサブシステムを含み得る。論理回路は、本明細書で説明するような様々な動作を実行するように構成され得る。
【００９５】
ビデオデコーダ30は、図3のデコーダ30および/または本明細書に記載の任意の他のデコーダシステムもしくはサブシステムに関して説明するような様々なモジュールを実施するために論理回路47を介して実装されるのと同様の方法で実装され得る。いくつかの例では、ビデオデコーダ30は、論理回路を介して実装可能であり、画像バッファ(たとえば、処理ユニット420またはメモリストア44のいずれかを介して))およびグラフィックス処理ユニット(たとえば、処理ユニット46を介して)を含み得る。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3に関して説明するような様々なモジュールを実施するために論理回路47を介して実装されるようなビデオデコーダ30および/または本明細書に記載の任意の他のデコーダシステムもしくはサブシステムを含み得る。
【００９６】
いくつかの例では、ビデオコーディングシステム40のアンテナ42は、ビデオデータの符号化されたビットストリームを受信するように構成され得る。説明されるように、符号化されたビットストリームは、コーディング分割に関連するデータ(たとえば、変換係数または量子化変換係数、(説明されるような)任意のインジケータ、および/またはコーディング区分を定義するデータ)など、本明細書で説明されるようにビデオフレームを符号化することに関連する、データ、インジケータ、インデックス値、モード選択データなどを含み得る。ビデオコーディングシステム40は、アンテナ42に結合され、符号化されたビットストリームを復号するように構成されたビデオデコーダ30をやはり含み得る。ディスプレイデバイス45は、ビデオフレームを提示するように構成される。
【００９７】
エンコーダおよび符号化方法
図2は、本出願の技術を実装するように構成された、1つの例示的なビデオエンコーダ20の概略的/概念的なブロック図を示す。図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、および逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(DPB)230、予測処理ユニット260、およびエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット262を含み得る。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもある。
【００９８】
たとえば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、およびエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成するが、たとえば、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、予測処理ユニット260は、エンコーダの後方信号経路を形成し、エンコーダの後方信号経路は、デコーダ(図3のデコーダ30を参照されたい)の信号経路に対応する。
【００９９】
エンコーダ20は、たとえば、入力202によって、ピクチャ20またはピクチャ201のブロック203、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成される。ピクチャブロック203は、現在ピクチャブロックまたはコーディングされることになるピクチャブロックと呼ばれることもあり、ピクチャ201は、(特に、ビデオコーディングにおいて、現在ピクチャを他のピクチャ、たとえば、同じビデオシーケンス、すなわち、現在ピクチャをやはり含むビデオシーケンスの前に符号化されたかつ/または復号されたピクチャと区別するために)現在ピクチャまたはコーディングされることになるピクチャと呼ばれることがある。
【０１００】
分割
エンコーダ20の実施形態は、ピクチャ201を、一般には複数の重複しないブロックである複数のブロック、たとえば、ブロック203のようなブロックに分割するように構成された分割ユニット(図2に図示せず)を含み得る。分割ユニットは、ビデオシーケンスのすべてのピクチャに対して同じブロックサイズ、およびブロックサイズを定義する対応するグリッドを使用するか、またはピクチャ同士の間またはピクチャのサブセットもしくはグループ同士の間でブロックサイズを変更し、各ピクチャを対応するブロックに分割するように構成され得る。
【０１０１】
一例では、ビデオエンコーダ20の予測処理ユニット260は、上述した分割技術の任意の組合せを行うように構成され得る。
【０１０２】
ピクチャ201のように、ブロック203は、この場合も、ピクチャ201よりも小さな寸法のものではあるが、強度値(サンプル値)を有するサンプルの二次元配列もしくは二次元行列であるか、または二次元配列もしくは二次元行列と見なされうる。言い換えれば、ブロック203は、適用されるカラーフォーマットに応じて、たとえば、1つのサンプル配列(たとえば、モノクロピクチャ201の場合、1つのルマ配列)、または3つのサンプル配列(たとえば、カラーピクチャ201の場合、1つのルマ配列および2つのクロマ配列)、または任意の他の数のおよび/もしくは種類の配列を含み得る。ブロック203の水平方向および垂直方向(または、軸)のサンプル数は、ブロック203のサイズを定義する。
【０１０３】
図2に示すエンコーダ20は、ピクチャ201をブロック単位で符号化するように構成され、たとえば、符号化および予測は、ブロック203ごとに行われる。
【０１０４】
残差計算
残差計算ユニット204は、たとえば、サンプル領域内の残差ブロック205を取得するために、サンプルごとに(ピクセルごとに)予測ブロック265のサンプル値をピクチャブロック203のサンプル値から差し引くことによって、ピクチャブロック203および予測ブロック265(予測ブロック265に関するさらなる詳細は後述する)に基づいて、残差ブロック205を計算するように構成される。
【０１０５】
変換
変換処理ユニット206は、変換領域内の変換係数207を取得するために、変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を残差ブロック205のサンプル値に適用するように構成される。変換係数207は、変換残差係数と呼ばれることもあり、変換領域内の残差ブロック205を表す。
【０１０６】
変換処理ユニット206は、HEVC/H.265のために指定された変換など、DCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、一般に、ある係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックの基準を保つために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、一般に、スケーリング係数がシフト演算では2の冪乗であるなど、一定の制約、変換係数のビット深度、精度と実装コストの間のトレードオフなどに基づいて選定される。特定のスケーリング係数は、たとえば、逆変換処理ユニット212によって、デコーダ30において、逆変換(また、たとえば、逆変換処理ユニット212によって、エンコーダ20において、対応する逆変換)のために指定され、それに応じて、たとえば、変換処理ユニット206によって、エンコーダ20において、対応するスケーリング係数が順変換のために指定され得る。
【０１０７】
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、量子化変換係数209を取得するために、変換係数207を量子化するように構成される。量子化変換係数209は、量子化残差係数209と呼ばれることもある。量子化プロセスは、変換係数207のうちのいくつかまたはすべてに関連するビット深度を低減し得る。たとえば、nビット変換係数は、量子化中に、mビット変換係数へと切り捨てされてもよく、ここで、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正され得る。たとえば、スカラー量子化の場合、より細かい量子化またはより粗い量子化を達成するために、異なるスケーリングが適用され得る。より小さな量子化ステップサイズは、より細かい量子化に対応するのに対して、より大きな量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの事前定義されたセットに対するインデックスであり得る。たとえば、小さい量子化パラメータは、細かい量子化(小さな量子化ステップサイズ)に対応し得、大きな量子化パラメータは、粗い量子化(大きな量子化ステップサイズ)に対応し得、またはその逆であり得る。量子化は、量子化ステップサイズによる除算を含んでよく、たとえば、逆量子化210による、対応するまたは逆の量子化解除は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、たとえば、HEVCによる実施形態は、量子化ステップサイズを決定するために、量子化パラメータを使用するように構成され得る。概して、量子化ステップサイズは、除算を含めて、等式の固定小数点近似を使用して、量子化パラメータに基づいて計算され得る。残差ブロックの基準を復元するために、追加のスケーリング係数が量子化および量子化解除のために導入されてよく、残差ブロックの基準は、量子化ステップサイズおよび量子化パラメータに対する等式の固定小数点近似において使用されるスケーリングにより修正され得る。1つの例示的な実装形態では、逆変換および量子化解除のスケーリングは、組み合わされてよい。あるいは、カスタマイズされた量子化テーブルが使用され、たとえば、ビットストリーム内で、エンコーダからデコーダにシグナリングされてよい。量子化は、損失のある演算であり、損失は、量子化ステップサイズの増大とともに増大する。
【０１０８】
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット208によって適用される量子化方式の逆を適用することによって、量子化解除係数211を取得するために、量子化係数に対して量子化ユニット208の逆量子化を適用するように構成される。量子化解除係数211は、量子化解除された残差係数211と呼ばれることもあり、一般に、量子化による損失により変換係数と同一ではないが、変換係数207に対応する。
【０１０９】
逆変換処理ユニット212は、サンプル領域内で逆変換ブロック213を取得するために、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)を適用するように構成される。逆変換ブロック213は、逆変換量子化解除されたブロック213または逆変換残差ブロック213と呼ばれることもある。
【０１１０】
再構築ユニット214(たとえば、加算器214)は、たとえば、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、逆変換ブロック213(すなわち、再構築された残差ブロック213)を予測ブロック265に加えて、サンプル領域内で再構築されたブロック215を取得するように構成される。
【０１１１】
任意の、バッファユニット216(または、短く「バッファ」216)、たとえばラインバッファ216は、たとえばイントラ予測のために、再構築されたブロック215およびそれぞれのサンプル値をバッファリングまたは記憶するように構成される。さらなる実施形態では、エンコーダは、任意の種類の推定および/または予測、たとえば、イントラ予測のために、フィルタリングされていない、再構築されたブロックおよび/またはバッファユニット216内に記憶されたそれぞれのサンプル値を使用するように構成され得る。
【０１１２】
エンコーダ20の実施形態は、たとえばバッファユニット216が、イントラ予測254のためだけではなく、ループフィルタユニット220(図2に図示せず)に対しても、再構築されたブロック215を記憶するために使用されるように、かつ/または、たとえばバッファユニット216および復号ピクチャバッファユニット230が1つのバッファを形成するように、構成され得る。さらなる実施形態は、フィルタリングされたブロック221および/または復号ピクチャバッファ230からのブロックまたはサンプル(両方とも図2に図示せず)をイントラ予測254のための入力または基礎として使用するように構成され得る。
【０１１３】
ループフィルタユニット220(または、短く「ループフィルタ」220)は、たとえばピクセル遷移を平滑にするために、またはさもなければ、ビデオ品質を改善するために、再構築されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO:sample-adaptive offset)フィルタ、または他のフィルタ、たとえばバイラテラルフィルタ、または適応ループフィルタ(ALF:adaptive loop filter)、または鮮明化(sharpening)もしくは平滑化フィルタ、あるいは協調フィルタなど、1つまたは複数のループフィルタを表すことが意図される。ループフィルタユニット220はインループフィルタであるとして、図2に示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装され得る。フィルタリングされたブロック221は、フィルタリングされた、再構築されたブロック221と呼ばれることもある。復号ピクチャバッファ230は、ループフィルタユニット220が、再構築されたコーディングブロックに対してフィルタリング動作を行った後、再構築されたコーディングブロックを記憶し得る。
【０１１４】
エンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、たとえば、デコーダ30が復号のために同じループフィルタパラメータを受け取って適用することができるように、ループフィルタパラメータ(サンプル適応オフセット情報など)を、たとえば、直接的に、またはエントロピー符号化ユニット270もしくは任意の他のエントロピーコーディングユニットを介してエントロピー符号化して出力するように構成され得る。
【０１１５】
復号ピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ピクチャデータを記憶する参照ピクチャメモリであってよい。DPB230は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM（登録商標）)を含む、ダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。DPB230およびバッファ216は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。いくつかの例では、復号ピクチャバッファ(DPB)230は、フィルタリングされたブロック221を記憶するように構成される。復号ピクチャバッファ230は、同じ現在ピクチャのまたは異なるピクチャ、たとえば前に再構築されたピクチャの、他の前にフィルタリングされたブロック、たとえば前に再構築されフィルタリングされたブロック221、を記憶するようにさらに構成されてよく、完全な前に再構築された、すなわち、復号されたピクチャ(および、対応する参照ブロックおよびサンプル)および/または部分的に再構築された現在ピクチャ(および、対応する参照ブロックおよびサンプル)を、たとえばインター予測のために提供し得る。いくつかの例では、再構築されたブロック215がインループフィルタリングなしに再構築される場合、復号ピクチャバッファ(DPB)230は、再構築されたブロック215を記憶するように構成される。
【０１１６】
ブロック予測処理ユニット260と呼ばれることもある予測処理ユニット260は、ブロック203(現在ピクチャ201の現在ブロック203)および再構築されたピクチャデータ、たとえば同じ(現在)ピクチャの参照サンプルを、バッファ216から、かつ/または1つもしくは複数の前に復号されたピクチャからの参照ピクチャデータ231を復号ピクチャバッファ230から受信または取得し、そのようなデータを予測のために、すなわち、インター予測されたブロック245またはイントラ予測されたブロック255であってよい予測ブロック265を提供するために、処理するように構成される。
【０１１７】
モード選択ユニット262は、予測モード(たとえば、イントラ予測モードまたはインター予測モード)、および/または残差ブロック205の計算のために、かつ再構築されたブロック215の再構築のために、予測ブロック265として使用されることになる対応する予測ブロック245または255を選択するように構成され得る。
【０１１８】
モード選択ユニット262の実施形態は、(たとえば、予測処理ユニット260によってサポートされる予測モードから)、最良の一致、すなわち言い換えれば、最小残差(最小残差は、送信もしくは記憶のためのより良好な圧縮を意味する)、または最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信もしくは記憶のためのより良好な圧縮を意味する)を与えるもの、または両方を考慮するか、両方のバランスをとるものである予測モードを選択するように構成され得る。モード選択ユニット262は、レート歪み最適化(RDO:rate distortion optimization)に基づいて予測モードを決定するように、すなわち、最小レート歪み最適化を提供する予測モード、またはどの関連付けられるレート歪みが予測モード選択基準を少なくとも満たすかを選択するように構成され得る。
【０１１９】
以下、1つの例示的なエンコーダ20によって行われる予測処理(たとえば、予測処理ユニット260およびモード選択(たとえば、モード選択ユニット262による)について、より詳細に説明する。
【０１２０】
上述したように、エンコーダ20は、(所定の)予測モードの集合から、最良のまたは最適な予測モードを決定または選択するように構成される。予測モードの集合は、たとえば、イントラ予測モードおよび/またはインター予測モードを含み得る。
【０１２１】
イントラ予測モードの集合は、35個の異なるイントラ予測モード、たとえばDC(または、平均)モードおよび平面モードなどの無指向性モード、もしくは、たとえばH.265において定義されるような指向性モードを含み得るか、または67個の異なるイントラ予測モード、たとえばDC(または、平均)モードおよび平面モードなどの無指向性モード、もしくは、たとえば開発中のH.266において定義されるような指向性モードを含み得る。
【０１２２】
インター予測モードの集合(または、可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえば、DBP230内に記憶された、前の少なくとも部分的に復号されたピクチャ)、および他のインター予測パラメータ、たとえば最も一致する参照ブロックを探索するために、参照ピクチャの参照ピクチャ全体が使用されるか、もしくは参照ピクチャの一部分、たとえば、現在ブロックのエリアの周囲の探索ウィンドウエリアのみが使用されるか、かつ/または、たとえば、ピクセル補間、たとえば、ハーフ/セミペル(semi-pel)および/もしくは1/4ペル補間が適用されるか、もしくは適用されないか、に依存する。
【０１２３】
上記の予測モードに加えて、スキップモードおよび/または直接モードが適用され得る。
【０１２４】
予測処理ユニット260は、たとえば、四分木分割(QT)、二分木分割(BT)、もしくは三分木分割(TT)、またはそれらの任意の組合せを反復的に使用して、ブロック203をより小さなブロック区分またはサブブロックに分割し、たとえば、ブロック区分またはサブブロックの各々に対する予測を行うようにさらに構成可能であり、モード選択は、分割されたブロック203のツリー構造およびブロック区分またはサブブロックの各々に適用される予測モードの選択を含む。
【０１２５】
インター予測ユニット244は、動き推定(ME)ユニット(図2に図示せず)および動き補償(MC)ユニット(図2に図示せず)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)および復号されたピクチャ231、または少なくとも1つもしくは複数の前に再構築されたブロック、たとえば、1つもしくは複数の他の/異なる前に復号されたピクチャ231の再構築されたブロック、を受信または取得するように構成される。たとえば、ビデオシーケンスは、現在ピクチャおよび前に復号されたピクチャ231を含んでよく、または、言い換えれば、現在ピクチャおよび前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの部分であり得るか、またはそれを形成し得る。
【０１２６】
エンコーダ20は、たとえば、複数の他のピクチャの同じまたは異なるピクチャの複数の参照ブロックから1個の参照ブロックを選択し、参照ピクチャ(または、参照ピクチャインデックス、…)および/または参照ブロックの位置(x座標、y座標)と現在ブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニット(図2に図示せず)に提供するように構成され得る。このオフセットは、動きベクトル(MV)とも呼ばれる。
【０１２７】
動き補償ユニットは、インター予測パラメータを取得し、たとえば、受信し、インター予測パラメータに基づいて、またはそれを使用して、インター予測を行い、インター予測ブロック245を取得するように構成される。動き補償ユニット(図2に図示せず)によって行われる動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて、場合によっては、サブピクセル精度に対する補間を行い、予測ブロックをフェッチまたは生成することを必要とし得る。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成し、それにより、潜在的に、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増大し得る。現在ピクチャブロックのPUに対する動きベクトルを受け取ると、動き補償ユニット246は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックを位置特定し得る。動き補償ユニット246は、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30によって使用するためのブロックおよびビデオスライスに関連付けられるシンタックス要素を生成することもできる。
【０１２８】
イントラ予測ユニット254は、イントラ推定のために、ピクチャブロック203(現在ピクチャブロック)および同じピクチャの1つまたは複数の前に再構築されたブロック、たとえば再構築された近接ブロックを取得するように、たとえば受信するように、構成される。エンコーダ20は、たとえば、イントラ予測モードを複数の(所定の)イントラ予測モードから選択するように構成され得る。
【０１２９】
エンコーダ20の実施形態は、最適化基準、たとえば、最小残差(たとえば、現在ピクチャブロック203に最も類似する予測ブロック255を提供するイントラ予測モード)または最小レート歪みに基づいて、イントラ予測モードを選択するように構成され得る。
【０１３０】
イントラ予測ユニット254は、イントラ予測パラメータ、たとえば、選択されたイントラ予測モード、に基づいて、イントラ予測ブロック255を決定するようにさらに構成される。いずれの場合も、ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット254はまた、イントラ予測パラメータ、すなわち、そのブロックに対して選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット270に与えるように構成される。一例では、イントラ予測ユニット254は、後で説明するイントラ予測技術の任意の組合せを行うように構成され得る。
【０１３１】
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズムまたはエントロピー符号化方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応型VLC方式(CALVC:context adaptive VLC)、算術コーディング方式、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔分割エントロピー(PIPE:probability interval partitioning entropy)コーディング、または他のエントロピー符号化方法論もしくはエントロピー符号化技術)を、量子化残差係数209、インター予測パラメータ、イントラ予測パラメータ、および/またはループフィルタパラメータに対して、個々にまたは一緒に適用して(または、まったく適用せずに)、出力272によって、たとえば、符号化されたビットストリーム21の形で出力され得る、符号化されたピクチャデータ21を取得するように構成される。符号化されたビットストリーム21は、ビデオデコーダ30に送信されてもよく、またはビデオデコーダ30による後の送信または取出しのためにアーカイブに保管されてもよい。エントロピー符号化ユニット270は、コーディングされている現在ビデオスライスに対する他のシンタックス要素をエントロピー符号化するようにさらに構成され得る。
【０１３２】
ビデオエンコーダ20の他の構造的な変形例が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ20は、一定のブロックまたはフレームについて、変換処理ユニット206なしに、残差信号を直接的に量子化し得る。他の実装形態では、エンコーダ20は、量子化ユニット208および逆量子化ユニット210を組み合わせて単一のユニットにすることができる。
【０１３３】
図3は、本出願の技術を実装するように構成された、1つの例示的なビデオデコーダ30を示す。ビデオデコーダ30は、復号されたピクチャ131を取得するために、たとえば、エンコーダ100によって符号化された、符号化されたピクチャデータ(たとえば、符号化されたビットストリーム)21を受信するように構成される。復号プロセス中、ビデオデコーダ30は、ビデオデータ、たとえば、符号化されたビデオスライスのピクチャブロックを表す、符号化されたビデオビットストリームおよび関連付けられるシンタックス要素をビデオエンコーダ100から受け取る。
【０１３４】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、およびモード選択ユニット362を含み得る。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明した符号化パスに対して概して逆の復号パスを行い得る。
【０１３５】
エントロピー復号ユニット304は、たとえば、量子化係数309および/または復号されたコーディングパラメータ(図3に図示せず)、たとえば、インター予測パラメータのうちの(復号された)いずれかまたはすべて、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素を取得するために、符号化されたピクチャデータ21に対してエントロピー復号を行うように構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を予測処理ユニット360に転送するようにさらに構成される。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受け取り得る。
【０１３６】
逆量子化ユニット310は、機能の点で逆量子化ユニット110と同一であってよく、逆変換処理ユニット312は、機能の点で逆変換処理ユニット112と同一であってよく、再構築ユニット314は、機能の点で同一の再構築ユニット114であってよく、バッファ316は、機能の点でバッファ116と同一であってよく、ループフィルタ320は、機能の点でループフィルタ120と同一であってよく、復号ピクチャバッファ330は、機能の点で復号ピクチャバッファ130と同一であってよい。
【０１３７】
予測処理ユニット360は、インター予測ユニット344およびイントラ予測ユニット354を含んでよく、インター予測ユニット344は、機能の点でインター予測ユニット144に類似してよく、イントラ予測ユニット354は、機能の点でイントラ予測ユニット154に類似してよい。予測処理ユニット360は、一般に、ブロック予測を行うように、かつ/または予測ブロック365を符号化されたデータ21から取得し、予測関係のパラメータおよび/または選択された予測モードに関する情報を、たとえば、エントロピー復号ユニット304から(明示的にまたは暗示的に)受信または取得するように構成される。
【０１３８】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。ビデオフレームがインターコーディングされた(すなわち、BまたはP)スライスとしてコーディングされるとき、予測処理ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受け取った他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロック365を作成するように構成される。インター予測の場合、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから作成され得る。ビデオデコーダ30は、DPB330内に記憶された参照ピクチャに基づいて、デフォルト構築技術を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。
【０１３９】
予測処理ユニット360は、動きベクトルおよび他のシンタックス要素をパースすることによって、現在ビデオスライスのビデオブロックに関する予測情報を決定するように構成され、予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを作成する。たとえば、予測処理ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスに対する参照ピクチャリストのうちの1つまたは複数に関する構築情報、スライスの各インター符号化されたビデオブロックに対する動きベクトル、スライスの各インターコーディングされたビデオブロックに対するインター予測状態、および現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。
【０１４０】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304によって復号された量子化変換係数を逆量子化するように、すなわち、量子化解除するように構成される。逆量子化プロセスは、ビデオスライス内の各ビデオブロックに対してビデオエンコーダ100によって計算された量子化パラメータを使用して、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定することを含み得る。
【０１４１】
逆変換処理ユニット312は、ピクセル領域内で残差ブロックを作成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用するように構成される。
【０１４２】
再構築ユニット314(たとえば、加算器314)は、たとえば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、逆変換ブロック313(すなわち、再構築された残差ブロック313)を予測ブロック365に加えて、サンプル領域内で再構築されたブロック315を取得するように構成される。
【０１４３】
ループフィルタユニット320は(コーディングループ中またはコーディングループ後のいずれかにおいて)、たとえば、ピクセル遷移を平滑にするために、またはさもなければ、ビデオ品質を改善するために、再構築されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得するように構成される。一例では、ループフィルタユニット320は、後で説明するフィルタリング技術の任意の組合せを行うように構成され得る。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、または他のフィルタ、たとえば、バイラテラルフィルタ、もしくは適応ループフィルタ(ALF)、または鮮明化フィルタもしくは平滑化フィルタ、あるいは協調フィルタなど、1つまたは複数のループフィルタを表すことが意図される。ループフィルタユニット320はインループフィルタであるとして図3に示されるが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてよい。
【０１４４】
所与のフレームまたはピクチャ内の復号されたビデオブロック321は、その場合、復号ピクチャバッファ330内に記憶され、復号ピクチャバッファ330は、後続の動き補償のために使用される参照ピクチャを記憶する。
【０１４５】
デコーダ30は、ユーザに示すため、またはユーザに対する視聴のために、復号されたピクチャ311を、たとえば、出力312を介して出力するように構成される。
【０１４６】
ビデオデコーダ30の他の変形例が、圧縮されたビットストリームを復号するために使用され得る。たとえば、デコーダ30は、ループフィルタリングユニット320なしに、出力ビデオストリームを作成し得る。たとえば、非変換ベースのデコーダ30は、一定のブロックまたはフレームに対する逆変換処理ユニット312なしに、残差信号を直接的に逆量子化し得る。他の実装形態では、ビデオデコーダ30は、逆量子化ユニット310および逆変換処理ユニット312を組み合わせて単一のユニットにすることができる。
【０１４７】
図4は、本開示の一実施形態による、ビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書で説明するような、開示される実施形態を実装するのに好適である。一実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダまたは図1Aのビデオエンコーダ20などのエンコーダであってよい。一実施形態では、ビデオコーディングデバイス400は、上述のような、図1Aのビデオデコーダ30または図1Aのビデオエンコーダ20の1つまたは複数の構成要素であってよい。
【０１４８】
ビデオコーディングデバイス400は、データを受信するための入口ポート410および受信器ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央処理装置(CPU)430;データを送信するための送信器ユニット(Tx)440および出口ポート450;およびデータを記憶するためのメモリ460を含む。ビデオコーディングデバイス400はまた、光信号または電気信号の出口または入口に対する、入口ポート410、受信器ユニット420、送信器ユニット440、および出口ポート450に結合された、光対電気(OE)構成要素および電気対光(EO)構成要素を備え得る。
【０１４９】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサなど)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上述の開示される実施形態を実装する。たとえば、コーディングモジュール470は、様々なコーディング動作を実装、処理、準備、または提供する。コーディングモジュール470を含むことは、したがって、ビデオコーディングデバイス400の機能性にかなりの改善を与え、ビデオコーディングデバイス400を異なる状態に変換させる。あるいは、コーディングモジュール470は、メモリ460内に記憶され、プロセッサ430によって実行される命令として実装される。
【０１５０】
メモリ460は、1つまたは複数のディスク、テープドライブ、および固体ドライブを含み、プログラムが実行のために選択されるとき、そのようなプログラムを記憶するために、またプログラム実行中に読み取られる命令およびデータを記憶するために、オーバーフローデータ記憶デバイスとして使用され得る。メモリ460は、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM:ternary content-addressable memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
【０１５１】
図5は、1つの例示的な実施形態による、図1からのソースデバイス310および宛先デバイス320のうちのいずれかまたは両方として使用され得る装置500の簡略ブロック図である。装置500は、上述の本出願の技術を実装し得る。装置500は、複数のコンピューティングデバイスを含むコンピューティングシステムの形で、または単一のコンピューティングデバイス、たとえば、モバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの形であってよい。
【０１５２】
装置500内のプロセッサ502は、中央処理装置であってよい。あるいは、プロセッサ502は、現在存在するか、または今後開発される、情報を操作または処理することが可能な、任意の他のタイプのデバイス、または複数のデバイスであってよい。開示される実装形態は、図示するように単一のプロセッサ、たとえば、プロセッサ502を用いて実践され得るが、2つ以上のプロセッサを使用して、速度および効率における利点を達成することができる。
【０１５３】
装置500内のメモリ504は、一実装形態では、読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであってよい。任意の他の好適なタイプの記憶デバイスがメモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502がアクセスするコードおよびデータ506を含み得る。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含んでよく、アプリケーションプログラム510は、プロセッサ502が本明細書で説明する方法を行うことを許可する、少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1からNを含んでよく、これらは、本明細書で説明する方法を行うビデオコーディングアプリケーションをさらに含む。装置500は、たとえば、モバイルコンピューティングデバイスとともに使用されるメモリカードであってよい、二次記憶装置514の形で追加のメモリを含んでもよい。ビデオ通信セッションは、かなりの量の情報を包含し得るため、これらのセッションは、二次記憶装置514内に全部または部分的に記憶され、処理の必要に応じて、メモリ504内にロードされてよい。
【０１５４】
装置500は、ディスプレイ518など、1つまたは複数の出力デバイスを含んでもよい。ディスプレイ518は、一例では、ディスプレイとタッチ入力を感知するように動作可能であるタッチセンサー式要素を組み合わせたタッチセンサー式ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。ディスプレイ518に加えて、またはその代わりに、ユーザが装置500をプログラムするか、またはさもなければ、それを使用することを許可する他の出力デバイスが提供され得る。出力デバイスがディスプレイであるかまたはディスプレイを含むとき、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイによる、を含めて、様々な方法で実装され得る。
【０１５５】
装置500は、画像感知デバイス520、たとえば、カメラ、または装置500を操作しているユーザの画像などの画像を感知し得る、現在存在するか、または今後開発される任意の他の画像感知デバイス520を含んでもよいか、またはそれと通信していてもよい。画像感知デバイス520は、画像感知デバイス520が装置500を操作しているユーザに向くように配置され得る。一例では、画像感知デバイス520の位置および光軸は、視野が、ディスプレイ518に直接隣接し、そこからディスプレイ518が見えるエリアを含むように構成され得る。
【０１５６】
装置500は、音声感知デバイス522、たとえば、マイクロフォン、または、装置500付近の音声を感知し得る、現在存在するか、または今後開発される任意の他の音声感知デバイスを含んでもよいか、またはそれと通信していてもよい。音声感知デバイス522は、音声感知デバイス522が装置500を動作させているユーザに向くように配置され得、ユーザが装置500を動作させている間にユーザが発する音声、たとえば、発語または他の発話を受信するように構成され得る。
【０１５７】
図5は、単一のユニットに一体化されているとして、装置500のプロセッサ502およびメモリ504を示すが、他の構成が利用され得る。プロセッサ502の動作は、直接的に、またはローカルエリアネットワークもしくは他のネットワークにわたって結合され得る複数の機械(各機械は、プロセッサのうちの1つまたは複数を有する)にわたって分散されてよい。メモリ504は、ネットワークベースのメモリまたは装置500の動作を行う複数の機械内のメモリなど、複数の機械にわたって分散されてよい。ここでは単一のバスとして示されているが、装置500のバス512は、複数のバスからなることがある。さらに、二次記憶装置514は、装置500の他の構成要素に直接的に結合されてよく、またはネットワークを介してアクセスされてよく、メモリカードなど、単一の一体化ユニットを含んでよく、または複数のメモリカードなど、複数のユニットを含んでもよい。装置500は、したがって、多種多様な構成で実装され得る。
【０１５８】
VVCでは、インターコーディングされたブロックの動きベクトルは、2つの方法でシグナリングされ得る:すなわち、高度動きベクトル予測(AMVP:Advanced motion vector prediction)モードまたはマージモードである。AVMPモードの場合、実際の動きベクトルと動きベクトル予測(MVP)の間の差異、AMVP候補リストを指す参照インデックス(reference index)およびMVPインデックスがシグナリングされ、ここで、参照インデックスは、動き補償のために参照ブロックがそこからコピーされる参照ピクチャを指す。マージモードの場合、マージ候補リストを指すマージインデックスがシグナリングされ、マージ候補に関連するすべての動き情報は継承される。
【０１５９】
AMVP候補リストとマージ候補リストの両方の場合、これらは、時間的または空間的に近接する、コーディングされたブロックから導出される。より具体的には、マージ候補リストは、以下の4つのタイプのマージMVP候補を順番に検査することによって構築される:
1.  図6に示すように、5個の空間的に近接するブロック、すなわち、左下隅に位置するブロックA0およびA1、右上隅に位置するブロックB0およびB1、ならびに左上隅に位置するブロックB2から決定され得る空間マージ候補。
2.  時間MVP(TMVP)マージ候補。
3.  組み合わされた双予測マージング候補。
4.  ゼロ動きベクトルマージング候補。
【０１６０】
利用可能なマージ候補の数がシグナリングされた最大限に可能にされたマージ候補(たとえば、一般的なテスト条件下で5)に達すると、マージ候補リスト構築プロセスは終了する。最大限に可能にされたマージ候補は異なる条件下で異なり得ることに留意されたい。
【０１６１】
同様に、AMVP候補リストの場合、3つのタイプのMVP候補が順番に検査される:
1. 2つのうちの1つは、図6に示すように、ブロックB0、B1、およびB2から決定され、2つのうちのもう1つは、図6に示すように、ブロックA0およびA1から決定される、最高で2つの空間MVP候補。
2.  時間MVP(TMVP)候補。
3.  ゼロMVP候補。
【０１６２】
履歴ベースの動きベクトル予測(HMVP)方法は、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントビデオエキスパートチーム(JVET)に対する入力文書である、JVET-K0104(http://phenix.it-sudparis.eu/jvet/においてアクセス可能)によって導入され、ここで、HMVP候補は、前にコーディングされたブロックの動き情報と定義される。複数のHMVP候補を備えたテーブルが符号化/復号プロセス中に維持される。このテーブルは、新しいスライスに遭遇するときに空にされる。インターコーディングされたブロックが存在するときはいつでも、関連する動き情報は、新しいHMVP候補として、テーブルの最後のエントリーに追加される。以下を含む、全体的なコーディングフローを図7に示す
【０１６３】
ステップ701。テーブルにHMVP候補をロードする。
【０１６４】
ステップ702。ロードされたテーブル内のHMVP候補でブロックを復号する。
【０１６５】
ステップ703。ブロックを復号するとき、復号された動き情報でテーブルを更新する。
【０１６６】
ステップ701〜703は、循環して行われてよい。
【０１６７】
HMVP候補は、マージ候補リスト構築プロセスにおいて使用され得る。テーブル内の最後のエントリーから第1のエントリーまでのすべてのHMVP候補がTMVP候補の後に挿入される。プルーニングがHMVP候補に適用され得る。利用可能なマージ候補の総数がシグナリングされた最大限に可能にされたマージ候補に達すると、マージ候補リスト構築プロセスは、終了する。
【０１６８】
プルーニングの動作は、リスト内の同一の動き予測器候補を識別し、リストから同一の候補のうちの1つを除去することを表す。
【０１６９】
同様に、HMVP候補は、AMVP候補リスト構築プロセスにおいて使用されてもよい。テーブル内の最後のK個のHMVP候補の動きベクトルは、TMVP候補の後に挿入される。いくつかの実装方法では、AMVP目標参照ピクチャと同じ参照ピクチャを有するHMVP候補のみがAMVP候補リストを構築するために使用される。プルーニングはHMVP候補に適用され得る。
【０１７０】
処理効率を改善するために、波面並列処理(WPP)と呼ばれる処理が導入され、ここで、WPPモードは、CTUの行が同時に処理されることを可能にする。WPPモードで、各CTU行は、2個の連続するCTUの遅延を使用することによって、その先行する(直接隣接する)CTU行に対して処理される。たとえば、図8を参照すると、ピクチャフレームまたはピクチャエリアは、複数のCTU行からなり、各スレッド(行)は、11個のCTUを含む、すなわち、スレッド1は、CTU0からCTU10を含み、スレッド2は、CTU11からCTU21を含み、スレッド3は、CTU22からCTU32を含み、スレッド4は、CTU33から43を含む…。したがって、WPPモードで、スレッド1内のCTU1の符号化/復号プロセスが済んだとき、スレッド2内のCTU11の符号化/復号プロセスが開始し得、同様に、スレッド2内のCTU12の符号化/復号プロセスが済んだとき、スレッド3内のCTU22の符号化/復号プロセスが開始し得、スレッド3内のCTU23の符号化/復号プロセスが済んだとき、スレッド4内のCTU33の符号化/復号プロセスが開始し得、スレッド4内のCTU34の符号化/復号プロセスが済んだとき、スレッド5内のCTU44の符号化/復号プロセスが開始し得る。
【０１７１】
しかしながら、WPPをHMVPと組み合わせるとき、上述したように、HMVPリストが維持され、各コーディングブロックを処理した後で更新され、したがって、CTU行の最後のCTUまで更新され続ける、1つのHMVPリストが維持され、したがって、スレッドNは、上記のCTU行の中の最後のCTUの処理が済むのを待つ必要があるため、波面並列処理を行うことはできない。
【０１７２】
図9は、本出願の一実施形態による、図3のビデオデコーダ30などのビデオデコーダの1つの例示的な動作を示す流れ図である。インター予測ユニット344を含む、ビデオデコーダ30の1つまたは複数の構造的要素は、図9の技術を行うように構成され得る。図9の例では、ビデオデコーダ30は、以下のステップを実行し得る。
【０１７３】
901。CTU行の処理の開始時に、CTU行に対するHMVPリストを構築/初期化するステップが行われる。
【０１７４】
処理されることになるCTUがCTU行の第1のCTU(開始CTU)であるとき、CTU行に対するHMVPリストが構築または初期化され、したがって、CTU行の第1のCTUは、CTU行に対するHMVPリストに基づいて処理され得る。
【０１７５】
方法が符号化方法であるとき、CTU行に対するHMVPリストは、図3のインター予測ユニット344によって構築または初期化され得る。あるいは、方法が復号方法であるとき、CTU行に対するHMVPリストは、図2のインター予測ユニット244によって構築または初期化され得る。
【０１７６】
一実装方法では、ピクチャフレームに対して、異なるHMVPリストを有するすべてのCTU行が維持され得る。他の実装方法では、ピクチャエリアに対して、異なるHMVPリストを有するすべてのCTU行が維持され得、ここで、ピクチャエリアは、複数のCTU行からなり、ピクチャは、VVCのスライス、タイル、またはブリックであってよい。
【０１７７】
ブリックがピクチャ内の特定のタイル内のCTU行の長方形領域である場合、タイルは、複数のブリックに分割されてよく、それらの各々は、タイル内の1つまたは複数のCTU行からなる。複数のブリックに分割されないタイルもブリックと呼ばれる。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれない。
【０１７８】
すべてのCTU行に対して異なるHMVPリストを維持することは、CTU行に対して特定のHMVPリストが維持され得るが、異なるHMVPリスト内の候補は同じであり得ること、たとえば、1つのHMVPリスト内のすべての候補は、他のHMVPリスト内の候補と同じであることを単に意味することに留意されたく、1つのHMVPリスト内の候補は冗長性を有さない可能性があること;または、異なるHMVPリスト内の候補は、重複を有する可能性があること、たとえば、1つのHMVPリスト内の候補のうちのいくつかは、他のHMVPリスト内の候補のうちのいくつかと同じであり、その1つのHMVPリスト内の候補のうちのいくつかは、他のHMVPリスト内の同一の候補を有さないこと;または、異なるHMVPリスト内の候補は、まったく異なる可能性があること、たとえば、1つのHMVPリスト内の候補のうちのいずれも、他のHMVPリスト内に同一候補を有さないこと、に留意されたい。CTU行の中のすべてのCTUが処理されたとき、そのCTU行に対して維持されたHMVPリストは、解放されてよく、したがって、記憶要件を低減し得ることに留意されたい。
【０１７９】
本開示は、HMVPリストを構築/初期化するための以下の方法を提供した。
【０１８０】
方法1:CTU行の処理の開始時に、対応するHMVPリストは、空にされるか、またはデフォルト値に設定される。デフォルト値は、エンコーダとデコーダの両方に知られている所定の候補である。
【０１８１】
たとえば、対応するHMVPリストは、以下のようなデフォルトMVでポピュレートされる:
a) 単一予測方法からのMV、ここで、MVはゼロ動きベクトルでありえ、参照ピクチャはL0リスト内の第1の参照ピクチャを含み得る、および/または
b) 双予測方法からのMV、ここでMVはゼロ動きベクトルでありえ、参照ピクチャは、L0リスト内の第1の参照ピクチャおよびL1リスト内の第1の参照ピクチャを含み得る、および/または
c)  ピクチャ処理順序に従って前に処理されたピクチャのMV。より具体的には、現在ブロック位置が前のピクチャ上にオーバレイされるとき、前に処理されたピクチャに属し、かつ現在ブロックの空間的近傍内にあるMV。および/または
d)   時間的HMVPリストのMV、ここで、各同一位置のピクチャは、各CTU行に対して、またはピクチャ全体に対して、時間的HMVPリストを記憶し得、したがって、時間的HMVPリストは、現在CTU行に対するHMVPリストを構築/初期化するために使用され得る。
【０１８２】
方法2:現在CTU行の処理の開始時に、対応するHMVPリストは、前のCTU行の第2のCTUのHMVPリストに基づいて構築/初期化され、ここで、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にある、CTU行である。
【０１８３】
図8を一例として利用すると、現在CTU行がスレッド2のCTU行であるとき、前のCTU行はスレッド1のCTU行であり、前の行の第2のCTUはCTU1である;現在CTU行がスレッド3のCTU行であるとき、前のCTU行はスレッド2のCTU行であり、前の行の第2のCTUはCTU12である;現在CTU行がスレッド4のCTU行であるとき、前のCTU行はスレッド3のCTU行であり、前の行の第2のCTUはCTU23である;現在CTU行がスレッド5のCTU行であるとき、前のCTU行はスレッド4のCTU行であり、前の行の第2のCTUはCTU34である;現在CTU行がスレッド6のCTU行であるとき、前のCTU行はスレッド5のCTU行であり、前の行の第2のCTUはCTU45である。
【０１８４】
方法3:現在CTU行の処理の開始時に、対応するHMVPリストは、前のCTU行の第1のCTUのHMVPリストに基づいて構築/初期化され、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にあるCTU行である。
【０１８５】
図8を一例として利用すると、現在CTU行がスレッド2のCTU行であるとき、前のCTU行はスレッド1のCTU行であり、前の行の第1のCTUはCTU0である;現在CTU行がスレッド3のCTU行であるとき、前のCTU行はスレッド2のCTU行であり、前の行の第1のCTUはCTU11である;現在CTU行がスレッド4のCTU行であるとき、前のCTU行はスレッド3のCTU行であり、前の行の第1のCTUはCTU22である;現在CTU行がスレッド5のCTU行であるとき、前のCTU行はスレッド4のCTU行であり、前の行の第1のCTUはCTU33である;現在CTU行がスレッド6のCTU行であるとき、前のCTU行はスレッド5のCTU行であり、前の行の第1のCTUはCTU44である。
【０１８６】
方法1から3によれば、現在CTU行の処理は、現在CTU行の前のCTU行の処理が済むのを待つ必要がなく、したがって、現在ピクチャフレームの処理効率を改善し得る。
【０１８７】
902。構築/初期化されたHMVPリストに基づいて、CTU行の中のCTUを処理する。
【０１８８】
CTUの処理は、復号プロセス中に実行されるインター予測処理であってよく、すなわち、CTUの処理は、図3のインター予測ユニット344によって実装され得る。あるいは、CTUの処理は、符号化プロセス中に実行されるインター予測処理であってよく、すなわち、CTUの処理は、図2のインター予測ユニット244によって実装され得る。
【０１８９】
HMVPリストを構築/初期化するための上記の方法は、波面なしの通常のHMVP処理、たとえばWPPなしのHMV処理に対しても使用され得ることに留意されたい。結果として、HMVP処理は、WPPの適用にかかわらず同一であり、これは、追加の論理実装の必要性を減らす。
【０１９０】
図9の処理は、本出願の一実施形態による、図2のビデオエンコーダ20など、エンコーダによって実装される符号化プロセスであってもよいことに留意されたい。
【０１９１】
さらに、波面とHMVPベースの予測の組合せに関する上述の方法は、イントラ予測に対しても使用され得ることに留意されたい。すなわち、履歴イントラモードが使用されてよく、各CTU行に対する履歴テーブルは、デフォルト値に初期化される。
【０１９２】
たとえば、イントラ予測内の各CTU行に対するHMVPリストの初期化は、平面モード、DCモード、垂直モード、水平モード、モード2モード、VDIAモード、およびDIAモードなど、デフォルトイントラモードで行われてよい。
【０１９３】
図10は、本出願の一実施形態による図3のビデオデコーダ30および本出願の一実施形態による図2のビデオエンコーダ20などの、ビデオデコーダまたはビデオエンコーダの1つの例示的な動作を示す流れ図である。インター予測ユニット344/インター予測ユニット244を含む、ビデオデコーダ30/エンコーダ20の1つまたは複数の構造的要素は、図10の技術を行うように構成され得る。図10の例では、ビデオデコーダ30/ビデオエンコーダ20は、以下のステップを行い得る。
【０１９４】
ステップ1010、現在CTUが現在CTU行の開始CTUであるとき、現在CTU行に対するHMVPリストを初期化する。
【０１９５】
現在CTU行は、複数のCTU行からなるピクチャフレームの任意のCTU行であってよいか、またはピクチャエリア(ピクチャフレームの一部分であってよい)は、複数のCTU行からなることに留意されたい。また、現在CTU行は、複数のCTU行のうちのいずれか1つであってよい。
【０１９６】
現在CTUが現在CTU行の開始CTU(または、第1のCTU)であるかどうかは、現在CTUのインデックスに基づいて決定され得る。たとえば、図8で開示したように、各CTUは、一意のインデックスを有し、したがって、現在CTUのインデックスに基づいて、現在CTUが現在CTU行の第1のCTUであるかどうかを決定することができる。たとえば、インデックス0、11、22、33、44、または55…を有するCTUは、それぞれ、CTU行の第1のCTUである。あるいは、図8を一例として利用すると、各CTU行は、11個のCTUを含み、すなわち、各CTU行の幅は11であり、したがって、CTU行の幅を用いてCTUのインデックスを除算して余りが0であるか否かを決定することができ、余りが0である場合、対応するCTUは、CTU行の第1のCTUである;さもなければ、余りが0でない場合、対応するCTUは、CTU行の第1のCTUではない。すなわち、CTUのインデックス%CTU行の幅=0である場合、CTUは、CTU行の第1のCTUである;さもなければ、CTUのインデックス%CTU行の幅≠0である場合、CTUは、CTU行の第1のCTUではない。CTU行のプロセスが右から左であるとき、CTUがCTU行の開始CTUであるかどうかは、同様の方法で決定され得ることに留意されたい。
【０１９７】
HMVPリストの初期化の後、初期化されたHMVPリスト内の候補動きベクトルの数量は、ゼロである。
【０１９８】
初期化は、現在CTU行に対するHMVPリストを空にすることとして、すなわち、現在CTU行に対するHMVPリストの中身を無くすこととして、言い換えれば、現在CTU行に対するHMVPリスト内の候補の数をゼロにすることとして行われ得る。
【０１９９】
他の実装方法では、この方法は、以下のステップ:すなわち、現在CTU行を除き、複数のCTU行の各々に対するHMVPリストを初期化するステップであって、複数のCTU行に対するHMVPリストは、同一であるか、または異なる、初期化するステップ、をさらに含み得る。
【０２００】
初期化は、現在CTU行に対するHMVPリストに対するデフォルト値を設定することとして、または、上述したように、前のCTU行のCTUのHMVPリストに基づいて、現在CTU行に対するHMVPリストを初期化することとして行われ得る。
【０２０１】
ステップ1020、HMVPリストに基づいて現在CTU行を処理する。
【０２０２】
処理は、インター予測処理であってよく、それにより、予測ブロックが取得され得る。再構築は、再構築されたブロックを取得するために、予測ブロックに基づいて行われることができ、最終的に、再構築されたブロックに基づいて、復号されたピクチャが取得され得る。これらのプロセスの詳細は、上述されている。
【０２０３】
図8に示したように、現在ピクチャフレームは、コーディング/復号効率を改善するために複数のCTU行を含み、複数のCTU行は、波面並列処理(WPP)モードで処理され得る。すなわち、前のCTU行の特定のCTUが処理されるとき、現在CTU行が処理され始め(または、現在CTU行の処理が始まり)、ここで、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にある、CTU行であり、前のCTU行の特定のCTUは、前のCTU行の第2のCTUである;または前のCTU行の特定のCTUは、前のCTU行の第1のCTUである。図8を一例として利用すると、現在CTU行がスレッド3であるとき、前のCTU行はスレッド2であり、前のCTU行の特定のCTUは、CTU12であってよく、すなわち、CTU12が処理されるとき、デコーダ/エンコーダは、スレッド3のCTU行を処理し始める、すなわち、デコーダ/エンコーダは、CTU22を処理し始める。図8を他の例として利用すると、現在CTU行がスレッド4であるとき、前のCTU行はスレッド3であり、前のCTU行の特定のCTUは、CTU23であってよく、すなわち、CTU23が処理されるとき、デコーダ/エンコーダは、スレッド4のCTU行を処理し始める、すなわち、デコーダ/エンコーダは、CTU33を処理し始める。
【０２０４】
一実装方法では、HMVPリストに基づいて現在CTU行を処理するステップは、現在CTU行の現在CTUを処理するステップと、処理された現在CTUに基づいて、初期化されたHMVPリストを更新するステップと、更新されたHMVPリストに基づいて、現在CTU行の第2のCTUを処理するステップとを含み得る。
【０２０５】
図11は、本発明の実施形態を実装するように構成されたビデオ処理装置1100の一例を示すブロック図であり、ビデオ処理装置1100は、図11に示すように、エンコーダ20またはデコーダ30であってよく、この装置は、以下を含む。
【０２０６】
現在CTUが現在CTU行の開始CTU(第1のCTU)であるとき、現在CTU行に対するHMVPリストを初期化するように構成された、初期化ユニット1110。
【０２０７】
初期化ユニット1110によって行われる初期化の詳細は、ステップ1010を参照し得る。
【０２０８】
HMVPリストに基づいて現在CTU行を処理するように構成された、処理ユニット1120。
【０２０９】
処理ユニット1120によって行われる処理の詳細は、ステップ1020を参照し得る。
【０２１０】
処理は、インター予測処理であってよく、それにより、予測ブロックが取得され得る。再構築は、再構築されたブロックを取得するために、予測ブロックに基づいて行われることができ、最終的に、再構築されたブロックに基づいて、復号されたピクチャが取得され得る。これらのプロセスの詳細は、上述されている。
【０２１１】
図8に示したように、現在ピクチャフレームは、複数のCTU行を含み、コーディング/復号効率を改善するために、複数のCTU行は、WPPモードで処理され得る。すなわち、前のCTU行の特定のCTUが処理されるとき、現在CTU行が処理され始め、ここで、前のCTU行は、現在CTU行に直接隣接し、現在CTU行の上にある、CTU行であり、前のCTU行の特定のCTUは、前のCTU行の第2のCTUである;または、前のCTU行の特定のCTUは、前のCTU行の第1のCTUである。図8を一例として利用すると、現在CTU行がスレッド3であるとき、前のCTU行はスレッド2であり、前のCTU行の特定のCTUは、CTU12であってよく、すなわち、CTU12が処理されるとき、デコーダ/エンコーダは、スレッド3のCTU行を処理し始める、すなわち、デコーダ/エンコーダは、CTU22を処理し始める。図8を他の例として利用すると、現在CTU行がスレッド4であるとき、前のCTU行はスレッド3であり、前のCTU行の特定のCTUは、CTU23であってよく、すなわち、CTU23が処理されるとき、デコーダ/エンコーダは、スレッド4のCTU行を処理し始める、すなわち、デコーダ/エンコーダは、CTU33を処理し始める。
【０２１２】
本開示は、ビデオ処理方法または本開示のコーディングの方法を実行するための処理回路を含むエンコーダをさらに開示する。
【０２１３】
本開示は、ビデオ処理方法または本開示のコーディングの方法を実行するための処理回路を含むデコーダをさらに開示する。
【０２１４】
本開示は、ビデオ処理方法または本開示のコーディングの方法を実行するためのプログラムコードを含むコンピュータプログラム製品をさらに開示する。
【０２１５】
本開示は、コンピュータ命令を記憶した、コンピュータ可読記憶媒体であって、これらの命令は、1つまたは複数のプロセッサによって実行されると、ビデオ処理方法または本開示のコーディングの方法を1つまたは複数のプロセッサに実行させる、コンピュータ可読記憶媒体をさらに開示する。コンピュータ可読記憶媒体は、非一時的または一時的である。
【０２１６】
本開示は、デコーダであって、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行されると、ビデオ処理方法または本開示のコーディングの方法を実行するようにデコーダを構成する、デコーダをさらに開示する。
【０２１７】
本開示は、エンコーダであって、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行されると、ビデオ処理方法または本開示のコーディングの方法を実行するようにエンコーダを構成する、エンコーダをさらに開示する。
【０２１８】
HMVPリストに対する初期化プロセスは、VVC(ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントビデオエキスパートチーム(JVET)、多目的ビデオコーディング(草案6))の一般的なスライスデータシンタックスに記載され、VVCの第7.3.8.1項は、以下のように記載している:
【０２１９】
【表１】
2021533696.tif 000003
【０２２０】
ここで、j%BrickWidth[SliceBrickIdx[i]])==0は、インデックスjを有するCTUがCTU行の開始CTUであることを意味し、NumHmvpCand=0は、HMVPリスト内の候補の数量が0に設定されていること、言い換えれば、HMVPリストが空にされたことを意味する。
【０２２１】
HMVPリストに対する更新プロセスは、VVC(ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11のジョイントビデオエキスパートチーム(JVET)、多目的ビデオコーディング(草案6))の第8.5.2.16項で説明され、この項は、以下のように記載している:
このプロセスに対する入力は以下の通りである:
1/16分数サンプル精度のルマ動きベクトルmvL0およびmvL1、
参照インデックスrefIdxL0およびrefIdxL1、
予測リスト利用フラグpredFlagL0およびpredFlagL1、
双予測加重インデックスbcwIdx。
MVP候補hMvpCandは、ルマ動きベクトルmvL0およびmvL1、参照インデックスrefIdxL0およびrefIdxL1、予測リスト利用フラグpredFlagL0およびpredFlagL1、および双予測加重インデックスbcwIdxからなる。
候補リストHmvpCandListは、以下の順序とされたステップによって、候補hMvpCandを使用して修正される:
変数identicalCandExistがFALSEに等しく設定され、変数removeIdxが0に等しく設定される。
NumHmvpCandが0を超える場合、hMvpIdx=0..NumHmvpCand-1を有する各インデックスhMvpIdxに対して、identicalCandExistがTRUEに等しくなるまで、以下のステップが適用される:
hMvpCandがHmvpCandList[hMvpIdx]に等しいとき、identicalCandExistがTRUEに等しく設定され、removeIdxがhMvpIdxに等しく設定される。
候補リストHmvpCandListが以下のように更新される:
identicalCandExistがTRUEに等しいか、またはNumHmvpCandが5に等しい場合、以下が適用される:
i=(removeIdx+1)..(NumHmvpCand-1)を有する各インデックスiに対して、HmvpCandList[i-1]がHmvpCandList[i]に等しく設定される。
HmvpCandList[NumHmvpCand-1]がmvCandに等しく設定される。
さもなければ(identicalCandExistがFALSEに等しく、NumHmvpCandが5に満たない)、以下が適用される:
HmvpCandList[NumHmvpCand++]がmvCandに等しく設定される。
【０２２２】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはそれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、互いの間でコンピュータプログラムの転送を円滑にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号波または搬送波などの通信媒体、に対応し得る。データ記憶媒体は、本開示で説明した技術を実装するための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２２３】
限定ではなく、例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、フラッシュメモリ、または所望のプログラムコードを命令もしくはデータ構造の形で記憶するために使用可能であり、コンピュータによってアクセスされ得る、任意の他の媒体を含み得る。また、いずれの接続も、適切にはコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、より対線、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに、非一時的、有形記憶媒体を対象とすることに留意されたい。本明細書で使用する、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク（登録商標）(disc)、光ディスク(disc)、デジタル多目的ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray（登録商標）ディスク(disc)を含み、ここで、ディスク(disk)は、通常、磁気でデータを複製し、ディスク(disc)は、レーザーを用いて光学的にデータを複製する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０２２４】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積論理回路または離散論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造または本明細書で説明した技術の実装に適した任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能性は、符号化および復号するように構成された専用ハードウェアおよび/もしくはソフトウェアモジュール内で提供され得るか、または組み合わされたコーデック内に組み込まれ得る。また、これらの技術は、1つまたは複数の回路要素または論理要素において完全に実装され得る。
【０２２５】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含めて、多種多様なデバイスまたは装置において実装され得る。様々な構成要素、モジュール、またはユニットは、開示した技術を実行するように構成されたデバイスの機能的態様を強調するために本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。むしろ、上述したように、様々なユニットは、コーデックハードウェアユニット内に組み合わされてよく、または、好適なソフトウェアおよび/もしくはファームウェアとともに、上述のような1つもしくは複数のプロセッサを含めて、インターオペラティブな(interoperative)ハードウェアユニットの収集物によって提供されてよい。
【符号の説明】
【０２２６】
10  コーディングシステム
12  ソースデバイス
13  符号化されたピクチャ
14  宛先デバイス
16  ピクチャソース
17  ピクチャデータ
18  前処理ユニット
19  前処理されたピクチャデータ
20  エンコーダ
21  符号化されたピクチャデータ
22  通信インターフェース
28  通信インターフェース
30  デコーダ
31  復号されたピクチャ
32  ポストプロセッサ
33  後処理されたピクチャ
34  ディスプレイデバイス
40  ビデオコーディングシステム
41  撮像デバイス
42  アンテナ
43  プロセッサ
44  メモリストア
45  ディスプレイデバイス
46  処理ユニット
47  論理回路
110  逆量子化ユニット
112  逆変換処理ユニット
114  再構築ユニット
116  バッファ
120  ループフィルタ
130  復号ピクチャバッファ
131  復号されたピクチャ
144  インター予測ユニット
154  イントラ予測ユニット
201  ピクチャ
202  入力
203  ピクチャブロック
204  残差計算ユニット
205  残差ブロック
206  変換処理ユニット
207  変換係数
208  量子化ユニット
209  量子化係数
210  逆量子化ユニット
211  量子化解除係数
212  逆変換処理ユニット
213  逆変換ブロック
214  再構築ユニット
215  再構築されたブロック
216  バッファ
220  ループフィルタ
221  フィルタリングされたブロック
230  復号ピクチャバッファ
231  復号されたピクチャ
244  インター予測ユニット
245  インター予測されたブロック
254  イントラ予測ユニット
255  イントラ予測されたブロック
260  予測処理ユニット
262  モード選択ユニット
265  予測ブロック
270  エントロピー符号化ユニット
272  出力
304  エントロピー復号ユニット
309  量子化係数
310  逆量子化ユニット
311  復号されたピクチャ
312  逆変換処理ユニット
313  逆変換ブロック
314  再構築ユニット
315  再構築されたブロック
316  バッファ
320  ループフィルタ
321  フィルタリングされたブロック
330  復号ピクチャバッファ
344  インター予測ユニット
354  イントラ予測ユニット
360  予測処理ユニット
362  モード選択ユニット
365  予測ブロック
400  ビデオコーディングデバイス
410  入口ポート
420  Tx/Rx
430  プロセッサ
440  Tx/Rx
450  出口ポート
460  メモリ
470  コーディングモジュール
500  装置
502  プロセッサ
504  メモリ
506  データ
508  オペレーティングシステム
510  アプリケーションプログラム
512  バス
514  二次記憶装置
518  ディスプレイ
520  画像感知デバイス
522  音声感知デバイス
1100  ビデオ処理装置
1110  初期化ユニット
1120  処理ユニット
【図１Ａ】
2021533696.tif 000004
【図１Ｂ】
2021533696.tif 000005
【図２】
2021533696.tif 000006
【図３】
2021533696.tif 000007
【図４】
2021533696.tif 000008
【図５】
2021533696.tif 000009
【図６】
2021533696.tif 000010
【図７】
2021533696.tif 000011
【図８】
2021533696.tif 000012
【図９】
2021533696.tif 000013
【図１０】
2021533696.tif 000014
【図１１】
2021533696.tif 000015
【手続補正書】
【提出日】令和3年3月5日(2021.3.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
第1の態様、または第1の態様の前述の実装方法を参照すると、第1の態様の第2の考えられる実装方法では、現在CTU行は、複数のCTU行からなるピクチャエリアに属し、現在CTU行は、複数のCTU行のうちのいずれか1つ、たとえば、ピクチャエリアの第1の(たとえば、一番上の)CTU行、第2のCTU行、…および最後の(たとえば、一番下の)CTU行である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
第2の態様、または第2の態様の前述の実装方法を参照すると、第2の態様の第2の考えられる実装方法では、現在CTU行は、複数のCTU行からなるピクチャエリアに属し、現在CTU行は、複数のCTU行のうちのいずれか1つである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
図1Bは、1つの例示的な実施形態による、図2のエンコーダ20および/または図3のデコーダ30を含む、他の例示的なビデオコーディングシステム40の例示的な図である。システム40は、本出願で説明する様々な例による技術を実装し得る。示される実装形態では、ビデオコーディングシステム40は、撮像デバイス41、ビデオエンコーダ20、ビデオデコーダ30(および/または、処理ユニット46の論理回路47を介して実装されるビデオコーダ)、アンテナ42、1つまたは複数のプロセッサ43、1つまたは複数のメモリストア44、および/またはディスプレイデバイス45を含み得る。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
いくつかの例では、論理回路を介して実装されるビデオエンコーダ20は、画像バッファ(たとえば、処理ユニット46またはメモリストア44のいずれかを介して)およびグラフィックス処理ユニット(たとえば、処理ユニット46を介して)を含み得る。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図2に関して説明されるような様々なモジュールを実施するために論理回路47を介して実装されるビデオエンコーダ20および/または本明細書に記載の任意の他のエンコーダシステムもしくはサブシステムを含み得る。論理回路は、本明細書で説明するような様々な動作を実行するように構成され得る。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
ビデオデコーダ30は、図3のデコーダ30および/または本明細書に記載の任意の他のデコーダシステムもしくはサブシステムに関して説明するような様々なモジュールを実施するために論理回路47を介して実装されるのと同様の方法で実装され得る。いくつかの例では、ビデオデコーダ30は、論理回路を介して実装可能であり、画像バッファ(たとえば、処理ユニット46またはメモリストア44のいずれかを介して)およびグラフィックス処理ユニット(たとえば、処理ユニット46を介して)を含み得る。グラフィックス処理ユニットは、画像バッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3に関して説明するような様々なモジュールを実施するために論理回路47を介して実装されるようなビデオデコーダ30および/または本明細書に記載の任意の他のデコーダシステムもしくはサブシステムを含み得る。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
エンコーダおよび符号化方法
図2は、本出願の技術を実装するように構成された、1つの例示的なビデオエンコーダ20の概略的/概念的なブロック図を示す。図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(DPB)230、予測処理ユニット260、およびエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット262を含み得る。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含み得る。図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもある。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
以下、1つの例示的なエンコーダ20によって行われる予測処理(たとえば、予測処理ユニット260による)およびモード選択(たとえば、モード選択ユニット262による)について、より詳細に説明する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１３１
【補正方法】変更
【補正の内容】
【０１３１】
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズムまたはエントロピー符号化方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応型VLC方式(CAVLC:context adaptive VLC)、算術コーディング方式、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔分割エントロピー(PIPE:probability interval partitioning entropy)コーディング、または他のエントロピー符号化方法論もしくはエントロピー符号化技術)を、量子化残差係数209、インター予測パラメータ、イントラ予測パラメータ、および/またはループフィルタパラメータに対して、個々にまたは一緒に適用して(または、まったく適用せずに)、出力272によって、たとえば、符号化されたビットストリーム21の形で出力され得る、符号化されたピクチャデータ21を取得するように構成される。符号化されたビットストリーム21は、ビデオデコーダ30に送信されてもよく、またはビデオデコーダ30による後の送信または取出しのためにアーカイブに保管されてもよい。エントロピー符号化ユニット270は、コーディングされている現在ビデオスライスに対する他のシンタックス要素をエントロピー符号化するようにさらに構成され得る。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
図3は、本出願の技術を実装するように構成された、1つの例示的なビデオデコーダ30を示す。ビデオデコーダ30は、復号されたピクチャ311を取得するために、たとえば、エンコーダ20によって符号化された、符号化されたピクチャデータ(たとえば、符号化されたビットストリーム)21を受信するように構成される。復号プロセス中、ビデオデコーダ30は、ビデオデータ、たとえば、符号化されたビデオスライスのピクチャブロックを表す、符号化されたビデオビットストリームおよび関連付けられるシンタックス要素をビデオエンコーダ20から受け取る。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(たとえば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、および予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、およびモード選択ユニット362を含み得る。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ20に関して説明した符号化パスに対して概して逆の復号パスを行い得る。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
逆量子化ユニット310は、機能の点で逆量子化ユニット210と同一であってよく、逆変換処理ユニット312は、機能の点で逆変換処理ユニット212と同一であってよく、再構築ユニット314は、機能の点で再構築ユニット214と同一であってよく、バッファ316は、機能の点でバッファ216と同一であってよく、ループフィルタ320は、機能の点でループフィルタ220と同一であってよく、復号ピクチャバッファ330は、機能の点で復号ピクチャバッファ230と同一であってよい。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１３７
【補正方法】変更
【補正の内容】
【０１３７】
予測処理ユニット360は、インター予測ユニット344およびイントラ予測ユニット354を含んでよく、インター予測ユニット344は、機能の点でインター予測ユニット244に類似してよく、イントラ予測ユニット354は、機能の点でイントラ予測ユニット254に類似してよい。予測処理ユニット360は、一般に、ブロック予測を行うように、かつ/または予測ブロック365を符号化されたデータ21から取得し、予測関係のパラメータおよび/または選択された予測モードに関する情報を、たとえば、エントロピー復号ユニット304から(明示的にまたは暗示的に)受信または取得するように構成される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304によって復号された量子化変換係数を逆量子化するように、すなわち、量子化解除するように構成される。逆量子化プロセスは、ビデオスライス内の各ビデオブロックに対してビデオエンコーダ20によって計算された量子化パラメータを使用して、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定することを含み得る。
【手続補正１４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオ処理方法であって、
現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、前記現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するステップと、
前記HMVPリストに基づいて前記現在CTU行を処理するステップと
を含む、方法。
【請求項２】
前記初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである、請求項1に記載の方法。
【請求項３】
前記現在CTU行は、複数のCTU行からなるピクチャエリアに属し、前記現在CTU行は、前記複数のCTU行のうちのいずれか1つである、請求項1または2に記載の方法。
【請求項４】
前記現在CTU行を除き、前記複数のCTU行の各々に対するHMVPリストを初期化するステップであって、前記複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化するステップ
をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記HMVPリストに基づいて前記現在CTU行を前記処理するステップは、
前記現在CTU行の前記現在CTUを処理するステップと、
前記処理された現在CTUに基づいて、前記初期化されたHMVPリストを更新するステップと、
前記更新されたHMVPリストに基づいて、前記現在CTU行の第2のCTUを処理するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記HMVPリストは、前記現在CTU行の処理されたCTUに従って更新される、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記現在CTU行に対する前記HMVPリストは、以下のように、すなわち、
前記現在CTU行に対する前記HMVPリストを空にするように
初期化される、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記HMVPリストに基づいて前記現在CTU行を前記処理するステップは、
前記現在CTU行の第2のCTUからの前記HMVPリストに基づいて、前記現在CTU行を処理するステップであって、前記第2のCTUは、前記開始CTUに隣接する、処理するステップ
を含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記複数のCTU行は、波面並列処理(WPP)モードで処理される、請求項3から8のいずれか一項に記載の方法。
【請求項１０】
前記現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める、請求項9に記載の方法。
【請求項１１】
前記前のCTU行は、前記現在CTU行に直接隣接し、前記現在CTU行の上にある、前記CTU行である、請求項10に記載の方法。
【請求項１２】
前記前のCTU行の前記特定のCTUは、前記前のCTU行の第2のCTUである;または前記前のCTU行の前記特定のCTUは、前記前のCTU行の第1のCTUである、請求項10または11に記載の方法。
【請求項１３】
ビデオ処理装置であって、
現在コーディングツリーユニット(CTU)が現在CTU行の開始CTUであるとき、前記現在CTU行に対する履歴ベースの動きベクトル予測(HMVP)リストを初期化するように構成された、初期化ユニットと、
前記HMVPリストに基づいて前記現在CTU行を処理するように構成された、処理ユニットと
を含む、ビデオ処理装置。
【請求項１４】
前記初期化されたHMVPリスト内の候補動きベクトルの数量はゼロである、請求項13に記載の装置。
【請求項１５】
前記現在CTU行は、複数のCTU行からなるピクチャエリアに属し、前記現在CTU行は、前記複数のCTU行のうちのいずれか1つである、請求項13または14に記載の装置。
【請求項１６】
前記初期化ユニットは、
前記現在CTU行を除き、前記複数のCTU行の各々に対するHMVPリストを初期化することであって、前記複数のCTU行に対するHMVPリストは、同一であるかまたは異なる、初期化すること
を行うようにさらに構成される、請求項15に記載の装置。
【請求項１７】
前記処理ユニットは、以下のように、すなわち、
前記現在CTU行の前記現在CTUを処理し、
前記処理された現在CTUに基づいて、前記初期化されたHMVPリストを更新し、
前記更新されたHMVPリストに基づいて、前記現在CTU行の第2のCTUを処理する
ように
前記HMVPリストに基づいて前記現在CTU行を処理するように構成される、請求項13から16のいずれか一項に記載の装置。
【請求項１８】
前記HMVPリストは、前記現在CTU行の処理されたCTUに従って更新される、請求項13から17のいずれか一項に記載の装置。
【請求項１９】
前記初期化ユニットは、以下のように、すなわち、
前記現在CTU行に対する前記HMVPリストを空にするように
前記現在CTU行に対する前記HMVPリストを初期化するようにさらに構成される、請求項13から18のいずれか一項に記載の装置。
【請求項２０】
前記処理ユニットは、以下のように、すなわち、
前記現在CTU行の第2のCTUからの前記HMVPリストに基づいて、前記現在CTU行を処理することであって、前記第2のCTUは、前記開始CTUに隣接する、処理することを行うように
前記HMVPリストに基づいて前記現在CTU行を処理するようにさらに構成される、請求項13から19のいずれか一項に記載の装置。
【請求項２１】
前記複数のCTU行は、波面並列処理(WPP)モードで処理される、請求項15から20のいずれか一項に記載の装置。
【請求項２２】
前記現在CTU行は、前のCTU行の特定のCTUが処理されるときに処理され始める、請求項21に記載の装置。
【請求項２３】
前記前のCTU行は、前記現在CTU行に直接隣接し、前記現在CTU行の上にある、前記CTU行である、請求項22に記載の装置。
【請求項２４】
前記前のCTU行の前記特定のCTUは、前記前のCTU行の第2のCTUである;または前記前のCTU行の前記特定のCTUは、前記前のCTU行の第1のCTUである、請求項22または23に記載の装置。
【請求項２５】
請求項1から12のいずれか一項に記載の方法を行うための処理回路を含む、エンコーダ。
【請求項２６】
請求項1から12のいずれか一項に記載の方法を行うための処理回路を含む、デコーダ。
【請求項２７】
コンピュータに請求項1から12のいずれか一項に記載の方法を実行させるよう構成された媒体に記憶されたコンピュータプログラム。
【請求項２８】
プログラムを記憶した、コンピュータ可読記憶媒体であって、前記プログラムは、前記コンピュータに、請求項1から12のいずれか一項に記載の方法を実行させる、コンピュータ可読記憶媒体。
【請求項２９】
デコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を含み、前記プログラミングは、前記プロセッサによって実行されると、請求項1から12のいずれか一項に記載の方法を行うように前記デコーダを構成する
デコーダ。
【請求項３０】
エンコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶した、非一時的コンピュータ可読記憶媒体と
を含み、前記プログラミングは、前記プロセッサによって実行されると、請求項1から12のいずれか一項に記載の方法を行うように前記エンコーダを構成する
エンコーダ。
【国際調査報告】
2021533696.tif 000016
2021533696.tif 000017
2021533696.tif 000018