JP2004193850A - Encoding control method and encoding control program - Google Patents

Encoding control method and encoding control program Download PDF

Info

Publication number
JP2004193850A
JP2004193850A JP2002357949A JP2002357949A JP2004193850A JP 2004193850 A JP2004193850 A JP 2004193850A JP 2002357949 A JP2002357949 A JP 2002357949A JP 2002357949 A JP2002357949 A JP 2002357949A JP 2004193850 A JP2004193850 A JP 2004193850A
Authority
JP
Japan
Prior art keywords
frame
encoding
intra
inter
coding
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.)
Granted
Application number
JP2002357949A
Other languages
Japanese (ja)
Other versions
JP4069444B2 (en
Inventor
Yasuhiro Hashimoto
安弘 橋本
Masatoshi Takashima
昌利 高嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002357949A priority Critical patent/JP4069444B2/en
Publication of JP2004193850A publication Critical patent/JP2004193850A/en
Application granted granted Critical
Publication of JP4069444B2 publication Critical patent/JP4069444B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent deterioration of image quality more than in the conventional method. <P>SOLUTION: Only when receiving error notice data D4 from an image decoder, an intra-refresh is executed and an encoding frame rate is decreased at the same time. Thus, the deterioration in the image quality of a frame itself can be prevented by increasing a code amount assignable to the frame at a fixed bit rate by a share of the encoded frame rate set smaller and deterioration in the image quality in an entire moving picture such as uneven motion or loss of smoothness can also be prevented by suppressing a variation rate in the frame rate by a share of the frame rate made constant when no decoding error actually takes place on the decoder side. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は符号化制御方法及び符号化制御プログラムに関し、例えば圧縮符号化された動画像データをネットワークを介して受信しながら再生する、いわゆるストリーミングを実行する場合に適用して好適なものである。
【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……符号化切替制御部。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an encoding control method and an encoding control program, and is suitably applied to, for example, a case where so-called streaming is performed in which compressed and encoded moving image data is reproduced while being received via a network.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, when an image encoding device performs compression encoding for each of a plurality of frames forming a moving image, for example, encoding using the entire encoding target frame (hereinafter, this is referred to as intra-frame encoding), Alternatively, coding using only a prediction error between a frame to be coded and a reference image corresponding to a previous frame that is one frame before the frame to be coded (hereinafter referred to as inter-frame coding) ).
[0003]
In this case, as illustrated in FIG. 9, the image encoding device performs intra-frame encoding on the first frame Fr1 of the plurality of frames to generate encoded data S1, and generates the encoded data S1 on the second and subsequent frames. For Fr2, Fr3,..., The encoded data S2, S3,. By doing so, the code amount is significantly reduced as compared with the moving image data forming the moving image.
[0004]
On the other hand, when decoding the encoded data S1, S2, S3,... Received from the image encoding device, the image decoding device performs intra-frame decoding on the encoded data S1 to execute the first frame. .. Is restored, and the second frame Fr2 is restored by performing inter-frame decoding using the frame Fr1 and the encoded data S2. Similarly, the third and subsequent frames Fr2, Fr3,. Restore sequentially.
[0005]
Therefore, in the image decoding apparatus, for example, if the encoded data S2 cannot be received due to loss during transmission or the like, not only a restoration error occurs in the second frame Fr2, but also the third and subsequent frames Fr3, Fr4, .., A restoration error is sequentially propagated.
[0006]
Therefore, the image coding apparatus performs intra-frame coding (hereinafter, referred to as intra refresh) for the second and subsequent frames Fr3, Fr4,... At predetermined intervals in advance to avoid propagation of a restoration error. By doing so, it is possible to prevent the propagation of the restoration error for all frames after the restoration error has occurred in the image decoding apparatus.
[0007]
In this case, in the image encoding device, since the amount of generated code is increased by the amount of performing the intra refresh (intra-frame encoding) at predetermined intervals, the encoded data is encoded via the network having the band limitation. , The amount of code to be generated in several frames after the frame on which the intra refresh is executed must be suppressed, and as a result, there is a problem in that the image quality of the suppressed frame itself deteriorates.
[0008]
As one conventional method for solving such a problem, it is set in advance so that intra refresh is executed at regular intervals, and the time until the next intra refresh is executed based on the amount of codes generated at the time of execution. By reducing the frame rate between frames to a value smaller than the frame rate at the time of input by thinning out a predetermined number of frames, the code amount that can be allocated to the frames during the fixed bit rate is increased by the amount set to a small frame rate. There has been proposed an image coding device designed to improve the image quality of a frame itself (for example, Patent Document 1).
[0009]
[Patent Document 1]
JP-A-10-229561
[0010]
[Problems to be solved by the invention]
However, in an image encoding device to which such a method is applied, the frame rate is variable based on the amount of generated codes when intra refresh is executed at fixed intervals regardless of whether or not an actual restoration error occurs in the image decoding device. By doing so, the number of frames to be thinned out varies according to the generated code amount at the time of execution.
[0011]
Therefore, for example, every time an intra-refresh is executed, the image coding apparatus performs a fixed interval for executing the intra-refresh when the complexity of a picture in the frame at the time of the execution is different and a generated code amount is significantly different. As the fluctuation width of the number of frames to be thinned out increases every time, the image quality of the entire moving image such as uneven motion and smoothness deteriorates, and it is still insufficient to prevent the image quality from deteriorating.
[0012]
The present invention has been made in consideration of the above points, and has as its object to propose an encoding control method and an encoding control program capable of preventing image quality deterioration as compared with the related art.
[0013]
[Means for Solving the Problems]
In order to solve such a problem, according to the present invention, among a plurality of frames forming a moving image, intra-frame encoding is performed on a first frame, and inter-frame coding is performed on each frame after the first frame. Encoding is sequentially executed, and when error notification data indicating the occurrence of a decoding error is received from a decoding side that decodes a frame on which intra-frame encoding or inter-frame encoding has been performed, encoding is performed next to the time when the error notification data is received. After the intra-frame encoding is performed on the target next target frame, the inter-frame encoding is sequentially re-executed for each frame after the next target frame, and the encoded frames per unit time are encoded. An encoding frame rate representing a number is reduced to a predetermined state.
[0014]
Upon receiving the error notification data from the decoding side, the intra-frame coding is performed on the next target frame, and the coding frame rate is reduced to a predetermined state, so that the code amount that can be allocated to the frame is reduced. In addition, it is possible to prevent the image quality of the frame itself from deteriorating by increasing the frame rate by a small amount.
[0015]
In addition to this, of the frames after the first frame, by executing intra-frame encoding and reducing the encoding frame rate only when error notification data is received from the decoding side, When no decoding error actually occurs on the decoding side compared to the conventional method in which the frame rate was changed when intra-frame encoding was performed at regular intervals regardless of whether or not an actual decoding error occurred. The deterioration of the image quality of the entire moving image, such as uneven motion or smoothness, can be prevented by making the frame rate constant.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0017]
(1) Configuration of moving image transmission system
In FIG. 1, reference numeral 1 denotes a moving image transmission system as a whole, in which an encoding side camera apparatus 2, an image encoding apparatus 3, and an encoding side transmission / reception apparatus 4, which are transmission sources, and a decoding side, which is a transmission destination, are decoded. The transmission / reception device 5 includes an encoding / transmission / reception device 5, an image decoding device 6, and a display device 7, and is connected between the encoding / transmission / reception device 4 and the decoding / transmission / reception device 5 via a network 8 such as the Internet. Various types of information are transmitted and received.
[0018]
The camera device 2 generates moving image data D <b> 1 by capturing an image of a subject, and sends the generated moving image data D <b> 1 to the image encoding device 3.
[0019]
The image encoding device 3 compresses and encodes the moving image data D1 on a frame-by-frame basis. For the frame data corresponding to the first frame (hereinafter, referred to as the first frame), the entire frame is encoded. By executing the used encoding (hereinafter, referred to as intra-frame encoding), encoded data (hereinafter, referred to as intra-frame encoded data) D2 is generated.
[0020]
In addition, the image encoding device 3 determines that each frame data corresponding to the frames after the first frame is a frame to be currently encoded (hereinafter, referred to as a current frame), and is encoded one frame before the current frame. By performing an encoding process (hereinafter, referred to as inter-frame encoding) using only a prediction error with respect to a reference image corresponding to a frame to be encoded (hereinafter, referred to as a previous frame), Coded data (hereinafter, referred to as inter-frame coded data) D3.
[0021]
The image encoding device 3 sequentially transmits the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 at predetermined timings via the encoding-side transmitting / receiving device 4, the network 8, and the decoding-side transmitting / receiving device 5. The data is transmitted to the decoding device 6.
[0022]
The image decoding device 6 sequentially accumulates the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 sequentially given at a predetermined timing from the decoding transmitting / receiving device 5 in the internal buffer 6A for a predetermined time.
[0023]
Then, each time the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 are read out in the decoding order from the internal buffer 6A, the image decoding device 6 performs the same compression encoding (intra-frame encoding) as the image encoding device 3. The decoding processing is performed in accordance with the decoding or the inter-frame coding, thereby sequentially restoring the moving image data D1 on a frame-by-frame basis and sending the restored moving picture data D1 to the display device 7 in the order of the restored frames.
[0024]
In this manner, the moving image transmission system 1 executes streaming for reproducing the moving image data D1 obtained from the camera device 2 while downloading the moving image data D1 via the network 8, and sequentially performs the video of the subject based on the moving image data D1. It is provided through a display device 7.
[0025]
Incidentally, the error detection unit 6B of the image decoding device 6 uses the error correction algorithm based on the intra-frame coded data D2 and the plurality of inter-frame coded data D3 accumulated in the internal buffer 6A to perform correction by an error correction algorithm or a network protocol. Thus, irrecoverable coded data, such as when discarded and not retransmitted, is detected as a transmission error.
[0026]
Specifically, for example, upon detecting a transmission error in an arbitrary inter-frame encoded data D3 among the plurality of inter-frame encoded data D3, the error detection unit 6B notifies the image encoding device 3 of the transmission error. The notification data D4 is generated and transmitted to the image encoding device 3 via the decoding transmitting / receiving device 5, the network 8, and the encoding transmitting / receiving device 4 in order.
[0027]
Upon receiving the error notification data D4, the image coding apparatus 3 refreshes the frame to be coded next to the current frame CF at the time of receiving the error notification data D4 (hereinafter, refreshed as shown in FIG. 2). Only the RF (referred to as a target frame) is subjected to intra-frame encoding (hereinafter referred to as intra-refresh) for avoiding propagation of a restoration error as described above with reference to FIG. This is called refresh coded data) D5, and this is transmitted to the image decoding device 6.
[0028]
Incidentally, the image encoding device 3 executes inter-frame encoding for frames after the refresh target frame RF (hereinafter, referred to as refreshed frames) Fr10, Fr11,....
[0029]
The image decoding device 6 executes a decoding process using the refresh coded data D5 received from the image coding device 3 via the network 8, thereby detecting any transmission error detected by the transmission error detection unit 6B. It is possible to prevent a restoration error from being propagated for all frames after the frame corresponding to the inter-frame coded data D3.
[0030]
The image decoding device 6 detects a fatal transmission error that may cause a restoration error in advance, and transmits the error notification data D4 to the image encoding device 3, thereby generating an actual restoration error. Is detected, the refresh coded data D5 can be obtained much earlier than in the case of detecting the recovery error to prevent the propagation of a restoration error.
[0031]
As described above, in the moving image transmission system 1, the inter-frame coding is performed for each frame after the first frame, and the intra refresh (intra-frame coding) is performed only when the image decoding device 6 detects a transmission error. By doing so, it is possible to sequentially transmit and receive the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 whose code amount is significantly reduced as compared with the moving image data D1.
[0032]
(2) Configuration of image encoding device
As shown in FIG. 3, the image encoding device 3 includes an encoding processing unit 10 and an encoding control processing unit 11.
[0033]
The encoding processing unit 10 temporarily accumulates the moving image data D1 of 30 frames per second (30 [fps (frame per sec)]) provided from the camera device 2 (FIG. 1) in the image reordering buffer 21 and temporarily stores the moving image data D1. The moving image data D1 is rearranged in a compression coding order in frame units, and the rearranged frames are sequentially transmitted to the skip switch 22 as frame data D10.
[0034]
The skip switch 22 opens and closes the switch terminal 22a in accordance with opening and closing control data D24 for opening and closing the switch terminal 22a. At the time of opening, the skip switch 22 discards the frame data D10 given from the image rearranging buffer 21. On the other hand, when the frame is closed, the frame data D10 is sent to the encoding changeover switch 23, so that the frame rate (30 [fps]) of the moving image data D1 is reduced by the number of frames to be encoded per unit time. To the frame rate to be represented (hereinafter, referred to as an encoding frame rate).
[0035]
Specifically, the skip switch 22 thins out a plurality of frames forming a moving image every other frame as shown in FIG. , The frame rate of 30 frames per second is changed to an encoding frame rate of 15 frames per second.
[0036]
The encoding changeover switch 23 (FIG. 3) connects the connection piece 23a to the second terminal 23c, and sequentially transmits each frame data D10 sequentially supplied from the skip switch 22 to the inter-frame encoding unit 25.
[0037]
Further, when the switching control data D23 for switching the connection piece 23a from the second terminal 23c to the first terminal 23b for one frame is provided, the encoding switch 23 switches the connection piece 23a connected to the second terminal 23c. To the first terminal 23b, and sends the frame data D10 given from the skip switch 22 to the intra-frame encoding unit 24 at the time of the switching.
[0038]
Then, the encoding changeover switch 23 sends the frame data D10 given from the switch 22 at the time of the switching to the intra-frame encoding unit 24, and then reconnects the connection piece 23a to the second terminal 23c again, and sequentially supplies the connection piece 23a from the skip switch 22. The frame data D10 is sequentially transmitted to the inter-frame encoding unit 25.
[0039]
The intra-frame coding unit 24 performs intra-frame coding on the frame data D10 provided from the first terminal 23b based on the target code amount data D22 provided from the target code amount calculation unit 31, thereby performing the intra-frame coding. The coded data D2 is generated and temporarily stored in the buffer memory 26.
[0040]
The inter-frame coding unit 25 performs inter-frame coding on the frame data D10 supplied from the second terminal 23c based on the target code amount data D22 provided from the target code amount calculation unit 31, thereby performing the inter-frame coding. The coded data D3 is generated and temporarily stored in the buffer memory 26.
[0041]
In this way, the encoding processing unit 10 sends the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 stored in the buffer memory 26 to the encoding-side transmitting / receiving apparatus 4 (FIG. 1) at a predetermined timing. It has been made to be.
[0042]
Incidentally, in the encoding processing unit 10, when the frame data D10 corresponding to the current frame to be encoded is input to the inter-frame encoding unit 25 (the intra-frame encoding unit 24), the frame data D10 corresponding to the previous frame is input. With respect to D10, after completion of the inter-frame encoding, it is accumulated in the buffer memory 26 as inter-frame encoded data D3 (intra-frame encoded data D2), and also corresponds to a frame to be encoded next to the current frame. The frame data D10 is input to the encoding switch 23.
[0043]
On the other hand, the VBV (Video Buffering Verify) occupation amount calculation unit 30 of the encoding control processing unit 11 is a virtual buffer (hereinafter referred to as VBV) corresponding to the actual internal buffer 6A (FIG. 1) in the image decoding device 6. Buffer), and calculates the occupancy in the VBV buffer.
[0044]
Specifically, the VBV occupancy calculating unit 30 reads the inter-frame coded data D2 (intra-frame coded data D3) corresponding to the previous frame from the buffer memory 26, and generates the read inter-frame coded data D2. Recognize the code amount.
[0045]
Then, the VBV occupancy calculating unit 30 converts the frame data D10 corresponding to the current frame by the inter-frame coding unit 25 (the intra-frame coding unit 24) based on the recognized generated code amount and a predetermined fixed bit rate. The occupation amount in the VBV buffer immediately before encoding is calculated, and the calculation result is sent to the target code amount calculation unit 31 and the frame rate determination unit 32 as occupation code amount data D21.
[0046]
The target code amount calculation unit 31 calculates a target code amount based on the occupied code amount data D21 given from the VBV occupation amount calculation unit 30 according to a predetermined target code amount calculation algorithm, and sets a target code amount representing the calculated target code amount. After generating the code amount data D22, it is sent to the intra-frame encoding unit 24 and the inter-frame encoding unit 25.
[0047]
For example, as shown in FIG. 5, the frame rate control unit 32 includes a coding frame rate table TB that indicates the reduction rate when the coding frame rate indicating the number of frames to be coded per unit time is reduced in a stepwise manner. It is stored in an internal memory (not shown) and is based on the frame rate (30 [fps]) and the frame size of the moving image data D1 stored in the image rearranging buffer 21 in the encoding frame rate table TB. The initial value of the encoding frame rate is set to, for example, 15 [fps].
[0048]
Then, based on the initially set encoding frame rate (15 [fps]) and the frame rate of moving image data D1 (30 [fps]), the frame rate control unit 32 performs frame skipping as shown in FIG. The number and the skip interval are determined, and the switching control data D24 is generated according to the determined frame skip number and the skip interval, and is transmitted to the skip switch 22.
[0049]
The encoding switching control unit 33 generates the switching control data D23 when the frame data D10 corresponding to the first frame is input to the encoding switching switch 23, and sends out the generated switching control data D23 to the encoding switching switch 23.
[0050]
As described above, until receiving the error notification data D4 (FIG. 1), the encoding control processing unit 11 instructs the encoding processing unit 10 on the basis of the initially set encoding frame rate (15 [fps]). Interframe coding is performed on each frame data D10 corresponding to a frame other than the first frame.
[0051]
On the other hand, upon receiving the error notification data D4 (FIG. 1), the encoding control processing unit 11 generates the switching control data D23 by the encoding switching control unit 33 and sends it to the encoding switch 23.
[0052]
In this case, the encoding processing unit 10 sends only the frame data D10 corresponding to the frame (the refresh target frame RF (FIG. 2)) input to the encoding changeover switch 23 to the intra-frame encoding unit 24, and Intra refresh is executed via the inner encoding unit 24 to generate refresh encoded data D5.
[0053]
When receiving the error notification data D4, the frame rate control unit 32 of the coding control processing unit 11 sets the initially set coding frame rate (15 [fps]) in the coding frame rate table TB (FIG. 5). An encoding frame rate of 10 frames per second, which is smaller by one stage, is selected, and determined according to the selected encoding frame rate (10 [fps]) and the frame rate of the moving image data D1 (30 [fps]). The switch change data D24 is generated according to the frame skip number and the skip interval, and is transmitted to the skip switch 22.
[0054]
In this case, as shown in FIG. 6, the encoding processing unit 10 outputs frames every three frames via the skip switch 22 for each of the refreshed frames Fr10, Fr11... As a result, the coding frame rate is reduced from 15 frames per second to 10 frames per second.
[0055]
As described above, when receiving the error notification data D4 (FIG. 1), the encoding control processing unit 11 causes the encoding processing unit 10 to execute the intra refresh and at the same time lower the encoding frame rate by one step. On the basis of the reduced encoding frame rate (10 [fps]), the inter-frame encoding is executed for each frame data D10 corresponding to the frames after the refresh target frame RF.
[0056]
Here, when the intra refresh is performed, the code amount generated by the inter-frame coding that should have been performed originally (hereinafter, referred to as the inter-frame code amount) is larger than the code amount. As long as the generated code amount (hereinafter, referred to as a difference code amount) is not offset from the inter-frame code amount to be generated in several frames after the intra refresh is executed, as shown by a dashed line in FIG. Then, the occupancy in the VBV buffer eventually falls below the minimum value Vmin, causing a breakdown (underflow).
[0057]
Further, when the difference code amount is offset from the inter-frame code amount to be generated in several frames after the intra refresh is executed, the image quality of the several frames themselves deteriorates.
[0058]
However, since the encoding control processing unit 11 reduces the encoding frame rate to the encoding frame rate simultaneously with the execution of the intra refresh, the encoding control processing unit 11 compares the encoding time BT of one frame before the intra refresh with the encoding time BT of the one frame after the intra refresh. The underflow is prevented without reducing the amount of generated code bits allocated per frame by an amount corresponding to the long encoding time AT, and as a result, intra refresh can be performed without deteriorating the image quality of the frame itself. It has been made executable.
[0059]
In addition to this, the frame rate control unit 32 determines the occupation amounts P1, P2, P3,... Of the VBV buffers represented by the occupied code amount data D21 sequentially given from the VBV occupation amount calculation unit 30, and a predetermined threshold value Vthr, and when the threshold Vthr is exceeded, the coding frame rate (10 [fps]) reduced by one stage is returned to the state of the coding frame rate (15 [fps]) at the time of the initial setting. It has been made.
[0060]
Here, the frame rate control unit 32 selects 2/3 of the maximum value Vmax of the VBV buffer as the predetermined threshold Vthr.
[0061]
This allows the frame rate control unit 32 to return to the encoding frame rate at the initial setting, for example, when the picture in each frame after returning to the encoding frame rate at the initial setting is complicated. Even if the generated code amount for the frame is increased, underflow can be almost certainly prevented.
[0062]
(3) Encoding control processing procedure
An encoding control processing procedure in the encoding control processing unit 11 will be described with reference to a flowchart shown in FIG.
[0063]
That is, when a predetermined input operation for executing, for example, streaming is performed through, for example, an input unit (not shown), the encoding control processing unit 11 proceeds from the start step of the routine RT to the next step SP1.
[0064]
In step SP1, the encoding control processing unit 11 sets an initial value of the encoding frame rate from the encoding frame rate table TB (FIG. 5) based on the moving image data D1 stored in the image reordering buffer 21, After transmitting the switching control data D24 generated according to the set initial value to the encoding processing unit 10, the process proceeds to the next step SP2.
[0065]
In step SP2, the encoding control processing unit 11 causes the encoding processing unit 10 to execute the intra-frame encoding for the first frame, and proceeds to the next step SP3.
[0066]
In step SP3, the encoding control processing unit 11 causes the encoding processing unit 10 to execute inter-frame encoding for the second frame, and proceeds to the next step SP4.
[0067]
In step SP4, the encoding control processing unit 11 determines whether or not the error notification data D4 has been received. Here, if a negative result is obtained, this means that the intra-frame coded data D2 or the inter-frame coded D3 obtained by causing the coding processing unit 10 to perform coding in step SP2 or SP3 is transmitted. Indicates that no transmission error has occurred. At this time, the encoding control processing unit 11 returns to step SP3 and continues to execute inter-frame encoding for the third frame.
[0068]
As described above, the encoding control processing unit 11 repeats the processing of step SP3 every time a negative result is obtained in step SP4, thereby performing the processing on the frames after the first frame based on the encoding frame rate initially set in step SP1. The interframe coding is sequentially performed.
[0069]
On the other hand, if a positive result is obtained in step SP4, this means that the intra-frame coded data D2 or inter-frame coding obtained by causing the coding processing unit 10 to perform coding in step SP2 or SP3. This indicates that a transmission error has occurred when D3 was transmitted, and at this time, the encoding control processing unit 11 proceeds to the next step SP5.
[0070]
In step SP5, the encoding control processing unit 11 selects an encoding frame rate reduced by one stage from the encoding frame rate initially set in step SP1, based on the encoding frame rate table TB (FIG. 5). After transmitting the switching control data D24 generated according to the selected encoding frame rate to the encoding processing unit 10, the process proceeds to the next step SP6.
[0071]
In step SP6, the encoding control processing unit 11 instructs the encoding processing unit 10 to execute the intra-frame encoding for the refresh target frame RF (FIG. 2) to be encoded next to the time when the positive result is obtained in step SP4. Then, the process proceeds to the next step SP7.
[0072]
In step SP7, the coding control processing unit 11 performs the inter-frame coding on the first refreshed frame Fr10 (FIG. 2) among the refreshed frames after the refresh target frame RF with respect to the coding processing unit 10. Then, the process proceeds to the next step SP8.
[0073]
In step SP8, the encoding control processing unit 11 performs the second refresh based on the interframe encoded data D3 obtained by executing the interframe encoding on the first refreshed frame Fr10 in step SP7. The occupation amount P1 in the VBV buffer immediately before the frame data D10 corresponding to the subsequent frame Fr11 (FIG. 2) is inter-coded is calculated, and the process proceeds to the next step SP9.
[0074]
In step SP9, the encoding control processing unit 11 determines whether or not the occupation amount P1 calculated in step SP8 has exceeded 最大 of the maximum value Vmax.
[0075]
If a negative result is obtained here, this means that if the generated code amount for each frame after returning to the coding frame rate at the initial setting increases, an underflow may occur. At this time, the encoding control processing unit 11 returns to step SP7 and continues to execute inter-frame encoding.
[0076]
As described above, the encoding control processing unit 11 repeats the processing of steps SP7 and SP8 every time a negative result is obtained in step SP9, thereby obtaining the remaining refreshed frames based on the encoding frame rate reduced in step SP5. (FIG. 2) corresponding to Fr11, Fr12... (FIG. 2) are sequentially executed, and the occupation amounts P2, P3... In the VBV buffer immediately before the execution are calculated.
[0077]
On the other hand, if an affirmative result is obtained in step SP9, this means that the underflow is almost certainly caused even if the generated code amount for each frame after returning to the encoding frame rate at the initial setting increases. In this case, the encoding control processing unit 11 proceeds to step SP10.
[0078]
In step SP10, the coding control processing unit 11 returns the coding frame rate reduced in step SP5 to the coding frame rate initialized in step SP1, returns to step SP3, and returns to the initially set coding frame rate. , The inter-frame coding is continuously executed.
[0079]
As described above, the encoding control processing unit 11 transmits the code of the initial setting to the encoding processing unit 10 according to the loop of steps SP2 and SP3 (hereinafter referred to as a normal processing loop) until receiving the error notification data D4. When the error notification data D4 is received, the intra-frame refresh is performed at the same time as the intra-refresh is performed at the same time when the error notification data D4 is received.
[0080]
Thereafter, the encoding control processing unit 11 performs inter-frame encoding on a frame-by-frame basis based on the encoding frame rate reduced by one step according to a loop of steps SP7 and SP8 (hereinafter, referred to as a reduction processing loop). .., Or Pn in the VBV buffer (FIG. 7) immediately before the execution is monitored in frame units. When the occupancy exceeds the threshold value Vthr, which is 2/3 of the maximum value Vmax, the normal operation is resumed. A processing loop is executed.
[0081]
(4) Operation and effect
In the above configuration, the encoding control processing unit 11 as the encoding control device instructs the encoding processing unit 10 to perform inter-frame encoding on each frame data D10 corresponding to frames after the first frame in the moving image. By doing so, the code amount is significantly reduced as compared with the moving image data D1.
[0082]
In this state, upon receiving the error notification data D4 from the image decoding device 6, the encoding control processing unit 11 instructs the encoding processing unit 10 to execute the refresh target frame to be encoded next to the time when the error notification data D4 is received. Intra-frame encoding is performed on frame data D10 corresponding to RF.
[0083]
After that, the encoding control processing unit 11 causes the encoding processing unit 10 to sequentially perform inter-frame encoding on each frame data D10 corresponding to the refreshed frames Fr10, Fr11,... After the refresh target frame RF. At the same time, the coding frame rate after the refresh target frame RF is reduced by one step from the initially set coding frame rate according to the coding frame rate table TB (FIG. 5).
[0084]
Therefore, the encoding control processing unit 11 performs the intra refresh by an amount corresponding to securing a longer encoding time AT for one frame after the intra refresh than the encoding time BT for one frame before the intra refresh (FIG. 7). , The underflow can be prevented without suppressing the code amount to be generated in several frames after the execution, and as a result, the intra refresh can be executed without deteriorating the image quality of the frame itself. .
[0085]
In addition, in the related art, the frame rate is changed based on the generated code amount or the like when the intra refresh is executed at regular intervals regardless of whether or not an actual restoration error is generated or not in the image decoding device 6. In the case where the complexity of the picture in each frame in D1 was different, the fluctuation of the frame rate became larger at regular intervals, whereas the encoding control processing unit 11 Since the intra-refresh is executed only when D4 is received and the encoding frame rate is reduced, the fluctuation of the frame rate is equivalent to keeping the encoding frame rate constant when no restoration error actually occurs. Rate can be significantly reduced, and therefore the image quality of the entire moving image, such as uneven motion or smoothness, deteriorates. It can also be prevented.
[0086]
Further, the encoding control processing unit 11 determines the code amount of the VBV buffer immediately before encoding the frame data D10 for each frame data D10 corresponding to the frames Fr10, Fr11... (FIG. 2) after the refresh target frame RF. .. Are calculated, and when the calculated result exceeds a predetermined threshold value Vthr in the VBV buffer, the coding frame rate is returned to the state of the encoding frame rate at the initial setting.
[0087]
In this case, the encoding control processing unit 11 sequentially calculates the code amounts P1, P2, P3,... Of the VBV buffer immediately before encoding for each frame, so that the image quality of the frame itself deteriorates (underflow). The timing at which inter-frame coding can be executed can be detected quickly based on the coding frame rate at the time of initialization, and the coding frame rate at the time of initialization can be quickly returned.
[0088]
As a result, the encoding control processing unit 11 can shorten the encoding time AT which is longer than the encoding time BT for one frame before the intra refresh (FIG. 7) as much as possible, and thus reduce the moving image data D1. It can be transmitted as fast as possible.
[0089]
According to the above configuration, the intra-refresh is executed only when the error notification data D4 is received, and at the same time, the encoding frame rate is reduced, so that the intra-refresh is performed without deteriorating the image quality of the frame itself. Can be executed, and the fluctuation rate of the frame rate when a restoration error does not actually occur is significantly suppressed as compared with the conventional method, so that the deterioration of the image quality of the entire moving image such as uneven motion and smoothness can be reduced. Can be prevented.
[0090]
(5) Other embodiments
In the above embodiment, when the error notification data D4 is received, an encoding frame rate smaller by one stage than the initially set encoding frame rate is selected based on the encoding frame rate table TB (FIG. 5). However, the present invention is not limited to this, and the occupation amount PX of the VBV buffer when the refresh target frame RF (FIG. 2) upon receiving the error notification data D4 is intra-refreshed (FIG. 7) , The reduction rate of the encoding frame rate may be selected.
[0091]
More specifically, the encoding control processing unit 11 causes the encoding processing unit 10 to execute the intra-frame encoding for the refresh target frame RF (FIG. 2) in step SP6 (FIG. 8), and then sets the VBV occupation amount. The calculating unit 30 calculates the occupation amount PX in the VBV buffer based on the refresh coded data D5 obtained by the execution, and when the calculated occupation amount PX is greatly apart from the minimum value Vmin of the VBV buffer, After the frame rate control unit 32 selects a coding frame rate that is smaller than the initially set coding frame rate by, for example, one step, the process proceeds to next step SP7 and performs inter-frame coding of the refreshed frame Fr10 (FIG. 2). Is executed.
[0092]
On the other hand, when the calculated occupation amount PX is close to the minimum value Vmin of the VBV buffer, the encoding control processing unit 11 causes the frame rate control unit 32 to perform two steps, three steps,. After selecting an encoding frame rate that is smaller by a plurality of steps as in..., The process proceeds to the next step SP7 to execute inter-frame encoding for the refreshed frame Fr10 (FIG. 2).
[0093]
As described above, the reduction rate of the coding frame rate is determined according to the occupancy PX (FIG. 7) of the VBV buffer at the time when the refresh target frame RF (FIG. 2) upon receiving the error notification data D4 is intra-refreshed. If this is selected, the difference code amount (the difference between the code amount at the time of executing the intra refresh and the code amount generated by the inter-frame coding which should have been originally executed at the time of the execution) is cancelled. The encoding time AT (FIG. 7) can be secured accurately without waste.
[0094]
Further, in the above-described embodiment, the case where the initially set encoding frame rate is reduced by one step when the error notification data D4 is received has been described. However, the present invention is not limited to this. When the error notification data D4 is received during the execution of the inter-frame encoding based on the encoding frame rate, the encoding frame rate may be further reduced.
[0095]
Specifically, for example, when the encoding control processing unit 11 receives the error notification data D4 again during execution of a loop of steps SP7 and SP8 (hereinafter, referred to as a withdrawal processing loop), The coding frame rate reduced by one step in step SP5 is further reduced by one step, so that inter-frame coding is performed on a frame basis based on the coding frame rate reduced by two steps from the coding frame rate at the time of initial setting. , Or Pn of the VBV buffer (FIG. 7) immediately before the execution is monitored in frame units. When the occupancy exceeds the threshold value Vthr which is 2/3 of the maximum value Vmax, the normal operation is resumed. Execute a processing loop. In this way, even if the error notification data D4 is continuously received, it is possible to prevent the image quality from deteriorating.
[0096]
Further, in the above-described embodiment, the case where the encoding frame rate is set according to the encoding frame rate table TB (FIG. 5) stored in the internal memory in advance has been described. The encoding frame rate may be set according to a predetermined operation using the amount of generated code of the encoded data D5.
[0097]
Furthermore, in the above-described embodiment, a case has been described where the error detection unit 6B (FIG. 1) detects a transmission error of the intra-frame encoded data D2 and the plurality of inter-frame encoded data D3 accumulated in the internal buffer 6A. However, in addition to this, the present invention may be configured to detect a restoration error that actually occurs during the decoding process of the image decoding device 6. What is necessary is just to detect the restored error.
[0098]
Further, in the above-described embodiment, a case has been described in which the encoding control processing unit 11 having the hardware configuration described above with reference to FIG. 3 executes the encoding control processing in accordance with the encoding control processing procedure described above with reference to FIG. However, the present invention is not limited to this, and instead of such a hardware configuration, an encoding control process is executed according to an encoding control program for executing an encoding control process along the encoding control process procedure. May be.
[0099]
In this case, the encoding control processing unit 11 stores the encoding control program in an internal ROM (not shown) or the like, and expands the encoding control program in an internal RAM (not shown) or the like to thereby perform the encoding control. The processing procedure may be executed, or the encoding control processing procedure may be executed by installing a program storage medium storing the encoding control program.
[0100]
As a program storage medium for installing the encoding control program for executing the above-described series of encoding control processes in the encoding control processing unit 11 and making it executable, for example, a floppy disk, CD -Not only a package medium such as a ROM (Compact Disc-Read Only Memory) and a DVD (Digital Versatile Disc), but also a semiconductor memory or a magnetic disk in which an encoding control program is temporarily or permanently stored may be realized. . As a means for storing the encoding control program in these program storage media, a wired or wireless communication medium such as a local area network, the Internet, or digital satellite broadcasting may be used, or via various communication interfaces such as a router or a modem. It may be stored.
[0101]
【The invention's effect】
As described above, according to the present invention, among a plurality of frames forming a moving image, an intra-frame encoding is performed on a first frame, and an inter-frame encoding is performed on each frame after the first frame. And the error notification data indicating the occurrence of a decoding error is received from the decoding side that decodes the frame on which the intra-frame coding or the inter-frame coding has been performed. After performing the intra-frame coding for the next target frame, the inter-frame coding is sequentially performed again for each frame after the next target frame, and the number of coded frames per unit time. Is reduced to a predetermined state.
[0102]
In this case, the intra-frame coding is performed and the coding frame rate is reduced only when error notification data is received from the decoding side. Not only is the encoding frame rate increased by a small amount to prevent the deterioration of the image quality of the frame itself, but also the frame rate in the case where no decoding error actually occurs on the decoding side is fixed. By suppressing the rate of change of the frame rate, it is possible to prevent the deterioration of the image quality of the entire moving image such as uneven motion or smoothness, and thus it is possible to prevent the deterioration of the image quality as compared with the related art.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a moving image transmission system.
FIG. 2 is a schematic diagram for explaining a temporal relationship between error notification data and intra refresh.
FIG. 3 is a block diagram illustrating a configuration of an image encoding device.
FIG. 4 is a schematic diagram illustrating a frame skip example (1).
FIG. 5 is a schematic diagram illustrating an example of an encoding frame rate table.
FIG. 6 is a schematic diagram illustrating a frame skip example (2).
FIG. 7 is a schematic diagram illustrating a transition example of a code amount in a VBV buffer.
FIG. 8 is a flowchart showing an encoding control processing procedure.
FIG. 9 is a schematic diagram used for describing an encoding example.
[Explanation of symbols]
1 ... moving image transmission system, 3 ... image encoding device, 6 ... image decoding device,
8: Network, 10: Encoding processing unit, 11: Encoding control processing unit, 30: VBV occupancy calculation unit, 32: Frame rate control unit, 33: Encoding switching control unit

Claims (5)

動画像を形成する複数のフレームのうち、最初の上記フレームに対してフレーム内符号化を実行させると共に、当該最初の上記フレーム以降の各上記フレームに対してフレーム間符号化を順次実行させる第1ステップと、
上記フレーム内符号化又は上記フレーム間符号化された上記フレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けたとき、当該受けた時点の次に符号化対象の上記フレームである次対象フレームに対して上記フレーム内符号化を実行させる第2のステップと、
上記次対象フレーム以降の各上記フレームに対して上記フレーム間符号化を順次実行させ直すと共に、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを所定の引下率で引き下げさせる第3のステップと
を具えることを特徴とする符号化制御方法。
Among a plurality of frames forming a moving image, a first frame in which intra-frame encoding is performed on the first frame and an inter-frame encoding is sequentially performed on each of the frames subsequent to the first frame. Steps and
When receiving the error notification data indicating the occurrence of a decoding error from the decoding side that decodes the frame that has been subjected to the intra-frame encoding or the inter-frame encoding, the frame to be encoded next to the received time is A second step of performing the above-described intra-frame encoding on a certain next target frame;
A third method of sequentially re-executing the inter-frame coding for each of the frames following the next target frame and reducing the coding frame rate representing the number of frames to be coded per unit time at a predetermined reduction rate; Encoding control method, comprising the steps of:
上記第3のステップでは、
上記次対象フレーム以降の各上記フレームが順次上記フレーム間符号化される毎に、当該符号化直前における仮想バッファの占有量を算出する占有量算出ステップと、
上記占有量算出ステップで算出された上記占有量が所定の閾値を越えたとき、上記所定の引下率で引き下げさせた上記符号化フレームレートを元の状態にまで引き戻させる引戻ステップと
を具えることを特徴とする請求項1に記載の符号化制御方法。
In the third step,
An occupancy calculation step of calculating the occupancy of the virtual buffer immediately before the encoding, each time the frames after the next target frame are sequentially inter-frame encoded,
When the occupancy calculated in the occupancy calculation step exceeds a predetermined threshold, the coding frame rate reduced at the predetermined reduction rate is returned to the original state. The encoding control method according to claim 1, wherein
上記第3のステップでは、
上記符号化フレームレートの引下率を、上記次対象フレームが上記フレーム内符号化された時点における仮想バッファの占有量に応じて決定する
ことを特徴とする請求項1に記載の符号化制御方法。
In the third step,
The encoding control method according to claim 1, wherein the reduction rate of the encoding frame rate is determined according to an occupation amount of a virtual buffer when the next target frame is encoded in the intra-frame. .
上記第3のステップでは、
上記次対象フレームが上記フレーム内符号化された時点における仮想バッファの占有量に応じて、上記符号化フレームレートの引下率を段階的に表す所定のテーブルから選択する
ことを特徴とする請求項3に記載の符号化制御方法。
In the third step,
4. The method according to claim 1, wherein said next target frame is selected from a predetermined table indicating a step-down rate of said encoding frame rate in accordance with an occupation amount of a virtual buffer at a time when said intra-frame encoding is performed. 3. The encoding control method according to 3.
動画像を形成する複数のフレームのうち、最初の上記フレームに対してフレーム内符号化を実行させると共に、当該最初の上記フレーム以降の各上記フレームに対してフレーム間符号化を順次実行させる第1ステップと、
上記フレーム内符号化又は上記フレーム間符号化された上記フレームを復号する復号化側から復号エラーの発生を表すエラー通知データを受けたとき、当該受けた時点の次に符号化対象の上記フレームである次対象フレームに対して上記フレーム内符号化を実行させる第2のステップと、
上記次対象フレーム以降の各上記フレームに対して上記フレーム間符号化を順次実行させ直すと共に、単位時間当たりに符号化すべきフレーム数を表す符号化フレームレートを所定の引下率で引き下げさせる第3のステップと
を具えることを特徴とする符号化制御プログラム。
Among a plurality of frames forming a moving image, a first frame in which intra-frame encoding is performed on the first frame and an inter-frame encoding is sequentially performed on each of the frames subsequent to the first frame. Steps and
When receiving the error notification data indicating the occurrence of a decoding error from the decoding side that decodes the frame that has been subjected to the intra-frame encoding or the inter-frame encoding, the frame to be encoded next to the received time is A second step of performing the above-described intra-frame encoding on a certain next target frame;
A third method of sequentially re-executing the inter-frame coding for each of the frames following the next target frame and reducing the coding frame rate representing the number of frames to be coded per unit time at a predetermined reduction rate; An encoding control program, comprising the steps of:
JP2002357949A 2002-12-10 2002-12-10 Encoding control method and encoding control program Expired - Fee Related JP4069444B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002357949A JP4069444B2 (en) 2002-12-10 2002-12-10 Encoding control method and encoding control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002357949A JP4069444B2 (en) 2002-12-10 2002-12-10 Encoding control method and encoding control program

Publications (2)

Publication Number Publication Date
JP2004193850A true JP2004193850A (en) 2004-07-08
JP4069444B2 JP4069444B2 (en) 2008-04-02

Family

ID=32757810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002357949A Expired - Fee Related JP4069444B2 (en) 2002-12-10 2002-12-10 Encoding control method and encoding control program

Country Status (1)

Country Link
JP (1) JP4069444B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131143A (en) * 2006-11-17 2008-06-05 Sony Computer Entertainment Inc Encoding processor, and encoding processing method
JP2009049577A (en) * 2007-08-15 2009-03-05 Sony Corp Monitoring device, monitoring method and monitoring system
JP2013078024A (en) * 2011-09-30 2013-04-25 Panasonic Corp Image transmitter, and image transmission system having the same
US8660186B2 (en) 2010-12-29 2014-02-25 Samsung Electronics Co., Ltd. Video frame encoding transmitter, encoding method thereof and operating method of video signal transmitting and receiving system including the same
JP2014123957A (en) * 2008-07-28 2014-07-03 Vantrix Corp Data streaming through time-varying transport media
US9112947B2 (en) 2008-07-28 2015-08-18 Vantrix Corporation Flow-rate adaptation for a connection of time-varying capacity
US9137551B2 (en) 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
WO2022168516A1 (en) * 2021-02-08 2022-08-11 ソニーセミコンダクタソリューションズ株式会社 Information processing device and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193821A (en) * 1993-12-27 1995-07-28 Canon Inc Animation picture and its method
JPH10229561A (en) * 1997-02-13 1998-08-25 Nippon Telegr & Teleph Corp <Ntt> Image encoding control method
JP2002077910A (en) * 2000-08-25 2002-03-15 Victor Co Of Japan Ltd Variable image rate encoder, variable image rate decoder, variable image rate encoding method and variable image rate decoding method
JP2002262297A (en) * 2001-02-28 2002-09-13 Toshiba Corp Moving image coder and moving image coding method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193821A (en) * 1993-12-27 1995-07-28 Canon Inc Animation picture and its method
JPH10229561A (en) * 1997-02-13 1998-08-25 Nippon Telegr & Teleph Corp <Ntt> Image encoding control method
JP2002077910A (en) * 2000-08-25 2002-03-15 Victor Co Of Japan Ltd Variable image rate encoder, variable image rate decoder, variable image rate encoding method and variable image rate decoding method
JP2002262297A (en) * 2001-02-28 2002-09-13 Toshiba Corp Moving image coder and moving image coding method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131143A (en) * 2006-11-17 2008-06-05 Sony Computer Entertainment Inc Encoding processor, and encoding processing method
JP4753204B2 (en) * 2006-11-17 2011-08-24 株式会社ソニー・コンピュータエンタテインメント Encoding processing apparatus and encoding processing method
US8848790B2 (en) 2006-11-17 2014-09-30 Sony Corporation Encoding processing apparatus and method for a moving image
JP2009049577A (en) * 2007-08-15 2009-03-05 Sony Corp Monitoring device, monitoring method and monitoring system
JP2014123957A (en) * 2008-07-28 2014-07-03 Vantrix Corp Data streaming through time-varying transport media
US9112947B2 (en) 2008-07-28 2015-08-18 Vantrix Corporation Flow-rate adaptation for a connection of time-varying capacity
US8660186B2 (en) 2010-12-29 2014-02-25 Samsung Electronics Co., Ltd. Video frame encoding transmitter, encoding method thereof and operating method of video signal transmitting and receiving system including the same
US9137551B2 (en) 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
US10499071B2 (en) 2011-08-16 2019-12-03 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
JP2013078024A (en) * 2011-09-30 2013-04-25 Panasonic Corp Image transmitter, and image transmission system having the same
WO2022168516A1 (en) * 2021-02-08 2022-08-11 ソニーセミコンダクタソリューションズ株式会社 Information processing device and method

Also Published As

Publication number Publication date
JP4069444B2 (en) 2008-04-02

Similar Documents

Publication Publication Date Title
JP3923898B2 (en) Image coding method and apparatus
US8160152B2 (en) Moving image decoding apparatus and moving image coding apparatus
US6580829B1 (en) Detecting and coding flash frames in video data
JP2004007751A (en) Image decoding method and apparatus thereof
US9100653B2 (en) Memory transfer controller and method of transfer control of video line data and macroblock data
US7079580B2 (en) Moving picture encoder, moving picture encoding method, moving picture encoding program used therewith, and storage medium storing the same
JP4069444B2 (en) Encoding control method and encoding control program
JPH07135659A (en) Dynamic image decoding controller
JP2003032689A (en) Image coder, image decoder and moving image transmission system
JP2002027483A (en) Picture coding system, picture decoding system, and storage media
JP4276420B2 (en) Motion compensation method
JP2007288604A (en) System and method for transmitting video
JP2003116136A (en) Moving picture decoder
JPH07193821A (en) Animation picture and its method
JP2002010263A (en) Motion picture encoding apparatus and its method
JP2009171360A (en) Video/audio signal sending apparatus and video signal sending method
JP2508576B2 (en) Video coding system
JP4616537B2 (en) Video communication system
JP2001359102A (en) Image coding method and image coder
JP4485409B2 (en) Video decoding device
JP2002374535A (en) Image processor, image processing method, recording medium and program
JPH10229561A (en) Image encoding control method
JPH08294123A (en) Moving image data transmitter
US20230283804A1 (en) Computer-readable recording medium storing transmission program, transmission apparatus, and transmission method
JP4851270B2 (en) Moving picture decoding apparatus and decoding method.

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 (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event 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