明 細 書
画像信号量子化装置およびその方法 技術分野
この発明は、 例えば D C T (Discrete Cosine Transform) を用いた 符号化に対して適用できる画像信号量子化装置およびその方法に関す る。
背景技術
MP E G (Moving Pictures Expert Group)規格に代表される D C T を用いた画像圧縮方式では、 伝送路に送出されるビッ トストリームが 所望のレートになるように、 符号量制御を行なっている。 例えば量子 化ステップを表す量子化ィンデックスを制御することによって、 符号 量制御がなされる。 MP E G 2で ΤΜ 5 として提案されている符号量 制御では、 仮想バッファの残量と、 以前エンコードした際の量子化ィ ンデックスと発生符号量の関係を用いて量子化ステップをフィードバ ック制御している。
図 1 は、 MP E Gのレイヤ一構造を示すものである。 シーケンス層 、 GO P (Group Of Picture)層、 ピクチャ層、 スライス層、 マクロブ ロック層からなる階層構造が規定されている。 より具体的には、 図 1 に示すように、 スライス層や、 マクロブロック層に含まれるデータ ( Qスケールと呼ぶ) で量子化ステップを変化させることによって、 1 フレーム等の固定期間で発生する符号量を調節している。 例えば ( 4 : 2 : 0 ) のフォーマッ トでは、 4個の輝度信号のブロックと、 色信 号 Uの 1個のブロックと、 色信号 Vの 1個のブロックとによつて、 マ クロブロックが構成されている。
一例として、 Qスケールの値 q— scaleとして、 Q 1〜Q 3 1の 3 1
種類が用意されている。 Qスケールの番号が大きくなるにしたがって 、 量子化ステップが大きい値となるようにされている。 第 2図に示す ように、 量子化と総符号量の関係は、 量子化ステップを大きくすると 、 量子化が粗くなり総符号量が少なくなる。 逆に、 量子化ステップを 小さくすると、 量子化は細かくなり総符号量が多くなる。 また、 量子 化は離散値しかとれないため、 総符号量も離散的になる。
通信等のアプリケーションでは、 以前の量子化ステップと総符号量 の関係を用いて、 現在の平均レー卜に対してフィ一ドノ ックをかける 方式が一般的である。 すなわち、 現在の平均レートが目標レートより も高めならば量子化ステップを若干粗めにして総符号量を下げ、 現在 の平均レートが低めならば量子化ステップを若干細かく して総符号量 を増やす。 このようにして平均的に目標レートを実現するように制御 を行う。 すなわち、 細かい時間で見ると総符号量は増減するものの、 長い時間で見ると平均的に総符号量を目標値とするものである。
しかしながら、 編集等を前提とした V T Rのようなアプリケーショ ンでは、 前述のような平均レートだけで制御すると不具合がおきてし まう。 このようなアプリケーショ ンでは、 例えばフレーム每での編集 といつた操作があるため、 編集単位毎にその総符号量が一定量を絶対 に超えないような制御が必要となる。 以下、 このような制御を固定長 符号量制御と呼ぶことにする。
前述のフィ一ドバック制御ではこの様な制御が困難なため、 再生画 像の破綻を来したり、 あるいは符号量が目標値を超えないようにマー ジンを見込み過ぎて画質が劣化してしまうことがあった。 そこで、 予 め異なる量子化ステップの固定量子化器を複数用いて量子化を行ない 、 そのときの総符号量に基づいて、 量子化制御を行なうという技術が 知られている。 例えば、 国際公開公報 W O 9 6 / 2 8 9 3 7には、 フ
ィ一ドフォワード方式の符号量制御が開示されている。
具体的には、 第 2図に示される 3 1種類の Qスケールをそれぞれ持 つ量子化器を設け、 各量子化器で量子化された量子化 D C T係数の 1 フレーム期間 (以下では、 画面の用語を適宜使用する) の総符号量を それぞれを求め、 総符号量が目標符号量を超えず、 且つ目標符号量に 対する差が小さい Qスケールを決定する。 第 2図の例では、 Q 4がそ のような Qスケールに該当する。
しかしながら、 この求められた例えば 3 1種類の量子化の時の総符 号量をもとに、 どのように量子化ステツプを決めるのかが問題となる 。 Qスケールは、 離散的なものであるので、 ビッ トレートも離散的な 値しかとれず細かな制御ができず、 目標符号量との差が充分に小さく ならない問題があった。
したがって、 この発明の目的は、 符号量制御において、 ァクテイ ビ ティに応じて、 目標符号量を超えないで、 且つ目標符号量と総符号量 との差をより小さくすることが可能な画像信号量子化装置およびその 方法を提供することにある。
発明の開示
請求の範囲 1の発明は、 複数のブロックによって構成される等長化 単位每に、 目標符号量内で画像信号を量子化する画像信号量子化装置 において、
画像信号を複数の異なる量子化ステップで量子化したときの、 画像 信号の等長化単位で発生する総符号量を、 複数の量子化ステップの夫 々に対応して求める総符号量検出手段 (第 3図における量子化器 1 0 一 1〜 1 0— n、 符号量検出器 1 1 一 1〜 1 1 _ n、 メモリ 1 2、 m i n— qq決定部 1 3、 第 5図におけるメモリ 3 0 3、 加算器 3 0 4 ) と、 総符号量が目標符号量を下回り、 総符号量と目標符号量との差が最
小となる量子化ステツプである第 1の量子化ステツプを複数のステツ プの中から決定する第 1 の決定手段 (第 3図における mi n_qq決定部 1 3、 第 5図における比較器 3 0 7、 レジスタ 3 0 8 ) と、
画像信号のプロック每のァクティビティを検出するァクティビティ 検出手段 (第 3図におけるアクティビティ算出回路 1 5 ) と、
第 1の量子化ステップをァクティビティに基づいてブロック每に変 化させて第 1の量子化ステツプを決定する第 の決定手段 (第 3図に おける min_qq決定部 1 3 ) と、
等長化単位分の画像信号の複数のブロックの全てを第 1の量子化ス テツプで量子化した時の符号量と総符号量との差である余剰符号量を 検出する余剰符号量検出手段 (第 3図における min一 qq決定部 1 3、 第 9図におけるステップ S 1 ) と、
アクティビティを考慮した第 2の量子化ステップの決定時における 丸めにおける誤差に応じて各ブロックの優先度を決定する優先度決定 手段 (第 3図における Q— f ina l決定部 1 4内部のテーブル) と、 優先度に応じて選択されたブロックに対して、 第 2の量子化ステツ プを変化させ、 第 3の量子化ステップを決定する第 3の決定手段 (第 3図における Q_nnal決定部 1 4 ) と、
第 2又は第 3の決定手段で決定された量子化ステップで各プロック を量子化する'量子化手段 (第 3図における量子化部 6 ) とからなるこ とを特徴とする画像信号量子化装置である。
請求の範囲 4の発明は、 複数のプロックによって構成される等長化 単位毎に、 目標符号量内で画像信号を量子化する画像信号量子化方法 において、 画像信号を複数の異なる量子化ステップで量子化したとき の、 画像信号の等長化単位で発生する総符号量を、 複数の量子化ステ ップの夫々に対応して求める総符号量検出ステップと、 総符号量が目
標符号量を下回り、 総符号量と目標符号量との差が最小となる量子化 ステップである第 1の量子化ステップを複数のステップの中から決定 する第 1の決定ステップと、 画像信号のブロック毎のァクティビティ を検出するアクティビティ検出ステップと、 第 1の量子化ステップを ァクティビティに基づいてブロック每に変化させて第 2の量子化ステ ップを決定する第 2の決定ステップと、 等長化単位分の画像信号の複 数のプロックの全てを第 1の量子化ステツプで量子化した時の符号量 と総符号量との差である余剰符号量を検出する余剰符号量検出ステツ プと、 ァクティビティを考慮した第 2の量子化ステップの決定時にお ける丸めにおける誤差に応じて各ブロックの優先度を決定する優先度 決定ステップと、 優先度に応じて選択されたブロックに対して、 第 2 の量子化ステップを変化させ、 第 3の量子化ステップを決定する第 3 の決定ステップと、 第 2又は第 3の決定手段で決定された量子化ステ ップで各プロックを量子化する量子化ステツプとからなることを特徴 とする画像信号量子化方法である。
図面の簡単な説明
第 1図は、 量子化ステツプのデータを伝送する方法の一例を示す略 線図である。
第 2図は、 量子化ステップに対する 1画面で発生する総符号量の変 化の一例を示す略線図である。
第 3図は、 この発明の一実施例の全体的構成を示すブロック図であ る。
第 4図は、 ァクティビティ算出回路の一例のブロック図である。 第 5図は、 この発明の一実施例における量子化ステツプ決定部の一 例のブロック図である。
第 6図は、 この発明の一実施例における量子化ステップの Q r e f お
よび Qact の関係を説明するための略線図である。
第 7図は、 この発明の一実施例においてァクティビティ情報に応じ て量子化ステツプを制御する方法を説明するための略線図である。 第 8図は、 この発明の一実施例において余剰符号量に応じたしきい値 の関係のルツクアツプテーブルの一例を説明するための略線図である 第 9図は、 この発明の一実施例における量子化ステツプの制御の方 法を説明するためのフローチヤ一トである。
発明を実施するための最良の形態
以下、 この発明の一実施例について図面を参照して説明する。 第 3 図は、 この発明が適用されたエンコーダの全体的構成を示す。 一例と して、 1 フレーム、 すなわち、 1画面単位で総符号量が固定長になる ように制御する。 第 3図において、 参照符号 1が走査変換部を示す。 走査変換部 1において、 入力画像信号がマクロブロックに分割される 。 入力画像がプログレッシブ走査の場合では、 そのままマクロブロッ クに分割され、 インターレース走査の場合は、 フィールド一フレーム 変換してマクロブロックに分割される。 MP E Gでは、 輝度信号に関 して、 4個の D C Tプロックから構成される ( 1 6 x 1 6 ) のサイズ のブロックが構成される。 色差信号 C r、 C bに関して、 ( 4 : 2 : 0 ) の場合、 それぞれが ( 8 X 8 ) のブロックが構成される。 これら の合計 6個の D C Tブロックをまとめて一つのマクロブ口ックが構成 される。
走査変換部 1 においてマクロプロック化されたデータが本線系 2お よび予測系 3にそれぞれ入力される。 本線系 2は、 参照符号 4が付さ れた F I F O、 参照符号 5が付された D CT処理部、 参照符号 6が付 された量子化部、 参照符号 7が付された VL C (Variable Length Cod
ing) 、 参照符号 8が付されたバッファとからなる。
D CT処理部 5では、 イン トラ符号化が行われ、 入力画素値そのも のが D CTされる。 量子化部 6には、 予測系 3においてマクロプロッ ク mb每に決定された量子化ステップ Q— f i na 1 [rob]が供給され、 この量 子化ステップ Q— final [mb]で D C T係数が量子化される。 F I F O 4 は、 予測系 3において、 量子化ステップ Q_finalが決定されるまでの 時間を補償するための遅延素子である。
量子化部 6からの量子化 D C T係数が V L C部 7において可変長符 号化される。 V L C部 7の出力がバッファ 8に供給される。 バッファ 8を介して平滑化されたビッ トスト リームが出力される。
予測系 3は、 参照符号 9で示す D CT処理部と、 参照符号 1 0— 1 , 1 0 - 2 , · · · , 1 0— nで示す n個の量子化器と、 参照符号 1 1 - 1 , 1 1 - 2 , · · · , 1 1一 nで示す n個の符号量検出器と、 参照符号 1 2で示すメモリ と、 参照符号 1 3で示す min一 qq決定部と、 参照符号 1 4で示す Q— final決定部と、 アクティビティ算出回路 1 5 とからなる。 Q— final決定部 1 4からの量子化ステップが上述した本 線系 2の量子化部 6に供給される。
n個の量子化器 1 0— 1 , 1 0— 2 , · · · , 1 0— nは、 それぞ れ異なる量子化ステップで量子化する。 各量子化器で発生した量子化 D C T係数が符号量検出器 1 1— 1, 1 1— 2, · · · , 1 1— nに 供給され、 各マクロブロックの符号量が符号量検出器 1 1一 1 , 1 1 一 2, · · · , 1 1— nからそれぞれ発生する。 符号量検出器 1 1 — 1 , 1 1 - 2 , · · · , 1 1 — nは、 量子化 D C T係数を VL C部 7 と同様に可変長符号化し、 可変長符号を各マクロブロックについて集 計する構成とされている。 このようにして求められた各マクロブロッ クについての各量子化の符号量をメモリ 1 2に保存する。
メモリ 1 2上では、 各マクロブロック mbに対して、 q— scaleで量子 化した符号量を Length [mb, q— scale]といつた二次元配列の形で保存す る。 例えば 1画面内のマクロプロック数が 1 3 5 0個で、 量子化ステ ップの種類が 3 1個であれば、 縦および横方向のアドレスの一方が ( mb = l ) から (mb = 1 3 5 0 ) までとされ、 縦および横方向のァ ドレスの他方が (q-scale= 1 ) から (q-scale= 3 1 ) までとされ、 両者で指定されるメモリ上のァドレスに各マクロブロックの符号量の デ一夕が格納される。
メモリ 1 2に格納された符号量を用いて、 マクロブロック毎に 1つ の量子化ステップを選択しながら、 1画面分を総和した時の符号量が 目標符号量 GEN— TGT (第 2図参照) を上回らずに最も近くなる 様なマク口ブロックに対しての量子化ステツプの組合せを探す。 この ために、 ァクティビティ算出回路 1 5が設けられ、 各マクロブロック のァクティビティ情報 Act (mb)が算出される。 ァクティビティ Act (mb) が min_qq決定部 1 3および Q— final決定部 1 4に供給される。
min_qq決定部 1 3は、 参照量子化ステップ Qr e fの中で、 メモリ 1 2の内容を使用して目標符号量を超えないで、 且つ目標符号量との差 が最小となる参照量子化 m i n— qqを求める。 参照量子化 m i n一 qqが Q_f i n al決定部 1 4に供給される。 Q— final決定部 1 4は、 メモリ 1 2の内 容を使用して、 後述するように、 最終的なものである、 Q— finalを決 定するものである。
Q— final決定部 1 4には、 各マクロブロック mbに対応して決定され た量子化ステップが Q_final [mb]という配列の形で格納される。 この 情報は本線系 2に伝送される。 本線系 2の量子化部 6では、 各マクロ ブロック mb— no毎に検出された量子化ステップ Q— final [mb]によって そのマクロブロックの D C T係数が量子化される。
このような処理により、 等長化単位例えば 1画面単位の総符号量を 所望の量以下にする、 固定長符号量制御が実現できる。 この制御にお いて、 目標符号量 G E N— T GTを上回らず、 これに最も近くなるよ うな量子化ステツプの組合せを見つける方法が重要である。 第 2図の 例では、 Q 3では、 総符号量が目標符号量 G E N— T G Tを上回り、 Q 4が総符号量が目標符号量 G E N— T GTを超えない範囲で、 最も 近いものである。 そうであっても、 Q 4を適用した場合、 総符号量と 目標符号量 G E N_T GTとの間の差が存在する。 この差ができる限 り小さいことが望ましい。
ここで、 差を小さくするために、 マクロブロックのアクティビティ 情報を用いて量子化ステップを変化させることが効果的である。 ァク テイビティとは、 画面内の局所的な画像の性質を表すものである。 コ ンポーネン卜信号の場合では、 輝度信号を使用してァクティビティが 算出される。
マクロブ口ックのァクテイビティとしては、 従来から知られている ように、 差の絶対値の合計等いくつかのものが使用できるが、 例えば アクティビティとして、 下記の式 1で示すようなマクロブロックを構 成する複数の画素値の分散を使用できる。 式 1で Nは、 マクロプロッ クを構成する画素の数であり、 Xが画素値であり、 ∑が N画素につい ての集計を表し、 X ~がマクロブロックの画素値の平均値である。 act(rab) = 1 /Ν · Σ ( χ - χ " ) 2 (1)
( χ ' = 1 /Ν · ∑ χ )
第 4図は、 このようにアクティ ビティを算出するアクティ ビティ算 出回路 1 5の構成を示す。 参照符号 1 0 1がマクロブロックの画素値 の平均値を算出する平均値算出回路であり、 参照符号 1 0 2が時間合 わせ用の遅延素子としての F I F 0であり、 参照符号 1 0 3で示す減
算器によつて平均値に対する各画素値の差が演算される。 差が参照符 号 1 0 4で示す二乗器で二乗され、 さらに積算器 1 0 5で積算され、 積算値が 1 0 6で示す割算回路で割り算される。 割算回路 1 0 6から 式 1で表されるァクティ ビティ情報 Act (mb)が発生する。
予測系 3の量子化器 1 0— 1, 1 0— 2 , · · · 1 · 1 0— nでは 、 アクティビティを考慮した量子化を行なっていない。 各量子化器で は、 Qスケールで 1画面全体に渡って D C T係数を量子化する。 なお 、 第 3図におけるアクティビティ算出回路 1 5は、 上述した第 4図の 構成を有するものである。
そして、 1画面全部に対して適用する一定値 CTef に対して、 各マ クロブロックに適用するァクティビティを考慮した量子化ステップ Q ac t (mb)が得られる。 この量子化ステップで量子化した時のそのマク ロブ口ックの符号量 Length [mb, Qac t (mb)]を使用して 1画面の総符 号量が求まる。 次に、 を変えていった時の総符号量のうちで、 目標符号量 G E N— TGTを超えないで、 且つ目標符号量との差を最 小とする総符号量を生じさせる Q f が参照量子化 min一 qqとして、 mi n— qq決定部 1 3によって求められる。
かかる参照量子化 min— qqを求める方法について説明する。 予測系 3 では、 上述したように、 3 1種類の Qスケールによって量子化を行な いそのときの Length[mb, q— scale]をメモリ 1 2上に保存している。 こ こでは、 アクティビティが考慮されていない。 この時の量子化ステツ プ q一 scale がある参照量子化ステップ Q f ^ f に対して、 当該マクロブ ロックのアクティビティを考慮した場合のもの Qac t の場合、 求めら れた符号量を、 Q f をインデックスとして 1画面に渡り累算する。 この結果、 1画面分の予測系の処理が終った時には、 各参照量子化 Q ref に対して、 アクティビティを考慮した画面総和の符号量が得られ
ることになる。
レートコントロールにおいては、 c ef を離散的に変化させて、 目 標符号量 GE N— TGTを超えないで目標符号量 GE N— TGTとの 差が最小になるような参照量子化を見つける。 このようにして min一 qq が求められる。 この処理は、 Q「ef の総数に等しい回数の比較で済む 以上の処理を実現するために、 予測系 3には、 min_qq決定部 1 3が 設けられている。 min— qq決定部 1 3の一例の構成を第 5図に示す。 入 力として与えられるデータは、 そのマクロブロック (nib番目のマクロ ブロッ ク) のアクティ ビティ情報 Act(mb)と、 Qスケールと、 Qスケ ールで量子化した時の符号量 Length (mb)である。 min一 qq決定部 1 3は 、 メモリ 1 2に対してァ ドレスを出力してァ ドレスに対応する Length (mb)を受け取るので Qスケールの値が分かる。 各マクロプロックごと に Act (mb)がーつ決定され、 Qスケールは、 量子化器 1 0— 1, · · . , 1 0 _nによって、 各マクロブロック内で異なる値を並列に適用 し、 各々に対する Length (mb)が計算される。 アクティ ビティ情報 Act ( mb)は、 アクティ ビティ算出回路 1 5から供給される。 符号量 Length( mb)は、 メモリ 1 2から読み出されたものである。 min— qq決定部 1 3 に対する入力としては、 n個の Qスケールに対応する符号量 Length (m b)が 1画面の最初のマクロプロックに関するものからその最後のマク ロブロックに関するものまで順に供給される。
参照符号 3 0 1で示すマッ ピング部に対して、 Act (mb)および Qス ケ一ルが供給される。 マツ ビング部 3 0 1は、 一例として下記の式 2 と逆の関係でもって入力された Qスケール (Qact ) を Qref に変換 するものである。 すなわち、 Qスケールをアクティビティを考慮した ものと仮定し、 アクティ ビティを考慮しない値 Qref をマッ ピング回
路 3 0 1が出力する。
参照量子化ステップ CTe fに対して、 ァクティビティを考慮した場 合の量子化ステップ (実際に使用される量子化ステップ) を Qact (m b)とすると、 次の式 2で Qac t (mb)が決定される。 この場合、 総符号 量を目標符号量以下に制御することとは無視されている。 なお、 参照 量子化ステップ とは、 アクティビティを考慮しないで、 1画面 全体を量子化する量子化ステップを意味する。 この一実施例は、 画面 の局所的情報としてのァクティビティを考慮するものであるので、 仮 想的な CTe f を導入し、 Qref をァクティビティに応じて変更するもの である。 変更する割合は、 crefの値と無関係にアクティ ビティに応 じて一定である。
Qact (mb) = f maP (Qref (mb), act(mb)) (2)
ここで、 関数 f maP() は、 act(mb) と Qref から Qac t (mb)を計算 するためのものである。 例えば MP E Gの TMCTest Model) 5で使用 されているものを次の式 3で示す。
f map TM (Q"^ (mb) , act (mD )
= [(2. OX act (mb) + N— act) I (act (mb) + 2.0 x N一 act) ] X Q r e f (mb ) (3)
ここで、 N— act は、 actOnb)のフレーム平均であるが、 システムデ ィレイを考慮して、 前フレームの値を用いることもある。 式 3におい て、 act(mb) act であれば、 Qre f に対して乗じられる係数 kが 1 となる。 act(mb) = 0であれば、 Q r e fに対して乗じられる係数 kが 0. 5となる。 係数 kは、 0.5から 2までの範囲の値をとりうる。 こ のような関数 f map() を用いて、 Qac t (mb)を算出する。 本来、 ァク テイビティ情報 Act (mb)は、 連続値 (小数点以下の値を有する値) で あるが、 適当に丸めた代表値、 例えば 1 6ステップの代表値であって
も画質的には十分である。
簡単な例として、 1 フレーム内に 4個のマクロブロッ クが存在し、 各マクロブロックのアクティビティ情報 Act (mb)を考慮した量子化ス テツプに対する操作が(X0.5, XI.0, X0.5, X2.0) であったとする。 参照量子化 が例えば 1 0の場合では、 各マクロブロックに対す るアクティ ビティを考慮した量子化 Qac t は、 に対して ActOnb )を考慮した操作を行うことで、 (5, 10, 5, 20)となる。 マッピング部 3 0 1は、 Qac t と Act(mb)とから参照量子化 Q f を発生する。 例え ばマッピング部 3 0 1 に対して Act(mb) =0.5 で Qac t = 1 0が供給 されるときには、 GTe f が 2 0であることが分かる。
マッピング部 3 0 1からの参照量子化 Q r e f がァ ドレス生成部 3 0 2に供給される。 ァ ドレス生成部 3 0 2は、 Qr e f からメモリ 3 0 3 のァ ドレスを発生する。 メモリ 3 0 3は、 予めフレームの先頭でクリ ァされる。 Q f として 3 1通りのものが用意されている時には、 Q ref と対応して 3 1個のメモリ 3 0 3のア ドレスが存在する。 1画面 内のマクロブロック每に 3 1種類の Qスケールと各 Qスケールに対応 した Lengthが min_qq決定部 1 3へ入力される。
あるア ドレスがメモリ 3 0 3に与えられると、 そのァ ドレスに既に 書かれている総符号量の途中経過の符号量がメモリ 3 0 3から読み出 され、 加算器 3 0 4にフィードノ ックされる。 そして、 加算器 3 0 4 にて入力 Lengthと加算されたものがメモリ 3 0 3の同じアドレスに書 き込まれ、 積算動作がなされる。 したがって、 1画面の全てのマクロ ブロックの処理が終了すると、 ςτ" のそれぞれについての総符号量 がメモリ 3 0 3上に格納される。
次に、 参照符号 3 0 5で示す力ゥンタのカウン ト値がァドレス生成 咅 Ρ 3 0 2およびレジスタ 3 0 9に供給される。 このカウント値は、 Q
r c f の 3 1通りの値に対応して例えば 3 0 , 2 9, · · · , 0 とデク リメントするものである。 Q「 e f がデクリメントされるにしたがって 総符号量が増大する。 ア ドレス生成部 3 0 2は、 カウント値に応じて リードア ドレス (すなわち、 Q r e f ) をメモリ 3 0 3に与える。 メモ リ 3 0 3からそのァドレスの総符号量が読み出され、 減算器 3 0 6に 総符号量が供給される。
減算器 3 0 6には、 目標符号量 G E N— T G Tが供給され、 メモリ 3 0 3から読み出された総符号量が目標符号量 G E N— T G Tから減 算される。 減算器 3 0 6の出力が比較器 3 0 7およびレジスタ 3 0 8 に供給される。 比較器 3 0 7の出力がレジスタ 3 0 8および 3 0 9に 対してイネ一ブルとして供給される。 比較器 3 0 7の他方の入力とし てレジスタ 3 0 8の出力が供給される。
比較器 3 0 7は、 減算器 3 0 6の減算出力とレジスタ 3 0 8に蓄え られているレジスタデータとを比較し、 減算出力がレジスタデータよ り小さい場合に、 レジスタ 3 0 8および 3 0 9が入力を取り込むイネ 一ブルとしての比較出力を発生する。 減算出力が負の場合では、 比較 器 3 0 7がィネーブルを発生しない。 したがって、 Q f の全てに対 応ずるリ―ドアドレスを発生し終えた時点では、 レジスタ 3 0 8には 、 最小の減算出力が格納され、 レジスタ 3 0 9には、 最小減算出力を 発生した Q f に対応するカウント値が格納されている。 このカウン ト値が! nin__qqとして出力される。 なお、 減算出力が負となった時点で 、 カウン夕 3 0 5のカウントを停止しても良い。
min— qq決定部 1 3の処理について、 第 6図を参照してより具体的に 説明する。 簡単のために、 量子化ステップの種類が 1 , 2, 4, 8 , 1 6であり、 ァクティビティを考慮した量子化ステップに対する操作 、 すなわち、 係数 kが 0. 5, 1. 0, 2. 0 であるとする。 この場合では、 Q
re f と 3" とは、 第 6図 Aに示すような関係となる。 例えば Qref = 2の例では、 アクティビティを考慮した量子化ステップ Qac t が Q a c t = 1, Q a o t = ^ , Q a c t = 4となる。
今、 4つのマクロブ口ック1^0,1111)1,111132,11^3からなる 1画面を考え る。 それぞれの係数 kが(2.0,0.5,2.0, 1.0)とする。 画面内の Q f を 2, 4 , 8とした場合、 各マクロブロック mbn のアクティビティを 考慮した量子化ステップは、 第 6図 Bに示すものとなる。 Qpef = 1 および Q-ef = 1 6の場合には、 操作後の値が規定の範囲からはみ出 してしまうために除外している。 すなわち、 該当なしとして処理する 。
したがって、 CTef に対する 1画面の総符号量 totaし length(CTei )は、 下記に示すものとなる。
total— length (2)
= Length [mbO, 4] + Length [mbl, 1] + Length [mb2, 4] + Length [mb3, 2] total— length(4)
= Length [mbO, 8] + Length [mbl, 2] + Length [mb2, 8] + Length [rab3, 4] totaし length (8)
= Length [mbO, 16] +Length[mbl, 4] + Length [rab2, 16] + Length [mb3, 8] 第 3図おける予測系 3では、 各マクロプロックに対して全ての量子 化ステップ 1, 2, 4, 8, 1 6によってそれぞれ量子化を行う。 ま ず、 total— length (2)、 total— length (4)、 totaし length (8)が 0に初 期化される。 最初のマクロブロック mbOについて、 Length [mbO, 1] , Le ngth[mb0, 2] , Length [mbO, 4] , Length [rabO, 8] , Length [mbO, 16]が得 られる。 mbO についての係数 kが 2であるので、 第 6図 Aを参照して Qact から Qrefの関係を求めることにより下記のように各 Qrefに対 する符号量が分かる。
Length [mbO, 1] · · · '該当無し (Qact が 1 になるような Q r e fが 存在しないという意味である。 )
Length [mbO, 2] - · · - Qref = 1でアクティ ビティを考慮した符 Length [mbO, 4] - · · - Qref = 2でアクティ ビティを考慮した符
Length [mbO, 8] - · · - Qref = 4でアクティ ビティを考慮した符
Length [mbO, 16] · · · - Qref = 8でアクティ ビティを考慮した符 号量
第 6図 Aに示す表を参照するのがマッ ピング部 3 0 1 (第 5図参照 ) である。 マツピング部 3 0 1からの Q r e f に応じてメモリ 3 0 3の 7ドレスを変化させて積算する。 それによつてマクロブロック mbO だ けでの total— lengthは, 下記のものとなる。
total_length(2) =Length[mbO, 4]
total_length(4) =Length [mbO, 8]
total一 length (8) = Length [mbO, 16]
マクロブロック mblについては、 係数 kが 0.5 であるので、 第 6図 Aを参照して同様に符号量が分かる。
Length [mbl, 1] - · · - Qref = 2でアクティ ビティを考慮した符
Length [mbl, 2] - · · - Qref = 4でアクティ ビティを考慮した符
Length [mbl, 4] · · · - Qref = 8でアクティ ビティを考慮した符 号量
Length [rabl, 8] · · · · Q f = 1 6でアクティビティを考慮した
Length [mbl, 16] · · · ·該当無し
これによりマクロブロッ ク mbl までの total一 lengthは, 下記のもの となる。
total— length (2) = Length [mbO, 4] + Length [mbl, 1]
total— length (4) = Length [mbO, 8] + Length [rabl, 2]
total_length(8) =Length[mbO, 16] +Length[mbl, 4]
マクロブロック mb2 については、 係数 kが 2.0 であるので、 第 6図 Aを参照して同様に符号量が分かる。
Length [mb2, 1] · · · ·該当無し '
Length [mb2, Δ] . . . Q-f = 1でアクティ ビティを考慮した符
Length [mb2, 4] Qref = 2でアクティビティを考慮した符 Length [mb2, 8] · Q 4でァクティビティを考慮した符 Length [mb2, 16] Q = 8でアクティ ビティを考慮した これによりマクロブロッ ク mb2 までの total— lengthは, 下言己のもの となる。
total_length(2) =Length [rabO, 4] +Length[mbl, 1] +Length[mb2, 4] total_length(4) = Length [mbO, 8] +Length[rabl, 2) + Length [mb2, 8] total— length (8) = Length [rabO, 16] + Length [rabl, 4] + Length [rab2, 1
6]
となる。
マクロブロック mb3 については、 係数 kが 1.0 であるので、 第 6図
Aを参照して同様に符号量が分かる
Length [mb3, 1] Q = 1でアクティ ビティを考慮した符
Length [mb3, 2] Q 2でアクティ ビティを考慮した符 号量
Length [rab3, 4] Q e f = 4でアクティ ビティを考慮した符
Length [mb3, 8] - ■ · - Qref = 8でアクティ ビティを考慮した符 Length [mb3, 16] · · · - Qref = 1 6でアクティ ビティを考慮し た符号量
これによりマクロプロック mb3 まで(すなわち、 1画面の totaし len gthは, 下記のものとなる。
total—length (2)
= Length [mbO, 4] +Length[rabl, 1] + Length [mb2, 4] + Length [mb3, 2] total— length (4)
= Length [mbO, 8] + Length [mbl, 2] + Length [rab2, 8] + Length [rab3, 4] total— length (8)
= Length [mbO, 16] + Length [mbl, 4] + Length [mb2, 16] + Length [mb3, 8] となる。 以上のようにして、 2 , 4, 8の Qref に対する 1画面の 総符号量が求められる。
以上の処理によって、 目標符号量 GEN— TGTを超えないで、 目 標符号量 GEN— TGTとの差が最小の参照量子化 が min一 qqと して求められる。 しかしながら、 Q f を離散的に操作しているので 、 ビッ トレートも離散的な値しかとれず細かな制御ができないため、 目標符号量 GE N _TGTとの差が充分に小さくならない可能性があ
る。 そこで、 量子化ステップが飛び飛びの離散値しか選ぶことができ ず、 実際に使用できる Q a c t (mb)が丸め等の処理を受けていることを 利用して、 目標符号量 G E N __ T G Tとの差をより小さくする。 丸め 処理を利用して細かく ビッ トレートを調整する。
すなわち、 ビッ トレートを若干下げたい場合には、 いくつかのマク ロブ口ックに対して Qスケールを大きく して総符号量を少なくすれば 良い。 このとき、 アクティビティを考慮した際の丸め処理によって切 り捨てられた量が大きいもの、 すなわち、 切り上げても弊害が少なそ うなものから順に切り上げるようにする。 逆に、 ビッ トレートを若干 上げたい場合には、 いくつかのマクロブロックに対して Qスケールを 小さく して総符号量を大きくすれば良い。 このとき、 丸め処理によつ て切り上げられた量が大きいものから順に切り捨てるようにする。 そ れによって、 アクティビティを考慮して Qスケールを変化させた時に 、 本来の Qスケールに対して誤差が少ないようにする。
次に例を示す。 簡単のため、 1画面が 4個のマクロブロックによつ て構成されているとする。 所望のビッ トレートを得るため各マクロブ ロックに対するァクティビティを考慮して連続値 (小数点以下まで求 められる値) の量子化ステップは、 (3. 2、 5. 9、 4. 1、 10. 5) とする。 これを四捨五入で丸めをすると、 ( 3、 6、 4、 1 1 ) となる。 若し 、 この組み合わせにより得られるビッ トレートが所望のものより も高 く、 ビッ トレートを下げたい場合には、 下記の順に Qスケールを変化 させる。 () 内の値は、 元の連続値に対する差を示す。
3→ 4 (0. 8)、 4→ 5 (0. 9)、 6→ 7 (1 · 1)、 1 1→ 1 2 (1. 5) 逆にビッ トレ一卜が所望のものよりも低く、 ビッ トレートを上げた い場合には、 下記の順にする。 () 内の値は、 元の連続値に対する差 を示す。
1 1→ 1 0 (0.5)、 6→ 5 (0.9)、 4→ 3 (1.1)、 3→2 (1.2) 前述した min— qqは、 ビッ トレートが所望のものよりも低く、 ビッ ト レートを上げたい場合に該当し、 Qスケールを小さくする処理が必要 である。 しかしながら、 処理の順序例えば画面の上の左端のマクロブ ロックから順に下の右端に向かって Qスケールを小さく した時には、 処理の最初の部分の Qスケールのみが制御され、 後半の部分では、 Q スケールが制御されず、 画質の改善にとつてそれほど有効ではなぃ不 都合が生じる。 このような不都合を生じないで、 アクティビティ情報 に応じて量子化ステップを制御することが必要である。 そのような処 理を実現する方法 (しきい値法と称する) について以下に説明する。
しきい値法は、 目標符号量と min— qqで得られる総符号量の関係から しきい値を求め、 このしきい値と各マクロブロックのァクティビティ を比較して量子化ステツプを細かくするものである。 予測系 3の Q— f inal決定部 1 4は、 このしきい値法によって Q_f inalを決定するもの である。 以下に詳細を述べる。
予測系 3で、 min一 qqを求めるために符号量の集計をとるのと同時に 、 式 2を満たす量子化ステップより一つ小さいものの集計を CTef を ィ ンデッ クスとしてとるようにする。
演算処理としては、 先ず第 5図の構成によって min一 qqを求める。 こ の符号量を L OW— TGTと表記し、 一つ小さい量子化ステップをと つたときの符号量を UP R— TGTと表記する。 min— qq決定部 1 3は 、 符号量 L OW_TGTを Q— final決定部 1 4に供給する。 L OW— TGTは、 後述する第 9図のフローチャートにおける変数 total の初 期値に用いられる。 第 2図の例では、 Qスケール Q 4が L OW— T G Tであり、 Q 3が UP R— T GTである。 Q— final決定部 1 4は、 こ れらの符号量から次の式 4で表す余剰符号量の比率 RE S CNTを
計算する。
RES— CNT = (GBN_TGT-LOW_TGT) / (UPR_TGT ~ LOW_TGT) (4)
Q— final決定部 1 4は、 この比率 R E S— C NTを用いて、 予め作 成されたルツクアツプテーブルからァクティビティのしきい値 act— th rsh を永める。
また、 Q_final決定部 1 4は、 各参照量子化 Q「ef および各ァクテ ィビティ毎に、 q一 scaleを変化させる順番を予め求めたテーブルを有 する。 第 7図は、 そのテーブルの一例を部分的に示す。 ここで、 kは 、 ァクティビティ情報に応じて量子化ステップを操作するための係数 、 すなわち、 式 3において、 CTef (mb)に乗じられる係数部分を表し ている。 第 7図では、 簡単のため、 係数 kが 5種類の離散的な値 (0. 5, 0.75, 1.0, 1.5,2.0) をとりうるものとしている。
例えば Qref = 1 0の場合では、 係数 kを乗じた値が(5,7.5, 10, 15 ,20)となり、 四捨五入で丸めた値が (5,8, 10, 15, 20) となる。 ビッ ト レートを上げるために、 丸め後の量子化から 1 を減算し、 (4,7,9, 14, 19) を得る。 前述したように、 丸め処理によって切り上げられた量が 大きいものから順に変化させる。 その順位が第 7図に示されている。 Qre f = 1 1の場合でも、 同様のテーブルが作成される。 図示しない 他の Q r e f についても同様に順位が予め求められている。
また、 Q_final決定部 1 4は、 第 8図に概念的に示すような余剰符 号量の比率 R E S— CNTに対してァクティビティ情報のしきい値 ac t_thrsh を規定するルックアップテーブルを有する。 余剰符号量 R E S— C NTが大きくなるにしたがって、 しきい値 act— thrsh が段階的 'に大きくなるもので、 その境界が実験的に定められたものである。 こ こでは、 第 1順位から第 5順位までが存在するので、 しきい値 act_th rsh としても、 第 1順位から第 5順位までの中の一つを指定するもの
とされている。
しきい値 act— thrsh は、 アクティ ビティがそれ以下の順位のマクロ ブロックの量子化ステツプ Q r e l" を一 1 しても良いことを意味する。 (act— thrsh - 1 ) であれば、 第 1順位の量子化ステップのみを一 1 できることを意味する。 なお、 ルッ クアップテーブルとしては、 他の 例が可能である。 例えば余剰符号量 R E S— C N Tが非常に小さくて 、 量子化ステップを変化させる余地が殆ど無い場合には、 そのことを 示すデータをルックアツプテーブル中に挿入しても良い。
しきい値よりも順位が高いアクティ ビティのマクロブロックは、 量 子化ステップを一段階小さく、 すなわち、 細かく していく。 そうでな いものについてはそのままとする。 但し、 この方法では、 しきい値よ り高い順位のアクティ ビティのものを全て一段階下げても、 目標符号 量を超えないという保証がないため、 目標符号量を超える前に量子化 ステップを小さくするのをやめる。 したがって、 目標符号量を実現し たマクロブロック以降であっても、 しきい値より も順番が高いァクテ イ ビティのマクロブロックが存在する可能性がある。
第 9図は、 上述したしきい値法を説明するためのフローチャートで ある。 Q—f inal決定部 1 4は、 このフローチャートで示す処理によつ て最終的な量子化ステップ Q_f inalを決定する。 ステップ S 1では、 予測系 3で得られた結果を使用して式 4で表される余剰符号量 R E S —C N Tが計算される。 ステップ S 2では、 第 8図に示すようなルツ クアップテーブルを参照してアクティ ビティのしきい値 act一 thrsh が 求められる。
ステップ S 3では、 マクロブ口ックのィンデックスである変数 mbが ゼ口に初期化される。 ステップ S 4では、 変数 mbとマクロブロックの 総数 M B N U Mとが比較される。 mb = M B N U Mであれば、 全て
のマクロブ口ックの処理が終わったことになるので、 処理を終了する
。 そうでなければ、 処理が次のステップ S 5に進む。
ステップ S 5では、 マクロブロッ ク mbのアクティ ビティ情報で定ま る順位と act— thrsh の順位を比較する。 act_thrsh よりもァクテイ ビ ティ情報の順位が高ければ、 q一 sea 1 eを下げられる可能性があるので 、 ステップ S 6に処理が進む。 そうでなければ、 処理がステップ S 1 1 に進む。
ステップ S 6では、 マクロブ口ッ ク mbのァクティ ビティ情報と min— qqとから q— scal eを計算する。 ステップ S 7では、 全体の符号量(tota 1)から量子化ステツプを下げていない場合のそのマクロブ口ックの符 号量が減算され、 さらに、 量子化ステップを一つ下げた場合のそのマ クロブロックの符号量が加算される。 それによつて、 そのマクロプロ ッ クの量子化ステップを一つ下げた場合の総符号量 (以前の符号量と 比較して増加している) が求められる。 この新たな総符号量が変数 tm に格納される。
ステップ S 8では、 tmp と目標符号量 G E N— T G Tとを比較する 。 tmp が G E N— T G T以下であれば、 量子化ステップを細かくする ことができるので、 処理が次のステップ S 9 に進む。 そうでなければ 、 処理がステップ S 1 1 に進む。 ステップ S 9では、 マクロプロック mbの量子化ステップをひとつ減ずる。 そして、 ステップ S 1 0におい て、 総符号量を表す変数 tota l を更新する。 ステップ S 1 1では、 マ クロブロック mbをインク リメント し、 ステップ S 4に戻る。
この発明は、 上述した実施例に限定されるものではなく、 この発明 の要旨を逸脱しない範囲内で種々の変形や応用が可能である。
例えば、 D C Tに限られず、 ゥヱーブレツ ト変換、 Haar変換、 K一 L変換等の変換符号化に対しても、 この発明を適用することができる
また、 この発明は、 圧縮符号化されたデータを磁気テープに記録し たり、 ハードディスク、 光磁気ディスクに記録する場合に対して適用 できる。 さらに、 この発明は、 圧縮付されたデータをネッ トワークを 介して送信する場合に対しても適用できる。
さらに、 マクロブロックの構造としては、 (4 : 2 : 0) に限らず 、 ( 4 : 2 : 2 ) 、 (4 : 4 : 4) 、 (4 : 1 : 1 ) 等の構造であつ ても良い。 マクロブロック内に含まれる DC Tブロックの個数も限定 されるものではない。 よりさらに、 符号量を制御する等長化単位とし ては、 1フレームに限らず、 より短い期間を設定しても良い。
この発明は、 量子化ステップが画像の局所的性質により可変される ので、 復号画像の画質を向上することができる。 この場合、 ァクティ ビティ情報によって補正された量子化ステツプを丸める時の処理に注 目して、 量子化ステップを変化させる場合の優先順位を定めている。 さらに、 余剰符号量に対応してしきい値をテーブルとして有し、 テー ブルを参照してしきい値を決定する。 そして、 しきい値より順位が高 ぃァクティ ビティを持つマクロブ口ックの場合では、 量子化ステツプ を一段階細かくする。 このようにしてァクティ ビティに応じて量子化 ステツプを制御する場合に、 余剰符号量に適応して量子化ステツプを 制御することが可能となる。