以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の画像処理装置の第1実施形態である多機能周辺装置(以下、「MFP(Multi Function Peripheral)」と称す)1の外観構成を示した斜視図である。
このMFP1は、フォトキャプチャー機能、コピー機能、スキャナ機能、メディアキャプチャ機能などの各種機能を有する多機能周辺装置である。メディアキャプチャ機能では、後述するスロット部6に装着されたメディアカード(特許請求の範囲の記憶媒体の一例)から画像ファイルを読み出して印刷出力する処理、メディアカードから読み出した画像ファイルに対応した画像をLCD5に表示出力する処理、スキャナ機能により読み取られた画像データをメディアカードに保存する処理などを実行できる。
MFP1は、スロット部6に装着されたメディアカード内の画像ファイルの内容をユーザが把握できるように、インデックス画像を配列した画像一覧を印刷する。特に、本実施形態のMFP1は、画像一覧の印刷ページ数が予め設定した上限値を上回ることを抑制できるように構成されているが、詳細は後述する。
MFP1の上部には、原稿を読み取るためのスキャナ2が配置されている。また、筐体内部には記録用紙に画像を印刷する装置として、所謂インクジェットプリンタで構成されたプリンタ3が内蔵されている。
また、MFP1の前面には、スロット部6が設けられている。このスロット部6には、コンパクトフラッシュ(登録商標)、SDメモリカードなどの各種メディアカードを直接挿入できるカードスロットが設けられている。
また、原稿カバー体の前方には、操作パネルが設けられており、複数のキーやタッチパネルで構成される操作部4、およびLCD5を具備する。MFP1は、LCD5に操作手順や実行中の処理の状態を表示させると共に、操作部4の操作に対応する情報を表示させる。
図2を参照して、MFP1の電気的構成について説明する。図2は、MFP1の電気的構成を示すブロック図である。MFP1は、CPU11、ROM12、RAM13、EEPROM14、スキャナ2、プリンタ3、操作部4、LCD5、スロット部6を主に有している。
このうち、CPU11、ROM12、RAM13、EEPROM14は、バスライン26を介して互いに接続されている。また、スキャナ2、プリンタ3、操作部4、LCD5、スロット部6、バスライン26は、入出力ポート27を介して互いに接続されている。
CPU11は、ROM12、RAM13やEEPROM14に記憶される固定値やプログラムに従って、MFP1が有している各機能の制御や、入出力ポート27と接続された各部を制御するものである。
ROM12は、CPU11によって実行される制御プログラム12aを記憶すると共に、電源遮断後も内容を保持可能な不揮発性のメモリである。制御プログラム12aは、後述する図8〜図17にフローチャートで示す処理を実行するためのプログラムを含んでいる。
ROM12には、さらに横方向画像配置数記憶領域12b、1ページ画像配置数記憶領域12cが設けられている。
横方向画像配置数記憶領域12bは、「横方向の配置枚数」を記憶する領域である。「横方向の配置枚数」は、画像一覧において、横一列に並べて配置可能なインデックス画像の数を示す値である。なお、本実施形態のMFP1には、予め印刷用紙サイズ(L版、A4、Letterなど)、および印刷モード(高精細、普通、高速など)に応じて、複数種類の「横方向の配置枚数」が記憶されており、後述する配置印刷処理(図16,図17参照)では、この中から適した値を読み出して用いるものとして説明する。
1ページ画像配置数記憶領域12cは、「1ページ内画像配置数」を記憶する領域である。「1ページ内画像配置数」は、1ページ分の記録用紙に形成する画像一覧に、最大で何個分のインデックス画像を配置可能であるかを示す値である。なお、本実施形態においては、予め印刷用紙サイズおよび印刷モードに応じて、複数種類の「1ページ内画像配置数」が記憶されており、後述する配置印刷処理(図16,図17参照)では、この中から適した値を読み出して用いるものとして説明する。
RAM13は、MFP1の各操作の実行時に各種のデータを一時的に記憶するためのメモリであり、抽出フレーム数記憶領域13a、処理ファイル数記憶領域13b、処理画像総数記憶領域13c、生成ページ数記憶領域13d、ファイル情報記憶領域13h、配置情報記憶領域13i、フレーム画像情報記憶領域13j、デコードデータ記憶領域13k、カウンタ記憶領域13m、最大印刷枚数記憶領域13n、動画像ファイル数記憶領域13o、総抽出フレーム数記憶領域13p、撮影間隔記憶領域13rが設けられている。
ここで、本実施形態で用いる用語の意味を説明する。本実施形態において、「動画像」とは、多数のフレーム画像を切り替え表示することにより再生される画像を意味している。「動画像ファイル(特許請求の範囲に記載の動画像情報に相当)」は、動画像を再生するためのファイルであって、例えば、AVI動画ファイル、クイックタイム動画ファイルなどで構成される。ただし、動画像を再生可能な情報であれば、どのような形式のファイルであっても差し支えない。また、本実施形態において、「フレーム画像情報」は、動画像を構成する1のフレーム画像に対応した情報を意味している。
抽出フレーム数記憶領域13aは、「フレーム画像抽出枚数」を記憶する領域である。「フレーム画像抽出枚数」は、メディアカードに格納された動画像ファイルの各々について、何枚分のフレーム画像に対応したフレーム画像情報を抽出するかを示す値である。例えば、「フレーム画像抽出枚数」として「5」が記憶されている場合、MFP1は、その動画像ファイルについては、5枚のフレーム画像に対応したフレーム画像情報を抽出し、その抽出したフレーム画像情報に基づいて、5個のインデックス画像を、画像一覧に配置する。本実施形態のMFP1は、動画像ファイルの録画長時間に基づいて、動画ファイル毎に、フレーム画像抽出数を決定するが、その処理の詳細は図11を参照して後述する。
処理ファイル数記憶領域13bは、「総処理ファイル数」を記憶する領域である。「総処理ファイル数」は、メディアカードに格納される静止画像ファイル(特許請求の範囲に記載の静止画像情報の一例)と動画像ファイルの合計を示す値である。
処理画像総数記憶領域13cは、「処理画像総数」を記憶する領域である。「処理画像総数」は、画像一覧内に形成するインデックス画像の総数を示す値である。生成ページ数記憶領域13dは、「生成ページ数」を記憶する領域である。「生成ページ数」は、後述する配置印刷処理(図16、図17)の実行により出力する画像一覧の総ページ数を示す値である。
ファイル情報記憶領域13h、配置情報記憶領域13iについては、図5、図6を参照して後述する。
フレーム画像情報記憶領域13jは、動画ファイルから抽出されるフレーム画像情報を格納する領域である。デコードデータ記憶領域13kは、フレーム画像情報をデコード処理した結果、または、静止画像ファイルをデコード処理した結果を記憶する領域である。
カウンタ記憶領域13mは、各種カウンタを記憶する領域である。EEPROM14は、書換可能な不揮発性のメモリである。
最大印刷枚数記憶領域13nは、画像一覧の印刷出力の前に予め設定された、最大印刷枚数(特許請求の範囲に記載の「画像一覧の総ページ数の上限値」に相当)を記憶(設定)する領域である。本実施形態では、最大印刷枚数は、ユーザが、操作部4から入力した任意の値が、最大印刷枚数として、最大印刷枚数記憶領域13nに記憶されるものとして説明する。
動画像ファイル数記憶領域13oは、メディアカードが格納する動画像ファイルの個数を記憶する領域である。
総抽出フレーム数記憶領域13pは、動画像ファイル毎に抽出されるフレーム画像情報の総数を記憶する領域である。
撮影間隔記憶領域13rは、静止画像ファイル同士の間における、撮影日時の差違を記憶する領域であるが、詳細は図7を参照して説明する。
図3は、本実施形態のMFP1において実行される処理の概要を模式的に示す図である。例えば、画像一覧20の総ページ数の上限値として「2」が設定された場合、MFP1は、図3に示すように、画像一覧20の印刷ページの総数が、設定した上限値「2」以下となるように、インデックス画像の個数を調整する処理を実行する。なお、処理の詳細は後述する。
本実施形態のMFP1によれば、画像一覧20の印刷ページの総数を上限値以下に抑えることができるので、メディアカード内に多数の画像ファイルが格納されている場合であっても、ユーザが閲覧しきれないほど、たくさんの画像一覧20が出力されてしまう、といった事態や、画像一覧20の出力のために紙やインクを多量に消耗してしまう、といった事態を防止することができる。また、画像一覧20の出力処理を短時間で完了させることができる。
図4は、MFP1が印刷する、1ページ分の画像一覧20の一例を示す図である。図4に示すように、画像一覧20には、動画像ファイルから抽出されるフレーム画像情報に対応するインデックス画像21と、静止画像ファイルに対応するインデックス画像22とからなる画像群が、所定の条件に従った順序で配列されている。
MFP1は、メディアカードに静止画像ファイルと動画像ファイルとが混在している場合、図4に示すように、フレーム画像情報に対応するインデックス画像21と静止画像ファイルに対応するインデックス画像22とが混在した画像一覧20を印刷する。よって、ユーザは、動画像ファイルの内容を示すインデックス画像21と、静止画像ファイルの内容を示すインデックス画像22とを、1ページの画像一覧20によって、一度に視認することができ、利便性が高い。
また、MFP1は、インデックス画像21,22を含む画像群が、撮影日時に従った順序で配列されるように、インデックス画像21,22の各々について配置順序を決定し、その決定した配置順序でインデックス画像21,22を配列した画像一覧20を印刷する。
図4に示す画像一覧20はその一例であるが、例えば、画像一覧20の左側から右側へ向かうにつれて、撮影日時が新しくなるような順序で、横一列分のインデックス画像21,22が配列し、その横一列分の配列の下に、次に撮影日時が新しい横一列分のインデックス画像21,22が配列されるように、インデックス画像21,22の各々について配置順序を決定する。
詳細な説明は後述するが、MFP1は、静止画像ファイルに基づくインデックス画像であるか、動画像ファイルに基づくインデックス画像であるかに関わらず、撮影日時のみを条件としてソートした配置順序を決定し、その配置順序でインデックス画像21,22を配列した画像一覧20を出力する。よって、例えば、動画像で撮影したか、静止画像で撮影したかをユーザが覚えていない場合であっても、撮影日時がかなり古いものであるのか、あるいは最近のものであるのかなど、撮影日時を手がかりに、目的とする画像を迅速に探し当てることができる。
なお、図4に示すように、MFP1は、同一の動画像ファイルに由来する複数のインデックス画像21が隣接して配置される場合、例えば、映画用フィルムを擬した図柄により連結した体裁で、印刷出力することとしている。このようにすれば、ユーザは、同一の動画像ファイルに由来するインデックス画像21をまとめて把握できると共に、静止画像ファイルに対応するインデックス画像22と、フレーム画像情報に対応するインデックス画像21とを一目で区別することができ、利便性が高い。
図5は、ファイル情報記憶領域13hの構成を模式的に示す図である。図5に示すように、ファイル情報記憶領域13hには、ファイルIDを記憶するファイルID記憶領域201、ファイル名を記憶するファイル名記憶領域202、ファイル種類を記憶するファイル種類記憶領域203、抽出フレーム数を記憶する抽出フレーム数記憶領域204、総フレーム数を記憶する総フレーム数記憶領域205、fps情報を記憶するfps情報記憶領域206、ファイル日付情報を記憶するファイル日付情報記憶領域207、ファイル時間情報を記憶するファイル時間情報記憶領域208、ファイル付加情報記憶領域209が設けられ、ファイル名、ファイル種類、抽出フレーム数、fps情報、ファイル日付情報、ファイル時間情報、ファイル付加情報からなるファイル情報200を、そのファイル情報200を管理するファイルIDに対応付けた情報を記憶する。MFP1は、画像一覧20(図3参照)におけるインデックス画像21,22の配置順序を決定するための準備処理として、メディアカード内に格納された静止画像ファイルまたは動画像ファイルの各々についてファイル情報200を作成し、ファイル情報記憶領域13hに格納する。
ファイルID記憶領域201は、ファイルIDを記憶する領域である。ファイル名記憶領域202は、静止画像ファイルまたは動画像ファイルのファイル名を格納する領域である。図5に示すように、各ファイル名には、拡張子が付加されている。例えば、画像ファイルがJPEGファイルである場合は拡張子「jpg」が付加され、AVI動画ファイルである場合は拡張子「avi」が付加され、クイックタイム動画ファイルである場合は拡張子「mov」が付加される。
ファイル種類記憶領域203は、各画像ファイルの種類(フォーマット)を示す値を格納する領域である。画像ファイルの種類は、例えば、ファイル名に付加された拡張子に基づいて判定することができる。本実施形態では、画像ファイルの形式がJPEGファイル(拡張子jpg)である場合、JPEGファイルであることを示す値「0」をファイル種類記憶領域203に格納し、画像ファイルの形式がAVI動画ファイル(拡張子avi)である場合、値「1」をファイル種類記憶領域203に格納し、画像ファイルの形式がクイックタイム動画ファイル(拡張子mov)である場合、値「2」をファイル種類記憶領域203に格納する。
なお、各画像ファイルの先頭から数バイト分に格納されている情報に基づいて画像ファイルの種類を判定することもできる。例えば、先頭から2バイトが「0xFFD8」であればJPEGファイルであると判定できるし、先頭から2バイトが「0x424D」であれば、ビットマップデータであると判定することができる。これらの情報に基づいて、画像ファイルの種類を判定しても差し支えない。
抽出フレーム数記憶領域204は、何枚分のフレーム画像に対応したフレーム画像情報を、画像ファイルから抽出するかを示す値を記憶する領域である。なお、静止画像ファイルの場合、抽出フレーム数記憶領域204には「1」が格納される。動画像ファイルの場合は、後述する抽出フレーム数決定処理(図11参照)で決定されたフレーム画像抽出数が記憶される。
総フレーム数記憶領域205は、各画像ファイルの総フレーム数を格納する領域である。動画像ファイルの場合は動画像ファイルに含まれる総フレーム数が格納され、静止画像である場合は常に1が格納される。
fps情報記憶領域206は、各画像ファイルのfps(Frame Per Second)情報を格納する領域である。静止画像ファイルである場合には「0」が格納される。一方、動画像ファイルである場合には、例えば、1秒間に60フレーム画像が存在することを示す「60」や、1秒間に30フレーム画像が存在することを示す「30」が、このfps情報記憶領域206に格納される。
ファイル日付情報記憶領域207は、各画像ファイルの撮影日を表すファイル日付情報を格納する領域である。例えば、撮影日「2008年1月15日」は、ファイル日付情報「20080115」として表すものとする。
ファイル時間情報記憶領域208は、各画像ファイルの撮影時間を表すファイル時間情報を格納する領域である。例えば、撮影時間「12時50分45秒」は、ファイル時間情報「125045」として表すものとする。画像ファイルが動画像ファイルの場合は、撮影開始時間を表す情報が、ファイル時間情報として格納される。
以降の説明では、各画像ファイルのヘッダに記述された情報を読み出してくることにより、総フレーム数、fps情報、ファイル日付情報およびファイル時間情報を取得するものとするが、他の手段により、これらの情報を取得しても良い。
ファイル付加情報記憶領域209には、各画像ファイルのその他の固有情報を格納する領域である。なお、本第1実施形態では、ファイル付加情報記憶領域209には、動画像ファイルの録画時間の長さを表す録画長情報が格納される。図5のファイル付加情報記憶領域209に示す値の単位は秒である。
本実施形態のMFP1は、ファイル情報記憶領域13hに格納された各画像ファイルの固有情報に基づいて、録画長情報に応じたフレーム画像抽出数を決定し、また、撮影日時に従った順序でインデックス画像21,22が配列されるように、インデックス画像21,22の配置順序を決定する。決定した配置順序を示す情報は、図6に示す配置情報記憶領域13iに格納する。
図6は、配置情報記憶領域13iの構成を模式的に示す図である。図6に示すように、配置情報記憶領域13iは、ファイルID、抽出フレーム番号、画像日付情報、画像時間情報、画像付加情報からなる配置情報300と、その配置情報300に対応する配置順序とを記憶する。
図6に示すように、配置情報記憶領域13iには、配置順序記憶領域301、ファイルID記憶領域302、抽出フレーム番号記憶領域304、画像日付情報記憶領域305、画像時間情報記憶領域306、画像付加情報記憶領域307が設けられる。
配置情報記憶領域301は、配置順序を記憶する領域である。後述する配置印刷処理(図16,図17参照)では、配置順序に従った順序で、配置情報300が読み出され、各配置情報300で特定されるフレーム画像または静止画像のインデックス画像21,22が、配置順序に従った順序で、画像一覧20に配列される。
ファイルID記憶領域302は、ファイルIDを記憶する領域である。図5を参照して説明したように、ファイル情報記憶領域13hには、ファイルIDとファイル名とが1対1で対応付けて記憶されているので、ファイルIDから、1の画像ファイルを特定することができる。
抽出フレーム番号記憶領域304は、抽出フレーム番号を記憶する領域である。1の動画像ファイルの先頭から数えて何番目のフレーム画像情報であるかを示す情報が、「抽出フレーム番号」として、抽出フレーム番号記憶領域304に格納される。
ここで、「抽出フレーム番号」は、「総フレーム数記憶領域205」に記憶された動画像ファイルの総フレーム数と、「抽出フレーム数記憶領域204」に記憶された抽出フレーム数と、動画像のうち何枚目に抽出されるかを表すフレーム画像数カウンタ値を用いて、例えば、下記のように算出することができる。
(抽出フレーム番号)=[(フレーム画像数カウンタ値−1)×(総フレーム数)÷(抽出フレーム数)]
ここで[]はガウス記号を表し、[a]はaを超えない最大の整数を表す。
画像日付情報記憶領域305は、ファイルID記憶領域302に格納されたファイルIDで特定される画像ファイルの撮影日を表す画像日付情報が格納される領域である。画像時間情報記憶領域306は、撮影時間を表す画像時間情報が格納される領域である。静止画像ファイルについては、ファイル情報記憶領域13hの対応する領域に格納されたファイル時間情報が、この画像時間情報記憶領域306にコピーされる。
一方、動画像ファイルについては、その動画像ファイルから複数のフレーム画像情報が抽出されるので、フレーム画像情報毎に、撮影時間を表す画像時間情報を取得し、画像時間情報記憶領域306に記憶する。なお、フレーム画像情報毎の画像時間情報を算出する具体的演算例については、図14に示すフローチャートを参照して後述する。画像加情報記憶領域307には、各画像のその他の情報を格納する領域である。
後述する配置印刷処理(図16,図17参照)では、配置情報記憶領域13iに記憶された配置情報300に基づいて、インデックス画像21,22が撮影日時に従った順序で配列された画像一覧20(図4参照)を印刷出力する。
図7は、撮影間隔記憶領域13rの構成を模式的に示す図である。図7に示すように、撮影間隔記憶領域13rには、間隔管理番号記憶領域601、第1静止画像ファイルID記憶領域602、第2静止画像ファイルID記憶領域603、撮影時間間隔情報記憶領域604が設けられている。
間隔管理番号記憶領域601には、間隔管理番号が記憶される。MFP1は、同一の間隔管理番号で管理される、第1静止画像ファイルIDと、第2静止画像ファイルIDと、撮影時間間隔情報とを、一単位の間隔情報として取り扱う。
第1静止画像ファイルID記憶領域602と、第2静止画像ファイルID記憶領域603とには、共に、ファイルIDが記憶される。第1静止画像ファイルID記憶領域602に記憶されたファイルIDで特定される静止画像ファイルと、第2静止画像ファイルID記憶領域603に記憶されたファイルIDで特定される静止画像ファイルとの間の撮影日時の差違を示す撮影時間間隔情報が、同一の間隔管理番号で管理される撮影時間間隔情報記憶領域604に格納される。
MFP1は、撮影時間間隔情報に基づいて、印刷対象から除外する静止画像ファイルを決定するが、処理の詳細は図12を参照して後述する。
図8は、MFP1で実行されるレイアウト画像印刷処理を示すフローチャートである。このレイアウト画像印刷処理は、ユーザによって、画像一覧20の印刷出力の開始指示が入力されると実行される。なお、レイアウト画像印刷処理の実行開始に先立ち、ユーザが、操作部4を操作することにより、最大印刷枚数(画像一覧の総ページ数の上限値に相当)を入力済みであるものとして説明する。
まず、印刷画像決定処理を実行する(S101)。印刷画像決定処理(S101)は、メディアカードに格納される動画像ファイルおよび静止画像ファイルのうち、いずれの画像情報について、画像一覧20にインデックス画像21,22を配置するかを決定する処理であるが、詳細は、図9から図13を参照して後述する。
次に、配置情報決定処理を実行する(S102)。配置情報決定処理(S102)は、インデックス画像21,22の配置順を示す配置情報を決定する処理であるが、詳細は、図14を参照して後述する。
そして、配置印刷処理を実行する(S103)。配置印刷処理(S103)は、決定されたフレーム画像情報と静止画像ファイルとに基づいてインデックス画像21,22を配置する処理であるが、詳細は、図16から図17を参照して後述する。
レイアウト画像印刷処理によれば、画像一覧20の印刷ページ数が、ユーザにより予め設定された最大印刷枚数(画像一覧の総ページ数の上限値)以内となるように、インデックス画像21,22の数を調整して、画像一覧20を印刷する。
図9は、印刷画像決定処理(S101)を示すフローチャートである。印刷画像決定処理では、まず、ユーザが操作部4を用いて予め設定した最大印刷枚数を取得し、最大印刷枚数記憶領域13nへ記憶(設定)する(S201)。次に、メディアカード内に格納された静止画像ファイルと動画像ファイルとの合計を示す「総処理ファイル数」を算出し(S202)、処理ファイル数記憶領域13b(図2参照)に記憶する(S203)。
次に、メディアカードに格納されている動画像ファイル数を算出し(S204)、動画像ファイル数記憶領域13o(図2参照)へ記憶する(S205)。
次に、総抽出フレーム数を算出する(S206)。具体的には、例えば下記の(数式1)に示す演算により、「総抽出フレーム数」を求める。下記の式において、「1ページ内画像配置数」は、1ページ画像配置数記憶領域12cに記憶される「1ページ内画像配置数」のうち、記録用紙のサイズおよび印刷モードに応じて読み出された値を示している。また、「最大印刷枚数」は、最大印刷枚数記憶領域13nに記憶された値を示している。また、「総処理ファイル数」は、処理ファイル数記憶領域13bに記憶された値を示している。また、「動画像ファイル数」は、動画像ファイル数記憶領域13oに記憶された値を示している。
(数式1)
総抽出フレーム数 = ( 最大印刷枚数 × 1ページ内画像配置数 ) - ( 総処理ファイル数 - 動画像ファイル数)
すなわち、最大印刷枚数の画像一覧20に配置可能なインデックス画像21,22の個数に相当する「最大配置個数」(「最大印刷枚数」×「1ページ内画像配置数」)から、静止画像ファイルの数(総処理ファイル数−動画像ファイル数)を減算することにより、総抽出フレーム数を求める。このようにすれば、「総抽出フレーム数」は、メディアカードに格納された静止画像ファイルの各々について、1ずつインデックス画像21,22を配置すると仮定した場合に、残り何個のインデックス画像21,22を配置できるのかを示す値として求められる。
そして、抽出した「総抽出フレーム数」を、総抽出フレーム数記憶領域13p(図2参照)へ記憶する(S207)。
次に、メディアカードに格納した画像ファイルの各々についてファイル情報を作成し、ファイル情報記憶領域13h(図5参照)へ格納する画像情報取得処理を実行する(S20)。なお、画像情報取得処理の詳細については、図10を参照して後述する。
次に、各動画像ファイルについて、フレーム画像抽出数を決定する抽出フレーム決定処理を実行する(S209)。抽出フレーム決定処理(S209)については、図11を参照して後述する。
次に、静止画像ファイルの総数と、S209の処理で、動画像ファイル毎に決定されたフレーム画像抽出数の総数(特許請求の範囲に記載の「フレーム画像抽出手段により抽出されるフレーム画像情報に対応したフレーム画像の総数」に相当)とを合計した値を、「処理画像総数」として算出し、処理画像総数記憶領域13c(図2参照)へ記憶する(S210)。
次に、「最大印刷枚数」と「1ページ内画像配置数」とを乗算することにより、最大印刷枚数分の画像一覧20に配置可能なインデックス画像21,22の個数に相当する「最大配置個数」を取得し、「処理画像総数」が、「最大配置個数」よりも大であるか否かを判断する(S211)。
S211の判断が否定される場合(S211:No)、印刷画像決定処理を終了する。一方、肯定される場合(S211:Yes)、印刷静止画像決定処理を実行する(S212)。印刷静止画像決定処理については、図12を参照して後述する。
次に、S212において、インデックス画像21,22を形成する静止画像ファイルとして決定された静止画像ファイルの数と、S209の処理で決定されたフレーム画像抽出数の総数とを合計した値を、処理画像総数記憶領域13cへ記憶し(S213)、処理を終了する。
この印刷画像決定処理(S101)により、メディアカードに格納される動画像ファイルおよび静止画像ファイルのうち、いずれの画像情報について、画像一覧20にインデックス画像21,22を配置するかを決定することができる。
図10は、画像情報取得処理(S208)を示すフローチャートである。画像情報取得処理(S208)は、メディアカードに格納された静止画像ファイルと動画像ファイルとの各々について、ファイル情報200を作成し、ファイル情報記憶領域13h(図5参照)へ格納する処理である。
まず、ファイル数をカウントするファイル数カウンタを0で初期化する(S301)。以降の処理において、このファイル数カウンタは、作成したファイル情報を格納すべき領域を特定するために用いられる。このファイル数カウンタは、カウンタ記憶領域13m(図2参照)に設けられている。
次に、メディアカードに格納された画像ファイルのうち、1の画像ファイルを処理対象として選択し、その画像ファイルのファイル名、ファイル日付情報、ファイル時間情報を取得する(S302)。そして、ファイル数カウンタ値のファイルIDに対応した領域に、取得したファイル名、ファイル日付情報、ファイル時間情報を記憶する(S303)。なお、ファイル名はファイル名記憶領域202(図5参照)へ記憶し、ファイル日付情報はファイル日付情報記憶領域207へ記憶し、ファイル時間情報はファイル時間情報記憶領域208(図5参照)へ記憶する。
次に、選択した画像ファイルの種類を解析する(S304)。この処理では、例えば、ファイル名に付加された拡張子を解析することにより、画像ファイルの種類を判定している。そして、判定した画像ファイルの種類を、ファイル数カウンタ値のファイルIDに対応した、ファイル種類記憶領域203(図5参照)へ記憶する(S305)。
そして、取得した画像ファイルの種類に基づいて、選択した画像ファイルが動画像ファイルであるか静止画像ファイルであるかを判断する(S306)。
S306の判断において、動画像ファイルであると判断した場合(S306:動画像)、動画像ファイルの録画時間の長さを表す録画長情報を取得する(S307)。本実施形態では、動画像ファイルのヘッダ情報に含まれる録画長情報を取得するものとして説明する。ただし、例えば、動画像ファイルのヘッダ情報に含まれる、総フレーム数をfps情報で除した値を、録画長情報として取得するなど、他の手段により録画長情報を取得しても良い。なお、この場合は、S307の処理以前に「総フレーム数情報」及び「fps情報」を取得する必要がある。
そして、取得した録画長情報を、ファイル数カウンタ値のファイルIDに対応した、ファイル付加情報記憶領域209(図5参照)へ記憶する(S308)。
一方、S306の判断において、静止画像ファイルであると判断した場合(S306:静止画像)、ファイル付加情報記憶領域209に印刷画像フラグとして「1」を記憶する(S309)。なお、印刷画像フラグの意味については、図12を参照して後述する。
このようにして、S308またはS309の処理のうち、いずれかが実行されると、次に、処理画像数カウンタに1を加算し(S310)、ファイル数カウンタの値が、総処理ファイル数を超えたか否かを判断する(S311)。
S311の判断が否定される場合(S311:No)、S302に戻り処理を繰り返すが、肯定される場合(S311:Yes)、この画像情報取得処理(S208)を終了する。そして、図11に示す処理に移行する。
図11は、抽出フレーム数決定処理(S209)を示すフローチャートである。この抽出フレーム数決定処理(S209)は、録画時間の長さが大である動画像ファイルほど、その動画像ファイルから多数のフレーム画像に対応したフレーム画像情報が抽出されるように、メディアカードに格納される動画像ファイルの各々について、フレーム画像抽出数を決定する処理である。
まず、ファイル数カウンタを0で初期化する(S400)。次に、ファイル数カウンタ値のファイルIDに対応した、ファイル種類記憶領域203を参照し、画像ファイルの種類が動画像であるか静止画像であるかを判断する(S402)。
静止画像であると判断された場合(S402:静止画像)、フレーム画像抽出数「1」を、ファイルカウンタ値のファイルIDに対応した抽出フレーム数記憶領域204(図5参照)へ記憶し(S402a)、ファイル数カウンタに1を加算する(S407)。そして、ファイル数カウンタの値が、総処理ファイル数以上となったか否かを判断する(S408)。S408の判断が否定される場合(S408:No)、S402に戻り処理を繰り返す。
一方、動画像であると判断された場合(S402:動画像)、処理対象の動画像ファイルについて、その録画長時間情報に基づいて、フレーム画像の抽出数を決定する(S403)。まず、メディアカード内に動画像ファイルA,B,Cが存在しており、それぞれの録画長情報が、Time_A、Time_B、Time_Cとすると、動画像ファイルA,B,Cの総録画時間TotalRecTimeは、例えば、下記の数式2より算出できる。
(数式2)
TotalRecTime = Time_A + Time_B + Time_C
このようにして算出した総録画時間TotalRecTimeを用いて、動画像ファイルA,B,Cのフレーム画像抽出数を下記数式4より算出できる。ここでは、S206の処理で算出された総抽出フレーム数をPickFrameNo、動画像ファイルA,B,Cのフレーム画像の抽出数をPickFrameNo_A、PickFrameNo_B、PickFrameNo_Cとしている。
(数式4)
PickFrameNo_A = TotalFrameNo ×(Time_A / TotalRecTime)
PickFrameNo_B = TotalFrameNo ×(Time_B / TotalRecTime)
PickFrameNo_C = TotalFrameNo ×(Time_C / TotalRecTime)
具体的には、上記数式4で説明したように、S206の処理で算出された総抽出フレーム数PickFrameNoと、処理対象の動画像ファイルについて決定されたフレーム画像削減レートとに基づいて、処理対象の動画像ファイルについてのフレーム画像抽出数を決定する。
次に、決定したフレーム画像抽出数が「0」であるか否かを判断する。S404の判断が肯定される場合(S404:Yes)、フレーム画像抽出数を「1」に決定する(S405)。一方、S404の判断が否定される場合(S404:No)、S405の処理をスキップする。このようにして決定したフレーム画像抽出数を、ファイル数カウンタ値のファイルIDに対応した、抽出フレーム数記憶領域204(図5参照)へ記憶する(S406)。すなわち、動画像ファイルの場合、フレーム画像抽出数としては、1以上の値が決定される。
そして、ファイル数カウンタの値に1を加算し(S407)、S408の判断が否定される間(S408:No)、処理を繰り返す。そして、処理を繰り返すうちに、ファイル数カウンタの値が総処理ファイル数以上となると(S408:Yes)、抽出フレーム数決定処理を終了する。
このようにすれば、後の配置印刷処理(図16参照)を実行することにより、録画時間が長い動画像ファイルについては、より多数のインデックス画像21,22が、画像一覧20に配置されることとなる。その結果、画像一覧20の印刷ページ数に制約がある場合であっても、動画像の内容を一覧性良く把握できる、有用な画像一覧を印刷することができる。すなわち、より多くのシーンが撮影されていることが予想される、録画時間が長い動画像ファイルについては、多数のインデックス画像21,22を画像一覧20に配置されるから、その動画像ファイルの内容を、ユーザが正確に把握することができる。一方で、録画時間が短い動画像ファイルについては、より少ないインデックス画像21,22が画像一覧20に配置されるので、画像一覧20の総ページ数が、ユーザにより設定された最大印刷枚数を上回ることを抑制できる。
また、本実施形態の抽出フレーム数決定処理によれば、フレーム画像の抽出数として、動画像ファイルの各々について1以上の値を決定するので、後の配置印刷処理(図16参照)を実行することにより、動画像ファイルの各々について、少なくとも1つのインデックス画像21,22が画像一覧20に配置されることとなる。よって、画像一覧20の印刷ページ数に制約がある場合であっても、メディアカードに格納された各動画像ファイルが完全に欠落するのを避けることができる。
図12は、印刷静止画像決定処理(S212)を示すフローチャートである。印刷静止画像決定処理(S212)は、上述した抽出フレーム数決定処理(S209;図11参照)により決定されたフレーム画像抽出数の総数と、静止画像ファイルの総数とを合計した値である「処理画像総数」が、「最大配置個数」よりも大であると判断された場合(S211:Yes)、実行される処理である。
以下の処理では、互いの間の撮影日時の差違が最短の関係にある一対の静止画像ファイのうち、撮影日時が古い一方の静止画像ファイルを、印刷対象から除外する。
まず、「処理画像総数」から「最大配置個数」を減算して得られる「削減画像数」(特許請求の範囲に記載の除外数情報に相当)を算出(取得)する(S501)。次に、「処理ファイル数」から「動画像ファイル数」を減算することにより、「静止画像数」を算出する(S502)。
次に、間隔情報管理番号カウンタ、静止画像カウンタ、ファイル数カウンタを0で初期化する(S503)。そして、以降の処理において、撮影時間間隔情報を算出し、撮影間隔記憶領域13r(図7参照)の撮影時間間隔情報記憶領域604へ記憶する処理を繰り返す。なお、間隔情報管理番号カウンタ、静止画像カウンタは、カウンタ記憶領域13m(図2参照)に設けられている。
まず、ファイル数カウンタ値のファイルIDに対応した、ファイル時間情報およびファイル種類情報を、ファイル情報記憶領域13hのファイル時間情報記憶領域208およびファイル種類記憶領域304から読み出す(S504)。
次に、ファイル数カウンタに「1」を加算し(S505)、読み出した画像ファイルの種類を判定する(S505)。動画像ファイルであると判定された場合(S506:動画像)、S504に戻り処理を繰り返す。
一方、静止画像ファイルであると判定された場合(S506:静止画像)、次に、ファイル数カウンタ値のファイルIDを、間隔情報管理番号カウンタ値に対応する第1ファイルID記憶領域602(図7参照)へ記憶する(S507)。
次に、S504の処理で読み出したファイル時間情報を、「時間情報A」として記憶し(S508)、静止画像カウンタに1を加算する(S509)。そして、ファイル数カウンタ値のファイルIDに対応した、ファイル時間情報およびファイル種類情報を、ファイル情報記憶領域13hのファイル時間情報記憶領域208およびファイル種類記憶領域304から読み出す(S510)。
次に、ファイル数カウンタに「1」を加算し(S511)、読み出した画像ファイルの種類を判定する(S512)。動画像ファイルであると判定された場合(S512:動画像)、S510に戻り処理を繰り返す。
このようにして処理を繰り返すうちに、S512において、静止画像であると判断される場合(S512:静止画像)、図13に示すS513の処理に移行する。
図13は、図12に示す印刷静止画像決定処理(S212)の続きの部分を示すフローチャートである。図13に示すように、次に、ファイル数カウンタ値から「1」減算した値に対応するファイルIDを、間隔情報管理番号カウンタ値に対応する第2ファイルID記憶領域604(図7参照)へ記憶する(S513)。次に、S510の処理で読み出したファイル時間情報を、「時間情報B」として記憶し(S514)、静止画像カウンタに1を加算する(S515)。
そして、「時間情報A」から「時間情報B」を減算した値、すなわち、第1ファイルID記憶領域602に記憶されたファイルIDで特定される静止画像ファイルと、第2ファイルID記憶領域603に記憶されたファイルIDで特定される静止画像ファイルとの間の撮影日時の差違を示す撮影時間間隔情報を算出する(S516)。
そして、算出した撮影時間間隔情報を、間隔情報管理番号カウンタ値に対応する撮影時間間隔情報記憶領域604へ記憶する(S517)。そして、間隔情報管理番号カウンタに1を加算する(S518)。
次に、ファイル数カウンタ値に対応するファイルIDを、間隔情報管理番号カウンタ値に対応する第1ファイルID記憶領域602(図7参照)に記憶し(S519)、時間情報Bの値を時間情報Aに記憶する(S520)。
次に、静止画像カウンタの値が、S502の処理で算出した「静止画像数」以上となったか否かを判断する(S521)。S521の判断が否定される間(S521:No)、S510に戻り処理を繰り返す。
このようにして処理を繰り返すうちに、S527の判断が肯定されると(S521:Yes)、次に、撮影間隔情報記憶領域13rを、撮影時間間隔情報の小さい順にソートする(S522)。
次に、削除画像数カウンタを「0」で初期化する(S523)。なお、削除画像数カウンタは、カウンタ記憶領域13mに設けられている。そして、削除画像数カウンタ値の間隔管理番号に対応した領域を参照する。第1静止画像ファイルID記憶領域602(図7参照)に記憶されたファイルIDを読み出す(S524)。次に、そのファイルIDに対応するファイル付加情報記憶領域209(図5参照)に、非印刷画像フラグとして「−1」を記憶する(S525)。
すなわち、静止画像ファイルの組み合わせの中で、互いの間の撮影日時の差違が最短の関係にある一対の静止画像ファイルのうち、撮影日時が古い一方の静止画像ファイルを、後述する配置印刷処理における印刷対象(特許請求の範囲に記載の抽出対象に相当)から除外する。
互いの撮影日時の差違が短い関係にある一対の静止画像ファイルが存在する場合は、先の撮影が失敗だったため、短時間の間に再び撮影をした、という状況が予想される。よって、本実施形態のMFP1では、そのような静止画像ファイルは、印刷対象から除外することにより、撮影に失敗した静止画像ファイルのインデックス画像までが、画像一覧20に配置されることを防止している。
そして、削除画像数カウンタに1を加算し(S526)、削除画像数カウンタ値が、S501の処理で算出した「削減画像数」以上となったか否かを判断する(S527)。S527の判断が否定される間(S527:No)、S524から処理を繰り返す。
すなわち、間隔時間情報が短い順に、第1静止画像ファイルID記憶領域602に記憶されたファイルIDを読み出し、そのファイルIDで特定される静止画像ファイルを印刷対象から除外する処理を、削減画像数の分だけ繰り返す。
このようにすれば、削除画像数の分だけ、静止画像ファイルが印刷対象から除外されるので、静止画像ファイルが多数ある場合であっても、画像一覧20の印刷ページ総数を、予め設定した最大印刷枚数内に抑えることができる。
このようにして処理を繰り返すうちに、S527の判断が肯定されると(S527:Yes)、印刷静止画像決定処理を終了する。
本実施形態の印刷静止画像決定処理(S212)によれば、ユーザにより設定された最大印刷枚数内で画像一覧を出力できるように、印刷対象の静止画像ファイルが決定される。そして、続いて、インデックス画像21,22の配置順序を決定する配置情報決定処理を実行する。
図14は、配置情報決定処理を示すフローチャートである。まず、処理済みのファイル数をカウントするファイル数カウンタ、処理済みの画像数をカウントする処理画像数カウンタ、フレーム画像の抽出枚数をカウントするフレーム画像抽出枚数カウンタの値を、それぞれ0で初期化する(S1001)。なお、これらのカウンタは、カウンタ記憶領域13m(図2参照)に設けられている。
次に、ファイル数カウンタ値のファイルIDに対応した画像ファイルの種類を判定する(S1002)。最初は、ファイル数カウンタの値が「0」であるため、ファイルID「0」の画像ファイルの種類を判定することとなる。
画像ファイルの種類が動画像であると判断した場合(S1002:動画像)、動画像ファイルの撮影日を表すファイル日付情報、動画像ファイルの撮影開始時間を表すファイル時間情報、動画像ファイルのfpsを表すfps情報、および動画像ファイルの総フレーム数を表す総フレーム数情報を、その動画像ファイルのヘッダから読み出す(S1003)。
そして、処理画像数カウンタ値の配置順序に対応したファイル日付情報記憶領域207へファイル日付情報を記憶し、ファイル時間情報記憶領域208へファイル時間情報を記憶し、fps情報記憶領域206へfps情報を記憶し、総フレーム数記憶領域205へ総フレーム数情報を記憶する(S1004)。
次に、処理対象の画像ファイルについて配置情報を作成し、配置情報記憶領域13i(図6参照)へ記憶する処理を行う。具体的には、まず、処理画像数カウンタ値の配置順序に対応したファイルID記憶領域302(図6参照)へ、現時点におけるファイル数カウンタの値をファイルIDとして記憶する。また、現時点におけるフレーム画像抽出枚数カウンタの値から抽出フレーム番号を算出し、抽出フレーム番号記憶領域304(図6参照)へ記憶する(S1004a)。
次に、抽出フレーム番号に対応した、フレーム画像情報の画像時間情報を算出し、配置順序に対応する画像時間情報記憶領域306へ記憶する(S1005)。本実施形態においては、一例として、以下のように、画像時間情報を算出するものとする。
ここで、動画像ファイルの撮影開始時間を表すファイル時間情報をVideoTime、fps情報をFPS、フレーム画像情報の撮影時間を表す画像時間情報をFrameTime、抽出対象のフレーム画像情報に対応したフレーム画像が、動画像の先頭から何フレーム目に位置しているかを示す値をNとすると、Nは下記の数式5で求められる。なお、下記数式5において、PickFrameは、1動画から合計で何フレーム抽出するかを表す値(すなわち、抽出フレーム数記憶領域204に記憶された値)であり、PickNoは、PickFrameの内、何番目の抽出フレームかを表す値である。
(数式5)
N = (TotalFrame/PickFrame)× PickNo
そして、ファイル時間情報VideoTimeを、以下数式6のように、動画像時間情報VT_Hour、動画像分情報VT_Minute、動画像秒情報VT_Secondに分解する。
(数式6)
VT_Hour = [ VideoTime/10000 ]
VT_Minute = [ (VideoTime - VT_Hour×10000)/100 ]
VT_Second = VideoTime - (VT_Hour×10000 + VT_Minute×100)
次に、フレーム時情報Frame_Hour、フレーム分情報Frame_Minute、フレーム秒情報Frame_Secondを下記数式7の通り算出する。
(数式7)
ここでCal_Second,Cal_Minute,Cal_Hourは上記情報を求めるための一時変数とする。
また、A mod BはAをBで割った時の剰余を表す
Cal_Second = VT_Second + [ N / FPS]
Cal_Minute = VT_Minute + [ Cal_Second / 60 ]
Cal_Hour = VT_Hour + [ Cal_Minute / 60 ]
Frame_second = Cal_Second mod 60
Frame_Minute = Cal_Minute mod 60
Frame_Hour = Cal_Hour mod 24
以上を、例えば、下記の数式8を用いて結合し、フレーム画像情報の撮影時間を表す画像時間情報FrameTimeを算出する。
(数式8)
FrameTime = Frame_Hour×10000 + Frame_Minute×100 + Frame_Second
次に、画像日付算出処理を実行する(S1006)。画像日付算出処理は、フレーム年情報Frame_Year、フレーム月情報Frame_Month、フレーム日情報Frame_Dayを算出する処理である。
図15は、画像日付算出処理(S1006)を示すフローチャートである。なお、図15のフローチャートに示す変数Mは、現日付からM日進めることを意味する変数である。
まず、フレーム年情報Frame_Year、フレーム月情報Frame_Month、フレーム日情報Frame_Dayに、それぞれ、動画像年情報VD_Year、動画像月情報VD_Month、動画像日情報VD_Dayを代入する(S1201)。次に、変数Mに、[Cal_Hour/24]を代入する(S1202)。次にMが0であるかを判断し(S1203)、肯定されると(S1203:Yes)、本処理を終了する。
一方、否定されると(S1203:No)、フレーム日情報Frame_Dayを判断する(S1204)。「1以上27以下」と判断されると(S1204:1以上27以下)、Frame_Dayに「1」を加算する(S1205)。
一方、S1204の判断において、「28または29」と判断されると(S1204:28or29)、Frame_Monthが「2」であるか否かを判断する(S1206)。否定される場合(S1206;No)、S1205の処理に移行する。
一方、肯定されると(S1206:Yes)、次に、Frame_Dayが「28」であるかを判断する(S1208)。否定される場合(S1208:No)、Frame_Dayに「1」を代入し、Frame_Monthに「1」を加算する(S1210)。
一方、S1208の判断が肯定されると(S1208:Yes)、Frame_Yearで示される年がうるう年か否かを判断する(S1209)。肯定される場合(S1209:Yes)、S1205の処理に進む。否定される場合(S1209:No)、S1210の処理に進む。
次に、S1204の判断において、「30」と判断されると(S1204:30)、次に、Frame_Monthが4,6,9,11のいずれかであるかを判断する(S1211)。肯定される場合(S1211:Yes)、S1210の処理に進む。
一方、否定される場合(S1211:No)、Frame_Dayに「1」を加算する(S1216)。次に、S1204の判断において、「31」と判断されると(S1204:31)、次に、Frame_Yearが12であるかを判断する(S1215)。否定される場合(S1215:No)、S1216の処理に進む。
一方、肯定される場合(S1215:Yes)、Frame_Dayに「1」を代入し、Frame_Monthに「1」を代入し、Frame_Yearに「1」を加算する(S1217)。
S1205,S1210,S1216,S1217の処理の後は、変数Mから「1」減算し(S1212)、S1203に戻る。そして、S1203の判断が肯定されると(S1203:Yes)、本処理を終了する。
図14に戻り説明する。図15に示す処理で算出した値を、例えば下記数式11を用いて結合し、フレーム画像情報の撮影日付を表す画像日付情報FrameDateを算出する。算出された画像日付情報は、画像日付情報記憶領域305へ記憶する(S1007)。
(数式11)
FrameDate = Frame_Year×10000 + Frame_Month×100 + Frame_Day
このようして、動画像ファイルから抽出される1のフレーム画像情報について、配置情報が作成され、配置情報記憶領域13iへ記憶すると、次に、処理済みの画像数をカウントする処理画像数カウンタ、およびフレーム画像抽出枚数カウンタに、それぞれ「1」を加算する(S1008)。
そして、フレーム画像抽出枚数カウンタの値が、その動画像ファイルについて決定されたフレーム画像抽出数以上となったか否かを判断する(S1009)。S1009の判断が否定される場合(S1009:No)、S1004aに戻り処理を繰り返す。
一方、S1009の判断が肯定される場合(S1009:Yes)、次にフレーム画像抽出枚数カウンタを0で初期化し(S1010)、ファイル数カウンタに1を加算する(S1016)。なお、フレーム画像抽出枚数カウンタは、カウンタ記憶領域13m(図2参照)に設けられている。そして、ファイル数カウンタの値が、メディアカードに格納される静止画像ファイルと動画像ファイルの合計を示す「総処理ファイル数」以上となったか否かを判断する(S1017)。S1017の判断が否定される場合(S1017:No)、S1002の処理に戻り、ファイル数カウンタ値のファイルIDに対応した次の画像ファイルを処理対象として選択し、処理を繰り返す。
次に、処理対象の画像ファイルが静止画像ファイルであると判断された場合(S1002:静止画像)について説明する。静止画像ファイルである場合も、同様に、まず、その静止画像ファイルに関するファイル情報を作成し、ファイル情報記憶領域13h(図4参照)へ格納する。
具体的には、まず、処理画像数カウンタ値の配置順序に対応したファイルID記憶領域302(図6参照)へ、現時点におけるファイル数カウンタの値を記憶し、抽出フレーム番号記憶領域304(図6参照)へ「0」を記憶する(S1011a)。そして、処理対象の静止画像ファイルの撮影日を表すファイル日付情報および撮影時間を表すファイル時間情報を読み出し(S1011)、ファイル情報記憶領域13hのうち、ファイル数カウンタ値のファイルIDに対応した領域へ、取得したファイル日付情報とファイル時間情報とを記憶する(S1012)。なお、fps情報記憶領域206には「0」を記憶する。
次に、ファイル数カウンタ値のファイルIDに対応した処理対象の静止画像ファイルのファイル日付情報を、配置情報記憶領域13i(図6参照)における、処理画像数カウンタ値の配置順序に対応する画像日付情報記憶領域305へ記憶し、同配置順序に対応する画像時間情報記憶領域306へ、処理対象の静止画像ファイルのファイル時間情報を記憶する(S1013)。そして、処理画像数カウンタに1を加算し(S1015)、S1016の処理に移行する。
このようにして処理を繰り返すうちに、S1017の判断が肯定されると(S1017:Yes)、次に、画像時間情報の小さい順に配置情報をソートし(S1018)、配置情報決定処理(S102)を終了する。配置情報決定処理(S102)により、配置情報で特定されるインデックス画像21,22の各々について、対応する配置順序が決定する。
図16は、配置印刷処理を示すフローチャートである。図16に示す配置印刷処理(S103)は、配置情報決定処理(S102;図14参照)によって決定された順序でインデックス画像21,22が配列された画像一覧20を、記録用紙に印刷出力する処理である。
まず、画像一覧20に配列される横一列分のインデックス画像21,22の数を示す「横方向の配置枚数」を、横方向画像配置数記憶領域12bから読み出す(S1101)。次に、1ページ分の画像一覧20に配置可能なインデックス画像21,22の数を示す「1ページ内画像配置数」を、1ページ内画像配置数記憶領域12cから読み出す(S1102)。
次に、ページカウンタを1で初期化し(S1103)、静止画像ファイルの総数と、フレーム画像の抽出数の総数とを合計した値である「処理画像総数」を、処理画像総数記憶領域13c(図2参照)から算出する(S1104)。なお、ページカウンタは、カウンタ記憶領域13mに設けられている。
次に、処理画像総数と、1ページ内画像配置数とから、何ページ分の画像一覧を印刷出力するかを示す「生成ページ数」を算出し、生成ページ数記憶領域13d(図2参照)へ記憶する(S1105)。
本実施形態では、生成ページ数page_noは下記数式12を用いて算出する。ここでは、処理画像総数をTotalImageNo,1ページ内画像配置数をLAYOUT_NUMとしている。
(数式12)
page_no = [ TotalImageNo / LAYOUT_NUM ] + 1
次に、レイアウト画像カウンタを0で初期化し(S1106)、1枚の記録用紙内に配置する配置画像数layout_noを算出する(S1107)。本実施形態においては、layout_noは下記数式13を用いて算出する。また、レイアウト画像カウンタは、カウンタ記憶領域13mに設けられている。
(数式13)
(ページカウンタ値) < 生成ページ数 の時
layout_no = (1ページ内画像配置数)
(ページカウンタ値) ≧ 生成ページ数 の時
layout_no = (グループ画像数) - { (1ページ内画像配置数) × (ページカウンタ値) }
次に、配置順序に対応したファイルIDと、抽出フレーム番号とを配置情報記憶領域13iから読み出す(S1108)。そして、読み出したファイルIDに対応する画像ファイルが、動画像ファイルであるか静止画像ファイルであるかを判定する(S1109)。
S1109の判定において、動画像ファイルと判定される場合(S1109:動画像)、次に、抽出フレーム番号に対応した、1フレーム画像分のフレーム画像情報を動画像ファイルから抽出する(S1110)。
次に、抽出したフレーム画像情報をデコード処理する(S1111)。そして、デコードしたフレーム画像情報をインデックス画像21,22の規定サイズに縮小または拡大し、配置用バッファの所定位置に配置する(S1112)。一方、S1109の判定において、静止画像ファイルと判定される場合(S1109:静止画像)、その静止画像ファイルに対応したファイル付加情報記憶領域209を参照し、非印刷画像フラグが記憶されているか否かを判断する(S1109a)。
S1109aの判断が否定される場合(S1109a:No)、配置順序に対応したファイルIDで特定される静止画像ファイルを抽出し、デコード処理する(S1113)。そして、デコードされた静止画像ファイルをインデックス画像21,22の規定サイズに縮小または拡大し、配置用バッファの所定位置に配置する(S1114)。
一方、S1109aの判断が肯定される場合(S1109a:Yes)、S1108に戻り、次の配置順序に対応したファイルIDと抽出フレーム番号とを読み出す(S1108)。すなわち、非印刷画像フラグが対応付けられた静止画像ファイルは、抽出対象外とされ、この静止画像ファイルのインデックス画像22は形成されない。
このようにして、フレーム画像情報または静止画像ファイルのいずれかをデコード処理して配置用バッファに配置する配置処理を実行した後、次に、横方向に配置できる画像数の上限である「横方向の配置枚数」回分の配置処理を行ったか否かを判断する(S1115)。S1115の判断が否定される場合(S1115:No)、配置用バッファにおける次のデータの配置位置を示す横方向位置を更新する(S1119)。
そして、レイアウト画像カウンタに「1」を加算し(S1120)、レイアウト画像カウンタの値が、現在の処理対象の記録用紙に配置するインデックス画像21,22の数「layout_no」以上となったか否かを判断する(S1121)。S1121の判断が否定される場合(S1121:No)、S1108の処理に戻り、次の配置順序に対応した配置情報を処理する。
このようにして処理を繰り返す内に、「横方向の配置枚数」回分の配置処理が実行されると、S1115の判断が肯定されるので(S1115:Yes)、次に、配置用バッファのデータをプリンタ3(図2参照)へ渡す(S1116)。これにより、配置用バッファのデータがプリンタ3における印刷処理にかけられる。ただし配置用バッファに画像が配置されない領域については印刷処理を行わない。
次に、配置用バッファにおける次のデータの横方向配置位置を示す横方向位置を初期化し(S1117)、また、配置用バッファにおける次のデータの縦方向配置位置を示す縦方向位置を更新する(S1118)。この横方向位置および縦方向位置によって、画像一覧20における次の行の左端から、次のインデックス画像21,22が配列されるように、配置用バッファにおける次のデータの配置位置が決定される。そして、上述したS1120、S1121の処理を実行する。
このようにして処理を繰り返すことにより、メディアカードに格納された画像ファイル群のうち、動画像ファイルからは、抽出フレーム数決定処理(S209;図11参照)で決定された数のフレーム画像に対応するフレーム画像情報が抽出され、また、印刷静止画像決定処理(S212;図12参照)で印刷可能フラグが付加された静止画像ファイルが抽出される。
このようにして、処理対象の1ページ分の記録用紙に配置するインデックス画像21,22の全てについて印刷処理を完了すると、S1121の判断が肯定されるので(S1121:Yes)、図17に示す次の処理に移行する。
図17は、図16に示す配置印刷処理の続きを示すフローチャートであって、S1121の判断が肯定される場合に実行される。
まず、配置用バッファに、未だ印刷処理を行っていないデータが存在するかを判断する(S1122)。S1122の判断が肯定される場合(S1122:Yes)、その残りのデータをプリンタ3に渡し(S1123)、プリンタ3にて印刷出力をさせ、S1124の処理に移行する。一方、S1122の判断が否定される場合(S1122:No)、S1123の判断をスキップし、S1124の処理に移行する。
そして、1ページ分のデータ出力が完了したことを示す印刷完了命令をプリンタ3に渡し(S1124)、ページカウンタに「1」を加算する(S1125)。次に、配置用バッファにおける次のデータの配置位置を示す横方向位置および縦方向位置を初期化する(S1126)。そして、ページカウンタの値が「生成ページ数」より大かを判断する(S1127)。S1127の判断が否定される場合(S1127:No)、図16に示すS1106の処理に戻り、次ページの処理を開始する。
一方、S1127の判断が肯定される場合(S1127:Yes)、配置印刷処理を終了する。
なお、図16、図17に示す配置印刷処理(S103)において、同一の動画像ファイルに由来するインデックス画像21が、画像一覧20において互いに隣接する場合には、それらのインデックス画像21,22を連結する図柄(図3参照)を形成して印刷しても良いが、処理の詳細については、説明を省略する。
第1実施形態のMFP1によれば、「最大配置個数」以下のインデックス画像に対応したフレーム画像情報と静止画像ファイルとが抽出され、その抽出されたフレーム画像情報と静止画像ファイルとに基づいて、インデックス画像21,22を配列した画像一覧20が出力されるので、メディアカード内に多数の画像ファイルが格納されている場合であっても、画像一覧20の印刷ページ数を、ユーザが予め設定した上限値(最大印刷枚数)以内に抑えることができる。
また、静止画像ファイルのインデックス画像22と、フレーム画像情報に基づくインデックス画像21と共に配置した画像一覧20が出力されるので、メディアカードに静止画像ファイルと動画像ファイルとが混在している場合であっても、ユーザにとって一覧性の良い画像一覧20を出力することができる。
次に、図18から図20を参照して、第2実施形態のMFP1について説明する。上記第1実施形態のMFP1では、印刷対象から除外する静止画像ファイルを、撮影時間間隔に基づいて決定していた。
これに対し、第2実施形態のMFP1では、静止画像ファイル毎にダイナミックレンジを表すダイナミックレンジ情報を取得し、そのダイナミックレンジ情報に基づいて、印刷対象から除外する静止画像ファイルを決定する点において、第1実施形態のMFP1と異なっている。
なお、第2実施形態におけるMFP1の外観構成と電気的構成とは、第1実施形態におけるMFP1と同一のものであるとして説明を行う。以下、第1実施形態と同一の部分には同一の符号を付してその説明を省略し、第1実施形態と異なる点について説明する。
図18は、ダイナミックレンジ情報管理領域13tの構成を示す模式図である。このダイナミックレンジ情報管理領域13tは、第1実施形態における撮影間隔記憶領域13rに代えてRAM13(図2参照)に設けられる領域である。図18に示すように、ダイナミックレンジ情報管理領域13tには、ダイナミックレンジ管理番号記憶領域701、静止画像ファイルID記憶領域702、ダイナミックレンジ情報記憶領域703が設けられている。
ダイナミックレンジ管理番号記憶領域701には、ダイナミックレンジ管理番号が記憶される。静止画像ファイルID記憶領域702には、ファイルIDが記憶される。そして、静止画像ファイル記憶領域702に記憶されたファイルIDで特定される静止画像ファイルのダイナミックレンジ情報が、同一のダイナミックレンジ管理番号で管理されるダイナミックレンジ情報記憶領域703に格納される。なお、後述するように、ダイナミックレンジ情報管理領域13t内の情報は、ダイナミックレンジ情報に従ってソートされるが、図18は、ソート前の状態を図示している。
ここで、本実施形態でいうダイナミックレンジ情報は、静止画像ファイルに対応した画像における、色の明るさの分布を示す情報であり、ダイナミックレンジ情報が大であるほど、その画像は暗い色から明るい色までが幅広く含まれていることを示している。なお、ダイナミックレンジ情報の具体的算出方法は後述する。
図19,図20は、第2実施形態のMFP1において実行される、印刷静止画像決定処理(S2120)を示すフローチャートである。図19,図20に示す印刷静止画像決定処理(S2120)のフローチャートは、第1実施形態のMFP1で実行される印刷静止画像決定処理(S212)に代えて実行される処理であり、第1実施形態の印刷静止画像決定処理(S212)のフローチャート(図12参照)と同一の部分については、同一の符号を付して説明を省略する。
図19,図20に示す印刷静止画像決定処理(S2120)は、第1実施形態の印刷静止画像決定処理(S212)と同様に、メディアカードに格納された静止画像ファイルのうちいくつかを、印刷対象から除外するための処理である。
第2実施形態の印刷静止画像決定処理(S2120)では、ファイル数カウンタ値のファイルIDに対応したファイル種類情報を、ファイル種類記憶領域203から読み出す(S604)。
次に、ファイル数カウンタに「1」を加算し(S605)、読み出した画像ファイルの種類を判定する(S605)。動画像ファイルであると判定された場合(S606:動画像)、S604に戻り処理を繰り返す。
一方、静止画像ファイルであると判定された場合(S606:静止画像)、次に、ファイル数カウンタ値のファイルIDを、静止画像カウンタ値に対応する静止画像ファイルID記憶領域702(図18参照)へ記憶する(S607)。
次に、ファイルIDに対応する静止画像ファイルから、ダイナミックレンジ情報を算出する(S608)。
以下に、ダイナミックレンジ算出方法の一例を説明する。まず、ファイルIDに対応する静止画像ファイルをデコード処理する。このデコード処理により、画像を構成する各画素について、YCrCb色空間の値が得られる。
次に、デコード処理した静止画像ファイルから、画像のヒストグラムを算出する(S508)。具体的には、各画素の値をRGB色空間の値に色変換し、色変換したデータについて、出現する頻度を、全ての画素、全ての色について算出する。
そし、算出したヒストグラムから、ダイナミックレンジ情報を算出する。具体的には、デコード後の静止画像ファイルに含まれる総画素数をPN、画素値がiの時の頻度をFiとしたとき、画素値0から順に、条件1を満たす最小のiを探索する。
(条件1)
同様にして、画素値255から条件2をみたす最大のjを探索する。
(条件2)
このようにしてi,jが決まったら、下式より求まる値をダイナミックレンジ情報Dとする。
D = j - i
このようにしてダイナミックレンジ情報Dが、RGBの各色について求まるので、各色のダイナミックレンジ情報Dを合計した値を、抽出したフレーム画像情報のダイナミックレンジ情報として取得する(S608)。そして、取得したダイナミックレンジ情報を、静止画像カウンタの値で示されるダイナミックレンジ管理番号に対応した、ダイナミックレンジ情報記憶領域703へ記憶する(S609)。
なお、本実施形態では、RGB各色のダイナミックレンジ情報を合計した値を、画像情報のダイナミックレンジ情報として取り扱うものとして説明するが、色別のダイナミックレンジ情報に基づいて、以降の処理を実行するように構成されても良い。
次に、静止画像カウンタに1を加算する(S610)。そして、静止画像カウンタの値が、S502の処理で算出した「静止画像数」以上となったか否かを判断する(S611)。S611の判断が否定される間(S611:No)、S604に戻り処理を繰り返す。したがって、メディアカード内の静止画像ファイルの各々について、そのダイナミックレンジを表すダイナミックレンジ情報が取得される。
このようにして処理を繰り返すうちに、S611の判断が肯定されると(S611:Yes)、図20に示す次の処理に移行する。
図20は、図19に示す印刷静止画像決定処理の続きの部分を示すフローチャートである。図20に示すように、続いて、ダイナミックレンジ情報管理領域13t(図18参照)を、ダイナミックレンジ情報の小さい順にソートする(S522)。すなわち、色の明るさの分布が狭い順となるように、ファイルIDを並べ替える。次に、削除画像数カウンタを「0」で初期化する(S613)。
そして、削除画像数カウンタ値のダイナミックレンジ管理番号に対応した、静止画像ファイルID記憶領域702(図18参照)に記憶されたファイルIDを読み出し(S614)、そのファイルIDに対応するファイル付加情報記憶領域209(図5参照)に、非印刷画像フラグとして「−1」を記憶する(S525)。
そして、削除画像数カウンタに1を加算し(S526)、削除画像数カウンタ値が、S501の処理で算出した「削減画像数」以上となるまで、S614から処理を繰り返す。このようにして処理を繰り返すうちに、S527の判断が肯定されると(S527:Yes)、印刷静止画像決定処理を終了する。
第2実施形態の印刷静止画像決定処理(S2120)によれば、ダイナミックレンジ情報で表されるダイナミックレンジが低い順において、ダイナミックレンジが最小の静止画像ファイルから「削減画像数」分の静止画像ファイルを、印刷対象から除外することができる。
ダイナミックレンジが低い静止画像ファイルは、撮影に失敗した静止画像ファイルである可能性が高いので、ダイナミックレンジが低い静止画像ファイルを優先的に印刷対象から除外することで、ユーザにとってより有用なインデックス画像21,22を、限られたページ数の画像一覧20に配置することができる。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、本発明をパーソナルコンピュータに適用し、PCのモニターに、画像一覧20を表示出力する場合、あるいは、パーソナルコンピュータからプリンタを制御して画像一覧20を印刷出力する場合にも、本発明を適用できる。
また、上述した実施形態では、動画像ファイルおよび静止画像ファイルは、共に撮影により生成された画像ファイルであるものとして説明したが、動画像ファイルおよび静止画像ファイルは、撮影以外の方法で生成されるものであっても、本発明を適用可能である。その場合は、撮影日時に代えて、ファイルの作成日時を表すファイルの生成日時情報や、ファイルの更新日時情報など、他の条件を元に、インデックス画像21,22の配置順序を決定するように構成されても良い。
また、上述した実施形態では、メディアカード内に、静止画像ファイルと動画像ファイルとが混在している場合について説明したが、メディアカード内に動画像ファイルのみが格納されている場合にも本発明は適用可能である。
また、上述した実施形態では、着脱可能なメディアカード内に記憶されている画像情報を処理対象としていたが、MFP1の内部メモリに格納された画像情報を処理対象とする場合にも、本発明は適用可能である。
また、上述した実施形態では、静止画像ファイル間における撮影日時の差違、またはダイナミックレンジ情報に基づいて、抽出対象から除外する静止画像ファイルを決定していたが、他の条件に基づいて、抽出対象から除外する静止画像ファイルを決定するものであっても良い。例えば、静止画ファイルに対応した静止画像の各々について、各画像のボケの程度に相当する情報を取得するボケ情報取得手段を備え、そのボケ情報取得手段により取得した情報に従って、ボケ度の高い画像に対応した静止画像ファイルを優先的に抽出対象から除外するものであっても良い。
また、上記実施形態では、録画時間の長さが大である動画像ファイルほど、その動画像ファイルから多数のフレーム画像に対応したフレーム画像情報が抽出されるように、フレーム画像の抽出数が決定されていたが、他の条件に基づいてフレーム画像の抽出数が決定されても良い。
例えば、メディアカードに格納される動画像ファイルの各々について、その動画像ファイルに含まれるシーン切り替え回数に相当する切り替え回数情報を取得する切り替え回数情報取得手段と、その切り替え回数情報取得手段により取得される切り替え情報に基づいて、シーン切り替え回数が大である動画像ファイルほど、その動画像ファイルから多数のフレーム画像に対応したフレーム画像情報が抽出されるように、メディアカードに格納される動画像ファイルの各々について、フレーム画像の抽出数を決定しても良い。
例えば、フレーム画像間の色(画素値)の変化量を算出し、その変化量が閾値を超えたことに基づいて、1回のシーン切替があったと判断することにより、1動画像ファイルに含まれるシーン切り替え回数に相当する切り替え回数情報を取得することができる。
また、上記実施形態では、インデックス画像21,22が撮影日時順に配列されていたが、例えば、インデックス画像21,22に含まれる顔の個数の順序や、ダイナミックレンジ、あるいは輝度など、他の条件に従った順序で、インデックス画像21,22が配列されていてもよい。