(57)【要約】【課題】参照画像フレームの一部分のみの参照画像データをバッファが格納する場合でも、符号化効率の低下を抑止することが可能である参照領域決定装置及びプログラムを提供する。【解決手段】参照領域決定装置は、参照画像バッファに格納される参照領域を決定する参照領域決定装置であって、符号化済みのブロックごとに動きベクトルを取得する動きベクトル取得部と、取得された動きベクトルに基づいて、参照領域の位置変更量を導出する位置変更量導出部と、符号化済みのブロックの次の符号化対象のブロックの符号化に用いられる参照領域の位置を、位置変更量に基づいて決定する参照領域決定部とを備える。【選択図】図１
2020113934.tif 000002
【特許請求の範囲】
【請求項１】
参照画像バッファに格納される参照領域を決定する参照領域決定装置であって、
符号化済みのブロックごとに動きベクトルを取得する動きベクトル取得部と、
取得された動きベクトルに基づいて、前記参照領域の位置変更量を導出する位置変更量導出部と、
前記符号化済みのブロックの次の符号化対象のブロックの符号化に用いられる前記参照領域の位置を、前記位置変更量に基づいて決定する参照領域決定部と、
を備える参照領域決定装置。
【請求項２】
前記動きベクトル取得部は、前記符号化対象のブロックが属するラインの１本前のラインに属する前記符号化済みのブロックごとに、前記動きベクトルを取得する、
請求項１に記載の参照領域決定装置。
【請求項３】
前記位置変更量導出部は、取得された前記動きベクトルの垂直方向の成分量の代表値に基づいて、垂直方向の前記位置変更量を導出する、
請求項２に記載の参照領域決定装置。
【請求項４】
前記代表値は、取得された前記動きベクトルの垂直方向の成分量の中央値又は平均値である、
請求項３に記載の参照領域決定装置。
【請求項５】
前記位置変更量導出部は、取得された前記動きベクトルと前記符号化済みのブロックの分割情報とに基づいて、前記位置変更量を導出する、
請求項１から請求項４のいずれか一項に記載の参照領域決定装置。
【請求項６】
前記位置変更量導出部は、取得された前記動きベクトルの精度に応じて前記位置変更量を導出する、
請求項５に記載の参照領域決定装置。
【請求項７】
請求項１から請求項６のいずれか一項に記載の参照領域決定装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、参照領域決定装置及びプログラムに関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Experts Group）−２、ＭＰＥＧ−４、ＭＰＥＧ−４／ＡＶＣ（Advanced Video Coding）等の動画像符号化規格がある。ＨＥＶＣ（High Efficiency Video Coding）は、今後の普及が見込まれている次世代の動画像符号化規格である。
【０００３】
ＨＥＶＣの符号化効率は、従来の符号化方式であるＭＰＥＧ−４／ＡＶＣの符号化効率の約２倍である。符号化効率の向上に伴い、４Ｋ（３８４０画素×２１６０ライン）又は８Ｋ（７６８０画素×４３２０ライン）等の高い空間解像度の動画像も、符号化対象とされるようになった。階層的符号化処理では、符号化ブロックの様々なサイズのうち、符号化効率が最も高くなるサイズが選択されることによって、符号化対象フレームにおける符号化対象の符号化ブロック（以下「符号化対象ブロック」という。）の符号化効率が向上する。
【０００４】
階層的符号化処理では、符号化装置は、符号化対象フレームと参照画像フレームとの間の動きベクトルを探索、推定及び補償するフレーム間符号化を実行する。以下、参照画像フレームにおける参照画像と符号化対象ブロックの画像との画素単位の差分の累積値を「差分累積値」という。符号化装置の探索モジュールは、参照画像フレームにおいて差分累積値等が最も小さくなる位置（座標）を示す動きベクトルを、様々なサイズの符号化対象ブロックごとに階層的に探索することによって、動きベクトルを推定する。以下、参照画像フレームの各画素の画素値を表すデータを「参照画像データ」という。
【０００５】
階層的符号化処理では、非常に多くの参照画像データが必要とされる。全ての参照画像フレームに相当する全ての参照画像データのデータサイズは非常に大きいので、ＬＳＩ（Large Scale Integration）は、ＬＳＩの内部に設けられた参照画像バッファに、全ての参照画像データのうちの一部しか格納することができない。このため、全ての参照画像データを外部メモリが格納しておく必要がある。外部メモリのインタフェースにおけるデータ転送速度には制限がある。外部メモリ内の全ての参照画像データのうちフレーム間符号化が実行される際に必要となる特定の参照画像データをリアルタイムに探索モジュールが読み込むために、ＬＳＩは、外部メモリから転送された参照画像データを、ＬＳＩの内部に設けられた参照画像バッファに一時的に格納する。ＬＳＩは、参照画像バッファに一時的に格納された参照画像データを、探索モジュールに供給する。
【０００６】
外部メモリから転送される参照画像データの転送レートを抑えるため、符号化対象フレームの横幅分（ライン分）の参照画像データを格納する参照画像バッファが提案されている（非特許文献１）。ＨＥＶＣ等の符号化規格では、符号化対象ブロックは、ラスタスキャン順に符号化される。動きベクトルの探索範囲は、参照画像フレームにおける所定位置を中心とする範囲である。動きベクトルの探索範囲の形状は、矩形である。
【０００７】
符号化対象フレームにおける符号化対象ブロックの位置と、参照画像フレームにおける動きベクトルの探索中心位置との位置関係が一定であるという条件で、探索モジュールは動きベクトルの探索処理を実行する場合がある。この場合、「（符号化対象フレームの横幅）×（探索範囲の縦幅）」分の参照画像データをバッファデータとして参照画像バッファが格納することによって、同一ライン上で符号化対象ブロックが右（水平方向）の符号化対象ブロックに更新されても、参照画像バッファはバッファデータを更新する必要がない。複数の符号化ブロックから構成された１本のラインにおいて符号化対象ブロックの符号化処理が実行される間に、「（符号化対象フレームの横幅）×（探索範囲の縦幅）」分の新たなデータを、外部メモリは参照画像バッファに転送する。このため、外部メモリから参照画像バッファに転送される参照画像データの転送レートは、「（符号化対象ブロックの横幅）×（符号化対象ブロックの縦幅）／１符号化対象ブロック処理時間」に抑えられる。
【０００８】
バッファサイズは、「（符号化対象フレームの横幅）×（探索範囲の縦幅）」にほぼ等しい。このため、４Ｋ又は８Ｋ等の高い空間解像度の動画像が符号化される場合、参照画像バッファのサイズが大きくなることによって、ＬＳＩの規模、サイズ及び電力が悪化する場合がある。
【０００９】
参照画像バッファのサイズを抑える方法として、符号化処理中の符号化対象ブロックの動きベクトルの探索範囲の参照画像データのみを参照画像バッファが常に格納する方法が考えられる。符号化対象ブロックから一定距離の位置を中心とした探索範囲の形状が矩形であり、符号化処理中の符号化対象ブロックが同一ラインの右方向に更新される場合、各符号化ブロックの動きベクトルの探索範囲の重複面積は広くなる。符号化処理中の符号化対象ブロックが同一ライン上方向に更新されたことによって転送が新たに必要となる参照画像データは、探索範囲の右側に位置している符号化ブロックの横幅分の参照画像データのみである。この場合、参照画像バッファのサイズは、「（探索範囲の横幅）×（探索範囲の縦幅）」にほぼ等しい。外部メモリから参照画像バッファに転送される参照画像データの転送レートは、「（符号化ブロックの横幅）×（探索範囲の縦幅）／１符号化対象ブロック処理時間」に抑えられる。これによって、４Ｋ又は８Ｋ等の高い空間解像度の動画像の転送は、現実的な転送レートで可能である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Takayuki Onishi, Takashi Sano, Yukikuni Nishida, Kazuya Yokohari, Jia Su, Ken Nakamura, Koyo Nitta, Kimiko Kawashima, Jun Okamoto, Naoki Ono, Ritsu Kusaba, Atsushi Sagata, Hiroe Iwasaki, Mitsuo Ikeda, and Atsushi Shimizu, “Single-chip 4K 60 fps 4:2:2 HEVC video encoder LSI with 8K scalability,” Symposium on VLSI Circuits Digest of Technical Papers, C54-C55, 2015.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、符号化処理中の符号化対象ブロックの動きベクトルの探索範囲の参照画像データのみを参照画像バッファが常に格納する場合、いくつかの条件が満たされる必要がある。具体的には、探索範囲の形状が矩形であり、符号化対象ブロックに対する探索中心の位置ベクトルが符号化対象フレーム及び参照画像フレームの間で一定であり、かつ、その位置ベクトルが符号化対象フレームの符号化処理の開始前に決定済みである、という条件が満たされる必要がある。
【００１２】
同一の符号化対象フレーム内であっても符号化ブロックごとに様々な動きベクトルが生じ得る。このため、符号化ブロックに対する探索中心の位置ベクトルが符号化対象フレーム及び参照画像フレームの間で一定であるという条件が満たされた場合、符号化ブロックによっては、差分累積値が最小となる動きベクトル（最良の動きベクトル）が、参照画像バッファには格納されていない参照画像データの領域を示す場合がある。この場合、符号量の増加と符号化効率の低下とが発生し得る。
【００１３】
参照画像バッファに格納されている参照画像データの領域を、最良の動きベクトルがなるべく示すようにするには、参照画像バッファに格納される参照画像データの探索範囲が広くなるので、参照画像バッファのデータ容量のサイズと外部メモリから転送される参照画像データの転送レートとが増大する。このため、動き探索処理が実行される探索中心の位置は、符号化対象フレーム単位よりも細かい粒度（例えば、符号化ブロック単位、符号化ブロックのライン単位）で決定されるべきである。参照画像フレームの横幅分の参照画像データを参照画像バッファが格納している場合、参照画像フレームの水平方向の全ての参照画像データが参照画像バッファに格納されている。これによって、符号化装置の探索モジュールは、動きベクトルの探索中心の位置を、参照画像フレームにおいて水平方向に柔軟に位置変更させることが可能である。また、符号化装置の探索モジュールは、参照画像フレームにおける動きベクトルの探索範囲の水平方向の位置変更量（ホッピング量）を、符号化ブロック単位で決定することが可能である。
【００１４】
しかしながら、従来の符号化装置（参照領域決定装置）は、参照画像フレームの一部分のみの参照画像データをバッファが格納する場合、符号化効率の低下を抑止することができない場合がある。
【００１５】
上記事情に鑑み、本発明は、参照画像フレームの一部分のみの参照画像データをバッファが格納する場合でも、符号化効率の低下を抑止することが可能である参照領域決定装置及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１６】
本発明の一態様は、参照画像バッファに格納される参照領域を決定する参照領域決定装置であって、符号化済みのブロックごとに動きベクトルを取得する動きベクトル取得部と、取得された動きベクトルに基づいて、前記参照領域の位置変更量を導出する位置変更量導出部と、前記符号化済みのブロックの次の符号化対象のブロックの符号化に用いられる前記参照領域の位置を、前記位置変更量に基づいて決定する参照領域決定部と、を備える参照領域決定装置である。
【００１７】
本発明の一態様は、上記の参照領域決定装置であって、前記動きベクトル取得部は、前記符号化対象のブロックが属するラインの１本前のラインに属する前記符号化済みのブロックごとに、前記動きベクトルを取得する。
【００１８】
本発明の一態様は、上記の参照領域決定装置であって、前記位置変更量導出部は、取得された前記動きベクトルの垂直方向の成分量の代表値に基づいて、垂直方向の前記位置変更量を導出する。
【００１９】
本発明の一態様は、上記の参照領域決定装置であって、前記代表値は、取得された前記動きベクトルの垂直方向の成分量の中央値又は平均値である。
【００２０】
本発明の一態様は、上記の参照領域決定装置であって、前記位置変更量導出部は、取得された前記動きベクトルと前記符号化済みのブロックの分割情報とに基づいて、前記位置変更量を導出する。
【００２１】
本発明の一態様は、上記の参照領域決定装置であって、前記位置変更量導出部は、取得された前記動きベクトルの精度に応じて前記位置変更量を導出する。
【００２２】
本発明の一態様は、上記の参照領域決定装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００２３】
本発明により、参照画像フレームの一部分のみの参照画像データをバッファが格納する場合でも、符号化効率の低下を抑止することが可能である。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態における、符号化システムの構成例を示す図である。
【図２】第１実施形態における、参照画像取得位置決定部の構成例を示す図である。
【図３】第１実施形態における、格納されている参照画像データの例を示す図である。
【図４】第１実施形態における、解析対象の動きベクトルの例を示す図である。
【図５】第１実施形態における、探索範囲の例を示す図である。
【図６】第１実施形態における、探索範囲と参照画像の取得位置との例を示す図である。
【図７】第１実施形態における、参照画像バッファに参照画像データが格納される各参照画像領域の例を示す図である。
【図８】第１実施形態における、解析頻度パラメータの値が「３」である場合の参照画像領域の例を示す図である。
【図９】第１実施形態における、ライン単位の位置変更の例を示す図である。
【図１０】第１実施形態における、参照画像領域の例を示す図である。
【図１１】第１実施形態における、符号化システムの動作例を示すフローチャートである。
【図１２】第２実施形態における、参照画像取得位置決定部の構成例を示す図である。
【図１３】第２実施形態における、符号化ブロックの例を示す図である。
【図１４】第２実施形態における、差分累積値の重み係数テーブルの例を示す図である。
【発明を実施するための形態】
【００２５】
本発明の実施形態について、図面を参照して詳細に説明する。
以下、符号化ブロックは、「ＭＰＥＧ−２」又は「Ｈ.２６４／ＡＶＣ」規格では、マクロブロックである。符号化ブロックは、ＨＥＶＣでは、コーディング・ユニット（Coding Unit: CU）、又は、プレディクション・ユニット（Prediction Unit: PU）である。コーディング・ユニットは、コーディング・ツリー・ユニット（Coding Tree Unit: CTU）を構成する。
【００２６】
（第１実施形態）
図１は、符号化システム１の構成例を示す図である。符号化システム１は、符号化装置１０と、外部メモリ２０とを備える。符号化装置１０は、動画像を符号化する際に参照画像バッファに格納される参照画像データの領域（参照領域）を決定する装置（参照領域決定装置）である。符号化装置１０は、外部メモリ２０に接続される。符号化装置１０は、原画像データ（動画像のフレーム）及び参照画像データを、外部メモリ２０に記録する。符号化装置１０は、記録された原画像データ及び参照画像データを、外部メモリ２０から取得する。符号化装置１０は、指定されたパラメータと参照画像データとに基づいて、原画像データを符号化する。
【００２７】
外部メモリ２０は、例えばＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記録媒体である。外部メモリ２０は、例えばフラッシュメモリなどの不揮発性の記録媒体（非一時的な記録媒体）でもよい。外部メモリ２０は、例えば、整形された原画像データを記憶する。
【００２８】
以下では、符号化装置１０は、一例として、「Ｈ.２６４／ＡＶＣ」又はＨＥＶＣ等の動画像符号化処理を実行する。符号化装置１０は、符号化処理を符号化ブロック単位で実行する。
【００２９】
符号化装置１０の構成例の詳細を説明する。
符号化装置１０は、符号化処理部１００と、符号化バッファ部２００とを備える。符号化処理部１００は、原画像整形部１０１と、イントラ予測処理部１０２と、インター予測処理部１０３と、予測残差信号生成部１０４と、変換・量子化処理部１０５と、エントロピー符号化部１０６と、逆量子化・逆変換処理部１０７と、復号信号生成部１０８と、ループフィルタ処理部１０９と、参照画像取得位置決定部１１０とを備える。
【００３０】
符号化装置１０の各機能部のうち一部又は全部は、例えば、ＬＳＩ等のハードウェアを用いて実現される。符号化装置１０の各機能部のうちの一部又は全部は、ＣＰＵ（Central Processing Unit）等のプロセッサが、記憶部に記憶されたプログラムを実行することにより、ソフトウェアとして実現されてもよい。
【００３１】
符号化バッファ部２００は、原画像バッファ２０１と、参照画像バッファ２０２とを備える。符号化バッファ部２００は、例えばＳＲＡＭ（Static Random Access Memory）などの揮発性の記録媒体である。符号化バッファ部２００は、例えば、原画像データ、参照画像データを記憶する。
【００３２】
符号化処理部１００の構成例の詳細を説明する。
原画像整形部１０１は、原画像データ（動画像のフレーム）を、ラスタスキャン順で取得する。原画像整形部１０１は、原画像データを符号化ブロック単位に整形する。原画像整形部１０１は、符号化ブロック単位の原画像データを、外部メモリ２０に出力する。
【００３３】
イントラ予測処理部１０２は、復号信号を復号信号生成部１０８から取得する。イントラ予測処理部１０２は、復号信号の対象フレームに対して、イントラ予測を実行する。
【００３４】
インター予測処理部１０３は、符号化ブロック単位の原画像データを、原画像バッファ２０１から取得する。インター予測処理部１０３は、フィルタリング処理後の復号信号を、参照画像信号として、参照画像バッファ２０２から取得する。インター予測処理部１０３は、フレームの間の動き探索処理を実行する。
【００３５】
予測残差信号生成部１０４は、符号化ブロック単位の原画像データを、原画像バッファ２０１から取得する。予測残差信号生成部１０４は、予測信号をイントラ予測処理部１０２又はインター予測処理部１０３から取得する。予測残差信号生成部１０４が予測信号をイントラ予測処理部１０２から取得する場合、予測信号は、イントラ予測の結果を表す情報を含む。予測残差信号生成部１０４が予測信号をインター予測処理部１０３から取得する場合、予測信号は、インター予測の結果を表す情報を含む。予測残差信号生成部１０４は、原画像データと予測信号との差分を、予測残差信号として変換・量子化処理部１０５に出力する。
【００３６】
変換・量子化処理部１０５は、離散コサイン変換等の直交変換を予測残差信号に対して実行する。変換・量子化処理部１０５は、変換係数を量子化する。変換・量子化処理部１０５は、量子化された変換係数を、エントロピー符号化部１０６と逆量子化・逆変換処理部１０７とに出力する。
【００３７】
エントロピー符号化部１０６は、量子化された変換係数をエントロピー符号化する。エントロピー符号化部１０６は、エントロピー符号化された変換係数のビットストリームを、復号装置等である外部装置に出力する。このように、符号化装置１０は、動き探索処理における探索結果を、復号装置等である外部装置に送信する。
【００３８】
逆量子化・逆変換処理部１０７は、量子化された変換係数を、変換・量子化処理部１０５から取得する。逆量子化・逆変換処理部１０７は、量子化された変換係数に対して、逆量子化及び逆直交変換処理を実行する。逆量子化・逆変換処理部１０７は、逆量子化及び逆直交変換処理の結果である予測残差復号信号を、復号信号生成部１０８に出力する。
【００３９】
復号信号生成部１０８は、予測信号をイントラ予測処理部１０２又はインター予測処理部１０３から取得する。復号信号生成部１０８は、予測残差復号信号と予測信号とを加算することによって、符号化された対象ブロックの復号信号を生成する。
【００４０】
ループフィルタ処理部１０９は、符号化歪みが低減されるフィルタリング処理を、復号信号に対して実行する。ループフィルタ処理部１０９は、フィルタリング処理後の復号信号を、参照画像信号として、外部メモリ２０に出力する。
【００４１】
参照画像取得位置決定部１１０は、インター予測による動きベクトルの探索結果を、インター予測処理部１０３から取得する。参照画像取得位置決定部１１０は、動きベクトルの探索結果に基づいて、動きベクトル情報等を解析する。参照画像取得位置決定部１１０は、参照画像フレームにおける各位置のうち、参照画像バッファ２０２が格納する参照画像データの領域（座標）を、動きベクトル情報等の解析結果に基づいて決定する。参照画像取得位置決定部１１０は、参照画像バッファ２０２が格納する参照画像データの領域の位置情報を、参照画像バッファ２０２に出力する。
【００４２】
原画像バッファ２０１は、読み出し要求信号（リード要求信号）を、外部メモリ２０に出力する。原画像バッファ２０１は、読み出し要求信号に応じて外部メモリ２０から転送された符号化ブロックごとの原画像データを、原画像バッファ２０１に一時的に格納する。
【００４３】
参照画像バッファ２０２は、参照画像バッファ２０２が格納する参照画像データの領域の位置情報を、参照画像取得位置決定部１１０から取得する。参照画像バッファ２０２は、参照画像データの領域の位置情報に基づいて、読み出し要求信号を外部メモリ２０に出力する。参照画像バッファ２０２は、読み出し要求信号に応じて外部メモリ２０から転送された参照画像データを、参照画像バッファ２０２に一時的に格納する。このようにして、参照画像バッファ２０２は、動き探索処理に必要とされる参照画像データを、外部メモリ２０から取得する。
【００４４】
図２は、参照画像取得位置決定部１１０の構成例を示す図である。参照画像取得位置決定部１１０は、動きベクトル結果格納部４０１と、位置変更量導出部４０２と、参照位置決定部４０３とを備える。
【００４５】
動きベクトル結果格納部４０１は、動きベクトル情報をインター予測処理部１０３から取得する。動きベクトル結果格納部４０１は、取得された動きベクトル情報を、動きベクトル結果格納部４０１に順次格納する。
【００４６】
動きベクトル結果格納部４０１は、固定値を表す解析開始位置パラメータを、解析パラメータの一つとして取得する。動きベクトル結果格納部４０１は、解析開始位置パラメータに基づいて、符号化処理中の符号化対象ブロックの位置を基準として、１個以上（固定値）前の位置の符号化ブロックから、１個前の位置の符号化ブロックまでの符号化ブロックごとの動きベクトル情報を格納する。
【００４７】
位置変更量導出部４０２は、符号化済みの符号化ブロックの１個以上の動きベクトル情報を、動きベクトル結果格納部４０１から取得する。すなわち、位置変更量導出部４０２は、過去の動きベクトル情報を、動きベクトル結果格納部４０１から取得する。
【００４８】
位置変更量導出部４０２は、設計者等から与えられた１個以上の解析パラメータと動きベクトルとに基づいて、符号化済みの符号化ブロックにおける動きベクトルの垂直方向の成分量（動き量）を解析する。位置変更量導出部４０２は、動きベクトルの垂直方向の成分量の解析結果に基づいて、動きベクトルの垂直方向の成分量の代表値を導出する。位置変更量導出部４０２は、動きベクトルの垂直方向の成分量の代表値に基づいて、参照画像フレームにおける各位置のうち、格納される参照画像データの領域（以下「参照画像領域」という。）の位置変更量（ホッピング量）を決定する。
【００４９】
参照位置決定部４０３は、参照画像領域の位置変更量情報を、位置変更量導出部４０２から取得する。参照位置決定部４０３は、参照画像フレームにおける各位置のうち、参照画像バッファ２０２が格納する参照画像データの領域の位置を、位置変更量情報に基づいて決定する。参照位置決定部４０３は、参照画像バッファ２０２が格納する参照画像データの領域の位置情報を、参照画像取得位置情報として参照画像バッファ２０２に出力する。
【００５０】
図３は、格納されている参照画像データの例を示す図である。解析開始位置パラメータの値は、一例として３０である。符号化対象ブロックに対する探索中心の位置ベクトルは、符号化対象フレーム及び参照画像フレームの間で一定である。説明を簡単にする目的で、実施形態の各図に示された符号化対象フレーム２の全面には、符号化対象フレーム２の座標と参照画像フレームの座標とが一致するように、参照画像フレームが重ねられている。符号化対象フレーム２の横幅は、一例として１９２０画素である。符号化対象フレーム２は、複数の符号化ブロックを含む。符号化ブロックのサイズは、一例として、６４×６４画素である。
【００５１】
符号化対象フレームの１本のラインには、符号化ブロック「１」から符号化ブロック「３０」までの３０（＝１９２０／６４）個の符号化ブロックが配列されている。所定時刻において、動きベクトル結果格納部４０１は、符号化ブロック「１」から符号化ブロック「３０」までの符号化ブロックごとに、動きベクトル情報を格納する。図３では、動きベクトル結果格納部４０１は、符号化処理中の符号化ブロックである符号化対象ブロック５００「Ａ」の左の符号化ブロック「１」から、符号化対象ブロック５００「Ａ」の直上の符号化ブロック「３０」までの符号化ブロックごとに、動きベクトル情報を格納する。このように、動きベクトル結果格納部４０１は、符号化対象ブロック５００「Ａ」が属するラインの１本前のラインに属する符号化済みの符号化ブロックごとに、動きベクトル情報を格納してもよい。格納対象ブロック群６００は、動きベクトル情報が格納される対象の符号化ブロック群である。
【００５２】
符号化装置１０の各機能部の一部又は全部が例えばＬＳＩを用いて実現されている場合、ＬＳＩのパイプライン処理によって、複数の符号化ブロックに対して互いに異なる処理が並行して実行される。このため、符号化対象ブロック５００「Ａ」に近い符号化ブロック「１」及び符号化ブロック「２」等における最終的な動きベクトルは、得られていなくてもよい。この場合、動きベクトル結果格納部４０１は、符号化対象ブロック５００「Ａ」の位置を基準として、解析開始位置パラメータが表す固定値だけ前の符号化ブロックから、最終的な動きベクトルが得られている最新の符号化ブロックまでの各符号化ブロックの動きベクトル情報を格納する。動きベクトル結果格納部４０１は、参照画像バッファ２０２に格納された最も古い動きベクトル情報を、符号化対象ブロックの符号化が完了するごとに削除する。動きベクトル結果格納部４０１は、動きベクトルの探索処理において最も新しい動きベクトルを動きベクトル結果格納部４０１に新たに格納することで、動きベクトル結果格納部４０１の内部バッファを更新する。
【００５３】
位置変更量導出部４０２は、符号化済みの符号化ブロックの複数の動きベクトル情報を、動きベクトル結果格納部４０１から取得する。取得される動きベクトル情報は、解析開始位置パラメータと解析終了位置パラメータとの２個のパラメータを用いて指定される。位置変更量導出部４０２は、符号化対象ブロック５００「Ａ」の位置を基準として、解析開始位置パラメータが表す固定値だけ前の符号化ブロックから、解析終了位置パラメータが表す固定値だけ前の符号化ブロックまでにおける各動きベクトル情報を取得する。位置変更量導出部４０２は、取得された各動きベクトル情報を、解析対象の動きベクトルとする。
【００５４】
図４は、解析対象の動きベクトルの例を示す図である。解析開始位置パラメータの値は、一例として３０である。解析終了位置パラメータの値は、一例として２４である。位置変更量導出部４０２は、符号化ブロック「２４」から符号化ブロック「３０」までの符号化ブロックごとに、動きベクトル情報を解析する。
【００５５】
位置変更量導出部４０２は、複数の動きベクトル情報の解析結果に基づいて、動きベクトルの成分量の代表値を導出する。図４では、位置変更量導出部４０２は、一例として、動きベクトルの垂直方向の成分量の代表値を導出する。位置変更量導出部４０２は、動きベクトルの垂直方向の成分量の代表値に基づいて、参照画像フレームにおける各位置のうち、参照画像領域の位置変更量を決定する。位置変更ベクトル８００は、参照画像領域の位置変更の量及び向きを表すベクトルである。位置変更ベクトル８００の垂直方向の成分量は、参照画像データが取得される位置の垂直方向の位置変更量を表す。位置変更ベクトル８００の向きは、参照画像領域の位置変更の向きを表す。
【００５６】
参照画像バッファ２０２に格納される参照画像領域の垂直方向の位置変更量が、符号化対象ブロック５００「Ａ」のラインの１本前（１本上）のラインに位置する解析対象ブロック群６０１の垂直方向の動きの大きさに基づいて決定されるように、位置変更量導出部４０２は、動きベクトルの成分量の代表値を導出する。動きベクトルの成分量の代表値は、例えば、各動きベクトルの成分量の最頻値である。この最頻値は、例えば、中央値又は平均値でもよい。図４では、符号化ブロック「２７」の解析対象の動きベクトル７００−２７の垂直方向の成分量が、動きベクトル７００−２４〜７００−３０の垂直方向の成分量の中央値である。このため、位置変更量導出部４０２は、参照画像領域の位置変更量の値を、動きベクトル７００−２７の垂直方向の成分量と等しい値に決定する。すなわち、位置変更量導出部４０２は、参照画像領域の位置変更量の値を、動きベクトル７００−２４〜７００−３０の垂直方向の成分量の中央値と等しい値に決定する。位置変更量導出部４０２は、位置変更量情報を参照位置決定部４０３に出力する。解析対象ブロック群６０１は、解析対象の動きベクトルを持つ符号化ブロック群である。
【００５７】
なお、参照画像バッファ２０２に格納される参照画像領域の垂直方向の位置変更量が、符号化対象ブロック５００「Ａ」のラインよりも上で連続する複数のラインに位置する解析対象ブロック群６０１の垂直方向の動きの大きさに基づいて決定されるように、位置変更量導出部４０２は、動きベクトルの成分量の代表値を導出してもよい。これによって、位置変更量導出部４０２は、平均化された画像の動きに位置変更量が追従するようになるので、画像に生じた突発的（ノイズ的）な動きに位置変更量が過度に追従しないようにすることが可能である。
【００５８】
参照位置決定部４０３は、参照画像フレームにおける各位置のうち、参照画像データが取得される位置を、位置変更量に基づいて決定する。参照画像バッファ２０２のサイズ（データ容量）を削減するため、参照画像バッファ２０２に格納される参照画像データは、動き探索処理における動きベクトルの探索範囲の参照画像データである。
【００５９】
位置変更量に応じて探索範囲の位置が変更されない場合、参照画像フレームにおける矩形の探索範囲の中心は、符号化対象フレームにおける符号化対象ブロックの位置と一致する。参照画像フレームにおいて矩形の探索範囲の位置が変更されない場合、外部メモリ２０から参照画像バッファ２０２に転送される参照画像データの転送レートは、「（ブロックの横幅）×（探索範囲の縦幅）／１符号化対象ブロック処理時間」に抑えられる。このように、探索範囲の縦幅は、参照画像バッファ２０２のサイズと、外部メモリ２０から参照画像バッファ２０２に転送される参照画像データの転送レートとの両方に影響を与える。探索範囲の横幅は、参照画像バッファ２０２のサイズ（データ容量）に影響を与える。
【００６０】
図５は、探索範囲の例を示す図である。図５では、探索範囲６０２の形状は矩形である。探索範囲のサイズは、３２０×１９２画素である。符号化対象ブロック５００「Ａ」の符号化処理中に探索範囲の位置が変更されない場合、探索範囲６０２は、符号化対象ブロック５００「Ａ」を含む「±１２８×±６４」画素の範囲である。探索範囲６０２の参照画像データが水平方向に途切れることなく参照画像バッファ２０２に格納されるためには、符号化対象ブロック５００「Ａ」の符号化処理中に、参照画像バッファ２０２は、符号化対象ブロック５００「Ａ」の位置から右方向（水平方向）に第１２８画素から第１９２画素までの横幅「６４」画素の参照画像領域の参照画像データを、外部メモリ２０から取得する必要がある。
【００６１】
図５では、符号化対象ブロック５００「Ａ」の符号化処理中に探索範囲の位置が変更されない場合、参照画像データが取得される位置を含む領域は、参照画像領域６０３である。参照画像フレームにおける参照画像領域６０３の横幅（水平方向）の範囲は、符号化対象フレームにおける符号化対象ブロック５００「Ａ」の位置と同じ位置を基準として、この同じ位置から右方向に計数された第１２８画素から第１９２画素までの横幅「６４」画素の範囲である。参照画像フレームにおける参照画像領域６０３の垂直方向の範囲は、符号化対象フレームにおける符号化対象ブロック５００「Ａ」の位置と同じ位置を基準として、この同じ位置を含む縦幅「１９２」画素の範囲である。
【００６２】
図５では、参照画像領域６０３（参照画像読み出し領域）の中心と、次の符号化対象のブロックである符号化対象ブロック５０１「Ｂ」の中心とが一致している。符号化対象ブロック５００「Ａ」の符号化処理中に、参照画像バッファ２０２は、「（符号化ブロックの横幅）×（探索範囲の縦幅）（＝６４×１９２）」画素の参照画像領域６０３の参照画像データを、外部メモリ２０から取得する。参照画像バッファ２０２に格納されている参照画像データのサイズは、（３２０×１９２）画素＋（６４×１９２）画素となる。
【００６３】
このように、参照位置決定部４０３は、１個の符号化対象ブロックの符号化処理の時間（１符号化対象ブロック処理時間）において参照画像バッファ２０２に外部メモリ２０から転送される参照画像領域６０３の位置を、符号化済みの符号化ブロックにおける動き探索処理の結果に基づいて、垂直方向に変更する。これによって、参照位置決定部４０３は、参照画像フレームにおける各位置のうち、参照画像バッファ２０２が格納する参照画像データを有する探索範囲の位置を、参照画像バッファ２０２のデータ容量（バッファサイズ）と転送レートとが変更されることなく、位置変更量情報に基づいて適応的に符号化ブロック単位で決定することが可能である。
【００６４】
図６は、探索範囲と参照画像の取得位置との例を示す図である。参照位置決定部４０３は、図４に示された例において導出された動きベクトルの垂直方向の成分量の代表値に基づいて決定された位置変更量に応じて、動きベクトルの探索範囲と参照画像取得位置情報とを変更する。
【００６５】
解析対象ブロック群６０１について動きベクトルの垂直方向の成分量の代表値が導出された結果、位置変更ベクトル８００の垂直方向の成分量は、上方向の位置変更量を表す。この場合、参照位置決定部４０３は、次の符号化対象のブロックである符号化対象ブロック５０１「Ｂ」の位置を基準として、位置変更ベクトル８００に応じて上方向に位置変更量だけ位置変更された位置を、符号化対象ブロック５０１「Ｂ」の符号化のために参照画像バッファ２０２に格納される参照画像領域６０３の中心と決定する。符号化対象ブロック５００「Ａ」の符号化処理中に、参照画像バッファ２０２は、上方向に位置変更量だけ位置変更された参照画像領域６０３の参照画像データを、外部メモリ２０から取得する。
【００６６】
図６では、解析開始位置パラメータと解析終了位置パラメータとが工夫されることによって、解析対象ブロック群６０１の範囲は、符号化対象ブロック５０１「Ｂ」の直上の符号化ブロックの位置を基準として、左方向に３個の符号化ブロックと右方向に３個の符号化ブロックとの左右対称の範囲となっている。これによって、参照位置決定部４０３は、符号化対象ブロック５０１「Ｂ」の直上の符号化ブロックにおける動きベクトルを、参照画像取得位置情報の決定に敏感に反映させることが可能である。
【００６７】
解析開始位置パラメータ及び解析終了位置パラメータは、どの符号化済みの符号化ブロックの動きベクトルを、次に符号化される符号化対象ブロックの動きベクトルの探索範囲を構成する参照画像領域の位置変更に反映させるかを示すパラメータとなる。
【００６８】
複数の動きベクトルの垂直方向の成分量の代表値が複数の動きベクトルの垂直方向の成分量の平均値である場合、位置変更量導出部４０２は、複数の動きベクトルの垂直方向の成分量の単純移動平均値に基づいて、参照画像フレームにおける各位置のうち、参照画像領域の位置変更量を決定する。この場合、解析開始位置パラメータの値と解析終了位置パラメータの値との差分が大きいほど、長期間の時系列の符号化対象フレーム２における画像の動き量が、参照画像領域の位置変更量の決定に反映される。これによって、位置変更量導出部４０２は、より平滑化された動きを表す位置変更量を決定することが可能である。
【００６９】
解析開始位置パラメータ及び解析終了位置パラメータの組み合わせは、複数用意されてもよい。位置変更量導出部４０２は、複数用意されている組み合わせのうちの１個以上の組み合わせに基づいて、解析対象の動きベクトルを持つ符号化ブロック群（解析対象ブロック群）を定めてもよい。例えば、位置変更量導出部４０２は、解析対象ブロック群６０１だけでなく、符号化対象ブロック５０１「Ｂ」の左方向の同一ラインの複数の符号化ブロック（図６では、例えば、符号化ブロック「２」、符号化ブロック「１」及び符号化ブロック「Ａ」）を、解析対象の動きベクトルを持つ符号化ブロック群（解析対象ブロック群）としてもよい。これによって、位置変更量導出部４０２は、符号化対象ブロックの上側の符号化ブロックと符号化対象ブロックの左側のブロックとの両方の各動きベクトルの解析結果を、参照画像領域の位置変更に反映させることが可能である。
【００７０】
図６では、導出された動きベクトルの垂直方向の成分量の代表値に基づいて決定された位置変更量に応じて、参照位置決定部４０３は、参照画像取得位置情報を変更している。ここで、外部メモリ２０は、参照画像データに含まれている複数の画素データの集合ごとのアドレスに基づいて、外部メモリ２０に参照画像データを格納する。参照位置決定部４０３は、このような外部メモリ２０における参照画像データの格納方法に応じて、垂直方向の参照画像取得位置を変更してもよい。
【００７１】
例えば、８×４画素の参照画像データの集合が１個のアドレスに基づいて外部メモリ２０に格納されており、位置変更量の値が４の倍数でない場合、位置変更量の値が４の倍数である場合と比較して、転送処理に必要とされるアドレス情報が１個増えてしまうので、不要なデータが発生し、転送レートが増加する。転送レートが増加しないようにするため、参照位置決定部４０３は、位置変更量導出部４０２によって決定された位置変更量の値を、所定の整数の倍数（例えば、４の倍数）に変更してもよい。参照位置決定部４０３は、変更後の位置変更量情報を、参照画像バッファ２０２に出力する。
【００７２】
図７は、参照画像バッファ２０２に参照画像データが格納される各参照画像領域の例を示す図である。参照画像領域６０３〜６０７は、符号化対象ブロック５０１「Ｂ」の動きベクトルの探索範囲である。図６に示された符号化対象ブロック５００「Ａ」から符号化対象ブロック５０１「Ｂ」までの各符号化対象ブロックが符号化された場合、参照画像バッファ２０２は、参照画像領域６０３〜６０７の各参照画像データを格納している。
【００７３】
図７では、符号化ブロックごとに参照画像領域の位置が垂直方向に変更されているので、（３２０×１９２）画素の探索範囲は、参照画像領域６０３〜６０７から構成されている。図７に示されているように、探索範囲の形状が矩形である必要はない。
【００７４】
符号化対象ブロック５０１「Ｂ」の符号化処理中に、参照画像バッファ２０２は、次の符号化対象のブロックである符号化対象ブロック５０２「Ｃ」の動きベクトルの探索範囲に含まれる参照画像領域６０８の参照画像データを、外部メモリ２０から取得する。参照画像領域６０８のサイズは、６４×１９２画素である。参照画像バッファ２０２に格納されている参照画像データのサイズは、（３２０×１９２）画素＋（６４×１９２）画素となる。
【００７５】
これによって、参照位置決定部４０３は、参照画像フレームにおける各位置のうち、参照画像バッファ２０２が格納する参照画像データの領域（探索範囲）の位置を、参照画像バッファ２０２のデータ容量（バッファサイズ）と転送レートとが変更されることなく、位置変更量情報に基づいて適応的に、ライン単位で決定することが可能である。参照位置決定部４０３は、位置変更量に基づいて決定された参照画像取得位置情報を、参照画像バッファ２０２に出力する。参照画像バッファ２０２は、参照画像取得位置に対応する外部メモリ２０上のアドレス等を導出する。参照画像バッファ２０２は、導出されたアドレス等に基づいて、読み出し要求信号を外部メモリ２０に出力する。
【００７６】
図７では、参照位置決定部４０３は、符号化ブロックごとに導出された位置変更量に基づいて、参照画像バッファ２０２に外部メモリ２０から転送される参照画像領域（参照画像読み出し領域）の位置を決定している。参照位置決定部４０３は、複数の符号化ブロックごとに導出された位置変更量に基づいて、参照画像バッファ２０２に外部メモリ２０から転送される参照画像領域の位置を決定してもよい。
【００７７】
以下、何個の符号化ブロックごとに１回の頻度で解析された動きベクトルの解析結果を参照画像領域（探索範囲）の位置変更に反映させるかを表すパラメータを「解析頻度パラメータ」という。解析頻度パラメータの値が例えば「１」である場合、参照位置決定部４０３は、符号化ブロックごとに導出された位置変更量に基づいて、参照画像バッファ２０２に外部メモリ２０から転送される参照画像領域の位置を決定する。
【００７８】
図８は、解析頻度パラメータの値が「３」である場合の参照画像領域の例を示す図である。解析頻度パラメータの値が大きいほど、複数の参照画像領域の組み合わせ（図８では、参照画像領域６０３、６０６及び６０７の組み合わせ）の横幅は長くなるので、これら複数の参照画像領域の組み合わせを含む探索範囲の形状は長方形に近くなる。解析頻度パラメータの値が大きいほど、複数の参照画像領域の組み合わせ同士の位置変更量の差は大きくなるので、参照画像取得位置はより大きく変化しやすい。
【００７９】
このように、参照位置決定部４０３は、解析開始位置パラメータ及び解析終了位置パラメータの間の差分と解析頻度パラメータとの２個のパラメータを用いて、符号化済みの符号化ブロックの複数の動きベクトル情報が参照画像領域の位置に与える影響と位置変更量とを調整することが可能である。
【００８０】
参照位置決定部４０３は、解析開始位置パラメータ及び解析終了位置パラメータに応じて定まる各解析対象ブロックの動きベクトルに、互いに異なる重み付けを与えてもよい。参照位置決定部４０３は、重み付けを与える重み係数に基づいて、動きベクトルの垂直方向の成分量の加重移動平均を導出してもよい。参照位置決定部４０３は、解析対象ブロック群６０１の中心に近い位置の符号化ブロックの動きベクトルの重み係数を、他の符号化ブロックの動きベクトルの重み係数と比較して大きくしてもよい。例えば図４では、参照位置決定部４０３は、符号化ブロック「２７」の動きベクトル７００−２７の重み係数を相対的に大きくし、符号化ブロック「２４」及び「３０」の各動きベクトル７００の重み係数を相対的に小さくしてもよい。これによって、図６に示された符号化対象ブロック５０１「Ｂ」に近い符号化ブロックの参照画像領域には、符号化済みの符号化ブロックの複数の動きベクトル情報がより反映される。参照画像バッファ２０２は、符号化対象フレームにおける複雑な動きに追従可能な参照画像領域を格納することが可能である。
【００８１】
図９は、ライン単位の位置変更の例を示す図である。解析開始位置パラメータの値は、一例として２７である。解析終了位置パラメータの値は、一例として１である。解析頻度パラメータの値は、一例として３０である。参照位置決定部４０３は、予め定められた単位パラメータに応じて、参照画像領域の位置をライン単位で変更してもよい。符号化対象ブロック５０３「Ａ」の符号化処理中に、探索範囲６１０が符号化対象フレームの右端を含んでいる。このため、参照画像バッファ２０２は、符号化対象ブロック５０３「Ａ」が属しているラインの次のラインに属する符号化対象ブロック５０４「Ｂ」の動きベクトルの探索範囲に含まれる参照画像領域６１１の参照画像データを、外部メモリ２０から取得する。
【００８２】
図９では、解析開始位置パラメータと解析終了位置パラメータとが工夫されることによって、解析対象ブロック群６０９は、符号化対象ブロック５０３「Ａ」の位置を基準として、１本のラインにおける左方向の全ての符号化ブロックから構成されている。すなわち、解析対象ブロック群６０９は、符号化対象ブロック５０３「Ａ」が属する１本のラインにおける多くの符号化ブロックを含む。これによって、位置変更量導出部４０２は、このような解析対象ブロック群６０９の各符号化ブロックの動きベクトル情報を、符号化対象ブロック５０３「Ａ」が属しているラインの次のラインに属する符号化対象ブロック５０４「Ｂ」の動きベクトルの探索範囲に含まれる参照画像領域６１１の位置変更量の決定に反映させることが可能である。
【００８３】
図９では、位置変更量導出部４０２は、１ラインにおけるほぼ全ての符号化ブロックを含む解析対象ブロック群６０９の各符号化ブロックの動きベクトル情報を、符号化対象ブロック５０３「Ａ」が属しているラインの次のラインに属する符号化対象ブロック５０４「Ｂ」の動きベクトルの探索範囲に含まれる参照画像領域６１１の位置変更量の決定に反映させることが可能である。例えば、位置変更量導出部４０２は、符号化対象ブロック５０４「Ｂ」の動きベクトルの探索範囲に含まれる参照画像領域６１１の位置変更ベクトル８０１−２を、解析対象ブロック群６０９の各符号化ブロックの動きベクトルの垂直方向の成分量の代表値に基づいて決定された位置変更量を表す位置変更ベクトル８０１−１と等しくする。
【００８４】
図１０は、参照画像領域の例を示す図である。解析開始位置パラメータの値は、一例として３０である。解析終了位置パラメータの値は、一例として２４である。解析頻度パラメータの値は、一例として３０である。符号化対象ブロック５０４「Ｂ」が符号化された場合、参照画像バッファ２０２は、探索範囲６１２−１の各参照画像領域の参照画像データを格納している。符号化対象ブロック５０５「Ｃ」が符号化された場合、参照画像バッファ２０２は、探索範囲６１２−２の各参照画像領域の参照画像データを格納している。
【００８５】
解析頻度パラメータの値と探索範囲６１２−１の水平方向の符号化ブロックの個数とが等しい場合、符号化対象フレームのラインの左端における符号化対象ブロック５０４「Ｂ」の位置変更ベクトル８０１−２が表す位置変更量及び位置変更方向は、同一ラインの右端における符号化対象ブロック５０５「Ｃ」の動きベクトルの探索処理が完了するまで変更されない。このため、図１０では、探索範囲６１２の形状は矩形である。
【００８６】
符号化処理中の符号化ブロックが符号化対象ブロック５０５「Ｃ」である場合、符号化済みの符号化ブロックとなった符号化対象ブロック５０３「Ａ」を含む３０（＝１９２０／６４）個の符号化ブロックの各動きベクトルの探索処理が完了している。このため、参照位置決定部４０３は、探索処理が完了しているこれらの動きベクトルを解析する。参照位置決定部４０３は、符号化済みの符号化ブロックとなった符号化対象ブロックのラインの次のラインに属する各符号化対象ブロックの動きベクトルの探索範囲に含まれる参照画像領域の位置変更量を決定する。
【００８７】
このように、参照位置決定部４０３は、解析開始位置パラメータと解析終了位置パラメータと解析頻度パラメータとに基づいて、ライン単位で参照画像領域の位置を変更することが可能である。例えば、探索範囲の形状が矩形に限定される場合、参照位置決定部４０３は、ライン単位で参照画像領域の位置を変更する。参照位置決定部４０３は、ライン単位で参照画像領域の位置を変更することによって、参照画像領域の位置の変更頻度を低くすることが可能である。
【００８８】
次に、符号化システム１の動作例を説明する。
図１１は、符号化システム１の動作例を示すフローチャートである。動きベクトル結果格納部４０１（動きベクトル取得部）は、符号化済みの符号化ブロックごとに、動きベクトルを取得する（ステップＳ１０１）。位置変更量導出部４０２は、参照画像バッファ２０２に格納される参照画像データの領域（参照画像領域）の位置変更量を、取得された動きベクトルに基づいて導出する（ステップＳ１０２）。参照位置決定部４０３（参照領域決定部）は、符号化済みの符号化ブロックの次の符号化対象の符号化ブロックである符号化対象ブロックの符号化に用いられる参照画像データの領域の位置を、導出された位置変更量に基づいて決定する（ステップＳ１０３）。
【００８９】
以上のように、第１実施形態の符号化装置１０（参照領域決定装置）は、参照画像バッファに格納される参照領域を決定する。符号化装置１０は、動きベクトル結果格納部４０１（動きベクトル取得部）と、位置変更量導出部４０２と、参照位置決定部４０３（参照領域決定部）とを備える。動きベクトル結果格納部４０１は、符号化済みのブロックごとに動きベクトルを取得する。位置変更量導出部４０２は、取得された動きベクトルに基づいて、参照画像領域（参照領域）の位置変更量を導出する。参照位置決定部４０３は、符号化済みの符号化ブロックの次の符号化対象の符号化ブロックの符号化に用いられる参照画像領域（参照領域）の位置を、位置変更量に基づいて決定する。
【００９０】
これにより、第１実施形態の符号化装置１０は、参照画像フレームの一部分のみの参照画像データをバッファが格納する場合でも、符号化効率の低下を抑止することが可能である。
【００９１】
すなわち、符号化装置１０は、探索範囲の参照画像データのみが参照画像バッファ２０２に格納される場合でも、符号化対象フレームから参照される参照画像フレームにおいて、符号化ブロック単位又はライン単位で、参照画像領域を含む探索範囲の位置を変更するので、符号化効率の低下を抑止することが可能である。
【００９２】
参照位置決定部４０３は、インター予測処理部１０３によって探索された過去の動きベクトル情報に基づいて、参照画像フレームにおける、符号化対象ブロックの動きベクトルの探索範囲の位置を、符号化ブロック単位でリアルタイムに決定する。符号化対象フレームから参照される参照画像フレームにおける位置であって、参照画像バッファ２０２が外部メモリ２０から取得する参照画像データの領域の位置は、図６又は図９を用いて説明されたように工夫されてもよい。これによって、符号化装置１０は、参照画像バッファのデータ容量の増加と、外部メモリ２０から転送される参照画像データの転送レートとを抑えて、符号化対象フレームに撮像された物体画像の動きに的確に追従し、符号化効率を向上させることが可能である。
【００９３】
（第２実施形態）
第２実施形態では、動きベクトル情報と差分累積値とブロックサイズ情報とに基づいて参照画像領域の位置を参照画像取得位置決定部が決定する点が、第１実施形態と相違する。第２実施形態では第１実施形態との相違点を説明する。
【００９４】
差分累積値等の値は、動き探索処理の結果である動きベクトルがどの程度正しいか（動きベクトルの精度）を示す指標となり得る。このため、位置変更量導出部４０２は、動きベクトル情報以外の複数の情報の組み合わせに基づいて、位置変更量を導出してもよい。参照位置決定部４０３は、このように導出された位置変更量に基づいて、参照画像バッファ２０２に格納される参照画像データの領域を決定してもよい。
【００９５】
Ｈ.２６５／ＨＥＶＣなどの動画像符号化規格では、６４×６４画素等のサイズのコーディング・ツリー・ユニットが四分岐でさらに細かく分割される場合がある。この場合、解析開始位置パラメータ及び解析終了位置パラメータを用いて解析対象のコーディング・ツリー・ユニットの個数が指定されたとしても、位置変更量導出部４０２によって取得される動きベクトルの本数は、動きベクトルの解析対象のコーディング・ツリー・ユニットの個数よりも多くなる。
【００９６】
したがって、動きベクトルを有する符号化ブロックのサイズは、符号化ブロック同士で異なる場合がある。そこで、位置変更量導出部４０２は、符号化済みの符号化ブロックの動きベクトルの探索結果における、ブロックサイズ情報（分割情報）及び動きベクトル情報に基づいて、位置変更量を導出してもよい。
【００９７】
図１２は、参照画像取得位置決定部１１０の構成例を示す図である。参照画像取得位置決定部１１０は、動きベクトル結果格納部４０１と、位置変更量導出部４０２と、参照位置決定部４０３と、差分累積値格納部４０４と、ブロックサイズ格納部４０５とを備える。
【００９８】
動きベクトル結果格納部４０１は、解析開始位置パラメータに基づいて、符号化処理中の符号化対象ブロックの位置を基準として、１個以上（固定値）前の位置の符号化ブロックから、１個前の位置の符号化ブロックまでの符号化ブロックごとの動きベクトル情報を格納する。
【００９９】
差分累積値格納部４０４は、動きベクトルが符号化に用いられた際の差分累積値を、インター予測処理部１０３から取得する。差分累積値格納部４０４は、解析開始位置パラメータに基づいて、符号化処理中の符号化対象ブロックの位置を基準として、１個以上（固定値）前の位置の符号化ブロックから、１個前の位置の符号化ブロックまでの符号化ブロックごとの差分累積値を格納する。
【０１００】
差分累積値格納部４０４は、差分累積値格納部４０４に格納されている最も古い差分累積値を、符号化対象ブロックの符号化が完了するごとに、差分累積値格納部４０４から削除する。差分累積値格納部４０４は、取得された最も新しい差分累積値を、差分累積値格納部４０４に格納する。このようにして、差分累積値格納部４０４は、差分累積値格納部４０４に格納されているデータを更新する。
【０１０１】
ブロックサイズ格納部４０５は、動きベクトルが符号化に用いられた際に符号化ブロックがどのようなサイズに分割されたかを表す情報であるブロックサイズ情報を、インター予測処理部１０３から取得する。ブロックサイズ格納部４０５は、解析開始位置パラメータに基づいて、符号化処理中の符号化対象ブロックの位置を基準として、１個以上（固定値）前の位置の符号化ブロックから、１個前の位置の符号化ブロックまでの符号化ブロックごとのブロックサイズ情報を格納する。
【０１０２】
ブロックサイズ格納部４０５は、ブロックサイズ格納部４０５に格納されている最も古いブロックサイズ情報を、符号化対象ブロックの符号化が完了するごとに、ブロックサイズ格納部４０５から削除する。ブロックサイズ格納部４０５は、取得された最も新しいブロックサイズ情報を、ブロックサイズ格納部４０５に格納する。このようにして、ブロックサイズ格納部４０５は、ブロックサイズ格納部４０５に格納されているデータを更新する。
【０１０３】
位置変更量導出部４０２は、符号化済みの符号化ブロックの１個以上の動きベクトル情報を、動きベクトル結果格納部４０１から取得する。位置変更量導出部４０２は、符号化済みの符号化ブロックの１個以上の差分累積値を、差分累積値格納部４０４から取得する。位置変更量導出部４０２は、符号化済みの符号化ブロックの１個以上のブロックサイズ情報を、ブロックサイズ格納部４０５から取得する。
【０１０４】
位置変更量導出部４０２は、設計者等から与えられた１個以上の解析パラメータと動きベクトルと差分累積値とブロックサイズ情報とに基づいて、符号化済みの符号化ブロックにおける動きベクトルの垂直方向の成分量（動き量）を解析する。
【０１０５】
図１３は、符号化ブロックの例を示す図である。解析開始位置パラメータの値は、一例として３０である。解析終了位置パラメータの値は、一例として２４である。解析対象ブロック群６１３は、解析対象の動きベクトルを持つ符号化ブロック「２４」から符号化ブロック「３０」までの７個の符号化ブロック（コーディング・ツリー・ユニット）である。
【０１０６】
解析対象ブロック群６１３において、一例として、符号化ブロック「２４」と符号化ブロック「２６」と符号化ブロック「２９」とが分割されている。解析対象の動きベクトル情報の個数と、差分累積値の個数と、符号化ブロックのサイズ情報であるブロックサイズ情報の個数とは、各１９個である。位置変更量導出部４０２は、ｉ番目の符号化ブロックのブロックサイズの重み係数「Ｅｉ」と、ｉ番目の符号化ブロックの差分累積値の重み係数「Ｆｉ」と、ｉ番目の符号化ブロックの初期重み係数「Ｇｉ」との３種類の重み係数を持つ。動きベクトルの垂直方向の成分量の代表値に基づいて決定される位置変更量は、ｉ番目の符号化ブロックの動きベクトルの垂直方向の成分量（動き量）「Ｖｙｉ」を用いて、式（１）のように表される。
【０１０７】
【数１】
2020113934.tif 000003
【０１０８】
式（１）に示されたブロックサイズの重み係数「Ｅｉ」は、例えば、ｉ番目の符号化ブロックの面積に応じた値に定められる。この場合、動きベクトル情報は、その動きベクトルを持つ符号化ブロックの面積が広いほど、位置変更量に強く反映される。差分累積値の重み係数「Ｆｉ」は、差分累積値が大きいほど、小さい値に定められる。すなわち、差分累積値の重み係数「Ｆｉ」は、探索された動きベクトルの精度が低いほど、小さい値に定められる。これによって、位置変更量導出部４０２は、探索された動きベクトルの精度に応じて位置変更量を導出することが可能である。
【０１０９】
図１４は、差分累積値の重み係数テーブルの例を示す図である。差分累積値の重み係数テーブルでは、１画素当りの平均誤差と、差分累積値の重み係数とが対応付けられている。位置変更量導出部４０２は、差分累積値の重み係数テーブルを取得する。位置変更量導出部４０２は、差分累積値の重み係数テーブルを予め記憶してもよい。
【０１１０】
位置変更量導出部４０２は、取得された差分累積値及びブロックサイズ情報に基づいて、正規化された差分累積値を導出する。すなわち、位置変更量導出部４０２は、差分累積値がブロックサイズで除算された結果である１画素当りの平均誤差を導出する。位置変更量導出部４０２は、差分累積値の重み係数テーブルにおいて「１画素当りの平均誤差」に対応付けられた「差分累積値の重み係数」を、差分累積値の重み係数テーブルから取得する。
【０１１１】
式（１）に示された初期重み係数「Ｇｉ」は、解析対象ブロック群の複数の符号化ブロックにおいて符号化ブロックのブロックサイズ及び差分累積値が等しい場合における、それら各符号化ブロックの動きベクトルの重み付けの初期値を表す。位置変更量導出部４０２は、初期重み係数「Ｇｉ」に基づいて、符号化ブロックのブロックサイズと差分累積値（動きベクトルの探索精度）とに応じて、垂直方向の動きベクトルの成分量の代表値を導出することが可能である。
【０１１２】
解析対象ブロック群の複数の符号化ブロックにおいて、符号化ブロックのブロックサイズ及び差分累積値が等しい場合、位置変更量導出部４０２は、動きベクトルの垂直方向の成分量の加重移動平均を導出する。解析対象ブロック群の複数の符号化ブロックにおいて、符号化ブロックのブロックサイズ及び差分累積値が等しく、かつ、全ての符号化ブロックの初期重み係数「Ｇｉ」が固定値である場合、位置変更量導出部４０２は、動きベクトルの垂直方向の成分量の単純移動平均を導出する。
【０１１３】
参照位置決定部４０３は、参照画像領域の位置変更量情報を、位置変更量導出部４０２から取得する。参照位置決定部４０３は、参照画像フレームにおける各位置のうち、参照画像バッファ２０２が格納する参照画像データの領域の位置を、位置変更量情報に基づいて決定する。参照位置決定部４０３は、参照画像バッファ２０２が格納する参照画像データの領域の位置情報を、参照画像取得位置情報として参照画像バッファ２０２に出力する。
【０１１４】
以上のように、第２実施形態の符号化装置１０（参照領域決定装置）は、位置変更量導出部４０２を備える。位置変更量導出部４０２は、取得された動きベクトルと符号化済みの符号化ブロックのブロックサイズ情報（分割情報）とに基づいて、参照画像領域（探索範囲）の位置変更量を導出する。位置変更量導出部４０２は、取得された動きベクトルの精度（例えば、差分累積値）に応じて位置変更量を導出してもよい。
【０１１５】
これにより、第２実施形態の符号化装置１０は、参照画像フレームの一部分のみの参照画像データをバッファが格納する場合でも、符号化効率の低下を抑止することが可能である。
【０１１６】
符号化装置１０は、バッファサイズと外部メモリ２０から転送される参照画像データの転送レートとを増加させないようにして、符号化ブロック単位で、探索範囲の垂直方向の位置を変更することが可能である。符号化装置１０は、符号化済みの符号化ブロックの動きベクトルの探索結果に応じて、次の符号化対象となる符号化対象ブロックの動きベクトルの探索範囲の位置を、符号化ブロック単位で変更することが可能である。探索範囲の面積が一定であるという前提で、探索範囲の形状が矩形に限定されないので、符号化装置１０は、参照画像データの低転送レートと小さいバッファサイズの参照画像バッファ２０２を用いて、符号化効率を向上させることが可能である。
【０１１７】
以上をまとめると、一例として以下のようになる。
符号化装置１０は、参照画像バッファ２０２と、参照画像取得位置決定部１１０とを備える。参照画像バッファ２０２は、動画像符号化において、入力画像に対し参照画像との時間的相関を利用して動きベクトルの探索処理及び画素値予測を行う際に、外部メモリ２０に記憶された参照画像を、動きベクトルの探索処理のために一時記憶する。
【０１１８】
参照画像取得位置決定部１１０は、動きベクトル結果格納部４０１と、位置変更量導出部４０２と、参照位置決定部４０３とを備える。動きベクトル結果格納部４０１は、任意の自然数に設定可能な解析開始位置パラメータを取得する。参照画像取得位置決定部１１０は、開始ブロックと格納終了ブロックとを特定する。
【０１１９】
開始ブロックとは、ある時刻において動きベクトルの探索処理を実行中のマクロブロック又はコーディング・ツリー・ユニットである符号化対象ブロックに対して、解析開始位置パラメータの数だけ前に位置するマクロブロック又はコーディング・ツリー・ユニットである。格納終了ブロックとは、動きベクトルの探索処理が終了済み、かつ、符号化処理の順序が符号化対象ブロックに最も近いブロック（マクロブロック又はＣＴＵ）である。
【０１２０】
動きベクトル結果格納部４０１は、格納対象ブロック群について、動きベクトル結果格納部４０１の内部バッファに動き探索結果を格納する。格納対象ブロック群とは、符号化処理の順序において、開始ブロックから格納終了ブロックまでに位置する全てのマクロブロック又はコーディング・ツリー・ユニットである。動きベクトル結果格納部４０１は、１個のマクロブロック又はＣＴＵの分だけ符号化対象ブロックが進むごとに格納対象ブロック群を更新することによって、バッファに格納されているデータを更新する。
【０１２１】
位置変更量導出部４０２（垂直方向ホッピング量解析部）は、任意の自然数に設定可能な解析終了位置パラメータ及び解析頻度パラメータを取得する。位置変更量導出部４０２は、解析終了ブロックを決定する。解析終了ブロックとは、符号化対象ブロックに対して解析終了位置パラメータの数だけ前に位置するマクロブロック又はＣＴＵである。位置変更量導出部４０２は、解析対象ブロック群について、解析対象ブロック群の動き探索結果である解析対象動き探索結果を、動きベクトル結果格納部４０１のバッファから取得する。解析対象ブロック群とは、符号化処理の順序において開始ブロックから解析終了ブロックまでに位置する全てのマクロブロック又はＣＴＵである。位置変更量導出部４０２は、解析頻度パラメータの数のマクロブロック又はＣＴＵごとに１回のタイミングで、解析対象の動き探索結果の解析に基づいて、過去の垂直方向の代表的な動き量である垂直方向の位置変更量（ホッピング量）を決定及び更新する。
【０１２２】
参照位置決定部４０３は、垂直方向の位置変更量解析部から垂直方向の位置変更量を取得する。参照位置決定部４０３は、動き探索の探索範囲の縦幅に相当する探索縦幅パラメータと、動き探索の探索範囲の横幅に相当する探索横幅パラメータをを取得する。参照位置決定部４０３は、「探索縦幅パラメータ×（符号化対象ブロックの横幅）」の矩形範囲の参照画像領域の位置を、マクロブロック又はコーディング・ツリー・ユニットごとに決定する。参照位置決定部４０３は、探索横幅パラメータの画素数の分だけ符号化対象ブロックから処理順に進んだ位置を基準点とし、この基準点から垂直方向に位置変更量だけ離れた位置を、矩形範囲の参照画像領域の位置と決定する。
【０１２３】
参照画像バッファ２０２は、矩形範囲の参照画像領域の位置を参照位置決定部４０３から取得する。参照画像バッファ２０２は、矩形範囲の参照画像領域のデータに対応する外部メモリ２０上のアドレスを導出する。参照画像バッファ２０２は、読み出し要求を外部メモリ２０に送信する。参照画像バッファ２０２は、リード要求に応じて外部メモリ２０から転送される参照画像データを一時記憶する。
【０１２４】
動きベクトル結果格納部４０１は、解析対象ブロック群に相当するマクロブロック又はＣＴＵの全てについて、過去の動き探索結果の動きベクトル情報を、解析対象動き探索結果として保存する。位置変更量導出部４０２は、解析対象ブロック群の動きベクトルにおける垂直方向の値について、平均値又は中央値を導出する。位置変更量導出部４０２は、垂直方向の位置変更量の値を、導出された平均値又は中央値と等しくする。
【０１２５】
位置変更量導出部４０２は、相対距離重み係数を取得する。相対距離重み係数とは、処理順で、マクロブロック又はコーディング・ツリー・ユニットが符号化対象ブロックからどの程度離れているかに応じて一意に定まるパラメータである。位置変更量導出部４０２は、相対距離重み係数（動きベクトルの垂直方向の値に対する加重平均の重み付け）と、動きベクトルの垂直方向の値とに基づいて、加重平均値を導出する。位置変更量導出部４０２は、垂直方向の位置変更量の値を加重平均値と等しくする。
【０１２６】
動きベクトル結果格納部４０１は、解析対象ブロック群に相当するマクロブロック又はコーディング・ツリー・ユニットの全てについて、動きベクトルのそれぞれをどの程度の面積のブロックが有しているのかを表すブロック面積値と動きベクトル情報とを、解析対象動き探索結果として保存する。位置変更量導出部４０２は、ブロック面積値（ブロック面積情報のそれぞれに相当する動きベクトルの垂直方向の値に対する、加重平均の重み付け）と、動きベクトルの垂直方向の値とに基づいて、加重平均値を導出する。位置変更量導出部４０２は、垂直方向の位置変更量の値を、加重平均値と等しくする。
【０１２７】
動きベクトル結果格納部４０１は、解析対象ブロック群に相当するマクロブロック又はＣＴＵの全てについて、動きベクトルのそれぞれでの動き探索誤差を表す差分累積値と動きベクトル情報とを、解析対象動き探索結果として保存する。位置変更量導出部４０２は、差分累積値の重み係数テーブルを取得する。位置変更量導出部４０２は、差分累積値の大きさに対応付けられている差分累積値の重み係数を、差分累積値の重み係数テーブルから抽出する。すなわち、動きベクトル結果格納部４０１は、差分累積値の重み係数テーブルを用いて、解析対象ブロック群の差分累積値のそれぞれを、差分累積値の重み係数に変換する。位置変更量導出部４０２は、差分累積値の重み係数（ブロック面積情報のそれぞれに相当する動きベクトルの垂直方向の値に対する、加重平均の重み付け）と、動きベクトルの垂直方向の値とに基づいて、加重平均値を導出する。位置変更量導出部４０２は、垂直方向の位置変更量の値を、加重平均値と等しくする。
【０１２８】
動きベクトル結果格納部４０１は、解析対象ブロック群に相当するマクロブロック又はコーディング・ツリー・ユニットの全てについて、動きベクトル情報とブロック面積値と差分累積値とを、解析対象動き探索結果として保存する。位置変更量導出部４０２は、差分累積値の重み係数テーブルを用いて、解析対象ブロック群の差分累積値のそれぞれを、差分累積値の重み係数に変換する。位置変更量導出部４０２は、差分累積値の重み係数とブロック面積値と相対距離重み係数との乗算結果（動きベクトルの垂直方向の値のそれぞれに対する、加重平均の重み付けの乗算結果）と、動きベクトルの垂直方向の値とにもかくにも、加重平均値を導出する。位置変更量導出部４０２は、垂直方向の位置変更量の値を、加重平均値と等しくする。
【０１２９】
上述した実施形態における参照領域決定装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【０１３０】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【０１３１】
本発明は、動画像等を符号化する符号化装置に適用可能である。
【符号の説明】
【０１３２】
１…符号化システム、２…符号化対象フレーム、１０…符号化装置、２０…外部メモリ、１０１…原画像整形部、１０２…イントラ予測処理部、１０３…インター予測処理部、１０４…予測残差信号生成部、１０５…変換・量子化処理部、１０６…エントロピー符号化部、１０７…逆量子化・逆変換処理部、１０８…復号信号生成部、１０９…ループフィルタ処理部、１１０…参照画像取得位置決定部、２００…符号化バッファ部、２０１…原画像バッファ、２０２…参照画像バッファ、４０１…動きベクトル結果格納部、４０２…位置変更量導出部、４０３…参照位置決定部、４０４…差分累積値格納部、４０５…ブロックサイズ格納部、５００〜５０５…符号化対象ブロック、６００…格納対象ブロック群、６０１…解析対象ブロック群、６０２…探索範囲、６０３〜６０８…参照画像領域、６０９…解析対象ブロック群、６１０…探索範囲、６１１…参照画像領域、６１２…探索範囲、６１３…解析対象ブロック群、７００…動きベクトル、８００〜８０１…位置変更ベクトル
【図１】
2020113934.tif 000004
【図２】
2020113934.tif 000005
【図３】
2020113934.tif 000006
【図４】
2020113934.tif 000007
【図５】
2020113934.tif 000008
【図６】
2020113934.tif 000009
【図７】
2020113934.tif 000010
【図８】
2020113934.tif 000011
【図９】
2020113934.tif 000012
【図１０】
2020113934.tif 000013
【図１１】
2020113934.tif 000014
【図１２】
2020113934.tif 000015
【図１３】
2020113934.tif 000016
【図１４】
2020113934.tif 000017