ここでは、例示的な実施例について詳細に説明し、その例を図面において表示する。以下の説明が図面にかかわる場合、特に断りのない限り、異なる図面中の同一の数字は同一または類似の要素を表す。以下の例示的な実施例において説明される実施形態は、本発明に一致するすべての実施形態を代表するものではない。逆に、それらは、添付の特許請求の範囲に詳しく記載されるような、本発明のいくつかの態様に一致する装置および方法の例に過ぎない。
本発明において使用される用語は、特定の実施例を説明するためのものに過ぎず、本発明を限定するものではない。本発明および添付の特許請求の範囲において使用される単数形の「一種」、「前記」および「当該」は、文脈において他の意味が明確に示されない限り、複数形を含むことも意図している。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、本発明の実施例にかかわる技術用語の一部、および従来の映像符号化・復号の主なフローについて簡単に説明する。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、まず本発明の実施例にかかわる技術用語の一部について簡単に説明する。
技術用語:
1、予測画素(Prediction Signal):符号化・復号済みの画素から導出された画素値を指し、元の画素と予測画素との差により残差を得、さらに残差変換量子化および係数符号化を行う。
例示的に、インター予測画素とは現在の画像ブロックの参照フレーム(再構成画素フレーム)から導出された画素値であり、画素位置が離散的であるため、内挿演算によって最終的な予測画素を取得する必要がある。予測画素と元の画素が近いほど、両者を減算して得られた残差エネルギーが小さくなり、符号化圧縮性能が高くなる。
2、動きベクトル(Motion Vector、MVと略称):インター符号化において、MVで現在の符号化ユニットとその参照画像中の最適なマッチング符号化ユニットとの間の相対的な変位を表す。分割された各ブロック(サブブロックと呼ばれてもよい)はいずれも復号側に伝送する必要のある対応する動きベクトルを有する。各サブブロックのMVを独立して符号化と送信を行うと、特に小さなサイズに分割されたサブブロックについて、かなりのビットを消費する必要がある。MVの符号化のためのビット数を低減するために、映像符号化において隣接する画像ブロック間の空間的相関性を利用し、隣接する符号化済みブロックのMVに基づいて現在の符号化対象のブロックのMVを予測し、予測差を符号化する。こうするとMVを表すビット数を効果的に低減することができる。これを基に、現在の画像ブロックのMVを符号化する過程において、一般的には、まず隣接する符号化済みブロックのMVを用いて現在の画像ブロックのMVを予測し、MVの予測値(Motion Vector Prediction、MVPと略称)と動きベクトルの実際の推定値との差、すなわち差分動きベクトル(MotionVector Difference、MVDと略称)を符号化し、それによりMVの符号化のビット数を効果的に低減する。
3、動き情報(Motion Information):MVは現在の符号化ユニットとある参照画像中の最適なマッチング符号化ユニットとの相対的な変位を表すので、画像ブロック向けの情報を正確に取得するために、MV情報の他に、参照画像インデックス情報でどの参照画像を用いたかを表す必要がある。映像符号化技術において、現在の画像に対して、一般的には一定の原則に基づいて、参照画像リストを作成し、参照画像インデックス情報は現在の画像ブロックが参照画像リストにおける何番目の参照画像を用いたかを表す。また、多くの符号化技術は複数の参照画像リストをサポートするので、さらにどの参照画像リストを用いたかを示す1つのインデックス値が必要とされ、当該インデックス値は参照方向と呼ばれてもよい。映像符号化において、MV、参照フレームインデックス、参照方向など、動きに関する符号化情報を動き情報と総称し、例えば、動き情報は、予測参照モードと、L0動きベクトルと、L1動きベクトルと、L0参照インデックスと、L1参照インデックスとからなるインター予測のための5タプルである。
4、レート歪み最適化(Rate-Distortion Optimized、RDOと略称)原則:符号化効率を評価する指標はビットレートとピーク信号対雑音比(Peak Signal to Noise Ratio、PSNRと略称)とを含む。ビットレートが小さければ小さいほど、圧縮率が大きく、PSNRが大きければ大きいほど、再構成画像品質が良好である。モードを選択する際に、判別式は実質的に両者に対する総合的な評価となる。モードに対応するコスト:
J(mode)=D+λ*R。
ここで、Dは歪み(Distortion)を表し、一般的にはSSE(Sum of the Squared Errors、残差平方和)指標を用いて評価され、SSEとは、再構成ブロックとソース画像ブロックとの残差平方和であり、λはラグランジュ乗数であり、Rは当該モードにおいて画像ブロックの符号化に必要な実際のビット数であり、符号化モード情報、動き情報、残差などに必要なビット数の総和を含む。
モードを選択する際に、RDO原則を用いて符号化モードを比較決定すれば、通常、最適な符号化性能が保証できる。
5、双方向オプティカルフロー(BI-directional Optical flow、BIOと略称):BIO技術は、前方向および後方向参照フレームにおける画素値の勾配情報を利用して現在の符号化ユニットにオプティカルフロー補償値を追加する。例示的に、BIOの技術的詳細は以下のとおりであってもよい。
5.1、勾配の和S1、S2、S3、S5、S6を計算する。
ここで、
、
およびθ(i,j)の計算は以下のとおりである。
ここで、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値、後方向動き補償値およびその拡張値である。その拡張方式はブロック境界の動き補償値からコピーしてもよいし、参照画素位置から取得してもよい。
および
は画素点の前方向参照フレームおよび後方向参照フレームにおける水平成分および垂直成分の変化率である。θ(i,j)は前方向動き補償値およびその拡張値と、後方向動き補償値およびその拡張値との画素差分値を表す。
5.2、続いて、改善動きベクトルvxおよびvyを計算する。
ここで、<<は左シフト演算子であり、「x>y?z:a」は「x>y」が成立する場合、値がzであり、「x>y」が成立しない場合、値がaであることを表し、mとthBIOはいずれも閾値であり、rは正則化項であり、ゼロ除算操作を避ける。S1、S2、S3、S5およびS6は画素の勾配の和であり、clip3は中の値が-thBIOとthBIOとの間にあることを保証することを表す。
5.3、改善動きベクトルに基づいてオプティカルフローオフセット値bを取得する。
ここで、(x,y)は現在の符号化ユニット内部の各画素の座標であり、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値、後方向動き補償値およびその拡張値である。
5.4、最後にオプティカルフローオフセット値に基づいて現在の符号化ユニットの各画素の予測値predBIO(x,y)を計算する。
ここで、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値および後方向動き補償値である。
6、復号側動きベクトル調整(Decoder-side Motion Vector Refinement、DMVRと略称):復号側動きベクトル調整技術DMVRはダイレクトモードまたはスキップモードに適用される。
例示的に、DMVRの技術的詳細は以下のとおりである。
6.1、初期MVを利用して予測ブロックと検索領域内に必要な参照画素を取得する。
6.2、最適な整数画素位置を取得する。
例示的に、現在の符号化ユニットの輝度画像ブロックを、重ならず、且つ位置が隣接するサブブロックに分割し、すべてのサブブロックの初期MVはMV0とMV1である。各サブブロックについて、初期MV0およびMV1に対応する位置を中心として、近傍の一定範囲内でテンプレートマッチング歪みが最も小さい位置を探し始め、テンプレートマッチング歪みの計算方式は前方向検索領域における中心位置からのサブブロック幅にサブブロック高さをかけたブロックと、後方向検索領域における中心位置からのサブブロック幅にサブブロック高さをかけたブロックとの間のSAD(Sum of Absolute Differences、差分絶対値和)値を計算することである。
6.3、最適な副画素位置を取得する。
例示的に、副画素位置の確認は整数位置の最適位置、その左側、その右側、その上方、およびその下方の合計で5箇所のテンプレートマッチング歪み値を用い、整数位置の最適位置近傍の二次歪み平面を推定し、歪み平面における歪みが最も小さい位置を算出して副画素位置とする。その計算式は以下のとおりである。
水平副画素位置=(sad_left-sad_right)*N/((sad_right+sad_left-2*sad_mid)*2)
垂直副画素位置=(sad_btm-sad_top)*N/((sad_top+sad_btm-2*sad_mid)*2)
ここで、sad_mid、sad_left、sad_right、sad_topおよびsad_btmは、それぞれ整数位置の最適位置、その左側、その右側、その上方、およびその下方の合計で5箇所のテンプレートマッチング歪み値であり、Nは精度である。
6.4、最適MVに基づいて、最終予測ブロックを算出する。
以下、従来の映像符号化・復号の主なフローについて簡単に説明する。
図1中の(a)に示すように、映像符号化を例とし、映像符号化は一般的に予測、変換、量子化、エントロピー符号化などのプロセスを含み、さらに、符号化プロセスは図1中の(b)のフレームワークに従って実現することができる。
ここで、予測はイントラ予測とインター予測に分けることができ、イントラ予測は、周辺の符号化済みブロックを参照として現在の未符号化ブロックに対して予測を行い、空間的冗長性を効果的に除去する。インター予測は、隣接する符号化済み画像を用いて現在の画像を予測し、時間的冗長性を効果的に除去する。
変換とは、画像を空間領域から変換領域に変換することであり、変換係数を用いて画像を表す。ほとんどの画像は多くの平坦な領域およびゆっくりと変化する領域を含み、適切な変換により画像を空間領域における分散した分布から変換領域における相対的集中した分布に変換することができ、信号間の周波数領域の相関性を除去し、量子化プロセスと合わせて、ビットストリームを効果的に圧縮することができる。
エントロピー符号化は可逆符号化方式であり、一連の要素記号を伝送または記憶のためのバイナリストリームに変換することができ、入力された記号は量子化された変換係数、動きベクトル情報、予測モード情報、変換量子化に関連するシンタックスなどを含み得る。エントロピー符号化は映像要素記号の冗長性を効果的に除去することができる。
以上は符号化を例として紹介し、映像復号は映像符号化のプロセスに対応しており、すなわち映像復号は一般的にエントロピー復号、予測、逆量子化、逆変換、フィルタリングなどのプロセスを含み、各プロセスの実現原理は映像符号化と同一または類似である。
以下、ATMVP技術の実現について簡単に説明する。
従来のATMVP技術の実現は主に以下のフローを含む。
1)、時間動きベクトル予測(Temporal Motion Vector Prediction、TMVPと略称)の決定:現在の符号化ユニットのA0位置の動き情報が以下の条件を満たすか否かを判断する。
a)A0位置が存在し、且つ現在の符号化ユニットと同一のスライス(Slice)およびユニット(Unit)にあり、
b)A0位置の予測モードがインターモードであり、
c)A0位置の参照フレームインデックスが現在のフレームのco-locatedフレームの参照フレームインデックスに一致する(まずL0方向を判断し、続いてL1方向を判断する)。
ここで、A0位置は(xCb-1,yCb+CbHeight-1)の位置であり、(xCb,yCb)は現在のユニットの左上隅の座標であり、CbHeightは現在の符号化ユニットの高さである。
2)、中心参照ブロックの位置の計算:ステップ1)で取得したTMVPの精度は1/16であり、4ビット右シフトして整数画素に変換する必要がある。また、参照ブロックの位置を現在のLCU(Largest Coding Unit、最大符号化ユニット)の参照フレームにおけるコロケーテッドLCUの範囲内にクリップ(Clip)し、すなわち参照ブロックの位置が現在のLCUの参照フレームにおけるコロケーテッドLCUの範囲内にない場合、参照ブロックを現在のLCUの参照フレームにおけるコロケーテッドLCUの範囲内にちょうどあるように水平または/および垂直方向にシフトする必要があり、その概略図を図2に示す。
中心参照ブロックの位置の計算方式は以下に示すとおりである。
xColCb=Clip3(xCtb,Min(PicWidth-1,xCtb+(1<<CtbLog2Size)+3),xColCtrCb+(tempMv[0]>>4))
yColCb=Clip3(yCtb,Min(PicHeight-1,yCtb+(1<<CtbLog2Size)-1),yColCtrCb+(tempMv[1]>>4))
ここで、(xColCb,yColCb)は中心参照ブロックの左上隅の座標であり、(xCtb,yCtb)は現在のLCUの参照フレームにおけるコロケーテッドLCUの左上隅の座標であり、PicWidthおよびPicHeightはそれぞれ現在のフレームの幅および高さであり、CtbLog2Sizeは2を底とした現在のLCUのサイズの対数であり、(xColCtrCb,yColCtrCb)は現在の符号化ユニットの中心位置の座標であり、tempMv[0]およびtempMv[1]はそれぞれA0位置の水平動きベクトルおよび垂直動きベクトルである。
3)、中心参照ブロックの予測モードを判断し、予測モードが非インター予測モードであれば、ctrPredFlagL0およびctrPredFlagL1はいずれも0であり、それ以外の場合、すなわち予測モードがインター予測モードであれば、ステップ4)に移行する。
4)、参照位置の調整:サブブロックのサイズが8*8であるため、動き情報は8*8を単位とする。したがって、中心参照ブロックの左上隅の座標を8倍の座標位置に調整する必要がある。調整式は以下のとおりである。
xColCb=((xColCb>>3)<<3)
yColCb=((yColCb>>3)<<3)
5)、調整された中心参照ブロックの動き情報の取得:調整された中心参照ブロックの予測モードがイントラ予測またはイントラブロックコピー(Intra Block Copy、IBCと略称)モードであれば、FlagLXCol=0であり、それ以外の場合、調整された中心参照ブロックのL0とL1方向の動き情報が存在するか否かをそれぞれ判断し、存在すれば、FlagLXCol=1であり、調整された中心参照ブロックのL0とL1方向の動き情報を取得する。
例示的に、LX=L0またはLX=L1であり、調整された中心参照ブロックの予測モードがイントラ予測モードまたはイントラブロックコピーモードである場合、FlagL0Col=0、且つFlagL1Col=0である。
調整された中心参照ブロックの予測モードがイントラ予測でも、イントラブロックコピーモードでもない場合、調整された中心参照ブロックのL0方向の動き情報が存在するとき、FlagL0Col=1であり、調整された中心参照ブロックのL0方向の動き情報が存在しないとき、FlagL0Col=0であり、調整された中心参照ブロックのL1方向の動き情報が存在するとき、FlagL1Col=1であり、調整された中心参照ブロックのL1方向の動き情報が存在しないとき、FlagL1Col=0である。
FlagLXCol=1の場合、現在のフレームの長期参照フレームとco-locatedフレームの長期参照フレームが等しくなければ、調整された中心参照ブロックの動き情報が利用不可であると決定し、ctrPredFlagLX=0であり、それ以外の場合、調整された中心参照ブロックの動き情報をListX(X=0または1)の最初のフレームを指すようにスケール(scale)し、現在の中心参照ブロック位置の動き情報とし、ctrPredFlagLX=1である。
6)、ctrPredFlagLX=1の場合、各サブブロックの動き情報の計算:マッチング符号化ユニット中の各サブブロックをトラバースし、いずれかのサブブロックについて、当該サブブロックをマッチング符号化ユニットが位置するLCUの範囲内にclipし、clip後のサブブロックの動き情報が利用可能であれば、当該clip後のサブブロックの動き情報をListXの最初のフレームを指すようにスケールし、スケール後の動き情報を現在の符号化ユニットに対応する位置のサブブロックに与え、clip後のサブブロックの動き情報が利用不可であれば、調整された中心参照ブロックの中心位置の動き情報をListXの最初のフレームを指すようにスケールし、スケール後の動き情報を現在の符号化ユニットに対応する位置のサブブロックに与える。
例示的に、現在の符号化ユニットの隣接ブロックの動き情報により、co-located(共同位置)フレームにおいて現在の符号化ユニットの隣接符号化ユニットに対応する符号化ユニットを検索し、co-locatedフレームにおける現在の符号化ユニットに対応する位置の符号化ユニットの内部の各サブブロックの動き情報を現在の符号化ユニット中の各サブブロックに提供して使用させてもよい。
co-locatedフレームにおいて現在の符号化ユニットに対応する位置の符号化ユニットを検索することは現在の符号化ユニットの周辺の符号化ユニットの動き情報に依存する必要があり、周辺の符号化ユニットの動き情報が正確でなければ、検索で得られた対応する位置の符号化ユニットの動き情報も信頼できず、それにより符号化・復号性能に影響を与える。
マッチング符号化ユニットの動作情報の信頼性を向上させ、符号化・復号性能を最適化するために、本発明の実施例は、現在の符号化ユニットのco-locatedフレームにおけるコロケーテッド符号化ユニットの動き情報を利用してマッチング符号化ユニットを決定し、検索で得られたマッチング符号化ユニットに対して上下左右など、一連のオフセットを行い、複数の時間候補モードを生成し、周辺の符号化ユニットの動き情報の不正確によるマッチング符号化ユニットが正確に見つからないという問題をある程度で回避する。
本発明の実施例の主な実現フローは以下の6つの部分を含み得る。
第1の部分(Aと記されてもよい)において、現在の符号化ユニットの符号化/復号条件に基づいて、強化時間動きベクトル予測(Enhanced Temporal Motion Vector Prediction、ETMVPと略称)モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析する。
第2の部分(Bと記されてもよい)において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
第3の部分(Cと記されてもよい)において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
第4の部分(Dと記されてもよい)において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定する。
第5の部分(Eと記されてもよい)において、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得する。
第6の部分(Fと記されてもよい)において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、上記の6つの部分の順序を調整してもよい。
以下、本発明の実施例の上記目的、特徴および利点をより明らかにするために、図面を参照しながら本発明の実施例における技術的解決手段について一層詳細に説明する。
図3に示すように、本発明の実施例にて提供される復号方法のフローチャートであり、ここで、当該復号方法は復号デバイスに適用することができ、図3に示すように、当該復号方法は以下のステップを含み得る。
ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得する。
本発明の実施例において、現在の符号化ユニットは処理対象の画像中のいずれかの符号化ユニットであってもよい。実施する際に、処理対象の画像を異なる符号化ユニットに分割し、各符号化ユニットを一定の順序に従って順次処理してもよい。ここで、各符号化ユニットのサイズおよび形状は予め設定された分割ルールに基づいて設定してもよい。
例示的に、現在の符号化ユニットを復号する場合、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得してもよい。
例示的に、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値をビットストリームから解析してもよく、または、現在の符号化ユニットが一定の条件を満たす場合に導出してもよい。
例示的に、現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値をビットストリームから解析してもよく、または、現在の符号化ユニットが一定の条件を満たす場合に導出してもよい。
取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、ステップS310~ステップS340を実行する。
例示的に、強化時間動きベクトル予測モードフラグの値は、強化時間動きベクトル予測モードをイネーブルすることを示す値(本明細書では第1の数値と呼ばれ、例えば1である)を含み得る。
ステップS310において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
本発明の実施例において、取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすると決定してもよく、この場合、初期マッチング符号化ユニットの座標情報の決定を行ってもよい。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定してもよい。
例示的に、当該初期マッチング符号化ユニットの座標情報は当該初期マッチング符号化ユニットの対応する参照画像における座標情報、例えば左上隅座標であってもよい。
ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
本発明の実施例において、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定した場合、当該初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築してもよい。
例示的に、当該強化時間候補リストは少なくとも1つの強化時間動きベクトル予測モード番号を含む。
例示的に、異なる強化時間動きベクトル予測モード番号に対応するマッチング符号化ユニットの座標情報が異なってもよい。
ステップS330において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定する。
本発明の実施例において、ステップS300で取得した現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定してもよい。
例示的に、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット、または、初期マッチング符号化ユニットに対して上/下/左/右オフセットを行うことにより得られたマッチング符号化ユニットを含み得る。
例示的に、ターゲットマッチング符号化ユニットの座標情報は初期マッチング符号化ユニットの座標情報に一致し、または、初期マッチング符号化ユニットの座標情報を基に、予め設定されたオフセット量に従って調整して得られてもよい。
ステップS340において、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定する。
本発明の実施例において、ターゲットマッチング符号化ユニットの座標情報を決定した場合、当該ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニットの動き情報を決定してもよい。例示的に、ターゲットマッチング符号化ユニットの動き情報はターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含む。
例示的に、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定してもよい。例えば、ターゲットマッチング符号化ユニット中のh行目、l列目のサブブロックの動き情報に基づいて、現在の符号化ユニット中のh行目、l列目のサブブロックの動き情報を決定する。
いくつかの実施例において、ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を取得するステップは、現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから強化時間動きベクトル予測モードのフラグの値を解析するステップと、それ以外の場合、強化時間動きベクトル予測モードフラグの値が第2の数値であると決定するステップであって、当該強化時間動きベクトル予測モードフラグの値が第2の数値であることは現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示すステップと、を含み得る。
例示的に、強化時間動きベクトル予測モードの使用には一般的に一定の条件を満たすことが必要であることが考慮され、当該条件を満たさない場合に、強化時間動きベクトル予測モードは適用できない可能性があり、この場合に、強化時間動きベクトル予測モードフラグの値はビットストリームから解析する必要がなく、導出してもよい。
例示的に、現在の符号化ユニットが指定条件(本明細書では第1の解析条件と呼ばれる)を満たすか否かに基づいて、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析し、または、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を導出すると決定してもよい。
例示的に、現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析し、現在の符号化ユニットが第1の解析条件を満たさない場合、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析する必要がなく、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないと決定してもよく、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値は、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示すための値(本明細書では第2の数値と呼ばれる)である。
一例において、上記の現在の符号化ユニットが第1の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことと、シーケンスレベルのハイレベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現(Ultimate Motion Vector Expression、UMVE)の利用条件を満たすこととのうちの1つまたは複数を含み得る。
例示的に、時間動きベクトル予測モードの利用には符号化ユニットの予測モードおよびサイズなどに対して一定の要件が求められることを考慮すると、符号化ユニットの予測モードおよび/またはサイズなどが要件を満たすか否かに基づいて、符号化ユニットが適用するか否かを決定してもよい。
また、高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されないことを考慮すると、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルしないと決定してもよい。
例示的に、現在の符号化ユニットの予測モードがスキップ(skip)モードまたはダイレクト(direct)モードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、現在の符号化ユニットが角度重み付け予測(Angle Weight Prediction、AWPと略称)の利用条件を満たし、または究極の動きベクトル表現(Ultimate Motion Vector Expression、UMVEと略称)の利用条件を満たすなどの条件のうちの1つまたは複数が満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードの場合、または、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たす場合、または、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、または、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、若しくは究極の動きベクトル表現の利用条件を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードの場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、現在の符号化ユニットは第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
また、例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、すなわち上記条件はいずれも満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定してもよい。
また、例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、且つ、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、若しくは究極の動きベクトル表現の利用条件を満たす場合、すなわち上記条件はいずれも満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定してもよい。
例示的に、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことは現在の符号化ユニットの幅および高さがいずれもN0以上であることを含み得る。例示的に、N0=8である。
なお、上記の現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすという記載は本発明の実施例における関連実現の具体的な例に過ぎず、本発明の保護範囲を限定するものではなく、本発明の実施例において、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことは、例えば、現在の符号化ユニットの幅がN0以上であり、現在の符号化ユニットの高さがN0以上であり、または、現在の符号化ユニットの高さおよび幅がいずれもN0以上であり、且つ幅および高さがN0に同時に等しくないなど、他の状況を含み得る。
例示的に、現在の符号化ユニットが角度重み付け予測の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、現在の画像フレームタイプがBピクチャであることと、を含み得る。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含み得る。
一例において、現在の符号化ユニットが第1の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるというサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことと、を含む。
一例において、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディング(Context-based Adaptive Binary Arithmetic Coding,CABAC)を用いるとともに、1つのコンテキストモデルを用いてもよい。
別の例において、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、複数のコンテキストモデルを用いてもよい。例示的に、当該複数のコンテキストモデルは、現在の符号化ユニットのサイズに基づいて決定されてもよい。例示的に、現在の符号化ユニットのサイズは、現在の符号化ユニットの幅および/または高さ、現在の符号化ユニットの幅と高さとのうちの最大値若しくは最小値、または現在の符号化ユニットの幅と高さとの積などを含み得るが、これらに限定されない。
いくつかの実施例において、ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値を取得するステップは、現在の符号化ユニットが第2の解析条件を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析するステップと、それ以外の場合、強化時間動きベクトル予測モードインデックス値が第3の数値であると決定するステップと、を含み得る。
例示的に、強化時間動きベクトル予測モードインデックス値が第3の数値であることは、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
例示的に、強化時間動きベクトル予測モードの使用には一定の条件を満たすことが必要であることが考慮され、当該条件が満たされない場合に、強化時間動きベクトル予測モードが適用せず、この場合に、強化時間動きベクトル予測モードインデックス値はビットストリームから解析する必要がなく、導出してもよい。
例示的に、現在の符号化ユニットが指定条件(本明細書では第2の解析条件と呼ばれる)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析してもよく、それ以外の場合、強化時間動きベクトル予測モードインデックス値が第3の数値であると決定してもよく、当該強化時間動きベクトル予測モードインデックス値が第3の数値であることは、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
例示的に、第3の数値は上記の第1の数値または第2の数値と同じであってもよく、または、第3の数値は上記の第1の数値および第2の数値のいずれとも異なってもよい。
一例において、現在の符号化ユニットが第2の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含み得る。
一例において、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
例示的に、符号化ビットのオーバーヘッドを節約し、符号化・復号性能を向上させるために、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
例えば、強化時間動きベクトル予測モードインデックス値の逆二値化の実現は表1を参照してもよい。
ここで、cu_etmvp_cand_indexは強化時間動きベクトル予測モードインデックス値である。
いくつかの実施例において、ステップS310において、現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの時間参照画像における座標情報を決定するステップと、を含む。
例示的に、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するためには、現在の符号化ユニットが位置する画像(本明細書では現在の画像と呼ばれる)のフレームタイプ(すなわち現在の画像フレームタイプ)を決定し、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定してもよい。
例示的に、現在の画像フレームタイプがPピクチャであれば、時間参照画像は参照画像リスト0(すなわちList0)における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、時間参照画像は参照画像リスト1(すなわちList1)における参照フレームインデックス値が0の参照画像である。
例示的に、マッチング符号化ユニットが位置する時間参照画像を決定した場合、現在の符号化ユニットの座標情報に基づいて、初期マッチング符号化ユニットの当該時間参照画像における座標情報を決定してもよい。
一例において、現在の符号化ユニットの座標情報は現在の符号化ユニットの現在の画像における左上隅座標であり、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標である。
例示的に、マッチング符号化ユニットは初期マッチング符号化ユニットまたはターゲットマッチング符号化ユニットを含み得、すなわち、以下、特に説明しない限り、言及される初期マッチング符号化ユニットの座標情報は初期マッチング符号化ユニットの左上隅座標を指し、ターゲットマッチング符号化ユニットの座標情報はターゲットマッチング符号化ユニットの左上隅座標を指してもよい。
一例において、現在の符号化ユニットの座標情報に基づいて、初期マッチング符号化ユニットの時間参照画像における座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含み得る。
例示的に、1つの最大符号化ユニットは1つまたは複数の符号化ユニットを含み得る。
例示的に、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、現在の符号化ユニットのマッチング符号化ユニットの座標情報を決定してもよい。
一例において、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、初期マッチング符号化ユニットの縦座標を決定するステップと、を含み得る。
例示的に、現在の符号化ユニットの座標情報を現在の符号化ユニットの現在の画像における左上隅座標とし、マッチング符号化ユニットの座標情報をマッチング符号化ユニットの時間参照画像における左上隅座標とする。
例示的に、画像平面内の右向きを座標系の横軸正方向とし、下向きを座標系の縦軸正方向とする(以下同様)ことを例とする。
例えば、(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),((Xpos+4)>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),((Ypos+4)>>3)<<3)
また、例えば、(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=min(((Xpos+4)>>3)<<3,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width))
My=min(((Ypos+4)>>3)<<3,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height))
いくつかの実施例において、ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定するステップと、少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップと、を含み得る。
例示的に、当該少なくとも1つの強化時間動きベクトル予測モード番号は、初期マッチング符号化ユニットの座標情報に対応する強化時間動きベクトル予測モード番号と、初期マッチング符号化ユニットをオフセットすることにより得られた複数の新たなマッチング符号化ユニット(利用可能の場合)に対応する1つまたは複数の強化時間動きベクトル予測モード番号と、を含み得る。
例示的に、初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定した場合、当該少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築してもよい。
例示的に、強化時間候補リストを構築するとき、当該強化時間候補リストの長さを0に初期化してもよく、すなわち当該強化時間候補リストの初期長さは0である。
例示的に、当該強化時間候補リストの長さは、追加される強化時間動きベクトル予測モード番号の数に応じて長くなってもよい。
一例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、を含み得る。
例示的に、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
例示的に、A1は初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックであり、その概略図は図4に示すとおりであってもよい。
例示的に、マッチング符号化ユニットをオフセットするとき、オフセットの単位は8画素であることを例とする。例えば、マッチング符号化ユニットを下にオフセットするとき、マッチング符号化ユニットを下に8画素オフセットする。
本発明の実施例においてマッチング符号化ユニットを上/下/左/右にオフセットすることにより新たなマッチング符号化ユニットが得られることを考慮すると、候補マッチング符号化ユニットを追加して、新たな候補動き情報を追加する。
マッチング符号化ユニットを下にオフセットすることを例とし、A1とC3位置の動き情報が同じであり、且つA2とC4位置の動き情報が同じである場合、マッチング符号化ユニットを下にオフセットして得られた新たなマッチング符号化ユニットの動き情報が元のマッチング符号化ユニットの動き情報と同じである確率が大きいことを考慮すると、今回のオフセットは新たな動き情報を得ることができない可能性がある。
したがって、A1位置の動き情報とC3位置の動き情報、およびA2位置の動き情報とC4位置の動き情報をそれぞれ比較し、2つの比較結果のうちの少なくとも1つの比較結果が不一致である場合、下にオフセットすることによって新たな動き情報を得ることができ、すなわち下にオフセットするによって得られたマッチング符号化ユニットを候補マッチング符号化ユニットとすることができると決定してもよい。
例示的に、マッチング符号化ユニットをオフセットする場合、さらにオフセットした後に得られた新たなマッチング符号化ユニットのオフセット方向における境界が当該マッチング符号化ユニット(オフセット前のマッチング符号化ユニット)の位置する最大符号化ユニットに対応する座標範囲を超えず、すなわち当該最大符号化ユニットのオフセット方向における境界を超えず、且つ当該マッチング符号化ユニットの位置する画像に対応する座標範囲を超えず、すなわち当該画像のオフセット方向における境界を超えないことを保証する必要がある。
例示的に、上向きのオフセットには、オフセット方向における境界は上境界であり、下向きのオフセットには、オフセット方向における境界は下境界であり、左向きのオフセットには、オフセット方向における境界は左境界であり、右向きのオフセットには、オフセット方向における境界は右境界である。
例示的に、依然として下にオフセットすることを例とし、マッチング符号化ユニットを下にオフセットするとき、オフセット後の縦座標(すなわちMy+8)はy_ctb_pos+lcu_size-cu_height以下である(すなわちオフセット後に得られた新たなマッチング符号化ユニットの下境界はオフセット前のマッチング符号化ユニットが位置する最大符号化ユニットの下境界を超えない)ことが必要である一方で、オフセット後の縦座標はvertical_size-cu_height以下である(オフセット後に得られた新たなマッチング符号化ユニットの下境界はオフセット前のマッチング符号化ユニットが位置する画像の下境界を超えない)ことが必要であり、すなわちMy+8はy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であることが必要である。
一例において、ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すステップをさらに含む。
例示的に、マッチング符号化ユニットを上にオフセットすること、下にオフセットすること、左にオフセットすること、および右にオフセットすることはいずれも利用可能な候補マッチング符号化ユニットを得る場合、候補マッチング符号化ユニットはオフセット前のマッチング符号化ユニットと、マッチングにより得られた4つのマッチング符号化ユニットとを含み得、すなわち強化時間候補リストの長さは5であると考慮する。
復号のロバスト性を向上させ、復号エラーを回避するために、上記方式により構築された強化時間候補リストの長さが5未満の場合、ポリシーによって強化時間候補リストの長さを5に拡張してもよい。
例示的に、強化時間候補リストの長さが5未満の場合、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を、強化時間候補リストの長さが5になるまで繰り返してもよい。
いくつかの実施例において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップは、
強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定するステップと、を含み得、
例示的に、(Mx,My)は初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)はターゲットマッチング符号化ユニットの左上隅座標である。
例示的に、マッチング符号化ユニットを上/下/左/右にn個の画素オフセットすることによって新たなマッチング符号化ユニットを得ることを例とする。例示的に、n=8である。
例示的に、初期マッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が0であり、下にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が1であり、右にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が2であり、上にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が3であり、左にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が4であるとする。
上記方式により構築して強化時間候補リストを得た場合、ステップS300で取得された強化時間動きベクトル予測モードインデックス値に基づいて、当該強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得してもよい。
例示的に、強化時間動きベクトル予測モード番号が1であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を下にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMxに等しく、PyはMy+nに等しい。
強化時間動きベクトル予測モード番号が2であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を右にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMx+nに等しく、PyはMyに等しい。
強化時間動きベクトル予測モード番号が3であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を上にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMxに等しく、PyはMy-nに等しい。
強化時間動きベクトル予測モード番号が4であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を左にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMx-nに等しく、PyはMyに等しい。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップを含み得る。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み得る。
例示的に、現在の符号化ユニットの各サブブロックの動き情報を決定する効率を向上させるために、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、当該サブブロックの動き情報が利用可能であるか否かを判断してもよい。
例示的に、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であるか否かを判断してもよく、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であるか否かをそれぞれ判断してもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として前方向動き情報が利用可能な場合、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として後方向動き情報が利用可能な場合(現在の画像フレームタイプがBピクチャの場合)、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として前方向動き情報および後方向動き情報がいずれも利用可能な場合(現在の画像フレームタイプがBピクチャの場合)、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み得る。
例示的に、現在の符号化ユニットの周辺ブロック(本明細書では第1の周辺ブロックと呼ばれる)の動き情報に基づいて現在の符号化ユニット中のサブブロックの動き情報を決定してもよい。
例示的に、現在の符号化ユニットの第1の周辺ブロックは現在の符号化ユニットのいずれかの復号済み隣接ブロックまたは非隣接ブロックを含み得るがこれらに限定されない。
例えば、現在の符号化ユニットの第1の周辺ブロックは図5に示すとおりであってもよい。図5に示すように、Eは現在の符号化ユニットであり、現在の符号化ユニットの第1の周辺ブロックはA、B、C、D、FおよびGのうちのいずれかのブロックを含み得る。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えず、例えば各サブブロックは8*8のブロックである。
一例において、現在の符号化ユニットの第1の周辺ブロックは図5中のFである。例示的に、Fのサイズは8*8であってもよく、すなわち第1の周辺ブロックは現在の符号化ユニットの左下隅に隣接する8*8ブロックである。例示的に、Fのサイズは4*4であってもよく、すなわち第1の周辺ブロックは現在の符号化ユニットの左下隅に隣接する4*4ブロックである。
例示的に、現在の画像フレームタイプがPピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報が利用不可なとき、さらに現在の符号化ユニットの第1の周辺ブロックの動き情報に基づいて、現在の符号化ユニットのサブブロックの動き情報を決定してもよい。
例示的に、現在の画像フレームタイプがBピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、さらに現在の符号化ユニットの第1の周辺ブロックの動き情報に基づいて、現在の符号化ユニットのサブブロックの動き情報を決定してもよい。
例示的に、現在の画像フレームタイプがPピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および現在の画像符号化ユニットの第1の周辺ブロックの前方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、現在の画像フレームタイプがBピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であり、且つ第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
いくつかの実施例において、図6に示すように、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定した後、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップS350をさらに含み得る。
例示的に、上記方式により現在の符号化ユニット中の各サブブロックの動き情報を決定した場合、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行ってもよい。例えば、現在の符号化ユニット中のh行目、l列目のサブブロックの動き情報に基づいて、現在の符号化ユニット中のh行目、l列目のサブブロックに対して動き補償を行ってもよい。
一例において、ステップS350において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないステップと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得るステップと、を含み得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
一例において、サブブロックが双方向オプティカルフロー条件を満たすことは、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可されることと、現在の符号化ユニットの動きベクトル精度が0に等しいことと、当該サブブロックが双方向予測(bi-prediction)を用いることと、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序がそれぞれ現在のフレームの両側に位置することと、を含む。
一例として、本発明の実施例はさらに符号化方法を提供し、当該符号化方法は符号化デバイスに適用することができ、当該方法以下のステップを含み得る。
T100において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。その具体的な実現は図3に示す実施例におけるステップS310を参照してもよく、本発明の実施例はここで説明を省略する。
T110において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。その具体的な実現は図3に示す実施例におけるステップS320を参照してもよく、本発明の実施例はここで説明を省略する。
T120において、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定する。
例示的に、ステップT120で説明された方式により強化時間候補リストを構築した場合、符号化デバイスは強化時間候補リストにおける各候補強化時間動きベクトル予測モード番号をトラバースしてもよい。
いずれかの候補強化時間動きベクトル予測モード番号について、符号化デバイスは当該候補強化時間動きベクトル予測モード番号に基づいて、対応するターゲットマッチング符号化ユニットの座標情報を決定してもよく、その具体的な実現は図3に示す実施例におけるステップS330を参照してもよく、本発明の実施例はここで説明を省略する。
ステップT130において、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定する。その具体的な実現は図3に示す実施例におけるステップS340を参照してもよく、本発明の実施例はここで説明を省略する。
T140において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。その具体的な実現は図6に示す実施例におけるステップS350を参照してもよく、本発明の実施例はここで説明を省略する。
T150において、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送する。
例示的に、符号化デバイスはRDO意思決定に基づいてレート歪みコスト値が最小の予測モードを決定し、最小のレート歪みコスト値に対応する予測モードに基づいて、強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを決定し、ビットストリームに書き込み、復号デバイスに伝送してもよい。
例示的に、上記各実施例の符号化および復号の実現フローは相互に参照してもよい。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、具体的な例に合わせて本発明の実施例にて提供される技術的解決手段について説明する。
実施例1
本発明の実施例は、強化時間動き情報予測方法を提供し、現在の符号化ユニットのco-locatedフレームにおけるコロケーテッド符号化ユニットの動き情報を利用してマッチング符号化ユニットを決定し、検索で得られたマッチング符号化ユニットに対して上下左右など、一連のオフセットを行い、複数の時間候補モードを生成し、周辺の符号化ユニットの動き情報の不正確によるマッチング符号化ユニットの検索が不正確であるという問題をある程度で回避する。
本発明の実施例の主な実現フローは以下の6つの部分を含み得る。
第1の部分において、現在の符号化ユニットの符号化/復号条件に基づいて、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析し、
第2の部分において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
第3の部分において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
第4の部分において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定し、
第5の部分において、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得し、
第6の部分において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、上記の6つの部分の順序を調整してもよい。
実施例2
本発明の実施例にて提供される符号化方法は以下のステップを含み得る。
1、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定し、
2、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
3、強化時間候補リストにおける各強化時間候補モードを順にトラバースし、各モードに対応するターゲットマッチング符号化ユニットの座標情報を決定し、
4、ターゲットマッチング符号化ユニットの座標情報に対応する動き情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を決定し、
5、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行い、
6、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送する。
実施例3
本発明の実施例にて提供される復号方法は以下のステップを含み得る。
1、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得し、取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、ステップ2~6を実行し、
2、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定し、
3、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
4、取得した強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定し、
5、ターゲットマッチング符号化ユニットの座標情報に対応する動き情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を決定し、
6、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
以下、実施例に合わせて、本発明の実施例の主なフローの各部分(すなわち第1の部分~第6の部分のうちの各部分)についてそれぞれ説明する。
第1の部分、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析する。
例示的に、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを解析するステップは、1)、強化時間動きベクトル予測モードフラグ(etmvp_flagと記されてもよい)を解析するステップと、2)、強化時間動きベクトル予測モードインデックス値(cu_etmvp_cand_indexと記されてもよい)を解析するステップと、を含み得る。
実施例4
現在の符号化ユニットが解析条件1(すなわち上記第1の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である(すなわち上記第2の数値は0である)。
例示的に、現在の符号化ユニットが解析条件1を満たす場合はそれぞれ実施例5~実施例10を参照してもよい。
実施例5
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットがスキップモードまたはダイレクトモードであることを含む。
実施例6
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるという制限(すなわち上記予め設定されたサイズ制限)を満たすことを含む。例示的に、N0=8である。
実施例7
現在の符号化ユニットが解析条件1を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることを含む。
実施例8
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことを含む。
例示的に、角度重み付け予測の利用条件は、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、現在の画像フレームタイプがBピクチャであることと、を含み得る。
例示的に、N1=8である。例示的に、N2=64である。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
実施例9
現在の符号化ユニットが解析条件1を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットのサイズが以下の制限を満たし、
2.1)、現在の符号化ユニットの幅および高さがいずれもN0以上であり、例示的に、N0=8であり、
3)、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される。
実施例10
現在の符号化ユニットが解析条件1を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットのサイズが以下の制限を満たし、
2.1)、現在の符号化ユニットの幅および高さがいずれもN0以上であり、例示的に、N0=8であり、
3)、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、
4)、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たす。
例示的に、角度重み付け予測の利用条件は以下を含み得る。
4.1)、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可され、
4.2)、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であり、
4.3)、現在の画像フレームタイプがBピクチャである。
例示的に、N1=8である。例示的に、N2=64である。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
なお、本発明の実施例において、現在の符号化ユニットが解析条件1を満たすことは上記実施例5~実施例10に記載の場合に限定されず、実施例5~実施例8のうち各実施例のいずれか2つを組み合わせて得られた場合、およびいずれか3つを組み合わせて得られた場合(実施例5~実施例7を組み合わせて得られたのは実施例9である)を含み得る。
実施例11
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いる。
実施例12
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、現在の符号化ユニットが解析条件1を満たす具体的な場合は上記実施例における関連説明、例えば実施例5~実施例10のいずれかの実施例の説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
実施例13
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、現在の符号化ユニットが解析条件1を満たす具体的な場合は上記実施例における関連説明、例えば実施例5~実施例10のいずれかの実施例の説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、複数のコンテキストモデルを用いる。
例示的に、当該複数のコンテキストモデルは、現在の符号化ユニットのサイズに基づいて決定されてもよい。
例示的に、現在の符号化ユニットのサイズは、現在の符号化ユニットの幅および/または高さ、現在の符号化ユニットの幅と高さとのうちの最大値若しくは最小値、または現在の符号化ユニットの幅と高さとの積などを含み得るが、これらに限定されない。
実施例14
現在の符号化ユニットが解析条件2(すなわち上記第2の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析し、それ以外の場合、強化時間動きベクトル予測モードインデックス値は0である(すなわち上記第3の数値は0である)。
例示的に、現在の符号化ユニットが解析条件2を満たす場合はそれぞれ実施例15~実施例17を参照してもよい。
実施例15
現在の符号化ユニットが解析条件2を満たすことは、現在の符号化ユニットがスキップモードまたはダイレクトモードであることを含む。
実施例16
現在の符号化ユニットが解析条件2を満たすことは、現在の符号化ユニットが強化時間動きベクトル予測モードであることを含む。
実施例17
現在の符号化ユニットが解析条件2を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットが強化時間動きベクトル予測モードである。
例えば、強化時間動きベクトル予測モードインデックス値のシンタックス記述は以下のとおりであってもよい。
実施例18
現在の符号化ユニットが解析条件2(すなわち上記第2の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析し、それ以外の場合、強化時間動きベクトル予測モードインデックス値は0である(すなわち上記第3の数値は0である)。
例示的に、現在の符号化ユニットが解析条件2を満たす場合は実施例15~実施例17のいずれか1つの実施例における説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列(bins)を用い、各バイナリ文字(bin)は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。例えば、強化時間動きベクトル予測モードインデックス値の逆二値化の実現は表1を参照してもよい。
第2の部分、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップと、を含み得る。
例示的に、時間参照画像における幅および高さが現在の符号化ユニットの幅および高さに一致する時間参照ブロックは現在の符号化ユニットのマッチング符号化ユニットである。
例示的に、現在の画像フレームタイプがPピクチャであれば、時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
例示的に、現在の符号化ユニットの座標情報は現在の符号化ユニットの画像(現在の画像)における左上隅座標であってもよく、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であってもよい。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含み得る。
例示的に、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、現在の最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、初期マッチング符号化ユニットの縦座標を決定するステップと、を含む。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する具体的な実現は、実施例19~実施例21のいずれか1つの実施例の説明を参照してもよい。
実施例19
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),((Xpos+4)>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),((Ypos+4)>>3)<<3)
実施例20
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=min(((Xpos+4)>>3)<<3,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width))
My=min(((Ypos+4)>>3)<<3,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height))
実施例21
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),(Xpos>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),(Ypos>>3)<<3)
実施例22
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出してもよい。
Mx=(Xpos>>shift)<<shift
My=(Ypos>>shift)<<shift)
例示的に、Shiftはサブブロックのサイズに関連し、N*Nサブブロックについて、N=1<<shiftである。例えば、サブブロックの大きさが8*8であれば、shift=3である。
第3の部分、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
例示的に、(Mx,My)は初期マッチング符号化ユニットの時間参照画像における左上隅座標であり、A1~A4、B1~B4、C1~C4は時間参照画像における初期マッチング符号化ユニットの周辺に位置する隣接4*4ブロックであるとし、その概略図は図4に示すとおりであってもよい。
実施例33
23.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
23.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.2、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.3、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.4、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.5、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
23.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
23.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
例示的に、その実現ロジックは以下であってもよい。
1)、EtmvpCandArray[i]を0に初期化し、i=0~4であり、lengthを0に初期化する。
2)まず、EtmvpCandArray[0]=0とし、lengthに1を加える。
3)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、EtmvpCandArray[length]=1とし、lengthに1を加える。
4)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、EtmvpCandArray[length]=2とし、lengthに1を加える。
5)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、EtmvpCandArray[length]=3とし、lengthに1を加える。
6)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、EtmvpCandArray[length]=4とし、lengthに1を加える。
7)、lengthが5未満であれば、以下の操作を繰り返し実行する。
7.1)、EtmvpCandArray[length]=EtmvpCandArray[length-1]とし、lengthに1を加え、
7.2)、lengthが5に等しければ、リスト構築プロセスを終了する。
実施例24
24.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
24.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.2、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.3、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.4、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.5、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
実施例25
25.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
25.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、例示的に、強化時間候補リストの初期長さは0である。
25.2、(Mx,My+8)の位置するマッチング符号化ユニットの下境界が当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.3、(Mx+8,My)の位置するマッチング符号化ユニットの右境界が当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.4、Mx,My-8)の位置するマッチング符号化ユニットの上境界が当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.5、(Mx-8,My)の位置するマッチング符号化ユニットの左境界が当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
25.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
25.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
実施例26
26.0、強化時間候補リストの長さを0に初期化する。
26.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、例示的に、強化時間候補リストの初期長さは0である。
26.2、(Mx,My+8)の位置するマッチング符号化ユニットの下境界が当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.3、(Mx+8,My)の位置するマッチング符号化ユニットの右境界が当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.4、(Mx,My-8)の位置するマッチング符号化ユニットの上境界が当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.5、(Mx-8,My)の位置するマッチング符号化ユニットの左境界が当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
実施例27
27.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
27.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.2、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.3、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.4、My-8がy_ctb_pos以上であり、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.5、Mx-8がx_ctb_pos以上であり、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに添加し、強化時間候補リストの長さに1を加える。
27.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
27.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
27.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
実施例28
28.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
28.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.2、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.3、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.4、My-8がy_ctb_pos以上であり、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.5、Mx-8がx_ctb_pos以上であり、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに添加し、強化時間候補リストの長さに1を加える。
第4の部分、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定する。
例示的に、強化時間動きベクトル予測モードインデックス(EtmvpCandIndexと記されてもよい)に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号(etmvp_modeと記されてもよい)を取得し、強化時間動きベクトル予測モード番号etmvp_modeに基づいて、ターゲットマッチング符号化ユニットの位置座標(Px,Py)を決定して得る。例示的に、
etmvp_mode=EtmvpCandArray[EtmvpCandIndex]である。
実施例29
強化時間動きベクトル予測モード番号に基づいて、ターゲットマッチング符号化ユニットの位置座標(Px,Py)をルックアップテーブルにより決定する。例示的にetmvp_modeとPx、Pyとの対応関係は表2に示すとおりであってもよい。
例示的に、nは8であってもよい。
実施例30
強化時間動きベクトル予測モード番号が0であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニットであり、すなわちPxはMxに等しく、PyはMyに等しく、
強化時間動きベクトル予測モード番号が1であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を下にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMxに等しく、PyはMy+nに等しく、
強化時間動きベクトル予測モード番号が2であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を右にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMx+nに等しく、PyはMyに等しく、
強化時間動きベクトル予測モード番号が3であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を上にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMxに等しく、PyはMy-nに等しく、
強化時間動きベクトル予測モード番号が4であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を左にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMx-nに等しく、PyはMyに等しい。
例示的に、nは8であってもよい。
第5の部分、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得する。
例示的に、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニットの対応する位置のサブブロックの動き情報を決定してもよい。
例示的に、現在の符号化ユニットの第1の周辺ブロックは図5に示すとおりであってもよい。図5に示すように、Eは現在の符号化ユニットであり、現在の符号化ユニットの第1の周辺ブロックはA、B、C、D、FおよびGのうちのいずれかのブロックを含み得る。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えず、例えば各サブブロックは8*8のブロックである。
一例において、現在の符号化ユニットの第1の周辺ブロックは図5中のFである。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの左上隅座標は(Px+(i<<3),Py+(j<<3))であり、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
例示的に、現在の符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの動き情報はMotionArray[i][j]と記され、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
実施例31
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
31.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
31.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
31.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
31.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例32
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
32.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
32.2、当該サブブロックの前方向動き情報が利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例33
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
33.1、現在の画像フレームタイプがPピクチャの場合、
33.1.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.1.2、当該サブブロックの前方向動き情報が利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
33.2、現在の画像フレームタイプがBピクチャの場合、
33.2.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例34
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
34.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
34.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、
34.4.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能な場合、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.2、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可な場合、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.3、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可な場合、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.4、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可な場合、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
実施例35
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
35.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
35.2、当該サブブロックの前方向動き情報が利用不可であれば、
35.2.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能な場合、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
35.2.2、第1の周辺ブロックの前方向動き情報が利用不可な場合、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
実施例36
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
36.1、現在の画像フレームタイプがPピクチャの場合、
36.1.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.1.2、当該サブブロックの前方向動き情報が利用不可であれば、
36.1.2.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.1.2.2、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2、現在の画像フレームタイプがBピクチャの場合、
36.2.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、
36.2.4.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.2、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.3、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.4、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
第6の部分、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えない。
例えば、各サブブロックは8*8サイズのブロックである。
例示的に、現在の符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの動き情報はMotionArray[i][j]と記され、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
実施例37
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
実施例38
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックがBIO条件を満たす場合、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、BIO技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、現在のサブブロックの予測サンプル行列を得、それ以外の場合、現在のサブブロックの動き情報に基づいて現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。例示的に、サブブロックが双方向オプティカルフロー条件を満たすことは以下を含む。
1)、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可され、
2)、現在の符号化ユニットの動きベクトル精度が0に等しく、
3)、当該サブブロックが双方向予測を用い、
4)、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序はそれぞれ現在のフレームの両側に位置する。
実施例39
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に対して復号側動きベクトル調整(DMVR)技術を行わず、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
実施例40
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に対して復号側動きベクトル調整(DMVR)技術を行わず、現在のサブブロックがBIO条件を満たす場合、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、BIO技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、現在のサブブロックの予測サンプル行列を得、それ以外の場合、現在のサブブロックの動き情報に基づいて現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
例示的に、サブブロックが双方向オプティカルフロー条件を満たすことは以下を含む。
1)、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可され、
2)、現在の符号化ユニットの動きベクトル精度が0に等しく、
3)、当該サブブロックが双方向予測を用い、
4)、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序はそれぞれ現在のフレームの両側に位置する。
なお、上記実施例は本発明の実施例の実現方式の具体的な例に過ぎず、本発明の保護範囲を限定するものではなく、上記実施例に基づいて、実施例間の組み合わせ、すなわち1つまたは複数の実施例間の任意の組み合わせ、または実施例の変形により、新たな実施例を得ることができ、それらはいずれも本発明の保護範囲に属するべきである。
また、上記各実施例間は相互に参照してもよく、符号化と復号の実現フローは相互に参照してもよい。
以上、本発明にて提供される方法について説明した。以下、本発明にて提供される装置について説明する。
図7に示すように、図7は本発明の実施例にて提供される復号装置の構造の概略図であり、当該装置は、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得するための取得ユニット710と、前記強化時間動きベクトル予測モードフラグの値が第1の数値の場合、前記現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニット720と、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニット730と、前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニット740と、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニット750と、を含み得る。
いくつかの実施例において、前記取得ユニット710が現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を取得することは、前記現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードフラグの値を解析することと、それ以外の場合、前記強化時間動きベクトル予測モードフラグの値が第2の数値であると決定することと、を含み、前記強化時間動きベクトル予測モードフラグの値が第1の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることを示し、前記強化時間動きベクトル予測モードフラグの値が第2の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件または究極の動きベクトル表現の利用条件を満たすこととのうちの1つまたは複数を含む。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるというサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことと、を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
いくつかの実施例において、前記取得ユニット710が現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値を取得することは、前記現在の符号化ユニットが第2の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードインデックス値を解析することを含む。
いくつかの実施例において、前記現在の符号化ユニットが第2の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
いくつかの実施例において、前記第1の決定ユニット720が現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定することは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定することと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
いくつかの実施例において、前記第1の決定ユニット720が前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することを含む。
いくつかの実施例において、前記第1の決定ユニット720が現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定することと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定することと、を含む。
いくつかの実施例において、前記構築ユニット730が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定することと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記構築ユニット730が前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、を含む。
ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記構築ユニット730が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すことをさらに含む。
いくつかの実施例において、前記第2の決定ユニット740が前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定することは、
強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定することと、
強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定することと、
強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定することと、
強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定することと、
強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定することと、を含み、
ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、前記第3の決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えることを含む。
いくつかの実施例において、前記決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。
いくつかの実施例において、前記決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
いくつかの実施例において、図8に示すように、前記復号装置は、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うための動き補償ユニット760をさらに含む。
いくつかの実施例において、前記動き補償ユニット760が前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うことは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないことと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得ることと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得ることと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
可能な一実施例において、上記復号装置は映像復号器を含み得る。
図9に示すように、本発明の実施例にて提供される復号デバイスのハードウェア構造の概略図である。当該復号デバイスはプロセッサ901と、機械実行可能命令が記憶されている機械可読記憶媒体902とを含み得る。プロセッサ901と機械可読記憶媒体902とはシステムバス903を介して通信可能である。また、プロセッサ901は、機械可読記憶媒体902中の復号制御ロジックに対応する機械実行可能命令を読み取り実行することにより、上述した復号方法を実行することができる。
本明細書で言及される機械可読記憶媒体902は、任意の電子的、磁気的、光学的、または他の物理的記憶装置であってもよく、実行可能命令、データなどの情報を含むか、または記憶することができる。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートハードディスク、任意のタイプの記憶ディスク(例えば光ディスク、dvdなど)、若しくは類似の記憶媒体、またはそれらの組み合わせであってもよい。
いくつかの実施例において、機械実行可能命令が記憶されている機械可読記憶媒体であって、前記機械実行可能命令がプロセッサにより実行されると、上述した復号方法が実施される、機械可読記憶媒体がさらに提供される。例えば、前記機械可読記憶媒体はROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光データ記憶デバイスなどであってもよい。
図10に示すように、図10は本発明の実施例にて提供される符号化装置の構造の概略図であり、当該装置は、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニット1010と、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニット1020と、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニット1030と、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニット1040と、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うための動き補償ユニット1050と、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送するための符号化ユニット1060と、を含み得る。
いくつかの実施例において、前記第1の決定ユニット1010が現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定することは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定することと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
いくつかの実施例において、前記第1の決定ユニット1010が前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することを含む。
いくつかの実施例において、前記第1の決定ユニット1010が現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定することと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定することと、を含む。
いくつかの実施例において、前記構築ユニット1020が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定することと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記構築ユニット1020が前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、を含む。
ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記構築ユニット1020が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すことをさらに含む。
いくつかの実施例において、前記第2の決定ユニット1030が強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定することは、現在トラバースする強化時間動きベクトル予測モード番号について、
当該強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定することと、を含み、
ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、前記第3の決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えることを含む。
いくつかの実施例において、前記決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。
いくつかの実施例において、前記第3の決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含み、ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
いくつかの実施例において、前記動き補償ユニット1050が前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うことは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないことと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得ることと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得ることと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
可能な一実施例において、上記符号化装置は映像符号化器を含み得る。
図11に示すように、本発明の実施例にて提供される符号化デバイスのハードウェア構造の概略図である。当該符号化デバイスはプロセッサ1101と、機械実行可能命令が記憶されている機械可読記憶媒体1102とを含み得る。プロセッサ1101と機械可読記憶媒体1102とはシステムバス1103を介して通信可能である。また、プロセッサ1101は、機械可読記憶媒体1102中の符号化制御ロジックに対応する機械実行可能命令を読み取り実行することにより、上述した符号化方法を実行することができる。
本明細書で言及される機械可読記憶媒体1102は、任意の電子的、磁気的、光学的、または他の物理的記憶装置であってもよく、実行可能命令、データなどの情報を含むか、または記憶することができる。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートハードディスク、任意のタイプの記憶ディスク(例えば光ディスク、dvdなど)、若しくは類似の記憶媒体、またはそれらの組み合わせであってもよい。
いくつかの実施例において、機械実行可能命令が記憶されている機械可読記憶媒体であって、前記機械実行可能命令がプロセッサにより実行されると、上述した符号化方法が実施される、機械可読記憶媒体がさらに提供される。例えば、前記機械可読記憶媒体はROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光データ記憶デバイスなどであってもよい。
いくつかの実施例において、上記実施例のいずれかにおける符号化装置と、上記実施例のいずれかにおける復号装置と、を含むカメラデバイスがさらに提供される。
なお、本明細書において、第1および第2などのような関係用語は1つのエンティティまたは操作を別のエンティティまたは操作と区別するためのものに過ぎず、必ずしもこれらのエンティティまたは操作の間に任意のこのような実際の関係または順序が存在することを要求または示唆するものではない。また、用語の「含む」、「包含」またはその他の任意の変形は非排他的な包含をカバーすることを意図し、それにより、一連の要素を含むプロセス、方法、物品またはデバイスはそれらの要素を含むだけでなく、さらに明確に列挙されない他の要素を含み、またはこのようなプロセス、方法、物品またはデバイスに固有の要素を含む。それ以上の制限がない場合、文の「1つの……を含む」によって限定された要素は、前記要素を含むプロセス、方法、物品またはデバイスに別の同じ要素がさらに存在することを排除するものではない。
以上は本発明の好適な実施例に過ぎず、本発明を限定するものではなく、本発明の精神および原則内で行われる任意の修正、同等の置換、および改善などは、いずれも本発明の保護範囲内に含まれるべきである。
ここでは、例示的な実施例について詳細に説明し、その例を図面において表示する。以下の説明が図面にかかわる場合、特に断りのない限り、異なる図面中の同一の数字は同一または類似の要素を表す。以下の例示的な実施例において説明される実施形態は、本発明に一致するすべての実施形態を代表するものではない。逆に、それらは、添付の特許請求の範囲に詳しく記載されるような、本発明のいくつかの態様に一致する装置および方法の例に過ぎない。
本発明において使用される用語は、特定の実施例を説明するためのものに過ぎず、本発明を限定するものではない。本発明および添付の特許請求の範囲において使用される単数形の「一種」、「前記」および「当該」は、文脈において他の意味が明確に示されない限り、複数形を含むことも意図している。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、本発明の実施例にかかわる技術用語の一部、および従来の映像符号化・復号の主なフローについて簡単に説明する。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、まず本発明の実施例にかかわる技術用語の一部について簡単に説明する。
技術用語:
1、予測画素(Prediction Signal):符号化・復号済みの画素から導出された画素値を指し、元の画素と予測画素との差により残差を得、さらに残差変換量子化および係数符号化を行う。
例示的に、インター予測画素とは現在の画像ブロックの参照フレーム(再構成画素フレーム)から導出された画素値であり、画素位置が離散的であるため、内挿演算によって最終的な予測画素を取得する必要がある。予測画素と元の画素が近いほど、両者を減算して得られた残差エネルギーが小さくなり、符号化圧縮性能が高くなる。
2、動きベクトル(Motion Vector、MVと略称):インター符号化において、MVで現在の符号化ユニットとその参照画像中の最適なマッチング符号化ユニットとの間の相対的な変位を表す。分割された各ブロック(サブブロックと呼ばれてもよい)はいずれも復号側に伝送する必要のある対応する動きベクトルを有する。各サブブロックのMVを独立して符号化と送信を行うと、特に小さなサイズに分割されたサブブロックについて、かなりのビットを消費する必要がある。MVの符号化のためのビット数を低減するために、映像符号化において隣接する画像ブロック間の空間的相関性を利用し、隣接する符号化済みブロックのMVに基づいて現在の符号化対象のブロックのMVを予測し、予測差を符号化する。こうするとMVを表すビット数を効果的に低減することができる。これを基に、現在の画像ブロックのMVを符号化する過程において、一般的には、まず隣接する符号化済みブロックのMVを用いて現在の画像ブロックのMVを予測し、MVの予測値(Motion Vector Prediction、MVPと略称)と動きベクトルの実際の推定値との差、すなわち差分動きベクトル(MotionVector Difference、MVDと略称)を符号化し、それによりMVの符号化のビット数を効果的に低減する。
3、動き情報(Motion Information):MVは現在の符号化ユニットとある参照画像中の最適なマッチング符号化ユニットとの相対的な変位を表すので、画像ブロック向けの情報を正確に取得するために、MV情報の他に、参照画像インデックス情報でどの参照画像を用いたかを表す必要がある。映像符号化技術において、現在の画像に対して、一般的には一定の原則に基づいて、参照画像リストを作成し、参照画像インデックス情報は現在の画像ブロックが参照画像リストにおける何番目の参照画像を用いたかを表す。また、多くの符号化技術は複数の参照画像リストをサポートするので、さらにどの参照画像リストを用いたかを示す1つのインデックス値が必要とされ、当該インデックス値は参照方向と呼ばれてもよい。映像符号化において、MV、参照フレームインデックス、参照方向など、動きに関する符号化情報を動き情報と総称し、例えば、動き情報は、予測参照モードと、L0動きベクトルと、L1動きベクトルと、L0参照インデックスと、L1参照インデックスとからなるインター予測のための5タプルである。
4、レート歪み最適化(Rate-Distortion Optimized、RDOと略称)原則:符号化効率を評価する指標はビットレートとピーク信号対雑音比(Peak Signal to Noise Ratio、PSNRと略称)とを含む。ビットレートが小さければ小さいほど、圧縮率が大きく、PSNRが大きければ大きいほど、再構成画像品質が良好である。モードを選択する際に、判別式は実質的に両者に対する総合的な評価となる。モードに対応するコスト:
J(mode)=D+λ*R。
ここで、Dは歪み(Distortion)を表し、一般的にはSSE(Sum of the Squared Errors、残差平方和)指標を用いて評価され、SSEとは、再構成ブロックとソース画像ブロックとの残差平方和であり、λはラグランジュ乗数であり、Rは当該モードにおいて画像ブロックの符号化に必要な実際のビット数であり、符号化モード情報、動き情報、残差などに必要なビット数の総和を含む。
モードを選択する際に、RDO原則を用いて符号化モードを比較決定すれば、通常、最適な符号化性能が保証できる。
5、双方向オプティカルフロー(BI-directional Optical flow、BIOと略称):BIO技術は、前方向および後方向参照フレームにおける画素値の勾配情報を利用して現在の符号化ユニットにオプティカルフロー補償値を追加する。例示的に、BIOの技術的詳細は以下のとおりであってもよい。
5.1、勾配の和S1、S2、S3、S5、S6を計算する。
ここで、
、
およびθ(i,j)の計算は以下のとおりである。
ここで、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値、後方向動き補償値およびその拡張値である。その拡張方式はブロック境界の動き補償値からコピーしてもよいし、参照画素位置から取得してもよい。
および
は画素点の前方向参照フレームおよび後方向参照フレームにおける水平成分および垂直成分の変化率である。θ(i,j)は前方向動き補償値およびその拡張値と、後方向動き補償値およびその拡張値との画素差分値を表す。
5.2、続いて、改善動きベクトルvxおよびvyを計算する。
ここで、<<は左シフト演算子であり、「x>y?z:a」は「x>y」が成立する場合、値がzであり、「x>y」が成立しない場合、値がaであることを表し、mとthBIOはいずれも閾値であり、rは正則化項であり、ゼロ除算操作を避ける。S1、S2、S3、S5およびS6は画素の勾配の和であり、clip3は中の値が-thBIOとthBIOとの間にあることを保証することを表す。
5.3、改善動きベクトルに基づいてオプティカルフローオフセット値bを取得する。
ここで、(x,y)は現在の符号化ユニット内部の各画素の座標であり、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値、後方向動き補償値およびその拡張値である。
5.4、最後にオプティカルフローオフセット値に基づいて現在の符号化ユニットの各画素の予測値predBIO(x,y)を計算する。
ここで、I(0)(x,y)およびI(1)(x,y)は前方向動き補償値および後方向動き補償値である。
6、復号側動きベクトル調整(Decoder-side Motion Vector Refinement、DMVRと略称):復号側動きベクトル調整技術DMVRはダイレクトモードまたはスキップモードに適用される。
例示的に、DMVRの技術的詳細は以下のとおりである。
6.1、初期MVを利用して予測ブロックと検索領域内に必要な参照画素を取得する。
6.2、最適な整数画素位置を取得する。
例示的に、現在の符号化ユニットの輝度画像ブロックを、重ならず、且つ位置が隣接するサブブロックに分割し、すべてのサブブロックの初期MVはMV0とMV1である。各サブブロックについて、初期MV0およびMV1に対応する位置を中心として、近傍の一定範囲内でテンプレートマッチング歪みが最も小さい位置を探し始め、テンプレートマッチング歪みの計算方式は前方向検索領域における中心位置からのサブブロック幅にサブブロック高さをかけたブロックと、後方向検索領域における中心位置からのサブブロック幅にサブブロック高さをかけたブロックとの間のSAD(Sum of Absolute Differences、差分絶対値和)値を計算することである。
6.3、最適な副画素位置を取得する。
例示的に、副画素位置の確認は整数位置の最適位置、その左側、その右側、その上方、およびその下方の合計で5箇所のテンプレートマッチング歪み値を用い、整数位置の最適位置近傍の二次歪み平面を推定し、歪み平面における歪みが最も小さい位置を算出して副画素位置とする。その計算式は以下のとおりである。
水平副画素位置=(sad_left-sad_right)*N/((sad_right+sad_left-2*sad_mid)*2)
垂直副画素位置=(sad_btm-sad_top)*N/((sad_top+sad_btm-2*sad_mid)*2)
ここで、sad_mid、sad_left、sad_right、sad_topおよびsad_btmは、それぞれ整数位置の最適位置、その左側、その右側、その上方、およびその下方の合計で5箇所のテンプレートマッチング歪み値であり、Nは精度である。
6.4、最適MVに基づいて、最終予測ブロックを算出する。
以下、従来の映像符号化・復号の主なフローについて簡単に説明する。
図1中の(a)に示すように、映像符号化を例とし、映像符号化は一般的に予測、変換、量子化、エントロピー符号化などのプロセスを含み、さらに、符号化プロセスは図1中の(b)のフレームワークに従って実現することができる。
ここで、予測はイントラ予測とインター予測に分けることができ、イントラ予測は、周辺の符号化済みブロックを参照として現在の未符号化ブロックに対して予測を行い、空間的冗長性を効果的に除去する。インター予測は、隣接する符号化済み画像を用いて現在の画像を予測し、時間的冗長性を効果的に除去する。
変換とは、画像を空間領域から変換領域に変換することであり、変換係数を用いて画像を表す。ほとんどの画像は多くの平坦な領域およびゆっくりと変化する領域を含み、適切な変換により画像を空間領域における分散した分布から変換領域における相対的集中した分布に変換することができ、信号間の周波数領域の相関性を除去し、量子化プロセスと合わせて、ビットストリームを効果的に圧縮することができる。
エントロピー符号化は可逆符号化方式であり、一連の要素記号を伝送または記憶のためのバイナリストリームに変換することができ、入力された記号は量子化された変換係数、動きベクトル情報、予測モード情報、変換量子化に関連するシンタックスなどを含み得る。エントロピー符号化は映像要素記号の冗長性を効果的に除去することができる。
以上は符号化を例として紹介し、映像復号は映像符号化のプロセスに対応しており、すなわち映像復号は一般的にエントロピー復号、予測、逆量子化、逆変換、フィルタリングなどのプロセスを含み、各プロセスの実現原理は映像符号化と同一または類似である。
以下、ATMVP技術の実現について簡単に説明する。
従来のATMVP技術の実現は主に以下のフローを含む。
1)、時間動きベクトル予測(Temporal Motion Vector Prediction、TMVPと略称)の決定:現在の符号化ユニットのA0位置の動き情報が以下の条件を満たすか否かを判断する。
a)A0位置が存在し、且つ現在の符号化ユニットと同一のスライス(Slice)およびユニット(Unit)にあり、
b)A0位置の予測モードがインターモードであり、
c)A0位置の参照フレームインデックスが現在のフレームのco-locatedフレームの参照フレームインデックスに一致する(まずL0方向を判断し、続いてL1方向を判断する)。
ここで、A0位置は(xCb-1,yCb+CbHeight-1)の位置であり、(xCb,yCb)は現在のユニットの左上隅の座標であり、CbHeightは現在の符号化ユニットの高さである。
2)、中心参照ブロックの位置の計算:ステップ1)で取得したTMVPの精度は1/16であり、4ビット右シフトして整数画素に変換する必要がある。また、参照ブロックの位置を現在のLCU(Largest Coding Unit、最大符号化ユニット)の参照フレームにおけるコロケーテッドLCUの範囲内にクリップ(Clip)し、すなわち参照ブロックの位置が現在のLCUの参照フレームにおけるコロケーテッドLCUの範囲内にない場合、参照ブロックを現在のLCUの参照フレームにおけるコロケーテッドLCUの範囲内にちょうどあるように水平または/および垂直方向にシフトする必要があり、その概略図を図2に示す。
中心参照ブロックの位置の計算方式は以下に示すとおりである。
xColCb=Clip3(xCtb,Min(PicWidth-1,xCtb+(1<<CtbLog2Size)+3),xColCtrCb+(tempMv[0]>>4))
yColCb=Clip3(yCtb,Min(PicHeight-1,yCtb+(1<<CtbLog2Size)-1),yColCtrCb+(tempMv[1]>>4))
ここで、(xColCb,yColCb)は中心参照ブロックの左上隅の座標であり、(xCtb,yCtb)は現在のLCUの参照フレームにおけるコロケーテッドLCUの左上隅の座標であり、PicWidthおよびPicHeightはそれぞれ現在のフレームの幅および高さであり、CtbLog2Sizeは2を底とした現在のLCUのサイズの対数であり、(xColCtrCb,yColCtrCb)は現在の符号化ユニットの中心位置の座標であり、tempMv[0]およびtempMv[1]はそれぞれA0位置の水平動きベクトルおよび垂直動きベクトルである。
3)、中心参照ブロックの予測モードを判断し、予測モードが非インター予測モードであれば、ctrPredFlagL0およびctrPredFlagL1はいずれも0であり、それ以外の場合、すなわち予測モードがインター予測モードであれば、ステップ4)に移行する。
4)、参照位置の調整:サブブロックのサイズが8*8であるため、動き情報は8*8を単位とする。したがって、中心参照ブロックの左上隅の座標を8倍の座標位置に調整する必要がある。調整式は以下のとおりである。
xColCb=((xColCb>>3)<<3)
yColCb=((yColCb>>3)<<3)
5)、調整された中心参照ブロックの動き情報の取得:調整された中心参照ブロックの予測モードがイントラ予測またはイントラブロックコピー(Intra Block Copy、IBCと略称)モードであれば、FlagLXCol=0であり、それ以外の場合、調整された中心参照ブロックのL0とL1方向の動き情報が存在するか否かをそれぞれ判断し、存在すれば、FlagLXCol=1であり、調整された中心参照ブロックのL0とL1方向の動き情報を取得する。
例示的に、LX=L0またはLX=L1であり、調整された中心参照ブロックの予測モードがイントラ予測モードまたはイントラブロックコピーモードである場合、FlagL0Col=0、且つFlagL1Col=0である。
調整された中心参照ブロックの予測モードがイントラ予測でも、イントラブロックコピーモードでもない場合、調整された中心参照ブロックのL0方向の動き情報が存在するとき、FlagL0Col=1であり、調整された中心参照ブロックのL0方向の動き情報が存在しないとき、FlagL0Col=0であり、調整された中心参照ブロックのL1方向の動き情報が存在するとき、FlagL1Col=1であり、調整された中心参照ブロックのL1方向の動き情報が存在しないとき、FlagL1Col=0である。
FlagLXCol=1の場合、現在のフレームの長期参照フレームとco-locatedフレームの長期参照フレームが等しくなければ、調整された中心参照ブロックの動き情報が利用不可であると決定し、ctrPredFlagLX=0であり、それ以外の場合、調整された中心参照ブロックの動き情報をListX(X=0または1)の最初のフレームを指すようにスケール(scale)し、現在の中心参照ブロック位置の動き情報とし、ctrPredFlagLX=1である。
6)、ctrPredFlagLX=1の場合、各サブブロックの動き情報の計算:マッチング符号化ユニット中の各サブブロックをトラバースし、いずれかのサブブロックについて、当該サブブロックをマッチング符号化ユニットが位置するLCUの範囲内にclipし、clip後のサブブロックの動き情報が利用可能であれば、当該clip後のサブブロックの動き情報をListXの最初のフレームを指すようにスケールし、スケール後の動き情報を現在の符号化ユニットに対応する位置のサブブロックに与え、clip後のサブブロックの動き情報が利用不可であれば、調整された中心参照ブロックの中心位置の動き情報をListXの最初のフレームを指すようにスケールし、スケール後の動き情報を現在の符号化ユニットに対応する位置のサブブロックに与える。
例示的に、現在の符号化ユニットの隣接ブロックの動き情報により、co-located(共同位置)フレームにおいて現在の符号化ユニットの隣接符号化ユニットに対応する符号化ユニットを検索し、co-locatedフレームにおける現在の符号化ユニットに対応する位置の符号化ユニットの内部の各サブブロックの動き情報を現在の符号化ユニット中の各サブブロックに提供して使用させてもよい。
co-locatedフレームにおいて現在の符号化ユニットに対応する位置の符号化ユニットを検索することは現在の符号化ユニットの周辺の符号化ユニットの動き情報に依存する必要があり、周辺の符号化ユニットの動き情報が正確でなければ、検索で得られた対応する位置の符号化ユニットの動き情報も信頼できず、それにより符号化・復号性能に影響を与える。
マッチング符号化ユニットの動作情報の信頼性を向上させ、符号化・復号性能を最適化するために、本発明の実施例は、現在の符号化ユニットのco-locatedフレームにおけるコロケーテッド符号化ユニットの動き情報を利用してマッチング符号化ユニットを決定し、検索で得られたマッチング符号化ユニットに対して上下左右など、一連のオフセットを行い、複数の時間候補モードを生成し、周辺の符号化ユニットの動き情報の不正確によるマッチング符号化ユニットが正確に見つからないという問題をある程度で回避する。
本発明の実施例の主な実現フローは以下の6つの部分を含み得る。
第1の部分(Aと記されてもよい)において、現在の符号化ユニットの符号化/復号条件に基づいて、強化時間動きベクトル予測(Enhanced Temporal Motion Vector Prediction、ETMVPと略称)モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析する。
第2の部分(Bと記されてもよい)において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
第3の部分(Cと記されてもよい)において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
第4の部分(Dと記されてもよい)において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定する。
第5の部分(Eと記されてもよい)において、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得する。
第6の部分(Fと記されてもよい)において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、上記の6つの部分の順序を調整してもよい。
以下、本発明の実施例の上記目的、特徴および利点をより明らかにするために、図面を参照しながら本発明の実施例における技術的解決手段について一層詳細に説明する。
図3に示すように、本発明の実施例にて提供される復号方法のフローチャートであり、ここで、当該復号方法は復号デバイスに適用することができ、図3に示すように、当該復号方法は以下のステップを含み得る。
ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得する。
本発明の実施例において、現在の符号化ユニットは処理対象の画像中のいずれかの符号化ユニットであってもよい。実施する際に、処理対象の画像を異なる符号化ユニットに分割し、各符号化ユニットを一定の順序に従って順次処理してもよい。ここで、各符号化ユニットのサイズおよび形状は予め設定された分割ルールに基づいて設定してもよい。
例示的に、現在の符号化ユニットを復号する場合、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得してもよい。
例示的に、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値をビットストリームから解析してもよく、または、現在の符号化ユニットが一定の条件を満たす場合に導出してもよい。
例示的に、現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値をビットストリームから解析してもよく、または、現在の符号化ユニットが一定の条件を満たす場合に導出してもよい。
取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、ステップS310~ステップS340を実行する。
例示的に、強化時間動きベクトル予測モードフラグの値は、強化時間動きベクトル予測モードをイネーブルすることを示す値(本明細書では第1の数値と呼ばれ、例えば1である)を含み得る。
ステップS310において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
本発明の実施例において、取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすると決定してもよく、この場合、初期マッチング符号化ユニットの座標情報の決定を行ってもよい。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定してもよい。
例示的に、当該初期マッチング符号化ユニットの座標情報は当該初期マッチング符号化ユニットの対応する参照画像における座標情報、例えば左上隅座標であってもよい。
ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
本発明の実施例において、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定した場合、当該初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築してもよい。
例示的に、当該強化時間候補リストは少なくとも1つの強化時間動きベクトル予測モード番号を含む。
例示的に、異なる強化時間動きベクトル予測モード番号に対応するマッチング符号化ユニットの座標情報が異なってもよい。
ステップS330において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定する。
本発明の実施例において、ステップS300で取得した現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定してもよい。
例示的に、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット、または、初期マッチング符号化ユニットに対して上/下/左/右オフセットを行うことにより得られたマッチング符号化ユニットを含み得る。
例示的に、ターゲットマッチング符号化ユニットの座標情報は初期マッチング符号化ユニットの座標情報に一致し、または、初期マッチング符号化ユニットの座標情報を基に、予め設定されたオフセット量に従って調整して得られてもよい。
ステップS340において、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定する。
本発明の実施例において、ターゲットマッチング符号化ユニットの座標情報を決定した場合、当該ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニットの動き情報を決定してもよい。例示的に、ターゲットマッチング符号化ユニットの動き情報はターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含む。
例示的に、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定してもよい。例えば、ターゲットマッチング符号化ユニット中のh行目、l列目のサブブロックの動き情報に基づいて、現在の符号化ユニット中のh行目、l列目のサブブロックの動き情報を決定する。
いくつかの実施例において、ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を取得するステップは、現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから強化時間動きベクトル予測モードのフラグの値を解析するステップと、それ以外の場合、強化時間動きベクトル予測モードフラグの値が第2の数値であると決定するステップであって、当該強化時間動きベクトル予測モードフラグの値が第2の数値であることは現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示すステップと、を含み得る。
例示的に、強化時間動きベクトル予測モードの使用には一般的に一定の条件を満たすことが必要であることが考慮され、当該条件を満たさない場合に、強化時間動きベクトル予測モードは適用できない可能性があり、この場合に、強化時間動きベクトル予測モードフラグの値はビットストリームから解析する必要がなく、導出してもよい。
例示的に、現在の符号化ユニットが指定条件(本明細書では第1の解析条件と呼ばれる)を満たすか否かに基づいて、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析し、または、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を導出すると決定してもよい。
例示的に、現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析し、現在の符号化ユニットが第1の解析条件を満たさない場合、ビットストリームから現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を解析する必要がなく、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないと決定してもよく、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値は、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示すための値(本明細書では第2の数値と呼ばれる)である。
一例において、上記の現在の符号化ユニットが第1の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことと、シーケンスレベルのハイレベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現(Ultimate Motion Vector Expression、UMVE)の利用条件を満たすこととのうちの1つまたは複数を含み得る。
例示的に、時間動きベクトル予測モードの利用には符号化ユニットの予測モードおよびサイズなどに対して一定の要件が求められることを考慮すると、符号化ユニットの予測モードおよび/またはサイズなどが要件を満たすか否かに基づいて、符号化ユニットが適用するか否かを決定してもよい。
また、高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されないことを考慮すると、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルしないと決定してもよい。
例示的に、現在の符号化ユニットの予測モードがスキップ(skip)モードまたはダイレクト(direct)モードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、現在の符号化ユニットが角度重み付け予測(Angle Weight Prediction、AWPと略称)の利用条件を満たし、または究極の動きベクトル表現(Ultimate Motion Vector Expression、UMVEと略称)の利用条件を満たすなどの条件のうちの1つまたは複数が満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードの場合、または、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たす場合、または、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、または、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、若しくは究極の動きベクトル表現の利用条件を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードの場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
例えば、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、現在の符号化ユニットは第1の解析条件を満たすと決定する。
例えば、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たす場合、現在の符号化ユニットが第1の解析条件を満たすと決定する。
また、例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される場合、すなわち上記条件はいずれも満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定してもよい。
また、例えば、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであり、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たし、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、且つ、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、若しくは究極の動きベクトル表現の利用条件を満たす場合、すなわち上記条件はいずれも満たされる場合、現在の符号化ユニットが第1の解析条件を満たすと決定してもよい。
例示的に、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことは現在の符号化ユニットの幅および高さがいずれもN0以上であることを含み得る。例示的に、N0=8である。
なお、上記の現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすという記載は本発明の実施例における関連実現の具体的な例に過ぎず、本発明の保護範囲を限定するものではなく、本発明の実施例において、現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことは、例えば、現在の符号化ユニットの幅がN0以上であり、現在の符号化ユニットの高さがN0以上であり、または、現在の符号化ユニットの高さおよび幅がいずれもN0以上であり、且つ幅および高さがN0に同時に等しくないなど、他の状況を含み得る。
例示的に、現在の符号化ユニットが角度重み付け予測の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、現在の画像フレームタイプがBピクチャであることと、を含み得る。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含み得る。
一例において、現在の符号化ユニットが第1の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるというサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことと、を含む。
一例において、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディング(Context-based Adaptive Binary Arithmetic Coding,CABAC)を用いるとともに、1つのコンテキストモデルを用いてもよい。
別の例において、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、複数のコンテキストモデルを用いてもよい。例示的に、当該複数のコンテキストモデルは、現在の符号化ユニットのサイズに基づいて決定されてもよい。例示的に、現在の符号化ユニットのサイズは、現在の符号化ユニットの幅および/または高さ、現在の符号化ユニットの幅と高さとのうちの最大値若しくは最小値、または現在の符号化ユニットの幅と高さとの積などを含み得るが、これらに限定されない。
いくつかの実施例において、ステップS300において、現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値を取得するステップは、現在の符号化ユニットが第2の解析条件を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析するステップと、それ以外の場合、強化時間動きベクトル予測モードインデックス値が第3の数値であると決定するステップと、を含み得る。
例示的に、強化時間動きベクトル予測モードインデックス値が第3の数値であることは、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
例示的に、強化時間動きベクトル予測モードの使用には一定の条件を満たすことが必要であることが考慮され、当該条件が満たされない場合に、強化時間動きベクトル予測モードが適用せず、この場合に、強化時間動きベクトル予測モードインデックス値はビットストリームから解析する必要がなく、導出してもよい。
例示的に、現在の符号化ユニットが指定条件(本明細書では第2の解析条件と呼ばれる)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析してもよく、それ以外の場合、強化時間動きベクトル予測モードインデックス値が第3の数値であると決定してもよく、当該強化時間動きベクトル予測モードインデックス値が第3の数値であることは、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
例示的に、第3の数値は上記の第1の数値または第2の数値と同じであってもよく、または、第3の数値は上記の第1の数値および第2の数値のいずれとも異なってもよい。
一例において、現在の符号化ユニットが第2の解析条件を満たすことは、現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含み得る。
一例において、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
例示的に、符号化ビットのオーバーヘッドを節約し、符号化・復号性能を向上させるために、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
例えば、強化時間動きベクトル予測モードインデックス値の逆二値化の実現は表1を参照してもよい。
ここで、cu_etmvp_cand_indexは強化時間動きベクトル予測モードインデックス値である。
いくつかの実施例において、ステップS310において、現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの時間参照画像における座標情報を決定するステップと、を含む。
例示的に、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するためには、現在の符号化ユニットが位置する画像(本明細書では現在の画像と呼ばれる)のフレームタイプ(すなわち現在の画像フレームタイプ)を決定し、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定してもよい。
例示的に、現在の画像フレームタイプがPピクチャであれば、時間参照画像は参照画像リスト0(すなわちList0)における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、時間参照画像は参照画像リスト1(すなわちList1)における参照フレームインデックス値が0の参照画像である。
例示的に、マッチング符号化ユニットが位置する時間参照画像を決定した場合、現在の符号化ユニットの座標情報に基づいて、初期マッチング符号化ユニットの当該時間参照画像における座標情報を決定してもよい。
一例において、現在の符号化ユニットの座標情報は現在の符号化ユニットの現在の画像における左上隅座標であり、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標である。
例示的に、マッチング符号化ユニットは初期マッチング符号化ユニットまたはターゲットマッチング符号化ユニットを含み得、すなわち、以下、特に説明しない限り、言及される初期マッチング符号化ユニットの座標情報は初期マッチング符号化ユニットの左上隅座標を指し、ターゲットマッチング符号化ユニットの座標情報はターゲットマッチング符号化ユニットの左上隅座標を指してもよい。
一例において、現在の符号化ユニットの座標情報に基づいて、初期マッチング符号化ユニットの時間参照画像における座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含み得る。
例示的に、1つの最大符号化ユニットは1つまたは複数の符号化ユニットを含み得る。
例示的に、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、現在の符号化ユニットのマッチング符号化ユニットの座標情報を決定してもよい。
一例において、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、初期マッチング符号化ユニットの縦座標を決定するステップと、を含み得る。
例示的に、現在の符号化ユニットの座標情報を現在の符号化ユニットの現在の画像における左上隅座標とし、マッチング符号化ユニットの座標情報をマッチング符号化ユニットの時間参照画像における左上隅座標とする。
例示的に、画像平面内の右向きを座標系の横軸正方向とし、下向きを座標系の縦軸正方向とする(以下同様)ことを例とする。
例えば、(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),((Xpos+4)>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),((Ypos+4)>>3)<<3)
また、例えば、(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=min(((Xpos+4)>>3)<<3,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width))
My=min(((Ypos+4)>>3)<<3,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height))
いくつかの実施例において、ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定するステップと、少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップと、を含み得る。
例示的に、当該少なくとも1つの強化時間動きベクトル予測モード番号は、初期マッチング符号化ユニットの座標情報に対応する強化時間動きベクトル予測モード番号と、初期マッチング符号化ユニットをオフセットすることにより得られた複数の新たなマッチング符号化ユニット(利用可能の場合)に対応する1つまたは複数の強化時間動きベクトル予測モード番号と、を含み得る。
例示的に、初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定した場合、当該少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築してもよい。
例示的に、強化時間候補リストを構築するとき、当該強化時間候補リストの長さを0に初期化してもよく、すなわち当該強化時間候補リストの初期長さは0である。
例示的に、当該強化時間候補リストの長さは、追加される強化時間動きベクトル予測モード番号の数に応じて長くなってもよい。
一例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、を含み得る。
例示的に、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
例示的に、A1は初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックであり、その概略図は図4に示すとおりであってもよい。
例示的に、マッチング符号化ユニットをオフセットするとき、オフセットの単位は8画素であることを例とする。例えば、マッチング符号化ユニットを下にオフセットするとき、マッチング符号化ユニットを下に8画素オフセットする。
本発明の実施例においてマッチング符号化ユニットを上/下/左/右にオフセットすることにより新たなマッチング符号化ユニットが得られることを考慮すると、候補マッチング符号化ユニットを追加して、新たな候補動き情報を追加する。
マッチング符号化ユニットを下にオフセットすることを例とし、A1とC3位置の動き情報が同じであり、且つA2とC4位置の動き情報が同じである場合、マッチング符号化ユニットを下にオフセットして得られた新たなマッチング符号化ユニットの動き情報が元のマッチング符号化ユニットの動き情報と同じである確率が大きいことを考慮すると、今回のオフセットは新たな動き情報を得ることができない可能性がある。
したがって、A1位置の動き情報とC3位置の動き情報、およびA2位置の動き情報とC4位置の動き情報をそれぞれ比較し、2つの比較結果のうちの少なくとも1つの比較結果が不一致である場合、下にオフセットすることによって新たな動き情報を得ることができ、すなわち下にオフセットするによって得られたマッチング符号化ユニットを候補マッチング符号化ユニットとすることができると決定してもよい。
例示的に、マッチング符号化ユニットをオフセットする場合、さらにオフセットした後に得られた新たなマッチング符号化ユニットのオフセット方向における境界が当該マッチング符号化ユニット(オフセット前のマッチング符号化ユニット)の位置する最大符号化ユニットに対応する座標範囲を超えず、すなわち当該最大符号化ユニットのオフセット方向における境界を超えず、且つ当該マッチング符号化ユニットの位置する画像に対応する座標範囲を超えず、すなわち当該画像のオフセット方向における境界を超えないことを保証する必要がある。
例示的に、上向きのオフセットには、オフセット方向における境界は上境界であり、下向きのオフセットには、オフセット方向における境界は下境界であり、左向きのオフセットには、オフセット方向における境界は左境界であり、右向きのオフセットには、オフセット方向における境界は右境界である。
例示的に、依然として下にオフセットすることを例とし、マッチング符号化ユニットを下にオフセットするとき、オフセット後の縦座標(すなわちMy+8)はy_ctb_pos+lcu_size-cu_height以下である(すなわちオフセット後に得られた新たなマッチング符号化ユニットの下境界はオフセット前のマッチング符号化ユニットが位置する最大符号化ユニットの下境界を超えない)ことが必要である一方で、オフセット後の縦座標はvertical_size-cu_height以下である(オフセット後に得られた新たなマッチング符号化ユニットの下境界はオフセット前のマッチング符号化ユニットが位置する画像の下境界を超えない)ことが必要であり、すなわちMy+8はy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であることが必要である。
一例において、ステップS320において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すステップをさらに含む。
例示的に、マッチング符号化ユニットを上にオフセットすること、下にオフセットすること、左にオフセットすること、および右にオフセットすることはいずれも利用可能な候補マッチング符号化ユニットを得る場合、候補マッチング符号化ユニットはオフセット前のマッチング符号化ユニットと、マッチングにより得られた4つのマッチング符号化ユニットとを含み得、すなわち強化時間候補リストの長さは5であると考慮する。
復号のロバスト性を向上させ、復号エラーを回避するために、上記方式により構築された強化時間候補リストの長さが5未満の場合、ポリシーによって強化時間候補リストの長さを5に拡張してもよい。
例示的に、強化時間候補リストの長さが5未満の場合、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を、強化時間候補リストの長さが5になるまで繰り返してもよい。
いくつかの実施例において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップは、
強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定するステップと、
強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定するステップと、を含み得、
例示的に、(Mx,My)は初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)はターゲットマッチング符号化ユニットの左上隅座標である。
例示的に、マッチング符号化ユニットを上/下/左/右にn個の画素オフセットすることによって新たなマッチング符号化ユニットを得ることを例とする。例示的に、n=8である。
例示的に、初期マッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が0であり、下にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が1であり、右にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が2であり、上にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が3であり、左にオフセットして得られたマッチング符号化ユニットに対応する強化時間動きベクトル予測モード番号が4であるとする。
上記方式により構築して強化時間候補リストを得た場合、ステップS300で取得された強化時間動きベクトル予測モードインデックス値に基づいて、当該強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得してもよい。
例示的に、強化時間動きベクトル予測モード番号が1であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を下にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMxに等しく、PyはMy+nに等しい。
強化時間動きベクトル予測モード番号が2であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を右にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMx+nに等しく、PyはMyに等しい。
強化時間動きベクトル予測モード番号が3であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を上にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMxに等しく、PyはMy-nに等しい。
強化時間動きベクトル予測モード番号が4であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を左にn個の画素オフセットして得られた時間参照符号化ユニットであり、すなわちPxはMx-nに等しく、PyはMyに等しい。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップを含み得る。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み得る。
例示的に、現在の符号化ユニットの各サブブロックの動き情報を決定する効率を向上させるために、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、当該サブブロックの動き情報が利用可能であるか否かを判断してもよい。
例示的に、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であるか否かを判断してもよく、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であるか否かをそれぞれ判断してもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として前方向動き情報が利用可能な場合、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として後方向動き情報が利用可能な場合(現在の画像フレームタイプがBピクチャの場合)、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、判断結果として前方向動き情報および後方向動き情報がいずれも利用可能な場合(現在の画像フレームタイプがBピクチャの場合)、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
いくつかの実施例において、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み得る。
例示的に、現在の符号化ユニットの周辺ブロック(本明細書では第1の周辺ブロックと呼ばれる)の動き情報に基づいて現在の符号化ユニット中のサブブロックの動き情報を決定してもよい。
例示的に、現在の符号化ユニットの第1の周辺ブロックは現在の符号化ユニットのいずれかの復号済み隣接ブロックまたは非隣接ブロックを含み得るがこれらに限定されない。
例えば、現在の符号化ユニットの第1の周辺ブロックは図5に示すとおりであってもよい。図5に示すように、Eは現在の符号化ユニットであり、現在の符号化ユニットの第1の周辺ブロックはA、B、C、D、FおよびGのうちのいずれかのブロックを含み得る。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えず、例えば各サブブロックは8*8のブロックである。
一例において、現在の符号化ユニットの第1の周辺ブロックは図5中のFである。例示的に、Fのサイズは8*8であってもよく、すなわち第1の周辺ブロックは現在の符号化ユニットの左下隅に隣接する8*8ブロックである。例示的に、Fのサイズは4*4であってもよく、すなわち第1の周辺ブロックは現在の符号化ユニットの左下隅に隣接する4*4ブロックである。
例示的に、現在の画像フレームタイプがPピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報が利用不可なとき、さらに現在の符号化ユニットの第1の周辺ブロックの動き情報に基づいて、現在の符号化ユニットのサブブロックの動き情報を決定してもよい。
例示的に、現在の画像フレームタイプがBピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、さらに現在の符号化ユニットの第1の周辺ブロックの動き情報に基づいて、現在の符号化ユニットのサブブロックの動き情報を決定してもよい。
例示的に、現在の画像フレームタイプがPピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および現在の画像符号化ユニットの第1の周辺ブロックの前方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
例示的に、現在の画像フレームタイプがBピクチャの場合は、ターゲットマッチング符号化ユニットのサブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であり、且つ第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えてもよい。
いくつかの実施例において、図6に示すように、ステップS340において、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定した後、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップS350をさらに含み得る。
例示的に、上記方式により現在の符号化ユニット中の各サブブロックの動き情報を決定した場合、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行ってもよい。例えば、現在の符号化ユニット中のh行目、l列目のサブブロックの動き情報に基づいて、現在の符号化ユニット中のh行目、l列目のサブブロックに対して動き補償を行ってもよい。
一例において、ステップS350において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないステップと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得るステップと、を含み得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
一例において、サブブロックが双方向オプティカルフロー条件を満たすことは、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可されることと、現在の符号化ユニットの動きベクトル精度が0に等しいことと、当該サブブロックが双方向予測(bi-prediction)を用いることと、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序がそれぞれ現在のフレームの両側に位置することと、を含む。
一例として、本発明の実施例はさらに符号化方法を提供し、当該符号化方法は符号化デバイスに適用することができ、当該方法以下のステップを含み得る。
T100において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。その具体的な実現は図3に示す実施例におけるステップS310を参照してもよく、本発明の実施例はここで説明を省略する。
T110において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。その具体的な実現は図3に示す実施例におけるステップS320を参照してもよく、本発明の実施例はここで説明を省略する。
T120において、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定する。
例示的に、ステップT110で説明された方式により強化時間候補リストを構築した場合、符号化デバイスは強化時間候補リストにおける各候補強化時間動きベクトル予測モード番号をトラバースしてもよい。
いずれかの候補強化時間動きベクトル予測モード番号について、符号化デバイスは当該候補強化時間動きベクトル予測モード番号に基づいて、対応するターゲットマッチング符号化ユニットの座標情報を決定してもよく、その具体的な実現は図3に示す実施例におけるステップS330を参照してもよく、本発明の実施例はここで説明を省略する。
ステップT130において、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定する。その具体的な実現は図3に示す実施例におけるステップS340を参照してもよく、本発明の実施例はここで説明を省略する。
T140において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。その具体的な実現は図6に示す実施例におけるステップS350を参照してもよく、本発明の実施例はここで説明を省略する。
T150において、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送する。
例示的に、符号化デバイスはRDO意思決定に基づいてレート歪みコスト値が最小の予測モードを決定し、最小のレート歪みコスト値に対応する予測モードに基づいて、強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを決定し、ビットストリームに書き込み、復号デバイスに伝送してもよい。
例示的に、上記各実施例の符号化および復号の実現フローは相互に参照してもよい。
以下、当業者が本発明の実施例にて提供される技術的解決手段をよりよく理解できるように、具体的な例に合わせて本発明の実施例にて提供される技術的解決手段について説明する。
実施例1
本発明の実施例は、強化時間動き情報予測方法を提供し、現在の符号化ユニットのco-locatedフレームにおけるコロケーテッド符号化ユニットの動き情報を利用してマッチング符号化ユニットを決定し、検索で得られたマッチング符号化ユニットに対して上下左右など、一連のオフセットを行い、複数の時間候補モードを生成し、周辺の符号化ユニットの動き情報の不正確によるマッチング符号化ユニットの検索が不正確であるという問題をある程度で回避する。
本発明の実施例の主な実現フローは以下の6つの部分を含み得る。
第1の部分において、現在の符号化ユニットの符号化/復号条件に基づいて、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析し、
第2の部分において、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
第3の部分において、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
第4の部分において、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定し、
第5の部分において、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得し、
第6の部分において、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、上記の6つの部分の順序を調整してもよい。
実施例2
本発明の実施例にて提供される符号化方法は以下のステップを含み得る。
1、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定し、
2、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
3、強化時間候補リストにおける各強化時間候補モードを順にトラバースし、各モードに対応するターゲットマッチング符号化ユニットの座標情報を決定し、
4、ターゲットマッチング符号化ユニットの座標情報に対応する動き情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を決定し、
5、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行い、
6、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送する。
実施例3
本発明の実施例にて提供される復号方法は以下のステップを含み得る。
1、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得し、取得した現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値が第1の数値の場合、ステップ2~6を実行し、
2、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定し、
3、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築し、
4、取得した強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、当該強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定し、
5、ターゲットマッチング符号化ユニットの座標情報に対応する動き情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を決定し、
6、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
以下、実施例に合わせて、本発明の実施例の主なフローの各部分(すなわち第1の部分~第6の部分のうちの各部分)についてそれぞれ説明する。
第1の部分、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを符号化/解析する。
例示的に、強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とを解析するステップは、1)、強化時間動きベクトル予測モードフラグ(etmvp_flagと記されてもよい)を解析するステップと、2)、強化時間動きベクトル予測モードインデックス値(cu_etmvp_cand_indexと記されてもよい)を解析するステップと、を含み得る。
実施例4
現在の符号化ユニットが解析条件1(すなわち上記第1の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である(すなわち上記第2の数値は0である)。
例示的に、現在の符号化ユニットが解析条件1を満たす場合はそれぞれ実施例5~実施例10を参照してもよい。
実施例5
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットがスキップモードまたはダイレクトモードであることを含む。
実施例6
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるという制限(すなわち上記予め設定されたサイズ制限)を満たすことを含む。例示的に、N0=8である。
実施例7
現在の符号化ユニットが解析条件1を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることを含む。
実施例8
現在の符号化ユニットが解析条件1を満たすことは、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことを含む。
例示的に、角度重み付け予測の利用条件は、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、現在の画像フレームタイプがBピクチャであることと、を含み得る。
例示的に、N1=8である。例示的に、N2=64である。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
実施例9
現在の符号化ユニットが解析条件1を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットのサイズが以下の制限を満たし、
2.1)、現在の符号化ユニットの幅および高さがいずれもN0以上であり、例示的に、N0=8であり、
3)、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可される。
実施例10
現在の符号化ユニットが解析条件1を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットのサイズが以下の制限を満たし、
2.1)、現在の符号化ユニットの幅および高さがいずれもN0以上であり、例示的に、N0=8であり、
3)、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可され、
4)、現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たす。
例示的に、角度重み付け予測の利用条件は以下を含み得る。
4.1)、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可され、
4.2)、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であり、
4.3)、現在の画像フレームタイプがBピクチャである。
例示的に、N1=8である。例示的に、N2=64である。
例示的に、現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
なお、本発明の実施例において、現在の符号化ユニットが解析条件1を満たすことは上記実施例5~実施例10に記載の場合に限定されず、実施例5~実施例8のうち各実施例のいずれか2つを組み合わせて得られた場合、およびいずれか3つを組み合わせて得られた場合(実施例5~実施例7を組み合わせて得られたのは実施例9である)を含み得る。
実施例11
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いる。
実施例12
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、現在の符号化ユニットが解析条件1を満たす具体的な場合は上記実施例における関連説明、例えば実施例5~実施例10のいずれかの実施例の説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
実施例13
現在の符号化ユニットが解析条件1を満たす場合、ビットストリームから強化時間動きベクトル予測モードフラグを解析し、それ以外の場合、強化時間動きベクトル予測モードフラグの値は0である。
例示的に、現在の符号化ユニットが解析条件1を満たす具体的な場合は上記実施例における関連説明、例えば実施例5~実施例10のいずれかの実施例の説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、複数のコンテキストモデルを用いる。
例示的に、当該複数のコンテキストモデルは、現在の符号化ユニットのサイズに基づいて決定されてもよい。
例示的に、現在の符号化ユニットのサイズは、現在の符号化ユニットの幅および/または高さ、現在の符号化ユニットの幅と高さとのうちの最大値若しくは最小値、または現在の符号化ユニットの幅と高さとの積などを含み得るが、これらに限定されない。
実施例14
現在の符号化ユニットが解析条件2(すなわち上記第2の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析し、それ以外の場合、強化時間動きベクトル予測モードインデックス値は0である(すなわち上記第3の数値は0である)。
例示的に、現在の符号化ユニットが解析条件2を満たす場合はそれぞれ実施例15~実施例17を参照してもよい。
実施例15
現在の符号化ユニットが解析条件2を満たすことは、現在の符号化ユニットがスキップモードまたはダイレクトモードであることを含む。
実施例16
現在の符号化ユニットが解析条件2を満たすことは、現在の符号化ユニットが強化時間動きベクトル予測モードであることを含む。
実施例17
現在の符号化ユニットが解析条件2を満たすことは以下を含む。
1)、現在の符号化ユニットがスキップモードまたはダイレクトモードであり、
2)、現在の符号化ユニットが強化時間動きベクトル予測モードである。
例えば、強化時間動きベクトル予測モードインデックス値のシンタックス記述は以下のとおりであってもよい。
実施例18
現在の符号化ユニットが解析条件2(すなわち上記第2の解析条件)を満たす場合、ビットストリームから強化時間動きベクトル予測モードインデックス値を解析し、それ以外の場合、強化時間動きベクトル予測モードインデックス値は0である(すなわち上記第3の数値は0である)。
例示的に、現在の符号化ユニットが解析条件2を満たす場合は実施例15~実施例17のいずれか1つの実施例における説明を参照してもよい。
例示的に、強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列(bins)を用い、各バイナリ文字(bin)は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。例えば、強化時間動きベクトル予測モードインデックス値の逆二値化の実現は表1を参照してもよい。
第2の部分、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップと、を含み得る。
例示的に、時間参照画像における幅および高さが現在の符号化ユニットの幅および高さに一致する時間参照ブロックは現在の符号化ユニットのマッチング符号化ユニットである。
例示的に、現在の画像フレームタイプがPピクチャであれば、時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
例示的に、現在の符号化ユニットの座標情報は現在の符号化ユニットの画像(現在の画像)における左上隅座標であってもよく、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であってもよい。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含み得る。
例示的に、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、現在の最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、初期マッチング符号化ユニットの縦座標を決定するステップと、を含む。
例示的に、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定する具体的な実現は、実施例19~実施例21のいずれか1つの実施例の説明を参照してもよい。
実施例19
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),((Xpos+4)>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),((Ypos+4)>>3)<<3)
実施例20
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=min(((Xpos+4)>>3)<<3,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width))
My=min(((Ypos+4)>>3)<<3,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height))
実施例21
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、lcu_sizeは最大符号化ユニットのサイズであるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出する。
Mx=Clip3(x_ctb_pos,min(x_ctb_pos+lcu_size-cu_width,horizontal_size-cu_width),(Xpos>>3)<<3)
My=Clip3(y_ctb_pos,min(y_ctb_pos+lcu_size-cu_height,vertical_size-cu_height),(Ypos>>3)<<3)
実施例22
(Xpos,Ypos)は現在の符号化ユニットの画像における左上隅座標であるとすると、以下の方法によりマッチング符号化ユニットの座標(Mx,My)を導出してもよい。
Mx=(Xpos>>shift)<<shift
My=(Ypos>>shift)<<shift)
例示的に、Shiftはサブブロックのサイズに関連し、N*Nサブブロックについて、N=1<<shiftである。例えば、サブブロックの大きさが8*8であれば、shift=3である。
第3の部分、初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築する。
例示的に、(Mx,My)は初期マッチング符号化ユニットの時間参照画像における左上隅座標であり、A1~A4、B1~B4、C1~C4は時間参照画像における初期マッチング符号化ユニットの周辺に位置する隣接4*4ブロックであるとし、その概略図は図4に示すとおりであってもよい。
実施例33
23.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
23.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.2、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.3、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.4、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.5、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
23.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
23.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
23.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
例示的に、その実現ロジックは以下であってもよい。
1)、EtmvpCandArray[i]を0に初期化し、i=0~4であり、lengthを0に初期化する。
2)まず、EtmvpCandArray[0]=0とし、lengthに1を加える。
3)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、EtmvpCandArray[length]=1とし、lengthに1を加える。
4)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、EtmvpCandArray[length]=2とし、lengthに1を加える。
5)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、EtmvpCandArray[length]=3とし、lengthに1を加える。
6)、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、EtmvpCandArray[length]=4とし、lengthに1を加える。
7)、lengthが5未満であれば、以下の操作を繰り返し実行する。
7.1)、EtmvpCandArray[length]=EtmvpCandArray[length-1]とし、lengthに1を加え、
7.2)、lengthが5に等しければ、リスト構築プロセスを終了する。
実施例24
24.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
24.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.2、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.3、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.4、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
24.5、(Mx,My)の位置するマッチング符号化ユニットが当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
実施例25
25.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
25.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、例示的に、強化時間候補リストの初期長さは0である。
25.2、(Mx,My+8)の位置するマッチング符号化ユニットの下境界が当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.3、(Mx+8,My)の位置するマッチング符号化ユニットの右境界が当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.4、Mx,My-8)の位置するマッチング符号化ユニットの上境界が当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.5、(Mx-8,My)の位置するマッチング符号化ユニットの左境界が当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
25.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
25.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
25.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
実施例26
26.0、強化時間候補リストの長さを0に初期化する。
26.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、例示的に、強化時間候補リストの初期長さは0である。
26.2、(Mx,My+8)の位置するマッチング符号化ユニットの下境界が当該マッチング符号化ユニットの位置するLCUまたは画像の下境界を超えず、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.3、(Mx+8,My)の位置するマッチング符号化ユニットの右境界が当該マッチング符号化ユニットの位置するLCUまたは画像の右境界を超えず、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.4、(Mx,My-8)の位置するマッチング符号化ユニットの上境界が当該マッチング符号化ユニットの位置するLCUまたは画像の上境界を超えず、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
26.5、(Mx-8,My)の位置するマッチング符号化ユニットの左境界が当該マッチング符号化ユニットの位置するLCUまたは画像の左境界を超えず、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
実施例27
27.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
27.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.2、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.3、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.4、My-8がy_ctb_pos以上であり、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
27.5、Mx-8がx_ctb_pos以上であり、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに添加し、強化時間候補リストの長さに1を加える。
27.6、強化時間候補リストの長さが5未満であれば、以下の操作を繰り返し実行する。
27.6.1、強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加え、
27.6.2、強化時間候補リストの長さが5に等しければ、リスト構築プロセスを終了する。
実施例28
28.0、強化時間候補リストの長さを0に初期化する。例示的に、強化時間候補リストの初期長さは0である。
28.1、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.2、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、A1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.3、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、A1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.4、My-8がy_ctb_pos以上であり、A3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える。
28.5、Mx-8がx_ctb_pos以上であり、A2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに添加し、強化時間候補リストの長さに1を加える。
第4の部分、強化時間動きベクトル予測モードインデックス値に基づいて、強化時間候補モードリストにおいて対応する強化時間動きベクトル予測モードを取得し、当該強化時間動きベクトル予測モードに対応するターゲットマッチング符号化ユニットの座標情報を決定する。
例示的に、強化時間動きベクトル予測モードインデックス(EtmvpCandIndexと記されてもよい)に基づいて、強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号(etmvp_modeと記されてもよい)を取得し、強化時間動きベクトル予測モード番号etmvp_modeに基づいて、ターゲットマッチング符号化ユニットの位置座標(Px,Py)を決定して得る。例示的に、
etmvp_mode=EtmvpCandArray[EtmvpCandIndex]である。
実施例29
強化時間動きベクトル予測モード番号に基づいて、ターゲットマッチング符号化ユニットの位置座標(Px,Py)をルックアップテーブルにより決定する。例示的にetmvp_modeとPx、Pyとの対応関係は表2に示すとおりであってもよい。
例示的に、nは8であってもよい。
実施例30
強化時間動きベクトル予測モード番号が0であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニットであり、すなわちPxはMxに等しく、PyはMyに等しく、
強化時間動きベクトル予測モード番号が1であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を下にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMxに等しく、PyはMy+nに等しく、
強化時間動きベクトル予測モード番号が2であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を右にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMx+nに等しく、PyはMyに等しく、
強化時間動きベクトル予測モード番号が3であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を上にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMxに等しく、PyはMy-nに等しく、
強化時間動きベクトル予測モード番号が4であれば、ターゲットマッチング符号化ユニットは初期マッチング符号化ユニット全体を左にn個の画素オフセットして得られた時間参照ブロックであり、すなわちPxはMx-nに等しく、PyはMyに等しい。
例示的に、nは8であってもよい。
第5の部分、ターゲットマッチング符号化ユニットの座標情報に基づいて、現在の符号化ユニット中の各サブブロックの動き情報を取得する。
例示的に、ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニットの対応する位置のサブブロックの動き情報を決定してもよい。
例示的に、現在の符号化ユニットの第1の周辺ブロックは図5に示すとおりであってもよい。図5に示すように、Eは現在の符号化ユニットであり、現在の符号化ユニットの第1の周辺ブロックはA、B、C、D、FおよびGのうちのいずれかのブロックを含み得る。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えず、例えば各サブブロックは8*8のブロックである。
一例において、現在の符号化ユニットの第1の周辺ブロックは図5中のFである。
例示的に、ターゲットマッチング符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの左上隅座標は(Px+(i<<3),Py+(j<<3))であり、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
例示的に、現在の符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの動き情報はMotionArray[i][j]と記され、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
実施例31
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
31.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
31.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
31.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
31.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例32
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
32.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
32.2、当該サブブロックの前方向動き情報が利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例33
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
33.1、現在の画像フレームタイプがPピクチャの場合、
33.1.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.1.2、当該サブブロックの前方向動き情報が利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
33.2、現在の画像フレームタイプがBピクチャの場合、
33.2.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
33.2.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、デフォルトの動き情報をパディングする。
例示的に、本発明の実施例はデフォルトの動き情報について制限せず、例えば、デフォルトの動き情報はゼロ動き情報または現在の符号化ユニットの周辺ブロックから導出された動き情報であってもよい。
実施例34
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
34.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
34.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、
34.4.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能な場合、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.2、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可な場合、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.3、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可な場合、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
34.4.4、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可な場合、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
実施例35
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
35.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
35.2、当該サブブロックの前方向動き情報が利用不可であれば、
35.2.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能な場合、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
35.2.2、第1の周辺ブロックの前方向動き情報が利用不可な場合、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
実施例36
ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、
36.1、現在の画像フレームタイプがPピクチャの場合、
36.1.1、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.1.2、当該サブブロックの前方向動き情報が利用不可であれば、
36.1.2.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.1.2.2、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2、現在の画像フレームタイプがBピクチャの場合、
36.2.1、当該サブブロックの前方向動き情報および後方向動き情報がいずれも利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.2、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.3、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、
36.2.4.1、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.2、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.3、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与え、
36.2.4.4、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与える。
第6の部分、現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行う。
例示的に、1つの符号化ユニットは少なくとも1つのサブブロックを含み、各サブブロックの幅は現在の符号化ユニットの幅を超えず、各サブブロックの高さは現在の符号化ユニットの高さを超えない。
例えば、各サブブロックは8*8サイズのブロックである。
例示的に、現在の符号化ユニット中のいずれかのサブブロック(8*8サブブロックを例とする)について、各8*8サブブロックの動き情報はMotionArray[i][j]と記され、iはサブブロックの水平インデックス値であり、jはサブブロックの垂直インデックス値であり、i=0~(cu_width>>3)-1であり、j=0~(cu_height>>3)-1である。
実施例37
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
実施例38
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックがBIO条件を満たす場合、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、BIO技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、現在のサブブロックの予測サンプル行列を得、それ以外の場合、現在のサブブロックの動き情報に基づいて現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。例示的に、サブブロックが双方向オプティカルフロー条件を満たすことは以下を含む。
1)、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可され、
2)、現在の符号化ユニットの動きベクトル精度が0に等しく、
3)、当該サブブロックが双方向予測を用い、
4)、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序はそれぞれ現在のフレームの両側に位置する。
実施例39
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に対して復号側動きベクトル調整(DMVR)技術を行わず、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
実施例40
現在の符号化ユニットのいずれかのサブブロックについて、現在のサブブロックの動き情報に対して復号側動きベクトル調整(DMVR)技術を行わず、現在のサブブロックがBIO条件を満たす場合、現在のサブブロックの動き情報に基づいて、現在のサブブロックに対して動き補償を行い、BIO技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、現在のサブブロックの予測サンプル行列を得、それ以外の場合、現在のサブブロックの動き情報に基づいて現在のサブブロックに対して動き補償を行い、現在のサブブロックの予測サンプル行列を得る。
例示的に、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
例示的に、サブブロックが双方向オプティカルフロー条件を満たすことは以下を含む。
1)、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可され、
2)、現在の符号化ユニットの動きベクトル精度が0に等しく、
3)、当該サブブロックが双方向予測を用い、
4)、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序はそれぞれ現在のフレームの両側に位置する。
なお、上記実施例は本発明の実施例の実現方式の具体的な例に過ぎず、本発明の保護範囲を限定するものではなく、上記実施例に基づいて、実施例間の組み合わせ、すなわち1つまたは複数の実施例間の任意の組み合わせ、または実施例の変形により、新たな実施例を得ることができ、それらはいずれも本発明の保護範囲に属するべきである。
また、上記各実施例間は相互に参照してもよく、符号化と復号の実現フローは相互に参照してもよい。
以上、本発明にて提供される方法について説明した。以下、本発明にて提供される装置について説明する。
図7に示すように、図7は本発明の実施例にて提供される復号装置の構造の概略図であり、当該装置は、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得するための取得ユニット710と、前記強化時間動きベクトル予測モードフラグの値が第1の数値の場合、前記現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニット720と、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニット730と、前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニット740と、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニット750と、を含み得る。
いくつかの実施例において、前記取得ユニット710が現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を取得することは、前記現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードフラグの値を解析することと、それ以外の場合、前記強化時間動きベクトル予測モードフラグの値が第2の数値であると決定することと、を含み、前記強化時間動きベクトル予測モードフラグの値が第1の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることを示し、前記強化時間動きベクトル予測モードフラグの値が第2の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件または究極の動きベクトル表現の利用条件を満たすこととのうちの1つまたは複数を含む。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれもN0以上であるというサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件を満たし、または究極の動きベクトル表現の利用条件を満たすことと、を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
いくつかの実施例において、前記取得ユニット710が現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値を取得することは、前記現在の符号化ユニットが第2の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードインデックス値を解析することを含む。
いくつかの実施例において、前記現在の符号化ユニットが第2の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
いくつかの実施例において、前記第1の決定ユニット720が現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定することは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定することと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
いくつかの実施例において、前記第1の決定ユニット720が前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することを含む。
いくつかの実施例において、前記第1の決定ユニット720が現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定することと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定することと、を含む。
いくつかの実施例において、前記構築ユニット730が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定することと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記構築ユニット730が前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、を含む。
ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記構築ユニット730が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すことをさらに含む。
いくつかの実施例において、前記第2の決定ユニット740が前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定することは、
強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定することと、
強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定することと、
強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定することと、
強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定することと、
強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定することと、を含み、
ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、前記第3の決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えることを含む。
いくつかの実施例において、前記決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。
いくつかの実施例において、前記決定ユニット750が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
いくつかの実施例において、図8に示すように、前記復号装置は、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うための動き補償ユニット760をさらに含む。
いくつかの実施例において、前記動き補償ユニット760が前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うことは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないことと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得ることと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得ることと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
可能な一実施例において、上記復号装置は映像復号器を含み得る。
図9に示すように、本発明の実施例にて提供される復号デバイスのハードウェア構造の概略図である。当該復号デバイスはプロセッサ901と、機械実行可能命令が記憶されている機械可読記憶媒体902とを含み得る。プロセッサ901と機械可読記憶媒体902とはシステムバス903を介して通信可能である。また、プロセッサ901は、機械可読記憶媒体902中の復号制御ロジックに対応する機械実行可能命令を読み取り実行することにより、上述した復号方法を実行することができる。
本明細書で言及される機械可読記憶媒体902は、任意の電子的、磁気的、光学的、または他の物理的記憶装置であってもよく、実行可能命令、データなどの情報を含むか、または記憶することができる。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートハードディスク、任意のタイプの記憶ディスク(例えば光ディスク、dvdなど)、若しくは類似の記憶媒体、またはそれらの組み合わせであってもよい。
いくつかの実施例において、機械実行可能命令が記憶されている機械可読記憶媒体であって、前記機械実行可能命令がプロセッサにより実行されると、上述した復号方法が実施される、機械可読記憶媒体がさらに提供される。例えば、前記機械可読記憶媒体はROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光データ記憶デバイスなどであってもよい。
図10に示すように、図10は本発明の実施例にて提供される符号化装置の構造の概略図であり、当該装置は、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニット1010と、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニット1020と、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニット1030と、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニット1040と、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うための動き補償ユニット1050と、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送するための符号化ユニット1060と、を含み得る。
いくつかの実施例において、前記第1の決定ユニット1010が現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定することは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定することと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像である。
いくつかの実施例において、前記第1の決定ユニット1010が前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することを含む。
いくつかの実施例において、前記第1の決定ユニット1010が現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定することは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定することと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定することと、を含む。
いくつかの実施例において、前記構築ユニット1020が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定することと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記構築ユニット1020が前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築することは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、
Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えることと、を含む。
ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さである。
A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記構築ユニット1020が前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築することは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すことをさらに含む。
いくつかの実施例において、前記第2の決定ユニット1030が強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定することは、現在トラバースする強化時間動きベクトル予測モード番号について、
当該強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定することと、
当該強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定することと、を含み、
ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、前記第3の決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えることを含む。
いくつかの実施例において、前記決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含む。
いくつかの実施例において、前記第3の決定ユニット1040が前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定することは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えることと、を含み、ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
いくつかの実施例において、前記動き補償ユニット1050が前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うことは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないことと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得ることと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得ることと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
可能な一実施例において、上記符号化装置は映像符号化器を含み得る。
図11に示すように、本発明の実施例にて提供される符号化デバイスのハードウェア構造の概略図である。当該符号化デバイスはプロセッサ1101と、機械実行可能命令が記憶されている機械可読記憶媒体1102とを含み得る。プロセッサ1101と機械可読記憶媒体1102とはシステムバス1103を介して通信可能である。また、プロセッサ1101は、機械可読記憶媒体1102中の符号化制御ロジックに対応する機械実行可能命令を読み取り実行することにより、上述した符号化方法を実行することができる。
本明細書で言及される機械可読記憶媒体1102は、任意の電子的、磁気的、光学的、または他の物理的記憶装置であってもよく、実行可能命令、データなどの情報を含むか、または記憶することができる。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートハードディスク、任意のタイプの記憶ディスク(例えば光ディスク、dvdなど)、若しくは類似の記憶媒体、またはそれらの組み合わせであってもよい。
いくつかの実施例において、機械実行可能命令が記憶されている機械可読記憶媒体であって、前記機械実行可能命令がプロセッサにより実行されると、上述した符号化方法が実施される、機械可読記憶媒体がさらに提供される。例えば、前記機械可読記憶媒体はROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光データ記憶デバイスなどであってもよい。
いくつかの実施例において、上記実施例のいずれかにおける符号化装置と、上記実施例のいずれかにおける復号装置と、を含むカメラデバイスがさらに提供される。
本発明の実施例の第1の態様によれば、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得するステップと、前記強化時間動きベクトル予測モードフラグの値が第1の数値の場合、前記現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップと、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップと、前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップと、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップと、を含む復号方法が提供される。
いくつかの実施例において、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値を取得するステップは、前記現在の符号化ユニットが第1の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードフラグの値を解析するステップと、それ以外の場合、前記強化時間動きベクトル予測モードフラグの値が第2の数値であると決定するステップと、を含み、前記強化時間動きベクトル予測モードフラグの値が第1の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることを示し、前記強化時間動きベクトル予測モードフラグの値が第2の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが予め設定されたサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件または究極の動きベクトル表現の利用条件を満たすこととのうちの1つまたは複数を含む。
いくつかの実施例において、前記予め設定されたサイズ制限は現在の符号化ユニットの幅および高さがいずれもN0以上であることを含む。
いくつかの実施例において、N0は8である。
前記現在の符号化ユニットが角度重み付け予測の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、
現在の画像フレームタイプがBピクチャであることと、を含み、前記現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
いくつかの実施例において、現在の符号化ユニットの強化時間動きベクトル予測モードインデックス値を取得するステップは、前記現在の符号化ユニットが第2の解析条件を満たす場合、ビットストリームから前記強化時間動きベクトル予測モードインデックス値を解析するステップを含む。
いくつかの実施例において、前記現在の符号化ユニットが第2の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
いくつかの実施例において、前記現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定するステップと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像であり、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報に基づいて、強化時間候補リストを構築するステップを含む。
いくつかの実施例において、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含む。
いくつかの実施例において、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定するステップと、を含む。
いくつかの実施例において、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定するステップと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、を含み、ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すステップをさらに含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップは、強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定するステップと、強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+nに等しいと決定するステップと、強化時間動きベクトル予測モード番号が2であれば、PxはMx+nに等しく、PyはMyに等しいと決定するステップと、強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-nに等しいと決定するステップと、強化時間動きベクトル予測モード番号が4であれば、PxはMx-nに等しく、PyはMyに等しいと決定するステップと、を含み、ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、Nは8である。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップを含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み、ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップの後に、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップをさらに含む。
いくつかの実施例において、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないステップと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得るステップと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
いくつかの実施例において、サブブロックが双方向オプティカルフロー条件を満たすことは、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可されることと、現在の符号化ユニットの動きベクトル精度が0に等しいことと、当該サブブロックが双方向予測を用いることと、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序がそれぞれ現在のフレームの両側に位置することと、を含む。
いくつかの実施例において、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップは、サブブロックの前方向動き補償値、後方向動き補償値およびオプティカルフローオフセット値に基づいて、当該サブブロックの予測サンプル行列を決定するステップを含む。
本発明の実施例の第2の態様によれば、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップと、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップと、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップと、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップと、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップと、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送するステップと、を含む符号化方法が提供される。
いくつかの実施例において、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うステップは、現在の符号化ユニットのいずれかのサブブロックについて、当該サブブロックの動き情報に対して復号側動きベクトル調整技術を行わないステップと、当該サブブロックが双方向オプティカルフロー条件を満たす場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップと、それ以外の場合、当該サブブロックの動き情報に基づいて当該サブブロックに対して動き補償を行い、当該サブブロックの予測サンプル行列を得るステップと、を含み、ここで、現在の符号化ユニットの予測サンプルは各サブブロックの予測サンプルからなる。
いくつかの実施例において、サブブロックが双方向オプティカルフロー条件を満たすことは、シーケンスレベルの高レベルシンタックスには、双方向オプティカルフロー技術をイネーブルすることが許可されることと、現在の符号化ユニットの動きベクトル精度が0に等しいことと、当該サブブロックが双方向予測を用いることと、当該サブブロックの参照画像リスト0における参照フレームインデックス値がrefIdxL0の参照フレームおよび参照画像リスト1における参照フレームインデックス値がrefIdxL1の参照フレームの表示順序がそれぞれ現在のフレームの両側に位置することと、を含む。
いくつかの実施例において、双方向オプティカルフロー技術を用いて補償後の画素値にオプティカルフローオフセット値を追加し、当該サブブロックの予測サンプル行列を得るステップは、サブブロックの前方向動き補償値、後方向動き補償値およびオプティカルフローオフセット値に基づいて、当該サブブロックの予測サンプル行列を決定するステップを含む。
いくつかの実施例において、対応する強化時間動きベクトル予測モードフラグをビットストリームに書き込むステップは、前記現在の符号化ユニットが第1の解析条件を満たす場合、対応する強化時間動きベクトル予測モードフラグをビットストリームに書き込むステップと、それ以外の場合、対応する強化時間動きベクトル予測モードフラグの値が第2の数値であると決定するステップと、を含み、前記強化時間動きベクトル予測モードフラグの値が第1の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることを示し、前記強化時間動きベクトル予測モードフラグの値が第2の数値であることは、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルしないことを示す。
いくつかの実施例において、前記現在の符号化ユニットが第1の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットのサイズが、現在の符号化ユニットの幅および高さがいずれも8以上であるというサイズ制限を満たすことと、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが強化時間動きベクトル予測技術をイネーブルすることが許可されることと、前記現在の符号化ユニットが角度重み付け予測の利用条件または究極の動きベクトル表現の利用条件を満たすことと、のうちの1つまたは複数を含む。
いくつかの実施例において、前記現在の符号化ユニットが角度重み付け予測の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、現在の符号化ユニットが角度重み付け予測技術をイネーブルすることが許可されることと、現在の符号化ユニットの幅および高さがいずれもN1以上であり、現在の符号化ユニットの幅および高さがいずれもN2以下であることと、現在の画像フレームタイプがBピクチャであることと、を含み、前記現在の符号化ユニットが究極の動きベクトル表現の利用条件を満たすことは、シーケンスレベルの高レベルシンタックスには、前記現在の符号化ユニットが究極の動きベクトル表現技術をイネーブルすることが許可されることを含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードフラグはコンテキスト適応型バイナリ算術コーディングを用いるとともに、1つのコンテキストモデルを用いる。
いくつかの実施例において、強化時間動きベクトル予測モードインデックス値をビットストリームに書き込むステップは、前記現在の符号化ユニットが第2の解析条件を満たす場合、強化時間動きベクトル予測モードインデックス値をビットストリームに書き込むステップを含む。
いくつかの実施例において、前記現在の符号化ユニットが第2の解析条件を満たすことは、前記現在の符号化ユニットの予測モードがスキップモードまたはダイレクトモードであることと、前記現在の符号化ユニットが強化時間動きベクトル予測モードをイネーブルすることとのうちの1つまたは複数を含む。
いくつかの実施例において、前記強化時間動きベクトル予測モードインデックス値の逆二値化は最大値が4のトランケーテッド・ユーナリに基づいて実現され、前記トランケーテッド・ユーナリは最大4つのバイナリ文字列を用い、各バイナリ文字は単独のコンテキストモデルを用い、合計で4つのコンテキストモデルを用いる。
いくつかの実施例において、前記現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するステップは、現在の画像フレームタイプに基づいて、マッチング符号化ユニットが位置する時間参照画像を決定するステップと、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定するステップと、を含み、ここで、前記現在の画像フレームタイプがPピクチャであれば、前記時間参照画像は参照画像リスト0における参照フレームインデックス値が0の参照画像であり、現在の画像フレームタイプがBピクチャであれば、前記時間参照画像は参照画像リスト1における参照フレームインデックス値が0の参照画像であり、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報に基づいて、強化時間候補リストを構築するステップを含む。
いくつかの実施例において、前記現在の符号化ユニットの座標情報に基づいて、前記初期マッチング符号化ユニットの前記時間参照画像における座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップを含む。
いくつかの実施例において、現在の最大符号化ユニットの画像における左上隅座標、最大符号化ユニットのサイズ、現在の画像のサイズ、現在の符号化ユニットのサイズ、現在の符号化ユニットの画像における左上隅座標に基づいて、初期マッチング符号化ユニットの座標情報を決定するステップは、現在の最大符号化ユニットの画像における左上隅横座標、最大符号化ユニットのサイズ、現在の符号化ユニットの幅、現在の画像の幅、現在の符号化ユニットの画像における左上隅横座標に基づいて、前記初期マッチング符号化ユニットの横座標を決定するステップと、現在の最大符号化ユニットの画像における左上隅縦座標、最大符号化ユニットのサイズ、現在の符号化ユニットの高さ、現在の画像の高さ、現在の符号化ユニットの画像における左上隅縦座標に基づいて、前記初期マッチング符号化ユニットの縦座標を決定するステップと、を含む。
いくつかの実施例において、強化時間候補リストにおける各強化時間動きベクトル予測モード番号を順にトラバースし、各強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するステップは、強化時間動きベクトル予測モード番号が0であれば、PxはMxに等しく、PyはMyに等しいと決定するステップと、強化時間動きベクトル予測モード番号が1であれば、PxはMxに等しく、PyはMy+8に等しいと決定するステップと、強化時間動きベクトル予測モード番号が2であれば、PxはMx+8に等しく、PyはMyに等しいと決定するステップと、強化時間動きベクトル予測モード番号が3であれば、PxはMxに等しく、PyはMy-8に等しいと決定するステップと、強化時間動きベクトル予測モード番号が4であれば、PxはMx-8に等しく、PyはMyに等しいと決定するステップと、を含み、ここで、(Mx,My)は前記初期マッチング符号化ユニットの左上隅座標であり、(Px,Py)は前記ターゲットマッチング符号化ユニットの左上隅座標である。
いくつかの実施例において、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記初期マッチング符号化ユニットの座標情報に基づいて、少なくとも1つの強化時間動きベクトル予測モード番号を決定するステップと、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップと、を含む。
いくつかの実施例において、マッチング符号化ユニットの座標情報はマッチング符号化ユニットの時間参照画像における左上隅座標であり、前記少なくとも1つの強化時間動きベクトル予測モード番号に基づいて、強化時間候補リストを構築するステップは、強化時間動きベクトル予測モード番号0を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、My+8がy_ctb_pos+lcu_size-cu_heightとvertical_size-cu_heightとのうちの小さい値以下であり、且つA1位置の動き情報とC3位置の動き情報が異なり、またはA2位置の動き情報とC4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号1を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、Mx+8がx_ctb_pos+lcu_size-cu_widthとhorizontal_size-cu_widthとのうちの小さい値以下であり、且つA1位置の動き情報とB2位置の動き情報が異なり、またはA3位置の動き情報とB4位置の動き情報が異なれば、強化時間動きベクトル予測モード番号2を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、My-8がy_ctb_pos以上であり、且つA3位置の動き情報とC1位置の動き情報が異なり、またはA4位置の動き情報とC2位置の動き情報が異なれば、強化時間動きベクトル予測モード番号3を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、Mx-8がx_ctb_pos以上であり、且つA2位置の動き情報とB1位置の動き情報が異なり、またはA4位置の動き情報とB3位置の動き情報が異なれば、強化時間動きベクトル予測モード番号4を強化時間候補リストに追加し、強化時間候補リストの長さに1を加えるステップと、を含み、ここで、(Mx,My)は前記初期マッチング符号化ユニットの座標情報であり、(x_ctb_pos,y_ctb_pos)は現在の最大符号化ユニットの画像における左上隅座標であり、lcu_sizeは最大符号化ユニットのサイズであり、cu_widthおよびcu_heightはそれぞれ現在の符号化ユニットの幅および高さであり、horizontal_sizeおよびvertical_sizeはそれぞれ現在の画像の幅および高さであり、A1は前記初期マッチング符号化ユニットの左上隅の4*4ブロックであり、B1はA1の真左側の4*4ブロックであり、C1はA1の真上の4*4ブロックであり、A2は前記初期マッチング符号化ユニットの右上隅の4*4ブロックであり、B2はA2の真右側の4*4ブロックであり、C2はA2の真上の4*4ブロックであり、A3は前記初期マッチング符号化ユニットの左下隅の4*4ブロックであり、B3はA3の真左側の4*4ブロックであり、C3はA3の真下の4*4ブロックであり、A4は前記初期マッチング符号化ユニットの右下隅の4*4ブロックであり、B4はA4の真右側の4*4ブロックであり、C4はA4の真下の4*4ブロックである。
いくつかの実施例において、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するステップは、前記強化時間候補リストの長さが5未満の場合、強化時間候補リストの長さが5に等しくなるまで、現在の強化時間候補リストにおける最後の強化時間動きベクトル予測モード番号と同じの強化時間動きベクトル予測モード番号を強化時間候補リストに追加し、強化時間候補リストの長さに1を加える操作を繰り返すステップをさらに含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、当該サブブロックの前方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップを含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがBピクチャの場合、当該サブブロックの前方向動き情報および後方向動き情報が利用可能であれば、当該サブブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ前記現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可であれば、当該サブブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、当該サブブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可であれば、当該サブブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含む。
いくつかの実施例において、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するステップは、ターゲットマッチング符号化ユニット中のいずれかのサブブロックについて、現在の画像フレームタイプがPピクチャの場合、サブブロックの前方向動き情報が利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報が利用可能なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、現在の画像フレームタイプがBピクチャの場合、サブブロックの前方向動き情報および後方向動き情報がいずれも利用不可であれば、現在の符号化ユニットの第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用可能なとき、第1の周辺ブロックの前方向動き情報および後方向動き情報をそれぞれList0の最初のフレームおよびList1の最初のフレームを指すようにスケールし、スケール後の前方向動き情報および後方向動き情報をそれぞれ現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報が利用可能であるが、後方向動き情報が利用不可なとき、第1の周辺ブロックの前方向動き情報をList0の最初のフレームを指すようにスケールし、スケール後の前方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの後方向動き情報が利用可能であるが、前方向動き情報が利用不可なとき、第1の周辺ブロックの後方向動き情報をList1の最初のフレームを指すようにスケールし、スケール後の後方向動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、第1の周辺ブロックの前方向動き情報および後方向動き情報がいずれも利用不可なとき、ゼロ動き情報を現在の符号化ユニットの対応する位置のサブブロックに与えるステップと、を含み、ここで、前記第1の周辺ブロックは前記現在の符号化ユニットのいずれかの復号済み隣接ブロックを含む。
本発明の実施例の第3の態様によれば、現在の符号化ユニットの強化時間動きベクトル予測モードフラグの値と強化時間動きベクトル予測モードインデックス値とを取得するための取得ユニットと、前記強化時間動きベクトル予測モードフラグの値が第1の数値の場合、前記現在の符号化ユニットの座標情報に基づいて、前記現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニットと、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニットと、前記強化時間動きベクトル予測モードインデックス値に基づいて、前記強化時間候補リストにおいて対応する強化時間動きベクトル予測モード番号を取得し、前記強化時間動きベクトル予測モード番号に対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニットと、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニットと、を含む復号装置が提供される。
本発明の実施例の第4の態様によれば、現在の符号化ユニットの座標情報に基づいて、現在の符号化ユニットの初期マッチング符号化ユニットの座標情報を決定するための第1の決定ユニットと、前記初期マッチング符号化ユニットの座標情報に基づいて、強化時間候補リストを構築するための構築ユニットと、強化時間候補リストにおける各強化時間候補モードを順にトラバースし、各モードに対応するターゲットマッチング符号化ユニットの座標情報を決定するための第2の決定ユニットと、前記ターゲットマッチング符号化ユニットの座標情報に基づいて、ターゲットマッチング符号化ユニット中の各サブブロックの動き情報を含むターゲットマッチング符号化ユニットの動き情報を決定し、前記ターゲットマッチング符号化ユニット中の各サブブロックの動き情報に基づいて、前記現在の符号化ユニット中の対応する位置のサブブロックの動き情報を決定するための第3の決定ユニットと、前記現在の符号化ユニット中の各サブブロックの動き情報に基づいて、現在の符号化ユニット中の対応するサブブロックに対して動き補償を行うための動き補償ユニットと、強化時間動きベクトル予測モードに対応するレート歪みコスト値を計算し、当該レート歪みコスト値を他の予測モードのレート歪みコスト値と比較し、最小のレート歪みコスト値に対応する予測モードを選択し、対応する強化時間動きベクトル予測モードフラグと強化時間動きベクトル予測モードインデックス値とをビットストリームに書き込み、復号デバイスに伝送するための符号化ユニットと、を含む符号化装置が提供される。
本発明の実施例の第5の態様によれば、プロセッサと機械可読記憶媒体とを含み、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶され、前記プロセッサは第1の態様の復号方法を実施するように機械実行可能命令を実行するために用いられる、復号デバイスが提供される。
本発明の実施例の第6の態様によれば、プロセッサと機械可読記憶媒体とを含み、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶され、前記プロセッサは第2の態様の符号化方法を実施するように機械実行可能命令を実行するために用いられる、符号化デバイスが提供される。
本発明の実施例の第7の態様によれば、プロセッサにより実行されると第1の態様または第2の態様の方法が実施される機械実行可能命令を記憶する機械可読記憶媒体が提供される。
なお、本明細書において、第1および第2などのような関係用語は1つのエンティティまたは操作を別のエンティティまたは操作と区別するためのものに過ぎず、必ずしもこれらのエンティティまたは操作の間に任意のこのような実際の関係または順序が存在することを要求または示唆するものではない。また、用語の「含む」、「包含」またはその他の任意の変形は非排他的な包含をカバーすることを意図し、それにより、一連の要素を含むプロセス、方法、物品またはデバイスはそれらの要素を含むだけでなく、さらに明確に列挙されない他の要素を含み、またはこのようなプロセス、方法、物品またはデバイスに固有の要素を含む。それ以上の制限がない場合、文の「1つの……を含む」によって限定された要素は、前記要素を含むプロセス、方法、物品またはデバイスに別の同じ要素がさらに存在することを排除するものではない。
以上は本発明の好適な実施例に過ぎず、本発明を限定するものではなく、本発明の精神および原則内で行われる任意の修正、同等の置換、および改善などは、いずれも本発明の保護範囲内に含まれるべきである。