多様な実施形態によるビデオ復号方法は、ビットストリームから、現在ピクチャ内の現在ブロックに係わる動き予測モード情報を獲得する段階と、
前記獲得された動き予測モード情報が双方向(bi-direction)動き予測モードを示す場合、第1参照ピクチャ内において、現在ブロックの第1参照ブロックを示す第1動きベクトルについての情報、及び第2参照ピクチャ内において、現在ブロックの第2参照ブロックを示す第2動きベクトルについての情報を、前記ビットストリームから獲得する段階と、
前記第1参照ブロック及び前記第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、前記第1参照ブロック及び前記第2参照ブロックに含まれた参照ピクセルに係わる値を利用し、現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルを決定する段階と、
前記現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する前記第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記現在ピクセルに対応する前記第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、並びに前記現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルに基づいて、現在ブロックのブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロックを獲得する段階と、
前記ビットストリームから、現在ブロックのレジデュアルブロックについての情報を獲得する段階と、
前記予測ブロック及び前記レジデュアルブロックに基づいて、前記現在ブロックを復元する段階と、を含み、
前記ピクセルグループは、少なくとも1つのピクセルを含んでもよい。
多様な実施形態によるビデオ復号装置は、ビットストリームから、現在ピクチャ内の現在ブロックに係わる動き予測モード情報を獲得する段階と、
前記獲得された動き予測モード情報が双方向動き予測モードを示す場合、第1参照ピクチャ内において、現在ブロックの第1参照ブロックを示す第1動きベクトルについての情報、及び第2参照ピクチャ内において、現在ブロックの第2参照ブロックを示す第2動きベクトルについての情報を、前記ビットストリームから獲得し、前記ビットストリームから、現在ブロックのレジデュアルブロックについての情報を獲得する獲得部と、
前記第1参照ブロック及び前記第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、前記第1参照ブロック及び前記第2参照ブロックに含まれた参照ピクセルに係わる値を利用し、現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルを決定し、前記現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する前記第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記現在ピクセルに対応する前記第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、並びに前記現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルに基づいて、現在ブロックに係わるブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロックを獲得するインター予測部と、
前記予測ブロック及び前記レジデュアルブロックに基づいて、前記現在ブロックを復元する復号部と、を含み、
前記ピクセルグループは、少なくとも1つのピクセルを含んでもよい。
多様な実施形態によるビデオ符号化方法は、現在ブロックに対して、ブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、前記現在ブロックの予測ブロック、第1動きベクトル及び第2動きベクトルを獲得する段階と、
前記第1動きベクトル及び前記第2動きベクトルについての情報、並びに前記現在ブロックに係わる動き予測モードが、双方向動き予測モードであるか否かということを示す動き予測モード情報を含むビットストリームを生成する段階と、を含み、
前記ピクセルグループは、少なくとも1つのピクセルを含み、
前記第1動きベクトルは、前記現在ブロックから、現在ピクチャ内の前記現在ブロックに対応する第1参照ピクチャの第1参照ブロックを示す動きベクトルであり、
前記第2動きベクトルは、前記現在ブロックから、現在ピクチャ内の前記現在ブロックに対応する第2参照ピクチャの第2参照ブロックを示す動きベクトルであり、
前記現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する前記第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記現在ピクセルに対応する前記第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、並びに前記現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルに基づいて、現在ブロックに係わるブロック単位の動き補償、及びピクセルグループ単位の動き補償が行われ、現在ブロックの予測ブロックが獲得され、
前記現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルは、前記第1参照ブロック及び前記第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、前記第1参照ブロック及び前記第2参照ブロックに含まれた参照ピクセルに係わる値を利用しても決定される。
多様な実施形態によるビデオ符号化装置は、現在ブロックに対して、ブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、前記現在ブロックの予測ブロック、第1動きベクトル及び第2動きベクトルを獲得するインター予測部と、
前記第1動きベクトル及び前記第2動きベクトルについての情報、並びに前記現在ブロックに係わる動き予測モードが、双方向動き予測モードであるか否かということを示す動き予測モード情報を含むビットストリームを生成するビットストリーム生成部と、を含み、
前記ピクセルグループは、少なくとも1つのピクセルを含み、
前記第1動きベクトルは、前記現在ブロックから、現在ピクチャ内の前記現在ブロックに対応する第1参照ピクチャの第1参照ブロックを示す動きベクトルであり、前記第2動きベクトルは、前記現在ブロックから、現在ピクチャ内の前記現在ブロックに対応する第2参照ピクチャの第2参照ブロックを示す動きベクトルであり、
前記現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する前記第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記現在ピクセルに対応する前記第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、並びに前記現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルに基づいて、現在ブロックに係わるブロック単位の動き補償、及びピクセルグループ単位の動き補償が行われ、現在ブロックの予測ブロックが獲得され、
前記現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルは、前記第1参照ブロック及び前記第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、前記第1参照ブロック及び前記第2参照ブロックに含まれた参照ピクセルに係わる値を利用しても決定される。
多様な実施形態による方法を具現するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を含んでもよい。
以下、「映像」は、ビデオの静止映像や動画、すなわち、ビデオそれ自体を示すことができる。
以下、「サンプル」は、映像のサンプリング位置に割り当てられたデータであり、プロセッシング対象になるデータを意味する。例えば、空間領域の映像において、ピクセルがサンプルでもある。
以下、「現在ブロック(current block)」は、符号化または復号しようとする映像のブロックを意味する。
図1Aは、多様な実施形態によるビデオ復号装置のブロック図を図示する。
多様な実施形態によるビデオ復号装置100は、獲得部105、インター予測部110及び復元部125を含む。
獲得部105は、現在ブロックの予測モードについての情報、現在ブロックの動き予測モードを示す情報、及び動きベクトルについての情報を含むビットストリームを受信する。
獲得部105は、受信されたビットストリームから、現在ブロックの予測モードについての情報、現在ブロックの動き予測モードを示す情報、及び動きベクトルについての情報を獲得することができる。また、獲得部105は、以前に復号されたピクチャのうち参照ピクチャを示す参照ピクチャインデックスを受信されたビットストリームから獲得することができる。
インター予測部110は、現在ブロックの予測モードがインター予測モードである場合、現在ブロックに係わるインター予測を行う。すなわち、インター予測部110は、現在ブロックが含まれた現在ピクチャより以前に復号されたピクチャのうち少なくとも一つを利用し、現在ブロックの予測ピクセル値を生成することができる。例えば、インター予測部110は、現在ブロックの動き予測モードが、双方向動き予測モードである場合、現在ピクチャより以前に復号された2つのピクチャを利用し、現在ブロックの予測ピクセル値を生成することができる。すなわち、インター予測部110は、ビットストリームから獲得された動き予測モードについての情報が双方向動き予測モードを示す場合、現在ピクチャより以前に復号された2つのピクチャを利用し、現在ブロックの予測ピクセル値を生成することができる。
インター予測部110は、ブロック単位の動き補償部115、及びピクセルグループ単位の動き補償部120を含んでもよい。
ブロック単位の動き補償部115は、現在ブロックに係わるブロック単位の動き補償を行うことができる。
ブロック単位の動き補償部115は、ビットストリームから獲得された参照ピクチャインデックスを利用し、以前に復号されたピクチャのうち少なくとも1つの参照ピクチャを決定することができる。このとき、参照ピクチャインデックスは、L0方向及びL1方向を含む予測方向それぞれに係わる参照ピクチャインデックスを意味する。ここで、L0方向に係わる参照ピクチャインデックスは、L0参照ピクチャリストに含まれたピクチャのうち参照ピクチャを示すインデックスを意味し、L1方向に係わる参照ピクチャインデックスは、L1参照ピクチャリストに含まれたピクチャのうち参照ピクチャを示すインデックスを意味する。
ブロック単位の動き補償部115は、ビットストリームから受信された動きベクトルについての情報を利用し、少なくとも1つの参照ピクチャ内に位置する現在ブロックの参照ブロックを決定することができる。ここで、現在ピクチャ内の現在ブロックに対応する参照ピクチャ内の対応ブロックが参照ブロックでもある。すなわち、ブロック単位の動き補償部115は、現在ブロックから参照ブロックを示す動きベクトルを利用し、現在ブロックの参照ブロックを決定することができる。ここで、該動きベクトルは、現在ピクチャ内の現在ブロックの基準座標と、参照ピクチャ内参照ブロックの基準座標との変位を示すベクトルを意味する。例えば、現在ブロックの左上側座標が(1,1)であり、参照ピクチャ内参照ブロックの左上側座標が(3,3)である場合、動きベクトルは、(2,2)でもある。
ここで、動きベクトルについての情報は、動きベクトルの差分値を含んでもよく、ブロック単位の動き補償部115は、動きベクトルの予測子(predictor)、及びビットストリームから獲得された動きベクトルの差分値を利用して動きベクトルを復元し、復元された動きベクトルを利用し、少なくとも1つの参照ピクチャ内に位置する現在ブロックの参照ブロックを決定することができる。このとき、該動きベクトルの差分値は、L0方向及びL1方向を含む予測方向それぞれと係わる参照ピクチャに係わる動きベクトルの差分値を意味する。ここで、L0方向に係わる動きベクトルの差分値は、L0参照ピクチャリストに含まれた参照ピクチャ内の参照ブロックを示す動きベクトルの差分値を意味し、L1方向に係わる動きベクトルの差分値は、L1参照ピクチャリストに含まれた参照ピクチャ内の参照ブロックを示す動きベクトルの差分値を意味する。
ブロック単位の動き補償部115は、参照ブロックのピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行うことができる。ブロック単位の動き補償部115は、現在ブロック内の現在ピクセルに対応する参照ブロック内の参照ピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行うことができる。ここで、該参照ピクセルは、参照ブロックに含まれたピクセルであり、現在ブロック内の現在ピクセルに対応する対応ピクセルが参照ピクセルでもある。
ブロック単位の動き補償部115は、複数の参照ピクチャそれぞれに含まれた複数の参照ブロックを利用し、現在ブロックに対して、ブロック単位の動き補償を行うことができる。例えば、ブロック単位の動き補償部115は、現在ブロックの動き予測モードが、双方向動き予測モードである場合、以前に符号化されたピクチャのうち2つの参照ピクチャを決定し、2つのピクチャに含まれた2つの参照ブロックを決定することができる。
ブロック単位の動き補償部115は、2つの参照ブロック内の2つの参照ピクセルのピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行うことができる。ブロック単位の動き補償部115は、2つの参照ピクセルのピクセル値に係わる平均値または加重和(weighted sum)を利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。
参照ブロックの基準位置は、整数ピクセル(integer pixel)の位置でもあるが、それに制限されるものではなく、小数ピクセル(fractional pixel)の位置でもある。ここで、整数ピクセルとは、位置成分が整数であるピクセルであり、整数ピクセル位置にあるピクセルを意味する。小数ピクセルは、位置成分が小数であるピクセルであり、小数ピクセル位置にあるピクセルを意味する。
例えば、現在ブロックの左上側座標が(1,1)であり、動きベクトルが(2.5,2.5)である場合、参照ピクチャ内の参照ブロックの左上側座標は、(3.5,3.5)でもある。このとき、小数ピクセルの位置は、1/4ペル(pel:pixel element)単位または1/16ペル単位にも決定される。それに制限されるものではなく、多様な小数ペル単位により、小数ピクセルの位置が決定されもする。
参照ブロックの基準位置が小数ピクセルの位置である場合、ブロック単位の動き補償部115は、第1動きベクトルが示す第1参照ブロックのピクセルのうち第1ピクセルを含む第1周辺領域、及び第2動きベクトルが示す第2参照ブロックのピクセルのうち第2ピクセルを含む第2周辺領域に補間フィルタを適用し、第1ピクセルのピクセル値、及び第2ピクセルのピクセル値を生成することができる。
すなわち、参照ブロック内の参照ピクセル値は、所定の方向成分が整数である周辺ピクセルのピクセル値を利用しても決定される。このとき、該所定の方向は、水平方向または垂直方向でもある。
例えば、ブロック単位の動き補償部115は、所定の方向成分が整数であるピクセルのピクセル値に対して、補間フィルタ(interpolation filter)を利用してフィルタリングを行い、その結果値でもって、参照ピクセル値を決定し、該参照ピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償値を決定することができる。参照ピクセルの平均値または加重和を利用し、ブロック単位の動き補償値が決定されもする。このとき、補間フィルタは、DCT(discrete cosine transformation)基盤のMタップ(tap)の補間フィルタを利用することができる。DCT基盤のMタップの補間フィルタの係数は、DCT及びIDCT(inverse discrete cosine transform)からも誘導される。このとき、補間フィルタの係数は、フィルタリング遂行時、実数演算を減らすために、整数係数にスケーリングされたフィルタ係数でもある。このとき、該補間フィルタは、水平方向または垂直方向の一次元補間フィルタでもある。例えば、x,y直交座標成分でピクセルの位置を表現する場合、水平方向は、x軸と平行な方向を意味する。垂直方向は、y軸と平行な方向を意味する。
ブロック単位の動き補償部115は、まず垂直方向の一次元補間フィルタを利用し、整数位置にあるピクセル値に対してフィルタリングを行い、フィルタリングが行われて生成された値に、水平方向の一次元補間フィルタを利用してフィルタリングを行い、小数ピクセル位置での参照ピクセル値を決定することができる。
一方、スケーリングされたフィルタ係数を利用する場合、フィルタリングが行われて生成された値は、スケーリングされていないフィルタ係数を利用する場合に比べ、その値が大きくもなる。従って、ブロック単位の動き補償部115は、フィルタリングが行われて生成された値に対して、逆スケーリング(de-scaling)を行うことができる。
ブロック単位の動き補償部115は、垂直方向の一次元補間フィルタを利用し、整数位置にあるピクセル値に対してフィルタリングを行った後、逆スケーリングを行うことができる。このとき、逆スケーリングは、右側に、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。逆スケーリングビット数は、入力映像のサンプルのビットデプスに基づいても決定される。例えば、逆スケーリングビット数は、サンプルのビットデプスから8を差し引いた値でもある。
また、ブロック単位の動き補償部115は、垂直方向の一次元補間フィルタを利用し、整数位置にあるピクセル値に対してフィルタリングを行い、フィルタリングが行われて生成された値に対して、水平方向の一次元補間フィルタを利用してフィルタリングを行った後、逆スケーリングを行うことができる。このとき、逆スケーリングは、右側に逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。逆スケーリングビット数は、垂直方向の一次元補間フィルタのスケーリングビット数、水平方向の一次元補間フィルタのスケーリングビット数、及びサンプルのビットデプスに基づいても決定される。例えば、垂直方向の一次元補間フィルタのスケーリングビット数pが6であり、水平方向の一次元補間フィルタのスケーリングビット数qが6であり、サンプルのビットデプスがbである場合、逆スケーリングビット数は、p+q+8-bで20-bでもある。
ブロック単位の動き補償部115が一次元補間フィルタを利用し、所定の方向成分が整数であるピクセルに対してフィルタリングを行った後、逆スケーリングビット数ほど右側にビットシフティングだけ行えば、四捨五入エラーが発生しうるために、一次元補間フィルタを利用し、所定の方向成分が整数であるピクセルに対してフィルタリングを行った後、オフセットほど加え、その後、逆スケーリングを行うことができる。このとき、該オフセットは、2^(逆スケーリングビット数-1)でもある。
ピクセルグループ単位の動き補償部120は、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。ピクセルグループ単位の動き補償部120は、現在ブロックの動き予測モードが、双方向動き予測モードである場合、現在ブロックに対して、ピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。
ピクセルグループ単位の動き補償部120は、第1参照ピクチャ及び第2参照ピクチャのピクセルグループのオプティカルフロー(optical flow)に基づいて、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。該オプティカルフローについては、図3Aに係わる説明で後述する。
ピクセルグループ単位の動き補償部120は、現在ブロックの参照ブロックに含まれたピクセルグループに対して、ピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。該ピクセルグループは、少なくとも1つのピクセルを含んでもよい。例えば、該ピクセルグループは、1つのピクセルでもある。または、該ピクセルグループは、2以上のピクセルを含む複数のピクセルでもある。該ピクセルグループは、KxK(Kは、整数である)サイズのブロックに含まれた複数のピクセルでもある。
ピクセルグループ単位の動き補償部120は、ピクセルグループを決定し、前記決定されたピクセルグループに基づいて、現在ブロックに係わるピクセルグループ単位の動き補償を行うことができる。
ピクセルグループ単位の動き補償部120は、現在ブロックの大きさに基づいて、ピクセルグループの大きさを決定することができる。例えば、ピクセルグループ単位の動き補償部120は、現在ブロックの高さ及び幅のうち最小値に対して8を除した値と2との最大値を、ピクセルグループの高さ及び幅と決定することができる。
ピクセルグループ単位の動き補償部120は、複数のピクセルを含むピクセルグループ単位で動き補償を行うことにより、高い映像解像度からピクセル単位で動き補償を行うときより、符号化/復号の複雑度を低減させることができる。また、ピクセルグループ単位の動き補償部120は、複数のピクセルを含むピクセルグループ単位で動き補償を行うことにより、高いフレームレートからピクセル単位で動き補償を行うときより、符号化/復号の複雑度を低減させることができる。
獲得部105は、ビットストリームに含まれたピクセルグループの大きさについての情報を獲得することができる。該ピクセルグループの大きさについての情報は、ピクセルグループの大きさがKxKである場合、高さまたは幅Kを示す情報でもある。該ピクセルグループの大きさについての情報は、ハイレベルシンタックスキャリア(high level syntax carrier)にも含まれる。
ピクセルグループ単位の動き補償部120は、ピクセルグループに含まれた複数のピクセルのうち、その値が類似したピクセル値を有するピクセルを含む少なくとも1つのピクセルグループパーティションを決定し、ピクセルグループパーティションに対して動き補償を行うことができる。このとき、類似したピクセル値を有するピクセルが含まれたピクセルグループパーティションは、同一物体(object)である可能性が高く、動きが類似している可能性が高いために、ピクセルグループ単位の動き補償部120は、さらに細密なピクセルグループ単位の動き補償を行うことができる。
一方、ピクセルグループ単位の動き補償は、動き予測モード情報が双方向動き予測モードを示す場合に行われるが、その場合にも、常時行われるものではなく、選択的にも行われる。
ピクセルグループ単位の動き補償部120は、現在ブロックの現在ピクセルグループに対応する参照ブロック内の参照ピクセルグループを決定し、参照ピクセルグループのグラジエント値を決定することができる。例えば、ピクセルグループ単位補償部120は、参照ピクセルグループに含まれた少なくとも1つのピクセル値のグラジエント値を利用し、参照ピクセルグループのグラジエント値を決定することができる。
ピクセルグループ単位の動き補償部120は、参照ピクセルグループのグラジエント値を利用し、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。
ピクセルグループ単位の動き補償部120は、第1動きベクトルが示す第1参照ブロックのピクセルグループのうち第1ピクセルグループを含む第1ピクセルグループの第1周辺領域、及び第2動きベクトルが示す第2参照ブロックのピクセルグループのうち第2ピクセルグループを含む第2ピクセルグループの第2周辺領域にフィルタを適用し、第1ピクセルグループのグラジエント値、及び第2ピクセルグループのグラジエント値を生成することができる。
ピクセルグループ単位の動き補償部120は、第1参照ピクチャ内の第1ピクセルグループを中心に、第1ピクセルグループを含む所定サイズの第1ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値を決定し、第2参照ピクチャ内の第2参照ピクセルグループを中心に、第2参照ピクセルを含む所定サイズの第2ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値を決定することができる。
ピクセルグループ単位の動き補償部120は、第1ウィンドウ内ピクセルのピクセル値及びグラジエント値と、第2ウィンドウ内ピクセルのピクセル値及びグラジエント値とを利用し、現在ピクセルグループに係わる単位時間当たり変位ベクトルを決定することができる。このとき、現在ピクセルグループに係わる単位時間当たり変位ベクトルは、調節パラメータ(regularization parameter)により、その値が調節されもする。調節パラメータは、ピクセルグループの動き補償を行うために、適切ではない(ill-posed)現在ピクセルグループに係わる単位時間当たり変位ベクトルが決定されるとき、エラーが発生することを防止するために導入されたパラメータである。ピクセルグループ単位の動き補償部120は、水平方向または垂直方向の単位時間当たり変位ベクトルについての調節パラメータに基づいて、現在ブロックに係わるピクセルグループ単位の動き補償を行うことができる。該調節パラメータについては、図8Aについての説明で後述する。
ピクセルグループ単位の動き補償部120は、現在ピクセルグループに係わる単位時間当たり変位ベクトル及び参照ピクセルのグラジエント値を利用し、現在ブロックに係わるピクセルグループ単位の動き補償を行うことができる。
参照ブロックの基準位置は、整数ピクセルの位置でもあるが、それに制限されるものではなく、小数ピクセルの位置でもある。
参照ブロックの基準位置が小数ピクセルの位置である場合、参照ブロック内の参照ピクセルのグラジエント値は、所定の方向成分が整数である周辺ピクセルのピクセル値を利用しても決定される。
例えば、ピクセルグループ単位の動き補償部120は、所定の方向成分が整数である周辺ピクセルのピクセル値に対して、グラジエントフィルタを利用してフィルタリングを行い、その結果値でもって、参照ピクセルのグラジエント値を決定することができる。このとき、グラジエントフィルタのフィルタ係数は、DCT基盤の補間フィルタに対して事前に決定された係数を利用しても決定される。該グラジエントフィルタの係数は、フィルタリング遂行時、実数演算を減らすために、整数係数にスケーリングされたフィルタ係数でもある。
このとき、該グラジエントフィルタは、水平方向または垂直方向の一次元グラジエントフィルタでもある。
ピクセルグループ単位の動き補償部120は、参照ピクセルに係わる水平方向または垂直方向のグラジエント値を決定するために、水平方向または垂直方向の一次元グラジエントフィルタを利用し、対応方向成分が整数である周辺ピクセルに対してフィルタリングを行うことができる。
例えば、ピクセルグループ単位の動き補償部120は、水平方向の一次元グラジエントフィルタを利用し、参照ピクセルの周辺に位置するピクセルのうち水平方向成分が整数であるピクセルから、水平方向に位置するピクセルに対してフィルタリングを行い、参照ピクセルに係わる水平方向のグラジエント値を決定することができる。
もし参照ピクセルの位置が(x+α,y+β)(ここで、x、yは、整数であり、α、βは、小数である)である場合、ピクセルグループ単位の動き補償部120は、(x,y)位置のピクセル、及び(x,y)位置のピクセルから垂直方向に位置するピクセルのうち垂直成分が整数であるピクセルに対して、垂直方向の一次元補間フィルタを利用してフィルタリングを行い、その結果値でもって、(x,y+β)のピクセル値を決定することができる。
ピクセルグループ単位の動き補償部120は、(x,y+β)位置のピクセル値、及び(x,y+β)位置から水平方向に位置するピクセルのうち水平成分が整数であるピクセルに対して、水平方向のグラジエントフィルタを利用してフィルタリングを行い、その結果値でもって、(x+α,y+β)位置での水平方向のグラジエント値を決定することができる。
一次元のグラジエントフィルタ、及び一次元の補間フィルタを利用する順序は、制限されるものではない。以上では、まず垂直方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向の補間フィルタリング値を生成し、一次元の水平方向のグラジエントフィルタを利用し、前記垂直方向の補間フィルタリング値に対してフィルタリングを行う内容について説明したが、まず一次元の水平方向のグラジエントフィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、水平方向の補間フィルタリング値を生成し、一次元の垂直方向の補間フィルタを利用し、前記水平方向の補間フィルタリング値にフィルタリングを行うことができる。
以上、ピクセルグループ単位の動き補償部120が、(x+α,y+β)位置での水平方向のグラジエント値を決定する内容について詳細に説明した。ピクセルグループ単位の動き補償部120が、(x+α,y+β)位置での垂直方向のグラジエント値も、水平方向のグラジエント値が決定されるところと類似した方式で決定すので、詳細な説明は、省略する。
以上、ピクセルグループ単位の動き補償部(230)が、小数ピクセル位置でのグラジエント値を決定するために、一次元グラジエントフィルタ及び一次元補間フィルタを利用する内容について詳細に説明した。ただし、それらに制限されるものではなく、整数ピクセル位置でのグラジエント値を決定するためにも、グラジエントフィルタ及び補間フィルタを利用することができる。ただし、整数ピクセルの場合、補間フィルタを利用しないとしても、ピクセル値が決定されるが、小数ピクセルでの処理と一貫した処理のために、整数ピクセル、及び所定の方向成分が整数である周辺ピクセルに対して、補間フィルタを利用してフィルタリングを行い、前記整数ピクセル値を決定することができる。例えば、整数ピクセルでの補間フィルタ係数は、{0,0,64,0,0}でもあり、周辺整数ピクセルと係わる補間フィルタ係数が0であるために、現在整数ピクセルのピクセル値だけ利用してフィルタリングが行われ、結果としては、補間フィルタを利用し、現在整数ピクセル及び周辺整数ピクセルに対してフィルタリングを行い、現在整数ピクセルでのピクセル値が決定されもする。
ピクセルグループ単位の動き補償部120は、垂直方向の一次元補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行った後、逆スケーリングを行うことができる。このとき、逆スケーリングは、右側に逆スケーリングビット数ほどビットシフティングすることを含んでもよい。該逆スケーリングビット数は、サンプルのビットデプスに基づいても決定される。また、該逆スケーリングビット数は、ブロック内の具体的な入力データに基づいても決定される。
例えば、該ビットシフティング数は、サンプルのビットデプスから8を差し引いた値でもある。
ピクセルグループ単位の動き補償部120は、水平方向のグラジエントフィルタを利用し、前記逆スケーリングを行って生成された値に対してフィルタリングを行った後、逆スケーリングを行うことができる。同様に、ここで、逆スケーリングは、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。該逆スケーリングビット数は、垂直方向の一次元補間フィルタのスケーリングされたビット数、水平方向の一次元グラジエントフィルタのスケーリングされたビット数、及びサンプルのビットデプスに基づいても決定される。例えば、一次元補間フィルタのスケーリングビット数pが6であり、一次元グラジエントフィルタのスケーリングビット数qが4であり、サンプルのビットデプスがbである場合、逆スケーリングビット数は、p+q+8-bであり、18-bでもある。
ピクセルグループ単位の動き補償部120が、フィルタリングが行われた後、フィルタリングが行われて生成された値に対して、逆スケーリングビット数ほど右側にビットシフティングだけ行えば、四捨五入エラーが発生しうるために、フィルタリングが行われて生成された値にオフセットほど加え、その後、逆スケーリングを行うことができる。このとき、該オフセットは、2^(逆スケーリングビット数-1)でもある。
インター予測部110は、現在ブロックに係わるブロック単位の動き補償値、及びピクセルグループ単位の動き補償値を利用し、現在ブロックの予測ピクセル値を生成することができる。例えば、インター予測部110は、現在ブロックに係わるブロック単位の動き補償値、及びピクセルグループ単位の動き補償値を合わせ、現在ブロックの予測ピクセル値を生成することができる。ここで、該ブロック単位の動き補償値は、ブロック単位の動き補償を行って生成された値を意味し、ピクセルグループ単位の動き補償値は、ピクセルグループ単位の動き補償を行って生成された値であり、ブロック単位の動き補償値は、参照ピクセルの平均値または加重和でもあり、ピクセルグループ単位の動き補償値は、現在ピクセルについての単位時間当たり変位ベクトル、及び参照ピクセルのグラジエント値に基づいて決定された値でもある。
ピクセルグループ単位の動き補償部120は、サンプルのビットデプス、補間演算またはグラジエント演算に利用されるフィルタの入力の範囲、及び前記フィルタの係数のうち少なくとも一つに基づいて、補間演算またはグラジエント演算後、デスケーリングのためのシフト値を獲得することができる。ピクセルグループ単位の動き補償部120は、デスケーリングのためのシフト値を利用し、第1参照ブロック及び第2参照ブロックに含まれたピクセルに係わる補間演算またはグラジエント演算後、デスケーリングを行うことができる。
インター予測部110は、ブロック単位の動き補償を行うとき、動きベクトルを利用し、当該動きベクトルを保存することができる。このとき、動きベクトル単位は、4x4サイズのブロックでもある。一方、ブロック単位の動き補償後、動きベクトルを保存するとき、該動きベクトル保存単位は、4x4サイズではない多様な大きさのブロック(例えば、RxRサイズのブロック;Rは、整数である)でもある。このとき、該動きベクトル保存単位は、4x4サイズより大きいブロックでもある。例えば、16x16サイズのブロックでもある。
一方、ピクセルグループ単位の動き補償を行う場合、現在ブロックの大きさと共に、ウィンドウサイズ及び補間フィルタ長に基づいて、ピクセルグループ単位の動き補償を行うための対象ブロックの大きさは、拡張されもする。該ウィンドウサイズに基づいて、現在ブロックの大きさより、対象ブロックの大きさが拡張される理由は、現在ブロックのエッジに位置するピクセルの場合、ウィンドウを利用し、現在エッジに位置するピクセル、及び周辺ピクセルに基づいて、現在ブロックに係わるピクセルグループ単位の動き補償を行うからである。
従って、ピクセルグループ単位の動き補償部120は、メモリアクセス回数を減らし、乗算演算の遂行を減らすために、ウィンドウを利用してピクセルグループ単位の動き補償を行う過程において、ウィンドウ内ピクセルのうち、現在ブロックから外れるピクセルの位置を、現在ブロック内部に隣接するピクセルの位置に調整し、調整されたピクセルの位置でのピクセル値及びグラジエント値を決定することにより、メモリアクセス回数及び乗算演算回数が低減されもする。
ピクセルグループ単位の動き補償部120は、ピクセルグループ単位の動き補償に必要な値である参照ピクセルのグラジエント値を決定するために、整数位置ピクセルのピクセル値を利用しない。すなわち、ピクセルグループ単位補償部120は、小数位置ピクセルのピクセル値に、水平方向または垂直方向のグラジエントフィルタを適用し、第1参照ブロック内の第1対応参照ピクセル、または第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値を算出することができる。このとき、グラジエントフィルタ長は、5でもある。このとき、フィルタの係数は、フィルタの中心係数を中心に対称になった係数を有することができる。小数位置ピクセルは、ピクセルの位置を示す水平方向成分及び垂直方向成分のうち少なくとも1つの成分が小数値を有するピクセルでもある。
第1参照ブロック内または第2参照ブロック内の小数位置ピクセルのピクセル値は、整数位置ピクセルのピクセル値に、水平方向または垂直方向の補間フィルタを適用し、算出されたものでもある。
現在ピクセルグループについての水平方向または垂直方向の単位時間当たり変位ベクトルは、前記現在ピクセルグループに対応する第1参照ピクチャ内の第1対応参照ピクセルグループに含まれた第1対応参照ピクセル、及び第2参照ピクチャ内の第2対応参照ピクセルグループに含まれた第2対応参照ピクセル、並びにその周辺ピクセルのピクセル値・グラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC(picture order count)差、第2参照ピクチャと現在ピクチャとの第2 POC差に基づいて決定される値を利用して決定された単位時間当たり変位ベクトルでもある。
ピクセルグループ単位補償部120は、第1対応参照ピクセルまたは第2対応参照ピクセルが、第1参照ブロックまたは第2参照ブロックの境界内側に隣接する境界周辺ピクセルである場合、境界周辺ピクセルのピクセル値を利用し、第1参照ブロックまたは第2参照ブロックの境界外部に位置するピクセルのピクセル値を誘導することができる。
ピクセルグループ単位補償部120は、境界周辺ピクセルのピクセル値、及び境界周辺ピクセルのピクセル値を利用して誘導された現在ブロックの境界外部に位置するピクセルのピクセル値に基づいて、現在ブロックの水平方向または垂直方向の単位時間当たり変位ベクトルを決定することができる。すなわち、境界周辺ピクセルを中心にするウィンドウ内に含まれたピクセル内に、境界外部に位置するピクセルがあり、このとき、境界外部に位置するピクセルのピクセル値及びグラジエント値は、メモリに保存された値ではない境界周辺ピクセルから誘導されたピクセルのピクセル値及びグラジエント値でもある。
ピクセルグループ単位補償部120は、第1参照ブロックに含まれた第1対応参照ピクセルのピクセル値、第2参照ブロックに含まれた第2対応参照ピクセルのピクセル値、第1対応参照ピクセルのグラジエント値、第2対応参照ピクセルのグラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC差、及び第2参照ピクチャと現在ピクチャとの第2 POC差を利用し、現在ピクセルに係わる値を算出することができる。すなわち、現在ピクセルに係わる値は、各参照ピクチャの対応参照ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。
ピクセルグループ単位補償部120は、第1対応参照ピクセルの第1対応周辺ピクセルのピクセル値、第1対応周辺ピクセルのグラジエント値、第2対応参照ピクセルの第2対応周辺ピクセルのピクセル値、及び第2対応周辺ピクセルのグラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC差、並びに第2参照ピクチャと現在ピクチャとの第2 POC差を利用して周辺ピクセルに係わる値を算出することができる。すなわち、周辺ピクセルに係わる値は、各参照ピクチャの対応参照ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。すなわち、周辺ピクセルに係わる値は、各参照ピクチャの対応周辺ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。
ピクセルグループ単位補償部120は、前記現在ピクセルに係わる値、周辺ピクセルに係わる値、及び加重値を利用し、水平方向の単位時間当たり変位ベクトルを算出するために必要な現在ピクセルについての加重平均値を算出することができる。このとき、加重値は、現在ピクセルと周辺ピクセルとの距離、ピクセルとブロック境界との距離、境界外に位置するピクセルの個数、またはピクセルが境界内側に位置するか、あるいは境界外側に位置するかということに基づいても決定される。
現在ピクセルについての加重平均値は、第1参照ブロック及び第2参照ブロックに含まれたピクセルに係わる値に対して、上下左右方向に指数平滑(exponential smoothing)技法を適用して算出された値でもある。ピクセルに係わる値に対して、上下左右方向に指数平滑技法を適用することにより、現在ピクセルに対して算出された値は、現在ピクセルに係わる値に係わる加重値が最も大きく、その周辺ピクセルに係わる値に係わる加重値は、現在ピクセルとの距離によって指数的に減少した値でもある。
ピクセルグループ単位補償部120は、現在ピクセルについての加重平均値を利用し、現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルを決定することができる。
復元部125は、ビットストリームから、現在ブロックのレジデュアルブロックを獲得し、前記レジデュアルブロックと、現在ブロックの予測ブロックとを利用し、現在ブロックを復元することができる。例えば、復元部125は、ビットストリームから、現在ブロックのレジデュアルブロックのピクセル値と、現在ブロックの予測ブロックのピクセル値とを合わせ、復元ブロックのピクセル値を生成することができる。
ビデオ復号装置100は、映像復号部(図示せず)を含んでもよく、映像復号部(図示せず)は、獲得部105、インター予測部110及び復元部125を含んでもよい。映像復号部については、図1Eを参照して説明することにする。
図1Bは、多様な実施形態によるビデオ復号方法のフローチャートを図示する。
S105段階において、ビデオ復号装置100は、ビットストリームから、現在ピクチャ内の現在ブロックに係わる動き予測モード情報を獲得することができる。ビデオ復号装置100は、現在ピクチャ内の現在ブロックに係わる動き予測モード情報を含むビットストリームを受信し、受信されたビットストリームから、現在ブロックに係わる動き予測モード情報を獲得することができる。ビデオ復号装置100は、ビットストリームから、現在ブロックの予測モードについての情報を獲得し、現在ブロックの予測モードについての情報を基に、現在ブロックの予測モードを決定することができる。このとき、現在ブロックの予測モードがインター予測モードである場合、ビデオ復号装置100は、現在ブロックに係わる動き予測モード情報を獲得することができる。
例えば、ビデオ復号装置100は、現在ブロックの予測モードについての情報を基に、現在ブロックの予測モードをインター予測モードに決定することができる。ビデオ復号装置100は、現在ブロックの予測モードがインター予測モードである場合、ビットストリームから、現在ブロックに係わる動き予測モード情報を獲得することができる。
S110段階において、動き予測モード情報が双方向動き予測モードを示す場合、ビデオ復号装置100は、第1参照ピクチャ内において、現在ブロックの第1参照ブロックを示す第1動きベクトル、及び第2参照ピクチャ内において、現在ブロックの第2参照ブロックを示す第2動きベクトルをビットストリームから獲得することができる。
すなわち、ビデオ復号装置100は、第1動きベクトル及び第2動きベクトルについての情報を含むビットストリームを受信し、受信されたビットストリームから、第1動きベクトル及び第2動きベクトルを獲得することができる。ビデオ復号装置100は、ビットストリームから参照ピクチャインデックスを獲得し、該参照ピクチャインデックスに基づいて、以前に復号されたピクチャのうち第1参照ピクチャ及び第2参照ピクチャを決定することができる。
S115段階において、ビデオ復号装置100は、第1参照ブロック及び第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、第1参照ブロック及び第2参照ブロックに含まれた参照ピクセルに係わる値を利用し、現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の変位ベクトルを決定することができる。このとき、第1参照ブロック及び第2参照ブロックの境界外部に位置するピクセルについて保存された値、並びに第1参照ブロック及び第2参照ブロックに含まれた参照ピクセルに係わる値は、関連ピクセルのピクセル値、あるいは関連ピクセルの水平方向のグラジエント値、または垂直方向のグラジエント値でもある。または、第1参照ブロック及び第2参照ブロックの境界外部に位置するピクセルについて保存された値、並びに第1参照ブロック及び第2参照ブロックに含まれた参照ピクセルに係わる値は、関連ピクセルのピクセル値またはグラジエント値を利用して決定された値でもある。
S120段階において、ビデオ復号装置100は、現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、及び前記現在ピクセルの水平方向または垂直方向の変位ベクトルを利用し、現在ブロックのブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロックを獲得することができる。
すなわち、ビデオ復号装置100は、現在ブロックに対して、第1動きベクトル及び第2動きベクトルに基づいたブロック単位の動き補償、並びにピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロックを生成することができる。ビデオ復号装置100は、第1動きベクトルが示す第1参照ブロックのピクセル値、及び第2動きベクトルが示す第2参照ブロックのピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行うことができる。また、ビデオ復号装置100は、現在ピクセルグループに含まれた少なくとも1つのピクセルに対応する第1参照ブロック内の少なくとも1つの第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、第2参照ブロック内の少なくとも1つの第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、及び前記現在ピクセルの水平方向または垂直方向の変位ベクトルを利用し、現在ピクセルグループに対して、ピクセルグループ単位の動き補償を行うことができる。
ビデオ復号装置100は、現在ブロックに対して、ブロック単位の動き補償を行って生成されたブロック単位の動き補償値、及び現在ピクセルグループに対して、ピクセルグループ単位の動き補償を行って生成されたピクセルグループ単位の動き補償値を利用し、現在ブロックの予測ブロックを獲得することができる。
S125段階において、ビデオ復号装置100は、ビットストリームから、現在ブロックのレジデュアルブロックについての情報を獲得することができる。
S130段階において、ビデオ復号装置100は、予測ブロック及びレジデュアルブロックに基づいて、現在ブロックを復元することができる。すなわち、ビデオ復号装置100は、現在ブロックに係わるレジデュアルブロックが示すレジデュアルブロックのピクセル値と、予測ブロックの予測ピクセル値とを合わせ、現在ブロックの復元ブロックのピクセル値を生成することができる。
図1Cは、多様な実施形態によるビデオ符号化装置のブロック図を図示する。
多様な実施形態によるビデオ符号化装置150は、インター予測部155及びビットストリーム生成部170を含む。
インター予測部155は、現在ブロックに対して、率(rate)及び歪曲(distortion)コスト(cost)に基づいて、多様なブロックを参照してインター予測を行う。すなわち、インター予測部155は、現在ブロックが含まれた現在ピクチャより以前に符号化されたピクチャのうち少なくとも一つを利用し、現在ブロックの予測ピクセル値を生成することができる。
インター予測部155は、ブロック単位の動き補償部160、及びピクセルグループ単位の動き補償部165を含んでもよい。
ブロック単位の動き補償部160は、現在ブロックに対して、ブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。
ブロック単位の動き補償部160は、以前に復号されたピクチャのうち少なくとも1つの参照ピクチャを決定し、少なくとも1つの参照ピクチャ内に位置する現在ブロックの参照ブロックを決定することができる。
ブロック単位の動き補償部160は、参照ブロックのピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。ブロック単位の動き補償部160は、現在ブロックの現在ピクセルに対応する参照ブロックの参照ピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。
ブロック単位の動き補償部160は、複数の参照ピクチャそれぞれに含まれた複数の参照ブロックを利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。例えば、ブロック単位の動き補償部160は、現在ブロックの動き予測モードが双方向予測モードである場合、以前に符号化されたピクチャのうち2つの参照ピクチャを決定し、2つのピクチャに含まれた2つの参照ブロックを決定することができる。ここで、該双方向予測とは、ディスプレイされる順序が現在ピクチャより以前であるピクチャ、及びディスプレイされる順序が現在ピクチャより以後のピクチャを利用してインター予測を行うことを意味するところに制限されるものではなく、ディスプレイされる順序にかかわらず、現在ピクチャより以前に符号化された2つのピクチャを利用してインター予測することを意味する。
ブロック単位の動き補償部160は、2つの参照ブロック内において、2つの参照ピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。ブロック単位の動き補償部160は、2つの参照ピクセルの平均ピクセル値または加重和を利用し、現在ブロックに係わるブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。
ブロック単位の動き補償部160は、以前に符号化されたピクチャのうち、現在ブロックの動き補償のための参照ピクチャを示す参照ピクチャインデックスを出力することができる。
ブロック単位の動き補償部160は、現在ブロックを始点にし、現在ブロックの参照ブロックを終点にする動きベクトルを決定し、動きベクトルを出力することができる。該動きベクトルは、現在ピクチャ内の現在ブロックの基準座標と、参照ピクチャ内の参照ブロックの基準座標との変位を示すベクトルを意味する。例えば、現在ブロックの左上側コーナーの座標が、(1,1)であり、参照ピクチャ内の参照ブロックの左上側座標が、(3,3)である場合、動きベクトルは、(2,2)でもある。
参照ブロックの基準位置は、整数ピクセルの位置でもあるが、それに制限されるものではなく、小数ピクセルの位置でもある。このとき、該小数ピクセルの位置は、1/4ペル単位または1/16ペル単位と決定されもする。ただし、それに制限されるものではなく、多様な小数ペル単位により、小数ピクセルの位置が決定されもする。
例えば、参照ブロックの基準位置が、(1.5,1.5)であり、現在ブロックの左上側コーナーの座標が、(1,1)である場合、動きベクトルは、(0.5,0.5)でもある。動きベクトルが、小数ピクセルの位置である参照ブロックの基準位置を示すために、1/4ペル単位または1/16ペル単位と決定される場合、動きベクトルをスケーリングし、整数の動きベクトルを決定し、アップスケーリングされた動きベクトルを利用し、参照ブロックの基準位置を決定することができる。該参照ブロックの基準位置が、小数ピクセルの位置である場合、参照ブロックの参照ピクセルの位置も、小数ピクセルの位置でもある。従って、該参照ブロックにおいて、小数ピクセル位置のピクセル値は、所定の方向成分が整数である周辺ピクセルのピクセル値を利用しても決定される。
例えば、ブロック単位の動き補償部160は、補間フィルタを利用し、所定の方向成分が整数である周辺ピクセルのピクセル値に係わるフィルタリングを行い、その結果値でもって、小数ピクセル位置の参照ピクセル値を決定し、参照ピクセルのピクセル値を利用し、現在ブロックに係わるブロック単位の動き補償値を決定することができる。このとき、補間フィルタは、DCT基盤のMタップの補間フィルタを利用することができる。DCT基盤のMタップの補間フィルタの係数は、DCT及びIDCTから誘導されもする。このとき、補間フィルタの係数は、フィルタリング遂行時、実数演算を減らすために、整数係数にスケーリングされたフィルタ係数でもある。
このとき、該補間フィルタは、水平方向または垂直方向の一次元補間フィルタでもある。
ブロック単位の動き補償部160は、まず周辺整数ピクセルに対して、垂直方向の一次元補間フィルタを利用してフィルタリングを行い、フィルタリングが行われた値に、水平方向の一次元補間フィルタを利用してフィルタリングを行い、小数ピクセル位置での参照ピクセル値を決定することができる。スケーリングされたフィルタ係数を利用する場合、ブロック単位の動き補償部160は、垂直方向の一次元補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行った後、フィルタリングが行われた値に対して、逆スケーリングを行うことができる。このとき、該逆スケーリングは、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。逆スケーリングビット数は、サンプルのビットデプスに基づいても決定される。例えば、該ビットシフティング数は、サンプルのビットデプスから8を差し引いた値でもある。
また、ブロック単位の動き補償部160は、水平方向の一次元補間フィルタを利用し、水平方向成分が整数であるピクセルに対してフィルタリングを行った後、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。該逆スケーリングビット数は、垂直方向の一次元補間フィルタ係数に対してスケーリングされたビット数、水平方向の一次元補間フィルタ係数に対してスケーリングされたビット数、及びサンプルのビットデプスに基づいても決定される。
ブロック単位の動き補償部160が、逆スケーリングビット数ほど右側にビットシフティングだけ行えば、四捨五入エラーが発生しうるために、所定方向の一次元補間フィルタを利用し、前記所定方向の成分が整数であるピクセルに対してフィルタリングを行い、フィルタリングが行われた値にオフセットを加え、オフセットが加えられた値に対して、逆スケーリングを行うことができる。このとき、該オフセットは、2^(逆スケーリングビット数-1)でもある。
先に、垂直方向の一次元補間フィルタを利用したフィルタリング後、逆スケーリングビット数は、サンプルのビットデプスに基づいて決定する内容について説明したが、それに制限されるものではなく、サンプルのビットデプスだけではなく、補間フィルタ係数に対してスケーリングされたビット数を考慮しても決定される。すなわち、フィルタリング遂行時、利用されるレジスタの大きさ、及びフィルタリング遂行過程で生成された値を保存するバッファの大きさを考慮し、オーバーフロー(overflow)が発生しない範囲で、サンプルのビットデプス、補間フィルタ係数に対してスケーリングされたビット数に基づいて、逆スケーリングビット数が決定されもする。
ピクセルグループ単位の動き補償部165は、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。例えば、ピクセルグループ単位の動き補償部165は、動き予測モードが、双方向動き予測モードである場合、現在ブロックに対して、ピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。
ピクセルグループ単位の動き補償部165は、現在ブロックの参照ブロックに含まれたピクセルのグラジエント値を利用し、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。
ピクセルグループ単位の動き補償部165は、第1参照ピクチャ内の第1参照ブロックのピクセルのうち第1ピクセルの第1周辺領域、及び第2参照ピクチャ内の第2参照ブロックのピクセルのうち第2ピクセルの第2周辺領域にフィルタを適用し、第1ピクセルのグラジエント値、及び第2ピクセルのグラジエント値を生成することができる。
ピクセルグループ単位の動き補償部165は、第1参照ピクチャ内の第1参照ピクセルを中心に、第1参照ピクセルを含む所定サイズの第1ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値を決定し、第2参照ピクチャ内の第2参照ピクセルを中心に、第2参照ピクセルを含む所定サイズの第2ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値を決定することができる。ピクセルグループ単位の動き補償部165は、第1ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値と、第2ウィンドウ内ピクセルのピクセル値、及びピクセルのグラジエント値とを利用し、現在ピクセルに係わる単位時間当たり変位ベクトルを決定することができる。
ピクセルグループ単位の動き補償部165は、単位時間当たり変位ベクトル、及び参照ピクセルのグラジエント値を利用し、現在ブロックに係わるピクセルグループ単位の動き補償を行い、ピクセルグループ単位の動き補償値を生成することができる。
参照ピクセルの位置は、整数ピクセルの位置でもあるが、それに制限されるものではなく、小数ピクセルの位置でもある。
参照ブロックの基準位置が小数ピクセルの位置である場合、参照ブロック内の参照ピクセルのグラジエント値は、所定の方向成分が整数である周辺ピクセルのピクセル値を利用しても決定される。
例えば、ピクセルグループ単位の動き補償部165は、所定の方向成分が整数である周辺ピクセルのピクセル値に対して、グラジエントフィルタを利用してフィルタリングを行い、その結果値でもって、参照ピクセルのグラジエント値を決定することができる。このとき、グラジエントフィルタのフィルタ係数は、DCT基盤の補間フィルタに対して事前に決定された係数を利用しても決定される。
グラジエントフィルタの係数は、フィルタリング遂行時、実数演算を減らすために、整数係数にスケーリングされたフィルタ係数でもある。このとき、利用されるグラジエントフィルタは、水平方向または垂直方向の一次元グラジエントフィルタでもある。
ピクセルグループ単位の動き補償部165は、参照ピクセルに係わる水平方向または垂直方向のグラジエント値を決定するために、水平方向または垂直方向の一次元グラジエントフィルタを利用し、対応方向成分が整数である周辺ピクセルに対してフィルタリングを行うことができる。
例えば、ピクセルグループ単位の動き補償部165は、垂直方向の一次元補間フィルタを利用し、参照ピクセルに接する整数ピクセルから垂直方向のピクセルのうち垂直成分が整数であるピクセルに対してフィルタリングを行い、垂直成分が小数であるピクセルのピクセル値を決定することができる。
ピクセルグループ単位の動き補償部165は、参照ピクセルと隣接する前記整数ピクセルと隣接する他の列(column)に位置するピクセルについても、垂直方向の一次元補間フィルタを利用し、垂直方向の周辺整数ピクセルに対してフィルタリングを行い、前記他の列に位置する小数ピクセル位置のピクセル値を決定することができる。ここで、前記他の列に位置するピクセルの位置は、垂直方向に小数ピクセルの位置であり、水平方向には、整数ピクセルの位置でもある。
すなわち、参照ピクセルの位置が、(x+α,y+β)(ここで、x、yは、整数であり、α、βは、小数である)である場合、ピクセルグループ単位の動き補償部165は、(x,y)位置から垂直方向の周辺整数ピクセルに対して垂直方向の補間フィルタを利用してフィルタリングを行うことにより、(x,y+β)位置でのピクセル値を決定することができる。
ピクセルグループ単位の動き補償部165は、(x,y+β)位置でのピクセル値と、(x,y+β)位置でのピクセル値とから、水平方向に位置するピクセルのうち水平成分が整数であるピクセルのピクセル値に対して、水平方向のグラジエントフィルタを利用してフィルタリングを行うことにより、(x+α,y+β)位置での水平方向のグラジエント値を決定することができる。
一次元のグラジエントフィルタ、及び一次元の補間フィルタを利用する順序は、制限されるものではない。前述のように、まず垂直方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向の補間フィルタリング値を生成し、一次元の水平方向のグラジエントフィルタを利用し、前記垂直方向の補間フィルタリング値に対してフィルタリングを行うことができるが、それに制限されるものではなく、まず一次元の水平方向のグラジエントフィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、水平方向のグラジエントフィルタリング値を生成し、一次元の垂直方向の補間フィルタを利用し、前記水平方向のグラジエントフィルタリング値に対してフィルタリングを行うことができる。
以上、ピクセルグループ単位の動き補償部165が、(x+α,y+β)位置での水平方向のグラジエント値を決定する内容について詳細に説明した。
ピクセルグループ単位の動き補償部165は、(x+α,y+β)位置での垂直方向のグラジエント値も、水平方向のグラジエント値が決定されるところと類似した方式で決定することができる。
ピクセルグループ単位の動き補償部165は、垂直方向の一次元グラジエントフィルタを利用し、参照ピクセルの周辺の整数ピクセルから垂直方向の周辺整数ピクセルに対してフィルタリングを行い、参照ピクセルに係わる垂直方向のグラジエント値を決定することができる。ピクセルグループ単位の動き補償部165は、参照ピクセルと隣接する他の列に位置するピクセルについても、垂直方向の一次元グラジエントフィルタを利用し、垂直方向の周辺整数ピクセルに対してフィルタリングを行い、参照ピクセルと隣接しながら、他の列に位置するピクセルに係わる垂直方向のグラジエント値を決定することができる。ここで、前記ピクセルの位置は、垂直方向に小数ピクセルの位置であり、水平方向には、整数ピクセルの位置でもある。
すなわち、参照ピクセルの位置が、(x+α,y+β)(ここで、x、yは、整数であり、α、βは、小数である)である場合、ピクセルグループ単位の動き補償部165は、(x,y)位置から垂直方向の周辺整数ピクセルに対して垂直方向のグラジエントフィルタを利用してフィルタリングを行うことにより、(x,y+β)位置での垂直方向のグラジエント値を決定することができる。
ピクセルグループ単位の動き補償部165は、(x,y+β)位置でのグラジエント値と、(x,y+β)位置から水平方向に位置する周辺整数ピクセルのグラジエント値とに対して、水平方向の補間フィルタを利用してフィルタリングを行うことにより、(x+α,y+β)位置での垂直方向のグラジエント値を決定することができる。
一次元のグラジエントフィルタ、及び一次元の補間フィルタを利用する順序は、制限されるものではない。前述のように、まず垂直方向のグラジエントフィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向のグラジエントフィルタリング値を生成し、一次元の水平方向の補間フィルタを利用し、前記垂直方向のグラジエントフィルタリング値に対してフィルタリングを行うことができるが、それに制限されるものではなく、まず一次元の水平方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、水平方向の補間フィルタリング値を生成し、一次元の垂直方向のグラジエントフィルタを利用し、前記水平方向の補間フィルタリング値に対してフィルタリングを行うことができる。
以上、ピクセルグループ単位の動き補償部165が、小数ピクセル位置でのグラジエント値を決定するために、グラジエントフィルタ及び補間フィルタを利用する内容について詳細に説明した。ただし、それらに制限されるものではなく、整数ピクセル位置でのグラジエント値を決定するためにも、グラジエントフィルタ及び補間フィルタを利用することができる。
整数ピクセルの場合、補間フィルタを利用しないとしても、そのピクセル値を決定することができるが、小数ピクセルでの処理と一貫した処理のために、前記整数ピクセル及び周辺整数ピクセルに対して補間フィルタを利用してフィルタリングが行われもする。例えば、整数ピクセルでの補間フィルタ係数は、{0,0,64,0,0}でもあり、周辺整数ピクセルに乗じられる補間フィルタ係数が0であるために、現在整数ピクセルのピクセル値だけ利用してフィルタリングが行われ、結果としては、現在整数ピクセル及び周辺整数ピクセルに対して補間フィルタを利用してフィルタリングを行うことによって生成された値と、現在整数ピクセルのピクセル値は、同一に決定されもする。
一方、スケーリングされたフィルタ係数を利用する場合、ピクセルグループ単位の動き補償部165は、水平方向の一次元グラジエントフィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、フィルタリングが行われた値に逆スケーリングを行うことができる。このとき、該逆スケーリングは、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。該逆スケーリングビット数は、サンプルのビットデプスに基づいても決定される。例えば、該逆スケーリングビット数は、サンプルのビットデプスから8ほど差し引いた値でもある。
ピクセルグループ単位の動き補償部165は、垂直方向の補間フィルタを利用し、垂直方向の成分が整数であるピクセルに対してフィルタリングを行った後、逆スケーリングを行うことができる。このとき、該逆スケーリングは、逆スケーリングビット数ほど右側にビットシフティングすることを含んでもよい。該逆スケーリングビット数は、垂直方向の一次元補間フィルタのスケーリングされたビット数、水平方向の一次元グラジエントフィルタのスケーリングされたビット数、及びサンプルのビットデプスに基づいても決定される。
ピクセルグループ単位の動き補償部165が、逆スケーリングビット数ほど右側にビットシフティングだけ行えば、四捨五入エラーが発生しうる。従って、一次元補間フィルタを利用してフィルタリングが行われた後、フィルタリングが行われた値にオフセットが加えられ、オフセットが加えられた値に逆スケーリングを行うことができる。このとき、オフセットは、2^(ビットシフティング数-1)でもある。
インター予測部110は、ブロック単位の動き補償を行うとき、動きベクトルを利用し、当該動きベクトルを保存することができる。このとき、動きベクトル単位は、4x4サイズのブロックでもある。一方、ブロック単位の動き補償後に動きベクトルを保存するとき、動きベクトル保存単位は、4x4サイズではない多様な大きさのブロック(例えば、RxRサイズのブロック;Rは、整数である)でもある。このとき、該動きベクトル保存単位は、4x4サイズより大きいブロックでもある。例えば、16x16サイズのブロックでもある。
一方、ピクセルグループ単位の動き補償を行う場合、現在ブロックの大きさと共に、ウィンドウサイズ及び補間フィルタ長に基づいて、ピクセルグループ単位の動き補償を行うための対象ブロックの大きさは、拡張されもする。ウィンドウサイズに基づいて、現在ブロックの大きさより対象ブロックの大きさが拡張される理由は、現在ブロックのエッジに位置するピクセルの場合、ウィンドウを利用し、現在エッジに位置するピクセル、及び周辺ピクセルに基づいて、現在ブロックに係わるピクセルグループ単位の動き補償を行うからである。
従って、ピクセルグループ単位の動き補償部120は、メモリアクセス回数を減らし、乗算演算の遂行を減らすために、ウィンドウを利用してピクセルグループ単位の動き補償を行う過程において、ウィンドウ内ピクセルのうち、現在ブロックから外れるピクセルの位置を、現在ブロック内部に隣接するピクセルの位置に調整し、調整されたピクセルの位置でのピクセル値及びグラジエント値を決定することにより、メモリアクセス回数及び乗算演算回数が低減されもする。
ピクセルグループ単位の動き補償部120は、ピクセルグループ単位の動き補償に必要な値である参照ピクセルのグラジエント値を決定するために、整数位置ピクセルのピクセル値を利用しない。すなわち、ピクセルグループ単位補償部120は、小数位置ピクセルのピクセル値に、水平方向または垂直方向のグラジエントフィルタを適用し、第1参照ブロック内の第1対応参照ピクセル、または第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値を算出することができる。このとき、グラジエントフィルタ長は、5でもある。このとき、フィルタの係数は、フィルタの中心係数を中心に対称になった係数を有することができる。小数位置ピクセルは、ピクセルの位置を示す水平方向成分及び垂直方向成分のうち少なくとも1つの成分が小数値を有するピクセルでもある。
第1参照ブロック内または第2参照ブロック内の小数位置ピクセルのピクセル値は、整数位置ピクセルのピクセル値に、水平方向または垂直方向の補間フィルタを適用し、算出されたものでもある。
現在ピクセルグループについての水平方向または垂直方向の単位時間当たり変位ベクトルは、前記現在ピクセルグループに対応する第1参照ピクチャ内の第1対応参照ピクセルグループに含まれた第1対応参照ピクセル、及び第2参照ピクチャ内の第2対応参照ピクセルグループに含まれた第2対応参照ピクセル、並びにその周辺ピクセルのピクセル値・グラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC差、第2参照ピクチャと現在ピクチャとの第2 POC差に基づいて決定される値を利用して決定された単位時間当たり変位ベクトルでもある。
ピクセルグループ単位補償部120は、第1対応参照ピクセルまたは第2対応参照ピクセルが、第1参照ブロックまたは第2参照ブロックの境界内側に隣接する境界周辺ピクセルである場合、境界周辺ピクセルのピクセル値を利用し、第1参照ブロックまたは第2参照ブロックの境界外部に位置するピクセルのピクセル値を誘導することができる。
ピクセルグループ単位補償部120は、境界周辺ピクセルのピクセル値、及び境界周辺ピクセルのピクセル値を利用して誘導された現在ブロックの境界外部に位置するピクセルのピクセル値に基づいて、現在ブロックの水平方向または垂直方向の単位時間当たり変位ベクトルを決定することができる。すなわち、境界周辺ピクセルを中心にするウィンドウ内に含まれたピクセル内に、境界外部に位置するピクセルがあり、このとき、境界外部に位置するピクセルのピクセル値及びグラジエント値は、メモリに保存された値ではない境界周辺ピクセルから誘導されたピクセルのピクセル値及びグラジエント値でもある。
ピクセルグループ単位補償部120は、第1参照ブロックに含まれた第1対応参照ピクセルのピクセル値、第2参照ブロックに含まれた第2対応参照ピクセルのピクセル値、第1対応参照ピクセルのグラジエント値、第2対応参照ピクセルのグラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC差、及び第2参照ピクチャと現在ピクチャとの第2 POC差を利用し、現在ピクセルに係わる値を算出することができる。すなわち、現在ピクセルに係わる値は、各参照ピクチャの対応参照ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。
ピクセルグループ単位補償部120は、第1対応参照ピクセルの第1対応周辺ピクセルのピクセル値、第1対応周辺ピクセルのグラジエント値、第2対応参照ピクセルの第2対応周辺ピクセルのピクセル値、及び第2対応周辺ピクセルのグラジエント値、第1参照ピクチャと現在ピクチャとの第1 POC差、並びに第2参照ピクチャと現在ピクチャとの第2 POC差を利用して算出された対応周辺ピクセルに係わる値を算出することができる。すなわち、周辺ピクセルに係わる値は、各参照ピクチャの対応参照ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。すなわち、対応周辺ピクセルに係わる値は、各参照ピクチャの対応周辺ピクセルのピクセル値・グラジエント値、及び各参照ピクチャと現在ピクチャとのPOC差に基づいた関数の結果値でもある。
ピクセルグループ単位補償部120は、現在ピクセルに係わる値、対応周辺ピクセルに係わる値、及び加重値を利用し、水平方向の単位時間当たり変位ベクトルを算出するために必要な現在ピクセルについての加重平均値を算出することができる。このとき、加重値は、現在ピクセルと周辺ピクセルとの距離、ピクセルとブロック境界との距離、境界外に位置するピクセルの個数、またはピクセルが境界内側に位置するか、あるいは境界外側に位置するかということに基づいても決定される。
現在ピクセルについての加重平均値は、第1参照ブロック及び第2参照ブロックに含まれたピクセルに係わる値に対して、上下左右方向に指数平滑技法を適用して算出された値でもある。ピクセルに係わる値に対して、上下左右方向に指数平滑技法を適用することにより、現在ピクセルに対して算出された値は、現在ピクセルに係わる値に係わる加重値が最も大きく、その周辺ピクセルに係わる値に係わる加重値は、現在ピクセルとの距離によって指数的に減少した値でもある。
ピクセルグループ単位補償部120は、現在ピクセルについての加重平均値を利用し、現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルを決定することができる。
インター予測部155は、現在ブロックに係わるブロック単位の動き補償値、及び現在ブロックに係わるピクセルグループ単位の動き補償値を利用し、現在ブロックの予測ピクセル値を生成することができる。例えば、インター予測部155は、現在ブロックに係わるブロック単位の動き補償値、及びピクセルグループ単位の動き補償値を合わせ、現在ブロックの予測ピクセル値を生成することができる。特に、インター予測部155は、現在ブロックの動き予測モードが、双方向動き予測モードである場合、現在ブロックに係わるブロック単位の動き補償値、及び現在ブロックに係わるピクセルグループ単位の動き補償値を利用し、現在ブロックの予測ピクセル値を生成することができる。
インター予測部155は、現在ブロックの動き予測モードが単方向動き予測モードである場合、現在ブロックに係わるブロック単位の動き補償値を利用し、現在ブロックの予測ピクセル値を生成することができる。ここで、単方向とは、以前に符号化されたピクチャのうち1つの参照ピクチャを利用することを意味する。1つの参照ピクチャは、ディスプレイ順序上、現在ピクチャより以前ピクチャであることに制限されるものではなく、以後ピクチャでもある。
インター予測部155は、現在ブロックの動き予測モードを決定し、現在ブロックの動き予測モードを示す情報を出力することができる。例えば、インター予測部155は、現在ブロックの動き予測モードにおいて、双方向動き予測モードを決定し、双方向動き予測モードを示す情報を出力することができる。ここで、双方向動き予測モードというのは、2つの復号された参照ピクチャ内の参照ブロックを利用して動き予測するモードを意味する。
ビットストリーム生成部170は、参照ブロックを示す動きベクトルを含むビットストリームを生成することができる。ビットストリーム生成部170は、参照ブロックを示す動きベクトルを符号化し、符号化された動きベクトルを含むビットストリームを生成することができる。ビットストリーム生成部170は、参照ブロックを示す動きベクトルのベクトルの差分値を符号化し、符号化された動きベクトルの差分値を含むビットストリームを生成することができる。ここで、動きベクトルの差分値は、動きベクトルと、動きベクトルの予測子との差値を意味する。このとき、動きベクトルの差分値は、L0方向及びL1方向を含む予測方向それぞれと係わる参照ピクチャに係わる動きベクトルの差分値を意味する。ここで、L0方向に係わる動きベクトルの差分値は、L0参照ピクチャリストに含まれた参照ピクチャ内の参照ブロックを示す動きベクトルの差分値を意味し、L1方向に係わる動きベクトルの差分値は、L1参照ピクチャリストに含まれた参照ピクチャ内の参照ブロックを示す動きベクトルの差分値を意味する。
また、ビットストリーム生成部170は、現在ブロックの動き予測モードを示す情報をさらに含むビットストリームを生成することができる。ビットストリーム生成部170は、以前に符号化されたピクチャのうち現在ブロックの参照ピクチャを示す参照ピクチャインデックスを符号化し、符号化された参照ピクチャインデックスを含むビットストリームを生成することができる。このとき、該参照ピクチャインデックスは、L0方向及びL1方向を含む予測方向それぞれに係わる参照ピクチャインデックスを意味する。ここで、L0方向に係わる参照ピクチャインデックスは、L0参照ピクチャリストに含まれたピクチャのうち参照ピクチャを示すインデックスを意味し、L1方向に係わる参照ピクチャインデックスは、L1参照ピクチャリストに含まれたピクチャのうち参照ピクチャを示すインデックスを意味する。
ビデオ符号化装置150は、映像符号化部(図示せず)を含んでもよく、映像符号化部(図示せず)は、インター予測部155及びビットストリーム生成部170を含んでもよい。映像符号化部については、図1Fを参照して説明することにする。
図1Dは、多様な実施形態によるビデオ符号化方法のフローチャートを図示する。
図1Dを参照すれば、S150段階において、ビデオ符号化装置150は、現在ブロックに係わる動き補償、及びピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロック、第1動きベクトル及び第2動きベクトル、並びにピクセルグループ単位の動き補償に係わるパラメータを獲得することができる。
S155段階において、ビデオ符号化装置150は、第1動きベクトル及び第2動きベクトルについての情報、及び現在ブロックに係わる動き予測モードが、双方向動き予測モードであるか否かということを示す動き予測モード情報を含むビットストリームを生成することができる。ここで、第1動きベクトルは、現在ブロックから、現在ピクチャ内の現在ブロックに対応する第1参照ピクチャの第1参照ブロックを示す動きベクトルでもあり、第2動きベクトルは、現在ブロックから、現在ピクチャ内の現在ブロックに対応する第2参照ピクチャの第2参照ブロックを示す動きベクトルでもある。
ビデオ符号化装置150は、現在ブロックの予測ブロックのピクセルと、現在ブロックの原本ブロックとの差を示す現在ブロックのレジデュアルブロックを符号化し、符号化されたレジデュアル信号をさらに含むビットストリームを生成することができる。ビデオ符号化装置150は、現在ブロックの予測モードについての情報、及び参照ピクチャインデックスを符号化し、符号化された現在ブロックの予測モードについての情報、及び参照ピクチャインデックスをさらに含むビットストリームを生成することができる。例えば、ビデオ符号化装置150は、現在ブロックの予測モードがインター予測モードであるか否かということを示す情報と、以前に復号されたピクチャのうち少なくとも1つのピクチャを示す参照ピクチャインデックスとを符号化し、符号化された現在ブロックの予測モードについての情報、及び参照ピクチャインデックスをさらに含むビットストリームを生成することができる。
ビデオ符号化装置150は、現在ブロック内の現在ピクセルグループに含まれた現在ピクセルに対応する前記第1参照ブロック内の第1対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記現在ピクセルに対応する前記第2参照ブロック内の第2対応参照ピクセルの水平方向または垂直方向のグラジエント値、前記第1対応参照ピクセルのピクセル値、前記第2対応参照ピクセルのピクセル値、並びに前記現在ピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルに基づいて、現在ブロックに係わるブロック単位の動き補償、及びピクセルグループ単位の動き補償を行うことができる。ビデオ符号化装置150は、現在ブロックに係わるブロック単位の動き補償、及びピクセルグループ単位の動き補償を行い、現在ブロックの予測ブロックを獲得することができる。
このとき、現在ブロックの境界内側に隣接するピクセルを含む現在ブロックのピクセルの水平方向または垂直方向の単位時間当たり変位ベクトルは、第1参照ブロック及び第2参照ブロックの境界外部に位置するピクセルについて保存された値の利用なしに、第1参照ブロック及び第2参照ブロックに含まれた参照ピクセルに係わる値を利用しても決定される。第1参照ブロック及び第2参照ブロックに含まれた参照ピクセルに係わる値は、参照ピクセルのピクセル値またはグラジエント値でもある。
図1Eは、多様な実施形態による映像復号部600のブロック図を図示する。
多様な実施形態による映像復号部600は、ビデオ復号装置100の映像復号部(図示せず)において、映像データを符号化させるのに経る作業を遂行する。
図1Eを参照すれば、エントロピー復号部615は、ビットストリーム605から、復号対象である符号化された映像データ、及び復号のために必要な符号化情報をパージングする。符号化された映像データは、量子化された変換係数であり、逆量子化部620及び逆変換部625は、量子化された変換係数からレジデュデータを復元する。
イントラ予測部640は、ブロック別にイントラ予測を行う。インター予測部635は、ブロック別に、復元ピクチャバッファ630で獲得された参照映像を利用してインター予測を行う。図1Eのインター予測部635は、図1Aのインター予測部110に対応する。
イントラ予測部640またはインター予測部635で生成された各ブロックに係わる予測データと、レジデュデータとが加えられることにより、現在映像605のブロックに係わる空間領域のデータが復元され、デブロッキング部645及びSAO遂行部650は、復元された空間領域のデータに対してループフィルタリングを行い、フィルタリングされた復元映像660を出力することができる。また、復元ピクチャバッファ630に保存された復元映像は、参照映像として出力されもする。
ビデオ復号装置100の復号部(図示せず)において、映像データを復号するために、多様な実施形態による映像復号部600の段階別作業がブロック別に遂行されもする。
図1Fは、多様な実施形態による映像符号化部のブロック図を図示する。
多様な実施形態による映像符号化部700は、ビデオ符号化装置150の映像符号化部(図示せず)において、 映像データを符号化させるのに経る作業を遂行する。
すなわち、イントラ予測部720は、現在映像705において、ブロック別にイントラ予測を行い、インター予測部715は、ブロック別に、現在映像705及び復元ピクチャバッファ710で獲得された参照映像を利用してインター予測を行う。ここで、図1Eのインター予測部715は、図1Cのインター予測部160に対応する。
イントラ予測部720またはインター予測部715から出力された各ブロックに係わる予測データを、現在映像705のエンコードされるブロックに係わるデータから差し引くことにより、レジデュデータを生成し、変換部725及び量子化部730は、レジデュデータに対して変換及び量子化を行い、ブロック別に量子化された変換係数を出力することができる。逆量子化部745、逆変換部750は、量子化された変換係数に対して逆量子化及び逆変換を行い、空間領域のレジデュデータを復元することができる。復元された空間領域のレジデュデータは、イントラ予測部720またはインター予測部715から出力された各ブロックに係わる予測データと加えられることにより、現在映像705のブロックに係わる空間領域のデータに復元される。デブロッキング部755及びSAO遂行部760は、復元された空間領域のデータに対してインループフィルタリングを行い、フィルタリングされた復元映像を生成する。生成された復元映像は、復元ピクチャバッファ710に保存される。復元ピクチャバッファ710に保存された復元映像は、他の映像のインター予測のための参照映像にも利用される。エントロピー符号化部735は、量子化された変換係数に対してエントロピー符号化し、エントロピー符号化された係数が、ビットストリーム740としても出力される。
多様な実施形態による映像符号化部700がビデオ符号化装置150に適用されるために、多様な実施形態による映像符号化部700の段階別作業がブロック別に遂行されもする。
図2は、一実施形態によるブロック基盤双方向動き予測及びその補償の過程について説明するための参照図である。図2を参照すれば、ビデオ符号化装置150は、第1参照ピクチャ210及び第2参照ピクチャ220において、現在ピクチャ200の符号化される現在ブロック201と最も類似している領域を検索する双方向動き予測を行う。ここで、第1参照ピクチャ210は、現在ピクチャ200以前のピクチャであり、第2参照ピクチャ220は、現在ピクチャ200以後のピクチャと仮定する。ビデオ符号化装置150は、双方向動き予測結果、第1参照ピクチャ210において、現在ブロック201と最も類似している第1対応領域212、及び第2参照ピクチャ220において、現在ブロック201と最も類似している第2対応領域222を決定する。ここで、第1対応領域及び第2対応領域が現在ブロックの参照領域にもなる。
そして、ビデオ符号化装置150は、第1参照ピクチャ210の現在ブロック201と同一位置のブロック211と、第1対応領域212との位置差に基づいて、第1動きベクトルMV1を決定し、第2参照ピクチャ220の現在ブロック201と同一位置のブロック221と、第2対応領域222との位置差に基づいて、第2動きベクトルMV2を決定する。
ビデオ符号化装置150は、第1動きベクトルMV1及び第2動きベクトルMV2を利用し、現在ブロック201に対するブロック単位双方向動き補償を行う。
例えば、第1参照ピクチャ210の(i,j)(i、jは、整数である)に位置したピクセル値をP0(i,j)、第2参照ピクチャ220の(i,j)に位置したピクセル値をP1(i,j)、MV1=(MVx1,MVy1)、MV2=(MVx2,MVy2)とすれば、現在ブロック201の(i,j)位置ピクセルのブロック単位双方向動き補償値P_BiPredBlock(i,j)は、次の数式:P_BiPredBlock(i,j)={P0(i+MVx1,j+MVy1)+P1(i+MVx2,j+MVy2)}/2のように計算されもする。このように、ビデオ符号化装置150は、第1動きベクトルMV1及び第2動きベクトルMV2が示す第1対応領域212及び第2対応領域222のピクセルの平均値や加重和を利用し、現在ブロック201に対するブロック単位の動き補償を行い、ブロック単位の動き補償値を生成することができる。
図3Aないし3Cは、一実施形態によるピクセルグループ単位の動き補償を行う過程について説明するための参照図である。
図3Aにおいて、第1対応領域310及び第2対応領域320は、それぞれ図2の第1対応領域212及び第2対応領域222と対応するものであり、現在ブロック300にオーバーラップされるように、双方向動きベクトル(MV1,MV2)を利用してシフトされたものであると仮定する。
また、現在ブロック300の双方向予測される(i,j)(i、jは、整数である)位置のピクセルをP(i,j)、現在ブロック300の双方向予測されるピクセルP(i,j)と対応する第1参照ピクチャの第1参照ピクセル値をP0(i,j)、現在ブロック300の双方向予測されるピクセルP(i,j)と対応する第2参照ピクチャの第2参照ピクセル値をP1(i,j)と定義する。
言い替えれば、第1参照ピクセル値P0(i,j)は、第1参照ピクチャを示す双方向動きベクトルMV1によって決定された現在ブロック300のピクセルP(i,j)に対応するピクセルであり、第2参照ピクセルのピクセル値P1(i,j)は、第2参照ピクチャを示す双方向動きベクトルMV2によって決定された現在ブロック300のピクセルP(i,j)に対応するピクセルである。
また、第1参照ピクセルの水平方向のグラジエント値を
第1参照ピクセルの垂直方向のグラジエント値を
第2参照ピクセルの水平方向のグラジエント値を
第2参照ピクセルの垂直方向のグラジエント値を
と定義する。また、現在ブロック300が属する現在ピクチャと、第1対応領域310が属する第1参照ピクチャとの時間的距離をτ0、現在ピクチャと、第2対応領域320が属する第2参照ピクチャとの時間的距離をτ1と定義する。ここで、ピクチャ間の時間的距離は、ピクチャのPOCの差を意味する。
ビデオシーケンスで決定された小さい動きがあると仮定すれば、ピクセルグループ単位で双方向動き補償される現在ピクセルP(i,j)と最も類似している第1参照ピクチャの第1対応領域310のピクセルは、第1参照ピクセルP0(i,j)ではなく、第1参照ピクセルP0(i,j)を、所定の変位ベクトルほど移動させた第1変位参照ピクセルPAであると仮定する。前述のように、ビデオシーケンスで決定された動きがあると仮定したので、第2参照ピクチャの第2対応領域320において、現在ピクセルP(i,j)と最も類似しているピクセルは、第2参照ピクセルP1(i,j)を、所定の変位ベクトルほど移動させた第2変位参照ピクセルPBと推定することができる。
変位ベクトルは、前述のx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyによっても構成される。従って、ピクセルグループ単位の動き補償部165は、そのような変位ベクトルを構成するx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyを計算し、それを利用してピクセルグループ単位で動き補償を行う。
オプティカルフローは、観察者(目またはカメラのようなビデオ映像獲得装置)と場面(scene)との相対的な動きによって誘発される客体、表面の外観上動きのパターン(pattern of apprarent motion)を意味する。ビデオシーケンスにおいて、該オプティカルフローは、任意の時間t及びt+△tで獲得されたフレーム間の動きを計算することによっても表現される。時間tのフレーム内(x,y)に位置したピクセル値は、I(x,y,t)とも定義される。すなわち、I(x,y,t)は、時空間的に変化される値でもある。I(x,y,t)を時間tについて微分すれば、次の数式(1)の通りである。
もしブロック内の小さい動き部分について、動きによるピクセル値の変化は存在するが、経時的にピクセル値が変わらないと仮定すれば、dI/dtは、0になる。また、経時的なピクセル値の動きが一定であると仮定すれば、dx/dtを、ピクセル値I(x,y,t)のx軸方向の変位ベクトルVx、dy/dtをピクセル値I(x,y,t)のy軸方向の変位ベクトルVyと定義することができ、従って、数式(1)は、次の数式(2)のようによっても表現される。
ここで、x軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyの大きさは、双方向動き予測に利用されたピクセル正確度(pixel accuracy)より小さい値であることが望ましい。例えば、双方向動き予測時、1/4ピクセル正確度または1/16ピクセル正確度を有するとしたとき、Vx及びVyの大きさは、1/4または1/16より小さい値を有することが望ましい。
ピクセルグループ単位の動き補償部165は、数式(2)によるx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyを計算し、そのような変位ベクトルVx及びVyを利用してピクセルグループ単位で動き補償を行う。数式(2)において、ピクセル値I(x,y,t)は、原信号の値であるために、原信号の値をそのまま利用することは、符号化時に多くのオーバーヘッドを誘発してしまう。従って、ピクセルグループ単位の動き補償部165は、ブロック単位での双方向動き予測の結果として決定された第1参照ピクチャ及び第2参照ピクチャのピクセルを利用し、数式(2)による変位ベクトルVx及びVyを計算することができる。すなわち、ピクセルグループ単位の動き補償部165は、双方向動き補償される現在ピクセルP(i,j)を中心に、周辺のピクセルを含む所定サイズのウィンドウ(Ωij)内において、Δが最小になるようにするx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyを決定する。Δが0である場合が最も望ましいが、ウィンドウ(Ωij)内の全ピクセルについて、Δが0である場合を満足させるx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyが存在しないために、Δが最小になるようにするx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyが決定される。変位ベクトルVx及びVyを求める過程は、図8Aを参照し、詳細に説明することにする。
現在ピクセルの予測ピクセル値を決定するために、以下の数式(3)のように、tに係わる関数P(t)が決定されもする。
このとき、t=0でのピクチャが、現在ブロックが含まれた現在ピクチャであると仮定する。従って、現在ブロックに含まれた現在ピクセルの予測ピクセル値は、tが0であるときのP(t)の値とも定義される。
第1参照ピクチャ(第1参照ピクチャが、現在ピクチャより時間的に先立った位置にあると仮定する)から現在ピクチャまでの時間的距離がτ0であり、第2参照ピクチャ(第2参照ピクチャが、現在ピクチャより時間的に遅れた位置にあると仮定する)から現在ピクチャまでの時間的距離がτ1である場合、第1参照ピクチャでの参照ピクセル値は、P(-τ0)と同一であり、第2参照ピクチャでの参照ピクセル値は、P(τ1)と同一である。以下では、計算の便宜のために、τ0とτ1とがいずれもτとして同一であると仮定する。
P(t)の各次数の係数は、下記数式(4)によっても決定される。ここで、P0(i,j)は、第1参照ピクチャの(i,j)位置でのピクセル値を意味し、P1(i,j)は、第2参照ピクチャの(i,j)位置でのピクセル値を意味する。
従って、現在ブロック内の現在ピクセルの予測ピクセル値P(0)は、下記数式(5)によっても決定される。
数式(5)は、数式(2)を考慮するとき、下記数式(6)によっても表現される。
従って、現在ピクセルの予測ピクセル値は、変位ベクトルVx,Vy、第1参照ピクセルの水平方向及び垂直方向のグラジエント値、及び第2参照ピクセルの水平方向及び垂直方向のグラジエント値を利用しても決定される。ここで、Vx,Vyと関係ない部分(P0(i,j)+P1(i,j))/2は、ブロック単位の動き補償値部分であり、Vx,Vyと関連ある項部分は、ピクセルグループ単位の動き補償値部分でもある。結果として、ブロック単位の動き補償値と、ピクセルグループ単位の動き補償値との和により、現在ピクセルの予測ピクセル値が決定されもする。
前述のところの便宜上、第1参照ピクチャから現在ピクチャまでの時間的距離がτであり、第2参照ピクチャから現在ピクチャまでの時間的距離がいずれもτとして同一である場合、現在ピクセルの予測ピクセル値を決定する過程について説明したが、第1参照ピクチャから現在ピクチャまでの時間的距離がτ0であり、第2参照ピクチャから現在ピクチャまでの時間的距離がτ1でもある。このとき、現在ピクセルの予測ピクセル値P(0)は、下記数式(7)のようにも決定される。
数式(7)は、数式(2)を考慮するとき、下記数式(8)によっても表現される。
先に、第1参照ピクチャは、ディスプレイ順序上、現在ピクチャより時間的に後に位置し、第2参照ピクチャは、ディスプレイ順序上、現在ピクチャより時間的に前に位置と仮定して説明したが、第1参照ピクチャ及び第2参照ピクチャがいずれもディスプレイ順序上、時間的に前に位置したり、第1参照ピクチャ及び第2参照ピクチャがいずれもディスプレイ順序上、時間的に後に位置したりもする。
例えば、図3Bに図示されているように、第1対応領域を含む第1参照ピクチャ、及び第2対応領域を含む第2参照ピクチャがいずれもディスプレイ順序上、時間的に現在ブロックを含む現在ピクチャより前に位置することができる。
その場合、図3Aを参照して誘導された数式(8)において、第2参照ピクチャと現在ピクチャとの時間的な距離差を示すτ1を、-τ1で代替した数式(9)により、現在ピクセルの予測ピクセル値P(0)が決定されもする。
例えば、図3Cに図示されているように、第1対応領域を含む第1参照ピクチャ、及び第2対応領域を含む第2参照ピクチャがいずれもディスプレイ順序上、時間的に現在ブロックを含む現在ピクチャより後に位置することができる。
その場合、図3Aを参照して誘導された数式(8)において、第1参照ピクチャと現在ピクチャとの時間的な距離差を示すτ0を、-τ0で代替した数式(10)により、現在ピクセルの予測ピクセル値が決定されもする。
ただし、図3B及び図3Cのように、第1参照ピクチャと第2参照ピクチャとがいずれもディスプレイ順序上、時間的に前に位置したり、第1参照ピクチャと第2参照ピクチャとがいずれもディスプレイ順序上、時間的に後に位置したりする場合、ピクセルグループ単位の動き補償は、第1参照ピクチャと第2参照ピクチャとが同一参照ピクチャではない場合に行われもする。また、その場合、ピクセルグループ単位の動き補償は、双方向動きベクトル(MV1,MV2)がいずれもノンゼロ成分(non-zero component)を有する場合にだけ行われる。また、その場合、ピクセルグループ単位の動き補償は、動きベクトル(MV1,MV2)の比率が、第1参照ピクチャと現在ピクチャとの時間的な距離と、第2参照ピクチャと現在ピクチャとの時間的な距離の比率と同一である場合にだけ行われもする。例えば、動きベクトルMV1のx成分と、動きベクトルMV2のx成分との比率が、動きベクトルMV1のy成分、と動きベクトルMV2のy成分との比率と同一であり、該比率が、第1参照ピクチャと現在ピクチャとの時間的な距離τ0と、第2参照ピクチャと現在ピクチャとの時間的な距離τ1との比率と同一である場合、ピクセルグループ単位の動き補償が行われもする。
図4は、一実施形態により、水平方向及び垂直方向のグラジエント値を計算する過程について説明するための参照図である。図4を参照すれば、第1参照ピクチャの第1参照ピクセルP0(i,j)410の水平方向のグラジエント値
及び垂直方向のグラジエント値
は、第1参照ピクセルP0(i,j)410と水平方向に隣接した周辺小数ピクセル位置でのピクセル値の変化量と、垂直方向に隣接した周辺小数ピクセル位置でのピクセル値の変化量とを求めることによっても計算される。すなわち、次の数式(11)のように、P0(i,j)から、水平方向にh(hは、1より小さい小数値)ほど離れた小数ピクセルP0(i-h,j)460及び小数ピクセルP0(i+h,j)470のピクセル値の変化量を計算し、水平方向のグラジエント値
を計算し、垂直方向にhほど離れた小数ピクセルP0(i,j-h)480、及び小数ピクセルP0(i,j+h)490のピクセル値の変化量を計算し、垂直グラジエント値
を計算することができる。
小数ピクセルP0(i-h,j)460,P0(i+h,j)470,P0(i,j-h)480及びP0(i,j+h)490の値は、一般的な補間方式を利用しても計算される。また、他の第2参照ピクチャの第2参照ピクセルの水平方向及び垂直方向のグラジエント値も、数式(11)と類似して計算されもする。
一実施形態によれば、数式(11)のように、小数ピクセル位置でのピクセル値の変化量を計算し、グラジエント値を計算する代わりに、所定のフィルタを利用し、各参照ピクセルでのグラジエント値を計算することができる。所定のフィルタのフィルタ係数は、フィルタの線形性を考慮し、小数ピクセル位置でのピクセル値を求めるために利用される補間フィルタの係数から決定されもする。
図5は、他の実施形態により、水平方向及び垂直方向のグラジエント値を計算する過程について説明するための参照図である。
他の実施形態によれば、該グラジエント値は、参照ピクチャのピクセルに、所定のフィルタを適用しても決定される。図5を参照すれば、ビデオ復号装置100は、現在水平グラジエント値を求めようとする参照ピクセルP0500を中心に、左側にMMax個のピクセル520、及び右側に|MMin|個のピクセル510に、所定のフィルタを適用し、P0500の水平方向のグラジエント値を計算することができる。このとき、利用されるフィルタ係数は、図7Aないし図7Dに図示されているように、ウィンドウサイズを決定するのに利用されるMMax整数ピクセルとMMin整数ピクセルとの補間位置(小数ピクセル位置;fractional pel position)を示すα値によっても決定される。一例として、図7Aを参照すれば、ウィンドウサイズを決定するMMinは、-2であり、MMaxは、3であり、参照ピクセルP0500から1/4ほど離れた、すなわち、α=1/4である場合には、図7Aの2行目フィルタ係数{4,-17,-36,60,-15,4}が周辺ピクセルP-2,P-1,P0,P1,P2,P3に適用される。その場合、参照ピクセル500の水平方向のグラジエント値
は、次の数式:
のように、フィルタ係数と周辺ピクセルとを利用した加重和としても計算される。類似して、垂直方向のグラジエント値も、ウィンドウサイズを決定するのに利用されるMMax値及びMMin値、並びに補間位置により、図7Aないし図7Eに図示されたフィルタ係数を周辺ピクセルに適用することによっても計算される。
図6A及び図6Bは、一実施形態により、一次元フィルタを利用し、水平方向及び垂直方向のグラジエント値を決定する過程について説明するための図面である。
図6Aを参照すれば、参照ピクチャにおいて、参照ピクセルの水平方向のグラジエント値を決定するために、整数ピクセルに対して、複数の一次元フィルタを利用してフィルタリングが行われる。ピクセルグループ単位の動き補償は、ブロック単位の動き補償後に行われる追加的な動き補償である。従って、ブロック単位の動き補償過程において、動きベクトルが示す現在ブロックの参照ブロックの基準位置は、小数ピクセル位置でもあり、小数ピクセル位置の参照ブロック内の参照ピクセルに対して、ピクセルグループ単位の動き補償が行われる。従って、小数ピクセル位置のピクセルのグラジエント値を決定することを考慮し、フィルタリングが行われる。
図6Aを参照すれば、まずビデオ復号装置100は、参照ピクチャ内に、参照ピクセルの周辺整数ピクセルから、水平方向または垂直方向に位置するピクセルに対して、第1一次元フィルタを利用してフィルタリングを行うことができる。同様に、ビデオ復号装置100は、参照ピクセルと異なる行または列に位置する隣接整数ピクセルに対して、第1一次元フィルタを利用してフィルタリングを行うことができる。ビデオ復号装置100は、前記フィルタリングが行われて生成された値に対して、第2一次元フィルタを利用してフィルタリングを行うことにより、参照ピクセルの水平方向のグラジエント値を生成することができる。
例えば、参照ピクセルの位置が、(x+α,y+β)(x、yは、整数であり、α、βは、小数である)の小数ピクセルの位置である場合、水平方向の整数ピクセル(x,y)及び(x-1,y),(x+1,y),…,(x+MMin,y),(x+MMax,y)(MMin、MMaxは、いずれも整数である)に対して、一次元垂直補間フィルタを利用し、以下の数式(12)のように、フィルタリングが行われる。
このとき、fracFilterβは、垂直方向の小数ピクセル位置βでのピクセル値を決定するための補間フィルタであり、fracFilterβ[j’]は、(i,j’)位置のピクセルに適用される補間フィルタの係数を意味する。I[i,j’]は、(i,j’)位置のピクセル値を意味する。
すなわち、第1一次元フィルタは、垂直方向の小数ピクセル値を決定するための補間フィルタでもある。offset1は、四捨五入エラーを防止するためのオフセットであり、shift1は、逆スケーリングビット数を意味する。Temp[i,j+β]は、小数ピクセル位置(i,j+β)でのピクセル値を意味する。Temp[i’,j+β](i’は、iを除いたi+Mminからi+Mmaxまでの整数である)も、iをi’で代替し、数式(12)によっても決定される。
その次に、ビデオ復号装置100は、小数ピクセル位置(i,j+β)でのピクセル値、及び小数ピクセル位置(i’,j+β)でのピクセル値に対して、第2一次元フィルタを利用してフィルタリングを行うことができる。
このとき、gradFilterαは、水平方向の小数ピクセル位置αでのグラジエント値を決定するためのグラジエントフィルタでもある。gradFilterα[i’]は、(i’,j+β)位置のピクセルに適用される補間フィルタの係数を意味する。すなわち、第2一次元フィルタは、水平方向のグラジエント値を決定するためのグラジエントフィルタでもある。offset2は、四捨五入エラーを防止するためのオフセットであり、shift2は、逆スケーリングビット数を意味する。
すなわち、数式(13)によれば、ビデオ復号装置100は、(i,j+β)でのピクセル値(Temp[i,j+β])と、ピクセル位置(i,j+β)から垂直方向に位置するピクセル値(Temp[i’,j+β])に対して、グラジエントフィルタ(gradFilterα)を利用してフィルタリングを行うことにより、(i+α,j+β)での水平方向のグラジエント値
を決定することができる。
先に、補間フィルタをまず適用し、以後にグラジエントフィルタを適用し、水平方向のグラジエント値を決定する内容について説明したが、それに制限されるものではなく、まずグラジエントフィルタを適用し、以後に補間フィルタを適用し、水平方向のグラジエント値が決定されもする。以下においては、グラジエントフィルタを適用し、以後に補間フィルタを適用し、水平方向のグラジエント値が決定される実施形態について説明することにする。
例えば、参照ピクセルの位置が、(x+α,y+β)(x、yは、整数であり、α、βは、小数である)の小数ピクセルの位置である場合、水平方向の整数ピクセル(x,y)及び(x-1,y),(x+1,y),…,(x+MMin,y),(x+MMax,y)(MMin、MMmaxは、いずれも整数である)に対して第1一次元フィルタを利用し、以下の数式(14)のように、フィルタリングが行われる。
このとき、gradFilterαは、水平方向の小数ピクセル位置αでのグラジエント値を決定するためのグラジエントフィルタであり、gradFilterα[i’]は、(i’,j)位置のピクセルに適用されるグラジエントフィルタの係数を意味する。I[i’,j]は、(i’,j)位置のピクセル値を意味する。
すなわち、第1一次元フィルタは、ピクセル位置の水平成分が小数である位置のピクセルの水平方向のグラジエント値を決定するための補間フィルタでもある。offset3は、四捨五入エラーを防止するためのオフセットであり、shift3は、逆スケーリングビット数を意味する。Temp[i+α,j]は、ピクセル位置(i+α,j)での水平方向のグラジエント値を意味する。Temp[i+α,j’](j’は、iを除いたj+Mminからj+Mmaxまでの整数である)も、jをj’で代替し、数式(14)によっても決定される。
その次に、ビデオ復号装置100は、ピクセル位置(i+α,j)での水平方向のグラジエント値、及びピクセル位置(i+α,j’)での水平方向のグラジエント値に対して、第2一次元フィルタを利用し、以下の数式(15)のように、フィルタリングを行うことができる。
このとき、fracFilterβは、垂直方向の小数ピクセル位置βでのピクセル値を決定するための補間フィルタでもある。fracFilterβ[j’]は、(i+β,j’)位置のピクセルに適用される補間フィルタの係数を意味する。すなわち、第2一次元フィルタは、垂直方向の小数ピクセル位置βでのピクセル値を決定するための補間フィルタでもある。offset
4は、四捨五入エラーを防止するためのオフセットであり、shift
4は、逆スケーリングビット数を意味する。
すなわち、数式(15)によれば、ビデオ復号装置100は、(i+α,j)での水平方向のグラジエント値(Temp[i+α,j])と、ピクセル位置(i+α,j)から垂直方向に位置するピクセルの水平方向のグラジエント値(Temp[i+α,j’])とに対して、グラジエントフィルタ(fracFilterβ)を利用してフィルタリングを行うことにより、(i+α,j+β)での水平方向のグラジエント値
を決定することができる。
図6Bを参照すれば、参照ピクチャにおいて、参照ピクセルの垂直方向のグラジエント値を決定するために、整数ピクセルに対して、複数の一次元フィルタを利用してフィルタリングが行われる。ピクセルグループ単位の動き補償は、ブロック単位の動き補償後に行われる追加的な動き補償である。従って、ブロック単位の動き補償過程において、動きベクトルが示す現在ブロックの参照ブロックの基準位置は、小数ピクセル位置でもあり、小数ピクセル位置の参照ブロック内の参照ピクセルに対して、ピクセルグループ単位の動き補償が行われもする。従って、小数ピクセル位置のピクセルのグラジエント値を決定することを考慮し、フィルタリングが行われもする。
図6Bを参照すれば、まずビデオ復号装置100は、参照ピクチャ内において、参照ピクセルの周辺整数ピクセルから水平方向または垂直方向に位置するピクセルに対して、第1一次元フィルタを利用してフィルタリングを行うことができる。同様に、ビデオ復号装置100は、参照ピクセルと異なる列または行に位置する隣接ピクセルに対して、第1一次元フィルタを利用してフィルタリングを行うことができる。ビデオ復号装置100は、前記フィルタリングが行われて生成された値に対して、第2一次元フィルタを利用してフィルタリングを行うことにより、参照ピクセルの垂直方向のグラジエント値を生成することができる。
例えば、参照ピクセルの位置が、(x+α,y+β)(x、yは、整数であり、α、βは、小数である)の小数ピクセルの位置である場合、水平方向の整数ピクセル(x,y)及び(x-1,y-1),(x+1,y+1),…,(x+MMin,y+MMin),(x+MMax,y+Mmax)(MMin、MMmaxは、いずれも整数である)に対して第1一次元フィルタを利用し、以下の数式(16)のように、フィルタリングが行われる。
このとき、fracFilterαは、水平方向の小数ピクセル位置αでのピクセル値を決定するための補間フィルタであり、fracFilterα[i’]は、(i’,j)位置のピクセルに適用される補間フィルタの係数を意味する。I[i’,j]は、(i’,j)位置のピクセル値を意味する。
すなわち、第1一次元フィルタは、水平方向の小数ピクセル位置αでのピクセル値を決定するための補間フィルタでもある。offset5は、四捨五入エラーを防止するためのオフセットであり、shift5は、逆スケーリングビット数を意味する。
Temp[i+α,j]は、小数ピクセル位置(i+α,j)でのピクセル値を意味する。Temp[i+α,j’](j’は、jを除いたj+Mminからj+Mmaxまでの整数である)も、jをj’で代替し、数式(16)によっても決定される。
その次に、ビデオ復号装置100は、ピクセル位置(i+α,j)でのピクセル値、及びピクセル位置(i+α,j’)でのピクセル値に対して、第2一次元フィルタを利用し、以下の数式(17)のように、フィルタリングを行うことができる。
このとき、gradFilterβは、垂直方向の小数ピクセル位置βでの垂直方向のグラジエント値を決定するためのグラジエントフィルタでもある。gradFilterβ[j’]は、(i+α,j’)位置のピクセルに適用される補間フィルタの係数を意味する。すなわち、第2一次元フィルタは、垂直方向の小数ピクセル位置βにおいて、垂直方向のグラジエント値を決定するためのグラジエントフィルタでもある。offset6は、四捨五入エラーを防止するためのオフセットであり、shift6は、逆スケーリングビット数を意味する。
すなわち、数式(17)によれば、ビデオ復号装置100は、(i+α,j)でのピクセル値(Temp[i+α,j])と、ピクセル位置(i+α,j)から垂直方向に位置するピクセル値(Temp[i+α,j’])とに対してグラジエントフィルタ(gradFilterβ)を利用してフィルタリングを行うことにより、(i+α,j+β)での垂直方向のグラジエント値
を決定することができる。
先に、補間フィルタをまず適用し、以後にグラジエントフィルタを適用し、垂直方向のグラジエント値を決定する内容について説明したが、それに制限されるものではなく、まずグラジエントフィルタを適用し、以後に補間フィルタを適用し、水平方向のグラジエント値が決定されもする。以下では、グラジエントフィルタを適用し、以後に補間フィルタを適用し、垂直方向のグラジエント値が決定される実施形態について説明することにする。
例えば、参照ピクセルの位置が、(x+α,y+β)(x、yは、整数であり、α、βは、小数である)の小数ピクセルの位置である場合、垂直方向の整数ピクセル(x,y)及び(x,y-1),(x,y+1),…,(x,y+MMin),(x,y+Mmax)(MMin、Mmaxは、いずれも整数である)に対して第1一次元フィルタを利用し、以下の数式(18)のように、フィルタリングが行われる。
このとき、gradFilterβは、垂直方向の小数ピクセル位置βでのグラジエント値を決定するためのグラジエントフィルタであり、gradFilterβ[j’]は、(i,j’)位置のピクセルに適用されるグラジエントフィルタの係数を意味する。I[i,j’]は、(i,j’)位置のピクセル値を意味する。
すなわち、第1一次元フィルタは、ピクセル位置の垂直成分が小数である位置のピクセルの垂直方向のグラジエント値を決定するための補間フィルタでもある。offset7は、四捨五入エラーを防止するためのオフセットであり、shift7は、逆スケーリングビット数を意味する。
Temp[i,j+β]は、ピクセル位置(i,j+β)での垂直方向のグラジエント値を意味する。Temp[i’,j+β](i’は、iを除いたi+Mminからi+Mmaxまでの整数である)も、iをi’で代替し、数式(18)によっても決定される。
その次に、ビデオ復号装置100は、ピクセル位置(i,j+β)での垂直方向のグラジエント値、及びピクセル位置(i’,j+β)での垂直方向のグラジエント値に対して、第2一次元フィルタを利用し、以下の数式(19)のように、フィルタリングを行うことができる。
このとき、fracFilterαは、水平方向の小数ピクセル位置αでのピクセル値を決定するための補間フィルタでもある。fracFilterα[i’]は、(i’,j+β)位置のピクセルに適用される補間フィルタの係数を意味する。すなわち、第2一次元フィルタは、水平方向の小数ピクセル位置αでのピクセル値を決定するための補間フィルタでもある。offset8は、四捨五入エラーを防止するためのオフセットであり、shift8は、逆スケーリングビット数を意味する。
すなわち、数式(19)によれば、ビデオ復号装置100は、(i,j+β)での垂直方向のグラジエント値(Temp[i,j+β])と、ピクセル位置(i,j+β)から水平方向に位置するピクセルの垂直方向のグラジエント値(Temp[i’,j+β)])とに対し、補間フィルタ(fracFilterα)を利用してフィルタリングを行うことにより、(i+α,j+β)での垂直方向のグラジエント値
を決定することができる。
一実施形態によれば、ビデオ復号装置100は、(i+α,j+β)での水平方向及び垂直方向のグラジエント値は、前述の多様なフィルタの組み合わせによっても決定される。例えば、水平方向のグラジエント値を決定するために、第1一次元フィルタで、垂直方向のピクセル値を決定するための補間フィルタが利用され、第2一次元フィルタで、水平方向のグラジエント値のためのグラジエントフィルタが利用されもする。垂直方向のグラジエント値を決定するために、第1一次元フィルタで、垂直方向のグラジエント値を決定するためのグラジエントフィルタが利用され、第2一次元フィルタで、水平方向のピクセル値を決定するための補間フィルタが利用されもする。
図7Aないし図7Eは、一実施形態により、小数ピクセル単位の小数ピクセル位置でのピクセル値、並びに水平方向及び垂直方向のグラジエント値を決定するために利用されるフィルタのフィルタ係数を示した表である。
図7A及び図7Bは、1/4ペル(pel)単位の小数ピクセル位置での水平方向または垂直方向のグラジエント値を決定するためのフィルタのフィルタ係数を示した表である。
前述の通り、水平方向または垂直方向のグラジエント値を決定するために、一次元グラジエントフィルタ及び一次元補間フィルタが利用されもする。図7Aを参照すれば、一次元グラジエントフィルタのフィルタ係数が図示されている。このとき、グラジエントフィルタは、6タップのフィルタが利用されもする。グラジエントのフィルタ係数は、2^4ほどスケーリングされた係数でもある。Mminは、中心整数ピクセルを基準に、フィルタに適用される負数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味し、Mmaxは、中心整数ピクセルを基準に、フィルタに適用される正数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味する。例えば、水平方向に、小数ピクセル位置α=1/4であるピクセルの水平方向のグラジエント値を求めるための、グラジエントフィルタ係数は、{4,-17,-36,60,-15,-4}でもある。水平方向に、小数ピクセル位置α=0,1/2,3/4であるピクセルの水平方向のグラジエント値を求めるためのグラジエントフィルタ係数も、図7Aを参照して決定されもする。
図7Bを参照すれば、一次元補間フィルタのフィルタ係数が図示されている。このとき、補間フィルタは、6タップのフィルタが利用されもする。補間フィルタのフィルタ係数は、2^6ほどスケーリングされた係数でもある。Mminは、中心整数ピクセルを基準に、フィルタに適用される負数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味し、Mmaxは、中心整数ピクセルを基準に、フィルタに適用される正数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味する。
図7Cは、1/4ペル単位の小数ピクセル位置でのピクセル値を決定するために利用される一次元補間フィルタのフィルタ係数を示した表である。
前述の通り、小数ピクセル位置でのピクセル値を決定するために、同一である2個の一次元補間フィルタが水平方向及び垂直方向に利用されもする。
図7Cを参照すれば、一次元補間フィルタのフィルタ係数が図示されている。このとき、一次元補間フィルタは、6タップのフィルタでもある。グラジエントのフィルタ係数は、2^6ほどスケーリングされた係数でもある。Mminは、中心整数ピクセルを基準に、フィルタに適用される負数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味し、Mmaxは、中心整数ピクセルを基準に、フィルタに適用される正数方向の整数ピクセルのうち最も遠いピクセルの位置と、中心整数ピクセルの位置との差を意味する。
図7Dは、1/16ペル単位の小数ピクセル位置での水平方向または垂直方向のグラジエント値を決定するために利用されるフィルタのフィルタ係数を示した表である。
前述の通り、水平方向または垂直方向のグラジエント値を決定するために、一次元グラジエントフィルタ及び一次元補間フィルタが利用されもする。図7Dを参照すれば、一次元グラジエントフィルタのフィルタ係数が図示されている。このとき、グラジエントフィルタは、6タップのフィルタが利用されもする。グラジエントのフィルタ係数は、2^4ほどスケーリングされた係数でもある。例えば、水平方向に、小数ピクセル位置αが1/16であるピクセルの水平方向のグラジエント値を求めるためのグラジエントフィルタ係数は、{8,-32,-13,50,-18,5}でもある。水平方向に、小数ピクセル位置αが、0,1/8、3/16、1/4、5/16、3/8、7/16、1/2であるピクセルの水平方向のグラジエント値を求めるためのグラジエントフィルタ係数も、図7Dを利用しても決定される。一方、小数ピクセル位置αが、9/16、5/8、11/16、3/4、13/16、7/8、15/16であるピクセルの水平方向のグラジエント値を求めるためのグラジエントフィルタ係数は、α=1/2基準で、フィルタ係数の対称性を利用しても決定される。すなわち、図7Dに開示されたα=1/2基準で、左側の小数ピクセル位置のフィルタ係数を利用し、残りα=1/2基準で、右側の小数ピクセル位置のフィルタ係数が決定されもする。例えば、α=15/16でのフィルタ係数は、α=1/2基準で対称である位置であるα=1/16のフィルタ係数{8,-32,-13,50,-18,5}を利用しても決定される。すなわち、α=15/16でのフィルタ係数は、フィルタ係数{8,-32,-13,50,-18,5}を逆順に配し、{5,-18,50,-13,-32、8}と決定されもする。
図7Eを参照すれば、一次元補間フィルタのフィルタ係数が図示されている。このとき、補間フィルタは、6タップのフィルタが利用されもする。補間フィルタのフィルタ係数は、2^6ほどスケーリングされた係数でもある。例えば、水平方向に、小数ピクセル位置αが1/16であるピクセルの水平方向のピクセル値を求めるための一次元補間フィルタ係数は、{1,-3,64,4,-2,0}でもある。水平方向に、小数ピクセル位置α=0,1/8,3/16,1/4,5/16,3/8,7/16,1/2であるピクセルの水平方向のピクセル値を求めるための補間フィルタ係数も、図7Eを利用しても決定される。一方、水平方向に、小数ピクセル位置αが、9/16、5/8、11/16、3/4、13/16、7/8、15/16であるピクセルの水平方向のピクセル値を求めるための補間フィルタ係数は、α=1/2基準でフィルタ係数の対称性を利用しても決定される。すなわち、図7Eに開示されたα=1/2基準で左側の小数ピクセル位置のフィルタ係数を利用し、残りα=1/2基準で右側の小数ピクセル位置のフィルタ係数が決定されもする。例えば、α=15/16でのフィルタ係数は、α=1/2基準で対称となる位置であるα=1/16のフィルタ係数{1,-3,64,4,-2,0}を利用しても決定される。すなわち、α=15/16でのフィルタ係数は、フィルタ係数{1,-3,64,4,-2,0}を逆順に配し、{0,-2,4,64,-3,1}と決定されもする。
図8Aは、一実施形態により、ピクセルに係わる水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程について説明するための参照図である。
図8Aを参照すれば、所定サイズのウィンドウ(Ωij)800は、現在ブロックにおいて、双方向予測されるピクセルP(i,j)を中心にした(2M+1)*(2N+1)(M、Nは、整数である)の大きさを有する。
ウィンドウ内の双方向予測される現在ブロックのピクセルをP(i’,j’)(i-M≦i’≦i+Mであり、j-N≦j’≦j+Nである場合、(i’,j’)∈Ωij)、現在ブロックの双方向予測されるピクセルP(i’,j’)と対応する第1参照ピクチャ810の第1参照ピクセルのピクセル値をP0(i’,j’)、現在ブロックの双方向予測されるピクセルP(i’,j’)と対応する第2参照ピクチャ820の第2参照ピクセルのピクセル値をP1(i’,j’)、第1参照ピクセルの水平方向のグラジエント値を
垂直方向のグラジエント値を
第2参照ピクセルの水平方向のグラジエント値を
垂直方向のグラジエント値を
とすれば、第1変位対応ピクセルPA’及び第2変位対応ピクセルPB’は、以下の数式(20)のようにも決定される。このとき、PA’及びPB’は、ローカルテーラーエクスパンション(Local Taylor Expansion)の一次線形ターム(first linear term)を利用しても決定される。
数式(20)で、x軸方向の変位ベクトルVx,y軸方向の変位ベクトルVyは、現在ピクセルP(i,j)の位置によって変化しもするために、すなわち、(i,j)に従属的であるために、Vx(i,j)、Vy(i,j)のようも表現される。
第1変位対応ピクセルPA’と第2変位対応ピクセルPB’との差値△i’j’は、以下の数式(21)のようにも決定される。
第1変位対応ピクセルPA’と第2変位対応ピクセルPB’との差値△i’j’が最小になるようにするx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyは、次の数式(22)のように、差値△i’j’の二乗和であるΦ(Vx,Vy)を利用しても決定される。
すなわち、Φ(Vx,Vy)の極大値または極小値を利用しても決定される。Φ(Vx,Vy)は、Vx,Vyを媒介変数にする関数であり、前述の極大値または極小値は、次の数式(23)により、τVx及びτVyに対して整理されたΦ(Vx,Vy)を、τVx及びτVyに対して偏微分して0になる値を計算することによっても決定される。以下では、計算の便宜上、τ0とτ1とがτとして同一であると仮定する。
数式:
及び数式:
を利用し、以下の数式(24)のように、Vx(i,j)及びVy(i,j)を変数にする2個の線形方程式を獲得することができる。
数式(24)において、s1ないしs6は、次の数式(25)の通りである。
数式(24)の連立方程式を解けば、クラメル公式(Kramer’s formulas)により、τ*Vx(i,j)=-det1/det、τ*Vy(i,j)=-det2/detのように、Vx(i,j)及びVy(i,j)の値を解くことができる。ここで、det1=s3*s5-s2*s6、det2=s1*s6-s3*s4、det=s1*s5-s2*s2である。
水平方向において、最初に最小化(minimization)を行い、以後に垂直方向に最小化を行い、前記数式の簡単な解(simplified solution)が決定されもする。すなわち、例えば、水平方向の変位ベクトルだけ変化させると仮定すれば、数式(24)の最初数式において、Vy=0と仮定することができ、従って、数式:τVx=s3/s1と決定されもする。
そして、数式(24)の2番目数式を、数式:τVx=s3/s1を利用して整理すれば、数式:τVy=(s6-τVx*S2)/s5と決定されもする。
ここで、グラジエント値
は、結果値であるVx(i,j)とVy(i,j)とを変化させずにスケーリングされもする。ただし、オーバーフローが発生せず、四捨五入エラーが発生しない場合を前提にする。
Vx(i,j)及びVy(i,j)を求める過程において、0、または非常に小さい値によって乗算演算が行われることを防止するために、調節パラメータr及びmが導入されもする。
便宜上、Vx(i,j)及びVy(i,j)が、図3Aに図示された方向と反対であると仮定する。例えば、図3Aに図示されたVx(i,j)及びVy(i,j)の方向に基づいて、数式(24)によって導出されたVx(i,j)及びVy(i,j)は、図3Aの方向と反対に決定されたVx(i,j)及びVy(i,j)と、互いにその値に符号差だけあるのみで大きさが同一でもある。
第1変位対応ピクセルPA’及び第2変位対応ピクセルPB’は、以下の数式(26)のようにも決定される。このとき、PA’及びPB’は、ローカルテーラーエクスパンションの一次線形タームを利用しても決定される。
第1変位対応ピクセルPA’と第2変位対応ピクセルPB’との差値△i’j’は、以下の数式(27)のようにも決定される。
第1変位対応ピクセルPA’と第2変位対応ピクセルPB’との差値△i’j’が最小になるようにするx軸方向の変位ベクトルVx、y軸方向の変位ベクトルVyは、以下の数式(28)のように、差値△の二乗和であるΦ(Vx,Vy)を利用しても決定される。すなわち、数式(29)のように、Φ(Vx,Vy)が最小である場合のVx,Vyとも決定され、それは、Φ(Vx,Vy)の極大値または極小値を利用しても決定される。
Φ(Vx,Vy)は、Vx、Vyを媒介変数にする関数であり、極大値または極小値は、以下の数式(30)のように、Φ(Vx,Vy)をVx及びVyに対して偏微分して0になる値を計算することによっても決定される。
すなわち、Vx,Vyは、Φ(Vx,Vy)値を最小にするVx及びVyとも決定される。前記最適化問題を解決するために、まず垂直方向に最小化が行われて、その後、水平方向に最小化が行われる。前記最小化により、Vxは、以下の数式(31)のようにも決定される。
ここで、clip3(x,y,z)関数は、z<xであるならば、xであり、z>yであるならば、yであり、x<z<yであるならば、zを出力する関数である。数式(31)によれば、s1+r>mである場合、Vxは、clip3(-thBIO,thBIO,-s3/(s1+r))であり、s1+r>mではない場合、Vxは、0でもある。
前記最小化により、Vyは、以下の数式(32)のようにも決定される。
ここで、clip3(x,y,z)関数は、z<xであるならば、xであり、z>yであるならば、yであり、x<z<yであるならば、zを出力する関数である。数式(32)によれば、s5+r>mである場合、Vyは、clip3(-thBIO,thBIO,-(s6-Vx*s2)/2/(s5+r)であり、s5+r>mではない場合、Vyは、0でもある。
このとき、s1、s2、s3及びs5は、下記数式(33)のようにも決定される。s4は、s2と同一値を有することができる。
前述のように、rとmは、乗算演算結果値が0であるか、あるいはそれより小さい値になることを避けるために導入された調節パラメータであり、入力ビデオの内部ビットデプスdに基づいて、以下の数式(34)のようにも決定される。すなわち、調節パラメータmは、最小許容される分母の値(minimum allowed denominator)であり、調節パラメータrは、0のグラジエント値を有する場合、分母を0にして除算を行うことを防止するために導入された調節パラメータでもある。
Vx及びVyは、±thBIOの上限及び下限を有することができる。その理由は、ノイズや、不規則的な動きのために、ピクセルグループ単位の動き補償を信頼することができない場合があるために、Vx及びVyは、特定臨界値thBIOによってもクリッピングされる。調節パラメータthBIOは、全ての参照ピクチャの方向が同一方向であるか否かということに基づいても決定される。例えば、全ての参照ピクチャの方向が同一方向である場合、調節パラメータthBIOは、12^(d-8-1)または12*2^(14-d)と決定されもする。もし全ての参照ピクチャの方向が互いに異なる方向である場合、thBIOは、12^(d-8-1)/2または12*2^(13-d)と決定されもする。
ただ、それに制限されるものではなく、調節パラメータr,m及びthBIOは、ビットストリームから獲得された調節パラメータについての情報に基づいて、その値が決定されもする。このとき、該調節パラメータについての情報は、スライスヘッダ、ピクチャパラメータセット、シーケンスパラメータセット、多様な形態のハイレベルシンタックスキャリアにも含まれる。
また、時間的に異なる双方向予測の利用可能いかんにより、調節パラメータが決定されもする。例えば、時間的に異なる双方向予測が利用可能である場合のthBIOdiffが、時間的に互いに同じである双方向予測が利用可能である場合、thBIOsameより大きく、thBIOdiffの大きさは、thBIOsameサイズの2倍でもある。
図8Bは、一実施形態により、ピクセルグループに係わる水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程について説明するための参照図である。
図8Bを参照すれば、所定サイズのウィンドウ(Ωij)810は、現在ブロックで双方向予測されるピクセルではない複数のピクセルのKxKサイズのピクセルグループ820を中心にし、(2M+K+1)*(2N+K+1)(M、Nは、整数である)の大きさを有する。
このとき、図8Aと異なる点は、ウィンドウサイズが大きくなるという点であり、それを除いては、同一方式でもって、ピクセルグループに係わる水平方向変位ベクトル及び垂直方向変位ベクトルを決定することができる。
図8Cは、一実施形態により、ピクセルに係わる水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程について説明するための参照図である。
図8Cを参照すれば、ビデオ復号装置100は、ピクセルそれぞれについて、水平方向変位ベクトル及び垂直方向変位ベクトルを決定することができる。従って、ピクセルそれぞれの単位時間当たり変位ベクトル835を決定することができる。このとき、ピクセルそれぞれの変位ベクトル835の水平方向変位ベクトルVx[i,j]及び垂直方向変位ベクトルVy[i,j]は、下記数式(35)によっても決定される。ここで、i,jは、ピクセルの座標x成分、座標y成分を意味する。ここで、σ1[i,j]、σ2[i,j]σ3[i,j]、σ5[i,j]及びσ6[i,j]は、それぞれ数式(33)のs1、s2、s3、s5及びs6でもある。
図8Dは、一実施形態により、ピクセルグループに係わる水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程について説明するための参照図である。
図8Dを参照すれば、ビデオ復号装置100は、ピクセルグループ840それぞれに含まれたピクセルそれぞれに対して、σ1[i,j]、σ2[i,j]、σ3[i,j]、σ5[i,j]及びσ6[i,j]を、前記数式(35)のように決定することができる。
ビデオ復号装置100は、ピクセルグループ840に係わる水平方向変位ベクトルVx[i,j]を、ピクセルのσ1[i,j]及びσ3[i,j]を利用し、以下の数式(36)のように決定することができる。ここで、i,jは、ピクセルグループの左側上端座標のx成分、y成分を意味する。
ビデオ復号装置100は、水平方向変位ベクトルを算出する方式と類似した方式で、ピクセルグループの垂直方向変位ベクトルを算出することができる。すなわち、ピクセルグループの垂直方向変位ベクトルを算出するために、ピクセルそれぞれに対して、分母で利用される変数を分母に加え、ピクセルグループの垂直方向変位ベクトルを算出するために、ピクセルそれぞれに対して、分子で利用される変数を分子に加えることにより、ピクセルグループの垂直方向変位ベクトルが算出されもする。
ビデオ復号装置100は、ピクセルのσ2[i,j]、σ5[i,j]、σ6[i,j]及びVx[i,j]を利用し、ピクセルグループ840に係わる垂直方向変位ベクトルVy[i,j]を、以下の数式(37)のように決定することができる。ここで、該水平方向変位ベクトルVx[i,j]は、数式(36)によって決定された値でもある。
図8Cに図示されているように、各ピクセルごとに、水平方向変位ベクトル及び垂直方向変位ベクトルが決定される場合、各ピクセルごとに、2回の乗算演算が行われなければならない。しかし、図8Dに図示されているように、各ピクセルグループごとに、水平方向変位ベクトル及び垂直方向変位ベクトルが決定される場合、ピクセルグループの大きさをLxL(Lは、整数である)とすれば、ピクセル当たり2/(L^2)の乗算演算が行われなければならない。従って、ピクセルグループ別に、水平方向変位ベクトル及び垂直方向変位ベクトルが決定される場合、必要な乗算演算の回数が減るために、ハードウェア複雑度が低減され、演算時間が短くもなる。
一方、先に図8Dを参照し、ピクセルグループが2x2サイズを有する場合を仮定して詳細に説明したが、それに制限されるものではなく、ピクセルグループがLxL(Lは、整数である)サイズを有することができる。
このとき、ピクセルグループの大きさLは、下記数式(38)のようにも決定される。W、Hは、それぞれ現在ブロックの幅、高さを意味する。
ビデオ復号装置100が、ウィンドウサイズによるブロック拡張と共に、ピクセル単位動き補償を行う場合、ピクセルグループ単位の動き補償を行う場合、それぞれの場合に係わるメモリアクセス回数及び乗算演算回数ほど、メモリアクセス動作及び乗算演算が、ビデオ復号装置100において、下記表1のようにも行われる。このとき、信号フィルタの長さTが8であり、グラジエントフィルタの長さTが6であり、
ピクセルグループの大きさがLxLであり、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズ2M+1が5であると仮定する。
すなわち、ビデオ復号装置100は、ピクセルグループ単位の動き補償を行う場合、ピクセルグループの大きさに対応する値であるL^2ほど除した値ほど除算演算の回数を減少させ、除算演算を行うことができる。
図9Aは、一実施形態により、フィルタリング遂行後、オフセットを加え、逆スケーリングを行うことにより、水平方向または垂直方向のグラジエント値を決定する過程について説明するための図面である。
図9Aを参照すれば、ビデオ復号装置100は、所定の方向成分が整数位置であるピクセルに対し、第1一次元フィルタ及び第2一次元フィルタを利用したフィルタリングを行い、水平方向または垂直方向のグラジエント値を決定することができる。ただし、所定の方向成分が整数位置であるピクセルに対し、第1一次元フィルタまたは第2一次元フィルタを利用してフィルタリングを行った値が、所定の範囲を外れもする。そのような現象をオーバーフロー現象と言う。一次元フィルタの係数は、不正確であって複雑な小数演算の代わりに、整数演算を行うために、整数としても決定される。一次元フィルタの係数が整数として決定されるためにスケーリングされもする。スケーリングされた一次元フィルタの係数を利用してフィルタリングが行われれば、整数演算が可能になる一方、スケーリングされていない一次元フィルタを利用してフィルタリングが行われた場合と比較するとき、フィルタリングが行われた値の大きさが大きくもなり、オーバーフロー現象が発生しもする。従って、該オーバーフロー現象を防止するために、一次元フィルタを利用してフィルタリングが行われた後に逆スケーリングが行われもする。このとき、該逆スケーリングは、右側に逆スケーリングビット数ほど右側にビットシフティングを行うことを含んでもよい。該逆スケーリングビット数は、計算の正確度を最大化しながらも、フィルタリング演算のためのレジスタの最大ビット数、及びフィルタリング演算結果を保存する臨時バッファ(temporal buffer)の最大ビット数を考慮しても決定される。特に、該逆スケーリングビット数は、内部ビットデプス(internal bit depth)、補間フィルタのためのスケーリングビット数、及びグラジエントフィルタのためのスケーリングビット数に基づいても決定される。
以下では、水平方向のグラジエント値を決定するために、まず垂直方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向の補間フィルタリング値を生成し、その後、水平方向のグラジエントフィルタを利用し、前記垂直方向の補間フィルタリング値に対して、フィルタリングが行われる過程において、逆スケーリングを行う内容について説明する。
前述の数式(12)によれば、ビデオ復号装置100は、水平方向のグラジエント値を決定するために、まず整数位置のピクセルに対して、垂直方向の補間フィルタを利用してフィルタリングを行うことができる。このとき、shift1は、b-8とも決定される。このとき、bは、入力映像の内部ビットデプスでもある。以下、表2を参照し、前記shift1に基づいて、実際逆スケーリングが行われる場合、レジスタのビットデプス(Reg Bitdepth)及び臨時バッファのビットデプス(Temp Bitdepth)について説明することにする。
このとき、以下の数式(39)により、表2にある変数の値が決定されもする。
ここで、Min(I)は、内部ビットデプスによって決定されるピクセル値(I)の最小値を意味し、Max(I)は、内部ビットデプスによって決定されるピクセル値(I)の最大値を意味する。FilterSumPosは、正数のフィルタ係数の和の最大値を意味し、FilterSumNegは、負数のフィルタ係数の和の最小値を意味する。
例えば、図7Cに開示された1/4ペル単位のグラジエントフィルタfracFilterが利用されることを仮定する場合、FilterSumPosは、88でもあり、FilterSumNegは、-24でもある。
Ceiling(x)関数は、エラーxに対して、xより大きいか、あるいはそれと同じである整数のうち最も小さい整数を出力する関数でもある。offset1は、shift1を利用して逆スケーリングを行う過程において発生しうる四捨五入エラーを防止するために、フィルタリングが行われた値に加えられるオフセット値であり、offset1は、2^(shift1-1)とも決定される。
表2を参照すれば、内部ビットデプスbが8である場合、レジスタのビットデプス(RegBitdpeth)は、16であり、内部ビットデプスbが9である場合、レジスタのビットデプスは、17であり、以下、内部ビットデプスbが10、11、12及び16である場合、レジスタのビットデプスは、18、19、24でもある。もしフィルタリングを行うために利用されるレジスタが、32ビットのレジスタである場合、表2にあるレジスタのビットデプスは、いずれも32を超えないために、オーバーフロー現象が発生しなくなる。
同様に、内部ビットデプスbが、8、9、10,11、12及び16である場合、臨時バッファのビットデプス(TempBitDepth)は、いずれも16である。もしフィルタリングが行われ、逆スケーリングが行われた値を保存するために利用される臨時バッファが16ビットバッファである場合、表2にある臨時バッファのビットデプスは、16であり、いずれも16を超えないために、オーバーフロー現象が発生しなくなる。
数式(12)によれば、ビデオ復号装置100は、水平方向のグラジエント値を決定するために、まず垂直方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向の補間フィルタリング値を生成し、その後、数式(13)により、水平方向のグラジエントフィルタを利用し、前記垂直方向の補間フィルタリング値に対してフィルタリングを行うことができる。このとき、shift2は、p+q-shift1と決定されもする。ここで、pは、図7Cに図示されたフィルタ係数を含む補間フィルタに対してスケーリングされたビット数を意味し、qは、図7Aに図示されたフィルタ係数を含むグラジエントフィルタに対してスケーリングされたビット数を意味する。例えば、pは、6であり、qは、4でもあり、従って、shift2=18-bでもある。
shift2が前述のように決定される理由は、フィルタ係数がアップスケールされた場合、及びフィルタ係数がアップスケーリングされていない場合、最終フィルタリング結果値が同一であるために、逆スケーリングされるビット数の総和であるshift1+shift2は、フィルタに対してアップスケーリングされたビット数の和(p+q)と同一になければならないためである。
以下、表3を参照し、前記shift2に基づいて、実際逆スケーリングが行われる場合、レジスタのビットデプス(Reg Bitdepth)、及び臨時バッファのビットデプス(Temp Bitdepth)について説明することにする。
このとき、以下の数式(40)により、表3にある変数の値が決定されもする。
ここで、TempMaxは、表3のTempMaxを意味し、TempMinは、表3のTempMinの意味する。FilterSumPosは、正数のフィルタ係数の和の最大値を意味し、FilterSumNegは、負数のフィルタ係数の和の最小値を意味する。例えば、図7Cに開示された1/4ペル単位のグラジエントフィルタgradFilterが利用されると仮定する場合、FilterSumPosは、68でもあり、FilterSumNegは、-68でもある。
offset2は、shift2を利用して逆スケーリングを行う過程において発生しうる四捨五入エラーを防止するために、フィルタリングが行われた値に加えられるオフセット値であり、offset2は、2^(shift2-1)とも決定される。
shift1及びshift2は、前述のようにも決定されるが、それに制限されるものではなく、shift1とshift2との和が、フィルタに対するスケーリングビット数の和と同一になるように、多様にshift1及びshift2が決定されもする。このとき、オーバーフロー現象が発生しないことを前提に、shift1値及びshift2値が決定されもする。shift1及びshift2は、入力映像の内部ビットデプス、フィルタに対するスケーリングビット数に基づいても決定される。
ただし、必ずしもshift1とshift2との和が、フィルタに対するスケーリングビット数の和と同一であるように、shift1及びshift2を決定しなければならないものではない。例えば、shift1は、d-8とも決定されるが、shift2は、固定数とも決定される。
shift1は、以前と同一であり、shift2が固整数である7である場合、先立って言及した表3において、OutMax、OutMin及びTemp Bitdepthが異なりもする。以下、表4を参照し、臨時バッファのビットデプス(Temp Bitdepth)について説明することにする。
表3と異なり、表4の場合、全てのbにおいて、臨時バッファのビットデプス(Temp Bitdepth)が16と同一であり、もし16ビット臨時バッファを利用して結果データを保存する場合を仮定すれば、臨時バッファのビットデプス(Temp Bitdepth)が16より小さいために、全ての入力映像の内部ビットデプスに対してオーバーフローが発生しなくなる。一方、表3を参照すれば、入力映像の内部ビットデプスが12及び16である場合、もし16ビット臨時バッファを利用して結果データを保存する場合を仮定すれば、臨時バッファのビットデプス(Temp Bitdepth)が16より大きいために、オーバーフロー現象が発生してしまう。
shift2が固定数である場合、スケーリングされたフィルタ係数を利用せず、フィルタリングが行われた場合の結果値と、スケーリングされたフィルタ係数を利用してフィルタリングが行われてから逆スケーリングが行われた場合の結果値とが異なりもする。その場合、追加して逆スケーリングされなければならないということは、当業者であるならば、容易に理解することができるであろう。
先に、水平方向のグラジエント値を決定するために、まず垂直方向の補間フィルタを利用し、整数位置のピクセルに対してフィルタリングを行い、垂直方向の補間フィルタリング値を生成し、その後、水平方向のグラジエントフィルタを利用し、前記垂直方向の補間フィルタリング値に対して、フィルタリングが行われる過程において、逆スケーリングを行う内容について説明したが、それに制限されるものではなく、多様な一次元フィルタ組み合わせにより、水平方向及び垂直方向のグラジエント値を決定するために、所定の方向成分が整数であるピクセルに対してフィルタリングが行われる場合、類似して、逆スケーリングを行うことができるということは、当業者は容易に理解することができるであろう。
図9Bは、他の実施形態により、フィルタリング遂行後、オフセットを加え、逆スケーリングを行うことにより、水平方向または垂直方向のグラジエント値を決定する過程について説明するための図面である。
図9Bを参照すれば、ビデオ復号装置100は、参照ピクチャの小数ピクセル及び整数ピクセルを入力にし、フィルタリングを行うことができる。ここで、該参照ピクチャの小数ピクセルは、参照ピクチャの整数ピクセルに対して、水平方向及び垂直方向の一次元フィルタを適用して決定された値であると仮定する。
ビデオ復号装置100は、所定方向の位置成分が小数であるピクセル、及び整数ピクセルに対して、水平方向または垂直方向の一次元フィルタを利用したフィルタリングを行い、水平方向または垂直方向のグラジエント値を決定することができる。ただし、所定の方向位置成分が小数であるピクセル、及び整数ピクセルに対し、第1一次元フィルタを利用してフィルタリングを行った値が、所定の範囲を外れもする。そのような現象をオーバーフロー現象と言う。一次元フィルタの係数は、不正確であって複雑な小数演算の代わりに、整数演算を行うために、整数に決定されもする。一次元フィルタの係数が整数として決定されるためにもスケーリングされる。スケーリングされた一次元フィルタの係数を利用してフィルタリングが行われれば、整数演算が可能になる一方、スケーリングされていない一次元フィルタを利用してフィルタリングが行われた場合と比較するとき、フィルタリングが行われた値の大きさが大きくもなり、オーバーフロー現象が発生しもする。従って、オーバーフロー現象を防止するために、一次元フィルタを利用してフィルタリングが行われた後に逆スケーリングが行われもする。このとき、該逆スケーリングは、右側に逆スケーリングビット数(shift1)ほど右側にビットシフティングを行うことを含んでもよい。該逆スケーリングビット数は、計算の正確度を最大化しながらも、フィルタリング演算のためのレジスタの最大ビット数及びフィルタリング演算結果を保存する臨時バッファの最大ビット数を考慮しても決定される。特に、逆スケーリングビット数は、内部ビットデプス(internal bit depth)、及びグラジエントフィルタのためのスケーリングビット数に基づいても決定される。
図9Cは、現在ブロックに対して、ピクセル単位動き補償を行う過程において、水平方向変位ベクトル及び垂直方向変位ベクトルを決定するために必要な範囲について説明するための図面である。
図9Cを参照すれば、現在ブロックに対応する参照ブロック910に対し、ピクセル単位動き補償を行う過程において、ビデオ復号装置100は、参照ブロック910の左側上端に位置するピクセル915周辺のウィンドウ920を利用し、ピクセル915での水平方向の単位時間当たり変位ベクトル、及び垂直方向の単位時間当たり変位ベクトルを決定することができる。このとき、参照ブロック910を外れる範囲に位置したピクセルのピクセル値及びグラジエント値を利用し、水平方向または垂直方向の単位時間当たり変位ベクトルを決定することができる。同様の方式により、参照ブロック910の境界に位置したピクセルに対し、水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程において、ビデオ復号装置100は、参照ブロック910を外れる範囲に位置したピクセルのピクセル値及びグラジエント値を決定することになる。従って、ビデオ復号装置100は、参照ブロック910より大きい範囲のブロック925を利用し、水平方向変位ベクトル、及び垂直方向の単位時間当たり変位ベクトルを決定することができる。例えば、現在ブロックの大きさがAxBであり、ピクセル別ウィンドウサイズが、(2M+1)x(2N+1)であるとするならば、水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための範囲の大きさは、(A+2M)x(B+2N)でもある。
図9D及び図9Eは、多様な実施形態による、ピクセル単位の動き補償を行う過程において利用される領域の範囲について説明するための図面である。
図9Dを参照すれば、ピクセル単位の動き補償を行う過程において、ビデオ復号装置100は、参照ブロック930の境界に位置したピクセルのウィンドウの大きさによって拡張された範囲のブロック935を基に、参照ブロック930に含まれたピクセル別の水平方向変位ベクトル、及び垂直方向単位時間当たり変位ベクトルを決定することができる。ただし、水平方向及び垂直方向の単位時間当たり変位ベクトルを決定する過程において、ビデオ復号装置100は、ブロック935に位置したピクセルのピクセル値及びグラジエント値が必要であり、このとき、前述のピクセル値及びグラジエント値を求めるために、補間フィルタまたはグラジエントフィルタを利用することができる。ブロック935の境界ピクセルに対し、補間フィルタまたはグラジエントフィルタを利用する過程において、周辺ピクセルのピクセル値を利用することができ、従って、ブロック境界外に位置するピクセルを利用することができる。従って、補間フィルタまたはグラジエントフィルタのタップ個数から1ほど差し引いた値に追加拡張された範囲のブロック940を利用し、ピクセル単位動き補償が行われもする。従って、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズが、(2M+1)x(2M+1)であり、補間フィルタまたはグラジエントフィルタ長がTである場合、(N+2M+T-1)x(N+2M+T-1)でもある。
図9Eを参照すれば、ピクセル単位の動き補償を行う過程において、ビデオ復号装置100は、参照ブロック945の境界に位置するピクセルのウィンドウの大きさによって参照ブロックを拡張せず、参照ブロック945内に位置するピクセルのピクセル値及びグラジエント値を利用し、ピクセル別の水平方向変位ベクトル、及び垂直方向単位時間当たり変位ベクトルを決定することができる。具体的には、ビデオ復号装置100が、参照ブロックを拡張せず、水平方向単位時間当たり変位ベクトル、及び垂直方向単位時間当たり変位ベクトルを決定するための過程は、図9Eを参照して説明する。ただし、ピクセルのピクセル値及びグラジエント値を求めるために、参照ブロック945の補間フィルタまたはグラジエントフィルタを利用することになり、拡張されたブロック950を利用し、ピクセル単位動き補償が行われもする。従って、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズが、(2M+1)x(2M+1)であり、補間フィルタ長またはグラジエントフィルタ長がTである場合、(N+T-1)x(N+T-1)でもある。
図9Fは、参照ブロックを拡張せず、水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための過程について説明するための図面である。
図9Fを参照すれば、参照ブロック955の境界外に位置するピクセルの場合、ビデオ復号装置100は、そのピクセルの位置を、参照ブロック955の境界内に位置するピクセルのうち最も近くの位置において利用可能なピクセルの位置に調整し、境界外に位置するピクセルのピクセル値及びグラジエント値は、最も近くの位置において利用可能なピクセルのピクセル値及びグラジエント値とも決定される。このとき、ビデオ復号装置100は、参照ブロック955の境界外に位置するピクセルの位置を、数式:
及び数式:
により、最も近くの位置において利用可能なピクセルの位置に調整することができる。
ここで、i’は、ピクセルのx座標値、j’は、ピクセルのy座標値であり、H及びWは、参照ブロックの高さ及び幅を意味する。このとき、参照ブロックの左上端の位置を(0,0)と仮定した。もし参照ブロックの左上端の位置が、(xP,yP)であるならば、最終ピクセルの位置は、(i’+xP,j’+yP)でもある。
また図9Dを参照すれば、ピクセル別ウィンドウの大きさによって拡張されたブロック935において、参照ブロック930の境界外部に位置したピクセルの位置は、参照ブロック930境界内部に隣接したピクセルの位置に調整され、図9Eのように、ビデオ復号装置100は、参照ブロック945のピクセル値及びグラジエント値でもって、参照ブロック945内のピクセル別の水平方向変位ベクトル、及び垂直方向単位時間当たり変位ベクトルを決定することができる。
従って、ビデオ復号装置100は、ピクセル別ウィンドウ大きさによって参照ブロック945を拡張せず、ピクセル単位動き補償を行うことにより、ピクセル値参照のためのメモリアクセスの回数が低減し、乗算演算の回数が低減し、演算の複雑度が低減されもする。
ビデオ復号装置100が、(HEVC標準によって動作するときのように)ブロック単位の動き補償を行う場合、ウィンドウサイズによるブロック拡張と共にピクセル単位動き補償を行う場合、ブロック拡張なしに、ピクセル単位動き補償を行う場合、それぞれの場合に係わるメモリアクセス回数及び乗算演算回数ほどメモリアクセス動作及び乗算演算が、ビデオ復号装置100において、下記表5のように遂行されもする。このとき、信号(補間)フィルタ長が8であり、グラジエントフィルタ長が6であり、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズ2M+1が5であると仮定する。
HEVC標準によるブロック単位の動き補償においては、サンプル一つに対して8タップの補間フィルタを利用するので、8個の周辺サンプルが必要になり、従って、参照ブロックの大きさがNxNである場合、8タップ補間によれば、(N+7)x(N+7)個の参照サンプルが必要になり、双方向動き予測補償であるために、2つの参照ブロックを利用することになるので、HEVC標準によるブロック単位の動き補償においては、表4のように、2*(N+7)x(N+7)回のメモリアクセスが必要である。ブロック拡張と共に、ピクセル単位動き補償を行う場合、M=2であるならば、拡張された(N+4)x(N+4)サイズのブロックに対し、8タップの補間フィルタまたはグラジエントフィルタを利用し、ピクセル単位動き補償を行えば、(N+4+7)x(N+4+7)個の参照サンプルが必要になり、双方向動き予測補償であるために、2つの参照ブロックを利用することになるので、最終的に、ブロック拡張と共に行われるピクセル単位動き補償においては、表5のように、2*(N+4+7)x(N+4+7)回のメモリアクセスが必要である。
ブロック拡張なしに、ピクセル単位動き補償を行う場合、ブロックの拡張がないために、HEVC標準によるブロック単位の動き補償のように、(N+7)x(N+7)個の参照サンプルが必要になり、双方向動き予測補償であるために、2つの参照ブロックを利用することになるので、ブロック拡張なしに行われるピクセル単位動き補償においては、表5のように、2*(N+7)x(N+7)回のメモリアクセスが必要である。
一方、HEVC標準によるブロック単位の動き補償においては、サンプル一つに対して8タップの補間フィルタを利用するので、最初水平方向の補間を行うのに必要なサンプルは、(N+7)xNサンプルである。2番目垂直方向の補間を行うのに必要なサンプルは、NxNサンプルである。一方、8タップの補間フィルタ当たり必要な乗算演算の回数は、8であり、双方向動き予測補償であるために、2つの参照ブロックを利用することになるので、HEVC標準によるブロック単位の動き補償においては、表5のように、2*8*{(N+7)*N+N*N)回の乗算演算が必要である。
ブロック拡張と共にピクセル単位動き補償を行う場合、ピクセル単位動き補償を行うために、ブロックの大きさが拡張されるために、拡張された(N+4)x(N+4)サイズのブロックに対して8タップの補間フィルタを利用し、小数ピクセル単位の位置にあるピクセル値を決定するためには、表5のように、総2*8*{(N+4+7)x(N+4)+(N+4)x(N+4)}回の乗算演算が必要である。
一方、ブロック拡張と共にピクセル単位動き補償を行う場合、水平方向または垂直方向のグラジエント値を決定するために、6タップのグラジエントフィルタ、及び6タップの補間フィルタを利用することになる。ブロックの大きさが拡張されるために、拡張された(N+4)x(N+4)サイズのブロックに対し、6タップの補間フィルタ及びグラジエントフィルタを利用し、グラジエント値を決定するためには、表5のように、総2*6*{(N+4+5)x(N+4)+(N+4)x(N+4)}*2回の乗算演算が必要である。
ブロック拡張なしにピクセル単位動き補償を行う場合、ブロックの拡張がないために、HEVC標準によるブロック単位の動き補償のように、(N+7)x(N+7)個の参照サンプルが必要になり、双方向動き予測補償であるために、2つの参照ブロックを利用することになるので、ブロック拡張なしに行われるピクセル単位動き補償においては、NxNサイズのブロックに対し、8タップの補間フィルタを利用し、小数ピクセル単位の位置にあるピクセル値を決定するために、表5のように、2*8*{(N+7)xN+NxN}回の乗算演算が必要である。
一方、ブロック拡張なしにピクセル単位動き補償を行う場合、水平方向または垂直方向のグラジエント値を決定するために、6タップのグラジエントフィルタ、及び6タップの補間フィルタを利用することになる。NxNサイズのブロックに対し、6タップの補間フィルタ及びグラジエントフィルタを利用し、グラジエント値を決定するためには、表5のように、総2*6*{(N+5)xN+NxN}*2回の乗算演算が必要である。
図9Gないし図9Iは、他の実施形態により、参照ブロックを拡張せず、水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための過程について説明するための図面である。
先に、図9Dを参照しながら説明した通り、ピクセル単位の動き補償を行う過程において、ビデオ復号装置100は、参照ブロック930の境界に位置したピクセルのウィンドウの大きさによって拡張された範囲のブロック935を基に、参照ブロック930に含まれたピクセル別の水平方向変位ベクトル、及び垂直方向単位時間当たり変位ベクトルを決定することができる。例えば、ウィンドウサイズが、(2M+1)x(2M+1)である場合、ビデオ復号装置100は、参照ブロック930の境界に位置したピクセルにウィンドウが適用されれば、Mほど参照ブロック930をはずれたピクセルのピクセル値及びグラジエント値を参照し、ピクセル別の水平方向変位ベクトル及び垂直方向変位ベクトルを決定することができる。
以下では、他の実施形態により、ビデオ復号装置100が参照ブロック外のピクセルのピクセル値及びグラジエント値を参照せず、現在ブロックに対応する参照ブロックのピクセル値及びグラジエント値のみを利用し、ピクセル別の水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値(数式(33)のs1ないしs6)を決定する方法について説明する。ここで、該ウィンドウサイズは、5x5であると仮定する。便宜上、現在ピクセルを中心に、横方向に位置するピクセルについて説明する。現在ピクセルを中心に縦方向に位置するピクセルについても、同一方式によっても加重値が決定されるということは、当業者であるならば、容易に理解することができるであろう。
ビデオ復号装置100は、水平方向または垂直方向の変位ベクトルを決定しようとする現在ピクセルを中心にするウィンドウに含まれたピクセル別に、ピクセル値P0(i’,j’及びP1(i’,j’)、水平方向または垂直方向グラジエント値
及び参照ピクチャと現在ピクチャとのPOC差τ0,τ1に係わる関数に対して演算を行い、ピクセル別の水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値(数式(33)のs1ないしs6)は、ピクセル別に行われた演算の結果値を合わせて決定される。
このとき、ピクセル別に同じ加重値を有するようにして、ピクセル別に行われた演算の結果値に加重値を乗じ、その値を合わせ、ピクセル別の水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値s1ないしs6を決定することができる。
図9Gを参照すれば、現在ブロック960内において、現在ピクセル961に対する水平方向及び垂直方向変位ベクトルを決定する過程において、ビデオ復号装置100は、ウィンドウ内ピクセルに対し、同一値1を有するように加重値を決定することができる。ビデオ復号装置100は、ピクセル別に演算された結果値に、各ピクセルに対して決定された加重値をそれぞれ乗じ、その結果値をいずれも加え、現在ピクセルに対し、水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値s1ないしs6を決定することができる。
図9Hを参照すれば、現在ブロック970内において、現在ピクセル971が、現在ブロック970の境界近くにすぐ隣接する場合、ビデオ復号装置100は、現在ブロック970の境界外部に位置するブロック970の境界に接するピクセルの加重値は、3に決定することができる。ビデオ復号装置100は、それ以外のピクセル973の加重値を1に決定することができる。
図9Hを参照すれば、現在ブロック980内において、現在ピクセル981が現在ブロック980の境界近くに位置する場合(現在ピクセルが、境界から1ピクセルほど離れた場合)、ビデオ復号装置100は、現在ブロック980の境界外部に位置するピクセル982に対する加重値は、0に決定し、現在ブロック980の境界に接するピクセル983の加重値は、2に決定することができる。ビデオ復号装置100は、それ以外のピクセル984の加重値を1に決定することができる。
図9Gないし図9Iを参照して説明したように、ビデオ復号装置100は、現在ピクセルの位置により、ウィンドウ内ピクセル別で加重値を異なって付与することにより、現在ブロックに対応する参照ブロック外部に位置するピクセルのピクセル値及びグラジエント値を利用せず、参照ブロック内部に位置するピクセルのピクセル値及びグラジエント値を利用し、ピクセル別水平方向及び垂直方向の変位ベクトルを決定するための値s1ないしs6を決定することができるようになる。
図9Jは、一実施形態により、ブロックの拡張なしに、参照ブロックのピクセル値及びグラジエント値を参照し、上下左右に、指数平滑技法を適用することにより、ピクセル別の水平方向変位ベクトル及び垂直方向変位ベクトルを決定する過程について説明するための図面である。
図9Jを参照すれば、ビデオ復号装置100は、現在ブロック990に含まれたピクセル別に、対応参照ブロックに含まれた対応参照ピクセルのピクセル値P0(i’,j’)及びP1(i’,j’)、対応参照ブロックのピクセルに含まれた対応参照ピクセルの水平方向または垂直方向グラジエント値
及び参照ピクチャと現在ピクチャとのPOC差τ0,τ1に係わる関数について演算を行うことができる。
ビデオ復号装置100は、現在ピクセルの関数演算遂行結果値と、周辺ピクセルの関数演算遂行結果値とを合わせ、現在ピクセルの水平方向及び垂直方向の変位ベクトルを決定するための値s1ないしs6(σk(k=1,2,3,4,5,6))が決定されもする。すなわち、現在ピクセルの水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値s1ないしs6は、下記数式(41)のように、現在ピクセル及び周辺ピクセルについての演算遂行値の加重平均によっても表現される。このとき、ウィンドウΩに含まれたピクセルの位置座標は、(i’,j’)である。また、W[i’,j’]は、ウィンドウΩに含まれたピクセルに係わる加重値を意味する。ここで、ウィンドウΩの大きさは、(2M+1)x(2M+1)(Mは、整数である)でもある。また、関数Ak[i’,j’]は、ウィンドウΩに含まれた(i’,j’)位置のピクセルに係わる対応参照ピクセルのピクセル値P0(i’,j’)及びP1(i’,j’)(I[i’,j’](0,1))、対応参照ブロックのピクセルに含まれた対応参照ピクセルの水平方向または垂直方向グラジエント値
及び参照ピクチャと現在ピクチャとのPOC差τ0,τ1に係わる関数値でもある。
例えば、ビデオ復号装置100は、現在ピクセルの関数演算遂行結果値と、現在ピクセルを中心にするウィンドウ内ピクセルの関数演算遂行結果値とをそのまま合わせ、現在ピクセルの水平方向変位ベクトル及び垂直方向変位ベクトルを決定するための値s1ないしs6を決定することができる。このとき、ウィンドウサイズが5x5であるとするならば、現在ブロック990の境界に位置するピクセル991の水平方向変位ベクトル及び垂直方向変位ベクトルを決定するために必要な値を決定するためには、ピクセル991を中心にするウィンドウ992内のピクセルの演算遂行値を参照しなければならないために、現在ブロック990より上下左右方向に2ピクセルほど大きい拡張ブロック996のピクセルについて、関数演算遂行結果値を参照しなければならない。一方、関数Ak[i’,j’]の値は、下記のような表6のようにも決定される。
ここでI
x
(0)[i’,j’]、I
x
(1)[i’,j’]は、それぞれ
でもあり、Iy
(0)[i’,j’]、Iy
(1)[i’,j’]は、それぞれ
でもあり、I(0)[i’,j’]及びI(1)[i’,j’]は、それぞれP0(i’,j’)及びP1(i’,j’)でもある。
ビデオ復号装置100は、Ak[i’,j’]に係わる加重平均を決定するために、Ak[i’,j’]に対して、上下左右方向に指数平滑技法を適用し、平均化を行うことができる。
図9Jを参照すれば、まずビデオ復号装置100は、左右方向に、Ak[i’,j’]に対して指数平滑技法を適用することができる。以下では、ビデオ復号装置100は、左右方向に、Ak[i’,j’]に対して指数平滑技法を適用し、Ak[i’,j’]に係わる加重平均値を決定する内容について詳細に説明する。
まず、ビデオ復号装置100は、指数平滑技法を適用し、右側方向に平均化させる内容について説明する。ビデオ復号装置100は、下記のような擬似コード(pseudo code)1により、Ak[i’,j’]に対し、右側方向に平均化を行うことができる。このとき、Hは、現在ブロックの高さ、Wは、現在ブロックの幅を意味し、Strideは、一次元配列において、1本のラインと次のラインとの距離を意味する。すなわち、二次元配列A[i,j]は、一次元配列A[i+j*Stride]によっても表現される。
[擬似コード1]
例えば、現在ブロックの大きさが4x4であるとし、A[0]、A[1]、A[2]及びA[3]が、a、b、c、dであるとするならば、前記擬似コード1によるプロセスの結果値A’[0]は、2a、A’[1]は、A[0]/2+b=a+bでもあり、A’[2]は、A[1]/2+c=a/2+b/2+cでもあり、A’[3]は、A[2]/2+d=a/4+b/4+c/2+dでもある。
以下では、ビデオ復号装置100が指数平滑技法を適用し、左側方向に平均化させる内容について説明する。ビデオ復号装置100は、下記のような擬似コード2により、Ak[i’,j’]に対し、左側方向に平均化を行うことができる。このとき、Hは、現在ブロックの高さ、Wは、現在ブロックの幅を意味し、Strideは、一次元配列において、1本のラインと次のラインとの距離を意味する。すなわち、二次元配列A[i,j]は、一次元配列A[i+j*Stride]によっても表現される。
[擬似コード2]
例えば、現在ブロックの大きさが4x4であるとし、右側方向に平均化された値であるA’[0]、A’[1]、A’[2]及びA’[3]が、2a、a+b、a/2+b/2+c、a/4+b/4+c/2+dである場合、前記擬似コード2によるプロセスの結果値A[3]は、2*A’[3]=a/2+b/2+c+2dであり、A[2]は、A’[2]+A[3]/2=a/2+b/2+c+a/4+b/4+c/2+d=3a/4+3b/4+3c/2+dであり、A[1]は、A’[1]+A[2]/2…であり、A[0]は、A’[0]+A[1]/2でもある。
以下では、ビデオ復号装置100は、指数平滑技法を適用し、下側方向に平均化させる内容について説明する。ビデオ復号装置100は、下記のような擬似コード3により、Ak[i’,j’]に対し、下側方向に平均化を行うことができる。このとき、Hは、現在ブロックの高さ、Wは、現在ブロックの幅を意味し、Strideは、一次元配列において、1本のラインと次のラインとの距離を意味する。すなわち、二次元配列A[i,j]は、一次元配列A[i+j*Stride]によっても表現される。
[擬似コード3]
以下では、ビデオ復号装置100は、指数平滑技法を適用し、上側方向に平均化させる内容について説明する。ビデオ復号装置100は、下記のような擬似コード4により、Ak[i’,j’]に対し、上側方向に平均化を行うことができる。このとき、Hは、現在ブロックの高さ、Wは、現在ブロックの幅を意味し、Strideは、一次元配列において、1本のラインと次のラインとの距離を意味する。すなわち、二次元配列A[i,j]は、一次元配列A[i+j*Stride]によっても表現される。
[擬似コード4]
すなわち、ビデオ復号装置100は、指数平滑技法を利用し、Ak[i’,j’]に対し、上下左右方向に平均化を行うことができ、そのような平均化作業を遂行して決定されたピクセル別結果値は、各ピクセルに係わる水平方向または垂直方向の変位ベクトルを決定するために必要な値であるσk[i,j]にもなる。このとき、指数平滑技法を利用して平均化を行うことになれば、現在ピクセル位置について最大の加重値を有することになり、ピクセルが現在ピクセルから距離が遠くなるほど、そのピクセルに係わる加重値は、指数的に低減することになる。
従って、ビデオ復号装置100は、現在ブロック990に対して指数平滑技法を利用し、上下左右方向に平均化を行うことにより、ピクセル別に、水平方向または垂直方向の変位ベクトルを決定するために必要な加重平均であるσk[i,j]を決定することができる。すなわち、ビデオ復号装置100は、現在ブロック990を拡張したブロック996に対応する参照ブロックのピクセル値及びグラジエント値を参照せず、現在ブロック990に対応する参照ブロックのピクセル値及びグラジエント値のみを参照し、ピクセル別に、水平方向または垂直方向の変位ベクトルを決定することができる。
図9Kは、一実施形態により、現在ブロックに係わる動き補償を行うために、フィルタを利用し、参照ブロック内の参照ピクセルのピクセル値、並びに水平方向及び垂直方向のグラジエント値を決定する過程について説明するための図面である。
図9Kを参照すれば、ビデオ復号装置100は、現在ブロックに対応する参照ブロック内の参照ピクセルのピクセル値及びグラジエント値を利用し、現在ブロックに係わるピクセル単位及びブロック単位の動き補償を行うことができる。従って、現在ブロックに係わるピクセル単位及びブロック単位の動き補償を行うためには、現在ブロックに対応する参照ブロック内の参照ピクセルのピクセル値及びグラジエント値が決定されなければならない。このとき、参照ブロック内の参照ピクセルのピクセル値及びグラジエント値の単位は、小数ピクセル単位でもある。例えば、参照ブロック内の参照ピクセルのピクセル値及びグラジエント値の単位は、1/16ピクセル(1/16pel)単位でもある。
ビデオ復号装置100は、小数ピクセル単位の参照ブロック内の参照ピクセルのピクセル値及びグラジエント値を決定するために、参照ブロックの整数ピクセルのピクセル値に対してフィルタリングを行うことができる。
まず、ビデオ復号装置100は、参照ピクセルの整数ピクセルのピクセル値に、水平8タップ信号フィルタ(signal filter;補間フィルタともいう)及び垂直8タップ信号フィルタを適用し、参照ブロック内の参照ピクセルのピクセル値を決定することができる。
ビデオ復号装置100は、参照ブロックの整数ピクセル値に対して、水平方向の8タップ信号フィルタを適用してフィルタリングを行うことにより、水平方向に、小数ピクセル単位の位置成分を有する参照ピクセルのピクセル値を決定し、それをバッファに保存することができる。ビデオ復号装置100は、垂直方向に、整数単位の位置成分を有する参照ピクセルのピクセル値に対して、垂直方向の8タップ信号フィルタを適用し、垂直方向に小数ピクセル単位位置成分を有する参照ピクセルのピクセル値を決定することができる。
ビデオ復号装置100は、参照ブロックの整数ピクセル値に対して、まず垂直方向の6タップ信号フィルタを適用し、その後、水平方向の6タップグラジエントフィルタを適用してフィルタリングを行うことにより、参照ブロック内の参照ピクセルの水平方向のグラジエント値を決定することができる。
すなわち、ビデオ復号装置100は、参照ブロックの整数ピクセル値に対して、垂直方向の6タップ信号フィルタを適用してフィルタリングを行うことにより、垂直方向に小数ピクセル単位の位置成分を有する参照ピクセルのピクセル値を決定し、それをバッファに保存することができる。
ビデオ復号装置100は、水平方向に整数単位の位置成分を有する参照ピクセルのピクセル値に対して、水平方向の6タップグラジエントフィルタを適用し、水平方向にも、小数ピクセル単位位置成分を有する参照ピクセルの水平方向のグラジエント値を決定することができる。
ビデオ復号装置100は、参照ブロックの整数ピクセル値に対して、まず垂直方向の6タップグラジエントフィルタを適用し、その後、水平方向の6タップ信号フィルタを適用してフィルタリングを行うことにより、参照ブロック内の参照ピクセルの垂直方向のグラジエント値を決定することができる。
すなわち、ビデオ復号装置100は、参照ブロックの整数ピクセル値に対して、垂直方向の6タップグラジエントフィルタを適用してフィルタリングを行うことにより、垂直方向に小数ピクセル単位の位置成分を有する参照ピクセルのグラジエント値を決定し、それをバッファに保存することができる。
ビデオ復号装置100は、水平方向に、整数単位の位置成分を有する参照ピクセルの垂直方向グラジエント値に対して、水平方向の6タップ信号フィルタを適用し、水平方向にも、小数ピクセル単位位置成分を有する参照ピクセルの垂直方向のグラジエント値を決定することができる。
すなわち、ビデオ復号装置100は、参照ブロック内の参照ピクセルのピクセル値、参照ブロック内の参照ピクセルの水平方向のグラジエント値、及び参照ブロック内の参照ピクセルの垂直方向のグラジエント値をそれぞれ決定するために、2個の一次元フィルタが適用され、このとき、各フィルタの係数と対応するピクセルに係わる値の間で乗算演算が行われもする。例えば、参照ブロック内の参照ピクセルの水平方向のグラジエント値を決定するために、6タップ信号/グラジエントフィルタの二つが利用され、ピクセル当たり総12回の乗算演算が行われもする。また、参照ブロック内の参照ピクセルの垂直方向のグラジエント値を決定するために、6タップ信号/グラジエントフィルタの二つが利用され、ピクセル当たり総12回の乗算演算が行われもする。
図9Lは、他の実施形態により、現在ブロックに係わる動き補償を行うために、フィルタを利用し、参照ブロック内の参照ピクセルのピクセル値、並びに水平方向及び垂直方向のグラジエント値を決定する過程について説明するための図面である。
図9Lを参照すれば、ビデオ復号装置100は、現在ブロックに対応する参照ブロック内の参照ピクセルのピクセル値及びグラジエント値を利用し、現在ブロックに係わるピクセル単位及びブロック単位の動き補償を行うことができる。従って、現在ブロックに係わるピクセル単位及びブロック単位の動き補償を行うためには、現在ブロックに対応する参照ブロック内の参照ピクセルのピクセル値及びグラジエント値が決定されなければならない。このとき、参照ブロック内の参照ピクセルのピクセル値及びグラジエント値の単位は、小数ピクセル単位でもある。例えば、参照ブロック内の参照ピクセルのピクセル値及びグラジエント値の単位は、1/16ピクセル(1/16pel)単位でもある。
ビデオ復号装置100は、小数ピクセル単位の参照ブロック内の参照ピクセルのピクセル値及びグラジエント値を決定するために、参照ブロックの整数ピクセルのピクセル値に対してフィルタリングを行うことができる。
図9Kを参照して説明したところと異なり、ビデオ復号装置100は、まず参照ブロックの整数ピクセル値に、水平8タップ信号フィルタ及び垂直8タップ信号フィルタを適用し、参照ブロック内の参照ピクセルのピクセル値を決定した後、参照ブロック内の参照ピクセルのピクセル値に対して、水平5タップグラジエントフィルタを適用し、参照ブロック内の参照ピクセルの水平方向のグラジエント値を決定することができる。また、ビデオ復号装置100は、参照ブロック内の参照ピクセルのピクセル値に対して、垂直5タップグラジエントフィルタを適用し、参照ブロック内の参照ピクセルの垂直方向グラジエント値を決定することができる。
ビデオ復号装置100は、2個の一次元信号(補間)フィルタを適用し、小数ピクセル単位の位置を有する参照ピクセルのピクセル値を決定した後、小数ピクセル単位の位置にある参照ピクセルのピクセル値に、2個の一次元グラジエントフィルタを並列的に適用することにより、参照ブロック内の参照ピクセルの水平方向のグラジエント値、または垂直方向のグラジエント値を決定することができる。
ビデオ復号装置100は、参照ピクセルのピクセル値に、以下の数式(42)のように、5タップの水平方向グラジエントフィルタ(フィルタ係数が{9,-48,0,48,9}である;ただし、フィルタ係数は、それに制限されるものではない)を適用し、参照ブロック内の参照ピクセルの水平方向のグラジエント値Ix(k)を決定することができる。ここで、kは、0または1の値を有することができ、それぞれ参照ピクチャ0,1を示すことができる。I(k)[i,j]は、(i,j)位置の参照ブロック内の参照ピクセルのピクセル値でもある。iは、ピクセルの水平方向位置成分、jは、ピクセルの垂直方向位置成分であり、その単位が小数ピクセル単位でもある。
従って、ビデオ復号装置100は、サンプル当たり2回の乗算演算のみを行うことにより、参照ブロック内の参照ピクセルの水平方向のグラジエント値Ix(k)を決定することができる。
また、ビデオ復号装置100は、参照ピクセルのピクセル値に、以下の数式(43)のように、5タップの垂直方向グラジエントフィルタ(フィルタ係数が{9,-48,0,48,9}である;ただし、それに制限されるものではない)を適用し、参照ブロック内の参照ピクセルの垂直方向のグラジエント値Iy(k)を決定することができる。ここで、kは、0または1の値を有することができ、それぞれ参照ピクチャ0,1を示すことができる。I(k)[i,j]は、(i,j)位置の参照ブロック内の参照ピクセルのピクセル値でもある。iは、ピクセルの水平方向位置成分、jは、ピクセルの垂直方向位置成分であり、その単位が小数ピクセル単位でもある。
従って、ビデオ復号装置100は、サンプル当たり2回の乗算演算のみを行うことにより、参照ブロック内の参照ピクセルの垂直方向のグラジエント値Iy(k)を決定することができる。
ビデオ復号装置100が、ウィンドウサイズによるブロック拡張と共にピクセル単位動き補償を行う場合、グラジエントフィルタ長を縮小させ、ピクセル単位動き補償を行う場合、それぞれの場合に係わるメモリアクセス回数及び乗算演算回数ほどメモリアクセス動作及び乗算演算が、ビデオ復号装置100において、下記表7のように行われもする。このとき、信号フィルタの長さTが8であり、グラジエントフィルタの長さTが6であり、簡素化されたグラジエントフィルタの長さTが5であり、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズ2M+1が5と仮定する。
すなわち、ビデオ復号装置100は、数式(41)及び42により、一次元グラジエントフィルタ当たり2回の乗算演算を行い、2個の参照ブロックに対してグラジエントフィルタが適用され、ウィンドウサイズに基づいて拡張された(N+4)x(N+4)参照ブロックに対し、グラジエントフィルタが適用されるので、水平方向及び垂直方向の参照ピクセルのグラジエント値を決定するために、総2*2*{(N+4)x(N+4)}*2回の乗算演算が行われもする。
ビデオ復号装置100が、ウィンドウサイズによるブロック拡張と共にピクセル単位動き補償を行う場合、ブロックの拡張なしに、グラジエントフィルタ長を縮小させ、ピクセルグループ単位の動き補償を行う場合、それぞれの場合に係わるメモリアクセス回数及び乗算演算回数ほど、メモリアクセス動作及び乗算演算及び乗算演算が、ビデオ復号装置100において、下記表8のように行われもする。このとき、信号フィルタの長さTが8であり、グラジエントフィルタの長さTが6であり、縮小されたグラジエントフィルタの長さTが5であり、ピクセルグループの大きさがLxLであり、ブロックの大きさがNxNであり、ピクセル別ウィンドウサイズ2M+1が5であると仮定する。
従って、ビデオ復号装置100が、ブロックの拡張なしに、グラジエントフィルタ長を縮小させてピクセルグループ単位の動き補償を行う場合のメモリアクセス回数、乗算演算回数及び乗算演算回数は、ブロック拡張と共にピクセル単位動き補償を行う場合のメモリアクセス回数、乗算演算回数、乗算演算回数よりはるかに低減されもする。
以下、図10ないし図23を参照し、一実施形態によるビデオ復号装置100が映像を復号する過程で利用することができるデータ単位を決定する方法について説明することにする。ビデオ符号化装置150の動作は、後述するビデオ復号装置100の動作に係わる多様な実施形態と類似しているか、あるいは反対になる動作にもなる。
図10は、一実施形態により、ビデオ復号装置100が、現在符号化単位を分割し、少なくとも1つの符号化単位を決定する過程を図示する。
一実施形態により、ビデオ復号装置100は、ブロック形態情報を利用し、符号化単位の形態を決定することができ、該分割形態情報を利用し、符号化単位がいかなる形態に分割されるかということを決定することができる。すなわち、ビデオ復号装置100が利用するブロック形態情報が、いかなるブロック形態を示すかということにより、分割形態情報が示す符号化単位の分割方法が決定されもする。
一実施形態により、ビデオ復号装置100は、現在符号化単位が正方形状であるということを示すブロック形態情報を利用することができる。例えば、ビデオ復号装置100は、分割形態情報により、正方形の符号化単位を分割しないか、垂直に分割するか、水平に分割するか、4個の符号化単位に分割するかということなどを決定することができる。図10を参照すれば、現在符号化単位1000のブロック形態情報が正方形の形態を示す場合、ビデオ復号装置100は、分割されないことを示す分割形態情報により、現在符号化単位1000と同一サイズを有する符号化単位1010aを分割しないか、あるいは所定の分割方法を示す分割形態情報に基づいて分割された符号化単位1010b,1010c,1010dを決定することができる。
図10を参照すれば、ビデオ復号装置100は、一実施形態により、垂直方向に分割されることを示す分割形態情報に基づいて、現在符号化単位1000を垂直方向に分割した2つの符号化単位1010bを決定することができる。ビデオ復号装置100は、水平方向に分割されることを示す分割形態情報に基づいて、現在符号化単位1000を水平方向に分割した2つの符号化単位1010cを決定することができる。ビデオ復号装置100は、垂直方向及び水平方向に分割されることを示す分割形態情報に基づいて、現在符号化単位1000を垂直方向及び水平方向に分割した4つの符号化単位1010dを決定することができる。ただし、正方形の符号化単位が分割される分割形態は、前述の形態に限定して解釈されるものではなく、分割形態情報が示すことができる多様な形態が含まれてもよい。正方形の符号化単位が分割される所定の分割形態は、以下において、多様な実施形態を介して具体的に説明することにする。
図11は、一実施形態により、ビデオ復号装置100が非正方形の形態である符号化単位を分割し、少なくとも1つの符号化単位を決定する過程を図示する。
一実施形態により、ビデオ復号装置100は、現在符号化単位が非正方形状であることを示すブロック形態情報を利用することができる。ビデオ復号装置100は、分割形態情報により、非正方形の現在符号化単位を分割しないか、あるいは所定の方法で分割するかということを決定することができる。図11を参照すれば、現在符号化単位1100または1150のブロック形態情報が、非正方形の形態を示す場合、ビデオ復号装置100は、分割されないことを示す分割形態情報により、現在符号化単位1100または1150と同一サイズを有する符号化単位1110または1160を分割しないか、あるいは所定の分割方法を示す分割形態情報に基づいて分割された符号化単位1120a,1120b,1130a,1130b,1130c,1170a,1170b,1180a,1180b,1180cを決定することができる。非正方形の符号化単位が分割される所定の分割方法は、以下において、多様な実施形態を介して具体的に説明することにする。
一実施形態により、ビデオ復号装置100は、分割形態情報を利用し、符号化単位が分割される形態を決定することができ、その場合、該分割形態情報は、符号化単位が分割されて生成される少なくとも1つの符号化単位の個数を示すことができる。図11を参照すれば、分割形態情報が、2つの符号化単位に、現在符号化単位1100または1150が分割されることを示す場合、ビデオ復号装置100は、分割形態情報に基づいて、現在符号化単位1100または1150を分割し、現在符号化単位に含まれる2つの符号化単位1120a,11420bまたは1170a,1170bを決定することができる。
一実施形態により、ビデオ復号装置100が、分割形態情報に基づいて、非正方形の形態の現在符号化単位1100または1150を分割する場合、非正方形の現在符号化単位1100または1150の長辺の位置を考慮し、現在符号化単位を分割することができる。例えば、ビデオ復号装置100は、現在符号化単位1100または1150の形態を考慮し、現在符号化単位1100または1150の長辺を分割する方向に、現在符号化単位1100または1150を分割し、複数個の符号化単位を決定することができる。
一実施形態により、分割形態情報が、奇数個のブロックに、符号化単位を分割することを示す場合、ビデオ復号装置100は、現在符号化単位1100または1150に含まれる奇数個の符号化単位を決定することができる。例えば、分割形態情報が3個の符号化単位に、現在符号化単位1100または1150を分割することを示す場合、ビデオ復号装置100は、現在符号化単位1100または1150を、3個の符号化単位1130a,1130b,1130c,1180a,1180b,1180cに分割することができる。一実施形態により、ビデオ復号装置100は、現在符号化単位1100または1150に含まれる奇数個の符号化単位を決定することができ、決定された符号化単位の大きさは、いずれも同一ではない。例えば、決定された奇数個の符号化単位1130a,1130b,1130c,1180a,1180b,1180cにおいて、所定の符号化単位1130bまたは1180bの大きさは、他の符号化単位1130a,1130c,1180a,1180cとは異なる大きさを有することもできる。すなわち、現在符号化単位1100または1150が分割されて決定される符号化単位は、複数種類の大きさを有することができ、場合によっては、奇数個の符号化単位1130a,1130b,1130c,1180a,1180b,1180cがそれぞれ互いに異なる大きさを有することもできる。
一実施形態により、該分割形態情報が、奇数個のブロックに、符号化単位が分割されることを示す場合、ビデオ復号装置100は、現在符号化単位1100または1150に含まれる奇数個の符号化単位を決定することができ、さらには、ビデオ復号装置100は、分割して生成される奇数個の符号化単位のうち少なくとも1つの符号化単位に対し、所定の制限を置くことができる。図11を参照すれば、ビデオ復号装置100は、現在符号化単位1100または1150が分割されて生成された3個の符号化単位1130a,1130b,1130c,1180a,1180b,1180cのうち、中央に位置する符号化単位1130b,1180bに対する復号過程を、他の符号化単位1130a,1130c,1180a,1180cと異ならせることができる。例えば、ビデオ復号装置100は、中央に位置する符号化単位1130b,1180bについては、他の符号化単位1130a,1130c,1180a,1180cと異なり、それ以上分割されないように制限するか、あるいは所定の回数ほどだけ分割されるように制限することができる。
図12は、一実施形態により、ビデオ復号装置100が、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、符号化単位を分割する過程を図示する。
一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、正方形状の第1符号化単位1200を符号化単位に分割するか、あるいは分割しないと決定することができる。一実施形態により、該分割形態情報が、水平方向に第1符号化単位1200を分割することを示す場合、ビデオ復号装置100は、第1符号化単位1200を水平方向に分割し、第2符号化単位1210を決定することができる。一実施形態により、利用される第1符号化単位、第2符号化単位、第3符号化単位は、符号化単位間の分割前後関係を理解するために利用された用語である。例えば、第1符号化単位を分割すれば、第2符号化単位が決定され、第2符号化単位が分割されれば、第3符号化単位が決定されもする。以下においては、利用される第1符号化単位、第2符号化単位及び第3符号化単位の関係は、前述の特徴によるものであると理解されもする。
一実施形態により、ビデオ復号装置100は、決定された第2符号化単位1210を、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、符号化単位に分割するか、あるいは分割しないと決定することができる。図12を参照すれば、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1200を分割して決定された非正方形の形態の第2符号化単位1210を、少なくとも1つの第3符号化単位1220a,1220b,1220c,1220dに分割するか、あるいは第2符号化単位1210を分割しない。ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つを獲得することができ、ビデオ復号装置100は、獲得したブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1200を分割し、多様な形態の複数個の第2符号化単位(例えば、1210)を分割することができ、第2符号化単位1210は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1200が分割された方式によって分割されもする。一実施形態により、第1符号化単位1200が、第1符号化単位1200に係わるブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第2符号化単位1210に分割された場合、第2符号化単位1210も、第2符号化単位1210に係わるブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第3符号化単位(例えば、1220a,1220b,1220c,1220d)に分割されもする。すなわち、符号化単位は、符号化単位それぞれに係わる分割形態情報及びブロック形態情報のうち少なくとも一つに基づいて、再帰的に分割されもする。従って、非正方形状の符号化単位において、正方形の符号化単位が決定され、そのような正方形状の符号化単位が再帰的に分割され、非正方形状の符号化単位が決定されもする。図12を参照すれば、非正方形状の第2符号化単位1210が分割されて決定される奇数個の第3符号化単位1220b,1220c,1220dにおいて、所定の符号化単位(例えば、真ん中に位置する符号化単位、または正方形状の符号化単位)は、再帰的に分割されもする。一実施形態により、奇数個の第3符号化単位1220b,1220c,1220dのうち一つである正方形状の第3符号化単位1220cは、水平方向に分割され、複数個の第4符号化単位に分割されもする。複数個の第4符号化単位のうち一つである非正方形状の第4符号化単位1240は、また複数個の符号化単位に分割されもする。例えば、非正方形状の第4符号化単位1240は、奇数個の符号化単位1250a,1250b,1250cにさらに分割される。
符号化単位の再帰的分割に利用される方法については、多様な実施形態を介して後述することにする。
一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第3符号化単位1220a,1220b,1220c,1220dそれぞれを符号化単位に分割するか、あるいは第2符号化単位1210を分割しないと決定することができる。ビデオ復号装置100は、一実施形態により、非正方形状の第2符号化単位1210を、奇数個の第3符号化単位1220b,1220c,1220dに分割することができる。ビデオ復号装置100は、奇数個の第3符号化単位1220b,1220c,1220dにおいて、所定の第3符号化単位に対し、所定の制限を置くことができる。例えば、ビデオ復号装置100は、奇数個の第3符号化単位1220b,1220c,1220dのうち真ん中に位置する符号化単位1220cについては、それ以上分割されないと制限するか、あるいは設定可能な回数に分割されなければならないと制限することができる。図12を参照すれば、ビデオ復号装置100は、非正方形状の第2符号化単位1210に含まれる奇数個の第3符号化単位1220b,1220c,1220dのうち真ん中に位置する符号化単位1220cは、それ以上分割されないか、あるいは所定の分割形態に分割(例えば、4個の符号化単位にだけ分割されるか、あるいは第2符号化単位1210が分割された形態に対応する形態で分割される)されるように制限するか、あるいは所定の回数だけに分割(例えば、n回だけに分割、n>0)すると制限することができる。ただし、真ん中に位置した符号化単位1220cに対する前記制限は、単純な実施形態に過ぎないので、前述の実施形態に制限されて解釈されるものではなく、真ん中に位置した符号化単位1220cが、異なる符号化単位1220b,1220dと異なるようにも復号される多様な制限を含むと解釈されなければならない。
一実施形態により、ビデオ復号装置100は、現在符号化単位を分割するために利用されるブロック形態情報及び分割形態情報のうち少なくとも一つを、現在符号化単位内の所定の位置で獲得することができる。
図13は、一実施形態により、ビデオ復号装置100が、奇数個の符号化単位のうち所定の符号化単位を決定するための方法を図示する。図13を参照すれば、現在符号化単位1300のブロック形態情報及び分割形態情報のうち少なくとも一つは、現在符号化単位1300に含まれる複数個のサンプルのうち所定位置のサンプル(例えば、真ん中に位置するサンプル1340)から獲得されもする。ただし、そのようなブロック形態情報及び分割形態情報のうち少なくとも一つが獲得される現在符号化単位1300内の所定位置が、図13で図示する真ん中位置に限定して解釈されるものではなく、該所定位置には、現在符号化単位1300内に含まれる多様な位置(例えば、最上端、最下端、左側、右側、左側上端、左側下段、右側上端または右側下段など)が含まれてもよいと解釈されなければならない。ビデオ復号装置100は、所定位置から獲得されるブロック形態情報及び分割形態情報のうち少なくとも一つを獲得し、現在符号化単位を多様な形態及び大きさの符号化単位に分割するか、あるいは分割しないと決定することができる。
一実施形態により、ビデオ復号装置100は、現在符号化単位が、所定の個数の符号化単位に分割された場合、そのうち1つの符号化単位を選択することができる。複数個の符号化単位のうち一つを選択するための方法は、多様なものがあり、そのような方法に係わる説明は、以下の多様な実施形態を介して後述することにする。
一実施形態により、ビデオ復号装置100は、現在符号化単位を、複数個の符号化単位に分割し、所定位置の符号化単位を決定することができる。
図13は、一実施形態により、ビデオ復号装置100が、奇数個の符号化単位のうち所定位置の符号化単位を決定するための方法を図示する。
一実施形態により、ビデオ復号装置100は、奇数個の符号化単位のうち真ん中に位置する符号化単位を決定するために、奇数個の符号化単位それぞれの位置を示す情報を利用することができる。図13を参照すれば、ビデオ復号装置100は、現在符号化単位1300を分割し、奇数個の符号化単位1320a,1320b,1320cを決定することができる。ビデオ復号装置100は、奇数個の符号化単位1320a,1320b,1320cの位置に係わる情報を利用し、真ん中符号化単位1320bを決定することができる。例えば、ビデオ復号装置100は、符号化単位1320a,1320b,1320cに含まれる所定のサンプルの位置を示す情報に基づいて、符号化単位1320a,1320b,1320cの位置を決定することにより、真ん中に位置する符号化単位1320bを決定することができる。具体的には、ビデオ復号装置100は、符号化単位1320a,1320b,1320cの左側上端のサンプル1330a,1330b,1330cの位置を示す情報に基づいて、符号化単位1320a,1320b,1320cの位置を決定することにより、真ん中に位置する符号化単位1320bを決定することができる。
一実施形態により、符号化単位1320a,1320b,1320cにそれぞれ含まれる左側上端のサンプル1330a,1330b,1330cの位置を示す情報は、符号化単位1320a,1320b,1320cのピクチャ内での位置または座標に係わる情報を含んでもよい。一実施形態により、符号化単位1320a,1320b,1320cにそれぞれ含まれる左側上端のサンプル1330a,1330b,1330cの位置を示す情報は、現在符号化単位1300に含まれる符号化単位1320a,1320b,1320cの幅または高さを示す情報を含んでもよく、そのような幅または高さは、符号化単位1320a,1320b,1320cのピクチャ内での座標間の差を示す情報に該当する。すなわち、ビデオ復号装置100は、符号化単位1320a,1320b,1320cのピクチャ内での位置または座標に係わる情報を直接利用するか、あるいは座標間の差値に対応する符号化単位の幅または高さに係わる情報を利用することにより、真ん中に位置する符号化単位1320bを決定することができる。
一実施形態により、上端符号化単位1320aの左側上端のサンプル1330aの位置を示す情報は、(xa,ya)座標を示すことができ、真ん中符号化単位1320bの左側上端のサンプル1330bの位置を示す情報は、(xb,yb)座標を示すことができ、下端符号化単位1320cの左側上端のサンプル1330cの位置を示す情報は、(xc,yc)座標を示すことができる。ビデオ復号装置100は、符号化単位1320a,1320b,1320cにそれぞれ含まれる左側上端のサンプル1330a,1330b,1330cの座標を利用し、真ん中符号化単位1320bを決定することができる。例えば、左側上端のサンプル1330a,1330b,1330cの座標を昇順または降順に整列したとき、真ん中に位置するサンプル1330bの座標である(xb,yb)を含む符号化単位1320bを、現在符号化単位1300が分割されて決定された符号化単位1320a,1320b,1320cにおいて、真ん中に位置する符号化単位と決定することができる。ただし、左側上端のサンプル1330a,1330b,1330cの位置を示す座標は、ピクチャ内での絶対的な位置を示す座標を示すことができ、さらには、上端符号化単位1320aの左側上端のサンプル1330aの位置を基準に、真ん中符号化単位1320bの左側上端のサンプル1330bの相対的位置を示す情報である(dxb,dyb)座標、下端符号化単位1320cの左側上端のサンプル1330cの相対的位置を示す情報である(dxc,dyc)座標を利用することもできる。また、符号化単位に含まれるサンプルの位置を示す情報として、当該サンプルの座標を利用することにより、所定位置の符号化単位を決定する方法は、前述の方法に限定して解釈されるものではなく、サンプルの座標を利用することができる多様な算術的方法であると解釈されなければならない。
一実施形態により、ビデオ復号装置100は、現在符号化単位1300を、複数個の符号化単位1320a,1320b,1320cに分割することができ、符号化単位1320a,1320b,1320cのうち、所定の基準により、符号化単位を選択することができる。例えば、ビデオ復号装置100は、符号化単位1320a,1320b,1320cにおいて、大きさが異なる符号化単位1320bを選択することができる。
一実施形態により、ビデオ復号装置100は、上端符号化単位1320aの左側上端のサンプル1330aの位置を示す情報である(xa,ya)座標、真ん中符号化単位1320bの左側上端のサンプル1330bの位置を示す情報である(xb,yb)座標、下端符号化単位1320cの左側上端のサンプル1330cの位置を示す情報である(xc,yc)座標を利用し、符号化単位1320a,1320b,1320cそれぞれの幅または高さを決定することができる。ビデオ復号装置100は、符号化単位1320a,1320b,1320cの位置を示す座標である(xa,ya)、(xb,yb)、(xc,yc)を利用し、符号化単位1320a,1320b,1320cそれぞれの大きさを決定することができる。
一実施形態により、ビデオ復号装置100は、上端符号化単位1320aの幅を、xb-xaと決定することができ、高さを、yb-yaと決定することができる。一実施形態により、ビデオ復号装置100は、真ん中符号化単位1320bの幅を、xc-xbと決定することができ、高さを、yc-ybと決定することができる。一実施形態により、ビデオ復号装置100は、下端符号化単位の幅または高さは、現在符号化単位の幅または高さと、上端符号化単位1320a及び真ん中符号化単位1320bの幅及び高さとを利用して決定することができる。ビデオ復号装置100は、決定された符号化単位1320a,1320b,1320cの幅及び高さに基づいて、他の符号化単位と異なる大きさを有する符号化単位を決定することができる。図13を参照すれば、ビデオ復号装置100は、上端符号化単位1320a及び下端符号化単位1320cの大きさと異なる大きさを有する真ん中符号化単位1320bを、所定位置の符号化単位と決定することができる。ただし、前述のビデオ復号装置100が、異なる符号化単位と異なる大きさを有する符号化単位を決定する過程は、サンプル座標に基づいて決定される符号化単位の大きさを利用し、所定位置の符号化単位を決定する一実施形態に過ぎないので、所定のサンプル座標によって決定される符号化単位の大きさを比較し、所定位置の符号化単位を決定する多様な過程が利用されもする。
ただし、符号化単位の位置を決定するために考慮するサンプルの位置は、前述の左側上端に限定して解釈されるものではなく、符号化単位に含まれる任意のサンプル位置に係わる情報が利用されてもよいと解釈されもする。
一実施形態により、ビデオ復号装置100は、現在符号化単位の形態を考慮し、現在符号化単位が分割されて決定される奇数個の符号化単位のうち所定位置の符号化単位を選択することができる。例えば、現在符号化単位が、幅が高さより長い非正方形状であるならば、ビデオ復号装置100は、水平方向に沿って、所定位置の符号化単位を決定することができる。すなわち、ビデオ復号装置100は、水平方向に位置を異にする符号化単位のうち一つを決定し、当該符号化単位に対する制限を置くことができる。現在符号化単位が、高さが幅より長い非正方形状であるならば、ビデオ復号装置100は、垂直方向に沿って、所定位置の符号化単位を決定することができる。すなわち、ビデオ復号装置100は、垂直方向に位置を異にする符号化単位のうち一つを決定し、当該符号化単位に対する制限を置くことができる。
一実施形態により、ビデオ復号装置100は、偶数個の符号化単位のうち所定位置の符号化単位を決定するために、偶数個の符号化単位それぞれの位置を示す情報を利用することができる。ビデオ復号装置100は、現在符号化単位を分割し、偶数個の符号化単位を決定することができ、偶数個の符号化単位の位置に係わる情報を利用し、所定位置の符号化単位を決定することができる。それに係わる具体的な過程は、図13で説明した奇数個の符号化単位のうち所定位置(例えば、真ん中位置)の符号化単位を決定する過程に対応する過程でもあるので、省略することにする。
一実施形態により、非正方形状の現在符号化単位を、複数個の符号化単位に分割した場合、複数個の符号化単位のうち所定位置の符号化単位を決定するために、分割過程において、所定位置の符号化単位についての所定の情報を利用することができる。例えば、ビデオ復号装置100は、現在符号化単位が、複数個に分割された符号化単位のうち真ん中に位置する符号化単位を決定するために、分割過程において、真ん中符号化単位に含まれたサンプルに保存されたブロック形態情報及び分割形態情報のうち少なくとも一つを利用することができる。
図13を参照すれば、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、現在符号化単位1300を、複数個の符号化単位1320a,1320b,1320cに分割することができ、複数個の符号化単位1320a,1320b,1320cのうち真ん中に位置する符号化単位1320bを決定することができる。さらには、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つが獲得される位置を考慮し、真ん中に位置する符号化単位1320bを決定することができる。すなわち、現在符号化単位1300のブロック形態情報及び分割形態情報のうち少なくとも一つは、現在符号化単位1300の真ん中に位置するサンプル1340から獲得され、前記ブロック形態情報及び前記分割形態情報のうち少なくとも一つに基づいて、現在符号化単位1300が、複数個の符号化単位1320a,1320b,1320cに分割された場合、前記サンプル1340を含む符号化単位1320bを、真ん中に位置する符号化単位と決定することができる。ただし、真ん中に位置する符号化単位と決定するために利用される情報が、ブロック形態情報及び分割形態情報のうち少なくとも一つに限定して解釈されるものではなく、多様な種類の情報が、真ん中に位置する符号化単位を決定する過程で利用されもする。
一実施形態により、所定位置の符号化単位を識別するための所定の情報は、決定しようとする符号化単位に含まれる所定のサンプルからも獲得される。図13を参照すれば、ビデオ復号装置100は、現在符号化単位1300が分割されて決定された複数個の符号化単位1320a,1320b,1320cにおいて、所定位置の符号化単位(例えば、複数個に分割された符号化単位のうち真ん中に位置する符号化単位)を決定するために、現在符号化単位1300内の所定位置のサンプル(例えば、現在符号化単位1300の真ん中に位置するサンプル)から獲得されるブロック形態情報及び分割形態情報のうち少なくとも一つを利用することができる。すなわち、ビデオ復号装置100は、現在符号化単位1300のブロックブロック形態を考慮し、前記所定位置のサンプルを決定することができ、ビデオ復号装置100は、現在符号化単位1300が分割されて決定される複数個の符号化単位1320a,1320b,1320cのうち、所定の情報(例えば、ブロック形態情報及び分割形態情報のうち少なくとも一つ)が獲得されるサンプルが含まれた符号化単位1320bを決定し、所定の制限を置くことができる。図13を参照すれば、一実施形態により、ビデオ復号装置100は、所定の情報が獲得されるサンプルとして、現在符号化単位1300の真ん中に位置するサンプル1340を決定することができ、ビデオ復号装置100は、そのようなサンプル1340が含まれる符号化単位1320bに対し、復号過程での所定の制限を置くことができる。ただし、所定の情報が獲得されるサンプルの位置は、前述の位置に限定して解釈されるものではなく、制限を置くために決定しようとする符号化単位1320bに含まれる任意の位置のサンプルとも解釈される。
一実施形態により、所定の情報が獲得されるサンプルの位置は、現在符号化単位1300の形態によっても決定される。一実施形態により、ブロック形態情報は、現在符号化単位の形態が正方形であるか、あるいは非正方形であるかということを決定することができ、形態により、所定の情報が獲得されるサンプルの位置を決定することができる。例えば、ビデオ復号装置100は、現在符号化単位の幅に係わる情報、及び高さに係わる情報のうち少なくとも一つを利用し、現在符号化単位の幅及び高さのうち少なくとも一つを半分に分割する境界上に位置するサンプルを、所定の情報が獲得されるサンプルと決定することができる。他の例を挙げれば、ビデオ復号装置100は、現在符号化単位に係わるブロック形態情報が非正方形状であることを示す場合、現在符号化単位の長辺を半分に分割する境界に隣接するサンプルのうち一つを、所定の情報が獲得されるサンプルと決定することができる。
一実施形態により、ビデオ復号装置100は、現在符号化単位を、複数個の符号化単位に分割した場合、複数個の符号化単位のうち所定位置の符号化単位を決定するために、ブロック形態情報及び分割形態情報のうち少なくとも一つを利用することができる。一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つを、符号化単位に含まれた所定位置のサンプルから獲得することができ、ビデオ復号装置100は、現在符号化単位が分割されて生成された複数個の符号化単位を、複数個の符号化単位それぞれに含まれた所定位置のサンプルから獲得される分割形態情報及びブロック形態情報のうち少なくとも一つを利用して分割することができる。すなわち、該符号化単位は、符号化単位それぞれに含まれた所定位置のサンプルから獲得されるブロック形態情報及び分割形態情報のうち少なくとも一つを利用し、再帰的に分割されもする。符号化単位の再帰的分割過程については、図12を介して説明したので、詳細な説明は、省略することにする。
一実施形態により、ビデオ復号装置100は、現在符号化単位を分割し、少なくとも1つの符号化単位を決定することができ、そのような少なくとも1つの符号化単位が復号される順序を、所定のブロック(例えば、現在符号化単位)によって決定することができる。
図14は、一実施形態により、ビデオ復号装置100が現在符号化単位を分割し、複数個の符号化単位を決定する場合、複数個の符号化単位が処理される順序を図示する。
一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報により、第1符号化単位1400を垂直方向に分割し、第2符号化単位1410a,1410bを決定するか、第1符号化単位1400を水平方向に分割し、第2符号化単位1430a,1430bを決定するか、あるいは第1符号化単位1400を、垂直方向及び水平方向に分割し、第2符号化単位1450a,1450b,1450c,1450dを決定することができる。
図14を参照すれば、ビデオ復号装置100は、第1符号化単位1400を垂直方向に分割して決定された第2符号化単位1410a,1410bを、水平方向(1410c)に処理されるように順序を決定することができる。ビデオ復号装置100は、第1符号化単位1400を水平方向に分割して決定された第2符号化単位1430a,1430bの処理順序を、垂直方向(1430c)に決定することができる。ビデオ復号装置100は、第1符号化単位1400を、垂直方向及び水平方向に分割して決定された第2符号化単位1450a,1450b,1450c,1450dに対して、1行に位置する符号化単位が処理された後、次の行に位置する符号化単位が処理される所定の順序(例えば、ラスタースキャン順序(raster scan order)またはzスキャン順序(z scan order)(1450e)によって決定することができる。
一実施形態により、ビデオ復号装置100は、符号化単位を再帰的に分割することができる。図14を参照すれば、ビデオ復号装置100は、第1符号化単位1400を分割し、複数個の符号化単位1410a,1410b,1430a,1430b,1450a,1450b,1450c,1450dを決定することができ、決定された複数個の符号化単位1410a,1410b,1430a,1430b,1450a,1450b,1450c,1450dそれぞれを再帰的に分割することができる。複数個の符号化単位1410a,1410b,1430a,1430b,1450a,1450b,1450c,1450dを分割する方法は、第1符号化単位1400を分割する方法に対応する方法にもなる。それにより、複数個の符号化単位1410a,1410b,1430a,1430b,1450a,1450b,1450c,1450dは、それぞれ独立し、複数個の符号化単位に分割されもする。図14を参照すれば、ビデオ復号装置100は、第1符号化単位1400を垂直方向に分割し、第2符号化単位1410a,1410bを決定することができ、さらには、第2符号化単位1410a,1410bそれぞれを独立して分割するか、あるいは分割しないと決定することができる。
一実施形態により、ビデオ復号装置100は、左側の第2符号化単位1410aを水平方向に分割し、第3符号化単位1420a,1420bに分割することができ、右側の第2符号化単位1410bは、分割しない。
一実施形態により、符号化単位の処理順序は、符号化単位の分割過程に基づいても決定される。言い換えれば、分割された符号化単位の処理順序は、分割される直前の符号化単位の処理順序に基づいても決定される。ビデオ復号装置100は、左側の第2符号化単位1410aが分割されて決定された第3符号化単位1420a,1420bが処理される順序を、右側の第2符号化単位1410bと独立して決定することができる。左側の第2符号化単位1410aが水平方向に分割され、第3符号化単位1420a,1420bが決定されたので、第3符号化単位1420a,1420bは、垂直方向(1420c)に処理されもする。また、左側の第2符号化単位1410a、及び右側の第2符号化単位1410bが処理される順序は、水平方向1410cに該当するので、左側の第2符号化単位1410aに含まれる第3符号化単位1420a,1420bが、垂直方向(1420c)に処理された後、右側符号化単位1410bが処理されもする。前述の内容は、符号化単位が、それぞれ分割前の符号化単位によって処理順序が決定される過程について説明するためのものであるので、前述の実施形態に限定して解釈されるものではなく、多様な形態に分割されて決定される符号化単位が、所定の順序によって独立して処理される多様な方法に利用されると解釈されなければならない。
図15は、一実施形態により、ビデオ復号装置100が、所定の順序により、符号化単位が処理されえない場合、現在符号化単位が、奇数個の符号化単位に分割されるものであるを決定する過程を図示する。
一実施形態により、ビデオ復号装置100は、獲得されたブロック形態情報及び分割形態情報に基づいて、現在符号化単位が、奇数個の符号化単位に分割されることを決定することができる。図15を参照すれば、正方形状の第1符号化単位1500が非正方形状の第2符号化単位1510a,1510bに分割され、第2符号化単位1510a,1510bは、それぞれ独立し、第3符号化単位1520a,1520b,1520c,1520d、1520eに分割されもする。一実施形態により、ビデオ復号装置100は、第2符号化単位のうち左側符号化単位1510aは、水平方向に分割し、複数個の第3符号化単位1520a,1520bを決定することができ、右側符号化単位1510bは、奇数個の第3符号化単位1520c,1520d,1520eに分割することができる。
一実施形態により、ビデオ復号装置100は、第3符号化単位1520a,1520b,1520c,1520d,1520eが所定の順序に処理されるか否かということを判断し、奇数個に分割された符号化単位が存在するか否かということを決定することができる。図15を参照すれば、ビデオ復号装置100は、第1符号化単位1500を再帰的に分割し、第3符号化単位1520a,1520b,1520c,1520d,1520eを決定することができる。ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1500、第2符号化単位1510a,1510bまたは第3符号化単位1520a,1520b,1520c,1520d,1520eが分割される形態のうち奇数個の符号化単位に分割されるか否かということを決定することができる。例えば、第2符号化単位1510a,1510bにおいて、右側に位置する符号化単位が、奇数個の第3符号化単位1520c,1520d,1520eに分割されもする。第1符号化単位1500に含まれる複数個の符号化単位が処理される順序は、所定の順序(例えば、z-スキャン順序(z-scan order)(1530))にもなり、ビデオ復号装置100は、右側第2符号化単位1510bが奇数個に分割されて決定された第3符号化単位1520c,1520d,1520eが、前記所定の順序によって処理される条件を満足するか否かということを判断することができる。
一実施形態により、ビデオ復号装置100は、第1符号化単位1500に含まれる第3符号化単位1520a,1520b,1520c,1520d,1520eが、所定の順序によって処理される条件を満足するか否かということを決定することができ、前記条件は、第3符号化単位1520a,1520b,1520c,1520d,1520eの境界により、第2符号化単位1510a,1510bの幅及び高さのうち少なくとも一つを半分に分割するか否かということと係わる。例えば、非正方形状の左側第2符号化単位1510aの高さを半分に分割して決定される第3符号化単位1520a,1520bは、条件を満足するが、右側第2符号化単位1510bを3個の符号化単位に分割して決定される第3符号化単位1520c,1520d,1520eの境界が、右側第2符号化単位1510bの幅または高さを半分に分割することができないので、第3符号化単位1520c,1520d,1520eは、条件を満足することができないと決定され、ビデオ復号装置100は、そのような条件不満足の場合、スキャン順序の断絶(disconnection)と判断し、判断結果に基づいて、右側第2符号化単位1510bは、奇数個の符号化単位に分割されると決定することができる。一実施形態により、ビデオ復号装置100は、奇数個の符号化単位に分割される場合、分割された符号化単位のうち所定位置の符号化単位について、所定の制限を置くことができ、そのような制限内容または所定位置などについては、多様な実施形態を介して説明したので、詳細な説明は、省略することにする。
図16は、一実施形態により、ビデオ復号装置100が、第1符号化単位1600を分割し、少なくとも1つの符号化単位を決定する過程を図示する。一実施形態により、ビデオ復号装置100は、獲得部110を介して獲得したブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1600を分割することができる。正方形状の第1符号化単位1600は、4個の正方形状を有する符号化単位に分割されるか、あるいは非正方形状の複数個の符号化単位に分割されもする。例えば、図16を参照すれば、ブロック形態情報が、第1符号化単位1600は、正方形であるということを示し、分割形態情報が、非正方形の符号化単位に分割されることを示す場合、ビデオ復号装置100は、第1符号化単位1600を複数個の非正方形の符号化単位に分割する。具体的には、分割形態情報が、第1符号化単位1600を、水平方向または垂直方向に分割し、奇数個の符号化単位を決定することを示す場合、ビデオ復号装置100は、正方形状の第1符号化単位1600を、奇数個の符号化単位として、垂直方向に分割されて決定された第2符号化単位1610a,1610b,1610c、または水平方向に分割されて決定された第2符号化単位1620a,1620b,1620cに分割することができる。
一実施形態により、ビデオ復号装置100は、第1符号化単位1600に含まれる第2符号化単位1610a,1610b,1610c,1620a,1620b,1620cが、所定の順序によって処理されるこ条件を満足するか否かということを決定することができ、前記条件は、第2符号化単位1610a,1610b,1610c,1620a,1620b,1620cの境界により、第1符号化単位1600の幅及び高さのうち少なくとも一つを半分に分割するか否かということと係わる。図16を参照すれば、正方形状の第1符号化単位1600を垂直方向に分割して決定される第2符号化単位1610a,1610b,1610cの境界が、第1符号化単位1600の幅を半分に分割することができないので、第1符号化単位1600は、所定の順序によって処理される条件を満足することができないと決定されもする。また、正方形状の第1符号化単位1600を水平方向に分割して決定される第2符号化単位1620a,1620b,1620cの境界が、第1符号化単位1600の幅を半分に分割することができないので、第1符号化単位1600は、所定の順序によって処理される条件を満足することができないとも決定される。ビデオ復号装置100は、そのような条件不満足の場合、スキャン順序の断絶と判断し、判断結果に基づいて、第1符号化単位1600は、奇数個の符号化単位に分割されると決定することができる。一実施形態により、ビデオ復号装置100は、奇数個の符号化単位に分割される場合、分割された符号化単位のうち所定位置の符号化単位について、所定の制限を置くことができ、そのような制限内容または所定位置などについては、多様な実施形態を介して説明したので、詳細な説明は、省略することにする。
一実施形態により、ビデオ復号装置100は、第1符号化単位を分割し、多様な形態の符号化単位を決定することができる。
図16を参照すれば、ビデオ復号装置100は、正方形状の第1符号化単位1600、非正方形状の第1符号化単位1630または1650を、多様な形態の符号化単位に分割 することができる。
図17は、一実施形態により、ビデオ復号装置100が、第1符号化単位1700が分割されて決定された非正方形状の第2符号化単位、が所定の条件を満足する場合、第2符号化単位が分割されうる形態が制限されることを図示する。
一実施形態により、ビデオ復号装置100は、獲得部105を介して獲得したブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、正方形状の第1符号化単位1700を、非正方形状の第2符号化単位1710a,1710b,1720a,1720bに分割すると決定することができる。第2符号化単位1710a,1710b,1720a,1720bは、独立して分割されもする。それにより、ビデオ復号装置100は、第2符号化単位1710a,1710b,1720a,1720bそれぞれに係わるブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、複数個の符号化単位に分割するか、あるいは分割しないと決定することができる。一実施形態により、ビデオ復号装置100は、垂直方向に、第1符号化単位1700が分割されて決定された非正方形状の左側第2符号化単位1710aを水平方向に分割し、第3符号化単位1712a,1712bを決定することができる。ただし、ビデオ復号装置100は、左側第2符号化単位1710aを水平方向に分割した場合、右側第2符号化単位1710bは、左側第2符号化単位1710aが分割された方向と同一に、水平方向に分割されることがないように制限することができる。もし右側第2符号化単位1710bが同一方向に分割され、第3符号化単位1714a,1714bが決定された場合、左側第2符号化単位1710a及び右側第2符号化単位1710bが水平方向にそれぞれ独立して分割されることにより、第3符号化単位1712a,1712b,1714a,1714bが決定されもする。しかし、それは、ビデオ復号装置100がブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1700を4個の正方形状の第2符号化単位1730a,1730b,1730c,1730dに分割したところと同一結果であり、それは、映像復号側面において非効率的なものである。
一実施形態により、ビデオ復号装置100は、水平方向に、第1符号化単位11300が分割されて決定された非正方形状の第2符号化単位1720aまたは1720bを垂直方向に分割し、第3符号化単位1722a,1722b,1724a,1724bを決定することができる。ただし、ビデオ復号装置100は、第2符号化単位のうち一つ(例えば、上端第2符号化単位1720a)を垂直方向に分割した場合、前述の理由により、他の第2符号化単位(例えば、下端符号化単位1720b)は、上端第2符号化単位1720aが分割された方向と同一に、垂直方向に分割されることがないように制限することができる。
図18は、一実施形態により、分割形態情報が、4個の正方形状の符号化単位に分割されることを示すことができない場合、ビデオ復号装置100が、正方形状の符号化単位を分割する過程を図示する。
一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1800を分割し、第2符号化単位1810a,1810b,1820a,1820bを決定することができる。該分割形態情報には、符号化単位が分割される多様な形態に係わる情報が含まれてもよいが、多様な形態に係わる情報には、正方形状の4個の符号化単位に分割されるための情報が含まれるない場合がある。そのような分割形態情報によれば、ビデオ復号装置100は、正方形状の第1符号化単位1800を、4個の正方形状の第2符号化単位1830a,1830b,1830c,1830dに分割することができない。該分割形態情報に基づいて、ビデオ復号装置100は、非正方形状の第2符号化単位1810a,1810b,1820a,1820bを決定することができる。
一実施形態により、ビデオ復号装置100は、非正方形状の第2符号化単位1810a,1810b,1820a,1820bをそれぞれ独立して分割することができる。再帰的な方法を介して、第2符号化単位1810a,1810b,1820a,1820bそれぞれが、所定の順に分割され、それは、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、第1符号化単位1800が分割される方法に対応する分割方法でもある。
例えば、ビデオ復号装置100は、左側第2符号化単位1810aが水平方向に分割され、正方形状の第3符号化単位1812a,1812bを決定することができ、右側第2符号化単位1810bが水平方向に分割され、正方形状の第3符号化単位1814a,1814bを決定することができる。さらには、ビデオ復号装置100は、左側第2符号化単位1810a及び右側第2符号化単位1810bのいずれもが水平方向に分割され、正方形状の第3符号化単位1816a,1816b,1816c,1816dを決定することもできる。そのような場合、第1符号化単位1800が、4個の正方形状の第2符号化単位1830a,1830b,1830c,1830dに分割されたところと同一形態に符号化単位が決定されもする。
他の例を挙げれば、ビデオ復号装置100は、上端第2符号化単位1820aが垂直方向に分割され、正方形状の第3符号化単位1822a,1822bを決定することができ、下端第2符号化単位1820bが垂直方向に分割され、正方形状の第3符号化単位1824a,1824bを決定することができる。さらには、ビデオ復号装置100は、上端第2符号化単位1820a及び下端第2符号化単位1820bのいずれもが垂直方向に分割され、正方形状の第3符号化単位1822a,1822b,1824a,1824bを決定することもできる。そのような場合、第1符号化単位1800が、4個の正方形状の第2符号化単位1830a,1830b,1830c,1830dに分割されたところと同一形態に符号化単位が決定されもする。
図19は、一実施形態により、複数個の符号化単位間の処理順序が、符号化単位の分割過程によって異なりうることを図示したものである。
一実施形態により、ビデオ復号装置100は、ブロック形態情報及び分割形態情報に基づいて、第1符号化単位1900を分割することができる。ブロック形態情報が正方形状を示し、分割形態情報が、第1符号化単位1900が、水平方向及び垂直方向のうち少なくとも1つの方向に分割されることを示す場合、ビデオ復号装置100は、第1符号化単位1900を分割し、例えば、第2符号化単位1910a,1910b,1920a,1920b,1930a,1930b,1930c,1930dを決定することができる。図19を参照すれば、第1符号化単位1900が、水平方向または垂直方向だけに分割されて決定された非正方形状の第2符号化単位1910a,1910b,1920a,1920bは、それぞれに係わるブロック形態情報及び分割形態情報に基づいて、独立して分割されもする。例えば、ビデオ復号装置100は、第1符号化単位1900が垂直方向に分割されて生成された第2符号化単位1910a,1910bを水平方向にそれぞれ分割し、第3符号化単位1916a,1916b,1916c,1916dを決定することができ、第1符号化単位1900が水平方向に分割されて生成された第2符号化単位1920a,1920bを水平方向にそれぞれ分割し、第3符号化単位1926a,1926b,1926c,1926dを決定することができる。そのような第2符号化単位1910a,1910b,1920a,1920bの分割過程は、図17と係わって説明したので、詳細な説明は、省略することにする。
一実施形態により、ビデオ復号装置100は、所定の順序により、符号化単位を処理することができる。所定の順序による符号化単位の処理に係わる特徴は、図14と係わって説明したので、詳細な説明は、省略することにする。図19を参照すれば、ビデオ復号装置100は、正方形状の第1符号化単位1900を分割し、4個の正方形状の第3符号化単位1916a,1916b,1916c,1916d,1926a,1926b,1926c,1926dを決定することができる。一実施形態により、ビデオ復号装置100は、第1符号化単位1900が分割される形態により、第3符号化単位1916a,1916b,1916c,1916d,1926a,1926b,1926c,1926dの処理順序を決定することができる。
一実施形態により、ビデオ復号装置100は、垂直方向に分割されて生成された第2符号化単位1910a,1910bを水平方向にそれぞれ分割し、第3符号化単位1916a,1916b,1916c,1916dを決定することができ、ビデオ復号装置100は、左側第2符号化単位1910aに含まれる第3符号化単位1916a,1916bを垂直方向に先に処理した後、右側第2符号化単位1910bに含まれる第3符号化単位1916c,1916dを垂直方向に処理する順序(1917)により、第3符号化単位1916a,1916b,1916c,1916dを処理することができる。
一実施形態により、ビデオ復号装置100は、水平方向に分割されて生成された第2符号化単位1920a,1920bを垂直方向にそれぞれ分割し、第3符号化単位1926a,1926b,1926c,1926dを決定することができ、ビデオ復号装置100は、上端第2符号化単位1920aに含まれる第3符号化単位1926a,1926bを水平方向にまず処理した後、下端第2符号化単位1920bに含まれる第3符号化単位1926c,1926dを水平方向に処理する順序(1927)により、第3符号化単位1926a,1926b,1926c,1926dを処理することができる。
図19を参照すれば、第2符号化単位1910a,1910b,1920a,1920bがそれぞれ分割され、正方形状の第3符号化単位1916a,1916b,1916c,1916d,1926a,1926b,1926c,1926dが決定されもする。垂直方向に分割されて決定された第2符号化単位1910a,1910b、及び水平方向に分割されて決定された第2符号化単位1920a,1920bは、互いに異なる形態に分割されたものであるが、以後に決定される第3符号化単位1916a,1916b,1916c,1916d,1926a,1926b,1926c,1926dによれば、結局、同一形態の符号化単位において、第1符号化単位1900が分割された結果になる。それにより、ビデオ復号装置100は、ブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて、異なる過程を介して、再帰的に符号化単位を分割することにより、結果として、同一形態の符号化単位を決定しても、同一形態に決定された複数個の符号化単位を、互いに異なる順序で処理することができる。
図20は、一実施形態により、符号化単位が再帰的に分割され、複数個の符号化単位が決定される場合、符号化単位の形態及び大きさが変わることにより、符号化単位の深度が決定される過程を図示する。
一実施形態により、ビデオ復号装置100は、符号化単位の深度を、所定の基準によって決定することができる。例えば、所定の基準は、符号化単位の長辺の長さにもなる。ビデオ復号装置100は、現在符号化単位の長辺の長さが分割される前の符号化単位の長辺の長さの2n(n>0)倍に分割された場合、現在符号化単位の深度は、分割される前の符号化単位の深度よりnほど深度が増大されたものと決定することができる。以下においては、深度が増大された符号化単位を、下位深度の符号化単位と表現することにする。
図20を参照すれば、一実施形態により、正方形状であることを示すブロック形態情報(例えば、ブロック形態情報は、「0:SQUARE」を示すことができる)に基づいて、ビデオ復号装置100は、正方形状である第1符号化単位2000を分割し、下位深度の第2符号化単位2002、第3符号化単位2004などを決定することができる。正方形状の第1符号化単位2000の大きさを2Nx2Nとするならば、第1符号化単位2000の幅及び高さを1/21倍に分割して決定された第2符号化単位2002は、NxNの大きさを有することができる。さらには、第2符号化単位2002の幅及び高さを1/2サイズに分割して決定された第3符号化単位2004は、N/2xN/2の大きさを有することができる。その場合、第3符号化単位2004の幅及び高さは、第1符号化単位2000の1/22倍に該当する。第1符号化単位2000の深度がDである場合、第1符号化単位2000の幅及び高さの1/21倍である第2符号化単位2002の深度は、D+1でもあり、第1符号化単位2000の幅及び高さの1/22倍である第3符号化単位2004の深度はD+2でもある。
一実施形態により、非正方形状を示すブロック形態情報(例えば、ブロック形態情報は、高さが幅より長い非正方形であることを示す「1:NS_VER」、または幅が高さより長い非正方形であることを示す「2:NS_HOR」を示すことができる)に基づいて、ビデオ復号装置100は、非正方形状である第1符号化単位2010または2020を分割し、下位深度の第2符号化単位2012または2022、第3符号化単位2014または2024を決定することができる。
ビデオ復号装置100は、Nx2Nサイズの第1符号化単位2010の幅及び高さのうち少なくとも一つを分割し、例えば、第2符号化単位2002,2012,2022を決定することができる。すなわち、ビデオ復号装置100は、第1符号化単位2010を水平方向に分割し、NxNサイズの第2符号化単位2002、またはNxN/2サイズの第2符号化単位2022を決定することができ、水平方向及び垂直方向に分割し、N/2xNサイズの第2符号化単位2012を決定することもできる。
一実施形態により、ビデオ復号装置100は、2NxNサイズの第1符号化単位2020の幅及び高さのうち少なくとも一つを分割し、例えば、第2符号化単位2002,2012,2022を決定することもできる。すなわち、ビデオ復号装置100は、第1符号化単位2020を垂直方向に分割し、NxNサイズの第2符号化単位2002、またはN/2xNサイズの第2符号化単位2012を決定することができ、水平方向及び垂直方向に分割し、NxN/2サイズの第2符号化単位2022を決定することもできる。
一実施形態により、ビデオ復号装置100は、NxNサイズの第2符号化単位2002の幅及び高さのうち少なくとも一つを分割し、例えば、第3符号化単位2004,2014,2024を決定することもできる。すなわち、ビデオ復号装置100は、第2符号化単位2002を垂直方向及び水平方向に分割し、N/2xN/2サイズの第3符号化単位2004を決定するか、N/22xN/2サイズの第3符号化単位2014を決定するか、あるいはN/2xN/22サイズの第3符号化単位2024を決定することができる。
一実施形態により、ビデオ復号装置100は、N/2xNサイズの第2符号化単位2012の幅及び高さのうち少なくとも一つを分割し、例えば、第3符号化単位2004,2014,2024を決定することもできる。すなわち、ビデオ復号装置100は、第2符号化単位2012を水平方向に分割し、N/2xN/2サイズの第3符号化単位2004、またはN/2xN/22サイズの第3符号化単位2024を決定するか、あるいは垂直方向及び水平方向に分割し、N/22xN/2サイズの第3符号化単位2014を決定することができる。
一実施形態により、ビデオ復号装置100は、NxN/2サイズの第2符号化単位2014の幅及び高さのうち少なくとも一つを分割し、例えば、第3符号化単位2004,2014,2024を決定することもできる。すなわち、ビデオ復号装置100は、第2符号化単位2012を垂直方向に分割し、N/2xN/2サイズの第3符号化単位2004、またはN/22xN/2サイズの第3符号化単位2014を決定するか、あるいは垂直方向及び水平方向に分割し、N/2xN/22サイズの第3符号化単位2024を決定することができる。
一実施形態により、ビデオ復号装置100は、たとえば、正方形状の符号化単位2000,2002,2004を水平方向または垂直方向に分割することができる。例えば、2Nx2Nサイズの第1符号化単位2000を垂直方向に分割し、Nx2Nサイズの第1符号化単位2010を決定するか、あるいは水平方向に分割し、2NxNサイズの第1符号化単位2020を決定することができる。一実施形態により、深度が、符号化単位の最大長辺の長さに基づいて決定される場合、2Nx2Nサイズの第1符号化単位2000,2002または2004が水平方向または垂直方向に分割されて決定される符号化単位の深度は、第1符号化単位2000,2002または2004の深度と同一でもある。
一実施形態により、第3符号化単位2014または2024の幅及び高さは、第1符号化単位2010または2020の1/22倍に該当する。第1符号化単位2010または2020の深度がDである場合、第1符号化単位2010または2020の幅及び高さの1/2倍である第2符号化単位2012または2014の深度は、D+1でもあり、第1符号化単位2010または2020の幅及び高さの1/22倍である第3符号化単位2014または2024の深度は、D+2でもある。
図21は、一実施形態により、符号化単位の形態及び大きさによっても決定される深度及び符号化単位を区分するためのインデックス(PID:part index)を図示する。
一実施形態により、ビデオ復号装置100は、正方形状の第1符号化単位2100を分割し、多様な形態の第2符号化単位を決定することができる。図21を参照すれば、ビデオ復号装置100は、分割形態情報により、第1符号化単位2100を、垂直方向及び水平方向のうち少なくとも1つの方向に分割し、第2符号化単位2102a,2102b,2104a,2104b,2106a,2106b,2106c,2106dを決定することができる。すなわち、ビデオ復号装置100は、第1符号化単位2100に係わる分割形態情報に基づいて、第2符号化単位2102a,2102b,2104a,2104b,2106a,2106b,2106c,2106dを決定することができる。
一実施形態により、正方形状の第1符号化単位2100に係わる分割形態情報によって決定される第2符号化単位2102a,2102b,2104a,2104b,2106a,2106b,2106c,2106dは、長辺の長さに基づいて深度が決定されもする。例えば、正方形状の第1符号化単位2100の一辺の長さと、非正方形状の第2符号化単位2102a,2102b,2104a,2104bの長辺の長さとが同一であるので、第1符号化単位2100と、非正方形状の第2符号化単位2102a,2102b,2104a,2104bとの深度は、Dとして同一であると見ることができる。それに反し、ビデオ復号装置100が、分割形態情報に基づいて、第1符号化単位2100を4個の正方形状の第2符号化単位2106a,2106b,2106c,2106dに分割した場合、正方形状の第2符号化単位2106a,2106b,2106c,2106dの一辺の長さは、第1符号化単位2100の一辺の長さの1/2倍であるので、第2符号化単位2106a,2106b,2106c,2106dの深度は、第1符号化単位2100の深度であるDより1深度下位であるD+1の深度でもある。
一実施形態により、ビデオ復号装置100は、高さが幅より長い形態の第1符号化単位2110を、分割形態情報によって水平方向に分割し、複数個の第2符号化単位2112a,2112b,2114a,2114b,2114cに分割することができる。一実施形態により、ビデオ復号装置100は、幅が高さより長い形態の第1符号化単位2120を分割形態情報によって垂直方向に分割し、複数個の第2符号化単位2122a,2122b,2124a,2124b,2124cに分割することができる。
一実施形態により、非正方形状の第1符号化単位2110または2120に係わる分割形態情報によって決定される第2符号化単位2112a,2112b,2114a,2114b,2116a,2116b,2116c,2116dは、長辺の長さに基づいて深度が決定されもする。例えば、正方形状の第2符号化単位2112a,2112bの一辺の長さは、高さが幅より長い非正方形状の第1符号化単位2110の一辺の長さの1/2倍であるので、正方形状の第2符号化単位2102a,2102b,2104a,2104bの深度は、非正方形状の第1符号化単位2110の深度Dより1深度下位の深度であるD+1である。
さらには、ビデオ復号装置100が分割形態情報に基づいて、非正方形状の第1符号化単位2110を、奇数個の第2符号化単位2114a,2114b,2114cに分割することができる。奇数個の第2符号化単位2114a,2114b,2114cは、非正方形状の第2符号化単位2114a,2114c、及び正方形状の第2符号化単位2114bを含んでもよい。その場合、非正方形状の第2符号化単位2114a,2114cの長辺の長さ、及び正方形状の第2符号化単位2114bの一辺の長さは、第1符号化単位2110の一辺の長さの1/2倍であるので、第2符号化単位2114a,2114b,2114cの深度は、第1符号化単位2110の深度であるDより1深度下位であるD+1の深度でもある。ビデオ復号装置100は、第1符号化単位2110と係わる符号化単位の深度を決定する前記方式に対応する方式で、幅が高さより長い非正方形状の第1符号化単位2120と係わる符号化単位の深度を決定することができる。
一実施形態により、ビデオ復号装置100は、分割された符号化単位の区分のためのインデックス(PID)決定において、奇数個に分割された符号化単位が、互いに同一サイズではない場合、符号化単位間の大きさの比率に基づいて、インデックスを決定することができる。図21を参照すれば、奇数個に分割された符号化単位2114a,2114b,2114cのうち真ん中に位置する符号化単位2114bは、他の符号化単位2114a,2114cと、幅は同一であるが、高さが異なる符号化単位2114a,2114cの高さの2倍でもある。すなわち、その場合の真ん中に位置する符号化単位2114bは、他の符号化単位2114a,2114cの二つを含んでもよい。従って、スキャン順序により、真ん中に位置する符号化単位2114bのインデックス(PID)が1であるならば、その次の順序に位置する符号化単位2114cは、インデックスが2増加した3でもある。すなわち、インデックス値の不連続性が存在する。一実施形態により、ビデオ復号装置100は、そのような分割された符号化単位間の区分のためのインデックスの不連続性の存在いかんに基づいて、奇数個に分割された符号化単位が、互いに同一サイズではないか否かということを決定することができる。
一実施形態により、ビデオ復号装置100は、現在符号化単位から分割されて決定された複数個の符号化単位を区分するためのインデックスの値に基づいて、特定分割形態に分割されたものであるか否かということを決定することができる。図21を参照すれば、ビデオ復号装置100は、高さが幅より長い長方形状の第1符号化単位2110を分割し、偶数個の符号化単位2112a,2112bを決定するか、あるいは奇数個の符号化単位2114a,2114b,2114cを決定することができる。ビデオ復号装置100は、複数個の符号化単位それぞれを区分するために、各符号化単位を示すインデックス(PID)を利用することができる。一実施形態により、該PIDは、それぞれの符号化単位の所定位置のサンプル(例えば、左側上端サンプル)からも獲得される。
一実施形態により、ビデオ復号装置100は、符号化単位の区分のためのインデックスを利用して分割されて決定された符号化単位のうち、所定位置の符号化単位を決定することができる。一実施形態により、高さが幅より長い長方形状の第1符号化単位2110に係わる分割形態情報が、3個の符号化単位に分割されることを示す場合、ビデオ復号装置100は、第1符号化単位2110を、3個の符号化単位2114a,2114b,2114cに分割することができる。ビデオ復号装置100は、3個の符号化単位2114a,2114b,2114cそれぞれに係わるインデックスを割り当てることができる。ビデオ復号装置100は、奇数個に分割された符号化単位のうちの真ん中符号化単位を決定するために、各符号化単位に係わるインデックスを比較することができる。ビデオ復号装置100は、符号化単位のインデックスに基づいて、インデックスのうち真ん中値に該当するインデックスを有する符号化単位2114bを、第1符号化単位2110が分割されて決定された符号化単位のうち真ん中位置の符号化単位として決定することができる。一実施形態により、ビデオ復号装置100は、分割された符号化単位の区分のためのインデックス決定において、符号化単位が互いに同一サイズではない場合、符号化単位間のサイズ比率に基づいて、インデックスを決定することができる。図21を参照すれば、第1符号化単位2110が分割されて生成された符号化単位2114bは、他の符号化単位2114a,2114cと、幅は同一であるが、高さが異なる符号化単位2114a,2114cの高さの二倍でもある。その場合、真ん中に位置する符号化単位2114bのインデックス(PID)が1であるならば、その次の順序に位置する符号化単位2114cは、インデックスが2増加した3でもある。そのような場合のように、均一にインデックスが増大していて増加幅が異なる場合、ビデオ復号装置100は、他の符号化単位と異なる大きさを有する符号化単位を含む複数個の符号化単位に分割されたと決定することができる。一実施形態により、分割形態情報が奇数個の符号化単位に分割することを示す場合、ビデオ復号装置100は、奇数個の符号化単位のうち、所定位置の符号化単位(例えば、真ん中符号化単位)が他の符号化単位と大きさが異なる形態に現在符号化単位を分割することができる。その場合、ビデオ復号装置100は、符号化単位に係わるインデックス(PID)を利用し、異なる大きさを有する真ん中符号化単位を決定することができる。ただし、前述のインデックス、決定しようとする所定位置の符号化単位の大きさまたは位置は、一実施形態について説明するために特定したものであるので、それに限定して解釈されるものではなく、多様なインデックス、符号化単位の位置及び大きさが利用されると解釈されなければならない。
一実施形態により、ビデオ復号装置100は、符号化単位の再帰的な分割が始まる所定のデータ単位を利用することができる。
図22は、一実施形態により、ピクチャに含まれる複数個の所定のデータ単位により、複数個の符号化単位が決定されたところを図示する。
一実施形態により、所定のデータ単位は、符号化単位が、ブロック形態情報及び分割形態情報のうち少なくとも一つを利用して再帰的に分割され始めるデータ単位とも定義される。すなわち、現在ピクチャを分割する複数個の符号化単位が決定される過程で利用される最上位深度の符号化単位に該当する。以下では、説明上の便宜のために、そのような所定のデータ単位を、基準データ単位と指称する。
一実施形態により、基準データ単位は、所定サイズ及び形態を示すことができる。一実施形態により、基準符号化単位は、MxNのサンプルを含んでもよい。ここで、M及びNは、互いに同一であってもよく、2の乗数によって表現される整数でもある。すなわち、基準データ単位は、正方形または非正方形の形態を示すことができ、その後、整数個の符号化単位に分割されもする。
一実施形態により、ビデオ復号装置100は、現在ピクチャを、複数個の基準データ単位に分割することができる。一実施形態により、ビデオ復号装置100は、現在ピクチャを分割する複数個の基準データ単位を、それぞれの基準データ単位に係わる分割情報を利用して分割することができる。そのような基準データ単位の分割過程は、四分木(quad-tree)構造を利用した分割過程に対応する。
一実施形態により、ビデオ復号装置100は、現在ピクチャに含まれる基準データ単位が有することができる最小サイズをあらかじめ決定することができる。それにより、ビデオ復号装置100は、最小サイズ以上の大きさを有する多様な大きさの基準データ単位を決定することができ、決定された基準データ単位を基準に、ブロック形態情報及び分割形態情報を利用し、少なくとも1つの符号化単位を決定することができる。
図22を参照すれば、ビデオ復号装置100は、正方形状の基準符号化単位2200を利用することができ、または非正方形状の基準符号化単位2202を利用することもできる。一実施形態により、基準符号化単位の形態及び大きさは、少なくとも1つの基準符号化単位を含む多様なデータ単位(例えば、シーケンス(sequence)、ピクチャ(picture)、スライス(slice)、スライスセグメント(slice segment)、最大符号化単位など)によっても決定される。
一実施形態により、ビデオ復号装置100の獲得部105は、基準符号化単位の形態に係わる情報、及び基準符号化単位の大きさに係わる情報のうち少なくとも一つを、前記多様なデータ単位ごとに、ビットストリームから獲得することができる。正方形状の基準符号化単位2200に含まれる少なくとも1つの符号化単位が決定される過程は、図10の現在符号化単位300が分割される過程を介して説明し、非正方形状の基準符号化単位2200に含まれる少なくとも1つの符号化単位の決定される過程は、図11の現在符号化単位1100または1150が分割される過程を介して説明したので、詳細な説明は、省略することにする。
一実施形態により、ビデオ復号装置100は、所定の条件に基づいて事前に決定される一部データ単位により、基準符号化単位の大きさ及び形態を決定するために、基準符号化単位の大きさ及び形態を識別するためのインデックスを利用することができる。すなわち、獲得部105は、ビットストリームから、前記多様なデータ単位(例えば、シーケンス、ピクチャ、スライス、スライスセグメント、最大符号化単位など)において、所定の条件(例えば、スライス以下の大きさを有するデータ単位)を満足するデータ単位として、スライス、スライスセグメント、最大符号化単位ごとに、基準符号化単位の大きさ及び形態の識別のためのインデックスだけを獲得することができる。ビデオ復号装置100は、インデックスを利用することにより、前記所定の条件を満足するデータ単位ごとに、基準データ単位の大きさ及び形態を決定することができる。基準符号化単位の形態に係わる情報、及び基準符号化単位の大きさに係わる情報を、相対的に小サイズのデータ単位ごとに、ビットストリームから獲得して利用する場合、ビットストリームの利用効率が良好ではないので、基準符号化単位の形態に係わる情報、及び基準符号化単位の大きさに係わる情報を直接獲得する代わりに、前記インデックスのみを獲得して利用することができる。その場合、基準符号化単位の大きさ及び形態を示すインデックスに対応する基準符号化単位の大きさ及び形態のうち少なくとも一つは、事前に決定されている。すなわち、ビデオ復号装置100は、事前に決定された基準符号化単位の大きさ及び形態のうち少なくとも一つをインデックスによって選択することにより、インデックス獲得の基準になるデータ単位に含まれる基準符号化単位の大きさ及び形態のうち少なくとも一つを決定することができる。
一実施形態により、ビデオ復号装置100は、1つの最大符号化単位に含む少なくとも1つの基準符号化単位を利用することができる。すなわち、映像を分割する最大符号化単位には、少なくとも1つの基準符号化単位が含まれ、それぞれの基準符号化単位の再帰的な分割過程を介して符号化単位が決定されもする。一実施形態により、最大符号化単位の幅及び高さのうち少なくとも一つは、基準符号化単位の幅及び高さのうち少なくとも1つの整数倍に該当する。一実施形態により、基準符号化単位の大きさは、最大符号化単位を、四分木構造によってn回分割した大きさでもある。すなわち、ビデオ復号装置100は、最大符号化単位を四分木構造によってn回分割し、基準符号化単位を決定することができ、多様な実施形態により、基準符号化単位をブロック形態情報及び分割形態情報のうち少なくとも一つに基づいて分割することができる。
図23は、一実施形態により、ピクチャ2300に含まれる基準符号化単位の決定順序を決定する基準になるプロセッシングブロックを図示する。
一実施形態により、ビデオ復号装置100は、ピクチャを分割する少なくとも1つのプロセッシングブロックを決定することができる。プロセッシングブロックとは、映像を分割する少なくとも1つの基準符号化単位を含むデータ単位であり、プロセッシングブロックに含まれる少なくとも1つの基準符号化単位は、特定順に決定されもする。すなわち、それぞれのプロセッシングブロックで決定される少なくとも1つの基準符号化単位の決定順序は、基準符号化単位が決定される多様な順序の種類のうち一つに該当し、それぞれのプロセッシングブロックで決定される基準符号化単位決定順序は、プロセッシングブロックごとに異なる。プロセッシングブロックごとに決定される基準符号化単位の決定順序は、ラスタースキャン(raster scan)、Zスキャン(Z-scan)、Nスキャン(N-scan)、右上向対角スキャン(up-right diagonal scan)、水平的スキャン(horizontal scan)、垂直的スキャン(vertical scan)のように、多様な順序のうち一つでもあるが、決定される順序は、前記スキャン順序に限定して解釈されるものではない。
一実施形態により、ビデオ復号装置100は、プロセッシングブロックの大きさに係わる情報を獲得し、映像に含まれる少なくとも1つのプロセッシングブロックの大きさを決定することができる。ビデオ復号装置100は、プロセッシングブロックの大きさに係わる情報をビットストリームから獲得し、映像に含まれる少なくとも1つのプロセッシングブロックの大きさを決定することができる。そのようなプロセッシングブロックの大きさは、プロセッシングブロックの大きさに係わる情報が示すデータ単位の所定サイズでもある。
一実施形態により、ビデオ復号装置100の獲得部105は、ビットストリームから、プロセッシングブロックの大きさに係わる情報を、特定のデータ単位ごとに獲得することができる。例えば、プロセッシングブロックの大きさに係わる情報は、映像、シーケンス、ピクチャ、スライス、スライスセグメントなどのデータ単位であり、ビットストリームから獲得されもする。すなわち、獲得部105は、前述の多くのデータ単位ごとに、ビットストリームから、プロセッシングブロックの大きさに係わる情報を獲得することができ、ビデオ復号装置100は、獲得されたプロセッシングブロックの大きさに係わる情報を利用し、ピクチャを分割する少なくとも1つのプロセッシングブロックの大きさを決定することができ、そのようなプロセッシングブロックの大きさは、基準符号化単位の整数倍の大きさでもある。
一実施形態により、ビデオ復号装置100は、ピクチャ2300に含まれるプロセッシングブロック2302,2312の大きさを決定することができる。例えば、ビデオ復号装置100は、ビットストリームから獲得されたプロセッシングブロックの大きさに係わる情報に基づいて、プロセッシングブロックの大きさを決定することができる。図23を参照すれば、ビデオ復号装置100は、一実施形態により、プロセッシングブロック2302,2312の横サイズを、基準符号化単位横サイズの4倍、縦サイズを、基準符号化単位の縦サイズの4倍と決定することができる。ビデオ復号装置100は、少なくとも1つのプロセッシングブロック内において、少なくとも1つの基準符号化単位が決定される順序を決定することができる。
一実施形態により、ビデオ復号装置100は、プロセッシングブロックの大きさに基づいて、ピクチャ2300に含まれるそれぞれのプロセッシングブロック2302,2312を決定することができ、プロセッシングブロック2302,2312に含まれる少なくとも1つの基準符号化単位の決定順序を決定することができる。一実施形態により、基準符号化単位の決定は、基準符号化単位の大きさの決定を含んでもよい。
一実施形態により、ビデオ復号装置100は、ビットストリームから少なくとも1つのプロセッシングブロックに含まれる少なくとも1つの基準符号化単位の決定順序に係わる情報を獲得することができ、獲得した決定順序に係わる情報に基づいて、少なくとも1つの基準符号化単位が決定される順序を決定することができる。該決定順序に係わる情報は、プロセッシングブロック内において、基準符号化単位が決定される順序または方向とも定義される。すなわち、基準符号化単位が決定される順序は、それぞれのプロセッシングブロックごとに独立して決定されもする。
一実施形態により、ビデオ復号装置100は、特定データ単位ごとに、基準符号化単位の決定順序に係わる情報をビットストリームから獲得することができる。例えば、獲得部105は、基準符号化単位の決定順序に係わる情報を映像、シーケンス、ピクチャ、スライス、スライスセグメント、プロセッシングブロックなどのデータ単位ごとにビットストリームから獲得することができる。基準符号化単位の決定順序に係わる情報は、プロセッシングブロック内での基準符号化単位決定順序を示すので、決定順序に係わる情報は、整数個のプロセッシングブロックを含む特定データ単位ごとに獲得されもする。
ビデオ復号装置100は、一実施形態により、決定された順序に基づいて、少なくとも1つの基準符号化単位を決定することができる。
一実施形態により、獲得部105は、ビットストリームから、プロセッシングブロック2302,2312と係わる情報として、基準符号化単位決定順序に係わる情報を獲得することができ、ビデオ復号装置100は、前記プロセッシングブロック2302,2312に含まれた少なくとも1つの基準符号化単位を決定する順序を決定し、符号化単位の決定順序により、ピクチャ2300に含まれる少なくとも1つの基準符号化単位を決定することができる。図23を参照すれば、ビデオ復号装置100は、それぞれのプロセッシングブロック2302,2312と係わる少なくとも1つの基準符号化単位の決定順序2304,2314を決定することができる。例えば、基準符号化単位の決定順序に係わる情報が、プロセッシングブロックごとに獲得される場合、それぞれのプロセッシングブロック2302,2312と係わる基準符号化単位決定順序は、プロセッシングブロックごとにも異なる。プロセッシングブロック2302と係わる基準符号化単位決定順序2304がラスタースキャン(raster scan)順序である場合、プロセッシングブロック2302に含まれる基準符号化単位は、ラスタースキャン順序によっても決定される。それに対し、他のプロセッシングブロック2312と係わる基準符号化単位決定順序2314がラスタースキャン順序の逆順である場合、プロセッシングブロック2312に含まれる基準符号化単位は、ラスタースキャン順序の逆順によっても決定される。
ビデオ復号装置100は、一実施形態により、決定された少なくとも1つの基準符号化単位を復号することができる。ビデオ復号装置100は、前述の実施形態を介して決定された基準符号化単位に基づいて、映像を復号することができる。基準符号化単位を復号する方法は、映像を復号する多様な方法を含んでもよい。
一実施形態により、ビデオ復号装置100は、現在符号化単位の形態を示すブロック形態情報、または現在符号化単位を分割する方法を示す分割形態情報をビットストリームから獲得して利用することができる。ブロック形態情報または分割形態情報は、多様なデータ単位と係わるビットストリームにも含まれる。例えば、ビデオ復号装置100は、シーケンスパラメーターセット(sequence parameter set)、ピクチャパラメーターセット(picture parameter set)、ビデオパラメーターセット(video parameter set)、スライスヘッダ(slice header)、スライスセグメントヘッダ(slice segment header)に含まれたブロック形態情報または分割形態情報を利用することができる。さらには、ビデオ復号装置100は、最大符号化単位、基準符号化単位、プロセッシングブロックごとに、ビットストリームから、ブロック形態情報または分割形態情報に対応するシンタックスをビットストリームから獲得して利用することができる。
以上、多様な実施形態を中心に説明した。本開示が属する技術分野で当業者であるならば、本開示が、本開示の本質的な特性から外れない範囲で変形された形態に具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。本開示の範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本開示に含まれたものであると解釈されなければならないのである。
一方、前述の本開示の実施形態は、コンピュータで実行されるプログラムに作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータで具現されもする。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体(例えば、ROM(read-only memory)、フロッピーディスク、ハードディスクなど、光学的判読媒体(例えば、CD-ROM(compact disc read only memory)、DVD(digital versatile disc)のような記録媒体を含む。