(57)【要約】【課題】画像データに対する並列符号化とエラー処理の実装とを実現するとともに、エラーが発生した場合の並列符号化の効率化を実現する。【解決手段】本発明の一態様において、並列符号化装置１は、画像データ８を分割して得られる複数の処理ブロックについて、符号化のための複数の処理モードの進行状態を示す制御情報１１を記憶する記憶手段６と、記憶手段６に記憶されている制御情報１１と複数の処理ブロックに対する複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行する並列処理手段２〜４と、並列処理手段２〜４による処理においてエラーが発生したか否か判定する判定手段７と、判定手段７によってエラーが発生したと判定された場合に、記憶手段６に記憶されている制御情報１１におけるエラー発生処理ブロックの進行状態及びエラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する制御手段５とを具備する。【選択図】      図１
2011066843.tif 000002
【特許請求の範囲】
【請求項１】
画像データを分割して得られる複数の処理ブロックについて、符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶手段と、
前記記憶手段に記憶されている前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行する並列処理手段と、
前記並列処理手段による処理においてエラーが発生したか否か判定する判定手段と、
前記判定手段によってエラーが発生したと判定された場合に、前記記憶手段に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する制御手段と
を具備する並列符号化装置。
【請求項２】
動画像データに含まれている複数のフレームのうちの１フレーム内又は前記複数のフレーム間で、並列に、動きベクトル探索処理、モード判定処理、エントロピー符号化処理を実行する並列処理手段と、
前記エントロピー符号化処理においてエラーが発生したか否か判定する判定手段と、
前記判定手段によってエラーが発生したと判定された場合に、エラー発生フレーム以降のフレームに対する前記動きベクトル探索処理と前記モード判定処理と前記エントロピー符号化処理とのうちの一部又は全部を、同じエラーが発生しない設定で再実行させる制御手段と
を具備する並列符号化装置。
【請求項３】
請求項２記載の並列符号化装置において、
前記制御手段は、
前記エラー発生フレームに含まれている複数の処理ブロックのうち、エラーの発生した処理ブロック以降について、前記モード判定処理及び前記エントロピー符号化処理を再実行させ、
前記エラー発生フレームの次のフレーム以降について、フレーム先頭から前記モード判定処理及び前記エントロピー符号化処理を再実行させる
ことを特徴とする並列符号化装置。
【請求項４】
請求項３記載の並列符号化装置において、
前記制御手段は、
前記エラー発生フレームの次のフレーム以降について、前記エラー発生フレームで再実行された部分を参照する処理ブロックのみに対して前記動きベクトル探索処理を再実行させる
ことを特徴とする並列符号化装置。
【請求項５】
請求項２記載の並列符号化装置において、
前記制御手段は、前記判定手段によってエラーが発生したと判定された場合に、
前記エラー発生フレームについて、先頭から前記動きベクトル探索処理と前記モード判定処理と前記エントロピー符号化処理を再実行させ、
前記エラー発生フレームの次のフレーム以降について、先頭から前記動きベクトル探索処理と前記モード判定処理と前記エントロピー符号化処理を再実行させる
ことを特徴とする並列符号化装置。
【請求項６】
複数のプロセッサを、画像データを分割して得られる複数の処理ブロックについて符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶装置をアクセスし、前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行する並列処理手段として機能させ、
前記複数のプロセッサを、前記並列処理手段による処理においてエラーが発生したか否か判定する判定手段として機能させ、
前記複数のプロセッサを、前記判定手段によってエラーが発生したと判定された場合に、前記記憶装置に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する制御手段として機能させる
ためのプログラム。
【請求項７】
画像データの符号化方法において、
複数のプロセッサは、画像データを分割して得られる複数の処理ブロックについて符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶装置をアクセスし、前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行し、
前記複数のプロセッサは、前記実行可能な処理ブロックに対する処理モードにおいてエラーが発生したか否か判定し、
前記複数のプロセッサは、エラーが発生したと判定された場合に、前記記憶装置に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する
ことを特徴とする画像データ符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化を行う符号化装置及びプログラム並びに画像データの符号化方法に関する。
【背景技術】
【０００２】
例えば、Ｈ．２６４規格に準拠している符号化技術においては、動きベクトル探索処理、モード判定処理、エントロピー符号化処理などが実行される。
【０００３】
このような動きベクトル探索処理、モード判定処理、エントロピー符号化処理を含む従来の符号化技術において、モード判定処理とエントロピー符号化処理とは直列に動作し、並列には動作しない。したがって、例えば、エントロピー符号化処理でエラーが発生した場合であっても、迅速にモード判定処理をやり直すことが可能であった。
【０００４】
また、従来の符号化技術においては、複数のフレーム間で並列に処理が実行されていないため、モード判定処理をやり直しても、動きベクトル探索処理をやり直す必要はない。
【０００５】
これに対して、従来の符号化技術において例えば動きベクトル探索処理とモード判定処理などの処理を並列に実行させた場合に、エントロピー符号化処理でエラーが発生すると、モード判定処理を再度実行する必要があり、さらに、モード判定処理の結果が変わるため、モード判定処理の結果を参照する動きベクトル探索処理も再度実行する必要がある。
【０００６】
このように従来の符号化技術では、処理を並列に実行させる場合にエラーが発生すると、再度実行すべき処理が多くなる。したがって、並列符号化においてエラー処理を実装することは困難であった。
【０００７】
特許文献１（特開２００５−７３２４５号公報）には、動きベクトルを選択するために動きの探索を行うこと、複数のマクロブロックモードにより動きベクトルの残留エラーを決定すること、少なくとも複数のマクロブロックモードの一部に対して動きベクトルからコーディングコストを評価すること、およびモードに関連する残留エラーおよびコーディングコストの両方に基づいてマクロブロックのエンコーディングのためのモードを選択することが開示されている。
【０００８】
特許文献２（特開２００２−２９０９７８号公報）には、エラーの発生したフレーム内のマクロブロックの位置、回線のエラー発生率、エラー発生フレームと時間的に隣接するフレームとの変化量、過去のフレームの動きベクトルおよびエラーフレームと他のフレームを参照しないで符号化したフレームとの位置関係に基づき、エラーを検出した場合にも伸張処理を継続し、動画像の表示において乱れを小さくすることが開示されている。また、特許文献２には、次のフレームへのエラーの伝播を抑制し、フレーム内の部分的なノイズをなくすことが開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−７３２４５号公報
【特許文献２】特開２００２−２９０９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、例えばＨ．２６４規格に準拠している動画像データの符号化技術においては、符号化を並列に実行する場合にエラー処理を実装することが困難であった。
【００１１】
本発明は、以上のような実情に鑑みてなされたもので、画像データに対する並列符号化とエラー処理の実装とを実現するとともに、エラーが発生した場合にエラー処理を効率的に行うことを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様に係る並列符号化装置は、画像データを分割して得られる複数の処理ブロックについて、符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶手段と、前記記憶手段に記憶されている前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行する並列処理手段と、前記並列処理手段による処理においてエラーが発生したか否か判定する判定手段と、前記判定手段によってエラーが発生したと判定された場合に、前記記憶手段に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する制御手段とを具備する。
【００１３】
本発明の第２の態様に係る並列符号化装置は、動画像データに含まれている複数のフレームのうちの１フレーム内又は前記複数のフレーム間で、並列に、動きベクトル探索処理、モード判定処理、エントロピー符号化処理を実行する並列処理手段と、前記エントロピー符号化処理においてエラーが発生したか否か判定する判定手段と、前記判定手段によってエラーが発生したと判定された場合に、エラー発生フレーム以降のフレームに対する前記動きベクトル探索処理と前記モード判定処理と前記エントロピー符号化処理とのうちの一部又は全部を、同じエラーが発生しない設定で再実行させる制御手段とを具備する。
【００１４】
本発明の第３の態様に係るプログラムは、複数のプロセッサを、画像データを分割して得られる複数の処理ブロックについて符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶装置をアクセスし、前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行する並列処理手段として機能させ、前記複数のプロセッサを、前記並列処理手段による処理においてエラーが発生したか否か判定する判定手段として機能させ、前記複数のプロセッサを、前記判定手段によってエラーが発生したと判定された場合に、前記記憶装置に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する制御手段として機能させる。
【００１５】
本発明の第４の態様に係る画像データの符号化方法において、複数のプロセッサは、画像データを分割して得られる複数の処理ブロックについて符号化のための複数の処理モードの進行状態を示す制御情報を記憶する記憶装置をアクセスし、前記制御情報と、前記複数の処理ブロックに対する前記複数の処理モードの間の所定の依存関係とに基づいて、実行可能な処理ブロックに対する処理モードを、並列に実行し、前記複数のプロセッサは、前記実行可能な処理ブロックに対する処理モードにおいてエラーが発生したか否か判定し、前記複数のプロセッサは、エラーが発生したと判定された場合に、前記記憶装置に記憶されている前記制御情報におけるエラー発生処理ブロックの進行状態及び前記エラー発生処理ブロックに依存している処理ブロックの進行状態を、再実行させる状態に更新する。
【発明の効果】
【００１６】
本発明においては、画像データに対する並列符号化とエラー処理の実装とを実現するとともに、エラーが発生した場合にエラー処理を効率的に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態に係る符号化装置の一例を示すブロック図。
【図２】第１の実施の形態に係る符号化装置のハードウェア構成の一例を示すブロック図。
【図３】処理ブロックに対応する処理モードの間の依存関係の一例を示す図。
【図４】並列符号化の進行状態の一例を示す図。
【図５】第１の実施の形態に係る制御情報の一例を示す図。
【図６】第１の実施の形態に係る符号化装置の処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら本発明の実施の形態について説明する。なお、以下の各図において同一又はほぼ同一の要素には同一の符号を付して説明を省略するか又は簡単に説明し、異なる部分についてのみ詳しく説明する。
【００１９】
（第１の実施の形態）
本実施の形態においては、例えばＨ．２６４規格に準拠している動画像データの符号化を並列に実行し、この符号化においてエラーが発生した場合に効率的に符号化を再実行させる並列符号化装置について説明する。
【００２０】
図１は、本実施の形態に係る符号化装置（エンコード装置）の一例を示すブロック図である。
【００２１】
本実施の形態に係る符号化装置１は、動きベクトル探索部２、モード判定部３、符号化部４、制御部５、記憶装置６を具備する。
【００２２】
なお、本実施の形態において動きベクトル探索部２、モード判定部３、符号化部４と、制御部５とは別構成としているが、例えば制御部５の機能を分割して、動きベクトル探索部２、モード判定部３、符号化部４に組み込むとしてもよい。
【００２３】
符号化部４は、エラー判定部７を具備する。なお、この符号化部４とエラー判定部７とは、分離した構成としてもよい。
【００２４】
記憶装置６は、符号化される動画像データ８、符号化の途中段階において生成される各種の中間データ９１〜９ｎ、符号化データ１０、動画像データ８を分割して得られる複数の処理ブロック（例えばマクロブロック）について、符号化のための複数の処理モードＭＥ，ＩＣ，ＥＣ，ＧＲの進行状態を示す制御情報１１を記憶する。
【００２５】
記憶装置６としては、例えば主記憶装置が用いられる。この記憶装置６は、複数の記憶装置に分割されているとしてもよい。
【００２６】
動きベクトル探索部２、モード判定部３、符号化部４は、記憶装置６に記憶されている動画像データ８に対して動きベクトル探索処理、モード判定処理、符号化処理（例えばエントロピー符号化など）を実行し、生成された符号化データ１１を記憶装置６に記憶する。動きベクトル探索処理、モード判定処理、符号化処理における処理中においては、中間データ９１〜９ｎが、記憶装置６に記憶され、また、記憶装置６から読み出される。
【００２７】
動きベクトル探索部２は、制御情報１１と、動きベクトル探索処理に関する処理ブロック及び処理モードの依存関係とに基づいて、動きベクトル探索処理を実行可能な処理ブロックを検索し、検索された処理ブロックに対して動きベクトル探索処理を実行する。
【００２８】
モード判定部３は、制御情報１１と、モード判定処理に関する処理ブロック及び処理モードの依存関係とに基づいて、モード判定処理を実行可能な処理ブロックを検索し、検索された処理ブロックに対してモード判定処理を実行する。
【００２９】
符号化部４は、制御情報１１と、符号化処理に関する処理ブロック及び処理モードの依存関係とに基づいて、符号化処理を実行可能な処理ブロックを検索し、検索された処理ブロックに対して符号化処理を実行する。
【００３０】
符号化部４のエラー判定部８は、符号化処理においてエラーが発生した場合、又は、符号化データ１０にエラーが発生している場合に、エラー情報１２を制御部５に通知する。
【００３１】
エラー情報１２は、例えば、エラーの発生したフレーム又は処理ブロックの識別情報、エラーの種別を示す情報などを含む。
【００３２】
制御部５は、エラー情報１２を受け付けた場合に、エラーの発生したフレーム又は処理ブロックに対して、符号化が再実行されるように、制御情報１１を更新する。さらに、制御部５は、上記の各種の依存関係に基づいて、エラー発生フレーム又はエラー発生処理ブロックに依存する（符号化においてエラー発生フレーム又はエラー発生処理ブロックに対する処理の結果を参照する、又は、符号化においてエラー発生フレーム又はエラー発生処理ブロックに対する処理の影響を受ける）別のフレーム又は別の処理ブロックに対して、符号化が再実行されるように、制御情報１１の示す進行状態を更新する。
【００３３】
上述したように、動きベクトル探索部２、モード判定部３、符号化部４は、依存関係と、フレーム又は処理ブロックに対する符号化の進行状態に基づいて、実行可能なフレーム又は処理ブロックを検索し、検索された実行可能なフレーム又は処理ブロックに対して、処理を実行する。このため、エラー発生フレーム又はエラー発生処理ブロックとこのエラー発生フレーム又はエラー発生処理ブロックに依存するフレーム又は処理ブロックのみに対して、再度符号化が実行されることになる。
【００３４】
なお、同じエラーが発生しないよう、再実行においては処理の設定が変更されるとしてもよい。
【００３５】
各種の依存関係は、動きベクトル探索部２、モード判定部３、符号化部４、制御部５に組み込まれているとしてもよく、例えば依存関係情報が記憶装置６に記憶されており、動きベクトル探索部２、モード判定部３、符号化部４、制御部５はこの依存関係情報を参照しつつ、処理を実行するとしてもよい。
【００３６】
本実施の形態に係る符号化装置１の動きベクトル探索部２、モード判定部３、符号化部４は、動画像データ８に含まれている複数のフレームのうちの１フレーム内又は複数のフレーム間で、並列に、動きベクトル探索処理、モード判定処理、エントロピー符号化処理を実行する。
【００３７】
符号化装置１のエラー判定部７は、エントロピー符号化処理においてエラーが発生したか否か判定する。
【００３８】
例えば、制御部５は、エラー判定部７によってエラーが発生したと判定された場合に、エラー発生フレーム以降のフレームに対する動きベクトル探索処理とモード判定処理とエントロピー符号化処理とのうちの一部又は全部を、同じエラーが発生しない設定（モード）で再実行させる。
【００３９】
また、例えば、制御部５は、エラー発生フレームに含まれている複数の処理ブロックのうち、エラーの発生した処理ブロック以降について、モード判定処理及びエントロピー符号化処理を再実行させ、エラー発生フレームの次のフレーム以降について、フレームの先頭からモード判定処理及びエントロピー符号化処理を再実行させる。この場合において、例えば、制御部５は、エラー発生フレームの次のフレーム以降について、エラー発生フレームで再実行された部分を参照する処理ブロックのみに対して動きベクトル探索処理を再実行させる。
【００４０】
さらに、例えば、制御部５は、エラー判定部７によってエラーが発生したと判定された場合に、エラー発生フレームについて、先頭から動きベクトル探索処理とモード判定処理とエントロピー符号化処理を再実行させ、エラー発生フレームの次のフレーム以降について、先頭から動きベクトル探索処理とモード判定処理とエントロピー符号化処理を再実行させるとしてもよい。
【００４１】
図２は、本実施の形態に係る符号化装置１のハードウェア構成の一例を示すブロック図である。
【００４２】
符号化装置１は、複数のプロセッサ１３１〜１３ｎ、バス１４、記憶装置６を具備する。
【００４３】
プロセッサ１３１〜１３ｎは、それぞれが並列に動作可能である。それぞれのプロセッサ１３１〜１３ｎ間では、バス１４を介してデータ転送可能に接続されている。また、各プロセッサ１３１〜１３ｎと記憶装置６とは、バス１４を介してデータ転送可能に接続されている。
【００４４】
プロセッサ１３１〜１３ｎは、各処理ブロックにおける符号化の進行状態を制御情報１１によって管理する。
【００４５】
プロセッサ１３１〜１３ｎは、動きベクトル探索処理とモード判定処理と符号化処理とに含まれている処理について、依存関係と制御情報１１とに基づいて、いずれかの処理ブロックに対して実行可能か否か判断し、実行可能と判断された処理ブロックに対して、この実行可能な処理を実行する。
【００４６】
動きベクトル探索部２、モード判定部３、符号化部４、制御部５は、例えば、記憶装置６などに記憶されているプログラムが、複数のプロセッサ１３１〜１３ｎによって実行されることにより実現される。
【００４７】
本実施の形態において、第１の処理ブロックに依存する第２の処理ブロックは、第１の処理ブロックの実行後に処理される。
【００４８】
本実施の形態において、第１の処理モードに依存する第２の処理モードは、第１の処理モードの実行後に実行される。
【００４９】
上記のような構成を持つ符号化装置１の動作について以下に説明する。
【００５０】
本実施の形態に係る符号化装置１では、動画像データ８に含まれている複数のフレームを、さらに複数の処理ブロックに分割し、複数のフレーム又は処理ブロックに対して並列に処理を実行する。これにより、１つのプロセッサで順番にフレーム又は処理ブロックを処理する方式に比べて、高速に符号化を行うことができる。
【００５１】
符号化処理時にいずれかの処理ブロック又はフレームについてエラーが発生した場合に、例えば、符号化装置１は、エラー発生処理ブロック又はエラー発生フレームに対する符号化についてモード判定処理から再実行し、さらにこのエラー発生処理ブロック又はエラー発生フレームのモード判定結果を参照する別の処理ブロック又はフレームに対する符号化についてモード判定処理から再実行する。
【００５２】
これにより、複数の処理ブロック又はフレームに対する並列符号化を行いながら、効率的なエラー制御を行うことができ、動画像データの符号化を高速に行うことができる。
【００５３】
図３は、本実施の形態に係る符号化装置１で用いられる処理ブロックに対する処理モードの間の依存関係の一例を示す図である。
【００５４】
本実施の形態に係る符号化装置１は、動画像データ８に含まれている複数のフレームｎ，ｎ＋１，…，ｎ＋Ｎを、さらに複数の固定幅の処理ブロックｎ：１，ｎ：２，…，ｎ＋Ｎ：ｍに分割して管理する。
【００５５】
さらに、符号化装置１は、この複数の処理ブロックｎ：１，ｎ：２，…，ｎ＋Ｎ：ｍを複数の処理モードＭＥ，ＩＣ，ＥＣ，ＧＲに分割して管理する。ここで複数の処理モードとは、動きベクトル探索部２、モード判定部３、符号化部４において実行される符号化に含まれる処理単位である。本実施の形態において、処理モードＭＥは動きベクトル探索、処理モードＩＣは画面内符号化、処理モードＥＣはエントロピー符号化、処理モードＧＲは参照画像生成とする。符号化処理１は、各処理ブロックｎ：１，ｎ：２，…，ｎ＋Ｎ：ｍに対する各種の処理モードＭＥ，ＩＣ，ＥＣ，ＧＲを複数のプロセッサ１３１〜１３ｎに分散して実行する。
【００５６】
ある処理ブロックに対して実行される処理モードＭＥ，ＩＣ，ＥＣ，ＧＲには、実行順序が定められている。上記の図３において、ある処理ブロックに対して実行される処理モードの順序は、ＭＥ，ＩＣ，ＥＣ，ＧＲである。ある処理ブロックに対して、定められた順序を変えて処理モードが実行されることはない。
【００５７】
さらに、処理ブロックｎ：１，ｎ：２，…，ｎ＋Ｎ：ｍに対する処理モードＭＥ，ＩＣ，ＥＣ，ＧＲ間には、各種の依存関係が存在する。
【００５８】
例えば、第１の処理ブロックに対する第１の処理モードは、第２の処理ブロックに対する第２の処理モードに依存しているとする。この場合、第２の処理ブロックに対する第２の処理モードが終了していないと、第１の処理ブロックに対する第１の処理モードは実行されない。
【００５９】
第１の処理ブロックに対する第１の処理モードは、第２の処理ブロックに対する第２の処理モードに依存しており、さらに、第３の処理ブロックに対する第３の処理モードは、第１の処理ブロックに対する第１の処理モードに依存しているとする。この場合、第３の処理ブロックに対する第３の処理モードは、第２の処理ブロックに対する第２の処理モードにも依存していることになる。さらに、依存関係が続く場合も同様である。処理の結果から影響を受ける範囲で、依存関係は生じている。
【００６０】
本実施の形態に係る符号化装置１は、処理モードの依存関係、処理ブロックに対する処理モードの間の依存関係を考慮し、制御情報１１におけるエラー発生処理ブロックとこのエラー発生処理ブロックに依存する処理ブロックの符号化の進行状態を、再実行に設定する。
【００６１】
これにより、複数のプロセッサ１３１〜１３ｎを備える符号化装置１においては、同時に複数の処理を実行させることが可能であり、かつ、エラー発生時にこのエラー発生に関係する処理のみを再実行することが可能である。
【００６２】
上記図３において、動画像データ８は、フレームｎ，ｎ＋１，…，ｎ＋Ｎを含む。
【００６３】
フレームｎは、処理ブロックｎ：１，ｎ：２，…，ｎ：ｍを含む。
【００６４】
フレームｎ＋１は、処理ブロックｎ＋１：１，ｎ＋１：２，…，ｎ＋１：ｍを含む。
【００６５】
フレームｎ＋Ｎは、処理ブロックｎ＋Ｎ：１，ｎ＋Ｎ：２，…，ｎ＋Ｎ：ｍを含む。
【００６６】
依存関係について以下に具体例を説明する。これらの依存関係は、動きベクトル探索処理、モード判定処理、エントロピー符号化処理に組み込まれているとしてもよく、依存関係情報によって管理されているとしてもよい。
【００６７】
第１の例において、処理ブロックｎ＋１：２に対する処理モードＭＥは、処理ブロックｎ：３に対する処理モードＧＲ、かつ、処理ブロックｎ＋１：１に対する処理モードＭＥが全て完了していないと、実行できない。
【００６８】
第２の例において、処理ブロックｎ＋１：２に対する処理モードＥＣは、処理ブロックｎ＋１：１に対する処理モードＥＣ、かつ、処理ブロックｎ＋１：２に対する処理モードＩＣが全て完了していないと、実行できない。
【００６９】
第３の例において、処理ブロックｎ＋１：２に対する処理モードＩＣは、処理ブロックｎ＋１：１に対する処理モードＩＣ、かつ、処理ブロックｎ＋１：２に対する処理モードＭＥが全て完了していないと、実行できない。
【００７０】
また、上記第２の例に関連して、例えば、各フレームｎ，ｎ＋１，…，ｎ＋Ｎの最後の処理ブロックｎ：ｍ，ｎ＋１：ｍ，…，ｎ＋Ｎ：ｍでは、依存関係が増える。処理ブロックｎ＋１：ｍに対する処理モードＥＣは、処理ブロックｎ＋１：ｍ−１に対する処理モードＥＣ、処理ブロックｎ＋１：ｍに対する処理モードＩＣ、かつ、処理ブロックｎ：ｍに対する処理モードＥＣが全て完了していないと、実行できない。
【００７１】
複数のプロセッサ１３１〜１３ｎは、制御情報１１を読み出し、実行可能な処理ブロックに対する処理モードを検索し、検索された処理ブロックに対する処理モードを実行し、実行終了後に制御情報１１を更新し、次に実行可能な処理ブロックに対する処理モードを探す。複数のプロセッサ１３１〜１３ｎは、それぞれが上記の制御を繰り返すことで、並列に動画像データ８の符号化を行う。
【００７２】
制御情報１１は、各フレームｎ，ｎ＋１，…，ｎ＋Ｎについて、各処理ブロックｎ：１，ｎ：２，…，ｎ＋Ｎ：ｍがどの処理モードまで終了しているのかを示す情報を含む。
【００７３】
図４は、符号化の進行状態の一例を示す図である。
【００７４】
上述したように、本実施の形態に係る符号化においては、符号化の方式に応じて、フレームｎ＋１の処理ブロックｎ＋１：ｋに対する処理モードＭＥは、前のフレームｎの処理ブロックｎ：ｋ＋２に対する処理モードＧＲの終了後でないと開始できない、などの制約がある。
【００７５】
本実施の形態に係る符号化において、処理ブロックに対する符号化は、フレーム内では上の処理ブロックから下の処理ブロックへ、また、隣接するフレーム間では前のフレームの処理ブロックから後のフレームの処理ブロックへと、遷移する。
【００７６】
以下に、エラー制御の動作について説明する。
【００７７】
動画像データ８の符号化では、稀にエントロピー符号化処理中にエラーが発生する場合がある。
【００７８】
エラーとしては、例えば、１処理ブロックは所定のサイズ（例えば３２００ｂｉｔ）以下であるなどのような、Ｈ．２６４規格で定められた条件を満たさないこと、または、符号化データ（出力ストリーム）１０のレート制御がＨ．２６４規格で定められた動作モデルを満たさないこと（ＨＲＤアンダーフロー）などがある。
【００７９】
１処理ブロックが所定サイズを超えた場合には、以下の処理が実行される。
【００８０】
エラー判定部７は、１処理ブロックについて所定サイズを超えることを理由としてエラーが発生した場合、エラー発生処理ブロックの識別情報、エラー種別情報などに基づいて、エラー情報１２を生成する。エラー判定部７は、エラー情報１２を制御部５に通知する。
【００８１】
制御部５は、エラー判定部７からエラー情報１２を受け付けると、複数のプロセッサ１３１〜１３ｎのすべてに対して動作を停止する旨を伝える。
【００８２】
すべてのプロセッサ１３１〜１３ｎが停止した後、制御部５は、受け取ったエラー情報１２と処理ブロックに対する処理モードの依存関係とに応じて制御情報１１を書き換える。
【００８３】
具体的には、制御部５は、エラー発生処理ブロックについて、処理モードＩＣから符号化が再実行されるように制御情報１１を書き換える。
【００８４】
また、制御部５は、エラー発生フレーム以降のフレームについて、エラー発生フレームを参照している処理ブロックに対する処理モードＭＥから処理が再実行されるように、制御情報１１を書き換える。
【００８５】
その後、制御部５は、すべてのプロセッサ１３１〜１３ｎに対して処理再開を命令する。これにより、エラー発生処理ブロックに対する処理モードＩＣ以降に実行されるべき処理ブロックに対する処理モードがやり直され、エラーの発生していない符号化データ１０が生成される。
【００８６】
ただし、エラー発生フレームに対して、単に処理モードＩＣをやり直すのみでは、同じ設定（オプション、モード、処理形態）が選択され、エントロピー符号化処理時に同じエラーが発生する場合がある。このように同じエラーが発生することを防止するため、処理モードＩＣの再実行時には、エラー情報１２に基づいて、エラー発生処理ブロックについて、必ずエラーが発生しない設定（例えば、処理モードＩＣにおいて画面内符号化をキャンセルし、画面内符号化を行わないオプションなど）が適用される。
【００８７】
このようなエラー発生後の再実行を含む符号化においては、一つの処理ブロックに対して複数回にわたって処理が繰り返される場合がある。この場合、処理モードＩＣにおいて毎回エラーが発生しない設定が適用されるように、符号化装置１のエラー判定部１２又は制御部５は、エラー情報１２を、エントロピー符号化処理が正常終了するまで記憶装置６に記憶し、エラーが発生した場合には、この発生したエラーに対するエラー情報１１を記憶装置６に追記する。
【００８８】
エラー発生フレーム以降のフレームは、処理モードＭＥ（動きベクトル探索）の参照フレームとして、前のフレームの処理モードＩＣ（画面符号化）の結果を用いる。したがって、処理モードＩＣ（画面内符号化）が再実行された第１の処理ブロックを参照する第２の処理ブロックがあれば、第２の処理ブロックに対して、処理モードＭＥ（動きベクトル探索）以降の処理が再実行されるように、制御部５は制御情報１１を書き換える。
【００８９】
なお、上記図４に示すように、後方のフレームについては、前方のフレームよりも実効済みの処理ブロックの和が少ないため、後方のフレームについてすべての符号化を再実行させたとしても、処理性能に与える影響は少ない。したがって、エラーの発生したフレームよりもある程度後ろに位置するフレームについては、すべての処理ブロックについてすべての処理モードを再実行させるように、制御部５は制御情報１１を書き換えるとしてもよい。
【００９０】
次に、ＨＲＤアンダーフローが発生した場合の動作について説明する。
【００９１】
エラー判定部７によってＨＲＤアンダーフローが発生したと判定された場合、エラー判定部７は、エラー発生処理ブロックの識別情報、エラー種別情報などを含むエラー情報１２を生成する。エラー判定部７は、生成されたエラー情報１２を制御部５に通知する。
【００９２】
制御部５は、エラー情報１２を受け付けると、すべてのプロセッサ１３１〜１３ｎを停止する。すべてのプロセッサ１３１〜１３ｎが停止された場合、制御部５は、制御情報１１を書き換える。
【００９３】
例えば、エラー発生フレームのピクチャタイプが、Ｈ．２６４規格におけるＰピクチャ又はＢピクチャの場合、制御部５は、次のＩピクチャ又はＰピクチャまでのすべてのフレームについて、フレームの先頭から符号化を再実行するよう、制御情報１１を更新する。この場合において、制御部５は、再度符号化されるフレームについて、エラー情報１２に基づいて、前のフレームと同じフレームを出力させるための情報が符号化されるように（フレーム全体をスキップに設定するように）、制御情報１１を設定する。
【００９４】
例えば、エラー発生フレームのピクチャタイプが、Ｈ．２６４規格におけるＩピクチャの場合、制御部５は、次のＰピクチャまでのすべてのフレームについて、フレームの先頭から符号化を再実行するように、制御情報１１を更新する。この場合において、制御部５は、エラー情報１２に基づいて、エラー発生フレームについてＰピクチャとして符号化が行われ、かつ、エラー発生フレームをスキップ設定するように、制御情報１１を更新する。また、制御部５は、エラー情報１２に基づいて、エラー発生フレームの次のＰピクチャまでのＢピクチャのすべての符号化について、フレームをスキップ設定するように、制御情報１１を更新する。さらに、制御部５は、エラー情報１２に基づいて、エラー発生フレームの次のＰピクチャがＩピクチャとして符号化されるよう、制御情報１１を更新する。
【００９５】
その後、制御部５は、すべてのプロセッサ１３１〜１３ｎに処理再開を命令し、これによりエラーの発生していない符号化データ１０が生成される。
【００９６】
図５は、本実施の形態に係る制御情報１１の一例を示す図である。
【００９７】
この制御情報１１では、少なくとも一つのフレームの識別情報と、フレームに含まれている複数の処理ブロックの識別情報とが関連付けられている。
【００９８】
また、制御情報１１では、各処理ブロックの識別情報について、処理モードの識別情報が関連付けられている。
【００９９】
そして、制御情報１１では、各処理モードの識別情報に対して、その処理ブロックに対して処理モードが実行済みか否かを示す情報が付される。
【０１００】
制御情報１１をアクセスすることにより、各処理ブロックについて、どこまで処理モードが進行しているか把握可能である。
【０１０１】
例えば、上記図５において、フレームｎ内の処理ブロックｎ：２については、処理モードＭＥ〜ＧＲまでが実行済みであることが判断可能である。
【０１０２】
ここで、処理ブロックｎ：２の処理モード（エントロピー符号化）ＥＣでエラーが発生したとする。この場合、例えば、制御部５は、制御情報１１における処理ブロックｎ：２の処理モードＭＥ，ＩＣについて、再実行するために、未実行の設定を行う。
【０１０３】
さらに、制御部５は、エラー発生処理ブロックｎ：２における処理モードＭＥ，ＩＣの結果の影響を受ける他の処理ブロックにおける処理モード（エラー発生処理モードに依存している他の処理モード）について、再実行するために、未実行を設定する。
【０１０４】
動きベクトル探索部２、モード判定部３、符号化部４は、制御情報１１と、処理ブロックに対する処理モードの間の依存関係に基づいて、未実行の処理ブロックに対する処理モードのうち、参照先の処理ブロックに対する処理モードがすべて実行済みの処理モード、又は、未実行でありいずれの処理モードにも依存していない処理モードを検索し、実行する。
【０１０５】
なお、制御情報１１には、その他にも、再実行されるフレームの種別（Ｐピクチャ、Ｂピクチャ、Ｉピクチャ）の指定、再実行されるフレームに対するスキップ設定などの情報を含む。
【０１０６】
図６は、本実施の形態に係る符号化装置１の処理の一例を示すフローチャートである。
【０１０７】
ステップＳ１において、符号化装置１は、実行可能な処理ブロックに対して並列に符号化を実行する。
【０１０８】
ステップＳ２において、エラー判定部７は、エラーが発生したか否か判定する。
【０１０９】
エラーが発生していないと判定された場合、ステップＳ３において、符号化装置１は、符号化を継続するか否か判断する。符号化を継続する場合は、処理はステップＳ１に戻り、符号化が完了された場合には、処理は終了する。
【０１１０】
エラーが発生したと判定された場合、ステップＳ４において、制御部５は、エラー発生処理ブロックの識別情報、エラー種別情報を含むエラー情報１２を、制御部５に通知する。
【０１１１】
ステップＳ５において、制御部５は、複数のプロセッサ１３１〜１３ｎに対して、符号化の停止を命令する。
【０１１２】
ステップＳ６において、制御部５は、エラー情報１２に基づいて、エラー発生処理ブロック、及び、このエラー発生処理ブロックと依存関係にある処理ブロックについて、各種の処理モードの状態を更新する。また、制御部５は、エラー情報１２に基づいて、エラーの発生しない設定を選択して符号化を実行するよう、制御情報１１を変更する。
【０１１３】
ステップＳ７において、制御部５は、複数のプロセッサ１３１〜１３ｎに対して、符号化の再開、すなわち、制御情報１１で実行可能となっている処理ブロックに対する処理モードの実行を命令する。これにより、処理はステップＳ１に戻り、並列に符号化が再実行される。
【０１１４】
以上説明した本実施の形態においては、エラーが発生した場合であっても、並列処理への影響を抑えつつ、符号化を行うことができる。
【０１１５】
すなわち、本実施の形態においては、エントロピー符号化処理時にエラーが発生しなかった場合には、並列に符号化を実行しても何ら影響がないため、処理スピードを高速化できる。
【０１１６】
本実施の形態においてエントロピー符号化処理時にエラーが発生した場合には、再実行が必要な処理ブロックのみに対して、再度エラーが発生しない条件で再実行が必要な処理モードのみが実行される。このため、符号化を並列に実行し、さらにエラーの発生しないように再実行を行うことができる。本実施の形態においては、エラー発生に基づく符号化の再実行を効率化することができ、エラーの発生が符号化の速度に与える影響を低減できる。
【０１１７】
本実施の形態においては、エラー判定部７から制御部５にエラー情報１２が通知されるが、例えば、エラー判定部７はエラー情報１２を記憶装置６に記憶し、制御部５は記憶装置６に記憶されたエラー情報１２を読み出すとしてもよい。
【０１１８】
本実施の形態において、各種の構成要素は自由に修正可能であり、自由に分割又は組み合わせることができる。例えば、制御部５の一部の機能（処理モード実行後に制御情報１１を更新する機能など）又は全部の機能は、動きベクトル探索部２、モード判定部、符号化部に分散して組み込まれるとしてもよい。
【０１１９】
本実施の形態において、動画像データ８に含まれるフレーム数は、１以上であればよい。また、本実施の形態において、処理ブロックは、フレームに少なくとも一つ含まれるとする。
【０１２０】
（第２の実施の形態）
本実施の形態においては、上記第１の実施の形態に係る符号化装置１の変形例について説明する。
【０１２１】
符号化装置１において、エラーが発生する処理ブロック及びエラー発生タイミングは事前には分からない。また、エラーの発生回数が多い動画像データが処理対象となる場合もある。
【０１２２】
再符号化に必要となる時間は、符号化が完了するまでの時間に制限がない場合には問題とならない。しかしながら、例えば、放送用の映像符号化、テレビ会議システムにおける映像符号化などのような符号化においては、各フレームの符号化終了がある時間までに完了している必要がある。もし、符号化データの受信先において、復号時に符号化データが受信されていない場合には、動画像データの滑らかな再生が困難となる。したがって、リアルタイム性を求められる符号化では、再符号化のための時間が長くなることを回避する必要がある。
【０１２３】
このように、リアルタイム性が必要な符号化においては、例えば、１処理ブロックのサイズが３２００ｂｉｔを超えたためにエラーが発生した場合であっても、規定時間までに符号化を完了させることを優先させることが望まれる場合がある。
【０１２４】
そこで、上記第１の実施の形態において、エラー判定部７は、エラー発生フレームの出力期限を示す情報と、このエラーに対して再符号化に必要になると想定される時間とを比較し、エラー発生フレームの出力期限に余裕があると判定される場合にのみ、エラー情報１２を制御部５に通知するとしてもよい。
【０１２５】
なお、例えば、フレームの出力期限、再符号化に必要となると想定される時間などのような、エラー情報１２を発生させるか否かを判断するためのエラー発生条件情報は、実験、実測、統計的、理論的観点から設定される。エラー発生条件情報は、記憶装置６に記憶されているとしてもよく、エラー判定部７に組み込まれているとしてもよい。
【０１２６】
これにより、エラーの解消よりもリアルタイム性を優先させることができる。
【産業上の利用可能性】
【０１２７】
本発明は、画像データの符号化の技術分野に有効である。
【符号の説明】
【０１２８】
１…符号化装置、２…動きベクトル探索部、３…モード判定部、４…符号化部、５…制御部、６…記憶装置、７…エラー判定部、８…動画像データ、９１〜９ｎ…中間データ、１０…符号化データ、１１…制御情報、１２…エラー情報、１３１〜１３ｎ…プロセッサ、１４…バス、ｎ〜ｎ＋Ｎ…フレーム、ｎ：１〜ｎ＋Ｎ：ｍ…処理ブロック。
【図１】
2011066843.tif 000003
【図２】
2011066843.tif 000004
【図３】
2011066843.tif 000005
【図４】
2011066843.tif 000006
【図５】
2011066843.tif 000007
【図６】
2011066843.tif 000008