(57)【特許請求の範囲】
【請求項１】
画像を複数のマクロブロックに分割して符号化を行う符号化装置であって、
前記複数のマクロブロックのそれぞれについて、量子化に用いる量子化パラメータを指定する設定指示を生成する生成手段と、
前記生成手段により生成された前記設定指示に基づいて、前記マクロブロックの量子化パラメータを決定する決定手段と、
前記マクロブロックについて直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換手段と、
前記変換手段による変換結果を符号化する符号化手段と、
を備え、
前記生成手段は、前記マクロブロックを構成するサブブロックについて画像の複雑さを表す分散を算出する算出手段を有し、符号化対象マクロブロックを構成する複数のサブブロックのそれぞれから算出された分散と、該符号化対象マクロブロックに隣接するサブブロックから算出された分散とに基づいて前記符号化対象マクロブロックのための量子化パラメータを指定する設定指示を生成することを特徴とする符号化装置。
【請求項２】
前記設定指示では、
高周波成分を多く含むマクロブロックの量子化のための第１の種別の量子化パラメータと、
前記第１の種別の量子化パラメータよりも量子化スケールの小さい第２の種別の量子化パラメータとの
いずれかが指定されることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記生成手段は、前記符号化対象マクロブロックを構成するサブブロックの分散と、該符号化対象マクロブロックに隣接するサブブロックの分散とのうち、最小値と最大値とを決定し、該最大値と最小値との差分が第１の閾値より大きい場合に、前記第２の種別の量子化パラメータを指定する設定指示を生成することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記生成手段は、前記差分が前記第１の閾値より大きくない場合であって、
前記最小値が第２の閾値より小さい場合は、前記第２の種別の量子化パラメータを指定する設定指示を生成し、
前記最小値が第２の閾値より小さくない場合は、前記第１の種別の量子化パラメータを指定する設定指示を生成することを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記生成手段は、前記符号化対象マクロブロックを構成するサブブロックのいずれかの分散が前記第２の閾値より小さく、かつ、前記符号化対象マクロブロックに隣接するサブブロックの分散が第３の閾値より大きい場合に、前記第１の種別の量子化パラメータを指定する設定指示を生成することを特徴とする請求項４に記載の符号化装置。
【請求項６】
画像を複数のマクロブロックに分割して符号化を行う符号化装置の制御方法であって、
前記符号化装置の生成手段が、前記複数のマクロブロックのそれぞれについて、量子化に用いる量子化パラメータを指定する設定指示を生成する生成工程と、
前記符号化装置の決定手段が、前記生成工程において生成された前記設定指示に基づいて、前記マクロブロックの量子化パラメータを決定する決定工程と、
前記符号化装置の変換手段が、前記マクロブロックについて直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換工程と、
前記符号化装置の符号化手段が、前記変換工程における変換結果を符号化する符号化工程と、
を備え、
前記生成工程では、前記マクロブロックを構成するサブブロックについて画像の複雑さを表す分散を算出する算出工程を有し、符号化対象マクロブロックを構成する複数のサブブロックのそれぞれから算出された分散と、該符号化対象マクロブロックに隣接するサブブロックから算出された分散とに基づいて前記符号化対象マクロブロックのための量子化パラメータを指定する設定指示を生成することを特徴とする符号化装置の制御方法。
【請求項７】
コンピュータを、請求項１乃至５のいずれか１項に記載の符号化装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化装置の制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年のマルティメディアの発展に伴い様々な動画像圧縮符号化方式が提案されている。その代表的なものに、ＭＰＥＧ−１，２，４やＨ．２６４といったものがある。これらの圧縮符号化の処理は、動画像に含まれる原画像（画像）をブロックと呼ばれる所定の領域に分割し、この分割したブロックを単位にして動き補償予測やＤＣＴ変換処理を施すものである。また、動き補償予測を行う場合、既に符号化済みの画像データを局所復号化して得られた画像を参照画像としていることで、符号化を行う際にも復号化処理が必要となる。
【０００３】
また、ＭＰＥＧ方式に準拠して画像の圧縮、符号化を行う場合、その符号量は、画像自体の特性である空間周波数特性やシーン及び量子化スケール値に応じて大きく異なる場合が多い。このような符号化特性を有する符号化装置を実現する上で良好な画質の復号画像を得ることができるようにするための重要な技術が符号量制御である。
【０００４】
この符号量制御アルゴリズムの１つとして、ＴＭ５（Test Model 5）が一般的に使用されている。このＴＭ５による符号量制御アルゴリズムは、以下に説明する３つのステップから構成され、ＧＯＰ（Group Of Picture）毎にビットレートが一定になるように以下に挙げる３ステップで符号量が制御される。
【０００５】
（ＳＴＥＰ１）
今から符号化を行うピクチャの目標符号量を決定する。現在のＧＯＰにおいて利用可能な符号量であるＲgopが以下の（１）式により演算される。
Ｒgop = (ni+np+nb)*(bits_rate/picture_rate)   ・・・（１）
ここで、ni,np,nbはそれぞれI、P、Bピクチャの現GOPにおける残りのピクチャ数であり、bits_rateは目標ビットレート、picture_rateはピクチャレートを表す。
【０００６】
更に、I、P、Bピクチャ毎に符号化結果からピクチャの複雑度を以下の（２）式で求めている。
Ｘi  =  Ｒi*Ｑi 
Ｘp  =  Ｒp*Ｑp    ・・・（２）
Ｘb  =  Ｒb*Ｑb   
ここで、Ｘi、Ｘｐ、Ｘｂはコンプレキシティ（Complexity）とも呼ばれる。また、Ｒi、Ｒp及びＲbはそれぞれＩ、Ｐ、Ｂピクチャを符号化した結果得られる符号量である。さらに、Ｑi、Ｑp及びＱbはそれぞれI、P、Bピクチャ内のすべてのマクロブロックにおけるＱスケールの平均値である。式(1)及び式(2)から、I、P、Bピクチャそれぞれについての目標符号量Ｔi、Ｔp及びＴbは、以下の（３）式で求めることができる。  Ｔi= max{(Ｒgop/(1+ ((Ｎp*Ｘp)/(Ｘi*Ｋp)) + ((Ｎb*Ｘb)/(Ｘi*Ｋb)))) , (bit_rate/(8*picture_rate))}
Ｔp=max{(Ｒgop/(Ｎp+ (Ｎb*Ｋp*Ｘb)/(Ｋb*Ｘp))) , (bit_rate/(8*picture_rate))}
Ｔb=max{(Ｒgop/(Ｎb+ (Ｎp*Ｋb*Ｘp)/(Ｋp*Ｘb))) , (bit_rate/(8*picture_rate))}
・・・（３）
ただし、Ｎp及びＮbは現GOP内のそれぞれP及びBピクチャの残りの枚数、また定数Ｋp=1.0及びＫb=1.4である。
【０００７】
（ＳＴＥＰ２）
I、P及びBピクチャ毎に３つの仮想バッファを使用し、式（３）で求めた目標符号量と発生符号量との差分を管理する。仮想バッファのデータ蓄積量をフィードバックし、そのデータ蓄積量に基づいて実際の発生符号量が目標符号量に近づくように、次にエンコードするマクロブロックについて、Ｑスケールの参照値が設定される。例えば、現在のピクチャタイプがPピクチャの場合には、目標符号量と発生符号量との差分は、次の（４）式に従う演算処理により求めることができる。
【０００８】
ｄp,j = ｄp,0  +  Ｂp,j-1  −((Ｔp*(j-1))/ＭＢ_cnt) ・・・（４）
ここで、添字jはピクチャ内のマクロブロックの番号であり、ｄp,0は仮想バッファの初期フルネスを示し、Ｂp，jはj番目のマクロブロックまでの総符号量、ＭＢ_cntはピクチャ内のマクロブロック数を示す。次にdp,j(以後、「dj」と記載する。) を用いて、j番目のマクロブロックにおけるＱスケールの参照値を求めると、（５）式のようになる。
【０００９】
Ｑj  = (dj*31) / r       ・・・（５）
ここで、r = 2*bits_rate/picture_rate       ・・・（６）
である。
【００１０】
（ＳＴＥＰ３）
視覚特性、即ち、復号画像の画質が良好になるように、エンコード対象のマクロブロックの空間アクティビティに基づいて、量子化スケールを最終的に決定する処理を実行する。
【００１１】
ACTj =  1+ min(vblk1, vblk2,……,vblk8)    ・・・（７）
（７）式中において、vblk1〜vblk4はフレーム構造のマクロブロックにおける8ｘ8のサブブロックにおける空間アクティビティを示す。また、vblk5〜vblk8はフィールド構造のマクロブロックにおける８×８サブブロックの空間アクティビティを示す。ここで、空間アクティビチィの演算は次の（８）、（９）式により求めることが可能である。
vblk = Σ(Ｐi−Ｐbar)2      ・・・（８）
Pbar = (1/64 )* ΣＰi                  ・・・（９）
ここで、Ｐiはｉ番目のマクロブロックにおける画素値であり、式（８）、（９）中のΣはi=1〜64の演算である。次に（７）式で求めたACTjを以下の（１０）式によって正規化を行う。
【００１２】
N_ACTj = (2*ACTj +AVG_ACT)/ (ACTj + AVG_ACT)      ・・・（１０）
ここで、AVG_ACTは以前に符号化したピクチャにおけるACTjの参照値であり、最終的に量子化スケール（Ｑスケール値）MQUANTjは以下の（１１）式により求められる。
【００１３】
MQUANTj  =  Qj *  N_ACTj              ・・・（１１）
以上のＴＭ５のアルゴリズムによれば、ＳＴＥＰ１の処理によりＩピクチャに対して多くの符号量を割り当ており、更にピクチャ内においては視覚的に劣化の目立ちやすい平坦部(空間アクティビティが低い)に符号量が多く配分されるようになる。よって、予め定めたビットレート内で、画質の劣化を抑えた符号量制御ならびに量子化制御を行うことが可能となる。
【００１４】
また、ＴＭ５と同様に画像の特徴に応じて量子化制御を行う手法は他にも提案されており、視覚的向上を実現できている（例えば、特許文献１参照）。
【特許文献１】特開２００５−３２３３１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
前述したＴＭ５方式は、マクロブロック単位で特徴を抽出し、その特徴に基づいて量子化パラメータを変化させることで、あらかじめ定められた目標符号量になるような量子化制御を行っている。
【００１６】
しかしながら、分散が高い画像には物体の境界といった人間の視覚的に目立ちやすい領域も含んでいるため、そのような領域に対して量子化を粗くしてしまうと物体の境界部分で視覚的な劣化が発生してしまうという問題がある。
【００１７】
また、特許文献１における手法も同様な課題に対する解決策を提示してあるが、符号化に先立って量子化パラメータの対応付けを行っているので処理量やバスレートが高くなるといった問題が存在する。
【００１８】
本発明は、上述した問題点に鑑みたものであり、簡単な処理と少ないバスレートで物体の境界における画質劣化を抑えることを可能にした符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するための本発明は、画像を複数のマクロブロックに分割して符号化を行う符号化装置であって、
前記複数のマクロブロックのそれぞれについて、量子化に用いる量子化パラメータを指定する設定指示を生成する生成手段と、
前記生成手段により生成された前記設定指示に基づいて、前記マクロブロックの量子化パラメータを決定する決定手段と、
前記マクロブロックについて直交変換と、決定された前記量子化パラメータを用いた量子化とを行う変換手段と、
前記変換手段による変換結果を符号化する符号化手段と、
を備え、
前記生成手段は、前記マクロブロックを構成するサブブロックについて画像の複雑さを表す分散を算出する算出手段を有し、符号化対象マクロブロックを構成する複数のサブブロックのそれぞれから算出された分散と、該符号化対象マクロブロックに隣接するサブブロックから算出された分散とに基づいて前記符号化対象マクロブロックのための量子化パラメータを指定する設定指示を生成することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、簡単な処理と少ないバスレートで物体の境界における画質劣化を抑えることを可能にした符号化装置を提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、添付する図面を参照して発明の実施形態を説明する。
【００２２】
［第１の実施形態］
第１の実施形態を図１、図２に基づいて説明する。図１は第１の実施形態おける全体システム構成図であり、図２は特徴抽出を説明する図である。
【００２３】
図１において、入力信号１０１は符号化装置への入力信号であり、所定の複数のブロックに分割された状態で入力される。該ブロックは、例えばＭＰＥＧでは１６×１６、８×８を始めとしたブロックであり符号化方式に応じてサイズが決まる。なお今後説明の中でマクロブロックと呼ぶこととする。
【００２４】
符号化装置は、また、加減算部１０２、直交変換（ＤＣＴ）部１０３、量子化部１０４、逆量子化部１０５、逆直交変換（逆ＤＣＴ）部１０６、動き推定部１０７、動き補償部１０８、フレームメモリ１０９、可変長符号化部１１０を備える。さらに、量子化制御部１１２、特徴抽出部１１３を備え、出力信号１１６を出力する。
【００２５】
本符号化装置の動作を説明する。複数のブロックに分割された入力信号１０１は、符号化ピクチャがフレーム内符号化（イントラ符号化）ピクチャの時は、直交変換部１０３においてマクロブロック内の信号に対して直交変換処理を行う。そして、量子化部１０４で、直交変換部１０３での変換結果としてのＤＣＴ係数を量子化する。
【００２６】
また、符号化ピクチャがフレーム間符号化（インター符号化）ピクチャの時は、符号化されたピクチャに対して逆量子化部１０５で逆量子化、逆直交変換部１０６で逆直交変換処理を行ったローカルデコード画像が作成される。そして、符号化対象のピクチャとの動き推定を動き推定部１０７で、動き補償を動き補償部１０８で行い、ローカルデコード画像との差分値を加減算部１０２で算出する。差分値は、直交変換部１０３においてマクロブロック内の信号に対して直交変換処理を行い、量子化部１０４でＤＣＴ係数を量子化する。
【００２７】
フレーム内符号化、フレーム間符号化に関わらず量子化部１０４で量子化された量子化信号は可変長符号化部１１０で符号化が行われ符号化された信号が出力信号１１６として出力される。
【００２８】
次に、符号量制御部１１１、量子化制御部１１２について説明する。符号量制御部１１１は、ＧＯＰ内の各ピクチャに対する割り当てビット量を、割り当て対象ピクチャを含めＧＯＰ内でまだ符号化されていないピクチャに対するビット量を基に配分する。この配分をＧＯＰ内の符号化ピクチャ順に繰り返し、ピクチャごとにピクチャ目標符号量を設定する。
【００２９】
次に、量子化制御部１１２は、各ピクチャに対する目標符号量と実際の発生符号量とを一致させるため、仮想バッファの容量を基に、量子化スケールの参照値を求める。より具体的に、可変長符号化部１１０から出力されるマクロブロック単位の発生符号量としてフィードバック制御で求める。量子化部１０４で使用する量子化パラメータは、量子化スケールの参照値に対して特徴抽出部１１３からの量子化パラメータの設定指示をもとに式（１１）を用いて決定される。なお以上の動作は背景技術で述べたステップ１〜３に相当する。
【００３０】
ここで、特徴抽出部１１３の動作を、図２を用いて詳細に説明する。図２において、太枠で囲んだ領域２００は符号化対象マクロブロックである。また、領域２０１から２０４は、マクロブロック２００を構成するサブブロックであり、マクロブロックが１６×１６であればサブブロックは８×８となる。
【００３１】
特徴抽出部１１３は、高周波成分を多く含む領域のための第１の種別の量子化パラメータと、平坦部やエッジ部を含む領域のための第２の種別の量子化パラメータとのいずれかを指定した設定指示を生成する。ここで、第１の種別の量子化パラメータと、第２の種別の量子化パラメータとでは量子化スケールが異なり、第２の種別の量子化パラメータの方が量子化スケールがより小さく設定されるようになっている。
【００３２】
領域２０５から２１２は、符号化対象マクロブロック２００に隣接するサブブロックであり、サブブロック２０１から２０４と同じサイズである。また図２は、色づけされた部分はテクスチャのような視覚的劣化が目立ちにくい領域を示す。また、色づけされていない部分は平坦のような視覚的劣化が目立ちやすい領域を示す。よって、符号化対象マクロブロック２００には、視覚的劣化が目立ちやすいエッジが存在することを表している。
【００３３】
特徴抽出部１１３は、符号化対象マクロブロック２００に含まれる２０１から２０４の各サブブロックについて、複雑さである分散を算出する。ここで、分散値とは、ブロック内における画素値のバラツキ度合いを示す値である。例えば、サブブロック内の画素値がほぼ等しい場合は分散は小さくなる。一方、サブブロック内の画素値のバラツキが大きい場合は、分散が大きくなる。また、画素値のレベルが低い値を取るほど、ブロック内の画素値の分散が少なくなり、該ブロックが平坦画像の傾向が高いことを示す。
【００３４】
また、符号化対象マクロブロック２００に隣接するサブブロック２０５から２１２に対しても分散を算出する。なお、画像を左上からラスタ順で処理していくものとすれば、２０５から２１０は既に符号化が終了したマクロブロックに含まれるサブブロックであるので、符号化時に分散を保持しておけば再計算する必要はない。サブブロック２１１、２１２は符号化が終了してないので先読みを行って計算しておく必要がある。
【００３５】
サブブロック２０１から２１２の分散値の中から最小値を決定し、その最小値が予め定められた閾値（後述する第２の閾値Ｔｈ２）より小さい場合、符号化対象マクロブロック２００は視覚的劣化が目立ち易い平坦かエッジの可能性があると判断される。なお、平坦とエッジを分離する必要があれば、サブブロック２０１から２０４の分散値がすべて小さいものは平坦、それ以外はエッジとして判断すればよい。
【００３６】
また、算出されたサブブロック２０１から２１２の分散値について最大値と最小値とを決定し、該最大値と最小値との差が所定の閾値（後述する第１の閾値Ｔｈ１）以上であれば、符号化対象マクロブロック２００を、エッジ部分と判定できる。
【００３７】
ＴＭ５のように、符号化対象マクロブロック２００に含まれるサブブロック２０１から２０４の分散だけで判断する手法では、符号化対象マクロブロック２００は視覚的劣化の目立ちにくいテクスチャと誤判定する可能性がある。これに対して、本実施形態のように符号化対象マクロブロック２００に隣接するサブブロックの分散も加味することで、誤判定を起こさず正確にエッジを捉えることが可能となる。
【００３８】
このようにエッジと判断されたブロックは視覚的劣化が目立ちやすいブロックであるため、第２の種別の量子化パラメータを設定するような指示を量子化制御部１１２へ送る。情報の送信形式はアクティビティと同じでよい。また、符号化対象マクロブロックが平坦と判断された場合も、第２の種別の量子化パラメータを指定した設定指示を量子化制御部１１２へ送る。
【００３９】
一方、サブブロック２０１から２１２の分散値の最小値が第２の閾値以上である場合、マクロブロックは視覚的劣化が目立ちにくい、高周波成分を多く含むブロックと判断できる。そこで、量子化スケールがより大きな第１の種別の量子化パラメータを設定するような指示を量子化制御部１１２へ送る。
【００４０】
図３は、以上の量子化パラメータの決定処理の一例を示すフローチャートである。以下、図３のフローチャートに対応した処理の流れを説明する。当該処理は、対応する処理プログラムを特徴抽出部１１３が実行することにより実現される。
【００４１】
まず、ステップＳ３０１では、処理対象マクロブロックを選択する。図２では、該処理対象マクロブロックとしてマクロブロック２００を選択することとなる。次に、ステップＳ３０２では、選択されたマクロブロックに隣接するサブブロックを決定する。図２の場合では、マクロブロック２００に隣接するサブブロック２０５乃至２１２が隣接サブブロックに決定される。
【００４２】
次に、ステップＳ３０３では、マクロブロックに含まれるサブブロックと、ステップＳ３０３で決定されたサブブロックの分散を算出する。図２の例では、サブブロック２０１から２１２の分散がそれぞれ算出されることとなる。続くステップＳ３０４では、算出されたサブブロックの分散について、最小値と最大値とを決定する。また、最大値と最小値との差分を算出する。
【００４３】
続くステップＳ３０５では、ステップＳ３０４で算出した差分が第１の閾値Ｔｈ１よりも大きいか否かを判定する。もし、該差分が第１の閾値Ｔｈ１よりも大きい場合は（ステップＳ３０５において「ＹＥＳ」）、ステップＳ３０７に移行する。一方、該差分が第１の閾値Ｔｈ１以下の場合は（ステップＳ３０５において「ＮＯ」）、ステップＳ３０６に移行する。
【００４４】
ステップＳ３０６では、ステップＳ３０４で決定した最小値が第２の閾値Ｔｈ２よりも小さい否かを判定する。もし、該最小値が第２の閾値Ｔｈ２よりも小さい場合は（ステップＳ３０６において「ＹＥＳ」）、ステップＳ３０７に移行する。一方、該最小値が閾値Ｔｈ２以上の場合は（ステップＳ３０６において「ＮＯ」）、ステップＳ３０８に移行する。
【００４５】
ステップＳ３０７では、第２の種別の量子化パラメータを設定する指示を量子化制御部１１２へ送信し、処理を終える。ステップＳ３０８では、第１の種別の量子化パラメータを設定する指示を量子化制御部１１２へ送信し、処理を終える。
【００４６】
なお、量子化パラメータの設定基準は、上述の説明内容に限定されるものではない。例えば、サブブロック２０１から２０４のいずれかのサブブロックの分散が第２の閾値よりも小さいと判断されたが、隣接サブブロック２０５から２１２の分散値が全て所定の第３の閾値より大きな値を算出していた場合も考えられる。ここで該第２の閾値よりも小さい分散を有するサブブロックは、テクスチャの中に存在する孤立した平坦部と判断でき、視覚的な劣化は目立ちにくいと言える。そこで、このような場合は、量子化パラメータを大きく設定するような指示を量子化制御部１１２へ送ることができる。
【００４７】
なお、上述の各閾値の具体的な値は、該値自体が本発明の本質的な技術的思想を構成するものではないので、特に限定しない。即ち、各閾値は発明の実施に際して当業者が好適な値に設定すればよく、係る値の設定自体は、当業者の通常の創作能力の範囲内の行為である。
【００４８】
以上のように、第１の実施形態によれば、符号化対象マクロブロックと隣接するサブブロックの情報からエッジを含むブロックを検出し、そのようなブロックに対して量子化を細かくする量子化パラメータを決定することができる。これにより、視覚的劣化の目立ちやすいブロックに対する画質向上を行うことが可能となる。
【００４９】
［第２の実施形態］
次に、第２の実施形態を図４乃至図６に基づいて説明する。第２の実施形態は符号化処理をパイプライン化し、本発明による特徴抽出を効率良く行えるようにしたものである。図４は発明の第２の実施形態おける全体システム構成の一例を示す図である。図５は、発明の第２の実施形態におけるシステムの処理動作を説明するための図である。図６は図２と同様の図である。
【００５０】
図４は図１に対して処理のパイプライン化を考慮した構成となっている。入力信号４０１は符号化装置への入力信号でありマクロブロックに分割されて入力される。
符号化装置は、加減算部４０２、直交変換（ＤＣＴ）部４０３、量子化部４０４、逆量子化部４０５、逆直交変換（逆ＤＣＴ）部４０６、動き推定部４０７、動き補償部４０８、フレームメモリ４０９を備えて構成される。また、可変長符号化部４１０、符号量制御部４１１、量子化制御部４１２、特徴抽出部４１３、４１４及び４１５を備え、出力信号４１６を出力する。
【００５１】
以下、本実施形態に対応する符号化装置の動作を説明する。ブロックに分割された入力信号４０１は、符号化ピクチャがフレーム内符号化（イントラ符号化）ピクチャの時は、直交変換部４０３においてマクロブロック内の信号に対して直交変換処理を行い、量子化部４０４でＤＣＴ係数を量子化する。
【００５２】
また、符号化ピクチャがフレーム間符号化（インター符号化）ピクチャの時は、符号化されたピクチャに対して逆量子化部４０５で逆量子化、逆直交変換部４０６で逆直交変換処理を行ったローカルデコード画像を作成する。また、符号化対象のピクチャとの動き推定を動き推定部４０７で、動き補償を動き補償部４０８で行い、ローカルデコード画像との差分値を加減算部４０２で算出する。差分値は、直交変換部４０３においてマクロブロック内の信号に対して直交変換処理を行い、量子化部４０４でＤＣＴ係数を量子化する。
【００５３】
フレーム内符号化、フレーム間符号化に関わらず量子化部４０４で量子化された量子化信号は、可変長符号化部４１０で符号化が行われ符号化された信号が出力信号４１６として出力される。
【００５４】
次に、符号量制御部４１１、量子化制御部４１２、特徴抽出部４１３の動作を説明する。
【００５５】
符号量制御部４１１は、ＧＯＰ内の各ピクチャに対する割り当てビット量を、割り当て対象ピクチャを含めＧＯＰ内でまだ符号化されていないピクチャに対するビット量を基に配分する。この配分をＧＯＰ内の符号化ピクチャ順に繰り返し、ピクチャごとにピクチャ目標符号量を設定する。
【００５６】
次に、量子化制御部４１２は、各ピクチャに対する目標符号量と実際の発生符号量とを一致させるため、仮想バッファの容量を基に、量子化スケールの参照値を求める。具体的には、可変長符号化部４１０から出力されるマクロブロック単位の発生符号量としてフィードバック制御で求める。量子化部４０４で使用する量子化パラメータは、量子化スケールの参照値に対して特徴抽出部４１３からの設定指示をもとに式（１１）を用いて決定される。なお以上の動作は背景技術で述べたステップ１〜３に相当する。
【００５７】
また、本実施形態に対応する符号化装置は、全体として３段のパイプライン構成で動作している。１段目（図４の４２０）は特徴抽出部４１３、２段目（図３の４２１）は特徴抽出部４１４及び動き推定部４０７である。３段目（図４の４２２）は、特徴抽出部４１５、量子化制御部４１２、動き補償部４０８、直交変換部４０３、量子化部４０４、可変長符号化部４１０、逆量子化部４０５、逆直交変換部４０６である。
【００５８】
このようなパイプライン構成をとった理由は以下のとおりである。
【００５９】
動き推定部４０７には、サーチ範囲の広さにも依存するが、莫大な演算量が要求される。バスレート等を考慮すれば、マクロブロックを処理するため許容されている時間の大部分を使用する可能性もある。一方、動き補償部４０８は、動き推定部４０７で決定された動きベクトルを基に参照フレームから画像データを読み出すため、動きベクトルがなければ処理を開始できない。
【００６０】
よって、動き補償部４０８の開始時に動きベクトルが決定されていることが望ましく、図４では、動き推定部４０７が動き補償部４０８よりも１段早く処理を行う構成となっている。なお、３段目に属している動き補償部４０８以外のモジュールは、処理量を考慮して同じ段に入れているが、さらに１段遅らした構成でも構わない。例えば、Ｈ．２６４/ＡＶＣであれば可変長符号化にＣＡＢＡＣを用いているが、処理量が入力される信号によって様々でありサイクル数を正確に見積もれない可能性があるので１段遅らすか、または別の処理系統にしてもよい。
【００６１】
特徴抽出部４１３は、量子化制御部４１２で量子化を行うための量子化パラメータを決定するための特徴量を量子化に先立って算出するため、特徴抽出部４１３も量子化制御部４１２よりも早く処理する構成をとっている。また、今回の構成では１段ではなく２段早い構成となっているがこれは図５とあわせて説明する。
【００６２】
図５において、（ａ）は、量子化対象マクロブロックをＮ番目とすると、（Ｎ＋２）番目のマクロブロックの処理（図４の４２０）を行っていることを示す。また、（ｂ）は、（Ｎ＋１）番目のマクロブロックの処理（図４の４２１）を、（ｃ）は（Ｎ）番目のマクロブロックの処理（図４の４２２）を行っていることを示す。
【００６３】
図６において、６０１が符号化対象マクロブロックであり、６００が１つ前のマクロブロック（Ｎ−１マクロブロック）、６０２が１つ後のマクロブロック（Ｎ＋１マクロブロック）である。６０３から６２０は各サブブロックである。
【００６４】
符号化対象マクロブロック６０１の左側のマクロブロック６００が本符号化装置に入力されると１段目４２０の特徴抽出部４１３では、サブブロック６０３から６０６の分散を計算する。
【００６５】
処理が１マクロブロック進むと、１段目４２０の特徴抽出部４１３には、符号化対象マクロブロック６０１が入力され、サブブロック６０７から６１０の分散値を計算する。また、２段目の特徴抽出部４１４には、特徴抽出部４１３から取得した、マクロブロック６００のサブブロック６０３から６０６の分散値が保持される。また、動き推定部４０７では、マクロブロック６００について動きベクトルを決定するための処理が行われている。
【００６６】
さらに処理が１マクロブロック進むと、１段目の特徴抽出部４１３には符号化対象マクロブロック６０１の右側のマクロブロック６０２が入力され、サブブロック６１１から６１４の分散値を計算する。また、２段目の特徴抽出部４１４には、特徴抽出部４１３から取得した符号化対象マクロブロック６０１内のサブブロック６０７から６１０の分散が保持される。３段目の特徴抽出部４１５は、マクロブロック６００のサブブロック６０３から６０６の分散が保持される。
【００６７】
この時点で符号化対象マクロブロック６０１内のサブブロック６０７から６１０と、左に隣接しているサブブロック６０４、６０６、右に隣接しているサブブロック６１１、６１３の分散値が準備できる。
【００６８】
そこで、処理が１マクロブロック進んで特徴抽出部４１５では、これらのサブブロックと、予め保持しているサブブロック６１６から６１９の分散の中から最小値、最大値を算出する。また、符号化対象マクロブロック６０１が平坦部やエッジに属するか否かを判定する。さらに、判定結果に従い、量子化制御部４１２に対する量子化パラメータの設定指示を生成する。係る量子化パラメータの設定指示は、量子化制御部４１２に与えられる
なお、量子化パラメータの設定指示の生成処理については、第１の実施形態で図３のフローチャートを参照して説明したのと同様であるので、詳細な説明は省略する。
【００６９】
以上のように、本実施形態によれば、第１の実施形態では１つに集約されていた特徴抽出部の機能を３段のパイプライン構成とした。これにより、量子化制御部４１２で量子化パラメータを決定する処理に先だって、サブブロックの分散を計算して、量子化パラメータの設定指示を生成できるので、処理効率を高めることができる。また、演算量が多い動きベクトルの算出処理を動き補償部４０８での処理に先行して行うことで、処理効率を高めることができる。
【００７０】
［その他の実施形態］
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７１】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００７２】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図面の簡単な説明】
【００７３】
【図１】発明の第１の実施形態おける全体システム構成の一例を示す図である。
【図２】発明の第１の実施形態に対応する特徴抽出を説明するための図である。
【図３】発明の第１の実施形態おける特徴抽出部１１３の処理の一例を示すフローチャートである。
【図４】発明の第２の実施形態おける全体システム構成の一例を示す図である。
【図５】発明の第２の実施形態におけるシステムの処理動作を説明するための図である。
【図６】第２の実施形態に対応する特徴抽出を説明するための図である。
【符号の説明】
【００７４】
１０１・・・入力部（入力信号）
１０２・・・加減算
１０３・・・直交変換部
１０４・・・量子化部
１０５・・・逆量子化部
１０６・・・逆直交変換部
１０７・・・動き推定部
１０８・・・動き補償部
１０９・・・フレームメモリ
１１０・・・可変長符号化部
１１１・・・符号量制御部
１１２・・・量子化制御部
１１３・・・特徴抽出部
１１６・・・出力部（出力信号、ストリーム）
【図１】
0005111128.tif 000002
【図２】
0005111128.tif 000003
【図３】
0005111128.tif 000004
【図４】
0005111128.tif 000005
【図５】
0005111128.tif 000006
【図６】
0005111128.tif 000007