(57)【特許請求の範囲】
【請求項１】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、
前記マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換回路と、
当該直交変換回路から出力される変換係数を量子化する量子化回路と、
可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して前記現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測回路と、
当該予測後の変換係数を前記可変長符号化する可変長符号化回路と、
当該可変長符号化回路から出力される符号を蓄積する一時バッファと、
当該一時バッファ内に蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現ブロックを含む現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と
を備え、
当該符号量制御回路は、当該次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、前記一時バッファに蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較し、前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前記蓄積されている符号を一時バッファから送出するように制御すること
を特徴とする符号化装置。
【請求項２】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、
前記マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換回路と、
当該直交変換回路から出力される変換係数を量子化する量子化回路と、
可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して前記現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測回路と、
当該予測後の変換係数を前記可変長符号化する可変長符号化回路と、
当該可変長符号化回路から出力される符号を蓄積する一時バッファと、
当該一時バッファ内に蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現ブロックを含む現マクロブロック、又は当該現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と
を備え、
当該符号量制御回路は、
前記一時バッファに蓄積されている符号の符号量とビデオパケットに収容可能な符号量とを比較し、
（Ａ）前記一時バッファに蓄積されている符号の符号量が当該ビデオパケットに収容可能な符号量以上の場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックの前のマクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を一時バッファから送出し、
変換係数予測回路は、所定の変換係数を参照して、再度、現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力し、
（Ｂ）前記一時バッファに蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量よりも小さい場合に、前記次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、前記一時バッファに蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較し、前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を一時バッファから送出するように制御すること
を特徴とする符号化装置。
【請求項３】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、
前記マクロブロック単位で映像信号から動きベクトルを検出する動きベクトル検出回路と、
可変長符号化後の符号が現マクロブロックと同一のビデオパケット内に入るマクロブロックの動きベクトルを参照して前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、前記検出された動きベクトルとの差分である予測後の動きベクトルを出力する動きベクトル予測回路と、
前記検出された動きベクトルから前記現マクロブロックの映像信号を動き補償予測し、直交変換し、量子化した変換係数と、前記予測後の動きベクトルとを前記可変長符号化する可変長符号化回路と、
前記可変長符号化回路から出力される符号を蓄積する一時バッファと、
当該一時バッファ内に蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と
を備え、
前記符号量制御回路は、当該次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、前記一時バッファに蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較し、前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前記蓄積されている符号を一時バッファから送出するように制御すること
を特徴とする符号化装置。
【請求項４】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、
前記マクロブロック単位で映像信号から動きベクトルを検出する動きベクトル検出回路と、
可変長符号化後の符号が現マクロブロックと同一のビデオパケット内に入るマクロブロックの動きベクトルを参照して前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、前記検出された動きベクトルとの差分である予測後の動きベクトルを出力する動きベクトル予測回路と、
前記検出された動きベクトルから前記現マクロブロックの映像信号を動き補償予測し、直交変換し、量子化した変換係数と、前記予測後の動きベクトルとを前記可変長符号化する可変長符号化回路と、
前記可変長符号化回路から出力される符号を蓄積する一時バッファと、
当該一時バッファ内に蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現マクロブロック、又は前記現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と
を備え、
符号量制御回路は、
前記一時バッファに蓄積されている符号の符号量とビデオパケットに収容可能な符号量とを比較し、
（Ａ）前記一時バッファに蓄積されている符号の符号量が当該ビデオパケットに収容可能な符号量以上の場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックの前のマクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を一時バッファから送出し、
動きベクトル予測回路は、所定の動きベクトルを参照して、再度、前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、検出された動きベクトルとの差分である予測後の動きベクトルを出力し、
（Ｂ）前記一時バッファに蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量よりも小さい場合に、前記次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、前記一時バッファに蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較し、前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を一時バッファから送出するように制御すること
を特徴とする符号化装置。
【請求項５】
次マクロブロックの符号の符号量を、現マクロブロックの符号の符号量と同一であると予測すること
を特徴とする請求項１から４のいずれか１項に記載の符号化装置。
【請求項６】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化方法であって、
（ａ）前記マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換ステップと、
（ｂ）当該直交変換ステップから出力される変換係数を量子化する量子化ステップと、
（ｃ）可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して前記現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測ステップと、
（ｄ）当該予測後の変換係数を前記可変長符号化する可変長符号化ステップと、
（ｅ）当該可変長符号化ステップから出力される符号を蓄積する蓄積ステップと、
（ｆ）当該蓄積ステップにおいて蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現ブロックを含む現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御ステップと
を備え、
当該符号量制御ステップ（ｆ）は、
（ｇ）当該次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測する予測ステップと、
（ｈ）前記蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較する比較ステップと、
（ｉ）前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前記蓄積されている符号を送出する送出ステップと
を備えることを特徴とする符号化方法。
【請求項７】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化方法であって、
（ｊ）前記マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換ステップと、
（ｋ）当該直交変換ステップから出力される変換係数を量子化する量子化ステップと、
（ｌ）可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して前記現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測ステップと、
（ｍ）当該予測後の変換係数を前記可変長符号化する可変長符号化ステップと、
（ｎ）当該可変長符号化ステップから出力される符号を蓄積する蓄積ステップと、
（ｏ）当該蓄積ステップにおいて蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現ブロックを含む現マクロブロック、又は当該現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御ステップと
を備え、
当該符号量制御ステップ（ｏ）は、
（ｐ）前記蓄積されている符号の符号量と、ビデオパケットに収容可能な符号量とを比較する第１の比較ステップと、
（ｑ−１）前記蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量以上の場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックの前のマクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を送出する第１の送出ステップと、
（ｑ−２）所定の変換係数を参照して、再度、前記現ブロックの変換係数を予測し、当該予測される変換係数と、前記現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する再変換係数予測ステップと、
（ｒ−１）前記蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量よりも小さい場合に、
（ｒ−２）前記次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測する予測ステップと、
（ｒ−３）前記蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較する第２の比較ステップと、
（ｒ−４）前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を送出する第２の送出ステップを備えること
を特徴とする符号化方法。
【請求項８】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化方法であって、
（ａ）前記マクロブロック単位で映像信号から動きベクトルを検出する動きベクトル検出ステップと、
（ｂ）可変長符号化後の符号が現マクロブロックと同一のビデオパケット内に入るマクロブロックの動きベクトルを参照して前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、前記現マクロブロックの検出された動きベクトルとの差分である予測後の動きベクトルを出力する動きベクトル予測ステップと、
（ｃ）前記検出された動きベクトルから前記現マクロブロックの映像信号を動き補償予測し、直交変換し、量子化した変換係数と、前記予測後の動きベクトルとを前記可変長符号化する可変長符号化ステップと、
（ｄ）当該可変長符号化ステップから出力される符号を蓄積する蓄積ステップと、
（ｅ）当該蓄積ステップにおいて蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御ステップと
を備え、
当該符号量制御ステップ（ｅ）は、
（ｆ）当該次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測する予測ステップと、
（ｇ）前記蓄積蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較する比較ステップと、
（ｈ）前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前記蓄積されている符号を送出する送出ステップと
を備えることを特徴とする符号化方法。
【請求項９】
映像信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該映像信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化方法であって、
（ｉ）前記マクロブロック単位で映像信号から動きベクトルを検出する動きベクトル検出ステップと、
（ｊ）可変長符号化後の符号が現マクロブロックと同一のビデオパケット内に入るマクロブロックの動きベクトルを参照して前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、前記現マクロブロックの検出された動きベクトルとの差分である予測後の動きベクトルを出力する動きベクトル予測ステップと、
（ｋ）前記検出された動きベクトルから前記現マクロブロックの映像信号を動き補償予測し、直交変換し、量子化した変換係数と、前記予測後の動きベクトルとを前記可変長符号化する可変長符号化ステップと、
（ｌ）当該可変長符号化ステップから出力される符号を蓄積する蓄積ステップと、
（ｍ）当該蓄積ステップにおいて蓄積されている前記マクロブロックの符号から構成されるビデオパケットに、前記現マクロブロック、又は前記現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御ステップと
を備え、
当該符号量制御ステップ（ｎ）は、
（ｏ）前記蓄積されている符号の符号量と、ビデオパケットに収容可能な符号量とを比較する第１の比較ステップと、
（ｐ−１）前記蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量以上の場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックの前のマクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を送出する第１の送出ステップと、
（ｐ−２）所定の動きベクトルを参照して、再度、前記現マクロブロックの動きベクトルを予測し、当該予測される動きベクトルと、前記検出された動きベクトルとの差分である予測後の動きベクトルを出力する再動きベクトル予測ステップと、
（ｑ−１）前記蓄積されている符号の符号量が前記ビデオパケットに収容可能な符号量よりも小さい場合に、
（ｑ−２）前記次マクロブロックの符号の符号量を、前記現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測する予測ステップと、
（ｑ−３）前記蓄積されている符号の符号量と当該予測される符号の符号量とを加算し、当該加算値とビデオパケットに収容可能な符号量とを比較する第２の比較ステップと、
（ｑ−４）前記加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、前回の送出の後に蓄積が開始されたマクロブロックから前記現マクロブロックまでの符号をビデオパケットとするために、前記蓄積されている符号を送出する第２の送出ステップを備えること
を特徴とする符号化方法。
【請求項１０】
次マクロブロックの符号の符号量を、現マクロブロックの符号の符号量と同一であると予測すること
を特徴とする請求項６から９のいずれか１項に記載の符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のマクロブロックの映像信号を符号化し、その符号化した映像信号から符号長が所定値以下であるビデオパケットを生成する符号化装置に関し、特に、今回符号化したマクロブロックの映像信号を加算するとビデオパケットの符合長の制限値を超えてしまう場合に、前回符号化したマクロブロックの映像信号の符号までをビデオパケット用に送出し、今回符号化したマクロブロックの映像信号については再符号化する符号化装置に関するものである。
【０００２】
【従来の技術】
ＭＰＥＧ−４規格は、ＩＴＵ−Ｔ（国際電気通信連合−電気通信標準化部門）の動画像符号化専門化グループ（Moving Picture Coding Experts Group）により策定された規格である。ＭＰＥＧ規格としては、すでにＭＰＥＧ−１規格およびＭＰＥＧ−２規格が策定されている。ＭＰＥＧ−１規格は、ＣＤ−ＲＯＭに適用されており、さらに、ＶｉｄｅｏＣＤやカラオケ、また、ネットを介した動画通信に用いられている。ＭＰＥＧ−２規格は、現行テレビやＨＤＴＶ、あるいは、蓄積メディア系や通信系に適用されている。
【０００３】
上記したＭＰＥＧ−１規格あるいはＭＰＥＧ−２規格に対するＭＰＥＧ−４規格の特徴としては、様々な特性を有するオブジェクトとシーンという異なる構成要素を用いることもあるが、そのオブジェクトやシーンの情報がビットレートに依存せずに圧縮されて可変長に符号化されることが挙げられる。
【０００４】
以下に、ＭＰＥＧ−４規格に基づく符号化装置および符号化の概要について説明する。
図８は、ＭＰＥＧ−４規格に基づく従来の符号化装置のブロック図であり、例えば、文献「ＭＰＥＧ−４のすべて」（工業調査会）ｐ．３９〜ｐ．４０に示されたものである。
【０００５】
図８の符号化装置１は、ＭＰＥＧ−４で扱う映像の基本処理単位であるビデオ・オブジェクト・プレイン（ＶＯＰ）を分割したマクロブロックの映像信号（輝度信号Ｙおよび色差信号Ｃｂ／Ｃｒ）が入力され、符号化された映像信号を含むビデオパケットをビットストリーム出力する。符号化装置１から出力されたビデオパケットは、復号装置２内の受信バッファ３１に一旦蓄積されてから復号装置３２で復号される。
【０００６】
符号化装置１は、入力される映像信号が第一の入力として入力される減算器１１と、減算器１１の出力信号を離散コサイン変換（ＤＣＴ）するＤＣＴ回路１２と、ＤＣＴ回路１２の出力信号を量子化して出力する量子化回路１３と、入力したマクロブロックが属するビデオ・オブジェクト・プレイン（ＶＯＰ）内の対象となるブロックについてのＤＣＴ係数のＤＣ成分およびＡＣ成分を予測するＤＣ／ＡＣ予測回路１４と、複数のマクロブロックのＤＣＴ係数あるいは後述する動きベクトルを可変長符号化したビデオパケットに区切ってからビットストリーム出力する可変長符号化回路１５と、量子化回路１３から出力されたＤＣＴ係数を逆量子化する逆量子化回路１６と、逆量子化されたＤＣＴ係数をさらに逆離散コサイン変換する逆ＤＣＴ回路１７と、逆離散コサイン変換された映像信号が第一の入力として入力される加算器１８と、加算器１８の出力を格納するメモリ１９と、メモリ１９に格納されていた映像信号が第一の入力として入力されると共に後述する動き検出回路２１の出力が第二の入力として入力されて次のマクロブロックの予測画像を作成して減算器１１と加算器１８に出力する予測画像作成回路２０と、メモリ１９に格納されていた映像信号が第一の入力として入力されると共に他のマクロブロックの映像信号が第二の入力として入力されて対象となるマクロブロックに対して誤差の最も小さいマクロブロックを検出して予測画像作成回路２０と後述する動きベクトル予測回路２２に出力する動き検出回路２１と、動き検出回路２１から出力されたマクロブロックへの動きを示す信号である動きベクトルを予測する動きベクトル予測回路２２と、上記した各回路の動作を制御する制御回路２３とを備えている。
【０００７】
ここで、各マクロブロック毎に符号化装置１に入力する映像信号について説明する。
図９は、図８の符号化装置１に入力するマクロブロック毎の映像信号を示す図である。
【０００８】
図９に示すように一つのビデオ・オブジェクト・プレイン（ＶＯＰ）は、１６ライン毎および１６画素毎の複数のマクロブロックに分割される。また、各マクロブロックの輝度信号ブロックＹは、８ラインおよび８画素毎のサブブロック（以下、ブロックと記す）に分割される。また、色差信号ブロックＣｂおよびＣｒは、８ラインおよび８画素から構成される。なお、入力される映像信号の画像フォーマットがＭＰＥＧ−４バージョン１のように４：２：０の場合、輝度信号（Ｙ）の１６画素×１６ラインが、２つの色差信号（Ｃｂ、Ｃｒ）の８画素×８ラインと画面上で同じ大きさとなる。従って、８画素×８ラインのブロック（８×８ブロック）が６個で、１つのマクロブロックが構成されることになる。また、図９のＶＯＰは矩形形状であり、例えば、ＭＰＥＧ−２におけるフレームと同義とする。
【０００９】
図９に示したマクロブロックは、ＶＯＰにおける最上部かつ最左部に位置するマクロブロックである。例えば、図９のＶＯＰの最も上のマクロブロックの行を第１行とし、以下、下に向かって第２行、第３行、・・・とし、図９のＶＯＰの最も左のマクロブロックの列を第１列とし、以下、右に向かって、第２列、第３列、・・・とすると、図９に示したマクロブロックは、第１列かつ第１行に位置するマクロブロックとなる。
【００１０】
また、ＤＣＴ回路１２、量子化回路１３およびＤＣ／ＡＣ予測回路１４等における各処理は、上述した８×８ブロック単位で実施される。
【００１１】
次に、図８の符号化装置１の動作について説明する。
符号化回路１に入力したマクロブロックの映像信号（輝度信号Ｙ、色差信号Ｃｂ／Ｃｒ）は、８×８ブロック毎にＤＣＴ回路１２で離散コサイン変換（ＤＣＴ）され、量子化回路１３で量子化される。量子化された８×８ブロックの各信号は、ＤＣ／ＡＣ予測回路１４でＤＣＴ係数のＤＣ成分およびＡＣ成分が予測される。
【００１２】
ＤＣ／ＡＣ予測回路１４は、イントラ符号化の場合に、量子化されたＤＣＴ係数のＤＣ成分およびＡＣ成分の予測を行い、インター符号化の場合は量子化回路１３から出力される量子化されたＤＣＴ係数をそのまま可変長符号化回路１５に入力する。
【００１３】
ここで、イントラ符号化の場合のＤＣ／ＡＣ予測回路１４の詳細な動作について図を用いてさらに説明する。
図１０は、マクロブロック中の８×８ブロックを拡大して示した図である。
【００１４】
図１０のマクロブロックは、８×８ブロックであるブロックＡ、Ｂ、ＣおよびＸから構成されている。これは、ＤＣ／ＡＣ予測回路１４が８×８ブロック毎に処理を行うためである。マクロブロック中の右下の８×８ブロックがＤＣ／ＡＣ予測回路１４において現在処理しているブロックＸであり、図１０のマクロブロック中の左下の８×８ブロックが現在処理中のブロックＸに対して左位置となる左隣ブロックＡであり、図１０のマクロブロック中の右上の８×８ブロックが現在処理中のブロックＸに対して上隣位置となる上隣ブロックＣであり、図１０のマクロブロック中の左上の８×８ブロックが左上のブロックＢである。
【００１５】
イントラ符号化の場合のＤＣ／ＡＣ予測では、まず、ＤＣ成分の予測方向を決定する。例えば、現在符号化している現在処理中ブロックＸの量子化されたＤＣＴ係数をＦｘ（ｉ，ｊ）（０≦ｉ≦７、０≦ｊ≦７）、この処理中ブロックＸの左隣のブロックＡの量子化されたＤＣＴ係数をＦａ（ｉ，ｊ）（０≦ｉ≦７、０≦ｊ≦７）、ブロックＸの上隣のブロックＣの量子化されたＤＣＴ係数をＦｃ（ｉ，ｊ）（０≦ｉ≦７、０≦ｊ≦７）、ブロックＸの左上のブロックＢの量子化されたＤＣＴ係数をＦｂ（ｉ，ｊ）（０≦ｉ≦７、０≦ｊ≦７）とした場合に、ブロックＢの量子化されたＤＣＴ係数のＤＣ成分Ｆｂ（０，０）と、ブロックＡの量子化されたＤＣＴ係数のＤＣ成分Ｆａ（０，０）と、ブロックＣの量子化されたＤＣＴ係数のＤＣ成分Ｆｃ（０，０）とから予測方向を決定する。
【００１６】
ＤＣ成分の予測方向を決定するには、例えば、ブロックＡのＤＣ成分の量子化ステップ幅をＱｄａ、ブロックＢのＤＣ成分の量子化ステップ幅をＱｄｂ、ブロックＣのＤＣ成分の量子化ステップ幅をＱｄｃとした場合に、
ｆａ（０，０）＝Ｆａ（０，０）×Ｑｄａ、
ｆｂ（０，０）＝Ｆｂ（０，０）×Ｑｄｂ、
ｆｃ（０，０）＝Ｆｃ（０，０）×Ｑｄｃ
の３式により、逆量子化後のＤＣ成分ｆａ（０，０）、ｆｂ（０，０）ｆｃ（０，０）を各々求める。
【００１７】
このＤＣ成分ｆａ（０，０）、ｆｂ（０，０）、ｆｃ（０，０）に、
｜ｆａ（０，０）−ｆｂ（０，０）｜＜｜ｆｂ（０，０）−ｆｃ（０，０）｜
の関係が成り立っている場合には、ブロックＣの逆量子化後のＤＣ成分ｆｃ（０，０）に基づいてＤＣ成分の予測方向を決定し、逆に、上記の関係が成り立っていない場合には、ブロックＡの逆量子化後のＤＣ成分ｆａに基づいてＤＣ成分の予測方向を決定する。
【００１８】
ブロックＣに基づいてＤＣ成分の予測方向を決定する場合には、
Ｐｘ（０，０）＝Ｆｘ（０，０）−ｆｃ（０，０）／Ｑｄｘ
とし、また、ブロックＡからＤＣ成分の予測方向を決定する場合には、
Ｐｘ（０，０）＝Ｆｘ（０，０）−ｆａ（０，０）／Ｑｄｘ
として、予測後のＤＣ成分Ｐｘ（０，０）を求める。但し、Ｑｄｘは、ブロックＸのＤＣ成分の量子化ステップ幅であり、上記の割り算は四捨五入で計算する。
【００１９】
次に、上記のＤＣ成分の予測方向を用いてＡＣ成分の予測を行う。ブロックＡの量子化パラメータをＱｐａ、ブロックＣの量子化パラメータをＱｐｃ、ブロックＸの量子化パラメータをＱｐｘとすると、ブロックＣに基づいてＤＣ成分の予測方向を決定した場合は、
Ｐｘ（ｉ，０）＝Ｆｘ（ｉ，０）−（Ｆｃ（ｉ，０）×Ｑｐｃ）／Ｑｐｘ
（ｉ＝１、・・・、７）
となり、ブロックＡに基づいてＤＣ成分の予測方向を決定した場合は、
Ｐｘ（０，ｊ）＝Ｆｘ（０，ｊ）−（Ｆａ（０，ｊ）×Ｑｐａ）／Ｑｐｘ
（ｊ＝１、・・・、７）
となる。これらを用いてＡＣ成分Ｐｘ（ｉ，０）またはＰｘ（０，ｊ）を予測する。但し，上記の割り算は四捨五入で計算するものとする。
【００２０】
上記のＡＣ成分を各ブロック毎に独自に予測した後、１マクロブロックを構成する６個のブロック中の１ブロックとして、各ブロックに対するＡＣ成分の予測を行うか否かについてを、マクロブロック単位で決定する。
【００２１】
例えば、１マクロブロックを構成する各ブロック中の任意のブロックＸに対して、そのブロックＸの上隣のブロックＣに基づく予測を行う場合は、
【００２２】
【数１】
0003662171.tif 000002
【００２３】
によりＳＢを求める。
一方、ブロックＸの左隣のブロックＡに基づく予測を行う場合は、
【００２４】
【数２】
0003662171.tif 000003
【００２５】
によりＳＢを求める。
【００２６】
１マクロブロックを構成する６個のブロックのＳＢの和であるＳＢＳが、
ＳＢＳ≧０
となる場合には１マクロブロックを構成する６個のブロック中の１ブロックとしての各ブロックに対するＡＣ成分の予測を行うが、ＳＢＳが０よりも小さい値である場合には１マクロブロック中のブロックとしてのＡＣ成分の予測を実施しない。
【００２７】
なお、ＡＣ成分の予測を行う場合にはａｃ＿ｐｒｅｄ＿ｆｌａｇ＝１とし、ＡＣ成分の予測を実施しない場合にはａｃ＿ｐｒｅｄ＿ｆｌａｇ＝０として、このａｃ＿ｐｒｅｄ＿ｆｌａｇをマクロブロック毎に付加情報として可変長符号化回路１５で符号化する。
【００２８】
ａｃ＿ｐｒｅｄ＿ｆｌａｇ＝１が付加されたマクロブロックに属するブロックＸについては、そのブロックＸが上隣のブロックＣに基づいてＡＣ成分を予測する場合は、
【００２９】
【数３】
0003662171.tif 000004
【００３０】
によりＯｘ（ｉ，ｊ）を求め、そのブロックＸが、左隣のブロックＡに基づいてＡＣ成分を予測する場合は、
【００３１】
【数４】
0003662171.tif 000005
【００３２】
によりＯｘ（ｉ，ｊ）を求める。
【００３３】
ａｃ＿ｐｒｅｄ＿ｆｌａｇ＝０が付加されたマクロブロックに属するブロックについては、
【００３４】
【数５】
0003662171.tif 000006
【００３５】
によりＯｘ（ｉ，ｊ）を求め、このＯｘ（ｉ，ｊ）をＤＣ／ＡＣ予測回路１４の出力として、可変長符号化回路１５へ出力する。
【００３６】
なお、上記予測において、現在のブロックがＶＯＰの左端のブロックである場合、現在のブロックＸに対して、左隣のブロックＡおよび左上のブロックＢが存在しないので、上記予測で用いた逆量子化後のＤＣ成分ｆａ（０，０）およびｆｂ（０，０）の値を予め定めた定数βとする。また、この場合、上記予測で用いたＡＣ成分Ｆａ（ｉｊ）、Ｆｂ（ｉｊ）、（（ｉｊ）≠（０，０））については０とする。
【００３７】
上記した定数βは、例えば、ＤＣＴ回路１２から出力されるＤＣＴ係数のうち、ＤＣ成分の値の範囲の中間値とする。すなわち、ＤＣＴ回路１２から出力されるＤＣ成分が１１ｂｉｔで０から２０４７の値を取り得る場合、定数β＝１０２４とする。
【００３８】
同様にして、上記予測において、現在のブロックＸがＶＯＰの上端に位置するブロックである場合、現在のブロックＸに対して上隣のブロックＣおよび左上のブロックＢが存在しないので、上記予測で用いる逆量子化後のＤＣ成分ｆｃ（０，０）およびｆｂ（０，０）の値を上記した定数βとし、ＡＣ成分Ｆｃ（ｉ，ｊ）、Ｆｂ（ｉ，ｊ）（（ｉ，ｊ）≠（０，０））については０とする。
【００３９】
さらに、上記予測において、現在のブロックＸの左隣のブロックＡが、現在のブロックＸとは異なるビデオパケットに属する場合、上記予測で用いた逆量子化後のＤＣ成分ｆａ（０，０）を上記の定数βとし、ＡＣ成分Ｆａ（ｉ，ｊ）（（ｉ，ｊ）≠（０，０））については０とする。
【００４０】
同様にして、上記予測において、現在のブロックＸの上隣のブロックＣが、現在のブロックＸとは異なるビデオパケットに属する場合、上記予測で用いた逆量子化後のＤＣ成分ｆｃ（０，０）を上記の定数βとし、ＡＣ成分Ｆｃ（ｉ，ｊ）（（ｉ，ｊ）≠（０，０））については０とする。
【００４１】
また、上記予測において、現在のブロックＸの左上のブロックＢが、現在のブロックＸとは異なるビデオパケットに属する場合、上記予測で用いた逆量子化後のＤＣ成分ｆｂ（０，０）を上記の定数βとし、ＡＣ成分Ｆｂ（ｉ，ｊ）（（ｉ，ｊ）≠（０，０））については０とする。
【００４２】
このように、ＤＣ／ＡＣ予測回路１４においては、異なるビデオパケットに属するブロック間では、ＤＣ成分およびＡＣ成分の係数を参照しないようにすることで、送信したビットストリームにエラーが混入した場合にも、ＤＣ／ＡＣ予測によるエラーの伝播がビデオパケット内で収まるように構成されている。
【００４３】
ＤＣ／ＡＣ予測回路１４から出力された複数のマクロブロックのＤＣＴ係数は、可変長符号化回路１５に入力する。可変長符号化回路１５では、量子化パラメータなどの付加情報とともに入力信号を可変長に符号化すると共に所定長のビデオパケットに区切りビットストリーム出力する。以上の処理をイントラ符号化処理と称する。また、全てのマクロブロックに対してイントラ符号化処理を適用したＶＯＰを、Ｉ−ＶＯＰと称する。
【００４４】
一方、量子化回路１３から出力されたＤＣＴ係数は、逆量子化回路１６で逆量子化され、さらに、逆ＤＣＴ回路１７で逆離散コサイン変換されて復号される。復号された映像信号は、加算器１８を経由してメモリ１９に入力される。メモリ１９に格納された各マクロブロックの映像信号は、符号化装置１に入力する映像信号との差分を符号化するインター符号化処理に用いられる。
【００４５】
符号化装置１でインター符号化処理を行う場合には、動き検出回路２１において、メモリ１９に格納された各マクロブロックの映像信号中から入力マクロブロックの映像信号との誤差が最も小さい映像信号の位置を検出し、その検出されたマクロブロックに対する入力マクロブロックの動きを示す動きベクトルを検出する。予測画像作成回路２０では、メモリ１９に格納された各マクロブロックの映像信号と、動き検出回路２１で検出された動きベクトルに基づいて予測画像を作成する。
【００４６】
また、動き検出回路２１で検出された動きベクトルは、動きベクトル予測回路２２でベクトル値の予測が実施され、予測値との差分が求められる。
【００４７】
ここで、動きベクトル予測回路２２の詳細な動作について図を用いて説明する。
図１１は、動きベクトルの予測方法を示す図である。また、現在符号化しているマクロブロックは、ＭＸで示されている。マクロブロックのＭＡ、ＭＣ、ＭＤは、各々現在のマクロブロックＭＸの左、上、右上のマクロブロックを示している。
【００４８】
現在のマクロブロックＭＸの動きベクトルをＭＶ＝（ＭＶｘ，ＭＶｙ）とし、マクロブロックＭＡの動きベクトルをＭＶ１＝（ＭＶ１ｘ，ＭＶ１ｙ）、マクロブロックＭＣの動きベクトルをＭＶ２＝（ＭＶ２ｘ，ＭＶ２ｙ）、マクロブロックＭＤの動きベクトルをＭＶ３＝（ＭＶ３ｘ，ＭＶ３ｙ）とすると、マクロブロックＭＸの動きベクトルの予測値ＰＶ＝（ＰＶｘ，ＰＶｙ）を、
ＰＶｘ＝Ｍｅｄｉａｎ（ＭＶ１ｘ，ＭＶ２ｘ，ＭＶ３ｘ）
ＰＶｙ＝Ｍｅｄｉａｎ（ＭＶ１ｙ，ＭＶ２ｙ，ＭＶ３ｙ）
により求めることができる。ここで、Ｍｅｄｉａｎは、入力される複数の値の中の中間値を出力する関数である。
【００４９】
なお、上記の計算において、マクロブロックＭＡ、ＭＣ、ＭＤのうち、いずれか一つのマクロブロックがＶＯＰ外にある場合は、当該マクロブロックの動きベクトルを（０，０）として計算を行う。
【００５０】
また、マクロブロックＭＡ、ＭＣ、ＭＤのうち、何れか２つのマクロブロックがＶＯＰ外にある場合は、ＶＯＰ内にある残る１個のマクロブロックの動きベクトルを予測ＰＶとする。
【００５１】
また、マクロブロックＭＡ、ＭＣ、ＭＤが全てＶＯＰ外にある場合は予測値ＰＶを（０，０）とする。
【００５２】
また、上記の計算において、マクロブロックＭＡ、ＭＣ、ＭＤのうち、何れか１個のマクロブロックが現在のマクロブロックＭＸと異なるビデオパケットに属する場合は、当該マクロブロックの動きベクトルを（０，０）として計算を行う。
【００５３】
また、マクロブロックＭＡ、ＭＣ、ＭＤのうち何れか２個のマクロブロックが現在のマクロブロックＭＸと異なるビデオパケットに属する場合は、同じビデオパケットに属する残る１個のマクロブロックの動きベクトルを予測値ＰＶとする。
【００５４】
また、マクロブロックＭＡ、ＭＣ、ＭＤが全て現在のマクロブロックＭＸと異なるビデオパケットに属する場合は、予測値ＰＶを（０，０）とする。
【００５５】
動きベクトル予測回路２２は、現在のマクロブロックの動きベクトルＭＶと上記予測値ＰＶの差である、
ＭＶ−ＰＶ＝（ＭＶｘ−ＰＶｘ、ＭＶｙ−ＰＶｙ）
を可変長符号化回路１５へ出力する。
【００５６】
予測画像作成回路２０から出力された予測画像は、減算器１１に入力し、入力マクロブロックの映像信号と予測画像の差分信号が減算器１１から出力される。その差分信号に対しては、ＤＣＴ回路１２でＤＣＴ処理が施され、量子化回路１３で量子化処理が実施される。量子化された差分信号のＤＣＴ係数は、動きベクトル予測回路２２にて予測された動きベクトルおよび量子化パラメータ等の付加情報と共に、可変長符号化回路１５で符号化される。また、量子化回路１３から出力した差分信号のＤＣＴ係数は、逆量子化回路１６で逆量子化され、さらに逆ＤＣＴ回路１７で逆ＤＣＴ処理が施されて差分信号に戻される。逆ＤＣＴ回路１７から出力した差分信号は、加算器１８で予測画像作成回路２０から出力された予測画像と加算されてメモリ１９に記憶される。
【００５７】
インター符号化には、画像の表示順で時間的に前となるＶＯＰだけから予測画像を作成する片方向予測と、時間的に前となるＶＯＰと後ろとなるＶＯＰの両方から予測画像を作成する両方向予測とがある。片方向予測を用いて符号化されるＶＯＰをＰ−ＶＯＰと称し、両方向予測を用いて符号化されるＶＯＰをＢ−ＶＯＰと称する。
【００５８】
【発明が解決しようとする課題】
上記した符号化装置１の可変長符号化回路５が、例えば、リバーシブル可変長符号を用いて符号化処理を行う場合には、復号装置２の復号回路３２では通常の順方向の可変長復号に加えて、ビデオパケットの最後から逆方向に可変長復号を行う場合がある。より具体的には、復号装置２の受信信号にリバーシブル可変長符号が用いられており、かつ、順方向の可変長復号でエラーが生じた場合には、復号回路３２は、ビデオパケットの最後から逆方向に可変長復号を行うことになる。この場合、復号装置２側では、受信したビデオパケットの全符号量を受信バッファ３１に一旦保存する必要性が生じる。
【００５９】
ところが、復号装置２中の受信バッファ３１の記憶容量は有限であり、復号装置２の設計時あるいは製造時に記憶容量は規定されてしまっていることが多い。そのため、可変長符号化回路１５から出力されるビデオパケットの長さ（符号量）には、受信バッファ３１の記憶容量を超えないように制限が設けられることがある。従って、上記のように可変長符号化回路５がリバーシブル可変長符号を用いており、受信バッファ３１の記憶容量が規定されている場合には、符号化装置１は、出力する各ビデオパケットの長さ（符号量）について、受信バッファ３１の記憶容量を超えない所定の長さ以下になるように制御を行う必要がある。
【００６０】
符号化装置１が各ビデオパケットの長さ（符号量）を制御する手段としては、例えば、複数のマクロブロックの映像信号を可変長符号化回路１５で順次符号化した後、ビデオパケットとして送出する前に符号量を判断する手段が考えられる。この手段では、ビデオパケットの長さが所定長を超えていると判断した場合、超過したマクロブロックの映像信号の分の符号量については、新しいビデオパケットに含ませるように制御することになる。
【００６１】
しかし、図１０を用いて上記したようにＤＣ／ＡＣ予測器１４は現在処理中のブロックＸと上垂直ブロックＣおよび左隣ブロックＡとの相関関係を求めており、その際に、新しいビデオパケットに現在処理中のブロックＸを含ませる場合には、上垂直ブロックＣのＤＣＴ係数と、左隣ブロックＡのＤＣＴ係数を定数１０２４と見なして現在処理中のブロックＸのＤＣＴ係数を予測する必要がある。また、インター符号化の場合も、図１１を用いて上記したようにマクロブロックＭＸを新しいビデオパケットに含ませる場合には，左隣のマクロブロックＭＡ、上隣のマクロブロックＭＣ、右上のマクロブロックＭＤが同じビデオパケットに属さないので、動きベクトル予測回路２２は予測値ＰＶを（０，０）として、予測後のベクトルを修正する必要がある。
【００６２】
このことから、ビデオパケットが異なるとマクロブロック内の各ブロックの符号量が変化してしまい、今回符号化した超過分のブロックの符号量と、新しいビデオパケットに含まれるブロックの符号量とでは異なってしまう場合があり得る。つまり、今回符号化した超過分のブロックの符号をそのまま新しいビデオパケットに含ませることはできないことになる。
【００６３】
従って、超過したマクロブロックの映像信号の符号について新しいビデオパケットに含ませようとする場合には、その符号をそのまま用いることができず、そのマクロブロックの映像信号について、再度ＤＣ／ＡＣ予測器１４で定数を用いて予測し、または、再度動きベクトル予測回路２２で動きベクトルの予測を行い、可変長符号化回路１５で符号化を実施してからビデオパケットに含ませるようにしなければならない。
【００６４】
しかしながら、ＭＰＥＧ-４規格に基づく従来の符号化装置１では、上記したように可変長符号化回路１５からビットストリーム出力されるビデオパケットに長さ制限がある場合に、ビデオパケットの符号量を制御することについて全く考慮されておらず、単純に符号量が所定量以上か否かの判断により次のビデオパケットを生成すると、超過分のマクロブロックの映像信号について予測と符号化の再処理が必要になることから符号化効率を低下させてしまうという問題がある。
【００６５】
本発明は上述した如き従来の問題を解決するためになされたものであって、ビデオパケットに長さ制限がある場合においても、符号化効率の低下を最小限に抑制できる符号化装置を提供することを目的とする。
【００６６】
【課題を解決するための手段】
上述の目的を達成するため、本発明の符号化装置は、映像信号を複数のマクロブロックに分割し、マクロブロック単位で映像信号を符号化し、符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換回路と、直交変換回路から出力される変換係数を量子化する量子化回路と、可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して現ブロックの変換係数を予測し、予測される変換係数と、現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測回路と、予測後の変換係数を可変長符号化する可変長符号化回路と、可変長符号化回路から出力される符号を蓄積する一時バッファと、一時バッファ内に蓄積されているマクロブロックの符号から構成されるビデオパケットに、現ブロックを含む現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と備え、符号量制御回路は、次マクロブロックの符号の符号量を、現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、一時バッファに蓄積されている符号の符号量と予測される符号の符号量とを加算し、加算値とビデオパケットに収容可能な符号量とを比較し、加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、蓄積されている符号を一時バッファから送出するように制御することを特徴とする。
【００７０】
【発明の実施の形態】
以下、本発明を図示した実施の形態に基づいて説明する。
実施の形態１．
図１は、本発明の実施の形態１である符号化装置５１を示すものである。尚、図１においては、図８に示した従来の符号化装置１と同じ機能の部分については同じ符号を付し、重複する説明を省略する。
【００７１】
図１の符号化装置５１が、図８に示した符号化装置１と異なる主な点は、符号化装置５１中の可変長符号化回路６５の後段にパケット符号量制御部５２を備えている点である。
【００７２】
パケット符号量制御部５２は、可変長符号化回路６５から送出された符号を一時的に蓄積する一時バッファ８１と、一時バッファに蓄積された符号の順序を入れ替えて送出するデータパーティショニングを行う情報伝送順序変更回路８３と、入力した符号にヘッダ等を付加してビデオパケットをビットストリーム出力する送信バッファと、一時バッファ８１に蓄積された符号の送出時期を制御することによりビデオパケット用の符号量を制御すると共に、送出されなかったマクロブロックの映像信号の符号については制御回路７３を介して再度ＤＣＴ係数の予測および符号化を実施させる符号量制御回路８２とから構成される。
【００７３】
また、可変長符号化回路６５は二つの出力を有しており、第一の出力は、一時バッファ８１に入力され、第二の出力は符号量制御回路８２に入力される。第一の出力は、可変長符号化回路６５で符号化されたＤＣＴ係数であり、第二の出力は、上記符号化された各ＤＣＴ係数の符号量である。
【００７４】
ここで、ビットストリーム出力されるビデオパケットについて説明する。
図２（ａ）〜（ｄ）は、例えば、図９に示したような１ＶＯＰ分のマクロブロックの映像信号の符号をビデオパケットで出力する場合のビットストリームの構成を示す図である。
【００７５】
図２（ａ）は、１ＶＯＰ分のマクロブロックの映像信号の符号をＶＰ０〜ＶＰ６の７個のビデオパケットが連続して出力される場合のビットストリームを示している。例えば、符号化装置５１から最左のビデオパケットＶＰ０、続いてビデオパケットＶＰ（１）というように順次ビデオパケットがビットストリーム出力され、最後にビデオパケットＶＰ６が出力される。この図２（ａ）のように、１ＶＯＰ分のビットストリームは、一個以上のビデオパケットにより構成される。
【００７６】
図２（ｂ）は、図２（ａ）中のビデオパケットＶＰ（０）の内部構成を示す図である。
１ＶＯＰの最初のビデオパケットＶＰ（０）では、まず、先頭にＶＯＰヘッダが付加され、次いで、１個以上のマクロブロックＭＢ（０）〜ＭＢ（Ｎ）の符号化されたデータが順次並べられ、最後にＶＯＰヘッダが付加されたことによるバイト調整のためにスタッフビットが付加される。
【００７７】
図２（ｃ）は、図２（ａ）中のビデオパケットＶＰ１の内部構成を示す図である。
ビデオパケットＶＰ（０）の次に出力されるビデオパケットＶＰ（１）では、まず、先頭に正しく復号させるために特定ビットパターンの固定長符号（同義語）で構成されたResync Markerが付加され、次いで、ビデオパケットＶＰ（１）のＩＤとなるビデオパケット（ＶＰ）ヘッダが付加されてから、１個以上のマクロブロックＭＢ（Ｎ＋１）〜ＭＢ（Ｍ）の符号化されたデータが順次出力され、最後にＶＰヘッダが付加されたことによるバイト調整のためにスタッフビットが付加される。
【００７８】
図２（ｄ）は、例えば図２（ｃ）のビデオパケットＶＰ１の内部にスタッフィングを有している場合の構成を示す図である。
構成中にスタッフィングを有するビデオパケットでは、まず、先頭に正しく復号させるためのResync Markerが付加され、次いで、ＶＰヘッダが付加されてから、１個以上のマクロブロックＭＢ（Ｌ）〜ＭＢ（Ｋ）の符号化されたデータが順次出力され、スタッフィングが出力され、再度、１個以上のマクロブロックＭＢ（Ｋ＋１）の符号化されたデータが順次出力され、最後にＶＰヘッダが付加されたことによるバイト調整のためにスタッフビットが付加される。このように、ビデオパケット中には、任意の数のスタッフィングを入れることができる。例えば、ＭＰＥＧ４  Ｖｉｄｅｏの場合には、スタッフィングはスタッフィング・マクロブロックと呼ばれ、通常のマクロブロックと同じ扱いで任意のビデオパケットに入れられる。なお、このスタッフィングは、復号装置側で廃棄されるものである。
【００７９】
図２（ｂ）〜図２（ｄ）に示したように１つのビデオパケットに入れるマクロブロックの数は任意であるが、エラー伝播を考慮した場合、各ビデオパケットの符号量がほぼ一定になるように構成するのがよいとされている。一般的にＶＯＰ内の動きの大きい位置に対応するビデオパケットの符号量は大きくなる。従って、各ビデオパケットの符号量をほぼ一定にするためには、ＶＯＰ内の動きの大きい位置では、小さい面積しか１個のビデオパケットで対応できなくなり、ＶＯＰ内の動きの小さい位置では、大きな面積でも１個のビデオパケットで対応できるようになる。
【００８０】
図３は、各ビデオパケットの符号量をほぼ一定にした場合に、各ビデオパケットがＶＯＰ内で占める面積を示す図である。
図３のＶＯＰ中では、ビデオパケットＶＰ（３）あるいはビデオパケットＶＰ（４）に対応する位置では動きが大きいため面積が小さくなっている。ところが、ビデオパケットＶＰ（０）あるいはビデオパケットＶＰ（１）に対応する位置では動きが小さいため面積が大きくなっている。このように、各ビデオパケットの符号量をほぼ一定にした場合には、ＶＯＰ内で各ビデオパケットが占める面積は一定でなくなる。
【００８１】
次に、本実施の形態１では、パケット符号量制御部５２内の一時バッファ８１から送信バッファ８４までの間にデータが並べかえられているが、その出力するデータを並べかえるデータパーティショニングについて説明する。
【００８２】
データパーティショニングは、ビデオパケット内の情報の伝送順序を変更することにより、エラーに対する耐性を向上させる技術である。エラーが混入する場合には、復号側においてビデオパケットのエラー混入後の同期が外れて、混入以降のデータについては正しく復号されなくなる。エラーは一貫性が無くビデオパケット中でランダムな位置に混入されることから、データが復号される確率は、ビデオパケット中の前側の位置にあるデータの方が後ろ側の位置にあるデータよりも高くなる。従って、重要なデータほど前側に位置させた方がエラーに対する耐性を高めることができる。
【００８３】
そこで、データパーティショニングでは、ビデオパケットに含まれる各マクロブロックのデータのうちから、特に重要なデータをビデオパケットの前側に位置させ、それ以外の情報を後ろ側に位置させるようにデータを並べかえてから出力するようにする。つまり、重要なデータが前側にくるように伝送順序を変更する。
【００８４】
また、重要なデータを前側（前半）に位置させ、それ以外のデータを後ろ側（後半）に位置させると共に、前半と後半のデータの間に特定のビット列を配置して、前半の重要データに混入するエラーの有無を判定できるようにしている。特定のビット列としては、イントラＶＯＰの場合はDC maker(19bit)であり、インターＶＯＰの場合はmotion marker(17bit)である。
【００８５】
図４は、イントラＶＯＰの場合のデータパーティショニングを示す図である。図４のイントラＶＯＰの場合、一時バッファ８１内には、図４（ａ）に示したようにｍ番目のマクロブロックＭＢ（ｍ）、ｍ＋１番目のマクロブロックＭＢ（ｍ＋１）等データがマクロブロック単位で順に蓄積される。また、各マクロブロックＭＢの内のデータ構成については、図４（ａ）に示したように、マクロブロックＭＢ（ｍ）の場合は、マクロブロックＭＢ（ｍ）の各ブロックの係数データＴ０（ｍ）、マクロブロックＭＢ（ｍ）のイントラＤＣ成分を復号するために必要な符号化モードｍｃｂｐｃ、量子化パラメータを示す量子化差分値ｄｑｕａｎｔ、各ブロックのＤＣＴ係数のＤＣ成分等の情報ＤＣ（ｍ）、ｍ番目のマクロブロックＭＢのＡＣ成分を復号するために必要となるＡＣ予測を行ったかどうかを示すＡＣ予測フラグａｃ＿ｐｒｅｄ＿ｆｌａｇ、輝度信号Ｙの各ブロック中の非零のＡＣ係数の有無を示す符号化パターンｃｂｐｙ等の制御情報Ｔ１（ｍ）となる。同様にして、マクロブロックＭＢ（ｍ＋１）のデータ構成は、係数データＴ０（ｍ＋１）、情報ＤＣ（ｍ＋１）、制御情報Ｔ１（ｍ＋１）となる。
【００８６】
一時バッファ８１内のデータを送信バッファ８４に転送する際に、情報伝送順序変更回路８３では、特に重要なデータが前半に位置するようにデータパーティショニングを実施してから送信バッファ８４に転送する。その結果、送信バッファ８４内には、図４（ｂ）に示したように、ＤＣ（ｍ）、ＤＣ（ｍ＋１）等の全ての情報ＤＣ（ｎ）が前半に配置される。次いで、DC makerが付加された後、後半の最初には、比較的重要度が高いＴ１（ｍ）、Ｔ１（ｍ＋１）等の全ての制御情報Ｔ１（ｎ）が配置され、最後にＴ０（ｍ）、Ｔ０（ｍ＋１）等の全ての係数データＴ０（ｎ）が配置される。また、ビデオパケットの先頭部にはヘッダが付加される。
【００８７】
図５は、インターＶＯＰの場合のデータパーティショニングを示す図である。図５のインターＶＯＰの場合も、図４のイントラＶＯＰの場合と同様に、一時バッファ８１内には、図５（ａ）に示したようにｍ番目のマクロブロックＭＢ（ｍ）、ｍ＋１番目のマクロブロックＭＢ（ｍ＋１）等データがマクロブロック単位で順に蓄積されるが、マクロブロック内部のデータ構成については、イントラＶＯＰの場合と異なる。各マクロブロックＭＢの内のデータ構成は、図５（ａ）に示したように、マクロブロックＭＢ（ｍ）の場合は、マクロブロックＭＢ（ｍ）の各ブロックの係数データｔ０（ｍ）、符号化マクロブロックか非符号化マクロブロックかを示すフラグｎｏｔ＿ｃｏｄｅｄ、インターＤＣ成分を復号するために必要な符号化モードｍｃｂｐｃ、動きベクトル等のｍ番目のＭＢの動きベクトルを復号するために必要な情報ＭＶ（ｍ）、輝度信号Ｙの各ブロック中の非零のＡＣ係数の有無を示す符号化パターンｃｂｐｙ、量子化パラメータを示す量子化差分値ｄｑｕａｎｔ、等のｍ番目のマクロブロックＭＢのＡＣ成分を復号するために必要な制御情報ｔ１（ｍ）となる。
【００８８】
図５のインターＶＯＰの一時バッファ８１内のデータを送信バッファ８４に転送する際も、図４のイントラＶＯＰの場合と同様に、情報伝送順序変更回路８３では、特に重要なデータが前半に位置するようにデータパーティショニングを実施してから送信バッファ８４に転送する。その結果、送信バッファ８４内には、図５（ｂ）に示したように、ＭＶ（ｍ）、ＭＶ（ｍ＋１）等の全ての情報ＭＶ（ｎ）が前半に配置される。次いで、motion markerが付加された後、後半の最初には、比較的重要度が高いｔ１（ｍ）、ｔ１（ｍ＋１）等の全ての制御情報ｔ１（ｎ）が配置され、最後にｔ０（ｍ）、ｔ０（ｍ＋１）等の全ての係数データＴ０（ｎ）が配置される。また、ビデオパケットの先頭部にはヘッダが付加される。
【００８９】
なお、上記したＴ０（ｍ）、Ｔ０（ｍ＋１）、ｔ０（ｍ）、および、ｔ０（ｍ＋１）等の係数データは、ランレングス符号化された各ブロックの係数データであり、以下のようにして求める。例えば、ＭＰＥＧ４のＩ−ＶＯＰの場合には、まず、マクロブロック中の各ブロックにおける量子化されたＤＣＴ係数のＡＣ成分をジグザグスキャン等の方法で１次元スキャンし、０の個数と非零の係数の組み合わせを符号化するランレングス符号化を行う。このランレングス符号化された各ブロックの係数データが一時バッファ８１に各マクロブロック毎に書き込まれたものが、図４および図５に示した係数データとなる。また、符号化モードｍｃｂｐｃは、マクロブロックのタイプを示すＭＴＹＰＥと、マクロブロック中の色差の各ブロック中に非零のＡＣ係数の有無を示すＣＢＰＣをまとめて符号化したものである。
【００９０】
次に、符号化装置５１の動作について説明する。
イントラ符号化を行う場合における、量子化されたＤＣＴ係数からＤＣ／ＡＣ予測回路１４で係数の予測が行われ、量子化パラメータ等の付加情報と共に可変長符号化回路６５で符号化されるところまでは、図８で示した従来の符号化装置１と同様である。
【００９１】
また、インター符号化を行う場合においても、量子化されたＤＣＴ係数が予測された動きベクトルおよび量子化パラメータ等の付加情報と共に可変長符号化回路６５で符号化されるところまでは、図８で示した従来の符号化装置１と同様である。
【００９２】
符号量制御回路８２は、可変長符号化回路６５から出力される各マクロブロックの符号量を元に、各ビデオパケットの長さが予め定められた最大のビデオパケットの符号長の値（ＭＡＸＶＰｌｅｎ）以下になるように一時バッファ８１に格納されているマクロブロックをまとめて送信バッファ８４へと転送する。なお、本実施の形態１では、その際に図２（ｂ）、図３（ｂ）に示したように、ビデオパケットの先頭にはヘッダを付加して、データパーティショニング処理で規定されたビットストリームの順に並べ替えて転送する。
【００９３】
符号量制御回路８２では、一時バッファ８１に格納されているマクロブロックを送信バッファ８４へと転送する際に、一時バッファ８１がアンダーフローを起こさないように、あるいは、図示しないＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）バッファがオーバーフローを起こさないように制御すると共に、一時バッファ８１から送出するビデオパケット用符号のマクロブロック単位の区切りを決定する。以下、符号量制御回路８２による一時バッファ８１から送出するビデオパケット用符号の区切りを決定する動作について、図を用いて詳細に説明する。
【００９４】
図６は、符号量制御回路８２におけるビデオパケット用符号の区切り決定動作のフローチャートである。
符号量制御回路８２では、まず、可変長符号化回路６５から受信する今回符号化されたマクロブロックの符号量ＭＢｂｉｔｓを、前回までにすでに符号化されているマクロブロックの符号量ＶＰｌｅｎ０に加算して符号量ＶＰｌｅｎ１を演算する（ステップＳ１）。このステップＳ１の加算結果の符号量ＶＰｌｅｎ１がビデオパケットの長さを制限する所定値ＭＡＸＶＰｌｅｎ以上であるか否かを判断する（ステップＳ２）。符号量ＶＰｌｅｎ１が所定値ＭＡＸＶＰｌｅｎ以上である場合（ステップＳ２：Ｙｅｓ）には、符号化やり直しフラグをＯＮにして（ステップＳ３）制御回路７３に通知し、今回のマクロブロックの映像信号のデータについて、やり直し処理を行う。
【００９５】
制御回路７３によって制御されるやり直し処理の動作としては、まず、一時バッファ８１に蓄積された一つ前（前回）までに符号化されたマクロブロックの符号を今回ビットストリーム出力するビデオパケット用として送信バッファに転送する（ステップＳ４）。今回符号化されて一時バッファ８１に記憶されたマクロブロックの符号については、記憶内容がクリア（ＶＰｂｉｔｓを０）されて（ステップＳ５）、その今回符号化されたマクロブロックの映像信号（ＤＣＴ係数）について、ＤＣ／ＡＣ予測回路１４における処理と可変長符号化回路６５における処理がやり直される（ステップＳ６）。転送された符号を受信した送信バッファ８４は、ｒｅｓｙｎｃマーカーやヘッダ等の情報を付加したビデオパケットをビットストリーム出力する。なお、インター符号化の場合は、ステップＳ６において、動きベクトル予測回路２２における処理と可変長符号化回路６５における処理がやり直される。
【００９６】
このようにして、符号量ＶＰｌｅｎ１が所定値ＭＡＸＶＰｌｅｎ以上（ステップＳ２：Ｙｅｓ）である場合には、前回符号化されたマクロブロックまでの符号は今回のビデオパケットに収容されるが、今回符号化されたマクロブロック以降の符号は新しいビデオパケットに収容されることになる。
【００９７】
ステップＳ２で、符号量ＶＰｌｅｎ１が所定値ＭＡＸＶＰｌｅｎ未満である場合（ステップＳ２：Ｎｏ）には、符号量制御回路８２は、次回のマクロブロックの符号量が今回のマクロブロックの符号量ＭＢｂｉｔｓと同一であると予測して、次回のマクロブロックの予測符号量ＭＢｂｉｔｓが加算された場合の一時バッファの予測符号量ＶＰｌｅｎ２を演算し、予測符号量ＶＰｌｅｎ２が所定値ＭＡＸＶＰｌｅｎ以上であるか否かを判断する（ステップＳ７）。なお、本実施の形態１では、予測符号量ＶＰｌｅｎ２について、符号量ＶＰｌｅｎ１と次回のマクロブロックの予測符号量ＭＢｂｉｔｓに加えて予測誤差許容度α（例えば、α＝２５６）を加えることにより、次回のマクロブロックの符号量の変動に対応できるようにしている。符号量ＶＰｌｅｎ２が所定値ＭＡＸＶＰｌｅｎ以上である場合（ステップＳ７：Ｙｅｓ）には、一時バッファ８１に蓄積された今回までに符号化された全てのマクロブロックの符号を今回ビットストリーム出力するビデオパケット用として送信バッファに転送する（ステップＳ８）。一時バッファ８１に蓄積された符号量ＶＰｌｅｎ２はクリアして、制御回路７３に次回のマクロブロックの映像信号について符号化処理を行うように通知する（ステップＳ９）。転送された符号を受信した送信バッファ８４は、ｒｅｓｙｎｃマーカーやヘッダ等の情報を付加したビデオパケットをビットストリーム出力する。
【００９８】
このようにして、符号量ＶＰｌｅｎ１が所定値ＭＡＸＶＰｌｅｎ未満（ステップＳ２：Ｎｏ）であり且つ符号量ＶＰｌｅｎ２が所定値ＭＡＸＶＰｌｅｎ以上（ステップＳ７：Ｙｅｓ）である場合には、今回符号化されたマクロブロックまでの符号が今回のビデオパケットに収容されるが、次回符号化されるマクロブロック以降の符号が新しいビデオパケットに収容されることになる。
【００９９】
符号量ＶＰｌｅｎ２が所定値ＭＡＸＶＰｌｅｎ以上である場合（ステップＳ７：Ｎｏ）には、次回のマクロブロックの符号量が符号量ＶＰｌｅｎ１に加算されても所定値ＭＡＸＶＰｌｅｎ以上である確率は少ないと予想されるので、一時バッファ８１に蓄積された符号量ＶＰｌｅｎ２はそのまま残して、制御回路７３に次回のマクロブロックの映像信号について符号化処理を行うように通知する（ステップＳ９）。転送された符号を受信した送信バッファ８４は、ｒｅｓｙｎｃマーカーやヘッダ等の情報を付加したビデオパケットをビットストリーム出力する。
【０１００】
このようにして、符号量ＶＰｌｅｎ１が所定値ＭＡＸＶＰｌｅｎ未満（ステップＳ２：Ｎｏ）であり且つ符号量ＶＰｌｅｎ２が所定値ＭＡＸＶＰｌｅｎ未満（ステップＳ７：Ｎｏ）である場合には、次回符号化されるマクロブロックまでの符号についても今回のビデオパケットに収容される予定となる。ここで、予定としたのは、確率的には小さいものの、次回符号化されるマクロブロックの符号量が、今回符号化されたマクロブロックの符号量よりも極端に（予測誤差許容度αを超えて）多い場合には、今回のビデオパケットに収容できなくなる場合が考えられるためである。
【０１０１】
本実施の形態１の符号量制御回路８２は、上記のように一時バッファ８１に蓄積されたビデオパケット用符号の区切りを決定するので、例えば、上記した次回のマクロブロックの映像信号が符号化されて一時バッファに加算される場合、所定値以上になってしまうことから次回のマクロブロックの映像信号について、符号量の予測と符号化をやり直さなければならない事態が発生するが、そのやりなおしの頻度を減少させることができる。
【０１０２】
ここで、上記した次回のマクロブロックについて、符号量の予測と符号化をやり直さなければならない事態が発生すると、符号化処理の効率が悪化する点について、図を用いてさらに説明する。
【０１０３】
図７は、図１中のＤＣＴ回路１２、量子化回路１３、ＤＣ／ＡＣ予測回路１４、逆量子化回路１６、逆ＤＣＴ回路１７、動きベクトル予測回路２２、可変長符号化回路６５、一時バッファ８１および符号量制御回路８２における各処理動作をステップ化して示したフローチャートである。
【０１０４】
図７（ａ）は、マクロブロックの映像信号の符号化処理をやり直さない場合のフローチャートである。図６のフローチャートでは、ステップＳ２がＮｏである場合に対応する。
【０１０５】
マクロブロックの映像信号は、ＤＣＴ処理されてＤＣＴ係数となり（ステップＳ１１）、そのＤＣＴ係数は量子化されて出力される（ステップＳ１２）。量子化されたＤＣＴ係数は、ＤＣ／ＡＣ予測処理に用いられる（ステップＳ１５）と共に、逆量子化され（ステップＳ１３）てから逆ＤＣＴ処理される（ステップＳ１４）。また、インター符号化の場合は別途、動きベクトル予測処理が行われる（ステップＳ１６）。
【０１０６】
ＤＣ／ＡＣ予測結果と、動きベクトル予測結果から可変長符号化処理が実施され（ステップＳ１７）、符号化されて一時バッファ８１に蓄積された符号量について、図６のフローチャートに示したように符号量制御処理が実施される（ステップＳ１８）。
【０１０７】
このステップＳ１８までは、マクロブロックの映像信号の符号化処理をやり直すか否か、あるいは、図６のステップＳ７に示した次回のマクロブロックの符号量を加算した判断結果に関らず同様であるが、一時バッファ８１の記憶内容の転送処理については、図６のフローチャートでステップＳ７がＹｅｓの場合には、今回符号化したマクロブロックまでの符号量を送信バッファ８４に転送する（ステップＳ１９）が、図６のフローチャートでステップＳ７がＮｏの場合には、一時バッファ８１の記憶内容を転送せず（ステップＳ１９を省略）に、次回符号化するマクロブロックの映像信号について、ＤＣＴ処理（ステップＳ１１）を実施させる。
【０１０８】
図７（ｂ）は、マクロブロックの映像信号の符号化処理をやり直す場合のフローチャートである。図６のフローチャートでは、ステップＳ２がＹｅｓである場合に対応する。
【０１０９】
上記したようにステップＳ１８までの動作は、符号化処理をやり直さない場合と同様であるが、やり直す場合には、一時バッファ８１に蓄積された符号量の内、前回符号化されたマクロブロックの符号までが送信バッファ８４に転送される（ステップＳ２１）。このステップ２１の転送処理については、符号化処理をやり直すために一つ前（前回）符号化されたマクロブロックまでのデータを転送する必要があるので、図６のフローチャートでステップＳ２がＹｅｓである場合には必ず処理が実施される。また、今回符号化されたマクロブロックの符号については、上記のように符号量の判断に用いられて符号化やり直しフラグをオンさせた後はクリアされてしまい活用されない。
【０１１０】
符号化やり直しフラグがオンされることにより、今回符号化されたマクロブロックの映像信号については、イントラ符号化の場合、ＤＣ／ＡＣ予測処理（ステップＳ２２）、可変長符号化処理（ステップＳ２３）、符号量制御処理（ステップＳ２４）が実施される。インター符号化の場合は、動きベクトル予測処理（ステップＳ２６）、可変長符号化処理（ステップＳ２３）、符号量制御処理（ステップＳ２４）が実施される。また、ステップＳ２４の符号量制御処理における図６のステップＳ７の判断において、判断結果がＹｅｓとなる場合には、一時バッファ８１に蓄積された今回符号化されたマクロブロックの符号を送信バッファ８４に転送する（ステップＳ２５）が、図６のフローチャートでステップＳ７がＮｏの場合には、一時バッファ８１の記憶内容を転送せず（ステップＳ２５を省略）に、次回符号化するマクロブロックの映像信号について、ＤＣＴ処理（ステップＳ１１）を実施させる。
【０１１１】
図７（ａ）と図７（ｂ）との上記比較から、一旦符号化したマクロブロックの映像信号を再符号化する処理を行うことは、符号化処理の効率を大幅に悪化させることが理解できる。このことから、符号化装置の符号化効率を低下させないためには、一旦符号化したマクロブロックの映像信号を再符号化する処理頻度を減らすことが重要となる。
【０１１２】
ところが、前記したように図８に示した従来の符号化装置１で、単純に符号量が所定量以上か否かの判断のみにより次のビデオパケットを生成するようにしても、再符号化処理の頻度は減らすことができず、符号化効率の低下を抑制することはできない。
【０１１３】
それに対して本実施の形態１では、次回のマクロブロックの符号量を今回のマクロブロックの符号量と同様と予想して、次回のマクロブロックの符号量を加算すると一時バッファ８１に蓄積された符号量がビデオパケットに収容可能な符号量を超えてしまう可能性の高い場合には、今回のマクロブロックまでの符号量を先に送信バッファ８４に転送するように符号量制御回路８２で制御するので、次回のマクロブロックの映像信号を符号化する際に、符号化のやり直しの頻度を減少させることができる。
【０１１４】
このように本実施の形態１では、符号量制御回路８２により、今回符号化されて一時バッファ８１に蓄積されたマクロブロックの符号量に基づいて、次回符号化されるマクロブロックの符号量を加算した場合に一時バッファ８１に蓄積される符号量を予測し、予測結果がビデオパケットに収容可能な符号量を超える場合には、次回符号化されるマクロブロックの映像信号が符号化される前に、一時バッファ８１に蓄積された符号を送信バッファに転送するようにしているので、次回のマクロブロックの映像信号が符号化された際に、ビデオパケットに収容可能な符号量を超過されてしまい、次回のマクロブロックの映像信号について、符号化をやり直ししなければならない事態の頻度を減少させることができる。従って、本実施の形態１の符号化装置５１の符号化効率の低下を抑制することができる。
【０１１５】
また、本実施の形態１の符号量制御回路８２では、マクロブロックの映像信号が符号化される毎に、次回符号化されるマクロブロックの映像信号の符号量と今回符号化されるマクロブロックの映像信号の符号量が同一であると予測して一時バッファの符号量を演算させることができるので、全てのマクロブロックの映像信号について、符号化のやり直しの頻度を減少させることができる。このため、符号化効率の低下をさらに抑制することができる。
【０１１６】
また、本実施の形態１のパケット符号量制御部５２では、一時バッファ８１から出力される符号は、情報伝送順序変更回路８３を用いてデータパーティショニングされてから送信バッファ８４に収容されて、送信バッファ８４でビデオパケットとして生成されるので、データパーティショニング用の一時バッファ８１および送信バッファ８４を利用することにより、本発明の制御のために新規に追加される一時バッファや送信バッファ等の部材を最小限に抑制できると共に、データパーティショニングにより、送信バッファ８４からビットストリーム出力されるビデオパケットのエラーに対する耐性を強化することができる。
【０１１７】
なお、上記した実施の形態１においては、ＭＰＥＧ−４規格のデータパーティションを行う場合に、一時バッファから通信バッファに転送される符号量を制御する例を説明したが、例えば、ビデオパケットを生成する際にデータパーティションを実施しない場合や、Ｈ．２６３規格の符号化装置の場合等においても、ビデオパケットに長さに制限を有している場合には、上記同様に一時バッファから送信バッファに転送する符号量を符号量制御回路を用いて制御することにより、符号化のやり直しの頻度を減少させることができる。
【０１１８】
この場合、ＤＣ／ＡＣ予測回路１４の代わりに、ＭＰＥＧ−２のようにＤＣのみを左隣のブロックのＤＣから予測するＤＣ予測を用いる等ビデオパケット内の任意のＤＣＴ係数の予測を行う場合にも適用することができる。
【０１１９】
また、ＤＣＴの代わりにウエーブレット変換等の他の直交変換を用いて、変換係数の予測をビデオパケット内で行う場合も、同様の構成で、符号化やり直しの頻度を減少させることができる。
【０１２０】
また、例えば、符号化装置に入力する映像信号の画像フォーマットが４：２：０ではない場合や、ＶＯＰが矩形ではない場合にも、本実施の形態１のように一時バッファから送信バッファに転送する符号量を符号量制御回路を用いて制御することは適用できるので、符号化のやり直しの頻度を減少させることができる。
【０１２１】
また、本実施の形態１では、次回符号化するマクロブロックの映像信号の符号量を予測する方法として、今回符号化したマクロブロックの映像信号の符号量と同一（但し予測誤差許容度αの範囲内）として予測したが、例えば、Ｉ−ＶＯＰおよびＰ−ＶＯＰについて各々を固定値として予測する方法、過去のＮ個のマクロブロックの映像信号を符号化した符号量の平均値を求めてその平均値により予測する方法、あるいは、今回のマクロブロックの映像信号の符号量に対する所定の演算結果（例えば、符号量＊β＋α：β、αは任意の値）を用いて予測する方法等を適用することもできる。
【０１２２】
また、上記した本実施の形態１中では、予測誤差許容度αを２５６としたが、この予測誤差許容度αの値は任意に変更できることは言うまでもないことである。
【０１２３】
【発明の効果】
本発明によれば、映像信号を複数のマクロブロックに分割し、マクロブロック単位で映像信号を符号化し、符号化により生成された一以上の前記マクロブロックの符号から構成される所定値以下の符号量のビデオパケットを出力する符号化装置であって、マクロブロックを構成するブロック単位で映像信号を直交変換する直交変換回路と、直交変換回路から出力される変換係数を量子化する量子化回路と、可変長符号化後の符号が現ブロックと同一のビデオパケット内に入るブロックの量子化された変換係数を参照して現ブロックの変換係数を予測し、予測される変換係数と、現ブロックの量子化された変換係数との差分である予測後の変換係数を出力する変換係数予測回路と、予測後の変換係数を可変長符号化する可変長符号化回路と、可変長符号化回路から出力される符号を蓄積する一時バッファと、一時バッファ内に蓄積されているマクロブロックの符号から構成されるビデオパケットに、現ブロックを含む現マクロブロックに続いて処理される次マクロブロックの符号を含めるか否かを制御する符号量制御回路と備え、符号量制御回路は、次マクロブロックの符号の符号量を、現マクロブロックを含む処理が終了しているマクロブロックの符号の符号量から予測、又は固定値として予測し、一時バッファに蓄積されている符号の符号量と予測される符号の符号量とを加算し、加算値とビデオパケットに収容可能な符号量とを比較し、加算値が前記ビデオパケットに収容可能な符号量以上となる場合は、蓄積されている符号を一時バッファから送出するように制御することとしたので、次回のマクロブロックの映像信号を符号化する際に、ビデオパケットに収容可能な符号量を超過することによる符号化のやり直しの頻度を減少させることができ、符号化効率の低下を抑制することができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１である符号化装置を示すものである。
【図２】  （ａ）〜（ｄ）は１ＶＯＰ分のマクロブロックの映像信号の符号をビデオパケットで出力する場合のビットストリームの構成を示す図である。
【図３】  各ビデオパケットの符号量をほぼ一定にした場合に各ビデオパケットがＶＯＰ内で占める面積を示す図である。
【図４】  イントラＶＯＰの場合のデータパーティショニングを示す図である。
【図５】  インターＶＯＰの場合のデータパーティショニングを示す図である。
【図６】  符号量制御回路８２におけるビデオパケット用符号の区切り決定動作のフローチャートである。
【図７】  （ａ）、（ｂ）は図１中の一部の回路における各処理動作をステップ化して示したフローチャートである。
【図８】  ＭＰＥＧ−４規格に基づく従来の符号化装置のブロック図である。
【図９】  図８の符号化装置に入力するマクロブロック毎の映像信号信号を示す図である。
【図１０】  マクロブロック中の８×８ブロックを拡大して示した図である。
【図１１】  動きベクトル予測を示す図である。
【符号の説明】
１、５１  符号化装置、  ２  復号装置、  １１  減算器、  １２  ＤＣＴ回路、  １３  量子化回路、  １４  ＤＣ／ＡＣ予測回路、  １５、６５  可変長符号化回路、  １６  逆量子化回路、  １７  逆ＤＣＴ回路、  １８  加算器、１９  メモリ、  ２０  予測画像作成回路、  ２１  動き検出回路、  ２２  動きベクトル予測回路、  ２３、７３  制御回路、  ３１  受信バッファ、  ３２  復号装置、  ５２  パケット符号量制御部、  ８１  一時バッファ、  ８２符号量制御回路、  ８３  情報伝送順序変更回路、  ８４  送信バッファ。
【図１】
0003662171.tif 000007
【図２】
0003662171.tif 000008
【図３】
0003662171.tif 000009
【図４】
0003662171.tif 000010
【図５】
0003662171.tif 000011
【図６】
0003662171.tif 000012
【図７】
0003662171.tif 000013
【図８】
0003662171.tif 000014
【図９】
0003662171.tif 000015
【図１０】
0003662171.tif 000016
【図１１】
0003662171.tif 000017