(57)【要約】  フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る。符号化装置（１００）は、ベクトル群の個数として、縮小動きベクトル（ＭＶｒｔ）と、予測ベクトル（ＭＶｐｔ１）と予測ベクトル（ＭＶｐｔ２）という３個を特定する。続けて、符号化装置（１００）は、特定した個数と最大読込データ量（Ｓｓｕｍ）とに基づいて、縮小動きベクトルが指定する参照フレーム（ｒＦ１）上の探索位置を含む探索範囲の画像データが読み込まれる際の対象フレーム単位の第１の最大読込データ量（Ｓ０）を決定する。
2014155738.tif 000002
【特許請求の範囲】
【請求項１】
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定する特定部と、
前記特定部によって特定された前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する決定部と、
を有することを特徴とする符号化装置。
【請求項２】
前記決定部によって決定された前記第１の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象フレームから分割されたブロックから選択された対象ブロックに対応する第１の閾値を算出する算出部と、
前記算出部によって算出された前記第１の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御する制御部と、
を有することを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記制御部は、
前記第１の閾値が前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量より大きい場合、前記対象ブロックの次に選択されるブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記決定部は、
さらに、前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量と前記第１の最大読込データ量とに基づいて、前記ベクトル群のうちの前記縮小画像上のブロックの動きベクトルとは異なるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第２の最大読込データ量を決定することを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記算出部は、
前記決定部によって決定された前記第１の最大読込データ量および前記第２の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象ブロックに対応する第２の閾値を算出し、
前記制御部は、
前記算出部によって算出された前記第２の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記制御部は、
前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルと前記異なるベクトルとの組合せのうちの、前記組合せに含まれるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量が前記第２の閾値以下となる組合せを選択することにより、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項５に記載の符号化装置。
【請求項７】
前記特定部は、
前記対象フレームから分割されたブロックに隣接するブロックの動きベクトル、または／および前記参照フレームを参照して符号化されたフレーム内の前記対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定することを特徴とする請求項１〜６のいずれか一つに記載の符号化装置。
【請求項８】
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定する特定部と、
前記特定部によって特定された前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する決定部と、
を有するコンピュータを含むことを特徴とするコンピュータシステム。
【請求項９】
コンピュータが、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行することを特徴とする符号化方法。
【請求項１０】
コンピュータに、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行させることを特徴とする符号化プログラム。
【請求項１１】
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行させる符号化プログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、コンピュータシステム、符号化方法、符号化プログラム、および記録媒体に関する。
【背景技術】
【０００２】
従来、動画像のうちの符号化対象となる対象フレームを分割した対象ブロックに類似するブロックを参照先となる参照フレームから探索し、対象ブロックから類似するブロックまでの空間的な位置の差を対象ブロックの動きベクトルとして検出する技術がある。関連する先行技術として、たとえば、縮小画像を用いて検出した縮小動きベクトルに基づく元画像を用いる詳細探索の動きベクトル検出における探索範囲を、外部メモリのアクセス粒度でなる領域に拡張して、外部メモリから画像データを読み込むものがある。また、ビデオストリームから抽出した複数の動きベクトルがそれぞれ指定する領域を含む参照画像上の読込領域のサイズが閾値を超えた場合、動きベクトルがそれぞれ指定する領域に対応する参照画像上のデータを個別のアクセスシーケンスで読み込む技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０７１６２２号公報
【特許文献２】国際公開第２００７／０５５０１３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、縮小動きベクトルが指定する探索範囲のデータを読み込むと共に、複数の動きベクトルがそれぞれ指定する探索範囲のデータを読み込むと、読込データ量が増大して、フレームの符号化にかかる処理が遅延する場合がある。【０００５】
１つの側面では、本発明は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る符号化装置、コンピュータシステム、符号化方法、符号化プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定し、特定した個数と、一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量とに基づいて、対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の対象フレーム単位の第１の最大読込データ量を決定する符号化装置、コンピュータシステム、符号化方法、符号化プログラム、および記録媒体が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかる符号化装置の動作例を示す説明図である。
【図２】図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。
【図３】図３は、符号化装置のハードウェア構成例を示すブロック図である。
【図４】図４は、符号化装置の機能例を示すブロック図である。
【図５】図５は、縮小ＭＥにおける等倍ＭＥ探索範囲算出手順の一例を示す説明図である。
【図６】図６は、Ｓ０＿ｂの算出手順の一例を示す説明図である。
【図７】図７は、等倍ＭＥの各探索範囲候補における予測ベクトルを追加した際の、組合せの一例を示す説明図である。
【図８】図８は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その１）である。
【図９】図９は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その２）である。
【図１０】図１０は、時間予測ベクトルの説明図である。
【図１１】図１１は、符号化処理手順の一例を示すフローチャートである。
【図１２】図１２は、縮小ＭＥ処理手順の一例を示すフローチャートである。
【図１３】図１３は、等倍ＭＥ処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の符号化装置、コンピュータシステム、符号化方法、符号化プログラム、および記録媒体の実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかる符号化装置の動作例を示す説明図である。符号化装置１００は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２やＨ．２６４等の規格が定める動画像符号化方式に従って、動き検出を行うコンピュータである。さらに、符号化装置１００は、階層型の動き検出を行う。
【００１１】
ここで、階層型の動き検出とは、対象フレームを縮小した縮小画像と参照フレームを縮小した縮小画像とを用いて動き検出処理を行い、検出した動きベクトルから特定される参照フレーム上の探索範囲について対象フレームの動き検出処理を行う手法である。以下、対象フレームの縮小画像に対する動き検出処理を、「縮小ＭＥ（Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ）処理」と呼称する。また、対象フレームに対する動き検出処理を、「等倍ＭＥ処理」と呼称する。
【００１２】
また、動き検出処理とは、対象画像から分割された元ブロックと類似するブロックを参照画像から探索し、元ブロックとの空間的な位置の差を動きベクトルとして出力する処理である。ここで、対象画像は、縮小ＭＥ処理であれば、縮小画像であり、等倍ＭＥ処理であれば、対象フレームである。ブロックとは、対象画像や参照画像を、たとえば、８×８［画素］や１６×１６［画素］などの単位で区切って分割した画像であり、いわゆるマクロブロックである。
【００１３】
具体的には、符号化装置１００は、縮小ＭＥ処理において、所定の縮小率で対象フレームを縮小した縮小画像と参照画像を縮小した画像とを用いて、動きベクトルを検出する。縮小ＭＥ処理において検出した動きベクトルを、以下、「縮小動きベクトル」と呼称する。より具体的には、符号化装置１００は、動きベクトルの候補となる候補ベクトルごとに、候補ベクトルに対応する参照ブロックと元ブロックとの違いを示す評価値を算出する。そして、符号化装置１００は、たとえば、算出した評価値が最小となる候補ベクトルを縮小動きベクトルとして出力する。
【００１４】
続けて、符号化装置１００は、等倍ＭＥ処理において、対象フレームと参照フレームを用いて、縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲から動きベクトルを再探索する。
【００１５】
評価値は、たとえば、元ブロックと参照ブロックとの対応する画素間の差分を表す値を累積加算することにより算出される。評価値は、元ブロックと参照ブロックとの類似度を判断する指標となる。画素間の差分を表す値は、たとえば、画素間の画素値の差である。画素値は、画素が示す色情報であり、たとえば、輝度成分値、青色色差成分値、赤色色差成分値などの成分値であってもよく、また、赤成分値、緑成分値、青成分値などの成分値であってもよい。
【００１６】
評価値は、たとえば、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）やＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）である。
【００１７】
このように、縮小ＭＥ処理と等倍ＭＥ処理とによって動きベクトルを検出する方法は、参照フレーム全体を参照して動きベクトルを検出する場合に比べて、参照フレームが格納された外部メモリから読み出される画像データの量を削減することができる。
【００１８】
さらに、符号化効率の向上および画質向上のため、元の解像度での動きベクトルを検出する際に、縮小動きベクトルとは異なるベクトルを追加したベクトル群が指定する探索位置を含む探索範囲から動きベクトルを探索する場合がある。この場合、元の解像度での動きベクトルを検出する際の参照画像の探索範囲は、縮小動きベクトルを中心とする探索範囲と、追加される異なるベクトルを中心とする探索範囲とを合わせた範囲となる。符号化効率の向上とは、符号化された動画像の符号量が少なくなり、符号前の動画像と比較してより圧縮されたことを示す。
【００１９】
追加する異なるベクトルを、以下、「予測ベクトル」と呼称する。予測ベクトルは、空間予測ベクトルと、時間予測ベクトルとがある。予測ベクトルのより詳細な説明については、図７、図１０にて後述する。
【００２０】
このように、元の解像度での動きベクトルを検出する際に予測ベクトルを追加する場合、参照画像の探索範囲が増加するため、使用するメモリ帯域が増加し、使用可能なメモリ帯域を超えてしまう可能性がある。使用するメモリ帯域が、使用可能なメモリ帯域を超えると、たとえば、リアルタイムでの符号化処理を行っている場合、符号化された動画像のコマ落ちといった動作破たんが発生する。
【００２１】
そこで、本実施の形態にかかる符号化装置１００は、フレームのブロックの動き検出を行う際、予測ベクトル数と単位時間に読込可能な参照フレームのデータ量に応じて、縮小動きベクトルの最大読込データ量を決定する。これにより、符号化装置１００は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る。
【００２２】
図１では、符号化装置１００と、一連のフレームを記憶する外部メモリ１０１とを表示する。符号化装置１００と外部メモリ１０１とは、Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）１０２により接続される。図１の（ａ）に示す符号化装置１００は、一連のフレームのうちの対象フレームｔＦ１を選択して、符号化するとする。また、一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量が、外部メモリ１０１のメモリ帯域によって決まるものとする。一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量を、Ｓｓｕｍとする。Ｓｓｕｍについては、図１１にて後述する。
【００２３】
このとき、符号化装置１００は、対象フレームｔＦ１の参照先となる参照フレームｒＦ１上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。ベクトル群の個数は、ベクトル群に含まれるベクトルの本数である。一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数によって、空間予測ベクトルの個数が特定できるため、予測ベクトルの個数が特定できることとなる。
【００２４】
具体的に、図１の（ａ）に示す符号化装置１００は、ベクトル群の個数として、縮小動きベクトルＭＶｒｔと、予測ベクトルＭＶｐｔ１と予測ベクトルＭＶｐｔ２という３個を特定する。続けて、符号化装置１００は、特定した個数と、Ｓｓｕｍとに基づいて、縮小動きベクトルが指定する参照フレームｒＦ１上の探索位置を含む探索範囲の画像データが読み込まれる際の対象フレーム単位の第１の最大読込データ量Ｓ０を決定する。たとえば、符号化装置１００は、特定した個数が多い程、第１の最大読込データ量Ｓ０を少なくする。より詳細には、符号化装置１００は、特定した個数が３であれば、第１の最大読込データ量Ｓ０＝Ｓｓｕｍ×０．７として決定する。
【００２５】
図１の（ｂ）に示す符号化装置１００は、一連のフレームのうちの対象フレームｔＦ２を選択して、符号化するとする。そして、符号化装置１００は、対象フレームｔＦ２の参照先となる参照フレームｒＦ２上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。図１の（ｂ）に示す符号化装置１００は、ベクトル群の個数として、縮小動きベクトルＭＶｒｔと、予測ベクトルＭＶｐｔ１という２個を特定する。そして、符号化装置１００は、特定した個数が２であれば、第１の最大読込データ量Ｓ０＝Ｓｓｕｍ×０．８として決定する。
【００２６】
図１の（ａ）と図１の（ｂ）とでは、第１の最大読込データ量Ｓ０の大きさを、外部メモリ１０１と符号化装置１００を繋げた矢印の塗りつぶした量で表現している。このように、符号化装置１００は、予測ベクトルの数が少なければ、縮小動きベクトルＭＶｒｔにかかる制限を発生しにくくして、符号化効率の向上を図る。次に、図２〜図１３を用いて、符号化装置１００の詳細を説明する。
【００２７】
（コンピュータシステム２００のハードウェア構成例）
次に、符号化装置１００が適用されるコンピュータシステム２００のハードウェアの一例について説明する。コンピュータシステム２００は、たとえば、動画像を記録・再生する機能を有するシステムであり、具体的には、たとえば、パーソナル・コンピュータ、テレビジョン、レコーダ、スマートフォン、ビデオカメラ、デジタルカメラなどである。
【００２８】
図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。図２において、コンピュータシステム２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。また、コンピュータシステム２００は、撮像素子２０４と、撮像素子Ｉ／Ｆ２０５と、操作パネル２０６と、記録メディア２０７と、外部Ｉ／Ｆ２０８と、符号化装置１００とを含む。
【００２９】
また、コンピュータシステム２００は、ディスプレイ２０９と、ディスプレイ出力Ｉ／Ｆ２１０とを含む。また、ＣＰＵ２０１〜ＲＡＭ２０３と、撮像素子Ｉ／Ｆ２０５と、外部Ｉ／Ｆ２０８と、ディスプレイ出力Ｉ／Ｆ２１０と、符号化装置１００とは、バス２１１で相互に接続される。図１に示した外部メモリ１０１は、ＲＡＭ２０３や記録メディア２０７といった記憶装置に相当する。また、外部メモリ１０１がＲＡＭ２０３に相当する場合、図１に示したＩ／Ｆ１０２は、図２に図示していないが、ＲＡＭ２０３とバス２１１との間にあるＩ／Ｆに相当する。また、外部メモリ１０１が記録メディア２０７に相当する場合、Ｉ／Ｆ１０２は、外部Ｉ／Ｆ２０８に相当する。
【００３０】
ＣＰＵ２０１は、コンピュータシステム２００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、コンピュータシステム２００のブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される揮発性メモリである。
【００３１】
撮像素子２０４は、対象物から発した光を電気信号に変換する装置である。たとえば、撮像素子２０４は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサ、やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサなどである。
【００３２】
撮像素子Ｉ／Ｆ２０５は、記録時に撮像素子２０４を制御することにより、撮像素子２０４からの信号を画像フォーマットに変換してＲＡＭ２０３に格納する装置である。操作パネル２０６は、コンピュータシステム２００が有する液晶タッチパネルや操作ボタンである。記録メディア２０７は、フラッシュＲＯＭ等といった記憶装置である。また、記録メディア２０７は、本実施の形態にかかる符号化プログラムを記録してもよい。外部Ｉ／Ｆ２０８は、操作パネル２０６、および記録メディア２０７を制御する。また、外部Ｉ／Ｆ２０８は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークを介して、コンピュータシステム２００以外の他の装置に接続されてもよい。
【００３３】
ディスプレイ２０９は、撮像素子２０４が記録した画像フォーマットを表示する。ディスプレイ出力Ｉ／Ｆ２１０は、ディスプレイ２０９の制御を行う。
【００３４】
図３は、符号化装置のハードウェア構成例を示すブロック図である。符号化装置１００は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２と、フレーム内予測部３０３と、動き補償部３０４と、予測画像選択部３０５と、誤差画像生成部３０６とを含む。さらに、符号化装置１００は、直交変換／量子化部３０７と、逆量子化／逆直交変換再構成部３０８と、デブロッキングフィルタ部３０９と、エントロピー符号化部３１０とを含む。
【００３５】
縮小ＭＥ部３０１は、外部メモリから縮小された符号化対象画像、縮小された参照画像を読み込み、縮小ＭＥ処理を行う。等倍ＭＥ部３０２は、外部メモリから元の解像度の原画像、元の解像度の参照画像を読み込み、等倍ＭＥ処理を行う。フレーム内予測部３０３は、フレーム内予測処理を行う。
【００３６】
動き補償部３０４は、等倍ＭＥ部３０２で決定された動きベクトルに基づいて、フレーム間予測画像を生成する。
【００３７】
予測画像選択部３０５は、符号化処理制御に応じて、フレーム間予測画像か、フレーム内予測画像かのうちどちらか一方を選択する。誤差画像生成部３０６は、予測画像選択部３０５で出力された予測画像と原画像の差分を算出する。
【００３８】
直交変換／量子化部３０７は、差分画像に対して直交変換、量子化処理を行う。逆量子化／逆直交変換再構成部３０８は、量子化後の係数に対して逆量子化、逆直交変換を行い、予測画像と足し合わせて再構成画像を得る。
【００３９】
デブロッキングフィルタ部３０９は、ブロックノイズを除去するデブロッキングフィルタ処理を行う。エントロピー符号化部３１０では、予測情報や係数情報を入力として、エントロピー符号化処理を行い、符号化ストリームを生成する。
【００４０】
（符号化装置１００の機能）
次に、符号化装置１００の機能について説明する。図４は、符号化装置の機能例を示すブロック図である。符号化装置１００は、特定部４０１と、決定部４０２と、算出部４０３と、制御部４０４と、を含む。なお、特定部４０１および決定部４０２は、縮小ＭＥ部３０１が実行する前に行われる機能となる。算出部４０３は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２との何れにも含まれる。制御部４０４は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２とを制御する。
【００４１】
また、制御部となる特定部４０１〜制御部４０４は、記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、特定部４０１〜制御部４０４の機能を実現してもよい。記憶装置とは、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、記録メディア２０７などである。
【００４２】
特定部４０１は、対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。特定部４０１は、縮小ＭＥ部３０１と等倍ＭＥ部３０２とによって、対象フレームから分割されたブロックの動きベクトルを検出する際に行われる。
【００４３】
また、特定部４０１は、対象フレームから分割されたブロックに隣接するブロックの動きベクトル、または参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定してもよい。対象フレームから分割されたブロックに隣接するブロックの動きベクトルについては、図７にて後述する。また、参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトルについては、図７にて後述する。
【００４４】
また、特定部４０１は、対象フレームから分割されたブロックに隣接するブロックの動きベクトル、および参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定してもよい。なお、特定したフレームの個数は、符号化装置１００内にあるフリップフロップ等の記憶領域に記憶される。
【００４５】
決定部４０２は、特定部４０１によって特定された個数と、Ｓｓｕｍとに基づいて、縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第１の最大読込データ量Ｓ０を決定する。Ｓ０の決定手順の具体例は、たとえば図１０にて説明する。
【００４６】
決定部４０２は、さらに、特定部４０１によって特定された個数と、ＳｓｕｍとＳ０とに基づいて、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第２の最大読込データ量Ｓ１を決定してもよい。
【００４７】
算出部４０３は、決定部４０２によって決定された第１の最大読込データ量と、対象フレームに含まれるブロック数とに基づいて、対象フレームから分割されたブロックから選択された対象ブロックに対応する第１の閾値Ｓ０＿ｂを算出する。Ｓ０＿ｂの算出手順としては、図５と図６とで後述する。
【００４８】
また、算出部４０３は、決定部４０２によって決定された第１の最大読込データ量および第２の最大読込データ量と、対象フレームに含まれるブロック数とに基づいて、対象ブロックに対応する第２の閾値Ｓｓｕｍ＿ｂを算出してもよい。Ｓｓｕｍ＿ｂについては、Ｓ０＿ｂの算出手順と同様の手順を採用することができる。なお、算出されたＳ０＿ｂ、Ｓｓｕｍ＿ｂは、符号化装置１００内にあるフリップフロップ等の記憶領域に記憶される。
【００４９】
制御部４０４は、算出部４０３によって算出された第１の閾値Ｓ０＿ｂに基づいて、対象ブロックの動きベクトルを検出する際に、対象ブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御する。たとえば、制御部４０４は、縮小ＭＥ部３０１に対して、Ｓ０＿ｂを超えないような縮小動きベクトルを検出するように制御する。
【００５０】
また、制御部４０４は、次に示す条件を満たす場合、対象ブロックの次に選択されるブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御してもよい。次に示す条件とは、第１の閾値Ｓ０＿ｂが対象ブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量より大きい場合である。具体的な制御の内容については、図５にて記述する。
【００５１】
また、制御部４０４は、算出部４０３によって算出された第２の閾値Ｓｓｕｍ＿ｂに基づいて、対象ブロックの動きベクトルを検出する際に、対象ブロックに対応するベクトル群が指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御してもよい。たとえば、制御部４０４は、等倍ＭＥ部３０２に対して、Ｓｓｕｍ＿ｂを超えないような探索範囲とするように制御する。たとえば、制御部４０４は、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲を狭めてもよい。
【００５２】
また、制御部４０４は、縮小動きベクトルと予測ベクトルとの組合せのうちの、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量が第２の閾値以下となる組合せを選択することにより、読込データ量を制御してもよい。
【００５３】
具体的に、制御部４０４は、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量が第２の閾値以下となる組合せを選択する。そして、制御部４０４は、選択した組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データを読み込むように等倍ＭＥ部３０２を制御する。具体的な制御の内容は、図１３にて後述する。
【００５４】
図５は、縮小ＭＥにおける等倍ＭＥ探索範囲算出手順の一例を示す説明図である。図５では、対象ブロックの縮小動き探索において得られた縮小動きベクトルＭＶｒｔと、前ブロックの縮小動きベクトルＭＶｒｐを入力として、等倍ＭＥにおいて対象ブロックの縮小動きベクトルＭＶｒｔを用いた場合の探索範囲を算出する例について説明する。
【００５５】
図５の（ａ）では、前ブロックの縮小動きベクトルＭＶｒｐと、対象ブロックの縮小動きベクトルＭＶｒｔとの位置関係を示す。縮小動きベクトルＭＶｒｐと縮小動きベクトルＭＶｒｔとは、似たような値になりやすい。
【００５６】
図５の（ｂ）では、等倍ＭＥの参照領域を示す。各ブロックにおける等倍ＭＥの参照領域は、縮小動きベクトルＭＶｒｔを等倍にスケーリングした移動先のブロックに対して、等倍ＭＥで探索する範囲だけ拡張した参照領域５０１となる。符号化装置１００は、それぞれのブロックの参照領域５０１に対してアクセスする際に、外部メモリの最小アクセス粒度に対応するメモリアライメント単位でアクセスする。メモリアライメント単位の記憶領域を、以下、「アライメント領域」と称する。
【００５７】
図５の（ｃ）では、アライメント領域５０２を示す。メモリアライメントは、たとえば、１ラインとなることもあるし、８ｘ４＝３２［ｂｙｔｅ］等の矩形となることもある。本実施の形態では、３２［ｂｙｔｅ］の矩形をメモリアライメントとする。図５の（ｃ）では、アライメント領域５０２の中での、前ブロックにおける縮小動きベクトルＭＶｒｐから特定される参照領域５０１ｒｐと、対象ブロックにおける縮小動きベクトルＭＶｒｔから特定される参照領域５０１ｒｔとを示す。
【００５８】
図５の（ｄ）では、メモリアライメント単位で前ブロックの参照領域５０１ｒｐにアクセスする例と、対象ブロックの参照領域５０１ｒｔにアクセスする例を示す。符号化装置１００は、参照領域５０１にアクセスしようとすると、参照領域５０１を含むアライメント領域５０２にアクセスすることになる。アライメント領域５０２が示す記憶領域が、探索範囲となる。また、アライメント領域５０２のデータ量を、「読込データ量」と称する。
【００５９】
具体的に、符号化装置１００がメモリアライメント単位で前ブロックの参照領域５０１ｒｐにアクセスしようとすると、符号化装置１００は、図５の（ｄ）にて粗いハッチを付与したアライメント領域５０３ｒｐにアクセスすることになる。
【００６０】
また、符号化装置１００がメモリアライメント単位で対象ブロックの参照領域５０１ｒｔにアクセスしようとすると、符号化装置１００は、図５の（ｄ）にて細かいハッチを付与したアライメント領域５０３ｒｔにアクセスすることになる。アライメント領域５０３ｒｔは、対象ブロックが参照するアライメント領域から、前ブロックで参照するアライメント領域５０３ｒｐと重なる領域を除いた領域となる。
【００６１】
具体的に、符号化装置１００は、縮小動きベクトルを用いた場合の対象ブロックの読込データ量を、アライメント領域５０３ｒｔに矩形が１１個あることから、３２×１１＝３５２［ｂｙｔｅ］であると算出する。
【００６２】
そして、符号化装置１００は、読込データ量とＳ０＿ｂとを比較する。Ｓ０＿ｂは、縮小ＭＥ処理における、等倍ＭＥ処理時の縮小動きベクトルを用いた場合のブロックごとの読込データ量の閾値である。読込データ量がＳ０＿ｂ以下である場合、符号化装置１００は、対象ブロックの次ブロックにおいて通常の縮小動き探索を行う。読込データ量がＳ０＿ｂを超えた場合、符号化装置１００は、次ブロックにおいて縮小動き探索に制限をかける。具体的な制限の内容は、たとえば、次ブロックの縮小動きベクトルを、対象ブロックの縮小動きベクトルＭＶｒｔに近づける、または、縮小動き探索範囲を小さくする等である。このような制限をかけることにより、次ブロックのメモリアライメント単位でアクセスする際のアライメント領域の大きさを小さくすることができる。
【００６３】
読込データ量に対する第１の閾値Ｓ０＿ｂは、ブロックごとに一定値であってもよいし、ブロックごとに可変であってもよい。ブロックごとに一定値である場合の閾値算出方法の一例としては、１フレームで許容される読込データ量を、フレーム内の総ブロック数で割った値とする方法がある。ブロックごとに可変である場合の閾値算出方法について、図６を用いて説明する。
【００６４】
図６は、Ｓ０＿ｂの算出手順の一例を示す説明図である。図６では、グラフ６０１を用いて、Ｓ０＿ｂの算出手順の一例を示す。グラフ６０１の横軸は、フレーム内ブロック数を示す。グラフ６０１の縦軸は、読込データ量の合計を示す。
【００６５】
グラフ６０１内で示す、上限直線６０２は、対象ブロックが１フレームの最後のブロックに近づくにつれて読込データ量の合計を目標値Ｓ０に収束させるために用いる直線である。符号化装置１００は、各ブロックにおいてフレームの先頭のブロックから対象ブロックまでの読込データ量の合計が、上限直線６０２を超えた場合、縮小ＭＥ動き探索に制限を発生させるように、ブロックごとにＳ０＿ｂを設定する。具体的なＳ０＿ｂの値は、対象ブロック位置に対応する上限直線６０２の読込データ量から、前ブロックまでの読込データ量の合計を引いた値である。
【００６６】
たとえば、グラフ６０１において、棒グラフを黒く塗りつぶしたブロック（ｉ）が対象ブロックであるとする。グラフ６０１では、対象ブロックの読込データ量が、Ｓ０＿ｂを超えたことを示す。この場合、符号化装置１００は、対象ブロックの次ブロックであるブロック（ｉ＋１）における縮小ＭＥ動き探索に制限をかける。符号化装置１００は、対象ブロック位置に対応する上限直線６０２が示す読込データ量より、前ブロックまでの読込データ量の合計が小さくなる、ブロック（ｉ＋１）の縮小ＭＥ動き探索と、ブロック（ｉ＋２）の縮小ＭＥ動き探索と、に制限をかける。
【００６７】
図７は、等倍ＭＥの各探索範囲候補における予測ベクトルを追加した際の、組合せの一例を示す説明図である。予測ベクトルは、空間予測ベクトルと、時間予測ベクトルとがある。空間予測ベクトルは、対象ブロックの左に隣接するブロックの等倍ＭＥ結果の動きベクトルや、対象ブロックの上に隣接するブロックの等倍ＭＥ結果の動きベクトルである。対象ブロックの左に隣接するブロックの動きベクトルを、以下、「左隣接ベクトル」と称する。また、対象ブロックの上に隣接するブロックの動きベクトルを、以下、「上隣接ベクトル」と称する。
【００６８】
時間予測ベクトルは、異なる時間のフレームにおける、対象ブロックと同位置にあるブロックから時間距離に応じてスケーリングしたベクトルである。時間予測ベクトルについては、図１０にて詳細に説明する。
【００６９】
表７０１は、縮小動きベクトルと予測ベクトルとの４つの組合せにおける探索範囲候補を示す。１つ目の組合せである７０１−Ａは、予測ベクトルを追加せず、縮小動きベクトルから特定される探索範囲候補Ａを示す。また、探索範囲候補Ａの読込データ量をＲＡとする。
【００７０】
２つ目の組合せである７０１−Ｂは、予測ベクトルとして上隣接ベクトルを追加し、縮小動きベクトルと上隣接ベクトルとから特定される探索範囲候補Ｂを示す。また、探索範囲候補Ｂの読込データ量をＲＢとする。
【００７１】
３つ目の組合せである７０１−Ｃは、予測ベクトルとして時間予測ベクトルを追加し、縮小動きベクトルと時間予測ベクトルとから特定される探索範囲候補Ｃを示す。また、探索範囲候補Ｃの読込データ量をＲＣとする。
【００７２】
４つ目の組合せである７０１−Ｄは、予測ベクトルとして上隣接ベクトルと時間予測ベクトルとを追加し、縮小動きベクトルと上隣接ベクトルと時間予測ベクトルとから特定される探索範囲候補Ｄを示す。また、探索範囲候補Ｄの読込データ量をＲＤとする。
【００７３】
なお、図７に示す表７０１は、空間予測ベクトルとして上隣接ベクトルを採用した場合を示した。たとえば、空間予測ベクトルとして、左隣接ベクトルが採用されてもよいし、左隣接ベクトルと上隣接ベクトルとのうちの少なくともいずれか一方が採用されてもよい。空間予測ベクトルとして左隣接ベクトルと上隣接ベクトルとのうちの少なくともいずれか一方が採用される場合、表７０１に示す４つの組合せの他に、次に示す４つの組合せがある。
【００７４】
１つ目の組合せは、縮小動きベクトルと左隣接ベクトルとである。２つ目の組合せは、縮小動きベクトルと上隣接ベクトルと左隣接ベクトルとである。３つ目の組合せは、縮小動きベクトルと左隣接ベクトルと時間予測ベクトルとである。４つ目の組合せは、縮小動きベクトルと上隣接ベクトルと左隣接ベクトルと時間予測ベクトルとである。
【００７５】
さらに、時間予測ベクトルは、０個である場合もあるし、１個である場合もあるし、２個である場合もある。時間予測ベクトルの個数の判定基準は、図１０にて後述する。空間予測ベクトルが１個であり、時間予測ベクトルが０個の場合、縮小動きベクトルと予測ベクトルとの組合せは、２個となる。また、空間予測ベクトルが１個であり、時間予測ベクトルが２個の場合、縮小動きベクトルと予測ベクトルとの組合せは、８個となる。
【００７６】
図８は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その１）である。図８の（ａ）では、前ブロックの縮小動きベクトルＭＶｒｐと、対象ブロックの縮小動きベクトルＭＶｒｔと、対象ブロックの上隣接ベクトルＭＶｕｔと、対象ブロックの時間予測ベクトルＭＶｔｔとの位置関係を示す。
【００７７】
図８の（ｂ）では、アライメント領域５０２の中での、参照領域５０１ｒｐと、参照領域５０１ｒｔと、上隣接ベクトルＭＶｕｔから特定される参照領域５０１ｕｔと、時間予測ベクトルＭＶｔｔから特定される参照領域５０１ｔｔとを示す。
【００７８】
図９は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その２）である。図９では、探索範囲候補Ａ〜探索範囲候補Ｄのそれぞれの読込データ量ＲＡ〜ＲＤを図示する。
【００７９】
探索範囲候補Ａには矩形が１１個あることから、符号化装置１００は、読込データ量ＲＡを、３２×１１＝３５２［ｂｙｔｅ］であると算出する。また、探索範囲候補Ｂには矩形が１９個あることから、符号化装置１００は、読込データ量ＲＢを、３２×１９＝６０８［ｂｙｔｅ］であると算出する。さらに、探索範囲候補Ｃには矩形が２１個あることから、符号化装置１００は、読込データ量ＲＣを、３２×２１＝６７２［ｂｙｔｅ］であると算出する。同様に、探索範囲候補Ｄには矩形が２８個あることから、符号化装置１００は、読込データ量ＲＤを、３２×２８＝８９６［ｂｙｔｅ］であると算出する。
【００８０】
図１０は、時間予測ベクトルの説明図である。図１０では、時間予測ベクトルの具体例を図示する。図１０では、対象フレームが、先頭のフレームから数えて、Ｎ番目に表示されるフレームである場合について説明する。また、対象フレームが符号化される順番は、ｎ番目であるとする。Ｎとｎは、１以上の整数である。
【００８１】
また、前フレームとなる、Ｎ−１番目に表示されるフレームの符号化される順番は、ｎ−２番目となるとする。また、次フレームとなるＮ＋１番目に表示されるフレームは、符号化される順番がｎ−１番目となるとする。なお、図１０に示すような、表示順と符号化処理順が異なる状態となる場合とは、たとえば、Ｎ番目に表示するフレームが、Ｎ＋１番目に表示するフレームを参照する場合である。具体的に、Ｎ番目に表示するフレームは、Ｎ＋１番目に表示するフレームが符号化された後、符号化されたデータが復号された復号画像を参照して符号化される。
【００８２】
このとき、対象ブロックの時間予測ベクトルは、対象フレームとは異なるフレームであり、符号化済のフレームの対象ブロックの同位置にあるブロックの動きベクトルを、参照フレームの時間距離に応じてスケーリングしたベクトルとなる。
【００８３】
図１０の例では、Ｎ＋１番目に表示されるフレームの動きベクトルＭＶｅｎが、対象ブロックの同位置にあるブロックの動きベクトルとなる。また、参照フレームとなるＮ−１番目のフレームとの時間距離をフレーム数で表現すると、Ｎ−１番目のフレームから対象フレームまでが１となり、Ｎ−１番目のフレームからＮ＋１番目のフレームまでが、２となる。したがって、符号化装置１００は、動きベクトルＭＶｅｎの大きさを１／２としたベクトルを、時間予測ベクトルとして算出する。
【００８４】
また、時間予測ベクトルが０個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが無い場合であり、たとえば、Ｎ＋１番目に表示されるフレームが、イントラ予測を行うフレームである場合である。また、時間予測ベクトルが１個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが１個ある場合であり、たとえば、Ｎ＋１番目に表示されるフレームが、インター予測を行うフレームである場合である。
【００８５】
また、時間予測ベクトルが２個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが２個ある場合である。たとえば、Ｎ＋１番目に表示されるフレームとＮ−２番目に表示されるフレームが、インター予測を行うフレームである場合である。
【００８６】
なお、Ｎ−１番目以前に表示されるフレームの動きベクトルを用いて、Ｎ番目の動きベクトルの時間予測ベクトルを算出して、予測ベクトルに追加することを許可するか否かは、符号化装置１００が採用する動画像符号化方式に依ることになる。したがって、符号化装置１００は、符号化装置１００が採用する動画像符号化方式が、Ｎ−１番目以前に表示されるフレームの動きベクトルをＮ番目の動きベクトルの時間予測ベクトルとして採用することを許可するか否かを確認する。採用することを許可するならば、符号化装置１００は、Ｎ−１番目以前に表示するフレームがＮ−１番目に表示するフレームを参照して符号化されたフレームであるか否かを判断することにより、時間予測ベクトルの個数を計数する。次に、図１１〜図１３を用いて、符号化装置１００が実行するフローチャートを示す。
【００８７】
図１１は、符号化処理手順の一例を示すフローチャートである。符号化処理は、一連のフレームを符号化する処理である。符号化装置１００は、一連のフレームのうちの先頭のフレームを対象フレームとして選択する（ステップＳ１１０１）。
【００８８】
次に、符号化装置１００は、メモリ帯域から、Ｓｂａｎｄを決定する（ステップＳ１１０２）。ステップＳ１１０２におけるメモリ帯域は、外部メモリ１０１のメモリ帯域のうちの、符号化処理の等倍ＭＥ処理に割り当てることができるメモリ帯域である。Ｓｂａｎｄは、符号化処理において固定値であってもよいし、可変であってもよい。たとえば、コンピュータシステム２００において、符号化処理以外の処理にメモリ帯域を多く割り当てたい場合、符号化装置１００は、Ｓｂａｎｄを一時的に小さく決定してもよい。一方、符号化処理以外の処理が少ない場合、符号化装置１００は、Ｓｂａｎｄを一時的に大きく決定してもよい。
【００８９】
次に、符号化装置１００は、Ｓｓｕｍ＝Ｓｂａｎｄ／符号化におけるフレームレートｆを算出する（ステップＳ１１０３）。たとえば、１秒間に６０フレームが存在する場合、フレームレートは、６０となる。続けて、符号化装置１００は、対象フレームにおける予測ベクトルの最大個数を特定する（ステップＳ１１０４）。
【００９０】
次に、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍの関係式と、予測ベクトルの最大個数から、Ｓ０とＳ１とを決定する（ステップＳ１１０５）。たとえば、予測ベクトルのうちの時間予測ベクトルの個数が０である場合、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍを満たし、Ｓ０：Ｓ１＝８：２を満たすように、Ｓ０とＳ１とを決定する。また、予測ベクトルのうちの時間予測ベクトルの個数が１以上である場合、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍを満たし、Ｓ０：Ｓ１＝７：３を満たすように、Ｓ０とＳ１とを決定する。さらに、符号化装置１００は、予測ベクトルのうちの時間予測ベクトルの個数が２である場合のＳ０とＳ１との比率を設定しておいてもよい。
【００９１】
続けて、符号化装置１００は、縮小ＭＥ処理を実行する（ステップＳ１１０６）。縮小ＭＥ処理の詳細は、図１２にて後述する。次に、符号化装置１００は、等倍ＭＥ処理を実行する（ステップＳ１１０７）。等倍ＭＥ処理の詳細は、図１３にて後述する。等倍ＭＥ処理の終了後、符号化装置１００は、動き補償部３０４、予測画像選択部３０５等により、対象フレームに対する残りの符号化処理を行う。
【００９２】
続けて、符号化装置１００は、一連のフレーム全てを選択したか否かを判断する（ステップＳ１１０８）。まだ選択していないフレームがある場合（ステップＳ１１０８：Ｎｏ）、符号化装置１００は、次のフレームを対象フレームとして選択する（ステップＳ１１０９）。そして、符号化装置１００は、ステップＳ１１０２の処理に移行する。
【００９３】
一連のフレーム全てを選択した場合（ステップＳ１１０８：Ｙｅｓ）、符号化装置１００は、符号化処理を終了する。符号化処理を実行することにより、符号化装置１００は、メモリ帯域を超えずに、一連のフレームを符号化することができる。
【００９４】
図１２は、縮小ＭＥ処理手順の一例を示すフローチャートである。縮小ＭＥ処理は、低解像度画像における対象ブロックの縮小動きベクトルを検出する処理である。
【００９５】
符号化装置１００は、縮小ＭＥ探索制限を無しに設定する（ステップＳ１２０１）。次に、符号化装置１００は、対象フレーム内の先頭のブロックを対象ブロックとして選択する（ステップＳ１２０２）。続けて、符号化装置１００は、対象ブロックについて、縮小ＭＥ探索制限に応じた縮小動き探索処理を実行する（ステップＳ１２０３）。縮小ＭＥ探索制限が有りの場合の縮小動き探索処理は、図５にて説明した通りである。
【００９６】
次に、符号化装置１００は、縮小動きベクトルが指定する等倍ＭＥ探索範囲の読込データ量を算出する（ステップＳ１２０４）。縮小動きベクトルが指定する等倍ＭＥ探索範囲の算出については、図５の（ｂ）〜図５の（ｄ）にて説明した通りである。そして、符号化装置１００は、Ｓ０＿ｂを算出する（ステップＳ１２０５）。
【００９７】
続けて、符号化装置１００は、読込データ量がＳ０＿ｂより小さいか否かを判断する（ステップＳ１２０６）。読込データ量がＳ０＿ｂより小さい場合（ステップＳ１２０６：Ｙｅｓ）、符号化装置１００は、縮小ＭＥ探索制限を無しに設定する（ステップＳ１２０７）。読込データ量がＳ０＿ｂ以上の場合（ステップＳ１２０６：Ｎｏ）、符号化装置１００は、縮小ＭＥ探索制限を有りに設定する（ステップＳ１２０８）。
【００９８】
ステップＳ１２０７、またはステップＳ１２０８の処理終了後、符号化装置１００は、対象フレーム内の全てのブロックを選択したか否かを判断する（ステップＳ１２０９）。対象フレーム内にまだ選択していないブロックがある場合（ステップＳ１２０９：Ｎｏ）、符号化装置１００は、次のブロックを対象ブロックとして選択する（ステップＳ１２１０）。そして、符号化装置１００は、ステップＳ１２０３の処理に移行する。
【００９９】
対象フレーム内の全てのブロックを選択した場合（ステップＳ１２０９：Ｙｅｓ）、符号化装置１００は、縮小ＭＥ処理を終了する。縮小ＭＥ処理を実行することにより、符号化装置１００は、縮小動きベクトルを検出しつつ、読込データ量がＳ０＿ｂを超えた場合、次のブロックの読込データ量を削減して、メモリ帯域を超過しないようにすることができる。
【０１００】
図１３は、等倍ＭＥ処理手順の一例を示すフローチャートである。等倍ＭＥ処理は、縮小動きベクトルが指定する探索範囲をブロックマッチングにより探索する処理である。
【０１０１】
符号化装置１００は、対象フレーム内の先頭のブロックを対象ブロックとして選択する（ステップＳ１３０１）。次に、符号化装置１００は、縮小動きベクトルを取得する（ステップＳ１３０２）。続けて、符号化装置１００は、予測ベクトルを取得する（ステップＳ１３０３）。予測ベクトルについては、図７で説明した通りである。次に、符号化装置１００は、縮小動きベクトルと予測ベクトルとの組合せを生成する（ステップＳ１３０４）。続けて、符号化装置１００は、各組合せの探索範囲候補の読込データ量を算出する（ステップＳ１３０５）。そして、符号化装置１００は、Ｓｓｕｍ＿ｂを算出する（ステップＳ１３０６）。Ｓｓｕｍ＿ｂは、Ｓ０＿ｂと同様の方法で算出することができる。
【０１０２】
次に、符号化装置１００は、各組合せの探索範囲候補の読込データ量と、Ｓｓｕｍ＿ｂとを比較する（ステップＳ１３０７）。
【０１０３】
続けて、符号化装置１００は、Ｓｓｕｍ＿ｂ以下となる組合せのうちの、ベクトル数が最大となる組合せを選択する（ステップＳ１３０８）。ベクトル数が最大となる組合せが複数ある場合、符号化装置１００は、ベクトル数が最大となる組合せのうちのどの組合せを選択してもよい。
【０１０４】
次に、符号化装置１００は、選択した組合せの探索範囲候補のデータを、外部メモリから読み込む（ステップＳ１３０９）。続けて、符号化装置１００は、等倍動き探索処理を実行する（ステップＳ１３１０）。次に、符号化装置１００は、対象フレーム内の全てのブロックを選択したか否かを判断する（ステップＳ１３１１）。対象フレーム内にまだ選択していないブロックがある場合（ステップＳ１３１１：Ｎｏ）、符号化装置１００は、次のブロックを対象ブロックとして選択する（ステップＳ１３１２）。そして、符号化装置１００は、ステップＳ１３０２の処理に移行する。
【０１０５】
全てのブロックを選択した場合（ステップＳ１３１１：Ｙｅｓ）、符号化装置１００は、等倍ＭＥ処理を終了する。等倍ＭＥ処理を実行することにより、符号化装置１００は、対象ブロックの動きベクトルを検出しつつ、メモリ帯域を超過しない範囲で予測ベクトルを追加して、符号化効率を向上することができる。
【０１０６】
以上説明したように、符号化装置１００によれば、フレームのブロックの動き検出を行う際、予測ベクトル数とＳｓｕｍに応じて、縮小動きベクトルの最大読込データ量Ｓ０を決定する。これにより、符号化装置１００は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る。符号化装置１００は、フレームの符号化にかかる処理の遅延が抑制されることにより、予測ベクトルを追加評価する場合においても、メモリ帯域超過によるコマ落ち等の動作破たんを防ぐことができる。
【０１０７】
また、符号化装置１００によれば、対象ブロックの動きベクトルを検出する際に、縮小動きベクトルが指定する探索範囲の読込データ量と、Ｓ０＿ｂとに基づいて、縮小動きベクトルが指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の一つ一つのブロックに対して縮小動きベクトルが指定する探索範囲の読込データ量がＳ０＿ｂを超えないようにする。したがって、符号化装置１００は、全ブロックの合計の読込データ量もＳ０を超えないようになり、メモリ帯域の超過を抑制することができる。
【０１０８】
また、符号化装置１００によれば、Ｓ０＿ｂが対象ブロックに対応する縮小動きベクトルが指定する探索範囲の読込データ量より大きい場合、対象ブロックの次に選択されるブロックに対応する縮小動きベクトルが指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の対象ブロックには制限をかけず、読込データ量がＳ０＿ｂを超えた場合にのみ次のブロックに対する込データ量を制限することになり、可能な限り縮小動きベクトルに制限をかけずに済ますことができる。
【０１０９】
また、符号化装置１００によれば、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第１の最大読込データ量Ｓ１を決定してもよい。これにより、符号化装置１００は、縮小動きベクトルが指定する探索範囲の画像データのブロックごとの合計がＳ０以下となり、予測ベクトルが指定する探索範囲の画像データのブロックごとの合計がＳ１以下となり、メモリ帯域の超過を抑制することができる。
【０１１０】
また、符号化装置１００によれば、対象ブロックの動きベクトルを検出する際に、ベクトル群が指定する探索範囲の読込データ量と、Ｓｓｕｍ＿ｂとに基づいて、ベクトル群が指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の一つ一つのブロックに対してベクトル群が指定する探索範囲の読込データ量がＳｓｕｍ＿ｂを超えないようにする。したがって、符号化装置１００は、全ブロックの合計の読込データ量もＳｓｕｍを超えないようになり、メモリ帯域の超過を抑制することができる。
【０１１１】
また、符号化装置１００は、対象ブロックに対応する縮小画像上のブロックの動きベクトルと予測ベクトルとの組合せから、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量がＳｓｕｍ＿ｂ以下となる組合せを選択する。そして、符号化装置１００は、対象ブロックの動きベクトルを検出する際に、選択した組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲のデータを読み込んでもよい。たとえば、符号化装置１００は、Ｓｓｕｍ＿ｂ以下となる組合せのうち、最大のベクトル数となる組合せを選択することにより、メモリ帯域の超過を抑制しつつ、符号化効率の向上を図ることができる。
【０１１２】
また、符号化装置１００は、対象フレームにおけるベクトル群の最大の個数を、空間予測ベクトル、または／および時間予測ベクトルの個数を計数することにより特定してもよい。これにより、たとえば、符号化装置１００は、空間予測ベクトルの数や時間予測ベクトルの数が少なければ、縮小動きベクトルに割り当てられる読込データ量を多くして、メモリ帯域の超過を抑制しつつ、符号化効率の向上を図ることができる。
【０１１３】
なお、本実施の形態で説明した符号化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本符号化プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本符号化プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１４】
また、本実施の形態で説明した符号化装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した符号化装置１００の特定部４０１〜制御部４０４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、符号化装置１００を製造することができる。
【符号の説明】
【０１１５】
１００  符号化装置
２００  コンピュータシステム
４０１  特定部
４０２  決定部
４０３  算出部
４０４  制御部
【図１】
2014155738.tif 000003
【図２】
2014155738.tif 000004
【図３】
2014155738.tif 000005
【図４】
2014155738.tif 000006
【図５】
2014155738.tif 000007
【図６】
2014155738.tif 000008
【図７】
2014155738.tif 000009
【図８】
2014155738.tif 000010
【図９】
2014155738.tif 000011
【図１０】
2014155738.tif 000012
【図１１】
2014155738.tif 000013
【図１２】
2014155738.tif 000014
【図１３】
2014155738.tif 000015
【手続補正書】
【提出日】平成27年8月26日(2015.8.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定する特定部と、
前記特定部によって特定された前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する決定部と、
を有することを特徴とする符号化装置。
【請求項２】
前記決定部によって決定された前記第１の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象フレームから分割されたブロックから選択された対象ブロックに対応する第１の閾値を算出する算出部と、
前記算出部によって算出された前記第１の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御する制御部と、
を有することを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記制御部は、
前記第１の閾値が前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量より大きい場合、前記対象ブロックの次に選択されるブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記決定部は、
さらに、前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量と前記第１の最大読込データ量とに基づいて、前記ベクトル群のうちの前記縮小画像上のブロックの動きベクトルとは異なるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第２の最大読込データ量を決定することを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記算出部は、
前記決定部によって決定された前記第１の最大読込データ量および前記第２の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象ブロックに対応する第２の閾値を算出し、
前記制御部は、
前記算出部によって算出された前記第２の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記制御部は、
前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルと前記異なるベクトルとの組合せのうちの、前記組合せに含まれるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量が前記第２の閾値以下となる組合せを選択することにより、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする請求項５に記載の符号化装置。
【請求項７】
前記特定部は、
前記対象フレームから分割されたブロックに隣接するブロックの動きベクトル、または／および前記参照フレームを参照して符号化されたフレーム内の前記対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定することを特徴とする請求項１〜６のいずれか一つに記載の符号化装置。
【請求項８】
コンピュータが、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行することを特徴とする符号化方法。
【請求項９】
コンピュータに、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行させることを特徴とする符号化プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化方法、および符号化プログラムに関する。
【背景技術】
【０００２】
従来、動画像のうちの符号化対象となる対象フレームを分割した対象ブロックに類似するブロックを参照先となる参照フレームから探索し、対象ブロックから類似するブロックまでの空間的な位置の差を対象ブロックの動きベクトルとして検出する技術がある。関連する先行技術として、たとえば、縮小画像を用いて検出した縮小動きベクトルに基づく元画像を用いる詳細探索の動きベクトル検出における探索範囲を、外部メモリのアクセス粒度でなる領域に拡張して、外部メモリから画像データを読み込むものがある。また、ビデオストリームから抽出した複数の動きベクトルがそれぞれ指定する領域を含む参照画像上の読込領域のサイズが閾値を超えた場合、動きベクトルがそれぞれ指定する領域に対応する参照画像上のデータを個別のアクセスシーケンスで読み込む技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０７１６２２号公報
【特許文献２】国際公開第２００７／０５５０１３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、縮小動きベクトルが指定する探索範囲のデータを読み込むと共に、複数の動きベクトルがそれぞれ指定する探索範囲のデータを読み込むと、読込データ量が増大して、フレームの符号化にかかる処理が遅延する場合がある。
【０００５】
１つの側面では、本発明は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る符号化装置、符号化方法、および符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定し、特定した個数と、一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量とに基づいて、対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の対象フレーム単位の第１の最大読込データ量を決定する符号化装置、符号化方法、および符号化プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかる符号化装置の動作例を示す説明図である。
【図２】図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。
【図３】図３は、符号化装置のハードウェア構成例を示すブロック図である。
【図４】図４は、符号化装置の機能例を示すブロック図である。
【図５】図５は、縮小ＭＥにおける等倍ＭＥ探索範囲算出手順の一例を示す説明図である。
【図６】図６は、Ｓ０＿ｂの算出手順の一例を示す説明図である。
【図７】図７は、等倍ＭＥの各探索範囲候補における予測ベクトルを追加した際の、組合せの一例を示す説明図である。
【図８】図８は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その１）である。
【図９】図９は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その２）である。
【図１０】図１０は、時間予測ベクトルの説明図である。
【図１１】図１１は、符号化処理手順の一例を示すフローチャートである。
【図１２】図１２は、縮小ＭＥ処理手順の一例を示すフローチャートである。
【図１３】図１３は、等倍ＭＥ処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の符号化装置、符号化方法、および符号化プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかる符号化装置の動作例を示す説明図である。符号化装置１００は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２やＨ．２６４等の規格が定める動画像符号化方式に従って、動き検出を行うコンピュータである。さらに、符号化装置１００は、階層型の動き検出を行う。
【００１１】
ここで、階層型の動き検出とは、対象フレームを縮小した縮小画像と参照フレームを縮小した縮小画像とを用いて動き検出処理を行い、検出した動きベクトルから特定される参照フレーム上の探索範囲について対象フレームの動き検出処理を行う手法である。以下、対象フレームの縮小画像に対する動き検出処理を、「縮小ＭＥ（Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ）処理」と呼称する。また、対象フレームに対する動き検出処理を、「等倍ＭＥ処理」と呼称する。
【００１２】
また、動き検出処理とは、対象画像から分割された元ブロックと類似するブロックを参照画像から探索し、元ブロックとの空間的な位置の差を動きベクトルとして出力する処理である。ここで、対象画像は、縮小ＭＥ処理であれば、縮小画像であり、等倍ＭＥ処理であれば、対象フレームである。ブロックとは、対象画像や参照画像を、たとえば、８×８［画素］や１６×１６［画素］などの単位で区切って分割した画像であり、いわゆるマクロブロックである。
【００１３】
具体的には、符号化装置１００は、縮小ＭＥ処理において、所定の縮小率で対象フレームを縮小した縮小画像と参照画像を縮小した画像とを用いて、動きベクトルを検出する。縮小ＭＥ処理において検出した動きベクトルを、以下、「縮小動きベクトル」と呼称する。より具体的には、符号化装置１００は、動きベクトルの候補となる候補ベクトルごとに、候補ベクトルに対応する参照ブロックと元ブロックとの違いを示す評価値を算出する。そして、符号化装置１００は、たとえば、算出した評価値が最小となる候補ベクトルを縮小動きベクトルとして出力する。
【００１４】
続けて、符号化装置１００は、等倍ＭＥ処理において、対象フレームと参照フレームを用いて、縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲から動きベクトルを再探索する。
【００１５】
評価値は、たとえば、元ブロックと参照ブロックとの対応する画素間の差分を表す値を累積加算することにより算出される。評価値は、元ブロックと参照ブロックとの類似度を判断する指標となる。画素間の差分を表す値は、たとえば、画素間の画素値の差である。画素値は、画素が示す色情報であり、たとえば、輝度成分値、青色色差成分値、赤色色差成分値などの成分値であってもよく、また、赤成分値、緑成分値、青成分値などの成分値であってもよい。
【００１６】
評価値は、たとえば、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）やＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）である。
【００１７】
このように、縮小ＭＥ処理と等倍ＭＥ処理とによって動きベクトルを検出する方法は、参照フレーム全体を参照して動きベクトルを検出する場合に比べて、参照フレームが格納された外部メモリから読み出される画像データの量を削減することができる。
【００１８】
さらに、符号化効率の向上および画質向上のため、元の解像度での動きベクトルを検出する際に、縮小動きベクトルとは異なるベクトルを追加したベクトル群が指定する探索位置を含む探索範囲から動きベクトルを探索する場合がある。この場合、元の解像度での動きベクトルを検出する際の参照画像の探索範囲は、縮小動きベクトルを中心とする探索範囲と、追加される異なるベクトルを中心とする探索範囲とを合わせた範囲となる。符号化効率の向上とは、符号化された動画像の符号量が少なくなり、符号前の動画像と比較してより圧縮されたことを示す。
【００１９】
追加する異なるベクトルを、以下、「予測ベクトル」と呼称する。予測ベクトルは、空間予測ベクトルと、時間予測ベクトルとがある。予測ベクトルのより詳細な説明については、図７、図１０にて後述する。
【００２０】
このように、元の解像度での動きベクトルを検出する際に予測ベクトルを追加する場合、参照画像の探索範囲が増加するため、使用するメモリ帯域が増加し、使用可能なメモリ帯域を超えてしまう可能性がある。使用するメモリ帯域が、使用可能なメモリ帯域を超えると、たとえば、リアルタイムでの符号化処理を行っている場合、符号化された動画像のコマ落ちといった動作破たんが発生する。
【００２１】
そこで、本実施の形態にかかる符号化装置１００は、フレームのブロックの動き検出を行う際、予測ベクトル数と単位時間に読込可能な参照フレームのデータ量に応じて、縮小動きベクトルの最大読込データ量を決定する。これにより、符号化装置１００は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る。
【００２２】
図１では、符号化装置１００と、一連のフレームを記憶する外部メモリ１０１とを表示する。符号化装置１００と外部メモリ１０１とは、Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）１０２により接続される。図１の（ａ）に示す符号化装置１００は、一連のフレームのうちの対象フレームｔＦ１を選択して、符号化するとする。また、一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量が、外部メモリ１０１のメモリ帯域によって決まるものとする。一連のフレームの対象フレーム単位の単位時間当たりに読込可能な参照フレームの最大読込データ量を、Ｓｓｕｍとする。Ｓｓｕｍについては、図１１にて後述する。
【００２３】
このとき、符号化装置１００は、対象フレームｔＦ１の参照先となる参照フレームｒＦ１上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。ベクトル群の個数は、ベクトル群に含まれるベクトルの本数である。一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数によって、空間予測ベクトルの個数が特定できるため、予測ベクトルの個数が特定できることとなる。
【００２４】
具体的に、図１の（ａ）に示す符号化装置１００は、ベクトル群の個数として、縮小動きベクトルＭＶｒｔと、予測ベクトルＭＶｐｔ１と予測ベクトルＭＶｐｔ２という３個を特定する。続けて、符号化装置１００は、特定した個数と、Ｓｓｕｍとに基づいて、縮小動きベクトルが指定する参照フレームｒＦ１上の探索位置を含む探索範囲の画像データが読み込まれる際の対象フレーム単位の第１の最大読込データ量Ｓ０を決定する。たとえば、符号化装置１００は、特定した個数が多い程、第１の最大読込データ量Ｓ０を少なくする。より詳細には、符号化装置１００は、特定した個数が３であれば、第１の最大読込データ量Ｓ０＝Ｓｓｕｍ×０．７として決定する。
【００２５】
図１の（ｂ）に示す符号化装置１００は、一連のフレームのうちの対象フレームｔＦ２を選択して、符号化するとする。そして、符号化装置１００は、対象フレームｔＦ２の参照先となる参照フレームｒＦ２上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。図１の（ｂ）に示す符号化装置１００は、ベクトル群の個数として、縮小動きベクトルＭＶｒｔと、予測ベクトルＭＶｐｔ１という２個を特定する。そして、符号化装置１００は、特定した個数が２であれば、第１の最大読込データ量Ｓ０＝Ｓｓｕｍ×０．８として決定する。
【００２６】
図１の（ａ）と図１の（ｂ）とでは、第１の最大読込データ量Ｓ０の大きさを、外部メモリ１０１と符号化装置１００を繋げた矢印の塗りつぶした量で表現している。このように、符号化装置１００は、予測ベクトルの数が少なければ、縮小動きベクトルＭＶｒｔにかかる制限を発生しにくくして、符号化効率の向上を図る。次に、図２〜図１３を用いて、符号化装置１００の詳細を説明する。
【００２７】
（コンピュータシステム２００のハードウェア構成例）
次に、符号化装置１００が適用されるコンピュータシステム２００のハードウェアの一例について説明する。コンピュータシステム２００は、たとえば、動画像を記録・再生する機能を有するシステムであり、具体的には、たとえば、パーソナル・コンピュータ、テレビジョン、レコーダ、スマートフォン、ビデオカメラ、デジタルカメラなどである。
【００２８】
図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。図２において、コンピュータシステム２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。また、コンピュータシステム２００は、撮像素子２０４と、撮像素子Ｉ／Ｆ２０５と、操作パネル２０６と、記録メディア２０７と、外部Ｉ／Ｆ２０８と、符号化装置１００とを含む。
【００２９】
また、コンピュータシステム２００は、ディスプレイ２０９と、ディスプレイ出力Ｉ／Ｆ２１０とを含む。また、ＣＰＵ２０１〜ＲＡＭ２０３と、撮像素子Ｉ／Ｆ２０５と、外部Ｉ／Ｆ２０８と、ディスプレイ出力Ｉ／Ｆ２１０と、符号化装置１００とは、バス２１１で相互に接続される。図１に示した外部メモリ１０１は、ＲＡＭ２０３や記録メディア２０７といった記憶装置に相当する。また、外部メモリ１０１がＲＡＭ２０３に相当する場合、図１に示したＩ／Ｆ１０２は、図２に図示していないが、ＲＡＭ２０３とバス２１１との間にあるＩ／Ｆに相当する。また、外部メモリ１０１が記録メディア２０７に相当する場合、Ｉ／Ｆ１０２は、外部Ｉ／Ｆ２０８に相当する。
【００３０】
ＣＰＵ２０１は、コンピュータシステム２００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、コンピュータシステム２００のブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される揮発性メモリである。
【００３１】
撮像素子２０４は、対象物から発した光を電気信号に変換する装置である。たとえば、撮像素子２０４は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサ、やＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサなどである。
【００３２】
撮像素子Ｉ／Ｆ２０５は、記録時に撮像素子２０４を制御することにより、撮像素子２０４からの信号を画像フォーマットに変換してＲＡＭ２０３に格納する装置である。操作パネル２０６は、コンピュータシステム２００が有する液晶タッチパネルや操作ボタンである。記録メディア２０７は、フラッシュＲＯＭ等といった記憶装置である。また、記録メディア２０７は、本実施の形態にかかる符号化プログラムを記録してもよい。外部Ｉ／Ｆ２０８は、操作パネル２０６、および記録メディア２０７を制御する。また、外部Ｉ／Ｆ２０８は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークを介して、コンピュータシステム２００以外の他の装置に接続されてもよい。
【００３３】
ディスプレイ２０９は、撮像素子２０４が記録した画像フォーマットを表示する。ディスプレイ出力Ｉ／Ｆ２１０は、ディスプレイ２０９の制御を行う。
【００３４】
図３は、符号化装置のハードウェア構成例を示すブロック図である。符号化装置１００は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２と、フレーム内予測部３０３と、動き補償部３０４と、予測画像選択部３０５と、誤差画像生成部３０６とを含む。さらに、符号化装置１００は、直交変換／量子化部３０７と、逆量子化／逆直交変換再構成部３０８と、デブロッキングフィルタ部３０９と、エントロピー符号化部３１０とを含む。
【００３５】
縮小ＭＥ部３０１は、外部メモリから縮小された符号化対象画像、縮小された参照画像を読み込み、縮小ＭＥ処理を行う。等倍ＭＥ部３０２は、外部メモリから元の解像度の原画像、元の解像度の参照画像を読み込み、等倍ＭＥ処理を行う。フレーム内予測部３０３は、フレーム内予測処理を行う。
【００３６】
動き補償部３０４は、等倍ＭＥ部３０２で決定された動きベクトルに基づいて、フレーム間予測画像を生成する。
【００３７】
予測画像選択部３０５は、符号化処理制御に応じて、フレーム間予測画像か、フレーム内予測画像かのうちどちらか一方を選択する。誤差画像生成部３０６は、予測画像選択部３０５で出力された予測画像と原画像の差分を算出する。
【００３８】
直交変換／量子化部３０７は、差分画像に対して直交変換、量子化処理を行う。逆量子化／逆直交変換再構成部３０８は、量子化後の係数に対して逆量子化、逆直交変換を行い、予測画像と足し合わせて再構成画像を得る。
【００３９】
デブロッキングフィルタ部３０９は、ブロックノイズを除去するデブロッキングフィルタ処理を行う。エントロピー符号化部３１０では、予測情報や係数情報を入力として、エントロピー符号化処理を行い、符号化ストリームを生成する。
【００４０】
（符号化装置１００の機能）
次に、符号化装置１００の機能について説明する。図４は、符号化装置の機能例を示すブロック図である。符号化装置１００は、特定部４０１と、決定部４０２と、算出部４０３と、制御部４０４と、を含む。なお、特定部４０１および決定部４０２は、縮小ＭＥ部３０１が実行する前に行われる機能となる。算出部４０３は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２との何れにも含まれる。制御部４０４は、縮小ＭＥ部３０１と、等倍ＭＥ部３０２とを制御する。
【００４１】
また、制御部となる特定部４０１〜制御部４０４は、記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、特定部４０１〜制御部４０４の機能を実現してもよい。記憶装置とは、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、記録メディア２０７などである。
【００４２】
特定部４０１は、対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、一連のフレームのうちの参照フレームを参照して符号化されたフレームの個数に基づいて特定する。特定部４０１は、縮小ＭＥ部３０１と等倍ＭＥ部３０２とによって、対象フレームから分割されたブロックの動きベクトルを検出する際に行われる。
【００４３】
また、特定部４０１は、対象フレームから分割されたブロックに隣接するブロックの動きベクトル、または参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定してもよい。対象フレームから分割されたブロックに隣接するブロックの動きベクトルについては、図７にて後述する。また、参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトルについては、図７にて後述する。
【００４４】
また、特定部４０１は、対象フレームから分割されたブロックに隣接するブロックの動きベクトル、および参照フレームを参照して符号化されたフレーム内の対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定してもよい。なお、特定したフレームの個数は、符号化装置１００内にあるフリップフロップ等の記憶領域に記憶される。
【００４５】
決定部４０２は、特定部４０１によって特定された個数と、Ｓｓｕｍとに基づいて、縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第１の最大読込データ量Ｓ０を決定する。Ｓ０の決定手順の具体例は、たとえば図１０にて説明する。
【００４６】
決定部４０２は、さらに、特定部４０１によって特定された個数と、ＳｓｕｍとＳ０とに基づいて、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第２の最大読込データ量Ｓ１を決定してもよい。
【００４７】
算出部４０３は、決定部４０２によって決定された第１の最大読込データ量と、対象フレームに含まれるブロック数とに基づいて、対象フレームから分割されたブロックから選択された対象ブロックに対応する第１の閾値Ｓ０＿ｂを算出する。Ｓ０＿ｂの算出手順としては、図５と図６とで後述する。
【００４８】
また、算出部４０３は、決定部４０２によって決定された第１の最大読込データ量および第２の最大読込データ量と、対象フレームに含まれるブロック数とに基づいて、対象ブロックに対応する第２の閾値Ｓｓｕｍ＿ｂを算出してもよい。Ｓｓｕｍ＿ｂについては、Ｓ０＿ｂの算出手順と同様の手順を採用することができる。なお、算出されたＳ０＿ｂ、Ｓｓｕｍ＿ｂは、符号化装置１００内にあるフリップフロップ等の記憶領域に記憶される。
【００４９】
制御部４０４は、算出部４０３によって算出された第１の閾値Ｓ０＿ｂに基づいて、対象ブロックの動きベクトルを検出する際に、対象ブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御する。たとえば、制御部４０４は、縮小ＭＥ部３０１に対して、Ｓ０＿ｂを超えないような縮小動きベクトルを検出するように制御する。
【００５０】
また、制御部４０４は、次に示す条件を満たす場合、対象ブロックの次に選択されるブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御してもよい。次に示す条件とは、第１の閾値Ｓ０＿ｂが対象ブロックに対応する縮小動きベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量より大きい場合である。具体的な制御の内容については、図５にて記述する。
【００５１】
また、制御部４０４は、算出部４０３によって算出された第２の閾値Ｓｓｕｍ＿ｂに基づいて、対象ブロックの動きベクトルを検出する際に、対象ブロックに対応するベクトル群が指定する参照フレーム上の探索位置を含む探索範囲の読込データ量を制御してもよい。たとえば、制御部４０４は、等倍ＭＥ部３０２に対して、Ｓｓｕｍ＿ｂを超えないような探索範囲とするように制御する。たとえば、制御部４０４は、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲を狭めてもよい。
【００５２】
また、制御部４０４は、縮小動きベクトルと予測ベクトルとの組合せのうちの、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量が第２の閾値以下となる組合せを選択することにより、読込データ量を制御してもよい。
【００５３】
具体的に、制御部４０４は、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量が第２の閾値以下となる組合せを選択する。そして、制御部４０４は、選択した組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データを読み込むように等倍ＭＥ部３０２を制御する。具体的な制御の内容は、図１３にて後述する。
【００５４】
図５は、縮小ＭＥにおける等倍ＭＥ探索範囲算出手順の一例を示す説明図である。図５では、対象ブロックの縮小動き探索において得られた縮小動きベクトルＭＶｒｔと、前ブロックの縮小動きベクトルＭＶｒｐを入力として、等倍ＭＥにおいて対象ブロックの縮小動きベクトルＭＶｒｔを用いた場合の探索範囲を算出する例について説明する。
【００５５】
図５の（ａ）では、前ブロックの縮小動きベクトルＭＶｒｐと、対象ブロックの縮小動きベクトルＭＶｒｔとの位置関係を示す。縮小動きベクトルＭＶｒｐと縮小動きベクトルＭＶｒｔとは、似たような値になりやすい。
【００５６】
図５の（ｂ）では、等倍ＭＥの参照領域を示す。各ブロックにおける等倍ＭＥの参照領域は、縮小動きベクトルＭＶｒｔを等倍にスケーリングした移動先のブロックに対して、等倍ＭＥで探索する範囲だけ拡張した参照領域５０１となる。符号化装置１００は、それぞれのブロックの参照領域５０１に対してアクセスする際に、外部メモリの最小アクセス粒度に対応するメモリアライメント単位でアクセスする。メモリアライメント単位の記憶領域を、以下、「アライメント領域」と称する。
【００５７】
図５の（ｃ）では、アライメント領域５０２を示す。メモリアライメントは、たとえば、１ラインとなることもあるし、８ｘ４＝３２［ｂｙｔｅ］等の矩形となることもある。本実施の形態では、３２［ｂｙｔｅ］の矩形をメモリアライメントとする。図５の（ｃ）では、アライメント領域５０２の中での、前ブロックにおける縮小動きベクトルＭＶｒｐから特定される参照領域５０１ｒｐと、対象ブロックにおける縮小動きベクトルＭＶｒｔから特定される参照領域５０１ｒｔとを示す。
【００５８】
図５の（ｄ）では、メモリアライメント単位で前ブロックの参照領域５０１ｒｐにアクセスする例と、対象ブロックの参照領域５０１ｒｔにアクセスする例を示す。符号化装置１００は、参照領域５０１にアクセスしようとすると、参照領域５０１を含むアライメント領域５０２にアクセスすることになる。アライメント領域５０２が示す記憶領域が、探索範囲となる。また、アライメント領域５０２のデータ量を、「読込データ量」と称する。
【００５９】
具体的に、符号化装置１００がメモリアライメント単位で前ブロックの参照領域５０１ｒｐにアクセスしようとすると、符号化装置１００は、図５の（ｄ）にて粗いハッチを付与したアライメント領域５０３ｒｐにアクセスすることになる。
【００６０】
また、符号化装置１００がメモリアライメント単位で対象ブロックの参照領域５０１ｒｔにアクセスしようとすると、符号化装置１００は、図５の（ｄ）にて細かいハッチを付与したアライメント領域５０３ｒｔにアクセスすることになる。アライメント領域５０３ｒｔは、対象ブロックが参照するアライメント領域から、前ブロックで参照するアライメント領域５０３ｒｐと重なる領域を除いた領域となる。
【００６１】
具体的に、符号化装置１００は、縮小動きベクトルを用いた場合の対象ブロックの読込データ量を、アライメント領域５０３ｒｔに矩形が１１個あることから、３２×１１＝３５２［ｂｙｔｅ］であると算出する。
【００６２】
そして、符号化装置１００は、読込データ量とＳ０＿ｂとを比較する。Ｓ０＿ｂは、縮小ＭＥ処理における、等倍ＭＥ処理時の縮小動きベクトルを用いた場合のブロックごとの読込データ量の閾値である。読込データ量がＳ０＿ｂ以下である場合、符号化装置１００は、対象ブロックの次ブロックにおいて通常の縮小動き探索を行う。読込データ量がＳ０＿ｂを超えた場合、符号化装置１００は、次ブロックにおいて縮小動き探索に制限をかける。具体的な制限の内容は、たとえば、次ブロックの縮小動きベクトルを、対象ブロックの縮小動きベクトルＭＶｒｔに近づける、または、縮小動き探索範囲を小さくする等である。このような制限をかけることにより、次ブロックのメモリアライメント単位でアクセスする際のアライメント領域の大きさを小さくすることができる。
【００６３】
読込データ量に対する第１の閾値Ｓ０＿ｂは、ブロックごとに一定値であってもよいし、ブロックごとに可変であってもよい。ブロックごとに一定値である場合の閾値算出方法の一例としては、１フレームで許容される読込データ量を、フレーム内の総ブロック数で割った値とする方法がある。ブロックごとに可変である場合の閾値算出方法について、図６を用いて説明する。
【００６４】
図６は、Ｓ０＿ｂの算出手順の一例を示す説明図である。図６では、グラフ６０１を用いて、Ｓ０＿ｂの算出手順の一例を示す。グラフ６０１の横軸は、フレーム内ブロック数を示す。グラフ６０１の縦軸は、読込データ量の合計を示す。
【００６５】
グラフ６０１内で示す、上限直線６０２は、対象ブロックが１フレームの最後のブロックに近づくにつれて読込データ量の合計を目標値Ｓ０に収束させるために用いる直線である。符号化装置１００は、各ブロックにおいてフレームの先頭のブロックから対象ブロックまでの読込データ量の合計が、上限直線６０２を超えた場合、縮小ＭＥ動き探索に制限を発生させるように、ブロックごとにＳ０＿ｂを設定する。具体的なＳ０＿ｂの値は、対象ブロック位置に対応する上限直線６０２の読込データ量から、前ブロックまでの読込データ量の合計を引いた値である。
【００６６】
たとえば、グラフ６０１において、棒グラフを黒く塗りつぶしたブロック（ｉ）が対象ブロックであるとする。グラフ６０１では、対象ブロックの読込データ量が、Ｓ０＿ｂを超えたことを示す。この場合、符号化装置１００は、対象ブロックの次ブロックであるブロック（ｉ＋１）における縮小ＭＥ動き探索に制限をかける。符号化装置１００は、対象ブロック位置に対応する上限直線６０２が示す読込データ量より、前ブロックまでの読込データ量の合計が小さくなる、ブロック（ｉ＋１）の縮小ＭＥ動き探索と、ブロック（ｉ＋２）の縮小ＭＥ動き探索と、に制限をかける。
【００６７】
図７は、等倍ＭＥの各探索範囲候補における予測ベクトルを追加した際の、組合せの一例を示す説明図である。予測ベクトルは、空間予測ベクトルと、時間予測ベクトルとがある。空間予測ベクトルは、対象ブロックの左に隣接するブロックの等倍ＭＥ結果の動きベクトルや、対象ブロックの上に隣接するブロックの等倍ＭＥ結果の動きベクトルである。対象ブロックの左に隣接するブロックの動きベクトルを、以下、「左隣接ベクトル」と称する。また、対象ブロックの上に隣接するブロックの動きベクトルを、以下、「上隣接ベクトル」と称する。
【００６８】
時間予測ベクトルは、異なる時間のフレームにおける、対象ブロックと同位置にあるブロックから時間距離に応じてスケーリングしたベクトルである。時間予測ベクトルについては、図１０にて詳細に説明する。
【００６９】
表７０１は、縮小動きベクトルと予測ベクトルとの４つの組合せにおける探索範囲候補を示す。１つ目の組合せである７０１−Ａは、予測ベクトルを追加せず、縮小動きベクトルから特定される探索範囲候補Ａを示す。また、探索範囲候補Ａの読込データ量をＲＡとする。
【００７０】
２つ目の組合せである７０１−Ｂは、予測ベクトルとして上隣接ベクトルを追加し、縮小動きベクトルと上隣接ベクトルとから特定される探索範囲候補Ｂを示す。また、探索範囲候補Ｂの読込データ量をＲＢとする。
【００７１】
３つ目の組合せである７０１−Ｃは、予測ベクトルとして時間予測ベクトルを追加し、縮小動きベクトルと時間予測ベクトルとから特定される探索範囲候補Ｃを示す。また、探索範囲候補Ｃの読込データ量をＲＣとする。
【００７２】
４つ目の組合せである７０１−Ｄは、予測ベクトルとして上隣接ベクトルと時間予測ベクトルとを追加し、縮小動きベクトルと上隣接ベクトルと時間予測ベクトルとから特定される探索範囲候補Ｄを示す。また、探索範囲候補Ｄの読込データ量をＲＤとする。
【００７３】
なお、図７に示す表７０１は、空間予測ベクトルとして上隣接ベクトルを採用した場合を示した。たとえば、空間予測ベクトルとして、左隣接ベクトルが採用されてもよいし、左隣接ベクトルと上隣接ベクトルとのうちの少なくともいずれか一方が採用されてもよい。空間予測ベクトルとして左隣接ベクトルと上隣接ベクトルとのうちの少なくともいずれか一方が採用される場合、表７０１に示す４つの組合せの他に、次に示す４つの組合せがある。
【００７４】
１つ目の組合せは、縮小動きベクトルと左隣接ベクトルとである。２つ目の組合せは、縮小動きベクトルと上隣接ベクトルと左隣接ベクトルとである。３つ目の組合せは、縮小動きベクトルと左隣接ベクトルと時間予測ベクトルとである。４つ目の組合せは、縮小動きベクトルと上隣接ベクトルと左隣接ベクトルと時間予測ベクトルとである。
【００７５】
さらに、時間予測ベクトルは、０個である場合もあるし、１個である場合もあるし、２個である場合もある。時間予測ベクトルの個数の判定基準は、図１０にて後述する。空間予測ベクトルが１個であり、時間予測ベクトルが０個の場合、縮小動きベクトルと予測ベクトルとの組合せは、２個となる。また、空間予測ベクトルが１個であり、時間予測ベクトルが２個の場合、縮小動きベクトルと予測ベクトルとの組合せは、８個となる。
【００７６】
図８は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その１）である。図８の（ａ）では、前ブロックの縮小動きベクトルＭＶｒｐと、対象ブロックの縮小動きベクトルＭＶｒｔと、対象ブロックの上隣接ベクトルＭＶｕｔと、対象ブロックの時間予測ベクトルＭＶｔｔとの位置関係を示す。
【００７７】
図８の（ｂ）では、アライメント領域５０２の中での、参照領域５０１ｒｐと、参照領域５０１ｒｔと、上隣接ベクトルＭＶｕｔから特定される参照領域５０１ｕｔと、時間予測ベクトルＭＶｔｔから特定される参照領域５０１ｔｔとを示す。
【００７８】
図９は、等倍ＭＥの各探索範囲候補の読込データ量を示す説明図（その２）である。図９では、探索範囲候補Ａ〜探索範囲候補Ｄのそれぞれの読込データ量ＲＡ〜ＲＤを図示する。
【００７９】
探索範囲候補Ａには矩形が１１個あることから、符号化装置１００は、読込データ量ＲＡを、３２×１１＝３５２［ｂｙｔｅ］であると算出する。また、探索範囲候補Ｂには矩形が１９個あることから、符号化装置１００は、読込データ量ＲＢを、３２×１９＝６０８［ｂｙｔｅ］であると算出する。さらに、探索範囲候補Ｃには矩形が２１個あることから、符号化装置１００は、読込データ量ＲＣを、３２×２１＝６７２［ｂｙｔｅ］であると算出する。同様に、探索範囲候補Ｄには矩形が２８個あることから、符号化装置１００は、読込データ量ＲＤを、３２×２８＝８９６［ｂｙｔｅ］であると算出する。
【００８０】
図１０は、時間予測ベクトルの説明図である。図１０では、時間予測ベクトルの具体例を図示する。図１０では、対象フレームが、先頭のフレームから数えて、Ｎ番目に表示されるフレームである場合について説明する。また、対象フレームが符号化される順番は、ｎ番目であるとする。Ｎとｎは、１以上の整数である。
【００８１】
また、前フレームとなる、Ｎ−１番目に表示されるフレームの符号化される順番は、ｎ−２番目となるとする。また、次フレームとなるＮ＋１番目に表示されるフレームは、符号化される順番がｎ−１番目となるとする。なお、図１０に示すような、表示順と符号化処理順が異なる状態となる場合とは、たとえば、Ｎ番目に表示するフレームが、Ｎ＋１番目に表示するフレームを参照する場合である。具体的に、Ｎ番目に表示するフレームは、Ｎ＋１番目に表示するフレームが符号化された後、符号化されたデータが復号された復号画像を参照して符号化される。
【００８２】
このとき、対象ブロックの時間予測ベクトルは、対象フレームとは異なるフレームであり、符号化済のフレームの対象ブロックの同位置にあるブロックの動きベクトルを、参照フレームの時間距離に応じてスケーリングしたベクトルとなる。
【００８３】
図１０の例では、Ｎ＋１番目に表示されるフレームの動きベクトルＭＶｅｎが、対象ブロックの同位置にあるブロックの動きベクトルとなる。また、参照フレームとなるＮ−１番目のフレームとの時間距離をフレーム数で表現すると、Ｎ−１番目のフレームから対象フレームまでが１となり、Ｎ−１番目のフレームからＮ＋１番目のフレームまでが、２となる。したがって、符号化装置１００は、動きベクトルＭＶｅｎの大きさを１／２としたベクトルを、時間予測ベクトルとして算出する。
【００８４】
また、時間予測ベクトルが０個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが無い場合であり、たとえば、Ｎ＋１番目に表示されるフレームが、イントラ予測を行うフレームである場合である。また、時間予測ベクトルが１個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが１個ある場合であり、たとえば、Ｎ＋１番目に表示されるフレームが、インター予測を行うフレームである場合である。
【００８５】
また、時間予測ベクトルが２個となる場合とは、一連のフレームのうちの参照フレームを参照して符号化されたフレームが２個ある場合である。たとえば、Ｎ＋１番目に表示されるフレームとＮ−２番目に表示されるフレームが、インター予測を行うフレームである場合である。
【００８６】
なお、Ｎ−１番目以前に表示されるフレームの動きベクトルを用いて、Ｎ番目の動きベクトルの時間予測ベクトルを算出して、予測ベクトルに追加することを許可するか否かは、符号化装置１００が採用する動画像符号化方式に依ることになる。したがって、符号化装置１００は、符号化装置１００が採用する動画像符号化方式が、Ｎ−１番目以前に表示されるフレームの動きベクトルをＮ番目の動きベクトルの時間予測ベクトルとして採用することを許可するか否かを確認する。採用することを許可するならば、符号化装置１００は、Ｎ−１番目以前に表示するフレームがＮ−１番目に表示するフレームを参照して符号化されたフレームであるか否かを判断することにより、時間予測ベクトルの個数を計数する。次に、図１１〜図１３を用いて、符号化装置１００が実行するフローチャートを示す。
【００８７】
図１１は、符号化処理手順の一例を示すフローチャートである。符号化処理は、一連のフレームを符号化する処理である。符号化装置１００は、一連のフレームのうちの先頭のフレームを対象フレームとして選択する（ステップＳ１１０１）。
【００８８】
次に、符号化装置１００は、メモリ帯域から、Ｓｂａｎｄを決定する（ステップＳ１１０２）。ステップＳ１１０２におけるメモリ帯域は、外部メモリ１０１のメモリ帯域のうちの、符号化処理の等倍ＭＥ処理に割り当てることができるメモリ帯域である。Ｓｂａｎｄは、符号化処理において固定値であってもよいし、可変であってもよい。たとえば、コンピュータシステム２００において、符号化処理以外の処理にメモリ帯域を多く割り当てたい場合、符号化装置１００は、Ｓｂａｎｄを一時的に小さく決定してもよい。一方、符号化処理以外の処理が少ない場合、符号化装置１００は、Ｓｂａｎｄを一時的に大きく決定してもよい。
【００８９】
次に、符号化装置１００は、Ｓｓｕｍ＝Ｓｂａｎｄ／符号化におけるフレームレートｆを算出する（ステップＳ１１０３）。たとえば、１秒間に６０フレームが存在する場合、フレームレートは、６０となる。続けて、符号化装置１００は、対象フレームにおける予測ベクトルの最大個数を特定する（ステップＳ１１０４）。
【００９０】
次に、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍの関係式と、予測ベクトルの最大個数から、Ｓ０とＳ１とを決定する（ステップＳ１１０５）。たとえば、予測ベクトルのうちの時間予測ベクトルの個数が０である場合、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍを満たし、Ｓ０：Ｓ１＝８：２を満たすように、Ｓ０とＳ１とを決定する。また、予測ベクトルのうちの時間予測ベクトルの個数が１以上である場合、符号化装置１００は、Ｓ０＋Ｓ１≦Ｓｓｕｍを満たし、Ｓ０：Ｓ１＝７：３を満たすように、Ｓ０とＳ１とを決定する。さらに、符号化装置１００は、予測ベクトルのうちの時間予測ベクトルの個数が２である場合のＳ０とＳ１との比率を設定しておいてもよい。
【００９１】
続けて、符号化装置１００は、縮小ＭＥ処理を実行する（ステップＳ１１０６）。縮小ＭＥ処理の詳細は、図１２にて後述する。次に、符号化装置１００は、等倍ＭＥ処理を実行する（ステップＳ１１０７）。等倍ＭＥ処理の詳細は、図１３にて後述する。等倍ＭＥ処理の終了後、符号化装置１００は、動き補償部３０４、予測画像選択部３０５等により、対象フレームに対する残りの符号化処理を行う。
【００９２】
続けて、符号化装置１００は、一連のフレーム全てを選択したか否かを判断する（ステップＳ１１０８）。まだ選択していないフレームがある場合（ステップＳ１１０８：Ｎｏ）、符号化装置１００は、次のフレームを対象フレームとして選択する（ステップＳ１１０９）。そして、符号化装置１００は、ステップＳ１１０２の処理に移行する。
【００９３】
一連のフレーム全てを選択した場合（ステップＳ１１０８：Ｙｅｓ）、符号化装置１００は、符号化処理を終了する。符号化処理を実行することにより、符号化装置１００は、メモリ帯域を超えずに、一連のフレームを符号化することができる。
【００９４】
図１２は、縮小ＭＥ処理手順の一例を示すフローチャートである。縮小ＭＥ処理は、低解像度画像における対象ブロックの縮小動きベクトルを検出する処理である。
【００９５】
符号化装置１００は、縮小ＭＥ探索制限を無しに設定する（ステップＳ１２０１）。次に、符号化装置１００は、対象フレーム内の先頭のブロックを対象ブロックとして選択する（ステップＳ１２０２）。続けて、符号化装置１００は、対象ブロックについて、縮小ＭＥ探索制限に応じた縮小動き探索処理を実行する（ステップＳ１２０３）。縮小ＭＥ探索制限が有りの場合の縮小動き探索処理は、図５にて説明した通りである。
【００９６】
次に、符号化装置１００は、縮小動きベクトルが指定する等倍ＭＥ探索範囲の読込データ量を算出する（ステップＳ１２０４）。縮小動きベクトルが指定する等倍ＭＥ探索範囲の算出については、図５の（ｂ）〜図５の（ｄ）にて説明した通りである。そして、符号化装置１００は、Ｓ０＿ｂを算出する（ステップＳ１２０５）。
【００９７】
続けて、符号化装置１００は、読込データ量がＳ０＿ｂより小さいか否かを判断する（ステップＳ１２０６）。読込データ量がＳ０＿ｂより小さい場合（ステップＳ１２０６：Ｙｅｓ）、符号化装置１００は、縮小ＭＥ探索制限を無しに設定する（ステップＳ１２０７）。読込データ量がＳ０＿ｂ以上の場合（ステップＳ１２０６：Ｎｏ）、符号化装置１００は、縮小ＭＥ探索制限を有りに設定する（ステップＳ１２０８）。
【００９８】
ステップＳ１２０７、またはステップＳ１２０８の処理終了後、符号化装置１００は、対象フレーム内の全てのブロックを選択したか否かを判断する（ステップＳ１２０９）。対象フレーム内にまだ選択していないブロックがある場合（ステップＳ１２０９：Ｎｏ）、符号化装置１００は、次のブロックを対象ブロックとして選択する（ステップＳ１２１０）。そして、符号化装置１００は、ステップＳ１２０３の処理に移行する。
【００９９】
対象フレーム内の全てのブロックを選択した場合（ステップＳ１２０９：Ｙｅｓ）、符号化装置１００は、縮小ＭＥ処理を終了する。縮小ＭＥ処理を実行することにより、符号化装置１００は、縮小動きベクトルを検出しつつ、読込データ量がＳ０＿ｂを超えた場合、次のブロックの読込データ量を削減して、メモリ帯域を超過しないようにすることができる。
【０１００】
図１３は、等倍ＭＥ処理手順の一例を示すフローチャートである。等倍ＭＥ処理は、縮小動きベクトルが指定する探索範囲をブロックマッチングにより探索する処理である。
【０１０１】
符号化装置１００は、対象フレーム内の先頭のブロックを対象ブロックとして選択する（ステップＳ１３０１）。次に、符号化装置１００は、縮小動きベクトルを取得する（ステップＳ１３０２）。続けて、符号化装置１００は、予測ベクトルを取得する（ステップＳ１３０３）。予測ベクトルについては、図７で説明した通りである。次に、符号化装置１００は、縮小動きベクトルと予測ベクトルとの組合せを生成する（ステップＳ１３０４）。続けて、符号化装置１００は、各組合せの探索範囲候補の読込データ量を算出する（ステップＳ１３０５）。そして、符号化装置１００は、Ｓｓｕｍ＿ｂを算出する（ステップＳ１３０６）。Ｓｓｕｍ＿ｂは、Ｓ０＿ｂと同様の方法で算出することができる。
【０１０２】
次に、符号化装置１００は、各組合せの探索範囲候補の読込データ量と、Ｓｓｕｍ＿ｂとを比較する（ステップＳ１３０７）。
【０１０３】
続けて、符号化装置１００は、Ｓｓｕｍ＿ｂ以下となる組合せのうちの、ベクトル数が最大となる組合せを選択する（ステップＳ１３０８）。ベクトル数が最大となる組合せが複数ある場合、符号化装置１００は、ベクトル数が最大となる組合せのうちのどの組合せを選択してもよい。
【０１０４】
次に、符号化装置１００は、選択した組合せの探索範囲候補のデータを、外部メモリから読み込む（ステップＳ１３０９）。続けて、符号化装置１００は、等倍動き探索処理を実行する（ステップＳ１３１０）。次に、符号化装置１００は、対象フレーム内の全てのブロックを選択したか否かを判断する（ステップＳ１３１１）。対象フレーム内にまだ選択していないブロックがある場合（ステップＳ１３１１：Ｎｏ）、符号化装置１００は、次のブロックを対象ブロックとして選択する（ステップＳ１３１２）。そして、符号化装置１００は、ステップＳ１３０２の処理に移行する。
【０１０５】
全てのブロックを選択した場合（ステップＳ１３１１：Ｙｅｓ）、符号化装置１００は、等倍ＭＥ処理を終了する。等倍ＭＥ処理を実行することにより、符号化装置１００は、対象ブロックの動きベクトルを検出しつつ、メモリ帯域を超過しない範囲で予測ベクトルを追加して、符号化効率を向上することができる。
【０１０６】
以上説明したように、符号化装置１００によれば、フレームのブロックの動き検出を行う際、予測ベクトル数とＳｓｕｍに応じて、縮小動きベクトルの最大読込データ量Ｓ０を決定する。これにより、符号化装置１００は、フレームの符号化にかかる処理の遅延を抑制しつつ符号化効率の向上を図る。符号化装置１００は、フレームの符号化にかかる処理の遅延が抑制されることにより、予測ベクトルを追加評価する場合においても、メモリ帯域超過によるコマ落ち等の動作破たんを防ぐことができる。
【０１０７】
また、符号化装置１００によれば、対象ブロックの動きベクトルを検出する際に、縮小動きベクトルが指定する探索範囲の読込データ量と、Ｓ０＿ｂとに基づいて、縮小動きベクトルが指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の一つ一つのブロックに対して縮小動きベクトルが指定する探索範囲の読込データ量がＳ０＿ｂを超えないようにする。したがって、符号化装置１００は、全ブロックの合計の読込データ量もＳ０を超えないようになり、メモリ帯域の超過を抑制することができる。
【０１０８】
また、符号化装置１００によれば、Ｓ０＿ｂが対象ブロックに対応する縮小動きベクトルが指定する探索範囲の読込データ量より大きい場合、対象ブロックの次に選択されるブロックに対応する縮小動きベクトルが指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の対象ブロックには制限をかけず、読込データ量がＳ０＿ｂを超えた場合にのみ次のブロックに対する込データ量を制限することになり、可能な限り縮小動きベクトルに制限をかけずに済ますことができる。
【０１０９】
また、符号化装置１００によれば、予測ベクトルが指定する参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際のフレーム単位の第１の最大読込データ量Ｓ１を決定してもよい。これにより、符号化装置１００は、縮小動きベクトルが指定する探索範囲の画像データのブロックごとの合計がＳ０以下となり、予測ベクトルが指定する探索範囲の画像データのブロックごとの合計がＳ１以下となり、メモリ帯域の超過を抑制することができる。
【０１１０】
また、符号化装置１００によれば、対象ブロックの動きベクトルを検出する際に、ベクトル群が指定する探索範囲の読込データ量と、Ｓｓｕｍ＿ｂとに基づいて、ベクトル群が指定する探索範囲の読込データ量を制御してもよい。これにより、符号化装置１００は、対象フレーム内の一つ一つのブロックに対してベクトル群が指定する探索範囲の読込データ量がＳｓｕｍ＿ｂを超えないようにする。したがって、符号化装置１００は、全ブロックの合計の読込データ量もＳｓｕｍを超えないようになり、メモリ帯域の超過を抑制することができる。
【０１１１】
また、符号化装置１００は、対象ブロックに対応する縮小画像上のブロックの動きベクトルと予測ベクトルとの組合せから、組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲の読込データ量がＳｓｕｍ＿ｂ以下となる組合せを選択する。そして、符号化装置１００は、対象ブロックの動きベクトルを検出する際に、選択した組合せに含まれるベクトルが指定する参照フレーム上の探索位置を含む探索範囲のデータを読み込んでもよい。たとえば、符号化装置１００は、Ｓｓｕｍ＿ｂ以下となる組合せのうち、最大のベクトル数となる組合せを選択することにより、メモリ帯域の超過を抑制しつつ、符号化効率の向上を図ることができる。
【０１１２】
また、符号化装置１００は、対象フレームにおけるベクトル群の最大の個数を、空間予測ベクトル、または／および時間予測ベクトルの個数を計数することにより特定してもよい。これにより、たとえば、符号化装置１００は、空間予測ベクトルの数や時間予測ベクトルの数が少なければ、縮小動きベクトルに割り当てられる読込データ量を多くして、メモリ帯域の超過を抑制しつつ、符号化効率の向上を図ることができる。
【０１１３】
なお、本実施の形態で説明した符号化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本符号化プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本符号化プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１４】
また、本実施の形態で説明した符号化装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した符号化装置１００の特定部４０１〜制御部４０４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、符号化装置１００を製造することができる。
【０１１５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定する特定部と、
前記特定部によって特定された前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する決定部と、
を有することを特徴とする符号化装置。
【０１１７】
（付記２）前記決定部によって決定された前記第１の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象フレームから分割されたブロックから選択された対象ブロックに対応する第１の閾値を算出する算出部と、
前記算出部によって算出された前記第１の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御する制御部と、
を有することを特徴とする付記１に記載の符号化装置。
【０１１８】
（付記３）前記制御部は、
前記第１の閾値が前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量より大きい場合、前記対象ブロックの次に選択されるブロックに対応する前記縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする付記２に記載の符号化装置。
【０１１９】
（付記４）前記決定部は、
さらに、前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量と前記第１の最大読込データ量とに基づいて、前記ベクトル群のうちの前記縮小画像上のブロックの動きベクトルとは異なるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第２の最大読込データ量を決定することを特徴とする付記３に記載の符号化装置。
【０１２０】
（付記５）前記算出部は、
前記決定部によって決定された前記第１の最大読込データ量および前記第２の最大読込データ量と、前記対象フレームに含まれるブロック数とに基づいて、前記対象ブロックに対応する第２の閾値を算出し、
前記制御部は、
前記算出部によって算出された前記第２の閾値に基づいて、前記対象ブロックの動きベクトルを検出する際に、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする付記４に記載の符号化装置。
【０１２１】
（付記６）前記制御部は、
前記対象ブロックに対応する前記縮小画像上のブロックの動きベクトルと前記異なるベクトルとの組合せのうちの、前記組合せに含まれるベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量が前記第２の閾値以下となる組合せを選択することにより、前記対象ブロックに対応する前記ベクトル群が指定する前記参照フレーム上の探索位置を含む探索範囲の読込データ量を制御することを特徴とする付記５に記載の符号化装置。
【０１２２】
（付記７）前記特定部は、
前記対象フレームから分割されたブロックに隣接するブロックの動きベクトル、または／および前記参照フレームを参照して符号化されたフレーム内の前記対象フレームから分割されたブロックと同位置にあるブロックの動きベクトル、の個数を特定することを特徴とする付記１〜６のいずれか一つに記載の符号化装置。
【０１２３】
（付記８）一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定する特定部と、
前記特定部によって特定された前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する決定部と、
を有するコンピュータを含むことを特徴とするコンピュータシステム。
【０１２４】
（付記９）コンピュータが、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行することを特徴とする符号化方法。
【０１２５】
（付記１０）コンピュータに、
一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行させることを特徴とする符号化プログラム。
【０１２６】
（付記１１）一連のフレームのうちの符号化対象となる対象フレームから分割されたブロックの動きベクトルを検出する際の前記対象フレームの参照先となる参照フレーム上の探索位置を指定するベクトル群の個数を、前記一連のフレームのうちの前記参照フレームを参照して符号化されたフレームの個数に基づいて特定し、
特定した前記個数と、前記一連のフレームの前記対象フレーム単位の単位時間当たりに読込可能な前記参照フレームの最大読込データ量とに基づいて、前記対象フレームを縮小した縮小画像上のブロックの動きベクトルが指定する前記参照フレーム上の探索位置を含む探索範囲の画像データが読み込まれる際の前記対象フレーム単位の第１の最大読込データ量を決定する、
処理を実行させる符号化プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１２７】
１００  符号化装置
２００  コンピュータシステム
４０１  特定部
４０２  決定部
４０３  算出部
４０４  制御部
【国際調査報告】
2014155738.tif 000016
2014155738.tif 000017
2014155738.tif 000018
2014155738.tif 000019