(57)【特許請求の範囲】
【請求項１】
単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該外部入力信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される符号量が所定値ＶＰｌｅｎ以下のビデオパケットを出力する符号化装置であって、
前記マクロブロック単位で前記外部入力信号を符号化する符号化手段と、
当該符号化手段から出力される符号を蓄積する一時バッファと、
当該一時バッファから出力される符号を蓄積する送信バッファと、
前記一時バッファから当該送信バッファに出力される符号の符号量を制御すると共に、前記送信バッファに蓄積される符号から構成され、前記送信バッファから出力されるビデオパケットの符号の符号量を制御する符号量制御手段と
を備え、
当該符号量制御手段は、
前記一時バッファから前記送信バッファに出力される符号の符号量が前記所定値ＶＰｌｅｎ以下となるように、前記一時バッファから前記送信バッファに出力する前記マクロブロックの符号を制御すると共に、
前記単位画像を構成する現マクロブロックに続いて処理されるべきマクロブロック数Ｍ、前記所定のビデオパケットの長さＶＰｌｅｎ、前記送信バッファがアンダーフローしないように、又はＶＢＶバッファがオーバーフローしないように設定される最小符号量Ｔｍｉｎ、及び前記単位画像の先頭のマクロブロックから前記現マクロブロックまでの単位画像の符号の符号量Ｓｃとの関係が、
Ｍ×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第一の関係の場合、当該第一の関係が満足されなくなるまで前記送信バッファ内の現ビデオパケットにスタッフィングを挿入し、
前記第一の関係が成立せず、かつ前記マクロブロックの数Ｍ、前記ビデオパケットの長さＶＰｌｅｎ、前記最小符号量Ｔｍｉｎ及び前記符号量Ｓｃの間の関係が、
（Ｍ−１）×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第二の関係の場合、前記現ビデオパケットにスタッフィングを挿入せずに前記現マクロブロックの次のマクロブロックから前記現ビデオパケットの次のビデオパケットを構成するように制御すること
を特徴とする符号化装置。
【請求項２】
符号量制御手段は、送信バッファがアンダーフローしないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項１に記載の符号化装置。
Ｔｍｉｎ≧２×Ｒｐ−Ｂ
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは最小符号量、Ｒｐは単位画像における前記送信バッファから読み出されるビット数、Ｒは前記送信バッファから読み出されるビットレート、Ｆは単位画像における符号化のレート、及びＢは前記送信バッファにおける占有量である。
【請求項３】
符号量制御手段は、ＶＢＶバッファがオーバーフローしないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項１に記載の符号化装置。
Ｔｍｉｎ≧ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは最小符号量、Ｒｐは単位画像における送信バッファから読み出されるビット数、Ｒは当該送信バッファから読み出されるビットレート、Ｆは単位画像における符号化のレート、ｖｂｖ＿ｂｉｔｓは直前の単位画像における前記ＶＢＶバッファの占有量、及びｖｂｖ＿ｂｓは前記ＶＢＶバッファのサイズである。
【請求項４】
符号量制御手段は、送信バッファがアンダーフローしないように、かつ、ＶＢＶバッファがオーバーフローしないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項１に記載の符号化装置。
Ｔｍｉｎ＝ｍａｘ（２×Ｒｐ−Ｂ，ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ）
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは最小符号量、Ｒｐは単位画像における前記送信バッファから読み出されるビット数、Ｒは前記送信バッファから読み出されるビットレート、Ｆは単位画像における符号化のレート、Ｂは前記送信バッファにおける占有量、ｖｂｖ＿ｂｉｔｓは直前の単位画像における前記ＶＢＶバッファの占有量、及びｖｂｖ＿ｂｓは前記ＶＢＶバッファのサイズであり、ｍａｘ（ａ，ｂ）は、ａ又はｂのいずれか大きい方をその値とすることを示す。
【請求項５】
送信バッファから読み出されるビットレートＲは可変であること
を特徴とする請求項２から４のいずれか１項に記載の符号化装置。
【請求項６】
単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該外部入力信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される符号量が所定値ＶＰｌｅｎ以下のビデオパケットを出力する符号化方法であって、
前記マクロブロック単位で前記外部入力信号を符号化する符号化ステップと、
当該符号化ステップから出力される符号を蓄積する第一の蓄積ステップと、
当該第一の蓄積ステップから出力される符号の符号量が前記所定値ＶＰｌｅｎ以下となるように、前記第一のステップから出力される前記マクロブロックの符号を制御する第一の符号量制御ステップと、
前記第一の蓄積ステップから出力される符号を蓄積する第二の蓄積ステップと、
当該第二の蓄積ステップに蓄積される符号から構成され、前記第二の蓄積ステップから出力される前記ビデオパケットの符号の符号量を制御する第二の符号量制御ステップと
を備え、
当該第二の符号量制御ステップは、
前記単位画像を構成する現マクロブロックに続いて処理されるべきマクロブロック数Ｍ、前記所定のビデオパケットの長さＶＰｌｅｎ、前記第二の蓄積ステップにおいてアンダーフローが発生しないように、又はＶＢＶバッファがオーバーフローしないように設定される最小符号量Ｔｍｉｎ、及び前記単位画像の先頭のマクロブロックから前記現マクロブロックまでの単位画像の符号の符号量Ｓｃとの関係が、
Ｍ×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第一の関係の場合、当該第一の関係が満足されなくなるまで前記第二の蓄積ステップにおいて蓄積されている現ビデオパケットにスタッフィングを挿入し、
前記第一の関係が成立せず、かつ前記マクロブロックの数Ｍ、前記ビデオパケットの長さＶＰｌｅｎ、前記最小符号量Ｔｍｉｎ及び前記符号量Ｓｃの間の関係が、
（Ｍ−１）×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第二の関係の場合、前記現ビデオパケットにスタッフィングを挿入せずに前記現マクロブロックの次のマクロブロックから前記現ビデオパケットの次のビデオパケットを構成するように制御すること
を特徴とする符号化方法。
【請求項７】
第二の符号量制御ステップは、第二の蓄積ステップにおいてアンダーフローが発生しないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項６に記載の符号化方法。
Ｔｍｉｎ≧２×Ｒｐ−Ｂ
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは最小符号量、Ｒｐは単位画像における前記第二の蓄積ステップによって蓄積された符号が読み出されるビット数、Ｒは前記第二の蓄積ステップによって蓄積された符号が読み出されるビットレート、Ｆは単位画像における符号化のレート、及びＢは前記第二の蓄積ステップの符号の蓄積における占有量である。
【請求項８】
第二の符号量制御ステップは、ＶＢＶバッファがオーバーフローしないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項６に記載の符号化方法。
Ｔｍｉｎ≧ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは最小符号量、Ｒｐは単位画像における第二の蓄積ステップによって蓄積された符号が読み出されるビット数、Ｒは当該第二の蓄積ステップによって蓄積された符号が読み出されるビットレート、Ｆは単位画像における符号化のレート、ｖｂｖ＿ｂｉｔｓは直前の単位画像における前記ＶＢＶバッファの占有量、及びｖｂｖ＿ｂｓは前記ＶＢＶバッファのサイズである。
【請求項９】
第二の符号量制御ステップは、第二の蓄積ステップにおいてアンダーフローが発生しないように、かつ、ＶＢＶバッファがオーバーフローしないように、以下の式を満たす最小符号量Ｔｍｉｎを設定すること
を特徴とする請求項６に記載の符号化方法。
Ｔｍｉｎ＝ｍａｘ（２×Ｒｐ−Ｂ，ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ）
ここに、Ｒｐ＝Ｒ／Ｆ
ただし、Ｔｍｉｎは単位画像の最小符号量、Ｒｐは単位画像における前記第二の蓄積ステップによって蓄積された符号が読み出されるビット数、Ｒは前記第二の蓄積ステップによって蓄積された符号が読み出されるビットレート、Ｆは単位画像における符号化のレート、Ｂは前記第二の蓄積ステップの符号の蓄積における占有量、ｖｂｖ＿ｂｉｔｓは直前の単位画像における前記ＶＢＶバッファの占有量、及びｖｂｖ＿ｂｓは前記ＶＢＶバッファのサイズであり、ｍａｘ（ａ，ｂ）は、ａ又はｂのいずれか大きい方をその値とすることを示す。
【請求項１０】
第二の蓄積ステップによって蓄積された符号の読み出されるビットレートＲは可変であること
を特徴とする請求項７から９のいずれか１項に記載の符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、長さ制限の設けられたビデオパケットを用いて映像信号を符号化する、例えば携帯電話やＴＶ電話システム等に関わる符号化装置および符号化方法に関するものである。
【０００２】
【従来の技術】
図６は、例えば「ＭＰＥＧ−４のすべて」（工業調査会）ｐ．３９〜ｐ．４０に示された従来の符号化装置のブロック図であり、図７は、この従来の符号化装置の入力信号を示した説明図、図８はビットストリームの構成を示した説明図、図９はビデオパケットの画面（表示された状態）上の位置（配置）を示した説明図である。
【０００３】
図６において、１は外部から入力される外部入力信号を第一の入力とする減算器であり、減算器１の出力はＤＣＴ（離散コサイン変換。Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）手段２、量子化器３を通して、直流（ＤＣ）、交流（ＡＣ）の各成分の量子化値を予測するためのＤＣ／ＡＣ予測器４および逆量子化器６に入力される。また、ＤＣ／ＡＣ予測器４の出力は可変長符号化手段５の第一の入力に与えられ、可変長符号化手段５はビットストリームを出力する。
【０００４】
一方、量子化器３の出力が入力される逆量子化器６の出力は、逆ＤＣＴ手段７を通して、加算器８の第一の入力に与えられる。加算器８の出力はメモリ９に与えられ、メモリ９の出力は予測画像作成手段１０の第一の入力と動き検出手段１１の第一の入力に与えられる。
【０００５】
動き検出手段１１の第二の入力には外部入力信号が与えられ、動き検出手段１１の出力は予測画像作成手段１０の第二の入力と動きベクトル予測器１２に与えられる。
【０００６】
動きベクトル予測器１２の出力は可変長符号化手段５の第二の入力に与えられる。また、予測画像作成手段１０の出力は減算器１の第二の入力と加算器８の第二の入力に与えられる。
【０００７】
次に動作について説明する。まず、映像信号は図７に示すように基本処理単位であるマクロブロックに分割され、外部入力信号として入力される（ここにおける外部入力信号は基本的にマクロブロックとして入力されるのであり、直接にマクロブロックが入力されても、前段にマクロブロック生成のための手段が備えられてマクロブロックへの変換がなされるように構成されていてもよい）。
【０００８】
すなわち、入力される映像信号が４：２：０（輝度情報Ｙの画素数が、色差情報Ｃｂ、Ｃｒの画素数に対して、水平方向に２倍、かつ垂直方向に２倍であることを示す）の場合、輝度信号（Ｙ）の１６画素×１６ラインが、２つの色差信号（Ｃｂ、Ｃｒ）の８画素×８ラインと画面上で同じ大きさとなる。
【０００９】
従って、８画素×８ラインのブロックが６つ（輝度信号に対するブロックが４、色差信号に対するブロックが２のあわせて６のブロック）で、１つのマクロブロックが構成される。
【００１０】
なお、ここでは、外部入力として入力されるＶｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ（ＶＯＰ。単位画像。）は矩形形状で、フレームと同一であることを前提とする。
【００１１】
各ブロックは離散コサイン変換（ＤＣＴ）を施してから量子化手段３において量子化する。量子化されたＤＣＴ係数はＤＣ／ＡＣ予測器４においてＤＣ、ＡＣ各成分の係数の予測を行った後、量子化パラメータなどの付加情報とともに可変長符号化する。
【００１２】
これがイントラ符号化（フレーム内符号化と称する場合もある）である。すべてのマクロブロックに対してイントラ符号化を適用するＶＯＰをＩ−ＶＯＰ（Ｉｎｔｒａ−ＶＯＰ）と呼ぶ。
【００１３】
一方、量子化されたＤＣＴ係数は、逆量子化手段６において逆量子化、逆ＤＣＴ手段７において逆ＤＣＴを行って復号され、復号画像はメモリ９に記憶される。このメモリ９に記憶された復号画像はインター符号化（フレーム間符号化と称する場合もある）を行うときに使用される。
【００１４】
インター符号化の場合は、動き検出手段１１において、外部入力信号として入力されたマクロブロックの動きを示す動きベクトルを検出する。この動きベクトルとは、メモリ９に記憶された復号画像の中で、入力されたマクロブロックとの誤差が最も小さくなるような位置を示すものである。
【００１５】
予測画像作成手段１０は動き検出手段１１において検出された動きベクトルに基づいて、予測画像を作成する。
【００１６】
続いて、入力されたマクロブロックと予測画像作成手段１０において作成された予測画像との差分信号を求め、その差分信号に対してＤＣＴ手段２においてＤＣＴを施し、量子化手段３において量子化を行う。
【００１７】
量子化された変換係数は、予測符号化された動きベクトルおよび量子化パラメータなどの付加情報とともに可変長符号化される（インター符号化）。また、量子化されたＤＣＴ係数は、逆量子化手段６において逆量子化、逆ＤＣＴ手段７において逆ＤＣＴを行った後、加算器８によって予測画像と加算されて、メモリ９に記憶される。
【００１８】
インター符号化には、画像の表示順で時間的に前にあるＶＯＰだけから予測する片方向予測と、時間的に前のＶＯＰと後ろのＶＯＰの両方から予測する両方向予測とがある。片方向予測で符号化されたＶＯＰをＰ−ＶＯＰ（Ｐｒｅｄｉｃｔｉｖｅ  ＶＯＰ）と呼び、両方向予測で符号化されたＶＯＰをＢ−ＶＯＰ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ  Ｐｒｅｄｉｃｔｉｖｅ  ＶＯＰ）と呼ぶ。
【００１９】
次に、図８を参照しながら可変長符号化手段５から出力されるビットストリームの構成について説明する。１ＶＯＰのビットストリームは図８（ａ）のように、一つ以上のビデオパケット（のビットストリーム）から構成される。
【００２０】
ここで、１つのビデオパケットは１つ以上のマクロブロックの符号化データから成り立っており、ＶＯＰの最初のビデオパケットについては、先頭にＶＯＰヘッダが付され、最後にはバイトアラインのためのスタッフビットが付される（図８（ｂ））。
【００２１】
２つ目以降のビデオパケットの場合は、先頭にビデオパケットの先頭を検出するためのＲｅｓｙｎｃ  Ｍａｒｋｅｒとビデオパケットヘッダが付され、最後にはスタッフビットが付される（図８（ｃ））。
【００２２】
ここにおけるスタッフビットとは、ビデオパケットの最後に付けるバイトアライメントの調整のために、１〜８ビット単位でビデオパケットの終端（切れ目）まで付加されるものであり、以下に述べるスタッフィングとその意味が区別される。
【００２３】
また、図８（ｄ）のようにビデオパケットの中に任意の数のスタッフィングを入れることもできる。例えば、ＭＰＥＧ４  Ｖｉｄｅｏの場合、このスタッフィングはスタッフィング・マクロブロックと呼ばれ、マクロブロックと同じ扱いで任意のビデオパケットに入れることができる。このスタッフィングは復号装置側において、廃棄される（実質利用されない）。
【００２４】
ここにおけるスタッフィングとは、スタッフィングのための９ビットや１０ビットというようなワードとして用いられるものであり、バイトアライメント（例えばビデオパケットの終端を調整すること）とは無関係に用いられ、マクロブロックの間に挿入されて用いられるものであり、上述のスタッフビットとその意味が区別される。
【００２５】
１つのビデオパケットに入れることのできるマクロブロックの数は任意であるが、エラー伝播を考慮した場合、一般に各ビデオパケットの符号量がほぼ一定になるように構成するのがよいとされている。このようにビデオパケットの符号量がほぼ一定とされる場合、各ビデオパケットの１ＶＯＰ内において占める割合（面積）は図９のように一定でなくなる。
【００２６】
【発明が解決しようとする課題】
上記のような従来の符号化装置においては、ビデオパケットの長さに制限がある場合の符号量制御について考慮されていなかった。
【００２７】
例えば、可変長符号化手段５においてリバーシブル可変長符号が用いられる場合、復号装置はビデオパケットの先頭から順方向の可変長符号の復号においてエラーが生じた場合でも、ビデオパケットの最後から逆方向に可変長符号の復号を行うことによって当該可変長符号の復号を行うことができる。
【００２８】
この場合、復号装置側では１ビデオパケットを受信バッファに保存する必要があるため、この受信バッファの大きさを規定するために、ビデオパケットの長さの制限が設けられることがある。
【００２９】
このような場合、符号化装置は各ビデオパケットの長さが予め定められた長さ以下になるように符号量の制御を行う必要がある。
【００３０】
また、符号化装置は可変長符号化手段５の後段に設けられる図示しない送信バッファがオーバーフローやアンダーフローを起こさないように発生符号量を管理する必要がある。
【００３１】
通常は、量子化器３において用いる量子化パラメータを調節して符号量を増減するが、静止画のように極端に符号量が少ない場合は、スタッフィングを挿入して、送信バッファがアンダーフローを起こさないように符号量を増やす必要がある。
【００３２】
ところで、スタッフィングは復号に実質的に関与する情報を持たないので、なるべく挿入しないのが望ましい。このため、一般には、１ＶＯＰの符号化終了後、符号量が少ない場合に必要最小限のスタッフィングを挿入することが行われる。
【００３３】
ビデオパケットの長さに制限が設けられている場合、１ＶＯＰの符号化終了後にスタッフィングを挿入すると、１ビデオパケット内にスタッフィングが入りきらないという問題があった。
【００３４】
例えば、コンピュータグラフィックスで作成した静止画の場合、Ｐ−ＶＯＰで符号化すると殆ど符号が発生しない。一方、このような静止画を符号化する構成においては送信バッファからアンダーフローの旨の信号が出力され、これに基づいてスタッフィングを挿入するように動作する。
【００３５】
この動作によってＶＯＰの最後のビデオパケットにスタッフィングを挿入すると、ビデオパケットの長さの制限以上にスタッフィングが発生（挿入）してしまう場合があり、１ビデオパケットあたりの容量に制限が付され、かつスタッフィングのみのビデオパケットが禁止されているような条件下では、従来のものにおいては、ビデオパケットの長さ制限が守れない、もしくは、スタッフィングのみのビデオパケットが発生してしまうという問題があった。
【００３６】
この発明は、上述のような課題を解消するためになされたもので、ビデオパケットに長さの制限がある場合に、スタッフィングのみのビデオパケットを発生させず、かつ必要最小限のスタッフィングを、ビデオパケットの長さの制限を満たすように挿入できる符号化装置を提案するものである。
【００３７】
【課題を解決するための手段】
この発明に係る符号化装置は、単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、マクロブロック単位で外部入力信号を符号化し、符号化により生成された一以上のマクロブロックの符号から構成される符号量が所定値ＶＰｌｅｎ以下のビデオパケットを出力する符号化装置であって、マクロブロック単位で外部入力信号を符号化する符号化手段と、符号化手段から出力される符号を蓄積する一時バッファと、一時バッファから出力される符号を蓄積する送信バッファと、一時バッファから送信バッファに出力される符号の符号量を制御すると共に、送信バッファに蓄積される符号から構成され、送信バッファから出力されるビデオパケットの符号の符号量を制御する符号量制御手段とを備え、符号量制御手段は、一時バッファから送信バッファに出力される符号の符号量が所定値ＶＰｌｅｎ以下となるように、一時バッファから前記送信バッファに出力する前記マクロブロックの符号を制御すると共に、単位画像を構成する現マクロブロックに続いて処理されるべきマクロブロック数Ｍ、前記所定のビデオパケットの長さＶＰｌｅｎ、送信バッファがアンダーフローしないように、又はＶＢＶバッファがオーバーフローしないように設定される最小符号量Ｔｍｉｎ、及び単位画像の先頭のマクロブロックから現マクロブロックまでの単位画像の符号の符号量Ｓｃとの関係が、
Ｍ×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第一の関係の場合、第一の関係が満足されなくなるまで送信バッファ内の現ビデオパケットにスタッフィングを挿入し、第一の関係が成立せず、かつマクロブロックの数Ｍ、ビデオパケットの長さＶＰｌｅｎ、最小符号量Ｔｍｉｎ及び符号量Ｓｃの間の関係が、
（Ｍ−１）×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第二の関係の場合、現ビデオパケットにスタッフィングを挿入せずに現マクロブロックの次のマクロブロックから現ビデオパケットの次のビデオパケットを構成するように制御することを特徴とする。
【００５１】
【発明の実施の形態】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
実施の形態１．
図１はこの発明の実施の形態１である符号化装置を示すものである。同図において、１は外部入力信号を第一の入力とする減算器であり、減算器１の出力はＤＣＴ手段２、量子化器３を通して、ＤＣ／ＡＣ予測器４と逆量子化器６に入力される。ＤＣ／ＡＣ予測器４の出力は可変長符号化手段５ａの第一の入力に与えられる。
【００５２】
一方、逆量子化器６の出力は、逆ＤＣＴ手段７を通して、加算器８の第一の入力に与えられる。加算器８の出力はメモリ９に与えられ、メモリ９の出力は予測画像作成手段１０の第一の入力と動き検出手段１１の第一の入力に与えられる。
【００５３】
動き検出手段１１の第二の入力には外部入力信号が与えられ、動き検出手段１１の出力は予測画像作成手段１０の第二の入力と動きベクトル予測器１２に与えられる。予測画像作成手段１０の出力は減算器１の第二の入力と加算器８の第二の入力に与えられる。
【００５４】
また、動きベクトル予測器１２の出力は可変長符号化手段５ａの第二の入力に与えられる。なお、符号化手段は、上述の外部入力信号が入力される減算器１から、この外部入力信号に対応する可変長符号が出力される可変長符号化手段５ａまでを含んで構成される（もちろん、ここに示された構成は一例にしか過ぎず、外部入力信号に対応する符号化を行うことができる既知の構成を用いることができる）。
【００５５】
可変長符号化手段５ａの第一の出力は一時バッファ１０１（第一の蓄積手段）の第一の入力に与えられ、可変長符号化手段５ａの第二の出力は符号量制御手段１０２の入力に与えられる。
【００５６】
一時バッファ１０１の第二の入力には符号量制御手段１０２の第一の出力が与えられ、一時バッファ１０１の出力は送信バッファ１０３（第二の蓄積手段）の第一の入力に与えられる。送信バッファ１０３の第二の入力には符号量制御手段１０２の第二の出力が与えられ、送信バッファ１０３の出力はビットストリームとして出力（送信）される。
【００５７】
この出力（送信）されたビットストリームは、復号装置側において受信され復号処理が施される。
【００５８】
次に動作について説明する。
まず、映像信号は図７に示したように基本処理単位であるマクロブロックに分割され、入力される。例えば、入力される映像信号が４：２：０の場合、輝度信号（Ｙ）の１６画素×１６ラインが、２つの色差信号（Ｃｂ、Ｃｒ）の８画素×８ラインと画面上で同じ大きさとなるので、８画素×８ラインのブロックが６つで、１つのマクロブロックが構成される。
【００５９】
イントラ符号化を行う場合、各ブロックはＤＣＴを施してから量子化する。量子化されたＤＣＴ係数はＤＣ／ＡＣ予測器４で係数の予測を行った後、量子化パラメータなどの付加情報とともに可変長符号化する。量子化されたＤＣＴ係数は、逆量子化、逆ＤＣＴを行って、復号され、復号画像はメモリ９に記憶される。
【００６０】
インター符号化の場合は、動き検出手段１１において、入力されたマクロブロックの動きを示す動きベクトルを検出する。動きベクトルは、メモリ９に記憶された復号画像の中で、入力マクロブロックとの誤差が最も小さくなるような位置を示すものである。
【００６１】
予測画像作成手段１０は動きベクトルに基づいて、予測画像を作成する。次に、入力マクロブロックとこの予測画像の差分を求め、その差分信号に対して、ＤＣＴを施し、量子化を行う。
【００６２】
量子化されたＤＣＴ係数は、予測符号化された動きベクトルおよび量子化パラメータなどの付加情報とともに可変長符号化される。また、量子化されたＤＣＴ係数は、逆量子化、逆ＤＣＴを行った後、予測画像と加算されて、メモリ９に記憶される。
【００６３】
次に可変長符号化手段５ａの動作を詳しく説明する。
可変長符号化手段５ａは、マクロブロック毎に、量子化されたＤＣＴ係数と付加情報を符号化して（符号化工程）一時バッファ１０１に書き込み（第一の蓄積工程）、その符号量を符号量制御手段１０２に出力する。
【００６４】
例えばＭＰＥＧ４のＩ−ＶＯＰの場合、まず、各ブロックの量子化されたＤＣＴ係数のＡＣ成分をジグザグスキャン等の方法で１次元スキャンし、０の個数と非零の係数の組み合わせを符号化するランレングス符号化を行う。このランレングス符号化された各ブロックの係数データは一時バッファ１０１に書き込まれる。
【００６５】
図２（ａ）に示すように、各ブロックの係数データの後には、マクロブロックタイプを示すＭＴＹＰＥと色差の各ブロックに非零のＡＣ係数があったかどうかを示すＣＢＰＣをまとめて符号化したｍｃｂｐｃ、量子化パラメータを示すｄｑｕａｎｔ、各ブロックのＤＣＴ係数のＤＣ成分、ＡＣ予測を行ったかどうかを示すａｃ＿ｐｒｅｄ＿ｆｌａｇ、Ｙの各ブロックに非零のＡＣ係数があったかどうかを示すＣＢＰＹが、順に符号化されて一時バッファ１０１に書き込まれる。
【００６６】
なお、マクロブロック毎にこれらの符号量の合計が符号量制御手段１０２に出力される。
【００６７】
同様に、ＭＰＥＧ４のＰ−ＶＯＰの場合は図３（ａ）のような順で符号化したデータが一時バッファ１０１に書き込まれる。
【００６８】
符号量制御手段１０２は、可変長符号化手段５ａから出力される各マクロブロックの符号量を元に、各ビデオパケットの長さが予め定められた値（ＶＰｌｅｎ）以下になるようにマクロブロックをまとめ（符号量制御工程）、一時バッファ１０１から送信バッファ１０３へと転送する（第二の蓄積工程）。
【００６９】
例えば、ＭＰＥＧ４の場合、図２（ｂ）、図３（ｂ）に示したように、ビデオパケットの先頭にはヘッダを付加し、規定されたビットストリームの順に並べ替えて転送する。
【００７０】
また、符号量制御手段１０２は、送信バッファ１０３がアンダーフローを起こさないように、あるいは、ＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）バッファ（受信側におけるビデオパケット受信に要する仮想的なバッファ（必要とされる容量は、例えば送信ビットストリーム中のヘッダに記述される）。通常、最低Ｉ−ＶＯＰ分の容量が設定される。）がオーバーフローを起こさないように、ＶＯＰ毎に最小符号量Ｔｍｉｎを設定し、当該ＶＯＰの符号量がＴｍｉｎより少なくならないように、必要に応じてスタッフィングを送信バッファ１０３に書き込むとともに、ビデオパケットの区切りを決定する。
【００７１】
すなわち、ここにおける最小符号量Ｔｍｉｎとは、送信バッファ１０３がアンダーフローを起こさず、ＶＢＶバッファがオーバーフローしないための必要最小限の符号量といえる。
【００７２】
以下、動作の詳細について述べる。
符号量制御手段１０２は、各ＶＯＰの符号化を始める前に、当該ＶＯＰに必要な最小符号量Ｔｍｉｎを求める。例えば、符号化装置の現在の送信バッファ１０３の容量の残量（すなわち、送信バッファやＶＢＶバッファ等の記憶手段に蓄積され、当該送信バッファやＶＢＶバッファ等の記憶手段より読み出されていない（送信バッファやＶＢＶバッファ等の記憶手段に残留している（保存されている））データの量であり、このようなデータの量のことを一般的にはバッファ占有量、あるいは占有量（ｏｃｃｕｐａｎｃｙ）と表現する。以下、単に占有量と称す。）がＢ（ｂｉｔｓ。第二の蓄積手段における占有量）、送信バッファ１０３の読み出しビットレートがＲ（ｂｉｔｓ／ｓｅｃ）、符号化するＶＯＰのレートがＦ（１／ｓｅｃ）とすると、１ＶＯＰ期間に送信バッファ１０３から読み出されるビット数Ｒｐは、
Ｒｐ＝Ｒ／Ｆ
であるので、送信バッファ１０３がアンダーフローを起こさないためには、送信バッファ１０３の占有量が常にＲｐ以上となれば十分である。従って、最小符号量Ｔｍｉｎを、
Ｔｍｉｎ≧２×Ｒｐ−Ｂ
と設定すればよい。
【００７３】
また、ＶＢＶバッファの管理をする場合、現在のＶＯＰの１つ前のＶＯＰのデコード時間におけるＶＢＶバッファの占有量をｖｂｖ＿ｂｉｔｓ（ＶＢＶバッファの占有量）、ＶＢＶバッファのサイズをｖｂｖ＿ｂｓとすると、ＶＢＶバッファがオーバーフローしないためには、ＶＢＶバッファの占有量がｖｂｖ＿ｂｓ−Ｒｐ以下になれば十分である。
【００７４】
従って、現在のＶＯＰの最小符号量Ｔｍｉｎを、
Ｔｍｉｎ≧ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ
とすればよい。
【００７５】
ここにおけるＶＢＶバッファの占有量ｖｂｖ＿ｂｉｔｓは、受信側における占有量を推定するものであるが、例えば、送信バッファ１０３からの読み出しビットレートから計算によって求めるので、時間経過によって変化する。
【００７６】
従って、符号量制御手段１０２は、各ＶＯＰの符号化を始める前に、当該ＶＯＰに必要な最小符号量Ｔｍｉｎを、
Ｔｍｉｎ＝ｍａｘ（２×Ｒｐ−Ｂ，
ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ）
と設定する（ｍａｘ（ａ，ｂ）は、ａまたはｂのいずれか大きい方をその値とすることを示す）。
【００７７】
なお、符号化装置の送信バッファ１０３が空になった場合に、送信バッファ１０３の読み出しを止める（停止する）よう構成されている場合は、送信バッファ１０３のアンダーフローを管理する必要がないので、
Ｔｍｉｎ＝ｖｂｖ＿ｂｉｔｓ＋２×Ｒｐ−ｖｂｖ＿ｂｓ
とすればよい。
【００７８】
前述のようにｖｂｖ＿ｂｉｔｓが時間的に変化するため、最小符号量Ｔｍｉｎの値も時間的に変化するものとなるが、この最小符号量Ｔｍｉｎの値はＶＯＰ毎に計算されるものである。
【００７９】
次に、符号量制御手段１０２は、マクロブロック毎に現在のＶＯＰの符号量Ｓｃを求め、図４に示したフローチャートおよび図５に示すビデオパケットの構成に従い、次のマクロブロックから新しいビデオパケットを構成するか否か、現在のビデオパケットにスタッフィングを挿入するかどうかを決定する。
【００８０】
ＶＯＰを構成するマクロブロックの総数をＡとし、現マクロブロックのマクロブロック番号をＫ（ただし、０≦Ｋ≦Ａ−１）として、これに続く符号化されるべきマクロブロック数Ｍ（残りのマクロブロック数Ｍ）はＡ−Ｋ−１と表される（すなわち、Ｍ＝Ａ−Ｋ−１）。
【００８１】
現マクロブロックまでのＶＯＰの符号量Ｓｃが当該ＶＯＰの最小符号量Ｔｍｉｎより少ない場合、
Ｍ×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ          （１）
であれば（第一の関係の場合）、（１）式における関係が満足されなくなるまで現在のビデオパケットにスタッフィングを挿入して、次のマクロブロックから新しいビデオパケットを構成する。
【００８２】
上記（１）式が成り立たない場合で、
（Ｍ−１）×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ  （２）
となる場合（第二の関係の場合）は、現在のビデオパケットにはスタッフィングを挿入せずに、次のマクロブロックから新しいビデオパケットを構成する。
【００８３】
それ以外の場合は、既に述べたように、各ビデオパケットの長さがＶＰｌｅｎ以下になるようにマクロブロックをまとめて、ビデオパケットを構成する。
【００８４】
以下、図４に示すフローチャートの動作について説明する。
上記（１）式が成り立つ場合、残りのマクロブロックの数をＭ個とすると、図５（ａ）に示すように、残りＭ個のビデオパケットを構成することができるので、Ｍ×ＶＰｌｅｎの符号量の符号を発生させることができる。
【００８５】
従って、この場合に不足する符号量は、
Ｔｍｉｎ−Ｓｃ−Ｍ×ＶＰｌｅｎ
である。
【００８６】
そこで、例えばＭＰＥＧ４の場合、スタッフィング・マクロブロックの符号長をＬとすると、
（Ｔｍｉｎ−Ｓｃ−Ｍ×ＶＰｌｅｎ＋Ｌ−１）／Ｌ
個のスタッフィング・マクロブロックを現在のビデオパケットに挿入する。
【００８７】
次に、（１）式が成り立たない場合で（２）式が成り立つ場合、次のマクロブロックを現在のビデオパケットに入れると、図５（ｃ）のように、残りの発生符号量が最大でも（Ｍ−１）×ＶＰｌｅｎとなるので、次のマクロブロックの発生符号量が０であった場合、（２）式よりＳｃ＜Ｔｍｉｎとなる。
【００８８】
そこで、次のマクロブロックから新しいビデオパケットを構成すれば、図５（ｂ）のように残りの発生する符号量が最大でＭ×ＶＰｌｅｎとなる。
【００８９】
（１）式を満足しない場合、Ｍ×ＶＰｌｅｎ≧Ｔｍｉｎ−Ｓｃの関係となり、かつ、次のマクロブロック以降、Ｍ×ＶＰｌｅｎの符号量の符号を発生できるので、
ＶＯＰを構成する全てのマクロブロックの符号量
＝Ｍ×ＶＰｌｅｎ＋Ｓｃ
≧Ｔｍｉｎ
とすることができる。従って、現在のビデオパケットにスタッフィングを挿入する必要はない。
【００９０】
同様に、（２）式が成り立たない場合は、図５（ｃ）のように、次のマクロブロックを現在のビデオパケットに入れても、残りのビデオパケットで（Ｍ−１）×ＶＰｌｅｎの符号量の発生は保証できるので、現時点でスタッフィングを挿入する必要はない。
【００９１】
このように図４のフローチャートに基づいて符号量を制御することで、ビデオパケットの最大長がＶＰｌｅｎであるという制限の下で、必要最低限のスタッフィングを挿入するようビデオパケットの構成を決定することができる。
【００９２】
なお、上記実施の形態においては、Ｔｍｉｎの設定において、送信バッファ１０３の読み出しレートがＲであるとしたが、読み出しレートが固定レートでなく、レートが可変である場合であっても、同様にして、送信バッファ１０３のアンダーフローあるいはＶＢＶバッファのオーバーフローが起こらないようにＴｍｉｎを設定することが可能である。
【００９３】
上述の送信バッファ１０３の読み出しレートが可変である場合とは、例えば、送信する最大のレートが決められており、その最大のレートの中で送信するべき情報の種類（例えば、映像と音声のような種類）によって送信レートが割り振られているような場合に相当する。
【００９４】
この場合も、図４のフローチャートに基づいて符号量を制御することで、スタッフィングの挿入とビデオパケットの区切りを決定し、各ＶＯＰの符号量がＴｍｉｎ以上になるように制御することができる。
【００９５】
また、上記実施の形態においては、ＭＰＥＧ４のデータパーティション（図２（ｂ）に示すような、各マクロブロックに関して、▲１▼ｍｃｂｐｃ、ｄｑｕａｎｔおよびＤＣ成分、▲２▼ａｃ＿ｐｒｅｄ＿ｆｌａｇおよびｃｂｐｙ、▲３▼各ブロックの係数データのような、▲１▼〜▲３▼のようなカテゴリー毎にデータの構成が行われている状態）の場合を例にとって説明したが、データパーティションでない場合や、Ｈ．２６３の場合などにおいても、ビデオパケットに長さ制限がある場合は、上述と同様の構成で、符号量制御を行うことができる。
【００９６】
上述のデータパテーションの場合におけるカテゴリーに関して述べれば、例えば図３（ｂ）に示すように、▲１▼ｎｏｔ＿ｃｏｄｅｄ、ｍｃｂｐｃおよび動きベクトル、▲２▼ｃｂｐｙおよびｄｑｕａｎｔ、▲３▼各ブロックの係数データ、というような構成であっても良く、基本的には各ブロックの係数データと、当該係数データに係わる付加的な情報とがカテゴリーとして分けられていれば良い。また、カテゴリーの数も必ずしも▲１▼〜▲３▼の３つでなくとも良く、任意のカテゴリーの数を許容することができる。
【００９７】
さらに、入力信号が４：２：０でない場合や、ＶＯＰ（単位画像）が矩形でない（例えば、画面中におけるオブジェクトがとり得る任意の形状）場合にも適用できることは言うまでもない。
【００９８】
【発明の効果】
この発明によれば、以上説明したように構成されているので以下に述べるような効果を奏する。
この発明に係る符号化装置は、単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、マクロブロック単位で外部入力信号を符号化し、符号化により生成された一以上のマクロブロックの符号から構成される符号量が所定値ＶＰｌｅｎ以下のビデオパケットを出力する符号化装置であって、マクロブロック単位で外部入力信号を符号化する符号化手段と、符号化手段から出力される符号を蓄積する一時バッファと、一時バッファから出力される符号を蓄積する送信バッファと、一時バッファから送信バッファに出力される符号の符号量を制御すると共に、送信バッファに蓄積される符号から構成され、送信バッファから出力されるビデオパケットの符号の符号量を制御する符号量制御手段とを備え、符号量制御手段は、一時バッファから送信バッファに出力される符号の符号量が所定値ＶＰｌｅｎ以下となるように、一時バッファから前記送信バッファに出力する前記マクロブロックの符号を制御すると共に、単位画像を構成する現マクロブロックに続いて処理されるべきマクロブロック数Ｍ、前記所定のビデオパケットの長さＶＰｌｅｎ、送信バッファがアンダーフローしないように、又はＶＢＶバッファがオーバーフローしないように設定される最小符号量Ｔｍｉｎ、及び単位画像の先頭のマクロブロックから現マクロブロックまでの単位画像の符号の符号量Ｓｃとの関係が、
Ｍ×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第一の関係の場合、第一の関係が満足されなくなるまで送信バッファ内の現ビデオパケットにスタッフィングを挿入し、第一の関係が成立せず、かつマクロブロックの数Ｍ、ビデオパケットの長さＶＰｌｅｎ、最小符号量Ｔｍｉｎ及び符号量Ｓｃの間の関係が、
（Ｍ−１）×ＶＰｌｅｎ＜Ｔｍｉｎ−Ｓｃ
なる第二の関係の場合、現ビデオパケットにスタッフィングを挿入せずに現マクロブロックの次のマクロブロックから現ビデオパケットの次のビデオパケットを構成するように制御するので、必要最小限のスタッフィングを挿入して、送信バッファのアンダーフロー、あるいはＶＢＶバッファのオーバーフローを防ぐことができる。
【図面の簡単な説明】
【図１】  実施の形態１における符号化装置を示すブロック図である。
【図２】  実施の形態１における一時バッファと送信バッファの状態（Ｉ−ＶＯＰの場合）を説明するための説明図である。
【図３】  実施の形態１における一時バッファと送信バッファの状態（Ｐ−ＶＯＰの場合）を説明するための説明図である。
【図４】  実施の形態１における符号化装置における動作を説明するためのフローチャートである。
【図５】  実施の形態１におけるビデオパケットの構成を示す図である。
【図６】  従来の符号化装置を示すブロック図である。
【図７】  従来の符号化装置への外部入力信号を示す図である。
【図８】  従来の符号化装置におけるビットストリームの構成を示す図である。
【図９】  従来の符号化装置におけるビデオパケットの画面上の位置を示す図である。
【符号の説明】
５ａ  可変長符号化手段、１０２  符号量制御手段。
【図１】
0003669277.tif 000002
【図２】
0003669277.tif 000003
【図３】
0003669277.tif 000004
【図４】
0003669277.tif 000005
【図５】
0003669277.tif 000006
【図６】
0003669277.tif 000007
【図７】
0003669277.tif 000008
【図８】
0003669277.tif 000009
【図９】
0003669277.tif 000010