(57)【要約】【課題】画像処理装置において、各処理で共通に使用する共有メモリの効率的利用と処理間の負荷分散を可能にする。【解決手段】所定形式の圧縮画像データから複数の装置８１〜８３における各処理を経て展開画像データを生成するにあたり、複数の装置８１〜８３における各処理を所定の順序で直列的に実行させると共に各装置につき他の装置が処理を実行している間も並列的に処理を実行させる。また、各装置８１〜８３で使用するメモリ容量を各装置８１〜８３における処理待ち状況に基づいて各装置８１〜８３で使用可能な最大容量と最小容量との間となるように決定するため、共有メモリであるＲＡＭ７３を効率的に利用することができるし、処理間の負荷分散が可能となる。【選択図】図３
2008227967.tif 000002
【特許請求の範囲】
【請求項１】
所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、前記複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させることにより、前記展開画像データを生成する展開画像生成手段と、
各処理装置で使用可能な最大容量と最小容量を各処理装置における処理状況に基づいて設定する使用可能容量設定手段と、
前記複数の処理装置における処理で共用され、１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保可能な容量を持つ共用メモリと、
各処理装置で使用するメモリ容量として、前記共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保するメモリ容量確保手段と、
を備えた画像処理装置。
【請求項２】
前記複数の処理装置は、前記圧縮画像データを分割して順次解凍して解凍データを出力する解凍装置と、画像サイズを変更してリサイズデータを出力するリサイズ装置と、画質を補正して画質補正データを出力する画質補正装置とを含む、
請求項１に記載の画像処理装置。
【請求項３】
前記使用可能容量設定手段は、リサイズ条件が縮小のときには前記解凍装置で使用可能な最大容量を他の処理装置で使用可能な最大容量に比べて同等以上となるように設定し、リサイズ条件が拡大のときに前記リサイズ装置で使用可能な最大容量を他の処理装置で使用可能な最大容量に比べて同等以上となるように設定する、
請求項２に記載の画像処理装置。
【請求項４】
前記使用可能容量設定手段は、前記解凍装置で使用可能な最大容量を設定するにあたり、前記解凍装置から出力された解凍データを処理する前記リサイズ装置又は前記画質補正装置からのデータ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量が小さくなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量が予め定めた上限ガードを超えない範囲で大きくなるように設定する、
請求項２又は３に記載の画像処理装置。
【請求項５】
前記使用可能容量設定手段は、前記データ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量が段階的に小さくなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量が前記上限ガードを超えない範囲で段階的に大きくなるように設定する、
請求項４に記載の画像処理装置。
【請求項６】
前記使用可能容量設定手段は、前記データ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量を予め定めた下限ガードとなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量を前記上限ガードとなるように設定する、
請求項４に記載の画像処理装置。
【請求項７】
前記展開画像生成手段は、前記解凍装置、前記リサイズ装置及び前記画質補正装置のいずれか２つの装置間でデータの受け渡しを行うにあたり、データを渡す側の装置は自身が生成したデータを前記共有メモリの所定領域に格納し、データの受け側の装置は該所定領域の先頭アドレスを示すポインタ及び該所定領域に格納されたデータの長さの通知を受ける、
請求項２〜６のいずれかに記載の画像処理装置。
【請求項８】
所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、前記複数の処理装置における処理で共用され１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保可能な容量を持つ共用メモリを使用して、前記複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させることにより、前記展開画像データを生成する画像処理方法であって、
（ａ）各処理装置で使用可能な最大容量と最小容量を各処理装置における処理状況に基づいて設定するステップと、
（ｂ）各処理装置で使用するメモリ容量として、前記共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保するステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその方法に関する。
【背景技術】
【０００２】
従来より、所定の形式で圧縮された画像を解凍（伸長）したりリサイズしたり画質補正を施したりする画像処理装置が知られている。例えば、特許文献１に記載されているパソコンは、全体の制御を行う情報処理手段（ＣＰＵ）を備え、この情報処理手段は、画像に対してＪＰＥＧ等に代表される手法で圧縮解凍したり、画素数を増減したり、ホワイトバランスの調節やガンマ補正、シャープネス補正処理を実施したりする。
【特許文献１】特開２００３−３３１２７４
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、所定の形式で圧縮された画像を解凍（伸長）したりリサイズしたり画質補正を施したりする画像処理装置では、通常、解凍処理、リサイズ処理、画質補正処理の各処理に分けて実行し、各処理で使用する共有メモリは各処理ごとに専用エリアが割り当てられている。
【０００４】
しかしながら、このように各処理ごとに共有メモリに専用エリアを割り当てるには、各処理での最大使用サイズを見積もり、それらの合計サイズの共有メモリを用意する必要があるため、共有メモリのコストが嵩むという問題があった。また、ある処理に僅かな負荷しかかからない場合には、その処理に割り当てられた専用エリアに未使用の領域が発生する一方、ある処理に大きな負荷がかかる場合であっても、その処理に割り当てられた専用エリアしか使用できないという問題もあった。
【０００５】
本発明は、このような課題を解決するためになされたものであり、各処理で共通に使用する共有メモリの効率的利用と処理間の負荷分散が可能な画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の目的を達成するために以下の手段を採った。
【０００７】
本発明の画像処理装置は、
所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、前記複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させることにより、前記展開画像データを生成する展開画像生成手段と、
各処理装置で使用可能な最大容量と最小容量を各処理装置における処理状況に基づいて設定する使用可能容量設定手段と、
前記複数の処理装置における処理で共用され、１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保可能な容量を持つ共用メモリと、
各処理装置で使用するメモリ容量として、前記共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保するメモリ容量確保手段と、
を備えたものである。
【０００８】
この画像処理装置では、所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させる。こうすることにより、各処理装置が処理することなく待機するといった時間が大幅に削減される。また、各処理装置における処理で共用される共用メモリは、１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保することができる。このため、いずれかの処理が全く実行できないという事態を招くことがない。更に、各処理装置で使用するメモリ容量として、共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保する。こうすることにより、共有メモリを効率的に利用することができるし、処理間の負荷分散が可能となる。
【０００９】
なお、処理状況とは、各処理装置で実行される処理内容（例えば画像サイズを拡大・縮小する等）や各処理装置で実行される処理の待ち状況を含む意である。
【００１０】
本発明の画像処理装置において、前記複数の処理装置は、前記圧縮画像データを分割して順次解凍して解凍データを出力する解凍装置と、画像サイズを変更してリサイズデータを出力するリサイズ装置と、画質を補正して画質補正データを出力する画質補正装置とを含むとしてもよい。こうすれば、圧縮画像データから展開画像データを適切に生成することができる。
【００１１】
このように解凍装置、リサイズ装置及び画質補正装置を備えた本発明の画像処理装置において、前記使用可能容量設定手段は、リサイズ条件が縮小のときには前記解凍装置で使用可能な最大容量を他の処理装置で使用可能な最大容量に比べて同等以上となるように設定し、リサイズ条件が拡大のときに前記リサイズ装置で使用可能な最大容量を他の処理装置で使用可能な最大容量に比べて同等以上となるように設定してもよい。こうすれば、リサイズ条件が縮小のときには、過負荷になりやすい解凍装置で使用するメモリ容量として大きな容量を確保しやすくなり、リサイズ条件が拡大のときには、過負荷になりやすいリサイズ装置で使用するメモリ容量として大きな容量を確保しやすくなるため、処理間の負荷を一層うまく分散することができる。
【００１２】
また、解凍装置、リサイズ装置及び画質補正装置を備えた本発明の画像処理装置において、前記使用可能容量設定手段は、前記解凍装置で使用可能な最大容量を設定するにあたり、前記解凍装置から出力された解凍データを処理する前記リサイズ装置又は前記画質補正装置からのデータ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量が小さくなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量が予め定めた上限ガードを超えない範囲で大きくなるように設定してもよい。他の処理装置からのデータ要求が解凍装置における処理の終了後にあったときには、解凍装置の負荷が他の処理装置の負荷より小さかったと考えられるから、解凍装置で使用可能な最大容量が小さくなるように設定することにより、他の処理装置で使用するメモリ容量が増えるようにして処理の遅れを解消するようにしている。また、他の処理装置からのデータ要求が解凍装置における処理の終了前にあったときには、解凍装置の負荷が他の処理装置の負荷より大きかったと考えられるから、解凍装置で使用可能な最大容量が大きくなるように設定することにより、解凍装置で使用するメモリ容量が増えるようにして処理の遅れを解消するようにしている。
【００１３】
ここで、解凍装置で使用可能な最大容量の取り得る値について上限ガードを設けておき、上限ガードを超えない範囲で最大容量を設定するようにしている。この上限ガードは、共用メモリの容量に応じて定められる値であり、解凍装置で上限ガードのメモリ容量が確保された場合にリサイズ装置及び画質補正装置のいずれか一方で最大容量が確保されたとしてもいずれか他方で最小容量が確保できるように定められている。なお、解凍装置で使用可能な最大容量の取り得る値について下限ガードを設けてもよく、その場合には最大容量は下限ガードを下回らない範囲で設定される。
【００１４】
このとき、前記使用可能容量設定手段は、前記データ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量が段階的に小さくなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量が前記上限ガードを超えない範囲で段階的に大きくなるように設定してもよい。こうすれば、解凍装置で使用可能な最大容量をきめ細かく設定することができる。あるいは、前記使用可能容量設定手段は、前記データ要求が前記解凍装置における処理の終了後にあったときには前記解凍装置で使用可能な最大容量を下限ガードとなるように設定し、前記データ要求が前記解凍装置における処理の終了前にあったときには前記解凍装置で使用可能な最大容量を上限ガードとなるように設定してもよい。こうすれば、解凍装置で使用可能な最大容量を簡便に増減することができる。
【００１５】
また、解凍装置、リサイズ装置及び画質補正装置を備えた本発明の画像処理装置において、前記展開画像生成手段は、前記解凍装置、前記リサイズ装置及び前記画質補正装置のいずれか２つの装置間でデータの受け渡しを行うにあたり、データを渡す側の装置は自身が生成したデータを前記共有メモリの所定領域に格納し、データの受け側の装置は該所定領域の先頭アドレスを示すポインタ及び該所定領域に格納されたデータの長さの通知を受けるようにしてもよい。こうすれば、２つの装置間でデータをコピーして受け渡す場合に比べて処理時間を短縮することができる。
【００１６】
本発明の画像処理方法は、
所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、前記複数の処理装置における処理で共用され１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保可能な容量を持つ共用メモリを使用して、前記複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させることにより、前記展開画像データを生成する画像処理方法であって、
（ａ）各処理装置で使用可能な最大容量と最小容量を各処理装置における処理状況に基づいて設定するステップと、
（ｂ）各処理装置で使用するメモリ容量として、前記共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保するステップと、
を含むものである。
【００１７】
この画像処理方法では、所定形式の圧縮画像データから複数の処理装置における各処理を経て展開画像データを生成するにあたり、複数の処理装置における各処理を所定の順序で直列的に実行させると共に各処理装置につき他の処理装置が処理を実行している間も並列的に処理を実行させる。こうすることにより、各処理装置が処理することなく待機するといった時間が大幅に削減される。また、各処理装置における処理で共用される共用メモリは、１つを除くすべての処理装置において各々の最大容量が確保されたとしても残り１つの処理装置において最小容量を確保することができる。このため、いずれかの処理が全く実行できないという事態を招くことがない。更に、各処理装置で使用するメモリ容量として、共用メモリの空き容量の範囲内で且つ各処理装置で使用可能な最小容量と最大容量との間で最も大きな値を確保する。こうすることにより、共有メモリを効率的に利用することができるし、処理間の負荷分散が可能となる。なお、この画像処理方法において、上述したいずれかの画像処理装置の態様を採用してもよいし、上述したいずれかの画像処理装置の機能を実現するようなステップを追加してもよい。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本発明の印刷処理装置の一実施形態であるフォトプリンタ１０の前面扉１４及びカバー３０を開けた状態の斜視図、図２は、フォトプリンタ１０の電気的構成の概略を示すブロック図である。
【００１９】
本実施形態のフォトプリンタ１０は、プリンタ本体１２の上面に設けられた操作パネル２０と、プリンタ本体１２の上面の奥の一辺に開閉自在に取り付けられ閉状態で操作パネル２０を覆うカバー３０と、プリンタ本体１２に内蔵された印刷機構５０（図２参照）と、プリンタ本体１２の前面を開閉可能な前面扉１４と、フォトプリンタ１０の全体の制御を司るコントローラ７０（図２参照）と、ＪＰＥＧ画像データから展開画像データを生成するハードウェア装置群８０（図２参照）とを備えている。
【００２０】
操作パネル２０は、文字や図形、記号などを表示するディスプレイ２２と、このディスプレイ２２の周囲に配置されたボタン群２４とを備えている。ボタン群２４は、図２に示すように、電源のオンオフを行うための電源ボタン２４ａ、印刷機能に関する複数の選択肢が並んだメインメニュー画面（図２参照）を呼び出すためのメニューボタン２４ｂ、操作を途中でキャンセルしたり用紙への印刷を途中で中断したりするためのキャンセルボタン２４ｃ、用紙への印刷実行を指示するための印刷ボタン２４ｄ、メモリカードスロット１６に挿入されたメモリカードＭに編集画像等を保存するための保存ボタン２４ｅ、ディスプレイ２２に表示された複数の選択肢の中から所望の選択肢を選択したりカーソルを移動したり画像枠の大きさを変更するときに操作される上下左右の各矢印ボタン２４ｆ〜２４ｉ、この上下左右の各矢印ボタン２４ｆ〜２４ｉの中央に配置され各矢印ボタン２４ｆ〜２４ｉによって選択されている選択肢に決定したことを指示するためのＯＫボタン２４ｊなどで構成されている。
【００２１】
カバー３０は、プリンタ本体１２の上面を覆うことのできる大きさに成形された樹脂板であり、開状態では操作パネル２０の表面を外部に露出し（図１参照）、閉状態では操作パネル２０を覆う。このカバー３０は、ディスプレイ２２と同じ大きさの窓３２を備えており、カバー３０が閉状態のときにはユーザはこの窓３２を介してディスプレイ２２の表示内容を確認することができる。更に、カバー３０は、開状態のときに操作パネル２０に対して斜め後方に傾斜した状態で保持されるようになっている。このため、開状態のカバー３０の裏面は、用紙を印刷機構５０へ供給するためのトレイとして利用可能である。また、操作パネル２０の奥には、印刷機構５０の給紙口５８が設けられ、この給紙口５８には、ガイド幅が用紙の幅に合うように左右方向にスライド操作される一対の用紙ガイド５９，５９が設けられている。
【００２２】
印刷機構５０は、プリンタ本体１２の内部に配置されている。この印刷機構５０は、インクを用紙に向かって吐出する印刷ヘッド５４を搭載したキャリッジ５６を主走査方向（図２の左右方向）に往復動させながら、用紙を副走査方向（図２の前後方向）に搬送することにより印刷を実行する周知のインクジェット印刷機構である。ここでは、印刷ヘッド５４にインクを供給するインクカートリッジ５２をキャリッジ５６に搭載したオンキャリッジタイプを図示したが、インクカートリッジをキャリッジ５６以外の場所に配置したオフキャリッジタイプとしてもよい。また、印刷ヘッド５４は、圧電素子に電圧をかけることによりその圧電素子を変形させてインクを加圧する方式を採用してもよいし、発熱抵抗体（例えばヒータなど）に電圧をかけてインクを加熱して発生した気泡によりインクを加圧する方式を採用してもよい。
【００２３】
前面扉１４は、プリンタ本体１２の前面を開閉するための蓋であり、開状態のときには、プリンタ本体１２の前面から排紙される用紙を受けるための排紙トレイとして機能すると共に、プリンタ本体１２の前面に設けられた各種のメモリカードスロット１６をユーザが利用可能な状態となる。メモリカードスロット１６には、メモリカードＭが差し込まれている。このメモリカードＭには、複数のＪＰＥＧ画像ファイルが記憶されている。
【００２４】
コントローラ７０は、図２に示すように、ＣＰＵ７１を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データなどを記憶したＲＯＭ７２と、一時的にデータを記憶するＲＡＭ７３とを備え、これらはバス７４を介して互いに信号のやり取りが可能なように接続されている。また、操作パネル２０や印刷機構５０、リーダライタ１８のほか、ＪＰＥＧ画像データから展開画像データを生成するときに使用されるハードウェア装置群８０もバス７４に接続されている。ハードウェア装置群８０は、ＪＰＥＧ画像を解凍してＲＧＢデータを生成すると共に間引きや切り出し、回転などを行うＪＰＥＧ画像展開処理装置８１と、ＲＧＢデータの画像サイズを拡大・縮小するリサイズ装置８２と、ＲＧＢデータを画質補正パラメータ（例えばコントラストや明るさ、彩度などに関するパラメータ）にしたがって補正する画質補正装置８３と、コピーを実行するハードウェアコピー装置８４とを備えている。コントローラ７０は、メモリカードスロット１６に挿入されたメモリカードＭのＪＰＥＧ画像ファイルをリーダライタ１８を介して入力するほか、印刷機構５０の各部からの検出信号や操作パネル２０のボタン群２４からの指令信号、ハードウェア装置群８０を構成する各装置８１〜８４からの処理状況を表す信号などを入力する。また、コントローラ７０は、リーダライタ１８を介してメモリカードＭに編集画像を保存するほか、印刷機構５０の印刷ヘッド５４などへの制御信号や操作パネル２０のディスプレイ２２への制御信号、ハードウェア装置群８０を構成する各装置８１〜８４への指令信号などを出力する。
【００２５】
本実施形態のフォトプリンタ１０のハードウェア構成は図２に示したとおりであるが、そのうちのコントローラ７０のＣＰＵ７１を機能ブロックで表したものを図３に示す。ＣＰＵ７１は、機能ブロックとして、描画オブジェクト生成処理部７１０、レイアウト合成処理部７１１、印刷データ生成処理部７１２、パス管理処理部７１３、ＪＰＥＧ画像展開処理部７１４、リサイズ処理部７１５、画質補正処理部７１６、共有メモリ管理処理部７１７を含むものとして表すことができる。
【００２６】
描画オブジェクト生成処理部７１０は、ユーザが図２に示すメインメニュー画面から印刷したい画像ファイル（ＪＰＥＧ画像）を選択すると共に印刷用紙のサイズやレイアウト（例えば１枚の用紙に複数の画像配置領域を設定するレイアウト等）を選択したあと印刷ボタン２４ｄをオンしたときに、オブジェクト情報を生成して該オブジェクト情報を含む画像展開条件をレイアウト合成処理部７１１に出力する。なお、オブジェクト情報とは、例えば、画像配置領域のサイズや回転角度、座標位置などを含む情報である。また、画像展開条件とは、オブジェクト情報のほか、ファイル名やファイルサイズ、画質補正の有無、コントラストのパラメータ、明るさのパラメータ、彩度のパラメータ、画像を間引く間引き条件、画像のどのエリアをクリップするかというクリップ条件などを含む。
【００２７】
レイアウト合成処理部７１１は、パス管理処理部７１３へ展開画像データを要求し、その後パス管理処理部７１３から得た展開画像データ（出力データ）をハードウェアコピー装置８４を使用してユーザが選択したレイアウトにしたがって配置することによりレイアウト合成画像データを生成し、該レイアウト合成画像データを印刷データ生成処理部７１２へ出力する。このレイアウト合成処理部７１１は、パス管理処理部７１３へ展開画像データを要求する際には、画像展開条件をパス管理処理部７１３へ出力する。ここで、展開画像データとは、メモリカードＭに保存されたＪＰＥＧ画像データにＪＰＥＧ画像展開処理（解凍を含む）・リサイズ処理・画質補正処理を施すことにより得られるデータをいうものとする。このため、パス管理処理部７１３は、展開画像データの生成に必要な条件にしたがってＪＰＥＧ画像展開処理・リサイズ処理・画質補正処理を施す。
【００２８】
印刷データ生成処理部７１２は、レイアウト合成処理部７１１からの色変換テーブルの指定や出力解像度の指定、用紙サイズの指定を受けることにより、レイアウト合成画像データから印刷機構５０が印刷可能な印刷データを生成する。印刷機構５０は、この印刷データに基づいて制御されることになる。
【００２９】
パス管理処理部７１３は、ＪＰＥＧ画像データから展開画像データを生成するにあたり、ＪＰＥＧ画像展開処理部７１４やリサイズ処理部７１５，画質補正処理部７１６の処理順序（パスの順序）を決定する。また、パス管理処理部７１３は、各部７１４，７１５，７１６からデータ要求を受け付け、該データ要求を適切な要求先に出力し、該要求先からデータ要求に対する回答を受け付け、該回答を要求元へ通知する。こうすることにより、各部７１４，７１５，７１６はそれぞれ並列して処理を実行することが可能となる。ここで、各部７１４，７１５，７１６は、生成したデータを共有メモリであるＲＡＭ７３の所定領域に格納し、その所定領域の先頭アドレスを示すポインタ及びその所定領域に格納されたデータの長さ（ライン数）をパス管理処理部７１３へ回答するものとする。
【００３０】
ＪＰＥＧ画像展開処理部７１４は、パス管理処理部７１３からＪＰＥＧ画像展開処理条件と共に処理開始の指令を受けると、共有メモリであるＲＡＭ７３に出力バッファを確保し、その後、ハードウェアであるＪＰＥＧ画像展開処理装置８１を使用してＪＰＥＧ画像データを複数ラインずつＲＧＢデータへ解凍し、間引きや切り出し、回転などを行い（この一連の処理をＪＰＥＧ画像展開処理と称する）、ＪＰＥＧ画像展開処理後のＲＧＢデータを出力データとして共有メモリ管理処理部７１７を介してＲＡＭ７３に保存する。こうしてＪＰＥＧ画像展開処理後のＲＧＢデータを保存したあと、ＪＰＥＧ画像展開処理部７１４はそのデータを保存した領域の先頭アドレスを示すポインタとデータのライン数をパス管理処理部７１３へ通知する。
【００３１】
リサイズ処理部７１５は、パス管理処理部７１３からリサイズ条件と共に処理開始の指令を受けると、共有メモリであるＲＡＭ７３に出力バッファを確保し、その後、パス管理処理部７１３に対してリサイズ処理の対象となるデータを要求する。その後、パス管理処理部７１３からその要求に対する回答としてポインタ及びデータのライン数の通知を受けると、そのポインタ及びデータのライン数に基づいてＲＡＭ７３からリサイズ処理の対象となるデータを読み出し、ハードウェアであるリサイズ装置８２を使用してそのデータのリサイズ処理を行う。そして、リサイズ処理後のＲＧＢデータを出力データとして共有メモリ管理処理部７１７を介してＲＡＭ７３に保存し、リサイズ処理前のＲＧＢデータが保存されていた領域を解放する。こうしてリサイズ処理後のＲＧＢデータを保存したあと、リサイズ処理部７１５はそのデータを保存した領域の先頭アドレスを示すポインタとデータのライン数をパス管理処理部７１３へ通知する。ここで、リサイズ処理の対象となるデータは、パス管理処理部７１３によって決定されるが、ＪＰＥＧ画像展開処理部７１４によって生成されるＪＰＥＧ画像展開処理後のＲＧＢデータか、画質補正処理部７１６によって生成される画質補正処理後のＲＧＢデータのいずれかである。なお、図３では、リサイズ処理の対象となるデータがＪＰＥＧ画像展開処理後のＲＧＢデータの場合を例示した。
【００３２】
画質補正処理部７１６は、パス管理処理部７１３から画質補正条件と共に処理開始の指令を受けると、パス管理処理部７１３に対して画質補正処理の対象となるデータの要求を行う。その後、パス管理処理部７１３からその要求に対する回答としてポインタ及びデータのライン数の通知を受けると、そのポインタ及びデータのライン数に基づいてＲＡＭ７３から画質処理の対象となるデータを読み出し、ハードウェアである画質補正装置８３を使用してそのデータの画質補正を行う。そして、画質補正処理後のＲＧＢデータを出力データとして共有メモリ管理処理部７１７を介してＲＡＭ７３に保存し、画質補正処理前のＲＧＢデータが保存されていた領域を解放する。こうして画質補正処理後のＲＧＢデータを保存したあと、画質補正処理部７１６はそのデータを保存した領域の先頭アドレスを示すポインタとデータのライン数をパス管理処理部７１３へ通知する。ここで、画質補正処理の対象となるデータは、パス管理処理部７１３によって決定されるが、ＪＰＥＧ画像展開処理部７１４によって生成されるＪＰＥＧ画像展開処理後のＲＧＢデータか、リサイズ処理部７１５によって生成されるリサイズ処理後のＲＧＢデータのいずれかである。なお、図３では、画質補正処理の対象となるデータがリサイズ処理後のＲＧＢデータの場合を例示した。
【００３３】
共有メモリ管理処理部７１７は、いずれかの処理部７１４，７１５，７１６から共有メモリであるＲＡＭ７３に出力バッファを確保したいという要求を受けると、ＲＡＭ７３の空き容量の範囲内でその要求元の出力ライン数の最大値から最小値のうちで最も大きな値を確保できるようにし、確保できた出力ライン数をその要求元へ通知する。各処理部７１４，７１５，７１６は通知された出力ライン数を採用して処理を実行する。なお、ＪＰＥＧ画像展開処理部７１４やリサイズ処理部７１５、画質補正処理部７１６の最小値はパス管理処理部７１３で設定される。また、リサイズ処理部７１５や画質補正処理部７１６の最大値はパス管理処理部７１３で設定されるが、ＪＰＥＧ画像展開処理部７１４の最大値は、後述するようにパス管理処理部７１３で設定された基準値（最大値を設定するときの基準となる値）に基づいてＪＰＥＧ画像展開処理部７１４で設定される。本実施形態では、ＪＰＥＧ画像展開処理部７１４は基準値と基準値の２倍との間で最大値を設定する。
【００３４】
次に、こうして構成された本実施形態のフォトプリンタ１０の動作について説明する。以下には、コントローラ７０のＣＰＵ７１を機能ブロックであるパス管理処理部７１３，ＪＰＥＧ画像展開処理部７１４，リサイズ処理部７１５，画質補正処理部７１６，共有メモリ管理処理部７１７の５つに分け、各機能ブロックが主体となって動作を実行するものとして説明する。
【００３５】
パス管理処理部７１３は、レイアウト合成処理部７１１から展開開始の指令を受けたことを契機として、パス管理処理ルーチンを開始する。図４は、パス管理処理ルーチンの一例を示すフローチャートである。このルーチンが開始されると、パス管理処理部７１３は、まず、レイアウト合成処理部７１１から最低入力展開ライン数を受け取る（ステップＳ１０２）。最低入力展開ライン数は、例えば１ラインとか２ラインというように設定されている。続いて、パス管理処理部７１３は、ＪＰＥＧ画像展開処理部７１４に対してＪＰＥＧ画像データにＪＰＥＧ画像展開処理を施すのに必要なＪＰＥＧ画像展開処理条件を設定し（ステップＳ１０４）、その後、ＪＰＥＧ画像展開処理部７１４から出力ライン数の最小値を受け取る（ステップＳ１０６）。ＪＰＥＧ画像展開処理条件は、レイアウト合成処理部７１１からパス管理処理部７１３に渡された画像展開条件の一部をなすものであり、例えばファイル名やクリップ条件などが含まれる。また、ＪＰＥＧ画像展開処理部７１４から通知される出力ライン数の最小値は、ハードウェアであるＪＰＥＧ画像展開処理装置８１に依存して決定される値である。続いて、パス管理処理部７１３は、リサイズ処理部７１５に対してＲＧＢデータを指定されたサイズへ変換するためのリサイズ処理条件を設定し（ステップＳ１０８）、その後、リサイズ処理部７１５から入力ライン数の最小値を受け取る（ステップＳ１１０）。リサイズ処理条件は、レイアウト合成処理部７１１からパス管理処理部７１３に渡された画像展開条件の一部をなすものであり、例えばファイルの入力サイズや出力サイズなどが含まれる。また、リサイズ処理部７１５から通知される入力ライン数の最小値は、ハードウェアであるリサイズ装置８２に依存して決定される値である。続いて、パス管理処理部７１３は、画質補正処理部７１６に対してＲＧＢデータの画質を補正するための画質補正処理条件を設定し（ステップＳ１１２）、その後、画質補正処理部７１６から入力ライン数の最小値を受け取る（ステップＳ１１４）。画質補正処理条件は、レイアウト合成処理部７１１からパス管理処理部７１３に渡された画像展開条件の一部をなすものであり、例えばコントラストや明るさ、彩度などに関するパラメータが含まれる。また、画質補正処理部７１６から通知される入力ライン数の最小値は、ハードウェアである画質補正装置８３に依存して決定される値である。
【００３６】
続いて、パス管理処理部７１３は、リサイズ処理条件が縮小か拡大（等倍を含む）かを判定し（ステップＳ１１６）、リサイズ処理条件が縮小だったときには、パスの順序を１番目がＪＰＥＧ画像展開処理部７１４，２番目がリサイズ処理部７１５，３番目が画質補正処理部７１６とする（ステップＳ１１８）。こうすることにより、画質補正処理部７１６は、リサイズ処理部７１５で縮小されたあとのＲＧＢデータを画質補正することになるため、縮小前のＲＧＢデータを画質補正する場合に比べて処理負担が軽くなる。続いて、パス管理処理部７１３は、ＪＰＥＧ画像展開処理部７１４へ出力ライン数の基準値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１２０）。本実施形態では、このときの基準値を３２ラインとし、最小値をステップＳ１１０でリサイズ処理部７１５から受け取った入力ライン数の最小値とした。こうすることにより、例えばＪＰＥＧ画像展開処理装置８１の出力ライン数の最小値がリサイズ処理部７１５の入力ライン数の最小値より小さかった場合であっても、リサイズ処理部７１５の入力ライン数の最小値がＪＰＥＧ画像展開処理装置８１の出力ライン数の最小値に設定されるため、リサイズ装置８２における処理に支障が生じることはない。続いて、パス管理処理部７１３は、リサイズ処理部７１５へ出力ライン数の最大値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１２２）。本実施形態では、このときの最大値を３２ラインとし、最小値をステップＳ１１４で画質補正処理部７１６から受け取った入力ライン数の最小値とした。続いて、パス管理処理部７１３は、画質補正処理部７１６へ出力ライン数の最大値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１２４）。本実施形態では、このときの最大値を３２ラインとし、最小値をステップＳ１０２でレイアウト合成処理部７１１から受け取った最低入力展開ライン数とした。
【００３７】
一方、ステップ１１６でリサイズ処理条件が拡大だったときには、パス管理処理部７１３は、パスの順序を１番目がＪＰＥＧ画像展開処理部７１４，２番目が画質補正処理部７１６，３番目がリサイズ処理部７１５とする（ステップＳ１２６）。こうすることにより、画質補正処理部７１６は、リサイズ処理部７１５で拡大される前のＲＧＢデータを画質補正することになるため、拡大後のＲＧＢデータを画質補正する場合に比べて処理負担が軽くなる。続いて、パス管理処理部７１３は、ＪＰＥＧ画像展開処理部７１４へ出力ライン数の基準値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１２８）。本実施形態では、このときの基準値を１６ラインとし、最小値をステップＳ１１４で画質補正処理部７１６から受け取った入力ライン数の最小値とした。続いて、パス管理処理部７１３は、画質補正処理部７１６へ出力ライン数の最大値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１３０）。本実施形態では、このときの最大値を１６ラインとし、最小値をステップＳ１１０でリサイズ処理部７１５から受け取った入力ライン数の最小値とした。続いて、パス管理処理部７１３は、リサイズ処理部７１５へ出力ライン数の最大値と最小値とを通知すると共に処理開始指令を出力する（ステップＳ１３２）。本実施形態では、このときの最大値を３２ラインとし、最小値をステップＳ１０２でレイアウト合成処理部７１１から受け取った最低入力展開ライン数とした。
【００３８】
そして、ステップＳ１２４又はＳ１３２のあと、パス管理処理部７１３は、設定したパス順序に基づくデータ管理を実行する（ステップＳ１３４）。具体的には、いずれかの処理部からデータが要求されると、その要求元の処理部の一つ前の処理を行う処理部へデータを要求し、その処理部からその処理部が生成したデータの格納領域の先頭アドレスを示すポインタ及びデータのライン数を入力し、要求元の処理部へそのポインタ及びデータのライン数を通知する、というデータ管理を実行する。このデータ管理は、レイアウト合成処理部７１１から展開終了の通知がなされるまで実行される。そして、データ管理の実行後、本ルーチンを終了する。なお、図４では明示しなかったが、ステップＳ１１４のあとに画像展開条件に画質補正なしが含まれるか否かを判定し、画質補正ありのときにはステップＳ１１６以降の処理を実行し、画質補正なしのときにはパスの順序をＪＰＥＧ画像展開処理、リサイズ処理としたうえでステップＳ１２０，Ｓ１２２を行い、その後ステップＳ１３４へ進むようにする。
【００３９】
共有メモリ管理処理部７１７は、いずれかの処理部７１４，７１５，７１６から共有メモリであるＲＡＭ７３に出力バッファを確保したいという要求を受けたことを契機として、共有メモリ管理処理ルーチンを開始する。図５は、共有メモリ管理処理ルーチンの一例を示すフローチャートである。このルーチンが開始されると、共有メモリ管理処理部７１７は、まず、要求元の処理部からライン幅や出力ライン数の最大値、最小値を受け取る（ステップＳ２０２）。ここで、要求元がリサイズ処理部７１５及び画質補正処理部７１６のときには最大値・最小値はパス管理処理部７１３で設定される。一方、要求元がＪＰＥＧ画像展開処理部７１４のときには最小値はパス管理処理部７１３で設定されるが、最大値は後述するようにＪＰＥＧ画像展開処理部７１４で設定される。続いて、取得希望ライン数に最大値を設定し（ステップＳ２０４）、取得希望ライン数の出力バッファをＲＡＭ７３の空き容量の範囲内で確保できるか否かを判定する（ステップＳ２０６）。そして、取得希望ライン数の出力バッファを確保できなかったときには、取得希望ライン数を１ディクリメントし（ステップＳ２０８）、その取得希望ライン数が最小値に達したか否かを判定し（ステップＳ２１０）、まだ最小値に達していないときつまり最小値よりも大きな値のときには再びステップＳ２０６へ戻る。一方、ステップＳ２１０で取得希望ライン数が最小値に達したときには、その最小値の出力ライン数の出力バッファをＲＡＭ７３に確保する（ステップＳ２１２）。ここで、ＲＡＭ７３の出力バッファとして使用可能な領域は、各処理部７１４，７１５，７１６のうちのいずれか二つが最大値の出力ライン数の出力バッファを確保したとしても残りの一つが最小値の出力ライン数の出力バッファを確保できるように予め設定されている。このため、取得希望ライン数が最小値に達したときには、必ずその最小値の出力ライン数の出力バッファを確保することができる。そして、ステップＳ２１２のあと又はステップＳ２０６で取得希望ライン数の出力バッファを確保できたときには、確保した出力ライン数と出力バッファの先頭アドレスを要求元の処理部へ通知し（ステップＳ２１４）、本ルーチンを終了する。
【００４０】
ＪＰＥＧ画像展開処理部７１４は、パス管理処理部７１３から処理開始の指令を受けたことを契機として、ＪＰＥＧ画像展開処理ルーチンを開始する。図６は、ＪＰＥＧ画像展開処理ルーチンの一例を示すフローチャートである。このルーチンが開始されると、ＪＰＥＧ画像展開処理部７１４は、まず、出力ライン数の基準値を最小値で除した値を過負荷カウンタ値Ｃに設定し（ステップＳ３０２）、出力ライン数の基準値と過負荷カウンタ値Ｃに出力ライン数の最小値を乗じた値との和を出力ライン数の最大値に設定する（ステップＳ３０４）。このため、最初にステップＳ３０４を行うときには、最大値は基準値の２倍に設定される。ここで、過負荷カウンタとは、ＪＰＥＧ画像展開処理部７１４での処理が過負荷になる場合に、出力ライン数の最大値をパス管理処理ルーチンで設定された基準値よりも大きな値にして出力バッファを大きくとることを可能にするためのカウンタである。続いて、ＪＰＥＧ画像展開処理部７１４は、共有メモリ管理処理部７１７へ出力バッファの確保を要求すると共に出力ライン数の最大値と最小値を通知し（ステップＳ３０６）、その後共有メモリ管理処理部７１７からの通知があったか否かを判定し（ステップＳ３０８）、通知がないときには再びステップＳ３０８に戻る。一方、共有メモリ管理処理部７１７からの通知があったときには、その通知された出力ライン数に基づいて入力ライン数を決定し、ＪＰＥＧ画像データのうち決定したライン数分をリーダライタ１８を介して読み込み、ＪＰＥＧ画像展開処理装置８１を制御してＲＧＢデータへ解凍すると共にＪＰＥＧ画像展開処理条件に基づいて間引きや切り出し、回転処理を実行したあと、そのＪＰＥＧ画像展開処理後のＲＧＢデータを出力バッファに格納する（ステップＳ３１０）。その後、パス管理処理部７１３からデータの要求が既に来ているか否かを判定し（ステップＳ３１２）、データの要求が既に来ていたときには、他の装置８２，８３に比べてＪＰＥＧ画像展開処理装置８１の負荷が大きかったと考えられるため、過負荷カウンタ値Ｃを１インクリメントする（ステップＳ３１４）。そして、その過負荷カウンタ値Ｃが予め定めたカウンタ上限値Ｃｍａｘ以下か否かを判定し（ステップＳ３１６）、カウンタ上限値Ｃｍａｘを超えていたときには過負荷カウンタ値Ｃをカウンタ上限値Ｃｍａｘに再設定する（ステップＳ３１８）。本実施形態では、カウンタ上限値Ｃｍａｘを（基準値／最小値）とした。このため、最大値の上限ガード値は基準値の２倍となる。一方、ステップＳ３１２でデータの要求が来ていなかったときには、他の装置８２，８３に比べてＪＰＥＧ画像展開処理装置８１の負荷が小さかったと考えられるため、過負荷カウンタ値Ｃを１ディクリメントし（ステップＳ３２０）、その過負荷カウンタ値Ｃがゼロ以上か否かを判定し（ステップＳ３２２）、ゼロ未満だったときには過負荷カウンタ値Ｃをゼロに再設定する（ステップＳ３２４）。なお、過負荷カウンタ値Ｃがゼロのときには、最大値は基準値と一致する。そして、ステップＳ３２４のあと又はステップＳ３２２で過負荷カウンタ値Ｃがゼロ以上だったときには、パス管理処理部７１３からデータの要求が来たか否かを判定し（ステップＳ３２６）、データの要求が来ていなかったときには再びステップＳ３２６に戻る。そして、ステップＳ３１８のあと、あるいはステップＳ３２６でデータの要求が来たとき、あるいはステップＳ３１６で過負荷カウンタ値Ｃがカウンタ上限値Ｃｍａｘ以下だったときには、出力バッファに格納したＪＰＥＧ画像展開処理後のＲＧＢデータの先頭アドレスを示すポインタ及びそのデータのライン数をパス管理処理部７１３へ通知する（ステップＳ３２８）。その後、ＪＰＥＧ画像データの全ラインの処理を終了したか否かを判定し（ステップＳ３３０）、まだ終了していないときには再びステップＳ３０４に戻る。一方、ＪＰＥＧ画像データの全ラインの処理を終了したときには、本ルーチンを終了する。
【００４１】
こうすることにより、ＪＰＥＧ画像展開処理装置８１で使用可能な出力ライン数の最大値は、基準値と基準値の２倍との間の値に設定される。具体的には、ＪＰＥＧ画像展開処理が終了した後に他の処理部からデータの要求が来たときには、最大値は基準値を下回らない範囲で段階的に小さくなるように設定され、ＪＰＥＧ画像展開処理が終了する前に他の処理部からデータの要求が来ていたときには、最大値は基準値の２倍を超えない範囲で段階的に大きくなるように設定される。
【００４２】
次に、各処理部７１１，７１３〜７１６で各処理が実行されるときのタイムチャートを図７に基づいて説明する。図７は、フォトプリンタ１０でＪＰＥＧ画像データからレイアウト合成画像データを生成するときのタイムチャートである。図７では、便宜上、パス管理処理部７１３を点線の矩形として複数書き表した。また、リサイズ処理ではＲＧＢデータのサイズを縮小するものとし、パス管理処理部７１３ではパスの順序をＪＰＥＧ画像展開処理部７１４，リサイズ処理部７１５，画質補正処理部７１６と設定したとする。なお、図７において各処理の後に付したアルファベット（ａ，ｂ，ｃ，…）は、同じアルファベットが付された処理は元のデータが同じであることを意味する。
【００４３】
まず、レイアウト合成処理部７１１がパス管理処理部７１３に画像展開条件と展開開始指令をパス管理処理部７１３に出力する。すると、パス管理処理部７１３はＪＰＥＧ画像展開処理部７１４，リサイズ処理部７１５及び画質補正処理部７１６に処理開始を指令する。ＪＰＥＧ画像展開処理部７１４は、処理開始の指令を受けると、共有メモリ管理処理部７１７へ出力ライン数の最大値・最小値を通知し、その後共有メモリ管理処理部７１７から確保できた出力ライン数を受け取る（図７の網掛け部分参照）。そして、ＪＰＥＧ画像データの複数ラインにつき最初のＪＰＥＧ画像展開処理ａを実行してＪＰＥＧ画像展開処理後のＲＧＢデータを生成する。一方、リサイズ処理部７１５は、パス管理処理部７１３から処理開始の指令を受けると、共有メモリ管理処理部７１７へ出力ライン数の最大値・最小値を通知し、その後共有メモリ管理処理部７１７から確保できた出力ライン数を受け取る。その後、処理対象のデータ（ＪＰＥＧ画像展開処理後のＲＧＢデータ）をパス管理処理部７１３へ要求する。すると、パス管理処理部７１３は、ＪＰＥＧ画像展開処理部７１４にデータを要求する。一方、画質補正処理部７１６は、パス管理処理部７１３から処理開始の指令を受けると、共有メモリ管理処理部７１７へ出力ライン数の最大値・最小値を通知し、その後共有メモリ管理処理部７１７から確保できた出力ライン数を受け取る。その後、処理対象のデータ（リサイズ処理後のＲＧＢデータ）をパス管理処理部７１３へ要求する。すると、パス管理処理部７１３は、リサイズ処理部７１５にデータを要求する。なお、共有メモリ管理処理部７１７は、パスの順序にしたがってリサイズ処理部７１５、画質補正処理部７１６の順に共有メモリ管理処理ルーチンを実行する。
【００４４】
さて、ＪＰＥＧ画像展開処理部７１４は、最初のＪＰＥＧ画像展開処理ａが終了したときにデータの要求が来ていたときには、今回生成したＪＰＥＧ画像展開処理後のＲＧＢデータに関するポインタ及びデータのライン数をパス管理処理部７１３へ通知する。すると、パス管理処理部７１３は、そのポインタ及びデータのライン数をリサイズ処理部７１５に通知する。この通知を受けたリサイズ処理部７１５は、そのポインタ及びデータのライン数に基づいてＪＰＥＧ画像展開処理後のＲＧＢデータを出力バッファから読み出し、そのサイズを縮小するリサイズ処理ａを実行し、リサイズ処理後のＲＧＢデータを生成したあとリサイズ処理前のデータが保存されていた出力バッファを解放し、共有メモリ管理処理部７１７とやり取りして出力ライン数を受け取る。そして、データの要求が来ていたときには、今回生成したリサイズ処理後のＲＧＢデータに関するポインタ及びデータのライン数をパス管理処理部７１３へ通知する。すると、パス管理処理部７１３は、そのポインタ及びデータのライン数を画質補正処理部７１６に通知する。この通知を受けた画質補正処理部７１６は、そのポインタ及びデータのライン数に基づいてリサイズ処理後のＲＧＢデータを出力バッファから読み出し、画質補正処理ａを施すことにより画質補正処理後のＲＧＢデータを生成したあと画質補正処理前のデータが保存されていた出力バッファを解放し、共有メモリ管理処理部７１７とやり取りして出力ライン数を受け取る。そして、データの要求が来ていたときには、今回生成した画質補正処理後のＲＧＢデータに関するポインタ及びデータのライン数をパス管理処理部７１３へ通知する。すると、パス管理処理部７１３は、そのポインタ及びデータのライン数を展開画像データに関するものとしてレイアウト合成処理部７１１へ通知する。レイアウト合成処理部７１１は、そのポインタ及びデータのライン数に基づいて展開画像データを出力バッファから読み出し、ハードウェアコピー装置８４を使用してレイアウト合成処理を実行し、得られたレイアウト合成処理後のＲＧＢデータを、図示しないレイアウト用メモリにため込み、パス管理処理部７１３に次の展開画像データを要求する。その後、各処理部７１４〜７１６は、図７に示すように、共有メモリ管理処理部７１７とやり取りすることにより出力ライン数を確保すると共に各処理部７１４〜７１６における処理を実行するという動作を繰り返す。
【００４５】
ところで、ＪＰＥＧ画像展開処理部７１４がＪＰＥＧ画像展開処理を終了したときに既にデータの要求が来ていたときには、リサイズ処理部７１５がＪＰＥＧ画像展開処理が終わるのを待っていたことになるから、ＪＰＥＧ画像展開処理装置８１の負荷がリサイズ装置８２に比べて大きかったと考えられる。このため、ＪＰＥＧ画像展開処理部７１４は、次回共有メモリ管理処理部７１７に最大値・最小値を通知するときに過負荷カウンタ値Ｃに基づいて最大値を前回よりも大きくなるようにして、共有メモリ管理処理ルーチンでＪＰＥＧ画像展開処理部７１４の出力ライン数が前回よりも多く確保されるようにする。但し、本実施形態では、過負荷カウンタ値Ｃにカウンタ上限値Ｃｍａｘを設けて、ＪＰＥＧ画像展開処理部７１４の最大値が上限ガード値（本実施形態では基準値の２倍）を超えないようにしている。そして、ＪＰＥＧ画像展開処理部７１４の出力ライン数が前回よりも多く確保されたときには、リサイズ処理部７１５や画質補正処理部７１６の出力ライン数が前回より少なくなる。このため、ＪＰＥＧ画像展開処理部７１４に対するリサイズ処理部７１５からのデータの要求が前回よりも遅れることになる。一方、ＪＰＥＧ画像展開処理部７１４がＪＰＥＧ画像展開処理を終了したときにデータの要求が来ていなかったときには、ＪＰＥＧ画像展開処理部７１４がリサイズ処理が終わるのを待つことになるから、ＪＰＥＧ画像展開処理装置８１の負荷がリサイズ装置８２に比べて小さかったと考えられる。このため、ＪＰＥＧ画像展開処理部７１４は、次回共有メモリ管理処理部７１７に最大値・最小値を通知するときに過負荷カウンタ値Ｃに基づいて最大値を前回よりも小さくなるようにして、共有メモリ管理処理ルーチンでＪＰＥＧ画像展開処理部７１４の出力ライン数が前回よりも少なく確保されるようにする。但し、本実施形態では、過負荷カウンタ値Ｃはゼロを下回らないようにしている。そして、ＪＰＥＧ画像展開処理部７１４の出力ライン数が前回よりも少なく確保されたときには、リサイズ処理部７１５や画質補正処理部７１６の出力ライン数が前回より多くなる。このため、ＪＰＥＧ画像展開処理部７１４に対するリサイズ処理部７１５からのデータの要求が前回よりも早まることになる。このような処理を繰り返すうちに、ＪＰＥＧ画像展開処理部７１４の処理終了時期とリサイズ処理部７１５からのデータの要求時期とが概ね一致するようになり、共有メモリであるＲＡＭ７３を効率よく利用できるようになる。また、各処理部７１４，７１５，７１６の負荷もうまく分散するようになる。
【００４６】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のフォトプリンタ１０が本発明の画像処理装置に相当し、パス管理処理部７１３、ＪＰＥＧ画像展開処理部７１４、リサイズ処理部７１５、画質補正処理部７１６及び共有メモリ管理処理部７１７が展開画像生成手段に相当し、パス管理処理部７１３及びＪＰＥＧ画像展開処理部７１４が使用可能容量設定手段に相当し、ＲＡＭ７３が共有メモリに相当し、共有メモリ管理処理部７１７がメモリ容量確保手段に相当する。また、ＪＰＥＧ画像展開処理装置８１が解凍装置に相当する。また、各処理部７１４〜７１６で使用可能な出力ライン数の最大値・最小値がそれぞれ最大容量・最小容量に相当する。なお、本実施形態では、フォトプリンタ１０の動作を説明することにより本発明の画像処理方法の一例も明らかにしている。
【００４７】
以上詳述した本実施形態のフォトプリンタ１０によれば、ＪＰＥＧ画像展開処理装置８１、リサイズ装置８２及び画質補正装置８３の各処理を所定の順序で直列的に実行させると共に各装置につき他の装置が処理を実行している間も並列的に処理を実行させる。こうすることにより、各装置が処理することなく待機するといった時間が大幅に削減される。また、各装置における処理で共用される共用メモリ（ＲＡＭ７３）は、１つを除くすべての装置において各々の出力ライン数の最大値が確保されたとしても残り１つの装置において出力ライン数の最小値を確保することができるため、いずれかの処理が全く実行できないという事態を招くことがない。更に、各装置８１〜８３で使用するメモリ容量として、ＲＡＭ７３の空き容量の範囲内で各装置８１〜８３における出力ライン数の最小値から最大値までのうちで最も大きな値が確保される。こうすることにより、ＲＡＭ７３を効率的に利用することができるし、処理間の負荷分散が可能となる。
【００４８】
また、リサイズ条件が縮小のときには、過負荷になりやすいＪＰＥＧ画像展開処理装置８１で使用可能な出力ライン数の最大値が６４ライン（基準値である３２ラインの２倍）に設定され、他の装置８２，８３で使用可能な出力ライン数の最大値が３２ラインに設定されるため、ＪＰＥＧ画像展開処理装置８１で使用するメモリ容量は大きな容量を確保しやすい。一方、リサイズ条件が拡大のときには、過負荷になりやすいリサイズ装置８２で使用可能な出力ライン数の最大値が３２ラインに設定され、他の装置８１，８３で使用可能な出力ライン数の最大値が１６ラインに設定されるため、リサイズ装置８２の処理で使用するメモリ容量は大きな容量を確保しやすい。この結果、処理間の負荷を一層うまく分散することができる。
【００４９】
更に、ＪＰＥＧ画像展開処理装置８１以外の他の装置（リサイズ装置８２又は画質補正装置８３）からのデータ要求がＪＰＥＧ画像展開処理装置８１における処理の終了後にあったときには、ＪＰＥＧ画像展開処理装置８１における負荷が他の装置における負荷より小さかったと考えられるから、ＪＰＥＧ画像展開処理装置８１で使用可能な出力ライン数の最大値が段階的に小さくなるように設定することにより、他の装置で使用するメモリ容量を増やして処理の遅れを解消するようにしている。また、他の装置からのデータ要求がＪＰＥＧ画像展開処理装置８１における処理の終了前にあったときには、ＪＰＥＧ画像展開処理装置８１における負荷が他の装置における負荷より大きかったと考えられるから、ＪＰＥＧ画像展開処理装置８１で使用可能な出力ライン数の最大値が段階的に大きくなるように設定することにより、ＪＰＥＧ画像展開処理装置８１で使用するメモリ容量を増やして処理の遅れを解消するようにしている。但し、ＪＰＥＧ画像展開処理装置８１における処理での上限ガード値を超えない範囲で大きくしているため、他の装置における処理が全く実行できないという事態を招くおそれがない。また、出力ライン数の最大値を段階的に大きくしたり小さくしたりするため、最大値をきめ細かく設定することができる。
【００５０】
更にまた、ＪＰＥＧ画像展開処理装置８１、リサイズ装置８２及び画質補正装置８３のうちの２つの装置間でデータの受け渡しを行うにあたり、データを渡す側の装置は自身が生成したデータを出力バッファに格納し、データの受け側の装置は該出力バッファの先頭アドレスを示すポインタ及び該データのライン数の通知を受けるため、２つの装置間でデータをコピーして受け渡す場合に比べて処理時間を短縮することができる。
【００５１】
そして、リサイズ処理においてＲＧＢデータを拡大する場合には拡大する前に画質補正処理を行い、リサイズ処理においてＲＧＢデータを縮小する場合には縮小した後に画質補正処理を行うため、画質補正の処理対象のデータ量が小さくてすむから、画質補正処理部の負担が軽減される。
【００５２】
そしてまた、画質補正が不要なときにはＪＰＥＧ画像展開処理とリサイズ処理しか実行しないから、印刷時間をより短縮することができる。
【００５３】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００５４】
例えば、上述した実施形態では、図６のＪＰＥＧ画像展開処理ルーチンのステップＳ３１２でデータ要求があったときには、過負荷カウンタ値Ｃを１つずつ上げることにより段階的にＪＰＥＧ画像展開処理装置７１４で使用可能な最大容量を大きくし、ステップＳ３１２でデータ要求がなかったときには、過負荷カウンタ値Ｃを１つずつ下げることにより段階的にＪＰＥＧ画像展開処理装置７１４で使用可能な最小容量を小さくしたが、以下のようにしてもよい。すなわち、ステップＳ３１２でデータ要求があったときには、過負荷カウンタ値Ｃをカウンタ上限値ＣｍａｘにすることによりＪＰＥＧ画像展開処理装置７１４で使用可能な最大容量を上限ガード値に設定したあとステップＳ３２８に進み、ステップＳ３１２でデータ要求がなかったときには、過負荷カウンタ値ＣをゼロにすることによりＪＰＥＧ画像展開処理装置７１４で使用可能な最大容量を基準値（下限ガード値）に設定したあとステップＳ３２８に進むようにしてもよい。こうすれば、ＪＰＥＧ画像展開処理装置８１で使用可能な最大容量を簡便に増減することができる。
【００５５】
上述した実施形態では、所定形式の圧縮画像データとしてＪＰＥＧ画像データを例示したが、特にこれに限定されるものではなく、例えばＧＩＦ画像データやＰＮＧ画像データなどを用いて展開画像データを生成するとしてもよい。
【００５６】
上述した実施形態では、各装置８１，８２，８３の２つの装置間でデータの受け渡しを行うにあたりポインタ及びデータのライン数を通知することとしたが、データのコピーによってデータの受け渡しを行うようにしてもよい。この場合には、データのコピーに時間を要する分、印刷時間が長くなるものの、各装置８１，８２，８３の処理を並列的に実行するため、それによる印刷時間の短縮効果は十分得られる。また、ＲＡＭ７３を効率的に利用することができるという効果や処理間の負荷分散が可能となるという効果を得ることもできる。
【００５７】
上述した実施形態では、印刷処理装置としてインクジェット方式のフォトプリンタ１０を例示したが、インクジェット方式の印刷機構のほかにスキャナなどを備えたマルチファンクションプリンタやＦａｘなどに本発明を適用してもよい。
【００５８】
上述した実施形態では、メモリカードＭに記憶されたＪＰＥＧ画像ファイルを利用するものとして説明したが、フォトプリンタ１０に接続された外部機器（例えばデジタルカメラや携帯電話、ＣＤ／ＤＶＤドライブ装置など）に記憶されたＪＰＥＧ画像ファイルを利用するものとしてもよいし、フォトプリンタ１０にネットワーク経由で配信されてきたＪＰＥＧ画像ファイルを保存しそれを利用するものとしてもよい。
【図面の簡単な説明】
【００５９】
【図１】フォトプリンタの前面扉及びカバーを開けた状態の斜視図。
【図２】フォトプリンタの電気的構成の概略を示すブロック図。
【図３】コントローラのＣＰＵを機能ブロック図で表したときの説明図。
【図４】パス管理処理ルーチンの一例を示すフローチャート。
【図５】共有メモリ管理処理ルーチンの一例を示すフローチャート。
【図６】ＪＰＥＧ画像展開処理ルーチンの一例を示すフローチャート。
【図７】レイアウト合成画像データを生成するときのタイムチャート。
【符号の説明】
【００６０】
１０  フォトプリンタ、１２  プリンタ本体、１４  前面扉、１６  メモリカードスロット、１８  リーダライタ、２０  操作パネル、２２  ディスプレイ  ２４  ボタン群、２４ａ  電源ボタン、２４ｂ  メニューボタン、２４ｃ  キャンセルボタン、２４ｄ  印刷ボタン、２４ｅ  保存ボタン、２４ｆ〜ｉ  矢印ボタン、２４ｊ  ＯＫボタン、３０  カバー、３２  窓、５０  印刷機構、５２  インクカートリッジ、５４  印刷ヘッド、５６  キャリッジ、５８  給紙口、５９  用紙ガイド、７０  コントローラ、７１  ＣＰＵ、７２  ＲＯＭ、７３  ＲＡＭ、７４  バス、８０  ハードウェア装置群、８１  ＪＰＥＧ画像展開処理装置、８２  リサイズ装置、８３  画質補正装置、８４  ハードウェアコピー装置、７１０  描画オブジェクト生成処理部、７１１  レイアウト合成処理部、７１２  印刷データ生成処理部、７１３  パス管理処理部、７１４  ＪＰＥＧ画像展開処理部、７１５  リサイズ処理部、７１６  画質補正処理部、７１７  共有メモリ管理処理部。
【図１】
2008227967.tif 000003
【図２】
2008227967.tif 000004
【図３】
2008227967.tif 000005
【図４】
2008227967.tif 000006
【図５】
2008227967.tif 000007
【図６】
2008227967.tif 000008
【図７】
2008227967.tif 000009