(57)【要約】【課題】手ぶれ等による撮像装置の動きが発生したときに、ブロックノイズの発生等による画質の劣化を軽減する画像処理装置を提供する。【解決手段】動き検出器１によって検出した画像データ内部の特徴点の動きから、位相算出器２およびレベル算出器３によって特徴点の移動する位相および移動量を算出する。これをヒストグラム生成器４および積分器５によって処理した結果から、手ぶれ判定器６によって手ぶれ等による撮像装置の動きが発生したか否かを判定する。動きが発生したと判定したときは量子化テーブル生成器７によって制御した量子化値から構成される量子化テーブルにより量子化することで撮像装置の動きに起因する画質の劣化を軽減することができる。【選択図】図１
2005217485.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置で撮像した画像データを量子化する画像処理装置であって、
前記画像データを圧縮するときに前記画像データ内における動きベクトルを検出する動き検出手段と、
検出した前記動きベクトルから、当該動きベクトルの方向である位相と、大きさであるレベルとを算出する算出手段と、
算出した前記位相および前記レベルを集計処理する集計手段と、
前記集計手段の処理結果に基づいて前記撮像装置に動きが発生したか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて量子化値を変更する変更手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記検出手段は、
前記画像データを時系列方向に監視し、前記画像データを複数に分割したマクロブロック内における特徴点の移動を検出する手段、
を含み、
前記算出手段は、
検出した前記特徴点の移動方向および移動量を、前記位相および前記レベルとして算出する手段、
を含むことを特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、
前記集計手段は、
算出した前記位相を前記画像データ全体に渡って集計したヒストグラムを生成し、算出した前記レベルの前記画像データ全体に渡るレベル平均値を算出する手段、
を含み、
前記判定手段は、
前記ヒストグラムおよび前記レベル平均値が所定の条件を満たすか否かを判定する手段、
を含むことを特徴とする画像処理装置。
【請求項４】
請求項１または請求項３のいずれかに記載の画像処理装置であって、
前記変更手段は、
前記判定手段が、前記撮像装置に動きが発生したと判定したときには、所定の量子化テーブルを構成する量子化値から差分量子化値を減算した量子化テーブルを生成する手段、
を含むことを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記変更手段は、
前記集計手段で算出した前記レベル平均値に応じて前記差分量子化値を変更する手段、
を含むことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラには、撮像した静止画像や動画像から成る画像データをＪＰＥＧ形式やＭＰＥＧ形式等の所定の形式に圧縮変換する画像処理装置を備えるものが多い。これらの画像処理装置では、レンズ等の光学系部品とＣＣＤやＣＭＯＳ等のセンサとから構成される撮像部から出力される画像データに対して、量子化や符号化等の処理を行うことにより、データを圧縮変換する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
撮像中に、手ぶれが発生したり、パンまたはチルト等の撮像装置に対する操作を行って、撮像装置に動きが発生すると、撮像面内において撮像対象物が移動することになる。画像データ内での撮像対象物の移動は、当該画像データを空間周波数に変換したときの周波数成分の低域側から高域側へのシフトにつながる。そして、画像データ内に高周波成分が増加すると、量子化等の画像処理によってブロックノイズ等が発生しやすくなる。
【０００４】
そこで、この発明の課題は、手ぶれ等による撮像装置の動きが発生したときに、ブロックノイズの発生等による画質の劣化を軽減する画像処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決すべく、請求項１の発明は、撮像装置で撮像した画像データを量子化する画像処理装置であって、前記画像データを圧縮するときに前記画像データ内における動きベクトルを検出する動き検出手段と、検出した前記動きベクトルから、当該動きベクトルの方向である位相と、大きさであるレベルとを算出する算出手段と、算出した前記位相および前記レベルを集計処理する集計手段と、前記集計手段の処理結果に基づいて前記撮像装置に動きが発生したか否かを判定する判定手段と、前記判定手段の判定結果に基づいて量子化値を変更する変更手段とを備えることを特徴とする。
【０００６】
また、請求項２の発明は、請求項１の発明に係る画像処理装置であって、前記検出手段は、前記画像データを時系列方向に監視し、前記画像データを複数に分割したマクロブロック内における特徴点の移動を検出する手段、を含み、前記算出手段は、検出した前記特徴点の移動方向および移動量を、前記位相および前記レベルとして算出する手段、を含むことを特徴とする。
【０００７】
また、請求項３の発明は、請求項１または請求項２の発明に係る画像処理装置であって、前記集計手段は、算出した前記位相を前記画像データ全体に渡って集計したヒストグラムを生成し、算出した前記レベルの前記画像データ全体に渡るレベル平均値を算出する手段、を含み、前記判定手段は、前記ヒストグラムおよび前記レベル平均値が所定の条件を満たすか否かを判定する手段、を含むことを特徴とする。
【０００８】
また、請求項４の発明は、請求項１または請求項３のいずれかの発明に係る画像処理装置であって、前記変更手段は、前記判定手段が、前記撮像装置に動きが発生したと判定したときには、所定の量子化テーブルを構成する量子化値から差分量子化値を減算した量子化テーブルを生成する手段、を含むことを特徴とする。
【０００９】
また、請求項５の発明は、請求項４の発明に係る画像処理装置であって、前記変更手段は、前記集計手段で算出した前記レベル平均値に応じて前記差分量子化値を変更する手段、を含むことを特徴とする。
【発明の効果】
【００１０】
請求項１、請求項２および請求項４に記載の発明によれば、撮像装置の動きを検出し、その結果に基づいて量子化値を変更することで、画像データを量子化したときに発生するブロックノイズ等の発生を抑え、画像を圧縮したときの画質の劣化を低減することができる。
【００１１】
請求項３に記載の発明によれば、撮像装置の動きをマクロブロック内の多数の特徴点を利用して捉え、その結果から生成したヒストグラムや平均値を求めて判定することで、より正確に撮像装置の動きを検出することができる。
【００１２】
請求項５に記載の発明によれば、画像装置の動きの大きさに応じた適切な量子化値を決定することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、この発明の一の実施の形態に係る画像処理装置の基本構成を示す図である。図１の如く、画像処理装置は、撮像装置の動きを検出する動き検出器１と、検出した動きを定量化する位相算出器２およびレベル算出器３と、定量化したデータを処理するヒストグラム生成器４および積分器５と、処理したデータから撮像装置の動きが手ぶれ等によるものか否かを判定する手ぶれ判定器６と、判定の結果に基づいて量子化に利用する量子化テーブルを生成する量子化テーブル生成器７と、を備える。
【００１４】
ここで、動き検出器１が動き検出手段を、位相算出器２およびレベル算出器３が算出手段を、ヒストグラム生成器４および積分器５が集計手段を、手ぶれ判定器６が判定手段を、量子化テーブル生成器７が変更手段を、それぞれ構成している。また、上記構成から成る画像処理装置は、専用のハードウェアおよびソフトウェアによって実現するが、これらの他に画像データを所定の形式に圧縮するための圧縮手段やデータの入出力手段等（図示せず）を備える構成であっても構わない。
【００１５】
画像処理装置によって行う処理内容を、図２にフローチャートで示す。以下、フローチャート内の各ステップにおいて、図１に示す各部が行う処理内容の詳細を説明する。
【００１６】
まず、ステップＳ１で、撮像中の画像データから、動き検出器１によって動き検出を行う。動き検出器１は、撮像中の画像データを時系列方向に監視することによって、手ぶれ、パン、またはチルトによる撮像装置の動きの発生を検出する。このときの動き検出器１の具体的な動作内容を図３を用いて説明する。動き検出を行うに際し、画像データを複数の矩形領域であるマクロブロック８に分割し、各マクロブロック８毎に、ある時刻に撮像されたフレームＦｎ（図３（ａ））と、その次に撮像されたフレームＦｎ＋１（図３（ｂ））の画像データとを比較する。比較は、図３（ｃ）に示すように、特徴量抽出技術を利用して輪郭や特徴点を抽出し、フレームＦｎで撮像された対象物の位置（図３中の特徴点Ｐ１）と、同一の対象物が移動して次フレームＦｎ＋１で撮像された位置（図３中の特徴点Ｐ２）とを特定することによって行う。その結果、図３（ｃ）に示すように、同一対象物の位置がＰ１からＰ２へ移動している場合には、撮像装置が動いたと判断することによって、動き検出を行う。動きを検出すると動き検出器１は、図３（ｃ）に示すｘおよびｙの値を出力する。
【００１７】
尚、動き検出は、ＭＰＥＧ形式等で動画像を圧縮するときにブロックマッチング等の手法により求められる動きベクトルを利用する態様であっても構わない。動きベクトルは上述した特徴点等を利用する場合と同様、画像データ内の対象物の動きを検出するものであるから、この動きベクトルから図３（ｃ）に示すｘおよびｙに相当する値を求めて利用することができる。
【００１８】
次に、ステップＳ２で位相算出器２が、動き検出器１の出力するｘおよびｙの値から、図３（ｃ）における特徴点Ｐ１からＰ２へ移動したときの方向である位相θを算出する。位相θは、入力されるｘおよびｙの値から求めたｙ／ｘの値から逆三角関数を利用して求めることができる。これを実現するための実際の回路構成の一例を図４に示す。まず、入力されるｘの値の逆数と、ｙの値とを乗算器で乗算する。乗算した値を逆三角関数に代入すれば位相θが求められるが、実際には、図４中にｔａｂｌｅとして示した、ｙ／ｘの値と位相θの値との関係を収めたテーブルを利用し、求めたｙ／ｘに対応する位相θの値を検索することで位相θの値を決定する。テーブルは不揮発性メモリ等に格納された状態で利用するが、このとき、テーブルには余弦波の１／４波長に相当する０〜９０度のθの値と、これに対応するｙ／ｘの絶対値のみを記憶して利用すれば、テーブル格納に必要な記憶容量を抑えることができる。この場合、θが９０度以上であっても対応できるよう、象限判定器によってｘおよびｙの値から特定される象限を判定し、これに応じてテーブルから求めたθの値に対応する値を加算する。具体的には、例えばｙ／ｘ＝−１であって、ｘおよびｙの値が第２象限を示している場合、ｙ／ｘの絶対値からテーブルを利用してθ＝４５度を求め、これに第２象限に対応する９０度を加算すればθ＝１３５度を求めることができる。
【００１９】
ステップＳ３では、レベル算出器３が、動き検出器１の出力するｘおよびｙの値から、図３（ｃ）における特徴点Ｐ１からＰ２へ移動したときの移動量であるレベルを算出する。これを実現するための実際の回路構成の一例を図５に示す。入力されるｘおよびｙの値の二乗を求め、これを加算機で加算して平方根を求めることでレベルを算出することができる。
【００２０】
ここで、図３では、概念的に理解しやすいようＰ１およびＰ２の一の特徴点例示したが、実際には各マクロブロック８内には、多数の特徴点が検出される。例えば、各マクロブロック８が縦６４ピクセル×横６４ピクセルであったとして、その５％のピクセルで動きを検出したとしてもその数は２００を超え、この数に相当する位相およびレベルが算出されることとなる。
【００２１】
そのため、ステップＳ４では、ヒストグラム生成器４が、各マクロブロック８毎に求めた位相θを、全てのマクロブロックに渡って集計しヒストグラムを作成する。
【００２２】
また、ステップＳ５では、積分器５が、各マクロブロック８毎に求めたレベルを全てのマクロブロックに渡って積分し、その積分値の特徴点に対する平均値であるレベル平均値を出力する。すなわち、各マクロブロック８毎に求めた特徴点の一つあたりの移動量を出力するのである。実際の回路では、積分器として一次ＩＩＲ（Infinite Impulse Response）フィルタを利用し、各マクロブロック８毎に積分したレベルから平均値を求めてもよい。
【００２３】
次に、ステップＳ６では、手ぶれ判定器６が、ステップＳ４およびステップＳ５で求めた位相のヒストグラムおよびレベル平均値から、手ぶれやパンまたはチルト操作による撮像装置の動きが発生したか否かを判定する。
【００２４】
位相のヒストグラムからは、画像データ全体で検出した特徴点の移動する方向に、所定の傾向が見られるか否かを判定する。例えば、図６（ａ）に示すように、ヒストグラム上特定の位相を示すデータが他の位相に比べて突出していれば、その位相とは逆方向に手ぶれ等の撮像装置の動きが発生したために、特徴点の多くが移動したように見えたものと判定する。これに対し、図６（ｂ）のように、ヒストグラム上突出した部分がなく全体に平均的である場合には、移動方向がばらばらであるため、ノイズ等を含む手ぶれ以外の影響によるものであると判定する。尚、ヒストグラムの判定については、ある位相を示すデータが所定の数を超えるときという判定方法のほか、画像データ上のノイズや位相算出の際の演算誤差等による位相のばらつき等を考慮し、ある位相とその近傍の位相を示すデータの数が所定の数を超えるときといった判定方法をとってもよい。すなわちヒストグラムの形状による判定を行っても構わない。
【００２５】
レベル平均値からは、これが所定の値以上である場合には手ぶれ等による撮像装置の動きが発生したと判断する。所定の値以下である場合には、ノイズ等を含む手ぶれ以外の影響によるものであるか、または撮像装置の動きが発生したものの無視できる大きさであるとして、手ぶれ等による撮像装置の動きはなかったものと判定する。
【００２６】
手ぶれ判定器６は、位相から生成されたヒストグラムおよびレベル平均値のいずれか一方から手ぶれ等による撮像装置の動きがなかったと判定したときは、撮像装置の動きはなかったとする判定結果を、ヒストグラムおよびレベル平均値の両方から撮像装置の動きがあったと判定したときは、撮像装置の動きがあったとする判定結果とレベル平均値の値とを、量子化テーブル生成器７に出力する。すなわち、ヒストグラムによって特徴点の動く方向である位相に所定の傾向が見られれば撮像装置に動きが発生したと判定し、これに加えてさらに、そのときに動いた大きさであるレベルが所定の大きさ以上であれば、画質劣化が起こり得る無視できない大きさで撮像装置が動いたと判定し、以下に述べるように量子化の方法を変更するのである。
【００２７】
このように、特徴量抽出技術や動きベクトルを利用して、画像データを元に撮像装置の動きを判定するため、撮像装置の動きを検出するジャイロセンサ等の専用のハードウェアを必要とすることなく、動き検出を行うことができる。
【００２８】
次に、ステップＳ７では、量子化テーブル生成器７が、手ぶれ判定器６から入力されたデータに基づいて、画像データを量子化する際の量子化テーブルを生成する。量子化テーブル生成器７は、手ぶれ等による撮像装置の動きを考慮せず通常の画像処理に用いる所定の量子化値から成る量子化テーブルである基本量子化テーブルを有している。手ぶれ判定器６から手ぶれ等による撮像装置の動きはなかったという判定結果が入力されたときは、量子化テーブル生成器７は、基本量子化テーブルをそのまま出力する。そして、画像処理装置では、この基本量子化テーブルを用いて量子化を行う。
【００２９】
これに対し、手ぶれ判定器６から手ぶれ等による撮像装置の動きがあったという判定結果と、レベル平均値とが入力された場合には、基本量子化テーブル中の量子化値を変更した修正量子化テーブルを生成出力する。量子化テーブル生成器７は、図７に示すような、レベル平均値と、これに対応するパラメータ値と、から構成される表を有している。このパラメータ値は差分量子化値であって、量子化テーブル生成器７は、手ぶれ判定器６から入力された判定結果から手ぶれ等による撮像装置の動きがあったことを認識すると、入力されたレベル平均値に対応する差分量子化値を読み出し、基本量子化テーブルを構成する各量子化値からこの差分量子化値を減算して修正量子化テーブルを生成出力する。そして、画像処理装置は、この修正量子化テーブルによって量子化を行うのである。
【００３０】
量子化の際に量子化値を小さくすればブロックノイズ等の発生を抑制できる。これを利用して、基本量子化テーブルを構成する量子化値よりも小さい量子化値から成る修正量子化テーブルを用いて画像データを量子化することで、撮像装置の動きに起因するブロックノイズ等の発生を抑制することができる。また、量子化テーブルをレベル平均値によって制御することで、撮像装置の動きの大きさに応じた量子化値による適切な量子化を行うことができる。
【００３１】
このように、画像処理装置が、手ぶれ等による撮像装置の動きの発生を正確に判断し、その判断結果によって量子化テーブルを制御することで、量子化に起因するブロックノイズ等の発生を抑え、画像処理後の画像データの画質の劣化を軽減することができる。
【図面の簡単な説明】
【００３２】
【図１】この発明の一の実施の形態に係る画像処理装置を示す基本構成図である。
【図２】この発明の画像処理装置の動作を示すフローチャートである。
【図３】この発明の位相およびレベルの算出方法を説明する図である。
【図４】この発明の位相算出器を示す基本構成図である。
【図５】この発明のレベル算出器を示す基本構成図である。
【図６】この発明の位相ヒストグラムの判断方法を説明する図である。
【図７】この発明のレベル平均値と差分量子化値の関係を説明する図である。
【符号の説明】
【００３３】
１      動き検出器
２      位相算出器
３      レベル算出器
４      ヒストグラム生成器
５      積分器
６      手ぶれ判定器
７      量子化テーブル生成器
８      マクロブロック
【図１】
2005217485.tif 000003
【図２】
2005217485.tif 000004
【図３】
2005217485.tif 000005
【図４】
2005217485.tif 000006
【図５】
2005217485.tif 000007
【図６】
2005217485.tif 000008
【図７】
2005217485.tif 000009