JP4273386B2 - Encoding apparatus, encoding method, program, and recording medium - Google Patents
Encoding apparatus, encoding method, program, and recording medium Download PDFInfo
- Publication number
- JP4273386B2 JP4273386B2 JP2002104315A JP2002104315A JP4273386B2 JP 4273386 B2 JP4273386 B2 JP 4273386B2 JP 2002104315 A JP2002104315 A JP 2002104315A JP 2002104315 A JP2002104315 A JP 2002104315A JP 4273386 B2 JP4273386 B2 JP 4273386B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- encoding
- gop
- encoded
- difficulty level
- 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)
Description
【0001】
【発明の属する技術分野】
本発明は、符号化装置および符号化方法、プログラム、並びに記録媒体に関し、特に、フィードバック型レート制御において、ビット補給レート制御を行う場合に用いて好適な、符号化装置および符号化方法、プログラム、並びに記録媒体に関する。
【0002】
【従来の技術】
近年、映像データおよび音声データを圧縮して情報量を減らす方法として、種々の圧縮符号化方法が提案されており、その代表的なものにMPEG2(Moving
Picture Experts Group Phase 2)がある。
【0003】
このような画像圧縮方式において、良好なエンコード画質を得る方法として、TM5(Test Model 5)がある。TM5のステップ1においては、ピクチャ単位に与えるターゲットビットの算出を行う。ターゲットビットの算出においては、ピクチャタイプ別のGC(Global Complexity)のそれぞれの比率に応じて、そのGOP(Group of Picture)内の残りのピクチャに割り当てることができるビット量Rを比例配分して、各ピクチャに割り当てるビット量を算出する。
【0004】
TM5は、GOPあたりの発生ビット量をほぼ一定にするために優れた方法であるが、固定レート符号化を行う場合には、必ずしも、GOPの発生ビット量を一定にする必要はない。固定レート符号化においては、VBV(Video Buffering Verifier)バッファの占有量が、規定値をオーバーフロー、あるいはアンダーフローしないようにしなければならない。
【0005】
TM5においては、GOPあたりの発生ビット量がほぼ一定であるから、VBVバッファがオーバーフローあるいはアンダーフローすることはない。しかしながら、TM5においては、低いビットレートで符号化した場合に、バッファ容量を有効利用することができない。例えば、MPEGのMP@PLにおいて、TM5を適用した場合、VBVバッファ容量は約1.8Mbitであるのに対して、バッファから引き抜かれる1枚あたりのピクチャのビット量が少ないため、約1.8Mbitを有効に利用することができない。
【0006】
このように、入力される絵柄に関わらず、一定量のビット量を割り当ててしまうことにより、符号化難易度が高い絵柄については、符号化歪みが顕著に発生してしまい、一方、符号化難易度が低い絵柄は、符号化歪みが少ないため、全体として、むらの多い不安定な画像になってしまう。
【0007】
このような問題を解決するために、符号化難易度が高い絵柄には、バッファがアンダーフローしない範囲で、より多くのビット量を配分し、一方、符号化難易度が低い絵柄には、バッファがオーバーフローしない範囲で、絵柄に適した少ないビット量を配分する必要がある。
【0008】
そこで、本出願人は、特開平10−75443において、映像データの部分毎の絵柄の複雑さに応じて発生ビット量を調節し、全体として、圧縮後の映像の品質を向上させることができるようにした、映像データ圧縮装置およびその方法について開示している。
【0009】
TM5において、GOPの残りのピクチャに割り当てることができる使用可能ビット量Rは、レートコントロールで重要なパラメータである。例えば、GOPの前半において、複雑な絵柄の画像が続いたために、たくさんのビット量を割り当ててしまうと、GOPの後半で、ビット量Rが、極端に少なくなってしまったり、あるいは、負の数になってしまう。
【0010】
これに対して、本出願人が特開平10−75443において開示したビット補給レート制御とは、これからエンコードしようとする複数枚のピクチャに対して割り当てられている使用可能ビット量Rに、そのエンコード対象の画像難易度やVBVバッファ占有量に応じて、ビット量を加える、あるいは減じる(以下、加えられる、あるいは減じられるビットをsupplementと称する)ことを特徴とするレート制御方式である。
【0011】
【発明が解決しようとする課題】
以前提案されたビット補給レート制御は、これからエンコードしようとする複数枚のピクチャ画像難易度等の情報が全て既知である場合、すなわちエンコード情報を先読みしたフィードフォワード(Feed Forward)型レート制御に適用されていたもので、例えば、GOPの15枚のデータを蓄積した後、その画像符号化難易度を判断していたので、その情報蓄積に一定の遅延を生じてしまうものである。
【0012】
しかしながら、先読み情報を得ることができないフィードバック(Feed Back)型レート制御では、未来のVBV余裕度を正確に見積もることができないため、sum_supplement(以下、sum_supと称する)の最大値および最小値をビットレートや使用可能VBVサイズによって決定した固定値を用いざるを得なかった。しかしながら、特に、sum_supの最大値が固定値の場合、ピクチャの発生量次第によってはVBVアンダーフローを起こしやすくなるなどの問題があり、VBVアンダーフローを起こさないようにするためには、VBV余裕度に応じて、sum_supの最大値を決定する必要があった。
【0013】
本発明はこのような状況に鑑みてなされたものであり、フィードバック型レート制御において、ビット補給レート制御を行うことができるようにするものである。
【0014】
【課題を解決するための手段】
本発明の符号化装置は、非圧縮データの符号化難易度を検出する第1の検出手段と、非圧縮データを、GOPを基準として圧縮符号化する符号化手段と、符号化手段により過去に符号化された直前のGOPに含まれる非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出手段と、非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、第2の検出手段により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる非圧縮データに対して割り当てられる仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値として設定する設定手段と、これから符号化されるGOPのビット補給量を、設定手段により設定された合計値の最大値を満たし、かつ、第1の検出手段により検出された、符号化手段により過去に符号化されたGOPに含まれる非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、符号化難易度が第1の値よりも低い第2の値より低い場合、負の値となるように、符号化難易度が第1の値と第2の値との間となる場合、0となるように算出する算出手段とを備えることを特徴とする。
【0015】
シーンチェンジのIピクチャと1つ前のIピクチャとの、符号化難易度の差を検出する第3の検出手段と、第3の検出手段により、符号化難易度の差が検出された場合、第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも低いとき、設定手段により設定されたビット補給量の合計値の最大値が多くなるように、第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも高いとき、設定手段により設定されたビット補給量の合計値の最大値が少なくなるように、ビット補給量の合計値の最大値を再設定する再設定手段とを更に備えさせるようにすることができる。
【0016】
本発明の符号化方法は、非圧縮データの符号化難易度を検出する第1の検出ステップと、非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、符号化ステップの処理により過去に符号化された直前のGOPに含まれる非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる非圧縮データに対して割り当てられる仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、これから符号化されるGOPのビット補給量を、設定ステップの処理により設定された合計値の最大値を満たし、かつ、第1の検出ステップの処理により検出された、符号化ステップの処理により過去に符号化されたGOPに含まれる非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、符号化難易度が第1の値よりも低い第2の値より低い場合、負の値となるように、符号化難易度が第1の値と第2の値との間となる場合、0となるように算出する算出ステップとを含むことを特徴とする。
【0017】
本発明の記録媒体に記録されているプログラムは、非圧縮データの符号化難易度を検出する第1の検出ステップと、非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、符号化ステップの処理により過去に符号化された直前のGOPに含まれる非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる非圧縮データに対して割り当てられる仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、これから符号化されるGOPのビット補給量を、設定ステップの処理により設定された合計値の最大値を満たし、かつ、第1の検出ステップの処理により検出された、符号化ステップの処理により過去に符号化されたGOPに含まれる非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、符号化難易度が第1の値よりも低い第2の値より低い場合、負の値となるように、符号化難易度が第1の値と第2の値との間となる場合、0となるように算出する算出ステップとを含むことを特徴とする。
【0018】
本発明のプログラムは、非圧縮データの符号化難易度を検出する第1の検出ステップと、非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、符号化ステップの処理により過去に符号化された直前のGOPに含まれる非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる非圧縮データに対して割り当てられる仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、これから符号化されるGOPのビット補給量を、設定ステップの処理により設定された合計値の最大値を満たし、かつ、第1の検出ステップの処理により検出された、符号化ステップの処理により過去に符号化されたGOPに含まれる非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、符号化難易度が第1の値よりも低い第2の値より低い場合、負の値となるように、符号化難易度が第1の値と第2の値との間となる場合、0となるように算出する算出ステップとを含むことを特徴とする。
【0019】
本発明の符号化装置および符号化方法、並びにプログラムにおいては、非圧縮データの符号化難易度が検出され、非圧縮データがGOPを基準として圧縮符号化され、過去に符号化された直前のGOPに含まれる非圧縮データのうちの、フレーム内符号化画像のビット発生量が検出され、非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、検出されたフレーム内符号化画像のビット発生量を減算した値が算出されて、符号化中のGOPに含まれる非圧縮データに対して割り当てられる仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定され、これから符号化されるGOPのビット補給量が、設定された合計値の最大値を満たし、かつ、過去に符号化されたGOPに含まれる非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、符号化難易度が第1の値よりも低い第2の値より低い場合、負の値となるように、符号化難易度が第1の値と第2の値との間となる場合、0となるように算出される。
【0020】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【0021】
図1は、本発明を適応したエンコーダ1の構成を示すブロック図である。
【0022】
画像並び替え部12は、入力された非圧縮映像データを符号化順に並べ替える。走査変換・マクロブロック化部13は、ピクチャ・フィールド変換を行い、例えば、非圧縮映像データが映画の映像データである場合、3:2プルダウン処理等を行う。イントラAC算出部14は、画像並び替え部12および走査変換・マクロブロック化部13により処理され、Iピクチャに圧縮符号化されるピクチャから、イントラAC(intra AC)を算出する。
【0023】
Iピクチャについては、他のピクチャの参照なしに圧縮符号化されるため、後述するME残差を求めることができない。従って、Iピクチャの符号化難易度を求めるために、ME残差に代わるパラメータとして、イントラACが用いられる。イントラACは、MPEG方式におけるDCT処理単位のDCTブロックごとの映像データとの分散値の総和として定義されるパラメータであって、映像の複雑さを指標し、映像の絵柄の難しさおよび圧縮後のデータ量と相関性を有する。すなわち、イントラACとは、DCTブロック単位で、それぞれの画素の画素値から、ブロック毎の画素値の平均値を引いたものの絶対値和の、画面内における総和である。イントラACは、次の式(1)で示される。
【0024】
【数1】
・・・(1)
【0025】
また、式(1)において、式(2)が成り立つ。
【数2】
・・・・(2)
【0026】
イントラAC算出部14は、算出されたイントラACの値を、レートコントロール部15の難易度算出部32に出力する。
【0027】
演算処理部16は、動き補償部25から供給される動き補償情報を基に、供給された映像データに対して動き補償を行い、DCT部18に対して出力する。DCT部18は、演算処理部16から入力された映像データに対して、例えば、16画素×16画素のマクロブロック単位に離散コサイン変換(DCT)処理を施し、時間領域のデータから周波数領域のデータに変換して、量子化部19に対して出力する。
【0028】
量子化部19は、DCT部18から入力された周波数領域のデータを、レートコントロール部15の量子化インデックス決定部35から供給される量子化インデックスQで量子化し、量子化データとしてVLC(Variable Length Code;可変長符号化)部20および逆量子化部22に対して出力する。
【0029】
VLC部20は、量子化部19から入力された量子化データに対し、所定の変換テーブルに基づく可変長符号化処理を行い、その結果得られる可変長符号化データをバッファ21に出力する。
【0030】
バッファ21は、入力された符号化データをバッファリングし、符号化ビットストリームとして、順次、出力する。
【0031】
逆量子化部22は、量子化部19から入力された量子化データを、量子化部19が実行した量子化の量子化ステップで逆量子化し、逆量子化データとして逆DCT部23に対して出力する。
【0032】
逆DCT部23は、逆量子化部22から入力される逆量子化データに対して逆DCT処理を行い、演算処理部24に対して出力する。
【0033】
演算処理部24は、動き補償部25の出力データ、および逆DCT部23の出力データを加算し、動き補償部25に対して出力する。動き検出部17は、圧縮対象となるピクチャ(入力ピクチャ)の注目マクロブロックと、参照されるピクチャ(参照ピクチャ)との間の差分値の絶対値和あるいは自乗値和が最小となるようなマクロブロックを探し、動きベクトルを求めて、動き補償部25に出力する。動き補償部25は、演算処理部24の出力データに対して、動き検出部17から入力される動きベクトルに基づいて動き補償処理を行い、演算処理部24、および演算処理部16に対して出力する。
【0034】
レートコントロール部15は、ME残差算出部31、難易度算出部32、genbit検出部33、ターゲットビット決定部34、および量子化インデックス決定部35で構成され、ターゲットビットおよび量子化インデックスを決定する。
【0035】
ME残差算出部31は、画像の符号化難易度と強い相関があるパラメータであるME残差を算出する。動き予測によって、参照フレームから入力フレームへの差分値の絶対値和などが少なくなるような動きベクトルを求めることができるが、その場合における差分値の絶対値和、あるいは自乗和などで求められる誤差成分のパワーがME残差である。Pピクチャ、およびBピクチャにおいては、ME残差と画像の符号化難易度とは、ほぼ単純な比例関係を有している。
【0036】
難易度算出部32は、ME残差算出部31から入力されるME残差による近似により、式(3)、および、式(4)を用いて、PピクチャおよびBピクチャの符号化難易度Djを算出する。
【数3】
・・・(3)
【数4】
・・・(4)
【0037】
ここで、MEjは、j番目のピクチャにおけるME残差であり、aP、aB、bP、bBは、それぞれ、1次式で近似した場合の傾きと補正値である。
【0038】
また、難易度算出部32はイントラAC算出部14から入力されるイントラACによる近似により、同様にIピクチャの符号化難易度Djを算出し、ターゲットビット決定部34に出力する。
【0039】
そして、難易度算出部32は、それそれのピクチャで算出された符号化難易度Djから、GOP毎の難易度平均avgDを算出する。
【0040】
genbit検出部33は、バッファ21にバッファリングされている符号化データから、直近に符号化されたIピクチャの発生ビット量genbitを検出し、その値を、ターゲットビット決定部34に出力する。
【0041】
ターゲットビット決定部34は、難易度算出部32から入力された符号化難易度Dj、および、genbit検出部33から入力されたIピクチャの発生ビット量genbitに基づいて、各ピクチャタイプのピクチャそれぞれのターゲットビットを算出して、レート制御を行う。
【0042】
すなわち、ターゲットビット決定部34は、後述する処理により、エンコードを終了した過去の画像における難易度などを基に、これからエンコードしようとする複数枚のピクチャに対して割り当てられている使用可能ビット量Rに加えられるsupplementの値(supplementは、正の値である場合、負の値である場合、0である場合がある)を決定する。ターゲットビット決定部34は、この使用可能ビット量R+supplementを基に、ターゲットビットの値を求め、量子化インデックス決定部35に出力する。
【0043】
量子化インデックス決定部35は、ターゲットビット決定部34から入力されたターゲットビットの値に基づいて、量子化インデックスQを生成し、量子化部19に対して出力する。
【0044】
次に、図2のフローチャートを参照して、エンコードを終了した過去の画像における難易度を基にRに加えるsupplementを決定する、ビット補給レート制御処理について説明する。
【0045】
ステップS1において、ターゲットビット決定部34は、現在処理中のピクチャは、GOPの先頭であるか否かを判断する。ステップS1において、GOPの先頭ではないと判断された場合、GOPの先頭であると判断されるまで、ステップS1の処理が繰り返される。
【0046】
ステップS1において、GOPの先頭であると判断された場合、ステップS2において、ターゲットビット決定部34は、難易度算出部32より、前のGOPにおける難易度平均avgDを取得する。
【0047】
ステップS3において、図3、もしくは図6を用いて後述するmax_sum_sup算出処理が実行される。
【0048】
ステップS4において、ターゲットビット決定部34は、avgD > 0x2000かつsum_sup < max_sum_supであるか否かを判断する。ここで、難易度平均avgDと比較されている0x2000は、予め定められた閾値であり、画質を検討しながら要求される画質を得るために設定可能な値である。
【0049】
ステップS4において、avgD > 0x2000かつsum_sup < max_sum_supであると判断された場合、ステップS5において、ターゲットビット決定部34は、使用可能ビット量Rに対して、正の値のsupplementを加える。すなわち、ターゲットビット決定部34は、前のGOPは、ある一定以上の難易度を有していたため、これからエンコードするGOPの難易度を、前のGOPと同程度であると予測して、使用可能ビット量Rに対して、正の値のsupplementを加える。
【0050】
ステップS4において、avgD > 0x2000かつsum_sup < max_sum_supではないと判断された場合、ステップS6において、ターゲットビット決定部34は、avgD < 0x1000、かつsum_sup > min_sum_supであるか否かを判断する。ここで、難易度平均avgDと比較されている0x1000は、予め定められた閾値であり、上述した 0x2000より小さな値(画像難易度が低いことを示す値)であり、画質を検討しながら要求される画質を得るために設定可能な値である。
【0051】
ステップS6において、avgD < 0x1000、かつsum_sup > min_sum_supであると判断された場合、ステップS7において、ターゲットビット決定部34は、使用可能ビット量Rに対して、負の値のsupplementを加える。すなわち、ターゲットビット決定部34は、前のGOPは、ある一定以下の難易度であった(すなわち、簡単な画像であった)ため、これからエンコードするGOPの難易度を、前のGOPと同程度であると予測して、使用可能ビット量Rに対して、負の値のsupplementを加える。
【0052】
ステップS6において、avgD < 0x1000、かつsum_sup > min_sum_supではなかったと判断された場合、ステップS8において、ターゲットビット決定部34は、supplement = 0とする。すなわち、ターゲットビット決定部34は、使用可能ビット量Rに対して、supplementの増減を行わない。
【0053】
ステップS5、ステップS7、もしくはステップS8の処理の終了後、ステップS9において、ターゲットビット決定部34は、ステップS5、ステップS7、もしくはステップS8の処理において用いられたsupplementの値を用いて、sum_sup = sum_sup + supplementとし、処理は、ステップS1に戻り、それ以降の処理が繰り返される。
【0054】
図2を用いて説明した処理により、エンコードを終了した過去の画像における難易度を基に、使用可能ビット量Rに加える、あるいは、減少されるsupplementの値が決定される。例えば、GOP単位で、R+supplemet(supplementは、正の値であるか、負の値であるか、もしくは0である)が決定される場合、前のGOPの画像難易度(イントラAC、あるいは、ME残差等)の平均値を基に、これからエンコードするGOPの難易度が前のGOPの難易度と同程度であると予測して、使用可能ビット量Rに対して、その難易度に応じたsupplementが加えられる。
【0055】
ここでは、画像難易度をイントラAC、あるいは、ME残差を用いて算出するものとして説明したが、画像難易度は、それ以外のパラメータを用いて算出するようにしても良い。
【0056】
また、supplementの具体的な値の算出方法は、例えば、特開平10−75443に開示されている方法でも良いし、それ以外の方法で、要求される画質を得ることができるsupplementの値を用いるようにしても良い。
【0057】
また、ここでは、前の1GOPにおける難易度平均avgDを用いるものとして説明したが、難易度算出部32は、1GOPにおける難易度平均avgDに代わって、例えば、複数のGOP、もしくは、GOPの一部における難易度平均を求めるようにしても良いし、更に、単純な難易度平均ではなく、必要に応じて、重み付け和や重み付け平均を算出するようにしても良い。
【0058】
次に、図2のステップS3において実行されるmax_sum_sup算出処理について説明する。
【0059】
LongGOPにおいては、Iピクチャの発生量が大きくなる傾向がある。従って、ピクチャの発生量によってVBVアンダーフローを起こすことを防ぐためには、VBVバッファサイズからエンコードを終了した直近のIピクチャのビット発生量を引いたものをsum_supの最大値(max_sum_sup)とすればよい。
【0060】
図3のフローチャートを参照して、図2のステップS3において実行されるmax_sum_sup算出処理1について説明する。
【0061】
ステップS21において、genbit検出部33は、直近のIピクチャの発生符号量genbitを検出する。ターゲットビット決定部34は、genbit検出部33から、genbitの値の入力を受ける。
【0062】
ステップS22において、ターゲットビット決定部34は、sum_supの最大値であるmax_sum_supの値を、max_sum_sup=VBVバッファサイズ−Iピクチャ発生量とし、処理は、図2のステップS4に戻る。
【0063】
図3を用いて説明した処理により、図4に示すように、VBVサイズからIピクチャ発生量を引いた、実線矢印の合計量が、VBV余裕度として、次のGOPのsum_supの最大値とされる。これにより、アンダーフローしやすい絵柄ではsupplementが与えられにくくなり、アンダーフローに対する余裕がある絵柄に対してはsupplementが与えられやすくなる。すなわち、Iピクチャのビット発生量が多いために発生するVBVアンダーフローを防ぐことができる。
【0064】
しかしながら、図3を用いて説明した処理では、シーンチェンジが起きた場合に不具合が発生してしまう。例えば、難しい絵柄から簡単な絵柄へのシーンチェンジが起きた場合、図5に示されるように、前のGOPが難しい絵柄のため、次のGOPのmax_sum_sup(実線矢印の合計)が大きくなり、絵柄が簡単なGOPに、大きくなったmax_sum_supを適用してしまうので、VBVの余裕が無いものに対してsum_supの最大値を大きくしてしまう。また、同様に、簡単な絵柄から難しい絵柄へのシーンチェンジにおいても、逆の不具合が発生してしまう。
【0065】
これを防ぐために、シーンチェンジのIピクチャを含むGOPをエンコードする場合には、前のIピクチャ発生量により求められたsum_supの最大値を、シーンチェンジのIピクチャの難易度により増減させるようにすることができる。
【0066】
図6のフローチャートを参照して、図2のステップS3において実行されるmax_sum_sup算出処理2について説明する。
【0067】
ステップS31において、genbit検出部33は、直近のIピクチャの発生符号量genbitを検出する。ターゲットビット決定部34は、genbit検出部33から、genbitの値の入力を受ける。
【0068】
ステップS32において、ターゲットビット決定部34は、sum_supの最大値であるmax_sum_supの値を、max_sum_sup=VBVバッファサイズ−Iピクチャ発生量とする。
【0069】
ステップS33において、ターゲットビット決定部34は、シーンチェンジであるか否かを判断する。シーンチェンジであるか否かの判断は、例えば、ME残差算出部31により算出されるME残差の値を基にして判断するようにしても良いし、それ以外のいかなる方法によって判断するようにしても良い。
【0070】
ステップS33において、シーンチェンジではないと判断された場合、処理は、図2のステップS4に戻る。
【0071】
ステップS33において、シーンチェンジであると判断された場合、ステップS34において、ターゲットビット決定部34は、難易度算出部32より、シーンチェンジのIピクチャ、および1つ前のIピクチャの符号化難易度を取得する。
【0072】
ステップS35において、ターゲットビット決定部34は、2つのIピクチャの符号化難易度の差を算出し、ステップS32において算出されたmax_sum_supの値を、符号化難易度の差、すなわち、難しい絵柄から簡単な絵柄へのシーンチェンジであるか、簡単な絵柄から難しい絵柄へのシーンチェンジであるかを基に増減して、処理は、図2のステップS4に戻る。
【0073】
具体的には、シーンチェンジ後の符号化難易度が低い場合は、max_sum_supの値を少なくし、シーンチェンジ後の符号化難易度が高い場合は、max_sum_supの値を多くする。
【0074】
図6を用いて説明した処理により、シーンチェンジのIピクチャを含むGOPをエンコードする場合には、前のIピクチャ発生量により求まったsum_supの最大値をシーンチェンジのIピクチャの難易度により増減させることにより、例えば、次のGOPのIピクチャ発生量が大きく、VBVに余裕が無いにもかかわらず、大きなsum_sup最大値となってしまうようなことをふせぐようにすることができる。
【0075】
また、本発明は、図2を用いて説明したビット補給レート制御処理以外でも、ビット補給レート制御を行う場合、すなわち、ビット補給量supplementの積算値sum_supの最大値である、max_sum_supを用いる処理の全てに適用可能である。
【0076】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、エンコーダ1は、図7に示されるようなパーソナルコンピュータ101により構成される。
【0077】
図7において、CPU111は、ROM112に記憶されているプログラム、または記憶部118からRAM113にロードされたプログラムに従って、各種の処理を実行する。RAM113にはまた、CPU111が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0078】
CPU111、ROM112、およびRAM113は、バス114を介して相互に接続されている。このバス114にはまた、入出力インタフェース115も接続されている。
【0079】
入出力インタフェース115には、キーボード、マウスなどよりなる入力部116、ディスプレイやスピーカなどよりなる出力部117、ハードディスクなどより構成される記憶部118、モデム、ターミナルアダプタなどより構成される通信部119が接続されている。通信部119は、インターネットを含むネットワークを介しての通信処理を行う。
【0080】
入出力インタフェース115にはまた、必要に応じてドライブ120が接続され、磁気ディスク131、光ディスク132、光磁気ディスク133、あるいは、半導体メモリ134などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部118にインストールされる。
【0081】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0082】
この記録媒体は、図7に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク131(フロッピディスクを含む)、光ディスク132(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク133(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ134などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM112や、記憶部118に含まれるハードディスクなどで構成される。
【0083】
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0084】
【発明の効果】
本発明によれば、画像データをエンコードすることができる。
また、本発明によれば、エンコードを終了した過去のGOPの画像における難易度を基に使用可能ビット量Rに加えるsupplementを決定する場合の、supplementの合計値の最大値を設定することができるので、フィードバック型レート制御にビット補給レート制御を適用する場合に仮想バッファのアンダーフローを防ぐことができる。
【0085】
また、シーンチェンジが起きたGOPをエンコードする際には、シーンチェンジ前後のフレーム内符号化画像の画像難易度を比較した値を用いて、ひとつ前のGOPのフレーム内符号化画像の符号化難易度が符号化されるGOPのフレーム内符号化画像の符号化難易度よりも低いとき、 supplement の合計値の最大値が少なくなるように、ひとつ前のGOPのフレーム内符号化画像の符号化難易度が符号化されるGOPのフレーム内符号化画像の符号化難易度よりも高いとき、 supplement の合計値の最大値が多くなるように、supplementの合計値の最大値を再設定することができるので、フィードバック型レート制御にビット補給レート制御を適用する場合に仮想バッファのアンダーフローを防ぐことができる。
【図面の簡単な説明】
【図1】本発明を適用したエンコーダの構成を示すブロック図である。
【図2】ビット補給レート制御処理について説明するフローチャートである。
【図3】 max_sum_sup算出処理1について説明するフローチャートである。
【図4】VBVバッファと、sum_supの最大値とについて説明するための図である。
【図5】VBVバッファと、sum_supの最大値とについて説明するための図である。
【図6】 max_sum_sup算出処理2について説明するフローチャートである。
【図7】パーソナルコンピュータの構成について説明する図である。
【符号の説明】
1 エンコーダ, 12 画像並び替え部, 13 走査変換・マクロブロック化部, 14 イントラAC算出部, 15 レートコントロール部, 16演算処理部, 17 動き検出部, 18 DCT処理部, 19 量子化部, 20 VLC部, 21 バッファ, 22 逆量子化部, 23 逆DCT処理部, 24 演算処理部, 25 動き補償部, 31 ME残差算出部, 32 難易度算出部, 33 genbit検出部, 34 ターゲットビット決定部, 35 量子化インデックス決定部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an encoding device, an encoding method, a program, and a recording medium, and more particularly to an encoding device, an encoding method, a program, and the like suitable for performing bit replenishment rate control in feedback type rate control, And a recording medium.
[0002]
[Prior art]
In recent years, various compression encoding methods have been proposed as methods for reducing the amount of information by compressing video data and audio data, and representative examples thereof include MPEG2 (Moving
There is Picture Experts Group Phase 2).
[0003]
In such an image compression method, TM5 (Test Model 5) is available as a method for obtaining good encoded image quality. In
[0004]
TM5 is an excellent method for making the amount of generated bits per GOP substantially constant, but when performing fixed-rate encoding, it is not always necessary to make the amount of generated bits of GOP constant. In fixed-rate encoding, it is necessary to prevent the VBV (Video Buffering Verifier) buffer occupancy from overflowing or underflowing a specified value.
[0005]
In TM5, the amount of generated bits per GOP is almost constant, so the VBV buffer does not overflow or underflow. However, in TM5, when encoding is performed at a low bit rate, the buffer capacity cannot be effectively used. For example, in the MP @ PL of MPEG, when TM5 is applied, the VBV buffer capacity is about 1.8 Mbit, whereas the bit amount of a picture extracted from the buffer is small, so about 1.8 Mbit. Cannot be used effectively.
[0006]
In this way, regardless of the input pattern, by assigning a certain amount of bits, encoding distortion is noticeably generated for a pattern with a high degree of encoding difficulty, while encoding is difficult. A picture with a low degree has less coding distortion, and as a whole becomes an unstable image with a lot of unevenness.
[0007]
In order to solve such a problem, a larger amount of bits is allocated to a picture with a high degree of difficulty in coding in a range where the buffer does not underflow, while a picture with a lower degree of difficulty of coding has a buffer. Therefore, it is necessary to allocate a small bit amount suitable for the pattern within a range where the overflow does not occur.
[0008]
Therefore, in the Japanese Patent Laid-Open No. 10-75443, the present applicant can adjust the amount of generated bits according to the complexity of the pattern for each part of the video data so that the quality of the video after compression can be improved as a whole. A video data compression apparatus and method therefor are disclosed.
[0009]
In TM5, the usable bit amount R that can be allocated to the remaining pictures of the GOP is an important parameter in rate control. For example, in the first half of the GOP, if a large amount of bits is allocated because a complex pattern image continues, the bit amount R becomes extremely small in the second half of the GOP, or a negative number. Become.
[0010]
On the other hand, the bit replenishment rate control disclosed by the present applicant in Japanese Patent Laid-Open No. Hei 10-75443 is that the usable bit amount R assigned to a plurality of pictures to be encoded is added to the encoding target. The rate control method is characterized in that the bit amount is added or reduced according to the image difficulty level and the VBV buffer occupation amount (hereinafter, the added or reduced bits are referred to as supplement).
[0011]
[Problems to be solved by the invention]
The previously proposed bit replenishment rate control is applied to the case where all the information such as the difficulty level of a plurality of picture images to be encoded is already known, that is, the feed forward type rate control in which the encoding information is pre-read. For example, after the 15 GOP data are accumulated, the image encoding difficulty level is determined, which causes a certain delay in the information accumulation.
[0012]
However, in feedback (Feed Back) rate control in which prefetch information cannot be obtained, the future VBV margin cannot be accurately estimated. Or a fixed value determined by the usable VBV size. However, in particular, when the maximum value of sum_sup is a fixed value, there is a problem that VBV underflow is likely to occur depending on the amount of generated pictures. In order to prevent VBV underflow, VBV margin Therefore, the maximum value of sum_sup had to be determined.
[0013]
The present invention has been made in view of such a situation, and enables bit replenishment rate control to be performed in feedback-type rate control.
[0014]
[Means for Solving the Problems]
The encoding apparatus according to the present invention includes a first detection unit that detects a degree of difficulty in encoding uncompressed data, an encoding unit that compresses and encodes uncompressed data based on GOP, and an encoding unit in the past. Second detection means for detecting the bit generation amount of the intra-frame encoded image of the uncompressed data included in the immediately preceding GOP encoded, and the encoded stream in which the uncompressed data is encoded is decoded. A value obtained by subtracting the bit generation amount of the intra-frame encoded image detected by the second detection unit from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder is calculated, and the uncompressed included in the GOP being encoded Of the buffer capacity of the virtual buffer allocated for data, this is added to the amount of usable bits allocated to the remaining pictures not yet encoded in the GOPPer GOPBit replenishment amountofThe setting means for setting as the maximum value of the total value, and the bit supply amount of the GOP to be encoded from now on satisfy the maximum value of the total value set by the setting means, and detected by the first detection means, Encoding difficulty level of uncompressed data included in GOP encoded in the past by encoding meansIf the encoding difficulty level is lower than the second value, which is lower than the first value, so that the encoding difficulty level is higher than the first value, the encoding difficulty level becomes the negative value. If it is between the value of 1 and the second value, it will be 0And calculating means for calculating.
[0015]
Scene change I picture andOne beforeIPicture andofWhen a difference in encoding difficulty is detected by the third detecting means for detecting the difference in encoding difficulty and the third detecting means, the previous detection detected by the first detecting means.IPicture coding difficultyScene change I pictureWhen the degree of difficulty of encoding is lower, the previous value detected by the first detecting unit is increased so that the maximum value of the total amount of bit supply set by the setting unit increases.IPicture coding difficultyScene change I pictureResetting means for resetting the maximum value of the total amount of bit supply set by the setting means so that the maximum value of the total amount of bit supply set by the setting means is reduced Can be provided.
[0016]
The encoding method of the present invention includes a first detection step for detecting the encoding difficulty level of uncompressed data, an encoding step for compressing and encoding uncompressed data with reference to GOP, and processing of the encoding step. A second detection step of detecting a bit generation amount of an intra-frame encoded image of uncompressed data included in a GOP immediately preceding encoded in the past, and an encoded stream in which the uncompressed data is encoded A value obtained by subtracting the bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder to be decoded is calculated, and the GOP being encoded is calculated. Of the buffer capacity of the virtual buffer allocated for the included uncompressed data, it is allocated to the remaining pictures that are not yet encoded in the GOP. It is added to the available bit amount thatPer GOPBit replenishment amountofThe setting step for setting the maximum value of the total value and the bit replenishment amount of the GOP to be encoded satisfy the maximum value of the total value set by the processing of the setting step, and the processing of the first detection step The degree of difficulty in encoding uncompressed data included in the GOP encoded in the past by the processing of the encoding step detectedIf the encoding difficulty level is lower than the second value, which is lower than the first value, so that the encoding difficulty level is higher than the first value, the encoding difficulty level becomes the negative value. If it is between the value of 1 and the second value, it will be 0And a calculating step for calculating.
[0017]
The program recorded on the recording medium of the present invention includes a first detection step for detecting the encoding difficulty level of uncompressed data, an encoding step for compressing and encoding uncompressed data with reference to GOP, A second detection step for detecting a bit generation amount of an intra-frame encoded image out of the uncompressed data included in the previous GOP encoded in the past by the encoding step processing; and the uncompressed data is encoded A value obtained by subtracting the bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream; Of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being converted, the remaining unencoded data in the GOP It is added to the available bit amount allocated to the picturePer GOPBit replenishment amountofThe setting step for setting the maximum value of the total value and the bit replenishment amount of the GOP to be encoded satisfy the maximum value of the total value set by the processing of the setting step, and the processing of the first detection step The degree of difficulty in encoding uncompressed data included in the GOP encoded in the past by the processing of the encoding step detectedIf the encoding difficulty level is lower than the second value, which is lower than the first value, so that the encoding difficulty level is higher than the first value, the encoding difficulty level becomes the negative value. If it is between the value of 1 and the second value, it will be 0And a calculating step for calculating.
[0018]
The program of the present invention includes a first detection step for detecting a degree of difficulty in encoding non-compressed data, an encoding step for compressing and encoding non-compressed data based on GOP, and a process of the encoding step. A second detection step of detecting the bit generation amount of the intra-frame encoded image of the uncompressed data included in the immediately preceding GOP encoded, and decoding the encoded stream in which the uncompressed data is encoded A value obtained by subtracting the bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder is calculated and included in the GOP being encoded Of the buffer capacity of the virtual buffer allocated for uncompressed data, it is allocated to the remaining pictures that are not yet encoded in the GOP. It is added to the available bit amount thatPer GOPBit replenishment amountofThe setting step for setting the maximum value of the total value and the bit replenishment amount of the GOP to be encoded satisfy the maximum value of the total value set by the processing of the setting step, and the processing of the first detection step The degree of difficulty in encoding uncompressed data included in the GOP encoded in the past by the processing of the encoding step detectedIf the encoding difficulty level is lower than the second value, which is lower than the first value, so that the encoding difficulty level is higher than the first value, the encoding difficulty level becomes the negative value. If it is between the value of 1 and the second value, it will be 0And a calculating step for calculating.
[0019]
In the encoding apparatus, the encoding method, and the program of the present invention, the encoding difficulty level of uncompressed data is detected, the GOP immediately before the uncompressed data is compressed and encoded based on the GOP, and encoded in the past. The bit generation amount of the intra-frame encoded image of the uncompressed data included in the image is detected, and from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream in which the uncompressed data is encoded A value obtained by subtracting the bit generation amount of the detected intra-frame encoded image is calculated, and the code is still encoded in the GOP out of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being encoded. Added to the amount of available bits allocated to the remaining unencoded picturesPer GOPBit replenishment amountofEncoding uncompressed data included in a GOP encoded in the past, in which the bit replenishment amount of the GOP to be encoded is set to the maximum value of the total value and satisfies the maximum value of the set total value DifficultyIf the encoding difficulty level is lower than the second value, which is lower than the first value, so that the encoding difficulty level is higher than the first value, the encoding difficulty level becomes the negative value. If it is between the value of 1 and the second value, it will be 0Calculated.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0021]
FIG. 1 is a block diagram showing a configuration of an
[0022]
The
[0023]
Since an I picture is compression-encoded without reference to other pictures, an ME residual described later cannot be obtained. Therefore, in order to obtain the encoding difficulty level of the I picture, intra AC is used as a parameter instead of the ME residual. Intra AC is a parameter defined as the sum of variance values of video data for each DCT block in the DCT processing unit in the MPEG system, and indicates the complexity of the video. Correlate with data volume. That is, the intra AC is the sum in the screen of the absolute value sum obtained by subtracting the average value of the pixel values for each block from the pixel value of each pixel for each DCT block. The intra AC is represented by the following formula (1).
[0024]
[Expression 1]
... (1)
[0025]
Further, in the formula (1), the formula (2) is established.
[Expression 2]
(2)
[0026]
The intra
[0027]
The
[0028]
The
[0029]
The
[0030]
The
[0031]
The inverse quantization unit 22 inversely quantizes the quantized data input from the
[0032]
The inverse DCT unit 23 performs inverse DCT processing on the inversely quantized data input from the inverse quantization unit 22 and outputs the result to the
[0033]
The
[0034]
The rate control unit 15 includes an ME
[0035]
The ME
[0036]
The difficulty level calculation unit 32 uses the equations (3) and (4) to approximate the coding difficulty level Dj of the P picture and the B picture by approximation using the ME residual input from the ME
[Equation 3]
... (3)
[Expression 4]
... (4)
[0037]
Where MEj is the ME residual in the jth picture, and aP, AB, BP, BBAre the inclination and the correction value when approximated by a linear expression.
[0038]
Also, the difficulty level calculation unit 32 similarly calculates the I picture coding difficulty level Dj by approximation using the intra AC input from the intra
[0039]
Then, the difficulty level calculation unit 32 calculates the average difficulty level avgD for each GOP from the encoding difficulty level Dj calculated for each picture.
[0040]
The
[0041]
Based on the encoding difficulty Dj input from the difficulty calculation unit 32 and the generated bit amount genbit of the I picture input from the
[0042]
That is, the target
[0043]
The quantization
[0044]
Next, a bit supply rate control process for determining a supplement to be added to R based on the difficulty level of past images that have been encoded will be described with reference to the flowchart of FIG.
[0045]
In step S1, the target
[0046]
If it is determined in step S1 that it is the head of the GOP, in step S2, the target
[0047]
In step S3, a max_sum_sup calculation process described later with reference to FIG. 3 or FIG. 6 is executed.
[0048]
In step S4, the target
[0049]
If it is determined in step S4 that avgD> 0x2000 and sum_sup <max_sum_sup, the target
[0050]
When it is determined in step S4 that avgD> 0x2000 and sum_sup <max_sum_sup are not satisfied, in step S6, the target
[0051]
When it is determined in step S6 that avgD <0x1000 and sum_sup> min_sum_sup, the target
[0052]
When it is determined in step S6 that avgD <0x1000 and sum_sup> min_sum_sup are not satisfied, the target
[0053]
After the process of step S5, step S7, or step S8 is completed, in step S9, the target
[0054]
With the processing described with reference to FIG. 2, the value of the supplement to be added to or reduced from the usable bit amount R is determined based on the difficulty level of the past image that has been encoded. For example, when R + supplemet (supplement is a positive value, a negative value, or 0) is determined in GOP units, the image difficulty level of the previous GOP (intra AC or ME Based on the average value of the residuals, etc., it is predicted that the difficulty level of the GOP to be encoded will be the same as the difficulty level of the previous GOP, and the available bit amount R depends on the difficulty level. supplement is added.
[0055]
Here, the image difficulty level is described as being calculated using the intra AC or ME residual, but the image difficulty level may be calculated using other parameters.
[0056]
In addition, the method for calculating the specific value of supplement may be, for example, the method disclosed in Japanese Patent Laid-Open No. 10-75443, or the supplement value that can obtain the required image quality by other methods. You may do it.
[0057]
Further, here, the difficulty level average avgD in the previous 1 GOP is described as being used, but the difficulty level calculation unit 32 replaces the difficulty level average avgD in 1 GOP with, for example, a plurality of GOPs or a part of GOPs. The difficulty level average may be obtained, or a weighted sum or a weighted average may be calculated as needed instead of a simple difficulty level average.
[0058]
Next, the max_sum_sup calculation process executed in step S3 in FIG. 2 will be described.
[0059]
In LongGOP, the amount of I picture generation tends to increase. Therefore, in order to prevent the occurrence of VBV underflow due to the amount of generated pictures, the maximum sum_sup value (max_sum_sup) may be obtained by subtracting the bit generation amount of the latest I picture that has been encoded from the VBV buffer size. .
[0060]
The
[0061]
In step S21, the
[0062]
In step S22, the target
[0063]
As a result of the processing described with reference to FIG. 3, as shown in FIG. 4, the total amount of solid arrows obtained by subtracting the I picture generation amount from the VBV size is set as the maximum value of sum_sup of the next GOP as the VBV margin. The As a result, a supplement is less likely to be given to a pattern that tends to underflow, and a supplement is likely to be given to a picture that has a margin for underflow. That is, it is possible to prevent VBV underflow that occurs due to a large amount of I-picture bit generation.
[0064]
However, the process described with reference to FIG. 3 causes a problem when a scene change occurs. For example, when a scene change from a difficult pattern to a simple pattern occurs, as shown in FIG. 5, because the previous GOP is difficult, the next GOP's max_sum_sup (the sum of the solid arrows) increases and the pattern However, since the increased max_sum_sup is applied to a simple GOP, the maximum value of sum_sup is increased for a VOP having no VBV margin. Similarly, in the case of a scene change from a simple pattern to a difficult pattern, the opposite problem occurs.
[0065]
In order to prevent this, when encoding a GOP including an I picture of a scene change, the maximum value of sum_sup obtained from the previous I picture generation amount is increased or decreased depending on the difficulty level of the I picture of the scene change. be able to.
[0066]
The
[0067]
In step S31, the
[0068]
In step S32, the target
[0069]
In step S <b> 33, the target
[0070]
If it is determined in step S33 that the scene change has not occurred, the process returns to step S4 in FIG.
[0071]
If it is determined in step S33 that it is a scene change, in step S34, the target
[0072]
In step S35, the target
[0073]
Specifically, when the encoding difficulty after the scene change is low, the value of max_sum_sup is decreased, and when the encoding difficulty after the scene change is high, the value of max_sum_sup is increased.
[0074]
When a GOP including an I picture of a scene change is encoded by the processing described with reference to FIG. 6, the maximum value of sum_sup obtained from the previous I picture generation amount is increased or decreased depending on the difficulty level of the I picture of the scene change. Thus, for example, it is possible to prevent a large sum_sup maximum value from occurring even though the I picture generation amount of the next GOP is large and the VBV has no margin.
[0075]
Further, the present invention is not limited to the bit replenishment rate control process described with reference to FIG. 2, but performs the bit replenishment rate control, that is, the process using max_sum_sup which is the maximum value sum_sup of the bit replenishment amount supplement. Applicable to all.
[0076]
The series of processes described above can be executed by hardware, but can also be executed by software. In this case, for example, the
[0077]
In FIG. 7, the
[0078]
The
[0079]
The input /
[0080]
A
[0081]
When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer incorporated in dedicated hardware or various programs. For example, a general-purpose personal computer is installed from a network or a recording medium.
[0082]
As shown in FIG. 7, this recording medium includes a magnetic disk 131 (including a floppy disk) and an optical disk 132 (including a floppy disk) that are distributed to supply a program to a user separately from the apparatus main body. Package media including CD-ROM (compact disk-read only memory), DVD (including digital versatile disk), magneto-optical disk 133 (including MD (mini-disk) (trademark)), or
[0083]
In the present specification, the step of describing the program stored in the recording medium is not limited to the processing performed in chronological order in the order in which it is included, but is not necessarily processed in chronological order, either in parallel or individually. The process to be executed is also included.
[0084]
【The invention's effect】
According to the present invention, image data can be encoded.
Moreover, according to the present invention, the encoding is finished.Past GOP imagesWhen the supplement to be added to the usable bit amount R is determined based on the difficulty level in the case where the maximum value of the supplement can be set, the bit supply rate control is applied to the feedback type rate control.Virtual bufferUnderflow can be prevented.
[0085]
In addition, when encoding a GOP in which a scene change has occurred, a value obtained by comparing the image difficulty levels of the intra-frame encoded images before and after the scene change is used.When the encoding difficulty of the intra-frame encoded image of the previous GOP is lower than the encoding difficulty of the intra-frame encoded image of the GOP to be encoded, supplement When the encoding difficulty of the intra-frame encoded image of the previous GOP is higher than the encoding difficulty of the intra-frame encoded image of the GOP to be encoded so that the maximum value of the total value of supplement So that the maximum of the total value ofThe maximum supplement value can be reset, so when applying bit supplement rate control to feedback type rate control.Virtual bufferUnderflow can be prevented.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an encoder to which the present invention is applied.
FIG. 2 is a flowchart illustrating a bit replenishment rate control process.
FIG. 3 is a flowchart illustrating
FIG. 4 is a diagram for describing a VBV buffer and a maximum value of sum_sup.
FIG. 5 is a diagram for explaining a VBV buffer and a maximum value of sum_sup.
FIG. 6 is a flowchart illustrating
FIG. 7 is a diagram illustrating a configuration of a personal computer.
[Explanation of symbols]
DESCRIPTION OF
Claims (5)
前記非圧縮データの符号化難易度を検出する第1の検出手段と、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化手段と、
前記符号化手段により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出手段と、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出手段により検出された前記フレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値として設定する設定手段と、
これから符号化されるGOPの前記ビット補給量を、前記設定手段により設定された合計値の最大値を満たし、かつ、前記第1の検出手段により検出された、前記符号化手段により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出手段と
を備えることを特徴とする符号化装置。In an encoding device that encodes uncompressed data,
First detection means for detecting the encoding difficulty level of the uncompressed data;
Encoding means for compressing and encoding the uncompressed data on the basis of GOP;
Second detection means for detecting a bit generation amount of an intra-frame encoded image of the uncompressed data included in the GOP immediately before encoded by the encoding means;
From the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream in which the uncompressed data is encoded, the bit generation amount of the intra-frame encoded image detected by the second detecting means is calculated. The subtracted value is calculated, and usable bits allocated to the remaining pictures not yet encoded in the GOP out of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being encoded Setting means for setting as a maximum value of the total value of the bit replenishment amount for each GOP added to the amount;
The bit replenishment amount of the GOP to be encoded is encoded in the past by the encoding means that satisfies the maximum value of the total value set by the setting means and detected by the first detection means. When the encoding difficulty level of the uncompressed data included in the GOP is higher than the first value, the second value of the encoding difficulty level is lower than the first value so as to be a positive value. Calculating means for calculating to be 0 when the encoding difficulty level is between the first value and the second value so as to be a negative value when lower. A characteristic encoding apparatus.
前記第3の検出手段により、前記符号化難易度の差が検出された場合、前記第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも低いとき、前記設定手段により設定された前記ビット補給量の合計値の最大値が多くなるように、前記第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも高いとき、前記設定手段により設定された前記ビット補給量の合計値の最大値が少なくなるように、前記ビット補給量の合計値の最大値を再設定する再設定手段と
を更に備えることを特徴とする請求項1に記載の符号化装置。 The I picture and the previous I-picture of a scene change, a third detection means for detecting a difference between the coding difficulty,
When the difference in the encoding difficulty level is detected by the third detection means, the encoding difficulty level of the previous I picture detected by the first detection means is the encoding of the I picture of the scene change . When the difficulty level is lower than the difficulty level, the encoding difficulty level of the previous I picture detected by the first detection unit is set so that the maximum value of the total value of the bit replenishment amounts set by the setting unit increases. Is higher than the encoding difficulty level of the I picture of the scene change, the maximum value of the total amount of bit replenishment is set so that the maximum value of the total amount of bit replenishment set by the setting means is reduced. The encoding device according to claim 1, further comprising resetting means for resetting.
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする符号化方法。In an encoding method of an encoding device that encodes uncompressed data,
A first detection step of detecting the encoding difficulty level of the uncompressed data;
An encoding step of compressing and encoding the uncompressed data on the basis of GOP;
A second detection step of detecting a bit generation amount of an intra-frame encoded image of the uncompressed data included in the immediately preceding GOP encoded in the past by the processing of the encoding step;
Bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream in which the uncompressed data is encoded The value obtained by subtracting can be calculated and can be assigned to the remaining pictures not yet encoded in the GOP out of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being encoded. A setting step for setting the maximum value of the total amount of bit supply for each GOP to be added to the bit amount;
The bit replenishment amount of the GOP to be encoded satisfies the maximum value of the total value set by the processing of the setting step, and is detected by the processing of the first detection step. When the encoding difficulty level of the uncompressed data included in the GOP encoded in the past by processing is higher than the first value, the encoding difficulty level is higher than the first value so as to be a positive value. When the encoding difficulty level is between the first value and the second value, the calculation is performed so as to be 0 when the encoding difficulty level is between the first value and the second value. An encoding method comprising the steps of:
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。A program for causing a computer to execute processing for encoding uncompressed data,
A first detection step of detecting the encoding difficulty level of the uncompressed data;
An encoding step of compressing and encoding the uncompressed data on the basis of GOP;
A second detection step of detecting a bit generation amount of an intra-frame encoded image of the uncompressed data included in the immediately preceding GOP encoded in the past by the processing of the encoding step;
Bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream in which the uncompressed data is encoded The value obtained by subtracting can be calculated and can be assigned to the remaining pictures not yet encoded in the GOP out of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being encoded. A setting step for setting the maximum value of the total amount of bit supply for each GOP to be added to the bit amount;
The bit replenishment amount of the GOP to be encoded satisfies the maximum value of the total value set by the processing of the setting step, and is detected by the processing of the first detection step. When the encoding difficulty level of the uncompressed data included in the GOP encoded in the past by processing is higher than the first value, the encoding difficulty level is higher than the first value so as to be a positive value. When the encoding difficulty level is between the first value and the second value, the calculation is performed so as to be 0 when the encoding difficulty level is between the first value and the second value. A recording medium on which is recorded a program that causes a computer to execute a process including the steps.
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラム。A program for causing a computer to execute processing for encoding uncompressed data,
A first detection step of detecting the encoding difficulty level of the uncompressed data;
An encoding step of compressing and encoding the uncompressed data on the basis of GOP;
A second detection step of detecting a bit generation amount of an intra-frame encoded image of the uncompressed data included in the immediately preceding GOP encoded in the past by the processing of the encoding step;
Bit generation amount of the intra-frame encoded image detected by the processing of the second detection step from the buffer capacity of the virtual buffer corresponding to the input buffer of the decoder that decodes the encoded stream in which the uncompressed data is encoded The value obtained by subtracting can be calculated and can be assigned to the remaining pictures not yet encoded in the GOP out of the buffer capacity of the virtual buffer allocated to the uncompressed data included in the GOP being encoded. A setting step for setting the maximum value of the total amount of bit supply for each GOP to be added to the bit amount;
The bit replenishment amount of the GOP to be encoded satisfies the maximum value of the total value set by the processing of the setting step, and is detected by the processing of the first detection step. When the encoding difficulty level of the uncompressed data included in the GOP encoded in the past by processing is higher than the first value, the encoding difficulty level is higher than the first value so as to be a positive value. When the encoding difficulty level is between the first value and the second value, the calculation is performed so as to be 0 when the encoding difficulty level is between the first value and the second value. A program that causes a computer to execute a process characterized by including the steps.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104315A JP4273386B2 (en) | 2002-04-05 | 2002-04-05 | Encoding apparatus, encoding method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104315A JP4273386B2 (en) | 2002-04-05 | 2002-04-05 | Encoding apparatus, encoding method, program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003299081A JP2003299081A (en) | 2003-10-17 |
JP4273386B2 true JP4273386B2 (en) | 2009-06-03 |
Family
ID=29389639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002104315A Expired - Fee Related JP4273386B2 (en) | 2002-04-05 | 2002-04-05 | Encoding apparatus, encoding method, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4273386B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005311559A (en) | 2004-04-20 | 2005-11-04 | Sony Corp | Data processing apparatus and method thereof, and coder |
-
2002
- 2002-04-05 JP JP2002104315A patent/JP4273386B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003299081A (en) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4256574B2 (en) | Image signal encoding method and image signal encoding apparatus | |
US6654417B1 (en) | One-pass variable bit rate moving pictures encoding | |
JP2963416B2 (en) | Video encoding method and apparatus for controlling bit generation amount using quantization activity | |
US20010017887A1 (en) | Video encoding apparatus and method | |
JP4221655B2 (en) | Encoding apparatus, encoding method, program, and recording medium | |
JP3960451B2 (en) | Scene characteristic detection type moving picture coding apparatus | |
JP2001169281A (en) | Device and method for encoding moving image | |
JPH11346362A (en) | Real time single path variable bit rate control method, and encoder | |
JP2001510311A (en) | Object-based rate control apparatus and method in coding scheme | |
KR20040011100A (en) | Advanced method for rate control and apparatus thereof | |
JP2003018603A (en) | Method and device for encoding moving image | |
US20100111180A1 (en) | Scene change detection | |
JP3907875B2 (en) | Coding rate control device and information coding device | |
JP2004328150A (en) | Moving picture coding apparatus and method | |
JP4273386B2 (en) | Encoding apparatus, encoding method, program, and recording medium | |
JP4586340B2 (en) | Encoding apparatus, encoding method, and program | |
JP4186543B2 (en) | Encoding apparatus, encoding method, program, and recording medium | |
JP4273385B2 (en) | Encoding apparatus, encoding method, program, and recording medium | |
JP3149673B2 (en) | Video encoding device, video encoding method, video reproducing device, and optical disc | |
JP4264535B2 (en) | Image processing apparatus and method, recording medium, and program | |
JP4718736B2 (en) | Video encoding device | |
JP4228739B2 (en) | Encoding apparatus, encoding method, program, and recording medium | |
JP3918208B2 (en) | Video data compression apparatus and method | |
JPH10108197A (en) | Image coder, image coding control method, and medium storing image coding control program | |
JP3779066B2 (en) | Video encoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050307 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070720 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070918 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090114 |
|
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: 20090205 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090218 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120313 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |