(57)【特許請求の範囲】
【請求項１】
受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送する伝送方法において、
フレーム毎の入力ビット量の累積値を計算し、
ビットレートから入力ビット量の理論値を計算し、
上記理論値が整数値となるフレーム数毎に、上記累積値を上記理論値に置き換える
ことを特徴とする伝送方法。
【請求項２】
画像信号をフレーム毎に圧縮符号化したビットストリームを伝送する
ことを特徴とする請求項１記載の伝送方法。
【請求項３】
受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送する伝送方法において、
フレーム毎の入力ビット量の累積値を計算し、
ビットレートから入力ビット量の理論値を計算し、
上記理論値と累積値との誤差が所定値より大となるとき、上記理論値に近い整数値で上記累積値を置き換える
ことを特徴とする伝送方法。
【請求項４】
上記理論値が整数値となるフレーム数を等分割したフレーム数毎に、周期的に上記理論値に近い整数値で上記累積値を置き換える
ことを特徴とする請求項３記載の伝送方法。
【請求項５】
画像信号をフレーム毎に圧縮符号化したビットストリームを伝送する
ことを特徴とする請求項３記載の伝送方法。
【請求項６】
受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送する伝送装置において、
フレーム毎の入力ビット量の累積値を計算する累積値計算手段と、
ビットレートから入力ビット量の理論値を計算する理論値計算手段と、
上記理論値が整数値となるフレーム数毎に、上記累積値を上記理論値に置き換える置換手段とを有する
ことを特徴とする伝送装置。
【請求項７】
画像信号をフレーム毎に圧縮符号化したビットストリームを伝送する
ことを特徴とする請求項６記載の伝送装置。
【請求項８】
受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送する伝送装置において、
フレーム毎の入力ビット量の累積値を計算する累積値計算手段と、
ビットレートから入力ビット量の理論値を計算する理論値計算手段と、
上記理論値と累積値との誤差が所定値より大となるとき、上記理論値に近い整数値で上記累積値を置き換える置換手段とを有する
ことを特徴とする伝送装置。
【請求項９】
上記理論値が整数値となるフレーム数を等分割したフレーム数毎に、周期的に上記理論値に近い整数値で上記累積値を置き換える
ことを特徴とする請求項８記載の伝送装置。
【請求項１０】
画像信号をフレーム毎に圧縮符号化したビットストリームを伝送する
ことを特徴とする請求項８記載の伝送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば圧縮符号化された画像信号等を伝送する伝送方法及び装置に関し、特に例えばいわゆるＭＰＥＧ（Moving Picture image coding Experts Group）のように、エンコーダ側において、デコーダ側の仮想的なバッファをオーバーフローもアンダーフローもさせないようにビットストリームのビット発生量に一定の制限を加えるような制御を施す符号化方式を使用する画像符号化装置等に好適なものに関する。
【０００２】
【従来の技術】
ＭＰＥＧでは、デコーダ側の仮想的なバッファ（以下、ＶＢＶとする）がオーバーフローもアンダーフローもしないように、エンコーダ側においてビットストリームのデータ量を制御することが要求されている。また、ＭＰＥＧにおいて、当該ＶＢＶのバッファ量制御のための演算としては、実数演算が定義されている。
【０００３】
ＭＰＥＧにおいて、例えばあるフレーム（フレームｎとする）がＶＢＶに入力され始めてから除去されるまでの時間を表すvbv_delay（以下、ＶＢＶディレイとする）は、ＶＢＶへの入力ビットレートが一定のときには以下の式（１）ように定義されている。
【０００４】
τ(n) = 90000 * B(n) / R                          (1)
なお、式（１）中のτ(n)はフレームｎのＶＢＶでのＶＢＶディレイを表し、ＲはＶＢＶへの入力ビットレートを、Ｂ(n)はフレームｎがＶＢＶから除去される直前の当該ＶＢＶのバッファ占有量を表している。
【０００５】
上記式（１）の演算でＶＢＶディレイを求めるためには、上記バッファ占有量Ｂ(n)を正確に求める必要がある。
【０００６】
ＭＰＥＧにおいては上述のようにＶＢＶに関する演算を実数で行うことが規定されているため、例えば１フレーム期間にＶＢＶに入力されるビット量を入力ビットレートＲに従って求めるような場合、当該ビット量は実数値として得られ、またバッファ占有量Ｂ(n)も実数値として求められる。但し、実際の演算の過程では、実数演算の演算精度を超える部分については切り捨てることが行われる。
【０００７】
しかし、上述したように実数演算の演算精度を超える部分を切り捨てた場合、徐々に誤差が蓄積していくことになり、その結果として実数演算による値に対して実際のバッファ占有量Ｂ(n)が次第に小さくなるようなことが発生する。このように誤差が蓄積し、その誤差量があるレベルに達すると、入力ビットレートＲに対してＶＢＶディレイが正しく求まらなくなる。
【０００８】
ところで、ＭＰＥＧの規格において、上記ＶＢＶディレイは、以下の式（２）のように再帰的にも定義されている。
【０００９】
R(n) = d(n) / (τ(n) - τ(n+1) + t(n+1) - t(n))        (2)
なお、式（２）中のτ(n)はフレームｎのＶＢＶでのＶＢＶディレイを表し、Ｒ(n)はフレームｎがＶＢＶに入力される入力ビットレートを、ｔ(n)はフレームｎがＶＢＶから除去される時間を、ｄ(n)はフレームｎにおける発生ビット量を表している。
【００１０】
ここで、上記式（２）をフレーム０からフレームｎ−１まで変化させたものを加えていくと、式中のτとｔの項が順に消えて、式（３）が求まる。
【００１１】
【数１】
0004069524.tif 000002
【００１２】
また、Ｒ(n)が例えば一定の値Ｒである場合、この式（３）から式（４）のように誤差の蓄積しないＶＢＶディレイは求まるが、図６に示すように、発生ビット量の和（Σd(n-1)）をとる必要がある。なお、図６において、図中のｔ(n)はフレームｎがＶＢＶから除去される時間を、ｄ(n)はフレームｎにおける発生ビット量を表し、図中の実線ＴＢＮのように総ビット数は増加する。
【００１３】
τ(n) = τ(0) + t(n) - t(0) - Σd(n-1) / R             (4)
図７には、上記発生ビット量の和を利用して、誤差の蓄積しないＶＢＶディレイ（vbv_delay）を求め、当該ＶＢＶディレイの値を出力ビットストリームのヘッダにつけることのできる、一般的な画像圧縮符号化装置の構成例を示す。
【００１４】
以下に、図７の構成の全体の動作の流れを説明する。
【００１５】
この図７において、端子１００にはフレーム毎のビデオデータが入力され、端子１０２には、外部で設定されたビットレートが入力される。
【００１６】
ＭＰＥＧエンコーダ１０３は、一般的なＭＰＥＧビデオエンコーダであり、端子１００から供給されたビデオデータをフレーム毎に圧縮符号化し、フレーム毎の発生情報量を出力すると共に、ＶＢＶディレイ計算部１０４からのＶＢＶディレイを、次のフレームのビットストリームのヘッダに挿入して出力する。このビットストリームが端子１０１から出力される。
【００１７】
ビットカウンタ１０５は、ＭＰＥＧエンコーダ１０３から出力されたフレーム毎の発生情報量を受け取り、当該フレーム毎の発生情報量をカウントすることでその総和を求める。すなわち、当該ビットカウンタ１０５は、ＭＰＥＧエンコーダ１０３からの発生情報量が更新（次のフレームの発生情報量が入力）されたことを認識すると、当該フレームの発生情報量を取り込みカウントアップすることで総和に加える。
【００１８】
ＶＢＶディレイ計算部１０４は、ビットカウンタ１０５から出力された発生情報量の総和（カウント値）を受け取り、以下の式（５）に従ってＶＢＶディレイの値を計算して出力する。
【００１９】
VDR = IVD +EFN * FI - TBN / BR
VD  = 90000 * VDR                                 (5)
なお、式（５）中のＦＩ（frame_interval）は１フレームの間隔を表し、単位は秒である。また、式（５）中のＥＦＮ（encoded_frame_number）はエンコードが終了したフレーム数を表し、ＴＢＮ（total_bit_number）はビットカウンタ１０５から入力される発生情報量の総和を、ＩＶＤ（initial_vbv_delay）は秒単位で表されたＶＢＶディレイの初期値、ＢＲ（bitrate）は外部から設定されたビットレートを、ＶＤＲは実際の演算により得られるＶＢＶディレイの値を、ＶＤはＶＢＶディレイ計算部１０４から出力されるＶＢＶディレイの値を表している。
【００２０】
この式（５）より、ＶＢＶディレイ計算部１０４がＭＰＥＧエンコーダ１０３に出力するＶＢＶディレイ（ＶＤ）は、秒単位のＶＤＲに９００００を掛けた値となる。
【００２１】
【発明が解決しようとする課題】
上述の図７に示した従来の画像圧縮符号化装置では、ビットカウンタ１０５が保持する発生情報量の総和（total_bit_number）の最大値までしかＶＢＶディレイを求めることができない。
【００２２】
一方で、十分なエンコード時間を保証するためには、上記発生情報量をカウントするための巨大なレジスタをビットカウンタ１０５内に用意することとなりコストがかかる上に、レジスタの容量以上に長時間のエンコードを行うことができない。
【００２３】
そこで、本発明はこのような状況に鑑みてなされたものであり、例えば、コストアップやエンコード時間の制限無しに、ビットレートに沿ったＶＢＶディレイ（vbv_delay）を求めることが可能な、伝送方法及び装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明の伝送方法及び装置は、受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送するものであり、フレーム毎の入力ビット量の累積値を計算し、ビットレートから入力ビット量の理論値を計算し、理論値が整数値となるフレーム数毎に、累積値を理論値に置き換えることにより、上述した課題を解決する。
【００２５】
また、本発明の伝送方法及び装置は、受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送するものであり、フレーム毎の入力ビット量の累積値を計算し、ビットレートから入力ビット量の理論値を計算し、理論値と累積値との誤差が所定値より大となるとき、理論値に近い整数値で累積値を置き換えることにより、上述した課題を解決する。
【００２６】
【発明の実施の形態】
本発明の好ましい実施の形態について、図面を参照しながら説明する。
【００２７】
図１には、本発明の伝送方法及び装置が適用される一実施の形態としての画像圧縮符号化装置の概略構成を示すが、この図１の構成の具体的な説明に先立ち、図２〜図４の各図を用いて、コストアップやエンコード時間の制限無しにビットレートに沿ったＶＢＶディレイ（vbv_delay）を求めることを可能とする、本発明の基本的な考え方を説明する。
【００２８】
例えば、ビットレートを１Ｍｂｐｓ、フレームレートを３００００／１００１（≒２９．９７）Ｈｚとしたときの１フレーム期間に、ＶＢＶに入力されるビット量は、式（６）のような値になる。
【００２９】
1000000 / (30000 / 1001) = 100100 / 3 = 33366.6666666...        (6)
これに従って毎フレームの入力を行えば入力ビット量の総和は、図２中実線で示すラインＩＩＬ（ideal input line）に示すように、理想的なラインに沿うことになる。
【００３０】
一方、式（６）により求められるビット量（33366.6666666...）に対して、例えば実数値の小数点以下を切り捨てて整数値とし、１フレーム毎に３３３６６ビットの入力とすると、フレーム毎の入力ビット量の総和は、図２中破線で示すラインＥＡＬ（error accumulate line）に示すように、徐々に誤差が蓄積していくことになる。
【００３１】
ここで、図２に示すように、例えば３フレーム毎に１００１００ビットの入力と考えれば、誤差は蓄積しないことがわかる。
【００３２】
そこで、本発明の第１の実施の形態では、３フレーム毎に実際に入力したビット量を正しいビット量に置き換えること、具体的には３フレーム毎に正しい入力ビット量と実際に入力したビット量の差を求め、当該差の値を入力ビット量に加えることで、誤差を打ち消すようにする。
【００３３】
すなわちこの場合、３フレーム毎の正しい入力ビット量である１００１００ビットと、１フレーム毎に小数点以下を切り捨てて３フレーム分としたときのビット量（３３３６６＊３＝１０００９８）との差は、式（７）のように２ビットとなる。
【００３４】
100100 - 33366 * 3 = 2             (7)
したがって、当該第１の実施の形態では、上記１フレーム毎に小数点以下を切り捨てて３フレーム分としたときのビット量に上記差分の値２を加えたビット量（３３３６６＋２）を入力ビット量とする。図２においては、図中の実線で示すラインＡＩＬ3（actual input line）が、当該第１の実施の形態の場合の入力ビット量を表している。
【００３５】
次に、本発明の第２の実施の形態として、より一般的に考えると、ＭＰＥＧでは４００ｂｐｓがビットレートの設定単位（外部から設定されるビットレート）なので、当該ビットレートに応じた１フレーム毎の入力ビット量は、実数値として以下の式（８）のようになる。
【００３６】
(BR/400) * 400 / (30000 / 1001) = (BR/400) * 1001 / 75          (8)
なお、式（８）中のＢＲは外部から設定されるビットレートを表している。
【００３７】
この式（８）は、７５フレームでの入力ビット量の合計が、（ＢＲ／４００）＊１００１ビットであることを意味している。以下、このビット量をＩＢＲ75F（input_bits_real_75frames）と表すことにする。ここで、７５という数字は（３００００／１００１≒２９．９７）Ｈｚに対応するものであり、フレームレートに応じて定まる。なお、例えばフレームレートが２５Ｈｚや３０Ｈｚであれば、式（９）、式（１０）のようにそれぞれ３フレーム、１フレームとなる。
【００３８】
(BR/400) * 400 / 30 = (BR/400) * 40 / 3       (9)
(BR/400) * 400 / 25 = (BR/400) * 16 / 1       (10)
これら式（９），式（１０）中のＢＲは外部から設定されるビットレートを表している。
【００３９】
図３には、フレームレートが（３００００／１００１≒２９．９７）Ｈｚの場合において、７５フレーム毎の入力ビット量を図２と同様に表している。この図３においては、図中の実線で示すラインＡＩＬ75が、当該第２の実施の形態の場合の入力ビット量を表している。
【００４０】
当該第２の実施の形態では、７５フレーム毎に実際に入力したビット量を正しいビット量に置き換えること、すなわち、７５フレーム毎に正しい入力ビット量と実際に入力したビット量の差を求め、当該差の値を入力ビット量に加えることで誤差を打ち消すことになるが、７５フレーム期間中に蓄積される誤差は以下の式（１１）にて求められる。
【００４１】
DB = IBR75F - IBI * 75            (11)
なお、式（１１）中のＩＢＩ（input_bits_int）は（ＢＲ／４００）＊１００１を７５で割って四捨五入した整数値を表し、ＤＢ（diff_bits）は７５フレーム期間中に蓄積される誤差を表している。
【００４２】
したがって、当該第２の実施の形態においては、７５フレーム毎に、(ＩＢＩ＋ＤＢ）を入力ビット量とすることで、誤差を打ち消すようにしている。
【００４３】
ただし、この第２の実施の形態の場合、誤差は蓄積しないものの、７５フレーム目では正しいバッファ占有量Ｂ(n)からかなり乖離しており、したがってビットレートによってはＶＢＶディレイに誤差が出ることがある。
【００４４】
例えば、ビットレートが１Ｍｂｐｓの場合、７５フレーム期間でのＩＢＲ75Fは、式（１２）のようになる。
【００４５】
(1000000/400) * 1001 = 2502500 bit                (12)
しかし、実際に１フレーム毎のＶＢＶディレイの演算に用いられる１フレーム期間の入力ビット量（ＩＢＩ）の７５フレーム分の和を取ると、式（１３），式（１４），式（１５）のように、７５フレーム期間中に蓄積される誤差（ＤＢ）には２５ビットのずれがでる。
【００４６】
IBI = 33367 ≒  (1000000/400) * 1001 / 75        (13)
IBI * 75 = 2502525 bit                           (14)
DB = 2502525 - 2502500 = 25 bit                  (15)
これをＶＢＶディレイを求める前記式（１）に当てはめると、式（１６）のようになる。
【００４７】
90000 * B(n) / BR = 90000 * 25 / 1000000 = 2.25        (16)
この式（１６）から２５ビットのバッファ占有量Ｂ(n)のずれが、ＶＢＶディレイの値で２以上のずれを引き起こすことがわかる。
【００４８】
このようなことから、本発明では第３の実施の形態として、７５フレーム期間での誤差の蓄積をできるだけ減らすために、図２、図３と同様に表す図４に示すように、１５フレーム毎にある程度誤差を解消することを行う。この図４においては、図中の実線で示すラインＡＩＬ15が、当該第３の実施の形態の場合の入力ビット量を表している。
【００４９】
ここで、ＩＢＲ75Fを５で割って四捨五入したものとＩＢＩの１５フレーム分の和との差分は、式（１７）のように表すことができる。
【００５０】
SDB = IBR75F / 5 - IBI * 15                (17)
なお、式（１７）中のＳＤＢ（sub_diff_bits）は上記差分を表している。
【００５１】
また、１５フレーム毎に入力ビット量（ＩＢＩ）に上記差分（ＳＤＢ）を加える（ＩＢＩ＋ＳＤＢ）と、ＤＢ（diff_bits）は、式（１８）のようになる。
【００５２】
DB = IBR75F - IBI * 75 + SDB * 5             (18)
ここで、前述の例と同様にＤＢ（diff_bits）のビット量を求めると、式（１９），式（２０）のようになる。
【００５３】
SDB = 2502500 / 5 - 33367 * 15 = -5                (19)
DB  = 2502500 - 2502525 + (-5) * 5 = 0             (20)
この式（２０）からＤＢ（diff_bits）は０なので７５フレーム毎のずれはない。また、ＳＤＢがバッファ占有量Ｂ(n)の最大のずれとなる。このずれがＶＢＶに与える影響は、式（２１）のようになる。
【００５４】
90000 * B(n) / BR = 90000 * 5 / 1000000 = 0.45          (21)
この式（２１）から、ＶＢＶにずれは現れなくなる。
【００５５】
ところで、バッファ占有量Ｂ(n)のずれが、ＶＢＶディレイに与える影響は、ビットレートが小さくなるほど大きくなる。
【００５６】
ここで、上記ＶＢＶディレイが１以上ずれることのない最小のビットレートを求めてみる。
【００５７】
ＩＢＩと１フレーム期間中の入力ビット量の実数値との差は、最大で０．５なので、１５フレーム期間でのずれであるＳＤＢは最大で７．５≒８となる。
【００５８】
この時、ＶＢＶディレイが１ずれるビットレートを求めると式（２２），式（２３）のようになり、少なくとも０．７２Ｍｂｐｓ以上であればＶＢＶディレイがずれることはない。
【００５９】
90000 * 8 / BR = 1                     (22)
BR = 90000 * 8 = 720000                (23)
さらに低ビットレートでもＶＢＶディレイがずれないようにするには誤差を打ち消す頻度を１５フレームから例えば５フレーム若しくは４フレームに変更すればよい。
【００６０】
以上のように、本発明の実施の形態によれば、ＶＢＶのバッファ占有量Ｂ(n)を１フレーム毎に更新することで、前記式（１）からビットレートに沿ったＶＢＶディレイを求めることができる。また、発生情報量の総和を必要としないのでエンコード期間は無制限である。
【００６１】
図１の画像圧縮符号化装置は、上述した実施の形態を適用することで、外部から設定されるビットレートに沿ったＶＢＶディレイを求めることができ、その当該ＶＢＶディレイの情報をビットストリームに付加することが可能となっている。
【００６２】
以下に、図１の構成の全体の動作の流れを説明する。
【００６３】
この図１において、端子１０にはフレーム毎のビデオデータが入力され、端子１２には、外部で設定されたビットレートが入力される。
【００６４】
ＭＰＥＧエンコーダ１３は、一般的なＭＰＥＧビデオエンコーダであり、端子１０から供給されたビデオデータをフレーム毎に圧縮符号化し、フレーム毎の符号量を表す発生情報量を出力すると共に、ＶＢＶディレイ計算部１４からのＶＢＶディレイを、次のフレームのビットストリームのヘッダに挿入して出力する。このビットストリームが端子１１から出力される。
【００６５】
Ｂ(n)カウンタ１５は、ＶＢＶのバッファ占有量Ｂ(n)を表すカウント値を保持する。なお、バッファ占有量Ｂ(n)の初期値は、ＶＢＶのバッファサイズ＊０．７５とする。このＢ(n)カウンタ１５は、ＭＰＥＧエンコーダ１３から出力されたフレーム毎の発生情報量が更新（次のフレームの発生情報量が入力）されると、当該発生情報量を取り込み、上記保持しているバッファ占有量Ｂ(n)から引く（カウントダウンする）。また、Ｂ(n)カウンタ１５は、後述する入力ビット量発生部１６からの発生ビット量を取り込んで、上記バッファ占有量Ｂ(n)に加える（カウントアップする）。
【００６６】
上述したようなカウントアップ或いはカウントダウンにより得られたバッファ占有量Ｂ(n)は、ＶＢＶディレイ計算部１４に出力される。
【００６７】
なお、図５には、当該Ｂ(n)カウンタ１５におけるバッファ占有量Ｂ(n)の変化の一例を示している。
【００６８】
ＶＢＶディレイ計算部１４は、Ｂ(n)カウンタ１５から出力されたバッファ占有量Ｂ(n)を受け取り、ＭＰＥＧの規格に沿って以下の式（２４）に従って演算を行いＶＢＶディレイの値を計算して出力する。なお、最初のフレームの時はＢ(n)カウンタ１５から出力された初期値のバッファ占有量Ｂ(n)から求めたＶＢＶディレイを出力する。
【００６９】
VD = 90000 * B(n) / BR                  (24)
なお、式（２４）中のＶＤはＶＢＶディレイを表している。また式中のＢＲは外部設定されたビット／秒を単位とするビットレートであり、４００ｂｐｓで割り切れる数である。
【００７０】
入力ビット量発生部１６は、ＭＰＥＧエンコーダ１３からの発生情報量と端子１２からの外部設定されたビットレートとを用いて、上記Ｂ(n)カウンタ１５に送る入力ビット量を計算する。
【００７１】
以下、当該入力ビット量発生部１６の詳細について説明するが、先ず、動作説明に使用する変数を定義する。
【００７２】
変数ＥＦＣ（encoded_frame_counter）はエンコードされたフレーム数を表す。この変数ＥＦＣはエンコーダからの発生情報量が更新されるとインクリメントされる。
【００７３】
変数ＲＣ（reset_count）は、Ｂ(n)カウンタ１５におけるカウントの誤差の蓄積を打ち消す周期をフレーム数で表したものであり、フレームレートによって以下の値を取る。
【００７４】
フレームレートが (30000/1001)Ｈｚの時は７５、
フレームレートが３０Ｈｚの時は３、
フレームレートが２５Ｈｚの時は１
変数ＢＢ（base_bit）はリセットカウント（reset_count）のフレーム期間にＶＢＶに入力する４００ｂｐｓ当たりのビット量を表す。フレームレートによって以下の値を取る。
【００７５】
フレームレートが (30000/1001)Ｈｚの時は１００１、
フレームレートが３０Ｈｚの時は４０、
フレームレートが２５Ｈｚの時は１６
変数ＩＢＩ（input_bits_int）は１フレーム期間にＶＢＶに入力されるビット量を四捨五入して整数値で表したものであり、以下の式（２５）で表される。
【００７６】
IBI = (int)((int)(BR/400) * BB / RC)                   (25)
なお、式(25)中のｉｎｔは整数であることを表し、ＲＣはリセットカウント（reset_count）を、ＢＲは外部設定されるビットレートを表している。
【００７７】
変数ＤＢ（diff_bits）は、リセットカウントのフレーム期間に使用するＶＢＶへの入力ビット量の誤差を表し、式（２６）で表される。
【００７８】
DB = (int)(BR/400) * BB - IBI * RC + SDB * 5            (26)
変数ＳＤＢ（sub_diff_bits）は、フレームレートが（３００００／１００１）Ｈｚの時に、５フレーム期間に生じるＶＢＶへの入力ビット量の誤差を表し、フレームレートにより以下のようになる。
【００７９】
フレームレートが３０Ｈｚや２５Ｈｚのときは０、フレームレートが(30000/1001)Ｈｚの時は式（２７）で表される。
【００８０】
SDB = (int)(BR/400) * BB / 5 - IBI * 15              (27)
上述したような各変数を用いて、上記入力ビット量発生部１６における動作を説明する。
【００８１】
当該入力ビット量発生部１６は、ＭＰＥＧエンコーダ１３からの発生情報量が更新（次のフレームの発生情報量が入力）されると、上記変数ＥＦＣがインクリメントされ、出力である入力ビット量が変化する。通常、入力ビット量には、変数ＩＢＩが出力されるが、変数ＥＦＣが変数ＲＣの倍数−１になったときにはＩＢＩ＋ＤＦの値が出力される。また、フレームレートが（３００００／１００１≒２９．９７）Ｈｚの時に、変数ＥＦＣが１５の倍数−１になったときには、ＩＢＩ＋ＤＢの値が出力される。
【００８２】
このような入力ビット量発生部１６における動作を、Ｃ言語的に表すと、以下のようになる。なお、以下のＣ言語的な表現において、generated_bits_numberは発生情報量を、input_bitsは入力ビット量を、frame_rateはフレームレートを表し、また、encoded_frame_counterは上記変数ＥＦＣを、reset_countは上記変数ＲＣを、base_bitは上記変数ＢＢを、input_bits_intは上記変数ＩＢＩを、diff_bitsは上記変数ＤＢを、sub_diff_bitsは上記変数ＳＤＢをそれぞれ表す。
【００８３】
0004069524.tif 000003
【００８４】
【発明の効果】
以上の説明で明らかなように、本発明においては、受信装置側の仮想的なバッファの占有量により、発生符号量を制御して伝送する際に、フレーム毎の入力ビット量の累積値と、ビットレートから入力ビット量の理論値を計算し、理論値が整数値となるフレーム数毎に累積値を理論値に置き換えることにより、例えば、コストアップやエンコード時間の制限無しに、ビットレートに沿ったバッファ遅延（vbv_delay）を求めることが可能である。
【００８５】
また、本発明においては、フレーム毎の入力ビット量の累積値とビットレートから入力ビット量の理論値を計算し、理論値と累積値との誤差が所定値より大となるとき、理論値に近い整数値で累積値を置き換えることにより、例えば、コストアップやエンコード時間の制限無しに、ビットレートに沿ったバッファ遅延（vbv_delay）を求めることが可能である。
【図面の簡単な説明】
【図１】本発明の伝送方法及び装置が適用される一実施の形態の画像圧縮符号化装置の概略構成を示すブロック回路図である。
【図２】第１の実施の形態におけるＶＢＶディレイの演算手法の説明に用いる図である。
【図３】第２の実施の形態におけるＶＢＶディレイの演算手法の説明に用いる図である。
【図４】第３の実施の形態におけるＶＢＶディレイの演算手法の説明に用いる図である。
【図５】本実施の形態の画像圧縮符号化装置のＢ(n)カウンタにおけるバッファ占有量Ｂ(n)の変化の一例を示す図である。
【図６】発生ビット量の和の説明に用いる図である。
【図７】従来の画像圧縮符号化装置の概略構成を示すブロック回路図である。
【符号の説明】
１３  ＭＰＥＧエンコーダ、  １４  ＶＢＶディレイ計算部、  １５  Ｂ(n)カウンタ、  １６  入力ビット量発生部
【図１】
0004069524.tif 000004
【図２】
0004069524.tif 000005
【図３】
0004069524.tif 000006
【図４】
0004069524.tif 000007
【図５】
0004069524.tif 000008
【図６】
0004069524.tif 000009
【図７】
0004069524.tif 000010