(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_rat
e/(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はピクチャ内のマクロブロック数を示す。Ｂ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はフィールド構造のマクロブロックにおける8x8サブブロックの空間アクティビティを示す。ここで、空間アクティビチィの演算は次の（８）、（９）式により求めることが可能である。
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              ・・・（１１）
以上のＴＭ５のアルゴリズムによれば、ＳＴＥＰ１の処理によりＩピクチャに対して多くの符号量を割り当ており、更にピクチャ内においては視覚的に劣化の目立ちやすい平坦部(空間アクティビティが低い)に符号量が多く配分されるようになる。
【００１２】
このようなＴＭ５方式を応用した符号化方式として、画像信号と局所復号画像のＳＮ比がある一定の値となるように目標符号量を決定する方式が提案されている（特許文献１を参照）。この提案手法では、ＳＮ比を一定に保つような目標符号量を設定することですべてのピクチャに対する画質を安定させる効果がある。
【００１３】
また、上記提案方式の改良方式として、Ｉピクチャ，Ｐピクチャ，Ｂピクチャ各ピクチャの符号量を最適な値に設定する方式が提案されている（特許文献２を参照）。この改良方式では、ＩピクチャのＳＮ比がＢピクチャのＳＮ比より大きくなるように、各フレーム（Ｉピクチャ・Ｐピクチャ・Ｂピクチャ）の符号量が配分制御される。つまり、Ｉピクチャの符号化誤差がＢピクチャの符号化誤差より小さくなるように各フレーム（Ｉピクチャ・Ｐピクチャ・Ｂピクチャ）の符号量を制御することで、ＧＯＰの原点となるＩピクチャの画質を向上させる効果がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平０２−２１９３８８号公報
【特許文献２】特開平０８−０７０４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献１、特許文献２に係る提案方式では、以下のような課題が存在する。
【００１６】
まず、特許文献１に係る提案方式では各ピクチャでのＳＮ比を一定に保つことで、一定の画質を保つことは可能であり、特許文献２に係る提案方式でも、ＳＮ比と各ピクチャの符号配分を考慮することで同様に一定の画質を保つことは可能である。
【００１７】
しかし、これらの手法では、ＳＮ比を目標符号量決定の判断情報としているため、画質の定量的な劣化具合や人間の視覚特性が十分に考慮されていない。つまり、ＳＮ比と画質の関係が必ずしも比例関係にならないことが考えられる。
【００１８】
よって、例えば、高速なパンのような高周波成分の少ない信号で構成される画像は画質劣化を受けてもＳＮ比の大幅な低下は起こりにくいが、ブロックノイズのような視覚的に目立ちやすいノイズは発生しやすい。また、静止した画像の場合、他の画像と同じＳＮ比であっても静止しているためにノイズが目立ってしまい画質を同等と見なせない。従って、ＳＮ比を一定とし目標符号量を決定することも人間の視覚特性に合致した符号量を設定するという点では困難である。
【００１９】
このように、提案方式では、人間の視覚特性に応じた符号量の設定が行うことができず、良好な画質の復号画像を得ることができなかった。そこで、本発明では、人間の視覚特性に応じた符号量の設定が行って、良好な画質の復号画像を得ることを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するための本発明は、
画像データを符号化する画像符号化装置であって、
符号化対象画像を直交変換し、量子化処理して符号化する符号化手段と、
前記符号化された画像を逆量子化し、逆直交変換して復号する復号手段と、
前記符号化対象画像と、該符号化対象画像の直前の画像との間の動き情報を検出する動き検出手段と、
前記符号化対象画像と、該符号化対象画像の前記符号化手段による符号化結果を前記復号手段が復号した復号結果とを用いてＳＮ比を算出するＳＮ比算出手段と、
前記符号化対象画像において目標とされるＳＮ比の値を示す目標ＳＮ比を設定する設定手段と、
設定された前記目標ＳＮ比と前記算出されたＳＮ比との差分の大きさに応じて、前記符号化手段から出力される符号化データのビットレートを調整するレート制御手段と、
を備え、
前記設定手段は、前記動き情報によって示される画像間の動き量が所定の閾値以下の状態である画像が、前記動き量が前記所定の閾値以下でない状態である画像よりも多い期間における前記目標ＳＮ比を、前記動き情報によって示される画像間の動き量が所定の閾値以下でない状態である画像が、前記動き量が前記所定の閾値以下の状態である画像よりも多い期間における前記目標ＳＮ比よりも大きく設定し、
前記レート制御手段は、
前記算出されたＳＮ比が前記目標ＳＮ比よりも大きい場合に、前記算出されたＳＮ比と前記目標ＳＮ比との差分を第１の閾値と比較し、該差分が該第１の閾値より大きい場合は、前記ビットレートを下げ、
前記算出されたＳＮ比が前記目標ＳＮ比より大きくない場合に、前記目標ＳＮ比と前記算出されたＳＮ比との差分を第２の閾値と比較し、該差分が該第２の閾値より大きい場合は、前記ビットレートを上げることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、画像の動きに応じて目標ＳＮ比を変更して、人間の視覚特性に応じた符号量の設定が行い、良好な画質の復号画像を得ることができる。
【図面の簡単な説明】
【００２２】
【図１】発明の実施形態に対応する符号化方法を実現する符号化装置の構成例を示す図である。
【図２】発明の実施形態に対応する、画像並び替えの一例を示す図である。
【図３】発明の実施形態に対応する、図１の符号化装置の点線１２０で囲まれた各処理部により実行される処理の一例を示すフローチャートである。
【図４】発明の第１の実施形態に対応する、レート制御部１１６における、ビットレートを決定するための処理の一例を示すフローチャートである。
【図５】発明の第２の実施形態に対応する、レート制御部１１６における、ビットレートを決定するための処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、添付する図面を参照して、発明の実施形態を説明する。
【００２４】
［第１の実施形態］
発明の第１の実施形態について図１乃至図４を参照して説明する。図１は、発明の実施形態に対応する符号化方法を実現する符号化装置の構成例を示す図である。符号化方式として、具体的にはＭＰＥＧ（Moving Pictures of Experts Group）やH.264/AVC（Advanced  Video  Coding）に対応する。よって、該符号化装置は、例えばディジタルビデオカメラのような映像音声信号記録装置として実現できる。図２は、画像並び替えの一例を示す図である。図３は、図１の符号化装置の点線１２０で囲まれた各処理部により実行される処理の一例を示すフローチャートである。また、図４は、発明の実施形態に対応するレート制御処理の一例を示すフローチャートである。
【００２５】
まず、図１において、入力信号１０１は本符号化装置への入力信号であり、符号化装置が備える撮像素子（ＣＣＤやＣＭＯＳ等）、或いは、ライン入力端子からの映像信号がこれに該当する。また、入力信号１０１は、所定のブロックに分割された状態で入力される。該ブロックは、例えばＭＰＥＧでは１６×１６、８×８を始めとしたブロックであり、符号化方式に応じてサイズが決まる。なお、本明細書では当該ブロックのことを「マクロブロック」と呼んでいる。
【００２６】
画像並べ替え部１０２は、入力される画像の順序を入れ替えて後段の処理部に出力する処理部である。画像並べ替え部１０２は、内部にメモリを備え、図２に示すような＃１，＃２，＃３，・・・の順で入力される画像を、＃３，＃１，＃２，・・・の順で出力されるように、該メモリを管理する。
【００２７】
スイッチ１０３は、符号化対象画像のピクチャタイプに応じて、画像並べ替え部１０２からの出力と減算器１１４からの出力とを切り替えるスイッチである。ＤＣＴ部１０４は、直交変換（ＤＣＴ）を行う処理部である。量子化部１０５は、ＤＣＴ部１０４から出力された直交変換出力係数を量子化処理する処理部である。可変長符号化部１０６は、量子化部１０５から出力された量子化結果に可変長符号化処理を施す処理部である。
【００２８】
バッファ１０７は、可変長符号化部１０６から出力された符号化データを一時保存するバッファであって、出力端子１１８とレート制御部１１６に該符号化データを出力する。逆量子化部１０８は、量子化部１０５における量子化結果に逆量子化処理を施す処理部である。ＩＤＣＴ部１０９は、逆量子化処理結果に対して逆直交変換（ＩＤＣＴ）を施す処理部である。加算器１１０は、逆直交変換により復号結果として得られた復号データと、動き補償予測部１１２から出力される予測画像データとを加算して、ローカルデコード画像を出力する演算部である。
【００２９】
スイッチ１１１は、符号化対象画像のピクチャタイプに応じて、動き補償予測部１１２からの予測画像データを加算器１１０に供給するためのスイッチである。動き補償予測部１１２は、画像並べ替え部１０２からの出力と、加算器１１０からの出力とに基づき、動き補償予測を行って予測画像データを生成する処理部である。ＳＮ比算出部１１３は、加算器１１０から出力と、画像並べ替え部１０２からの出力とを利用して、ＳＮ比を算出する処理部である。
【００３０】
減算器１１４は、画像並べ替え部１０２からの出力と、動き補償予測部１１２からの予測画像データとの間で減算処理を行う演算部である。フレーム動き検出部１１５は、入力信号１０１に基づきフレーム動きを検出する処理部である。レート制御部１１６は、符号化するＧＯＰの目標ビットレートならびに、ピクチャの目標符号量を決定する処理部である。量子化制御部１１７は、レート制御部１１６で決定されたピクチャの目標符号量を元に、マクロブロックの量子化係数を決定する処理部である。出力端子１１８は、バッファ１０７に一時保存されている符号化データを出力する出力端子である。
【００３１】
なお、点線領域１２０は、スイッチ１０３、ＤＣＴ部１０４、量子化部１０５、逆量子化部１０８、ＩＤＣＴ部１０９、加算器１１０、スイッチ１１１、動き補償予測部１１２、ＳＮ比算出部１１３、減算器１１４を含む。
【００３２】
次に、図３を参照して、図１の点線領域１２０内の各ブロックによる動作を説明する。
【００３３】
まず、ステップＳ３０１において、ピクチャタイプの判定を行い、ピクチャタイプがＩピクチャの場合（ステップＳ３０１において「ＹＥＳ」）、ステップＳ３０２に進み、スイッチ１０３をＡ側とし、スイッチ１１１をＯＦＦとする。その後、ステップＳ３０５に移行する。
【００３４】
一方、ピクチャタイプがＩピクチャ以外のＢピクチャ又はＰピクチャの場合（ステップＳ３０１において「ＮＯ」）、ステップＳ３０３に進み、スイッチ１０３をＢ側とし、スイッチ１１１をＯＮとする。続くステップＳ３０４では、動き補償予測部１１２で動き探索を行って予測画像データを生成し、該予測画像データと入力画像との減算処理を減算器１１４にて行って差分値信号を生成する。
【００３５】
次に、ステップＳ３０５では、入力信号のマクロブロック単位にＤＣＴ部１０４で直交変換を行い、量子化制御部１１７で決定された量子化スケールを用いて量子化部１０５にて直交変換出力係数の量子化を行って、符号化データを生成する。ここで、量子化パラメータである量子化スケールは、ＴＭ５のＳＴＥＰ２に相当する処理を行うことで算出できるので、ここでの説明は省略する。
【００３６】
続くステップＳ３０６では、ステップＳ３０５において生成された量子化データに逆量子化部１０８、ＩＤＣＴ部１０９により逆変換を施して復号結果としての復号データを生成する。Ｉピクチャの場合、この逆変換によりローカルデコード画像を得ることができる。
【００３７】
続くステップＳ３０７では、ステップＳ３０１同様にピクチャタイプの判定を行う。ピクチャタイプがＩピクチャの場合は（ステップＳ３０７において「ＹＥＳ」）、ステップＳ３１０へ移行する。一方、ピクチャタイプがＩピクチャ以外のＢピクチャ又はＰピクチャの場合は（ステップＳ３０７において「ＮＯ」）、ステップＳ３０８に移行する。ステップＳ３０８では、減算器１１４にて減算した予測画像データと、逆変換により得られた復号データとの加算処理を加算器１１０にて行って、Ｐピクチャ又はＢピクチャのローカルデコード画像を生成する。
【００３８】
次に、ステップＳ３０９では、ピクチャタイプがＰピクチャか否かを判定する。もし、Ｐピクチャの場合は（ステップＳ３０９において「ＹＥＳ」）、ステップＳ３１０へ移行する。一方、Ｂピクチャの場合は（ステップＳ３０９において「ＮＯ」）、ステップＳ３１１へ移行する。
【００３９】
続くステップＳ３１０では、生成したローカルデコード画像を参照画像とするために、動き補償予測部１１２に記憶する。更にステップＳ３１１では、ＳＮ比算出部１１３にて、入力画像とローカルデコード画像とのＳＮ比を算出する。次に、ステップＳ３１２に進み、全てのピクチャについて符号化処理が完了したか否かを判定する。完了した場合は（ステップＳ３１２において「ＹＥＳ」）、本処理を終了する。一方、まだ符号化すべきピクチャがある場合は（ステップＳ３１２において「ＹＥＳ」）、ステップＳ３０１に戻って処理を続ける。
【００４０】
図１に戻り、点線領域１２０以外の処理ブロックの動作を説明する。量子化部１０５より出力されたデータは、可変長符号化部１０６に入力され、可変長符号化が行われる。可変長符号化されたデータは、バッファ１０７に入力され、出力端子１１８より出力される。また、バッファ１０７から、符号化されたピクチャの発生符号量や量子化係数等の情報およびＳＮ比算出部１１３で算出したＳＮ比がレート制御部１１６に入力される。
【００４１】
また、フレーム動き検出部１１５は、符号化処理対象画像とその直前の画像との間で何画素分の動きが生じたかを表すフレーム動き情報を生成する。フレーム動き検出部１１５は、画像符号化装置自体の揺れを検知するジャイロセンサ（加速度センサ）１１９からの揺れ情報と、動き補償予測部１１２からの動きベクトル情報が入力される。ジャイロセンサ１１９は、符号化装置の角速度を検知して、揺れ情報としてフレーム動き検出部に出力する。ジャイロセンサ１１９の揺れ情報によれば、画面全体がどの程度動いたのかが判断できる。また、動きベクトル情報を利用する場合は、マクロブロック毎の動きベクトル情報の平均ベクトルを求め、該平均ベクトルを画面全体の動きとする。これらの情報からフレーム動き情報を生成し、レート制御部１１６に入力する。
【００４２】
レート制御部１１６では、入力されたフレーム動き情報を元に視覚特性を考慮した目標ＳＮ比を決定し、１ＧＯＰの平均ＳＮ比がその視覚特性を考慮した目標ＳＮ比以上になるようにビットレートを決定する。レート制御部１１６における処理の詳細を、図４のフローチャートを参照して以下に説明する。図４は、レート制御部１１６における、ビットレートを決定するための処理の一例を示すフローチャートである。
【００４３】
まず、ステップＳ４０１において初期目標ＳＮ比（Tsnr）を設定し、さらにフレーム動き検出部１１５より入力されたフレーム動き情報（Move）を設定する。このフレーム動き情報（Move）は、ピクチャ間で何画素移動したかを示す値である。
【００４４】
次にステップＳ４０２では、フレーム動き情報（Move）が第３の閾値ＴｈＭ１より大きいか否かを判定する。もし、フレーム動き情報（Move）が第３の閾値ＴｈＭ１より大きい場合には（ステップＳ４０２において「ＹＥＳ」）、ステップＳ４０３に移行する。一方、フレーム動き情報（Move）が第３の閾値ＴｈＭ１より大きくない場合には（ステップＳ４０２において「ＮＯ」）、ステップＳ４０４に移行する。
【００４５】
ステップＳ４０３では、初期目標ＳＮ比（Tsnr）に、所定値Ｎを加算し、視覚特性を考慮した目標ＳＮ比を算出し、ステップＳ４０４に移行する。フレーム動き情報（Move）が第３の閾値ＴｈＭ１より大きい場合、画面全体が動くために高周波成分の少ない信号で画像が構成され、画質劣化を受けてもＳＮ比の大幅な低下は起こりにくい。その一方で、ブロックノイズのような視覚的に目立ちやすいノイズは発生しやすくなる。そこで、本実施形態では、係るノイズを防止するために、目標ＳＮ比を上げている。
【００４６】
例えば、第３の閾値ＴｈＭ１を「３２画素」とすることができる。この場合に、フレーム動き情報が「４０画素」であり、第３の閾値ＴｈＭ１の「３２画素」より大きく動いた場合は、初期目標ＳＮ比（Tsnr）の補正を行ってもよい。この場合、初期目標ＳＮ比に加算する所定値Ｎの値は、動きの大きさによって画質劣化を受けてもＳＮ比が下がらないことから、Ｎ＝Move／ＴｈＭ１（ｄＢ）とする。
【００４７】
次に、ステップＳ４０４では、１ＧＯＰの平均ＳＮ比（Asnr）を算出する。この平均ＳＮ比（Asnr）は、例えば、ＳＮ比算出部１１３で求められた１ＧＯＰ分のＳＮ比の平均として計算することができる。また、各ピクチャタイプについてＳＮ比算出部１１３で求められたＳＮ比に基づいて、該ＳＮ比の平均により１ＧＯＰの平均ＳＮ比（Asnr）を予測することもできる。なお、平均ＳＮ比の算出方法自体は、発明の本質的特徴ではなく、従って上述した２通りの方法に算出方法が限定されるものではない。よって、１ＧＯＰの平均ＳＮ比を求める方法として利用可能な他の方法があれば、それを利用することもできる。
【００４８】
続くステップＳ４０５では、目標ＳＮ比（Tsnr）と、平均ＳＮ比（Asnr）との大きさを比較する。もし、目標ＳＮ比（Tsnr）よりも平均ＳＮ比（Asnr）の方が大きい場合（ステップＳ４０５において「ＹＥＳ」）は、ステップＳ４０６へ移行する。一方、目標ＳＮ比（Tsnr）が平均ＳＮ比（Asnr）以上の場合は（ステップＳ４０５において「ＮＯ」）、ステップＳ４０８へ移行する。
【００４９】
ステップＳ４０６では、平均ＳＮ比（Asnr）が目標ＳＮ比(Tsnr)を、第１の閾値Ｔｈ１より上回っているか否かを更に判定する。もし、平均ＳＮ比(Asnr)が目標ＳＮ比(Tsnr)を第１の閾値Ｔｈ１より上回っている場合は（ステップＳ４０６において「ＹＥＳ」）、ステップＳ４０７に移行する。一方、平均ＳＮ比(Asnr)が目標ＳＮ比(Tsnr)を第１の閾値Ｔｈ１より上回っていない場合は（ステップＳ４０６において「ＮＯ」）、本処理を終了する。
【００５０】
ステップＳ４０７では、現在のレート（Rate）から（Asnr−Tsnr）×αを減算し、新レート（Rate-）を算出し、処理を終了する。ここで、αは、ＶＢＲ（可変ビットレート）において平均ビットレートより算出される任意の係数である。平均ＳＮ比（Asnr）が目標ＳＮ比(Tsnr)を大きく上回っている場合は、符号量の与え過ぎであってレートを下げても目標ＳＮ比を上回る。そこで、ステップＳ４０７では、レートを下げる処理を行っている。
【００５１】
例えば、数値としてAsnr = 45.0dB, Tsnr = 40.0dB, Th1 = 2, Rate = 7000000bps, α=200000とした場合を考える。この場合、平均ＳＮ比（Asnr）は目標ＳＮ比(Tsnr)を、５dB上回っており、この量は第１の閾値Ｔｈ１よりも大きい。そこで、上記の演算によりレートを下げる処理を行って、新レート（Rate-）を6000000bpsとする。
【００５２】
次に、ステップＳ４０８以降の処理を説明する。ステップＳ４０８では、目標ＳＮ比(Tsnr)が平均ＳＮ比(Asnr)を第２の閾値Ｔｈ２より上回っているか否かを更に判定する。もし、目標ＳＮ比(Tsnr)が平均ＳＮ比(Asnr)を第２の閾値Ｔｈ２より上回っている場合は（ステップＳ４０８において「ＹＥＳ」）、ステップＳ４０９に移行する。一方、目標ＳＮ比(Tsnr)が平均ＳＮ比(Asnr)を第２の閾値Ｔｈ２より上回っていない場合は（ステップＳ４０８において「ＮＯ」）、処理を終了する。
【００５３】
ステップＳ４０９では、現在のレート（Rate）に（Tsnr−Asnr）×βを加算し、新レート（Rate+）を算出し、処理を終了する。ここで、βは、ＶＢＲ（可変ビットレート）において平均ビットレートより算出される任意の係数である。目標ＳＮ比(Tsnr)が平均ＳＮ比（Asnr）を大きく上回っている場合は、符号量の不足であってレートを上げないと目標ＳＮ比を上回ることができない。そこで、ステップＳ４０９では、レートを上げる処理を行っている。
【００５４】
例えば、数値としてAsnr = 35.0dB, Tsnr = 40.0dB, Th1 = 2, Rate = 7000000bps, β=200000とした場合を考える。この場合、目標ＳＮ比(Tsnr)は平均ＳＮ比（Asnr）を、５dB上回っており、この量は第２の閾値Ｔｈ２よりも大きい。そこで、上記の演算によりレートを上げる処理を行って、新レート（Rate+）を8000000bpsとする。
【００５５】
上記によりビットレートが算出され、それを前述のＴＭ５のＳＴＥＰ１より目標符号量を算出できる。その目標符号量は量子化制御部１１７に入力され、ＴＭ５のＳＴＥＰ２およびＳＴＥＰ３を行うことで、量子化部１０５の制御を行う。
【００５６】
なお、上述したレート算出式は、あくまで一例であって、レートの増減方法は上記の式に限定されるものではない。平均ＳＮ比（Asnr）や目標ＳＮ比(Tsnr)、或いはフレーム動き情報（Move）を用いて、他の演算式によりレートを制御することができる。また、フレーム動き検出部１１５をジャイロセンサ１１９と動き補償予測部１１２からの情報を用いたが、いずれか一方のみを用いてもよいし、それ以外の情報を更に利用してもよい。
【００５７】
以上の処理を行うことで、高速なパン等を行った場合のように、ＳＮ比の大幅な低下は起こりにくいがノイズが発生しやすい状況下であっても、視覚特性を考慮した目標符号量の設定が可能となり、画質の向上を行うことができる。
【００５８】
［第２の実施形態］
次に、発明の第２の実施形態を図５を参照して説明する。本実施形態に対応する符号化装置は図１に示す構成と同様であり、点線領域１２０における処理も図３に示したフローチャートと同様である。但し、レート制御部１１６における処理は、図５に示すフローチャートに従う。以下、図５を参照して、本実施形態に対応するレート制御部１１６における処理の詳細を説明する。
【００５９】
まず、ステップＳ５０１では、初期目標ＳＮ比（Tsnr）を設定し、さらにフレーム動き検出部１１５より入力したフレーム動き情報（Move）を設定する。
【００６０】
次にステップＳ５０２では、フレーム動き情報（Move）に基づいて、処理対象のピクチャがピクチャ間での動きが多いピクチャ（動的なピクチャ）であるのか、動きが少ないピクチャ（静的なピクチャ）であるのかを判定する。この判定は、例えば、フレーム動き情報（Move）の値を所定の第４の閾値ＴｈＭ２と比較し、該第４の閾値ＴｈＭ２より大きい場合には動的なピクチャと判定し、第４の閾値ＴｈＭ２以下の場合には静的なピクチャと判定することができる。
【００６１】
当該判定において、静的なピクチャであると判定された場合（ステップＳ５０２において「ＹＥＳ」）、ステップＳ５０３に移行する。一方、動的なピクチャであると判定された場合（ステップＳ５０２において「ＮＯ」）、ステップＳ５０４に移行する。ステップＳ５０３では、静的なピクチャと判定さたピクチャ枚数の計数値であるstill_count値が、所定の閾値Ｖより大きいか否かを判定する。ここで、still_count値は、符号化対象の動画像について符号化を開始する際に「０」に初期化され、静的なピクチャと判定されると１枚ずつ係数され、係数値として保持される。
【００６２】
もし、still_count値が閾値Ｖより大きい場合は（ステップＳ５０３において「ＹＥＳ」）、ステップＳ５０７へ移行する。一方、still_count値が閾値Ｖ以下の場合は（ステップＳ５０３において「ＮＯ」）、ステップＳ５０５に移行する。ステップＳ５０５では、still_count値に１を加算して増加方向に更新する。次いでステップＳ５０７へ移行する。
【００６３】
また、動的なピクチャと判定されステップＳ５０４に移行した場合、ステップＳ５０４では、still_count値が０か否かを判定する。もし、still_count値が０の場合（ステップＳ５０４において「ＹＥＳ」）、ステップＳ５０７へ移行する。一方、still_count値が０でない場合（ステップＳ５０４において「ＮＯ」）、ステップＳ５０６に移行して、still_count値から１を減算して減少方向に更新を行う。次いで、ステップＳ５０７へ移行する。
【００６４】
ステップＳ５０７では、初期目標ＳＮ比（Tsnr）を視覚特性を考慮した目標ＳＮ比とするために、初期目標ＳＮ比（Tsnr）にstill_count値×Ｗを加算して、目標ＳＮ比（Tsnr）の大きさを調整する。
【００６５】
符号化対象のピクチャが静止状態或いは静止に近い状態のピクチャであると判定された場合、他のピクチャとＳＮ比が同等であっても、静的な画像であるため同じ画像を繰り返し見ることにより、ノイズが目立ちやすくなってしまう。これは、ステップＳ５０７において目標ＳＮ比を引き上げることで防止することが可能となる。
【００６６】
ただし、目標ＳＮ比を所望の値に一気に上げると、急に画質が良くなり、画質に違和感が生じてしまう。このため本実施形態では、still_count値により段階をつけることにより、違和感を生じさせないようにしている。例えば、閾値Ｖ=９, Ｗ=０．４とすると、still_count値は０から１０までの値をとることとなり、Tsnrの増加量は0.4dB単位で、最大4dBまで段階的に上げることができる。
【００６７】
ステップＳ５０７の処理の後は、第１の実施形態における図４のステップＳ４０４以降の処理と同様であり、対応する参照番号を付してある。よって、本実施形態では説明を省略する。
【００６８】
以上により本実施形態では、静止および静止に近い画像でノイズが目立つような場合でも、視覚特性を考慮した目標符号量の設定が可能となり画質の向上を行うことができる。
【００６９】
なお、上述したレート算出式は、あくまで一例であって、レートの増減方法は上記の式に限定されるものではない。平均ＳＮ比（Asnr）や目標ＳＮ比(Tsnr)、或いはフレーム動き情報（Move）を用いて、他の演算式によりレートを制御することができる。また、フレーム動き検出部１１５をジャイロセンサ１１９と動き補償予測部１１２からの情報を用いたが、いずれか一方のみを用いてもよいし、それ以外の情報を更に利用してもよい。
【００７０】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７１】
また、本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７２】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００７３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【符号の説明】
【００７４】
１０１・・・入力端子、
１０２・・・画像並び替え部、
１０３・・・スイッチ、
１０４・・・ＤＣＴ部、
１０５・・・量子化部、
１０６・・・可変長符号化部、
１０７・・・バッファ、
１０８・・・逆量子化部、
１０９・・・ＩＤＣＴ部、
１１０・・・加算器、
１１１・・・スイッチ、
１１２・・・動き補償予測部、
１１３・・・ＳＮ比算出部、
１１４・・・減算器、
１１５・・・フレーム動き検出部、
１１６・・・レート制御部、
１１７・・・量子化制御部、
１１８・・・出力端子
１１９・・・ジャイロセンサ
【図１】
0005409842.tif 000002
【図２】
0005409842.tif 000003
【図３】
0005409842.tif 000004
【図４】
0005409842.tif 000005
【図５】
0005409842.tif 000006