JP2006187906A - 画像処理装置、印刷装置および画像処理方法 - Google Patents
画像処理装置、印刷装置および画像処理方法 Download PDFInfo
- Publication number
- JP2006187906A JP2006187906A JP2005000439A JP2005000439A JP2006187906A JP 2006187906 A JP2006187906 A JP 2006187906A JP 2005000439 A JP2005000439 A JP 2005000439A JP 2005000439 A JP2005000439 A JP 2005000439A JP 2006187906 A JP2006187906 A JP 2006187906A
- Authority
- JP
- Japan
- Prior art keywords
- image
- processing
- image data
- cpu
- task
- 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
- Record Information Processing For Printing (AREA)
Abstract
【課題】 複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像処理を高速に実行できるようにすること。
【解決手段】 CPU12,13は、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する際に、複数の画像データファイルから、各画像データファイルの画像データに対応するレイアウト内での画像出力用データを生成するまでの一連の画像処理の一部または全部を、画像データファイルを単位として分散して実行する。
【選択図】 図5
【解決手段】 CPU12,13は、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する際に、複数の画像データファイルから、各画像データファイルの画像データに対応するレイアウト内での画像出力用データを生成するまでの一連の画像処理の一部または全部を、画像データファイルを単位として分散して実行する。
【選択図】 図5
Description
本発明は、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する画像処理装置、印刷装置および画像処理方法に関するものである。
従来から、2つのCPUを有する印刷装置が提案されている(例えば、特許文献1参照)。例えば特許文献1の印刷装置では、第1のCPUを有する第1の制御区画が、印刷データを中間段階のデータに変換する処理を制御し、第2のCPUを有する第2の制御区画が、中間段階のデータを印刷機構に出力可能なビットマップデータに変換する処理を制御する。この印刷装置では、第1の制御区画および第2の制御区画が、互いに第2の制御区画および第1の制御区画が実行すべき処理を実行し得る機能を有している。
そして、第1の制御区画および第2の制御区画の一方が過負荷状態になると、他方へプロセスの一部を移動させる。
上述の従来の印刷装置では、一方の制御区画が過負荷状態になった後、その一方の制御区画から他方の制御区画へプロセスの一部が移動されるため、処理の最初から適切に負荷分散を行われない可能性があるとともに、分散処理に伴うオーバーヘッドが大きく発生する。
また、最近の印刷装置では、1枚の印刷用紙に複数の画像をレイアウトして印刷するレイアウト印刷が可能である。このようなレイアウト印刷を行う場合、上述の従来の印刷装置のように分散処理を実行しても、1枚の印刷用紙に印刷する画像数(1ライン中の画像数)が大きくなると、それに伴って印刷用データを生成する画像処理に要する時間がかなり長くなってしまう。
本発明は、上記の問題に鑑みてなされたものであり、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像処理を高速に実行できる画像処理装置、印刷装置および画像処理方法を得ることを目的とする。
上記の課題を解決するために、本発明では以下のようにした。
本発明に係る画像処理装置は、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する画像処理装置であり、複数の画像データファイルから、各画像データファイルの画像データに対応するレイアウト内での画像出力用データを生成するまでの一連の画像処理の一部または全部を、画像データファイルを単位として分散して実行する複数の処理部を備える。
これにより、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像データファイル内の画像データに基づいて1枚状の画像出力イメージの画像出力用データを生成するまでの画像処理を、分散処理により高速に実行できる。
また、本発明に係る画像処理装置は、上記の画像処理装置に加え、次のようにしてもよい。つまり、この場合、画像データファイルの画像データに対する画像処理は、1または複数のラインからなるバンド内の1または複数の画像の画像データを含む画像データファイルの数、および一連の画像処理を構成する画像処理の種類に応じた分散割合で複数の処理部に割り当てられる。
これにより、画像データファイルの数および画像処理の種類に基づいて複数の処理部への分散割合を設定して分散処理に伴うオーバーヘッドを小さくしつつ効率良く分散処理を実行することができ、ひいては画像処理を高速に実行することができる。
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のようにしてもよい。つまり、この場合、一連の画像処理は、エンコードされた画像データをデコードするデコード処理、画像サイズをレイアウトに沿って変更するリサイズ処理、および処理された画像データを所定の領域内に配置し画像出力用データを生成するレイアウト処理を含む。
これにより、例えばJPEG方式などの符号化方式でエンコードされた複数の画像データによる複数の画像をレイアウトした1枚状の画像出力イメージに対応する画像出力用データが、高速に生成される。また、画像出力の条件に応じて処理量の変動が大きいデコード処理およびリサイズ処理を画像出力の条件に応じて簡単に分散させることができる。
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のようにしてもよい。つまり、この場合、一連の画像処理は、デコード処理の直後に行う1または複数の画像補正処理を含み、デコード処理は、当該画像補正処理の種類に応じた処理部に割り当てられる。
これにより、画像補正処理を行う処理部とデコード処理を行う処理部との間でのデータの授受に伴うオーバヘッドが少なくなるように各処理を行う処理部が決定されるため、効率良く分散処理を実行することができる。また、画像出力の条件に応じて処理量の変動が大きいデコード処理、画像補正処理およびリサイズ処理を画像出力の条件に応じて簡単に分散させることができる。
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のようにしてもよい。つまり、この場合、複数の処理部は、汎用命令を実行する汎用命令演算部、および複数種別の画像処理のうちの一部における所定の演算を専用命令として汎用演算部より高速に実行する専用命令演算部をそれぞれ有し、画像データファイルの画像データに対する画像処理は、専用命令演算部を有する処理部に対して優先的に割り当てられる。
これにより、処理部の処理能力に応じた分散割合で各画像処理が分散されるため、より効率良く分散処理を実行することができる。
できる。
できる。
本発明に係る印刷装置は、上記いずれかの画像処理装置を備え、その画像処理装置により生成された画像出力用データに所定の処理を施し、その処理後のデータに基づいてレイアウトで前記複数の画像データファイルの画像を印刷する。
これにより、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像データファイル内の画像データに基づいて1枚状の画像出力用データを生成するまでの画像処理を、分散処理により高速に実行できる。ひいては、当該印刷装置が印刷指示を受けてから印刷を完了するまでに要する時間を短くすることができる。
本発明に係る画像処理方法は、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する画像処理方法であり、複数の処理部を使用して、複数の画像データファイルから、各画像データファイルの画像データに対応するレイアウト内での画像出力用データを生成するまでの一連の画像処理の一部または全部を、画像データファイルを単位として分散して実行するものである。
これにより、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像データファイル内の画像データに基づいて1枚状の画像出力用データを生成するまでの画像処理を、分散処理により高速に実行できる。
以下、図に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。本発明の実施の形態に係る画像処理装置は、印刷装置に内蔵され、JPEG(Joint Photographic Experts Group )画像データなどといった画像データに対して印刷前に一連の画像処理を施す装置である。
図1において、ASIC1は、1つのチップで構成されたマルチCPU(Central Processing Unit)のプロセッサである。ASIC1は、8個のCPU11〜18を内蔵し、CPU11でプリンタ駆動部4の制御を行い、7個のCPU12〜18でJPEGデコード、画像補正、色変換およびハーフトーンからなる複数の一連の画像処理を実行するプロセッサである。この実施の形態では、JPEGデコード、画像補正、色変換およびハーフトーンといった複数の互いに異なる処理が画像データに順番に施され、JPEGデコード、画像補正、色変換、ハーフトーンの順番でパイプライン処理が実行される。
また、この装置では、JPEGデコード、画像補正、リサイズ処理およびレイアウト処理が、CPU12,13の2つの処理部により、JPEGファイルを単位として、必要に応じて分散処理される。
また、外部RAM(Random Access Memory)2は、バス20を介してASIC1の各CPU11〜18に接続された半導体メモリである。この実施の形態では、外部RAM2は、DDR−SDRAMとされ、1ワードのリード/ライトに20〜30クロックが必要となる。
また、メモリカード3は、装置に対して着脱可能であって、JPEGでエンコードされた画像データを含む1または複数の画像データファイルを記憶する不揮発性の半導体メモリを有する記憶媒体である。なお、メモリカード3は、図示せぬインタフェース回路を介してバス20に接続される。
また、プリンタ駆動部4は、プリンタヘッドや各種モータなどの、紙などの媒体への印刷に必要な電気的および機械的構成部分である。なお、プリンタ駆動部4は、図示せぬインタフェース回路を介してバス20に接続される。プリンタ駆動部4は、画像処理装置による処理後の画像データに基づいて画像を印刷する印刷手段として機能する。
図1に示すASIC1において、CPU11は、駆動制御プログラム45(図3参照)に従って、一連の画像処理後の画像データに基づいて、プリンタ駆動部4を制御するCPUである。
また、CPU12は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令演算部12aの他に、JPEGデコード用の専用命令を実行可能なJPEGデコード専用命令演算部12bを有し、JPEGデコードを高速に実行可能なCPUである。
JPEGデコード用の専用命令は、JPEGデコード時に多用される一連の演算を1つの命令に集約したものであり、JPEGデコード専用命令演算部12bは、その専用命令に対応して、その一連の演算を、汎用命令演算部12aより少ないクロック数で実行可能な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。つまり、JPEGデコード専用命令演算部12bは、1または複数の専用命令に対応して動作する、JPEGデコード高速化のための専用ハードウェアといえる。
また、CPU13は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令演算部13aの他に、画像補正用の専用命令を実行可能な画像補正専用命令演算部13bを有し、画像補正を高速に実行可能なCPUである。なお、画像補正としては、トーン調整および彩度強調を行う色調整処理、シャープネス(先鋭度)の調整を行うシャープネス処理、およびノイズ除去処理のうちの1または複数が必要に応じて行われる。なお、各処理は、例えば出願人が提供するAPF(Auto Photo Fine )と同様に行えばよい。
画像補正用の専用命令は、画像補正処理時に多用される一連の演算を1つの命令に集約したものであり、画像補正専用命令演算部13bは、その専用命令に対応して、その一連の演算を、汎用命令演算部13aより少ないクロック数で実行可能な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。つまり、画像補正専用命令演算部13bは、1または複数の専用命令に対応して動作する、画像補正高速化のための専用ハードウェアといえる。
また、CPU14は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令演算部14aの他に、色変換用の専用命令を実行可能な色変換専用命令演算部14bを有し、色変換を高速に実行可能なCPUである。なお、この実施の形態では、色変換として、RGBデータから4色以上(例えば7色)のCYMKデータへの変換が行われる。
色変換用の専用命令は、色変換処理時に多用される一連の演算を1つの命令に集約したものであり、色変換専用命令演算部14bは、その専用命令に対応して、その一連の演算を、汎用命令演算部14aより少ないクロック数で実行可能な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。つまり、色変換専用命令演算部14bは、1または複数の専用命令に対応して動作する、色変換高速化のための専用ハードウェアといえる。
また、CPU15は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令演算部15aの他に、ハーフトーン用の専用命令を実行可能なハーフトーン専用命令演算部15bを有し、ハーフトーンを高速に実行可能なCPUである。CPU16〜CPU18は、それぞれ、CPU15と同様の構成を有し、汎用命令演算部16a,17a,18aとハーフトーン専用命令演算部16b,17b,18bを有する。
4個のCPU15〜18は、ハーフトーンを並列に実行するCPU群である。また、ハーフトーンの分散処理時には、他のCPU(CPU12〜14)が、CPU15〜18とともに使用される。
ハーフトーン用の専用命令は、ハーフトーン時に多用される一連の演算を1つの命令に集約したものであり、ハーフトーン専用命令演算部15b〜18bは、その専用命令に対応して、その一連の演算を、汎用命令演算部15a〜18aより少ないクロック数で実行可能な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。つまり、ハーフトーン専用命令演算部15b〜18bは、1または複数の専用命令に対応して動作する、ハーフトーン高速化のための専用ハードウェアといえる。
この実施の形態では、ハーフトーン専用命令演算部15b〜18bを有するCPU15〜18が4個設けられているが、ハーフトーン専用命令演算部15b〜18bを有するCPUの数は、別の数でもよい。その数は、色変換後の色数に応じて決定してもよい。
また、ローカルバス19は、ASIC1内で、CPU11〜18とデュアルポートRAM21,22とを接続するバスであって、これらの間のデータ伝送路である。また、バス20は、CPU11〜18と外部RAM2、プリンタ駆動部4およびメモリカード3とを接続するバスであって、これらの間のデータ伝送路である。なお、ローカルバス19およびバス20は、例えば128ビットのデータバスである。
また、デュアルポートRAM21,22は、ASIC1に内蔵され、入出力ポートを2つ有し、一方のポートと他方のポートへのリード/ライトを独立に実行可能なRAMである。デュアルポートRAM21,22は、スタティックRAM(SRAM)で構成され、外部RAM2より高速にデータのリード/ライトをすることが可能である。デュアルポートRAM21,22の記憶容量は、数〜数十キロバイトとされ、外部RAM2の記憶領域より小さい。
デュアルポートRAM21,22の一方のポートはローカルバス19に接続され、他方のポートは、CPU12とCPU14にそれぞれ直接に接続される。
図2は、図1におけるCPU12の詳細な構成を示すブロック図である。図2において、命令管理部31は、プログラム実行時における命令の入出力を管理する。また、命令キャッシュ32は、フェッチされた命令や実行後の命令を一時的に格納するSRAMなどの高速なRAMである。また、命令RAM33は、CPU12に内蔵された命令格納用の内部RAMである。命令RAM33は、SRAMで構成された高速なメモリであり、他のCPUからアクセスできないメモリである。
また、データ管理部34は、プログラム実行時におけるデータの入出力を管理する。また、データキャッシュ35は、ロードされたデータや演算結果を一時的に格納するSRAMなどの高速なRAMである。また、データRAM36は、CPU12に内蔵されたデータ格納用の内部RAMである。データRAM36は、SRAMで構成された高速なメモリであり、他のCPUからアクセスできないメモリである
また、メモリインタフェース37は、CPU12に併設されたメモリとの間でデータの入出力を実行するインタフェースである。メモリインタフェース37は、直接にデュアルポートRAM21に接続されるとともに、ローカルバス19を介してデュアルポートRAM22に接続される。また、外部インタフェース38は、バス20やその他の外部デバイスに接続され、バス20を介して、ASIC1外部の周辺デバイス(外部RAM2など)との間でデータの入出力を実行するインタフェースである。
なお、ここでは、一例としてCPU12について説明したが、CPU13〜18についても、図1に示すように専用命令演算部が異なるだけで、他の構成は、図2のものと同様である。ただし、メモリインタフェース37は、CPU14では、ローカルバス19およびデュアルポートRAM22に接続されるが、その他のCPU13,15〜18では、ローカルバス19に接続される。
データ管理部34は、ローカルバス19を介してメモリインタフェース37に接続されたデュアルポートRAM21,22に対してリード/ライトをすることが可能である。この場合のデュアルポートRAM21,22へのリード/ライトは、外部RAM2へのリード/ライトより速く実行可能である。CPU11〜18がデュアルポートRAM21に対してリード/ライトを行う場合、CPU12は、ローカルバス19を介さずに一方のポートに対してリード/ライトを行い、その他のCPU11,13〜18は、ローカルバス19を介して他方のポートに対してリード/ライトを行う。同様に、CPU11〜18がデュアルポートRAM22に対してリード/ライトを行う場合、CPU14は、ローカルバス19を介さずに一方のポートに対してリード/ライトを行い、その他のCPU11〜13,15〜18は、ローカルバス19を介して他方のポートに対してリード/ライトを行う。
図3は、図1におけるCPU11〜18により実行されるプログラムを示すブロック図である。図3に示すプログラム41s〜44s,41g〜44g,45は、例えばバス20に接続された図示せぬ不揮発性メモリから外部メモリ2にロードされる。
図3において、JPEGデコードプログラム41sは、CPU12がJPEG画像データをデコードするためのプログラムである。JPEGデコードプログラム41sは、JPEGデコード用の専用命令を使用して記述されたプログラムである。したがって、JPEGデコードプログラム41sのうち、専用命令は、専用命令演算部12bで実行され、その他の汎用命令は、汎用命令演算部12aで実行される。このため、ASIC1内のCPU12以外のCPUでは、実行されない。
一方、JPEGデコードプログラム41gは、CPU13〜18がJPEG画像データをデコードするためのプログラムである。JPEGデコードプログラム41gは、汎用命令のみで記述されたプログラムである。したがって、JPEGデコードプログラム41gは、汎用命令演算部13a〜18aで実行される。
なお、JPEGデコードプログラム41sとJPEGデコードプログラム41gとでは、一部に異なる命令が使用されるが、同一データに対して、JPEGデコードプログラム41sによる演算結果とJPEGデコードプログラム41gによる演算結果は、同一となる。
また、画像補正プログラム42sは、CPU13が画像補正を実行するためのプログラムである。画像補正プログラム42sは、画像補正用の専用命令を使用して記述されたプログラムである。したがって、画像補正プログラム42sのうち、専用命令は、専用命令演算部13bで実行され、その他の汎用命令は、汎用命令演算部13aで実行される。このため、ASIC1内のCPU13以外のCPUでは、このプログラム42sは実行されない。
一方、画像補正プログラム42gは、CPU12,14〜18が画像補正を実行するためのプログラムである。画像補正プログラム42gは、汎用命令のみで記述されたプログラムである。したがって、画像補正プログラム42gは、汎用命令演算部12a,14a〜18aで実行される。
なお、画像補正プログラム42sと画像補正プログラム42gとでは、一部に異なる命令が使用されるが、同一データに対して、画像補正プログラム42sによる演算結果と画像補正プログラム42gによる演算結果は、同一となる。
また、色変換プログラム43sは、CPU14が色変換を実行するためのプログラムである。色変換プログラム43sは、色変換用の専用命令を使用して記述されたプログラムである。したがって、色変換プログラム43sのうち、専用命令は、専用命令演算部14bで実行され、その他の汎用命令は、汎用命令演算部14aで実行される。このため、ASIC1内のCPU14以外のCPUでは、このプログラム43sは実行されない。
一方、色変換プログラム43gは、CPU12,13,15〜18が色変換を実行するためのプログラムである。色変換プログラム43gは、汎用命令のみで記述されたプログラムである。したがって、色変換プログラム43gは、汎用命令演算部12a,13a,15a〜18aで実行される。
なお、色変換プログラム43sと色変換プログラム43gとでは、一部に異なる命令が使用されるが、同一データに対して、色変換プログラム43sによる演算結果と色変換プログラム43gによる演算結果は、同一となる。
また、ハーフトーンプログラム44sは、CPU15〜18がハーフトーンを実行するためのプログラムである。ハーフトーンプログラム44sは、ハーフトーン用の専用命令を使用して記述されたプログラムである。したがって、ハーフトーンプログラム44sのうち、専用命令は、専用命令演算部15b〜18bで実行され、その他の汎用命令は、汎用命令演算部15a〜18aで実行される。このため、ASIC1内のCPU15〜18以外のCPUでは、このプログラム44sは実行されない。
一方、ハーフトーンプログラム44gは、CPU12〜14がハーフトーンを実行するためのプログラムである。ハーフトーンプログラム44gは、汎用命令のみで記述されたプログラムである。したがって、ハーフトーンプログラム44gは、汎用命令演算部12a〜14aで実行される。
なお、ハーフトーンプログラム44sとハーフトーンプログラム44gとでは、一部に異なる命令が使用されるが、同一データに対して、ハーフトーンプログラム44sによる演算結果とハーフトーンプログラム44gによる演算結果は、同一となる。
また、駆動制御プログラム45は、CPU11がプリンタ駆動部4を制御するためのプログラムである。
上述のプログラムのうち、専用命令を含むプログラム41s〜44sは、専用命令を使用するとともに、CPU内蔵の命令RAM33およびデータRAM36を可能な限り使用するようにして、CPU毎に最適化されてコーディングされている。一方、汎用命令のみのプログラム41g〜44gは、CPU内蔵の命令キャッシュ32およびデータキャッシュ35並びに命令RAM33およびデータRAM36の容量を意識して、バス20を介しての外部RAM2に対するリード/ライトの回数が少なくなるようにコーディングされている。例えば、あるループ処理内で使用するデータ量をデータキャッシュ35の容量以下としたりする。
なお、上述のASIC1は、例えばTensilica社のXtensa技術により設計可能である。Xtensa技術を使用する場合、上述の各専用命令は、Xtensa技術で提供される命令拡張TIE(Tensilica Instruction Extension )を使用することで定義可能であり、各専用命令演算部12b〜18bのハードウェア構成も、Xtensa技術で実現可能である。TIEを使用して設定された専用命令を使用することで、通常、同一の演算が2〜5倍に高速化されるが、場合によっては数十倍に高速化される。
次に、上記装置により実行される一連の画像処理について説明する。図4は、本実施の形態に係る装置により実行される一連の画像処理について説明するフローチャートである。なお、図4は、2つのJPEGファイルから1枚状の印刷用イメージが生成される場合のフローチャートである。
この装置では、まず、2つのJPEGファイルに含まれるJPEGデータがデコードされる(ステップS1a,S1b)。デコード後の画像データは、RGB画像データである。その際、1枚状の印刷イメージに使用されるJPEGファイルの数、および後続の画像補正の有無および種類に応じて、デコード処理が、CPU12および/またはCPU13により実行される。
次に、必要に応じて、デコード後の2つの画像データに対して、画像補正が施される(ステップS2a,S2b)。画像補正としては、トーン調整および彩度強調を行う色調整処理、シャープネスの調整を行うシャープネス処理、およびノイズ除去処理のうちの1または複数が、必要に応じて行われる。その際、1枚状の印刷用イメージに使用されるJPEGファイルの数、および画像補正の種類に応じて、画像補正処理が、CPU12および/またはCPU13により実行される。
そして、画像補正後の2つの画像データに対して、リサイズ処理(ステップS3a,S3b)とレイアウト処理(ステップS4a,S4b)が実行される。リサイズ処理では、印刷解像度、印刷用紙サイズ、一枚の用紙に印刷する画像の数に応じた拡大・縮小率で、画像データのサイズ(縦横の画素数)が変更される。また、レイアウト処理では、2つのJPEGファイルから各種画像処理を経て生成された2つの画像データから、印刷イメージに一致する画像データ(RGBデータ)が生成される。つまり、レイアウト処理では、リサイズ処理後の画像データが、1枚状の印刷イメージ用における、レイアウトで指定された位置に配置される。
次に、色座標系の変更が実行される。この実施の形態では、レイアウト処理後の印刷イメージに対応するRGB画像データが、CYMK画像データに変換される(ステップS5)。なお、この実施の形態では、RGB画像データが、7色のCYMK画像データ(シアンC,イエローY,マゼンタM,ブラックK,レッドR,ブルーB,クリア(つやだし)CL)に変換される。
色変換後のCYMK画像データにおける各色の画像データに対してハーフトーンが実行される(ステップS6)。ハーフトーンでは、ディザ法または誤差分散法により各色の画像データが二値化される。
そして、二値化後の各色の画像データに基づいて、CPU11によりプリンタ駆動部4が制御され、媒体上に画像が印刷される(ステップS7)。その際、例えばマイクロウィーブ処理などが適宜施される。
このようにして、2つのJPEGファイルから1枚状の印刷イメージが生成され、JPEGデータといった汎用の画像データが、プリンタ駆動部4の駆動制御に適したデータ形式に変換される。
ここで、この実施の形態に係る画像処理装置において、上述の処理を実行する場合のデータの流れについて説明する。図5は、本実施の形態に係る画像処理装置において一連の画像処理を実行する場合のデータの流れについて説明するブロック図である。
まず、メモリカード3におけるJPEGファイルのうち、印刷に使用される複数のJPEGファイルのそれぞれに含まれる各JPEGデータがCPU12またはCPU13に転送される(フローF1)。
そして、JPEGファイル、印刷用紙のサイズ、印刷解像度、ユーザ指定の条件に基づいて、画像補正の種類、度合いなどを指定するパラメータ、色変換時のLUT(ルックアップテーブル)を指定するパラメータ、ハーフトーンの設定パラメータ(二値化方法の選択、二値化時の誤差分散の係数パターンなどを設定するためのパラメータ)が生成され、CPU12またはCPU13からデュアルポートRAM21に転送され格納される。
CPU12またはCPU13によるJPEGデコード後、デコードされた画像データは、所定のブロックあるいはバンドごとにCPU12またはCPU13から外部RAM2に転送され格納された後、CPU12またはCPU13により読み出される(フローF2)。さらに、画像補正に関するパラメータがデュアルポートRAM21からCPU12またはCPU13により読み出され、そのパラメータに応じた画像補正が、外部RAM2から読み出した画像データに対してCPU12またはCPU13により実行される。画像補正後の画像データには、リサイズ処理およびレイアウト処理が施される(フローF2)。
そして、CPU12またはCPU13によるレイアウト処理後の画像データは、CPU12またはCPU13から外部RAM2に転送され格納された後、CPU14により読み出される(フローF3,F4)。
次に、色変換に関するパラメータがデュアルポートRAM21からCPU14により読み出され、そのパラメータに応じた色変換がCPU14により実行される。色変換後、処理後の画像データは、所定サイズのブロックごとにCPU14からデュアルポートRAM22に転送され格納された後、CPU15〜18に順次読み出される(フローF5)。
次に、ハーフトーンに関するパラメータがデュアルポートRAM21からCPU15〜18により読み出され、そのパラメータに応じたハーフトーンがCPU15〜18により実行される。ハーフトーン後、処理後の画像データは、CPU15〜18から外部RAM2に転送され格納された後、CPU11により読み出される(フローF6)。
このように、CPU11〜CPU18の間での画像データの転送には、デュアルポートRAM21,22の経路と外部RAM2の経路が使用される。
図6は、本発明の実施の形態における各CPUに発生するタスクの対応関係を示すブロック図である。
CPU12では、マルチタスクOS61によるタスク管理の下、プログラム41s,42gおよび図示せぬリサイズ・レイアウト処理プログラムを実行することにより、JPEGデコードタスク62、画像補正タスク63、リサイズ処理タスク64、レイアウト処理タスク65および色変換開始タスク66が生成される。なお、マルチタスクOS61には、例えばμiTRON準拠のオペレーティングシステムが使用される。JPEGデコードタスク62、画像補正タスク63、リサイズ処理タスク64およびレイアウト処理タスク65の間のタスク間通信には、マルチタスクOS61により用意されるメールボックス61aを介したメールが使用される。
また、CPU12以外のCPU13,14との通信は、CPU間を接続する図示せぬ制御線を介しての割り込みとして実現される。CPU12からCPU13への通信の場合、CPU12のJPEGデコードタスク62、画像補正タスク63、リサイズ処理タスク64およびレイアウト処理タスク65は、CPU呼出関数67を呼び出し、CPU13への割り込みを発生させ、処理要求を含むメールを伝達させる。一方、他のCPUからCPU12への通信の場合、CPU12は割り込みを受け付けると割込ルーチン67に基づきメールを受け取る。なお、メールには、メッセージID、通知内容種別ID(各種処理要求,処理完了通知)、画像オブジェクトID、画像オブジェクト要求ID、処理対象となる画像データの先頭アドレスなどが含まれる。
CPU13では、画像補正制御タスク72が、処理要求を受け取るまで待機しており、処理要求を受け取ると、要求された処理種別に応じて、プログラム41g,42sおよび図示せぬリサイズ・レイアウト処理プログラムを起動し、JPEGデコードタスク73、画像補正タスク74、リサイズ処理タスク75およびレイアウト処理タスク76のいずれかを生成する。
CPU12からCPU13への割り込みが発生すると、割込ルーチン71が実行され、いずれかの画像処理種別の処理要求が画像補正制御タスク72に供給される。また、処理要求に係る画像処理が完了すると、画像補正制御タスク72は、CPU呼出関数77を呼び出し、CPU12への割り込みを発生させ、処理完了通知をメールとしてCPU12に伝達させる。
CPU14では、CPU12からCPU14への割り込みが発生すると、割込ルーチン81が実行され、色変換処理の処理要求が色変換制御タスク82に供給される。色変換制御タスク82は、処理要求を受け取るまで待機しており、処理要求を受け取ると、色変換処理タスク83を生成する。一方、色変換処理が完了すると、色変換制御タスク82は、CPU呼出関数84を呼び出し、CPU12への割り込みを発生させ、処理完了通知を含むメールを伝達させる。
CPU15〜18のそれぞれでは、ハーフトーン制御タスク91は、ポーリングにより定期的に色変換処理後の画像データが発生したか否かを監視し、色変換処理後の画像データが発生した場合には、ハーフトーン処理タスク92を生成し、そのデータを処理させる。
図7は、本発明の実施の形態において負荷分散に使用される分散割合テーブル101および画像割当テーブル102を示すブロック図である。
分散割合テーブル101は、画像数および実行する画像処理の種類に応じて、各画像処理をCPU12とCPU13の一方、他方または両方で実行するかを指定するテーブルである。分散割合テーブル101内の各画像処理についての分散割合は、CPU12およびCPU13の各画像処理の処理速度やオーバヘッドの度合いに応じて設定される。また、分散割合テーブル101には、実行する画像処理の組み合わせに応じた複数のテーブルが含まれる。分散割合テーブル101における複数のテーブルから、印刷時に適用される画像補正の種類に応じた最適なテーブルが選択される。
また、画像割当テーブル102は、各画像処理について、CPU12が、どの画像に対してその画像処理を実行するかを示すテーブルである。画像割当テーブル102は、レイアウト処理タスク65により、レイアウト情報を含む印刷条件および分散割合テーブル101に基づいて生成される。
図8および図9は、図7における分散割合テーブル101の一例を示す図である。
図8(A)は、JPEGデコード、リサイズ処理およびレイアウト処理は実行されるが、画像補正処理は実行されない場合の分散割合テーブル101の一例を示す図である。図8(B)は、JPEGデコード、3つの画像補正処理、リサイズ処理およびレイアウト処理が実行される場合の分散割合テーブル101の一例を示す図である。
図9(A)は、JPEGデコード、画像補正処理のうちのシャープネス処理および色調整処理、リサイズ処理およびレイアウト処理は実行されるが、画像補正処理のうちのノイズ除去処理は実行されない場合の分散割合テーブル101の一例を示す図である。図9(B)は、JPEGデコード、画像補正処理のうちの色調整処理およびノイズ除去処理、リサイズ処理およびレイアウト処理は実行されるが、画像補正処理のうちのシャープネス処理は実行されない場合の分散割合テーブル101の一例を示す図である。
例えば、図8(A)においては、印刷イメージの1バンド(ここでは8ライン)内の画像数が1である場合、1つのJPEGファイルの画像データがCPU12によりデコードされる。また、その画像数が2である場合、2つのJPEGファイルの画像データがCPU12によりデコードされる。また、その画像数が3である場合、2つのJPEGファイルの画像データがCPU12によりデコードされ、1つのJPEGファイルの画像データがCPU13によりデコードされる。また、その画像数が4である場合、3つのJPEGファイルの画像データがCPU12によりデコードされ、1つのJPEGファイルの画像データがCPU13によりデコードされる。
図10は、印刷イメージ201の一例を示す図である。この印刷イメージ201では、バンド211aには画像が含まれず、バンド211bには4つの画像202が含まれ、バンド211cには2つの画像202が含まれる。したがって、バンド211b部分の印刷イメージは、4つのJPEGファイルに基づいて生成され、バンド211c部分の印刷イメージは、2つのJPEGファイルに基づいて生成される。なお、この実施の形態では、バンド211a〜211cは、それぞれ8ラインの画素領域である。
JPEGデコードの場合、CPU12がJPEGデコードを高速に実行可能なJPEGデコード専用命令演算部12bを有するため、JPEGデコード処理は、CPU12に優先的に割り当てられ、CPU12が処理する画像データ(つまり、対応するJPEGファイル)の数が大きくなっている。
一方、画像補正の場合、CPU13が画像補正を高速に実行可能な画像補正専用命令演算部13bを有するため、画像補正処理は、CPU13に優先的に割り当てられ、CPU13が処理する画像データ(つまり、対応するJPEGファイル)の数が大きくなっている。ただし、データの転送時間などを勘案して、場合によって、CPU12が処理する画像データの数が大きい処理種別もある。
図11は、図7における画像割当テーブル102の一例を示す図である。図11は、1バンド内の画像数が4であり、かつシャープネス処理が適用されない場合に生成される画像割当テーブル102の一例を示す図である。
図11において、要求IDは、1つのバンド毎に発生する画像オブジェクト要求IDである。要求IDの値は、1から始まり、印刷イメージの先頭から最後に向かって、1バンド毎に1ずつ増加する。
また、画像オブジェクトIDは、バンド内の画像を特定するためのIDである。バンド内の画像数がMである場合、画像オブジェクトIDの値は、1からMのいずれかとなる。
また、処理割当情報は、各処理種別の処理をCPU12が実行するか否かを、画像オブジェクトIDごとに示す情報である。処理割当情報の値は、処理をCPU12が実行する場合、1であり、そうでない場合、0である。
なお、図10に示すように、バンド内の画像数が変動する場合には、それに応じて画像割当テーブル102が生成される。
次に、上記装置の動作について説明する。
図12は、本発明の実施の形態におけるレイアウト処理タスク65を説明するフローチャートである。図13は、本発明の実施の形態におけるリサイズ処理タスク64を説明するフローチャートである。図14は、本発明の実施の形態におけるJPEGデコードタスク62を説明するフローチャートである。図15は、本発明の実施の形態における画像補正タスク63を説明するフローチャートである。
まず、図示せぬ入力装置や図示せぬ通信装置を介して、印刷指示が、レイアウト情報を含む印刷条件とともに供給されると、最初の画像オブジェクト要求が生成され、レイアウト処理タスク65のメールボックス61aに、最初の画像オブジェクト要求を含むメールが入れられる。
レイアウト処理タスク65は、自己のメールボックス61aを監視しており(ステップS41)、自己のメールボックス61a内にメールがあると、メールの内容に応じた処理を実行する。
レイアウト処理タスク65は、メールの内容が画像オブジェクト要求であるか否かを判定する(ステップS42)。メールの内容が画像オブジェクト要求である場合には、1バンド分の画像割当テーブル102を生成し、外部RAM2、デュアルポートRAM21またはデータRAM36に格納する(ステップS43)。
次に、レイアウト処理タスク65は、印刷イメージデータを未作成のバンドが存在するか否かを判定し(ステップS44)、そのバンドについての画像オブジェクト要求を発行する(ステップS45)。このとき、各画像オブジェクト要求に対して画像オブジェクト要求IDが付される。ステップS45で発行される画像オブジェクト要求の画像オブジェクト要求IDは、ステップS42で取得した画像オブジェクト要求の画像オブジェクト要求IDより1だけ大きい値を有する。なお、レイアウト処理タスク65の処理優先度は、後述する他のタスクより低く設定され、CPU12において複数のタスクが並行して実行される場合には、処理優先度の高いタスクが実行され易くなる。
そして、レイアウト処理タスク65は、ステップS42で取得した画像オブジェクト要求の画像オブジェクト要求ID、およびその画像オブジェクト要求に対応するバンドに含まれる各画像の画像オブジェクトIDを指定した画像展開要求を、リサイズ処理タスク64へ発行する(ステップS46)。この画像展開要求はメールに含められ、そのメールは、リサイズ処理タスク64のメールボックス61aに入れられる。
画像展開要求の発行後、レイアウト処理タスク65は、再度、メールの受信待ち状態となる(ステップS41)。
他方、図13に示すように、リサイズ処理タスク64は、自己のメールボックス61aを監視しており(ステップS61)、自己のメールボックス61a内にメールがあると、メールの内容に応じた処理を実行する。
リサイズ処理タスク64は、メールの内容が画像展開要求であるか否かを判定する(ステップS62)。メールの内容が画像展開要求である場合には、その画像展開要求の画像オブジェクト要求IDおよび画像オブジェクトIDを付した画像デコード要求を、JPEGデコードタスク62へ発行する(ステップS63)。この画像デコード要求はメールに含められ、そのメールは、JPEGデコードタスク62のメールボックス61aに入れられる。
画像デコード要求の発行後、リサイズ処理タスク64は、再度、メールまたは割り込みの受信待ち状態となる(ステップS61)。
他方、図14に示すように、JPEGデコードタスク62は、自己のメールボックス61aを監視しており(ステップS81)、自己のメールボックス61a内にメールがあると、メールの内容に応じた処理を実行する。
JPEGデコードタスク62は、メールの内容が画像デコード要求であるか否かを判定する(ステップS82)。メールの内容が画像デコード要求である場合には、JPEGデコードタスク62は、その画像デコード要求の画像オブジェクト要求IDおよび画像オブジェクトIDに基づいて、画像割当テーブル102を参照して、その画像オブジェクトIDの画像データをデコードするCPUを特定する(ステップS83)。
JPEGデコードタスク62は、その画像デコード要求の画像オブジェクト要求IDおよび画像オブジェクトIDに対応する画像データをデコードするCPUがCPU12であるか否かを判定し(ステップS84)、CPU12がデコードする場合には、その画像オブジェクトIDに対応するJPEGファイルからJPEGデータを読み出してデコードし、デコード後のRGBデータをデュアルポートRAM21に格納する(ステップS85)。
そして、JPEGデコードタスク62は、その画像オブジェクト要求IDおよび画像オブジェクトIDに対応する処理が完了すると、処理完了通知を、リサイズ処理タスク64へ発行する(ステップS86)。この処理完了通知はメールに含められ、そのメールは、リサイズ処理タスク64のメールボックス61aに入れられる。
一方、CPU13がデコードする場合には、JPEGデコードタスク62は、デュアルポートRAM21の所定の領域に画像オブジェクト要求ID、画像オブジェクトID、処理種別などのパラメータをメールとして格納した後、CPU呼出関数67を呼び出し、CPU13にJPEGデコードを依頼する(ステップS87)。その後、CPU13によるJPEGデコードが完了し、CPU13からCPU12への割り込みが発生すると(ステップS88)、JPEGデコードタスク62は、処理完了通知を、リサイズ処理タスク64へ発行する(ステップS89)。この処理完了通知はメールに含められ、そのメールは、リサイズ処理タスク64のメールボックス61aに入れられる。
ステップS86およびステップS89の処理完了通知の発行後、JPEGデコードタスク62は、再度、メールまたは割り込みの受信待ち状態となる(ステップS81)。
図13に戻り、リサイズ処理タスク64は、自己のメールボックス61aのメールを検出すると、メールの内容を特定する。そして、JPEGデコードタスクからの処理完了通知である場合(ステップS64)、リサイズ処理タスク64は、デコード後のRGBデータを、外部RAM2内の画像補正入力バッファに格納し、オブジェクト要求ID、画像オブジェクトIDなどを付した画像補正要求をメールとして画像補正タスク63へ発行する(ステップS66)。
画像補正要求の発行後、リサイズ処理タスク64は、再度、メールまたは割り込みの受信待ち状態となる(ステップS61)。
他方、図15に示すように、画像補正タスク63は、自己のメールボックス61aを監視しており(ステップS101)、自己のメールボックス61a内にメールがあると、メールの内容に応じた処理を実行する。
画像補正タスク63は、メールの内容が画像補正要求であるか否かを判定する(ステップS102)。メールの内容が画像補正要求である場合には、印刷条件を参照して、ノイズ除去処理を実行するか否かを判定する(ステップS103)。ノイズ除去処理を実行すると判定した場合、画像補正タスク63は、ノイズ除去処理を実行する(ステップS104)。
図16は、図15におけるノイズ除去処理の詳細を説明するフローチャートである。ノイズ除去処理(ステップS104)では、画像補正タスク63は、その画像補正要求の画像オブジェクト要求IDおよび画像オブジェクトIDに基づいて、画像割当テーブル102を参照して、その画像オブジェクトIDの画像データに対してノイズ除去処理を実行するCPUを特定する(ステップS121)。
画像補正タスク63は、その画像補正要求の画像オブジェクト要求IDおよび画像オブジェクトIDに対応する画像データに対してノイズ除去を施すCPUがCPU12であるか否かを判定し(ステップS122)、CPU12がノイズ除去処理をする場合には、その画像オブジェクトIDに対応する画像データに対してノイズ除去処理を施す(ステップS123)。そして、画像補正タスク63は、その画像オブジェクト要求IDおよび画像オブジェクトIDに対応する処理が完了すると、処理完了通知を、自己へ発行する(ステップS124)。この処理完了通知はメールに含められ、そのメールは、自己のメールボックス61aに入れられる。
一方、CPU13がノイズ除去処理をする場合には、画像補正タスク63は、デュアルポートRAM21の所定の領域に画像オブジェクト要求ID、画像オブジェクトID、処理種別などのパラメータをメールとして格納した後、CPU呼出関数67を呼び出し、CPU13にノイズ除去処理を依頼する(ステップS125)。
このようにして、画像データに対するノイズ除去処理(ステップS104)がCPU12またはCPU13により実行される。
図15に戻り、一方、画像補正タスク63は、ノイズ除去処理を実行しないと判定した場合、ノイズ除去の処理完了通知を自己へ発行する(ステップS105)。この処理完了通知はメールに含められ、そのメールは、画像補正タスク63のメールボックス61aに入れられる。
ステップS104またはS105の処理が完了すると、画像補正タスク63は、再度、メールまたは割り込みの受信待ち状態となる(ステップS101)。
そして、画像補正タスク63は、ノイズ除去処理の完了を通知するメールまたはCPU13からの割り込みが検出されると(ステップS112)、オブジェクト要求ID、画像オブジェクトIDなどを付した色調整処理要求をメールとして自己に発行する(ステップS113)。この色調整処理要求はメールに含められ、そのメールは自己のメールボックス61aへ入れられる。
画像補正タスク63は、そのメールから色調整処理要求を検出すると(ステップS106)、色調整処理を実行する(ステップS107)。
図17は、図15における色調整処理の詳細を説明するフローチャートである。色調整処理(ステップS107)では、画像補正タスク63は、その色調整処理要求の画像オブジェクト要求IDおよび画像オブジェクトIDに基づいて、画像割当テーブル102を参照して、その画像オブジェクトIDの画像データに対して色調整処理を実行するCPUを特定する(ステップS131)。
画像補正タスク63は、その色調整処理要求の画像オブジェクト要求IDおよび画像オブジェクトIDに対応する画像データに対して色調整処理を施すCPUがCPU12であるか否かを判定し(ステップS132)、CPU12が色調整処理をする場合には、その画像オブジェクトIDに対応する画像データに対して色調整処理を施す(ステップS133)。そして、画像補正タスク63は、その画像オブジェクト要求IDおよび画像オブジェクトIDに対応する処理が完了すると、処理完了通知を、自己へ発行する(ステップS134)。この処理完了通知はメールに含められ、そのメールは、自己のメールボックス61aに入れられる。
一方、CPU13が色調整処理をする場合には、画像補正タスク63は、デュアルポートRAM21の所定の領域に画像オブジェクト要求ID、画像オブジェクトID、処理種別などの情報を格納した後、CPU呼出関数67を呼び出し、CPU13に色調整処理を依頼する(ステップS135)。
このようにして、画像データに対する色調整処理がCPU12またはCPU13により実行される。
色調整処理(ステップS107)が完了すると、画像補正タスク63は、再度、メールまたは割り込みの受信待ち状態となる(ステップS101)。
そして、画像補正タスク63は、色調整処理の完了を通知するメールまたはCPU13からの割り込みが検出されると(ステップS114)、オブジェクト要求IDおよび画像オブジェクトIDを付したシャープネス処理要求を自己に発行する(ステップS115)。このシャープネス処理要求はメールに含められ、そのメールは自己のメールボックス61aへ入れられる。
画像補正タスク63は、そのメールからシャープネス処理要求を検出すると(ステップS108)、印刷条件を参照して、シャープネス処理を実行するか否かを判定する(ステップS109)。シャープネス処理を実行すると判定した場合には、画像補正タスク63は、シャープネス処理を実行する(ステップS110)。
図18は、図15におけるシャープネス処理の詳細を説明するフローチャートである。シャープネス処理(ステップS110)では、画像補正タスク63は、そのシャープネス処理要求の画像オブジェクト要求IDおよび画像オブジェクトIDに基づいて、画像割当テーブル102を参照して、その画像オブジェクトIDの画像データに対してシャープネス処理を実行するCPUを特定する(ステップS141)。
画像補正タスク63は、そのシャープネス処理要求の画像オブジェクト要求IDおよび画像オブジェクトIDに対応する画像データに対してシャープネス処理を施すCPUがCPU12であるか否かを判定し(ステップS142)、CPU12がシャープネス処理をする場合には、その画像オブジェクトIDに対応する画像データに対してシャープネス処理を施す(ステップS143)。そして、画像補正タスク63は、その画像オブジェクト要求IDおよび画像オブジェクトIDに対応する処理が完了すると、処理完了通知を、自己へ発行する(ステップS144)。この処理完了通知はメールに含められ、そのメールは、自己のメールボックス61aに入れられる。
一方、CPU13がシャープネス処理をする場合には、画像補正タスク63は、デュアルポートRAM21の所定の領域に画像オブジェクト要求ID、画像オブジェクトID、処理種別などのパラメータをメールとして格納した後、CPU呼出関数67を呼び出し、CPU13にシャープネス処理を依頼する(ステップS125)。
このようにして、画像データに対するシャープネス処理がCPU12またはCPU13により実行される。
図15に戻り、一方、画像補正タスク63は、ノイズ除去処理を実行しないと判定した場合、シャープネス処理の処理完了通知を自己へ発行する(ステップS111)。この処理完了通知はメールに含められ、そのメールは、画像補正タスク63のメールボックス61aに入れられる。
ステップS110またはS111の処理が完了すると、画像補正タスク63は、再度、メールまたは割り込みの受信待ち状態となる(ステップS101)。
そして、画像補正タスク63は、シャープネス処理の完了を通知するメールまたはCPU13からの割り込みが検出されると(ステップS116)、画像補正の処理完了通知をリサイズ処理タスク64に発行する(ステップS117)。この処理完了通知はメールに含められ、そのメールはリサイズ処理タスク64のメールボックス61aへ入れられる。
図13に戻り、リサイズ処理タスク64は、画像補正タスク63からのメールから処理完了通知を検出すると(ステップS67)、リサイズ処理を実行する。
リサイズ処理では、リサイズ処理タスク64は、現在の処理対象となっているバンドの画像オブジェクト要求IDおよび画像オブジェクトIDに基づいて、画像割当テーブル102を参照して、その画像オブジェクトIDの画像データに対してリサイズ処理を実行するCPUを特定する(ステップS68)。
リサイズ処理タスク64は、その画像データに対してリサイズ処理を施すCPUがCPU12であるか否かを判定し(ステップS69)、CPU12がリサイズ処理をする場合には、その画像オブジェクトIDに対応する画像データに対して、印刷条件に従ってリサイズ処理を施す(ステップS70)。1バンドのリサイズ処理が完了すると、リサイズ処理タスク64は、処理完了通知をレイアウト処理タスク65へ発行する(ステップS71)。
一方、CPU13がリサイズ処理をする場合には、リサイズ処理タスク64は、デュアルポートRAM21の所定の領域に画像オブジェクト要求ID、画像オブジェクトID、処理種別などのパラメータをメールとして格納した後、CPU呼出関数67を呼び出し、CPU13にリサイズ処理を依頼する(ステップS72)。その後、CPU13によるリサイズ処理が完了し、CPU13からCPU12への割り込みが発生すると(ステップS73)、リサイズ処理タスク64は、処理完了通知を、レイアウト処理タスク65へ発行する(ステップS74)。この処理完了通知はメールに含められ、そのメールは、レイアウト処理タスク65のメールボックス61aに入れられる。
図12に戻り、レイアウト処理タスク65は、自己宛のメールを検出し、リサイズ処理タスクから64の処理完了通知を受信すると(ステップS47)、外部RAM2内のレイアウト出力バッファへ、レイアウト情報に従って、リサイズ処理後の画像データを格納する(ステップS48)。
そして、レイアウト処理タスク65は、1バンド内のすべての画像についてのリサイズ処理が完了したか否かを判定し(ステップS49)、リサイズ処理までの画像処理が完了していない画像がある場合には、ステップS41に戻り、その画像についてのリサイズ処理タスクからの処理完了通知を待つ。
一方、1バンド内のすべての画像についてのリサイズ処理が完了した場合、レイアウト処理タスク65は、レイアウト出力バッファ内の1バンド分の印刷イメージの画像データを、外部RAM2における色変換処理入力バッファへ格納する(ステップS50)。
そして、レイアウト処理タスク65は、全印刷イメージの画像データが生成されたか否かを判定し(ステップS51)、全印刷イメージの画像データがまだ生成されていない場合には、ステップS41に戻り、次のバンドについての処理を行う。
一方、全印刷イメージの画像データが生成されると、レイアウト処理タスク65は、処理を終了する。
なお、リサイズ処理タスク64、JPEGデコードタスク62および画像補正タスク63は、一連の画像処理を中断するために、処理終了要求を供給された場合には、それぞれ処理を終了する(ステップS75,S90,S118)。
以上のように、まず、レイアウト処理タスク65が、1バンド内の各画像の画像展開要求をリサイズ処理タスク64に発行し、リサイズ処理タスク64は、各画像のデコード要求をJPEGデコードタスク62に発行する。JPEGデコードタスク62は、CPU12またはCPU13によりリサイズ処理を実行する。その後、リサイズ処理タスク64は、各画像について画像補正要求を画像補正タスク63に発行する。画像補正タスク63は、CPU12またはCPU13により各画像補正処理を実行する。その後、リサイズ処理タスク64は、CPU12またはCPU13によりリサイズ処理を実行する。そして、レイアウト処理タスク65は、画像ごとにレイアウト処理を実行する。
ここで、CPU13内の処理の詳細について説明する。図19は、割込ルーチン71を説明するフローチャートである。図20は、画像補正制御タスク72を説明するフローチャートである。
まず、割込ルーチン71は、割り込みが検出されると実行される。割込ルーチン71では、デュアルポートRAM21の所定の領域から、処理要求を含むメールが読み出され(ステップS201)、その処理要求は、画像処理制御タスク72の処理要求キューに保存される(ステップS202)。この処理要求には、処理種別の他、処理対象となる画像データの先頭アドレスなどの画像特定情報も含まれる。
そして、画像補正制御タスク72は、処理要求キューを監視しており(ステップS211)、処理要求キューに1以上の処理要求が存在する場合、キュー先頭の処理要求の種別を特定し、その処理要求に係る画像処理を、タスク73〜76のいずれかを生成して実行させる。
処理要求がJPEGデコードである場合(ステップS212)、画像補正制御タスク72は、JPEGデコードタスク73を生成し、指定された画像オブジェクトIDの画像データのJPEGデコードを実行させる。JPEGデコード完了後、画像補正制御タスク72は、デュアルポートRAM21に処理完了通知を格納し(ステップS214)、CPU呼出関数77でCPU12に割り込みを掛け(ステップS227)、デュアルポートRAM21内の処理完了通知がクリアされるまで待機する(ステップS228)。CPU12のJPEGデコードタスク62は、デュアルポートRAM21内の処理完了通知を読み出すと、それをクリアする。そして、その処理完了通知がクリアされたことを検知すると、画像補正制御タスク72は、処理要求キューの次の処理要求に対する処理を実行する。なお、処理要求キューに処理要求が存在しない場合には、処理要求が登録されるまで、画像補正制御タスク72は待機する。
あるいは、処理要求がノイズ除去処理である場合(ステップS215)、画像補正制御タスク72は、画像補正タスク74を生成し、指定された画像オブジェクトIDの画像データに対するノイズ除去処理を実行させる(ステップS216)。ノイズ除去処理完了後、画像補正制御タスク72は、デュアルポートRAM21に処理完了通知を格納し(ステップS217)、CPU呼出関数77でCPU12に割り込みを掛け(ステップS227)、デュアルポートRAM21内の処理完了通知がクリアされるまで待機する(ステップS228)。そして、その処理完了通知がクリアされたことを検知すると、ステップS211に戻り、画像補正制御タスク72は、処理要求キューの次の処理要求に対する処理を実行する。
あるいは、処理要求が色調整処理である場合(ステップS218)、画像補正制御タスク72は、画像補正タスク74を生成し、指定された画像オブジェクトIDの画像データに対する色調整処理を実行させる(ステップS219)。色調整処理完了後、画像補正制御タスク72は、デュアルポートRAM21に処理完了通知を格納し(ステップS220)、CPU呼出関数77でCPU12に割り込みを掛け(ステップS227)、デュアルポートRAM21内の処理完了通知がクリアされるまで待機する(ステップS228)。そして、その処理完了通知がクリアされたことを検知すると、ステップS211に戻り、画像補正制御タスク72は、処理要求キューの次の処理要求に対する処理を実行する。
あるいは、処理要求がシャープネス処理である場合(ステップS221)、画像補正制御タスク72は、画像補正タスク74を生成し、指定された画像オブジェクトIDの画像データに対するシャープネス処理を実行させる(ステップS222)。シャープネス処理完了後、画像補正制御タスク72は、デュアルポートRAM21に処理完了通知を格納し(ステップS222)、CPU呼出関数77でCPU12に割り込みを掛け(ステップS227)、デュアルポートRAM21内の処理完了通知がクリアされるまで待機する(ステップS228)。そして、その処理完了通知がクリアされたことを検知すると、ステップS211に戻り、画像補正制御タスク72は、処理要求キューの次の処理要求に対する処理を実行する。
あるいは、処理要求がリサイズ処理である場合(ステップS224)、画像補正制御タスク72は、リサイズ処理タスク75を生成し、指定された画像オブジェクトIDの画像データに対するリサイズ処理を実行させる(ステップS225)。リサイズ処理完了後、画像補正制御タスク72は、デュアルポートRAM21に処理完了通知を格納し(ステップS226)、CPU呼出関数77でCPU12に割り込みを掛け(ステップS227)、デュアルポートRAM21内の処理完了通知がクリアされるまで待機する(ステップS228)。そして、その処理完了通知がクリアされたことを検知すると、ステップS211に戻り、画像補正制御タスク72は、処理要求キューの次の処理要求に対する処理を実行する。
このように、CPU13では、CPU12からの処理要求に従って、各種処理が実行される。
レイアウト処理が完了すると、色変換開始タスク66は、色変換処理をCPU14に開始させる。図21は、本発明の実施の形態における色変換開始タスク66を説明するフローチャートである。図22は、図21におけるCPU14の呼出処理を説明するフローチャートである。
色変換開始タスク66は、色変換入力バッファをポーリングにより監視しており(ステップS301)、色変換入力バッファにデータが格納されると、色変換入力バッファ内の2ライン分のデータを特定し(ステップS302)、CPU14の呼出処理を実行する(ステップS303)。図22に示すように、CPU14の呼出処理では、まず、特定された2ライン分の画像データの先頭アドレスの情報をデュアルポートRAM21に格納し(ステップS311)、CPU12のキャッシュ内の画像データを外部RAM2に書き出した後(ステップS312)、CPU呼出関数68を呼び出してCPU14に割り込みを掛ける(ステップS313)。その後、色変換開始タスク66は、色変換が完了してCPU14から割り込みを受けるまで待機し、割り込みを受けるとCPU14の呼出処理を終了する(ステップS314)。このとき、CPU14では、割り込みを受けると割込ルーチン81に従って色変換制御タスク82にメールが供給される。色変換制御タスク82は、そのメール内の色変換要求に従って、色変換処理タスク83を生成し、2ライン分の画像データの色変換を実行させる。そして、色変換制御タスク82は、色変換が完了すると、CPU呼出関数84によりCPU12に割り込みを掛け、処理完了通知を色変換開始タスク66へ送る。
そして、図21に戻り、色変換開始タスク66は、全印刷イメージの色変換処理が完了するまで、ステップS301〜S303の処理を繰り返し実行する(ステップS304)。
このようにして色変換が実行され、その後、ハーフトーン処理が実行される。
以上のように、上記実施の形態によれば、CPU12,13は、複数の画像データファイルから、各画像データファイルの画像データに対応するレイアウトの印刷イメージの画像データを生成するまでの一連の画像処理の一部または全部を、画像データファイルを単位として分散して実行する。
これにより、複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して当該所定の領域の画像出力用データを生成する場合でも、画像データファイル内の画像データに基づいて1枚状の画像出力イメージの画像出力用データを生成するまでの画像処理を、分散処理により高速に実行できる。
また、上記実施の形態によれば、画像データファイルの画像データに対する画像処理は、1または複数のラインからなるバンド内の1または複数の画像の画像データを含む画像データファイルの数、および一連の画像処理を構成する画像処理の種類に応じた分散割合で複数の処理部に割り当てられる。
これにより、画像データファイルの数および画像処理の種類に基づいて複数の処理部への分散割合を設定して分散処理に伴うオーバーヘッドを小さくしつつ効率良く分散処理を実行することができ、ひいては画像処理を高速に実行することができる。
また、上記実施の形態によれば、一連の画像処理は、デコード処理の直後に行う1または複数の画像補正処理を含み、一連の画像処理のうちのデコード処理は、当該画像補正処理の種類に応じたCPU(CPU12,13のいずれか)に割り当てられる。
これにより、画像補正処理を行う処理部とデコード処理を行う処理部との間でのデータの授受に伴うオーバヘッドが少なくなるように各処理を行うCPUが決定されるため、効率良く分散処理を実行することができる。また、画像出力の条件に応じて処理量の変動が大きいデコード処理、画像補正処理およびリサイズ処理を画像出力の条件に応じて簡単に分散させることができる。
また、上記実施の形態によれば、CPU12,13は、汎用命令演算部12a,13a、および専用命令演算部12b,13bをそれぞれ有し、画像データファイルの画像データに対する画像処理は、専用命令演算部12b,13bを有するCPUに対して優先的に割り当てられる。
これにより、CPUの処理能力に応じた分散割合で各画像処理が分散されるため、より効率良く分散処理を実行することができる。
できる。
できる。
なお、この画像処理装置を印刷装置に内蔵し、この画像処理装置により生成された画像出力用データに所定の処理を施し、その処理後のデータに基づいてレイアウトで複数の画像データファイルの画像を印刷するようにしてもよい。その場合には、当該印刷装置が印刷指示を受けてから印刷を完了するまでに要する時間を短くすることができる。
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
例えば、上記実施の形態では、最初に用意される画像データは、JPEG形式でエンコードされたものであるが、その代わりに、他の形式でエンコードされたものとしてもよい。その場合には、JPEGデコードの代わりに、その形式でのデコードが実行される。
また、上記実施の形態においては、色変換により7色のCYMK画像データが生成されるが、色変換後の画像データの色数は、他の数でもよい。例えば、色変換により、4色、6色、8色などのCYMK画像データを生成するようにしてもよい。その場合、ハーフトーン専用命令演算部を有するCPUの数は、その色数以下とされる。また、色変換後の色座標についても上述のものに限定されるものではなく、別の色座標としてもよい。
また、上記実施の形態においては、画像補正の3つの処理は、別々に分散処理されるが、3つの処理を区別せず、1つの画像補正処理として分散させるようにしてもよい。
また、上記実施の形態において、色変換を実行するCPU14からハーフトーンを実行するCPU15〜18へのデータの転送については、例えば、本出願人が先に提案している特願2004−096845号の方法を応用してもよい。
また、上記実施の形態では、CPU12とCPU13の2つでデコード処理、画像補正処理およびリサイズ処理を実行しているが、3以上のCPUで分散処理してもよい。
本発明は、例えば、画像データに対して複数の画像処理を順番に施す画像処理装置に適用可能である。そのような画像処理装置としては、例えばプリンタ、コピー機、プロジェクタ、テレビジョン受像機などがある。
12,13 CPU(複数の処理部)、12a,13a 汎用命令演算部、12b JPEGデコード専用命令演算部、13b 画像補正専用命令演算部。
Claims (7)
- 複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する画像処理装置において、
上記複数の画像データファイルから、各画像データファイルの画像データに対応する上記レイアウト内での上記画像出力用データを生成するまでの一連の画像処理の一部または全部を、上記画像データファイルを単位として分散して実行する複数の処理部を備えること、
を特徴とする画像処理装置。 - 前記画像データファイルの画像データに対する画像処理は、1または複数のラインからなるバンド内の1または複数の画像の画像データを含む前記画像データファイルの数、および前記一連の画像処理を構成する画像処理の種類に応じた分散割合で前記複数の処理部に割り当てられることを特徴とする請求項1記載の画像処理装置。
- 前記一連の画像処理は、エンコードされた前記画像データをデコードするデコード処理、画像サイズを前記レイアウトに沿って変更するリサイズ処理、および処理された画像データを前記所定の領域内に配置し前記画像出力用データを生成するレイアウト処理を含むことを特徴とする請求項1または請求項2記載の画像処理装置。
- 前記一連の画像処理は、前記デコード処理の直後に行う1または複数の画像補正処理を含み、
前記デコード処理は、当該画像補正処理の種類に応じた前記処理部に割り当てられること、
を特徴とする請求項3記載の画像処理装置。 - 前記複数の処理部は、汎用命令を実行する汎用命令演算部、および複数種別の画像処理のうちの一部における所定の演算を専用命令として上記汎用演算部より高速に実行する専用命令演算部をそれぞれ有し、
前記画像データファイルの画像データに対する画像処理は、上記専用命令演算部を有する処理部に対して優先的に割り当てられること、
を特徴とする請求項1または請求項2記載の画像処理装置。 - 請求項1から請求項5のうちのいずれか1項記載の画像処理装置を備え、
その画像処理装置により生成された画像出力用データに所定の処理を施し、その処理後のデータに基づいて前記レイアウトで前記複数の画像データファイルの画像を印刷すること、
を特徴とする印刷装置。 - 複数の画像データファイルに基づく複数の画像を所定のレイアウトで所定の領域の中に配置して、当該所定の領域の画像出力用データを生成する画像処理方法において、
複数の処理部を使用して、上記複数の画像データファイルから、各画像データファイルの画像データに対応する上記レイアウト内での上記画像出力用データを生成するまでの一連の画像処理の一部または全部を、上記画像データファイルを単位として分散して実行すること、
を特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005000439A JP2006187906A (ja) | 2005-01-05 | 2005-01-05 | 画像処理装置、印刷装置および画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005000439A JP2006187906A (ja) | 2005-01-05 | 2005-01-05 | 画像処理装置、印刷装置および画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006187906A true JP2006187906A (ja) | 2006-07-20 |
Family
ID=36795530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005000439A Withdrawn JP2006187906A (ja) | 2005-01-05 | 2005-01-05 | 画像処理装置、印刷装置および画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006187906A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015003429A (ja) * | 2013-06-20 | 2015-01-08 | コニカミノルタ株式会社 | 画像形成装置、画像形成システム、画像形成装置の制御方法、及び画像形成装置の制御プログラム |
US11538142B2 (en) * | 2019-06-10 | 2022-12-27 | Samsung Electronics Co., Ltd. | Image signal processor, operating method thereof, and image processing system including the image signal processor |
-
2005
- 2005-01-05 JP JP2005000439A patent/JP2006187906A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015003429A (ja) * | 2013-06-20 | 2015-01-08 | コニカミノルタ株式会社 | 画像形成装置、画像形成システム、画像形成装置の制御方法、及び画像形成装置の制御プログラム |
US11538142B2 (en) * | 2019-06-10 | 2022-12-27 | Samsung Electronics Co., Ltd. | Image signal processor, operating method thereof, and image processing system including the image signal processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4090908B2 (ja) | 画像処理装置および画像形成装置 | |
JP4476203B2 (ja) | 画像処理装置、プログラムおよび画像処理方法 | |
US5563986A (en) | Image processing system | |
JP5659555B2 (ja) | 画像処理装置、画像処理システム、画像処理方法、およびプログラム | |
JP2008276407A (ja) | 画像処理装置及びその方法 | |
JP3711810B2 (ja) | 画像変換装置、記憶媒体および画像変換方法 | |
US6967744B1 (en) | Image processing apparatus and method having a digital signal processor | |
JP4378197B2 (ja) | 画像情報装置 | |
US8860971B2 (en) | Printing device and printing method of printing device | |
JP2006187906A (ja) | 画像処理装置、印刷装置および画像処理方法 | |
US6985258B1 (en) | Print system | |
JP2006133839A (ja) | 画像処理装置、印刷装置および画像処理方法 | |
JP2007037017A (ja) | 画像処理装置、画像処理方法、画像処理プログラム、画像処理プログラムを記録した記録媒体 | |
US20110222121A1 (en) | Information processing apparatus, image forming apparatus, and information processing method | |
JP2020110926A (ja) | 画像形成装置、画像形成装置の制御方法、画像形成システム、及びプログラム | |
JP2006163674A (ja) | 画像処理装置、印刷装置および負荷分散方法 | |
JP2006163673A (ja) | 画像処理装置、印刷装置および負荷分散方法 | |
JP2007221520A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP4901781B2 (ja) | 画像形成装置 | |
JPH11136496A (ja) | 画像形成装置 | |
JP2003067243A (ja) | 画像処理装置、プログラム、プログラムが書き込まれた記録媒体および画像形成装置 | |
JP2008046486A (ja) | 表示制御装置および画像形成装置 | |
JP2000123156A (ja) | 画像処理装置及びその制御方法 | |
JP3143118B2 (ja) | プリンタ及び印字イメージパターン展開方法 | |
JP2012165159A (ja) | 画像処理装置、画像処理装置の制御方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080401 |