(57)【要約】【課題】本発明は、従来に比して画質の劣化を防止できるようにする。【解決手段】本発明は、画像復号化装置からエラー通知データＤ４を受けた場合にのみイントラリフレッシュを実行させると同時に符号化フレームレートを引き下げさせるようにしたことにより、固定ビットレート中においてフレームに対する割り当て可能な符号量を当該符号化フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の劣化を防止するのみならず、当該復号化側で実際に復元エラーが発生しなかった場合におけるフレームレートを一定にする分だけフレームレートの変動率を抑えて動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができる。【選択図】        図８
2004193850.tif 000002
【特許請求の範囲】
【請求項１】
動画像を形成する複数のフレームのうち、最初の上記フレームに対してフレーム内符号化を実行させると共に、当該最初の上記フレーム以降の各上記フレームに対してフレーム間符号化を順次実行させる第１ステップと、
上記フレーム内符号化又は上記フレーム間符号化された上記フレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けたとき、当該受けた時点の次に符号化対象の上記フレームである次対象フレームに対して上記フレーム内符号化を実行させる第２のステップと、
上記次対象フレーム以降の各上記フレームに対して上記フレーム間符号化を順次実行させ直すと共に、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを所定の引下率で引き下げさせる第３のステップと
を具えることを特徴とする符号化制御方法。
【請求項２】
上記第３のステップでは、
上記次対象フレーム以降の各上記フレームが順次上記フレーム間符号化される毎に、当該符号化直前における仮想バッファの占有量を算出する占有量算出ステップと、
上記占有量算出ステップで算出された上記占有量が所定の閾値を越えたとき、上記所定の引下率で引き下げさせた上記符号化フレームレートを元の状態にまで引き戻させる引戻ステップと
を具えることを特徴とする請求項１に記載の符号化制御方法。
【請求項３】
上記第３のステップでは、
上記符号化フレームレートの引下率を、上記次対象フレームが上記フレーム内符号化された時点における仮想バッファの占有量に応じて決定する
ことを特徴とする請求項１に記載の符号化制御方法。
【請求項４】
上記第３のステップでは、
上記次対象フレームが上記フレーム内符号化された時点における仮想バッファの占有量に応じて、上記符号化フレームレートの引下率を段階的に表す所定のテーブルから選択する
ことを特徴とする請求項３に記載の符号化制御方法。
【請求項５】
動画像を形成する複数のフレームのうち、最初の上記フレームに対してフレーム内符号化を実行させると共に、当該最初の上記フレーム以降の各上記フレームに対してフレーム間符号化を順次実行させる第１ステップと、
上記フレーム内符号化又は上記フレーム間符号化された上記フレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けたとき、当該受けた時点の次に符号化対象の上記フレームである次対象フレームに対して上記フレーム内符号化を実行させる第２のステップと、
上記次対象フレーム以降の各上記フレームに対して上記フレーム間符号化を順次実行させ直すと共に、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを所定の引下率で引き下げさせる第３のステップと
を具えることを特徴とする符号化制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は符号化制御方法及び符号化制御プログラムに関し、例えば圧縮符号化された動画像データをネットワークを介して受信しながら再生する、いわゆるストリーミングを実行する場合に適用して好適なものである。
【０００２】
【従来の技術】
従来、画像符号化装置は、動画像を形成する複数のフレームごとに圧縮符号化する場合、例えば、符号化対象のフレーム全体を用いた符号化（以下、これをフレーム内符号化と呼ぶ）、又は符号化対象のフレームと、そのフレームよりも１フレーム前に符号化対象であった前フレームに相当する参照画像との予測誤差だけを用いた符号化（以下、これをフレーム間符号化と呼ぶ）のいずれかを実行する。
【０００３】
この場合、画像符号化装置は、図９に示すように、複数のフレームのうち最初のフレームＦｒ１に対してフレーム内符号化を実行して符号化データＳ１を生成し、また２番目以降のフレームＦｒ２、Ｆｒ３、……については、フレーム全体を用いずに予測誤差だけを用いて符号化する分だけ発生符号量の少ないフレーム間符号化を実行して符号化データＳ２、Ｓ３……を順次生成することにより、動画像を形成する動画像データに比して大幅に符号量を低減する。
【０００４】
一方、画像復号化装置は、画像符号化装置から受信した符号化データＳ１、Ｓ２、Ｓ３……を復号化する場合、当該符号化データＳ１に対してフレーム内復号化を実行して最初のフレームＦｒ１を復元し、そのフレームＦｒ１と符号化データＳ２とを用いてフレーム間復号化を実行して２番目のフレームＦｒ２を復元し、以下同様に３番目以降のフレームＦｒ２、Ｆｒ３、……についても順次復元する。
【０００５】
従って画像復号化装置では、例えば符号化データＳ２が送信中に欠落等して受信できなかった場合、２番目のフレームＦｒ２に復元エラーが発生するのみならず、３番目以降のフレームＦｒ３、Ｆｒ４、……についても順次復元エラーが伝搬する。
【０００６】
そこで画像符号化装置は、２番目以降のフレームＦｒ３、Ｆｒ４、……について、復元エラーの伝搬を回避するためのフレーム内符号化（以下、これをイントラリフレッシュと呼ぶ）を予め所定間隔ごとに実行することにより、画像復号化装置において復元エラーが発生した以降の全てのフレームに対する復元エラーの伝搬を未然に防止し得るようになされている。
【０００７】
この場合、画像符号化装置では、所定間隔ごとにイントラリフレッシュ（フレーム内符号化）を実行する分だけ発生符号量が多くなるので、帯域制限のあるネットワークを介して符号化データを画像復号化装置に送信するには、当該イントラリフレッシュを実行したフレーム以降の数フレームに発生させるべき符号量を抑制しなければならず、その結果、当該抑制したフレーム自体の画質の劣化が生じる問題がある。
【０００８】
かかる問題を解決するための１つの従来手法として、一定間隔ごとにイントラリフレッシュを実行するように予め設定しておき、当該実行時の発生符号量等に基づいて次にイントラリフレッシュを実行するまでの間のフレームレートを、所定数のフレームを間引いて入力時のフレームレートよりも小さくすることにより、固定ビットレート中においてフレームに対する割り当て可能な符号量を、当該フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の向上を図るようになされた画像符号化装置が提案されている（例えば特許文献１）。
【０００９】
【特許文献１】
特開平１０−２２９５６１号公報
【００１０】
【発明が解決しようとする課題】
ところが、かかる手法を適用した画像符号化装置においては、画像復号化装置における実際の復元エラーの発生成否に係わらずイントラリフレッシュを一定間隔で実行した際の発生符号量等に基づいてフレームレートを可変していることにより、当該実行時の発生符号量に応じて間引くフレーム数が可変する。
【００１１】
従って画像符号化装置は、例えばイントラリフレッシュを実行するたびに当該実行時のフレームにおける絵柄の複雑さが異なって発生符号量に大幅な差異が生じた場合等には、イントラリフレッシュを実行する一定間隔ごとに間引くフレーム数の変動幅が大きくなることにより、動きのむらやなめらかさ等の動画像全体の画質としては劣化し、画質の劣化を防止するには未だ不十分であった。
【００１２】
本発明は以上の点を考慮してなされたもので、従来に比して画質の劣化を防止し得る符号化制御方法及び符号化制御プログラムを提案しようとするものである。
【００１３】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、動画像を形成する複数のフレームのうち、最初のフレームに対してフレーム内符号化を実行させると共に、当該最初のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ、フレーム内符号化又はフレーム間符号化が実行されたフレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けると、当該受けた時点の次に符号化対象となる次対象のフレームに対してフレーム内符号化を実行させた後、当該次対象のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ直すと共に、単位時間当たりの符号化フレーム数を表す符号化フレームレートを所定の状態まで引き下げさせるようにする。
【００１４】
復号化側からエラー通知データを受けた際に次対象のフレームに対してフレーム内符号化を実行させると共に、符号化フレームレートを所定の状態まで引き下げさせることにより、フレームに対する割り当て可能な符号量を、当該フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の劣化を防止することができる。
【００１５】
これに加えて、最初のフレーム以降の各フレームのうち、復号化側からエラー通知データを受けた場合にのみフレーム内符号化を実行させると共に符号化フレームレートを引き下げさせることにより、復号化側における実際の復元エラーの発生成否に係わらずフレーム内符号化を一定間隔で実行した際にフレームレートを可変していた従来に比して、当該復号化側で実際に復元エラーが発生しなかった場合におけるフレームレートを一定にする分だけ、動きのむらやなめらかさ等の動画像全体の画質としての劣化をも防止することができる。
【００１６】
【発明の実施の形態】
以下、図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）動画像送信システムの構成
図１において、１は全体として動画像送信システムを示し、送信元である符号化側のカメラ装置２、画像符号化装置３及び符号化側送受信装置４と、送信先である復号化側の復号化側送受信装置５、画像復号化装置６及び表示装置７とによって構成されており、当該符号化側送受信装置４と復号化側送受信装置５との間を、例えばインターネット等のネットワーク８を介して各種情報を送受信するようになされている。
【００１８】
カメラ装置２は、被写体を撮像することにより動画像データＤ１を生成し、これを画像符号化装置３に送出する。
【００１９】
画像符号化装置３は、動画像データＤ１をフレーム単位で圧縮符号化するようになされており、最初のフレーム（以下、これを初フレームと呼ぶ）に相当するフレームデータについては、当該フレーム全体を用いた符号化（以下、これをフレーム内符号化と呼ぶ）を実行することにより符号化データ（以下、これをフレーム内符号化データと呼ぶ）Ｄ２を生成する。
【００２０】
また画像符号化装置３は、初フレーム以降のフレームに相当する各フレームデータについては、現在符号化対象のフレーム（以下、これを現フレームと呼ぶ）と、その現フレームよりも１フレーム前に符号化対象であったフレーム（以下、これを前フレームと呼ぶ）に相当する参照画像との予測誤差だけを用いた符号化処理（以下、これをフレーム間符号化と呼ぶ）を実行することにより符号化データ（以下、これをフレーム間符号化データと呼ぶ）Ｄ３を順次生成する。
【００２１】
そして画像符号化装置３は、フレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３とを所定のタイミングで順次符号化側送受信装置４、ネットワーク８及び復号化側送受信装置５を介して画像復号化装置６に送信する。
【００２２】
画像復号化装置６は、復号化側送受信装置５から所定のタイミングで順次与えられるフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３を内部バッファ６Ａに順次所定の時間だけ蓄積する。
【００２３】
そして画像復号化装置６は、内部バッファ６Ａからフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３を復号化順に読み出す毎に、画像符号化装置３と同一の圧縮符号化（フレーム内符号化又はフレーム間符号化）に従って復号化処理を実行することにより動画像データＤ１をフレーム単位で順次復元し、当該復元したフレーム順に表示装置７に送出する。
【００２４】
このようにして動画像送信システム１は、カメラ装置２から得られた動画像データＤ１をネットワーク８を介してダウンロードしながら再生するストリーミングを実行し、当該動画像データＤ１に基づく被写体の映像を順次表示装置７を介して提供するようになされている。
【００２５】
ところで、画像復号化装置６のエラー検出部６Ｂは、内部バッファ６Ａに蓄積されるフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３に基づいて、誤り訂正アルゴリズムにより訂正できない場合やネットワークプロトコルにより破棄されて再送されなかった場合等の復帰不可能な符号化データを送信エラーとして検出するようになされている。
【００２６】
具体的には、エラー検出部６Ｂは、例えば複数のフレーム間符号化データＤ３のうち任意のフレーム間符号化データＤ３における送信エラーを検出すると、当該送信エラーを画像符号化装置３に通知するエラー通知データＤ４を生成し、これを復号化側送受信装置５、ネットワーク８及び符号化側送受信装置４を順次介して画像符号化装置３に送出する。
【００２７】
画像符号化装置３は、エラー通知データＤ４を受けると、図２に示すように、当該エラー通知データＤ４を受けた時点の現フレームＣＦの次に符号化対象であるフレーム（以下、これをリフレッシュ対象フレームと呼ぶ）ＲＦのみについて、図９で上述したような復元エラーの伝搬を回避するためのフレーム内符号化（以下、これをイントラリフレッシュと呼ぶ）を実行することにより符号化データ（以下、これをリフレッシュ符号化データと呼ぶ）Ｄ５を生成し、これを画像復号化装置６に送信する。
【００２８】
因みに画像符号化装置３は、リフレッシュ対象フレームＲＦ以降のフレーム（以下、これをリフレッシュ後フレームと呼ぶ）Ｆｒ１０、Ｆｒ１１……についてはフレーム間符号化を実行する。
【００２９】
画像復号化装置６は、画像符号化装置３からネットワーク８を介して受信したリフレッシュ符号化データＤ５を用いて復号化処理を実行することにより、送信エラー検出部６Ｂにより送信エラーを検出した任意のフレーム間符号化データＤ３に対応するフレーム以降における全てのフレームについて復元エラーが伝搬してしまうことを防止し得るようになされている。
【００３０】
かかる画像復号化装置６は、復元エラーが発生してしまうような致命的な送信エラーを事前に検出してエラー通知データＤ４を画像符号化装置３に送信することにより、実際の復元エラーの発生を検出する場合に比して一段と早くリフレッシュ符号化データＤ５取得して復元エラーの伝搬を防止し得るようになされている。
【００３１】
このように動画像送信システム１においては、初フレーム以降の各フレームについてはフレーム間符号化を実行し、画像復号化装置６で送信エラーを検出したときのみイントラリフレッシュ（フレーム内符号化）を実行することにより、当該動画像データＤ１に比して大幅に符号量を低減したフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３を順次送受信し得るようになされている。
【００３２】
（２）画像符号化装置の構成
図３に示すように、画像符号化装置３は、符号化処理部１０と符号化制御処理部１１とによって構成される。
【００３３】
符号化処理部１０は、カメラ装置２（図１）から与えられる例えば毎秒３０フレーム（３０［ｆｐｓ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃ）］）でなる動画像データＤ１を画像並替バッファ２１に一旦蓄積し、当該動画像データＤ１をフレーム単位で圧縮符号化順に並び替え、当該並び替えた各フレームをそれぞれフレームデータＤ１０としてスキップスイッチ２２に順次送出する。
【００３４】
スキップスイッチ２２は、スイッチ端子２２ａを開閉させるための開閉制御データＤ２４に従ってスイッチ端子２２ａを開閉するようになされており、当該開放の際には画像並替バッファ２１から与えられるフレームデータＤ１０を破棄し、これに対して閉鎖の際にはフレームデータＤ１０を符号化切替スイッチ２３に送出することにより、動画像データＤ１のフレームレート（３０［ｆｐｓ］  ）を、単位時間当たりに符号化するフレーム数を表すフレームレート（以下、これを符号化フレームレートと呼ぶ）に変更する。
【００３５】
具体的にはスキップスイッチ２２は、例えば１フレーム単位で入力端子２２ａの開閉を交互に繰り返すことにより、図４に示すように、動画像を形成する複数フレームを１フレームおきに間引きし、その結果、毎秒３０フレームのフレームレートを毎秒１５フレームの符号化フレームレートに変更する。
【００３６】
符号化切替スイッチ２３（図３）は、接続切片２３ａを第２端子２３ｃに接続しており、スキップスイッチ２２から順次与えられる各フレームデータＤ１０をフレーム間符号化部２５に順次送出する。
【００３７】
また符号化切替スイッチ２３は、１フレーム分だけ接続切片２３ａを第２端子２３ｃから第１端子２３ｂに切り替えるための切替制御データＤ２３が与えられると、第２端子２３ｃに接続していた接続切片２３ａを第１端子２３ｂに切り替え、当該切替時においてスキップスイッチ２２から与えられるフレームデータＤ１０をフレーム内符号化部２４に送出する。
【００３８】
そして符号化切替スイッチ２３は、当該切替時にスイッチ２２から与えられるフレームデータＤ１０をフレーム内符号化部２４に送出後、接続切片２３ａを再び第２端子２３ｃに接続しなおし、スキップスイッチ２２から順次与えられる各フレームデータＤ１０をフレーム間符号化部２５に順次送出するようになされている。
【００３９】
フレーム内符号化部２４は、第１端子２３ｂから与えられるフレームデータＤ１０に対して、目標符号量算出部３１から与えられる目標符号量データＤ２２に基づいてフレーム内符号化を実行することによりフレーム内符号化データＤ２を生成し、これをバッファメモリ２６に一旦蓄積する。
【００４０】
フレーム間符号化部２５は、第２端子２３ｃから与えられるフレームデータＤ１０に対して、目標符号量算出部３１から与えられる目標符号量データＤ２２に基づいてフレーム間符号化を実行することによりフレーム間符号化データＤ３を生成し、これをバッファメモリ２６に一旦蓄積する。
【００４１】
このようにして符号化処理部１０は、バッファメモリ２６に蓄積されるフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３を所定のタイミングで符号化側送受信装置４（図１）に送出するようになされている。
【００４２】
因みに、符号化処理部１０においては、符号化対象である現フレームに相当するフレームデータＤ１０をフレーム間符号化部２５（フレーム内符号化部２４）に入力したとき、前フレームに相当するフレームデータＤ１０についてはフレーム間符号化を実行し終えてフレーム間符号化データＤ３（フレーム内符号化データＤ２）としてバッファメモリ２６に蓄積すると共に、当該現フレームの次に符号化対象となるフレームに相当するフレームデータＤ１０を符号化切替スイッチ２３に入力するようになされている。
【００４３】
一方、符号化制御処理部１１のＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）占有量算出部３０は、画像復号化装置６における実際の内部バッファ６Ａ（図１）に相当する仮想的なバッファ（以下、これをＶＢＶバッファと呼ぶ）を想定し、当該ＶＢＶバッファにおける占有量を算出するようになされている。
【００４４】
具体的には、ＶＢＶ占有量算出部３０は、前フレームに相当するフレーム間符号化データＤ２（フレーム内符号化データＤ３）をバッファメモリ２６から読み出し、当該読み出したフレーム間符号化データＤ２の発生符号量を認識する。
【００４５】
そしてＶＢＶ占有量算出部３０は、認識した発生符号量と、所定の固定ビットレートとに基づいて、現フレームに相当するフレームデータＤ１０がフレーム間符号化部２５（フレーム内符号化部２４）によって符号化される直前のＶＢＶバッファにおける占有量を算出し、当該算出結果を占有符号量データＤ２１として目標符号量算出部３１及びフレームレート決定部３２に送出する。
【００４６】
目標符号量算出部３１は、所定の目標符号量算出アルゴリズムに従い、ＶＢＶ占有量算出部３０から与えられる占有符号量データＤ２１に基づいて目標符号量を算出し、当該算出した目標符号量を表す目標符号量データＤ２２を生成した後にフレーム内符号化部２４及びフレーム間符号化部２５に送出する。
【００４７】
フレームレート制御部３２は、例えば図５に示すように、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを引き下げる際の引下率を段階的に示した符号化フレームレートテーブルＴＢ予め内部メモリ（図示せず）に記憶しており、当該符号化フレームレートテーブルＴＢのうち、画像並替バッファ２１に蓄積される動画像データＤ１のフレームレート（３０［ｆｐｓ］  ）及びフレームサイズに基づいて符号化フレームレートの初期値を例えば１５［ｆｐｓ］  として設定する。
【００４８】
そしてフレームレート制御部３２は、初期設定した符号化フレームレート（１５［ｆｐｓ］）と、動画像データＤ１のフレームレート（３０［ｆｐｓ］  ）とに基づいて例えば図４に示したようなフレームスキップ数及びスキップ間隔を決定し、当該決定したフレームスキップ数及びスキップ間隔に応じて切替制御データＤ２４を生成し、これをスキップスイッチ２２に送出する。
【００４９】
符号化切替制御部３３は、初フレームに相当するフレームデータＤ１０が符号化切替スイッチ２３に入力された際に切替制御データＤ２３を生成し、これを符号化切替スイッチ２３に送出する。
【００５０】
このように符号化制御処理部１１は、エラー通知データＤ４（図１）を受けるまでは、符号化処理部１０に対して、初期設定した符号化フレームレート（１５［ｆｐｓ］  ）の基で、初フレーム以外のフレームに相当する各フレームデータＤ１０についてフレーム間符号化を実行させるようになされている。
【００５１】
これに対して符号化制御処理部１１は、エラー通知データＤ４（図１）を受けると、符号化切替制御部３３により切替制御データＤ２３を生成し、これを符号化切替スイッチ２３に送出する。
【００５２】
この場合、符号化処理部１０は、符号化切替スイッチ２３に入力されたフレーム（リフレッシュ対象フレームＲＦ（図２））に相当するフレームデータＤ１０だけをフレーム内符号化部２４に送出し、当該フレーム内符号化部２４を介してイントラリフレッシュを実行してリフレッシュ符号化データＤ５を生成する。
【００５３】
また符号化制御処理部１１のフレームレート制御部３２は、エラー通知データＤ４を受けたとき、符号化フレームレートテーブルＴＢ（図５）のうち、初期設定した符号化フレームレート（１５［ｆｐｓ］）よりも１段階だけ小さい毎秒１０フレームの符号化フレームレートを選択し、当該選択した符号化フレームレート（１０［ｆｐｓ］）と、動画像データＤ１のフレームレート（３０［ｆｐｓ］  ）とに従って決定したフレームスキップ数及びスキップ間隔に応じて切替変更データＤ２４を生成し、これをスキップスイッチ２２に送出する。
【００５４】
この場合、符号化処理部１０は、リフレッシュ対象フレームＲＦ以降の各リフレッシュ後フレームＦｒ１０、Ｆｒ１１……（図２）について、図６に示すように、スキップスイッチ２２を介して３フレームおきにフレームを残し、その結果、毎秒１５フレームから毎秒１０フレームの符号化フレームレートに引き下げる。
【００５５】
このように符号化制御処理部１１は、エラー通知データＤ４（図１）を受けると、符号化処理部１０に対して、イントラリフレッシュを実行させると同時に符号化フレームレートを一段階引き下げさせることにより、当該引き下げさせた符号化フレームレート（１０［ｆｐｓ］  ）の基で、リフレッシュ対象フレームＲＦ以降のフレームに相当する各フレームデータＤ１０についてフレーム間符号化を実行させるようになされている。
【００５６】
ここで、イントラリフレッシュを実行した場合、本来実行するはずであったフレーム間符号化により発生する符号量（以下、これをフレーム間符号量と呼ぶ）よりも多く符号量が発生するので、当該多く発生した符号量（以下、これを差分符号量と呼ぶ）を、イントラリフレッシュを実行させた以降の数フレームに発生させるべきフレーム間符号量から相殺しなければ、図７中において一点鎖線で示すように、ＶＢＶバッファにおける占有量としてはやがて最小値Ｖｍｉｎを下回って破綻（アンダーフロー）する。
【００５７】
また、イントラリフレッシュを実行させた以降の数フレームに発生させるべきフレーム間符号量から差分符号量を相殺した場合には当該数フレーム自体の画質に劣化が生じる。
【００５８】
しかし符号化制御処理部１１は、イントラリフレッシュの実行と同時に符号化フレームレートへ引き下げていることにより、イントラリフレッシュ前における１フレーム分の符号化時間ＢＴに比して、イントラリフレッシュ後における１フレーム分の符号化時間ＡＴを長く確保している分だけ１フレームあたりに割り当てられる発生符号ビット量を減らすことなくアンダーフローを防止し、その結果、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行し得るようになされている。
【００５９】
これに加えてフレームレート制御部３２は、ＶＢＶ占有量算出部３０から順次与えられる占有符号量データＤ２１に表されるＶＢＶバッファの占有量Ｐ１、Ｐ２、Ｐ３……と、予め設定した所定の閾値Ｖｔｈｒとを比較し、当該閾値Ｖｔｈｒを越えたとき、一段階引き下げた符号化フレームレート（１０［ｆｐｓ］  ）を初期設定時の符号化フレームレート（１５［ｆｐｓ］  ）の状態にまで引き戻させるようになされている。
【００６０】
ここで、フレームレート制御部３２は、所定の閾値Ｖｔｈｒとして、当該ＶＢＶバッファの最大値Ｖｍａｘの２／３を選定するようになされている。
【００６１】
これによりフレームレート制御部３２は、例えば初期設定時の符号化フレームレートに戻した後の各フレームにおける絵柄が複雑であった場合等、当該初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合であってもアンダーフローをほぼ確実に防止し得るようになされている。
【００６２】
（３）符号化制御処理手順
かかる符号化制御処理部１１における符号化制御処理手順を図８に示すフローチャートを用いて説明する。
【００６３】
すなわち符号化制御処理部１１は、例えば入力部（図示せず）を介して例えばストリーミングを実行する所定の入力操作が行われると、ルーチンＲＴの開始ステップから次のステップＳＰ１へ移る。
【００６４】
ステップＳＰ１において符号化制御処理部１１は、画像並替バッファ２１に蓄積された動画像データＤ１に基づいて、符号化フレームレートテーブルＴＢ（図５）から符号化フレームレートの初期値を設定し、当該設定した初期値に応じて生成した切替制御データＤ２４を符号化処理部１０に送出した後、次のステップＳＰ２へ移る。
【００６５】
ステップＳＰ２において符号化制御処理部１１は、符号化処理部１０に対して、初フレームについてフレーム内符号化を実行させ、次のステップＳＰ３へ移る。
【００６６】
ステップＳＰ３において符号化制御処理部１１は、符号化処理部１０に対して、２番目のフレームについてフレーム間符号化を実行させ、次のステップＳＰ４へ移る。
【００６７】
ステップＳＰ４において符号化制御処理部１１は、エラー通知データＤ４を受けたか否かを判断する。ここで否定結果が得られると、このことはステップＳＰ２又はＳＰ３で符号化処理部１０に対して符号化を実行させることにより得られるフレーム内符号化データＤ２又はフレーム間符号化Ｄ３を送信した際に送信エラーが生じていないことを表しており、このとき符号化制御処理部１１は、ステップＳＰ３に戻って引き続き３番目のフレームについてフレーム間符号化を実行させる。
【００６８】
このように符号化制御処理部１１は、ステップＳＰ４で否定結果が得られるたびにステップＳＰ３の処理を繰り返すことにより、ステップＳＰ１で初期設定した符号化フレームレートの基で、初フレーム以降のフレームについて順次フレーム間符号化を実行させるようになされている。
【００６９】
これに対してステップＳＰ４で肯定結果が得られると、このことはステップＳＰ２又はＳＰ３で符号化処理部１０に対して符号化を実行させることにより得られるフレーム内符号化データＤ２又はフレーム間符号化Ｄ３を送信した際に送信エラーが生じたことを表しており、このとき符号化制御処理部１１は、次のステップＳＰ５へ移る。
【００７０】
ステップＳＰ５において符号化制御処理部１１は、符号化フレームレートテーブルＴＢ（図５）に基づいて、ステップＳＰ１で初期設定した符号化フレームレートよりも１段階だけ引き下げた符号化フレームレートを選択し、当該選択した符号化フレームレートに応じて生成した切替制御データＤ２４を符号化処理部１０に送出した後、次のステップＳＰ６へ移る。
【００７１】
ステップＳＰ６において符号化制御処理部１１は、符号化処理部１０に対して、ステップＳＰ４で肯定結果が得られた時点の次に符号化対象であるリフレッシュ対象フレームＲＦ（図２）についてフレーム内符号化を実行させ、次のステップＳＰ７へ移る。
【００７２】
ステップＳＰ７において符号化制御処理部１１は、符号化処理部１０に対して、リフレッシュ対象フレームＲＦ以降のリフレッシュ後フレームのうち、１番目のリフレッシュ後フレームＦｒ１０（図２）についてフレーム間符号化を実行させ、次のステップＳＰ８へ移る。
【００７３】
ステップＳＰ８において符号化制御処理部１１は、ステップＳＰ７で１番目のリフレッシュ後フレームＦｒ１０に対してフレーム間符号化を実行させたことにより得られるフレーム間符号化データＤ３に基づいて、２番目のリフレッシュ後フレームＦｒ１１（図２）に相当するフレームデータＤ１０がフレーム間符号化される直前のＶＢＶバッファにおける占有量Ｐ１を算出し、次のステップＳＰ９に移る。
【００７４】
ステップＳＰ９において符号化制御処理部１１は、ステップＳＰ８で算出した占有量Ｐ１がが最大値Ｖｍａｘの２／３を越えたか否かを判断する。
【００７５】
ここで否定結果が得られると、このことは初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合にはアンダーフローを発生させてしまう可能性があることを表しており、このとき符号化制御処理部１１は、ステップＳＰ７に戻って引き続きフレーム間符号化を実行させる。
【００７６】
このように符号化制御処理部１１は、ステップＳＰ９で否定結果が得られるたびにステップＳＰ７及びＳＰ８の処理を繰り返すことにより、ステップＳＰ５で引き下げた符号化フレームレートの基で、残りのリフレッシュ後フレームＦｒ１１、Ｆｒ１２……（図２）に相当する各フレームデータＤ１０ついてフレーム間符号化を順次実行させると共に、当該実行直前のＶＢＶバッファにおける占有量Ｐ２、Ｐ３……を算出するようになされている。
【００７７】
これに対してステップＳＰ９で肯定結果が得られると、このことは初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合であってもアンダーフローをほぼ確実に防止し得ることを表しており、このとき符号化制御処理部１１は、ステップＳＰ１０に移る。
【００７８】
ステップＳＰ１０において符号化制御処理部１１は、ステップＳＰ５で引き下げた符号化フレームレートを、ステップＳＰ１で初期設定した符号化フレームレートに戻した後にステップＳＰ３に戻って、当該初期設定の符号化フレームレートの基で、引き続きフレーム間符号化を実行させる。
【００７９】
このように符号化制御処理部１１は、符号化処理部１０に対して、エラー通知データＤ４を受けるまではステップＳＰ２及びＳＰ３のループ（以下、これを通常処理ループと呼ぶ）に従って初期設定の符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させ、当該エラー通知データＤ４を受けると、イントラリフレッシュを実行させると同時に符号化フレームレートを一段階引き下げさせる。
【００８０】
その後、符号化制御処理部１１は、ステップＳＰ７及びＳＰ８のループ（以下、これを引下処理ループと呼ぶ）に従って、一段階引き下げさせた符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させると共に、当該実行時直前におけるＶＢＶバッファ（図７）の占有量Ｐ１、Ｐ２……、又はＰｎをフレーム単位で監視し、最大値Ｖｍａｘの２／３である閾値Ｖｔｈｒを越えると再び通常処理ループを実行するようになされている。
【００８１】
（４）動作及び効果
以上の構成において、符号化制御装置としての符号化制御処理部１１は、符号化処理部１０に対して、動画像における初フレーム以降のフレームに相当する各フレームデータＤ１０についてフレーム間符号化を実行させることにより、動画像データＤ１に比して大幅に符号量を低減する。
【００８２】
この状態において、符号化制御処理部１１は、画像復号化装置６からエラー通知データＤ４を受けると、符号化処理部１０に対して、当該受けた時点の次に符号化対象であるリフレッシュ対象フレームＲＦに相当するフレームデータＤ１０についてフレーム内符号化を実行させる。
【００８３】
その後、符号化制御処理部１１は、符号化処理部１０に対して、リフレッシュ対象フレームＲＦ以降のリフレッシュ後フレームＦｒ１０、Ｆｒ１１……に相当する各フレームデータＤ１０について順次フレーム間符号化を実行させ直すと共に、符号化フレームレートテーブルＴＢ（図５）に従ってリフレッシュ対象フレームＲＦ以降の符号化フレームレートを、初期設定した符号化フレームレートから１段階だけ引き下げさせるようにした。
【００８４】
従って符号化制御処理部１１は、イントラリフレッシュ前における１フレーム分の符号化時間ＢＴ（図７）に比して、イントラリフレッシュ後における１フレーム分の符号化時間ＡＴを長く確保する分だけイントラリフレッシュを実行させた以降の数フレームに発生させるべき符号量を抑制することなくアンダーフローを防止することができ、その結果、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行させることができる。
【００８５】
これに加えて、画像復号化装置６における実際の復元エラーの発生成否に係わらずイントラリフレッシュを一定間隔で実行した際の発生符号量等に基づいてフレームレートを可変する従来では、例えば動画像データＤ１における各フレームの絵柄の複雑さが異なっていた場合には一定間隔ごとにフレームレートの変動が大きくなっていたのに対し、符号化制御処理部１１は、画像復号化装置６からエラー通知データＤ４を受けたときにだけイントラリフレッシュを実行させると同時に符号化フレームレートを引き下げさせているので、実際に復元エラーが発生しなかった場合における符号化フレームレートを一定にする分、フレームレートの変動率を格段に抑えることができ、従って動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができる。
【００８６】
また、符号化制御処理部１１は、リフレッシュ対象フレームＲＦ以降のフレームＦｒ１０、Ｆｒ１１……（図２）に相当する各フレームデータＤ１０ごとに当該フレームデータＤ１０を符号化する直前におけるＶＢＶバッファの符号量Ｐ１、Ｐ２、Ｐ３……を算出し、当該算出結果がＶＢＶバッファにおける所定の閾値Ｖｔｈｒを越えたとき、初期設定時の符号化フレームレートの状態にまで引き戻させるようにした。
【００８７】
この場合、符号化制御処理部１１は、１フレームごとに符号化直前におけるＶＢＶバッファの符号量Ｐ１、Ｐ２、Ｐ３……を順次算出するので、フレーム自体の画質の劣化（アンダーフロー）を生じさせることなく初期設定時の符号化フレームレートの基でフレーム間符号化を実行し得る時期をいち早く検出することができ、当該初期設定時の符号化フレームレートにいち早く戻すことができる。
【００８８】
その結果、符号化制御処理部１１は、イントラリフレッシュ前における１フレーム分の符号化時間ＢＴ（図７）に比して長い符号化時間ＡＴを極力短縮することができ、かくして動画像データＤ１を極力速く送信させることができる。
【００８９】
以上の構成によれば、エラー通知データＤ４を受けた場合にのみイントラリフレッシュを実行させると同時に符号化フレームレートを引き下げさせるようにしたことにより、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行させることができると共に、実際に復元エラーが発生しなかった場合におけるフレームレートの変動率を従来に比して格段に抑えて動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができる。
【００９０】
（５）他の実施の形態
上述の実施の形態においては、エラー通知データＤ４を受けたとき、符号化フレームレートテーブルＴＢ（図５）に基づいて、初期設定した符号化フレームレートよりも１段階だけ小さい符号化フレームレートを選択する場合について述べたが、本発明はこれに限らず、当該エラー通知データＤ４を受けた際のリフレッシュ対象フレームＲＦ（図２）がイントラリフレッシュされた時点におけるＶＢＶバッファの占有量ＰＸ（図７）に応じて、符号化フレームレートの引下率を選択するようにしても良い。
【００９１】
具体的には、符号化制御処理部１１は、ステップＳＰ６（図８）において符号化処理部１０に対してリフレッシュ対象フレームＲＦ（図２）についてフレーム内符号化を実行させた後、ＶＢＶ占有量算出部３０により、当該実行により得られるリフレッシュ符号化データＤ５に基づいてＶＢＶバッファにおける占有量ＰＸを算出し、当該算出した占有量ＰＸがＶＢＶバッファの最小値Ｖｍｉｎと大きく離れていた場合には、フレームレート制御部３２により、初期設定した符号化フレームレートよりも例えば１段階だけ小さい符号化フレームレートを選択した後に、次のステップＳＰ７に移ってリフレッシュ後フレームＦｒ１０（図２）についてフレーム間符号化を実行させる。
【００９２】
これに対して符号化制御処理部１１は、算出した占有量ＰＸがＶＢＶバッファの最小値Ｖｍｉｎに近い場合には、フレームレート制御部３２により、当該最小値Ｖｍｉｎに近いほど２段階、３段階……のように複数段階小さい符号化フレームレートを選択した後に、次のステップＳＰ７に移ってリフレッシュ後フレームＦｒ１０（図２）についてフレーム間符号化を実行させる。
【００９３】
このように、エラー通知データＤ４を受けた際のリフレッシュ対象フレームＲＦ（図２）がイントラリフレッシュされた時点におけるＶＢＶバッファの占有量ＰＸ（図７）に応じて符号化フレームレートの引下率を選択するようにすれば、差分符号量（イントラリフレッシュを実行した際の符号量と、その実行時に本来実行するはずであったフレーム間符号化により発生する符号量との差分）を相殺するための符号化時間ＡＴ（図７）を無駄なく的確に確保することができる。
【００９４】
また上述の実施の形態においては、エラー通知データＤ４を受けたとき、初期設定した符号化フレームレートを１段階だけ引き下げる場合について述べたが、本発明はこれに限らず、当該１段階だけ引き下げた符号化フレームレートの基でフレーム間符号化を実行させている際にエラー通知データＤ４を受けたとき、さらに符号化フレームレートを下げるようにしても良い。
【００９５】
具体的には符号化制御処理部１１は、例えば、ステップＳＰ７及びＳＰ８のループ（以下、これを引下処理ループと呼ぶ）を実行している際に、再度エラー通知データＤ４を受けたとき、ステップＳＰ５で１段階引き下げさせた符号化フレームレートをさらに１段階引き下げさせることにより、初期設定時における符号化フレームレートよりも２段階引き下げさせた符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させ、当該実行時直前におけるＶＢＶバッファ（図７）の占有量Ｐ１、Ｐ２……、又はＰｎをフレーム単位で監視し、最大値Ｖｍａｘの２／３である閾値Ｖｔｈｒを越えると再び通常処理ループを実行する。このようにすれば、エラー通知データＤ４を連続的に受けた場合であっても、画質の劣化を防止することができる。
【００９６】
さらに上述の実施の形態においては、予め内部メモリに記憶された符号化フレームレートテーブルＴＢ（図５）に従って符号化フレームレートを設定する場合について述べたが、本発明はこれに限らず、リフレッシュ符号化データＤ５の発生符号量を用いた所定の演算に従って符号化フレームレートを設定するようにしても良い。
【００９７】
さらに上述の実施の形態においては、エラー検出部６Ｂ（図１）により内部バッファ６Ａに蓄積されるフレーム内符号化データＤ２及び複数のフレーム間符号化データＤ３の送信エラーを検出する場合について述べたが、本発明はこれに加えて、画像復号化装置６の復号化処理の際に実際に発生した復元エラーを検出するようにしても良く、要は、少なくとも復号化処理の際に実際に発生した復元エラーを検出すれば良い。
【００９８】
さらに上述の実施の形態においては、図３について上述したハードウェア構成でなる符号化制御処理部１１が図８について上述した符号化制御処理手順に沿って符号化制御処理を実行する場合について述べたが、本発明はこれに限らず、かかるハードウェア構成に代えて、当該符号化制御処理手順に沿って符号化制御処理を実行させるための符号化制御プログラムに従って符号化制御処理を実行するようにしても良い。
【００９９】
この場合、符号化制御処理部１１は、内部ＲＯＭ（図示せず）等に符号化制御プログラムを格納し、当該符号化制御プログラムを内部ＲＡＭ（図示せず）等に展開することにより符号化制御処理手順を実行するようにしても良く、当該符号化制御プログラムが格納されたプログラム格納媒体をインストールすることにより符号化制御処理手順を実行するようにしても良い。
【０１００】
このように上述した一連の符号化制御処理を実行するための符号化制御プログラムを符号化制御処理部１１にインストールして実行可能な状態にするためのプログラム格納媒体としては、例えばフロッピディスク、ＣＤ−ＲＯＭ（ＣｏｍｐａｃｔＤｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のパッケージメディアのみならず、符号化制御プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスク等で実現しても良い。またこれらプログラム格納媒体に符号化制御プログラムを格納する手段として、ローカルエリアネットワークやインターネット、ディジタル衛星放送等の有線又は無線通信媒体を利用してもよく、ルータやモデム等の各種通信インターフェースを介して格納するようにしても良い。
【０１０１】
【発明の効果】
上述のように本発明によれば、動画像を形成する複数のフレームのうち、最初のフレームに対してフレーム内符号化を実行させると共に、当該最初のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ、フレーム内符号化又はフレーム間符号化が実行されたフレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けると、当該受けた時点の次に符号化対象となる次対象のフレームに対してフレーム内符号化を実行させた後、当該次対象のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ直すと共に、単位時間当たりの符号化フレーム数を表す符号化フレームレートを所定の状態まで引き下げさせるようにする。
【０１０２】
この場合、復号化側からエラー通知データを受けた場合にのみフレーム内符号化を実行させると共に符号化フレームレートを引き下げさせるようにするので、固定ビットレート中においてフレームに対する割り当て可能な符号量を当該符号化フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の劣化を防止するのみならず、当該復号化側で実際に復元エラーが発生しなかった場合におけるフレームレートを一定にする分だけフレームレートの変動率を抑えて動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができ、かくして、従来に比して画質の劣化を防止することができる。
【図面の簡単な説明】
【図１】動画像送信システムの構成を示すブロック図である。
【図２】エラー通知データとイントラリフレッシュとの時期的関係の説明に供する略線図である。
【図３】画像符号化装置の構成を示すブロック図である。
【図４】フレームスキップ例（１）を示す略線図である。
【図５】符号化フレームレートテーブル例を示す略線図である。
【図６】フレームスキップ例（２）を示す略線図である。
【図７】ＶＢＶバッファにおける符号量の推移例を示す略線図である。
【図８】符号化制御処理手順を示すフローチャートである。
【図９】符号化例の説明に供する略線図である。
【符号の説明】
１……動画像送信システム、３……画像符号化装置、６……画像復号化装置、
８……ネットワーク、１０……符号化処理部、１１……符号化制御処理部、３０……ＶＢＶ占有量算出部、３２……フレームレート制御部、３３……符号化切替制御部。
【図１】
2004193850.tif 000003
【図２】
2004193850.tif 000004
【図３】
2004193850.tif 000005
【図４】
2004193850.tif 000006
【図５】
2004193850.tif 000007
【図６】
2004193850.tif 000008
【図７】
2004193850.tif 000009
【図８】
2004193850.tif 000010
【図９】
2004193850.tif 000011