JP2005027087A - 画像表示方法、画像表示装置、記憶媒体およびプログラム - Google Patents
画像表示方法、画像表示装置、記憶媒体およびプログラム Download PDFInfo
- Publication number
- JP2005027087A JP2005027087A JP2003191133A JP2003191133A JP2005027087A JP 2005027087 A JP2005027087 A JP 2005027087A JP 2003191133 A JP2003191133 A JP 2003191133A JP 2003191133 A JP2003191133 A JP 2003191133A JP 2005027087 A JP2005027087 A JP 2005027087A
- Authority
- JP
- Japan
- Prior art keywords
- image
- resolution
- low
- resolution image
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Storing Facsimile Image Data (AREA)
- Editing Of Facsimile Originals (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Facsimiles In General (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
【課題】画面表示にはサムネール画像だけを使用し、印刷時に始めて実画像を使用することで高速化を図っているが、この方式によれば画面上で画像の細部を確認できないという問題があった。
【解決手段】画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていく。
【選択図】 図2
【解決手段】画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていく。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、画像をレイアウト表示する方法、装置および記憶媒体、プログラムに関する。
【0002】
【従来の技術】
一つ以上の画像をレイアウトして印刷するアプリケーションにおいて、実際に印刷を行う前にモニター上でレイアウト表示を行い、印刷内容を確認するということが一般に行われている。
【0003】
【特許文献1】
特開2001−054043号公報
【特許文献2】
特開平11−004367号公報
【0004】
【発明が解決しようとする課題】
しかしながら従来の方式では、表示を行うための画像のデコードに時間がかかり、効率的な作業を妨げるという問題があった。
【0005】
例えば特許文献1によれば、これを改善するためサムネール画像を用い、画面表示にはサムネール画像だけを使用し、印刷時に始めて実画像を使用することで高速化を図っているが、この方式によれば画面上で画像の細部を確認できないという問題があった。
【0006】
またレイアウト表示を行うわけではないが特許文献2によれば、デジタルカメラ背面の画像表示領域に画像を連続的に切り替えて表示する際にサムネール画像を用い、画像の切り替えを終了(ユーザーが早送りボタンを放すなど)したときに主画像で置き換えるということを行っている。この方式によれば主画像デコード中は次の操作が開始できず、操作性が悪いという問題があった。
【0007】
また、サムネールを表示する際に、サムネールと実画像のアスペクト比や画角が違っていた場合には、サムネールを表示した後に実画像を表示したときに画像が切り替わって見えるという問題があった。
【0008】
【課題を解決するための手段】
上記課題を解決するため本発明においては、画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていくことで、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【0009】
【発明の実施の形態】
(第1の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0010】
図3に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。31〜34は画像表示領域、35はプレビューボタン、36は印刷ボタンである。HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、操作者がプレビューボタン35を押下すると画像データをCPU101でデコードし、31〜34に表示する。また、印刷ボタン36を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0011】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0012】
図2のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0013】
ステップS201で、画像のサムネールをデコードする。
【0014】
ステップS202で、サムネールを用いてレイアウト表示を行う。
【0015】
ステップS203で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0016】
ステップS204で、バックグラウンドスレッドを起動する。
【0017】
ステップS205で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS205に戻る。デコードが完了したらS206に進む。
【0018】
ステップS206で、デコードされた主画像を用いてレイアウト表示を更新する。
【0019】
ステップS207で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS205へ、完了したら処理を終了する。
【0020】
続いてバックグラウンドスレッドの処理を説明する。
【0021】
ステップS208でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0022】
ステップS209で変数iを値0で初期化する。
【0023】
ステップS210でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS211へ、キャッシュされていればS213へ進む。
【0024】
ステップS211でi番目の主画像をデコードする。
【0025】
ステップS212でi番目の主画像をキャッシュする。
【0026】
ステップS213で変数iを値1だけインクリメントする。
【0027】
ステップS214で全画像をデコードしたかどうかをチェックし、まだならS210に戻る。完了したらS215に進み、自分自身を休眠状態にする。
【0028】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0029】
次に、ステップS201のサムネールのデコード方法について、詳細に説明する。
【0030】
一般にデジタルカメラのアスペクトは4:3であり、サムネールも4:3であるために、多くのデジタルカメラでは、上記の方法でサムネールを用いることが可能であるが、一部のデジタルカメラにはアスペクトが4:3ではないものも存在する。
【0031】
このような画像の場合、DCF規格において、サムネールのサイズはアスペクト比4:3の160x120と定められているため、アスペクトが4:3でない画像についてのサムネールは上下あるいは左右に黒帯や白帯が挿入されている場合がある。このような画像について、アスペクト4:3の画像と同様にサムネールを用いると、サムネール画像表示時は画像以外の黒帯が表示され、実画像に切り替わった時にはその黒帯が消え、画角も変化するという状態になってしまうため、一般的には使えない。
【0032】
しかしながら、サムネールを用いないとレスポンス性能が低下してしまうので、あらかじめサムネールにがどのような状態で格納されているかを知っている画像については、サムネールを補正して、そのサムネールを用いることで、高レスポンスを維持することが可能である。
【0033】
では、ステップS201のサムネールのデコード方法について、図9を用いて説明する。
【0034】
ここでいうサムネールとは、DCF規格のサムネールであって、160x120のサイズで画像ファイル中に格納されているものを示す。
【0035】
ステップS901で、画像ファイル中にDCFサムネールが存在するかどうかを判断し、DCFサムネールが存在していた場合には、ステップS902に進み、存在しない場合はステップS906に進む。
【0036】
ステップS902で、画像ファイルのメタデータから実画像の縦と横のサイズを取り出し、そのアスペクト比が4:3かどうかを判断し、4:3であればステップS903に進み、4:3でなければステップS904に進む。
【0037】
ステップS903で4:3の画像であった場合には、画像ファイル中のサムネールをそのまま用いることにより、高レスポンスを実現することができる。
【0038】
ステップS904において、あらかじめサムネールがどのような状態で格納されているかどうかを知っている機種かどうかを画像ファイル中のメタデータから判断し、サムネールの状態がわかっている特定機種である場合にはステップS905にすすみ、そうで無い場合にはステップS906に進む。
【0039】
ステップS905においては、格納されているサムネールはそのままでは使えないので、サムネール画像を処理して、補正サムネールデータを作成する。
【0040】
補正サムネールデータの作成方法については後述する。
【0041】
ステップS906において、画像ファイル中のサムネールを用いることができない場合には、実画像からサムネールデータを作成する。
【0042】
ここで、補正サムネールデータの作成方法について説明する。
【0043】
図10はある機種のサムネールと実画像データを表している。
【0044】
実画像データに比べ、サムネールデータは左右のデータが欠落し、さらに上下方向につぶれた画像となっている。
【0045】
そこで、左右の画素は両端の画素から補完し、さらに上下方向にも伸ばした画像が「補正サムネール」である。
【0046】
このようにして、実画像のアスペクトが4:3以外の画像についてはサムネールの補正処理を行って、補正サムネールを作成し、レスポンス性能を向上させることが可能である。
【0047】
また、この例では、補正サムネールは単純に、サムネール画像中の画素(この場合は両端の画素)を繰り返しコピーして補完している。なお、左右端からの距離が遠くなるにしたがって、近隣の画素の平均などの処理を行って、ぼかすことにより、左右端の不連続さが気にならないようにしても良い。
【0048】
その場合は、左端に4画素追加する場合、補正サムネール画像It(x,y)の画素はもともと格納されていたサムネール画像Ito(x,y)の画素から次のように導き出される。右端も同様である。
【0049】
It(0,y)=(Ito(0,y−2)+Ito(0,y−1)+Ito(0,y)+Ito(0,y+1)+Ito(0,y+2))/5
It(1,y)=(Ito(0,y−2)+Ito(0,y−1)+Ito(0,y)+Ito(0,y+1)+Ito(0,y+2))/5
It(2,y)=(Ito(0,y−1)+Ito(0,y)+Ito(0,y+1))/3
It(3,y)=(Ito(0,y−1)+Ito(0,y)+Ito(0,y+1))/3
ただし、y=0の場合は、y,y+1,y+2の画素のみを用いる。
【0050】
また、ステップS204の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間操作者の入力を受け付けなくなるということがなくなる。
【0051】
なお、ここではステップS202とS203を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0052】
(第2の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0053】
図3に、第2実施形態のアプリケーションソフトウェアの画面構成例を示す。41〜44は画像表示領域、45はプレビューボタン、46は印刷ボタン、47はページ戻しボタン、48はページ送りボタンである。また、49はサムネール画像一覧表示領域であり、操作者はマウス102aを用いるなどして、所望の画像を一覧の中から選択できるようになっている。
【0054】
HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、特定のディレクトリ内に格納されている全画像データがサムネール画像一覧表示領域に表示されている。図4においては36個の画像の表示しか示されていないが、それ以上の数の画像データがディレクトリ内に格納されている場合はスクロールバーを用いるなどして全画像を表示・選択できるようにする。
【0055】
はじめ画像表示領域41〜44には画像は表示されておらず、サムネール画像一覧表示領域には、HDD106の特定のディレクトリに格納されたDCF画像、1.jpg,2.jpg,3.jpg,...,36.jpgが表示されている。操作者がマウス102aを用いてサムネール画像をクリックしていくと、RAM上の文字列配列に、図5に例示するように、クリックした順に画像ファイル名が格納されていく。これを4つずつ区切って、ページを構成する。すなわち、1ページ目は5.jpg,3.jpg,8.jpg,4.jpgの4つの画像をレイアウトしたものであり、画面上の表示領域41〜44に表示された様態で、後述するようにプリンタ108から印刷される。2ページ目以降も同様である。
【0056】
操作者がプレビューボタン45を押下すると1ページ目を構成する4つの画像データをCPU101でデコードし、41〜44に表示する。また、印刷ボタン46を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。また、次ページボタン48を押下すると、2ページ目を同様の手順で表示し、現在の表示ページが2ページ目以降の場合には前ページボタン47を押下することで、直前のページを表示することができる。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0057】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0058】
また、サムネールのデコードは第一の実施例で述べた図9のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【0059】
図6のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0060】
ステップS601で、表示対象画像のサムネールを用いてレイアウト表示を行う。サムネール画像は一覧表示領域49に表示する際すでにデコードしているのでこれをキャッシュしておけば、再度デコードする必要がなく高速に表示することができる。
【0061】
ステップS602で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0062】
ステップS603で、バックグラウンドスレッドを起動する。
【0063】
ステップS604で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS607へ、デコードが完了したらS605に進む。
【0064】
ステップS605で、デコードされた主画像を用いてレイアウト表示を更新する。
【0065】
ステップS606で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS604へ、完了したら処理を終了する。
【0066】
ステップS607では操作者によりページ移動の指示があったかどうかをチェックする。操作者がポインティングデバイス102aを用いてボタン47乃至48を押下したとき、現在表示しようとしているのと別のページに表示を切り替える必要があるので、ステップS601に戻ってサムネールによるレイアウト表示から表示をやり直す。移動指示がない場合はステップS604に戻る。このように、主画像をデコードしている最中でも随時ページ移動の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【0067】
続いてバックグラウンドスレッドの処理を説明する。
【0068】
ステップS608でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0069】
ステップS609で変数iを値0で初期化する。
【0070】
ステップS610でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS611へ、キャッシュされていればS613へ進む。ここでi番目の画像とは表示ページを構成する4つの画像のひとつを指しており、現在のページをpとすると、図5のリストの、先頭から(p−1)*4+i番目の画像がi番目の画像表示領域に対応している。以下同様である。
【0071】
ステップS611でi番目の主画像をデコードする。
【0072】
ステップS612でi番目の主画像をキャッシュする。
【0073】
ステップS613で変数iを値1だけインクリメントする。
【0074】
ステップS614で全画像をデコードしたかどうかをチェックし、まだならS616に進む。完了したらS615に進み、自分自身を休眠状態にする。
【0075】
ステップS616では、メインスレッドと同様にページ移動の指示があったかどうかの判断を行い、移動されたときはS609へ、移動がなければS610へ進む。
【0076】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0077】
また、ステップS604−S607の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時ページ移動などの操作者の入力に反応することができ、操作性を向上することができる。
【0078】
なお、ここではステップS601とS602を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0079】
(第3の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0080】
図7に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。71〜74は画像表示領域、75はプレビューボタン、76は印刷ボタンである。77はレイアウト選択ラジオボタンであり、「4in1」を選ぶと図7上の状態、「2in1」を選ぶと下の状態に遷移する。図から明らかなように、4in1と2in1では画像表示領域のアスペクトが変わり、2in1では縦長になるので、2in1レイアウトのときは画像を回転して表示しなければならない。
【0081】
HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、操作者がプレビューボタン75を押下すると画像データをCPU101でデコードし、71〜74に表示する。また、印刷ボタン76を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0082】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0083】
図8のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0084】
ステップS801で、表示対象画像のサムネールをデコードする。
【0085】
ここで、サムネールのデコードは第一の実施例で述べた図9のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【0086】
ステップS802で、表示対象画像のサムネールを用いてレイアウト表示を行う。上で説明した通り、2in1レイアウトの場合は画像を90度回転して表示する。
【0087】
ステップS803で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0088】
ステップS804で、バックグラウンドスレッドを起動する。
【0089】
ステップS805で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS808へ、デコードが完了したらS806に進む。
【0090】
ステップS806で、デコードされた主画像を用いてレイアウト表示を更新する。上で説明した通り、2in1レイアウトの場合は画像を90度回転して表示する。
【0091】
ステップS807で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS805へ、完了したら処理を終了する。
【0092】
ステップS808では操作者によりレイアウト変更の指示があったかどうかをチェックする。操作者がポインティングデバイス102aを用いてレイアウト選択ラジオボタン77を操作してレイアウトを変更したとき、ステップS801に戻ってサムネールによるレイアウト表示から表示をやり直す。レイアウト変更指示がない場合はステップS805に戻る。このように、主画像をデコードしている最中でも随時レイアウト変更の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【0093】
続いてバックグラウンドスレッドの処理を説明する。
【0094】
ステップS809でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0095】
ステップS810で変数iを値0で初期化する。
【0096】
ステップS811でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS812へ、キャッシュされていればS814へ進む。
【0097】
ステップS812でi番目の主画像をデコードする。
【0098】
ステップS813でi番目の主画像をキャッシュする。
【0099】
ステップS814で変数iを値1だけインクリメントする。
【0100】
ステップS815で全画像をデコードしたかどうかをチェックし、まだならS817に進む。完了したらS816に進み、自分自身を休眠状態にする。
【0101】
ステップS817では、メインスレッドと同様にレイアウト変更の指示があったかどうかの判断を行い、移動されたときはS810へ、移動がなければS811へ進む。
【0102】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0103】
また、ステップS805−S808の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時レイアウト変更などの操作者の入力に反応することができ、操作性を向上することができる。
【0104】
なお、ここではステップS802とS803を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0105】
(その他の実施形態)
上記実施例では画像データはDCFフォーマットで格納されているものとしたがこれに限らない。例えばより一般的なJPEGファイルフォーマットで格納されている場合、サムネール画像が存在しない。この場合はJPEG画像は8画素x8画素のブロック単位でDCT変換されていることを利用し、DC成分だけを抽出することで高速に低解像の画像を作成することができるので、これをサムネールの代わりに用いる。
【0106】
また、複数のレゾリューションレベルを備えるようにエンコードされたJPEG2000ファイルフォーマットや、FlashPixファイルフォーマットのように、ファイルフォーマット自体がサポートする方法により低解像度の画像を高速にデコードできるようになっている場合は、これをサムネールの代わりに用いる。
【0107】
【発明の効果】
以上説明したように本発明によれば、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【0108】
また、操作者がいつでも次の操作を開始できるため操作性を向上できる。
【0109】
また、例えば実画像データのアスペクト比が、例えばDCFフォーマット等で記録されている低解像度画像のアスペクト比と異なる場合でっても、実画像データと同一アスペクト比の低解像度の画像を適切に作成することにより、高解像度画像と低解像度画像の違いを目立たなくすることが出来る。
【0110】
また、低解像度画像を見ただけで、高解像度画像のアスペクト比を認識することが出来る。また、補正サムネールの作成に当たっては、既にある低解像度画像中のデータを単純にコピーして補完することにより、処理負荷はあまり大きくならず、使い勝手がよい。特にサムネール画像一覧表示においては、画像の内容を大雑把に確認できるが、それだけでなく本画像の外形もほぼ正しく確認できる本発明は、より詳細な情報を一目で提供できるので便利である。
【図面の簡単な説明】
【図1】画像表示装置の構成を示すブロック図である。
【図2】画像表示処理の流れを説明するフローチャートである。
【図3】画像表示装置の画面構成例を説明する図である。
【図4】第2実施例の画像表示装置の画面構成例を説明する図である。
【図5】第2実施例の画像選択リストの例を説明する図である。
【図6】第2実施例の画像表示処理の流れを説明するフローチャートである。
【図7】第3実施例の画像表示装置の画面構成例を説明する図である。
【図8】第3実施例の画像表示処理の流れを説明するフローチャートである。
【図9】本発明における、サムネールのデコード処理を示すフローチャートである。
【図10】本発明における、実画像と補正サムネールとの関係を示す図である。
【符号の説明】
101 CPU
102 キーボード
103 表示部
104 ROM
105 RAM
106 ハードディスク
107 フロッピー(R)ディスク
108 プリンタ
109 ビデオキャプチャ
110 ビデオデッキ
【発明の属する技術分野】
本発明は、画像をレイアウト表示する方法、装置および記憶媒体、プログラムに関する。
【0002】
【従来の技術】
一つ以上の画像をレイアウトして印刷するアプリケーションにおいて、実際に印刷を行う前にモニター上でレイアウト表示を行い、印刷内容を確認するということが一般に行われている。
【0003】
【特許文献1】
特開2001−054043号公報
【特許文献2】
特開平11−004367号公報
【0004】
【発明が解決しようとする課題】
しかしながら従来の方式では、表示を行うための画像のデコードに時間がかかり、効率的な作業を妨げるという問題があった。
【0005】
例えば特許文献1によれば、これを改善するためサムネール画像を用い、画面表示にはサムネール画像だけを使用し、印刷時に始めて実画像を使用することで高速化を図っているが、この方式によれば画面上で画像の細部を確認できないという問題があった。
【0006】
またレイアウト表示を行うわけではないが特許文献2によれば、デジタルカメラ背面の画像表示領域に画像を連続的に切り替えて表示する際にサムネール画像を用い、画像の切り替えを終了(ユーザーが早送りボタンを放すなど)したときに主画像で置き換えるということを行っている。この方式によれば主画像デコード中は次の操作が開始できず、操作性が悪いという問題があった。
【0007】
また、サムネールを表示する際に、サムネールと実画像のアスペクト比や画角が違っていた場合には、サムネールを表示した後に実画像を表示したときに画像が切り替わって見えるという問題があった。
【0008】
【課題を解決するための手段】
上記課題を解決するため本発明においては、画像ごとに最適なサムネールを作成し、作成したサムネール画像を用いて高速にレイアウト表示を行い、同時に別スレッドにより主画像をデコードし、デコードが完了したものから随時表示を置き換えていくことで、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【0009】
【発明の実施の形態】
(第1の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0010】
図3に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。31〜34は画像表示領域、35はプレビューボタン、36は印刷ボタンである。HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、操作者がプレビューボタン35を押下すると画像データをCPU101でデコードし、31〜34に表示する。また、印刷ボタン36を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0011】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0012】
図2のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0013】
ステップS201で、画像のサムネールをデコードする。
【0014】
ステップS202で、サムネールを用いてレイアウト表示を行う。
【0015】
ステップS203で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0016】
ステップS204で、バックグラウンドスレッドを起動する。
【0017】
ステップS205で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS205に戻る。デコードが完了したらS206に進む。
【0018】
ステップS206で、デコードされた主画像を用いてレイアウト表示を更新する。
【0019】
ステップS207で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS205へ、完了したら処理を終了する。
【0020】
続いてバックグラウンドスレッドの処理を説明する。
【0021】
ステップS208でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0022】
ステップS209で変数iを値0で初期化する。
【0023】
ステップS210でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS211へ、キャッシュされていればS213へ進む。
【0024】
ステップS211でi番目の主画像をデコードする。
【0025】
ステップS212でi番目の主画像をキャッシュする。
【0026】
ステップS213で変数iを値1だけインクリメントする。
【0027】
ステップS214で全画像をデコードしたかどうかをチェックし、まだならS210に戻る。完了したらS215に進み、自分自身を休眠状態にする。
【0028】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0029】
次に、ステップS201のサムネールのデコード方法について、詳細に説明する。
【0030】
一般にデジタルカメラのアスペクトは4:3であり、サムネールも4:3であるために、多くのデジタルカメラでは、上記の方法でサムネールを用いることが可能であるが、一部のデジタルカメラにはアスペクトが4:3ではないものも存在する。
【0031】
このような画像の場合、DCF規格において、サムネールのサイズはアスペクト比4:3の160x120と定められているため、アスペクトが4:3でない画像についてのサムネールは上下あるいは左右に黒帯や白帯が挿入されている場合がある。このような画像について、アスペクト4:3の画像と同様にサムネールを用いると、サムネール画像表示時は画像以外の黒帯が表示され、実画像に切り替わった時にはその黒帯が消え、画角も変化するという状態になってしまうため、一般的には使えない。
【0032】
しかしながら、サムネールを用いないとレスポンス性能が低下してしまうので、あらかじめサムネールにがどのような状態で格納されているかを知っている画像については、サムネールを補正して、そのサムネールを用いることで、高レスポンスを維持することが可能である。
【0033】
では、ステップS201のサムネールのデコード方法について、図9を用いて説明する。
【0034】
ここでいうサムネールとは、DCF規格のサムネールであって、160x120のサイズで画像ファイル中に格納されているものを示す。
【0035】
ステップS901で、画像ファイル中にDCFサムネールが存在するかどうかを判断し、DCFサムネールが存在していた場合には、ステップS902に進み、存在しない場合はステップS906に進む。
【0036】
ステップS902で、画像ファイルのメタデータから実画像の縦と横のサイズを取り出し、そのアスペクト比が4:3かどうかを判断し、4:3であればステップS903に進み、4:3でなければステップS904に進む。
【0037】
ステップS903で4:3の画像であった場合には、画像ファイル中のサムネールをそのまま用いることにより、高レスポンスを実現することができる。
【0038】
ステップS904において、あらかじめサムネールがどのような状態で格納されているかどうかを知っている機種かどうかを画像ファイル中のメタデータから判断し、サムネールの状態がわかっている特定機種である場合にはステップS905にすすみ、そうで無い場合にはステップS906に進む。
【0039】
ステップS905においては、格納されているサムネールはそのままでは使えないので、サムネール画像を処理して、補正サムネールデータを作成する。
【0040】
補正サムネールデータの作成方法については後述する。
【0041】
ステップS906において、画像ファイル中のサムネールを用いることができない場合には、実画像からサムネールデータを作成する。
【0042】
ここで、補正サムネールデータの作成方法について説明する。
【0043】
図10はある機種のサムネールと実画像データを表している。
【0044】
実画像データに比べ、サムネールデータは左右のデータが欠落し、さらに上下方向につぶれた画像となっている。
【0045】
そこで、左右の画素は両端の画素から補完し、さらに上下方向にも伸ばした画像が「補正サムネール」である。
【0046】
このようにして、実画像のアスペクトが4:3以外の画像についてはサムネールの補正処理を行って、補正サムネールを作成し、レスポンス性能を向上させることが可能である。
【0047】
また、この例では、補正サムネールは単純に、サムネール画像中の画素(この場合は両端の画素)を繰り返しコピーして補完している。なお、左右端からの距離が遠くなるにしたがって、近隣の画素の平均などの処理を行って、ぼかすことにより、左右端の不連続さが気にならないようにしても良い。
【0048】
その場合は、左端に4画素追加する場合、補正サムネール画像It(x,y)の画素はもともと格納されていたサムネール画像Ito(x,y)の画素から次のように導き出される。右端も同様である。
【0049】
It(0,y)=(Ito(0,y−2)+Ito(0,y−1)+Ito(0,y)+Ito(0,y+1)+Ito(0,y+2))/5
It(1,y)=(Ito(0,y−2)+Ito(0,y−1)+Ito(0,y)+Ito(0,y+1)+Ito(0,y+2))/5
It(2,y)=(Ito(0,y−1)+Ito(0,y)+Ito(0,y+1))/3
It(3,y)=(Ito(0,y−1)+Ito(0,y)+Ito(0,y+1))/3
ただし、y=0の場合は、y,y+1,y+2の画素のみを用いる。
【0050】
また、ステップS204の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間操作者の入力を受け付けなくなるということがなくなる。
【0051】
なお、ここではステップS202とS203を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0052】
(第2の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0053】
図3に、第2実施形態のアプリケーションソフトウェアの画面構成例を示す。41〜44は画像表示領域、45はプレビューボタン、46は印刷ボタン、47はページ戻しボタン、48はページ送りボタンである。また、49はサムネール画像一覧表示領域であり、操作者はマウス102aを用いるなどして、所望の画像を一覧の中から選択できるようになっている。
【0054】
HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、特定のディレクトリ内に格納されている全画像データがサムネール画像一覧表示領域に表示されている。図4においては36個の画像の表示しか示されていないが、それ以上の数の画像データがディレクトリ内に格納されている場合はスクロールバーを用いるなどして全画像を表示・選択できるようにする。
【0055】
はじめ画像表示領域41〜44には画像は表示されておらず、サムネール画像一覧表示領域には、HDD106の特定のディレクトリに格納されたDCF画像、1.jpg,2.jpg,3.jpg,...,36.jpgが表示されている。操作者がマウス102aを用いてサムネール画像をクリックしていくと、RAM上の文字列配列に、図5に例示するように、クリックした順に画像ファイル名が格納されていく。これを4つずつ区切って、ページを構成する。すなわち、1ページ目は5.jpg,3.jpg,8.jpg,4.jpgの4つの画像をレイアウトしたものであり、画面上の表示領域41〜44に表示された様態で、後述するようにプリンタ108から印刷される。2ページ目以降も同様である。
【0056】
操作者がプレビューボタン45を押下すると1ページ目を構成する4つの画像データをCPU101でデコードし、41〜44に表示する。また、印刷ボタン46を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。また、次ページボタン48を押下すると、2ページ目を同様の手順で表示し、現在の表示ページが2ページ目以降の場合には前ページボタン47を押下することで、直前のページを表示することができる。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0057】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0058】
また、サムネールのデコードは第一の実施例で述べた図9のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【0059】
図6のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0060】
ステップS601で、表示対象画像のサムネールを用いてレイアウト表示を行う。サムネール画像は一覧表示領域49に表示する際すでにデコードしているのでこれをキャッシュしておけば、再度デコードする必要がなく高速に表示することができる。
【0061】
ステップS602で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0062】
ステップS603で、バックグラウンドスレッドを起動する。
【0063】
ステップS604で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS607へ、デコードが完了したらS605に進む。
【0064】
ステップS605で、デコードされた主画像を用いてレイアウト表示を更新する。
【0065】
ステップS606で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS604へ、完了したら処理を終了する。
【0066】
ステップS607では操作者によりページ移動の指示があったかどうかをチェックする。操作者がポインティングデバイス102aを用いてボタン47乃至48を押下したとき、現在表示しようとしているのと別のページに表示を切り替える必要があるので、ステップS601に戻ってサムネールによるレイアウト表示から表示をやり直す。移動指示がない場合はステップS604に戻る。このように、主画像をデコードしている最中でも随時ページ移動の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【0067】
続いてバックグラウンドスレッドの処理を説明する。
【0068】
ステップS608でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0069】
ステップS609で変数iを値0で初期化する。
【0070】
ステップS610でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS611へ、キャッシュされていればS613へ進む。ここでi番目の画像とは表示ページを構成する4つの画像のひとつを指しており、現在のページをpとすると、図5のリストの、先頭から(p−1)*4+i番目の画像がi番目の画像表示領域に対応している。以下同様である。
【0071】
ステップS611でi番目の主画像をデコードする。
【0072】
ステップS612でi番目の主画像をキャッシュする。
【0073】
ステップS613で変数iを値1だけインクリメントする。
【0074】
ステップS614で全画像をデコードしたかどうかをチェックし、まだならS616に進む。完了したらS615に進み、自分自身を休眠状態にする。
【0075】
ステップS616では、メインスレッドと同様にページ移動の指示があったかどうかの判断を行い、移動されたときはS609へ、移動がなければS610へ進む。
【0076】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0077】
また、ステップS604−S607の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時ページ移動などの操作者の入力に反応することができ、操作性を向上することができる。
【0078】
なお、ここではステップS601とS602を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0079】
(第3の実施例)
図1は、本発明が実行されるコンピュータシステムの構成を示すブロック図である。図1において、101はCPUで、システム全体の制御を行なっている。102はキーボードで、102aのマウスとともにシステムに入力するために使用される。103は表示装置で、CRTや液晶等で構成されている。104はROM、105はRAMで、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。106はハードディスク装置、107はフロッピー(R)ディスク装置で、システムのファイルシステムに使用される外部記憶装置を構成している。108はプリンタである。
【0080】
図7に、本実施形態のアプリケーションソフトウェアの画面構成例を示す。71〜74は画像表示領域、75はプレビューボタン、76は印刷ボタンである。77はレイアウト選択ラジオボタンであり、「4in1」を選ぶと図7上の状態、「2in1」を選ぶと下の状態に遷移する。図から明らかなように、4in1と2in1では画像表示領域のアスペクトが変わり、2in1では縦長になるので、2in1レイアウトのときは画像を回転して表示しなければならない。
【0081】
HDD106にはデジタルカメラの標準規格であるDCF形式の画像データが複数格納されており、操作者がプレビューボタン75を押下すると画像データをCPU101でデコードし、71〜74に表示する。また、印刷ボタン76を押下すると、画面に表示されたレイアウトに従ってプリンタ108を用いて印刷を行う。画像データは必ずしも画像表示領域と同じ大きさ(画素数)であるとは限らないが、周知の画像変倍方法を用いて変倍を行って大きさを調節して表示するものとする。
【0082】
従来、DCF画像の主画像をデコードしてレイアウト表示を行うのが一般的であった。この方法によれば表示装置103の解像度に応じて高精細なレイアウト表示が可能であるが、デコード処理に時間がかかり操作者へのレスポンスが悪いという問題があった。また、DCF画像には主画像のほかに高速なデコードが可能なサムネール画像が格納されており、これを用いてレイアウト表示が行われることがあったが、サムネール画像は表示装置103に比較して解像度が低く、十分なレイアウト確認が困難であるという問題があった。本発明によれば、まずサムネールを用いたレイアウト表示を高速に行い、続いてバックグラウンドスレッドを用いて時間のかかる主画像デコードを行って、デコードが完了した主画像から随時表示を置き換えることにより、高速かつ高精細なレイアウト表示を行うものである。
【0083】
図8のフローチャートを用いて、上記処理の流れを詳細に説明する。
【0084】
ステップS801で、表示対象画像のサムネールをデコードする。
【0085】
ここで、サムネールのデコードは第一の実施例で述べた図9のフローチャートに従って行うものと同等であるので、詳しい説明は省略する。
【0086】
ステップS802で、表示対象画像のサムネールを用いてレイアウト表示を行う。上で説明した通り、2in1レイアウトの場合は画像を90度回転して表示する。
【0087】
ステップS803で、キャッシュメモリを参照し、表示画像の主画像がキャッシュされているかどうかをチェックし、キャッシュされている主画像だけレイアウト表示を差し替える。
【0088】
ステップS804で、バックグラウンドスレッドを起動する。
【0089】
ステップS805で、バックグラウンドスレッドにより主画像のデコードが完了したかどうかをチェックし、デコード中であればS808へ、デコードが完了したらS806に進む。
【0090】
ステップS806で、デコードされた主画像を用いてレイアウト表示を更新する。上で説明した通り、2in1レイアウトの場合は画像を90度回転して表示する。
【0091】
ステップS807で、全ての画像表示が主画像に差し替えられたかどうかをチェックし、まだならS805へ、完了したら処理を終了する。
【0092】
ステップS808では操作者によりレイアウト変更の指示があったかどうかをチェックする。操作者がポインティングデバイス102aを用いてレイアウト選択ラジオボタン77を操作してレイアウトを変更したとき、ステップS801に戻ってサムネールによるレイアウト表示から表示をやり直す。レイアウト変更指示がない場合はステップS805に戻る。このように、主画像をデコードしている最中でも随時レイアウト変更の指示に反応することができるため、操作者から見たレスポンスがよく、操作性を向上することができる。
【0093】
続いてバックグラウンドスレッドの処理を説明する。
【0094】
ステップS809でメインスレッドからの指示を受け、休眠状態を終了して処理を開始する。
【0095】
ステップS810で変数iを値0で初期化する。
【0096】
ステップS811でi番目の主画像がキャッシュされているかどうかをチェックし、されていなければS812へ、キャッシュされていればS814へ進む。
【0097】
ステップS812でi番目の主画像をデコードする。
【0098】
ステップS813でi番目の主画像をキャッシュする。
【0099】
ステップS814で変数iを値1だけインクリメントする。
【0100】
ステップS815で全画像をデコードしたかどうかをチェックし、まだならS817に進む。完了したらS816に進み、自分自身を休眠状態にする。
【0101】
ステップS817では、メインスレッドと同様にレイアウト変更の指示があったかどうかの判断を行い、移動されたときはS810へ、移動がなければS811へ進む。
【0102】
この処理に従い、まずサムネールを用いて高速にレイアウト表示を行い、続いてキャッシュ内の主画像を用いて表示を更新し、次に比較的低速な主画像デコードが完了した画像から随時表示を更新することで、高レスポンスと高精細表示を両立することができる。
【0103】
また、ステップS805−S808の主画像デコード完了を待つループの間で、キーボード102、マウス102a等による操作者からの入力に反応することができるので、時間のかかる主画像デコードを待つ間でも随時レイアウト変更などの操作者の入力に反応することができ、操作性を向上することができる。
【0104】
なお、ここではステップS802とS803を分離し、まずサムネール表示を行ってからキャッシュ内主画像で置き換えたが、キャッシュ内の主画像を用いた表示が十分高速に行える場合はサムネール表示を省略して、主画像がキャッシュされている画像については最初から主画像を用いてレイアウト表示を行うようにしてもよい。
【0105】
(その他の実施形態)
上記実施例では画像データはDCFフォーマットで格納されているものとしたがこれに限らない。例えばより一般的なJPEGファイルフォーマットで格納されている場合、サムネール画像が存在しない。この場合はJPEG画像は8画素x8画素のブロック単位でDCT変換されていることを利用し、DC成分だけを抽出することで高速に低解像の画像を作成することができるので、これをサムネールの代わりに用いる。
【0106】
また、複数のレゾリューションレベルを備えるようにエンコードされたJPEG2000ファイルフォーマットや、FlashPixファイルフォーマットのように、ファイルフォーマット自体がサポートする方法により低解像度の画像を高速にデコードできるようになっている場合は、これをサムネールの代わりに用いる。
【0107】
【発明の効果】
以上説明したように本発明によれば、高レスポンス、精細表示の両方の要求を満たすことを実現する。
【0108】
また、操作者がいつでも次の操作を開始できるため操作性を向上できる。
【0109】
また、例えば実画像データのアスペクト比が、例えばDCFフォーマット等で記録されている低解像度画像のアスペクト比と異なる場合でっても、実画像データと同一アスペクト比の低解像度の画像を適切に作成することにより、高解像度画像と低解像度画像の違いを目立たなくすることが出来る。
【0110】
また、低解像度画像を見ただけで、高解像度画像のアスペクト比を認識することが出来る。また、補正サムネールの作成に当たっては、既にある低解像度画像中のデータを単純にコピーして補完することにより、処理負荷はあまり大きくならず、使い勝手がよい。特にサムネール画像一覧表示においては、画像の内容を大雑把に確認できるが、それだけでなく本画像の外形もほぼ正しく確認できる本発明は、より詳細な情報を一目で提供できるので便利である。
【図面の簡単な説明】
【図1】画像表示装置の構成を示すブロック図である。
【図2】画像表示処理の流れを説明するフローチャートである。
【図3】画像表示装置の画面構成例を説明する図である。
【図4】第2実施例の画像表示装置の画面構成例を説明する図である。
【図5】第2実施例の画像選択リストの例を説明する図である。
【図6】第2実施例の画像表示処理の流れを説明するフローチャートである。
【図7】第3実施例の画像表示装置の画面構成例を説明する図である。
【図8】第3実施例の画像表示処理の流れを説明するフローチャートである。
【図9】本発明における、サムネールのデコード処理を示すフローチャートである。
【図10】本発明における、実画像と補正サムネールとの関係を示す図である。
【符号の説明】
101 CPU
102 キーボード
103 表示部
104 ROM
105 RAM
106 ハードディスク
107 フロッピー(R)ディスク
108 プリンタ
109 ビデオキャプチャ
110 ビデオデッキ
Claims (16)
- 入力された画像データをデコードするデコード工程と、
デコードされた画像データから低解像度画像を作成する低解像度画像作成工程と、
デコードされた画像データから高解像度画像を作成する高解像度画像作成工程と、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュ工程と、
表示装置上に一つ以上の画像をレイアウト表示する表示工程とを備え、
画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記表示工程とは非同期に前記高解像度作成工程により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とする画像表示方法。 - さらに前記表示工程でレイアウト表示されたレイアウトで、複数の画像をプリントするプリント工程を有することを特徴とする請求項1に記載の画像表示方法。
- さらに、前記メモリは一つ以上の低解像度画像をキャッシュすることを特徴とする請求項1ないし2のいずれか1項に記載の画像表示方法。
- 複数の画像を一覧表示し、レイアウト表示する画像を選択するための画像選択工程をさらに備えることを特徴とする請求項1ないし3のいずれか1項に記載の画像表示方法。
- 上記低解像度画像と高解像度画像は同一のファイルからデコードされることを特徴とする、請求項1ないし4のいずれか1項に記載の画像表示方法。
- 上記画像データはDCF/EXIFフォーマットであり、上記低解像度画像はフォーマットで規定されたサムネール画像であることを特徴とする、請求項1ないし5のいずれか1項に記載の画像表示方法。
- 上記画像データはJPEGフォーマットであり、上記低解像度画像は直流成分のみに基づいて作成されることを特徴とする、請求項1ないし6のいずれか1項に記載の画像表示方法。
- 上記画像データは複数のレゾリューションレベルを備えるように符号化されたJPEG2000フォーマットであり、上記低解像度画像は低レゾリューションのデコードにより得られることを特徴とする、請求項1ないし5のいずれか1項に記載の画像表示方法。
- 上記画像データはFlashpixフォーマットであり、上記低解像度画像は低階層部分のデコードにより得られる画像であることを特徴とする、請求項1ないし5のいずれか1項に記載の画像表示方法。
- 上記低解像度画像作成工程は、同一のファイルに低解像度画像が無い場合には実画像から低解像度画像を作成する請求項1ないし4のいずれか1項に記載の画像表示方法。
- 上記低解像度画像作成工程は、低解像度画像と実画像とのアスペクト比が違う場合には、低解像度画像を補正処理して、新たな低解像度画像を作成する請求項10に記載の画像表示方法。
- 上記低解像度画像の補正処理は、前記低解像度画像中の画素データを用いて、実画像データと同一アスペクト比の低解像度画像を作成する請求項11に記載の画像表示方法。
- 上記低解像度画像の補正処理は、同一ファイルの前記低解像度画像中の画素データを複写して新たな低解像度画像を作成する請求項11に記載の画像表示方法。
- 入力された画像データをデコードするデコード手段と、
デコードされた画像データから低解像度画像を作成する低解像度画像作成手段と、
デコードされた画像データから高解像度画像を作成する高解像度画像作成工程と、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュ手段と、
表示装置上に一つ以上の画像を表示装置にレイアウト表示させる表示制御手段とを備え、
画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記レイアウト表示とは非同期に前記高解像度作成手段により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とする画像表示装置。 - コンピュータにより読み取り可能なプログラムを記憶する記憶媒体であって、前記プログラムはコンピュータにより請求項1ないし13のいずれか一行の画像処理方法を実可能とすることを特徴とする記憶媒体。
- 以下のモジュールで構成される、コンピュータにより実行可能なプログラムであって、
入力された画像データをデコードするデコードモジュールと、
デコードされた画像データから低解像度画像を作成する低解像度画像作成モジュールと、
デコードされた画像データから高解像度画像を作成する高解像度画像作成モジュールと、
一つ以上の高解像度画像をメモリーにキャッシュするキャッシュモジュールと、
表示装置上に一つ以上の画像をレイアウト表示する表示モジュールとを備え、画像のレイアウト表示を行う際、
前記メモリー内に高解像度画像がキャッシュされている画像については高解像度画像を用い、キャッシュされていない画像については低解像度画像を用いてレイアウト表示を行い、
キャッシュ内に高解像度画像がキャッシュされていない画像については前記表示工程とは非同期に前記高解像度作成工程により高解像度画像の作成し、表示されている低解像度画像を作成された前記高解像度画像でレイアウト表示を順次置き換えることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003191133A JP2005027087A (ja) | 2003-07-03 | 2003-07-03 | 画像表示方法、画像表示装置、記憶媒体およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003191133A JP2005027087A (ja) | 2003-07-03 | 2003-07-03 | 画像表示方法、画像表示装置、記憶媒体およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005027087A true JP2005027087A (ja) | 2005-01-27 |
Family
ID=34188837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003191133A Withdrawn JP2005027087A (ja) | 2003-07-03 | 2003-07-03 | 画像表示方法、画像表示装置、記憶媒体およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005027087A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058193A (ja) * | 2005-07-26 | 2007-03-08 | Brother Ind Ltd | 画像表示装置 |
JP2008245090A (ja) * | 2007-03-28 | 2008-10-09 | Kyocera Mita Corp | 用紙搬送装置及び画像形成装置 |
JP2008306469A (ja) * | 2007-06-07 | 2008-12-18 | Kyocera Mita Corp | 画像形成装置 |
JP2010010985A (ja) * | 2008-06-26 | 2010-01-14 | Konica Minolta Business Technologies Inc | 画像形成システム |
JP2012165454A (ja) * | 2012-04-26 | 2012-08-30 | Furyu Kk | 画像変換装置、画像提供システム、撮影編集装置、画像変換方法、画像変換プログラム、および該プログラムを記録した記録媒体 |
JP2012203744A (ja) * | 2011-03-25 | 2012-10-22 | Brother Ind Ltd | 情報処理プログラム、情報処理装置および情報処理方法 |
-
2003
- 2003-07-03 JP JP2003191133A patent/JP2005027087A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058193A (ja) * | 2005-07-26 | 2007-03-08 | Brother Ind Ltd | 画像表示装置 |
JP2008245090A (ja) * | 2007-03-28 | 2008-10-09 | Kyocera Mita Corp | 用紙搬送装置及び画像形成装置 |
JP2008306469A (ja) * | 2007-06-07 | 2008-12-18 | Kyocera Mita Corp | 画像形成装置 |
JP2010010985A (ja) * | 2008-06-26 | 2010-01-14 | Konica Minolta Business Technologies Inc | 画像形成システム |
JP4623149B2 (ja) * | 2008-06-26 | 2011-02-02 | コニカミノルタビジネステクノロジーズ株式会社 | 画像形成システム |
US8339655B2 (en) | 2008-06-26 | 2012-12-25 | Konica Minolta Business Technologies, Inc. | Image forming apparatus and image forming method for displaying a first image while a corresponding second image is being processed |
JP2012203744A (ja) * | 2011-03-25 | 2012-10-22 | Brother Ind Ltd | 情報処理プログラム、情報処理装置および情報処理方法 |
JP2012165454A (ja) * | 2012-04-26 | 2012-08-30 | Furyu Kk | 画像変換装置、画像提供システム、撮影編集装置、画像変換方法、画像変換プログラム、および該プログラムを記録した記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103957416B (zh) | 部分伸展方法以及图像处理装置 | |
US20020085767A1 (en) | Method and apparatus for processing image files | |
US20100158410A1 (en) | Image processing apparatus, image processing method and computer-readable storage medium | |
US8879114B2 (en) | Image forming apparatus performing combine printing | |
JP2000278685A (ja) | 可変長符号化バイナリ・ビットストリームの処理方法 | |
US8891109B2 (en) | Printing device capable of displaying thumbnail image of image file | |
US9197784B2 (en) | Printing device capable of displaying thumbnail image of motion image file | |
US8649064B2 (en) | Printing device capable of printing image of image file | |
JP2005027087A (ja) | 画像表示方法、画像表示装置、記憶媒体およびプログラム | |
JP4446447B2 (ja) | 画像形成装置 | |
US9361852B2 (en) | Media reproduction device | |
JP4761566B2 (ja) | 画像処理装置及びその方法とプログラム及び媒体 | |
US20100165395A1 (en) | Image processing apparatus, image processing system, and control method for image processing apparatus | |
JP2006303937A (ja) | 画像表示装置、画像表示方法および方法を実行させるプログラム | |
JP2008204182A (ja) | 画像処理装置、制御方法、プログラム、及び記憶媒体 | |
JP2004029313A (ja) | 画像表示装置、方法 | |
JP2007295527A (ja) | 画像表示装置 | |
JP2007080099A (ja) | 画像処理装置、画像検索方法および画像検索プログラム | |
JP5393078B2 (ja) | 画像表示装置、画像表示装置の制御方法、プログラム及び記憶媒体 | |
JP3754903B2 (ja) | 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体 | |
JP4145715B2 (ja) | ユーザインタフェース装置、その表示方法及びそのプログラム | |
JP2009124576A (ja) | 画像処理装置及びその制御方法 | |
JP2006306045A (ja) | 印刷装置、画像印刷方法、および、画像印刷プログラム | |
JP2006194960A (ja) | 画像表示装置及び表示制御プログラム | |
JP5291131B2 (ja) | 画像形成装置および集約印刷方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |