(57)【要約】【課題】画像データに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことが可能な、画像処理装置、画像処理方法、およびプログラムを提供する。【解決手段】複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、処理を分割領域および処理工程を処理単位として所定の処理順序で実行する処理実行部と、処理の進捗状況を示す進捗情報を管理する進捗情報管理部と、処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得部と、進捗情報およびリソース情報に基づいて、処理上での各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定部と、少なくとも第１の処理優先度に従った処理順序で各処理単位を実行するように、処理実行部を制御する処理制御部と、を備える。【選択図】図７
2010087597.tif 000002
【特許請求の範囲】
【請求項１】
複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、前記処理を前記分割領域および前記処理工程を処理単位として所定の処理順序で実行する処理実行部と、
前記処理の進捗状況を示す進捗情報を管理する進捗情報管理部と、
前記処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得部と、
前記進捗情報および前記リソース情報に基づいて、前記処理上での前記各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定部と、
少なくとも前記第１の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行部を制御する処理制御部と、
を備える画像処理装置。
【請求項２】
前記進捗情報管理部は、前記処理の進捗状況を前記分割領域毎に示す進捗情報を管理し、
前記処理優先度設定部は、前記分割領域毎の前記進捗情報および前記リソース情報に基づいて、前記第１の処理優先度を前記分割領域毎に設定し、
前記処理制御部は、前記分割領域毎の前記第１の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行部を制御する、請求項１に記載の画像処理装置。
【請求項３】
前記進捗情報管理部は、前記処理の進捗状況を前記処理工程毎に示す進捗情報を管理し、
前記処理優先度設定部は、前記リソース情報に基づいて、前記第１の処理優先度を前記処理工程毎に設定し、
前記処理制御部は、前記処理工程毎の前記進捗情報および前記第１の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行部を制御する、請求項１に記載の画像処理装置。
【請求項４】
前記処理優先度設定部は、前記分割領域毎の画像データに割り当てられる表示順序に基づいて、前記処理上での前記各処理単位の優先度を示す第２の処理優先度を前記分割領域毎に設定し、
前記処理制御部は、前記第１および第２の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行部を制御する、請求項２に記載の画像処理装置。
【請求項５】
前記処理優先度設定部は、表示画面上で前記画像の表示領域が移動されると、表示領域の移動状況に応じて前記分割領域毎の画像データに再び割り当てられる表示順序に基づいて、前記第２の処理優先度を前記分割領域毎に再設定する、請求項４に記載の画像処理装置。
【請求項６】
前記処理優先度設定部は、前記分割領域毎の画像データに割り当てられる表示順序に基づいて、前記処理上での前記各処理単位の優先度を示す第２の処理優先度を前記分割領域毎に設定し、
前記処理制御部は、前記処理工程毎の前記進捗情報、および前記第１および第２の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行部を制御する、請求項３に記載の画像処理装置。
【請求項７】
前記分割領域毎の画像データを表示する表示部をさらに備え、
前記処理制御部は、前記進捗情報に従って、前記複数の処理工程のうち途中の所定の処理工程まで実行された前記分割領域の画像データを表示するように前記表示部を制御する、請求項１に記載の画像処理装置。
【請求項８】
前記画像データは、未現像状態の画像データである、請求項１に記載の画像処理装置。
【請求項９】
複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、前記処理を前記分割領域および前記処理工程を処理単位として所定の処理順序で実行する処理実行ステップと、
前記処理の進捗状況を示す進捗情報を管理する進捗情報管理ステップと、
前記処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得ステップと、
前記進捗情報および前記リソース情報に基づいて、前記処理上での前記各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定ステップと、
少なくとも前記第１の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行ステップを制御する処理制御ステップと、
を含む画像処理方法。
【請求項１０】
複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、前記処理を前記分割領域および前記処理工程を処理単位として所定の処理順序で実行する処理実行ステップと、
前記処理の進捗状況を示す進捗情報を管理する進捗情報管理ステップと、
前記処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得ステップと、
前記進捗情報および前記リソース情報に基づいて、前記処理上での前記各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定ステップと、
少なくとも前記第１の処理優先度に従った処理順序で前記各処理単位を実行するように、前記処理実行ステップを制御する処理制御ステップと、
を含む画像処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、撮像素子から出力されたＲａｗデータＤＲを、パーソナルコンピュータ等の画像処理装置により調整しながら現像するＲａｗ現像が知られている。ＲａｗデータＤＲとは、撮像素子による撮像結果であり、撮像結果の表示に要する一連の画質補正処理を施されていない画像データである。
【０００３】
Ｒａｗ現像では、例えば１画像当り１０ＭＢ等、大容量のＲａｗデータＤＲに対して一連の処理が行われるので、一般に、処理対象となる画像を複数の分割領域に区分し、分割領域毎にＲａｗデータＤＲに対する処理が行われる。これにより、画像処理装置では、ＣＰＵ、メモリ等の処理リソースに対する負荷が軽減され、一定の処理速度の向上が図られる。
【０００４】
従来のＲａｗ現像では、例えば、ディスプレイ等の表示画面の中央部に表示される分割領域に高い優先度が割り当てられ、周辺部に表示される分割領域に低い優先度が割り当てられる。そして、分割領域毎の優先度に従って、ある分割領域のＲａｗデータＤＲに対する一連の処理が行われた後、次の優先度を割り当てられた分割領域のＲａｗデータＤＲに対する一連の処理が行われる。つまり、従来のＲａｗ現像では、分割領域毎の優先度に従って、複数の分割領域のＲａｗデータＤＲに対する処理が行われる。
【０００５】
【特許文献１】特開２００７−３３４７０８号公報
【特許文献２】特開２００６−３４０１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、画像処理装置では、各処理工程の内容に応じた異なる仕様で処理リソースが利用される。このため、分割領域毎の優先度にのみ従って複数の分割領域のＲａｗデータＤＲに対する処理を行うと、処理リソースを確保するための待ち時間の発生等により、処理速度を必ずしも向上させることができない場合がある。つまり、分割領域毎の優先度にのみ従って処理を行う従来のＲａｗ現像では、処理対象となる画像のＲａｗデータＤＲに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことができない場合がある。
【０００７】
本発明は上記問題点に鑑みてなされたものであり、その目的は、画像データに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことが可能な、新規かつ改良された画像処理装置、画像処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の観点によれば、複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、処理を分割領域および処理工程を処理単位として所定の処理順序で実行する処理実行部と、処理の進捗状況を示す進捗情報を管理する進捗情報管理部と、処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得部と、進捗情報およびリソース情報に基づいて、処理上での各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定部と、少なくとも第１の処理優先度に従った処理順序で各処理単位を実行するように、処理実行部を制御する処理制御部と、を備える画像処理装置が提供される。
【０００９】
かかる構成によれば、進捗情報およびリソース情報に基づいて設定される、第１の処理優先度に従った処理順序で、画像データに対する一連の処理を構成する各処理単位が実行される。これにより、画像データに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことができる。
【００１０】
また、上記課題を解決するために、本発明の第２の観点によれば、複数の分割領域からなる画像の画像データに対して、複数の処理工程からなる処理を所定の工程順序で実行し、処理を分割領域および処理工程を処理単位として所定の処理順序で実行する処理実行ステップと、処理の進捗状況を示す進捗情報を管理する進捗情報管理ステップと、処理の実行に供する処理リソースの利用状況を示すリソース情報を取得するリソース情報取得ステップと、進捗情報およびリソース情報に基づいて、処理上での各処理単位の優先度を示す第１の処理優先度を設定する処理優先度設定ステップと、少なくとも第１の処理優先度に従った処理順序で各処理単位を実行するように、処理実行ステップを制御する処理制御ステップと、を含む画像処理方法が提供される。
【００１１】
さらに、上記課題を解決するために、本発明の第３の観点によれば、第２の観点による画像処理方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１２】
本発明によれば、画像データに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことが可能な、画像処理装置、画像処理方法、およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、添付した図面を参照しながら、本発明の好適な実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
まず、図１〜図３を参照しながら、本発明の第１の実施形態に係る画像処理システムについて説明する。画像処理システムは、スチルカメラ等の撮像装置１０により撮影した撮像結果を、パーソナルコンピュータ等の画像処理装置３０により現像処理するシステムである。
【００１５】
図１は、撮像装置１０の構成例を示すブロック図である。図２は、Ｒａｗデータファイルの構成例を示す図である。図３は、画像処理装置３０の構成例を示すブロック図である。
【００１６】
［撮像装置１０の構成］
図１に示すように、撮像装置１０は、ＣＰＵ１１、撮像素子１２、前処理回路１３、光学補正回路１４、画像処理回路１５、エンコーダ１６、記録媒体インタフェース（Ｉ／Ｆ）１７、記録媒体１８、Ｒａｗデータファイル生成回路１９、メモリ２０を含んで構成される。
【００１７】
撮像装置１０において、図示しないレンズは、所定の撮影条件（絞り、ズーム、フォーカス等）で入射光を集光し、撮像素子１２の撮像面に光学像を形成する。撮像素子１２は、撮像面に形成された光学像の撮像結果を前処理回路１３に出力する。
【００１８】
前処理回路１３は、撮像素子１２からの出力信号を前処理し、撮像結果の画像データを生成して光学補正回路１４に出力する。光学補正回路１４は、前処理回路１３からの画像データを補正処理し、ＲａｗデータＤＲを画像処理回路１５およびＲａｗデータファイル生成回路１９に出力する。
【００１９】
画像処理回路１５は、光学補正回路１４からのＲａｗデータＤＲを画質補正処理し、画質補正後の画像データをエンコーダ１６に出力する。また、画像処理回路１５は、撮像結果を表示するために、画質補正後の画像データを図示しない表示装置に出力する。
【００２０】
エンコーダ１６は、画像処理回路１５からの画像データをＪＰＥＧ等の形式でデータ圧縮し、画像データからサムネイル画像データを生成してデータ圧縮し、ＥＸＩＦ（Exchangeable Image File Format）等の形式で出力する。また、エンコーダ１６は、ＣＰＵ１１の制御により動作を切替え、データ圧縮されたサムネイル画像データをＲａｗデータファイル生成回路１９に出力する。
【００２１】
記録媒体Ｉ／Ｆ１７は、エンコーダ１６からの画像データを記録媒体１８に記録し、記録媒体１８に記録されている画像データを再生して各部に出力する。また、記録媒体Ｉ／Ｆ１７は、ＣＰＵ１１の制御により動作を切替え、Ｒａｗデータファイル生成回路１９からのＲａｗデータファイルを記録媒体１８に記録する。記録媒体１８は、メモリカード、光ディスク、光磁気ディスク等であり、記録媒体Ｉ／Ｆ１７から入力される各種のデータを記録する。
【００２２】
Ｒａｗデータファイル生成回路１９は、光学補正回路１４からのＲａｗデータＤＲ、ＣＰＵ１１からのサムネイル画像データＤＴ、および撮影時の撮影情報ＤＳ等からＲａｗデータファイルを生成し、記録媒体Ｉ／Ｆ１７に出力する。ここで、サムネイル画像データＤＴは、ＲａｗデータＤＲを間引きして生成される。撮影時の撮影情報ＤＳは、画像データの撮影時に撮像装置１０上で設定されていた撮影条件の情報であり、画質補正処理の条件を特定する画質補正情報、レンズ、撮像素子１２の設定を特定する光学系情報等から構成される。
【００２３】
［Ｒａｗデータファイルの構成］
Ｒａｗデータファイルは、図２に示すように、ＥＸＩＦの形式でＲａｗデータＤＲを記録するファイルであり、ヘッダおよびＩＦＤ（Image Format Directory）を用いて各種のデータを記録している。
【００２４】
Ｒａｗデータファイルにおいて、ファイル先頭のフィールドＦ１には、メイン画像データの再生時に必要な情報（メイン画像ＩＦＤ０）、およびメイン画像データの撮影時の情報（撮影情報ＩＦＤ１）が記録される。ここで、メイン画像データには、ＲａｗデータＤＲが割り当てられ、撮影情報には、撮影時の撮像装置１０を特定する情報、および撮影条件を特定する情報が割り当てられる。
【００２５】
フィールドＦ２には、ＪＰＥＧ形式でデータ圧縮されたサムネイル画像データが記録される。フィールドＦ３には、撮像装置１０のメーカーにより定義される情報（平文部メーカーノートＩＦＤ）が記録される。
【００２６】
フィールドＦ３に続いて、メイン画像データの撮影時の撮影情報ＤＳ０が記録される。フィールドＦ４には、撮影時の絞りの設定、シャッター速度、撮影モード等が記録される。フィールドＦ５には、ＲａｗデータＤＲの画像処理に必要なパラメータ（撮影時の画像処理情報ＤＳ０Ａ）が記録される。
【００２７】
フィールド６には、基準パラメータが記録される。基準パラメータは、例えば、合焦位置情報、背景位置情報、顔位置情報、逆光位置情報、飽和位置情報、光軸中心位置情報等である。なお、基準パラメータに続いて、各種のパラメータが順次記録され、撮影時の撮影情報ＤＳ０が形成される。
【００２８】
フィールド６に続いて、編集処理時の撮影情報ＤＳ１、ＤＳ２、…が記録される。編集処理時の撮影情報ＤＳ１、ＤＳ２、…は、編集処理時に設定される撮影情報であり、撮影時の画像処理情報に対応して設定される。フィールド７には、フィールド４に記録されている撮影情報に履歴の情報が追加されて、撮影情報ＤＳ１、ＤＳ２、…が記録される。フィールド８には、フィールド７に記録されている撮影情報に対応する具体的な画像処理情報が記録される。
【００２９】
編集処理時の撮影情報ＤＳ１、ＤＳ２、…に続いて、サムネイル画像データＤＴの再生に必要な情報およびサムネイル画像データＤＴが記録され、サムネイル画像データＤＴに続いて、メイン画像データであるＲａｗデータＤＲが記録される。
【００３０】
Ｒａｗデータファイル生成回路１９は、光学補正回路１４からのＲａｗデータＤＲ、ＣＰＵ１１からの撮影情報ＤＳおよびサムネイル画像データＤＴ、エンコーダ１６からのサムネイル画像データにより、Ｒａｗデータファイルを生成し、記録媒体Ｉ／Ｆ１７に出力する。
【００３１】
ＣＰＵ１１は、メモリ２０に記録されているプログラムに従って撮像装置１０の各部の動作を制御する。ＣＰＵ１１は、撮像素子１２、前処理回路１３、光学補正回路１４を制御し、撮影条件に応じた撮像結果を収録し、図示しないメモリ２０にＲａｗデータＤＲを保持する。ＣＰＵ１１は、画像処理回路１５を制御し、ユーザの指示に応じてＲａｗデータＤＲの撮像結果を画質補正し、画質補正後の画像データを生成し、図示しない表示装置に表示させる。
【００３２】
また、ＣＰＵ１１は、ユーザによるＲａｗデータＤＲの記録指示に応じて、メモリ２０に保持されているＲａｗデータＤＲを間引き処理し、サムネイル画像データＤＴを生成する。ＣＰＵ１１は、エンコーダ１６を制御し、画質補正後の画像データからサムネイル画像データＤＴを生成し、撮影時の各部の設定等から撮影時の撮影情報ＤＳを生成する。そして、ＣＰＵ１１は、撮影情報ＤＳ、サムネイル画像データＤＴ等をＲａｗデータファイル生成回路１９に出力し、Ｒａｗデータファイル生成回路１９、記録媒体Ｉ／Ｆ１７を制御し、Ｒａｗデータファイルを記録媒体１８に記録する。
【００３３】
［画像処理装置３０の構成］
図３に示すように、画像処理装置３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４、操作部３５、表示部３６、記録媒体インタフェース（Ｉ／Ｆ）３７、プリンタインタフェース（Ｉ／Ｆ）３８を含んで構成され、各部がバスＢＵＳを通じて接続されている。
【００３４】
ＣＰＵ３１は、ＲＯＭ３２等からオペレーティングシステム（ＯＳ）等のシステムプログラムを読出し、ＲＡＭ３３上に確保される作業領域を用いて実行する。ＣＰＵ３１は、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４等から画像処理プログラム等を読み出し、ＲＡＭ３３上に確保される作業領域、ＣＰＵ３１に設けられる１次および／または２次キャッシュを用いて実行する。
【００３５】
ＣＰＵ３１は、プログラムに従って、各部を制御するための制御信号を形成して各部に出力し、各部から入力されるデータを処理して各部に出力する。システムプログラムは、ＣＰＵ３１、ＲＡＭ３３、１次および２次キャッシュ等の処理リソースの利用状況をリソース情報として管理しており、プログラム要求に応じて画像処理プログラム等に提供する。
【００３６】
ＣＰＵ３１は、ＲａｗデータＤＲに対して、ガンマ補正処理、ホワイトバランス調整処理、デモザイク処理、ノイズリダクション処理を含む一連の画質補正処理を行う。また、ＣＰＵ３１は、所定のデータ圧縮方式に従って輝度データおよび色データをデータ圧縮して記録用画像データを形成し、記録用画像データを伸張してデータ圧縮前のＲａｗデータＤＲを復元する。ここで、ＣＰＵ３１は、処理実行部、進捗情報管理部、リソース情報取得部、処理優先度設定部、処理制御部として機能する。
【００３７】
ＲＯＭ３２は、ＣＰＵ３１により実行されるプログラム、処理に必要とされる各種のデータ等を記憶している。ＲＡＭ３３は、画像表示用のビデオＲＡＭ（以下、ＶＲＡＭとも称する。）を含み、各種の処理を行うために主に作業領域として利用される。ＨＤＤ３４は、ハードディスクを含み、ＣＰＵ３１による制御に応じて、ハードディスクに対するデータの書き込み／読出しを行う。
【００３８】
操作部３５は、数字キー、文字キー、上下左右キー、各種のファンクションキー等を含んでおり、ユーザからの操作入力をＣＰＵ３１に供給する。操作部３５は、マウス等のポインティングデバイスを含んでもよい。ＣＰＵ３１は、操作部３５を介してユーザにより入力される操作入力に応じて各部を制御し、操作入力に応じた処理を行う。表示部３６は、ＬＣＤ、ＣＲＴ等の表示素子を有し、輝度データおよび色データから形成される画像信号に対応する画像を表示する。
【００３９】
記録媒体Ｉ／Ｆ３７は、メモリカード、光ディスク、光磁気ディスク等の記録媒体３９に対するデータの書込み／読出しを行う。プリンタＩ／Ｆ３８は、画像の印刷データ等をプリンタ４０に出力する。
【００４０】
［画像処理方法］
次に、図４〜図６を参照しながら、本発明の第１の実施形態に係る画像処理方法について、従来の画像処理方法と対比して説明する。
【００４１】
（従来の画像処理方法）
まず、従来の画像処理方法について説明する。図４は、従来の画像処理方法の流れを示すフロー図である。図５は、タイル情報の一例を示す図であり、図６は、優先度テーブルの一例を示す図である。
【００４２】
以下では、図４〜図６を参照しながら、ＲａｗデータＤＲをＲａｗ現像する場合の従来の画像処理方法について説明する。なお、ＲａｗデータＤＲを含むＲａｗデータファイルは、撮像装置１０により生成され、データ圧縮された状態で画像処理装置３０のＨＤＤ３４に記録されているものとする。また、Ｒａｗデータファイルに含まれるＲａｗデータＤＲ以外のデータ（サムネイル画像データＤＴ、撮影情報ＤＳ等）は、伸張された状態の参照ファイルとして、Ｒａｗデータファイルに関連付けて記録されているものとする。
【００４３】
画像処理装置３０のＣＰＵ３１は、ＨＤＤ３４等に記録されている画像処理プログラムを読み出して実行する。ＣＰＵ３１は、ＨＤＤ３４に記録されている参照ファイルからサムネイル画像データＤＴを読み出し、処理可能な画像のサムネイル一覧として表示部３６に表示させる。また、ＣＰＵ３１は、処理対象となる対象画像５０の選択および処理開始の操作をユーザに促すメッセージを表示部３６に表示させる。
【００４４】
ユーザから対象画像５０の選択および処理開始の操作を受けると、ＣＰＵ３１は、ＨＤＤ３４に記録されている対象画像５０のＲａｗデータファイルを伸張する。ＣＰＵ３１は、対象画像５０のＲａｗデータＤＲを伸張された状態でＲＡＭ３３上の所定の格納領域に格納する。
【００４５】
ＣＰＵ３１は、対象画像５０のタイル情報を設定する（ステップＳ１０）。タイル情報とは、対象画像５０を複数の分割領域（タイル）に区分するための情報であり、対象画像５０のＲａｗデータＤＲ上で各タイルに対応するＲａｗデータＤＲを特定可能な情報として設定される。
【００４６】
タイル情報は、対象画像５０を表現する画素エリア上で各タイルに対応する領域を示す画素エリア情報として設定される。そして、画素エリア情報は、所定の変換テーブルに基づいて、ＲＡＭ３３上の所定の格納領域内で各タイルに対応する領域を示すメモリアドレス情報に変換される。なお、タイル情報は、メモリアドレス情報として直接設定されてもよい。
【００４７】
図５には、対象画像５０を２５（＝５×５）のタイルに区分する場合のタイル情報が一例として示されている。タイルＴｉｊは、画素エリア上での配置に従って、画素エリアの左上部から右下部に至る順序でタイルＴ１１、T２１、Ｔ３１、Ｔ４１、Ｔ５１、Ｔ１２、…、Ｔ４５、Ｔ５５として表記されている（図５中では、タイル番号が示されている。）。
【００４８】
例えば、画素数Ｍ×Ｎの画素エリアを想定すると、各タイルが（Ｍ／５）×（Ｎ／５）画素の画素領域を一律に有することになる。そして、例えば、タイルＴ１１のタイル情報は、画素エリア情報（１〜Ｍ／５、１〜Ｎ／５）として設定され、タイルＴ５５のタイル情報は、画素エリア情報（Ｍ／５×４＋１〜Ｍ、Ｎ／５×４＋１〜Ｎ）として設定される。
【００４９】
ＣＰＵ３１は、優先度テーブルを設定する（Ｓ１２）。優先度テーブル７０は、対象画像５０を構成するタイル毎に処理の優先度を設定するための情報であり、対象画像５０に対する処理の進捗状況に応じて更新される。なお、以下では、表示画面５５上で中央部に表示されるタイルから周辺部に表示されるタイルの順序に従って、処理の優先度を設定する場合について説明する。
【００５０】
図６には、図５に示した２５のタイルに対応する優先度テーブル７０が一例として模式的に示されている（図６中では、タイル毎の優先度が示されている。）。図６に示す例では、表示画面５５の中央に対象画像５０が表示される場合を想定している。そして、表示画面５５の中央に表示される、対象画像５０の中央部ほどユーザによる注目の対象となり易いことを想定して、対象画像５０の中央部のタイルから周辺部のタイルの順序で優先度が割り当てられている。具体的には、例えば、Ｔ３３、Ｔ４３、Ｔ４４、…、Ｔ３１、Ｔ４１、Ｔ５１に対応して、渦巻状に優先度「１」、「２」、「３」、…、「２３」、「２４」、「２５」が割り当てられている。
【００５１】
ＣＰＵ３１は、進捗フラグを設定する（Ｓ１４）。進捗フラグは、対象画像５０に対する処理の進捗状況を示す情報であり、対象画像５０に対する処理の進捗状況に応じて更新される。進捗フラグは、処理の対象となる対象タイルの識別情報、および対象タイルに対して次に行われる処理工程の識別情報からなる。
【００５２】
ここで、対象タイルの識別情報は、優先度テーブル７０に基づいて設定される。対象タイルの識別情報は、優先度テーブル７０内で最も高い優先度を割り当てられているタイルの番号である。本例の場合、優先度「１」が割り当てられているタイルＴ３３の番号「３３」に該当する。
【００５３】
処理工程の識別情報は、一連の画質補正処理で所定の順序で行われる複数の処理工程を識別するための情報である。複数の処理工程は、例えば、ガンマ補正処理（処理工程Ａ）、ホワイトバランス調整処理（処理工程Ｂ）、デモザイク処理（処理工程Ｃ）、ノイズリダクション処理（処理工程Ｄ）である。
【００５４】
本例の場合、進捗フラグの初期値は、例えば「３３Ａ」として設定される。ここで、進捗フラグの「３３」が対象タイルの番号であり、「Ａ」が処理工程の識別記号である。つまり、進捗フラグ「３３Ａ」は、対象タイルＴ３３に対して処理工程Ａが次に行われることを意味している。
【００５５】
ＣＰＵ３１は、進捗フラグに従って対象タイルを判定する（Ｓ１６）。そして、対象タイルのＲａｗデータＤＲがＲＡＭ３３上の所定の作業領域およびキャッシュにロードされているかを判定し、ロードされていなければ、対象タイルのタイル情報に基づいて格納領域からロードする（Ｓ１８）。本例の場合、対象タイルＴ３３のタイル情報に基づいて、対象タイルＴ３３のＲａｗデータＤＲが最初にロードされる。
【００５６】
ＣＰＵ３１は、作業領域およびキャッシュにロードされたＲａｗデータＤＲに対して、進捗フラグに従って各処理工程を実行する（Ｓ２０）。本例の場合、進捗フラグ「３３Ａ」に従って、対象タイルＴ３３のＲａｗデータＤＲに対して処理工程Ａが最初に実行される。
【００５７】
ＣＰＵ３１は、各処理工程が完了すると、対象タイルに対して処理工程Ｄが完了しているかを判定する（Ｓ２２）。そして、該当する場合には、後続のステップＳ２６の処理に移行し、該当しない場合には、進捗フラグを更新し（Ｓ２４）、ステップＳ２０の処理を継続する。本例の場合、進捗フラグは、処理工程Ａ、Ｂ、Ｃの完了に応じて、「３３Ｂ」、「３３Ｃ」、「３３Ｄ」に順次更新される。
【００５８】
ステップＳ２２の処理で対象タイルに対して処理工程Ｄが完了している場合に、ＣＰＵ３１は、タイル情報に基づいて、処理後のＲａｗデータＤＲを作業領域およびキャッシュから格納領域に再格納する（Ｓ２６）。また、ＣＰＵ３１は、処理後のＲａｗデータＤＲをＶＲＡＭに格納し、表示部３６に表示させる（Ｓ２８）。本例の場合、対象タイルＴ３３の処理後のＲａｗデータＤＲが最初に格納領域およびＶＲＡＭに格納され、ＶＲＡＭに格納されている処理後のＲａｗデータＤＲが表示部３６により表示される。
【００５９】
次に、ＣＰＵ３１は、表示画面５５上で対象画像５０の表示領域が移動されていないかを判定する（Ｓ３０）。ユーザは、操作部３５に対する操作入力により、例えば上下左右方向等、任意の方向に表示画面５５上で表示領域を移動させることができる。
【００６０】
表示領域が移動されている場合、ＣＰＵ３１は、ステップＳ１２の処理に復帰し、表示領域の移動状況に応じて優先度テーブル７０を修正する。また、ＣＰＵ３１は、ステップＳ１４の処理で、進捗フラグを初期化し、ステップＳ１６の処理で、初期化後の進捗フラグに従って対象タイルを判定し、対象画像５０に対する処理を始めから再開する。
【００６１】
本例の場合、例えば、表示画面５５上で表示領域が左側に移動されると、対象画像５０を構成するタイルのうち右周辺部のタイルが表示画面５５上で中央部に表示される。この場合、右周辺部のタイルに相対的に高い優先度が割り当てられるように優先度テーブル７０が修正される。そして、修正後の優先度テーブル７０に従って、進捗フラグが初期化され、最も高い優先度を割り当てられているタイルを対象タイルとして、対象画像５０に対する処理が始めから再開される。
【００６２】
表示領域が移動されていない場合、ＣＰＵ３１は、対象画像５０に対する全ての処理が完了しているかを判定する（Ｓ３２）。ＣＰＵ３１は、優先度テーブル７０に基づいて、対象タイルが最も低い優先度（本例の場合、優先度Ａ「２５」）を割り当てられているタイルに該当するかを判定する。そして、該当する場合には、画像処理を終了し、該当しない場合には、後続のステップＳ３４の処理を行う。
【００６３】
処理を完了していないタイルが存在する場合、ＣＰＵ３１は、進捗フラグを更新する（Ｓ３４）。ＣＰＵ３１は、優先度テーブル７０に基づいて、対象タイルの次に高い優先度を割り当てられているタイルを判定し、進捗フラグを更新する。そして、ステップＳ１６の処理に復帰して、更新後の進捗フラグに従って対象タイルに対する処理を開始する。
【００６４】
本例の場合、対象タイルＴ３３に対して処理工程Ｄが完了すると、タイルＴ３３の優先度「１」の次に高い優先度「２」がタイルＴ４３に割り当てられているので、進捗フラグが「３３Ｄ」から「４３Ａ」に更新される。そして、ステップＳ１６の処理に復帰し、進捗フラグ「４３Ａ」に従って対象タイルＴ４３に対する処理が開始される。
【００６５】
以上説明したように、従来の画像処理方法では、タイル毎の優先度に従って、ユーザによる注目の対象となり易いタイルから優先的に表示されるように処理が行われるので、体感上の処理速度を向上させることができる。しかし、タイル毎の優先度のみに従って複数のタイルのＲａｗデータＤＲに対する処理を行うと、処理リソースを確保するための待ち時間の発生等により、実際上の処理速度を必ずしも向上させることができない場合がある。
【００６６】
＜第１の実施形態に係る画像処理方法＞
次に、本発明の第１の実施形態に係る画像処理方法について説明する。図７は、本発明の第１の実施形態に係る画像処理方法の流れを示すフロー図である。
【００６７】
本実施形態に係る画像処理方法において、ＣＰＵ３１は、従来の画像処理方法と同様にタイル情報を設定する（Ｓ５０）。
【００６８】
タイル情報を設定すると、ＣＰＵ３１は、進捗テーブル６０を設定する（Ｓ５２）。進捗テーブル６０は、対象画像５０に対する処理の進捗状況をタイル毎に示す情報であり、各タイルに対する処理工程の進捗状況に応じて更新される。進捗テーブル６０は、タイル毎の処理工程の進捗状況を示す進捗フラグからなる行列データであり、各タイルに対して次に行われる処理工程の識別情報からなる。
【００６９】
ここで、処理工程の識別情報は、一連の画質補正処理で所定の順序で行われる複数の処理工程を識別するための情報である。複数の処理工程は、例えば、ガンマ補正処理（処理工程Ａ）、ホワイトバランス調整処理（処理工程Ｂ）、デモザイク処理（処理工程Ｃ）、ノイズリダクション処理（処理工程Ｄ）である。処理工程の識別情報は、さらに、タイルに対して処理工程Ｄが完了していることを識別可能な情報（例えば「Ｆｉｎ」）も含んでいる。
【００７０】
図８には、図５に示した２５のタイルに対応する初期状態の進捗テーブル６０が一例として示されている。図８に示す例では、全てのタイルに進捗フラグ「Ａ」が設定されている。この場合、進捗テーブル６０は、いずれのタイルに対しても処理工程が行われておらず、いずれかのタイルに対して処理工程Ａが次に行われることを意味している。
【００７１】
ＣＰＵ３１は、優先度テーブルＡ（第２の処理優先度）８０を設定する（Ｓ５４）。優先度テーブルＡ８０は、従来の画像処理方法と同様に、表示画面５５上で中央部に表示されるタイルから周辺部に表示されるタイルの順序に従って、処理の優先度を設定する情報である。図９には、図６に示した優先度テーブル７０と同様の優先度テーブルＡ７０が示されている。
【００７２】
ＣＰＵ３１は、優先度テーブルＢ（第１の処理優先度）８０を設定する（Ｓ５６）。優先度テーブルＢ８０は、タイル毎の進捗フラグおよびリソース情報に基づいて設定される。タイル毎の進捗フラグは、前述したように進捗テーブル６０により設定される。リソース情報とは、対象画像５０に対する処理に供する処理リソースの利用状況を示す情報である。リソース情報は、ＣＰＵ３１、各種メモリ等の利用状況を示す情報であるが、以下では、特にＲＡＭ３３上の作業領域およびキャッシュメモリの利用状況を示す情報である。
【００７３】
ＣＰＵ３１には、所定のキャッシュ容量を各々に有する１次および２次キャッシュが設けられている。ＣＰＵ３１は、画像処理プログラムの実行時に、ＲＡＭ３３上の格納領域に格納されているＲａｗデータＤＲをＲＡＭ３３上の作業領域および１次または２次キャッシュにロードし、所定の処理を行う。
【００７４】
また、ＣＰＵ３１は、画像処理プログラムと同時に実行される他のプログラムの実行時に、ＲＡＭ３３に格納されているデータ等を作業領域および／または１次または２次キャッシュにロードし、所定の処理を行う。このため、各種のプログラムの実行に応じて、作業領域および／または１次または２次キャッシュの利用状況が変化し、対象画像５０に対する処理に供する処理リソース（メモリ容量）の利用状況も変化する。
【００７５】
ＣＰＵ３１は、ＲａｗデータＤＲをロードする前に、処理工程を行うために必要な所定のメモリ容量を所定の基準に従って作業領域および１次または２次キャッシュ上で確保する。ここで、各処理工程を行うために必要なメモリ容量（必要リソース）は、処理工程に応じて異なり、処理工程情報等として予め設定されている。また、１次キャッシュ、２次キャッシュ、作業領域の順序で、データのロード／アンロードに時間を要するので、必要リソースを確保可能であれば、１次キャッシュ、２次キャッシュ、作業領域の順序で優先的に必要リソースが確保される。
【００７６】
ＣＰＵ３１は、以下の手順で優先度テーブルＢ８０を設定する。ＣＰＵ３１は、まず、作業領域、１次および２次キャッシュのリソース情報を、ＯＳ等のシステムプログラムから取得する。次に、ＣＰＵ３１は、処理工程情報およびリソース情報に基づいて各処理工程Ａ〜Ｄの優先度を設定する。そして、ＣＰＵ３１は、各タイルの進捗フラグおよび各処理工程の優先度に基づいて、優先度テーブルＢ８０上でタイル毎に優先度Ｂを割り当てる。なお、ＣＰＵ３１は、進捗フラグが「Ｆｉｎ」である、つまり処理工程Ｄが完了しているタイルには、優先度Ｂとして便宜的に「０」を割り当てる。
【００７７】
ここで、各処理工程の優先度は、１次キャッシュ上で必要リソースを確保可能な処理工程の優先度が最も高くなるように設定され、２次キャッシュ上で必要リソースを確保可能な処理工程の優先度が次に高くなるように設定される。なお、１次および２次キャッシュ上のいずれでも必要リソースを確保不能な処理工程の優先度が最も低くなるように設定される。また、第１のキャッシュ（または第２のキャッシュ）上で必要リソースを確保可能な処理工程が複数ある場合には、例えば必要リソースの少ない処理工程に相対的に高い優先度が設定される。
【００７８】
例えば、処理工程Ａ、Ｂ、Ｃ、Ｄの必要リソースが各々にＲａ、Ｒｂ、Ｒｃ、Ｒｄ（Ｒａ＜Ｒｂ＜Ｒｄ＜Ｒｃ）であり、作業領域、１次および２次キャッシュの空き容量が各々にＶ０、Ｖ１、Ｖ２（Ｒａ＜Ｖ１＜Ｒｂ＜Ｒｄ＜Ｖ２＜Ｒｃ＜Ｖ０）である場合を想定する。
【００７９】
この場合、処理工程Ａについては、１次キャッシュ上で必要リソースＲａが確保可能であるので、最も高い優先度「１」が設定される。処理工程Ｂ、Ｃについては、２次キャッシュ上で必要リソースＲｂ、Ｒｄが各々に確保可能であり、Ｒｂ＜Ｒｄであるので、優先度「２」、「３」が各々に設定される。処理工程Ｃについては、１次および２次キャッシュ上のいずれでも必要リソースＲｃを確保不能であるので、最も低い優先度「４」が設定される。
【００８０】
図１０には、図８に示した進捗テーブル６０に対応する初期状態の優先度テーブルＢ８０が示されている。図１０に示す優先度テーブルＢ８０では、図８に示した進捗テーブル６０に基づいて、全てのタイルに優先度Ｂ「１」が設定されている。
【００８１】
優先度テーブルＡ、Ｂ７０、８０を設定すると、ＣＰＵ３１は、優先度テーブルＡ、Ｂ７０、８０を組み合わせて優先度テーブル９０を設定する（Ｓ５８）。なお、以下では、優先度テーブルＡ、Ｂ７０、８０に各々に含まれる優先度Ａ、Ｂを、タイル毎に乗算して各タイルの優先度を設定する場合について説明する。しかし、タイル毎の優先度は、例えば、優先度Ａに優先度Ｂを加算する等、他の方法により設定されてもよい。
【００８２】
ＣＰＵ３１は、まず、優先度テーブルＡ、Ｂ７０、８０に各々に含まれる優先度Ａ、Ｂを必要に応じて補正する。以下では、優先度Ａと優先度Ｂが優先度に同一の基準で反映されるように、優先度Ａを補正する場合について説明する。しかし、優先度Ａ、Ｂは、優先度テーブル９０に所定の重み付けを伴って反映されるように補正されてもよい。
【００８３】
具体的に、本例の場合、２５のタイルに対して、優先度テーブルＡ７０では、図９に示すように「１」〜「２５」の優先度Ａ（表示順序）が割り当てられ、優先度テーブルＢ８０では、前述したように「１」〜「４」の優先度Ｂが割り当てられる。このため、本例の場合、優先度テーブルＡ７０では、優先度Ａが４／２５倍され、「１」〜「２５」の代わりに「４／２５」〜「４」の優先度Ａが割り当てられる。
【００８４】
図１１には、優先度テーブルＡ、Ｂ７０、８０から優先度テーブル９０を設定する手順が示されている。図１１に示すように、タイルＴ１１〜Ｔ５５毎に、優先度Ａを４／２５倍して補正した値と、優先度Ｂとを乗算することで、優先度テーブル９０上でタイル毎の優先度が設定されている。例えば、タイルＴ３３には、優先度Ａ「１」、優先度Ｂ「１」に基づいて、優先度「１÷２５×４×１≒０．２」が設定されている。
【００８５】
ＣＰＵ３１は、進捗テーブル６０および優先度テーブル９０に従って対象タイルおよび対象処理を判定する（Ｓ６０）。本例の場合、優先度テーブル９０に従って、最も高い優先度「０．２」を有するタイルＴ３３が対象タイルとして判定され、進捗テーブル６０に従って、タイルＴ３３の進捗フラグ「Ａ」から処理工程Ａが対象処理として判定される。
【００８６】
そして、ＣＰＵ３１は、対象タイルのＲａｗデータＤＲが作業領域およびキャッシュにロードされているかを判定し、ロードされていなければ、対象タイルのタイル情報に基づいて格納領域から作業領域およびキャッシュにロードする（Ｓ６２）。本例の場合、対象タイルＴ３３のタイル情報に基づいて、対象タイルＴ３３のＲａｗデータＤＲが最初にロードされる。
【００８７】
ＣＰＵ３１は、作業領域およびキャッシュにロードされたＲａｗデータＤＲに対して、対象処理に該当する処理工程を実行する（Ｓ６４）。本例の場合、対象タイルＴ３３のＲａｗデータＤＲに対して処理工程Ａが最初に実行される。
【００８８】
処理工程が完了すると、ＣＰＵ３１は、対象タイルのタイル情報に基づいて、処理後のＲａｗデータＤＲを作業領域およびキャッシュから格納領域に再格納する（Ｓ６６）。
【００８９】
ＣＰＵ３１は、対象タイルに対して処理工程Ｄが完了しているかを判定する（Ｓ６８）。そして、該当する場合には、後続のステップＳ７８の処理に移行し、該当しない場合には、ステップＳ７０の処理に移行する。
【００９０】
処理工程Ｄが完了していない場合、ＣＰＵ３１は、対象タイルの処理後のＲａｗデータＤＲを仮表示するかを判定する（Ｓ７０）。ＣＰＵ３１は、例えば対象タイルに対して処理工程Ｃまで完了している場合に、ステップＳ７２の処理に移行し、処理工程Ｃまで完了していない場合に、ステップＳ７４の処理に移行する。
【００９１】
処理後のＲａｗデータＤＲを仮表示する場合、ＣＰＵ３１は、処理工程Ｃまで完了した対象タイルのＲａｗデータＤＲを作業領域およびキャッシュからＶＲＡＭに格納し、表示部３６に仮表示させる（Ｓ７２）。これにより、所定の処理工程（例えば処理工程Ｃ）まで実行された対象タイルのＲａｗデータＤＲにより、処理の途中結果を表示することができる。ここで、処理の途中結果がタイル単位で面的に表示されるので、ユーザは、処理の途中結果を把握することができる。
【００９２】
ＣＰＵ３１は、進捗テーブル６０上で対象タイルの進捗フラグを更新する（Ｓ７４）。本例の場合、対象タイルＴ３３の進捗フラグは、処理工程Ａ、Ｂ、Ｃの完了に応じて、進捗テーブル６０上で「Ｂ」、「Ｃ」、「Ｄ」に各々に更新される。
【００９３】
次に、ＣＰＵ３１は、表示画面５５上で対象画像５０の表示領域が移動されているかを判定する（Ｓ７６）。該当する場合、ＣＰＵ３１は、ステップＳ５４の処理に復帰し、表示領域の移動状況に応じて優先度テーブルＡ７０を更新する。該当しない場合、ＣＰＵ３１は、ステップＳ５６の処理に復帰し、必要に応じて優先度テーブルＢ８０を更新し、ステップＳ５８以降の処理を継続する。なお、ステップＳ５４およびＳ５６の処理に復帰後の処理については後述する。
【００９４】
一方、ステップＳ６８の処理で処理工程Ｄが完了していると判定された場合、ＣＰＵ３１は、対象タイルの処理後のＲａｗデータＤＲを表示する（Ｓ７８）。ＣＰＵ３１は、仮表示の場合と同様に、処理後のＲａｗデータＤＲをタイル情報に基づいて作業領域およびキャッシュからＶＲＡＭに格納し、表示部３６に表示させる。
【００９５】
ＣＰＵ３１は、進捗テーブル６０上で対象タイルの進捗フラグを更新する（Ｓ８０）。本例の場合、対象タイルの進捗フラグは、処理工程Ｄの完了に応じて「Ｆｉｎ」に更新される。そして、ＣＰＵ３１は、対象画像５０に対して全ての処理が完了しているかを判定する（Ｓ８２）。ＣＰＵ３１は、全てのタイルの進捗フラグが進捗テーブル６０上で「Ｆｉｎ」に設定されているかを判定する。そして、ＣＰＵ３１は、該当する場合に画像処理を終了し、該当しない場合にステップＳ７６の処理に移行し、対象画像５０の表示領域が移動されているかを判定する。
【００９６】
次に、ステップＳ７６の処理において、表示領域が移動されていないと判定され、ステップＳ５６の処理に復帰する場合の処理について、図１２〜図１４を参照しながら説明する。
【００９７】
ステップＳ５６の処理に復帰すると、ＣＰＵ３１は、最新のリソース情報をシステムプログラムから取得し、リソース情報が変更されているかを判定する。そして、ＣＰＵ３１は、リソース情報が変更されている場合には、各処理工程の優先度を再設定し、優先度テーブルＢ８０を更新する。
【００９８】
図１２に示すように、進捗テーブル６０および優先度テーブルＢ８１が設定されている場合を想定する。ここで、作業領域、１次および２次キャッシュの空き容量Ｖ０、Ｖ１、Ｖ２（Ｒａ＜Ｖ１＜Ｒｂ＜Ｒｄ＜Ｖ２＜Ｒｃ＜Ｖ０）であり、処理工程Ａ、Ｂ、Ｃ、Ｄの優先度が「１」、「２」、「４」、「３」に設定されている。
【００９９】
この場合、図１３に示すように、優先度テーブルＡ、Ｂ７０、８１から優先度テーブル９１が設定される。優先度テーブル９１には、例えば、タイルＴ４３、Ｔ２２、Ｔ３４、Ｔ３２に対して、優先度「１．０」、「１．１」、「１．３」、「１．３」が各々に設定されている。そして、ＣＰＵ３１は、優先度テーブル９１に従って、優先度が最も高いタイルＴ４３に対する処理工程Ｄを行う。
【０１００】
ここで、例えば、２次キャッシュの空き容量が減少し、リソース情報が作業領域、１次および２次キャッシュの空き容量Ｖ０’、Ｖ１’、Ｖ２’（Ｒａ＜Ｖ１’＜Ｖ２’＜Ｒｂ＜Ｒｄ＜Ｒｃ＜Ｖ０’）に変更される場合を想定する。リソース情報の変更により、処理工程Ａ、Ｂ、Ｃ、Ｄの優先度が「１」、「４」、「４」、「４」に変更され、図１２に示すように、優先度テーブルＢ８１が優先度テーブルＢ８２に更新される。
【０１０１】
この場合、図１４に示すように、優先度テーブルＡ、Ｂ７０、８２から優先度テーブル９２が設定される。優先度テーブル９２には、例えば、タイルＴ２２、Ｔ４３、Ｔ３２、Ｔ４２に対して、優先度「１．１」、「１．３」、「１．３」、「１．４」が各々に設定されている。そして、ＣＰＵ３１は、優先度テーブル９２に従って、優先度が最も高いタイルＴ２２に対する処理工程Ａを行う。
【０１０２】
これにより、処理リソースの利用状況に応じて、ＲａｗデータＤＲに対する処理の優先度をタイル毎に設定する優先度テーブルが更新されるので、実際上の処理速度を向上させることが可能となり、ＲａｗデータＤＲに対する一連の処理を効率的に行うことができる。
【０１０３】
次に、ステップＳ７６の処理において、表示領域が移動されていると判定され、ステップＳ５４の処理に復帰する場合の処理について、図１５〜図１７を参照しながら説明する。
【０１０４】
ステップＳ５４の処理に復帰すると、ＣＰＵ３１は、表示領域の移動量が所定の範囲以上であるかを判定する。ＣＰＵ３１は、表示領域の移動の前後で、表示画面５５上で中央部に表示されているタイルが変更されている場合には、移動量が所定の範囲以上であると判定し、優先度テーブルＡ７０を更新する。
【０１０５】
図１５に示すように、表示画面５５上の中央部にタイルＴ４３が表示されるように、表示画面５５上で表示領域が左側に移動された場合を想定する。この場合、図１６に示すように、タイルＴ４３を基準として右周辺部のタイルに相対的に高い優先度Ａが割り当てられように優先度テーブルＡ７０が優先度テーブルＡ７１に更新される。
【０１０６】
そして、図１２に示すように、進捗テーブル６１および優先度テーブルＢ８１が設定されている場合、図１７に示すように、更新後の優先度テーブルＡ７１、および優先度テーブルＢ８１から優先度テーブル９３が設定される。優先度テーブル９３には、例えば、タイルＴ５３、Ｔ５４、Ｔ４３、Ｔ３２に対して、優先度「０．３」、「０．５」、「０．５」、「１．１」が各々に設定されている。
【０１０７】
つまり、表示領域が移動されていない場合、ＣＰＵ３１は、図１３に示す優先度テーブル９１に従って、優先度が最も高いタイルＴ４３に対する処理工程Ｄを行う。一方、表示領域が移動されている場合、ＣＰＵ３１は、図１７に示す優先度テーブル９３に従って、優先度が最も高いタイルＴ５３に対する処理工程Ａを行う。
【０１０８】
これにより、表示領域の移動状況に応じて、ＲａｗデータＤＲに対する処理の優先度をタイル毎に設定する優先度テーブルが更新されるので、体感上の処理速度を向上させることが可能となり、ＲａｗデータＤＲに対する一連の処理を効率的に行うことができる。
【０１０９】
以上説明したように、第１の実施形態に係る画像処理方法によれば、タイル毎の進捗フラグおよびリソース情報に基づいて設定される、タイル毎の優先度に従った処理順序で、ＲａｗデータＤＲに対する一連の処理を構成する各処理単位が実行される。よって、ＲａｗデータＤＲに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことができる。
【０１１０】
＜第２の実施形態に係る画像処理方法＞
次に、本発明の第２の実施形態に係る画像処理方法について説明する。図１８は、本発明の第２の実施形態に係る画像処理方法の流れを示すフロー図である。以下では、第２の実施形態に係る画像処理方法について説明するが、第１の実施形態に係る画像処理方法と重複する説明については省略する。
【０１１１】
第１の実施形態に係る画像処理方法では、処理の進捗状況をタイル毎に示す進捗テーブル、および進捗テーブルおよびリソース情報に基づいてタイル毎に処理の優先度Ｂを設定する優先度テーブルＢが用いられる。一方、第２の実施形態に係る画像処理方法では、処理の進捗状況を処理工程毎に示す進捗テーブル、およびリソース情報に基づいて処理の優先度Ｂを処理工程毎に設定する優先度テーブルＢが用いられる。
【０１１２】
ＣＰＵ３１は、従来の画像処理方法と同様に、タイル情報および優先度テーブルＡ７０（第２の処理優先度）を設定した後（Ｓ１０２、Ｓ１０４）、進捗テーブル６４を設定する（Ｓ１０６）。進捗テーブル６４は、対象画像５０に対する処理の進捗状況を処理工程毎に示す情報であり、各タイルに対する処理工程の進捗状況に応じて更新される。
【０１１３】
図１９には、初期状態の進捗テーブル６４を設定する手順が示されている。進捗テーブル６４は、優先度テーブルＡ７０、および各タイルに対する処理の進捗状況に基づいて設定される。ここで、図１９には、説明の便宜上、各タイルに対する処理の進捗状況を示す仮テーブル６４’が示されているが、仮テーブル６４’は必ずしも必要とされない。
【０１１４】
初期状態では、いずれのタイルに対しても処理工程が行われていないので、いずれかのタイルに対して処理工程Ａが行われ、処理工程Ｂ、Ｃ、Ｄが行われることはない。そして、優先度テーブルＡ７０に従って、処理工程の対象となるタイルＴ１１〜Ｔ５５のうち最も優先度の高いタイルＴ３３に対して処理工程Ａが行われる。
【０１１５】
このため、進捗テーブル６４には、処理工程Ａの進捗フラグとしてタイルＴ３３に割り当てられている優先度Ａ「１」が設定され、処理工程Ｂ〜Ｄの進捗フラグとして「−」が設定される。この場合、進捗テーブル６４は、優先度Ａが「１」のタイルに対して処理工程Ａを実行可能であり、処理工程Ｂ〜Ｄを実行不能であることを意味している。
【０１１６】
ＣＰＵ３１は、優先度テーブルＢ８４（第１の処理優先度）を設定する（Ｓ１０８）。優先度テーブルＢ８４は、リソース情報に基づいて設定される。リソース情報は、第１の実施形態に係る画像処理方法と同様に、対象画像５０に対する処理に供する処理リソースの利用状況を示す情報である。リソース情報は、特にＲＡＭ３３上の作業領域および第１および第２のキャッシュの利用状況を示す情報である。
【０１１７】
例えば、処理工程Ａ、Ｂ、Ｃ、Ｄの必要リソースが各々にＲａ、Ｒｂ、Ｒｃ、Ｒｄであり、作業領域、１次および２次キャッシュの空き容量が各々にＶ０、Ｖ１、Ｖ２（Ｒａ＜Ｖ１＜Ｒｂ＜Ｒｄ＜Ｖ２＜Ｒｃ＜Ｖ０）である場合を想定する。この場合、優先度テーブルＢ８４では、第１の実施形態の場合と同様に、処理工程Ａ、Ｂ、Ｃ、Ｄの優先度Ｂが「１」、「２」、「４」、「３」と各々に設定される。
【０１１８】
優先度テーブルＡ、Ｂ７０、８４を設定すると、ＣＰＵ３１は、優先度テーブルＡ７０に基づいて、進捗テーブル６４および優先度テーブルＢ８４を組み合わせて優先度テーブル９４を設定する（Ｓ１１０）。
【０１１９】
図２０には、進捗テーブル６４および優先度テーブルＢ８４から初期状態の優先度テーブル９４を設定する手順が示されている。図２０に示すように、処理工程Ａ〜Ｄ毎に、進捗フラグを４／２５倍して補正した値と、優先度Ｂとを乗算することで、処理工程毎の優先度が設定される。例えば、処理工程Ａは、進捗フラグ「１」、優先度Ｂ「１」に基づいて、優先度「１÷２５×４×１≒０．２」が設定されている。
【０１２０】
ＣＰＵ３１は、優先度テーブル９４、進捗テーブル６４、および優先度テーブルＡ７０に基づいて、対象処理および対象タイルを判定する（Ｓ１１２）。本例の場合、優先度テーブル９４に従って、最も高い優先度「０．２」を有する処理工程Ａが対象処理として判定される。また、進捗テーブル６４に従って処理工程Ａの進捗フラグ「１」が判定され、優先度テーブルＡ７０から優先度Ａ「１」を有するタイルＴ３３が対象タイルとして判定される。
【０１２１】
ＣＰＵ３１は、対象タイルのタイル情報に基づいて、対象タイルのＲａｗデータＤＲを格納領域から作業領域およびキャッシュにロードし（Ｓ１１４）、対象処理に該当する処理工程を実行する（Ｓ１１６）。各処理工程が完了すると、ＣＰＵ３１は、処理後のＲａｗデータＤＲを格納領域に再格納し（Ｓ１１８）、対象タイルに対して処理工程Ｄが完了しているかを判定する（Ｓ１２０）。
【０１２２】
処理工程Ｄが完了していない場合、ＣＰＵ３１は、所定の条件が満たされる場合（Ｓ１２２）に対象タイルの処理後のＲａｗデータＤＲを表示部３６に仮表示させ（Ｓ１２４）、対象処理の進捗フラグを更新する（Ｓ１２６）。そして、ＣＰＵ３１は、ステップＳ１０８の処理に復帰する。本例の場合、対象タイルＴ３３に対して処理工程Ａが完了すると、処理工程Ａの進捗フラグは、対象タイルＴ３３に割り当てられている優先度Ａ「１」に続く「２」に更新される。
【０１２３】
一方、処理工程Ｄが完了している場合、ＣＰＵ３１は、対象タイルの処理後のＲａｗデータＤＲを表示部３６に表示させ（Ｓ１２８）、進捗テーブル６４上で対象処理の進捗フラグを更新する（Ｓ１３０）。本例の場合、対象タイルＴ３３に対して処理工程Ｄが完了すると、処理工程Ｄの進捗フラグは、対象タイルＴ３３に割り当てられている優先度Ａ「１」に続く「２」に更新される。
【０１２４】
ＣＰＵ３１は、全てのタイルで処理が完了しているかを判定する（Ｓ１３２）。具体的に、ＣＰＵ３１は、最も低い優先度Ａ（本例の場合、優先度Ａ「２５」）が対象タイルに設定されているかを判定する。これは、最も低い優先度Ａが設定されている対象タイルに対して処理工程Ｄが完了していれば、他のタイルに対しても処理工程Ｄが完了しているためである。そして、ＣＰＵ３１は、該当する場合に画像処理を終了し、該当しない場合にステップＳ１０８の処理に復帰する。
【０１２５】
次に、ステップＳ１０８の処理に復帰し、利用可能なリソース状況に応じて優先度テーブルを更新する手順について、図２１〜図２３を参照しながら説明する。
【０１２６】
ステップＳ１０８の処理に復帰すると、ＣＰＵ３１は、最新のリソース情報をシステムプログラムから取得し、リソース情報が更新されている場合に優先度テーブルＢを更新する
【０１２７】
各タイルに対する処理の進捗状況が図２１の仮テーブル６５’に示すような状態にある場合を想定する。この場合、タイルＴ３３に対して処理工程Ａ〜Ｄが完了しており、タイルＴ４３に対して処理工程Ｄを実行可能である。また、タイルＴ４４に対して処理工程Ｃを実行可能であり、タイルＴ３４、Ｔ２４、Ｔ２３に対して処理工程Ｂを実行可能であり、他のタイルに対して処理工程Ａを実行可能である。
【０１２８】
この場合、図２１に示すように、処理工程Ａ、Ｂ、Ｃ、Ｄの進捗フラグは、進捗テーブル６５上で「７」、「６」、「３」、「２」に各々に設定される。進捗テーブル６５は、タイルＴ３３（進捗フラグ「１」）に対して処理工程Ａ〜Ｄが完了しており、タイルＴ４３、Ｔ４４（同「２」、「３」）に対して各々に処理工程Ｄ、Ｃを実行可能であることを意味している。また、タイルＴ２３（同「６」）に対して処理工程Ｂを実行可能であり、タイルＴ２２（同「７」）に対して処理工程Ａを実行可能であることを意味している。
【０１２９】
この場合、図２２に示すように、進捗テーブル６５および優先度テーブルＢ８４から優先度テーブル９５が設定される。ここで、作業領域、１次および２次キャッシュの空き容量Ｖ０、Ｖ１、Ｖ２（Ｒａ＜Ｖ１＜Ｒｂ＜Ｒｄ＜Ｖ２＜Ｒｃ＜Ｖ０）であり、優先度テーブルＢ８４上で処理工程Ａ、Ｂ、Ｃ、Ｄの優先度Ｂが「１」、「２」、「４」、「３」に各々に設定されている。
【０１３０】
本例の場合、例えば処理工程Ａには、進捗フラグ「７」、優先度Ｂ「１」に基づいて、優先度「７／２５×４×１≒１．１」が設定される。優先度テーブル９５には、処理工程Ａ、Ｂ、Ｃ、Ｄに対して、優先度「１．１」、「１．９」、「１．９」、「１．０」が各々に設定されている。そして、ＣＰＵ３１は、優先度テーブル９５に従って、優先度が最も高いタイルＴ４３（進捗フラグ「２」）に対する処理工程Ｄを行う。なお、同一の優先度を有する処理工程が複数ある場合には、例えば第１の優先度が高い処理工程に相対的に高い優先度が設定される。
【０１３１】
ここで、例えば、２次キャッシュの空き容量が減少し、リソース情報が作業領域、１次および２次キャッシュの空き容量Ｖ０’、Ｖ１’、Ｖ２’（Ｒａ＜Ｖ１’＜Ｖ２’＜Ｒｂ＜Ｒｄ＜Ｒｃ＜Ｖ０’）に変更される場合を想定する。リソース情報の変更により、優先度テーブルＢ８５上で処理工程Ａ、Ｂ、Ｃ、Ｄの優先度Ｂが「１」、「４」、「４」、「４」に各々に変更される。
【０１３２】
この場合、図２３に示すように、進捗テーブル６５および優先度テーブルＢ８５から優先度テーブル９６が設定される。優先度テーブル９６には、処理工程Ａ、Ｂ、Ｃ、Ｄに対して、優先度「１．１」、「３．８」、「１．９」、「１．３」が各々に設定されている。そして、ＣＰＵ３１は、優先度テーブル９６に従って、優先度が最も高いタイルＴ２２（進捗フラグ「７」）に対する処理工程Ａを行う。
【０１３３】
これにより、処理リソースの利用状況に応じて、ＲａｗデータＤＲに対する処理の優先度を処理工程毎に設定する優先度テーブルが更新されるので、実際上の処理速度を向上させることが可能となり、ＲａｗデータＤＲに対する一連の処理を効率的に行うことができる。
【０１３４】
以上説明したように、第２の実施形態に係る画像処理方法によれば、処理工程毎の進捗フラグおよびリソース情報に基づいて設定される、処理工程毎の優先度に従った処理順序で、ＲａｗデータＤＲに対する一連の処理を構成する各処理単位が実行される。よって、ＲａｗデータＤＲに対する一連の処理を処理リソースの利用状況に応じて効率的に行うことができる。
【０１３５】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１３６】
なお、上記実施形態の説明では、対象画像５０を一律の形状・画素数からなる複数のタイルに分割する場合について説明した。しかし、対象画像５０は、異なる形状・画素数からなる複数のタイルに分割されてもよい。また、対象画像５０は、Ｒａｗデータファイルの撮影情報に基づいて、例えば、合焦位置、顔位置、光軸中心位置の近傍ほど小さな画素数からなるタイルに分割されてもよい。また、対象画像５０は、対象画像５０またはサムネイル画像を対象とするパターン認識処理、学習回路等の判定処理に基づいて、複数のタイルに分割されてもよい。
【０１３７】
また、上記実施形態の説明では、対象画像５０の中央部のタイルから周辺部のタイルの順序で優先度Ａを割り当てる場合について説明した。しかし、優先度Ａは、例えば、対象画像５０の上部のタイルから下部のタイルの順序、右部のタイルから左部のタイルの順序で割り当てられてもよい。また、優先度Ａは、Ｒａｗデータファイルの撮影情報に基づいて、例えば、合焦位置、顔位置、光軸中心位置の近傍から周辺部の順序で割り当てられてもよい。また、優先度Ａは、対象画像５０またはサムネイル画像を対象とするパターン認識処理、学習回路等の判定処理に基づいて、タイルの順序を割り当てられてもよい。
【０１３８】
また、上記実施形態の説明では、ＲＡＭ３３上の作業領域およびキャッシュメモリの利用状況に基づいて、優先度Ｂをタイル毎または処理工程毎に設定する場合について説明した。しかし、優先度Ｂは、例えば、メモリの利用状況以外にもＣＰＵ３１の利用状況に基づいて設定されてもよい。
【図面の簡単な説明】
【０１３９】
【図１】撮像装置の構成例を示すブロック図である。
【図２】Ｒａｗデータファイルの構成例を示す図である。
【図３】画像処理装置の構成例を示すブロック図である。
【図４】従来の画像処理方法の流れを示すフロー図である。
【図５】タイル情報の一例を示す図である。
【図６】優先度テーブルの一例を示す図である。
【図７】本発明の第１の実施形態に係る画像処理方法の流れを示すフロー図である。
【図８】初期状態の進捗テーブルの一例を示す図である。
【図９】初期状態の優先度テーブルＡの一例を示す図である。
【図１０】初期状態の優先度テーブルＢを設定する手順を示す図である。
【図１１】優先度テーブルを設定する手順を示す図である。
【図１２】リソース情報に応じて優先度テーブルＢを更新する手順を示す図である。
【図１３】リソース情報に応じて優先度テーブルを設定する手順を示す図である。
【図１４】リソース情報に応じて優先度テーブルを更新する手順を示す図である。
【図１５】表示領域の移動状況を示す図である
【図１６】表示領域の移動状況に応じて優先度テーブルＡを更新する手順を示す図である。
【図１７】表示領域の移動状況に応じて優先度テーブルを更新する手順を示す図である。
【図１８】本発明の第２の実施形態に係る画像処理方法の流れを示すフロー図である。
【図１９】初期状態の進捗テーブルを設定する手順を示す図である。
【図２０】初期状態の優先度テーブルを設定する手順を示す図である。
【図２１】リソース情報に応じて優先度テーブルＢを更新する手順を示す図である。
【図２２】リソース情報に応じて優先度テーブルを設定する手順を示す図である。
【図２３】リソース情報に応じて優先度テーブルを更新する手順を示す図である。
【符号の説明】
【０１４０】
３１    ＣＰＵ
３２    ＲＯＭ
３３    ＲＡＭ
３４    ＨＤＤ
３６    表示部
３７    記録媒体Ｉ／Ｆ
３８    プリンタＩ／Ｆ
【図１】
2010087597.tif 000003
【図２】
2010087597.tif 000004
【図３】
2010087597.tif 000005
【図４】
2010087597.tif 000006
【図５】
2010087597.tif 000007
【図６】
2010087597.tif 000008
【図７】
2010087597.tif 000009
【図８】
2010087597.tif 000010
【図９】
2010087597.tif 000011
【図１０】
2010087597.tif 000012
【図１１】
2010087597.tif 000013
【図１２】
2010087597.tif 000014
【図１３】
2010087597.tif 000015
【図１４】
2010087597.tif 000016
【図１５】
2010087597.tif 000017
【図１６】
2010087597.tif 000018
【図１７】
2010087597.tif 000019
【図１８】
2010087597.tif 000020
【図１９】
2010087597.tif 000021
【図２０】
2010087597.tif 000022
【図２１】
2010087597.tif 000023
【図２２】
2010087597.tif 000024
【図２３】
2010087597.tif 000025