(57)【要約】【課題】  符号化におけるビット配分を最適化する。【解決手段】  ステップＳ２１で、マクロブロックごとに肌色画素が検出され、ステップＳ２２で、肌色マクロブロックの検出結果を基に、肌色マクロブロック数は、所定の閾値以上であるか否かが判断される。肌色マクロブロック数が所定の閾値以下であると判断された場合、ステップＳ２３で、肌色マクロブロックに多くのビットが割り当てられるような量子化スケールが求められて、この量子化スケールを基に量子化処理が行われて符号化が行われる。肌色マクロブロック数が所定の閾値以上であると判断された場合、ステップＳ２４で、肌色マクロブロックであるか否かに関わらず、アクティビティのみによってビット割当てが決まるような量子化スケールが求められて、この量子化スケールを基に量子化処理が行われて符号化が行われる。本発明は、撮像装置、または、符号化部に適用できる。【選択図】図９
2005080151.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定の画素数で分割したブロックごとに符号化する符号化装置において、
前記画像データを前記ブロックごとに量子化する量子化手段と、
前記ブロックに、所定の色の画素が含まれているか否かを判断する判断手段と、
１フレームに含まれる複数の前記ブロックのうち、前記判断手段により所定の色の画素が含まれていると判断された前記ブロックの数が、第１の閾値以下であると判断された場合、前記判断手段により所定の色の画素が含まれていると判断された前記ブロックに割り当てられる符号化ビット数が増加するように、前記量子化手段による量子化を制御する制御手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記ブロックのアクティビティを検出するアクティビティ検出手段を更に備え、
前記制御手段は、前記アクティビティ検出手段により検出された前記ブロックの前記アクティビティを更に用いて、前記量子化手段による量子化を制御する
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記制御手段は、処理中の前記画像データと時間的に一つ前の前記画像データとの動きを示す値を求め、その値を更に用いて、前記量子化手段による量子化を制御する
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記画像データをフィルタリングするフィルタリング手段と、
前記フィルタリング手段によるフィルタリングを制御するフィルタリング制御手段と
を更に備え、
前記フィルタリング制御手段は、前記量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御する
ことを特徴とする請求項１に記載の符号化装置。
【請求項５】
前記マクロブロックの残差を演算する残差演算手段を更に備え、
前記フィルタリング制御手段は、前記残差演算手段により演算された前記残差が第２の閾値よりも大きい第１のマクロブロックに対して、前記量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御し、
前記残差が第２の閾値よりも小さく、かつ、前記第１のマクロブロックに対して上下左右のいずれかの辺において接する第２のマクロブロックに対して、前記第２のマクロブロックの前記量子化スケールの１／２の量子化スケールにより定められるカットオフ周波数となるようにフィルタリングのカットオフ周波数を制御し、
前記残差が第２の閾値よりも小さく、かつ、前記第１のマクロブロックに対して上下左右のいずれの辺においても接することがない第３のマクロブロックに対して、フィルタリングが実行されないように前記フィルタを制御する
ことを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記画像データがフレーム内予測符号化データである場合、フレーム内予測を実行するフレーム内予測実行手段
を更に備えることを特徴とする請求項１に記載の符号化装置。
【請求項７】
前記画像データが順方向予測符号化データ、または、双方向予測符号化データである場合の参照画像をフィルタリングするフィルタリング手段
を更に備えることを特徴とする請求項１に記載の符号化装置。
【請求項８】
画像データを所定の画素数で分割したブロックごとに符号化する符号化装置の符号化方法において、
所定の色の画素が含まれている前記ブロックを検出する検出ステップと、
１フレームに含まれる複数の前記ブロックのうち、前記検出ステップの処理により検出された前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、
前記判断ステップの処理により、前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であると判断された場合、前記判断ステップの処理により所定の色の画素が含まれていると判断された前記ブロックに割り当てられる符号化ビット数が増加するように、前記画像データの量子化を制御する制御ステップと
を含むことを特徴とする符号化方法。
【請求項９】
画像データを所定の画素数で分割したブロックごとに符号化する処理を制御するコンピュータが実行可能なプログラムであって、
所定の色の画素が含まれている前記ブロックを検出する検出ステップと、
１フレームに含まれる複数の前記ブロックのうち、前記検出ステップの処理により検出された前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、
前記判断ステップの処理により、前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であると判断された場合、前記判断ステップの処理により所定の色の画素が含まれていると判断された前記ブロックに割り当てられる符号化ビット数が増加するように、前記画像データの量子化を制御する制御ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラム。
【請求項１０】
撮像された、または、他の情報処理装置から取得された画像データを、所定の画素数で分割したブロックごとに符号化する撮像装置において、
撮像された、または、他の情報処理装置から取得された前記画像データ処理する画像処理手段を備え、
前記画像処理手段は、
前記画像データを前記ブロックごとに量子化する量子化手段と、
前記ブロックに、所定の色の画素が含まれているか否かを判断する判断手段と、
１フレームに含まれる複数の前記ブロックのうち、前記判断手段により所定の色の画
素が含まれていると判断された前記ブロックの数が、所定の閾値以下であると判断され
た場合、前記判断手段により所定の色の画素が含まれていると判断された前記ブロック
に割り当てられる符号化ビット数が増加するように、前記量子化手段による量子化を制
御する制御手段と
を備えることを特徴とする撮像装置。
【請求項１１】
撮像された、または、他の情報処理装置から取得された画像データを、所定の画素数で分割したブロックごとに符号化する撮像装置の画像処理方法において、
所定の色の画素が含まれている前記ブロックを検出する検出ステップと、
１フレームに含まれる複数の前記ブロックのうち、前記検出ステップの処理により検出された前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、
前記判断ステップの処理により、前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であると判断された場合、前記判断ステップの処理により所定の色の画素が含まれていると判断された前記ブロックに割り当てられる符号化ビット数が増加するように、前記画像データの量子化を制御する制御ステップと
を含むことを特徴とする画像処理方法。
【請求項１２】
撮像された、または、他の情報処理装置から取得された画像データを、所定の画素数で分割したブロックごとに符号化する処理を制御するコンピュータが実行可能なプログラムであって、
所定の色の画素が含まれている前記ブロックを検出する検出ステップと、
１フレームに含まれる複数の前記ブロックのうち、前記検出ステップの処理により検出された前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、
前記判断ステップの処理により、前記所定の色の画素が含まれている前記ブロックの数が、所定の閾値以下であると判断された場合、前記判断ステップの処理により所定の色の画素が含まれていると判断された前記ブロックに割り当てられる符号化ビット数が増加するように、前記画像データの量子化を制御する制御ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および符号化方法、撮像装置および画像処理方法、並びに、プログラムに関し、特に、符号化において、所定の色を含むマクロブロックに割り当てられるビット数を制御することができるようにした、符号化装置および符号化方法、撮像装置および画像処理方法、並びに、プログラムに関する。
【背景技術】
【０００２】
従来、符号化を行う画像データの視覚パラメータ（アクティビティとも称される）を検出し、その検出結果を基に、符号化において、視覚特性上重要な部分に、多くのビットを割り当てるようにすることにより、符号化による画像の劣化を防止することができるようになされている（例えば、非特許文献１）。
【０００３】
【非特許文献１】テレビジョン学会誌、Vol.49，No.4（1995），pp455-457
【０００４】
図１を用いて、従来の符号化方式について説明する。
【０００５】
入力端子１１から入力された映像信号は、画面並べ替え部１２において、表示順から符号化順に画面の順序が並べ替えられる。画面並べ替え部１２において、符号化の順番に並べ替えられたフレームは、視覚パラメータ検出部３１、フレームメモリ１３、フレームメモリ２５、および、動き検出部２６に供給される。
【０００６】
フレームメモリ１３は、供給されたフレームを、視覚パラメータ検出部３１が１フレーム分のパラメータを集計する間遅延させた後、出力する。動きベクトル検出部２６は、各マクロブロックの動きベクトルを、供給されたマクロブロックデータ、および、フレームメモリ２５に記憶されている参照画像データを基に算出し、動きベクトルデータとして、フレームメモリ２４に出力し、１フレーム遅延させた後、動き補償部２２に送出する。
【０００７】
フレーム内符号化を行うマクロブロックがフレームメモリ１３から出力された場合、スイッチ１５は、端子ｂが端子ｃと接続されるようにスイッチングされる。すなわち、フレーム内符号化を行うマクロブロックは、演算部１４に供給されることなく、ＤＣＴ（Discrete Cosine Transform ：離散コサイン変換）部１６に直接供給される。ＤＣＴ部１６は、入力された演算データに対しＤＣＴ変換処理を行うことによりＤＣＴ係数化し、これをＤＣＴ係数データとして、量子化部１７に送出する。
【０００８】
量子化部１７は、制御部３０から供給される量子化値Ｑに基づいて、入力されたＤＣＴ係数データに対して量子化処理を行い、量子化ＤＣＴ係数データとしてＶＬＣ（Variable Length Code；可変長符号化）部２７に出力する。ここで、量子化部１７は、制御部３０から供給される量子化値Ｑに応じて、量子化処理における量子化ステップサイズを調整することにより、発生する符号量を制御するようになされている。
【０００９】
また、量子化部１７から出力される量子化ＤＣＴ係数データは、逆量子化部１８にも送出される。逆量子化部１８に送出された量子化ＤＣＴ係数データは、量子化部１７と同じ量子化ステップサイズによる逆量子化処理を受け、ＤＣＴ係数データとして、逆ＤＣＴ部１９に送出される。逆ＤＣＴ部１９は、供給されたＤＣＴ係数データに逆ＤＣＴ処理を施し、生成された演算データは、演算部２０に送出される。フレーム内符号化を行うマクロブロックを処理している場合、スイッチ２３は、端子ｂが端子ｃと接続されるようにスイッチングされるので、演算部２０に供給された演算データが、そのまま参照画像データとしてフレームメモリ２１に記憶される。
【００１０】
一方、順方向予測モード、または、双方向予測モードによりフレーム間予測符号化されるマクロブロックがフレームメモリ１３から出力された場合、スイッチ１５は、端子ａが端子ｃと接続されるようにスイッチングされる。すなわち、フレーム間予測符号化されるマクロブロックは、演算部１４に供給される。
【００１１】
順方向予測モードにおいて、動き補償部２２は、フレームメモリ２１の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを順方向予測画像データとして出力する。順方向予測モードにおいては、スイッチ２３は、端子ａが端子ｃと接続されるようにスイッチングされるので、順方向予測画像データは、演算部１４および演算部２０に供給される。演算部１４は、フレームメモリ１３から供給されたマクロブロックデータから、順方向予測画像データを減算して、予測残差としての差分データを得て、差分データをＤＣＴ部１６に送出する。
【００１２】
したがって、ＤＣＴ部１６は、入力された差分データに対しＤＣＴ変換処理を行うことによりＤＣＴ係数化し、これをＤＣＴ係数データとして、量子化部１７に送出する。量子化部１７は、制御部３０から供給される量子化値Ｑに基づいて、入力された差分データに対応するＤＣＴ係数データに対して量子化処理を行い、量子化ＤＣＴ係数データとしてＶＬＣ部２７および逆量子化部１８に出力する。
【００１３】
逆量子化部１８に送出された量子化ＤＣＴ係数データは、量子化部１７と同じ量子化ステップサイズによる逆量子化処理を受け、ＤＣＴ係数データとして、逆ＤＣＴ部１９に送出される。逆ＤＣＴ部１９は、供給されたＤＣＴ係数データに逆ＤＣＴ処理を施し、生成された差分データは、演算部２０に送出される。
【００１４】
演算部２０には、動き補償部２２より順方向予測画像データが供給されており、演算部２０は、逆ＤＣＴ部１９から供給された演算データに、順方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ２１に出力して記憶させる。
【００１５】
また、双方向予測モードにおいて、動き補償部２２は、フレームメモリ２１の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを双方向予測画像データとして出力する。双方向予測モードにおいては、スイッチ２３は、端子ａが端子ｃと接続されるようにスイッチングされるので、双方向予測画像データは、演算部１４および演算部２０に供給される。演算部１４は、供給されたマクロブロックデータから、双方向予測画像データを減算して、予測残差としての差分データを得て、差分データをＤＣＴ部１６に送出する。
【００１６】
したがって、ＤＣＴ部１６は、入力された差分データに対しＤＣＴ変換処理を行うことによりＤＣＴ係数化し、これをＤＣＴ係数データとして、量子化部１７に送出する。量子化部１７は、制御部３０から供給される量子化値Ｑに基づいて、入力された差分データに対応するＤＣＴ係数データに対して量子化処理を行い、量子化ＤＣＴ係数データとしてＶＬＣ部２７および逆量子化部１８に出力する。
【００１７】
逆量子化部１８に送出された量子化ＤＣＴ係数データは、量子化部１７と同じ量子化ステップサイズによる逆量子化処理を受け、ＤＣＴ係数データとして、逆ＤＣＴ部１９に送出される。逆ＤＣＴ部１９は、供給されたＤＣＴ係数データに逆ＤＣＴ処理を施し、生成された差分データは、演算部２０に送出される。
【００１８】
演算部２０には、動き補償部２２より双方向予測画像データが供給されており、演算部２０は、逆ＤＣＴ部１９から供給された演算データに、双方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ２１に出力して記憶させる。
【００１９】
かくして、入力された画像データは、動き補償予測処理、ＤＣＴ処理および量子化処理を受け、量子化ＤＣＴ係数データとして、ＶＬＣ部３７に供給される。ＶＬＣ部３７は、量子化ＤＣＴ係数データに対し、所定の変換テーブルに基づく可変長符号化処理を行い、その結果得られる可変長符号化データをバッファ２８に送出する。バッファ２８は、供給された可変長符号化データをバッファリングして、転送レートを平滑化した後、出力端子２９に出力する。
【００２０】
視覚パラメータ検出部３１は、フレームＤＣＴ時の４個のブロックと、フィールドＤＣＴ時の４個のブロックの計８個のブロックの画素値を用いて、次の式（１）乃至式（３）を用いて、アクティビティactを算出して、フレームメモリ３２に出力する。
【００２１】
【数１】
2005080151.tif 000003
・・・（１）
【００２２】
【数２】
2005080151.tif 000004
・・・（２）
【００２３】
act＝１＋min（var sblk）      ・・・（３）
【００２４】
ここでPkは、輝度信号の画素値である。また、min(var sblk)は、８つのサブブロックのvar sblkの最小値を示す。式（３）において最小値をとるのは、マクロブロック内の一部だけでも平坦部のある場合には量子化を細かくする必要があるためである。これらの式により、アクティビティとは、マクロブロック中の輝度信号の平坦度を表していることがわかる。
【００２５】
制御部３０は、バッファ２８のバッファ使用量、および、視覚パラメータ検出部３１から出力され、フレームメモリ３２で遅延された後供給された視覚パラメータ（アクティビティ）に応じて、次の式（４）乃至式（６）を用いて、量子化スケールを算出する。すなわち、式（４）に示される定数ｒを、式（５）に代入して、量子化インデックスを算出し、画面内マクロブロック間のアクティビティ値の相対関係をみて、視覚的に劣化の目立ちやすい平坦部で、より細かく量子化され、劣化の目立ちにくい絵柄の複雑な部分で粗く量子化されるように、相対的にアクティビティが高いマクロブロックから低いマクロブロックに、ビットの割当てを移動させて、画面内のビットを、相対的に平坦なマクロブロックに集めることにより、平坦なマクロブロックの画質を向上させるようになされている。
【００２６】
ｒ＝２（bit_rate／picture_rate）      ・・・（４）
Qj＝（３１／ｒ）×ｄｊ      ・・・（５）
qscale＝Qj×（2・act＋avg_act／act＋2・avg_act）      ・・・（６）
【００２７】
ここで、bit_rateは、ビットレート、picture_rateは、ピクチャレート、Qjは、量子化インデックス、ｄｊは、バッファ占有量、actは、マクロブロックのアクティビティ、avg_actは、１画面分のマクロブロックの平均アクティビティである。
【発明の開示】
【発明が解決しようとする課題】
【００２８】
以上説明したように、例えば、MPEGのTM5などのように、アクティビティを使って視覚特性上重要な部分にビットを多く割り当てるアルゴリズムは存在するが、このような従来のアルゴリズムでは、アクティビティが高いなど、視覚特性から重要性が低いと判断されたマクロブロックにおいて、MPEGノイズが発生しやすい。すなわち、人間の顔も地面もアクティビティが同じであった場合、ビット割当てが同じになり、視覚特性的に本来重要な顔部分の画質が向上しないがある。
【００２９】
本発明はこのような状況に鑑みてなされたものであり、符号化において、例えば、人間の顔のように、視覚特性を考慮した場合に重要な部分の画質の劣化を防ぐことができるようにするものである。
【課題を解決するための手段】
【００３０】
本発明の符号化装置は、画像データをブロックごとに量子化する量子化手段と、ブロックに、所定の色の画素が含まれているか否かを判断する判断手段と、１フレームに含まれる複数のブロックのうち、判断手段により所定の色の画素が含まれていると判断されたブロックの数が、第１の閾値以下であると判断された場合、判断手段により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、量子化手段による量子化を制御する制御手段とを備えることを特徴とする。
【００３１】
ブロックのアクティビティを検出するアクティビティ検出手段を更に備えさせるようにすることができ、制御手段には、アクティビティ検出手段により検出されたブロックのアクティビティを更に用いて、量子化手段による量子化を制御させるようにすることができる。
【００３２】
制御手段には、処理中の画像データと時間的に一つ前の画像データとの動きを示す値を求め、その値を更に用いて、量子化手段による量子化を制御させるようにすることができる。
【００３３】
画像データをフィルタリングするフィルタリング手段と、フィルタリング手段によるフィルタリングを制御するフィルタリング制御手段とを更に備えさせるようにすることができ、フィルタリング制御手段には、量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御させるようにすることができる。
【００３４】
マクロブロックの残差を演算する残差演算手段を更に備えさせるようにすることができ、フィルタリング制御手段には、残差演算手段により演算された残差が第２の閾値よりも大きい第１のマクロブロックに対して、量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御させるようにすることができ、残差が第２の閾値よりも小さく、かつ、第１のマクロブロックに対して上下左右のいずれかの辺において接する第２のマクロブロックに対して、第２のマクロブロックの量子化スケールの１／２の量子化スケールにより定められるカットオフ周波数となるようにフィルタリングのカットオフ周波数を制御させるようにすることができ、残差が第２の閾値よりも小さく、かつ、第１のマクロブロックに対して上下左右のいずれの辺においても接することがない第３のマクロブロックに対して、フィルタリングが実行されないようにフィルタを制御させるようにすることができる。
【００３５】
画像データがフレーム内予測符号化データである場合、フレーム内予測を実行するフレーム内予測実行手段を更に備えさせるようにすることができる。
【００３６】
画像データが順方向予測符号化データ、または、双方向予測符号化データである場合の参照画像をフィルタリングするフィルタリング手段を更に備えさせるようにすることができる。
【００３７】
本発明の符号化方法は、所定の色の画素が含まれているブロックを検出する検出ステップと、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップとを含むことを特徴とする。
【００３８】
本発明の第１のプログラムは、所定の色の画素が含まれているブロックを検出する検出ステップと、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップとを含むことを特徴とする処理をコンピュータに実行させる。
【００３９】
本発明の符号化装置および符号化方法、並びに、第１のプログラムにおいては、所定の色の画素が含まれているブロックが検出され、１フレームに含まれる複数のブロックのうち、所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かが判断され、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化が制御される。
【００４０】
本発明の撮像装置は、撮像された、または、他の情報処理装置から取得された画像データ処理する画像処理手段を備え、画像処理手段は、画像データをブロックごとに量子化する量子化手段と、ブロックに、所定の色の画素が含まれているか否かを判断する判断手段と、１フレームに含まれる複数のブロックのうち、判断手段により所定の色の画素が含まれていると判断されたブロックの数が、所定の閾値以下であると判断された場合、判断手段により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、量子化手段による量子化を制御する制御手段とを備えることを特徴とする。
【００４１】
本発明の画像処理方法は、所定の色の画素が含まれているブロックを検出する検出ステップと、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップとを含むことを特徴とする。
【００４２】
本発明の第２のプログラムは、所定の色の画素が含まれているブロックを検出する検出ステップと、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップと、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップとを含むことを特徴とする処理をコンピュータに実行させる。
【００４３】
本発明の撮像装置および画像処理方法、並びに、第２のプログラムにおいては、所定の色の画素が含まれているブロックが検出され、１フレームに含まれる複数のブロックのうち、所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かが判断され、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化が制御される。
【発明の効果】
【００４４】
第１の本発明によれば、画像データを符号化することができ、特に、特定の色が含まれていると判断されたブロックの数に基づいて、量子化が制御されるので、符号化による画像の劣化を防ぐようにすることができる。
【００４５】
第２の本発明によれば、撮像された、または、取得された画像データを符号化することができ、特に、特定の色が含まれていると判断されたブロックの数に基づいて、量子化が制御されるので、符号化による画像の劣化を防ぐようにすることができる。
【発明を実施するための最良の形態】
【００４６】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００４７】
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００４８】
請求項１に記載の符号化装置（例えば、図３の符号化部１２１、または、図１１の符号化部１５１）は、画像データをブロックごとに量子化する量子化手段（例えば、図３または図１１の量子化部１７）と、ブロックに、所定の色（例えば、肌色）の画素が含まれているか否かを判断する判断手段（例えば、図３または図１１の肌色検出部１３３）と、１フレームに含まれる複数のブロックのうち、判断手段により所定の色の画素が含まれていると判断されたブロックの数が、第１の閾値以下であると判断された場合、判断手段により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、量子化手段による量子化を制御する制御手段（例えば、図３または図１１の制御部１３２）とを備えることを特徴とする。
【００４９】
請求項２に記載の符号化装置は、ブロックのアクティビティを検出するアクティビティ検出手段（例えば、図３または図１１の視覚パラメータ検出部３１）を更に備え、制御手段は、アクティビティ検出手段により検出されたブロックのアクティビティを更に用いて、量子化手段による量子化を制御することを特徴とする。
【００５０】
請求項３に記載の符号化装置は、制御手段が、処理中の画像データと時間的に一つ前の画像データとの動きを示す値（例えば、残差分散の関数）を求め、その値を更に用いて、量子化手段による量子化を制御することを特徴とする。
【００５１】
請求項４に記載の符号化装置は、画像データをフィルタリングするフィルタリング手段（例えば、図３または図１１のフィルタ１３１）と、フィルタリング手段によるフィルタリングを制御するフィルタリング制御手段（例えば、図３または図１１のフィルタ決定部１３７）とを更に備え、フィルタリング制御手段は、量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御することを特徴とする。
【００５２】
請求項５に記載の符号化装置は、マクロブロックの残差を演算する残差演算手段（例えば、図３または図１１の残差演算部１３５）を更に備え、フィルタリング制御手段は、残差演算手段により演算された残差が第２の閾値よりも大きい第１のマクロブロック（例えば、図８の中心マクロブロック）に対して、量子化手段による量子化の量子化スケールを基に、フィルタリングのカットオフ周波数を制御し、残差が第２の閾値よりも小さく、かつ、第１のマクロブロックに対して上下左右のいずれかの辺において接する第２のマクロブロック（例えば、図８の拡張マクロブロック）に対して、第２のマクロブロックの量子化スケールの１／２の量子化スケールにより定められるカットオフ周波数となるようにフィルタリングのカットオフ周波数を制御し、残差が第２の閾値よりも小さく、かつ、第１のマクロブロックに対して上下左右のいずれの辺においても接することがない第３のマクロブロック（例えば、図８のその他マクロブロック）に対して、フィルタリングが実行されないようにフィルタを制御することを特徴とする。
【００５３】
請求項６に記載の符号化装置は、画像データがフレーム内予測符号化データ（Ｉピクチャ）である場合、フレームない予測を実行するフレーム内予測実行手段（例えば、図１１のフレーム内予測部１６１）を更に備えることを特徴とする。
【００５４】
請求項７に記載の符号化装置は、画像データが順方向予測符号化データ（Ｐピクチャ）、または、双方向予測符号化データ（Ｂピクチャ）である場合の参照画像をフィルタリングするフィルタリング手段（例えば、図１１のループフィルタ）を更に備えることを特徴とする。
【００５５】
請求項８に記載の符号化方法は、所定の色（例えば、肌色）の画素が含まれているブロックを検出する検出ステップ（例えば、図９のステップＳ２１または図１０のステップＳ４１の処理）と、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップ（例えば、図９のステップＳ２２または図１０のステップＳ４２の処理）と、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップ（例えば、図９のステップＳ２３または図１０のステップＳ４４の処理）とを含むことを特徴とする。
【００５６】
また、請求項９に記載のプログラムにおいても、各ステップが対応する実施の形態（但し一例）は、請求項８に記載の情報処理方法と同様である。
【００５７】
請求項１０に記載の撮像装置は、撮像された、または、他の情報処理装置から取得された画像データ処理する画像処理手段（例えば、図２のカメラＤＳＰ６２）を備え、画像処理手段は、画像データをブロックごとに量子化する量子化手段（例えば、図３または図１１の量子化部１７）と、ブロックに、所定の色（例えば、肌色）の画素が含まれているか否かを判断する判断手段（例えば、図３または図１１の肌色検出部１３３）と、１フレームに含まれる複数のブロックのうち、判断手段により所定の色の画素が含まれていると判断されたブロックの数が、所定の閾値以下であると判断された場合、判断手段により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、量子化手段による量子化を制御する制御手段（例えば、図３または図１１の制御部１３２）とを備えることを特徴とする。
【００５８】
請求項１１に記載の画像処理方法は、所定の色（例えば、肌色）の画素が含まれているブロックを検出する検出ステップ（例えば、図９のステップＳ２１または図１０のステップＳ４１の処理）と、１フレームに含まれる複数のブロックのうち、検出ステップの処理により検出された所定の色の画素が含まれているブロックの数が、所定の閾値以下であるか否かを判断する判断ステップ（例えば、図９のステップＳ２２または図１０のステップＳ４２の処理）と、判断ステップの処理により、所定の色の画素が含まれているブロックの数が、所定の閾値以下であると判断された場合、判断ステップの処理により所定の色の画素が含まれていると判断されたブロックに割り当てられる符号化ビット数が増加するように、画像データの量子化を制御する制御ステップ（例えば、図９のステップＳ２３または図１０のステップＳ４４の処理）とを含むことを特徴とする。
【００５９】
また、請求項１２に記載のプログラムにおいても、各ステップが対応する実施の形態（但し一例）は、請求項１１に記載の情報処理方法と同様である。
【００６０】
以下、図を参照して、本発明の実施の形態について説明する。
【００６１】
図２は、本発明を適用した撮像装置５１の構成を示すブロック図である。撮像装置５１は、図２に示すように、カメラ部６１、カメラDSP（Digital Signal Processor）６２、SDRAM（Synchronous Dynamic Random Access Memory）２３、媒体インタフェース（以下、媒体Ｉ／Ｆと称する）２４、制御部６５、操作部６６、LCD（Liquid Crystal Display）コントローラ６７、LCD６８、および、外部インタフェース（以下、外部Ｉ／Ｆと称する）６９を備え、媒体Ｉ／Ｆ６４には、記録媒体７０が着脱可能とされている。
【００６２】
記録媒体７０には、半導体メモリが用いられている、いわゆるメモリカード、情報を記録再生可能なＤＶＤ（Digital Versatile Disk）やＣＤ（Compact Disc）等の光記録媒体、または、磁気ディスクなど、種々のものを用いることができる。
【００６３】
カメラ部６１は、光学ブロック７１、CCD（Charge Coupled Device）７２、前処理部７３、光学ブロック用のドライバ７４、CCD用のドライバ７５、および、タイミング生成回路７６を備えたものである。ここで、光学ブロック７１は、レンズ、フォーカス機構、シャッター機構、絞り（アイリス）機構などを備え、CCD７２に入射する光を制御するものである。
【００６４】
光学ブロック用のドライバ７４は、画像の撮影時において、制御部６５からの制御に基づいて、光学ブロック７１を動作させるための駆動信号を形成し、これを光学ブロック７１に供給する。光学ブロック７１は、ドライバ７４からの駆動信号に基づいて、フォーカス機構、シャッター機構、絞り機構を駆動し、被写体の画像を取り込んで、これをCCD７２に対して提供する。
【００６５】
タイミング生成回路７６は、制御部６５からの制御に応じて、所定のタイミングを提供するタイミング信号を形成して、CCD７２およびCCDを駆動させるドライバ７５に供給する。また、ドライバ７５は、タイミング生成回路７６からのタイミング信号に基づいて、CCD７２に供給する駆動信号を形成して、CCD７２に出力する。
【００６６】
CCD７２は、光学ブロック７１から供給される光（すなわち、画像）を光電変換して出力するものであり、CCD用のドライバ７５からの駆動信号に応じて動作し、光学ブロック７１からの被写体の画像を取り込むとともに、制御部６５によって制御されるタイミング生成回路７６からのタイミング信号に基づいて、取り込んだ被写体の画像（画像情報）を電気信号として前処理部７３に供給する。
【００６７】
前処理部７３は、供給された電気信号の画像情報に対して、CDS（Correlated Double Sampling）処理を行って、Ｓ／Ｎ（Signal／Noise）比を良好に保つようにするとともに、AGC（Automatic Gain Control）処理を行って、利得を制御し、そして、A／D（Analog／Digital）変換を行って、デジタル信号とされた画像データを形成し、カメラDSP６２に供給する。
【００６８】
また、制御部６５は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、フラッシュＲＯＭ（Read Only Memory）１０３、および、タイマ１０４が、システムバス１０５を介して接続されて構成されたマイクロコンピュータであり、撮像装置５１の各部を制御する。
【００６９】
ここで、ＲＡＭ１０２は、処理の途中結果を一時記憶するなど、主に作業領域として用いられるものである。また、フラッシュＲＯＭ１０３は、ＣＰＵ１０１において実行する種々のプログラムや、処理に必要なデータなどが記憶されたものである。また、タイマ１０４は、現在年月日、現在曜日、現在時刻を提供することができるとともに、撮影日時などを提供するなどができるものである。
【００７０】
カメラDSP６２は、前処理部７３から供給された画像データに対して、ＡＦ／ＡＥ／ＡＷＢ処理部９１により、ＡＦ（Auto Focus）、ＡＥ（Auto Exposure）、および、ＡＷＢ（Auto White Balance）などのカメラ信号処理を施す。圧縮／解凍部９２は、供給された信号処理済の信号に対して、後述する符号化部１２１（図３）により、所定の圧縮方式でデータ圧縮を施し、システムバス１０５を介して、媒体Ｉ／Ｆ６４に装着された記録媒体７０に供給されて記録される。
【００７１】
また、タッチパネルやコントロールキーなどからなる操作部６６を介して受け付けられたユーザからの操作入力に応じて、記録媒体７０に記録された画像データのうち、ユーザが所望する画像データが読み出されて、媒体Ｉ／Ｆ６４およびシステムバス１０５を介して、カメラDSP６２に供給される。
【００７２】
カメラDSP６２は、記録媒体７０から読み出され、媒体Ｉ／Ｆ６４を介して供給されたデータ圧縮されている画像データについて、圧縮／解凍部９２により、その圧縮されたデータの解凍処理（伸張処理）を行い、解凍後の画像データを、システムバス１０５を介して、LCDコントローラ６７に供給する。LCDコントローラ６７は、供給された画像データからLCD６８に供給する画像信号を形成し、LCD６８に供給して表示させる。これにより、記録媒体７０に記録されている画像データに応じた画像が、LCD６８の表示画面に表示される。
【００７３】
なお、画像の表示の形態は、例えば、フラッシュＲＯＭ１０３に記録された表示処理プログラムに基づいて実行される。
【００７４】
また、撮像装置５１には、外部Ｉ／Ｆ６９が設けられている。撮像装置５１は、外部Ｉ／Ｆ６９を介して、例えば、外部の図示しないパーソナルコンピュータと接続されて、パーソナルコンピュータから画像データの供給を受けて、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録したり、また、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録されている画像データを、外部のパーソナルコンピュータ等に供給することができる。
【００７５】
また、撮像装置５１は、外部Ｉ／Ｆ６９に通信モジュールを接続することにより、例えば、インターネットなどのネットワークに接続して、ネットワークを介して種々の画像データやその他の情報を取得し、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録したり、また、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録されている画像データを、ネットワークを介して目的とする相手先に送信することができる。
【００７６】
また、外部のパーソナルコンピュータやネットワークを介して取得され、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録された画像データなどの情報についても、上述した場合と同様にして、LCD６８に表示してユーザが参照可能なようにすることができることは言うまでもない。
【００７７】
なお、外部Ｉ／Ｆ６９は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４、ＵＳＢ（Universal Serial Bus）などの有線用インタフェースとして設けることも可能であるし、光や電波による無線インタフェースとして設けることも可能である。すなわち、外部Ｉ／Ｆ６９は、有線、無線のいずれのインタフェースであってもよい。
【００７８】
このように、撮像装置５１は、被写体の画像を撮影して、媒体Ｉ／Ｆ６４に装着された記録媒体７０に記録することができるとともに、記録媒体７０に記録された画像データを読み出して、これを再生し、利用することができるものである。また、撮像装置５１は、外部のパーソナルコンピュータやネットワークを介して、画像データの提供を受けて、記録媒体７０に記録したり、また、記録媒体７０に記録された画像データを読み出して再生することができるものである。
【００７９】
図３は、図２の圧縮／解凍部９３に含まれ、圧縮処理（符号化処理）を実行する符号化部１２１の構成を示すブロック図である。
【００８０】
なお、従来の場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図３の符号化部１２１は、制御部３０に代わって、制御部１３２が設けられ、新たに、フィルタ１３１、肌色検出部１３３、フレームメモリ１３４、残差演算部１３５、フレームメモリ１３６、および、フィルタ決定部１３７が設けられている以外は、図１を用いて説明した従来の符号化部と基本的に同様の構成を有するものである。
【００８１】
フィルタ１３１は、画面並べ替え部１２から出力され、フレームメモリ１３において、１フレーム分遅延された画面データの入力を受け、フィルタ決定部１３７の制御に基づいて、マクロブロック単位でカットオフ周波数と減衰量を調節できる低域通過フィルタ（ローパスフィルタ）によって、画像データをフィルタリングする。
【００８２】
符号化前の画面データに、低域通過フィルタによるフィルタリングを施しておくことにより、量子化の影響を受けやすい高域成分を予め減衰させることができ、不必要に高域成分を符号化することをさけることができるため、低域成分の符号化に余裕が生じ、MPEGの符号化ノイズを減少させることが可能となる。
【００８３】
ここで、フィルタ１３１によって、どのマクロブロックに対しても同一の低域通過フィルタをかけてしまうと、高域成分が全体的に削除されてしまうため、画像全体がぼやけてしまう。したがって、フィルタ１３１を、カットオフ周波数のさまざまなフィルタを複数保持するフィルタバンクとして構成することにより、フィルタ決定部１３７の制御に基づいて、フィルタスルー（全ての帯域を通過させる）から最もカットオフ周波数の低い状態までのうちで、最適なフィルタが選択されて、画像データに応じたフィルタリング処理が施されるようになされている。
【００８４】
肌色検出部１３３は、マクロブロックごとに肌色画素の検出を行う。すなわち、肌色検出部１３３は、入力画素のCb,Cr値が図４の斜線で示すような特定領域に存在するかどうかを検出し、入力画素のCb,Cr値が特定領域に存在する場合、その画素を肌色画素と判定し、マクロブロック中に肌色画素が１つでもあれば、そのマクロブロックを肌色マクロブロックとみなし、肌色マクロブロックの検出結果をフレームメモリ１３４に供給する。
【００８５】
フレームメモリ１３４は、肌色マクロブロックの検出結果を、１フレームの処理時間だけ遅延させた後、制御部１３２に供給する。
【００８６】
制御部１３２は、バッファ２８のバッファ使用量、および、視覚パラメータ検出部３１から出力され、フレームメモリ３２で遅延された後供給された視覚パラメータ（アクティビティ）を用いて量子化スケールを算出するのみならず、フレームメモリ１３４から供給される信号を基に、画質上重要となる肌色マクロブロックに対して、ビットが多く配分され、肌色マクロブロックにおいて、その他のマクロブロックより量子化スケールが小さくなるように量子化部１６を制御するような量子化スケールを算出する。
【００８７】
すなわち、制御部１３２は、上述した式（４）および式（５）を用いて説明した量子化インデックスQjを算出するとともに、次の式（７）および式（８）を用いて、量子化スケールqscaleを算出する。
【００８８】
qscale＝Qj・（2・mact＋avg_mact）／mact＋2・avg_mact    ・・・（７）
mact＝act／m      ・・・（８）
【００８９】
ここで、ｍは、肌色マクロブロックではないマクロブロックにおいては１とされ、肌色マクロブロックにおいては、１以上の正の数であって実験的または経験的に求められる定数であり、mactは、j番目のマクロブロックの変調アクティビティであり、avg_mactは、１画面分のマクロブロックにおける平均の変調アクティビティである。以下、avg_mactを平均変調アクティビティと称するものとする。
【００９０】
すなわち、肌色マクロブロックではないマクロブロックにおいては、式（７）は、上述した式（６）と等しいものとなる。一方、肌色マクロブロックと判断したマクロブロックにおいては、mactはactより小さくなり、量子化スケールqscaleは、Qjよりも小さくなるので、通常より小さい量子化スケールで符号化が実行されることとなるため、肌色部分の画質が向上する。
【００９１】
更に、制御部１３２は、フィルタ決定部１３７がフィルタ１３１を制御するために必要な量子化スケールの情報を、フィルタ決定部１３７に供給する。
【００９２】
残差演算部１３６は、動き検出部２６において動き検出された結果を基に、予測残差（輝度の差分値）を演算し、フレームメモリ１３６に供給する。フレームメモリ１３６は、供給された予測残差を、１フレームの処理時間分だけ遅延させた後、フィルタ決定部１３７に供給する。
【００９３】
フィルタ決定部１３７は、フレームメモリ１３６から供給された予測残差、および、制御部１３２から供給される量子化スケールの情報に基づいて、フィルタリングの必要性を判断して、フィルタリングするマクロブロックを選択する。具体的には、フィルタ決定部１３７は、残差の大きいマクロブロックは符号化に多量のビットを消費すること、また仮に少ないビットで符号化するとMPEGノイズが発生してしまうことを考慮し、残差の大きいマクロブロック、および、残差の大きなマクロブロックと接するマクロブロックに対して、フィルタリングを施すこととする。そして、フィルタ決定部１３７は、制御部１３２から供給される量子化スケールの情報を基に、カットオフ周波数を決定して、フィルタ１３１を制御する。
【００９４】
次に、図５のフローチャートを参照して、フィルタ選択処理について説明する。
【００９５】
ステップＳ１において、残差演算部１３５は、動き検出部２６において動き検出された結果を基に、予測残差を演算し、フレームメモリ１３６に供給する。
【００９６】
ステップＳ２において、フィルタ決定部１３７は、フレームメモリ１３６から、予測残差情報を取得して、残差は、所定の閾値よりも大きいか否かを判断する。ここで、所定の閾値とは、そのままで符号化することにより、他のマクロブロックの画質に影響を及ぼすほど多量のビットを消費してしまうため、フィルタリングを必要とする場合の残差として、実験的または経験的に設定される値である。また、本発明を適用した処理においては、残差が閾値より大きいマクロブロックを、フィルタリングの中心という意味で、中心マクロブロックと称するものとする。
【００９７】
ステップＳ２において、残差は、所定の閾値よりも大きいと判断された場合、ステップＳ３において、フィルタ決定部１３７は、制御部１３２により供給された情報を基に、量子化スケールにより求められるカットオフ周波数でフィルタリングを行わせるために、フィルタ１３１を制御する。フィルタ１３１は、フィルタ決定部１３７の制御に基づいて、量子化スケールを基に求められるカットオフ周波数のフィルタを選択してフィルタリングを実行し、処理が終了される。
【００９８】
図６を用いて、カットオフ周波数と量子化スケールとの関係について説明する。
【００９９】
フィルタ決定部１３７は、量子化スケールが大きくなるほどカットオフ周波数が低くなり、量子化スケールが小さくなるほどカットオフ周波数が高くなるように、フィルタ１３１によるフィルタの選択を制御する。
【０１００】
これは、圧縮率が高い量子化スケールの大きなマクロブロックでは、カットオフ周波数を下げることは、MPEGノイズの発生を防止するのに好適であり、一方、丁寧にエンコードする必要がある量子化スケールの小さなマクロブロックにおいては、周波数特性をできるだけ変更せずに画質を維持する必要があるためである。
【０１０１】
ここで、カットオフ周波数と量子化スケールとの関係は、線形でも良いのであるが、図６に示されるように、非線形であるほうが好適である。すなわち、量子化スケールの小さなマクロブロックは、視覚特性上重要である可能性が高いため、できるだけ周波数特性を変化させないように符号化するのが良いと考えられる。そのため、量子化スケールの小さなうちは、量子化スケールの値が上昇しても、カットオフ周波数が減少しすぎることがないようにするほうが良い。一方、量子化スケールがある程度大きいマクロブロックにおいては、量子化スケールが大きいほど、量子化によるＤＣＴ係数の切捨てが激しくなるため、MPEGノイズの発生量が増加すると考えられる。そのため、カットオフ周波数と量子化スケールとの関係は、量子化スケールが大きくなるにともなって、量子化スケールの増加にともなうカットオフ周波数の減少の割合が大きくなるように、すなわち、カットオフ周波数と量子化スケールとの関係が非線形となるようになされている。
【０１０２】
ステップＳ２において、残差は、所定の閾値よりも小さいと判断された場合、ステップＳ４において、フィルタ決定部１３７は、判定対象マクロブロックに対して、上下左右の位置にあるいずれかのマクロブロックが中心マクロブロックであるか否かを判断する。
【０１０３】
すなわち、フィルタ決定部１３７は、図７に示されるように、判定対象マクロブロックに対して、上（図中Ａと記されたマクロブロック）、右（図中、Ｂと記されたマクロブロック）、下（図中Ｃと記されたマクロブロック）、または、左（図中Ｄと記されたマクロブロック）のいずれかに中心マクロブロックがあるか否かを判断する。
【０１０４】
ステップＳ４において、判定対象マクロブロックに対して、上下左右の位置にあるいずれかのマクロブロックが中心マクロブロックであると判断された場合、ステップＳ５において、フィルタ決定部１３７は、対象マクロブロックの量子化スケールをＱとしたとき、１／２Ｑに相当するカットオフ周波数を図６より求めてフィルタリングを行わせるために、フィルタ１３１を制御する。フィルタ１３１は、フィルタ決定部１３７の制御に基づいて、対象マクロブロックの量子化スケールの１／２の量子化スケールを基に求められるカットオフ周波数のフィルタを選択してフィルタリングを実行し、処理が終了される。
【０１０５】
ここで、自分自身に対して上下左右の位置にあるいずれかのマクロブロックが中心マクロブロックであるようなマクロブロックを、中心マクロブロックではないが、拡張してフィルタリングされるマクロブロックという意味で、以下、拡張マクロブロックと称するものとする。
【０１０６】
図８に示されるように、中心マクロブロックと辺を接するマクロブロックは、中心マクロブロック、または、拡張マクロブロックである。また、拡張マクロブロックと辺を接するマクロブロックは、中心マクロブロック、または、中心マクロブロックでも拡張マクロブロックでもない、その他マクロブロックとなる。また、その他マクロブロックは中心マクロブロックとは辺を接することがない。中心マクロブロックとその他マクロブロックでは、周波数特性が大幅に変更される可能性があり、中心マクロブロックとその他マクロブロックを隣に配置して、その中央の１辺（接する１辺）を共通とすると、その特性差から両マクロブロック間に境目が発生してしまう恐れがある。これを防止するため、中心マクロブロックとその他マクロブロックとの間に、弱くフィルタリングされる拡張マクロブロックを配置するようになされている。
【０１０７】
ステップＳ４において、判定対象マクロブロックに対して、上下左右の位置にあるいずれかマクロブロックも中心マクロブロックではない、すなわち、上下左右の位置にあるいずれのマクロブロックもフィルタリングが施されないマクロブロックであるその他マクロブロックであると判断された場合、ステップＳ６において、フィルタ決定部１３７は、対象マクロブロックに対して、フィルタリングを行わせないようにフィルタ１３１を制御する。フィルタ１３１は、フィルタ決定部１３７の制御に基づいて、フィルタリングを実行せずに対象マクロブロックを出力し、処理が終了される。
【０１０８】
このような処理により、残差が所定の閾値より大きいマクロブロックにおいては、MPEGノイズの発生を防止するために、量子化スケールにより定められるカットオフ周波数でフィルタリングが実行され、残差が所定の閾値より小さい場合は、中心マクロブロックとその他マクロブロックとの間に境目が発生してしまうのを防ぐために、中心マクロブロックに接する拡張マクロブロックにおいて、対象マクロブロックの量子化スケールをＱとしたとき、１／２Ｑに対応するカットオフ周波数でフィルタリングが実行される。
【０１０９】
次に、図９のフローチャートを参照して、符号化装置１２１において実行される量子化スケール算出処理１について説明する。
【０１１０】
ステップＳ２１において、肌色検出部１３３は、マクロブロックごとに肌色画素の検出を行う。すなわち、肌色検出部１３３は、入力画素のCb,Cr値が図４の斜線で示すような特定領域に存在するかどうかを検出し、入力画素のCb,Cr値が特定領域に存在する場合、その画素を肌色画素と判定し、マクロブロック中に肌色画素が１つでもあれば、そのマクロブロックを肌色マクロブロックとみなし、肌色マクロブロックの検出結果をフレームメモリ１３４に供給する。フレームメモリ１３４は、肌色マクロブロックの検出結果を、１フレーム分の時間だけ遅延させた後、制御部１３２に供給する。
【０１１１】
ステップＳ２２において、制御部１３２は、フレームメモリ１３４から供給された肌色マクロブロックの検出結果を基に、肌色マクロブロック数は、所定の閾値以上であるか否かを判断する。
【０１１２】
ステップＳ２２において、肌色マクロブロック数は、所定の閾値以下であると判断された場合、ステップＳ２３において、制御部１３２は、qscale＝Qj×（2・mact＋avg_mact）／（mact＋2・avg_mact）により、肌色マクロブロックに多くのビットが割り当てられるような量子化スケールを求める。そして、この量子化スケールを基に量子化部１７により量子化処理が行われて、VLC部２７により符号化が行われ、処理が終了される。
【０１１３】
ステップＳ２２において、肌色マクロブロック数は、所定の閾値以上であると判断された場合、ステップＳ２４において、制御部１３２は、qscale＝Qj×（2・act＋avg_act）／（act＋2・avg_act）により、肌色マクロブロックであるか否かに関わらず、アクティビティのみによってビット割当てが決まるような量子化スケールを求める。そして、この量子化スケールを基に量子化部１７により量子化処理が行われて、VLC部２７により符号化が行われ、処理が終了される。
【０１１４】
その画面のマクロブロックのうちの肌色マクロブロックの割合に関わらず、他のマクロブロックより肌色マクロブロックに多くのビットを配分した場合、その画面のマクロブロックのほとんどが肌色マクロブロックであるときに、肌色マクロブロックでないマクロブロックの画質が極端に悪化してしまう恐れがある。したがって、ここでは、肌色マクロブロックではないマクロブロックの画質が極端に悪化してしまうことを防止するため、１フレーム中の肌色マクロブロックの数が所定の閾値より多い場合、量子化スケールは、上述した式（６）を用いて算出するようになされ、１フレーム中の肌色マクロブロックの数が所定の閾値より少ない場合、量子化スケールは、上述した式（７）を用いて算出するようになされている。なお、ここで用いられる閾値は、その画面のマクロブロックののうちの肌色マクロブロックの割合が、閾値以上である場合、肌色マクロブロックでないマクロブロックの画質が極端に悪化してしまう恐れが発生する値であって、実験的または経験的に定められる値である。
【０１１５】
このような処理により、１フレーム中の肌色マクロブロックが占める割合が所定の閾値以上であるか否かを基に、量子化スケールの算出式が選択されるので、その画面のマクロブロックのほとんどが肌色マクロブロックであっても、肌色マクロブロックでないマクロブロックの画質が極端に悪化してしまうことを防止することが可能となる。
【０１１６】
また、残差演算部１３５により算出される残差の分散を用いて、順方向、または、双方向予測符号化が実行されるフレームにおいて、画面全体に動きがあるか、画面の一部のみに動きがある（例えば、画面上を人や物が横切るような映像である）かを検出し、それを基に、画面内の量子化スケールの変動幅を変更して、ビットの配分を制御することができるようにしても良い。
【０１１７】
このとき、次の式（９）および式（１０）の係数ｘの値を、画面中の動きのある部分の割合に基づいて変更することができるようにすることにより、量子化スケールを、フレームごとに最適な値に制御して、ビットを有効に使うことが可能となる。
【０１１８】
qscale＝Qj×（ｘ・act＋2・avg_act）／（2・act＋ｘ・avg_act）  ・・・（９）
qscale＝Qj×（ｘ・mact＋2・avg_mact）／（2・mact＋ｘ・avg_mact）
・・・（１０）
【０１１９】
ここで、式（９）は、肌色マクロブロックの数が所定の閾値よりも大きい場合に用いられる。すなわち、式（９）が用いられた場合、肌色マクロブロックにビット配分が集中されない。一方、式（１０）は、肌色マクロブロックの数が所定の閾値よりも小さい場合に用いられる。すなわち、式（１０）が用いられた場合、肌色マクロブロックに多くのビットが配分される。
【０１２０】
式（９）および式（１０）においては、係数xの値が大きいほど、変調アクティビティmactおよび平均の変調アクティビティavg_mactが変化したときの量子化インデックスQjの変化が大きくなるため、ビットの配分を局所的に変更させることができる。具体的には、画面の一部だけに動きがあった場合、画面の一部のみ、符号量を多く割り当てる必要があり、一方、画面全体に動きがあった場合、全体的に符号量の差が大きくならないように、符号を割り当てるようにする必要がある。そのため、画面の一部だけに動きがあった場合には、式（９）および式（１０）の係数xの値を大きくして画面内の量子化スケールの変動幅を大きくし、符号を必要としているマクロブロックにビットが集まるようにし、画面の全体に動きがある場合には、式（９）および式（１０）の係数xの値を小さくして、できるだけ画面全体にビットが均等に配分されるようにする。
【０１２１】
次に、図１０のフローチャートを参照して、制御部１３２において実行される量子化スケール算出処理２について説明する。
【０１２２】
ステップＳ４１において、肌色検出部１３３は、マクロブロックごとに肌色画素の検出を行う。すなわち、肌色検出部１３３は、入力画素のCb,Cr値が図４の斜線で示すような特定領域に存在するかどうかを検出し、入力画素のCb,Cr値が特定領域に存在する場合、その画素を肌色画素と判定し、マクロブロック中に肌色画素が１つでもあれば、そのマクロブロックを肌色マクロブロックとみなし、肌色マクロブロックの検出結果をフレームメモリ１３４に供給する。フレームメモリ１３４は、肌色マクロブロックの検出結果を、１フレーム分の時間だけ遅延させた後、制御部１３２に供給する。
【０１２３】
ステップＳ４２において、制御部１３２は、フレームメモリ１３４から供給された肌色マクロブロックの検出結果を基に、肌色マクロブロック数は、所定の閾値以上であるか否かを判断する。
【０１２４】
ステップＳ４２において、肌色マクロブロック数は、所定の閾値以下であると判断された場合、ステップＳ４３において、制御部１３２は、残差演算部１３５から供給された残差を基に、１画面の残差の分散の関数から、係数ｘを求める。ここで、係数ｘは、２よりも大きな値であり、フレームの画面の動きが一部だけであるとき、係数ｘは大きな値に、フレームの画面全体に動きがあるとき、係数ｘは小さな値となるように定められる。
【０１２５】
なお、係数ｘが４である場合、式（９）および式（１０）は、それぞれ、式（６）および式（７）と等しくなる。
【０１２６】
ステップＳ４４において、制御部１３２は、qscale＝Qj×（ｘ・mact＋2・avg_mact）／（2・mact＋ｘ・avg_mact）により、量子化スケールを求めて、この量子化スケールを基に量子化部１７により量子化処理が行われて符号化が行われ、処理が終了される。
【０１２７】
ステップＳ４２において、肌色マクロブロック数は、所定の閾値以上であると判断された場合においても、ステップＳ４５において、ステップＳ４３と同様にして、制御部１３２は、残差演算部１３５から供給された残差を基に、１画面の残差の分散の関数から、係数ｘを求める。係数ｘは、２よりも小さな値であり、フレームの画面の動きが一部だけであるとき、係数ｘは大きな値に、フレームの画面全体に動きがあるとき、係数ｘは小さな値となるように定められる。
【０１２８】
ステップＳ４６において、制御部１３２は、qscale＝Qj×（ｘ・act＋2・avg_act）／（2・act＋ｘ・avg_act）により、量子化スケールを求めて、この量子化スケールを基に量子化部１７により量子化処理が行われて符号化が行われ、処理が終了される。
【０１２９】
このような処理により、画面の一部だけに動きがあった場合には、式（９）および式（１０）の係数ｘの値を大きくして画面内の量子化スケールの変動幅を大きくし、符号量を必要としているマクロブロックにビットが多く配分されるようにし、画面の全体に動きがある場合には、式（９）式（１０）の係数ｘの値を小さくして、できるだけ画面全体にビットが均等に配分されるようにすることができる。
【０１３０】
なお、ここでは、画面の一部が動いたか、画面の全体が動いたかを検出するために、残差の分散を用いたが、画面の一部が動いたか、画面の全体が動いたかを、他の条件を用いて検出するようにしてもよいことは言うまでもない。
【０１３１】
また、式（７）および式（１０）においては、肌色マクロブロックにおいて、アクティビティを所定の定数mで除算してスケーリングするようにしたので、肌色マクロブロック間のアクティビティの相対的な大きさは保持されることになる。このため、同じ肌色マクロブロックと判断されたマクロブロック間でも、アクティビティの小さなマクロブロックは、アクティビティの大きなマクロブロックより量子化スケールが小さくなり、相対的に画質がよくなる。これは、人間の顔で言えば、頬のような平坦な部分の方が、鼻のような高域成分の多い部分より符号量が多く割り当てられるようになされているということであり、このようにすることにより、視覚特性上好ましい画像を得ることができる。
【０１３２】
このように、本発明を適用した撮像装置における符号化部においては、残差を基に、適切にマクロブロックを選び、このマクロブロックにあわせて特性をコントロールした低域フィルタを用いて符号化前にフィルタリングを行うことで、MPEGノイズを目立たなくして全体の画質改善を行うことができ、更に、肌色マクロブロックの全体の画像に対する割合と、肌色マクロブロックであるか否かの検出結果を用いて、量子化スケールの演算を制御するようにしたので、MPEG2エンコードの際に、視覚上重要な人間の顔部分の画質を改善することができる。
【０１３３】
更に、画面の一部が動いたか、画面の全体が動いたかを検出することにより、量子化スケールの１画面内での変動幅を制御することができるようにしたので、全体に動きがある画面であっても、画面の一部のみが動くような画面であっても、マクロブロックごとのビット配分を最適化することができる。
【０１３４】
更に、本発明は、ITU-TのVCEG（Video Coding Experts Group ）とISO／IECのMPEG
（Moving Picture Experts Group）という2つの団体が共同で進める動画像符号化の標準化組織であるJVT(Joint Video Team)で標準化される、H.264（H.264／MPEG4 AVCや、MPEG4 Part10とも称される）を用いた符号化処理においても適用可能である。
【０１３５】
H.264では、Ｉピクチャについてフレーム内予測を実行し、差分値を整数変換（Integer Transform）する。整数変換はＤＣＴの浮動小数点計算を整数化した手法であり、ブロックサイズを４×４としたことにより、デコード画像のブロックノイズを目立たなくすることができる。また、H.264では、輝度成分において、４×４画素ブロックで、９種類の予測モードと、１６×１６ブロックで４種類の予測モードを有する。各マクロブロックを、ＤＣＴしていた従来の手法と比較して、H.264の方式においては、差分値により値自体が小さくなり、多くの場合差分値データには原画像に比べて高周波成分が少なくなることから、量子化後の生成符号量を削減することができる。
【０１３６】
そして、H.264のフレーム間予測においては、予測に用いるブロックサイズは、従来の１６×１６や８×８のみならず、７種類のブロック形状を用いて予測が行われる。例えば、１６×１６ブロック内に複雑な部分と平坦な部分がある場合、柔軟にブロックサイズを変えて予測に用いることができるため、量子化後の生成符号量を削減することができる。
【０１３７】
また、H.264では、最大５フレームを参照画像として用いることができる。このことは、演算量とメモリ量の増大につながるが、より類似したブロックを選択して参照することが可能となるので、差分データ値が小さくなり、生成符号量を削減することができる。
【０１３８】
そして、H.264では、ベースラインプロファイルおよびＸプロファイルにおいては、MPEG2における場合と同様にして、ＶＬＣベースの符号が用いられるが、具体的には、ハフマン符号より処理が簡単である指数ゴロム符号（Exponential Golomb Coding）と、それを応用したCAVLC（Context-based AdaptiveVariable Length Coding）が用いられる。また、メインプロファイルでは、ＶＬＣベースの符号に加えて、CABAC（Context-based AdaptiveBinary Arithmetic Coding）という算術符号を用いることにより、生成符号量を削減することができる。
【０１３９】
また、H.264では、エンコーダおよびデコーダ内において、再構成画像作成時（参照画像の作成時）に、ループフィルタ（デブロックフィルタ）が用いられる。ループフィルタが用いられることにより、従来のMPEGによる符号化の手法よりも演算量は増加するが、デコード画像のブロックノイズを低減し、符号化による画質の低下を防ぐようにすることができる。
【０１４０】
図１１は、本発明を適用した、H.264を用いて符号化処理を実行する符号化部１５１の構成を示すブロック図である。なお、図３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図１１の符号化部１５１は、ＤＣＴ部１６に代わって、変換処理部１６２が設けられ、IDCT部１９に代わって、逆変換処理部１６３が設けられ、ＶＬＣ部２７に代わって、エントロピー符号化部１６５が設けられ、新たに、フレーム内予測部１６１、および、ループフィルタ１６４が設けられている以外は、図３を用いて説明した符号化部１２１と基本的に同様の構成を有するものである。
【０１４１】
フレーム内予測部１６１は、Ｉピクチャについてフレーム内予測を実行し、予測結果をスイッチ１５の端子ｂに出力する。
【０１４２】
変換処理部１６２は、Ｉピクチャのフレーム内予測結果、並びに、ＰピクチャおよびＢピクチャのフレーム間予測結果の入力を受け、整数変換を行う。
【０１４３】
逆変換処理部１６３は、逆量子化部１８から供給された信号に、変換処理部１６２が施した整数変換とは逆の変換である、逆整数変換を施す。
【０１４４】
ループフィルタ１６４は、デコード画像のブロックノイズを低減させるために、フレームメモリ２１に保存される参照画像にフィルタリングを施す。
【０１４５】
エントロピー符号化部１６５は、プロファイルに対応した方法で符号化処理を実行する。
【０１４６】
なお、図１１を用いて説明した符号化部１５１においても、図３の符号化部１２１と同様に、図５を用いて説明した方法で、フィルタ決定部１３７の制御に基づいて、フィルタ１３１により用いられるフィルタが選択され、図９または図１０を用いて説明した処理により、制御部１３２が量子化部１７による量子化を制御するので、それらの詳細な説明については省略する。
【０１４７】
ここでは、撮像装置５１に含まれる符号化部１２１または符号化部１５１について説明したが、本発明は、撮像装置以外においても、符号化部１２１または符号化部１５１と同様の構成を有する符号化部を有する画像処理装置、または、符号化装置などにおいても適用可能である。
【０１４８】
なお、本発明は、例えば、リオーダリングディレイの原因となるＢピクチャ、および、発生符号量の多いＩピクチャを使用せずに、Ｐピクチャのみを使用し、このＰピクチャを、数スライスからなるイントラスライスと、残り全てのスライスからなるインタースライスとに区切ることにより、リオーダリングなしに符号化することができるようになされているローディレイエンコードを行う場合においても適用可能である。
【０１４９】
また、本発明は、ローディレイコーディングとして各フレーム画像を全てＰピクチャとし、例えば、横４５マクロブロック、縦２４マクロブロックの画枠サイズの中でフレーム画像の上段から縦２マクロブロックおよび横４５マクロブロック分の領域を１つのイントラスライス部分、他を全てインタースライス部分として設定するようにした場合においても、イントラスライス部分を縦１マクロブロック、横４５マクロブロック分の領域とするなど、他の種々の大きさの領域で形成するようにした場合においても適用可能である。
【０１５０】
更に、上述の実施の形態においては、本発明をMPEG方式によって圧縮符号化する符号化部１２１、または、符号化部１５１に適用するようにした場合について述べたが、本発明はこれに限らず、他の種々の画像圧縮方式による符号化装置に適用するようにしても良い。
【０１５１】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、符号化部１２１や、符号化部１５１は、図１２に示されるようなパーソナルコンピュータ２０１により構成される。
【０１５２】
図１２において、ＣＰＵ（Central Processing Unit）２１１は、ＲＯＭ（Read Only Memory）２１２に記憶されているプログラム、または記憶部２１８からＲＡＭ（Random Access Memory）２１３にロードされたプログラムに従って、各種の処理を実行する。ＲＡＭ２１３にはまた、ＣＰＵ２１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１５３】
ＣＰＵ２１１、ＲＯＭ２１２、およびＲＡＭ２１３は、バス２１４を介して相互に接続されている。このバス２１４にはまた、入出力インタフェース２１５も接続されている。
【０１５４】
入出力インタフェース２１５には、キーボード、マウスなどよりなる入力部２１６、ディスプレイやスピーカなどよりなる出力部２１７、ハードディスクなどより構成される記憶部２１８、モデム、ターミナルアダプタなどより構成される通信部２１９が接続されている。通信部２１９は、インターネットを含むネットワークを介しての通信処理を行う。
【０１５５】
入出力インタフェース２１５にはまた、必要に応じてドライブ２２０が接続され、磁気ディスク２２１、光ディスク２２２、光磁気ディスク２２３、もしくは、半導体メモリ２２４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部２１８にインストールされる。
【０１５６】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１５７】
この記録媒体は、図１２に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク２２１（フロッピディスクを含む）、光ディスク２２２（ＣＤ-ＲＯＭ（Compact Disk-Read Only Memory），ＤＶＤ（Digital Versatile Disk）を含む）、光磁気ディスク２２３（ＭＤ（Mini-Disk）（商標）を含む）、もしくは半導体メモリ２２４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているＲＯＭ２１２や、記憶部２１８に含まれるハードディスクなどで構成される。
【０１５８】
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的もしくは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１５９】
【図１】従来の符号化装置の構成を示すブロック図である。
【図２】本発明を適用した撮像装置の構成を示すブロック図である。
【図３】図２の圧縮／解凍部に含まれる符号化部の構成を示すブロック図である。
【図４】肌色の検出について説明するための図である。
【図５】フィルタ選択処理について説明するためのフローチャートである。
【図６】量子化スケールとカットオフ周波数の関係について説明するための図である。
【図７】判定対象マクロブロックと中心マクロブロックとの位置関係について説明するための図である。
【図８】中心マクロブロック、拡張マクロブロック、および、その他のマクロブロックとの関係について説明するための図である。
【図９】量子化スケール算出処理１について説明するためのフローチャートである。
【図１０】量子化スケール算出処理２について説明するためのフローチャートである。
【図１１】本発明を適用した符号化部の他の構成例を示すブロック図である。
【図１２】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０１６０】
１７  量子化部，  ３１  視覚パラメータ検出部，  ５１  撮像装置，  ６２  カメラDSP，  ９３  圧縮／解凍部，  １３１  フィルタ，  １３２  制御部，  １３３  肌色検出部，  １３５  残差演算部，  １６１  フレーム内予測部，  １６２  変換処理部，  １６３  逆変換処理部，  １６４  ループフィルタ，  １６５  エントロピー符号化部
【図１】
2005080151.tif 000005
【図２】
2005080151.tif 000006
【図３】
2005080151.tif 000007
【図４】
2005080151.tif 000008
【図５】
2005080151.tif 000009
【図６】
2005080151.tif 000010
【図７】
2005080151.tif 000011
【図８】
2005080151.tif 000012
【図９】
2005080151.tif 000013
【図１０】
2005080151.tif 000014
【図１１】
2005080151.tif 000015
【図１２】
2005080151.tif 000016