以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでするものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
本実施形態が適用する情報処理装置は、CPU(Central Processing Unit)とGPU(Graphics Processing Unit)を搭載したパーソナルコンピュータ(PC)であるものとして説明する。本実施形態のPCは、再生開始前に入力RAW動画データを構成するフレーム画像にデコード処理と現像処理を施して表示可能な画像データを生成し、メモリに格納する現像機能、再生開始後に現像結果を読み出して所定の時間間隔で連続して表示する再生機能を有する。本実施形態では、画質パラメータの設定によって変化する現像可能範囲と現像完了範囲を表示するPCの例を説明する。
図1は、本実施形態が適用するPC100のブロック構成図である。PC100は、CPU110、GPU120、RAM130、ROM140、記録媒体150、操作部160、表示部170、インタフェース(I/F)190、及び、これらを接続するバス180を有する。
CPU110は、PC100全体を制御すると共に、自身で生成した画像処理コマンドを実行し、画像処理を行うことができる。GPU120は、CPU110によって生成された画像処理コマンドを実行し、画像処理を行う。GPU120は内部にVRAM(Video Random Access Memory)を持ち、GPU120はデータ転送コマンドによってCPU110とのVRAM間でのデータの送受信を行うことができる。RAM130は、外部から供給されるプログラムやデータを一時記憶するメモリであり、プログラムの実行に伴って出力されるデータの一時的な格納領域としても用いられる。ROM140は、BIOS(Basic Input/Output Sytem)やブートプログラムや各種パラメータを記憶する、不揮発性メモリである。ROM140は、例えばフラッシュROMであり、制御プログラムを書き換え可能な構成となっている。
記録媒体150は、PC100が読み書き可能な記録媒体である。例えばコンピュータが備える内蔵メモリや、コンピュータに着脱可能に接続されるメモリカードやHDD、CD-ROM、MOディスク、光ディスク、光磁気ディスクなどの電子データを記録することができるような媒体等を意味する。記録媒体150には、動画データなどのデジタルデータがファイルとして格納されている。
操作部160は、キーボード、マウス等のポインティングデバイスで構成される。ユーザは、この操作部160を介した操作により、PC100に対して各種指示を入力できる。
表示部170は、PC100に組み込まれた液晶ディスプレイ等の表示部であり、例えばアプリケーション200のGUI(Graphical User Interface)画面や、画像処理の結果などを表示する。
インタフェース(I/F)190は、外部装置と通信するためのインタフェースであり、ネットワークインタフェース、USBインタフェース等である。実施形態では、このインタフェース190を介して、外部装置(ビデオカメラ等)から入力したRAW動画像データが記録媒体150に格納されるものとしている。
バス180は、PC100における上記各要素間の制御信号やデータ信号の伝送路である。
上記構成において、PC100の電源がONになると、CPU110はROM140に格納されたブートプログラムを実行して、OS(Operating System)を記録媒体150からRAM130にロードし、OSを実行する。そして、CPU110は、OSの制御下で、記録媒体150から、後述するRAW動画像の再生に係るアプリケーションプログラム200をRAM130にロードし実行することで、PC100はRAW動画像の再生装置として機能することになる。
図2は、CPU110がアプリケーション200を実行している際の表示部170に表示するグラフィカルユーザインタフェース(GUI)の例を示している。
図示のGUIにて、参照符号210は、記録媒体150から読み込まれた動画データの一覧を表示する動画データ一覧表示エリアである。参照符号211は、表示エリア210内の単一の動画データをアイコンで表したもので、ユーザは操作部160のマウスに連動するカーソルをアイコン211に移動して、マウスのクリック操作を行うことで、画像処理の対象となる入力動画データを選択することができる。なお、説明を簡単にするため、上記のユーザの操作を、以降、ユーザがアイコン211をクリックする、と表現する。
参照符号220は、ユーザによって選択された入力動画データに画像処理を行った結果を再生表示するプレビューエリアである。参照符号230は、ユーザが再生制御を行うための、再生コントロール部である。ユーザは再生コントロール部230の再生/停止ボタンをクリックすることで、動画再生機能による画像処理の開始や中止を指示することができる。なお、再生/停止ボタンは、動画を再生している状態では再生の一時停止、再生していない状態では再生開始を指示する機能を有する。また、再生コントロール部230は、再生/停止ボタンの他に、再生位置を1コマ前または後ろへ移動するコマ送りボタンや、動画再生の開始・終了位置へ移動するジャンプボタンなどを有する。
参照符号240は、入力動画データが持つ時間軸における現在の再生位置などを示すシークバー部である。このシークバー部240の左端には動画の開始を示すためのタイマ値“00:00:00:00(時、分、秒、100分の1秒の値を示している)”が表示され、右端には選択した動画像の終了するタイマ値“00:00:30:00”が表示されている。この表示から、ユーザは、アイコン211が示すファイルが30秒の動画像であるRAW動画像ファイルであることを把握できる。なお、時間を表示する代わりに、シークバー部240の左端にフレーム番号“1”、右端に最終フレームの番号(フレーム総数)を表示しても構わない。
参照符号241、242はそれぞれ入力動画データにおける動画の再生範囲設定部と機能するアイコンであり、アイコン241は再生範囲の先頭を示し、アイコン242は再生範囲の後端を示すために用いられる。これらのアイコンは、ユーザがドラッグ&ドロップを行うことによって、その位置を変更することができる。
参照符号243は、入力動画データにおける現在の再生位置設定部として機能するアイコンである。再生位置アイコン243が示すフレームに対して画像処理が施された結果がプレビューエリア220に表示されている。再生位置アイコン243の位置は、ユーザがドラッグ&ドロップを行うか、再生コントロール部230のコマ送りボタンやジャンプボタンをクリックすることで変更することができる。ユーザが再生コントロール部230の再生ボタンをクリックすると、再生位置アイコン243が示すフレームを開始点として入力動画データの再生が行われる。ユーザが新規にRAW動画像ファイルを選択した場合、アイコン241、243は初期位置としてシークバー部240の左端に位置するものとする。また、アイコン242は、初期位置としてシークバー部240の右端に位置しているものとする。
参照符号244は、入力動画データにおいて現像結果の生成が完了した範囲(現像完了範囲)を示し、参照符号245は入力動画データにおける現像が可能な範囲(現像処理可能範囲)を示す。これらについての詳細は後述する。
参照符号250は、ユーザが画像処理の画質レベルを特定するための画質パラメータを選択する画質設定部である。ユーザが画質設定部250で選択した画質パラメータに応じた内容の画像処理が実行される。本実施形態における画質パラメータは、「High」、「Middle」、「Low」の中から選択可能である。実施形態では、画質パラメータは解像度を表すものとする。例えば、RAW動画像ファイルが示す1フレームの画素数を間引き無しに表示することをHIGH,水平、垂直とも1/2に間引きすることをMiddle,同1/4に間引きすることをLowとする。なお、画質の違いを、1画素当たりのビット数で表しても良く、画素数とビット数の組み合わせで画質を定義しても良い。
参照符号251は、現像結果(現像処理済みの画像データ)の保存に使用するバッファメモリ量をユーザが設定するための、メモリ量設定部である。設定可能な値の上限は、アプリケーション200を実行している環境における、RAM130のアプリケーション200に割り当て可能な容量である。なお、メモリ量設定部251にメモリ量を設定した場合(ユーザがその値を変更した場合)、その値をOSのレジストリに登録しておき、次回アプリケーション200を起動した際にはその値をメモリ量設定部251に読み出すようにしても良い。
参照符号260は、動画再生中に色味に関する画像処理を実施するための一般的なパラメータ設定部であり、本実施形態ではスライダバーによる「明るさ」、「ホワイトバランス」の調整と、プルダウンによる「ガンマ変換」「色域変換」の切り替え操作が可能である。この他、アプリケーション200は、動画再生に関する一般的な各機能を実行するための操作部を有するが、ここでは図示しない。
図3は、記録媒体150に格納されているRAW動画データ(ファイル)300の概念図である。
参照符号301はヘッダ部であり、ここに動画の属性情報が記録されている。具体的には、クリップ名、撮影日時情報、タイムコード、動画を構成するフレーム画像の画像サイズ(水平、垂直方向の画素数)、フレームレート、カメラ機種名、色温度、絞り値、ISO感度、そして、各フレームの符号化データの先頭アドレス等の付加情報である。
参照符号302はフレーム画像データ部(もしくはペイロード部)であり、撮影された動画を構成するフレーム画像の内容が、撮影されたタイミングが早い順に記録されている。図示の場合、画像データ1、2、…NのトータルでN個のRAWフレーム画像が、RAW画像データ300に格納されていることを示している。本実施形態では、図示の画像データ1、2、…は、RAW画像データ(ベイヤ配列の画像データ)をエンコードして得た符号化データであるものとし、各フレームをデコードした後に現像処理を施すことによって、プレビューなどが可能な1画素RGBで表現された画像データが生成されるものとする。
次に、本実施形態に係る動画再生の動作について、図4~10を参照し、説明する。なお本実施形態では、動画再生を行うアプリケーションプログラム200は当初は記録媒体150に格納されており、OSの制御下で記録媒体150からRAM130にロードされ、実行されるものとする。なお、このアプリケーションプログラム200は、ROM140に格納されていても構わない。また同様に、ネットワーク上のサーバにプログラムが格納されており、インタフェース190を介してRAM130にダウンロードして実行する形態でも構わない。
図4は、図3で説明したRAW動画データ300に対して、RAW動画再生を行う際のアプリケーションプログラム200の動作手順を示すフローチャートである。なお、アプリケーションプログラム200は、RAW動画データ300とは異なる一般的な形式の動画ファイルに対して、一般的な動画再生機能を有してもよい。ここではRAW動画再生処理についてのみ説明する。
S400にて、CPU110は、ユーザからの操作を受け付け、操作があったかどうかを判断する。CPU110は、ユーザからの操作があったと判断した場合は処理をS401に進め、操作がなかったと判断した場合は処理をS400に戻し、操作を待つ。
S401にて、CPU110は、ユーザによる再生対象のRAW画像データの変更があったか、ユーザのメモリ量設定部251の操作によってメモリ量が変更されたか、及び、ユーザの画質設定部250の操作によって画質パラメータが変更されたかを判定する。CPU110は、いずれかの変更があると判定した場合には処理をS405に進め、いずれも変更がないと判定した場合は処理をS402に進める。本実施形態においては、入力動画データ変更直後の再生位置は先頭フレームとする。なお、ユーザが最後に設定した再生位置を動画データごとに記憶し、次回選択時にはその位置を用いる構成でもよい。
S402にて、CPU110は、ユーザによって再生位置アイコン243が変更されたか、再生開始位置アイコン241または終了位置アイコン242が変更されたか、または再生/停止ボタンの押下によって再生の一時停止が指示されたかを判定する。CPU110は、いずれかの変更があると判定した場合は処理をS406に進め、いずれも変更がないと判定した場合は処理をS403へ進める。
S403にて、CPU110は、ユーザによるパラメータ設定部260の操作によって画像処理パラメータが変更されたかを判定する。CPU110が、ユーザによる画像処理パラメータが変更されたと判定した場合は、処理をS407へ進め、画像処理パラメータの変更がないと判定した場合は処理をS404に進める。
S404にて、CPU110は、ユーザによる再生/停止ボタンの押下によって再生開始が指示されたか否かを判定する。CPU110は、ユーザによる再生開始が指示されたと判定した場合は処理をS409へ進め、その指示が無いと判定した場合は処理をS411に進める。
S405にて、CPU110は、現像可能枚数算出処理を行う(詳細は後述)。S406にて、CPU110は、現像可能範囲決定処理を行う(詳細は後述)。S407にて、CPU110は、S410で開始した再生処理を中断する。S408にて、CPU110は、現像処理を開始し、処理をS400に戻す(詳細は後述する)。
S409にて、CPU110は、S408で開始した現像処理を中断する。S410にて、CPU110は、再生処理を開始し、処理をS400に戻す(詳細は後述)。
S411にて、CPU110は、ユーザによってアプリケーション終了操作がされたかを判定する。CPU110は、ユーザによるアプリケーション終了操作があったと判定した場合は、本RAW動画再生処理を終了し、アプリケーション終了操作がなかったと判定した場合は処理をS400に戻す。
なお、RAW動画再生処理開始後、最初にS401で入力動画データが選択されるまでは、再生コントロール部230などをグレーアウトし、S402~S404の判定を常に偽とするような構成でもよい。あるいは、動画データ一覧表示エリア210に表示されている動画データのうち、表示位置、クリップ名、撮影日時などによる順番が先頭または末尾になる動画データや、前回画像処理の対象とした動画データなどを、初期の入力動画データとしてあらかじめ選択しておいてもよい。
次に、図5のフローチャートを用いて、図4のステップS405における現像可能枚数の算出処理について説明する。本実施形態では、画質設定部250で設定可能なすべての画質パラメータについて現像可能枚数を算出する。
S500でCPU110は、RAM130で現像結果の保存に使用できる領域のサイズ(メモリ量設定部251に設定された値)を取得する。以降、この現像結果の保存領域のサイズを、変数Mを用いてMバイトと表現する。
S501でCPU110は、画質設定部250で設定可能なすべての画質パラメータについて、1フレーム画像あたりの現像結果のサイズを取得する。現像結果のサイズは画質パラメータによって異なる。画質パラメータは例えば、解像度、ビット深度、圧縮率、縮小率などのうち少なくとも一つを指定するものである。本実施形態では、先に説明したように、画質パラメータは元データの解像度に対する縮小率を指定するものであり、「High」は1倍、「Middle」は水平、垂直とも1/2倍、「Low」は水平、垂直とも1/4倍とする。つまり、現像結果のサイズ(画素数)は画質パラメータが「High」に設定されている場合が最も大きく、「Middle」が「High」の1/4、「Low」が「High」の1/16で最も小さくなる。「High」「Middle」「Low」の各画質パラメータに従って現像処理して得た1フレーム当たりのサイズを、それぞれNH、NM、NLバイトとする。
S502でCPU110は、「High」「Middle」「Low」の各画質パラメータにおける現像可能枚数FH、FM、FLを以下の式で算出する。現像可能枚数とは、RAM130の現像結果保存領域に保存可能な現像結果の枚数である。
FH=FLOOR(M/NH)
FM=FLOOR(M/NM)
FL=FLOOR(M/NL)
ここで、FLOOR(X)は、実数Xを超えない最大整数を返す床関数である。
次に、図6のフローチャートを用いて、図4のS406における現像可能範囲決定処理について説明する。ここで、入力動画における再生位置243のフレーム番号をFNow、再生範囲の再生開始位置241のフレーム番号をFSTART、再生終了位置242のフレーム番号をFENDとする。
S600にて、CPU110は、各画質パラメータについて、現像処理を行うフレームの範囲を求める。本実施形態では、再生位置243を起点とし、現像可能枚数のフレームに対して順に現像結果を生成する。つまり、現像処理を行う範囲は、ある画質パラメータにおける現像可能枚数をFCANとすると、FNOW~FNOW+FCANであると求められる。ただし、FNOW+FCAN>FENDとなる場合、再生範囲外となる(FNOW+FCAN)-FENDフレーム分は、FSTART以降のフレームに割り当てる。また、FCAN≧FSTART-FENDとなる場合には、再生範囲の全フレームが現像可能範囲となる。
S601でCPU110は、各画質パラメータについて、S600で求めた現像可能範囲に基づいて現像可能表示を行う。現像可能表示とは、シークバー部240上で、入力動画データの現像処理が可能な範囲に該当する部分を、それ以外の部分と識別可能(実施形態では色)で、且つ、強調表示する処理である。現像可能表示は、画質設定部250で設定可能なすべての画質パラメータについて行ってもよいし、一部の画質パラメータのみに対して行ってもよい。表示方法の詳細は後述する。
次に、図7のフローチャートを用いて、図4のS408における現像処理について説明する。CPU110は、現像可能範囲決定処理で求めた、画質設定部250で選択状態の画質パラメータに応じたフレーム単位の現像処理を、再生位置243から順に実行する。
S700にて、CPU110は、RAM130に保存されている既存の現像結果のうち、不要な部分を削除しメモリを開放する。既存の現像結果を生成した後に、入力動画データ、画質パラメータ、画像処理パラメータが変更されていれば、すべての既存の現像結果を削除する。それ以外の場合、再生位置、再生範囲、メモリサイズが変更された場合は、RAM130に保存されている既存の現像結果のうち、図6のS600で求めた現像可能範囲に含まれるものは残し、そうでない現像結果を削除する。現像結果の削除については、RAM130から削除する処理を行ってもよいし、削除対象の現像結果のフレームデータが保存されているRAM130の領域を解放する処理を行うことにより、現像結果のフレームデータを破棄するようにしてもよい。
S701にて、CPU110は、変数FにFNOWを代入する。
S702にて、CPU110は、入力動画データのF番目のフレームに対して生成された現像結果がRAM130の現像結果保存領域に存在するか否かを判定する。CPU119は、F番目のフレームに対する現像結果がRAM130の現像結果保存領域に存在すると判定した場合、処理をS707に移行し、存在しないと判定した場合は処理をS703に進める。つまり、図6のS600で求めた現像可能範囲に含まれており、現像結果がRAM13に残されているフレームの場合には、S703、S704での現像処理は行わない。そして、現像可能範囲に含まれているが、現像結果がRAM13に残されていないフレームの場合には、S703以降の現像処理のための処理を実行する。
S703でCPU110は、入力動画データのF番目のフレームのデータを読み込む。S704にて、CPU110は、読み込んだフレームの現像処理を行う。現像処理は例えば、フレーム画像が圧縮画像の場合のデコード処理、フレーム画像がRAW画像の場合のデモザイク処理、ノイズ除去、偽色除去などの画質を改善するための処理、周辺光量補正、色収差補正などの補正処理、明るさ、ホワイトバランス、ガンマ、色域などを設定された内容に調整する調整処理、画像表示領域であるプレビューエリア220のサイズにリサイズするリサイズ処理などである。現像処理はCPU110またはGPU120によって実行されるが、処理内容や画像領域を分割し、CPU110とGPU120に分担させてもよい。現像処理の詳細なアルゴリズムは本特許の本質ではないので特に説明しない。現像処理の結果は、画質設定部250で選択された画質パラメータに応じたサイズの現像結果として出力される。
S705にて、CPU110は、現像結果をRAM130の現像結果保存領域に格納する。S706にて、CPU110は、入力動画データのF番目のフレームの現像完了表示をONにする。表示方法の詳細は後述する。
S707でCPU110は、変数Fに“1”を加算する。そして、S708にて、CPU110は、変数FがFEND以下であるか否かを判定する。変数FがFEND以下である場合、CPU110は処理をS710に進め、そうでない場合には処理をS709に進める。
S709にて、CPU110は、変数FにFSTARTを代入する。S710にて、CPU110は、図6のS600で求めた現像可能範囲のすべてのフレームの現像処理を完了したかを判定する。CPU110は、現像可能範囲のすべてのフレームの現像処理が完了したと判定した場合、この現像処理を終了する。また、CPU110は、現像可能範囲内に未現像のフレームがあると判定した場合は、処理をS702に戻す。
次に、図8のフローチャートを用いて、図4のS410における再生処理について説明する。本実施形態では、現像結果が存在しないフレームを再生しようとした場合には、1枚のフレームの現像処理とプレビュー表示を順次行うことで、プレビュー表示の速度は下がるがほぼ一定時間間隔で行う例を説明する。
S800にて、CPU110は、変数FにFNOWを代入する。そして、S801にて、CPU110は、入力動画データの変数FNOWが示すフレームの現像処理で得た画像データがRAM130の現像結果保存領域に存在するか否かを判定する。CPU110は、変数Fが示すフレームの画像データがRAM130の現像結果保存領域に存在すると判定した場合には処理をS802に進め、存在しないと判定した場合は処理をS803に進める。
S802にて、CPU110は、入力動画データの変数Fが示すフレームの現像処理結果である画像データを、RAM130の現像結果保存領域から読み込む。
S803にて、CPU110は、入力動画データから、変数Fが示すフレームのデータを読み込む。そして、S804にて、CPU110は、読み込んだフレームのデータの現像処理を行う。現像処理は、図7のS704と同様であるため、ここでの説明は省略する。
S805にて、CPU110は、S802で読み込んだ現像結果の画像データ、または、S804で生成した現像結果で得た画像データを、プレビューエリア220に表示する。
S806にて、CPU110は変数Fに“1”を加算する。そして、S807にて、CPU110は、変数FがFEND以下であるか否かを判定する。CPU110は、変数FがFEND以下であると判定した場合、処理をS801に戻し、そうでない場合はこの再生処理を終了する。
図9(a)乃至(c)は、図2のGUIにおいて、画質設定部250で選択状態にある画質パラメータのみについて、図6のS601の現像可能表示、図7のS706の現像完了表示を行った場合の詳細な表示構成を説明するための図である。
図9(a)は、FNOW+FCAN≦FENDである場合の表示例である。シークバー部900上では、現像可能範囲に該当する領域905(FNOW~FNOW+FCAN)が薄い灰色で表示され、現像完了範囲に該当する領域904が濃い灰色で表示される。
図9(c)はFCAN≧FSEND-FSTARTである場合の表示例である。シークバー部920上では、現像可能範囲に該当する部分921すなわち再生範囲の全体が薄い灰色で表示される。
図9(b)はそれ以外の場合の表示例である。シークバー部910上では、現像可能範囲に該当する部分911(FSTART~FSTART+(FNOW+FCAN)-FEND)と、部分912(FNOW~FEND)が薄い灰色で表示される。
図4のS410の再生処理中は、現像結果が存在するフレーム、すなわち現像完了範囲(濃い灰色)内では読み込み後すぐにプレビュー表示を行うことができるため、スムーズに再生を行うことができる。一方、現像結果が存在しないフレーム、すなわち濃い灰色以外の色で表示された範囲では図8のS804の現像処理に時間がかかるため、表示に遅延が生じ、再生品質が大幅に低下することになる。また、図4のS408の現像処理が進行するにつれて、薄い灰色の部分が濃い灰色で塗り替えられていき、すべて塗り替えられると表示が変化しなくなる。つまり、シークバー部の表示は、再生処理を開始した時点では濃い灰色で表示された範囲でのみ高い再生品質で再生することができ、薄い灰色の範囲はある程度の時間待機した後で高い再生品質で再生できるようになるということを示している。
なお、上記では、現像可能表示および現像完了表示の領域を色(灰色の濃淡)で表現したが、これ以外の方法で実現してもよい。また、現像可能表示はユーザが表示と非表示を切り替えることができる構成でもよい。例えば現像可能表示の有無を切り替えるチェックボックスのGUIや、キーボードの特定のキーを押下中にのみ表示を行うような機能を設けてもよい。
図10は、図2のGUIにおいて、画質設定部250で設定可能なすべての画質パラメータに対して、図6のS601の現像可能表示、図7のS706の現像完了表示を行った場合の詳細な表示構成を説明するための図である。
図10(a)は、どの画質パラメータでも再生範囲の全フレームが現像可能範囲とならない場合の表示例である。シークバー部1000上では、画質パラメータが「High」の場合の現像可能範囲1001、同「Middle」の場合の現像可能範囲1002、同「LOW」の場合の現像可能範囲1003、1004がそれぞれ異なる色で表示され、それぞれの終点位置には対応する画質パラメータの内容を示すアイコンが付加される。また、画質設定部250で選択状態にある画質パラメータのアイコンは、他のアイコンと区別するために異なる色で表示される。
図10(b)および図10(c)は、画質パラメータ「Middle」「Low」で再生範囲の全フレームが再生可能である場合の表示例である。シークバー部1010および1020上では、画質パラメータ「Middle」「Low」の現像可能範囲1012および1022は同色で表示する。さらに、どの画質パラメータであれば再生範囲の全フレームが現像可能となるかを表示することで、ユーザの画質パラメータの選択を支援することができる。例えば図10(b)は、画質設定メニューである画質設定部1060のドロップダウンリストを展開時、再生範囲の全フレームが再生可能な画質パラメータの行は他と異なる色で強調表示する例である。そして、図10(c)は、画質設定部1070のドロップダウンリストを展開時、再生範囲の全フレームが再生可能な最高の画質パラメータの行のみ、推奨されるパラメータである旨を表す文字列(“recommended”)を追加することで強調表示する例である。推奨されるパラメータは、再生範囲の全フレームが再生可能な画質パラメータのうち、画質が高いものとするとよい。あるいは、入力動画データの全が再生可能な画質パラメータのうち、画質が高いものを推奨されるパラメータとしてもよい。
各画質パラメータに対する現像可能表示は、シークバー部の表示色を変える以外の方法で実現してもよい。例えば、終点のみをアイコンで示す構成や、シークバー部の上部または下部に別のGUIを設けて表示する構成でもよい。あるいは、図10(b)の参照符号1013のように、各画質パラメータについて再生範囲全体を現像可能かどうかだけをシークバー部付近に表示する構成でもよい。また、再生範囲だけではなく、入力動画データ全体が現像可能かを表示する構成にしてもよい。再生範囲が設定されている場合は再生範囲全体が現像可能かを表示し、再生範囲が設定されていない場合は入力画像全体が現像可能かを表示するようにしてもよい。また、シークバー部において、入力動画データの終端部に対応する右側の端部に、推奨されるパラメータを表示することにより、入力動画データの全フレームが再生可能な推奨画質パラメータをユーザに通知してもよい。あるいは、シークバー部の右側の端部等の特定の部分をマウスオーバー操作した場合に、推奨される画質パラメータをポップアップ表示するようにしてもよい。
また、画質設定部250で選択状態ではない画質パラメータのうち、一部のみについて現像可能表示をする構成でもよい。例えば、画質設定部250で選択状態の画質パラメータのひとつ上またはひとつ下の画質パラメータのみについて表示する構成や、再生範囲の全フレームが再生可能な最高の画質パラメータのみについて表示する構成でもよい。
また、画質設定部250で選択状態ではない画質パラメータについては、ユーザが所定の操作をしている間または直後のみ現像可能表示を行う構成でもよい。例えば画質設定部250やシークバー部240を操作している間や、その直後5秒間のみ表示を行うような機能を設けてもよい。
このように、本実施形態によれば、再生開始前にメモリに保存可能な枚数だけ入力動画ファイルに対して現像結果を生成して保存し、再生時には現像結果の読み出しと表示のみを行うことで、現像結果が生成済みの範囲について再生品質を向上することができる。また、現像結果の生成が完了した範囲と生成可能な範囲を前もって表示することで、現時点で高い再生品質で再生できる範囲と、待機後に高い再生品質で再生できるようになる範囲をユーザに提示することができる。さらに、画質パラメータごとに現像結果の生成が可能な範囲を表示することで、どの画質パラメータを選択すれば、所望の再生範囲が高い再生品質で再生できるようになるかをユーザに提示することができる。そのため、ユーザは画質パラメータの変更と再生範囲の確認を繰り返し行う必要がなく、一度の画質パラメータの変更で目的の再生を行うことが可能となる。
[第2の実施形態]
上記第1の実施形態では、現像完了範囲と現像可能範囲を、画質パラメータごとに算出し表示するPCの例を説明した。本実施形態では、指定された再生範囲が現像可能であるかを、使用可能なメモリ量に基づいて通知し、ユーザがメモリ量を変更するかどうか選択できるPCの例を説明する。また、第1の実施形態では、再生位置から後ろのフレームを順に現像するPCの例を説明した。本第2の実施形態では、ユーザの操作状態によって現像するフレームの範囲と順番を変更する例も説明する。
本第2の実施形態におけるPCの構成を示すブロック図、アプリケーション200のGUI構成図、記録媒体150に格納されているRAW動画データの概念図は、それぞれ第1の実施形態の図1~3と同じであるとし、その説明は省略する。
以下、本第2の実施形態に係る動画再生の動作を、図11乃至図16を参照し説明する。
図11は、図3で説明したRAW動画データ300に対して、RAW動画再生を行う際のアプリケーション200の処理手順を示すフローチャートである。
S1100、S1101はそれぞれ、図4のS400、S401と同様の処理を行うことができるため、ここでの説明は省略する。
S1102にて、CPU110は、ユーザによって再生位置243が変更されたか、再生範囲(再生開始位置241または終了位置242)が変更されたか、再生/停止ボタンの押下によって再生の一時停止が指示されたかを判定する。CPU110は、いずれかに該当する操作があったと判定した場合、処理をS1105に進め、上記のいずれの操作もなかったと判定した場合は処理をS1103に進める。
S1103、S1104はそれぞれ、図4のS403、S404と同様の処理を行うことができるため、説明を省略する。
S1105にて、CPU110は、必要メモリ量通知処理を行う(詳細後述)。
S1106~S1111はそれぞれ、図4のS406~S411と同様の処理を行うことができるため、説明を省略する。
次に、図12のフローチャートを参照して、図11のS1105における必要メモリ量通知処理について説明する。
S1200にて、CPU110は、現像可能枚数算出処理を行う。現像可能枚数算出処理は、図5と同様となるので説明を省略する。画質設定部250で選択状態の画質パラメータについて算出した現像可能枚数をFCANとする。
S1201にて、CPU110は、再生範囲の再生開始位置241と終了位置242の間に含まれる再生範囲のフレーム数FNEEDとFCANとを比較する。そして、CPU110は、FNEEDがFCANよりも大きいと判定した場合には処理をS1202に進め、FNEEDがFCAN以下であると判定した場合、本処理を終了する。
S1202にて、CPU110は、必要メモリ量MNEEDを以下の式で算出する。ここで変数Nは、画質設定部250で選択状態の画質パラメータにおける、1フレーム画像当たりの現像結果の出力サイズである。
MNEED=N×FNEED
S1203にて、CPU110は、必要メモリ量の通知(表示)し、ユーザの操作を受け付ける。この表示方法の詳細は後述する。
S1204にて、CPU110は、ユーザによるメモリ量変更指示があったか否かを判定する。CPU110は、ユーザによるメモリ量変更指示があったと判定した場合は処理をS1205に進め、そうでない場合は本処理を終了する。
S1205にて、CPU110は、メモリ量をS1203でユーザによって指示された値に変更する。そして、S1206にて、CPU110は、現像可能枚数算出処理を行い、FCANを再計算する。
図13(a),(b)は、図12のステップS1203の必要メモリ量通知を行った場合の詳細な表示例を示す図である。同図(a)は必要メモリ量MNEEDが設定可能な上限値以下である場合の表示例である。メモリ量設定部251で設定されている現在のメモリ量と、必要メモリ量MNEEDを表示し、ユーザが押下できるボタンを3つ表示する。ボタンに表記されるメッセージはたとえば次の通りである。
・「設定を変更する」
・「このクリップのみ変更する」
・「いいえ」
それぞれのボタンが押下された場合のアプリケーション200の動作は次の通りである。
「設定を変更する」の表記のボタンの押下された場合、CPU110は、メモリ量設定部251で設定されるメモリ量をMNEEDに変更する。「このクリップのみ変更する」の表記のボタンが押下された場合、CPU110は、一時的にメモリ量をMNEEDに変更し、入力動画データが変更されたタイミング、もしくは、アプリケーションが再起動した際に元の値に戻す。「いいえ」の表記のボタンが押下された場合、CPU110は、メモリ量設定部251に設定されたメモリ量を変更しない。
図13(b)は必要メモリ量MNEEDが設定可能な上限値を超える場合の表示例である。メモリ量設定部251で設定されているメモリ量、必要メモリ量MNEED、設定可能なメモリ量の上限値MMAXを表示し、ユーザが押下できるボタンを3つ表示する。ボタンに表記されるメッセージはたとえば次の通りである。
・「設定を変更する」
・「このクリップのみ変更する」
・「いいえ」
それぞれのボタンが押下された場合のアプリケーション200の動作は次の通りである。
「設定を変更する」の表記のボタンの押下された場合、CPU110は、メモリ量設定部251で設定されるメモリ量をMMAXに変更する。「このクリップのみ変更する」の表記のボタンが押下された場合、CPU110は、一時的にメモリ量をMMAXに変更し、入力動画データが変更されたタイミング、もしくは、アプリケーションが再起動した際に元の値に戻す。「いいえ」の表記のボタンが押下された場合、CPU110は、メモリ量設定部251に設定されたメモリ量を変更しない。
図11のS1106における現像可能範囲決定処理は、図6と同様となるので説明を省略する。ただし、本実施形態では、S601において現像可能範囲を以下のように求める。
再生範囲の再生開始位置241及び終了位置242のどちらかが確定していない場合には、再生位置243の前のFMARGIN枚のフレームと、再生位置243以降のフレームに対して現像処理を行うとする。つまり、現像処理を行う範囲は、FNOW-FMARGIN~FNOW+(FCAN-FMARGIN)で求められる。
再生範囲の再生開始位置241及び終了位置242の両方が確定している場合には、再生開始位置241の後のFMARGIN枚のフレームと、再生位置243以降のフレームに対して現像処理を行うものとする。つまり、現像処理を行う範囲は、FSTART~FSTART+FMARGINと、FNOW~FNOW+(FCAN-FMARGIN)で求められる。
終点が再生範囲外となった分については第1の実施形態と同様にFSTART以降のフレームに割り当てる。
本第2の実施形態において、FMARGINは入力動画データの3秒分に含まれるフレーム数とする。ただし、FMARGINは、FCANの一定の比率となるように設定してもよいし、入力動画データを構成するフレーム数によって決定してもよい。また、マウスポインタの位置などに応じてFMARGINを変更する構成でもよい。例えば、再生範囲の再生開始位置241及び終了位置242の両方が確定している場合で、マウスポインタが再生開始ボタン上にあれば再生位置243以降のフレームをより多く(FMARGINを小さく)、再生開始位置へのジャンプボタン上にあれば再生開始位置241以降のフレームをより多く(FMARGINを大きく)する例が考えられる。
また、本第2の実施形態において、再生範囲の再生開始位置241及び終了位置242が確定しているか否かの判定方法は以下の通りである。入力動画データが選択された直後、再生開始位置241及び終了位置242の初期位置はそれぞれ入力動画データの先頭フレームと最終フレームに設定されるものとする。再生開始位置241と終了位置242の両方が、ユーザ操作によって初期位置以外のフレームに設定されてから一定時間経過後に、確定されたと判定する。もちろん他の判定方法を用いてもよい。
ここで説明したように現像処理を行う範囲を決定することで、以下のような効果が期待される。まず再生開始位置241及び終了位置242が確定していない間は、ユーザがシークバー部240上の狭い範囲で再生位置243の移動と再生開始を繰り返しながら適切なフレームを探す操作を行うことが考えられる。このような操作が行われる場合には、再生位置243の前後に対して現像結果を生成しておくことによって、ユーザの操作後すぐにプレビュー表示を行うことができる。再生開始位置241及び終了位置242が確定した後は、ユーザは再生位置243から再生開始するか、再生開始位置241へジャンプしてから再生開始して入力動画データの確認を行うことが考えられるため、この二つの位置の直後に対して現像結果を生成することによって同様の効果が得られる。
次に、図14のフローチャートを参照して、図11におけるS1108の現像処理を説明する。現像処理では、現像可能範囲決定処理で求めた、画質設定部250で選択状態の画質パラメータに対する現像可能範囲のフレームを現像する。再生開始位置241及び終了位置242が確定している場合には、再生位置243の前後を交互に現像し、そうでない場合には再生位置243以降と再生開始位置241以降を交互に現像する。
S1400~S1409はそれぞれ図7のS700~S709と同様の処理であるためその説明は省略し、S1410以降について説明する。
S1410にて、CPU110は、再生範囲(再生開始位置241及び終了位置242)が確定しているか否かを判定する。CPU110は、再生範囲が確定していないと判定した場合は処理をS1411へ、確定していると判定した場合は処理をS1419に進める。
S1411でCPU110は、変数F’にFNOW-1を代入する。そして、S1412にて、CPU110は、変数F’とFNOW-FMARGINとを比較する。CPU110は、変数F’がFNOW-FMARGINより小さいと判定した場合、処理をS1427に進め、そうでない場合は処理をS1413に進める。
S1413にて、CPU110は、入力動画データのF’番目のフレームの現像結果である画像データがRAM130の現像結果保存領域に存在するか否かを判定する。CPU110は、F’番目のフレームの現像結果の画像データがRAM130の現像結果保存領域に存在すると判定した場合は、処理をS1418に進め、存在しないと判定した場合は処理をS1414に進める。
S1414にて、CPU110は、入力動画データのF’番目のフレームのデータを読み込む。そして、S1415にて、CPU110は、S1414にて読み込んだフレームのデータの現像処理を行い、F’番目の画像データを生成する。この現像処理はS1404と同じであるので、その説明は省略する。S1416にて、CPU110は、現像結果の画像データをRAM130の現像結果保存領域に格納する。S1417にて、CPU110は、入力動画データのF’番目のフレームの現像完了表示をONにする。この表示方法の詳細は後述する。S1418にて、CPU110は、変数F’から“1”を減算する。
S1419にて、CPU110は、変数F’にFSTARTを代入する。そして、S1420にて、CPU110は、変数F’とFSTART+FMARGINとを比較する。CPU110は、変数F’がFSTART+FMARGINよりも大きいと判定した場合は処理をS1427へ進め、そうでない場合には処理をS1421へ進める。
S1421にて、CPU110は、入力動画データのF’番目のフレームの現像結果である画像データがRAM130の現像結果保存領域に存在するか否かを判定する。CPU110は、F’番目のフレームの画像データがRAM130の現像結果保存領域に存在すると判定した場合は処理をS1426に進め、そうでない場合には処理をS1422に進める。
S1422~S1425のそれぞれは、S1414~S1417と同様の処理であるため、その説明を省略する。
S1426でCPU110は、変数F’に“1”を加算する。
S1427は図7のS710と同様の判定処理であるため、その説明は省略する。
以上の結果、再生位置アイコン243の位置が変更された場合、その変更後の再生位置アイコン243が示す位置に最寄りの未現像のフレームに対する現像処理が行われていくことになり、現像結果保存領域への未再生のフレームの画像データの格納が継続する。したがって、ユーザが再生位置アイコン243の位置を変更した場合には、次第にその位置が現像済みのフレームとなる確率が高くなり、再生指示を受けた際にはスムーズな再生は期待できるようになる。
なお、本第2の実施形態では、二か所のフレームを一枚ずつ交互に現像するとしたが、現像する順番は他の方法で決定してもよい。例えば、マウスポインタが再生開始ボタン上にあれば再生位置243以降のフレームを複数枚ずつ、再生開始位置へのジャンプボタン上にあれば再生開始位置241以降のフレームを複数枚ずつ現像するといった例が考えられる。
次に、図15のフローチャートを参照し、図11のS1110の再生処理を説明する。本第2の実施形態では、現像結果が存在しないフレームを再生しようとした場合には、複数のフレームに対してまとめて現像処理を行うことでプレビュー表示が一時停止させ、その後にその範囲のプレビュー表示をなめらかに行うことを繰り返す例を説明する。
S1500~S1502のそれぞれは、図8のS800~S802と同様の処理であるものとし、その説明を省略する。
S1503にて、CPU110は、RAM130に保存されている既存の現像結果のうち、F-FMARGINより前のフレームに対する現像結果を削除し、メモリを開放する。
S1504にて、CPU110は、変数F’にFを代入する。
S1505~S1509のそれぞれは、図14のS1421~S1424、S1426と同じであるため、その説明は省略する。
S1510にて、CPU110は、変数F’とF+FMARGINとを比較する。そして、CPU110は、変数F’がF+FMARGINよりも大きいと判定した場合は処理をS11501へ進め、そうでないと判定した場合は処理をS1505へ進める。
S1511~S1513のそれぞれは、図8のS805~S807と同じであるため、その説明を省略する。
図16は、図2のGUIにおいて、画質設定部250で選択状態にある画質パラメータのみについて、図6のS601の現像可能表示、図14のS1406、S1417、S1425の現像完了表示を行った場合の詳細な表示構成を説明するための図である。
図16(a)は再生開始位置241及び終了位置242が確定していない場合の表示例である。シークバー部1600上では、現像可能範囲に該当する部分1601(FNOW~FNOW+(FCAN-FMARGIN))と、部分1602(FNOW-FMARGIN~FNOW)が薄い灰色で表示され、現像完了範囲に該当する部分1603と1604が濃い灰色で表示される。この後、部分1603は後方向、部分1604は前方向に伸びていき、部分1604が部分1602と一致した後は、部分1603のみ部分1601に一致するまで後ろ方向に伸びていくことになる。
図16(b)は再生開始位置241及び終了位置242が確定している場合の表示例である。シークバー部1610上では、現像可能範囲に該当する部分1611(FNOW~FNOW+(FCAN-FMARGIN))と、部分1612(FSTART~FSTART+FMARGIN)が薄い灰色で表示され、現像完了範囲に該当する部分1613と1614が濃い灰色で表示される。この後、部分1613、1614は共に後方向に伸びていき、部分1614が部分1612と一致した後は、部分1613のみ部分1611に一致するまで後ろ方向に伸びていくことになる。
以上のように本第2の実施形態によれば、必要なメモリ量をユーザに通知すると同時に設定を変更するかどうか問い合わせることで、ユーザは所望の再生範囲を高い再生品質で再生するためのメモリ量をすぐに設定することが可能となる。そのため、ユーザはメモリ量の変更と再生範囲の確認を繰り返し行う必要がなく、一度のメモリ量の変更で目的の再生を行うことが可能となる。また、ユーザの操作状態に応じて、ユーザが次に表示を求める可能性の高い範囲に対して現像処理を優先的に行うことで、ユーザの操作後すぐに表示を行うことが可能となる。
[第3の実施形態]
上記の第1の実施形態では、現像完了範囲と現像可能範囲を、画質パラメータごとに算出し表示するPCの例を説明した。また、第2の実施形態では、指定された再生範囲が現像可能であるかを、使用可能なメモリ量に基づいて通知し、メモリ量を変更するかどうかユーザが選択できるPCの例を説明した。本第3の実施形態では、画質パラメータとメモリ量の両方を同時に変更可能なPCの例を説明する。また、第1の実施形態では、再生処理中は現像処理を行わないPCの例を説明した。本実施形態では、再生処理中でも現像処理を行うPCの例を説明する。また、本実施形態では、ユーザが再生範囲を指定するための操作中に必要メモリ量を表示するPCの例を説明する。
本第3の実施形態におけるPCの構成を示すブロック図、アプリケーション200のGUI構成図、記録媒体150に格納されているRAW動画データの概念図は、それぞれ第1の実施形態の図1~3と同様であるものとし、その説明を省略する。ただし本第3の実施形態では、再生開始位置241及び終了位置242の指定方法として、シークバー部240上をドラッグアンドドロップする操作を備えるものとする。操作中のGUIの表示例については後述する。
次に、本第3の実施形態に係る動画再生の動作について、図17~19を参照して説明を行う。
RAW動画再生を行う際のアプリケーション200の動作を示すフローチャートは、第2の実施形態の図11と同様であるものとし、その説明は省略する。ただし、図11のS1109における現像処理の中断は行わないものとする。PCの処理速度が十分速い場合には、S1110の再生処理中もS1108で開始した現像処理を継続することで、より多くのフレームの現像結果をプレビュー表示前に生成することができる。ただし、再生処理中に現像処理を行った際、現像結果保存領域に空きがない場合には、再生処理を開始した際に表示した現像結果から順に削除するとする。
次に、図17のフローチャートを参照して、図11のS1105における必要メモリ量通知処理について説明する。
S1700~S1701のそれぞれは、図12のS1200~S1201と同じ処理であるため、その説明は省略する。
S1702にて、CPU110は、画質設定部250で設定可能なすべての画質パラメータについて、必要メモリ量MH、MH、MLを以下の式に従って算出する。各画質パラメータにおける現像結果の出力サイズをそれぞれNH、NM、NLバイトとする。
MH=NH×FNEED
MM=NM×FNEED
ML=NL×FNEED
S1703にて、CPU110は、必要メモリ量通知を表示し、ユーザの操作を受け付ける。この表示方法の詳細は後述する。
S1704にて、CPU110は、S1703の表示に対し、ユーザが画質パラメータ、メモリ量を変更する操作を行ったか否かを判定する。CPU110は、ユーザがいずれかの操作を行ったと判定した場合は処理をS1705に進め、いずれの操作も行わなかったと判定した場合は、この必要メモリ量通知処理を終了する。
S1705にて、CPU110は、画質パラメータ、メモリ量を、S1703でユーザによって指示された値に変更する。そして、S1706にて、CPU110は現像可能枚数の算出処理を行う。
図17のS1700、S1706における現像可能枚数の算出処理は、図5と同様となるので、その説明を省略する。ただし、本第3の実施形態では、現像可能枚数FCANは以下の式に従って算出する。
FCAN=FLOOR(M/N)+FWILL
ここで、FWILLはFLOOR(M/N)枚のフレームを再生する間に現像処理を行うことができるフレームの数である。FWILLはCPU110やGPU120の性能から予測して算出するとする。なお、アプリケーション200が起動した後、最初に行った現像処理の実行速度に基づいて算出してもよい。
図18は、図17のS1703の必要メモリ量通知を行った場合の詳細な表示構成を説明するための図である。
現在画質設定部250で選択状態の画質パラメータと、メモリ量設定部251で設定されているメモリ量と、設定可能なメモリ量の上限値が表示される。また、ドロップダウンリストのGUIで、各画質パラメータの必要メモリ量を表示し、ユーザはそのいずれかを選択可能とする。必要メモリ量が設定可能な上限値を超えている画質パラメータがある場合には、ドロップダウンリスト上でその行をグレーアウトする。また、図13と同様、3つのボタンを3つ表示する。それぞれのボタンに表記されるメッセージも図13と同じ「設定を変更する」、「このクリップのみ変更する」、「いいえ」である。ボタンが押下された場合のアプリケーション200の動作は次の通りである。
・「設定を変更する」の表記のボタンが押下された場合、CPU110は、画質パラメータとメモリ量をドロップダウンリストで選択したものに変更する。
・「このクリップのみ変更する」の表記のボタンが押下された場合、CPU110は、一時的に画質パラメータとメモリ量をドロップダウンリストで選択したものに変更し、入力動画データが変更されたタイミングで元の値に戻す。
・「いいえ」の表記のボタンが押下された場合、CPU110は、メモリ量を変更しない。
なお、必要メモリ量が設定可能な上限値を超えている画質パラメータは、ドロップダウンリスト上でグレーアウトせずに選択可能とし、ユーザがその画質パラメータを選択した場合には、メモリ量には設定可能な上限値を設定する旨を警告として表示する構成でもよい。
図11のS1106における現像可能範囲決定処理、図11のS1108における現像処理、及び図11のS1110における再生処理は、それぞれ図6、図7、図8と同様となるので説明を省略する。
図19を参照し、シークバー部240上をドラッグアンドドロップする操作によって、再生開始位置241及び終了位置242を指定する方法を説明する。
ユーザがシークバー部1900上でマウスのドラッグ操作を行うと、ドラッグ開始位置を仮の再生開始位置1901として表示する。ドラッグ操作中には、マウスポインタの位置を仮に再生終了位置とした場合に必要となるメモリ量をリアルタイムで算出し、マウスポインタの上部の参照符号1902のように表示する。ドラッグ操作が完了すると、ドラッグ操作の開始位置と終了位置をそれぞれ再生開始位置241及び終了位置242として設定する。
図19(a)は、ドラッグ操作中に算出された必要メモリ量が設定可能なメモリ量の上限値以下である場合の表示例である。
図19(b)は、ドラッグ操作中に算出された必要メモリ量が設定可能なメモリ量の上限値を超える場合の表示例である。このとき算出したメモリ量が上限値を超えていることをユーザに知らせるため、CPU110は、図示の参照符号1912に示すように、算出したメモリ量を示す部分の表示色を変化させる。
このように、本第3の実施形態によれば、すべての選択可能な画質パラメータについて必要なメモリ量をユーザに通知すると同時に設定を変更するかどうか問い合わせることで、ユーザは所望の再生範囲を高い再生品質で再生するための画質パラメータとメモリ量の組み合わせをすぐに設定することが可能となる。そのため、ユーザは画質パラメータとメモリ量の変更と再生範囲の確認を繰り返し行う必要がなく、一度の設定で目的の再生を行うことが可能となる。また、再生処理中に現像処理を並行して行うことで、より多くのフレームを再生直前に現像しておくことができる。また、ユーザが再生範囲を指定する操作を行っている間、必要メモリ量をリアルタイムで表示することによって、ユーザはメモリ量に注意しながら再生範囲の設定を行うことができる。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
また、本発明の目的は、以下の処理を実行することによって達成される。
まず、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のようにして達成することも可能である。即ち、読み出したプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合である。ここでプログラムコードを記憶する記憶媒体としては、例えば、ハードディスク、ROM、RAM、不揮発性の記憶媒体CD‐ROM、CD‐R、DVD、光ディスク、光磁気ディスク、MOなどが考えられる。また、LAN(ローカル・エリア・ネットワーク)やWAN(ワイド・エリア・ネットワーク)などのコンピュータネットワークを、プログラムコードを供給するために用いることができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。