(57)【要約】【課題】一画像を複数に分割した分割領域のデータを複数の符号化器で並列に符号化処理を行う際に、符号化器間の符号化処理に要する時間の差を小さくする。【解決手段】判定部１６は、個々のエンコーダ１４のソース符号化処理部３０による前処理で得られた推定符号量に基づいて個々のエンコーダ１４による可変長符号化処理の分担を変更するか否か仮判定する。判定部１６は、分担を変更すると仮判定した場合は、分担の変更量に応じた符号化対象データを、可変長符号化処理を依頼する依頼側のエンコーダ１４から可変長符号化処理を請け負う請負側のエンコーダ１４へ転送させる。判定部１６は、仮判定以降の所定期間内に行われた可変長符号化処理の処理量に基づいて分担を変更するか否か本判定する。判定部１６は、本判定の結果に応じたエンコーダ１４に、分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる。【選択図】図２
2017017541.tif 000002
【特許請求の範囲】
【請求項１】
１画像を複数に分割した分割領域のデータに対して符号量の推定を含む符号化の前処理を行う前処理部と、前記前処理で得られた符号化対象データ及び推定符号量を記憶する記憶部と、前記符号化対象データに対して可変長符号化処理を行う可変長符号化処理部と、を各々有し、互いに並列に動作する複数の符号化器と、
個々の前記符号化器の前記前処理部による前処理で得られた前記推定符号量に基づいて、個々の前記符号化器による前記可変長符号化処理の分担を変更するか否か仮判定し、前記分担を変更すると仮判定した場合は、前記分担の変更量に応じた符号化対象データを、前記可変長符号化処理を依頼する依頼側の符号化器から可変長符号化処理を請け負う請負側の符号化器へ転送させ、前記仮判定以降の所定期間内に行われた前記可変長符号化処理の処理量に基づいて前記分担を変更するか否か本判定し、本判定の結果に応じた符号化器に、前記分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる判定部と、
を備えた画像符号化装置。
【請求項２】
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記推定符号量と、コンテキスト及び内部状態を表す情報の転送に要する時間と、に基づいて行う、
請求項１に記載の画像符号化装置。
【請求項３】
前記判定部は、前記本判定の結果に応じた符号化器が前記請負側の符号化器の場合は、前記分担の変更量に応じた符号化対象データに対応するコンテキスト及び内部状態を表す情報を前記依頼側の符号化器から前記請負側の符号化器に転送させる、
請求項１または請求項２に記載の画像符号化装置。
【請求項４】
前記判定部は、前記本判定の結果に応じた符号化器が前記依頼側の符号化器の場合は、前記請負側の符号化器に転送させた前記分担の変更量に応じた符号化対象データを前記請負側の符号化器で破棄させる、
請求項１から請求項３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記複数の符号化器間の各々における前記可変長符号化処理の処理負荷または処理時間が均等に近付くか否か、または前記複数の符号化器の各々における前記可変長符号化処理の処理時間が所定の時間以内になるか否かに基づいて行う、
請求項１から請求項４のいずれか１項に記載の画像符号化装置。
【請求項６】
前記分担の変更量に応じた符号化対象データは、前記分割領域よりも小面積の領域のデータである、
請求項１から請求項５のいずれか１項に記載の画像符号化装置。
【請求項７】
コンピュータにより、
１画像を複数に分割した分割領域のデータに対して符号量の推定を含む符号化の前処理を行う前処理部と、前記前処理で得られた符号化対象データ及び推定符号量を記憶する記憶部と、前記符号化対象データに対して可変長符号化処理を行う可変長符号化処理部と、を各々有し、互いに並列に動作する複数の符号化器に対して、
個々の前記符号化器の前記前処理部による前処理で得られた前記推定符号量に基づいて、個々の前記符号化器による前記可変長符号化処理の分担を変更するか否か仮判定し、
前記分担を変更すると仮判定した場合は、前記分担の変更量に応じた符号化対象データを、前記可変長符号化処理を依頼する依頼側の符号化器から可変長符号化処理を請け負う請負側の符号化器へ転送させ、
前記仮判定以降の所定期間内に行われた前記可変長符号化処理の処理量に基づいて前記分担を変更するか否か本判定し、
本判定の結果に応じた符号化器に、前記分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる、
ことを含む処理を実行させる画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置及び画像符号化方法に関する。
【背景技術】
【０００２】
複数の符号化器により、一画像を複数に分割した分割領域毎に並列に符号化処理を行う技術が知られており、個々の符号化器における符号化処理の処理時間を調整する技術も知られている。このような技術の一例として、複数の可変長符号化手段の符号化状態を監視して、可変長符号化処理を行うのに最適な可変長符号化手段を予測する技術がある。また、符号化領域毎に算出したシーン変化度に基づいて符号化処理の処理時間を予測する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−７５５５号公報
【特許文献２】特開２００７−３２５０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、個々の符号化器における符号化処理の処理時間の差が十分には小さくならず、一画像の符号化が完了するまでの全体処理時間が短縮されない場合がある。特に、複数の符号化器により共有され、共通に使用される共有メモリを有さない場合、或るデータを当初予定していた符号化器と異なる符号化器で符号化しようとすると、符号化器の間でデータを転送する必要がある。そのため、このデータ転送に要する時間が全体処理時間にオーバヘッドとして加わることになる。
【０００５】
本発明は一つの側面として、一画像を複数に分割した分割領域のデータを複数の符号化器で並列に符号化処理を行う際に、符号化器間の符号化処理に要する時間の差を小さくすることを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、互いに並列に動作する複数の符号化器と、判定部と、を備えた画像符号化装置である。複数の符号化器の各々は、１画像を複数に分割した分割領域のデータに対して符号量の推定を含む符号化の前処理を行う前処理部と、前記前処理で得られた符号化対象データ及び推定符号量を記憶する記憶部と、を有する。また、複数の符号化器の各々は、前記符号化対象データに対して可変長符号化処理を行う可変長符号化処理部と、を有する。判定部は、個々の前記符号化器の前記前処理部による前処理で得られた前記推定符号量に基づいて、個々の前記符号化器による前記可変長符号化処理の分担を変更するか否か仮判定する。また、判定部は、前記分担を変更すると仮判定した場合は、前記分担の変更量に応じた符号化対象データを、前記可変長符号化処理を依頼する依頼側の符号化器から可変長符号化処理を請け負う請負側の符号化器へ転送させる。また、判定部は、前記仮判定以降の所定期間内に行われた前記可変長符号化処理の処理量に基づいて前記分担を変更するか否か本判定する。さらに判定部は、本判定の結果に応じた符号化器に、前記分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる。
【発明の効果】
【０００７】
一つの側面として、一画像を分割した複数の領域の各々に対応する符号化器で各領域の符号化処理を行う際に、符号化器間の符号化処理に要する時間の差を抑制することができる、という効果を有する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る画像符号化装置による画像の符号化について説明するための図である。
【図２】第１実施形態に係る画像符号化装置の一例の概略構成を示す図である。
【図３】第１実施形態に係る画像符号化装置として機能するコンピュータの概略構成を示すブロック図である。
【図４】第１実施形態に係る画像符号化装置における基本的なデータの流れを説明する図である。
【図５】第１実施形態に係るエンコーダ及び判定部の動作を説明するための図である。説明する図である。
【図６】第１実施形態に係る画像符号化装置の判定部で行われる画像符号化処理制御の一例のフローチャートである。
【図７】第１実施形態に係る画像符号化装置における仮判定処理に関するデータの流れを説明する図である。
【図８】第１施形態の画像符号化処理制御における仮判定処理の一例のフローチャートである。
【図９】第１実施形態の画像符号化処理制御における本判定処理の一例のフローチャートである。
【図１０】第１実施形態における本判定処理に関するデータの流れを表す図である。
【図１１】第２実施形態に係るエンコーダ及び判定部の動作を説明するための図である。
【図１２】第２実施形態に係る画像符号化装置の判定部で行われる画像符号化処理制御の一例のフローチャートである。
【図１３】第２実施形態の画像符号化処理制御における第１仮判定処理の一例のフローチャートである。
【図１４】第２実施形態の画像符号化処理制御における本判定処理の一例のフローチャートである。
【図１５】第２実施形態の画像符号化処理制御における第２仮判定処理の一例のフローチャートである。
【図１６】エンコーダを３つ備えた場合の画像符号化装置の概略構成を示す図である。
【図１７】図１６に示した画像符号化装置における画像符号化処理制御を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して開示の技術の一例を詳細に説明する。
［第１実施形態］
まず、本実施形態に係る画像符号化装置の概略について説明する。図１には、本実施形態の画像符号化装置１０による画像の符号化について説明するための図を示す。また、図２には、本実施形態の画像符号化装置１０の一例の概略構成を示す。なお、本実施形態では、一例として、動画像に含まれる一つの画像Ｇ（１フレーム）を２つに分割した領域毎に、符号化器であるエンコーダ１４０、１４１が設けられている場合を示している。
【００１０】
図１、２に示した本実施形態の画像符号化装置１０は、画像入力部１２、エンコーダ１４０、１４１、判定部１６、データ転送接続部１８、及びストリーム結合部２０を備える。なお、エンコーダ１４０、１４２は同様の構成であるため、個々を区別する場合は、個々を示す符号「０」、「１」を付して称するが、両者を区別せずに総称する場合は、「エンコーダ１４」と称する。また、エンコーダ１４が有する各部等についても、個々を区別する場合は、個々を示す符号「０」、「１」を付して称するが、両者を区別せずに総称する場合は個々を示す符号を省略する。
【００１１】
画像符号化装置１０の画像入力部１２には、動画像データに含まれるフレーム毎の画像（静止画像）Ｇが順次、入力される。なお、画像入力部１２に動画像データが入力され、画像入力部１２がフレーム毎の画像Ｇを生成・出力してもよい。
【００１２】
画像入力部１２は、１フレーム（１枚）の画像Ｇを、スライスまたはタイル境界に応じて２つの領域（分割領域Ａ、Ｂ）に分割する。また、画像入力部１２は、分割領域Ａに対応する画像データをエンコーダ１４０に、分割領域Ｂに対応する画像データをエンコーダ１４１に出力する。
【００１３】
エンコーダ１４は、入力された分割領域に対応する画像データを符号化したデータ（部分ストリーム）をデータ転送接続部１８に出力する。なお、本実施形態では、具体例としてエンコーダ１４がＬＳＩ（Large Scale Integration）によるハードウエアエンコーダである場合について説明するが、エンコーダ１４は、ソフトウエアエンコーダであってもよい。
【００１４】
図２に示すようにエンコーダ１４は、ソース符号化処理部３０、可変長符号化処理部３２、メモリ３４、及びデータ転送部３６を備える。
【００１５】
前処理部の一例であるソース符号化処理部３０は、入力された画像データに対して可変長符号化処理部３２で行われる可変長符号化処理の前処理を行う機能を有し、具体的な処理内容は、エンコーダ１４の処理内容に準じる。具体例として画像符号化装置１０がＭＰＥＧ規格に準じる場合、ソース符号化処理部３０は、入力された画像データ（入力画像）と予測用参照画像とから動きベクトルを検出する。そして、ソース符号化処理部３０は、当該動きベクトルにより予測用参照画像が動き補償され、予測画像を生成する。さらに、ソース符号化処理部３０は、入力画像と予測画像との差分を生成し、当該差分に対して離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）や量子化を行い符号化対象データを生成して出力する。また、ソース符号化処理部３０は、符号化対象データに対して逆量子化及び逆ＤＣＴを行うことにより、差分データを復元し、予測画像との和をとることにより、次回の予測画像の生成に用いられる新しい予測用参照画像を生成する。
【００１６】
一般的に、ソース符号化処理部３０で行われる前処理は、画像（分割画像）の面積に応じて処理量が増加する。そのため、前処理に要する時間は、処理する画像（分割画像）の面積が大きくなるのに応じて増加する。
【００１７】
また、本実施形態のソース符号化処理部３０は、符号量（推定符号量）を推定して出力する機能を有する。本実施形態において推定符号量とは、可変長符号化処理部３２による可変長符号化処理の処理結果である部分ストリームのデータ量を可変長符号化処理前に推定した値である。推定符号量の推定方法は特に限定されず、例えば、係数値の桁数やテーブル参照等からＢＩＮ数（２値化データ量）及び推定符号量を見積もる方法が挙げられる。
【００１８】
可変長符号化処理部３２は、ソース符号化処理部３０で生成された符号化対象データに対してＣＡＢＡＣ（Context Adaptive Binary Arithmetic Coding）等により可変長符号化処理を行って符号化したデータ（部分ストリーム）を出力する機能を有する。
【００１９】
一般的に可変長符号化処理部３２で行われる可変長符号化処理は、出力されるビット量に応じて処理量が増える。そのため、可変長符号化処理に要する時間は、処理する画像（分割画像）の面積にかかわらず、画像（画像データ）の内容に応じて変化する。
【００２０】
また、可変長符号化処理部３２は、可変長符号化処理に用いるコンテキスト、及び内部状態を表す情報（以下、単に「内部状態」）という）のメモリ３４への退避及び復元を行う機能を有する。
【００２１】
メモリ３４は、記憶部の一例であり、推定符号量保存領域４０、符号化対象データ保存領域４２、部分ストリーム保存領域４４、及びコンテキスト・内部状態保存領域４６を備える。
【００２２】
推定符号量保存領域４０は、ソース符号化処理部３０から出力された推定符号量が保存される領域である。符号化対象データ保存領域４２は、ソース符号化処理部３０から出力された符号化対象データが保存される領域である。部分ストリーム保存領域４４は、可変長符号化処理部３２が可変長符号化処理を行った符号化結果である部分ストリームが保存される領域である。コンテキスト・内部状態保存領域４６は、メモリ３４に退避されたコンテキスト及び内部状態が保存される領域である。
【００２３】
エンコーダ１４のデータ転送部３６は、判定部１６の制御に応じて、指示されたデータをデータ転送接続部１８を介して他方のエンコーダ１４に転送する機能を有する。なお、データ転送部３６によるデータ転送は、ソース符号化処理部３０による前処理及び可変長符号化処理部３２による可変長符号化処理と並列に実行される。
【００２４】
判定部１６は、推定符号量に基づいて可変長符号化処理部３２における可変長符号化処理の処理時間を予測する機能を有する。処理時間を予測する方法は特に限定されない。例えば、ＣＡＢＡＣの処理時間（サイクル数）は、ＢＩＮ数に応じて増加する。そのため、簡易的な方法として、１ビットの符号化データの生成に要する時間（Ｎサイクル）を予め算出し、当該時間とビット量とを掛け合わせることで処理時間を見積もることができる。従って、上述したソース符号化処理部３０における推定符号量を算出する過程で得られるＢＩＮ数の推定値から、処理時間を予測することができる。
【００２５】
また、判定部１６は、コンテキスト及び内部状態を他方のエンコーダ１４に転送するのに要する時間を考慮し、個々のエンコーダ１４による可変長符号化処理の分担を変更するか否かを判定する機能を有する。以下では、可変長符号化処理を依頼する側のエンコーダ１４を「依頼側」といい、可変長符号化処理を請け負う側のエンコーダ１４を「請負側」という。
【００２６】
本実施形態のエンコーダ１４では、可変長符号化処理の分担を変更する場合、エンコーダ１４間で可変長符号化処理にかかる処理負荷が均等になるように可変長符号化処理の分担を変更する。そのため、本実施形態のエンコーダ１４では、ソース符号化処理部３０の処理結果である１個の分割領域の符号化対象データのうちの一部に対する可変長符号化処理を請負側のエンコーダ１４に依頼する場合が多い。ここで依頼する符号化対象データのうちの一部は、分割領域よりも面積の小さい領域に対応する符号化対象データである。
【００２７】
符号化対象データに対する可変長符号化処理を請負側のエンコーダ１４に依頼する場合、請負側のエンコーダ１４で可変長符号化処理を行うため必要なデータを依頼側から請負側に転送する必要がある。このように依頼側から請負側へ転送されるデータのうち、事前に転送しておくことができないデータの転送時間は１フレーム分の画像の処理時間にオーバヘッドとして加わる。以下、本実施形態では、事前に転送しておくことができないデータの転送時間自体を「オーバヘッド」という。
【００２８】
事前に転送しておくことができないデータとは、依頼側で処理する分の可変長符号化処理が終了していないと転送できないデータである。可変長符号化処理部３２で行われる可変長符号化処理は、処理毎に更新されるコンテキスト及び内部状態の影響を受ける。そのため、本実施形態のエンコーダ１４では、コンテキスト及び内部状態に関するデータの転送等に要する時間がオーバヘッドとなる。具体例としてオーバヘッドは、コンテキストの転送時間、内部状態の転送時間、及びコンテキストの復元時間を含む。なお、本実施形態においてコンテキストとは、ＳｔａｔｅＩｄｘと呼ばれるシンボル生起確率の遷移状態、及びＭＰＳと呼ばれる「０」と「１」のうち出現する確率が高いシンボルに関する情報を含む。
【００２９】
また、内部状態とは、例えば、動画像の圧縮規格であるＨ．２６５に対応する場合、勧告書に記載されている変数に内部状態が準拠するため、当該変数を含む。当該変数の具体例としては、ｉＶｌＬｏｗ、ｉｖｌＣｕｒｒＲａｎｇｅ、ｆｉｒｓｔＢｉｔＦｌａｇ、ｂｉｔｓＯｕｔｓｔａｎｄｉｇ、及びＢｉｎＣｏｕｎｔｓＩｎＮａｌＵｎｉｔｓ等が挙げられる。また、内部状態は、レンジ（ｃｏｄＲａｎｇｅ）及びオフセット（ｃｏｄＬｏｗ）を含む。
【００３０】
さらに内部状態は、何ビット目から出力するかを表す情報を含む。具体的には、依頼側のエンコーダ１４で処理したビットストリームの出力アドレスと出力ビット数とを含む。なお、ビットストリームの出力アドレスと出力ビット数とは、依頼側のエンコーダ１４の出力ビットストリームと請負側のエンコーダ１４の出力ビットストリームとを結合する際に必要になる。
【００３１】
本実施形態の判定部１６は、エンコーダ１４間で可変長符号化処理の分担を変更するか否かについて仮判定と本判定とを行う機能を有する。また、判定部１６は、仮判定で可変長符号化処理の分担を変更すると判定した場合は、処理を請け負ってもらう分の符号化対象データを事前に先行して請負側のエンコーダ１４に転送するよう依頼側のエンコーダ１４に指示する機能を有する。
【００３２】
データ転送接続部１８は、エンコーダ１４間で上記事前に転送する符号化対象データを含む各種データ（詳細後述）を転送する機能を有する。
【００３３】
ストリーム結合部２０は、各エンコーダ１４で生成された部分ストリームを結合して１フレームの画像Ｇに対応するビットストリームを生成して画像符号化装置１０外に出力する機能を有する。
【００３４】
なお、画像符号化装置１０は、例えば図３に示すコンピュータ５０で実現することができる。より具体的には、画像符号化装置１０はサーバとして機能するコンピュータ５０で実現することができる。コンピュータ５０は、ＣＰＵ（Central Processing Unit）５２、メモリ５４、不揮発性の記憶部５６、及びＩ／Ｆ５８を備える。ＣＰＵ５２、メモリ５４、記憶部５６、及びＩ／Ｆ５８は、バス５９を介して互いに接続されている。Ｉ／Ｆ５８と、エンコーダ１４とは接続される。
【００３５】
記憶部５６はＨＤＤ（Hard Disk Drive）やフラッシュメモリ等によって実現できる。記憶媒体としての記憶部５６には、コンピュータ５０を画像符号化装置１０として機能させるための画像符号化プログラム６０が記憶されている。ＣＰＵ５２は、画像符号化プログラム６０を記憶部５６から読み出してメモリ５４に展開し、画像符号化プログラム６０が有するプロセスを実行する。
【００３６】
画像符号化プログラム６０は、判定プロセス６２を有する。ＣＰＵ５２は、画像符号化プログラム６０を実行することで、判定部１６として動作する。
【００３７】
これにより、画像符号化プログラム６０を実行したコンピュータ５０が、画像符号化装置１０として機能する。
【００３８】
なお、コンピュータ５０は、いわゆるデスクトップ型のパーソナルコンピュータに限定されない。コンピュータ５０は、ラップトップ型のパーソナルコンピュータであってもよいし、タブレット端末やスマートフォンに代表されるＰＤＡ（Personal Digital Assistants：携帯情報端末装置）等であってもよい。
【００３９】
なお、画像符号化装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００４０】
次に、本実施形態に係る画像符号化装置１０の作用について説明する。
【００４１】
まず、本実施形態のエンコーダ１４における基本的なデータの流れについて説明する。図４には、画像符号化装置１０における基本的なデータの流れを説明する図を示す。各エンコーダ１４では、ソース符号化処理部３０が入力された領域の画像データに対して前処理を行った結果である符号化対象データがメモリ３４の推定符号量保存領域４０に保存される。また、ソース符号化処理部３０が算出した推定符号量がメモリ３４の推定符号量保存領域４０に保存される。可変長符号化処理部３２が符号化対象データ保存領域４２に保存されている符号化対象データに対して可変長符号化処理を行った結果である部分ストリームが、メモリ３４の部分ストリーム保存領域４４に保存される。両エンコーダ１４から出力された部分ストリームは、データ転送接続部１８を介してストリーム結合部２０に入力され、ストリーム結合部２０で結合されたビットストリームが画像符号化装置１０の外部に出力される。
【００４２】
次に、本実施形態に係る画像符号化装置１０のエンコーダ１４で行われる符号化及び判定部１６で行われる画像符号化処理制御について詳細に説明する。
【００４３】
図５には、エンコーダ１４及び判定部１６の動作を説明するための図を示す。なお、本実施形態の画像符号化処理制御では、２フレームを１つの単位として、可変長符号化処理に要する時間（または負荷）が均等となるように可変長符号化処理の分担を変更するか否かの仮判定及び本判定を行う場合について説明する。
【００４４】
まず、エンコーダ１４０では、ソース符号化処理部３００がフレーム１の分割領域Ａ（以下、「フレームＡ１」という）の画像データ、フレームＡ２の画像データを順次前処理して符号化対象データを生成する。生成された符号化対象データは、メモリ３４０の符号化対象データ保存領域４２０に保存される。また、ソース符号化処理部３００は、推定符号量を算出する。算出された推定符号量は、メモリ３４０の推定符号量保存領域４００に保存される。
【００４５】
同様に、エンコーダ１４１では、ソース符号化処理部３０１がフレーム１の分割領域Ｂ（以下、「フレームＢ１」という）の画像データ、フレームＢ２の画像データを順次前処理して符号化対象データを生成する。生成された符号化対象データは、メモリ３４１の符号化対象データ保存領域４２１に保存される。また、ソース符号化処理部３０１は、推定符号量を算出する。算出された推定符号量は、メモリ３４１の推定符号量保存領域４０１に保存される。
【００４６】
一方、判定部１６では、画像符号化処理制御が実行される。図６には、画像符号化装置１０の判定部１６で行われる画像符号化処理制御の一例のフローチャートを示す。図６に示した画像符号化処理制御は、例えば、画像符号化装置１０に一連の動画像データが入力された場合等に実行される。
【００４７】
ステップＳ１００で判定部１６は、符号化する対象のフレームを識別するための変数Ｎを１（Ｎ＝１）とする。
【００４８】
次のステップＳ１０２で判定部１６は、フレームＮが最終フレームであるか否かを判断する。フレームＮが最終フレームの場合（総フレーム数が１の場合）は、肯定判定となりステップＳ１３２へ移行する。一方、フレームＮが最終フレームではない場合は、否定判定となりステップＳ１０４へ移行する。
【００４９】
次のステップＳ１０４で判定部１６は、フレームＮの画像データに対する前処理が完了した以降のタイミングで、フレームＮのエンコーダ１４毎の可変長符号化処理時間を、上述したように推定符号量に基づいて予測する。具体的には、判定部１６は仮判定処理に関するデータの流れを表す図７に示すように、エンコーダ１４０の推定符号量保存領域４００から取得した推定符号量に基づいて可変長符号化処理部３２０における可変長符号化処理時間を予測する。また同様に、エンコーダ１４１の推定符号量保存領域４０１から取得した推定符号量に基づいて可変長符号化処理部３２１における可変長符号化処理時間を予測する。
【００５０】
次のステップＳ１０６で判定部１６は、フレームＮ＋１の画像データに対する前処理が完了した以降のタイミングで、フレームＮ＋１のエンコーダ１４毎の可変長符号化処理時間を、ステップＳ１０４と同様に推定符号量に基づいて予測する。
【００５１】
次のステップＳ１０８で判定部１６は、仮判定処理を行う。図８には本実施形態の仮判定処理の一例のフローチャートを示す。
【００５２】
ステップＳ１５０で判定部１６は、予測したフレームＮとフレームＮ＋１の可変長符号化処理の予測時間の合計値をエンコーダ１４毎に算出する。図５に示した場合において、画像符号化処理制御を開始して最初の仮判定Ｋ１では、エンコーダ１４０については、フレームＡ１とフレームＡ２との予測時間の合計値を算出する。また、エンコーダ１４１については、フレームＢ１とフレームＢ２との予測時間の合計値を算出する。
【００５３】
次のステップＳ１５２で判定部１６は、予測時間の差分値を算出し、算出した差分値に基づいて処理分割ＣＴＢ（Coding Tree Block）位置を算出する。本実施形態では、エンコーダ１４間で予測時間が均等になるようにＣＴＢ位置を算出する。
【００５４】
次のステップＳ１５４で判定部１６は、オーバヘッドを算出する。
【００５５】
次のステップＳ１５６で判定部１６は、上記ステップＳ１５２で算出した差分値と、オーバヘッドとを比較し、事前転送（可変長符号化処理の分担の変更）を行うか否かを仮判定した後、仮判定処理を終了する。オーバヘッドよりも差分値が大きい場合、可変長符号化処理の分担を変更する方が変更しない場合よりも、エンコーダ１４間で可変長符号化処理の処理時間の差が大きくなると推測される。そのため、本実施形態の判定部１６は、差分値がオーバヘッドよりも大きい（差分値＞オーバヘッド）場合は、事前転送（可変長符号化処理の分担の変更）を行うと判定する。一方、判定部１６は、差分値がオーバヘッド以下（差分値≦オーバヘッド）の場合は、事前転送（可変長符号化処理の分担の変更）を行わないと判定する。なお、本実施形態に限らず、差分値とオーバヘッドとが等しい場合は、事前転送（可変長符号化処理の分担の変更）を行うと判定してもよい。
【００５６】
ステップＳ１０８の仮判定処理が終了するとステップＳ１１０へ移行する。
【００５７】
ステップＳ１１０で判定部１６は、仮判定処理の結果に基づいて事前転送を実行するか否かを判断する。事前転送を行わない、すなわち、可変長符号化処理の分担の変更を行わない場合は、否定判定となりステップＳ１２６へ移行する。本実施形態では、可変長符号化処理の分担の変更を行わない場合は、本判定処理は行わない（図５、仮判定Ｋ２及び本判定Ｈ２参照）。
【００５８】
一方、事前転送を行う、すなわち、可変長符号化処理の分担の変更を行う場合は、肯定判定となりステップＳ１１２へ移行する。
【００５９】
ステップＳ１１２で判定部１６は、分担の変更量に応じた符号化対象データ及び当該分担変更データに隣接する符号化対象データを請負側に転送するよう、依頼側に指示する。以下では、分担の変更量に応じた符号化対象データを「分担変更データ」という。また、当該分担変更データに隣接する符号化対象データを「隣接データ」という。
なお、本実施形態では、可変長符号化処理部３２において可変長符号化処理を行う際に必要となる隣接する符号化ユニット（ＣＵ）やマクロブロック（ＭＢ）の情報である隣接データも事前転送を行う。隣接データの具体例としては、動画像データの圧縮規格であるＨ．２６５に対応する場合、ｃｔｘｉｄｘ（コンテキストインデックス）の算出に分担変更データの上及び左のＣＵ情報が必要になるため、これらが隣接データとして挙げられる。
【００６０】
図５に示した具体例では、エンコーダ１４０の方がエンコーダ１４１よりも予測値が大きくまた、予測値の差分値がオーバヘッドよりも大きいため、可変長符号化処理の分担の変更を行うと判定部１６が判定した場合を表している。判定部１６は、フレームＡ１に対応する符号化対象データのうち、エンコーダ１４０に可変長符号化処理の分担を変更する分担変更データＡ１（２）をエンコーダ１４１に転送するよう、エンコーダ１４０に指示する。
【００６１】
当該指示により、図７に示したようにエンコーダ１４０のデータ転送部３６０は、メモリ３４０の符号化対象データ保存領域４２０から読み出された分担変更データＡ１（２）及び隣接データをデータ転送接続部１８に出力する。エンコーダ１４１では、データ転送接続部１８を介して入力された分担変更データＡ１（２）及び隣接データがメモリ３４１の符号化対象データ保存領域４２１に保存される。
【００６２】
次のステップＳ１１４で判定部１６は、フレームＮの可変長符号化処理を各エンコーダ１４で開始させる。また、判定部１６は、いずれか一方の可変長符号化処理部３２における可変長符号化処理が終了するのを待ち合わせる。すなわち、いずれか一方のエンコーダ１４において、フレームＮの符号化対象データの可変長符号化処理が終了するまで待機する。いずれか一方のエンコーダ１４において可変長符号化処理が終了すると、判定部１６は、他方のエンコーダ１４における可変長符号化処理を一旦終了させる。
【００６３】
次のステップＳ１１６で判定部１６は、本判定処理を行う。図９には本実施形態の本判定処理の一例のフローチャートを示す。
【００６４】
ステップＳ１７０で判定部１６は、符号化対象データ保存領域４２に保存されている未だ可変長符号化処理が行われていない符号化対象データの可変長符号化処理の予測時間の合計値をエンコーダ１４毎に算出する。図５に示した場合において、画像符号化処理制御を開始して最初の本判定Ｈ１では、エンコーダ１４０については、フレームＡ１の残りであるフレームＡ１（２）とフレームＡ２の予測時間の合計値を算出する。また、エンコーダ１４１については、フレームＢ１は可変長符号化処理が終了しているため、フレームＢ２の予測時間のみを算出する。
【００６５】
なお、フレームＡ１の残りであるフレームＡ１（２）は、可変長符号化処理が予測時間通りに行われない場合があるため、事前に転送した分担変更データとデータ量が異なる場合がある。例えば、予測していたよりも多くの符号化対象データをエンコーダ１４０の可変長符号化処理部３２０が符号化処理した場合は、フレームＡ１の残りであるフレームＡ１（２）は事前に転送した分担変更データよりもデータ量が少なくなる。
【００６６】
そこで、次のステップＳ１７２で判定部１６は、予測時間の差分値を算出し、算出した差分値に基づいて新たに処理分割ＣＴＢ位置を算出する。なお、本判定処理においても、エンコーダ１４間で予測時間が均等になるようにＣＴＢ位置を算出する。
【００６７】
次のステップＳ１７４で判定部１６は、オーバヘッドを算出する。
【００６８】
次のステップＳ１７６で判定部１６は、上記ステップＳ１７２で算出した差分値と、オーバヘッドとを比較し、可変長符号化処理の分担の変更を行うか否かを本判定した後、本判定処理を終了する。上述した仮判定処理の場合と同様に、オーバヘッドよりも差分値が大きい場合は、可変長符号化処理の分担の変更を行うと判定する。一方、判定部１６は、差分値がオーバヘッド以下の場合は、可変長符号化処理の分担の変更を行わないと判定する。図５では、本判定Ｈ１で、可変長符号化処理の分担の変更を行う（依頼側がエンコーダ１４０、請負側がエンコーダ１４１）と判定した場合を示している。
【００６９】
ステップＳ１１６の本判定処理が終了するとステップＳ１１８へ移行する。
【００７０】
ステップＳ１１８で判定部１６は、本判定処理の結果に基づいて可変長符号化処理の分担の変更を行うか否かを判断する。可変長符号化処理の分担の変更を行わない場合は、否定判定となりステップＳ１２２へ移行する。
【００７１】
ステップＳ１２２で判定部１６は、請負側のエンコーダ１４に転送した分担変更データ及び隣接データを破棄するよう請負側のエンコーダ１４に指示した後、ステップＳ１２４へ移行する。請負側のエンコーダ１４は、当該指示に応じて、メモリ３４の符号化対象データ保存領域４２に保存した分担変更データ及び隣接データを破棄する。
【００７２】
一方、可変長符号化処理の分担を変更する場合は、肯定判定となりステップＳ１２０へ移行する。ステップＳ１２０で判定部１６は、依頼側のエンコーダ１４にコンテキスト及び内部状態を転送するよう指示する。本判定処理に関するデータの流れを表す図１０を参照して、図５の本判定処理Ｈ１の場合について具体的に説明する。判定部１６は、依頼側のエンコーダ１４０の可変長符号化処理部３２０にコンテキスト及び内部状態をメモリ３４０のコンテキスト・内部状態保存領域４６０に退避させるよう指示する。なお、コンテキスト及び内部状態を退避するタイミングは本タイミングに限らず、例えば、本判定処理前に行ってもよい。さらに、判定部１６は、データ転送部３６０にコンテキスト・内部状態保存領域４６０に退避されたコンテキスト及び内部状態を請負側のエンコーダ１４１に転送するよう指示する。
【００７３】
当該指示により、フレームＡ１（１）の可変長符号化処理により得られ、フレームＡ１（２）の可変長符号化処理に要するコンテキスト及び内部状態がエンコーダ１４１にデータ転送接続部１８を介して入力される。
【００７４】
エンコーダ１４１のデータ転送部３６１は、入力されたコンテキスト及び内部状態をメモリ３４１のコンテキスト・内部状態保存領域４６１に保存する。
【００７５】
次のステップＳ１２４で判定部１６は、本判定処理の結果に基づいて可変長符号化処理を各エンコーダ１４で開始させる。各エンコーダ１４は、判定部１６の指示に基づいて可変長符号化処理を開始する。ここで請負側のエンコーダ１４１は、部分ストリーム保存領域４４１から復元したコンテキスト及び内部状態を用いてフレームＡ１（２）の可変長符号化処理を行う。
【００７６】
また、判定部１６は、両エンコーダ１４で可変長符号化処理が終了するのを待ち合わせる。本実施形態では、両エンコーダ１４でフレームＮ１の可変長符号化処理が終了するまで待機する。
【００７７】
次のステップＳ１２６で判定部１６は、フレームＮ＋１が最終フレームであるか否かを判断する。フレームＮ＋１が画像符号化装置１０に入力される一連の動画像の最終フレームである場合は、肯定判定となり、本画像符号化処理制御を終了する。一方、最終フレームではない場合は、否定判定となり、ステップＳ１２８へ移行する。
【００７８】
ステップＳ１２８で判定部１６は、変数Ｎを２だけインクリメント（Ｎ＝Ｎ＋２）した値とする。
【００７９】
次のステップＳ１３０で判定部１６は、フレームＮ（Ｎは奇数）が最終フレームであるか否かを判断する。最終フレームではない場合は、否定判定となりステップＳ１０４に戻り、本画像符号化処理制御を繰り返す。一方、画像符号化装置１０に入力された総フレーム数が奇数の場合は、肯定判定となり、ステップＳ１３２へ移行する。
【００８０】
ステップＳ１３２で判定部１６は、フレームＮの可変長符号化処理を各エンコーダ１４に開始させた後、本画像符号化処理制御を終了する。
【００８１】
なお、本実施形態では、予測時間の差分値に基づいて処理分割ＣＴＢ位置を算出していたが、処理分割ＣＴＢ位置の算出方法は、エンコーダ１４間で可変長符号化処理に要する時間が均等に近付くものであれば特に限定されない。例えば、予測時間の差分値にオーバヘッドを加味してもよく、予測時間の差分値にオーバヘッドを加算した時間をエンコーダ１４の数で除した値に基づいて、処理分割ＣＴＢ位置を算出してもよい。
［第２実施形態］
本実施形態では、動画像データの１フレームを１つの単位として、可変長符号化処理に要する時間が所定の時間内に納まるように、可変長符号化処理の分担を変更するか否か仮判定及び本判定を行う場合について説明する。なお、画像符号化装置１０の構成は、第１実施形態と同様であるため説明を省略する。
【００８２】
本実施形態に係る画像符号化装置１０の作用について説明する。本実施形態の画像符号化装置１０では、判定部１６で行われる画像符号化処理制御が第１実施形態と異なる。
【００８３】
本実施形態に係る画像符号化装置１０のエンコーダ１４で行われる符号化及び判定部１６で行われる画像符号化処理制御について詳細に説明する。図１１には、本実施形態に係るエンコーダ１４及び判定部１６の動作を説明するための図を示す。
【００８４】
本実施形態の判定部１６で行われる画像符号化処理制御では、上述したようにフレーム毎に、可変長符号化処理に要する時間（実際には予測時間）がフレーム処理周期を超える場合には、可変長符号化処理の分担を変更する場合について説明する。なお、本実施形態におけるフレーム処理周期は、所定の時間の一例であり、画像符号化装置１０の画像入力部１２に、画像Ｇの動画像データがフレーム毎に入力される周期に対応している。本実施形態のエンコーダ１４では、フレーム処理周期内に、ソース符号化処理部３０による１フレーム分の前処理及び推定符号量の算出が終了する。
【００８５】
図１２には、画像符号化装置１０の判定部１６で行われる画像符号化処理制御の一例のフローチャートを示す。図１２に示した画像符号化処理制御は、例えば、画像符号化装置１０に一連の動画像データが入力された場合等に実行される。
【００８６】
ステップＳ２００で判定部１６は、符号化する対象のフレームを識別するための変数Ｎを１（Ｎ＝１）とする。各エンコーダ１４のソース符号化処理部３０では、入力されたフレームＡ１、Ｂ１の前処理が行われる。
【００８７】
そこで、次のステップＳ２０２で判定部１６は、フレーム処理周期が終了するまで待ち合わせる。フレーム処理周期が終了する（図１１、タイミングＴ１参照）と次のステップＳ２０４で判定部１６は、フレームＮが最終フレームであるか否かを判断する。フレームＮが最終フレームの場合（総フレーム数が１の場合）は、肯定判定となりステップＳ２４８へ移行する。一方、フレームＮが最終フレームではない場合は、否定判定となりステップＳ２０６へ移行する。
【００８８】
ステップＳ２０６で判定部１６は、第１仮判定処理を行う。図１３には本実施形態の第１仮判定処理の一例のフローチャートを示す。
【００８９】
ステップＳ３００で判定部１６は、フレームＮの可変長符号化処理の予測時間をエンコーダ１４毎に算出する。図１１に例示した場合では、タイミングＴ１で判定部１６は、エンコーダ１４０についてはフレームＡ１の予測時間を算出し、エンコーダ１４１についてはフレームＢ１の予測時間を算出する。
【００９０】
次のステップＳ３０２で判定部１６は、個々のエンコーダ１４毎に算出した予測時間がフレーム処理周期を超えている（予測時間＞フレーム処理周期）か否かを判断する。算出した予測時間が何れのエンコーダ１４についてもフレーム処理周期を超えていない場合は、否定判定となりステップＳ３０８へ移行する。ステップＳ３０８で判定部１６は、事前転送（可変長符号化処理の分担の変更）を行わないと判定した後、第１仮判定処理を終了する。
【００９１】
一方、何れかのエンコーダ１４の予測時間がフレーム処理周期を超える場合は、肯定判定となりステップＳ３０４へ移行する。ステップＳ３０４で判定部１６は、オーバヘッドを算出する。
【００９２】
次のステップＳ３０６で判定部１６は、予測時間の超過分（予測時間とフレーム処理周期との差分：予測時間−フレーム処理周期）がオーバヘッドよりも多い（（予測時間−フレーム処理周期）＞オーバヘッド）か否か判断する。予測時間の超過分がオーバヘッド以下の場合（予測時間−フレーム処理周期≦オーバヘッド）は、否定判定となりステップＳ３０８へ移行する。一方、予測時間の超過分がオーバヘッドを超える場合は、肯定判定となりステップＳ３１０へ移行する。
【００９３】
ステップＳ３１０で判定部１６は、事前転送（可変長符号化処理の分担の変更）を行うと判定する。そして次のステップＳ３１２で判定部１６は、フレーム処理周期に基づいて処理分割ＣＴＢ位置を算出した後、第１仮判定処理を終了する。
【００９４】
ステップＳ２０６の第１仮判定処理が終了するとステップＳ２０８へ移行する。
【００９５】
ステップＳ２０８で判定部１６は、第１仮判定処理の結果に基づいて事前転送を実行するか否かを判断する。事前転送を行わない、すなわち、可変長符号化処理の分担の変更を行わない場合は、否定判定となりステップＳ２１２へ移行する。
【００９６】
一方、ステップＳ２０８で肯定判定となった場合は、ステップＳ２１０へ移行する。ステップＳ２１０で判定部１６は、分担変更データ及び隣接データを依頼側のエンコーダ１４から請負側のエンコーダ１４へ転送させる。図１１に例示した場合では、フレームＡ１の予測時間はフレーム処理周期を超えており、フレームＢ１の予測処理時間はフレーム処理周期を超えていない。そのため、タイミングＴ１において依頼側のエンコーダ１４０から請負側のエンコーダ１４１へ分担変更データＡ１（２）が転送される。請負側のエンコーダ１４１では、転送されてきた分担変更データ及び隣接データをメモリ３４の符号化対象データ保存領域４２に保存する。
【００９７】
次のステップＳ２１２で判定部１６は、フレームＮ＋１が最終フレームであるか否かを判断する。フレームＮ＋１が最終フレームの場合（総フレーム数が２の場合）は、肯定判定となりステップＳ２３６へ移行する。一方、フレームＮ＋１が最終フレームではない場合は、否定判定となりステップＳ２１４へ移行する。
【００９８】
次のステップＳ２１４で判定部１６は、フレームＮの可変長符号化処理を各エンコーダ１４で開始させる。さらに、判定部１６は、フレーム処理周期が終了するまで待ち合わせる。ここでフレーム処理周期が終了するまでに、各エンコーダ１４のソース符号化処理部３０では、フレームＮ＋１の前処理及び推定符号量の算出が終了する。
【００９９】
フレーム処理周期が終了する（図１１、タイミングＴ２参照）と次のステップＳ２１６で判定部１６は、フレームＮの仮判定結果を判断する。仮判定結果が事前転送無（事前転送を行わない）の場合は、ステップＳ２２６へ移行する。一方、仮判定結果が事前転送有（事前転送を行う）の場合は、ステップＳ２１８へ移行する。
【０１００】
ステップＳ２１８で判定部１６は、本判定処理を行う。図１４には本実施形態の本判定処理の一例のフローチャートを示す。
【０１０１】
ステップＳ３３０で判定部１６は、未だ可変長符号化処理が行われていないフレームＮの符号化対象データに応じた推定符号量及びフレームＮ＋１の推定符号量から可変長符号化処理の予測時間をエンコーダ１４毎に算出する。なお、フレームＮの符号化対象データについて、既に全て可変長符号化処理済みの場合は、未だ可変長符号化処理が行われていないフレームＮの符号化対象データに応じた推定符号量はゼロである。
【０１０２】
次のステップＳ３３２で判定部１６は、算出した予測時間がフレーム処理周期を超えるエンコーダ１４があるか否かを判断する。無い場合は否定判定となりステップＳ３３４へ移行する。ステップＳ３３４で判定部１６は、可変長符号化処理の分担の変更を行わないと判定した後、本判定処理を終了する。
【０１０３】
一方、ステップＳ３３２で予測時間がフレーム処理周期を超える場合は、肯定判定となりステップＳ３３６へ移行する。ステップＳ３３６で判定部１６は、エンコーダ１４毎に、可変長符号化処理の分担を変更した場合の予測時間を算出する。
【０１０４】
次のステップＳ３３８で判定部１６は、上記ステップＳ３３６で算出した、可変長符号化処理の分担を変更した場合の依頼側の予測時間が、請負側の予測時間を超える（依頼側の予測時間＞請負側の予測時間）か否かを判断する。依頼側の予測時間が請負側の予測時間以下の場合は、否定判定となりステップＳ３３４へ移行する。一方、依頼側の予測時間が請負側の予測時間を超える場合は、肯定判定となりステップＳ３４０へ移行する。
【０１０５】
ステップＳ３４０で判定部１６は、可変長符号化処理の分担の変更を行うと判定する。次のステップ３４２で判定部１６は、可変長符号化処理の分担の変更を行った場合に、依頼側の予測時間と請負側の予測時間が均等となるように処理分割ＣＴＢ位置を算出した後、本判定処理を終了する。
【０１０６】
ステップＳ２１８の本判定処理が終了するとステップＳ２２０へ移行する。
【０１０７】
ステップＳ２２０で判定部１６は、本判定処理の結果に基づいて可変長符号化処理の分担を変更するか否かを判断する。分担を変更しない場合は、否定判定となりステップＳ２２２へ移行する。ステップＳ２２２で判定部１６は、請負側のエンコーダ１４に事前に転送した分担変更データ及び隣接データを破棄するよう請負側のエンコーダ１４に指示した後、ステップＳ２２６へ移行する。請負側のエンコーダ１４は、当該指示に応じて、メモリ３４の符号化対象データ保存領域４２に保存した分担変更データ及び隣接データを破棄する。
【０１０８】
一方、分担を変更する場合は、ステップＳ２２０で肯定判定となり、ステップＳ２２４へ移行する。
【０１０９】
ステップＳ２２４で判定部１６は、依頼側のエンコーダ１４にコンテキスト及び内部状態を転送するよう指示する。当該指示により依頼側のエンコーダ１４の可変長符号化処理部３２は、コンテキスト及び内部状態をメモリ３４のコンテキスト・内部状態保存領域４６に退避させる。そして、データ転送部３６がコンテキスト・内部状態保存領域４６に退避されたコンテキスト及び内部状態を請負側のエンコーダ１４に転送する。請負側のエンコーダ１４では、入力されたコンテキスト及び内部状態をメモリ３４のコンテキスト・内部状態保存領域４６に保存する。
【０１１０】
次のステップＳ２２６で判定部１６は、第２仮判定処理を行う。図１５には本実施形態の第２仮判定処理の一例のフローチャートを示す。第２仮判定処理は、本判定処理の処理結果に応じてフレームＮ＋１に対する仮判定を行う点で第１仮判定処理と異なっている。
【０１１１】
ステップＳ３７０で判定部１６は、本判定で決定した可変長符号化処理の分担に応じた予測時間が、フレーム処理周期を超えているか否かを判断する。予測時間がフレーム処理周期を超えていない場合は、否定判定となりステップＳ３７２へ移行する。ステップＳ３７２で判定部１６は、事前転送（可変長符号化処理の分担の変更）を行わないと判定した後、第２仮判定処理を終了する。図１１に示した具体例のタイミングＴ２の仮判定（第２仮判定）では、事前転送を行わないと判定する。そのため、この場合は当該仮判定に対応する本判定（ステップＳ２１８）は行わない（図１１、タイミングＴ３の本判定参照）。
【０１１２】
一方、予測時間がフレーム処理周期を超える場合は、肯定判定となりステップＳ３７４へ移行する。ステップＳ３７４で判定部１６は、オーバヘッドを算出する。
【０１１３】
次のステップＳ３７６で判定部１６は、予測時間の超過分（予測時間とフレーム処理周期との差分：予測時間−フレーム処理周期）がオーバヘッドよりも多い（（予測時間−フレーム処理周期）＞オーバヘッド）か否か判断する。予測時間の超過分がオーバヘッド以下の場合（予測時間−フレーム処理周期≦オーバヘッド）は、否定判定となりステップＳ３７２へ移行する。一方、予測時間の超過分がオーバヘッドを超える場合は、肯定判定となりステップＳ３７８へ移行する。
【０１１４】
ステップＳ３７８で判定部１６は、事前転送（可変長符号化処理の分担の変更）を行うと判定する。次のステップＳ３８０で判定部１６は、フレーム処理周期に基づいて可変長符号化処理の分担の変更を行った場合に、依頼側の予測時間と請負側の予測時間が均等となるように処理分割ＣＴＢ位置を算出した後、第２仮判定処理を終了する。図１１に示した具体例のタイミングＴ３の仮判定（第２仮判定）では、事前転送を行うと判定する。なお、この場合は当該仮判定に対応する本判定（図１１、タイミングＴ４の本判定）で、分担変更データＡ３（２）とフレームＡ４とを加算したデータ量がフレーム処理周期以下であるため、分担の変更を行わないと判定される。従って、エンコーダ１４０からエンコーダ１４１に転送された分担変更データＡ３（２）はエンコーダ１４１で破棄される。
【０１１５】
ステップＳ２２６の第２仮判定処理が終了するとステップＳ２２８へ移行する。
【０１１６】
ステップＳ２２８で判定部１６は、第２仮判定処理の結果に基づいて事前転送を実行するか否かを判断する。事前転送を行わない、すなわち、可変長符号化処理の分担の変更を行わない場合は、否定判定となりステップＳ２３２へ移行する。
【０１１７】
一方、ステップＳ２２８で肯定判定となった場合は、ステップＳ２３０へ移行する。ステップＳ２３０で判定部１６は、分担変更データ及び隣接データを依頼側のエンコーダ１４から請負側のエンコーダ１４へ転送させる。請負側のエンコーダ１４では、入力された分担変更データ及び隣接データをメモリ３４の符号化対象データ保存領域４２に保存する。
【０１１８】
次のステップＳ２３２で判定部１６は、変数Ｎを１だけインクリメント（Ｎ＝Ｎ＋１）する。次のステップＳ２３４で判定部１６は、フレームＮ＋１が最終フレームであるか否かを判断する。フレームＮ＋１が最終フレームではない場合は、否定判定となりステップＳ２１４に戻り処理を繰り返す。一方、フレームＮ＋１が最終フレームである場合は、肯定判定となりステップＳ２３６へ移行する。
【０１１９】
ステップＳ２３６で判定部１６は、フレームＮの可変長符号化処理を各エンコーダ１４に開始させる。さらに、判定部１６は、フレーム処理周期が終了するまで待ち合わせる。
【０１２０】
フレーム処理周期が終了すると次のステップＳ２３８で判定部１６は、フレームＮの仮判定結果を判断する。仮判定結果が事前転送無（事前転送を行わない）の場合は、ステップＳ２４８へ移行する。一方、仮判定結果が事前転送有（事前転送を行う）の場合は、ステップＳ２４０へ移行する。
【０１２１】
ステップＳ２４０で判定部１６は、上述した本判定処理（図１４参照）を行う。本判定処理が終了するとステップＳ２４２へ移行する。
【０１２２】
ステップＳ２４２で判定部１６は、本判定処理の結果に基づいて可変長符号化処理の分担を変更するか否かを判断する。分担を変更しない場合は、否定判定となりステップＳ２４４へ移行する。ステップＳ２４４で判定部１６は、請負側のエンコーダ１４に事前に転送した分担変更データ及び隣接データを破棄するよう請負側のエンコーダ１４に指示した後、ステップＳ２４８へ移行する。請負側のエンコーダ１４は、当該指示に応じて、メモリ３４の符号化対象データ保存領域４２に保存した分担変更データ及び隣接データを破棄する。
【０１２３】
一方、分担を変更する場合は、ステップＳ２４２で肯定判定となり、ステップＳ２４６へ移行する。
【０１２４】
ステップＳ２４６で判定部１６は、依頼側のエンコーダ１４にコンテキスト及び内部状態を転送するよう指示する。当該指示により依頼側のエンコーダ１４の可変長符号化処理部３２は、コンテキスト及び内部状態をメモリ３４のコンテキスト・内部状態保存領域４６に退避させる。そして、データ転送部３６がコンテキスト・内部状態保存領域４６に退避されたコンテキスト及び内部状態を請負側のエンコーダ１４に転送する。請負側のエンコーダ１４では、入力されたコンテキスト及び内部状態をメモリ３４のコンテキスト・内部状態保存領域４６に保存する。
【０１２５】
次のステップＳ２４８で判定部１６は、変数Ｎを１だけインクリメント（Ｎ＝Ｎ＋１）する。
【０１２６】
次のステップＳ２５０で判定部１６は、フレームＮの可変長符号化処理を各エンコーダ１４に開始させた後、本画像符号化処理制御を終了する。
【０１２７】
以上説明したように、上記各実施形態では、画像符号化装置１０は、複数のエンコーダ１４と、判定部１６と、を備える。各エンコーダ１４は、ソース符号化処理部３０と、メモリ３４と、可変長符号化処理部３２と、を各々有し、互いに並列に動作する。ソース符号化処理部３０は、１画像を複数に分割した分割領域の画像データに対して符号量の推定を含む符号化の前処理を行う。メモリ３４は、前処理で得られた符号化対象データ及び推定符号量を記憶する。可変長符号化処理部３２は、符号化対象データに対して可変長符号化処理を行う。判定部１６は、個々のエンコーダ１４のソース符号化処理部３０による前処理で得られた推定符号量に基づいて、個々のエンコーダ１４による可変長符号化処理の分担を変更するか否か仮判定する。また、判定部１６は、分担を変更すると仮判定した場合は、分担の変更量に応じた符号化対象データを、可変長符号化処理を依頼する依頼側のエンコーダ１４から可変長符号化処理を請け負う請負側のエンコーダ１４へ転送させる。また、判定部１６は、仮判定以降の所定期間内に行われた可変長符号化処理の処理量に基づいて分担を変更するか否か本判定する。また、判定部１６は、本判定の結果に応じたエンコーダ１４に、分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる。
【０１２８】
一般に、画像符号化装置が複数のエンコーダで共有するメモリ（以下、「共有メモリ」という）を備えている場合、各エンコーダのソース符号化処理部により前処理が行われた符号化対象データは共有メモリに保存される。可変長符号化処理が終了したエンコーダが順次、共有メモリから符号化対象データを取り出して可変長符号化処理を行う。
【０１２９】
一方、画像符号化装置１０では、共有メモリを備えていないため、可変長符号化処理の分担が予め定められており、分担を変更する場合、依頼側から請負側に分担の変更に要するデータの転送が必要になる。そのため、可変長符号化処理を行う際に依頼側から請負側に転送するデータ量によっては、全体処理時間が高速化されない場合がある。
【０１３０】
そこで上記各実施形態の画像符号化装置１０では、可変長符号化処理の分担を変更するか否かの仮判定を行い、分担を変更する場合は、分担の変更に応じた可変長符号化処理を行うタイミングよりも前に先行してデータを転送しておく。具体的には、画像符号化装置１０の判定部１６が推定符号量に基づいて仮判定を行い、分担の変更に応じた符号化対象データである分担変更データ及び隣接データを事前に、依頼側から請負側に転送させる。このように事前にデータを転送することにより、上記各実施形態の画像符号化装置１０では、分担変更データの可変長符号化処理を行う際に転送するデータ量を抑制する。
【０１３１】
従って、上記各実施形態の画像符号化装置１０によれば、分割領域のデータを複数のエンコーダ１４で並列に符号化処理を行う際に、共有のメモリを有さない場合でもエンコーダ１４の符号化処理に要する時間の差が小さくなる。また、分担変更データの可変長符号化処理を行う際に依頼側から請負側に転送するデータ量を抑制することができるため、一連の動画像データの符号化が完了するまでの全体処理時間が短縮され、符号化の高速化を図ることができる。
【０１３２】
また、上記各実施形態の画像符号化装置１０によれば、フレーム毎にではなく、ブロック毎に可変長符号化処理の分担の変更を行うことにより、各エンコーダ１４における可変長符号化処理の処理負荷を分散させている。そのため、上述した共有メモリを有する場合よりも、依頼側のエンコーダ１４で可変長符号化処理に要する時間と請負側のエンコーダ１４で可変長符号化処理に要する時間を均等にする（均等に近づける）ことができる。
【０１３３】
また、上記各実施形態の画像符号化装置１０では、分担変更データ及び隣接データを事前に転送する。そのため、本判定により分担を変更すると決定した場合、請負側のエンコーダ１４では、事前に転送した分担変更データに含まれる符号化対象データのみ可変長符号化処理できる。仮判定で予測したよりも可変長符号化処理を行った符号化対象データのデータ量が少ない場合を考慮して、判定部１６が算出したよりも多めに（広い領域の符号化対象データ）を事前に転送することが好ましい。また、このように本判定時に請負側のエンコーダ１４に可変長符号化処理を追加依頼したい場合は、本判定後に、コンテキスト及び内部状態とともに、追加依頼に応じた量の分担変更データを依頼側から請負側に転送してもよい。この場合であっても、可変長符号化処理を行う際に転送するデータ量が従来の上述した画像符号化装置よりも抑制できることはいうまでもない。
【０１３４】
また、上記各実施形態の画像符号化装置１０では、仮判定においてデータの事前転送を行わないと判定した場合は、本判定を行わないが、仮判定の結果によらず本判定を行うようにしてもよい。データの事前転送を行っていないが本判定により分担の変更を行うと判定した場合、本判定後に、分担の変更に応じた分担変更データ及び隣接データを依頼側から請負側に転送させるようにすればよい。
【０１３５】
なお、上記各実施形態では、エンコーダ１４が２つの場合について説明したが、画像符号化装置１０が備えるエンコーダ１４の数はこれに限定されない。画像Ｇを分割した分割領域の画像データの符号化を並列して行う数に応じてエンコーダ１４が設けられていればよく、３つ以上であってもよい。図１６には、具体例としてエンコーダ１４を３つ（エンコーダ１４０、１４１、１４２）備えた場合の画像符号化装置１０の概略構成を表す図を示す。また、図１７には、図１６に示した画像符号化装置１０における画像符号化処理制御を説明するための図を示す。図１６に示した画像符号化装置１０の判定部１６による画像符号化処理制御は、例えば、第２実施形態と同様にすればよい（図１２〜１５参照）。
【０１３６】
図１７に示すように、タイミングＴ１で行う第１仮判定処理では、エンコーダ１４０、１４１の予測処理時間がフレーム処理周期を超えるため、事前転送（可変長符号化処理の分担の変更）を行うと判定する。予測時間の超過分の分担変更データＡ１（２）及びＢ１（２）は、自装置以外の全てのエンコーダ１４に転送される。また、タイミングＴ２で行う本判定処理では、予測時間がフレーム処理周期を超えるエンコーダ１４が有るため、分担の変更を行うと判定する。具体的には、各エンコーダ１４の超過分である分担変更データの可変長符号化処理を行うエンコーダ１４の選択肢に応じて予測時間を算出して比較することにより本判定を行う。そのため、エンコーダ１４数が３つの場合は、最大、３×３×３＝２７通りの予測時間を算出して比較する。図１７に示した場合は、分担変更データＡ１（２）を処理するエンコーダ１４の選択肢×分担変更データＢ１（２）を処理するエンコーダ１４の選択肢＝３×３＝９通りの予測時間を算出して比較する。
【０１３７】
なお、エンコーダ１４が複数の場合の画像符号化処理制御は、上述した方法に限らない。例えば、仮判定時にデータを事前転送するエンコーダ１４を限定してもよく、この場合、転送量を削減することができる。具体例としては、最も分担変更データのデータ量が多くなると予測されるものに限定してもよいし、所定期間内に可変長符号化処理を処理しきれない（分担変更データが生じる）エンコーダ１４には転送しないようにしてもよい。なお、データを事前転送するエンコーダ１４を限定するよりも、上述したように限定しない場合の方が、本判定時に請負側として選択できるエンコーダ１４が増えるため、処理の分担（処理負荷の分散）を最適化することができる。
【０１３８】
また、エンコーダ１４が複数の場合の画像符号化処理制御として例えば、本判定時に予測時間を算出する選択肢の組み合わせを制限することにより、予測時間の算出に要する時間を削減してもよい。具体例としては、予測処理時間の多さ（長さ）に基づいて、最も予測処理時間が多いエンコーダ１４を依頼側とし、最も予測処理時間が少ないエンコーダ１４を請負側として決定してもよい。さらに、より多くのエンコーダ１４でフレーム処理期間内に予測処理時間画像が納まるまで、当該決定を繰り返せばよい。
【０１３９】
なお、上記各実施形態では、画像符号化装置１０に入力される画像データが動画像データである場合について説明したがこれに限らず、静止画像データであってもよい。この場合であっても、連続して入力される複数の静止画像データの符号化を行うエンコーダ１４の符号化処理に要する時間の差を小さくすることができる。
【０１４０】
なお、上記では、画像符号化プログラム６０がコンピュータ５０の記憶部５６に予め記憶（インストール）されている状態を説明した。しかしながら、画像符号化プログラム６０を記憶媒体に記録された形態で提供することも可能である。記憶媒体としては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、及びＵＳＢ（Universal Serial Bus）等が挙げられる。
【０１４１】
以上の上記実施形態に関し、更に以下の付記を開示する。
【０１４２】
（付記１）
１画像を複数に分割した分割領域のデータに対して符号量の推定を含む符号化の前処理を行う前処理部と、前記前処理で得られた符号化対象データ及び推定符号量を記憶する記憶部と、前記符号化対象データに対して可変長符号化処理を行う可変長符号化処理部と、を各々有し、互いに並列に動作する複数の符号化器と、
個々の前記符号化器の前記前処理部による前処理で得られた前記推定符号量に基づいて、個々の前記符号化器による前記可変長符号化処理の分担を変更するか否か仮判定し、前記分担を変更すると仮判定した場合は、前記分担の変更量に応じた符号化対象データを、前記可変長符号化処理を依頼する依頼側の符号化器から可変長符号化処理を請け負う請負側の符号化器へ転送させ、前記仮判定以降の所定期間内に行われた前記可変長符号化処理の処理量に基づいて前記分担を変更するか否か本判定し、本判定の結果に応じた符号化器に、前記分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる判定部と、
を備えた画像符号化装置。
【０１４３】
（付記２）
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記推定符号量と、コンテキスト及び内部状態を表す情報の転送に要する時間と、に基づいて行う、
付記１に記載の画像符号化装置。
【０１４４】
（付記３）
前記判定部は、前記本判定の結果に応じた符号化器が前記請負側の符号化器の場合は、前記分担の変更量に応じた符号化対象データに対応するコンテキスト及び内部状態を表す情報を前記依頼側の符号化器から前記請負側の符号化器に転送させる、
付記１または付記２に記載の画像符号化装置。
【０１４５】
（付記４）
前記判定部は、前記本判定の結果に応じた符号化器が前記依頼側の符号化器の場合は、前記請負側の符号化器に転送させた前記分担の変更量に応じた符号化対象データを前記請負側の符号化器で破棄させる、
付記１から付記３のいずれか１つに記載の画像符号化装置。
【０１４６】
（付記５）
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記複数の符号化器間の各々における前記可変長符号化処理の処理負荷または処理時間が均等に近付くか否か、または前記複数の符号化器の各々における前記可変長符号化処理の処理時間が所定の時間以内になるか否かに基づいて行う、
付記１から付記４のいずれか１つに記載の画像符号化装置。
【０１４７】
（付記６）
前記分担の変更量に応じた符号化対象データは、前記分割領域よりも小面積の領域のデータである、
付記１から付記５のいずれか１つに記載の画像符号化装置。
【０１４８】
（付記７）
前記所定期間は、自装置に１画像の画像データが入力される周期に応じた期間、または前記複数の符号化器のいずれか１つの可変長符号化処理部において担当する可変長符号化処理が開始してから終了するまでの期間である、
付記１から付記６のいずれか１つに記載の画像符号化装置。
【０１４９】
（付記８）
コンピュータにより、
１画像を複数に分割した分割領域のデータに対して符号量の推定を含む符号化の前処理を行う前処理部と、前記前処理で得られた符号化対象データ及び推定符号量を記憶する記憶部と、前記符号化対象データに対して可変長符号化処理を行う可変長符号化処理部と、を各々有し、互いに並列に動作する複数の符号化器に対して、
個々の前記符号化器の前記前処理部による前処理で得られた前記推定符号量に基づいて、個々の前記符号化器による前記可変長符号化処理の分担を変更するか否か仮判定し、
前記分担を変更すると仮判定した場合は、前記分担の変更量に応じた符号化対象データを、前記可変長符号化処理を依頼する依頼側の符号化器から可変長符号化処理を請け負う請負側の符号化器へ転送させ、
前記仮判定以降の所定期間内に行われた前記可変長符号化処理の処理量に基づいて前記分担を変更するか否か本判定し、
本判定の結果に応じた符号化器に、前記分担の変更量に応じた符号化対象データに対する可変長符号化処理を行わせる、
ことを含む処理を実行させる画像符号化方法。
【０１５０】
（付記９）
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記推定符号量と、コンテキスト及び内部状態を表す情報の転送に要する時間と、に基づいて行う、
付記８に記載の画像符号化方法。
【０１５１】
（付記１０）
前記判定部は、前記本判定の結果に応じた符号化器が前記請負側の符号化器の場合は、前記分担の変更量に応じた符号化対象データに対応するコンテキスト及び内部状態を表す情報を前記依頼側の符号化器から前記請負側の符号化器に転送させる、
付記８または付記１０に記載の画像符号化方法。
【０１５２】
（付記１１）
前記判定部は、前記本判定の結果に応じた符号化器が前記依頼側の符号化器の場合は、前記請負側の符号化器に転送させた前記分担の変更量に応じた符号化対象データを前記請負側の符号化器で破棄させる、
付記８から付記１０のいずれか１つに記載の画像符号化方法。
【０１５３】
（付記１２）
前記判定部は、前記仮判定及び前記本判定の少なくとも一方を、前記複数の符号化器間の各々における前記可変長符号化処理の処理負荷または処理時間が均等に近付くか否か、または前記複数の符号化器の各々における前記可変長符号化処理の処理時間が所定の時間以内になるか否かに基づいて行う、
付記８から付記１１のいずれか１つに記載の画像符号化方法。
【０１５４】
（付記１３）
前記分担の変更量に応じた符号化対象データは、前記分割領域よりも小面積の領域のデータである、
付記８から付記１２のいずれか１つに記載の画像符号化方法。
【０１５５】
（付記１４）
前記所定期間は、自装置に１画像の画像データが入力される周期に応じた期間、または前記複数の符号化器のいずれか１つの可変長符号化処理部において担当する可変長符号化処理が開始してから終了するまでの期間である、
付記８から付記１３のいずれか１つに記載の画像符号化方法。
【符号の説明】
【０１５６】
１０  画像符号化装置
１４  エンコーダ
１６  判定部
３０  ソース符号化処理部
３２  可変長符号化処理部
３４  メモリ
４０  推定符号量保存領域
４２  符号化対象データ保存領域
４４  部分ストリーム保存領域
４６  コンテキスト・内部状態保存領域
５０  コンピュータ
５２  ＣＰＵ
５４  メモリ
５６  記憶部
６０  画像符号化プログラム
【図１】
2017017541.tif 000003
【図２】
2017017541.tif 000004
【図３】
2017017541.tif 000005
【図４】
2017017541.tif 000006
【図５】
2017017541.tif 000007
【図６】
2017017541.tif 000008
【図７】
2017017541.tif 000009
【図８】
2017017541.tif 000010
【図９】
2017017541.tif 000011
【図１０】
2017017541.tif 000012
【図１１】
2017017541.tif 000013
【図１２】
2017017541.tif 000014
【図１３】
2017017541.tif 000015
【図１４】
2017017541.tif 000016
【図１５】
2017017541.tif 000017
【図１６】
2017017541.tif 000018
【図１７】
2017017541.tif 000019