(57)【要約】【課題】  本発明は、簡易な構成で、映像符号化処理のオーバーランによる映像の表示品質劣化を回避し得る映像符号化装置を実現する。【解決手段】  映像をフレーム毎に第１の符号化処理する符号化手段と、フレームの符号化処理に要した符号化実処理時間を検出する処理時間検出手段と、符号化処理に与えられる符号化予想処理時間と符号化実処理時間とに基づいてフレームの符号化処理の処理遅延時間を算出する遅延算出手段と、フレームについての処理遅延時間が所定の閾値以上のとき、第１の符号化処理方法よりも処理負荷の低い第２の符号化処理方法で次のフレームを符号化処理さえる符号化負荷制御手段とを映像符号化装置に設けたことにより、オーバーラン発生後のフレームの処理時間を短縮してオーバーランを回復し、オーバーラン発生によるフレームスキップを防止して映像の表示品質劣化を回避することができる。ことができる。【選択図】        図３
2005080123.tif 000002
【特許請求の範囲】
【請求項１】
映像をフレーム毎に第１の符号化処理方法で符号化処理する符号化手段と、
上記フレームの符号化処理に要した符号化実処理時間を検出する処理時間検出手段と、
上記符号化処理に与えられる所定の符号化予想処理時間と上記符号化実処理時間とに基づいて、上記フレームの符号化処理の処理遅延時間を算出する遅延算出手段と、
上記フレームについての上記処理遅延時間が所定の閾値以上のとき、上記第１の符号化処理方法より符号化処理負荷の低い第２の符号化処理方法で次のフレームを符号化処理するよう上記符号化手段に指示する符号化負荷制御手段と
を具えることを特徴とする映像符号化装置。
【請求項２】
上記遅延算出手段は、上記符号化処理に与えられる上記符号化予想処理時間を上記符号化実処理時間から減算することにより、上記処理遅延時間を算出する
ことを特徴とする請求項１に記載の映像符号化装置。
【請求項３】
上記符号化負荷制御手段は、連続する複数の上記フレームについての上記処理遅延時間の累積値が所定の閾値以上のとき、当該連続する複数のフレームの次のフレームに対して、上記第２の符号化処理方法よりも符号化処理負荷の低い第３の符号化処理方法で符号化処理するよう上記符号化手段に指示する
ことを特徴とする請求項１に記載の映像符号化装置。
【請求項４】
上記符号化負荷制御手段は、上記フレームについての上記処理遅延時間が所定の閾値以上のとき、上記符号化手段に当該フレームに対する符号化処理の終了後、連続して次のフレームの符号化処理を開始させる
ことを特徴とする請求項１に記載の映像符号化装置。
【請求項５】
映像をフレーム毎に符号化処理する符号化ステップと、
上記フレームの符号化処理に要した符号化実処理時間を検出する処理時間検出ステップと、
上記符号化処理に与えられる所定の符号化予想処理時間と上記符号化実処理時間とに基づいて、上記フレームの符号化処理の処理遅延時間を算出する遅延算出ステップと、
上記フレームについての上記処理遅延時間の平均が所定の予想処理時間を超える場合、次の上記フレームに対する符号化処理負荷を低減する符号化負荷制御ステップと
を具えることを特徴とする映像符号化制御方法。
【請求項６】
映像符号化装置に、
映像をフレーム毎に符号化処理する符号化ステップと、
上記フレームの符号化処理に要した符号化実処理時間を検出する処理時間検出ステップと、
上記符号化処理に与えられる所定の符号化予想処理時間と上記符号化実処理時間とに基づいて、上記フレームの符号化処理の処理遅延時間を算出する遅延算出ステップと、
上記フレームについての上記処理遅延時間の平均が所定の予想処理時間を超える場合、次の上記フレームに対する符号化処理負荷を低減する符号化負荷制御ステップと
を実行させる映像符号化制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化装置、映像符号化制御方法及び映像符号化制御プログラムに関し、ソフトウェア符号化を行う映像符号化装置に適用して好適なものである。
【背景技術】
【０００２】
従来、映像信号の圧縮符号化・復号装置においては、専用の映像処理用ハードウェアを用いて符号化処理（エンコーディング）や復号処理（コーディング）を行っていた。これをハードウェアコーデックと呼ぶ（例えば、特許文献１参照）。
【０００３】
これに対して、近年のコンピュータ技術の発達に伴い、汎用のＣＰＵ（Central Processing Unit）上で映像処理プログラムを実行することにより、上述した符号化処理や復号処理を行うこと（これをソフトウェアコーデックと呼ぶ）が実用化されている。
【０００４】
かかるソフトウェアコーデックにおいては、上述したハードウェアコーデックとは異なり、映像処理プログラムを変更するだけで、ＭＰＥＧ(Moving Picture Experts Group)1/2/4やＪＰＥＧ２０００等の国際標準化された圧縮符号化方式、あるいはその他の種々の圧縮符号化方法に容易に対応できるという利点がある。また、新たな圧縮符号化方法が開発された場合でも、これに応じて映像処理プログラムを更新するだけで、容易に最新の圧縮符号化方法に対応することができる。
【特許文献１】特開２００３−６１０９７公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ソフトウェアエンコーディングにおいては、ＣＰＵは映像の符号化処理（映像符号化スレッドないしはプロセス）と音声の符号化処理（音声符号化スレッドないしはプロセス）とを時分割で交互に処理していく。音声はその遅延や欠落がユーザに感知されやすいため、音声符号化スレッドが優先的に処理されることが一般的である。例えば１フレーム期間（１／３０秒）の間に、まず１フレーム分の音声を処理し、その後に画像１フレームを処理する。
【０００６】
図８はソフトウェアエンコーディングの処理状態を示し、外部から入力された映像データ及び音声データは、それぞれ一旦映像入力バッファ及び音声入力バッファに格納される。ＣＰＵは、まず音声符号化スレッドを実行し、音声入力バッファから１フレーム分の音声データを読み出して圧縮符号化した後出力する。続いてＣＰＵは映像符号化スレッドを実行し、映像入力バッファから映像データを１フレーム読み出して圧縮符号化した後出力する。このようにしてＣＰＵは、映像データ及び音声データを１フレーム期間毎に時分割で順次符号化していく。
【０００７】
ここで、音声の圧縮符号化処理においては、その処理時間があまり変化しないのに対し、映像の圧縮符号化処理においては、符号化しようとする入力映像の複雑度（絵柄や動き等）に応じて、その処理時間が大幅に変化する。
【０００８】
例えば、空や壁面等の、比較的平坦な部分が多く動きの少ない映像では処理時間が短いのに対し、スポーツ中継等の、絵柄が複雑で動きが速く、しかも適度な速度でパンやズームを行うような映像では、処理時間が増大する。この処理時間の増大によって、１フレーム期間内に符号化処理を完了できなくなる場合がある。このような処理遅延をオーバーランと呼ぶ。
【０００９】
すなわち図８において、Ｎ番目のフレームが極端に複雑で、１フレーム期間内に符号化が完了しなかったものとする（オーバーランの発生）。この場合ＣＰＵは、オーバーランを生じたＮ番目のフレームに対する符号化処理の完了が、Ｎ＋１番目のフレームを符号化すべきタイミングにまで食い込んでしまう。尚、ビデオ、オーディオの各符号化スレッドの切換えは、通常、ＯＳ(Operating System)によるコンテクスト・スイッチにより行われる。
【００１０】
ここでこのフレーム期間は、本来はＮ＋１番目のフレームを処理すべき期間であるが、オーバーランを生じたフレームを処理したがために、Ｎ＋１番目のフレームを処理することができない。このためＣＰＵは、当該Ｎ＋１番目のフレームに対する符号化処理をスキップし、次のＮ＋２番目のフレームから符号化処理を行う。
【００１１】
このように従来のソフトウェアエンコーディングにおいては、画像符号化処理においてオーバーランが発生した場合、次のフレームに対する符号化をスキップするようになされている。しかしながら、このようなフレームスキップが発生すると、表示される映像がコマ送り状態となり、映像の表示品質が損なわれるという問題がある。
【００１２】
かかるオーバーランを回避するためには、複数のＣＰＵを並列動作させたり、ＣＰＵの動作クロックを上昇する等が考えられるが、これにより装置全体が複雑化したり、消費電力が上昇してしまうという問題がある。
【００１３】
本発明は以上の点を考慮してなされたもので、簡易な構成で、映像符号化処理のオーバーランによる映像の表示品質劣化を回避し得る映像符号化装置、映像符号化制御方法及び映像符号化制御プログラムを提案しようとするものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため本発明においては、映像をフレーム毎に第１の符号化処理方法で符号化処理する符号化手段と、フレームの符号化処理に要した符号化実処理時間を検出する処理時間検出手段と、符号化処理に与えられる所定の符号化予想処理時間と符号化実処理時間とに基づいてフレームの符号化処理の処理遅延時間を算出する遅延算出手段と、フレームについての処理遅延時間が所定の閾値以上のとき、第１の符号化処理方法より符号化処理負荷の低い第２の符号化処理方法で次のフレームを符号化処理するよう符号化手段に指示する符号化負荷制御手段とを映像符号化装置に設けるようにする。
【００１５】
符号化処理の遅延発生に応じて、次フレームの符号化負荷が低減するように制御することにより、オーバーラン発生後のフレームの処理時間を短縮してオーバーランを回復し、オーバーラン発生によるフレームスキップを防止して映像の表示品質劣化を回避することができる。
【００１６】
また本発明においては、連続する複数のフレームについての処理遅延時間の累積値が所定の閾値以上のとき、当該連続する複数のフレームの次のフレームに対して、第２の符号化処理方法よりも符号化処理負荷の低い第３の符号化処理方法で符号化処理するようにした。
【００１７】
オーバーランの値が大きく、１フレームでは当該オーバーランを回復し得なかった場合でも、以降のフレームの符号化処理負荷をさらに低減することで、数フレームの間に確実にオーバーランを回復することができる。
【発明の効果】
【００１８】
上述のように本発明によれば、映像符号化処理の遅延発生に応じて、次フレームの符号化負荷が低減するように制御することにより、オーバーラン発生後のフレームの処理時間を短縮してオーバーランを回復し、オーバーラン発生によるフレームスキップを防止して映像の表示品質劣化を回避し得る映像符号化装置、映像符号化制御方法並びに映像符号化制御プログラムを実現することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）信号処理装置の全体構成
図１において、１は全体として本発明による映像符号化装置としての信号処理装置を示し、当該信号処理装置１を統括的に制御するＣＰＵ２に対して、ローカルメモリ３、映像入出力部４及びネットワークインターフェース５が接続されている。ＣＰＵ２とローカルメモリ３の間は、高速のローカルバスで直結されている。
【００２１】
そして信号処理装置１においては、図示しないＲＯＭに格納されたコーデックプログラムをＣＰＵ２が読み出して実行することにより、映像及び音声信号に対する符号化及び復号をソフトウェアで処理するようになされている。
【００２２】
すなわち信号処理装置１は映像及び音声の符号化時において、外部から入力されたアナログ映像信号及びアナログ音声信号を、信号入出力部４のＡ／Ｄ（Analog/Digital）コンバータ４Ａでディジタル変換してディジタル映像データ及びディジタル音声データ（以下、映像データ及び音声データと省略する）を生成し、これを一旦ローカルメモリ３に格納する。
【００２３】
ＣＰＵ２は、ローカルメモリ３に格納した映像データ及び音声データを順次読み出し、上述したコーデックプログラムに従って、例えばＭＰＥＧ1/2/4等の国際標準化された圧縮方式、あるいはその他の種々の映像音声圧縮方式で圧縮符号化して符号化映像データ及び符号化音声データを生成する。
【００２４】
そしてＣＰＵ２は、この符号化映像データ及び符号化音声データを一旦ローカルメモリ３に格納した後順次読み出し、ネットワークインターフェース５に供給する。ネットワークインターフェース５は、符号化映像データ及び符号化音声データを所定のフォーマットに従ってパケット化（パケッタイズ）し、これを外部の記憶媒体や伝送先の機器に送出する。
【００２５】
一方、信号処理装置１は映像及び音声の復号時において、外部の記憶媒体や伝送元の機器から供給される、パケット化された符号化映像データ及び符号化音声データをネットワークインターフェース５で復元（デパケッタイズ）し、これを一旦ローカルメモリ３に格納する。
【００２６】
符号化手段としてのＣＰＵ２は、ローカルメモリ３に格納した圧縮映像データ及び圧縮音声データを順次読み出し、上述したコーデックプログラムに従って復号して映像データ及び音声データを生成する。
【００２７】
そしてＣＰＵ２は、この映像データ及び音声データを一旦ローカルメモリ３に格納した後順次読み出し、信号入出力部４に供給する。信号入出力部４のＤ／Ａ（Digital/Analog）コンバータ４Ｂは映像データ及び音声データをアナログ変換してアナログ映像信号及びアナログ音声信号を生成し、これらを外部に出力する。
【００２８】
かくして信号処理装置１は、ソフトウェアコーデックによって映像信号及び音声信号に対する符号化処理及び復号処理を実行する。
【００２９】
次に、上述した信号処理装置１におけるソフトウェアコーデックによる映像信号及び音声信号に対する符号化処理及び復号処理を、図２に示すシステムダイアグラムを用いて詳細に説明する。
【００３０】
符号化時において、信号入出力部４のＡ／Ｄコンバータ４Ａ（図１）から供給された映像データ及び音声データは、ローカルメモリ３のビデオ入力バッファ３Ａ及びオーディオ入力バッファ３Ｂにそれぞれ格納される。
【００３１】
図２において、ＣＰＵ２によって実行されるコーデックプログラムのうちのビデオ入力バッファコントローラ１０Ａは、ビデオ入力バッファ３Ａを常に監視しており、２フレーム分のサイズをもつ当該ビデオ入力バッファ３Ａに１フレーム分の映像データが蓄積されると、これに応じて、コーデックプログラムのうちのビデオ符号化スレッド１１Ａに対してスタートコマンドを送出するとともに、ビデオ入力バッファ３Ａから１フレーム分の映像データをビデオ符号化スレッド１１Ａに転送させる。
【００３２】
ビデオ符号化スレッド１１Ａは、ビデオ入力バッファコントローラ１０Ａから供給されるスタートコマンドに応じて、ビデオ入力バッファ３Ａから１フレーム分の映像データを読み出し、これを圧縮符号化してローカルメモリ３のビデオストリーム出力バッファ３Ｃに出力するとともに、ビデオ入力バッファコントローラ１０Ａに対して終了サインとしてのフィードバックメッセージを返送してスレッドを終了する。
【００３３】
同様に、コーデックプログラムのうちのオーディオ入力バッファコントローラ１０Ｂは、オーディオ入力バッファ３Ｂを常に監視しており、当該オーディオ入力バッファ３Ｂに１フレーム分の音声データが蓄積されると、これに応じてコーデックプログラムのうちのオーディオ符号化スレッド１１Ｂにスタートコマンドを送出するとともに、オーディオ入力バッファ３Ｂから１フレーム分の音声データをオーディオ符号化スレッド１１Ｂに転送させる。
【００３４】
オーディオ符号化スレッド１１Ｂは、オーディオ入力バッファコントローラ１０Ｂから供給されるスタートコマンドに応じて、オーディオ入力バッファ３Ｂから１フレーム分の音声データを読み出し、これを圧縮符号化してローカルメモリ３のオーディオストリーム出力バッファ３Ｄに出力するとともに、オーディオ入力バッファコントローラ１０Ｂに対して終了サインとしてのフィードバックメッセージを返送してスレッドを終了する。
【００３５】
ここで、オーディオ符号化スレッド１１Ｂはビデオ符号化スレッド１１Ａよりも優先して処理される。
【００３６】
そして、ネットワークインターフェース５のパケッタイザ５Ａは、ビデオストリーム出力バッファ３Ｃ及びオーディオストリーム出力バッファ３Ｄから符号化映像データ及び符号化音声データを読み出してパケット化し出力する。
【００３７】
一方、復号時において、ネットワークインターフェース５のデパケッタイザ５Ｂは、外部から供給されるパケットから符号化映像データ及び符号化音声データを復元して、ローカルメモリ３のビデオストリーム入力バッファ３Ｅ及びオーディオストリーム入力バッファ３Ｆに格納する。
【００３８】
ＣＰＵ２によって実行されるコーデックプログラムのうちのビデオストリーム入力バッファコントローラ１０Ｃは、ビデオストリーム入力バッファ３Ｅを常に監視しており、当該ビデオストリーム入力バッファ３Ｅに１アクセスユニット分の符号化映像データが蓄積されると、これに応じて、ＣＰＵ２によって実行されるコーデックプログラムのうちのビデオ復号スレッド１２Ａに対してスタートコマンドを送出するとともに、ビデオストリーム入力バッファ３Ｅから１アクセスユニット分の符号化映像データをビデオ復号スレッド１２Ａに転送させる。
【００３９】
ビデオ復号スレッド１２Ａは、ビデオストリーム入力バッファコントローラ１０Ｃから供給されるスタートコマンドに応じて、ビデオストリーム入力バッファ３Ｅから１アクセスユニット分の符号化映像データを読み出し、これを復号してローカルメモリ３のビデオ出力バッファ３Ｇに出力するとともに、ビデオストリーム入力バッファコントローラ１０Ｃに対して終了サインとしてのフィードバックメッセージを返送してスレッドを終了する。
【００４０】
同様に、コーデックプログラムのうちのオーディオストリーム入力バッファコントローラ１０Ｄはオーディオストリーム入力バッファ３Ｆを常に監視しており、当該オーディオストリーム入力バッファ３Ｆに１アクセスユニット分の符号化音声データが蓄積されると、これに応じて、コーデックプログラムのうちのオーディオ復号スレッド１２Ｂに対してスタートコマンドを送出するとともに、オーディオストリーム入力バッファ３Ｆから１アクセスユニット分の符号化音声データをオーディオ復号スレッド１２Ｂに転送させる。
【００４１】
オーディオ復号スレッド１２Ｂは、オーディオストリーム入力バッファコントローラ１０Ｄから供給されるスタートコマンドに応じて、オーディオストリーム入力バッファ３Ｆから１アクセスユニット分の符号化音声データを読み出し、これを復号してローカルメモリ３のオーディオ出力バッファ３Ｈに出力するとともに、オーディオストリーム入力バッファコントローラ１０Ｄに対して終了サインとしてのフィードバックメッセージを返送してスレッドを終了する。
【００４２】
（２）本発明によるオーバーランリカバリ
上述したようにこの信号処理装置１では、符号化時において、オーディオ符号化スレッドを優先しながら、１フレーム期間にオーディオ符号化スレッド及びビデオ符号化スレッドを交互にそれぞれ１フレーム分実行して符号化処理を行うようになされている。
【００４３】
これに加えてこの信号処理装置１では、映像符号化処理において符号化遅延（オーバーラン）が発生した場合、スレッド実行順序の変更や映像符号化処理の負荷を低減することにより、符号化スキップを行うことなくオーバーランを回復（以下、これをオーバーランリカバリと呼ぶ）するようになされている。
【００４４】
すなわち処理時間検出手段としてのＣＰＵ２は、映像符号化スレッドの開始タイミング及び終了タイミングにおける時間情報をシステムタイムクロック（図示せず）から取得し、この開始タイミング及び終了タイミングの時間差から１フレーム当たりの符号化実処理時間を算出する。さらに遅延算出手段としてのＣＰＵ２は、この符号化実処理時間からあらかじめ予想されている符号化予想処理時間を減算した処理遅延時間を算出する。
【００４５】
そして符号化負荷制御手段としてのＣＰＵ２は、この処理遅延時間が「０」より大きい場合、オーバーランが発生しているものとしてオーバーランリカバリを実行する。
【００４６】
次に、このオーバーランリカバリの処理例を、図３に示すタイミングチャートを用いて説明する。図３において、Ｎ番目のフレームが極端に複雑で、１フレーム期間内に符号化が完了しなかったものとする（オーバーランの発生）。この場合ＣＰＵ２は従来と同様に、オーバーランを生じたＮ番目のフレームに対する符号化処理を中断し、次のフレーム期間において、まずＮ＋１番目のフレームに対応する音声データを符号化した後、オーバーランが生じたＮ番目のフレームの映像データの符号化を再開することにより、当該Ｎ番目のフレームの符号化を完了する。
【００４７】
再開したＮ番目のフレームの符号化完了に続いてＣＰＵ２は、即座にＮ＋１番目のフレームに対する符号化処理を開始する。このとき符号化負荷制御手段としてのＣＰＵ２は、このＮ＋１番目のフレームに対して、通常の符号化処理よりも処理負荷の低い符号化処理方法を適用する。この、通常よりも負荷の低い符号化処理方法をリカバリエンコーディングモード１と呼ぶ。これに対して通常の符号化処理方法をノーマルエンコーディングと呼ぶ。図４及び図５に、ノーマルエンコーディング及びリカバリエンコーディングモード１の処理ダイヤグラムを示す。
【００４８】
このリカバリエンコーディングモード１においてＣＰＵ２は、予測符号化における動きベクトルの捜索範囲をノーマルエンコーディングよりも狭めることによって動きベクトル探索の処理サイクルを削減して処理負荷を低減し、これにより１フレーム当たりの符号化処理時間を短縮する。
【００４９】
このようにリカバリエンコーディングモード１を適用して符号化処理時間を短縮した結果、１フレーム期間内に当該Ｎ＋１番目のフレームの符号化処理が完了した場合（図示せず）、ＣＰＵ２は次のＮ＋２番目以降のフレームに対し、ノーマルエンコーディングを適用して処理を行う。
【００５０】
これに対して図３に示すように、リカバリエンコーディングモード１を適用して処理時間短縮を図ったものの、Ｎ＋１番目のフレームが１フレーム期間内で符号化が完了しなかった（オーバーランを回復できなかった）場合、ＣＰＵ２は、当該Ｎ＋１番目のフレームに対する符号化を一旦中断し、次のフレーム期間において、まずＮ＋１番目のフレームに対応する音声データを符号化した後、Ｎ＋１番目のフレームの映像データの符号化を再開する。
【００５１】
そして、再開したＮ＋１番目のフレームの符号化完了に続いてＣＰＵ２は、次のＮ＋２番目のフレームに対する符号化処理を開始する。このとき符号化負荷制御手段としてのＣＰＵ２は、このＮ＋２番目のフレームに対して、リカバリエンコーディングモード１よりもさらに処理負荷の低い符号化処理方法を適用する。この符号化処理方法をリカバリエンコーディングモード２と呼ぶ。
【００５２】
このリカバリエンコーディングモード２においてＣＰＵ２は、図６に示す処理ダイヤグラムのように、逆量子化〜逆変換符号化〜動き補償によるフレームの再生の一連の戻り処理系を停止する。この戻り処理系は、次のフレームを予測するために参照フレームをフレームメモリ上に再構築する処理である。ＣＰＵ２はリカバリエンコーディングモード２において、この戻り処理系を停止することにより、モード１に比べてさらに符号化処理時間を短縮する。
【００５３】
かくしてＣＰＵ２は図３に示すように、リカバリエンコーディングモード１を適用してもオーバーランを回復できなかった場合、次のフレームに対してさらに処理負荷の低いモード２を適用することにより、オーバーランの発生から３フレーム期間以内で確実にオーバーランを回復するようになされている。
【００５４】
ここで、オーバーランリカバリのためにリカバリエンコーディングモード２を適用した場合、フレームメモリには動き予測用の参照フレームが記録されない状態となり、これにより次のフレームはこの参照フレームを用いた動き予測を行うことができなくなる。
【００５５】
このためＣＰＵ２はリカバリエンコーディングモード２を適用した場合、その次のフレームを、動き予測を行わないＩピクチャ（イントラ符号化ピクチャ）として符号化するとともに、このフレームを起点としてＧＯＰ（Group Of Picture）を再構築する。
【００５６】
次に、上述したコーデックプログラムにおけるオーバーランリカバリの処理手順を、図７に示すフローチャートを用いて説明する。信号処理装置１のＣＰＵ２は、ルーチンＲＴ１の開始ステップから入って次のステップＳＰ１へ移る。
【００５７】
ステップＳＰ１においてＣＰＵ２は、一つ前の映像フレームに対する符号化スレッド終了タイミングと、現在の映像フレームに対する符号化スレッド開始タイミングをＯＳ（Operating System）あるいはハードウェアから直接取得し、それぞれ記憶する。そしてＣＰＵ２は、既に記憶してある、一つ前のフレームの開始時刻と終了時刻との差分をとることで、一つ前のフレームの符号化に要した処理遅延時間ＴＮを算出し、当該ＴＮをオーバーラン累積処理時間に加算し、ＳＰ２に移る。ここで、累積処理遅延時間は処理開始時においては「０」に」設定されている。
【００５８】
ステップＳＰ２においてＣＰＵ２は、算出した累積処理遅延時間とオーバーランカウンタの値から、オーバーラン発生の有無を判定する。
【００５９】
ステップＳＰ２において、累積処理遅延時間をオーバーランカウンタ値で割った値がシステム起動時にビデオ符号化スレッドとして与えられる目標時間ＴＧＴ（TarGet Time）よりも小さい場合、このことはオーバーランが発生していないことを表しており、このときＣＰＵ２はステップＳＰ３に移り、このフレームをノーマルエンコードで符号化するとともに、累積処理遅延時間を「０」にリセット、同時にオーバーランカウンタを「１」にリセットしてステップＳＰ１に戻る。
【００６０】
これに対してステップＳＰ２において、累積処理遅延時間をオーバーランカウンタ値で割った値がシステム起動時にビデオ符号化スレッドとして与えられる目標時間ＴＧＴ（TarGet Time）よりも大きい場合、このことはオーバーランが発生していることを表しており、このときＣＰＵ２はステップＳＰ４に移り、オーバーランの発生フレーム数をカウントするためのオーバーランカウンタの値に「１」を加算して、次のステップＳＰ５に移る。
【００６１】
ステップＳＰ５においてＣＰＵ２は、オーバーランカウンタのカウント値に基づいて、オーバーランしたフレーム数を判定する。
【００６２】
ステップＳＰ５において、オーバーランしたフレーム数が１回であると判定した場合、ＣＰＵ２はステップＳＰ６に移り、次のフレームにリカバリエンコードモード１を適用して符号化を実行し、ステップＳＰ１に戻る。
【００６３】
これに対してステップＳＰ５において、オーバーランしたフレーム数が１回ではないと判定した場合、ＣＰＵ２はステップＳＰ７に移り、次のフレームにリカバリエンコードモード２を適用して符号化を実行し、さらに、その次のフレームに対してＩピクチャでの符号化を指定するとともにＧＯＰを再構築してステップＳＰ１に戻る。
【００６４】
（３）動作及び効果
以上の構成において、この信号処理装置１は、オーディオ符号化スレッドを優先しながら、１フレーム期間にオーディオ符号化スレッド及びビデオ符号化スレッドを交互にそれぞれ１フレーム分ずつ実行して映像及び音声を符号化していく。
【００６５】
そして信号処理装置１は、ビデオ符号化スレッドにおいてオーバーランが発生したことを検出すると、これに応じて、当該オーバーランが発生したフレームに続いて、即座に次のフレームを符号化開始する。このとき信号処理装置１は、次のフレームに対して処理負荷の軽いリカバリエンコーディングモード１を適用することにより、１フレーム当たりの符号化処理時間を短縮してオーバーランを回復しようとする。
【００６６】
さらに信号処理装置１は、次のフレームにリカバリエンコーディングモード１を適用したにもかかわらずオーバーランを回復できなかった場合、さらにその次のフレームに対して、より一層処理負荷の軽いリカバリエンコーディングモード２を適用することにより、オーバーランによるフレームスキップを起こすことなく、オーバーラン発生から有限フレーム期間内（例えば、３フレーム期間以内）で確実にオーバーランを回復することができる。
【００６７】
また信号処理装置１は、このようにしてオーバーランによるフレームスキップを回避することができるため、ＣＰＵ２や周辺装置の処理能力や動作クロック等を低減することができ、システム全体の構成や消費電力を低減することができる。
【００６８】
以上の構成によれば、信号処理装置１は、オーバーランの発生に応じて以降のフレームに対する符号化処理負荷を低減することにより、フレームスキップによる映像の表示品質劣化を回避することができる。
【００６９】
（４）他の実施の形態
なお上述の実施の形態においては、オーバーランの発生に応じて、まず動きベクトルの探索範囲を狭めたリカバリエンコーディングモード１を適用し、これによってもオーバーランから回復できない場合、次のフレームに対してさらに処理負荷の軽いモード２を適用することにより、オーバーラン発生から３フレーム期間以内でオーバーランを回復し得るようにしたが、この回復期間は３フレーム期間に限らない。また、モード１を複数回連続して適用したり、あるいはオーバーラン発生直後からモード２を適用するなど、様々なパターンを用いてオーバーラン発生以降の映像符号化処理負荷を低減することができる。
【００７０】
また上述の実施の形態においては、動きベクトルの探索範囲を狭めたモード１と、フレーム間予測のための参照フレーム再構築処理を省いたモード２の２種類のリカバリエンコーディングを用いるようにしたが、本発明はこれに限らず、この他種々の処理負荷を低減した符号化処理を組み合わせて用いても良い。
【００７１】
さらに上述の実施の形態においては、映像及び音声に対する符号化及び復号の両機能を有する信号処理装置に本発明を適用した場合について述べたが、本発明はこれに限らず、符号化機能のみ、あるいは復号化機能のみを有する信号符号化装置に適用してもよい。
【産業上の利用可能性】
【００７２】
本発明の映像符号化装置、映像符号化制御方法及び映像符号化制御プログラムは、例えばデジタル化されたコンテンツあるいはアナログ映像信号をデジタル化した後に圧縮符号化してインターネットを介した動画のリアルタイム配信または受信、家庭内あるいは限定されたネットワーク環境でのリアルタイム配信そして受信、タイムシフティング（ＰＶＲ：Personal Video Recording）などの録画再生装置等の用途に適用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明による信号処理装置の全体構成を示すブロック図である。
【図２】信号処理装置のシステムダイアグラムを示すブロック図である。
【図３】本発明によるオーバーランリカバリの説明に供するタイミングチャートである。
【図４】ノーマルエンコーディングの処理ダイヤグラムを示すブロック図である。
【図５】リカバリエンコーディングモード１の処理ダイヤグラムを示すブロック図である。
【図６】リカバリエンコーディングモード２の処理ダイヤグラムを示すブロック図である。
【図７】本発明によるオーバーランリカバリ処理手順を示すフローチャートである。
【図８】オーバーランによるフレームスキップの説明に供するタイミングチャートである。
【符号の説明】
【００７４】
１……信号処理装置、２……ＣＰＵ、３……ローカルメモリ、４……信号入出力部、５……ネットワークインターフェース、１１Ａ……ビデオ符号化スレッド、１１Ｂ……オーディオ符号化スレッド、１２Ａ……ビデオ復号スレッド、１２Ｂ……オーディオ復号スレッド。
【図１】
2005080123.tif 000003
【図２】
2005080123.tif 000004
【図３】
2005080123.tif 000005
【図４】
2005080123.tif 000006
【図５】
2005080123.tif 000007
【図６】
2005080123.tif 000008
【図７】
2005080123.tif 000009
【図８】
2005080123.tif 000010