(57)【要約】【課題】階層的動き予測にかかる演算量の増大を抑制すること。【解決手段】画像処理装置１００は、対象フレームＴＦの縮小画像と参照フレームＲＦの縮小画像とに基づいて、対象フレームＴＦを区切って分割された対象ブロックＴＢの第１動きベクトルＶ１を検出する。画像処理装置１００は、第１動きベクトルＶ１に基づいて、参照フレームＲＦ上のブロックＢのエッジ方向に略直交する第１画素成分を特定する。画像処理装置１００は、第１画素成分に対応する対象ブロックＴＢ上の画素列を含む当該画素列に平行な探索範囲を設定する。画像処理装置１００は、第１画素成分に対応する探索範囲内の第２画素成分ごとに、第１画素成分の画素値と第２画素成分の画素値との差分を表す評価値を算出する。画像処理装置１００は、第２画素成分ごとの評価値に基づいて、第１動きベクトルＶ１を補正する。【選択図】図１
2015012548.tif 000002
【特許請求の範囲】
【請求項１】
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出する検出部と、
前記検出部によって検出された前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定する設定部と、
前記設定部によって設定された前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出する算出部と、
前記算出部によって算出された前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する補正部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記補正部によって補正された補正後の第１動きベクトルと前記第２画素成分の方向とに基づいて、前記参照フレーム上の第２探索範囲を設定する第２の設定部と、
前記第２の設定部によって設定された前記第２探索範囲において、前記対象ブロックに対応する前記第２探索範囲内の参照ブロックごとに、前記対象ブロックの画素値と前記参照ブロックの画素値との差分を表す評価値を算出する第２の算出部と、
前記第２の算出部によって算出された前記参照ブロックごとの評価値に基づいて、前記対象ブロックの第２動きベクトルを検出する第２の検出部と、
を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の設定部は、
前記補正後の第１動きベクトルが示す前記参照フレーム上の点を中心として、前記第２画素成分に直交する方向の幅に比べて、前記第２画素成分に平行な方向の幅が狭い矩形領域を前記第２探索範囲に設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと前記参照フレーム上のブロックとの重なり度合いに基づいて、前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分を特定する特定部を有し、
前記設定部は、
前記特定部によって特定された前記第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定することを特徴とする請求項１〜３のいずれか一つに記載の画像処理装置。
【請求項５】
前記参照フレームを区切って分割されたブロックごとに、前記ブロックのエッジを検出することにより、前記ブロックのエッジ方向を示す方向情報と、当該エッジ方向に略直交する画素成分の画素値と、を含むエッジ情報を作成する作成部を有し、
前記特定部は、
前記作成部によって作成された前記ブロックごとのエッジ情報を参照して、前記第１動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと、前記参照フレーム上のブロックのエッジ方向に略直交する画素成分との重なり度合いが最大となるブロックのエッジ方向に略直交する画素成分を前記第１画素成分として特定し、
前記算出部は、
前記設定部によって設定された前記探索範囲において、前記特定部によって特定された前記第１画素成分の画素値を含むエッジ情報に基づいて、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
コンピュータが、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、
検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、
算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する、
処理を実行することを特徴とする補正方法。
【請求項７】
コンピュータに、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、
検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、
算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する、
処理を実行させることを特徴とする補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、補正方法および補正プログラムに関する。
【背景技術】
【０００２】
動き予測は、一連のフレームのうちの処理対象となる対象フレーム内の元ブロックと類似するブロックを参照フレームから探し出し、元ブロックとの空間的な位置の差を動きベクトルとして出力する処理である。また、サブサンプルされた縮小画像に対して動き予測を行う階層的動き予測と呼ばれる技術がある。
【０００３】
階層的動き予測では、例えば、１段階目の動き予測において、原画像と参照画像のそれぞれを縮小した画像を用いて、おおよその動きベクトルが導出される。そして、２段階目の動き予測において、原画像と参照画像を用いて、１段階目の動き予測結果の動きベクトルが示す点を中心とした探索範囲について動き探索が行われる。
【０００４】
例えば、１段階目の動き予測において、原画像と比較して縦横１／２倍の縮小画像を用いて動きベクトルの導出を行った場合、導出された動きベクトルを縦横２倍に拡大し原画像に当てはめると２画素単位の粒度の動きベクトルが求められたといえる。２段階目の動き探索では縦横±１つまり３ｘ３の範囲の探索点で動き予測ベクトルを探索することで、原画像の画素精度の動きベクトルを求めることができる。縮小画像を用いた階層的な動き予測を行なうことで、原画像を用いた動き予測と比較して少ない演算量で動き予測を行なうことが可能となる。（例えば、特許文献１）
【０００５】
また、縮小処理により画像の高周波成分の情報が失われるため、縮小画像による探索では動きベクトルを誤検出する可能性がある。そのため、画像の鮮鋭度を評価値として、鮮鋭度が高い場合には階層的動き予測を行わないようにする技術がある。（例えば、特許文献２）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５５４１０号公報
【特許文献２】特開２０１２−１９４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術によれば、階層的動き予測において、画像の縮小率が高くなると、１段階目の動き予測で得られる動きベクトルの精度が粗くなり、２段階目の動き予測での探索点が多くなって動き予測にかかる演算量が増大するという問題がある。
【０００８】
一つの側面では、本発明は、階層的動き予測にかかる演算量の増大を抑制することができる画像処理装置、補正方法および補正プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面によれば、処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する画像処理装置、補正方法および補正プログラムが提案される。
【発明の効果】
【００１０】
本発明の一態様によれば、階層的動き予測にかかる演算量の増大を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかる補正方法の一実施例を示す説明図である。
【図２】図２は、動きベクトルと探索範囲との関係を示す説明図である。
【図３】図３は、コンピュータシステム３００のハードウェア構成例を示すブロック図である。
【図４】図４は、ブロックＢのエッジ直交成分の具体例を示す説明図である。
【図５】図５は、エッジ情報Ｅのデータ構造の一例を示す説明図である。
【図６】図６は、エッジ情報テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、画像処理装置１００の機能的構成例を示すブロック図である。
【図８】図８は、探索範囲ＳＲ２の設定例を示す説明図である。
【図９】図９は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の一例を示す説明図である。
【図１０】図１０は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第１の対処例を示す説明図である。
【図１１】図１１は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第２の対処例を示す説明図である。
【図１２】図１２は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第３の対処例を示す説明図である。
【図１３】図１３は、エッジ直交成分のバリエーションを示す説明図（その１）である。
【図１４】図１４は、エッジ直交成分のバリエーションを示す説明図（その２）である。
【図１５】図１５は、画像処理装置１００の画像処理手順の一例を示すフローチャートである。
【図１６】図１６は、エッジ情報作成処理の具体的処理手順の一例を示すフローチャートである。
【図１７】図１７は、第１動きベクトル補正処理の具体的処理手順の一例を示すフローチャートである。
【図１８】図１８は、第２動きベクトル検出処理の具体的処理手順の一例を示すフローチャートである。
【図１９】図１９は、符号化装置１９００の装置構成例を示すブロック図である。
【図２０】図２０は、転送情報の具体例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下に図面を参照して、本発明にかかる画像処理装置、補正方法および補正プログラムの実施の形態を詳細に説明する。
【００１３】
（補正方法の一実施例）
図１は、実施の形態にかかる補正方法の一実施例を示す説明図である。図１において、画像処理装置１００は、階層的動き予測を行うコンピュータである。画像処理装置１００は、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２、ＭＰＥＧ４、Ｈ．２６４、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）等の規格が定める圧縮方式に従って動き予測を行う。
【００１４】
ここで、動き予測とは、対象画像を区切って分割されたブロックと類似するブロックを参照画像から探索し、ブロック間の空間的な位置の差を動きベクトルとして出力する処理である。対象画像とは、動画像である一連のフレームのうちの処理対象（例えば、符号化対象）となる対象フレームの画像である。対象画像は、対象フレームの原画像であってもよく、また、対象フレームの原画像を縮小した画像であってもよい。
【００１５】
参照画像とは、一連のフレームのうちの対象フレームの参照先となる参照フレームの画像である。参照画像は、例えば、符号化済みの画像である。ブロックとは、対象画像や参照画像を、例えば、８×８画素や１６×１６画素などの単位で区切って分割した画像である。対象画像においては、ブロックは、いわゆるマクロブロックや、ブロックパーティションなどのフレーム間予測の実施単位である。
【００１６】
また、階層的動き予測とは、動き予測の処理全体を複数の段階に分け、前の段階ほど、原画像、参照画像をより縮小した画像に対して動き予測を行い、２段階目以降では、前段で検出した動きベクトルから特定される参照画像上の探索範囲について動き予測を行う手法である。
【００１７】
具体的には、例えば、画像処理装置１００は、１段階目の動き予測において、縮小率ｒ（ｒx×ｒy）で対象フレームを縮小した縮小画像と参照フレームを縮小した縮小画像とに基づいて、対象フレームから分割された対象ブロックの動きベクトルを検出する。ただし、ｒxは、ｘ軸方向の縮小率であり、ｒyは、ｙ軸方向の縮小率であり、１よりも小さい値をとる。
【００１８】
より具体的には、例えば、画像処理装置１００は、動きベクトルの候補となる候補ベクトルごとに、候補ベクトルに対応する参照ブロックと対象ブロックとの違いを示す評価値を算出する。そして、画像処理装置１００は、例えば、算出した評価値が最小となる候補ベクトルを動きベクトルとして出力する。これにより、対象フレームと参照フレームのそれぞれを縮小した縮小画像を用いて、おおよその動きベクトルを導出することができる。
【００１９】
以下の説明では、１段階目の動き予測を「縮小ＭＥ（Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ）」と表記し、縮小ＭＥにおいて検出される動きベクトルを「第１動きベクトル」と表記する場合がある。また、２段階目の動き予測を「詳細ＭＥ」と表記し、詳細ＭＥにおいて検出される動きベクトルを「第２動きベクトル」と表記する場合がある。
【００２０】
つぎに、画像処理装置１００は、詳細ＭＥにおいて、対象フレームと参照フレームを用いて、縮小ＭＥの結果である第１動きベクトルから特定される参照フレーム上の点の周辺を探索範囲として第２動きベクトルを探索する。詳細ＭＥの探索起点は、第１動きベクトルを縮小率ｒの逆数倍（１／ｒ）拡大したベクトルが示す参照フレーム上での点となる。
【００２１】
以下の説明では、第１動きベクトルを縮小率ｒの逆数倍（１／ｒ）拡大したベクトルについても「第１動きベクトル」と表記する場合がある。
【００２２】
縮小ＭＥでは、縮小率を高くすればするほど、より広い範囲を少ない演算量で探索することができる。ところが、縮小率を高くすればするほど、縮小ＭＥで得られる第１動きベクトルの精度が粗くなる（すなわち、動きベクトルが指し示す点間の間隔が広がる）。このため、詳細ＭＥにおいて、ピクセル単位の高精度な動き予測を行うための探索点が多くなって動き予測にかかる演算量の増大を招いてしまう。
【００２３】
ここで、図２を用いて、縮小ＭＥで得られる第１動きベクトルと、詳細ＭＥにおける探索範囲との関係について説明する。ここでは、対象フレームと参照フレームを縮小率「１／４（１／４×１／４）」で縮小した縮小画像を用いて、第１動きベクトルを検出する場合を想定する。
【００２４】
図２は、動きベクトルと探索範囲との関係を示す説明図である。図２において、太線枠の格子点２０１〜２０９は、縮小ＭＥで得られる第１動きベクトルが指し示す参照フレーム上の点である。また、探索範囲２００は、第１動きベクトルが指し示す点が点２０１の場合に設定される詳細ＭＥにおける探索範囲の一例である。
【００２５】
具体的には、格子点２０１〜２０９は、ｘ軸方向、ｙ軸方向それぞれに縮小率「１／４」の逆数である４画素単位に設けられる。この場合、整数画素位置の探索をカバーするためには、詳細ＭＥにおいて、第１動きベクトルが指し示す点２０１を中心に、最低でもｘ方向、ｙ方向で±２画素の範囲で探索を行うことになる。
【００２６】
このため、詳細ＭＥにおける探索範囲２００は、第１動きベクトルが指し示す点２０１を中心に、例えば、ｘ軸方向に±２画素、ｙ軸方向に±２画素の範囲に設定される。すなわち、縮小率を高くすればするほど、縮小ＭＥで整数画素位置の探索をカバーするためにより広い範囲で探索を行うことになり、動き予測にかかる演算量が増大する。このとき、縮小ＭＥで得た第１動きベクトルが指し示す位置が縮小率ｒの逆数倍よりも細かな単位で得られれば、詳細ＭＥの探索範囲を限定でき、動き予測にかかる演算量を削減することができる。
【００２７】
そこで、本実施の形態では、画像処理装置１００は、縮小ＭＥで得た第１動きベクトルから参照フレーム上のブロックのエッジに略直交する画素成分を特定し、特定した画素成分と対象ブロックとのブロックマッチングを行うことで第１動きベクトルを補正する。以下、画像処理装置１００の補正処理例について説明する。
【００２８】
（１）画像処理装置１００は、対象フレームＴＦの縮小画像と参照フレームＲＦの縮小画像とに基づいて、対象フレームＴＦを区切って分割された対象ブロックＴＢの第１動きベクトルＶ１を検出する。ここでは、対象フレームＴＦと参照フレームＲＦを縮小率１／４（１／４×１／４）で縮小した縮小画像を用いて、第１動きベクトルＶ１を検出する場合を想定する。
【００２９】
図１の例では、対象ブロックＴＢの第１動きベクトルＶ１（４Ｘ，４Ｙ）が検出されている。ただし、第１動きベクトルＶ１は、対象フレームＴＦと参照フレームＲＦの縮小画像を用いて検出された第１動きベクトルＶ１（Ｘ，Ｙ）を縮小率ｒの逆数倍、すなわち、４倍に拡大したベクトルである。
【００３０】
（２）画像処理装置１００は、検出した第１動きベクトルＶ１に基づいて、参照フレームＲＦ上のブロックＢのエッジ方向に略直交する第１画素成分を特定する。ここで、エッジとは、画像において明るさの変化が相対的に大きい箇所である。ここでは、参照フレームＲＦを区切って分割したブロックＢごとにエッジが検出される。
【００３１】
第１画素成分は、エッジ方向に略直交する１以上の画素列により構成される。第１画素成分を構成する画素列の長さや列数は、任意に設定可能である。また、第１画素成分は、例えば、複数のブロックＢに跨がる画素列により構成されてもよい。図１の例では、第１画素成分は、７画素の画素列により構成されている。
【００３２】
具体的には、例えば、まず、画像処理装置１００は、第１動きベクトルＶ１が示す参照フレームＲＦ上の点Ａに対象ブロックＴＢを配置した場合に、対象ブロックＴＢと重なる参照フレームＲＦ上のブロックＢを特定する。図１の例では、参照ブロックＲＦ上のブロックＢ１〜Ｂ４が特定される。
【００３３】
つぎに、画像処理装置１００は、特定した参照フレームＲＦ上のブロックＢ１〜Ｂ４のエッジ方向に略直交する画素成分１０１〜１０４と対象ブロックＴＢとの重なり度合いを判断する。そして、画像処理装置１００は、対象ブロックＴＢとの重なり度合いが最大となるブロックＢの画素成分を第１画素成分として特定する。図１の例では、ブロックＢ２の画素成分１０２が第１画素成分として特定される。
【００３４】
（３）画像処理装置１００は、特定した第１画素成分に対応する対象ブロックＴＢ上の画素列を含む当該画素列に平行な探索範囲を設定する。具体的には、例えば、画像処理装置１００は、第１画素成分に対応する対象ブロックＴＢ上の画素列を含み、当該画素列を平行に±ｋ画素ずらした対象フレームＴＦ上の範囲を探索範囲に設定する。
【００３５】
ここで、ｋは、縮小率ｒの逆数倍の１／２程度の値である。例えば、縮小率ｒを「１／４」とすると、ｋは「２」となる。図１の例では、第１画素成分に対応する対象フレームＴＦ上の画素列１０５を、ｙ軸方向（画素列１０５に平行な方向）に±２画素ずらした範囲が探索範囲１１０に設定されている。
【００３６】
（４）画像処理装置１００は、設定した探索範囲において、第１画素成分に対応する探索範囲内の第２画素成分ごとに、第１画素成分の画素値と第２画素成分の画素値との差分を表す評価値を算出する。ここで、評価値は、例えば、第１画素成分と第２画素成分との対応する画素間の差分を表す値を累積加算することにより算出される。
【００３７】
評価値は、第１画素成分と第２画素成分との類似度合いを判断する指標となる。画素間の差分を表す値は、例えば、画素間の画素値の差の絶対値である。画素値は、画素が示す色情報であり、例えば、輝度成分値、青色色差成分値、赤色色差成分値などの成分値であってもよく、また、赤成分値、緑成分値、青成分値などの成分値であってもよい。
【００３８】
評価値は、具体的には、例えば、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）、ＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）などである。
【００３９】
すなわち、画像処理装置１００は、第１画素成分と対象ブロックＴＢとのブロックマッチングを行う。なお、ブロックマッチングとは、対象画像内の画素値と、参照画像に対して水平方向・垂直方向に（ｖx，ｖy）だけ移動した画素値との間で、ＳＳＤやＳＡＤなどを評価値として求め、最小評価値を示す移動量を動きベクトルとする探索手法である。
【００４０】
ここで、第１画素成分は、参照フレームＲＦ上のブロックＢのエッジ方向に略直交する画素成分である。エッジ方向に略直交する画素成分は、明るさが大きく変化する傾向にある。このため、第１画素成分と対象フレームＴＦ上の画素成分とのブロックマッチングを行った場合、評価値が大きく変化する可能性が高く、第１画素成分と類似する対象フレームＴＦ上の箇所を効率的に探索することができる。
【００４１】
図１の例では、第２画素成分は、対象フレームＴＦ上の探索範囲１１０において、参照フレームＲＦの第１画素成分に対応する画素列１０５をｙ軸方向に１画素ずつずらしたものとなる。すなわち、探索範囲１１０内の第２画素成分は５パターンとなり、第１画素成分の画素値と第２画素成分の画素値との差分を表す評価値が５パターン算出される。
【００４２】
ここでは、対象ブロックＴＢをｙ軸の正方向、負方向のいずれの方向にもずらしていない場合（ｋ＝０）、すなわち、画素列１０５が第２画素成分となる場合の評価値を「評価値ｖ１」と表記する。また、対象ブロックＴＢをｙ軸の正方向に１画素ずらした場合（ｋ＝１）の評価値を「評価値ｖ２」と表記する。
【００４３】
また、対象ブロックＴＢをｙ軸の正方向に２画素ずらした場合（ｋ＝２）の評価値を「評価値ｖ３」と表記する。また、対象ブロックＴＢをｙ軸の負方向に１画素ずらした場合（ｋ＝−１）の評価値を「評価値ｖ４」と表記する。また、対象ブロックＴＢをｙ軸の負方向に２画素ずらした場合（ｋ＝−２）の評価値を「評価値ｖ５」と表記する。
【００４４】
（５）画像処理装置１００は、算出した第２画素成分ごとの評価値に基づいて、第１動きベクトルＶ１を補正する。具体的には、例えば、まず、画像処理装置１００は、第２画素成分ごとの評価値ｖ１〜ｖ５のうちの最小の評価値ｖ＿ｍｉｎに対応するｋを特定する。そして、画像処理装置１００は、特定したｋを補正量ｋとして、例えば、下記式（１）または（２）に代入することにより、第１動きベクトルＶ１を補正する。
【００４５】
Ｖ１（ｘ，ｙ）＝Ｖ１（Ｘ／ｒ＋ｋ，Ｙ／ｒ）      …（１）
【００４６】
Ｖ１（ｘ，ｙ）＝Ｖ１（Ｘ／ｒ，Ｙ／ｒ＋ｋ）      …（２）
【００４７】
より具体的には、例えば、第２画素成分がｘ軸に平行の場合、画像処理装置１００は、上記式（１）に補正量ｋを代入することにより、第１動きベクトルＶ１を補正する。また、第２画素成分がｙ軸に平行の場合、画像処理装置１００は、上記式（２）に補正量ｋを代入することにより、第１動きベクトルＶ１を補正する。
【００４８】
図１の例では、評価値ｖ１〜ｖ５のうちの評価値ｖ３を最小の評価値ｖ＿ｍｉｎとすると、補正量ｋは「ｋ＝２」となる。また、第２画素成分は、ｙ軸に平行である。このため、画像処理装置１００は、上記式（２）に補正量ｋ（ｋ＝２）を代入することにより、第１動きベクトルＶ１を補正する。
【００４９】
補正後の第１動きベクトルＶ１は、下記式（３）のようになる。具体的には、補正後の第１動きベクトルＶ１は、参照フレームＲＦ上の点Ａ’を指し示すベクトルである。
【００５０】
Ｖ１（Ｘ，Ｙ）＝Ｖ１（４Ｘ，４Ｙ＋２）      …（３）
【００５１】
このように、画像処理装置１００によれば、縮小ＭＥで得た第１動きベクトルＶ１から特定される参照フレームＲＦ上のブロックＢｊの第１画素成分と対象ブロックＴＢとのブロックマッチングを行うことにより、第１動きベクトルＶ１を補正することができる。これにより、縮小率ｒの逆数倍よりも細かな位置精度の第１動きベクトルＶ１を効率的に得ることができ、詳細ＭＥでの探索範囲を限定して動き予測にかかる演算量を削減することができる。
【００５２】
（コンピュータシステム３００のハードウェア構成例）
つぎに、図１に示した画像処理装置１００が適用されるコンピュータシステム３００のハードウェア構成例について説明する。コンピュータシステム３００は、例えば、動画像を記録・再生する機能を有するシステムであり、具体的には、例えば、パーソナル・コンピュータ、テレビジョン、レコーダ、ビデオカメラ、デジタルカメラ、携帯電話、スマートフォンなどである。
【００５３】
図３は、コンピュータシステム３００のハードウェア構成例を示すブロック図である。図３において、コンピュータシステム３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、アクセラレータ３０４と、を有する。また、各構成部はバス３１０によってそれぞれ接続されている。
【００５４】
ここで、ＣＰＵ３０１は、コンピュータシステム３００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有している。より具体的には、例えば、フラッシュＲＯＭがＯＳやファームウェアなどのプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されているプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させることになる。
【００５５】
Ｉ／Ｆ３０３は、他の装置からのデータの入出力を制御する。具体的には、例えば、Ｉ／Ｆ３０３は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ３０３は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
【００５６】
なお、コンピュータシステム３００は、上述した構成部のほかに、例えば、磁気ディスクドライブ、磁気ディスク、ディスプレイ、キーボード、マウス、イメージセンサなどを有することにしてもよい。アクセラレータ３０４は、ＣＰＵ動画像処理の一部を実現するハードウェアを備えている。
【００５７】
（ブロックＢのエッジ直交成分）
つぎに、フレームＦを区切って分割されたブロックＢのエッジ方向に略直交する画素成分の具体例について説明する。以下の説明では、ブロックＢのエッジ方向に略直交する画素成分を「エッジ直交成分」と表記する場合がある。このエッジ直交成分は、上述した第１画素成分に相当する。
【００５８】
図４は、ブロックＢのエッジ直交成分の具体例を示す説明図である。図４において、フレームＦを区切って分割されたブロックＢごとに、ブロックＢのエッジ方向に略直交するエッジ直交成分が示されている。フレームＦは、動画像である一連のフレームのうちのいずれかのフレームである。
【００５９】
ここで、ブロックＢは、１６×１６画素のブロックである。ブロックＢのエッジ方向が縦方向の場合、ブロックＢのエッジ直交成分は、ブロックＢの中央部の横長（７×１画素）の画素列となる。一方、ブロックＢのエッジ方向が横方向の場合、ブロックＢのエッジ直交成分は、ブロックＢの中央部の縦長（１×７画素）の画素列となる。
【００６０】
画像処理装置１００は、ブロックＢごとに、ブロックＢのエッジ直交成分を示すエッジ情報Ｅを作成する。エッジ情報Ｅのデータ構造については、図５を用いて後述する。なお、ここでは、フレームＦから分割された各ブロックＢを、１６×１６画素のブロックとしたが、これに限らない。例えば、各ブロックＢは、３２×３２画素や６４×６４画素のブロックであってもよい。
【００６１】
（エッジ情報Ｅのデータ構造）
つぎに、フレームＦを区切って分割されたブロックＢごとに作成されるエッジ情報Ｅのデータ構造について説明する。
【００６２】
図５は、エッジ情報Ｅのデータ構造の一例を示す説明図である。図５において、エッジ情報Ｅは、方向情報５０１と、画素情報５０２と、を含む。方向情報５０１は、ブロックＢのエッジ直交成分が縦方向または横方向のいずれの方向であるかを示す１ｂｙｔｅの情報である。画素情報５０２は、縦長（１×７画素）または横長（７×１画素）のエッジ直交成分の各画素の情報（１ｂｙｔｅ）を示す７ｂｙｔｅの情報である。
【００６３】
（エッジ情報テーブル６００の記憶内容）
つぎに、画像処理装置１００が用いるエッジ情報テーブル６００の記憶内容について説明する。エッジ情報テーブル６００は、例えば、図３に示したメモリ３０２により実現される。
【００６４】
以下の説明では、動画像である一連のフレームを「フレームＦ１〜Ｆｎ」と表記し（ｎは、２以上の自然数）、フレームＦ１〜Ｆｎのうちの任意のフレームを「フレームＦｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。また、フレームＦｉを区切って分割された複数のブロックを「ブロックＢ１〜Ｂｍ」と表記し（ｍは、２以上の自然数）、ブロックＢ１〜Ｂｍのうちの任意のブロックを「ブロックＢｊ」と表記する場合がある（ｊ＝１，２，…，ｍ）。
【００６５】
図６は、エッジ情報テーブル６００の記憶内容の一例を示す説明図である。図６において、エッジ情報テーブル６００は、フレームＦ１〜Ｆｎに含まれるフレームＦｉごとに、フレームＦｉを区切って分割されたブロックＢ１〜Ｂｍのエッジ情報Ｅ１〜Ｅｍを有する。フレームＩＤは、フレームＦｉを識別する識別子である。ブロックＩＤは、ブロックＢｊを識別する識別子である。エッジ情報は、ブロックＢｊのエッジ情報Ｅｊである。
【００６６】
（画像処理装置１００の機能的構成例）
図７は、画像処理装置１００の機能的構成例を示すブロック図である。図７において、画像処理装置１００は、入力部７０１と、作成部７０２と、生成部７０３と、第１の検出部７０４と、特定部７０５と、第１の設定部７０６と、算出部７０７と、補正部７０８と、第２の設定部７０９と、第２の検出部７１０と、出力部７１１と、を含む構成である。各機能部は、具体的には、例えば、論理積回路であるＡＮＤ、否定論理回路であるＩＮＶＥＲＴＥＲ、論理和回路であるＯＲ、論理和否定回路であるＮＯＲや、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成されてもよい。また、各機能部は、例えば、Ｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などの記述によって機能定義し、その記述を論理合成してＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって実現してもよい。また、各機能部は、例えば、図３に示したメモリ３０２に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、アクセラレータ３０４により、または、ＣＰＵ３０１とアクセラレータ３０４とで処理を分担し、全体で、その機能を実現することにしてもよい。各機能部の処理結果は、例えば、メモリ３０２に記憶される。
【００６７】
入力部７０１は、フレームＦ１〜Ｆｎの入力を受け付ける機能を有する。フレームＦ１〜Ｆｎは、例えば、符号化対象となる動画像である。具体的には、例えば、入力部７０１は、Ｉ／Ｆ３０３を介して、他の装置からフレームＦ１〜Ｆｎの入力を受け付ける。受け付けられたフレームＦ１〜Ｆｎは、例えば、図３に示したメモリ３０２に記憶される。
【００６８】
作成部７０２は、フレームＦｉを区切って分割されたブロックＢｊのエッジ情報Ｅｊを作成する機能を有する。具体的には、例えば、まず、作成部７０２は、Ｓｏｂｅｌフィルタを用いて、フレームＦｉから分割されたブロックＢｊのエッジを検出する。Ｓｏｂｅｌフィルタは、空間１次微分を計算して、輪郭を検出するフィルタである。
【００６９】
下記式（４）および（５）は、ブロックＢｊに縦・横方向のＳｏｂｅｌフィルタをかけた結果を示す。また、下記式（６）は、ブロックＢｊのエッジ強度（勾配強度）を示す。ただし、Ｐｘ，Ｐｙは、ｘ，ｙ方向のエッジ強度である。
【００７０】
【数１】
2015012548.tif 000003
【００７１】
【数２】
2015012548.tif 000004
【００７２】
作成部７０２は、ｘ，ｙ方向のエッジ強度Ｐが予め設定された閾値以上で、エッジ強度Ｐｘがエッジ強度Ｐｙよりも大きい場合、ブロックＢｊの縦方向のエッジを検出する。そして、作成部７０２は、ブロックＢｊからエッジ方向（縦方向）に略直交する画素成分をエッジ直交成分として抽出して、ブロックＢｊのエッジ情報Ｅｊを作成する。
【００７３】
また、作成部７０２は、ｘ，ｙ方向のエッジ強度Ｐｘ，Ｐｙが閾値以上で、エッジ強度Ｐｙがエッジ強度Ｐｘよりも大きい場合、ブロックＢｊの横方向のエッジを検出する。そして、作成部７０２は、ブロックＢｊからエッジ方向（横方向）に略直交する画素成分をエッジ直交成分として抽出して、ブロックＢｊのエッジ情報Ｅｊを作成する。
【００７４】
また、作成部７０２は、ｘ，ｙ方向のエッジ強度Ｐｘ，Ｐｙが閾値未満の場合、ブロックＢｊにエッジがないことを示すエッジ情報Ｅｊを作成する。作成されたブロックＢｊのエッジ情報Ｅｊは、例えば、図６に示したエッジ情報テーブル６００に記憶される。
【００７５】
なお、作成部７０２は、ブロックＢｊのエッジの角度θを算出して、縦・横以外の方向（角度θ）のエッジ情報Ｅｊを作成することにしてもよい。この場合、エッジ直交成分の方向を示す情報が、例えば、エッジ情報Ｅｊの方向情報５０１に記憶される。角度θは、例えば、下記式（７）を用いて求めることができる。
【００７６】
θ＝ｔａｎ-1（Ｐｙ／Ｐｘ）      …（７）
【００７７】
生成部７０３は、所定の縮小率ｒでフレームＦｉを縮小した縮小画像を生成する機能を有する。具体的には、例えば、縮小率ｒが「ｒ＝０．２５」の場合、生成部７０３は、フレームＦｉを水平垂直両方で１／４にサブサンプリングしてフレームＦｉの縮小画像を生成する。生成されたフレームＦｉの縮小画像は、例えば、メモリ３０２に記憶される。
【００７８】
第１の検出部７０４は、対象フレームＴＦの縮小画像と参照フレームＲＦの縮小画像とに基づいて、対象フレームＴＦを区切って分割された対象ブロックＴＢの第１動きベクトルＶ１を検出する機能を有する。ここで、第１動きベクトルＶ１は、対象画像ＯＰの縮小画像から分割されたブロックと、参照画像ＲＰの縮小画像上の探索範囲内の参照ブロックとの空間的な位置の差を示すベクトルである。
【００７９】
以下の説明では、対象フレームＴＦの縮小画像から分割されたブロックのうち対象ブロックＴＢに対応するブロックを「対象ブロックｔｂ」と表記する場合がある。また、参照フレームＲＦの縮小画像上の探索範囲内のブロックを「参照ブロックｒｂ」と表記する場合がある。
【００８０】
具体的には、例えば、第１の検出部７０４は、参照フレームＲＦの縮小画像上の探索範囲内の参照ブロックｒｂを１画素精度（あるいは、半画素精度、１／４画素精度など）で順次選択する。なお、参照フレームＲＦの縮小画像上の探索範囲は予め指定されている。探索範囲は、例えば、参照フレームＲＦの縮小画像上における対象ブロックｔｂの位置を中心として±１５画素の範囲などである。
【００８１】
つぎに、第１の検出部７０４は、対象ブロックｔｂと参照ブロックｒｂとの対応する画素間の差分を表す値を累積加算することにより、参照ブロックｒｂごとの評価値を算出する。そして、第１の検出部７０４は、算出した参照ブロックｒｂごとの評価値に基づいて、対象ブロックＴＢの第１動きベクトルＶ１を検出する。ここで、参照ブロックｒｂの評価値は、例えば、ＳＡＤ、ＳＡＴＤ、ＳＳＤなどである。
【００８２】
具体的には、例えば、第１の検出部７０４は、参照フレームＲＦの縮小画像上の探索範囲内の参照ブロックｒｂのうち評価値が最小となる参照ブロックｒｂに対応するベクトルＶ（Ｘ，Ｙ）を検出する。そして、第１の検出部７０４は、検出したベクトルＶ（Ｘ，Ｙ）を縮小率ｒの逆数倍に拡大したベクトルを第１動きベクトルＶ１（Ｘ／ｒ，Ｙ／ｒ）として検出する。
【００８３】
特定部７０５は、第１の検出部７０４によって検出された第１動きベクトルＶ１に基づいて、参照フレームＲＦ上のブロックＢｊのエッジ直交成分を特定する機能を有する。具体的には、例えば、まず、特定部７０５は、第１動きベクトルＶ１が示す参照フレームＲＦ上の位置に対象ブロックＴＢを配置した場合に、対象ブロックＴＢと重なる参照フレームＲＦ上のブロックＢｊを特定する。
【００８４】
つぎに、特定部７０５は、図６に示したエッジ情報テーブル６００を参照して、特定した参照フレームＲＦ上のブロックＢｊのエッジ直交成分と対象ブロックＴＢとの重なり度合いを判断する。この際、エッジ直交成分の方向は、エッジ情報Ｅｊの方向情報５０１から特定することができる。また、エッジ直交成分の位置は、例えば、予め設定されたブロックＢｊの中央部である。そして、特定部７０５は、エッジ情報テーブル６００を参照して、対象ブロックＴＢとの重なり度合いが最大となる参照フレームＲＦ上のブロックＢｊのエッジ直交成分を示すエッジ情報Ｅｊを特定する。これにより、第１動きベクトルＶ１が指し示す参照フレームＲＦ上の点の周辺のエッジ直交成分のうち、対象ブロックＴＢとのブロックマッチングを行う適切なエッジ直交成分ＥＣを特定することができる。
【００８５】
なお、対象ブロックＴＢとの重なり度合いが大きいブロックＢｊほど、ブロックＢｊのエッジ直交成分と対象ブロックＴＢとの重なり度合いが大きくなる可能性が高い。このため、特定部７０５は、例えば、第１動きベクトルＶ１が示す参照フレームＲＦ上の位置に配置した対象ブロックＴＢとの重なり度合いが最大となるブロックＢｊを特定し、そのブロックＢｊのエッジ直交成分を示すエッジ情報Ｅｊを特定することにしてもよい。
【００８６】
以下の説明では、特定部７０５によって特定された参照フレームＲＦ上のブロックＢｊのエッジ直交成分を「エッジ直交成分ＥＣ」と表記する場合がある。
【００８７】
第１の設定部７０６は、特定部７０５によって特定されたエッジ直交成分ＥＣに対応する対象ブロックＴＢ上の画素列を含む当該画素列に平行な探索範囲を設定する機能を有する。具体的には、例えば、第１の設定部７０６は、エッジ直交成分ＥＣに対応する対象ブロックＴＢ上の画素列を含み、当該画素列を平行に±ｋ画素ずらした範囲を探索範囲に設定する。なお、ｋの値は、任意に設定可能であり、例えば、エッジ直交成分と対象ブロックＴＢとのブロックマッチングにかかる演算量を考慮して設定される。具体的には、例えば、ｋは、縮小率ｒの逆数倍の１／２〜１／３程度の値である。
【００８８】
以下の説明では、第１の設定部７０６によって設定された対象フレームＴＦ上の探索範囲を「探索範囲ＳＲ１」と表記する場合がある。
【００８９】
算出部７０７は、第１の設定部７０６によって設定された探索範囲ＳＲ１において、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分ごとに、エッジ直交成分の画素値と該画素成分の画素値との差分を表す評価値ｖを算出する機能を有する。すなわち、算出部７０７は、エッジ直交成分と対象ブロックＴＢとのブロックマッチングを行う。ここで、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分は、エッジ直交成分ＥＣと同一形状の探索範囲ＳＲ１内の画素列である。
【００９０】
以下の説明では、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分を「対象画素成分ＴＣ」と表記する場合がある。エッジ直交成分ＥＣを１列の画素成分とすると、探索範囲ＳＲ１内には、（２ｋ＋１）通りの対象画素成分ＴＣが存在する。対象画素成分ＴＣの評価値ｖは、例えば、ＳＡＤ、ＳＡＴＤ、ＳＳＤなどである。
【００９１】
具体的には、例えば、算出部７０７は、エッジ直交成分ＥＣと対象画素成分ＴＣとの対応する画素間の差分を表す値を累積加算することにより、対象画素成分ＴＣごとの評価値ｖを算出する。なお、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分が、対象ブロックＴＢから外れる場合がある。この場合の対処例については、図９〜図１２を用いて後述する。
【００９２】
補正部７０８は、算出部７０７によって算出された対象画素成分ＴＣごとの評価値ｖに基づいて、第１動きベクトルＶ１を補正する機能を有する。具体的には、例えば、まず、補正部７０８は、対象画素成分ＴＣごとの評価値ｖのうちの最小の評価値ｖ＿ｍｉｎに対応するｋを特定する。そして、補正部７０８は、例えば、特定したｋを補正量ｋとして、上記式（１）または（２）に代入することにより、第１動きベクトルＶ１を補正する。
【００９３】
より具体的には、例えば、対象画素成分ＴＣがｘ軸に平行の場合、補正部７０８は、上記式（１）に補正量ｋを代入することにより、第１動きベクトルＶ１を補正する。また、対象画素成分ＴＣがｙ軸に平行の場合、補正部７０８は、上記式（２）に補正量ｋを代入することにより、第１動きベクトルＶ１を補正する。
【００９４】
第２の設定部７０９は、補正部７０８によって補正された補正後の第１動きベクトルＶ１と対象画素成分ＴＣの方向とに基づいて、参照フレームＲＦ上の探索範囲ＳＲ２を設定する機能を有する。ここで、対象画素成分ＴＣの方向は、ブロックＢｊのエッジ方向に略直交する方向である。また、探索範囲ＳＲ２は、詳細ＭＥの動き予測における探索範囲である。
【００９５】
具体的には、例えば、第２の設定部７０９は、補正後の動きベクトルＶ１が示す参照フレームＲＦ上の点を中心として、対象画素成分ＴＣ（エッジ直交成分ＥＣ）に直交する方向の幅に比べて、対象画素成分ＴＣに平行な方向の幅が狭い矩形領域を探索範囲ＳＲ２に設定する。なお、探索範囲ＳＲ２の設定例については、図８を用いて後述する。
【００９６】
第２の検出部７１０は、対象フレームＴＦと参照フレームＲＦとに基づいて、対象フレームＴＦを区切って分割された対象ブロックＴＢの第２動きベクトルＶ２を検出する機能を有する。ここで、第２動きベクトルＶ２は、詳細ＭＥの動き予測において検出される動きベクトルである。
【００９７】
具体的には、例えば、まず、第２の検出部７１０は、第２の設定部７０９によって設定された参照フレームＲＦ上の探索範囲ＳＲ２において、対象ブロックＴＢに対応する探索範囲ＳＲ２内の参照ブロックＲＢごとに、対象ブロックＴＢの画素値と参照ブロックＲＢの画素値との差分を表す評価値Ｖを算出する。参照ブロックＲＢの評価値Ｖは、例えば、ＳＡＤ、ＳＡＴＤ、ＳＳＤなどである。
【００９８】
そして、第２の検出部７１０は、算出した参照ブロックＲＢごとの評価値Ｖに基づいて、対象ブロックＴＢの第２動きベクトルＶ２を検出する。より具体的には、例えば、第２の検出部７１０は、参照フレームＲＦの探索範囲ＳＲ２内の参照ブロックＲＢのうちの評価値が最小となる参照ブロックＲＢに対応するベクトルを第２動きベクトルＶ２として検出する。
【００９９】
なお、第２の検出部７１０は、参照ブロックＲＢの評価値Ｖを算出する際に、画素間の差分を表す値を累積加算する過程において、その累積加算値が、算出済みの他の参照ブロックＲＢの評価値よりも大きくなった場合、累積加算演算を中断することにしてもよい。すなわち、その後の累積加算過程を続行しても、その評価値が最良の評価値を示すことはないため、第２の検出部７１０は、その参照ブロックＲＢの評価値Ｖの算出処理を中断することにしてもよい。
【０１００】
出力部７１１は、第２の検出部７１０によって検出された対象ブロックＴＢの第２動きベクトルＶ２を出力する機能を有する。具体的には、例えば、出力部７１１は、差分画像を周波数成分に変換して量子化する機能部（例えば、後述する図１９に示すＤＣＴ／量子化部１９１６）などに、対象ブロックＴＢの第２動きベクトルＶ２を出力する。
【０１０１】
（探索範囲ＳＲ２の設定例）
つぎに、詳細ＭＥの動き予測における探索範囲ＳＲ２の設定例について説明する。
【０１０２】
図８は、探索範囲ＳＲ２の設定例を示す説明図である。図８において、（８−１）は、補正部７０８による第１動きベクトルＶ１の補正が行われなかった場合の探索範囲ＳＲ２の設定例である。ここでは、初期範囲として、第１動きベクトルＶ１が示す参照フレームＲＦ上の点Ｐを中心として、ｘ方向に±３画素、ｙ方向に±３画素の探索範囲ＳＲ２が設定されている。
【０１０３】
（８−２）は、補正部７０８による第１動きベクトルＶ１の補正が行われ、かつ、対象画素成分ＴＣがｘ方向の場合の探索範囲ＳＲ２の設定例である。ここでは、ｘ方向は、対象画素成分ＴＣを用いた補正が行われており、ｙ方向に比べて位置精度が高いため、初期設定から左右の縦１列（図８中、点線枠）を削った探索範囲ＳＲ２が設定されている。これにより、初期範囲に比べて、詳細ＭＥにおける探索範囲を限定することができる。
【０１０４】
（８−３）は、補正部７０８による第１動きベクトルＶ１の補正が行われ、かつ、対象画素成分ＴＣがｙ方向の場合の探索範囲ＳＲ２の設定例である。ここでは、ｙ方向は、対象画素成分ＴＣを用いた補正が行われており、ｘ方向に比べて位置精度が高いため、初期設定から上下の横１列（図８中、点線枠）を削った探索範囲ＳＲ２が設定されている。これにより、初期範囲に比べて、詳細ＭＥにおける探索範囲を限定することができる。
【０１０５】
なお、ここでは、対象画素成分ＴＣの方向（ｘ方向またはｙ方向）に応じて、固定的に初期設定から１列分範囲を小さくする場合について説明したが、これに限らない。具体的には、例えば、第２の設定部７０９は、エッジ直交成分ＥＣに対応する参照フレームＲＦ上のブロックＢｊのエッジが検出された際のエッジ強度Ｐと、対象画素成分ＴＣの評価値ｖ＿ｍｉｎとに基づいて、削減列数を決定することにしてもよい。
【０１０６】
より具体的には、例えば、第２の設定部７０９は、条件「Ｐ＞閾値α、かつ、Ｓ＞閾値β」を満たす場合、削減列数を「２」、すなわち、探索範囲ＳＲ２の初期設定から削る列数を「２」に決定することにしてもよい。また、第２の設定部７０９は、上記条件を満たさない場合、削減列数を「１」、すなわち、探索範囲ＳＲ２の初期設定から削る列数を「１」に決定することにしてもよい。
【０１０７】
なお、ブロックＢｊのエッジ強度Ｐは、例えば、ブロックＢｊのエッジ情報Ｅｊに含まれていてもよい。また、上記閾値α、βは、例えば、予め設定されてメモリ３０２に記憶されている。
【０１０８】
（エッジ直交成分ＥＣのブロックマッチを行う際の対処例）
つぎに、エッジ直交成分ＥＣと対象ブロックＴＢとのブロックマッチを行う際に、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分が、対象ブロックＴＢから外れる場合の対処例について説明する。ここで、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の画素成分が、対象ブロックＴＢから外れる場合は、下記（ｉ）および（ｉｉ）の２通りである。
【０１０９】
（ｉ）エッジ直交成分ＥＣの一部または全部が対象ブロックＴＢから外れる場合
【０１１０】
（ｉｉ）対象フレームＴＦ上の探索範囲ＳＲ１内において、エッジ直交成分ＥＣに対応する画素成分を変更した場合に対象ブロックＴＢから外れる場合
【０１１１】
図９は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の一例を示す説明図である。図９において、対象ブロックＴＢと、対象フレームＴＦ上の探索範囲ＳＲ１との位置関係が示されている。ここで、「ｋ＝±０」の場合、エッジ直交成分ＥＣに対応する対象画素成分ＴＣが対象ブロックＴＢにすべて含まれている。
【０１１２】
同様に、「ｋ＝＋２」の場合、エッジ直交成分ＥＣに対応する対象画素成分ＴＣが対象ブロックＴＢにすべて含まれている。一方、「ｋ＝−２」の場合は、エッジ直交成分ＥＣに対応する対象画素成分ＴＣが対象ブロックＴＢから外れている。これでは、エッジ直交成分ＥＣと対象ブロックＴＢとのブロックマッチを行っても対象画素成分ＴＣの評価値ｖを算出することができない。以下、この場合の対処例について説明する。
【０１１３】
＜第１の対処例＞
図１０は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第１の対処例を示す説明図である。図１０において、対象ブロックＴＢと、エッジ直交成分ＥＣに対応する対象画素成分ＴＣ１〜ＴＣ４との位置関係が示されている。
【０１１４】
ここで、対象画素成分ＴＣが対象ブロックＴＢから外れる場合、対象ブロックＴＢの周辺の画素を含めて、すなわち、対象ブロックＴＢの周辺の画素をメモリ３０２から読み出して、対象画素成分ＴＣの評価値ｖを算出することができる。なお、対象ブロックＴＢの周辺の画素をどの程度拡張して読み出せばよいのかは、例えば、第１動きベクトルＶ１、エッジ情報Ｅ、対象フレームＴＦ上の探索範囲ＳＲ１等から特定することができる。
【０１１５】
ところが、対象ブロックＴＢから離れ過ぎている画素を読み出して、動き探索を行っても適切な結果が得られないため、拡張して読み出し可能な周辺画素に制限を設ける。例えば、拡張して読み出し可能な周辺画素は、対象ブロックＴＢの周囲Ｎ画素（例えば、Ｎ＝４画素）までとする。
【０１１６】
算出部７０７は、対象ブロックＴＢの周囲Ｎ画素まで拡張した矩形領域ＥＡに対象画素成分ＴＣが含まれている場合、対象画素成分ＴＣの評価値ｖを算出する。一方、算出部７０７は、矩形領域ＥＡから対象画素成分ＴＣが外れる場合、対象画素成分ＴＣの評価値ｖを算出しない。すなわち、矩形領域ＥＡから対象画素成分ＴＣが外れる場合、第１動きベクトルＶ１の補正は行われない。
【０１１７】
図１０の例では、対象画素成分ＴＣ１，ＴＣ２は矩形領域ＥＡに含まれる。このため、算出部７０７は、エッジ直交成分ＥＣと対象画素成分ＴＣ１，ＴＣ２との対応する画素間の差分を表す値を累積加算することにより、対象画素成分ＴＣ１，ＴＣ２ごとの評価値ｖを算出する。一方、対象画素成分ＴＣ３，ＴＣ４については矩形領域ＥＡから外れる。このため、算出部７０７は、対象画素成分ＴＣ３，ＴＣ４の評価値ｖを算出しない。
【０１１８】
このように、対象ブロックＴＢの周辺の画素を拡張して読み出すことにより、対象画素成分ＴＣが対象ブロックＴＢから外れる場合であっても、対象画素成分ＴＣの評価値ｖを算出することができる。また、拡張して読み出し可能な周辺画素に制限を設けることにより、動き探索精度が低下するのを防ぐことができる。
【０１１９】
＜第２の対処例＞
図１１は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第２の対処例を示す説明図である。図１１において、対象ブロックＴＢと、エッジ直交成分ＥＣに対応する対象画素成分ＴＣ１〜ＴＣ３との位置関係が示されている。
【０１２０】
算出部７０７は、対象画素成分ＴＣの一部が対象ブロックＴＢから外れる場合、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている重複部分についての評価値を算出する。つぎに、算出部７０７は、算出した重複部分の評価値の画素単位の平均値に基づいて、対象画素成分ＴＣのうちの対象ブロックＴＢから外れている部分についての評価値を算出する。
【０１２１】
図１１の例では、対象画素成分ＴＣ１，ＴＣ２は対象ブロックＴＢに含まれる。このため、算出部７０７は、エッジ直交成分ＥＣと対象画素成分ＴＣ１，ＴＣ２との対応する画素間の差分を表す値を累積加算することにより、対象画素成分ＴＣ１，ＴＣ２ごとの評価値ｖを算出する。
【０１２２】
一方、対象画素成分ＴＣ３については対象ブロックＴＢから外れる。この場合、まず、算出部７０７は、対象画素成分ＴＣ３のうちの対象ブロックＴＢと重なっている重複部分、すなわち、５画素分の評価値ｖ［１］を算出する。そして、算出部７０７は、５画素分の評価値ｖ［１］の画素単位の平均値「ｖ［１］／５」を算出する。
【０１２３】
つぎに、算出部７０７は、画素単位の平均値「ｖ［１］／５」に基づいて、対象画素成分ＴＣ３のうちの対象ブロックＴＢから外れている部分、すなわち、２画素分の評価値ｖ［２］についての評価値を算出する。ここでは、評価値ｖ［２］は、「ｖ［２］＝２×ｖ［１］／５」となる。そして、算出部７０７は、５画素分の評価値ｖ［１］と２画素分の評価値ｖ［２］とを足し合わせることにより、対象画素成分ＴＣ３の評価値ｖを算出する。
【０１２４】
このように、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている重複部分の評価値ｖ［１］の平均値に基づいて、対象画素成分ＴＣのうちの対象ブロックＴＢから外れている部分の評価値ｖ［２］を算出することができる。これにより、対象画素成分ＴＣが対象ブロックＴＢから外れる場合であっても、対象画素成分ＴＣの評価値ｖを算出することができる。
【０１２５】
ただし、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている部分がない場合、算出部７０７は、対象画素成分ＴＣの評価値ｖを算出しない。また、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている部分が、対象画素成分ＴＣ全体の１割程度の場合、算出部７０７は、対象画素成分ＴＣの評価値ｖを算出しないことにしてもよい。これにより、動き探索精度が低下するのを防ぐことができる。
【０１２６】
＜第３の対処例＞
図１２は、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れる場合の第３の対処例を示す説明図である。図１２において、対象ブロックＴＢと、エッジ直交成分ＥＣに対応する対象画素成分ＴＣ１〜ＴＣ３との位置関係が示されている。
【０１２７】
算出部７０７は、対象ブロックＴＢから外れる対象画素成分ＴＣがある場合、対象ブロックＴＢとの重なりが最も少ない対象画素成分ＴＣに合わせて、エッジ直交成分ＥＣの画素を制限する。すなわち、算出部７０７は、評価値を算出可能なエッジ直交成分ＥＣのＡＮＤをとる。
【０１２８】
図１２の例では、対象画素成分ＴＣ３の一部が対象ブロックＴＢから外れており、対象画素成分ＴＣ３のうちの対象ブロックＴＢと重なっている重複部分は５画素である。この場合、算出部７０７は、７画素のエッジ直交成分ＥＣを５画素に制限する。具体的には、算出部７０７は、７画素のエッジ直交成分ＥＣのうち対象ブロックＴＢから外れる部分である上の２画素を除外する。
【０１２９】
これにより、エッジ直交成分ＥＣに対応する画素成分が対象ブロックＴＢから外れることを防ぐことができる。ただし、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている部分がない場合、算出部７０７は、対象画素成分ＴＣの評価値ｖを算出しない。また、対象画素成分ＴＣのうちの対象ブロックＴＢと重なっている部分が、対象画素成分ＴＣ全体の１割程度の場合、算出部７０７は、対象画素成分ＴＣの評価値ｖを算出しない。
【０１３０】
＜第４の対処例＞
第４の対処例としては、算出部７０７は、対象画素成分ＴＣの一部または全部が対象ブロックＴＢから外れる場合には、対象画素成分ＴＣの評価値ｖを算出しないことにしてもよい。
【０１３１】
なお、上記（ｉ）および（ｉｉ）の対処方法として、上述した第１〜第４の対処例のいずれの対処方法を選択するのかは、例えば、初期設定で選択されることにしてもよい。具体的には、例えば、上記（ｉ）の対処方法としては、第１の対処例または第４の対処例のいずれかの対処方法が選択される。また、上記（ｉｉ）の対処方法としては、例えば、第１の対処例、第２の対処例、第３の対処例および第４の対処例のいずれかの対処方法が選択される。
【０１３２】
（エッジ直交成分のバリエーション）
つぎに、図１３および図１４を用いて、フレームＦｉを区切って分割されたブロックＢｊのエッジ直交成分のバリエーションについて説明する。
【０１３３】
図１３は、エッジ直交成分のバリエーションを示す説明図（その１）である。図１３において、ブロックＢｊのエッジ直交成分として、斜めのエッジ直交成分１３０１，１３０２が示されている。この場合、エッジ情報Ｅの方向情報５０１には、例えば、ブロックＢｊのエッジ直交成分が右上がりまたは右下がりのいずれの方向であるかを示す１ｂｙｔｅの情報が格納される。
【０１３４】
図１４は、エッジ直交成分のバリエーションを示す説明図（その２）である。作成部７０２は、ブロックＢｊ内を複数の領域に分割し、複数の領域の中から最もエッジの強い（例えば、Ｓｏｂｅｌフィルタなどのフィルタ後の値が大きい）位置のエッジ直交成分を抽出することにしてもよい。
【０１３５】
図１４の例では、１６×１６画素のブロックＢｊが４×４画素単位の１６ブロック（例えば、ブロック１４０１）に分割されている。この場合、作成部７０２は、例えば、ブロックＢｊ内を４ブロック（８×８画素）単位で９箇所（例えば、領域１４１０，１４２０，１４３０，１４４０）のエッジ有無判定を行う（図１４中、（１４−１））。
【０１３６】
そして、作成部７０２は、最もフィルタ結果の大きい箇所（例えば、領域１４３０，１４４０）のエッジ情報を、ブロックＢｊのエッジ情報Ｅとして作成する（図１４中、（１４−２））。ただし、この場合、ブロックＢｊごとに、エッジ直交成分が抽出される位置が異なるため、作成部７０２は、エッジ直交成分が抽出されたブロックＢｊ内の位置を示す位置情報（例えば、０〜８）をエッジ情報Ｅに追加する。また、特定部７０５は、対象ブロックＴＢと重なる参照フレームＲＦ上のブロックＢｊを特定する際に、エッジ情報Ｅに含まれる位置情報（０〜８）を参照して判断する。
【０１３７】
（画像処理装置１００の画像処理手順）
つぎに、画像処理装置１００の画像処理手順について説明する。ここでは、画像処理装置１００が実行する画像処理の一例として、対象フレームＴＦから分割された対象ブロックＴＢの動きベクトルを検出する処理について説明する。
【０１３８】
図１５は、画像処理装置１００の画像処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、画像処理装置１００は、動画像であるフレームＦ１〜Ｆｎの入力を受け付ける（ステップＳ１５０１）。
【０１３９】
つぎに、画像処理装置１００は、フレームＦｉを区切って分割されたブロックＢｊのエッジ情報Ｅｊを作成するエッジ情報作成処理を実行する（ステップＳ１５０２）。なお、エッジ情報作成処理の具体的な処理手順については、図１６を用いて後述する。
【０１４０】
そして、画像処理装置１００は、フレームＦ１〜Ｆｎに含まれる各フレームＦｉを縮小率ｒで縮小した縮小画像を生成する（ステップＳ１５０３）。つぎに、画像処理装置１００は、フレームＦ１〜Ｆｎから、処理対象となる対象フレームＴＦを選択し（ステップＳ１５０４）、対象フレームＴＦの参照先となる参照フレームＲＦを選択する（ステップＳ１５０５）。
【０１４１】
そして、画像処理装置１００は、対象フレームＴＦの縮小画像と参照フレームＲＦの縮小画像とに基づいて、対象フレームＴＦを区切って分割された対象ブロックＴＢごとの第１動きベクトルＶ１を検出する（ステップＳ１５０６）。
【０１４２】
つぎに、画像処理装置１００は、対象ブロックＴＢごとの第１動きベクトルＶ１を補正する第１動きベクトル補正処理を実行する（ステップＳ１５０７）。なお、第１動きベクトル補正処理の具体的な処理手順については、図１７を用いて後述する。
【０１４３】
そして、画像処理装置１００は、対象ブロックＴＢごとの第２動きベクトルＶ２を検出する第２動きベクトル検出処理を実行する（ステップＳ１５０８）。なお、第２動きベクトル検出処理の具体的な処理手順については、図１８を用いて後述する。
【０１４４】
つぎに、画像処理装置１００は、フレームＦ１〜Ｆｎから選択されていない未選択の対象フレームＴＦがあるか否かを判断する（ステップＳ１５０９）。ここで、未選択の対象フレームＴＦがある場合（ステップＳ１５０９：Ｙｅｓ）、画像処理装置１００は、ステップＳ１５０４に戻って、フレームＦ１〜Ｆｎから未選択の対象フレームＴＦを選択する。
【０１４５】
一方、未選択の対象フレームＴＦがない場合（ステップＳ１５０９：Ｎｏ）、画像処理装置１００は、本フローチャートによる一連の処理を終了する。これにより、動画像であるフレームＦ１〜Ｆｎに含まれる対象フレームＴＦを区切って分割された対象ブロックＴＢごとの第２動きベクトルＶ２を検出することができる。
【０１４６】
＜エッジ情報作成処理の具体的処理手順＞
つぎに、図１５に示したステップＳ１５０２のエッジ情報作成処理の具体的な処理手順について説明する。
【０１４７】
図１６は、エッジ情報作成処理の具体的処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、画像処理装置１００は、フレームＦ１〜ＦｎからフレームＦｉを選択する（ステップＳ１６０１）。つぎに、画像処理装置１００は、選択したフレームＦｉを区切って分割されたブロックＢｊを選択する（ステップＳ１６０２）。
【０１４８】
そして、画像処理装置１００は、選択したブロックＢｊのエッジを検出する（ステップＳ１６０３）。つぎに、画像処理装置１００は、検出結果に基づいて、ブロックＢｊにエッジがあるか否かを判断する（ステップＳ１６０４）。ここで、エッジがない場合（ステップＳ１６０４：Ｎｏ）、画像処理装置１００は、ステップＳ１６０６に移行する。
【０１４９】
一方、エッジがある場合（ステップＳ１６０４：Ｙｅｓ）、画像処理装置１００は、ブロックＢｊからエッジ方向に略直交する画素成分をエッジ直交成分として抽出する（ステップＳ１６０５）。そして、画像処理装置１００は、ブロックＢｊのエッジ情報Ｅｊを作成する（ステップＳ１６０６）。なお、ブロックＢｊにエッジがない場合は、ブロックＢｊにエッジがないことを示すエッジ情報Ｅｊが作成される。
【０１５０】
つぎに、画像処理装置１００は、フレームＦｉから選択されていない未選択のブロックＢがあるか否かを判断する（ステップＳ１６０７）。ここで、未選択のブロックＢがある場合（ステップＳ１６０７：Ｙｅｓ）、画像処理装置１００は、ステップＳ１６０２に戻って、フレームＦｉから選択されていない未選択のブロックＢｊを選択する。
【０１５１】
一方、未選択のブロックＢがない場合（ステップＳ１６０７：Ｎｏ）、画像処理装置１００は、フレームＦ１〜Ｆｎから選択されていない未選択のフレームＦがあるか否かを判断する（ステップＳ１６０８）。ここで、未選択のフレームＦがある場合（ステップＳ１６０８：Ｙｅｓ）、画像処理装置１００は、ステップＳ１６０１に戻って、フレームＦ１〜Ｆｎから選択されていない未選択のフレームＦｉを選択する。
【０１５２】
一方、未選択のフレームＦがない場合（ステップＳ１６０８：Ｎｏ）、画像処理装置１００は、本フローチャートによる一連の処理を終了して、エッジ情報作成処理を呼び出したステップに戻る。これにより、動画像であるフレームＦ１〜Ｆｎに含まれるフレームＦを区切って分割されたブロックＢごとのエッジ情報Ｅを作成することができる。
【０１５３】
＜第１動きベクトル補正処理の具体的処理手順＞
つぎに、図１５に示したステップＳ１５０７の第１動きベクトル補正処理の具体的な処理手順について説明する。
【０１５４】
図１７は、第１動きベクトル補正処理の具体的処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、画像処理装置１００は、対象フレームＴＦから対象ブロックＴＢを選択し（ステップＳ１７０１）、対象ブロックＴＢの第１動きベクトルＶ１を取得する（ステップＳ１７０２）。
【０１５５】
つぎに、画像処理装置１００は、第１動きベクトルＶ１に基づいて、対象ブロックＴＢとの重なり度合いが最大となる参照フレームＲＦ上のブロックＢｊのエッジ直交成分ＥＣを示すエッジ情報Ｅｊを特定する（ステップＳ１７０３）。そして、画像処理装置１００は、エッジ情報Ｅｊが特定されたか否かを判断する（ステップＳ１７０４）。
【０１５６】
ここで、エッジ情報Ｅｊが特定されなかった場合（ステップＳ１７０４：Ｎｏ）、画像処理装置１００は、ステップＳ１７０９に移行する。一方、エッジ情報Ｅｊが特定された場合（ステップＳ１７０４：Ｙｅｓ）、画像処理装置１００は、エッジ直交成分ＥＣに対応する対象フレームＴＦ上の画素列を含む当該画素列に平行な探索範囲ＳＲ１を設定する（ステップＳ１７０５）。
【０１５７】
つぎに、画像処理装置１００は、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の対象画素成分ＴＣごとに、エッジ直交成分の画素値と対象画素成分ＴＣの画素値との差分を表す評価値ｖを算出する（ステップＳ１７０６）。そして、画像処理装置１００は、対象画素成分ＴＣごとの評価値ｖに基づいて、第１動きベクトルＶ１を補正する補正量ｋを特定する（ステップＳ１７０７）。
【０１５８】
つぎに、画像処理装置１００は、特定した補正量ｋに基づいて、第１動きベクトルＶ１を補正する（ステップＳ１７０８）。そして、画像処理装置１００は、対象フレームＴＦから選択されていない未選択の対象ブロックＴＢがあるか否かを判断する（ステップＳ１７０９）。
【０１５９】
ここで、未選択の対象ブロックＴＢがある場合（ステップＳ１７０９：Ｙｅｓ）、画像処理装置１００は、ステップＳ１７０１に戻る。一方、未選択の対象ブロックＴＢがない場合（ステップＳ１７０９：Ｎｏ）、画像処理装置１００は、本フローチャートによる一連の処理を終了して、第１動きベクトル補正処理を呼び出したステップに戻る。これにより、縮小ＭＥの動き予測において得られる第１動きベクトルＶ１を補正することができる。
【０１６０】
＜第２動きベクトル検出処理の具体的処理手順＞
つぎに、図１５に示したステップＳ１５０８の第２動きベクトル検出処理の具体的な処理手順について説明する。
【０１６１】
図１８は、第２動きベクトル検出処理の具体的処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、画像処理装置１００は、対象フレームＴＦから対象ブロックＴＢを選択し（ステップＳ１８０１）、対象ブロックＴＢの第１動きベクトルＶ１を取得する（ステップＳ１８０２）。
【０１６２】
つぎに、画像処理装置１００は、対象ブロックＴＢの第１動きベクトルＶ１が補正されたか否かを判断する（ステップＳ１８０３）。具体的には、例えば、画像処理装置１００は、対象ブロックＴＢの第１動きベクトルＶ１に基づくブロックＢｊのエッジ情報Ｅｊが特定されている場合に、第１動きベクトルＶ１が補正されたと判断することができる。
【０１６３】
ここで、第１動きベクトルＶ１が補正されていない場合（ステップＳ１８０３：Ｎｏ）、画像処理装置１００は、ステップＳ１８０５に移行する。一方、第１動きベクトルＶ１が補正された場合（ステップＳ１８０３：Ｙｅｓ）、画像処理装置１００は、補正後の第１動きベクトルＶ１と対象画素成分ＴＣの方向とに基づいて、参照フレームＲＦ上の探索範囲ＳＲ２を設定する（ステップＳ１８０４）。
【０１６４】
つぎに、画像処理装置１００は、対象ブロックＴＢに対応する探索範囲ＳＲ２内の参照ブロックＲＢごとに、対象ブロックＴＢの画素値と参照ブロックＲＢの画素値との差分を表す評価値Ｖを算出する（ステップＳ１８０５）。なお、第１動きベクトルＶ１が補正されていない場合の探索範囲ＳＲ２は、初期範囲となる。
【０１６５】
そして、画像処理装置１００は、算出した参照ブロックＲＢごとの評価値に基づいて、対象ブロックＴＢの第２動きベクトルＶ２を検出する（ステップＳ１８０６）。つぎに、画像処理装置１００は、対象フレームＴＦから選択されていない未選択の対象ブロックＴＢがあるか否かを判断する（ステップＳ１８０７）。
【０１６６】
ここで、未選択の対象ブロックＴＢがある場合（ステップＳ１８０７：Ｙｅｓ）、画像処理装置１００は、ステップＳ１８０１に戻る。一方、未選択の対象ブロックＴＢがない場合（ステップＳ１８０７：Ｎｏ）、画像処理装置１００は、本フローチャートによる一連の処理を終了して、第２動きベクトル検出処理を呼び出したステップに戻る。
【０１６７】
これにより、補正後の第１動きベクトルＶ１に応じて設定される探索範囲ＳＲ２において、対象ブロックＴＢの第２動きベクトルＶ２を探索することができる。
【０１６８】
（符号化装置１９００の装置構成例）
つぎに、画像処理装置１００を符号化装置１９００に適用した場合の装置構成例について説明する。
【０１６９】
図１９は、符号化装置１９００の装置構成例を示すブロック図である。図１９において、符号化装置１９００は、演算部１９１０と、メモリ部１９２０と、を含む。演算部１９１０は、エッジ検出部１９１１と、画像縮小部１９１２と、縮小ＭＥ部１９１３と、縮小ＭＥ補正部１９１４と、ＭＥ部１９１５と、ＤＣＴ／量子化部１９１６と、逆ＤＣＴ／逆量子化部１９１７と、エントロピー符号化部１９１８と、を含む。また、メモリ部１９２０は、縮小原画バッファ１９２１と、エッジ情報バッファ１９２２と、原画バッファ１９２３と、参照画バッファ１９２４と、を含む。
【０１７０】
符号化装置１９００に入力される入力画像は、原画バッファ１９２３に格納される。入力画像は、圧縮対象（符号化対象）となる画像である。エッジ検出部１９１１は、入力画像のエッジを検出する。エッジ情報は、エッジ情報バッファ１９２２に格納される。画像縮小部１９１２は、入力画像を縮小する。具体的には、例えば、画像縮小部１９１２は、ローパスフィルタとリサンプリングにより、入力画像の縮小画像を生成することができる。縮小画像は、縮小原画バッファ１９２１に格納される。
【０１７１】
縮小ＭＥ部１９１３は、縮小原画バッファ１９２１に格納された縮小画像を用いて動き予測を行う。縮小画像を用いて動き予測では、原画を用いた動き予測に比べて精度は低下するが少ない演算量で広範囲の探索を行うことができる。縮小ＭＥ補正部１９１４は、エッジ情報バッファ１９２２に格納されるエッジ情報と、原画バッファ１９２３に格納される原画とを用いて、縮小ＭＥ部１９１３によって得られる動きベクトルを補正する。
【０１７２】
ＭＥ部１９１５は、原画バッファ１９２３に格納される原画と、参照画バッファ１９２４に格納される参照画とを用いた動き予測を行う。ＭＥ部１９１５は、縮小ＭＥ補正部１９１４による補正後の動きベクトルに基づいて、動き予測を行う際の探索範囲を削減することで演算量を削減する。
【０１７３】
ＤＣＴ／量子化部１９１６は、差分画像を周波数成分に変換し量子化する。逆ＤＣＴ／逆量子化部１９１７は、参照画作成のためのローカルデコード処理を行う。エントロピー符号化部１９１８は、エントロピー符号化処理を行ってビットストリームを生成する。ビットストリームは、圧縮後の動画像ビットストリーム出力である。
【０１７４】
ここで、原画バッファ１９２３に格納される原画は、縮小ＭＥ補正部１９１４およびＭＥ部１９１５で用いられる。このため、ＭＥ部１９１５は、原画バッファ１９２３から原画を読み出すのではなく、縮小ＭＥ補正部１９１４から原画を取得することにしてもよい。すなわち、縮小ＭＥ補正部１９１４が取得した原画データをブロック間転送することにより、原画データの転送帯域が増加することによる影響を排除することができる。
【０１７５】
また、縮小ＭＥ部１９１３で用いられる縮小参照画と、縮小ＭＥ補正部１９１４で用いられるエッジ情報とをまとめて転送することにしてもよい。具体的には、例えば、縮小ＭＥ部１９１３は、縮小参照画とエッジ情報とを一つにまとめた転送情報を一括してメモリ部１９２０から読み出すことにしてもよい。
【０１７６】
この場合、縮小ＭＥ部１９１３と縮小ＭＥ補正部１９１４とのブロック間転送により、縮小ＭＥ部１９１３から縮小ＭＥ補正部１９１４にエッジ情報が転送される。ここで、メモリ部１９２０から一括して読み出される転送情報の具体例について説明する。
【０１７７】
図２０は、転送情報の具体例を示す説明図である。図２０において、転送情報２０００は、参照フレームＲＦの縮小画像から分割されるブロックＢ（４×４画素）についての縮小参照画２０１０と、ブロックＢのエッジ情報Ｅとを含む情報である。
【０１７８】
ここで、縮小参照画２０１０は、ブロックＢについて、４×４画素（ｐｘ）の１６ｂｙｔｅ分の輝度信号（Ｙ）と、２×２画素（ｐｘ）の４ｂｙｔｅ分の色差信号（Ｃｂ）と、２×２画素（ｐｘ）の４ｂｙｔｅ分の色差信号（Ｃｒ）と、を含む。すなわち、縮小参照画２０１０は、２４ｂｙｔｅの情報となる。
【０１７９】
エッジ情報Ｅは、図５に示したように、方向情報５０１（１ｂｙｔｅ）と、画素情報５０２（７ｂｙｔｅ）と、を含む８ｂｙｔｅの情報である。このため、転送情報２０００は、３２ｂｙｔｅ（＝２５６ｂｉｔ）の情報となる。例えば、データ転送のビット幅が３２ｂｙｔｅの場合、転送情報２０００を一度に転送することができる。これにより、縮小ＭＥ補正部１９１４で用いられるエッジ情報Ｅを読み出すためのメモリアクセス回数の増大を防ぐことができる。
【０１８０】
なお、上述した画像処理装置１００の作成部７０２は、例えば、エッジ検出部１９１１に相当する。また、画像処理装置１００の生成部７０３は、例えば、画像縮小部１９１２に相当する。また、画像処理装置１００の第１の検出部７０４は、縮小ＭＥ部１９１３に相当する。また、画像処理装置１００の特定部７０５、第１の設定部７０６、算出部７０７および補正部７０８は、縮小ＭＥ補正部１９１４に相当する。また、画像処理装置１００の第２の設定部７０９および第２の検出部７１０は、ＭＥ部１９１５に相当する。また、画像処理装置１００のメモリ３０２は、メモリ部１９２０に相当する。
【０１８１】
以上説明したように、実施の形態にかかる画像処理装置１００によれば、縮小ＭＥで得られる第１動きベクトルＶ１に基づいて、参照フレームＲＦ上のブロックＢｊのエッジ直交成分ＥＣを特定することができる。また、画像処理装置１００によれば、エッジ直交成分ＥＣに対応する対象フレームＴＦ上の画素列を含む当該画素列に平行な探索範囲ＳＲ１を設定することができる。また、画像処理装置１００によれば、エッジ直交成分ＥＣに対応する探索範囲ＳＲ１内の対象画素成分ＴＣごとに、エッジ直交成分ＥＣの画素値と対象画素成分ＴＣの画素値との差分を表す評価値ｖを算出することができる。また、画像処理装置１００によれば、対象画素成分ＴＣごとの評価値ｖに基づいて、第１動きベクトルＶ１を補正することができる。
【０１８２】
これにより、第１動きベクトルＶ１が指し示す参照フレームＲＦ上の位置として、縮小率ｒの逆数倍よりも細かな単位の位置を得ることができる。具体的には、参照フレームＲＦ上のブロックＢｊのエッジ直交成分ＥＣに平行な方向については、補正前よりも高い位置精度の第１動きベクトルＶ１を得ることができる。
【０１８３】
また、画像処理装置１００によれば、補正後の動きベクトルＶ１が示す参照フレームＲＦ上の点を中心として、対象画素成分ＴＣに直交する方向の幅に比べて、対象画素成分ＴＣに平行な方向の幅が狭い矩形領域を探索範囲ＳＲ２に設定することができる。これにより、詳細ＭＥにおける探索範囲ＳＲ２として、参照フレームＲＦ上での位置精度が高いエッジ直交成分ＥＣに平行な方向について初期範囲よりも狭めた範囲を設定することができる。
【０１８４】
また、画像処理装置１００によれば、対象ブロックＴＢに対応する探索範囲ＳＲ２内の参照ブロックＲＢごとに、対象ブロックＴＢの画素値と参照ブロックＲＢの画素値との差分を表す評価値Ｖを算出することができる。そして、画像処理装置１００によれば、参照ブロックＲＢごとの評価値Ｖに基づいて、対象ブロックＴＢの第２動きベクトルＶ２を検出することができる。
【０１８５】
これにより、初期範囲よりも限定した範囲で詳細ＭＥを行うことができ、ピクセル単位の高精度な動き予測にかかる演算量を削減することができる。
【０１８６】
また、画像処理装置１００によれば、第１動きベクトルＶ１が示す参照フレームＲＦ上の位置に配置した対象ブロックＴＢとの重なり度合いが最大となるブロックＢｊのエッジ直交成分ＥＣを特定することができる。これにより、対象ブロックＴＢ（対象画素成分ＴＣ）とエッジ直交成分ＥＣとのブロックマッチを行うことができる確率を高めることができる。
【０１８７】
なお、本実施の形態で説明した補正方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本補正プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本補正プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８８】
また、本実施の形態で説明した画像処理装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した画像処理装置１００の機能をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、画像処理装置１００を製造することができる。
【０１８９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１９０】
（付記１）処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出する検出部と、
前記検出部によって検出された前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定する設定部と、
前記設定部によって設定された前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出する算出部と、
前記算出部によって算出された前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する補正部と、
を有することを特徴とする画像処理装置。
【０１９１】
（付記２）前記補正部によって補正された補正後の第１動きベクトルと前記第２画素成分の方向とに基づいて、前記参照フレーム上の第２探索範囲を設定する第２の設定部と、
前記第２の設定部によって設定された前記第２探索範囲において、前記対象ブロックに対応する前記第２探索範囲内の参照ブロックごとに、前記対象ブロックの画素値と前記参照ブロックの画素値との差分を表す評価値を算出する第２の算出部と、
前記第２の算出部によって算出された前記参照ブロックごとの評価値に基づいて、前記対象ブロックの第２動きベクトルを検出する第２の検出部と、
を有することを特徴とする付記１に記載の画像処理装置。
【０１９２】
（付記３）前記第２の設定部は、
前記補正後の第１動きベクトルが示す前記参照フレーム上の点を中心として、前記第２画素成分に直交する方向の幅に比べて、前記第２画素成分に平行な方向の幅が狭い矩形領域を前記第２探索範囲に設定することを特徴とする付記２に記載の画像処理装置。
【０１９３】
（付記４）前記第１動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと前記参照フレーム上のブロックとの重なり度合いに基づいて、前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分を特定する特定部を有し、
前記設定部は、
前記特定部によって特定された前記第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定することを特徴とする付記１〜３のいずれか一つに記載の画像処理装置。
【０１９４】
（付記５）前記参照フレームを区切って分割されたブロックごとに、前記ブロックのエッジを検出することにより、前記ブロックのエッジ方向を示す方向情報と、当該エッジ方向に略直交する画素成分の画素値と、を含むエッジ情報を作成する作成部を有し、
前記特定部は、
前記作成部によって作成された前記ブロックごとのエッジ情報を参照して、前記第１動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと、前記参照フレーム上のブロックのエッジ方向に略直交する画素成分との重なり度合いが最大となるブロックのエッジ方向に略直交する画素成分を前記第１画素成分として特定し、
前記算出部は、
前記設定部によって設定された前記探索範囲において、前記特定部によって特定された前記第１画素成分の画素値を含むエッジ情報に基づいて、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出することを特徴とする付記４に記載の画像処理装置。
【０１９５】
（付記６）前記評価値は、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）またはＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）またはＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）であることを特徴とする付記１〜５のいずれか一つに記載の画像処理装置。
【０１９６】
（付記７）コンピュータが、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、
検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、
算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する、
処理を実行することを特徴とする補正方法。
【０１９７】
（付記８）コンピュータに、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、
検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、
算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する、
処理を実行させることを特徴とする補正プログラム。
【０１９８】
（付記９）コンピュータに、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第１動きベクトルを検出し、
検出した前記第１動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第１画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第１画素成分に対応する前記探索範囲内の第２画素成分ごとに、前記第１画素成分の画素値と前記第２画素成分の画素値との差分を表す評価値を算出し、
算出した前記第２画素成分ごとの評価値に基づいて、前記第１動きベクトルを補正する、
処理を実行させる補正プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
【符号の説明】
【０１９９】
１００  画像処理装置
７０１  入力部
７０２  作成部
７０３  生成部
７０４  第１の検出部
７０５  特定部
７０６  第１の設定部
７０７  算出部
７０８  補正部
７０９  第２の設定部
７１０  第２の検出部
７１１  出力部
【図１】
2015012548.tif 000005
【図２】
2015012548.tif 000006
【図３】
2015012548.tif 000007
【図４】
2015012548.tif 000008
【図５】
2015012548.tif 000009
【図６】
2015012548.tif 000010
【図７】
2015012548.tif 000011
【図８】
2015012548.tif 000012
【図９】
2015012548.tif 000013
【図１０】
2015012548.tif 000014
【図１１】
2015012548.tif 000015
【図１２】
2015012548.tif 000016
【図１３】
2015012548.tif 000017
【図１４】
2015012548.tif 000018
【図１５】
2015012548.tif 000019
【図１６】
2015012548.tif 000020
【図１７】
2015012548.tif 000021
【図１８】
2015012548.tif 000022
【図１９】
2015012548.tif 000023
【図２０】
2015012548.tif 000024