JP4069444B2 - 符号化制御方法及び符号化制御プログラム - Google Patents
符号化制御方法及び符号化制御プログラム Download PDFInfo
- Publication number
- JP4069444B2 JP4069444B2 JP2002357949A JP2002357949A JP4069444B2 JP 4069444 B2 JP4069444 B2 JP 4069444B2 JP 2002357949 A JP2002357949 A JP 2002357949A JP 2002357949 A JP2002357949 A JP 2002357949A JP 4069444 B2 JP4069444 B2 JP 4069444B2
- Authority
- JP
- Japan
- Prior art keywords
- frame
- encoding
- rate
- intra
- inter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は符号化制御方法及び符号化制御プログラムに関し、例えば圧縮符号化された動画像データをネットワークを介して受信しながら再生する、いわゆるストリーミングを実行する場合に適用して好適なものである。
【0002】
【従来の技術】
従来、画像符号化装置は、動画像を形成する複数のフレームごとに圧縮符号化する場合、例えば、符号化対象のフレーム全体を用いた符号化(以下、これをフレーム内符号化と呼ぶ)、又は符号化対象のフレームと、そのフレームよりも1フレーム前に符号化対象であった前フレームに相当する参照画像との予測誤差だけを用いた符号化(以下、これをフレーム間符号化と呼ぶ)のいずれかを実行する。
【0003】
この場合、画像符号化装置は、図9に示すように、複数のフレームのうち最初のフレームFr1に対してフレーム内符号化を実行して符号化データS1を生成し、また2番目以降のフレームFr2、Fr3、……については、フレーム全体を用いずに予測誤差だけを用いて符号化する分だけ発生符号量の少ないフレーム間符号化を実行して符号化データS2、S3……を順次生成することにより、動画像を形成する動画像データに比して大幅に符号量を低減する。
【0004】
一方、画像復号化装置は、画像符号化装置から受信した符号化データS1、S2、S3……を復号化する場合、当該符号化データS1に対してフレーム内復号化を実行して最初のフレームFr1を復元し、そのフレームFr1と符号化データS2とを用いてフレーム間復号化を実行して2番目のフレームFr2を復元し、以下同様に3番目以降のフレームFr2、Fr3、……についても順次復元する。
【0005】
従って画像復号化装置では、例えば符号化データS2が送信中に欠落等して受信できなかった場合、2番目のフレームFr2に復元エラーが発生するのみならず、3番目以降のフレームFr3、Fr4、……についても順次復元エラーが伝搬する。
【0006】
そこで画像符号化装置は、2番目以降のフレームFr3、Fr4、……について、復元エラーの伝搬を回避するためのフレーム内符号化(以下、これをイントラリフレッシュと呼ぶ)を予め所定間隔ごとに実行することにより、画像復号化装置において復元エラーが発生した以降の全てのフレームに対する復元エラーの伝搬を未然に防止し得るようになされている。
【0007】
この場合、画像符号化装置では、所定間隔ごとにイントラリフレッシュ(フレーム内符号化)を実行する分だけ発生符号量が多くなるので、帯域制限のあるネットワークを介して符号化データを画像復号化装置に送信するには、当該イントラリフレッシュを実行したフレーム以降の数フレームに発生させるべき符号量を抑制しなければならず、その結果、当該抑制したフレーム自体の画質の劣化が生じる問題がある。
【0008】
かかる問題を解決するための1つの従来手法として、一定間隔ごとにイントラリフレッシュを実行するように予め設定しておき、当該実行時の発生符号量等に基づいて次にイントラリフレッシュを実行するまでの間のフレームレートを、所定数のフレームを間引いて入力時のフレームレートよりも小さくすることにより、固定ビットレート中においてフレームに対する割り当て可能な符号量を、当該フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の向上を図るようになされた画像符号化装置が提案されている(例えば特許文献1)。
【0009】
【特許文献1】
特開平10−229561号公報
【0010】
【発明が解決しようとする課題】
ところが、かかる手法を適用した画像符号化装置においては、画像復号化装置における実際の復元エラーの発生成否に係わらずイントラリフレッシュを一定間隔で実行した際の発生符号量等に基づいてフレームレートを可変していることにより、当該実行時の発生符号量に応じて間引くフレーム数が可変する。
【0011】
従って画像符号化装置は、例えばイントラリフレッシュを実行するたびに当該実行時のフレームにおける絵柄の複雑さが異なって発生符号量に大幅な差異が生じた場合等には、イントラリフレッシュを実行する一定間隔ごとに間引くフレーム数の変動幅が大きくなることにより、動きのむらやなめらかさ等の動画像全体の画質としては劣化し、画質の劣化を防止するには未だ不十分であった。
【0012】
本発明は以上の点を考慮してなされたもので、従来に比して画質の劣化を防止し得る符号化制御方法及び符号化制御プログラムを提案しようとするものである。
【0013】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、動画像を形成する複数のフレームのうち、最初のフレームに対してフレーム内符号化を実行させると共に、当該最初のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ、フレーム内符号化又はフレーム間符号化が実行されたフレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けると、当該受けた時点の次に符号化対象となる次対象のフレームに対してフレーム内符号化を実行させた後、当該次対象のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ直すと共に、単位時間当たりの符号化フレーム数を表す符号化フレームレートを所定の状態まで引き下げさせるようにする。
【0014】
復号化側からエラー通知データを受けた際に次対象のフレームに対してフレーム内符号化を実行させると共に、符号化フレームレートを所定の状態まで引き下げさせることにより、フレームに対する割り当て可能な符号量を、当該フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の劣化を防止することができる。
【0015】
これに加えて、最初のフレーム以降の各フレームのうち、復号化側からエラー通知データを受けた場合にのみフレーム内符号化を実行させると共に符号化フレームレートを引き下げさせることにより、復号化側における実際の復元エラーの発生成否に係わらずフレーム内符号化を一定間隔で実行した際にフレームレートを可変していた従来に比して、当該復号化側で実際に復元エラーが発生しなかった場合におけるフレームレートを一定にする分だけ、動きのむらやなめらかさ等の動画像全体の画質としての劣化をも防止することができる。
【0016】
【発明の実施の形態】
以下、図面について、本発明の一実施の形態を詳述する。
【0017】
(1)動画像送信システムの構成
図1において、1は全体として動画像送信システムを示し、送信元である符号化側のカメラ装置2、画像符号化装置3及び符号化側送受信装置4と、送信先である復号化側の復号化側送受信装置5、画像復号化装置6及び表示装置7とによって構成されており、当該符号化側送受信装置4と復号化側送受信装置5との間を、例えばインターネット等のネットワーク8を介して各種情報を送受信するようになされている。
【0018】
カメラ装置2は、被写体を撮像することにより動画像データD1を生成し、これを画像符号化装置3に送出する。
【0019】
画像符号化装置3は、動画像データD1をフレーム単位で圧縮符号化するようになされており、最初のフレーム(以下、これを初フレームと呼ぶ)に相当するフレームデータについては、当該フレーム全体を用いた符号化(以下、これをフレーム内符号化と呼ぶ)を実行することにより符号化データ(以下、これをフレーム内符号化データと呼ぶ)D2を生成する。
【0020】
また画像符号化装置3は、初フレーム以降のフレームに相当する各フレームデータについては、現在符号化対象のフレーム(以下、これを現フレームと呼ぶ)と、その現フレームよりも1フレーム前に符号化対象であったフレーム(以下、これを前フレームと呼ぶ)に相当する参照画像との予測誤差だけを用いた符号化処理(以下、これをフレーム間符号化と呼ぶ)を実行することにより符号化データ(以下、これをフレーム間符号化データと呼ぶ)D3を順次生成する。
【0021】
そして画像符号化装置3は、フレーム内符号化データD2及び複数のフレーム間符号化データD3とを所定のタイミングで順次符号化側送受信装置4、ネットワーク8及び復号化側送受信装置5を介して画像復号化装置6に送信する。
【0022】
画像復号化装置6は、復号化側送受信装置5から所定のタイミングで順次与えられるフレーム内符号化データD2及び複数のフレーム間符号化データD3を内部バッファ6Aに順次所定の時間だけ蓄積する。
【0023】
そして画像復号化装置6は、内部バッファ6Aからフレーム内符号化データD2及び複数のフレーム間符号化データD3を復号化順に読み出す毎に、画像符号化装置3と同一の圧縮符号化(フレーム内符号化又はフレーム間符号化)に従って復号化処理を実行することにより動画像データD1をフレーム単位で順次復元し、当該復元したフレーム順に表示装置7に送出する。
【0024】
このようにして動画像送信システム1は、カメラ装置2から得られた動画像データD1をネットワーク8を介してダウンロードしながら再生するストリーミングを実行し、当該動画像データD1に基づく被写体の映像を順次表示装置7を介して提供するようになされている。
【0025】
ところで、画像復号化装置6のエラー検出部6Bは、内部バッファ6Aに蓄積されるフレーム内符号化データD2及び複数のフレーム間符号化データD3に基づいて、誤り訂正アルゴリズムにより訂正できない場合やネットワークプロトコルにより破棄されて再送されなかった場合等の復帰不可能な符号化データを送信エラーとして検出するようになされている。
【0026】
具体的には、エラー検出部6Bは、例えば複数のフレーム間符号化データD3のうち任意のフレーム間符号化データD3における送信エラーを検出すると、当該送信エラーを画像符号化装置3に通知するエラー通知データD4を生成し、これを復号化側送受信装置5、ネットワーク8及び符号化側送受信装置4を順次介して画像符号化装置3に送出する。
【0027】
画像符号化装置3は、エラー通知データD4を受けると、図2に示すように、当該エラー通知データD4を受けた時点の現フレームCFの次に符号化対象であるフレーム(以下、これをリフレッシュ対象フレームと呼ぶ)RFのみについて、図9で上述したような復元エラーの伝搬を回避するためのフレーム内符号化(以下、これをイントラリフレッシュと呼ぶ)を実行することにより符号化データ(以下、これをリフレッシュ符号化データと呼ぶ)D5を生成し、これを画像復号化装置6に送信する。
【0028】
因みに画像符号化装置3は、リフレッシュ対象フレームRF以降のフレーム(以下、これをリフレッシュ後フレームと呼ぶ)Fr10、Fr11……についてはフレーム間符号化を実行する。
【0029】
画像復号化装置6は、画像符号化装置3からネットワーク8を介して受信したリフレッシュ符号化データD5を用いて復号化処理を実行することにより、送信エラー検出部6Bにより送信エラーを検出した任意のフレーム間符号化データD3に対応するフレーム以降における全てのフレームについて復元エラーが伝搬してしまうことを防止し得るようになされている。
【0030】
かかる画像復号化装置6は、復元エラーが発生してしまうような致命的な送信エラーを事前に検出してエラー通知データD4を画像符号化装置3に送信することにより、実際の復元エラーの発生を検出する場合に比して一段と早くリフレッシュ符号化データD5取得して復元エラーの伝搬を防止し得るようになされている。
【0031】
このように動画像送信システム1においては、初フレーム以降の各フレームについてはフレーム間符号化を実行し、画像復号化装置6で送信エラーを検出したときのみイントラリフレッシュ(フレーム内符号化)を実行することにより、当該動画像データD1に比して大幅に符号量を低減したフレーム内符号化データD2及び複数のフレーム間符号化データD3を順次送受信し得るようになされている。
【0032】
(2)画像符号化装置の構成
図3に示すように、画像符号化装置3は、符号化処理部10と符号化制御処理部11とによって構成される。
【0033】
符号化処理部10は、カメラ装置2(図1)から与えられる例えば毎秒30フレーム(30[fps(frame per sec)])でなる動画像データD1を画像並替バッファ21に一旦蓄積し、当該動画像データD1をフレーム単位で圧縮符号化順に並び替え、当該並び替えた各フレームをそれぞれフレームデータD10としてスキップスイッチ22に順次送出する。
【0034】
スキップスイッチ22は、スイッチ端子22aを開閉させるための開閉制御データD24に従ってスイッチ端子22aを開閉するようになされており、当該開放の際には画像並替バッファ21から与えられるフレームデータD10を破棄し、これに対して閉鎖の際にはフレームデータD10を符号化切替スイッチ23に送出することにより、動画像データD1のフレームレート(30[fps] )を、単位時間当たりに符号化するフレーム数を表すフレームレート(以下、これを符号化フレームレートと呼ぶ)に変更する。
【0035】
具体的にはスキップスイッチ22は、例えば1フレーム単位で入力端子22aの開閉を交互に繰り返すことにより、図4に示すように、動画像を形成する複数フレームを1フレームおきに間引きし、その結果、毎秒30フレームのフレームレートを毎秒15フレームの符号化フレームレートに変更する。
【0036】
符号化切替スイッチ23(図3)は、接続切片23aを第2端子23cに接続しており、スキップスイッチ22から順次与えられる各フレームデータD10をフレーム間符号化部25に順次送出する。
【0037】
また符号化切替スイッチ23は、1フレーム分だけ接続切片23aを第2端子23cから第1端子23bに切り替えるための切替制御データD23が与えられると、第2端子23cに接続していた接続切片23aを第1端子23bに切り替え、当該切替時においてスキップスイッチ22から与えられるフレームデータD10をフレーム内符号化部24に送出する。
【0038】
そして符号化切替スイッチ23は、当該切替時にスイッチ22から与えられるフレームデータD10をフレーム内符号化部24に送出後、接続切片23aを再び第2端子23cに接続しなおし、スキップスイッチ22から順次与えられる各フレームデータD10をフレーム間符号化部25に順次送出するようになされている。
【0039】
フレーム内符号化部24は、第1端子23bから与えられるフレームデータD10に対して、目標符号量算出部31から与えられる目標符号量データD22に基づいてフレーム内符号化を実行することによりフレーム内符号化データD2を生成し、これをバッファメモリ26に一旦蓄積する。
【0040】
フレーム間符号化部25は、第2端子23cから与えられるフレームデータD10に対して、目標符号量算出部31から与えられる目標符号量データD22に基づいてフレーム間符号化を実行することによりフレーム間符号化データD3を生成し、これをバッファメモリ26に一旦蓄積する。
【0041】
このようにして符号化処理部10は、バッファメモリ26に蓄積されるフレーム内符号化データD2及び複数のフレーム間符号化データD3を所定のタイミングで符号化側送受信装置4(図1)に送出するようになされている。
【0042】
因みに、符号化処理部10においては、符号化対象である現フレームに相当するフレームデータD10をフレーム間符号化部25(フレーム内符号化部24)に入力したとき、前フレームに相当するフレームデータD10についてはフレーム間符号化を実行し終えてフレーム間符号化データD3(フレーム内符号化データD2)としてバッファメモリ26に蓄積すると共に、当該現フレームの次に符号化対象となるフレームに相当するフレームデータD10を符号化切替スイッチ23に入力するようになされている。
【0043】
一方、符号化制御処理部11のVBV(Video Buffering Verifier)占有量算出部30は、画像復号化装置6における実際の内部バッファ6A(図1)に相当する仮想的なバッファ(以下、これをVBVバッファと呼ぶ)を想定し、当該VBVバッファにおける占有量を算出するようになされている。
【0044】
具体的には、VBV占有量算出部30は、前フレームに相当するフレーム間符号化データD2(フレーム内符号化データD3)をバッファメモリ26から読み出し、当該読み出したフレーム間符号化データD2の発生符号量を認識する。
【0045】
そしてVBV占有量算出部30は、認識した発生符号量と、所定の固定ビットレートとに基づいて、現フレームに相当するフレームデータD10がフレーム間符号化部25(フレーム内符号化部24)によって符号化される直前のVBVバッファにおける占有量を算出し、当該算出結果を占有符号量データD21として目標符号量算出部31及びフレームレート決定部32に送出する。
【0046】
目標符号量算出部31は、所定の目標符号量算出アルゴリズムに従い、VBV占有量算出部30から与えられる占有符号量データD21に基づいて目標符号量を算出し、当該算出した目標符号量を表す目標符号量データD22を生成した後にフレーム内符号化部24及びフレーム間符号化部25に送出する。
【0047】
フレームレート制御部32は、例えば図5に示すように、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを引き下げる際の引下率を段階的に示した符号化フレームレートテーブルTB予め内部メモリ(図示せず)に記憶しており、当該符号化フレームレートテーブルTBのうち、画像並替バッファ21に蓄積される動画像データD1のフレームレート(30[fps] )及びフレームサイズに基づいて符号化フレームレートの初期値を例えば15[fps] として設定する。
【0048】
そしてフレームレート制御部32は、初期設定した符号化フレームレート(15[fps])と、動画像データD1のフレームレート(30[fps] )とに基づいて例えば図4に示したようなフレームスキップ数及びスキップ間隔を決定し、当該決定したフレームスキップ数及びスキップ間隔に応じて切替制御データD24を生成し、これをスキップスイッチ22に送出する。
【0049】
符号化切替制御部33は、初フレームに相当するフレームデータD10が符号化切替スイッチ23に入力された際に切替制御データD23を生成し、これを符号化切替スイッチ23に送出する。
【0050】
このように符号化制御処理部11は、エラー通知データD4(図1)を受けるまでは、符号化処理部10に対して、初期設定した符号化フレームレート(15[fps] )の基で、初フレーム以外のフレームに相当する各フレームデータD10についてフレーム間符号化を実行させるようになされている。
【0051】
これに対して符号化制御処理部11は、エラー通知データD4(図1)を受けると、符号化切替制御部33により切替制御データD23を生成し、これを符号化切替スイッチ23に送出する。
【0052】
この場合、符号化処理部10は、符号化切替スイッチ23に入力されたフレーム(リフレッシュ対象フレームRF(図2))に相当するフレームデータD10だけをフレーム内符号化部24に送出し、当該フレーム内符号化部24を介してイントラリフレッシュを実行してリフレッシュ符号化データD5を生成する。
【0053】
また符号化制御処理部11のフレームレート制御部32は、エラー通知データD4を受けたとき、符号化フレームレートテーブルTB(図5)のうち、初期設定した符号化フレームレート(15[fps])よりも1段階だけ小さい毎秒10フレームの符号化フレームレートを選択し、当該選択した符号化フレームレート(10[fps])と、動画像データD1のフレームレート(30[fps] )とに従って決定したフレームスキップ数及びスキップ間隔に応じて切替変更データD24を生成し、これをスキップスイッチ22に送出する。
【0054】
この場合、符号化処理部10は、リフレッシュ対象フレームRF以降の各リフレッシュ後フレームFr10、Fr11……(図2)について、図6に示すように、スキップスイッチ22を介して3フレームおきにフレームを残し、その結果、毎秒15フレームから毎秒10フレームの符号化フレームレートに引き下げる。
【0055】
このように符号化制御処理部11は、エラー通知データD4(図1)を受けると、符号化処理部10に対して、イントラリフレッシュを実行させると同時に符号化フレームレートを一段階引き下げさせることにより、当該引き下げさせた符号化フレームレート(10[fps] )の基で、リフレッシュ対象フレームRF以降のフレームに相当する各フレームデータD10についてフレーム間符号化を実行させるようになされている。
【0056】
ここで、イントラリフレッシュを実行した場合、本来実行するはずであったフレーム間符号化により発生する符号量(以下、これをフレーム間符号量と呼ぶ)よりも多く符号量が発生するので、当該多く発生した符号量(以下、これを差分符号量と呼ぶ)を、イントラリフレッシュを実行させた以降の数フレームに発生させるべきフレーム間符号量から相殺しなければ、図7中において一点鎖線で示すように、VBVバッファにおける占有量としてはやがて最小値Vminを下回って破綻(アンダーフロー)する。
【0057】
また、イントラリフレッシュを実行させた以降の数フレームに発生させるべきフレーム間符号量から差分符号量を相殺した場合には当該数フレーム自体の画質に劣化が生じる。
【0058】
しかし符号化制御処理部11は、イントラリフレッシュの実行と同時に符号化フレームレートへ引き下げていることにより、イントラリフレッシュ前における1フレーム分の符号化時間BTに比して、イントラリフレッシュ後における1フレーム分の符号化時間ATを長く確保している分だけ1フレームあたりに割り当てられる発生符号ビット量を減らすことなくアンダーフローを防止し、その結果、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行し得るようになされている。
【0059】
これに加えてフレームレート制御部32は、VBV占有量算出部30から順次与えられる占有符号量データD21に表されるVBVバッファの占有量P1、P2、P3……と、予め設定した所定の閾値Vthrとを比較し、当該閾値Vthrを越えたとき、一段階引き下げた符号化フレームレート(10[fps] )を初期設定時の符号化フレームレート(15[fps] )の状態にまで引き戻させるようになされている。
【0060】
ここで、フレームレート制御部32は、所定の閾値Vthrとして、当該VBVバッファの最大値Vmaxの2/3を選定するようになされている。
【0061】
これによりフレームレート制御部32は、例えば初期設定時の符号化フレームレートに戻した後の各フレームにおける絵柄が複雑であった場合等、当該初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合であってもアンダーフローをほぼ確実に防止し得るようになされている。
【0062】
(3)符号化制御処理手順
かかる符号化制御処理部11における符号化制御処理手順を図8に示すフローチャートを用いて説明する。
【0063】
すなわち符号化制御処理部11は、例えば入力部(図示せず)を介して例えばストリーミングを実行する所定の入力操作が行われると、ルーチンRTの開始ステップから次のステップSP1へ移る。
【0064】
ステップSP1において符号化制御処理部11は、画像並替バッファ21に蓄積された動画像データD1に基づいて、符号化フレームレートテーブルTB(図5)から符号化フレームレートの初期値を設定し、当該設定した初期値に応じて生成した切替制御データD24を符号化処理部10に送出した後、次のステップSP2へ移る。
【0065】
ステップSP2において符号化制御処理部11は、符号化処理部10に対して、初フレームについてフレーム内符号化を実行させ、次のステップSP3へ移る。
【0066】
ステップSP3において符号化制御処理部11は、符号化処理部10に対して、2番目のフレームについてフレーム間符号化を実行させ、次のステップSP4へ移る。
【0067】
ステップSP4において符号化制御処理部11は、エラー通知データD4を受けたか否かを判断する。ここで否定結果が得られると、このことはステップSP2又はSP3で符号化処理部10に対して符号化を実行させることにより得られるフレーム内符号化データD2又はフレーム間符号化D3を送信した際に送信エラーが生じていないことを表しており、このとき符号化制御処理部11は、ステップSP3に戻って引き続き3番目のフレームについてフレーム間符号化を実行させる。
【0068】
このように符号化制御処理部11は、ステップSP4で否定結果が得られるたびにステップSP3の処理を繰り返すことにより、ステップSP1で初期設定した符号化フレームレートの基で、初フレーム以降のフレームについて順次フレーム間符号化を実行させるようになされている。
【0069】
これに対してステップSP4で肯定結果が得られると、このことはステップSP2又はSP3で符号化処理部10に対して符号化を実行させることにより得られるフレーム内符号化データD2又はフレーム間符号化D3を送信した際に送信エラーが生じたことを表しており、このとき符号化制御処理部11は、次のステップSP5へ移る。
【0070】
ステップSP5において符号化制御処理部11は、符号化フレームレートテーブルTB(図5)に基づいて、ステップSP1で初期設定した符号化フレームレートよりも1段階だけ引き下げた符号化フレームレートを選択し、当該選択した符号化フレームレートに応じて生成した切替制御データD24を符号化処理部10に送出した後、次のステップSP6へ移る。
【0071】
ステップSP6において符号化制御処理部11は、符号化処理部10に対して、ステップSP4で肯定結果が得られた時点の次に符号化対象であるリフレッシュ対象フレームRF(図2)についてフレーム内符号化を実行させ、次のステップSP7へ移る。
【0072】
ステップSP7において符号化制御処理部11は、符号化処理部10に対して、リフレッシュ対象フレームRF以降のリフレッシュ後フレームのうち、1番目のリフレッシュ後フレームFr10(図2)についてフレーム間符号化を実行させ、次のステップSP8へ移る。
【0073】
ステップSP8において符号化制御処理部11は、ステップSP7で1番目のリフレッシュ後フレームFr10に対してフレーム間符号化を実行させたことにより得られるフレーム間符号化データD3に基づいて、2番目のリフレッシュ後フレームFr11(図2)に相当するフレームデータD10がフレーム間符号化される直前のVBVバッファにおける占有量P1を算出し、次のステップSP9に移る。
【0074】
ステップSP9において符号化制御処理部11は、ステップSP8で算出した占有量P1がが最大値Vmaxの2/3を越えたか否かを判断する。
【0075】
ここで否定結果が得られると、このことは初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合にはアンダーフローを発生させてしまう可能性があることを表しており、このとき符号化制御処理部11は、ステップSP7に戻って引き続きフレーム間符号化を実行させる。
【0076】
このように符号化制御処理部11は、ステップSP9で否定結果が得られるたびにステップSP7及びSP8の処理を繰り返すことにより、ステップSP5で引き下げた符号化フレームレートの基で、残りのリフレッシュ後フレームFr11、Fr12……(図2)に相当する各フレームデータD10ついてフレーム間符号化を順次実行させると共に、当該実行直前のVBVバッファにおける占有量P2、P3……を算出するようになされている。
【0077】
これに対してステップSP9で肯定結果が得られると、このことは初期設定時の符号化フレームレートに戻した後の各フレームに対する発生符号量が増大した場合であってもアンダーフローをほぼ確実に防止し得ることを表しており、このとき符号化制御処理部11は、ステップSP10に移る。
【0078】
ステップSP10において符号化制御処理部11は、ステップSP5で引き下げた符号化フレームレートを、ステップSP1で初期設定した符号化フレームレートに戻した後にステップSP3に戻って、当該初期設定の符号化フレームレートの基で、引き続きフレーム間符号化を実行させる。
【0079】
このように符号化制御処理部11は、符号化処理部10に対して、エラー通知データD4を受けるまではステップSP2及びSP3のループ(以下、これを通常処理ループと呼ぶ)に従って初期設定の符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させ、当該エラー通知データD4を受けると、イントラリフレッシュを実行させると同時に符号化フレームレートを一段階引き下げさせる。
【0080】
その後、符号化制御処理部11は、ステップSP7及びSP8のループ(以下、これを引下処理ループと呼ぶ)に従って、一段階引き下げさせた符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させると共に、当該実行時直前におけるVBVバッファ(図7)の占有量P1、P2……、又はPnをフレーム単位で監視し、最大値Vmaxの2/3である閾値Vthrを越えると再び通常処理ループを実行するようになされている。
【0081】
(4)動作及び効果
以上の構成において、符号化制御装置としての符号化制御処理部11は、符号化処理部10に対して、動画像における初フレーム以降のフレームに相当する各フレームデータD10についてフレーム間符号化を実行させることにより、動画像データD1に比して大幅に符号量を低減する。
【0082】
この状態において、符号化制御処理部11は、画像復号化装置6からエラー通知データD4を受けると、符号化処理部10に対して、当該受けた時点の次に符号化対象であるリフレッシュ対象フレームRFに相当するフレームデータD10についてフレーム内符号化を実行させる。
【0083】
その後、符号化制御処理部11は、符号化処理部10に対して、リフレッシュ対象フレームRF以降のリフレッシュ後フレームFr10、Fr11……に相当する各フレームデータD10について順次フレーム間符号化を実行させ直すと共に、符号化フレームレートテーブルTB(図5)に従ってリフレッシュ対象フレームRF以降の符号化フレームレートを、初期設定した符号化フレームレートから1段階だけ引き下げさせるようにした。
【0084】
従って符号化制御処理部11は、イントラリフレッシュ前における1フレーム分の符号化時間BT(図7)に比して、イントラリフレッシュ後における1フレーム分の符号化時間ATを長く確保する分だけイントラリフレッシュを実行させた以降の数フレームに発生させるべき符号量を抑制することなくアンダーフローを防止することができ、その結果、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行させることができる。
【0085】
これに加えて、画像復号化装置6における実際の復元エラーの発生成否に係わらずイントラリフレッシュを一定間隔で実行した際の発生符号量等に基づいてフレームレートを可変する従来では、例えば動画像データD1における各フレームの絵柄の複雑さが異なっていた場合には一定間隔ごとにフレームレートの変動が大きくなっていたのに対し、符号化制御処理部11は、画像復号化装置6からエラー通知データD4を受けたときにだけイントラリフレッシュを実行させると同時に符号化フレームレートを引き下げさせているので、実際に復元エラーが発生しなかった場合における符号化フレームレートを一定にする分、フレームレートの変動率を格段に抑えることができ、従って動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができる。
【0086】
また、符号化制御処理部11は、リフレッシュ対象フレームRF以降のフレームFr10、Fr11……(図2)に相当する各フレームデータD10ごとに当該フレームデータD10を符号化する直前におけるVBVバッファの符号量P1、P2、P3……を算出し、当該算出結果がVBVバッファにおける所定の閾値Vthrを越えたとき、初期設定時の符号化フレームレートの状態にまで引き戻させるようにした。
【0087】
この場合、符号化制御処理部11は、1フレームごとに符号化直前におけるVBVバッファの符号量P1、P2、P3……を順次算出するので、フレーム自体の画質の劣化(アンダーフロー)を生じさせることなく初期設定時の符号化フレームレートの基でフレーム間符号化を実行し得る時期をいち早く検出することができ、当該初期設定時の符号化フレームレートにいち早く戻すことができる。
【0088】
その結果、符号化制御処理部11は、イントラリフレッシュ前における1フレーム分の符号化時間BT(図7)に比して長い符号化時間ATを極力短縮することができ、かくして動画像データD1を極力速く送信させることができる。
【0089】
以上の構成によれば、エラー通知データD4を受けた場合にのみイントラリフレッシュを実行させると同時に符号化フレームレートを引き下げさせるようにしたことにより、フレーム自体の画質の劣化を生じさせることなくイントラリフレッシュを実行させることができると共に、実際に復元エラーが発生しなかった場合におけるフレームレートの変動率を従来に比して格段に抑えて動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができる。
【0090】
(5)他の実施の形態
上述の実施の形態においては、エラー通知データD4を受けたとき、符号化フレームレートテーブルTB(図5)に基づいて、初期設定した符号化フレームレートよりも1段階だけ小さい符号化フレームレートを選択する場合について述べたが、本発明はこれに限らず、当該エラー通知データD4を受けた際のリフレッシュ対象フレームRF(図2)がイントラリフレッシュされた時点におけるVBVバッファの占有量PX(図7)に応じて、符号化フレームレートの引下率を選択するようにしても良い。
【0091】
具体的には、符号化制御処理部11は、ステップSP6(図8)において符号化処理部10に対してリフレッシュ対象フレームRF(図2)についてフレーム内符号化を実行させた後、VBV占有量算出部30により、当該実行により得られるリフレッシュ符号化データD5に基づいてVBVバッファにおける占有量PXを算出し、当該算出した占有量PXがVBVバッファの最小値Vminと大きく離れていた場合には、フレームレート制御部32により、初期設定した符号化フレームレートよりも例えば1段階だけ小さい符号化フレームレートを選択した後に、次のステップSP7に移ってリフレッシュ後フレームFr10(図2)についてフレーム間符号化を実行させる。
【0092】
これに対して符号化制御処理部11は、算出した占有量PXがVBVバッファの最小値Vminに近い場合には、フレームレート制御部32により、当該最小値Vminに近いほど2段階、3段階……のように複数段階小さい符号化フレームレートを選択した後に、次のステップSP7に移ってリフレッシュ後フレームFr10(図2)についてフレーム間符号化を実行させる。
【0093】
このように、エラー通知データD4を受けた際のリフレッシュ対象フレームRF(図2)がイントラリフレッシュされた時点におけるVBVバッファの占有量PX(図7)に応じて符号化フレームレートの引下率を選択するようにすれば、差分符号量(イントラリフレッシュを実行した際の符号量と、その実行時に本来実行するはずであったフレーム間符号化により発生する符号量との差分)を相殺するための符号化時間AT(図7)を無駄なく的確に確保することができる。
【0094】
また上述の実施の形態においては、エラー通知データD4を受けたとき、初期設定した符号化フレームレートを1段階だけ引き下げる場合について述べたが、本発明はこれに限らず、当該1段階だけ引き下げた符号化フレームレートの基でフレーム間符号化を実行させている際にエラー通知データD4を受けたとき、さらに符号化フレームレートを下げるようにしても良い。
【0095】
具体的には符号化制御処理部11は、例えば、ステップSP7及びSP8のループ(以下、これを引下処理ループと呼ぶ)を実行している際に、再度エラー通知データD4を受けたとき、ステップSP5で1段階引き下げさせた符号化フレームレートをさらに1段階引き下げさせることにより、初期設定時における符号化フレームレートよりも2段階引き下げさせた符号化フレームレートの基でフレーム間符号化をフレーム単位で順次実行させ、当該実行時直前におけるVBVバッファ(図7)の占有量P1、P2……、又はPnをフレーム単位で監視し、最大値Vmaxの2/3である閾値Vthrを越えると再び通常処理ループを実行する。このようにすれば、エラー通知データD4を連続的に受けた場合であっても、画質の劣化を防止することができる。
【0096】
さらに上述の実施の形態においては、予め内部メモリに記憶された符号化フレームレートテーブルTB(図5)に従って符号化フレームレートを設定する場合について述べたが、本発明はこれに限らず、リフレッシュ符号化データD5の発生符号量を用いた所定の演算に従って符号化フレームレートを設定するようにしても良い。
【0097】
さらに上述の実施の形態においては、エラー検出部6B(図1)により内部バッファ6Aに蓄積されるフレーム内符号化データD2及び複数のフレーム間符号化データD3の送信エラーを検出する場合について述べたが、本発明はこれに加えて、画像復号化装置6の復号化処理の際に実際に発生した復元エラーを検出するようにしても良く、要は、少なくとも復号化処理の際に実際に発生した復元エラーを検出すれば良い。
【0098】
さらに上述の実施の形態においては、図3について上述したハードウェア構成でなる符号化制御処理部11が図8について上述した符号化制御処理手順に沿って符号化制御処理を実行する場合について述べたが、本発明はこれに限らず、かかるハードウェア構成に代えて、当該符号化制御処理手順に沿って符号化制御処理を実行させるための符号化制御プログラムに従って符号化制御処理を実行するようにしても良い。
【0099】
この場合、符号化制御処理部11は、内部ROM(図示せず)等に符号化制御プログラムを格納し、当該符号化制御プログラムを内部RAM(図示せず)等に展開することにより符号化制御処理手順を実行するようにしても良く、当該符号化制御プログラムが格納されたプログラム格納媒体をインストールすることにより符号化制御処理手順を実行するようにしても良い。
【0100】
このように上述した一連の符号化制御処理を実行するための符号化制御プログラムを符号化制御処理部11にインストールして実行可能な状態にするためのプログラム格納媒体としては、例えばフロッピディスク、CD−ROM(CompactDisc-Read Only Memory )、DVD(Digital Versatile Disc)等のパッケージメディアのみならず、符号化制御プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスク等で実現しても良い。またこれらプログラム格納媒体に符号化制御プログラムを格納する手段として、ローカルエリアネットワークやインターネット、ディジタル衛星放送等の有線又は無線通信媒体を利用してもよく、ルータやモデム等の各種通信インターフェースを介して格納するようにしても良い。
【0101】
【発明の効果】
上述のように本発明によれば、動画像を形成する複数のフレームのうち、最初のフレームに対してフレーム内符号化を実行させると共に、当該最初のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ、フレーム内符号化又はフレーム間符号化が実行されたフレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けると、当該受けた時点の次に符号化対象となる次対象のフレームに対してフレーム内符号化を実行させた後、当該次対象のフレーム以降の各フレームに対してフレーム間符号化を順次実行させ直すと共に、単位時間当たりの符号化フレーム数を表す符号化フレームレートを所定の状態まで引き下げさせるようにする。
【0102】
この場合、復号化側からエラー通知データを受けた場合にのみフレーム内符号化を実行させると共に符号化フレームレートを引き下げさせるようにするので、固定ビットレート中においてフレームに対する割り当て可能な符号量を当該符号化フレームレートを小さく設定した分だけ増加させてフレーム自体の画質の劣化を防止するのみならず、当該復号化側で実際に復元エラーが発生しなかった場合におけるフレームレートを一定にする分だけフレームレートの変動率を抑えて動きのむらやなめらかさ等の動画像全体における画質の劣化をも防止することができ、かくして、従来に比して画質の劣化を防止することができる。
【図面の簡単な説明】
【図1】動画像送信システムの構成を示すブロック図である。
【図2】エラー通知データとイントラリフレッシュとの時期的関係の説明に供する略線図である。
【図3】画像符号化装置の構成を示すブロック図である。
【図4】フレームスキップ例(1)を示す略線図である。
【図5】符号化フレームレートテーブル例を示す略線図である。
【図6】フレームスキップ例(2)を示す略線図である。
【図7】VBVバッファにおける符号量の推移例を示す略線図である。
【図8】符号化制御処理手順を示すフローチャートである。
【図9】符号化例の説明に供する略線図である。
【符号の説明】
1……動画像送信システム、3……画像符号化装置、6……画像復号化装置、8……ネットワーク、10……符号化処理部、11……符号化制御処理部、30……VBV占有量算出部、32……フレームレート制御部、33……符号化切替制御部。
Claims (4)
- 動画像を形成する複数のフレームのうち、最初のフレームに対してフレーム内符号化を実行させ、当該最初のフレーム以降の各フレームに対してフレーム間符号化を実行させる第1のステップと、
上記フレーム内符号化又は上記フレーム間符号化されたフレームを復号する復号側から復号エラーの発生を表すエラー通知データを受けた場合、現符号化対象の次に符号化対象となる次対象フレームに対して、上記フレーム間符号化に代えて上記フレーム内符号化を実行させる第2のステップと、
上記次対象フレーム以降の各フレームに対する符号化フレームレートを所定の引下率で引き下げさせる第3のステップと、
復号側の仮想バッファに対する占有量の算出結果が所定の閾値を超えた場合、符号化フレームレートを元の状態に戻させる第4のステップと
を具えることを特徴とする符号化制御方法。 - 上記第3のステップでは、
上記次対象フレーム以降の各フレームに対する符号化フレームレートの引下率を、該次対象フレームがフレーム内符号化された場合における復号側の仮想バッファに対する占有量に応じて決定する
ことを特徴とする請求項1に記載の符号化制御方法。 - 上記第3のステップでは、
符号化フレームレートの引下率を段階的に表すテーブルから、次対象フレームがフレーム内符号化された場合における復号側の仮想バッファに対する占有量に応じて、上記次対象フレーム以降の各フレームに対する符号化フレームレートの引下率を選択する
ことを特徴とする請求項1に記載の符号化制御方法。 - フレーム内符号化、フレーム間符号化及び符号化フレームレートの変更が可能な符号化処理部に対して、
動画像を形成する複数のフレームのうち、最初のフレームをフレーム内符号化し、当該最初のフレーム以降の各フレームをフレーム間符号化すること、
上記フレーム内符号化又は上記フレーム間符号化されたフレームを復号する復号側から復号エラーの発生を表すエラー通知データを受けた場合、現符号化対象の次に符号化対象となる次対象フレームを、上記フレーム間符号化に代えて上記フレーム内符号化すること、
上記次対象フレーム以降の各フレームに対する符号化フレームレートを所定の引下率で引き下げること、
復号側の仮想バッファに対する占有量の算出結果が所定の閾値を超えた場合、符号化フレームレートを元の状態に戻すこと
を実行させることを特徴とする符号化制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002357949A JP4069444B2 (ja) | 2002-12-10 | 2002-12-10 | 符号化制御方法及び符号化制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002357949A JP4069444B2 (ja) | 2002-12-10 | 2002-12-10 | 符号化制御方法及び符号化制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004193850A JP2004193850A (ja) | 2004-07-08 |
JP4069444B2 true JP4069444B2 (ja) | 2008-04-02 |
Family
ID=32757810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002357949A Expired - Fee Related JP4069444B2 (ja) | 2002-12-10 | 2002-12-10 | 符号化制御方法及び符号化制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4069444B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4753204B2 (ja) * | 2006-11-17 | 2011-08-24 | 株式会社ソニー・コンピュータエンタテインメント | 符号化処理装置および符号化処理方法 |
JP4973381B2 (ja) * | 2007-08-15 | 2012-07-11 | ソニー株式会社 | 監視装置、監視方法及び監視システム |
JP5465723B2 (ja) * | 2008-07-28 | 2014-04-09 | ヴァントリックス コーポレーション | 経時変化するトランスポートメディアによるデータのストリーミング |
US8001260B2 (en) | 2008-07-28 | 2011-08-16 | Vantrix Corporation | Flow-rate adaptation for a connection of time-varying capacity |
KR101736793B1 (ko) | 2010-12-29 | 2017-05-30 | 삼성전자주식회사 | 비디오 프레임 인코딩 장치, 그것의 인코딩 방법 및 그것을 포함하는 비디오 신호 송수신 시스템의 동작 방법 |
US9137551B2 (en) | 2011-08-16 | 2015-09-15 | Vantrix Corporation | Dynamic bit rate adaptation over bandwidth varying connection |
JP2013078024A (ja) * | 2011-09-30 | 2013-04-25 | Panasonic Corp | 画像送信装置及びそれを備えた画像伝送システム |
US20240080457A1 (en) * | 2021-02-08 | 2024-03-07 | Sony Semiconductor Solutions Corporation | Information processing apparatus and information processing method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07193821A (ja) * | 1993-12-27 | 1995-07-28 | Canon Inc | 動画像符号化装置および方法 |
JP3946804B2 (ja) * | 1997-02-13 | 2007-07-18 | 日本電信電話株式会社 | 画像符号化制御方法 |
JP3859118B2 (ja) * | 2000-08-25 | 2006-12-20 | 日本ビクター株式会社 | 可変画像レート符号化装置、可変画像レート復号化装置、可変画像レート符号化方法、及び可変画像レート復号化方法 |
JP3641214B2 (ja) * | 2001-02-28 | 2005-04-20 | 株式会社東芝 | 動画像符号化装置および動画像符号化方法 |
-
2002
- 2002-12-10 JP JP2002357949A patent/JP4069444B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004193850A (ja) | 2004-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3157101B2 (ja) | 画像符号化方法及び画像符号化装置 | |
US6580829B1 (en) | Detecting and coding flash frames in video data | |
US20010026587A1 (en) | Image encoding apparatus and method of same, video camera, image recording apparatus, and image transmission apparatus | |
JP3907875B2 (ja) | 符号化レート制御装置及び情報符号化装置 | |
US6748114B1 (en) | Moving picture encoding method and moving picture encoding apparatus | |
JP4069444B2 (ja) | 符号化制御方法及び符号化制御プログラム | |
US20050078756A1 (en) | Encoding apparatus and encoding method | |
JPH07135659A (ja) | 動画像復号制御装置 | |
US20050089232A1 (en) | Method of video compression that accommodates scene changes | |
US20080069202A1 (en) | Video Encoding Method and Device | |
JP2009124518A (ja) | 画像送信装置 | |
JP2003032689A (ja) | 画像符号化装置、画像復号化装置及び動画像伝送システム | |
JP2002027483A (ja) | 画像符号化装置、画像復号化装置および記憶媒体 | |
JP2003116136A (ja) | 動画像復号装置 | |
JP6182888B2 (ja) | 画像符号化装置 | |
JP2013214894A (ja) | 画像符号化装置 | |
JP5189618B2 (ja) | 映像符号化方法,映像符号化装置および映像符号化プログラム | |
WO2000064187A1 (en) | Image encoding device and its method | |
JP2002010263A (ja) | 動画像符号化装置および動画像符号化方法 | |
JPH07193821A (ja) | 動画像符号化装置および方法 | |
JP2508576B2 (ja) | 動画像符号化方式 | |
JP3946804B2 (ja) | 画像符号化制御方法 | |
US20150010061A1 (en) | Video encoding method, device and program | |
JP2004015351A (ja) | 符号化装置及び方法、プログラム、記録媒体 | |
JP2001359102A (ja) | 画像符号化方法及び画像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071122 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080103 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120125 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |