JP2007116655A - 動画像符号化装置 - Google Patents

動画像符号化装置 Download PDF

Info

Publication number
JP2007116655A
JP2007116655A JP2006120040A JP2006120040A JP2007116655A JP 2007116655 A JP2007116655 A JP 2007116655A JP 2006120040 A JP2006120040 A JP 2006120040A JP 2006120040 A JP2006120040 A JP 2006120040A JP 2007116655 A JP2007116655 A JP 2007116655A
Authority
JP
Japan
Prior art keywords
code amount
rate
buffer
unit
gop
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.)
Pending
Application number
JP2006120040A
Other languages
English (en)
Inventor
Hitoshi Murazaki
仁 村崎
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2006120040A priority Critical patent/JP2007116655A/ja
Publication of JP2007116655A publication Critical patent/JP2007116655A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】従来の動画像符号化装置では、符号化の難しいシーケンスは画質劣化が大きく、符号化の易しいシーケンスは極端に画質が良くなるという、シーケンス間での画質差が生じるという課題がある。
【解決手段】符号化過不足符号量算出部201は、GOP毎の発生符号量からGOP毎の基準目標符号量を差し引いて過不足符号量を算出する。符号配分率算出部203は、バッファ充足率が0以上で、かつ、過不足符号量が0以上のときは、第1の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が0以上で、かつ、過不足符号量が負のときは、第2の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が負のときは符号量配分率を0とする。符号量配分率に応じて量子化部103に供給する量子化ステップの変化率が従来よりも小さく設定される。
【選択図】図1

Description

本発明は動画像符号化装置に係り、特にリアルタイムで可変ビットレート符号化制御を行う際に好適な動画像符号化装置に関する。
動画像信号を伝送若しくは蓄積する場合、効率化のため圧縮符号化してビットストリームとすることが多い。動画像の圧縮符号化方式としてはMPEG(Moving Picture Experts Group)等の方式が標準化され、広く用いられている。よって、動画像信号をMPEG等の方式で圧縮し、ビットストリームとして扱うことは、伝送系若しくは蓄積系の効率的な利用において重要である。
MPEG等の方式において、発生符号量をある単位時間内で一定に保つ制御方式として、MPEG−2のテストモデル5(Test Model 5:TM5)における固定ビットレート(CBR)制御方式が知られている。しかし、一般に、動画像信号は定常的ではないため、入力動画像信号の情報量は時間経過に伴って変化する。そのため、入力動画像信号を符号化する場合に、可変ビットレート(VBR)制御方式を用いると、同じ符号量で固定ビットレート制御方式に比べて高画質を実現できることが知られている。
上記の可変ビットレート制御方式には、シーケンス全体を一定の量子化幅を用いて仮符号化処理した際に発生する符号量を基に、配分する符号量を設定し、本符号化処理を実行する“2パス”可変ビットレート制御方式がある。この“2パス”可変ビットレート制御方式は、シーケンス全体の符号化特性を予め知った上で符号化を行うため、高画質を実現することができる。
しかし、上記の“2パス”可変ビットレート制御方式では、仮符号化処理と本符号化処理を行う必要があり、本符号化処理のみに比べおよそ2倍の処理量がかかる。ゆえに、放送や通信等の手段により送られてくる動画像信号を、リアルタイムに符号化して光ディスクや磁気ディスク等の記録媒体に記録する装置には適さない。
そこで、リアルタイムに可変ビットレート制御を実現し、符号化する方式として“1パス”可変ビットレート制御方式がある。この“1パス”可変ビットレート制御方式は、単位時間当たりの発生符号量を監視し、その時の単位時間当たりの割当符号量と比較して、次の符号化単位の割当符号量を算出し、その算出した割当符号量に応じて、次の符号化単位の量子化幅を変化させるものである。
“1パス”可変ビットレート制御方式の従来例として、発生符号量と予め設定された平均ビットレートとの過不足量から画像単位毎に量子化幅を調整することを特徴とする動画像符号化装置が従来から知られている(例えば、特許文献1、特許文献2参照)。具体的には、上記の従来の動画像符号化装置における“1パス”可変ビットレート制御方式は、バッファの占有量に比例して目標とするビットレートを設定し、目標とするビットレートに近付くような量子化幅を設定するものである。
また、その他の1パス可変ビットレート制御方式を採用した従来の動画像符号化装置として、発生符号量の余裕分であるマージンを設定して、一定の割合でマージンを配分する方式の動画像符号化装置も知られている(例えば、特許文献3参照)。
特開2000−261800号公報 再公表特許WO 00/68542号 特開2001−25015号公報
しかしながら、特許文献1若しくは特許文献2に記載の従来の動画像符号化装置における1パス可変ビットレート制御方式では、バッファの占有量と目標ビットレートが比例の関係にあるため、また、特許文献3記載の従来の動画像符号化装置では、マージンを一定の割合で配分するために、符号化の難しいシーケンスと符号化の簡単なシーケンスとが交互に続くような場合に、符号化の難しいシーケンスの後半部分において、特許文献1若しくは特許文献2に記載の従来の動画像符号化装置ではバッファ占有量の増大により、特許文献3記載の従来の動画像符号化装置では、マージンの減少による配分符号量の減少により、それぞれ量子化幅が大きくなり、発生符号量を強引に抑制するために、画質劣化が目立つという課題がある。
また、上記の各特許文献記載の従来の動画像符号化装置では、バッファ占有量が減少する場合、すなわち、符号化の易しいシーケンスの場合に、量子化幅を小さくしようとするため、無駄に符号量を使うことになる。従って、以上より上記の各特許文献記載の従来の動画像符号化装置では、符号化の難しいシーケンスは画質劣化が大きく、符号化の易しいシーケンスは極端に画質が良くなるという、シーケンス間での画質差が生じるという課題がある。
本発明は以上の点に鑑みなされたもので、符号化の難しいシーケンスと符号化の簡単なシーケンスが交互に続くような場合に、符号化の難しいシーケンスにおける画質劣化を低減すると共に、符号化の簡単なシーケンスと符号化の難しいシーケンス間での画質差を抑制し得る、1パス可変ビットレート制御方式による動画像符号化を行う動画像符号化装置を提供することを目的とする。
上記の目的を達成するため、本発明は、符号化対象の動画像信号と参照画像信号とから予測手段にて所定の符号化単位で予測信号を生成し、その予測信号と動画像信号との差分信号を直交変換手段により直交変換して直交変換係数を生成し、直交変換係数を外部からの量子化ステップに基づき量子化した信号から、参照画像信号生成手段により参照画像信号を生成すると共に、可変長符号化手段で可変長符号化して符号化信号を出力する符号化部と、可変長符号化手段における所定の画像群符号化単位毎の発生符号量と予め定められた基準目標符号量との差分である過不足符号量に応じて、可変長符号化手段における所定の画像群符号化単位毎の発生符号量を基準目標符号量となるように、符号化部へ供給する量子化ステップを可変制御する符号化制御部とよりなる動画像符号化装置であって、
符号化制御部は、可変長符号化手段における画像群符号化単位毎の発生符号量から画像群符号化単位毎の基準目標符号量を差し引いて過不足符号量を算出する過不足符号量算出手段と、過不足符号量を積算して得たバッファ充足量と、可変長符号化手段内の画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとの比であるバッファ充足率を算出するバッファ充足率算出手段と、バッファ充足率が0以上で、かつ、過不足符号量が0以上のときは、第1の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が0以上で、かつ、過不足符号量が負のときは、第2の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が負のときは符号量配分率を0とする符号量配分率算出手段と、符号量配分率算出手段で算出された符号量配分率と過不足符号量とから、現在の画像群符号化単位の目標符号量を算出する目標符号量算出手段と、目標符号量算出手段で算出された現在の画像群符号化単位の目標符号量と、一つ前の画像群符号化単位の目標符号量との比から量子化ステップを算出する量子化ステップ算出手段とを有し、第1の非線形関数は、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる関数であり、第2の非線形関数は、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる関数であることを特徴とする。
この発明では、画像群符号化単位毎の発生符号量から画像群符号化単位毎の基準目標符号量を差し引いて算出した過不足符号量と、過不足符号量を積算して得たバッファ充足量と画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとから算出したバッファ充足率とに基づいて、バッファ充足率が0以上で、かつ、過不足符号量が0以上のときは、第1の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が0以上で、かつ、過不足符号量が負のときは、第2の非線形関数に従ってバッファ充足率から符号量配分率を算出し、更にその符号量配分率と過不足符号量とから現在の画像群符号化単位の目標符号量を算出し、一つ前の画像群符号化単位の目標符号量とから量子化ステップを算出するようにしたため、単調増加関数又は単調減少関数に従って符号量配分率を算出した後、目標符号量及び量子化ステップを算出する従来に比べて、量子化ステップの変化率を小さくできる。
すなわち、この発明では、バッファ充足率が0以上で、かつ、過不足符号量が0以上のときは、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる第1の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくし、バッファ充足率が0以上で、かつ、過不足符号量が負のときは、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる第2の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくする。
また、上記の目的を達成するため、本発明は、上記の符号化制御部を、目標符号量から算出された現在の画像群符号化単位に含まれる画像目標符号量を算出する画像目標符号量算出手段と、画像目標符号量により所定の符号化単位で固定ビットレートの量子化ステップを算出する固定ビットレート量子化ステップ算出手段と、可変長符号化手段から出力される符号を予め定められたバッファに蓄積し、バッファの蓄積符号量が画像目標符号量に関連した所定の容量を下回っているかどうかを監視するバッファ容量監視手段と、バッファ容量監視手段により、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレート量子化ステップ算出手段により算出された固定ビットレートの量子化ステップを符号化部へ出力し、バッファの蓄積符号量が所定の容量を超えていると判定されたときは、量子化ステップ算出手段により算出された可変ビットレートの量子化ステップを符号化部へ出力する量子化ステップ切替出力手段とを更に有する構成としたことを特徴とする。
この発明では、可変ビットレートの量子化ステップで画像群符号化単位での量子化パラメータ制御を行っているときに、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレートの量子化ステップを符号化部へ出力して固定ビットレートで動作させるようにしたため、規定されたバッファ容量を保ちながら、可変ビットレートの制御が可能にできる。
本発明によれば、バッファ充足率が0以上で、かつ、過不足符号量が0以上のときは、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる第1の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくするようにしたため、符号化の難しいシーケンスと簡単なシーケンスが交互に続くような場合は、バッファ充足率が0以上で、かつ、過不足符号量が0以上であり、このときは難しいシーケンスにおいて量子化ステップの変化率を小さくすることができ、これにより符号化の難しいシーケンスの後半部分における画質劣化を従来よりも抑制することが可能である。
また、本発明によれば、バッファ充足率が0以上で、かつ、過不足符号量が負のときは、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる第2の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくするようにしたため、符号化が易しい(簡単な)シーケンスが続くようなバッファ充足率が0以上で、かつ、過不足符号量が負のときも、量子化ステップの変化率を従来よりも小さくすることができるため、必要以上に量子化ステップを小さくして余分な符号量を使うことがなく、符号化が易しいシーケンスにおいて極端に画質が良くなるという現象を抑制でき、シーケンス間で画質を保つことが可能である。本発明では以上の効果を持つ、1パス可変ビットレート制御方式を実現可能である。
更に、本発明によれば、可変ビットレートの量子化ステップで画像群符号化単位での量子化パラメータ制御を行っているときに、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレートの量子化ステップを符号化部へ出力して固定ビットレートで動作させることで、規定されたバッファ容量を保ちながら、可変ビットレートの制御を行うようにしたため、符号化の規格に沿ったビットストリームを従来に比べ高画質で生成することができる。
次に、本発明の実施の形態について図面と共に説明する。図1は本発明になる動画像符号化装置の一実施の形態のブロック図を示す。ただし、本実施の形態では、画像群符号化単位を数枚の画像の集合であるGOP(Group Of Pictures)とし、画像タイプ別符号化単位を一枚のピクチャであるとする。また、本明細書において、「画像群」とは画像タイプ別符号化単位の集合であり、「画像タイプ」とは、画面内予測画像(I-picture:Iピクチャ)、画面間前方向予測画像(P-picture:Pピクチャ)、画面間両方向予測画像(B-picture:Bピクチャ)であるものとする。
図1に示すように、本実施の形態の動画像符号化装置は、入力動画像信号を符号化する動画像符号化部100と、符号化する動画像信号の可変ビットレート制御を行う符号化制御部200とから構成される。動画像符号化部100は、予測部101、直交変換部102、量子化部103、可変長符号化部104、逆量子化部105、逆直交変換部106、画像メモリ部107、減算器108から構成される。符号化制御部200は、符号化過不足符号量算出部201、バッファ充足率算出部202、符号配分率算出部203、目標ビットレート算出部204、画像タイプ別目標符号量算出部205、画像タイプ別量子化ステップ算出部206から構成される。
次に、図1の動画像符号化装置の動作について説明する。まず、動画像符号化部100の動作について説明する。動画像符号化部100は、動画像信号と符号化制御部200からの量子化ステップを入力として受け、符号化ビットストリームを出力とする、MPEG等における符号化装置と同様の構成で動画像信号を符号化する。動画像符号化部100に入力された動画像信号は、予測部101にて後述する参照画像信号を用いて、画面内予測、または過去・未来の復号画像との画面間予測により予測画像信号とされる一方、減算器108を通して直交変換部102に供給される。
直交変換部102は、画面内予測画像を生成するときには、減算器108をスルーして入力された動画像信号に対して直交変換を行い、画面間前方向予測画像又は画面間両方向予測画像を生成するときには、減算器108で入力動画像信号(原画像)と予測部101で生成された予測画像との差分信号に対して直交変換を行い、それぞれ周波数係数(直交変換係数)に変換する。量子化部103は、直交変換部102から入力された周波数係数を、後述する符号化制御部200からの量子化ステップに従って量子化を行い、量子化係数に変換する。
可変長符号化部104は、量子化部103から入力された量子化係数に対してエントロピー符号化などを行って符号列へと変換し、動画像信号の符号化ビットストリームを生成して外部へ出力する。また、上記の量子化係数は、逆量子化部105により逆量子化された後、逆直交変換部106により逆直交変換された後、予測部101からの予測画像信号と加算器109で加算されることにより、復号画像信号とされる。この復号画像信号は、画像メモリ部107に蓄積され、予測部101における、過去・未来の参照用画像信号として用いられる。
次に、符号化制御部200の動作について説明する。符号化制御部200は、符号化発生符号量を入力とし、量子化ステップを出力とする、可変ビットレート制御を行う。符号化過不足符号量算出部201は、予め設定されている目標ビットレートと、動画像符号化部100の可変長符号化部104より入力される符号化発生符号量とを基に、発生符号量の目標符号量との差分符号量を求め、その差分符号量をバッファ充足率算出部202へ出力する。バッファ充足率算出部202は、上記の差分符号量より、可変長符号化部104内の符号化バッファの充足量を求め、符号化バッファの大きさに対するバッファ充足率を算出する。
符号配分率算出部203は、バッファ充足率算出部202により算出されたバッファ充足率より、目標ビットレートから溢れた符号量の次の画像群符号化単位に対する目標ビットレートの変動符号量を算出する。目標ビットレート算出部204は、符号配分率算出部203で算出された変動符号量と、目標ビットレートとに基づいて、次の画像群符号化単位の目標ビットレートを算出する。
画像タイプ別目標符号量算出部205は、目標ビットレート算出部204にて算出された、次の画像群符号化単位の目標ビットレートより、画像タイプ別の目標符号量を求め、次の画像群符号化単位における画像タイプ別符号化単位の目標符号量を算出する。画像タイプ別量子化ステップ算出部206は、符号化した画像群符号化単位における画像タイプ別目標符号量と、画像タイプ別目標符号量算出部205で算出した次の画像タイプ別符号化単位の目標符号量とより、次の画像タイプ別量子化ステップを算出する。算出された次の画像タイプ別量子化ステップは、動画像符号化部100の量子化部103に入力され、その量子化ステップによる量子化を行わせる。
次に、符号化制御部200の動作を更に詳細に説明する。ただし、以下では、画像群符号化単位をGOPと呼ぶ。また、画像を単にピクチャと呼ぶ。また、符号量とバッファの単位は[bits]であり、ビットレートの単位は[bps]である。符号化制御部200では、まず、符号化過不足符号量算出部201により図2のフローチャートに従った動作を行う。
すなわち、符号化過不足符号量算出部201は、予め定められた平均ビットレート(基準目標ビットレート:TB_int)に基づいて、次式によりGOPの基準目標符号量(T_int)を算出する(図2のステップS10)。
T_int=TB_int×N/PR (1)
ただし、(1)式中、PRはピクチャレート(固定値)、Nは符号化したGOPを構成するピクチャの枚数である。
続いて、符号化過不足符号量算出部201は、算出した基準目標符号量(T_int)と、動画像符号化部100内の可変長符号化部104からのGOP発生符号量(S_gop)とより、GOPの過不足符号量(dS_gop)を求める(図2のステップS11)。このGOPの過不足符号量(dS_gop)は、GOP発生符号量(S_gop)と、GOPの基準目標符号量(T_int)との差分で与えられる。従って、GOPの過不足符号量dS_gopは次式で与えられる。
dS_gop=S_gop−T_int (2)
ただし、(2)中、dS_gopの初期値は0である。
(2)式から分かるように、上記のGOPの過不足符号量dS_gopが正ならば、符号化が難しく目標符号量に対して発生符号量が上回ったことを意味し、負ならば符号化が容易で目標符号量に対して発生符号量が下回ったことを意味する。
次に、バッファ充足率算出部202が図3のフローチャートに従った動作をする。まず、バッファ充足率算出部202は、上記のGOPの過不足符号量(dS_gop)より、可変長符号化部104内のバッファの充足量(BktFlns)を算出する(図3のステップS20)。このバッファ充足量(BktFlns)は、GOP過不足符号量の積算であるから、次式で与えられる。
BktFlns=min(BktBufSize,max(−BktBufSize,BktFlns−dS_gop)) (3)
ただし、(3)式中、min(a,b)はa≦bならばa,b<aならばbを返し、max(a,b)はa≧bならばa,a<bならばbを返す。また、BktFlnsの初期値は0であり、BktBufSizeはバッファの許容バッファサイズを示す。また、次式の不等式が成立する。
−BktBufSize≦BktFlns≦BktBufSize
続いて、バッファ充足率算出部202は、算出したバッファ充足量(BktFlns)に基づいて、バッファ充足率(BktFlnsRate)を求める(ステップS21)。ここで、バッファ充足率(BktFlnsRate)は、バッファの許容バッファサイズ(BktBufSize)に対するバッファ充足量(BktFlns)の割合であるから、次式で与えられる。
BktFlnsRate=BktFlns/BktBufSize (4)
ただし、BktFlnsRateの初期値は0である。また、−1≦BktFlnsRate≦1である。
次に、符号配分率算出部203が図4のフローチャートに従った動作をする。符号配分率算出部203は、バッファ充足率算出部202からの、バッファ充足率(BktFlnsRate)と符号量配分率(BitDistRate)の関係を表す関数を用いて、符合量の配分率を求める(図4のステップS30〜S35)。すなわち、符号配分率算出部203は、まず、上記のバッファ充足率(BktFlnsRate)が0以上であるかどうか判定し(図4のステップS30)、0以上であるときには、前記GOP過不足符号量(dS_gop)が0以上であるかどうか判定する(図4のステップS31)。
GOP過不足符号量(dS_gop)が0以上であるときには、(2)式からバッファが正方向に溜まっている場合、すなわち、可変長符号化部104内にあるバッファに蓄積される符号量が、時間の経過につれて増加している場合であり、増加傾向にあるほど符号量配分率(BitDistRate)を大きくする(図4のステップS32)。すなわち、ステップS32では、難しいシーケンスが続いて、バッファに蓄積される符号量(GOP発生符号量)が時間の経過につれて増加しているので、レートを上げるために符号量配分率(BitDistRate)を大きくする。
一方、ステップS31でGOP過不足符号量(dS_gop)が負であると判定されたときには、バッファに正方向に符号量が殆ど溜まっていない場合、すなわち、上記バッファに蓄積される符号量(GOP発生符号量)が増加していないか、時間の経過につれて減少している場合であり、減少傾向にあるほど符号量配分率(BitDistRate)を大きくする(図4のステップS33)。すなわち、バッファ充足率(BktFlnsRate)が正で絶対値が小さく、GOP過不足符号量(dS_gop)が負の場合は、バッファに符号量が正方向に溜まっている状態で、簡単なシーケンスによりバッファの符号量が減少する場合であり、このときには、難しいシーケンスを符号化するときに備えてバッファに余裕を持たせるため、上記のステップS33において、符号量配分率(BitDistRate)を小さくしようとする。
また、ステップS30でバッファ充足率(BktFlnsRate)が負であると判定されたときには、符号量配分率(BitDistRate)は0とする(図4のステップS34)。すなわち、ステップS30でバッファ充足率(BktFlnsRate)が負であると判定されたときには、可変長符号化部104内のバッファに蓄積される符号の符号量が負方向に溜まる場合、換言すると、バッファに蓄積される符号量が時間の経過と共に減少する場合は、簡単なシーケンスが続いているとみなし、上記のステップ34にて符号量配分率(BitDistRate)を0とすることで、常に基準目標レートに設定するのである。
これにより、レートを上げる方向に配分しないようにすることで、再び難シーケンスに切り替わるときに多めに符号量を配分させることができる。符号配分率算出部203は、上記のステップS32、S33又はS34の処理により算出した符号量配分率(BitDistRate)を出力する(図4のステップS35)。
以上のステップS32、S33、S34において算出する符号量配分率(BitDistRate)を、関数fで表現すると、以下のように表される。ここで、関数表記において簡易化のため、BktFlnsRate=x,BitDistRate=yとする。
(i)BktFlnsRate≧0、かつ、dS_gop≧0の場合(図4のS30Yes,S31Yes,S32,S35)
y=f(x) (5)
(ii)BktFlnsRate≧0、かつ、dS_gop<0の場合(図4のS30Yes,S31No,S33,S35)
y=f(−x+1) (6)
(iii)BktFlnsRate<0の場合(図4のS30No,S34,S35)
y=0 (7)
例えば、上記のfを線形関数とすると、以下のように表される。
f(x)=x (8)
従って、バッファ充足率(BktFlnsRate=x)に対する符号量配分率(BitDistRate=y)を線形関係にすると、図8に示すように表される。すなわち、図8に実線で示すy=xの直線は、(5)式に(8)式を代入した直線であるため、次式で表される関係を示す。
BitDistRate=BktFlnsRate (0≦BitDistRate≦1,dS_gop≧0) (9)
また、図8に点線で示すy=−x+1の直線は、(6)式に(8)式を代入した直線であるため、次式で表される関係を示す。
BitDistRate=−BktFlnsRate+1 (0≦BitDistRate≦1,dS_gop<0) (10)
これに対し、上記のfを非線形関数である指数関数とすると、例えば以下のように表される。
f(x)=α・(β−1) (β=(α+1)/α) (11)
バッファに符号があまり溜まっていないときは、レートを減らす方向(DS_GOP>0)にあまり分配しないようにし、レートを増やす方向(DS_GOP<0)に多めに分配するようにするには、fを指数関数とし、適当なαとβを定めることが望ましい。例えば、α=1とすると、(11)式からβ=2となるから、指数関数fは以下のように表される。
f(x)=2−1 (12)
従って、バッファ充足率(BktFlnsRate=x)に対する符号量配分率(BitDistRate=y)を(12)式に示される非線形関係にすると、図9に示すように表される。すなわち、図9に実線で示すy=2−1の曲線は、(5)式と(12)式とから得られる曲線であるため、次式で表される関係を示す。
BitDistRate=2BktFlnsRate−1 (0≦BitDistRate≦1,dS_gop≧0) (13)
また、図9に点線で示すy=2(-x+1)−1の曲線は、(6)式と(12)式とから得られる曲線であるため、次式で表される関係を示す。
BitDistRate=2(-BktFlnsRate+1)−1 (0≦BitDistRate≦1,dS_gop<0) (14)
本実施の形態では、以上のような、バッファ充足率(BktFlnsRate)と基準目標ビットレート(TB_int)とから、過不足符号量(dS_gop)を基にした符号量配分率(BitDistRate)の関数fを指数関数に設定することで、目標ビットレート(TB_gop)を算出し、可変ビットレート制御を行う。
次に、図1の目標ビットレート算出部204の動作について、図5のフローチャートと共に説明する。目標ビットレート算出部204は、符号量配分率(BitDistRate)とGOPの過不足符号量(dS_gop)から現GOPの目標符号量(T_gop)を算出する(図5のステップS40〜S42)。
すなわち、目標ビットレート算出部204は、GOPの過不足符号量(dS_gop)に対して、符号量配分率(BitDistRate)を掛けたものが次のGOPの目標符号量(T_gop)に加算する配分符号量(dDistBit)となるので、まず、以下の式により配分符号量(dDistBit)を算出する(図5のステップS40)。
dDistBit=dS_gop×BitDistRate (15)
ただし、dDistBitの初期値は0である。
従って、配分レート(dDistRate)は、現(これから符号化する)GOPのピクチャ枚数Nに対して、以下のように表される。
dDistRate=dDistBit×PR/N (16)
ここで、バッファ充足量(BktFlns)が正で、一つ前のGOP符号量が目標符号量(T_gop)を超えている場合は、配分レート(dDistRate)は0以下となる。すなわち、一つ前のGOP符号量(S_gop)が目標符号量(T_gop)を超えている場合(S_gop>T_gop)は、(2)式よりdS_gopが負となる。符号量配分率(BitDistRate)は(13)式より常に0以上であるから、(15)式より配分符号量(dDistBit)は0以下となる。従って、(16)式より、配分レート(dDistRate)も0以下となる。同様に、バッファ充足量(BktFlns)が正で、一つ前のGOP符号量が目標符号量(T_gop)を下回った場合は、配分レート(dDistRate)は正となる。
続いて、目標ビットレート算出部204は、現GOPの目標ビットレート(TB_gop)を算出する(図5のステップS41)。ここで、現GOPの目標ビットレート(TB_gop)は、一つ前のGOPの目標ビットレートに配分ビットレート(dDistRate)を加算したものになるので、次式で表される。
TB_gop=TB_gop+dDistRate (17)
そして、目標ビットレート算出部204は、ステップS41で算出した現GOPの目標ビットレートを用いて、現GOPの目標符号量(T_gop)を次式により算出する(図5のステップS42)。
T_gop=TB_gop×N/PR (18)
ただし、上式中、T_gopの初期値はT_intである。
次に、図1の画像タイプ別目標符号量算出部205の動作について、図6に示すフローチャートと共に説明する。画像タイプ別目標符号量算出部205は、上記の目標ビットレート算出部204において(18)式により算出された現GOPの目標符号量(T_gop)と、可変長符号化部104からのピクチャ複雑度(X_pic)とを用いて、画像タイプ別に目標符号量(T_pic)を算出する(図6のステップS50)。
ここで、上記のピクチャ複雑度(X_pic)を、ピクチャの発生符号量とピクチャ内の量子化パラメータの平均値との積とすると、例えば、MPEG−2におけるTest Model 5に準拠する場合、以下の(19)式〜(21)式で画像タイプ別に目標符号量(T_pic)が求められる。
なお、「量子化パラメータ」とは、量子化ステップ値に対応する符号化パラメータである。量子化パラメータと量子化ステップは、例えば、MPEG−1では線形の関係であり、MPEG−2やMPEG−4 AVC等では非線形の関係である。ただし、以下の(19)式〜(21)式における(I)、(P)、(B)はIピクチャ、Pピクチャ、Bピクチャの変数であることを示している。また、Kp,Kbはそれぞれ、Pピクチャ,Bピクチャの量子化パラメータにおける、Iピクチャの量子化パラメータを基準とした比率であり、例えば、Kp=1.0、Kb=1.4である。また、N_picは画像タイプ別の符号化ピクチャ枚数である。
T_pic(I)=T_gop/Z(I) (19)
Z(I)=N_pic(I)+{(N_pic(P)×X_pic(P))/(X_pic(I)×Kp)}
+{(N_pic(P)×X_pic(P))/(X_pic(I)×Kp)}
T_pic(P)=T_gop/Z(P) (20)
Z(P)={(N_pic(I)×X_pic(I)×Kp)/X_pic(P)}+N_pic(P) +{(N_pic(B)×X_pic(B)×Kp)/(X_pic(P)×Kb)}
T_pic(B)=T_gop/Z(B) (21)
Z(B)={(N_pic(I)×X_pic(I)×Kb)/X_pic(B)}
+{(N_pic(P)×X_pic(P)×Kb)/(X_pic(B)×Kp)+N_pic(B)}
次に、画像タイプ別量子化ステップ算出部206の動作について、図7のフローチャートと共に説明する。画像タイプ別量子化ステップ算出部206は、画像タイプ別目標符号量算出部205により、(19)式〜(21)式により算出された上記の画像タイプ別目標符号量(T_pic(n):nはGOP番号)と前GOPの画像タイプ別目標符号量(T_pic(n−1))との比から画像タイプ別の量子化ステップを設定する(図7のステップS60)。
すなわち、MPEG−4 AVCを例にとると、量子化ステップと発生符号量は比例関係にあることから、画像タイプ別量子化ステップ算出部206は、画像タイプ別目標符号量(T_pic(n):nはGOP番号)と前GOPの画像タイプ別目標符号量(T_pic(n−1))との比により、画像タイプ別に量子化ステップを設定する。すなわち、GOP番号nの量子化ステップをQstep_gop(n)、GOP番号(n−1)の量子化ステップをQstep_gop(n−1)とすると、画像タイプ別量子化ステップ算出部206は、GOP番号nの画像タイプ別目標符号量T_pic(n)とGOP番号(n−1)の画像タイプ別目標符号量T_pic(n−1)との比を用いて、以下の式で画像タイプ別量子化ステップを算出する。
Qstep_gop(n)=Qstep_gop(n-1)×(T_pic(n-1)/T_pic(n)) (22)
画像タイプ別量子化ステップ算出部206が、(22)式により各ピクチャタイプ別にそれぞれ算出した画像タイプ別量子化ステップは、図1の量子化部103に入力され、ここで直交変換部102から供給される周波数変換係数の量子化を行わせる。これにより、量子化部103で生成された量子化係数は、可変長符号化部104にて可変長符号化されて動画像信号の符号化ビットストリームを生成する。
なお、以上で求めた量子化ステップを、GOP内のピクチャ別に算出してもよいし、また、ピクチャ内の符号化単位であるマクロブロック毎に算出してもよい。これらの算出方法は、例えば、MPEG−2におけるTest Model 5のような方法を適用してもよいし、他の方法であってもよい。
以上説明したように、本実施の形態では、バッファ充足率(BktFlnsRate)から所定の非線形関数である指数関数に従って符号量配分率(BitDistRate)を算出し、その符号量配分率(BitDistRate)とGOPの過不足符号量(dS_gop)とから現GOPの目標符号量(T_gop)を算出し、現GOPの目標符号量(T_gop)と一つ前のGOPの目標符号量との比に応じて量子化ステップを設定し、その量子化ステップで動画像信号を量子化することで可変ビットレート制御を行う。従って、本実施の形態によれば、例えば、バッファ充足率(BktFlnsRate)が少ないときは、符号量配分率(BitDistRate)を上記の指数関数の設定により従来よりも小さくすることで、量子化ステップの変化率を従来の比例関係に比べ小さくすることができる。
すなわち、基準目標ビットレートから過不足符号量を基にした符号量配分率は、従来の比例関係では(9)式を基に表現されていたのに対して、本実施の形態では(13)式を基に指数関数的に設定されるので、バッファ充足率が少ない場合には、量子化ステップの変化率を小さくできる。
このことについて具体例を挙げて説明する。バッファ充足率(BktFlnsRate)が少ない例として、例えばBktFlnsRate=0.1であるときは、本実施の形態では符号量配分率(BitDistRate)は(13)式からBitDistRate=(20.1)−1=0.07である。一方、従来は(9)式からBitDistRate=0.1である。よって、本実施の形態の方が、符号量分配率(BitDistRate)は小さくなる。
また、GOPの過不足符号量(dS_gop)が負、すなわち、GOPの発生符号量が目標符号量(T_gop)を超えた場合、配分レート(dDistRate)は(15)式及び(16)式より負となり、(17)式より現GOP目標ビットレート(TB_gop)は、一つ前のGOP目標ビットレートより小さくなる。例えば、dS_gop=−100000[bits]、PR=30[Hz]、N=15、一つ前のGOP目標ビットレート(TB_gop)を300000[bits]とすると、本実施の形態では、符号量配分率(BitDistRate)が上記のように0.07であるから、配分符号量(dDistBit)は(15)式より−7000[bits](=−100000×0.07)となる。これに対し、従来は符号量配分率(BitDistRate)が上記のように0.1であるから、配分符号量(dDistBit)は(15)式より−10000[bits](=−100000×0.1)となる。
従って、配分レート(dDistRate)は(16)式より、本実施の形態では−14000[bps](=−7000×(30/15))、従来は−20000[bps](=−10000×(30/15))となる。これにより、現GOPの目標ビットレート(TB_gop)は、(17)式より本実施の形態では、286000[bps](=300000+(−14000))となるのに対し、従来は280000[bps](=300000+(−20000))となる。従って、現GOPの目標符号量(T_gop)は、(18)式により本実施の形態では、143000[bits](=286000×(15/30))となるのに対し、従来は140000[bits](=280000×(15/30))となる。
ここで、(19)式〜(21)式よりピクチャタイプ別目標符号量(T_pic)は、現GOPの目標符号量(T_gop)に比例し、また、(22)式より量子化ステップの変化率は現在のピクチャタイプ別目標符号量と前GOPのピクチャタイプ別目標符号量との比(T_pic(n-1)/T_pic(n))により表現されるため、現GOPの目標符号量(T_gop)が従来に比べて大きな値の本実施の形態の方が、現在のピクチャタイプ別目標符号量(T_pic(n))と一つ前のピクチャタイプ別目標符号量(T_pic(n-1))の差は小さくなる。従って、本実施の形態の方が従来よりも量子化ステップの変化率が小さくなる。
この結果、符号化の難しいシーケンスと簡単なシーケンスが交互に続くような場合に、本実施の形態では難しいシーケンスにおいて量子化ステップの変化率を小さくすることができ、これにより符号化の難しいシーケンスの後半部分における画質劣化を従来よりも抑制することが可能である。また、符号化が易しい(簡単な)シーケンスにおいても、本実施の形態では同様に量子化ステップの変化率を従来よりも小さくすることができるため、必要以上に量子化ステップを小さくして余分な符号量を使うことがなく、符号化が易しいシーケンスにおいて極端に画質が良くなるという現象を抑制でき、シーケンス間で画質を保つことが可能である。
次に、本発明の他の実施の形態について説明する。図10は本発明になる動画像符号化装置の他の実施の形態の要部のブロック図を示す。同図中、図1と同一構成部分には同一符号を付し、その説明を省略する。この実施の形態は、図10に示すように、符号化制御部200’が、図1の符号化制御部200に、量子化ステップ算出モード切替部207、ピクチャ単位符号量制御部207、スイッチSW1、及びスイッチSW2を追加した構成とすることにより、予め規定された仮想的なバッファである符号化バッファ(Coding Picture Buffer:CPB)容量を守る(アンダーフローを防ぐ)ための制御により、符号化規格を遵守し、かつ、従来に比べ画質を均一化したビットストリームを生成するための符号量制御モード切替手法の実施の形態である。すなわち、この実施の形態は、図1と共に説明した上記の実施の形態に、ピクチャ単位の固定ビットレート符号量制御と、符号量制御モード切替手法とを付加したものである。
次に、この実施の形態の動作について図11及び図12を併せ参照して説明する。図11は本発明になる動画像符号化装置の他の実施の形態におけるCPBアンダーフロー防止処理のフローチャートを示す。このフローチャートはピクチャ単位で実行される。また、図12はこの実施の形態における時間に伴うCPB充足量の変化とCPB充足量によるアンダーフロー防止の様子を示す。
図10の量子化ステップ算出モード切替部207は、可変長符号化部104から出力された符号を内部に設けられた仮想的なバッファであるCPBに蓄積すると共に、スルーで符号化過不足符号量算出部201又はピクチャ単位符号量制御部208へスイッチSW1を介して出力する。また、量子化ステップ算出モード切替部207は、CPBの蓄積符号量であるCPB充足量により、符号量制御モード(以下、rc_mode)を可変ビットレート(VBR)モードと固定ビットレート(CBR)モードを切り替えるため、まず画像目標符号量である最大ピクチャビット量を設定する(図11のステップS101)。
ここでは、シーンチェンジ直後のIピクチャにのみ初期設定のピクチャターゲット(目標符号量)を用い、そうでない場合は前のIピクチャの発生符号量を最大ピクチャビット量として設定する。最大ピクチャビット量をMaxPictureBitsとすると、最大ピクチャビット量は以下の式で表される。ここで、T(I)はIピクチャの目標符号量、S(I)はGOPで1つ前のIピクチャの発生符号量である。
(i)シーンチェンジ直後のIピクチャ
MaxPictureBits=T(I) (23)
(ii)シーンチェンジ直後のIピクチャ以外のピクチャ
MaxPictureBits=S(I) (24)
更に、上式で、最大ピクチャビット量MaxPictureBitsを大きくすることでCPB充足量に対して余裕を持たせるため、予め定めたMaxPicBitsRatio(≧1.0)を乗算する。
MaxPictureBits=MaxPictureBits×MaxPicBitsRatio (25)
この(25)式で表される最大ピクチャビット量MaxPictureBitsがステップS101で設定される最大ピクチャビット量である。
続いて、量子化ステップ算出モード切替部207は、この最大ピクチャビット量MaxPictureBitsがCPB充足量以上であるかどうか判定し(図11のステップS102)、CPB充足量以上であるときには、符号量制御モードがVBRモードであるかどうか判定する(図11のステップS103)。最大ピクチャビット量MaxPictureBitsがCPB充足量以上の場合、次のピクチャをVBRモードで符号化した場合に、CPBの充足量を下回ってアンダーフローを起こしてしまう可能性があると判断し、マクロブロック単位で符号量を制御するCBRモードの動作に切り替える(図11のステップS104)。
この切り替えにより図10のスイッチSW1が端子a側から端子b側へ切り替わると共に、スイッチSW2が端子c側から端子d側へ切り替わる。CBRモードでは仮想バッファとピクチャターゲットを更新し、符号量制御のための初期設定をする。
すなわち、CpbFullnessをCPBの充足量とすると、符号量制御モード(rc_mode)が
MaxPictureBits≧CpbFullness
で、VBRモードのときには、符号量制御モード(rc_mode)はCBRモードとなる(図11のステップS104)。
上記のステップS104で符号量制御モードがCBRモードに設定された場合、又は上記のステップS103で符号量制御モードがVBRモードではない(CBRモードである)と判定された場合、ピクチャ単位符号量制御部208は、GOP初期量子化ステップを用いて仮想バッファd0()(カッコ内はピクチャタイプを示す)を次の(26)式に基づいて初期化する(図11のステップS105)。
d0(I)=initialQS(I)×r/QS_MAX
d0(P)=Kp×d0(I)
d0(B)=Kb×d0(I) (26)
ただし、(26)式中、initialQS(I)はIピクチャの初期量子化ステップ、rは量子化ステップの応答速度を示すリアクションパラメータ、QS_MAXは量子化ステップの最大値である。また、KpはIピクチャのとの量子化ステップ比を示すPピクチャの量子化ステップ比率、KbはBピクチャの量子化ステップ比率である。
続いて、ピクチャ単位符号量制御部208は、GOP目標符号量(GOP割り当て符号量G)を設定する(図12のステップS106)。CBRモードの場合、確実な符号量制御のためのピクチャターゲット(目標符号量)を算出する。このとき、現ピクチャがシーンチェンジ直後のGOPに属しているかどうかでGOP目標符号量(GOP割り当て符号量G)の算出方法が変わるので、ピクチャ単位でシーンチェンジが発生したかどうか検出する。1つのGOPを構成するピクチャの枚数は、シーンチェンジが発生しない場合は一定枚数であるが、シーンチェンジが発生したピクチャはIピクチャとなり、新しいGOPの先頭ピクチャとして符号化される。そこで、シーンチェンジが発生したピクチャの符号化順(伝送順)で直後のGOP(以下、これをシーンチェンジ直後のGOPという)であるかどうか検出する。このシーンチェンジ直後のGOPは、新しいGOPの先頭ピクチャ(シーンチェンジ検出によりIピクチャとなったピクチャ)を含むGOPとなる。
(A)シーンチェンジ直後のGOPではない場合、GOPの目標ビットレート比(rate_ratio)によってGOP残符号量を制御する。GOPの目標ビットレート比(rate_ratio)は以下の式で表される。
rate_ratio=Bitrate_For_Previous/Bitrate_For_Current (27)
ただし、(27)式中、Bitrate_For_Previousは前GOPのビットレート、Bitrate_For_Currentは現GOPの目標ビットレートである。
ステップS106で算出するGOP目標符号量、すなわちGOP割り当て符号量(G)は、前のGOPの発生ビットレート(Coded_Bitrate)と(27)式の目標ビットレート比(rate_ratio)とに基づいて、次式により算出される。これにより,急激なビットレート低下を抑制する。
G=(Coded_Bitrate×N×rate_ratio/picture_rate) (28)
GOP残符号量(R)はGOP割り当て符号量(G)に等しい。
R=G (29)
次に、ピクチャ単位符号量制御部208は、ピクチャタイプ別目標符号量を設定する(図11のステップS107)。符号化順(伝送順)で次のピクチャまで巻き込まないようにCPB増加分(P,Bは半分)(PictureIncBits)を最大(Tmax)とする。ただし、PictureIncBitsはピクチャ単位のCPB増加量、Tmaxはピクチャタイプ別目標符号量の最大値である。これらの間には、次式の関係がある。
(a)Iピクチャの場合
Tmax=PictureIncBits (30)
(b)Pピクチャ、Bピクチャの場合
Tmax=PictureIncBits/2 (31)
更に、ピクチャタイプ別目標符号量の最大値(Tmax)は、前の同タイプピクチャ発生符号量(S)と比較して、次式に示すように小さい方を次のピクチャのピクチャタイプ別目標符号量の最大値とする。
Tmax=min(Tmax,S) (32)
小さい方をとる理由は、ピクチャタイプ別目標符号量の最大値Tmaxを前の同タイプのピクチャと同程度の発生符号量(S)かそれ以下とすれば、CPBのアンダーフローを防ぐことができるためである。
なお、ピクチャタイプ別目標符号量の最大値Tmaxは、CPBのピクチャ単位のバッファ増加分(PictureIncBits)及び前の同タイプのピクチャ発生符号量(S)に基づき決定される。ここで、CPBにおけるピクチャ単位のバッファ増加分(PictureIncBits)とは、最大ビットレート(符号化前に定めた固定値:”MaxBitRate”とする)をピクチャレート(PR)で除算した値となり、次式で表される。
PictureIncBits=MaxBitRate/PR (33)
また、前の同タイプのピクチャ発生符号量(S)は、シーンチェンジがない場合にのみ定義される。例えば、
I(0)、P(1)、B(2)、B(3)、P(4)、B(5)、B(6)、P(7)、B(8)、B(9)、P(10)、B(11)、B(12)、I(13)(ただし、括弧内の数字は符号化順を示す)
の順で符号化する場合、I(13)の前の同タイプのピクチャ発生符号量Sは、I(0)の発生符号量のことである。同様に、例えば、P(7)の前の同タイプのピクチャ発生符号量SはP(4)の発生符号量のことを意味し、たとえば、B(3)の前の同タイプのピクチャ発生符号量SはB(2)の発生符号量を意味する。ここでは、シーンチェンジがないとしているので、GOPの構成とは関係なく、I(13)に対するI(0)のように、同タイプのピクチャ発生符号量SはGOPを跨いで異なるGOPのピクチャの発生符合量を指すこともある。
以上により、ステップS107で設定されるピクチャタイプ別目標符号量Tは、以下の通りとなる。なお、T(I)はIピクチャの目標符号量、T(P)はPピクチャの目標符号量、T(B)はBピクチャの目標符号量である。
T(I)=R/(1.0+N(P)・X(P)/(X(I)・Kp)+N(B)・X(B)/(X(I)・Kb))
T(I)=min(Tmax,max(T(I),Tmin)) (34)
T(P)=R/(Kp・X(I)/X(P)+N(P)+N(B)・Kp・X(B)/(Kb・X(P)))
T(P)=min(Tmax,max(T(P),Tmin)) (35)
T(B)=R/(1.0・Kb・X(I)/X(B)+N(B)+N(P)・Kb・X(P)/(Kp・X(B)))
T(B)=min(Tmax,max(T(B),Tmin)) (36)
(B)シーンチェンジ直後のGOPの場合
この場合、ピクチャタイプ別目標符号量T(T(I)、T(P)、T(B))はGOP初期設定時に算出されているので、次式により画面内アクティビティ平方比によって更新する。
T=T×Sqrt(CurIntAveACT/BasicActivity) (37)
ただし、上式中、CurIntAveACTは現在のピクチャのアクティビティであり、BasicActivityは、アクティビティの基準値(定数)である。なお、GOP初期設定時は、(28)式におけるGOP割り当て符号量Gを(1)式のGOP基準目標符号量(T_int)とし、また、(29)式によりR=Gであり、このR(=T_int)を(34)式〜(36)式に代入することにより、(37)式右辺のピクチャタイプ別目標符号量T(T(I)、T(P)、T(B))が求められる。
また、符号化順(伝送順)で次のピクチャまで巻き込まないように、ピクチャ単位のCPB増加量PictureIncBitsをIピクチャの場合は最大(Tmax)とし、Pピクチャ、Bピクチャの場合は最大値(Tmax)の2倍とする。すなわち、次式で表される。
(a)Iピクチャの場合
Tmax=PictureIncBits (38)
(b)Pピクチャ、Bピクチャの場合
Tmax=PictureIncBits/2 (39)
更に、ピクチャタイプ別目標符号量Tは、その最小値(Tmin)と比べて大きい方と、その最大値(Tmax)と比較して小さい方を次のピクチャのピクチャタイプ別目標符号量Tとする。
T=min(Tmax,max(T,Tmin)) (40)
以上で、図11のステップS107でのピクチャタイプ別目標符号量が設定される。続いて、ピクチャ単位符号量制御部208はマクロブロック毎に符号量制御を行うことで、CPBアンダーフローを防止する(図11のステップS108)。ここで、ステップS108のマクロブロック単位での符号量制御については、以上で求められた、ピクチャタイプ別の目標符号量を基準とした制御方法であればよく、例えばTM5による方式であってもよいし、他の方法であってもよい。
ここでは、一例としてTM5の方式によるマクロブロック単位の固定ビットレート量子化ステップ算出方法を示す。(26)式によってピクチャタイプ別に設定した仮想バッファd0(I)、d0(P)、d0(B)を用いて、量子化ステップをマクロブロック単位のフィードバック制御で求める。j番目のマクロブロックの符号化に先立ち、ピクチャタイプ別の仮想バッファd0の占有量d[j](I)、d[j](P)、d[j](B)を以下の式により求める。
d[j](I)=d0(I)+B[j-1]−(T(I)×(j-1)/NumMB)
d[j](P)=d0(P)+B[j-1]−(T(P)×(j-1)/NumMB)
d[j](B)=d0(B)+B[j-1]−(T(B)×(j-1)/NumMB)
ここで、B[j]はピクチャ内のj番目までのマクロブロックを符号化した際に発生した符号量、また、NumMBはピクチャ内のマクロブロック個数である。また、j=0の場合は、上式は次のようになる。
d[0](I)=d0(I)
d[0](P)=d0(P)
d[0](B)=d0(B)
j番目のマクロブロックに対するIピクチャ、Pピクチャ、Bピクチャの各量子化ステップQstep[j](I)、Qstep[j](P)、Qstep[j](B)は、Iピクチャ、Pピクチャ、Bピクチャの各量子化パラメータをそれぞれQP[j](I)、QP[j](P)、QP[j](B)とすると、以下の式で求められる。
QP[j](I)=d[j](I)×51/r
Qstep[j](I)=2((QP[j](I)−4)/6) (41a)
QP[j](P)=d[j](P)×51/r
Qstep[j](P)=2((QP[j](P)−4)/6) (41b)
QP[j](B)=d[j](B)×51/r
Qstep[j](B)=2((QP[j](B)−4)/6) (41c)
ステップS108の符号量制御後は、図1に示した実施の形態と同様の動作によるピクチャ符号化が行われる。
なお、図10の量子化ステップ算出モード切替部207は、図11のステップS102で最大ピクチャビット量がCPB充足量未満であると判定したときは、符号量制御モード(rc_mode)を可変ビットレート(VBR)モードとし、スイッチSW1を端子a側に接続すると共にスイッチSW2を端子c側に接続し、前述したピクチャ単位符号量制御部208の処理は行わない。すなわち、CPB充足量に余裕ができたため、VBRモードでの符号化に戻る(図11のステップS109)。
以上の図11の処理について図12と共に更に説明する。シーンチェンジがない場合に、I(0)、P(1)、B(2)、B(3)、P(4)、B(5)、B(6)、・・・(ただし、括弧内の数字は符号化順を示す)の順で符号化する場合、I(0)ピクチャをVBRモードで符号化すると、右肩上がりの斜線で示される固定値のCPB増加分(PictureIncBits)だけ発生符号量S(I(0))が増加する。
ここで、図12に301で示す、発生符号量S(I(0))の最大ピクチャビット量(MaxPicBitsRatio)倍の値が、同図に点線302で示すCPBアンダーフロー警戒線であり、CPB充足量(CpbFullness)が、このCPBアンダーフロー警戒線を下回ると、CPBアンダーフローを警戒し、CBRモードで動作する。図12の例では、P(4)ピクチャの発生符号量によりCPBアンダーフロー警戒線302を下回る。このとき、(24)式、(25)式と、
S(I(0))×MaxPictureBits≧CpbFullness
の条件で、VBRモードのときには、符号量制御モードはCBRモードに切り替わる(図11のステップS104)。
続いて、B(5)ピクチャの目標符号量T(B(5))は、(32)式及び(36)式から、B(5)のピクチャタイプ別目標符号量の最大値Tmax(B(5))と、B(5)ピクチャの前の同タイプのB(3)のピクチャ発生符号量S(B(3))(これは(32)式のSに相当)と、T(B(5))の中から最小のものを選択される。ここでは、Tmax(B(5))が選択されるものとすると、これは(31)式よりPictureIncBits/2である。
すなわち、この場合の、B(5)ピクチャの目標符号量T(B(5))は、CPBの増加分(PictureIncBits)の1/2倍の値を超えないため、図12に303で示すように、マクロブロック制御により、ほぼ正確にピクチャ毎のCPBの増加分(PictureIncBits)の1/2倍以下に発生符号量が抑えられ、図12に示すように、CPB充足量はCPBアンダーフロー警戒線302より上となる。
仮に、ピクチャB(5)の符号化時にアンダーフロー警戒線302を下回っても、次のピクチャB(6)も同様にCPB増加分の1/2倍程度で符号化されるため、これを繰り返すと、いずれはCPB充足量はアンダーフロー警戒線302より上となる。よって、本実施の形態により、CPBのアンダーフローを防止することができる。
以上の図10〜図12と共に説明した実施の形態によれば、VBRモードではスイッチSW1を端子a側に接続し、かつ、スイッチSW2を端子c側に接続して、図1等と共に説明した先の実施の形態による可変ビットレートの量子化ステップで量子化部103を制御しGOP単位での量子化パラメータ制御を行いながら、最大ピクチャビット量がCPB充足量以上の時には、スイッチSW1を端子b側に接続し、かつ、スイッチSW2を端子d側に接続してCBRモードとし、ピクチャ単位符号量制御部208から出力される固定ビットレートの量子化ステップで量子化部103を制御することで、規定されたバッファ容量を保ちながら、VBR制御が可能であるため、符号化の規格に沿ったビットストリームを従来に比べ高画質で生成することができる。
なお、本発明は以上の実施の形態に限定されるものではなく、本発明は上記した装置の機能をプログラムによりコンピュータに実現させるようにしてもよい。このプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。また、本発明は、量子化・符号化を行う信号の圧縮方式に適用可能であり、例えば、動画像信号だけでなくオーディオ信号にも適用可能である。
本発明の動画像符号化装置の一実施の形態のブロック図である。 図1中の符号化過不足符号量算出部の動作説明用フローチャートである。 図1中のバッファ充足率算出部の動作説明用フローチャートである。 図1中の符号配分率算出部の動作説明用フローチャートである。 図1中の目標ビットレート算出部の動作説明用フローチャートである。 図1中の画像タイプ別目標符号量算出部の動作説明用フローチャートである。 図1中の画像タイプ別量子化ステップ算出部の動作説明用フローチャートである。 図1中の符号配分率算出部におけるバッファ充足率と符号配分率の関係(線形)の一例を表す図である。 図1中の符号配分率算出部におけるバッファ充足率と符号配分率の関係(非線形)の他の例を表す図である。 本発明の動画像符号化装置の他の実施の形態の要部のブロック図である。 図10の要部の動作説明用フローチャートである。 本発明の他の実施の形態における時間に伴うCPB充足量の変化とCPB充足量によるアンダーフロー防止の様子を示す図である。
符号の説明
100 動画像符号化部
101 予測部
102 直交変換部
103 量子化部
104 可変長符号化部
105 逆量子化部
106 逆直交変換部
107 画像メモリ部
200、200’ 符号化制御部
201 符号化過不足符号量算出部
202 バッファ充足率算出部
203 符号配分率算出部
204 目標ビットレート算出部
205 画像タイプ別目標符号量算出部
206 画像タイプ別量子化ステップ算出部
207 量子化ステップ算出モード切替部
208 ピクチャ単位符号量制御部
SW1、SW2 スイッチ


Claims (2)

  1. 符号化対象の動画像信号と参照画像信号とから予測手段にて所定の符号化単位で予測信号を生成し、その予測信号と前記動画像信号との差分信号を直交変換手段により直交変換して直交変換係数を生成し、前記直交変換係数を外部からの量子化ステップに基づき量子化した信号から、参照画像信号生成手段により前記参照画像信号を生成すると共に、可変長符号化手段で可変長符号化して符号化信号を出力する符号化部と、
    前記可変長符号化手段における所定の画像群符号化単位毎の発生符号量と予め定められた基準目標符号量との差分である過不足符号量に応じて、前記可変長符号化手段における所定の画像群符号化単位毎の発生符号量を前記基準目標符号量となるように、前記符号化部へ供給する前記量子化ステップを可変制御する符号化制御部と
    よりなる動画像符号化装置であって、
    前記符号化制御部は、
    前記可変長符号化手段における前記画像群符号化単位毎の発生符号量から前記画像群符号化単位毎の前記基準目標符号量を差し引いて、前記過不足符号量を算出する過不足符号量算出手段と、
    前記過不足符号量を積算して得たバッファ充足量と、前記可変長符号化手段内の前記画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとの比であるバッファ充足率を算出するバッファ充足率算出手段と、
    前記バッファ充足率が0以上で、かつ、前記過不足符号量が0以上のときは、第1の非線形関数に従って前記バッファ充足率から符号量配分率を算出し、前記バッファ充足率が0以上で、かつ、前記過不足符号量が負のときは、第2の非線形関数に従って前記バッファ充足率から前記符号量配分率を算出し、前記バッファ充足率が負のときは前記符号量配分率を0とする符号量配分率算出手段と、
    前記符号量配分率算出手段で算出された前記符号量配分率と前記過不足符号量とから、現在の画像群符号化単位の目標符号量を算出する目標符号量算出手段と、
    前記目標符号量算出手段で算出された前記現在の画像群符号化単位の目標符号量と、一つ前の画像群符号化単位の目標符号量との比から前記量子化ステップを算出する量子化ステップ算出手段と
    を有し、前記第1の非線形関数は、前記バッファ充足率の増加に従い前記符号量配分率を非線形的に増加させる関数であり、前記第2の非線形関数は、前記バッファ充足率の増加に従い前記符号量配分率を非線形的に減少させる関数であることを特徴とする動画像符号化装置。
  2. 前記符号化制御部は、
    前記目標符号量から算出された現在の画像群符号化単位に含まれる画像目標符号量を算出する画像目標符号量算出手段と、
    前記画像目標符号量により所定の符号化単位で固定ビットレートの量子化ステップを算出する固定ビットレート量子化ステップ算出手段と、
    前記可変長符号化手段から出力される符号を予め定められたバッファに蓄積し、該バッファの蓄積符号量が前記画像目標符号量に関連した所定の容量を下回っているかどうかを監視するバッファ容量監視手段と、
    前記バッファ容量監視手段により、前記バッファの蓄積符号量が前記所定の容量を下回っていると判定されたときは、前記固定ビットレート量子化ステップ算出手段により算出された前記固定ビットレートの量子化ステップを前記符号化部へ出力し、前記バッファの蓄積符号量が前記所定の容量を超えていると判定されたときは、前記量子化ステップ算出手段により算出された可変ビットレートの量子化ステップを前記符号化部へ出力する量子化ステップ切替出力手段と
    を更に有することを特徴とする請求項1記載の動画像符号化装置。
JP2006120040A 2005-09-20 2006-04-25 動画像符号化装置 Pending JP2007116655A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006120040A JP2007116655A (ja) 2005-09-20 2006-04-25 動画像符号化装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005271376 2005-09-20
JP2006120040A JP2007116655A (ja) 2005-09-20 2006-04-25 動画像符号化装置

Publications (1)

Publication Number Publication Date
JP2007116655A true JP2007116655A (ja) 2007-05-10

Family

ID=38098403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006120040A Pending JP2007116655A (ja) 2005-09-20 2006-04-25 動画像符号化装置

Country Status (1)

Country Link
JP (1) JP2007116655A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012521141A (ja) * 2009-03-19 2012-09-10 コア ロジック,インコーポレイテッド エンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置
CN108124155A (zh) * 2016-11-30 2018-06-05 阿里巴巴集团控股有限公司 一种码率控制方法、装置及电子设备
CN116156209A (zh) * 2022-12-21 2023-05-23 上海幻电信息科技有限公司 直播流码率突变的检测方法、装置、存储介质及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012521141A (ja) * 2009-03-19 2012-09-10 コア ロジック,インコーポレイテッド エンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置
US8948242B2 (en) 2009-03-19 2015-02-03 Core Logic Inc. Encoding device and method and multimedia apparatus including the encoding device
CN108124155A (zh) * 2016-11-30 2018-06-05 阿里巴巴集团控股有限公司 一种码率控制方法、装置及电子设备
CN116156209A (zh) * 2022-12-21 2023-05-23 上海幻电信息科技有限公司 直播流码率突变的检测方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US6801572B2 (en) Method and apparatus for image signal encoding
US8824546B2 (en) Buffer based rate control in video coding
US7426309B2 (en) Method of controlling encoding rate, method of transmitting video data, encoding rate controller for video encoder, and video data transmission system using the encoding rate controller
KR100790149B1 (ko) 비디오 인코딩 데이터율 제어 방법
JPWO2009157577A1 (ja) 画像処理装置及び画像処理方法
JP4706104B2 (ja) 画像符号化装置及びその方法
US6714592B1 (en) Picture information conversion method and apparatus
JPWO2009157579A1 (ja) 画像処理装置及び画像処理方法
JP2012521141A (ja) エンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置
JP2000197049A (ja) 動画像可変ビットレート符号化装置および方法
JP2006295535A (ja) 動画像符号化装置および方法
JP4362795B2 (ja) 動画像符号化装置及びその方法
US6226326B1 (en) Coding device and coding method
JP2007116655A (ja) 動画像符号化装置
JP2004328150A (ja) 動画像符号化装置及び方法
KR100800838B1 (ko) 비디오 인코딩 데이터율 제어 방법
US20030174771A1 (en) Method, apparatus, and program for variable bit rate encoding
JP2008271213A (ja) 画像符号化装置
Yin et al. A rate control scheme for H. 264 video under low bandwidth channel
US7801214B2 (en) Method and apparatus for controlling encoding rate and quantization scales
KR101336445B1 (ko) 비디오 인코딩 데이터율 제어 방법
JP2008078978A (ja) 動画像符号化装置
JP3918208B2 (ja) 映像データ圧縮装置およびその方法
JP4346732B2 (ja) ビデオ・フレームの多重ストリームを処理する方法及びシステム
JPH10210475A (ja) 画像符号化装置