(57)【要約】【課題】  符号化処理を並列に実行するモジュール間のデータ転送量の増加を抑制する。【解決手段】  動画像符号化装置は、複数の符号化部を有し、各符号化部は、ローカルデコード画像を記憶する記憶部と、動きベクトルをブロック毎に算出する動き予測部とを有し、動き予測部は、他の符号化部との間のデータ転送を実行する転送部と、探索範囲を決定する範囲決定部と、自身の記憶部に記憶されたローカルデコード画像の領域外の画像を探索範囲に基づく参照画像が含むか否かを判定する判定部と、参照画像が領域外の画像を含む場合、参照画像に含まれる領域外の画像を他の符号化部から受信して動きベクトルを算出する第１処理と、他の符号化部に動きベクトルを算出させる第２処理とのうち、符号化部間のデータ転送量の少ない方を、参照画像に含まれる領域外の画像、探索基点の情報およびブロックのデータ量に基づいて選択する選択部とを有している。【選択図】  図２
2016001829.tif 000002
【特許請求の範囲】
【請求項１】
１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を備え、
前記各符号化部は、
前記部分画像を符号化する際に生成されるローカルデコード画像を記憶する記憶部と、
前記部分画像の動きベクトルを、所定のブロック毎に算出する動き予測部とを備え、
前記動き予測部は、
他の前記符号化部の前記動き予測部との間のデータ転送を実行する転送部と、
前記動きベクトルを算出する際の探索範囲を決定する範囲決定部と、
自身を含む前記符号化部の前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定する判定部と、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記符号化部から受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記符号化部に前記動きベクトルを算出させる第２処理とのうち、前記符号化部間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する選択部と、
を備えていることを特徴とする動画像符号化装置。
【請求項２】
請求項１に記載の動画像符号化装置において、
前記各符号化部は、他の前記符号化部からの処理要求の数が予め設定された上限値を超えた場合、前記処理要求を拒否する制御部を備え、
前記動き予測部は、前記処理要求が拒否された場合、前記記憶部に記憶された前記ローカルデコード画像の領域内に前記探索範囲を設定して、前記動きベクトルを算出する
ことを特徴とする動画像符号化装置。
【請求項３】
請求項１または請求項２に記載の動画像符号化装置において、
前記各符号化部の前記動き予測部は、最初の前記ブロックの前記動きベクトルの算出を実行する前に取得可能な探索基点の情報に基づいて仮の探索範囲を決定し、前記符号化部間のデータ転送を前記仮の探索範囲に基づいて実行する前処理を、最初の前記ブロックの前記動きベクトルを算出する前に前記部分画像内の全ての前記ブロックに対して実行し、
前記前処理での前記データ転送では、前記動き予測部は、前記第１処理を前記仮の探索範囲に基づいて実行する場合の前記データ転送量である第１データ転送量が前記第２処理を前記仮の探索範囲に基づいて実行する場合の前記データ転送量である第２データ転送量以下のとき、前記仮の探索範囲に基づく参照画像に含まれる前記領域外の画像を他の前記符号化部から受信し、前記第１データ転送量が前記第２データ転送量を超えたとき、前記ブロックを他の前記符号化部に転送する
ことを特徴とする動画像符号化装置。
【請求項４】
１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を用いた動画像符号化方法であって、
前記部分画像を符号化する際に生成されるローカルデコード画像を前記符号化部の記憶部に記憶し、
前記部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、
前記部分画像が割り当てられた前記符号化部の前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定し、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記符号化部から受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記符号化部に前記動きベクトルを算出させる第２処理とのうち、前記符号化部間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する
ことを特徴とする動画像符号化方法。
【請求項５】
１画面を分割した複数の部分画像を複数のモジュールでそれぞれ符号化する処理をコンピュータに実行させる動画像符号化プログラムであって、
前記部分画像を符号化する際に生成されるローカルデコード画像を前記モジュールの記憶部に記憶し、
前記部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、
前記部分画像が割り当てられた前記モジュールの前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定し、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記モジュールから受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記モジュールに前記動きベクトルを算出させる第２処理とのうち、前記モジュール間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する
処理をコンピュータに実行させる動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置、動画像符号化方法および動画像符号化プログラムに関する。
【背景技術】
【０００２】
高解像度の画像に対応した動画像符号化装置として、１画面の画像の符号化を、複数の符号化器を用いて実行する動画像符号化装置が知られている。例えば、動画像符号化装置は、１画面を複数の領域に分割し、１画面を分割した複数の領域のそれぞれの符号化処理を複数の符号化器で並列に実行する。各符号化器は、例えば、１画面を分割した複数の領域のうち、符号化対象の領域として割り当てられた担当領域の画像を符号化する。例えば、各符号化器は、ローカルデコード処理により生成される参照画像等を記憶するフレームメモリを有し、参照画像を用いて動きベクトルを算出する。
【０００３】
なお、担当領域の境界の画質が劣化することを防止するために、各符号化器のフレームメモリを相互接続する動画像符号化装置が提案されている（例えば、特許文献１参照）。この種の動画像符号化装置では、各符号化器のフレームメモリは、他の符号化器のフレームメモリのデータも保持できる。この場合、各符号化器は、担当領域以外の領域まで、動きベクトルの探索範囲を広げることができる。
【０００４】
また、画像の復号装置においても、デコード範囲を分割して複数のデコードチップでデコード処理を実行させる方法が提案されている（例えば、特許文献２参照）。この種の復号装置では、例えば、各デコードチップは、他のデコードチップにより参照される領域の画素を予め他のデコードチップに供給する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２７４１８０号公報
【特許文献２】特開２００７−６０４８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
各符号化器が他の符号化器で生成された参照画像を参照できない動画像符号化装置では、動きベクトルの探索範囲が狭くなり、画質が劣化するおそれがある。また、各符号化器が他の符号化器で生成された参照画像を参照可能な動画像符号化装置では、符号器間でのデータ転送量が増加するおそれがある。例えば、各符号化器のフレームメモリが１画面分の参照画像を記憶する場合、１画面分の参照画像に相当する大量のデータが符号化器間で転送される。
【０００７】
なお、符号化器間で固定的な範囲（例えば、１画面）の参照画像を互いに転送する方法では、動きベクトルの探索に使用されない画像（探索範囲外の画像）も転送される場合がある。この場合、不要なデータの転送により、データ転送量が増加する。
【０００８】
１つの側面では、本件開示の動画像符号化装置、動画像符号化方法および動画像符号化プログラムは、符号化処理を並列に実行するモジュール間のデータ転送量の増加を抑制することを目的とする。
【課題を解決するための手段】
【０００９】
一観点によれば、動画像符号化装置は、１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を有し、各符号化部は、部分画像を符号化する際に生成されるローカルデコード画像を記憶する記憶部と、部分画像の動きベクトルを、所定のブロック毎に算出する動き予測部とを有し、動き予測部は、他の符号化部の動き予測部との間のデータ転送を実行する転送部と、動きベクトルを算出する際の探索範囲を決定する範囲決定部と、自身を含む符号化部の記憶部に記憶されたローカルデコード画像の領域外の画像を探索範囲に基づく参照画像が含むか否かを判定する判定部と、参照画像が領域外の画像を含む場合、参照画像に含まれる領域外の画像を領域外の画像を有する符号化部から受信して動きベクトルを算出する第１処理と、領域外の画像を有する符号化部に動きベクトルを算出させる第２処理とのうち、符号化部間のデータ転送量の少ない方を、参照画像に含まれる領域外の画像、動きベクトルを算出する際の探索基点を示す情報およびブロックのデータ量に基づいて選択する選択部とを有している。
【００１０】
別の観点によれば、１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を用いた動画像符号化方法では、部分画像を符号化する際に生成されるローカルデコード画像を符号化部の記憶部に記憶し、部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、部分画像が割り当てられた符号化部の記憶部に記憶されたローカルデコード画像の領域外の画像を探索範囲に基づく参照画像が含むか否かを判定し、参照画像が領域外の画像を含む場合、参照画像に含まれる領域外の画像を領域外の画像を有する符号化部から受信して動きベクトルを算出する第１処理と、領域外の画像を有する符号化部に動きベクトルを算出させる第２処理とのうち、符号化部間のデータ転送量の少ない方を、参照画像に含まれる領域外の画像、動きベクトルを算出する際の探索基点を示す情報およびブロックのデータ量に基づいて選択する。
【００１１】
別の観点によれば、１画面を分割した複数の部分画像を複数のモジュールでそれぞれ符号化する処理をコンピュータに実行させる動画像符号化プログラムは、部分画像を符号化する際に生成されるローカルデコード画像をモジュールの記憶部に記憶し、部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、部分画像が割り当てられたモジュールの記憶部に記憶されたローカルデコード画像の領域外の画像を探索範囲に基づく参照画像が含むか否かを判定し、参照画像が領域外の画像を含む場合、参照画像に含まれる領域外の画像を領域外の画像を有するモジュールから受信して動きベクトルを算出する第１処理と、領域外の画像を有するモジュールに動きベクトルを算出させる第２処理とのうち、モジュール間のデータ転送量の少ない方を、参照画像に含まれる領域外の画像、動きベクトルを算出する際の探索基点を示す情報およびブロックのデータ量に基づいて選択する処理をコンピュータに実行させる。
【発明の効果】
【００１２】
本件開示の動画像符号化装置、動画像符号化方法および動画像符号化プログラムは、符号化処理を並列に実行するモジュール間のデータ転送量の増加を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】動画像符号化装置、動画像符号化方法および動画像符号化プログラムの一実施形態を示す図である。
【図２】図１に示した動き予測部の一例を示す図である。
【図３】図１に示した動画像符号化装置の動作の概要を示す図である。
【図４】図１に示した動画像符号化装置の動作の一例を示す図である。
【図５】他の符号化部の参照画像を使用するときのデータの流れの一例を示す図である。
【図６】他の符号化部で動きベクトルを算出するときのデータの流れの一例を示す図である。
【図７】探索処理のタイムチャートの一例を示す図である。
【図８】符号化部間のデータ転送量の一例を示す図である。
【図９】動き補償処理の対象ブロックと隣接ベクトルとの位置関係の一例を示す図である。
【図１０】図１に示した動画像符号化装置の動作の別の例を示す図である。
【図１１】図１０に示した担当ブロックの動きベクトル算出処理の一例を示す図である。
【図１２】動画像符号化装置、動画像符号化方法および動画像符号化プログラムの別の実施形態を示す図である。
【図１３】図１２に示した動き予測部の一例を示す図である。
【図１４】図１２に示した動画像符号化装置の動作の一例を示す図である。
【図１５】図１４に示した先頭処理の一例を示す図である。
【図１６】図１４に示したブロック単位処理の一例を示す図である。
【図１７】動画像符号化プログラムを実行するハードウエアの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施形態を図面を用いて説明する。
【００１５】
図１は、動画像符号化装置、動画像符号化方法および動画像符号化プログラムの一実施形態を示している。この実施形態の動画像符号化装置１０は、例えば、複数のエンコーダを使用した動画像並列符号化装置である。例えば、動画像符号化装置１０は、複数の符号化部１００（１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ）と、画像入力部２００と、ストリーム出力部３００と、インターコネクト４００とを有している。図１の例では、動画像符号化装置１０は、４個の符号化部１００を有している。なお、符号化部１００の数は、４個に限定されない。例えば、符号化部１００の数は、２個でもよいし、３個でもよい。あるいは、符号化部１００の数は、５個以上でもよい。
【００１６】
各符号化部１００、画像入力部２００およびストリーム出力部３００は、インターコネクト４００に接続されている。例えば、符号化部１００等の各モジュールは、インターコネクト４００を介して互いにアクセスする。
【００１７】
画像入力部２００は、例えば、符号化対象の画像（以下、原画像とも称する）を順次受け、受けた画像を複数の領域に分割する。これにより、１画面を分割した複数の部分画像が生成される。複数の部分画像は、符号化対象の原画像として複数の符号化部１００にそれぞれ割り当てられている。例えば、画像入力部２００は、１画面を分割した複数の部分画像を、インターコネクト４００を介して、複数の符号化部１００にそれぞれ転送する。以下、部分画像を担当画像とも称する。
【００１８】
符号化部１００Ａ、１００Ｂ、１００Ｃ、１００Ｄは、１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部の一例である。各符号化部１００は、１画面のうち、符号化処理の対象として割り当てられた領域の画像（部分画像）を、画像入力部２００からインターコネクト４００を介して受ける。そして、各符号化部１００は、部分画像を符号化する。また、各符号化部１００は、符号化した部分画像を、インターコネクト４００を介してストリーム出力部３００に転送する。
【００１９】
例えば、符号化部１００Ａ、１００Ｂ、１００Ｃ、１００Ｄは、互いに同一または同様の構成である。各符号化部１００は、例えば、メモリ１１０、動き予測部１２０、画面内予測部１５０、フィルタ部１６０、ＤＣＴ（Discrete Cosine Transform）量子化部１７０および可変長符号化部１８０を有している。例えば、動き予測部１２０、画面内予測部１５０、フィルタ部１６０、ＤＣＴ量子化部１７０および可変長符号化部１８０は、メモリ１１０に接続されている。
【００２０】
メモリ１１０は、部分画像を符号化する際に生成されるローカルデコード画像を記憶する記憶部の一例である。ローカルデコード画像は、例えば、次フレーム以降でのフレーム間予測や現フレームでのフレーム内予測において、参照画像として使用される。すなわち、メモリ１１０は、フレーム間予測に使用される参照画像を記憶する。以下、ローカルデコード画像を参照画像とも称する。
【００２１】
動き予測部１２０は、部分画像の動きベクトルを、所定のブロック毎に算出する動き予測部の一例である。例えば、動き予測部１２０は、符号化対象の部分画像と参照画像とを受ける。そして、動き予測部１２０は、符号化対象の部分画像と参照画像とを比較して、動きベクトルを所定サイズのブロック毎に算出する。動きベクトルは、例えば、部分画像内の符号化対象のブロックに対する参照画像の位置を示している。このように、動き予測部１２０は、符号化対象のブロックの動きベクトルを算出する際に参照画像を参照する。以下、部分画像内の符号化対象のブロックを原画ブロックとも称する。
【００２２】
また、動き予測部１２０は、算出した動きベクトルに基づいて動き補償処理を実行し、部分画像（原画像）と参照画像との差分を算出する。これにより、差分画像が生成される。このように、動き予測部１２０は、フレーム間予測を実行し、動きベクトルおよび差分画像を算出する。そして、例えば、動き予測部１２０は、動きベクトルおよび差分画像をメモリ１１０に転送する。
【００２３】
画面内予測部１５０は、例えば、符号化対象の部分画像と現フレームのローカルデコード画像とをメモリ１１０から受ける。そして、画面内予測部１５０は、例えば、フレーム内予測を実行し、部分画像（原画像）と参照画像との差分を算出する。これにより、差分画像が生成される。例えば、画面内予測部１５０は、差分画像をメモリ１１０に転送する。
【００２４】
ＤＣＴ量子化部１７０は、例えば、動き予測部１２０および画面内予測部１５０でそれぞれ生成された差分画像の一方をメモリ１１０から受ける。例えば、符号化部１００は、動き予測部１２０および画面内予測部１５０でそれぞれ生成された差分画像の一方を、フレーム間予測を採用した場合の圧縮率、フレーム内予測を採用した場合の圧縮率等の情報に基づいて選択する。選択された差分画像は、例えば、メモリ１１０からＤＣＴ量子化部１７０に転送される。
【００２５】
そして、ＤＣＴ量子化部１７０は、メモリ１１０から受けた差分画像を離散コサイン変換し、離散コサイン変換したデータを量子化する。また、ＤＣＴ量子化部１７０は、量子化したデータをメモリ１１０に転送する。
【００２６】
可変長符号化部１８０は、ＤＣＴ量子化部１７０で量子化されたデータをメモリ１１０から受け、受けたデータを可変長符号化する。これにより、部分画像に対応する出力ストリーム（符号化した部分画像）が生成される。例えば、可変長符号化部１８０は、符号化した部分画像をメモリ１１０およびインターコネクト４００を介して、ストリーム出力部３００に転送する。
【００２７】
フィルタ部１６０は、例えば、ＤＣＴ量子化部１７０で量子化されたデータを復号して生成される画像に対して、符号化対象のブロック等のブロック境界を平滑化するためのフィルタ処理を実行する。これにより、ローカルデコード画像が生成される。例えば、フィルタ部１６０は、フィルタ処理したローカルデコード画像を、メモリ１１０に転送する。これにより、次フレーム以降でのフレーム間予測や現フレームでのフレーム内予測で参照される参照画像がメモリ１１０に記憶される。
【００２８】
ストリーム出力部３００は、部分画像に対応する出力ストリーム（各符号化部１００で符号化された部分画像）を各符号化部１００からインターコネクト４００を介して受け、１画面分の出力ストリームを順次出力する。
【００２９】
このように、動画像符号化装置１０は、１画面を複数の領域に分割し、分割した領域毎に符号化処理を複数の符号化部１００で並列に実行する。なお、動画像符号化装置１０の構成は、この例に限定されない。例えば、ＤＣＴ量子化部１７０と可変長符号化部１８０との間のデータ転送等は、メモリ１１０を介さずに実行されてもよい。
【００３０】
図２は、図１に示した動き予測部１２０の一例を示している。図２のメモリ１１０内の符号ＭＶ等は、メモリ１１０に記憶されるデータの一例を示している。また、図２の破線の矢印は、動きベクトルＭＶの探索範囲がメモリ１１０に記憶されている参照画像ＲＩＭＧ内に存在する場合のデータ等の流れの一例を示している。
【００３１】
動き予測部１２０は、バッファ１２２、１２６、演算器１２４、転送部１２８、探索方法判定部１３０および制御部１４０を有している。
【００３２】
バッファ１２２は、例えば、メモリ１１０から原画像の部分画像ＳＩＭＧを受け、部分画像ＳＩＭＧを記憶する。そして、バッファ１２２は、部分画像内の符号化対象のブロックＳＢＫ（原画ブロックＳＢＫ）を、演算器１２４や転送部１２８に転送する。例えば、バッファ１２２は、原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出される場合、原画ブロックＳＢＫを演算器１２４に転送する。また、例えば、バッファ１２２は、原画ブロックＳＢＫの動きベクトルＭＶが他の符号化部１００で算出される場合、原画ブロックＳＢＫを転送部１２８に転送する。
【００３３】
さらに、バッファ１２２は、他の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出される場合、他の符号化部１００の原画ブロックＳＢＫを転送部１２８から受け、受けた原画ブロックＳＢＫを演算器１２４に転送する。
【００３４】
演算器１２４は、原画ブロックＳＢＫの参照画像ＲＩＭＧをメモリ１１０から受け、原画ブロックＳＢＫをバッファ１２２から受ける。そして、演算器１２４は、原画ブロックＳＢＫの動きベクトルＭＶおよび差分画像ＤＩＭＧ（原画ブロックＳＢＫと参照画像ＲＩＭＧとの差分）を、原画ブロックＳＢＫおよび参照画像ＲＩＭＧに基づいて算出する。また、演算器１２４は、例えば、動きベクトルＭＶおよび差分画像ＤＩＭＧを、バッファ１２６に転送する。
【００３５】
バッファ１２６は、例えば、演算器１２４から受けた動きベクトルＭＶおよび差分画像ＤＩＭＧを記憶する。そして、バッファ１２６は、動きベクトルＭＶおよび差分画像ＤＩＭＧを、メモリ１１０や転送部１２８に転送する。例えば、バッファ１２６は、原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出される場合、動きベクトルＭＶおよび差分画像ＤＩＭＧをメモリ１１０に転送する。また、例えば、バッファ１２６は、他の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出された場合、動きベクトルＭＶおよび差分画像ＤＩＭＧを転送部１２８に転送する。
【００３６】
さらに、バッファ１２６は、自身の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが他の符号化部１００で算出された場合、他の符号化部１００で算出された動きベクトルＭＶおよび差分画像ＤＩＭＧを転送部１２８から受ける。そして、バッファ１２６は、転送部１２８から受けた動きベクトルＭＶおよび差分画像ＤＩＭＧをメモリ１１０に転送する。
【００３７】
転送部１２８は、他の符号化部１００の動き予測部１２０との間のデータ転送を実行する転送部の一例である。例えば、転送部１２８は、メモリ１１０と他の符号化部１００の動き予測部１２０の転送部１２８との間のデータ転送を実行する。あるいは、転送部１２８は、バッファ１２２、１２６と他の符号化部１００の動き予測部１２０の転送部１２８との間のデータ転送を実行する。
【００３８】
例えば、転送部１２８は、メモリ１１０に記憶されている参照画像ＲＩＭＧが他の符号化部１００で使用される場合、他の符号化部１００で使用される参照画像ＲＩＭＧをメモリ１１０から受ける。そして、転送部１２８は、メモリ１１０から受けた参照画像ＲＩＭＧを、他の符号化部１００の転送部１２８に転送する。
【００３９】
また、例えば、転送部１２８は、他の符号化部１００のメモリ１１０に記憶されている参照画像ＲＩＭＧが自身の動き予測部１２０で使用される場合、参照画像ＲＩＭＧを他の符号化部１００の転送部１２８から受ける。そして、転送部１２８は、他の符号化部１００の転送部１２８から受けた参照画像ＲＩＭＧを、メモリ１１０に転送する。
【００４０】
また、例えば、転送部１２８は、自身の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが他の符号化部１００で算出される場合、原画ブロックＳＢＫをバッファ１２２から受け、受けた原画ブロックＳＢＫを他の符号化部１００の転送部１２８に転送する。そして、転送部１２８は、他の符号化部１００で算出された動きベクトルＭＶおよび差分画像ＤＩＭＧを他の符号化部１００の転送部１２８から受け、受けた動きベクトルＭＶおよび差分画像ＤＩＭＧをバッファ１２６に転送する。
【００４１】
また、例えば、転送部１２８は、他の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出される場合、他の符号化部１００の原画ブロックＳＢＫを他の符号化部１００の転送部１２８から受ける。そして、転送部１２８は、他の符号化部１００の転送部１２８から受けた原画ブロックＳＢＫをバッファ１２２に転送する。
【００４２】
さらに、転送部１２８は、他の符号化部１００の原画ブロックＳＢＫの動きベクトルＭＶが自身の動き予測部１２０で算出された場合、自身の動き予測部１２０で算出された動きベクトルＭＶおよび差分画像ＤＩＭＧをバッファ１２６から受ける。そして、転送部１２８は、バッファ１２６から受けた動きベクトルＭＶおよび差分画像ＤＩＭＧを他の符号化部１００の転送部１２８に転送する。
【００４３】
探索方法判定部１３０は、例えば、記憶部１１０に記憶されている参照画像ＲＩＭＧの領域等を示す情報ＲＩＮＦ、動きベクトルＭＶの探索基点を示す情報ＢＰおよび動き予測の条件を示す情報ＰＩＮＦをメモリ１１０から受ける。そして、探索方法判定部１３０は、原画ブロックＳＢＫの動きベクトルＭＶの探索を自身の動き予測部１２０で実行するか他の符号化部１００で実行するかを、情報ＲＩＮＦ、ＢＰ、ＰＩＮＦに基づいて判定する。以下、動きベクトルＭＶの探索を探索処理とも称する。
【００４４】
判定結果は、例えば、制御部１４０に転送される。以下、情報ＲＩＮＦ、ＰＩＮＦを、参照画像情報ＲＩＮＦおよび動き予測条件ＰＩＮＦとも称する。例えば、動き予測条件ＰＩＮＦは、小数画素探索の有無、小数画素フィルタサイズ等である。また、情報ＢＰを探索基点ＢＰあるいは探索基点ベクトルＢＰとも称する。探索基点ベクトルＢＰの候補は、例えば、ダイレクトベクトル、ゼロベクトル、隣接ベクトル等である。なお、縮小画像の動きベクトルが事前に算出されている場合、縮小画像の動きベクトルが探索基点ベクトルＢＰの候補に含まれてもよい。
【００４５】
例えば、探索方法判定部１３０は、範囲決定部１３２、領域判定部１３４、転送量算出部１３６および選択部１３８を有している。範囲決定部１３２は、動きベクトルを算出する際の探索範囲を決定する範囲決定部の一例である。領域判定部１３４は、自身を含む符号化部の記憶部に記憶されたローカルデコード画像の領域外の画像（以下、領域外画像とも称する）を探索範囲に基づく参照画像が含むか否かを判定する判定部の一例である。
【００４６】
転送量算出部１３６および選択部１３８は、探索範囲に基づく参照画像が領域外画像を含む場合に、第１処理と第２処理とのうち、符号化部間のデータ転送量の少ない方を選択する選択部の一例である。なお、第１処理は、例えば、領域外画像を保持している符号化部から領域外画像を受信して動きベクトルを算出する処理である。また、第２処理は、領域外画像を保持している符号化部に動きベクトルを算出させる処理である。
【００４７】
例えば、転送量算出部１３６は、第１処理を実行する場合のデータ転送量を探索範囲に基づく参照画像に含まれる領域外画像のデータ量に基づいて算出する。また、例えば、転送量算出部１３６は、第２処理を実行する場合のデータ転送量を動きベクトルを算出する際の探索基点を示す情報およびブロックのデータ量に基づいて算出する。
【００４８】
そして、選択部１３８は、探索範囲に基づく参照画像が領域外画像を含む場合に、第１処理と第２処理とのうち、符号化部間のデータ転送量の少ない方を選択する。このように、探索範囲に基づく参照画像が領域外画像を含む場合、第１処理と第２処理とのいずれかが、探索範囲に基づく参照画像に含まれる領域外画像、動きベクトルを算出する際の探索基点を示す情報およびブロックのデータ量に基づいて選択される。範囲決定部１３２、領域判定部１３４等の動作は、図４で説明する。
【００４９】
制御部１４０は、動き予測部１２０の動作を制御する。例えば、制御部１４０は、原画ブロックＳＢＫの動きベクトルＭＶの探索を自身の動き予測部１２０で実行するか他の符号化部１００で実行するかの判定結果を、探索方法判定部１３０から受ける。そして、制御部１４０は、探索方法判定部１３０での判定結果に基づいて、転送部１２８の動作（データ転送）を制御する。
【００５０】
このように、動き予測部１２０は、原画ブロックＳＢＫの動きベクトルＭＶの探索を自身で実行するか他の符号化部１００の動き予測部１２０に実行させるかを、符号化部１００間のデータ転送量に基づいて判定する。例えば、動き予測部１２０は、符号化部１００間のデータ転送量が少ない方を選択することにより、符号化処理を並列に実行する符号化部１００間のデータ転送量の増加を抑制できる。なお、動き予測部１２０の構成は、この例に限定されない。
【００５１】
図３は、図１に示した動画像符号化装置１０の動作の概要を示している。図３の例では、１画面ＩＭＧＡＬは、４つの部分画像ＳＩＭＧに分割される。そして、各部分画像ＳＩＭＧの符号化処理は、各部分画像ＳＩＭＧ内の括弧で示した符号化部１００に割り当てられている。例えば、図の１画面ＩＭＧＡＬ内の左上の部分画像ＳＩＭＧの符号化処理は、符号化部１００Ａに割り当てられている。
【００５２】
なお、例えば、符号化部１００Ａは、原画ブロックＳＢＫを符号化する際に参照する参照画像ＲＩＭＧｎが符号化部１００Ｂのメモリ１１０に記憶されている場合、動きベクトルの探索（探索処理）を符号化部１００Ｂに依頼するか自身で実行するかを選択する。
【００５３】
例えば、符号化部１００Ａは、探索処理を自身で実行する場合のデータ転送量（符号化部１００Ａ、１００Ｂ間のデータ転送量）が探索処理を符号化部１００Ｂに実行させる場合のデータ転送量以下の場合、探索処理を自身で実行する。符号化部１００Ａは、自身で探索処理を実行する場合、符号化部１００Ｂから参照画像ＲＩＭＧｎを受ける。そして、符号化部１００Ａは、原画ブロックＳＢＫおよび符号化部１００Ｂから受けた参照画像ＲＩＭＧｎを用いて、探索処理を実行する。
【００５４】
また、例えば、符号化部１００Ａは、探索処理を符号化部１００Ｂに実行させる場合のデータ転送量が探索処理を自身で実行する場合のデータ転送量より少ない場合、探索処理を符号化部１００Ｂに依頼する。符号化部１００Ａは、符号化部１００Ｂに探索処理を依頼する場合、原画ブロックＳＢＫ、探索基点ベクトルＢＰ等を符号化部１００Ｂに転送する。そして、符号化部１００Ｂは、参照画像ＲＩＭＧｎおよび符号化部１００Ａから受けた原画ブロックＳＢＫを用いて、探索処理を実行する。
【００５５】
これにより、原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が算出される。そして、符号化部１００Ａは、符号化部１００Ｂで算出された動きベクトルＭＶ、差分画像ＤＩＭＧ等を符号化部１００Ｂから受ける。
【００５６】
図４は、図１に示した動画像符号化装置１０の動作の一例を示している。なお、図４は、各符号化部１００の動き予測部１２０により実行される探索処理（動きベクトルの探索）の一例を示している。図４の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、コンピュータは、動画像符号化プログラムを記録した記憶媒体を読み取り、図４の動作を実行してもよい。換言すれば、動画像符号化プログラムは、図４の動作をコンピュータに実行させてもよい。すなわち、図４は、動画像符号化方法および動画像符号化プログラムの一形態を示す。
【００５７】
ステップＳ１００では、制御部１４０は、他の符号化部１００の動き予測部１２０からの処理要求があるか否かを判定する。例えば、制御部１４０は、他の符号化部１００の動き予測部１２０から処理要求を受けたか否かを判定する。処理要求があるとき（ステップＳ１００のＹｅｓ）、動き予測部１２０の動作は、ステップＳ２００に移る。一方、処理要求がないとき（ステップＳ１００のＮｏ）、動き予測部１２０の動作は、ステップＳ１１０に移る。
【００５８】
ステップＳ１１０では、範囲決定部１３２は、符号化対象のブロックＳＢＫの動きベクトルＭＶの探索範囲を決定する。例えば、範囲決定部１３２は、メモリ１１０に記憶されている探索基点ベクトルＢＰの候補（例えば、ダイレクトベクトル、ゼロベクトル、隣接ベクトル等）から選択された探索基点ベクトルＢＰを、メモリ１１０から受ける。そして、範囲決定部１３２は、メモリ１１０から受けた探索基点ベクトルＢＰが示す位置を探索基点ＢＰとして、探索範囲を決定する。
【００５９】
ステップＳ１２０では、領域判定部１３４は、参照画像ＲＩＭＧが不足しているか否かを判定する。例えば、領域判定部１３４は、参照画像情報ＲＩＮＦおよび動き予測条件ＰＩＮＦをメモリ１１０から受け、ステップＳ１１０で決定した探索範囲の情報を範囲決定部１３２から受ける。そして、領域判定部１３４は、探索範囲に基づく参照画像がメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含むか否かを判定する。例えば、探索範囲に基づく参照画像がメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含む場合は、参照画像ＲＩＭＧが不足している場合に対応する。
【００６０】
なお、探索範囲に基づく参照画像は、探索範囲と同じ範囲でもよいし、探索範囲と異なる範囲でもよい。例えば、小数画素探索が実行される場合、探索範囲に基づく参照画像は、探索範囲から小数画素フィルタサイズに応じて広げた範囲の画像である。このように、領域判定部１３４は、他の符号化部１１０に記憶されている参照画像ＲＩＭＧが探索処理に必要か否かを判定する。
【００６１】
参照画像ＲＩＭＧが不足しているとき（ステップＳ１２０のＹｅｓ）、動き予測部１２０の動作は、ステップＳ１３０に移る。すなわち、他の符号化部１１０に記憶されている参照画像ＲＩＭＧが探索処理に必要なとき、動き予測部１２０の動作は、ステップＳ１３０に移る。一方、参照画像ＲＩＭＧが不足していないとき（ステップＳ１２０のＮｏ）、動き予測部１２０の動作は、ステップＳ１７０に移る。すなわち、探索範囲に基づく参照画像がメモリ１１０に記憶された参照画像ＲＩＭＧの領域内であるとき、動き予測部１２０の動作は、ステップＳ１７０に移る。
【００６２】
ステップＳ１３０では、転送量算出部１３６は、自身の動き予測部１２０で探索処理を実行する場合のデータ転送量Ｄ１を算出する。例えば、小数画素探索が実行されない場合、転送量算出部１３６は、ステップＳ１１０で決定した探索範囲のうち、自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像のデータ量を、データ転送量Ｄ１として算出する。
【００６３】
なお、小数画素探索が実行される場合、探索範囲から小数画素フィルタサイズに応じて広げた参照画像に対して不足している部分の画像のデータ量が、データ転送量Ｄ１として算出されてもよい。例えば、転送量算出部１３６は、探索範囲から小数画素フィルタサイズに応じて広げた参照画像のうち、自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像のデータ量を、データ転送量Ｄ１として算出してもよい。
【００６４】
このように、転送量算出部１３６は、ステップＳ１１０で決定した探索範囲に基づく参照画像に含まれる領域外画像（自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像）のデータ量を、データ転送量Ｄ１として算出する。すなわち、転送量算出部１３６は、他の符号化部１００から取得する参照画像ＲＩＭＧのデータ量を、データ転送量Ｄ１として算出する。
【００６５】
ステップＳ１４０では、転送量算出部１３６は、他の符号化部１００で探索処理を実行する場合のデータ転送量Ｄ２を算出する。例えば、転送量算出部１３６は、原画ブロックＳＢＫおよび探索基点ベクトルＢＰのデータ量を送信時のデータ転送量として算出し、探索処理により算出される動きベクトルＭＶおよび差分画像ＤＩＭＧのデータ量を受信時のデータ転送量として算出する。そして、転送量算出部１３６は、送信時のデータ転送量と受信時のデータ転送量との和を、データ転送量Ｄ２として算出する。
【００６６】
ステップＳ１５０では、選択部１３８は、データ転送量Ｄ１がデータ転送量Ｄ２以下か否かを判定する。データ転送量Ｄ１がデータ転送量Ｄ２以下のとき（ステップＳ１５０のＹｅｓ）、動き予測部１２０の動作は、ステップＳ１６０に移る。すなわち、自身の動き予測部１２０で探索処理を実行する場合のデータ転送量Ｄ１が他の符号化部１００で探索処理を実行する場合のデータ転送量Ｄ２以下のとき、動き予測部１２０の動作は、ステップＳ１６０に移る。
【００６７】
一方、データ転送量Ｄ１がデータ転送量Ｄ２を超えているとき（ステップＳ１５０のＮｏ）、動き予測部１２０の動作は、ステップＳ１８０に移る。すなわち、自身の動き予測部１２０で探索処理を実行する場合のデータ転送量Ｄ１が他の符号化部１００で探索処理を実行する場合のデータ転送量Ｄ２を超えているとき、動き予測部１２０の動作は、ステップＳ１８０に移る。
【００６８】
このように、探索方法判定部１３０は、自身の動き予測部１２０で探索処理を実行する処理と、他の符号化部１００に探索処理を実行させる処理とのち、符号化部１００間のデータ転送量の少ない方を選択する。
【００６９】
ステップＳ１６０では、動き予測部１２０は、他の符号化部１００から参照画像ＲＩＭＧを取得する。例えば、制御部１４０は、探索処理に必要な参照画像ＲＩＭＧを記憶しているメモリ１１０を含む符号化部１００の制御部１４０に対して、参照画像ＲＩＭＧの転送を要求する。これにより、転送要求を受けた符号化部１００は、例えば、ステップＳ２３０において、参照画像ＲＩＭＧを要求元の符号化部１００に送信する。
【００７０】
例えば、転送要求を受けた符号化部１００の転送部１２８は、転送要求で指定された参照画像ＲＩＭＧをメモリ１１０から要求元の符号化部１００の転送部１２８に転送する。また、例えば、要求元の符号化部１００の転送部１２８は、要求先の符号化部１００から受けた参照画像ＲＩＭＧをメモリ１１０に転送する。これにより、探索処理に必要な参照画像ＲＩＭＧがメモリ１１０に記憶される。
【００７１】
ステップＳ１７０では、演算器１２４は、原画ブロックＳＢＫおよび参照画像ＲＩＭＧを用いて、探索処理を実行する。これにより、担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶや差分画像ＤＩＭＧが算出される。
【００７２】
ステップＳ１８０では、動き予測部１２０は、探索処理依頼を実行する。例えば、制御部１４０は、探索処理に必要な参照画像ＲＩＭＧを記憶しているメモリ１１０を含む符号化部１００の制御部１４０に対して、探索処理を依頼する。
【００７３】
ステップＳ１８４では、動き予測部１２０は、原画ブロックＳＢＫを探索処理の依頼先の符号化部１００に送信する。例えば、転送部１２８は、原画ブロックＳＢＫをメモリ１１０からバッファ１２２を介して受ける。そして、転送部１２８は、バッファ１２２から受けた原画ブロックＳＢＫを、探索処理の依頼先の符号化部１００の転送部１２８に送信する。
【００７４】
これにより、探索処理の依頼先の符号化部１００は、例えば、ステップＳ２１０において、原画ブロックＳＢＫを探索処理の依頼元の符号化部１００から受信する。そして、探索処理の依頼先の符号化部１００は、例えば、ステップＳ２２０において、参照画像ＲＩＭＧと探索処理の依頼元の符号化部１００から転送された原画ブロックＳＢＫとを用いて、探索処理を実行する。これにより、原画ブロックＳＢＫの動きベクトルＭＶや差分画像ＤＩＭＧが生成される。
【００７５】
ステップＳ１９０では、動き予測部１２０は、探索処理結果（動きベクトルＭＶ、差分画像ＤＩＭＧ等）を探索処理の依頼先の符号化部１００から受信する。例えば、転送部１２８は、原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等の探索処理結果を、依頼先の符号化部１００の転送部１２８から受ける。そして、転送部１２８は、依頼先の符号化部１００の転送部１２８から受けた探索処理結果を、メモリ１１０にバッファ１２６を介して転送する。これにより、例えば、原画ブロックＳＢＫの動きベクトルＭＶや差分画像ＤＩＭＧがメモリ１１０に記憶される。
【００７６】
このように、動き予測部１２０は、探索処理を他の符号化部１００に実行させる場合、ステップＳ１８０、Ｓ１８４、Ｓ１９０等を実行し、担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶや差分画像ＤＩＭＧを取得する。また、動き予測部１２０は、他の符号化部１００の動き予測部１２０からの処理要求がある場合（ステップＳ１００のＹｅｓ）、ステップＳ２００を実行する。
【００７７】
ステップＳ２００では、動き予測部１２０は、他の符号化部１００の動き予測部１２０から受けた処理要求が探索処理の要求（探索処理依頼）か否かを判定する。例えば、制御部１４０は、他の符号化部１００の制御部１４０から探索処理の依頼を受けたか否かを判定する。処理要求が探索処理の要求であるとき（ステップＳ２００のＹｅｓ）、動き予測部１２０の動作は、ステップＳ２１０に移る。一方、処理要求が探索処理の要求でないとき（ステップＳ２００のＮｏ）、動き予測部１２０の動作は、ステップＳ２３０に移る。
【００７８】
ステップＳ２１０では、動き予測部１２０は、原画ブロックＳＢＫを、探索処理の依頼元の符号化部１００から受ける。例えば、転送部１２８は、探索処理の依頼元の符号化部１００に割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫを、探索処理の依頼元の符号化部１００の転送部１２８から受ける。そして、転送部１２８は、探索処理の依頼元の符号化部１００の転送部１２８から受けた原画ブロックＳＢＫを、バッファ１２２を介して演算器１２４に転送する。
【００７９】
ステップＳ２２０では、動き予測部１２０は、探索処理を実行し、探索処理の結果を探索処理の依頼元の符号化部１００に送信する。例えば、演算器１２４は、参照画像ＲＩＭＧと転送部１２８からバッファ１２２を介して受けた原画ブロックＳＢＫとを用いて、探索処理を実行する。これにより、原画ブロックＳＢＫの動きベクトルＭＶや差分画像ＤＩＭＧが生成される。
【００８０】
そして、演算器１２４は、原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等の探索処理結果を、転送部１２８にバッファ１２６を介して転送する。また、転送部１２８は、演算器１２４からバッファ１２６を介して受けた探索処理結果を、探索処理の依頼元の符号化部１００の転送部１２８に送信する。これにより、探索処理の依頼元の符号化部１００は、ステップＳ１９０において、探索処理結果を受ける。
【００８１】
ステップＳ２３０では、動き予測部１２０は、参照画像ＲＩＭＧを要求元の符号化部１００に送信する。例えば、転送部１２８は、転送要求で指定された参照画像ＲＩＭＧをメモリ１１０から要求元の符号化部１００の転送部１２８に転送する。これにより、要求元の符号化部１００は、ステップＳ１６０において、参照画像ＲＩＭＧを受ける。
【００８２】
ステップＳ３００では、動き予測部１２０は、全ての原画ブロックＳＢＫに対して探索処理が実行されたか否かを判定する。探索処理が実行されていない原画ブロックＳＢＫが存在するとき（ステップＳ３００のＮｏ）、動き予測部１２０の動作は、ステップＳ１００に戻る。一方、全ての原画ブロックＳＢＫに対して探索処理が実行されたとき（ステップＳ３００のＹｅｓ）は、現フレームに対する動き予測部１２０の動作は終了する。
【００８３】
このように、動き予測部１２０は、探索処理を自身で実行するか探索処理を他の符号化部１００に実行させるかを、符号化部１００間のデータ転送量に応じて選択する。例えば、選択部１３８は、探索範囲が自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含む場合、探索処理を他の符号化部１００に実行させる処理と探索処理を自身で実行する処理とで、データ転送量の少ない方を選択する。これにより、動画像符号化装置１０は、符号化処理を並列に実行する符号化部１００間のデータ転送量の増加を抑制できる。
【００８４】
なお、動画像符号化装置１０の動作は、この例に限定されない。例えば、転送量算出部１３６は、探索処理の依頼先の符号化部１００に隣接ベクトルを転送する場合、転送する隣接ベクトル、原画ブロックＳＢＫおよび探索基点ベクトルＢＰのデータ量を送信時のデータ転送量として、データ転送量Ｄ２を算出してもよい。
【００８５】
また、例えば、動き予測部１２０は、自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域内の探索範囲で、動きベクトルＭＶ等を算出してもよい。この場合、例えば、動き予測部１２０は、自身で算出した動きベクトルＭＶとステップＳ１９０で取得した動きベクトルＭＶとを比較し、圧縮率が高くなる方の動きベクトルＭＶを、原画ブロックＳＢＫの動きベクトルＭＶとして選択してもよい。
【００８６】
また、例えば、動き予測部１２０は、ステップＳ１１０で決定した探索範囲が複数の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧにまたがる場合、複数の符号化部１００に対して、ステップＳ１５０の判定をそれぞれ実行してもよい。例えば、動き予測部１２０は、探索範囲を含む参照画像ＲＩＭＧを有する各符号化部１００に対して、ステップＳ１５０を実行してもよい。
【００８７】
この場合、動き予測部１２０は、例えば、ステップＳ１９０等で得られる複数の動きベクトルＭＶのうち、圧縮率が高くなる動きベクトルＭＶを、原画ブロックＳＢＫの動きベクトルＭＶとして選択してもよい。この場合にも、動き予測部１２０は、自身で動きベクトルＭＶを算出したときには、自身で算出した動きベクトルＭＶを選択対象に含めてもよい。
【００８８】
また、動き予測部１２０は、例えば、ステップＳ１９０において、原画ブロックＳＢＫのローカルデコード画像を、探索処理の依頼先の符号化部１００から受けてもよい。
【００８９】
図５は、他の符号化部１００の参照画像ＲＩＭＧを使用するときのデータの流れの一例を示している。図５の破線の矢印は、動きベクトルＭＶの探索範囲がメモリ１１０に記憶されている参照画像ＲＩＭＧの領域外に存在し、探索処理を自身で実行する場合のデータ等の流れの一例を示している。図５の例では、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの探索範囲の少なくとも一部（参照画像ＲＩＭＧｎ）が、符号化部１００Ｂのメモリ１１０に記憶された参照画像ＲＩＭＧに含まれている。なお、図５の例は、図３に示した符号化部１００Ａで探索処理を実行する場合に対応する。
【００９０】
例えば、符号化部１００Ａの探索方法判定部１３０は、記憶部１１０に記憶されている情報ＲＩＮＦ、ＢＰ、ＰＩＮＦに基づいて、探索処理を自身の動き予測部１２０で実行するか他の符号化部１００に実行させるかを判定する。そして、符号化部１００Ａの制御部１４０は、探索処理を自身の動き予測部１２０で実行することを示す判定結果を、探索方法判定部１３０から受ける。
【００９１】
このため、符号化部１００Ａの制御部１４０は、参照画像ＲＩＭＧｎを有する符号化部１００Ｂの制御部１４０に、参照画像ＲＩＭＧｎの転送を要求する。また、符号化部１００Ａの制御部１４０は、符号化部１００Ｂの参照画像ＲＩＭＧｎを用いた探索処理を実行するために、符号化部１００Ａの転送部１２８等を制御する。
【００９２】
符号化部１００Ｂの制御部１４０は、参照画像ＲＩＭＧｎの転送要求を受諾したことを示す応答信号を、符号化部１００Ａの制御部１４０に出力する。また、符号化部１００Ｂの制御部１４０は、符号化部１００Ｂの転送部１２８等を制御し、参照画像ＲＩＭＧｎの転送処理を転送部１２８等に実行させる。
【００９３】
例えば、符号化部１００Ｂの転送部１２８は、メモリ１１０に記憶されている参照画像ＲＩＭＧのうち、符号化部１００Ａで使用される参照画像ＲＩＭＧｎをメモリ１１０から受ける。そして、符号化部１００Ｂの転送部１２８は、メモリ１１０から受けた参照画像ＲＩＭＧｎを、符号化部１００Ａの転送部１２８に転送する。
【００９４】
これにより、例えば、符号化部１００Ａの転送部１２８は、参照画像ＲＩＭＧｎを符号化部１００Ｂの転送部１２８から受ける。そして、転送部１２８は、符号化部１００Ｂの転送部１２８から受けた参照画像ＲＩＭＧｎを、メモリ１１０に転送する。これにより、探索範囲を含む参照画像ＲＩＭＧが符号化部１００Ａのメモリ１１０に記憶される。
【００９５】
符号化部１００Ａの演算器１２４は、メモリ１１０からバッファ１２２を介して受けた原画ブロックＳＢＫに対する探索処理を、メモリ１１０に記憶された参照画像ＲＩＭＧを用いて実行する。これにより、原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が算出される。そして、演算器１２４は、算出した動きベクトルＭＶ、差分画像ＤＩＭＧ等を、メモリ１１０にバッファ１２６を介して転送する。これにより、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が符号化部１００Ａのメモリ１１０に記憶される。
【００９６】
図６は、他の符号化部１００で動きベクトルＭＶを算出するときのデータの流れの一例を示している。図６の破線の矢印は、動きベクトルＭＶの探索範囲がメモリ１１０に記憶されている参照画像ＲＩＭＧの領域外に存在し、探索処理を他の符号化部１００に実行させる場合のデータ等の流れの一例を示している。図６の例では、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの探索範囲の少なくとも一部（参照画像ＲＩＭＧｎ）が、符号化部１００Ｂのメモリ１１０に記憶された参照画像ＲＩＭＧに含まれている。なお、図６の例は、図３に示した符号化部１００Ｂに探索処理を依頼する場合に対応する。
【００９７】
例えば、符号化部１００Ａの探索方法判定部１３０は、記憶部１１０に記憶されている情報ＲＩＮＦ、ＢＰ、ＰＩＮＦに基づいて、探索処理を自身の動き予測部１２０で実行するか他の符号化部１００に実行させるかを判定する。そして、符号化部１００Ａの制御部１４０は、探索処理を符号化部１００Ｂに実行させることを示す判定結果を、探索方法判定部１３０から受ける。
【００９８】
このため、符号化部１００Ａの制御部１４０は、参照画像ＲＩＭＧｎを有する符号化部１００Ｂの制御部１４０に、探索処理を依頼する。符号化部１００Ｂの制御部１４０は、探索処理の依頼を受諾したことを示す応答信号を、符号化部１００Ａの制御部１４０に出力する。また、符号化部１００Ｂの制御部１４０は、符号化部１００Ａの原画ブロックＳＢＫの探索処理を実行するために、符号化部１００Ｂの転送部１２８等を制御する。
【００９９】
符号化部１００Ａの制御部１４０は、探索処理の依頼に対する受諾を示す応答信号を、符号化部１００Ｂの制御部１４０から受ける。そして、符号化部１００Ａの制御部１４０は、原画ブロックＳＢＫの探索処理を符号化部１００Ｂに実行させるために、符号化部１００Ａの転送部１２８等を制御する。
【０１００】
例えば、符号化部１００Ａの転送部１２８は、メモリ１１０に記憶されている担当画像ＳＩＭＧ内の原画ブロックＳＢＫを、メモリ１１０からバッファ１２２を介して受ける。そして、符号化部１００Ａの転送部１２８は、メモリ１１０からバッファ１２２を介して受けた原画ブロックＳＢＫを、符号化部１００Ｂの転送部１２８に転送する。
【０１０１】
これにより、例えば、符号化部１００Ｂの転送部１２８は、原画ブロックＳＢＫを符号化部１００Ａの転送部１２８から受ける。そして、転送部１２８は、符号化部１００Ａの転送部１２８から受けた原画ブロックＳＢＫを、演算器１２４にバッファ１２２を介して転送する。
【０１０２】
符号化部１００Ｂの演算器１２４は、転送部１２８からバッファ１２２を介して受けた原画ブロックＳＢＫに対する探索処理を、メモリ１１０に記憶された参照画像ＲＩＭＧを用いて実行する。これにより、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が算出される。そして、演算器１２４は、算出した動きベクトルＭＶ、差分画像ＤＩＭＧ等を、転送部１２８にバッファ１２６を介して転送する。
【０１０３】
符号化部１００Ｂの転送部１２８は、演算器１２４からバッファ１２６を介して受けた動きベクトルＭＶ、差分画像ＤＩＭＧ等を、符号化部１００Ａの転送部１２８に転送する。これにより、例えば、符号化部１００Ａの転送部１２８は、符号化部１００Ｂで算出された動きベクトルＭＶ、差分画像ＤＩＭＧ等を符号化部１００Ｂの転送部１２８から受ける。そして、転送部１２８は、符号化部１００Ｂの転送部１２８から受けた動きベクトルＭＶ、差分画像ＤＩＭＧ等を、メモリ１１０にバッファ１２６を介して転送する。
【０１０４】
これにより、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が符号化部１００Ａのメモリ１１０に記憶される。
【０１０５】
図７は、探索処理のタイムチャートの一例を示している。図の動き予測部１２０Ａ、１２０Ｂは、符号化部１００Ａ、１００Ｂの動き予測部１２０をそれぞれ示している。また、図７の”ａ”、”ａ＋１”、”ａ＋２”、”ａ＋３”は、符号化部１００Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理が実行されることを示している。同様に、図７の”ｂ”、”ｂ＋１”、”ｂ＋２”、”ｂ＋３”は、符号化部１００Ｂに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理が実行されることを示している。そして、図７の網掛け部分は、データ転送処理が実行されることを示している。
【０１０６】
図７の参照画像転送時および探索処理依頼時では、”ａ＋２”の探索処理で使用される参照画像ＲＩＭＧが、符号化部１００Ｂのメモリ１１０に記憶されている。例えば、参照画像転送時の動作は、図５で説明した動作に対応している。また、例えば、探索処理依頼時の動作は、図６で説明した動作に対応している。
【０１０７】
例えば、通常処理時では、参照画像ＲＩＭＧや原画ブロックＳＢＫのデータ転送は、符号化部１００Ａ、１００Ｂ間で実行されない。したがって、動き予測部１２０Ａ、１２０Ｂは、自身の担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理を、原画ブロックＳＢＫ毎に順に実行する。
【０１０８】
参照画像転送時では、動き予測部１２０Ａは、例えば、”ａ＋１”の探索処理が終了したとき、”ａ＋２”の探索処理で使用する参照画像ＲＩＭＧの転送を、動き予測部１２０Ｂに要求する（図７の転送要求）。動き予測部１２０Ｂは、例えば、転送要求を受けたときに実行していた”ｂ＋１”の探索処理が終了した後、参照画像ＲＩＭＧを動き予測部１２０Ａに転送する（図７の参照画像転送）。そして、動き予測部１２０Ｂは、参照画像ＲＩＭＧの送信処理（データ転送処理）が終了したとき、自身の担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理を再開する。例えば、動き予測部１２０Ｂは、参照画像ＲＩＭＧの送信処理が終了した後、”ｂ＋２”の探索処理を実行する。
【０１０９】
一方、動き予測部１２０Ａは、”ａ＋２”の探索処理で使用する参照画像ＲＩＭＧを動き予測部１２０Ｂから受ける（図７の参照画像転送）。そして、動き予測部１２０Ａは、参照画像ＲＩＭＧの受信処理（データ転送処理）が終了したとき、自身の担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理を再開する。例えば、動き予測部１２０Ａは、参照画像ＲＩＭＧの受信処理が終了した後、”ａ＋２”の探索処理を実行する。
【０１１０】
探索処理依頼時では、動き予測部１２０Ａは、例えば、”ａ＋１”の探索処理が終了したとき、”ａ＋２”の探索処理を、動き予測部１２０Ｂに依頼する（図７の処理要求）。動き予測部１２０Ｂは、例えば、処理要求を受けたときに実行していた”ｂ＋１”の探索処理が終了した後、処理要求を受諾したことを示す応答信号を動き予測部１２０Ａに出力する（図７の応答）。動き予測部１２０Ａは、処理要求を受諾したことを示す応答信号を動き予測部１２０Ｂから受けたため、”ａ＋２”の探索処理の対象ブロック（原画ブロックＳＢＫ）を動き予測部１２０Ｂに転送する（図７の原画転送）。
【０１１１】
動き予測部１２０Ｂは、原画ブロックＳＢＫ（”ａ＋２”の探索処理の対象ブロック）を動き予測部１２０Ａから受ける（図７の原画転送）。そして、動き予測部１２０Ｂは、原画ブロックＳＢＫの受信処理（データ転送処理）が終了したとき、”ａ＋２”の探索処理を実行する。これにより、動き予測部１２０Ａに割り当てられた担当画像ＳＩＭＧ内の原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が動き予測部１２０Ｂで算出される。
【０１１２】
動き予測部１２０Ｂは、”ａ＋２”の探索処理の結果（動きベクトルＭＶ、差分画像ＤＩＭＧ等）を動き予測部１２０Ａに転送する（図７の処理結果転送）。そして、動き予測部１２０Ｂは、探索処理結果の送信処理（データ転送処理）が終了したとき、自身の担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理を再開する。例えば、動き予測部１２０Ｂは、探索処理結果の送信処理が終了した後、”ｂ＋２”の探索処理を実行する。
【０１１３】
一方、動き予測部１２０Ａは、”ａ＋２”の探索処理の結果を動き予測部１２０Ｂから受ける（図７の処理結果転送）。そして、動き予測部１２０Ａは、探索処理結果の受信処理（データ転送処理）が終了したとき、自身の担当画像ＳＩＭＧ内の原画ブロックＳＢＫに対する探索処理を再開する。例えば、動き予測部１２０Ａは、探索処理結果の受信処理が終了した後、”ａ＋３”の探索処理を実行する。
【０１１４】
図８は、符号化部１００間のデータ転送量の一例を示している。なお、図８は、２つの符号化部１００の一方に割り当てられた原画ブロックＳＢＫの参照画像ＲＩＭＧｎ全体が２つの符号化部１００の他方のメモリ１１０に記憶されている参照画像ＲＩＭＧに含まれている場合の符号化部１００間のデータ転送量の一例を示している。図８に示したデータ量等の数値の単位は、バイトである。例えば、原画ブロックＳＢＫのデータ量は、ブロックサイズＢＳ×ブロックサイズＢＳで表される。
【０１１５】
図８の例では、参照画像転送時に転送される参照画像ＲＩＭＧｎは、探索範囲から小数画素フィルタサイズに応じて広げた範囲である。例えば、参照画像ＲＩＭＧｎは、探索範囲から４バイト分の画素だけ広げた範囲である。また、探索範囲は、原画ブロックＳＢＫから８バイト分の画素だけ広げた範囲である。したがって、参照画像ＲＩＭＧｎのデータ量は、（ブロックサイズＢＳ＋２４）×（ブロックサイズＢＳ＋２４）で表される。
【０１１６】
また、図８の例では、探索処理依頼時に依頼元から依頼先に転送されるデータに、２つの隣接ベクトルＡＤＶが含まれる。すなわち、原画ブロックＳＢＫ、探索基点ベクトルＢＰおよび２つの隣接ベクトルＡＤＶが、探索処理の依頼元から依頼先に転送される。例えば、探索基点ベクトルＢＰおよび隣接ベクトルＡＤＶの各ベクトルのデータ量は、４バイトである。したがって、探索処理依頼時では、原画ブロックＳＢＫのデータ量に１２バイトを加算したデータ量のデータが、依頼元から依頼先に転送される。
【０１１７】
そして、探索処理依頼時では、動きベクトルＭＶおよび差分画像ＤＩＭＧが、探索処理の依頼先から依頼元に転送される。例えば、動きベクトルＭＶのデータ量は、４バイトである。また、差分画像ＤＩＭＧのデータ量は、ブロックサイズＢＳ×ブロックサイズＢＳで表される。したがって、探索処理依頼時では、差分画像ＤＩＭＧのデータ量に４バイトを加算したデータ量のデータが、依頼先から依頼元に転送される。すなわち、探索処理依頼時のデータ転送量は、ブロックサイズＢＳ×ブロックサイズＢＳ×２＋１６で表される。
【０１１８】
例えば、ブロックサイズＢＳが６４の場合、参照画像転送時の転送バイト数は、参照画像ＲＩＭＧｎが１枚のとき、７７４４（＝（６４＋２４）×（６４＋２４））である。また、参照画像ＲＩＭＧｎが２枚のときには、参照画像転送時の転送バイト数は、１５４８８（＝７７４４×２）である。探索処理依頼時の転送バイト数は、８２０８（＝６４×６４×２＋１６）である。この場合、探索処理依頼時のデータ転送量は、参照画像ＲＩＭＧｎが１枚のときの参照画像転送時のデータ転送量より大きく、参照画像ＲＩＭＧｎが２枚のときの参照画像転送時のデータ転送量より小さい。
【０１１９】
この場合、例えば、動き予測部１２０は、参照画像ＲＩＭＧｎが１枚のときには、参照画像ＲＩＭＧｎを他の符号化部１００から取得し、自身で原画ブロックＳＢＫの探索処理を実行する。また、例えば、動き予測部１２０は、参照画像ＲＩＭＧｎが２枚のときには、原画ブロックＳＢＫ等を他の符号化部１００に転送し、他の符号化部１００に探索処理を依頼する。
【０１２０】
ブロックサイズＢＳが３２の場合、参照画像転送時の転送バイト数は、参照画像ＲＩＭＧｎが１枚のとき、３１３６（＝（３２＋２４）×（３２＋２４））である。また、参照画像ＲＩＭＧｎが２枚のときには、参照画像転送時の転送バイト数は、６２７２（＝３１３６×２）である。探索処理依頼時の転送バイト数は、２０６４（＝３２×３２×２＋１６）である。
【０１２１】
ブロックサイズＢＳが１６の場合、参照画像転送時の転送バイト数は、参照画像ＲＩＭＧｎが１枚のとき、１６００（＝（１６＋２４）×（１６＋２４））である。また、参照画像ＲＩＭＧｎが２枚のときには、参照画像転送時の転送バイト数は、３２００（＝１６００×２）である。探索処理依頼時の転送バイト数は、５２８（＝１６×１６×２＋１６）である。
【０１２２】
ブロックサイズＢＳが８の場合、参照画像転送時の転送バイト数は、参照画像ＲＩＭＧｎが１枚のとき、１０２４（＝（８＋２４）×（８＋２４））である。また、参照画像ＲＩＭＧｎが２枚のときには、参照画像転送時の転送バイト数は、２０４８（＝１０２４×２）である。探索処理依頼時の転送バイト数は、１４４（＝８×８×２＋１６）である。
【０１２３】
ブロックサイズＢＳが３２、１６および８の場合、探索処理依頼時のデータ転送量は、参照画像転送時のデータ転送量より小さい。この場合、例えば、動き予測部１２０は、原画ブロックＳＢＫ等を他の符号化部１００に転送し、他の符号化部１００に探索処理を依頼する。
【０１２４】
なお、符号化部１００間で転送されるデータは、この例に限定されない。例えば、動き予測部１２０は、依頼先の探索処理で小数画素探索が実行されない場合、探索範囲を参照画像ＲＩＭＧｎとしてもよい。また、例えば、探索処理依頼時に依頼元から依頼先に転送される隣接ベクトルＡＤＶの数は、１つでもよいし、３つ以上でもよい。あるいは、隣接ベクトルＡＤＶは、転送されなくてもよい。
【０１２５】
図９は、動き補償処理の対象ブロックと隣接ベクトルとの位置関係の一例を示している。図の網掛けは、原画ブロックＳＢＫの動き補償処理の対象ブロックを示している。分割なしの場合は、動き補償処理の対象ブロックは、原画ブロックＳＢＫである。
【０１２６】
例えば、Ｈ．２６５等では、動き補償処理の対象ブロックの右上、上、左上、左のブロックの動きベクトルが隣接ベクトルとして参照可能である。動きベクトルＭＶは、隣接ベクトルの差分値でエントロピー符号化されるため、動きベクトルＭＶに似た隣接ベクトルが存在する場合、符号量が節約される。
【０１２７】
原画ブロックＳＢＫが小ブロックに分割された場合、それぞれの小ブロック（動き補償処理の対象ブロック）が参照する隣接ベクトルも変化する。例えば、分割あり（その１、その２）では、隣接ベクトルとして参照される動きベクトルは、原画ブロックＳＢＫ内の小ブロックの動きベクトルを除いて、分割あり（その１）と分割あり（その２）とで合わせて５本である。分割あり（その１、その２）より細かく分割される場合には、さらに多くの隣接ベクトルが参照される。
【０１２８】
どのように分割されるかは、動き予測のコスト計算で決まるため、探索処理の依頼時には、確定していない。常に最大数の隣接ベクトルを依頼先に送付する方法ではデータ転送量が増加するおそれがあるため、図８に示した例では、動き予測部１２０は、原画ブロックＳＢＫを分割しない時の上、左の２本の隣接ベクトルを依頼先に送付する。
【０１２９】
依頼先の動き予測部１２０では、例えば、必要な隣接ベクトルがない場合、参照可能な隣接ベクトルでベクトルコストを算出して、分割方法、動きベクトルＭＶ等を決定する。依頼元の符号化部１００は、例えば、全ての隣接ベクトルを有しているため、探索処理の結果を受信した後、動きベクトルＭＶを、適切な隣接ベクトルとの差分値でエントロピー符号化する。
【０１３０】
図１０は、図１に示した動画像符号化装置１０の動作の別の例を示している。なお、図１０は、各符号化部１００の動き予測部１２０により実行される探索処理（動きベクトルの探索）の一例を示している。図１０の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、コンピュータは、動画像符号化プログラムを記録した記憶媒体を読み取り、図１０の動作を実行してもよい。換言すれば、動画像符号化プログラムは、図１０の動作をコンピュータに実行させてもよい。すなわち、図１０は、動画像符号化方法および動画像符号化プログラムの一形態を示す。
【０１３１】
図１０の動作では、ステップＳ１０２、Ｓ２０２、Ｓ２０４、Ｓ２０６、Ｓ２４０が図４に示した動作に追加されている。また、図１０の動作では、ステップＳ１０４、Ｓ２０８が、図４のステップＳ１００、Ｓ２１０に対応する処理として実行され、ステップ１０６が、図４のステップＳ１１０−Ｓ１９０に対応する処理として実行される。図４で説明した動作と同一または同様な動作については、詳細な説明を省略する。
【０１３２】
ステップＳ１０２では、例えば、制御部１４０は、他の符号化部１００からの処理（参照画像ＲＩＭＧの転送処理、探索処理等）の受け入れ可能数ＣＡＰ（１以上の数）を設定する。これにより、受け入れ可能数ＣＡＰの上限値が設定される。受け入れ可能数ＣＡＰは、各符号化部１００の処理（符号化処理等）が所定の時間（例えば、１フレーム期間）内に完了するように設定される。なお、受け入れ可能数ＣＡＰの上限値は、制御部１４０以外のモジュールにより書き換え可能に設定されてもよいし、固定値でもよい。
【０１３３】
ステップＳ１０４では、制御部１４０は、他の符号化部１００の動き予測部１２０からの処理要求があるか否かを判定する。処理要求があるとき（ステップＳ１０４のＹｅｓ）、動き予測部１２０の動作は、ステップＳ２０２に移る。一方、処理要求がないとき（ステップＳ１０４のＮｏ）、動き予測部１２０の動作は、ステップＳ１０６に移る。
【０１３４】
ステップＳ１０６では、動き予測部１２０は、担当ブロックの動きベクトル算出処理を実行する。担当ブロックは、例えば、自身の符号化部１００に割り当てられた担当画像ＳＩＭＧ内の原画像ブロックＳＢＫである。例えば、ステップＳ１０６は、図４のステップＳ１１０−Ｓ１９０に対応する処理であり、図１１で説明する。
【０１３５】
ステップＳ２０２では、制御部１４０は、受け入れ可能数ＣＡＰが１以上か否かを判定する。すなわち、制御部１４０は、他の符号化部１００の動き予測部１２０からの処理要求を受諾するか否かを判定する。受け入れ可能数ＣＡＰが１以上のとき（ステップＳ２０２のＹｅｓ）、動き予測部１２０の動作は、ステップＳ２０４に移る。すなわち、他の符号化部１００の動き予測部１２０からの処理要求を受諾する場合、動き予測部１２０の動作は、ステップＳ２０４に移る。
【０１３６】
一方、受け入れ可能数ＣＡＰが１未満のとき（ステップＳ２０２のＮｏ）、動き予測部１２０の動作は、ステップＳ２４０に移る。すなわち、他の符号化部１００の動き予測部１２０からの処理要求を拒否する場合、動き予測部１２０の動作は、ステップＳ２４０に移る。
【０１３７】
ステップＳ２０４では、制御部１４０は、要求元の符号化部１００の動き予測部１２０からの処理を受け入れることを要求元の符号化部１００に通知する。例えば、制御部１４０は、処理要求を受諾したこと（受諾応答）を示す応答信号を、要求元の符号化部１００の制御部１４０に出力する。
【０１３８】
ステップＳ２０６では、制御部１４０は、現状の受け入れ可能数ＣＡＰから１を減算する。これにより、受け入れ可能数ＣＡＰが更新される。
【０１３９】
ステップＳ２０８、Ｓ２１０、Ｓ２２０、Ｓ２３０、Ｓ３００は、図４のステップＳ２００、Ｓ２１０、Ｓ２２０、Ｓ２３０、Ｓ３００と同一または同様である。
【０１４０】
ステップＳ２４０では、制御部１４０は、要求元の符号化部１００の動き予測部１２０からの処理の受け入れを拒否することを、要求元の符号化部１００に通知する。例えば、制御部１４０は、処理要求を拒否したこと（拒否応答）を示す応答信号を、要求元の符号化部１００の制御部１４０に出力する。処理Ｓ２４０が実行された後、処理Ｓ３００が実行される。
【０１４１】
このように、各符号化部１００の制御部１４０は、他の符号化部１００からの処理要求の数が予め設定された上限値ＣＡＰを超えた場合、処理要求を拒否する。
【０１４２】
図１１は、図１０に示した担当ブロックの動きベクトル算出処理Ｓ１０６の一例を示している。図１１の動作では、ステップＳ１６２、Ｓ１６４、Ｓ１６６、Ｓ１７２、Ｓ１８２が図４に示したステップＳ１１０−Ｓ１９０の動作に追加されている。なお、ステップＳ１６２、Ｓ１６４、Ｓ１６６は、図４のステップＳ１６０に対応する処理として実行される。図４で説明した動作と同一または同様な動作については、詳細な説明を省略する。図１０で説明したように、図１１の動作は、処理要求がないとき（図１０のステップＳ１０４のＮｏ）、実行される。
【０１４３】
ステップＳ１１０、Ｓ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０は、図４のステップＳ１１０、Ｓ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０と同一または同様である。例えば、ステップＳ１５０では、選択部１３８は、データ転送量Ｄ１がデータ転送量Ｄ２以下か否かを判定する。データ転送量Ｄ１がデータ転送量Ｄ２以下のとき（ステップＳ１５０のＹｅｓ）、動き予測部１２０の動作は、ステップＳ１６２に移る。一方、データ転送量Ｄ１がデータ転送量Ｄ２を超えているとき（ステップＳ１５０のＮｏ）、動き予測部１２０の動作は、ステップＳ１８０に移る。
【０１４４】
ステップＳ１６２では、制御部１４０は、探索処理に必要な参照画像ＲＩＭＧを記憶しているメモリ１１０を含む符号化部１００の制御部１４０に対して、参照画像ＲＩＭＧの転送を要求する。
【０１４５】
ステップＳ１６４では、制御部１４０は、転送要求が受諾されたか否かを判定する。例えば、制御部１４０は、要求先の符号化部１００の制御部１４０から受けた応答信号が転送要求を受諾したこと（受諾応答）を示す応答信号か否かを判定する。転送要求が受諾されたとき（ステップＳ１６４のＹｅｓ）、動き予測部１２０の動作は、ステップＳ１６６に移る。すなわち、動き予測部１２０は、転送要求を受諾したこと（受諾応答）を示す応答信号を要求先の符号化部１００から受けたとき、ステップＳ１６６を実行する。
【０１４６】
一方、転送要求が受諾されないとき（ステップＳ１６４のＮｏ）、動き予測部１２０の動作は、ステップＳ１７２に移る。すなわち、動き予測部１２０は、転送要求を拒否したこと（拒否応答）を示す応答信号を要求先の符号化部１００から受けたとき、ステップＳ１７２を実行する。
【０１４７】
ステップＳ１６６では、動き予測部１２０（より詳細には、転送部１２８）は、転送要求で指定した参照画像ＲＩＭＧを要求先の符号化部１００から受信する。そして、例えば、要求元の符号化部１００の転送部１２８は、要求先の符号化部１００から受けた参照画像ＲＩＭＧをメモリ１１０に転送する。これにより、探索処理に必要な参照画像ＲＩＭＧがメモリ１１０に記憶される。
【０１４８】
ステップＳ１７０は、図４のステップＳ１７０と同一または同様である。例えば、演算器１２４は、原画ブロックＳＢＫおよび参照画像ＲＩＭＧを用いて、探索処理を実行する。
【０１４９】
ステップＳ１７２では、動き予測部１２０は、自身の符号化部１００のメモリ１１０に記憶されている参照画像ＲＩＭＧの範囲に探索範囲を制限して、探索処理を実行する。このように、動き予測部１２０は、処理要求が拒否された場合、メモリ１１０に記憶されたローカルデコード画像の範囲内に探索範囲を設定して、動きベクトルＭＶを算出する。
【０１５０】
ステップＳ１８０は、図４のステップＳ１８０と同一または同様である。例えば、制御部１４０は、探索処理に必要な参照画像ＲＩＭＧを有する符号化部１００の制御部１４０に対して、探索処理を依頼する。
【０１５１】
ステップＳ１８２では、制御部１４０は、探索処理の依頼が受諾されたか否かを判定する。例えば、制御部１４０は、依頼先の符号化部１００の制御部１４０から受けた応答信号が探索処理依頼を受諾したこと（受諾応答）を示す応答信号か否かを判定する。探索処理の依頼が受諾されたとき（ステップＳ１８２のＹｅｓ）、動き予測部１２０の動作は、ステップＳ１８４に移る。すなわち、動き予測部１２０は、探索処理依頼を受諾したこと（受諾応答）を示す応答信号を依頼先の符号化部１００から受けたとき、ステップＳ１８４を実行する。
【０１５２】
一方、探索処理の依頼が受諾されないとき（ステップＳ１８２のＮｏ）、動き予測部１２０の動作は、ステップＳ１７２に移る。すなわち、動き予測部１２０は、探索処理依頼を拒否したこと（拒否応答）を示す応答信号を依頼先の符号化部１００から受けたとき、ステップＳ１７２を実行する。例えば、動き予測部１２０は、処理要求が拒否された場合、メモリ１１０に記憶されたローカルデコード画像の範囲内に探索範囲を設定して、動きベクトルＭＶを算出する。
【０１５３】
ステップＳ１８４、Ｓ１９０は、図４のステップＳ１８４、Ｓ１９０と同一または同様である。ステップＳ１７０、Ｓ１７２、Ｓ１９０のいずれかが実行された後、図１０のステップＳ３００が実行される。図１０および図１１の動作では、処理の受け入れ可能数ＣＡＰを超えた場合に他の符号化部１００からの処理要求を拒否する。これにより、図１０および図１１の動作では、他の符号化部１００からの処理要求が増加したときにも、各符号化部１００の処理（符号化処理等）を所定の時間（例えば、１フレーム期間）内に完了できる。すなわち、図１０および図１１の動作では、各符号化部１００の処理が所定の時間内に完了しない状況になることを防止できる。
【０１５４】
なお、動画像符号化装置１０の動作は、図１０および図１１に示した例に限定されない。例えば、動き予測部１２０は、処理の受け入れ可能数ＣＡＰを更新する際（図１０のステップＳ２０６）、参照画像の転送要求と探索処理の依頼とで減算量を異なる値にしてもよい。例えば、動き予測部１２０は、参照画像の転送要求のときのステップＳ２０６の減残量を、探索処理の依頼のときのステップＳ２０６の減残量より小さくしてもよい。
【０１５５】
あるいは、動き予測部１２０は、ステップＳ２０２の判定に使用する閾値（図１０では”１”）を、参照画像の転送要求のときと探索処理の依頼のときとで異なる値にしてもよい。例えば、動き予測部１２０は、参照画像の転送要求のときのステップＳ２０２の閾値を、探索処理の依頼のときのステップＳ２０２の閾値より小さくしてもよい。この場合、例えば、動き予測部１２０は、探索処理の依頼が拒否されたとき（ステップＳ１８２のＮｏ）、ステップＳ１６２を実行してもよい。
【０１５６】
以上、図１から図９に示した実施形態の動画像符号化装置、動画像符号化方法および動画像符号化プログラムでは、探索処理を自身で実行するか探索処理を他の符号化部１００に実行させるかを、符号化部１００間のデータ転送量に応じて選択する。例えば、選択部１３８は、探索範囲が自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含む場合、探索処理を他の符号化部１００に実行させる処理と探索処理を自身で実行する処理とで、データ転送量の少ない方を選択する。これにより、動画像符号化装置１０は、符号化処理を並列に実行する符号化部１００間のデータ転送量の増加を抑制できる。
【０１５７】
さらに、各符号化部１００は、例えば、他の符号化部１００からの処理（参照画像ＲＩＭＧの転送処理、探索処理等）の受け入れ可能数ＣＡＰの上限値を設定した場合、処理要求の数が上限値を超えたときに、他の符号化部１００からの処理要求を拒否する。これにより、この実施形態では、他の符号化部１００からの処理要求の数が増加したときにも、各符号化部１００の処理を所定の時間内に完了できる。すなわち、この実施形態では、他の符号化部１００からの処理の受け入れ可能数ＣＡＰを設定することにより、各符号化部１００の処理が所定の時間内に完了しない状況になることを防止できる。
【０１５８】
図１２は、動画像符号化装置、動画像符号化方法および動画像符号化プログラムの別の実施形態を示している。この実施形態の動画像符号化装置１０では、縮小画像動き予測部５００が図１に示した動画像符号化装置１０に追加されている。また、各符号化部１００は、図１に示した動き予測部１２０の代わりに、動き予測部１２１を有している。図１２に示した動画像符号化装置１０のその他の構成は、図１に示した動画像符号化装置１０と同一または同様である。図１から図１１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
【０１５９】
例えば、この実施形態の動画像符号化装置１０は、複数のエンコーダを使用した動画像並列符号化装置である。図１２の例では、動画像符号化装置１０は、２個の符号化部１００（１００Ａ、１００Ｂ）を有している。なお、符号化部１００の数は、２個に限定されない。例えば、符号化部１００の数は、３個以上でもよい。
【０１６０】
動画像符号化装置１０は、例えば、複数の符号化部１００（１００Ａ、１００Ｂ）と、画像入力部２００と、ストリーム出力部３００と、インターコネクト４００と、縮小画像動き予測部５００とを有している。各符号化部１００、画像入力部２００、ストリーム出力部３００および縮小画像動き予測部５００は、インターコネクト４００に接続されている。例えば、符号化部１００等の各モジュールは、インターコネクト４００を介して互いにアクセスする。
【０１６１】
画像入力部２００およびストリーム出力部３００は、図１に示した画像入力部２００およびストリーム出力部３００と同一または同様である。例えば、画像入力部２００は、１画面ＩＭＧＡＬを分割した複数の部分画像を、インターコネクト４００を介して、複数の符号化部１００にそれぞれ転送する。また、例えば、画像入力部２００は、符号化対象の原画像（１画面ＩＭＧＡＬ）を、インターコネクト４００を介して縮小画像動き予測部５００に転送する。
【０１６２】
各符号化部１００は、図１に示した動き予測部１２０の代わりに動き予測部１２１を有していることを除いて、図１に示した符号化部１００と同一または同様である。例えば、各符号化部１００は、メモリ１１０、動き予測部１２１、画面内予測部１５０、フィルタ部１６０、ＤＣＴ量子化部１７０および可変長符号化部１８０を有している。メモリ１１０、画面内予測部１５０、フィルタ部１６０、ＤＣＴ量子化部１７０および可変長符号化部１８０は、図１に示したメモリ１１０、画面内予測部１５０、フィルタ部１６０、ＤＣＴ量子化部１７０および可変長符号化部１８０と同一または同様である。
【０１６３】
動き予測部１２１は、最初の原画ブロックＳＢＫに対する探索処理を実行する前に、図１５に示す先頭処理（図１４のステップＳ５００ａ、Ｓ５００ｂ）を実行する。先頭処理は、符号化部１００間のデータ転送を仮の探索範囲に基づいて実行する前処理の一例である。例えば、先頭処理では、動き予測部１２１は、最初の原画ブロックＳＢＫに対する探索処理を実行する前に取得可能な探索基点に基づいて、仮の探索範囲を原画ブロックＳＢＫ毎に決定し、符号化部１００間のデータ転送を仮の探索範囲に基づいて実行する。
【０１６４】
例えば、動き予測部１２１は、仮の探索範囲に基づいて、他の符号化部１００に原画ブロックＳＢＫを転送するか、仮の探索範囲に対して不足している部分の参照画像ＲＩＭＧを他の符号化部１００から受信するかを原画ブロックＳＢＫ毎に判定する。そして、動き予測部１２１は、判定結果に基づくデータ転送を実行する。
【０１６５】
なお、例えば、動き予測部１２１は、先頭処理を、最初の原画ブロックＳＢＫの動きベクトルＭＶを算出する前に部分画像ＳＩＭＧ内の全ての原画ブロックＳＢＫに対して実行する。これにより、原画ブロックＳＢＫ、参照画像ＲＩＭＧ等が符号化部１００間で予め転送される。このため、動き予測部１２１は、探索処理（例えば、図１６に示すブロック単位処理）時の符号化部１００間のデータ転送時間を短縮できる。
【０１６６】
縮小画像動き予測部５００は、例えば、画像入力部２００からインターコネクト４００を介して受けた原画像（１画面ＩＭＧＡＬ）を縮小し、原画像を縮小した縮小画像の動きベクトルを算出する。例えば、縮小画像動き予測部５００は、縮小処理部５１０、動き予測部５２０およびメモリ５３０を有している。縮小処理部５１０は、例えば、画像入力部２００からインターコネクト４００を介して受けた原画像を縮小する。
【０１６７】
そして、縮小処理部５１０は、原画像を縮小した縮小画像をメモリ５３０に転送する。これにより、原画像の縮小画像がメモリ５３０に記憶される。なお、縮小処理部５１０は、画像入力部２００から転送される原画像を、メモリ５３０を介して受けてもよい。すなわち、原画像がメモリ５３０に記憶されてもよい。
【０１６８】
動き予測部５２０は、例えば、縮小画像の動きベクトルを所定のブロック毎に算出する。以下、縮小画像の動きベクトルを概算動きベクトルとも称する。なお、１画面分の縮小画像がメモリ５３０に記憶されているため、動き予測部５２０は、各符号化部１００の担当画像ＳＩＭＧに対応する部分の概算動きベクトルを算出できる。例えば、動き予測部５２０は、算出した概算動きベクトルをメモリ５３０に転送する。これにより、各符号化部１００の担当画像ＳＩＭＧに対応する部分の概算動きベクトルがメモリ５３０に記憶される。なお、動画像符号化装置１０の構成は、この例に限定されない。
【０１６９】
図１３は、図１２に示した動き予測部１２１の一例を示している。図１３のメモリ１１０内の符号ＭＶ等は、メモリ１１０に記憶されるデータの一例を示している。また、図１３の破線の矢印の意味は、図２と同一または同様である。動き予測部１２１は、図２に示した探索方法判定部１３０および制御部１４０の代わりに、探索方法判定部１３１および制御部１４１を有している。動き予測部１２１のその他の構成は、図２に示した動き予測部１２０と同一または同様である。
【０１７０】
動き予測部１２１は、バッファ１２２、１２６、演算器１２４、転送部１２８、探索方法判定部１３１および制御部１４１を有している。バッファ１２２、１２６、演算器１２４および転送部１２８は、図２に示したバッファ１２２、１２６、演算器１２４および転送部１２８と同一または同様である。
【０１７１】
探索方法判定部１３１は、例えば、範囲決定部１３２、領域判定部１３４、転送量算出部１３６および選択部１３８を有している。範囲決定部１３２、領域判定部１３４、転送量算出部１３６および選択部１３８は、図２に示した範囲決定部１３２、領域判定部１３４、転送量算出部１３６および選択部１３８と同一または同様である。
【０１７２】
探索方法判定部１３１は、例えば、動きベクトルＭＶの算出を実行する前に取得可能な探索基点ＢＰに基づいて、他の符号化部１００に原画ブロックＳＢＫを転送するか、他の符号化部１００から不足分の参照画像ＲＩＭＧを受信するかを判定する。例えば、探索方法判定部１３１は、最初の原画ブロックＳＢＫに対する探索処理が実行される前に、仮の探索範囲に対して不足している部分の参照画像ＲＩＭＧや原画ブロックＳＢＫの転送を符号化部１００間で実行するか否かを原画ブロックＳＢＫ毎に判定する。探索方法判定部１３１のその他の動作は、探索方法判定部１３０の動作と同一または同様である。
【０１７３】
制御部１４１は、例えば、原画ブロックＳＢＫ、参照画像ＲＩＭＧ等が符号化部１００間で予め転送されるように、探索方法判定部１３１の判定結果に基づいて、転送部１２８等を制御する。これにより、転送部１２８は、探索方法判定部１３１の判定結果に基づくデータ転送を実行する。なお、制御部１４１のその他の動作は、制御部１４０の動作と同一または同様である。
【０１７４】
例えば、図１６に示すブロック単位処理では、制御部１４１は、原画ブロックＳＢＫの動きベクトルＭＶの探索を自身の動き予測部１２１で実行するか他の符号化部１００で実行するかの判定結果を、探索方法判定部１３１から受ける。そして、制御部１４１は、探索方法判定部１３１での判定結果に基づいて、転送部１２８の動作（データ転送）を制御する。なお、動き予測部１２１の構成は、この例に限定されない。
【０１７５】
図１４は、図１２に示した動画像符号化装置１０の動作の一例を示している。なお、図１４は、各符号化部１００の動き予測部１２１により実行される探索処理（動きベクトルの探索）の一例を示している。図１４の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。例えば、コンピュータは、動画像符号化プログラムを記録した記憶媒体を読み取り、図１４の動作を実行してもよい。換言すれば、動画像符号化プログラムは、図１４の動作をコンピュータに実行させてもよい。すなわち、図１４は、動画像符号化方法および動画像符号化プログラムの一形態を示す。
【０１７６】
図１４のステップＳ４００は、例えば、縮小画像動き予測部５００により実行される。ステップＳ５００ａ、６００ａ、８００ａは、例えば、符号化部１００Ａにより実行され、ステップＳ５００ｂ、６００ｂ、８００ｂは、例えば、符号化部１００Ｂにより実行される。以下、ステップＳ５００ａ、Ｓ５００ｂを区別せずにステップＳ５００とも称する。また、ステップＳ６００ａ、Ｓ６００ｂを区別せずにステップＳ６００とも称し、ステップＳ８００ａ、Ｓ８００ｂを区別せずにステップＳ８００とも称する。ステップＳ６００は、例えば、ステップＳ５００が全ての符号化部１００で終了した後に、各符号化部１００で実行される。
【０１７７】
ステップＳ４００では、縮小画像動き予測部５００は、原画像を縮小した縮小画像の動きベクトルを算出する。これにより、各符号化部１００の担当画像ＳＩＭＧに対応する部分の概算動きベクトルがメモリ５３０に記憶される。
【０１７８】
ステップＳ５００（Ｓ５００ａ、Ｓ５００ｂ）では、各符号化部１００の動き予測部１２１は、図１５に示す先頭処理を実行する。先頭処理では、例えば、仮の探索範囲に基づいて、参照画像ＲＩＭＧや原画ブロックＳＢＫの転送が符号化部１００間で実行される。例えば、仮の探索範囲に基づく参照画像が他の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧを含む場合、仮の探索範囲に基づく参照画像に対して不足している部分の参照画像ＲＩＭＧや原画ブロックＳＢＫの転送が符号化部１００間で実行される。
【０１７９】
ステップＳ６００（Ｓ６００ａ、Ｓ６００ｂ）では、各符号化部１００の動き予測部１２１は、図１６に示すブロック単位処理を実行する。ブロック単位処理は、例えば、縮小していない原画像を分割した部分画像（担当画像ＳＩＭＧ）内の原画ブロックＳＢＫの探索処理である。ブロック単位処理により、原画ブロックＳＢＫの動きベクトルＭＶ、差分画像ＤＩＭＧ等が算出される。
【０１８０】
ステップＳ８００（Ｓ８００ａ、Ｓ８００ｂ）では、各符号化部１００の動き予測部１２１は、全ての原画ブロックＳＢＫに対してブロック単位処理が実行されたか否かを判定する。ブロック単位処理が実行されていない原画ブロックＳＢＫが存在するとき（ステップＳ８００のＮｏ）、各符号化部１００の動き予測部１２１の動作は、ステップＳ６００に戻る。一方、全ての原画ブロックＳＢＫに対してブロック単位処理が実行されたとき（ステップＳ８００のＹｅｓ）は、現フレームに対する各符号化部１００の動き予測部１２１の動作は終了する。
【０１８１】
図１５は、図１４に示した先頭処理Ｓ５００の一例を示している。図１５の動作は、各符号化部１００により実行される。図４で説明した動作と同一または同様な動作については、詳細な説明を省略する。例えば、ステップＳ５３０、Ｓ５４０、Ｓ５５０、Ｓ５６０、Ｓ５７０、Ｓ５８０、Ｓ５９０は、図４のステップＳ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０、Ｓ１６０、Ｓ１８４、Ｓ３００と同一または同様である。例えば、ステップＳ５３０−Ｓ５７０、Ｓ５８０、Ｓ５９０の動作は、図４の探索範囲および動き予測部１２０を仮の探索範囲および動き予測部１２１にそれぞれ読み替えることにより、ステップＳ１２０−Ｓ１６０、Ｓ１８４、Ｓ３００の動作でほぼ説明される。
【０１８２】
ステップＳ５１０では、符号化部１００は、縮小動き予測部５００から概算動きベクトルを取得する。例えば、符号化部１００は、縮小動き予測部５００のメモリ５３０に記憶されている概算動きベクトル（縮小画像の動きベクトル）のうち、処理対象の原画ブロックＳＢＫに対応する部分の概算動きベクトルを、縮小動き予測部５００から取得する。これにより、例えば、動き予測部１２１の範囲決定部１３２は、処理対象の原画ブロックＳＢＫの概算動きベクトルを使用できる。
【０１８３】
なお、符号化部１００は、ステップＳ５１０を実行する前に、縮小動き予測部５００のメモリ５３０に記憶されている概算動きベクトルのうち、担当画像ＳＩＭＧに対応する部分の概算動きベクトルを縮小動き予測部５００から取得してもよい。そして、符号化部１００は、縮小動き予測部５００から取得した概算動きベクトル（担当画像ＳＩＭＧ内の各原画ブロックＳＢＫに対応する縮小画像の動きベクトル）をメモリ１１０に記憶してもよい。この場合、ステップＳ５１０では、例えば、動き予測部１２１の範囲決定部１３２は、メモリ１１０に記憶されている概算動きベクトルのうち、処理対象の原画ブロックＳＢＫの概算動きベクトルをメモリ１１０から受ける。
【０１８４】
ステップＳ５２０では、例えば、動き予測部１２１の範囲決定部１３２は、ステップＳ５１０で取得した概算動きベクトルを探索基点として、仮の探索範囲を決定する。
【０１８５】
ステップＳ５３０では、例えば、動き予測部１２１の領域判定部１３４は、参照画像ＲＩＭＧが不足しているか否かを判定する。例えば、領域判定部１３４は、仮の探索範囲に基づく参照画像がメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含むか否かを判定する。参照画像ＲＩＭＧが不足しているとき（ステップＳ５３０のＹｅｓ）、動き予測部１２１の動作は、ステップＳ５４０に移る。一方、参照画像ＲＩＭＧが不足していないとき（ステップＳ５３０のＮｏ）、動き予測部１２１の動作は、ステップＳ５９０に移る。
【０１８６】
ステップＳ５４０では、動き予測部１２１の転送量算出部１３６は、自身の動き予測部１２１で探索処理を実行する場合のデータ転送量Ｄ１を算出する。例えば、転送量算出部１３６は、ステップＳ５２０で決定した仮の探索範囲に基づく参照画像のうち、自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像のデータ量を、データ転送量Ｄ１として算出する。
【０１８７】
ステップＳ５５０では、動き予測部１２１の転送量算出部１３６は、他の符号化部１００で探索処理を実行する場合のデータ転送量Ｄ２を算出する。
【０１８８】
ステップＳ５６０では、動き予測部１２１の選択部１３８は、データ転送量Ｄ１がデータ転送量Ｄ２以下か否かを判定する。データ転送量Ｄ１がデータ転送量Ｄ２以下のとき（ステップＳ５６０のＹｅｓ）、動き予測部１２１の動作は、ステップＳ５７０に移る。一方、データ転送量Ｄ１がデータ転送量Ｄ２を超えているとき（ステップＳ５６０のＮｏ）、動き予測部１２１の動作は、ステップＳ５８０に移る。
【０１８９】
ステップＳ５７０では、動き予測部１２１は、他の符号化部１００から参照画像ＲＩＭＧを取得する。例えば、制御部１４１は、仮の探索範囲に基づく参照画像に対して不足している部分の参照画像ＲＩＭＧを記憶しているメモリ１１０を含む符号化部１００の制御部１４１に対して、参照画像ＲＩＭＧの転送を要求する。これにより、例えば、転送要求を受けた符号化部１００の転送部１２８は、転送要求で指定された参照画像ＲＩＭＧをメモリ１１０から要求元の符号化部１００の転送部１２８に転送する。また、例えば、要求元の符号化部１００の転送部１２８は、要求先の符号化部１００から受けた参照画像ＲＩＭＧをメモリ１１０に転送する。これにより、仮の探索範囲に基づく参照画像に対して不足している部分の参照画像ＲＩＭＧがメモリ１１０に記憶される。
【０１９０】
ステップＳ５８０では、動き予測部１２１は、原画ブロックＳＢＫを、仮の探索範囲に基づく参照画像に対して不足している部分の参照画像ＲＩＭＧを有する符号化部１００に送信する。これにより、仮の探索範囲に基づく参照画像に対して不足している部分の参照画像ＲＩＭＧを有する符号化部１００のメモリ１１０に、原画ブロックＳＢＫが記憶される。
【０１９１】
ステップＳ５９０では、動き予測部１２１は、全ての原画ブロックＳＢＫに対して、ステップＳ５３０等の処理が実行されたか否かを判定する。ステップＳ５３０等の処理が実行されていない原画ブロックＳＢＫが存在するとき（ステップＳ５９０のＮｏ）、動き予測部１２１の動作は、ステップＳ５１０に戻る。一方、全ての原画ブロックＳＢＫに対してステップＳ５３０等の処理が実行されたとき（ステップＳ５９０のＹｅｓ）は、先頭処理は終了する。
【０１９２】
このように、動き予測部１２１は、概算動きベクトルを探索基点とした仮の探索範囲に基づいて、原画ブロックＳＢＫ、参照画像ＲＩＭＧ等の転送を符号化部１００間で予め実行する。このため、動き予測部１２１は、例えば、探索処理（図１４等のブロック単位処理）時の符号化部１００間のデータ転送時間を短縮できる。なお、動き予測部１２１は、参照画像ＲＩＭＧの転送領域（例えば、ステップＳ５７０を実行するか否か）を、担当画像ＳＩＭＧ内の原画ブロックＳＢＫにより参照される頻度とデータ転送量とに基づいて決定してもよい。
【０１９３】
図１６は、図１４に示したブロック単位処理Ｓ６００の一例を示している。図１６の動作は、各符号化部１００により実行される。図４で説明した動作と同一または同様な動作については、詳細な説明を省略する。例えば、図１６の動作は、ステップＳ６８２が実行されることを除いて、図４の動作からステップＳ３００を省いた動作と同一または同様である。なお、図４のステップＳ３００は、図１４のステップＳ８００に対応する。
【０１９４】
ステップＳ６０２、Ｓ６１０、Ｓ６２０、Ｓ６３０、Ｓ６４０、Ｓ６５０、Ｓ６６０、Ｓ６７０、Ｓ６８０は、図４のステップＳ１００、Ｓ１１０、Ｓ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０、Ｓ１６０、Ｓ１７０、Ｓ１８０と同一または同様である。
【０１９５】
例えば、ステップＳ６２０では、動き予測部１２１の領域判定部１３４は、ステップＳ６１０で決定した探索範囲に基づく参照画像が自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像を含むか否かを判定する。なお、ステップＳ６２０、Ｓ６３０におけるメモリ１１０に記憶された参照画像ＲＩＭＧには、図１５のステップＳ５７０で取得した参照画像ＲＩＭＧも含まれる。
【０１９６】
参照画像ＲＩＭＧが不足しているとき（ステップＳ６２０のＹｅｓ）、動き予測部１２１の動作は、ステップＳ６３０に移る。一方、参照画像ＲＩＭＧが不足していないとき（ステップＳ６２０のＮｏ）、動き予測部１２１の動作は、ステップＳ６７０に移る。
【０１９７】
ステップＳ６３０では、例えば、動き予測部１２１の転送量算出部１３６は、探索範囲に基づく参照画像のうち、自身の符号化部１００のメモリ１１０に記憶された参照画像ＲＩＭＧの領域外の画像のデータ量を、データ転送量Ｄ１として算出する。
【０１９８】
ステップＳ６４０では、例えば、動き予測部１２１の転送量算出部１３６は、他の符号化部１００で探索処理を実行する場合のデータ転送量Ｄ２を算出する。なお、原画ブロックＳＢＫが図１５のステップＳ５８０で他の符号化部１００に既に転送されている場合、転送量算出部１３６は、原画ブロックＳＢＫのデータ転送量をデータ転送量Ｄ２に含めない。
【０１９９】
ここで、例えば、図１５のステップＳ５２０で決定した仮の探索範囲とステップＳ６１０で決定した探索範囲とが異なる場合、探索処理の依頼先の符号化部１００が図１５のステップＳ５８０での原画ブロックＳＢＫの転送先の符号化部１００と異なる場合がある。この場合、転送量算出部１３６は、原画ブロックＳＢＫのデータ転送量をデータ転送量Ｄ２に含める。
【０２００】
ステップＳ６５０では、動き予測部１２１の選択部１３８は、データ転送量Ｄ１がデータ転送量Ｄ２以下か否かを判定する。データ転送量Ｄ１がデータ転送量Ｄ２以下のとき（ステップＳ６５０のＹｅｓ）、動き予測部１２１は、ステップＳ６６０において、他の符号化部１００から参照画像ＲＩＭＧを取得する。一方、データ転送量Ｄ１がデータ転送量Ｄ２を超えているとき（ステップＳ６５０のＮｏ）、動き予測部１２１は、ステップＳ６８０において、探索処理依頼を実行する。
【０２０１】
ステップＳ６８２では、動き予測部１２１は、原画ブロックＳＢＫを他の符号化部１００に転送済みか否かを判定する。なお、探索処理の依頼先の符号化部１００が図１５のステップＳ５８０での原画ブロックＳＢＫの転送先の符号化部１００と異なる場合、動き予測部１２１は、原画ブロックＳＢＫを他の符号化部１００に転送済みでないと判定する。
【０２０２】
原画ブロックＳＢＫが他の符号化部１００に既に転送されているとき（ステップＳ６８２のＹｅｓ）、動き予測部１２１の動作は、ステップＳ６９０に移る。一方、原画ブロックＳＢＫが他の符号化部１００に転送されていないとき（ステップＳ６８２のＮｏ）、動き予測部１２１は、ステップＳ６８４において、原画ブロックＳＢＫを探索処理の依頼先の符号化部１００に送信する。
【０２０３】
ステップＳ６８４、Ｓ６９０、Ｓ７００、Ｓ７１０、Ｓ７２０、Ｓ７３０は、図４のステップＳ１８４、Ｓ１９０、Ｓ２００、Ｓ２１０、Ｓ２２０、Ｓ２３０と同一または同様である。例えば、ステップＳ７００では、動き予測部１２１は、他の符号化部１００の動き予測部１２１から受けた処理要求が探索処理の要求（探索処理依頼）か否かを判定する。処理要求が探索処理の要求であるとき（ステップＳ７００のＹｅｓ）、動き予測部１２１の動作は、ステップＳ７１０に移る。一方、処理要求が探索処理の要求でないとき（ステップＳ７００のＮｏ）、動き予測部１２１の動作は、ステップＳ７３０に移る。
【０２０４】
なお、動画像符号化装置１０の動作は、図１４から図１６に示した例に限定されない。例えば、動き予測部１２１は、ステップＳ６０２を実行した後でステップＳ６１０を実行する前にステップＳ６８２を実行し、ステップＳ６２０、Ｓ６３０、Ｓ６４０、Ｓ６５０、Ｓ６６０、Ｓ６８２、Ｓ６８４を省いてもよい。
【０２０５】
この場合、原画ブロックＳＢＫが他の符号化部１００に既に転送されているとき（ステップＳ６８２のＹｅｓ）、動き予測部１２１は、ステップＳ６８０、Ｓ６９０を実行し、ブロック単位処理を終了してもよい。そして、原画ブロックＳＢＫが他の符号化部１００に転送されていないとき（ステップＳ６８２のＮｏ）、動き予測部１２１は、ステップＳ６１０、Ｓ６７０を実行し、ブロック単位処理を終了してもよい。この場合、動き予測部１２１は、自身の符号化部１００のメモリ１１０に記憶されている参照画像ＲＩＭＧの範囲に探索範囲を制限して、探索処理を実行する。
【０２０６】
あるいは、動き予測部１２１は、図１０等に示したように、他の符号化部１００からの処理（参照画像ＲＩＭＧの転送処理、探索処理等）の受け入れ可能数ＣＡＰの上限値を設定してもよい。
【０２０７】
以上、図１２から図１６に示した実施形態の動画像符号化装置、動画像符号化方法および動画像符号化プログラムにおいても、図１から図１１に示した実施形態の動画像符号化装置、動画像符号化方法および動画像符号化プログラムと同様の効果を得ることができる。例えば、選択部１３８は、探索範囲に基づく参照画像が領域外画像を含む場合、探索処理を他の符号化部１００に実行させる処理と探索処理を自身で実行する処理とで、データ転送量の少ない方を選択する。これにより、動画像符号化装置１０は、符号化処理を並列に実行する符号化部１００間のデータ転送量の増加を抑制できる。
【０２０８】
さらに、この実施形態の動画像符号化装置１０は、原画像を縮小した縮小画像の動きベクトルを算出する縮小画像動き予測部５００を有している。例えば、各符号化部１００の動き予測部１２１は、原画像を縮小した縮小画像の動きベクトルを探索基点とした仮の探索範囲に基づいて、原画ブロックＳＢＫ、参照画像ＲＩＭＧ等の転送を符号化部１００間で予め実行する。これにより、この実施形態では、例えば、担当画像ＳＩＭＧ（縮小していない原画像を分割した部分画像）内の原画ブロックＳＢＫの探索処理において、符号化部１００間のデータ転送時間を短縮できる。
【０２０９】
図１７は、動画像符号化プログラムを実行するハードウエアの一例を示している。なお、図１から図１６で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。例えば、動画像符号化プログラムは、図１や図１２に示した動画像符号化装置１０の機能をコンピュータ装置ＣＰで実現する。
【０２１０】
コンピュータ装置ＣＰは、例えば、複数のプロセッサユニットＰＵと、メモリＭＥＭと、ハードディスク装置ＨＤＤと、入出力インタフェースＩＦと、光学ドライブ装置ＯＤＲとを有している。プロセッサユニットＰＵと、メモリＭＥＭと、ハードディスク装置ＨＤＤと、入出力インタフェースＩＦと、光学ドライブ装置ＯＤＲとは、バスＢＵＳを介して互いに接続されている。動画像符号化装置１０の機能は、例えば、プロセッサユニットＰＵと、メモリＭＥＭと、ハードディスク装置ＨＤＤと、入出力インタフェースＩＦとにより実現される。
【０２１１】
例えば、図１や図１２に示した各符号化部１００の機能は、各プロセッサユニットＰＵにより実現される。また、例えば、画像入力部２００およびストリーム出力部３００の機能は、入出力インタフェースＩＦ、メモリＭＥＭ、ハードディスク装置ＨＤＤ等により実現される。また、図１２に示した縮小画像動き予測部５００の機能は、複数のプロセッサユニットＰＵのいずれかにより実現される。
【０２１２】
光学ドライブ装置ＯＤＲは、光ディスク等のリムーバブルディスクＲＤＩＳを装着可能であり、装着したリムーバブルディスクＲＤＩＳに記録された情報の読み出しおよび記録を行う。また、コンピュータ装置ＣＰは、例えば、入出力インタフェースＩＦを介してコンピュータ装置ＣＰの外部と通信する。
【０２１３】
メモリＭＥＭは、例えば、コンピュータ装置ＣＰのオペレーティングシステムを格納している。また、メモリＭＥＭは、例えば、動画像符号化装置１０の動作をプロセッサユニットＰＵが実行するための動画像符号化プログラム等のアプリケーションプログラムを格納している。
【０２１４】
動画像符号化プログラム等のアプリケーションプログラムは、例えば、光ディスク等のリムーバブルディスクＲＤＩＳに記録して頒布することができる。例えば、コンピュータ装置ＣＰは、動画像符号化プログラム等のアプリケーションプログラムを、リムーバブルディスクＲＤＩＳから光学ドライブ装置ＯＤＲを介して読み出し、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。また、コンピュータ装置ＣＰは、動画像符号化プログラム等のアプリケーションプログラムを、インターネット等のネットワークに接続する通信装置を介してダウンロードし、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。
【０２１５】
動画像符号化プログラムを実行するハードウエアは、この例に限定されない。例えば、コンピュータ装置ＣＰは、光学ドライブ装置ＯＤＲが省かれてもよい。
【０２１６】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を備え、
前記各符号化部は、
前記部分画像を符号化する際に生成されるローカルデコード画像を記憶する記憶部と、
前記部分画像の動きベクトルを、所定のブロック毎に算出する動き予測部とを備え、
前記動き予測部は、
他の前記符号化部の前記動き予測部との間のデータ転送を実行する転送部と、
前記動きベクトルを算出する際の探索範囲を決定する範囲決定部と、
自身を含む前記符号化部の前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定する判定部と、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記符号化部から受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記符号化部に前記動きベクトルを算出させる第２処理とのうち、前記符号化部間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する選択部と、
を備えていることを特徴とする動画像符号化装置。
（付記２）
付記１に記載の動画像符号化装置において、
前記各符号化部は、他の前記符号化部からの処理要求の数が予め設定された上限値を超えた場合、前記処理要求を拒否する制御部を備え、
前記動き予測部は、前記処理要求が拒否された場合、前記記憶部に記憶された前記ローカルデコード画像の領域内に前記探索範囲を設定して、前記動きベクトルを算出する
ことを特徴とする動画像符号化装置。
（付記３）
付記１または付記２に記載の動画像符号化装置において、
前記各符号化部の前記動き予測部は、最初の前記ブロックの前記動きベクトルの算出を実行する前に取得可能な探索基点の情報に基づいて仮の探索範囲を決定し、前記符号化部間のデータ転送を前記仮の探索範囲に基づいて実行する前処理を、最初の前記ブロックの前記動きベクトルを算出する前に前記部分画像内の全ての前記ブロックに対して実行し、
前記前処理での前記データ転送では、前記動き予測部は、前記第１処理を前記仮の探索範囲に基づいて実行する場合の前記データ転送量である第１データ転送量が前記第２処理を前記仮の探索範囲に基づいて実行する場合の前記データ転送量である第２データ転送量以下のとき、前記仮の探索範囲に基づく参照画像に含まれる前記領域外の画像を他の前記符号化部から受信し、前記第１データ転送量が前記第２データ転送量を超えたとき、前記ブロックを他の前記符号化部に転送する
ことを特徴とする動画像符号化装置。
（付記４）
付記３に記載の動画像符号化装置において、
１画面を縮小した縮小画像の動きベクトルを、前記前処理が実行される前に算出する縮小画像動き予測部を備え、
前記各符号化部の前記動き予測部は、最初の前記ブロックの前記動きベクトルの算出を実行する前に取得可能な探索基点の情報として、前記縮小画像の動きベクトルを取得する
ことを特徴とする動画像符号化装置。
（付記５）
付記１ないし付記４のいずれか１項に記載の動画像符号化装置において、
前記第２処理は、前記探索基点を示す情報と前記ブロックとを、前記領域外の画像を有する前記符号化部に転送する処理と、前記領域外の画像を有する前記符号化部で算出された前記動きベクトルおよび差分画像を受信する処理とを含む
ことを特徴とする動画像符号化装置。
（付記６）
１画面を分割した複数の部分画像をそれぞれ符号化する複数の符号化部を用いた動画像符号化方法であって、
前記部分画像を符号化する際に生成されるローカルデコード画像を前記符号化部の記憶部に記憶し、
前記部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、
前記部分画像が割り当てられた前記符号化部の前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定し、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記符号化部から受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記符号化部に前記動きベクトルを算出させる第２処理とのうち、前記符号化部間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する
ことを特徴とする動画像符号化方法。
（付記７）
１画面を分割した複数の部分画像を複数のモジュールでそれぞれ符号化する処理をコンピュータに実行させる動画像符号化プログラムであって、
前記部分画像を符号化する際に生成されるローカルデコード画像を前記モジュールの記憶部に記憶し、
前記部分画像の動きベクトルを所定のブロック毎に算出する際の探索範囲を決定し、
前記部分画像が割り当てられた前記モジュールの前記記憶部に記憶された前記ローカルデコード画像の領域外の画像を前記探索範囲に基づく参照画像が含むか否かを判定し、
前記参照画像が前記領域外の画像を含む場合、前記参照画像に含まれる前記領域外の画像を前記領域外の画像を有する前記モジュールから受信して前記動きベクトルを算出する第１処理と、前記領域外の画像を有する前記モジュールに前記動きベクトルを算出させる第２処理とのうち、前記モジュール間のデータ転送量の少ない方を、前記参照画像に含まれる前記領域外の画像、前記動きベクトルを算出する際の探索基点を示す情報および前記ブロックのデータ量に基づいて選択する
処理をコンピュータに実行させる動画像符号化プログラム。
【０２１７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２１８】
１０‥動画像符号化装置；１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ‥符号化部；１１０、５３０‥メモリ；１２０、１２１、５２０‥動き予測部；１２２、１２６‥バッファ；１２４‥演算器；１２８‥転送部；１３０、１３１‥探索方法判定部；１３２‥範囲決定部；１３４‥領域判定部；１３６‥転送量算出部；１３８‥選択部；１４０、１４１‥制御部；１５０‥画面内予測部；１６０‥フィルタ部；１７０‥ＤＣＴ量子化部；１８０‥可変長符号化部；２００‥画像入力部；３００‥ストリーム出力部；４００‥インターコネクト；５００‥縮小画像動き予測部；５１０‥縮小処理部；ＣＰ‥コンピュータ装置；ＨＤＤ‥ハードディスク装置；ＩＦ‥入出力インタフェース；ＭＥＭ‥メモリ；ＯＤＲ‥光学ドライブ装置；ＰＵ‥プロセッサユニット
【図１】
2016001829.tif 000003
【図２】
2016001829.tif 000004
【図３】
2016001829.tif 000005
【図４】
2016001829.tif 000006
【図５】
2016001829.tif 000007
【図６】
2016001829.tif 000008
【図７】
2016001829.tif 000009
【図８】
2016001829.tif 000010
【図９】
2016001829.tif 000011
【図１０】
2016001829.tif 000012
【図１１】
2016001829.tif 000013
【図１２】
2016001829.tif 000014
【図１３】
2016001829.tif 000015
【図１４】
2016001829.tif 000016
【図１５】
2016001829.tif 000017
【図１６】
2016001829.tif 000018
【図１７】
2016001829.tif 000019