説明

動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラム

【課題】動きベクトルの予測確度を向上させる。
【解決手段】動きベクトル予測装置1は、参照ブロックの動きベクトルの大きさの閾値を、画像解像度が高いほど小さく、且つ該参照ブロックのブロックサイズが小さいほど小さくなるように決定する動きベクトル閾値決定部12と、参照ブロックの動きベクトルの大きさが動きベクトル閾値決定部12により決定された閾値を越えるか否かを参照ブロックごとに判定する動きベクトル確度判定部13と、1以上の参照ブロックの動きベクトルの中央値又は平均値を前記予測対象ブロックの予測動きベクトルとして生成する予測動きベクトル生成部14と、を備える。予測動きベクトル生成部14は、動きベクトル確度判定部13により参照ブロックの動きベクトルの大きさが前記閾値以下であると判定された動きベクトルを用いて前記予測動きベクトルを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予測対象ブロックの動きベクトルを予測する動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラムに関するものである。
【背景技術】
【0002】
動画像の圧縮符号化方式としてMPEG−4 AVC/H.264方式などが用いられており、また、次世代の圧縮符号化方式としてHEVC(High Efficiency Video Coding)方式が検討されている。これらの圧縮符号化方式では、符号化対象ブロックの動きベクトルは周囲のブロックの動きベクトルと強い相関があることを利用して、符号化対象ブロックの左側や上側に隣接するブロック群を用いて動きベクトルの予測を行うことが知られている(例えば、非特許文献1及び2参照)。
【0003】
図9は、動きベクトル予測に用いるブロックを示す図である。図9(a)は、MPEG−4 AVC/H.264方式における動きベクトル予測に用いるブロックの一例を示しており、予測対象ブロックXの動きベクトルの予測に、予測対象ブロックXに隣接するブロックA,B,Cを用いる。図9(b)は、HEVC方式における隣接ブロックの一例を示しており、予測対象ブロックXの動きベクトルの予測に、さらに多くのブロックA〜Aを用いる。
【0004】
MPEG−4 AVC/H.264方式やHEVC方式では、予測対象ブロックに隣接するブロックの動きベクトルの中央値を予測対象ブロックの動きベクトルの予測値(予測動きベクトル)とする。図10は、MPEG−4 AVC/H.264方式における動きベクトルの予測方法を説明する図である。予測対象ブロックXの左側、上側、右上側に隣接する隣接ブロックA,B,Cの動きベクトルをそれぞれmvA,mvB,mvCとし、予測対象ブロックXの予測動きベクトルをPとすると、次式(1)により予測動きベクトルPの水平方向成分及び垂直方向成分を算出する。
【0005】
P(x)=median (mvA(x),mvB(x),mvC(x))
P(y)=median (mvA(y),mvB(y),mvC(y)) (1)
ここで、(x)はベクトルの水平方向成分を示し、(y)はベクトルの垂直方向成分を示し、medianは中央値を示す。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】大久保 榮、他3名、「改訂三版 H.264/AVC教科書」、インプレスR&D、2008年12月26日、p.118-119
【非特許文献2】TK Tan, Gary J.Sullivan and Jean-Rainer Ohm, “Summary of HEVC working draft 1 and HEVC test model(HM)”, China, JCTVC-C405, Guangzhou, October 2010
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、従来技術では、予測に用いるブロックの動きベクトルの確度(動きベクトルの信頼度)を判定していないため、動きベクトルの確度が低いと、動きベクトルの予測確度も低下するという課題があった。例えば、フレーム間の大きな動きを小さなブロックで捉える場合、動きぼやけによりブロック内で画像特徴を捉えられないため、一般的に予測確度は低くなる。動物体の動きが大きいほど、この動きぼやけは大きくなる。また、同じ角速度(角度/秒)の動物体を同じ画角で撮影した場合、フレームレートに対する画像解像度が高いほど、動きぼやけは大きくなる。動きベクトルの確度が低い場合は、例えばブロックマッチングにおいてSAD(Sum of Absolute Difference)やSSD(Sum of Squared Difference)が最小となる動きベクトルを検出しても、それは真の動きを捉えていない可能性が高い。このような確度の低い動きベクトルを用いて動き補償を行うと、予測誤りの可能性が高くなる。
【0008】
本発明の目的は、上記問題を解決するため、動きベクトルの予測確度を向上させることが可能な動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明では、まず画像解像度を基準に、参照ブロックの動きベクトルの大きさの閾値を決定する。そして、予測に用いる各参照ブロックについて、動きベクトルの大きさが閾値を超えているか否かを判定する。動きベクトルの大きさが閾値を超えている場合には動きぼやけにより動きベクトルの確度が低いとみなし、当該動きベクトルを動きベクトルの予測に用いないなどの処理を行う。
【0010】
すなわち、本発明に係る動きベクトル予測装置は、予測対象ブロックの動きベクトルを、該予測対象ブロックに隣接する1以上の参照ブロックの動きベクトルを用いて予測する動きベクトル予測装置であって、参照ブロックの動きベクトルの大きさの閾値を、画像解像度が高いほど小さく、且つ該参照ブロックのブロックサイズが小さいほど小さくなるように決定する動きベクトル閾値決定部と、参照ブロックの動きベクトルの大きさが前記動きベクトル閾値決定部により決定された閾値を越えるか否かを参照ブロックごとに判定する動きベクトル確度判定部と、1以上の参照ブロックの動きベクトルの中央値又は平均値を前記予測対象ブロックの予測動きベクトルとして生成する予測動きベクトル生成部と、を備え、前記予測動きベクトル生成部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値以下であると判定された動きベクトルを用いて前記予測動きベクトルを生成することを特徴とする。
【0011】
また、本発明に係る動きベクトル予測装置において、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロックの動きベクトルを修正する動きベクトル修正部を更に備え、前記予測動きベクトル生成部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値以下であると判定された場合には該動きベクトルを用い、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合には動きベクトルの前記動きベクトル修正部により修正された動きベクトルを用いて前記予測動きベクトルを生成することを特徴とする。
【0012】
また、本発明に係る動きベクトル予測装置において、前記動きベクトル修正部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロックの動きベクトル及び該参照ブロックに隣接するブロックの動きベクトルの中央値又は平均値を算出し、参照ブロックの動きベクトルを、前記算出した中央値又は平均値に修正することを特徴とする。
【0013】
また、本発明に係る動きベクトル予測装置において、前記動きベクトル修正部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロック及び該参照ブロックに隣接するブロックを統合した統合ブロックを生成して統合ブロックの動きベクトルを検出し、参照ブロックの動きベクトルを、前記検出した統合ブロックの動きベクトルに修正することを特徴とする。
【0014】
また、上記課題を解決するため、本発明に係る符号化装置は、上述した動きベクトル予測装置を備え、上述した予測動きベクトルを用いて動き補償を行うことを特徴とする。
【0015】
また、上記課題を解決するため、本発明に係る復号装置は、上述した動きベクトル予測装置を備え、上述した予測動きベクトルを用いて動き補償を行うことを特徴とする。
【0016】
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを、上述した動きベクトル予測装置、符号化装置、又は復号装置として機能させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、動きベクトルの予測確度を向上させることができるようになる。
【図面の簡単な説明】
【0018】
【図1】本発明による実施例1の動きベクトル予測装置の構成を示すブロック図である。
【図2】本発明による実施例1の動きベクトル予測装置の動作を示すフローチャートである。
【図3】本発明による実施例2の動きベクトル予測装置の構成を示すブロック図である。
【図4】本発明による実施例2の動きベクトル予測装置の隣接参照ブロックの例を示す図である。
【図5】本発明による実施例2の動きベクトル予測装置の動作を示すフローチャートである。
【図6】本発明による実施例3の動きベクトル予測装置の構成を示すブロック図である。
【図7】本発明による符号化装置の構成を示すブロック図である。
【図8】本発明による復号装置の構成を示すブロック図である。
【図9】従来の動きベクトル予測に用いるブロックを示す図である。
【図10】従来の動きベクトルの予測方法を説明する図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【実施例1】
【0020】
本発明による動きベクトル予測装置は、予測対象ブロックの動きベクトルを、1以上の参照ブロックの動きベクトルを用いて予測するものである。ここで、参照ブロックとは、予測対象ブロックに隣接し、動きベクトル検出済みのブロックのことをいう。図1は、本発明による実施例1の動きベクトル予測装置の構成を示すブロック図である。図1に示すように、動きベクトル予測装置1は、ブロック情報取得部11と、動きベクトル閾値決定部12と、動きベクトル確度判定部13と、予測動きベクトル生成部14とを備える。
【0021】
ブロック情報取得部11は、入力画像の解像度情報、参照ブロックのサイズ情報、及び参照ブロックの動きベクトルを含むブロック情報を取得する。そして、ブロック情報取得部11は、入力画像の解像度情報及び参照ブロックのサイズ情報を動きベクトル閾値決定部12に出力し、参照ブロックの動きベクトルを動きベクトル確度判定部13及び予測動きベクトル生成部14に出力する。動きベクトル予測装置1が符号化装置の動きベクトルの予測に用いられる場合には、ブロック情報取得部11は、入力画像の解像度情報を符号化装置に設定されたパラメータ情報から取得し、参照ブロックのサイズ情報及び参照ブロックの動きベクトルを、参照ブロックの動きベクトル検出処理時のブロックサイズ及び動きベクトル検出処理により検出された動きベクトルとする。
【0022】
動きベクトル閾値決定部12は、参照ブロックの動きベクトルの確度を判定するために、参照ブロックごとに、動きベクトルの大きさの閾値(以下、「動きベクトル閾値」という)を、入力画像の画像解像度が高いほど小さく、且つ参照ブロックのサイズが小さいほど小さくなるように決定し、決定した動きベクトル閾値を動きベクトル確度判定部13に出力する。
【0023】
動きベクトル閾値決定部12は、予め定められた閾値対応表を参照して、動きベクトル閾値決定するようにしてもよい。以下の表1に、閾値対応表の一例を示す。動きベクトル閾値決定部12は、閾値対応表を参照することで、画像解像度及び参照ブロックの水平又は垂直方向のサイズ(いずれか小さいほう)に対応する、動きベクトル閾値を決定することができる。例えば、表1の閾値対応表を参照すると、参照ブロックのブロックサイズが8×8画素で画像解像度が1920×1080の場合、動きベクトル閾値は16画素となる。
【0024】
【表1】

【0025】
なお、閾値対応表は、画像解像度に対して比較的大きなサイズのブロック(例えば、画像解像度が1920×1080の場合は、32×32サイズのブロック)でブロックマッチングによる動き検出を行い、画像の持つ大まかな動き量を把握してから決定するようにしてもよい。
【0026】
動きベクトル確度判定部13は、ブロック情報取得部11から入力される参照ブロックの動きベクトル、及び動きベクトル閾値決定部12から入力される動きベクトル閾値に基づいて、参照ブロックの動きベクトルの確度を判定する。具体的には、動きベクトル確度判定部13は、参照ブロックの動きベクトルの大きさが、動きベクトル閾値決定部12により決定された動きベクトル閾値を越える場合は確度が低いと判定し、動きベクトル閾値決定部12により決定された動きベクトル閾値以下である場合は確度が高いと判定する。そして、動きベクトル確度判定部13は、動きベクトル閾値を越えるか否か、すなわち参照ブロックの動きベクトルの確度が低いか高いかを示す確度情報を予測動きベクトル生成部14に出力する。
【0027】
予測動きベクトル生成部14は、動きベクトル確度判定部13から入力される確度情報に基づき、動きベクトル確度判定部13により確度が高い(参照ブロックの動きベクトルの大きさが動きベクトル閾値以下である)と判定された動きベクトルのみを用いて、該動きベクトルの中央値又は平均値を予測対象ブロックの予測動きベクトルとして生成する。ただし、動きベクトル確度判定部13により、予測対象ブロックに対応する全ての参照ブロックの動きベクトルの確度が低いと判定された場合には、動きベクトルの予測を行わないようにするか、後述する実施例2の動きベクトル予測装置のように動きベクトルを修正し、修正された動きベクトルを用いて予測動きベクトルを生成する必要がある。
【0028】
次に、このように構成される動きベクトル予測装置1の動作を説明する。図2は、本発明による実施例1の動きベクトル予測装置1の動作を示すフローチャートであり、予測対象ブロックごとの予測動きベクトルの生成手順を示す。
【0029】
まず、動きベクトル予測装置1は、ブロック情報取得部11により、ブロック情報を参照ブロックごとに取得する(ステップS101)。例えば、図9(a)に示す予測対象ブロックXについては、参照ブロックA,B又はCのブロック情報を取得する。次に、動きベクトル予測装置1は、動きベクトル閾値決定部12により、入力画像の解像度情報及び参照ブロックのサイズ情報に基づいて、参照ブロックごとに動きベクトル閾値を決定する(ステップS102)。
【0030】
次に、動きベクトル予測装置1は、動きベクトル確度判定部13により、参照ブロックの動きベクトルをステップS102で決定した動きベクトル閾値に基づいて判定する(ステップS103)。そして、動きベクトル予測装置1は、ステップS103で参照ブロックの動きベクトルの確度が高い、すなわち、参照ブロックの動きベクトルの大きさが、ステップS101にて決定した閾値以下であると判定した場合にのみ、予測動きベクトル生成部14により動きベクトルを取得する(ステップS104)。
【0031】
次に、動きベクトル予測装置1は、予測対象ブロックに対応する全ての参照ブロックについてブロック情報を取得したか否かを判定する(ステップS105)。例えば、図9(a)に示す予測対象ブロックXについては、参照ブロックA,B及びCのブロック情報を取得したか否かを判定する。そして、動きベクトル予測装置1は、ステップS105で予測対象ブロックに対応する全ての参照ブロックのブロック情報を取得したと判定されるまで、ステップS101からステップS104の処理を繰り返し行う。動きベクトル予測装置1は、予測対象ブロックに対応する全ての参照ブロックについてブロック情報を取得すると、予測動きベクトル生成部14により、動きベクトルを予測して予測動きベクトルを生成する(ステップS106)。動きベクトル予測装置1は、このような処理を予測対象ブロックごとに行う。
【0032】
このように、動きベクトル予測装置1は、動きベクトル確度判定部13により参照ブロックの動きベクトルの確度を判定し、確度が高いと判定された動きベクトルのみを用いて予測動きベクトル生成部14により予測動きベクトルを生成する。このため、動きベクトル予測装置1によれば、動きベクトルの予測確度を向上させることができるようになる。
【0033】
なお、上述した動きベクトル予測装置1として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、動きベクトル予測装置1の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPU(中央演算処理装置)によってこのプログラムを読み出して実行させることで実現することができる。
【実施例2】
【0034】
次に、本発明による実施例2の動きベクトル予測装置について説明する。図3は、実施例2の動きベクトル予測装置の構成を示すブロック図である。図3に示すように、実施例2の動きベクトル予測装置2は、ブロック情報取得部11と、動きベクトル閾値決定部12と、動きベクトル確度判定部13と、予測動きベクトル生成部14と、動きベクトル修正部15とを備える。実施例2の動きベクトル予測装置2は、実施例1の動きベクトル予測装置1と比較して、動きベクトル修正部15を更に備える点で相違する。なお、第1の実施形態と同じ構成要素には同一の参照番号を付して適宜説明を省略する。動きベクトル予測装置2は、参照ブロックに隣接する動きベクトル検出済みのブロック(以下、「隣接参照ブロック」という)も用いて動きベクトルを予測する。
【0035】
ブロック情報取得部11は、入力画像の解像度情報、並びに、参照ブロック及び隣接参照ブロックのサイズ情報、動きベクトル、及びフレーム内における位置情報を含むブロック情報を取得する。そして、ブロック情報取得部11は、入力画像の解像度情報及び参照ブロックのサイズ情報を動きベクトル閾値決定部12に出力し、参照ブロックの動きベクトルを動きベクトル確度判定部13に出力し、参照ブロック及び隣接参照ブロックのサイズ情報、動きベクトル、及びフレーム内における位置情報を動きベクトル修正部15に出力する。
【0036】
図4は、隣接参照ブロックの例を示す図である。ブロック情報取得部11は、HEVC方式の場合、例えば図4(a)に示すように、参照ブロックAのブロック情報と、参照ブロックAに隣接する隣接参照ブロックa1〜a5のブロック情報とを取得する。図4(a)は参照ブロックAが予測対象ブロックXの左側に隣接する場合を示しており、図4(b)は参照ブロックAが予測対象ブロックXの上側に隣接する場合を示している。図4(c)に示すように、参照ブロックAと頂点のみが隣接するブロックa3を隣接参照ブロックに含めてもよい。図4(d)(e)は、参照ブロックAと隣接参照ブロックのバリエーションを示す図である。なお、図4(f)に示すように、参照ブロックAに隣接する隣接参照ブロックa1〜a5と、参照ブロックBに隣接する隣接参照ブロックb1〜b5の一部が重なってもよい。また、MPEG−4 AVC/H.264の場合における参照ブロック及び隣接参照ブロックの例を図4(g)(h)に示す。図4(g)は参照ブロックAが予測対象ブロックXの左側に隣接する場合を示しており、図4(h)は参照ブロックAが予測対象ブロックXの上側に隣接する場合を示している。
【0037】
動きベクトル確度判定部13は、ブロック情報取得部11から所得した参照ブロックの動きベクトルが、動きベクトル閾値決定部12により決定された動きベクトル閾値を越えるか否かを判定し、動きベクトル閾値を越えるか否か(動きベクトルが低いか高いか)を示す確度情報を動きベクトル修正部15に出力する。
【0038】
動きベクトル修正部15は、動きベクトル確度判定部13から取得した確度情報が、参照ブロックの動きベクトルが動きベクトル閾値を超えること(確度が低いこと)を示している場合には、動きベクトルを修正し、修正された動きベクトル(以下、「修正動きベクトル」という)を予測動きベクトル生成部14に出力し、動きベクトル確度判定部13から取得した確度情報が、参照ブロックの動きベクトルが動きベクトル閾値以下であること(確度が高いこと)を示している場合には、動きベクトルを修正することなくそのまま予測動きベクトル生成部14に出力する。以下に、参照ブロックの動きベクトルの確度が低い場合における動きベクトル修正部15の動きベクトル修正処理方法について、2つの例を説明する。
【0039】
動きベクトル修正部15は、第1の例では、参照ブロックの動きベクトルの確度が低い場合、参照ブロックの動きベクトル及び該参照ブロックに隣接するブロックの動きベクトルの中央値又は平均値を算出し、参照ブロックの動きベクトルを、算出した中央値又は平均値に修正する。例えば、図4(a)の場合、参照ブロックAの動きベクトル及び隣接参照ブロックa1〜a5の5つの動きベクトルの中央値又は平均値を、参照ブロックAの修正動きベクトルとする。ここで、参照ブロックと隣接参照ブロックとの間で、動きベクトル検出時の参照フレームが異なる場合には、その時間方向の距離に合わせて、動きベクトルのスケーリングを行う。例えば、参照ブロックAの参照フレームが1フレーム後で隣接参照ブロックa1の参照フレームが2フレーム後であった場合、隣接参照ブロックa1の動きベクトルを水平方向及び垂直方向に1/2にし、参照ブロックAの参照フレームが1フレーム後で隣接参照ブロックa2の参照フレームが1フレーム前であった場合、隣接参照ブロックa2の動きベクトルの符号を逆にする。
【0040】
また、動きベクトル修正部15は、第2の例では、参照ブロックの動きベクトルの確度が低い場合、参照ブロック及び隣接参照ブロックの位置情報及びブロックサイズ情報に基づいて、参照ブロック及び隣接参照ブロックを統合した統合ブロックを生成する。そして動きベクトル修正部15は、統合ブロックの動きベクトルを検出し、参照ブロックの動きベクトルを、統合ブロックの動きベクトルに修正する。ここで、統合ブロックの動きベクトルは、例えばSSD法やSAD法を用いたブロックマッチングにより検出する。また、ブロックマッチングは、例えば次式(2)に示すパラボラフィッティング関数を用いた補間処理により、小数画素精度で行う。
【0041】
【数1】

【0042】
予測動きベクトル生成部14は、予測対象ブロックごとに、該予測対象ブロックに関する全ての参照ブロックについて、動きベクトル確度判定部13により動きベクトルの確度が高いと判定された場合には該動きベクトルを、動きベクトル確度判定部13により動きベクトルの確度が低いと判定された場合には修正動きベクトルを、動きベクトル修正部15から取得し、これらのベクトルの中央値又は平均値を予測対象ブロックの予測動きベクトルとして生成する。
【0043】
次に、このように構成される動きベクトル予測装置2の動作を説明する。図5は、本発明による実施例2の動きベクトル予測装置2の動作を示すフローチャートであり、予測対象ブロックごとの予測動きベクトルの生成手順を示す。まず、動きベクトル予測装置2は、ブロック情報取得部11により、ブロック情報を取得する(ステップS101)。次に、動きベクトル予測装置2は、動きベクトル閾値決定部12により、入力画像の解像度情報及び参照ブロックのサイズ情報に基づいて動きベクトル閾値を決定する(ステップS102)。
【0044】
次に、動きベクトル予測装置2は、動きベクトル確度判定部13により、参照ブロックの動きベクトルの確度を、ステップS102で決定した動きベクトル閾値に基づいて判定する(ステップS103)。そして、動きベクトル予測装置2は、ステップS103で参照ブロックの動きベクトルの確度が高いと判定した場合には、予測動きベクトル生成部14により動きベクトルを取得し(ステップS104)、ステップS103で参照ブロックの動きベクトルの確度が低いと判定した場合には、動きベクトル修正部15により動きベクトルを修正する(ステップS107)。
【0045】
次に、動きベクトル予測装置2は、予測対象ブロックに対応する全ての参照ブロックについてブロック情報を取得したか否かを判定する(ステップS105)。そして、ベクトル予測装置2は、ステップS105で予測対象ブロックに対応する全ての参照ブロックのブロック情報を取得するまで、ステップS101からステップS104、及びステップS107の処理を繰り返し行う。動きベクトル予測装置2は、予測対象ブロックに対応する全ての参照ブロックについてブロック情報を取得すると、予測動きベクトル生成部14により、動きベクトルを予測して予測動きベクトルを生成する(ステップS106)。動きベクトル予測装置2は、このような処理を、予測対象ブロックごとに行う。
【0046】
なお、動きベクトル予測装置2は、ステップS107にて動きベクトルを修正した後に、再度動きベクトルの確度を動きベクトル閾値に基づいて判定し、確度が低いと判定した場合には、当該修正動きベクトルをステップS106における予測動きベクトルの生成に用いないようにしてもよい。
【0047】
このように、実施例2の動きベクトル予測装置2は、動きベクトル確度判定部13により参照ブロックの動きベクトルの確度を判定し、確度が低いと判定された動きベクトルについては動きベクトル修正部15により動きベクトルを修正する。予測動きベクトル生成部14は、確度が高いと判定された動きベクトル、及び確度が低いと判定された動きベクトルの修正動きベクトルを用いて予測動きベクトルを生成する。このため、動きベクトル予測装置2によれば、さらに動きベクトルの予測確度を向上させることができるようになる。
【0048】
上述の動きベクトル予測装置2では、参照ブロックの動きベクトルの大きさが動きベクトル閾値を超える場合には、該動きベクトルを動きベクトル修正部15により修正するものとして説明した。しかし、予測対象ブロックに対応する全ての参照ブロックについて動きベクトルの大きさが動きベクトル閾値を超える場合にのみ動きベクトルを修正し、予測対象ブロックに対応する参照ブロックのうち一部の参照ブロックについて動きベクトルの大きさが動きベクトル閾値以下である場合には、該動きベクトルのみを用いて予測動きベクトル生成部14により予測動きベクトルを生成するようにしてもよい。
【0049】
なお、上述した動きベクトル予測装置2として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、動きベクトル予測装置2の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。
【実施例3】
【0050】
次に、本発明による実施例3の動きベクトル予測装置について説明する。図6は、実施例3の動きベクトル予測装置の構成を示すブロック図である。図6に示すように、実施例3の動きベクトル予測装置3は、ブロック情報取得部11と、動きベクトル閾値決定部12と、動きベクトル確度判定部13と、第1予測動きベクトル生成部14−1と、第2予測動きベクトル生成部14−2と、第3予測動きベクトル生成部14−3と、第1動きベクトル修正部15−1と、第2動きベクトル修正部15−2とを備える。実施例3の動きベクトル予測装置3は、実施例2の動きベクトル予測装置2と比較して、動きベクトル修正部及び予測動きベクトル生成部を複数備え、予測動きベクトルを複数生成する点で相違する。なお、第2の実施形態と同じ構成要素には同一の参照番号を付して適宜説明を省略する。
【0051】
ブロック情報取得部11は、入力画像の解像度情報、並びに、参照ブロック及び隣接参照ブロックのサイズ情報、動きベクトル、及びフレーム内における位置情報を含むブロック情報を取得する。そして、ブロック情報取得部11は、入力画像の解像度情報及び参照ブロックのサイズ情報を動きベクトル閾値決定部12に出力し、参照ブロックの動きベクトルを動きベクトル確度判定部13及び第3予測動きベクトル生成部14−3に出力し、参照ブロック及び隣接参照ブロックのサイズ情報、動きベクトル、及びフレーム内における位置情報を第1動きベクトル修正部15−1、及び第2動きベクトル修正部15−2に出力する。
【0052】
動きベクトル確度判定部13は、ブロック情報取得部11から所得した参照ブロックの動きベクトルが、動きベクトル閾値決定部12により決定された動きベクトル閾値を越えるか否かを判定し、動きベクトルの確度情報を第1動きベクトル修正部15−1、第2動きベクトル修正部15−2、及び第3予測動きベクトル生成部14−3に出力する。
【0053】
第1動きベクトル修正部15−1は、実施例2において動きベクトル修正部15の第1の例として説明した動きベクトル修正処理を行う。すなわち、参照ブロックの動きベクトルの確度が低い場合、参照ブロック及び隣接参照ブロックの動きベクトルの中央値又は平均値を修正動きベクトルとして生成し、参照ブロックの動きベクトルの確度が高い場合、そのまま動きベクトルを出力する。
【0054】
第2動きベクトル修正部15−2は、実施例2において動きベクトル修正部15の第2の例として説明した動きベクトル修正処理を行う。すなわち、参照ブロックの動きベクトルの確度が低い場合、参照ブロック及び隣接参照ブロックを統合し、統合ブロックの動きベクトルを修正動きベクトルとして生成し、参照ブロックの動きベクトルの確度が高い場合、そのまま動きベクトルを出力する。
【0055】
第1予測動きベクトル生成部14−1は、第1動きベクトル修正部15−1から予測対象ブロックに関する全ての参照ブロックについて、動きベクトル又は修正動きベクトルを取得し、これらのベクトルの中央値又は平均値を予測対象ブロックの第1予測動きベクトルとして生成する。同様に、第2予測動きベクトル生成部14−2は、第2動きベクトル修正部15−2から予測対象ブロックに関する全ての参照ブロックについて、動きベクトル又は修正動きベクトルを取得し、これらのベクトルの中央値又は平均値を予測対象ブロックの第2予測動きベクトルとして生成する。
【0056】
第3予測動きベクトル生成部14−3は、動きベクトル確度判定部13から入力される確度情報に基づき、動きベクトル確度判定部13により確度が高いと判定された動きベクトルのみを用い、該動きベクトルの中央値又は平均値を予測対象ブロックの第3予測動きベクトルとして生成する。
【0057】
このように、実施例3の動きベクトル予測装置3は、第1予測動きベクトル生成部14−1、第2予測動きベクトル生成部14−2、及び第3予測動きベクトル生成部14−3から、それぞれ異なる方法で予測した予測動きベクトルを出力する。このため、動きベクトル予測装置3によれば、予測対象ブロックごとや入力画像ごとに最適な予測動きベクトルを選択するといった自由度を持たせることができ、さらに動きベクトルの予測確度を向上させることができるようになる。
【0058】
なお、上述した動きベクトル予測装置3として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、動きベクトル予測装置3の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。
【実施例4】
【0059】
次に、上述した動きベクトル予測装置1乃至3を備える符号化装置について説明する。図7は、本発明による実施例1の符号化装置の構成を示すブロック図であり、ここではMPEG−4 AVC/H.264方式の符号化装置に本発明に係る動きベクトル予測装置1乃至3を適用した例を示している。図7に示すように、符号化装置20は、減算部21と、直交変換部22と、量子化部23と、逆量子化部24と、逆直交変換部25と、加算部26と、メモリ27と、イントラ予測部28と、動きベクトル検出部29と、動き補償部30と、切替えスイッチ31と、動きベクトル予測装置1乃至3と、可変長符号化部32とを備える。
【0060】
減算部21は、入力画像と、切替えスイッチ31を介してイントラ予測部28又は動き補償部30から入力される予測画像との差分画像を生成し、直交変換部22に出力する。
【0061】
直交変換部22は、減算部21から入力される差分画像に対して小領域の画像ブロック(以下、単に「ブロック」という)ごとに直交変換を施し、直交変換係数を量子化部23に出力する。
【0062】
量子化部23は、直交変換部22から入力される直交変換係数に対して量子化テーブルを選択して量子化処理を行い、逆量子化部24及び可変長符号化部32に出力する。
【0063】
逆量子化部24は、量子化部23から入力される量子化された直交変換係数に対して逆量子化処理を行い、逆直交変換部25に出力する。
【0064】
逆直交変換部25は、逆量子化部24から入力される直交変換係数に対して逆直交変換(例えば、IDCT;Inverse Discrete Cosine Transform)処理を施し、加算部26に出力する。
【0065】
加算部26は、逆直交変換部25から入力される逆直交変換した画像と、切替えスイッチ31を介してイントラ予測部28又は動き補償部30から入力される予測画像とを加算して復号画像を生成し、メモリ27に出力する。
【0066】
イントラ予測部28は、メモリ27に記憶された符号化対象ブロックに隣接する符号化済みのブロックの復号画像を参照し、予測モードを決定してイントラ予測画像を生成し、切替えスイッチ31を介して減算部21及び加算部26に出力するとともに、決定した予測モードを示す予測モード情報を可変長符号化部32に出力する。
【0067】
動きベクトル検出部29は、入力画像に対して、メモリ27に記憶された過去及び/又は未来のピクチャ(フレーム)を参照し、SSD法やSAD法を用いたブロックマッチングにより動きベクトルを生成し、動きベクトルを動き補償部30、動きベクトル予測装置1乃至3、及び可変長符号化部32に出力し、動きベクトル検出処理時のブロックサイズを可変長符号化部32に出力する。ブロックマッチングは、例えば式(2)に示したようにパラボラフィッティング関数を用いた補間処理により、小数画素精度で行う。
【0068】
また、動きベクトル検出部29は、フレーム内のブロックのうち、動きベクトルを予測により求めるブロックを決定する。あるブロックについて動きベクトルを予測するのは、全てのブロックについて動きベクトルを検出して復号側に伝送すると伝送情報量が多くなるので、一部のブロックについては動きベクトルを伝送せずに予測により求めて伝送情報量を削減するためである。動きベクトルを予測により求めるブロックは、例えばR−D最適化(Rate-Distortion Optimization)により決定することができる。動きベクトル検出部29は、動きベクトルを予測により求めるブロックを示す情報を動きベクトル予測装置1乃至3、及び可変長符号化部32に出力する。
【0069】
動きベクトル予測装置1乃至3は、動きベクトル検出部29から参照ブロックのブロック情報を取得し、動きベクトルを予測により求めるブロック(予測対象ブロック)について予測動きベクトルを生成し、動き補償部30に出力する。
【0070】
動き補償部30は、メモリ27に記憶された復号画像に対し、動きベクトル検出部29から入力される動きベクトル、又は動きベクトル予測装置1乃至3から入力される予測動きベクトルを用いて動き補償を行ってインター予測画像を生成し、切替えスイッチ31を介して減算部21及び加算部26に出力する。
【0071】
動きベクトル予測装置3を適用する場合には、複数の予測動きベクトルのうち1つを選択する。例えば、予測動きベクトルごとにそれぞれ動き補償を行い、入力画像と各動き補償画像とを比較して最も誤差の小さくなる予測動きベクトルを選択する。
【0072】
切替えスイッチ31は、イントラ予測部28から入力されるイントラ予測画像と、動き補償部30から入力されるインター予測画像とを切替えて、減算部21及び加算部26に出力する。
【0073】
可変長符号化部32は、量子化部23から入力される量子化された直交変換係数についてスキャンを行って可変長符号化処理を施しビットストリームを生成するとともに、イントラ予測部28から入力される予測モード情報、及び動きベクトル検出部29から入力されるブロック情報(動きベクトルの情報、動きベクトル検出処理時のブロックサイズ、及び動きベクトルを予測により求めるブロックを示す情報)も可変長符号化処理を施し、符号化データを外部に出力する。
【0074】
このように、符号化装置20によれば、動きベクトル予測装置1乃至3により予測動きベクトルの予測確度が向上するため、確度の高い予測動きベクトルを用いて原画像を符号化することにより、符号化効率を向上させることができるようになる。
【0075】
なお、上述した符号化装置20として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、符号化装置20の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。
【実施例5】
【0076】
次に、上述した符号化装置20によって符号化されたデータを復号する復号装置について説明する。図8は、本発明による実施例5の復号装置の構成を示すブロック図であり、ここではMPEG−4 AVC/H.264方式の復号装置に本発明に係る動きベクトル予測装置1乃至3を適用した例を示している。図8に示すように、復号装置40は、可変長復号部41と、逆量子化部42と、逆直交変換部43と、加算部44と、メモリ45と、イントラ予測部46と、動き補償部47と、切替えスイッチ48と、動きベクトル予測装置1乃至3とを備える。
【0077】
可変長復号部41は、符号化された直交変換係数に対して可変長復号処理を施して逆量子化部42に出力し、符号化された予測モード情報に対して可変長復号処理を施してイントラ予測装部46に出力し、符号化されたブロック情報(動きベクトルの情報、動きベクトル検出処理時のブロックサイズ、及び動きベクトルを予測により求めるブロックを示す情報)に対して可変長復号処理を施し、動き補償部47及び動きベクトル予測装置1乃至3に出力する。
【0078】
逆量子化部42は、可変長復号部41から入力される量子化された直交変換係数に対して逆量子化処理を施して、動き補償した差分画像の直交変換係数を取得し、逆直交変換部43に出力する。
【0079】
逆直交変換部43は、逆量子化部42から入力される差分画像の直交変換係数に対して、逆直交変換(例えば、IDCT)を施し、得られる差分画像を加算部44に出力する。
【0080】
加算部44は、逆直交変換部43から得られる差分画像と、切替えスイッチ48を介してイントラ予測部46又は動き補償部47から入力される予測画像とを加算して画像を復元し、メモリ45及び外部に出力する。
【0081】
イントラ予測装部46は、メモリ45に記憶された復号対象ブロックに隣接する復号済みのブロックの復号画像を参照して、可変長復号部41から入力される予測モードに基づいてイントラ予測画像を生成し、切替えスイッチ48を介して加算部44に出力する。
【0082】
動きベクトル予測装置1乃至3は、可変長復号部41からブロック情報を取得し、動きベクトルを予測により求めるブロック(予測対象ブロック)について予測動きベクトルを生成し、動き補償部47に出力する。
【0083】
動き補償部47は、メモリ45に記憶された復号フレーム画像を参照し、可変長復号部41から得られる動きベクトルを用いてインター予測画像を生成する。また、動き補償部47は、動きベクトルを予測により求めるブロックについては、動きベクトル予測装置1乃至3から得られる予測動きベクトルを用いてインター予測画像を生成する。動き補償部47は、生成したインター予測画像を切替えスイッチ48を介して加算部44に出力する。
【0084】
切替えスイッチ48は、イントラ予測部46から入力されるイントラ予測画像と、動き補償部47から入力されるインター予測画像とを切替えて加算部44に出力する。
【0085】
このように、復号装置40によれば、確度の高い予測動きベクトルを用いて符号化された原画像の符号化データを復号するため、復号画像の画質を向上させることができるようになる。
【0086】
なお、上述した復号装置40として機能させるためにコンピュータを好適に用いることができ、そのようなコンピュータは、復号装置40の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。
【0087】
上述の各実施例は、代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【産業上の利用可能性】
【0088】
このように、本発明によれば、動きベクトルの予測確度を向上させることができるので、動きベクトルを予測する任意の用途に有用である。
【符号の説明】
【0089】
1,2,3 動きベクトル予測装置
11 ブロック情報取得部
12 動きベクトル閾値決定部
13 動きベクトル確度判定部
14 予測動きベクトル生成部
14−1 第1予測動きベクトル生成部
14−2 第2予測動きベクトル生成部
14−3 第3予測動きベクトル生成部
15 動きベクトル修正部
15−1 第1動きベクトル修正部
15−2 第2動きベクトル修正部
20 符号化装置
40 復号装置
21 減算部
22 直交変換部
23 量子化部
24,42 逆量子化部
25,43 逆直交変換部
26,44 加算部
27,45 メモリ
28,46 イントラ予測部
29 動きベクトル検出部
30,47 動き補償部
31,48 切替えスイッチ
32 可変長符号化部
41 可変長復号部

【特許請求の範囲】
【請求項1】
予測対象ブロックの動きベクトルを、該予測対象ブロックに隣接する1以上の参照ブロックの動きベクトルを用いて予測する動きベクトル予測装置であって、
参照ブロックの動きベクトルの大きさの閾値を、画像解像度が高いほど小さく、且つ該参照ブロックのブロックサイズが小さいほど小さくなるように決定する動きベクトル閾値決定部と、
参照ブロックの動きベクトルの大きさが前記動きベクトル閾値決定部により決定された閾値を越えるか否かを参照ブロックごとに判定する動きベクトル確度判定部と、
1以上の参照ブロックの動きベクトルの中央値又は平均値を前記予測対象ブロックの予測動きベクトルとして生成する予測動きベクトル生成部と、を備え、
前記予測動きベクトル生成部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値以下であると判定された動きベクトルを用いて前記予測動きベクトルを生成することを特徴とする動きベクトル予測装置。
【請求項2】
前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロックの動きベクトルを修正する動きベクトル修正部を更に備え、
前記予測動きベクトル生成部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値以下であると判定された場合には該動きベクトルを用い、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合には前記動きベクトル修正部により修正された動きベクトルを用いて前記予測動きベクトルを生成することを特徴とする、請求項1に記載の動きベクトル予測装置。
【請求項3】
前記動きベクトル修正部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロックの動きベクトル及び該参照ブロックに隣接するブロックの動きベクトルの中央値又は平均値を算出し、参照ブロックの動きベクトルを、前記算出した中央値又は平均値に修正することを特徴とする、請求項2に記載の動きベクトル予測装置。
【請求項4】
前記動きベクトル修正部は、前記動きベクトル確度判定部により参照ブロックの動きベクトルの大きさが前記閾値を越えると判定された場合に、参照ブロック及び該参照ブロックに隣接するブロックを統合した統合ブロックを生成して統合ブロックの動きベクトルを検出し、参照ブロックの動きベクトルを、前記検出した統合ブロックの動きベクトルに修正することを特徴とする、請求項2に記載の動きベクトル予測装置。
【請求項5】
請求項1から4のいずれか一項に記載の動きベクトル予測装置を備え、前記予測動きベクトルを用いて動き補償を行うことを特徴とする符号化装置。
【請求項6】
請求項1から4のいずれか一項に記載の動きベクトル予測装置を備え、前記予測動きベクトルを用いて動き補償を行うことを特徴とする復号装置。
【請求項7】
コンピュータを、請求項1から4のいずれか一項に記載の動きベクトル予測装置として機能させるための動きベクトル検出プログラム。
【請求項8】
コンピュータを、請求項5に記載の符号化装置として機能させるための符号化プログラム。
【請求項9】
コンピュータを、請求項6に記載の復号装置として機能させるための復号プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−58873(P2013−58873A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−195420(P2011−195420)
【出願日】平成23年9月7日(2011.9.7)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】