以下で、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決策を明確かつ完全に記載する。当然ながら、記載される実施形態は、本発明の実施形態のすべてではなく、一部である。創造的な努力なしに本発明の実施形態に基づいて、当業者によって取得されるすべての他の実施形態は、本発明の保護範囲内に入るべきである。
図1は、本発明の一実施形態による、ビデオ画像符号化方法の概略フローチャートである。図1に示された方法は、エンコーダなどの符号化デバイスによって実行される場合がある。具体的には、図1に示されたように、方法100は以下のステップを含む。
S110.現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループは現在符号化中ブロックの少なくとも1つの動きベクトルを含む。
S120.動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定し、運動モデル初期化ベクトルは少なくとも4つの成分を含む。
S130.第1の成分セットの予測値に従って第1の成分セットの送信されるべき値を決定する。
S140.第1の成分セットの送信されるべき値を符号化し、符号化された第1の成分セットの送信されるべき値をデコーダ側に送信する。
具体的には、現在符号化中ブロックの動きベクトルグループが決定され、動きベクトルグループは現在符号化中ブロック内のピクセルに対応する少なくとも1つの動きベクトルを含む。動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値が決定され、運動モデル初期化ベクトルは少なくとも4つの成分を含み、第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。次いで、現在符号化中ブロックに従って運動モデル量子化精度および運動モデル最適化ベクトルが決定され、量子化精度に従って運動モデル最適化ベクトルが量子化される。運動モデル初期化ベクトルの第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値が決定される場合があり、第1の成分セットの送信されるべき値が符号化され、デコーダ側に送信され、その結果、デコーダ側は復号動作を実施する。さらに、量子化された運動モデル最適化ベクトルに従って現在符号化中ブロックの予測サンプルが決定される場合があり、予測サンプルに従って、現在符号化中ブロックが符号化され、送信される。
したがって、本発明のこの実施形態におけるビデオ画像符号化方法によれば、現在符号化中ブロックの動きベクトルグループが決定され、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルが決定され、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値が決定され、運動モデルの送信されるべき値が送信用に符号化され、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
本発明のこの実施形態では、インター予測に関するすべての符号化規格におけるビデオ画像符号化プロセスの場合、アフィン運動モデル、一般運動モデル、または透視モデルなどの複数の運動モデルが、動き補償計算プロセスにおいて使用される場合がある。本明細書では、説明用の例としてアフィン運動モデルが使用されるが、本発明はそれに限定されない。
S110において、現在符号化中ブロックの動きベクトルグループが決定される。動きベクトルグループは現在符号化中ブロックの少なくとも1つの動きベクトルを含み、各動きベクトルは現在符号化中ブロック内のピクセルに対応している場合がある。運動モデルを記述するために必要とされるパラメータの数は、運動モデル間で異なる。2n個のパラメータを有する運動モデルの場合、現在符号化中ブロックの動きベクトルグループは、全般に、n個の動きベクトルを含む場合がある。たとえば、アフィン運動の場合、現在符号化中ブロック内のすべてのピクセルがアフィン運動モデルを使用することによって表されると、全般に、アフィン運動モデルは
として表現される場合がある。すなわち、アフィン運動モデルは6つのパラメータを有し、動きベクトルグループは少なくとも3つの動きベクトルを含む。一般運動モデルの場合、全般に12個のパラメータが使用され、動きベクトルグループは少なくとも6つの動きベクトルを含む。場合によっては、動きベクトルグループの少なくとも1つの動きベクトルを決定することは、動きベクトルグループの1つの動きベクトルを決定すること、または動きベクトルグループのn個の動きベクトルもしくはすべての動きベクトルを決定することであり得る。たとえば、アフィン運動の場合、動きベクトルグループは少なくとも3つの動きベクトルを含む場合があり、現在符号化中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの1つの動きベクトル、3つの動きベクトル、またはすべての動きベクトルを決定することであり得る。本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。動きベクトルグループは3つの動きベクトルを含み、現在符号化中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの少なくともの1つの動きベクトルを決定することであり得る。HEVC(High Efficiency Video Coding)規格の場合、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルは、AMVP(Advanced Motion Vector Prediction)技術を使用することによって決定される場合がある。具体的には、最初に、現在符号化中ブロックのまわりに隣接する符号化ブロックから、現在符号化中ブロックの複数の候補ブロックが決定される。複数の候補ブロックは座標位置に従って決定される場合があり、複数の候補ブロックは現在符号化中ブロックに隣接する。たとえば、図2に示されたように、現在符号化中ブロックの場合、全般に、現在符号化中ブロックの複数の候補ブロックとして、A〜Gが決定される場合がある。次いで、各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値が決定される。具体的には、候補ブロックの動きベクトルに対応する予測ブロックは、候補ブロックの動きベクトルおよび現在符号化中ブロックに従って基準フレーム内で決定され、次いで、予測ブロックと現在符号化中ブロックとの間の整合エラー値が計算され、最小整合エラー値に対応する候補ブロックが現在符号化中ブロックの対象候補ブロックとして決定される。次に、現在符号化中ブロックの基準フレームのピクチャ順序カウント(POC)および対象候補ブロックの基準フレームのピクチャ順序カウント(POC)が個別に決定される。対象候補ブロックの基準フレームのピクチャ順序カウント(POC)に対する現在符号化中ブロックの基準フレームのピクチャ順序カウント(POC)の比率に従って、対象候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された対象候補ブロックの動きベクトルが、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定される。対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率は、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在符号化中ブロックの基準フレームのピクチャ順序カウントの比率と同じである。
本発明のこの実施形態では、決定された対象候補ブロックの動きベクトルは、後続の動き推定における探索開始点として決定される場合がある。符号化デバイスは、対象候補ブロックに対応するインデックス値を符号化し、符号化されたインデックス値をデコーダ側に送信することができ、その結果、デコーダ側は、復号を実施し、対象候補ブロックおよび対象候補ブロックの動きベクトルを決定する。
本発明のこの実施形態では、各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値は、以下の方法に従って決定される場合がある。具体的には、現在符号化中ブロック内のピクセルごとに、各ピクセルの整合エラー値は、以下の式(1)〜(4):
に従って決定される場合があり、
ここで、s(x
i,y
j)はピクセルの元のピクセル値であり、s’(x
i,y
j)は候補ブロックが指すフレーム内のピクセルの予測ピクセル値であり、x
iおよびy
iはピクセルの座標値であり、Gx
iはピクセルの位置の水平勾配であり、Gy
iはピクセルの位置の垂直勾配である。これらの勾配は、ソーベル(Sobel)演算子を使用することによる計算を介して取得される場合がある。
本発明のこの実施形態では、前述の式に従って、候補ブロックの動きベクトルに対応する予測ブロックに対する現在符号化中ブロック内の各ピクセルの整合エラー値が決定される場合がある。現在符号化中ブロック内のすべてのピクセルの整合エラー値の絶対値が加算され、現在符号化中ブロックと候補ブロックに対応する予測ブロックとの間の整合エラー値が取得される場合がある。しかしながら、本発明はそれに限定されない。前述の方法に従って、現在符号化中ブロックと各候補ブロックに対応する予測ブロックとの間の整合エラー値が順次決定される。最小整合エラー値に対応する候補ブロックが、現在符号化中ブロックの対象候補ブロックとして使用される。
場合によっては、一実施形態では、アフィン運動が一例として使用される。現在符号化中ブロックの動きベクトルグループが決定される。動きベクトルグループは3つの動きベクトルを含む。1つの動きベクトル、すなわち第1の動きベクトルが前述の方法に従って決定された後、図2に示されたように、第1の動きベクトルは、現在符号化中ブロックの頂点に対応する動きベクトルであり得る。場合によっては、現在符号化中ブロックの頂点に隣接する2つの頂点の動きベクトルが、動きベクトルグループ内の他の動きベクトルとして選択される場合がある。動きベクトルグループは{v0,v1,v2}として表現される場合があり、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)であり、ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。
場合によっては、一実施形態では、アフィン運動が一例として使用される。動きベクトルグループは3つの動きベクトルを含み、現在符号化中ブロックの動きベクトルグループを決定することは、動きベクトルグループの各動きベクトルを決定することであり得る。具体的には、最初に、現在符号化中ブロックのまわりに隣接する複数の符号化ブロックが、複数の候補ブロックとして決定される場合がある。複数の候補ブロックは、現在符号化中ブロック内の同じピクセルに対応している。場合によっては、そのピクセルは現在符号化中ブロックの頂点であり得る。たとえば、図2に示されたように、現在符号化中ブロックの複数の候補ブロックとして、A、B、およびCが決定される場合がある。式(1)〜(4)に従って、各候補ブロックの動きベクトルに対応する予測ブロックに対する現在符号化中ブロック内の各ピクセルの整合エラー値が個別に決定される。次いで、すべてのピクセルの整合エラー値の絶対値が加算される。現在符号化中ブロックに対する各候補ブロックの整合エラー値が決定される。最小整合エラー値に対応する候補ブロックが、現在符号化中ブロックの対象候補ブロックとして選択される。対象候補ブロックの動きベクトルが、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定される。対象候補ブロックの基準フレームが、現在符号化中ブロックの基準フレームとして決定される。対象候補ブロックの動きベクトルが、現在符号化中ブロックの第1の動きベクトルとして使用される。さらに、第1の動きベクトルが後続の動き推定における探索開始点として使用される場合がある。符号化デバイスは、対象候補ブロックに対応するインデックス値を符号化し、符号化されたインデックス値をデコーダ側に送信することができ、その結果、デコーダ側は復号を実施し、対象候補ブロックおよび対象候補ブロックの動きベクトルを決定する。
本発明のこの実施形態では、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルが決定された後、第1の動きベクトルに従って現在符号化中ブロックの動きベクトルグループ内の第2の動きベクトルが決定される。第2の動きベクトルは、第1の動きベクトルとは異なる、現在符号化中ブロックの動きベクトルグループ内の動きベクトルである。具体的には、最初に、現在符号化中ブロックのまわりに隣接する符号化ブロックから、現在符号化中ブロックの複数の候補ブロックが決定される。複数の符号化ブロックは、現在符号化中ブロック内の同じピクセルに対応している。場合によっては、そのピクセルは現在符号化中ブロックの頂点であり得る。そのピクセルは、第1の動きベクトルを決定する際の複数の候補ブロックに対応するピクセルとは異なる。たとえば、図2に示されたように、候補ブロックはDおよびEを含む場合があり、複数の候補ブロックは、第1の動きベクトルを決定する際の候補ブロックを含まない。次いで、各候補ブロックの基準フレームが決定される。候補ブロックの基準フレームが、第1の動きベクトルに対応する対象候補ブロックの基準フレーム、すなわち現在符号化中ブロックの基準フレームと同じフレームではない場合、候補ブロックの基準フレームのピクチャ順序カウントPOCに対する現在符号化中ブロックの対象候補ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、候補ブロックの基準フレームのピクチャ順序カウントに対する現在ブロックの基準フレームのピクチャ順序カウントの比率が動きベクトル間の比率と同じであるように、候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された各候補ブロックの動きベクトルは、第1の動きベクトルと個別に比較される。拡大縮小された候補ブロックの動きベクトルが第1の動きベクトルと異なり、違いが最小であるとき、この候補ブロックは現在符号化中ブロックの第2の対象候補ブロックとして決定され、この対象候補ブロックに対応する拡大縮小された動きベクトルは、現在符号化中ブロックの動きベクトルグループ内の第2の動きベクトルとして決定される。
本発明のこの実施形態では、前述の方法に従って、複数の第2の動きベクトルが決定される場合がある。たとえば、現在符号化中ブロックの動きベクトルグループが3つの動きベクトルを含むとき、動きベクトルグループの1つの第1の動きベクトルが決定された後、他の2つの第2の動きベクトルは、前述の方法に従って決定される場合がある。しかしながら、本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。現在符号化中ブロックの動きベクトルグループが決定される。動きベクトルグループは3つの動きベクトルを含み、動きベクトルグループの各動きベクトルは、以下の方法に従ってさらに決定される場合がある。具体的には、現在符号化中ブロックの複数の候補ブロックが決定される。すべての複数の候補ブロックは、現在符号化中ブロックに隣接する符号化ブロックである。たとえば、図2に示されたように、A〜Fは現在符号化中ブロックの複数の候補ブロックである。次いで、複数の候補ブロックに従って、現在符号化中ブロックの複数の候補動きベクトルグループが決定される。各候補動きベクトルグループは3つの動きベクトルを含み、3つの動きベクトルは現在符号化中ブロック内の3つのピクセルに対応している。場合によっては、複数の候補ブロックから選択されたいくつかの候補ブロックの動きベクトルが、候補動きベクトルグループとして使用される場合がある。たとえば、図2に示されたように、複数の候補ブロックA〜Fの場合、同じピクセルに対応している候補ブロックA、B、およびCからランダムに選択されたブロックの動きベクトルと、別のピクセルに対応しているDおよびEからランダムに選択されたブロックの動きベクトルと、別のピクセルに対応しているFおよびGからランダムに選択されたブロックの動きベクトルとを含む3つの動きベクトルは、候補動きベクトルグループを構成することができる。様々な選択があるので、3つの候補ブロックは12個の候補動きベクトルグループを構成することができる。第1の候補動きベクトルグループの各動きベクトルの基準フレームが決定される。第1の候補動きベクトルグループは、複数の候補動きベクトルグループのうちの任意の候補動きベクトルグループである。第1の候補動きベクトルグループの各動きベクトルに対応する候補ブロックの基準フレームのインデックス番号およびピクチャ順序カウントに対して比例拡大縮小が実施され、その結果、第1の候補動きベクトルグループの3つの動きベクトルは、同じ基準フレームのインデックス番号およびピクチャ順序カウントに対応している。
本発明のこの実施形態では、現在符号化中ブロック内の各ピクセルの、第1の候補動きベクトルグループの基準フレームにおける予測位置は、以下の式(5)および(6):
に従って決定される場合があり、
ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さであり、v
xjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのx方向成分であり、v
yjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのy方向成分であり、j=0,1,2であり、xおよびyは現在符号化中ブロックの各ピクセルの座標値であり、x’およびy’は、ピクセルの、第1の候補動きベクトルグループの基準フレームに対応する予測点における座標値である。
現在符号化中ブロック内の各ピクセルの座標値および現在符号化中ブロック内の基準フレームに対応する予測点におけるピクセルの座標値によれば、第1の候補動きベクトルグループの場合、現在符号化中ブロック内の各ピクセルと第1の候補動きベクトルグループの基準フレームに対応する予測点との間の整合エラー値は、式(1)に従って決定され、ここで、
である。第1の候補動きベクトルグループに対する各ピクセルの整合エラー値の絶対値が計算され、絶対値が加算されて、第1の候補動きベクトルグループに対する現在符号化中ブロックの整合エラー値を決定する。同様に、各候補動きベクトルグループに対する現在符号化中ブロックの整合エラー値が決定され、複数の候補動きベクトルグループに対応する複数の整合エラー値の中の最小値に対応する候補動きベクトルグループが、現在符号化中ブロックの動きベクトルグループとして決定される。動きベクトルグループに含まれる動きベクトルのインデックス値が符号化され、デコーダ側に送信され、その結果、デコーダ側はインデックス値に従って動きベクトルグループを決定する。
本発明のこの実施形態では、決定された動きベクトルグループの場合、動きベクトルグループの任意の動きベクトルが、後続の動き推定における探索開始点として使用される場合がある。場合によっては、図2に示されたように、現在符号化中ブロックの左上隅の頂点の予測位置が、後続の動き推定における探索開始点として使用される場合がある。本発明はそれに限定されない。
S120では、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値が決定される。運動モデル初期化ベクトルは、少なくとも4つの成分を含む。第1の成分セットは、運動モデル初期化ベクトルの少なくとも1つの成分を含む。具体的には、アフィン運動モデルが一例として使用される。アフィンモデルは6つのパラメータを使用することによって表される場合があり、6つのパラメータは
として表現される場合がある。現在符号化中ブロック内の各ピクセルの基準フレームにおける位置は、以下の式(7):
に従って決定される場合があり、
ここで、xおよびyは現在符号化中ブロック内の任意のピクセルの座標値であり、x’およびy’は、ピクセルの、基準フレーム内の対応する予測点における座標値であり、v
xおよびv
xは現在符号化中ブロック内の任意のピクセルの動きベクトルである。以下の式(8)が取得される場合がある:
S110において決定された動きベクトルグループによれば、動きベクトルグループは{v
0,v
1,v
2}として表現される場合がある。動きベクトルグループに対応する対象候補ブロックは、図2に示されたブロックA〜Gである。したがって、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)として表現される場合があり、ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。以下の式(9)は、動きベクトルグループおよび座標を式(8)に代入することによって取得される場合があり:
ここで、v
xjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのx方向成分であり、v
yjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのy方向成分であり、j=0,1,2である。それに対応して、アフィン運動モデル
内のすべてのパラメータが取得される場合がある。式(6)に示されたように、現在符号化中ブロックの動きベクトルグループ{v
0,v
1,v
2}が式(6)に代入され、現在符号化中ブロックの運動モデル初期化ベクトル
が決定される場合がある。運動モデル初期化ベクトルは6次元ベクトルである。場合によっては、別の運動モデルの場合、初期化ベクトルは少なくとも4つの次元を含むベクトルである。第1の成分セットの予測値は、運動モデル初期化ベクトルに従って決定される場合がある。第1の成分セットの予測値は、運動モデル初期化ベクトルの少なくとも1つの成分を含む場合がある。
S130では、第1の成分セットの予測値に従って、第1の成分セットの送信されるべき値が決定される。具体的には、現在符号化中ブロックに従って、運動モデル量子化精度および運動モデル最適化ベクトルが決定される場合がある。運動モデル量子化精度に従って、運動モデル最適化ベクトルが量子化される。運動モデルの第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値が決定される。
本発明のこの実施形態では、運動モデル最適化ベクトルが最初に決定される場合がある。場合によっては、従来技術に従って、運動モデル最適化ベクトルが決定される場合がある。具体的には、式(1)〜(4)に従って、現在符号化中ブロックの整合エラー値が決定される場合がある。現在符号化中ブロックの候補ブロックは、現在符号化中ブロックの基準フレームの特定の範囲内で勾配反復方式で探索される。最小整合エラー値に対応する候補ブロックが現在符号化中ブロックの対象候補ブロックとして決定され、この場合の対応する運動モデルパラメータ
が、式(4)に従って現在符号化中ブロックの最適化ベクトルとして決定される。
場合によっては、現在符号化中ブロックの運動モデル初期化ベクトルは、式(6)に従ってさらに決定される場合があり、運動モデル初期化ベクトルは運動モデル最適化ベクトルとして決定される。
場合によっては、現在符号化中ブロックの運動モデル初期化ベクトルは、式(6)に従ってさらに決定される場合がある。現在符号化中ブロックの各ピクセルの基準フレームにおける対応する位置は、式(7)に従う計算を介して取得される。現在符号化中ブロックの整合エラー値は、式(1)および(6)に従って計算される。この整合エラー値は、運動モデルパラメータに対応し、式(1)〜(4)および従来技術に従って決定された整合エラー値と比較される。最小整合エラー値に対応する運動モデルパラメータ
が、現在符号化中ブロックの最適化ベクトルとして選択される。本発明はそれに限定されない。
本発明のこの実施形態では、運動モデル最適化ベクトルが量子化されるように、運動モデル量子化精度がさらに決定される必要がある。具体的には、運動モデル最適化ベクトルは、2つの変換運動パラメータa
0’およびa
1’を含む。2つの変換運動パラメータの量子化精度は、1/16または1/4であり得る。本発明はそれに限定されない。運動モデル最適化ベクトル内の他のパラメータ(a
2’,a
3’,a
4’,a
5’)の量子化精度は、1/512であり得る。代替として、量子化精度は、現在符号化中ブロックのサイズおよび精度情報に従って決定される場合がある。現在符号化中ブロックのサイズは、現在符号化中ブロックの幅および現在符号化中ブロックの高さを含み、精度情報は、現在符号化中ブロックの動きベクトルグループの量子化精度を含む場合がある。具体的には、式(6)に従って、運動モデル内の後の4つのパラメータが現在符号化中ブロックの幅および高さに関係することを知ることができる。したがって、量子化精度は、以下の式(10):
に従って決定される場合がある。
Pは、現在符号化中ブロックの精度情報に従って決定される場合がある。具体的には、1/Pは現在符号化中ブロックの動きベクトルグループの量子化精度である。場合によっては、動きベクトルグループの量子化精度は、全般に1/4であり、それゆえP=4である。Wは現在符号化中ブロックの幅である。Hは現在符号化中ブロックの高さである。たとえば、現在符号化中ブロックの幅が16であり、高さが32である場合、動きベクトルグループの量子化精度は、1/(32×4)=1/128であり、符号化中ブロックの幅が16であり、高さが8である場合、量子化精度は、1/(16×4)=1/64である。
本発明のこの実施形態では、決定された量子化精度に従って運動モデル最適化ベクトル
が量子化されて、量子化された運動モデル最適化ベクトル
を取得する。
本発明のこの実施形態では、第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値が決定される。具体的には、決定は以下の方法を使用することによって実施される場合がある。本明細書では、アフィン運動が一例として使用される。式(6)に従って運動モデル初期化ベクトルが決定される。運動モデル初期化ベクトルでは、a
0およびa
1は変換運動パラメータであり、動きベクトルグループ内の第1の動きベクトルv
0に関係する。場合によっては、a
0およびa
1は第1の成分セットとして決定される場合があり、式(6)に従って決定された値a
0およびa
1は、第1の成分セットの予測値である。場合によっては、2つのパラメータの量子化精度は、1/16または1/4であり得る。1/16が一例として使用される。最初に、v
0が4倍に拡大され、その結果、v
0の精度は1/4から1/16に上がる。次いで、その精度が1/16であるv
0を使用することによって、その精度が同様に1/16である量子化されたa
0およびa
1が計算されて、
を取得し、すなわち、
は第1の成分セットの量子化された予測値である。
本発明のこの実施形態では、第1の成分セットの量子化された予測値
ならびに決定された運動モデル最適化ベクトルに従って、現在符号化中ブロックの第1の成分セットの送信されるべき値が決定される。現在符号化中ブロックの運動モデル送信値は、
であり得る。第1の成分セットは2つの成分を含む場合がある。第1の成分セットの送信値は、
であり得る。他の送信値は
であり、
は量子化された運動モデル最適化ベクトルであり、
は、第1の成分セットの予測値a
0およびa
1の量子化された値である。この場合、送信パラメータを符号化する際の2つのパラメータは、量子化された第1の成分セットと運動モデル最適化ベクトルとの間の差分である。差分は、送信を直接符号化する際の量子化された運動モデル最適化ベクトルによって占有されるビットの数よりも小さい。これにより、送信されるデータの量が削減される。
場合によっては、一実施形態では、第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値が決定される。具体的には、決定は以下の方法を使用することによってさらに実施される場合がある。式(6)に従って、運動モデル初期化ベクトルの6つの成分a
iが決定され、ここで、i=0,1,2,3,4,5である。次いで、第1の成分セットも6つのパラメータを含むことが決定され、現在符号化中ブロックの運動モデル送信値が決定される場合があり、すなわち、第1の成分セットの送信値は
であり、ここで、
であり、
は量子化された運動モデル最適化ベクトルであり、a
iは第1の成分セットの予測値である。
S140では、決定された第1の成分セットの送信されるべき値が符号化され、符号化された第1の成分セットの送信されるべき値がデコーダ側に送信される。具体的には、現在符号化中ブロックの決定された運動モデルの送信されるべきベクトルが符号化され、デコーダ側に送信される場合がある。加えて、運動モデル量子化精度に従って運動モデル最適化ベクトルがさらに量子化される場合があり、その結果、現在符号化中ブロックの各ピクセルサンプルの予測ピクセルサンプルが決定され、現在符号化中ブロックの予測残差がさらに決定され、予測残差が符号化され、デコーダ側に送信される。具体的には、運動モデル最適化ベクトル
の場合、各パラメータa
i’は、式(10)に従って決定された運動モデル量子化精度に従って量子化されて、量子化された運動モデル最適化ベクトル
を取得する。量子化された運動モデル最適化ベクトルが式(7)に代入され、現在符号化中ブロック内の精度Qを有する各ピクセルの基準オフセット位置(x’,y’)が取得される場合がある。現在符号化中ブロック内の各ピクセルサンプルの予測ピクセルサンプルは、基準オフセット位置において計算を介して取得される。さらに、現在符号化中ブロックの予測残差が決定され、予測残差が符号化され、デコーダ側に送信される。場合によっては、ピクセルサンプルは、1つのピクセル、または複数のピクセルを含む小さいピクセルブロックであり得る。本発明はそれに限定されない。
前述のプロセスのシーケンス番号は、本発明の様々な実施形態における実行シーケンスを意味しないことを理解されたい。プロセスの実行シーケンスは、プロセスの機能および内部ロジックに従って決定されるべきであり、本発明の実施形態の実装プロセスに対するいかなる制限とも解釈されるべきではない。
したがって、本発明のこの実施形態におけるビデオ画像符号化方法によれば、現在符号化中ブロックの動きベクトルグループが決定され、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルが決定され、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値が決定され、運動モデルの送信されるべき値が送信用に符号化され、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在符号化中ブロックのサイズおよび現在符号化中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、符号化パラメータによって必要とされるビットの数を削減することもできる。
図3は、本発明の一実施形態による、ビデオ画像復号方法200の概略フローチャートである。図3に示された方法は、画像またはビデオの復号プロセスにおいて使用される場合があり、復号デバイスによって実行される。図3に示されたように、方法は以下のステップを含む。
S210.ビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループは現在復号中ブロックの少なくとも1つの動きベクトルを含み、運動モデル送信ベクトルは少なくとも4つの成分を含む。
S220.動きベクトルグループの少なくとも1つの動きベクトルに従って、現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定し、運動モデル初期化ベクトルは少なくとも4つの成分を含む。
S230.運動モデル最適化ベクトルに従って現在復号中ブロックを復号するために、第1の成分セットの予測値および運動モデル送信ベクトルに従って、現在復号中ブロックの運動モデル最適化ベクトルを決定する。
具体的には、デコーダ側はエンコーダ側によって送信されたビットストリームを受信し、ビットストリームに従って復号を実施し、現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループは、現在復号中ブロック内のピクセルに対応する少なくとも1つの動きベクトルを含む。デコーダ側は、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定し、運動モデル初期化ベクトルは少なくとも4つの成分を含み、第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。デコーダ側は、第1の成分セットの予測値および運動モデル送信ベクトルに従って、現在復号中ブロックの運動モデル最適化ベクトルを決定する。次いで、デコーダ側は、量子化された運動モデル最適化ベクトルに従って、現在復号中ブロックの予測サンプルを決定し、予測サンプルに従って現在復号中ブロックに対して復号および復元を実施する。
したがって、本発明のこの実施形態におけるビデオ画像復号方法によれば、受信されたビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルが決定され、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルが決定され、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルが決定され、運動モデル最適化ベクトルに対して復号および復元が実施される。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
S210では、復号デバイスは、ビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定する。動きベクトルグループは現在復号中ブロックの少なくとも1つの動きベクトルを含み、各動きベクトルは現在復号中ブロック内の1つのピクセルに対応している。場合によっては、運動モデルを記述するために必要とされるパラメータの数は、運動モデル間で異なる。2n個のパラメータを有する運動モデルの場合、デコーダ側によって決定される運動モデル送信ベクトルは2n次元ベクトルであり、現在復号中ブロックの動きベクトルグループは、全般に、n個の動きベクトルを含む場合がある。たとえば、アフィン運動の場合、現在復号中ブロック内のすべてのピクセルがアフィン運動モデルを使用することによって表されるとき、全般に、アフィン運動モデルは
として表現される場合がある。すなわち、アフィン運動モデルは6つのパラメータを有し、動きベクトルグループは3つの動きベクトルを含む場合がある。一般運動モデルの場合、全般に12個のパラメータが使用され、動きベクトルグループは6つの動きベクトルを含む場合がある。場合によっては、動きベクトルグループを決定することは、動きベクトルグループの少なくとも1つの動きベクトルを決定すること、または動きベクトルグループの1つの動きベクトルを決定すること、または動きベクトルグループのn個の動きベクトルもしくはすべての動きベクトルを決定することであり得る。たとえば、アフィン運動の場合、動きベクトルグループは少なくとも3つの動きベクトルを含む場合があり、現在復号中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの1つの動きベクトル、3つの動きベクトル、またはすべての動きベクトルを決定することであり得る。エンコーダ側によって決定された動きベクトルの数に応じて、デコーダ側も、対応する動きベクトルの数をそれに応じて決定する。本発明はそれに限定されない。
本発明のこの実施形態では、デコーダ側は、受信されたビットストリームに従って、現在復号中ブロックの運動モデル送信ベクトルおよび動きベクトルグループを決定することができる。具体的には、デコーダ側は、受信されたビットストリームに従って、現在復号中ブロックの運動モデル送信ベクトルを最初に決定することができる。運動モデル送信ベクトルのすべての成分は、運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得る。代替として、運動モデル送信ベクトルのいくつかの成分は、運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり、いくつかの成分は、運動モデル最適化ベクトルの対応する位置における成分である。本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。現在復号中ブロックの動きベクトルグループが決定され、動きベクトルグループが3つの動きベクトルを含むとき、ビットストリームに従って計算ベクトルグループの少なくともの1つの動きベクトルが最初に決定される場合がある。具体的には、運動モデル送信ベクトルのいくつかの成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり、いくつかの成分が運動モデル最適化ベクトルの対応する位置における成分であるとデコーダ側を決定すると、デコーダ側は、ビットストリームに従って計算ベクトルグループの少なくともの1つの動きベクトルを決定することができる。デコーダ側は、ビデオビットストリームを復号し、現在復号中ブロックの対象候補ブロックを決定し、対象候補ブロックの動きベクトルおよび対象候補ブロックの基準フレームを決定する。デコーダ側は、対象候補ブロックの基準フレームのピクチャ順序カウントPOCおよび現在復号中ブロックの基準フレームのピクチャ順序カウントPOCを個別に取得し、対象候補ブロックの基準フレームのピクチャ順序カウントPOCに対する現在復号中ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、対象候補ブロックの動きベクトルに対して拡大縮小を実施し、拡大縮小された動きベクトルを現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定する。対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率は、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在復号中ブロックの基準フレームのピクチャ順序カウントの比率と同じである。
場合によっては、一実施形態では、アフィン運動が一例として使用される。動きベクトルグループは3つの動きベクトルを含み、現在復号中ブロックの動きベクトルグループを決定することは、ビットストリームに従って動きベクトルグループの各動きベクトルを決定することであり得る。具体的には、運動モデル送信ベクトルのすべての成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得ると決定すると、デコーダ側は、ビットストリームに従って動きベクトルグループの各動きベクトルを決定することができる。デコーダ側は、ビットストリーム内のインデックス値に従って現在復号中ブロックの対象候補ブロックを最初に決定し、対象候補ブロックの基準フレームを現在復号中ブロックの基準フレームとして決定し、対象候補ブロックの動きベクトルを現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルとして使用することができる。
本発明のこの実施形態では、現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルが決定された後、第1の動きベクトルに従って現在復号中ブロックの動きベクトルグループ内の第2の動きベクトルが決定される。第2の動きベクトルは、第1の動きベクトルとは異なる、動きベクトルグループ内の動きベクトルである。具体的には、現在復号中ブロックのまわりに隣接する復号ブロックから、現在復号中ブロックの複数の候補ブロックが最初に決定される。複数の候補ブロックは同じピクセルに対応している。場合によっては、そのピクセルは現在復号中ブロックの頂点であり得る。たとえば、図2に示されたように、現在復号中ブロックの場合、候補ブロックはDおよびEを含む場合があり、複数の候補ブロックは、現在復号中ブロックの決定された第1の動きベクトルに対応する対象候補ブロックを含まない。次いで、各候補ブロックの基準フレームが決定される。候補ブロックの基準フレームが、第1の動きベクトルに対応する対象候補ブロックの基準フレーム、すなわち現在復号中ブロックの基準フレームと同じフレームではない場合、候補ブロックの基準フレームのピクチャ順序カウントPOCに対する対象候補ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、候補ブロックの基準フレームのピクチャ順序カウントに対する現在ブロックの基準フレームのピクチャ順序カウントの比率が、動きベクトル間の比率と同じであるように、候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された各候補ブロックの動きベクトルは、第1の動きベクトルと個別に比較される。拡大縮小された候補ブロックの動きベクトルが第1の動きベクトルと異なり、違いが最小であるとき、この候補ブロックは現在復号中ブロックの対象候補ブロックとして決定され、この対象候補ブロックに対応する拡大縮小された動きベクトルは、現在復号中ブロックの動きベクトルグループ内の第2の動きベクトルとして決定される。
本発明のこの実施形態では、前述の方法に従って、複数の第2の動きベクトルが決定される場合がある。たとえば、現在復号中ブロックの動きベクトルグループが3つの動きベクトルを含むとき、動きベクトルグループ内の第1の動きベクトルが決定された後、他の2つの第2の動きベクトルは前述の方法に従って決定される場合があり、さらに動きベクトルグループの各動きベクトルが決定される。しかしながら、本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。現在復号中ブロックの動きベクトルグループが決定される。動きベクトルグループは3つの動きベクトルを含み、動きベクトルグループの各動きベクトルは、ビットストリームを復号することによって決定される場合がある。具体的には、運動モデル送信ベクトルのすべての成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得ると決定すると、デコーダ側は、ビットストリームに従って動きベクトルグループの各動きベクトルを決定し、ビットストリームに従って現在復号中ブロックの動きベクトルグループの各動きベクトル値を直ちに取得することができる。加えて、動きベクトルグループ内のすべての動きベクトルに対応する現在復号中ブロックの対象候補ブロックは同じ基準フレームを有し、その基準フレームは現在復号中ブロックの基準フレームである。
S220では、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値が決定される。運動モデル初期化ベクトルは少なくとも4つの成分を含む。第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。具体的には、アフィン運動モデルが一例として使用される。アフィンモデルは6つのパラメータを使用することによって表される場合があり、6つのパラメータは
として表現される場合がある。現在復号中ブロック内の各ピクセルの基準フレームにおける位置は、式(7)に従って決定される場合があり、ここで、xおよびyは現在復号中ブロック内の任意のピクセルの座標値であり、x’およびy’は、ピクセルの、基準フレーム内の対応する予測点における座標値であり、v
xおよびv
xは現在復号中ブロック内の任意のピクセルの動きベクトルである。式(8)が取得される場合がある。S210において決定された動きベクトルグループによれば、動きベクトルグループは{v
0,v
1,v
2}として表現される場合があり、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)であり得るし、ここで、Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さである。式(9)は、動きベクトルグループおよび座標を式(8)に代入することによって取得される場合があり、ここで、v
xjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのx方向成分であり、v
yjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのy方向成分であり、j=0,1,2である。それに対応して、アフィン運動モデル
内のすべてのパラメータが取得される場合がある。式(6)に示されたように、現在復号中ブロックの動きベクトルグループが式(6)に代入され、現在復号中ブロックの運動モデル初期化ベクトル
が決定される場合がある。運動モデル初期化ベクトルは6次元ベクトルである。場合によっては、別の運動モデルの場合、初期化ベクトルは少なくとも4つの次元を含むベクトルである。第1の成分セットの予測値は、運動モデル初期化ベクトルに従って決定される場合がある。第1の成分セットの予測値は、運動モデル初期化ベクトルの少なくとも1つの成分を含む場合がある。
S230では、第1の成分セットの予測値および運動モデル送信ベクトルに従って、現在復号中ブロックの運動モデル最適化ベクトルが決定され、その結果、デコーダ側は運動モデル最適化ベクトルに従って復号を実施する。具体的には、現在復号中ブロックの運動モデル送信ベクトルは、
として表現される場合がある。第1の成分セットの送信値は、
として表現される場合があり、ここで、
は、第1の成分セットの予測値a
0およびa
1が量子化された後に取得された数値である。現在復号中ブロックの他のパラメータ送信値は
として表現される場合があり、a
i’が決定される場合があり、a
i’は現在復号中ブロックの運動モデル最適化ベクトルである。
本発明のこの実施形態では、第1の成分セットの予測値a
0およびa
1が量子化されて、第1の成分セットの量子化された予測値
を決定することができる。具体的には、アフィン運動が一例として使用される。式(6)に従って運動モデル初期化ベクトルが決定される。運動モデル初期化ベクトルでは、a
0およびa
1は変換運動パラメータであり、動きベクトルグループ内の第1の動きベクトルv
0に関係する。a
0およびa
1は第1の成分セットとして決定される場合がある。場合によっては、2つのパラメータの量子化精度は、1/16または1/4であり得る。1/16が一例として使用される。最初に、v
0が4倍に拡大され、その結果、v
0の精度は1/4から1/16に上がり、次いで、その精度が1/16であるv
0を使用することによって、その精度が同様に1/16である量子化されたa
0およびa
1が計算されて
を取得し、すなわち、
が第1の成分セットの量子化された予測値である。
場合によっては、一実施形態では、運動モデル初期化ベクトルの第1の成分セットの予測値a
iは、式(6)に従って決定される場合がある。第1の成分セットは運動モデル初期化ベクトルのすべての成分を含み、すなわち、第1の成分セットは6つのパラメータを含み、その結果、現在復号中ブロックの運動モデル送信値が決定され、すなわち、第1の成分セットの送信値は
であり、ここで、
であり、a
i’は現在復号中ブロックの運動モデル最適化ベクトルである。
本発明の一実施形態では、図4は、本発明のこの実施形態によるビデオ画像復号方法の別の概略フローチャートである。図4に示された方法は、デコーダなどの復号デバイスによって実行される場合がある。具体的には、図4に示されたように、方法200は以下のステップをさらに含む。
S240.現在復号中ブロックの運動モデル量子化精度を決定する。
S250.運動モデル量子化精度に従って運動モデル最適化ベクトルを量子化する。
S260.量子化された運動モデル最適化ベクトルに従って現在復号中ブロックを復号する。
具体的には、現在復号中ブロックに従って運動モデル量子化精度が決定される場合があり、運動モデル量子化精度に従って運動モデル最適化ベクトルが量子化され、量子化された運動モデル最適化ベクトルに従って、現在復号中ブロックに対して構文解析、復号、および復元が実施される。
S240では、現在復号中ブロックの運動モデル量子化精度が決定される。具体的には、量子化精度は、現在復号中ブロックのサイズおよび精度情報に従って決定される場合がある。現在復号中ブロックのサイズは現在復号中ブロックの幅および現在復号中ブロックの高さを含み、精度情報は動きベクトルグループの量子化精度を含む。具体的には、式(6)に従って、運動モデルのパラメータが現在復号中ブロックの幅および高さに関係することを知ることができる。したがって、量子化精度は式(10)に従って決定される場合がある。1/Pは現在復号中ブロックの動きベクトルグループの量子化精度である。場合によっては、動きベクトルグループの量子化精度は、全般に1/4であり、それゆえP=4である。Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さである。たとえば、現在復号中ブロックの幅が16であり、高さが32である場合、動きベクトルグループの量子化精度は、1/(32×4)=1/128であり、現在復号中ブロックの幅が16であり、高さが8である場合、量子化精度は、1/(16×4)=1/64である。
S250では、決定された量子化精度に従って、決定された運動モデル最適化ベクトルが量子化されて、量子化された運動モデル最適化ベクトル
を取得する。
S260では、量子化された運動モデル最適化ベクトルに従って現在復号中ブロックが復号される。具体的には、運動モデル最適化ベクトル
が式(7)に代入され、次いで、現在復号中ブロック内の精度Qを有する各ピクセルの基準オフセット位置(x’,y’)が取得される場合がある。現在復号中ブロック内の各ピクセルサンプルの予測ピクセルサンプルは、基準オフセット位置において計算を介して取得される。次いで、受信されたビットストリーム内で、現在復号中ブロックの決定された予測残差に従って、予測ピクセルサンプルに対して復号および復元が実施される。場合によっては、ピクセルサンプルは、1つのピクセル、または複数のピクセルを含む小さいピクセルブロックであり得る。本発明はそれに限定されない。
前述のプロセスのシーケンス番号は、本発明の様々な実施形態における実行シーケンスを意味しないことを理解されたい。プロセスの実行シーケンスは、プロセスの機能および内部ロジックに従って決定されるべきであり、本発明の実施形態の実装プロセスに対するいかなる制限とも解釈されるべきではない。
したがって、本発明のこの実施形態におけるビデオ画像復号方法によれば、受信されたビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルが決定され、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルが決定され、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルが決定され、運動モデル最適化ベクトルに対して復号および復元が実施される。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在復号中ブロックのサイズおよび現在復号中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、パラメータ送信において必要とされるビットの数を削減することもできる。
従来技術と比較して本発明のこの実施形態の受益効果をより良く証明するために、本発明のこの実施形態は、最新のビデオ符号化規格HEVCに基づいてエンコーダに実装される。参照用にHM12.0を使用すると、方法は実験を介して比較され、case1では、本発明のこの実施形態における方法を使用することによって実現される効果が、HM12.0を使用することによって実現される効果よりも明らかに良いことが分かる。
表1を参照されたい。
Case1:パラメータ
が予測されず、a
0、a
1が1/16の精度を使用することによって量子化され、a
2、a
3、a
4、a
5が1/512の精度を使用することによって量子化される場合の参照比較結果を示す。
Case2:パラメータa0、a1のみが予測され、a0、a1が1/16の精度を使用することによって量子化され、a2、a3、a4、a5が1/512の精度を使用することによって量子化される場合の参照比較結果を示す。
Case3:パラメータa0、a1、a2、a3、a4、a5が予測され、a0、a1が1/16の精度を使用することによって量子化され、a2、a3、a4、a5が1/512の精度を使用することによって量子化される場合の参照比較結果を示す。
Case4:パラメータa0、a1のみが予測され、a0、a1が1/16の精度を使用することによって量子化され、a2、a3、a4、a5が式(10)に従って計算された精度を使用することによって量子化される場合の参照比較結果を示す。
Case5:パラメータa0、a1のみが予測され、a0、a1が1/4の精度を使用することによって量子化され、a2、a3、a4、a5が式(10)に従って計算された精度を使用することによって量子化される場合の参照比較結果を示す。
したがって、本発明の実施形態におけるビデオ画像符号化方法およびビデオ画像復号方法によれば、エンコーダ側は、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値を決定し、運動モデルの送信されるべき値を送信用に符号化し、デコーダ側は、受信されたビットストリームに従って運動モデルの送信されるべき値を決定し、運動モデル送信値に従って復号および復元を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
前述では、図1〜図4を参照して、ビデオ画像符号化方法およびビデオ画像復号方法が本発明の実施形態に従って詳細に記載されている。以下では、図5および図6を参照して、符号化デバイスおよび復号デバイスが本発明の実施形態に従って記載される。
図5は、本発明の一実施形態による、符号化デバイス300の概略フローチャートである。符号化デバイスは、UEなどのユーザ機器であり得るか、またはRNCもしくはeNBなどのネットワークデバイスであり得る。図5に示されたように、符号化デバイス300は、
現在符号化中ブロックの動きベクトルグループを決定するように構成された第1の決定モジュール310であって、動きベクトルグループが現在符号化中ブロックの少なくとも1つの動きベクトルを含む、第1の決定モジュール310と、
動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定するように構成された第2の決定モジュール320であって、運動モデル初期化ベクトルが少なくとも4つの成分を含む、第2の決定モジュール320と、
第1の成分セットの予測値に従って第1の成分セットの送信されるべき値を決定するように構成された第3の決定モジュール330と、
第1の成分セットの送信されるべき値を符号化し、符号化された第1の成分セットの送信されるべき値をデコーダ側に送信するように構成された符号化モジュール340と
を含む。
具体的には、第1の決定モジュール310は、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループは現在符号化中ブロック内のピクセルに対応する少なくとも1つの動きベクトルを含む。第2の決定モジュール320は、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定し、運動モデル初期化ベクトルは少なくとも4つの成分を含み、第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含み、次いで、現在符号化中ブロックに従って運動モデル量子化精度および運動モデル最適化ベクトルを決定し、量子化精度に従って運動モデル最適化ベクトルを量子化する。第3の決定モジュール330は、運動モデル初期化ベクトルの第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値を決定し、第1の成分セットの送信されるべき値を符号化し、符号化された送信されるべき値をデコーダ側に送信することができ、その結果、デコーダ側は復号動作を実施する。第3の決定モジュール330は、量子化された運動モデル最適化ベクトルに従って現在符号化中ブロックの予測サンプルをさらに決定し、予測サンプルに従って現在符号化中ブロックを送信用に符号化することができる。
したがって、本発明のこの実施形態における符号化デバイスは、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値を決定し、運動モデルの送信されるべき値を送信用に符号化し、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
本発明のこの実施形態では、インター予測に関するすべての符号化規格におけるビデオ画像符号化プロセスの場合、アフィン運動モデル、一般運動モデル、または透視モデルなどの複数の運動モデルが、動き補償計算プロセスにおいて使用される場合がある。本明細書では、説明用の例としてアフィン運動モデルが使用されるが、本発明はそれに限定されない。
本発明のこの実施形態では、第1の決定モジュール310は、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループは現在符号化中ブロック内のピクセルに対応する少なくとも1つの動きベクトルを含む。運動モデルを記述するために必要とされるパラメータの数は、運動モデル間で異なる。2n個のパラメータを有する運動モデルの場合、現在符号化中ブロックの動きベクトルグループは、全般に、n個の動きベクトルを含む場合がある。たとえば、アフィン運動の場合、現在符号化中ブロック内のすべてのピクセルがアフィン運動モデルを使用することによって表されると、アフィン運動モデルは
として表現される場合がある。すなわち、アフィン運動モデルは6つのパラメータを有し、動きベクトルグループは少なくとも3つの動きベクトルを含む。一般運動モデルの場合、全般に12個のパラメータが使用され、動きベクトルグループは少なくとも6つの動きベクトルを含む。場合によっては、動きベクトルグループの少なくとも1つの動きベクトルを決定することは、動きベクトルグループの1つの動きベクトルを決定すること、または動きベクトルグループのn個の動きベクトルもしくはすべての動きベクトルを決定することであり得る。たとえば、アフィン運動の場合、動きベクトルグループは少なくとも3つの動きベクトルを含む場合があり、現在符号化中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの1つの動きベクトル、3つの動きベクトル、またはすべての動きベクトルを決定することであり得る。本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。動きベクトルグループは3つの動きベクトルを含み、第1の決定モジュール310が現在符号化中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの少なくともの1つの動きベクトルを決定することであり得る。HEVC(High Efficiency Video Coding)規格の場合、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルは、AMVP(Advanced Motion Vector Prediction)技術を使用することによって決定される場合がある。具体的には、最初に、現在符号化中ブロックのまわりに隣接する符号化ブロックから、現在符号化中ブロックの複数の候補ブロックが決定される。複数の候補ブロックは座標位置に従って決定される場合があり、複数の候補ブロックは現在符号化中ブロックに隣接する。たとえば、図2に示されたように、現在符号化中ブロックの場合、全般に、現在符号化中ブロックの複数の候補ブロックとして、A〜Gが決定される場合がある。次いで、各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値が決定される。具体的には、候補ブロックの動きベクトルに対応する予測ブロックは、候補ブロックの動きベクトルおよび現在符号化中ブロックに従って基準フレーム内で決定され、次いで、予測ブロックと現在符号化中ブロックとの間の整合エラー値が計算され、最小整合エラー値に対応する候補ブロックが現在符号化中ブロックの対象候補ブロックとして決定される。次に、現在符号化中ブロックの基準フレームのピクチャ順序カウント(POC)および対象候補ブロックの基準フレームのピクチャ順序カウント(POC)が個別に決定される。対象候補ブロックの基準フレームのピクチャ順序カウント(POC)に対する現在符号化中ブロックの基準フレームのピクチャ順序カウント(POC)の比率に従って、対象候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された対象候補ブロックの動きベクトルが、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定される。対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率は、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在符号化中ブロックの基準フレームのピクチャ順序カウントの比率と同じである。
本発明のこの実施形態では、決定された対象候補ブロックの動きベクトルは、後続の動き推定における探索開始点として決定される場合がある。符号化デバイスは、対象候補ブロックに対応するインデックス値を符号化し、符号化されたインデックス値をデコーダ側に送信することができ、その結果、デコーダ側は復号を実施し、対象候補ブロックおよび対象候補ブロックの動きベクトルを決定する。
本発明のこの実施形態では、第1の決定モジュール310は、以下の方法に従って、各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値を決定することができる。具体的には、現在符号化中ブロック内のピクセルごとに、各ピクセルの整合エラー値は、式(1)〜(4)に従って決定される場合があり、ここで、s(xi,yj)はピクセルの元のピクセル値であり、s’(xi,yj)は候補ブロックの動きベクトルが指すフレーム内のピクセルの予測ピクセル値であり、xiおよびyiはピクセルの座標値であり、Gxiはピクセルの位置の水平勾配であり、Gyiはピクセルの位置の垂直勾配である。これらの勾配は、ソーベル(Sobel)演算子を使用することによる計算を介して取得される場合がある。
本発明のこの実施形態では、第1の決定モジュール310は、式(1)〜(4)に従って、候補ブロックの動きベクトルに対応する予測ブロックに対する現在符号化中ブロック内の各ピクセルの整合エラー値を決定し、現在符号化中ブロック内のすべてのピクセルの整合エラー値の絶対値を加算することができる。現在符号化中ブロックと候補ブロックに対応する予測ブロックとの間の整合エラー値が取得される場合がある。しかしながら、本発明はそれに限定されない。前述の方法に従って、現在符号化中ブロックと各候補ブロックに対応する予測ブロックとの間の整合エラー値が順次決定される。最小整合エラー値に対応する候補ブロックが、現在符号化中ブロックの対象候補ブロックとして使用される。
場合によっては、一実施形態では、アフィン運動が一例として使用される。第1の決定モジュール310は、現在符号化中ブロックの動きベクトルグループを決定する。動きベクトルグループは3つの動きベクトルを含む。1つの動きベクトル、すなわち第1の動きベクトルが前述の方法に従って決定された後、図2に示されたように、第1の動きベクトルは、現在符号化中ブロックの頂点に対応する動きベクトルであり得る。場合によっては、現在符号化中ブロックの頂点に隣接する2つの頂点の動きベクトルが、動きベクトルグループ内の他の動きベクトルとして選択される場合がある。動きベクトルグループは{v0,v1,v2}として表現される場合があり、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)であり、ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。
場合によっては、一実施形態では、アフィン運動が一例として使用される。動きベクトルグループは3つの動きベクトルを含み、第1の決定モジュール310が現在符号化中ブロックの動きベクトルグループを決定することは、動きベクトルグループの各動きベクトルを決定することであり得る。具体的には、最初に、現在符号化中ブロックのまわりに隣接する複数の符号化ブロックが、複数の候補ブロックとして決定される場合がある。複数の候補ブロックは、現在符号化中ブロック内の同じピクセルに対応している。場合によっては、そのピクセルは現在符号化中ブロックの頂点であり得る。たとえば、図2に示されたように、現在符号化中ブロックの複数の候補ブロックとして、A、B、およびCが決定される場合がある。式(1)〜(4)に従って、各候補ブロックの動きベクトルに対応する予測ブロックに対する現在符号化中ブロック内の各ピクセルの整合エラー値が個別に決定される。次いで、すべてのピクセルの整合エラー値の絶対値が加算される。現在符号化中ブロックに対する各候補ブロックの整合エラー値が決定される。最小整合エラー値に対応する候補ブロックが、現在符号化中ブロックの対象候補ブロックとして選択される。対象候補ブロックの動きベクトルが、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定される。対象候補ブロックの基準フレームが、現在符号化中ブロックの基準フレームとして決定される。対象候補ブロックの動きベクトルが現在符号化中ブロックの第1の動きベクトルとして使用され、第1の動きベクトルは、後続の動き推定における探索開始点として使用される場合がある。符号化デバイスは、対象候補ブロックに対応するインデックス値を符号化し、符号化されたインデックス値をデコーダ側に送信することができ、その結果、デコーダ側は復号を実施し、対象候補ブロックおよび対象候補ブロックの動きベクトルを決定する。
本発明のこの実施形態では、現在符号化中ブロックの動きベクトルグループ内の第1の動きベクトルを決定した後、第1の決定モジュール310は、第1の動きベクトルに従って現在符号化中ブロックの動きベクトルグループ内の第2の動きベクトルを決定する。第2の動きベクトルは、第1の動きベクトルとは異なる、動きベクトルグループ内の動きベクトルである。具体的には、最初に、現在符号化中ブロックのまわりに隣接する符号化ブロックから、現在符号化中ブロックの複数の候補ブロックが決定される。複数の符号化ブロックは、現在符号化中ブロック内の同じピクセルに対応している。場合によっては、そのピクセルは現在符号化中ブロックの頂点であり得る。そのピクセルは、第1の動きベクトルを決定する際の複数の候補ブロックに対応するピクセルとは異なる。たとえば、図2に示されたように、候補ブロックはDおよびEを含む場合があり、複数の候補ブロックは、第1の動きベクトルを決定する際の候補ブロックを含まない。次いで、各候補ブロックの基準フレームが決定される。候補ブロックの基準フレームが、第1の動きベクトルに対応する対象候補ブロックの基準フレーム、すなわち現在符号化中ブロックの基準フレームと同じフレームではない場合、候補ブロックの基準フレームのピクチャ順序カウントPOCに対する対象候補ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、候補ブロックの基準フレームのピクチャ順序カウントに対する現在ブロックの基準フレームのピクチャ順序カウントの比率が、動きベクトル間の比率と同じであるように、候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された各候補ブロックの動きベクトルは、第1の動きベクトルと個別に比較される。拡大縮小された候補ブロックの動きベクトルが第1の動きベクトルと異なり、違いが最小であるとき、この候補ブロックは現在符号化中ブロックの第2の対象候補ブロックとして決定され、この対象候補ブロックに対応する拡大縮小された動きベクトルは、現在符号化中ブロックの動きベクトルグループ内の第2の動きベクトルとして決定される。
本発明のこの実施形態では、第1の決定モジュール310は、前述の方法に従って複数の第2の動きベクトルを決定することができる。たとえば、現在符号化中ブロックの動きベクトルグループが3つの動きベクトルを含むとき、動きベクトルグループの1つの第1の動きベクトルが決定された後、他の2つの第2の動きベクトルは、前述の方法に従って決定される場合がある。しかしながら、本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。第1の決定モジュール310は、現在符号化中ブロックの動きベクトルグループを決定する。動きベクトルグループは3つの動きベクトルを含み、動きベクトルグループの各動きベクトルは、以下の方法に従ってさらに決定される場合がある。具体的には、現在符号化中ブロックの複数の候補ブロックが決定される。すべての複数の候補ブロックは、現在符号化中ブロックに隣接する符号化ブロックである。たとえば、図2に示されたように、A〜Fは現在符号化中ブロックの複数の候補ブロックである。次いで、複数の候補ブロックに従って、現在符号化中ブロックの複数の候補動きベクトルグループが決定される。各候補動きベクトルグループは3つの動きベクトルを含み、3つの動きベクトルは現在符号化中ブロック内の3つのピクセルに対応している。場合によっては、複数の候補ブロックから選択されたいくつかの候補ブロックの動きベクトルが、候補動きベクトルグループとして使用される場合がある。たとえば、図2に示されたように、複数の候補ブロックA〜Fの場合、同じピクセルに対応している候補ブロックA、B、およびCからランダムに選択されたブロックの動きベクトルと、別のピクセルに対応しているDおよびEからランダムに選択されたブロックの動きベクトルと、別のピクセルに対応しているFおよびGからランダムに選択されたブロックの動きベクトルとを含む3つの動きベクトルは、候補動きベクトルグループを構成することができる。様々な選択があるので、3つの候補ブロックは12個の候補動きベクトルグループを構成することができる。第1の候補動きベクトルグループの各動きベクトルの基準フレームが決定される。第1の候補動きベクトルグループは、複数の候補動きベクトルグループのうちの任意の候補動きベクトルグループである。第1の候補動きベクトルグループの各動きベクトルに対応する候補ブロックの基準フレームのインデックス番号およびピクチャ順序カウントに対して比例拡大縮小が実施され、その結果、第1の候補動きベクトルグループの3つの動きベクトルは、同じ基準フレームのインデックス番号およびピクチャ順序カウントに対応している。
本発明のこの実施形態では、第1の決定モジュール310は、式(5)および(6)に従って、現在符号化中ブロック内の各ピクセルの、第1の候補動きベクトルグループの基準フレームにおける予測位置を決定することができ、ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さであり、vxjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルvjのx方向成分であり、vyjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルvjのy方向成分であり、j=0,1,2であり、xおよびyは現在符号化中ブロック内の各ピクセルの座標値であり、x’およびy’は、ピクセルの、第1の候補動きベクトルグループ内の基準フレームに対応する予測点における座標値である。
現在符号化中ブロック内の各ピクセルの座標値および現在符号化中ブロック内の基準フレームに対応する予測点におけるピクセルの座標値によれば、第1の候補動きベクトルグループの場合、現在符号化中ブロック内の各ピクセルと第1の候補動きベクトルグループの基準フレームに対応する予測点との間の整合エラー値は、式(1)に従って決定され、ここで、
である。第1の候補動きベクトルグループに対する各ピクセルの整合エラー値の絶対値が計算され、絶対値が加算されて、現在符号化中ブロックに対応する第1の候補動きベクトルグループの整合エラー値を決定する。同様に、各候補動きベクトルグループに対する現在符号化中ブロックの整合エラー値が決定され、複数の候補動きベクトルグループに対応する複数の整合エラー値の中の最小値に対応する候補動きベクトルグループが、現在符号化中ブロックの動きベクトルグループとして決定される。動きベクトルグループのインデックス値が符号化され、デコーダ側に送信され、その結果、デコーダ側はインデックス値に従って動きベクトルグループを決定する。
本発明のこの実施形態では、第1の決定モジュール310によって決定された動きベクトルグループの場合、動きベクトルグループの任意の動きベクトルが、後続の動き推定における探索開始点として使用される場合がある。場合によっては、図2に示されたように、現在符号化中ブロックの左上隅の頂点の予測位置が、後続の動き推定における探索開始点として使用される場合がある。本発明はそれに限定されない。
本発明のこの実施形態では、第2の決定モジュール320は、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定する。運動モデル初期化ベクトルは少なくとも4つの成分を含む。第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。具体的には、アフィン運動モデルが一例として使用される。アフィンモデルは6つのパラメータを使用することによって表される場合があり、6つのパラメータは
として表現される場合がある。現在符号化中ブロック内の各ピクセルの基準フレームにおける位置は、式(7)に従って決定される場合があり、ここで、xおよびyは現在符号化中ブロック内の任意のピクセルの座標値であり、x’およびy’は、ピクセルの、基準フレーム内の対応する予測点における座標値であり、v
xおよびv
xは現在符号化中ブロック内の任意のピクセルの動きベクトルである。式(8)が取得される場合がある。第1の決定モジュール310によって決定された動きベクトルグループによれば、動きベクトルは{v
0,v
1,v
2}として表現される場合がある。動きベクトルグループに対応する対象候補ブロックは、図2に示されたブロックA〜Gである。したがって、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)であり得るし、ここで、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。式(9)は、動きベクトルグループおよび座標を式(8)に代入することによって取得される場合があり、ここで、v
xjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのx方向成分であり、v
yjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのy方向成分であり、j=0,1,2である。それに対応して、アフィン運動モデル
内のすべてのパラメータが取得される場合がある。式(6)に示されたように、現在符号化中ブロックの動きベクトルグループ{v
0,v
1,v
2}が式(6)に代入され、現在符号化中ブロックの運動モデル初期化ベクトル
が決定される場合がある。運動モデル初期化ベクトルは6次元ベクトルである。場合によっては、別の運動モデルの場合、初期化ベクトルは少なくとも4つの次元を含むベクトルである。第1の成分セットの予測値は、運動モデル初期化ベクトルに従って決定される場合がある。第1の成分セットの予測値は、運動モデル初期化ベクトルの少なくとも1つの成分であり得る。
本発明のこの実施形態では、第3の決定モジュール330は、第1の成分セットの予測値に従って第1の成分セットの送信されるべき値を決定する。具体的には、第3の決定モジュール330は、現在符号化中ブロックに従って運動モデル量子化精度および運動モデル最適化ベクトルを決定し、運動モデル量子化精度に従って運動モデル最適化ベクトルを量子化し、運動モデルの第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って第1の成分セットの送信されるべき値を決定することができる。
本発明のこの実施形態では、第3の決定モジュール330は、運動モデル最適化ベクトルを最初に決定することができる。場合によっては、従来技術に従って、運動モデル最適化ベクトルが決定される場合がある。具体的には、式(1)〜(4)に従って、現在符号化中ブロックの整合エラー値が決定される場合がある。現在符号化中ブロックの予測ブロックは、現在符号化中ブロックの基準フレームの特定の範囲内で勾配反復方式で探索される。最小整合エラー値に対応する予測ブロックが現在符号化中ブロックの予測ブロックとして決定され、この場合の対応する運動モデルパラメータ
が、式(4)に従って現在符号化中ブロックの最適化ベクトルとして決定される。
場合によっては、第3の決定モジュール330は、式(6)に従って現在符号化中ブロックの運動モデル初期化ベクトルをさらに決定し、運動モデル初期化ベクトルを運動モデル最適化ベクトルとして決定することができる。
場合によっては、現在符号化中ブロックの運動モデル初期化ベクトルは、式(6)に従ってさらに決定される場合がある。現在符号化中ブロックの各ピクセルの基準フレームにおける対応する位置は、式(7)に従う計算を介して取得される。現在符号化中ブロックの整合エラー値は、式(1)および(6)に従って計算される。この整合エラー値は、運動モデルパラメータに対応し、式(1)〜(4)および従来技術に従って決定された整合エラー値と比較される。最小整合エラー値に対応する運動モデルパラメータ
が、現在符号化中ブロックの最適化ベクトルとして選択される。本発明はそれに限定されない。
本発明のこの実施形態では、第3の決定モジュール330は、運動モデル最適化ベクトルを量子化するために、運動モデル量子化精度をさらに決定する必要がある。具体的には、運動モデル最適化ベクトルは、2つの変換運動パラメータa0’およびa1’を含む。2つの変換運動パラメータの量子化精度は、1/16または1/4であり得る。本発明はそれに限定されない。運動モデル最適化ベクトル内の他のパラメータ(a2’,a3’,a4’,a5’)の量子化精度は、1/512であり得る。代替として、量子化精度は、現在符号化中ブロックのサイズおよび精度情報に従って決定される場合がある。現在符号化中ブロックのサイズは、現在符号化中ブロックの幅および現在符号化中ブロックの高さを含み、精度情報は、現在符号化中ブロックの動きベクトルグループの量子化精度を含む場合がある。具体的には、式(6)に従って、運動モデル内の後の4つのパラメータが現在符号化中ブロックの幅および高さに関係することを知ることができる。したがって、量子化精度は式(10)に従って決定される場合がある。Pは、現在符号化中ブロックの精度情報に従って決定される場合がある。具体的には、1/Pは現在符号化中ブロックの動きベクトルグループの量子化精度である。場合によっては、動きベクトルグループの量子化精度は、全般に1/4であり、それゆえP=4である。Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。たとえば、現在符号化中ブロックの幅が16であり、高さが32である場合、動きベクトルグループの量子化精度は、1/(32×4)=1/128であり、符号化中ブロックの幅が16であり、高さが8である場合、量子化精度は、1/(16×4)=1/64である。
本発明のこの実施形態では、第3の決定モジュール330は、決定された量子化精度に従って運動モデル最適化ベクトル
を量子化して、量子化された運動モデル最適化ベクトル
を取得する。
本発明のこの実施形態では、第3の決定モジュール330は、第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値を決定する。具体的には、決定は以下の方法を使用することによって実施される場合がある。本明細書では、アフィン運動が一例として使用される。式(6)に従って運動モデル初期化ベクトルが決定される。運動モデル初期化ベクトルでは、a
0およびa
1は変換運動パラメータであり、動きベクトルグループ内の第1の動きベクトルv
0に関係する。a
0およびa
1は第1の成分セットとして決定される場合があり、式(6)に従って決定された値a
0およびa
1は第1の成分セットの予測値である。場合によっては、2つのパラメータの量子化精度は、1/16または1/4であり得る。1/16が一例として使用される。最初に、v
0が4倍に拡大され、その結果、v
0の精度は1/4から1/16に上がる。次いで、その精度が1/16であるv
0を使用することによって、その精度が同様に1/16である量子化されたa
0およびa1が計算されて、
を取得し、すなわち、
は第1の成分セットの量子化された予測値である。
本発明のこの実施形態では、第3の決定モジュール330は、第1の成分セットの量子化された予測値
ならびに決定された運動モデル最適化ベクトルに従って、現在符号化中ブロックの第1の成分セットの送信されるべき値を決定する。現在符号化中ブロックの運動モデル送信値は、
であり得る。第1の成分セットは2つの成分を含む場合がある。第1の成分セットの送信値は、
であり得る。他の送信値は
であり、
は量子化された運動モデル最適化ベクトルであり、
は、第1の成分セットの予測値a
0およびa
1の量子化された値である。この場合、送信パラメータを符号化する際の2つのパラメータは、量子化された第1の成分セットと運動モデル最適化ベクトルとの間の差分である。差分は、送信を直接符号化する際の量子化された運動モデル最適化ベクトルによって占有されるビットの数よりも小さい。これにより、送信されるデータの量が削減される。
場合によっては、一実施形態では、第3の決定モジュール330は、第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って、第1の成分セットの送信されるべき値を決定する。具体的には、決定は以下の方法に従ってさらに実施される場合がある。式(6)に従って、運動モデル初期化ベクトルの6つの成分a
iが決定され、ここで、i=0,1,2,3,4,5である。次いで、第1の成分セットも6つのパラメータを含むことが決定され、現在符号化中ブロックの運動モデル送信値が決定される場合があり、すなわち、第1の成分セットの送信値は
であり、ここで、
であり、
は量子化された運動モデル最適化ベクトルであり、a
iは第1の成分セットの予測値である。
本発明のこの実施形態では、符号化モジュール340は、第3の決定モジュール330によって決定された第1の成分セットの送信されるべき値を符号化し、符号化された第1の成分セットの送信されるべき値をデコーダ側に送信することができる。具体的には、符号化モジュール340は、現在符号化中ブロックの運動モデルの送信されるべきベクトルを符号化し、符号化された現在符号化中ブロックの運動モデルの送信されるべきベクトルをデコーダ側に送信することができる。加えて、符号化モジュール340は、第3の決定モジュール330によって決定された運動モデル量子化精度に従って運動モデル最適化ベクトルをさらに量子化し、現在符号化中ブロックの各ピクセルサンプルの予測ピクセルサンプルを決定し、現在符号化中ブロックの予測残差をさらに決定し、予測残差を符号化し、符号化された予測残差をデコーダ側に送信することができる。具体的には、運動モデル最適化ベクトル
の場合、各パラメータa
i’は、式(10)に従って決定された運動モデル量子化精度に従って量子化されて、量子化された運動モデル最適化ベクトル
を取得する。量子化された運動モデル最適化ベクトルが式(7)に代入され、現在符号化中ブロック内の精度Qを有する各ピクセルの基準オフセット位置(x’,y’)が取得される場合がある。現在符号化中ブロック内の各ピクセルサンプルの予測ピクセルサンプルは、基準オフセット位置において計算を介して取得される。さらに、現在符号化中ブロックの予測残差が決定され、予測残差が符号化され、デコーダ側に送信される。場合によっては、ピクセルサンプルは、1つのピクセル、または複数のピクセルを含む小さいピクセルブロックであり得る。本発明はそれに限定されない。
本発明のこの実施形態による符号化デバイス300は、本発明の実施形態におけるビデオ画像符号化方法100を実行するように、それに対応して構成される場合がある。加えて、符号化デバイス300内のモジュールの前述および他の動作および/または機能は、図1および図2の方法の対応するプロセスを実装することを目的としている。簡略にするために、本明細書では詳細はこれ以上記載されない。
したがって、本発明のこの実施形態における符号化デバイスは、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値を決定し、運動モデルの送信されるべき値を送信用に符号化し、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在符号化中ブロックのサイズおよび現在符号化中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、符号化パラメータによって必要とされるビットの数を削減することもできる。
図6は、本発明の一実施形態による、復号デバイス400の概略ブロック図である。復号デバイスは、UEなどのユーザ機器であり得るか、またはRNCもしくはeNBなどのネットワークデバイスであり得る。図6に示されたように、復号デバイス400は、
ビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定するように構成された第1の決定モジュール410であって、動きベクトルグループが現在復号中ブロックの少なくとも1つの動きベクトルを含み、運動モデル送信ベクトルが少なくとも4つの成分を含む、第1の決定モジュール410と、
動きベクトルグループの少なくとも1つの動きベクトルに従って現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定するように構成された第2の決定モジュール420であって、運動モデル初期化ベクトルが少なくとも4つの成分を含む、第2の決定モジュール420と、
運動モデル最適化ベクトルに従って現在復号中ブロックを復号するために、第1の成分セットの予測値および運動モデル送信ベクトルに従って現在復号中ブロックの運動モデル最適化ベクトルを決定するように構成された第3の決定モジュール430と
を含む。
具体的には、デコーダ側の第1の決定モジュール410は、エンコーダ側によって送信されたビットストリームを受信し、ビットストリームに従って復号を実施し、現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定する。動きベクトルグループは、現在復号中ブロック内のピクセルに対応する少なくとも1つの動きベクトルを含む。第2の決定モジュール420は、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定する。運動モデル初期化ベクトルは少なくとも4つの成分を含む。第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。第3の決定モジュール430は、第1の成分セットの予測値および運動モデル送信ベクトルに従って、現在復号中ブロックの運動モデル最適化ベクトルを決定する。次いで、第3の決定モジュール430は、量子化された運動モデル最適化ベクトルに従って現在復号中ブロックの予測サンプルを決定し、予測サンプルに従って現在復号中ブロックに対して復号および復元を実施する。
したがって、本発明のこの実施形態における復号デバイスは、現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルを決定し、運動モデル最適化ベクトルを復号し復元する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
本発明のこの実施形態では、復号デバイスはビットストリームに従って復号を実施する。第1の決定モジュール410は、現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定する。動きベクトルグループは現在復号中ブロックの少なくとも1つの動きベクトルを含み、各動きベクトルは現在復号中ブロック内の1つのピクセルに対応している。場合によっては、運動モデルを記述するために必要とされるパラメータの数は、運動モデル間で異なる。2n個のパラメータを有する運動モデルの場合、デコーダ側によって決定される運動モデル送信ベクトルは2n次元ベクトルであり、現在復号中ブロックの動きベクトルグループは、全般に、n個の動きベクトルを含む場合がある。たとえば、アフィン運動の場合、現在復号中ブロック内のすべてのピクセルがアフィン運動モデルを使用することによって表されると、全般に、アフィン運動モデルは
として表現される場合がある。すなわち、アフィン運動モデルは6つのパラメータを有し、動きベクトルグループは3つの動きベクトルを含む場合がある。一般運動モデルの場合、全般に12個のパラメータが使用され、動きベクトルグループは6つの動きベクトルを含む場合がある。場合によっては、動きベクトルグループを決定することは、動きベクトルグループの少なくとも1つの動きベクトルを決定すること、または動きベクトルグループの1つの動きベクトルを決定すること、または動きベクトルグループのn個の動きベクトルもしくはすべての動きベクトルを決定することであり得る。たとえば、アフィン運動の場合、動きベクトルグループは少なくとも3つの動きベクトルを含む場合があり、現在復号中ブロックの動きベクトルグループを決定することは、計算ベクトルグループの1つの動きベクトル、3つの動きベクトル、またはすべての動きベクトルを決定することであり得る。エンコーダ側によって決定された動きベクトルの数に応じて、デコーダ側も、対応する動きベクトルの数をそれに応じて決定する。本発明はそれに限定されない。
本発明のこの実施形態では、復号デバイスの第1の決定モジュール410は、受信されたビットストリームに従って、現在復号中ブロックの運動モデル送信ベクトルおよび動きベクトルグループを決定することができる。具体的には、デコーダ側は、受信されたビットストリームに従って、現在復号中ブロックの運動モデル送信ベクトルを最初に決定することができる。運動モデル送信ベクトルのすべての成分は、運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得る。代替として、運動モデル送信ベクトルのいくつかの成分は、運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり、いくつかの成分は、運動モデル最適化ベクトルの対応する位置における成分である。本発明はそれに限定されない。
場合によっては、一実施形態では、アフィン運動が一例として使用される。第1の決定モジュール410が現在復号中ブロックの動きベクトルグループを決定し、動きベクトルグループが3つの動きベクトルを含むとき、ビットストリームに従って計算ベクトルグループの少なくともの1つの動きベクトルが最初に決定される場合がある。具体的には、運動モデル送信ベクトルのいくつかの成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり、いくつかの成分が運動モデル最適化ベクトルの対応する位置における成分であると復号デバイスの第1の決定モジュール410が決定すると、デコーダ側は、ビットストリームに従って計算ベクトルグループの少なくともの1つの動きベクトルを決定することができる。デコーダ側は、ビデオビットストリームを復号し、現在復号中ブロックの対象候補ブロックを決定し、対象候補ブロックの動きベクトルおよび対象候補ブロックの基準フレームを決定する。デコーダ側は、対象候補ブロックの基準フレームのピクチャ順序カウントPOCおよび現在復号中ブロックの基準フレームのピクチャ順序カウントPOCを個別に取得し、対象候補ブロックの基準フレームのピクチャ順序カウントPOCに対する現在復号中ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、現在復号中ブロックの基準フレームのピクチャ順序カウントPOCに対する対象候補ブロックの基準フレームのピクチャ順序カウントPOCの比率が、拡大縮小後の動きベクトルに対する拡大縮小前の動きベクトルの比率の比率と等しいように、対象候補ブロックの動きベクトルに対して拡大縮小を実施し、次いで、拡大縮小された動きベクトルを現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定する。対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率は、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在復号中ブロックの基準フレームのピクチャ順序カウントの比率と同じである。
場合によっては、一実施形態では、アフィン運動が一例として使用される。第1の決定モジュール410は、現在復号中ブロックの動きベクトルグループを決定する。動きベクトルグループは3つの動きベクトルを含み、動きベクトルグループの各動きベクトルは、ビットストリームに従って決定される場合がある。具体的には、運動モデル送信ベクトルのすべての成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得ると決定すると、デコーダ側の第1の決定モジュール410は、ビットストリームに従って動きベクトルグループの各動きベクトルを決定することができる。現在復号中ブロックの対象候補ブロックが、ビットストリーム内のインデックス値に従って最初に決定される場合がある。対象候補ブロックの基準フレームが、現在復号中ブロックの基準フレームとして決定される。対象候補ブロックの動きベクトルが、現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルとして決定される。
本発明のこの実施形態では、現在復号中ブロックの動きベクトルグループ内の第1の動きベクトルを決定した後、第1の決定モジュール410は、第1の動きベクトルに従って現在復号中ブロックの動きベクトルグループ内の第2の動きベクトルを決定する。第2の動きベクトルは、第1の動きベクトルとは異なる、動きベクトルグループ内の動きベクトルである。具体的には、現在復号中ブロックのまわりに隣接する復号ブロックから、現在復号中ブロックの複数の候補ブロックが最初に決定される。複数の候補ブロックは同じピクセルに対応している。場合によっては、そのピクセルは現在復号中ブロックの頂点であり得る。たとえば、図2に示されたように、現在復号中ブロックの場合、候補ブロックはDおよびEを含む場合があり、複数の候補ブロックは、決定された第1の動きベクトルの対象候補ブロックを含まない。次いで、各候補ブロックの基準フレームが決定される。候補ブロックの基準フレームが、第1の動きベクトルに対応する対象候補ブロックの基準フレーム、すなわち現在復号中ブロックの基準フレームと同じフレームではない場合、候補ブロックの基準フレームのピクチャ順序カウントPOCに対する対象候補ブロックの基準フレームのピクチャ順序カウントPOCの比率に従って、候補ブロックの基準フレームのピクチャ順序カウントに対する現在ブロックの基準フレームのピクチャ順序カウントの比率が、動きベクトル間の比率と同じであるように、候補ブロックの動きベクトルに対して拡大縮小が実施される。拡大縮小された各候補ブロックの動きベクトルは、第1の動きベクトルと個別に比較される。拡大縮小された候補ブロックの動きベクトルが第1の動きベクトルと異なり、違いが最小であるとき、この候補ブロックは現在復号中ブロックの対象候補ブロックとして決定され、この対象候補ブロックに対応する拡大縮小された動きベクトルは、現在復号中ブロックの動きベクトルグループ内の第2の動きベクトルとして決定される。
本発明のこの実施形態では、前述の方法に従って、第1の決定モジュール410は複数の第2の動きベクトルを決定することができる。たとえば、現在復号中ブロックの動きベクトルグループが3つの動きベクトルを含むとき、動きベクトルグループ内の第1の動きベクトルが決定された後、他の2つの第2の動きベクトルは前述の方法に従って決定される場合があり、さらに動きベクトルグループの各動きベクトルが決定される。しかしながら、本発明はそれに限定されない。
場合によっては、本発明の一実施形態では、一実施形態では、アフィン運動が一例として使用される。第1の決定モジュール410は、現在復号中ブロックの動きベクトルグループを決定する。動きベクトルグループは3つの動きベクトルを含み、動きベクトルグループの各動きベクトルは、ビットストリームに従ってさらに決定される場合がある。具体的には、運動モデル送信ベクトルのすべての成分が運動モデル初期化ベクトルと運動モデル最適化ベクトルとの間の差分であり得ると決定すると、デコーダ側は、ビットストリームに従って動きベクトルグループの各動きベクトルを決定し、ビットストリームに従って現在復号中ブロックの動きベクトルグループの各動きベクトル値を直ちに取得することができる。加えて、動きベクトルグループ内のすべての動きベクトルに対応する、現在復号中ブロックの対象候補ブロックは同じ基準フレームを有し、その基準フレームは現在復号中ブロックの基準フレームである。
本発明のこの実施形態では、第2の決定モジュール420は、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定する。運動モデル初期化ベクトルは少なくとも4つの成分を含む。第1の成分セットは運動モデル初期化ベクトルの少なくとも1つの成分を含む。具体的には、アフィン運動モデルが一例として使用される。アフィンモデルは6つのパラメータを使用することによって表される場合があり、6つのパラメータは
として表現される場合がある。現在復号中ブロック内の各ピクセルの基準フレームにおける位置は、式(7)に従って決定される場合があり、ここで、xおよびyは現在復号中ブロック内の任意のピクセルの座標値であり、x’およびy’は、ピクセルの、基準フレーム内の対応する予測点における座標値であり、v
xおよびv
xは現在復号中ブロック内の任意のピクセルの動きベクトルである。式(8)が取得される場合がある。S210において決定された動きベクトルグループによれば、動きベクトルグループは{v
0,v
1,v
2}として表現される場合があり、動きベクトルグループ内の動きベクトルの座標は(0,0)、(W,0)、および(0,H)であり得るし、ここで、Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さである。式(9)は、動きベクトルグループおよび座標を式(8)に代入することによって取得される場合があり、ここで、v
xjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのx方向成分であり、v
yjは第1の候補動きベクトルグループ内のj番目の候補動きベクトルv
jのy方向成分であり、j=0,1,2である。それに対応して、アフィン運動モデル
内のすべてのパラメータが取得される場合がある。式(6)に示されたように、現在復号中ブロックの動きベクトルグループが式(6)に代入され、現在復号中ブロックの運動モデル初期化ベクトル
が決定される場合がある。運動モデル初期化ベクトルは6次元ベクトルである。場合によっては、別の運動モデルの場合、初期化ベクトルは少なくとも4つの次元を含むベクトルである。第1の成分セットの予測値は、運動モデル初期化ベクトルに従って決定される場合がある。第1の成分セットの予測値は、運動モデル初期化ベクトルの少なくとも1つの成分であり得る。
本発明のこの実施形態では、第3の決定モジュール430は、第1の成分セットの予測値および運動モデル送信ベクトルに従って、現在復号中ブロックの運動モデル最適化ベクトルを決定し、その結果、デコーダ側は運動モデル最適化ベクトルに従って復号を実施する。具体的には、現在復号中ブロックの運動モデル送信値は、
として表現される場合がある。第1の成分セットの送信値は、
によって表される場合があり、ここで、
は、第1の成分セットの予測値a
0およびa
1が量子化された後に取得された数値である。現在復号中ブロックの他のパラメータ送信値は
として表現される場合があり、a
i’が決定される場合があり、a
i’は現在復号中ブロックの運動モデル最適化ベクトルである。
本発明のこの実施形態では、第3の決定モジュール430は、第1の成分セットの予測値a
0およびa
1を量子化して、第1の成分セットの量子化された予測値
を決定することができる。具体的には、アフィン運動が一例として使用される。式(6)に従って運動モデル初期化ベクトルが決定される。運動モデル初期化ベクトルでは、a
0およびa
1は変換運動パラメータであり、動きベクトルグループ内の第1の動きベクトルv
0に関係する。a
0およびa
1は第1の成分セットとして決定される場合がある。場合によっては、2つのパラメータの量子化精度は、1/16または1/4であり得る。1/16が一例として使用される。最初に、v
0が4倍に拡大され、その結果、v
0の精度は1/4から1/16に上がり、次いで、その精度が1/16であるv
0を使用することによって、その精度が同様に1/16である量子化されたa
0およびa
1が計算されて、
を取得し、すなわち、
が第1の成分セットの量子化された予測値である。
場合によっては、一実施形態では、第3の決定モジュール430は、式(6)に従って運動モデル初期化ベクトルの第1の成分セットの予測値a
iを決定することができる。第1の成分セットは運動モデル初期化ベクトルのすべての成分を含み、すなわち、第1の成分セットは6つのパラメータを含み、そのため、現在復号中ブロックの運動モデル送信値が決定され、すなわち、第1の成分セットの送信値は
であり、ここで、
であり、a
i’は現在復号中ブロックの運動モデル最適化ベクトルである。
本発明のこの実施形態では、第3の決定モジュール430は、現在復号中ブロックに従って運動モデル量子化精度を決定し、運動モデル量子化精度に従って運動モデル最適化ベクトルを量子化し、量子化された運動モデル最適化ベクトルに従って、現在復号中ブロックに対して構文解析、復号、および復元を実施することができる。
具体的には、第3の決定モジュール430は、現在復号中ブロックの運動モデル量子化精度を決定する。具体的には、量子化精度は、現在復号中ブロックのサイズおよび精度情報に従って決定される場合がある。現在復号中ブロックのサイズは現在復号中ブロックの幅および現在復号中ブロックの高さを含み、精度情報は動きベクトルグループの量子化精度を含む。具体的には、式(6)に従って、運動モデルのパラメータが現在復号中ブロックの幅および高さに関係することを知ることができる。したがって、量子化精度は式(10)に従って決定される場合がある。1/Pは現在復号中ブロックの動きベクトルグループの量子化精度である。場合によっては、動きベクトルグループの量子化精度は、全般に1/4であり、それゆえP=4である。Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さである。たとえば、現在復号中ブロックの幅が16であり、高さが32である場合、動きベクトルグループの量子化精度は、1/(32×4)=1/128であり、現在復号中ブロックの幅が16であり、高さが8である場合、量子化精度は、1/(16×4)=1/64である。
具体的には、本発明のこの実施形態では、第3の決定モジュール430は、決定された量子化精度に従って、決定された運動モデル最適化ベクトルを量子化して、量子化された運動モデル最適化ベクトル
を取得する。
具体的には、本発明のこの実施形態では、第3の決定モジュール430は、量子化された運動モデル最適化ベクトルに従って現在復号中ブロックを復号する。具体的には、運動モデル最適化ベクトル
が式(7)に代入され、次いで、現在復号中ブロック内の精度Qを有する各ピクセルの基準オフセット位置(x’,y’)が取得される場合がある。現在復号中ブロック内の各ピクセルサンプルの予測ピクセルサンプルは、基準オフセット位置において計算を介して取得される。次いで、受信されたビットストリーム内で、現在復号中ブロックの決定された予測残差に従って、予測ピクセルサンプルに対して復号および復元が実施される。場合によっては、ピクセルサンプルは、1つのピクセル、または複数のピクセルを含む小さいピクセルブロックであり得る。本発明はそれに限定されない。
本発明のこの実施形態による復号デバイス400は、本発明の実施形態におけるビデオ画像復号方法200を実行するように、それに対応して構成される場合がある。加えて、復号デバイス400内のモジュールの前述および他の動作および/または機能は、図3および図4の方法の対応するプロセスを実装することを目的としている。簡略にするために、本明細書では詳細はこれ以上記載されない。
したがって、本発明のこの実施形態における復号デバイスは、受信されたビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルを決定し、運動モデル最適化ベクトルを復号し復元する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在復号中ブロックのサイズおよび現在復号中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、パラメータ送信において必要とされるビットの数を削減することもできる。
図7に示されたように、本発明の一実施形態は、プロセッサ510と、メモリ520と、バスシステム530とを含む符号化デバイス500をさらに提供する。プロセッサ510およびメモリ520は、バスシステム530を使用することによって接続される。メモリ520は、命令を記憶するように構成される。プロセッサ510は、メモリ520に記憶された命令を実行するように構成される。符号化デバイス500のメモリ520はプログラムコードを記憶し、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロックの動きベクトルグループを決定することであって、動きベクトルグループが現在符号化中ブロックの少なくとも1つの動きベクトルを含む、決定することと、動きベクトルグループの少なくとも1つの動きベクトルに従って、現在符号化中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定することであって、運動モデル初期化ベクトルが少なくとも4つの成分を含む、決定することと、第1の成分セットの予測値に従って第1の成分セットの送信されるべき値を決定することと、第1の成分セットの送信されるべき値を符号化し、符号化された第1の成分セットの送信されるべき値をデコーダ側に送信することとを実施することができる。
したがって、本発明のこの実施形態における符号化デバイスは、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値を決定し、運動モデルの送信されるべき値を送信用に符号化し、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
本発明のこの実施形態では、プロセッサ510は中央処理装置(Central Processing Unit、略して「CPU」)であり得るか、またはプロセッサ510は、別の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理デバイス、個別ハードウェアアセンブリなどであり得ることを理解されたい。汎用プロセッサはマクロプロセッサであり得るか、またはプロセッサは任意の従来のプロセッサなどであり得る。
メモリ520は、読取り専用メモリおよびランダムアクセスメモリを含み、プロセッサ510に命令およびデータを供給することができる。メモリ520の一部は、不揮発性ランダムアクセスメモリをさらに含む場合がある。たとえば、メモリ520は、デバイスタイプ情報をさらに記憶することができる。
データバスに加えて、バスシステム530は、電源バス、制御バス、状態信号バスなどをさらに含む場合がある。しかしながら、説明を明確にするために、図において、様々なバスはバスシステム530によって表現される。
一実装プロセスでは、前述の方法のステップは、プロセッサ510内のハードウェアの集積論理回路を使用することにより、またはソフトウェアの形態の命令を使用することによって実装される場合がある。本発明の実施形態を参照して開示された方法のステップは、ハードウェアプロセッサによって直接実装される場合があるか、またはハードウェアおよびプロセッサ内のソフトウェアの組合せによって実装される場合がある。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読取り専用メモリ、プログラマブル読取り専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの、当技術分野の成熟記憶媒体内に位置する場合がある。記憶媒体はメモリ520内に位置し、プロセッサ510はメモリ520から情報を読み取り、プロセッサ501のハードウェアと組み合わせて前述の方法内のステップを実装する。繰り返しを避けるために、本明細書では詳細はこれ以上記載されない。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロックの運動モデル最適化ベクトルを決定することと、第1の成分セットの予測値および運動モデル最適化ベクトルに従って第1の成分セットの送信されるべき値を決定することとを実施することができる。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロックのサイズおよび精度情報に従って運動モデル量子化精度を決定することと、運動モデル量子化精度に従って運動モデル最適化ベクトルを量子化することと、第1の成分セットの予測値および量子化された運動モデル最適化ベクトルに従って第1の成分セットの送信されるべき値を決定することとを実施することができる。
場合によっては、一実施形態では、現在符号化中ブロックのサイズは現在符号化中ブロックの幅および現在符号化中ブロックの高さを含み、精度情報は動きベクトルグループの量子化精度を含む。プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:式(10)に従って運動モデル量子化精度Qを決定することを実施することができ、ここで、Pは動きベクトルグループの量子化精度であり、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さである。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの6つの成分のうちの少なくとも1つの成分を含み、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:式(6)に従って運動モデル初期化ベクトルの6つの成分aiを決定することを実施することができ、ここで、i=0,1,2,3,4,5であり、Wは現在符号化中ブロックの幅であり、Hは現在符号化中ブロックの高さであり、vxjは動きベクトルvjのx方向成分であり、vyjは動きベクトルvjのy方向成分であり、j=0,1,2である。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの2つの成分を含み、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:第1の成分セットの送信されるべき値を決定することを実施することができ、第1の成分セットの送信されるべき値は
を含み、
であり、
であり、
は、第1の成分セットに対応する量子化された運動モデル最適化ベクトルであり、
は、第1の成分セットの予測値a
0およびa
1が量子化された後に取得された数値である。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの6つの成分を含み、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:第1の成分セットの送信されるべき値を決定することを実施することができ、第1の成分セットの送信されるべき値は
を含み、i=0,1,2,3,4,5であり、ここで、
であり、
は量子化された運動モデル最適化ベクトルであり、a
iは第1の成分セットの予測値である。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロックの複数の候補ブロックを決定することであって、複数の候補ブロックのうちの各候補ブロックが現在符号化中ブロックに隣接する符号化ブロックである、決定することと、複数の候補ブロックのうちの各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値を決定することと、複数の候補ブロックに対応する複数の整合エラー値の中の最小整合エラー値に対応する候補ブロックを、現在符号化中ブロックの対象候補ブロックとして決定することと、現在符号化中ブロックの基準フレームのピクチャ順序カウントおよび対象候補ブロックの基準フレームのピクチャ順序カウントを取得することと、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在符号化中ブロックの基準フレームのピクチャ順序カウントの比率に従って動きベクトルグループ内の第1の動きベクトルを決定することであって、対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率が、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在符号化中ブロックの基準フレームのピクチャ順序カウントの比率と同じである、決定することと、第1の動きベクトルに従って動きベクトルグループを決定することとを実施することができる。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロック内の同じピクセルに対応する複数の候補ブロックを決定することであって、複数の候補ブロックのうちの各候補ブロックが現在符号化中ブロックに隣接する符号化ブロックである、決定することと、複数の候補ブロックのうちの各候補ブロックの動きベクトルに対応する予測ブロックと現在符号化中ブロックとの間の整合エラー値を決定することと、複数の候補ブロックに対応する複数の整合エラー値の中の最小整合エラー値に対応する候補ブロックを、現在符号化中ブロックの対象候補ブロックとして決定することと、対象候補ブロックの動きベクトルを動きベクトルグループ内の第1の動きベクトルとして決定することと、第1の動きベクトルに従って動きベクトルグループ内の第2の動きベクトルを決定することと、第1の動きベクトルおよび第2の動きベクトルに従って動きベクトルグループを決定することとを実施することができる。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:現在符号化中ブロックの複数の候補動きベクトルグループを決定することであって、複数の候補動きベクトルグループのうちの各候補動きベクトルグループが3つの候補動きベクトルを含む、決定することと、複数の候補動きベクトルグループのうちの各候補動きベクトルグループに対応する候補基準フレームを決定することと、候補動きベクトルグループごとに、現在符号化中ブロックの中の候補基準フレーム内の対応する予測点における各ピクセルの座標値を決定することと、候補動きベクトルグループごとに、現在符号化中ブロック内の各ピクセルの座標値および現在符号化中ブロックの中の候補基準フレーム内の対応する予測点における各ピクセルの座標値に従って、現在符号化中ブロックの整合エラー値を決定することと、現在符号化中ブロックの最小整合エラー値に対応する候補動きベクトルグループを、現在符号化中ブロックの動きベクトルグループとして決定することとを実施することができる。場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:運動モデル初期化ベクトルに従って現在符号化中ブロックの第1の予測ブロックを決定することと、現在符号化中ブロックと第1の予測ブロックとの間の第1の整合エラー値を決定することと、現在符号化中ブロックの基準フレームに含まれる複数の予測ブロックから、現在符号化中ブロックに対して最小整合エラー値を有する第2の予測ブロックを決定することと、現在符号化中ブロックと第2の予測ブロックとの間の第2の整合エラー値を決定することと、第1の整合エラー値および第2の整合エラー値に従って現在符号化中ブロックの運動モデル最適化ベクトルを決定することとを実施することができる。
場合によっては、一実施形態では、プロセッサ510は、メモリ520に記憶されたプログラムコードを呼び出して、以下の動作:第1の整合エラー値が第2の整合エラー値よりも小さいとき、運動モデル初期化ベクトルを運動モデル最適化ベクトルとして決定すること、または第1の整合エラー値が第2の整合エラー値よりも大きいとき、第2の予測ブロックのピクセルおよび現在符号化中ブロックのピクセルに従って運動モデル最適化ベクトルとして決定することを実施することができる。
本発明のこの実施形態による符号化デバイス500は、本発明の実施形態における符号化デバイス300に対応している場合があり、本発明の実施形態における方法100を実行する対応する本体に対応している場合があることを理解されたい。加えて、符号化デバイス500内のモジュールの前述および他の動作および/または機能は、図1および図2の方法の対応するプロセスを実装することを目的としている。簡略にするために、本明細書では詳細はこれ以上記載されない。
したがって、本発明のこの実施形態における符号化デバイスは、現在符号化中ブロックの動きベクトルグループを決定し、動きベクトルグループに従って現在符号化中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルに従って運動モデルの送信されるべき値を決定し、運動モデルの送信されるべき値を送信用に符号化し、その結果、デコーダ側は運動モデルの送信されるべき値に従って復号を実施する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在符号化中ブロックのサイズおよび現在符号化中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、符号化パラメータによって必要とされるビットの数を削減することもできる。
図8に示されたように、本発明の一実施形態は、プロセッサ610と、メモリ620と、バスシステム630とを含む復号デバイス600をさらに提供する。プロセッサ610およびメモリ620は、バスシステム630を使用することによって接続される。メモリ620は、命令を記憶するように構成される。プロセッサ610は、メモリ620に記憶された命令を実行するように構成される。復号デバイス600のメモリ620はプログラムコードを記憶し、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:ビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定することであって、動きベクトルグループが現在復号中ブロックの少なくとも1つの動きベクトルを含み、運動モデル送信ベクトルが少なくとも4つの成分を含む、決定することと、動きベクトルグループの少なくとも1つの動きベクトルに従って現在復号中ブロックの運動モデル初期化ベクトルの第1の成分セットの予測値を決定することであって、運動モデル初期化ベクトルが少なくとも4つの成分を含む、決定することと、運動モデル最適化ベクトルに従って現在復号中ブロックを復号するために、第1の成分セットの予測値および運動モデル送信ベクトルに従って現在復号中ブロックの運動モデル最適化ベクトルを決定することとを実施することができる。
したがって、本発明のこの実施形態における復号デバイスは、受信されたビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルを決定し、運動モデル最適化ベクトルを復号し復元する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。
本発明のこの実施形態では、プロセッサ610は中央処理装置(Central Processing Unit、略して「CPU」)であり得るか、またはプロセッサ610は、別の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは別のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理デバイス、個別ハードウェアアセンブリなどであり得ることを理解されたい。汎用プロセッサはマクロプロセッサであり得るか、またはプロセッサは任意の従来のプロセッサなどであり得る。
メモリ620は、読取り専用メモリおよびランダムアクセスメモリを含み、プロセッサ610に命令およびデータを供給することができる。メモリ620の一部は、不揮発性ランダムアクセスメモリをさらに含む場合がある。たとえば、メモリ620は、デバイスタイプ情報をさらに記憶することができる。
データバスに加えて、バスシステム630は、電源バス、制御バス、状態信号バスなどをさらに含む場合がある。しかしながら、説明を明確にするために、図において、様々なバスはバスシステム630によって表現される。
一実装プロセスでは、前述の方法のステップは、プロセッサ610内のハードウェアの集積論理回路を使用することにより、またはソフトウェアの形態の命令を使用することによって実装される場合がある。本発明の実施形態を参照して開示された方法のステップは、ハードウェアプロセッサによって直接実装される場合があるか、またはハードウェアおよびプロセッサ内のソフトウェアの組合せによって実装される場合がある。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読取り専用メモリ、プログラマブル読取り専用メモリ、電気的消去可能プログラマブルメモリ、またはレジスタなどの、当技術分野の成熟記憶媒体内に位置する場合がある。記憶媒体はメモリ620内に位置し、プロセッサ610はメモリ620から情報を読み取り、プロセッサ610のハードウェアと組み合わせて前述の方法内のステップを実装する。繰り返しを避けるために、本明細書では詳細はこれ以上記載されない。
場合によっては、一実施形態では、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:現在復号中ブロックの運動モデル量子化精度を決定することと、運動モデル量子化精度に従って運動モデル最適化ベクトルを量子化することと、量子化された運動モデル最適化ベクトルに従って現在復号中ブロックを復号することとを実施することができる。
場合によっては、一実施形態では、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:現在復号中ブロックのサイズおよび精度情報に従って運動モデル量子化精度を決定することを実施することができる。
場合によっては、一実施形態では、現在復号中ブロックのサイズは現在復号化中ブロックの幅および現在復号中ブロックの高さを含み、精度情報は動きベクトルグループの量子化精度を含む。プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:式(10)に従って運動モデル量子化精度Qを決定することを実施することができ、ここで、Pは動きベクトルグループの量子化精度であり、Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さである。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの6つの成分のうちの少なくとも1つの成分を含み、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:式(6)に従って運動モデル初期化ベクトルの6つの成分aiを決定することを実施することができ、ここで、i=0,1,2,3,4,5であり、Wは現在復号中ブロックの幅であり、Hは現在復号中ブロックの高さであり、vxjは動きベクトルvjのx方向成分であり、vyjは動きベクトルvjのy方向成分であり、j=0,1,2である。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの2つの成分を含み、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:現在復号中ブロックの運動モデル最適化ベクトルが(a
0’,a
1’,a
2’,a
3’,a
4’,a
5’)であり、
であり、
であると決定することを実施することができ、
は運動モデル送信ベクトルであり、
は、第1の成分セットの予測値a
0およびa
1を量子化することによって取得された数値である。
場合によっては、一実施形態では、第1の成分セットは運動モデル初期化ベクトルの6つの成分を含み、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:現在復号中ブロックの運動モデル最適化ベクトルが(a
0’,a
1’,a
2’,a
3’,a
4’,a
5’)であると決定することを実施することができ、ここで、
であり、
は運動モデル送信ベクトルであり、a
iは第1の成分セットの予測値であり、i=0,1,2,3,4,5である。
場合によっては、一実施形態では、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:ビットストリームに従って現在復号中ブロックの対象候補ブロックおよび対象候補ブロックの動きベクトルを決定することと、現在復号中ブロックの基準フレームのピクチャ順序カウントおよび対象候補ブロックの基準フレームのピクチャ順序カウントを取得することと、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在復号中ブロックの基準フレームのピクチャ順序カウントの比率に従って動きベクトルグループ内の第1の動きベクトルを決定することであって、対象候補ブロックの動きベクトルに対する第1の動きベクトルの比率が、対象候補ブロックの基準フレームのピクチャ順序カウントに対する現在復号中ブロックの基準フレームのピクチャ順序カウントの比率と同じである、決定することと、第1の動きベクトルに従って動きベクトルグループを決定することとを実施することができる。
場合によっては、一実施形態では、プロセッサ610は、メモリ620に記憶されたプログラムコードを呼び出して、以下の動作:ビットストリームに従って現在復号中ブロックの対象候補ブロックの動きベクトルを決定することと、現在復号中ブロックの対象候補ブロックの動きベクトルを動きベクトルグループ内の第1の動きベクトルとして決定することと、第1の動きベクトルに従って動きベクトルグループ内の第2の動きベクトルを決定することと、第1の動きベクトルおよび第2の動きベクトルに従って動きベクトルグループを決定することとを実施することができる。
本発明のこの実施形態による復号デバイス600は、本発明の実施形態における復号デバイス400に対応している場合があり、本発明の実施形態における方法200を実行する対応する本体に対応している場合があることを理解されたい。加えて、復号デバイス600内のモジュールの前述および他の動作および/または機能は、図3および図4の方法の対応するプロセスを実装することを目的としている。簡略にするために、本明細書では詳細はこれ以上記載されない。
したがって、本発明のこの実施形態における復号デバイスは、受信されたビットストリームに従って現在復号中ブロックの動きベクトルグループおよび運動モデル送信ベクトルを決定し、動きベクトルグループに従って現在復号中ブロックの運動モデル初期化ベクトルを決定し、運動モデル初期化ベクトルおよび運動モデル送信ベクトルに従って運動モデル最適化ベクトルを決定し、運動モデル最適化ベクトルを復号し復元する。このようにして、符号化送信および復号送信におけるデータの量および占有されるビットの数を削減することができる。加えて、運動モデル最適化ベクトルが決定され、最適化ベクトルが量子化されると、現在復号中ブロックのサイズおよび現在復号中ブロックの動きベクトルの量子化精度に従って、決定された量子化精度が決定される。これにより、パラメータ送信において必要とされるビットの数を削減することもできる。
本明細書で開示された実施形態を参照して記載された例におけるユニットおよびアルゴルズムステップは、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアの組合せによって実装され得ることを、当業者なら認識することができる。機能がハードウェアによって実施されるか、またはソフトウェアによって実施されるかは、技術的解決策の特定の適用例および設計制約条件に依存する。当業者は、様々な方法を使用して、特定の適用例ごとに記載された機能を実装することができるが、その実装形態が本発明の範囲を超えると考えられるべきではない。
便利で簡潔な説明のために、前述のシステム、装置、およびユニットの詳細な動作プロセスについて、前述の方法実施形態内の対応するプロセスに対して参照を行うことができ、本明細書では詳細はこれ以上記載されないことは、当業者によって明確に理解される場合がある。
本出願において提供されたいくつかの実施形態では、開示されたシステム、装置、および方法は他の方式で実装され得ることを理解されたい。たとえば、記載された装置実施形態は一例にすぎない。たとえば、ユニット分割は論理的な機能分割にすぎず、実際の実装形態では他の分割であり得る。たとえば、複数のユニットまたは構成要素は組み合わされるか、もしくは別のシステムに統合される場合があり、または、いくつかの特徴は無視されるか、もしくは実施されない場合がある加えて、表示または説明された相互結合もしくは直接結合または通信接続は、いくつかのインターフェース、装置、もしくはユニット間の間接結合もしくは通信接続であり得るか、または電気、機械、もしくは他の形態で実装される場合がある。
個別の部分として記載されたユニットは、物理的に分かれている場合も、分かれていない場合もある。ユニットとして表示された部分は、物理ユニットである場合も、そうでない場合もあり、1つの場所に位置する場合があるか、または複数のネットワークユニット上に分散される場合がある。ユニットのうちのいくつかまたはすべては、実施形態の解決策の目的を達成するために、実際の必要に応じて選択される場合がある。
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合される場合があり、または、ユニットの各々は物理的に単独で存在する場合があり、または2つ以上のユニットは1つのユニットに統合される場合がある。
機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用されるとき、機能はコンピュータ可読記憶媒体に記憶される場合がある。そのような理解に基づいて、本発明の技術的解決策は本質的に、または従来技術に寄与する部分は、または技術的解決策のうちのいくつかは、ソフトウェア製品の形態で実装される場合がある。ソフトウェア製品は、記憶媒体に記憶され、本発明の実施形態に記載された方法のステップのうちのすべてまたはいくつかを実施するように、(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)コンピュータデバイスに命令するためのいくつかの命令を含む。前述の記憶媒体には、USBフラッシュドライブ、リムーバブルハードディスク、読取り専用メモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶することができる任意の媒体が含まれる。
前述の説明は、本発明の特定の実装形態にすぎず、本発明の保護範囲を限定するものではない。本発明において開示された技術的範囲内で当業者が容易に考え付くいかなる変形または置換も、本発明の保護範囲内に入るべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うべきである。