JP4273386B2 - 符号化装置および符号化方法、プログラム、並びに記録媒体 - Google Patents
符号化装置および符号化方法、プログラム、並びに記録媒体 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
【発明の属する技術分野】
本発明は、符号化装置および符号化方法、プログラム、並びに記録媒体に関し、特に、フィードバック型レート制御において、ビット補給レート制御を行う場合に用いて好適な、符号化装置および符号化方法、プログラム、並びに記録媒体に関する。
【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 量子化インデックス決定部
Claims (5)
- 非圧縮データの符号化を行う符号化装置において、
前記非圧縮データの符号化難易度を検出する第1の検出手段と、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化手段と、
前記符号化手段により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出手段と、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出手段により検出された前記フレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値として設定する設定手段と、
これから符号化されるGOPの前記ビット補給量を、前記設定手段により設定された合計値の最大値を満たし、かつ、前記第1の検出手段により検出された、前記符号化手段により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出手段と
を備えることを特徴とする符号化装置。 - シーンチェンジのIピクチャと1つ前のIピクチャとの、符号化難易度の差を検出する第3の検出手段と、
前記第3の検出手段により、前記符号化難易度の差が検出された場合、前記第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも低いとき、前記設定手段により設定された前記ビット補給量の合計値の最大値が多くなるように、前記第1の検出手段により検出されたひとつ前のIピクチャの符号化難易度がシーンチェンジのIピクチャの符号化難易度よりも高いとき、前記設定手段により設定された前記ビット補給量の合計値の最大値が少なくなるように、前記ビット補給量の合計値の最大値を再設定する再設定手段と
を更に備えることを特徴とする請求項1に記載の符号化装置。 - 非圧縮データの符号化を行う符号化装置の符号化方法において、
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする符号化方法。 - 非圧縮データの符号化を行う処理をコンピュータに実行させるプログラムであって、
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。 - 非圧縮データの符号化を行う処理をコンピュータに実行させるプログラムであって、
前記非圧縮データの符号化難易度を検出する第1の検出ステップと、
前記非圧縮データを、GOPを基準として圧縮符号化する符号化ステップと、
前記符号化ステップの処理により過去に符号化された直前のGOPに含まれる前記非圧縮データのうちの、フレーム内符号化画像のビット発生量を検出する第2の検出ステップと、
前記非圧縮データが符号化された符号化ストリームをデコードするデコーダの入力バッファに対応する仮想バッファのバッファ容量から、前記第2の検出ステップの処理により検出されたフレーム内符号化画像のビット発生量を減算した値を算出し、符号化中のGOPに含まれる前記非圧縮データに対して割り当てられる前記仮想バッファのバッファ容量のうちGOP内でまだ符号化されていない残りのピクチャに割り当てられる使用可能ビット量に加えられるGOP毎のビット補給量の合計値の最大値に設定する設定ステップと、
これから符号化されるGOPの前記ビット補給量を、前記設定ステップの処理により設定された合計値の最大値を満たし、かつ、前記第1の検出ステップの処理により検出された、前記符号化ステップの処理により過去に符号化されたGOPに含まれる前記非圧縮データの符号化難易度が第1の値より高い場合、正の値となるように、前記符号化難易度が前記第1の値よりも低い第2の値より低い場合、負の値となるように、前記符号化難易度が前記第1の値と前記第2の値との間となる場合、0となるように算出する算出ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104315A JP4273386B2 (ja) | 2002-04-05 | 2002-04-05 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104315A JP4273386B2 (ja) | 2002-04-05 | 2002-04-05 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003299081A JP2003299081A (ja) | 2003-10-17 |
JP4273386B2 true JP4273386B2 (ja) | 2009-06-03 |
Family
ID=29389639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002104315A Expired - Fee Related JP4273386B2 (ja) | 2002-04-05 | 2002-04-05 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4273386B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005311559A (ja) * | 2004-04-20 | 2005-11-04 | Sony Corp | データ処理装置およびその方法と符号化装置 |
-
2002
- 2002-04-05 JP JP2002104315A patent/JP4273386B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003299081A (ja) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4256574B2 (ja) | 画像信号符号化方法および画像信号符号化装置 | |
US6654417B1 (en) | One-pass variable bit rate moving pictures encoding | |
JP2963416B2 (ja) | 量子化活動度を用いてビット発生量を制御する映像符号化方法及び装置 | |
US20010017887A1 (en) | Video encoding apparatus and method | |
JP4221655B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP3960451B2 (ja) | シーン特性検出型動画像符号化装置 | |
JP2001169281A (ja) | 動画像符号化装置、および動画像符号化方法 | |
JPH11346362A (ja) | リアルタイム単一パス可変ビット・レ―ト制御方法及び符号器 | |
JP2001510311A (ja) | 符号化方式におけるオブジェクトベースのレート制御装置及びその方法 | |
KR20060036934A (ko) | 비디오 데이터 부호화 장치 및 비디오 데이터 부호화 방법 | |
JP2003018603A (ja) | 動画像符号化方法及び装置 | |
US20100111180A1 (en) | Scene change detection | |
JP3907875B2 (ja) | 符号化レート制御装置及び情報符号化装置 | |
JP2004328150A (ja) | 動画像符号化装置及び方法 | |
JP4273386B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP4586340B2 (ja) | 符号化装置、および、符号化方法、並びに、プログラム | |
JP4186543B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP4273385B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP3149673B2 (ja) | 映像符号化装置、映像符号化方法、映像再生装置及び光ディスク | |
JP4264535B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP4718736B2 (ja) | 動画像符号化装置 | |
JP4228739B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP3918208B2 (ja) | 映像データ圧縮装置およびその方法 | |
JPH10108197A (ja) | 画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体 | |
JP3779066B2 (ja) | 動画像符号化装置 |
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 |