(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
具体的な実装では、ビデオ復号器は、現在のブロックでのビットストリームから初期動きベクトル予測子を復号し、小さい探索ウィンドウ内で動き検索を実行して、この初期動きベクトル予測子を改良してもよい。初期動きベクトルは、改良する前に丸め処理してもよい。動き改良は、現在のブロックの画素と隣接ブロックの画素との間の不連続性尺度に基づくことができ、また、現在ブロックと隣接ブロックとの間の勾配に基づくこともできる。次いで、現在のブロックでの動きベクトルは、改良済み動きベクトル予測子、及び、もしあれば動きベクトル差分に基づいて復号される。動き改良は、現在のブロックでの動きベクトルに直接実行することもできる。動き改良を通して、復号器は、動き解像度を上げることができる。対応するビデオ符号器は、符号器の決定に基づいて、動き改良を使用するかどうかを選択してもよい。
前記第2動きベクトルが、(1)前記現在のブロックについて予測と、前記現在のブロックに隣接する復号済みブロックとの間の不連続性と、(2)前記予測ブロック及び前記復号済みのブロックのうちの一方での勾配とのうちの一方に基づいて決定される、請求項1に記載の方法、又は請求項2に記載の装置。
前記動きベクトル予測子が、前記現在のブロックに隣接する復号済みブロックの少なくとも2つの動きベクトルの平均値に基づく、請求項1若しくは3〜5のいずれか一項に記載の方法、又は請求項2〜5のいずれか一項に記載の装置。
前記1つ又は複数の位置が、前記第1解像度及び前記第2解像度に基づいて決定される、請求項1若しくは3〜6のいずれか一項に記載の方法、又は請求項2〜6のいずれか一項に記載の装置。
複数の動きベクトル予測子がアクセスされ、前記アクセスすること、前記探索すること、及び前記決定することが、前記複数の動きベクトル予測子のそれぞれに対応して実行されて、複数の第2動きベクトルを形成し、前記複数の第2動きベクトルのうちの一つが選択されて、前記現在のブロックを符号化する、請求項8に記載の方法、又は請求項9に記載の装置。
前記決定することが、(1)前記現在のブロックについて予測と、前記現在のブロックに隣接する再構成済みブロックとの間の不連続性と、(2)前記予測ブロック及び前記再構成済みブロックのうちの一方での勾配とのうちの一方に基づく、請求項8若しくは10に記載の方法、又は請求項9若しくは10に記載の装置。
前記動きベクトル予測子が、前記現在のブロックに隣接する再構成済みブロックの少なくとも2つの動きベクトルの平均値に基づく、請求項8若しくは10〜13のいずれか一項に記載の方法、又は請求項9〜13のいずれか一項に記載の装置。
前記1つ又は複数の位置が、前記第1解像度及び前記第2解像度に基づいて決定される、請求項8若しくは10〜14のいずれか一項に記載の方法、又は請求項9〜14のいずれか一項に記載の装置。
【発明を実施するための形態】
【0014】
図1には、例示的なHEVC(高効率ビデオ符号化)符号器100が示してある。1つ又は複数の画像でビデオ・シーケンスを符号化するために、画像を1つ又は複数のスライスに分割し、ここで各スライスは、1つ又は複数のスライス・セグメントを含むことができる。スライス・セグメントは、符号化ユニット、予測ユニット、及び変換ユニットに編成される。
【0015】
HEVC仕様書では「ブロック」と「ユニット」が区別されており、ここで「ブロック」は、サンプル・アレイ内の特定領域(たとえば、輝度Y)を扱い、「ユニット」は、符号化されたすべての色成分(Y、Cb、Cr、又はモノクローム)、シンタックス要素、及びこのブロックに関連付けられる予測データ(たとえば、動きベクトル)を含む。
【0016】
符号化するために、画像が、構成可能なサイズを有する正方形状の符号化ツリー・ブロック(CTB)に分割され、符号化ツリー・ブロックの連続したセットが、スライスにグループ化される。符号化ツリー・ユニット(CTU)が、符号化済み色成分のCTBを含む。CTBは、符号化ブロック(CB)への4分木分割するルートであり、符号化ブロックは、1つ又は複数の予測ブロック(PB)に分割され、変換ブロック(TB)への4分木分割のルートを形成する。符号化ブロック、予測ブロック、及び変換ブロックに対応して、符号化ユニット(CU)は、予測ユニット(PU)及び変換ユニット(TU)のツリー構造セットを含み、PUはすべての色成分についての予測情報を含み、TUは、各色成分についての残差符号化シンタックス構造を含む。輝度成分のCB、PB、及びTBのサイズは、対応するCU、PU、及びTUに当てはまる。本出願では、用語「ブロック」を使用して、CTU、CU、PU、TU、CB、PB、及びTBのいずれも指すことができる。更に、「ブロック」を使用して、H.264/AVC又は他のビデオ符号化規格に指定されているように、マクロブロック、パーティション、及びサブブロックを指すこともでき、より一般には、様々なサイズのデータのアレイを指すこともできる。
【0017】
例示的な符号器100では、以下に述べるような符号器要素によって画像が符号化される符号化される画像は、CUのユニットで処理される。各CUは、イントラ・モード又はインター・モードのいずれかを使用して符号化される。CUがイントラ・モードで符号化されるとき、イントラ予測(160)を実行する。インター・モードでは、動きの推定(175)及び補償(170)が実行される。符号器は、CUを符号化するのにイントラ・モード又はインター・モードのうちいずれを使用するかを決定し(105)、予測モード・フラグによってイントラ/インターの決定を示す。元の画像ブロックから予測済みブロックを差し引くこと(110)によって、予測残差が計算される。
【0018】
同じスライス内の復元済みの隣接サンプルから、イントラ・モードでのCUが予測される。DC、平面、及び33の角度予測モードを含む、35のイントラ予測モードのセットがHEVCで利用可能である。現在のブロックに隣接する横列及び縦列から、イントラ予測基準が復元される。この基準は、これまでに復元したブロックから利用可能なサンプルを使用して、水平方向及び垂直方向にブロック・サイズの2倍にわたって延在する。イントラ予測において角度予測モードが使用されると、この角度予測モードによって指示される方向に沿って基準画素をコピーすることができる。
【0019】
2つの異なる選択肢を使用して、現在のブロックについての適用可能な輝度イントラ予測モードを符号化することができる。3つの最も可能性の高いモード(MPM)の構成済みリストに適用可能なモードが含まれる場合、このMPMリスト内のインデックスによってモードが信号伝送される。そうでなければ、モード・インデックスの固定長の2値化によってモードが信号伝送される。この3つの最も可能性の高いモードは、上端左側の隣接ブロックのイントラ予測モードから得られる。
【0020】
インターCUでは、対応する符号化ブロックが、1つ又は複数の予測ブロックに更に分割される。インター予測がPBレベルで実行され、対応するPUは、インター予測がどのように実行されるかについての情報を含む。
【0021】
動き情報(すなわち、動きベクトル及び基準インデックス)は、2つの方法、すなわち「マージ・モード」及び「高度動きベクトル予測(AMVP)」で信号伝送することができる。
【0022】
マージ・モードでは、ビデオ符号器又はビデオ復号器が、既に符号化されたブロックに基づいて候補リストを組み立て、ビデオ符号器が、この候補リスト内の候補のうちの1つについてのインデックスを信号伝送する。復号器側では、信号伝送された候補に基づいて、動きベクトル(MV)及び基準画像インデックスが復元される。
【0023】
マージ・モードでの実現可能な候補のセットは、空間隣接候補、時間候補、及び生成済み候補からなる。
図2Aには、現在のブロック210における5つの空間候補{a
1、b
1、b
0、a
0、b
2}の各位置が示してある。それぞれの候補位置において、a
1、b
1、b
0、a
0、b
2の順序に従って可用性が検査され、次いで候補の冗長性が排除される。
【0024】
マージ候補の最大数Nは、スライス・ヘッダで指定される。マージ候補の数がNよりも大きい場合、最初のN−1の空間候補及び時間候補のみが使用される。そうではなく、マージ候補の数がNよりも小さい場合は、各候補のセットが最大数Nまで満たされる。
【0025】
AMVPでは、既に符号化されたブロックから決定される動きベクトルに基づいて、ビデオ符号器又はビデオ復号器が候補リストを組み立てる。次いで、ビデオ符号器は、候補リスト内のインデックスを信号伝送して、動きベクトル予測子(MVP)を識別し、動きベクトル差分(MVD)を信号伝送する。復号器側では、動きベクトル(MV)が、MVP+MVDとして復元される。
【0026】
AMVPでは、2つの空間動き候補だけが選択される。第1空間動き候補が、左側の位置{a
0、a
1}から選択され、第2候補が、2つのセットに示すような探索順序を保ちながら、上側の位置{b
0、b
1、b
2}から選択される。動きベクトル予測子の数が2に等しくない場合、時間MV予測候補を含むことができる。時間候補が利用可能でない場合、ゼロ動きベクトルを使用して候補のセットを満たす。
【0027】
図2Bには、AMVPを使用する例示的な動きベクトル表現が示してある。符号化(240)される現在のブロックについて、動き推定を介して動きベクトル(MV
current)を得ることができる。左側ブロック(230)からの動きベクトル(MV
left)、及び上側のブロック(220)からの動きベクトル(MV
above)を使用して、動きベクトル予測子をMVP
currentとして選択することができる。次いで、動きベクトル差分を、MVD
current=MV
current−MVP
currentと計算することができる。
【0028】
HEVCでは、動き補償のための動き情報の精度は、輝度成分については4分の1サンプル(クォーター・ペル又は1/4ペルとも呼ばれる)であり、色度成分については8分の1サンプル(1/8ペルとも呼ばれる)である。分数サンプルの画素位置の補間用に、7タップ又は8タップの補間フィルタが使用される。すなわち、輝度においては、水平方向と垂直方向の両方での全画素位置の1/4、1/2、及び3/4を扱うことができる。
【0029】
次いで、予測残差が変換され(125)、かつ量子化される(130)。量子化済みの変換係数、ならびに動きベクトル及び他のシンタックス要素がエントロピー符号化されて(145)、ビットストリームを出力する。符号器はまた、変換をスキップし、4×4TUベースで非変換残差信号に直接、量子化を適用してもよい。符号器はまた、変換と量子化の両方を迂回してもよく、すなわち、変換プロセス又は量子化プロセスを適用せずに直接、残差が符号化される。直接PCM符号化では、予測が適用されず、符号化ユニット・サンプルが直接、ビットストリームに符号化される。
【0030】
符号器は、符号化ブロックを復号して、さらなる予測のための基準を提供する。量子化済みの変換係数を逆量子化し(140)、逆変換して(150)、予測残差を復号する。復号済み予測残差と予測済みブロックを組み合わせると(155)、画像ブロックが復元される。復元済みの画像にフィルタ(165)を適用して、濃淡むらのアーティファクトを低減するために、たとえば、非ブロック化/SAO(サンプル適応オフセット)フィルタリングを実行する。フィルタリングされた画像は、基準画像バッファ(180)に記憶される。
【0031】
図3には、例示的なHEVCビデオ復号器300のブロック図が示してある。以下に述べるように、例示的な復号器300では、復号器要素によってビットストリームが復号される。ビデオ復号器300は一般に、
図1に記述するように、符号化パスとは逆の復号パスを実行し、これが、ビデオ・データを符号化する一環としてビデオ復号を実行する。
【0032】
具体的には、復号器の入力はビデオ・ビットストリームを含み、これをビデオ符号器100によって生成してもよい。このビットストリームを、まずエントロピー復号して(330)、変換係数、動きベクトル、及び他の符号化済み情報を得る。変換係数を逆量子化し(340)、逆変換して(350)、予測残差を復号する。復号済み予測残差と予測済みブロックを組み合わせると(355)、画像ブロックが復元される。予測済みブロックは、イントラ予測(360)又は動き補償済み予測(すなわち、インター予測)(375)から得てもよい(370)。前述の通り、AMVP及びマージ・モード技法を使用して、動き補償のための動きベクトルを導出してもよく、この技法は、補間フィルタを使用して、基準ブロックのサブ整数画素について補間値を計算してもよい。フィルタ(365)が、復元済み画像に適用される。フィルタリングされた画像は、基準画像バッファ(380)に記憶される。
【0033】
ビデオ圧縮では、インター予測モードによって、これまでに復元/復号された画像から少なくとも1つの動き補償済みブロックを使用して、1つのブロック(たとえば、予測ユニット)を予測することが可能になる。たとえば、
図2Cに示すように、現在のブロック(255)が、インター予測モードを使用して符号化され、ブロック225及び245が、基準画像内の近接配置されたブロックであり、ブロック215及び235が、動き補償予測に使用されるブロックである。復号済み画像バッファ(DPB)内の復元済み画像を識別する少なくとも1つの基準インデックス(たとえば、refIdx0)、及び1つの動き情報(動きベクトル差分、MVD)が符号化されて、復号器での少なくとも1つの動きベクトル(MV、たとえばmv0)の復元を可能にする。双予測が使用されると、付加基準インデックス(たとえば、refIdx1)及び動き情報が符号化されて、動きベクトル(たとえば、mv0及びmv1)を復元する。場合によっては、これまでに復号されたデータから動きベクトルを推論することができる(たとえば、HEVCでのマージ・モード)。
【0034】
以下のように、MV値の復元を実行することができる。
MV
X=MVP
X+MVD
X、MV
Y=MVP
Y+MVD
Y(1)
ここで、MV
X及びMV
Yは、それぞれ水平動きベクトル成分及び垂直動きベクトル成分であり、MVP(MVP
X、MVP
Y)は、これまでに復元されたデータから構築された動きベクトル予測子であり、MVD(MVD
X、MVD
Y)は、符号化されビットストリーム内で伝送される動きベクトル差分である。
【0035】
MVD値は、通常、復号済みMV値に対応する精度で符号化される。たとえば、HEVCは、動きベクトル解像度として、4分の1画素(すなわち、1/4ペル)を使用する。
【0036】
たとえば、1/4ペルから1/8ペルまでMV解像度を上げると、一般に、予測を改善することができる。しかし、低ビットレートでは、MVDデータの符号化は、ブロック毎に符号化される他のデータに対して、相対的にビットレート・コストが高くなる可能性がある。したがって、総合的な圧縮効率は、MV解像度で必ずしも改善しない場合がある。
【0037】
圧縮効率を改善するために、適応型動き解像度を使用して、たとえば、整数ペル若しくは1/4ペルの間で動き解像度を選択すること、又は1/4ペルと1/6ペルの間で選択することについての、既存の研究がいくつかある。しかし、どの動きベクトル解像度が使用されるかを示すことにより、ビットストリームにおいて送信する必要のある追加の付加情報のせいで、圧縮効率の低下を引き起こす場合がある。
【0038】
オーバヘッドを削減するために、「Conditional motion vector refinement for improved prediction」と題するLakshman、Haricharanらによる論文、Picture Coding Symposium(PCS)、2012年、IEEE(以下では「Lakshman」)では、任意の明確なブロック毎の順方向信号伝送なしで、4分の1サンプルのMV解像度と1/6サンプルのMV解像度との間のMV解像度を推論するための、符号器と復号器の両方に知られている1組の規則が定義されている。高解像度MVは、改良情報で増補された通常の4分の1サンプルMVとして伝送され、これにより、動きベクトルの解像度が4分の1サンプル解像度からサンプルの6分の1にまで高くなる。整数サンプル又は2分の1サンプルの位置を指す復元済みのMV成分は、変更されないままである。4分の1又は4分の3の位置を指すMV成分では、復号器は以下の条件を使用して改良の存在を推定する。
−Pスライスの場合、MV改良情報は常に送信される。
−双予測の場合、MV改良は、高テクスチャを含む基準画像からサンプルにアクセスする予測向けに送信される。
−高テクスチャ基準画像にアクセスしない双予測の場合、MV改良は、既定の基準画像リストからの画像に対してのみ送信される。
−Bスライスの単一仮定予測では、MV改良は使用されない。
【0039】
「Further improvements to HMKTA-1.0」と題するChen、Jianleらによる論文、VCEG−AZ07、ITU−T/SG16、ビデオ符号化エキスパート・グループ(VCEG)の第52回会議、2015年6月19〜26日、Warsaw、Poland(以下では「Chen」)には、高度動きベクトル解像度(AMVR)モードが記載されている。具体的には、PUの動きベクトルと予測済み動きベクトルの間のMVDは、4分の1ペルの解像度又は整数ペルの解像度のいずれかで符号化することができる。MVD解像度は、符号化ユニット(CU)レベルで制御され、少なくとも1つのゼロ以外のMVD成分を有する各CUについて、整数MVD解像度フラグが条件付きで信号伝送される。整数MVD解像度フラグが偽であるか、又はCUについて符号化されていない場合、CUに属するすべてのPUに対して、デフォルトの4分の1ペルMV解像度が使用される。そうでなければ、CUに属するAMVPモードで符号化されるすべてのPUは、整数MV解像度を使用し、マージ・モードで符号化されるPUは、やはり4分の1ペルMV解像度を使用する。PUが整数MV解像度を使用するとき、AMVP候補リストは、4分の1ペルのMVを整数ペルのMVに丸めることによって整数MVで満たされる。
【0040】
本発明の原理は、ビデオ符号化及びビデオ復号での動きベクトルの改良を対象とする。一実施形態では、第1解像度MVD(たとえば、1/4ペル)がビットストリームにおいて受信され、復号器が、MVDに基づいて初期動きベクトルを取得し、既に復号された隣接サンプルを使用して、初期動きベクトルを改良して、第1解像度よりも高い第2動き解像度(たとえば、1/8ペル)を取得する。動き情報の改良は、符号器においても実行されて、不整合を回避する。動き改良は、符号器と復号器の両方で実行されるので、動き改良を示すための追加情報がビットストリームにおいて伝送されず、たとえば、1/4ペルから1/8ペルまでの動きベクトルの改良を示すための明確な信号伝送が使用されない。一変形では、現在のブロックについてマージ・モードが使用され(すなわち、ビットストリームにおいてMVDが受信されない)、初期動きベクトルが、候補リスト内の動きベクトル予測子として得られ(場合によっては、第1解像度に丸められ)、改良されて第2動き解像度を得る。
【0041】
動き情報の改良は、符号器又は復号器での動き推定を使用して実行してもよい。動き解像度の改良なしで第1動き解像度(たとえば、1/4ペル)を使用する手法と比較すると、提案された実施形態は、改良動き情報を伝送するオーバヘッドなしに、動き確度を改善することができる。復号器での動き解像度の改良なしで第2動き解像度(たとえば、1/8ペル)を使用する手法と比較すると、提案された実施形態は、動き改良情報を伝送するオーバヘッドを削減することができる。本発明の原理による復号器は、動き探索を実行することもでき、したがって、動き探索を必要としない復号器よりも複雑になる場合があることに留意されたい。
【0042】
図4には、本発明の原理の一実施形態により、復号器において動きベクトルの改良を実行する例示的な方法400が示してある。この例では、復号器は、動きベクトル解像度を1/4ペルから1/8ペルまで改良することができると仮定する。本発明の原理は、他の動き解像度、たとえば、それだけには限定されないが、整数ペルから1/4ペルまで、1/4ペルから1/6ペルまでの間の改良に適用できることに留意されたい。
【0043】
復号されるブロックでは、復号器は、たとえば、ビットストリーム内のフラグを使用して、又は前述の通り既存の方法を使用して、適応型動きベクトル解像度が有効になっているかどうか検査する(410)。適応型動きベクトル解像度が有効になっている場合、復号器は、たとえば、HEVCのAMVPモードを使用して、1/4ペルの解像度でMV予測子(MVP)を生成する(420)。この予測子が1/8ペルの場合は、1/4ペルに丸められる。次いで、復号器は、1/4ペルの解像度でMVDを復号する(430)。初期動きベクトルを、MV
0=MVP+MVDとして得ることができる(440)。次いで、初期動きベクトル(MV
0)は、1/8ペルの解像度にまで改良することができ(450)、動き補償予測に使用することができる。
【0044】
420において、やはりMV予測子を1/8ペルで生成してもよい。MV予測子が1/4ペルで生成されるか、それとも1/8ペルで生成されるかは、符号器が使用したものと一致していなければならない。
【0045】
動き補償予測ブロックの各サンプルは、基準画像インデックスによって識別される基準画像内の動きベクトルによって変位された位置における対応するブロックのサンプルから得られる。動きベクトルが整数でない場合、分数サンプル補間を使用して、予測サンプルを生成する。
【0046】
HEVCは、1/4ペルでの動きベクトルに対応している。動きベクトルをMV=iMV+sMVと表す。ここで、iMVはMVの整数部分であり、sMVは1/4ペル部分(第1動き解像度)であり、sMV=p/4であり、p=0、1、2、3であり、次いで、補間済みサンプル値を以下のように計算することができる。
【数1】
ここで、xは画素の位置であり、c[p][i]、i=0、...、N−1はp/4ペルの位置に対応するフィルタ係数であり、Nはフィルタ・タップの数である。HEVCでの1/4ペル補間のためのフィルタ係数は以下の通りである。
c[p=0][]={0,0,0,64,0,0,0,0}。整数位置に対応しており、スケーリングのみが存在している。
c[p=1][]={−1,4,−10,58,17,−5,1,0}。1/4ペルの位置に対応しており、7タップのフィルタである。
c[p=2][]={−1,4,−11,40,40,−11,4,−1}。1/2ペルの位置に対応しており、8タップのフィルタである。
c[p=3][]={0,−5,17,58,−10,4,−1}。1/4ペルの位置に対応しており、7タップのフィルタである。
【0047】
相対的に解像度の高い1/8ペルを使用する場合、1/8ペルの補間フィルタを使用して1/8ペル部分を補間し、これはsMV=p/8を含み、p=0、1、2、3、4、5、6、7、8である。たとえば、以下の1/8ペル補間フィルタ(N=4)を使用することができる。
c[p=0][]={0,64,0,0}、
c[p=1][]={−2,58,10,−2}、
c[p=2][]={−4,54,16,−2}、
c[p=3][]={−6,46,28,−4}、
c[p=4][]={−4,36,36,−4}、
c[p=5][]={−4,28,46,−6}、
c[p=6][]={−2,16,54,−4}、
c[p=7][]={−2,10,58,−2}。
【0048】
改良前の動き解像度に関係する範囲の場合、動き改良プロセスは動き推定と見なしてもよい。たとえば、動きベクトルが1/4ペルの第1解像度から1/8ペルの第2解像度まで改良されるとき、動き探索範囲は初期動きベクトルの周りの候補を含む。より一般には、動き改良のための探索候補は、水平方向及び垂直方向において、それぞれMVX
0−ΔMVX〜MVX
0+ΔMVX、MVY
0−ΔMVY〜MVY
0+ΔMVYとすることができ、ここで、MVX
0及びMVY
0は、それぞれ初期動きベクトルMV
0の水平成分及び垂直成分であり、ΔMVX及びΔMVYは、それぞれ水平方向及び垂直方向での探索範囲を規定する。
【0049】
たとえば、水平方向での改良候補は、(MVX
0−k×ステップ2、MVX
0+k×ステップ2)とすることができ、ここでkは整数であり、以下のように定義される。
−ステップ1<(k*ステップ2)<ステップ1(3)
ここで、ステップ1は第1解像度であり、ステップ2は第2解像度である。ステップ1=1/4、かつステップ2=1/8のとき、−2<k<2である。
図5には、整数画素、1/2画素、1/4画素、及び1/8画素での画素の画素位置が示してある。表記を容易にするため、これらの候補を動き改良候補と呼んでもよく、動き改良候補とともに動き補償によって構築された予測ブロックを動き改良予測ブロックと呼び、動き改良予測ブロック内のサンプルを動き改良予測サンプルと呼ぶ。
【0050】
(MVX
0,MVY
0)が位置510に対応するとき、探索候補の例示的なセットは、ボックス520内の各位置を含む。探索範囲、より一般には探索候補のセットは、
図5に示すものとは異なる場合がある。符号器と復号器では、探索候補の同じセットを使用しなければならない。
【0051】
適応型動きベクトル解像度が有効になっていない場合、復号器は、復号済みの動きベクトルに使用される動き解像度でMVP及びMVDを取得し、復号器では動き改良は実行されない。
図4に示すように、復号器は、1/8ペル解像度でMVPとMVDの両方を取得してもよく(460、470)、動きベクトルを、1/8ペル解像度でMV=MVP+MVDとして復号してもよい(480)。一変形では、復号器は、1/4ペル解像度でMVPとMVDの両方を取得してもよく(460、470)、動きベクトルを、1/4ペル解像度でMV=MVP+MVDとして復号してもよい(480)。
【0052】
以下では、動きベクトル改良(450)を実行するのに使用できるいくつかの実施形態を更に詳細に説明する。
【0053】
復号器において動きベクトルを改良するために、画像信号は通常滑らかで連続的であるという特性を使用する。したがって、復号器側においては、動きベクトルが正確な場合、復号済みブロックは、通常、隣接ブロックに対して連続的でなければならない。一実施形態では、再構成された隣接サンプルを使用してMVを改良する。具体的には、動き改良候補を用いる動き補償によって構築された予測ブロックと、これまでに再構成されたサンプル、たとえば
図6Aに示すような隣接する上部左側ブロックのサンプルとの間の不連続性を測定することによって、前述のような探索候補のセットが評価される。
【0054】
図6Aには、復号される例示的なPU(650)が示してある。現在のPUの上方又は左側の他のPU(610、620、630、640)は、既に復号されており、現在のPUを復号するのに利用可能である。具体的には、隣接ブロック(610、620、640)内の復号済みサンプルのL字形セット(670)を使用して、現在のPU(650)での動きベクトルを改良してもよい。PUは、
図6Aに示すものとは異なるサイズ又は形状でもよく、相対的に大きい又は小さい1組の隣接する再構成済みサンプルを使用して、現在のPUの動きベクトルを改良できることに留意されたい。本出願では、動き改良用にサンプルのL字形セットを使用する。より一般には、動き改良用にサンプルの様々なセットを使用することができ、この改良はブロックに適用することができる。
【0055】
一実施形態では、隣接ブロック内の復号済みサンプルのL字形セット(670)(「隣接L字形」と呼ばれる)、及び現在の予測ブロック内のサンプルのL字形セット(680)に基づく不連続性を使用する。
図6Bに示すように、この不連続性は、再構成済みサンプル(n)と最も近い動き改良予測サンプル(p)との間の絶対差の合計(SAD)として測定することができる。数学的には、この改良済み動きベクトル差分は、以下のように計算することができる。
【数2】
ここで、pは、位置が(x
p,y
p)の場合のPUのL字形での動き改良予測サンプルであり、Σ
p||は、PUのL字形セット全体にわたる総和であり、MV
0=MVP+MVDは、改良される動きベクトルであり、nは、位置が(x
n,y
n)の場合のpの隣のL字形での再構成済みサンプルであり(たとえば、pがPUの左側境界に属する場合はx
n=x
p−1、y
n=y
pであり、pがPU上側境界に属する場合はx
n=x
p、y
n=y
p−1であり)、I
rec(n)は、現在の画像の再構成済み(又は復号済み)サンプル値であり、I
ref(p+MVP+MVD+MVD
refine)は、MVD
refinedが選択されるときの動き補償予測値である。
【0056】
一変形では、残差と動き補償予測ブロックの合計を検討し、MVD
refineが選択された場合は、I
ref(p+MV
0+MVD
refine)+Res(p)がサンプルpの再構成値となるはずである。次いで、この改良済み動きベクトル差分は、以下のように計算することができる。
【数3】
ここで、Res(p)はサンプルpでの残差である。
【0057】
本発明の原理に従って動きベクトル改良を含むようにHEVC復号器を修正するとき、MV
0は、AMVPでのMVD+MVPに設定することができ、又はマージ・モードでの候補リストにおいて信号伝送されるものに設定することができ、ここでMVD及びMVPは、HEVCによって指定されるように得られる。一般に、MV
0は、復号器において動き探索を実行することなく復号器が得た動きベクトルである。
【0058】
動き改良は、候補動きベクトルのセットを用いて、相対的に高い動き解像度において、初期動きベクトルの周りから選択された、復号器における動き探索と見なすことができる。最良の動きベクトルの選択肢は、ある特定の基準、たとえば式(4)又は(5)に記載されている不連続性尺度を最小限に抑える選択肢でもよい。すなわち、初期動きベクトルMV
0が得られた後、動き探索が更に実行されて、初期動きベクトルを改良する。初期動きベクトルの周りの探索候補の小さいセットだけしか検査する必要がないので、復号器での余分な複雑さは、通常わずかなものである。
【0059】
数学的には、得られた改良済みMVは、以下のように表すことができる。
【数4】
次いで、基準画像内の改良済みMVに対応するブロックは、たとえば前述のような補間フィルタを使用して、PUを復号するための予測ブロックとして使用される。通常、動き改良によって、符号器は低解像度でMVDを符号化できるようになり、したがって、フル解像度でMVDを符号化することと比較して動き情報を符号化するコストが削減され、復号器は、依然としてフル解像度でMVを回復することができる。
【0060】
本出願では、様々な実施形態において差分尺度としてSADを使用する。SADの代わりに、他の差分尺度、たとえば、それだけには限定されないが、残差の二乗和(SSE)を使用できることに留意されたい。
【0061】
別の実施形態では、隣接画素での勾配が通常は類似しているという特徴を使用し、不連続性を測定するために位置(n)及び(p)での局所勾配を計算する。信号(すなわち、画像サンプル)が空間的に静止していると仮定すると、線形項に切り捨てられたテイラー級数として信号を局所的にモデル化することができる。
I(x+d)=I(x)+g(x).d (7)
ここで、I(x)は、位置xでの画像サンプル値であり、gは、局所勾配を用いて推定された2×2行列である。
【0062】
式(7)を使用すると、隣接する再構成済みサンプルR(x)と動き改良予測ブロックP(x)の間の関係は以下の通りとなる。
R(n)=P(p)+g(p).(n−p) (8)
ここで、P(p)=I
ref(p+MV
0+MVD
refine)、及びR(n)=I
rec(n)である。一変形では、P(p)を計算するときに残差を含むことがある。p=(x
p,y
p)の位置での局所勾配は、
図7Aに示すように表すことができる。
Gll(p)=R(n)−P(p)であり、ここでn=(x
p−1,y
p−1)である
G12(p)=R(n)−P(p)であり、ここでn=(x
p−1,y
p)である
G13(p)=R(n)−P(p)であり、ここでn=(x
p−1,y
p+1)である
【0063】
次いで、局所勾配の絶対値の合計を使用して、不連続性を計算することができ、不連続性を最小限に抑える動きベクトル改良が選択される。
【数5】
p=(x
p,y
p)の位置での2次モーメントは、
図7Bに示すように表すことができる(n及びpが、L字形の垂直左側境界に位置しているとき):
G21(p)=R(n2)−R(n)−G11であり、ここでn=(x
p−1,y
p−1)であり、n2=(x
p−2,y
p−2)である
G22(p)=R(n2)−R(n)−G12であり、ここでn=(x
p−1,y
p)であり、n2=(x
p−2
,y
p)である
G23(p)=R(n2)−R(n)−G13であり、ここでn=(x
p−1,y
p+1)であり、n2=(x
p−2,y
p+2)である
G24(p)=R(n2)−R(n)−P(p)+P(p2)であり、ここでn=(x
p−1,y
p)であり、n2=(x
p−1,y
p+1)であり、p2=(x
p,y
p+1)である。
【0064】
サンプルpがPUの上側境界にあるとき、同様に勾配を得ることができる。左上隅部では、左側の境界又は上側の境界に存在するように処理することができ、又は2回(1回は境界として、また1回は上部として)処理することができる。
【0065】
次いで、勾配の2次モーメントの絶対値の合計を使用して、不連続性を計算することができ、不連続性を最小限に抑える動きベクトル改良が選択される。
【数6】
【0066】
不連続性は、局所勾配の絶対値と2次モーメントの合計として計算することもできる。
【数7】
本発明の原理は、他の形式の勾配計算にも適用できることに留意されたい。
【0067】
図8には、本発明の原理の一実施形態により、符号器において動きベクトルの改良を実行する例示的な方法800が示してある。方法800の出力は、方法400への入力ビットストリームとして使用してもよい。初期化ステップ(805)において、符号器は、入力として符号化されるビデオ・シーケンスにアクセスしてもよい。更に、符号器は、各パラメータを初期値に設定してもよく、たとえば、Best_flag=1に設定し、Best_RDcostを大きい値に設定してもよい。
【0068】
動き推定(810)は、1/8解像度で実行されて、動きベクトル(MV)を得る。次いで、符号器は、適応型動き改良を使用して動きベクトルを符号化することがより効率的であるかどうかを検査する。ステップ820〜840から、符号器は、たとえばRD(レート歪み)コストを使用して、動き改良を用いたMV符号化コストを検査する。ステップ845〜875から、符号器は、動き改良なしの場合のMV符号化コストを検査する。次いで、最終MV(Best_MV)に基づいて動き補償が実行され、残差を計算することができる(885)。残差、最終MVD(Best_MVD)、及び適応型動き改良フラグ(Best_flag)が符号化されて(890)、ビットストリームになる。
【0069】
より具体的には、ステップ815において、対応する復号器が動きベクトル予測子リストをどのように構築するかと一貫して、たとえば、AMVPからの動きベクトル予測子候補リスト、1/8ペル初期動きベクトル予測子の丸め処理済みバージョン、又は隣接する動きベクトルの平均値を使用して、1/4ペル解像度で動きベクトル予測子リストが構築される。解像度を下げることにより、動きベクトル予測子を相対的に「相関関係の強い」ものにし(すなわち、インデックスを伝送して動きベクトル予測子を指示できるように、予測される動きベクトルを正確に予測することができ)、動き改良が、高解像度部分(すなわち、相対的に「相関関係の弱い」部分)を取得できるようになる。場合によっては、MVPリストは、1つのMVPのみを含んでいてもよい。MVPリスト内の各MVPについて、動きベクトル差分(MVD)は、MVD=MV−MVPとして計算され(820)、初期動きベクトルは、MV
0=MVP+MVDとして計算することができる。
【0070】
一変形では、ステップ815において1/8ペル解像度で、動きベクトル予測子候補リストを構築してもよく、ステップ820において動きベクトル差分MVDを1/4ペルに丸める。MVP又はMVDに丸め処理が適用されるので、MV
0はMVと異なる場合があることに留意されたい。
【0071】
この改良を実行して(825)、たとえば式(4)又は(5)に記述されるようにMVD
refineを取得し、MV
*=MV
0+MVD
refineとして、改良済み運動ベクトルを取得する。次いで、MV
*に基づいて残差を計算することができる(827)。ステップ830において、調整済み動きベクトル(MV
*)の符号化コストは、RD(レート歪み)コストを使用して推定することができる。ステップ835において、符号器は、現在の調整済み動きベクトルのRDコストが、現在のBest_RDcostよりも小さいかどうかを検査する。「はい」の場合、パラメータBest_RDcost、Best_MV、Best_MVDは、現在のRDコスト、現在の調整済み動きベクトル、及び現在のMVDに設定され、他のいくつかの関連する符号化情報も記憶することができる。
【0072】
ステップ845において、たとえば、AMVPからの動きベクトル予測子候補リストを使用して、動きベクトル予測子リストが1/8ペル解像度で構築される。符号器が動き解像度を1/4ペルに調整しないことを除いて、ステップ845はステップ815と同様である。MVPリスト内の各MVPでは、1/8ペル解像度でのMVPに基づいてMVDが計算される(850)。動きベクトルMV
1=MVP+MVDについて残差を計算することができ(852)、ステップ855において、RDコストを使用して動きベクトルMV
1の符号化コストを推定することができる。ステップ865において、符号器は、現在の動きベクトルのRDコストが、現在のBest_RDcostよりも小さいかどうかを検査する。「はい」の場合、パラメータBest_RDcost、Best_MV、及びBest_MVDが、現在のRDコスト、現在の動きベクトル、及び現在のMVDに設定され、適応型動き改良フラグが偽(0)に設定される。関連する他の符号化情報も記憶してよい。
【0073】
MVDが0のとき、たとえば、マージ・モードが使用されるとき、ステップ820及び850は必要ではなく、ステップ840及び875において、Best_MVDを計算する必要はなく、ステップ890において、Best_MVDを符号化する必要はない。
【0074】
動き改良は、動きベクトル予測子に対応するすべての動きベクトルに適用することができ、又はサブセットに適用することができる。たとえば、動き改良は、AMVPの動きベクトル予測子のみに対して、又はマージ・モードのみに対して使用される。
【0075】
方法800では、符号器は、符号化コストに基づいて適応型動き改良を使用するかどうか判定し、ビットストリーム内のフラグを用いてこの選択を信号伝送する。他の実施形態では、符号器は、たとえば、更に以下で説明するように、又はLakshman及びChenにおいて説明するように、符号化コストを検査することなくビデオ特性に基づいて適応型動き改良を使用するかどうか判定してもよい。したがって、符号器は、方法800の一部分(たとえば、動き改良を用いる部分、又は動き改良を用いない部分)を実行するだけでよい場合がある。
【0076】
方法800に従って、追加のシンタックス要素Best_flagを送信しなければならない場合があることに留意されたい。しかし、動きベクトルの高解像度部分は、通常ランダムであり符号化するのにコストがかかるので、Best_flagを送信することは、1/8ペル解像度でMVDを送信することよりも依然として効率的になる場合がある。
【0077】
動きベクトルを改良することによって、動きベクトル差分MVDを1/4ペル動き解像度でビットストリーム内において伝送しながら、符号器は1/8ペル動き解像度に達することができる。したがって、MVDは、符号化するのに必要となるビットが相対的に少なくて済む場合がある。たとえば、表1に示すように、動き推定(810)からの現在のブロックでの動きベクトル(MV)は3.625であり、動きベクトル予測子リスト(815)は{3.0,...}を含む。動きベクトル予測子MVP
0=3.0において、動き改良が有効になっていないとき、MVD(850)は、MV−MVP=0.625(1/8ペルで符号化)である。その一方で、動き改良が有効になっていると、MVDは、0.5(1/4ペル)に丸められ、初期動きベクトル(820)は、MV
0=MVP+MVD=3.5になる。次いで、動きベクトルMV
0が改良されて(825)、MV
*=3.625になる。この例では、改良済みの動きは、動き推定から得られるMVと同じであり、MVDは、1/4ペルで伝送され、したがって、動き改良が使用されないときよりもビットが少なくて済む(すなわち、MVDは1/8ペルで伝送される)。したがって、符号器は、動き改良を有効にすることを選択する可能性が高い。
【0079】
上記の例では、改良済み動きベクトルは、動き推定からの動きベクトルと同じである。改良済み動きベクトルは、動き推定から得られる動きベクトルと異なる場合があることに留意されたい。
【0080】
MVP改良
上記では、動きベクトル予測子MVP及び動きベクトル差分MVDに基づいて生成される、初期動きベクトルへの改良について論じている。別の実施形態では、この改良は、(MVDを含まない)動きベクトル予測子について実行することができる。
図6に戻って参照すると、たとえば、HEVCによって指定されるAMVPを使用して、初期動きベクトル予測子(MVP
0)が得られた後、再構成済みのL字形(670)を使用して動きベクトル予測子を改良することができる。
【0081】
具体的には、復号器は、初期動きベクトル予測子の周りの動きベクトル予測子に対応するMC L形型(680)を形成してもよく、たとえば、
【数8】
である。次いで、復号器は、再構成済みのL字形(670)と、互いに異なるMC L字形(680)との間の差、たとえば前述のような不連続性又は勾配を比較することができ、初期運動ベクトル予測子への改良として最も小さい差分を生成する運動改良(ΔMV
*)を選択し、すなわち、改良済み運動ベクトル予測子を、MVP
*=MVP
0+ΔMV
*として計算することができる。再構成済みのL字形(670)とMC L字形(680)の両方が復号サンプルに基づいており、したがって符号器側と復号器側の両方で同じプロセスを実行できることに留意されたい。
【0082】
一般に、動きベクトル予測子のための動き改良は、初期動きベクトル予測子の周りの完全な動き解像度での、いくつかのサブサンプル変位を含む探索範囲での動き探索と見なすことができる。たとえば、510での動きベクトル予測子MVP
0は、
図5に示すような520内の探索候補を使用して改良してもよい。(MVDを用いて)動きベクトルを改良するのと同様に、
図5に示したものとは異なる探索候補のセットを使用してもよい。
【0083】
一変形では、動き改良は、初期動きベクトル予測子の丸め処理済みバージョン(round(MVP
0))に実行することができ、動き改良の探索範囲は、丸め処理済み動きベクトル予測子の周りのフル動き解像度でのサブサンプル変位を含む。たとえば、改良済み動き解像度が1/8ペルのとき、MVP
0の丸め処理済みバージョンは、整数ペル、2分の1ペル、又は4分の1ペルの解像度でもよい。この理由は、実際の動きベクトルが、相対的に低い解像度で動きベクトルの周りに集中する可能性がより高く、初期動きベクトル予測子の丸め処理済みバージョンが、探索のためのより良好な起点を提供する場合があることである。
【0084】
別の変形では、MVP候補リストにおいて使用される隣接動きベクトルの平均値に対して、動き改良を実行してもよい。たとえば、動き改良は、左側及び上側の動きベクトルの平均値(MV
left+MV
above)/2を初期動きベクトル予測子として使用し、次いで、この初期動きベクトル予測子の周りで動き探索を実行してもよい。動き改良は通常、ほとんど又は比較的均一な動き領域内で選択されることが分かる。現在のブロックに隣接する動きベクトルを平均することによって、探索のための更に良好な起点を提供することができる。動き改良が選択されるとき、すなわち、動きフィールドが均一であるとき、予測子候補リストは、このリスト内の1つ(左側又は上側)の候補のみを使用するように減らしてもよく、したがって可能な候補の数を減らしてもよい。AMVPリストのインデックスを符号化し、又はビットストリーム内で伝送する必要がないので、これによって圧縮効率を改善することができる。
【0085】
図9には、本発明の原理の一実施形態により、復号器において動きベクトル予測子の改良を実行する例示的な方法900が示してある。この例では、復号器は、動きベクトル予測子の解像度を1/4ペルから1/8ペルまで改良することができると仮定する。
【0086】
あるブロックでは、復号器は、たとえば、ビットストリーム内のフラグを使用して、又は前述の通り既存の方法を使用して、適応型動きベクトル解像度が有効になっているかどうか検査する(910)。適応型動きベクトル解像度が有効になっている場合、復号器は、1/4ペルの解像度でMV予測子(MVP)を生成する(920)。初期動きベクトル予測子は、たとえば、それだけには限定されないが、HEVCのAMVPモードを使用して、隣接動きベクトルの平均値を使用して、又は動きベクトル予測子の丸め処理済みバージョンを使用して生成することができる。次いで、動きベクトル予測子は、たとえば前述の実施形態を使用して、1/8ペル解像度に改良することができる(930)。復号器は、1/8ペル解像度でMVDを復号する(940)。次いで、動きベクトルを、MV=MVP
*+MVDとして取得し(950)、動き補償予測に使用することができる。
【0087】
適応型動きベクトル解像度が有効になっていない場合、復号器は、復号済みの動きベクトルに使用される動き解像度でMVP及びMVDを取得し、復号器では動き改良は実行されない。
図9に示すように、復号器は、1/8ペル解像度でMVPとMVDの両方を取得してもよく(960、970)、動きベクトルを、1/8ペル解像度でMV=MVP+MVDとして復号してもよい(980)。一変形では、復号器は、1/4ペル解像度でMVPとMVDの両方を取得してもよく(960、970)、動きベクトルを、1/4ペル解像度でMV=MVP+MVDとして復号してもよい(980)。
【0088】
図10には、本発明の原理の一実施形態により、符号器において動きベクトル予測子の改良を実行する例示的な方法1000が示してある。方法1000の出力は、方法900への入力ビットストリームとして使用してもよい。初期化ステップ(1005)において、符号器は、入力として符号化されるビデオ・シーケンスにアクセスしてもよい。更に、符号器は、各パラメータを初期値に設定してもよく、たとえば、Best_flag=1に設定し、Best_RDcostを大きい値に設定してもよい。
【0089】
動き推定(1010)を1/8解像度で実行して、動きベクトルMVを得る。次いで、符号器は、適応型動き改良を使用して動きベクトルを符号化することがより効率的であるかどうかを検査する。ステップ1020〜1040から、符号器は、たとえばRD(レート歪み)コストを使用して、動き改良を用いたMV符号化コストを検査する。ステップ1045〜1075から、符号器は、動き改良なしの場合のMV符号化コストを検査する。次いで、最終MV(Best_MV)に基づいて動き補償が実行され、残差を計算することができる(1085)。残差、最終MVD(Best_MVD)、及び適応型動き改良フラグ(Best_flag)が符号化されて(1090)、ビットストリームになる。
【0090】
より具体的には、ステップ1015において、対応する復号器が動きベクトル予測子リストをどのように構築するかと一貫して、たとえば、AMVPからの動きベクトル予測子候補リスト、初期動きベクトル予測子の(たとえば、所望の解像度での最も近い整数への)丸め処理済みバージョン、又は隣接する動きベクトルの平均値を使用して、1/4ペル解像度で動きベクトル予測子リストが構築される。場合によっては、MVPリストは、1つのMVPのみを含んでいてもよい。ステップ1015において、動きベクトル予測子リストは、1/8ペル解像度で構築することもできる。しかし、相対的に低い解像度(1/4ペル)を使用することの1つの利点は、RD最適化が1/8ペル解像度又は1/4ペル解像度でのMVを区別することができない平坦な領域でのドリフトを回避できることである。低減された解像度を使用することで、MV雑音を低減できるMV予測子の一種の平滑化が可能になる。また、改良のための探索ウィンドウのサイズが相対的に小さい場合(1/8の改良に対して±1/4)、探索ウィンドウでの開始/中心MVの精度は結果を変える場合がある。
【0091】
MVPリスト内の各MVPでは、たとえば復号器について前述したように、MVP改良が実行される(1020)。MVDは、改良済みMVP(MVP
*)に基づいて計算され(1025)、動き補償(MV
*=MVD+MVP
*)に使用できる調整済みの動きベクトル(MV
*)も計算することができる。ステップ1030において、調整済み動きベクトル(MV
*)の符号化コストは、RDコストを使用して推定することができる。ステップ1035において、符号器は、現在の調整済み動きベクトルのRDコストが、現在のBest_RDcostよりも小さいかどうかを検査する。「はい」の場合、パラメータBest_RDcost、Best_MV、及びBest_MVDは、現在のRDコスト、現在の調整済み動きベクトル、及び現在のMVDに設定され(1040)、Best_flagは真(1)のままである。
【0092】
ステップ1045において、たとえば、AMVPからの動きベクトル予測子候補リストを使用して、動きベクトル予測子リストが1/8ペル解像度で構築される。MVPリスト内の各MVPでは、1/8ペル解像度でのMVPに基づいてMVDが計算される(1050)。ステップ1055において、動きベクトル(MV)の符号化コストは、RDコストを使用して推定することができる。ステップ1065において、符号器は、現在の動きベクトルのRDコストが、現在のBest_RDcostよりも小さいかどうかを検査する。「はい」の場合、パラメータBest_RDcost、Best_MV、及びBest_MVDが、現在のRDコスト、現在の動きベクトル、及び現在のMVDに設定され(1075)、適応型動き改良フラグ(Best_flag)が偽(0)に設定される。
【0093】
方法1000では、符号器は、符号化コストに基づいて適応型動き改良を使用するかどうか判定し、ビットストリーム内のフラグを用いてこの選択を信号伝送する。他の実施形態では、符号器は、たとえば、更に以下で説明するように、又はLakshman及びChenにおいて説明するように、符号化コストを検査することなくビデオ特性に基づいて適応型動き改良を使用するかどうか判定してもよい。したがって、符号器は、方法1000の一部分(たとえば、動き改良を用いる部分、又は動き改良を用いない部分)を実行するだけでよい場合がある。
【0094】
動きベクトル予測子を改良することによって、MV予測子をより正確にすることができる。したがって、MVDは、統計的により低い値を有してもよく、次いで符号化コストを低減することができる。たとえば、表2に示すように、動き推定(1010)からの現在のブロックでの動きベクトル(MV)は3.625であり、動きベクトル予測子リスト(1015)は{3.0,...}を含む。動きベクトル予測子MVP
0=3.0の場合、これを、動き改良によってMVP
*=3.5まで改良する(1020)。続いて、動きベクトル差分は、MVD=MV−MVP
*=0.125である。動き改良を使用しない場合の動きベクトル差分MV−MVP
0=0.625と比較すると、符号化されるMVDはより小さく、符号化するのに必要となるビットが相対的に少なくなることがある。この例では、動き改良を使用することで圧縮効率を改善することができ、したがって、符号器は、適応型動き改良を可能にすることを選択する可能性が高い。動き補償に使用される動きベクトルは、MVP
*+MVD=3.625である。
【0096】
MVDが0のとき、たとえば、マージ・モードが使用されるとき、ステップ1020及び1050は必要ではなく、ステップ1040及び1075において、Best_MVDを計算する必要はなく、ステップ1090において、Best_MVDを符号化する必要はない。MVDが0のとき、方法1000は方法800と同じになってもよいことに留意されたい。動き改良は、動きベクトル予測子に対応するすべての動きベクトルに適用することができ、又はサブセットに適用することができる。たとえば、動き改良は、AMVPの動きベクトル予測子のみに対して、又はマージ・モードのみに対して使用される。
【0097】
自動での動き改良の活動化
前述の実施形態では、適応型動きベクトル解像度が有効になっているかどうかを示すのにフラグ(たとえば、
図8又は
図10に示すようなBest_flag)を使用できることを説明している。以下では、動きベクトル解像度の改良を自動的に活動化又は非活動化する様々な実施形態を説明する。したがって、符号器は、適応型動きベクトル解像度が、明確なフラグなしで有効にされているかどうかを示すことができ、復号器はまた、適応型動きベクトル解像度が、明確なフラグを参照することなく有効にされているかどうか判定することができる。
【0098】
一実施形態では、以下の判定基準のうち1つ又は複数に基づいて、適応型動き改良を自動的に活動化することを提案する。
−動きの類似性:現在のブロックの動きは、周囲のブロックの動きに類似しており、したがって、符号器又は復号器は、動き改良のために周囲のブロックの動きベクトルを使用することができる。
−テクスチャネス(又はテクスチャ・レベル):現在のブロック及び周囲のブロックは、頑強なサブ画素の動き改良を可能にできる何らかのテクスチャを含む。
−動きベクトル差分(MVD):MVDは、符号器と復号器の両方で利用可能であり、これを使用して、自動適応型動き改良を使用するかどうか、又は適応型動き改良を明確に信号伝送するかどうか判定することができる。
【0099】
動きの類似性判定基準は、以下の条件のうち1つ又は複数を使用して測定してもよい。
1)MVP
left及びMVP
above(場合によっては、MVP
above−left)が存在し、すなわち、現在のブロックの周りに動きフィールドが存在する。より一般には、動きベクトルを有する1つ又は複数の隣接ブロックが存在する。
2)|MVP
left−MVP
current|<T2、|MVP
above−MVP
current|<T2、及び|MVP
leftabove−MVP
current|<T2である。この条件はまた、これら3つの副条件、|MVP
left−MVP
current|<T2、|MVP
above−MVP
current|<T2、及び|MVP
leftabove−MVP
current|<T2の互いに異なる論理結合とすることもできる。すなわち、周囲のブロックの動きベクトルは類似しており、現在のブロックの周りの動きフィールドは、ある程度均一である。ここで、同じT2を使用して、MVP
leftとMVP
currentの間、MVP
aboveとMVP
currentの間、MVP
leftaboveとMVP
currentの間の差分を検査する。これらの差分には、互いに異なる閾値を使用できることに留意されたい。
【0100】
テクスチャネス判定基準は、以下の条件のうち1つ又は複数を使用して測定してもよい。
1)テクスチャ(L)>T3であり、ここで、Lは、動き改良を実行するのに使用される隣接領域、たとえば
図6Aに示す670であり、テクスチャ(X)は、テクスチャリングの測定値、たとえばXの輝度の変化である。すなわち、隣接領域は何らかのテクスチャを有する。
2)Err(mc(L,MVP,Iref),L)<Err(mc(L,MVP+MVr,Iref),L)+T4であり、ここで、MVPは、符号器と復号器の両方が同じMVPを使用して、この条件を検査できるように、ビットストリーム内で信号伝送されるMVDに対応する、選択済みの動きベクトル予測子であり、Err(X,Y)は、一群の画素Xと一群の画素Yの間の誤差の測定値、たとえば、SAD、HAD、又はSSEであり、mc(X,v,I)は、基準画像I内の動きベクトルvを使用する画素Xのグループの動き補償であり、Irefは、動きベクトル予測子MVPに関連付けられた基準画像であり、T4は、誤差類似度の閾値であり、MVP+MVrは、改良後の動きベクトル予測子である。前述したように、MVPは、たとえば、整数丸め処理された相対的に低い動き解像度においてでもよい。
【0101】
自動動き改良活動化は、動きの類似性若しくはテクスチャネス判定基準の両方の下での、あらゆる条件に基づいてもよく、又は各条件のサブセットを使用してもよい。動き改良の活動化又は非活動化を信号伝送するかどうかは、動きベクトル差分(MVD)に基づくことができる。|MVD|≦T1であり、ここで、MVDがビットストリームにおいて示される動きベクトル差分であり、T1が動き閾値であって、典型的な例では
【数9】
であるとき、明確な信号伝送なしで動きベクトル改良を活動化するように選択する。すなわち、動きベクトル差分が小さく、現在の動きベクトルが現在の動きベクトル予測子に近接しているとき、符号器及び復号器は、動き改良を自動的に活動化することもできる。更に、符号器と復号器の両方は、MVDにアクセスし、このMVDを使用して、同様に動き改良活動化を決定して、符号器と復号器を同期させることができる。その一方で、|MVD|が大きくなると、符号器及び復号器は、明確な信号伝送なしに、動き改良を自動的に非活動化してもよい。
【0102】
別の例では、時間候補を使用して、動きベクトル予測子リストを構築するとき、すなわち、MVP
leftとMVP
aboveが共存しないか、又は同じであると、動き類似性判定基準での条件1)及び2)は使用されない。符号器は、自動改良に時間候補を使用するかどうかを選択してもよい。
【0103】
図11には、本発明の原理の一実施形態により、復号器において、自動動き改良の活動化又は非活動化を用いて動きベクトル予測子の改良を実行する例示的な方法1100が示してある。
【0104】
復号されるブロックでは、復号器は、MV予測子(MVP
current)を生成し(1110)、MV差分(MVD)を復号する(1120)。|MVD|≦T1(1125)が真のとき、復号器は、他の条件を検査して、動き改良を活動化するかどうか判断する。そうでなく、|MVD|>T1の場合、復号器は、
【数10】
かどうか検査する。一例では、S=1/2であり、改良のための動き探索が[−1/2,1/2]内にあることを示す。
【数11】
の場合、復号器は、ビットストリームから復号された(1140)フラグに基づいて動き改良が使用されるかどうか判定する。そうでなく、
【数12】
の場合、復号器は、動き改良を実行せず(すなわち、動き改良が自動的に非活動化され)、MVP及びMVDに基づいて動きベクトルを復号する(1180)。すなわち、MV=MVP+MVDである。
【0105】
より具体的には、復号器は、|MVP
left−MVP
current|<T2、及び|MVP
above−MVP
current|であるかどうか検査する(1155)。「はい」の場合、復号器は、テクスチャ(L)>T3かどうか検査する(1165)。1155と1165での両方の条件が満たされる場合、復号器は、たとえば、前述の様々な実施形態を使用して動きベクトル予測子改良を実行し、改良済みの動きベクトル予測子(MVP
*)及びMVDに基づいて動きベクトルを復号する(1170)。すなわち、MV=MVP
*+MVDである。ここで、動き改良が、フラグなしで自動的に活動化される。
【0106】
【数13】
のとき、復号器は、動き改良を使用してもよいかどうかを示すフラグ(たとえば、Refine_flag)を復号する(1140)。このフラグが真の場合(1145)、復号器はステップ1155へと続く。そうでなく、このフラグが偽の場合(1145)、MVP及びMVDに基づいて動きベクトルが得られる(1180)。
【0107】
図11では、復号器は、条件によっては、動き改良を自動的に非活動化又は活動化し、条件によっては、フラグに依存して、動き改良を非活動化又は活動化する。対応する符号器によって同じ条件を使用して、符号器と復号器の間の同期を確実にする。
【0108】
MVDが0のとき、たとえばマージ・モードが使用されるとき、ステップ1125での条件は常に真であり、排除することができ、ステップ1120、1130、1140、1145、及び1180が不要である。あるいは、マージ・モードでは、マージ推定済みの動きベクトル予測子に雑音が付加されるのを回避するために、動き改良を無効にすることができる。
【0109】
図11に示すものとは異なり、方法1100はまた、ステップ1130〜1145をスキップすることができる。すなわち、|MVD|>T1のとき、復号器は、動き改良なしでステップ1180を実行する。たとえば、それだけには限定されないが、ステップ1155及び/又はステップ1165をスキップすること、ステップ1155での2つの条件のうちの一方を検査することなど、他の変形も実施することができる。
【0110】
図12には、本発明の原理の一実施形態により、符号器において自動的な動き改良を実行する例示的な方法1200が示してある。方法1200の出力は、方法1100への入力ビットストリームとして使用してもよい。初期化ステップ(1205)において、符号器は、入力として符号化されるビデオ・シーケンスにアクセスしてもよい。更に、符号器は、各パラメータを初期値に設定してもよく、たとえば、Best_RDcostを大きい値に設定してもよい。
【0111】
動き推定(1210)を1/8ペル解像度で実行して、動きベクトルMVを得る。ステップ1220において、たとえば、AMVPからの動きベクトル予測子候補リストを使用して、動きベクトル予測子リストが構築される。対応する復号器が動きベクトル予測子リストをどのように構築するのかと一貫して、初期動きベクトル予測子の(たとえば、所望の解像度での最も近い整数への)丸め処理済みバージョン、又は隣接する動きベクトルの平均値を使用してもよい。場合によっては、MVPリストは、1つのMVPのみを含んでいてもよい。ステップ1220において、動きベクトル予測子リストは、他の解像度で構築することもできる。
【0112】
ステップ1225では、特定のMVPについて、符号器は、次いで適応型動き改良を使用して動きベクトルを符号化することがより効率的であるかどうかを検査し、Refine_flagを0又は1に設定する。動き改良がより効率的であると、Refine_flagが1に設定され、そうでない場合は0に設定される。対応するMVDはまた、ステップ1225で計算される。
【0113】
図13には、本発明の原理の一実施形態により、特定のMVP向けに適応型動き改良を使用するかどうか決定する、例示的な方法1300が示してある。方法1300を使用して、方法1200のステップ1225を実施することができる。
【0114】
具体的には、符号器は、|MVP
left−MVP
current|<T2、|MVP
above−MVP
current|<T2、及びテクスチャ(L)>T3かどうか検査する(1305)。1305での各条件が満たされる場合、符号器は、たとえば前述の様々な実施形態を使用して動きベクトル予測子改良を実行し(1330)、改良済み動きベクトル予測子(MVP
*)に基づいて動きベクトル差分を計算する(1340)。すなわち、MVD=MV−MVP
*である。動き改良が使用されるとき、RDコスト(RDCost1)が推定される(1350)。符号器はまた、改良済みの動きベクトル予測子なしの場合の動きベクトル差分を計算する(1360)。すなわち、MVD=MV−MVPである。動き改良が使用されないとき、RDコスト(RDCost2)が推定される(1370)。動き改良がある場合とない場合での、RDコストが比較される(1375)。RDCost1が相対的に小さい場合、Refine_flagが1に設定され(1380)、MVDがMV−MVP
*に設定される。そうでない場合、Refine_flagは0に設定され(1390)、MVDはMV−MVPに設定される。
【0115】
1305での各条件が満たされない場合、動きベクトル予測子(MVP)に基づいて動きベクトル差分が計算される(1310)。すなわち、MVD=MV−MVPであり、Refine_flagが0に設定される(1320)。
【0116】
ステップ1225で、MVD及びRefine_flagが決定された後、ステップ1230で、|MVD|≦T1かどうかを符号器が検査する。「はい」の場合、符号器は更に、Refine_flagが1に等しいかどうか検査する(1235)。Refine_flagが1に設定される場合、符号器はRDコストを推定する(1270)。RDコストが現在のBest_RDCostよりも小さい場合(1275)、パラメータBest_RDcost及びBest_MVDは、現在のRDコスト及び現在のMVDに設定され(1280)、Write_flagが「いいえ」に設定され、適応型動き改良を示すのに明確な信号伝送が使用されないことを示す。すなわち、現在のMVPが符号化用に選択される場合、フラグを送る必要なしに、動き改良が自動的に活動化されるはずである。
【0117】
|MVD|>T1のとき(1230)、符号器は、RDコストを推定する(1240)。RDコストがBest_RDCostよりも小さい場合(1245)、パラメータBest_RDcost及びBest_MVDは、現在のRDコスト及び現在のMVDに設定される(1250)。次いで、符号器は、
【数14】
かどうかを検査する(1255)。「はい」の場合、Write_flagが「はい」に設定される。ここで、条件付きの分岐1260に対応する動きベクトル予測子が選択される場合、動き改良が活動化されているかどうかは、Refine_flagに基づいて明確に信号伝送されるはずである。
【0118】
そうでなく、1255で条件が満たされない場合、Write_flagは「いいえ」に設定される(1265)。すなわち、条件付きの分岐1265に対応する動きベクトル予測子が選択される場合、動き改良は、フラグを送信する必要なしに自動的に非活動化されるはずである。
【0119】
符号器は、MVPリストの終わりに達したかどうかを検査する(1285)。「はい」の場合、符号器は、Best_MVD、選択されたMVPのインデックス、及び、もしあれば対応する残差を符号化する。Write_flagが「はい」に設定される場合、Refine_flagも符号化される。そうでなく、1285で条件が満たされない場合、ステップ1225に制御が戻る。マージ・モードが選択されている場合、ステップ1290でBest_MVDを符号化する必要はない。方法1100に対応して、方法1200はまた、
図12に示してあるものとは異なる場合があり、たとえば、ステップ1240〜1260をスキップすることができる。
【0120】
上記では、動きベクトル予測子に関して、動き改良の非活動化の自動活動化を論じる。自動の活動化又は非活動化は、他のタイプの動き情報、たとえば、それだけには限定されないが、動きベクトル差分を既に含む動きベクトルに適用できることに留意されたい。
【0121】
たとえば、本出願では、様々な数値が使用されて、閾値に基づいて動きの類似性又はテクスチャを決定する。具体的な値は例示するためのものであり、本発明の原理は、これら具体的な値に限定されないことに留意されたい。
【0122】
上記では、HEVC規格について様々な実施形態を説明している。たとえば、前述したような様々な動き改良方法又は自動活動化方法を使用して、
図1に示すHEVC符号器の動き推定モジュール(175)、又は
図3に示すHEVC復号器の動き補償モジュール(375)を修正することができる。しかし、本発明の原理は、HEVCに限定されるものではなく、他の規格、推奨、及びその拡張に適用することができる。
【0123】
上記では、1/4ペルから1/8ペルまでの動き改良を論じている。本発明の原理は、他の動き解像度、たとえば、それだけには限定されないが、整数ペルから1/4ペルまで、1/4ペルから1/6ペルまでの間の改良に適用できることに留意されたい。
【0124】
図14には、本発明の原理の例示的な実施形態の様々な態様を実施してもよい、例示的なシステムのブロック図が示してある。システム1400は、以下に述べる様々な構成要素を含む装置として実施してもよく、前述のプロセスを実行するように構成される。このような装置の例には、それだけには限定されないが、パーソナル・コンピュータ、ラップトップ・コンピュータ、スマートフォン、タブレット・コンピュータ、デジタル・マルチメディア・セット・トップ・ボックス、デジタル・テレビジョン受信機、パーソナル・ビデオ記録システム、接続された家庭用電気製品、及びサーバが含まれる。システム1400は、他の同様のシステムに通信可能なように結合してもよく、
図14に示すように、また当業者に知られているように前述の例示的なビデオ・システムを実施するために、通信チャネルを介して表示装置に通信可能なように結合してもよい。
【0125】
システム1400は、前述の通り様々なプロセスを実施するために、内部にロードされた命令を実行するように構成された少なくとも1つのプロセッサ1410を備えてもよい。プロセッサ1410は、組込みメモリ、入出力インターフェース、及び当技術分野で知られている他の様々な回路を備えてもよい。システム1400はまた、少なくとも1つのメモリ1420(たとえば、揮発性メモリ・デバイス、不揮発性メモリ・デバイス)を備えてもよい。システム1400は更に、それだけには限定されないが、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュを含む不揮発性メモリ、磁気ディスク・ドライブ、及び/又は光ディスク・ドライブを含んでもよい、記憶装置1440を備えてもよい。記憶装置1440は、非限定的な例として、内部記憶装置、付加記憶装置、及び/又はネットワーク・アクセス可能な記憶装置を含んでもよい。システム1400はまた、データを処理して、符号化されたビデオ又は復号されたビデオを生成するように構成された符号器/復号器モジュール1430を備えてもよい。
【0126】
符号器/復号器モジュール1430は、符号化機能及び/又は復号機能を実行するために装置に含んでもよい(1つ又は複数の)モジュールを表す。知られているように、装置は、符号化モジュール及び復号モジュールのうちの一方又は両方を備えてもよい。更に、符号器/復号器モジュール1430は、システム1400の別々の要素として実装してもよく、又は当業者に知られているハードウェアとソフトウェアの組合せとしてプロセッサ1410内に組み込んでもよい。
【0127】
本明細書に記載の様々なプロセスを実行するためにプロセッサ1410にロードされるプログラム・コードは、記憶装置1340に記憶してもよく、続いて、プロセッサ1410による実行のためにメモリ1420にロードしてもよい。本発明の原理の例示的な実施形態によれば、(1つ又は複数の)プロセッサ1410、メモリ1420、記憶装置1440、及び符号器/復号器モジュール1430のうちの1つ又は複数は、先に本明細書において述べた各プロセスの実行中に様々なアイテムのうち1つ又は複数を記憶してもよく、これには、それだけには限定されないが、入力ビデオ、ビットストリーム、等式、公式、行列、変数、演算、及び演算論理を含む。
【0128】
システム1400はまた、通信チャネル1460を介して他の装置との通信を可能にする通信インターフェース1450を備えてもよい。通信インターフェース1450は、それだけには限定されないが、通信チャネル1460との間でデータを送受信するように構成された送受信機を備えてもよい。通信インターフェースは、それだけには限定されないが、モデム又はネットワーク・カードを備えてもよく、通信チャネルは、有線媒体及び/又は無線媒体内に実装してもよい。システム1400の様々な構成要素は、それだけには限定されないが、内部バス、ワイヤ、及びプリント回路板を含め、適している様々な接続を使用して接続してもよく、又は通信可能なように結合してもよい。
【0129】
本発明の原理による例示的な実施形態は、プロセッサ1410によって実装されるコンピュータ・ソフトウェア、若しくはハードウェアによって、又はハードウェアとソフトウェアの組合せによって実行してもよい。非限定的な例として、本原理による例示的な実施形態は、1つ又は複数の集積回路によって実装してもよい。メモリ1420は、技術的な環境に適した任意のタイプのものでよく、非限定的な例として、光学メモリ・デバイス、磁気メモリ・デバイス、半導体ベースのメモリ・デバイス、固定メモリ、取外し可能なメモリなど、任意の適切なデータ記憶技術を使用して実装してもよい。プロセッサ1410は、技術的な環境に適した任意のタイプのものでよく、非限定的な例として、マイクロプロセッサ、汎用コンピュータ、専用コンピュータ、及びマルチコア・アーキテクチャに基づいたプロセッサのうちの1つ又は複数を含んでもよい。
【0130】
本明細書に記載の実装形態は、たとえば、方法若しくはプロセス、装置、ソフトウェア・プログラム、データ・ストリーム、又は信号で実装してもよい。(たとえば方法としてのみ論じた)単一形式の実施形態との関連でもっぱら論じたとしても、論じた特徴の実装形態は、他の形式(たとえば装置又はプログラム)で実装してもよい。装置は、たとえば、適切なハードウェア、ソフトウェア、及びファームウェアで実装してもよい。たとえば、各方法は、たとえばコンピュータ、マイクロプロセッサ、集積回路、又はプログラマブル論理デバイスを含む処理装置を一般に指す、たとえばプロセッサなどの機器に実装してもよい。プロセッサはまた、たとえば、コンピュータ、携帯電話、ポータブル/携帯型情報端末(「PDA」)、エンドユーザ間での情報の通信を容易にする他の装置などの通信装置を含む。
【0131】
本原理の「1つの実施形態」若しくは「一実施形態」、又は「1つの実装」若しくは「一実装」、ならびに本原理の他の変形への言及は、実施形態に関連して説明される特定の特徴、構造、特性などが、本原理の少なくとも1つの実施形態に含まれることを意味する。したがって、「1つの実施形態において」若しくは「一実施形態において」、又は「1つの実装において」若しくは「一実装において」、ならびに他の任意の変形の表現が明細書全体を通して様々な場所に現れても、それは必ずしもすべてが同じ実施形態を指しているのではない。
【0132】
更に、本出願又はその特許請求の範囲は、様々な情報を「決定すること」に言及してもよい。情報を決定することは、たとえば、情報を推定すること、情報を計算すること、情報を予測すること、又はメモリから情報を検索することのうち1つ又は複数を含んでもよい。
【0133】
更に、本出願又はその特許請求の範囲は、様々な情報に「アクセスすること」に言及してもよい。情報にアクセスすることは、たとえば、情報を受信すること、情報を(たとえばメモリから)検索すること、情報を記憶すること、情報を処理すること、情報を伝送すること、情報を移動すること、情報をコピーすること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することのうち1つ又は複数を含んでもよい。
【0134】
更に、本出願又はその特許請求の範囲は、様々な情報を「受信すること」に言及してもよい。受信することは、「アクセスすること」と同様に、広義の用語とするものである。情報を受信することは、たとえば、情報にアクセスすること、又は(たとえば、メモリから)情報を検索することのうち1つ又は複数を含んでもよい。更に、「受信すること」は通常、たとえば、情報を記憶すること、情報を処理すること、情報を伝送すること、情報を移動すること、情報をコピーすること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することなどの動作中に、ある方式又は別の方式で関与する。
【0135】
当業者には明らかになるように、各実装は、たとえば記憶又は伝送してもよい情報を運ぶようにフォーマットされた、様々な信号を生成してもよい。この情報は、たとえば、方法を実行するための命令、又は説明した各実装のうちの1つによって生成されるデータを含んでもよい。たとえば、信号は、説明した実施形態のビットストリームを運ぶようにフォーマットしてもよい。たとえば、このような信号は、(たとえばスペクトルの無線周波数部分を使用する)電磁波としてフォーマットしてもよい。フォーマットすることは、たとえば、データ・ストリームを符号化すること、及び符号化されたデータ・ストリームで搬送波を変調することを含んでもよい。信号が運ぶ情報は、たとえば、アナログ情報又はデジタル情報でもよい。知られているように、信号は、様々な異なる有線リンク又は無線リンクを介して伝送してもよい。信号は、プロセッサ読取り可能な媒体に記憶してもよい。