(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-07
(45)【発行日】2022-07-15
(54)【発明の名称】マージモードでのビデオ符号化/復号のための方法および装置
(51)【国際特許分類】
H04N 19/52 20140101AFI20220708BHJP
H04N 19/56 20140101ALI20220708BHJP
H04N 19/57 20140101ALI20220708BHJP
H04N 19/70 20140101ALI20220708BHJP
【FI】
H04N19/52
H04N19/56
H04N19/57
H04N19/70
(21)【出願番号】P 2020563845
(86)(22)【出願日】2019-02-27
(86)【国際出願番号】 IB2019051570
(87)【国際公開番号】W WO2019155450
(87)【国際公開日】2019-08-15
【審査請求日】2020-09-28
(32)【優先日】2018-02-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-11-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イエ,ジン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2018/231700(WO,A1)
【文献】米国特許出願公開第2017/0223350(US,A1)
【文献】米国特許出願公開第2011/0194609(US,A1)
【文献】Chuohao Yeo, Yih Han Tan, Zhengguo Li,Simplified AMVP candidate derivation for Inter and Merge modes,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-E101,5th Meeting: Geneva, CH,2011年03月,pp.1-9
【文献】Jingning Han, Yaowu Xu, and James Bankoski,A DYNAMIC MOTION VECTOR REFERENCING SCHEME FOR VIDEO CODING,ICIP 2016,IEEE,2016年,pp.2032-2036
【文献】Yi-Wen Chen et al.,Description of SDR, HDR and 360° video coding technology proposal by Qualcomm and Technicolor - low and high complexity versions,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0021,10th Meeting: San Diego, US,2018年04月,pp.16-17
【文献】Xiang Li et al.,Description of SDR video coding technology proposal by Tencent,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0029-v1,10th Meeting: San Diego, US,2018年04月,pp.8-9
【文献】Xiang Li et al.,Further work on top of Tencent’s CfP response,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0047-v2,10th Meeting: San Diego, US,2018年04月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/70
(57)【特許請求の範囲】
【請求項1】
デコーダがマージモードを使用してビデオ復号を実行する方法であって、
ブロックサイズを有する現在ブロックを受信するステップと、
前記現在ブロックのブロックサイズに基づいてグリッドパターンを設定するステップであって、前記グリッドパターンが、前記現在ブロックに隣接する検索領域を検索ブロックに分割し、前記検索領域は
、前記検索領域の左上隅サンプルのx座標とy座標により指定され、前記検索ブロックのサイズが、前記現在ブロックのブロックサイズに応じて決定される、ステップと、
1つ以上の空間的マージ候補を含む候補リストを作成するように、前記検索ブロックでの候補位置から前記1つ以上の空間的マージ候補を検索するステップと、
を含むことを特徴とする方法。
【請求項2】
前記現在ブロックのブロックサイズが第1閾値より大きい場合、検索ブロックサイズを第1サイズに決定するステップと、
前記現在ブロックのブロックサイズが前記第1閾値より小さい場合、前記検索ブロックサイズを前記第1サイズより小さい第2サイズに決定するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
予め決定された候補位置のセットに対応する前記検索ブロックのサブセットから、前記1つまたは複数の空間的マージ候補を検索するステップ、
をさらに含むことを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記検索ブロックでの前記候補位置から前記1つ以上の空間的マージ候補を検索するステップは、
前記現在ブロックの最も近い隣接領域における予め決定された候補位置の第1セットで、第1ラウンドの検索を実行し、ここで、前記予め決定された候補位置の第1セットには、
前記現在ブロックの左下隅にある候補位置(d0)と、
前記現在ブロックの左側に位置し、前記候補位置(d0)の隣にある候補位置(a0)と、
前記現在ブロックの右上隅にある候補位置(c0)と、
前記現在ブロックの上端に位置し、前記候補位置(c0)の隣にある候補位置(b0)と、
前記現在ブロックの左上隅にある候補位置(e0)と、が含まれ、
前記現在ブロックから1つの検索ブロックだけ離れており、前記現在ブロックの最も近い隣接領域に隣接する隣接領域における予め決定された候補位置の第2セットで、第2ラウンドの検索を実行し、ここで、前記予め決定された候補位置の第2セットには、
前記候補位置(d0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(d1)と、
前記候補位置(a0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(a1)と、
前記候補位置(c0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(c1)と、
前記候補位置(b0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(b1)と、
前記候補位置(e0)の左上方向に、1つの検索ブロックだけ離れた位置にある候補位置(e1)と、が含まれる、
ことを含むことを特徴とする請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記検索ブロックでの前記候補位置から前記1つ以上の空間的マージ候補を検索するステップは、
前記第1ラウンドの検索の後に、前記候補リストが完全に満たされているかどうかを決定するステップと、
前記候補リストが完全に満たされていない場合、前記第2ラウンドの検索を続行するステップと、
前記候補リストが完全に満たされた場合、前記1つまたは複数の空間的マージ候補を検索し、前記候補リストを作成する動作を終了するステップと、
をさらに含む、ことを特徴とする請求項4に記載の方法。
【請求項6】
前記検索ブロックでの候補位置から前記1つ以上の空間的マージ候補を検索するステップは、
前記現在ブロックの最も近い隣接領域から前記現在ブロックの最も遠い隣接領域まで、複数のラウンドの検索を順次に実行し、各ラウンドの検索をそれぞれの隣接領域で実行するステップであって、
(a)前記複数のラウンドの検索のうちの第1ラウンドを、前記最も近い隣接領域で実行し、前記最も近い隣接領域には、以下の予め決定された候補位置:
前記現在ブロックの左下隅にある第1候補位置(d0)と、
前記現在ブロックの左側に位置し、前記候補位置(d0)の隣にある第2候補位置(a0)と、
前記現在ブロックの右上隅にある第3候補位置(c0)と、
前記現在ブロックの上端に位置し、前記第3候補位置(c0)の隣にある第4候補位置(b0)と、
前記現在ブロックの左上隅にある第5候補位置(e0)と、が含まれ、
(b)前の隣接領域で実行された前記複数のラウンドの検索のうちの前のラウンドの検索の後、次の隣接領域で前記複数のラウンドの検索のうちの次のラウンドの検索を実行し、前記次の隣接領域が、前記現在ブロックの前記前の隣接領域から1つの検索ブロックだけ離れた位置にあり、前記次の隣接領域には、以下の予め所定された候補位置、
前記前の隣接領域の第1候補位置(dP)から左へ、1つの検索ブロックだけ離れた位置にある第1候補位置(dN)と、
前記前の隣接領域の第2候補位置(aP)から左へ、1つの検索ブロックだけ離れた位置にある第2候補位置(aN)と、
前記前の隣接領域の第3候補位置(cP)から上へ、1つの検索ブロックだけ離れた位置にある第3候補位置(cN)と、
前記前の隣接領域の第4候補位置(bP)から上へ、1つの検索ブロックだけ離れた位置にある第4候補位置(bN)と、
前記前の隣接領域の第5候補位置(eP)から左上方向へ、1つの検索ブロックだけ離れた位置にある第5候補位置(eN)と、が含まれる、
ステップをさらに含む、ことを特徴とする請求項1乃至3のいずれか一項に記載の方法。
【請求項7】
前記検索ブロックでの候補位置から1つ以上の空間的マージ候補を検索するステップは、前記候補リストが完全に満たされるまで、前記現在ブロックの最も近い隣接領域から前記現在ブロックの最も遠い隣接領域まで、前記複数のラウンドの検索を順次に実行するステップ、
を含む、ことを特徴とする請求項6に記載の方法。
【請求項8】
前記検索領域は、前記現在ブロックに隣接する第1隣接領域の検索ブロックにおける、高効率ビデオ符号化/復号(HEVC)規格で定義される候補位置の第1セットを含み、1つ以上の空間的マージ候補が検索される候補位置は、前記現在ブロックの左、上および左上にある候補位置での第1セットに対して、それぞれ、左、上および左上の方向へ、前記現在ブロックに隣接する第1隣接領域から、前記現在ブロックに隣接しておらず、前記現在ブロックから1つの検索ブロックだけ離れた位置にある隣接領域まで拡張される、
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記現在ブロックに直接隣接する検索ブロックから選択された空間的マージ候補のセット以外の1つ以上の空間的マージ候補を、前記候補リストにおける時間的マージ候補の後の位置に追加するステップ、
をさらに含むことを特徴とする請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記検索領域を検索することによって得られたマージ候補を、前記候補リストにリストされた既存のマージ候補と比較するステップと、
前記得られたマージ候補と前記既存のマージ候補との間の差が枝刈り閾値より大きい場合、前記得られたマージ候補を前記候補リストに追加するステップと、
前記得られたマージ候補と前記既存のマージ候補との間の差が枝刈り閾値より小さい場合、前記得られたマージ候補を前記候補リストに追加しないステップと、
をさらに含むことを特徴とする請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記検索ブロックは、正方形および/または非正方形の形状を有する、
ことを特徴とする請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
シーケンスレベル、画像レベル、またはスライスレベルで、エンコーダから以下の構文要素:
前記検索領域を定義するために、前記現在ブロックに対するオフセットを示す第1構文要素であって、前記検索領域の左上隅サンプルのx座標とy座標が互いに等しくて、前記オフセットの値を取る第1構文要素、
正方形を有する前記検索ブロックのサイズを示す第2構文要素、
枝刈り閾値を示す第3構文要素、
前記検索領域を定義するために、前記現在ブロックに対するx方向のオフセットおよびy方向のオフセットを示す第4構文要素および第5構文要素であって、前記検索領域の左上隅サンプルのx座標とy座標が互いに等しくなくて、それぞれx方向のオフセットの値およびy方向のオフセットの値を取る第4構文要素および第5構文要素、または、
長方形の形状を有する前記検索ブロックの幅および高さを示す第6構文要素および第7構文要素、
のうちの1つのシグナリングを受信するステップ、を含むことを特徴とする請求項1に記載の方法。
【請求項13】
装置であって、プロセッサとメモリとを含み、前記プロセッサが前記メモリに記憶されたプログラムをロードし実行することにより、請求項1乃至12のいずれか一項に記載の方法を実現する装置。
【請求項14】
コンピュータプログラムであって、デコーダのプロセッサによって実行されると、前記デコーダに、
ブロックサイズを有する現在ブロックを受信させ、
前記現在ブロックのブロックサイズに基づいてグリッドパターンを設定させ、前記グリッドパターンが、前記現在ブロックに隣接する検索領域を検索ブロックに分割し、前記検索領域は
、前記検索領域の左上隅サンプルのx座標とy座標により指定され、前記検索ブロックのサイズが、前記現在ブロックのブロックサイズに応じて決定され、
1つ以上の空間的マージ候補を含む候補リストを作成するように、前記検索ブロックでの候補位置から前記1つ以上の空間的マージ候補を検索させる、
コンピュータプログラム。
【請求項15】
前記コンピュータプログラムは、前記プロセッサに、さらに、
前記現在ブロックのブロックサイズが第1閾値より大きい場合、検索ブロックサイズを第1サイズに決定させ、
前記現在ブロックのブロックサイズが前記第1閾値より小さい場合、前記検索ブロックサイズを前記第1サイズより小さい第2サイズに決定させる、
ことを特徴とする請求項14に記載のコンピュータプログラム。
【請求項16】
前記コンピュータプログラムは、前記プロセッサに、さらに、
前記現在ブロックの最も近い隣接領域における予め決定された候補位置の第1セットで、第1ラウンドの検索を実行させ、前記予め決定された候補位置の第1セットには、
前記現在ブロックの左下隅にある候補位置(d0)と、
前記現在ブロックの左側に位置し、前記候補位置(d0)の隣にある候補位置(a0)と、
前記現在ブロックの右上隅にある候補位置(c0)と、
前記現在ブロックの上端に位置し、候補位置(c0)の隣にある候補位置(b0)と、
前記現在ブロックの左上隅にある候補位置(e0)と、が含まれ、
前記現在ブロックから1つの検索ブロックだけ離れており、前記現在ブロックの最も近い隣接領域に隣接する隣接領域における予め決定された候補位置の第2セットで、第2ラウンドの検索を実行させ、前記予め決定された候補位置の第2セットには、
前記候補位置(d0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(d1)と、
前記候補位置(a0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(a1)と、
前記候補位置(c0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(c1)と、
前記候補位置(b0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(b1)と、
前記候補位置(e0)の左上方向にし、1つの検索ブロックだけ離れた位置にある候補位置(e1)と、が含まれる、
ことを特徴とする請求項14又は15に記載のコンピュータプログラム。
【請求項17】
前記コンピュータプログラムは、前記デコーダに、さらに、
前記現在ブロックに直接隣接する検索ブロックから選択された空間的マージ候補のセット以外の1つまたは複数の空間的マージ候補を、前記候補リストにおける時間的マージ候補の後の位置に追加させる、
ことを特徴とする請求項14乃至16のいずれか一項に記載のコンピュータプログラム。
【請求項18】
エンコーダがマージモードを使用してビデオ符号化を実行する方法であって、
ブロックサイズを有する現在ブロックを受信するステップと、
前記現在ブロックのブロックサイズに基づいてグリッドパターンを設定するステップであって、前記グリッドパターンが、前記現在ブロックに隣接する検索領域を検索ブロックに分割し、前記検索領域は
、前記検索領域の左上隅サンプルのx座標とy座標により指定され、前記検索ブロックのサイズが、前記現在ブロックのブロックサイズに応じて決定される、ステップと、
1つ以上の空間的マージ候補を含む候補リストを作成するように、前記検索ブロックでの候補位置から前記1つ以上の空間的マージ候補を検索するステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本開示は、2018年2月6日に提出された米国仮出願第62/627,194号「ビデオ符号化/復号におけるマージを用いたフレーム間予測のための方法および装置」に対する優先権および2018年11月29日に提出された米国出願第16/205,053号「マージモードでのビデオ符号化/復号のための方法および装置」に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、概してビデオ符号化/復号に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテキストを全体的に示すことを目的とする。この背景技術部分および本明細書の各態様において説明された、現在署名されている発明者の作業の程度は、本開示の提出時に先行技術として示されておらず、また、本開示の先行技術として認められていることを明示または暗示していない。
【0004】
動き補償を有するフレーム間画像予測を使用するビデオ符号化および復号が何十年も知られている。圧縮されていないデジタルビデオは、一連の画像を含むことができ、各画像が、例えば1920×1080の輝度サンプルおよび関連された色度サンプルの空間的次元を有する。この一連の画像は、例えば1秒間に60枚の画像または60ヘルツ(Hz)の固定または可変の画像レート(非公式にはフレームレートとして知られている)を有することができる。圧縮されていないビデオは、非常に高いビットレート要件がある。例えば、サンプルあたり8ビットの1080p60 4:2:0のビデオ(60Hzのフレームレートでの1920x1080の輝度サンプル解像度)は、1.5Gbit/sの帯域幅に近い必要がある。このようなビデオは、一時間で600GB以上の記憶空間を必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、入力ビデオ信号における冗長情報を圧縮により低減することである。圧縮は、上記の帯域幅または記憶空間に対する要件を低減することを助けることができ、いくつかの場合では、二桁以上程度を低減することができる。無損失性および損失性の圧縮、ならびに両方の組み合わせは、いずれも使用されることができる。無損失性の圧縮とは、元の信号の正確なコピーを圧縮された元の信号から再構築することができる、という技術を指す。損失性の圧縮が使用される場合、再構築された信号は、元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みが十分に小さいので、再構築された信号が予想されるアプリケーションに利用されることができる。ビデオの場合、損失性の圧縮は広く使われている。許容される歪みの量は、アプリケーションに依存し、例えば、あるストリーミングアプリケーションを消費するユーザは、テレビ貢献アプリケーションのユーザより、高い歪みを許容することができる。実現可能な圧縮比は、より高い許可/許容可能な歪みがより高い圧縮比を生成することができる、ということを反映している。
【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-TREC.H.265、「高効率ビデオ符号化/復号」、2016年12月)に記載されている。H.265によって提供される多くのMV予測メカニズムのうち、ここで説明されるのは、後文で「空間マージ」と呼ばれる技術である。
【0009】
図1を参照すると、現在ブロック(101)は、動き検索プロセス期間にエンコーダによって発見されたサンプルを含み、このサンプルが、空間的にシフトされた同じサイズの前のブロックから予測されることができる。MVを直接に符号化する代わりに、そのMVは、1つ以上の参照画像に関連付けられたメタデータから導出されることができ、例えば、A0、A1およびB0、B1、B2(それぞれ102~106に対応)で示される5つの周囲のサンプルのうちのいずれか1つに関連付けられたMVを使用して、最新の(復号順序で)参照画像から導出されることができる。H.265では、MV予測は、隣接ブロックが使用しているのと同一の参照画像からの予測因子を使用することができる。
【発明の概要】
【0010】
本発明の態様は、ビデオ符号化/復号のための方法および装置を提供する。いくつかの実施形態では、デコーダまたはエンコーダがマージモードを使用してビデオ符号化/復号を実行する方法は、ブロックサイズを有する現在ブロックを受信するステップと、現在ブロックのブロックサイズに基づいてグリッドパターンを設定するステップであって、グリッドパターンが、現在ブロックに隣接する検索領域を検索ブロックに分割し、検索ブロックのサイズが、現在ブロックのブロックサイズに応じて決定される、ステップと、1つ以上の空間的マージ候補を含む候補リストを作成するように、検索ブロックでの候補位置から1つ以上の空間的マージ候補を検索するステップと、を含む。
【0011】
一実施形態では、前記方法は、現在ブロックのブロックサイズが第1閾値より大きい場合、検索ブロックサイズを第1サイズに決定するステップと、現在ブロックのブロックサイズが第1閾値より小さい場合、検索ブロックサイズを第1サイズより小さい第2サイズに決定するステップと、をさらに含む。
【0012】
一実施形態では、前記方法は、予め決定された候補位置のセットに対応する検索ブロックのサブセットから、1つまたは複数の空間的マージ候補を検索するステップ、をさらに含む。
【0013】
一実施形態では、前記方法は、現在ブロックの最も近い隣接領域における予め決定された候補位置の第1セットで、第1ラウンドの検索を実行するステップ、を含む。予め決定された候補位置の第1セットには、現在ブロックの左下隅にある候補位置(d0)と、現在ブロックの左側に位置し、候補位置(d0)の隣にある候補位置(a0)と、現在ブロックの右上隅にある候補位置(c0)と、現在ブロックの上端に位置し、候補位置(c0)の隣にある候補位置(b0)と、現在ブロックの左上隅にある候補位置(e0)と、が含まれる。前記方法は、現在ブロックから1つの検索ブロックだけ離れており、現在ブロックの最も近い隣接領域に隣接する隣接領域における予め決定された候補位置の第2セットで、第2ラウンドの検索を実行するステップを、さらに含む。予め決定された候補位置の第2セットには、候補位置(d0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(d1)と、候補位置(a0)から左へ、1つの検索ブロックだけ離れた位置にある候補位置(a1)と、候補位置(c0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(c1)と、候補位置(b0)から上へ、1つの検索ブロックだけ離れた位置にある候補位置(b1)と、候補位置(e0)の左上方向に、1つの検索ブロックだけ離れた位置候補位置(e1)と、が含まれる。
【0014】
一実施形態では、前記方法は、第1ラウンドの検索の後に、候補リストが完全に満たされているかどうかを決定するステップと、候補リストが完全に満たされていない場合、第2ラウンドの検索を続行するステップと、候補リストが完全に満たされた場合、1つまたは複数の空間的マージ候補を検索し、候補リストを作成する動作を終了するステップと、をさらに含む。
【0015】
一実施形態では、前記方法は、現在ブロックの最も近い隣接領域から現在ブロックの最も遠い隣接領域まで、複数のラウンドの検索を順次に実行し、各ラウンドの検索をそれぞれの隣接領域で実行するステップであって、複数のラウンドの検索のうちの第1ラウンドを、最も近い隣接領域で実行し、最も近い隣接領域には、以下の予め決定された候補位置、即ち、現在ブロックの左下隅にある第1候補位置(d0)と、現在ブロックの左側に位置し、候補位置(d0)の隣にある第2候補位置(a0)と、現在ブロックの右上隅にある第3候補位置(c0)と、前記現在ブロックの上端に位置し、第3候補位置(c0)の隣にある第4候補位置(b0)と、現在ブロックの左上隅にある第5候補位置(e0)と、が含まれる。
【0016】
前の隣接領域で実行された複数のラウンドの検索のうちの前のラウンドの検索の後、次の隣接領域で複数のラウンドの検索のうちの次のラウンドの検索を実行し、次の隣接領域が、現在ブロックの前の隣接領域から1つの検索ブロックだけ離れた位置にあり、次の隣接領域には、以下の予め所定された候補位置、即ち、前の隣接領域の第1候補位置(dP)から左へ、1つの検索ブロックだけ離れた位置にある第1候補位置(dN)と、前の隣接領域の第2候補位置(aP)から左へ、1つの検索ブロックだけ離れた位置にある第2候補位置(aN)と、前の隣接領域の第3候補位置(cP)から上へ、1つの検索ブロックだけ離れた位置にある第3候補位置(cN)と、前の隣接領域の第4候補位置(bP)から上へ、1つの検索ブロックだけ離れた位置にある第4候補位置(bN)と、前の隣接領域の第5候補位置(eP)から左上方向へ、1つの検索ブロックだけ離れた位置にある第5候補位置(eN)と、が含まれる、ことをさらに含む。
【0017】
一例では、前記方法は、候補リストが完全に満たされているまで、現在ブロックの最も近い隣接領域から現在ブロックの最も遠い隣接領域まで、複数のラウンドの検索を順次に実行するステップ、を含む。
【0018】
一実施形態では、前記検索領域は、現在ブロックに隣接する第1隣接領域の検索ブロックにおける、高効率ビデオコーディング(HEVC)規格で定義される候補位置の第1セットを含み、1つまたは複数の空間的マージ候補が検索される候補位置は、現在ブロックの左、上および左上にある候補位置での第1セットに対して、それぞれ、左、上および左上の方向へ、現在ブロックに隣接する第1隣接領域から、現在ブロックに隣接しておらず、現在ブロックから1つの検索ブロックだけ離れた位置にある隣接領域まで拡張される。
【0019】
一実施形態では、前記方法は、現在ブロックに直接隣接する検索ブロックから選択された空間的マージ候補のセット以外の1つまたは複数の空間的マージ候補を、候補リストにおける時間的マージ候補の後の位置に追加するステップ、をさらに含む。
【0020】
一実施形態では、前記方法は、検索領域を検索することによって得られたマージ候補を、候補リストにリストされた既存のマージ候補と比較するステップと、得られたマージ候補と既存のマージ候補との間の差が枝刈り閾値より大きい場合、得られたマージ候補を候補リストに追加するステップと、得られたマージ候補と既存のマージ候補との間の差が枝刈り閾値より小さい場合、得られたマージ候補を候補リストに追加しないステップと、をさらに含む。
【0021】
一実施形態では、前記検索ブロックは、正方形および/または非正方形の形状を有する。
【0022】
一実施形態では、前記方法は、シーケンスレベル、画像レベル、またはスライスレベルで、エンコーダから以下の構文要素:検索領域を定義するために、現在ブロックに対するオフセットを示す第1構文要素であって、検索領域の左上隅サンプルのx座標とy座標が互いに等しくて、オフセットの値を取る第1構文要素、正方形を有する検索ブロックのサイズを示す第2構文要素、枝刈り閾値を示す第3構文要素、前記検索領域を定義するために、現在ブロックに対するx方向のオフセットおよびy方向のオフセットを示す第4構文要素および第5構文要素であって、検索領域の左上隅サンプルのx座標とy座標が互いに等しくなくて、それぞれx方向のオフセットの値およびy方向のオフセットの値を取る第4構文要素および第5構文要素、または、長方形の形状を有する検索ブロックの幅および高さを示す第6構文要素および第7構文要素、のうちの1つをシグナリングするステップを含む。
【0023】
本発明の実施形態はまた、命令が記憶されているコンピュータ読み取り可能な非一時的な媒体であって、命令がプロセッサによって実行される場合、マージモードを用いてビデオを符号化/復号する方法をプロセッサに実行させる。
【図面の簡単な説明】
【0024】
開示される主題の更なる特徴、性質および様々な利点は、以下の詳細な説明および添付の図面からより明らかになり、ここで、
【0025】
【
図1】H.265/HEVCによる現在ブロックおよびその周囲の空間マージ候補の概略図である。
【0026】
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図である。
【0027】
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図である。
【0028】
【
図4】一実施形態によるデコーダの簡略化されたブロック図である。
【0029】
【
図5】一実施形態によるエンコーダの簡略化されたブロック図である。
【0030】
【
図6】別の実施形態によるエンコーダのブロック図を示す図である。
【0031】
【
図7】別の実施形態によるデコーダのブロック図を示す図である。
【0032】
【
図8】HEVCで定義されたマージモード候補位置を示す図である。
【0033】
【
図9】マージ候補リスト構成の例示的なスキームを示す図である。
【0034】
【
図10】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図11】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図12】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図13】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図14】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図15】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【
図16】本開示の実施形態によるマージ候補ブロックを検索する方法の例を示す図である。
【0035】
【
図17】本開示の実施形態によるマージインデックスを符号化するためのコードワードの例を示す図である。
【
図18】本開示の実施形態によるマージインデックスを符号化するためのコードワードの例を示す図である。
【0036】
【
図19】本開示の実施形態によるマージモード制御パラメータのシグナリングのための構文要素の例を示す図である。
【
図20】本開示の実施形態によるマージモード制御パラメータのシグナリングのための構文要素の例を示す図である。
【
図21】本開示の実施形態によるマージモード制御パラメータのシグナリングのための構文要素の例を示す図である。
【
図22】本開示の実施形態によるマージモード制御パラメータのシグナリングのための構文要素の例を示す図である。
【0037】
【
図23】本発明の実施形態によるマージモードを用いたビデオ符号化/復号のための例示的なプロセスのフローチャートを示す図である。
【0038】
【
図24】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0039】
図2は、本開示の実施形態による通信システム(200)の簡略化されたブロック図である。通信システム(200)は、例えばネットワーク(250)を介して相互に通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1ペアの端末デバイス(210)と(220)を含む。
図2の例では、第1ペアの端末デバイス(210)と(220)は、データの単方向伝送を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に伝送するために、ビデオデータ(例えば、端末デバイス(210)によって捕捉されたビデオ画像ストリーム)を符号化することができる。符号化されたビデオデータは、1つ以上の符号化されたビデオビットストリームの形で伝送されることができる。端末デバイス(220)は、ネットワーク(250)から、符号化されたビデオデータを受信し、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに基づいてビデオ画像を表示することができる。単方向データ伝送は、メディアサービングアプリケーションなどでは一般的である。
【0040】
別の例では、通信システム(200)は、例えばビデオ会議中に発生する可能性がある、符号化されたビデオデータの双方向伝送を実行する第2ペアの端末デバイス(230)と(240)を含む。データの双方向伝送の場合、一例では、端末デバイス(230)と(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)と(240)のうちの他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオ画像ストリーム)を符号化することができる。端末デバイス(230)と(240)の各端末デバイスは、端末デバイス(230)と(240)のうちの他方の端末デバイスによって送信された、符号化されたビデオデータを受信することもでき、また、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに基づいて、アクセス可能な表示デバイスにビデオ画像を表示することもできる。
【0041】
図2の例では、端末デバイス(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示されてもよいが、本開示の原理は、これに限定されていない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤーおよび/または専用のビデオ会議機器を有するアプリケーションを見つける。ネットワーク(250)は、端末デバイス(210)、(220)、(230)および(240)間で、符号化されたビデオデータを伝送する任意の数のネットワークを表し、有線(ワイヤード)および/または無線の通信ネットワークを含む。通信ネットワーク(250)は、回路交換および/またはパケット交換のチャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本開示の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0042】
図3は、開示された主題に対するアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
【0043】
ストリーミングシステムは、捕捉サブシステム(313)を含むことができ、この捕捉サブシステムが、例えばデジタルカメラなどのビデオソース(301)を含むことができ、例えば圧縮されていないビデオ画像ストリーム(302)を作成する。一例では、ビデオ画像ストリーム(302)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム)と比較する際に、高いデータボリュームを強調するために太い線で描かれたビデオ画像ストリーム(302)は、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理されることができる。ビデオエンコーダ(303)は、以下でより詳細に説明するように、開示された主題の様々な態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオ画像ストリーム(302)と比較する際に、より低いデータボリュームを強調するために細い線で描かれた、符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム(304))は、将来の使用のためにストリーミングサーバ(305)に記憶されることができる。
図3のクライアントサブシステム(306)および(308)などのような1つ以上のストリーミングクライアントサブシステムは、符号化されたビデオデータ(304)のコピー(307)および(309)を検索するために、ストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えば、電子デバイス(330)にビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、伝入される、符号化されたビデオデータのコピー(307)を復号して、伝出される、ビデオ画像ストリーム(311)を生成し、このビデオ画像ストリーム(311)が、ディスプレイ(312)(例えば、ディスプレイスクリーン)または他のレンダリングデバイス(図示せず)に表示されることができる。一部のストリーミングシステムでは、符号化されたビデオデータ(304)、(307)および(309)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮規格に従って符号化されることができる。これらの規格の例は、ITU-T推薦H.265を含む。一例では、開発中のビデオ符号化規格は、非公式には次世代ビデオ符号化(VVC:Versatile Video Coding)と呼ばれる。開示された主題は、VVCのコンテキストで使用されることができる。
【0044】
なお、電子デバイス(320)および(330)は、他のコンポーネント(図示せず)を含むことができる。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、同様にビデオエンコーダ(図示せず)を含むことができる。
【0045】
図4は、本開示の実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例におけるビデオデコーダ(310)の代わりに使用することができる。
【0046】
受信機(431)は、ビデオデコーダ(410)によって復号される1つ以上の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、ここで、各符号化されたビデオシーケンスの復号が、他の符号化されたビデオシーケンスから独立されている。符号化されたビデオシーケンスは、チャネル(401)から受信されることができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機(431)は、それぞれの使用エンティティ(図示せず)に伝送されることができる、例えば符号化されたオーディオデータおよび/または補助データストリームなどのような他のデータとともに、符号化されたビデオデータを受信することができる。受信機(431)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/解析器(パーサ)(420)(以降「解析器(420)」)との間に結合されることができる。いくつかのアプリケーションでは、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合では、バッファメモリ(415)は、ビデオデコーダ(410)の外部に配置されてもよい(図示せず)。さらに他の場合では、例えばネットワークジッタを防止するために、ビデオデコーダ(410)の外部にバッファメモリ(図示せず)があってよく、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(410)の内部に別のバッファメモリ(415)があってよい。受信機(431)が十分な帯域幅および制御可能性を有するストア/フォワードデバイスからまたは等時性同期ネットワーク(isosynchronous network)からデータを受信する場合、バッファメモリ(415)は、必要ではないかまたは小さくてもよい。インターネットなどのようなベストエフォートパケットネットワークで使用するために、バッファメモリ(415)は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができ、オペレーティングシステムまたはビデオデコーダ(410)の外部の類似要素(図示せず)に少なくとも部分的に実装されることができる。
【0047】
ビデオデコーダ(410)は、符号化されたビデオシーケンスからシンボル(421)を再構築するための解析器(420)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(410)の動作を管理するために使用される情報と、電子デバイス(430)の不可欠な部分ではないが、
図5に示すように、電子デバイス(430)に結合されることができるレンダリングデバイス(412)(例えば、ディスプレイスクリーン)などのようなレンダリングデバイスを制御するための潜在的情報とが含まれる。レンダリングデバイスの制御情報は、補足強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。解析器(420)は、受信された、符号化されたビデオシーケンスに対して解析/エントロピー復号を行うことができる。符号化されたビデオシーケンスの符号化/復号は、ビデオ符号化/復号技術または規格に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を有するかまたは有しないかの算術符号化などを含む、様々な原理に従うことができる。解析器(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、画像のグループ(GOP:Group of Pictures)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Trans form Unit)、予測ユニット(PU:Prection Unit)などを含むことができる。解析器(420)は、変換係数、量子化器パラメータ値、動きベクトルなどのような情報を符号化されたビデオシーケンスから抽出することができる。
【0048】
解析器(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。
【0049】
シンボル(421)の再構築は、符号化されたビデオ画像またはその一部(例えば、フレーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプおよび他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、およびどのように関連するかは、解析器(420)によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。解析器(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明瞭にするために説明されていない。
【0050】
既に言及された機能ブロックに加えて、ビデオデコーダ(410)は、以下に説明するように、いくつかの機能ユニットに概念的に細分されることができる。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分は適切である。
【0051】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数と、どのような変換を使用するかということ、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、解析器(420)からシンボル(421)として受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力できるサンプル値を含むブロックを出力することができる。
【0052】
いくつかの場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、フレーム内符号化ブロックに属することができ、即ち、以前に再構築された画像からの予測情報を使用していないが、現在画像の以前に再構築された部分からの予測情報を使用することができるブロックである。このような予測情報は、フレーム内画像予測ユニット(452)によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット(452)は、現在画像バッファ(458)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在画像バッファ(458)は、例えば、部分的に再構築された現在画像および/または完全に再構築された現在画像をバッファリングする。アグリゲータ(455)は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット(452)によって生成された予測情報を、スケーラ/逆変換ユニッvト(451)によって提供される出力サンプル情報に追加する。
【0053】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、フレーム間符号化されたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット(453)は、参照画像メモリ(457)にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルは、シンボルに関連するシンボル(421)に基づいて動き補償された後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償予測ユニット(453)が予測サンプルを抽出するときの参照画像メモリ(457)内のアドレスは、例えば、X、Y、および参照画像成分を有することができるシンボル(421)の形で、動き補償予測ユニット(453)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに、参照画像メモリ(457)から抽出されたサンプル値の補間、運動ベクトル予測メカニズムなどを含むことができる。
【0054】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれ、解析器(520)からのシンボル(421)としてループフィルタユニット(456)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含むことができ、また、符号化された画像または符号化されたビデオシーケンスの前の部分(復号順序で)を復号する期間で得られたメタ情報に応答し、および、以前に再構築されてループフィルタリングされたサンプル値に応答することもできる。
【0055】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力することができ、および、将来のフレーム間画像予測で使用するために参照画像メモリ(457)に記憶することができるサンプルストリームとすることができる。
【0056】
特定の符号化された画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。例えば、現在画像に対応する符号化された画像が完全に再構築され、符号化された画像が(例えば、解析器(420)によって)参照画像として識別されると、現在画像バッファ(458)は、参照画像メモリ(457)の一部になることができ、そして、後続の符号化された画像の再構築を開始する前に、新しい現在画像バッファを再割り当てることができる。
【0057】
ビデオデコーダ(410)は、例えばITU-T Rec.H.265などのような規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格の文書としてのプロファイルとの両方に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとしていくつかのツールを選択することができる。符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあるということもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒数百万(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)仕様と、符号化されたビデオシーケンスにおいてシグナルで通知されるHRDバッファ管理のメタデータとによって、さらに制限されることができる。
【0058】
一実施形態では、受信機(431)は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、符号化されたビデオシーケンスの一部として含まれることができる。付加的なデータは、データを適切に復号し、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ(410)によって使用されることができる。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号などのような形式にすることができる。
【0059】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例におけるビデオエンコーダ(303)の代わりに使用することができる。
【0060】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によって符号化されるビデオ画像を捕捉するビデオソース(501)(
図5の例における電子デバイス(520)の一部ではない)から、ビデオサンプルを受信することができる。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0061】
ビデオソース(501)は、ビデオエンコーダ(503)によって符号化されたソースビデオシーケンスをデジタルビデオサンプルストリームの形式で提供することができ、前記デジタルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース(501)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供されることができる。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0062】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を、符号化されたビデオシーケンス(543)に符号化し圧縮することができる。適切な符号化速度を実施することは、コントローラ(550)の1つの機能である。いくつかの実施形態では、コントローラ(550)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。該結合は、明瞭にするために図示されていない。コントローラ(550)によって設定されたパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値…)、画像サイズ、画像のグループ(GOP:group of pictures)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、特定のシステム設計に対して最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成されることができる。
【0063】
いくつかの実施形態では、ビデオエンコーダ(503)は、符号化ループで動作するように構成される。過度に簡単化された説明として、一例では、符号化ループは、ソースコーダ(530)(例えば、符号化される入力画像と、参照画像とに基づいて、シンボルストリームなどのようなシンボルを作成することを担当する)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモート)デコーダがサンプルデータを作成すると同様の方法でシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が無損失であるからである)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームの復号により、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像メモリ(534)のコンテンツは、ローカルエンコーダとリモートエンコーダの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性が維持されない場合に生じるドリフト)は、いくつかの関連技術でも使用されている。
【0064】
「ローカル」デコーダ(533)の動作は、既に
図4に関連して以上で詳細に説明された、ビデオデコーダ(410)などのような「リモート」デコーダの動作と同じであってもよい。しかし、
図4をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ(545)および解析器(420)によって符号化されたビデオシーケンスへのシンボルの符号化/が無損失でできるため、バッファメモリ(415)と解析器(420)を含むビデオデコーダ(410)のエントロピーデコード部分は、ローカルデコーダ(433)で完全に実行できない可能性がある。
【0065】
ここで分かることは、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということである。このため、開示された主題は、デコーダ動作に焦点を合わせる。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略されることができる。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
【0066】
動作中に、いくつかの実施形態では、ソースコーダ(530)は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照画像」として指定された1つ以上の以前に符号化された画像を参照して、入力画像を予測的に符号化する。このようにして、符号化エンジン(532)は、入力画像の画素ブロックと、入力画像に対する予測参照として選択されることができる参照画像の画素ブロックとの間の差分を符号化する。
【0067】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照画像として指定されることができる画像の符号化されたビデオデータを復号することができる。符号化エンジン(532)の動作は、有利には損失性プロセスであってもよい。符号化されたビデオデータがビデオデコーダ(
図5に示されない)で復号された場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(533)は、参照画像に対してビデオデコーダによって実行されることができる復号プロセスをコピーして、再構築された参照画像を参照画像キャッシュ(534)に記憶することができる。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照画像と共通のコンテンツを有する再構築された参照画像のコピーを、ローカルに記憶することができる。
【0068】
予測器(535)は、符号化エンジン(532)に対して予測検索を実行することができる。すなわち、符号化される新しい画像について、予測器(535)は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状などについて、参照画像メモリ(534)を検索することができる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有することができる。
【0069】
コントローラ(550)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理することができる。
【0070】
上述のすべての機能ユニットの出力は、エントロピーコーダ(545)でエントロピー符号化されることができる。エントロピーコーダ(545)は、例えばハフマン符号化、可変長符号化、算術符号化などのような当業者に知られている技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0071】
送信機(540)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであることができる通信チャネル(560)を介した送信に備えるために、エントロピーコーダ(545)によって生成された、符号化されたビデオシーケンスをバッファリングすることができる。送信機(540)は、ビデオエンコーダ(503)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0072】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理することができる。符号化する期間、コントローラ(550)は、各符号化された画像に、特定の符号化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、画像は、以下の画像タイプのいずれかとして割り当てられることが多い:
【0073】
フレーム内画像(I画像)は、シーケンス内の任意の他の画像を予測のソースとして使用せずに、符号化および復号されることができるものであってもよい。いくつかのビデオコーデックは、独立したデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)画像などの異なるタイプのフレーム内画像を許容する。当業者は、I画像の変種とそれらのアプリケーションおよび機能とを理解している。
【0074】
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。
【0075】
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に、2つ以上の参照画像および関連されたメタデータを使用することができる。
【0076】
ソース画像は、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16個のサンプルのブロック)に空間的に細分され、ブロックごとに符号化されることができる。これらのブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化されることができる。例えば、I画像のブロックは、非予測的に符号化されてもよく、またはそれらが同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符号化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。B画像のブロックは、1つまたは2つ前に符号化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。
【0077】
ビデオエンコーダ(503)は、例えばITU―T H.265などのような所定のビデオ符号化技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的と空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されるビデオ符号化技術または規格によって指定された構文に従うことができる。
【0078】
一実施形態では、送信機(540)は、符号化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ(530)は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどのような他の形式の冗長データ、補助強化情報(SEI)メッセージ、ビジュアルユーザビリティ情報(VUI)パラメータセットセグメントなどを含むことができる。
【0079】
ビデオは、時系列で複数のソース画像(ビデオ画像)として捕捉されることができる。フレーム内画像予測(フレーム内予測と略称されることが多い)は、与えられた画像における空間的相関を利用し、フレーム間画像予測は、画像間の(時間的または他の)相関を利用する。一例では、現在画像と呼ばれる、符号化/復号中の特定の画像がブロックに分割される。現在画像のブロックが、ビデオにおける以前に符号化され、まだバッファリングされている参照画像における参照ブロックと類似している場合、現在画像のブロックは、動きベクトルと呼ばれるベクトルによって符号化されることができる。動きベクトルは、参照画像における参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する3番目の次元を有することができる。
【0080】
いくつかの実施形態では、双方向予測技術は、フレーム間画像予測に使用されることができる。双方向予測技術によれば、例えば、復号の順で両方とも、ビデオにおける現在画像の前にある(ただし、表示の順でそれぞれ、過去と将来にあるかもしれない)第1参照画像および第2参照画像などのような2つの参照画像が使用される。現在画像におけるブロックは、第1参照画像における第1参照ブロックを指す第1動きベクトルと、第2参照画像における第2参照ブロックを指す第2動きベクトルによって符号化されることができる。ブロックは、第1参照ブロックおよび第2参照ブロックの組み合わせによって予測されることができる。
【0081】
さらに、符号化効率を向上させるために、マージモード技術は、フレーム間画像予測で使用されることができる。
【0082】
本開示のいくつかの実施形態によれば、フレーム間画像予測やフレーム内画像予測などのような予測は、ブロックの単位で実行される。例えば、HEVC規格に従って、ビデオ画像のシーケンスにおける画像は、圧縮のために符号化ツリーユニット(CTU:coding tree unit)に分割され、画像におけるCTUは同じサイズ、例えば64×64画素、32×32画素、または16×16画素を有する。一般的に、CTUは、1つの輝度CTBと2つの色度CTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に四分木で1つまたは複数の符号化ユニット(CU)に分割されてもよい。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16個の16×16画素のCUに分割されることができる。一例では、各CUは、フレーム間予測タイプまたはフレーム内予測タイプなどのようなCUに対する予測タイプを決定するために分析される。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。通常、各PUは、輝度予測ブロック(PB)と2つの色度PBを含む。一実施形態では、符号化/復号(Coding、エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などのような画素値(例えば、輝度値)の行列を含む。
【0083】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像シーケンスにおける現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化されたビデオシーケンスの一部である符号化された画像に符号化するように構成される。一例では、ビデオエンコーダ(603)は、
図3の例におけるビデオエンコーダ(303)の代わりに使用される。
【0084】
HEVCの例では、ビデオエンコーダ(603)は、例えば8×8サンプルの予測ブロックなどのような処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(603)は、例えばレート歪み最適化を使用して、フレーム内モード、フレーム間モード、または双方向予測モードを使用して処理ブロックを符号化するかどうかを決定する。処理ブロックがフレーム内モードで符号化される場合、ビデオエンコーダ(603)は、フレーム内予測技術を使用して、処理ブロックを符号化された画像に符号化することができ、また、処理ブロックがフレーム間モードまたは双方向予測モードで符号化される場合、ビデオエンコーダ(603)は、それぞれフレーム間予測または双方向予測技術を使用して、処理ブロックを符号化された画像に符号化することができる。特定のビデオ符号化/復号技術では、マージモードは、予測値以外にある符号化された動きベクトル成分の利点を利用しない場合に、動きベクトルが1つ以上の動きベクトル予測値から導出されるフレーム間画像予測サブモードにすることができる。他の特定のビデオ符号化/復号技術では、主題ブロックに適用可能な動きベクトル成分が存在する場合がある。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などのような他のコンポーネントを含む。
【0085】
図6の例では、ビデオエンコーダ(603)は、
図7に示すように一緒に結合された、フレーム間エンコーダ(630)と、フレーム内エンコーダ(622)と、残差計算器(623)と、スイッチ(626)と、残差エンコーダ(624)と、汎用コントローラ(621)と、エントロピーエンコーダ(625)とを含む。
【0086】
フレーム間エンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照画像(例えば、前の画像と後の画像におけるブロック)内の1つ以上の参照ブロックと比較し、フレーム間予測情報(例えば、フレーム間符号化技術による冗長情報説明、動きベクトル、マージモード情報)を生成して、任意の適切な技術を使用して、フレーム間予測情報に基づいてフレーム間予測結果(例えば、予測されたブロック)を計算するように構成される。
【0087】
フレーム内エンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、いくつかの場合では、そのブロックを同じ画像で既に符号化されたブロックと比較し、変換後に量子化された係数を生成し、また、いくつかの場合では、フレーム内予測情報(例えば、1つ以上のフレーム内符号化技術によるフレーム内予測方向情報)も生成する。
【0088】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、汎用コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(626)に提供する。例えば、モードがフレーム内モードである場合、汎用コントローラ(621)は、残差計算器(623)によって使用されるフレーム内モード結果を選択するように、スイッチ(626)を制御し、フレーム内予測情報を選択して、そのフレーム内予測情報をコードストリームに含めるように、エントロピーエンコーダ(625)を制御する。また、モードがフレーム間モードである場合、汎用コントローラ(621)は、残差計算器(623)によって使用されるフレーム間予測結果を選択するように、スイッチ(626)を制御し、フレーム間予測情報を選択して、そのフレーム間予測情報をコードストリームに含めるように、エントロピーエンコーダ(625)を制御する。
【0089】
残差計算器(623)は、受信されたブロックとフレーム内エンコーダ(622)またはフレーム間エンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作して、残差データを符号化することで変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、周波数領域で残差データを変換し、変換係数を生成するように構成される。次に、変換係数は量子化処理を受けて、量子化された変換係数が得られる。
【0090】
エントロピーエンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC規格などのような適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、フレーム内予測情報またはフレーム間予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、フレーム間モードまたは双方向予測モードのマージサブモードでブロックを符号化する場合、残差情報はないということに留意されたい。
【0091】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化されたビデオシーケンスの一部である符号化された画像を受信し、符号化された画像を復号して再構築された画像を生成するように構成される。一例では、ビデオデコーダ(710)は、
図3の例におけるビデオデコーダ(310)の代わりに使用される。
【0092】
図7の例では、ビデオデコーダ(710)は、
図7に示されるように一緒に結合された、エントロピーデコーダ(771)と、フレーム間デコーダ(780)と、残差デコーダ(773)と、再構築モジュール(774)と、フレーム内デコーダ(772)とを含む。
【0093】
エントロピーデコーダ(771)は、符号化された画像から、符号化された画像を構成する構文要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックを符号化するためのモード(例えば、フレーム内モード、フレーム間モード、双方向予測モード、後者の2つのマージサブモードまたは別のサブモード)と、フレーム内デコーダ(772)またはフレーム間デコーダ(780)による予測に使用される特定のサンプルまたはメタデータをそれぞれ識別できる予測情報(例えば、フレーム内予測情報またはフレーム間予測情報など)と、例えば量子化された変換係数の形式の残差情報などとを含む。一例では、予測モードがフレーム間予測モードまたは双方向予測モードである場合、フレーム間予測情報は、フレーム間デコーダ(780)に提供される。そしれ、予測タイプがフレーム内予測タイプである場合、フレーム内予測情報は、フレーム内デコーダ(772)に提供される。残差情報は、逆量子化を受けて、残差デコーダ(773)に提供されることができる。
【0094】
フレーム間デコーダ(780)は、フレーム間予測情報を受信し、フレーム間予測情報に基づいてフレーム間予測結果を生成するように構成される。
【0095】
フレーム内デコーダ(772)は、フレーム内予測情報を受信し、フレーム内予測情報に基づいて予測結果を生成するように構成される。
【0096】
残差デコーダ(773)は、逆量子化を実行して、逆量子化された変換係数を抽出し、その逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化器パラメータ(QP)を含むように)も必要とする場合があり、その情報は、エントロピーデコーダ(771)によって提供される場合がある(これが低ボリューム制御情報のみであるため、データ経路は図示されていない)。
【0097】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と、(場合によっては、フレーム間予測モジュールまたはフレーム内予測モジュールによる出力としての)予測結果とを組み合わせて、再構築されたブロックを形成するように構成され、再構築されたブロックは、再構築された画像の一部とすることができ、その後、再構築された画像は、再構築されたビデオの一部とすることができる。それは、視覚的品質を改善するために、デブロッキング動作などのような他の適切な動作を実行することができる、ということに留意されたい。
【0098】
ビデオエンコーダ(303)、(503)および(603)と、ビデオデコーダ(310)、(410)および(710)とは、任意の適切な技術を使用して実現されることができる、ということに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)および(603)と、ビデオデコーダ(310)、(410)および(710)とは、1つ以上の集積回路を使用して実現されることができる。別の実施形態では、ビデオエンコーダ(303)、(503)および(603)と、ビデオデコーダ(310)、(410)および(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現されることができる。
【0099】
I.関連するマージモード技術
I.1 HEVCにおけるマージモード
例えば、画像は、ツリー構造に基づく分割スキームを使用してブロックに分割されることができる。次に、結果として得られたブロックは、フレーム内予測モード、フレーム間予測モード、マージモード、スキップモードなどの異なる処理モードで処理されることができる。現在ブロックと呼ばれる、現在処理されているブロックがマージモードで処理される場合、隣接ブロックは、現在ブロックの空間的または時間的隣接領域から選択されることができる。選択された隣接ブロックからの同じ動きデータセットを共有することにより、現在ブロックは、選択された隣接ブロックとマージされることができる。このマージモード動作は、隣接ブロックのセット上で実行されることができ、これにより、隣接ブロックの領域がマージされ、同じ動きデータセットが共有されることができる。エンコーダからデコーダへの伝送中に、現在ブロックに対して、動きデータのセット全体を伝送するのではなく、選択された隣接ブロックの動きデータを指示するインデックスのみを伝送することができる。このようにして、動き情報の伝送に使用するデータ(ビット)量が削減されることができ、また、符号化/復号効率を向上させることができる。
【0100】
上記の例では、動きデータを提供する隣接ブロックは、現在ブロックに関して予め定義された候補位置でのセットから選択されることができる。例えば、候補位置は、空間的候補位置および時間的候補位置を含むことができる。各空間的候補位置は、現在ブロックに隣接する空間的隣接ブロックに関連付けられている。各時間的候補位置は、以前に符号化された画像にある現在ブロックと同一位置のブロックである時間的隣接ブロックに関連付けられている。候補位置(候補ブロックと呼ばれる)をオーバーラップする隣接ブロックは、現在ブロックの全ての空間的隣接ブロックと現在ブロックの全ての時間的隣接ブロックのサブセットである。このようにして、マージされるブロックの選択について、隣接ブロックセットの全体ではなく候補ブロックを評価することができる。
【0101】
図8は、HEVCで定義されたマージモード候補位置を示す。現在ブロック(810)は、マージモードで処理される。マージモード処理に対して、候補位置のセット{A,B,C,D,E,T0,T1}が定義された。具体的には、候補位置{A,B,C,D,E}は、現在ブロック(810)と同じ画像にある候補ブロックの位置を表す空間的候補位置である。これに対して、候補位置{T0,T1}は、以前に符号化された画像にある候補ブロックの位置を表す時間的候補位置である。示されるように、候補位置T1は、現在ブロック(810)の中心の近くに位置することができる。
【0102】
図8では、各候補位置は、例えば、4×4サンプルのサイズを有するサンプルのブロックによって表される。候補位置に対応するこのようなブロックのサイズは、現在ブロック(810)を生成するために使用されるツリーに基づく分割スキームに対して定義された、予測ブロック(PB:prediction block)(例えば、4x4サンプル)の最小許容サイズ以下であってもよい。このような構成で、候補位置を表すブロックは、常に、単一の隣接PB内でカバーされることができる。別の例では、サンプル位置(例えば、ブロックA内の右下のサンプル、またはブロックD内の右上のサンプル)は、候補位置を表すために使用されることができる。
【0103】
一例では、
図8で定義された候補位置{A,B,C,D,E,T0,T1}に基づいて、マージモードプロセスを実行して、候補位置{A,B,C,D,E,T0,T1}からマージ候補を選択することができる。マージモードプロセスでは、候補リスト構成プロセスを実行して、候補リストを作成することができる。候補リストは、予め定義された最大数量Cmのマージ候補を有することができる。候補リストにおける各マージ候補ブロックは、動き補償予測のために使用されることができる動きデータのセットであってもよい。
【0104】
マージ候補は、特定の順序に従って候補リストにリストされ得る。例えば、マージ候補がどのように導出されるかに応じて、異なるマージ候補は、異なる選択される確率を有することができる。より高い選択される確率を有するマージ候補は、より低い選択される確率を有するマージ候補の前に配置される。このような順序に基づいて、各マージ候補は、インデックス(マージインデックスと呼ばれる)に関連付けられる。より高い選択される確率を有するマージ候補は、より小さいインデックス値を有し、これは、それぞれのインデックスを符号化するために必要なビットがより少なくなる、ということを意味する。
【0105】
一例では、動きパラメータとも呼ばれる動きデータは、1つまたは2つの動きベクトルの水平動きベクトル変位値および垂直動きベクトル変位値と、その1つまたは2つの動きベクトルに関連する1つまたは2つの参照画像インデックスと、オプションとして、どの参照画像リストが各インデックスに関連付けられているかの識別子とを含むことができる。
【0106】
一例では、所定の順序に従って、第1数量のマージ候補C1は、空間的候補位置{A,B,C,D,E}から導出され、第2数量のマージ候補C2=Cm―C1は、時間的候補位置{T0,T1}から導出される。候補位置を表すための数字A、B、C、D、E、T0、T1は、マージ候補を指示するために使用されることもできる。例えば、候補位置Aから得られたマージ候補はマージ候補Aと呼ばれる。
【0107】
いくつかのシナリオでは、候補位置でのマージ候補が利用できない場合がある。例えば、候補位置での候補ブロックは、フレーム内予測されることができ、または、候補ブロックは、現在ブロック(810)を含むスライスまたはタイルの外にあり、または現在ブロック(810)と同じ符号化ツリーブロック(CTB:coding tree block)行(row)にない。いくつかのシナリオでは、候補位置でのマージ候補が冗長である場合がある。例えば、現在ブロック(810)の同じ隣接ブロックは、2つの候補位置にオーバーラップすることができる。冗長なマージ候補は、候補リストから削除されることができる。候補リストにおける利用可能なマージ候補の総数がマージ候補Cの最大数量より小さい場合、付加的なマージ候補を(例えば、予め設定されたルールに従って)生成して候補リストに埋めることができ、これにより、候補リストが固定長に維持されることができる。例えば、付加的なマージ候補は、組み合わせられた双方向予測候補とゼロ運動ベクトル候補を含むことができる。
【0108】
候補リストが構築された後、エンコーダでは、候補リストからマージ候補を選択するために評価プロセスを実行することができる。例えば、各マージ候補に対応するレート歪み性能を計算することができ、最適レート歪み性能を有する1つのマージ候補を選択することができる。したがって、現在ブロック(810)のために選択されたマージ候補に関連するマージインデックスが決定され、デコーダにシグナルで通知されることができる。
【0109】
デコーダでは、現在ブロック(810)のマージインデックスを受信することができる。上記と同様の候補リスト構築プロセスを実行して、エンコーダ側と同じ候補リストを生成することができる。いくつかの例では、候補リストが構築された後、受信されたマージインデックスに基づいて、いかなる評価を実行せずに、候補リストからマージ候補を選択することができる。選択されたマージ候補の動きデータは、現在ブロック(810)の後続の動き補償予測に使用されることができる。
【0110】
スキップモードもHEVCに導入されている。例えば、スキップモードでは、上述と同様にマージモードを使用して現在ブロックを予測することで、動きデータのセットを決定することができるが、残差が生成されず、変換係数も伝送されない。スキップフラグは、現在ブロックに関連付けられることができる。現在ブロックの関連する動き情報を示すスキップフラグおよびマージインデックスは、ビデオデコーダにシグナルで指示されることができる。例えば、フレーム間画像予測スライスにおける符号化ユニット(CU:coding unit)の開始位置で、スキップフラグをシグナリングすることができ、暗黙的に以下の情報が含まれ、即ち、このCUは1つのPU(2Nx2N)のみを含み、マージモードは動きデータを導出するために使用され、残差データはビットストリームに存在しない。デコーダ側では、スキップフラグに基づいて、残差信号を追加することなく、それぞれの現在ブロックを復号するために、マージインデックスに基づいて予測ブロックを決定することができる。したがって、本明細書で開示されたマージモードを用いたビデオ符号化/復号のための様々な方法は、スキップモードと組み合わせて利用され得る。
【0111】
I.2 共同探索モデル7(JEM7:Joint Exploration Model 7)におけるマージモード
共同探索モデル7(JEM 7)は、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)によって開発されたテストモデルソフトウェアである。JEM7では、サブCUモードとサブCUマージ候補が導入されている。サブCUモードには、代替の時間的動きベクトル予測(ATMVP:alternative temporal motion vector predition)モードと、空間―時間的動きベクトル予測(STMVP:spaatial-temporal motion vector predition)モードとが含まれる。サブCUモードは、付加的なマージ候補を取得するために有効になる。付加的な構文要素は、サブCUモードをシグナルで通知するために使用されない。2つの付加的なサブCUマージ候補(ATMVP候補およびSTMVP候補)を導出して各CUのマージ候補リストに追加することで、ATMVPモードおよびSTMVPモードを表すことができる。HEVCの候補リストと比較して、シーケンスパラメータセットがATMVPおよびSTMVPが有効になるということを示す場合、最大7つのマージ候補が使用される。
【0112】
付加的なマージ候補(ATMVPおよびSTMVP)の符号化ロジックは、HEVCにおけるマージ候補の符号化ロジックに類似している。例えば、PスライスまたはBスライスにおける各CUについて、2つの付加的なサブCUマージ候補は、二回の付加的な、レート歪み性能に基づくチェックを必要とする。一つの例では、マージ候補は、次の順序、即ち、空間マージ候補(例えば、候補A、B、C、D)、サブCUマージ候補(例えば、候補ATMVP、およびSTMVP)、候補E(リストにおけるマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、組み合わせられた双方向予測候補とゼロ動きベクトル候補の順序に従って、候補リストに挿入または追加される。一つの例では、候補リストの長さ(例えば、7)が与えられ、より高い優先度を有する利用可能なマージ候補が上記の順序に基づいて候補リストを完全に満たせない場合、より低い優先度を有するマージ候補を使用して候補リストを埋めることができる。
【0113】
JEMでは、マージインデックスのすべてのビン(bin)は、コンテキストに基づく適応2値算術符号化(CABAC:Contect-Based Adaptive Binary Arthmetic Coding)によってコンテキスト符号化される。HEVCでは、最初のビンのみがコンテキスト符号化され、また、残りのビンがコンテキストバイパス符号化される。JEMでは、マージ候補の最大数量は7である。JEM7の説明は、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11の共同ビデオ探索チーム(JVET)が2017年7月13日~21日にイタリア・トリノで開催された第7回の会議で提案した共同探索テストモデル7(JEM7)のアルゴリズム記述に提供されている。
【0114】
I.3.マージ候補リスト構築のための例示的なスキーム
図9は、マージ候補リスト構成のための例示的なスキームを示す。この例は、Jingning Han、Yaowu XuおよびJames Bankoskiが2016年9月にICIPで提出した「“A dynamic motion vector referencing scheme for video coding”、ビデオ符号化/復号のための動的動きベクトル参照スキーム」に記載されている。このスキームは、8×8のサンプルブロックステップサイズで、以前に符号化されたブロックから候補動きベクトルを検索する。このスキームは、最も近い空間的隣接するもの、つまり、直近の上の行、左の列、右上の隅をカテゴリ1として定義し、外側の領域(現在ブロックの境界から最大3つの8×8ブロックが離れている)と、以前に符号化された画像における同一位置のブロックとをカテゴリ2として定義し、異なる参照画像から予測された隣接ブロックまたはフレーム内符号化された隣接ブロックをリストから削除する。その後、残りの参照ブロックには、それぞれ重みが割り当てられる。重みは、現在ブロックまでの距離に関連する。
【0115】
II.マージ候補リストの構築の例
II.1.現在ブロックにすぐ隣接していない検索ブロックを含む検索領域からマージ候補を取得する
II.1.1.第1例
図10は、マージ候補を検索する第1例を示す。この例では、現在ブロック(1001)に隣接する検索領域(1002)からマージ候補を検索することができる。この検索領域には、現在ブロック(1001)の上部または左側にすぐ隣接していない検索ブロック(1020)と、検索ブロック(1021~1023)のような、現在ブロック(1001)のすぐ隣のブロックである検索ブロック(1020)とが含まれる。言い換えれば、検索ブロック(1020)のサブセットは、現在ブロック(1001)から遠く離れた位置(距離が1つの検索ブロックである)にあることができる。HEVCにおける候補位置規定と比較して、検索領域(1002)は、現在ブロック(1101)にすぐ隣接する隣接領域から現在ブロック(1101)から遠く離れた隣接領域に拡張される。このようにして、拡張された検索領域(1102)からより多くのマージ候補を取得することができる。よりよいマージ候補を取得する確率を増加させることができる。
【0116】
示されるように、検索領域(1002)は、正方形または長方形であってもよく、ここで、現在ブロック(1001)は、検索領域(1002)の右下隅にある。下向きを指すy軸と右向きを指すx軸とを有する座標系を採用して検索領域を定義することができる。例えば、現在ブロック(1001)の左上隅(サンプル)の座標は(0,0)に設定される。検索領域(1002)の左上隅サンプル(1004)の座標ペア(例えば、(-Offset_x,-Offset_y))を利用して検索領域(1002)を指示することができる。
【0117】
検索領域(1002)は、グリッドパターン(1003)に従って検索ブロック(1020)に分割されることができる。グリッドパターン(1003)は、異なる実施例では異なり得る。同様に、各検索ブロック(1020)のサイズおよび形状は、異なる実施例では異なり得る。例えば、各検索ブロック(1020)は、形状が正方形または長方形であり得る。例えば、正方形のブロックは、K×Kのサイズを有することができ、ここで、Kは、4、8、16などの整数であり得る。
【0118】
各検索ブロック(1020)は、マージ候補が得られる候補位置を表すことができる。例えば、それぞれの検索ブロック内のサンプルに対応する位置は、それぞれの動きデータを得るための候補位置として使用されることができる。一例では、それぞれの検索ブロック内の特定の候補位置は、エンコーダ側とデコーダ側で共通の理解を確立できるように予め定義されている。例えば、候補位置は、それぞれの検索ブロック内の左上隅のサンプル、右下隅のサンプル、または中心のサンプルの位置に配置されることができる。
図10の例に示されるように、HEVCで定義されるように、3つの検索ブロック1021~1023は、候補位置B、EおよびAにオーバーラップする。
【0119】
マージ候補は、特定の順序に従って検索ブロック(1020)から検索されることができる。1つの方法では、検索ブロックの検索は、(-Offset_x,-Offset_y)から現在ブロック(1001)のエッジまで実行されることができる。エンコーダまたはデコーダは、(-Offset_x,-Offset_y)から現在ブロック(1001)のエッジまで検索を行い、各K×Kのブロックをスキャンしてマージ候補ブロックを取得することができる。マージ候補がその位置(検索ブロック)で利用可能である場合、そのマージ候補はマージ候補リストに挿入されることができる。マージ候補がその位置で利用できない場合、その検索ブロックは挿入操作なしでスキップされる。
【0120】
II.1.2.第2例
図11は、マージ候補を検索する別の例を示す。示されるように、検索領域(1102)は、
図10の例と同様に、現在ブロック(1101)の隣接領域で定義される。しかし、検索領域(1102)の下端または右端は、現在ブロック(1101)の下端または右端に揃えられていない。したがって、位置(1104)での第1ペアの座標(-Offset_x,-Offset_y)に加えて、位置(1105)での第2ペアの座標(Edge1_x,Edge1_y)と位置(1106)での第3ペアの座標(Edge2_x,Edge2_y)は、検索領域(1102)を定義するために使用される。
【0121】
II.1.3.第3例
図12は、マージ候補を検索する別の例を示す。示されるように、検索領域(1202)は、
図11の例と同様に、現在ブロック(1201)の隣接領域で定義される。しかし、検索領域(1201)は、上部領域(1231)、左上領域(1232)および左側領域(1233)の3つのサブ領域に分割される。具体的には、上部領域と左上領域は、現在ブロック(1201)の左端に揃えられて、かつ、位置(1207)での座標(0,-Offset_y)と交差している線によって区切られる。左側領域と左上領域は、現在ブロック(1201)の上端に揃えられて、かつ、位置(1208)での座標(-Offset_x,0)と交差している線によって区切られる。
【0122】
上記のサブ領域分割に基づいて、異なる検索順序を採用することができる。例えば、マージ候補の検索は、次の順序のいずれかで実行されることができ、即ち、(1)上部領域、左側領域、左上領域、(2)上部領域、左上領域、左側領域、(3)左側領域、上部領域、左上領域、(4)左側領域、左上領域、上部領域、(5)左上領域、上部領域、左側領域、また(6)左上領域、左側領域、上部領域。
【0123】
各サブ領域内では、検索ブロックは同様に、左列から右列へかつ一番上の行から一番下の行へ、一番下の行から一番上の行へかつ右列から左列へ、および他の適切な順序のような様々な順序で検索されることができる。また、検索順序は、異なるサブ領域によって異なる場合がある。例えば、検索は、現在ブロック(1201)の近くの検索ブロックから開始し、各サブ領域での現在ブロック(1201)から遠く離れた検索ブロックに進むことができる。あるいは、検索は、現在ブロック(1201)から遠く離れた検索ブロックから開始し、各サブ領域での現在ブロック(1201)の近くの検索ブロックに進むことができる。
【0124】
II.1.4.第4例
図13は、マージ候補を検索する別の例を示す。示されるように、現在ブロック(1301)に隣接する検索領域(1302)は、
図11の例と同様に、現在ブロック(1301)の隣接領域で定義される。しかし、
図11の例とは異なり、検索領域(1302)は、現在ブロック(1301)から離れてシフトされる。例えば、ギャップ(1341)は、現在ブロック(1301)の上端、左側、または両方で、検索領域(1302)と現在ブロック(1301)との間に存在し得る。
【0125】
II.1.5.第5例
図14は、マージ候補を検索する別の例を示す。示されるように、現在ブロック(1401)に隣接する検索領域(1402)は、
図12の例と同様に、現在ブロック(1401)の隣接領域で定義される。しかし、
図12の例とは異なり、検索領域(1402)は、現在ブロック(1401)から離れてシフトされる。例えば、ギャップ(1441)は、現在ブロック(1401)の上端、左側、または両方で、検索領域(1402)と現在ブロック(1401)との間に存在し得る。
【0126】
II.1.6.第6例
別の例では、マージされた候補の検索は、マージ候補リストが完全に満たされるまで、2ラウンドで実行されることができる。例えば、第1グリッドパターンは、第1ラウンドで使用され、2k×2kのサイズを有する(第1グリッドパターンから得られた検索ブロックが2k×2kのサイズを有することを意味する)。現在ブロックに隣接する第1検索領域は、第1グリッドパターンを使用して、第1検索ブロックに分割される。第2グリッドパターンは、第2ラウンドで使用される。第2グリッドパターンは、第1グリッドパターンと同様にすることができる。しかし、第2グリッドパターンに対応する第2検索領域は、第1検索領域の位置から離れてシフトされ、例えば、現在ブロックに対してK×Kのブロックだけ左上方向にシフトされる。検索の第1ラウンドおよび第2ラウンドは、それぞれ第1検索領域および第2検索領域で連続して実行されることができる。この2ラウンドの検索により、それぞれの検索ブロックに対応する候補位置の密度を高めることができる。
【0127】
II.1.7.第7例
図15は、マージ候補を検索する別の方法を示す。示されるように、現在ブロック(1501)に隣接する検索領域(1502)は定義される。様々な例では、検索領域(1502)は、現在ブロック(1501)と接触してもよく、または、現在ブロック(1501)から離れてシフトしてもよい。検索パターンは、検索領域(1502)の検索ブロックを検索するために定義される。この検索パターンは、矢印(1543~1545)によって示される複数のストリップ(1543~1545)を含むことができる。示されるように、各ストリップは、現在ブロック(1501)を囲むL字状を有する。異なる例では、各L字状のストリップのブロックのサブセットまたはすべてのブロックを検索することができる。
【0128】
一つの例では、L字状のストリップ(1543~1545)は、
図15に示されるように、左下から右上へ、そして最も近い隣接領域から最も遠い隣接領域への順序で検索されることができる。検索ブロックと交差している矢印(1543~1545)は、各ストリップでの走査方向を表している。
【0129】
別の例では、L字状のストリップ(1543~1545)は、右上から左下へ、そして最も近い隣接領域から最も遠い隣接領域への順序で検索されることができる。
【0130】
別の例では、L字状のストリップ(1543~1545)は、左下から右上へ、そして最も遠い隣接領域から最も近い隣接領域への順序で検索されることができる。
【0131】
別の例では、L字状のストリップ(1543~1545)は、右上から左下へ、そして最も遠い隣接領域から最も近い隣接領域への順序で検索されることができる。
【0132】
II.1.8.第8例
図16は、マージ候補を検索する別の例を示す。
図16に示される検索方法は、JVETおよびHEVCによって指定された方法への拡張であってもよい。示されるように、現在ブロック(1601)に隣接する検索領域(1602)は定義され、例えば、現在ブロック(1601)の左上隅のサンプル(0,0)に対する3つのペアの座標(-Offset_x,-Offset_y)、(Edge1_x,Edge1_y)および(Edge2_x,Edge2_y)で定義される。検索領域(1602)は、現在ブロック(1601)に直接隣接することができる。検索領域(1602)は、グリッドパターン(1603)を使用して検索ブロックに分割される。結果として得られる検索ブロックは、正方形または長方形の形状を有する場合がある。
【0133】
HEVCまたはJEM7では、空間的マージ候補は、
図16に示すように、検索ブロックA0、B0、C0、D0およびE0の第1セット内の候補位置A~Eの第1セットで検索されることができる。拡張によって、付加的な候補位置セットは導入され、現在ブロック(1601)の直接隣接領域から拡張された検索領域(1602)をカバーすることができる。具体的には、検索領域(1602)における候補位置は、現在ブロック(1601)の左側、上部および左上にある候補位置A~Eの第1セットに対して、左方向、上方向、左上方向に、それぞれ、現在ブロック(1602)に隣接している第1隣接領域(A0~C0を含む)から、現在ブロック(1602)に隣接しておらず、現在ブロック(1602)から1つの検索ブロックだけ離れた隣接領域(A1~C1およびA2~C2を含む)まで拡張される。候補位置の付加的なセットの中で、候補位置の第2セットは、検索ブロックA1、B1、C1、D1およびE1の第2セット内にあることができ、候補位置の第3セットは、検索ブロックA2、B2、C2、D2およびE2の第3セット内にあることができる。候補位置(または検索ブロック)の2つの付加的なセットが
図16に示されているが、検索領域(1602)およびグリッドパターン(1603)の定義に応じて、他の例では、候補位置(または検索ブロック)の3つ以上の付加的なセットを使用することができる。
【0134】
示されるように、検索ブロックの第1セットにおいて、検索ブロック(D0)は、現在ブロック(1601)の左下隅にある。検索ブロック(A0)は、現在ブロックの左側にあり、かつ、検索ブロック(D0)に隣接する。検索ブロック(C0)は、現在ブロックの右上隅にある。検索ブロック(B0)は、現在ブロックの上端にあり、かつ、検索ブロック(C0)に隣接する。検索ブロック(E0)は、現在ブロックの左上隅にある。
【0135】
示されるように、検索ブロックの第2セットにおいて、検索ブロック(D1)は検索ブロック(D0)の左側に隣接する。検索ブロック(A1)は、検索ブロック(A0)の左側に隣接する。検索ブロック(C1)は、検索ブロック(C0)の上端に隣接する。検索ブロック(B1)は、検索ブロック(B0)の上端に隣接する。検索ブロック(E1)は、検索ブロック(E0)の左上隅にある。
【0136】
各検索ブロックは、W×H個のサンプルのサイズを有することができる。検索ブロックを検索する場合、検索ブロック内のある位置でのサンプルの位置は、動きデータを取得するための候補位置として使用されることができる。サンプルの位置は、例えば、左上隅のサンプル、右下隅のサンプル、それぞれの検索ブロックの中心でのサンプルなどであってもよい。
【0137】
一例として、
図16に示されるように、候補位置A~Eは、4×4個のサンプルのサイズの小さいブロックによって表される。他の検索される検索ブロックA0~E0、A1~E1およびA2~E2での候補位置は、同様に、A(i,j)、B(i,j)、C(i,j)、D(i,j)およびe(i,j)で示される小さいブロックによって表されることもでき、ここで、iおよびjは、小さいブロック内のサンプルに対応する座標である。
【0138】
上記で定義された検索領域(1602)、および指定された検索ブロックまたは候補位置に基づいて、様々なスキャン(検索)順序は、マージ候補を検索するために使用されることができる。一つの例では、スキャン順序は、最も近い隣接領域から最も遠い隣接領域までであることができる。例えば、まず、検索ブロックA0~E0を検索し、その後、検索ブロックA1~E1を検索し、さらに、A2~E2を検索する。一つの例では、スキャン順序は、上記の例の逆にすることができる。また、異なる例では、各検索ブロックA0~E0、A1~E1、A2~E2のセット内のスキャン順序は、異なる例によって異なる場合がある。例えば、スキャン順序は、A(i,j)、B(i,j)、C(i,j)、D(i,j)、E(i,j)、または、A(i,j)、D(i,j)、B(i,j)、C(i,j)、E(i,j)、あるいは他の順序であってもよい。
【0139】
一つの例では、検索領域(1602)にわたる検索は、複数のラウンドで実行される。例えば、複数のラウンドの検索は、検索ブロックA0~C0を含む現在ブロック(1601)の最も近い隣接領域から、検索ブロックA2~D2を含む現在ブロック(1601)の最も遠い隣接領域まで実行されることができる。
【0140】
複数のラウンドの検索は、それぞれの候補リストが完全に満たされるまで継続的に実行されることができる。例えば、前のラウンドの検索が実行された後に、それぞれの候補リストが完全に満たされているかどうかが判定される。候補リストが完全に満たされていない場合、次のラウンドの検索は実行される。そうではない場合、複数のラウンドの検索プロセスは終了する。各ラウンドの検索の期間、マージ候補が利用可能であり、そして、それぞれの候補リストに追加されることが発見された場合、枝刈り(pruning)動作が実行される。例えば、追加されるマージ候補が(例えば、閾値に基づいて)すでに候補リストにある候補と同じかまたは類似している場合、この追加されるマージ候補は、候補リストに追加されなくてもよい。また、一つの例では、一つのラウンドの検索中に、候補リストが完全に満たされていることが発見された場合には、このラウンドの検索に対応する全てのマージ候補位置が検索される前に、このラウンドの検索を終了することができる。
【0141】
一つの例では、上述の、検索領域、検索ブロック、候補位置およびスキャン順序のスキームは、TMVP候補が時間的隣接ブロックで利用可能である場合、それぞれの検索ブロック内の時間的マージ候補(TMVPマージ候補)を検索するために適用されることもできる。
【0142】
さらに、上記の方法では、Offset_x、-Offset_y、Edge1_x、Edge1_y、Edge2_x、Edge2_y座標は、エンコーダ側からデコーダ側にシグナルで通知されることができ、または予め定義されることができる。
【0143】
II.1.9.動的検索構成を有する検索方法例
いくつかの例では、検索グリッドパターンは、動的に定義されることができる。1つの方法では、検索ブロックサイズは、それぞれの検索ブロック位置に依存する。例えば、検索領域内の異なるサブ領域では、検索ブロックサイズは異なることができる。例えば、
図12の例では、現在ブロック(1201)に対する左側のサブ領域(1233)は、より大きい検索ブロックサイズgrid_largeを有することができ、上端のサブ領域(1231)は、より小さい検索ブロックサイズgrid_smallを有することができる。別の例では、左側のサブ領域(1233)は、より小さい検索ブロックサイズgrid_smallを有することができ、上端のサブ領域(1231)は、より大きい検索ブロックサイズgrid_largeを有することができる。
【0144】
別の方法では、検索ブロックサイズは、現在ブロックサイズに依存する。例えば、現在ブロックサイズが閾値より大きい場合、検索ブロックサイズは、より大きいサイズgrid_largeである。現在ブロックサイズが閾値より小さい場合、検索ブロックサイズはより小さいサイズgrid_smallである。通常、処理中の画像は、画像の局所的な特性に従って適応的に符号化ブロックに分割される。したがって、詳細なテクスチャを有する領域は、より小さいサイズを有するブロックに分割されることができる一方、より少ないテクスチャを有する領域は、より大きいサイズを有するブロックに分割されることができる。結果として、より小さいブロックはより小さいブロックで囲まれる確率が比較的高いである一方、より大きいブロックはより大きいブロックで囲まれる確率が比較的高いである。したがって、現在ブロックに隣接する検索領域が与えられると、より小さい現在ブロックの隣接ブロックからの動きデータは、より大きい現在ブロックの隣接ブロックからの動きデータよりも、比較的高い密度を有することができる。この動きデータ分布プロパティに対応して、現在ブロックサイズに応じて検索ブロックサイズを調整することは、マージ候補検索の効率を向上させる。
【0145】
別の実施形態では、現在ブロックサイズが閾値より大きい場合、検索ブロックサイズは、より小さいサイズgrid_smallである。現在ブロックサイズが閾値より小さい場合、検索ブロックサイズは、より大きいサイズgrid_largeである。
【0146】
別の方法では、検索ブロックサイズは、現在スライスの時間的レベルに依存する。例えば、現在の時間的レベルがシグナルで表現された閾値または予め定義された閾値より大きい場合、現在ブロックの検索ブロックは、大きい値grid_largeを有することができる。現在の時間的レベルが予め定義された閾値またはシグナルで表現された閾値より小さい場合、現在ブロックの検索ブロックは、小さい値grid_smallを有することができる。
【0147】
別の実施形態では、現在の時間的レベルが閾値より大きい場合、現在ブロックの検索ブロックは、小さい値grid_smallを有することができる。現在の時間的レベルが閾値より小さい場合、現在ブロックの検索ブロックは、大きい値grid_largeを有することができる。
【0148】
別の方法では、検索ブロックサイズは、マージ候補リストに既に含まれている最初のN個のマージ候補に依存する。マージ候補の大部分が互いに類似している場合、例えば、マージ候補の動きベクトル間の平均値/最大値の差が閾値より小さい場合、検索ブロックサイズは、大きい値grid_largeであってもよい。検索範囲の左上隅の座標は(-offset_large,-offset large)であってもよい。マージ候補の大部分が類似していない場合、例えば、それらの動きベクトル間の平均値/最大値の差が閾値より大きい場合、検索ブロックサイズは、小さい値grid_smallであってもよい。検索範囲の左上隅の座標は(-offset_small,-offset small)であってもよい。この方法では、既にリストにある候補は、空間的候補A、B、C、D、Eおよび時間的候補TMVPであってもよく、または空間的候補A、D、C、D、Eのみであってもよいし、またはすでにリストにあるすべての候補であってもよい。
【0149】
別の方法では、すでにリストにあるマージ候補の動きベクトルの大部分が類似している動きベクトルの値を有する場合、例えば、それらの動きベクトル間の平均値/最大値の差が閾値より小さい場合、検索ブロックサイズは、小さい値grid_smallであってもよい。検索範囲の左上隅の座標は(-offset_small, -offset small)であってもよい。すでにリストにあるマージ候補の動きベクトルの大部分が互いに類似していない場合、例えば、それらの動きベクトル間の平均値/最大値の差が閾値より大きい場合、検索ブロックサイズは、大きい値grid_largeであってもよい。検索範囲の左上隅の座標は(-offset_large, -offset large)であってもよい。この方法では、すでにリストにある候補は、空間的候補A、B、C、D、Eおよび時間的候補TMVPであってもよく、または空間的候補A、D、C、D、Eのみであってもよいし、またはすでにリストにあるすべての候補であってもよい。
【0150】
別の方法では、検索グリッドパターンで分割された検索ブロックは、非正方形にすることができる。
【0151】
上記の方法では、Offset_xとoffset_yは違ってもよいし、同じでもよい。検索範囲は、正方形または非正方形にすることができる。
【0152】
いくつかの例では、(検索領域に対応する)検索範囲は、動的であってもよい。1つの方法では、検索範囲は、検索ブロック位置に依存する。例えば、左側のサブ領域は、より大きい検索範囲offset_largeを有することができ、上端のサブ領域は、より小さい検索範囲offset_smallを有することができる。検索範囲の左上隅の座標は(-offset_large,-offset small)であってもよい。別の方法では、左側のサブ領域は、より小さい検索範囲offset_smallを有することができ、上端のサブ領域は、より大きい検索ブロックサイズoffset_largeを有することができる。検索範囲の左上隅の座標は(-offset_small,-offset large)であってもよい。
【0153】
別の方法では、検索範囲は、現在ブロックサイズに依存する。現在ブロックサイズが閾値より大きい場合、検索範囲は、大きいサイズoffset_largeである。検索範囲の左上隅の座標は(-offset_large,-offset_large)であってもよい。現在ブロックサイズが閾値より小さい場合、検索範囲は、小さいサイズoffset_smallである。検索範囲の左上隅の座標は(-offset_small,-offset small)であってもよい。
【0154】
別の実施形態では、現在ブロックサイズが閾値より大きい場合、検索範囲は、より小さいサイズoffset_smallである。検索範囲の左上隅の座標は(-offset_small,-offset small)であってもよい。現在ブロックサイズが閾値より小さい場合、検索範囲は、より大きいサイズoffset_largeである。検索範囲の左上隅の座標は(-offset_large,-offset large)であってよい。
【0155】
別の方法では、検索範囲は、現在の時間的レベルに依存する。現在の時間的レベルが閾値より大きい場合、現在ブロックの検索範囲は、大きい値offset_largeを有することができる。検索範囲の左上隅の座標は(-offset_large,-offset large)であってもよい。現在の時間的レベルが閾値より小さい場合、現在ブロックの検索範囲は、小さい値offset_smallを有することができる。検索範囲の左上隅の座標は(-offset_small,-offset small)であってもよい。
【0156】
別の実施形態では、現在の時間的レベルが閾値より大きい場合、現在ブロックの検索範囲は、小さい値offset_smallを有することができる。検索範囲の左上隅の座標は(-offset_small,-offset small)であってもよい。現在の時間的レベルが閾値より小さい場合、現在ブロックの検索範囲は、大きい値offset_largeを有することができる。検索範囲の左上隅の座標は(-offset_large,-offset large)であってもよい。
【0157】
別の方法では、すでに候補リストにあるマージ候補はソートされることができる。そして、エンコーダおよびデコーダは、既存のマージ候補に従って、MV候補の範囲の境界を見つけることができる。一例では、MVmin-x、MVmin-y、Mvmax-xおよびMVmax-yは、以下のように定義される。即ち、
MVmin-x=min(MVAx,MVBx,MVCx,MVDx,MVEx)、
MVmin-y=min(MVAy,MVBy,MVCy,MVDy,MVEy)、
MVmax-x=max(MVAx,MVBx,MVCx,MVDx,MVEx)および
MVmax-y=max(MVAy,MVBy,MVCy,MVDy,MVEy)
ここで、MVA、MVB、MVC、MVDおよびMVEは、候補位置A、B、C、D、およびEでスケーリングされた動きベクトル候補であり、スケーリングは、初期参照画像から目標参照画像に動きベクトルをスケールすることであり、目標参照画像は、例えば、現在参照リスト内の、参照インデックス0を有する参照画像とすることができる。スケーリングは、TMVPを導出する際に使用される同じスケーリング方法に基づくことができる。そして、MVmin-x、MVmin-y、MVmax-xおよびMVmax-yは、リスト内の既存の候補の範囲の境界として機能する。
【0158】
次に、マージ候補のMVが分布する座標系において、MV検索範囲は、リスト内の既存の候補の範囲の境界に基づいて定義される。例えば、水平方向では、MV検索範囲は、MVmin-xとMVmax-xの間であり、垂直方向では、MV検索範囲は、MVmin-yとMVmax-yの間である。MV検索範囲は、異なるサブ領域で同じ大きさまたは異なるサイズを有することができる検索ブロックに分割される。各検索ブロックについては、インデックス番号が割り当てられ、代表的なMVが定義される。例えば、代表的なMVは、現在検索ブロックの左上隅のベクトル値として定義されることができる。エンコーダは、MV検索範囲内のすべての検索ブロックのMVをチェックして、最適なMVを見つけて、関連付けられたインデックスをデコーダにシグナルで通知することができる。インデックスのシグナリングは、マージインデックスのシグナリングと同じにすることができる。
【0159】
II.2.マージ候補リストにおけるマージ候補の位置
本明細書に開示されたマージ候補検索方法から得られたマージ候補は、例えば、検索領域が候補位置A~Eにオーバーラップする可能性があるため、
図8の例で説明したように、候補位置A、B、C、DおよびEでのマージ候補を含むことができる。したがって、候補位置A~Eで利用可能なマージ候補以外のマージ候補は、候補位置A~Eでのマージ候補と区別するために、拡張マージ候補と呼ばれ。いくつかの例では、拡張マージ候補は、空間的マージ候補のみを含む。他の例では、拡張マージ候補は、空間的マージ候補に加えて、時間的マージ候補(TMVP)などのような他のタイプのマージ候補を含むことができる。HEVCまたはJEM7で指定されている、拡張マージ候補を既存のマージ候補リストに追加するための様々な順序を以下に説明する。
【0160】
一例では、拡張マージ候補は、すべての既存のマージ候補(例えば、空間的マージ候補(A、B、CおよびD)、サブCUマージ候補(ATMVP、STMVP)、空間的マージ候補(E)(リスト内のマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、組み合わせられた双方向予測候補とゼロ動きベクトル候補)の後に、マージ候補リストの末尾に追加されることができる。
【0161】
別の例では、それらの拡張されたマージ候補は、空間的マージ候補の後に挿入されることができる。例えば、マージ候補順序は、空間的マージ候補(A、B、CよびD)、拡張されたマージ候補、サブCUマージ候補(ATMVP、STMVP)、空間的マージ候補(E)(リスト内のマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、組み合わせられた双方向予測候補とゼロ動きベクトル候補にすることができる。
【0162】
別の例では、それらの拡張されたマージ候補は、時間的マージ候補(TMVP)の後に挿入されることができる。例えば、マージ候補順序は、空間的マージ候補(A、B、CおよびD)、サブCUマージ候補(ATMVP、STMVP)、空間的マージ候補(E)(リスト内のマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、拡張されたマージ候補、組み合わせられた双方向予測候補とゼロ動きベクトル候補にすることができる。
【0163】
他の例では、それらの拡張されたマージ候補は、TMVPの後に挿入されることができ、また、位置Eでのマージ候補が利用可能な場合、常に位置Eでのマージ候補が挿入される。例えば、マージ候補順序は、空間的マージ候補(A、B、CおよびD)、サブCUマージ候補(ATMVP、STMVP)、空間的マージ候補(E)、時間的マージ候補(TMVP)、拡張されたマージ候補、組み合わせられた双方向予測候補とゼロ動きベクトル候補にすることができる。
【0164】
他の例では、それらの拡張マージ候補は、STMVPの後に挿入されることができる。マージ候補順序は、空間的マージ候補(A、B、CおよびD)、サブCUマージ候補(ATMVP、STMVP)、拡張されたマージ候補、空間的マージ候補(E)(リスト内のマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、組み合わせられた双方向予測候補とゼロ動きベクトル候補にすることができる。
【0165】
別の例では、それらの拡張されたマージ候補は、ATMVPの後に挿入されることができる。マージ候補順序は、空間マージ候補(A、B、CおよびD)、第1サブCUマージ候補(ATMVP)、拡張されたマージ候補、第2サブCUマージ候補(STMVP)、空間的マージ候補(E)(リスト内のマージ候補が6つ未満である場合)、時間的マージ候補(TMVP)、組み合わせられた双方向予測候補とゼロ動きベクトル候補にすることができる。
【0166】
拡張されたマージ候補をマージ候補リストに挿入する順序は、多くの種類を有することができることに留意されたい。上記の例は、マージ候補リストを作成する可能性のサブセットにすぎない。拡張されたマージ候補を挿入する他の方法も同様に導出されることができる。
【0167】
II.3.候補リスト枝刈り
マージ候補を候補リストに追加する場合、枝刈り動作を実行することで、冗長マージ候補を候補リストに追加しないようにするか、または類似のマージ候補をマージ候補リストに追加しないようにすることができる。このようにして、マージ候補リストを作成する場合、より多様なマージ候補を取得することができる。(例えば、レート歪み性能に関して)より良いマージ候補は、そのような候補リストから選択されることができる。
【0168】
一つの方法では、枝刈り動作は、無損失性の枝刈り操作であってもよい。それらの拡張されたマージ候補をマージ候補リストに挿入する場合、エンコーダまたはデコーダは、すでにリストにある既存の候補と新しい候補を比較することができ、すでにリストにある既存のマージ候補とは異なる新しいマージ候補をリストに追加することができる。
【0169】
他の方法では、枝刈り動作は、損失性の枝刈り動作であってもよい。それらの拡張されたマージ候補をマージ候補リストに挿入する場合、エンコーダまたはデコーダは、すでにリストにある既存の候補と新しい候補を比較する。新しい候補と既存の候補との間の差が閾値より大きい場合、エンコーダまたはデコーダは、新しい候補を候補リストに挿入する。例えば、差は、ベクトル操作に基づく、追加される動きベクトルと、既存の動きベクトルとの間の差の絶対値であってもよい。一つの例では、閾値は、正の整数(例えば、4、8、12、16など)であってもよく、シーケンスパラメータセット(SPS)レベル、画像パラメータセット(PPS)レベル、またはスライスヘッダで、予め定義されることができ、またはシグナルで表現されることができる。SPS又はPPSでの詳細な信号は、本発明の後段で説明される。
【0170】
マージ候補の動きデータが記憶される場合、それぞれの動きベクトル解像度は、HEVCにおける1/4画素精度(pel precision)または整数画素精度であることができる。JEMでは、動きベクトル解像度は、付加的な4画素動きベクトル精度を有することができる。拡張されたマージ候補を追加するための枝刈り操作を実行する場合、比較は、1/4画素精度、整数精度、または4画素精度の下にあることができる。
【0171】
新しい候補ベクトルを既存の候補ベクトルと比較するための例示的な枝刈りプロセスは、以下のステップを含むことができる。まず、新しいベクトルと既存のベクトルが同じ参照画像インデックスに関連付けられているかどうかは最初に決定される。新しいベクトルと既存のベクトルが同じ参照画像インデックスに関連付けられていない場合は、それらが異なると判断され、新しい候補ベクトルを候補リストに追加することができる。そうでなければ、更なるステップは、新しいベクトルと既存のベクトルとの差を閾値と比較するために実行される。例えば、新しいベクトルと既存のベクトルとの差の大きさを導出して閾値と比較することができる。差分が閾値より大きい場合、新しいベクトルを候補リストに追加することができる。そうでなければ、新しいベクトルは候補リストに追加されない。閾値がゼロに選択された場合、上記の枝刈りプロセスは、無損失性の枝刈りである。閾値がゼロより大きい場合、上記の枝刈りプロセスは、損失性のプロセスである。
【0172】
III.マージモードの符号化/復号およびシグナリング
III.1.マージインデックスの二値化およびコンテキストモデリング
一つの例では、M(例えば、Mは6である)を超えるマージインデックスは、一元のプレフィックス(unary prefix)で符号化され、残りのビンは、固定長で符号化されることができる。
図17は、最大インデックスが23である場合のマージインデックスを符号化するためのコードワードの例を示す。示されるように、最初の7つのインデックスは、一元のコードワードで符号化される。残りの16個のインデックスは、一元のプレフィックスで符号化され、長さが4つのビンである。
【0173】
別の例では、
図18に示すように、二値化を変更することができる。1つのビンは、インデックスがM(例えば、Mは6である)を超えるかどうかを示す。0からMまでのインデックスの残りのビンは、依然として一元符号化される。M+1から最後までのインデックスの残りのビンは、固定長で符号化される。
【0174】
別の例では、一元のコードワードは、付加的なインデックス(mを超えるインデックス)に拡張されることができる。
【0175】
一つの例では、マージインデックスのビンは、コンテキスト符号化されることができる。別の例では、一元の部分はコンテキスト符号化され、固定長の部分は、バイパス符号化される。別の例では、各ビンは、1つのコンテキストを使用する。別の例では、各ビンは、複数のコンテキストを使用することができる。別の例では、いくつかのビンは、1つのコンテキストを共有することができる。
【0176】
III.2.シーケンスパラメータセット(SPS:Sequence Parameter Set)を用いたマージモードのシグナリング
一つの例では、本明細書で説明されたマージモード方式を制御するために、いくつかのシーケンスレベルパラメータが導入される。例えば、拡張されたマージ候補を検索するための検索領域を定義するために、1つ以上のオフセットが指定される。上記の例では、Offset_xがOffset_yに等しい場合、1つの構文要素merge_candidate_search_offsetがシグナリングされる。Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックサイズも、SPSパラメータによって指定される。検索ブロックが正方形である場合、検索ブロックの辺の長さを示す1つの構文要素merge_candidate_search_gridは、シグナリングされる。枝刈り閾値もSPSで指定され、1つの構文要素merge_pruning_thresholdは、SPSでシグナリングされる。
【0177】
構文表の例が
図19に示されている。示されるように、パラメータmerge_candidate_search_offset、merge_candidate_search_gridおよびmerge_pruning_thresholdは、SPSの最後に含まれる。
【0178】
別の例では、Offset_xがOffset_yに等しくない場合、2つの構文要素merge_candidate_search_offset_xおよびmerge_candidate_search_offset_yは、シグナリングされる。Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックが正方形ではない場合、2つの構文要素、すなわち、検索ブロックの幅を示す構文要素merge_candidate_search_grid_widthと、検索ブロックの高さを示すmerge_candidate_search_grid_heightとは、シグナリングされる。枝刈り閾値もSPSで指定される。例えば、1つの構文要素merge_pruning_thresholdは、SPSでシグナリングされる。
【0179】
例示的な構文表が
図20に示されている。示されるように、パラメータmerge_candidate_search_offset_x、merge_candidate_search_offset_y、merge_candidate_search_grid_width、merge_candidate_search_grid_heightおよびmerge_pruning_thresholdは、SPSの最後に示される。
【0180】
別の例では、Offset_xがOffset_yに等しくない場合、検索ブロックは、正方形にすることもできる。この場合、検索ブロックサイズのための1つの構文要素のみは、シグナリングされる。
【0181】
別の例では、Offset_xがOffset_yに等しい場合、検索ブロックは、非正方形にすることができる。
【0182】
別の例では、上記の要素は、それらの対数によって、シグナリングされることができる。上記の方法では、Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックサイズは、4、8、16、32、48、64、80、96などのような正の整数にすることができる。枝刈り閾値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。
【0183】
III.3.画像パラメータセット(PPS:Picture Parameter Set)を用いたマージモードのシグナリング
いくつかの実施例では、本明細書で説明されたマージモード方式を制御するために、いくつかの画像レベルパラメータが導入される。例えば、拡張されたマージ候補を検索するための検索領域を定義するために、1つ以上のオフセットが指定される。上記の例では、Offset_xがOffset_yに等しいときに、1つの構文要素merge_candidate_search_offsetがシグナリングされる。Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックサイズも、PPSパラメータによって指定される。分割された検索ブロックが正方形である場合、検索ブロックの辺の長さを示す1つの構文要素merge_candidate_search_gridは、シグナリングされる。枝刈り閾値もPPSで指定され、1つの構文要素merge_pruning_thresholdは、PPSでシグナリングされる。
【0184】
構文表の例が
図21に示されている。示されるように、パラメータmerge_candidate_search_offset、merge_candidate_search_gridおよびmerge_pruning_thresholdは、PPSの最後に含まれる。
【0185】
別の例では、Offset_xがOffset_yに等しくない場合、2つの構文要素merge_candidate_search_offset_xおよびmerge_candidate_search_offset_yは、シグナリングされる。Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックサイズも、PPSによって指定される。検索ブロックが正方形ではない場合、2つの構文要素、すなわち、検索ブロックの幅を示す構文要素merge_candidate_search_grid_widthと、検索ブロックの高さを示すmerge_candidate_search_grid_heightとは、シグナリングされる。枝刈り閾値もPPSで指定される。例えば、1つの構文要素merge_pruning_thresholdは、PPSでシグナリングされる。
【0186】
例示的な構文表が
図22に示されている。示されるように、パラメータmerge_candidate_search_offset_x、merge_candidate_search_offset_y、merge_candidate_search_grid_width、merge_candidate_search_grid_heightおよびmerge_pruning_thresholdは、PPSの最後に示される。
【0187】
別の例では、Offset_xがOffset_yに等しくない場合、検索ブロックは、正方形にすることもできる。この場合、検索ブロックサイズのための1つの構文要素のみはシグナリングされる。
【0188】
別の例では、上記の要素は、それらの対数によって、シグナリングされることができる。上記の方法では、Offset_xまたはOffset_yの値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。検索ブロックサイズは、4、8、16、32、48、64、80、96などのような正の整数にすることができる。枝刈り閾値は、4、8、16、32、48、64、80、96などのような正の整数にすることができる。
【0189】
III.4.スライスレベルマージモードのシグナリング
いくつかの例では、シーケンスレベルまたは画像レベルで導入されたパラメータと同様のパラメータは、スライスレベルでシグナリングされることができる。例えば、スライスレベルパラメータは、スライスヘッダに含まれ、エンコーダ側からデコーダ側にシグナリングされる。スライスレベルのマージモードパラメータの記述は、簡略化のために省略される。
【0190】
IV.マージモードを用いたビデオ符号化/復号の例示的なプロセス
図23は、本発明の実施形態による、マージモードを用いたビデオ符号化/復号の例示的なプロセス(2300)を示す。プロセス(2300)は、エンコーダ側またはデコーダ側で実行されることができる。プロセスでは、マージ候補を検索することは、現在ブロックに直接隣接していない領域と、現在ブロックと接触している領域とをカバーする拡張された検索領域にわたって実行されることができる。このようにして、マージ候補は、現在ブロックに直接隣接する符号化ブロックおよび現在ブロックから離れて分散している符号化ブロックで見つけられることができる。マージ候補の位置が現在ブロックのエッジの近くにあるHEVCまたはJEM7と比較して、拡張された検索領域は、より多くのマージ候補の選択肢を提供することができる。したがって、潜在的により良いマージ候補は、それぞれの候補リストから決定されることができる。プロセス(2300)は、S2301から開始して、S2310へ進むことができる。
【0191】
S2310では、ブロックサイズを有する現在ブロックを受信する。処理中の画像は、ツリー構造に基づく分割スキームに従って、符号化/復号ブロックに分割されることができる。符号化/復号ブロックの大きさは、異なる領域の局所特性(テクスチャ)に応じて適応的に調整されることができる。したがって、画像の異なる位置で、符号化/復号ブロックは、異なるサイズを有することができる。
【0192】
S2320では、現在ブロックのブロックサイズに応じて、検索ブロックサイズを決定する。例えば、ブロックサイズが大きい場合は、検索ブロックサイズを大きくすることができ、ブロックサイズが小さい場合は、検索ブロックサイズを小さくすることができる。例えば、検索ブロックサイズの閾値は、どの検索ブロックサイズが使用されるかを決定するために使用されることができる。検索ブロックサイズを適応的に調整することは、マージ候補の検索効率を向上させることができる。例えば、現在ブロックがより詳細なテクスチャを含む領域内にある場合、現在ブロックは、より小さいサイズを有することができ、現在ブロックの隣接領域におけるブロックは、より小さいサイズを有することができる。このシナリオに対応して、より小さい検索ブロックサイズを使用すると、検索でより多様なマージ候補を捕捉することができる。対照的に、少ない詳細内容を有する領域では、現在ブロックおよびその隣接ブロックは、大きいサイズを有することができ、また、異なる動きデータは、疎らに分布することができる。従って、不要な検索動作を回避するために、より大きい検索ブロックサイズを使用することができる。
【0193】
S2330では、S2320で決定された検索ブロックサイズに応じて、グリッドパターンを設定または決定することができる。グリッドパターンは、現在ブロックに隣接する検索領域を検索ブロックに分割する。各検索ブロックは、マージ候補位置を示すかまたはそれに対応することができる。例えば、動きデータを得るための候補位置は、それぞれの検索ブロック内の任意のサンプルの位置であってよい。候補位置は、左上隅のサンプルの位置、右下隅のサンプルの位置などであってもよい。あるいは、HEVCと同様に、最小許容ブロックのサイズ以下のサイズを有するブロックは、検索ブロック内の候補位置を示すために使用されることができる。
【0194】
S2340では、検索ブロックを検索して、それぞれの候補位置で利用可能なマージ候補を見つけて候補リストを作成する。様々な検索方式または順序を使用することができる。いくつかの例では、すべての検索ブロックが検索される。いくつかの例では、
図16に示すように、予め決定された候補位置を含む検索ブロックのサブセットが検索される。候補リストを作成する場合、マージ候補を候補リストに挿入する様々な方法を採用することができる。例えば、候補リスト内の特定の位置は、拡張されたマージ候補を追加するために使用されることができる。すでにリストにあるマージ候補に類似していないマージ候補はマージ候補リストに追加されることができる一方、類似しているマージ候補は、マージ候補リストに追加されていない。候補リストは、後続の動作で使用されることができる。プロセス2300は、S2399に進み、S2399で終了することができる。
【0195】
上記の技術は、コンピュータ読み取り可能な命令を使用するコンピュータソフトウェアとして実現され、また、物理的に1つ以上のコンピュータ読み取り可能な媒体に記憶されることができる。例えば、
図24は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(2400)を示す。
【0196】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用して符号化されることができ、アセンブリ、コンパイル、リンク、または同様のメカニズムを受けて命令を含むコードを作成することができ、命令は、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に実行されてもよく、またはコード解釈、マイクロコード実行などによって実行されてもよい。
【0197】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0198】
図24に示されるコンピュータシステム(2400)のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム(2400)の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0199】
コンピュータシステム(2400)は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、触覚入力(例えば、キーストローク、スイープ、データグローブの動きなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連されているとは限らない、特定のメディアを捕捉するために使用されることができる。
【0200】
ヒューマンインターフェース入力デバイスは、キーボード(2401)、マウス(2402)、トラックパッド(2403)、タッチスクリーン(2410)、データグローブ(図示せず)、ジョイスティック(2405)、マイクロホン(2406)、スキャナ(2407)、カメラ(2408)(それぞれの1つだけが図示された)のうちの1つまたは複数を含むことができる。
【0201】
コンピュータシステム(2400)はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2410)、データグローブ(図示せず)またはジョイスティック(2405)による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ(2409)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2410)であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよいし、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、例えば、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0202】
コンピュータシステム(2400)は、CD/DVDを有するCD/DVD ROM/RW(2420)を含む光学媒体または類似の媒体(2421)、サムドライブ(2422)、リムーバブルハードドライブまたはソリッドステートドライブ(2423)、テープおよびフロッピーディスク(図示せず)などのようなレガシー磁気媒体、セキュリティドングル(図示せず)などのような特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0203】
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0204】
コンピュータシステム(1300)はまた、一つ以上の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光学的であってもよい。ネットワークはさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM(登録商標)、3G、4G、5G、LTEなど)などのLAN、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用および産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(2449)(例えば、コンピュータシステム(2400)のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステム(2400)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2400)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、Canbusから特定のCanbusデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上記のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
【0205】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2400)のコア(2440)に接続されることができる。
【0206】
コア(2440)は、1つ以上の中央処理ユニット(CPU)(2441)、グラフィック処理ユニット(GPU)(2442)、フィールドプログラマブルゲートアレイ(FPGA)(2443)の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器(2444)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2445)、ランダムアクセスメモリ(2446)、例えば内部の非ユーザアクセスハードディスクドライブ、SSDなどの内部大容量ストレージ(2447)などとともに、システムバス(2448)を介して接続されてもよい。いくつかのコンピュータシステムでは、付加的なCPU、GPUなどによって拡張を可能にするために、システムバス(2448)に1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス(2448)に直接的に接続されてもよく、または周辺バス(2449)によって接続されてもよい。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI)、汎用シリアルバス(USB)などを含む。
【0207】
CPU(2441)、GPU(2442)、FPGA(2443)、および加速器(2444)は、いくつかの命令を実行することができ、これらの命令を組み合わせて上述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(2445)またはRAM(2446)に記憶されることができる。また、一時的なデータは、RAM(2446)に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ(2447)に記憶されることができる。1つ以上のCPU(2441)、GPU(2442)、大容量ストレージ(2447)、ROM(2445)、RAM(2446)などと密接に関連することができる、キャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能となる。
【0208】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
【0209】
限定ではなく例として、アーキテクチャ(2400)、特にコア(2440)を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサとして機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上記のユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ(2447)またはROM(2445)などの、不揮発性コア(2440)を有する特定のストレージであってもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(2440)によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア(2440)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2446)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、本明細書に説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤードされているか、または別の方法で回路(例えば、アクセラレータ(2444))に組み込まれているため、機能を提供することができ、この回路は、ソフトウェアの代わりに動作し、またはソフトウェアと一緒に動作して、本明細書に説明された特定のプロセスの特定のプロセスまたは特定の部分を実行することができる。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行されるソフトウェアを記憶する回路(集積回路(IC)など)を含み、実行されるロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
【0210】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、配置、および様々な均等置換が存在している。したがって、当業者は、本明細書では明確に示されていないかまたは説明されていないが、本開示の原則を具現しているので、本開示の精神および範囲内にある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
【0211】
付録A:頭字語
MV:Motion Vector、動きベクトル
HEVC:High Efficiency Video Coding、高効率ビデオ符号化/復号
SEI:Supplementary Enhancement Information、補足強化情報
VUI:Video Usability Information、ビジュアルユーザビリティ情報
GOPs:Groups of Pictures、画像のグループ
TUs:Transform Units、変換ユニット
PUs:Prediction Units、予測ユニット
CTUs:Coding Tree Units、符号化ツリーユニット
CTBs:Coding Tree Blocks、符号化ツリーブロック
PBs:Prediction Blocks、予測ブロック
HRD:Hypothetical Reference Decoder、仮想参照デコーダ
SNR:Signal Noise Ratio、信号雑音比
CPUs:Central Processing Units、中央処理ユニット
GPUs:Graphics Processing Units、グラフィック処理ユニット
CRT:Cathode Ray Tube、陰極線管
LCD:Liquid-Crystal Display、液晶ディスプレイ
OLED:Organic Light-Emitting Diode、有機発光ダイオード
CD:Compact Disc、コンパクトディスク
DVD:Digital Video Disc、デジタルビデオディスク
ROM:Read-Only Memory、読み取り専用メモリ
RAM:Random Access Memory、ランダムアクセスメモリ
ASIC:Application-Specific Integrated Circuit、特定用途向け集積回路
PLD:Programmable Logic Device、プログラマブルロジックデバイス
LAN:Local Area Network、ローカルエリアネットワーク
GSM:Global System for Mobile communications、モバイル通信のグローバルシステム
LTE:Long-Term Evolution、ロングターム絵簿リュション
CANBus:Controller Area Network Bus、コントローラエリアネットワークバス
USB:Universal Serial Bus、汎用シリアルバス
PCI:Peripheral Component Interconnect、周辺コンポーネント相互接続
FPGA:Field Programmable Gate Areas、フィールドプログラマブルゲートアレイ
SSD:solid-state drive、ソリッドステートドライブ
IC:Integrated Circuit、集積回路
CU:Coding Unit、符号化ユニット