(57)【要約】【課題】  量子化テーブルを変更することなく、同一の画像データに対して１回のエンコードで符号量の制御を行う。【解決手段】  離散コサイン変換（ＤＣＴ）部１１は、１画面の画像データに対してＭＣＵごとに離散コサイン変換を施し、量子化部１２は、離散コサイン変換の結果得られたＤＣＴ係数を、量子化テーブル１２ａを用いて量子化し、符号量制御部１３は、１画面における目標符号量と、未処理のＭＣＵで使用可能な符号量に応じてＭＣＵごとに閾値を設定し、閾値に応じて量子化後のＤＣＴ係数を削減して、ＭＣＵで発生する符号量を調整する。【選択図】  図１
2007043495.tif 000002
【特許請求の範囲】
【請求項１】
画像データをＪＰＥＧ形式で圧縮符号化する画像処理装置において、
１画面の画像データに対して処理単位領域ごとに離散コサイン変換を施す離散コサイン変換部と、
離散コサイン変換の結果得られた変換係数を、量子化テーブルを用いて量子化する量子化部と、
１画面における目標符号量と、未処理の前記処理単位領域で使用可能な符号量に応じて前記処理単位領域ごとに閾値を設定し、前記閾値に応じて量子化後の前記変換係数を削減して、前記処理単位領域で発生する符号量を調整する符号量制御部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記符号量制御部は、前記目標符号量に鑑みて、未処理の前記処理単位領域で使用可能な前記符号量が少ない場合には、現在処理中の前記処理単位領域で使用する前記閾値を上げ、使用可能な前記符号量が多い場合には前記閾値を下げることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記符号量制御部は、前記閾値の変動幅または変動感度を調整することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記符号量制御部は、前記変動幅または前記変動感度を、入力された前記画像データの特徴に応じて変更することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記画像データの特徴を抽出するために、予め一定の前記閾値を用いて等間隔に間引いた前記処理単位領域に対してエンコードを行うことを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記エンコードによって得られた前記量子化後の前記変換係数を保持し、前記変動幅または前記変動感度に応じて設定される前記閾値を用いたエンコードの際には、保持された前記量子化後の前記変換係数を用いることを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記符号量制御部は、前記画像データの周波数成分に応じて前記閾値を調整することを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記符号量制御部は、Ｍｏｔｉｏｎ  ＪＰＥＧの連続するフレームの前記画像データに対して、前のフレームに用いた前記閾値の平均値を、後続するフレームの前記画像データにおける最初の前記処理単位領域に適用することを特徴とする請求項１記載の画像処理装置。
【請求項９】
前記量子化部は、前記前のフレームに用いた前記閾値の前記平均値をもとに、前記後続するフレームの前記画像データに適用する前記量子化テーブルを変更することを特徴とする請求項８記載の画像処理装置。
【請求項１０】
画像データをＪＰＥＧ形式で圧縮符号化する画像処理方法において、
１画面の画像データに対して処理単位領域ごとに離散コサイン変換を行い、
離散コサイン変換の結果得られた変換係数を、量子化テーブルを用いて量子化し、
１画面における目標符号量と、未処理の前記処理単位領域で使用可能な符号量に応じて前記処理単位領域ごとに閾値を設定し、
前記閾値に応じて量子化後の前記変換係数を削減して、前記処理単位領域で発生する符号量を調整することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び画像処理方法に関し、特に画像データをＪＰＥＧ（Joint Photographic coding Experts Group）形式で圧縮符号化する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
画像データを高効率で圧縮符号化する方式の１つにＪＰＥＧが知られている。
図９は、画像データをＪＰＥＧ形式で圧縮符号化する従来の画像処理装置の構成図である。
【０００３】
従来の画像処理装置５０は、離散コサイン変換（ＤＣＴ）を行うＤＣＴ部５１と、ＤＣＴの結果得られたＤＣＴ係数を量子化する量子化部５２と、ハフマン符号を用いて圧縮符号化を行うハフマン符号化部５３とを有する。
【０００４】
ＪＰＥＧの圧縮符号化では、原画像を８×８の６４画素を１つのブロックとした複数のブロックに分割して、ブロックごとに圧縮符号化（エンコード）を行う。このブロックはＪＰＥＧ処理の基本単位であり、以下ＭＣＵ（Minimum Coded Unit）と呼ぶ。ＤＣＴ部５１は、入力されたＭＣＵに対してＤＣＴを行い、ＤＣＴ係数を算出する。算出されたＤＣＴ係数は、量子化部５２にて量子化テーブル５２ａをもとに量子化される。ハフマン符号化部５３は、量子化されたＤＣＴ係数を入力して、ハフマン符号を用いたエントロピー符号化を行い、１と０の符号からなる符号化信号を生成する。このような処理が全てのＭＣＵに対して行われる。
【０００５】
ところで、例えば、ＤＳＣ（デジタルスチルカメラ）やＤＶＣ（デジタルビデオカメラ）などに用いられる限られた記憶媒体に画像データを記憶するような場合など、符号化する画像データの符号量（ビット量）を調整したい場合がある。画像データを目標のビット量にするため、従来では、量子化テーブルの値（量子化閾値）を所定のサブエリアごとに変化させ目標のビット量に調整する手法（例えば、特許文献１参照。）があったが、ＪＰＥＧのベースライン規格上、量子化テーブルは１画面につき各成分（輝度、色差など）ごとに１つしか設定できないことから実用は難しかった。
【０００６】
そのため、現在では、全てのＭＣＵに対して一度エンコードを行った後に得られたビット量を参照して、量子化テーブル５２ａを変更し、再度エンコードを行う２パスエンコードを行っている。
【特許文献１】特開２００３−３０４４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、２パスエンコードでは同一の画像データに対して２回エンコードを行うため、性能負荷が重くなり、エンコードに時間がかかるという問題があった。
本発明はこのような点に鑑みてなされたものであり、量子化テーブルを変更することなく、同一の画像データに対して１回のエンコードで符号量の制御が可能な画像処理装置を提供することを目的とする。
【０００８】
また本発明の他の目的は、量子化テーブルを変更することなく、同一の画像データに対して１回のエンコードで符号量の制御が可能な画像処理方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明では上記問題を解決するために、画像データをＪＰＥＧ形式で圧縮符号化する画像処理装置において、図１に示すように、１画面の画像データに対して処理単位領域（ＭＣＵ）ごとに離散コサイン変換を施す離散コサイン変換（ＤＣＴ）部１１と、離散コサイン変換の結果得られた変換係数（ＤＣＴ係数）を、量子化テーブル１２ａを用いて量子化する量子化部１２と、１画面における目標符号量と、未処理のＭＣＵで使用可能な符号量に応じてＭＣＵごとに閾値を設定し、閾値に応じて量子化後のＤＣＴ係数を削減して、ＭＣＵで発生する符号量を調整する符号量制御部１３と、を有することを特徴とする画像処理装置１０が提供される。
【００１０】
上記の構成によれば、離散コサイン変換（ＤＣＴ）部１１は１画面の画像データに対してＭＣＵごとに離散コサイン変換を施し、量子化部１２は離散コサイン変換の結果得られたＤＣＴ係数を、量子化テーブル１２ａを用いて量子化し、符号量制御部１３は、１画面における目標符号量と、未処理のＭＣＵで使用可能な符号量に応じてＭＣＵごとに閾値を設定し、閾値に応じて量子化後のＤＣＴ係数を削減して、ＭＣＵで発生する符号量を調整する。
【発明の効果】
【００１１】
本発明では、量子化後のＤＣＴ係数を、１画面における目標符号量と、未処理のＭＣＵで使用可能な符号量に応じてＭＣＵごとに設定される閾値を用いて削減して、ＭＣＵで発生する符号量を調整するので、量子化テーブルを変更することなく、同一の画像データに対して１回のエンコードで符号量の制御が可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態の画像処理装置の構成図である。
画像処理装置１０は、ＤＣＴ部１１、量子化部１２、符号量制御部１３、ハフマン符号化部１４、使用符号量更新部１５を有している。
【００１３】
ＤＣＴ部１１は、１画面の原画像の画像データから８×８の６４画素のＭＣＵごとにＤＣＴを行い、ＤＣＴ係数を算出する。
量子化部１２は、ＤＣＴの結果得られたＤＣＴ係数に対して量子化テーブル１２ａを用いて量子化する。
【００１４】
符号量制御部１３は、１画面における目標符号量（ターゲットビット量）と、未処理のＭＣＵで使用可能な符号量（ビット量）に応じて閾値を設定し、その閾値に応じて量子化後のＤＣＴ係数を削減（０値化）して、ＭＣＵで発生するビット量を調整する（詳細は後述する。）。
【００１５】
ハフマン符号化部１４は、符号量制御部１３によって閾値に応じて削減（０値化）された量子化後のＤＣＴ係数を入力して、ハフマン符号を用いたエントロピー符号化を行い、１と０の符号からなる符号化信号を生成する。
【００１６】
使用符号量更新部１５は、ＭＣＵの処理が終わるごとに使用したビット量を更新する。
以下、画像処理装置１０の動作を説明する。
エンコード対象となる原画像の画像データが、画像処理装置１０に入力されると、ＤＣＴ部１１は、１画面の画像データからＭＣＵごとにＤＣＴを行い、ＤＣＴ係数を算出する。
【００１７】
図２は、ＤＣＴによって算出されたＤＣＴ係数の例である。
図のように原画像の周波数成分の大きさを表すＤＣＴ係数が、ＭＣＵの画素数（６４画素）と同数算出される。
【００１８】
その後、量子化部１２にて量子化テーブル１２ａを用いた量子化が行われる。
図３は、量子化テーブルの例である。
量子化テーブル１２ａは、図２で示した８×８のＤＣＴ係数のそれぞれを量子化するための値（量子化閾値）を有している。この量子化閾値で対応するＤＣＴ係数を割ることにより量子化が行われる。画像の高い周波数成分（図２の右下部分）は、目立ちにくい特徴があるため、対応する量子化閾値は大きな値となっている。
【００１９】
図４は、量子化後のＤＣＴ係数の例である。
図２で示したＤＣＴ係数を、図３の量子化テーブル１２ａで量子化した場合の例を示している。量子化後のＤＣＴ係数は、各ＤＣＴ係数を対応する量子化閾値で割った値であり、小数点以下は四捨五入している。
【００２０】
次に、符号量制御部１３は、量子化後のＤＣＴ係数と所定の閾値とを比較し、閾値以下の量子化後のＤＣＴ係数を削減（０値化）する。これによりランレングス長が変化し、ハフマン符号化部１４で発生するビット量を調整することができる。
【００２１】
ここで閾値の設定の詳細を説明する。
閾値は、１画面におけるターゲットビット量と、処理が終わっていない残りのＭＣＵで使用可能なビット量に応じて設定される。具体的には、符号量制御部１３は、使用符号量更新部１５にて更新された使用済みのビット量を入力し、ターゲットビット量から未処理のＭＣＵで使用可能なビット量を算出する。そして例えば、使用可能なビット量が多ければ閾値を前のＭＣＵに対する処理で用いていた値よりも下げ、使用可能なビット量が少なければ閾値を前のＭＣＵに対する処理で用いていた値よりも上げる。
【００２２】
閾値は、例えば以下の式によって算出できる。
Ｂｎｅｗ＝Ｂｒｅｍａｉｎ／ＭＣＵｒｅｍａｉｎ
ｉｆ（Ｂｎｅｗ＞Ｂｏｌｄ＋α）    ｛Ｑｔｈ＝Ｑｏｌｄ−Ｑｓ｝
ｅｌｉｆ（Ｂｎｅｗ＜Ｂｏｌｄ−α）｛Ｑｔｈ＝Ｑｏｌｄ＋Ｑｓ｝
ｅｌｓｅ                          ｛Ｑｔｈ＝Ｑｏｌｄ｝      ・・・（１）
まず、未処理のＭＣＵで使用可能なビット量Ｂｒｅｍａｉｎを未処理のＭＣＵ数ＭＣＵｒｅｍａｉｎで割ることで、現在処理しているＭＣＵで使用可能なビット量Ｂｎｅｗを算出する。
【００２３】
そして、Ｂｎｅｗが、前回のＭＣＵで使用した１ＭＣＵあたりの平均ビット量Ｂｏｌｄにαを加えた値より大きければ、ビット量が余っているので、現在のＭＣＵで使用する閾値Ｑｔｈを前回のＭＣＵで使用した閾値Ｑｏｌｄより変動幅Ｑｓだけ下げる。
【００２４】
一方、Ｂｎｅｗが、Ｂｏｌｄからαを引いた値よりも小さければ、ビット量が足りないので、閾値Ｑｔｈを閾値Ｑｏｌｄより変動幅Ｑｓだけ上げる。
それ以外の場合には、ビット量が適当であるので閾値Ｑｔｈとして、閾値Ｑｏｌｄを使用する。
【００２５】
なお、上式のαは閾値を変動させる際の変動感度であり、ビット量の判定に幅を持たせている。これにより、閾値が激しく変動し、画質が劣化することを防止している。また、変動幅Ｑｓも閾値が急峻に変化して画質に偏りが出ないように、所定の値に調整される。変動感度αや変動幅Ｑｓは、例えば、入力画像の特徴から値を求めるようにしてもよい。
【００２６】
図５は、画像の特徴による発生ビット量の差を説明する図である。
このような画像では、画像上部と下部では、発生ビット量に差があり、複雑な画像下部のほうが発生ビット量は多い。そのため、画像上部のＭＣＵでは閾値が大きくなるように変動感度α、変動幅Ｑｓを設定し、画像下部のＭＣＵでは閾値が小さくなるように変動感度α、変動幅Ｑｓを設定する。これによって、複雑な画像下部のほうに、より多くのビット量を割り当てることができる。
【００２７】
画像の特徴を抽出するためには、一度、一定の閾値でエンコードする必要があるが、全てのＭＣＵについてエンコードするのではなく、等間隔に間引いたＭＣＵ２０（図５参照）をエンコード（間引きエンコード）して発生符号量を調べればよい。なお、画像の特徴を抽出するためにエンコードしたＭＣＵ２０に対して、ＤＣＴ及び量子化した値を保持しておくことで、再度同一の処理をせずに済み、エンコードを高速化できる。
【００２８】
また、変動感度α、変動幅Ｑｓは、処理済みのＭＣＵで使用したビット量に応じて変動させてもよい。
なお、上記では未処理の全てのＭＣＵを用いてターゲットビット量になるように調整したが、未処理の所定数のＭＣＵ数を指定して、それらのＭＣＵでターゲットビット量からの過不足を解消するようにしてもよい。そうすることで、画像の最後のほうにターゲットビット量に対する過不足が偏ることが防止できる。
【００２９】
また、上記では同じＭＣＵ内では閾値を固定としたが、例えば、画像の低周波成分では閾値を小さく、目立ちにくい高周波成分では閾値を大きくするようにしてもよい。これは、量子化テーブル１２ａを用いて、低周波成分の量子化閾値を小さく、高周波成分の量子化閾値を大きくすることと同じである。
【００３０】
図６は、閾値により変更した量子化後のＤＣＴ係数の例である。
ここでは、図４で示した量子化後のＤＣＴ係数に対して、閾値Ｑｔｈ＝２を用いてビット量を削減させる場合を示している。絶対値が２以下の量子化後のＤＣＴ係数が、全て０になっている。
【００３１】
ハフマン符号化部１４は、上記のように変更された量子化後のＤＣＴ係数を用いて、ハフマン符号を用いたエントロピー符号化を行い、１と０の符号からなる符号化信号を生成する。各ＭＣＵの処理の最後には、使用符号量更新部１５が、今回のＭＣＵの処理で使用したビット量をもとに、使用済みのビット量を更新する。
【００３２】
以上の処理を、全てのＭＣＵについて行うことで所望のターゲットビット量のＪＰＥＧ形式の圧縮符号化データを１パスで生成することができる。
このようにターゲットビット量で生成されたＪＰＥＧ形式の圧縮符号化データは、使用した量子化テーブル１２ａの情報やヘッダ情報（画像のサイズや色の種類など）など復号に必要な情報が付加され、図示しない記録媒体に記録されたり、ビットストリームの形で図示しない外部の伝送路を介して図示しない外部の装置に送信される。そして、復号の際には、従来と同様に上記のヘッダ情報や量子化テーブル１２ａが用いられ、圧縮符号化されたデータが復号される。
【００３３】
図７は、逆量子化結果の例である。
これは、図６で示した閾値により変更した量子化後のＤＣＴ係数を、図３で示した量子化テーブル１２ａを用いて逆量子化した結果である。逆量子化によって、ＤＣＴ係数が算出されると、さらに逆ＤＣＴを行い復号画像が生成される。
【００３４】
ところで、本実施の形態の画像処理装置１０は、Ｍｏｔｉｏｎ  ＪＰＥＧにも適用することができる。以下、Ｍｏｔｉｏｎ  ＪＰＥＧのエンコードの際の処理について説明する。
【００３５】
図８は、Ｍｏｔｉｏｎ  ＪＰＥＧのエンコードを説明する図である。
Ｍｏｔｉｏｎ  ＪＰＥＧは、ＪＰＥＧ形式で圧縮符号化される連続するフレーム画像（Ｉｍａｇｅ  ０〜４）からなる。それぞれのフレーム画像に対しては、前述したように、本実施の形態の画像処理装置１０にて、ＭＣＵごとにエンコードがなされる。例えば、“Ｉｍａｇｅ  ０”では、ＭＣＵ２１からＤＣＴ及び量子化を行い、符号量制御部１３にて所定の閾値が適用されハフマン符号によるエントロピー符号化が行われる。この処理が、前述のように“Ｉｍａｇｅ  ０”の全てのＭＣＵ２１に対して行われる。なお、それぞれのＭＣＵ２１に対して適用される閾値は、例えば前述の式（１）に従ってそれぞれ異なる値が用いられる。
【００３６】
次のフレーム画像“Ｉｍａｇｅ  １”においても同様の処理が行われるが、符号量制御部１３では、“Ｉｍａｇｅ  １”で最初に処理されるＭＣＵ２２に対して、前のフレーム画像“Ｉｍａｇｅ  １”で用いられた閾値の平均値を適用して符号量の調整を行う。同様に、さらに次のフレーム画像“Ｉｍａｇｅ  ２”で最初に処理されるＭＣＵ２３に対して、前のフレーム画像である“Ｉｍａｇｅ  １”で用いられた閾値の平均値を適用して符号量の調整を行う。このようにすることで、フレーム間の画質を向上させることができる。
【００３７】
なお、フレーム画像“Ｉｍａｇｅ  ２”と“Ｉｍａｇｅ  ３”との間でシーンチェンジがあった場合には、符号量制御部１３は、“Ｉｍａｇｅ  ３”の最初のＭＣＵ２４に対して、前のフレーム画像“Ｉｍａｇｅ  ２”で用いられた閾値の平均値を適用するのではなく、“Ｉｍａｇｅ  ３”のターゲットビット量から閾値を設定する。“Ｉｍａｇｅ  ４”のＭＣＵ２５には、“Ｉｍａｇｅ  ３”で用いられた閾値の平均値を適用する。
【００３８】
なお、前のフレーム画像で用いた閾値の平均値に応じて、量子化テーブル１２ａの値自体を、フレーム画像間で可変にしてもよい。
（付記１）  画像データをＪＰＥＧ形式で圧縮符号化する画像処理装置において、
１画面の画像データに対して処理単位領域ごとに離散コサイン変換を施す離散コサイン変換部と、
離散コサイン変換の結果得られた変換係数を、量子化テーブルを用いて量子化する量子化部と、
１画面における目標符号量と、未処理の前記処理単位領域で使用可能な符号量に応じて前記処理単位領域ごとに閾値を設定し、前記閾値に応じて量子化後の前記変換係数を削減して、前記処理単位領域で発生する符号量を調整する符号量制御部と、
を有することを特徴とする画像処理装置。
【００３９】
（付記２）  前記符号量制御部は、前記目標符号量に鑑みて、未処理の前記処理単位領域で使用可能な前記符号量が少ない場合には、現在処理中の前記処理単位領域で使用する前記閾値を上げ、使用可能な前記符号量が多い場合には前記閾値を下げることを特徴とする付記１記載の画像処理装置。
【００４０】
（付記３）  前記符号量制御部は、未処理の所定数の前記処理単位領域を指定して、前記目標符号量に鑑みた、未処理の前記処理単位領域で使用可能な前記符号量の過不足分を解消することを特徴とする付記２記載の画像処理装置。
【００４１】
（付記４）  前記符号量制御部は、前記閾値の変動幅または変動感度を調整することを特徴とする付記１記載の画像処理装置。
（付記５）  前記符号量制御部は、前記変動幅または前記変動感度を、入力された前記画像データの特徴に応じて変更することを特徴とする付記４記載の画像処理装置。
【００４２】
（付記６）  前記画像データの特徴を抽出するために、予め一定の前記閾値を用いて等間隔に間引いた前記処理単位領域に対してエンコードを行うことを特徴とする付記５記載の画像処理装置。
【００４３】
（付記７）  前記エンコードによって得られた前記量子化後の前記変換係数を保持し、前記変動幅または前記変動感度に応じて設定される前記閾値を用いたエンコードの際には、保持された前記量子化後の前記変換係数を用いることを特徴とする付記６記載の画像処理装置。
【００４４】
（付記８）  前記符号量制御部は、前記画像データの周波数成分に応じて前記閾値を調整することを特徴とする付記１記載の画像処理装置。
（付記９）  前記符号量制御部は、Ｍｏｔｉｏｎ  ＪＰＥＧの連続するフレームの前記画像データに対して、前のフレームに用いた前記閾値の平均値を、後続するフレームの前記画像データにおける最初の前記処理単位領域に適用することを特徴とする付記１記載の画像処理装置。
【００４５】
（付記１０）  前記量子化部は、前記前のフレームに用いた前記閾値の前記平均値をもとに、前記後続するフレームの前記画像データに適用する前記量子化テーブルを変更することを特徴とする付記９記載の画像処理装置。
【００４６】
（付記１１）  画像データをＪＰＥＧ形式で圧縮符号化する画像処理方法において、
１画面の画像データに対して処理単位領域ごとに離散コサイン変換を行い、
離散コサイン変換の結果得られた変換係数を、量子化テーブルを用いて量子化し、
１画面における目標符号量と、未処理の前記処理単位領域で使用可能な符号量に応じて前記処理単位領域ごとに閾値を設定し、
前記閾値に応じて量子化後の前記変換係数を削減して、前記処理単位領域で発生する符号量を調整することを特徴とする画像処理方法。
【図面の簡単な説明】
【００４７】
【図１】本実施の形態の画像処理装置の構成図である。
【図２】ＤＣＴによって算出されたＤＣＴ係数の例である。
【図３】量子化テーブルの例である。
【図４】量子化後のＤＣＴ係数の例である。
【図５】画像の特徴による発生ビット量の差を説明する図である。
【図６】閾値により変更した量子化後のＤＣＴ係数の例である。
【図７】逆量子化結果の例である。
【図８】Ｍｏｔｉｏｎ  ＪＰＥＧのエンコードを説明する図である。
【図９】画像データをＪＰＥＧ形式で圧縮符号化する従来の画像処理装置の構成図である。
【符号の説明】
【００４８】
１０  画像処理装置
１１  ＤＣＴ部
１２  量子化部
１２ａ  量子化テーブル
１３  符号量制御部
１４  ハフマン符号化部
１５  使用符号量更新部
【図１】
2007043495.tif 000003
【図２】
2007043495.tif 000004
【図３】
2007043495.tif 000005
【図４】
2007043495.tif 000006
【図５】
2007043495.tif 000007
【図６】
2007043495.tif 000008
【図７】
2007043495.tif 000009
【図８】
2007043495.tif 000010
【図９】
2007043495.tif 000011