JP4007398B2 - 量子化制御装置およびその方法 - Google Patents

量子化制御装置およびその方法 Download PDF

Info

Publication number
JP4007398B2
JP4007398B2 JP2006189589A JP2006189589A JP4007398B2 JP 4007398 B2 JP4007398 B2 JP 4007398B2 JP 2006189589 A JP2006189589 A JP 2006189589A JP 2006189589 A JP2006189589 A JP 2006189589A JP 4007398 B2 JP4007398 B2 JP 4007398B2
Authority
JP
Japan
Prior art keywords
code amount
quantization
activity
block
quantization step
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
JP2006189589A
Other languages
English (en)
Other versions
JP2006325239A (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 JP2006189589A priority Critical patent/JP4007398B2/ja
Publication of JP2006325239A publication Critical patent/JP2006325239A/ja
Application granted granted Critical
Publication of JP4007398B2 publication Critical patent/JP4007398B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

この発明は、例えばDCT(Discrete Cosine Transform) を用いた符号化に対して適用できる量子化制御装置およびその方法に関する。
MPEG(Moving Pictures Expert Group)規格に代表されるDCTを用いた画像圧縮方式では、伝送路に送出されるビットストリームが所望のレートになるように、符号量制御を行なっている。例えば量子化ステップを表す量子化インデックスを制御することによって、符号量制御がなされる。MPEG2でTM5として提案されている符号量制御では、仮想バッファの残量と、以前エンコードした際の量子化インデックスと発生符号量の関係を用いて量子化ステップをフィードバック制御している。
図1は、MPEGのレイヤー構造を示すものである。シーケンス層、GOP(Group Of
Picture)層、ピクチャ層、スライス層、マクロブロック層からなる階層構造が規定されている。より具体的には、図1に示すように、スライス層や、マクロブロック層に含まれるデータ(Qスケールと呼ぶ)で量子化ステップを変化させることによって、1フレーム等の固定期間で発生する符号量を調節している。例えば(4:2:0)のフォーマットでは、4個の輝度信号のブロックと、色信号Uの1個のブロックと、色信号Vの1個のブロックとによって、マクロブロックが構成されている。
一例として、Qスケールの値qscaleとして、Q1〜Q31の31種類が用意されている。Qスケールの番号が大きくなるにしたがって、量子化ステップが大きい値となるようにされている。第2図に示すように、量子化と総符号量の関係は、量子化ステップを大きくすると、量子化が粗くなり総符号量が少なくなる。逆に、量子化ステップを小さくすると、量子化は細かくなり総符号量が多くなる。また、量子化は離散値しかとれないため、総符号量も離散的になる。
通信等のアプリケーションでは、以前の量子化ステップと総符号量の関係を用いて、現在の平均レートに対してフィードバックをかける方式が一般的である。すなわち、現在の平均レートが目標レートよりも高めならば量子化ステップを若干粗めにして総符号量を下げ、現在の平均レートが低めならば量子化ステップを若干細かくして総符号量を増やす。このようにして平均的に目標レートを実現するように制御を行う。すなわち、細かい時間で見ると総符号量は増減するものの、長い時間で見ると平均的に総符号量を目標値とするものである。
しかしながら、編集等を前提としたVTRのようなアプリケーションでは、前述のような平均レートだけで制御すると不具合がおきてしまう。このようなアプリケーションでは、例えばフレーム毎での編集といった操作があるため、編集単位毎にその総符号量が一定量を絶対に超えないような制御が必要となる。以下、このような制御を固定長符号量制御と呼ぶことにする。
前述のフィードバック制御ではこの様な制御が困難なため、再生画像の破綻を来したり、あるいは符号量が目標値を超えないようにマージンを見込み過ぎて画質が劣化してしまうことがあった。そこで、予め異なる量子化ステップの固定量子化器を複数用いて量子化を行ない、そのときの総符号量に基づいて、量子化制御を行なうという技術が知られている。例えば、下記の特許文献1には、フィードフォワード方式の符号量制御が開示されている。
国際公開公報WO96/28937
具体的には、第2図に示される31種類のQスケールをそれぞれ持つ量子化器を設け、各量子化器で量子化された量子化DCT係数の1フレーム期間(以下では、画面の用語を適宜使用する)の総符号量をそれぞれを求め、総符号量が目標符号量を超えず、且つ目標符号量に対する差が小さいQスケールを決定する。第2図の例では、Q4がそのようなQスケールに該当する。
しかしながら、この求められた例えば31種類の量子化の時の総符号量をもとに、どのように量子化ステップを決めるのかが問題となる。Qスケールは、離散的なものであるので、ビットレートも離散的な値しかとれず細かな制御ができず、目標符号量との差が充分に小さくならない問題があった。
したがって、この発明の目的は、符号量制御において、アクティビティに応じて、目標符号量を超えないで、且つ目標符号量と総符号量との差をより小さくすることが可能な量子化制御装置およびその方法を提供することにある。
上述した課題を解決するために、この発明は、画像信号を量子化する量子化制御装置において、
画像信号の等長化単位分の複数のブロックを複数の第1の量子化ステップで量子化して発生する符号量を、第1の量子化ステップの夫々に対応して算出し、画像信号のブロック毎のアクティビティを検出し、検出したアクティビィティをブロックのそれぞれに対するアクティビティ情報として出力し、第1の量子化ステップのそれぞれとブロック毎のアクティビティ情報とを演算して、演算結果を丸め処理することによってブロック毎にアクティビティを考慮した複数の量子化ステップを決定する第1の決定手段と、
アクティビティを考慮した複数の量子化ステップにより量子化したときに、等長化単位で発生する総符号量が目標符号量を下回り、総符号量と目標符号量との差が最小となる第2の量子化ステップを、符号量情報を参照してブロック毎に決定する第2の決定手段と、
第2の量子化ステップで量子化したときの等長化単位で発生する総符号量と目標符号量との差である余剰符号量を検出し、余剰符号量に応じてしきい値を発生し、アクティビティを考慮した複数の量子化ステップの決定時における丸め処理において切捨てた値の大きさに応じて第2の量子化ステップをより小とする場合の優先度を決定し、優先度がしきい値以下と判定されたブロックに対して、第2の量子化ステップより小で、画像信号の等長化単位で発生する総符号量が目標符号量を越えないように第3の量子化ステップを決定する第3の決定手段とからなり、
第2又は第3の決定手段で決定された第3の量子化ステップで各ブロックを量子化することを特徴とする量子化制御装置である。
この発明は、画像信号を量子化する量子化制御方法において、
画像信号の等長化単位分の複数のブロックを複数の第1の量子化ステップで量子化して発生する符号量を、第1の量子化ステップの夫々に対応して算出し、画像信号のブロック毎のアクティビティを検出し、検出したアクティビィティをブロックのそれぞれに対するアクティビティ情報として出力し、第1の量子化ステップのそれぞれとブロック毎のアクティビティ情報とを演算して、演算結果を丸め処理することによってブロック毎にアクティビティを考慮した複数の量子化ステップを決定する第1の決定ステップと、
アクティビティを考慮した複数の量子化ステップにより量子化したときに、等長化単位で発生する総符号量が目標符号量を下回り、総符号量と目標符号量との差が最小となる第2の量子化ステップを、符号量情報を参照してブロック毎に決定する第2の決定ステップと、
第2の量子化ステップで量子化したときの等長化単位で発生する総符号量と目標符号量との差である余剰符号量を検出し、余剰符号量に応じてしきい値を発生し、アクティビティを考慮した複数の量子化ステップの決定時における丸め処理において切捨てた値の大きさに応じて第2の量子化ステップをより小とする場合の優先度を決定し、優先度がしきい値以下と判定されたブロックに対して、第2の量子化ステップより小で、画像信号の等長化単位で発生する総符号量が目標符号量を越えないように第3の量子化ステップを決定する第3の決定ステップとからなり、
第2又は第3の決定ステップで決定された第3の量子化ステップで各ブロックを量子化する
ことを特徴とする量子化制御方法である。
この発明は、量子化ステップが画像の局所的性質により可変されるので、復号画像の画質を向上することができる。この場合、アクティビティ情報によって補正された量子化ステップを丸める時の処理に注目して、量子化ステップを変化させる場合の優先順位を定めている。さらに、余剰符号量に対応してしきい値をテーブルとして有し、テーブルを参照してしきい値を決定する。そして、しきい値より順位が高いアクティビティを持つマクロブロックの場合では、量子化ステップを一段階細かくする。このようにしてアクティビティに応じて量子化ステップを制御する場合に、余剰符号量に適応して量子化ステップを制御することが可能となる。
以下、この発明の一実施の形態について図面を参照して説明する。第3図は、この発明が適用されたエンコーダの全体的構成を示す。一例として、1フレーム、すなわち、1画面単位で総符号量が固定長になるように制御する。第3図において、参照符号1が走査変換部を示す。走査変換部1において、入力画像信号がマクロブロックに分割される。入力画像がプログレッシブ走査の場合では、そのままマクロブロックに分割され、インターレース走査の場合は、フィールド−フレーム変換してマクロブロックに分割される。MPEGでは、輝度信号に関して、4個のDCTブロックから構成される(16×16)のサイズのブロックが構成される。色差信号Cr、Cbに関して、(4:2:0)の場合、それぞれが(8×8)のブロックが構成される。これらの合計6個のDCTブロックをまとめて一つのマクロブロックが構成される。
走査変換部1においてマクロブロック化されたデータが本線系2および予測系3にそれぞれ入力される。本線系2は、参照符号4が付されたFIFO、参照符号5が付されたDCT処理部、参照符号6が付された量子化部、参照符号7が付されたVLC(Variable Length Coding) 、参照符号8が付されたバッファとからなる。
DCT処理部5では、イントラ符号化が行われ、入力画素値そのものがDCTされる。量子化部6には、予測系3においてマクロブロックmb毎に決定された第3の量子化ステップとしての量子化ステップQfinal[mb] が供給され、この量子化ステップQfinal[mb] でDCT係数が量子化される。FIFO4は、予測系3において、量子化ステップQfinal
が決定されるまでの時間を補償するための遅延素子である。
量子化部6からの量子化DCT係数がVLC部7において可変長符号化される。VLC部7の出力がバッファ8に供給される。バッファ8を介して平滑化されたビットストリームが出力される。
予測系3は、参照符号9で示すDCT処理部と、参照符号10−1,10−2,・・・,10−nで示すn個の量子化器と、参照符号11−1,11−2,・・・,11−nで示すn個の符号量検出器と、参照符号12で示すメモリと、参照符号13で示すminqq 決定部と、参照符号14で示すQfinal 決定部と、アクティビティ算出回路15とからなる。Qfinal 決定部14からの量子化ステップが上述した本線系2の量子化部6に供給される。
n個の量子化器10−1,10−2,・・・,10−nは、それぞれ異なる量子化ステップで量子化する。各量子化器で発生した量子化DCT係数が符号量検出器11−1,11−2,・・・,11−nに供給され、各マクロブロックの符号量が符号量検出器11−1,11−2,・・・,11−nからそれぞれ発生する。符号量検出器11−1,11−2,・・・,11−nは、量子化DCT係数をVLC部7と同様に可変長符号化し、可変長符号を各マクロブロックについて集計する構成とされている。このようにして求められた各マクロブロックについての各量子化の符号量情報をメモリ12に保存する。
メモリ12上では、各マクロブロックmbに対して、qscaleで量子化した符号量をLength[mb,qsca1e] といった二次元配列の形で保存する。例えば1画面内のマクロブロック数が1350個で、量子化ステップの種類が31個であれば、縦および横方向のアドレスの一方が(mb=1)から(mb=1350)までとされ、縦および横方向のアドレスの他方が(q-scaIe =1)から(q-scaIe =31)までとされ、両者で指定されるメモリ上のアドレスに各マクロブロックの符号量のデータが格納される。
メモリ12に格納された符号量情報を用いて、マクロブロック毎に1つの量子化ステップを選択しながら、1画面分を総和した時の符号量が目標符号量GEN TGT(第2図参照)を上回らずに最も近くなる様なマクロブロックに対しての量子化ステップの組合せを探す。このために、アクティビティ算出回路15が設けられ、各マクロブロックのアクティビティ情報Act(mb) が算出される。アクティビティAct(mb) がminqq 決定部13およびQfinal 決定部14に供給される。
minqq 決定部13は、参照量子化ステップQref の中で、メモリ12の内容を使用して目標符号量を超えないで、且つ目標符号量との差が最小となる参照量子化minqq を求める。参照量子化minqq がQfinal 決定部14に供給される。Qfinal 決定部14は、メモリ12の内容を使用して、後述するように、最終的なものである、Qfinal を決定するものである。
Qfinal 決定部14には、各マクロブロックmbに対応して決定された量子化ステップがQfinal[mb] という配列の形で格納される。この情報は本線系2に伝送される。本線系2の量子化部6では、各マクロブロックmbno毎に検出された量子化ステップQfinal[mb] によってそのマクロブロックのDCT係数が量子化される。
このような処理により、等長化単位例えば1画面単位の総符号量を所望の量以下にする、固定長符号量制御が実現できる。この制御において、目標符号量GEN TGTを上回らず、これに最も近くなるような量子化ステップの組合せを見つける方法が重要である。第2図の例では、Q3では、総符号量が目標符号量GEN TGTを上回り、Q4が総符号量が目標符号量GEN TGTを超えない範囲で、最も近いものである。そうであっても、Q4を適用した場合、総符号量と目標符号量GEN TGTとの間の差が存在する。この差ができる限り小さいことが望ましい。
ここで、差を小さくするために、マクロブロックのアクティビティ情報を用いて量子化ステップを変化させることが効果的である。アクティビティとは、画面内の局所的な画像の性質を表すものである。コンポーネント信号の場合では、輝度信号を使用してアクティビティが算出される。
マクロブロックのアクティビティとしては、従来から知られているように、差の絶対値の合計等いくつかのものが使用できるが、例えばアクティビティとして、下記の式1で示すようなマクロブロックを構成する複数の画素値の分散を使用できる。式1でNは、マクロブロックを構成する画素の数であり、xが画素値であり、ΣがN画素についての集計を表し、x^がマクロブロックの画素値の平均値である。
act(mb) =1/N・Σ(x−x^)2 (1)
(x^=1/N・Σx)
第4図は、このようにアクティビティを算出するアクティビティ算出回路15の構成を示す。参照符号101がマクロブロックの画素値の平均値を算出する平均値算出回路であり、参照符号102が時間合わせ用の遅延素子としてのFIFOであり、参照符号103で示す減算器によって平均値に対する各画素値の差が演算される。差が参照符号104で示す二乗器で二乗され、さらに積算器105で積算され、積算値が106で示す割算回路で割り算される。割算回路106から式1で表されるアクティビティ情報Act(mb) が発生する。
予測系3の量子化器10−1,10−2,・・・1・10−nでは、アクティビティを考慮した量子化を行なっていない。各量子化器では、Qスケールで1画面全体に渡ってDCT係数を量子化する。なお、第3図におけるアクティビティ算出回路15は、上述した第4図の構成を有するものである。
そして、1画面全部に対して適用する一定値Qref に対して、各マクロブロックに適用するアクティビティを考慮した量子化ステップQact (mb)が得られる。この量子化ステップで量子化した時のそのマクロブロックの符号量Length[mb,Qact (mb)] を使用して1画面の総符号量が求まる。次に、Qref を変えていった時の総符号量のうちで、目標符号量GEN TGTを超えないで、且つ目標符号量との差を最小とする総符号量を生じさせるQref が参照量子化minqq として、minqq 決定部13によって求められる。
かかる参照量子化min _qqを求める方法について説明する。予測系3では、上述したように、31種類のQスケールによって量子化を行ないそのときのLength[mb,qscaIe] をメモリ12上に保存している。ここでは、アクティビティが考慮されていない。この時の量子化ステップqscaIeがある参照量子化ステップQref に対して、当該マクロブロックのアクティビティを考慮した場合のものQact の場合、求められた符号量を、Qref をインデックスとして1画面に渡り累算する。この結果、1画面分の予測系の処理が終った時には、各参照量子化Qref に対して、アクティビティを考慮した画面総和の符号量が得られることになる。
レートコントロールにおいては、Qref を離散的に変化させて、目標符号量GEN TGTを超えないで目標符号量GEN TGTとの差が最小になるような参照量子化を見つける。このようにしてminqq が求められる。この処理は、Qref の総数に等しい回数の比較で済む。
以上の処理を実現するために、予測系3には、minqq 決定部13が設けられている。minqq 決定部13の一例の構成を第5図に示す。入力として与えられるデータは、そのマクロブロック(mb番目のマクロブロック)のアクティビティ情報Act(mb) と、Qスケールと、Qスケールで量子化した時の符号量Length(mb)である。minqq 決定部13は、メモリ12に対してアドレスを出力してアドレスに対応するLength(mb)を受け取るのでQスケールの値が分かる。各マクロブロックごとにAct(mb) が一つ決定され、Qスケールは、量子化器10−1,・・・,10−nによって、各マクロブロック内で異なる値を並列に適用し、各々に対するLength(mb)が計算される。アクティビティ情報Act(mb) は、アクティビティ算出回路15から供給される。符号量Length(mb)は、メモリ12から読み出されたものである。minqq 決定部13に対する入力としては、n個のQスケールに対応する符号量Length(mb)が1画面の最初のマクロブロックに関するものからその最後のマクロブロックに関するものまで順に供給される。
参照符号301で示すマッピング部に対して、Act(mb) およびQスケールが供給される。マッピング部301は、一例として下記の式2と逆の関係でもって入力されたQスケール(Qact )をQref に変換するものである。すなわち、Qスケールをアクティビティを考慮したものと仮定し、アクティビティを考慮しない値Qref をマッピング回路301が出力する。
参照量子化ステップQref に対して、アクティビティを考慮した場合の量子化ステップ(実際に使用される量子化ステップ)をQact (mb)とすると、次の式2でQact (mb)が決定される。この場合、総符号量を目標符号量以下に制御することとは無視されている。なお、参照量子化ステップQref とは、アクティビティを考慮しないで、1画面全体を量子化する量子化ステップを意味する。この一実施の形態は、画面の局所的情報としてのアクティビティを考慮するものであるので、仮想的なQref を導入し、Qref をアクティビティに応じて変更するものである。変更する割合は、Qref の値と無関係にアクティビティに応じて一定である。
act (mb)=fmap (Qref (mb),act(mb) ) (2)
ここで、関数fmap ()は、act(mb) とQref からQact (mb)を計算するためのものである。例えばMPEGのTM(Test Model)5で使用されているものを次の式3で示す。
mapTM (Qref (mb),act(mb) )
=[(2.0 ×act(mb) +Nact)/(act(mb) +2.0 ×Nact)] ×Qref (mb) (3)
ここで、Nact は、act(mb) のフレーム平均であるが、システムデイレイを考慮して、前フレームの値を用いることもある。式3において、act(mb) =Nact であれば、Qref に対して乗じられる係数kが1となる。act(mb) =0であれば、Qref に対して乗じられる係数kが0.5となる。係数kは、0.5 から2までの範囲の値をとりうる。このような関数fmap ()を用いて、Qact (mb)を算出する。本来、アクティビティ情報Act(mb) は、連続値(小数点以下の値を有する値)であるが、適当に丸めた代表値、例えば16ステップの代表値であっても画質的には十分である。
簡単な例として、1フレーム内に4個のマクロブロックが存在し、各マクロブロックのアクティビティ情報Act(mb) を考慮した量子化ステップに対する操作が( ×0.5,×1.0,×0.5,×2.0)であったとする。参照量子化Qref が例えば10の場合では、各マクロブロックに対するアクティビティを考慮した量子化Qact は、Qref に対してAct(mb) を考慮した操作を行うことで、(5,10,5,20) となる。マッピング部301は、Qact とAct(mb) とから参照量子化Qref を発生する。例えばマッピング部301に対してAct(mb) =0.5 でQact =10が供給されるときには、Qref が20であることが分かる。
マッピング部301からの参照量子化Qref がアドレス生成部302に供給される。アドレス生成部302は、Qref からメモリ303のアドレスを発生する。メモリ303は、予めフレームの先頭でクリアされる。Qref として31通りのものが用意されている時には、Qref と対応して31個のメモリ303のアドレスが存在する。1画面内のマクロブロック毎に31種類のQスケールと各Qスケールに対応したLengthがminqq 決定部13へ入力される。
あるアドレスがメモリ303に与えられると、そのアドレスに既に書かれている総符号量の途中経過の符号量がメモリ303から読み出され、加算器304にフィードバックされる。そして、加算器304にて入力Lengthと加算されたものがメモリ303の同じアドレスに書き込まれ、積算動作がなされる。したがって、1画面の全てのマクロブロックの処理が終了すると、Qref のそれぞれについての総符号量がメモリ303上に格納される。
次に、参照符号305で示すカウンタのカウント値がアドレス生成部302およびレジスタ309に供給される。このカウント値は、Qref の31通りの値に対応して例えば30,29,・・・,0とデクリメントするものである。Qref がデクリメントされるにしたがって総符号量が増大する。アドレス生成部302は、カウント値に応じてリードアドレス(すなわち、Qref )をメモリ303に与える。メモリ303からそのアドレスの総符号量が読み出され、減算器306に総符号量が供給される。
減算器306には、目標符号量GEN TGTが供給され、メモリ303から読み出された総符号量が目標符号量GEN TGTから減算される。減算器306の出力が比較器307およびレジスタ308に供給される。比較器307の出力がレジスタ308および309に対してイネーブルとして供給される。比較器307の他方の入力としてレジスタ308の出力が供給される。
比較器307は、減算器306の減算出力とレジスタ308に蓄えられているレジスタデータとを比較し、減算出力がレジスタデータより小さい場合に、レジスタ308および309が入力を取り込むイネーブルとしての比較出力を発生する。減算出力が負の場合では、比較器307がイネーブルを発生しない。したがって、Qref の全てに対応するリードアドレスを発生し終えた時点では、レジスタ308には、最小の減算出力が格納され、レジスタ309には、最小減算出力を発生したQref に対応するカウント値が格納されている。このカウント値がminqq として出力される。なお、減算出力が負となった時点で、カウンタ305のカウントを停止しても良い。
minqq 決定部13の処理について、第6図を参照してより具体的に説明する。簡単のために、量子化ステップの種類が1,2,4,8,16であり、アクティビティを考慮した量子化ステップに対する操作、すなわち、係数kが0.5,1.0,2.0 であるとする。この場合では、Qref とQact とは、第6図Aに示すような関係となる。例えばQref =2の例では、アクティビティを考慮した量子化ステップQact がQact =1,Qact =2,Qact =4となる。
今、4つのマクロブロックmb0,mb1,mb2,mb3 からなる1画面を考える。この場合には、上述した量子化ステップ(1,2,4,8,16)のそれぞれで量子化を行った場合に、各マクロブロックで発生する符号量が符号量情報としてメモリ12に保存されている。それぞれの係数kが(2.0,0.5,2.0,1.0) とする。画面内のQref を2,4,8とした場合、各マクロブロックmbn のアクティビティを考慮した量子化ステップは、第6図Bに示すものとなる。Qref =1およびQref =16の場合には、操作後の値が規定の範囲からはみ出してしまうために除外している。すなわち、該当なしとして処理する。
したがって、Qref に対する1画面の総符号量totallength(Qref ) は、符号量情報を参照して下記に示すように求まる。
totallength(2)
=Length[mb0,4] +Length[mb1,1] +Length[mb2,4] +Length[mb3,2]
totallength(4)
=Length[mb0,8] +Length[mb1,2] +Length[mb2,8] +Length[mb3,4]
totallength(8)
=Length[mb0,16]+Length[mb1,4] +Length[mb2,16]+Length[mb3,8]
第3図おける予測系3では、各マクロブロックに対して全ての量子化ステップ1,2,4,8,16によってそれぞれ量子化を行う。まず、totallength(2)、totallength(4)、totallength(8)が0に初期化される。最初のマクロブロックmb0 について、Length[mb0,1] ,Length[mb0,2] ,Length[mb0,4] ,Length[mb0,8] ,Length[mb0,16]が得られる。mb0 についての係数kが2であるので、第6図Aを参照してQact からQref の関係を求めることにより下記のように各Qref に対する符号量が分かる。
Length[mb0,1] ・・・・該当無し(Qact が1になるようなQref が存在しないという意味である。)
Length[mb0,2] ・・・・Qref =1でアクティビティを考慮した符号量
Length[mb0,4] ・・・・Qref =2でアクティビティを考慮した符号量
Length[mb0,8] ・・・・Qref =4でアクティビティを考慮した符号量
Length[mb0,16]・・・・Qref =8でアクティビティを考慮した符号量
第6図Aに示す表を参照するのがマッピング部301(第5図参照)である。マッピング部301からのQref に応じてメモリ303のアドレスを変化させて積算する。それによってマクロブロックmb0 だけでのtotallength は,下記のものとなる。
totallength(2)=Length[mb0,4]
totallength(4)=Length[mb0,8]
totallength(8)=Length[mb0,16]
マクロブロックmb1 については、係数kが0.5 であるので、第6図Aを参照して同様に符号量が分かる。
Length[mb1,1] ・・・・Qref =2でアクティビティを考慮した符号量
Length[mb1,2] ・・・・Qref =4でアクティビティを考慮した符号量
Length[mb1,4] ・・・・Qref =8でアクティビティを考慮した符号量
Length[mb1,8] ・・・・Qref =16でアクティビティを考慮した符号量
Length[mb1,16]・・・・該当無し
これによりマクロブロックmb1 までのtotallength は,下記のものとなる。
totallength(2)=Length[mb0,4] +Length[mb1,1]
totallength(4)=Length[mb0,8] +Length[mb1,2]
totallength(8)=Length[mb0,16]+Length[mb1,4]
マクロブロックmb2 については、係数kが2.0 であるので、第6図Aを参照して同様に符号量が分かる。
Length[mb2,1] ・・・・該当無し
Length[mb2,2] ・・・・Qref =1でアクティビティを考慮した符号量
Length[mb2,4] ・・・・Qref =2でアクティビティを考慮した符号量
Length[mb2,8] ・・・・Qref =4でアクティビティを考慮した符号量
Length[mb2,16]・・・・Qref =8でアクティビティを考慮した符号量
これによりマクロブロックmb2 までのtotallength は,下記のものとなる。
totallength(2)=Length[mb0,4] +Length[mb1,1] +Length[mb2,4] totallength(4)=Length[mb0,8] +Length[mb1,2) +Length[mb2,8] totallength(8)=Length[mb0,16]+Length[mb1,4] +Length[mb2,16]
となる。
マクロブロックmb3 については、係数kが1.0 であるので、第6図Aを参照して同様に符号量が分かる。
Length[mb3,1] ・・・・Qref =1でアクティビティを考慮した符号量
Length[mb3,2] ・・・・Qref =2でアクティビティを考慮した符号量
Length[mb3,4] ・・・・Qref =4でアクティビティを考慮した符号量
Length[mb3,8] ・・・・Qref =8でアクティビティを考慮した符号量
Length[mb3,16]・・・・Qref =16でアクティビティを考慮した符号量
これによりマクロブロックmb3 まで( すなわち、1画面のtotallength は,下記のものとなる。
totallength(2)
=Length[mb0,4] +Length[mb1,1] +Length[mb2,4] +Length[mb3,2]
totallength(4)
=Length[mb0,8] +Length[mb1,2] +Length[mb2,8] +Length[mb3,4]
totallength(8)
=Length[mb0,16]+Length[mb1,4] +Length[mb2,16]+Length[mb3,8]
となる。以上のようにして、2,4,8のQref に対する1画面の総符号量が求められる。
以上の処理によって、目標符号量GEN TGTを超えないで、目標符号量GEN TGTとの差が最小の参照量子化Qref がminqq として求められる。しかしながら、Qref を離散的に操作しているので、ビットレートも離散的な値しかとれず細かな制御ができないため、目標符号量GEN TGTとの差が充分に小さくならない可能性がある。そこで、量子化ステップが飛び飛びの離散値しか選ぶことができず、実際に使用できるQact (mb)が丸め等の処理を受けていることを利用して、目標符号量GEN TGTとの差をより小さくする。丸め処理を利用して細かくビットレートを調整する。
すなわち、ビットレートを若干下げたい場合には、いくつかのマクロブロックに対してQスケールを大きくして総符号量を少なくすれば良い。このとき、アクティビティを考慮した際の丸め処理によって切り捨てられた量が大きいもの、すなわち、切り上げても弊害が少なそうなものから順に切り上げるようにする。逆に、ビットレートを若干上げたい場合には、いくつかのマクロブロックに対してQスケールを小さくして総符号量を大きくすれば良い。このとき、丸め処理によって切り上げられた量が大きいものから順に切り捨てるようにする。それによって、アクティビティを考慮してQスケールを変化させた時に、本来のQスケールに対して誤差が少ないようにする。
次に例を示す。簡単のため、1画面が4個のマクロブロックによって構成されているとする。所望のビットレートを得るため各マクロブロックに対するアクティビティを考慮して連続値(小数点以下まで求められる値)の量子化ステップは、(3.2、5.9 、4.1 、10.5) とする。これを四捨五入で丸めをすると、(3、6、4、11)となる。若し、この組み合わせにより得られるビットレートが所望のものよりも高く、ビットレートを下げたい場合には、下記の順にQスケールを変化させる。()内の値は、元の連続値に対する差を示す。
3→4(0.8) 、4→5(0.9) 、6→7(1.1) 、11→12(1.5)
逆にビットレートが所望のものよりも低く、ビットレートを上げたい場合には、下記の順にする。()内の値は、元の連続値に対する差を示す。
11→10(0.5) 、6→5(0.9) 、4→3(1.1) 、3→2(1.2)
前述したminqq は、ビットレートが所望のものよりも低く、ビットレートを上げたい場合に該当し、Qスケールを小さくする処理が必要である。しかしながら、処理の順序例えば画面の上の左端のマクロブロックから順に下の右端に向かってQスケールを小さくした時には、処理の最初の部分のQスケールのみが制御され、後半の部分では、Qスケールが制御されず、画質の改善にとってそれほど有効ではない不都合が生じる。このような不都合を生じないで、アクティビティ情報に応じて量子化ステップを制御することが必要である。そのような処理を実現する方法(しきい値法と称する)について以下に説明する。
しきい値法は、目標符号量とminqq で得られる総符号量の関係からしきい値を求め、このしきい値と各マクロブロックのアクティビティを比較して量子化ステップを細かくするものである。予測系3のQfinal 決定部14は、このしきい値法によってQfinal を決定するものである。以下に詳細を述べる。
予測系3で、minqq を求めるために符号量の集計をとるのと同時に、式2を満たす量子化ステップより一つ小さいものの集計をQref をインデックスとしてとるようにする。
演算処理としては、先ず第5図の構成によってminqq を求める。この符号量をLOW
TGTと表記し、一つ小さい量子化ステップをとったときの符号量をUPR TGTと表記する。minqq 決定部13は、符号量LOW TGTをQfinal 決定部14に供給する。LOW TGTは、後述する第9図のフローチャートにおける変数total の初期値に用いられる。第2図の例では、QスケールQ4がLOW TGTであり、Q3がUPR TGTである。Qfinal 決定部14は、これらの符号量から次の式4で表す余剰符号量の比率RES CNTを計算する。
RESCNT=(GENTGT −LOWTGT) /(UPRTGT −LOWTGT) (4)
Qfinal 決定部14は、この比率RES CNTを用いて、予め作成されたルックアップテーブルからアクティビティのしきい値actthrshを求める。
また、Qfinal 決定部14は、各参照量子化Qref および各アクティビティ毎に、qscaleを変化させる順番を予め求めたテーブルを有する。第7図は、そのテーブルの一例を部分的に示す。ここで、kは、アクティビティ情報に応じて量子化ステップを操作するための係数、すなわち、式3において、Qref (mb)に乗じられる係数部分を表している。第7図では、簡単のため、係数kが5種類の離散的な値(0.5,0.75,1.0,1.5,2.0) をとりうるものとしている。
例えばQref =10の場合では、係数kを乗じた値が(5,7.5,10,15,20)となり、四捨五入で丸めた値が (5,8,10,15,20) となる。ビットレートを上げるために、丸め後の量子化から1を減算し、(4,7,9,14,19) を得る。前述したように、丸め処理によって切り上げられた量が大きいものから順に変化させる。その順位が第7図に示されている。Qref =11の場合でも、同様のテーブルが作成される。図示しない他のQref についても同様に順位が予め求められている。
また、Qfinal 決定部14は、第8図に概念的に示すような余剰符号量の比率RES
CNTに対してアクティビティ情報のしきい値actthrshを規定するルックアップテーブルを有する。余剰符号量RES CNTが大きくなるにしたがって、しきい値actthrshが段階的に大きくなるもので、その境界が実験的に定められたものである。ここでは、第1順位から第5順位までが存在するので、しきい値actthrshとしても、第1順位から第5順位までの中の一つを指定するものとされている。
しきい値actthrshは、アクティビティがそれ以下の順位のマクロブロックの量子化ステップQref を−1しても良いことを意味する。(actthrsh=1)であれば、第1順位の量子化ステップのみを−1できることを意味する。なお、ルックアップテーブルとしては、他の例が可能である。例えば余剰符号量RES CNTが非常に小さくて、量子化ステップを変化させる余地が殆ど無い場合には、そのことを示すデータをルックアップテーブル中に挿入しても良い。
しきい値よりも順位が高いアクティビティのマクロブロックは、量子化ステップを一段階小さく、すなわち、細かくしていく。そうでないものについてはそのままとする。但し、この方法では、しきい値より高い順位のアクティビティのものを全て一段階下げても、目標符号量を超えないという保証がないため、目標符号量を超える前に量子化ステップを小さくするのをやめる。したがって、目標符号量を実現したマクロブロック以降であっても、しきい値よりも順番が高いアクティビティのマクロブロックが存在する可能性がある。
第9図は、上述したしきい値法を説明するためのフローチャートである。Qfinal 決定部14は、このフローチャートで示す処理によって最終的な量子化ステップQfinal を決定する。ステップS1では、予測系3で得られた結果を使用して式4で表される余剰符号量RES CNTが計算される。ステップS2では、第8図に示すようなルックアップテーブルを参照してアクティビティのしきい値actthrshが求められる。
ステップS3では、マクロブロックのインデックスである変数mbがゼロに初期化される。ステップS4では、変数mbとマクロブロックの総数MB NUMとが比較される。mb=MB NUMであれば、全てのマクロブロックの処理が終わったことになるので、処理を終了する。そうでなければ、処理が次のステップS5に進む。
ステップS5では、マクロブロックmbのアクティビティ情報で定まる順位とactthrshの順位を比較する。actthrshよりもアクティビティ情報の順位が高ければ、qscaleを下げられる可能性があるので、ステップS6に処理が進む。そうでなければ、処理がステップS11に進む。
ステップS6では、マクロブロックmbのアクティビティ情報とminqq とからqscaleを計算する。ステップS7では、全体の符号量(total) から量子化ステップを下げていない場合のそのマクロブロックの符号量が減算され、さらに、量子化ステップを一つ下げた場合のそのマクロブロックの符号量が加算される。それによって、そのマクロブロックの量子化ステップを一つ下げた場合の総符号量(以前の符号量と比較して増加している)が求められる。この新たな総符号量が変数tmp に格納される。
ステップS8では、tmp と目標符号量GEN TGTとを比較する。tmp がGEN TGT以下であれば、量子化ステップを細かくすることができるので、処理が次のステップS9に進む。そうでなければ、処理がステップS11に進む。ステップS9では、マクロブロックmbの量子化ステップをひとつ減ずる。そして、ステップS10において、総符号量を表す変数total を更新する。ステップS11では、マクロブロックmbをインクリメントし、ステップS4に戻る。
この発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で種々の変形や応用が可能である。
例えば、DCTに限られず、ウェーブレット変換、Haar変換、K−L変換等の変換符号化に対しても、この発明を適用することができる。
また、この発明は、圧縮符号化されたデータを磁気テープに記録したり、ハードディスク、光磁気ディスクに記録する場合に対して適用できる。さらに、この発明は、圧縮付されたデータをネットワークを介して送信する場合に対しても適用できる。
さらに、マクロブロックの構造としては、(4:2:0)に限らず、(4:2:2)、(4:4:4)、(4:1:1)等の構造であっても良い。マクロブロック内に含まれるDCTブロックの個数も限定されるものではない。よりさらに、符号量を制御する等長化単位としては、1フレームに限らず、より短い期間を設定しても良い。
量子化ステップのデータを伝送する方法の一例を示す略線図である。 量子化ステップに対する1画面で発生する総符号量の変化の一例を示す略線図である。 この発明の一実施の形態の全体的構成を示すブロック図である。 アクティビティ算出回路の一例のブロック図である。 この発明の一実施の形態における量子化ステップ決定部の一例のブロック図である。 この発明の一実施の形態における量子化ステップのQref およびQact の関係を説明するための略線図である。 この発明の一実施の形態においてアクティビティ情報に応じて量子化ステップを制御する方法を説明するための略線図である。 この発明の一実施の形態において余剰符号量に応じたしきい値の関係のルックアップテーブルの一例を説明するための略線図である。 この発明の一実施の形態における量子化ステップの制御の方法を説明するためのフローチャートである。
符号の説明
2 本線系
3 予測系
6 量子化部
10−1〜10−n 量子化器
15 アクティビティ算出部

Claims (4)

  1. 画像信号を量子化する量子化制御装置において、
    上記画像信号の等長化単位分の複数のブロックを複数の第1の量子化ステップで量子化して発生する符号量を、上記第1の量子化ステップの夫々に対応して算出し、上記画像信号の上記ブロック毎のアクティビティを検出し、検出したアクティビィティを上記ブロックのそれぞれに対するアクティビティ情報として出力し、上記第1の量子化ステップのそれぞれとブロック毎の上記アクティビティ情報とを演算して、演算結果を丸め処理することによって上記ブロック毎に上記アクティビティを考慮した複数の量子化ステップを決定する第1の決定手段と、
    上記アクティビティを考慮した複数の量子化ステップにより量子化したときに、上記等長化単位で発生する総符号量が目標符号量を下回り、上記総符号量と上記目標符号量との差が最小となる第2の量子化ステップを、上記符号量情報を参照して上記ブロック毎に決定する第2の決定手段と、
    上記第2の量子化ステップで量子化したときの上記等長化単位で発生する総符号量と上記目標符号量との差である余剰符号量を検出し、上記余剰符号量に応じてしきい値を発生し、上記アクティビティを考慮した複数の量子化ステップの決定時における上記丸め処理において切捨てた値の大きさに応じて上記第2の量子化ステップをより小とする場合の優先度を決定し、上記優先度が上記しきい値以下と判定されたブロックに対して、上記第2の量子化ステップより小で、上記画像信号の上記等長化単位で発生する総符号量が上記目標符号量を越えないように第3の量子化ステップを決定する第3の決定手段とからなり、
    上記第2又は第3の決定手段で決定された上記第3の量子化ステップで各ブロックを量子化することを特徴とする量子化制御装置。
  2. 上記符号量を算出する符号量算出手段は、さらに、上記ブロックのそれぞれと上記第1の量子化ステップとで特定できるように上記算出された符号量をメモリに格納し、
    上記第2の決定手段は、上記アクティビィティ情報を考慮した複数の量子化ステップにより量子化したときの上記ブロックの符号量を上記メモリに格納されている符号量を読み出すことによって取得し、読み出された上記ブロックの符号量を合計して上記総符号量を求める
    ことを特徴とする請求項1記載の量子化制御装置。
  3. 画像信号を量子化する量子化制御方法において、
    上記画像信号の等長化単位分の複数のブロックを複数の第1の量子化ステップで量子化して発生する符号量を、上記第1の量子化ステップの夫々に対応して算出し、上記画像信号の上記ブロック毎のアクティビティを検出し、検出したアクティビィティを上記ブロックのそれぞれに対するアクティビティ情報として出力し、上記第1の量子化ステップのそれぞれとブロック毎の上記アクティビティ情報とを演算して、演算結果を丸め処理することによって上記ブロック毎に上記アクティビティを考慮した複数の量子化ステップを決定する第1の決定ステップと、
    上記アクティビティを考慮した複数の量子化ステップにより量子化したときに、上記等長化単位で発生する総符号量が目標符号量を下回り、上記総符号量と上記目標符号量との差が最小となる第2の量子化ステップを、上記符号量情報を参照して上記ブロック毎に決定する第2の決定ステップと、
    上記第2の量子化ステップで量子化したときの上記等長化単位で発生する総符号量と上記目標符号量との差である余剰符号量を検出し、上記余剰符号量に応じてしきい値を発生し、上記アクティビティを考慮した複数の量子化ステップの決定時における上記丸め処理において切捨てた値の大きさに応じて上記第2の量子化ステップをより小とする場合の優先度を決定し、上記優先度が上記しきい値以下と判定されたブロックに対して、上記第2の量子化ステップより小で、上記画像信号の上記等長化単位で発生する総符号量が上記目標符号量を越えないように第3の量子化ステップを決定する第3の決定ステップとからなり、
    上記第2又は第3の決定ステップで決定された上記第3の量子化ステップで各ブロックを量子化する
    ことを特徴とする量子化制御方法。
  4. 上記符号量を算出する符号量算出ステップは、さらに、上記ブロックのそれぞれと上記第1の量子化ステップとで特定できるように上記算出された符号量をメモリに格納し、
    上記第2の決定ステップは、上記アクティビィティ情報を考慮した複数の量子化ステップにより量子化したときの上記ブロックの符号量を上記メモリに格納されている符号量を読み出すことによって取得し、読み出された上記ブロックの符号量を合計して上記総符号量を求める
    ことを特徴とする請求項3記載の量子化制御方法。
JP2006189589A 2001-03-30 2006-07-10 量子化制御装置およびその方法 Expired - Fee Related JP4007398B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006189589A JP4007398B2 (ja) 2001-03-30 2006-07-10 量子化制御装置およびその方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001100998 2001-03-30
JP2006189589A JP4007398B2 (ja) 2001-03-30 2006-07-10 量子化制御装置およびその方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002577438A Division JP3846424B2 (ja) 2001-03-30 2002-04-01 画像信号量子化装置およびその方法

Publications (2)

Publication Number Publication Date
JP2006325239A JP2006325239A (ja) 2006-11-30
JP4007398B2 true JP4007398B2 (ja) 2007-11-14

Family

ID=37544499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006189589A Expired - Fee Related JP4007398B2 (ja) 2001-03-30 2006-07-10 量子化制御装置およびその方法

Country Status (1)

Country Link
JP (1) JP4007398B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5331024B2 (ja) 2010-02-16 2013-10-30 株式会社メガチップス 画像符号化装置及び画像変換装置

Also Published As

Publication number Publication date
JP2006325239A (ja) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4111351B2 (ja) コード化システムにおけるレート制御を最適化するための装置および方法
US7653129B2 (en) Method and apparatus for providing intra coding frame bit budget
US6658157B1 (en) Method and apparatus for converting image information
US6687296B1 (en) Apparatus and method for transforming picture information
US7065138B2 (en) Video signal quantizing apparatus and method thereof
JP2002209215A (ja) 符号量制御装置及び方法、並びに画像情報変換装置及び方法
KR20010021879A (ko) 코딩 시스템의 매크로 블록 기반 비율을 제어하기 위한장치 및 방법
JPH09322176A (ja) 符号化モード選択方法、動画像符号化装置、符号化方法、記録方法、及び伝送方法
JP4007398B2 (ja) 量子化制御装置およびその方法
JP4784618B2 (ja) 動画像符号化装置、動画像復号化装置、動画像符号化プログラム、及び動画像復号化プログラム
US7391916B2 (en) Quantization matrix adjusting method for quality improvement
JP4127006B2 (ja) 画像信号の符号化装置および符号化方法
JP3800965B2 (ja) データレート変換装置
JP2001078194A (ja) 動画像圧縮符号化制御方法および動画像圧縮符号化装置
JPH10108197A (ja) 画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体
JP2900927B2 (ja) 符号化方法及び符号化装置
JP2007020216A (ja) 符号化装置、符号化方法、フィルタ処理装置およびフィルタ処理方法
JP3652889B2 (ja) 映像符号化方法、映像符号化装置、記録媒体、及び映像通信システム
JP4359273B2 (ja) 符号化モード選択方法
JP3934772B2 (ja) 可変転送レート符号化方法および装置
JP4404232B2 (ja) 量子化方法、量子化装置、量子化ステツプ決定方法及び量子化ステツプ決定装置
JP3922581B2 (ja) 可変転送レート符号化方法および装置
JP4353928B2 (ja) データ圧縮方法、記録方法、及び伝送方法
JP4359274B2 (ja) 動画像圧縮符号化装置
JPH11196423A (ja) 画像処理装置および方法、並びに提供媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070723

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070820

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

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110907

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120907

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees