(57)【要約】【課題】ワークメモリの容量が不足している場合であっても、処理の停滞や強制終了等の発生を回避して、画像処理の結果を得ることができる画像処理プログラム等を提供する。【解決手段】本発明の画像処理プログラムは、対象画像に対し画像処理を実行するのに、コンピュータのワークメモリの容量が不足しているか否かを判断するステップと、前記ワークメモリの容量が不足していると判断された場合に、前記対象画像のピクセル数を低下させて、前記画像処理を実行するステップとを前記コンピュータに実行させる。【選択図】図５
2014192531.tif 000002
【特許請求の範囲】
【請求項１】
対象画像に対し画像処理を実行するのに、コンピュータのワークメモリの容量が不足しているか否かを判断するステップと、
前記ワークメモリの容量が不足していると判断された場合に、前記対象画像のピクセル数を低下させて、前記画像処理を実行するステップと
を前記コンピュータに実行させる、
画像処理プログラム。
【請求項２】
前記ワークメモリの容量が不足していないと判断された場合に、前記対象画像のピクセル数を維持したまま、前記画像処理を実行するステップ
をさらに前記コンピュータに実行させる、
請求項１に記載の画像処理プログラム。
【請求項３】
前記ワークメモリの容量が不足していると判断された場合に、前記対象画像のピクセル数を低下させて、前記画像処理を実行するステップは、前記対象画像のピクセル数を、前記ワークメモリの容量が不足しない範囲で最大のピクセル数に低下させて、前記画像処理を実行するステップである、
請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記対象画像のピクセル数を低下させて、前記画像処理が実行された場合には、前記対象画像のピクセル数を低下させたことを示す情報とともに、前記画像処理の履歴を前記コンピュータの記憶領域に保存するステップと、
前記記憶領域に、前記対象画像のピクセル数を低下させたことを示す情報が保存されている場合には、前記対象画像のピクセル数を低下させたことを示す情報とともに、前記画像処理の履歴を表示するステップと
をさらに前記コンピュータに実行させる、
請求項１から３のいずれかに記載の画像処理プログラム。
【請求項５】
前記ワークメモリの容量が不足しているか否かを判断するステップは、前記対象画像に対する前記画像処理の実行中及び／又は実行前に実行される、
請求項１から４のいずれかに記載の画像処理プログラム。
【請求項６】
対象画像に対し画像処理を実行するのに、コンピュータのワークメモリの容量が不足しているか否かを判断する判断部と、
前記ワークメモリの容量が不足していると判断される場合には、前記対象画像のピクセル数を低下させて、前記画像処理を実行する画像処理部と
を備える、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム及び画像処理装置に関する。
【背景技術】
【０００２】
特許文献１では、内蔵されているワークメモリの容量の比較的小さいデジタルカメラにおいて、ワークメモリの容量の不足により、画像の補正や編集を実行できない場合があるという問題が指摘されている。そして、特許文献１では、この問題を解決するために、デジタルカメラに接続されているプリンターに装着されたメモリカード等を、画像の補正や編集時のバッファやキャッシュメモリとして使用することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１０４４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、画像の補正や編集等を行う場合において、特許文献１のように、ワークメモリの容量の不足を補うために使用可能な外部メモリが存在するとは限らない。さらには、このような外部メモリを使用したとしてもなお、ワークメモリの容量の不足が解消されないこともあり得る。そうすると、画像の補正や編集等の実行時に、処理が途中で停滞してしまったり、場合によっては強制終了されてしまい、何らの結果を得ることができない状況が生じ得る。
【０００５】
なお、以上の問題は、デジタルカメラに限らず、内蔵されているワークメモリの容量が比較的大きいパーソナルコンピュータ等の装置においても、同様に生じ得る。補正や編集等のアルゴリズムが複雑な場合や、対象となる画像データのサイズが非常に大きい場合等もあるからである。また、以上の問題は、同じ装置上で別の処理が実行されているために、補正や編集等に使用可能なワークメモリの空き容量が少ない場合にも生じ得る。
【０００６】
本発明は、ワークメモリの容量が不足している場合であっても、処理の停滞や強制終了等を回避して、画像処理の結果を得ることができる画像処理プログラム及び画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１観点に係る画像処理プログラムは、対象画像に対し画像処理を実行するのに、コンピュータのワークメモリの容量が不足しているか否かを判断するステップと、前記ワークメモリの容量が不足していると判断された場合に、前記対象画像のピクセル数を低下させて、前記画像処理を実行するステップとを前記コンピュータに実行させる。
【０００８】
ここでは、コンピュータのワークメモリの容量が不足している場合には、対象画像のピクセル数を低下させて、画像処理が実行される。従って、対象画像のピクセル数を低下させることなく同様の画像処理が実行された場合と比較すると、多少の劣化を伴うものの、ワークメモリの容量が不足している場合であっても、処理の停滞や強制終了等の発生を回避して、画像処理の結果を得ることができる。
【０００９】
なお、ここでいう「ピクセル数の低下」とは、「ピクセル数の低下」を伴わない通常の画像処理後の画像と比較して、「ピクセル数の低下」を伴う画像処理後の画像のピクセル数が低下することを意味する。従って、画像処理の前後で画像のピクセル数が変更されるような画像処理が実行される場合には、画像処理の前後で画像のピクセル数が増加した又は維持されたとしても、ここでいう「ピクセル数の低下」に該当する場合もあるし、逆に、画像処理の前後で画像のピクセル数が低下したとしても、ここでいう「ピクセル数の低下」に該当しない場合もある。また、後述される「ピクセル数の維持」についても、同様のことが言える。
【００１０】
また、ここでいう「対象画像のピクセル数を低下させて、画像処理を実行する」場合には、対象画像のピクセル数を低下させた後、ピクセル数の低下した対象画像に対し画像処理を実行する場合と、対象画像のピクセル数を低下させる処理と画像処理とが一体不可分になっており、これらの処理が同時に実行される場合の両方が含まれる。
【００１１】
本発明の第２観点に係る画像処理プログラムは、第１観点に係る画像処理プログラムであって、前記ワークメモリの容量が不足していないと判断された場合に、前記対象画像のピクセル数を維持したまま、前記画像処理を実行するステップをさらに前記コンピュータに実行させる。
【００１２】
ここでは、コンピュータのワークメモリの容量が不足していない場合には、対象画像のピクセル数を維持したまま、画像処理が実行される。従って、コンピュータのワークメモリの容量を十分に確保可能な場合には、画像処理の結果が劣化することがない。
【００１３】
本発明の第３観点に係る画像処理プログラムは、第１観点又は第２観点に係る画像処理プログラムであって、前記ワークメモリの容量が不足していると判断された場合に、前記対象画像のピクセル数を低下させて、前記画像処理を実行するステップは、前記対象画像のピクセル数を、前記ワークメモリの容量が不足しない範囲で最大のピクセル数に低下させて、前記画像処理を実行するステップである。
【００１４】
ここでは、ワークメモリの容量が不足している場合には、画像処理の結果が劣化するものの、その劣化の程度は、ワークメモリの容量が不足しない範囲で最小限に抑えられる。従って、ワークメモリの容量が不足している場合であっても、確保可能なワークメモリの容量に応じて、可能な限り高画質の結果を得ることができる。
【００１５】
本発明の第４観点に係る画像処理プログラムは、第１観点から第３観点のいずれかに係る画像処理プログラムであって、前記対象画像のピクセル数を低下させて、前記画像処理が実行された場合には、前記対象画像のピクセル数を低下させたことを示す情報とともに、前記画像処理の履歴を前記コンピュータの記憶領域に保存するステップと、前記記憶領域に、前記対象画像のピクセル数を低下させたことを示す情報が保存されている場合には、前記対象画像のピクセル数を低下させたことを示す情報とともに、前記画像処理の履歴を表示するステップとをさらに前記コンピュータに実行させる。
【００１６】
ここでは、ワークメモリの容量が不足していたために、画像処理の結果が劣化した場合には、その旨を示す情報が保存される。また、劣化を伴った画像処理の履歴が表示される場合には、その旨を示す情報も表示される。従って、ユーザは、ワークメモリの容量の不足が原因で画像処理の結果が劣化した場合に、そのことを知ることができる。
【００１７】
本発明の第５観点に係る画像処理プログラムは、第１観点から第４観点のいずれかに係る画像処理プログラムであって、前記ワークメモリの容量が不足しているか否かを判断するステップは、前記対象画像に対する前記画像処理の実行中及び／又は実行前に実行される。
【００１８】
ここでは、ワークメモリの容量が不足しているか否かの判断が、画像処理の実行中及び／又は実行前に実行される。従って、ワークメモリの容量が不足すると予想される状況や、現実にワークメモリの容量が不足してしまった状況に対処することができる。
【００１９】
本発明の第６観点に係る画像処理装置は、第１観点から第４観点のいずれかに係る画像処理プログラムであって、対象画像に対し画像処理を実行するのに、コンピュータのワークメモリの容量が不足しているか否かを判断する判断部と、前記ワークメモリの容量が不足していると判断される場合には、前記対象画像のピクセル数を低下させて、前記画像処理を実行する画像処理部とを備える。ここでは、第１観点と同様の効果を奏することができる。
【発明の効果】
【００２０】
本発明によれば、コンピュータのワークメモリの容量が不足している場合には、対象画像のピクセル数を低下させて、画像処理が実行される。従って、対象画像のピクセル数を低下させることなく同様の画像処理が実行された場合と比較すると、多少の劣化を伴うものの、ワークメモリの容量が不足している場合であっても、処理の停滞や強制終了等の発生を回避して、画像処理の結果を得ることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る画像処理装置のブロック図。
【図２】画像データが取り込まれる前の基本画面の図。
【図３】画像データが取り込まれた後の基本画面の図。
【図４】１のタイムラインに属する静止画群を示す図。
【図５】ワークメモリの容量を監視する処理の流れを示すフローチャート。
【図６】画像処理の流れを示すフローチャート。
【図７】画像処理の履歴を表示するヒストリーウィンドウの図。
【発明を実施するための形態】
【００２２】
以下、図面を参照しつつ、本発明の一実施形態に係る画像処理プログラム及び画像処理装置について説明する。
＜１．画像処理装置のハードウェア構成＞
図１に示す画像処理装置１は、本発明に係る画像処理装置の一実施形態である。画像処理装置１は、オペレーティングシステム(以下、ＯＳ)２ａがインストールされている汎用のパーソナルコンピュータである。また、画像処理装置１には、本発明に係る画像処理プログラムの一実施形態である画像処理プログラム２ｂが、これを格納するＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等のコンピュータが読み取り可能な記録媒体６０等からインストールされている。画像処理プログラム２ｂは、動画及び静止画に対する画像処理を支援するためのアプリケーションソフトウェアあり、ＯＳ２ａと協働しながら、画像処理装置１に後述する動作に含まれるステップを実行させる。
【００２３】
画像処理装置１は、ディスプレイ１０、入力部２０、記憶部３０及び制御部４０を有する。これらの部１０〜４０は、互いにバス線やケーブル等５を介して接続されており、適宜、通信可能である。ディスプレイ１０は、液晶ディスプレイ等から構成され、後述する画面等をユーザに対し表示する。入力部２０は、マウス及びキーボート等から構成され、画像処理装置１に対するユーザからの操作を受け付ける。記憶部３０は、ハードディスク等から構成される不揮発性の記憶領域である。制御部４０は、ＣＰＵ４０ａ、ＲＯＭ４０ｂ、ＲＡＭ４０ｃ及びキャッシュメモリ４０ｄ等から構成される。
【００２４】
ＯＳ２ａ及び画像処理プログラム２ｂは、記憶部３０内に格納されている。記憶部３０内には、ＯＳ管理領域７０及びソフトウェア管理領域５０が確保されている。ＯＳ管理領域７０は、ＯＳ２ａが使用する領域であり、ソフトウェア管理領域５０は、画像処理プログラム２ｂが使用する領域である。ＯＳ管理領域７０の一部は、ＯＳ２ａの仕様及び設定に応じて、仮想メモリ７０ａとして、物理メモリであるＲＡＭ４０ｃとともに、ＣＰＵ４０ａに対しワークエリアを提供する。以下では、ＣＰＵ４０ａに対しワークエリアを提供するＲＡＭ４０ｃ及び仮想メモリ７０ａを総称して、ワークメモリ４と言う。ソフトウェア管理領域５０内には、オリジナル画像領域５１、加工ファイル領域５２及びヒストリー領域５３が確保されている。各領域５１〜５３の役割については、後述する。
【００２５】
ＣＰＵ４０ａは、記憶部３０内に格納されているＯＳ２ａをワークメモリ４に読み出して実行することにより、仮想的にＯＳ管理部４１として動作する。また、ＣＰＵ４０ａは、記憶部３０内に格納されている画像処理プログラム２ｂをワークメモリ４に読み出して実行することにより、アプリケーション管理部４２として動作する。また、アプリケーション管理部４２は、役割に応じて、表示制御部４３、容量監視部４４、画像処理部４５及び履歴管理部４６として動作する。各部４１〜４６の動作については、後述する。
【００２６】
＜２．画像処理装置の構成及び動作の詳細＞
ＣＰＵ４０ａは、ユーザが入力部２０を介して所定の操作を行ったことを検知すると、画像処理プログラム２ｂを起動する。画像処理プログラム２ｂが起動されると、基本画面Ｗ１（図２参照）がディスプレイ１０上に表示される。なお、画像処理プログラム２ｂの命令によりディスプレイ１０上に表示される画面、ウィンドウ、ボタンその他の全ての要素の表示は、表示制御部４３により制御される。
【００２７】
＜２−１．画像データの取り込み処理＞
基本画面Ｗ１は、オリジナル画像領域５１への画像データの取り込みの命令をユーザから受け付ける。オリジナル画像領域５１へ取り込まれた画像データは、後述する再生処理及び画像処理の対象になる。アプリケーション管理部４２は、静止画ファイル又は動画ファイルから、オリジナル画像領域５１へ画像データを取り込む。なお、本明細書において、静止画ファイルとは、静止画形式のデータファイルであり、動画ファイルとは、動画形式のデータファイルである。
【００２８】
静止画ファイルから画像データを取り込む場合、ユーザは、入力部２０を操作することにより、１の静止画ファイルを指定するか、又は１のフォルダを指定する。前者の場合、アプリケーション管理部４２は、その静止画ファイルの記憶部３０内でのアドレスパス及びファイル名をユーザに入力させる。後者の場合、アプリケーション管理部４２は、そのフォルダの記憶部３０内のアドレスパス及びフォルダ名をユーザに入力させる。その後、アプリケーション管理部４２は、指定された静止画ファイル又は指定されたフォルダ内の全ての静止画ファイルを、オリジナル画像領域５１に静止画ファイル群として保存する。なお、本明細書において、「群」という場合には、その要素数は複数とは限らず、１つであってもよい。
【００２９】
一方、動画ファイルから画像データを取り込む場合、ユーザは、入力部２０を操作することにより、１の動画ファイルの記憶部３０内でのアドレスパス及びファイル名を入力する。表示制御部４３は、ユーザが動画ファイルを指定したことを検知すると、基本画面Ｗ１上に動画取込みウィンドウ（図示されない）を重ねて表示させる。動画取込みウィンドウは、指定された動画ファイルのタイムラインの全区間うち、任意の区間の選択をユーザから受け付ける。アプリケーション管理部４２は、ユーザが入力部２０を介して動画取込みウィンドウ上で特定の区間を選択したことを検知すると、指定された動画ファイルのその区間に含まれるフレーム群に１対１で対応する静止画ファイル群を生成する。その後、アプリケーション管理部４２は、この静止画ファイル群をオリジナル画像領域５１に保存する。従って、本実施形態では、後述する再生処理及び画像処理の対象となる画像データは、オリジナル動画ファイルではなく、静止画ファイルである。
【００３０】
なお、アプリケーション管理部４２は、オリジナル画像領域５１へ取り込まれた静止画ファイル群が動画ファイルに由来するものではなく、静止画ファイルに由来するものであっても、この静止画ファイル群をタイムラインに沿って配列されている動画のフレーム群として認識する。この配列は、オリジナル画像領域５１へ取り込まれた静止画ファイル群が動画ファイルに由来する場合には、元の動画ファイル内での配列のとおり決定され、静止画ファイルに由来する場合には、元の静止画ファイルの属性（ファイル名、作成日時、更新日時等）から自動的に決定される。
【００３１】
＜２−２．再生処理＞
オリジナル画像領域５１へ静止画ファイル群が取り込まれると、表示制御部４３は、基本画面Ｗ１上に表示ウィンドウＷ２（図３参照）を重ねて表示させる。表示ウィンドウＷ２は、オリジナル画像領域５１へ取り込まれた静止画ファイル群のタイムラインの数だけ、作成される。
【００３２】
表示ウィンドウＷ２内には、まず、オリジナル画像領域５１へ取り込まれた静止画ファイル群に含まれる１の静止画ファイル（例えば、タイムライン上で先頭のフレームの静止画ファイル）が表示される。その後、後述するとおり、表示ウィンドウＷ２内に表示されるフレームは、ユーザの操作を受けて切り替わる。
【００３３】
図３に示すとおり、基本画面Ｗ１上には、ウィンドウ選択プルダウンメニューＴ１、再生ボタンＴ２、コマ送りボタンＴ３、コマ戻しボタンＴ４及びタイムラインバーＴ５が配置されている。
【００３４】
表示ウィンドウＷ２が複数存在する場合であっても、アクティブな表示ウィンドウＷ２は１つである。ウィンドウ選択プルダウンメニューＴ１は、どの表示ウィンドウＷ２をアクティブとするかの選択をユーザから受け付ける。以下、アクティブな表示ウィンドウＷ２に対応するタイムラインを、アクティブタイムラインと呼び、アクティブタイムラインに属するフレーム群を、アクティブフレーム群と呼ぶ。また、アクティブな表示ウィンドウＷ２内に現在表示されているフレームを、アクティブフレームと呼ぶ。
【００３５】
表示制御部４３は、アクティブな表示ウィンドウＷ２内で、アクティブフレーム群を動画として再生可能である。再生ボタンＴ２は、アクティブフレーム群の動画としての再生の命令をユーザから受け付ける。表示制御部４３は、ユーザが入力部２０を介して再生ボタンＴ２を押下したことを検知すると、アクティブな表示ウィンドウＷ２内に、アクティブフレーム群に含まれるフレームを、タイムラインに沿って順次コマ送りの形式で表示させる。なお、再生は、再生ボタンＴ２が押下された時点のアクティブフレームから開始する。また、再生ボタンＴ２は、再生の停止の命令をユーザから受け付ける。表示制御部４３は、再生中にユーザが入力部２０を介して再生ボタンＴ２を押下したことを検知すると、アクティブな表示ウィンドウＷ２内の表示を、その時点のアクティブフレームに固定する。
【００３６】
コマ送りボタンＴ３、コマ戻しボタンＴ４はそれぞれ、アクティブフレームを、アクティブタイムラインに沿って１つ後、１つ前のフレームへ切り替える命令をユーザから受け付ける。
【００３７】
タイムラインバーＴ５は、アクティブタイムラインを図式的に示すオブジェクトである。タイムラインバーＴ５は、そのバーが延びる方向に、アクティブフレーム群のフレーム数で等分に分割されている。タイムラインバーＴ５上の左からｎ番目の分割領域は、アクティブタイムライン上でｎ番目のフレームに対応する（ｎは、自然数）。
【００３８】
アプリケーション管理部４２は、タイムラインバーＴ５を介し、アクティブタイムライン上の任意の区間の選択をユーザから受け付ける。このとき選択される区間は、連続区間であってもよいし、図３に示すように、不連続区間であってもよい。具体的には、ユーザは、入力部２０を介してタイムラインバーＴ５上で選択したいフレームに対応する分割領域をクリック等の操作により選択する。分割領域は、同時に複数選択が可能である。
【００３９】
図３に示すように、選択フレーム群に対応する分割領域Ａ１と、非選択フレーム群に対応する分割領域Ａ２とは、異なる表示形式で表示される。選択フレーム群とは、アクティブタイムライン上で現在選択されている区間に属するフレーム群である。非選択フレーム群とは、アクティブタイムライン上で現在選択されていない区間に属するフレーム群である。画像処理部４５は、選択フレーム群を後述される画像処理の対象として認識する。なお、ユーザによりタイムラインバーＴ５上の分割領域が選択される度に、アクティブフレームは、最新に選択された分割領域に対応するフレームに直ちに切り替わる。
【００４０】
＜２−３．画像処理＞
以下、選択フレーム群に対する補正や編集等の画像処理について説明する。画像処理部４５は、ノイズ除去、シャープネス、明るさ／コントラスト／彩度の調整、超解像、画像解像度（ピクセル数）の調整、画像平均、回転、文字／矢印／モザイクの付加などの複数の画像処理モジュールを実行可能である。画像処理モジュールは、画像処理プログラム２ｂに組み込まれている。
【００４１】
ユーザは、入力部２０を介して基本画面Ｗ１を操作することにより、上述の様々な種類の画像処理モジュールの中から任意のものを、任意の順番に、任意の回数だけ選択することが可能である。画像処理部４５は、ユーザが画像処理モジュールを選択したことを検知する度に、その時点の選択フレーム群に対しその画像処理モジュールを実行する。すなわち、ユーザによる画像処理モジュールの選択は、その画像処理モジュールの実行を命令することである。なお、選択フレーム群に対し画像処理モジュールを実行するとは、選択フレーム群に含まれる各フレームに対しその画像処理モジュールを実行することである。
【００４２】
フレームに対し画像処理モジュールが１回、２回、３回，・・・と、順次実行されてゆくにつれて、そのフレームは、第１次、第２次、第３次，・・・と、順次加工されてゆく。第０次フレームは、オリジナル画像領域５１に保存されている静止画に対応する。第（ｍ＋１）次フレームは、第ｍ次フレームの静止画に対し画像処理モジュールを１回実行した後の静止画に対応する（ｍは、０以上の整数）。画像処理部４５は、第１次以降のフレームに対応する静止画を順次生成し、これらの静止画を加工ファイル領域５２内にそれぞれ別個のファイルとして保存する。
【００４３】
図４は、１のタイムラインに属する静止画群が画像処理プログラム２ｂによりどのように管理されるかを示す概念図である。図４において、横軸のｎ軸は、タイムライン上のフレームの順番を示しており、縦軸のｍ軸は、加工の順番を示している。図４のｎ−ｍ空間内の座標（ｎ，ｍ）に対応する四角形は、静止画Ｉ（ｎ，ｍ）を表している。静止画Ｉ（ｎ，ｍ）は、タイムライン上でｎ番目の第ｍ次フレームの静止画である（ｎは、自然数であり、ｍは、０以上の整数である）。
【００４４】
アプリケーション管理部４２は、各フレームについて、現在選択されている座標ｍの値をパラメータｍsとして管理する。オリジナル画像領域５１へ静止画ファイル群が取り込まれた直後、その静止画ファイル群の全フレームの座標ｍsは、初期値０である。その後、画像処理モジュールが１回実行される度に、そのフレームの座標ｍsは１ずつインクリメントされる。また、後述するとおり、ユーザは、選択フレーム群の座標ｍsを自在に変更することができる。
【００４５】
なお、フレームに対し画像処理モジュールを実行するとは、そのフレームの第ｍs次の静止画に対し画像処理モジュールを実行することである。従って、座標ｍsを変更することには、画像処理の実行の対象を変更するという意味がある。また、フレームを表示するとは、そのフレームの座標ｍsの静止画を表示することである。従って、座標ｍsを変更することには、アクティブな表示ウィンドウＷ２に表示される対象を変更するという意味もある。アクティブフレームの座標ｍsが変更されると、アクティブな表示ウィンドウＷ２内の表示も直ちに切り替えられる。
【００４６】
＜２−３−１．画像処理の実行時のワークメモリの監視機能＞
画像処理プログラム２ｂは、ワークメモリ４の容量の不足が原因で、選択フレーム群に対する上述の画像処理が途中で停滞してしまったり、強制終了されてしまうことのないように、ワークメモリ４の容量を監視する機能を有している。具体的には、画像処理の実行を開始する直前と実行中とに、容量監視部４４により、選択フレーム群に対し画像処理を実行するのに十分なワークメモリ４の容量が存在しているか否かが、常時監視される。また、容量監視部４４は、ワークメモリ４の容量の不足を検出すると、ユーザが望む場合には、選択フレーム群に含まれる各フレームのピクセル数を低下させてでも画像処理を実行するように、画像処理部４５に命令する。
【００４７】
以下、図５を参照しつつ、容量監視部４４がワークメモリ４の容量を監視する処理（以下、容量監視処理）について、詳細に説明する。なお、容量監視処理は、ユーザにより画像処理モジュールの実行が命令された時に開始する。
【００４８】
まず、容量監視部４４は、変数Ｋに初期値として、ユーザにより画像処理モジュールの実行が命令された時点の対象画像のピクセル数（縦のピクセル数×横のピクセル数）Ｋ0を代入する（ステップＳ１）。なお、対象画像とは、選択フレーム群に含まれるフレームの第ｍs次の静止画である。この変数Ｋは、後のステップＳ９で画像処理部４５に渡される画像処理のパラメータの一種であり、具体的には、後述されるとおりであるが、画像処理部４５は、各対象画像をピクセル数Ｋのサイズの画像に調整した上で、画像処理を実行する。
【００４９】
続くステップＳ２では、容量監視部４４は、選択フレーム群に含まれる全てのフレーム分の、ピクセル数Ｋ＝Ｋ0の対象画像群に対し画像処理を実行するのに必要となるワークメモリ４の容量Ｒ（Ｋ0）を算出する。ここで、容量Ｒ（Ｋ0）は、画像処理プログラム２ｂが予め保持している計算式に従って、算出される。この計算式は、現在実行しようとしている画像処理モジュールの種類、ピクセル数Ｋ及び選択フレーム群に含まれるフレームの枚数Ｊ等を変数として、定義される式である。また、この計算式は、変数Ｋ及びＪの値が大きいほど、式の値が大きくなるように定義されている。続いて、容量監視部４４は、この容量Ｒ（Ｋ0）を確保することが現在可能であるか、ＯＳ２ａの動作を統括するＯＳ管理部４１に問い合わせる。なお、本実施形態のＯＳ２ａは、ワークメモリ４の空き容量を常時監視しており、引数として渡される容量を確保することが現在可能であるか否かを返り値として返す関数を、アプリケーションに対して提供している。また、ワークメモリ４は、画像処理プログラム２ｂだけでなく、画像処理装置１であるパーソナルコンピュータにインストールされている全てのアプリケーションにより共用されるリソースである。従って、ＯＳ管理部４１は、画像処理装置１であるパーソナルコンピュータ上で現在実行されている全てのアプリケーションの動作を監視しながら、各アプリケーションに使用可能なワークメモリ４の容量を割り当てる制御を行っている。
【００５０】
続くステップＳ３では、容量監視部４４は、ステップＳ２の問い合わせに対するＯＳ管理部４１からの返答を受け取り、容量Ｒ（Ｋ0）を確保することが現在可能であるとの返答であれば、ステップＳ９に進み、不可能であるとの返答であれば、ステップＳ４に進む。言い換えると、ステップＳ２及びステップＳ３は、ＯＳ２ａの上述の関数を利用して、ピクセル数Ｋ0の対象画像群に対し画像処理を実行するのに、ワークメモリ４の空き容量が不足しているか否かを判断するステップである。
【００５１】
ステップＳ３からステップＳ４に進むのは、ピクセル数Ｋ＝Ｋ0のままでは、現在、対象画像群に対し画像処理を実行するのに必要となるワークメモリ４の容量を確保することができないと判断された場合である。そこで、ステップＳ４では、表示制御部４３が、対象画像のピクセル数をＫ0から低下させてでも画像処理を実行すべきか否かを、ユーザに尋ねる。具体的には、表示制御部４３は、「メモリの容量が不足しています。画像のピクセル数が低下しますが、画像処理を実行しますか？」のようなメッセージとともに、「はい」及び「いいえ」のボタンを表示するウィンドウ（図示されない）を基本画面Ｗ１上に重ねて表示させる。容量監視部４４は、このウィンドウ上で「はい」又は「いいえ」のどちらのボタンが押下されるのかを監視し（ステップＳ５）、「はい」のボタンが押下されたと判断すると、ピクセル数Ｋを少し小さい値に置換するステップＳ６に進む。一方、「いいえ」のボタンが押下されたと判断すると、容量監視処理を終了する。この場合、図５に示すとおり、画像処理部４５に画像処理の実行の開始を命令するステップＳ９が実行されることがなく、画像処理は実行されないことになる。従って、ステップＳ４及びＳ５は、対象画像のピクセル数をＫ0から低下させてでも画像処理を実行するか否かを、ユーザに判断させるステップである。
【００５２】
容量監視部４４は、ステップＳ６で変数Ｋの値を少し小さくした後、この新たなピクセル数Ｋの対象画像群に対し画像処理を実行するのに必要となるワークメモリ４の容量Ｒ（Ｋ）を算出する（ステップＳ７）。ここで、容量Ｒ（Ｋ）は、ステップＳ２と同じ計算式に従って、算出される。続いて、ステップＳ２と同様の態様で、容量監視部４４は、この容量Ｒ（Ｋ）を確保することが現在可能であるか、ＯＳ管理部４１に問い合わせる。
【００５３】
続くステップＳ８では、容量監視部４４は、ステップＳ２の問い合わせに対するＯＳ管理部４１からの返答を受け取り、容量Ｒ（Ｋ）を確保することが現在可能であるとの返答であれば、ステップＳ９に進み、不可能であるとの返答であれば、ステップＳ６に戻る。言い換えると、ステップＳ６〜ステップＳ８は、ＯＳ２ａの上述の関数を利用して、以前よりも小さいピクセル数Ｋの対象画像群に対し画像処理を実行するのに、ワークメモリ４の空き容量が不足しているか否かを判断するステップである。また、ここでは、ステップＳ８からステップＳ６へ戻るルートが用意されていることで、容量Ｒ（Ｋ）を確保可能になるまで、Ｋの値が、すなわち、容量Ｒ（Ｋ）がより小さい値に小刻みに変更されてゆくことになる。
【００５４】
以上より、ステップＳ９に到達した段階では、その時点の変数Ｋの値に対応する容量Ｒ（Ｋ）を確保することが可能な状態になっている。そこで、ステップＳ９では、容量監視部４４は、この変数Ｋを指定した上で、画像処理部４５に画像処理の実行の開始を命令する。
【００５５】
その後のステップＳ１０及びＳ１１は、画像処理部４５による画像処理の実行と並列に実行される。ここで、ステップＳ１０及びＳ１１について説明する前に、図６を参照しつつ、画像処理部４５による画像処理の流れについて説明する。
【００５６】
画像処理部４５は、ステップＳ９での画像処理の実行の開始の命令を受けて、図６に示す画像処理を開始させる。まず、ステップＳ２１として、画像処理部４５は、現在の変数Ｋの値がＫ0よりも小さいか否か、すなわち、ピクセル数Ｋ＝Ｋ0のままでは、対象画像群に対し画像処理を実行するのに必要となるワークメモリ４の容量を確保することができないと判断されたか否かを判断する。そして、Ｋ＜Ｋ0の場合には、ステップＳ２２を経てステップＳ２３に進み、Ｋ＝Ｋ0の場合には、ステップＳ２２をスキップしてステップＳ２３に進む。
【００５７】
ステップＳ２２では、画像処理部４５は、選択フレーム群に含まれる各フレームについて、対象画像のピクセル数をピクセル数Ｋに低下させた劣化画像を生成する。対象画像のピクセル数を低下させるアルゴリズムについては、二アレストネイバー、バイリニア、バイキュービック等の様々なアルゴリズムが公知であるため、ここでは、詳細な説明を省略する。なお、容量監視処理により、Ｋの値は、小さくなることはあっても、大きくなることはない。従って、画像処理の実行時において、対象画像のピクセル数は、維持されるか（Ｋ＝Ｋ0）、又は低下させられるか（Ｋ＜Ｋ0）のいずれかとなる。
【００５８】
なお、特に断らない限り、「ピクセル数の低下」とは、Ｋ＝Ｋ0として画像処理が実行された場合の画像処理後の対象画像と比較して、Ｋ＜Ｋ0として画像処理が実行された場合の画像処理後の対象画像のピクセル数が低下することを意味する。従って、超解像や画像解像度の調整等、そもそも画像処理の前後で対象画像のピクセル数が変更されるような画像処理が実行される場合には、画像処理の前後で対象画像のピクセル数が増加した又は維持されたとしても、ここでいう「ピクセル数の低下」は生じ得る。逆に、画像処理の前後で対象画像のピクセル数が低下したとしても、ここでいう「ピクセル数の低下」が生じない場合がある。「ピクセル数の維持」についても、同様である。
【００５９】
次に、ステップＳ２３では、画像処理部４５は、ステップＳ２２で劣化画像が生成された場合には、各劣化画像に対し、ユーザにより指定された種類の画像処理モジュールを実行する。一方、ステップＳ２２がスキップされた場合には、ピクセル数Ｋ0の各対象画像に対し、ユーザにより指定された種類の画像処理モジュールを実行する。そして、画像処理部４５は、全ての劣化画像又は全ての対象画像に対する画像処理モジュールの実行が終了すると、画像処理モジュールの実行後の各画像を、その画像の属するフレームの次の次数ｍの静止画として、加工ファイル領域５２内に保存する。
【００６０】
続くステップＳ２４では、履歴管理部４６が、ステップＳ２３で実行された画像処理の履歴をヒストリー領域５３内に保存する。なお、画像処理の履歴の保存の態様については、後のヒストリーの項で詳しく説明する。また、同時に、Ｋ＜Ｋ0の場合には、履歴管理部４６は、その画像処理モジュールが対象画像のピクセル数を低下させた劣化画像に対し実行されたことを示す情報をヒストリー領域５３内に保存する。
【００６１】
続くステップＳ２５では、画像処理部４５は、選択フレーム群に含まれる全てのフレームに対する画像処理モジュールの実行が正常に終了したことを示すメッセージを、容量監視部４４に送る。そして、ステップＳ２５が終了すると、図６に示す画像処理が終了する。
【００６２】
続いて、容量監視処理の説明に戻る。上述したとおり、図６に示す画像処理の実行中、容量監視部４４は、ステップＳ１０及びステップＳ１１を繰り返し実行する。ステップＳ１０は、ワークメモリ４の容量の不足が原因で、画像処理部４５による画像処理が停滞している、又は強制終了してしまう等の問題（以下、オーバーフロー問題）が発生していないかを判断するステップである。容量監視部４４は、ＯＳ管理部４１に問い合わせたり、又は自ら画像処理部４５による処理の進捗状況を確認することで、この判断を行う。そして、容量監視部４４は、オーバーフロー問題が発生していると判断された場合には、ステップＳ６に戻り、オーバーフロー問題が発生していないと判断された場合には、ステップＳ１１に進む。
【００６３】
従って、オーバーフロー問題が発生している場合には、ステップＳ１０からステップＳ６に戻り、対象画像のピクセル数Ｋの値がさらに少しだけ小さくなるように再設定される。また、このとき、ステップＳ６〜ステップＳ８は、ワークメモリ４の容量を確保可能な変数Ｋに達するまで、繰り返し実行される。そして、ワークメモリ４の容量が確保可能な変数Ｋが見つかった時点で、ステップＳ９に進み、図６に示す画像処理の実行の開始が、再度画像処理部４５に命令される。なお、この再度の命令を受けた時点で、以前の画像処理が未だ実行中である場合には、画像処理部４５は、この以前の画像処理を強制終了させる。
【００６４】
一方、オーバーフロー問題が発生していない場合に実行されるステップＳ１１では、容量監視部４４は、画像処理部４５からステップＳ２５の画像処理モジュールの正常終了のメッセージが送られてきたか否かを判断する。そして、容量監視部４４は、未だ正常終了のメッセージが送られてきていないと判断すると、ステップＳ１０に戻り、これを繰り返す。一方、正常終了のメッセージが送られてきたと判断すると、容量開始処理を終了させる。従って、画像処理部４５によるステップＳ２５の画像処理モジュールの実行前だけでなく、実行中も、これが正常に終了するまで、ワークメモリ４の容量の不足が常時監視されることになる。従って、容量監視処理は、ワークメモリ４の容量が不足すると予想される状況だけでなく、現実にワークメモリ４の容量が不足してしまった状況にも対処することができる。
【００６５】
＜２−４．ヒストリー＞
履歴管理部４６は、フレーム毎の画像処理の履歴をヒストリー領域５３内で管理する。なお、ヒストリー領域５３内で管理される画像処理の履歴とは、どの種類の画像処理モジュールがどの順番で実行されたのかを示す情報である。具体的には、ヒストリー領域５３内では、フレーム毎、かつ、加工の順番ｍ毎に、第ｍ次の静止画に対し実行された画像処理モジュールの名称が格納される。
【００６６】
さらに、履歴管理部４６は、画像処理モジュールがピクセル数を低下させた劣化画像に対し実行された場合には、その画像処理モジュールの名称に関連付けて、その旨を示す情報をヒストリー領域５３内に保存する。
【００６７】
また、図３に示すように、表示制御部４３は、基本画面Ｗ１上にヒストリーウィンドウＷ３を重ねて表示可能である。ヒストリーウィンドウＷ３内には、アクティブフレームに対し実行された画像処理の詳細が表示される（図７参照）。ヒストリーウィンドウＷ３内に表示される画像処理の詳細は、ヒストリー領域５３を参照することにより判断される。なお、アクティブフレームが切り替えられる度に、ヒストリーウィンドウＷ３内の表示も、リアルタイムに切り替えられる。
【００６８】
図７に示すように、ヒストリーウィンドウＷ３内には、初期状態エリアＥ１と、モジュール名称エリアＥ２とが、上下に並んで表示される。初期状態エリアＥ１の数は、１つであり、モジュール名称エリアＥ２の数は、アクティブフレームに対し実行された画像処理モジュールの数と同じである。初期状態エリアＥ１は、アクティブフレームの初期状態（第０次フレーム）に対応し、上からＬ番目のモジュール名称エリアＥ２は、アクティブフレームに対しＬ番目に実行された画像処理モジュールに対応する（Ｌは、自然数）。各モジュール名称エリアＥ２には、そのエリアＥ２に対応する画像処理モジュールの名称が表示される。
【００６９】
また、図７に示すように、表示制御部４３は、モジュール名称エリアＥ２に対応する画像処理モジュールが、ピクセル数を低下させた劣化画像に対し実行されたものである場合には、そのモジュール名称エリアＥ２内の画像処理モジュールの名称の横に、その旨を示す所定のマークＭ１を表示する。従って、ユーザは、アクティブな表示ウィンドウＷ２内に表示されている画像が、ワークメモリ４の容量の不足が原因でピクセル数が低下させられたものである場合には、そのことを知ることができる。
【００７０】
また、ユーザは、入力部２０を介してヒストリーウィンドウＷ３を操作することにより、アクティブフレームについて、現在選択されている座標ｍsを自在に変更することができる。具体的には、ヒストリーウィンドウＷ３は、エリアＥ１，Ｅ２の中から任意の１のエリアの選択をユーザから受け付ける。アプリケーション管理部４２は、ユーザがエリアＥ１，Ｅ２を選択するのに応じて、アクティブフレームの座標ｍsを、そのエリアＥ１，Ｅ２に対応する静止画の座標ｍの値に変更する。なお、エリアＥ２に対応する静止画とは、そのエリアＥ２に対応する画像処理モジュールの実行後の静止画である。
【００７１】
＜３．用途＞
画像処理プログラム２ｂは、多種多様な動画に対する画像処理を取り扱うことができ、例えば、警察等の機関が事件の捜査のために防犯カメラの監視映像を解析する場面でも利用され得る。この場合、ユーザは、画像処理プログラム２ｂに実装されている様々な画像処理モジュールを用いて監視映像を鮮明化等することで、捜査の手がかりや事件の証拠を掴むことができる。そして、このような場面では、しばしば、同じ事件に関連して収集される監視映像の量が膨大になる。そうすると、画像処理に要する時間も膨大になり、従来、画像処理を進めることができない事態が生じていた。しかしながら、画像処理プログラム２ｂを用いた場合には、このような事態が生じたとしても、ピクセル数を落とすことで、ある程度の結果を得ることが可能となる。この場合、ユーザは、後日、画像処理プログラム２ｂがインストールされているコンピュータの容量を十分に確保できるタイミングで、再度同じ画像処理を実行すればよい。従って、画像処理プログラム２ｂを用いれば、効率的に捜査を進めることができる。
【００７２】
＜４．特徴＞
＜４−１＞
上記実施形態では、ワークメモリ４の容量が不足している場合には、対象画像のピクセル数を低下させて、画像処理が実行される。従って、対象画像のピクセル数を低下させることなく同様の画像処理が実行された場合と比較すると、多少の劣化を伴うものの、ワークメモリ４の容量が不足している場合であっても、処理の停滞や強制終了等の発生を回避して、一応の画像処理の結果を得ることができる。一方、ワークメモリ４の容量が不足していない場合には、対象画像のピクセル数を維持したまま、画像処理が実行される。従って、ワークメモリ４の容量を十分に確保可能な場合には、画像処理の結果が劣化することがない。
【００７３】
＜４−２＞
上記実施形態では、繰り返し実行されるステップＳ６により、ワークメモリ４の容量が確保可能と判断されるまで、変数Ｋの値が小刻みに小さくなる。従って、ワークメモリ４の容量が不足している場合には、画像処理の結果が劣化するものの、その劣化の程度は、ワークメモリ４の容量が不足しない範囲で最小限に抑えられる。従って、ワークメモリ４の容量が不足している場合であっても、確保可能なワークメモリ４の容量に応じて、可能な限り高画質の結果を得ることができる。
【００７４】
＜４−３＞
表示制御部４３は、ヒストリー領域５３内に画像処理モジュールがピクセル数を低下させた劣化画像に対し実行されたものであることを示す情報が保存されている場合には、その画像処理モジュールに対応するモジュール名称エリアＥ２に、その旨を示す所定のマークＭ１を表示する。従って、ユーザは、ワークメモリ４の容量の不足が原因で画像処理の結果が劣化した場合に、後にそのことを確認することができる。
【００７５】
＜５．変形例＞
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例の要旨は、適宜組み合わせることができる。
【００７６】
＜５−１＞
上記実施形態では、画像処理プログラム２側でワークメモリ４の容量が不足しているか否かを判断するために、ＯＳ２ａにより提供されている関数（引数として渡される容量を確保することが現在可能であるか否かを返り値として返す関数）が利用された。しかしながら、ワークメモリ４の容量が不足しているか否かを判断するための方法は、これに限定されない。
【００７７】
例えば、容量監視部４４がＯＳ管理部４１にワークメモリ４の空き容量を問い合わせ、この空き容量の値に見合う最大のピクセル数Ｋを判断し、このピクセル数Ｋが初期状態の対象画像のピクセル数Ｋ0よりも大きければピクセル数Ｋ0を用いて、小さければその最大のピクセル数Ｋを用いて、画像処理モジュールを実行するようにしてもよい。ここでは、ＫとＫ0との大小関係を判断することで、ワークメモリ４の容量が不足しているか否かを判断していると言える。
【００７８】
＜５−２＞
上記実施形態において、ワークメモリ４の容量として、ＲＡＭ４０ｃの空き容量だけを監視してもよいし、仮想メモリ７０ａやキャッシュメモリ４０ｄ等も含めた空き容量を監視してもよい。
【００７９】
＜５−３＞
上記実施形態では、ワークメモリ４の容量が不足しているか否かの判断が、画像処理部４５による画像処理の実行前及び実行中に実行された。しかしながら、実行前にだけ実行されてもよいし、実行中にのみ実行されてもよい。
【００８０】
＜５−４＞
上記実施形態に係る容量監視処理及び画像処理は、パーソナルコンピュータに限らず、例えば、カメラ等の他の種類の機器にも実装可能である。
【００８１】
＜５−５＞
上記実施形態では、ワークメモリ４の容量が不足している場合には、対象画像のピクセル数を低下させた後、ピクセル数の低下した劣化画像に対し画像処理が実行されるようになっていた。しかしながら、対象画像のピクセル数を低下させる処理と画像処理とを一体化したようなアルゴリズムの画像処理モジュールを用意し、これらの処理が同時に実行されるようにしてもよい。
【符号の説明】
【００８２】
１  画像処理装置（コンピュータ）
２  画像処理プログラム
４  ワークメモリ
４４  容量監視部（判断部）
４５  画像処理部
【図１】
2014192531.tif 000003
【図２】
2014192531.tif 000004
【図３】
2014192531.tif 000005
【図４】
2014192531.tif 000006
【図５】
2014192531.tif 000007
【図６】
2014192531.tif 000008
【図７】
2014192531.tif 000009