JP4264535B2 - 画像処理装置および方法、記録媒体、並びにプログラム - Google Patents

画像処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
JP4264535B2
JP4264535B2 JP2003026701A JP2003026701A JP4264535B2 JP 4264535 B2 JP4264535 B2 JP 4264535B2 JP 2003026701 A JP2003026701 A JP 2003026701A JP 2003026701 A JP2003026701 A JP 2003026701A JP 4264535 B2 JP4264535 B2 JP 4264535B2
Authority
JP
Japan
Prior art keywords
picture
vbv buffer
image
margin
bit
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
Application number
JP2003026701A
Other languages
English (en)
Other versions
JP2004241879A (ja
Inventor
恭一 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003026701A priority Critical patent/JP4264535B2/ja
Publication of JP2004241879A publication Critical patent/JP2004241879A/ja
Application granted granted Critical
Publication of JP4264535B2 publication Critical patent/JP4264535B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、画像情報をMPEG(Moving Picture Experts Group)方式で圧縮する際のVBV(Video Buffer Verifier)バッファアンダーフローを抑制できるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
近年、MPEG方式による画像圧縮伸張技術が一般に普及している。
【0003】
画像がMEPG方式で圧縮されることにより、MPEGビットストリームが生成され、その生成されたMPEGビットストリームが伝送路を介して受信側の装置に送信される。この際、MPEG方式で画像を圧縮して、送信する送信側の装置は、これから送信しようとするMPEGビットストリームが受信側の装置で、十分に再生可能なものであるか否かを監視しつつ送信している。
【0004】
より詳細には、図1で示すように、送信側の装置、すなわちエンコーダは、受信側の装置(デコーダ)がMPEGビットストリームを受信する際に使用するバッファの状態をVBVバッファにより仮想的に再現して、バッファオーバーフローやバッファアンダーフローが発生しないように監視しつつエンコードしている。
【0005】
すなわち、VBVバッファの占有量は、図2で示すように変化することになる。ここで、図2においては、縦軸がVBVバッファの占有量を示し、横軸が時間を示す。従って、図2における直線の傾きは、ビットレートを示す。VBVバッファは、その最大容量(図中のMax1)までMPEGビットストリームが入ると占有量は状態S1となる。この状態S1のVBVバッファから1ピクチャ(Iピクチャ(イントラピクチャ)、Pピクチャ(前方向予測ピクチャ)、または、Bピクチャ(双方向予測ピクチャ))分のMPEGビットストリームがデコードのために引き抜かれると、状態は、状態S1から状態S2に変化する。1ピクチャ分の発生量がVBVバッファの下限を超えない場合、デコーダは1ピクチャ分のデータを全て受け取ることができるので正常にデコードできることになる。
【0006】
続いて、時間T(= 1/フレームレート)が経過した後、VBVバッファにMPEGビットストリームが入れられると占有量は状態S3となる。ここでVBVバッファから1ピクチャ分のMPEGビットストリームが引き抜かれる場合、図中のデータ量(L1+L2)が1ピクチャ分のデータ量であるとき、状態S3においては、図中データ量L1分のデータしかVBVバッファには蓄えられておらず、状態S4で示すようにMPEGビットストリームの状態は、1ピクチャ分のMPEGビットストリームに対してデータ量L2が不足した状態となり、MPEGビットストリームが途切れてしまうことになる。このため、ストリームの受信側の装置となるデコーダでは1ピクチャ分のデコードが途中でできなくなってしまう。このように、VBVバッファにおいて、蓄えられるデータ量が、1ピクチャ分に満たない状態となり、デコードが不能になってしまう状態をVBVバッファアンダーフローと呼ぶ。
【0007】
エンコーダは、VBVバッファアンダーフローが生じないように、状態S3の時点で、1ピクチャの発生量を最大発生ビット量(MaxGenBit=L1)以内に抑えるようにストリームを制御し、VBVバッファアンダーフローが生じないようにエンコードしている。
【0008】
VBVバッファアンダーフローを生じないようにエンコードする(1ピクチャの発生量を最大発生ビット量(MaxGenBit=L1)以内に抑えるようにストリームを制御しつつエンコードする)方法の一つとして、1フレームのビット発生量を抑えるためマクロブロック(MB)単位でエンコードにより生じるパラメータを必要最小限(最少パラメータ)にして、圧縮処理(以下、最少パラメータ処理と称する)することが提案されている。この最少パラメータ処理はピクチャタイプによって異なり、Iピクチャの場合、全てのMBのDC(Direct Current)成分のみのパラメータとする処理を実行し、Bピクチャ、または、Pピクチャの場合、全てのMBをスキップドマクロブロック(skipped MB)にする処理を実行する。ここで、スキップドマクロブロックとは、各ピクチャにおける、各スライスの第1マクロブロックヘッダ(MBヘッダ)と各スライスの最終MBヘッダのみから構成されるデータである。
【0009】
また、再生画像の画質を安定させつつ、目標ビットレートで符号化できるようにするものがある(例えば、特許文献1参照)。
【0010】
【特許文献1】
特開平10−155152号公報
【0011】
【発明が解決しようとする課題】
ところが、以上のように最少パラメータ処理により、発生ビット量を最小にしても、結果として、発生するビット量は0にすることができないため、VBVバッファの占有量が、図2で示すデータ量L1以下になった場合に最少パラメータによる圧縮処理を行っても、最大発生ビット量L1以内に1ピクチャ分の発生ビット量の全てが収まり切らず、結果として、1ピクチャ分のデータに不足するデータ量L2が発生してしまう恐れがあった。
【0012】
そこで、図3で示すように、VBVバッファにマージンを設けることにより、マージン+最大発生ビット量と、VBVバッファ占有量との比較から、発生ビット量が、マージン+最大発生ビット量を超えてしまうような場合、上述のような最少パラメータによる処理を実行することにより、VBVバッファアンダーフローを回避させる方法が提案されている。
【0013】
すなわち、図4で示すように、VBVバッファの最大容量Max2(=Max1+マージン(margin))が設定される。そして、状態S1’で、最大容量Max2までMPEGビットストリームを蓄え、この状態から1ピクチャ分のデータが引き抜かれると、状態S2’に変化する。そして、再び、上述と同様に、時間Tだけ経過した後、状態S3’となったところで、再び1ピクチャ分のデータが引き抜かれるとき、VBVバッファの占有量は、マージンとなるレベルまでのデータ量L1となり、上述のように1ピクチャ分のMPEGビットストリームのデータ量に満たないため、最少パラメータによる圧縮処理が行われることになるが、この際、マージンを見込んでいるため、最少パラメータにより発生するデータ量L2がマージンにより吸収されることになるため、結果として、VBVバッファアンダーフローが発生しないことになる。
【0014】
ところで、上述のマージンの設定は、予め所定の複数の設定画像から最少パラメータを求める、いわゆる、チューニング処理により、その最少パラメータにより発生される発生ビット量を求め、最大となるものがマージンとして設定されるようにされている。しかしながら、このようなチューニング処理によるマージンの設定では、既知の複数の設定画面には含まれていない、未知の画面のMPEGビットストリームのデータ量には対応することができない恐れがあり、その未知の画像のMPEGビットストリームのデータ量により最少パラメータの発生ビット量が、マージンとして設定されていた値よりも大きくなる恐れがあり、結果として、VBVバッファアンダーフローの発生を必ずしも抑制することができないという課題があった。
【0015】
また、マージンは、チューニングに用いる画像によりばらつきが生じてしまうことになるため、必要以上にマージンを大きく設定してしまうことがあり、結果として、VBVバッファアンダーフローは抑制できるものの、設定されたVBVバッファの容量を最大限に利用することができない恐れがあった。
【0016】
本発明はこのような状況に鑑みてなされたものであり、VBVバッファを最大限に使用できるようにし、VBVバッファアンダーフローを抑制できるようにするものである。
【0017】
【課題を解決するための手段】
本発明の画像処理装置は、入力された画像のピクチャタイプを判別する判別手段と、画像ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、画像のピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、スライス数およびスライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算手段と、演算手段により演算された、ピクチャタイプ別のVBVバッファのマージンを記憶する記憶手段と、MPEG方式で画像を圧縮する圧縮手段と、圧縮手段により圧縮された画像情報の最大ビット発生量、および判別手段により判別されたピクチャタイプ別のVBVバッファのマージンの和が、 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出手段と、アンダーフロー検出手段により、VBVバッファアンダーフローが検出された場合、ピクチャタイプが I ピクチャであるとき、全てのマクロブロックを DC 成分にし、 P ピクチャ、または、 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、画像を最少パラメータで圧縮するように前記圧縮手段を制御する制御手段とを備えることを特徴とする。
【0021】
本発明の画像処理方法は、入力された画像のピクチャタイプを判別する判別ステップと、画像ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、画像のピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、スライス数およびスライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、演算ステップの処理で演算された、ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、MPEG方式で画像を圧縮する圧縮ステップと、圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および判別手段により判別されたピクチャタイプ別のVBVバッファのマージンの和が、 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、アンダーフロー検出ステップの処理で、VBVバッファアンダーフローが検出された場合、ピクチャタイプが I ピクチャであるとき、全てのマクロブロックを DC 成分にし、 P ピクチャ、または、 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、画像を最少パラメータで圧縮するように圧縮ステップの処理を制御する制御ステップとを含むことを特徴とする。
【0022】
本発明の記録媒体のプログラムは、入力された画像のピクチャタイプを判別する判別ステップと、画像ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、画像のピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、スライス数およびスライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、演算ステップの処理で演算された、ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、MPEG方式で画像を圧縮する圧縮ステップと、圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および判別手段により判別されたピクチャタイプ別のVBVバッファのマージンの和が、 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、アンダーフロー検出ステップの処理で、VBVバッファアンダーフローが検出された場合、ピクチャタイプが I ピクチャであるとき、全てのマクロブロックを DC 成分にし、 P ピクチャ、または、 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、画像を最少パラメータで圧縮するように圧縮ステップの処理を制御する制御ステップとを含むことを特徴とする。
【0023】
本発明のプログラムは、入力された画像のピクチャタイプを判別する判別ステップと、画像ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、画像のピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、スライス数およびスライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、演算ステップの処理で演算された、ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、MPEG方式で画像を圧縮する圧縮ステップと、圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および判別手段により判別されたピクチャタイプ別のVBVバッファのマージンの和が、 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、アンダーフロー検出ステップの処理で、VBVバッファアンダーフローが検出された場合、ピクチャタイプが I ピクチャであるとき、全てのマクロブロックを DC 成分にし、 P ピクチャ、または、 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、画像を最少パラメータで圧縮するように圧縮ステップの処理を制御する制御ステップとを含む処理をコンピュータに実行させることを特徴とする。
【0024】
本発明の画像処理装置および方法、並びにプログラムにおいては、入力された画像のピクチャタイプが判別され、画像ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンが演算され、画像のピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、スライス数およびスライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンが演算され、演算された、ピクチャタイプ別のVBVバッファのマージンが記憶され、MPEG方式で画像が圧縮され、圧縮された画像情報の最大ビット発生量、および判別されたピクチャタイプ別のVBVバッファのマージンの和が、 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローが検出され、VBVバッファアンダーフローが検出された場合、ピクチャタイプが I ピクチャであるとき、全てのマクロブロックが DC 成分にされ、 P ピクチャ、または、 B ピクチャであるとき、全てのマクロブロックがスキップドマクロブロックにされることにより、画像が最少パラメータで圧縮されるように制御される。
【0025】
【発明の実施の形態】
図5は、本発明を適用したエンコーダの基本符号化処理部1の一実施の形態の構成を示している。
【0026】
図5のエンコーダの基本符号化処理部1は、画像データをMPEG方式で符号化し、この符号化データをエンコーダ送出バッファ2に出力する。レート制御部3は、基本符号化処理部1によって画像データをMPEG方式で符号化するときの量子化幅q_scaleを制御している。
【0027】
ここで、図6を参照して、MPEG方式の符号化処理の概略を説明する。符号化される画像データの各ピクチャは、複数のマクロブロックに分割されて符号化される。1つのマクロブロックは、輝度について、16×16画素ブロックのデータ(更に基本符号化処理単位である4つの8×8画素ブロックに分けられる)、色差について、基本符号化処理単位である2つの8×8画素ブロックのデータに分けられ、これらのブロックが符号化される。また、1つのマクロブロックにおいて、マクロブロック内のブロックの符号化方法および量子化幅等が決定される。
【0028】
スライスは、複数のマクロブロックを含むデータ単位であり、複数のスライスから1つのピクチャが構成される。ピクチャは、その符号化方法として、ピクチャ自体がそのまま符号化されるIピクチャ(イントラピクチャ)、時間的に過去のピクチャからの動きを予測した上で、符号化されるPピクチャ、時間的に過去、および、未来の両方、もしくはいずれか一方のピクチャからの動きを予測した上で、符号化されるBピクチャがある。
【0029】
図6における各I,P,Bピクチャの配置は、その典型的な例であり、最初のIピクチャを用いて3枚先のPピクチャが予測されて符号化され、その間に含まれる各Bピクチャが各I,Pピクチャの両方から予測されて符号化されている。したがって、最初にIピクチャが符号化され、次にPピクチャが符号化され、更にBピクチャが符号化されることになる。このために、本来の時間の進行に沿った各I,P,Bピクチャの順序が変更されてから、これらのピクチャが符号化されることになる。
【0030】
さらに、Iピクチャから始まる複数のピクチャからなるGOP(グループオブピクチャ)が構成され、任意の数のGOPで1つのビデオシーケンスが構成される。
【0031】
ピクチャタイプ決定部11は、入力された画像の各ピクチャのピクチャタイプを判別して決定し、符号化する順番にならび替え、並び替えた状態で走査変換部12、および、動き検出部21に出力する。また、ピクチャタイプ決定部11は、決定したピクチャタイプと共に、そのピクチャのMB(マクロブロック)数、スライス数、および、クロマフォーマットの情報をレート制御部3に出力する。
【0032】
走査変換部12は、並び替えられたピクチャを符号化される単位であるマクロブロックに変換し、これらのマクロブロックを順次減算器13に出力する。減算器13は、走査変換部12より入力されたマクロブロックと動き補償付き予測部19からの予測データとの差分を求め、この差分を予測誤差として求め、DCT(Discrete Cosine Transform)変換部14に出力する。
【0033】
DCT変換部14は、モード判定部20からのモード判定結果に基づいて、この予測誤差を8×8画素ブロック単位でDCT変換し、このDCT変換により得られた各変換係数を重み付け量子化部15に出力する。
【0034】
重み付け量子化部15は、レート制御部3より入力される量子化幅q_scaleに基づいて、各変換係数を量子化し、これにより得た量子化データを、可変長符号化部16および逆量子化部17に出力する。また、重み付け量子化部15は、レート制御部3より、最少パラメータによる符号化の指令を受信した場合、上述のように最少パラメータによる符号化処理を実行し、Iピクチャに対しては、DC成分のみを符号化し、Pピクチャ、または、Bピクチャに対しては、スキップドマクロブロックによる符号化を行い、符号化量を小さくする。
【0035】
可変長符号化部16は、モード判定部20からのモード判定結果、および、動き検出部21からの動きベクトルに基づいて、量子化データを可変長符号化して、圧縮符号化された画像データを形成し、この圧縮符号化された画像データを、所望の伝送レートで伝送するためにエンコーダ送出バッファ2に一旦蓄積させて出力する。より詳細には、可変長符号化部16は、各マクロブロックの符号化が終了する度に、MBエンドタイミング信号をレート制御部3に送出す共に、1ピクチャの符号化が開始する度に、ピクチャ開始タイミング信号をレート制御部3へ送る。
【0036】
逆量子化部17は、重み付け量子化された画像データを逆量子化して、逆DCT変換部18に出力する。逆DCT変換部18は、入力された逆量子化されている画像データを逆DCT変換し、加算器22に出力する。
【0037】
加算器22は、動き補償付き予測部19から入力される予測データと、逆DCT変換された画像データを加算して、動き補償付き予測部19に出力する。動き補償付き予測部19は、加算器22より入力される予測データが加算された、再生された画像データ、動き検出部21より入力された動きベクトル、および、モード判定部20より入力されるモード判定結果に基づいて、動きが予測されたピクチャを示す予測データを形成し、減算器13、および、加算器22に出力する。
【0038】
動き検出処理部21は、各マクロブロック毎に、画像の動きベクトルを算出し、この動きベクトルを動き補償付き予測部19に入力するとともにモード判定部20に出力する。
【0039】
モード判定部20は、動き検出部21から入力された動きベクトルに基づいて、動き補償予測モードを決定し、DCT変換部14、可変長符号化部16、および、動き補償付き予測部19に出力する。
【0040】
レート制御部3は、ピクチャタイプ決定部11より入力されてくるピクチャタイプ、MB数、スライス数、およびクロマフォーマットの情報に基づいて、上述のVBVバッファのマージンサイズを決定し、可変長符号化部16から出力されたビットストリームのビット発生量からVBVバッファアンダーフローの有無を判定すると共に、VBVバッファアンダーフロー判定結果に応じて、重み付け量子化部15に対して、上述の最少パラメータによる処理を実行するように指令を出力する。
【0041】
次に、図7のブロック図を参照して、図5のレート制御部3の詳細な構成について説明する。
【0042】
制御部41は、MBエンドタイミング信号が入力される度に、可変長符号化部16からのビットストリームに基づいて1マクロブロック当たりの実際のビット発生量を求め、VBVバッファの占有量として加算して、VBVバッファアンダーフロー判定部42に供給すると共に、VBVバッファの占有量に基づいて、各マクロブロック毎に、量子化幅q_scaleを求め、この量子化幅q_scaleを基本符号化処理部1の重みづけ量子化部処理部15に供給する。
【0043】
より詳細には、制御部41は、入力されるMBエンドタイミング信号、および、ピクチャ開始タイミング信号に基づいて、MBエンドタイミング信号の度に、MBの計数値に基づいて1マクロブロック当たりの実際のビット発生量を求め、VBVバッファの占有量として加算する。
【0044】
VBVバッファアンダーフロー判定部42は、ピクチャタイプ決定部11より入力されるピクチャタイプ、MB数、および、スライス数に基づいて、演算部43を制御して、VBVバッファの最大値を設定する際のIピクチャ、および、B、または、Pピクチャに対応するマージンを演算させマージンサイズメモリ44に記憶させる。また、VBVバッファアンダーフロー判定部42は、マージンサイズメモリ44に記憶されたマージンサイズに基づいて、VBVバッファの最大値(図4で示した最大値Max2)を設定し、制御部41により求められたVBVバッファの占有量を監視し、VBVバッファアンダーフローとなるか否かを判定する。そして、VBVバッファアンダーフロー判定部42は、その判定結果に応じて、VBVバッファアンダーフローの状態に近づくと、アンダーフロー判定結果を重み付け量子化部15に出力する。
【0045】
次に、演算部43によるマージンサイズの演算方法について説明する。
【0046】
マージンサイズは、最少パラメータを用いた圧縮方法により必ず発生する発生ビット量を設定すればよいことになる。従って、Iピクチャの場合、以下の式(1)で示す発生ビット量がマージンMargin_Ipictureとして演算されることになる。
【0047】
Margin_Ipicture=α×GB_MB+β×GB_HD+γ×GB_DC ・・・(1)
【0048】
ここで、GB_MBはチップ内のパイプライン遅延により発生するビット量を、GB_HDは、ヘッダにより発生するビット量を、さらに、GB_DCは、Iピクチャ内のDC成分により発生するビット量をそれぞれ示している。αは、制御することができずに、発生してしまうマクロブロック数(ハードウェアに依存する定数)を示している(ビット発生量を制御するCPUが1 MB毎に発生ビット量を検出するまでの時間内に発生してしまう(制御することができない)MB数)。βは、スライス数、γは、マクロブロック数をそれぞれ示している。
【0049】
一方、Bピクチャ、または、Pピクチャの場合、以下の式(2)で示す発生ビット量がマージンMargin_B/Ppictureとして演算されることになる。
【0050】
Margin_B/Ppicture=α×GB_MB+β×GB_HD+βGB_SMB ・・・(2)
【0051】
ここで、GB_SMBは、スライス内の第1MBのビット量と最終MBのビット量の和を示している。
【0052】
例えば、クロマフォーマットがa:b:cである場合、GB_MBは、以下のように求められる。
【0053】
GB_MB=(DCT係数の最大ビット量)×(a+b+c)
×(1ブロックの画素数)+(MBヘッダの発生ビット数)・・・(3)
【0054】
ここで、DCT係数の最大ビット量は、例えば、ITU-T Rec.H.262(2000E)に規定されているFirst_DCT_coeficient(非イントラブロック(インターブロック)の第1非零DCT係数)、または、Subsequent_DCT_coeficients(後続のDCT係数)の最大値である。尚、上述の最大値は、インターマクロブロックの値であるが、イントラマクロブロックの値よりは大きなものであるので、全てにおいて、その値を使用するものとしてもよい。ITU-T Rec.H.262(2000E)においては、First_DCT_coeficientが、2乃至24ビット、Subsequent_DCT_coeficients3乃至24ビットと規定されているので、24ビットとするようにしてもよい(ITU-T Rec.H.262(2000E)の第36頁6.2.6章参照)。
【0055】
1ブロックの画素数は、MPEG2においては、8画素×8画素であるので64である。
【0056】
また、MBヘッダの発生ビット量は、例えば、ITU-T Rec.H.262(2000E)で規定されるMPEG2である場合、macroblock_address_increment(現MBアドレスと前MBアドレスの差)、quantiser_scale_code(MB量子化スケールコード)、marker_bit(マーカ)、macroblock type(マクロブロックのタイプ)、spatial_temporal_weight_code(アップサンプル用の時空間重み付けコード)、frame_motion_type(フレーム構造の動き補償タイプ)、dct_type(DCTのタイプ(フレームorフィールド)、motion_vertical_field_select[0][s](予測に用いる参照フィールドの選択情報)、motion_vertical_field_select[1][s] (予測に用いる参照フィールドの選択情報)、motion_code[0][s][0](動きベクトルがmotion_vector(0, s)である場合の基本差分動きベクトル)、motion_residual[0][s][0](動きベクトルがmotion_vector(0, s)である場合の残差ベクトル)、dmvector[0](動きベクトルがmotion_vector(0, s)である場合のデュアルプライム用差分ベクトル)、motion_code[0][s][1] (動きベクトルがmotion_vector(0, s)である場合の基本差分動きベクトル)、motion_residual[0][s][1] (動きベクトルがmotion_vector(0, s)である場合の残差ベクトル)、dmvector[1] (動きベクトルがmotion_vector(0, s)である場合のデュアルプライム用差分ベクトル)、motion_code[1][s][0](動きベクトルがmotion_vector(1, s)である場合の基本差分動きベクトル)、motion_residual[1][s][0] (動きベクトルがmotion_vector(1, s)である場合の残差ベクトル)、dmvector[0](動きベクトルがmotion_vector(1, s)である場合のデュアルプライム用差分ベクトル)、motion_code[1][s][1] (動きベクトルがmotion_vector(1, s)である場合の基本差分動きベクトル)、motion_residual[1][s][1] (動きベクトルがmotion_vector(1, s)である場合の残差ベクトル)、dmvector[1] (動きベクトルがmotion_vector(1, s)である場合のデュアルプライム用差分ベクトル)、coded_block_pattern_420(コードブロックパターン)、および、coded_block_pattern_2(コードブロックパターン)といったもののそれぞれのビット量の合計である。尚、sは、0である場合、前方向予測を示し、1である場合、双方向予測を示すパラメータであるが、いずれであってもよいため、sのまま表示されている。
【0057】
ITU-T Rec.H.262(2000E)の場合、macroblock_address_increment(現MBアドレスと前MBアドレスの差)が1ビット、quantiser_scale_code(MB量子化スケールコード)が5ビット、marker_bit(マーカ)が1ビット、macroblock type(マクロブロックのタイプ)が9ビット、spatial_temporal_weight_code(アップサンプル用の時空間重み付けコード)が2ビット、frame_motion_type(フレーム構造の動き補償タイプ)が2ビット、dct_type(DCTのタイプ(フレームorフィールド)が1ビット、motion_vertical_field_select[0][s](予測に用いる参照フィールドの選択情報)が1ビット、motion_vertical_field_select[1][s] (予測に用いる参照フィールドの選択情報)が1ビット、motion_code[0][s][0](動きベクトルがmotion_vector(0, s)である場合の基本差分動きベクトル)が11ビット、motion_residual[0][s][0](動きベクトルがmotion_vector(0, s)である場合の残差ベクトル)が8ビット、dmvector[0](動きベクトルがmotion_vector(0, s)である場合のデュアルプライム用差分ベクトル)が2ビット、motion_code[0][s][1] (動きベクトルがmotion_vector(0, s)である場合の基本差分動きベクトル)が11ビット、motion_residual[0][s][1] (動きベクトルがmotion_vector(0, s)である場合の残差ベクトル)が8ビット、dmvector[1] (動きベクトルがmotion_vector(0, s)である場合のデュアルプライム用差分ベクトル)が2ビット、motion_code[1][s][0](動きベクトルがmotion_vector(1, s)である場合の基本差分動きベクトル)が11ビット、motion_residual[1][s][0] (動きベクトルがmotion_vector(1, s)である場合の残差ベクトル)が8ビット、dmvector[0](動きベクトルがmotion_vector(1, s)である場合のデュアルプライム用差分ベクトル)が2ビット、motion_code[1][s][1] (動きベクトルがmotion_vector(1, s)である場合の基本差分動きベクトル)が11ビット、motion_residual[1][s][1] (動きベクトルがmotion_vector(1, s)である場合の残差ベクトル)が11ビット、dmvector[1] (動きベクトルがmotion_vector(1, s)である場合のデュアルプライム用差分ベクトル)が2ビット、coded_block_pattern_420(コードブロックパターン)が9ビット、coded_block_pattern_2(コードブロックパターン)が6ビットにそれぞれ規定されているので、その合計である120ビットとするようにしてもよい(ITU-T Rec.H.262(2000E)の第33乃至36頁 6.2.5章参照)。
【0058】
チップ内のパイプライン遅延により発生するビット量GB_MBは、例えば、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、クロマフォーマットが4:2:0のとき、以下に示す式(4)のように求められる。
【0059】
GB_MB=24×(4+2+0)×64+120=9336(ビット)・・・(4)
【0060】
また、クロマフォーマットが4:2:2のときは、以下に示す式(5)のように求められる。
【0061】
GB_MB=24×(4+2+2)×64+120=12408(ビット)・・・(5)
【0062】
さらに、GM_HDは、ヘッダのビット量であるので、例えば、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合(Vertical_size≦1088であるものとすると)、slice_start_code(スライススタートコード+スライス垂直位置)、q_scale_code(量子化スケールコード)、および、extra_bit_slice(スライスの拡張ビット)などのの合計ビット量となる。尚、ITU-T Rec.H.262(2000E)において、slice_start_codeは32ビット、q_scale_codeは5ビット、extra_bit_sliceは1ビットに、それぞれ規定されているので、その合計ビット量である、GM_HD=38ビットがヘッダのビット量GB_MBの固定値とされるようにしてもよい(ITU-T Rec.H.262(2000E)の第32ページ 6.2.4章参照)。
【0063】
また、GB_DCは、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、クロマフォーマットがa:b:cのとき、Iピクチャであることからpicture_coding_type=I pictureとなり、motion vectorは存在しないことを前提として以下の式(6)のように定義される。
【0064】
GB_DC=macroblock_address_increment+macroblock_mode
+dct_dc_size_luminance×a
+dct_dc_diff_luminance×a
+dct_dc_size_chrominance×(b+c)
+dct_dc_diff_chrominance×(b+c)
+end_of_block×(a+b+c) ・・・(6)
【0065】
ここで、macroblock_address_incrementは、現MBアドレスと前MBアドレスの差であり、macroblock_modeは、macroblock_typeとdct_typeの和であり、それぞれ、マクロブロックの符号化タイプと、DCTタイプを示している。
【0066】
また、dct_dc_size_luminanceは、DCT輝度DC係数差分サイズを、dct_dc_diff_luminanceは、DCT輝度DC係数差分値を、dct_dc_size_ chrominanceは、DCT色差DC係数差分サイズを、dct_dc_diff_chrominanceは、DCT色差DC係数差分値を、end_of_blockは、ブロック内DCT係数終了フラグをそれぞれ示している。
【0067】
例えば、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、macroblock_address_incrementは1ビットに、macroblock_modeは2ビットに、dct_dc_size_luminanceは9ビットに、dct_dc_diff_luminanceは11ビットに、dct_dc_size_ chrominanceは10ビットに、dct_dc_diff_chrominanceは11ビットに、end_of_blockは4ビットにそれぞれ規定されている(ITU-T Rec.H.262(2000E)の第33,34,36頁 6.2.5章、6.2.5.1章、6.2.6章参照)。このため、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、クロマフォーマットが4:2:0のとき、DC成分GB_DCは、以下の式(7)のように演算される。
【0068】
GB_DC=1+2+9×4+11×4+10×2+11×2+4×6
=149 ・・・(7)
【0069】
また、クロマフォーマットが4:2:2のとき、DC成分GB_DCは、以下の式(8)のように演算される。
【0070】
GB_DC=1+2+9×4+11×4+10×4+11×4+4×8
=199 ・・・(8)
【0071】
さらに、スライス内の第1MBのビット量と最終MBのビット量の和GB_SMBは、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、以下の式(9)のように定義される。
【0072】
Figure 0004264535
【0073】
ここで、macroblock_escape_Fは第1MBのMBアドレス拡張用のビット量を、macroblock_address_increment_Fは第1MBの現MBアドレスと前MBアドレスの差を、q_scale_codeは第1MBのqスケールコードを、macroblock_type_Fは第1MBのMB符号化タイプを、frame(or field)_motion_type_Fは、フレーム構造の(または、フィールド構造の)動き補償タイプを、motion_vector_Fは、第1MBの動きベクトルのビット量を示しており、_Lが_Fに代えて付されているものは、対応するそれぞれの最終MBのビット量を示している。
【0074】
ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、macroblock_escape_Fは0ビットに、macroblock_address_increment_Fは1ビットに、q_scale_codeは5ビットに(sliceの第1MBはq_scale_codeが必要となる)、macroblock_type_Fは6ビットに(ITU-T Rec.H.262(2000E)の第122頁の Table B.2乃至B.4より、frame_motion_type_Fまたはfield_motion_type_Fは2ビットに、motion_vector_Fは3ビット(motion_vertical_field_select[0][s]、motion_code[r][s][0]、および、motion_code[r][s][1]がそれぞれ1ビットずつ)に、macroblock_escape_Lは11ビットに、macroblock_address_increment_Lは8ビットに、macroblock_type_Lは3ビットに、frame_motion_type_L、または、field_motion_type_Lは2ビットに、motion_vector_Lは3ビットに(motion_vertical_field_select[0][s]、motion_code[r][s][0]および、motion_code[r][s][1]が1ビットずつ)それぞれ、規定されている(ITU-T Rec.H.262(2000E)の第33,34頁 6.2.5章、6.2.5.1章、6.2.5.2章参照)。
【0075】
このため、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、スライス内の第1MBのビット量と最終MBのビット量の和GB_SMBは、以下の式(10)のように求められる。
【0076】
Figure 0004264535
【0077】
式(10)より、スライス内の第1MBのビット量と最終MBのビット量の和GB_SMBは、44ビットの固定値となる。
【0078】
以上をまとめると、例えば、ITU-T Rec.H.262(2000E)により規定されるMPEG2の場合、クロマフォーマットが、4:2:0、および、4:2:2であるとき、Iピクチャのマージンは、式(1)に基づいて、以下の式(11),式(12)で、それぞれ求められることになる。
【0079】
Margin_Ipicture=9336α+38β+149γ ・・・(11)
Margin_Ipicture=12408α+38β+199γ ・・・(12)
【0080】
また、同様にして、Bピクチャ、または、Pピクチャのマージンは、クロマフォーマットが、4:2:0、および、4:2:2であるとき、式(2)に基づいて、以下の式(13),式(14)で、それぞれ求められることになる。
【0081】
Figure 0004264535
【0082】
このように、マージンは、クロマフォーマットが確定すると、ハードウェアにより制御できないMB数α、スライス数β、および、MB数γに基づいて、算出することが可能となる。ここで、MB数αは、ハードウェア固有の値として設定されるため、その値は、予め設定される。
【0083】
また、演算部43は、Iピクチャ、並びに、Bピクチャ、または、Pピクチャ毎に、クロマフォーマットに対応した係数を予め内蔵するメモリに記憶しており、ピクチャタイプ決定部11より入力されるクロマフォーマットとピクチャタイプの情報に基づいてその係数を読み出すと共に、同時にピクチャタイプ決定部11より送信されてくるスライス数、および、MB数の情報に基づいて、マージンを計算し、マージンサイズメモリ44に記憶させる。
【0084】
1つのストリームにおいては、スライス数やMB数は変化しないため、演算部43は、Iピクチャ、並びに、Pピクチャ、または、Bピクチャが最初に入力されたときにのみ、マージンの計算を行ってマージンサイズメモリ44に記憶させる。VBVアンダーフロー判定部42は、上述のように演算されてサイズメモリ44に記憶されているマージンを用いてVBVアンダーフローの有無を判定する。
【0085】
次に、図8のフローチャートを参照して、レート制御部3によるVBVバッファアンダーフロー監視処理について説明する。
【0086】
ステップS1において、レート制御部3のVBVバッファアンダーフロー判定部42は、ピクチャタイプ決定部11より入力されてくるピクチャタイプ、MB数、スライス数、および、クロマフォーマットの情報を取得する。
【0087】
ステップS2において、VBVバッファアンダーフロー判定部42は、マージンサイズメモリ44に、既に、マージンサイズが演算されているか否かを判定する。このとき、VBVバッファアンダーフロー判定部42は、ステップS1において、取得したピクチャタイプのマージンサイズが既に演算されて、記憶されているか否かを判定する。
【0088】
ステップS2において、マージンサイズが演算されていないと判定された場合、ステップS3において、VBVバッファアンダーフロー判定部42は、演算部43に取得したピクチャタイプ、MB数、スライス数、および、クロマフォーマットの情報を供給し、上述の式(1)、または、式(2)の演算を実行させ、演算結果をマージンサイズメモリ44に記憶させる。
【0089】
ステップS4において、VBVバッファアンダーフロー判定部42は、入力された画像がIピクチャであるか否かを判定し、例えば、Iピクチャであると判定された場合、その処理は、ステップS5に進む。
【0090】
ステップS5において、VBVバッファアンダーフロー判定部42は、マージンサイズメモリ44に記憶されているIピクチャのマージンサイズを読み出す。
【0091】
ステップS6において、VBVバッファアンダーフロー判定部42は、VBVバッファの占有量が、引き出されるピクチャの最大発生ビット量MaxGenBitとマージンとの和よりも大きいか否かを判定し、例えば、VBVバッファの占有量が、引き出されるピクチャの最大発生ビット量MaxGenBitとマージンとの和よりも大きくない、すなわち、VBVバッファの占有量が、引き出されるピクチャの最大発生ビット量MaxGenBitとマージンとの和よりも小さいと判定された場合、その処理は、ステップS7に進む。
【0092】
ステップS7において、VBVバッファアンダーフロー判定部42は、VBVバッファアンダーフローが発生するとみなし、重み付け量子化部15に対して、最少パラメータ処理を実行するように指令する。
【0093】
ステップS8において、VBVバッファアンダーフロー判定部42は、次のピクチャが存在するか否かを判定し、次のピクチャが存在する場合、その処理は、ステップS1に戻り、次のピクチャが存在しない場合、ステップS9において、マージンサイズメモリ44をリセットして、その処理を終了する。
【0094】
また、ステップS2において、マージンサイズが演算されている、すなわち、Iピクチャが入力された場合、Iピクチャのマージンサイズが、また、Pピクチャ、または、Bピクチャのマージンサイズが入力された場合、Pピクチャ、または、Bピクチャのマージンサイズが、既に、演算されているとき、ステップS3の処理は、スキップされる。
【0095】
さらに、ステップS4において、Iピクチャではない、すなわち、Bピクチャ、または、Pピクチャであった場合、ステップS10において、VBVバッファアンダーフロー判定部42は、マージンサイズメモリ44に記憶されているBピクチャ、または、Pピクチャのマージンサイズを読み出す。
【0096】
また、ステップS6において、VBVバッファの占有量が、引き出されるピクチャの最大発生ビット量MaxGenBitとマージンとの和よりも大きいと判定された場合、ステップS7の処理はスキップされ、その処理は、ステップS8に進む。
【0097】
すなわち、以上の処理をまとめると、ステップS3により、演算部43が、Iピクチャ、もしくは、Pピクチャ、または、Bピクチャのマージンサイズを演算する。このとき、演算部43は、上述のように、クロマフォーマットに対応する係数GB_MB、GB_HD、GB_DCを予め記憶しているので、ステップS1の処理で取得されるクロマフォーマットとピクチャタイプの情報に応じて選択し、さらに、予め設定されている、発生してしまうMB数αと、ステップS1の処理で取得されたスライス数β、および、MB数γを用いて、式(1)、または、式(2)を演算してマージンサイズを演算する。
【0098】
ただし、ステップS2の処理により、マージンサイズメモリ44に記憶されたピクチャタイプのマージンサイズは、ステップS3がスキップされることにより、それ以降の処理においては、演算されないことになるので、1ストリームの処理については、ピクチャタイプ毎に1回だけ演算されることになる。
【0099】
ステップS5,S10において、ピクチャタイプ毎にマージンサイズが読み出される。そして、ステップS6において、最大発生ビット量MexGenBitと読み出されたマージンサイズの和が、VBVバッファの占有量と比較され、VBVバッファの占有量が、引き出されるピクチャの最大発生ビット量MaxGenBitとマージンの和よりも小さい場合、最少パラメータ処理がなされるように指令が出される。
【0100】
結果として、これまで、経験的に設定されていたマージンが、ストリーム毎に発生される最大のビット量として演算されて設定されることになるので、過不足のないマージン設定が可能となるため、VBVバッファを最大限利用することができ、VBVバッファのアンダーフローの発生をほぼ100%抑制することが可能となる。
【0101】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【0102】
図9は、エンコーダをソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU101は、パーソナルコンピュータの全体の動作を制御する。また、CPU101は、バス104および入出力インタフェース105を介してユーザからキーボードやマウスなどからなる入力部106から指令が入力されると、それに対応してROM(Read Only Memory)102に格納されているプログラムを実行する。あるいはまた、CPU101は、ドライブ110に接続された磁気ディスク111、光ディスク112、光磁気ディスク113、または半導体メモリ114から読み出され、記憶部108にインストールされたプログラムを、RAM(Random Access Memory)103にロードして実行する。これにより、上述したエンコーダの機能が、ソフトウェアにより実現されている。さらに、CPU101は、通信部109を制御して、外部と通信し、データの授受を実行する。
【0103】
プログラムが記録されている記録媒体は、図9に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク111(フレキシブルディスクを含む)、光ディスク112(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク113(MD(Mini-Disc)を含む)、もしくは半導体メモリ114などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM102や、記憶部108に含まれるハードディスクなどで構成される。
【0104】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0105】
【発明の効果】
本発明によれば、VBVバッファを最大限利用することができ、VBVバッファアンダーフローをほぼ100%抑制することが可能となる。
【図面の簡単な説明】
【図1】 VBVバッファを説明する図である。
【図2】 VBVバッファアンダーフローを説明する図である。
【図3】 VBVバッファのマージンを説明する図である。
【図4】 VBVバッファのマージンを説明する図である。
【図5】本発明を適用したエンコーダの構成を示すブロック図である。
【図6】図5のエンコーダによる処理を説明する図である。
【図7】図5のレート制御部の構成を示すブロック図である。
【図8】図7のレート制御部によるVBVバッファアンダーフロー監視処理を説明するフローチャートである。
【図9】媒体を説明する図である。
【符号の説明】
1 基本符号化処理部, 2 エンコーダ送出バッファ,3 レート制御部,
11 ピクチャタイプ決定部, 12 走査変換部, 14 DCT変換部,
15 重み付け量子化部, 16 可変長符号化部, 20 モード判定部,
41 制御部, 42 VBVバッファアンダーフロー判定部, 43 演算部,
44 マージンサイズメモリ

Claims (4)

  1. MPEG方式で画像を圧縮し、送信する画像処理装置において、
    入力された前記画像のピクチャタイプを判別する判別手段と、
    前記画像前記ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および前記 I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、
    前記画像の前記ピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、前記所定の定数および前記パイプライン遅延により発生するビット量、前記スライス数およびヘッダにより発生するビット量、並びに、前記スライス数および前記スライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算手段と、
    前記演算手段により演算された、前記ピクチャタイプ別のVBVバッファのマージンを記憶する記憶手段と、
    MPEG方式で前記画像を圧縮する圧縮手段と、
    前記圧縮手段により圧縮された画像情報の最大ビット発生量、および前記判別手段により判別されたピクチャタイプ別の前記VBVバッファのマージンの和が、前記 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出手段と、
    前記アンダーフロー検出手段により、前記VBVバッファアンダーフローが検出された場合、前記ピクチャタイプが前記 I ピクチャであるとき、全てのマクロブロックを DC 成分にし、前記 P ピクチャ、または、前記 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、前記画像を最少パラメータで圧縮するように前記圧縮手段を制御する制御手段と
    を備えることを特徴とする画像処理装置。
  2. MPEG方式で画像を圧縮し、送信する画像処理装置の画像処理方法において、
    入力された前記画像のピクチャタイプを判別する判別ステップと、
    前記画像前記ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および前記 I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、
    前記画像の前記ピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、前記所定の定数および前記パイプライン遅延により発生するビット量、前記スライス数およびヘッダにより発生するビット量、並びに、前記スライス数および前記スライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、
    前記演算ステップの処理で演算された、前記ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、
    MPEG方式で前記画像を圧縮する圧縮ステップと、
    前記圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および前記判別手段により判別されたピクチャタイプ別の前記VBVバッファのマージンの和が、前記 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、
    前記アンダーフロー検出ステップの処理で、前記VBVバッファアンダーフローが検出された場合、前記ピクチャタイプが前記 I ピクチャであるとき、全てのマクロブロックを DC 成分にし、前記 P ピクチャ、または、前記 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、前記画像を最少パラメータで圧縮するように前記圧縮ステップの処理を制御する制御ステップと
    を含むことを特徴とする画像処理方法。
  3. MPEG方式で画像を圧縮し、送信する画像処理をコンピュータに行わせるプログラムにおいて、
    入力された前記画像のピクチャタイプを判別する判別ステップと、
    前記画像前記ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および前記 I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、
    前記画像の前記ピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、前記所定の定数および前記パイプライン遅延により発生するビット量、前記スライス数およびヘッダにより発生するビット量、並びに、前記スライス数および前記スライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、
    前記演算ステップの処理で演算された、前記ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、
    MPEG方式で前記画像を圧縮する圧縮ステップと、
    前記圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および前記判別手段により判別されたピクチャタイプ別の前記VBVバッファのマージンの和が、前記 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、
    前記アンダーフロー検出ステップの処理で、前記VBVバッファアンダーフローが検出された場合、前記ピクチャタイプが前記 I ピクチャであるとき、全てのマクロブロックを DC 成分にし、前記 P ピクチャ、または、前記 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、前記画像を最少パラメータで圧縮するように前記圧縮ステップの処理を制御する制御ステップと
    を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  4. MPEG方式で画像を圧縮し、送信する画像処理をコンピュータに行わせるプログラムにおいて、
    入力された前記画像のピクチャタイプを判別する判別ステップと、
    前記画像前記ピクチャタイプが、 I ピクチャの場合、所定の定数およびパイプライン遅延により発生するビット量、スライス数およびヘッダにより発生するビット量、並びに、マクロブロック数および前記 I ピクチャ内の DC 成分により発生するビット量のそれぞれの積和によりVBVバッファのマージンを演算し、
    前記画像の前記ピクチャタイプが、 P ピクチャ、または、 B ピクチャの場合、前記所定の定数および前記パイプライン遅延により発生するビット量、前記スライス数およびヘッダにより発生するビット量、並びに、前記スライス数および前記スライス内の先頭マクロブロックと最終マクロブロックとのビット量の和のそれぞれの積和により VBV バッファのマージンを演算する演算ステップと、
    前記演算ステップの処理で演算された、前記ピクチャタイプ別のVBVバッファのマージンを記憶する記憶ステップと、
    MPEG方式で前記画像を圧縮する圧縮ステップと、
    前記圧縮ステップの処理で圧縮された画像情報の最大ビット発生量、および前記判別手段により判別されたピクチャタイプ別の前記VBVバッファのマージンの和が、前記 VBV バッファの占有量より大きいとき、VBVバッファアンダーフローを検出するアンダーフロー検出ステップと、
    前記アンダーフロー検出ステップの処理で、前記VBVバッファアンダーフローが検出された場合、前記ピクチャタイプが前記 I ピクチャであるとき、全てのマクロブロックを DC 成分にし、前記 P ピクチャ、または、前記 B ピクチャであるとき、全てのマクロブロックをスキップドマクロブロックにすることにより、前記画像を最少パラメータで圧縮するように前記圧縮ステップの処理を制御する制御ステップと
    を含む処理をコンピュータに実行させることを特徴とするプログラム。
JP2003026701A 2003-02-04 2003-02-04 画像処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP4264535B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003026701A JP4264535B2 (ja) 2003-02-04 2003-02-04 画像処理装置および方法、記録媒体、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003026701A JP4264535B2 (ja) 2003-02-04 2003-02-04 画像処理装置および方法、記録媒体、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2004241879A JP2004241879A (ja) 2004-08-26
JP4264535B2 true JP4264535B2 (ja) 2009-05-20

Family

ID=32954619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003026701A Expired - Fee Related JP4264535B2 (ja) 2003-02-04 2003-02-04 画像処理装置および方法、記録媒体、並びにプログラム

Country Status (1)

Country Link
JP (1) JP4264535B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021432B2 (en) 2013-06-06 2018-07-10 Nec Corporation Time series data encoding apparatus, method, and program, and time series data re-encoding apparatus, method, and program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140092961A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Signaling decoder picture buffer information
JP6549057B2 (ja) * 2016-03-15 2019-07-24 株式会社東芝 符号化装置および符号化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021432B2 (en) 2013-06-06 2018-07-10 Nec Corporation Time series data encoding apparatus, method, and program, and time series data re-encoding apparatus, method, and program

Also Published As

Publication number Publication date
JP2004241879A (ja) 2004-08-26

Similar Documents

Publication Publication Date Title
US9077968B2 (en) Image processing apparatus and method, and program
US8948242B2 (en) Encoding device and method and multimedia apparatus including the encoding device
JP2001169281A (ja) 動画像符号化装置、および動画像符号化方法
JP3960451B2 (ja) シーン特性検出型動画像符号化装置
US9560361B2 (en) Adaptive single-field/dual-field video encoding
JP2000244921A (ja) 映像符号化方法および装置
JP4221655B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JP3907875B2 (ja) 符号化レート制御装置及び情報符号化装置
JP4795223B2 (ja) 画像処理装置
US7965768B2 (en) Video signal encoding apparatus and computer readable medium with quantization control
JP4264535B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP2012015603A (ja) 画像処理装置及び画像映像処理方法
JP2001268575A (ja) 画像変化検出装置及び画像変化検出方法、画像符号化装置並びに画像変化検出用プログラムがコンピュータで読取可能に記録された情報記録媒体
JP4911625B2 (ja) 画像処理装置、およびそれを搭載した撮像装置
JP4769392B2 (ja) 信号処理装置
US20130077674A1 (en) Method and apparatus for encoding moving picture
JP4586340B2 (ja) 符号化装置、および、符号化方法、並びに、プログラム
JP4186543B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JPH10108197A (ja) 画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体
JP2005005862A (ja) 画像符号化装置
JP4228739B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JPH0795536A (ja) 動画像逆再生装置及び方法
JP4273386B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JP4273385B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
JP2003348588A (ja) 動画像符号化装置と映像伝送システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

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: 20090113

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090126

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees