(57)【要約】【課題】  マルチタスク制御下にある画像撮影再生装置において、共通の入出力装置にアクセスする際に、より優先順位の高いタスクの処理を優先的に行うと共に、入出力装置に対する処理の全体的な効率を上げること。【解決手段】  撮像手段と、入出力手段と、入出力手段を専有制御する、予め優先順位が決められた複数のタスク間で、第１処理単位または第２処理単位毎にタスクを切り替える機会を与えて順次実行する制御手段とを有し、複数のタスクの内、出力タスクを第１処理単位で実行中に入力タスクの実行が指示された場合に、出力タスクと入力タスクの内、優先順位が高いタスクの処理単位を第１処理単位に、優先順位が低いタスクの処理単位を第２処理単位に設定し、出力タスクで出力する１枚の画像データ及び入力タスクで入力する１枚の画像データのそれぞれを設定された第１処理単位及び第２処理単位のいずれか一方のデータ量に分割して実行する。【選択図】  図８
2010259122.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮影して電気的な画像データを取得する撮像手段と、
外部記録媒体に対して、前記画像データを含むデータの入出力を行う入出力手段と、
前記入出力手段を専有制御する、予め優先順位が決められた複数のタスクを、データ量が多い第１処理単位と、当該第１処理単位よりもデータ量が少ない第２処理単位のいずれかである前記データの一処理単位毎に前記複数のタスク間でタスクを切り替える機会を与えて順次実行する制御手段とを有し、
前記制御手段は、前記複数のタスクの内、前記撮像手段により取得した１枚の画像データを前記外部記録媒体に出力する出力タスクを前記第１処理単位で実行中に前記外部記録媒体に記録された１枚の画像データを表示手段に表示させるために読み込む入力タスクの実行が指示された場合に、前記出力タスクと前記入力タスクの内、優先順位が高いタスクの処理単位を前記第１処理単位に設定し、優先順位が低いタスクの処理単位を前記第２処理単位に設定し、前記撮像手段により取得した１枚の画像データ及び前記外部記録媒体に記録された１枚の画像データのそれぞれを設定された前記第１処理単位及び前記第２処理単位のいずれか一方のデータ量に分割して実行することにより前記外部記録媒体への１枚の画像データの記録と前記表示手段への１枚の画像データの表示を並列に行うことを特徴とする画像撮影再生装置。
【請求項２】
優先順位が高いタスクを前記第１処理単位で実行中に、前後する第１処理単位間において前記優先順位が高いタスクが前記入出力手段を専有していない場合には、前記優先順位が低いタスクを前記第２処理単位で実行することを特徴とする請求項１に記載の画像撮影再生装置。
【請求項３】
前記出力タスク及び前記入力タスクを実行中に、優先順位が高いタスクが終了し、且つ、優先順位の低いタスクが終了していない場合には、前記制御手段は、前記優先順位が低いタスクの処理単位を前記第１処理単位に変更することを特徴とする請求項１または２に記載の画像撮影再生装置。
【請求項４】
前記制御手段は、前記複数のタスクのいずれかが単独で実行されているときには前記第１処理単位でタスクを実行することを特徴とする請求項１乃至３のいずれか１項に記載の画像撮影再生装置。
【請求項５】
前記優先順位が高いタスクは前記入力タスクであって、前記優先順位が低いタスクは前記出力タスクであることを特徴とする請求項１に記載の画像撮影再生装置。
【請求項６】
前記撮像手段により取得した画像データを一時記憶すると共に、前記外部記録媒体から読み出された画像データを一時記憶する内部記憶媒体を更に有し、
前記制御手段は、前記内部記憶媒体の空き容量が所定容量より大きい場合に、前記入力タスクの優先順位を前記出力タスクよりも高くすることを特徴とする請求項１に記載の画像撮影再生装置。
【請求項７】
前記外部記録媒体へのアクセス速度を判断する判断手段を更に有し、
前記制御手段は、前記アクセス速度が早い程、前記第１処理単位のデータ量がより多くなるように、前記第１処理単位を設定することを特徴とすることを特徴とする請求項１乃至６のいずれか１項に記載の画像撮影再生装置。
【請求項８】
画像データ以外の非画像データを生成する生成手段を更に有し、
前記画像データを含むデータは前記生成手段により生成された非画像データを含み、前記制御手段は、前記非画像データの書き込みタスクよりも前記画像データの読み込みタスクの優先順位を高く設定することを特徴とする請求項１に記載の画像撮影再生装置。
【請求項９】
前記外部記録媒体へのアクセス速度を取得し、取得したアクセス速度に基づいて所定時間内に終了することができる複数のデータ量を複数の処理単位として取得する処理単位取得手段を更に有することを特徴とする請求項１に記載の画像撮影再生装置。
【請求項１０】
前記制御手段は、複数のタスクが実行されている間に、少なくとも１つのタスクの実行が終了した場合には、終了していないタスクの内、優先順位が最も高いタスクに前記最も多いデータ量を一処理単位として設定すると共に、より優先順位が低いタスクに優先順位が高いタスクよりも少ないデータ量を一処理単位として設定し直すことを特徴とする請求項１、８、９のいずれか１項に記載の画像撮影再生装置。
【請求項１１】
前記複数のタスクは、前記生成手段により生成された非画像データを前記外部記録媒体に出力する非画像出力タスクを含むことを特徴とする請求項８に記載の画像撮影再生装置。
【請求項１２】
被写体を撮影して電気的な画像データを取得する撮像手段と、外部記録媒体に対して、前記画像データを含むデータの入出力を行う入出力手段と、前記入出力手段を専有制御する、予め優先順位が決められた複数のタスクを、データ量が多い第１処理単位と、当該第１処理単位よりもデータ量が少ない第２処理単位のいずれかである前記データの一処理単位毎に前記複数のタスク間でタスクを切り替える機会を与えて順次実行する制御手段とを有する画像撮影再生装置におけるデータ処理方法であって、
前記複数のタスクの内、前記撮像手段により取得した１枚の画像データを前記外部記録媒体に出力する出力タスクを前記第１処理単位で実行中に前記外部記録媒体に記録された１枚の画像データを表示手段に表示させるために読み込む入力タスクの実行が指示された場合に、前記出力タスクと前記入力タスクの内、優先順位が高いタスクの処理単位を前記第１処理単位に設定し、優先順位が低いタスクの処理単位を前記第２処理単位に設定し、前記撮像手段により取得した１枚の画像データ及び前記外部記録媒体に記録された１枚の画像データのそれぞれを設定された前記第１処理単位及び前記第２処理単位のいずれか一方のデータ量に分割して実行することにより前記外部記録媒体への１枚の画像データの記録と前記表示手段への１枚の画像データの表示を並列に行うステップを有することを特徴とするデータ処理方法。
【請求項１３】
情報処理装置に、請求項１２に記載のデータ処理方法の各工程を実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納したことを特徴とする情報処理装置が読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像撮影再生装置及び画像撮影再生装置における画像データ及び非画像データの処理方法に関し、特に、共通の入出力インターフェースを介して記録媒体に画像データを入出力するマルチタスクを実行可能な画像撮影再生装置及び画像撮影再生装置における画像データ及び非画像データの処理方法に関する。
【背景技術】
【０００２】
従来の一般的な画像撮影再生装置には、撮影した画像を記録し、また記録された画像を再生するため、記録媒体へのデータの書き込み、及び、記録媒体からのデータの読み込みを行う、いわゆる入出力装置が具備されている。そのＣＰＵは、複数の処理を見かけ上同時に実行する、いわゆるマルチタスクで制御を行っている。このようにマルチタスクで制御を行っている時に、異なるタスクが共通の入出力装置にアクセスしようする場合、最も早く入出力装置にアクセスしたタスクが入出力装置を使用し、その処理が終了するまで専有する。後から入出力装置にアクセスしようとしたタスクは、先にアクセスしたタスクの入出力処理が終了し、入出力装置が空き状態になった後、入出力処理を行っていた。
【０００３】
上記のような入出力装置へのアクセス方法では、緊急性の高いタスクが入出力装置へのアクセスを要求しても、先にアクセスしているタスクがある場合にはそのタスクによる入出力装置へのアクセスが終了するまで待たなければならないため、ユーザーが優先的に行いたい処理が待たされてしまうという問題があった。上記問題点に対し、優先レベルの低いタスクの中にスリープを入れ、スリープ中のタスクは処理の順番が回ってきたときに処理を行わずにスキップしたり、共通のデバイスにアクセスする一回の時間を短縮するなどして、緊急性の高いタスクが優先的に共通のデバイスに対する処理を行えるようにした処理方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２８３２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１には、優先レベルに基づいて１回のアクセス時間とスリープ時間とを決定する旨の記載がされているが、このような制御によれば、優先レベルの高いタスクが共通デバイスへのアクセスを要求しておらず、優先レベルの低いタスクのみが共通デバイスへのアクセスを要求している場合に、全てのタスクがスリープになる時間が発生してしまうことがある。その様な場合には共通デバイスにいずれのタスクからもアクセスが行われないために、処理効率が悪くなってしまう。
【０００６】
また、ある時点における複数のタスク間のアクセス時間とスリープ時間が高い処理効率を実現していたとしても、複数のタスクの内の、例えばいずれか１つが終了した場合に、同じアクセス時間とスリープ時間が継続されてしまうため、特に優先レベルの高いタスクが終了した場合には、処理を継続している優先レベルの低いタスク全てがスリープとなる時間が生じることがあり、処理効率が悪くなってしまう。
【０００７】
更には、複数のタスクが共通デバイスにアクセスしているときに、更に優先レベルが低いタスクが追加された時には、結果的に優先レベルの低いタスクが全てスリープとなる時間が発生せず、複数のタスクが設定されたアクセス時間ずつ単に順番に処理されてしまい、優先レベルの高いタスクの処理に時間がかかってしまうことがある。
【０００８】
本発明は上記問題点を鑑みてなされたものであり、マルチタスク制御下にある画像撮影再生装置において、共通の入出力装置にアクセスする際に、より優先順位の高いタスクの処理を優先的に行うと共に、入出力装置に対する処理の全体的な効率を上げることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の画像撮影再生装置は、被写体を撮影して電気的な画像データを取得する撮像手段と、外部記録媒体に対して、前記画像データを含むデータの入出力を行う入出力手段と、前記入出力手段を専有制御する、予め優先順位が決められた複数のタスクを、データ量が多い第１処理単位と、当該第１処理単位よりもデータ量が少ない第２処理単位のいずれかである前記データの一処理単位毎に前記複数のタスク間でタスクを切り替える機会を与えて順次実行する制御手段とを有し、前記制御手段は、前記複数のタスクの内、前記撮像手段により取得した１枚の画像データを前記外部記録媒体に出力する出力タスクを前記第１処理単位で実行中に前記外部記録媒体に記録された１枚の画像データを表示手段に表示させるために読み込む入力タスクの実行が指示された場合に、前記出力タスクと前記入力タスクの内、優先順位が高いタスクの処理単位を前記第１処理単位に設定し、優先順位が低いタスクの処理単位を前記第２処理単位に設定し、前記撮像手段により取得した１枚の画像データ及び前記外部記録媒体に記録された１枚の画像データのそれぞれを設定された前記第１処理単位及び前記第２処理単位のいずれか一方のデータ量に分割して実行することにより前記外部記録媒体への１枚の画像データの記録と前記表示手段への１枚の画像データの表示を並列に行う。
【発明の効果】
【００１０】
本発明によれば、マルチタスク制御下にある画像撮影再生装置において、共通の入出力装置にアクセスする際に、より優先順位の高いタスクの処理を優先的に行うと共に、入出力装置に対する処理の全体的な効率を上げることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態における画像処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるタスクの関係を説明する図である。
【図３】本発明の第１の実施形態における撮影シーケンスを説明するフローチャートである。
【図４】本発明の第１の実施形態における再生表示シーケンスを説明するフローチャートである。
【図５】本発明の第１の実施形態の撮影シーケンスにおける書き込みシーケンスを説明するフローチャートである。
【図６】本発明の第１の実施形態の再生表示シーケンスにおける読み込みシーケンスを説明するフローチャートである。
【図７】本発明の第１の実施形態における制御タスクの処理単位設定シーケンスを説明するフローチャートである。
【図８】本発明の第１の実施形態におけるタスク遷移を説明するタイミングチャートである。
【図９】本発明の第２の実施形態におけるタスクの関係を説明する図である。
【図１０】本発明の第２の実施形態における非画像データ処理シーケンスを説明するフローチャートである。
【図１１】本発明の第２の実施形態の撮影シーケンスにおける書き込みシーケンスを説明するフローチャートである。
【図１２】本発明の第２の実施形態の再生表示シーケンスにおける読み込みシーケンスを説明するフローチャートである。
【図１３】本発明の第２の実施形態の非画像データ処理シーケンスにおける書き込みシーケンスを説明するフローチャートである。
【図１４】本発明の第２の実施形態における制御タスクの処理単位設定シーケンスを説明するフローチャートである。
【図１５】本発明の第２の実施形態の制御タスクによる複数タスクのスケジューリングの方法を説明するフローチャートである。
【図１６】本発明の第２の実施形態におけるタスク２の単独実行処理を説明するフローチャートである。
【図１７】本発明の第２の実施形態におけるタスク３の単独実行処理を説明するフローチャートである。
【図１８】本発明の第２の実施形態におけるタスク１とタスク２の並行実行処理を説明するフローチャートである。
【図１９】本発明の第２の実施形態におけるタスク１とタスク３の並行実行処理を説明するフローチャートである。
【図２０】本発明の第２の実施形態におけるタスク２とタスク３の並行実行処理を説明するフローチャートである。
【図２１】本発明の第２の実施形態におけるタスク１〜タスク３の並行実行処理を説明するフローチャートである。
【図２２】本発明の第２の実施形態におけるタスク遷移を説明するタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明を実施するための最良の形態を詳細に説明する。
【００１３】
＜第１の実施形態＞
まず、本発明の第１の実施形態における画像処理装置の構成を図１を参照して説明する。
【００１４】
図１において、１００は本第１の実施形態における画像処理装置である。画像処理装置１００は、デジタルカメラ、デジタルビデオカメラ、カメラ付き携帯端末（カメラ付き携帯電話を含む）の何れであってもよい。第１の実施形態では、画像処理装置１００がデジタルカメラである場合を説明する。
【００１５】
画像処理装置１００内において、１０は撮像レンズ、１１は絞り、１２はシャッター、１４は光学像を電気信号に変換する撮像素子、１６は撮像素子１４のアナログ信号出力をディジタル信号に変換するＡ／Ｄ変換器である。
【００１６】
１８は撮像素子１４、Ａ／Ｄ変換器１６、表示制御部２６にそれぞれクロック信号や制御信号を供給するタイミング発生回路であり、メモリ制御部２２及びシステム制御部５０により制御される。
【００１７】
２０は画像処理部であり、Ａ／Ｄ変換器１６からの画像データ或いはメモリ制御部２２からの画像データに対して、画像データに付加されている処理データに基づき、所定の画素補間処理や色変換処理を行う。また、画像処理部２０は、Ａ／Ｄ変換器１６から出力される画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部５０がシャッタ制御部３４、絞り制御部４０及び測距制御部４２に対して、ＴＴＬ（スルー・ザ・レンズ）方式のオートフォーカス（ＡＦ）処理、自動露出（ＡＥ）処理、フラッシュプリ発光（ＥＦ）処理を行っている。さらに、画像処理部２０は、Ａ／Ｄ変換器１６から出力される画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてＴＴＬ方式のオートホワイトバランス（ＡＷＢ）処理も行っている。
【００１８】
２２はメモリ制御部であり、Ａ／Ｄ変換器１６、タイミング発生回路１８、画像処理部２０、画像表示メモリ２４、表示制御部２６、メモリ３０、圧縮伸長部３２を制御する。Ａ／Ｄ変換器１６から出力される画像データは、画像処理部２０、メモリ制御部２２を介して、或いはメモリ制御部２２のみを介して、画像表示メモリ２４或いはメモリ３０に書き込まれる。
【００１９】
２４は画像表示メモリ、２６は表示制御部、２８はＴＦＴ  ＬＣＤ（Liquid Crystal Display）等を有する画像表示部である。画像表示メモリ２４に書き込まれた表示用の画像データは表示制御部２６を介して画像表示部２８に表示される。
【００２０】
画像表示部２８を用いて撮像した画像データを逐次表示すれば、電子ファインダ機能を実現することが可能である。なお、画像表示部２８は、システム制御部５０の指示により表示のＯＮ又はＯＦＦが可能である。画像表示部２８の表示をＯＦＦにした場合、画像処理装置１００の電力消費を大幅に低減することができる。また、画像表示部２８は、合焦、手振れ、シャッタースピード、絞り値、露出補正等に関する情報をシステム制御部５０からの指示に従って表示する。
【００２１】
３０は撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに充分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連写やパノラマ撮影の場合にも、高速かつ大量の画像をメモリ３０に書き込むことができる。また、メモリ３０はシステム制御部５０の作業領域としても使用することが可能である。更に、後述する記録媒体から画像データをメモリ３０に読み出し、画像処理部２０やメモリ制御部２２を介して画像表示メモリ２４に画像データを書き込む処理をし、表示制御部２６により画像表示部２８に表示する場合にも使用される。
【００２２】
３２はメモリ３０から読み出した画像データを所定の画像圧縮方法（例えば、適応離散コサイン変換（ＡＤＣＴ）等）に従って例えばＪＰＥＧデータに画像圧縮し、画像圧縮された画像データをメモリ３０に書き込む機能及びメモリ３０から読み出した画像データを伸長し、伸長した画像データをメモリ３０に書き込む機能を有する圧縮伸長部である。
【００２３】
３４はシャッタ１２を制御するシャッタ制御部、４０は絞り１１を制御する絞り制御部である。４２は撮像レンズ１０のフォーカシングを制御する測距制御部、４６はストロボ、４８はストロボ４６の発光を制御するストロボ制御部である。
【００２４】
５０は画像処理装置１００全体を制御するシステム制御部である。５２はシステム制御部５０の動作用の定数、変数、プログラム等を記憶するＲＯＭなどのメモリであり、メモリ５２には撮像処理を行うプログラム、画像処理を行うプログラム、作成した画像ファイルデータを記録媒体に記録するプログラム、画像ファイルデータを記録媒体から読み出すプログラムなどの各種プログラムと、上記プログラムのマルチタスク構成を実現し実行するＯＳなどの各種プログラムなどが記録されている。各プログラムにはメッセージキューが作成され、メッセージキューにメッセージがFIFO(First In First Out)的に積まれ、各プログラム間でメッセージのやり取りを行うことで各プログラムが連携して制御され、上記各機能の制御が行われている。
【００２５】
６０、６２、６４、６６は、システム制御部５０の各種の動作指示を入力するための操作手段であり、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。
【００２６】
ここで、これらの操作手段の具体的な説明を行う。
【００２７】
６０はモードダイアルスイッチで、電源ＯＮ／ＯＦＦ、再生モード、自動撮影モード、プログラム撮影モード、シャッター速度優先撮影モード、絞り優先撮影モード、マニュアル撮影モード、ポートレート撮影モード、風景撮影モード、接写撮影モード、スポーツ撮影モード、夜景撮影モード、マルチ画面再生・消去モード、ＰＣ接続モード等の各機能モードを切り替え設定することができる。
【００２８】
６２はレリーズスイッチＳＷ１で、不図示のレリーズボタンの操作途中でＯＮとなり、ＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（ストロボプリ発光）処理等の動作開始を指示する。
【００２９】
６４はレリーズスイッチＳＷ２で、不図示のレリーズボタンの操作完了でＯＮとなり、撮像素子１４から読み出した信号をＡ／Ｄ変換器１６、メモリ制御部２２を介してメモリ３０に画像データを書き込む露光処理、画像処理部２０やメモリ制御部２２での演算を用いた現像処理、メモリ３０から画像データを読み出し、圧縮伸長部３２で画像圧縮を行い、記録媒体２００に画像データを書き込む記録処理という一連の処理の動作開始を指示する。
【００３０】
６６は、メニュー操作スイッチであり、不図示のメニューキー、セットキー、十字キー等の組み合わせで構成され、カメラの撮影条件や現像条件などの各種設定の変更を画像表示部２８を見ながら行うことができる。
【００３１】
８０は電源制御部で、電池検出回路、ＤＣ−ＣＤコンバータ、通電するブロックを切り替えるスイッチ回路等により構成されており、電池の装着の有無、電池の種類、電池残量の検出を行い、検出結果及びシステム制御部５０の指示に基づいてＤＣ−ＤＣコンバータを制御し、必要な電圧を必要な期間、記録媒体を含む各部へ供給する。
【００３２】
９０はメモリカードやハードディスク等の記録媒体とのインタフェース、９２はメモリカードやハードディスク等の記録媒体と接続を行うコネクタである。
【００３３】
なお、第１の実施形態では記録媒体を取り付けるインタフェース及びコネクタを１系統持つものとして説明している。勿論、記録媒体を取り付けるインタフェース及びコネクタは、単数或いは複数、いずれの系統数を備える構成としても構わない。また、異なる規格のインタフェース及びコネクタを組み合わせて備える構成としてもよい。
【００３４】
インタフェース及びコネクタとしては、ＰＣＭＣＩＡカードやコンパクトフラッシュ（登録商標）カード等の規格に準拠したものを用いて構成することが可能である。インタフェース９０及びコネクタ９２をＰＣＭＣＩＡカードやＣＦカード等の規格に準拠したものを用いて構成した場合、ＬＡＮカードやモデムカード、ＵＳＢカード、ＩＥＥＥ１３９４カード、Ｐ１２８４カード、ＳＣＳＩカード、ＰＨＳ等の通信カード、等の各種通信カードを接続することにより、他のコンピュータやプリンタ等の周辺機器との間で画像データや画像データに付属した管理情報を転送し合うことができる。
【００３５】
２００はメモリカードやハードディスク等の記録媒体である。記録媒体２００は、半導体メモリや磁気ディスク等から構成される記録部２０２と、画像処理装置１００とのインタフェース２０４と、画像処理装置１００と接続を行うコネクタ２０６とを備えている。
【００３６】
次に、各種のタスクについて説明する。本第１の実施形態では、撮影処理により作成されたメモリ３０にある画像データを記録媒体２００に記録するための書き込みタスクと、記録媒体２００に記録されている画像データをメモリ３０に読み出すための読み込みタスクと、それら２つのタスクを制御する制御タスクの３つのタスクの関係に注目し、その関係を図２に示す。本第１の実施形態では、撮影した画像データは一旦メモリ３０に保存してから記録媒体２００に書き込まれるため、ユーザーの操作性を鑑みて、書き込みタスクよりも読み込みタスクの優先順位が高いものとする。
【００３７】
制御タスクは書き込みタスクと読み込みタスクを制御するタスクで、書き込みタスク及び読み込みタスクに対して、後述する書き込み処理単位のＨＩ・ＬＯＷの設定の切り替えを行う。第１の実施形態では読み込みタスクの優先順位が書き込みタスクの優先順位よりも高いので、制御タスクは書き込みタスクの処理単位を切り替えることにより、優先的に読み込みタスクが記録媒体を専有できるように制御を行う。
【００３８】
図３は、撮影から記録媒体２００への画像データ記録までの一連のシーケンスを説明するフローチャートである。ステップＳ３０１では、先に図１の説明で述べたようにレリーズスイッチを構成するＳＷ１（６２）、ＳＷ２（６４）の操作に応答し、ＡＦ処理、ＡＥ処理、露光処理までの一連の撮影処理が行われ、撮影して得られた画像データがメモリ３０に一時保存される。そして次に画像書き込み処理に移行する（ステップＳ３０２）。画像書き込み処理では、画像データの記録媒体２００への書き込みが行われるが、その詳細については図５を参照して後述する。このように一連の撮影動作が実行される。
【００３９】
図４は記録媒体２００から画像データを読み込み、画像表示部２８に表示するまでの一連のシーケンスを説明するフローチャートである。ステップＳ４０１では、モードダイアル６０が再生モードに設定されたかどうかを判断する。再生モードに設定されると、ステップＳ４０２で画像読み込み処理に移行する。画像読み込み処理では記録媒体２００から画像データをメモリ３０に読み出す処理が行われるが、詳細についてはついては図６を参照して後述する。次に表示処理に移行する（ステップＳ４０３）。表示処理に関しては公知なので特に記述はしないが、メモリ３０に読み出した画像データを表示制御部２６により画像表示部２８に表示する処理を行う。このように一連の再生表示動作が実行される。
【００４０】
次に図５のフローチャートを参照して、図３のステップＳ３０２で行われる画像データを記録媒体２００に記録するための書き込み処理（タスク）について説明する。
【００４１】
まずステップＳ５０１では書き込み処理単位がＨＩであるかどうか判断する。書き込み処理単位とは、記録媒体２００を専有して一度に書き込むことができる最大データ量のことで、前述の制御タスクにより設定される。本第１の実施形態において、撮影処理により作成された画像データが数十ＭＢ（メガバイト）であるとすると、一度に数十ＭＢの書き込み処理を行うのではなく、画像データを数ＭＢ〜数ＫＢのデータのかたまり（処理単位）として書き込み、これを複数回繰り返して一枚の画像データを書き込む。
【００４２】
もしＨＩの設定であるなら（ステップＳ５０１でＹＥＳ）、ステップＳ５０２に移行し、書き込み処理単位をＨＩに設定する。第１の実施形態では処理単位を２ＭＢとする。ＨＩでなければ（ステップＳ５０１でＮＯ）、ステップＳ５０３に移行し、書き込み処理単位をＬＯＷに設定する。第１の実施形態では１ＫＢとする。次にステップＳ５０４に移行し、設定された処理単位ずつ記録媒体２００に書き込みを行う。１処理単位分の書き込みが終わったら、全データの書き込みが終了したかどうかの判断を行い、全データの書き込みが終わっていたら終了し、終わっていなければステップＳ５０１に戻って同様の処理を繰り返す。これにより書き込みタスクが書き込み処理により記録媒体にデータを書き込む間中、記録媒体を専有してしまうことがない。
【００４３】
次に図６のフローチャートを参照して、図４のステップＳ４０２で行われる画像データを記録媒体２００から読み出す読み込み処理（タスク）について説明する。
【００４４】
まずステップＳ６０１では読み込み処理単位がＨＩであるかどうか判断する。読み込み処理単位とは、記録媒体２００を専有して一度に読み込むことができる最大データ量のことで、前述の制御タスクにより設定される。第１の実施形態において記録媒体２００内から読み込む画像データが数十ＭＢ（メガバイト）であるとすると、一度に数十ＭＢの読み込み処理を行うのではなく、画像データを数ＭＢ〜数ＫＢのデータのかたまり（処理単位）として読み込み、これを複数回繰り返して、一枚の画像データをメモリ３０に読み込む。
【００４５】
もしＨＩの設定であるなら（ステップＳ６０１でＹＥＳ）、ステップＳ６０２に移行し、読み込み処理単位をＨＩに設定する。第１の実施形態では処理単位を２ＭＢとする。ＨＩでなければ（ステップＳ６０１でＮＯ）、ステップＳ６０３に移行し、読み込み処理単位をＬＯＷに設定する。第１の実施形態では１ＫＢとする。次にステップＳ６０４に移行し、設定された処理単位ずつ記録媒体２００から読み込みを行う。１処理単位分の読み込みが終わったら、全データの読み込みが終了したかどうかの判断を行い、全データの読み込みが終わっていたら終了し、終わっていなければステップＳ６０１に戻って同様の処理を繰り返す。これにより読み込みタスクが読み込み処理により記録媒体からデータを読み込む間中、記録媒体を専有してしまうことがない。
【００４６】
次に、図７のフローチャートを参照して、制御タスクによる、複数タスクの処理単位の制御について説明する。図７において、タスク１はタスク２よりも優先順位が高いタスクとする。上述した書き込みタスクと読み込みタスクでは、読み込みタスクの方が優先順位が高いためタスク１に相当し、書き込みタスクはタスク２に対応する。
【００４７】
まずステップＳ７０１において、タスク１を実行するかどうかを判断し、実行する場合にはステップＳ７０２でタスク１の処理単位をＨＩに設定する。タスク１は、ここで設定されたＨＩの処理単位を基準として繰り返し処理を実行することになる。ステップＳ７０３でタスク１の１処理単位分の処理を実行した後、この１処理単位分の処理の実行中にタスク２の実行が指示されたか否かをステップＳ７０４で判断する。実行が指示されたと判断した場合にはステップＳ７１２へ進む。指示されていないと判断した場合にはステップＳ７０５でタスク１が終了したかどうかを判断し、終了していなければステップＳ７０３に戻り、終了していれば処理を終了する。
【００４８】
一方、ステップＳ７０１でタスク１を実行しないと判断した場合には、ステップＳ７０６に進んでタスク２を実行するかどうかを判断し、実行しない場合にはこのまま処理を終了し、実行する場合にはステップＳ７０７でタスク２の処理単位をＨＩに設定する。タスク２は、ここで設定されたＨＩの処理単位を基準として繰り返し処理を実行することになる。ステップＳ７０８でタスク２の１処理単位分の処理を実行した後、この１処理単位の処理の実行中にタスク１の実行が指示されたか否かをステップＳ７０９で判断する。実行が指示されたと判断した場合にはステップＳ７１１でタスク１の処理単位をＨＩに設定してステップＳ７１２へ進む。実行が指示されていないと判断した場合にはステップＳ７１０でタスク２が終了したかどうかを判断し、終了していなければステップＳ７０８に戻り、終了していれば処理を終了する。
【００４９】
ステップＳ７１２では、タスク１とタスク２が同時に処理を指示されている状態になるので、タスク２の処理単位をＬＯＷに設定する。
【００５０】
そしてＳ７１３でタスク１の１処理単位の実行がデバイス側（上述の画像データの書き込みタスク及び読み込みタスクの処理においては、記録媒体側に相当する）で完了したか否かを判断する。すなわち、それぞれの処理は、システム制御部側で実行される処理とデバイス側で実行される処理から構成されており、デバイス側で処理が実行されている状態においてはシステム制御部側に余裕が生じるので、タスク２の処理単位毎の処理の準備をすべく、デバイス側の処理完了待ち状態を判断するものである。
【００５１】
ステップＳ７１３でタスク１の１処理単位分の処理がデバイス側の処理完了待ち状態と判断された場合には、ステップＳ７１４でタスク２が既に終了しているか否かを判断し、終了していればステップＳ７１３へ戻る。
【００５２】
終了していなければ、ステップＳ７１５でタスク２のシステム制御部で実行される処理を行って、タスク２の処理単位毎の処理の実行の準備を行う。この後ステップＳ７１３に戻り、再びタスク１のデバイス側の処理完了待ち状態か否かを判断する。
【００５３】
ステップＳ７１３でデバイス側の処理が完了していれば、ステップＳ７１６に進み、次のタスク１の１処理単位分の処理の実行の準備状態か否かを判断する。すなわち、タスク１の処理は処理単位を繰り返して実行することにより完了するものであるが、この処理単位と処理単位の間には所定の準備動作が必要となる場合があり、このような準備動作を行っている状態においては、デバイスを使用しないのでこの準備状態を判断する。ステップＳ７１６でタスク１の処理の実行が準備状態と判断された場合には、ステップＳ７１７で、タスク２が既に終了しているか否かを判断し、終了していればステップＳ７０５へ移る。
【００５４】
終了していなければ、ステップＳ７１８に進み、タスク２を１処理単位分、実行するように制御する。なお、ここではタスク２の１処理単位はステップＳ７１２でＬＯＷに設定されている。より具体的には、これまでタスク１が使用していたデバイスをタスク１の準備動作に伴ってタスク２が使用することになり、タスク２を実行することになる。
【００５５】
タスク２の１処理単位分の処理が終了するとステップＳ７１６に戻り、再びタスク１の処理の実行が準備状態か否かを判断する。従って、場合によっては、タスク２がＬＯＷの処理単位で繰り返し実行されることもあり得る。
【００５６】
ステップＳ７１６で、タスク１の処理の実行が準備状態でないと判断されると、ステップＳ７１９においてタスク１が終了しているか否かを判断し、まだ終了していなければ、ステップＳ７２１でタスク１を１処理単位分実行するように制御する。なお、ここではタスク１の処理単位はＨＩに設定されている。ステップＳ７２１でタスク１が１処理単位分実行されると、ステップＳ７１３に戻る。
【００５７】
ステップＳ７１９でタスク１が終了したと判断されると、この時点ではタスク２のみが実行されていることになるのでステップＳ７２０でタスク２の処理単位をＨＩに設定し、ステップＳ７１０に進む。
【００５８】
このように処理単位を変更することで、タスクが２つ実行されているときには、優先順位の低いタスクの処理単位を少なくし、優先順位の高いタスクをより高速に処理することができると共に、タスクが１つだけ実行されている時には優先順位に関わらず処理単位を大きくすることで、実行中のタスクを高速に処理することができる。
【００５９】
次に、上記制御の一例として、撮影から記録媒体２００への画像データ記録までの一連のシーケンスが行われている時に、同じ記録媒体２００から画像データを読み込み、画像表示部２８に表示する場合のシーケンスを図８に示す。
【００６０】
まず、ｔ１で制御タスクは書き込みタスクに記録媒体２００への書き込みを指示する。この時、書き込み処理単位はステップＳ７０２でＨＩに設定されている。次に、モードダイヤルスイッチ６０により再生モードが指示されると、ｔ３で読み込みタスクに読み込みの指示を行うが（ステップＳ７０９でＹＥＳの状態）、読み込みタスクに優先的に記録媒体２００の専有させるため、読み込み指示に先立って、ｔ２で書き込みタスクの書き込み処理単位をＬＯＷに変更する（ステップＳ７１２）。読み込みタスクの読み込み処理単位はステップＳ７１１でＨＩに設定されている。このように書き込み処理単位及び読み込み処理単位をそれぞれ制御することにより、読み込みタスクが一度に読み込むサイズはＨＩのため長い時間記録媒体２００を専有し、読み込みを行うが、書き込みタスクが一度に書き込むサイズはＬＯＷであるため短い時間だけ記録媒体２００を専有し、書き込みを行うことになる。
【００６１】
この図による場合、読み込みタスクは各ＨＩの処理単位後に所定時間の準備動作を必要としており（ステップＳ７１３でＹＥＳの状態）、この時間に書き込みタスクがＬＯＷの処理単位で１回実行されている（ステップＳ７１８を１回経過する）。但し、読み込みタスクが連続してＨＩの処理単位で実行される場合に、処理単位と処理単位の間、すなわち準備動作が極めて短く（もしくは必要とせず）、書き込みタスクのＬＯＷの処理単位が実行されることがない場合もあり得るし、逆に準備動作が長いために、書き込みタスクのＬＯＷの処理単位が複数回実行される場合もありうる。
【００６２】
すべての読み込み処理が終了したら（ステップＳ７１９でＹＥＳ）、制御タスクはｔ４で書き込みタスクの書き込み処理単位をＨＩに設定して（ステップＳ７２０）、書き込みタスクが長い時間記録媒体２００を専有し、より早く書き込みを行えるようにする。
【００６３】
なお、第１の実施形態においては、モードダイヤルスイッチ６０の操作により再生モードから撮影モードに変更される場合には、実際に撮影して得た画像データを記録媒体２００に記録する書き込みタスクがスタートする前に読み込みタスクが終了するため（ステップＳ７０４でＮＯ、ステップＳ７０５でＹＥＳとなる）、マルチタスク状態になることがない。
【００６４】
以上説明したように、本第１の実施形態によれば、書き込みタスクと読み込みタスクとを並行して行う場合には、優先順位がより低い書き込みタスクの処理単位を制御タスクがＬＯＷに設定することにより、書き込みタスクが記録媒体を専有し、書き込みを行う一回の時間を短くすることができ、優先的に処理したい読み込みタスクがより長い時間記録媒体を専有し、読み込みを行うことができる。また、優先順位の高い読み込みタスクが動いていない場合には、書き込み処理単位をＨＩに切り替えることで、タスクの効率を上げることができる。
【００６５】
なお、処理単位ＬＯＷを、処理単位分の処理の間にタスクが記録媒体とのアクセスを行わない時間とすれば、優先順位がより高い読み込みタスクを行っている間であっても、記録媒体とのアクセスを行わない時間に書き込み処理を行うことができるため、効率よく読み込みタスクと書き込みタスクを実行することが可能となる。
【００６６】
なお、上記第１の実施形態では、書き込みタスクよりも読み込みタスクの優先順位が高いものとしたが、その逆に設定しても良い。また、メモリ３０の容量自体が小さい場合や、メモリ３０の空き容量が所定容量（例えば、おおよそ１枚の画像を記憶するのに必要な容量）よりも少なくなった場合に、書き込みタスクを優先すると言ったように、優先順位を何らかの条件に応じて変更することも、勿論可能である。
【００６７】
また、上記第１の実施形態では、処理単位はＨＩとＬＯＷのいずれかに設定されるものとしたが、本発明はこれに限るものではなく、例えば、使用する記録媒体のアクセス速度が速い場合に処理単位を大きくし、遅い場合に処理単位を小さくするといったように、アクセス速度に応じて処理単位を設定するようにすることも可能である。その際、予め複数の処理単位を保持しておき、その中から適切なものを選択するようにしてもよい。また、ＨＩとＬＯＷの処理単位も２０ＭＢと１ＫＢに限られるものではないことはいうまでもない。
【００６８】
また、上記第１の実施形態では、入出力装置として記録媒体を用いたが、入出力装置に通信機能を持たせ、遠隔大容量記録媒体への入出力を行う際にも有効である。
【００６９】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。なお、第２の実施形態においても上記第１の実施形態で図１を参照して説明した画像処理装置を用いるため、ここでは説明を省略する。
【００７０】
まず、各種のタスクについて説明する。本第２の実施形態では、撮影処理により作成されたメモリ３０にある画像データを記録媒体２００に記録するための画像データ書き込みタスクと、画像データ以外の非画像データを記録媒体２００に記録するための非画像データ書き込みタスクと、記録媒体２００に記録されている画像データをメモリ３０に読み出すための画像データ読み込みタスクと、これら３つのタスクを制御する制御タスクの４つの関係に注目し、その関係を図９に示す。本第２の実施形態では、撮影した画像データ及び非画像データは一旦メモリ３０に保存してから記録媒体２００に書き込まれるため、ユーザの操作性を鑑みて、画像データ書き込みタスクおよび非画像データ書き込みタスクの書き込みタスクよりも画像データ読み込みタスクの優先順位が高いものとし、優先順位が高いものから順に、画像データ読み込みタスク、画像データ書き込みタスク、非画像データ書き込みタスクというように設定するものとする。
【００７１】
制御タスクは、画像データ書き込みタスク、非画像データ書き込みタスク、画像データ読み込みタスクを制御するタスクで、それぞれのタスクに対して、後述する任意に決定した時間内に処理が終了できる処理単位の設定を行う。本第２の実施形態では読み込みタスクの優先順位が書き込みタスクの優先順位より高いので、制御タスクは、画像データ書き込みタスクと非画像データ書き込みタスクの処理単位を切り替えることにより、優先的に画像データ読み込みタスクが記録媒体を専有できるように制御を行う。
【００７２】
上述した４つのタスクの内、画像書き込みタスク及び画像読み込みタスクは、上記第１の実施形態において図３及び図４を参照して説明した処理と同様であるので、ここでは説明を省略する。ただし、図３のステップＳ３０２における画像書き込み処理（画像データ書き込み処理）及び図４のステップＳ４０２における画像読み込み処理（画像データ読み込み処理）における動作は、図５及び図６を参照して第１の実施形態で説明したものと異なるため、図１１及び図１２を参照して詳細をそれぞれ後述する。
【００７３】
図１０は記録媒体２００への非画像データ記録までの一連のシーケンスを説明するフローチャートである。ステップＳ１００１では、撮影して得られた画像データ以外に記録媒体２００に記録したい非画像データを作成し、作成した非画像データをメモリ３０に一時保存する。ここでいう非画像データの一例としてDPOFファイルデータなどが考えられるが、データの種類については特に限定しない。そして次に非画像データ書き込み処理に移行する（ステップＳ１００２）。非画像データ書き込み処理では、メモリ３０に保存された非画像データの記録媒体２００への書き込みが行われるが、その詳細については図１３を参照して後述する。このように一連の非画像データ書き込み動作が実行される。
【００７４】
次に図１１のフローチャートを参照して、図３のステップＳ３０２で行われる本第２の実施形態における画像データを記録媒体２００に記録するための画像データ書き込み処理（タスク）について説明する。
【００７５】
まず、ステップＳ１３０１では、図１５〜図２１を参照して後述する制御タスクの処理により決定された画像データ書き込み処理単位を参照する。画像データ書き込み処理単位とは、記録媒体２００を専有して一度に書き込むことができる最大画像データ量のことである。
【００７６】
次に、ステップＳ１３０２で、画像データ書き込み処理単位として、ステップＳ１３０１で参照した処理単位に設定する。次にステップＳ１３０３に移行し、設定された処理単位ずつ記録媒体２００に書き込みを行う。１処理単位分の書き込みが終わったら、全画像データの書き込みが終了したかどうかの判断を行い、全画像データの書き込みが終わっていたら終了し、終わっていなければステップＳ１３０１に戻って同様の処理を繰り返す。これにより画像データ書き込みタスクが画像データ書き込み処理により記録媒体に画像データを書き込む間中、記録媒体を専有してしまうことがない。
【００７７】
次に図１２のフローチャートを参照して、図４のステップＳ４０２で行われる本第２の実施形態における画像データを記録媒体２００から読み出す画像データ読み込み処理（タスク）について説明する。
【００７８】
まず、ステップＳ１４０１では、図１５〜図２１を参照して後述する制御タスクの処理により決定された画像データ読み込み処理単位を参照する。画像データ読み込み処理単位とは、記録媒体２００を専有して一度に読み込むことができる最大画像データ量のことである。
【００７９】
次に、ステップＳ１４０２で、画像データ読み込み処理単位として、ステップＳ１４０１で参照した処理単位に設定する。次にステップＳ１４０３に移行し、設定された処理単位ずつ記録媒体２００から読み込みを行う。１処理単位分の読み込みが終わったら、全画像データの読み込みが終了したかどうかの判断を行い、全画像データの読み込みが終わっていたら終了し、終わっていなければステップＳ１４０１に戻って同様の処理を繰り返す。これにより画像データ読み込みタスクが画像読み込み処理により記録媒体からデータを読み込む間中、記録媒体を専有してしまうことがない。
【００８０】
次に図１３のフローチャートを参照して、図１０のステップＳ１００２で行われる非画像データを記録媒体２００に記録するための非画像データ書き込み処理（タスク）について説明する。
【００８１】
まず、ステップＳ１５０１では図１５〜図２１を参照して後述する制御タスクの処理により決定された非画像データ書き込み処理単位を参照する。非画像データ書き込み処理単位とは、画像データ書き込み処理単位と同様に、記録媒体２００を専有して一度に書き込むことができる最大データ量のことである。
【００８２】
次に、ステップＳ１５０２で、非画像データ書き込み処理単位として、ステップＳ１５０１で参照した処理単位に設定する。次にステップＳ１５０３に移行し、設定された処理単位ずつ記録媒体２００に書き込みを行う。１処理単位分の書き込みが終わったら、全非画像データの書き込みが終了したかどうかの判断を行い、全非画像データの書き込みが終わっていたら終了し、終わっていなければステップＳ１５０１に戻って同様の処理を繰り返す。これによりデータ書き込みタスクがデータ書き込み処理により記録媒体にデータを書き込む間中、記録媒体を専有することがない。
【００８３】
本第２の実施形態では、複数タスクの並行実行が指示されている場合に、図１１のステップＳ１３０１〜Ｓ１３０３の処理、図１２のステップＳ１４０１〜Ｓ１４０３の処理、図１３のステップＳ１５０１〜Ｓ１５０３の処理の内、指示されたタスクに対応する処理を順番に実行する。
【００８４】
次に、図１４のフローチャートを参照して、制御タスクによる、複数タスクの処理単位の制御について説明する。なお、以下の説明では、優先順位の高いタスクからタスク１〜３とし、従って本第２の実施形態においては、タスク１が画像読み込みタスク、タスク２が画像書き込みタスク、そしてタスク３が非画像書き込みタスクとなる。
【００８５】
まず、ステップＳ１６０１で記録媒体２００のアクセス速度を入出力インターフェース９０を介して判断する。次に、ステップＳ１６０２で任意の時間内に終了できるような処理単位をアクセス速度から決定する。本第２の実施形態では、時間設定として最大の時間を200msecとし、200msecで終わる処理単位を最大処理単位とする。また最小の時間を10msecとし、10msecで終わる処理単位を最小処理単位とする。このように、最大処理単位と最小処理単位をアクセス速度から決定し、メモリ３０に保存する。
【００８６】
次にステップＳ１６０３でタスク１、タスク２、タスク３の少なくともいずれかのタスクの制御が開始されると、ステップＳ１６０４に進んで後述するスケジューリングを行い、ステップＳ１６０５でタスク１、タスク２、タスク３の全ての制御が終了したと判断されるまで、ステップＳ１６０４においてスケジューリングを続ける。
【００８７】
次に、図１５のフローチャートを参照して、図１４のステップＳ１６０４で行われるスケジューリングの方法について説明する。
【００８８】
まずステップＳ１７０１において、タスク１を実行するかどうかを判断し、実行する場合にはステップＳ１７０２でタスク１の処理単位を最大処理単位に設定する。その後、ステップＳ１７０３でタスク２を実行するかどうかを判断し、実行する場合には、ステップＳ１７０７に進んで、タスク３を実行するかどうかを判断する。実行しない場合には、ステップＳ１７０８でタスク１とタスク２を並行して実行し（図１８）、実行する場合には、ステップＳ１８０９でタスク１〜３を並行して実行する（図２１）。
【００８９】
一方、ステップＳ１７０３でタスク２を実行しない場合にはステップＳ１７０４でタスク３を実行するかどうかを判断し、実行する場合にはステップＳ１７０６に進んでタスク１とタスク３を並行して実行する（図１９）。実行しない場合には、タスク１を単独実行することになり、１処理単位を実行する毎にステップＳ１７０５に進んでタスク１が終了したかどうかを判断し、終了していなければステップＳ１７０３に戻り、終了していれば図１４に戻ってステップＳ１６０５でＹＥＳとなり、処理が終了する。
【００９０】
一方、ステップＳ１７０１において、タスク１を実行しない場合には、ステップＳ１７１０に進んでタスク２を実行するかどうかを判断し、実行する場合にはステップＳ１７１１に進んでタスク３を実行するかどうかを判断する。タスク３を実行しない場合には、ステップＳ１７１２に進んでタスク２を単独で実行し（図１６）、タスク３を実行する場合にはステップＳ１７１３でタスク２に最大処理単位を設定してから、ステップＳ１７１４に進んでタスク２とタスク３を並行して実行する（図２０）。
【００９１】
また、ステップＳ１７１０でタスク２を実行しない場合には、ステップＳ１７１５でタスク３を実行するかどうかを判断し、実行する場合にはステップＳ１７１６に進んでタスク３を単独で実行し（図１７）、実行しない場合には、タスク１〜３のいずれも実行しないので、図１４に戻ってステップＳ１６０５でＹＥＳとなり、処理が終了する。
【００９２】
次に、ステップＳ１７１２などで行われるタスク２の単独実行処理、ステップＳ１７１６などで行われるタスク３の単独実行処理、ステップＳ１７０８などで行われるタスク１とタスク２の並行実行処理、ステップＳ１７０６などで行われるタスク１とタスク３の並行実行処理、ステップＳ１７１４などで行われるタスク２とタスク３の並行実行処理、及び、ステップＳ１７０９などで行われるタスク１〜３の並行実行処理について順に説明する。
【００９３】
図１６は、タスク２の単独実行処理を説明するフローチャートである。まず、ステップＳ２００１でタスク２を最大処理単位に設定する。次に、ステップＳ２００２でタスク１を実行するかどうかを判断し、実行する場合にはステップＳ２００５でタスク１を最大処理単位に設定してから、ステップＳ２００７に進んでタスク１とタスク２を並行して実行する（図１８）。タスク１を実行しない場合にはステップＳ２００３でタスク３を実行するかどうかを判断し、実行する場合にはステップＳ２００６に進んで後述するタスク２とタスク３を並行して実行する（図２０）。タスク３を実行しない場合にはステップＳ２００４でタスク２が終了したかどうかを判断し、終了していなければステップＳ２００２に戻って上記処理を繰り返し、終了していれば図１４に戻り、ステップＳ１６０５でＹＥＳとなるので、処理が終了する。
【００９４】
図１７は、タスク３の単独実行処理を説明するフローチャートである。まず、ステップＳ２１０１でタスク３を最大処理単位に設定する。次に、ステップＳ２１０２でタスク１を実行するかどうかを判断し、実行する場合にはステップＳ２１０５でタスク１に最大処理単位を設定してから、ステップＳ２１０８に進んでタスク１とタスク３を並行して実行する（図１９）。タスク１を実行しない場合にはステップＳ２１０３でタスク２を実行するかどうかを判断し、実行する場合にはステップＳ２１０６に進んでタスク２に最大処理単位を設定してから、ステップＳ２１０７に進んで後述するタスク２とタスク３を並行して実行する（図２０）。タスク２を実行しない場合にはステップＳ２１０４でタスク３が終了したかどうかを判断し、終了していなければステップＳ２１０２に戻って上記処理を繰り返し、終了していれば図１４に戻り、ステップＳ１６０５でＹＥＳとなるので、処理が終了する。
【００９５】
図１８は、タスク１とタスク２の並行実行処理を説明するフローチャートである。まず、ステップＳ１８０１でタスク２を最小処理単位に設定する。次に、ステップＳ１８０２でタスク３を実行するかどうかを判断し、実行する場合にはステップＳ１８０６に進んでタスク１〜３を並行して実行する（図２１）。タスク３を実行しない場合にはステップＳ１８０３でタスク１が終了したかどうかを判断し、タスク１が終了していればステップＳ１８０５に進んでタスク２を単独で実行する（図１６）。タスク１が終了していなければステップＳ１８０４でタスク２が終了したかどうかを判断し、終了していなければステップＳ１８０２に戻って上記処理を繰り返し、終了していれば図１５に戻る。
【００９６】
図１９は、タスク１とタスク３の並行実行処理を説明するフローチャートである。まず、ステップＳ１９０１でタスク３を最小処理単位に設定する。次に、ステップＳ１９０２でタスク２を実行するかどうかを判断し、実行する場合にはステップＳ１９０６に進んでタスク１〜３を並行して実行する（図２１）。タスク２を実行しない場合にはステップＳ１９０３でタスク１が終了したかどうかを判断し、タスク１が終了していればステップＳ１９０５に進んでタスク３を単独で実行する（図１７）。タスク１が終了していなければステップＳ１９０４でタスク３が終了したかどうかを判断し、終了していなければステップＳ１９０２に戻って上記処理を繰り返し、終了していれば図１５に戻る。
【００９７】
図２０は、タスク２とタスク３の並行実行処理を説明するフローチャートである。まず、ステップＳ２２０１でタスク３を最小処理単位に設定する。次に、ステップＳ２２０２でタスク１を実行するかどうかを判断し、実行する場合にはステップＳ２２０５に進んでタスク１の処理単位を最大処理単位に設定した後、ステップＳ２２０７でタスク１〜３を並行して実行する（図２１）。タスク１を実行しない場合にはステップＳ２２０３でタスク２が終了したかどうかを判断し、タスク２が終了していればステップＳ２２０６に進んでタスク３を単独で実行する（図１７）。タスク２が終了していなければステップＳ２２０４でタスク３が終了したかどうかを判断し、終了していなければステップＳ２２０２に戻って上記処理を繰り返し、終了していれば図１６に戻る。
【００９８】
図２１は、タスク１〜３の並行実行処理を説明するフローチャートである。まず、ステップＳ２３０１で最小処理単位をタスク２とタスク３の優先度比で分割した分割処理単位Ａと分割処理単位Ｂを計算し、決定する。
最小処理単位＝分割処理単位Ａ＋分割処理単位Ｂ
分割処理単位Ａ：分割処理単位Ｂ＝タスク２の優先度：タスク３の優先度
【００９９】
次にステップＳ２３０２でタスク２の処理単位を分割処理単位Ａに設定し、同様にステップＳ２３０３でタスク３の処理単位を分割処理単位Ｂに設定する。
【０１００】
ステップＳ２３０４でタスク１が終了したかどうかを判断し、終了していればステップＳ２３０７でタスク２に最大処理単位を設定した後、ステップＳ２３０９に進んでタスク２とタスク３を並行して実行する（図２０）。タスク１が終了していなければステップＳ２３０５でタスク２が終了したかどうかを判断し、終了していれば、ステップＳ２３０８に進んでタスク１とタスク３を並行して実行する（図１９）。タスク２が終了していなければステップＳ２３０６でタスク３が終了したかどうかを判断し、終了していなければステップＳ２３０４に戻り、終了していればステップＳ２３１０に進んでタスク１とタスク２を並行して実行する（図１８）。
【０１０１】
このように処理単位を変更することで、タスクが２つ以上実行されているときには優先順位の低いタスクの処理単位を少なくし、優先順位の高いタスクをより高速に処理することができると共に、タスクが１つだけ実行されているときには優先順位に関わらず処理単位を大きくすることで、実行中のタスクを高速に処理することができる。
【０１０２】
次に、上記制御の一例として、記録媒体２００に非画像データの書き込みを行いながら、撮影から記録媒体２００への画像データ記録までの一連のシーケンスが行われている時に、さらに同じ記録媒体２００から画像データを読み込み、画像表示部２８に表示する場合のシーケンスを図２２に示す。
【０１０３】
まず、T１で制御タスクは非画像データ書き込みタスクに記録媒体２００へのデータ書き込みを指示する。このとき、非画像データ書き込み処理単位は、タスク３単独実行処理で最大処理単位に設定されている（図１７のステップＳ２１０１）。次に撮影が行われると、画像データ書き込みタスクに記録媒体２００への書き込みを指示する。このとき、画像データ書き込みタスクを非画像データ書き込みタスクが並行して実行することになるので（図１７のステップＳ２１０３でＹＥＳの状態）、画像データ書き込みタスクに優先的に記録媒体２００を専有させるためにＴ２で画像データ書き込み処理単位は最大処理単位に設定され（図１７のステップＳ２１０６）、次に画像データ書き込み処理と非画像データ書き込み処理の並行実行処理に移り（図２０）、Ｔ３で非画像データ書き込み処理単位を最小処理単位に変更する（図２０のステップＳ２２０１）。
【０１０４】
次に、モードダイアル６０により再生モードが指示されると（図２０のステップＳ２２０２でＹＥＳの状態）、Ｔ４で画像データ読み込みタスクに読み込みの指示を行う。このとき、画像データ書き込みタスクと非画像データ書き込みタスクと画像データ読み込みタスクとを並行して実行することになるので、読み込みタスクに優先的に記録媒体２００を専有させるため、画像データ読み込み処理単位は最大処理単位に設定される（図２０のステップＳ２２０５）。その後、処理は図２１に移り、ステップＳ２３０１で最小処理単位を画像データ書き込みタスクと非画像データ書き込みタスクのプライオリティ比で分割した値を計算し、T５、T６で、画像データ書き込みタスクおよび非画像データ書き込みタスクの処理単位を分割処理単位Ａと分割処理単位Ｂにそれぞれ設定する（図２１のステップＳ２３０２及びＳ２３０３）。このように非画像データ書き込み処理単位、画像データ書き込み処理単位、画像データ読み込み処理単位をそれぞれ制御することにより、最も優先順位の高い画像データ読み込みタスクが一度に読み込むサイズが最大となるので、長い時間記録媒体２００を専有し、読み込みを行うが、画像データ書き込みタスク、非画像データ書き込みタスクのサイズは最小以下のサイズであるために短い時間だけ記録媒体２００を専有し、書き込みを行うことになる。
【０１０５】
すべての画像データ読み込み処理が終了したら（図２１のステップＳ２３０４でＹＥＳの状態）、制御タスクはＴ７で画像データ書き込みタスクの処理単位を最大処理単位に設定してから（図２１のステップＳ２３０７）、画像データ書き込みタスクと非画像データ書き込みタスクの並行実行処理に移り（図２０）、Ｔ８で非画像データ書き込み処理単位を最小処理単位に設定する（図２０のステップＳ２２０１）。これにより画像データ書き込みタスクは一度に書き込むサイズが最大なので長い時間記録媒体２００を専有し、非画像データ書き込みタスクのサイズは最小サイズであるために短い時間だけ記録媒体２００を専有し、書き込みを行うことになる。
【０１０６】
すべての画像データ書き込み処理が終了したら（図２０のステップＳ２２０３でＹＥＳの状態）、非画像データ書き込みタスクの単独実行処理に移行し（図１７）、Ｔ９で制御タスクは非画像データ書き込みタスクの処理単位を最大処理単位に設定し（図１７のステップＳ２１０１）、データ書き込みタスクが長い時間記録媒体２００を専有し、より早く書き込みを行えるようにする。
【０１０７】
以上説明したように、本第２の実施形態によれば、画像データ書き込みタスクと非画像データ書き込みタスクと画像データ読み込みタスクとを並行して行う場合に、優先順位がより低い非画像データ書き込みタスク、画像データ書き込みタスクの処理単位を制御タスクが小さく設定することにより、書き込みタスクが記録媒体を専有し、書き込みを行う一回の時間を短くすることができ、優先的に処理したい画像データ読み込みタスクがより長い時間記録媒体を専有し、読み込みを行うことができる。また、優先順位の高い画像データ読み込みタスクが動いていない場合には、画像データ書き込みタスクの処理単位を最大、非画像データ書き込みタスクの処理単位を最小に切り替えることで、タスクの効率をあげることができる。さらに優先順位の高い画像データ読み込みタスクと画像データ書き込みタスクが動いていない場合には、非画像データ書き込みタスクの処理単位を最大に切り替えることでタスクの効率をあげることができる。
【０１０８】
なお、最大３つのタスクを並行処理する場合について説明してきたが、タスクが３つ以上ある場合でも、同様の処理により効率よく優先順位に基づいてタスクを実行することが可能となる。
【０１０９】
また、画像データ書き込みタスク、非画像データ書き込みタスク、及び画像データ読み込みタスクの優先順位も、上述した例に限るものではなく、使い勝手が良いように適宜変更しても良いことは言うまでもない。
【０１１０】
＜他の実施形態＞
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。ここでプログラムコードを記憶する記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、磁気テープ、不揮発性のメモリカード、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、光ディスク、光磁気ディスク、ＭＯなどが考えられる。また、ＬＡＮ（ローカル・エリア・ネットワーク）やＷＡＮ（ワイド・エリア・ネットワーク）などのコンピュータネットワークを、プログラムコードを供給するために用いることができる。
【０１１１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１２】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図３〜図７に示すフローチャートに対応するプログラムコード、または図３、図４、及び図１０〜図２１に示すフローチャートに対応するプログラムコードが格納されることになる。
【図１】
2010259122.tif 000003
【図２】
2010259122.tif 000004
【図３】
2010259122.tif 000005
【図４】
2010259122.tif 000006
【図５】
2010259122.tif 000007
【図６】
2010259122.tif 000008
【図７】
2010259122.tif 000009
【図８】
2010259122.tif 000010
【図９】
2010259122.tif 000011
【図１０】
2010259122.tif 000012
【図１１】
2010259122.tif 000013
【図１２】
2010259122.tif 000014
【図１３】
2010259122.tif 000015
【図１４】
2010259122.tif 000016
【図１５】
2010259122.tif 000017
【図１６】
2010259122.tif 000018
【図１７】
2010259122.tif 000019
【図１８】
2010259122.tif 000020
【図１９】
2010259122.tif 000021
【図２０】
2010259122.tif 000022
【図２１】
2010259122.tif 000023
【図２２】
2010259122.tif 000024