(57)【要約】【課題】画面表示にはサムネール画像だけを使用し、印刷時に始めて実画像を使用することで高速化を図っているが、この方式によれば画面上で画像の細部を確認できないという問題があった。【解決手段】画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていく。【選択図】      図２
2005027087.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データをデコードするデコード工程と、
デコードされた画像データから低解像度画像を作成する低解像度画像作成工程と、
デコードされた画像データから高解像度画像を作成する高解像度画像作成工程と、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュ工程と、
表示装置上に一つ以上の画像をレイアウト表示する表示工程とを備え、
画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記表示工程とは非同期に前記高解像度作成工程により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とする画像表示方法。
【請求項２】
さらに前記表示工程でレイアウト表示されたレイアウトで、複数の画像をプリントするプリント工程を有することを特徴とする請求項１に記載の画像表示方法。
【請求項３】
さらに、前記メモリは一つ以上の低解像度画像をキャッシュすることを特徴とする請求項１ないし２のいずれか１項に記載の画像表示方法。
【請求項４】
複数の画像を一覧表示し、レイアウト表示する画像を選択するための画像選択工程をさらに備えることを特徴とする請求項１ないし３のいずれか１項に記載の画像表示方法。
【請求項５】
上記低解像度画像と高解像度画像は同一のファイルからデコードされることを特徴とする、請求項１ないし４のいずれか１項に記載の画像表示方法。
【請求項６】
上記画像データはＤＣＦ／ＥＸＩＦフォーマットであり、上記低解像度画像はフォーマットで規定されたサムネール画像であることを特徴とする、請求項１ないし５のいずれか１項に記載の画像表示方法。
【請求項７】
上記画像データはＪＰＥＧフォーマットであり、上記低解像度画像は直流成分のみに基づいて作成されることを特徴とする、請求項１ないし６のいずれか１項に記載の画像表示方法。
【請求項８】
上記画像データは複数のレゾリューションレベルを備えるように符号化されたＪＰＥＧ２０００フォーマットであり、上記低解像度画像は低レゾリューションのデコードにより得られることを特徴とする、請求項１ないし５のいずれか１項に記載の画像表示方法。
【請求項９】
上記画像データはＦｌａｓｈｐｉｘフォーマットであり、上記低解像度画像は低階層部分のデコードにより得られる画像であることを特徴とする、請求項１ないし５のいずれか１項に記載の画像表示方法。
【請求項１０】
上記低解像度画像作成工程は、同一のファイルに低解像度画像が無い場合には実画像から低解像度画像を作成する請求項１ないし４のいずれか１項に記載の画像表示方法。
【請求項１１】
上記低解像度画像作成工程は、低解像度画像と実画像とのアスペクト比が違う場合には、低解像度画像を補正処理して、新たな低解像度画像を作成する請求項１０に記載の画像表示方法。
【請求項１２】
上記低解像度画像の補正処理は、前記低解像度画像中の画素データを用いて、実画像データと同一アスペクト比の低解像度画像を作成する請求項１１に記載の画像表示方法。
【請求項１３】
上記低解像度画像の補正処理は、同一ファイルの前記低解像度画像中の画素データを複写して新たな低解像度画像を作成する請求項１１に記載の画像表示方法。
【請求項１４】
入力された画像データをデコードするデコード手段と、
デコードされた画像データから低解像度画像を作成する低解像度画像作成手段と、
デコードされた画像データから高解像度画像を作成する高解像度画像作成工程と、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュ手段と、
表示装置上に一つ以上の画像を表示装置にレイアウト表示させる表示制御手段とを備え、
画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記レイアウト表示とは非同期に前記高解像度作成手段により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とする画像表示装置。
【請求項１５】
コンピュータにより読み取り可能なプログラムを記憶する記憶媒体であって、前記プログラムはコンピュータにより請求項１ないし１３のいずれか一行の画像処理方法を実可能とすることを特徴とする記憶媒体。
【請求項１６】
以下のモジュールで構成される、コンピュータにより実行可能なプログラムであって、
入力された画像データをデコードするデコードモジュールと、
デコードされた画像データから低解像度画像を作成する低解像度画像作成モジュールと、
デコードされた画像データから高解像度画像を作成する高解像度画像作成モジュールと、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュモジュールと、
表示装置上に一つ以上の画像をレイアウト表示する表示モジュールとを備え、画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記表示工程とは非同期に前記高解像度作成工程により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像をレイアウト表示する方法、装置および記憶媒体、プログラムに関する。
【０００２】
【従来の技術】
一つ以上の画像をレイアウトして印刷するアプリケーションにおいて、実際に印刷を行う前にモニター上でレイアウト表示を行い、印刷内容を確認するということが一般に行われている。
【０００３】
【特許文献１】
特開２００１−０５４０４３号公報
【特許文献２】
特開平１１−００４３６７号公報
【０００４】
【発明が解決しようとする課題】
しかしながら従来の方式では、表示を行うための画像のデコードに時間がかかり、効率的な作業を妨げるという問題があった。
【０００５】
例えば特許文献１によれば、これを改善するためサムネール画像を用い、画面表示にはサムネール画像だけを使用し、印刷時に始めて実画像を使用することで高速化を図っているが、この方式によれば画面上で画像の細部を確認できないという問題があった。
【０００６】
またレイアウト表示を行うわけではないが特許文献２によれば、デジタルカメラ背面の画像表示領域に画像を連続的に切り替えて表示する際にサムネール画像を用い、画像の切り替えを終了（ユーザーが早送りボタンを放すなど）したときに主画像で置き換えるということを行っている。この方式によれば主画像デコード中は次の操作が開始できず、操作性が悪いという問題があった。
【０００７】
また、サムネールを表示する際に、サムネールと実画像のアスペクト比や画角が違っていた場合には、サムネールを表示した後に実画像を表示したときに画像が切り替わって見えるという問題があった。
【０００８】
【課題を解決するための手段】
上記課題を解決するため本発明においては、画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていくことで、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【０００９】
【発明の実施の形態】
（第１の実施例）
図１は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図１において、１０１はＣＰＵで、システム全体の制御を行なっている。１０２はキーボードで、１０２ａのマウスとともにシステムに入力するために使用される。１０３は表示装置で、ＣＲＴや液晶等で構成されている。１０４はＲＯＭ、１０５はＲＡＭで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。１０６はハードディスク装置、１０７はフロッピー（Ｒ）ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。１０８はプリンタである。
【００１０】
図３に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。３１〜３４は画像表示領域、３５はプレビューボタン、３６は印刷ボタンである。ＨＤＤ１０６にはデジタルカメラの標準規格であるＤＣＦ形式の画像データが複数格納されており、操作者がプレビューボタン３５を押下すると画像データをＣＰＵ１０１でデコードし、３１〜３４に表示する。また、印刷ボタン３６を押下すると、画面に表示されたレイアウトに従ってプリンタ１０８を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ（画素数）であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【００１１】
従来、ＤＣＦ画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置１０３の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、ＤＣＦ画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置１０３に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【００１２】
図２のフローチャートを用いて、上記処理の流れを詳細に説明する。
【００１３】
ステップＳ２０１で、画像のサムネールをデコードする。
【００１４】
ステップＳ２０２で、サムネールを用いてレイアウト表示を行う。
【００１５】
ステップＳ２０３で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【００１６】
ステップＳ２０４で、バックグラウンドスレッドを起動する。
【００１７】
ステップＳ２０５で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればＳ２０５に戻る。デコードが完了したらＳ２０６に進む。
【００１８】
ステップＳ２０６で、デコードされた主画像を用いてレイアウト表示を更新する。
【００１９】
ステップＳ２０７で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならＳ２０５へ、完了したら処理を終了する。
【００２０】
続いてバックグラウンドスレッドの処理を説明する。
【００２１】
ステップＳ２０８でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【００２２】
ステップＳ２０９で変数ｉを値０で初期化する。
【００２３】
ステップＳ２１０でｉ番目の主画像がキャッシュされているかどうかをチェックし、されていなければＳ２１１へ、キャッシュされていればＳ２１３へ進む。
【００２４】
ステップＳ２１１でｉ番目の主画像をデコードする。
【００２５】
ステップＳ２１２でｉ番目の主画像をキャッシュする。
【００２６】
ステップＳ２１３で変数ｉを値１だけインクリメントする。
【００２７】
ステップＳ２１４で全画像をデコードしたかどうかをチェックし、まだならＳ２１０に戻る。完了したらＳ２１５に進み、自分自身を休眠状態にする。
【００２８】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【００２９】
次に、ステップＳ２０１のサムネールのデコード方法について、詳細に説明する。
【００３０】
一般にデジタルカメラのアスペクトは４：３であり、サムネールも４：３であるために、多くのデジタルカメラでは、上記の方法でサムネールを用いることが可能であるが、一部のデジタルカメラにはアスペクトが４：３ではないものも存在する。
【００３１】
このような画像の場合、ＤＣＦ規格において、サムネールのサイズはアスペクト比４：３の１６０ｘ１２０と定められているため、アスペクトが４：３でない画像についてのサムネールは上下あるいは左右に黒帯や白帯が挿入されている場合がある。このような画像について、アスペクト４：３の画像と同様にサムネールを用いると、サムネール画像表示時は画像以外の黒帯が表示され、実画像に切り替わった時にはその黒帯が消え、画角も変化するという状態になってしまうため、一般的には使えない。
【００３２】
しかしながら、サムネールを用いないとレスポンス性能が低下してしまうので、あらかじめサムネールにがどのような状態で格納されているかを知っている画像については、サムネールを補正して、そのサムネールを用いることで、高レスポンスを維持することが可能である。
【００３３】
では、ステップＳ２０１のサムネールのデコード方法について、図９を用いて説明する。
【００３４】
ここでいうサムネールとは、ＤＣＦ規格のサムネールであって、１６０ｘ１２０のサイズで画像ファイル中に格納されているものを示す。
【００３５】
ステップＳ９０１で、画像ファイル中にＤＣＦサムネールが存在するかどうかを判断し、ＤＣＦサムネールが存在していた場合には、ステップＳ９０２に進み、存在しない場合はステップＳ９０６に進む。
【００３６】
ステップＳ９０２で、画像ファイルのメタデータから実画像の縦と横のサイズを取り出し、そのアスペクト比が４：３かどうかを判断し、４：３であればステップＳ９０３に進み、４：３でなければステップＳ９０４に進む。
【００３７】
ステップＳ９０３で４：３の画像であった場合には、画像ファイル中のサムネールをそのまま用いることにより、高レスポンスを実現することができる。
【００３８】
ステップＳ９０４において、あらかじめサムネールがどのような状態で格納されているかどうかを知っている機種かどうかを画像ファイル中のメタデータから判断し、サムネールの状態がわかっている特定機種である場合にはステップＳ９０５にすすみ、そうで無い場合にはステップＳ９０６に進む。
【００３９】
ステップＳ９０５においては、格納されているサムネールはそのままでは使えないので、サムネール画像を処理して、補正サムネールデータを作成する。
【００４０】
補正サムネールデータの作成方法については後述する。
【００４１】
ステップＳ９０６において、画像ファイル中のサムネールを用いることができない場合には、実画像からサムネールデータを作成する。
【００４２】
ここで、補正サムネールデータの作成方法について説明する。
【００４３】
図１０はある機種のサムネールと実画像データを表している。
【００４４】
実画像データに比べ、サムネールデータは左右のデータが欠落し、さらに上下方向につぶれた画像となっている。
【００４５】
そこで、左右の画素は両端の画素から補完し、さらに上下方向にも伸ばした画像が「補正サムネール」である。
【００４６】
このようにして、実画像のアスペクトが４：３以外の画像についてはサムネールの補正処理を行って、補正サムネールを作成し、レスポンス性能を向上させることが可能である。
【００４７】
また、この例では、補正サムネールは単純に、サムネール画像中の画素（この場合は両端の画素）を繰り返しコピーして補完している。なお、左右端からの距離が遠くなるにしたがって、近隣の画素の平均などの処理を行って、ぼかすことにより、左右端の不連続さが気にならないようにしても良い。
【００４８】
その場合は、左端に４画素追加する場合、補正サムネール画像Ｉｔ（ｘ，ｙ）の画素はもともと格納されていたサムネール画像Ｉｔｏ（ｘ，ｙ）の画素から次のように導き出される。右端も同様である。
【００４９】
Ｉｔ（０，ｙ）＝（Ｉｔｏ（０，ｙ−２）＋Ｉｔｏ（０，ｙ−１）＋Ｉｔｏ（０，ｙ）＋Ｉｔｏ（０，ｙ＋１）＋Ｉｔｏ（０，ｙ＋２））／５
Ｉｔ（１，ｙ）＝（Ｉｔｏ（０，ｙ−２）＋Ｉｔｏ（０，ｙ−１）＋Ｉｔｏ（０，ｙ）＋Ｉｔｏ（０，ｙ＋１）＋Ｉｔｏ（０，ｙ＋２））／５
Ｉｔ（２，ｙ）＝（Ｉｔｏ（０，ｙ−１）＋Ｉｔｏ（０，ｙ）＋Ｉｔｏ（０，ｙ＋１））／３
Ｉｔ（３，ｙ）＝（Ｉｔｏ（０，ｙ−１）＋Ｉｔｏ（０，ｙ）＋Ｉｔｏ（０，ｙ＋１））／３
ただし、ｙ＝０の場合は、ｙ，ｙ＋１，ｙ＋２の画素のみを用いる。
【００５０】
また、ステップＳ２０４の主画像デコード完了を待つループの間で、キーボード１０２、マウス１０２ａ等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間操作者の入力を受け付けなくなるということがなくなる。
【００５１】
なお、ここではステップＳ２０２とＳ２０３を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【００５２】
（第２の実施例）
図１は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図１において、１０１はＣＰＵで、システム全体の制御を行なっている。１０２はキーボードで、１０２ａのマウスとともにシステムに入力するために使用される。１０３は表示装置で、ＣＲＴや液晶等で構成されている。１０４はＲＯＭ、１０５はＲＡＭで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。１０６はハードディスク装置、１０７はフロッピー（Ｒ）ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。１０８はプリンタである。
【００５３】
図３に、第２実施形態のアプリケーションソフトウェアの画面構成例を示す。４１〜４４は画像表示領域、４５はプレビューボタン、４６は印刷ボタン、４７はページ戻しボタン、４８はページ送りボタンである。また、４９はサムネール画像一覧表示領域であり、操作者はマウス１０２ａを用いるなどして、所望の画像を一覧の中から選択できるようになっている。
【００５４】
ＨＤＤ１０６にはデジタルカメラの標準規格であるＤＣＦ形式の画像データが複数格納されており、特定のディレクトリ内に格納されている全画像データがサムネール画像一覧表示領域に表示されている。図４においては３６個の画像の表示しか示されていないが、それ以上の数の画像データがディレクトリ内に格納されている場合はスクロールバーを用いるなどして全画像を表示・選択できるようにする。
【００５５】
はじめ画像表示領域４１〜４４には画像は表示されておらず、サムネール画像一覧表示領域には、ＨＤＤ１０６の特定のディレクトリに格納されたＤＣＦ画像、１．ｊｐｇ，２．ｊｐｇ，３．ｊｐｇ，．．．，３６．ｊｐｇが表示されている。操作者がマウス１０２ａを用いてサムネール画像をクリックしていくと、ＲＡＭ上の文字列配列に、図５に例示するように、クリックした順に画像ファイル名が格納されていく。これを４つずつ区切って、ページを構成する。すなわち、１ページ目は５．ｊｐｇ，３．ｊｐｇ，８．ｊｐｇ，４．ｊｐｇの４つの画像をレイアウトしたものであり、画面上の表示領域４１〜４４に表示された様態で、後述するようにプリンタ１０８から印刷される。２ページ目以降も同様である。
【００５６】
操作者がプレビューボタン４５を押下すると１ページ目を構成する４つの画像データをＣＰＵ１０１でデコードし、４１〜４４に表示する。また、印刷ボタン４６を押下すると、画面に表示されたレイアウトに従ってプリンタ１０８を用いて印刷を行う。また、次ページボタン４８を押下すると、２ページ目を同様の手順で表示し、現在の表示ページが２ページ目以降の場合には前ページボタン４７を押下することで、直前のページを表示することができる。画像データは必ずしも画像表示領域と同じ大きさ（画素数）であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【００５７】
従来、ＤＣＦ画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置１０３の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、ＤＣＦ画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置１０３に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【００５８】
また、サムネールのデコードは第一の実施例で述べた図９のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【００５９】
図６のフローチャートを用いて、上記処理の流れを詳細に説明する。
【００６０】
ステップＳ６０１で、表示対象画像のサムネールを用いてレイアウト表示を行う。サムネール画像は一覧表示領域４９に表示する際すでにデコードしているのでこれをキャッシュしておけば、再度デコードする必要がなく高速に表示することができる。
【００６１】
ステップＳ６０２で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【００６２】
ステップＳ６０３で、バックグラウンドスレッドを起動する。
【００６３】
ステップＳ６０４で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればＳ６０７へ、デコードが完了したらＳ６０５に進む。
【００６４】
ステップＳ６０５で、デコードされた主画像を用いてレイアウト表示を更新する。
【００６５】
ステップＳ６０６で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならＳ６０４へ、完了したら処理を終了する。
【００６６】
ステップＳ６０７では操作者によりページ移動の指示があったかどうかをチェックする。操作者がポインティングデバイス１０２ａを用いてボタン４７乃至４８を押下したとき、現在表示しようとしているのと別のページに表示を切り替える必要があるので、ステップＳ６０１に戻ってサムネールによるレイアウト表示から表示をやり直す。移動指示がない場合はステップＳ６０４に戻る。このように、主画像をデコードしている最中でも随時ページ移動の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【００６７】
続いてバックグラウンドスレッドの処理を説明する。
【００６８】
ステップＳ６０８でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【００６９】
ステップＳ６０９で変数ｉを値０で初期化する。
【００７０】
ステップＳ６１０でｉ番目の主画像がキャッシュされているかどうかをチェックし、されていなければＳ６１１へ、キャッシュされていればＳ６１３へ進む。ここでｉ番目の画像とは表示ページを構成する４つの画像のひとつを指しており、現在のページをｐとすると、図５のリストの、先頭から（ｐ−１）＊４＋ｉ番目の画像がｉ番目の画像表示領域に対応している。以下同様である。
【００７１】
ステップＳ６１１でｉ番目の主画像をデコードする。
【００７２】
ステップＳ６１２でｉ番目の主画像をキャッシュする。
【００７３】
ステップＳ６１３で変数ｉを値１だけインクリメントする。
【００７４】
ステップＳ６１４で全画像をデコードしたかどうかをチェックし、まだならＳ６１６に進む。完了したらＳ６１５に進み、自分自身を休眠状態にする。
【００７５】
ステップＳ６１６では、メインスレッドと同様にページ移動の指示があったかどうかの判断を行い、移動されたときはＳ６０９へ、移動がなければＳ６１０へ進む。
【００７６】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【００７７】
また、ステップＳ６０４−Ｓ６０７の主画像デコード完了を待つループの間で、キーボード１０２、マウス１０２ａ等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時ページ移動などの操作者の入力に反応することができ、操作性を向上することができる。
【００７８】
なお、ここではステップＳ６０１とＳ６０２を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【００７９】
（第３の実施例）
図１は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図１において、１０１はＣＰＵで、システム全体の制御を行なっている。１０２はキーボードで、１０２ａのマウスとともにシステムに入力するために使用される。１０３は表示装置で、ＣＲＴや液晶等で構成されている。１０４はＲＯＭ、１０５はＲＡＭで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。１０６はハードディスク装置、１０７はフロッピー（Ｒ）ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。１０８はプリンタである。
【００８０】
図７に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。７１〜７４は画像表示領域、７５はプレビューボタン、７６は印刷ボタンである。７７はレイアウト選択ラジオボタンであり、「４ｉｎ１」を選ぶと図７上の状態、「２ｉｎ１」を選ぶと下の状態に遷移する。図から明らかなように、４ｉｎ１と２ｉｎ１では画像表示領域のアスペクトが変わり、２ｉｎ１では縦長になるので、２ｉｎ１レイアウトのときは画像を回転して表示しなければならない。
【００８１】
ＨＤＤ１０６にはデジタルカメラの標準規格であるＤＣＦ形式の画像データが複数格納されており、操作者がプレビューボタン７５を押下すると画像データをＣＰＵ１０１でデコードし、７１〜７４に表示する。また、印刷ボタン７６を押下すると、画面に表示されたレイアウトに従ってプリンタ１０８を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ（画素数）であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【００８２】
従来、ＤＣＦ画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置１０３の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、ＤＣＦ画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置１０３に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【００８３】
図８のフローチャートを用いて、上記処理の流れを詳細に説明する。
【００８４】
ステップＳ８０１で、表示対象画像のサムネールをデコードする。
【００８５】
ここで、サムネールのデコードは第一の実施例で述べた図９のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【００８６】
ステップＳ８０２で、表示対象画像のサムネールを用いてレイアウト表示を行う。上で説明した通り、２ｉｎ１レイアウトの場合は画像を９０度回転して表示する。
【００８７】
ステップＳ８０３で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【００８８】
ステップＳ８０４で、バックグラウンドスレッドを起動する。
【００８９】
ステップＳ８０５で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればＳ８０８へ、デコードが完了したらＳ８０６に進む。
【００９０】
ステップＳ８０６で、デコードされた主画像を用いてレイアウト表示を更新する。上で説明した通り、２ｉｎ１レイアウトの場合は画像を９０度回転して表示する。
【００９１】
ステップＳ８０７で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならＳ８０５へ、完了したら処理を終了する。
【００９２】
ステップＳ８０８では操作者によりレイアウト変更の指示があったかどうかをチェックする。操作者がポインティングデバイス１０２ａを用いてレイアウト選択ラジオボタン７７を操作してレイアウトを変更したとき、ステップＳ８０１に戻ってサムネールによるレイアウト表示から表示をやり直す。レイアウト変更指示がない場合はステップＳ８０５に戻る。このように、主画像をデコードしている最中でも随時レイアウト変更の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【００９３】
続いてバックグラウンドスレッドの処理を説明する。
【００９４】
ステップＳ８０９でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【００９５】
ステップＳ８１０で変数ｉを値０で初期化する。
【００９６】
ステップＳ８１１でｉ番目の主画像がキャッシュされているかどうかをチェックし、されていなければＳ８１２へ、キャッシュされていればＳ８１４へ進む。
【００９７】
ステップＳ８１２でｉ番目の主画像をデコードする。
【００９８】
ステップＳ８１３でｉ番目の主画像をキャッシュする。
【００９９】
ステップＳ８１４で変数ｉを値１だけインクリメントする。
【０１００】
ステップＳ８１５で全画像をデコードしたかどうかをチェックし、まだならＳ８１７に進む。完了したらＳ８１６に進み、自分自身を休眠状態にする。
【０１０１】
ステップＳ８１７では、メインスレッドと同様にレイアウト変更の指示があったかどうかの判断を行い、移動されたときはＳ８１０へ、移動がなければＳ８１１へ進む。
【０１０２】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【０１０３】
また、ステップＳ８０５−Ｓ８０８の主画像デコード完了を待つループの間で、キーボード１０２、マウス１０２ａ等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時レイアウト変更などの操作者の入力に反応することができ、操作性を向上することができる。
【０１０４】
なお、ここではステップＳ８０２とＳ８０３を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【０１０５】
（その他の実施形態）
上記実施例では画像データはＤＣＦフォーマットで格納されているものとしたがこれに限らない。例えばより一般的なＪＰＥＧファイルフォーマットで格納されている場合、サムネール画像が存在しない。この場合はＪＰＥＧ画像は８画素ｘ８画素のブロック単位でＤＣＴ変換されていることを利用し、ＤＣ成分だけを抽出することで高速に低解像の画像を作成することができるので、これをサムネールの代わりに用いる。
【０１０６】
また、複数のレゾリューションレベルを備えるようにエンコードされたＪＰＥＧ２０００ファイルフォーマットや、ＦｌａｓｈＰｉｘファイルフォーマットのように、ファイルフォーマット自体がサポートする方法により低解像度の画像を高速にデコードできるようになっている場合は、これをサムネールの代わりに用いる。
【０１０７】
【発明の効果】
以上説明したように本発明によれば、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【０１０８】
また、操作者がいつでも次の操作を開始できるため操作性を向上できる。
【０１０９】
また、例えば実画像データのアスペクト比が、例えばＤＣＦフォーマット等で記録されている低解像度画像のアスペクト比と異なる場合でっても、実画像データと同一アスペクト比の低解像度の画像を適切に作成することにより、高解像度画像と低解像度画像の違いを目立たなくすることが出来る。
【０１１０】
また、低解像度画像を見ただけで、高解像度画像のアスペクト比を認識することが出来る。また、補正サムネールの作成に当たっては、既にある低解像度画像中のデータを単純にコピーして補完することにより、処理負荷はあまり大きくならず、使い勝手がよい。特にサムネール画像一覧表示においては、画像の内容を大雑把に確認できるが、それだけでなく本画像の外形もほぼ正しく確認できる本発明は、より詳細な情報を一目で提供できるので便利である。
【図面の簡単な説明】
【図１】画像表示装置の構成を示すブロック図である。
【図２】画像表示処理の流れを説明するフローチャートである。
【図３】画像表示装置の画面構成例を説明する図である。
【図４】第２実施例の画像表示装置の画面構成例を説明する図である。
【図５】第２実施例の画像選択リストの例を説明する図である。
【図６】第２実施例の画像表示処理の流れを説明するフローチャートである。
【図７】第３実施例の画像表示装置の画面構成例を説明する図である。
【図８】第３実施例の画像表示処理の流れを説明するフローチャートである。
【図９】本発明における、サムネールのデコード処理を示すフローチャートである。
【図１０】本発明における、実画像と補正サムネールとの関係を示す図である。
【符号の説明】
１０１  ＣＰＵ
１０２  キーボード
１０３  表示部
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ハードディスク
１０７  フロッピー（Ｒ）ディスク
１０８  プリンタ
１０９  ビデオキャプチャ
１１０  ビデオデッキ
【図１】
2005027087.tif 000003
【図２】
2005027087.tif 000004
【図３】
2005027087.tif 000005
【図４】
2005027087.tif 000006
【図５】
2005027087.tif 000007
【図６】
2005027087.tif 000008
【図７】
2005027087.tif 000009
【図８】
2005027087.tif 000010
【図９】
2005027087.tif 000011
【図１０】
2005027087.tif 000012