(57)【要約】【課題】  画像の符号化処理を含む複数のタスクを１フレーム期間内に終了させる。【解決手段】  動画の各フレームを符号化する符号化処理タスクと複数のタスクのいずれかとを実行する画像処理装置のタスクを制御するタスク制御装置は、符号化対象のフレームである対象フレームのデータ量を算出するデータ量算出部と、対象フレームの画素値の分散を算出する分散値算出部と、対象フレームの符号化にかかる時間である符号化時間を、対象フレームのデータ量と対象フレームの画素値の分散とに基づいて予測する予測部と、複数のタスクのうち、画像処理装置が動画のフレーム間隔である１フレーム期間に実行するタスクを、予測部で予測した符号化時間に基づいてフレーム毎に決定する決定部とを有する。【選択図】  図１
2016208159.tif 000002
【特許請求の範囲】
【請求項１】
動画の各フレームを符号化する符号化処理タスクと複数のタスクのいずれかとを実行する画像処理装置のタスクを制御するタスク制御装置において、
符号化対象のフレームである対象フレームのデータ量を算出するデータ量算出部と、
前記対象フレームの画素値の分散を算出する分散値算出部と、
前記対象フレームの符号化にかかる時間である符号化時間を、前記対象フレームのデータ量と前記対象フレームの画素値の分散とに基づいて予測する予測部と、
前記複数のタスクのうち、前記画像処理装置が動画のフレーム間隔である１フレーム期間に実行するタスクを、前記予測部で予測した前記符号化時間に基づいてフレーム毎に決定する決定部と、
を有することを特徴とするタスク制御装置。
【請求項２】
請求項１に記載のタスク制御装置において、
前記分散値算出部は、前記対象フレームを含む２つのフレーム間の画素値の差の分散と前記対象フレーム内の画素値の分散との和を、前記対象フレームの画素値の分散としてフレーム毎に算出する
ことを特徴とするタスク制御装置。
【請求項３】
請求項１または請求項２のいずれか１項に記載のタスク制御装置において、
前記複数のタスクは、第１の処理を互いに異なる精度で実行する所定数のタスクを含み、
前記決定部は、前記画像処理装置が実行する第１の処理として、前記所定数のタスクのうちの１つを、前記予測部で予測した前記符号化時間と前記所定数のタスクのそれぞれの処理時間とに基づいて決定する
ことを特徴とするタスク制御装置。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載のタスク制御装置において、
前記複数のタスクのうちの少なくとも１つは、前記符号化処理タスクを実行する符号化部と記憶部との間でデータを転送するデータ転送タスクであり、
前記決定部は、前記複数のタスクのうち、前記データ転送タスク以外に前記画像処理装置が実行するタスクを、前記データ転送タスクで転送されるデータの転送時間と前記予測部で予測した前記符号化時間とに基づいてフレーム毎に決定する
ことを特徴とするタスク制御装置。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載のタスク制御装置において、
フレームのデータ量に応じて分けた複数のグループとフレームの画素値の分散の大きさに応じて分けた複数のグループとの組み合わせに対応する符号化時間を示す情報を、予め測定された前記符号化処理の処理時間に基づいて記憶する第１記憶部と、
予め測定されたタスクの処理時間を記憶する第２記憶部とを有し、
前記予測部は、前記対象フレームにおいて、前記対象フレームのデータ量と前記対象フレームの画素値の分散との組み合わせに対応する符号化時間を前記第１記憶部に記憶された情報に基づいて予測し、
前記決定部は、前記複数のタスクのうち、前記画像処理装置が実行するタスクを、前記予測部で予測した前記符号化時間と前記第２記憶部に記憶されたタスクの処理時間とに基づいて決定する
ことを特徴とするタスク制御装置。
【請求項６】
請求項５に記載のタスク制御装置において、
テストモード中に、前記符号化処理タスクおよび前記複数のタスクのそれぞれの処理時間を測定する測定部を有することを特徴とするタスク制御装置。
【請求項７】
請求項１ないし請求項６のいずれか１項に記載のタスク制御装置において、
動画のフレーム間隔を検出し、１フレーム期間を示す情報を前記決定部に通知するフレームレート監視部を有することを特徴とするタスク制御装置。
【請求項８】
動画の各フレームを符号化する符号化処理タスクと複数のタスクのいずれかとを実行する画像処理装置のタスクを制御するタスク制御方法において、
符号化対象のフレームである対象フレームのデータ量を算出し、
前記対象フレームの画素値の分散を算出し、
前記対象フレームの符号化にかかる時間である符号化時間を、前記対象フレームのデータ量と前記対象フレームの画素値の分散とに基づいて予測し、
前記複数のタスクのうち、前記画像処理装置が動画のフレーム間隔である１フレーム期間に実行するタスクを、予測した前記符号化時間に基づいてフレーム毎に決定する
ことを特徴とするタスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に用いられるタスク制御装置およびタスク制御方法に関する。
【背景技術】
【０００２】
動画を処理する画像処理装置は、入力される画像のノイズを除去するフィルタ処理およびフィルタ処理後の画像を符号化する符号化処理等の複数の処理（タスク）を、動画のフレーム間隔である１フレーム期間内に実行する。なお、フィルタ処理および符号化処理を含む処理が１フレーム期間内に終了しない場合、符号化された動画を復号して再生したときに、一部のフレームが表示されないコマ落ちが発生するおそれがある。このため、フィルタ処理および符号化処理等を実行するＣＰＵ（Central Processing Unit）の負荷に応じてフィルタ処理等の演算量を調整する動画圧縮方法が提案されている（例えば、特許文献１参照）。この種の動画圧縮方法は、フィルタ処理および符号化処理を含む処理にかかる時間が目標のフレームレートで指定されるフレーム間隔を超えると判断した場合、画像に含まれるノイズの大小に応じて、フィルタ処理の演算量を低減するか否かを選択する。目標のフレームレートは、例えば、画像処理装置を使用するユーザによりアプリケーションプログラムを通じて指定される。また、ノイズの大小は、例えば、画像処理装置を使用するユーザから指定される画像に関する画質情報に基づいて判定される。
【０００３】
ここで、符号化処理は、例えば、入力される画像と予測画像との差分を示す差分画像信号を離散コサイン変換する処理、離散コサイン変換後の信号を量子化係数を用いて量子化する処理および量子化後の信号をエントロピー符号化する処理等を含む。例えば、エントロピー符号化された信号を所定の符号化単位（期間）で積算して得られる発生符号量は、量子化係数が大きくなるほど小さくなる。このため、発生符号量が予め決められた上限を超えないように量子化係数を調整する符号化装置が提案されている（例えば、特許文献２参照）。この種の符号化装置は、発生符号量を予測し、予測した発生符号量に基づいて量子化係数を調整する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３４６２１６号公報
【特許文献２】特開２００８−２４５２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
入力される画像によっては、符号化処理が１フレーム期間内に終了しない場合がある。例えば、ＨＤＴＶ（High Definition Television）画像より高精細のＵＨＤＴＶ（Ultra High Definition Television）画像では、符号化処理にかかる時間は、ＨＤＴＶ画像を符号化する場合に比べて長くなる傾向にある。このため、ＵＨＤＴＶ画像を符号化する際に、符号化処理以外の複数の処理（タスク）がＨＤＴＶ画像を符号化する場合と同じようにスケジューリングされる画像処理装置では、ＵＨＤＴＶ画像の符号化処理が１フレーム期間内に終了しない場合がある。この場合、符号化された動画を復号して再生したときに、コマ落ちが発生するおそれがある。
【０００６】
１つの側面では、本件開示のタスク制御装置およびタスク制御方法は、画像の符号化処理を含む複数のタスクを１フレーム期間内に終了させることを目的とする。
【課題を解決するための手段】
【０００７】
一観点によれば、動画の各フレームを符号化する符号化処理タスクと複数のタスクのいずれかとを実行する画像処理装置のタスクを制御するタスク制御装置は、符号化対象のフレームである対象フレームのデータ量を算出するデータ量算出部と、対象フレームの画素値の分散を算出する分散値算出部と、対象フレームの符号化にかかる時間である符号化時間を、対象フレームのデータ量と対象フレームの画素値の分散とに基づいて予測する予測部と、複数のタスクのうち、画像処理装置が動画のフレーム間隔である１フレーム期間に実行するタスクを、予測部で予測した符号化時間に基づいてフレーム毎に決定する決定部とを有する。
【０００８】
別の観点によれば、動画の各フレームを符号化する符号化処理タスクと複数のタスクのいずれかとを実行する画像処理装置のタスクを制御するタスク制御方法では、符号化対象のフレームである対象フレームのデータ量を算出し、対象フレームの画素値の分散を算出し、対象フレームの符号化にかかる時間である符号化時間を、対象フレームのデータ量と対象フレームの画素値の分散とに基づいて予測し、複数のタスクのうち、画像処理装置が動画のフレーム間隔である１フレーム期間に実行するタスクを、予測した符号化時間に基づいてフレーム毎に決定する。
【発明の効果】
【０００９】
本件開示のタスク制御装置およびタスク制御方法は、画像処理装置に実行させるタスクを選択することで、画像の符号化処理を含む複数のタスクを１フレーム期間内に終了させることができる。
【図面の簡単な説明】
【００１０】
【図１】タスク制御装置およびタスク制御方法の一実施形態を示す図である。
【図２】タスク制御装置およびタスク制御方法の別の実施形態を示す図である。
【図３】対象フレームの画素値の分散の算出方法の一例を示す図である。
【図４】符号化時間テーブルの一例を示す図である。
【図５】タスク時間テーブル、タスク情報管理データおよびシステム情報管理データの一例を示す図である。
【図６】図２に示したフレームレート監視部、データ算出部および分散値算出部が実行する処理の流れの一例を示す図である。
【図７】図２に示したスケジュール部およびタスク情報管理部が実行する処理の流れの一例を示す図である。
【図８】図２に示したタスク制御装置の動作の一例を示す図である。
【図９】タスクを登録する際のタスク情報管理部の動作の一例を示す図である。
【図１０】タスクの処理時間を測定する際のスケジュール部および測定部の動作の一例を示す図である。
【図１１】符号化時間を予測する際のタスク情報管理部の動作の一例を示す図である。
【図１２】デインターレース処理を異なる精度で実行するタスクの一例を示す図である。
【図１３】ノイズリダクション処理を異なる精度で実行するタスクの一例を示す図である。
【図１４】図２に示したタスク制御装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、タスク制御装置およびタスク制御方法の一実施形態を示す。図１に示すタスク制御装置１０は、ハードウェアのみで実現されてもよく、タスク制御プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。タスク制御装置１０は、動画の各フレームを符号化する符号化処理（以下、符号化処理タスクとも称する）と複数のタスクのいずれかとを実行する画像処理装置２に搭載され、画像処理装置２で実行されるタスクを制御する。例えば、画像処理装置２は、レジスタ４、前処理部６、符号化部８およびタスク制御装置１０を有する。
【００１３】
レジスタ４は、動画の１フレームの画像に関する画像情報ＩＩＮＦを保持する。画像情報ＩＩＮＦは、例えば、水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆ等を含む。水平サイズＨは、画像の水平方向のサイズ（単位は、画素数）を示し、垂直サイズＶは、画像の垂直方向のサイズ（単位は、画素数）を示す。また、ビット数Ｂは、１画素当たりの輝度信号のビット数を示す。輝度色差比Ｆは、１画素当たりの色差信号のビット数（２つの色差信号のビット数の和）を１画素当たりの輝度信号のビット数で除算した値を示す。
【００１４】
例えば、画像がＹＵＶ４２０形式の場合、輝度色差比Ｆは２であり、画像がＹＵＶ４２２形式の場合、輝度色差比Ｆは１であり、画像がＹＵＶ４４４形式の場合、輝度色差比Ｆは０．５である。水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆ等は、画像処理装置２内のＣＰＵ（図示せず）等によりレジスタ４に格納される。ＹＵＶのＹは輝度を示し、ＵＶは色差（Ｕは輝度と青の差、Ｖは輝度と赤の差）を示す。
【００１５】
前処理部６は、符号化対象のフレームである対象フレームの画像データＩＤＡＴＡを画像処理装置２の外部から順次受け、画像データＩＤＡＴＡのノイズを除去するノイズリダクション処理等を含む前処理を実行する。前処理が実行された画像データＩＤＡＴＡは、画像データＰＤＡＴＡとして符号化部８に転送される。
【００１６】
符号化部８は、動画の各フレームを符号化する符号化処理を実行する。例えば、符号化部８は、前処理部６で処理された画像データＰＤＡＴＡを、Ｈ．２６５等の国際標準規格にしたがって符号化する。なお、符号化部８は、画像データＰＤＡＴＡを、ＭＰＥＧ−２（Moving Picture Experts Group phase 2）にしたがって符号化してもよいし、Ｈ．２６４にしたがって符号化してもよい。符号化処理が実行された画像データＰＤＡＴＡは、エレメンタリストリームＥＳとして、例えば、画像処理装置２の外部（例えば、外部記憶装置、動画像復号装置等）に転送される。
【００１７】
なお、前処理および符号化処理等の複数の処理（タスクＴＳＫ）の実行は、タスク制御装置１０によりスケジューリングされる。図１に示した括弧内の図は、タスク制御装置１０によりスケジューリングされるタスクＴＳＫ（ＴＳＫ１、ＴＳＫ２、ＴＳＫ３、ＴＳＫｃ（ＴＳＫｃ１、ＴＳＫｃ２、ＴＳＫｃ３、ＴＳＫｃ４））の一例を示す。タスクＴＳＫｃは、符号化部８で実行される符号化処理タスクであり、各フレーム期間ＴＦＲＭ（ＴＦＲＭ１、ＴＦＲＭ２、ＴＦＲＭ３、ＴＦＲＭ４）に実行される。また、タスクＴＳＫ１、ＴＳＫ２、ＴＳＫ３は、例えば、実行可能なフレーム期間ＴＦＲＭに前処理部６により実行される。フレーム期間ＴＦＲＭは、動画のフレーム間隔である１フレーム期間に対応する。
【００１８】
図１に示した括弧内の図の例では、画像処理装置２は、タスク制御装置１０により選択されたタスクＴＳＫを１フレーム期間ＴＦＲＭに実行する。例えば、タスク制御装置１０は、画像処理装置２に実行させるタスクＴＳＫをフレーム毎に決定するタスク制御方法に基づいて動作する。
【００１９】
タスク制御装置１０は、データ量算出部１２、分散値算出部１４、予測部１６および決定部１８を有する。
【００２０】
データ量算出部１２は、対象フレームの画像データＩＤＡＴＡのデータ量を算出する。例えば、データ量算出部１２は、レジスタ４に保持されている画像情報ＩＩＮＦを取得する。そして、データ量算出部１２は、画像情報ＩＩＮＦに含まれる水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆを用いて、画像データＩＤＡＴＡのデータ量を算出する。画像データＩＤＡＴＡのデータ量βは、水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆを用いて、式（１）で表される。式（１）の”＊”は、乗算を示す。
【００２１】
β＝（Ｈ＊Ｖ＊Ｂ）＋（Ｈ＊Ｖ＊Ｂ）／Ｆ      ・・・（１）
データ量算出部１２は、画像データＩＤＡＴＡのデータ量βを示す情報ＶＩＮＦを予測部１６に転送する。以下、画像データＩＤＡＴＡのデータ量βは、対象フレームのデータ量βとも称される。
【００２２】
分散値算出部１４は、前処理部６に供給される画像データＩＤＡＴＡを順次受け、対象フレームの画素値の分散を算出する。なお、対象フレームの画像データＩＤＡＴＡは、対象フレーム内の各画素の値を示すデータの集合である。例えば、分散値算出部１４は、対象フレームの画像データＩＤＡＴＡに含まれる画素の値の分散（対象フレーム内の画素値の分散）を算出する。なお、分散値算出部１４は、対象フレームを含む２つのフレーム間の画素値の差の分散と対象フレーム内の画素値の分散との和を、対象フレームの画素値の分散として算出してもよい。図１では、対象フレーム内の画素値の分散を対象フレームの画素値の分散として説明する。
【００２３】
対象フレーム内の画素値の分散σ2は、対象フレーム内の位置ｉの画素の値Ｙｉ（画素値Ｙｉ）、対象フレームの画素値の平均Ｍｙ（画像データＩＤＡＴＡに含まれる画素の値の平均Ｍｙ）および対象フレームの画素数Ｎ（＝Ｈ＊Ｖ）を用いて、式（２）で表される。
【００２４】
【数１】
2016208159.tif 000003
【００２５】
分散値算出部１４は、対象フレームの画素値の分散σ2を示す情報ＤＩＮＦを、予測部１６に転送する。以下、画素値の分散σ2は、分散値σ2とも称される。
【００２６】
予測部１６は、対象フレームの符号化にかかる時間である符号化時間を、対象フレームのデータ量βと対象フレームの画素値の分散σ2とに基づいて予測する。例えば、タスク制御装置１０は、画像処理装置２の設計時のシミュレーションまたは実験等に基づいて算出される符号化時間に基づいて生成される符号化時間テーブルを記憶部（図示せず）等に予め保持する。符号化時間テーブルには、フレームのデータ量に応じて分けた複数のグループとフレームの画素値の分散の大きさに応じて分けた複数のグループとの組み合わせに対応する符号化時間が予め登録される。
【００２７】
例えば、予測部１６は、データ量算出部１２から受けた情報ＶＩＮＦに含まれるデータ量βと分散値算出部１４から受けた情報ＤＩＮＦに含まれる分散値σ2との組み合わせに対応する符号化時間を、符号化時間テーブルに基づいて予測する。そして、予測部１６は、予測した符号化時間を示す情報ＴＩＮＦを、決定部１８に転送する。
【００２８】
決定部１８は、複数のタスクＴＳＫのうち、符号化処理タスクＴＳＫｃ以外に画像処理装置２が１フレーム期間ＴＦＲＭに実行するタスクＴＳＫを、予測部１６で予測した符号化時間に基づいてフレーム毎に決定する。なお、決定部１８は、１フレーム期間ＴＦＲＭに符号化処理タスクＴＳＫｃが終了するように、画像処理装置２が実行するタスクＴＳＫを、予測部１６で予測した符号化時間に基づいてフレーム毎に決定する。
【００２９】
例えば、決定部１８は、１フレーム期間ＴＦＲＭのうち、符号化処理タスクＴＳＫｃ以外のタスクＴＳＫに割り当てる空き時間を、予測部１６で予測した符号化時間に基づいて算出する。そして、決定部１８は、画像処理装置２が符号化処理タスクＴＳＫｃ以外に実行するタスクＴＳＫを空き時間に基づいて決定する。
【００３０】
例えば、符号化処理タスクＴＳＫｃが実行されていない場合、決定部１８は、１フレーム期間ＴＦＲＭのうち、残り時間から符号化時間を除いた空き時間を、予測部１６から受けた情報ＴＩＮＦに基づいて算出する。そして、決定部１８は、予め決められた各タスクＴＳＫの優先順と、各タスクＴＳＫの処理時間と、空き時間とに基づいて、画像処理装置２に実行させるタスクＴＳＫを決定する。
【００３１】
図１に示した括弧内の図の例では、決定部１８は、タスクＴＳＫ１、タスクＴＳＫ２、タスクＴＳＫ３および符号化処理タスクＴＳＫｃの順に処理される各タスクＴＳＫを実行させるか否かをフレーム毎に決定する。この場合、決定部１８は、先ず、タスクＴＳＫ１の処理時間ＴＰ１が空き時間（フレーム期間ＴＦＲＭから符号化時間ＴＰｃを除いた時間）以下か否かを判定する。なお、タスクＴＳＫ１、ＴＳＫ２、ＴＳＫ３の各処理時間ＴＰ１、ＴＰ２、ＴＰ３は、画像処理装置２の設計時のシミュレーションまたは実験等に基づいて算出され、タスク制御装置１０内の記憶部（図示せず）等に予め記憶される。また、符号化時間ＴＰｃ（ＴＰｃ１、ＴＰｃ２、ＴＰｃ３、ＴＰｃ４）は、フレーム期間ＴＦＲＭ１−ＴＦＲＭ４で互いに異なる。
【００３２】
タスクＴＳＫ１の処理時間ＴＰ１が空き時間以下のフレーム期間ＴＦＲＭ１、ＴＦＲＭ２、ＴＦＲＭ３、ＴＦＲＭ４では、決定部１８は、タスクＴＳＫ１を、対象フレームの空き時間に実行させるタスクＴＳＫとして決定する。なお、タスクＴＳＫ１の処理時間ＴＰ１が空き時間を超えるフレーム期間ＴＦＲＭ（図示せず）では、決定部１８は、タスクＴＳＫ１を、対象フレームの空き時間に実行させずにスキップさせるタスクＴＳＫに決定する。すなわち、タスクＴＳＫ１の処理時間ＴＰ１が空き時間を超える場合、対象フレームでは、タスクＴＳＫ１は実行されない。
【００３３】
次に、決定部１８は、タスクＴＳＫ２の処理時間ＴＰ２が空き時間以下か否かを判定する。なお、空き時間は、タスクＴＳＫ１が実行された場合、１フレーム期間ＴＦＲＭから符号化時間ＴＰｃおよびタスクＴＳＫ１の処理時間ＴＰ１を除いた時間に対応する。タスクＴＳＫ２の処理時間ＴＰ２が空き時間以下のフレーム期間ＴＦＲＭ１、ＴＦＲＭ３では、決定部１８は、タスクＴＳＫ２を、対象フレームの空き時間に実行させるタスクＴＳＫとして決定する。タスクＴＳＫ２の処理時間ＴＰ２が空き時間を超えるフレームＴＦＲＭ２、ＴＦＲＭ４では、タスクＴＳＫ２は実行されない。
【００３４】
次に、決定部１８は、タスクＴＳＫ３の処理時間ＴＰ３が空き時間以下か否かを判定する。なお、空き時間は、タスクＴＳＫ１、ＴＳＫ２の少なくとも１つが実行された場合、タスクＴＳＫ１、ＴＳＫ２の処理時間ＴＰ１、ＴＰ２のうちの実行されたタスクＴＳＫの処理時間ＴＰおよび符号化時間ＴＰｃを１フレーム期間ＴＦＲＭから除いた時間に対応する。タスクＴＳＫ３の処理時間ＴＰ３が空き時間以下のフレーム期間ＴＦＲＭ１、ＴＦＲＭ４では、決定部１８は、タスクＴＳＫ３を、対象フレームの空き時間に実行させるタスクＴＳＫとして決定する。タスクＴＳＫ３の処理時間ＴＰ３が空き時間を超えるフレームＴＦＲＭ２、ＴＦＲＭ３では、タスクＴＳＫ３は実行されない。
【００３５】
なお、決定部１８は、符号化処理タスクＴＳＫｃが実行された後では、タスクＴＳＫの優先順と、残り時間と、各タスクＴＳＫの処理時間ＴＰとに基づいて、画像処理装置２に実行させるタスクＴＳＫを決定する。
【００３６】
このように、タスク制御装置１０は、対象フレームの符号化にかかる符号化時間ＴＰｃを対象フレームのデータ量βおよび画素値の分散σ2に基づいて予測する。そして、タスク制御装置１０は、１フレーム期間ＴＦＲＭのうち、符号化時間ＴＰｃを除く空き時間を符号化処理タスクＴＳＫｃ以外のタスクＴＳＫに割り当てて、画像処理装置２のタスクＴＳＫをスケジューリングする。すなわち、タスク制御装置１０は、１フレーム期間ＴＦＲＭのうち、予測部１６で予測した符号化時間ＴＰｃを符号化処理タスクＴＳＫｃに割り当てる。これにより、符号化処理タスクＴＳＫｃを含む複数のタスクＴＳＫを１フレーム期間ＴＦＲＭ内に終了させることができる。
【００３７】
例えば、フレーム期間ＴＦＲＭ２に実行させるタスクＴＳＫがフレーム期間ＴＦＲＭ１の符号化時間ＴＰｃ１に基づいて選択される場合、符号化処理タスクＴＳＫｃ以外に実行させるタスクＴＳＫとして、タスクＴＳＫ１、ＴＳＫ２、ＴＳＫ３が選択される。この場合、符号化処理タスクＴＳＫｃ２の処理時間ＴＰ（符号化時間ＴＰｃ２）がフレーム期間ＴＦＲＭ１の符号化時間ＴＰｃ１より長いため、符号化処理タスクＴＳＫｃ２は、フレーム期間ＴＦＲＭ２内に終了しない。
【００３８】
同様に、フレーム期間ＴＦＲＭ４に実行させるタスクＴＳＫがフレーム期間ＴＦＲＭ３の符号化時間ＴＰｃ３に基づいて選択される場合、符号化処理タスクＴＳＫｃ以外に実行させるタスクＴＳＫとして、タスクＴＳＫ１、ＴＳＫ２が選択される。この場合、符号化処理タスクＴＳＫｃ４の処理時間ＴＰ（符号化時間ＴＰｃ４）がフレーム期間ＴＦＲＭ３の符号化時間ＴＰｃ３より長いため、符号化処理タスクＴＳＫｃ４は、フレーム期間ＴＦＲＭ４内に終了しない。
【００３９】
また、フレーム期間ＴＦＲＭ３に実行させるタスクＴＳＫがフレーム期間ＴＦＲＭ２の符号化時間ＴＰｃ２に基づいて選択される場合、符号化処理タスクＴＳＫｃ以外に実行させるタスクＴＳＫとして、タスクＴＳＫ１が選択される。この場合、フレーム期間ＴＦＲＭ３にタスクＴＳＫ２を実行する時間があるにも拘わらず、タスクＴＳＫ２は、フレーム期間ＴＦＲＭ３に実行されない。
【００４０】
これに対し、タスク制御装置１０は、スケジュール対象のフレーム期間ＴＦＲＭに実行される符号化処理タスクＴＳＫｃの処理時間ＴＰ（対象フレームの符号化時間ＴＰｃ）を予測する。そして、タスク制御装置１０は、画像処理装置２が実行するタスクＴＳＫを、予測した処理時間ＴＰ（対象フレームの符号化時間ＴＰｃ）に基づいて選択する。このため、フレーム期間ＴＦＲＭ２、ＴＦＲＭ４においても、符号化処理タスクＴＳＫｃおよび選択したタスクＴＳＫをフレーム期間ＴＦＲＭ内に終了させることができる。また、フレーム期間ＴＦＲＭ３においては、符号化処理タスクＴＳＫｃ以外に、タスクＴＳＫ１、ＴＳＫ２を実行させることができる。このように、タスクＴＳＫを効率よく実行させることができる。
【００４１】
なお、タスク制御装置１０の構成は、図１に示す例に限定されない。例えば、データ量算出部１２は、画像データＩＤＡＴＡを計測することにより、対象フレームのデータ量βを算出してもよい。また、タスク制御装置１０は、画像処理装置２の外部に配置されてもよい。
【００４２】
以上、図１に示す実施形態では、タスク制御装置１０は、対象フレームのデータ量βおよび画素値の分散σ2に基づいて予測した符号化時間ＴＰｃに基づいて、画像処理装置２に実行させるタスクＴＳＫを制御する。これにより、マルチフォーマット（フレームレートの変化、入力データ量の変化）に対応したタスクＴＳＫのスケジューリングを実現することができる。
【００４３】
例えば、タスク制御装置１０は、１フレーム期間ＴＦＲＭのうち、予測部１６で予測した符号化時間ＴＰｃを符号化処理タスクＴＳＫｃに割り当て、符号化時間ＴＰｃを除く空き時間を符号化処理タスクＴＳＫｃ以外のタスクＴＳＫに割り当てる。これにより、符号化処理タスクＴＳＫｃを含む複数のタスクＴＳＫを１フレーム期間ＴＦＲＭ内に終了させることができる。この結果、符号化処理に起因するコマ落ちの発生を抑制できる。
【００４４】
図２は、タスク制御装置およびタスク制御方法の別の実施形態を示す。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２に示すタスク制御装置１００は、ハードウェアのみで実現されてもよく、タスク制御プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。タスク制御装置１００は、動画の各フレームを符号化する符号化処理タスクＴＳＫ（ＴＳＫｃ）と複数のタスクＴＳＫのいずれかとを実行する画像処理装置２０に搭載され、画像処理装置２０で実行されるタスクＴＳＫを制御する。
【００４５】
例えば、画像処理装置２０は、レジスタ４０、デインターレース部６０、ノイズリダクション部６２、スケーリング部６４、記憶部６６、符号化部８０およびタスク制御装置１００を有する。デインターレース部６０、ノイズリダクション部６２、スケーリング部６４、記憶部６６、符号化部８０およびタスク制御装置１００は、バス５０に接続される。
【００４６】
レジスタ４０は、図１に示したレジスタ４と同一または同様である。例えば、レジスタ４０は、動画の１フレームの画像に関する画像情報ＩＩＮＦを保持する。
【００４７】
記憶部６６は、対象フレームの画像データＩＤＡＴＡ等を記憶する。例えば、画像処理装置２０は、対象フレームの画像データＩＤＡＴＡを画像処理装置２０の外部から順次受け、画像データＩＤＡＴＡを記憶部６６に記憶させる。
【００４８】
デインターレース部６０は、例えば、動画がインターレース方式で伝送される場合、インターレースの画像の足りない画素の画素値を、周囲の画素の画素値を利用して補間するデインターレース処理を実行する。画像が奇数行の画像と偶数行の画像とに分けて伝送される場合、インターレースの画像の足りない画素は、奇数行の画素を有する画像では偶数行の画素であり、偶数行の画素を有する画像では奇数行の画素である。
【００４９】
例えば、デインターレース部６０は、画像データＩＤＡＴＡを記憶部６６からバス５０を介して受け、デインターレース処理を実行する。そして、デインターレース部６０は、デインターレース処理後の画像データを、バス５０を介して記憶部６６に転送する。これにより、デインターレース処理が実行された画像データは、記憶部６６に記憶される。
【００５０】
ノイズリダクション部６２は、デインターレース処理後の画像データを記憶部６６からバス５０を介して受け、ノイズを除去するノイズリダクション処理を実行する。そして、ノイズリダクション部６２は、ノイズリダクション処理後の画像データを、バス５０を介して記憶部６６に転送する。これにより、ノイズリダクション処理が実行された画像データは、記憶部６６に記憶される。
【００５１】
スケーリング部６４は、ノイズリダクション処理後の画像データを記憶部６６からバス５０を介して受け、画像の解像度を変更するスケーリング処理を実行する。そして、スケーリング部６４は、スケーリング処理後の画像データを、バス５０を介して記憶部６６に転送する。これにより、スケーリング処理が実行された画像データは、記憶部６６に記憶され、符号化部８０により符号化される。なお、画像の解像度を変更しない場合は、スケーリング処理は省かれる。
【００５２】
このように、デインターレース部６０、ノイズリダクション部６２およびスケーリング部６４を含むブロックは、図１に示した前処理部６に対応する。
【００５３】
符号化部８０は、スケーリング処理後の画像データを記憶部６６からバス５０を介して受け、符号化処理タスクＴＳＫを実行する。そして、符号化部８０は、符号化された画像データを、エレメンタリストリームＥＳとして、画像処理装置２０の外部（例えば、外部記憶装置、動画像復号装置等）に転送する。なお、符号化部８０は、符号化された画像データを、記憶部６６に記憶させてもよい。
【００５４】
ここで、デインターレース部６０、ノイズリダクション部６２およびスケーリング部６４がそれぞれ実行するタスクＴＳＫを含む複数のタスクＴＳＫは、タスク制御装置１００により制御される。また、複数のタスクＴＳＫは、対象フレームの画像データを記憶部６６に転送するタスクＴＳＫ（例えば、デインターレース部６０、ノイズリダクション部６２、スケーリング部６４、符号化部８０の各々と記憶部６６との間のデータ転送処理）を含んでもよい。
【００５５】
タスク制御装置１００は、画像処理装置２０に実行させるタスクＴＳＫをフレーム毎に決定するタスク制御方法に基づいて動作する。例えば、タスク制御装置１００は、データ量算出部１２０、分散値算出部１４０、タスク情報管理部２００、スケジュール部２２０、フレームレート監視部２４０および測定部２５０を有する。
【００５６】
データ量算出部１２０は、図１に示したデータ量算出部１２と同一または同様である。例えば、データ量算出部１２０は、水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆを含む画像情報ＩＩＮＦを、レジスタ４０から読み出す。そして、データ量算出部１２０は、対象フレームのデータ量β（画像データＩＤＡＴＡのデータ量β）を図１で説明した式（１）を用いて算出し、対象フレームのデータ量βを示す情報ＶＩＮＦをタスク情報管理部２００に転送する。
【００５７】
分散値算出部１４０は、図１に示した分散値算出部１４と同一または同様である。なお、分散値算出部１４０は、対象フレームを含む２つのフレーム間の画素値の差の分散と対象フレーム内の画素値の分散σ2との和を、対象フレームの画素値の分散α（以下、分散値αとも称する）として算出する。そして、分散値算出部１４０は、対象フレームの画素値の分散αを示す情報ＤＩＮＦを、タスク情報管理部２００に転送する。対象フレームの画素値の分散αの算出方法は、図３で説明する。
【００５８】
タスク情報管理部２００は、画像処理装置２０に実行させるタスクＴＳＫの登録を受け付け、図５に示すタスク情報管理データＴＣＤを生成する。そして、タスク情報管理部２００は、タスク情報管理データＴＣＤ等に基づいて、画像処理装置２０に実行させるタスクＴＳＫを決定する。例えば、タスク情報管理部２００は、予測部１６０、決定部１８０および記憶部１９０を有する。
【００５９】
記憶部１９０は、符号化時間テーブルＣＴＢＬ、タスク時間テーブルＴＴＢＬ、タスク情報管理データＴＣＤおよびシステム情報管理データＳＣＤを記憶する。なお、符号化時間テーブルＣＴＢＬについては、図４で説明する。タスク時間テーブルＴＴＢＬ、タスク情報管理データＴＣＤおよびシステム情報管理データＳＣＤについては、図５で説明する。
【００６０】
予測部１６０は、図１に示した予測部１６と同一または同様である。例えば、予測部１６０は、対象フレームのデータ量βを示す情報ＶＩＮＦをデータ量算出部１２０から受け、対象フレームの画素値の分散αを示す情報ＤＩＮＦを分散値算出部１４０から受ける。そして、予測部１６０は、対象フレームのデータ量βおよび画素値の分散αを符号化予測データＣＰＤに登録する。
【００６１】
例えば、予測部１６０は、符号化時間テーブルＣＴＢＬおよび符号化予測データＣＰＤを用いて、対象フレームの符号化時間ＴＰｃを予測する。そして、予測部１６０は、予測した符号化時間ＴＰｃを示す情報ＴＩＮＦを、決定部１８０に転送する。なお、符号化時間ＴＰｃを予測する際の処理の流れは、図７および図１１で説明する。
【００６２】
決定部１８０は、図１に示した決定部１８と同一または同様である。決定部１８０は、複数のタスクＴＳＫのうち、符号化処理タスクＴＳＫｃ以外に画像処理装置２０が１フレーム期間ＴＦＲＭに実行するタスクＴＳＫを、予測部１６０で予測した符号化時間ＴＰｃに基づいてフレーム毎に決定する。例えば、決定部１８０は、タスクＴＳＫの実行可否の問い合わせを示す情報ＲＩＮＦをスケジュール部２２０から受け、問い合わせ結果を示す情報ＡＩＮＦをスケジュール部２２０に出力する。なお、画像処理装置２０が実行するタスクＴＳＫを決定する処理の流れは、図７で説明する。以下、問い合わせを示す情報ＲＩＮＦおよび問い合わせ結果を示す情報ＡＩＮＦは、問い合わせＲＩＮＦおよび問い合わせ結果ＡＩＮＦともそれぞれ称される。
【００６３】
スケジュール部２２０は、タスクＴＳＫの状態（ステート）を制御する。例えば、スケジュール部２２０は、実行状態、実行可能状態、待ち状態、休止状態の４状態を用いてタスクＴＳＫの状態を管理する。スケジュール部２２０は、実行可能状態のタスクＴＳＫを実行状態に遷移させることができるかの問い合わせＲＩＮＦをタスク情報管理部２００に通知する。そして、スケジュール部２２０は、タスク情報管理部２００からの問い合わせ結果ＡＩＮＦに基づいて、タスクＴＳＫの状態を遷移させる。
【００６４】
例えば、問い合わせ結果ＡＩＮＦがタスクＴＳＫを実行状態に遷移させることができることを示す場合、スケジュール部２２０は、実行可能状態のタスクＴＳＫを実行状態に遷移させる。そして、スケジュール部２２０は、処理が終了したタスクＴＳＫの状態を、実行状態から休止状態に遷移させる。一方、問い合わせ結果ＡＩＮＦがタスクＴＳＫを実行状態に遷移させることができないことを示す場合、スケジュール部２２０は、実行可能状態のタスクＴＳＫを待ち状態に遷移させる。
【００６５】
フレームレート監視部２４０は、ビデオクロックＶＣＫを受け、動画のフレーム間隔をフレーム毎に検出する。そして、フレームレート監視部２４０は、１フレーム期間ＴＦＲＭを示す情報ＦＩＮＦをタスク情報管理部２００に通知する。ビデオクロックＶＣＫは、例えば、垂直同期信号である。なお、ビデオクロックＶＣＫは、垂直同期信号に限定されない。
【００６６】
測定部２５０は、テストモード中に、符号化処理タスクＴＳＫｃおよび複数のタスクＴＳＫのそれぞれの処理時間ＴＰを測定する。例えば、測定部２５０は、タスクＴＳＫが実行状態に遷移してから休止状態に遷移するまでの時間を測定する。そして、測定部２５０は、測定結果を示す情報ＭＩＮＦ（以下、測定結果ＭＩＮＦとも称する）をタスク情報管理部２００等に出力する。これにより、符号化処理タスクＴＳＫｃを除くタスクＴＳＫの処理時間ＴＰは、タスク時間テーブルＴＴＢＬに登録される。また、符号化処理タスクＴＳＫｃの測定結果ＭＩＮＦに基づいて、符号化時間テーブルＣＴＢＬが作成される。
【００６７】
なお、タスク制御装置１００および画像処理装置２０の構成は、図２に示す例に限定されない。例えば、測定部２５０は、通常モード中に、複数のタスクＴＳＫのそれぞれの処理時間ＴＰを測定してもよい。また、タスク制御装置１００は、画像処理装置２０の外部に配置されてもよい。
【００６８】
あるいは、画像処理装置２０は、字幕等の画像を対象フレームに合成する機能を有してもよい。この場合、タスク制御装置１００が制御する複数のタスクＴＳＫは、字幕等の画像を対象フレームに合成するタスクＴＳＫを含んでもよい。すなわち、タスク制御装置１００が制御する複数のタスクＴＳＫは、デインターレース部６０、ノイズリダクション部６２およびスケーリング部６４で実行されるタスクＴＳＫに限定されない。
【００６９】
図３は、対象フレームの画素値の分散の算出方法の一例を示す。図３に示したフレームＦＲＭｙは、対象フレームＦＲＭを示し、フレームＦＲＭｘは、対象フレームＦＲＭｙの１つ前のフレームＦＲＭを示す。画素値Ｙｉは、対象フレームＦＲＭｙ内の位置ｉの画素の値を示し、平均値Ｍｙは、対象フレームＦＲＭｙの画素値の平均を示す。同様に、画素値Ｘｉは、フレームＦＲＭｘ内の位置ｉの画素の値を示し、平均値Ｍｘは、フレームＦＲＭｘの画素値の平均を示す。また、画素数Ｎは、フレームＦＲＭ（ＦＲＭｘ、ＦＲＭｙ）の画素数を示す。
【００７０】
分散値算出部１４０は、図２で説明したように、対象フレームＦＲＭｙを含む２つのフレームＦＲＭ（ＦＲＭｙ、ＦＲＭｘ）間の画素値の差の分散σd2と対象フレームＦＲＭｙ内の画素値の分散σ2との和を、対象フレームＦＲＭｙの画素値の分散αとして算出する。
【００７１】
対象フレームＦＲＭｙ内の画素値の分散σ2は、図１で説明したように、画素値Ｙｉ、平均Ｍｙ、画素数Ｎを用いて、式（２）で表される。また、２つのフレームＦＲＭｙ、ＦＲＭｘ間の画素値の差の分散σd2は、画素値Ｙｉ、Ｘｉ、平均Ｍｙ、Ｍｘ、画素数Ｎを用いて、式（３）で表される。そして、対象フレームＦＲＭｙの画素値の分散αは、対象フレームＦＲＭｙ内の画素値の分散σ2とフレームＦＲＭｘ、ＦＲＭｙ間の画素値の差の分散σd2とを用いて、式（４）で表される。
【００７２】
【数２】
2016208159.tif 000004
【００７３】
α＝σ2＋σd2          ・・・（４）
例えば、対象フレームＦＲＭｙ内の各画素の値（Ｙｉ）のばらつき（分散σ2）が小さいほど、符号化時間ＴＰｃおよび符号化されたデータの量は、小さくなる。すなわち、対象フレームＦＲＭｙ内の各画素の値（Ｙｉ）のばらつき（分散σ2）が大きいほど、符号化時間ＴＰｃおよび符号化されたデータの量は、大きくなる。また、フレームＦＲＭｘ、ＦＲＭｙ間の画素値の差（Ｘｉ−Ｙｉ）のばらつき（分散σd2）が小さいほど、符号化時間ＴＰｃおよび符号化されたデータの量は、小さくなる。すなわち、フレームＦＲＭｘ、ＦＲＭｙ間の画素値の差（Ｘｉ−Ｙｉ）のばらつき（分散σd2）が大きいほど、符号化時間ＴＰｃおよび符号化されたデータの量は、大きくなる。
【００７４】
図４は、符号化時間テーブルＣＴＢＬの一例を示す。符号化時間テーブルＣＴＢＬは、フレームＦＲＭのデータ量βに応じて分けた複数のグループとフレームＦＲＭの画素値の分散αの大きさに応じて分けた複数のグループとの組み合わせに対応する符号化時間ＴＰｃを示す情報の一例である。したがって、符号化時間テーブルＣＴＢＬを記憶する記憶部１９０は、符号化時間ＴＰｃを示す情報を記憶する第１記憶部の一例である。
【００７５】
符号化時間テーブルＣＴＢＬには、フレームＦＲＭのデータ量βに応じて分けた複数のグループ（図４のデータ量グループ）とフレームＦＲＭの画素値の分散αの大きさに応じて分けた複数のグループとの組み合わせに対応する符号化時間ＴＰｃが予め登録される。図４に示した閾値ＴＨＶ（ＴＨＶ１、ＴＨＶ２、ＴＨＶ３、ＴＨＶ４、・・・）は、フレームＦＲＭのデータ量βを複数のデータ量グループに分ける際の各データ量グループの閾値を示す。また、閾値ＴＨＤ（ＴＨＤ１、ＴＨＤ２、ＴＨＤ３、ＴＨＤ４）は、フレームＦＲＭの画素値の分散αを複数のグループに分ける際の各グループの閾値を示す。
【００７６】
符号化時間テーブルＣＴＢＬに登録される各符号化時間ＴＰｃは、図２に示した測定部２５０で測定された符号化時間ＴＰｃに基づいて算出される。例えば、画像処理装置２０を利用するユーザは、画像の複雑さ（フレームＦＲＭの画素値の分散α）が互いに異なる複数のサンプル画像および画像データ量（フレームＦＲＭのデータ量β）が異なる複数のサンプル画像を用意する。また、ユーザは、タスク制御装置１００をテストモードに設定する。
【００７７】
タスク制御装置１００がテストモードに設定された後、画像処理装置２０は、複数のサンプル画像を符号化する。これにより、タスク制御装置１００の測定部２５０は、複数のサンプル画像の符号化時間ＴＰｃをテストモード中に測定する。そして、複数のサンプル画像の符号化時間ＴＰｃの測定結果ＭＩＮＦに基づいて、閾値ＴＨＶ、ＴＨＤおよび符号化時間ＴＰｃが決定される。
【００７８】
例えば、符号化時間テーブルＣＴＢＬを作成するためのコンピュータは、複数のサンプル画像の符号化時間ＴＰｃの測定結果ＭＩＮＦに基づいて、データ量β、分散αおよび符号化時間ＴＰｃの相関関係を推定する。そして、コンピュータは、推定した相関関係に基づいて、閾値ＴＨＶ、ＴＨＤおよび符号化時間ＴＰｃを決定し、決定した閾値ＴＨＶ、ＴＨＤおよび符号化時間ＴＰｃに基づいて、符号化時間テーブルＣＴＢＬを作成する。なお、符号化時間テーブルＣＴＢＬを作成するためのコンピュータとして、画像処理装置２０内のＣＰＵが使用されてもよい。
【００７９】
測定部２５０により測定された符号化時間ＴＰｃに基づいて符号化時間テーブルＣＴＢＬが作成されるため、画像処理装置２０のハードウェア構成（例えば、バス５０のバス幅）に応じた符号化時間ＴＰｃが符号化時間テーブルＣＴＢＬに登録される。これにより、論理値のみに基づいて算出された符号化時間ＴＰｃを符号化時間テーブルＣＴＢＬに登録する場合に比べて、符号化時間テーブルＣＴＢＬに登録する符号化時間ＴＰｃの精度を向上することができる。
【００８０】
また、タスク制御装置１００が測定部２５０を有するため、符号化時間ＴＰｃを測定するデバッガ等を画像処理装置２０とは別に用意することなく、画像（フレームＦＲＭ）の符号化時間ＴＰｃを容易に測定することができる。
【００８１】
図５は、タスク時間テーブルＴＴＢＬ、タスク情報管理データＴＣＤおよびシステム情報管理データＳＣＤの一例を示す。なお、図５に示すタスクＩＤ（identification）は、タスクＴＳＫを識別する識別情報である。
【００８２】
タスク時間テーブルＴＴＢＬには、例えば、測定部２５０で測定されたタスクＴＳＫの処理時間ＴＰ（ＴＰ１０、ＴＰ１１、・・・）がタスクＩＤに対応付けて登録される。したがって、タスク時間テーブルＴＴＢＬを記憶する記憶部１９０は、タスクＴＳＫの処理時間ＴＰを記憶する第２記憶部の一例である。
【００８３】
タスク情報管理データＴＣＤには、画像処理装置２０が実行するタスクＴＳＫのフレーム属性および処理時間ＴＰがタスクＩＤに対応付けて登録される。フレーム属性は、１フレーム期間ＴＦＲＭにおけるタスクＴＳＫの実行形態を示す。図５に示す例では、属性Ａは、毎回（毎フレームＦＲＭ）実行される必須タスクＴＳＫを示す。属性Ｂは、第１タスクグループに属するタスクＴＳＫを示す。互いに同じ第１タスクグループに属する複数のタスクＴＳＫのいずれかは、毎回実行される。例えば、毎回実行される必須の処理を互いに異なる精度で実行する所定数のタスクＴＳＫは、互いに同じ第１タスクグループに属する。
【００８４】
属性Ｃは、数回に少なくとも１回実行されるタスクＴＳＫを示す。属性Ｄは、第２タスクグループに属するタスクＴＳＫを示す。互いに同じ第２タスクグループに属する複数のタスクＴＳＫのいずれかは、数回に少なくとも１回実行される。なお、フレーム属性は、図５に示す例に限定されない。例えば、実行可能なフレーム期間ＴＦＲＭに実行されればよいタスクＴＳＫを示す属性がタスク情報管理データＴＣＤに登録されてもよい。あるいは、所定のフレームレートの場合のみ実行されるタスクＴＳＫを示す属性がタスク情報管理データＴＣＤに登録されてもよい。
【００８５】
タスク情報管理データＴＣＤに登録されるタスクＴＳＫおよびフレーム属性は、例えば、画像処理装置２０を使用するユーザにより予め指定される。例えば、タスク情報管理部２００は、ユーザからの指定を受け付けた画像処理装置２０の入力装置等からタスクＴＳＫの登録要求を受ける。そして、タスク情報管理部２００は、登録対象のタスクＴＳＫの処理時間ＴＰをタスクテーブルＴＴＢＬから読み出し、フレーム属性および処理時間ＴＰをタスクＩＤに対応付けてタスク情報管理データＴＣＤに登録する。
【００８６】
システム情報管理データＳＣＤには、フレームレート、１フレーム期間ＴＦＲＭのうちの残り時間および必須タスクＴＳＫが登録される。例えば、タスク情報管理部２００は、１フレーム期間ＴＦＲＭを示す情報ＦＩＮＦをフレームレート監視部２４０から受け、情報ＦＩＮＦに基づいてフレームレートをシステム情報管理データＳＣＤに登録する。また、タスク情報管理部２００は、１フレーム期間ＴＦＲＭのうちの残り時間を、所定（例えば、タスクＴＳＫが実行される度）のタイミングで更新する。なお、図５のシステム情報管理データＳＣＤ内に示した括弧内の矢印の後の値は、更新後の情報の一例を示す。
【００８７】
さらに、タスク情報管理部２００は、タスク情報管理データＴＣＤに登録されるタスクＴＳＫのうち、必須タスクＴＳＫの処理時間ＴＰをタスクＩＤに対応付けてシステム情報管理データＳＣＤに登録する。また、タスク情報管理部２００は、例えば、必須タスクＴＳＫが実行された場合、処理時間ＴＰを０に更新する。すなわち、システム情報管理データＳＣＤに保持されている処理時間ＴＰの合計は、未処理の必須タスクＴＳＫの処理時間ＴＰの合計を示す。
【００８８】
なお、タスク時間テーブルＴＴＢＬ、タスク情報管理データＴＣＤおよびシステム情報管理データＳＣＤは、図５に示す例に限定されない。例えば、システム情報管理データＳＣＤには、フレームレートの代わりに、フレーム間隔ＴＦＲＭが登録されてもよい。また、システム情報管理データＳＣＤは、必須タスクＴＳＫが実行されたか否かを示すフラグをタスクＩＤに対応付けて保持してもよい。この場合、タスク情報管理部２００は、必須タスクＴＳＫの処理時間ＴＰを０に更新する代わりに、フラグの状態を更新する。
【００８９】
あるいは、タスク情報管理データＴＣＤに、必須タスクＴＳＫが実行されたか否かを示すフラグ（必須タスクＴＳＫのタスクＩＤに対応付けられたフラグ）と、フレームレート（または、フレーム間隔ＴＦＲＭ）と、残り時間とが登録されてもよい。この場合、システム情報管理データＳＣＤは、タスク情報管理データＴＣＤに含まれる。
【００９０】
図６は、図２に示したフレームレート監視部２４０、データ算出部１２０および分散値算出部１４０が実行する処理の流れの一例を示す。なお、図６では、説明を分かりやすくするために、フレームレート監視部２４０、データ算出部１２０および分散値算出部１４０の各情報ＦＩＮＦ、ＶＩＮＦ、ＤＩＮＦの転送先であるタスク情報管理部２００を記載している。タスク情報管理部２００で実行される処理は、図７で説明する。
【００９１】
フレームレート監視部２４０は、ビデオクロックＶＣＫを受け、フレーム期間ＴＦＲＭの開始および終了を示すビデオクロックＶＣＫのパルスを検出する（図６（ａ））。なお、フレームレート監視部２４０は、画像処理装置２０がビデオクロックＶＣＫのパルスを受けた場合に生成されるビデオクロック割り込みを受けてもよい。
【００９２】
フレームレート監視部２４０は、ビデオクロックＶＣＫのパルスの間隔に基づいて、フレームレートを算出する（図６（ｂ））。そして、フレームレート監視部２４０は、フレームレートをタスク情報管理部２００に通知する（図６（ｃ））。例えば、フレームレート監視部２４０は、フレーム期間ＴＦＲＭを示す情報ＦＩＮＦをタスク情報管理部２００に出力する。なお、フレーム期間ＴＦＲＭの逆数がフレームレートに対応するため、フレーム期間ＴＦＲＭを示す情報ＦＩＮＦは、フレームレートを示す情報でもある。
【００９３】
また、フレームレート監視部２４０は、今回検出したフレームレートが前回検出したフレームレートから変化していない場合、フレームレートをタスク情報管理部２００に通知する処理を省いてもよい。
【００９４】
データ量算出部１２０は、画像処理装置２０が１フレームＦＲＭ分の画像データＩＤＡＴＡを受けたことを示すデータ取り込み完了割り込みを検出する（図６（ｄ））。そして、データ量算出部１２０は、１フレームＦＲＭ分の画像データＩＤＡＴＡの取り込み完了を、分散値算出部１４０に通知する。また、データ量算出部１２０は、現フレーム期間ＴＦＲＭのフレームＦＲＭ（対象フレームＦＲＭ）のデータ量βを、図１で説明した式（２）を用いて算出する（図６（ｅ））。そして、データ量算出部１２０は、データ量βをタスク情報管理部２００に通知する（図６（ｆ））。例えば、データ量算出部１２０は、データ量βを示す情報ＶＩＮＦをタスク情報管理部２００に出力する。
【００９５】
分散値算出部１４０は、取り込み完了通知をデータ量算出部１２０から受けた場合、現フレームＦＲＭ（対象フレームＦＲＭ）内の画素値の分散σ2を、図３（および図１）で説明した式（２）を用いて算出する（図６（ｇ））。また、分散値算出部１４０は、２つのフレームＦＲＭ間の画素値の差（現フレームＦＲＭの画素値と前のフレームＦＲＭの画素値との差）の分散σd2を、図３で説明した式（３）を用いて算出する（図６（ｈ））。そして、分散値算出部１４０は、２つの分散値（分散σ2、分散σd2）を加算する（図６（ｉ））。これにより、対象フレームＦＲＭの分散値α（＝σ2＋σd2）が算出される。
【００９６】
例えば、分散値算出部１４０は、分散値αを示す情報ＤＩＮＦをタスク情報管理部２００に出力することにより、分散値αをタスク情報管理部２００に通知する（図６（ｊ））。なお、動画の最初のフレームＦＲＭでは、分散値算出部１４０は、前のフレームＦＲＭが存在しないため、現フレームＦＲＭ内の画素値の分散σ2を分散値αとして、タスク情報管理部２００に通知する。
【００９７】
図７は、図２に示したスケジュール部２２０およびタスク情報管理部２００が実行する処理の流れの一例を示す。図７に示す例では、タスクＴＳＫ４２の処理時間ＴＰ４２は、タスクＴＳＫ４０の処理時間ＴＰ４０およびタスクＴＳＫ４１の処理時間ＴＰ４１より短い。
【００９８】
タスク情報管理部２００は、フレーム期間ＴＦＲＭを示す情報ＦＩＮＦをフレームレート監視部２４０から受けた場合、前のフレームＦＲＭの必須タスクＴＳＫが全て終了しているかをシステム情報管理データＳＣＤに基づいて判定する。例えば、タスク情報管理部２００は、処理時間ＴＰが０に更新されていない必須タスクＴＳＫをシステム情報管理データＳＣＤから検出した場合、前のフレームＦＲＭの必須タスクＴＳＫが終了していないと判定する。
【００９９】
そして、タスク情報管理部２００は、前のフレームＦＲＭの必須タスクが終了していない場合、タスク制御装置１００の外部（例えば、画像処理装置２０の出力装置）に異常を通知する（図７（ａ））。
【０１００】
また、タスク情報管理部２００は、フレームレート監視部２４０から受けた情報ＦＩＮＦに基づいて、フレームレートをシステム情報管理データＳＣＤに登録する（図７（ｂ））。さらに、タスク情報管理部２００は、システム情報管理データＳＣＤに登録された残り時間および必須タスクＴＳＫの処理時間ＴＰを初期化する。これにより、システム情報管理データＳＣＤに登録された必須タスクＴＳＫの処理時間ＴＰは、タスク情報管理データＴＣＤに登録された必須タスクＴＳＫの処理時間ＴＰに初期化される。
【０１０１】
また、タスク情報管理部２００の予測部１６０は、対象フレームＦＲＭのデータ量βを示す情報ＶＩＮＦをデータ量算出部１２０から受けた場合、情報ＶＩＮＦに基づいて、データ量βを符号化予測データＣＰＤに登録する（図７（ｃ））。
【０１０２】
さらに、タスク情報管理部２００の予測部１６０は、対象フレームＦＲＭの画素値の分散αを示す情報ＤＩＮＦを分散値算出部１４０から受けた場合、情報ＤＩＮＦに基づいて、分散値αを符号化予測データＣＰＤに登録する（図７（ｄ））。
【０１０３】
そして、タスク情報管理部２００の予測部１６０は、符号化予測データＣＰＤおよび符号化時間テーブルＣＴＢＬに基づいて、対象フレームＦＲＭの符号化時間ＴＰｃを予測する（図７（ｅ））。以降、タスク情報管理部２００は、予測部１６０で予測した符号化時間ＴＰｃ、未処理の必須タスクＴＳＫの処理時間ＴＰの合計、フレーム期間ＴＦＲＭの残り時間等に基づいて、スケジュール部２２０から指定されたタスクＴＳＫが実行可能か否かを判定する。以下、未処理の必須タスクＴＳＫの処理時間ＴＰの合計は、必須タスク時間とも称される。
【０１０４】
例えば、スケジュール部２２０は、待ち状態のタスクＴＳＫ４０を実行可能状態に遷移させるとともに、タスクＴＳＫ４０を実行させることができるか否かの問い合わせＲＩＮＦを、タスク情報管理部２００に通知する（図７（ｆ））。
【０１０５】
タスク情報管理部２００の決定部１８０は、スケジュール部２２０からの問い合わせＲＩＮＦを受けた場合、問い合わせＲＩＮＦにより指定されたタスクＴＳＫ４０が実行可能か否かを判定する（図７（ｇ））。例えば、タスク情報管理部２００の決定部１８０は、タスクＴＳＫ４０の処理時間ＴＰ４０をタスク情報管理データＴＣＤから読み出し、必須タスク時間および残り時間をシステム情報管理データＳＣＤから読み出す。そして、タスク情報管理部２００の決定部１８０は、タスクＴＳＫ４０の処理時間ＴＰ４０が空き時間以下か否かを判定する。なお、空き時間は、必須タスク時間と予測部１６０で予測した符号化時間ＴＰｃとの和を残り時間から減算することにより算出される。
【０１０６】
図７に示す例では、タスクＴＳＫ４０の処理時間ＴＰ４０は、空き時間より長い。このため、タスク情報管理部２００の決定部１８０は、タスクＴＳＫ４０の実行は不可であると判定し、タスクＴＳＫ４０が実行不可であることを示す問い合わせ結果ＡＩＮＦを、スケジュール部２２０に通知する。スケジュール部２２０は、タスクＴＳＫ４０を実行させることができないため、タスクＴＳＫ４０の状態を実行可能状態から待ち状態に遷移させる。
【０１０７】
次に、スケジュール部２２０は、待ち状態のタスクＴＳＫ４１を実行可能状態に遷移させるとともに、タスクＴＳＫ４１を実行させることができるか否かの問い合わせＲＩＮＦを、タスク情報管理部２００に通知する（図７（ｈ））。
【０１０８】
タスク情報管理部２００の決定部１８０は、問い合わせＲＩＮＦで指定されたタスクＴＳＫ４１が実行可能か否かを、タスク情報管理データＴＣＤ、システム情報管理データＳＣＤおよび予測部１６０で予測した符号化時間ＴＰｃに基づいて判定する（図７（ｉ））。
【０１０９】
図７に示す例では、タスクＴＳＫ４１の処理時間ＴＰ４１は、空き時間より長い。このため、タスク情報管理部２００の決定部１８０は、タスクＴＳＫ４１が実行不可であることを示す問い合わせ結果ＡＩＮＦを、スケジュール部２２０に通知する。スケジュール部２２０は、タスクＴＳＫ４１の状態を実行可能状態から待ち状態に遷移させる。
【０１１０】
次に、スケジュール部２２０は、待ち状態のタスクＴＳＫ４２を実行可能状態に遷移させるとともに、タスクＴＳＫ４２を実行させることができるか否かの問い合わせＲＩＮＦを、タスク情報管理部２００に通知する（図７（ｊ））。
【０１１１】
タスク情報管理部２００の決定部１８０は、問い合わせＲＩＮＦで指定されたタスクＴＳＫ４２が実行可能か否かを、タスク情報管理データＴＣＤ、システム情報管理データＳＣＤおよび予測部１６０で予測した符号化時間ＴＰｃに基づいて判定する（図７（ｋ））。
【０１１２】
図７に示す例では、タスクＴＳＫ４２の処理時間ＴＰ４２は、空き時間以下である。このため、タスク情報管理部２００の決定部１８０は、タスクＴＳＫ４２は実行可能であると判定し、タスクＴＳＫ４２が実行可能であることを示す問い合わせ結果ＡＩＮＦを、スケジュール部２２０に通知する。スケジュール部２２０は、タスクＴＳＫ４２を実行させることができるため、タスクＴＳＫ４２の状態を実行可能状態から実行状態に遷移させる。これにより、タスクＴＳＫ４２は実行される。
【０１１３】
また、タスク情報管理部２００は、システム情報管理データＳＣＤに登録された残り時間を、タスクＴＳＫ４２の処理時間ＴＰに基づいて更新する（図７（ｍ））。例えば、タスク情報管理部２００は、実行中のタスクＴＳＫ４２が終了する時刻を、タスク情報管理データＴＣＤに登録されたタスクＴＳＫ４２の処理時間ＴＰに基づいて予測する。そして、タスク情報管理部２００は、予測した時刻（タスクＴＳＫ４２の終了予定時刻）からフレーム期間ＴＦＲＭが終了するまでの時間を残り時間として、システム情報管理データＳＣＤに登録された残り時間を更新する。なお、実行中のタスクＴＳＫが存在しない場合、残り時間は、現時刻からフレーム期間ＴＦＲＭが終了するまでの時間である。
【０１１４】
このように、タスク情報管理部２００の決定部１８０は、予測部１６０で予測した符号化時間ＴＰｃ、タスクＴＳＫの処理時間ＴＰ、必須タスク時間、フレーム期間ＴＦＲＭの残り時間に基づいて、タスクＴＳＫの実行をフレームＦＲＭ毎に制御する。これにより、符号化処理タスクＴＳＫｃおよび必須タスクＴＳＫを含む複数のタスクＴＳＫを１フレーム期間ＴＦＲＭ内に終了させることができる。この結果、符号化処理に起因するコマ落ちの発生を抑制できる。
【０１１５】
ここで、記憶部６６と符号化部８０との間のデータ転送が毎回（毎フレームＦＲＭ）実行される場合、記憶部６６と符号化部８０との間でデータを転送するデータ転送タスクＴＳＫは、必須タスクＴＳＫである。この場合、決定部１８０は、データ転送タスクＴＳＫを含む必須タスクＴＳＫの処理時間ＴＰと予測部１６０で予測した符号化時間ＴＰｃとに基づいてタスクＴＳＫの実行をフレームＦＲＭ毎に制御する。
【０１１６】
すなわち、決定部１８０は、データ転送タスクＴＳＫ以外に画像処理装置２０が実行するタスクＴＳＫを、データ転送タスクＴＳＫで転送されるデータの転送時間と予測部１６０で予測した符号化時間ＴＰｃとに基づいてフレームＦＲＭ毎に決定する。これにより、符号化処理タスクＴＳＫｃおよびデータ転送タスクＴＳＫを含む複数のタスクＴＳＫを１フレーム期間ＴＦＲＭ内に終了させることができる。
【０１１７】
図８は、図２に示したタスク制御装置１００の動作の一例を示す。なお、図８に示す動作は、ハードウェアのみで実現されてもよいし、ハードウェアをソフトウェアにより制御することにより実現されてもよい。
【０１１８】
ステップＳ１００では、タスク情報管理部２００は、制御対象のタスクＴＳＫ（画像処理装置２０が実行するタスクＴＳＫの候補）をタスク情報管理データＴＣＤに登録する。ステップＳ１００の処理の詳細は、図９で説明する。
【０１１９】
ステップＳ１１０では、タスク制御装置１００は、動作モードがテストモードか否かを判定する。動作モードがテストモードの場合、タスク制御装置１００の動作は、ステップＳ１２０に移る。一方、動作モードがテストモードでない場合（例えば、動作モードが通常モードの場合）、タスク制御装置１００の動作は、ステップＳ２００に移る。
【０１２０】
ステップＳ１２０では、タスク制御装置１００の測定部２５０は、タスクＴＳＫの処理時間ＴＰを測定する。テストモードに設定されたタスク制御装置１００の動作は、ステップＳ１２０の処理が実行された後、終了する。なお、ステップＳ１２０の処理の詳細は、図１０で説明する。
【０１２１】
ステップＳ２００では、タスク制御装置１００のフレームレート監視部２４０は、図６で説明したように、フレーム期間ＴＦＲＭ（またはフレームレート）を検出する。タスク情報管理部２００は、フレームレート監視部２４０で検出したフレーム期間ＴＦＲＭに基づいて、フレームレートをシステム情報管理データＳＣＤに登録する。
【０１２２】
ステップＳ３００では、タスク制御装置１００のデータ量算出部１２０は、図６で説明したように、対象フレームＦＲＭのデータ量βを算出する。タスク情報管理部２００は、データ量算出部１２０で算出したデータ量βを符号化予測データＣＰＤに登録する。
【０１２３】
ステップＳ４００では、タスク制御装置１００の分散値算出部１４０は、図６で説明したように、対象フレームＦＲＭの画素値の分散αを算出する。タスク情報管理部２００は、分散値算出部１４０で算出した分散値αを符号化予測データＣＰＤに登録する。
【０１２４】
ステップＳ５００では、タスク制御装置１００の予測部１６０は、ステップＳ３００で算出したデータ量α、ステップＳ４００で算出した分散値αに基づいて、対象フレームＦＲＭの符号化時間ＴＰｃを予測する。ステップＳ５００の処理の詳細は、図１１で説明する。
【０１２５】
ステップＳ６００では、タスク制御装置１００は、図７で説明したように、画像処理装置２０に実行させるタスクＴＳＫをステップＳ５００で予測した符号化時間ＴＰｃ等に基づいて決定し、決定したタスクＴＳＫを画像処理装置２０に実行させる。
【０１２６】
ステップＳ７００では、タスク制御装置１００は、動画が終了したか否かを判定する。動画が終了した場合、タスク制御装置１００の動作は、終了する。一方、動画が終了していない場合、タスク制御装置１００の動作は、ステップＳ２００に戻る。
【０１２７】
図９は、タスクＴＳＫを登録する際のタスク情報管理部２００の動作の一例を示す。すなわち、図９は、図８に示したステップＳ１００の処理の一例を示す。
【０１２８】
ステップＳ１０２では、タスク情報管理部２００は、タスクＴＳＫの登録要求を受信する。例えば、画像処理装置２０を使用するユーザは、画像処理装置２０に実行させるタスクＴＳＫおよびタスクＴＳＫのフレーム属性をタスク情報管理データＴＣＤに登録するために、画像処理装置２０の入力装置等を操作する。これにより、タスク情報管理部２００は、画像処理装置２０の入力装置等からタスクＴＳＫの登録要求を受ける。タスクＴＳＫの登録要求は、タスク情報管理データＴＣＤに登録するタスクＴＳＫ（以下、登録対象タスクＴＳＫとも称する）および登録対象タスクＴＳＫのフレーム属性を示す情報を含む。
【０１２９】
ステップＳ１０４では、タスク情報管理部２００は、ステップＳ１０２で受けたタスクＴＳＫの登録要求に基づいて、タスク情報管理データＴＣＤを更新する。例えば、タスク情報管理部２００は、タスクＴＳＫの登録要求が示す登録対象タスクＴＳＫの処理時間ＴＰをタスク時間テーブルＴＴＢＬから読み出す。そして、タスク情報管理部２００は、タスク時間テーブルＴＴＢＬから読み出した処理時間ＴＰおよびタスクＴＳＫの登録要求が示すフレーム属性を、登録対象タスクＴＳＫのタスクＩＤに対応付けてタスク情報管理データＴＣＤに登録する。
【０１３０】
ステップＳ１０６では、タスク情報管理部２００は、登録対象タスクＴＳＫが必須タスクＴＳＫか否かをフレーム属性に基づいて判定する。登録対象タスクＴＳＫが必須タスクＴＳＫでない場合、タスクＴＳＫを登録する際のタスク情報管理部２００の動作（図８に示したステップＳ１００の処理）は、終了する。登録対象タスクＴＳＫが必須タスクＴＳＫの場合、タスク情報管理部２００の動作は、ステップＳ１０８に移る。
【０１３１】
ステップＳ１０８では、タスク情報管理部２００は、システム情報管理データＳＣＤを更新する。例えば、タスク情報管理部２００は、登録対象タスクＴＳＫ（すなわち、必須タスクＴＳＫ）の処理時間ＴＰをタスクＩＤに対応付けてシステム情報管理データＳＣＤに登録する。タスクＴＳＫを登録する際のタスク情報管理部２００の動作（図８に示したステップＳ１００の処理）は、ステップＳ１０８の処理が実行された後、終了する。
【０１３２】
図１０は、タスクＴＳＫの処理時間ＴＰを測定する際のスケジュール部２２０および測定部２５０の動作の一例を示す。すなわち、図１０は、図８に示したステップＳ１２０の処理の一例を示す。
【０１３３】
ステップＳ１２２では、スケジュール部２２０は、測定対象のタスクＴＳＫの実行を画像処理装置２０に指示する。これにより、画像処理装置２０は、測定対象のタスクＴＳＫを実行する。タスクＴＳＫが実行された場合、タスクＴＳＫの実行を開始した時刻を示す開始タイムスタンプが生成される。
【０１３４】
ステップＳ１２４では、スケジュール部２２０は、測定対象のタスクＴＳＫの処理時間ＴＰの計測を開始させる計測開始指示を測定部２５０に通知する。
【０１３５】
ステップＳ１２５では、測定部２５０は、計測開始指示をスケジュール部２２０から受信する。
【０１３６】
ステップＳ１２７では、測定部２５０は、ステップＳ１２５で受信した計測開始指示が示すタスクＴＳＫ（測定対象のタスクＴＳＫ）の開始タイムスタンプを取得する。
【０１３７】
ステップＳ１３０では、スケジュール部２２０は、測定対象のタスクＴＳＫの終了を検出する。タスクＴＳＫが終了した場合、タスクＴＳＫが終了した時刻を示す終了タイムスタンプが生成される。
【０１３８】
ステップＳ１３２では、スケジュール部２２０は、測定対象のタスクＴＳＫの処理時間ＴＰの計測を終了させる計測終了指示を測定部２５０に通知する。タスクＴＳＫの処理時間ＴＰを測定する際のスケジュール部２２０の動作は、ステップＳ１３２の処理が実行された後、終了する。
【０１３９】
ステップＳ１３３では、測定部２５０は、計測終了指示をスケジュール部２２０から受信する。
【０１４０】
ステップＳ１３５では、測定部２５０は、ステップＳ１３３で受信した計測終了指示が示すタスクＴＳＫ（測定対象のタスクＴＳＫ）の終了タイムスタンプを取得する。
【０１４１】
ステップＳ１３７では、測定部２５０は、ステップＳ１２７で取得した開始タイムスタンプが示す時刻（開始時刻）と、ステップＳ１３５で取得した終了タイムスタンプが示す時刻（終了時刻）とに基づいて、測定対象のタスクＴＳＫの処理時間ＴＰを算出する。タスクＴＳＫの処理時間ＴＰを測定する際の測定部２５０の動作は、ステップＳ１３７の処理が実行された後、終了する。
【０１４２】
図１１は、符号化時間ＴＰｃを予測する際のタスク情報管理部２００の動作の一例を示す。すなわち、図１１は、図８に示したステップＳ５００の処理の一例を示す。図１１に示す動作は、例えば、タスク情報管理部２００の予測部１６０により実行される。図１１では、フレームＦＲＭの画素値の分散αを図４に示すように、４つのグループに分けた場合を例にして予測部１６０の動作を説明する。
【０１４３】
ステップＳ５０２では、予測部１６０は、データ量算出部１２０で算出したデータ量β（図８のステップＳ３００で算出されたデータ量β）を取得する。
【０１４４】
ステップＳ５０４では、予測部１６０は、分散値算出部１４０で算出した分散値α（図８のステップＳ４００で算出された分散値α）を取得する。
【０１４５】
ステップＳ５０６では、予測部１６０は、ステップＳ５０２で取得したデータ量βに対応するデータ量グループを、符号化時間テーブルＣＴＢＬから検出する。例えば、ステップＳ５０２で取得したデータ量βが閾値ＴＨＶ１以上で閾値ＴＨＶ２未満である場合、予測部１６０は、図４に示したデータ量グループ２を、ステップＳ５０８以降の処理で参照する。
【０１４６】
ステップＳ５０８では、予測部１６０は、ステップＳ５０６で検出したデータ量グループ内の分散値のグループの閾値ＴＨＤと、ステップＳ５０４で取得した分散値αとを比較する。すなわち、予測部１６０は、ステップＳ５０４で取得した分散値αが、フレームＦＲＭの画素値の分散の大きさに応じて分けた複数のグループのうちのどのグループに属するかを検出する。
【０１４７】
ステップＳ５１０では、予測部１６０は、ステップＳ５０４で取得した分散値αが、０以上で閾値ＴＨＤ１未満であるか否かを判定する。分散値αが０以上で閾値ＴＨＤ１未満である場合、予測部１６０の動作は、ステップＳ５１２に移る。一方、分散値αが閾値ＴＨＤ１以上の場合、予測部１６０の動作は、ステップＳ５１４に移る。
【０１４８】
ステップＳ５１２では、予測部１６０は、ステップＳ５０６で検出したデータ量グループに登録された符号化時間ＴＰｃのうち、分散値αが０以上で閾値ＴＨＤ１未満に対応する符号化時間ＴＰｃを、対象フレームＦＲＭの符号化時間ＴＰｃとして予測する。
【０１４９】
ステップＳ５１４では、予測部１６０は、ステップＳ５０４で取得した分散値αが、閾値ＴＨＤ１以上で閾値ＴＨＤ２未満であるか否かを判定する。分散値αが閾値ＴＨＤ１以上で閾値ＴＨＤ２未満である場合、予測部１６０の動作は、ステップＳ５１６に移る。一方、分散値αが閾値ＴＨＤ２以上の場合、予測部１６０の動作は、ステップＳ５１８に移る。
【０１５０】
ステップＳ５１６では、予測部１６０は、ステップＳ５０６で検出したデータ量グループに登録された符号化時間ＴＰｃのうち、分散値αが閾値ＴＨＤ１以上で閾値ＴＨＤ２未満に対応する符号化時間ＴＰｃを、対象フレームＦＲＭの符号化時間ＴＰｃとして予測する。
【０１５１】
ステップＳ５１８では、予測部１６０は、ステップＳ５０４で取得した分散値αが、閾値ＴＨＤ２以上で閾値ＴＨＤ３未満であるか否かを判定する。分散値αが閾値ＴＨＤ２以上で閾値ＴＨＤ３未満である場合、予測部１６０の動作は、ステップＳ５２０に移る。一方、分散値αが閾値ＴＨＤ３以上の場合、予測部１６０の動作は、ステップＳ５２２に移る。
【０１５２】
ステップＳ５２０では、予測部１６０は、ステップＳ５０６で検出したデータ量グループに登録された符号化時間ＴＰｃのうち、分散値αが閾値ＴＨＤ２以上で閾値ＴＨＤ３未満に対応する符号化時間ＴＰｃを、対象フレームＦＲＭの符号化時間ＴＰｃとして予測する。
【０１５３】
ステップＳ５２２では、予測部１６０は、ステップＳ５０６で検出したデータ量グループに登録された符号化時間ＴＰｃのうち、分散値αが閾値ＴＨＤ３以上に対応する符号化時間ＴＰｃを、対象フレームＦＲＭの符号化時間ＴＰｃとして予測する。
【０１５４】
このように、予測部１６０は、対象フレームＦＲＭにおいて、対象フレームＦＲＭのデータ量βと対象フレームＦＲＭの画素値の分散αとの組み合わせに対応する符号化時間ＴＰｃを符号化時間テーブルＣＴＢＬに基づいて予測する。なお、対象フレームＦＲＭのデータ量βと対象フレームＦＲＭの画素値の分散αとの組み合わせに対応する符号化時間ＴＰｃを符号化時間テーブルＣＴＢＬから検出する方法は、図１１に示した方法に限定されない。
【０１５５】
図１２は、デインターレース処理を異なる精度で実行するタスクＴＳＫの一例を示す。タスク制御装置１００は、デインターレース処理を画像処理装置２０に実行させる場合、デインターレース処理を異なる精度で実行する低精度処理タスクＴＳＫｄ１および高精度処理タスクＴＳＫｄ２のいずれかを選択する。
【０１５６】
デインターレース処理のうちのフィルタ処理を実行する際の処理単位（処理ブロック）は、低精度処理タスクＴＳＫｄ１の方が高精度処理タスクＴＳＫｄ２に比べて大きい。このため、タスクＴＳＫの処理時間ＴＰは、低精度処理タスクＴＳＫｄ１の方が高精度処理タスクＴＳＫｄ２に比べて短く、画像処理後の画質は、高精度処理タスクＴＳＫｄ２の方が低精度処理タスクＴＳＫｄ１に比べて高い。なお、低精度処理タスクＴＳＫｄ１が実行された場合の画質は、デインターレース処理が実行されない場合に比べて高い。
【０１５７】
例えば、１フレーム期間ＴＦＲＭの空き時間が高精度処理タスクＴＳＫｄ２の処理時間ＴＰ以上である場合、デインターレース処理を実行するタスクＴＳＫとして高精度処理タスクＴＳＫｄ２が選択される。この場合、デインターレース処理を実行するタスクＴＳＫとして低精度処理タスクＴＳＫｄ１のみが選択される場合に比べて、画像処理後の画質を向上することができる。
【０１５８】
また、例えば、１フレーム期間ＴＦＲＭの空き時間が低精度処理タスクＴＳＫｄ１の処理時間ＴＰ以上で高精度処理タスクＴＳＫの処理時間ＴＰ未満である場合、デインターレース処理を実行するタスクＴＳＫとして低精度処理タスクＴＳＫｄ１が選択される。この場合、デインターレース処理が実行されない場合に比べて、画像処理後の画質を向上することができる。なお、デインターレース処理を実行するタスクＴＳＫとして高精度処理タスクＴＳＫｄ２のみが選択されるタスク制御方法では、デインターレース処理（高精度処理タスクＴＳＫｄ２）が実行された場合、符号化処理は１フレーム期間ＴＦＲＭ内に終了しない。この場合、符号化された動画を復号して再生したときにコマ落ちが発生するおそれがある。コマ落ちが発生した場合、低精度処理タスクＴＳＫｄ１が実行された場合に比べて、動画の品質は低下する。
【０１５９】
また、例えば、１フレーム期間ＴＦＲＭの空き時間が低精度処理タスクＴＳＫｄ１の処理時間ＴＰ未満である場合、デインターレース処理は実行されない。この場合、符号化された動画を復号して再生したときにコマ落ちが発生することを抑制できる。これにより、動画の品質低下を抑制することができる。
【０１６０】
このように、タスク制御装置１００は、画像処理装置２０が実行するデインターレース処理として、２つのタスクＴＳＫ（ＴＳＫｄ１、ＴＳＫｄ２）のうちの１つを、１フレーム期間ＴＦＲＭの空き時間と２つのタスクＴＳＫの処理時間ＴＰとに基づいて決定する。なお、デインターレース処理を異なる精度で実行するタスクＴＳＫの数は、２つに限定されない。
【０１６１】
図１３は、ノイズリダクション処理を異なる精度で実行するタスクＴＳＫの一例を示す。タスク制御装置１００は、ノイズリダクション処理を画像処理装置２０に実行させる場合、ノイズリダクション処理を異なる精度で実行する低精度処理タスクＴＳＫｎ１および高精度処理タスクＴＳＫｎ２のいずれかを選択する。
【０１６２】
ノイズリダクション処理を実行する際の処理単位（処理ブロック）は、低精度処理タスクＴＳＫｎ１の方が高精度処理タスクＴＳＫｎ２に比べて大きい。このため、タスクＴＳＫの処理時間ＴＰは、低精度処理タスクＴＳＫｎ１の方が高精度処理タスクＴＳＫｎ２に比べて短く、画像処理後の画質は、高精度処理タスクＴＳＫｎ２の方が低精度処理タスクＴＳＫｎ１に比べて高い。なお、低精度処理タスクＴＳＫｎ１が実行された場合の画質は、ノイズリダクション処理が実行されない場合に比べて高い。
【０１６３】
例えば、１フレーム期間ＴＦＲＭの空き時間が高精度処理タスクＴＳＫｎ２の処理時間ＴＰ以上である場合、ノイズリダクション処理を実行するタスクＴＳＫとして高精度処理タスクＴＳＫｎ２が選択される。この場合、ノイズリダクション処理を実行するタスクＴＳＫとして低精度処理タスクＴＳＫｎ１のみが選択される場合に比べて、画像処理後の画質を向上することができる。
【０１６４】
また、例えば、１フレーム期間ＴＦＲＭの空き時間が低精度処理タスクＴＳＫｎ１の処理時間ＴＰ以上で高精度処理タスクＴＳＫｎ２の処理時間ＴＰ未満である場合、ノイズリダクション処理を実行するタスクＴＳＫとして低精度処理タスクＴＳＫｎ１が選択される。この場合、ノイズリダクション処理が実行されない場合に比べて、画像処理後の画質を向上することができる。なお、ノイズリダクション処理を実行するタスクＴＳＫとして高精度処理タスクＴＳＫｎ２のみが選択されるタスク制御方法では、ノイズリダクション処理（高精度処理タスクＴＳＫｎ２）が実行された場合、符号化処理は１フレーム期間ＴＦＲＭ内に終了しない。この場合、符号化された動画を復号して再生したときにコマ落ちが発生するおそれがある。コマ落ちが発生した場合、低精度処理タスクＴＳＫが実行された場合に比べて、動画の品質は低下する。
【０１６５】
また、例えば、１フレーム期間ＴＦＲＭの空き時間が低精度処理タスクＴＳＫｎ１の処理時間ＴＰ未満である場合、ノイズリダクション処理は実行されない。この場合、符号化された動画を復号して再生したときにコマ落ちが発生することを抑制できる。これにより、動画の品質低下を抑制することができる。
【０１６６】
このように、タスク制御装置１００は、画像処理装置２０が実行するノイズリダクション処理として、２つのタスクＴＳＫ（ＴＳＫｎ１、ＴＳＫｎ２）のうちの１つを、１フレーム期間ＴＦＲＭの空き時間と２つのタスクＴＳＫの処理時間ＴＰとに基づいて決定する。なお、ノイズリダクション処理を異なる精度で実行するタスクＴＳＫの数は、２つに限定されない。
【０１６７】
図１４は、図２に示したタスク制御装置１００のハードウェア構成の一例を示す。なお、図２から図１３で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。
【０１６８】
画像処理装置２０Ａは、例えば、ビデオ入力部６８、デインタレース部６０Ａ、ノイズリダクション部６２Ａ、スケーリング部６４Ａ、符号化部８２、８４、８６、イメージングコントローラ１０２、メモリ６６Ａ、１９０およびＣＰＵ２０２を有する。ビデオ入力部６８、符号化部８２、８４、８６、イメージングコントローラ１０２、メモリ６６ＡおよびＣＰＵ２０２は、バス５０Ａに接続される。
【０１６９】
ビデオ入力部６８は、フレームの画像データ（例えば、ＹＵＶ形式のビデオＲａｗデータ）を画像処理装置２０Ａの外部から順次受け、画像データをバス５０Ａを介してメモリ６６Ａに転送する。これにより、フレームの画像データは、メモリ６６Ａに記憶される。メモリ６６Ａは、ビデオ入力部６８から受けた画像データの他に、各処理が実行された画像データを記憶する。
【０１７０】
デインタレース部６０Ａ、ノイズリダクション部６２Ａおよびスケーリング部６４Ａは、イメージングコントローラ１０２に制御されることを除いて、図２に示したデインタレース部６０、ノイズリダクション部６２、スケーリング部６４と同一または同様である。
【０１７１】
符号化部８２は、スケーリング部６４Ａ等で前処理された画像データをメモリ６６Ａからバス５０Ａを介して受け、Ｈ．２６５の符号化方式にしたがって画像データを符号化する。符号化部８４は、スケーリング部６４Ａ等で前処理された画像データをメモリ６６Ａからバス５０Ａを介して受け、Ｈ．２６４の符号化方式にしたがって画像データを符号化する。符号化部８６は、スケーリング部６４Ａ等で前処理された画像データをメモリ６６Ａからバス５０Ａを介して受け、ＭＰＥＧ−２の符号化方式にしたがって画像データを符号化する。
【０１７２】
イメージングコントローラ１０２は、画像処理装置２０Ａが受けた画像を分析し、デインタレース部６０Ａ、ノイズリダクション部６２Ａおよびスケーリング部６４Ａ等を制御する。イメージングコントローラ１０２により実行される画像の分析には、画像データＩＤＡＴＡのデータ量βの算出、対象フレームの画素値の分散αの算出等が含まれる。すなわち、図２に示したデータ量算出部１２０および分散値算出部１４０の機能は、イメージングコントローラ１０２により実現される。また、イメージングコントローラ１０２は、図２に示した画像情報ＩＩＮＦ（水平サイズＨ、垂直サイズＶ、ビット数Ｂ、輝度色差比Ｆ等）を保持するレジスタ４０等を有する。
【０１７３】
ＣＰＵ２０２は、メモリ１９０に格納されたオペレーティングシステム等を実行することで、画像処理装置２０Ａの動作を制御する。また、ＣＰＵ２０２は、例えば、メモリ１９０に格納されたタスク制御プログラム等のアプリケーションプログラムを実行することで、図２に示したタスク情報管理部２００、スケジュール部２２０、フレームレート監視部２４０および測定部２５０として機能する。また、ＣＰＵ２０２は、符号化される動画の画像情報ＩＩＮＦをイメージングコントローラ１０２内のレジスタ４０に格納する。
【０１７４】
メモリ１９０は、例えば、画像処理装置２０Ａのオペレーティングシステムを記憶する。また、メモリ１９０は、例えば、タスク制御装置１００の動作をＣＰＵ２０２が実行するためのタスク制御プログラム等のアプリケーションプログラムを記憶する。
【０１７５】
したがって、図２に示したタスク制御装置１００の機能は、イメージングコントローラ１０２、メモリ１９０およびＣＰＵ２０２により実現される。
【０１７６】
入力装置３００は、例えば、ユーザからの操作を受け、画像処理装置２０Ａにデータを入力するユニットである。入力装置３００の一例は、キーボード、マウス、タッチパネル等である。出力装置３０２は、例えば、ＣＰＵ２０２により実行された処理の結果を出力するユニットである。出力装置３０２の一例は、ディスプレイ、タッチパネル、スピーカー等である。
【０１７７】
なお、タスク制御装置１００のハードウェア構成は、図１４に示す例に限定されない。例えば、画像処理装置２０Ａは、ハードディスクを有してもよいし、記憶媒体のインターフェースを有してもよい。
【０１７８】
以上、図２から図１４に示した実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、タスク制御装置１００は、対象フレームのデータ量βおよび画素値の分散αに基づいて予測した符号化時間ＴＰｃに基づいて、画像処理装置２０に実行させるタスクＴＳＫを制御する。これにより、対象フレームのデータ量βおよび画像の複雑さ（画素値の分散α）、フレームレート等に連動して、タスクＴＳＫをスケジューリングすることができる。この結果、マルチフォーマット（様々なフレームレート、入力フォーマット）に対応したタスクＴＳＫのスケジューリングを実現できる。
【０１７９】
例えば、タスク制御装置１００は、１フレーム期間ＴＦＲＭのうち、予測部１６０で予測した符号化時間ＴＰｃを符号化処理タスクＴＳＫｃに割り当て、符号化時間ＴＰｃを除く空き時間を符号化処理タスクＴＳＫｃ以外のタスクＴＳＫに割り当てる。これにより、符号化処理タスクＴＳＫｃを含む複数のタスクＴＳＫを１フレーム期間ＴＦＲＭ内に終了させることができる。この結果、符号化処理に起因するコマ落ちの発生を抑制できる。
【０１８０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１８１】
２‥画像処理装置；４‥レジスタ；６‥前処理部；８‥符号化部；１０‥タスク制御装置；１２‥データ量算出部；１４‥分散値算出部；１６‥予測部；１８‥決定部；２０‥画像処理装置；４０‥レジスタ；６０、６０Ａ‥デインターレース部；６２、６２Ａ‥ノイズリダクション部；６４、６４Ａ‥スケーリング部；６６、６６Ａ‥記憶部；６８‥ビデオ入力部；８０、８２、８４、８６‥符号化部；１００‥タスク制御装置；１０２‥イメージングコントローラ；１２０‥データ量算出部；１４０‥分散値算出部；１６０‥予測部；１８０‥決定部；１９０‥記憶部；２００‥タスク情報管理部；２０２‥ＣＰＵ；３００‥入力装置；３０３‥出力装置
【図１】
2016208159.tif 000005
【図２】
2016208159.tif 000006
【図３】
2016208159.tif 000007
【図４】
2016208159.tif 000008
【図５】
2016208159.tif 000009
【図６】
2016208159.tif 000010
【図７】
2016208159.tif 000011
【図８】
2016208159.tif 000012
【図９】
2016208159.tif 000013
【図１０】
2016208159.tif 000014
【図１１】
2016208159.tif 000015
【図１２】
2016208159.tif 000016
【図１３】
2016208159.tif 000017
【図１４】
2016208159.tif 000018