従来、例えばテレビ会議システム、テレビ電話システム等のように動画の映像信号を遠隔地に伝送するシステムや、動画の映像信号を光ディスク、磁気ディスク、磁気テープ等の画像記録媒体に記録し、また記録された動画の映像信号を再生するシステム等において、伝送路(あるいは画像記録媒体)を効率良く利用するために、映像信号の有するライン相関やフレーム相関を利用して映像信号を所謂高能率符号化し、空間軸方向と時間軸方向の冗長度を落として有意情報のみを伝送し、伝送効率を高めるようになされている。
例えば空間軸方向の符号化処理(以下フレーム内符号化処理という)では、映像信号の例えばライン相関を利用するもので、図19のAに示す時刻t1 、t2 、t3 、・・・において動画を構成する各画像PC1、PC2、PC3・・・を伝送しようとする場合、伝送処理すべき画像データを、例えば同一走査線内で1次元符号化したり、例えば画像を複数のブロックに分割し、各ブロックの画像データを2次元符号化することにより、データ圧縮を行い、伝送効率を向上させている。
また、時間軸方向の符号化処理(以下フレーム間符号化処理という)では、映像信号のフレーム間相関を利用して例えば所謂予測符号化により、すなわち図19のBに示すように、順次隣合う画像PC1及びPC2、PC2及びPC3・・・間の対応する画素毎の画像データの差分(所謂予測誤差)でなる画像データPC12、PC23・・・を求め、これらの画像データPC12、PC23・・・を伝送することにより、データ圧縮を行い、伝送効率を向上させている。
かくして、画像PC1、PC2、PC3・・・の全ての画像データを伝送する場合と比較して、格段に少ないデータ量で映像信号を伝送することができる。
また、上述のフレーム間符号化処理における予測符号化では、さらに効率を高めるために、例えばマクロブロック単位で動き補償予測が用いられる。すなわち、例えば画面中央の人物が移動する場合等、画面中の動いている物体に対してその動きを検出し、その動き分だけ前の画像中で予測に用いる画像データの位置を補正して予測符号化を行うことにより、符号化効率を向上させることができる。しかし、これでもまだ、物体が移動して後ろから出現した部分に対しては、多くのデータを送らなけらばならない。そこで、動き補償予測を上述の前方だけではなく、後方あるいは両者を組み合わせて行うことにより、さらに符号化効率を高めることができる。
具体的には、図20のAに示すように、伝送しようとする動画の映像信号VDの第0、第1、第2、第3・・・番目のフレームのフレームデータF0、F1、F2、F3・・・のマクロブロックにおいて、順次フレーム間に動きベクトルX0、X1、X2、X3・・・でそれぞれ表わされるような画像の変化があった場合、送信側の装置は、所定フレーム数(例えば1フレーム)置きの、すなわち第2、第4・・・番目のフレームを補間フレームに指定し、これらの補間フレームに対して、図20のBに示すように、所定の補間フレーム処理により伝送補間フレームデータF2X、F4X・・・を生成する。また、残りの非補間フレームに対して、フレームデータF1、F3・・・に所定の符号化処理を施して、伝送非補間フレームデータF1X、F3X・・・を生成する。
例えば、動き補償されたフレームデータF3とフレームデータF2の差分SP2(予測誤差)、動き補償されたフレームデータF1とフレームデータF2の差分SP3、動き補償されたフレームデータF1、F3を補間処理して得られるフレームデータとフレームデータF2の差分SP4をマクロブロック単位でそれぞれ求め、フレームデータF2のマクロブロックSP1とこれらの差分の比較を行う。そして、これらのデータSP1〜SP4のうちでデータ発生量が最小のデータをマクロブロック単位で伝送補間データF2Xとし、以下同様して各補間フレームに対する伝送補間データF4X・・・を生成する。また、非補間フレームのフレームデータF1、F3・・・にそれぞれ、例えばDCT変換処理、可変長符号化処理等を施して伝送非補間フレームデータF1X、F3X・・・を生成する。
そして、これらの伝送非補間フレームデータF1X、F3X・・・及び伝送補間データF2X、F4X・・・を、動きベクトルX0, X1, X3・・・のデータと共に、伝送データDATAとして受信側の装置に伝送する。
一方、受信側の装置は、送られてくる伝送データDATA(伝送非補間フレームデータF1X、F3X・・・、伝送補間データF2X、F4X・・・、動きベクトルX0, X1, X3・・・のデータ)に、送信側の符号化処理に対応した復号化処理を施して、フレームデータF0、F1、F2、F3・・・を再生する。この結果、動き補償予測を前方だけではなく、後方あるいは両者を組み合わせて行うことにより、さらに符号化効率を高めることができる。
ここで、上述の機能を有する画像符号化装置と画像復号化装置について、図21を参照しながら説明する。
この図21に示す画像符号化装置70は、入力映像信号VDを輝度信号と色差信号に分離する前処理回路71と、該前処理回路71からの輝度信号、色差信号をそれぞれディジタル信号に変換するアナログ/ディジタル(以下A/Dという)変換回路72a、72bと、該A/D変換回路72a、72bからの輝度データ、色差データ(以下これらを画像データという)を記憶するフレームメモリ群73と、フレームメモリ群73から画像データをブロックフォーマットに従って読み出すフォーマット変換回路74と、フォーマット変換回路74からのブロックの画像データを高能率符号化するエンコーダ75とを備える。
そして、前処理回路71は、入力映像信号VDを輝度信号と色差信号に分離し、A/D変換回路72a、72bは、輝度信号、色差信号をそれぞれ8ビツトからなる輝度データ、色差データに変換し、フレームメモリ群73は、これらの輝度データ、色差データを記憶する。
フォーマット変換回路74は、フレームメモリ群73に記憶されている画像データ(輝度データ、色差データ)を、ブロックフォーマットに従って読み出し、エンコーダ75は、この読みだされた画像データを所定の高能率符号化により符号化して、ビットストリームを出力する。
そして、このビットストリームは、伝送路や、光ディスク、磁気ディスク、磁気テープ等の画像記録媒体からなる伝送メディア90を介して、画像復号化装置80に供給される。
この画像復号化装置80は、上述の図21に示すように、上記エンコーダ75に対応したデコーダ81と、該デコーダ81で再生された画像データを、フレームフォーマットに変換するフォーマット変換回路82と、該フォーマット変換回路82からの画像データを記憶するフレームメモリ群83と、該フレームメモリ群83から読み出された輝度データ、色差データをアナログ信号に変換するD/A変換回路84a、84bと、該D/A変換回路84a、84bからの輝度信号、色差信号を混合して出力映像信号を生成する後処理回路85とを備える。
そして、デコーダ81は、エンコーダ75の高能率符号化に対応した復号化によりビットストリームを復号化して、ブロックフォーマットの画像データを再生し、フォーマット変換回路82は、この画像データをフレームフォーマットに変換してフレームメモリ群83に記憶する。
D/A変換回路84a、84bは、フレームメモリ群83から読み出された輝度データ、色差データをそれぞれ輝度信号、色差信号に変換し、後処理回路81は、これらの輝度信号、色差信号を混合して出力映像信号を生成する。
具体的には、前処理回路71及びA/D変換回路72a、72bは、上述したように輝度信号及び色差信号をディジタル信号に変換すると共に、色差信号に対しては上下左右方向に画素数が輝度信号の1/2となるようにデータ量を削減した後、時間軸多重化し、得られる輝度データと色差データをフレームメモリ群73に供給する。
そして、フレームメモリ群73からは、上述したようにブロックフォーマットに従って輝度データと色差データが読み出される。すなわち、例えば1フレーム分の画像データは、図22のAに示すように、N個のスライスに分割され、各スライスが、図22のBに示すように、M個のマクロブロックを含むようになされ、各マクロブロックは、図22のCに示すように、8×8画素からなるブロック単位であって上下左右に隣接する4つの輝度ブロックの輝度データY[1] 、Y[2] 、Y[3] 、Y[4] と、これらの4つの輝度ブロックに対応する範囲の8×8画素からなる色差ブロックの色差データCb[5]、Cr[6]とを含んでなる。そして、フレームメモリ群73からは、スライスではマクロブロツク単位で画像データが連続し、マクロブロツク内ではY[1],Y[2],Y[3],Y[4],Cb[5],Cr[6] の順に連続するように輝度データと色差データが読み出される。このようにしてブロックフォーマットに従って読み出された画像データは、エンコーダ75に供給される。
エンコーダ75は、図23に示すように、動きベクトル検出回路101を備え、この動きベクトル検出回路101は、ブロックフォーマットで供給される画像データの動きベクトルをマクロブロック単位で検出する。すなわち、動きベクトル検出回路101は、フレームメモリ群102に記憶された前方原画像及び/又は後方原画像を用いて、現在の参照画像の動きベクトルをマクロブロック単位で検出する。ここで、動きベクトルの検出は、マクロブロック単位でのフレーム間差分の絶対値和が最小になるものを、その動きベクトルとする。そして、検出された動きベクトルは動き補償回路113等に供給され、マクロブロック単位でのフレーム間差分の絶対値和はフレーム内/前方/後方/両方向予測判定回路103に供給される。
このフレーム内/前方/後方/両方向予測判定回路103は、この値をもとに、参照ブロックの予測モードを決定し、決定した予測モードに基づいて、マクロブロック単位でフレーム内/前方/後方/両方向予測の切り換えを行うように予測符号化回路104を制御する。そして、予測符号化回路104は、加算回路104a、104b、104c及び切換スイッチ104dを備え、フレーム内符号化モードのときは入力画像データそのものを、前方/後方/両方向予測モードのときはそれぞれの予測画像に対する入力画像データの画素毎の差分(以下差分データという)を選択し、選択したデータをDCT回路105に供給する。
DCT回路105は、映像信号の2次元相関を利用して、入力画像データ又は差分データをブロツク単位でDCT変換し、得られる係数データを量子化回路106に供給する。
量子化回路106は、マクロブロック又はスライス毎に定まる量子化ステップサイズ(量子化スケール)を用いて係数データを量子化し、得られる量子化データを可変長符号化(VLC:Variable Length Code)回路107及び逆量子化回路108に供給する。ところで、この量子化に用いる量子化ステップサイズは、後述する送信バッファメモリ109のバッファ残量をフィードバックすることによって、送信バッファメモリ109が破綻しない値に決定され、この量子化ステップサイズも、可変長符号化回路107及び逆量子化回路108に供給される。
可変長符号化回路107は、量子化データを、量子化ステップサイズ、予測モード、動きベクトルと共に可変長符号化し、伝送データとして送信バッファメモリ109に供給する。
送信バッファメモリ109は、伝送データを一旦記憶した後、一定のビットレートで読み出すことにより、伝送データを平滑化してビットストリームとして出力すると共に、メモリに残留している残留データ量に応じてマクロブロック単位の量子化制御信号を量子化回路106にフィードバックして量子化ステップサイズを制御する。これにより送信バッファメモリ109は、ビットストリームとして発生されるデータ量を調整し、メモリ内に適正な残量(オーバーフロー又はアンダーフローを生じさせないようなデータ量)のデータを維持する。例えば、送信バッファメモリ109のデータ残量が許容上限にまで増量すると、送信バッファメモリ109は、量子化制御信号によつて量子化回路106の量子化ステップサイズを大きくすることにより、量子化データのデータ量を低下させる。一方、送信バッファメモリ109のデータ残量が許容下限まで減量すると、送信バッファメモリ109は、量子化制御信号によつて量子化回路106の量子化ステップサイズを小さくすることにより、量子化データのデータ量を増大させる。
このようにして、バッファメモリ109から出力されるビットストリームは一定のビットレートで、上述したように伝送路や、光ディスク、磁気ディスク、磁気テープ等の画像記録媒体からなる伝送メディア90を介して、画像復号化装置80に供給される。
一方、逆量子化回路108は、量子化回路106から供給される量子化データを逆量子化して、上述のDCT回路105の出力に対応する係数データ(量子化歪みが加算されている)を再生し、この係数データを逆離散余弦変換(以下IDCT:Inverse Discrete Cosine Trasformという)回路110に供給する。
IDCT回路110は、係数データをIDCT変換して、フレーム内符号化モードでは入力画像データに対応する画像データを再生し、前方/後方/両方向予測モードでは予測符号化回路104の出力に対応する差分データを再生して、加算回路111に供給する。
この加算回路111には、前方/後方/両方向予測モードのとき、後述する動き補償回路113から動き補償された予測画像データが供給されており、この動き補償された予測画像データと差分データを加算することにより、入力画像データに対応する画像データを再生する。
そして、このようにして再生された画像データは、フレームメモリ112に記憶される。すなわち、逆量子化回路108〜加算回路111は、局所復号化回路を構成し、予測モードに基づいて、量子化回路106から出力される量子化データを局所復号化し、得られる復号画像を前方予測画像もしくは後方予測画像としてフレームメモリ112に書き込む。フレームメモリ112は、複数のフレームメモリからなり、フレームメモリのバンク切り換えが行われ、符号化する画像に応じて、単一のフレームが、前方予測画像データとして出力されたり、後方予測画像データとして出力される。また、両方向予測の場合は、前方予測画像データと後方予測画像データが例えば平均化されて出力される。これらの予測画像データは、後述するデコーダ81で再生される画像と全く同一の画像であり、次の処理画像はこの予測画像をもとに前方/後方/両方向予測符号化が行われる。
すなわち、フレームメモリ112から読み出された画像データは動き補償回路113に供給され、この動き補償回路113は、動きベクトルに基づいて、予測画像データに動き補償を施し、動き補償された予測画像データを予測符号化回路104及び加算回路111に供給する。
次に、デコーダ81について図24を参照しながら説明する。
この図24に示すデコーダ81には、上記図21の伝送メディア90を介してビットストリームが入力される。このビットストリームは、受信バッファ201を介して可変長復号化(IVLC)回路202に入力される。可変長復号化回路202は、ビットストリームから量子化データ、動きベクトル、予測モード、量子化ステップサイズ等を再生する。これらの量子化データと量子化ステップサイズは逆量子化回路203に供給され、動きベクトルは動き補償回路207に供給され、予測モードは加算回路205に供給される。
逆量子化回路203〜加算回路205の動作は、上記図23に示すエンコーダ75の局所復号化回路と同様であり、フレームメモリ群206、動き補償回路207の動作はそれぞれエンコーダ75のフレームメモリ112、動き補償回路113と同じであり、量子化データ、動きベクトル、予測モード、量子化ステップサイズをもとに復号化が行われる。この結果、加算回路205から再生画像データが出力され、この再生画像データは、上記図21のフォーマット変換回路82に送られる。
従来技術として、特許文献1、2が知られている。
特開平6−334968号公報
国際公開第94/24822号公報
以下、本発明に係る符号化装置及び方法のいくつかの好ましい実施の形態について図面を参照しながら説明する。
ここで、以下の実施の形態においては、特に画像信号や映像信号を符号化する場合の画像符号化方法、画像符号化装置及び画像記録媒体の例について説明するが、本発明はこれに限定されず、オーディオ信号の符号化にも適用でき、また、字幕データやキャラクタデータの信号の符号化にも適用できるものである。
第1の実施の形態
本発明の第1の実施の形態を適用した画像符号化装置は、例えば図1に示すように、入力映像信号を符号化して第1の符号化データを生成する第1の符号化回路10と、入力映像信号の統計的性質あるいは画像特性を求める画像解析回路60と、該第1の符号化回路10からの第1の符号化データの所定時間毎のデータ量、及び該画像解析回路60からの統計データあるいは画像特性情報、及び使用可能なデータ総量に基づいて上記所定時間毎の符号化レートを求める符号化制御回路30と、該符号化制御回路30からの符号化レートに基づいて上記所定時間毎に上記入力映像信号を符号化して第2の符号化データを生成する第2の符号化回路40とを備える。
上記画像解析回路60は、上述の図1に示すように、フレーム内情報解析回路61とフレーム間情報解析回路62からなる。フレーム内情報解析回路61では、入力画像の画像特性情報として、例えば、輝度,色度,平坦度の統計情報を計算し、フレーム間情報解析回路62では、入力画像の画像特性情報として、例えば、動画像の動き量の統計情報を計算する。
上記画像特性情報の具体例を挙げると、入力画像の輝度についての統計情報としては、例えば、輝度信号Yの所定時間毎の平均値(L)を計算し、また入力画像の色度についての統計情報としては、例えば、色度信号Crの所定時間毎の平均値(R)を計算し、また入力画像の平坦度の統計情報としては、例えば、輝度信号Yの所定時間毎の分散値(V)を計算し、入力画像の動き量の統計情報としては、例えば、動きベクトル量の所定時間毎の平均値(M)を計算する。
さらに、上記第1の符号化回路10は、上述の図1に示すように、入力映像信号である入力画像データを記憶するフレームメモリ群12と、該フレームメモリ群12に記憶された画像データに基づいて、入力画像データの動きベクトルを検出する動きベクトル検出回路11と、予測画像データを記憶するフレームメモリ22と、上記動きベクトル検出回路11からの動きベクトルに基づいて、上記フレームメモリ22から読み出された予測画像データに動き補償を施する動き補償回路23と、該動き補償回路23からの動き補償された予測画像データに基づいて、入力画像データを予測符号する予測符号化回路14と、該予測符号化回路14からの予測誤差である差分等を符号化、例えば離散余弦変換(以下DCT:Discrete Cosine Transform という)して係数データを生成するDCT回路15と、該DCT回路15からの係数データを一定の量子化ステップサイズで量子化して、量子化データを生成する量子化回路16と、該量子化回路16からの量子化データを可変長符号化して、可変長符号データを出力する可変長符号化(VLC:Variable Length Code)回路17と、上記量子化回路16からの量子化データを逆量子化して係数データを再生する逆量子化回路18と、該逆量子化回路18からの係数データを復号化、例えば逆離散余弦変換(以下IDCT:Inverse Discrete Cosine Trasformという)して上記差分を再生するIDCT回路20と、該IDCT回路20からの差分と上記動き補償回路23からの動き補償された予測画像データを加算して次の入力画像データに対する予測画像データを生成し、該予測画像データを上記フレームメモリ22に供給する加算回路21とを備える。
また、上記第2の符号化回路40は、上述の図1に示すように、入力画像データを遅延する遅延器43と、予測画像データを記憶するフレームメモリ52と、上記動きベクトル検出回路11からの動きベクトルに基づいて上記フレームメモリ52から読み出された予測画像データに動き補償を施す動き補償回路53と、該動き補償回路53からの動き補償された予測画像データに基づいて、上記遅延器43で遅延された入力画像データを予測符号化する予測符号化回路44と、該予測符号化回路44からの差分等を符号化、例えばDCT変換して係数データを生成するDCT回路45と、上記符号化制御回路30からの符号化レートに基づいて量子化ステップサイズを設定する量子化スケール設定回路33と、上記DCT回路45からの係数データを上記量子化スケール設定回路33からの量子化ステップサイズで量子化して、量子化データを生成する量子化回路46と、該量子化回路46からの量子化データを可変長符号化して、可変長符号データを出力する可変長符号化回路47と、該可変長符号化回路47からの可変長符号データを一旦記憶し、一定のビットレートで出力する送信バッファメモリ49と、上記量子化回路46からの量子化データを逆量子化して係数データを再生する逆量子化回路48と、該逆量子化回路48からの係数データを復号化、例えばIDCT変換して上記差分を再生するIDCT回路50と、該IDCT回路50からの差分と上記動き補償回路53からの動き補償された予測画像データを加算して次の入力画像データに対する予測画像データを生成し、該予測画像データを上記フレームメモリ52に供給する加算回路51とを備える。
この画像符号化装置では、第1の符号化回路10により、入力画像データに対して符号化処理、例えば予測符号化処理、DCT変換処理、一定の量子化ステップサイズでの量子化処理、可変長符号化処理を施し、符号化制御回路30により得られる符号化ビットレートに基づいて第2の符号化回路40により符号化を行っている。符号化制御回路30は、第1の符号化回路により得られた第1のビットストリームである可変長符号データの所定時間毎のデータ量と、画像解析回路60により求められた入力映像信号の輝度信号Yの所定時間毎の平均値(L)および分散(V),色度信号Crの所定時間毎の平均値(R)と、動きベクトル量の所定時間毎の平均値(M)と、例えば光ディスク、磁気ディスク、磁気テープ等からなる画像記録媒体55のデータ容量、あるいは伝送路のビットレート(転送レート)等により定まる使用可能なデータ総量とに基づいて、所定時間毎の符号化ビットレートを求めている。また、第2の符号化回路40は、入力画像データに再び予測符号化処理、DCT変換処理、量子化処理、可変長符号化処理を施して、第2のビットストリームである可変長符号データを生成する際に、上記符号化ビットレートに基づいた量子化ステップサイズで量子化している。
ここで、上記第1の実施の形態の画像符号化装置を構成する第1の符号化回路10の動作の具体例について、図2のフローチャートを参照しながら説明する。
すなわち、図2に示すフローチャートのステップST1において、上記図1の第1の符号化回路10の量子化回路16は、量子化ステップサイズを例えば1としてDCT回路15から供給される係数データを量子化して、量子化データを生成し、符号化制御回路30のカウンタ31は、この量子化データを可変長符号化して得られる可変長符号データ(第1のビットストリーム)のデータ量を所定の単位時間、例えばマクロブロック毎に計数して、発生符号量(y)をマクロブロック毎に求める。さらに、画像解析回路60により、該マクロブロック内の輝度信号Yの平均値(L)及び分散(V)と、色度信号Crの平均値(R)とを求め、またマクロブロックの動きベクトル量の平均値(M)を求める。
次のステップST2において、上記ビットレート演算回路32は、上記各値y,L,V,R,Mと、上述した使用可能なデータ総量(B)とに基づいて、マクロブロック毎に割り当てられる割当符号量(b)を求める。この場合、具体的には上記各値y,L,V,R,Mに基づいて符号化の難易度(difficulty)(d)を求め、この符号化難易度(d)と上記使用可能なデータ総量(B)とに基づいて上記割当符号量(b)を求めている。
ステップST3において、第2の符号化回路40の量子化回路46は、割当符号量に基づいた量子化ステップサイズにより、DCT回路45から供給される係数データを量子化して、量子化データを生成するようになっている。
このような第1の符号化回路10の動作について、図1を参照しながらより具体的に説明する。
入力された画像データは、フレームメモリ群12に一旦記憶される。そして、フレームメモリ群12からは、従来の技術で述べたようにブロックフォーマットに従って読み出される。
動きベクトル検出回路11は、フレームメモリ群12から必要な画像データを上述のマクロブロック単位で読みだし、動きベクトルを検出する。すなわち、動きベクトル検出回路11は、フレームメモリ群12に記憶されている前方原画像及び/又は後方原画像を用いて、現在の参照画像の動きベクトルをマクロブロック単位で検出する。ここで、動きベクトルの検出は、例えばマクロブロック単位でのフレーム間差分の絶対値和が最小になるものを、その動きベクトルとする。そして、検出された動きベクトルは動き補償回路23、53等に供給され、マクロブロック単位でのフレーム間差分の絶対値和はフレーム内/前方/後方/両方向予測判定回路13に供給される。
フレーム内/前方/後方/両方向予測判定回路13は、この値をもとに、参照ブロックの予測モードを決定し、決定した予測モードに基づいて、ブロック単位でフレーム内/前方/後方/両方向予測の切り換えを行うように予測符号化回路14を制御する。
予測符号化回路14は、上述の図1に示すように、加算回路14a、14b、14c及び切換スイッチ14dを備え、フレーム内符号化モードのときは入力画像データそのものを、前方/後方/両方向予測モードのときはそれぞれの予測画像に対する入力画像データの画素毎の差分(以下差分データという)を選択し、選択したデータをDCT回路15に供給する。
DCT回路15は、映像信号の2次元相関を利用して、切換スイッチ14dから供給される入力画像データ又は差分データをブロツク単位でDCT変換し、得られる係数データを量子化回路16に供給する。
量子化回路16は、一定の量子化ステップサイズ、例えば量子化ステップサイズを1として、DCT回路15から供給される係数データを量子化し、得られる量子化データを可変長符号化回路17及び逆量子化回路18に供給する。
可変長符号化回路17は、量子化データを、量子化ステップサイズ、予測モード、動きベクトル等と共に可変長符号化し、得られる可変長符号データを第1のビットストリームとして符号化制御回路30に供給する。
符号化制御回路30は、上述の図1に示すように、上記可変長符号化回路17から可変長符号データの所定時間毎のデータ量を計数するカウンタ31と、該カウンタ31からのデータ量及び使用可能なデータ総量に基づいて所定時間当たりの割当符号量を求めるビットレート演算回路32とを備える。そして、カウンタ31は、第1のビットストリームのデータ量を所定時間毎、例えばマクロブロック毎に計数して、発生符号量をマクロブロック毎に求め、この発生符号量をビットレート演算回路32に供給する。
ビットレート演算回路32は、このマクロブロック毎の発生符号量と、マクロブロックの輝度信号Yの平均値(L)と分散(V)と、マクロブロックの色度信号Crの平均値(R)と、マクロブロックの動きベクトル量の平均値(M)と、使用可能なデータ総量に基づいて、マクロブロック毎に割り当てられる割当符号量すなわちマクロブロック時間毎の平均符号化レートを求めると共に、この割当符号量を第2の符号化回路40の量子化スケール設定回路33に供給する。
具体的には、ビットレート演算回路32は、先ず次の式1に示すように、符号化する1シーケンスの時間SQTと、使用可能なデータ総量Bとに基づいて、そのシーケンスの平均ビットレートSQBRを計算する。
SQBR = B/SQT ・・・ 式1
ここで、上記1シーケンスとは、例えば映画や番組の1本分のように、1つの画像記録媒体に記録される全フレームを想定しており、この他、記録媒体を分割して用いるときには各分割領域毎に記録される全フレームを1シーケンスとしてもよい。
またビットレート演算回路32は、上記1シーケンスの全マクロブロック数をNとし、使用可能なデータ総量をBとし、i(i=0、1、2・・・N−1)番目のマクロブロックの発生符号量をyi とし、i番目のマクロブロックの輝度信号Yの平均値をLi、分散をViとし、色度信号Crの平均値をRiとし、動きベクトル量の平均値をMiとし、それぞれ関数f1 、f2 、f3 、f4 の特性から画像の絵柄の主観的印象を符号化難易度di へ反映する係数αi ,βi ,γi ,θi を求め、式6に示すように、これらの係数とyiの積により、符号化難易度diを求めている。
αi = f1(Li) ・・・式2
βi = f2(Ri) ・・・式3
γi = f3(Vi) ・・・式4
θi = f4(Mi) ・・・式5
di = αi×βi×γi×θi×yi ・・・式6
ここで、関数f1 、f2 、f3 、f4 の特性の具体例について、図3〜図6を参照しながら説明する。
図3に、輝度信号Yの平均値Lに対する係数αを表す関数f1 の特性を示す。この図3の横軸のLは、0が黒であり、MAXが最も明るい値である。一般に、人間の目は、暗い画像では、符号化ノイズをわかりやすい。ただし、あるレベル以下の暗さでは、暗すぎて符号化ノイズを知覚できなくなる。この特徴に基づいて、L=0付近では、α=1とし、最も劣化を知覚しやすいLのレベルで、αはピークをもち、それ以上のLでは、徐々にαを小さくする。αが1以上の場合、符号化難易度dを増大させ、逆にαが1以下の場合、符号化難易度dを減少させる。なお、i番目のマクロブロックについての輝度信号Yの平均値はLiであり、このi番目のマクロブロックについての係数αi は f1(Li)となる。
図4に、色度信号Crの平均値Rと係数βの関数f2 の特性を示す。図4の横軸のRは、0がグレーであり、MAXが最も赤い値である。一般に、人間の目は赤の劣化をわかりやすい特徴がある。この特徴に基づいて、Rが大きい値ほどβを1以上の大きな値とし、符号化難易度dを増大させる。なお、i番目のマクロブロックについての色度信号Crの平均値はRiであり、このi番目のマクロブロックについての係数βi は f2(Ri)となる。
図5に、輝度信号Yの分散値Vと係数γの関数f3 の特性を示す。図5の横軸のVは、0が完全に平坦であり、MAXが最も絵柄が乱雑である。一般に、人間の目は、絵柄の平坦部分で、符号化ノイズがわかりやすく、逆に、絵柄が乱雑な部分では、劣化はわかりにくい。この特徴に基づいて、Vが大きい値ほどγを1以下の小さな値とし、符号化難易度dを減少させる。i番目のマクロブロックについての輝度信号Yの分散値はViであり、このi番目のマクロブロックについての係数γi は f3(Vi)となる。
図6に、動きベクトル量の平均値Mと係数θの関数f4 の特性を示す。図6の横軸のMは、0が静止している場合で、MAXが最も動きが大きい(速い)。一般に、人間の目は、画像の動きが大きい(速い)と、目が動きについていけず、画像の劣化がわかりにくい。この特徴に基づいて、Mが大きい値ほどθを1以下の小さな値とし、符号化難易度dを減少させる。なお、マクロブロックがイントラ符号化される時は、θ=1とする。i番目のマクロブロックについての動きベクトル量の平均値はMiで、このi番目のマクロブロックについての係数θi は f4(Mi)となる。
このように求めた係数α,β,γ,θを、発生符号量yと乗算することで、符号化難易度dを求める。なお、i番目のマクロブロックについては、それぞれ係数αi ,βi ,γi ,θi を求め、上記式6に示したように発生符号量yi と乗算し、符号化難易度diとする。
ビットレート演算回路32は、i番目のマクロブロックに対する割当符号量をbi として、この割当符号量bi を下記式7に従って計算する。ここでa,cは定数であり、1シーケンスの上記平均ビットレートSQBRに応じて決定される値である。
bi = a×di + c ・・・式7
なお、上記式7のような線形の関係式を用いないで、テーブル・ルックアップで割当符号量bi を求めるようにしてもよい。
次に、上記関係式7について説明する。
式7は、多くの動画像シーケンス、例えば多くの映画を符号化実験し、その画質を評価し、思考錯誤を通じて、経験的に求められる。一般に、1シーケンスでのdiの分布は、図7に示すような形となる。
この図7において、横軸は符号化難易度dを示し、縦軸は該符号化難易度dの1シーケンス内での出現確率h(d)、すなわち、所定時間単位が例えばマクロブロック単位のときには、符号化難易度dとなるマクロブロックの1シーケンス内での出現頻度を1シーケンス内の全マクロブロック数で割ったもの、を示しており、図中の分布曲線と横軸とで囲まれた斜線部の面積は1となる。
ここで、いくつかのシーケンスについての平均的な符号化難易度が高いか低いかは、各シーケンスの符号化難易度dの平均値によって判断できる。例えば、図8は、平均的な符号化難易度が、低位、中位、高位の3種類の映画についての符号化難易度の分布曲線A、B、Cを示す図である。これらの分布曲線A、B、Cにそれぞれ対応する各映画のi番目のマクロブロックの符号化難易度を、それぞれdAi (i=0〜N)、dBi (i=0〜M)、dCi (i=0〜K)とすると、以下の関係がある。
この場合、平均的な符号化難易度が最も高い映画の分布曲線Cに基づいて、上記式7の関係をつくる。手順としては、使用可能なデータ総量Bの範囲内で、符号化難易度dに対して、十分な画質を得るために必要な割当符号量bを、経験的に関係づける。こうして作られた関係式は、他の種類の分布曲線A、Bの映画についても適用することが可能となる。
具体的に説明すると、映画A、B、Cのi番目のマクロブロックの割当符号量bAi 、bBi 、bCi は、以下ように計算される。
bAi =a×dAi +c ・・・式9
bBi =a×dBi +c ・・・式10
bCi =a×dCi +c ・・・式11
また、映画A、B、Cのそれぞれのシーケンスあたりの割当符号量、BA、BB、BCは、以下ように計算される。
このとき、以下のような関係になる。
BA<BB<BC ・・・式15
すなわち、全記録容量が一定の記録媒体に1シーケンス分の映像信号、例えば映画を記録する場合には、上記分布曲線Cに基づく上記式7の関係をつくっておくことで、曲線A、B、Cに対応するいずれの映画でも、記録媒体の容量を越えることなく記録することができる。
多くの動画像シーケンスを符号化実験することによって求めたモデルとなる、あるいは基準となる典型的なシーケンス(例えば映画)の符号化難易度dの分布曲線を図7に示す。このモデルの平均符号化難易度は、世の中にある動画シーケンスのほとんどをカバーするものと考えることができる。ここで、任意のシーケンスでの平均ビットレートSQBRを所定値としたときの、符号化難易度dとその割当符号量bとの関係を図9に示す。この図9において、関数b(d)は、上記式7を一般化したb(d)=a×d+cを表すものであり、i番目のマクロブロックに対する割当符号量bi は、該i番目のマクロブロックについての符号化難易度diにより、bi=a×di+cにて求められることは勿論である。
また、シーケンスでの平均ビットレートSQBRを独立変数としたときの、所定時間毎の符号化難易度dと割当符号量bとの関係を図10に示す。この図10では、具体例として、上記平均ビットレートSQBRが7Mbps 、6Mbps 、5Mbps 、4Mbps 、3Mbps の場合をそれぞれ示している。
これらの図9や図10に示す上記式7に相当する関係式は、使用可能なデータ総量B以内で、世の中のほとんどのシーケンスの可変ビットレート符号化に適用できる。
1スライスを構成する全てのマクロブロックについてのbiを加算したものが、そのスライスの割当符号量である。また、1フレームを構成する全てのマクロブロックについてのbiを加算したものが、そのフレームの割当符号量である。かくして、ビットレート演算回路32は、例えば複雑な絵柄のフレームに対しては割当符号量を多くし、逆に単純な絵柄のフレームに対しては割当符号量を少なくする。
一方、逆量子化回路18は、量子化回路16から供給される量子化データを、量子化ステップサイズを1として逆量子化して、DCT回路15の出力に対応した係数データ(量子化歪みが加算されている)を再生し、この係数データをIDCT回路20に供給する。
IDCT回路20は、係数データをIDCT変換して、フレーム内符号化モードでは予測符号化回路14の出力に対応した入力画像データを再生し、前方/後方/両方向予測モードでは差分データを再生して、加算回路21に供給する。
加算回路21には、前方/後方/両方向予測モードのとき、動き補償回路23から動き補償された予測画像データが供給されており、この予測画像データとIDCT回路20から供給される差分データを加算することにより、入力画像データに対応した画像データを再生する。
そして、このようにして再生された画像データは、フレームメモリ22に予測画像データとして記憶される。すなわち、逆量子化回路18〜加算回路21は、局所復号化回路を構成し、予測モードに基づいて、量子化回路16から出力される量子化データを局所復号化し、得られる復号画像を前方予測画像もしくは後方予測画像としてフレームメモリ22に書き込む。フレームメモリ22は、複数のフレームメモリからなり、フレームメモリのバンク切り替えが行われ、符号化する画像に応じて、例えば単一のフレームが、前方予測画像データとして出力されたり、後方予測画像データとして出力される。また、前方/後方/両方向予測の場合は、前方予測画像データと後方予測画像データが例えば平均化されて出力される。これらの予測画像データは、後述する画像復号化装置で再生される画像データと全く同一の画像データであり、次の処理画像はこの予測画像をもとに前方/後方/両方向予測符号化が行われる。
次に、第2の符号化回路40の動作について説明する。なお、第2の符号化回路40を構成する量子化スケール設定回路33、遅延器43、量子化回路46、送信バッファメモリ49以外の回路は、上述した第1の符号化回路10を構成する回路と同じ動作を行うので、説明を省略する。
遅延器43は、入力画像データを、例えば符号化制御回路30から符号化制御信号が出力されるまでの時間遅延する。この遅延器43の遅延時間としては、従来の2パス方式の場合には1シーケンス以上の時間が必要であったが、この実施の形態の場合には、ビットレートの切換単位時間、例えば後述する1GOP(グループオブピクチャ)の時間程度とすればよい。そして、予測符号化回路44、DCT回路45において、遅延された入力画像データにフレーム内/前方/後方/両方向予測判定回路13から供給される予測モードに従った予測符号化処理、DCT変換処理が施され、係数データが生成される。
量子化スケール設定回路33は、送信バッファ49からのバッファフィードバックから検出される、あるマクロブロックにおいて発生した発生符号量と、このマクロブロック毎の割当符号量の比較を行う。
量子化スケール設定回路33は、第2の符号化での各マクロブロックの発生符号量を設定された各マクロブロックの割当符号量に近付けるため、当該マクロブロックにおける発生符号量がマクロブロック毎の割当符号量より大きい場合、次のマクロブロックの発生符号量を抑えるために次のマクロブロックの量子化ステップサイズを大きく設定し、当該マクロブロックにおける発生符号量がマクロブロック毎の割当符号量より小さい場合は、発生符号量を多くするために次のマクロブロックの量子化ステップサイズを小さくする。なお上記の説明では、マクロブロック毎に割当符号量と発生符号化量を近付けるように制御したが、この他、スライス毎に、フレーム毎に、あるいは後述するようにGOP(グループオブピクチャ)毎に制御を行わせるようにしてもよい。
さらに、量子化スケール設定回路33は、送信バッファ49からのバッファフィードバックが、送信バッファ49のオーバーフローが近いことを示す場合、上記の割当符号量と発生符号量との比較結果によらず、量子化ステップサイズを大きくしてオーバーフローを抑制し、また、送信バッファからのバッファフィードバックが、送信バッファ49のアンダーフローが近いことを示す場合、上記の割当符号量と発生符号量との比較結果によらず、量子化ステップサイズを小さくしてアンダーフローを抑制するようにしてもよい。
なお、上記の説明では、マクロブロック毎に発生符号量と割当符号量とを比較して、マクロブロック毎に量子化ステップサイズを切り換えるようにしたが、スライス毎、フレーム毎、あるいはGOP毎に切り換えを行うこともできる。
また、上記の説明では、発生符号量を送信バッファ49の蓄積量から検出するようにしたが、可変長符号化回路47の出力から直接得ることもできる。量子化スケール設定回路33は、このようにして設定した量子化ステップサイズを量子化回路46に供給する。
量子化回路46は、上述した量子化スケール設定回路33から供給される量子化ステップサイズにより、DCT回路45から供給される係数データを量子化して、量子化データを生成する。
そして、可変長符号化回路47は、量子化回路46から供給される量子化データを、量子化スケール設定回路33からの量子化ステップサイズ、フレーム内/前方/後方/両方向予測判定回路13からの予測モード、動きベクトル検出回路11からの動きベクトル等と共に可変長符号化し、得られる可変長符号データを第2のビットストリームとして送信バッファメモリ49に供給する。
ここで、図11は、この画像符号化装置の第2の符号化回路40の動作を概略的に示すフローチャートである。
この図11に示すように、ステップST11において、遅延器43を介して画像データが入力されると、ステップST12において、量子化スケール設定回路33は、現在符号化の対象とされているフレームに対する割当符号量を符号化制御回路30から読み込み、ステップST13に進む。
ステップST13において、予測符号化回路44〜可変長符号化回路47は、画像データに予測符号化処理、DCT変換処理を施すと共に、マクロブロックの割当符号量に基づいた量子化ステップサイズにより係数データを量子化した後、可変長符号化し、ステップST14に進む。
ステップST14において、例えば同一の画面サイズや同一の転送レートが適用される全フレーム(シーケンス)に対して符号化処理が終了したかが判断され、該当するときは終了し、該当しないときはステップST11に戻る。かくして、フレーム単位で符号化レートが変わる可変レート符号化が実現され、絵柄が複雑な画像(フレーム)が連続しても、これらの画像に対して量子化ステップサイズが従来の装置のように大きくされることなく、全体を通じて均等な高画質を得ることができる。
一方、逆量子化回路48は、量子化回路46から供給される量子化データを、上述の量子化回路46で用いた量子化ステップサイズにより逆量子化して、DCT回路45の出力に対応した係数データ(量子化歪みが加算されている)を再生し、この係数データをIDCT回路50に供給する。すなわち、局所復号化回路を構成する逆量子化回路48〜加算回路51は、量子化回路46から出力される量子化データを局所復号化し、得られる復号画像を前方予測画像もしくは後方予測画像としてフレームメモリ52に書き込む。フレームメモリ52に記憶された画像データは、次の処理画像に対する予測画像として使用される。
送信バッファメモリ49は、必要に応じて設ければよいが、設けた場合には、送信バッファメモリ49は、可変長符号データを一旦記憶した後、一定のビットレートで読み出すことにより、可変長符号データを平滑化してビットストリームとして出力する。そして、送信バッファメモリ49から出力されたビットストリームは、例えば符号化されたオーディオ信号、同期信号等と多重化され、更にエラー訂正用のコードが付加され、伝送あるいは記録に適した所定の変調が加えられた後、例えば伝送路を介して画像復号化装置に伝送されたり、上述の図1に示すように、光ディスク、磁気ディスク、磁気テープ等からなる画像記録媒体55に記録される。すなわち、第2の符号化回路40において、例えば予め複雑な画像に対しては割当符号量bi を多くして、単純な画像に対しては割当符号量bi を少なくして可変レート符号化を行っていることから、従来の装置のように絵柄が複雑な画像に対して極端な画質劣化をさけるために全体を通じて高いレートの固定レートを適用する必要がなく、画像記録媒体55の記録時間を長くすることができる。
送信バッファメモリ49を設けない場合、あるいは小容量のメモリを設ける場合には、可変ビットレートで出力ビットストリームが画像記録媒体55に供給されることになるが、記録レートを可変制御でき最高記録レートが出力ビットストリームの最高ビットレート以上の記録装置を用いることにより、画像記録媒体55の全記録容量あるいは上記使用可能なデータ総量Bをオーバーフローすることがない範囲で、1シーケンスの映像信号を記録することができ、画像記録媒体55の全記録容量を、複雑な画像には多く、単純な画像には少なく割り当てて、全体として良好な画質が得られるように、媒体容量の最適の有効利用を図ることができる。
以上説明した本発明の実施の形態からも明らかなように、第1の符号化回路10において、所定時間毎に符号化の難易度(difficulty)を計算するために、標準量子化値を予め設定し、バッファの占有量による制御を行なわず、適応量子化のみでDCT係数を量子化し符号量を求めており、適応量子化は、固定の標準量子化値とした時の符号化情報量に加え、画像の明るさ、平坦度、色度、画像の動きのような画像特性情報を所定時間毎に計算し、ビットレート演算回路では、これらの画像特性情報と、符号化情報量と、使用可能なデータ総量とに基づいて、所定時間毎に割り当てられる割当符号量、例えばフレーム時間毎の平均符号化レートを求めている。
ここで、上記画像の明るさとしては、例えば、輝度信号Yの所定時間毎の平均値(L)を、平坦度としては、例えば、輝度信号Yの所定時間毎の分散値(V)を、色度としては、例えば、色度信号Crの所定時間毎の平均値(R)を、画像の動きとしては、例えば、マクロブロックの動きベクトル量の所定時間毎の平均値(M)を、それぞれ用いている。
第2の符号化回路40では、仮符号化(第1の符号化)で得られた所定時間毎の発生符号量に対して、目標符号量を決めて、量子化ステップサイズあるいは量子化値を制御して、画像の符号化を行なう。すなわち、各所定時間毎に、人間の視覚特性に応じた符号量が配分されるように、暗い画像のノイズを知覚しやすい部分で量子化ステップサイズを小さくし、画面の平坦部分ほど量子化ステップサイズを小さくし、赤レベルが大きいほど量子化ステップサイズを小さくし、動きベクトル量が大きい(動きが速い)ほど量子化ステップサイズを大きくしている。
このように、人間の視覚特性が反映された符号化を行うことにより、絵柄によって符号化画質の主観的印象が悪い場合、例えば、画像の暗い部分や、赤い部分や、平坦な部分等でも、符号化ノイズ(ブロックノイズ、モスキートノイズ)が目立つことを未然に回避できる。
ここで、上記第2の符号化回路40で、i番目のマクロブロックでの発生符号量をb'i とすると、シーケンスを符号化し終えた時、すべてのb'i についての総和は、下記の式16を満たさねばならない。
このため失敗するケースを減らすために、符号化制御回路30から割当てる符号量の総和を、実際のBよりも少なめに、例えばBの95%くらいに控えることは有効である。また、一シーケンスの長さを、例えば4分割し、それぞれの小シーケンスの中で、それぞれBの1/4を目標符号量として符号化しきるように制御することが有効な場合もある。
以上説明したような本発明に係る実施の形態の信号符号化方法あるいは装置は、いわゆる1パスのエンコーダであり、ほぼリアルタイムで入力信号の符号化が行える。これに対し、いわゆる2パスのエンコーダ、すなわち、第1の符号化の際には予め1シーケンス分の全ての符号化難易度diを計算し、この全ての符号化難易度diと使用可能なデータ総量に基づいて、所定時間毎に割り当てられる割当符号量を求め、第2の符号化の際は、第1の符号化で求めた符号量配分に応じてビットレート制御を行なうような符号化方法や装置においては、信号を入力してから出力までに少なくとも1シーケンス分だけ待ち時間あるいは遅延時間が必要とされる。
従って、上述したような本実施の形態によれば、上記2パスのエンコーダと比較して、世の中のほとんどのシーケンスについて、リアルタイム(実時間)で伝送用のビットレート生成が可能となるので、大幅な時間の節約が実現される。
なお、本発明の実施の形態のような1パスの符号化と、従来の2パスの符号化とを組み合わせるようにしてもよい。
すなわち。符号化制御回路30が用意する符号化難易度と割当符号量の関係は、ほとんどの動画シーケンスに適用できるが、いくつかの特殊なシーケンスには対応できず、一般化されたモデルの式7を満たすことが困難な場合には、2パスの符号化、すなわち第1の符号化回路で、1シーケンス分のすべての符号化難易度diを計算した後、ビットレート演算回路では、diと使用可能なデータ総量に基づいて、所定時間毎に割り当てられる割当符号量、例えばフレーム時間毎の平均符号化レートを求め、第2の符号化回路では、第1の符号化で求めた符号量配分に応じてビットレート制御を行なうようにしてもよい。
第2の実施の形態
ところで、上述の第1の実施の形態では、所定時間当たりの割当符号量、すなわち所定時間当たりの平均符号化レートを、マクロブロックを所定時間としてマクロブロック毎に得るようにしているが、本発明はこれに限定されるものではない。例えば、フレームを所定時間とする場合も同様である。この場合は、上記式1〜式5における、yi,Li,Ri,Vi,Miのパラメータ群を1フレーム時間を所定時間として計算する。それらパラメータ群に基づいて、各フレーム毎にその割当符号量biを上記式7により求めることができる。
この第2の実施の形態の場合のLi,Ri,Vi,Miの計算方法は、1フレームでの全てのマクロブロックの平均値としても良いし、1フレームの中で指定された一部のマクロブロックの平均値としても良い。後者の方法は、レターボックスフォーマット、すなわち4:3の画面に16:9の画像を表示するためにフレームの上下が黒帯でマスクされているフォーマットの画像を扱う場合に有効である。この場合、画像の上下の黒帯のマスク部分を除いた中央の有効な画像部分を構成するマクロブロックについて、Li,Ri,Vi,Miを計算する。この方法では、フレームの中央の有効な画像部分についての性質を正確にとらえることができ、上記黒帯のマスク部分の計算を省略することができるので有効である。
この第2の実施の形態における第2の符号化回路40では、上述の第1の実施の形態と比べ、量子化スケール設定回路33において、マクロブロック毎の割当符号量を計算する必要がある。この場合、量子化スケール設定回路33は、供給されたフレーム毎の割当符号量biから、マクロブロック毎の割当符号量を、例えば、フレーム毎の割当符号量biを1フレーム中のマクロブロックの数で割ったものとする。送信バッファ49からのバッファフィードバック制御は、上述の第1の実施の形態と同じである。
この第2の実施の形態では、割当符号量biをフレームに基づいて求めていることから、上述の第1の実施の形態に比して、すべてのbiを記憶するために必要なメモリ量を節約することが可能である。
第3の実施の形態
上述の実施の形態では、所定時間当たりの割当符号量すなわち所定時間当たりの平均符号化レートを、フレームを所定時間としてフレーム毎に得るようにしているが、本発明はこれに限定されるものではない。例えば、所謂MPEG(Moving Picture ExpertGroup)におけるGOP(Group of Picture)を所定時間としてもよい。なお、上述のMPEGは、所謂ISO(国際標準化機構)とIEC(国際電気標準会議)のJTC(Joint Technical Committee )1におけるSC(Sub Committee )29のWG(Working Group )11において検討されている動画像符号化方式の通称である。
すなわち、この第3の実施の形態において、上記MPEGにおけるGOPは、少なくとも1枚の所謂Iピクチャと、複数枚のPピクチャ又はBピクチャ(非Iピクチャ)とから構成される。具体的には、例えば図12に示すように、1枚のIピクチャと、3ピクチャ周期の4枚のPピクチャと、10枚のBピクチャとから構成されるとすると、符号化制御回路30は、GOP毎に割当符号量を求める。ここで、Iピクチャとは、フィールド内若しくはフレーム内符号化される画像であり、Pピクチャとは、前方向からのみ予測可能とされ、フィールド間若しくはフレーム間符号化される画像であり、Bピクチャとは、前方向から、後方向から、および両方向から予測可能とされ、フィールド間若しくはフレーム間符号化される画像である。
そして、第1の符号化回路10において、例えば図13に示すように、GOPを構成するピクチャ数を周期としてGOP内の連続する任意の2枚のピクチャを仮にIピクチャ、Pピクチャとすると共に、量子化ステップサイズを例えば1として、これらのIピクチャ、Pピクチャの画像データに予測符号化処理、DCT変換処理、可変長符号化処理を施して、可変長符号データを生成し、この可変長符号データを符号化制御回路30に供給する。ここで、2枚のピクチャをIピクチャ、Pピクチャとするのは、絵柄の複雑さと、フレーム間の相関性を調べるためであり、Iピクチャの発生符号量から絵柄の複雑さを知ることができ、Pピクチャの発生符号量からフレーム間の相関性を知ることができる。一般的に、連続する複数のフレームは類似した画像をもつため、抽出した2枚のピクチャからでも、GOPの絵柄の傾向を見ることができる。
符号化制御回路30は、Iピクチャのデータ量 bitIj とPピクチャのデータ量 bitPj をGOP毎に計数すると共に、例えば下記式17に示すように、これらのデータ量 bitIj 、 bitPj と、GOPを構成するPピクチャの枚数Nとに基づいて、発生符号量GOPyj (j=0、1、2・・・)をGOP毎に求める。
GOPyj = bitIj +N× bitPj ・・・式17
そして、符号化制御回路30は、このGOP毎の発生符号量GOPyj と、使用可能なデータ総量に基づいて、GOP毎に割り当てられる割当符号量を求めると共に、この割当符号量を第2の符号化回路40に供給する。
具体的には、全GOP数をMとし、使用可能なデータ総量をBとし、j(j=0、1、2・・・M−1)番目のGOPの発生符号量をGOPyj とし、j番目のGOPでの輝度信号Yの平均値をLj、分散をVjとし、色度信号Crの平均値をRjとし、動きベクトル量の平均値をMjとし、それぞれ関数f1 、f2 、f3 、f4 の特性から画像の絵柄の主観的印象を符号化難易度GOPdj へ反映する係数αj,βj,γj,θjを求め、式22に示すように、それらとGOPyj の積により、符号化難易度GOPdj を求める。関数f1 、f2 、f3 、f4 のそれぞれの特性は、上述した図3〜図6に示したものと同じものが適用できる。
ビットレート演算回路32は、j番目のGOPに対する割当符号量GOPbj を下記式23に従って計算する。ここで、a,cは定数であり、1シーケンスでの上記式1に示す平均ビットレートSQBRに応じて決定される値である。
αj = f1(Lj) ・・・式18
βj = f2(Rj) ・・・式19
γj = f3(Vj) ・・・式20
θj = f4(Mj) ・・・式21
GOPdj = αj×βj×γj×θj×GOPyj ・・・式22
GOPbj = a×GOPdj + c ・・・式23
なお、上記式23のような線形の関係式を用いないで、テーブル・ルックアップで割当符号量GOPbj を求めるようにしてもよい。
かくして、符号化制御回路30は、例えば絵柄が複雑な画像が含まれる或いはフレーム間の相関が低いGOPに対しては割当符号量GOPbj を多くし、逆に単純な絵柄の画像が含まれる或いはフレーム間の相関が高いGOPに対しては割当符号量GOPbj を少なくする。
次に、第2の符号化回路40は、例えば図14に示すように、ステップST21において遅延器43を介して画像データが入力されると、ステップST22において、現在入力されている画像データがGOPの先頭ピクチャかを判断し、該当するときはステップST23に進み、該当しないときはステップST24に進む。
ステップST23において、第2の符号化回路40は、現在符号化の対象とされているGOPに対する割当符号量を符号化制御回路30から読み込み、ステップST24に進む。
ステップST24において、第2の符号化回路40は、画像データに予測符号化処理、DCT変換処理を施すと共に、割当符号量に基づいた量子化ステップサイズにより係数データを量子化した後、可変長符号化し、ステップST25に進む。
ここで、量子化スケール設定回路33は、供給されたGOP毎の割当符号量から、フレーム毎の割当符号量を、実際の符号化におけるピクチャタイプ(Iピクチャ、Pピクチャ、Bピクチャ)、すなわち図12に示されるピクチャタイプを考慮して設定する。具体的には、Iピクチャに対する割当符号量を多くし、Bピクチャに対する割当符号量を少なくし、Pピクチャに対する割当符号量をその中間とする。量子化スケール設定回路33の以降の処理は、上述のフレーム毎に割当符号量を求めた実施の形態と同様である。
次にステップST25において、同一の画面サイズや同一の転送レートが適用される全フレーム(シーケンス)に対して符号化処理が終了したかが判断され、該当するときは終了し、該当しないときはステップST21に戻る。かくして、GOP単位で符号化レートが変わる可変レート符号化が実現され、絵柄が複雑な画像(フレーム)が連続しても、これらの画像に対して量子化ステップサイズが従来の装置のように大きくされることなく、全体を通じて均等な高画質を得ることができる。また、この実施の形態ではGOP毎の割当符号量を2つのピクチャに基づいて求めていることから、上述の実施の形態に比して高速処理が可能である。なお、GOP内の全ピクチャのデータ量に基づいて各GOPの割当符号量を求めるようにしてもよいことは言うまでもない。
第4の実施の形態
次に、本発明を適用した画像符号化装置の第4の実施の形態について、図15を参照しながら説明する。
この第4の実施の形態と、上記第1〜第3の実施の形態とでは、次に示すような2つの相違点がある。すなわち、第1に、図1の第1の符号化回路10がなく符号化難易度の求め方が異なっており、第2に、ビットレート演算回路32の動作が異なっている。以下に、これらの違いについて説明する。
この図15に示す第4の実施の形態の画像符号化装置は、入力映像信号の統計的性質を求める画像解析回路60と、該画像解析回路60からの統計データ、及び使用可能なデータ総量に基づいて所定時間毎の符号化レートを求める符号化制御回路30と、該符号化制御回路30からの符号化レートに基づいて上記所定時間毎に上記入力映像信号を符号化して符号化データを生成する符号化回路40とを備える。
画像解析回路60では、入力映像信号の統計的性質に基づく情報あるいは画像特性情報を求めており、この画像特性情報として、例えば、輝度信号Yの所定時間毎の平均値(L)を計算し、また入力画像の色度についての統計情報、例えば、色度信号Crの所定時間毎の平均値(R)を計算し、また入力画像の平坦度の統計情報、例えば、輝度信号Yの所定時間毎の分散値(V)を計算し、入力画像の動き量の統計情報、例えば、動きベクトル量の所定時間毎の平均値(M)を計算し、さらに、画像間差分情報、例えば動きベクトルの画像間予測残差の所定時間毎の絶対値和(E)を計算する。
すなわち、動きベクトルの画像間予測残差としては、符号化対象マクロブロックの輝度信号Yj と、動きベクトルにより参照されるマクロブロックの輝度信号Ri の差の絶対値の和Eを求める。
なお、Eについては、絶対値和の代わりに二乗和を用いてもよい。
この画像符号化装置では、例えば図16に示すように、ステップST31において、符号化難易度(difficulty)を表す入力映像信号の統計的性質の情報である画像特性情報、ここではマクロブロックの輝度信号Yの平均値Lと分散V、そして色度信号Crの平均値R、そしてマクロブロックの動きベクトル量の平均値Mと動きベクトルの画像間予測残差の絶対値和Eを、所定時間毎、例えばマクロブロック毎に求める。なお、マクロブロックがイントラ符号化モード、いわゆるIピクチャの場合は、上記動きベクトルの画像間予測残差の絶対値和を計算するよりも、むしろマクロブロック内の平均値分離残差の絶対値和を計算することが好ましい。
すなわち、イントラ符号化モードのブロック内の平均値分離残差の絶対値和として、符号化対象マクロブロックの輝度信号Yi と、マクロブロックの輝度信号Yi の平均値Yavとの差の絶対値和Eを、次の式25により求める。
なお、この式25のEについて、絶対値和の代わりに、二乗和、すなわち上記分散値Vを用いるようにしてもよい。
次のステップST32において、ビットレート演算回路32は、マクロブロック毎の輝度信号の平均値と分散と、色度信号の平均値と、動きベクトル量の平均値と、動きベクトルの画像間予測残差又は輝度信号の平均値分離残差と、使用可能なデータ総量に基づいて、マクロブロック毎に割り当てられる割当符号量を求める。
次のステップST33において、符号化回路40の量子化回路46は、割当符号量に基づいた量子化ステップサイズにより、DCT回路45から供給される係数データを量子化して、量子化データを生成するようになっている。
ここで、ビットレート演算回路32の具体的な動作を説明する。ビットレート演算回路32は、シーケンスの全マクロブロック数をNとし、i(i=0、1、2・・・N−1)番目のマクロブロックの輝度信号Yの平均値をLi、分散をViとし、色度信号Crの平均値をRiとし、動きベクトル量の平均値をMiとし、関数f1 、f2 、f3 、f4 の特性から画像の絵柄の主観的印象を符号化難易度di へ反映する係数αi ,βi ,γi ,θi を求める。また、動きベクトルの画像間予測残差の絶対値和Eに基づき、関数f6 の特性から、そのマクロブロックの発生符号量の推定値、すなわち上記第1の実施の形態でのyiに相当するものy'i を経験的に推定する。そして、下記の式31に示すように、各係数αi ,βi ,γi ,θi と発生符号量の推定値y'i との積により、符号化難易度diを求めている。
αi = f1(Li) ・・・式26
βi = f2(Ri) ・・・式27
γi = f3(Vi) ・・・式28
θi = f4(Mi) ・・・式29
y'i = f6(Ei) ・・・式30
di = αi×βi×γi×θi×y'i ・・・式31
上記関数f1 、f2 、f3 、f4 の特性の具体例は、上記図3〜図6に示すものを使用できる。また、上記関数f6 の一例を図17に示す。すなわち、この図17は、動きベクトルの画像間予測残差に対するマクロブロック単位の発生符号量の推定値y' を示している。実験結果から経験的にEとy’とはほぼ比例する関係にあり、i番目のマクロブロックの動きベクトルの画像間予測残差Eiについての発生符号量の推定値y'i は f6(Vi)となる。
符号化対象マクロブロックがイントラ符号化モードの場合は、マクロブロック内の輝度信号の上記平均値分離残差の絶対値和、又は分散値(V)を用いることが好ましく、この場合には、例えば輝度信号Yの分散Viに基づき、関数f5 の特性から、そのマクロブロックの発生符号量の推定値y'i を推定する。
y'i = f5(Vi) ・・・式32
この関数 f5(Vi)の具体例を図18に示す。
この図18は、輝度信号Yの分散Vに対するマクロブロック単位の発生符号量の推定値y' を示しており、i番目のマクロブロックの輝度信号Yの分散Viについての発生符号量の推定値y'i は f5(Vi)となる。
ビットレート演算回路32は、上記第1の実施の形態と同様に、符号化難易度diに対するi番目のマクロブロックの割当符号量biを下記式33に示すように、計算する。なお、式33のような線形の関係式を用いないで、テーブル・ルック・アップで行なうようにしてもよい。
bi = a×di + c ・・・式33
この関係式33は、多くの動画像シーケンス、例えば多くの映画を符号化実験し、その画質を評価し、思考錯誤を通じて、経験的に求められるものであり、世の中のほとんどのシーケンスに適用可能な一般的な関係式とする。その求め方については、上記第1の実施の形態で説明した式7と同様な方法で作られる。
かくして、ビットレート演算回路32は、例えば複雑な絵柄のフレームに対しては割当符号量を多くし、逆に単純な絵柄のフレームに対しては割当符号量を少なくする。
符号化回路40の動作は、上記第1の実施の形態で説明した第2の符号化回路40と同じであるので、省略する。
なお、本発明は上述の実施の形態に限定されるものではなく、例えば上述の実施の形態おいては、変換符号化をDCTとしているが、いわゆるストラト変換、ハール変換、ウエーブレット変換等としてもよい。また、取り扱う信号は、画像信号や映像信号に限定されず、例えばオーディオ信号の符号化にも適用でき、字幕データやキャラクタデータの信号等の符号化にも適用できるものである。例えばオーディオ信号の符号化に本発明を適用する場合には、聴覚的な統計情報と、必要に応じて第1の符号化を行って得られた所定時間毎の発生符号量とにより、符号化難易度を求めるようにすればよい。
以上の説明からも明らかなように、本発明の実施の形態によれば、入力信号が属する種類の一般の入力信号により予め標準化された所定時間毎の符号化難易度と割当符号量とを関係付け、入力信号の所定時間毎の符号化難易度を求め、この入力信号の所定時間毎の符号化難易度に対して上記関係付けられた上記所定時間毎の割当符号量を求め、この割当符号量に基づいて上記所定時間毎に上記入力信号を符号化して符号化データを生成しているため、信号の入力に応じて、ほぼリアルタイムで、信号の複雑さに応じた最適の割当符号量での符号化が行える。
また、上記符号化難易度を、入力信号の少なくとも一部を符号化して生成された符号化データの上記所定時間毎のデータ量に基づいて求めることにより、複雑な信号が連続しても量子化ステップサイズが極端に大きくされることなく、全体を通じて均等な高品質の符号化データを得ることができる。
また、上記入力信号が映像信号の場合に、上記符号化難易度として、入力映像信号の所定時間毎の画像特性情報に基づいて求め、このときの上記画像特性情報として、画像の輝度情報としての輝度信号の所定時間毎の平均値、色度情報としての色度信号の所定時間毎の平均値、平坦度情報としての輝度信号の分散値、画像の動き情報としてのマクロブロックの動きベクトル量の所定時間毎の平均値、画像間差分としてマクロブロックの動きベクトルの画像間予測残差の所定時間毎の総和等を用いることにより、画像特性情報により人間の視覚特性が反映された符号化レートで符号化が行える。
10 第1の符号化回路、 14,44 予測符号化回路、 15,45 DCT回路、 16,46 量子化回路、 17,47 可変長符号化回路、 30 符号化制御回路、 31 カウンタ、 32 ビットレート演算回路、 33 量子化スケール設定回路、 40 第2の符号化回路、 43 遅延器、 60 画像解析回路、 61 フレーム内情報解析回路、 62 フレーム間情報解析回路