(57)【特許請求の範囲】
【請求項１】
動きベクトル予測方法であって、
現在のブロックの動きベクトルに対応する基準フレームを取得する段階と、
前記基準フレームの基準フレームタイプに基づき前記現在のブロックの前記動きベクトルの動きベクトルタイプを決定する段階であって、前記動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、前記ショートターム動きベクトルはショートターム基準フレームから取得され、前記ロングターム動きベクトルはロングターム基準フレームから取得される、段階と、
前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、前記少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得する段階であって、前記第１の動きベクトルは、前記空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、段階と、
前記第１の動きベクトルの取得した前記動きベクトルタイプが、前記現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、前記現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき前記空間的に隣接する画素ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを決定し、前記第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの候補動きベクトル予測子として用いる段階と
を備え、前記第２の動きベクトルがショートターム動きベクトルであり、第２の動きベクトルに対応するピクチャ順カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）差分が、現在のブロックの動きベクトルに対応するＰＯＣ差分と異なるとき、前記第２の動きベクトルがスケーリングされた後に候補動きベクトル予測子として用いられる、動きベクトル予測方法。
【請求項２】
前記少なくとも１つの第１の動きベクトルの取得した前記動きベクトルタイプが前記現在のブロックの前記動きベクトルの前記動きベクトルタイプと同じであるとき、前記少なくとも１つの第１の動きベクトルを前記現在のブロックの候補動きベクトル予測子として用いる段階をさらに備える、請求項１に記載の動きベクトル予測方法。
【請求項３】
前記現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、前記空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、前記空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定し、前記仮想基準ブロックと前記空間的に隣接する予測ブロックとの間の動きベクトルを前記現在のブロックの動きベクトル予測子として用いる段階であって、前記仮想基準フレームの基準フレームタイプが前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じであり、前記仮想基準フレームは再構築済フレームである、段階をさらに備える、請求項１または２に記載の動きベクトル予測方法。
【請求項４】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックに空間的に隣接し、前記予め設定された範囲内の前記少なくとも１つの画素ブロックの画素再構築値を含み、前記現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき前記空間的に隣接する画素ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを決定し、前記第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの候補動きベクトル予測子として用いる前記段階は、前記空間的に隣接する画素ブロックの第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定する段階と、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の動きベクトルを前記第２の動きベクトルとして用いる段階であって、前記第１の基準フレームの基準フレームタイプは、前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、段階と、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階とを有する、請求項１に記載の動きベクトル予測方法。
【請求項５】
前記空間的に隣接する画素ブロックの第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定する前記段階と、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の動きベクトルを前記第２の動きベクトルとして用いる段階であって、前記第１の基準フレームの基準フレームタイプは、前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、段階と、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階とは、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有するとき、前記空間的に隣接する画素ブロックの前記第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの前記画素差分が最も小さい前記第１の基準ブロックを決定する段階と、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の前記動きベクトルを前記第２の動きベクトルとして用いる段階であって、前記第１の基準フレームの前記基準フレームタイプは前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、段階と、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階とを含む、請求項４に記載の動きベクトル予測方法。
【請求項６】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックの前記少なくとも１つの空間的に隣接する予測ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを含み、前記第２の動きベクトルの動きベクトルタイプは前記第１の動きベクトルの前記動きベクトルタイプと異なり、前記現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき前記空間的に隣接する画素ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを決定し、前記第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの候補動きベクトル予測子として用いる前記段階は、前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトル、または前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階を有する、請求項１に記載の動きベクトル予測方法。
【請求項７】
前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトル、または前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる前記段階は、
前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階と、
前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階と
を含む、請求項６に記載の動きベクトル予測方法。
【請求項８】
前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトル、または前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる前記段階は、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有する場合、前記現在のブロックと相対的に前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用い、または前記現在のブロックと相対的に前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いる段階を含む、請求項６に記載の動きベクトル予測方法。
【請求項９】
前記現在のブロックに関してコーディング方法で、または前記現在のブロックに関してデコード方法で用いられてよい請求項１から８のいずれか一項に記載の動きベクトル予測方法。
【請求項１０】
動きベクトル予測デバイスであって、
現在のブロックの動きベクトルに対応する基準フレームを取得するよう構成された第１の取得ユニットと、
前記基準フレームの基準フレームタイプに基づき前記現在のブロックの前記動きベクトルの動きベクトルタイプを決定するよう構成された決定ユニットであって、前記動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、前記ショートターム動きベクトルはショートターム基準フレームから取得され、前記ロングターム動きベクトルはロングターム基準フレームから取得される、決定ユニットと、
前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、前記少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得するよう構成された第２の取得ユニットであって、前記第１の動きベクトルは、前記空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、第２の取得ユニットと、
前記第１の動きベクトルの取得した前記動きベクトルタイプが、前記現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、前記現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき前記空間的に隣接する画素ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを決定し、前記第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの候補動きベクトル予測子として用いるよう構成された第１のプロセシングユニットと
を備え、前記第２の動きベクトルがショートターム動きベクトルであり、第２の動きベクトルに対応するピクチャ順カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）差分が、現在のブロックの動きベクトルに対応するＰＯＣ差分と異なるとき、前記第２の動きベクトルがスケーリングされた後に候補動きベクトル予測子として用いられる、動きベクトル予測デバイス。
【請求項１１】
前記少なくとも１つの第１の動きベクトルの取得した前記動きベクトルタイプが前記現在のブロックの前記動きベクトルの前記動きベクトルタイプと同じであるとき、前記少なくとも１つの第１の動きベクトルを前記現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングユニットをさらに備える、請求項１０に記載の動きベクトル予測デバイス。
【請求項１２】
前記現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、前記空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、前記空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定することと、前記仮想基準ブロックと前記空間的に隣接する予測ブロックとの間の動きベクトルを前記現在のブロックの動きベクトル予測子として用いることであって、前記仮想基準フレームの基準フレームタイプが前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じであり、前記仮想基準フレームは再構築済フレームである、こととを実行するよう構成された第３のプロセシングユニットをさらに備える、請求項１０または１１に記載の動きベクトル予測デバイス。
【請求項１３】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックに空間的に隣接し、前記予め設定された範囲内の前記少なくとも１つの画素ブロックの画素再構築値を含み、前記第１のプロセシングユニットは、前記空間的に隣接する画素ブロックの第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の動きベクトルを前記第２の動きベクトルとして用いることであって、前記第１の基準フレームの基準フレームタイプは、前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、ことと、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングモジュールを有する、請求項１０に記載の動きベクトル予測デバイス。
【請求項１４】
前記第１のプロセシングモジュールは、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有するとき、前記空間的に隣接する画素ブロックの前記第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの前記画素差分が最も小さい前記第１の基準ブロックを決定することと、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の前記動きベクトルを前記第２の動きベクトルとして用いることであって、前記第１の基準フレームの前記基準フレームタイプは前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、ことと、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングサブモジュールを含む、請求項１３に記載の動きベクトル予測デバイス。
【請求項１５】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックの前記少なくとも１つの空間的に隣接する予測ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを含み、前記第２の動きベクトルの動きベクトルタイプは前記第１の動きベクトルの前記動きベクトルタイプと異なり、前記第１のプロセシングユニットは、前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトル、または前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成された第２のプロセシングモジュールを有する、請求項１０に記載の動きベクトル予測デバイス。
【請求項１６】
前記第２のプロセシングモジュールは、
前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成された第２のプロセシングサブモジュールと、
前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成された第３のプロセシングサブモジュールと
を含む、請求項１５に記載の動きベクトル予測デバイス。
【請求項１７】
前記第２のプロセシングモジュールは、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有する場合、前記現在のブロックと相対的に前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用い、または前記現在のブロックと相対的に前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成された第４のプロセシングサブモジュールを含む、請求項１５に記載の動きベクトル予測デバイス。
【請求項１８】
前記現在のブロックをコーディングするためにエンコーダで、または前記現在のブロックをデコードするためにデコーダで用いられてよい請求項１０から１７のいずれか一項に記載の動きベクトル予測デバイス。
【請求項１９】
動きベクトル予測デバイスであって、
前記動きベクトル予測デバイスは、プロセッサと、前記プロセッサに連結されたメモリとを備え、
前記プロセッサは、
現在のブロックの動きベクトルに対応する基準フレームを取得することと
前記基準フレームの基準フレームタイプに基づき前記現在のブロックの前記動きベクトルの動きベクトルタイプを決定することであって、前記動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、前記ショートターム動きベクトルはショートターム基準フレームから取得され、前記ロングターム動きベクトルはロングターム基準フレームから取得される、ことと、
前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、前記少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得することであって、前記第１の動きベクトルは、前記空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、ことと、
前記第１の動きベクトルの取得した前記動きベクトルタイプが、前記現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、前記現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき前記空間的に隣接する画素ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを決定し、前記第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの候補動きベクトル予測子として用いることと
を実行するよう構成され、前記第２の動きベクトルがショートターム動きベクトルであり、第２の動きベクトルに対応するピクチャ順カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）差分が、現在のブロックの動きベクトルに対応するＰＯＣ差分と異なるとき、前記第２の動きベクトルがスケーリングされた後に候補動きベクトル予測子として用いられる、動きベクトル予測デバイス。
【請求項２０】
前記プロセッサはさらに、前記少なくとも１つの第１の動きベクトルの取得した前記動きベクトルタイプが前記現在のブロックの前記動きベクトルの前記動きベクトルタイプと同じであるとき、前記少なくとも１つの第１の動きベクトルを前記現在のブロックの候補動きベクトル予測子として用いるよう構成されている、請求項１９に記載の動きベクトル予測デバイス。
【請求項２１】
前記プロセッサはさらに、前記現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、前記空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、前記空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定することと、前記仮想基準ブロックと前記空間的に隣接する予測ブロックとの間の動きベクトルを前記現在のブロックの動きベクトル予測子として用いることであって、前記仮想基準フレームの基準フレームタイプが前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じであり、前記仮想基準フレームは再構築済フレームであること、とを実行するよう構成されている、請求項１９または２０に記載の動きベクトル予測デバイス。
【請求項２２】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックに空間的に隣接し、前記予め設定された範囲内の前記少なくとも１つの画素ブロックの画素再構築値を含み、前記プロセッサは、前記空間的に隣接する画素ブロックの第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の動きベクトルを前記第２の動きベクトルとして用いることであって、前記第１の基準フレームの基準フレームタイプは、前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、ことと、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることとを実行するよう構成されている、請求項１９に記載の動きベクトル予測デバイス。
【請求項２３】
前記プロセッサは、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有するとき、前記空間的に隣接する画素ブロックの前記第１の基準フレーム内で、前記空間的に隣接する画素ブロックとの前記画素差分が最も小さい前記第１の基準ブロックを決定することと、前記第１の基準ブロックと前記空間的に隣接する画素ブロックとの間の前記動きベクトルを前記第２の動きベクトルとして用いることであって、前記第１の基準フレームの前記基準フレームタイプは前記現在のブロックの前記動きベクトルに対応する前記基準フレームの前記基準フレームタイプと同じである、ことと、前記第２の動きベクトル、または前記第２の動きベクトルの前記スケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることとを実行するよう構成されている、請求項２２に記載の動きベクトル予測デバイス。
【請求項２４】
前記現在のブロックの前記空間的に隣接する画素ブロックは、前記現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、前記現在のブロックの前記空間的に隣接する画素ブロックの前記デコード情報は、前記現在のブロックの前記少なくとも１つの空間的に隣接する予測ブロックの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルを含み、前記第２の動きベクトルの動きベクトルタイプは前記第１の動きベクトルの前記動きベクトルタイプと異なり、前記プロセッサは、前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトル、または前記少なくとも１つの空間的に隣接する予測ブロックの前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成されている、請求項１９に記載の動きベクトル予測デバイス。
【請求項２５】
前記プロセッサは、
前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることと、
前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いることと
を実行するよう構成されている、請求項２４に記載の動きベクトル予測デバイス。
【請求項２６】
前記プロセッサは、前記現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有し、前記現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接するブロックの第１の動きベクトルが前記現在のブロックの前記動きベクトルと異なる動きベクトルタイプを有する場合、前記現在のブロックと相対的に前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記左側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用い、または前記現在のブロックと相対的に前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトルが利用可能であるとき、前記上側の予め設定された位置にある前記空間的に隣接する予測ブロックの前記少なくとも１つの現在のブロックの動きベクトルと同じベクトルタイプを有する第２の動きベクトル、または前記第２の動きベクトルのスケーリング値を前記現在のブロックの前記候補動きベクトル予測子として用いるよう構成されている、請求項２４に記載の動きベクトル予測デバイス。
【請求項２７】
前記現在のブロックをコーディングするためにエンコーダで、または前記現在のブロックをデコードするためにデコーダで用いられてよい請求項１９から２６のいずれか一項に記載の動きベクトル予測デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１７年６月１３日に国家知識産権局に提出され発明の名称が「ＭＯＴＩＯＮ  ＶＥＣＴＯＲ  ＰＲＥＤＩＣＴＩＯＮ  ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ」である中国特許出願第２０１７１０４４５８７３．７号に基づく優先権を主張する。当該中国特許出願は、その全体が参照により本明細書に組み込まれる。
【０００２】
本願は、ピクチャ処理技術の分野に関し、特に動きベクトル予測方法およびデバイスに関する。
【背景技術】
【０００３】
動きベクトル（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，ＭＶ）関連の情報伝送におけるデータ量を削減しコーディング効率を向上させるよう、高効率ビデオコーディング（ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ，ＨＥＶＣ）規格におけるフレーム間コーディングに関して、ＭＶ予測コーディング技術が用いられる。ＨＥＶＣ規格におけるフレーム間予測コーディングは、２つのモード、フレーム間（ｉｎｔｅｒ）モードと、マージ（ｍｅｒｇｅ）／スキップ（ｓｋｉｐ）モードとに分けられる。現在のブロックに関してｉｎｔｅｒモードが用いられるとき、現在のブロックのＭＶの基準フレームインデックス（ｒｅｆｅｒｅｎｃｅ  ｆｒａｍｅ  ｉｎｄｅｘ）、動きベクトル予測子インデックス（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ  ｉｎｄｅｘ，ＭＶＰ  ｉｎｄｅｘ）、および動きベクトルの差分（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｉｆｆｅｒｅｎｃｅ，ＭＶＤ）がビットストリーム内で特定される。現在のブロックのＭＶが指す基準フレームは基準フレームインデックスに基づき決定され、動きベクトル予測子インデックスは、動きベクトル予測子（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ，ＭＶＰ）候補リスト内の候補が現在のブロックのＭＶの予測子として用いられることを示し、現在のブロックのＭＶは、ＭＶＰをＭＶＤに追加することにより取得される。ｍｅｒｇｅ／ｓｋｉｐモードが現在のブロックに関して用いられるとき、動きベクトルの差分も基準フレームインデックスもビットストリーム内で特定されず、ＭＶＰ  ｉｎｄｅｘのみが特定される。ＭＶＰ  ｉｎｄｅｘに基づきＭＶＰ候補リストから対応するＭＶと、ＭＶに対応する基準フレームとが選択され、現在のブロックのＭＶと、現在のブロックのＭＶに対応する基準フレームとして用いられる。
【０００４】
２つの解決法では、現在のブロックの空間的に隣接するブロックおよび時間的に隣接するブロックの動きベクトルを用いることにより動きベクトル予測子リスト（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ  ｌｉｓｔ）を構築する必要がある。動きベクトルのうちそれぞれが、ＭＶＰ候補（ＭＶＰ  ｃａｎｄｉｄａｔｅ）と呼ばれる。それから、ビットストリームで送信されるＭＶＰ  ｉｎｄｅｘに基づき動きベクトル予測子リストから対応するＭＶＰ候補が見つけられ、その対応するＭＶＰ候補が、現在のブロックの動きベクトル予測子として決定される。前方予測、後方予測、および双方向予測のうちいずれか１つにより、ｉｎｔｅｒモードの現在のブロックに対してフレーム間予測が実施されてよい。ｉｎｔｅｒモードのいずれのブロックも１つまたは２つのＭＶを有しており、ＭＶＰリストは、そのブロック内の各ＭＶに関して構築される必要がある。
【０００５】
現在のブロックの各空間的に隣接するブロックまたは時間的に隣接するブロックに対して単方向予測が実施されるとき、その空間的に隣接するブロックまたは時間的に隣接するブロックは１つのＭＶのみを含む。現在のブロックに対して双方向予測が実施されるとき、含まれる２つのＭＶは同じタイプのものであり得る。ｉｎｔｅｒモードにおいて、隣接するブロックのＭＶのタイプが、現在のブロックのＭＶのタイプと異なる（具体的には、一方のＭＶがロングターム動きベクトルであり、他方のＭＶがショートターム動きベクトルである）場合、隣接するブロックのそのＭＶはＭＶＰリストに追加されない。結果として、ＭＶＰリスト内のゼロ動きベクトル（ｚｅｒｏ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，Ｚｅｒｏ  ＭＶ）の数が増え、ＭＶ予測効率が低いものとなる。
【発明の概要】
【０００６】
本願の実施形態は動きベクトル予測方法を提供する。現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの動きベクトルの動きベクトルタイプと異なるとき、当該方法が用いられて、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する動きベクトルで現在のブロックの動きベクトル予測子リストが補われ、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【０００７】
本願の実施形態の第１の態様は、動きベクトル予測方法であって、
デバイスがビットストリームから、現在のブロックの動きベクトルに対応する基準フレームを取得する段階と、
それから、デバイスは、基準フレームの基準フレームタイプを決定し、基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定する段階であって、基準フレームの基準フレームタイプはロングターム基準フレームまたはショートターム基準フレームを含み、現在のブロックの動きベクトルの動きベクトルタイプはロングターム動きベクトルまたはショートターム動きベクトルを含み、ショートターム動きベクトルはショートターム基準フレームから取得され、ロングターム動きベクトルはロングターム基準フレームから取得される、段階と、
現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、デバイスが、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる第１の動きベクトルから少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得する段階と、
第１の動きベクトルの取得した動きベクトルタイプが、現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、デバイスが、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階と
を含む動きベクトル予測方法を提供する。本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、現在のブロックの動きベクトル予測子が決定され、つまり、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する第２の動きベクトルで現在のブロックの動きベクトル予測子リストが補われて、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【０００８】
考えられる設計において、本願の本実施形態の第１の態様の第１の実施例では、方法は、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルを現在のブロックの候補動きベクトル予測子として用いる段階をさらに含む。本願の本実施形態では、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルが現在のブロックの動きベクトル予測子として決定される。このことは本願の本実施形態の実施例を追加する。
【０００９】
考えられる設計において、本願の本実施形態の第１の態様の第２の実施例では、方法はさらに、
現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、デバイスが空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定する段階であって、仮想基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、仮想基準フレームは再構築済フレームである、段階と、
仮想基準ブロックと空間的に隣接する予測ブロックとの間の動きベクトルを現在のブロックの動きベクトル予測子として用いる段階と
を含む。本願の本実施形態では、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、デバイスが動きベクトル予測子を決定する処理が本願の本実施形態の実施例を追加する。
【００１０】
考えられる設計において、本願の本実施形態の第１の態様の第３の実施例では、
現在のブロックの空間的に隣接する画素ブロックは、現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックに空間的に隣接し、予め設定された範囲内の少なくとも１つの画素ブロックの画素再構築値を含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階は、デバイスが空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定する段階であって、第１の基準フレームの基準フレームタイプは、現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、段階と、第１の基準ブロックと画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いる段階と、さらに、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階とを有する。本願の本実施形態では、本願の本実施形態がより処理可能であるよう、画素ブロックに基づき動きベクトル予測子を決定する処理が説明される。
【００１１】
考えられる設計において、本願の本実施形態の第１の態様の第４の実施例では、デバイスが、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定する段階と、第１の基準ブロックと画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いる段階と、さらに、第２の動きベクトルを現在のブロックの候補動きベクトル予測子として用いる段階とは、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定する段階と、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いる段階であって、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、段階と、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階とを含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、画素ブロックに基づき動きベクトル予測子を決定する具体的な処理が提供される。
【００１２】
考えられる設計において、本願の本実施形態の第１の態様の第５の実施例では、
現在のブロックの空間的に隣接する画素ブロックは、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルを含み、第２の動きベクトルの動きベクトルタイプは第１の動きベクトルの動きベクトルタイプと異なり、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階は、少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階を有する。本願の本実施形態では、本願の本実施形態がより処理可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する処理が説明される。
【００１３】
考えられる設計において、本願の本実施形態の第１の態様の第６の実施例では、
少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階は、
現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階と、
現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階と
を含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する具体的な処理が提供される。
【００１４】
考えられる設計において、本願の本実施形態の第１の態様の第７の実施例では、  少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階は、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有する場合、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用い、または現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる段階を含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する別の具体的な処理が提供される。
【００１５】
考えられる設計において、本願の本実施形態の第１の態様の第８の実施例では、方法は、候補動きベクトル予測子の数が予め定められた値より少なく、現在のブロックの同位置ブロック（ｃｏ−ｌｏｃａｔｅｄ  ｂｌｏｃｋ）の少なくとも１つの第１の動きベクトルが利用可能であり、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる段階をさらに含む。本願の本実施形態では、候補動きベクトル予測子の数が予め定められた値より少ないとき、同位置ブロックの第１の動きベクトルが現在のブロックの動きベクトル予測子として用いられる。このことは本願の本実施形態の実施例を追加する。
【００１６】
考えられる設計において、本願の本実施形態の第１の態様の第９の実施例では、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる段階の後、方法は、候補動きベクトル予測子の数が予め定められた値より少ないとき、候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを候補動きベクトル予測子として用いる段階をさらに含む。本願の本実施形態では、候補動きベクトル予測子の数が予め定められた値より少ないとき、ゼロ動きベクトルが現在のブロックの動きベクトル予測子として用いられる。このことは本願の本実施形態の実施例を追加する。
【００１７】
考えられる設計において、本願発明の本実施形態の第１の態様の第１０の実施例では、方法は、現在のブロックに関してコーディング方法で、または現在のブロックに関してデコード方法で用いられてよい。
【００１８】
本願の実施形態の第２の態様は、
動きベクトル予測デバイスであって、
現在のブロックの動きベクトルに対応する基準フレームを取得するよう構成された第１の取得ユニットと、
基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定するよう構成された決定ユニットであって、動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、ショートターム動きベクトルはショートターム基準フレームから取得され、ロングターム動きベクトルはロングターム基準フレームから取得される、決定ユニットと、
現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得するよう構成された第２の取得ユニットであって、第１の動きベクトルは、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、第２の取得ユニットと、
第１の動きベクトルの取得した動きベクトルタイプが、現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第１のプロセシングユニットと
を含む動きベクトル予測デバイスを提供する。本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、現在のブロックの動きベクトル予測子が決定され、つまり、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する第２の動きベクトルで現在のブロックの動きベクトル予測子リストが補われて、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【００１９】
考えられる設計において、本願の本実施形態の第２の態様の第１の実施例では、デバイスは、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルを現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングユニットをさらに含む。本願の本実施形態では、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルが現在のブロックの動きベクトル予測子として決定される。このことは本願の本実施形態の実施例を追加する。
【００２０】
考えられる設計において、本願の本実施形態の第２の態様の第２の実施例では、デバイスは、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定することと、仮想基準ブロックと空間的に隣接する予測ブロックとの間の動きベクトルを現在のブロックの動きベクトル予測子として用いることであって、仮想基準フレームの基準フレームタイプが現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、仮想基準フレームは再構築済フレームである、こととを実行するよう構成された第３のプロセシングユニットをさらに含む。本願の本実施形態では、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、デバイスが動きベクトル予測子を決定する処理が本願の本実施形態の実施例を追加する。
【００２１】
考えられる設計において、本願の本実施形態の第２の態様の第３の実施例では、現在のブロックの空間的に隣接する画素ブロックは、現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックに空間的に隣接し、予め設定された範囲内の少なくとも１つの画素ブロックの画素再構築値を含み、対応して、第１のプロセシングユニットは、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは、現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングモジュールを有する。本願の本実施形態では、本願の本実施形態がより処理可能であるよう、画素ブロックに基づき動きベクトル予測子を決定する処理が説明される。
【００２２】
考えられる設計において、本願の本実施形態の第２の態様の第４の実施例では、第１のプロセシングモジュールは、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングサブモジュールを含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、画素ブロックに基づき動きベクトル予測子を決定する具体的な処理が提供される。
【００２３】
考えられる設計において、本願の本実施形態の第２の態様の第５の実施例では、現在のブロックの空間的に隣接する画素ブロックは、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルを含み、第２の動きベクトルの動きベクトルタイプは第１の動きベクトルの動きベクトルタイプと異なり、対応して、第１のプロセシングユニットは、少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングモジュールを有する。本願の本実施形態では、本願の本実施形態がより処理可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する処理が説明される。
【００２４】
考えられる設計において、本願の本実施形態の第２の態様の第６の実施例では、
第２のプロセシングモジュールは、
現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングサブモジュールと、
現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第３のプロセシングサブモジュールと
を含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する具体的な処理が提供される。
【００２５】
考えられる設計において、本願の本実施形態の第２の態様の第７の実施例では、
第２のプロセシングモジュールは、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有する場合、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用い、または現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第４のプロセシングサブモジュールを含む。本願の本実施形態では、本願の本実施形態がより処理可能および実行可能であるよう、空間的に隣接する予測ブロックに基づき動きベクトル予測子を決定する別の具体的な処理が提供される。
【００２６】
考えられる設計において、本願の本実施形態の第２の態様の第８の実施例では、デバイスは、候補動きベクトル予測子の数が予め定められた値より少なく、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルが利用可能であり、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いるよう構成された第４のプロセシングユニットをさらに含む。本願の本実施形態では、候補動きベクトル予測子の数が予め定められた値より少ないとき、同位置ブロックの第１の動きベクトルが現在のブロックの動きベクトル予測子として用いられる。このことは本願の本実施形態の実施例を追加する。
【００２７】
考えられる設計において、本願の本実施形態の第２の態様の第９の実施例では、デバイスは、候補動きベクトル予測子の数が予め定められた値より少ないとき、候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを候補動きベクトル予測子として用いるよう構成された第５のプロセシングユニットをさらに含む。本願の本実施形態では、候補動きベクトル予測子の数が予め定められた値より少ないとき、ゼロ動きベクトルが現在のブロックの動きベクトル予測子として用いられる。このことは本願の本実施形態の実施例を追加する。
【００２８】
考えられる設計において、本願発明の本実施形態の第２の態様の第１０の実施例では、デバイスは、現在のブロックをコーディングするためにエンコーダで、または現在のブロックをデコードするためにデコーダで用いられてよい。
【００２９】
本願の第３の態様は、プロセッサと、プロセッサに連結されたメモリとを含む動きベクトル予測デバイスを提供し、
プロセッサは、
現在のブロックの動きベクトルに対応する基準フレームを取得することと
基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定することであって、動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、ショートターム動きベクトルはショートターム基準フレームから取得され、ロングターム動きベクトルはロングターム基準フレームから取得される、ことと、
現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得することであって、第１の動きベクトルは、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、ことと、
第１の動きベクトルの取得した動きベクトルタイプが、現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることと
を実行するよう構成されている。
【００３０】
考えられる設計において、本願の本実施形態の第３の態様の第１の実施例では、プロセッサはさらに、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルを現在のブロックの候補動きベクトル予測子として用いるよう構成されている。
【００３１】
考えられる設計において、本願の本実施形態の第３の態様の第２の実施例では、プロセッサはさらに、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定することと、仮想基準ブロックと空間的に隣接する予測ブロックとの間の動きベクトルを現在のブロックの動きベクトル予測子として用いることであって、仮想基準フレームの基準フレームタイプが現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、仮想基準フレームは再構築済フレームである、こととを実行するよう構成されている。
【００３２】
考えられる設計において、本願の本実施形態の第３の態様の第３の実施例では、現在のブロックの空間的に隣接する画素ブロックは、現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックに空間的に隣接し、予め設定された範囲内の少なくとも１つの画素ブロックの画素再構築値を含み、対応して、プロセッサは、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは、現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、プロセッサは、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成されている。
【００３３】
考えられる設計において、本願の本実施形態の第３の態様の第４の実施例では、プロセッサは、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成されている。
【００３４】
考えられる設計において、本願の本実施形態の第３の態様の第５の実施例では、現在のブロックの空間的に隣接する画素ブロックは、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含み、対応して、現在のブロックの空間的に隣接する画素ブロックのデコード情報は、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルを含み、第２の動きベクトルの動きベクトルタイプは第１の動きベクトルの動きベクトルタイプと異なり、対応して、プロセッサは、少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成されている。
【００３５】
考えられる設計において、本願の本実施形態の第３の態様の第６の実施例では、
プロセッサは、
現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用い、
現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる
よう構成されている。
【００３６】
考えられる設計において、本願の本実施形態の第３の態様の第７の実施例では、
プロセッサは、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有する場合、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用い、または現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成されている。
【００３７】
考えられる設計において、本願の本実施形態の第３の態様の第８の実施例では、デバイスは、現在のブロックをコーディングするためにエンコーダで、または現在のブロックをデコードするためにデコーダで用いられてよい。
【００３８】
本願の第４の態様はコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納する。命令がコンピュータ上で実行されたとき、コンピュータは、先述の態様の方法を実施することが可能となる。
【００３９】
本願の第５の態様は、命令を含むコンピュータプログラムプロダクトを提供する。コンピュータプログラムプロダクトがコンピュータ上で実行されたとき、コンピュータは、先述の態様の方法を実施することが可能となる。
【００４０】
先述の技術的解決法から、本願の実施形態は以下の利点を有していることが分かる。
【００４１】
本願の実施形態で提供される技術的解決法において、
現在のブロックの動きベクトルに対応する基準フレームが取得され
基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプが決定され、動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、ショートターム動きベクトルはショートターム基準フレームから取得され、ロングターム動きベクトルはロングターム基準フレームから取得され、
現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプが取得され、第１の動きベクトルは、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられ、
第１の動きベクトルの取得した動きベクトルタイプが、現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルが決定され、第２の動きベクトル、または第２の動きベクトルのスケーリング値が現在のブロックの候補動きベクトル予測子として用いられる。本願の実施形態では、動きベクトル予測子リストが充実化し、動きベクトル予測効率が向上するよう、隣接するブロックの動きベクトルのタイプが現在のブロックの動きベクトルのタイプと異なるとき隣接するブロックから動きベクトル予測子を取得できない問題が解決される。
【図面の簡単な説明】
【００４２】
【図１】本願の実施形態が適用されるシステムフレームワークの概略図である。
【００４３】
【図２】本願の実施形態に係る隣接するＬ字型エリア内の再構築済画素の概略図である。
【００４４】
【図３】本願の実施形態に係る動きベクトル予測方法の実施形態の概略図である。
【００４５】
【図４】本願の実施形態に係る動きベクトル予測方法の別の実施形態の概略図である。
【００４６】
【図５】本願の実施形態に係る動きベクトル予測方法の別の実施形態の概略図である。
【００４７】
【図６】本願の実施形態に係る動きベクトル予測デバイスの実施形態の概略図である。
【００４８】
【図７】本願の実施形態に係る動きベクトル予測デバイスの別の実施形態の概略図である。
【００４９】
【図８】本願の実施形態に係る動きベクトル予測デバイスの別の実施形態の概略図である。
【００５０】
【図９】本願の実施形態に係る動きベクトル予測デバイスの別の実施形態の概略図である。
【００５１】
【図１０】本願の実施形態に係る動きベクトル予測デバイスの別の実施形態の概略図である。
【００５２】
【図１１】本願の実施形態に係るコーデック装置の概略ブロック図である。
【００５３】
【図１２】本願の実施形態に係るコーデック装置の概略図である。
【発明を実施するための形態】
【００５４】
本願の実施形態は動きベクトル予測方法を提供する。現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの動きベクトルの動きベクトルタイプと異なるとき、当該方法が用いられて、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する動きベクトルで現在のブロックの動きベクトル予測子リストが補われ、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【００５５】
本願内の解決法を当業者がより理解出来るよう、本願の実施形態における添付図面を参照し本願の実施形態を以下に説明する。
【００５６】
本願の明細書、請求項、および添付図面において「第１」、「第２」、「第３」、「第４」などの用語（これらが存在する場合）は、同様のもの同士を区別することが意図されており、具体的な順または順序を必ずしも示さない。そのように用いられるデータは、本明細書で説明されている実施形態が、本明細書で例示または説明されている順とは他の順で実装され得るよう、適切な状況において互いに入れ替え可能であることが理解されるべきである。加えて、「含む」、「有する」、およびそれらの変形の用語は非排他的な包含を網羅するよう意図されており、例えば、列挙されたステップまたはユニットを含む処理、方法、システム、プロダクト、またはデバイスは必ずしもそれら明示的に列挙されたステップまたはユニットに限定されず、明示的に列挙されていない、またはそのような処理、方法、システム、プロダクト、またはデバイスに固有ではない他のステップまたはユニットを含んでよい。
【００５７】
本願の実施形態において提供される方法は、図１に示されるシステムフレームワークに適用されてよい。システムフレームワークにおいて、現在のブロックの、空間的に隣接する予測ブロックおよび同位置ブロックに基づき動きベクトル予測子が決定される。現在のブロックの空間的に隣接する予測ブロックは、左側の空間的に隣接する予測ブロックと上側の空間的に隣接する予測ブロックとに分類されてよい。空間的に隣接する予測ブロックは異なる方式で分類されてよく、例えば、図１に示されるように、左側の空間的に隣接する予測ブロックが、現在のブロックの、左下のブロックＡ０および左隣のブロックＡ１を含み、上側の空間的に隣接する予測ブロックが、現在のブロックの、右上のブロックＢ０、真上のブロックＢ１、および左上のブロックＢ２を含み、同位置ブロック（ｃｏ−ｌｏｃａｔｅｄ  ｂｌｏｃｋ）が右下のブロックＣ０および中央のブロックＣ１を含むように分類されてよい。現在のブロックの隣接するエリア内の再構築済画素に基づき現在のブロックの動きベクトル予測子が取得されるとき、現在のブロックの隣接するエリアの一部で再構築済画素が選択される。同位置ブロックは図２に示されるように分類されてよく、再構築済画素は、現在のブロック周りのＬ字型エリアで選択される。本願の実施形態において、現在のブロックの隣接するブロックの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるかが決定される必要があり、実際のシチュエーションに基づき、隣接するブロックの動きベクトル、または動きベクトルのスケーリング値が現在のブロックの動きベクトル予測子として決定されて、動きベクトル予測効率を向上させる。
【００５８】
理解を容易にするために、本願の実施形態における具体的な手順を以下に説明する。図３を参照すると、現在のブロックの空間的に隣接する画素ブロックが現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含むとき、本願の実施形態に係る動きベクトル予測方法の実施形態は以下のステップを含む。
【００５９】
３０１．現在のブロックの動きベクトルに対応する基準フレームを取得。
【００６０】
デバイスが、現在のブロックの動きベクトルに対応する基準フレームを取得する。デバイスは、Ｈ．２６５ビデオコーディング規格に従って同じ仕様で、ピクチャを複数のピクチャブロックにセグメント分けする。デバイスはまず、コーディング／デコードされているピクチャブロックを現在のブロックとして選択し、それから、選択された現在のブロックの動きベクトル（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，ＭＶ）に対応する基準フレームインデックスを取得し、続いて、インデックス情報に基づき、現在のブロックの動きベクトルに対応する基準フレームを決定する。
【００６１】
留意すべきことは、ピクチャブロックが予測されるとき、現在のブロックが位置するピクチャが現在のフレームと呼ばれ、現在のフレームがコーディング／デコードされる前にコーディング／デコード済みのフレームが再構築済フレームと呼ばれるということである。現在のフレームは、単方向予測フレームまたは双方向予測フレームであってよい。現在のフレームが単方向予測フレームである場合、現在のフレームは１つの基準フレームリストＬ０を有する。現在のフレームが双方向予測フレームである場合、現在のフレームは２つの基準フレームリストを有する。それら２つのリストはそれぞれＬ０およびＬ１と呼ばれる。各リストは、現在のフレームの基準フレームと呼ばれる少なくとも１つの再構築済フレームを含む。基準フレームは、現在のフレーム内のフレーム間予測のための基準画素を提供する。デバイスは、基準フレームインデックスに基づき、現在のブロックの動きベクトルが指す基準フレームを決定する。
【００６２】
理解されてよいのは、フレーム間予測は、前方予測、後方予測、または双方向予測によってｉｎｔｅｒモードの現在のブロックに対して実施されてよいということである。前方予測が実施されるとき、現在のブロックは、１つの前方基準フレームリスト（Ｌ０）と１つの前方動きベクトル（Ｌ０＿ＭＶ）とを有する。後方予測が実施されるとき、現在のブロックは、１つの後方基準フレームリスト（Ｌ１）と１つの後方ＭＶ（Ｌ１＿ＭＶ）とを有する。双方向予測が実施されるとき、現在のブロックは、２つの基準フレームリストＬ０およびＬ１を有し、また１つのＬ０＿ＭＶおよび１つのＬ１＿ＭＶを有する。言い換えれば、ｉｎｔｅｒモードのどのブロックも１つまたは２つのＭＶを有する。動きベクトル予測子（ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｏｒ，ＭＶＰ）リストは、ブロック内の各ＭＶに関して構築されてよい。基準フレームインデックスはビットストリーム内で特定される。例えば、高効率ビデオコーディング（ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ，ＨＥＶＣ）における構文要素ｒｅｆ＿ｉｄｘ＿ｌ０およびｒｅｆ＿ｉｄｘ＿ｌ１はそれぞれ、基準フレームリストＬ０およびＬ１内の基準フレームインデックスを指す。本願の本実施形態では、各現在のブロックが処理されてＭＶＰを決定してよい。各現在のブロックは、１つまたは２つのＭＶＰリストを有してよい。このことは本明細書において限定されない。
【００６３】
３０２．基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定。
【００６４】
基準フレームを取得した後、デバイスは、基準フレームから関連する情報を取得し、基準フレームの基準フレームタイプを決定する。基準フレームの基準フレームタイプは、ロングターム基準フレームまたはショートターム基準フレームを含む。それから、デバイスは、基準フレームの基準フレームタイプおよび対応関係に基づき現在のブロックの動きベクトルの動きベクトルタイプを決定する。基準フレームがロングターム基準フレームであるとき、現在のブロックの、ロングターム基準フレームに対応する動きベクトルはロングターム動きベクトルである。基準フレームがショートターム基準フレームであるとき、現在のブロックの、ショートターム基準フレームに対応する動きベクトルはショートターム動きベクトルである。
【００６５】
３０３．現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得。
【００６６】
基準フレームの基準フレームタイプと現在のブロックの動きベクトルの動きベクトルタイプとを決定した後、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、デバイスは、予め設定された順で現在のブロックの少なくとも１つの空間的に隣接する予測ブロックにアクセスする。デバイスは、現在のブロックの少なくとも１つの空間的に隣接する予測ブロックから第１の動きベクトルを取得し、現在のブロックの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを決定し、つまり、第１の動きベクトルがロングターム動きベクトルである、またはショートターム動きベクトルであると決定する。
【００６７】
留意すべきことは、第１の動きベクトルは、フレーム間予測コーディングが用いられる空間的に隣接する予測ブロックに対して動き補償が実施されるときに用いられる動きベクトルであるということである。言い換えれば、第１の動きベクトルは、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる。例えば、第１の動きベクトルはＬ０＿ＭＶおよび／またはＬ１＿ＭＶであってよい。
【００６８】
理解されてよいのは、基準フレームの基準フレームタイプと現在のブロックの動きベクトルの動きベクトルタイプとを決定した後、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、デバイスはまず、空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定し、それから、仮想基準ブロックと空間的に隣接する予測ブロックとの間の動きベクトルを現在のブロックの動きベクトル予測子として用いるということである。仮想基準フレームの基準フレームタイプは、現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである。
【００６９】
３０４．現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【００７０】
実現可能な実施例において、左側の予め設定された位置にある空間的に隣接する予測ブロックは、全ての左側の空間的に隣接する予測ブロックであってよい。
【００７１】
デバイスは、現在のブロックの左側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在する場合、デバイスは、左側の空間的に隣接する予測ブロックから、少なくとも１つの第１の動きベクトル、またはその第１の動きベクトルのスケーリング値を候補ＭＶＰとして選択し、候補ＭＶＰをＭＶＰリストへ追加する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在しない場合、言い換えれば、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、デバイスは、左側の空間的に隣接する予測ブロックの第２の動きベクトルが利用可能であるかを決定し、左側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【００７２】
留意すべきことは、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するタイプとしては２つのタイプがあってよいということである。タイプ１においては、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルがロングターム動きベクトルであり、現在のブロックの動きベクトルの動きベクトルタイプがショートターム動きベクトルである。タイプ２においては、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルがショートターム動きベクトルであり、現在のブロックの動きベクトルの動きベクトルタイプがロングターム動きベクトルである。
【００７３】
理解されてよいのは、ブロックの動きベクトルが利用可能である場合、少なくとも２つの条件が満たされる必要があるということである。第１の条件は次の通りである：このブロックがピクチャ内にあり、このブロックおよび現在のブロックが同じスライスまたは同じスライスセグメントに属する。第２の条件は次の通りである：フレーム間予測コーディングがこのブロックに関して用いられる。他の制約もさらにあってよい。例えば、このブロックおよび現在のブロックが同じタイル（ｔｉｌｅ）などに属する。これら制約は異なる規格で異なる。このことは本明細書において限定されない。
【００７４】
例えば、デバイスが、現在のブロックの左側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する処理は、３ラウンドのスクリーニングを含む。スクリーニングの第１のラウンドは次の通りである：デバイスが、左側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順１で連続的にアクセスし、第１の動きベクトルが条件１「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じピクチャ順カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）を有する」を満たすかを決定し、まず、条件１を満たす第１の動きベクトルを候補ＭＶＰとして用いる。スクリーニングの第２のラウンドは次の通りである：デバイスが、左側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順１で連続的にアクセスし、第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。２つの基準フレームのタイプがショートターム基準フレームであり、同じフレームではないとき、空間的に隣接する予測ブロックの第１の動きベクトルが、候補ＭＶＰとして用いられる前にスケーリングされる必要がある。動きベクトルのスケーリング値は、２つのＰＯＣ群の差分間の割合に基づき取得される。例えば、ＨＥＶＣにおける動きベクトルスケーリング処理が実施される。どの第１の動きベクトルも条件２を満たさないとき、スクリーニングの第３のラウンドが実施される。スクリーニングの第３のラウンドは次の通りである：デバイスが、左側の空間的に隣接する予測ブロックの第２の動きベクトルに、予め設定された順２で連続的にアクセスし、左側の空間的に隣接する予測ブロックの第２の動きベクトルが利用可能であるかを決定する。アクセス順２は、アクセス順１と同じであっても異なってもよい。例えば、アクセス順２は左下のブロックＡ０から左隣のブロックＡ１への順であってよい。
【００７５】
３０５．現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【００７６】
実現可能な実施例において、上側の予め設定された位置にある空間的に隣接する予測ブロックは、全ての上側の空間的に隣接する予測ブロックであってよい。
【００７７】
デバイスは、現在のブロックの上側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在する場合、デバイスは、上側の空間的に隣接する予測ブロックから、少なくとも１つの第１の動きベクトル、またはその第１の動きベクトルのスケーリング値を候補ＭＶＰとして選択し、候補ＭＶＰをＭＶＰリストへ追加する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在しない場合、言い換えれば、現在のブロックの全ての上側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、デバイスは、上側の空間的に隣接する予測ブロックの第２の動きベクトルが利用可能であるかを決定し、上側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【００７８】
例えば、デバイスが、現在のブロックの上側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する処理は、３ラウンドのスクリーニングを含む。スクリーニングの第１のラウンドは次の通りである：デバイスが、上側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順３で連続的にアクセスし、第１の動きベクトルが条件１「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じピクチャ順カウントを有する」を満たすかを決定する。デバイスはまず、条件１を満たす第１の動きベクトルを候補ＭＶＰとして決定し、それから、上側の空間的に隣接する予測ブロックが条件３「左側の空間的に隣接する予測ブロックのうち左隣のブロックおよび左下のブロックの両方のＭＶが利用不可能である」を満たすかを決定する。条件３が満たされるとき、スクリーニングの第２のラウンドが実施される。スクリーニングの第２のラウンドは次の通りである：デバイスが、上側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順３で連続的にアクセスし、第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。２つの基準フレームのタイプがショートターム基準フレームであり、同じフレームではないとき、空間的に隣接する予測ブロックの第１の動きベクトルが、候補ＭＶＰとして用いられる前にスケーリングされる必要がある。動きベクトルのスケーリング値は、２つのＰＯＣ群の差分間の割合に基づき取得される。例えば、ＨＥＶＣにおける動きベクトルスケーリング処理が実施される。どの第１の動きベクトルも条件２を満たさないとき、スクリーニングの第３のラウンドが実施される。スクリーニングの第３のラウンドは次の通りである：デバイスが、上側の空間的に隣接する予測ブロックの第２の動きベクトルに、予め設定された順４で連続的にアクセスし、上側の空間的に隣接する予測ブロックの第２の動きベクトルが利用可能であるかを決定する。アクセス順４は、アクセス順３と同じであっても異なってもよい。例えば、アクセス順４は右上のブロックＢ０から真上のブロックＢ１、そして左上のブロックＢ２への順であってよい。
【００７９】
留意すべきことは、選択された第２の動きベクトルがショートターム動きベクトルであり、第２の動きベクトルに対応するＰＯＣ差分が、現在のブロックの動きベクトルに対応するＰＯＣ差分と異なるとき、第２の動きベクトルが、スケーリングされた後に候補ＭＶＰとして用いられるということである。選択された第２の動きベクトルがロングターム動きベクトルであるか、または第２の動きベクトルに対応するＰＯＣ差分が、現在のブロックの動きベクトルに対応するＰＯＣ差分と同じであるとき、第２の動きベクトルがスケーリングされる必要はなく、そのまま候補ＭＶＰとして用いられ、ＭＶＰリストに追加される。
【００８０】
理解されてよいのは、このケースで、ＭＶＰリストが同じ候補ＭＶＰを含む場合、繰り返される候補ＭＶＰはＭＶＰリストから取り除かれ、候補ＭＶＰ数が更新されるということである。
【００８１】
３０６．候補動きベクトル予測子の数が予め定められた値より少なく、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルが利用可能であり、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【００８２】
オプションで、候補動きベクトル予測子の数が予め定められた値より少なく、デバイスが、現在のブロックの同位置ブロックの第１の動きベクトルが利用可能であると決定し、現在のブロックの同位置ブロックの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであると決定するとき、デバイスは、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【００８３】
留意すべきことは、空間的に隣接する予測ブロックから選択される候補ＭＶＰの数がＮより小さい（言い換えれば、ＭＶＰリストが完全に埋まっておらず、ＭＶＰリストの長さがＮである）とき、ＭＶＰは、同位置ブロックの第１の動きベクトルから選択され、ＭＶＰリストに追加されるということである。例えば、Ｎの値に関しては、Ｎ＝２またはＮ＝３であってよい。
【００８４】
例えば、デバイスは、同位置ブロック内の右下のブロックＣ０および中央のブロックＣ１の第１の動きベクトルに連続的にアクセスし、同位置ブロックから取得された第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。
【００８５】
３０７．候補動きベクトル予測子の数が予め定められた値より少ないとき、候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを候補動きベクトル予測子として用いる。
【００８６】
候補動きベクトル予測子の数が予め定められた値より依然として少ない場合、デバイスは、現在のブロックの候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを動きベクトル予測子として用いる。
【００８７】
本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、現在のブロックの候補動きベクトル予測子が決定され、つまり、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する第２の動きベクトルで現在のブロックの動きベクトル予測子リストが補われて、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【００８８】
オプションで、先述の空間的に隣接する画素ブロックに関して第２の動きベクトル（および第１の動きベクトル）を導出するための方法が提供される。（隣接するブロックと短く呼ばれる）空間的に隣接する画素ブロックが再構築され、再構築済画素が取得された後、隣接するブロックの予測コーディングモードと、隣接するブロックに対して動き補償が実施されるときに用いられるＭＶのタイプとに基づき、隣接するブロックの再構築済画素を用いることにより、基準フレーム内で動きサーチが実施されて、第２の動きベクトルを取得する（そして、隣接するブロックがフレーム内予測ブロックである場合、第１の動きベクトルを取得する）。隣接するブロックのタイプには以下の４つがあってよく、隣接するブロックの全てのタイプの処理方式が別々に提供される。
【００８９】
（Ａ）隣接するブロックに関してフレーム間予測が用いられ、ショートターム動きベクトル（ｓｈｏｒｔ−ｔｅｒｍ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，ＳＭＶ）のみが動き補償に関して用いられる（言い換えれば、隣接するブロックの第１の動きベクトルがＳＭＶのみを含む）場合、ロングターム基準フレーム内で動きサーチが実施されてロングターム動きベクトル（ｌｏｎｇ−ｔｅｒｍ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ，ＬＭＶ）を第２の動きベクトルとして導出し、隣接するブロックに対して実施された動き補償に関して用いられるＳＭＶが第１の動きベクトルとして用いられる。例として、以下の処理が含まれる：動きサーチの始点がまず決定される。隣接するブロックの空間的に隣接する予測ブロック（オプションで、同位置ブロックがさらに含まれてよい）内の全てのＬＭＶが見つけられる（ＬＭＶは、これらのブロックの第１の動きベクトルおよび第２の動きベクトルからのものである）。特に、利用可能なＬＭＶがない場合、第２の動きベクトルは利用不可能である。隣接するブロックの再構築済画素をテンプレートとして用いて、および各ＬＭＶを動きベクトルとして用いて現在のフレーム内のテンプレートエリアと、ＬＭＶが指す基準フレーム内の対応するテンプレートエリアとの間の差分ピクチャ（すなわち、第１の差分ピクチャ）を取得することにより動き補償が実施される。エネルギーが最も低い第１の差分ピクチャに対応するＬＭＶが指す位置が、動きサーチの次のステップにおけるサーチ始点ＬＭＶ＿ｓｔａｒｔとして用いられる。第１の差分ピクチャのエネルギーは、以下の３つの方式のうちいずれか１つによって計算されてよい：差分ピクチャ内の全ての画素の差分二乗和（ｓｕｍ  ｏｆ  ｓｑｕａｒｅｄ  ｄｉｆｆｅｒｅｎｃｅ，ＳＳＤ）、差分ピクチャ内の全ての画素の絶対差分和（ｓｕｍ  ｏｆ  ａｂｓｏｌｕｔｅ  ｄｉｆｆｅｒｅｎｃｅ，ＳＡＤ）、アダマール変換が差分ピクチャに対して実施された後に取得される絶対アダマール変換差分和（ｓｕｍ  ｏｆ  ａｂｓｏｌｕｔｅ  Ｈａｄａｍａｒｄ  ｔｒａｎｓｆｏｒｍｅｄ  ｄｉｆｆｅｒｅｎｃｅｓ，ＳＡＴＤ）。隣接するブロックの再構築済画素は、隣接するブロックの全ての再構築済画素であってよく、右下の四辺形を成す画素と、右側の複数の列内の画素と、下側の複数の行の画素とを組み合わせることにより形成されるＬ字型エリア内の再構築済画素であってよく、またはその他であってよい。このことは本明細書において限定されない。
【００９０】
それから、始点に基づき動きサーチが実施され、導出されたＬＭＶが決定される。隣接するブロックの再構築済画素をテンプレートとして用いることにより、およびＬＭＶ＿ｓｔａｒｔを始点として用いることにより、ＬＭＶ＿ｓｔａｒｔに対応するロングターム基準フレーム内で、サーチ範囲［−Ｘ１，Ｘ１］のサーチウィンドウで最適なＭＶがサーチされる。この最適なＭＶは、現在のフレーム内のテンプレートエリアと、ＭＶが指すサーチ位置に対応するテンプレートエリアとの間の差分ピクチャ（すなわち、第２の差分ピクチャ）の最も低いエネルギーをもたらす。この最適なＭＶが、導出されたＬＭＶとして決定される。サーチ精度は１／４画素精度または１／２画素精度であってよく、サーチ方法は、フルサーチ、ダイアモンドクイックサーチ（ｄｉａｍｏｎｄ  ｓｅａｒｃｈ）、またはヘキサゴンクイックサーチ（ｈｅｘａｇｏｎ  ｓｅａｒｃｈ）であってよい。Ｘ１は、１以上の正の整数である。例えば、Ｘ１は１、２、３または４に等しい。第２の差分ピクチャのエネルギーは、以下の３つの方式のうち１つで計算されてよい：ＳＡＤ、ＳＳＤ、およびＳＡＴＤ。第２の差分ピクチャのエネルギーを計算するための方法は、第１の差分ピクチャのエネルギーを計算するためのものと同じであっても異なってもよい。例として、第１の差分ピクチャのエネルギーおよび第２の差分ピクチャのエネルギーの両方に関してＳＡＤが用いられる。代替的に、第１の差分ピクチャのエネルギーに関してＳＡＤが用いられ、第２の差分ピクチャのエネルギーに関してＳＡＴＤが用いられる。
【００９１】
（Ｂ）隣接するブロックに関してフレーム間予測が用いられ、ＬＭＶのみが動き補償に関して用いられる（言い換えれば、隣接するブロックの第１の動きベクトルがＬＭＶのみを含む）場合、ショートターム基準フレーム内で動きサーチが実施されてＳＭＶを第２の動きベクトルとして導出し、隣接するブロックのＬＭＶが第１の動きベクトルとして用いられる。以下の２つの方法のうちいずれかが実装のために用いられてよい。方法１は次の通りである：各ショートターム基準フレーム内の動きサーチの始点がまず決定される。基準フレームリスト内のＭ個のショートフレーム基準フレームのうち各基準フレームＦｓに関して、隣接するブロックの空間的に隣接する予測ブロック（オプションで、同位置ブロックがさらに含まれてよい）内の全てのＳＭＶが、基準フレームＦｓを指すＳＭＶとなるようスケーリングされる（ＳＭＶは、これらのブロックの第１の動きベクトルおよび第２の動きベクトルからのものである）。特に、利用可能なＳＭＶがない場合、第２の動きベクトルは利用不可能である。隣接するブロックの再構築済画素をテンプレートとして用いることにより、および各ＳＭＶを動きベクトルとして用いることにより基準フレームＦｓ内で動き補償が実施され、エネルギーが最も低い第１の差分ピクチャに対応するＳＭＶが、ショートターム基準フレームＦｓ内の動きサーチの始点ＳＭＶ＿ｓｔａｒｔとして用いられる。先述の処理は、全てのショートターム基準フレーム内で実施されて、各ショートターム基準フレーム内の動きサーチの始点を決定する。ショートターム基準フレーム内の各基準フレームに関して、ショートターム基準フレーム内の最適なＭＶが決定される。Ｍ個の基準フレームのうち各基準フレームＦｓに関して、隣接するブロックの再構築済画素をテンプレートとして用いることにより、および基準フレームＦｓに対応するＳＭＶ＿ｓｔａｒｔを動きサーチの始点として用いることによりサーチ範囲［−Ｘ２，Ｘ２］のサーチウィンドウで最適なＭＶがサーチされる。この最適なＭＶは、現在のフレーム内のテンプレートエリアと、ＭＶが指すサーチ位置に対応するテンプレートエリアとの間の第２の差分ピクチャの最も低いエネルギーをもたらす。Ｘ２は、１以上の正の整数である。例えば、Ｘ２は１、２、３または４に等しく、または別の値であってよい。このことは本明細書において限定されない。先述の処理は、全てのショートターム基準フレーム内で実施されて、各ショートターム基準フレーム内の最適なＭＶを決定する。最終的に、導出されたＳＭＶが決定される。Ｍ個のショートターム基準フレーム内の最適なＭＶに対応する第２の差分エネルギーが比較され、最も低い第２の差分エネルギーに対応する最適なＭＶが最終的に導出されたＳＭＶとして決定される。方法２は次の通りである：動きサーチの始点がまず決定される：隣接するブロックの空間的に隣接する予測ブロック内の全てのＳＭＶが見つけられ、隣接するブロックの再構築済画素をテンプレートとして用いることにより、および各ＳＭＶを動きベクトルとして用いることにより、各ＳＭＶに対応する基準フレーム内で動き補償が実施され、エネルギーが最も低い第１の差分ピクチャに対応するＳＭＶが、動きサーチの始点ＳＭＶ＿ｓｔａｒｔとして用いられる。それから、導出されたＳＭＶが決定される。隣接するブロックの再構築済画素をテンプレートとして用いることにより、およびＳＭＶ＿ｓｔａｒｔを動きサーチの始点として用いることにより、ＳＭＶ＿ｓｔａｒｔに対応するショートターム基準フレーム内で、サーチ範囲［−Ｘ２，Ｘ２］のサーチウィンドウで最適なＭＶがサーチされる。この最適なＭＶは、現在のフレーム内のテンプレートエリアと、ＭＶが指すサーチ位置に対応するテンプレートエリアとの間の第２の差分ピクチャの最も低いエネルギーをもたらす。
【００９２】
（Ｃ）隣接するブロックに関してフレーム間予測が用いられ、動き補償に関してＳＭＶおよびＬＭＶが用いられた場合（言い換えれば、隣接するブロックの第１の動きベクトルがＳＭＶおよびＬＭＶを含む場合）、隣接するブロックに関して第２の動きベクトルが導出される必要はなく、隣接するブロックの第２の動きベクトルは利用不可能である。
【００９３】
（Ｄ）隣接するブロックに関してフレーム内予測が用いられる場合、（Ａ）に示される方法に従ってＬＭＶが導出され、（Ｂ）に示される方法に従ってＳＭＶが導出される。ＳＭＶとＬＭＶとに対応する第２の差分ピクチャのエネルギーが比較され、エネルギーがより低い第２の差分ピクチャに対応するＭＶが第１の動きベクトルとして用いられ、エネルギーがより高い第２の差分ピクチャに対応するＭＶが第２の動きベクトルとして用いられる。オプションで、代替的に、ＳＭＶが常に第１の動きベクトルとして用いられ、ＬＭＶが常に第２の動きベクトルとして用いられる。
【００９４】
オプションで、実施例において、フレームがコーディング／デコードされるとき、フレーム内の全てのブロックの第１の動きベクトルが４×４ブロックの形態で動きベクトルフィールドに格納される。これはＨＥＶＣの動きベクトル格納方式と同様である。第２の動きベクトルは、４×４ブロックの形態で別の動きベクトルフィールドに格納される。よって、対応する動きベクトルフィールド内で空間的に隣接する予測ブロックの２つのタイプのＭＶが取得されてよい。フレームのコーディング／デコードが完了した後、第１の動きベクトルフィールドのみをメモリに保存する必要があり、第２の動きベクトルフィールドは保存および格納がされなくてよい。
【００９５】
オプションで、計算の複雑さを減らすべく、再構築済ブロックに関してフレーム間コーディングモードが用いられ、再構築済ブロックの第１の動きベクトルが１つのタイプのＭＶのみを含むとき、再構築済ブロックに関して、再構築済ブロックの空間的に隣接する予測ブロックの全ての第１の動きベクトルが再構築済ブロックの第１の動きベクトルと同じタイプを有する場合、再構築済ブロックに対して動きサーチを実施して再構築済ブロックの第２の動きベクトルを導出する先述の処理は実施されず、ブロックの第２の動きベクトルは利用不可能である。
【００９６】
オプションで、計算の複雑さを減らすべく、コーディングツリーユニット（ｃｏｄｉｎｇ  ｔｒｅｅ  ｕｎｉｔ，ＣＴＵ）インデックスＳｔａｒｔ＿ＣＴＵ＿ｉｎｄｅｘがスライスヘッダに追加されてよく、再構築済ブロックに対して動きサーチを実施して再構築済ブロックの第２の動きベクトルを導出する（および、再構築済ブロックがフレーム内コードブロックである場合に第１の動きベクトルを導出する）先述の処理は、ＣＴＵ番号がピクチャ内のＳｔａｒｔ＿ＣＴＵ＿ｉｎｄｅｘ未満であるＣＴＵ内のブロックに対して実施されない。これらのブロックの第２の動きベクトルは利用不可能であり、これらのブロック内のフレーム内コードブロックの第１の動きベクトルも利用不可能である。
【００９７】
図４を参照すると、現在のブロックの空間的に隣接する画素ブロックが現在のブロックの少なくとも１つの空間的に隣接する予測ブロックを含むとき、本願の実施形態に係る動きベクトル予測方法の別の実施形態は以下のステップを含む。
【００９８】
４０１．現在のブロックの動きベクトルに対応する基準フレームを取得。
【００９９】
４０２．基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定。
【０１００】
４０３．現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得。
【０１０１】
本実施形態のステップ４０１からステップ４０３は、図３に示される実施形態のステップ３０１からステップ３０３と同様である。詳細はここで改めて説明しない。
【０１０２】
４０４．現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有する場合、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を候補動きベクトル予測子として用い、または現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【０１０３】
デバイスは、現在のブロックの左側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在する場合、デバイスは、左側の空間的に隣接する予測ブロックから、少なくとも１つの第１の動きベクトル、またはその第１の動きベクトルのスケーリング値を候補ＭＶＰとして選択し、候補ＭＶＰをＭＶＰリストへ追加する。第１の動きベクトルのうちその少なくとも１つの第１の動きベクトルが存在しない場合、言い換えれば、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、デバイスは、現在のブロックの全ての上側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと同じ動きベクトルタイプを有するかを決定する。現在のブロックの全ての上側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと同じ動きベクトルタイプを有する場合、デバイスは、現在のブロックの左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルが利用可能であるかを決定し、現在のブロックの、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルのうち少なくとも１つが利用可能であるとき、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルのうち少なくとも１つ、または左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルのうち少なくとも１つのスケーリング値を候補動きベクトル予測子として用いる。
【０１０４】
例えば、デバイスが、現在のブロックの左側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する処理は、２ラウンドのスクリーニングを含む。スクリーニングの第１のラウンドは次の通りである：デバイスが、左側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順１で連続的にアクセスし、第１の動きベクトルが条件１「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じピクチャ順カウント（ｐｉｃｔｕｒｅ  ｏｒｄｅｒ  ｃｏｕｎｔ，ＰＯＣ）を有する」を満たすかを決定し、まず、条件１を満たす第１の動きベクトルを候補ＭＶＰとして決定する。スクリーニングの第２のラウンドは次の通りである：デバイスが、左側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順１で連続的にアクセスし、第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。２つの基準フレームのタイプがショートターム基準フレームであり、同じフレームではないとき、空間的に隣接する予測ブロックの第１の動きベクトルが、候補ＭＶＰとして用いられる前にスケーリングされる必要がある。動きベクトルのスケーリング値は、２つのＰＯＣ群の差分間の割合に基づき取得される。例えば、ＨＥＶＣにおける動きベクトルスケーリング処理が実施される。
【０１０５】
デバイスが、現在のブロックの上側の空間的に隣接する予測ブロックの第１の動きベクトルのうち、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する少なくとも１つの第１の動きベクトルが存在するかを決定する処理は、２ラウンドのスクリーニングを含む。スクリーニングの第１のラウンドは次の通りである：デバイスが、上側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順３で連続的にアクセスし、第１の動きベクトルが条件１「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じピクチャ順カウントを有する」を満たすかを決定し、まず、条件１を満たす第１の動きベクトルを候補ＭＶＰとして決定する。スクリーニングの第２のラウンドは次の通りである：デバイスが、上側の空間的に隣接する予測ブロックの第１の動きベクトルに、予め設定された順３で連続的にアクセスし、第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。２つの基準フレームのタイプがショートターム基準フレームであり、同じフレームではないとき、隣接するブロックの第１の動きベクトルが、候補ＭＶＰとして用いられる前にスケーリングされる必要がある。動きベクトルのスケーリング値は、２つのＰＯＣ群の差分間の割合に基づき取得される。例えば、ＨＥＶＣにおける動きベクトルスケーリング処理が実施される。
【０１０６】
デバイスは、現在のブロックの左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルが利用可能であるかを決定し、現在のブロックの、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルが利用可能である場合、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルのうち少なくとも１つ、または左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルのうち少なくとも１つのスケーリング値を候補動きベクトル予測子として用いる。
【０１０７】
留意すべきことは、現在のブロックの左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルが利用可能であるかを決定する前に、デバイスはさらに、ＭＶＰリストが空である（言い換えれば、現在のブロックの空間的に隣接する予測ブロックの第１の動きベクトルがどれも現在のブロックの動きベクトルと同じ動きベクトルタイプを有さない）かを決定する必要があるということである。ＭＶＰリストが空でないとき、ＭＶＰリストには少なくとも１つの候補がある。ＭＶＰリストが空であるとき、デバイスは、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内の第２の動きベクトルに予め設定された順５で連続的にアクセスし、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロック内のＫ個の利用可能な第２の動きベクトル、またはそれらＫ個の第２の動きベクトルのスケーリング値をＭＶＰとして用いる。Ｋは、ＭＶＰリストの長さＮ（すなわち、予め定められた値）以下の正の整数である。例えば、Ｋ＝１またはＫ＝２である。
【０１０８】
理解されてよいのは、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロックは、現在のブロックの左側および上側に位置するブロックを含むということである。好ましくは、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロックは、左隣のブロックＡ１、真上のブロックＢ１、左下のブロックＡ０、右上のブロックＢ０、および左上のブロックＢ２を含み、アクセス順５は、左隣のブロックＡ１から真上のブロックＢ１、左下のブロックＡ０、右上のブロックＢ０、そして左上のブロックＢ２という順であってよく、または左下のブロックＡ０から左隣のブロックＡ１、右上のブロックＢ０、真上のブロックＢ１、そして左上のブロックＢ２という順であってよい。代替的に、好ましくは、左側の空間的に隣接する予測ブロックおよび上側の空間的に隣接する予測ブロックは、左隣のブロックＡ１、真上のブロックＢ１、および左上のブロックＢ２を含み、アクセス順５は、左隣のブロックＡ１から真上のブロックＢ１、そして左上のブロックＢ２という順であってよい。オプションで、ＭＶＰリストが同じ候補ＭＶＰを含む場合、繰り返される候補ＭＶＰはＭＶＰリストから取り除かれ、候補ＭＶＰ数が更新されるということである。
【０１０９】
４０５．候補動きベクトル予測子の数が予め定められた値より少なく、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルが利用可能であり、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【０１１０】
オプションで、候補動きベクトル予測子の数が予め定められた値より少なく、デバイスが、現在のブロックの同位置ブロックの第１の動きベクトルが利用可能であると決定し、現在のブロックの同位置ブロックの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであると決定するとき、デバイスは、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【０１１１】
留意すべきことは、空間的に隣接する予測ブロックから選択される候補ＭＶＰの数がＮより小さい（言い換えれば、ＭＶＰリストが完全に埋まっておらず、ＭＶＰリストの長さがＮである）とき、ＭＶＰは、同位置ブロックの第１の動きベクトルから選択され、ＭＶＰリストに追加されるということである。例えば、Ｎの値に関しては、Ｎ＝２またはＮ＝３であってよい。
【０１１２】
例えば、デバイスは、同位置ブロック内の右下のブロックＣ０および中央のブロックＣ１の第１の動きベクトルに連続的にアクセスし、同位置ブロックから取得された第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。
【０１１３】
４０６．候補動きベクトル予測子の数が予め定められた値より少ないとき、候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを候補動きベクトル予測子として用いる。
【０１１４】
候補動きベクトル予測子の数が予め定められた値より依然として少ない場合、デバイスは、現在のブロックの候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを動きベクトル予測子として用いる。
【０１１５】
本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、現在のブロックの候補動きベクトル予測子が決定され、つまり、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する第２の動きベクトルで現在のブロックの動きベクトル予測子リストが補われて、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【０１１６】
図５を参照すると、現在のブロックの空間的に隣接する画素ブロックが現在のブロックに空間的に隣接する、予め設定された範囲内の少なくとも１つの画素ブロックを含むとき、本願の実施形態に係る動きベクトル予測方法の別の実施形態は以下のステップを含む。
【０１１７】
５０１．現在のブロックの動きベクトルに対応する基準フレームを取得。
【０１１８】
５０２．基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定。
【０１１９】
５０３．現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得。
【０１２０】
本実施形態のステップ５０１からステップ５０３は、図４に示される実施形態のステップ４０１からステップ４０３と同様である。詳細はここで改めて説明しない。
【０１２１】
５０４．現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、現在のブロックの空間的に隣接する画素ブロックの第１の基準フレーム内で、現在のブロックの空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定し、第１の基準ブロックと現在のブロックの空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用い、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【０１２２】
実現可能な実施例において、現在のブロックの全ての左側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックの全ての上側の空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、画素ブロックの第１の基準フレーム内で、画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定し、第１の基準ブロックと画素ブロックとの間の動きベクトルを第２の動きベクトルとして用い、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いる。
【０１２３】
留意すべきことは、現在のブロックに空間的に隣接する画素ブロックに基づき第２の動きベクトルを生成する前に、ＭＶＰリストが空（言い換えれば、現在のブロックの空間的に隣接する予測ブロックの第１の動きベクトルがどれも現在のブロックの動きベクトルと同じ動きベクトルタイプを有さない）かをさらに決定する必要がある。ＭＶＰリストが空でないとき、ＭＶＰリストには少なくとも１つの候補ＭＶＰがある。ＭＶＰリストが空であるとき、デバイスは現在のブロックに空間的に隣接する画素ブロックをテンプレートとして用い、テンプレートマッチング方式で、現在のブロックの動きベクトルが指す基準フレーム内の最適なマッチング位置を見つける。最適なマッチング位置と現在のブロックのテンプレートエリアとの間の変位ベクトルが第２の動きベクトルとして用いられ、第２の動きベクトルが候補ＭＶＰとして用いられる。
【０１２４】
例えば、第２の動きベクトルを決定する処理は２つのステップに分けられてよい。ステップ１：「候補動きベクトルセット」内のＭＶが比較されて動きサーチの始点を決定する。候補動きベクトルセットは以下の２つのタイプのＭＶのうち少なくとも１つを含む：ゼロベクトル（０，０）およびグローバル動きベクトル。現在のブロックに空間的に隣接する、予め設定された範囲内の画素ブロックをテンプレートとして用いて、および候補動きベクトルセット内の各ＭＶを動きベクトルとして用いて現在のフレームのテンプレートエリアと基準フレーム内の対応するテンプレートエリアとの間の差分ピクチャ（すなわち、第１の差分ピクチャ）を取得することにより、現在のブロックのＭＶの基準フレーム内で動き補償が実施される。デバイスは、エネルギーが最も低い第１の差分ピクチャに対応するＭＶが指す位置を、動きサーチの次のステップにおけるサーチ始点ＭＶ＿ｓｔａｒｔとして用いる。第１の差分ピクチャのエネルギーは、以下の３つの方式のうちいずれか１つによって計算されてよい：差分ピクチャ内の全ての画素の差分二乗和、差分ピクチャ内の全ての画素の絶対差分和、アダマール変換が差分ピクチャに対して実施された後に取得される絶対アダマール変換差分和。現在のブロックの隣接する再構築済画素は、現在のブロックの上側の再構築済画素、現在のブロックの左側の再構築済画素、現在のブロック左側の再構築済画素および上側の再構築済画素を組み合わせることにより形成されるＬ字型エリア内の画素などであってよい。このことは本明細書において限定されない。
【０１２５】
１または複数のグローバル動きベクトルがあってよい。グローバル動きベクトルは、ビットストリーム内で特定され（例えば、現在のフレームのスライスヘッダ内で特定され）、現在のフレームからロングターム基準フレームを指すＭＶを示す。好ましくは、１つのロングターム基準フレームが少なくとも１つのグローバル動きベクトルを有してよく、ショートターム基準フレームはグローバル動きベクトルを有さない。現在のブロックのＭＶがショートタームＭＶである場合、候補動きベクトルセットはゼロベクトルのみを含む。現在のブロックのＭＶがロングタームＭＶである場合、現在のブロックの候補動きベクトルセットはゼロベクトルを含み、少なくとも１つのグローバル動きベクトルをさらに含んでよい。グローバル動きベクトルは、現在のフレーム内の各エリア内にあり、ロングターム基準フレームと相対的な動きベクトルを分析することによりエンコーダにより導出されてよい。例えば、全てのエリア内の動きベクトルのうち出現頻度が最も高い１つまたは２つの動きベクトルがグローバル動きベクトルとして選択される。デコードデバイスは、ビットストリーム（例えば、スライスヘッダ）をパースすることにより現在のフレームのロングターム基準フレームのグローバル動きベクトルを取得する。オプションで、ロングターム基準フレームのグローバル動きベクトルの数情報がビットストリームで送信されてよい。グローバル動きベクトル数が０であることを数情報が示すとき、候補動きベクトルセットはグローバル動きベクトルを含まずゼロベクトルのみを含む。
【０１２６】
ステップ２：始点に基づき動きサーチを実施して第２の動きベクトルを決定する。現在のブロックに空間的に隣接する、予め設定された範囲内の画素ブロックをテンプレートとして用いることにより、およびＭＶ＿ｓｔａｒｔを始点として用いることにより現在のブロックのＭＶの基準フレーム内のサーチウィンドウで最適なＭＶがサーチされる。この最適なＭＶは、現在のフレーム内のテンプレートエリアと、ＭＶが指すサーチ位置に対応するテンプレートエリアとの間の差分ピクチャ（すなわち、第２の差分ピクチャ）の最も低いエネルギーをもたらす。この最適なＭＶが、第２の動きベクトルとして決定される。
【０１２７】
サーチ精度は１／４画素精度または１／２画素精度であってよく、サーチ方法は、フルサーチ、ダイアモンドクイックサーチ（ｄｉａｍｏｎｄ  ｓｅａｒｃｈ）、またはヘキサゴンクイックサーチ（ｈｅｘａｇｏｎ  ｓｅａｒｃｈ）であってよい。サーチウィンドウサイズは８×８または１６×１６に固定されてよく、またはＭＶ＿ｓｔａｒｔのタイプに基づき適応的に設定されてよい。例えば、ＭＶ＿ｓｔａｒｔが（０，０）であるとき、サーチウィンドウサイズは１６×１６である。ＭＶ＿ｓｔａｒｔが（０，０）でないとき、サーチウィンドウサイズは８×８である。第２の差分ピクチャのエネルギーは、以下の３つの方式のうちいずれか１つによって計算されてよい：差分ピクチャ内の全ての画素の差分二乗和、差分ピクチャ内の全ての画素の絶対差分和、アダマール変換が差分ピクチャに対して実施された後に取得される絶対アダマール変換差分和。第２の差分ピクチャのエネルギーを計算するための方法は、第１の差分ピクチャのエネルギーを計算するためのものと必ずしも同じではない。例えば、第１の差分ピクチャのエネルギーおよび第２の差分ピクチャのエネルギーの両方に関して、差分ピクチャ内の全ての画素の絶対差分和が用いられる。代替的に、第１の差分ピクチャのエネルギーに関して差分ピクチャ内の全ての画素の絶対差分和が用いられ、第２の差分ピクチャのエネルギに関して、差分ピクチャ内の全ての画素の差分二乗和が用いられる。このことは本明細書において限定されない。
【０１２８】
理解されてよいのは、このケースで、ＭＶＰリストが同じ候補ＭＶＰを含む場合、繰り返される候補ＭＶＰはＭＶＰリストから取り除かれ、候補ＭＶＰ数が更新されるということである。
【０１２９】
５０５．候補動きベクトル予測子の数が予め定められた値より少なく、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルが利用可能であり、現在のブロックの同位置ブロックの少なくとも１つの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【０１３０】
オプションで、候補動きベクトル予測子の数が予め定められた値より少なく、デバイスが、現在のブロックの同位置ブロックの第１の動きベクトルが利用可能であると決定し、現在のブロックの同位置ブロックの第１の動きベクトルの動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであると決定するとき、デバイスは、同位置ブロックの少なくとも１つの第１の動きベクトル、または同位置ブロックの少なくとも１つの第１の動きベクトルのスケーリング値を候補動きベクトル予測子として用いる。
【０１３１】
留意すべきことは、空間的に隣接する予測ブロックから選択される候補ＭＶＰの数がＮより小さい（言い換えれば、ＭＶＰリストが完全に埋まっておらず、ＭＶＰリストの長さがＮである）とき、ＭＶＰは、同位置ブロックの第１の動きベクトルから選択され、ＭＶＰリストに追加されるということである。例えば、Ｎの値に関しては、Ｎ＝２またはＮ＝３であってよい。
【０１３２】
例えば、デバイスは、同位置ブロック内の右下のブロックＣ０および中央のブロックＣ１の第１の動きベクトルに連続的にアクセスし、同位置ブロックから取得された第１の動きベクトルが条件２「第１の動きベクトルが利用可能であり、第１の動きベクトルの基準フレームが、現在のブロックの動きベクトルの基準フレームと同じタイプを有する」を満たすかを決定する。条件２を満たす第１の動きベクトルに関して、第１の動きベクトル、または第１の動きベクトルのスケーリング値が候補ＭＶＰとして用いられる。
【０１３３】
５０６．候補動きベクトル予測子の数が予め定められた値より少ないとき、候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを候補動きベクトル予測子として用いる。
【０１３４】
候補動きベクトル予測子の数が予め定められた値より依然として少ない場合、デバイスは、現在のブロックの候補動きベクトル予測子の数が予め定められた値に達するよう、少なくとも１つのゼロ動きベクトルを動きベクトル予測子として用いる。本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、第２の動きベクトルは、現在のブロックに隣接する、予め設定された範囲内の画素ブロックに基づき導出され、第２の動きベクトルは、現在のブロックの候補動きベクトル予測子として決定される。第２の動きベクトルは、現在のブロックの動きベクトルと同じタイプを有する。よって、動きベクトル予測子リストが充実化され、動きベクトル予測効率が向上する。
【０１３５】
理解されるべきことは、先述の動きベクトル予測方法のそれぞれが現在のブロックに関してコーディング方法で用いられてよく、または現在のブロックに関してデコード方法で用いられてよいということである。
【０１３６】
ここまでは、本願の実施形態における動きベクトル予測方法が説明され、以下には、本願の実施形態における動きベクトル予測デバイスが説明される。図６を参照すると、本願の実施形態に係る動きベクトル予測デバイスの実施形態は、
動きベクトル予測デバイスであって、
現在のブロックの動きベクトルに対応する基準フレームを取得するよう構成された第１の取得ユニット６０１と、
基準フレームの基準フレームタイプに基づき現在のブロックの動きベクトルの動きベクトルタイプを決定するよう構成された決定ユニット６０２であって、動きベクトルタイプは、ショートターム動きベクトルまたはロングターム動きベクトルを含み、ショートターム動きベクトルはショートターム基準フレームから取得され、ロングターム動きベクトルはロングターム基準フレームから取得される、決定ユニット６０２と、
現在のブロックの少なくとも１つの空間的に隣接する予測ブロックがフレーム間予測ブロックであるとき、少なくとも１つの空間的に隣接する予測ブロックの第１の動きベクトルの動きベクトルタイプを取得するよう構成された第２の取得ユニット６０３であって、第１の動きベクトルは、空間的に隣接する予測ブロックに対してフレーム間予測を実施するのに用いられる、第２の取得ユニット６０３と、
第１の動きベクトルの取得した動きベクトルタイプが、現在のブロックの動きベクトルの全ての動きベクトルタイプと異なるとき、現在のブロックの空間的に隣接する画素ブロックのデコード情報に基づき空間的に隣接する画素ブロックの第２の動きベクトルを決定し、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第１のプロセシングユニット６０４と
を含む。
【０１３７】
オプションで、デバイスは、少なくとも１つの第１の動きベクトルの取得した動きベクトルタイプが現在のブロックの動きベクトルの動きベクトルタイプと同じであるとき、少なくとも１つの第１の動きベクトルを現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングユニット６０５をさらに含んでよい。
【０１３８】
オプションで、デバイスは、現在のブロックの全ての空間的に隣接する予測ブロックがフレーム内予測ブロックであるとき、空間的に隣接する予測ブロックのうち少なくとも１つの仮想基準フレーム内で、空間的に隣接する予測ブロックとの画素差分が最も小さい仮想基準ブロックを決定することと、仮想基準ブロックと空間的に隣接する予測ブロックとの間の動きベクトルを現在のブロックの動きベクトル予測子として用いることであって、仮想基準フレームの基準フレームタイプが現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じであり、仮想基準フレームは再構築済フレームである、こととを実行するよう構成された第３のプロセシングユニット６０６をさらに含んでよい。
【０１３９】
オプションで、第１のプロセシングユニット６０４は、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは、現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングモジュール６０４１をさらに含んでよい。
【０１４０】
オプションで、第１のプロセシングモジュール６０４１は、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有するとき、空間的に隣接する画素ブロックの第１の基準フレーム内で、空間的に隣接する画素ブロックとの画素差分が最も小さい第１の基準ブロックを決定することと、第１の基準ブロックと空間的に隣接する画素ブロックとの間の動きベクトルを第２の動きベクトルとして用いることであって、第１の基準フレームの基準フレームタイプは現在のブロックの動きベクトルに対応する基準フレームの基準フレームタイプと同じである、ことと、第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いることとを実行するよう構成された第１のプロセシングサブモジュール６０４１１をさらに含んでよい。
【０１４１】
本願の本実施形態では、現在のブロックの動きベクトルの動きベクトルタイプが隣接するブロックの第１の動きベクトルの動きベクトルタイプと異なるとき、現在のブロックの動きベクトルと同じ動きベクトルタイプを有する第２の動きベクトルが現在のブロックの候補動きベクトル予測子として用いられて、動きベクトル予測子リストを充実化させ、動きベクトル予測効率を向上させる。
【０１４２】
図７を参照すると、本願の実施形態に係る動きベクトル予測デバイスの別の実施形態は、図６に対応する実施形態における第１の取得ユニット６０１と、決定ユニット６０２と、第２の取得ユニット６０３と、第１のプロセシングユニット６０４とを含む。
【０１４３】
オプションで、第１のプロセシングユニット６０４は、少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングモジュール６０４２をさらに含んでよい。
【０１４４】
オプションで、第２のプロセシングモジュール６０４２は、
現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングサブモジュール６０４２１と、
現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第３のプロセシングサブモジュール６０４２２と
をさらに含んでよい。
【０１４５】
図８を参照すると、本願の実施形態に係る動きベクトル予測デバイスの別の実施形態は、図６に対応する実施形態における第１の取得ユニット６０１と、決定ユニット６０２と、第２の取得ユニット６０３と、第１のプロセシングユニット６０４とを含む。
【０１４６】
オプションで、第１のプロセシングユニット６０４は、少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトル、または少なくとも１つの空間的に隣接する予測ブロックの第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第２のプロセシングモジュール６０４２をさらに含んでよい。
【０１４７】
オプションで、第２のプロセシングモジュール６０４２は、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有し、現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの第１の動きベクトルが現在のブロックの動きベクトルと異なる動きベクトルタイプを有する場合、現在のブロックと相対的に左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、左側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用い、または現在のブロックと相対的に上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトルが利用可能であるとき、上側の予め設定された位置にある空間的に隣接する予測ブロックの少なくとも１つの第２の動きベクトル、または第２の動きベクトルのスケーリング値を現在のブロックの候補動きベクトル予測子として用いるよう構成された第４のプロセシングサブモジュール６０４２３をさらに含んでよい。
【０１４８】
理解されるべきことは、先述の動きベクトル予測デバイスは、現在のブロックをコーディングするためにエンコーダで用いられてよく、または現在のブロックをデコードするためにデコーダで用いられてよいということである。
【０１４９】
ここまでは、本願の実施形態における動きベクトル予測デバイスが詳細に別々に、図６から図８のモジュール機能エンティティの観点から説明されてきた。以下では、本願の実施形態における動きベクトル予測デバイスを詳細にハードウェア処理の観点から説明する。
【０１５０】
図９は、本願の実施形態に係る動きベクトル予測デバイスの概略構造図である。図９は、統合されたユニットが用いられるときの、先述の実施形態におけるデバイスの考えられる構造の概略図を示す。デバイス９００は、プロセシングユニット９０２と通信ユニット９０３とを含む。プロセシングユニット９０２は、デバイス９００の動作を制御し管理するよう構成されている。例えば、プロセシングユニット９０２はデバイス９００が、図３におけるステップ３０１からステップ３０７、および／または本明細書において説明されている技術の別の処理を実施するのをサポートするよう構成されている。通信ユニット９０３は、デバイス９００が別のデバイスと通信するのをサポートするよう構成されている。デバイス９００は、デバイスのプログラムコードおよびデータを格納するよう構成されたストレージユニット９０１をさらに含んでよい。
【０１５１】
プロセシングユニット９０２はプロセッサまたはコントローラであってよく、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ，ＣＰＵ）、汎用プロセッサ、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ，ＤＳＰ）、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ，ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ，ＦＰＧＡ）若しくは別のプログラマブルロジックデバイス、トランジスタロジックデバイス、ハードウェアコンポーネント、またはこれらの任意の組み合わせであってよい。プロセシングユニット９０２は、本願に開示されている内容を参照して説明される様々な例示的なロジックブロック、モジュール、および回路を実装または実行してよい。代替的に、プロセッサは、コンピューティング機能を実装するプロセッサの組み合わせ、例えば、１または複数のマイクロプロセッサの組み合わせ、ＤＳＰとマイクロプロセッサとの組み合わせなどであってよい。通信ユニット９０３は、通信インタフェース、トランシーバ、トランシーバ回路などであってよい。通信インタフェースは総称的な用語であり、トランシーバインタフェースなどの１または複数のインタフェースを含んでよい。ストレージユニット９０１はメモリであってよい。
【０１５２】
プロセシングユニット９０２がプロセッサであり、通信ユニット９０３が通信インタフェースであり、ストレージユニット９０１がメモリであるとき、本願の本実施形態におけるデバイスは図１０に示されるデバイスであってよい。
【０１５３】
図１０を参照すると、デバイス１０１０は、プロセッサ１０１２と、通信インタフェース１０１３と、メモリ１０１１とを含む。オプションで、デバイス１０１０はバス１０１４をさらに含んでよい。通信インタフェース１０１３、プロセッサ１０１２、およびメモリ１０１１は、バス１０１４を用いることにより互いに接続されてよい。バス１０１４は、ペリフェラルコンポーネントインターコネクト（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ，ＰＣＩ）バス、エクステンデッドインダストリスタンダードアーキテクチャ（ｅｘｔｅｎｄｅｄ  ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ，ＥＩＳＡ）バスなどであってよい。バス１０１４は、アドレスバス、データバス、制御バスなどに分類されてよい。表示を容易にするために、１つの太い線のみが図１０内の表示に用いられている。しかしこのことは、１つのバスのみ、または１つのタイプのバスのみがあることを意味しない。
【０１５４】
実現可能な実施例において、図１１および図１２は、本願の実施形態に係るコーデック装置５０を示す。コーデック装置５０は、無線通信システムにおけるモバイル端末またはユーザ機器であってよい。理解されるべきことは、本願の本実施形態が、ビデオピクチャをコーディングおよび／またはデコードする必要があってよい任意の電子デバイスまたは装置において実装されてよいということである。
【０１５５】
コーデック装置５０は、コーデック装置５０を内蔵し保護するのに用いられる筐体３０、（液晶ディスプレイであってよい）ディスプレイ３２、およびキーパッド３４を含んでよい。コーデック装置５０は、マイク３６または任意の適切な音声入力部を含んでよく、音声入力部はデジタルまたはアナログ信号入力部であってよい。コーデック装置５０は、以下の音声出力デバイスをさらに含んでよく、本願の本実施形態では、音声出力デバイスは、イヤホン３８、拡声器、アナログ音声出力接続部、またはデジタル音声出力接続部のいずれか１つであってよい。コーデック装置５０はバッテリ４０も含んでよい。本願の別の実施形態において、コーデック装置５０は、太陽電池、燃料電池、またはクロックメカニズムジェネレータなどの任意の適切なモバイルエネルギーデバイスにより電力供給されてよい。コーデック装置５０は、別のデバイスとの近距離見通し内通信のために用いられる赤外線ポート４２をさらに含んでよい。別の実施形態において、コーデック装置５０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線接続またはＵＳＢ有線接続などの任意の適切な近距離通信ソリューションをさらに含んでよい。
【０１５６】
コーデック装置５０は、コントローラ５６、またはコーデック装置５０を制御するよう構成されたプロセッサを含んでよい。コントローラ５６は、メモリ５８に接続されてよい。本願の本実施形態では、メモリは、ピクチャの形態のデータ、および音声の形態のデータを格納してよく、および／またはコントローラ５６により実装されることになる命令を格納してよい。コントローラ５６はさらに、音声および／またはビデオデータのコーディングおよびデコードを実装するために、またはコントローラ５６により実装される補助を受けたコーディングまたはデコードのために適したコーデック５４に接続されてよい。
【０１５７】
コーデック装置５０は、カードリーダ４８およびスマートカード４６をさらに含んでよい。カードリーダ４８およびスマートカード４６は、ユーザ情報を提供するよう構成され、ネットワーク内でユーザの認証および権限付与を実施するのに用いられる認証情報を提供するのに適しており、例えば、ユニバーサル集積回路カード（ｕｎｉｖｅｒｓａｌ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  ｃａｒｄ，ＵＩＣＣ）およびＵＩＣＣリーダである。
【０１５８】
コーデック装置５０は、無線インタフェース回路５２をさらに含んでよい。無線インタフェース回路はコントローラに接続され、セルラー通信ネットワーク、無線通信システム、または無線ローカルエリアネットワークとの通信のために用いられる無線通信信号を例えば生成するのに適している。コーデック装置５０はアンテナ４４をさらに含んでよい。アンテナは無線インタフェース回路５２に接続され、別の装置（または複数の装置）へ、無線インタフェース回路５２で生成された無線周波数信号を送信し、別の装置（または複数の装置）から無線周波数信号を受信するよう構成されている。
【０１５９】
本願の一部の実施形態において、コーデック装置５０は、単一のフレームそれぞれを記録または検出出来るカメラを含み、コーデック５４またはコントローラはこれら単一のフレームを受信し処理する。本願の一部の実施形態において、コーデック装置５０は、送信および／または格納の前に別のデバイスから処理対象のビデオピクチャデータを受信してよい。本願の一部の実施形態において、コーデック装置５０は、無線または有線接続を通じて、コーディング／デコードされることになるピクチャを受信してよい。
【０１６０】
先述の実施形態の全てまたは一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを用いることにより実装されてよい。実施形態を実装するのにソフトウェアが用いられるとき、実施形態は、完全に、または部分的にコンピュータプログラムプロダクトの形態で実装されてよい。
【０１６１】
コンピュータプログラムプロダクトは１または複数のコンピュータ命令を含む。コンピュータプログラム命令がロードされコンピュータ上で実行されたとき、本願の実施形態に係る手順または機能が全てまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブルデバイスであってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてよく、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ送信されてよい。例えば、コンピュータ命令はウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ有線（例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線（ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ，  ＤＳＬ）または無線（例えば、赤外線、電波、またはマイクロ波）方式で送信されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であってよく、または１または複数の使用可能な媒体を組み込んだサーバまたはデータセンタなどのデータ記憶デバイスであってよい。使用可能な媒体は、磁気媒体（例えば、フロッピディスク、ハードディスク、または磁気テープ）、光媒体（例えば、ＤＶＤ）、半導体媒体（例えば、ソリッドステートドライブ（ｓｏｌｉｄ−  ｓｔａｔｅ  ｄｉｓｋ，ＳＳＤ）などであってよい。
【０１６２】
当業者が明らかに理解してよいのは、説明を簡便にするために、先述のシステム、デバイス、およびユニットの詳細な作動処理については、先述の方法の実施形態における対応する処理を参照されたいということである。詳細はここで説明しない。
【０１６３】
本願で提供される実施形態において理解されるべきことは、開示されているシステム、デバイス、および方法が他の方式で実装されてよいということである。例えば、説明されているデバイスの実施形態は単に例である。例えば、ユニットの区分は単にロジック的な機能の区分である。実際の実装においては別の区分方式があってよい。例えば、複数のユニットまたはコンポーネントが組み合わされてよく、若しくは別のシステムに組み込まれてよく、または一部の特徴は無視されてよく、若しくは実施されなくてよい。加えて、表示されている、または論じられている相互の連結または直接的な連結若しくは通信接続は、一部のインタフェースを用いることによって実装されてよい。デバイスまたはユニット間の間接的な連結または通信接続は、電子的形態、機械的形態、または他の形態で実装されてよい。
【０１６４】
別々の部分として説明されているユニットは、物理的に別々であってもなくてもよく、ユニットとして表示されている部分は、物理的なユニットであってもなくてもよく、１つの位置にあってよく、または複数のネットワークユニット上で分散させられてよい。ユニットのうち一部または全ては、実施形態における解決法の目的を達成するための実際の要求事項に基づき選択されてよい。
【０１６５】
加えて、本願の実施形態における機能ユニットは、１つのプロセシングユニットに統合されてよく、またはユニットのうちそれぞれは、物理的に単独で存在してよく、または２つまたはそれ以上のユニットが１つのユニットに統合されてよい。統合されたユニットはハードウェアの形態で実装されてよく、またはソフトウェア機能ユニットの形態で実装されてよい。
【０１６６】
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立したプロダクトとして販売される、または用いられるとき、統合されたユニットはコンピュータ可読記憶媒体に格納されてよい。そのような理解に基づき、本願の技術的解決法は本質的に、または従来技術に貢献する部分、または技術的解決法の全てまたは一部は、ソフトウェアプロダクトの形態で実装されてよい。コンピュータソフトウェアプロダクトは記憶媒体に格納され、本願の実施形態で説明されている方法のステップの全てまたは一部を実施するよう（パーソナルコンピュータ、サーバ、またはネットワークデバイスであってよい）コンピュータデバイスに命令するためのいくつかの命令を含む。記憶媒体は、プログラムコードを格納出来る任意の媒体、例えば、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ，ＲＯＭ）、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ，ＲＡＭ）、磁気ディスク、またはコンパクトディスクを含む。
【０１６７】
結論として、先述の実施形態は単に、本願を限定するのではなく、本願の技術的解決法を説明することが意図されている。先述の実施形態を参照して本願が詳細に説明されているが、当業者が理解すべきことは、彼らが依然として、本願の実施形態の技術的解決法の思想および態様から逸脱することなく、先述の実施形態に記録されている技術的解決法に対して変更を加えてよく、またはそれらの一部の技術的特徴に対して同等の置き換えを行ってよいということである。
【図１】
0006874947.tif 000002
【図２】
0006874947.tif 000003
【図３】
0006874947.tif 000004
【図４】
0006874947.tif 000005
【図５】
0006874947.tif 000006
【図６】
0006874947.tif 000007
【図７】
0006874947.tif 000008
【図８】
0006874947.tif 000009
【図９】
0006874947.tif 000010
【図１０】
0006874947.tif 000011
【図１１】
0006874947.tif 000012
【図１２】
0006874947.tif 000013