JP3669281B2 - 符号化装置および符号化方法 - Google Patents
符号化装置および符号化方法 Download PDFInfo
- Publication number
- JP3669281B2 JP3669281B2 JP2001076059A JP2001076059A JP3669281B2 JP 3669281 B2 JP3669281 B2 JP 3669281B2 JP 2001076059 A JP2001076059 A JP 2001076059A JP 2001076059 A JP2001076059 A JP 2001076059A JP 3669281 B2 JP3669281 B2 JP 3669281B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- output
- encoding
- macroblock
- code amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
この発明は、リアルタイムで映像信号を符号化する、例えば携帯電話やTV電話システム等に関わる符号化装置および符号化方法に関するものである。
【0002】
【従来の技術】
図15は、例えば「MPEG−4のすべて」(工業調査会)p.39〜p.40に示された従来の符号化装置のブロック図であり、図16は、この従来の符号化装置の入力信号を示した説明図、図17はビットストリームの構成を示した説明図、図18はビデオパケットの画面(表示された状態)上の位置(配置)を示した説明図である。
【0003】
図15において、1は外部から入力される外部入力信号(図中の例では、輝度信号、色差信号)を第一の入力とする減算器であり、減算器1の出力はDCT(離散コサイン変換。Discrete Cosine Transform)手段2、量子化器3を通して、直流(DC)成分、交流(AC)成分の量子化値を予測するためのDC/AC予測器4と逆量子化器6に入力される。DC/AC予測器4の出力は可変長符号化手段5の第一の入力に与えられ、可変長符号化手段5はビットストリームを出力する。
【0004】
一方、量子化器3の出力が入力される逆量子化器6の出力は、逆DCT手段7を通して、加算器8の第一の入力に与えられる。加算器8の出力はメモリ9に与えられ、メモリ9の出力は予測画像作成手段10の第一の入力と動き検出手段11の第一の入力に与えられる。
【0005】
動き検出手段11の第二の入力には外部入力信号が与えられ、動き検出手段11の出力は予測画像作成手段10の第二の入力と動きベクトル予測器12に与えられる。
【0006】
動きベクトル予測器12の出力は可変長符号化手段5の第二の入力に与えられる。また、予測画像作成手段10の出力は減算器1の第二の入力と加算器8の第二の入力に与えられる。
【0007】
次に動作について説明する。まず、映像信号は図16に示すように基本処理単位であるマクロブロックに分割され、外部入力信号として入力される(ここにおける外部入力信号は基本的にマクロブロックとして入力されるのであり、直接にマクロブロックが入力されても、前段にマクロブロック生成のための手段が備えられてマクロブロックへの変換がなされるように構成されていてもよい)。
【0008】
入力される映像信号が4:2:0の場合、輝度信号(Y)の16画素×16ラインが、2つの色差信号(Cb、Cr)の8画素×8ラインと画面上で同じ大きさとなる。従って、8画素×8ラインのブロックが6つ(輝度信号に対するブロックが4、色差信号に対するブロックが2の合わせて6のブロック)で、1つのマクロブロックが構成される。
【0009】
なお、ここでは、外部入力として入力されるVideo Object Plane(VOP。単位画像。)は矩形形状で、フレームと同一であることを前提とする。
【0010】
各ブロックは離散コサイン変換(DCT)を施してから量子化手段3において量子化する。量子化されたDCT係数はDC/AC予測器4においてDC、AC各成分の係数の予測を行った後、量子化パラメータなどの付加情報とともに可変長符号化する。
【0011】
これがイントラ符号化(フレーム内符号化と称する場合もある)である。すべてのマクロブロックに対してイントラ符号化を適用するVOPをI−VOP(Intra−VOP)と呼ぶ。
【0012】
一方、量子化されたDCT係数は、逆量子化手段6において逆量子化、逆DCT手段7において逆DCTを行って復号され、復号画像はメモリ9に記憶される。このメモリ9に記憶された復号画像はインター符号化(フレーム間符号化と称する場合もある)を行うときに使用される。
【0013】
インター符号化の場合は、動き検出手段11において、外部入力信号として入力されたマクロブロックの動きを示す動きベクトルを検出する。この動きベクトルとは、メモリ9に記憶された復号画像の中で、入力されたマクロブロックとの誤差が最も小さくなるような位置を示すものである。
【0014】
予測画像作成手段10は動き検出手段11において検出された動きベクトルに基づいて、予測画像を作成する。
【0015】
続いて、入力されたマクロブロックと予測画像作成手段10において作成された予測画像との差分信号を求め、その差分信号に対してDCT手段2においてDCTを施し、量子化手段3において量子化を行う。
【0016】
量子化されたDCT係数は、予測符号化された動きベクトルおよび量子化パラメータなどの付加情報とともに可変長符号化される。また、量子化されたDCT係数は、逆量子化手段6において逆量子化、逆DCT手段7において逆DCTを行った後、加算器8によって予測画像と加算されて、メモリ9に記憶される。
【0017】
インター符号化には、画像の表示順で時間的に前にあるVOPだけから予測する片方向予測と、時間的に前のVOPと後ろのVOPの両方から予測する両方向予測とがある。片方向予測で符号化するVOPをP−VOP(Predictive VOP)と呼び、両方向予測で符号化されたVOPをB−VOP(Bidirectionally Predictive VOP)と呼ぶ。
【0018】
次に、図17を参照しながら可変長符号化手段5から出力されるビットストリームの構成について説明する。1VOPのビットストリームは図17(a)のように、一つ以上のビデオパケットから構成される。
【0019】
ここで、1つのビデオパケットは1つ以上のマクロブロックの符号化データから成り立っており、VOPの最初のビデオパケットについては、先頭にVOPヘッダが付され、最後にはバイトアラインのためのスタッフビットが付される(図17(b))。
【0020】
2つ目以降のビデオパケットの場合は、先頭にビデオパケットの先頭を検出するためのResync Markerとビデオパケットヘッダが付され、最後にはスタッフビットが付される(図17(c))。
【0021】
ここにおけるスタッフビットとは、ビデオパケットの最後につけるバイトアラインの調整のために、1〜8ビット単位でビデオパケットの終端(切れ目)まで付加されるものであり、以下に述べるスタッフィングとその意味が区別される。
【0022】
また、図17(d)のようにビデオパケットの中に任意の数のスタッフィングを入れることもできる。例えば、MPEG4 Videoの場合、このスタッフィングはスタッフィング・マクロブロックと呼ばれ、マクロブロックと同じ扱いで任意のビデオパケットにいれることができる。このスタッフィングは復号装置側において、廃棄される(実質利用されない)。
【0023】
ここにおけるスタッフィングとは、符号量を増加させるための9ビットや10ビットというようなワードとして用いられるものであり、バイトアラインメント(例えば、ビデオパケットの終端を調整すること)とは無関係に用いられ、マクロブロックの間に挿入されて用いられるものであり、上述のスタッフビットとその意味が区別される。
【0024】
1つのビデオパケットに入れることのできるマクロブロックの数は任意であるが、エラー伝播を考慮した場合、一般に各ビデオパケットの符号量がほぼ一定になるように構成するのがよいとされている。このようにビデオパケットの符号量がほぼ一定とされる場合、各ビデオパケットの1VOP内において占める面積は図18のように一定でなくなる。
【0025】
次に、図19を参照しながら、DC/AC予測器4の動作の詳細を説明する(ここでは、マクロブロックのY成分について説明する)。
上述したように、DC/AC予測器4は、イントラ符号化の場合に量子化器3から出力される量子化されたDCT係数のDC成分、AC成分の係数の予測を行う。インター符号化の場合は、DC成分、AC成分の予測を行わず、量子化器3から出力される量子化されたDCT係数をそのまま可変長符号化手段5へ出力する。なお、この場合、輝度信号Yと色差信号Cとについて別々にDC/AC予測を行う。
【0026】
以下ではイントラ符号化の場合のDC成分、AC成分の予測について説明する。
現在符号化しているブロックの量子化されたDCT係数をFx(i,j)(0≦i≦7、0≦j≦7)、このブロックの左隣のブロックの量子化されたDCT係数をFa(i,j)(0≦i≦7、0≦j≦7)、上隣のブロックの量子化されたDCT係数をFc(i,j)(0≦i≦7、0≦j≦7)、左上のブロックの量子化されたDCT係数をFb(i,j)(0≦i≦7、0≦j≦7)とすると、まず、左上のブロックの量子化されたDCT係数のDC成分Fb(0,0)と左隣のブロックの量子化されたDCT係数のDC成分Fa(0,0)と上隣のブロックの量子化されたDCT係数のDC成分Fc(0,0)とから、予測方向を決定する。
【0027】
例えば、左隣のブロックのDC成分の量子化ステップ幅をQda、左上のブロックのDC成分の量子化ステップ幅をQdb、上隣のブロックのDC成分の量子化ステップ幅をQdcとすると、
fa(0,0)=Fa(0,0)×Qda
fb(0,0)=Fb(0,0)×Qdb
fc(0,0)=Fc(0,0)×Qdc
により、逆量子化後のDC成分fa(0,0)、fb(0,0)、fc(0,0)をそれぞれ求め、
|fa(0,0)−fb(0,0)|<|fb(0,0)−fc(0,0)|なる関係が成り立てば上下方向の相関が強いと考えられるので上隣のブロックの逆量子化後のDC成分fc(0,0)から予測を行い、上記の関係が成り立たない場合には左右方向の相関が強いと考えられるので左隣のブロックの逆量子化後のDC成分fa(0,0)から予測を行う。
【0028】
上隣のブロックからDC成分の予測を行う場合は、
Px(0,0)=Fx(0,0)−fc(0,0)/Qdx
とし、左隣のブロックからDC成分の予測を行う場合は、
Px(0,0)=Fx(0,0)−fa(0,0)/Qdx
として、予測後のDC成分Px(0,0)を求める。ただし、Qdxは現在のブロックのDC成分の量子化ステップ幅であり、上記の割り算は、例えば、四捨五入で計算する。
【0029】
続いて、上記のDC成分の予測方向を用いて、AC成分の予測を行う。すなわち、左隣のブロックの量子化パラメータをQpa、上隣のブロックの量子化パラメータをQpc、現在のブロックの量子化パラメータをQpxとすると、上隣のブロックからDC成分の予測を行った場合は、AC成分の予測を、
Px(i,0)=Fx(i,0)−(Fc(i,0)×Qpc)/Qpx
(i=1、…、7)
に基づいて行う。
【0030】
また、左隣のブロックからDC成分の予測を行った場合は、AC成分の予測を、
Px(0,j)=Fx(0,j)−(Fa(0,j)×Qpa)/Qpx
(j=1、…、7)
に基づいて行い、予測後のAC成分Px(i,0)またはPx(0,j)を求める。ただし、上記の割り算は、例えば、四捨五入で計算するものとする。
【0031】
1マクロブロックを構成する6つのブロックに対して、上記のAC成分の予測を独立に行った後、AC成分の予測を行うかどうかを、以下に述べるようにマクロブロック単位で決定する(いずれのブロックとの関係で予測を行ったかによりマクロブロック毎に決定する)。
【0032】
ここで、元の映像信号のまま(AC成分の予測を行わない)が良いのか、予測を施した方が良いのかの判断を行うことを示す指標として、ブロックのAC予測判断指標SBを以下のように求める。例えば、1マクロブロックを構成する6つのブロックの各ブロックに対して、そのブロック(AC予測判断指標SBを求める対象となるブロック)が上隣のブロックから予測を行った場合は、
【0033】
【数1】
【0034】
によりAC予測判断指標SBを求め、そのブロックが左隣のブロックから予測を行った場合は、
【0035】
【数2】
【0036】
によりAC予測判断指標SBを求め、1マクロブロックを構成する6つのブロックのAC予測判断指標SBの和SBS(各ブロックについて求められたAC予測判断指標の和)が、
SBS≧0
の場合にはAC成分の予測を行い、そうでなければ、AC成分の予測を行わない。
【0037】
なお、AC成分の予測を行う場合はac_pred_flag=1、AC成分の予測を行わない場合はac_pred_flag=0として、このac_pred_flagをマクロブロック毎に付加情報として付加した後、各マクロブロックを可変長符号化手段5によって符号化する。
【0038】
ac_pred_flag=1のマクロブロックに属するブロックについては、そのブロックが上隣のブロックから予測した場合は、
【0039】
【数3】
【0040】
により、Ox(i,j)を求め、そのブロックが左隣のブロックから予測した場合は、
【0041】
【数4】
【0042】
により、Ox(i,j)を求める。
また、ac_pred_flag=0のマクロブロックに属するブロックについては、
【0043】
【数5】
【0044】
により、Ox(i,j)を求め、このOx(i,j)をDC/AC予測器4の出力として、可変長符号化手段5へ出力する。
【0045】
なお、上記予測において、現在のブロックが単位画像の左端(単位画像が1画面である場合には、この1画面の左端)のブロックである場合、現在のブロックの左隣のブロックおよび左上のブロックが存在しないので、上記予測で用いる逆量子化後のDC成分fa(0,0)およびfb(0,0)の値を予め定めた定数βとする。また、この場合、上記予測で用いるAC成分Fa(i,j)、Fb(i,j)((i,j)≠(0,0))を0とする。
【0046】
ここで予め定めた定数βは、例えば、DCT手段2から出力されるDCT係数のうち、DC成分の値の範囲の中間値とする。すなわち、DCT手段2から出力されるDC成分が11bitで0から2047の値を取り得る場合、β=1024とする。
【0047】
同様に、上記予測において、現在のブロックが単位画像の上端(単位画像が1画面である場合には、この1画面の上端)のブロックである場合、現在のブロックの上隣のブロックおよび左上のブロックが存在しないので、上記予測で用いる逆量子化後のDC成分fc(0,0)およびfb(0,0)の値を上記の定数βとし、AC成分Fc(i,j)、Fb(i,j)((i,j)≠(0,0))を0とする。
【0048】
さらに、上記予測において、現在のブロックの左隣のブロックが、現在のブロックとは異なるビデオパケットに属する場合、上記予測で用いる逆量子化後のDC成分fa(0,0)を上記の定数βとし、AC成分Fa(i,j)((i,j)≠(0,0))を0とする。
【0049】
同様に、上記予測において、現在のブロックの上隣のブロックが、現在のブロックとは異なるビデオパケットに属する場合、上記予測で用いる逆量子化後のDC成分fc(0,0)を上記の定数βとし、AC成分Fc(i,j)((i,j)≠(0,0))を0とする。
【0050】
また、上記予測において、現在のブロックの左上のブロックが、現在のブロックとは異なるビデオパケットに属する場合、上記予測で用いる逆量子化後のDC成分fb(0,0)を上記の定数βとし、AC成分Fb(i,j)((i,j)≠(0,0))を0とする。
【0051】
このように、DC/AC予測器4においては、異なるビデオパケットに属するブロック間ではDC成分、AC成分の係数を参照しないようにすることで、送信したビットストリームにエラーが混入した場合にも、DC/AC予測によるエラーの伝播がビデオパケット内で収まるように構成されている。
【0052】
【発明が解決しようとする課題】
上記のような従来の符号化装置においては、送信バッファのオーバーフローや、受信側の仮想バッファであるVBVバッファのアンダーフローを回避するための処理が十分に考慮されている訳ではなかった。
【0053】
また、通常は、量子化器3で用いる量子化パラメータを調節して符号量を増減するが、量子化パラメータを最大(最も粗い量子化を行うようにして発生する符号量を抑える)にしても、送信バッファのオーバーフローが起こるような場合についての処理が考慮されていなかった。
【0054】
また、入力されるVOPのレートがF(1/sec)である場合、1VOPを構成する全てのマクロブロックを1/F(sec)か、それよりも短い時間で符号化することが要求される。
【0055】
しかしながら、例えば、動き検出手段11がVOP内のオブジェクトの動きに応じて適応的に動きベクトルの探索範囲を変えるよう構成されている場合、動き検出手段11が各マクロブロックの動きベクトルを検出するのに要する時間は、マクロブロック毎に変化し、そのため、1VOPの処理時間は一定でなくなる。このような場合における、1VOPを構成する全てのマクロブロックを所定の時間内に符号化するための制御が、従来は考慮されていなかった。
【0056】
この発明は、上述のような課題を解消するためになされたもので、送信バッファのオーバーフローおよびVBVバッファのアンダーフローを効果的に回避できる符号化装置および符号化方法を提案するものである。
【0057】
また、この発明は、1マクロブロックの符号化に要する時間が一定でない場合にも、所定の時間内で1VOP分の符号化を終了できる符号化装置および符号化方法を提示するものである。
【0058】
【課題を解決するための手段】
この発明に係る符号化装置は、単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、マクロブロック単位で外部入力信号を符号化し、符号化により生成された一以上のマクロブロックの符号から構成されるビデオパケットを出力する符号化装置であって、マクロブロック単位で外部入力信号をインター符号化、又はイントラ符号化し、インター符号化、又はイントラ符号化により生成される符号を出力する符号化手段と、単位画像における符号化がインター符号化の場合、又はイントラ符号化の場合、それぞれの符号化タイプの場合に対応する固定符号を出力する固定符号出力手段と、符号化手段から出力される符号、又は固定符号手段から出力される固定符号を蓄積する蓄積手段と、符号化手段から出力される符号、又は固定符号化出力手段から出力される固定符号のいずれか一方を選択して前記蓄積手段に蓄積させる符号の符号量を制御する符号量制御手段とを備え、符号量制御手段は、現マクロブロックの符号の符号量mb_bit、単位画像の先頭のマクロブロックから現マクロブロックの一つ前のマクロブロックまでの符号の符号量Sc、蓄積手段がオーバーフローしないように、又はVBVバッファがアンダーフローしないように設定される最大符号量Tmax、単位画像において現マクロブロックに続いて処理されるべきマクロブロック数M、符号化タイプにより決まる、各マクロブロックに対して固定符号出力手段が出力する固定符号の符号長L、単位画像において現マクロブロック以降で発生する前記ビデオパケット単位の付加的な符号の総符号量αの間の関係が、
Sc+mb_bit+M×L+α>Tmax
(ただし、α≧0)
である場合に、固定符号出力手段が出力する固定符号を選択するよう制御することを特徴とする。
【0082】
【発明の実施の形態】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
実施の形態1.
図1はこの発明の実施の形態1である符号化装置を示すものである。同図において、1は外部入力信号を第一の入力とする減算器であり、減算器1の出力はDCT手段2、量子化器3を通して、DC/AC予測器4と逆量子化器6に入力される。DC/AC予測器4の出力は可変長符号化手段5aの第一の入力に与えられる。
【0083】
一方、逆量子化器6の出力は、逆DCT手段7を通して、加算器8の第一の入力に与えられる。加算器8の出力はメモリ9の第一の入力に与えられ、メモリ9の出力は予測画像作成手段10の第一の入力と動き検出手段11の第一の入力に与えられる。
【0084】
動き検出手段11の第二の入力には外部入力信号が与えられ、動き検出手段11の出力は予測画像作成手段10の第二の入力と動きベクトル予測器12に与えられる。予測画像作成手段10の出力は減算器1の第二の入力と加算器8の第二の入力に与えられる。
【0085】
また、動きベクトル予測器12の出力は可変長符号化手段5aの第二の入力に与えられる。なお、符号化手段は、上述の外部入力信号が入力される減算器1から、この外部入力信号に対応する可変長符号が出力される可変長符号化手段5aまでを含んで構成される(もちろん、ここに示された構成は一例にしか過ぎず、外部入力信号に対応する符号化を行うことができる既知の構成を用いることができる。)。
【0086】
可変長符号化手段5aの第一の出力は一時バッファ101の第一の入力に与えられ、可変長符号化手段5aの第二の出力は符号量制御手段102の入力に与えられる。
【0087】
一時バッファ101の第二の入力には固定符号出力手段104の出力が与えられ、一時バッファ101の第三の入力には符号量制御手段102の第一の出力が与えられる。一時バッファ101の出力は送信バッファ103の第一の入力に与えられる(ここでは、一時バッファ101または送信バッファ103が蓄積手段に相当する)。
【0088】
符号量制御手段102の第二の出力はメモリ9の第二の入力に与えられる。送信バッファ103の出力はビットストリームとして出力(送信)される。
【0089】
この出力(送信)されたビットストリームは、復号装置側において受信され復号処理が施される。
【0090】
次に動作について説明する。
まず、映像信号は図16に示したように基本処理単位であるマクロブロックに分割され、減算器1および動き検出手段11に入力マクロブロックとして入力される。例えば、入力される映像信号が4:2:0の場合、輝度信号(Y)の16画素×16ラインが、2つの色差信号(Cb、Cr)の8画素×8ラインと画面上で同じ大きさとなるので、8画素×8ラインのブロックが6つで、1つのマクロブロックが構成される。
【0091】
イントラ符号化を行う場合、各ブロックはDCTを施してから量子化する。量子化されたDCT係数はDC/AC予測器4において係数の予測を行った後、量子化パラメータなどの付加情報とともに可変長符号化手段5aにより可変長符号化する。量子化されたDCT係数は、逆量子化器6によって逆量子化され、逆DCT手段7によって逆DCTを行って復号され、この逆DCT手段7の出力である復号画像はメモリ9に記憶される。
【0092】
インター符号化の場合は、動き検出手段11において、入力されたマクロブロックの動きを示す動きベクトルを検出する。動きベクトルは、メモリ9に記憶された復号画像の中で、入力マクロブロックとの誤差が最も小さくなるような位置を示すものである。
【0093】
予測画像作成手段10は、動き検出手段11によって検出された動きベクトルに基づいて予測画像を作成する。次に、入力マクロブロックとこの予測画像の差分を求め、その差分信号に対してDCT手段2によりDCTを施し、量子化器3により量子化を行う。
【0094】
量子化器3の出力である量子化されたDCT係数は、DC/AC予測器4において予測された係数、動きベクトル予測器12により予測符号化された動きベクトルおよび量子化パラメータなどの付加情報とともに可変長符号化手段5aにより可変長符号化される。また、量子化されたDCT係数は、逆量子化器6によって逆量子化、逆DCT手段7によって逆DCTを行った後、予測画像作成手段10より出力される予測画像と加算されて、メモリ9に記憶される。
【0095】
次に可変長符号化手段5aの動作を詳しく説明する。
可変長符号化手段5aは、マクロブロック毎に、量子化されたDCT係数と付加情報を符号化して(符号化工程)一時バッファ101に書き込み、その符号量を符号量制御手段102に出力する。
【0096】
例えば、MPEG4のI−VOPの場合、まず、DC/AC予測器4から出力される各ブロックのDCT係数のAC成分をジグザグスキャン等の方法で1次元スキャンし、0の個数と非零の係数の組み合わせを符号化するランレングス符号化を行う。このランレングス符号化された各ブロックのAC成分データは一時バッファ101に書き込まれる。
【0097】
図2(a)に示すように、各ブロックの係数データの後には、イントラ/インター等を示すマクロブロックタイプ(MTYPE)と色差の各ブロックに非零のAC係数があったかどうかを示すcbpcをまとめて符号化したmcbpc、量子化パラメータを示すdquant、各ブロックのDCT係数のDC成分、AC予測を行ったかどうかを示すac_pred_flag、Yの各ブロックに非零のAC係数があったかどうかを示すcbpyが順に符号化されて一時バッファ101に書き込まれる。
【0098】
なお、マクロブロック毎にこれらの符号量の合計が符号量制御手段102に出力される。
【0099】
同様に、MPEG4のP−VOPの場合は図3(a)のような順で符号化したデータが一時バッファ101に書き込まれる。
【0100】
符号量制御手段102は、可変長符号化手段5aから出力される各マクロブロックの符号量に基づいて、各ビデオパケットの長さが予め定められた値以下になるようにマクロブロックをまとめ、一時バッファ101から送信バッファへと転送する。
【0101】
例えば、MPEG4の場合、図2(b)、図3(b)に示したように、ビデオパケットの先頭にはヘッダを付加し、規定されたビットストリームの順に並べ替えて転送する。
【0102】
また、符号量制御手段102は、送信バッファ103がオーバーフローを起こさないように、あるいは、VBV(Video Buffering Verifier)バッファ(受信側におけるビットストリーム受信に要する仮想的なバッファ(必要とされる容量は、例えば、送信ビットストリーム中のヘッダに記述される)。通常、最低I−VOP分の容量が設定される。)がアンダーフローを起こさないように、VOP毎に最大符号量Tmaxを設定し、当該VOPの符号量がTmaxより多くならないように、可変長符号化手段5aの出力または固定符号出力手段104の出力のうち、一時バッファ101に書きこむ固定符号を選択する。
【0103】
なお、ここにおける最大符号量Tmaxとは、送信バッファ103がオーバーフローを起こさず、VBVバッファがアンダーフローしないための符号量の上限値といえる。
【0104】
以下、動作の詳細について述べる。
符号量制御手段102は、各VOPの符号化を始める前に、当該VOPの最大符号量Tmaxを求める。例えば、送信バッファ103の容量がBs(bits)、送信バッファ103の現在の残量(すなわち、送信バッファやVBVバッファ等の記憶手段に蓄積され、当該送信バッファやVBVバッファ等の記憶手段より読み出されていない(送信バッファやVBVバッファ等の記憶手段に残留している(保存されている))データの量(残容量)であり、このようなデータの量のことを一般的にはバッファ占有量、あるいは占有量(occupancy)と表現する。以下、単に占有量と称す。)がB(bits)とすると、送信バッファ103がオーバーフローを起こさないためには、当該VOPの符号量をBs−B以下とすれば十分である。従って、最大符号量Tmaxを
Tmax≦Bs−B
と設定すればよい。
【0105】
また、VBVバッファの管理をする場合、送信バッファ103の読み出しビットレートがR(bits/sec)、符号化するVOPのレートがF(1/sec)とすると、1VOP期間に送信バッファ103から読み出されるビット数Rpは、
Rp=R/F
となり、1VOP期間にVBVバッファが受信するビット数もRpとなる。
【0106】
そこで、現在のVOPの1つ前のVOPのデコード時間におけるVBVバッファの占有量をvbv_bits(bits)とすると、VBVバッファがアンダーフローしないためには、当該VOPの符号量をvbv_bits+Rp以下とすればよい。すなわち、最大符号量Tmaxを
Tmax≦vbv_bits+Rp
と設定すればよい。
【0107】
従って、符号量制御手段102は、各VOPの符号化を始める前に、当該VOPの最大符号量Tmaxを
Tmax=min(vbv_bits+Rp,Bs−B)
と設定する。(min(a,b)は、aまたはbのいずれか小さい方をその値とすることを示す)。
【0108】
なお、VBVバッファの占有量vbv_bitsは、受信側における占有量を推定するものであるが、受信側でアンダーフローが起きた場合はデコード時間を遅らせるなどの対処を行う場合は、VBVバッファのアンダーフローを管理する必要がない。このようにVBVバッファのアンダフローを管理する必要がない場合は、
Tmax=Bs−B
と設定すればよい。
【0109】
送信バッファ103の占有量Bは時間的に変化するため、最大符号量Tmaxの値も時間的に変化するものとなるが、この最大符号量TmaxはVOP毎に計算されるものである。
【0110】
次に、符号量制御手段102は、マクロブロック毎に現在のVOPの符号量を求め、図4および図5に示すフローチャートに従って、当該マクロブロックに対して、可変長符号化手段5aから出力される符号または固定符号出力手段104から出力される固定符号のうち、一時バッファ101に蓄積する符号または固定符号のいずれかを選択して(選択して蓄積するように制御する。符号量制御工程。)、一時バッファ101に符号または固定符号のいずれかを蓄積する(蓄積工程。一時バッファ101から送信バッファ103への送信を含めて蓄積工程としてもよい)。
【0111】
なお、図4は現在のVOPがP−VOP(符号化タイプがインター)の場合のフローチャートを示しており、図5は現在のVOPがI−VOP(符号化タイプがイントラ)の場合のフローチャートを示している。
【0112】
(P−VOPの場合の符号量制御について)
まず、P−VOPの場合の符号量制御102の動作を説明する。
P−VOPの場合、可変長符号化手段5aは図3(a)に示したように各ブロックの係数データ、not_coded、mcbpc、動きベクトル、cbpy、dquantを各マクロブロックに対して出力するが、これらの符号は必ずしも全てが存在するわけではなく、例えば、各ブロックの係数データが全て0であり、かつ、動きベクトルが(0,0)である場合は、not_coded=1の1bitのみが存在する。これが、P−VOPのマクロブロックで最小符号量となる符号である。
【0113】
そこで、P−VOPの場合、固定符号出力手段104は、固定符号としてnot_coded=1の1bitのみを出力する(固定符号出力工程。なお、後述するようにI−VOPに対しても固定符号を出力する場合も固定符号出力工程と称する)。つまり、固定符号出力手段104は、現在のVOPの符号化タイプに対して、最小符号量となるマクロブロックの固定符号を出力する。
【0114】
例えば、各ブロックの係数データが全て0であり、かつ、動きベクトルが(0,0)である場合は、not_coded=1の1bitのみが存在するので、P−VOPの場合、固定符号出力手段104が出力する固定符号の符号長LはL=1となる。
【0115】
符号量制御手段102は、マクロブロック毎に現在のVOPの符号量を求め、残りのマクロブロックすべてに対して固定符号出力手段104から出力される固定符号を選択したとしても、VOPを構成するすべてのマクロブロックの符号量が当該VOPの最大符号量Tmaxを越える場合に、現在のマクロブロックの符号を固定符号出力手段104から出力される固定符号に置き換える。
【0116】
すなわち、VOPを構成するマクロブロックの総数をAとし、現在のマクロブロックのマクロブロック番号をK(ただし、0≦K≦A−1)とすると、これに続く符号化されるべきマクロブロック数M(残りのマクロブロック数M)は
M=A−K−1
と表される。
【0117】
現在のVOPを構成するマクロブロック番号0のマクロブロックから、マクロブロック番号K−1のマクロブロックまでの符号量をScとし、現在のマクロブロック(マクロブロック番号K)に対して可変長符号化手段5aが出力する符号の符号量をmb_bitとすると、残りのM個のマクロブロックに対して固定符号出力手段104の固定符号(符号長がL)を選択した場合のVOP全体の符号量は、
Sc+mb_bit+M×L+α
となる。ここでαは、マクロブロック番号K以降のマクロブロックで発生し得るResync Marker、ビデオパケットヘッダ、スタッフビット、motion_marker等のビデオパケット単位で発生する付加的な符号の符号量(ここでは、付加符号量と称す)であり、α≧0である。
【0118】
そこで、
Sc+mb_bit+M×L+α>Tmax
となる場合は、現在のマクロブロック(マクロブロック番号K)に対して、固定符号出力手段104が出力する固定符号を一時バッファ101に書きこみ、そうでない場合は可変長符号化手段5aが出力する符号を一時バッファ101に書きこむよう制御する(図4)。
【0119】
なお、付加符号量αの値としては、例えば、P−VOPにおけるResyncMarker、ビデオパケットヘッダ、スタッフビット、motion_markerの符号量の合計が最大でCp(bit)、予め定められたビデオパケットの長さがVPlen(bit)とすると、現在のマクロブロック(マクロブロック番号K)以降のマクロブロックで発生する符号量は、少なくとも
(M+1)×L
であり、
(M+1)×L/VPlen+1
個のビデオパケットが発生し得るので、付加符号量αは、
α=((M+1)×L/VPlen+1)×Cp
とすればよい。
【0120】
また、VOPを構成するマクロブロックの総数Aを用いれば、
M+1≦A
であることから、演算を簡略化するために、付加符号量αは、
α=(A×L/VPlen+1)×Cp
として、P−VOPに固定の値としてもよい。
【0121】
なお、P−VOPについて、固定符号出力手段104から出力される固定符号を一時バッファ101に記憶した場合は、強制的にnot_coded(符号化されていない)扱いとするためにメモリ9に記憶された現在のマクロブロックの復号画像を、メモリ9に記憶された一つ前のVOPの同一位置のマクロブロックの復号画像に置き換えておく。
【0122】
すなわち、メモリ9内で、一つ前のVOPのマクロブロック番号Kのマクロブロックの復号画像を、現在のVOPのマクロブロック番号Kのマクロブロックの復号画像エリアにコピーする。P−VOPの場合は、固定符号出力手段104が出力する固定符号がnot_coded=1であるので、このように一つ前のVOPの復号画像をコピーすることにより、固定符号出力手段104から出力される固定符号に応じた復号画像が得られる。
【0123】
(I−VOPの場合の符号量制御について)
次に、I−VOPの場合の符号量制御手段102の動作を説明する。
I−VOPの場合、可変長符号化手段5aは図2(a)に示したように各ブロックのAC成分データ、mcbpc、dquant、DC成分、ac_pred_flag、cbpyを各マクロブロックに対して出力するが、これらの符号は必ずしも全てが存在するわけではなく、例えば、mcbpcが示すcbpcの値とcbpyの値が共に0である場合は、各ブロックの係数データは存在しない。また、mcbpcが示すマクロブロックタイプがdquantを持たないことを表している場合は、dquantも存在しない。
【0124】
そこで、I−VOPの場合、固定符号出力手段104は、各ブロックのDC成分およびAC成分がすべて0で、かつ、dquant=0、ac_pred_flag=0であるようなマクロブロックに対する符号を、固定符号として出力する。なお、MPEG2、MPEG4など既存のほとんどの符号化方式においては、このような符号が、I−VOPのマクロブロックの最小符号量となる。
【0125】
P−VOPの場合と同様に、符号量制御手段102は、マクロブロック毎に現在のVOPの符号量を求め、残りのマクロブロックすべてに対して固定符号出力手段104から出力される固定符号を選択したとしても、VOPを構成するすべてのマクロブロックの符号量が当該VOPの最大符号量Tmaxを越える場合に、現在のマクロブロックの符号を、固定符号出力手段104から出力される固定符号に置き換える。
【0126】
ここでは、VOPを構成するビデオパケットをくずさない(ビデオパケットを構成するマクロブロックがすべて含まれる)ことが求められるので、残りのマクロブロックに対応する符号化されたデータを生成する必要があるが、VOPを構成するすべてのマクロブロックの符号量が最大符号量Tmaxを越える場合には、上述のように固定符号への置き換えを行うことになるため、この固定符号分の裕度を見込んでおく必要がある。
【0127】
すなわち、現在のマクロブロック(マクロブロック番号K)に対して可変長符号化手段5aが出力する符号の符号量をmb_bit、固定符号出力手段104が出力する固定符号の符号長をL、現在のVOPを構成するマクロブロック番号0のマクロブロックからマクロブロック番号K−1のマクロブロックまでの符号量をScとすると、図5に示すように、
Sc+mb_bit+M×L+α>Tmax
(M=A−K−1)
となる場合は、現在のマクロブロック(マクロブロック番号K)に対して、固定符号出力手段104が出力する固定符号を一時バッファ101に書きこみ、そうでない場合は可変長符号化手段5aが出力する符号を一時バッファ101に書きこむよう制御する。
【0128】
ここでαは、マクロブロック番号K以降のマクロブロックで発生し得るResync Marker、ビデオパケットヘッダ、スタッフビット、dc_marker等のビデオパケット単位で発生する符号の符号量(付加符号量)であり、α≧0である。
【0129】
なお、付加符号量αの値としては、例えば、I−VOPにおけるResyncMarker、ビデオパケットヘッダ、スタッフビット、dc_markerの符号量の合計が最大でCi(bit)、予め定められたビデオパケットの長さがVPlen(bit)とすると、現在のマクロブロック(マクロブロック番号K)以降のマクロブロックで発生する符号量は、少なくとも
(M+1)×L
であり、
(M+1)×L/VPlen+1
個のビデオパケットが発生し得るので、
α=((M+1)×L/VPlen+1)×Ci
とすればよい。
【0130】
また、VOPを構成するマクロブロックの総数Aを用いれば、
M+1≦A
であることから、演算を簡略化するために、
α=(A×L/VPlen+1)×Ci
として、I−VOPに固定の値としてもよい。
【0131】
なお、I−VOPの場合、現在のマクロブロック(マクロブロック番号K)に対して固定符号出力手段104から出力される固定符号を一時バッファ101に記憶した場合で、かつ、一つ前のマクロブロック(マクロブロック番号K−1)に対しては固定符号出力手段104の出力(固定符号)を選択しなかった場合(可変長符号化手段5aの出力を選択した場合)は、図5に示すように、現在のマクロブロックから新しいビデオパケットを構成する。
【0132】
I−VOPの場合、ac_pred_flag=0であってもDC予測を行うので、一時バッファ101に記憶されたDC成分が0の場合、これはDC/AC予測器4の出力する予測後のDC成分Ox(0,0)が0であることを示すものであり、量子化器3が出力するDC成分Fx(0,0)が0であることを示すものではない。
【0133】
このため、固定符号出力手段104が各ブロックのDC成分およびAC成分がすべて0でかつ、dquant=0、ac_pred_flag=0であるようなマクロブロックに対する固定符号を出力する場合、この固定符号を復号して得られる画像は一般には一定ではない(すなわち、固定符号自体は固定のものであっても画像表現に関わる値は固定の値ではなく任意の値をとり得る)。
【0134】
しかしながら、DC/AC予測器4においては、異なるビデオパケットに属するブロック間ではDC成分の係数の参照を行わず、DC成分の値の範囲の中間値である定数βを参照値とするので、上述のように、固定符号出力手段104から出力される固定符号を一時バッファ101に記憶するよう選択した場合、当該マクロブロックから新しいビデオパケットを構成するように制御すれば、前記固定符号出力手段104から出力される固定符号が表す各ブロックの逆量子化後のDC成分fx(0,0)は
fx(0,0)=β
となる。
【0135】
従って、I−VOPの場合、固定符号出力手段104から出力される固定符号を復号すると、マクロブロックの全ての画素が定数γであるような画像(画面全体が同じ色等の、いわゆる、ベタ画像)が得られる。ここで定数γは、入力されるマクロブロックの画素値の範囲の中間値である。例えば、入力されるマクロブロックが8ビットで0から255の値を取り得る場合、γ=128である。
【0136】
なお、固定符号出力手段104から出力される固定符号を一時バッファ101に記憶するよう選択した場合、上述のように、当該マクロブロック(マクロブロック番号K)の各ブロックの逆量子化後のDC成分は定数βに等しくなるので、当該マクロブロックの次のマクロブロック(マクロブロック番号K+1)で固定符号出力手段104の出力(固定符号)を選択する場合は、新しいビデオパケットを構成しなくても、逆量子化後のDC成分が定数βとなり、復号画像は画素値がすべて定数γの画像(ベタ画像)となる。
【0137】
従って、図5に示すように、固定符号出力手段104から出力される固定符号を一時バッファ101に記憶した場合で、かつ、一つ前のマクロブロックに対しては固定符号出力手段104の出力(固定符号)を選択しなかった場合に、現在のマクロブロックから新しいビデオパケットを構成するよう制御すればよい。
【0138】
なお、固定符号出力手段104から出力される固定符号を一時バッファ101に記憶した場合は、メモリ9に記憶された現在のマクロブロックの復号画像を、画素値がすべて定数γの画像に置き換えておく。すなわち、メモリ9の現在のVOPの現在のマクロブロックの復号画像エリアに定数γを書きこむ。
【0139】
このように図4および図5のフローチャートに基づいて、可変長符号化手段5aから出力される符号または固定符号出力手段104から出力される固定符号のうち、一時バッファ101に記憶する符号を選択することにより、各VOPの符号量が最大符号量Tmaxを超えないように制御することができる。
【0140】
また、図5のフローチャートに基づいて、現在のマクロブロックから新しいビデオパケットを構成するか否かを決定することにより、I−VOPの場合も、固定符号出力手段104から出力される固定符号に対応する復号画像を、新たな演算を行うことなく、メモリ9に書きこむので、少ない演算量で単位画像の符号量が必ず最大符号量Tmax以下となるように制御できる。
【0141】
実施の形態2.
上記実施の形態1においては、符号量制御手段102が図4および図5のフローチャートに基づいて可変長符号化手段5aまたは固定符号出力手段104の出力(固定符号)を選択するよう制御するとしたが、符号量制御手段102は、図6および図7に示すフローチャートに基づいて、可変長符号化手段5aまたは固定符号出力手段104の出力(固定符号)を選択するよう構成してもよい。
【0142】
なお、図6は現在のVOPがP−VOP(符号化タイプがインター)の場合のフローチャートを示しており、図7は現在のVOPがI−VOP(符号化タイプがイントラ)の場合のフローチャートを示している。
【0143】
(P−VOPの場合の符号量制御について)
まず、P−VOPの場合を図6に従って説明する。
符号量制御手段102は、実施の形態1の場合と同様に、現在のマクロブロック(マクロブロック番号K)に対して可変長符号化手段5aが出力する符号の符号量をmb_bit、固定符号出力手段104が出力する固定符号の符号長をL、現在のVOPを構成するマクロブロック番号0のマクロブロックからマクロブロック番号K−1のマクロブロックまでの符号量をSc、現在のVOPを構成するマクロブロックK+1以降のマクロブロックの数をMとすると、
Sc+mb_bit+M×L+α>Tmax (1)
となる場合、現在のマクロブロック(マクロブロック番号K)に対して、固定符号出力手段104が出力する固定符号を一時バッファ101に書きこむよう制御する。
【0144】
ここでαは、マクロブロック番号K以降のマクロブロックで発生し得るResync Marker、ビデオパケットヘッダ、スタッフビット、motion_marker等のビデオパケット単位で発生する符号の符号量(付加符号量)であり、α≧0である。実施の形態1で説明したように、αはマクロブロック毎に演算しても、VOPの符号化タイプ毎に固定値としてもよい。
【0145】
ところで、現在のマクロブロックに対して上記(1)式が成り立つ場合、符号量としては累積されていくものであるから、次のマクロブロックに対しても(1)式が成り立つ可能性が非常に高い。
【0146】
例えば、マクロブロック番号Kに対して(1)式が成り立つとすると、マクロブロック番号0からマクロブロック番号Kまでのマクロブロックの符号量Sc’は、マクロブロック番号K−1のマクロブロックまでの符号量Scに固定符号出力手段104が出力する固定符号の符号長Lを加算した、
Sc’=Sc+L
となる。ここで、マクロブロック番号Kのマクロブロックに対して可変長符号化手段5aが出力する符号の符号量mb_bitと、マクロブロック番号K+1のマクロブロックに対して可変長符号化手段5aが出力する符号の符号量mb_bit’が等しく、かつ、上記αの値が両マクロブロックに対して同じであれば、
Sc’+mb_bit’+(M−1)×L+α
=Sc+mb_bit+M×L+α
>Tmax
となり、マクロブロック番号K+1に対しても(1)式が成り立つ。
【0147】
そこで、マクロブロック番号Kに対して(1)式が成立した場合は、マクロブロック番号K以降のマクロブロックに対しても(1)式が成立するものとして、演算を省略することができる。
【0148】
すなわち、図6に示すように、まず現在のマクロブロック(マクロブロック番号K)の一つ前のマクロブロック(マクロブロック番号K−1)に対して、固定符号出力手段104の出力(固定符号)を選択したかどうかを判断し、一つ前のマクロブロックで固定符号出力手段104の出力(固定符号)を選択した場合は、現在のマクロブロックに対しても固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶する。
【0149】
一方、一つ前のマクロブロックで固定符号出力手段104の出力(固定符号)を選択しなかった場合は、上記(1)式を判断し、(1)式が成り立つ場合は固定符号出力手段104の出力(固定符号)を、成り立たない場合は可変長符号化手段5aの出力を一時バッファ101に記憶する。
【0150】
(I−VOPの場合の符号量制御について)
I−VOPの場合も同様で、図7に示すように、まず現在のマクロブロック(マクロブロック番号K)の一つ前のマクロブロック(マクロブロック番号K−1)に対して、固定符号出力手段104の出力(固定符号)を選択したかどうかを判断し、一つ前のマクロブロックで固定符号出力手段104の出力(固定符号)を選択した場合は、現在のマクロブロックに対しても固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶する。この場合、実施の形態1で説明したように、現在のマクロブロックから新しいビデオパケットを構成する必要はない。
【0151】
一方、一つ前のマクロブロックで固定符号出力手段104の出力(固定符号)を選択しなかった場合は、上記(1)式を判断し、(1)式が成り立つ場合は固定符号出力手段104の出力(固定符号)を、成り立たない場合は可変長符号化手段5aの出力を一時バッファ101に記憶する。また、上記(1)式が成り立つ場合は、現在のマクロブロックから新しいビデオパケットを構成する。
【0152】
なお、実施の形態2においては、1VOPの中のあるマクロブロックに対して(1)式が成立すると、そのVOPを構成する当該マクロブロック以降のすべてのマクロブロックに対して、固定符号出力手段104の出力(固定符号)を一時バッファ101に書きこむよう制御するので、当該マクロブロックに続いて符号化されるマクロブロックにおいては、減算器1、DCT手段2、量子化器3、DC/AC予測器4、可変長符号化手段5a、逆量子化器6、逆DCT手段7、加算器8、予測画像作成手段10、動き検出手段11および動きベクトル予測手段12からなる符号化手段は動作する必要がない。
【0153】
従って、1VOPの中のあるマクロブロックに対して(1)式が成立する場合は、そのVOPを構成する当該マクロブロックに続いて符号化されるマクロブロックにおいては、減算器1、DCT手段2、量子化器3、DC/AC予測器4、可変長符号化手段5a、逆量子化器6、逆DCT手段7、加算器8、予測画像作成手段10、動き検出手段11および動きベクトル予測手段12は動作を止める(符号化されたマクロブロックより後のマクロブロックからVOPの最後迄演算を停止する)ことにより、演算量の減少、消費電力の削減を図ることができる。
【0154】
実施の形態3.
実施の形態3においては、符号量制御手段102は、図8に示すフローチャートに基づいて、可変長符号化手段5aまたは固定符号出力手段104の出力(固定符号)を選択するよう制御する。なお、図8はP−VOP(符号化タイプがインター)の場合のフローチャートを示している。
【0155】
(P−VOPの場合の符号量制御について)
例えば、動き検出手段11がVOP内のオブジェクトの動きに応じて適応的に動きベクトルの探索範囲を変えるよう構成されている場合、動き検出手段11が各マクロブロックの動きベクトルを検出するのに要する時間は、マクロブロック毎に変化し、そのため、1VOPの処理時間は一定でなくなる。
【0156】
このような場合に、1VOPを構成する全てのマクロブロックを所定の時間内に符号化するために、処理時間が少なくなった場合は、減算器1、DCT手段2、量子化器3、DC/AC予測器4、可変長符号化手段5a、逆量子化器6、逆DCT手段7、加算器8、予測画像作成手段10、動き検出手段11および動きベクトル予測手段12の演算を行わず、固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶する。
【0157】
従って、符号量制御手段102は、図8に示すように、現在のVOPを構成する先頭のマクロブロック(マクロブロック番号0)が入力されてからの経過時間を計測し、この経過時間があらかじめ定められた処理時間Tpを越えた場合は、常に固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶するよう制御し、そうでない場合は前記(1)式に基づいて、固定符号出力手段104の出力(固定符号)と可変長符号化手段5aの出力を選択して一時バッファ101に記憶する。
【0158】
なお、この場合のあらかじめ定められた処理時間Tpは、最大1VOP期間に設定される(1VOP分の処理は1VOP期間に処理しなければならないため)が、この1VOP期間に他の処理を含めるような場合には、(1VOP期間−他の処理に要する期間)が処理時間Tpに与えられる最大値となる。
【0159】
(I−VOPの場合の符号制御について)
なお、現在のVOPがI−VOPである場合は、実施の形態1または実施の形態2と同様に、図5または図7のフローチャートに従って、符号量制御手段102は一時バッファ101に記憶する符号を選択する。
【0160】
実施の形態4.
実施の形態4においては、符号量制御手段102は、図9に示すフローチャートに基づいて、可変長符号化手段5aまたは固定符号出力手段104の出力(固定符号)を選択するよう制御する。なお、図9はP−VOP(符号化タイプがインター)の場合のフローチャートを示している。
【0161】
(P−VOPの場合の符号量制御について)
すなわち、符号量制御手段102は、実施の形態2で説明したように、まず現在のマクロブロック(マクロブロック番号K)の一つ前のマクロブロック(マクロブロック番号K−1)に対して、固定符号出力手段104の出力(固定符号)を選択したかどうかを判断し、一つ前のマクロブロックで固定符号出力手段104の出力(固定符号)を選択した場合は、現在のマクロブロックに対しても固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶する。
【0162】
次に、実施の形態3で説明したように、現在のVOPを構成する先頭のマクロブロック(マクロブロック番号0)が入力されてからの経過時間を計測し、この経過時間があらかじめ定められた処理時間Tpを越えた場合は、固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶するよう制御し、そうでない場合は前記(1)式に基づいて、固定符号出力手段104の出力(固定符号)と可変長符号化手段5aの出力を選択して一時バッファ101に記憶する。
【0163】
(I−VOPの場合の符号量制御について)
なお、現在のVOPがI−VOPである場合は、実施の形態1または実施の形態2と同様に、図5または図7のフローチャートに従って、符号量制御手段102は一時バッファ101に記憶する符号を選択する。
【0164】
実施の形態5.
実施の形態1においては、固定符号出力手段104が独立して存在するようなブロック図を示したが、例えば、ソフトウェアによってそれぞれの手段を構成する場合には、固定符号出力手段104および可変長符号化手段5aのそれぞれの動作を行わせるためのROMテーブルを共有するように構成することもできる。
【0165】
すなわち、実施の形態1で説明したように、固定符号出力手段104が出力する固定符号は、I−VOP、P−VOPそれぞれのマクロブロックの符号のうちの1パターンとなっているので、固定符号出力手段104および可変長符号化手段5aを一体のものとすることにより、ROMテーブルを共有化することができる。
【0166】
図10はこの発明の実施の形態5である符号化装置を示すものである。同図において、1は外部入力信号を第一の入力とする減算器であり、減算器1の出力はDCT手段2、量子化器3を通して、DC/AC予測器4と逆量子化器6に入力される。DC/AC予測器4の出力は可変長符号化手段5bの第一の入力に与えられる。
【0167】
一方、逆量子化器6の出力は、逆DCT手段7を通して、加算器8の第一の入力に与えられる。加算器8の出力はメモリ9の第一の入力に与えられ、メモリ9の出力は予測画像作成手段10の第一の入力と動き検出手段11の第一の入力に与えられる。
【0168】
動き検出手段11の第二の入力には外部入力信号が与えられ、動き検出手段11の出力は予測画像作成手段10の第二の入力と動きベクトル予測器12に与えられる。予測画像作成手段10の出力は減算器1の第二の入力と加算器8の第二の入力に与えられる。
【0169】
また、動きベクトル予測器12の出力は可変長符号化手段5bの第二の入力に与えられる。
【0170】
可変長符号化手段5bの第一の出力は一時バッファ101の第一の入力に与えられ、可変長符号化手段5bの第二の出力は符号量制御手段102の入力に与えられる。
【0171】
一時バッファ101の第二の入力には符号量制御手段102の第一の出力が与えられる。一時バッファ101の出力は送信バッファ103の第一の入力に与えられる。
【0172】
符号量制御手段102の第二の出力はメモリ9の第二の入力と可変長符号化手段5bの第三の入力に与えられる。送信バッファ103の出力はビットストリームとして出力(送信)される。
【0173】
この出力(送信)されたビットストリームは、復号装置側において受信され復号処理が施される。
【0174】
次に動作について説明する。
実施の形態5は、可変長符号化手段5bおよび一時バッファ101の動作が実施の形態1と異なる。他の部分については実施の形態1と同様であるので説明を省略する。
【0175】
可変長符号化手段5bは、まず、実施の形態1と同様に各マクロブロックのデータを符号化して、図11(a)のように一時バッファ101に符号を書きこむ。ここで、現在のマクロブロック(マクロブロック番号K)に対して書きこんだ符号の先頭アドレスAkを記憶しておく。また、このとき発生した符号の符号量mb_bitを符号量制御手段102に出力する。
【0176】
次に、符号量制御手段102は、前記(1)式を判断し、(1)式が成り立つ場合は一時バッファ101の書きこみアドレスをAkに戻し、固定符号を選択することを示す信号をメモリ9と可変長符号化手段5bに出力する。
【0177】
可変長符号化手段5bは、固定符号を選択することを示す信号を受け取ると、予めVOPの符号化タイプ毎に定められた固定符号を一時バッファ101に出力する。このとき、一時バッファ101の書きこみアドレスはAkに戻されているので、マクロブロック番号Kの符号を固定符号で上書きすることになる。従って、図11(b)に示す一時バッファのデータ構成のように、マクロブロック番号K−1の符号の次に、固定符号が書き込まれる。
【0178】
また、メモリ9は、固定符号を選択することを示すフラグを受け取ると、実施の形態1で説明したように、I−VOPの場合はマクロブロック番号Kの復号画像エリアに定数γを書きこみ、P−VOPの場合はマクロブロック番号Kの復号画像エリアに、当該VOPの一つ前のVOPのマクロブロック番号Kのマクロブロックの復号画像をコピーする。
【0179】
以上のように構成することにより、実施の形態5では、可変長符号化手段5bに、各マクロブロックを符号化する手段とVOPの符号化タイプ毎に用意した固定符号を出力する手段の両者の機能を持たせ、回路の縮小化を図ることができる。
【0180】
実施の形態6.
図12はこの発明の実施の形態6である符号化装置を示すものである。同図において、1は外部入力信号を第一の入力とする減算器であり、減算器1の出力はDCT手段2、量子化器3を通して、可変長符号化手段5cの第一の入力と逆量子化器6に与えられる。
【0181】
逆量子化器6の出力は、逆DCT手段7を通して、加算器8の第一の入力に与えられる。加算器8の出力はメモリ9の第一の入力に与えられ、メモリ9の出力は予測画像作成手段10の第一の入力と動き検出手段11の第一の入力に与えられる。
【0182】
動き検出手段11の第二の入力には外部入力信号が与えられ、動き検出手段11の出力は予測画像作成手段10の第二の入力と動きベクトル予測器12に与えられる。予測画像作成手段10の出力は減算器1の第二の入力と加算器8の第二の入力に与えられる。
【0183】
また、動きベクトル予測器12の出力は可変長符号化手段5cの第二の入力に与えられる。なお、符号化手段は、上述の外部入力信号が入力される減算器1から、この外部入力信号に対応する可変長符号が出力される可変長符号化手段5cまでを含んで構成される(もちろん、ここに示された構成は一例にしか過ぎず、外部入力信号に対応する符号化を行うことができる既知の構成を用いることができる)。
【0184】
可変長符号化手段5cの第一の出力は一時バッファ101の第一の入力に与えられ、可変長符号化手段5cの第二の出力は符号量制御手段102の入力に与えられる。
【0185】
一時バッファ101の第二の入力には固定符号出力手段104の出力(固定符号)が与えられ、一時バッファ101の第三の入力には符号量制御手段102の第一の出力が与えられる。一時バッファ101の出力は送信バッファ103の第一の入力に与えられる。
【0186】
符号量制御手段102の第二の出力はメモリ9の第二の入力に与えられる。送信バッファ103の出力はビットストリームとして出力(送信)される。
【0187】
この出力(送信)されたビットストリームは、復号装置側において受信され復号処理が施される。
【0188】
次に動作について説明する。
実施の形態6は、符号化タイプがイントラの場合もDC/AC予測を行わない点が実施の形態1と異なる。すなわち、可変長符号化手段5cは量子化器3から出力されるDCT係数を用いて符号化を行う。例えば、H.263に準拠した符号化装置の場合、I−VOPの場合はDC成分を常に8ビットで符号化する。
【0189】
そこで、固定符号出力手段104は、I−VOPに対して各ブロックのDC成分が128、AC成分がすべて0、dquant=0であるようなマクロブロックの固定符号を出力する。
【0190】
この場合、DC予測がないので、固定符号出力手段104の出力(固定符号)を選択した場合も、現在のマクロブロックから新しいビデオパケットを構成する必要はない。そこで、符号量制御手段102は、I−VOPの場合も、図4、図6、図8、あるいは、図9のフローチャートに従って、固定符号出力手段104の出力(固定符号)または可変長符号化手段5cの出力を選択して、一時バッファ101に記憶する。
【0191】
なお、P−VOPの場合は、実施の形態1ないし実施の形態4と同様に、図4、図6、図8、あるいは、図9のフローチャートに従って、固定符号出力手段104の出力(固定符号)または可変長符号化手段5cの出力を選択して、一時バッファ101に記憶する。
【0192】
実施の形態7.
上記実施の形態6においては、可変長符号化手段5cの出力または固定符号出力手段104の出力(固定符号)を一時バッファ101に記憶し、一時バッファ101から送信バッファ103に転送する構成としたが、例えば、データ構造がデータパーティションとなっていない場合やデータの再配列を行う必要がない場合には、可変長符号化手段5cの出力または固定符号出力手段104の出力(固定符号)を直接、送信バッファ103に入力する構成としてもよく、一時バッファ101を省略することができる(この場合、蓄積手段は送信バッファ103に相当する)。
【0193】
例えば、H.263に準拠した符号化装置の場合(データパーティションを行わない場合)、送信バッファ103から出力するビットストリームの構成は図13のようになっている。従って、MPEG4のデータパーティションの場合(図2(b)、図3(b))のように、各マクロブロックの符号を例えば、各マクロブロックに関して▲1▼mcbpc、dquantおよびDC成分、▲2▼ac_pred_flagおよびcbpy、▲3▼各ブロックの係数データのような、▲1▼〜▲3▼のカテゴリーに分割し、複数のマクロブロックの符号をカテゴリー毎にまとめて構成するようなことを行わないので、マクロブロック毎に発生した符号を並び替える必要がない。
【0194】
すなわち、可変長符号化手段5cが図13に示したようなフォーマットに従って、マクロブロックの符号を出力すれば、並び替えのための一時バッファ101は不要となる。
【0195】
図14はこのような実施の形態7である符号化装置を示すものである。同図において、1は外部入力信号を第一の入力とする減算器であり、減算器1の出力はDCT手段2、量子化器3を通して、可変長符号化手段5cの第一の入力と逆量子化器6に与えられる。
【0196】
逆量子化器6の出力は、逆DCT手段7を通して、加算器8の第一の入力に与えられる。加算器8の出力はメモリ9の第一の入力に与えられ、メモリ9の出力は予測画像作成手段10の第一の入力と動き検出手段11の第一の入力に与えられる。
【0197】
動き検出手段11の第二の入力には外部入力信号が与えられ、動き検出手段11の出力は予測画像作成手段10の第二の入力と動きベクトル予測器12に与えられる。予測画像作成手段10の出力は減算器1の第二の入力と加算器8の第二の入力に与えられる。
【0198】
また、動きベクトル予測器12の出力は可変長符号化手段5cの第二の入力に与えられる。
【0199】
可変長符号化手段5cの第一の出力は送信バッファ103の第一の入力に与えられ、可変長符号化手段5cの第二の出力は符号量制御手段102の入力に与えられる。
【0200】
送信バッファ103の第二の入力には固定符号出力手段104の出力(固定符号)が与えられ、送信バッファ103の第三の入力には符号量制御手段102の第一の出力が与えられる。また、符号量制御手段102の第二の出力はメモリ9の第二の入力に与えられる。
【0201】
送信バッファ103の出力はビットストリームとして出力(送信)される。
この出力(送信)されたビットストリームは、復号装置側において受信され復号処理が施される。
【0202】
次に動作について説明する。
実施の形態7は、可変長符号化手段5cおよび固定符号出力手段104が送信バッファ103に固定符号を出力する点が実施の形態6と異なる。すなわち、符号量制御手段102は、実施の形態6と同様に、可変長符号化手段5cから出力される符号の符号量に基づいて、可変長符号化手段5cの出力または固定符号出力手段104の出力(固定符号)のうち、どちらを選択するかをマクロブロック毎に判断し、選択した方が送信バッファ103に蓄積されるよう制御を行う。
【0203】
なお、上記実施の形態1ないし7においては、VOP毎の最大符号量Tmaxの設定において、送信バッファ103の読み出しレートがRであるとしたが、読み出しレートが固定レートでなく、レートが可変である場合であっても、同様にして、送信バッファ103のオーバーフローあるいはVBVバッファのアンダーフローが起こらないようにTmaxを設定することが可能である。
【0204】
上述の送信バッファ103の読み出しレートが可変である場合とは、例えば、送信する最大のレートが決められており、その最大のレートの中で送信するべき情報の種類(例えば、映像と音声のような種類)によって送信レートが割り振られているような場合に相当する。
【0205】
この場合も、図4ないし図9のフローチャートに基づいて、各マクロブロックを符号化する符号化手段の出力と、VOPの符号化タイプ毎に定められた固定符号とを選択して蓄積することにより、各VOPの符号量が最大符号量Tmax以下になるように制御することができる。
【0206】
また、上記実施の形態1ないし7においては、MPEG4のデータパーティションの場合およびH.263の場合を例にとって説明したが、データパーティションでない場合や、MPEG2の場合などにおいても、上述と同様の構成で、符号量制御を行うことができる。
【0207】
さらに、入力信号が4:2:0でない場合や、VOP(単位画像)が矩形でない場合(例えば、画面中におけるオブジェクトが取り得る任意の形状)にも適用できることは言うまでもない。
【0208】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【0209】
【発明の効果】
この発明に係る符号化装置は、単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、マクロブロック単位で外部入力信号を符号化し、符号化により生成された一以上のマクロブロックの符号から構成されるビデオパケットを出力する符号化装置であって、マクロブロック単位で外部入力信号をインター符号化、又はイントラ符号化し、インター符号化、又はイントラ符号化により生成される符号を出力する符号化手段と、単位画像における符号化がインター符号化の場合、又はイントラ符号化の場合、それぞれの符号化タイプの場合に対応する固定符号を出力する固定符号出力手段と、符号化手段から出力される符号、又は固定符号手段から出力される固定符号を蓄積する蓄積手段と、符号化手段から出力される符号、又は固定符号化出力手段から出力される固定符号のいずれか一方を選択して前記蓄積手段に蓄積させる符号の符号量を制御する符号量制御手段とを備え、符号量制御手段は、現マクロブロックの符号の符号量mb_bit、単位画像の先頭のマクロブロックから現マクロブロックの一つ前のマクロブロックまでの符号の符号量Sc、蓄積手段がオーバーフローしないように、又はVBVバッファがアンダーフローしないように設定される最大符号量Tmax、単位画像において現マクロブロックに続いて処理されるべきマクロブロック数M、符号化タイプにより決まる、各マクロブロックに対して固定符号出力手段が出力する固定符号の符号長L、単位画像において現マクロブロック以降で発生する前記ビデオパケット単位の付加的な符号の総符号量αの間の関係が、
Sc+mb_bit+M×L+α>Tmax
(ただし、α≧0)
である場合に、固定符号出力手段が出力する固定符号を選択するよう制御することとしたので、単位画像の符号量が最大符号量Tmax以下となるように制御できる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1を示すブロック図である。
【図2】 この発明の実施の形態1における一時バッファと送信バッファの状態(I−VOPの場合)を示す説明図である。
【図3】 この発明の実施の形態1における一時バッファと送信バッファの状態(P−VOPの場合)を示す説明図である。
【図4】 この発明の実施の形態1を示すフローチャート(P−VOPの場合)である。
【図5】 この発明の実施の形態1を示すフローチャート(I−VOPの場合)である。
【図6】 この発明の実施の形態2を示すフローチャート(P−VOPの場合)である。
【図7】 この発明の実施の形態2を示すフローチャート(I−VOPの場合)である。
【図8】 この発明の実施の形態3を示すフローチャートである。
【図9】 この発明の実施の形態4を示すフローチャートである。
【図10】 この発明の実施の形態5を示すブロック図である。
【図11】 この発明の実施の形態5における一時バッファの状態を示す説明図である。
【図12】 この発明の実施の形態6を示すブロック図である。
【図13】 この発明の実施の形態7における送信バッファの状態を示す説明図である。
【図14】 この発明の実施の形態7を示すブロック図である。
【図15】 従来の符号化装置を示すブロック図である。
【図16】 従来の符号化装置への入力信号を示す説明図である。
【図17】 従来の符号化装置におけるビットストリームの構成を示す説明図である。
【図18】 従来の符号化装置におけるビデオパケットの画面上の位置を示す説明図である。
【図19】 従来の符号化装置におけるDC/AC予測を示す説明図である。
【符号の説明】
5a、5b、5c 可変長符号化手段、101 一時バッファ、102 符号量制御手段、103 送信バッファ、104 固定符号出力手段。
Claims (18)
- 単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該外部入力信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成されるビデオパケットを出力する符号化装置であって、
前記マクロブロック単位で前記外部入力信号をインター符号化、又はイントラ符号化し、当該インター符号化、又はイントラ符号化により生成される符号を出力する符号化手段と、
前記単位画像における符号化がインター符号化の場合、又はイントラ符号化の場合、それぞれの符号化タイプの場合に対応する固定符号を出力する固定符号出力手段と、
前記符号化手段から出力される前記符号、又は前記固定符号手段から出力される前記固定符号を蓄積する蓄積手段と、
前記符号化手段から出力される前記符号、又は前記固定符号化出力手段から出力される前記固定符号のいずれか一方を選択して前記蓄積手段に蓄積させる符号の符号量を制御する符号量制御手段と
を備え、
前記符号量制御手段は、現マクロブロックの符号の符号量mb_bit、前記単位画像の先頭のマクロブロックから現マクロブロックの一つ前のマクロブロックまでの符号の符号量Sc、前記蓄積手段がオーバーフローしないように、又はVBVバッファがアンダーフローしないように設定される最大符号量Tmax、前記単位画像において現マクロブロックに続いて処理されるべきマクロブロック数M、前記符号化タイプにより決まる、各マクロブロックに対して前記固定符号出力手段が出力する前記固定符号の符号長L、前記単位画像において前記現マクロブロック以降で発生する前記ビデオパケット単位の付加的な符号の総符号量αの間の関係が、
Sc+mb_bit+M×L+α>Tmax
(ただし、α≧0)
である場合に、前記固定符号出力手段が出力する前記固定符号を選択するよう制御すること
を特徴とする符号化装置。 - 符号量制御手段は、
現マクロブロックの一つ前のマクロブロックにおいて、
固定符号出力手段から出力される固定符号が選択されている場合は、現マクロブロックにおいても前記固定符号出力手段から出力される前記固定符号を選択し、
前記固定符号出力手段から出力される前記固定符号が選択されていない場合は、
Sc+mb_bit+M×L+α>Tmax
なる関係の判定を行うよう制御すること
を特徴とする請求項1に記載の符号化装置。 - 符号量制御手段は、
現マクロブロックにおいて固定符号出力手段から出力される固定符号が選択されている場合、単位画像において前記現マクロブロックに続いて処理されるべきM個のマクロブロックに対しても、前記固定符号出力手段から出力される前記固定符号を選択するよう制御すること
を特徴とする請求項1又は2に記載の符号化装置。 - 固定符号出力手段から出力される固定符号は、
それぞれの符号化タイプにおいて、マクロブロックの符号の符号量として最小となる符号であること
を特徴とする請求項1から3のいずれか1項に記載の符号化装置。 - 符号量制御手段は、
Sc+mb_bit+M×L+α>Tmax
なる関係がなりたち、かつ、単位画像における符号化タイプがイントラ符号化であり、か つ、現マクロブロックの一つ前のマクロブロックにおいて符号化手段から出力される符号を選択している場合に、当該現マクロブロックから新しいビデオパケットを構成するよう制御すること
を特徴とする請求項1から4のいずれか1項に記載の符号化装置。 - 符号量制御手段は、蓄積手段がオーバーフローしないように、以下の式を満たす最大符号量Tmaxを設定すること
を特徴とする請求項1から5のいずれか1項に記載の符号化装置。
Tmax≦Bs−B
ただし、Tmaxは最大符号量、Bsは前記蓄積手段の容量、及びBは前記蓄積手段における占有量である。 - 符号量制御手段は、VBVバッファがアンダーフローしないように、以下の式を満たす最大符号量Tmaxを設定すること
を特徴とする請求項1から5のいずれか1項に記載の符号化装置。
Tmax≦vbv_bits+Rp
ここに、Rp=R/F
ただし、Tmaxは最大符号量、Rpは単位画像における蓄積手段から読み出されるビット数、Rは前記蓄積手段から読み出されるビットレート、Fは単位画像における符号化のレート、vbv_bitsは直前の単位画像における前記VBVバッファの占有量である。 - 符号量制御手段は、蓄積手段がオーバーフローしないように、かつ、VBVバッファがアンダーフローしないように、以下の式を満たす最大符号量Tmaxを設定すること
を特徴とする請求項1から5のいずれか1項に記載の符号化装置。
Tmax≦min(vbv_bits+Rp,Bs−B)
ここに、Rp=R/F
ただし、Tmaxは最大符号量、Rpは単位画像における前記蓄積手段から読み出されるビット数、Rは前記蓄積手段から読み出されるビットレート、Fは単位画像における符号化のレート、vbv_bitsは直前の単位画像における前記VBVバッファの占有量、Bsは前記蓄積手段の容量、及びBは前記蓄積手段における占有量であり、min(a,b)は、aまたはbのいずれか小さい方をその値とすることを示す。 - 蓄積手段から読み出されるビットレートRが可変であること
を特徴とする請求項7又は8に記載の符号化装置。 - 単位画像毎に入力される外部入力信号を複数のマクロブロックに分割し、当該マクロブロック単位で当該外部入力信号を符号化し、当該符号化により生成された一以上の前記マクロブロックの符号から構成されるビデオパケットを出力する符号化方法であって、
前記マクロブロック単位で前記外部入力信号をインター符号化、又はイントラ符号化し、当該インター符号化、又はイントラ符号化により生成される符号を出力する符号化ステップと、
前記単位画像における符号化がインター符号化の場合、又はイントラ符号化の場合、それぞれの符号化タイプの場合に対応する固定符号を出力する固定符号出力ステップと、
前記符号化ステップから出力される前記符号、又は前記固定符号ステップから出力される前記固定符号を蓄積する蓄積ステップと、
前記符号化ステップから出力される前記符号、又は前記固定符号化出力ステップから出力される前記固定符号のいずれか一方を選択して前記蓄積ステップにおいて蓄積させることにより、当該蓄積される符号から構成され、前記蓄積ステップから出力されるビデオパケットの符号量を制御する符号量制御ステップと
を備え、
前記符号量制御ステップは、現マクロブロックの符号の符号量mb_bit、前記単位画像の先頭のマクロブロックから現マクロブロックの一つ前のマクロブロックまでの符号 の符号量Sc、前記蓄積ステップにおいてオーバーフローが発生しないように、又はVBVバッファがアンダーフローしないように設定される最大符号量Tmax、前記単位画像を構成する現マクロブロックに続いて処理されるべきマクロブロック数M、前期符号化タイプにより決まる、各マクロブロックに対して前記固定符号出力ステップが出力する前記固定符号の符号長L、前記単位画像において前記現マクロブロック以降で発生する前記ビデオパケット単位の付加的な符号の総符号量αの間の関係が、
Sc+mb_bit+M×L+α>Tmax
(ただし、α≧0)
である場合に、前記固定符号出力ステップが出力する前記固定符号を選択するよう制御すること
を特徴とする符号化方法。 - 符号量制御ステップは、
現マクロブロックの一つ前のマクロブロックにおいて、
固定符号出力ステップから出力される固定符号が選択されている場合は、現マクロブロックにおいても前記固定符号出力ステップから出力される前記固定符号を選択し、
前記固定符号出力ステップから出力される前記固定符号が選択されていない場合は、
Sc+mb_bit+M×L+α>Tmax
なる関係の判定を行うよう制御すること
を特徴とする請求項10に記載の符号化方法。 - 符号量制御ステップは、
現マクロブロックにおいて固定符号出力ステップから出力される固定符号が選択されている場合、単位画像において前記現マクロブロックに続いて処理されるべきM個のマクロブロックに対しても、前記固定符号出力ステップから出力される前記固定符号を選択するよう制御すること
を特徴とする請求項10又は11に記載の符号化方法。 - 固定符号出力ステップから出力される固定符号は、
それぞれの符号化タイプにおいて、マクロブロックの符号の符号量として最小となる符号であること
を特徴とする請求項10から12のいずれか1項に記載の符号化方法。 - 符号量制御ステップは、
Sc+mb_bit+M×L+α>Tmax
なる関係がなりたち、かつ、単位画像における符号化タイプがイントラ符号化であり、かつ、現マクロブロックの一つ前のマクロブロックにおいて符号化ステップから出力される符号を選択している場合に、当該現マクロブロックから新しいビデオパケットを構成するよう制御すること
を特徴とする請求項10から13のいずれか1項に記載の符号化方法。 - 符号量制御ステップは、蓄積ステップにおいてオーバーフローが発生しないように、以下の式を満たす最大符号量Tmaxを設定すること
を特徴とする請求項10から14のいずれか1項に記載の符号化方法。
Tmax≦Bs−B
ただし、Tmaxは最大符号量、Bsは前記蓄積ステップの容量、及びBは前記蓄積ステップにおける占有量である。 - 符号量制御ステップは、VBVバッファがアンダーフローしないように、以下の式を満たす最大符号量Tmaxを設定すること
を特徴とする請求項10から14のいずれか1項に記載の符号化方法。
Tmax≦vbv_bits+Rp
ここに、Rp=R/F
ただし、Tmaxは最大符号量、Rpは単位画像における蓄積ステップから読み出されるビット数、Rは前記蓄積ステップから読み出されるビットレート、Fは単位画像における符号化のレート、vbv_bitsは直前の単位画像における前記VBVバッファの占 有量である。 - 符号量制御ステップは、蓄積ステップにおいてオーバーフローが発生しないように、かつ、VBVバッファがアンダーフローないように、以下の式を満たす最小符号量Tminを設定すること
以下の式を満たすように最大符号量Tmaxを設定すること
を特徴とする請求項10から14のいずれか1項に記載の符号化方法。
Tmax≦min(vbv_bits+Rp,Bs−B)
ここに、Rp=R/F
ただし、Tmaxは最大符号量、Rpは単位画像における前記蓄積ステップから読み出されるビット数、Rは前記蓄積ステップから読み出されるビットレート、Fは単位画像における符号化のレート、vbv_bitsは直前の単位画像における前記VBVバッファの占有量、Bsは前記蓄積手段の容量、及びBは前記蓄積手段における占有量であり、min(a,b)は、aまたはbのいずれか小さい方をその値とすることを示す。 - 蓄積ステップから読み出されるビットレートRが可変であること
を特徴とする請求項16又は17に記載の符号化方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001076059A JP3669281B2 (ja) | 2000-04-27 | 2001-03-16 | 符号化装置および符号化方法 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000-127291 | 2000-04-27 | ||
| JP2000127291 | 2000-04-27 | ||
| JP2001076059A JP3669281B2 (ja) | 2000-04-27 | 2001-03-16 | 符号化装置および符号化方法 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2002016929A JP2002016929A (ja) | 2002-01-18 |
| JP2002016929A5 JP2002016929A5 (ja) | 2005-04-14 |
| JP3669281B2 true JP3669281B2 (ja) | 2005-07-06 |
Family
ID=26590945
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001076059A Expired - Fee Related JP3669281B2 (ja) | 2000-04-27 | 2001-03-16 | 符号化装置および符号化方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3669281B2 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2002351389A1 (en) | 2001-12-17 | 2003-06-30 | Microsoft Corporation | Skip macroblock coding |
| US7092576B2 (en) * | 2003-09-07 | 2006-08-15 | Microsoft Corporation | Bitplane coding for macroblock field/frame coding type information |
| US8102878B2 (en) | 2005-09-29 | 2012-01-24 | Qualcomm Incorporated | Video packet shaping for video telephony |
| US8548048B2 (en) * | 2005-10-27 | 2013-10-01 | Qualcomm Incorporated | Video source rate control for video telephony |
| US8842555B2 (en) | 2005-10-21 | 2014-09-23 | Qualcomm Incorporated | Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems |
| US8406309B2 (en) | 2005-10-21 | 2013-03-26 | Qualcomm Incorporated | Video rate adaptation to reverse link conditions |
| US8514711B2 (en) | 2005-10-21 | 2013-08-20 | Qualcomm Incorporated | Reverse link lower layer assisted video error control |
| JP5221562B2 (ja) | 2007-01-10 | 2013-06-26 | クゥアルコム・インコーポレイテッド | マルチメディア電話のためのコンテンツ依存およびリンク依存のコード化適応 |
| US8797850B2 (en) | 2008-01-10 | 2014-08-05 | Qualcomm Incorporated | System and method to adapt to network congestion |
| JP2014116835A (ja) | 2012-12-11 | 2014-06-26 | Toshiba Corp | 復号装置、符号化装置、復号方法、及び符号化方法 |
| US9906239B1 (en) * | 2017-06-28 | 2018-02-27 | Ati Technologies Ulc | GPU parallel huffman decoding |
-
2001
- 2001-03-16 JP JP2001076059A patent/JP3669281B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002016929A (ja) | 2002-01-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7433408B2 (en) | Encoding system and encoding method | |
| JP3662171B2 (ja) | 符号化装置及び符号化方法 | |
| KR100495716B1 (ko) | 화상인코딩장치와방법및화상인코딩프로그램이기록된매체 | |
| US20070140348A1 (en) | Video encoding method and apparatus, and video decoding method and apparatus | |
| JPH09121358A (ja) | 画像符号化及び復号化装置と方法 | |
| JPWO2005076629A1 (ja) | 画像符号化装置及び撮像装置 | |
| JP3669281B2 (ja) | 符号化装置および符号化方法 | |
| EP0878967A2 (en) | Signal coding apparatus and method | |
| US6859877B2 (en) | Image processing apparatus and method, and computer readable memory medium storing program for executing image processing | |
| EP1879388A1 (en) | Video information recording device, video information recording method, video information recording program, and recording medium containing the video information recording program | |
| JP4799547B2 (ja) | それぞれマルチマクロブロックを含む予測ピクチャおよび非予測ピクチャを使用した、ピクチャシーケンスのエンコーディング方法およびエンコーディング装置 | |
| JP4224778B2 (ja) | ストリーム変換装置および方法、符号化装置および方法、記録媒体、並びに、プログラム | |
| JP3893350B2 (ja) | 符号化データ変換装置及びその方法 | |
| JP4120934B2 (ja) | 画像処理装置および画像処理方法、記録媒体、並びに、プログラム | |
| JP2000312362A (ja) | 画像符号化方式変換装置、画像符号化方式変換方法および記録媒体 | |
| JP2000312363A (ja) | 動画像符号化方式の変換方法及びその装置 | |
| US6931069B2 (en) | Coding device and coding method | |
| JP2007235989A (ja) | 画像処理装置および画像処理方法、プログラム、並びに、記録媒体 | |
| JP2002199408A (ja) | 動画像符号化方法および動画像符号化装置 | |
| JP4718736B2 (ja) | 動画像符号化装置 | |
| JP4264535B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
| JP3669277B2 (ja) | 符号化装置および符号化方法 | |
| JPH114445A (ja) | 画像符号化装置および方法 | |
| JP3690259B2 (ja) | 動画像高速符号化装置及び動画像高速符号化方法 | |
| JP2001148852A (ja) | 画像情報変換装置及び画像情報変換方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040602 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040602 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040602 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20040622 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040707 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050322 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050404 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080422 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |