(57)【特許請求の範囲】
【請求項１】
画像を主走査方向および副走査方向にそれぞれ複数に分割してなる画像ブロックの各々を可変長符号化したデータを前記主走査方向、前記副走査方向の順で配列した画像データを含む画像ファイルが記憶された外部の記憶媒体から、該画像ファイルに含まれる画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された画像データを一時的に記憶する記憶手段と、
ユーザの指示に応じて、印刷用データに基づき前記画像ファイルに対応する画像を記録材上に印刷する印刷手段と、
前記読み出し手段に対し必要な画像データを要求するとともに、該要求に応じて前記読み出し手段から与えられる画像データに所定のデータ処理を行って前記印刷用データを作成するデータ処理手段と
を備え、
前記読み出し手段が前記記憶媒体から画像データを前記記憶媒体内のデータ配列順に沿って読み出す第１読み出し処理を行い、該画像データに基づいて、前記データ処理手段が、前記記憶媒体内のデータ配列において隣接し、かつ前記副走査方向において互いに異なる位置にある２つの画像ブロックのそれぞれに属する画像データ間の前記記憶媒体内のデータ配列における境界を表す境界情報を求める境界情報導出処理を行う一方、前記読み出し手段が、前記境界情報に基づき前記データ配列順と異なる順序で前記記憶媒体から画像データを読み出し該画像データを前記記憶手段に記憶させる第２読み出し処理を行い、しかも、
前記境界情報導出処理を前記指示を待たずに実行開始し、前記境界情報導出処理により得られる境界情報を、少なくとも前記第２読み出し処理を行う場合には、少なくとも前記第２読み出し処理が完了するまで記憶する
ことを特徴とする画像データ処理装置。
【請求項２】
表示用データに基づいて、前記画像ファイルに対応する画像を表示する表示手段をさらに備え、
前記データ処理手段は、前記第１読み出し処理において読み出された画像データに基づき前記表示用データを作成して前記表示手段に与える請求項１に記載の画像データ処理装置。
【請求項３】
前記第１読み出し処理、前記境界情報導出処理および前記第２読み出し処理をこの順序で行う第１の処理モードと、前記記憶媒体から画像データをその配列順に沿って読み出し前記記憶手段に記憶させておく第２の処理モードとを選択的に実行する請求項１または２に記載の画像データ処理装置。
【請求項４】
前記画像ファイルに含まれる画像のサイズを表す情報に基づいて、前記第１および第２の処理モードのうち一方が選択実行される請求項３に記載の画像データ処理装置。
【請求項５】
ユーザにより指定された前記記録材上への画像配置に関する情報に基づいて、前記第１および第２の処理モードのうち一方が選択実行される請求項３に記載の画像データ処理装置。
【請求項６】
前記データ処理手段は前記印刷手段による印刷順序に応じた順序で前記読み出し手段に対し画像データを要求するように構成され、
前記データ処理手段が要求する画像データの順序と、前記記憶媒体における画像データの配列順序とが一致するときには前記第２の処理モードが選択される一方、それらの順序が一致しないときには前記第１の処理モードが選択される請求項３ないし５のいずれかに記載の画像データ処理装置。
【請求項７】
ユーザの指示に応じて、記憶媒体に記憶された画像データを記憶手段に記憶し、前記記憶手段に記憶された画像データから印刷用データを作成し、該印刷用データに基づいて画像を記録材上に印刷する画像データ処理方法において、
画像を主走査方向および副走査方向にそれぞれ複数に分割してなる画像ブロックの各々を可変長符号化したデータを前記主走査方向、前記副走査方向の順で配列した画像データを含む画像ファイルが記憶された前記記憶媒体から画像データを読み出し可能となった後で、ユーザの指示の受け付けを待たずに、前記記憶媒体から画像データを前記記憶媒体内のデータ配列順に沿って読み出す第１読み出し処理と、
前記第１読み出し処理において読み出された画像データに基づいて、前記記憶媒体内のデータ配列において隣接し、かつ前記副走査方向において互いに異なる位置にある２つの画像ブロックのそれぞれに属する画像データ間の前記記憶媒体内のデータ配列における境界を表す境界情報を求める境界情報導出処理と、
前記境界情報に基づき前記データ配列順と異なる順序で前記記憶媒体から画像データを読み出して前記記憶手段に記憶させる第２読み出し処理と
を実行し、しかも、
前記境界情報導出処理を前記指示を待たずに実行開始し、前記境界情報導出処理により得られる境界情報を、少なくとも前記第２読み出し処理を行う場合には、少なくとも前記第２読み出し処理が完了するまで記憶することを特徴とする画像データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像ファイルを記憶した記憶媒体から画像データを読み出してデータ処理を行う画像データ処理装置および画像データ処理方法に関するものである。
【背景技術】
【０００２】
外部記憶媒体に記憶された画像データを読み出してデータ処理を行う画像データ処理装置においては、記憶媒体へのアクセス回数を少なくするため、記憶媒体から読み出された画像データを一時的に保存する記憶手段を設けている。そして、データ処理に必要な画像データについては、必要なときに記憶手段から読み出してデータ処理に供するようにしている。例えば、特許文献１に記載の画像印刷システムにおいては、ユーザにより画像やその印刷条件が選択され印刷指示がなされると、該システムはこれを受けてデジタルカメラなどの外部記憶媒体への画像データ要求を開始して必要なデータを取得し、そのデータから印刷用データを作成し印刷動作を実行する。
【０００３】
また、外部記憶媒体から画像データを読み出す場合、装置内部でのデータの移動に比べ時間がかかるため、この画像印刷システムでは、外部記憶媒体から読み出したデータを一時的に記憶するための記憶手段（キャッシュバッファ）を設けている。
【０００４】
【特許文献１】特開２００５−２６２６５１号公報（例えば、段落００９３）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記した従来技術においては、ユーザによって所定の操作指示がなされてから外部記憶媒体からのデータ読み出しが開始されるため、必要なデータが読み込まれるのに時間がかかってしまうことがあり、結果としてユーザの指示への応答が遅れることがあった。特に、外部記憶媒体に記憶された画像ファイルのサイズが記憶手段の容量を超えている場合にその問題が顕著となる。というのは、全てのデータを記憶手段に記憶させることができないため、処理に必要なデータを外部記憶媒体へ読み出しに行くための動作を高い頻度で行う必要があるからである。
【０００６】
この発明は上記課題に鑑みなされたものであり、画像ファイルを記憶した記憶媒体から画像データを読み出してデータ処理を行う画像データ処理装置および画像データ処理方法において、データ処理に要する時間の短縮を可能とするための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明にかかる画像データ処理装置は、上記目的を達成するため、画像を主走査方向および副走査方向にそれぞれ複数に分割してなる画像ブロックの各々を可変長符号化したデータを前記主走査方向、前記副走査方向の順で配列した画像データを含む画像ファイルが記憶された外部の記憶媒体から、該画像ファイルに含まれる画像データを読み出す読み出し手段と、前記読み出し手段により読み出された画像データを一時的に記憶する記憶手段と、ユーザの指示に応じて、印刷用データに基づき前記画像ファイルに対応する画像を記録材上に印刷する印刷手段と、前記読み出し手段に対し必要な画像データを要求するとともに、該要求に応じて前記読み出し手段から与えられる画像データに所定のデータ処理を行って前記印刷用データを作成するデータ処理手段とを備え、前記読み出し手段が前記記憶媒体から画像データを前記記憶媒体内のデータ配列順に沿って読み出す第１読み出し処理を行い、該画像データに基づいて、前記データ処理手段が、前記記憶媒体内のデータ配列において隣接し、かつ前記副走査方向において互いに異なる位置にある２つの画像ブロックのそれぞれに属する画像データ間の前記記憶媒体内のデータ配列における境界を表す境界情報を求める境界情報導出処理を行う一方、前記読み出し手段が、前記境界情報に基づき前記データ配列順と異なる順序で前記記憶媒体から画像データを読み出し該画像データを前記記憶手段に記憶させる第２読み出し処理を行い、しかも、前記境界情報導出処理を前記指示を待たずに実行開始し、前記境界情報導出処理により得られる境界情報を、少なくとも前記第２読み出し処理を行う場合には、少なくとも前記第２読み出し処理が完了するまで記憶することを特徴としている。
【０００８】
また、この発明にかかる画像データ処理方法は、ユーザの指示に応じて、記憶媒体に記憶された画像データを記憶手段に記憶し、前記記憶手段に記憶された画像データから印刷用データを作成し、該印刷用データに基づいて画像を記録材上に印刷する画像データ処理方法であって、上記目的を達成するため、画像を主走査方向および副走査方向にそれぞれ複数に分割してなる画像ブロックの各々を可変長符号化したデータを前記主走査方向、前記副走査方向の順で配列した画像データを含む画像ファイルが記憶された前記記憶媒体から画像データを読み出し可能となった後で、ユーザの指示の受け付けを待たずに、前記記憶媒体から画像データを前記記憶媒体内のデータ配列順に沿って読み出す第１読み出し処理と、前記第１読み出し処理において読み出された画像データに基づいて、前記記憶媒体内のデータ配列において隣接し、かつ前記副走査方向において互いに異なる位置にある２つの画像ブロックのそれぞれに属する画像データ間の前記記憶媒体内のデータ配列における境界を表す境界情報を求める境界情報導出処理と、前記境界情報に基づき前記データ配列順と異なる順序で前記記憶媒体から画像データを読み出して前記記憶手段に記憶させる第２読み出し処理とを実行し、しかも、前記境界情報導出処理を前記指示を待たずに実行開始し、前記境界情報導出処理により得られる境界情報を、少なくとも前記第２読み出し処理を行う場合には、少なくとも前記第２読み出し処理が完了するまで記憶することを特徴としている。
【０００９】
以下の説明においては、画像のうち、副走査方向における位置が同一の、つまり主走査方向に沿って一列に並んだ複数の画像ブロックからなる帯状の部分を「ブロック行」と称する一方、主走査方向における位置が同一の、つまり副走査方向に沿って一列に並んだ複数の画像ブロックからなる帯状の部分を「ブロック列」と称する。また、本明細書において「画像データが属する画像ブロック」とは、その画像データにより表される情報が画像内容に反映される画像ブロックを指す。つまり、その画像データは、当該画像ブロックの画像内容を符号化して得られるデータの全部または一部である。
【００１０】
可変長符号化された画像データ列においては、１つの画像ブロックに対応する画像データのデータ長が画像内容によって異なるので、画像ブロックごとに区切って画像データを読み出すことが難しい。このため、特に画像データの読み出し順序が記憶媒体における画像データ列の配列順序と異なる場合において、記憶媒体からの画像データの読み出しに長時間がかかってしまう傾向がある。このことがデータ処理時間の長大化を招く一因となっている。
【００１１】
これに対し、上記のように構成された発明では、第１読み出し処理および境界情報導出処理が実行されることによって記憶媒体に記憶された画像データ列におけるブロック行の切れ目がわかる。したがって、画像データの読み出し順序が記憶媒体における画像データ列の配列順序と異なる場合でも、比較的短時間で画像データの読み出しを行うことが可能である。
【００１２】
さらに、従来の技術においては、印刷指示が与えられてから画像データの読み出しを開始しているので、例えば画像データの読み出し順序が記憶媒体における画像データ列の配列順序と異なっていた場合には、印刷指示が与えられてから必要に応じて境界情報を求め、該境界情報に基づく順序で画像データを読み出し記憶手段に記憶させ、印刷用データを作成する、という手順で処理がなされていた。このため、印刷用データが作成され実際に印刷が始まるまでの時間が長くなってしまう。
【００１３】
一方、上記発明では、境界情報導出処理と、該境界情報に基づき定めた順序で記憶媒体から画像データを読み出して記憶手段に記憶させる第２読み出し処理とのうち少なくとも一方を、ユーザから印刷指示が与えられるのに先立って実行開始するようにしている。このため、ユーザから印刷指示があったときには、たとえ該印刷指示が記憶媒体における画像データ列の配列順序と異なる順序でデータ処理を行うことを要するものであったとしても、少なくとも境界情報は求められているので、以後の記憶媒体からの画像データの読み出しを短時間で効率よく行うことができる。さらに、印刷指示があった時点で境界情報に基づく順序で画像データの読み出しが済んでいれば、それらのデータを用いて直ちに印刷用データの作成を行うことができるので、印刷が始まるまでの時間を大幅に短縮することができる。
【００１４】
なお、データ処理手段が要求するデータの順序が記憶媒体内での配列順と一致するような場合には、上記のように境界情報に基づく順序で記憶手段に記憶された画像データを有効に利用できないことも起こり得る。この場合には再度画像データを読み出す必要が生じるが、この際の読み出しは記憶媒体内での配列順に沿った単純なものであるので、再読み出しによる時間のロスは比較的小さい。
【００１５】
また、境界情報については第２読み出し処理が完了するまで保存しておくことが望ましいが、第１読み出し処理において読み出された画像データを記憶手段に記憶させるか否かは任意である。第１読み出し処理では記憶媒体内での配列順に沿って画像データが読み出されるので、この画像データを保存しておけば、例えばデータ処理手段が要求するデータの順序が記憶媒体内での配列順序と一致しているとき、保存されたデータを使用してデータ処理を開始することができる点で好ましい。しかしながら、第１および第２読み出し処理で読み出されたデータをともに記憶させようとすると、記憶手段に大きな記憶容量が必要となり、しかもそのうち一方は実際にはデータ処理に使用されないので効率的とは言えない。そこで、第１読み出し処理では読み出した画像データをいったん記憶手段に記憶しておき、第２読み出し処理において読み出した画像データを記憶手段内のデータに上書きするように構成されることが好ましい。
【００１６】
上記のように構成された画像データ処理装置においては、表示用データに基づいて、前記画像ファイルに対応する画像を表示する表示手段をさらに設け、前記データ処理手段は、前記第１読み出し処理において読み出された画像データに基づき前記表示用データを作成して前記表示手段に与えるようにしてもよい。このようにすれば、ユーザは印刷に先立って画像を目視にて確認することができる。また、第１読み出し処理により読み出された画像データは、表示用データを作成する目的および境界情報を求める目的の２つに使用されることとなり、さらにデータ処理の効率を高めることができる。さらに、こうして画像を表示させている間に第２読み出し処理を進めておけば、画像を確認したユーザが印刷指示操作を行ったとき、遅滞なく印刷を開始することが可能となる。
【００１７】
また、前記第１読み出し処理、前記境界情報導出処理および前記第２読み出し処理をこの順序で行う第１の処理モードと、前記記憶媒体から画像データをその配列順に沿って読み出し前記記憶手段に記憶させておく第２の処理モードとを選択的に実行するように構成されてもよい。こうすることで、予め記憶媒体から読み出し記憶手段に記憶させておく画像データの順序を、記憶媒体内での配列順と同じ配列、またはこれと異なる配列のいずれにもすることが可能となり、必要な画像データを予め記憶媒体から読み出し記憶手段に記憶させておくことでデータ処理に要する時間を短縮することができる。
【００１８】
例えば、前記画像ファイルに含まれる画像のサイズを表す情報に基づいて、前記第１および第２の処理モードのうち一方が選択実行されるようにすることができる。また、例えば、ユーザにより指定された前記記録材上への画像配置に関する情報に基づいて、前記第１および第２の処理モードのうち一方が選択実行されるようにしてもよい。画像のサイズ、例えば画像を構成する縦横の画素数から、画像の大きさや該画像の形状（縦長か横長か）などがわかる。また、画像の配置が決まれば、印刷用データを作成するための処理を画像の縦方向、横方向のいずれに沿って行うかが決まる。これらの情報は、データ処理に要求される画像データの順序を予測する指標となり得る。したがって、これらの情報に基づき処理モードを選択することにより、実際にデータ処理手段が要求する蓋然性の高い順序で画像データを記憶手段に記憶させておくことができる。より具体的には、前記データ処理手段が要求する画像データの順序と、前記記憶媒体における画像データの配列順序とが一致するときには前記第２の処理モードが選択される一方、それらの順序が一致しないときには前記第１の処理モードが選択されるようにすればよい。
【発明を実施するための最良の形態】
【００１９】
図１は本発明にかかる画像データ処理装置の一実施形態であるフォトプリンタを示す斜視図である。また、図２はフォトプリンタの内部構成の概略を示す図である。このフォトプリンタ１０では、プリンタ本体１２の内部にはプリント機構５０（図２参照）が内蔵されており、フォトプリンタ１０の全体の制御を司るコントローラ７０（図２参照）からの動作指令に応じて用紙Ｐへの印刷を実行する。そして、こうして印刷された用紙がプリンタ本体１２の前面に排紙される。
【００２０】
このプリンタ本体１２の前面には、図１に示すように、前面扉１４が開閉自在に取り付けられている。この前面扉１４はプリンタ本体１２の前面を開閉するための蓋である。そして、開状態のときには、プリント機構５０から排紙される用紙Ｐを受けるための排紙トレイとして機能する。また、プリンタ本体１２の前面に設けられた各種のメモリカードスロット１６をユーザが利用可能な状態となる。つまり、この状態でユーザは印刷対象となる画像ファイルを記憶したメモリカードＭをメモリカードスロット１６に差し込むことができる。画像ファイルデータを記憶する外部記憶媒体としてはメモリカードに限定されず、ＵＳＢメモリやディスク媒体など他のものであってもよい。また、画像を記憶したデジタルカメラや携帯電話等の電子機器を本フォトプリンタ１０にケーブルや赤外線を利用した通信によって接続し外部記憶媒体として機能させてもよい。
【００２１】
また、プリンタ本体１２の上面には操作パネル２０が設けられる一方、プリンタ本体１２の上面の奥の一辺に対してカバー３０が開閉自在に取り付けられている。このカバー３０は、プリンタ本体１２の上面を覆うことのできる大きさに成形された樹脂板であり、開状態では操作パネル２０の表面を外部に露出する（図１参照）。一方、カバー３０が閉状態に閉じられると、操作パネル２０全体を覆う。
【００２２】
この操作パネル２０には、文字や図形、記号などを表示する例えばＬＣＤディスプレイにより構成された表示部２２と、この表示部２２の周囲に配置されたボタン群２４とを備えている。ボタン群２４は、図２に示すように、電源のオンオフを行うための電源ボタン２４ａ、メインメニュー画面を呼び出すためのメニューボタン２４ｂ、操作を途中でキャンセルしたり用紙Ｐへの印刷を途中で中断したりするためのキャンセルボタン２４ｃ、用紙Ｐへの印刷実行を指示するための印刷ボタン２４ｄ、メモリカードスロット１６に挿入されたメモリカードＭに編集画像等を保存するための保存ボタン２４ｅ、表示部２２に表示された複数の選択肢の中から所望の選択肢を選択したりカーソルを移動したりするときに操作される上下左右の各矢印ボタン２４ｆ〜２４ｉ、この上下左右の各矢印ボタン２４ｆ〜
２４ｉの中央に配置され各矢印ボタン２４ｆ〜２４ｉによって選択されている選択肢に決定したことを指示するためのＯＫボタン２４ｊ、表示部２２での画面表示を切り替えるための表示切替ボタン２４ｋ、表示部２２に表示される左ガイドを選択する左ガイド選択ボタン２４ｌ、表示部２２に表示される右ガイドを選択する右ガイド選択ボタン２４ｍ、排紙トレイとしての機能を備えた前面扉１４を開く排紙トレイオープンボタン２４ｎなどで構成されている。
【００２３】
また、表示部２２の表示内容を確認するために、カバー３０には表示部２２と同じ大きさの窓３２が設けられている。つまり、カバー３０が閉状態にあるときにはユーザはこの窓３２を介して表示部２２の表示内容を確認することができる。一方、カバー３０は開状態のときには、表示部２２を図１に示すように好みの角度に調整することが可能となっている。
【００２４】
このようにカバー３０を開状態としたときには、操作パネル２０に対して斜め後方に傾斜した状態でカバー３０は保持され、用紙Ｐをプリント機構５０へ供給するためのトレイとして利用可能となっている。また、操作パネル２０の奥には、プリント機構５０の給紙口５８が設けられるとともに、ガイド幅が用紙の幅に合うように左右方向にスライド操作される一対の用紙ガイド５９が設けられている。
【００２５】
そして、給紙口５８を介して用紙Ｐがプリント機構５０に送り込まれて印刷が実行される。このプリント機構５０には、図２に示すように、キャリッジ５３が左右方向にループ状に架け渡されたタイミングベルト５１により駆動されガイド５２に沿って左右に往復動する。このキャリッジ５３には、紙端検出センサ５７が設けられ、用紙Ｐの左右端や上下端を検出する。つまり、紙端検出センサ５７は、給紙口５８にセットされた用紙に対して印刷前にキャリッジ５３が左右方向に走査したときにその用紙の左右端を検出して用紙幅の認識を可能にしたり、印刷途中で用紙の後端を検出して用紙長さの認識を可能にしたりする。
【００２６】
また、このキャリッジ５３には、シアン・マゼンタ・イエロー・ブラック等の各色のインクを個別に収容したインクカートリッジ５４が搭載されている。これらのインクカートリッジ５４はそれぞれ印刷ヘッド５５に接続されている。そして、印刷ヘッド５５はインクカートリッジ５４からのインクに圧力をかけてノズル（図示省略）から用紙Ｐに向かってインクを吐出する。この実施形態では、印刷ヘッド５５は圧電素子に電圧をかけることにより該圧電素子を変形させてインクを加圧する方式を採用しているが、発熱抵抗体（例えばヒータなど）に電圧をかけインクを加熱して発生した気泡によりインクを加圧する方式を採用してもよい。こうして印刷された用紙Ｐは搬送ローラ５６によって開状態の前面扉（排紙トレイ）１４へ送り出される。
【００２７】
また、図示を省略しているものの、プリンタ本体１２の背面にはバッテリパックを装着可能となっており、商用電源に接続しなくとも本プリンタ１０をバッテリにより動作させることが可能となっている。この点および本プリンタ１０がホストコンピュータに接続しなくても使用することができるスタンドアロンプリンタとなっている点により、本プリンタ１０は持ち運び容易でどこでも使用できるようになっている。
【００２８】
図３はコントローラの構成を示すブロック図である。コントローラ７０は、図３に示すように、メインコントローラ７１、メモリカードコントローラ７２、メモリカードドライバ７３、ファイルシステム７４、管理用バッファ７４１、画像データバッファ７４２、デコーダ７５、印刷データ生成部７６およびＬＣＤコントローラ７７などの機能ブロックを備えている。このうち、メインコントローラ７１、メモリカードドライバ７３、ファイルシステム７４、デコーダ７５および印刷データ生成部７６の各機能ブロックはソフトウェアにより実現される。すなわち、図示を省略するＣＰＵが予め定められた制御プログラムを実行することにより、これらの機能が実現される。
【００２９】
ユーザにより画像ファイルを記憶したメモリカードＭがメモリカードスロット１６に挿入されると、メモリカードコントローラ７２がこれを検知してメモリカードＭの記憶領域にアクセスし、記憶されているデータを読み出す。また、メモリカードドライバ７３は、所定のタイミングでメモリカードＭから必要なデータを取り出すべくメモリカードコントローラ７２を制御する。ファイルシステム７４は、メモリカードＭから読み出されたデータを必要に応じて管理用バッファ７４１または画像データバッファ７４２に記憶させる。また、後述するデコーダ７５からの要求に応じて、必要なデータを管理用バッファ７４１および画像データバッファ７４２から読み出したり、メモリカードＭからデータを読み出すための要求をメモリカードドライバ７３に対し出力する。
【００３０】
デコーダ７５は、メモリカードＭから読み出されたデータをデコードして画像ファイルを再構成する。このとき、メモリカードＭに記憶されている画像ファイルがデータ圧縮されたものであれば、デコーダ７５はデータを伸長して圧縮前のデータを復元する。
【００３１】
印刷データ生成部７６は、デコーダ７５によりデコードされた画像ファイルのデータに基づいて印刷制御信号を生成し、プリント機構５０に対し出力する。プリント機構５０は印刷制御信号に基づいて印刷動作を実行し、用紙上に画像ファイルに対応する画像を形成する。また、ＬＣＤコントローラ７７は、デコーダ７５によりデコードされた画像ファイルのデータに基づいてビデオ信号を生成し、表示部２２に出力する。これにより、表示部２２には画像ファイルに対応した画像が表示される。
【００３２】
そして、メインコントローラ７１は、上記した装置各部に対しその状態を監視したり必要な制御信号を与えることで、装置全体の動作を制御している。また、メインコントローラ７１は、ボタン群２４に対するユーザの操作入力を受け付けている。
【００３３】
上記のように構成されたフォトプリンタ１０では、メモリカードＭに記憶された画像ファイルが読み出され必要な加工が施されて印刷用画像データが生成され、該画像データに基づいてプリント機構が動作することによって所望の画像が得られる。しかしながら、外部記憶媒体であるメモリカードＭへのアクセスには、プリンタ内部におけるデータのやり取りよりも時間がかかるため、印刷に必要なデータを都度メモリカードＭから読み出したのでは印刷に要する時間が長くなってしまう。この問題を回避するために管理用バッファ７４１および画像データバッファ７４２が設けられている。
【００３４】
管理用バッファ７４１および画像データバッファ７４２はいずれもデータを一時的に保存するバッファメモリであり、ファイルシステム７４からの要求に応じてデータを保存したり、保存しているデータをファイルシステム７４に対して出力する。このうち管理用バッファ７４１は、メモリカードＭ内におけるディレクトリ情報やＦＡＴ（File Allocation Table）情報、画像データバッファ７４２にどの画像データが記憶されているかなどの情報を記憶する。また、画像データバッファ７４２は、画像ファイルを構成するデータとしてクラスタ単位に分割されメモリカードＭに記憶されている画像データを記憶する。印刷動作に先立ってデータをバッファに保存しておけば、印刷時間を短縮することが可能となる。
【００３５】
図４は画像データの一例を示す図である。ここでは、図４（ａ）に示すように、１つの画像ＩＭが直交する座標軸ＸおよびＹ方向にそれぞれ複数個の画像ブロックに分割されており、画像ブロック単位でその画像内容がエンコードされている場合について考える。図４（ａ）の例では、画像ＩＭは、画像ブロックをＸ方向に８個、Ｙ方向に６個それぞれ並べてなる。各画像ブロックは縦横それぞれ複数の画素からなる。なお、各画像ブロックを構成する画素の数および画像を構成する画像ブロックの数についてはこれに限定されるものではなく任意である。各画像ブロックについては、図４（ａ）のようにそれぞれその座標を付すことによって識別するものとする。例えば左上の画像ブロックは座標（１，１）によって表され、またその右隣のブロックは座標（１，２）によって表すことができる。他の各ブロックについても同様である。以下において、座標（ｍ，ｎ）で示されるブロックを示す必要があるときには、符号Ｂmnを用いて表すことにする。例えば、座標（１，１）に対応する画像ＩＭの左上の画像ブロックは符号Ｂ11により表される。図４（ａ）においては、後の説明の便宜のため、矩形を有する画像の上縁を太い直線ＴＩによって表している。
【００３６】
以下では、Ｘ方向およびＹ方向にそれぞれ一列に並んだ各画像ブロックの集まりからなる帯状の画像片をそれぞれ「ブロック行」および「ブロック列」と称する。例えば、Ｘ方向に沿って横一列に並んだ画像ブロックＢ21，Ｂ22，Ｂ23，…，Ｂ28はブロック行ＢＬ2をなしている。また、Ｙ方向に沿って縦一列に並んだ画像ブロックＢ15，Ｂ25，Ｂ35，…，Ｂ65はブロック列ＢＣ5をなしている。
【００３７】
一方、このような画像を示す画像ファイルには、図４（ｂ）のような画像データが含まれている。ここで、符号Ｄmnは座標（ｍ，ｎ）で示される画像ブロックＢmnの画像内容を表す画像データであることを示している。例えば符号Ｄ11は、座標（１，１）により表される左上の画像ブロックＢ11に対応する画像データを表している。メモリカードＭ内では、各画像ブロックＢ11〜Ｂ68ごとの画像データＤ11〜Ｄ68が、Ｄ11，Ｄ12，…，Ｄ18，Ｄ21，…，Ｄ67，Ｄ68の順に格納されている。なお、このことは、これらのデータが番号の連続するクラスタにこの順番でそのまま格納されていることを意味するのではなく、ＦＡＴファイルシステムにより指定されるクラスタチェーンの順に沿って、これらのデータが上記順序で格納されていることを意味している。同様に、以下の記述において、メモリカード内の画像データの配列順に言及するとき、それはクラスタチェーンの順に沿ったデータの順番を意味する。
【００３８】
メモリカードＭ内において、各画像ブロックに対応する画像データは、画像内における画像ブロックの配列に準じてＸ方向（主走査方向）、Ｙ方向（副走査方向）の順にエンコードされ配列されている。すなわち、画像ファイルの先頭には、１行目（一番上）のブロック行をなす各画像ブロックを表す画像データが左の画像ブロックから順に配列される。すなわち、最初に左上の画像ブロックＢ11を表す画像データＤ11が、次いでＸ方向に続く画像ブロックＢ12，Ｂ13，…を表す画像データＤ12，Ｄ13，…が配列される。１行目の最後（右端）の画像ブロックＢ18を表すデータＤ18に続いては、２行目の先頭（左端）の画像ブロックＢ21を表すデータＤ21が配列される。以下も同様にして、画像の左上端から右下端に向けて順にデータが配列されている。
【００３９】
画像データが例えばＪＰＥＧ方式などの圧縮方式によりエンコードされている場合、各ブロックＢmnを表すデータＤmnのデータ長は一定ではなく、当該画像ブロックの画像内容に応じて異なっている。すなわち、図４（ｂ）に示される画像データは可変長データである。したがって、図４（ａ）に示す画像ＩＭを１ブロック分の高さおよび８ブロック分の幅をそれぞれ持つ６つの行画像に区分したとき、例えばブロックＢ11からＢ18までの８つの画像ブロックで構成されるブロック行に対応する画像データＤ11〜Ｄ18の全データ量と、ブロックＢ21からＢ28までの８つの画像ブロックで構成されるブロック行に対応する画像データＤ21〜Ｄ28の全データ量とは、図４（ｂ）に示すように必ずしも同じではない。
【００４０】
なお、図４（ｂ）において「オフセット」とは、画像ファイルを構成する画像データが当該画像ファイルの先頭からみて何バイト目に位置するかを示すパラメータである。例えば、画像ブロックＢ11の画像内容を表す画像データＤ11の脇に付されたオフセット値「０」は、当該画像データＤ11が画像ファイルの先頭から始まっていることを示している。また、画像ブロックＢ21の画像内容を表す画像データＤ21の脇に付されたオフセット値「１４１」は、当該画像データＤ21が画像ファイルの先頭からみて１４１バイト目から始まっていることを示している。他のオフセット値もそれぞれの画像ブロックに対応する画像データが画像ファイルの何バイト目から始まっているかを表している。
【００４１】
デコーダ７５は、ファイルシステム７４に画像データを要求するとき必要なデータをこのオフセット値により指定する。すなわち、デコーダ７５はファイルシステム７４に対し、要求するデータの先頭位置および末尾位置をオフセット値により指定して要求する。ここでの指定は、データ先頭のオフセット値とバイト数または先頭のオフセット値と末尾のオフセット値により行うことができる。これを受けたファイルシステム７４は、メモリカードＭ内の画像ファイルから該当オフセット値のデータを読み出して画像データバッファ７４２に書き込む。
【００４２】
次に、このような画像データを含む画像ファイルをメモリカードＭから読み出し、当該画像ファイルに対応する画像をプリント機構５０により用紙Ｐ上に印刷する際のデータ処理の流れについて説明する。プリント機構５０による印刷は、用紙Ｐを一定の紙送りピッチで所定方向に搬送するとともに、これに直交する方向にキャリッジ５３を往復走査移動させながら、その都度所定幅のバンド画像を形成してゆくことによってなされる。この場合のバンドは少なくとも１行のブロック行から成り、バンド幅は印刷ヘッド５５に設けられたノズル列の幅に対応している。したがって、キャリッジ５３の１回の走査移動のためには、少なくとも１バンド分の印刷データ（バンドデータ）がデコーダ７５から印刷データ生成部７６を介してプリント機構５０に与えられる必要がある。
【００４３】
この実施形態では、デコーダ７５がブロック単位で画像データをデコード処理し、デコードデータを印刷データ生成部７６に与える。印刷データ生成部７６は、ブロック単位のデコードデータをブロック行単位に、さらには各ブロック行ごとのデータをバンド単位に再配列することにより、バンド単位の印刷用データ（バンドデータ）を作成し、該バンドデータを含む印刷制御信号をプリント機構５０に送信することによって、プリント機構５０により画像が印刷される。
【００４４】
（１）画像を回転させない場合
画像を回転させずに印刷する、つまりキャリッジ５３の走査移動方向が図４（ａ）のＸ軸方向と一致する場合、デコーダ７５がデコード処理のためにファイルシステム７４に要求するデータの順番と、メモリカードＭ内における画像データの配列順序とが一致する。したがって、デコーダ７５はファイルシステム７４に対し、当該画像ファイルの先頭から順にデータを要求すればよい。
【００４５】
図５は画像を回転させない場合の画像データの処理順序を示す図である。より詳しくは、図５（ａ）はデコーダ７５によるデコード処理の対象となる画像ブロックの順序を表す図であり、図５（ｂ）は画像データバッファ７４２内における画像データの格納順を示す図である。画像を回転させない場合、画像ＩＭはその上縁ＴＩから下方へ向けて印刷されるので、デコーダ７５がデコードする画像ブロックの順序、すなわちデコード順序は、図５（ａ）において矢印付きの直線で示すように、左から右、上から下に向かうＢ11，Ｂ12，Ｂ13，…の順である。したがって、デコーダ７５から要求されるデータの順序もメモリカードＭ内における配列と同じ順序、すなわちＤ11，Ｄ12，Ｄ13…の順である。
【００４６】
このとき、メモリカードＭから読み出され画像データバッファ７４２に書き込まれる画像データは、書き込まれた順に読み出されてデコーダ７５に送られデコード処理される。したがって、デコーダ７５からの要求に応じてファイルシステム７４がメモリカードＭから画像データを読み出すとき、ファイルシステム７４は要求された画像データを含む適当なデータ長の画像データをまとめて画像データバッファ７４２に書き込んでおけばよい。
【００４７】
例えば、デコード処理が開始されてデコーダ７５から最初の画像ブロックＢ11に対応する画像データＤ11を要求されたとき、ファイルシステム７４は画像データバッファ７４２にデータが保存されていないためメモリカードＭから当該データを読み出す。このとき、要求されたデータＤ11を先頭として連続するデータを適当な長さで読み出して画像データバッファ７４２に書き込んでおく。画像データバッファ７４２が予め定められたバッファサイズを有する複数本のラインバッファで構成されているとすると、読み出す画像データの長さは例えばラインバッファのバッファサイズとすることができる。バッファサイズとしては、少なくとも１画像ブロック分の画像データが完全に収まるデータ長があることが望ましい。
【００４８】
この場合、図５（ｂ）に示すように、ラインバッファ＃１にはメモリカードＭから読み出されたデータＤ11，Ｄ12，…がバッファサイズ一杯まで書き込まれる。同図の例では、ブロックＢ22に対応する画像データＤ22の途中までがラインバッファ＃１に書き込まれた場合を示している。図５（ｂ）において、符号1/2-Ｄ22は、データＤ22の全てがラインバッファ＃１に収まりきらず前半部分のみが書き込まれたことを示している。以下においても同様である。
【００４９】
このようにしておけば、デコーダ７５から引き続きデータＤ12，Ｄ13，…が順次要求されたとき、ファイルシステム７４はメモリカードＭからデータを読み出すことなく、ラインバッファ＃１に書き込まれた画像データＤ12，Ｄ13，…をデコーダ７５に送り出すことができる。なお、１行目のブロック行、つまり画像ブロックＢ11からＢ18までについてデコード処理が完了すれば、１バンド分の印刷用データが揃ったこととなるので当該バンドについて印刷動作を開始することができる。したがって、図５（ｂ）に示すように、画像データバッファ７４２のラインバッファ１本に１ブロック行以上の画像データが記憶されていれば、当該ブロック行についてのデコード処理および印刷動作は、途中でメモリカードＭへの読み出しを挟むことなく実行することが可能である。そして、少なくとも当該ブロック行の印刷が完了するまでに、次のブロック行のデータ読み出しおよびデコード処理を終了していれば、引き続き印刷動作を遅滞なく行って短時間で画像を印刷することができる。
【００５０】
デコーダ７５からデータＤ22が要求されたとき、ラインバッファ＃１にはデータＤ22の前半部分しか保存されていないため、ファイルシステム７４はメモリカードＭから続きのデータを読み出して別のラインバッファ＃２に書き込む。図において符号2/2-Ｄ22はデータＤ22の後半部分を示している。以下においても同様である。このとき、バッファサイズ一杯まで後続のデータＤ23，Ｄ24，…も書き込まれる。以下、同様にして各画像ブロックの画像データが処理されて印刷が行われる。
【００５１】
このように、画像を回転させない場合には、適当なバッファサイズを有するラインバッファを少なくとも１本設けておけばよいこととなる。そして、デコーダ７５の要求に応じてメモリカードＭにアクセスするとき、バッファサイズに相当する画像データをまとめて読み出してラインバッファに記憶させておくことにより、メモリカードＭへの読み出しアクセスの回数を減らして処理を効率よく短時間で行うことができる。なお、ここでは１ブロック行と１バンドとを同じ高さとして説明したが、実際の印刷動作では複数ブロック行を１バンドとすることが多い。このような場合には、１バンドを構成するブロック行の行数に対応する本数以上のラインバッファを設けておけば、メモリカードＭからの画像データの読み出し、デコード処理およびデコード後のバンドデータに基づく印刷動作をスムーズに行うことができる。
【００５２】
（２）画像を回転させるとき
図６は画像を回転させた場合の画像データの処理順序を示す図である。より詳しくは、図６（ａ）はデコーダ７５によるデコード処理の対象となる画像ブロックの順序を表す図であり、図６（ｂ）は画像データバッファ７４２内における画像データの格納順を示す図である。画像を例えば反時計方向に２７０度回転させて印刷する場合、キャリッジ５３の走査移動方向はＹ方向、すなわち画像データの配列順序（Ｘ方向）に直交する列方向となる。このため、印刷される画像ブロックの順番は、図６（ａ）に矢印付きの直線で示すように、ブロックＢ61，Ｂ51，Ｂ41，Ｂ31，Ｂ21，Ｂ11，Ｂ62，Ｂ52，…，Ｂ18となり、メモリカードＭ内におけるデータ配列順序に逆行する順となる。
【００５３】
この場合のデコード処理では、まず画像ブロックＢ61に対応する画像データＤ61が要求され、これに対応して画像データＤ61を含むデータがメモリカードＭから読み出されラインバッファ＃１に書き込まれる。このとき、画像を回転させない場合と同様にバッファサイズに相当するデータ長の画像データを読み出すとすると、図６（ｂ）に示すように、ラインバッファ＃１には、データＤ61およびメモリカードＭ内における後続のデータＤ62，Ｄ62，…が書き込まれる。なお、図６（ｂ）において符号φは、当該画像ファイルに属する画像データでない無効なデータを表している。
【００５４】
こうして画像データＤ61が読み出されデコード処理された後、次に必要とされるのはデータＤ51である。このデータＤ51は、先に要求されたデータＤ61よりもメモリカードＭ内の配列において前方にあるため、画像データＤ61を読み出す際にともに読み出されラインバッファ＃１に書き込まれたデータの中に含まれていることはあり得ない。したがってこのとき新たにメモリカードＭへの読み出しが必要となる。同様に、データＤ41，Ｄ31，Ｄ21，Ｄ11が要求されたとき、その都度メモリカードＭへの読み出しが発生する。その結果、ラインバッファ＃１，＃２，＃３，＃４，＃５，＃６にはそれぞれ、データＤ61，Ｄ51，Ｄ41，Ｄ31，Ｄ21，Ｄ11を先頭としバッファサイズに相当するデータ長のデータが記憶される。これらのデータに続けて読み出された後続データは、デコーダ７５からの要求に応じて順次デコーダ７５へ送り出される。
【００５５】
このようにすると、読み出されたデータの重複が発生する場合がある。例えばデータＤ51に着目すると、メモリカードＭから読み出された当該データがラインバッファ＃２に既に書き込まれているにもかかわらず、次の読み出しで再びメモリカードＭから読み出されラインバッファ＃３に書き込まれていることになる。しかも、ラインバッファ＃３に記憶されたデータＤ51は、当該画像ブロックについては既にデコード処理が済んでおり、もはや必要のないものである。同様に、図６（ｂ）において太線枠で囲まれた各データは、いずれも既に読み出されているまたは処理に使われない等の理由で本来的には読み出す必要のないデータである。
【００５６】
このような不要なデータの読み出しを行うことは、読み出しに要する時間が無駄となり処理時間の長大化を招くとともに、画像データバッファ７４２の記憶資源を浪費することとなり非効率的である。この実施形態では、以下に説明するように、図６（ｂ）において太線枠で囲まれた不要なデータの読み出しを行わないようにして処理の効率化を図り処理時間を短縮している。すなわち、この実施形態では、メモリカードスロット１６にメモリカードＭが挿入されると、コントローラ７０が以下のような動作を実行する。
【００５７】
図７はメモリカード挿入時の動作を示すフローチャートである。メモリカードスロット１６にメモリカードＭが挿入されたことが認識されると（ステップＳ１０１）、ファイルシステム７４は、メモリカードドライバ７３およびメモリカードコントローラ７２を介してメモリカードＭに記憶された画像ファイルのうちの１つ、例えば配列順において先頭のものを選択し、そのヘッダデータを読み出す（ステップＳ１０２、Ｓ１０３）。
【００５８】
画像ファイルが例えばＪＰＥＧ方式のデータ形式を有するものである場合、画像ファイルには、画像の縦・横画素数や撮像条件など画像に付随する情報を有するＥＸＩＦヘッダデータと呼ばれるデータが含まれている。この情報に基づいて、デコーダ７５は画像のサイズ（縦・横それぞれの画素数）を算出し（ステップＳ１０４）、画像の回転の要否を判断する（ステップＳ１０５）。回転の要否は次のようにして判断される。画像のサイズから当該画像の向き、つまり縦長か横長かがわかる。画像の向きが用紙Ｐの向きと同じであるときには回転不要、異なるときには回転要と判断することができる。このように、画像のサイズに関する情報から、デコーダ７５から要求される画像データの順序を予測することが可能である。また、画像の向きや１枚の用紙Ｐへの複数画像の割付など、画像レイアウトに関してユーザによる指定が別途なされている場合にはその指定を優先するようにしてもよい。すなわち、画像レイアウトに関するユーザ指示の情報からも、デコーダ７５から要求される画像データの順序を予測することが可能である。続いて、選択された画像を表示部２２に表示（プレビュー）させるためのプレビュー準備処理を実行する。
【００５９】
図８はプレビュー準備処理を示すフローチャートである。プレビュー準備処理では、まず現在処理中の画像データのオフセットの値を管理用バッファ７４１に保存する（ステップＳ２０１）。処理開始時点ではオフセットの値は０である。次いで、デコーダ７５からファイルシステム７４に対し１ワード分の画像データを要求する（ステップＳ２０２）。ここで、１ワードの長さは画像内容に応じて適宜変化するが、その指定は、例えば先頭および末尾のデータのオフセットを指定することによりなされる。
【００６０】
要求を受けたファイルシステム７４は、管理用バッファ７４１に記憶されている情報に基づき、要求された画像データの全てが既に読み出され画像データバッファ７４２に保存されているか否かを判断する（ステップＳ２０３）。要求された画像データの少なくとも一部がまだ画像データバッファ７４２に保存されていなければ、当該データを先頭としてバッファサイズに相当するデータ長のデータをメモリカードＭから読み出し、画像データバッファ７４２に書き込む（ステップＳ２０４、Ｓ２０５）。画像データバッファ７４２に空いているラインバッファがないときには、書き込み済みのラインバッファのうち一番先に書き込みが行われたラインバッファにデータを上書きする。これにより、必要な画像データが画像データバッファに記憶されていることになる。そこで、ファイルシステム７４は要求された画像データを画像データバッファ７４２から読み出しデコーダ７５に与える（ステップＳ２０６）。
【００６１】
デコーダ７５は、１画像ブロック分のデータが揃うまで、ファイルシステムへのデータの要求を繰り返す（ステップＳ２０７）。１ブロック分のデータが揃ったか否かについては、与えられたデータにブロックの末尾を示す識別コードが含まれているか否かによって判断することができる。そして、１ブロック分のデータが揃っていれば、それらのデータをデコード処理して当該画像ブロックの画素ごとの画像情報を復元する（ステップＳ２０８）。
【００６２】
上記処理を全てのブロックについて完了するまで繰り返すが（ステップＳ２１０）、１つのブロック行についての処理が完了するごとにステップＳ２０１に戻り（ステップＳ２０９）、その時点での画像データのオフセットの値を管理用バッファ７４１に保存しておく。これらの値は、図４（ａ）に示す画像の各ブロック行の左端のブロックＢ11，Ｂ21，…に対応する画像データＤ11，Ｄ21，…のオフセットの値であり、メモリカードＭ内のデータ配列における１つのブロック行と次のブロック行との境界を示している。これら各ブロック行の左端を示すオフセットの値の組を、以下では「境界情報」と称する。
【００６３】
図９は境界情報の例を示す図である。この境界情報は図４（ａ）および図４（ｂ）に例示した画像に対応している。例えば第１の（一番上の）ブロック行については、左端に位置するのはブロックＢ11であり、これに対応する画像データＤ11のオフセットは０である。また、第２のブロック行については、左端に位置するのはブロックＢ21であり、これに対応する画像データＤ21のオフセットは１４１である。以下の各ブロック行についても同様である。なお、図９では説明の便宜上各ブロック行の左端に位置するブロックの番号とそのオフセット値を組にして示しているが、境界情報としては各ブロック行の左端を表すオフセット値が重要であり、ブロック番号については特に必要でない。また、ユーザにより他の画像ファイルが選択されたときには、古い境界情報は削除され新たに選択された画像ファイルについての境界情報が管理用バッファ７４１に記憶される。
【００６４】
図７に戻って説明を続ける。上記のようにしてプレビュー準備処理（ステップＳ１０６）が終了すると、選択された画像ファイルの内容が全て画素単位の情報に復元される。そこで、こうして復元された情報に基づき画像を表示部２２にプレビュー表示する（ステップＳ１０７）。より具体的には、デコーダ７５によりデコードされたデータがＬＣＤコントローラ７７に与えられ、そのデータからＬＣＤコントローラ７７が表示用データを作成して表示部２２に与えることにより、画像ファイルに対応する画像が表示部２２に表示される。これにより、ユーザは選択された画像の内容を画面上で確認することができる。
【００６５】
この時点で、コントローラ７０は割り込み処理を受け付けを許可し（ステップＳ１０８）、装置をユーザからの新たな指示操作を受け付け可能な状態に移行させる。そして、次に説明する先行読み出し処理を実行し（ステップＳ１０９）、ユーザからの操作があるまで待機する待機状態に移行する（ステップＳ１１０）。先行読み出し処理は、割り込み許可後にユーザから与えられる指示操作に素早く応答するために、指示操作を待たずに予めデータをメモリカードＭから読み出し画像データバッファ７４２に記憶させておくための処理である。
【００６６】
図１０は先行読み出し処理を示すフローチャートである。この処理では、ここまでの処理によりメモリカードＭから既に読み出されている情報に基づき画像ファイルのデータサイズを判断する（ステップＳ３０１）。データサイズが画像データバッファ７４２の容量を超えているときには、続いて画像を回転させて処理する必要があるか否かを判断する（ステップＳ３０２）。この判断基準についてはすでに説明した通りである。
【００６７】
画像ファイルのデータサイズが画像データバッファ７４２の容量以下である場合、および、データサイズは画像データバッファ７４２の容量を超えるが回転不要な場合の処理（ステップＳ３０１〜Ｓ３０５）についてまず説明する。これらの場合には、画像データバッファ７４２が一杯になるまで、または当該画像ファイルを構成する画像データの全てが読み出されるまで、メモリカードＭからの画像データの読み出しおよび該データの画像データバッファ７４２への書き込み保存を行う。すなわち、画像データバッファ７４２へのデータの書き込み状況を判定し（ステップＳ３０３）、画像データバッファ７４２が既に一杯になっている、または当該画像ファイルの全ての画像データの読み出しが完了している場合には先行読み出し処理を終了するが、そうでない場合には、バッファサイズに対応するデータ長のデータをメモリカードＭから読み出し（ステップＳ３０４）、該データを画像データバッファ７４２に書き込む（ステップＳ３０５）、という処理を繰り返す。
【００６８】
なお、上記したプレビュー準備処理においてはメモリカードＭ内での配列順に沿った順序で画像データバッファ７４２へのデータの書き込みを行っている。したがって、その直後に行われる先行読み出し処理では、新たな画像データの読み出しが必要ない場合もあり得る。
【００６９】
これにより、画像データバッファ７４２には、図５（ｂ）に示したように、メモリカードＭ内での配列順に沿った順序で画像データが記憶されてゆく。その結果、画像ファイルのデータサイズが画像データバッファ７４２の容量以下であるときには、当該画像ファイルに含まれる全ての画像データが画像データバッファ７４２に保存されることとなる。また、データサイズは画像データバッファ７４２の容量を超えるが回転不要であるときには、画像データバッファ７４２が一杯になるまでの画像データが保存される。そのため、例えばユーザにより印刷指示操作があったときには、画像データバッファ７４２に保存されたデータを使って遅滞なく印刷を実行することができる。このように、この実施形態では、ユーザからの指示を待たずにメモリカードＭから画像データを読み出し画像データバッファ７４２に記憶させておくことで、ユーザからの指示に応じてメモリカードＭからの読み出しを開始する従来の装置に比べて、印刷に要する処理時間を大幅に短縮することができる。
【００７０】
次に、画像のデータサイズが画像データバッファ７４２の容量よりも大きく、しかも回転処理が必要である場合の処理（ステップＳ３１１〜Ｓ３１６）について説明する。このケースでは、全ての画像データを画像データバッファ７４２に記憶させておくことができず、また前記したようにデコーダ７５が要求するデータの順序とメモリカードＭ内におけるデータ配列順序とが一致しないため、メモリカードＭ内における配列順序に沿って画像データバッファ７４２に画像データを記憶させておいたとしても印刷時間の短縮にはつながらない。そこで、次のようにする。
【００７１】
まず、最初にデコード処理の対象となる画像ブロック（図６（ａ）の例では左上のブロックＢ61）について、当該画像ブロックを表す画像データの先頭から、当該画像ブロックと同一ブロック行にある画像ブロックを表す画像データの末尾までのデータ長を算出する（ステップＳ３１１）。図６（ａ）の例では、６個のブロックＢ61，Ｂ62，Ｂ63，Ｂ64，Ｂ65，Ｂ66が１つのブロック行をなしている（図４（ａ）参照）。したがって、これらに対応するデータＤ61〜Ｄ68のデータ長の合計が求める値である。ここで、先に求めた境界情報（図９）によって、画像ファイル先頭からみたデータＤ61のオフセットは既知である。また、データＤ68の末尾は、画像ファイルの全データサイズから既知である。つまり、画像ファイル内における当該ブロック行の画像データの先頭位置および末尾位置は既知であるので、これらの情報から当該ブロック行の画像データのデータ長を算出することが可能である。他のブロック行についても、境界情報によってデータの先頭および末尾の位置が表されているので、データ長を算出することができる。
【００７２】
そして、算出されたデータ長とラインバッファ１本のバッファサイズとを比較し（ステップＳ３１２）、データ長がバッファサイズ以上であれば、先頭データＤ61から順にバッファサイズに対応するデータ長のデータをメモリカードＭから読み出して画像データバッファ７４２に保存しておく（ステップＳ３１３、Ｓ３１４）。一方、算出されたデータ長がバッファサイズよりも小さいときには、先頭データＤ61から、算出されたデータ長のデータのみをメモリカードＭから読み出し（ステップＳ３１４）、画像データバッファ７４２に保存する（ステップＳ３１５）。上記の処理（ステップＳ３１１〜Ｓ３１５）を全ブロック行について繰り返し実行する（ステップＳ３１６）。
【００７３】
図６（ｂ）の例では、データＤ61〜Ｄ68の合計データ長がバッファサイズよりも小さいため、該合計データ長のデータのみがメモリカードＭから読み出されてラインバッファ＃１に書き込まれる。このため、同図において符号φで示す無効データが読み出されることはない。また、画像ブロックＢ51から始まるブロック行については、当該ブロック行に含まれる画像ブロックＢ51〜Ｂ58を表す画像データＤ51〜Ｄ58の合計データ長がバッファサイズより大きいため、バッファサイズ分の画像データ（Ｄ51〜1/2-Ｄ58）のみがメモリカードＭから読み出されてラインバッファ＃２に記憶される。また、画像ブロックＢ41から始まるブロック行については、当該ブロック行に含まれる画像ブロックＢ41〜Ｂ48を表す画像データＤ41〜Ｄ48の合計データ長がバッファサイズ以下であるため、合計データ長分のデータのみが読み出されてラインバッファ＃３に記憶される。
【００７４】
このようにすることで、読み出す必要のないデータ、つまり図６（ｂ）において太線枠で囲んだデータについては読み出しが省かれる。その結果、この実施形態では、従来無用なデータの読み出しに要していた時間が短縮されて、全体の処理時間を短縮することが可能となる。また、画像データバッファ７４２において同じデータが重複して保存されることがないので、記憶資源の有効利用を図ることが可能である。例えば、ラインバッファのバッファサイズを１本ごとに個別に設定可能とし、各ブロック行ごとの合計データ長と一致させるようにすれば、バッファ容量をより有効に活用することが可能となる。
【００７５】
また、ユーザからの指示を待つことなく、しかも画像を回転させることを前提としてその処理に適した態様でメモリカードＭから画像データを読み出し画像データバッファ７４２に予め記憶させているので、ユーザからの指示に応じてメモリカードＭからの読み出しを開始する従来の装置に比べて、印刷に要する処理時間を大幅に短縮することができる。
【００７６】
なお、この実施形態では、１ブロック行の先頭から末尾までの合計データ長がバッファサイズを超えているとき、メモリカードＭから読み出す画像データのデータ長をバッファサイズに制限している。こうすることにより、画像データバッファ７４２の記憶容量を多数のブロック行に割り当てることができるので、画像データバッファ７４２の記憶容量をあまり大きくしなくても済む。これに代えて、データ長を制限せずブロック行の末尾まで読み出すようにしてもよい。このようにすれば、上記したようにデータの重複が回避されることに加えて、１回の読み出しで１ブロック行分のデータを全て読み出して画像データバッファ７４２に保存しておくことができるので、メモリカードＭへのアクセス回数を少なくして以後のデータ処理における処理時間を短縮することができる。ただし、１ブロック行分のデータを全て記憶するためには画像データバッファ７４２に大きな記憶容量が必要となるので、例えばバッファの記憶容量に十分な余裕がある場合にこの方式を適用するのが好ましい。
【００７７】
また、デコーダ７５はオフセットの値を指定することによって、画像ファイルに含まれる画像データのうちどこからどこまでを読み出すかを指定するが、指定された画像データのうち先頭のデータが１つのブロック行を表す一連の画像データの先頭であるとは限らない。つまり、１つのブロック行を表す一連の画像データの途中からデータの読み出しが開始される場合がある。このような場合であっても、読み出し開始位置のデータから当該ブロック行を表す画像データの末尾までを読み出し、読み出したデータが次のブロック行にまたがることのないようにすることで、データを重複して読み出すことが回避される。
【００７８】
このように、この実施形態の先行読み出し処理では、プレビュー準備処理の結果に基づいて画像ファイルのデータサイズや回転の有無を判断し、その判断に基づいた態様で、しかもユーザからの指示操作を待たずに、メモリカードＭからの画像データの読み出しおよび画像データバッファ７４２への書き込み保存を行うようにしている。そのため、ユーザからの指示操作があったときには、それに応答して遅滞なく次の処理を実行することができる。
【００７９】
図１１はユーザの指示操作に基づく割り込み処理を示すフローチャートである。割り込みが許可された状態で、ボタン群２４を介してユーザから何らかの指示操作が与えられると、図１１に示す割り込み処理が実行される。割り込み処理では、当該割り込み処理が了するまで新たな割り込みは禁止される（ステップＳ４０１）。なお、図７に示すように、先行読み出し処理の直前に割り込みの受付を許可しているので、前記した先行読み出し処理の実行中であっても割り込みは受け付けられる。このようにする理由については後で説明する。
【００８０】
次いで、割り込みの種類を判別する（ステップＳ４０２）。ユーザからの指示操作が別の画像を選択するものであったときには、図７の「Ａ」にジャンプし、新たに選択された画像に対して、前記したプレビュー表示等の処理を行う。また、ユーザからの指示操作が画像の印刷方向や割付などのレイアウト変更に関するものであるときには、図７の「Ｂ」にジャンプし、前記した先行読み出し処理を実行する。このとき、画像の回転の有無については、新たに指定されたレイアウトに基づいて判断される。
【００８１】
ユーザの指示操作が印刷指示であった場合には次のような動作が実行される。まず、印刷の対象として指示された画像が単一であるか複数種であるかを判断する（ステップＳ４０３）。ここでは、印刷すべき画像の枚数ではなくその種類を判断する。したがって、同じ画像を複数部印刷する場合は、画像の種類としては単一とする。画像の種類が複数であった場合には続いてその中に、先行読み出し処理の済んでいる、あるいは進行している画像が含まれているか否かを判断する（ステップＳ４０４）。先行読み出し処理の済んでいる、あるいは進行している画像がある場合には、その画像を印刷処理対象として選択し（ステップＳ４０５）、当該画像について印刷処理を実行する（ステップＳ４０７）。一方、印刷すべき画像が単一であるときにはその画像を、また複数種であっても先行読み出し処理の済んでいるあるいは進行している画像がないときには任意の１つの画像（例えばユーザが最初に選択したもの、メモリカードＭ内の画像ファイルの配列において最初のものなど）を印刷処理対象として選択し（ステップＳ４０６）、印刷処理を実行する。
【００８２】
図１２は印刷処理を示すフローチャートである。印刷処理の概略の流れは、デコーダ７５がファイルシステム７４から画像データを受け取って画像ブロックごとにデコード処理し、１バンド分のデコード処理が終了すると当該バンドについてプリント機構５０が用紙Ｐ上に当該バンドの画像を印刷する、これを全バンドについて繰り返す、というものである。より詳しく説明する。
【００８３】
デコーダ７５はキャリッジ５３の走査方向において最初の画像ブロックからデコード処理を開始し、キャリッジ走査方向、用紙送り方向の順で処理対象となる画像ブロックを移動させてゆく。具体的には、ファイルシステム７４に対し最初にデコード処理すべき画像ブロックの先頭から１ワード分の画像データを要求する（ステップＳ５０１）。ファイルシステム７４は、当該データが既に画像データバッファ７４２に記憶されているか否かを判断する（ステップＳ５０２）。データが画像データバッファ７４２にあればそれを読み出してデコーダ７５に与える一方、データがなければメモリカードＭにアクセスして必要なデータを読み出す（ステップＳ５０３）。ここでのデータ読み出しは先に説明したものと同じにすることができる。すなわち、画像を回転させて印刷する場合には、図１０のステップＳ３１１〜Ｓ３１６の処理を適用することができる。また、画像を回転させない場合には、同図のステップＳ３０３〜Ｓ３０５を適用することができる。
【００８４】
デコーダ７５は１ブロック分の画像データが揃うまでファイルシステム７４へのデータ要求を繰り返し（ステップＳ５０４）、データが揃えば１ブロック分の画像データをデコード処理し（ステップＳ５０５）、印刷データ生成部７６に与える。そして、１バンド分のデコード処理が完了すると（ステップＳ５０６）、印刷データ生成部７６は１バンド分の印刷用データをプリント機構５０に与え、プリント機構５０が当該バンドの画像を印刷する（ステップＳ５０７）。上記処理を全バンドについて繰り返し行うことで（ステップＳ５０８）、１つの画像の全体を印刷することができる。
【００８５】
図１１に戻って割り込み処理の説明を続ける。上記のようにして１つの画像の印刷を完了すると（ステップＳ４０７）、印刷すべき次の画像があるかどうかを判断する（ステップＳ４０８）。次の画像がある場合には、それらのうち一を次の印刷処理対象として設定し（ステップＳ４０６）、上記した印刷処理を繰り返し実行する。一方、次の画像がない場合には、図７の「Ａ」にジャンプし、新たに１つの画像ファイルを選択し当該画像ファイルに対する処理を適宜行う。
【００８６】
次に、先行読み出し処理の実行中においてもユーザ指示操作に基づく割り込み処理を受け付けている理由について説明する。この実施形態における先行読み出し処理では、ユーザからの操作指示を待たずにメモリーカードＭから画像データを読み出し画像データバッファ７４２に書き込み記憶する、という処理を行っている。このときデータ読み出しの順序は、画像ファイルのデータサイズや画像回転の有無などに基づいて判断される（図１０）。この判断は、画像ファイルの現状に基づき「最終的にユーザに選択される可能性が高い」と予想される態様（例えば回転の有無）に応じた読み出し順序が適用されるように構成されているが、ユーザがこれと異なる態様を選択する場合も起こり得る。ユーザが自ら処理の態様を選択指示しているのに、装置がこれに反する処理の実行を継続することは無意味であるばかりか、ユーザ指示への応答が遅れてしまうことになり不都合である。
【００８７】
そこで、この実施形態では、ユーザの指示に先行して、指示される可能性の高い態様に合わせた先行読み出し処理を行いつつも、ユーザから指示があったときには実行中の処理を中断して直ちにユーザ指示に対応した動作を行うことができるようにするために、先行読み出し処理の実行中にもユーザ操作に起因する割り込み入力を受け付けるようにしている。
【００８８】
例えば、先行読み出し処理において「回転あり」と判断し（図１０のステップＳ３０２）、図６（ｂ）に示すような順序でラインバッファ＃１，＃２，…へのデータ書き込みを行っている途中でユーザから操作指示があったときには、その時点で先行読み出し処理が中断されて割り込み処理（図１１）が実行される。このとき、操作指示が選択画像やレイアウトの変更に関するものであれば、変更された後の状態に基づく態様で以後の処理がなされる。例えばユーザが「画像を回転させない」旨の操作指示をした場合には、処理は図１１のステップＳ４０２から図７の「Ｂ」へ進み、「回転なし」の態様に応じた先行読み出し処理（図７のステップＳ１０９）が実行されて、各ラインバッファには図５（ｂ）に示す順序で画像データが上書きされてゆく。また例えば、ユーザが他の画像ファイルを選択した場合には、処理は図１１のステップＳ４０２から図７の「Ａ」へ進み、新たに選択された画像ファイルについて一連の処理を開始する。
【００８９】
このように、この実施形態では、ユーザ指示に先行して画像データを読み出し画像データバッファ７４２に書き込んでゆくが、データ読み出し順序を判断するための新たな材料がユーザ指示によって与えられると、その都度データ読み出し順序を再判断しその結果に応じた順序でデータを読み出し画像データバッファ７４２に記憶させてゆく。そのため、印刷すべき画像やそのレイアウトがユーザにより確認され印刷指示がなされた時点で、大抵の場合画像データバッファ７４２への画像データの書き込みが済んでおり直ちに印刷動作を実行することができる。
【００９０】
別画像が選択されたりレイアウトが変更された場合、先行読み出し処理によって読み出された画像データは使用されず無駄となってしまうが、このことがユーザにとっての便宜を損なうものではない。先行読み出し処理はユーザの指示が与えられるまでのいわば待機時間に実行されるものであり、ユーザから何らかの指示があれば直ちに先行読み出し処理は中断され指示に応じた処理が行われるからである。
【００９１】
また、ユーザの操作指示が印刷指示であった場合には、既に読み出され画像データバッファ７４２に書き込まれたデータがあるか否かを判断し、データがある場合にはそれを優先的に使用して印刷を行うようにしているので（図１１のステップＳ４０４，Ｓ４０５）、先行読み出し処理によって読み出されたデータが無駄にならない。また、印刷指示があった時点で既に画像データの読み出しが進んでいるため、指示を受けてから読み出しを開始する従来の技術に比べ、指示に応じた画像の印刷をより素早く行うことが可能である。
【００９２】
以上のように、この実施形態では、メモリカードスロット１６にメモリカードＭが挿入されたり、ユーザにより選択画像の変更指示やレイアウトの変更指示などの操作がなされると、ユーザからの印刷指示を待たずにメモリカードＭからのデータ読み出しを開始し、読み出した画像データを画像データバッファ７４２に記憶しておく。このとき、画像ファイルの内容から、またはユーザの指示内容から予測されるデコーダ７５からのデータ要求の順序に応じて、メモリカードＭからの読み出し順序およびラインバッファへの書き込み順序が決定されるので、画像データバッファ７４２には最終的に選択される可能性が高いと考えられる態様に適した順序でデータが格納される。このため、上記操作の後にユーザから印刷指示があったときには、画像データバッファ７４２に記憶されたデータを用いて直ちに印刷動作を実行開始することができ、印刷に要する処理時間を短縮することができる。
【００９３】
また、例えば画像を回転させる処理を行う場合のように、メモリカードＭ内における画像データの配列順序とは異なる順序で画像データを読み出す必要があるときには、１回の読み出しアクセスでは２つ以上のブロック行にまたがるデータの読み出しを行わないようにしている。より具体的には、読み出しが開始される先頭データから、これと同一ブロック行に属する画像データの末尾のもの（末尾データ）までのデータ長がラインバッファのバッファサイズよりも短いとき、先頭データから末尾データまでのみの読み出しを行う。こうすることで同一データが重複してメモリカードＭから読み出され画像データバッファ７４２に記憶されることがなくなるので、重複データの読み出しに要する時間の無駄をなくし、画像データバッファ７４２の記憶容量を効率よく利用することができる。
【００９４】
なお、画像データが可変長データである場合、１つのブロック行を表す画像データのデータ長が一定でないため、メモリカードＭ内の画像データ列において各ブロック行ごとの区切りを見出すことが難しいが、この実施形態では、メモリカードＭに記憶された画像内容をユーザに確認させるプレビュー表示を行うための処理によって得られた、各ブロック行の区切りを示す境界情報を保存しておき、これに基づいてブロック行の末尾を識別するようにしているので、簡単かつ確実に、データの読み出しを当該ブロック行の末尾データで止めることが可能となっている。
【００９５】
また、境界情報の導出および該境界情報に基づくデータの先行読み出しを、ユーザの印刷指示を待たずに実行開始しているので、印刷指示があった場合には速やかに印刷用データの作成および印刷動作を行うことができる。この場合、メモリカードＭからのデータ読み出しおよび画像データバッファ７４２への書き込みが印刷指示よりも前に完了していれば直ちに印刷用データの作成を開始することができるのは言うまでもないが、印刷指示の時点で少なくとも境界情報が求められていれば処理時間の短縮効果を得ることができる。その理由は以下の通りである。
【００９６】
従来の技術においては、印刷指示を受けてから境界情報を導出するための処理を行っていた。このため、画像の回転が必要であるとき、印刷指示を受けるとまずメモリカード内での配列順に沿ってデータを読み出して境界情報を作成し、それに基づく順序で改めて画像データを読み出し印刷用データを作成する、という手順になっていた。これに対し、印刷指示を待たずに境界情報を求めておけば、印刷指示を受けたときにはメモリカード内での配列順に沿ったデータ読み出しおよび境界情報の作成を省略することができるので、従来技術に比べ処理に要する時間を短縮することができる。
【００９７】
なお、上記実施形態では、「画像ブロック」単位で処理を行うことについて説明してきたが、この「画像ブロック」はＪＰＥＧ方式における「ＭＣＵ（Minimum Coded Unit）」の１個または複数個に対応している。すなわち、扱われる画像ファイルがＪＰＥＧ方式のものであるとき、この実施形態における画像ブロックは、１個またはＸ方向に連続する複数個のＭＣＵと同等のものと考えることができる。
【００９８】
図１３は複数個のＭＣＵからなる画像ブロックを示す図である。ＪＰＥＧ方式でエンコードされた画像ＩＭは、図の左上から右および下の順にＭＣＵ単位で符号化されている。また、１つのバンドはＭＣＵ４個分の幅を有している。このような場合、Ｘ方向に連続する４個のＭＣＵ（ＭＣＵ１，ＭＣＵ２，ＭＣＵ３およびＭＣＵ４）を１つの画像ブロックＢ11に対応させることができる。したがって、画像ブロックＢ11を表す画像データＤ11は、ＭＣＵ１，ＭＣＵ２，ＭＣＵ３およびＭＣＵ４の４個のＭＣＵを個別にエンコードして得られた画像データの全てを含んでいる。同様に、他のブロックＢ12，Ｂ21，Ｂ31等も、それぞれＸ方向に連続する４個のＭＣＵに対応させることができる。
【００９９】
このような画像を２７０度回転させて印刷するとき、デコード処理はキャリッジ走査方向すなわちＹ方向に沿ってブロックＢ11，Ｂ21，Ｂ31，…の順で実行される。また、各ブロックのデコード処理はＭＣＵ単位でＸ方向の配列順に行われ、例えば画像ブロックＢ11については、ＭＣＵ１，ＭＣＵ２，ＭＣＵ３およびＭＣＵ４の順にデコードされる。したがって、図９に示す「境界情報」は、各行左端のＭＣＵそれぞれのオフセットに相当していることとなる。
【０１００】
以上説明した実施形態においては、メモリカードコントローラ７２、メモリカードドライバ７３およびファイルシステム７４が一体として本発明の「読み出し手段」として機能している。また、デコーダ７５、印刷データ生成部７６およびＬＣＤコントローラ７７がいずれも本発明の「データ処理手段」として機能する一方、画像データバッファ７４２が本発明の「記憶手段」として機能している。また、メモリカードＭが「記憶媒体」に相当している。また、プリント機構５０および表示部２２がそれぞれ本発明の「印刷手段」および「表示手段」として機能している。
【０１０１】
また、上記実施形態においては、プレビュー準備処理（図８）がそれぞれ本発明の「第１読み出し処理」および「境界情報導出処理」に相当する。より詳しくは、プレビュー準備処理のうち一定サイズの画像データをメモリカードＭから読み出し画像データバッファ７４２に保存する処理（ステップＳ２０４，Ｓ２０５）が「第１読み出し処理」に相当する一方、ブロック行ごとにオフセットを保存する処理（ステップＳ２０９，Ｓ２１０およびＳ２０１）が「境界情報導出処理」に相当している。また、先行読み出し処理（図１０）のうちステップＳ３１１ないしＳ３１６が本発明の「第２読み出し処理」に相当している。また、図７，図８および図１０の一連の処理において、図１０におけるステップＳ３０３以降が選択されたときの処理が本発明の「第１の処理モード」に相当し、図１０におけるステップＳ３１１以降が選択されたときの処理が本発明の「第２の処理モード」に相当している。
【０１０２】
また、上記実施形態の説明で用いた画像ファイル（図４）においては、画像のエンコード方向のうちＸ方向（横方向、行方向）が本発明の「主走査方向」に相当する一方、Ｙ方向（縦方向、列方向）が本発明の「副走査方向」に相当している。
【０１０３】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、メモリカードＭに記憶されたＪＰＥＧ画像ファイルを読み出してデータ処理を行っているが、画像ファイルのデータ形式についてＪＰＥＧ方式に限らず、ＴＩＦＦ（Tagged Image File Format）方式やビットマップ方式などの画像ファイルを扱う装置に対しても本発明を適用することができる。特に、画像内容が可変長データとして表されるデータ形式である場合に、本発明の効果が顕著である。
【０１０４】
また、上記実施形態では、選択された１つの画像ファイルについての「境界情報」を、コントローラ７０に設けた管理用バッファ７４１に記憶するようにしている。これに代えて、管理用バッファ７１４の容量を増大させて複数の画像ファイルについての境界情報を記憶させるようにしてもよい。このようにすれば、例えば境界情報が取得された画像ファイルがいったん選択対象から外された後に再び選択対象とされたような場合に、改めて境界情報を取得する必要がなくなるので、処理時間短縮の観点からは好ましい。この場合、当該画像ファイルが記憶されたメモリカードＭがメモリカードスロット１６から取り出されたとき、あるいはさらに他のメモリカードが装着されたときに当該画像ファイルに関する境界情報を削除するようにすればよい。
【０１０５】
また、上記各実施形態は装置本体に対し挿抜自在のメモリカードに保存された画像ファイルを読み出すように構成されているが、本発明にいう「記憶媒体」としては、このようなカード状のもの以外にも種々のものを使用可能である。例えば、磁気ディスクを有する記憶媒体やスティック状の記憶媒体であってもよい。さらには、デジタルカメラや携帯電話など、撮像された画像ファイルを記憶する機能を有する機器であって、例えばケーブルや無線・赤外線通信等の通信手段により画像ファイルを読み出すことのできるものについても、本発明の「記憶媒体」として使用することが可能である。
【０１０６】
また、上記実施形態におけるプリント機構５０はインクジェット方式のプリンタであるが、例えば電子写真方式のプリンタであってもよい。また、上記実施形態における表示部２２はＬＣＤディスプレイによって画像を表示するものであるが、ＥＬ（エレクトロルミネセンス素子）ディスプレイ等他の表示方式で画像を表示するものであってもよい。
【０１０７】
また、上記実施形態は、画像ファイルに対応する画像を表示するための表示機能および該画像を印刷する印刷機能を有するフォトプリンタに本発明を適用したものであるが、本発明の適用対象は上記したフォトプリンタに限定されない。例えば、表示機能または印刷機能のいずれか一方のみを備える機器に対しても、本発明を適用することが可能である。さらに、このような表示・印刷機能を有するものに限らず、記憶媒体に記憶された画像ファイルを読み出してデータ処理を行う装置およびデータ処理方法全般に対して、本発明を適用することが可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の画像表示装置の第１実施形態であるフォトプリンタを示す斜視図。
【図２】フォトプリンタの内部構成の概略を示す図。
【図３】コントローラの構成を示すブロック図。
【図４】画像データの一例を示す図。
【図５】画像を回転させない場合の画像データの処理順序を示す図。
【図６】画像を回転させた場合の画像データの処理順序を示す図。
【図７】メモリカード挿入時の動作を示すフローチャート。
【図８】プレビュー準備処理を示すフローチャート。
【図９】境界情報の例を示す図。
【図１０】先行読み出し処理を示すフローチャート。
【図１１】ユーザの指示操作に基づく割り込み処理を示すフローチャート。
【図１２】印刷処理を示すフローチャート。
【図１３】複数個のＭＣＵからなる画像ブロックを示す図。
【符号の説明】
【０１０９】
１６…メモリカードスロット、  ２２…表示部（表示手段）、  ５０…プリント機構（印刷手段）、  ７０…コントローラ、  ７２…メモリカードコントローラ（読み出し手段）、  ７３…メモリカードドライバ（読み出し手段）、  ７４…ファイルシステム（読み出し手段）、  ７５…デコーダ（データ処理手段）、  ７６…印刷データ生成部（データ処理手段）、  ７７…ＬＣＤコントローラ（データ処理手段）、  ７４１…管理用バッファ（記憶手段）、  Ｍ…メモリカード（記憶媒体）、  Ｘ…主走査方向、  Ｙ…副走査方向
【図１】
0004882925.tif 000002
【図２】
0004882925.tif 000003
【図３】
0004882925.tif 000004
【図４】
0004882925.tif 000005
【図５】
0004882925.tif 000006
【図６】
0004882925.tif 000007
【図７】
0004882925.tif 000008
【図８】
0004882925.tif 000009
【図９】
0004882925.tif 000010
【図１０】
0004882925.tif 000011
【図１１】
0004882925.tif 000012
【図１２】
0004882925.tif 000013
【図１３】
0004882925.tif 000014