(57)【要約】【課題】参照画像記憶部の容量の抑制、符号化効率の向上、及び記憶部からの読出データ量の抑制の各々をバランスよく実現する。【解決手段】処理対象フレーム画像を第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、参照画像記憶部を介さずに記憶部から参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、第２動きベクトルよりも第１動きベクトルの方が符号化効率が高い（ステップ１０４、Ｙｅｓ）ブロックを、第１動きベクトルを用いて第２動き探索を行う特定ブロックとして判定し（ステップ１１２）、特定ブロック以外のブロックを、第２動きベクトルを用いて第２動き探索を行う非特定ブロックとして判定する（ステップ１１４）。【選択図】図９
2014042139.tif 000002
【特許請求の範囲】
【請求項１】
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行う第１動き探索部と、
前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部と、
前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、
前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させる制御部と、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを、前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックとして判定し、前記特定ブロック以外のブロックを、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックとして判定する判定部と、
前記判定部において前記特定ブロックと判定されたブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記判定部において前記非特定ブロックと判定されたブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う第２動き探索部と、
を備えた符号化装置。
【請求項２】
前記判定部は、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い順に上位Ｎ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）のブロックを前記特定ブロックとして判定するか、又は、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い方から順に前記直接読出データ量を累計したときの累計値が前記上限値を越えない範囲内で、前記第１動きベクトルの符号化効率が高いブロックから順に前記特定ブロックとして判定する
請求項１に記載の符号化装置。
【請求項３】
前記判定部は、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックについて、各ブロックの第１動きベクトルの符号化効率を示す値の度数分布又はヒストグラムを生成し、前記生成した度数分布又はヒストグラムの前記値が示す符号化効率が高い順に上位の階級から度数を加算していき、度数の累計値がＮ（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定するか、又は、前記値が示す符号化効率が高い順に上位の階級から各ブロックの前記直接読出データ量を加算していき、その累計値が前記上限値を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定する
請求項１に記載の符号化装置。
【請求項４】
前記判定部は、
前記複数のブロックのうち、既に前記特定ブロックと判定されたブロックを除くブロックから、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを抽出し、該抽出したブロックの中で前記第１動きベクトルの符号化効率が最も高いブロックを前記特定ブロックとして判定する第１判定処理と、
前記第１判定処理が１回実行される毎に、両隣が前記特定ブロックとされたブロックを選択し、該選択したブロックの各々について、前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される第３探索範囲が、前記両隣の特定ブロックが前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される探索範囲の各々と、前記両隣が前記特定ブロックとされたブロックの前記第２動き探索の処理中に前記参照画像記憶部に記憶されている範囲との合成範囲に含まれるか否かを判定し、前記第３探索範囲が前記合成範囲に含まれると判定したブロックを、前記特定ブロックとして判定する第２判定処理とを、
前記第１の判定処理においてＮ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）の特定ブロックが判定されるまで繰り返し行うか、又は、前記第１判定処理で前記特定ブロックと判定されたブロックの前記直接読出データ量の合計値が前記上限値を越えない範囲内で繰り返し行う
請求項１に記載の符号化装置。
【請求項５】
前記制御部は、前記第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性がない参照画像を前記参照画像記憶部から消去し、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性があるものの、前記参照画像記憶部に未だ記憶されていない参照画像を前記記憶部から読出して前記参照画像記憶部に記憶する制御を行う
請求項１〜請求項４の何れか１項記載の符号化装置。
【請求項６】
前記制御部は、前記第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、該切替以降に処理対象とされる各ブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性がない参照画像を前記参照画像記憶部から消去し、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性があるものの、前記参照画像記憶部に未だ記憶されていない参照画像を前記記憶部から読出して前記参照画像記憶部に記憶する
請求項１〜請求項４の何れか１項記載の符号化装置。
【請求項７】
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行い、
前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部に、前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させ、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを、前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックとして判定し、前記特定ブロック以外のブロックを、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックとして判定し、
前記特定ブロックと判定されたブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記非特定ブロックと判定されたブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う、
符号化方法。
【請求項８】
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行う第１動き探索部、前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部、前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、
前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させる制御部、及び前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う第２動き探索部、を備えた装置の前記第１動き探索部の処理結果を取得するコンピュータに、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを前特定ブロックとして判定し、前記特定ブロック以外のブロックを前記非特定ブロックとして判定し、該判定結果を前記第２動き探索部に供給する
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、動画像の符号化装置、符号化方法、及びプログラムに関する。
【背景技術】
【０００２】
動き探索処理は、処理対象となっているブロック（ここでは、元ブロックと呼ぶ）と類似したブロックを参照画像の中から探し出す処理である。例えば、まず、参照画像の中から元ブロックと同じサイズの多数の候補ブロックを抽出する。次に、各候補ブロックについて元ブロックとの類似度の評価指標（ＳＡＤ（差分絶対値和）や動きベクトルから求められる符号化コスト等、又は複数の評価指標を組み合わせて得られる値）を算出する。そして、該算出した評価指標値に基づき、最も良いと評価された候補ブロックを指し示す動きベクトルを出力する。
【０００３】
フレーム間予測による符号化効率を向上させるためには、動き探索処理において、より元ブロックに類似した候補ブロックを抽出することが求められる。それには候補ブロックを抽出する画像領域（以下、探索範囲と呼ぶ）が広いほど望ましい。しかし、探索範囲を広げれば広げるほど元画像との間の類似度の評価指標を算出する回数が増大し、動き探索処理に要する演算量、フレームメモリに格納された参照画像から候補ブロックを取り出すときの読出データ量が増加し、メモリ帯域を圧迫する。動き探索処理の演算量、及びメモリからの読出処理は、動画像の符号化処理全体の中で相当の割合を占めるため、これを削減する様々な技術が存在する。
【０００４】
参照画像を記憶する主記憶部と、動き探索を行う動き探索部と、の間に、参照バッファメモリ（以下、参照画像記憶部という）を設ける技術が知られている。参照画像記憶部には、フレームバッファメモリ（以下、単に記憶部という）から部分的に読出された参照画像が転送され記憶される。動き探索部は、参照画像を参照画像記憶部から読出して、動き探索を行う。これにより、参照画像の読み込みに要する記憶部の帯域が抑制される。
【０００５】
また、動き探索の手法の１つとして、階層探索法も知られている。例えば、一段階目の動き探索では原画像を縮小した画像等を用いて、広い探索範囲についておおよその動きベクトルを導出する。二段階目の動き探索では原画像と参照画像とを用いて、一段階目の動き探索結果の動きベクトルが指す点を中心とした狭い探索範囲について詳細に動き予測を行う。この階層探索法では、多数の候補領域との間で類似度指標の算出を行う一段階目の動き予測を縮小画像で行うため、演算量を大幅に削減可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１５２７１０号公報
【特許文献２】特開２０１２−４７１０号公報
【特許文献３】特開平７−２０３４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記参照画像記憶部を使用する技術では、参照画像内の複数の処理ブロックラインを参照画像記憶部に保持する必要があるため、その容量は大きなものとなる。メモリ容量を削減するには動き探索処理の探索範囲を狭めることが望ましい。一方、符号化効率の観点からは探索範囲は広くすることが望ましい。
【０００８】
開示の技術は、一つの側面として、参照画像記憶部の容量の抑制、符号化効率の向上、及び記憶部からの読出データ量の抑制の各々をバランスよく実現することを目的とする。
【課題を解決するための手段】
【０００９】
開示の技術において、第１動き探索部は、第１処理及び第２処理を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行う。第１動き探索部は、第１処理では、縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める。第１動き探索部は、第２処理では、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める。
【００１０】
また、参照画像記憶部は、前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する。
【００１１】
制御部は、前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させる。このとき、制御部は、各ブロック毎に、前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を前記参照画像記憶部に記憶させる。
【００１２】
判定部は、前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを特定ブロックとして判定する。特定ブロックは、前記第１動きベクトルを用いて前記第２動き探索を行うブロックである。なお、判定部は、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記特定ブロックを判定する。
【００１３】
また、判定部は、前記特定ブロック以外のブロックを、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックとして判定する。
【００１４】
第２動き探索部は、前記判定部において前記特定ブロックと判定されたブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う。なお、第２動き探索部は、少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照する。
【００１５】
また、第２動き探索部は、前記非特定ブロックと判定されたブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する第２動き探索を行う。
【発明の効果】
【００１６】
開示の技術は、一つの側面として、参照画像記憶部の容量の抑制、符号化効率の向上、及び記憶部からの読出データ量の抑制の各々をバランスよく実現することができる、という効果を有する。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る符号化装置の概略構成図である。
【図２】第１動き探索部の概略構成図である。
【図３】参照画像メモリ回路の概略構成図である。
【図４】第２動き探索部の概略構成図である。
【図５】処理対象のブロックＢ１についての第２動き探索の処理開始直前の参照画像メモリの記憶状態を模式的に示す図である。
【図６】ブロックＢ１の次に処理対象とされるブロックＢ２についての第２動き探索の処理開始直前の参照画像メモリの記憶状態を模式的に示す図である。
【図７】図５及び図６に示す更新制御例とは異なる更新制御例において、処理対象のブロックＢ１についての第２動き探索の処理開始直前の参照画像メモリの記憶状態を模式的に示す図である。
【図８】図５及び図６に示す更新制御例とは異なる更新制御例において、ブロックＢ１の次に処理対象とされるブロックＢ２についての第２動き探索の処理開始直前の参照画像メモリの記憶状態を模式的に示す図である。
【図９】判定部により実行される判定処理の一例を示すフローチャートである。
【図１０】特定ブロック判定処理の一例を示すフローチャートである。
【図１１】符号化装置の各構成要素の処理のタイミングを示すタイミングチャートの一例を示す図である。
【図１２】特定ブロック判定処理の他の例を示すフローチャートである。
【図１３】合成範囲を例示した図である。
【図１４】特定ブロック判定処理の他の例を示すフローチャートである。
【図１５】図１４で示した特定ブロック判定処理の内容を各ステップ毎に模式的に示した模式図である。
【図１６】４つのブロックｗ、ｘ、ｙ、ｚの配置例を示す図である。
【図１７Ａ】３つのブロックの配置例及び各ブロックの探索範囲の一例を示す図である。
【図１７Ｂ】図１７Ａに示す各ブロックの処理期間毎に、参照バッファに保持される領域を模式的に表わした図である。
【図１８】動き探索及びメインメモリへのアクセスをパイプライン的に処理を行う様子を示す図である。
【図１９】特定ブロック判定処理の他の例を示すフローチャートである。
【図２０】符号化装置の判定部の機能をコンピュータにより実現し、第１動き探索部及び主符号化処理部の機能を、コンピュータに設けられた符号化部により実現する場合の構成図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１９】
図１には、本実施形態に係る符号化装置１が示されている。符号化装置１は、例えばＭＰＥＧ２やＨ．２６４等の規格に従って動画像を符号化する装置であって、縮小部１０、第１動き探索部１１、判定部１２、主符号化処理部１３、メモリコントローラ１４、メインメモリ１５を備えている。なお、符号化装置１の各機能部は例えば電子回路等で実現することができ、例えば半導体集積回路、より詳しくはＡＳＩＣ(Application Specific Integrated Circuit)等で実現してもよい。
【００２０】
メインメモリ１５は、例えば、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)等のメモリモジュールとすることができる。メインメモリ１５には、縮小画メモリ１６、原画メモリ１７、及びフレームメモリ１８の各記憶領域が設けられている。
【００２１】
メインメモリ１５は、メモリコントローラ１４に接続されている。メモリコントローラ１４は、書込要求や読出要求を受信して、該受信した要求に応じてメインメモリ１５に対する読み書き（メモリ制御）を行う。
【００２２】
縮小部１０及び第１動き探索部１１は、二段階の動き探索処理を含むフレーム間予測符号化処理において、一段階目の動き探索（以下、第１動き探索という）を行うための構成要素である。ここで、フレーム間予測符号化は、異なる時刻のフレーム画像に基づいて予測画像を生成し、符号化対象の画像と予測画像の差分（誤差）画像を符号化する周知の方法である。
【００２３】
縮小部１０には、符号化処理前の動画像に含まれるフレーム画像（以下、符号化処理後のフレーム画像と区別するため、原画像と呼称する）が入力される。縮小部１０は、原画像を縮小した縮小画像を生成し、メモリコントローラ１４を介してメインメモリ１５の縮小画メモリ１６に記憶する。
【００２４】
なお、原画像は、メモリコントローラ１４を介してメインメモリ１５の原画メモリ１７にも記憶される。
【００２５】
第１動き探索部１１は、メモリコントローラ１４を介して縮小画メモリ１６から縮小画像を読出し、該読出した縮小画像を用いて動き探索を行う。以下、第１動き探索部１１が行う動き探索を第１動き探索と呼称する。
【００２６】
第１動き探索部１１は、第１動き探索の処理単位として予め定められたブロック（領域）毎に、第１動き探索を行う。第１動き探索部１１は、参照フレーム画像を部分的に参照して第１動き探索を行う。本実施形態において、参照フレーム画像は、処理対象のブロックを含む原画像（処理対象フレーム画像）と異なる時刻の原画像を縮小した縮小画像とされる。第１動き探索では、縮小画像内の第１探索範囲の画像を参照して動きベクトルを探索する第１処理と、縮小画像内の第２探索範囲の画像を参照して動きベクトルを探索する第２処理とが行われる。ここで、動きベクトルとは、参照フレーム画像から選択されたブロックと処理対象のブロックとの相対的な位置関係（ずれ量及びずれ方向）を示すデータをいう。また、ブロックとは、画像を複数の領域に分割したときの各領域、或いは各領域の画像をいう。なお、第２探索範囲は、第１探索範囲より小さく第１探索範囲に含まれるものとする。第１探索範囲のサイズ及び位置と、第２探索範囲のサイズ及び位置は、処理対象のブロックのサイズ及び位置に応じて予め定められている。
【００２７】
また、第１動き探索では、左から右へ向かう方向へ処理対象のブロックが順次切替えられる。また、画像の右端のブロックまで処理が終了すると、１ライン下の行の左端のブロックに処理対象が切替えられる。また、第１動き探索の処理対象とされるブロックは、例えば符号化装置１に信号発生部を設け、信号発生部により所定の時間間隔で発生した切替信号により順次切替えられることができる。
【００２８】
図２に、第１動き探索部１１の概略構成図の一例を示す。第１動き探索部１１は、保持部３６、制御部３７、算出部３８、原画バッファ３９、及び参照バッファ４０を備えている。
【００２９】
制御部３７は、信号発生部から所定の時間間隔で発生する切替信号を受信する等により切替えタイミングが到来すると、第１動き探索部１１を構成する各構成要素を制御して、第１動き探索の処理対象が次のブロックに切替わるようにする。また、メモリコントローラ１４に対して読出要求を出力する。これにより、メインメモリ１５の縮小画メモリ１６から、切替えにより次に第１動き探索の処理対象とされる原画像の縮小画像内のブロックの画像が読出されて原画バッファ３９に蓄積される。また、メインメモリ１５から、切替え以前に処理対象とされた原画像の縮小画像内の第１探索範囲に対応する画像が参照画像として参照バッファ４０に蓄積される。
【００３０】
具体的には、制御部３７は、メモリコントローラ１４に対する読出要求に読出対象の範囲、及び読出した画像の格納先アドレスを含めて出力し、原画バッファ３９及び参照バッファ４０の更新を行う。メモリコントローラ１４は、読出要求により指定された読出対象の範囲の縮小画像を読出して、読出要求により指定された格納先アドレスに格納する。
【００３１】
原画バッファ３９及び参照バッファ４０は、例えば、ＦＩＦＯメモリ（先入れ先出し型メモリ）としてもよい。この場合、不要となったブロックの記憶領域が未使用領域とされ、メインメモリ１５から読出された画像を記憶する記憶先となり得る。
【００３２】
さらに、制御部３７は、算出部３８での評価値算出対象となり、保持部３６で保持される対象となる動きベクトルを次々に生成して、算出部３８及び保持部３６へと送る。
【００３３】
算出部３８は、原画バッファ３９に記憶されている処理対象のブロックの画像と、参照バッファ４０に記憶されている処理対象とは異なる時刻の参照フレーム画像内の第１探索範囲から、制御部３７から送られてきた動きベクトルを元に選択されたブロック（以下、候補ブロックという）とを比較する。そして、算出部３８は、各候補ブロックと、処理対象のブロックとの類似度の評価値として、ＳＡＤ（差分絶対値和：Sum of Absolute Differences）を算出する。
【００３４】
なお、第２探索範囲は第１探索範囲に含まれるため、算出部３８は、第２探索範囲に含まれる各候補ブロックについてＳＡＤを別途算出しなくてもよい。また、ここでは、算出部３８がＳＡＤを算出する例について説明したが、ＳＳＤ（差分二乗和：Sum of Squared Differences）、ＳＡＴＤ（Sum of Absolute Transformed Differences）等、他の評価値を算出するようにしてもよい。また、動きベクトルの影響を考慮した評価値を算出するようにしても良い。また、他の周知の技術を用いて良い。
【００３５】
保持部３６は、各ブロックで最初に制御部３７から送られてくる動きベクトルと、この動きベクトルを元に算出部３８で算出された評価値とを無条件で第１処理結果候補として保持する。以降は、算出部３８から評価値が送られてくるごとに、保持されている第一処理結果候補の評価値と比較する。比較の結果、新たに送られてきた評価値が保持されている評価値よりも良かった場合は、その評価値と、その評価値に対応する動きベクトルとで第一処理結果候補を更新する。この処理を制御部３７から送られる全てのベクトルと、そのベクトルについて算出部３８で算出された評価値について繰り返すことで、最終的には、このブロックの動きベクトル候補の中で最良の評価値を示す動きベクトルと対応する評価値とが第１処理結果候補が保持されるので、該保持されている第１処理結果候補がこのブロックにおける第１動き探索の第１処理の動きベクトル及び評価値として選択される。
【００３６】
また、保持部３６は、第２処理においては、制御部３７から送られてくる動きベクトルのうち第２探索範囲に属するものと、その動きベクトルについて算出部３８で算出される評価値とについてのみ、上記保持部３６の第１処理の動作説明において述べた「最初の候補の保持」と、「より良い評価値を示した値での更新」とを行う。第２処理においても、保持され更新される候補（第２処理結果候補）は、第１処理結果候補同様に動きベクトルと評価値との組とされる。最終的には、このブロックの第２探索範囲内の動きベクトル候補の中で最良の評価値を示す動きベクトルと対応する評価値とが第２処理結果候補として保持されるので、該保持されている第２処理結果候補がこのブロックにおける第１動き探索の第２処理の動きベクトル及び評価値として選択される。
【００３７】
以下では、第１処理で探索された動きベクトルを第１動きベクトルと呼称し、第２処理で探索された動きベクトルを第２動きベクトルと呼称する。また、第１動きベクトルに対応するＳＡＤを第１評価値と呼称し、第２動きベクトルに対応するＳＡＤを第２評価値と呼称する。第１動きベクトル、第１評価値、第２動きベクトル、及び第２評価値の各々は、判定部１２に出力される。
【００３８】
なお、判定部１２に出力される第１評価値及び第２評価値は、ＳＡＤではなくＳＳＤ、ＳＡＴＤ、動きベクトルの影響を考量した評価値、その他周知の技術によるものなど、符号化効率を示すと考えられる値であれば特に限定されない。
【００３９】
このように、第１動き探索部１１では、第１動き探索に縮小画像を用いるため、演算量が大幅に削減され、動き探索が効率化する。
【００４０】
なお、本実施形態では、第１動き探索において、処理対象のブロックが含まれる処理対象フレーム画像とは異なる時刻のフレーム画像の縮小画像が参照フレーム画像として用いられたが、これに限定されない。例えば、第１動き探索において、処理対象のブロックが含まれる処理対象フレーム画像とは異なる時刻のフレーム画像の復号画像の縮小画像を、参照フレーム画像として用いてもよい。復号画像は、後述する主符号化処理部１３において生成される。
【００４１】
第１動き探索部１１で探索された第１動きベクトル及び第２動きベクトルの何れかが後述する主符号化処理部１３において行われる第２動き探索に用いられるが、どちらの動きベクトルを用いるかは、判定部１２の判定結果に依存する。
【００４２】
判定部１２は、１つのフレーム画像に含まれる第２動き探索の処理単位となる複数のブロックの各々が、第１動きベクトルを用いて第２動き探索を行うブロック（以下、特定ブロックという）と、第２動きベクトルを用いて第２動き探索を行うブロック（以下、非特定ブロックという）の何れであるかを判定する。判定方法の具体例は後述する。判定部１２は、判定結果として、特定ブロックと判定したブロックについては、第１動きベクトルを主符号化処理部１３に出力し、非特定ブロックと判定したブロックについては、第２動きベクトルを主符号化処理部１３に出力する。以下、第１動きベクトル及び第２動きベクトルのうち、判定部１２から判定結果として出力された動きベクトルを判定動きベクトルと呼称する。
【００４３】
主符号化処理部１３は、予測誤差画像生成部２０、直交変換・量子化部２１、逆直交変換・逆量子化部２２、復号画像生成部２３、フィルタ部２４、第２動き探索部２５、及びフレーム間予測部２６を備えている。更にまた、主符号化処理部１３は、参照画像メモリ回路２７、フレーム内予測モード決定部２８、フレーム内予測部２９、切替部３０、及びエントロピー符号化部３１も備えている。
【００４４】
予測誤差画像生成部２０には、原画像が符号化対象として供給される。
【００４５】
また、予測誤差画像生成部２０には、フレーム間予測部２６或いはフレーム内予測部２９からから予測画像が供給される。予測画像については後述する。予測誤差画像生成部２０は、符号化対象の画像と、予測画像との差分を示す差分情報を演算し、この差分情報を予測誤差画像の情報として直交変換・量子化部２１に供給する。このように、予測誤差画像生成部２０において予測誤差画像が生成される。
【００４６】
直交変換・量子化部２１は、供給された予測誤差画像の情報に変換処理を施し、予測誤差画像を水平及び垂直方向の周波数成分に分離する。更に、直交変換・量子化部２１は、変換処理で得られた各周波数成分の情報を量子化する。直交変換・量子化部２１は、該情報を量子化することにより予測誤差画像の符号量を低減する。直交変換・量子化部２１は、量子化後の情報を逆直交変換・逆量子化部２２及びエントロピー符号化部３１に供給する。
【００４７】
逆直交変換・逆量子化部２２は、直交変換・量子化部２１からから供給された情報を逆量子化した後、逆変換処理する。ここで、逆変換処理とは、直交変換・量子化部２１で行われる変換処理と逆方向に変換する処理をいう。
【００４８】
逆直交変換・逆量子化部２２によって復号処理が行われることにより、符号化前の予測誤差画像と対応する誤差画像の情報が得られる。該情報を再生予測誤差画像と呼称する。
【００４９】
復号画像生成部２３には、逆直交変換・逆量子化部２２で生成された再生予測誤差画像が供給される。また、復号画像生成部２３には、フレーム間予測部２６或いはフレーム内予測部２９から予測画像が供給される。復号画像生成部２３は、再生予測誤差画像と予測画像とを加算することにより、符号化対象の画像を復号した画像（復号画像）を生成する。生成された復号画像は、フィルタ部２４に出力される他、フレーム内予測符号化（後述）においてはフレーム内予測モード決定部２８及びフレーム内予測部２９にも出力される。
【００５０】
フィルタ部２４は、復号画像生成部２３で生成された復号画像にフィルタ処理を施し、メモリコントローラ１４を介してメインメモリ１５のフレームメモリ１８に格納する。符号化処理は、ブロック単位で処理されるため、ブロックの境界部分にノイズが生じることがある。フィルタ部２４は、該符号化により生じたノイズを低減する。
【００５１】
フレームメモリ１８は、フィルタ部２４から供給された復号画像の各々が蓄積されるメモリである。フレームメモリ１８に蓄積された復号画像は、後述する第２動き探索部２５及びフレーム間予測部２６において、他のフレーム画像を符号化するときの動きベクトル検出や動き補償等で参照される。復号画像を参照する際には、後述する参照画像メモリ回路２７を介して参照する場合と、フレームメモリ１８から直接読出して参照する場合とがある。詳細は後述する。
【００５２】
フレーム内予測モード決定部２８及びフレーム内予測部２９は、フレーム内予測符号化方法で符号化を行うときの予測画像をブロック単位で生成するための構成要素である。ここで、フレーム内予測符号化方法は、他のフレーム画像を用いず、符号化対象となるフレーム画像の情報のみで画像を符号化・復号する方法である。具体的には、１枚のフレーム画像を複数のブロックに分割したときの符号化対象のブロックの周辺のブロックの画像から、所定方向に沿って近傍の画像の動きを推定して、符号化対象のブロックの画像を予測し、符号化対象のブロックの画像との差分を符号化する。
【００５３】
フレーム内予測モード決定部２８は、符号化対象の原画像に応じて、フレーム内予測符号化方法で符号化を行うときの予測モードを決定する。
【００５４】
フレーム内予測部２９は、フレーム内予測モード決定部２８で決定された予測モードで、フレーム内予測モード決定部２８を介して入力された原画像に基づき、符号化対象のブロックの画像を予測して、該予測した予測画像を出力する。
【００５５】
第２動き探索部２５、フレーム間予測部２６、及び参照画像メモリ回路２７は、二段階の動き探索処理を含むフレーム間予測符号化処理において、二段階目の動き探索（以下、第２動き探索という）を行うための構成要素である。なお、第２動き探索では、前述した復号画像が参照フレーム画像とされ、該参照フレーム画像が部分的に参照されて動き探索が行われる。復号画像は、縮小せず等倍で用いられる。
【００５６】
また、第２動き探索でも、第１動き探索と同様に、処理対象フレーム内で左から右へ向かう方向へ処理対象のブロックが順次切替えられる。また、画像の右端のブロックまで処理が終了すると、１ライン下の行の左端のブロックに処理対象が切替えられる。また、第２動き探索の処理対象とされるブロックは、例えば第２動き探索部２５に信号発生部を設け、該信号発生部により所定の時間間隔で発生した切替信号により順次切替えられるようにしてもよい。
【００５７】
なお、第１動き探索の処理単位のブロックを元の倍率に戻したときのサイズと、第２動き探索の処理単位のブロックのサイズは、同じであってもよいし、異なっていてもよい。以下では、第１動き探索の処理単位のブロックの元の倍率に戻したときのサイズと、第２動き探索の処理単位のブロックのサイズとが同じである場合を例に挙げて説明する。
【００５８】
参照画像メモリ回路２７は、図３に示すように、制御部４１及び参照画像メモリ４２を備えている。参照画像メモリ４２は、例えば、ＳＲＡＭ（Static Random Access Memory）等のメモリモジュールとすることができ、復号画像が記憶されるフレームメモリ１８から部分的に読出された画像が参照画像として記憶される。参照画像メモリ４２は、制御部４１に接続されている。制御部４１は、参照画像メモリ４２に対する読み書き（メモリ制御）を行う。
【００５９】
参照画像メモリ４２には、第２動き探索において、処理対象のブロックを非特定ブロックとしたときに探索範囲として設定される可能性がある範囲（以下、設定可能範囲という）の画像が参照画像として記憶される。設定可能範囲は、第１動き探索で用いられた第２探索範囲を含み、該第２探索範囲よりも若干大きなサイズとすることもできる。例えば、第２探索範囲より数画素分外側の範囲が設定可能範囲としてもよい。ただし、設定可能範囲は第１探索範囲よりも小さい。
【００６０】
参照画像メモリ回路２７の制御部４１は、切替えタイミングが到来すると、少なくとも切替直後に第２動き探索の処理対象とされるブロックに対応する設定可能範囲の参照画像が参照画像メモリ４２に記憶された状態となるように更新制御を行うものとする。制御部４１は、参照画像メモリ４２の更新制御として、メモリコントローラ１４に対して読出要求を出力して、必要な範囲の参照画像を取得し、参照画像メモリ４２に書込む（記憶する）と共に、参照画像メモリ４２から不要な範囲の参照画像を消去する制御を行う。
【００６１】
ここで、参照画像メモリ４２の更新制御の一例について、図５及び図６を参照して説明する。
【００６２】
図５は、処理対象のブロックＢ１についての第２動き探索の処理開始直前の参照画像メモリ４２の記憶状態を模式的に示す図である。また、図６は、ブロックＢ１の次に処理対象とされるブロックＢ２についての第２動き探索の処理開始直前の参照画像メモリ４２の記憶状態を模式的に示す図である。
【００６３】
図５において、領域８０は、処理対象ブロックＢ１と同位置のブロックを示す。領域８１は、ブロックＢ１の設定可能範囲を示す。領域８２は、参照画像メモリ４２に記憶されている領域である。領域８２は、ブロックＢ１より前に処理対象とされた各ブロックの設定可能範囲を合成した合成範囲のうち、ブロックＢ１及びブロックＢ１より後に処理対象とされるブロックの設定可能範囲の何れかと重複する領域でもある。
【００６４】
領域８３は、処理対象ブロックＢ１の処理が終了して、次のブロックＢ２の処理を開始する直前に参照画像メモリ４２に追加される領域である。領域８４は、領域８３の追加と同時に参照画像メモリ４２から消去される領域である。
【００６５】
次に、図６において、領域８５は、処理対象ブロックＢ２と同位置のブロックを示す。領域８６は、ブロックＢ２の設定可能範囲を示す。領域８７は、参照画像メモリ４２に記憶されている領域である。領域８８は、ブロックＢ２より前に処理対象とされた各ブロックの設定可能範囲を合成した合成範囲のうち、ブロックＢ２及びブロックＢ２より後に処理対象とされるブロックの設定可能範囲の何れかと重複する。
【００６６】
領域８８は、処理対象ブロックＢ２の処理が終了して、次のブロックＢ３の処理を開始する直前に参照画像メモリ４２に追加される領域である。領域８９は、領域８８の追加と同時に参照画像メモリ４２から消去される領域である。
【００６７】
図５及び図６から明らかなように、第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、該切替以降に処理対象とされる各ブロックの設定可能範囲の何れにも含まれない参照画像が参照画像メモリ４２から消去される。また、次のブロックの設定可能範囲には含まれるものの、参照画像メモリ４２に未だ記憶されていない参照画像がフレームメモリ１８から読出されて参照画像メモリ４２に記憶される。なお、例えば、消去すべき参照画像が記憶されている領域に、上述した新たに追加する参照画像を上書きすることで、参照画像を消去することができる。
【００６８】
上記図５及び図６を参照して説明した更新制御方法では、あるブロックの探索範囲として使用された参照画像領域が、何れのブロックの探索範囲でも使用されなくなるまで参照画像メモリ４２内に残る構成とされる。従って、フレームメモリ１８に対するアクセス量（読出データ量）を抑制できる。
【００６９】
次に、参照画像メモリ４２への更新制御の他の例について、図７及び図８を参照して説明する。
【００７０】
図７は、処理対象のブロックＢ１についての第２動き探索の処理開始直前の参照画像メモリ４２の記憶状態を模式的に示す図である。また、図８は、ブロックＢ１の次に処理対象とされるブロックＢ２についての第２動き探索の処理開始直前の参照画像メモリ４２の記憶状態を模式的に示す図である。
【００７１】
図７において、領域９０は、処理対象ブロックＢ１と同位置のブロックを示す。領域９１は、ブロックＢ１の設定可能範囲を示す。領域９２は、参照画像メモリ４２に記憶されている領域である。領域９２は、ブロックＢ１の設定可能範囲に等しい。
【００７２】
領域９３は、処理対象ブロックＢ１の処理が終了して、次のブロックＢ２の処理を開始する直前に参照画像メモリ４２に追加される領域である。領域９４は、領域９３の追加と同時に参照画像メモリ４２から消去される領域である。
【００７３】
次に、図６において、領域９５は、処理対象ブロックＢ２と同位置のブロックを示す。領域９６は、ブロックＢ２の設定可能範囲を示す。領域９７は、参照画像メモリ４２に記憶されている領域である。領域９６は、ブロックＢ２の設定可能範囲に等しい。
【００７４】
領域９８は、処理対象ブロックＢ２の処理が終了して、次のブロックＢ３の処理を開始する直前に参照画像メモリ４２に追加される領域である。領域９９は、領域９８の追加と同時に参照画像メモリ４２から消去される領域である。
【００７５】
図７及び図８から明らかなように、第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、該次のブロックの設定可能範囲が参照画像メモリ４２から消去される。また、該次のブロックの設定可能範囲に含まれるものの、参照画像メモリ４２に未だ記憶されていない参照画像がフレームメモリ１８から読出されて参照画像メモリ４２に記憶される。なお、例えば、消去すべき参照画像が記憶されている領域に、上述した新たに追加する参照画像を上書きすることで、参照画像を消去することができる。
【００７６】
上記図７及び図８を参照して説明した更新制御方法では、処理対象のブロックを切替えるとき（参照画像メモリ４２を更新するとき）に、次に処理対象となるブロックの設定可能範囲に含まれる範囲の参照画像が、参照画像メモリ４２内に残される。次に処理対象となるブロックの設定可能範囲に含まれない参照画像は削除されるため、参照画像メモリ４２の容量抑制を図ることができる。
【００７７】
第２動き探索部２５は、第２動き探索の処理単位となるブロック毎に、判定部１２から入力された判定動きベクトルに応じた探索範囲で、第２動き探索を行う。ただし、判定動きベクトルは、縮小画像から探索された動きベクトルであるため、元の倍率に戻した状態で用いられる。例えば、水平方向及び垂直方向それぞれで１／ｄ倍された縮小画像から第１動き探索が行われた場合には、判定動きベクトルが示す水平方向及び垂直方向の各値をｄ倍して用いる。
【００７８】
第２動き探索では、前述したように参照画像として復号画像が部分的に用いられる。本実施形態では、第２動き探索部２５は、参照すべき参照画像が参照画像メモリ４２に記憶されている場合には、該参照画像メモリ４２から読出された参照画像を参照する。また、第２動き探索部２５は、参照すべき参照画像が参照画像メモリ４２に記憶されていない場合には、参照画像メモリ４２を介さずにフレームメモリ１８から直接読出された参照画像を参照する。
【００７９】
図４に、第２動き探索部２５の概略構成図の一例を示す。第２動き探索部２５は、保持部４４、制御部４５、算出部４６、切替部４７、原画バッファ４８、及び参照バッファ４９を備えている。
【００８０】
制御部４５は、信号発生部から所定の時間間隔で発生する切替信号を受信する等により切替えタイミングが到来すると、第２動き探索部２５を構成する各構成要素を制御して、第２動き探索の処理対象が次のブロックに切替わるようにする。
【００８１】
また、上記切替タイミングが到来すると、制御部４５は、メモリコントローラ１４に対して、原画像内の処理対象のブロックの画像を要求する読出要求を出力する。該読出要求には、読出す範囲と、読出した画像の格納先アドレスとが指定されている。これにより、原画メモリ１７から処理対象のブロックの画像が読出され原画バッファ４８に格納される。
【００８２】
また、上記切替タイミングが到来すると、制御部４５は、判定部１２から入力された判定動きベクトルに基づいて設定される探索範囲の参照画像の読出要求を出力する。該読出要求には、読出す範囲と、読出した画像の格納先アドレスとが指定されている。なお、本実施形態では、制御部４５は、処理対象のブロックの位置及びサイズに応じて、判定動きベクトルが指す点を含む所定のサイズの範囲を第２動き探索の探索範囲として設定するように構成されている。例えば、判定動きベクトルの中心から、水平方向に±Ｘ画素、垂直方向に±Ｙ画素を含むサイズの範囲を探索範囲とすることができる。
【００８３】
なお、処理対象のブロックの位置及びサイズは、制御部４５が事前に把握しているため、結局、判定部１２から出力される判定動きベクトルに応じて第２動き探索における探索範囲が定まることとなる。なお、第２動き探索における探索範囲は、第１動き探索で用いられた第２探索範囲を縮小前の倍率に戻したときの範囲よりも小さな範囲とされる。
【００８４】
参照画像メモリ回路２７の制御部４１は、制御部４５から出力された探索範囲の読出要求を取得し、該取得した読出要求に応じて読出制御を行う。具体的には、制御部４１は、読出要求された探索範囲の参照画像うち、参照画像メモリ４２に記憶されている参照画像については、参照画像メモリ４２から参照画像を読出して参照バッファ４９に格納する。また、制御部４１は、読出要求された探索範囲の参照画像のうち参照画像メモリ４２に記憶されていない参照画像については、メモリコントローラ１４に対して読出要求を出力し、フレームメモリ１８から参照画像を直接読出して参照バッファ４９に格納させる。これにより、参照バッファ４９に、探索範囲の参照画像が格納される。
【００８５】
なお、参照画像メモリ４２には、設定可能範囲の参照画像が記憶されているため、判定動きベクトルが第２動きベクトルである場合には、判定動きベクトルに基づいて設定された探索範囲に含まれる参照画像は、全て参照画像メモリ４２に記憶されている。従って、フレームメモリ１８から直接参照画像を取得することはない。判定動きベクトルが第１動きベクトルである場合には、設定可能範囲に含まれない範囲を含む範囲が探索範囲とされることから、判定動きベクトルに応じた探索範囲に含まれる参照画像の少なくとも一部が、参照画像メモリ４２に記憶されていない状態となる。従って、この場合には、フレームメモリ１８に直接アクセスして参照バッファ４９に必要な参照画像を取得して記憶する。
【００８６】
これにより、処理対象となるブロックを処理する直前に、該処理対象となるブロックに対応する探索範囲の参照画像が、参照バッファ４９に格納される。
【００８７】
なお、参照バッファ４９への参照画像の格納方法はこれに限定されない。例えば、読出要求された探索範囲の参照画像の少なくとも一部が、参照画像メモリ４２に記憶されていない場合には、制御部４１は読出要求された参照画像の全てをフレームメモリ１８から直接読出して参照バッファ４９に格納させるようにしてもよい。すなわち、本実施形態では、第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも参照画像メモリ４２に記憶されていない画像については、参照画像メモリ４２を介さずにフレームメモリ１８から直接読出された画像が参照されることになる。
【００８８】
原画バッファ４８及び参照バッファ４９は、例えば、ＦＩＦＯメモリ（先入れ先出し型メモリ）としてもよい。
【００８９】
さらに、制御部４５は、算出部４６での評価値算出対象となり、保持部４４で保持される対象となる動きベクトルを次々に生成して、算出部４６、保持部４４、小数ベクトル予測画生成部５０、及び切替部４７へと送る。
【００９０】
小数ベクトル予測画生成部５０は、例えば、第２動き探索で各ブロックに対して小数画素精度の動きベクトルを探索する場合に、規格により規定された方式又は別の方式により参照画像の補間処理を行って、小数座標の画素を有する小数予測画像を生成する。
【００９１】
切替部４７は、第２動き探索で小数画素精度で動きベクトルを探索する場合には、小数ベクトル予測画生成部５０で生成された小数予測画像を参照画像として算出部４６に入力する。切替部４７は、整数画素精度で動きベクトルを探索する場合には、参照バッファ４９に記憶されている画像を参照画像として算出部４６に入力する。
【００９２】
算出部４６は、原画バッファ３９に記憶されている処理対象のブロックの画像と、切替部４７から入力された探索範囲の参照画像から、制御部４５から送られてきた動きベクトルを元に選択されたブロック（以下、候補ブロックという）とを比較する。そして、算出部４６は、各候補ブロックと処理対象のブロックとの類似度の評価値として、ＳＡＤ（差分絶対値和）を算出する。なお、ここでは、算出部４６がＳＡＤを算出する例について説明したが、ＳＳＤ（二乗誤差和）、ＳＡＴＤ等、他の評価値を算出するようにしてもよい。また、動きベクトルの影響を考慮した評価値を算出するようにしても良い。また、他の周知の技術を用いて良い。
【００９３】
保持部４４は、各ブロックで最初に制御部４５から送られてくる動きベクトルと、この動きベクトルを元に算出部４６で算出された評価値とを無条件で処理結果候補として保持する。以降は、算出部４６から評価値が送られてくるごとに、保持されている処理結果候補の評価値と比較する。比較の結果、新たに送られてきた評価値が保持されている評価値よりも良かった場合は、その評価値と、その評価値に対応する動きベクトルとで処理結果候補を更新する。この処理を制御部４５から送られる全ての動きベクトルと、その動きベクトルについて算出部４６で算出された評価値について繰り返すことで、最終的には、このブロックの動きベクトル候補の中で最良の評価値を示す動きベクトルと対応する評価値とが処理結果候補として保持されるので、この候補がこのブロックにおける動きベクトル及び評価値として選択される。
【００９４】
フレーム間予測部２６は、第２動き探索部２５で探索され入力された動きベクトルに基づき、第２動き探索部２５に含まれる参照バッファ４９から参照画像を取得して、周知の動き補償を行い、予測画像を生成する。すなわち、本実施形態では、フレーム間予測部２６が、参照画像を参照画像メモリ４２から取得する構成としている。
【００９５】
なお、フレーム間予測部２６が用いる参照画像の一部又は全てを、フレームメモリ１８に直接アクセスして取得してもよい。動き補償では、参照画像の候補ブロックの各々が参照される動き探索と異なり、頻繁な読出しは行われないため、フレーム間予測部２６が動き補償のためフレームメモリ１８に直接アクセスしたとしても、メモリ帯域の圧迫の度合いは動き探索よりも小さい。
【００９６】
主符号化処理部１３の切替部３０は、フレーム内予測部２９で生成された予測画像及びフレーム間予測部２６で生成された予測画像の一方を選択して予測誤差画像生成部２０及び復号画像生成部２３に出力する。切替部３０は、例えば外部の制御部により制御され、切替えられる。
【００９７】
エントロピー符号化部３１には、直交変換・量子化部２１から量子化後の予測誤差画像の情報が入力される。更にまた、エントロピー符号化部３１には、フレーム内予測モード決定部２８で決定された予測モードや、第２動き探索部２５で探索された動きベクトルが、サイド情報として入力される。エントロピー符号化部３１は、予測誤差画像の情報とサイド情報とをエントロピー符号化する。エントロピー符号化とは、シンボルの出現頻度に応じて、可変長の符号を割り当て符号化する処理をいう。エントロピー符号化により生成された符号化信号（ビットストリーム）は、予め定められた出力先に出力される。
【００９８】
次に、判定部１２の判定処理について詳細に説明する。
【００９９】
図９は、判定部１２により実行される判定処理の一例を示すフローチャートである。図９に示す判定処理は、１フレーム画像毎に行われる。
【０１００】
ステップ１００において、判定部１２は、集合Ｓｃを空集合とし、パラメータｍに０をセットする。ここで、パラメータｍは、１フレーム画像を第２動き探索の処理単位となる複数のブロックに分割したときの各ブロックを識別するための識別番号であり、０から「１フレーム画像のブロック総数−１」までの整数値を取り得る。
【０１０１】
ステップ１０２において、判定部１２は、ブロックＢｍの第１動きベクトル、第１指標値、第２動きベクトル、及び第２指標値を取得する。
【０１０２】
ステップ１０４において、判定部１２は、第１動きベクトルの方が第２動きベクトルより符号化効率が高いか否かを判断する。ここでは、ステップ１０２で取得した第１指標値及び第２指標値を用いる。本実施形態では、第１指標値及び第２指標値共にＳＡＤであるため、評価指標は小さいほど符号化効率が高い（評価が良い）ことを示す。従って、第１指標値が第２指標値よりも小さい場合には、第１動きベクトルの方が第２動きベクトルより符号化効率が高いと判断される。第１指標値及び第２指標値がＳＳＤや符号化コストを示す値である場合も同様である。判定部１２は、ステップ１０４において肯定判断した場合には、ステップ１０６に進む。
【０１０３】
ステップ１０６において、判定部１２は、ブロックＢｍを集合Ｓｃに加える。判定部１２は、ステップ１０６の処理後、ステップ１０８に進む。また、判定部１２は、ステップ１０４において否定判断した場合には、ステップ１０６をスキップしてステップ１０８に進む。
【０１０４】
ステップ１０８において、判定部１２は、パラメータｍに１を加算する。
【０１０５】
ステップ１１０において、判定部１２は、パラメータｍが、１フレーム画像のブロック総数と等しいか否かを判断する。前述したように、パラメータｍは、０から「１フレーム画像のブロック総数−１」までの整数値を取り得る。従って、パラメータｍが１フレーム画像のブロック総数と等しくなった場合には、１フレーム画像に含まれるブロックの全てが処理済みとなったことを意味する。
【０１０６】
判定部１２は、ステップ１１０において否定判断した場合には、ステップ１０２に戻って、次のブロックＢｍについて、上記と同様の処理を行う。一方、判定部１２は、ステップ１１０において肯定判断した場合には、ステップ１１２に進み、特定ブロック判定処理を実行する。
【０１０７】
ステップ１１２の特定ブロック判定処理の一例を図１０に示す。
【０１０８】
ステップ２００において、判定部１２は、集合Ｓｃに含まれるブロックを、第１動きベクトルの符号化効率が高い順にソートする。ここでは、第１動きベクトルの符号化効率を示す値に基づいてソートする。
【０１０９】
第１動きベクトルのｘ成分をｖｘ１、ｙ成分をｖｙ１とし、第１評価値をｖ１とし、第２動きベクトルのｘ成分をｖｘ２、ｙ成分をｖｙ２とし、第２評価値をｖ２とし、関数の出力をｆとしたときの、符号化効率を示す値を導出する関数例を以下に示す。
【０１１０】
ｆ＝ｖ１                                                  ・・・式１
ｆ＝ｖ１−ｖ２                                            ・・・式２
ｆ＝ｖ１−ｖ２＋α・ｇ（ｖｘ１，ｖｙ１）                  ・・・式３
ｆ＝ｖ１−ｖ２＋β・ｈ（ｖｘ１，ｖｙ１、ｖｘ２，ｖｙ２）  ・・・式４
【０１１１】
ここで、式３の関数ｇ及び関数ｈは、着目するブロックについて第１動きベクトルを採用したときに増加するメインメモリ１５のメモリ帯域（具体的には、フレームメモリ１８からの直接読出データ量）に比例する値を返す関数である。また、α、及びβは、予め定められた正の定数である。
【０１１２】
ここで、第１評価値ｖ１及び第２評価値ｖ２は、その値が小さいほど符号化効率が高い（良い結果を示す）ものとし（例えばＳＡＤ）、関数の出力ｆも、その値が小さいほど符号化効率が高いものとする。
【０１１３】
判定部１２は、関数の出力値ｆが小さいものほど上位となるようにソートする。
【０１１４】
なお、ここでは、第１評価値がＳＡＤである場合を例に挙げたが、ＳＳＤや符号化コストであってもよい。この場合も、当該ＳＳＤや符号化コストを、符号化効率を示す値としてそのまま用いてソートしてもよい。
【０１１５】
ステップ２０２において、判定部１２は、上記ソートされた状態で、上位Ｎ個のブロックを特定ブロックとして判定する。Ｎは、参照画像メモリ４２をフレームメモリ１８から直接参照画像を読み出して参照バッファ４９に格納するときの直接読出データ量の合計値が予め設定された上限値を超えないように予め設定された値である。ここでは、１つの特定ブロックについて、参照画像メモリ４２を介さずにフレームメモリ１８から直接参照画像を読み出すときの直接読出データ量を一律ｃとして、「ｃ×Ｎ＝予め設定された上限値ＤＮ」となるようにＮを設定した。これにより、参照画像メモリ４２の更新時のフレームメモリ１８へのアクセス以外の、参照画像メモリ４２に保持されていない探索範囲の取得のためのフレームメモリ１８へのアクセスによる直接読出データ量を、上限値ＤＮ以下に抑えることが可能となる。
【０１１６】
参照画像メモリ４２の更新方法にもよるが、特定ブロックに判定されると第１動きベクトルに基づいて設定される探索範囲には、参照画像メモリ４２に保持されていない範囲が含まれる可能性が高い。従って、あまりに多くのブロックを特定ブロックと判定すると、直接読出データ量が増えてメモリ帯域を圧迫する。そこで、本実施形態では、特定ブロックの数の上限値を設けるようにしている。
【０１１７】
以下、参照画像メモリ４２を介さずにフレームメモリ１８から直接参照画像を読み出して参照バッファ４９に格納することを、「直接読出し」と呼称する。
【０１１８】
上記により、上記直接読出データ量の合計値が予め設定された上限値を超えない範囲内で、第２動きベクトルよりも第１動きベクトルの方が符号化効率が高いブロックが、特定ブロックとして判定される。図１０を用いて例示した特定ブロック判定処理を採用した場合には、簡単なアルゴリズムで特定ブロックを判定できる。
【０１１９】
図９において、ステップ１１２の後は、ステップ１１４の処理が実行される。
【０１２０】
ステップ１１４において、判定部１２は、１フレーム画像に含まれるブロックのうち、ステップ１１２において特定ブロックと判定されたブロック以外の全てのブロックを非特定ブロックと判定する。ここでは、集合Ｓｃに含まれるブロックのうち特定ブロックとして判定されなかったブロック、及び集合Ｓｃに含まれないブロックの各々が非特定ブロックと判定される。
【０１２１】
ステップ１１６において、判定部１２は、判定結果を第２動き探索部２５に出力する。すなわち、判定部１２は、判定結果として、特定ブロックと判定したブロックについては、第１動きベクトルを主符号化処理部１３に出力し、非特定ブロックと判定したブロックについては、第２動きベクトルを主符号化処理部１３に出力する。
【０１２２】
ここで、図１１に、符号化方式Ｈ．２６４に対応した符号化装置１の各構成要素の処理のタイミングを示すタイミングチャートの一例を示す。
【０１２３】
図１１において、縮小部１０は各フレーム画像の原画像に対して図示されるタイミングで縮小処理を施す。なお、図示される符号Ｉ０、Ｂ１、Ｂ２、Ｐ３…は、各フレーム画像を表わす識別符号である。なお、図１１においてＩｘは、フレーム内予測符号化方式により符号化するフレーム画像を表わす。また、図１１においてＢｘは、主にフレーム間予測符号化方式により符号化するフレーム画像であって、主に先に符号化した２つのフレーム画像から予測するＢフレームのフレーム画像を示す。また、図１１において、Ｐｘは、主にフレーム間予測符号化方式により符号化するフレーム画像であって、主に先に符号化した１つのフレーム画像から予測するＰフレームのフレーム画像を示す。
【０１２４】
また、ここでは、フレーム画像Ｉ０より前に符号化処理されるフレーム画像については図示を省略した。
【０１２５】
第１動き探索部１１は、図１１に示すタイミングで、各フレーム画像の各ブロックについて、第１動き探索を行う。Ｂフレームについては、前方参照画像及び後方参照画像に示されるように、互いに異なる時刻の２つの参照画像が参照される。Ｐフレームについては、前方参照画像に示されるように、１つの参照画像が参照される。例えば、フレーム画像Ｐ３の各ブロックは、フレーム画像Ｉ０に含まれるブロックを参照画像として上述した第１動き探索が行われる。
【０１２６】
判定部１２は、図１１のタイミングチャート内にｔ１で示すように、あるフレーム画像（ｔ１ではＰ３）に対する第１動き探索が終了した後に、そのフレーム画像の各ブロックについて、特定ブロック及び非特定ブロックの判定を行う。
【０１２７】
第２動き探索部２５は、判定部１２による判定が終了した後に、そのフレーム画像の各ブロックについて、第２動き探索を行う。図１１のタイミングチャート内でｔ２で示すように、フレーム画像Ｐ３に対する第２動き探索は、判定部１２による判定が終了した後に行われている。なお、第２動き探索部２５は、判定部１２の判定手法にもよるが、通常は、１フレーム画像の全ブロックの判定が終了した後に、該フレーム画像の第２動き探索を行う。
【０１２８】
参照画像メモリ４２は処理対象のブロックが切替わる毎に更新されるが、参照画像メモリ４２には処理対象のブロックの処理中に参照するフレーム画像の参照画像が記憶されるように制御される。従って、フレーム画像Ｐ３の各ブロックを符号化する際に参照画像メモリ４２に記憶される参照画像は、フレーム画像Ｉ０の復号画像とされる。
【０１２９】
以上説明したように、本実施形態では、二段階の動き探索を行い、二段階目の動き探索の非特定ブロックにおける探索処理では、一段階目の第１探索範囲よりも狭い範囲が探索範囲とされる。従って、参照画像メモリ４２のメモリ容量を削減できる。更にまた、第１動きベクトルの方が第２動きベクトルよりも符号化効率が高いＮ個のブロックについては、第１動きベクトルを用いた第２動き探索が行われるため、符号化効率を向上させることができる。すなわち、フレームメモリ１８から直接読出しを全く行わない場合に比べて画質の向上が見込まれる。更に、上記Ｎは、直接読出しの際の直接読出データ量の合計値が上限値を超えないように予め設定された値であるため、フレームメモリ１８からの読出データ量の抑制を図ることもできる。このように、上記実施形態では、参照画像メモリ４２の容量の抑制、符号化効率の向上、及びフレームメモリ１８の読出データ量の抑制の各々をバランスよく実現することができる。
【０１３０】
なお、上記ステップ１１２において行われる特定ブロック判定処理の内容は、上記説明した内容に限定されない。例えば、度数分布又はヒストグラムを生成して判定してもよい。
【０１３１】
図１２は、ヒストグラムを用いた特定ブロック判定処理の流れを示すフローチャートである。図１２に示す特定ブロック判定処理は、上記図１０を参照して例示した特定ブロック判定処理に代えて実行することができる。
【０１３２】
ステップ２１０において、判定部１２は、集合Ｓｃに含まれるブロックについて、第１動きベクトルの符号化効率を示す値のヒストグラムを生成する。ヒストグラムには複数の階級が含まれるが、階級の幅は特に限定されない。符号化効率を示す値は、上記式１〜式４で例示した関数の値等を用いることができる。ステップ２１０により、例えば、符号化効率を示す値に基づく各階級毎に、ブロックの度数（個数）が示されたヒストグラムが生成される。
【０１３３】
ステップ２１２において、判定部１２は、パラメータＤｔに０をセットし、パラメータｋに０をセットする。パラメータＤｔは、符号化効率を示す値が高い順に上位の階級から各階級の度数を加算していったときの累計値を計時するパラメータである。パラメータｋは、階級を識別するための識別番号である。パラメータｋは、「０から階級総数−１」までの値を取り得る。符号化効率を示す値が小さい（符号化効率が高い）階級ほど上位の階級となり、ｋは小さくなる。
【０１３４】
ステップ２１４において、判定部１２は、ヒストグラムの階級ｋの度数Ｄｋを取得する。
【０１３５】
ステップ２１６において、判定部１２は、ＤｔにＤｋを加算した値をＤｔにセットする。
【０１３６】
ステップ２１８において、判定部１２は、Ｄｔが予め定められた上限値Ｎ以下であるか否かを判断する。Ｎは、前述したように、直接読出しにおいて直接読出データ量の合計値が予め設定された上限値を超えないように予め設定された値である。
【０１３７】
判定部１２は、ステップ２１８において肯定判断した場合には、ステップ２２０に進み、パラメータｋに１を加算し、ステップ２１４に戻る。これにより、次の階級ｋについて、上記と同様の処理が行われる。
【０１３８】
また、判定部１２は、ステップ２１８において否定判断した場合には、ステップ２２２に進み、階級ｋより上位の階級に含まれるブロックを特定ブロックとして判定する。
【０１３９】
すなわち、ステップ２１８において否定判断された場合、現在の階級ｋの度数Ｄｋを加算したときの累計値を示すパラメータＤｔは上限値Ｎを越えてしまっているが、当該階級ｋの１つ上位の階級ｋ−１までの累計値は上限値Ｎ以下となっていることを示す。
【０１４０】
従って、ここでは、階級ｋより上位の階級、すなわち、階級０から階級ｋ−１までの各階級に含まれるブロックを特定ブロックとして判定する。
【０１４１】
なお、ここでは、ヒストグラムを生成する例について説明したが、ヒストグラムを生成するまでもなく、度数分布を生成して上記と同様に処理してもよい。階級の幅を定義して、各階級毎の度数をカウントしさえすれば、上記と同様に処理できるためである。このように、度数分布或いはヒストグラムを生成して行う特定ブロックを判定する場合には、図１０を参照して説明した特定ブロック判定処理で必要なソートを行わずに済むため、判定処理を効率的に行うことができる。
【０１４２】
また、特定ブロック判定処理において、以下のように特定ブロックを判定してもよい。例えば、図１３に示すように、両隣のブロックＢ１、Ｂ２が特定ブロックと判定されたブロックＢａについては、ブロックＢａの処理時にもブロックＢ１、Ｂ２の探索範囲に含まれる参照画像を参照バッファ４９に保持しておいて流用することができる。すなわち、ブロックＢａについて第２動き探索を行うときの探索範囲によっては、ブロックＢａの第２動き探索のために直接読出しを行わなくても第１動きベクトルを用いた探索を行うことができる。この場合、ブロックＢａを特定ブロックとして扱っても、メモリ帯域を圧迫することはない。従って、両隣が特定ブロックと判定されたブロックＢａの第１動きベクトルが第２動きベクトルより符号化効率が高い場合に、ブロックＢａについての第１動きベクトルに基づく探索範囲によっては、ブロックＢａも直接読出し可能な特定ブロックと判定してもよい。ブロックＢａを特定ブロックとして判定しない場合に比べて符号化効率が向上し、画質の向上が見込まれる。
【０１４３】
図１４は、両隣のブロックが特定ブロックと判定されたブロックについても特定ブロックと判定するか否かを判定する特定ブロック判定処理の流れを示すフローチャートである。図１４に示す特定ブロック判定処理は、上記図１０を参照して例示した特定ブロック判定処理に代えて行うことができる。
【０１４４】
ステップ２３０において、判定部１２は、集合Ｓｂを空集合とし、パラメータｎに０をセットする。
【０１４５】
ステップ２３２において、判定部１２は、集合Ｓｃから集合Ｓｂを除いた集合から、符号化効率が最も高いブロックＢｂを選択する。ここでは、上記式１〜式４等により例示した、符号化効率を示す値を導出する関数ｆを用い、ｆの値が最も小さいブロックを選択する。なお、集合Ｓｃは、図９のステップ１０４において、第１動きベクトルの方が第２動きベクトルより符号化効率が高いと判定したブロックの集合である。
【０１４６】
ステップ２３４において、判定部１２は、ｎ＋１＞Ｎであるか否かを判断する。Ｎは、上述したように、直接読出しの際の直接読出データ量の合計値が上限値を超えないように予め設定された値である。
【０１４７】
判定部１２は、ステップ２３４において否定判断した場合には、ステップ２３６に進み、ステップ２３６において、ブロックＢｂを集合Ｓｂに加え、ｎに１を加算する。
【０１４８】
ステップ２３８において、判定部１２は、集合Ｓｃと集合Ｓｂとが等しいか否かを判断する。判定部１２は、ステップ２３８において否定判断した場合には、ステップ２４０に進む。
【０１４９】
ステップ２４０において、判定部１２は、集合Ｓｃから集合Ｓｂを除いた集合に、第２動き探索の処理方向において両隣のブロックが特定ブロックである（すなわち両隣のブロックが集合Ｓｂに含まれる）ブロックＢａがあるか否かを判断する。
【０１５０】
判定部１２は、ステップ２４０において肯定判断した場合には、ステップ２４２に進み、ブロックＢａに対する合成範囲ｒを導出する。ここで、合成範囲ｒとは、ブロックＢａの両隣の特定ブロックをブロックＢ１、及びブロックＢ２としたときの、以下の３つの範囲を合成した合成範囲をいう。
【０１５１】
・ブロックＢ１の第２動き探索における探索範囲
・ブロックＢ２の第２動き探索における探索範囲
・ブロックＢａの第２動き探索中に参照画像メモリ４２に保持されている範囲
【０１５２】
合成範囲ｒの一例を図１３に示す。図１３において、３００は、ブロックＢａの第２動き探索処理中に参照画像メモリ４２に記憶されている保持範囲を示す。３０２は、ブロックＢ１の第２動き探索の探索範囲を示す。３０４は、ブロックＢ２の第２動き探索の探索範囲を示す。３０６は、ブロックＢａの第２動き探索の探索範囲を示す。３０８は、合成範囲ｒを示す。３０２、３０４、３０６の各探索範囲は、何れも第１動きベクトルにより設定される探索範囲である。
【０１５３】
なお、両隣が特定ブロックであるブロックが複数存在した場合には、そのうちの１つを抽出し、該抽出したブロックＢａに対する合成範囲ｒを導出する。
【０１５４】
ステップ２４４において、判定部１２は、ブロックＢａが第２動き探索の処理対象とされたときの第１動きベクトルに基づいて設定される探索範囲が、合成範囲ｒに含まれるか否かを判断する。
【０１５５】
判定部１２は、ステップ２４４において肯定判断した場合には、ステップ２４６において、ブロックＢａを集合Ｓｂに加え（すなわち、ブロックＢａを特定ブロックの集合に加え）、ステップ２３８に戻る。判定部１２は、ステップ２３８で否定判断した場合には、ステップ２４０に進み、両隣が特定ブロックであるブロックのうち、未だ抽出していないブロックを抽出して、上記ステップ２４２以降の処理を繰り返す。
【０１５６】
一方、判定部１２は、ステップ２４４において否定判断した場合には、ステップ２４６をスキップしてステップ２４０に戻り、両隣が特定ブロックであるブロックのうち、未だ抽出していないブロックを抽出して、上記ステップ２４２以降の処理を繰り返す。
【０１５７】
また、判定部１２は、ステップ２４０において否定判断した場合には、ステップ２３２に戻り、上記と同様の処理を繰り返す。
【０１５８】
また、判定部１２は、ステップ２３４において肯定判断した場合には、ブロックＢｂを集合Ｓｂには加えずに、ステップ２４８に進む。
【０１５９】
ステップ２４８において、判定部１２は、集合Ｓｂに含まれるブロックを特定ブロックとして判定する。
【０１６０】
また、判定部１２は、ステップ２３８において肯定判断した場合には、集合Ｓｃに含まれる全てのブロックが特定ブロックの集合である集合Ｓｂに加えられたことを示している。従って、判定部１２は、ステップ２４８に進み、集合Ｓｂに含まれるブロックを特定ブロックとして判定する。
【０１６１】
以下、図１５の模式図を参照し、集合Ｓｃ及び集合Ｓｂに含まれるブロックの具体例を挙げて、上記図１４を参照して説明した特定ブロック判定処理の流れを説明する。また、ここでは、Ｎが３である場合を例に挙げる。また、ステップ２４８より前の、ステップ２３０からステップ２４６までの処理を、特定ブロックを判定するための「集合操作処理」と呼称する。ｎは２とする。
【０１６２】
図１５（１）に示すように、集合Ｓｃには、ブロックｗ、ｘ、ｙ、ｚの４つのブロックが含まれている。特定ブロック判定処理の最初のステップであるステップ２３０において、集合Ｓｂを空集合として設定し、ｎには０をセットする。なお、ブロックｗの関数ｆの値は１００、ブロックｘの関数ｆの値は１０００、ブロックｙの関数ｆの値は１０１、ブロックｚの関数ｆの値は２００である。ここで、図１６に、４つのブロックｗ、ｘ、ｙ、ｚの配置例を示す。第２動き探索は、前述したように左から右方向に実行され、右端のブロックの動き探索が行われた後は、１つ下の行の左端のブロックの動き探索が行われるものとする。なお、図１６に示す各ブロックの左上端部から伸びる矢印は、第１動き探索において探索された各ブロックの第１動きベクトルを示す。
【０１６３】
図１５（２）に示すように、ステップ２３２において、ブロックＢｂが選択される。図１５（２）に示すように、集合Ｓｃから集合Ｓｂを除いた集合においてｆの値が最も小さいブロックは、ブロックｗであるため、ブロックｗがブロックＢｂとして選択される。この段階では、ｎは０である。
【０１６４】
図１５（３）に示すように、次のステップ２３４において、ｎ＋１＞Ｎを満たさないため、集合操作処理が続行される。
【０１６５】
図１５（４）に示すように、ステップ２３５において、ブロックＢｂが集合Ｓｂに追加される。また、ｎに１が加算され、ｎは１となる。
【０１６６】
図１５（５）に示すように、ステップ２３８において、集合Ｓｃと集合Ｓｂとが等しくないため、集合操作処理が続行される。ステップ２４０において、ブロックＢａに該当するブロックはないと判断される。
【０１６７】
従って、図１５（６）に示すように、ステップ２４０において否定判断されるため、ステップ２３２に戻る。
【０１６８】
図１５（７）に示すように、図１５（６）の後のステップ２３２において、ブロックＢｂが選択される。図１５（６）に示すように、集合Ｓｃから集合Ｓｂを除いた集合においてｆの値が最も小さいブロックは、ブロックｙであるため、ブロックｙがブロックＢｂとして選択される。この段階では、ｎは１である。
【０１６９】
図１５（８）に示すように、次のステップ２３４において、ｎ＋１＞Ｎを満たさないため、集合操作処理が続行される。
【０１７０】
図１５（９）に示すように、ステップ２３５において、ブロックＢｂが集合Ｓｂに追加される。また、ｎに１が加算され、ｎは２となる。
【０１７１】
図１５（１０）に示すように、ステップ２３８において、集合Ｓｃと集合Ｓｂとが等しくないため、集合操作処理が続行される。ステップ２４０において、ブロックＢａに該当するブロックがあると判断される。図１５及び図１６に示す例では、ブロックｘがブロックＢａとして判断され選択される。その後、ブロックＢａについて合成範囲ｒが導出される。例えば、図１３に示すように合成範囲ｒが導出され、ブロックＢａの第１動きベクトルに基づく探索範囲が図１３に示す範囲となった場合には、ステップ２４４において、ブロックＢａの探索範囲は合成範囲ｒに含まれると判断される。従って、ステップ２４６において、ブロックＢａが集合Ｓｂに追加される。
【０１７２】
図１５（１１）に示すように、次のステップ２４０において他のＢａに該当するブロックはないため、否定判断され、ステップ２３２に戻る。
【０１７３】
図１５（１２）に示すように、ステップ２３２において、ブロックＢｂが選択される。図１５（１２）に示すように、集合Ｓｃから集合Ｓｂを除いた集合においてｆの値が最も小さいブロックは、ブロックｚであるため、ブロックｚがブロックＢｂとして選択される。この段階では、ｎは２である。
【０１７４】
図１５（１３）に示すように、次のステップ２３４において、ｎ＋１＞Ｎを満たすため、集合操作処理は終了となり、ステップ２４８の処理に移行する。
【０１７５】
上記図１３〜図１５を参照して説明した特定ブロック判定処理では、ブロックＢｂを集合Ｓｂに追加する毎に、ブロックＢａが存在するか否か判定している。そして、ブロックＢａが存在すれば、該ブロックＢａを集合Ｓｂへと追加するようにしている。
【０１７６】
ところで、前述したように、１つのブロックについての動き探索は、算出部３８による多数のＳＡＤ算出処理を含むものである。このＳＡＤ算出処理で使用される原画像は、１つのＳＡＤを算出する毎にフレームメモリ１８から取得するのではなく、第２動き探索部２５の内部に設けた原画バッファ３９から算出部３８へと出力される。参照画像についても同様に、１つのブロックについての動き探索において使用する参照画像を予め参照バッファ４９に格納してから該ブロックの動き探索を開始する。
【０１７７】
従って、あるブロックの動き探索が終了した後、次のブロックの動き探索を開始するまでの間に、参照バッファ４９の内容が更新される。
【０１７８】
このように参照バッファ４９を使用する構成において、両隣が特定ブロックとされたブロックＢａの第２動き探索において、両隣のブロックの探索範囲の参照画像を流用（参照）するための機能を第２動き探索部２５に設けることができる。以下、この機能を便宜的に「参照画キャッシュ機能」と呼称する。
【０１７９】
参照画キャッシュ機能では、１つ前に第２動き探索の処理対象とされたブロックで参照した範囲の参照画像を参照バッファ４９に保持しておき、次に処理対象とされるブロックでもその範囲（の一部）を参照画像として使用する。参照画キャッシュ機能により、フレームメモリ１８から参照画像を取得しなくても、参照バッファ４９に保持されている参照画像を用いることで、探索範囲の参照画像を参照できる。
【０１８０】
第２動き探索部２５の制御部４５は、上述したように、第２動き探索の処理対象となるブロックを切替えるタイミングで、参照画像メモリ回路２７の制御部４１に対する読出要求を出力する。制御部４５は、該読出要求に読出対象の範囲、及び参照バッファ４９に対する格納先アドレスの指定を含めて出力し、参照バッファ４９に対するデータの格納及び消去のタイミングを制御し、参照画キャッシュ機能を実現する。
【０１８１】
ここで、図１７Ａ、図１７Ｂを参照して、第２動き探索部２５の制御部４５により行われる参照画キャッシュ機能について説明する。ここでは、第２動き探索の処理対象となる連続した３つのブロックＢｗ、Ｂｘ、Ｂｙを例に挙げて説明する。
【０１８２】
図１７Ａにおいて、ブロックＢｗの探索範囲は、領域ａ及び領域ｂを含む。ブロックＢｙの探索範囲は、領域ｄ及び領域ｅを含む。ブロックＢｘの探索範囲は、領域ｃ、領域ｂ、及び領域ｄを含む。すなわち、領域ｂは、ブロックＢｗの探索範囲及びブロックＢｘの探索範囲が重なる部分であり、領域ｄは、ブロックＢｙの探索範囲及びブロックＢｘの探索範囲が重なる部分である。
【０１８３】
以下、説明を簡単にするため、図１７Ａに示した各探索範囲の全てが、参照画像メモリ４２に記憶されていない範囲である（直接読出しが必要な範囲である）ものと仮定して説明する。
【０１８４】
図１７Ｂは、各ブロックの処理期間毎に、参照バッファ４９に保持される領域を模式的に表わした図である。（１）が、参照画キャッシュ機能を実行した場合を示し、（２）が、参照画キャッシュ機能を実行しない場合を示している。
【０１８５】
まず、参照画キャッシュ機能を実行しない（２）について説明する。まず、ブロックＢｗの第２動き探索の前（ｔ１の前）に、ブロックＢｗの探索範囲（領域ａ及び領域ｂ）が参照バッファ４９に保持される。また、原画バッファ４８も更新される。
【０１８６】
ブロックＢｗの第２動き探索が終了した後、ブロックＢｘの第２動き探索の前に（すなわちｔ２において）、領域ａ及び領域ｂが、参照バッファ４９から消去され、領域ｂが、再度フレームメモリ１８から読出されて参照バッファ４９に格納される。これにより、ブロックＢｘの第２動き探索の前に、ブロックＢｘの探索範囲（領域ｂ、領域ｃ、領域ｄ）が参照バッファ４９に保持される。また、原画バッファ４８も更新される。
【０１８７】
ブロックＢｘの第２動き探索が終了した後、ブロックＢｙの第２動き探索の前に（すなわちｔ４において）、領域ｂ、領域ｃ、及び領域ｄが、参照バッファ４９から消去され、領域ｄが、再度フレームメモリ１８から読出されて参照バッファ４９に格納される。これにより、ブロックＢｙの第２動き探索の前に、ブロックＢｙの探索範囲（領域ｄ及び領域ｅ）が参照バッファ４９に保持される。また、原画バッファ４８も更新される。
【０１８８】
図１７Ｂの（２）に例示した構成では、フレームメモリ１８に対するアクセス量が増える。従って、例えば、図１０や図１２を参照して説明した特定ブロック判定処理により特定ブロックを判定する場合等に採用することができる。
【０１８９】
次に、参照画キャッシュ機能を実行する（１）について説明する。まず、（２）の場合と同様に、ブロックＢｗの第２動き探索の前に（ｔ１の前に）、ブロックＢｗの探索範囲（領域ａ及び領域ｂ）が参照バッファ４９に保持される。また、原画バッファ４８も更新される。
【０１９０】
ブロックＢｗの第２動き探索が終了した後、ブロックＢｘの第２動き探索の前に（すなわちｔ２において）、原画バッファ４８が更新される。また、ブロックＢｘの処理で参照されない領域ａは、参照バッファ４９から消去される。更にまた、領域ｂは、ブロックＢｘの処理においても参照されるため、参照バッファ４９から削除されることなく、そのまま保持される。従って、（１）の場合には、ブロックＢｘの探索前に、領域ｂを再度フレームメモリ１８から読出して参照バッファ４９に格納する必要はない。
【０１９１】
ブロックＢｘの第２動き探索が終了した後、ブロックＢｙの第２動き探索の前に（すなわちｔ４において）、原画バッファ４８が更新される。また、ブロックＢｙの処理で参照されない領域ｂ及び領域ｃは、参照バッファ４９から消去される。更にまた、領域ｄは、ブロックＢｙの処理においても参照されるため、参照バッファ４９から削除されることなく、そのまま保持される。従って、（１）の場合には、ブロックＢｙの探索前に、領域ｄを再度フレームメモリ１８から読出して参照バッファ４９に格納する必要はない。
【０１９２】
すなわち、第２動き探索部２５の制御部４５は、あるブロックの第２動き検出探索で使用した参照画像のうち、次のブロックの第２動き探索でも使用される領域については、次のブロックの第２動き探索が終了するまで参照バッファ４９に保持されるよう制御する。次のブロックの第２動き探索では、該参照バッファ４９に保持された領域を再利用することで、該再利用領域をフレームメモリ１８から読み込まないようにしている。
【０１９３】
図１７Ｂの（２）に例示した構成では、フレームメモリ１８に対するアクセス量が抑制される。従って、隣のブロックで読み込まれた範囲を参照画像として流用する場合に採用することができる。なお、（２）に例示した構成は、図１０や図１２を参照して説明した特定ブロック判定処理により特定ブロックを判定した場合であっても採用可能である。
【０１９４】
なお、上記例では、原画バッファ４８及び参照バッファ４９をシングルバッファ構成とし、各ブロックの動き探索と、原画バッファ４８及び参照バッファ４９の更新とを交互に行う場合を例に挙げて説明したが、これに限定されない。例えば、原画バッファ４８及び参照バッファ４９の各々をダブルバッファ構成とし、図１８に示すように、パイプライン的に処理を行うように構成してもよい。
【０１９５】
また、上記説明した各例では、フレームメモリ１８から直接探索範囲の参照画像を読出して参照バッファ４９に格納するときの直接読出データ量が一律ｃであると仮定してＮの値を設定し、特定ブロックを判定する例について説明したが、これに限定されない。例えば、フレームメモリ１８から直接探索範囲の参照画像を読出すときの直接読出データ量を各ブロック毎に導出し、該導出した直接読出データ量の合計値が直接読出データ量の上限値ＤＮを越えない範囲内で特定ブロックを判定するようにしてもよい。
【０１９６】
ここで、図１４を参照して例示した特定ブロック判定処理を、上記直接読出データ量をブロック毎に導出して判定する処理に変更した変形例を図１９に示す。
【０１９７】
ステップ２６０及びステップ２６２の処理内容は、図１４のステップ２３０及びステップ２３２と同じであるため、説明を省略する。
【０１９８】
ステップ２６２の後、ステップ２６４において、判定部１２は、ブロックＢｂの直接読出データ量ｄｎを計算して導出する。直接読出データ量ｄｎの計算方法は特に限定されないが、例えば、直接読出しを行う範囲の大きさをパラメータとする関数を予め用意しておき、該関数を用いて算出してもよい。
【０１９９】
上記関数は、直接読出しを行う範囲が大きいほど、値が大きくなる関数とすることができる。なお、直接読出しを行う範囲は、ブロックＢｂの第１動きベクトルに応じて設定される探索範囲から、参照画像メモリ４２に記憶されている範囲を除外して求めればよい。
【０２００】
ステップ２６６では、判定部１２は、ｎ＋ｄｎ＞ＤＮであるか否かを判断する。ＤＮは、直接読出しの際の直接読出データ量の合計値の上限値である。
【０２０１】
ステップ２６６で否定判断した場合には、判定部１２は、ステップ２６８において、ブロックＢｂを集合Ｓｂに加え、ｎにｄｎを加算する。また、ステップ２６６で肯定判断した場合には、判定部１２は、ステップ２８０に進む。なお、ステップ２７０からステップ２８０までの処理は、上記図１４を参照して説明したステップ２３６からステップ２４８までの処理と同じであるため、説明を省略する。
【０２０２】
このように、直接読出データ量を一律ｃとして直接読出データ量の合計値を算出するのではなく、実際に各ブロック毎に計算しながら特定ブロックの判定を進めて、その量をＤＮ以下に抑えるようにしている。
【０２０３】
直接読出データ量を一律ｃとする場合には、実際の直接読出データ量が変動しても直接読出データ量の合計値が上限値を超えないようＮを低めに設定して運用する可能性があるが、これではメモリ帯域に余裕があっても特定ブロックが少なめに判定されてしまう。しかしながら、ブロック毎に直接読出データ量を計算する構成とすれば、より正確に合計値を計算できるため、ＤＮを上限値そのもの或いは上限値に近い値に設定できる。これにより、より多くのブロックを特定ブロックと判定できる。
【０２０４】
なお、図１０を参照して説明した特定ブロック判定処理においても同様に、直接読出データ量を一律ｃとせずに、ブロック毎に計算して判定してもよい。具体的には、ステップ２０２に代えて、以下の処理を行う。判定部１２は、符号化効率が高いブロックから順に直接読出データ量を計算して累計していく。そして、判定部１２は、直接読出データ量の累計値が上限値を超えたとき、符号化効率が最も高いブロックから上記累計値が上限値を超えたブロックより１つ上位のブロックまでの各ブロックを特定ブロックと判定してもよい。
【０２０５】
また、図１２を参照して説明した特定ブロック判定処理においても同様に、直接読出データ量を一律ｃとせずに、ブロック毎に計算して判定してもよい。例えば、図１０のステップ２１４からステップ２１８の処理に代えて、以下の処理を行う。
【０２０６】
判定部１２は、ステップ２１４の処理に代えて、ヒストグラムの階級ｋに含まれる各ブロックの直接読出データ量を計算し、該階級ｋの直接読出データ量の合計値値Ｔｋを計算する処理を行う。次に、判定部１２は、ステップ２１６の処理に代えて、ＤｔにＴｋを加算する処理を行う。次に、判定部１２は、ステップ２１８の処理に代えて、Ｄｔ≦ＤＮであるか否かを判定する。判定部１２は、Ｄｔ≦ＤＮである場合には、ステップ２２０に進み、Ｄｔ≦ＤＮでない場合には、ステップ２２２に進む。
【０２０７】
以上説明した特定ブロック判定処理の変形例によっても、上記と同様の効果が得られる。
【０２０８】
上記実施形態では、第１動き探索の処理単位のブロック（以下、第１ブロック）を元の倍率に戻したときのサイズと、第２動き探索の処理単位のブロック（以下、第２ブロック）のサイズが、同じである場合について説明したが、異なっていてもよい。仮に第２ブロックのサイズが、縮小前の第１ブロックのサイズよりも大きい場合には、以下のように処理してもよい。まず、第２ブロックに対応する複数の第１ブロックの第１動きベクトル、第１評価値、第２動きベクトル、第２評価値の各々の平均値を計算する。この４つの平均値を判定部１２で用いて特定ブロックを判定する。処理方法は上記説明したように行えばよい。また、仮に第２ブロックのサイズが、縮小前の第１ブロックのサイズよりも小さい場合には、第２ブロックに該当する第１ブロックの第１動き探索の探索結果をそのまま用いればよい。
【０２０９】
更にまた、図２０に示すように、符号化装置１の判定部１２の機能をコンピュータにより実現し、第１動き探索部１１及び主符号化処理部１３の機能を、コンピュータに設けられた符号化部７１により実現してもよい。
【０２１０】
コンピュータ６０はＣＰＵ（Central Processing Unit）６１、プログラムを記憶した不揮発性のプログラム記憶部６２、メインメモリ１５、画像処理部６４、外部ＩＦ（Interface）６６、画像入力ＩＦ６７、及び符号化部７１を備えている。メインメモリ１５は、メモリコントローラ１４に接続されている。そして、ＣＰＵ６１、プログラム記憶部６２、メモリコントローラ１４、画像処理部６４、外部ＩＦ６６、画像入力ＩＦ６７、符号化部７１は、バス７０を介して互いに接続されている。図２０に示すメモリコントローラ１４及びメインメモリ１５は、図１を用いて説明したメモリコントローラ１４及びメインメモリ１５に対応する。
【０２１１】
プログラム記憶部６２には、判定部１２の判定処理を実行するための判定プログラムが記憶されている。
【０２１２】
ＣＰＵ６１は、プログラム記憶部６２から判定プログラムを読み出してメインメモリ１５に展開し、判定プログラムのプロセスを実行する。ＣＰＵ６１が判定プログラムのプロセスを実行することで、図１に示した判定部１２の機能が実現される。なお、ＣＰＵ６１が実行するプログラムを展開するメモリは、メインメモリ１５とは異なるメモリであってもよい。
【０２１３】
外部ＩＦ６６は、記録メディア６８及び操作パネルコントローラ６９のインタフェースである。画像入力ＩＦ６７は、動画像等を入力するためのインタフェースである。
【０２１４】
符号化部７１は、ＡＳＩＣ等のハードウェアにより、第１動き探索部１１及び主符号化処理部１３の機能を実現する。
【０２１５】
このような構成によっても、上記と同様に作用する。
【０２１６】
なお、上記では判定プログラムがプログラム記憶部６２に記憶されている態様を説明したが、判定プログラムは、ＣＤ−ＲＯＭや、ＵＳＢを介して接続可能なフラッシュメモリ等の可搬型の記録媒体に記録されている形態で提供することも可能である。
【０２１７】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０２１８】
以上の実施形態に関し、更に以下の付記を開示する。
【０２１９】
（付記１）
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行う第１動き探索部と、
前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部と、
前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、
前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させる制御部と、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを、前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックとして判定し、前記特定ブロック以外のブロックを、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックとして判定する判定部と、
前記判定部において前記特定ブロックと判定されたブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記判定部において前記非特定ブロックと判定されたブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う第２動き探索部と、
を備えた符号化装置。
【０２２０】
（付記２）
前記判定部は、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い順に上位Ｎ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）のブロックを前記特定ブロックとして判定するか、又は、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い方から順に前記直接読出データ量を累計したときの累計値が前記上限値を越えない範囲内で、前記第１動きベクトルの符号化効率が高いブロックから順に前記特定ブロックとして判定する
付記１に記載の符号化装置。
【０２２１】
（付記３）
前記判定部は、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックについて、各ブロックの第１動きベクトルの符号化効率を示す値の度数分布又はヒストグラムを生成し、前記生成した度数分布又はヒストグラムの前記値が示す符号化効率が高い順に上位の階級から度数を加算していき、度数の累計値がＮ（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定するか、又は、前記値が示す符号化効率が高い順に上位の階級から各ブロックの前記直接読出データ量を加算していき、その累計値が前記上限値を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定する
付記１に記載の符号化装置。
【０２２２】
（付記４）
前記判定部は、
前記複数のブロックのうち、既に前記特定ブロックと判定されたブロックを除くブロックから、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを抽出し、該抽出したブロックの中で前記第１動きベクトルの符号化効率が最も高いブロックを前記特定ブロックとして判定する第１判定処理と、
前記第１判定処理が１回実行される毎に、両隣が前記特定ブロックとされたブロックを選択し、該選択したブロックの各々について、前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される第３探索範囲が、前記両隣の特定ブロックが前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される探索範囲の各々と、前記両隣が前記特定ブロックとされたブロックの前記第２動き探索の処理中に前記参照画像記憶部に記憶されている範囲との合成範囲に含まれるか否かを判定し、前記第３探索範囲が前記合成範囲に含まれると判定したブロックを、前記特定ブロックとして判定する第２判定処理とを、
前記第１の判定処理においてＮ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）の特定ブロックが判定されるまで繰り返し行うか、又は、前記第１判定処理で前記特定ブロックと判定されたブロックの前記直接読出データ量の合計値が前記上限値を越えない範囲内で繰り返し行う
付記１に記載の符号化装置。
【０２２３】
（付記５）
前記制御部は、前記第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性がない参照画像を前記参照画像記憶部から消去し、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性があるものの、前記参照画像記憶部に未だ記憶されていない参照画像を前記記憶部から読出して前記参照画像記憶部に記憶する制御を行う
付記１〜付記４の何れか１項記載の符号化装置。
【０２２４】
（付記６）
前記制御部は、前記第２動き探索の処理対象のブロックが次のブロックに切替えられる際に、該切替以降に処理対象とされる各ブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性がない参照画像を前記参照画像記憶部から消去し、前記次のブロックを前記非特定ブロックとしたときに探索範囲として設定される可能性があるものの、前記参照画像記憶部に未だ記憶されていない参照画像を前記記憶部から読出して前記参照画像記憶部に記憶する
付記１〜付記４の何れか１項記載の符号化装置。
【０２２５】
（付記７）
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行い、
前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部に、前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させ、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを、前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックとして判定し、前記特定ブロック以外のブロックを、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックとして判定し、
前記特定ブロックと判定されたブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記非特定ブロックと判定されたブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う、
符号化方法。
【０２２６】
（付記８）
前記特定ブロックの判定において、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い順に上位Ｎ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）のブロックを前記特定ブロックとして判定するか、又は、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い方から順に前記直接読出データ量を累計したときの累計値が前記上限値を越えない範囲内で、前記第１動きベクトルの符号化効率が高いブロックから順に前記特定ブロックとして判定する
付記７に記載の符号化方法。
【０２２７】
（付記９）
前記特定ブロックの判定において、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックについて、各ブロックの第１動きベクトルの符号化効率を示す値の度数分布又はヒストグラムを生成し、前記生成した度数分布又はヒストグラムの前記値が示す符号化効率が高い順に上位の階級から度数を加算していき、度数の累計値がＮ（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定するか、又は、前記値が示す符号化効率が高い順に上位の階級から各ブロックの前記直接読出データ量を加算していき、その累計値が前記上限値を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定する
付記７に記載の符号化方法。
【０２２８】
（付記１０）
前記特定ブロックの判定において、前記複数のブロックのうち、既に前記特定ブロックと判定されたブロックを除くブロックから、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを抽出し、該抽出したブロックの中で前記第１動きベクトルの符号化効率が最も高いブロックを前記特定ブロックとして判定する第１判定処理と、
前記第１判定処理が１回実行される毎に、両隣が前記特定ブロックとされたブロックを選択し、該選択したブロックの各々について、前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される第３探索範囲が、前記両隣の特定ブロックが前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される探索範囲の各々と、前記両隣が前記特定ブロックとされたブロックの前記第２動き探索の処理中に前記参照画像記憶部に記憶されている範囲との合成範囲に含まれるか否かを判定し、前記第３探索範囲が前記合成範囲に含まれると判定したブロックを、前記特定ブロックとして判定する第２判定処理とを、
前記第１の判定処理においてＮ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）の特定ブロックが判定されるまで繰り返し行うか、又は、前記第１判定処理で前記特定ブロックと判定されたブロックの前記直接読出データ量の合計値が前記上限値を越えない範囲内で繰り返し行う
付記７に記載の符号化方法。
【０２２９】
（付記１１）
縮小した参照フレーム画像内の第１探索範囲を参照して第１動きベクトルを探索し、符号化効率を求める第１処理と、前記縮小した参照フレーム画像内の前記第１探索範囲より小さく前記第１探索範囲に含まれる第２探索範囲を参照して第２動きベクトルを探索し、符号化効率を求める第２処理と、を含む第１動き探索を、動画像の処理対象フレーム画像内の前記第１動き探索の処理単位とされるブロック毎に行う第１動き探索部、前記第１動き探索の処理結果に基づいて行われる第２動き探索で参照される参照フレーム画像が記憶される記憶部から部分的に読出された参照画像を記憶する参照画像記憶部、前記処理対象フレーム画像内の前記第２動き探索の処理単位とされるブロック毎に、
前記第２動きベクトルに基づいて設定される前記第２動き探索の探索範囲を含む前記参照画像を、各ブロックの前記第２動き探索の開始前に前記参照画像記憶部に記憶させる制御部、及び前記第１動きベクトルを用いて前記第２動き探索を行う特定ブロックについては、前記参照フレーム画像のうち前記第１動きベクトルに基づいて設定される探索範囲の画像を参照し、前記第１動きベクトルに基づいて設定される探索範囲の画像のうち少なくとも前記参照画像記憶部に記憶されていない画像を参照するときには、前記参照画像記憶部を介さずに前記記憶部から直接読出された画像を参照して動きベクトルを探索する前記第２動き探索を行い、前記第２動きベクトルを用いて前記第２動き探索を行う非特定ブロックについては、前記参照画像記憶部に記憶されている前記参照画像のうち、前記第２動きベクトルに基づいて設定される探索範囲の画像を参照して動きベクトルを探索する前記第２動き探索を行う第２動き探索部、を備えた装置の前記第１動き探索部の処理結果を取得するコンピュータに、
前記処理対象フレーム画像を前記第２動き探索の処理単位とされるブロックに分割したときの複数のブロックのうち、前記参照画像記憶部を介さずに前記記憶部から前記参照フレーム画像を直接読出すときの直接読出データ量の合計値が上限値を超えない範囲内で、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを前特定ブロックとして判定し、前記特定ブロック以外のブロックを前記非特定ブロックとして判定し、該判定結果を前記第２動き探索部に供給する
処理を実行させるためのプログラム又はプログラムを記録した記録媒体。
【０２３０】
（付記１２）
前記処理では、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い順に上位Ｎ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）のブロックを前記特定ブロックとして判定するか、又は、前記選択したブロックのうち、前記第１動きベクトルの符号化効率が高い方から順に前記直接読出データ量を累計したときの累計値が前記上限値を越えない範囲内で、前記第１動きベクトルの符号化効率が高いブロックから順に前記特定ブロックとして判定する
付記７に記載のプログラム又はプログラムを記録した記録媒体。
【０２３１】
（付記１３）
前記処理では、前記複数のブロックのうち、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを選択し、前記選択したブロックについて、各ブロックの第１動きベクトルの符号化効率を示す値の度数分布又はヒストグラムを生成し、前記生成した度数分布又はヒストグラムの前記値が示す符号化効率が高い順に上位の階級から度数を加算していき、度数の累計値がＮ（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定するか、又は、前記値が示す符号化効率が高い順に上位の階級から各ブロックの前記直接読出データ量を加算していき、その累計値が前記上限値を越えた階級より上位の階級の各々に含まれるブロックを前記特定ブロックとして判定する
付記７に記載のプログラム又はプログラムを記録した記録媒体。
【０２３２】
（付記１４）
前記処理では、
前記複数のブロックのうち、既に前記特定ブロックと判定されたブロックを除くブロックから、前記第２動きベクトルよりも前記第１動きベクトルの方が符号化効率が高いブロックを抽出し、該抽出したブロックの中で前記第１動きベクトルの符号化効率が最も高いブロックを前記特定ブロックとして判定する第１判定処理と、
前記第１判定処理が１回実行される毎に、両隣が前記特定ブロックとされたブロックを選択し、該選択したブロックの各々について、前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される第３探索範囲が、前記両隣の特定ブロックが前記第２動き探索の処理対象とされたときの前記第１動きベクトルに基づいて設定される探索範囲の各々と、前記両隣が前記特定ブロックとされたブロックの前記第２動き探索の処理中に前記参照画像記憶部に記憶されている範囲との合成範囲に含まれるか否かを判定し、前記第３探索範囲が前記合成範囲に含まれると判定したブロックを、前記特定ブロックとして判定する第２判定処理とを、
前記第１の判定処理においてＮ個（Ｎは、前記直接読出データ量の合計値が前記上限値を超えないように予め設定された整数）の特定ブロックが判定されるまで繰り返し行うか、又は、前記第１判定処理で前記特定ブロックと判定されたブロックの前記直接読出データ量の合計値が前記上限値を越えない範囲内で繰り返し行う
付記７に記載のプログラム又はプログラムを記録した記録媒体。
【符号の説明】
【０２３３】
１     符号化装置
１０   縮小部
１１   第１動き探索部
１２   判定部
１３   主符号化処理部
１４   メモリコントローラ
１５   メインメモリ
１６   縮小画メモリ
１７   原画メモリ
１８   フレームメモリ
２５   第２動き探索部
２６   フレーム間予測部
２７   参照画像メモリ回路
３１   エントロピー符号化部
４１   制御部
４２   参照画像メモリ
６０   コンピュータ
６１   ＣＰＵ
６２   プログラム記憶部
７１   符号化部
【図１】
2014042139.tif 000003
【図２】
2014042139.tif 000004
【図３】
2014042139.tif 000005
【図４】
2014042139.tif 000006
【図９】
2014042139.tif 000007
【図１０】
2014042139.tif 000008
【図１１】
2014042139.tif 000009
【図１２】
2014042139.tif 000010
【図１４】
2014042139.tif 000011
【図１５】
2014042139.tif 000012
【図１６】
2014042139.tif 000013
【図１８】
2014042139.tif 000014
【図１９】
2014042139.tif 000015
【図２０】
2014042139.tif 000016
【図５】
2014042139.tif 000017
【図６】
2014042139.tif 000018
【図７】
2014042139.tif 000019
【図８】
2014042139.tif 000020
【図１３】
2014042139.tif 000021
【図１７Ａ】
2014042139.tif 000022
【図１７Ｂ】
2014042139.tif 000023