(57)【要約】【課題】動きベクトルの検出精度を向上することができる動きベクトル検出装置を提供する。【解決手段】映像符号化を行う際に動きベクトルを検出する動きベクトル検出装置であって、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する判定手段と、判定手段により投影された動きベクトルがあると判定された場合に、投影されている全ての動きベクトルから予測動きベクトルを算出して動き探索の開始点に設定し、動きベクトルがないと判定された場合に、ゼロベクトルを動き探索の開始点とする開始点設定手段と、開始点を基に動き探索を行う動き探索手段と、動き探索結果に基づき、予測ブロックの画面間予測モードの評価値を算出する評価値算出手段と、評価値を比較して、最小の評価値となる予測ブロックの動きベクトルを次の動き探索対象フレームへ投影する動きベクトル投影手段とを備える。【選択図】図１
2015226085.tif 000002
【特許請求の範囲】
【請求項１】
映像符号化を行う際に動きベクトルを検出する動きベクトル検出装置であって、
処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する判定手段と、
前記判定手段により投影された動きベクトルがあると判定された場合に、投影されている全ての動きベクトルから予測動きベクトルを算出して動き探索の開始点に設定し、動きベクトルがないと判定された場合に、ゼロベクトルを動き探索の開始点とする開始点設定手段と、
前記開始点を基に動き探索を行う動き探索手段と、
前記動き探索結果に基づき、前記予測ブロックの画面間予測モードの評価値を算出する評価値算出手段と、
前記評価値を比較して、最小の評価値となる前記予測ブロックの前記動きベクトルを次の動き探索対象フレームへ投影する動きベクトル投影手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項２】
前記評価値算出手段は、さらに前記予測ブロックの画面内予測モードの評価値を算出し、
前記動きベクトル投影手段は、前記画面間予測モードの評価値が前記画面内予測モードの評価値以下の場合にだけ前記動きベクトルを次の動き探索対象フレームに投影することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記動き探索手段は、複数の動き探索対象フレームの中に現対象フレームよりも順序が後ろのフレームを参照するか否かを判定し、前記動き探索対象フレームの順序が後のフレームを参照する場合、原画像を用いた動き探索を実施し、求めた動きベクトルを連結して投影することを特徴とする請求項１または２に記載の動きベクトル検出装置。
【請求項４】
前記動き探索手段は、前記原画像を用いた動き探索を実施した参照フレームが符号化された後に、前記原画像を用いて算出した動きベクトルを開始点として前記原画像の際に用いた探索範囲よりも小さい探索範囲で再度動き探索をやり直すことを特徴とする請求項３に記載の動きベクトル検出装置。
【請求項５】
前記判定手段により予測対象ブロック内に前のフレームから動きベクトルが投影されていないと判定され、周囲に動きベクトルが投影されている場合に、予測対象ブロックに最も距離が小さい動きベクトルにより補間する補間手段をさらに備えることを特徴とする請求項１から４のいずれか１項に記載の動きベクトル検出装置。
【請求項６】
映像符号化を行う際に動きベクトルを検出する動きベクトル検出方法であって、
処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する判定ステップと、
前記判定ステップにより投影された動きベクトルがあると判定された場合に、投影されている全ての動きベクトルから予測動きベクトルを算出して動き探索の開始点に設定し、動きベクトルがないと判定された場合に、ゼロベクトルを動き探索の開始点とする開始点設定ステップと、
前記開始点を基に動き探索を行う動き探索ステップと、
前記動き探索結果に基づき、前記予測ブロックの画面間予測モードの評価値を算出する評価値算出ステップと、
前記評価値を比較して、最小の評価値となる前記予測ブロックの前記動きベクトルを次の動き探索対象フレームへ投影する動きベクトル投影ステップと
を有することを特徴とする動きベクトル検出方法。
【請求項７】
コンピュータを、請求項１から５のいずれか１項に記載の動きベクトル検出装置として機能させるための動きベクトル検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化を行う際に動きベクトルを検出する動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラムに関する。
【背景技術】
【０００２】
動画像符号化の画面間予測では、符号化対象フレームの時間的に過去或いは未来方向の符号化済みフレームを参照フレームとして、物体がどれだけ動いたかを表す動きベクトルを検出し、動きベクトルが指す領域との差分を取ることで圧縮が行われる。Ｈ．２６４／ＡＶＣやＨ．２６５／ＨＥＶＣでは、画面間予測のピクチャタイプとしてＰピクチャとＢピクチャが規定されており、Ｐピクチャは１枚の参照フレームのみを利用し、Ｂピクチャは２枚の参照フレームを利用する。
【０００３】
動きベクトルの検出はブロック単位で行われ、参照フレームの中から対象ブロックに最も類似したブロックが探索される。この時、全探索をすると演算量が膨大になるため、一般的には探索範囲が設定される。更に演算量を削減するために以下のような方法が提案されている。
【０００４】
Ｈ．２６４／ＡＶＣ規格では時間ダイレクトモードと呼ばれる動きベクトルの予測方法があり、既に符号化されているフレームに対して同じ空間位置の動きベクトルをスケーリングして予測対象フレームの予測動きベクトルとする手法である。この予測動きベクトルを動き探索の開始点に利用することで、対象フレームと参照フレームの時間距離が離れている場合でも探索範囲を広げることなく低演算量な探索を実現できる（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＭＰＥＧ−４  ＡＶＣ（ＩＳＯ／ＩＥＣ  １４４９６−１０）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、この方法のように同じ空間位置の動きベクトルをスケーリングして予測動きベクトルを算出すると、物体の連続性が正確に考慮されない。図１３は、同じ空間位置を利用する場合の問題点を示す説明図である。図１３に示すように異なる物体が隣接している場合に予測動きベクトルが別の物体を参照してしまい、誤った予測動きベクトルによって探索精度が低下してしまう場合がある。
【０００７】
図１４は、オクルージョンが発生した場合の問題点を示す説明図である。図１４に示すように符号化済みフレームにおいてオクルージョン領域が発生している場合には算出された動きベクトルは対象フレームの同じ空間位置の物体において相関がない可能性が高い。そのため、そのまま対象フレームの予測動きベクトルに利用してしまうと逆に動きベクトルの探索精度が低下してしまう場合がある。これらを解決するために動き探索時の誤差（絶対誤差和など）がある閾値以上になった場合には利用しないようにすることが考えられる。しかし、画像の種類やシーンによって閾値が大きく変化するため、適切な閾値を設定しないとオクルージョン領域を検出できなかったり、オクル―ジョンが発生していない領域も除外したりしてしまうという問題がある。
【０００８】
本発明は、このような事情に鑑みてなされたもので、演算量が大きくなることを抑えつつ動きベクトルの検出精度を向上することができる動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、映像符号化を行う際に動きベクトルを検出する動きベクトル検出装置であって、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する判定手段と、前記判定手段により投影された動きベクトルがあると判定された場合に、投影されている全ての動きベクトルから予測動きベクトルを算出して動き探索の開始点に設定し、動きベクトルがないと判定された場合に、ゼロベクトルを動き探索の開始点とする開始点設定手段と、前記開始点を基に動き探索を行う動き探索手段と、前記動き探索結果に基づき、前記予測ブロックの画面間予測モードの評価値を算出する評価値算出手段と、前記評価値を比較して、最小の評価値となる前記予測ブロックの前記動きベクトルを次の動き探索対象フレームへ投影する動きベクトル投影手段とを備えることを特徴とする。
【００１０】
本発明は、前記評価値算出手段は、さらに前記予測ブロックの画面内予測モードの評価値を算出し、前記動きベクトル投影手段は、前記画面間予測モードの評価値が前記画面内予測モードの評価値以下の場合にだけ前記動きベクトルを次の動き探索対象フレームに投影することを特徴とする。
【００１１】
本発明は、前記動き探索手段は、複数の動き探索対象フレームの中に現対象フレームよりも順序が後ろのフレームを参照するか否かを判定し、前記動き探索対象フレームの順序が後のフレームを参照する場合、原画像を用いた動き探索を実施し、求めた動きベクトルを連結して投影することを特徴とする。
【００１２】
本発明は、前記動き探索手段は、前記原画像を用いた動き探索を実施した参照フレームが符号化された後に、前記原画像を用いて算出した動きベクトルを開始点として前記原画像の際に用いた探索範囲よりも小さい探索範囲で再度動き探索をやり直すことを特徴とする。
【００１３】
本発明は、前記判定手段により予測対象ブロック内に前のフレームから動きベクトルが投影されていないと判定され、周囲に動きベクトルが投影されている場合に、予測対象ブロックに最も距離が小さい動きベクトルにより補間する補間手段をさらに備えることを特徴とする。
【００１４】
本発明は、映像符号化を行う際に動きベクトルを検出する動きベクトル検出方法であって、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する判定ステップと、前記判定ステップにより投影された動きベクトルがあると判定された場合に、投影されている全ての動きベクトルから予測動きベクトルを算出して動き探索の開始点に設定し、動きベクトルがないと判定された場合に、ゼロベクトルを動き探索の開始点とする開始点設定ステップと、前記開始点を基に動き探索を行う動き探索ステップと、前記動き探索結果に基づき、前記予測ブロックの画面間予測モードの評価値を算出する評価値算出ステップと、前記評価値を比較して、最小の評価値となる前記予測ブロックの前記動きベクトルを次の動き探索対象フレームへ投影する動きベクトル投影ステップとを有することを特徴とする。
【００１５】
本発明は、コンピュータを、前記動きベクトル検出装置として機能させるための動きベクトル検出プログラムである。
【発明の効果】
【００１６】
本発明によれば、演算量が大きくなることを抑えつつ動きベクトルの検出精度を向上することができるという効果が得られる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態における映像符号化装置の構成を示すブロック図である。
【図２】図１に示す予測動きベクトル生成部１２の構成を示すブロック図である。
【図３】図２に示す予測動きベクトル生成部１２の動作を示すフローチャートである。
【図４】動き探索の処理順序を示す図である。
【図５】ステップＳ１０における次の動き探索対象フレームで利用するための予測動きベクトルの生成方法を示す図である。
【図６】第２実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。
【図７】図６に示す予測動きベクトル生成部１２の動作を示すフローチャートである。
【図８】第３実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。
【図９】図８に示す予測動きベクトル生成部１２の動作を示すフローチャートである。
【図１０】予測動きベクトルの生成の様子を表す図である。
【図１１】第５実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。
【図１２】図１１に示す予測動きベクトル生成部１２の動作を示すフローチャートである。
【図１３】同じ空間位置を利用する場合の問題点を示す説明図である。
【図１４】オクルージョンが発生した場合の問題点を示す説明図である。
【発明を実施するための形態】
【００１８】
＜第１実施形態＞
以下、図面を参照して、本発明の第１実施形態による動きベクトル検出装置を説明する。以下の説明で、対象フレームとは、次に動き探索の対象となるフレーム（動きベクトルを投影するフレーム）、動き探索対象フレームとは、現在動き探索を実施しているフレームのことを示す。また、以下の説明においては、ＨＥＶＣを例に説明するが、本発明はＨＥＶＣに限定されるものではない。また、参照構造の最上位レイヤ間隔（ＧＯＰ）が４の場合について説明するが、これに限定されるものではない。
【００１９】
図１は同実施形態における映像符号化装置の構成を示すブロック図である。本発明による動きベクトル検出装置は、図１に示すような映像符号化装置内において用いられる。映像符号化装置１００は、減算部１と、直交変換／量子化部２と、可変長符号化部３と、モード判定部４と、逆量子化／逆直交変換部５と、加算部６と、イントラ／インター切替スイッチ７と、イントラ予測部８と、インター予測部９と、ループフィルタ部１０と、復号ピクチャメモリ１１と、予測動きベクトル生成部１２と、動きベクトルメモリ１３とを備える。
【００２０】
減算部１は、入力映像を構成するピクチャである入力ピクチャの符号化対象ブロックの各予測サイズに対して、イントラ予測部８またはインター予測部９から出力される予測信号との差分を計算し、直交変換／量子化部２に対して出力する。直交変換／量子化部２は差分に対して直交変換と量子化を施して出力する。可変長符号化部３は、直交変換／量子化部２の出力を符号化データに変換する。
【００２１】
イントラ／インター切替スイッチ７は、各符号化対象ブロックの予測モードに応じて切り替えを行う。逆量子化／逆直交変換部５は、直交変換／量子化部２から出力されたブロック信号から誤差を含む差分信号に戻す。加算部６は、イントラ予測部８またはインター予測部９から出力される予測信号と差分信号とを加算することで復元信号へ変換する。イントラ予測部８は、この復元信号を入力し、後のブロックのイントラ予測に利用する。
【００２２】
また、加算部６の出力は、１ピクチャが終わった後にループフィルタ部１０に対して出力する。ループフィルタ部１０は、ループフィルタを施す。この出力は復号ピクチャメモリ１１に記憶される。復号ピクチャメモリ１１に記憶された参照フレームは、インター予測部９に入力され、後のピクチャのインター予測に利用する。
【００２３】
インター予測部９は各予測ブロックサイズに対して入力映像と復号ピクチャメモリ１１からの参照フレームを入力し、動き探索及び動き補償を実施するか、或いは既に動きベクトルを算出している場合は動きベクトルメモリ１３から動きベクトルを呼び出して動き補償を実施し、イントラ／インター切替スイッチ７へ予測信号を出力する。動きベクトルメモリ１３はインター予測部９からの各予測ブロックサイズの動きベクトルを記憶し、予測動きベクトル生成部１２へ出力する。
【００２４】
予測動きベクトル生成部１２は予測動きベクトルを生成し、インター予測部９に対して出力する。モード判定部４は入力映像と復元信号及び可変長符号化部３からの符号量を入力として評価値を算出し、最も評価値の小さい予測ブロックサイズを予測動きベクトル生成部１２に対して出力する。
【００２５】
次に、図２を参照して、図１に示す予測動きベクトル生成部１２の構成を説明する。図２は、図１に示す予測動きベクトル生成部１２の構成を示すブロック図である。予測動きベクトル生成部１２は、ブロックサイズ情報と前フレームの動きベクトルとを入力し、動きベクトルを投影する動きベクトル投影部１２１と、動きベクトル投影部１２１の出力から予測動きベクトルを算出する予測動きベクトル算出部１２２とを備えている。
【００２６】
次に、図３を参照して、図２に示す予測動きベクトル生成部１２の動作を説明する。図３は、図２に示す予測動きベクトル生成部１２の動作を示すフローチャートである。まず、動き探索はＧＯＰ単位で以下の様に同じ参照フレームを参照する複数フレームを対象として、参照フレームに近い順に実施する（ステップＳ１）。図４は、動き探索の処理順序を示す図である。この例では前方向の動き探索を同じ参照フレームＦ１を参照しているＦ２からＦ５までを順に動き探索対象とする。Ｆ１を参照しないピクチャがある場合はそのピクチャは動き探索順序から外して実施する。
【００２７】
次に、動き探索対象フレームの符号化ブロックをラスタスキャン順に処理対象とし（ステップＳ２）、更に符号化ブロック内の予測ブロックを処理対象とする（ステップＳ３）。予測動きベクトル算出部１２２は、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定し（ステップＳ４）、投影された動きベクトルがある場合には投影されている全ての動きベクトルから予測動きベクトルを算出し、動き探索の開始点（予測動きベクトル）に設定する（ステップＳ５）。予測動きベクトルの算出には平均や動き探索時の絶対誤差和による重みづけ平均、メディアン等を用いる。
【００２８】
一方、動きベクトルが１つも投影されていない場合、予測動きベクトル算出部１２２は、ゼロベクトルを開始点とする（ステップＳ６）。そして、予測動きベクトル算出部１２２は、開始点を基に動き探索を実施し、算出した動きベクトルは動きベクトルメモリ１３に記憶する（ステップＳ７）。次に、予測動きベクトル算出部１２２は、対象予測ブロックサイズの画面間予測モードの評価値を算出する（ステップＳ８）。評価値には例えば以下の式で求められるＲＤコストを用いる。
ＲＤコスト＝Ｄ＋λＲ
ここで、Ｄは対象予測ブロックと参照ブロックの誤差、Ｒは符号量、λはラグランジアン定数である。全ての予測ブロックでの評価値が算出されたら評価値を比較する（ステップＳ９）。そして、動きベクトル投影部１２１は、最小の評価値となる予測ブロックの動きベクトルを次の動き探索対象フレームへ投影する（ステップＳ１０）。
【００２９】
図５は、ステップＳ１０における次の動き探索対象フレームで利用するための予測動きベクトルの生成方法を示す図である。この例ではＦ２の動き探索を実施した後、Ｆ３の動き探索で利用するための予測動きベクトルを生成する様子を表している。予測動きベクトルは時間距離に応じてスケーリングして算出する。例えばＦ３の予測動きベクトルｍｖｐ３＝（ｍｖｐ３ｘ，ｍｖｐ３ｙ）はＦ２で算出した動きベクトルｍｖ２＝（ｍｖ２ｘ，ｍｖ２ｙ）とピクチャの表示順番号（Ｔ）を用いて以下の式で算出する。
ｍｖｐ３＝（Ｔ３−Ｔ１）／（Ｔ２−Ｔ１）×ｍｖ２
【００３０】
この予測動きベクトルを次の動き探索対象フレームに延長するようにして投影する。例えばＦ２で求めた動きベクトルをＦ３に投影する場合はＦ２で算出した動きベクトルの左上の座標位置を（ｘ２，ｙ２）とすると、投影するＦ３の位置（ｘ３，ｙ３）を基準に予測ブロックサイズ分の領域に画素単位で投影する。
（ｘ３，ｙ３）＝（ｘ２＋ｍｖ３ｘ０−ｍｖ２ｘ，ｙ２＋ｍｖ３ｙ０−ｍｖ２ｙ）
【００３１】
これらを動き探索対象フレームの全符号化ブロックが終了するまで実施する。これらの手順をＦ５の動き探索まで実施する。Ｆ５までの探索が終了したら、Ｆ５の符号化を行う。その後、後ろ方向の動き探索を行うが図４に示すようにＦ５を参照フレームとしてＦ４〜Ｆ１の順序で前方向の時と同様の手順で動き探索を実施する。符号化する際は求めていない参照フレームに対してのみ通常の動き探索を実施し、既に求めている参照フレームに対しては動きベクトルメモリに格納されている動きベクトルを利用して符号化を行う。
【００３２】
また、算出した画面間予測モードの評価値も保存しておき、符号化の際に再利用する。さらに、求めていない参照フレームに対する動き探索を先程決定した最適な予測ブロックサイズのみで実施してもよく、或いは最適予測ブロックサイズ以外の予測ブロックサイズを除外し、演算量を削減してもよい。
【００３３】
このように、同じ参照フレームを参照する複数フレームの動き探索を参照フレームから時間的に近い順に実施し、算出した動きベクトルを延長するように次の動き探索対象フレームに投影し、その動きベクトルが投影された領域における動き探索の開始点として動き探索を行う。この時、画面間予測モードの評価値を算出し、評価値が最小となる予測ブロックサイズのみを投影の対象とする。
【００３４】
この構成によれば、同じ参照フレームを参照する複数フレームの動き探索を参照フレームに近い順に実施し、動き探索により得られた動きベクトルを次の動き探索の対象となるフレームに投影することで、物体の動きを考慮した予測動きベクトルを生成するため、探索精度が向上する。この時、複数の画面間予測モードの評価値を算出し、評価値を比較することで、画面間予測において物体の動きを最も良く反映する最適な予測ブロックサイズを決定することができるため、その最適な予測ブロックサイズの動きベクトルのみを投影対象とすることで、予測動きベクトル精度が向上する。
【００３５】
＜第２実施形態＞
次に、本発明の第２実施形態による動きベクトル検出装置を説明する。図６は、第２実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。この図において、図２に示す構成要素と同一の部分には同一の符号を付し、その説明を省略する。この図に示す予測動きベクトル生成部１２が図２に示す予測動きベクトル生成部１２と異なる点は、イントラ／インター判定部１２３が新たに設けられている点である。
【００３６】
次に、図７を参照して、図６に示す予測動きベクトル生成部１２の動作を説明する。図７は、図６に示す予測動きベクトル生成部１２の動作を示すフローチャートである。図７において、図３に示す処理動作と同一の部分には同一の符号を付し、その説明を簡単に行う。この図に示す処理動作が図３に示す処理動作と異なる点は、ステップＳ１１、Ｓ１２が新たに追加されている点である。
【００３７】
まず、動き探索はＧＯＰ単位で以下の様に同じ参照フレームを参照する複数フレームを対象として、参照フレームに近い順に実施する（ステップＳ１）。続いて、動き探索対象フレームの符号化ブロックをラスタスキャン順に処理対象とし（ステップＳ２）、更に符号化ブロック内の予測ブロックを処理対象とする（ステップＳ３）。予測動きベクトル算出部１２２は、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定し（ステップＳ４）、投影された動きベクトルがある場合には投影されている全ての動きベクトルから予測動きベクトルを算出し、動き探索の開始点（予測動きベクトル）に設定する（ステップＳ５）。予測動きベクトルの算出には平均や動き探索時の絶対誤差和による重みづけ平均、メディアン等を用いる。
【００３８】
一方、動きベクトルが１つも投影されていない場合、予測動きベクトル算出部１２２は、ゼロベクトルを開始点とする（ステップＳ６）。そして、予測動きベクトル算出部１２２は、開始点を基に動き探索を実施し、算出した動きベクトルは動きベクトルメモリ１３に記憶する（ステップＳ７）。次に、予測動きベクトル算出部１２２は、対象予測ブロックサイズの画面間予測モードの評価値を算出する（ステップＳ８）。評価値には例えば以下の式で求められるＲＤコストを用いる。
ＲＤコスト＝Ｄ＋λＲ
ここで、Ｄは対象予測ブロックと参照ブロックの誤差、Ｒは符号量、λはラグランジアン定数である。
【００３９】
次に、予測動きベクトル算出部１２２は、対象予測ブロックサイズの画面間予測モードの評価値だけでなく画面内予測モードの評価値も算出する（ステップＳ１１）。評価値の算出には原画像或いは画面内予測で予測した場合の復元画像を用いる。
【００４０】
次に、予測動きベクトル算出部１２２は、全ての予測ブロックでの評価値が算出されたら評価値を比較する（ステップＳ９）。そして、イントラ／インター判定部１２３は、画面間予測モードと画面内予測モードの評価値を比較し（ステップＳ１２）、画面間予測モードの評価値が画面内予測モードの評価値以下の場合にだけ動きベクトルを次の動き探索対象フレームに投影する（ステップＳ１０）。ここで算出した画面内予測モードの評価値も保存しておき、後で符号化する際に再利用する。また、画面間予測モードの評価値が画面内予測モードの評価値よりも小さいブロックについてはＳｋｉｐ／Ｍｅｒｇｅを含む双方向予測モードの計算をしないようにして演算量を削減してもよい。
【００４１】
このように、動き探索時に画面内予測モードの評価値を算出し、画面間予測モードと比較した結果、画面内予測モードの評価値が小さい場合にはその領域の動きベクトルを投影の対象から除外する。
【００４２】
この構成によれば、画面内予測の評価値を算出し、画面間予測と比較することで、画面内予測が選ばれるブロック領域を相対的に決定することができるため、閾値の設定問題を無くし、オクルージョン領域等の推定誤差要因となる画面内領域の動きベクトルを除外し、更なる予測動きベクトル精度の向上を実現する。
【００４３】
＜第３実施形態＞
次に、本発明の第３実施形態による動きベクトル検出装置を説明する。図８は、第３実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。この図において、図６に示す構成要素と同一の部分には同一の符号を付し、その説明を省略する。この図に示す予測動きベクトル生成部１２が図６に示す予測動きベクトル生成部１２と異なる点は、動きベクトル連結部１２４が新たに設けられている点である。図８は、図６に対して、動きベクトル連結部１２４を追加した例を示す図であるが、図２に対して動きベクトル連結部１２４を追加した構成であってもよい。
【００４４】
次に、図９を参照して、図８に示す予測動きベクトル生成部１２の動作を説明する。図９は、図８に示す予測動きベクトル生成部１２の動作を示すフローチャートである。図９において、図７に示す処理動作と同一の部分には同一の符号を付し、その説明を簡単に行う。この図に示す処理動作が図７に示す処理動作と異なる点は、ステップＳ１３、Ｓ１４が新たに追加されている点である。図９は、図７に対して、ステップＳ１３、Ｓ１４を追加した例を示す図であるが、図３に対してステップＳ１３、Ｓ１４を追加した処理動作であってもよい。
【００４５】
まず、動き探索はＧＯＰ単位で以下の様に同じ参照フレームを参照する複数フレームを対象として、参照フレームに近い順に実施する（ステップＳ１）。続いて、動き探索対象フレームの符号化ブロックをラスタスキャン順に処理対象とし（ステップＳ２）、更に符号化ブロック内の予測ブロックを処理対象とする（ステップＳ３）。予測動きベクトル算出部１２２は、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定し（ステップＳ４）、投影された動きベクトルがある場合には投影されている全ての動きベクトルから予測動きベクトルを算出し、動き探索の開始点（予測動きベクトル）に設定する（ステップＳ５）。予測動きベクトルの算出には平均や動き探索時の絶対誤差和による重みづけ平均、メディアン等を用いる。
【００４６】
一方、動きベクトルが１つも投影されていない場合、予測動きベクトル算出部１２２は、ゼロベクトルを開始点とする（ステップＳ６）。そして、予測動きベクトル算出部１２２は、開始点を基に動き探索を実施し、算出した動きベクトルは動きベクトルメモリ１３に記憶する（ステップＳ７）。
【００４７】
次に、動きベクトル連結部１２４は、複数の動き探索対象フレームの中に現対象フレームよりも順序が後ろのフレームを参照するかを判定する（ステップＳ１３）。この判定の結果、対象フレームの順序が後のフレームを参照する場合、動きベクトル連結部１２４は、原画を用いた動き探索を実施し、動きベクトルメモリ１３へ記憶する（ステップＳ１４）。例えば図４に示す例ではＦ２がＦ３を参照しているので、Ｆ２の動き探索時にＦ３に対して原画を用いて動き探索を実施する。この時、投影する予測動きベクトルｍｖｐ３はＦ２のＦ１に対する動きベクトルをｍｖ２＿Ｆ１＝（ｍｖ２ｘ＿Ｆ１  ｍｖ２ｙ＿Ｆ１）、Ｆ３に対する動きベクトルをｍｖ２＿Ｆ３＝（ｍｖ２ｘ＿Ｆ３，  ｍｖ２ｙ＿Ｆ３）とすると以下の式によって求める。
ｍｖｐ３＝ｍｖ２＿Ｆ１−ｍｖ２＿Ｆ３
【００４８】
また、投影する位置は、
（ｘ３，ｙ３）＝（ｘ２−ｍｖ２ｘ＿Ｆ３，ｙ２−ｍｖ２ｙ＿Ｆ３）
となる。図１０は、予測動きベクトルの生成の様子を表す図である。この時、画面間予測モードの評価値を算出する際は前方向、後ろ方向、双方向のいずれかで算出する。また、後ろ方向の動き探索は図３の動き探索順序（後ろ方向）には従わず、前方向の動き探索順序と同じ順序で実施し、符号化時には動きベクトルメモリから呼び出して符号化を行う。
【００４９】
次に、予測動きベクトル算出部１２２は、各予測ブロックの評価値を算出する（ステップＳ８）。評価値には例えば以下の式で求められるＲＤコストを用いる。
ＲＤコスト＝Ｄ＋λＲ
ここで、Ｄは対象予測ブロックと参照ブロックの誤差、Ｒは符号量、λはラグランジアン定数である。
【００５０】
次に、予測動きベクトル算出部１２２は、各予測ブロックサイズで画面間予測モードの評価値だけでなく画面内予測モードの評価値も算出する（ステップＳ１１）。評価値の算出には原画像或いは画面内予測で予測した場合の復元画像を用いる。
【００５１】
次に、予測動きベクトル算出部１２２は、全ての予測ブロックでの評価値が算出されたら評価値を比較する（ステップＳ９）。そして、イントラ／インター判定部１２３は、画面間予測モードと画面内予測モードの評価値を比較し（ステップＳ１２）、画面間予測モードの評価値が画面内予測モード以下の場合にだけ動きベクトルを次の動き探索対象フレームに投影する（ステップＳ１０）。ここで算出した画面内予測モードの評価値も保存しておき、後で符号化する際に再利用する。また、画面間予測モードの評価値が画面内予測モードの評価値よりも小さいブロックについてはＳｋｉｐ／Ｍｅｒｇｅを含む双方向予測モードの計算をしないようにして演算量を削減してもよい。
【００５２】
このように、同じ参照フレームを参照する複数フレーム（現在の動き探索対象フレームよりも順序が後）の中に動き探索対象フレームの参照フレームがある場合には、原画を用いて動き探索を実施し、算出した第１の動きベクトルと原画を用いて算出した第２の方向の動きベクトルを連結したものを投影する。
【００５３】
この構成によれば、同じ参照フレームを参照する複数フレームの中で動き探索順序が後ろのフレームを参照フレームとする場合には、（復元画像でなく）原画を用いて動き探索を実施し、動きベクトルを連結して投影する。こうすることで、物体の動きが連続していない場合にも精度の高い予測動きベクトルを生成することができる。
【００５４】
＜第４実施形態＞
次に、本発明の第４実施形態による動きベクトル検出装置を説明する。第４実施形態による動きベクトル検出装置は、第３の実施形態とは以下の点が異なる。第３実施形態では、後ろ方向の動きベクトルは原画像を用いて探索を行った際の動きベクトルを動きベクトルメモリから呼び出して符号化に利用したが、第４実施形態では参照フレームが符号化され、復元された後に原画像を用いて探索を行った動きベクトルを開始点として再度原画像を用いた際の探索範囲よりも小さい探索範囲でやり直す。
【００５５】
このように、原画を用いて動き探索を実施した参照フレームが符号化された後に、原画を用いて算出した第２の動きベクトルを開始点として原画の際に用いた探索範囲よりも小さい探索範囲で再度探索をやり直す。
【００５６】
この構成によれば、原画を用いて動き探索を実施した参照フレームが符号化された後に復元画像を用いて動き探索をやり直す。この時、原画を用いた時の動きベクトルを探索開始点として、原画の際に用いた探索範囲よりも小さい探索範囲で実施する。第３実施形態では原画を用いて探索をしているのでそのまま動きベクトルを符号化に利用すると、本来の復元画像を用いて探索する場合に比して符号化効率が低下する。それを回避するために再度動き探索をやり直す必要があるが、単純にやり直すだけだとその分の演算量が増えてしまう。そこで、原画で算出したベクトルを開始点として原画の際に用いた探索範囲よりも小さい探索範囲で動き探索をやり直すことで、原画像を用いた場合の計算結果を無駄にせず、少ない演算量で動きベクトルを求め直すことができる。
【００５７】
＜第５実施形態＞
次に、本発明の第５実施形態による動きベクトル検出装置を説明する。図１１は、第５実施形態による予測動きベクトル生成部１２の構成を示すブロック図である。この図において、図８に示す構成要素と同一の部分には同一の符号を付し、その説明を省略する。この図に示す予測動きベクトル生成部１２が図８に示す予測動きベクトル生成部１２と異なる点は、動きベクトル補間部１２５が新たに設けられている点である。図１１は、図８に対して、動きベクトル補間部１２５を追加した例を示す図であるが、図２、図６に対して動きベクトル補間部１２５を追加した構成であってもよい。
【００５８】
次に、図１２を参照して、図１１に示す予測動きベクトル生成部１２の動作を説明する。図１２は、図１１に示す予測動きベクトル生成部１２の動作を示すフローチャートである。図１２において、図９に示す処理動作と同一の部分には同一の符号を付し、その説明を簡単に行う。この図に示す処理動作が図９に示す処理動作と異なる点は、ステップＳ１５、Ｓ１６が新たに追加されている点である。図１２は、図１１に対して、ステップＳ１５、Ｓ１６を追加した例を示す図であるが、図３、図７に対してステップＳ１５、Ｓ１６を追加した処理動作であってもよい。
【００５９】
まず、動き探索はＧＯＰ単位で以下の様に同じ参照フレームを参照する複数フレームを対象として、参照フレームに近い順に実施する（ステップＳ１）。続いて、動き探索対象フレームの符号化ブロックをラスタスキャン順に処理対象とし（ステップＳ２）、更に符号化ブロック内の予測ブロックを処理対象とする（ステップＳ３）。予測動きベクトル算出部１２２は、処理対象となった予測ブロック内に前のフレームから投影された動きベクトルがあるか否かを判定する（ステップＳ４）。
【００６０】
動き探索時に予測対象ブロック内に前のフレームから動きベクトルが投影されていない場合で、周囲に動きベクトルが投影されている場合（ステップＳ１５）に、動きベクトル補間部１２５は、予測対象ブロックに最も距離が小さい動きベクトルで補間する（ステップＳ１６）。最も距離が小さい動きベクトルが複数ある場合にはそれらの平均や重み付き平均、メディアン等を用いて補間する。周囲に１つも投影されていない場合はゼロベクトルを設定する。
【００６１】
一方、投影された動きベクトルがある場合には投影されている全ての動きベクトルから予測動きベクトルを算出し、動き探索の開始点（予測動きベクトル）に設定する（ステップＳ５）。予測動きベクトルの算出には平均や動き探索時の絶対誤差和による重みづけ平均、メディアン等を用いる。
【００６２】
次に、動きベクトルが１つも投影されていない場合、予測動きベクトル算出部１２２は、ゼロベクトルを開始点とする（ステップＳ６）。そして、予測動きベクトル算出部１２２は、開始点を基に動き探索を実施し、算出した動きベクトルは動きベクトルメモリ１３に記憶する（ステップＳ７）。
【００６３】
次に、動きベクトル連結部１２４は、複数の動き探索対象フレームの中に現対象フレームよりも順序が後ろのフレームを参照するかを判定する（ステップＳ１３）この判定の結果、対象フレームの順序が後のフレームを参照する場合、動きベクトル連結部１２４は、原画を用いた動き探索を実施し、動きベクトルメモリ１３へ記憶する（ステップＳ１４）。例えば図４に示す例ではＦ２がＦ３を参照しているので、Ｆ２の動き探索時にＦ３に対して原画を用いて動き探索を実施する。この時、投影する予測動きベクトルｍｖｐ３はＦ２のＦ１に対する動きベクトルをｍｖ２＿Ｆ１＝（ｍｖ２ｘ＿Ｆ１  ｍｖ２ｙ＿Ｆ１）、Ｆ３に対する動きベクトルをｍｖ２＿Ｆ３＝（ｍｖ２ｘ＿Ｆ３，  ｍｖ２ｙ＿Ｆ３）とすると以下の式によって求める。
ｍｖｐ３＝ｍｖ２＿Ｆ１−ｍｖ２＿Ｆ３
【００６４】
また、投影する位置は、
（ｘ３，ｙ３）＝（ｘ２−ｍｖ２ｘ＿Ｆ３，ｙ２−ｍｖ２ｙ＿Ｆ３）
となる。図１０は、予測動きベクトルの生成の様子を表す図である。この時、画面間予測モードの評価値を算出する際は前方向、後ろ方向、双方向のいずれかで算出する。また、後ろ方向の動き探索は図３の動き探索順序（後ろ方向）には従わず、前方向の動き探索順序と同じ順序で実施し、符号化時には動きベクトルメモリから呼び出して符号化を行う。
【００６５】
次に、予測動きベクトル算出部１２２は、各予測ブロックの評価値を算出する（ステップＳ８）。評価値には例えば以下の式で求められるＲＤコストを用いる。
ＲＤコスト＝Ｄ＋λＲ
ここで、Ｄは対象予測ブロックと参照ブロックの誤差、Ｒは符号量、λはラグランジアン定数である。
【００６６】
次に、予測動きベクトル算出部１２２は、各予測ブロックサイズで画面間予測モードの評価値だけでなく画面内予測モードの評価値も算出する（ステップＳ１１）。評価値の算出には原画像或いは画面内予測で予測した場合の復元画像を用いる。
【００６７】
次に、予測動きベクトル算出部１２２は、全ての予測ブロックでの評価値が算出されたら評価値を比較する（ステップＳ９）。そして、イントラ／インター判定部１２３は、画面間予測モードと画面内予測モードの評価値を比較し（ステップＳ１２）、画面間予測モードの評価値が画面内予測モード以下の場合にだけ動きベクトルを次の動き探索対象フレームに投影する（ステップＳ１０）。ここで算出した画面内予測モードの評価値も保存しておき、後で符号化する際に再利用する。また、画面間予測モードの評価値が画面内予測モードの評価値よりも小さいブロックについてはＳｋｉｐ／Ｍｅｒｇｅを含む双方向予測モードの計算をしないようにして演算量を削減してもよい。
【００６８】
このように、動きベクトルが投影されなかった領域を動きベクトルが投影されている最も距離が短い周囲の領域から補間する。
【００６９】
この構成によれば、投影されなかった領域を投影されている最も近い周囲の領域から補間することで、投影されなかった領域においても予測動きベクトルを用いた探索を行うことができ、精度の高い動きベクトルを少ない演算量で算出可能になる。
【００７０】
前述した実施形態における予測動きベクトル生成部１２をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００７１】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００７２】
動きベクトルの検出精度を向上することが不可欠な用途に適用できる。
【符号の説明】
【００７３】
１・・・減算部、２・・・直交変換／量子化部、３・・・可変長符号化部、４・・・モード判定部、５・・・逆量子化／逆直交変換部、６・・・加算部、７・・・イントラ／インター切替スイッチ、８・・・イントラ予測部、９・・・インター予測部、１０・・・ループフィルタ部、１１・・・復号ピクチャメモリ、１２・・・予測動きベクトル生成部、１３・・・動きベクトルメモリ
【図１】
2015226085.tif 000003
【図２】
2015226085.tif 000004
【図３】
2015226085.tif 000005
【図４】
2015226085.tif 000006
【図５】
2015226085.tif 000007
【図６】
2015226085.tif 000008
【図７】
2015226085.tif 000009
【図８】
2015226085.tif 000010
【図９】
2015226085.tif 000011
【図１０】
2015226085.tif 000012
【図１１】
2015226085.tif 000013
【図１２】
2015226085.tif 000014
【図１３】
2015226085.tif 000015
【図１４】
2015226085.tif 000016