(57)【要約】【課題】複数の動きベクトル候補があるときに、適応的に探索領域を修正して探索を行うことにより、符号化ブロックに対する実際の探索領域を広くすることができる映像符号化装置を提供する。【解決手段】予測ベクトル候補に対して、探索範囲の重複を避けるために予測ベクトル候補を修正し、新たに予測ベクトル候補を生成して映像符号化を行う映像符号化装置であって、全ての動きベクトル候補の指す座標から中心点の座標を算出して出力する中心点検出手段と、複数の動きベクトル候補の指す座標および探索範囲から、動きベクトル候補の探索領域の重なりを検出し、重なり情報を出力する重なり検出手段と、複数の動きベクトル候補の指す座標と、中心点の座標と、重なり情報と、参照画像情報を用いて、動きベクトル候補の値を修正し、修正済の動きベクトル候補を出力する候補ベクトル修正手段とを備える。【選択図】図２
2015076766.tif 000002
【特許請求の範囲】
【請求項１】
予測ベクトル候補に対して、探索範囲の重複を避けるために予測ベクトル候補を修正し、新たに予測ベクトル候補を生成して映像符号化を行う映像符号化装置であって、
全ての動きベクトル候補の指す座標から中心点の座標を算出して出力する中心点検出手段と、
複数の前記動きベクトル候補の指す座標および探索範囲から、前記動きベクトル候補の探索領域の重なりを検出し、重なり情報を出力する重なり検出手段と、
複数の前記動きベクトル候補の指す座標と、前記中心点の座標と、前記重なり情報と、参照画像情報を用いて、前記動きベクトル候補の値を修正し、修正済の動きベクトル候補を出力する候補ベクトル修正手段と
を備えることを特徴とする映像符号化装置。
【請求項２】
前記候補ベクトル修正手段は、前記動きベクトル候補が指す座標を横方向へ移動させることにより、前記動きベクトル候補の値を修正することを特徴とする請求項１に記載の映像符号化装置。
【請求項３】
前記候補ベクトル修正手段は、前記動きベクトル候補が指す座標を縦方向へ移動させることにより、前記動きベクトル候補の値を修正することを特徴とする請求項１に記載の映像符号化装置。
【請求項４】
前記候補ベクトル修正手段は、前記動きベクトル候補のベクトルの長さを変えることにより、前記動きベクトル候補の値を修正することを特徴とする請求項１に記載の映像符号化装置。
【請求項５】
前記候補ベクトル修正手段は、前記動きベクトル候補のベクトルの向きを変えることにより、前記動きベクトル候補の値を修正することを特徴とする請求項１に記載の映像符号化装置。
【請求項６】
前記中心点検出手段は、全ての前記動きベクトル候補が指す座標点から、算術平均を用いて前記中心点座標を算出することを特徴とする請求項１から５のいずれか１項に記載の映像符号化装置。
【請求項７】
前記中心点検出手段は、全ての前記動きベクトル候補が指す座標点の中央値を前記中心点座標として算出することを特徴とする請求項１から５のいずれか１項に記載の映像符号化装置。
【請求項８】
予測ベクトル候補に対して、探索範囲の重複を避けるために予測ベクトル候補を修正し、新たに予測ベクトル候補を生成して映像符号化を行う映像符号化装置が行う映像符号化方法であって、
全ての動きベクトル候補の指す座標から中心点の座標を算出して出力する中心点検出ステップと、
複数の前記動きベクトル候補の指す座標および探索範囲から、前記動きベクトル候補の探索領域の重なりを検出し、重なり情報を出力する重なり検出ステップと、
複数の前記動きベクトル候補の指す座標と、前記中心点の座標と、前記重なり情報と、参照画像情報を用いて、前記動きベクトル候補の値を修正し、修正済の動きベクトル候補を出力する候補ベクトル修正ステップと
を有することを特徴とする映像符号化方法。
【請求項９】
コンピュータを、請求項１から７のいずれか１項に記載の映像符号化装置として機能させるための映像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き予測を用いて映像符号化を行う映像符号化装置、映像符号化方法及び映像符号化プログラムに関する。
【背景技術】
【０００２】
映像符号化技術は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＭＰＥＧ−４／ＡＶＣが多く用いられており、近年ではＭＰＥＧ−４／ＡＶＣに次ぐ映像符号化規格として、ＨＥＶＣが規格化されている。映像符号化規格では、１つのフレーム内に閉じた情報を用いて符号化を行う画面内符号化を用いた情報量の削減方法が一般的であったが、近年用いられている映像符号化規格では時間的に連続した複数のフレームを用いて符号化を行う画面間符号化を組合せた情報量の削減手法が一般的である。
【０００３】
画面間符号化では、異なる画面間の動き予測処理を行い動きベクトル情報を取得し、動きベクトル情報と画面間の差分値を符号化することで情報量を削減している。ここで、正しい動きを捉えて精度の高い動きベクトルを導くことで、高効率に情報量を削減することが可能となる。精度の高い動きベクトルを探す手法としては、もっとも基本的な手法として全探索手法がある。全探索手法では、画面内を端から端まですべての領域を対象に探索を行うため、高い精度を実現することが可能だが、その演算量は膨大である。そこで高効率に動きベクトルを探す手法として様々な手法が提案されている。
【０００４】
１つ目は予測ベクトルの周辺を探索する手法である。これは符号化ブロックの動き予測結果と周囲の符号化ブロックの動き予測結果は相関が高いという傾向に基づいた手法であり、ＭＰＥＧ−４／ＡＶＣやＨＥＶＣでは予測ベクトルの算出方法が定められており、ブロックの動きベクトルは予測ベクトルからの差分値のみを符号化することで符号量の削減を行なっている。この予測ベクトルを利用し、ブロック周辺の既出の動きベクトルから予測ベクトルを算出し、予測ベクトルが指し示す位置を探索の中心として周辺を探索する手法である（例えば、非特許文献１参照）。
【０００５】
２つ目は探索点を効率よく削減し探索する手法である。ステップサーチに代表されるように、ある探索範囲の探索点すべてを評価するのではなく、まず広く離散的な数点を評価しその中で最も適した点を中心に近傍点を探索して行くことで少ない演算量で動きベクトルを決定する方法である。近年ではＥＰＺＳ（Enhanced Predictive Zonal Search）と呼ばれるステップサーチと全探索を組合せた探索手法が行われており、少ない演算量で全探索とほぼ同程度の探索精度を実現している（例えば、非特許文献２参照）。
【０００６】
すべての領域を探索する全探索とは異なり探索点を絞る方法では、探索の精度を高めるために複数の候補点を定め、その候補について段階的に評価を行なっている。この様な探索器の一つとして図１に示す構成が考えられる。図１は、動きベクトル候補の探索範囲例を示す図である。図１において、ｍｖＡ、ｍｖＢはそれぞれ上近傍と左近傍の符号化ブロックの動き予測結果から得られる予測ベクトルを表しており、探索範囲を予測ベクトルの中心から±１画素としているが、縦横それぞれ±ｎ画素探索も考えられる。この時、参照画像としては整数画素精度でもよいし、縮小画像を用いた小数画素精度でもよい。図１に示す探索を行う場合は、１つの探索範囲あたり３×３画素の合計９画素を探索するため、予測ベクトルｍｖＡ、ｍｖＢの２つの候補がある場合は９画素以上探索することが可能となる。
【０００７】
このことから、探索の精度を高めるための手法として候補を複数用意することが有益であることは明らかである。そのため、周囲の符号化ベクトルの動きベクトルを複数個用意し、その動きベクトルをもとに探索を行うという手法が考えられている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】ＩＳＯ／ＩＥＣ  １４４９６−２（ＭＰＥＧ−４の勧告書）
【非特許文献２】Alexis M.Tourapis."Enhanced Predictive Zonal Search for Single and Multiple Frame Motion Estimation".in Proceedings of Visual Communications and Image Processing、pp.1069-1079、January 2002.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、非特許文献１、２に記載の映像符号化装置では複数の動きベクトル候補の探索領域に重なりが生じる可能性がある。探索領域に重なりが生じる場合は、動きベクトル候補ごとに同一の探索領域を複数回探索することが発生するため、動きベクトル候補数あたりの実際の探索領域が狭くなるという問題がある。
【００１０】
図１に示す例では、予測ベクトルｍｖＡ、ｍｖＢの探索領域の重なりが生じている。この様な場合に、重複した探索範囲では探索処理を止めるという解もあるが、ハードウェア実装のような定められた処理あたりの時間が決まっている場合には（ここでは、探索処理に与えられた演算時間を指す）、探索処理を止めている間は演算を行わない空きの時間が生じてしまう。探索処理を止めてしまうと、演算器が処理を行わない空きの時間が生じてしまうことに加え、十分な探索領域を探索することができていないという問題がある。
【００１１】
本発明は、このような事情に鑑みてなされたもので、複数の動きベクトル候補があるときに、適応的に探索領域を修正して探索を行うことにより、符号化ブロックに対する実際の探索領域を広くすることができる映像符号化装置、映像符号化方法及び映像符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、予測ベクトル候補に対して、探索範囲の重複を避けるために予測ベクトル候補を修正し、新たに予測ベクトル候補を生成して映像符号化を行う映像符号化装置であって、全ての動きベクトル候補の指す座標から中心点の座標を算出して出力する中心点検出手段と、複数の前記動きベクトル候補の指す座標および探索範囲から、前記動きベクトル候補の探索領域の重なりを検出し、重なり情報を出力する重なり検出手段と、複数の前記動きベクトル候補の指す座標と、前記中心点の座標と、前記重なり情報と、参照画像情報を用いて、前記動きベクトル候補の値を修正し、修正済の動きベクトル候補を出力する候補ベクトル修正手段とを備えることを特徴とする。
【００１３】
本発明は、前記候補ベクトル修正手段は、前記動きベクトル候補が指す座標を横方向へ移動させることにより、前記動きベクトル候補の値を修正することを特徴とする。
【００１４】
本発明は、前記候補ベクトル修正手段は、前記動きベクトル候補が指す座標を縦方向へ移動させることにより、前記動きベクトル候補の値を修正することを特徴とする。
【００１５】
本発明は、前記候補ベクトル修正手段は、前記動きベクトル候補のベクトルの長さを変えることにより、前記動きベクトル候補の値を修正することを特徴とする。
【００１６】
本発明は、前記候補ベクトル修正手段は、前記動きベクトル候補のベクトルの向きを変えることにより、前記動きベクトル候補の値を修正することを特徴とする。
【００１７】
本発明は、前記中心点検出手段は、全ての前記動きベクトル候補が指す座標点から、算術平均を用いて前記中心点座標を算出することを特徴とする。
【００１８】
本発明は、前記中心点検出手段は、全ての前記動きベクトル候補が指す座標点の中央値を前記中心点座標として算出することを特徴とする。
【００１９】
本発明は、予測ベクトル候補に対して、探索範囲の重複を避けるために予測ベクトル候補を修正し、新たに予測ベクトル候補を生成して映像符号化を行う映像符号化装置が行う映像符号化方法であって、全ての動きベクトル候補の指す座標から中心点の座標を算出して出力する中心点検出ステップと、複数の前記動きベクトル候補の指す座標および探索範囲から、前記動きベクトル候補の探索領域の重なりを検出し、重なり情報を出力する重なり検出ステップと、複数の前記動きベクトル候補の指す座標と、前記中心点の座標と、前記重なり情報と、参照画像情報を用いて、前記動きベクトル候補の値を修正し、修正済の動きベクトル候補を出力する候補ベクトル修正ステップとを有することを特徴とする。
【００２０】
本発明は、コンピュータを、前記映像符号化装置として機能させるための映像符号化プログラムである。
【発明の効果】
【００２１】
本発明によれば、複数の動きベクトル候補の情報を探索範囲情報を用いて修正を行い、新たに動きベクトル候補を定め、新たに定めた動きベクトル候補では探索範囲の重複が発生しないようにしたため、より広い範囲を探索することが可能になるという効果が得られる。そのため、探索性能の向上が見込め、符号化効率を向上することができる。
【図面の簡単な説明】
【００２２】
【図１】動きベクトル候補の探索範囲例を示す図である。
【図２】本発明の一実施形態の構成を示すブロック図である。
【図３】動きベクトル候補の修正例を示す図である。
【図４】動きベクトル候補の修正例を示す図である。
【図５】動きベクトル候補の修正例を示す図である。
【図６】動きベクトル候補の修正例を示す図である。
【図７】動きベクトル候補の修正例を示す図である。
【図８】動きベクトル候補の修正例を示す図である。
【図９】ベクトルの方向の定義を示す図である。
【図１０】動きベクトル候補の修正例を示す図である。
【図１１】動きベクトル候補の修正例を示す図である。
【図１２】図２に示す予測ベクトル生成部１００の処理動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の一実施形態による映像符号化装置を説明する。図２は同実施形態の構成を示すブロック図である。映像符号化装置１の構成を図２を参照して説明するに際して、映像符号化装置が普通に有する公知の機能・構成については、本発明の説明に直接関わりがない限り、その説明及び構成の図示を省略する。本実施形態による映像符号化装置１は、予測ベクトル生成部１００を備えている。予測ベクトル生成部１００は、中心点検出部１０１と、重なり検出部１０２と、候補ベクトル修正部１０３とを含んで構成される。
【００２４】
中心点検出部１０１は、すべての動きベクトル候補（動きベクトル候補１〜Ｎ）を入力とし、各動きベクトル候補の指す座標値から中心点を算出する。中心点の決定方法としては平均値や中央値を考慮した方法などがある。例えば、平均値として中心点を算出する方法は以下の通りとなる。候補ベクトルの数が２個で、それぞれｍｖＡ＝（ｘＡ，ｙＡ）、ｍｖＢ＝（ｘＢ，ｙＢ）とする。その時、中心点（ＣｅｎｔｅｒＸ，ＣｅｎｔｅｒＹ）は（１）式、（２）式のようになる。
【数１】
2015076766.tif 000003
【数２】
2015076766.tif 000004
【００２５】
同様に、中央値で定める場合は（３）式、（４）式のようになる。ここでｍｅｄｉａｎ（ｖａｌ１，ｖａｌ２，…，ｖａｌＮ）はｖａｌ１〜ｖａｌＮを小さい順から並べたときに中央の値を返す関数である。Ｎが偶数の場合は中央の２つの値の算術平均値を返す。
【数３】
2015076766.tif 000005
【数４】
2015076766.tif 000006
【００２６】
重なり検出部１０２は、すべての動きベクトル候補（動きベクトル候補１〜Ｎ）及び探索範囲の情報を入力とし、各動きベクトル間の重なり度合いを検出する。重なり度合いは、各動きベクトル候補の指す座標値に加え、探索範囲（Ｓｘ，Ｓｙ）から算出する。例えば、候補ベクトルの数が２個で、それぞれｍｖＡ＝（ｘＡ、ｙＡ），ｍｖＢ＝（ｘＢ、ｙＢ）とし、この時のＸ方向の重なりをＯＬｘ、Ｙ方向の重なりをＯＬｙとする。ここで重なりがある場合は、（５）式が成立する。このとき、ＯＬｘ、ＯＬｙをそれぞれ（６）式、（７）式のように定める。
【数５】
2015076766.tif 000007
【数６】
2015076766.tif 000008
【数７】
2015076766.tif 000009
【００２７】
一方、候補ベクトル間に重なりが無い場合は、（８）式が成立する。このとき、ＯＬｘ、ＯＬｙはそれぞれ（９）式、（１０）式のように定める。
【数８】
2015076766.tif 000010
【数９】
2015076766.tif 000011
【数１０】
2015076766.tif 000012
【００２８】
候補ベクトル修正部１０３は、すべての動きベクトル候補（動きベクトル候補１〜Ｎ）、探索範囲、中心点、参照画像を入力とし、動きベクトル候補の修正を行い各動きベクトルの探索範囲が重なりが起きないように修正を行う。修正を行う方法としてはいくつかの方法がある。ここでは、候補ベクトルの数が２個で、それぞれｍｖＡ＝（ｘＡ，ｙＡ），ｍｖＢ＝（ｘＢ、ｙＢ）とし、Ｘ方向の重なりがＯＬｘ、Ｙ方向の重なりをＯＬｙとし、探索範囲が（Ｓｘ、Ｓｙ）、中心点が（ＣｅｎｔｅｒＸ，ＣｅｎｔｅｒＹ）のときを例に説明する。
【００２９】
修正前の各候補ベクトルの探索範囲を図１に示す。塗りつぶされている部分がｍｖＡ，ｍｖＢによる探索範囲を表しており、斜線で塗られている部分が重なり部分を表している。
【００３０】
第１の修正方法は、横スライドである。横スライドは候補ベクトルが指す座標を横方向へスライドさせる方法である。図３、図４は横スライドの時の処理例を示す。図３は一方の候補ベクトルを固定し、もう一方の候補ベクトルのみ横方向へスライドさせている。スライドさせるベクトルの選択方法はとしては様々な手法が適用できる。例えば、ベクトルの長さが短い方または長い方を選択する方法や、周辺ブロックの動きベクトルに近いベクトルを選択する方法などが適用できる。図４は候補ベクトルをどちらも横方向へスライドさせている。スライドさせる大きさはＸ方向の重なりを表すＯＬｘから算出する。スライドさせる方向はｍｖＡ、ｍｖＢ、中心点から算出する。ｍｖＡを固定し、ｍｖＢを修正する場合は、スライドさせる方向は（ｘＢ−ＣｅｎｔｅｒＸ）の値の正負によって求める。正の時はプラス方向に、負の時はマイナス方向へスライドさせる。正のときは（１１）式のように修正を行う。
【数１１】
2015076766.tif 000013
【００３１】
ｍｖＡ、ｍｖＢともに修正を行う場合は、優先ベクトルを予め定めてからベクトルの修正を行う。ＯＬｘが偶数の場合はｘＡ、ｘＢともにＯＬｘ／２だけ加算し修正を行うが、ＯＬｘが奇数の場合は優先ベクトルの方のスライドの大きさを大きくする。スライドさせる方向はｍｖＡ、ｍｖＢ、中心点から算出する。ｍｖＡ、ｍｖＢの移動する方向はそれぞれ（ｘＡ−ＣｅｎｔｅｒＸ）および（ｘＢ−ＣｅｎｔｅｒＸ）の符号によって決める。正の時はプラス方向に、負の時はマイナス方向へスライドさせる。ｍｖＡが優先ベクトルで、ＯＬｘが奇数の時で、ｍｖＡのスライド方向がプラス、ｍｖＢのスライド方向がマイナスでｍｖＡ、ｍｖＢを修正する場合は、（１２）式、（１３）式のように修正を行う。
【数１２】
2015076766.tif 000014
【数１３】
2015076766.tif 000015
【００３２】
第２の修正方法は、縦スライドである。縦スライドは候補ベクトルが指す座標を縦方向へスライドさせる方法である。図５、図６は縦スライドの時の処理例を示す。図５は一方の候補ベクトルを固定し、もう一方の候補ベクトルのみ縦方向へスライドさせている。スライドさせるベクトルの選択方法はとしては様々な手法が適用できる。例えば、ベクトルの長さが短い方または長い方を選択する方法や、周辺ブロックの動きベクトルに近いベクトルを選択する方法などが適用できる。図６は候補ベクトルをどちらも縦方向へスライドさせている。スライドさせる大きさはＹ方向の重なりを表すＯＬｙから算出する。スライドさせる方向はｍｖＡ、ｍｖＢ、中心点から算出する。ｍｖＡを固定し、ｍｖＢを修正する場合は、スライドさせる方向は（ｙＢ−ＣｅｎｔｅｒＹ）の値の正負によって求める。正の時はプラス方向に、負の時はマイナス方向へスライドさせる。正のときは（１４）式のように修正を行う。
【数１４】
2015076766.tif 000016
【００３３】
ｍｖＡ、ｍｖＢともに修正を行う場合は、優先ベクトルを予め定めてからベクトルの修正を行う。ＯＬｙが偶数の場合はｙＡ、ｙＢともにＯＬｙ／２だけ加算し修正を行うが、ＯＬｙが奇数の場合は優先ベクトルの方のスライドの大きさを大きくする。スライドさせる方向はｍｖＡ、ｍｖＢ、中心点から算出する。ｍｖＡ、ｍｖＢの移動する方向はそれぞれ（ｙＡ−ＣｅｎｔｅｒＹ）および（ｙＢ−ＣｅｎｔｅｒＹ）の符号によって決める。正の時はプラス方向に、負の時はマイナス方向へスライドさせる。ｍｖＡが優先ベクトルで、ＯＬｙが奇数の時で、ｍｖＡのスライド方向がプラス、ｍｖＢのスライド方向がマイナスでｍｖＡ、ｍｖＢを修正する場合は、（１５）式、（１６）式のように修正を行う。
【数１５】
2015076766.tif 000017
【数１６】
2015076766.tif 000018
【００３４】
第３の修正方法は、ベクトル伸縮である。ベクトル伸縮は候補ベクトルが指す座標をベクトルの向きは同じで長さを変える方法である。図７、図８はベクトル伸縮の時の処理例を示す。図７は一方の候補ベクトルを固定し、もう一方の候補ベクトルのみ伸縮させている。伸縮させるベクトルの選択方法はとしては様々な手法が適用できる。例えば、ベクトルの長さが短い方または長い方を選択する方法や、周辺ブロックの動きベクトルに近いベクトルを選択する方法などが適用できる。図８は候補ベクトルをどちらも伸縮させている。図９は、ベクトルの方向の定義を示す図である。伸縮させる大きさはｍｖＡ、ｍｖＢ、ＯＬｘ、ＯＬｙから求める。伸縮させる大きさはＸ方向の重なりを表すＯＬｘおよびＹ方向の重なりを表すＯＬｙから算出する。具体的には、ベクトル伸縮させるベクトルの向きが上方向または下方向の場合はＯＬｘから算出し、ベクトル伸縮させるベクトルの向きが右方向または下方向の場合はＯＬｙから算出する。伸縮させる方向はｍｖＡ、ｍｖＢ、中心点から算出する。
【００３５】
ｍｖＡを固定し、ｍｖＢを修正する場合は、伸縮させる方向は候補ベクトルの長さと、原点から中心点までのベクトル（以下、中心点ベクトルという）の長さを比較する。候補ベクトルの方が中心点ベクトルよりも長い場合は候補ベクトルを伸ばす方向へ、候補ベクトルの方が中心点ベクトルよりも短い場合は候補ベクトルを縮める方向へとベクトルを修正する。伸ばす方向のときは（１７）式のように修正を行う。ただし、この時｜ｘＢ｜が負、｜ｙＢ｜が正とし、ｍｖＢが上方向とする。ここで、ｘＡ×ＯＬｙ／ｙＡの結果は切り上げとする。
【数１７】
2015076766.tif 000019
【００３６】
ｍｖＡ、ｍｖＢともに修正を行う場合は、優先ベクトルを予め定めてからベクトルの修正を行う。伸縮させる方向に対応するＯＬｘまたはＯＬｙの値が偶数の場合はその値の１／２だけ加算し修正を行うが、ＯＬｘまたはＯＬｙの値が奇数の場合は優先ベクトルの方の伸縮の大きさを大きくする。伸縮させる方向は候補ベクトルの長さと、中心点ベクトルの長さを比較する。候補ベクトルの方が中心点ベクトルよりも長い場合は候補ベクトルを伸ばす方向へ、候補ベクトルの方が中心点ベクトルよりも短い場合は候補ベクトルを縮める方向へとベクトルを修正する。ｍｖＡが優先ベクトルで、ｍｖＡは下方向に縮める方向に、ｍｖＢは上方向に伸ばす方向でｍｖＡ、ｍｖＢを修正する場合は、（１８）式、（１９）式のように修正を行う。ただし、この時｜ｘＡ｜が負、｜ｙＡ｜が正、｜ｘＢ｜が負、｜ｙＢ｜が正とする。ここで、ｘＡ×ＯＬｙ／２ｙＡ、ｙＢ×ＯＬｙ／２ｙＢおよびＯＬｙ／２の結果は切り上げとする。
【数１８】
2015076766.tif 000020
【数１９】
2015076766.tif 000021
【００３７】
第４の修正方法は、ベクトル回転である。ベクトル回転は候補ベクトル間の距離を遠ざけるようにベクトルの向きを変える方法である。図１０、図１１はベクトル回転の時の処理例を示す。図１０は一方の候補ベクトルを固定し、もう一方の候補ベクトルのみ回転させている。回転させるベクトルの選択方法はとしては様々な手法が適用できる。例えば、ベクトルの長さが短い方または長い方を選択する方法や、周辺ブロックの動きベクトルに近いベクトルを選択する方法などが適用できる。図１１は候補ベクトルをどちらも回転させている。回転させるためのベクトルの方向は、ｍｖＡ、ｍｖＢ、中心点から求める。ｍｖＢを動かす場合は、ｍｖＡまたは中心点からｍｖＢへのベクトルの方向により求める。ベクトルの移動の大きさはベクトルの方向とＯＬｘ、ＯＬｙから求める。
ｍｖＡを固定し、ｍｖＢを修正する場合は（２０）式のように修正を行う。この時、回転させる方向は右方向であるとする。また、ｙＡ×ＯＬｙ／ｘＡの結果は切り上げとする。
【数２０】
2015076766.tif 000022
【００３８】
ｍｖＡ、ｍｖＢともに修正を行う場合は、優先ベクトルを予め定めてからベクトルの修正を行う。回転させる方向に対応するＯＬｘまたはＯＬｙの値が偶数の場合はその値の１／２だけ加算し修正を行うが、ＯＬｘまたはＯＬｙの値が奇数の場合は優先ベクトルの方の移動の大きさを大きくする。回転させるためのベクトルの方向は、ｍｖＡ、ｍｖＢ、中心点から求める。ｍｖＡが優先ベクトルで、ｍｖＡは左方向への回転で、ｍｖＢは右方向への回転の時は、（２１）式、（２２）式のように修正を行う。この時、ｙＡ×ＯＬｙ／２ｘＡ、ｙＢ×ＯＬｙ／２ｘＢおよびＯＬｙ／２の結果は切り上げとする。
【数２１】
2015076766.tif 000023
【数２２】
2015076766.tif 000024
【００３９】
次に、図１２を参照して、図２に示す予測ベクトル生成部１００の処理動作を説明する。図１２は、図２に示す予測ベクトル生成部１００の処理動作を示すフローチャートである。まず、中心点検出部１０１は、すべての動きベクトル候補（動きベクトル候補１〜Ｎ）を入力し、このすべての動きベクトル候補の中から中心点の検出を行う（ステップＳ２０１）。
【００４０】
次に、重なり検出部１０２は、すべての動きベクトル候補（動きベクトル候補１〜Ｎ）と探索範囲を入力し、動きベクトル候補の中から重なりを検出する（ステップＳ２０２）。
【００４１】
次に、重なり検出部１０２は、重なり検出の出力結果から重なりの有無を判定する（ステップＳ２０３）。この判定の結果、重なりがある場合、候補ベクトル修正部１０３は、候補ベクトルの修正を行い、各候補ベクトルの重なりが無いようにベクトル情報の修正を行う（ステップＳ２０４）。
【００４２】
一方、判定の結果、重なりが無い場合、または、候補ベクトルの修正が済んだ後、重なり検出部１０２は、すべての動きベクトル候補について重なりが無いように処理が済んでいるかの判定を行う（ステップＳ２０５）。この判定の結果、全候補について処理済みでなければ、ステップＳ２０２へ戻り処理を繰り返す。
【００４３】
一方、すべての候補ベクトルについて処理が完了していた場合、候補ベクトル修正部１０３は、修正済みのすべての候補ベクトルを出力し、処理を完了する（ステップＳ２０６）。
【００４４】
以上説明したように、探索範囲を決定するための動き予測ベクトルが複数ある場合に、探索範囲に重なりが生じないように動き予測ベクトルを修正することで、符号化ブロックに対する探索範囲を広く設定することを可能とし、かつ、ハード実装に適したアルゴリズムを提供することができる。
【００４５】
前述した実施形態における予測ベクトル生成部１００をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００４６】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００４７】
複数の動きベクトル候補があるときに、適応的に探索領域を修正して探索を行うことにより、符号化ブロックに対する実際の探索領域を広くすることが不可欠な用途に適用できる。
【符号の説明】
【００４８】
１・・・映像符号化装置、１００・・・予測ベクトル生成部、１０１・・・中心点検出部、１０２・・・重なり検出部、１０３・・・候補ベクトル修正部
【図１】
2015076766.tif 000025
【図２】
2015076766.tif 000026
【図３】
2015076766.tif 000027
【図４】
2015076766.tif 000028
【図５】
2015076766.tif 000029
【図６】
2015076766.tif 000030
【図７】
2015076766.tif 000031
【図８】
2015076766.tif 000032
【図９】
2015076766.tif 000033
【図１０】
2015076766.tif 000034
【図１１】
2015076766.tif 000035
【図１２】
2015076766.tif 000036