JP2011097512A - 画像処理装置、画像処理方法、及びコンピュータプログラム - Google Patents

画像処理装置、画像処理方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP2011097512A
JP2011097512A JP2009251849A JP2009251849A JP2011097512A JP 2011097512 A JP2011097512 A JP 2011097512A JP 2009251849 A JP2009251849 A JP 2009251849A JP 2009251849 A JP2009251849 A JP 2009251849A JP 2011097512 A JP2011097512 A JP 2011097512A
Authority
JP
Japan
Prior art keywords
frequency
information
video
blurring
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009251849A
Other languages
English (en)
Inventor
Hirochika Matsuoka
寛親 松岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009251849A priority Critical patent/JP2011097512A/ja
Publication of JP2011097512A publication Critical patent/JP2011097512A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Studio Devices (AREA)

Abstract

【課題】望ましくない映像のぶれを抽出して補正する。
【解決手段】カメラワーク、撮影方法、映像フォーマットといった撮影条件に応じて、映像のぶれの周波数情報を予め記憶しておく。そして、ユーザーによって指定された撮影条件に対応する周波数情報を選択し、選択した周波数情報に基づいて通過周波数帯域を決定し、決定した通過周波数帯域を有するフィルタを生成する。また、映像のぶれの時間変化を、相互に隣接するフレームの画像のシフト量と、画像の回転量とを算出することで求める。そして、映像のぶれの時間変化の情報を、生成したフィルタでフィルタリングし、映像のぶれ成分をフィルタリングする。
【選択図】図11

Description

本発明は、画像処理装置、画像処理方法、及びコンピュータプログラムに関し、特に、映像のぶれを補正するために用いて好適なものである。
これまでに、撮像装置内の映像のぶれを補正する様々な方法が公開されている。最も代表的な手法は、フレーム間の全体の動きベクトルVを算出し、算出した結果に基づいて積分により移動量Sを求めて映像のぶれの補正を行う手法である。図19(b)に、従来の代表的な映像のぶれを補正する場合のシグナルフローを示す。図19(b)に示すように、正帰還路に乗算器があり、この乗算器によって、映像のぶれの補正量Sに帰還係数(定数)αを乗じている。この帰還係数αは、一般にα<1とする。これにより、入力が0である場合には積分値が0に収束し、結果としてぶれ補正画像は徐々に中心へとセンタリングされていく。
しかしながら、このような手法では、様々なカメラワークによる映像が入力された場合、手ぶれ等の望ましくないぶれのみを補正することが出来ない。そこで、特許文献1では、映像の動きがカメラワークと手ぶれとの何れであるかを判定し、判定の結果に応じてセンタリング補正用の入力Cを変更することが開示されている。図19(c)に、特許文献1に記載の手法で映像のぶれを補正する場合のシグナルフローを示す。特許文献1に記載の技術によれば、カメラワークの補正量Cを推定し、積分回路を経て補正量に加算するため、より良好に映像のぶれを補正できる。
特開2006−101485号公報
ここで、映像のぶれによる全体の動きベクトルVを、手ぶれ等による望ましくない全体の動きベクトルVb、カメラワークによる全体の動きベクトルVc、量子化ノイズやセンサーノイズ等の擾乱による動きベクトル算出誤差Vnの和であると考える。
理想的な映像のぶれの補正は、望ましくない映像のぶれであるΣVbのみを補正することである。しかしながら、特許文献1に記載の技術では、図19(c)における帰還係数α、β、並びにセンタリング補正用の入力Cのみで補正を行う為、様々なカメラワークや映像のぶれに対して望ましくない映像のぶれのみを補正することが難しい。
本発明は、このような問題点に鑑みてなされたものであり、望ましくない映像のぶれを抽出して補正することを目的とする。
本発明の画像処理装置は、撮影機器で撮影された映像のぶれを補正する画像処理装置であって、前記撮影機器による撮影条件に対応して、映像のぶれの周波数情報を予め記憶する記憶手段と、前記撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報を、前記記憶手段により記憶された周波数情報から取得する取得手段と、前記映像のうち、相互に隣接するフレームの画像に基づいて、映像のぶれの時間変化の情報を算出する算出手段と、前記取得手段により取得された周波数情報に基づいて、前記映像のぶれの時間変化の情報から抽出する周波数の範囲を決定する決定手段と、前記映像のぶれの時間変化の情報から、前記決定手段により決定された範囲の周波数の情報を抽出する抽出手段と、前記抽出手段により抽出された映像のぶれの時間変化の情報を用いて、前記映像のぶれを補正する補正手段と、を有することを特徴とする。
本発明によれば、撮影条件に対応して、映像のぶれの周波数情報を記憶しておき、ユーザーによって指定された撮影条件に対応する周波数情報に基づいて、映像のぶれの時間変化の情報から抽出する周波数の範囲を決定し、その範囲の情報を抽出する。したがって、手ぶれや移動時の振動等で発生する望ましくない映像のぶれをより正確に分離し、それを映像のぶれの補正に反映できる。よって、良好なぶれ補正を実現できる。
本発明の第1の実施形態を示し、画像処理装置の構成を示す図である。 メニュー表示を行うアプリケーションウィンドウを示す図である。 撮影条件を入力するダイアログ画面を示す図である。 周波数情報のデータ構造の概略を示す図である。 カメラワークに対する周波数情報を示す図である。 撮影方法に対する周波数情報を示す図である。 映像フォーマットに対する周波数情報を示す図である。 映像補正処理を説明するフローチャートである。 本来の周波数振幅特性と、データ構造に基づく周波数情報を示す図である。 ステップS802の処理を説明するフローチャートである。 フィルタ設計用の通過帯域と周波数情報との関係を示す図である。 ステップS804の処理を説明するフローチャートである。 ステップS806の処理を説明するフローチャートである。 補正量補正関数を示す図である。 本発明の第2の実施形態を示し、ダイアログ画面を示す図である。 周波数情報のデータ構造の概略を示す図である。 ステップS802の処理を説明するフローチャートである。 周波数振幅特性を示す図である。 シグナルフローを示す図である。
(第1の実施形態)
まず、第1の実施形態について説明する。
図1は、映像のぶれの補正を行う画像処理装置の構成の一例を示す図である。CPU201は、メインメモリ202のRAMをワークメモリとして、メインメモリ202のROMやハードディスクドライブ(HDD)204に格納されたオペレーティングシステム(OS)や各種プログラムを実行する。そして、CPU201は、PCI(peripheral component interconnect)バス等のシステムバス212を介して各構成を制御する。
更に、CPU201は、後述する映像補正アプリケーション、及びメディアリーダードライバを含む各種プログラムを実行する。CPU201は、システムバス212及びSCSIインタフェイス(I/F)203を介してHDD204にアクセスする。以下では、映像補正アプリケーションがHDD204から読み出される場合を例に挙げて説明する。また、CPU201は、後述する処理のユーザインタフェイスや処理結果を、グラフィックアクセラレータ205を介してカラーモニタ206に表示する。そして、CPU201は、カラーモニタ206に表示されたグラフィックユーザインタフェイス等に対するユーザーからの指示をキーボード/マウスコントローラ209に接続されたキーボード210、マウス211を介して入力する。また、CPU201は、映像データをUSB(Universal Serial Bus)コントローラ207を介してメディアリーダー208より入力する。
以上の構成において、映像補正アプリケーションは次の様に動作する。まず、HDD204に格納されている映像補正装置プログラムが、ユーザーの指示によりCPU201にて実行され、図2に示すアプリケーションウィンドウ301がカラーモニタ206に表示される。ユーザーは、アプリケーションウィンドウ301のメニューリスト302から「映像ファイルの読み込み」を選択し、処理対象の映像ファイルを設定する。するとプログラム処理に従い、メディアに格納されている映像ファイルは、メディアリーダー208及びUSBコントローラ207を介してメインメモリ202に映像データとして転送される。また、HDD204に格納されている映像ファイルは、SCSIインタフェイス203を介してメインメモリ202に映像データとして転送される。映像ファイルの映像は、例えば撮影機器で撮像されたものである。
ユーザーが、メニューリスト302から「映像条件設定」を選択すると、図3に示すダイアログ画面401がカラーモニタ206に表示される。ユーザーは、このダイアログ画面401を用いて撮影条件の設定を行う。ダイアログ画面401において、プルダウンリスト402ではカメラワークが選択・指定され、プルダウンリスト403では撮影方法が選択・指定され、プルダウンリスト404では映像フォーマットが選択・指定される。また、映像フォーマットに関しては、メディアに記憶されている撮影機種と圧縮ビットレートとに関する情報に基づいてプリセットが行われる。ここで各プルダウンリストに表示される選択項目は、図4に示すデータ構造により周波数情報と併せて記述され、予めHDD204に格納されている。図4に示すデータ構造では、UI表示用の文字列と周波数特性とが一組として記述され、先頭に組の総数がデータ数として記述される。周波数特性の詳細に関しては後述する。以下、本実施形態では、カメラワークとして図5に示す情報が、撮影方法として図6に示す情報が、映像フォーマットとして図7に示す情報がそれぞれHDD204に格納されているものとして説明する。
図3において、ユーザーが設定終了ボタン405を押下すると、カメラワークと撮影方法と映像フォーマットの現状の選択結果がメインメモリ202のRAM等に記憶され、ダイアログ画面401が非表示となる。図2において、メニューリスト302からユーザーが「ぶれ補正実行」を選択すると、後述する図8のフローチャートに従った映像補正処理がなされる。更に、図3において、プルダウンリスト403からユーザーが「補正前映像プレビュー」を選択するとぶれ補正前の映像がウィンドウ303に表示され、「補正後映像プレビュー」を選択するとぶれ補正後の映像がウィンドウ303に表示される。また、ぶれ補正後の映像は、メニューリスト302からユーザーが「映像ファイル書き込み」を選択することでHDD204に格納される。
次に、図8のフローチャートを参照しながら、映像補正アプリケーションで実行される映像補正処理の一例を説明する。図8のフローチャートによる処理は、例えば、CPU201が映像補正アプリケーションを実行することにより実現される。
ステップS801において、CPU201は、プルダウンリスト402〜404で選択されたカメラワーク、撮影方法、映像フォーマットに対応する周波数情報を、図5〜図7に示すようなデータから取得する。例えば、カメラワークでパン(横)が選択された場合には、図5に示すデータのうち、0060〜0080までの周波数情報を取得する。尚、これらのデータは前述したようにHDD204に記憶されている。
次に、ステップS802において、CPU201は、図10のフローチャートに基づき、ステップS801で取得した周波数情報から、撮影方法毎に発生する映像のぶれを分離する為の周波数特性を定め、Remez法によりフィルタのインパルス応答を求める。図10のフローチャートの詳細については後述する。ここで、カメラワーク、撮影方法、映像フォーマットに対して記述される周波数特性は、夫々次の意味を有する。カメラワークに対しては、カメラワークが有する主な周波数の帯域がHzで記述される(図5を参照)。撮影方法に対しては、撮影方法毎に発生する映像のぶれが有する主な周波数の帯域がHzで記述される(図6を参照)。また、映像フォーマットに対しては、映像のぶれの算出誤差の主な周波数の帯域がHzで記述される。
本実施形態では、周波数情報を図4に示すように、映像のぶれを横成分、縦成分並びに回転成分に分けて記述する。また、周波数情報を矩形に単純化し、通過域低域側エッジ(周波数の範囲の下限値)と通過域高域側エッジの周波数(周波数の範囲の上限値)という形で記述する。尚、高域側エッジの周波数が負の値であることは、高域側のエッジが存在しない(周波数が無限大)であることを示す。図9に、本来の周波数振幅特性(実線)と、データ構造に基づく周波数情報(点線)との関係の一例を模式的に示す。
次に、ステップS803において、CPU201は、メインメモリ202に格納されている映像データを取得する。
次に、ステップS804において、CPU201は、図12に示すフローチャートに基づき、映像のぶれの時間変化を、相互に隣接するフレームの画像のシフト量と、画像の回転量とを算出することで求める。図12のフローチャートの詳細については後述する。
次に、ステップS805において、CPU201は、ステップS804で算出した映像のぶれの時間変化に対し、ステップS802で求めたインパルス応答を、畳み込み演算を用いて重畳してフィルタリングし、その結果を、メインメモリ202に記憶する。
次に、ステップS806において、CPU201は、図13に示すフローチャートに基づき、ステップS805でフィルタリングした結果を用いて、各フレームの映像の位置を補正し、補正後の映像をHDD204に記憶する。図13のフローチャートの詳細については後述する。
次に、図10のフローチャートを参照しながら、図8のステップS802のインパルス応答算出処理の一例を説明する。
まず、ステップS1001において、CPU201は、次の様にフィルタ設計用の通過帯域を求める。ここで、図8のステップS801で取得した周波数情報について、それぞれ、カメラワークの周波数帯域をBand1、撮影方法毎の映像のぶれの周波数帯域をBand2、映像のぶれの算出誤差の周波数帯域をBand3とする。CPU201は、フィルタ設計用の通過帯域Bandを、集合演算を用いて、以下の(1)式により算出する。
Band=NOT(Band1) ∪ Band2 ∪ NOT(Band3) ・・・(1)
(1)式は次の意味を持つ。まず、撮影方法毎に発生する映像のぶれの周波数成分だけを通過させるため、撮影方法毎の映像のぶれの周波数帯域Band2の少なくとも一部を通過帯域とする。一方、カメラワークの周波数成分を通過させてしまうと、カメラワークも誤って補正してしまいカメラワークへの映像の追従が遅延してしまう。そこで、カメラワークの周波数成分を阻止域とするため、撮影方法毎の映像のぶれの周波数帯域Band2の集合と、カメラワークの周波数帯域Band1の補集合との積をとる。また、映像フォーマットによってはノイズによって映像のぶれの算出誤差が大きくなる場合がある。そこで、映像のぶれの算出誤差の周波数成分を阻止域とするため、さらに映像のぶれの算出誤差の周波数帯域Band3の補集合との積をとる。ここで、フィルタ設計用の通過帯域とステップS801で取得した周波数情報との関係の一例を図11に示す。
図10の説明に戻り、ステップS1002において、CPU201は、ステップS901で算出したフィルタ設計用の通過帯域が所定値以下であるか否かを判定する。この判定の結果、フィルタ設計用の通過帯域が所定値以下であればステップS1003に、そうでなければステップS1003を省略してステップS1004に進む。
ステップS1003に進むと、CPU201は、通過帯域の中心を変えず、バンド幅が前記所定値となるようにフィルタ設計用の通過帯域を修正する。そして、ステップS1004に進む。
ステップS1004に進むと、CPU201は、ステップS1001で算出したフィルタ設計用の通過帯域、又はステップS1003で修正されたフィルタ設計用の通過帯域を元に、Remez法によりインパルス応答を求める。尚、Remez法は公知であり様々な文献にそのアルゴリズムが記載されているため、ここではその詳細な説明を省略する。
次に、図12のフローチャートを参照しながら、図8のステップS804の映像のぶれの時間変化算出処理の一例を説明する。本実施形態では、位相限定相関を用いてフレーム間の位置のシフト量を算出することで、映像のぶれの時間変化を求める場合を例に挙げて説明する。
ステップS1201において、CPU201は、メインメモリ202に転送された処理対象の映像データから、開始フレームの画像を取得する。
次に、ステップS1202において、CPU201は、開始フレームの画像をグレイ画像に変換し、グレイ画像に変換した開始フレームの画像を前フレーム画像としてメインメモリ202に記憶する。
次に、ステップS1203において、CPU201は、処理対象の映像データから、次フレームの画像(前フレーム画像の次のフレームの画像)を取得してグレイ画像に変換する。そして、CPU201は、グレイ画像に変換した次フレームの画像を後フレーム画像としてメインメモリ202に記憶する。
次に、ステップS1204において、CPU201は、前フレーム画像と後フレーム画像との位相限定相関を求め、隣接するフレーム間での画像(位置)のシフト量を算出する。ここで前フレーム画像の二次元フーリエ変換をI1、後フレーム画像の二次元フーリエ変換をI2とすると、位相限定相関は、次の(2)式を逆フーリエ変換することで求められる。
Figure 2011097512
この位相限定相関の相関ピークの座標が、隣接するフレーム間での画像のシフト量に対応する。
次に、ステップS1205において、CPU201は、ステップS1204で算出したシフト量を用いて前フレームの画像をシフトする。
次に、ステップS1206において、CPU201は、ステップS1205でシフトした前フレーム画像と、後フレーム画像とに対してLog-Polar変換を施し、メインメモリ202にLog-Polar変換を施した画像をメインメモリ202等に記憶する。
次に、ステップS1207において、CPU201は、ステップS1206でLog-Polar変換を施した画像について、ステップS1204と同様に位相限定相関を算出し、隣接するフレーム間での画像の回転量を算出する。
次に、ステップS1208において、CPU201は、ステップS1204で算出したシフト量とステップS1207で算出した回転量を、映像のぶれの時間変化として、メインメモリ202の所定位置(現在の処理フレーム番号から定まる所定位置)に記憶する。尚、以下の説明では、必要に応じて、「映像のぶれの時間変化」を「映像ぶれ時間変化」と略称する。
次に、ステップS1209において、CPU201は、後フレーム画像を前フレーム画像にコピーする。
次に、ステップS1210において、CPU201は、ステップS1209で前フレーム画像にコピーした後フレーム画像が、最終フレームに到達しているかどうかを判定する。この判定の結果、前フレーム画像にコピーした後フレーム画像が、最終フレームに到達していれば、図12のフローチャートによる処理を終了し、そうでなければステップS1203に戻る。
次に、図13のフローチャートを参照しながら、図8のステップS806の各フレームの画像位置補正処理の一例を説明する。
ステップS1301において、CPU201は、処理フレーム番号を開始フレーム番号で初期化し、位置補正量と回転補正量を0で初期化する。
次に、ステップS1302において、CPU201は、ステップS805においてフィルタリングされた「映像ぶれ時間変化のデータ」を、メインメモリ202から取得する。
次に、ステップS1303において、CPU201は、処理フレーム番号に相当するシフト量と回転量とを、映像ぶれ時間変化のデータから取得する。
次に、ステップS1304において、CPU201は、ステップS1303で取得したシフト量と回転量とを用いて、位置補正量と回転補正量とを次の様に更新する。位置補正量については、前フレームにおける位置補正量に所定の係数αを乗じ、それにシフト量を加算することで更新する。また、回転補正量については、前フレームにおける回転補正量に所定の係数βを乗じ、それに回転量を加算することで更新する。理想的に映像のぶれが算出されフィルタリングされている場合、シフト量と回転量の時間平均値は0となる。そこで、係数α並びにβを1未満に設定し補正量を減衰させる。これはシフト量と回転量に含まれる誤差の蓄積を避けることと等価でもある。尚、係数α並びにβは、ステップS1001で求めたフィルタ設計用の通過帯域に応じて変化させても良い。
次に、ステップS1305において、CPU201は、ステップS1303で更新した位置補正量と回転補正量とを所定の補正量補正関数に入力し、相互に隣接するフレーム間での画像のシフト量と回転量とを算出する。図14は、補正量補正関数の一例を示す図である。補正量が大きいとフレーム表示領域が極端に少なくなる。補正量補正関数1401は、これを防ぐことを目的とする。CPU201は、算出したフレーム間での画像のシフト量と回転量とに基づいて、処理対象のフレームの画像にシフトと回転とを施し、メインメモリ202に記憶する。
次に、ステップS1306において、CPU201は、処理フレーム番号を次フレームに更新する。
次に、ステップS1307では、シフトと回転とを行った画像のフレームが最終フレームに到達しているか否かを判定する。この判定の結果、シフトと回転とを行った画像のフレームが最終フレームに到達していればステップS1308に進み、そうでなければステップS1303に戻る。
ステップS1308に進むと、CPU201は、メインメモリ202に記憶された映像を所定のフォーマットで符号化し、HDD204に格納する
図19(a)に、本実施形態の手法でぶれを補正する場合の(簡略化した)シグナルフロー示す。図19(a)において、Vは、本実施形態におけるフレーム間での画像のシフトや回転を示し、背景技術で述べたフレーム間での全体の動きベクトルVに該当する。また、Sは、映像のぶれの補正量である。また、フィルタFは、ステップS802のインパルス応答算出処理で定められるフィルタに該当する。ここで、本実施形態では、概念としてF(Vc+Vb+Vn)を積分しているが、以上の説明から明らかなように、F・VcとF・Vnが出来るだけ0に近似し、他方でF・Vbが出来るだけVbに近似するようフィルタFを設計している。すなわち、本実施形態では、望ましくない映像のぶれであるΣVbのみを補正するようにしている。
以上のように本実施形態では、カメラワーク、撮影方法、映像フォーマットといった撮影条件に応じて、映像のぶれの周波数情報を予め記憶しておく。そして、ユーザーによって指定された撮影条件に対応する周波数情報を選択し、選択した周波数情報に基づいて通過周波数帯域を決定し、決定した通過周波数帯域を有するフィルタを生成する。また、映像のぶれの時間変化を、相互に隣接するフレームの画像のシフト量と、画像の回転量とを算出することで求める。そして、映像のぶれの時間変化の情報を、生成したフィルタでフィルタリングし、映像のぶれ成分をフィルタリングする。すなわち、特定の撮影条件の一例である撮影方法に対する周波数帯域のうち、その他の特定の撮影条件の一例であるカメラワーク・映像フォーマットに対する周波数帯域を除く周波数帯域の「映像のぶれの時間変化の情報」を抽出する。これにより、手ぶれや撮影機器の移動時の振動等で発生する望ましくない映像のぶれをより正確に分離し、ぶれの補正に反映できる。したがって、本来のカメラワークを残しつつ望ましくない映像のぶれを補正する、良好なぶれ補正を実現できる。
尚、本実施形態では、例えば、ステップS801、S804、S805、S806の処理を実行することにより、それぞれ取得手段、算出手段、抽出手段、補正手段の一例が実現される。また、例えば、ステップS1001、S1002、S1003の処理を実行することにより、それぞれ決定手段、判定手段、変更手段の一例が実現される。
(第2の実施形態)
次に、第2の実施形態について説明する。本実施形態では、ぶれの補正に使用する撮影条件として、カメラワークの詳細を示す、カメラワークの速度とカメラのズーム率とが加わり、且つ、周波数情報をより詳細に記述するようにしている。すなわち、本実施形態は、第1の実施形態に対して周波数特性をより詳細に記述するよう改め、精度向上を図ったものである。このように、本実施形態と第1の実施形態とは、撮影条件が追加されたことと周波数情報の記述が詳細になったことによる処理の一部が主として異なる。したがって、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図14に付した符号と同一の符号を付す等して詳細な説明を省略する。
まず、本実施形態では、図2に示したアプリケーションウィンドウ301のメニューリスト302において、映像条件設定がユーザーによって選択された際、図4に示したダイアログ画面401に代えて、図15に示すダイアログ画面1501が表示される。プルダウンリストの選択項目は図4に示したものと同じであるが、新たな設定項目としてカメラワーク速度エディットボックス1502とズーム率エディットボックス1503とが表示される。カメラワーク速度については、ユーザーによって適切な値が入力される。一方、ズーム率については、メディアに記憶されているズーム率に基づいてプリセットが行われる。
また、UI表示用文字列と周波数特性とを記述する周波数情報を表すため、図4に示したデータ構造に代えて図16に示すデータ構造を用いる。図16に示すデータ構造は、図4に示したデータ構造と同様に、UI表示用の文字列と周波数特性とが一組として記述され、先頭に組の総数がデータ数として記述される。第1の実施形態におけるデータ構造では、周波数情報を矩形に単純化して通過域低域側エッジと通過域高域側エッジのみを記述した。これに対し、本実施形態におけるデータ構造では、周波数振幅特性を周波数情報として記述する。具体的に本実施形態では、0Hzから255.5Hzまで0.5Hz刻みで512個の振幅データが、横成分、縦成分並びに回転成分の三成分に分けて記述される。このデータ構造に基づく周波数情報が、それぞれカメラワーク、撮影方法、映像フォーマットに対応してHDD204に記憶されている。
本実施形態においては、ステップS801において、CPU201は、プルダウンリスト402〜404で選択されたカメラワーク、撮影方法、及び映像フォーマットに対応する周波数情報をHDD204から取得する。ここでは、当然ながら、CPU201は、図16に示すようなデータ構造に基づいて周波数情報を取得する。また、ステップS802のインパルス応答算出処理では、図10に示したフローチャートに代えて図17に示すフローチャートによる処理が実行される。
図17のフローチャートを参照しながら、インパルス応答算出処理の一例を説明する。
ステップS1701において、CPU201は、図8のステップS801で取得した周波数情報を撮影条件に基づいて補正する。具体的にCPU201は、カメラワークに対する周波数情報を、次のように補正する。まず、CPU201は、ユーザーによって設定されたカメラワーク速度を、周波数情報を設定した際に基準とした基準カメラワーク速度で除算し、比を求める。次に、CPU201は、この比をカメラワークに対する周波数情報として記述されている周波数振幅特性の振幅に乗じ、その値をカメラワークに対する周波数情報の補正値とする。
また、CPU201は、撮影方法毎に発生する映像のぶれに対する周波数情報について、次のように補正する。まず、CPU201は、メディアから取得したズーム率を、周波数情報を設定した際に基準とした基準ズーム率で除算し、比を求める。次に、CPU201は、この比を、撮影方法毎に発生する映像のぶれに対する周波数情報として記述されている周波数振幅特性の振幅に乗じ、その値を、撮影方法毎に発生する映像のぶれに対する周波数情報の補正値とする。
次に、ステップS1702において、CPU201は、図4に示したデータ構造で記述されている周波数情報と同様の通過域エッジを、ステップS1701で補正した周波数振幅特性に基づき次のように算出する。まず、CPU201は、周波数振幅特性の(振幅の)ピークが基準振幅以下であるか否かを判定する。この判定の結果、周波数振幅特性のピークが基準振幅以下であれば、当該ピークが基準振幅となるように周波数振幅特性を再補正する。図18(a)に、再補正をする前の周波数振幅特性(破線)と再補正をした後の周波数振幅特性(実線)の一例を示す。一方、周波数振幅特性のピークが基準振幅以下でなければ、当該周波数振幅特性を採用する。次に、CPU201は、周波数振幅特性が所定のしきい値を超える周波数を判定し、この周波数を通過域低域側エッジ及び通過域高域側エッジと定める。図18(b)に、通過域低域側エッジ及び通過域高域側エッジの一例を示す。尚、この基準振幅としきい値は、カメラワーク、撮影方法、映像フォーマットで夫々個別に定められる。
次に、ステップS1703において、CPU201は、ステップS1001と同様にして、フィルタ設計用の通過帯域を求める。
次に、ステップS1704において、CPU201は、ステップS1703で算出したフィルタ設計用の通過帯域が所定値以下であるか否かを判定する。この判定の結果、フィルタ設計用の通過帯域が所定値以下であればステップS1705に、そうでなければステップS1705を省略してステップS1706に進む。
ステップS1705に進むと、CPU201は、通過帯域の中心を変えず、バンド幅が所定値となるようにフィルタ設計用の通過帯域を修正する。そして、ステップS1706に進む。
ステップS1706に進むと、CPU201は、ステップS1703で算出したフィルタ設計用の通過帯域、又はステップS1705で修正されたフィルタ設計用の通過帯域を元に、Remez法によりインパルス応答を求める。
以上のように本実施形態では、映像のぶれの周波数情報として周波数振幅特性を予め記憶する。また、撮影条件(カメラワーク速度、ズーム率)に基づいて周波数振幅特性を補正し、補正した周波数振幅特性から通過周波数帯域を決定し、決定した通過周波数帯域を有するフィルタを生成する。このように本実施形態では、より詳細に記述した周波数特性を用い、実際の撮影条件に応じて望ましくない映像ぶれを抽出するフィルタ特性を設定する。したがって、本来のカメラワークを残しつつ望ましくない映像のぶれを、撮影条件に応じてより良好に補正できる。
尚、本実施形態では、例えば、ステップS1701、S1702、S1703、S1704、S1705の処理を実行することにより、それぞれ第2の補正手段、第2の算出手段、決定手段、判定手段、変更手段の一例が実現される。
(変形例)
以上の各実施形態では、カメラワーク、撮影方法、映像フォーマットの3要素に基づいて映像ぶれを分離するための周波数特性を定める場合を例に挙げて説明した。しかしながら、使用レンズによるボケ等、映像のぶれに影響する要因(撮影条件)は多々存在する。したがって、周波数特性を定めるための分類は、前記3要素に限定されるものではない。
また、以上の各実施形態において、カメラワークは、図5に示したものの他、回転等の他のカメラワークに対しても適用可能である。また、撮影方法は、クレーン等の機材を用いて撮影する撮影方法に対しても適用可能である。また、より精度を向上させるために、撮影方法とカメラワークの組み合わせに対して、カメラワークの周波数情報と、撮影方法毎に発生する映像のぶれの周波数情報とを準備してもよい。また、映像フォーマットに対する周波数情報は、符号化ビットレートのみならずフレームレート等に基づいて設定してもよい。また、映像のぶれを算出するアルゴリズムとしては、符号化情報に含まれる動きベクトルを活用してもよい。例えば、動きベクトルの最頻値を用いることで、映像のぶれを算出することができる。
また、以上の各実施形態において、映像のぶれを補正する画像処理装置は、撮影機器自身であってもよい。
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。

Claims (7)

  1. 撮影機器で撮影された映像のぶれを補正する画像処理装置であって、
    前記撮影機器による撮影条件に対応して、映像のぶれの周波数情報を予め記憶する記憶手段と、
    前記撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報を、前記記憶手段により記憶された周波数情報から取得する取得手段と、
    前記映像のうち、相互に隣接するフレームの画像に基づいて、映像のぶれの時間変化の情報を算出する算出手段と、
    前記取得手段により取得された周波数情報に基づいて、前記映像のぶれの時間変化の情報から抽出する周波数の範囲を決定する決定手段と、
    前記映像のぶれの時間変化の情報から、前記決定手段により決定された範囲の周波数の情報を抽出する抽出手段と、
    前記抽出手段により抽出された映像のぶれの時間変化の情報を用いて、前記映像のぶれを補正する補正手段と、を有することを特徴とする画像処理装置。
  2. 前記周波数情報は、周波数の上限値と下限値に係る情報を含み、
    前記決定手段は、前記撮影条件のうち、特定の撮影条件に対応する周波数情報に含まれる上限値と下限値とにより定まる周波数帯域のうち、その他の特定の撮影条件に対応する周波数情報に含まれる上限値と下限値とにより定まる周波数帯域を除く周波数帯域を、前記映像のぶれの時間変化の情報から抽出する周波数の範囲として決定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記決定手段により決定された周波数の範囲が所定値以下であるか否かを判定する判定手段と、
    前記判定手段により、前記決定手段により決定された周波数の範囲が所定値以下であると判定されると、当該決定手段により決定された周波数の範囲を前記所定値に変更する変更手段と、を有することを特徴とする請求項2に記載の画像処理装置。
  4. 前記撮影機器による撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報として記憶されている、周波数と振幅との関係を示す周波数振幅特性に基づいて、周波数の上限値と下限値とを算出する第2の算出手段を有し、
    前記決定手段は、前記撮影条件のうち、特定の撮影条件について算出された上限値と下限値とにより定まる周波数帯域のうち、その他の特定の撮影条件について算出された上限値と下限値とにより定まる周波数帯域を除く周波数帯域を、前記映像のぶれの時間変化の情報から抽出する周波数の範囲として決定することを特徴とする請求項1に記載の画像処理装置。
  5. 前記撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報として記憶されている周波数振幅特性を、前記撮影条件の詳細を示す情報に基づいて補正する第2の補正手段を有し、
    前記第2の算出手段は、前記第2の補正手段により補正された周波数振幅特性に基づいて、周波数の下限値と上限値とを算出することを特徴とする請求項4に記載の画像処理装置。
  6. 撮影機器で撮影された映像のぶれを補正する画像処理方法であって、
    前記撮影機器による撮影条件に対応して、映像のぶれの周波数情報を予め記憶する記憶ステップと、
    前記撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報を、前記記憶ステップにより記憶された周波数情報から取得する取得ステップと、
    前記映像のうち、相互に隣接するフレームの画像に基づいて、映像のぶれの時間変化の情報を算出する算出ステップと、
    前記取得ステップにより取得された周波数情報に基づいて、前記映像のぶれの時間変化の情報から抽出する周波数の範囲を決定する決定ステップと、
    前記映像のぶれの時間変化の情報から、前記決定ステップにより決定された範囲の周波数の情報を抽出する抽出ステップと、
    前記抽出ステップにより抽出された映像のぶれの時間変化の情報を用いて、前記映像のぶれを補正する補正ステップと、を有することを特徴とする画像処理方法。
  7. 撮影機器で撮影された映像のぶれを補正することをコンピュータに実行させるためのコンピュータプログラムであって、
    前記撮影機器による撮影条件に対応して、映像のぶれの周波数情報を予め記憶する記憶ステップと、
    前記撮影条件のうち、ユーザーによって指定された撮影条件に対応する周波数情報を、前記記憶ステップにより記憶された周波数情報から取得する取得ステップと、
    前記映像のうち、相互に隣接するフレームの画像に基づいて、映像のぶれの時間変化の情報を算出する算出ステップと、
    前記取得ステップにより取得された周波数情報に基づいて、前記映像のぶれの時間変化の情報から抽出する周波数の範囲を決定する決定ステップと、
    前記映像のぶれの時間変化の情報から、前記決定ステップにより決定された範囲の周波数の情報を抽出する抽出ステップと、
    前記抽出ステップにより抽出された映像のぶれの時間変化の情報を用いて、前記映像のぶれを補正する補正ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラム。
JP2009251849A 2009-11-02 2009-11-02 画像処理装置、画像処理方法、及びコンピュータプログラム Pending JP2011097512A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009251849A JP2011097512A (ja) 2009-11-02 2009-11-02 画像処理装置、画像処理方法、及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009251849A JP2011097512A (ja) 2009-11-02 2009-11-02 画像処理装置、画像処理方法、及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2011097512A true JP2011097512A (ja) 2011-05-12

Family

ID=44113922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009251849A Pending JP2011097512A (ja) 2009-11-02 2009-11-02 画像処理装置、画像処理方法、及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2011097512A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014160145A (ja) * 2013-02-19 2014-09-04 Canon Inc 撮像装置およびその制御方法
JP2014192613A (ja) * 2013-03-26 2014-10-06 Canon Inc 画像処理装置及び方法、及び撮像装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014160145A (ja) * 2013-02-19 2014-09-04 Canon Inc 撮像装置およびその制御方法
JP2014192613A (ja) * 2013-03-26 2014-10-06 Canon Inc 画像処理装置及び方法、及び撮像装置
US9762800B2 (en) 2013-03-26 2017-09-12 Canon Kabushiki Kaisha Image processing apparatus and method, and image capturing apparatus for predicting motion of camera

Similar Documents

Publication Publication Date Title
US9591237B2 (en) Automated generation of panning shots
JP5908174B2 (ja) 画像処理装置及び画像処理方法
JP6579868B2 (ja) 画像処理装置、撮像装置、画像処理方法およびプログラム
JP4844664B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6711396B2 (ja) 画像処理装置、撮像装置、および画像処理方法、並びにプログラム
US9258492B2 (en) Image processing apparatus, image pickup apparatus including image processing apparatus, image processing method, and storage medium in which program is stored for acquiring and processing images taken at different focus positions
EP3438923B1 (en) Image processing apparatus and image processing method
JPWO2011077659A1 (ja) 画像処理装置、撮像装置、及び画像処理方法
JP2011193443A (ja) 物体追尾装置
JP2009025862A (ja) 画像処理装置、画像処理方法、画像処理プログラム及び画像表示装置
CN112819699A (zh) 视频处理方法、装置及电子设备
KR101615479B1 (ko) 적응적 전/후처리 필터링을 이용하는 초해상도 영상 처리 방법
JP2012042988A (ja) 画像処理装置、画像処理方法およびプログラム
JP5146159B2 (ja) 画像復元方法、画像復元プログラム、および画像復元装置
JP2011097512A (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
WO2015146240A1 (ja) 画像処理装置
JP2005182232A (ja) 輝度補正装置および輝度補正方法
JP2015079329A (ja) 画像処理装置、画像処理方法およびプログラム
JP5863236B2 (ja) 画像処理装置、画像処理方法
KR20120137874A (ko) 영상 대조비 개선 방법 및 장치
US20240169498A1 (en) Joint Video Stabilization and Motion Deblurring
KR101612437B1 (ko) 촬영 영상 처리 장치 및 방법
JP6494817B2 (ja) 画像処理装置、画像処理方法およびプログラム。
KR100828194B1 (ko) 디지털 화상의 경계 흐림을 판단하는 장치와 방법 및 이를이용한 이미지 처리 시스템
JP2009077237A (ja) 画像表示装置および画像表示プログラム