(57)【特許請求の範囲】
【請求項１】
原稿画像をスキャンしてカラー画像または白黒画像を得るための画像取得手段と、
前記画像取得手段を用いて、スキャンすべき原稿画像を一回プリスキャンするプリスキャン手段と、
前記一回プリスキャンされた画像の画像信号レベルに対応するヒストグラムを生成し、前記ヒストグラムからカラー画像用の下地情報および白黒画像用の下地情報を抽出する抽出手段と、
前記抽出手段による抽出の後、前記原稿画像をカラースキャンする場合は前記抽出したカラー画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定し、前記原稿画像を白黒スキャンする場合は前記抽出した白黒画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定する設定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記抽出手段は、前記ヒストグラムを所定幅の複数領域に分割し、その頻度の和がピークを示す領域を画像信号の色成分ごとに判定し、得られた色成分ごとの領域からより小さい画像信号レベルに対応する領域を前記カラー画像用の下地情報として抽出することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記抽出手段は、前記判定により得られた所定色成分の領域を前記白黒画像用の下地情報として抽出することを特徴とする請求項2に記載された画像処理装置。
【請求項４】
原稿画像をスキャンしてカラー画像または白黒画像を得るための画像取得手段を有する画像処理装置の制御方法であって、
前記画像取得手段を用いて、スキャンすべき原稿画像を一回プリスキャンし、
前記一回プリスキャンされた画像の画像信号レベルに対応するヒストグラムを生成し、前記ヒストグラムからカラー画像用の下地情報および白黒画像用の下地情報を抽出し、
前記抽出の後、前記原稿画像をカラースキャンする場合は前記抽出したカラー画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定し、前記原稿画像を白黒スキャンする場合は前記抽出した白黒画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定することを特徴とする制御方法。
【請求項５】
前記抽出において、前記ヒストグラムを所定幅の複数領域に分割し、その頻度の和がピークを示す領域を画像信号の色成分ごとに判定し、得られた色成分ごとの領域からより小さい画像信号レベルに対応する領域を前記カラー画像用の下地情報として抽出することを特徴とする請求項4に記載された制御方法。
【請求項６】
前記抽出において、前記判定により得られた所定色成分の領域を前記白黒画像用の下地情報として抽出することを特徴とする請求項5に記載された制御方法。
【請求項７】
画像処理装置を制御して、請求項4から請求項6の何れかに記載された制御を実行するコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、原稿画像を入力する画像処理装置およびその制御方法に関する。
【０００２】
【従来の技術】
マルチファンクションの複写機やネットワークスキャナが出現し、これらの装置では、ネットワークを経由して、コンピュータとの間で画像のやり取りを自由に行うことができる。最近は、複数のネットワークプロトコルや通信プロトコルに対応し、入力した一枚の画像を複数の宛先に異なるプロトコルで同報送信できる装置も発表されている。ただし、ファクシミリのように通信プロトコルによっては白黒画像のやり取りしかできない装置もある。そのような場合を考慮して、同一原稿をカラーおよび白黒画像として読み取り、通信プロトコルに合わせて画像を送信している。
【０００３】
【発明が解決しようとする課題】
自動濃度調整機能を有するスキャナは、プリスキャンを行い、次のスキャン時には下地レベルを白にする画像処理を行う。このようなスキャナにおけるプリスキャン後の画像読み取りは、カラーまたは白黒画像の読み取りに限定されている。そのため、同一原稿をカラーおよび白黒画像として読み取る際に自動濃度調整を適用すると、カラー画像の読み取り前にプリスキャンし、白黒画像の読み取り前にプリスキャンする必要があり、画像の読み取りに時間がかかる。
【０００４】
本発明は、同一原稿をカラー画像および白黒画像として読み取る際に自動濃度調整を適用した場合の画像読取時間を短縮することを目的とする。
【０００５】
【発明が解決しようとする課題】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００７】
本発明にかかる画像処理装置は、原稿画像をスキャンしてカラー画像または白黒画像を得るための画像取得手段と、前記画像取得手段を用いて、スキャンすべき原稿画像を一回プリスキャンするプリスキャン手段と、前記一回プリスキャンされた画像の画像信号レベルに対応するヒストグラムを生成し、前記ヒストグラムからカラー画像用の下地情報および白黒画像用の下地情報を抽出する抽出手段と、前記抽出手段による抽出の後、前記原稿画像をカラースキャンする場合は前記抽出したカラー画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定し、前記原稿画像を白黒スキャンする場合は前記抽出した白黒画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定する設定手段とを有することを特徴とする。
【０００９】
本発明にかかる制御方法は、原稿画像をスキャンしてカラー画像または白黒画像を得るための画像取得手段を有する画像処理装置の制御方法であって、前記画像取得手段を用いて、スキャンすべき原稿画像を一回プリスキャンし、前記一回プリスキャンされた画像の画像信号レベルに対応するヒストグラムを生成し、前記ヒストグラムからカラー画像用の下地情報および白黒画像用の下地情報を抽出し、前記抽出の後、前記原稿画像をカラースキャンする場合は前記抽出したカラー画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定し、前記原稿画像を白黒スキャンする場合は前記抽出した白黒画像用の下地情報に基づき前記画像取得手段の画像処理条件を設定することを特徴とする。
【００１０】
【発明の実施の形態】
以下、本発明にかかる一実施形態の画像処理装置を図面を参照して詳細に説明する。
【００１１】
［ハードウェア構成］
図1は本実施形態の画像処理装置の構成例を示すブロック図である。
【００１２】
図1において、制御部2000は、画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095に接続するとともに、ローカルエリアネットワーク(LAN)2011や公衆回線などのワイドエリアネットワーク(WAN)2051へ接続することで、画像情報やデバイス情報の入出力を行う。制御部2000において、CPU2001は、RAM2002をワークメモリに利用して装置全体を制御する。また、RAM2002は画像データを一時記憶するための画像メモリとしても利用される。ROM2003は、ブートROMであり、装置のブートプログラムが格納されている。
【００１３】
ハードディスクドライブ(HDD)2004は、システムソフトウェアおよび画像データなどが格納される。操作部インタフェイス(I/F)2006は、操作部(UI)2012のインタフェイスで、操作部2012に表示すべき画像を操作部2012へ出力するとともに、操作部2012によりユーザが入力した情報をCPU2001に伝える。MODEM2050は、WAN2051に接続され情報の入出力を行う。ネットワークインタフェイスカード(NIC)2010はLAN2011に接続され情報の入出力を行う。
【００１４】
以上のデバイスはシステムバス2007上に配置されている。システムバス2007と画像データを高速転送する画像バス2008との間は、画像バスI/F2005により接続される。つまり、画像バスI/F2005は、データ構造を変換するバスブリッジである。なお、画像バス2008はPCI(Peripheral Component Interconnect)バスまたはIEEE1394などのシリアルバスで構成されている。また、画像バス2008上には以下のデバイスが配置されている。
【００１５】
ラスタイメージプロセッサ(RIP)2060は、PDL(Page Description Language)コードをビットマップイメージに展開する。デバイスI/F2020は、スキャナ2070やプリンタ2095に接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部2080は、入力される画像に補正、加工および編集処理などを施す。プリンタ画像処理部2090は、プリンタ2095へ出力する画像に補正および解像度変換処理などを施す。画像回転部2030は画像の回転を行う。画像圧縮部2040は、多値画像に対してはJPEG(Joint Photographic Experts Group)方式の圧縮伸長処理を施し、二値画像に対してはJBIG(Joint Bi-level image Group)方式、MMR(Modified Modified READ)またはMH(Modified Hufman)符号化の圧縮伸長処理を施す。
【００１６】
上記の画像処理部の構成は、その拡張性を考慮して画像バス2008がシステムバス2007から分離されている、一般的なコンピュータの構成を応用したものである。また、画像バスに汎用のインタフェイスを採用することで、画像処理の任意な組み合わせを可能にする自由度および将来性を考慮した拡張性をもたせている。とくにCODEC部分（画像圧縮部2040）は、将来、様々な規格が提案される可能性があり、容易に交換できるよう画像バス2008側に接続する。
【００１７】
［画像入出力部］
図2は画像入出力デバイスを示す図である。
【００１８】
図2において、画像入力デバイスであるスキャナ2070は、原稿を照明し、CCDラインセンサを走査することで、原稿画像をラスタ画像データ2071に変換する。ユーザは、原稿を原稿フィーダ2072のトレイ2073にセットした後、操作部2012により読取開始を指示する。この指示に応じて、CPU2001は、スキャナ2070に指示を与え、フィーダ2072により原稿が一枚ずつフィードされ画像の読み取りが行われる。
【００１９】
画像出力デバイスであるプリンタ2095は、ラスタ画像データ2096に対応する画像を記録紙上に印刷する。プリンタ2095の画像形成方式は、感光体ドラムや感光体ベルトを用いる電子写真方式、ノズルアレイからインクを吐出して画像を印刷するインクジェット方式などがあるが、どのような方式でも構わない。印刷動作はCPU2001の指示により開始される。プリンタ2095には、記録紙のサイズおよび向きを選択することができるように複数の給紙段を有し、それらに対応する記録紙カセット2101から2104がある。また、印刷が終了した記録紙は排紙トレイ2111に排出される。
【００２０】
［操作部］
図3は操作部2012の構成例を示す図である。
【００２１】
図3において、LCD(Liquid Crystal Display)2013上にはタッチパネルシートが貼られ、装置の操作画面が表示されるとともに、表示されたキーに対応する位置が押されると、その位置情報が操作部2012からCPU2001へ伝達される。スタートキー2014は、原稿画像の読み取りを開始するなどの指示に用いられる。スタートキー2014の中央部には、緑と赤の二色LED2018が配置され、どちらの色のLEDが発光しているかによりスタートキー2014が機能する状態にあるか否かが示される。ストップキー2015は、原稿画像の読み取り動作など、実行中の動作を停止させる働きを有する。IDキー2016は、ユーザIDを入力する場合に用いられる。リセットキー2017は、操作部2012により設定された動作条件などを解除して、動作条件などを初期化する場合に用いられる。
【００２２】
［スキャナ画像処理部］
図4はスキャナ画像処理部2080の構成例を示すブロック図である。
【００２３】
図4において、画像バスI/Fコントローラ2081は、画像バス2008と接続し、そのバスアクセスシーケンスを制御するとともに、スキャナ画像処理部2080内の各デバイスの制御およびタイミング発生を行う。
【００２４】
フィルタ処理部2082は、コンボリューション演算を行う空間フィルタである。編集部2083は、例えば入力画像からマーカーペンによりマークされた閉領域を認識して、その閉領域内の画像に対して、影付け、網掛け、ネガポジ反転などの画像加工を行う。変倍部2084は、読み取り画像の解像度を変える場合に、ラスタイメージの主走査方向について補間演算を行い画像の拡大および縮小を行う。副走査方向の変倍については、画像を読み取るラインセンサを走査する速度を変えることにより行われる。
【００２５】
テーブル2085は、輝度データである画像データを濃度データに変換するための変換テーブルである。量子化部2086は、グレイスケール画像を量子化するもので、例えば誤差拡散処理やスクリーン処理などの擬似階調処理により二値画像を生成する。JPEG圧縮部2087は、テーブル2085から出力される多値画像データを既知のJPEG符号化によりリアルタイムに圧縮する。JPEG圧縮部2087は、JPEG符号化された画像の符号が出力される。
【００２６】
スキャナ画像処理部2080による処理が終了した画像あるいは符号は、再び、画像バスI/Fコントローラ2081を介して、画像バス2008へ送り出される。
【００２７】
［プリンタ画像処理部］
図5はプリンタ画像処理部2090の構成例を示すブロック図である。
【００２８】
図5において、画像バスI/Fコントローラ2091は、画像バス2008と接続し、そのバスアクセスシーケンスを制御するとともに、プリンタ画像処理部2090内の各デバイスの制御およびタイミング発生を行う。
【００２９】
解像度変換部2092は、LAN2011あるいはWAN2051を介して送られてくる画像を、プリンタ2095の解像度に変換する。スムージング部2093は、解像度変換された画像のジャギー、つまり斜め線などの白黒境界部に現れる画像の乱れ（ぎざぎざ）を滑らかにする。
【００３０】
［画像圧縮部］
図6は画像圧縮部2040の構成例を示すブロック図である。
【００３１】
図6において、画像バスI/Fコントローラ2041は、画像バス2008と接続し、そのバスアクセスシーケンスを制御するとともに、入出力バッファ2042および2045とのデータのやり取りを行うためのタイミング制御、並びに、画像圧縮器2043に対するモード設定などを制御する。以下、画像圧縮部2040の処理手順を説明する。
【００３２】
画像バス2008を介して、CPU2001から画像バスI/Fコントローラ2041に画像圧縮を制御するための設定が行われる。この設定により、画像バスI/Fコントローラ2041は、画像圧縮器2043に対して画像圧縮に必要な設定、例えばMMRで圧縮するや、JBIGで伸長するなどの設定を行う。
【００３３】
必要な設定が行われた後、CPU2001から画像バスI/Fコントローラ2041に対して画像データの転送が許可される。この許可に従い、画像バスI/Fコントローラ2041は、RAM2002もしくは画像バス2008上のデバイスからの画像データの受信を開始する。受信された画像データは、入力バッファ2042に一時格納され、画像圧縮器2043の画像データ要求に応じて所定のスピードで画像圧縮器2043へ供給される。具体的には、入力バッファ2042は、画像バスI/Fコントローラ2041と画像圧縮器2043との間で画像データの転送が可能か否かを判断し、画像バス2008を介した画像データの受信、および、画像圧縮器2043への画像データの供給が不可能な場合は、画像データの転送が行われないように制御する。以後、このような制御を「ハンドシェーク」と呼ぶ。
【００３４】
画像圧縮器2043は、供給された画像データを一旦RAM2044に格納する。これは、画像を圧縮（または伸長）する際は、その圧縮方法により数ライン分の画像データを必要とするためで、例えば、画像の第1ラインの圧縮が、その後の数ライン分の画像データが用意されないと行えないからである。
【００３５】
圧縮（または伸長）された画像データは、直ちに出力バッファ2045に送られる。出力バッファ2045は、画像バスI/Fコントローラ2041と画像圧縮器2043との間でハンドシェークを行い、圧縮（または伸長）された画像データを画像バスI/Fコントローラ2041に供給する。画像バスI/Fコントローラ2041は、圧縮（または伸長）された画像データをRAM2002もしくは画像バス2008上のデバイスに転送する。
【００３６】
こうした一連の処理は、CPU2001からの処理要求が無くなるまで、言い換えれば必要な頁数の処理が終わるまで、あるいは、圧縮および伸長のエラー発生などにより画像圧縮部2040から停止要求が出るまで繰り返される。
【００３７】
［画像回転部］
図7は画像回転部2030の構成例を示すブロック図である。
【００３８】
図7において、画像バスI/Fコントローラ2031は、画像バス2008と接続し、そのバスアクセスシーケンスを制御するとともに、画像回転器2032のモード設定や、画像回転器2032への画像データの転送タイミングの制御などを行う。以下、画像回転部2030の処理手順を説明する。
【００３９】
画像バス2008を介して、CPU2001から画像バスI/Fコントローラ2031に画像回転を制御するための設定が行われる。この設定により、画像バスI/Fコントローラ2031は、画像回転器2032に対して画像回転に必要な設定、例えば画像サイズ、回転方向や角度などを設定する。
【００４０】
必要な設定が行われた後、CPU2001から画像バスI/Fコントローラ2041に対して画像データの転送が許可される。この許可に従い、画像バスI/Fコントローラ2041は、RAM2002もしくは画像バス2008上のデバイスからの画像データの受信を開始する。
【００４１】
以下の説明では、回転すべき画像のサイズを32×32ドットの二値画像とし、画像バス2008の画像データの転送単位を32ビットとする。従って、32×32ドットの画像を得るには、32ビット単位の画像データ転送を32回行う必要があり、かつ、不連続なアドレスの画像データを転送する必要がある（図8参照）。不連続アドレッシングにより転送された画像データは、読出時に所望の角度に回転されるようにRAM2033に書き込まれる。例えば、画像を反転してさらに反時計方向に90度回転する場合、受信される32ビットの画像データは、図9に示すように、RAM2033に書き込まれる。RAM2033の読み出しは図9に示すX方向に行われ、所望する画像の回転が実現される。
【００４２】
画像の回転、つまりRAM2033への画像データの書き込みが完了した後、画像回転器2032は、上述した読出方法でRAM2033から画像データを読み出し、画像バスI/Fコントローラ2031に画像データを供給する。
【００４３】
回転された画像の画像データを供給される画像バスI/Fコントローラ2031は、連続アドレッシングにより、RAM2002もしくは画像バス2008上のデバイスに画像データを転送する。こうした一連の処理は、CPU2001からの処理要求が無くなるまで、つまり必要な頁数の処理が終わるまで繰り返される。
【００４４】
［デバイスI/F］
図10はデバイスI/F2020の構成例を示すブロック図である。
【００４５】
図10において、画像バスI/Fコントローラ2021は、画像バス2008と接続し、そのバスアクセスシーケンスを制御するとともに、デバイスI/F2020内の各デバイスの制御およびタイミング発生を行い、さらにスキャナ2070およびプリンタ2095へ送る制御信号も発生する。
【００４６】
スキャンバッファ2022は、スキャナ2070から送られてくる画像データを一時保存し、画像バスI/Fコントローラ2021から送られてくるタイミング信号に同期して画像データを出力する。シリアルパラレル・パラレルシリアル変換器2023は、スキャンバッファ2022から入力される画像データを所定順に並べる、または、分解することで、画像バス2008を転送可能なデータ幅に変換する。
【００４７】
パラレルシリアル・シリアルパラレル変換器2024は、画像バス2008を介して転送されてきた画像データを分解する、または、所定順に並べることで、プリントバッファ2025に保存可能なデータ幅に変換する。プリントバッファ2025は、入力される画像データを一時保存し、プリンタ2095の印刷動作に同期させて画像データを出力する。
【００４８】
次に、画像スキャン時の処理手順を説明する。スキャナ2070から出力されるタイミング信号に同期してスキャナ2070から出力される画像データは、スキャンバッファ2022に保存される。画像バス2008がPCIバスの場合は、スキャンバッファ2022に32ビット分の画像データが格納されたタイミングで、先入れ先出しで32ビット分の画像データがスキャンバッファ2022からシリアルパラレル・パラレルシリアル変換器2023に送られ、32ビットの画像データに変換される。また、画像バス2008がIEEE1394のようなシリアルバスの場合は、先入れ先出しでスキャンバッファ2022からシリアルパラレル・パラレルシリアル変換器2023に画像データが送られ、シリアルデータに変換される。シリアルパラレル・パラレルシリアル変換器2023から出力される32ビット画像データまたはシリアルデータは、画像バスI/Fコントローラ2021および画像バス2008を介して転送される。
【００４９】
次に、画像プリント時の処理手順を説明する。画像バス2008がPCIバスの場合、画像バス2008を介して画像バスI/Fコントローラ2021に受信される32ビットの画像データは、パラレルシリアル・シリアルパラレル変換器2024に送られて、プリンタ2095の入力データビット数に対応する画像データに分解された後、プリントバッファ2025に保存される。また、画像バス2008がIEEE1394のようなシリアルバスの場合、画像バス2008を介して画像バスI/Fコントローラ2021に受信されるシリアルデータは、パラレルシリアル・シリアルパラレル変換器2024に送られて、プリンタ2095の入力データビット数に対応する画像データに並べらた後、プリントバッファ2025に保存される。そして、プリンタ2095から発行されるタイミング信号に同期して、プリントバッファ2025に格納された画像データが先入れ先出しでプリンタ2095に送られる。
【００５０】
［システム構成］
図11は本実施形態の画像処理装置が接続されるネットワークシステム全体の構成例を示す図である。
【００５１】
図11において、本実施形態の画像処理装置1001は、上述したようにスキャナ、プリンタおよび制御部から構成され、スキャナによって読み取った画像をLAN1010に流したり、LAN1010から受信される画像をプリントアウトする。また、スキャナによって読み取った画像をPSTNまたはISDN1030を介してファクシミリ装置1031に送信したり、PSTNまたはISDN1030から受信される画像をプリントアウトすることもできる。
【００５２】
データベースサーバ1002は、画像処理装置1001により読み取られた二値画像および多値画像をデータベースに登録し管理する。データベースサーバ1002のデータベースクライアント1003は、データベース1002に登録された画像の閲覧、検索などを行うものである。
【００５３】
電子メールサーバ1004は、SMTP(Simple Mail Transfer Protocol)やPOP(Post Office Protocol)により電子メールの送受信を行う。電子メールクライアント1005は、電子メールサーバ1004が受信したメールを閲覧したり、電子メールサーバ1005を介して電子メールを送信することが可能である。電子メールクライアント1005は、画像処理装置1001により読み取られた、あるいは、データベースサーバ1002に登録された二値画像および/または多値画像を送信する電子メールに添付することができる。
【００５４】
HTML(Hyper Text Markup Language)文書をLAN1010などに提供するWWW(World Wide Web)サーバ1006は、画像処理装置1001により提供するHTML文書をプリントアウトすることができる。DNSサーバ1007は、DNS(Domain Name Service)を提供する。
【００５５】
ルータ1007は、LAN1010をインターネットおよび/またはイントラネット1012に連結する。インターネットおよび/またはイントラネット1012には、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004および画像処理装置1001と同様の装置が、それぞれ1021、1022、1023および1024として接続されている。
【００５６】
また、LAN1010にはプリンタ1040も接続されていて、画像処理装置1001によって読み取った画像のプリントアウトや、各種サーバおよびクライアントからのプリント要求を処理する。
【００５７】
［ソフトウェア構成］
図12は画像処理装置1001のソフトウェア構成例を示すブロック図である。
【００５８】
ユーザインタフェイスを司るUI1501は、ユーザが画像処理装置1001の各種操作・設定を行う際に装置との仲介を行うソフトウェアモジュール（以下単に「モジュール」と呼ぶ）である。UI1501は、ユーザによる操作部2012の操作に従い、後述する各種モジュールに入力情報を転送して処理の依頼やデータの設定などを行う。
【００５９】
アドレスブック1502は、データの送付先や通信先などを管理するデータベースモジュールである。アドレスブック1502の登録内容は、UI1501の働きにより追加、削除および取得が可能で、ユーザの操作により後述する各モジュールにデータの送付および通信先情報を与えるものとして使用される。
【００６０】
Webサーバ1503は、外部のWebクライアントの要求により、画像処理装置1001の管理情報を通知するために使用されるモジュールである。管理情報は、後述する制御API1518を介して読み取られ、後述するHTTP1512、TCP/IP1516およびネットワークドライバ1517を介して、Webクライアントに通知される。
【００６１】
Universal-Send1504は、データの配信を司るモジュールで、UI1501の働きにより、ユーザに指示されたデータを、同様にユーザに指示された通信（出力）先に配布するものである。また、ユーザにより、スキャナを使用した配布データの生成が指示された場合は、後述する制御API1518を介してスキャナを動作させ、データを生成する。
【００６２】
P550(1505)は、Universal-Send1504内で出力先にプリンタが指定された際に実行されるモジュールである。E-Mail1506は、Universal-Send1504内で通信先に電子メールアドレスが指定された際に実行されるモジュールである。DB1507は、Universal-Send1504内で出力先にデータベースが指定された際に実行されるモジュールである。DP1508は、Universal-Send1504内で出力先に画像処理装置1001と同様の画像処理装置（複合機）が指定された際に実行されるモジュールである。
【００６３】
リモートコピースキャン1509は、画像処理装置1001のスキャナを使用し、ネットワーク接続された他の複合機などを出力先として、画像処理装置1001単体で実現可能なコピー機能と同等の処理を行うモジュールである。リモートコピープリント1510は、画像処理装置1001のプリンタを使用し、ネットワーク接続された他の複合機などを入力先として、画像処理装置1001単体で実現可能なコピー機能と同等の処理を行うモジュールである。Webプルプリント1511は、インターネットまたはイントラネット上の各種Webサイトの情報、所謂ホームページを読み出し、印刷するモジュールである。
【００６４】
HTTP1512は、画像処理装置1001がHTTP(Hyper Text Transfer Protocol)により通信する際に使用されるモジュールで、後述するTCP/IP1516により前述したWebサーバ1503およびWebプルプリント1511の各モジュールに通信を提供する。LPR1513は、後述するTCP/IP1516により前述したUniversal-Send1504内のプリントモジュールであるP550(1505)に通信を提供する。SMTP1514は、後述するTCP/IP1516により前述したUniversal-Send1504内のE-mail1506に通信を提供する。SLM1515は、後述するTCP/IP1516により前述したUniversal-Send1504内のDB1517およびDP1518、並びに、リモートコピースキャン1509およびリモートコピープリント1510の各モジュールに通信を提供する。なお、SLMはSalutation マネジャまたはSmart Link マネジャと呼ばれる機器制御情報などを含んだネットワークプロトコルの一種である。
【００６５】
TCP/IP1516は、TCP/IP(Transfer Control Protocol/Internet Protocol)による通信をサポートするモジュールで、前述した各種モジュールにネットワークドライバ1517によりネットワーク通信を提供する。ネットワークドライバ1517は、ネットワークに物理的に接続される部分を制御する。
【００６６】
制御API1518は、Universal-Send1504などの上流モジュールに対し、ジョブマネジャ1519などの下流モジュールとのAPI(Application Interface)を提供し、上流および下流のモジュール間の依存関係を軽減し、それぞれの流用性を高めるものである。ジョブマネジャ1519は、前述した各種モジュールから制御API1518を介して指示される処理を解釈し、後述する各モジュールに指示を与える。また、ジョブマネジャ1519は、画像処理装置1001で実行されるハードウェア的な処理を一元管理する。
【００６７】
スキャナマネジャ1524は、ジョブマネジャ1519から指示されるスキャン処理を管理および制御する。SCSIドライバ1525は、スキャナマネジャ1524と画像処理装置1001に内部接続されたスキャナとの通信を行う。なお、スキャナとのインタフェイスは、SCSI(Small Computer Standard Interface)に限定されるものではなく、GPIBなどのパラレルインタフェイス、IEEE1394やUSB(Universal Serial Bus)などのシリアルバスインタフェイス、あるいは、RS232CやRS422などのシリアルインタフェイスでもよい。
【００６８】
プリンタマネジャ1526は、ジョブマネジャ1519から指示される印刷処理を管理および制御する。プリンタドライバ1527は、プリンタマネジャ1526と画像処理装置1001に内部接続されたプリンタとの通信を行う。なお、プリンタとのインタフェイスには、スキャナの場合と同様に、SCSI、GPIBやセントロニクスなどのパラレルインタフェイス、IEEE1394やUSBなどのシリアルバスインタフェイス、あるいは、RS232CやRS422などのシリアルインタフェイスが利用できる。
【００６９】
CODECマネジャ1520は、ジョブマネジャ1519から指示される処理の中で、データの各種圧縮、伸長を管理、制御する。FBE(Fast Boundary Encoding)エンコーダ1521は、ジョブマネジャ1519およびスキャナマネジャ1524により実行されるスキャン処理によって読み取られたデータをFBEフォーマットにより圧縮する。JPEG CODEC1522は、ジョブマネジャ1519およびスキャナマネジャ1524により実行されるスキャン処理、並びに、プリンタマネジャ1526により実行される印刷処理において、読み取られたデータのJPEG圧縮および印刷データのJPEG伸長処理を行う。
【００７０】
MMR CODEC1523は、ジョブマネジャ1519およびスキャナマネジャ1524により実行されるスキャン処理、並びに、プリンタマネジャ1526により実行される印刷処理において、読み取られたデータのMMR圧縮および印刷データのMMR伸長処理を行う。
【００７１】
パラレルポートドライバ1528は、Webプルプリント1511がパラレルポートを介して外部の出力機器にデータを出力する際のインタフェイスを提供する。
【００７２】
［アプリケーション］
次に、本実施形態の画像処理装置1001に組み込まれたアプリケーションの動作について説明する。図13はアプリケーションの動作を説明するためのネットワーク構成の一例を示すブロック図である。
【００７３】
図13において、4300はリモートコピーにおける受信側（プリント側）の複合機器である。4350はUniversal-send1504から同報配信されるイメージを受信してプリントする例えばレーザビームプリンタ(LBP)などのプリンタ機器である。4400はリモートプリントの受信側（プリント側）のデバイスである。4450は同報配信されるイメージを受信し格納するグループウェアサーバである。4500および4600は同報配信される二値画像を受信し格納する画像データベースサーバである。4550は同報配信されるイメージを受信し格納するメールサーバである。4650は情報コンテンツを有するWebサーバである。4700はWebサーバなどにアクセスするWebブラウザである。
【００７４】
［UIアプリケーション］
UI1501の詳細は前述したとおりであるが、ここではアドレスブック1502について説明する。アドレスブック1502は、画像処理装置1001の不揮発性メモリ、例えばバッテリバックアップされたメモリやハードディスクなどに保存されていて、その中にはネットワーク接続された機器の特徴が記載されている。具体的には、以下に列挙するような情報がアドレスブック1502に含まれている。
機器の正式名やエイリアス名
機器のネットワークアドレス
機器が処理可能なネットワークプロトコル
機器が処理可能なドキュメントフォーマット
機器が処理可能な圧縮タイプ
機器が処理可能なイメージ解像度
プリンタ機器の場合は給紙可能な紙サイズおよび給紙段の情報
サーバ機器の場合はドキュメントを格納可能なフォルダ名
【００７５】
以下に説明する各アプリケーションは、アドレスブック1502に記載された情報に基づき配信先の特徴を判別することが可能である。また、アドレスブック1502は、編集可能であるとともに、ネットワーク内のサーバなどに保存されているものがダウンロードして使用される、または、直接参照することも可能である。
【００７６】
［リモートコピーアプリケーション］
リモートコピースキャン1509によるリモートコピーアプリケーションは、アドレスブック1502によって認識可能な配信先に指定された機器が処理可能な解像度情報に従いスキャナで読み取った二値画像をMMR圧縮かつTIFF(Tagged Image File Format)化した後、SLM1515を介してネットワーク上の複合機器4300などに送信する。
【００７７】
［同報配信アプリケーション］
Universal-send1504による同報配信アプリケーションは、リモートコピーアプリケーションと違い、一度の画像スキャンで複数の配信先に画像を送信することが可能である。また、その配信先もプリンタ機器に限らず、サーバなどにも直接配信可能である。以下、配信先ごとに説明する。
【００７８】
配信先の機器のネットワークプリンタプロトコルがLPD(Line Printer Daemon)、かつ、公知のプリント記述言語(PDL)が処理可能であることがアドレスブック1502から認識される場合は、同様にアドレスブック1502から認識される配信先の機器の画像解像度に従い画像を読み取り、画像自体はFBEエンコーダ1521により圧縮し、さらにPDL化して、LPR1513により配信先のプリンタ機器4350などに送信する。
【００７９】
配信先の機器がSLMにより通信可能、かつ、サーバの場合は、アドレスブック1502からサーバアドレスおよびサーバのフォルダ指定を認識して、リモートコピーアプリケーションと同様に、スキャナにより読み取った二値画像をMMR圧縮し、かつ、TIFF化し、SLM1515を介してネットワーク上のサーバ4550や4500などの特定フォルダに格納することが可能である。また、配信先のサーバがJPEG圧縮された多値画像を処理可能だと判断される場合、スキャナにより読み取った画像をJPEG圧縮し、かつ、JFIF化し、SLM1515を介してネットワーク上のサーバ4600などの特定フォルダに格納することが可能である。
【００８０】
配信先の機器が電子メールサーバの場合、アドレスブック1502に記載されたメールアドレスを認識して、スキャナにより読み取った二値画像をMMR圧縮し、かつ、TIFF化し、SMTP1514を介して電子メールサーバ4550などに送信する。その後の配信は、電子メールサーバにより実行される。
【００８１】
［Webプルプリントアプリケーション］
Webプルプリント1511によるWebプルプリントアプリケーションは、Webサーバ4650などのWebサイトの情報をプリントする。
【００８２】
［WebServerアプリケーション］
Webサーバ1503によるWebサーバアプリケーションは、HTMLなどで記述されたWebサイトの情報をHTTP1512によりWebブラウザ4700などに提供する。
【００８３】
［操作画面］
次に、操作部2012のLCDに表示される操作画面について簡単に説明する。
【００８４】
画像処理装置1001が提供する機能はコピー(Copy)、送信(Send)、検索(Retrieve)、タスク(Tasks)、管理(Management)およびコンフィグレーション(Configuration)の六大カテゴリに分類される。これらは、図14に示す操作画面3010の上部に表示される六つのメインタグCOPY3011、SEND3012、RETREIVE3013、TASKS3014、MGMT3015およびCONFIG3016にそれぞれ対応する。これらのメインタグを選択することで、操作画面3010は各カテゴリの画面へ切り替わる。もし、切り替えが許可されないカテゴリがある場合は、そのタグの表示色の変化により選択不能であることが示される。
【００８５】
Copyには、自機が有するスキャナおよびプリンタを使用して、ドキュメント複写を行う機能と、自機が有するスキャナおよびネットワーク接続されたプリンタを使用してドキュメント複写を行う機能（リモートコピー）とが含まれる。
【００８６】
Sendでは、自機が有するスキャナに置かれたドキュメントの画像を電子メール、リモートプリンタおよびファックシミリへ送信したり、FTP(File Transfer Protocol)転送およびデータベースに転送する機能があり、宛先を複数指定することが可能である。
【００８７】
Retrieveは、外部のドキュメント画像を取得し、自機が有するプリンタで印刷する機能である。ドキュメントの取得手段としてはWWW、電子メール、FTP転送およびファックシミリの使用が可能である。
【００８８】
Tasksは、ファックシミリやインターネットなどを介して外部から送られてくるドキュメント画像を自動処理して、定期的にRetrieveを行うためのタスクの生成し管理する機能である。
【００８９】
Managementでは、ジョブ、アドレスブック、ブックマーク、ドキュメントおよびアカウント情報などの管理を行う。
【００９０】
Configurationでは、自機に関する設定（ネットワークや時計など）を行う。
【００９１】
［デバイス情報サービス］
画像処理装置1001の制御部内には、ジョブに対する設定値、デバイス（スキャナやプリンタなど）の機能、ステータスおよび課金情報などが制御API1518に準拠したデータ形態でデータベースとして保持され、そのデータベースとのインタフェイスはデバイス情報サービス(Device Information Service: DIS)として定義されている。図15はDIS7102、ジョブマネジャ1519、スキャナマネジャ1524およびプリントマネジャ1526の情報のやり取りを示す図である。
【００９２】
ジョブの開始命令など動的な情報はジョブマネジャ1519から各マネジャに直接指示され、デバイスの機能やジョブの内容など静的な情報はDIS7102が参照される。各マネジャからの静的および動的情報、並びに、イベントは、DIS7102を介してジョブマネジャ1519に伝えられる。
【００９３】
各マネジャからDIS7102のデータベースにデータを設定し取得する場合は、DIS7102の内部データ形式が制御API1518準拠であることから、制御API1518に準拠したデータ形式と各マネジャが理解できるデータ形式との相互の変換処理が行われる。例えば、各マネジャからステータスデータを設定する場合、デバイス固有のデータを解釈し、制御API1518で定義される対応するデータに変換し、DIS7102のデータベースへ書き込む。
【００９４】
ジョブマネジャ1519からDIS7102のデータベースにデータの設定し取得する場合は、ジョブマネジャ1519とDIS7102との間でデータの変換は生じない。また、DIS7102では、各マネジャから通知される各種イベント情報に基づき、イベントデータの更新が行われる。
【００９５】
図16はDIS7102内部に保持される各種データベース（以下「DB」と呼ぶ）を示す図である。
【００９６】
7201はスーパバイザDBで、機器全体についてのステータスやユーザ情報を保持し、ユーザIDやパスワードなどのバックアップが必要な情報はハードディスクやバックアップメモリなどの不揮発性の記憶媒体に保持される。
【００９７】
7202はスキャンコンポーネントDB、7203はプリントコンポーネントDBで、これらコンポーネントDBは存在するコンポーネントごとに対応して保持されている。例えば、プリンタのみからなる機器の場合はプリントコンポーネントDBのみが存在し、また、ファクシミリを備える機器の場合はファクシミリコンポーネントDBが保持されている。各コンポーネントDBは、初期化時に、それに対応するマネジャによって機器の機能やステータスが設定される。
【００９８】
7204はスキャンジョブサービスDB、7205はプリントジョブサービスDBである。これらのジョブサービスDBもコンポーネントDBと同様に、初期化時に、それぞれに対応するマネジャにより機器の機能や、それらのサポート状況が設定される。
【００９９】
次に、ジョブDBおよびドキュメントDBについて説明する。7206はスキャンジョブDB、7207はプリントジョブDB、7208はスキャンドキュメントDB、および、7209はプリントドキュメントDBである。ジョブDBおよびドキュメントDBは、ジョブと、それに付随するドキュメントが生成される度に、ジョブマネジャ1519により動的に確保、初期化され、必要な項目の設定が行われる。各マネジャはジョブの開始前にジョブDBおよびドキュメントDBから処理に必要な項目を読み出し、ジョブを開始する。ジョブが終了すると、これらのジョブDB、それに付随するドキュメントDBは解放される。ジョブは一つ以上のドキュメントをもつので、あるジョブに対して複数のドキュメントDBが確保される場合がある。
【０１００】
7211は各マネジャから通知されるイベント情報を保持するイベントテーブルDB、7210は画像処理装置1001のスキャン回数およびプリント回数を記録するためのソフトウェアカウンタ（テーブル）である。
【０１０１】
マネジャから通知されるイベントには、スキャナマネジャ1524からのコンポーネントの状態遷移およびスキャン動作完了や各種のエラー、また、プリンタマネジャ1526からのコンポーネントの状態遷移、プリント動作完了、紙詰まりおよび給紙カセットオープンなどがあり、それぞれのイベントを識別するためのイベントIDが予め定められている。
【０１０２】
各マネジャからイベントが発行された場合、DIS7102は、イベントテーブルDB7211に発行されたイベントIDと、必要であればそのイベントに付随する詳細データを登録する。また、各マネジャからイベントの解除が通知された場合、DIS7102は、解除が指示されたイベントのデータをイベントテーブルDB7211から削除する。
【０１０３】
ジョブマネジャ1519からイベントのポーリングが行われた場合、DIS7102は、イベントテーブルDB7211を参照して、現在発生しているイベントIDと、必要であればイベントに付随する詳細データとをジョブマネジャ1519へ返し、現在イベントが発生していなければその旨を返す。
【０１０４】
また、スキャン動作またはプリント動作の完了イベントが通知された場合、スキャンまたはプリントを行ったユーザのカウント値を更新する。このソフトウェアカウンタ7210は、不慮の電源断などでそのカウント値が失われないように、バックアップされたメモリやハードディスクなどの不揮発性の記憶媒体に、カウント値が更新される度に書き込む。
【０１０５】
［スキャン動作］
図17はスキャン動作に関するソフトウェアの構造例を示す図である。
【０１０６】
ジョブマネジャ1519は、アプリケーションレベルの要求を分類、保存する機能をもつ。DIS7102は、アプリケーションレベルから要求されたスキャン動作に必要なパラメータを保存する。アプリケーションからの要求は、RAM2002に保存される。
【０１０７】
スキャン動作管理部8203は、ジョブマネジャ1519およびDIS7102からスキャン動作を行うのに必要な情報を取得する。スキャン動作管理部8203は、ジョブマネジャ1519から図18に示すジョブ番号8308およびドキュメント番号8304から構成されるテーブルデータ8301を受け取り、そのテーブルデータ8301を基にDIS7102より図19に示すスキャンパラメータ8302を受け取る。これにより、アプリケーションから要求されたスキャン条件に基づくスキャン動作を行う。
【０１０８】
スキャン動作管理部8203は、DIS7102から取得したスキャンパラメータ8302をドキュメント番号8306の順にスキャンシーケンス制御部8204に渡す。スキャンパラメータ8302を受け取ったスキャンシーケンス制御部8204は、スキャン画像属性8308の内容に従ってデバイスI/F制御部8207を制御する。これにより、図1の画像バス2008に接続されたデバイスI/F2020を制御して、ケーブル2071を介してスキャナ2070へ制御コマンドが送られてスキャン動作が実行される。
【０１０９】
スキャン動作によって得られた画像は、ケーブル2071、デバイスI/F2020および画像バス2008を介してRAM2002に格納される。スキャンシーケンス制御部8204は、スキャンが終了し、RAM2002に画像が格納されると、スキャンパラメータ8302のスキャン画像圧縮形式8309に従い、RAM2002に格納されたスキャン画像の圧縮をCODECマネジャ1520に要求する。要求を受け取ったCODECマネジャ1520は、画像バス2008に接続された画像圧縮部2040、または、MMR CODEC1523のソフトウェア圧縮モジュールを用いて、スキャンシーケンス制御部8204から指定されるスキャン画像圧縮形式8309に従いスキャン画像を圧縮し、圧縮した画像を画像バス2008を介してRAM2002に格納する。
【０１１０】
スキャンシーケンス制御部8204は、CODECマネジャ1520によりスキャン画像圧縮形式8309で圧縮されたスキャン画像がRAM2002に格納されると、スキャンパラメータ8302の画像ファイルタイプ8307に従い、RAM2002に格納されている圧縮されたスキャン画像をファイル化する。つまり、スキャンシーケンス制御部8204は、ファイルシステム8206に対して、RAM2002に格納されている圧縮されたスキャン画像を画像ファイルタイプ8307で指定されたファイル形式でファイル化することを要求する。ファイルシステム8206は、画像ファイルタイプ8307に従い、RAM2002に格納されている圧縮された画像をファイル化し、システムバス2007を介してHDD2004に転送する。スキャンシーケンス制御部8204は、ファイル化された画像がHDD2004に格納されると、スキャナ2070に置かれた一枚の原稿の処理が終了した旨を示すスキャン終了通知をスキャン動作管理部8203に返す。
【０１１１】
この時点で、スキャナ2070上に未スキャンの原稿が存在し、ジョブマネジャ1519からのスキャン要求が存在する場合、スキャン動作管理部8203は、再び、DIS7102に格納されているスキャンパラメータ8302を用いてスキャンシーケンス制御部8204にスキャン動作を要求する。
【０１１２】
また、スキャナ2070上に未スキャンの原稿が存在しない場合、または、ジョブマネジャ1519からのスキャン要求が存在しない場合、スキャン動作管理部8203は、スキャン動作が終了した旨を示すスキャン終了通知をジョブマネジャ1519に発行する。
【０１１３】
［プリント動作］
デバイスI/F2020は、その内部にデュアルポートRAM（以下「DPRAM」と略す）を有し、このDPRAMを介してプリンタ2095へのパラメータ設定およびプリンタ2095の状態取得、並びに、プリント制御コマンドのやり取りを行う。さらに、デバイスI/F2020は、ビデオコントローラを有し、プリンタ2095からケーブル2096を経由して供給されるビデオクロックVCLKおよび水平同期信号HSYNCに合わせて、画像バス2008を介して供給される画像データ（ビデオデータ）をケーブル2096を介してプリンタ2095に送る。
【０１１４】
図20は上記の送信タイミングを示すタイミングチャートである。VCLKは常に供給され、HSYNCはプリントラインの開始に同期して供給される。ビデオコントローラは、設定された画像の幅(WIDTH)分のデータをRAM2002から読み出し、ビデオデータとしてケーブル2096に出力し、WIDTH分のビデオデータ出力を指定ライン(LINES)分繰り返した後、IMAGE_END割り込みを発生する。
【０１１５】
先に説明したとおり、アプリケーションプログラムから制御API1518にプリントジョブが指示されると、制御API1518は、その指示をジョブとしてコントローラレベルのジョブマネジャ1519に渡す。さらに、ジョブマネジャ1519は、ジョブの設定をDIS7102に格納し、プリンタマネジャ1526にジョブの開始を指示する。プリンタマネジャ1526は、ジョプを受け付けると、DIS7102から読み出したジョブの実行に必要な情報をプリンタドライバ1527およびDPRAMを介してプリンタ2095に設定する。
【０１１６】
画像が圧縮されている場合、プリンタマネジャ1526は、CODECマネジャ1520にその伸長を依頼する。CODECマネジャ1520は、依頼に従い、プリンタマネジャ1526から指示された伸長方法（JPEGやMMRなど）により画像ファイルをビットマップ画像へ伸長し、伸長した画像をRAM2002に格納する。
【０１１７】
図21はデバイスI/F2020の設定項目を示す図、図22はDPRAMを介した設定項目、制御コマンドおよびステータスを示す図である。
【０１１８】
次に、ビットマップ画像の印刷の具体例として、600dpiのプリンタ2095により、レターサイズ（11×8.5インチ）の二値画像、二頁分を一部プリントする動作を説明する。
【０１１９】
ビットマップ画像の準備終了後、プリンタマネジャ1526は、画像の幅、この場合8.5インチ側の画像データサイズ(WIDTH)を算出する。
WIDTH = 8.5×600/8 ≒ 630バイト
【０１２０】
次に、画像のライン数(LINES)を算出する。
LINES = 11×600 = 6,600ライン
【０１２１】
算出された値と、与えられた一頁目の画像が格納されているRAM2002のソースアドレスとを図21に示すWIDTH、LINESおよびSOURCEの設定項目に設定する。この時点で、デバイスI/F2020は、画像出力の用意は完了するが、プリンタ2095からHSYNCが供給されていないため（勿論VCLKは供給されている）画像データを出力しない。
【０１２２】
次に、プリンタマネジャ1526は、図22に示すDPRAMの所定のアドレスBookNoに出力部数である「1」を書き込む。その後、一頁目に対応する記録紙の供給要求FEED_REQを真にして、プリンタ2095によりIMAGE_REQが真にされるのを待ち、IMAGE_REQが真になるとFEED_REQを偽にし、IMAGE_STARTを真にする。IMAGE_STARTが真になるとプリンタ2095はHSYNCの供給を開始し、HSYNCを待っていたデバイスI/F2020から画像が出力される。
【０１２３】
プリンタ2095は、記録紙の後端を検出するとIMAGE_REQを偽にし、IMAGE_ENDを真にし、記録紙が排出されるとSHEET_OUTを真にする。プリンタマネジャ1526は、一頁目に対応するIMAGE_ENDが真になると、IMAGE_STARTを偽にし、二頁目のWIDTH、LINESおよびSOURCEをプリンタドライバ1527に設定し、再び、FEED_REQを真にして、IMAGE_REQが真になるのを待つ。
【０１２４】
プリンタ2095は、IMAGE_STARTが偽になるとIMAGE_ENDおよびSHEET_OUTを偽にする。二頁目に対応するIMAGE_REQが真になった後の動作は一頁目の動作と同じである。
【０１２５】
［画像スキャン時の自動濃度調整］
ユーザがUI1501に対してカラー画像および白黒画像の送信を指示すると、同報配信アプリケーションであるUniversal-send1504、制御API1518およびジョブマネジャ1519を介して、CODECマネジャ1520およびスキャナマネジャ1524にその指示が伝わる。カラー画像および白黒画像をスキャンする際のスキャナ画像処理部2080の処理はCODECマネジャ1520により設定される。
【０１２６】
図23は変倍部2084の詳細な構成例を示すブロック図である。変倍部2084は、RGB画像信号を受け取ると、入力セレクタ841により、受け取った画像信号を主走査変倍部842またはサンプリング部844へ入力する。主走査変倍部842は、ファーストインファーストアウトメモリ(FIFO)843を使用して、画像の主走査方向の変倍を行い、変倍後の信号をスキャナ画像処理部2080の後段へ渡す。
【０１２７】
一方、サンプリング部844はプリスキャン時に使用される。つまり、プリスキャン時にサンプリング部844は、原稿画像の下地レベルを調査するため原稿画像のサンプリングを行う。サンプリング密度は、CPU2001を介してサンプリング部844に設定することができる。
【０１２８】
図24は入力される原稿画像とサンプリングとの関係を示す図である。サンプリング部844には、画像信号とともに水平同期信号HSYNC、水平画像有効区間信号HENV、図24には示さない画像クロックVCLK、垂直同期信号VSYNCおよび垂直画像有効区間信号VENVが入力される。サンプリング部844は、水平方向に何画素ごとにサンプリングを行うかを決定するレジスタ、および、垂直方向に何ラインごとにサンプリングを行うかを決定するレジスタをもつ。HSYNCに同期して零にクリアされ、HENV区間のVCLKをカウントするカウンタの値が画素サンプリング間隔の倍数であり、かつ、VSYNCに同期して零にクリアされ、VENV区間のHSYNCをカウントするカウンタの値がラインサンプリング間隔の倍数であれば、そのタイミングで画素をサンプリングし、ヒストグラム作成格納部845に送る。図24に示すHSMPが水平方向のサンプリング信号であり、VSMPが垂直方向のサンプリング信号である。その結果、図24にハッチングで示す画素がサンプリングされる。
【０１２９】
ヒストグラム作成格納部845は、サンプリング部844から受け取った画像データからRGB画像信号それぞれのヒストグラムを作成する。図25は画像のヒストグラムの一例を示す図である。RGB画像信号は輝度信号であるからレベル0が黒を、レベル255が白を表す。図25の例は、紙が灰色で、黒文字が印刷されているような、新聞のような原稿画像のヒストグラムであり、新聞紙の下地を示すヒストグラムのピークが255から少し離れたレベルにあり、黒文字を示すヒストグラムのピークがレベル0の近傍にある。下地を示すピークから下地のレベルが求められ、その下地レベルが読み取り画像に反映されないように、原稿画像がスキャンされる。
【０１３０】
図26から図28は濃度データ用のガンマ補正カーブの例を示す図である。スキャン画像データは、テーブル2085により、ガンマ補正の前に輝度-濃度変換（対数変換）により濃度データに変換され、図26から図28に示しようなガンマ補正カーブが適用されて下地が除去される。また、スキャナ画像処理部2080から輝度データを出力する場合は図29から図31に示すような輝度データ用のガンマ補正テーブルにより下地を除去する。
【０１３１】
図32はCODECマネジャ1520の処理手順の一例を示すフローチャートである。
【０１３２】
CODECマネジャ1520は、プリスキャンによる自動濃度調整が指定されている場合、ステップS1で、変倍部2084の入力セレクタ841の出力をサンプリング部844側へ切り替えた後、スキャナマネジャ1524に準備完了の旨を伝える。ステップS2でプリスキャン動作が行われる。
【０１３３】
プリスキャン終了後、CODECマネジャ1520は、ステップS3で、ヒストグラム作成格納部845からRGBそれぞれのヒストグラムを取得し、ステップS4で、カラースキャン用および白黒スキャン用それぞれの下地レベルを計算する。具体的には、RGB信号それぞれに対して、頻度を16レベルずつにまとめる。つまり、レベル0から15までの頻度の和を配列要素0へ、16から31までの頻度の和を配列要素1へ、…、240から255までの頻度の和を配列要素16へ格納し、16段階のヒストグラムR[16]、G[16]およびB[16]（配列要素は0から15までの16個）に変換する。次に、下式に従い、これらの配列の中の配列要素13から15までの間でピークに対応する配列要素Rpeak、GpeakおよびBpeakを検出する。
Rpeak = max(R[I])
Gpeak = max(G[I])
Bpeak = max(B[I])
ただし、I = 13,14,15
【０１３４】
カラースキャン用にはこれらの中で最も小さい値を下地とばし値PeakCLとして保存し、白黒スキャン用にはGpeakを下地とばし値PeakBWとして保存する。
PeakCL = min(Rpeak,Gpeak,Bpeak)
PeakBW = Gpeak
【０１３５】
上記の処理が終了した時点でスキャンが可能になるので、CODECマネジャ1520は、ステップS5で、下地レベルの抽出が終了した旨を図17に示したスキャンシーケンス制御部8204に通知する。その後、スキャン指示があればステップS6からS7に進み、白黒スキャンの指示であればステップS8へ、カラースキャンの指示であればステップS9へ分岐する。
【０１３６】
ステップS8では、CODECマネジャ1520により、白黒スキャン用の下地とばし値PeakBWに応じて、スキャナ画像処理部2080のテーブル2085が設定される。例えば、PeakBW=15であれば図26に、PeakBW=14であれば図27に、また、PeakBW=13であれば図28に示すガンマ補正カーブがテーブル2085に設定される。
【０１３７】
また、ステップS9では、CODECマネジャ1520により、カラースキャン用の下地とばし値PeakCLに応じて、テーブル2085が設定される。例えば、PeakCL=15であれば図29に、PeakCL=14であれば図30に、PeakCL=13であれば図31に示すガンマ補正カーブがテーブル2085に設定される。
【０１３８】
続いて、CODECマネジャ1520により、ステップS10で白黒スキャンおよびカラースキャンに共通する設定、例えば変倍処理などが設定され、ステップS11で入力セレクタ841の出力が主走査変倍部842側に切り替えられた後、スキャナマネージャ1524に設定完了の旨が伝えられ、ステップS12でスキャン動作が行われる。
【０１３９】
CODECマネジャ1520は、スキャン動作が終了した後、ステップS13で画像の読み取り完了をスキャンシーケンス制御部8204に通知し、次のスキャン指示に対応するためにステップS16へ戻るが、次のスキャン指示がなければ処理を終了する。
【０１４０】
このように、本実施形態によれば、同一の原稿に対して、自動濃度調整を行ってカラー画像および白黒画像の読み取りを行う場合に、一回のプリスキャンで、カラー画像用の下地レベルおよび白黒画像用の下地レベルを取得することができるので、同一の原稿からカラー画像および白黒画像を読み取ろうとする度に自動濃度調整を行う必要がなく、処理速度を改善することができる。
【０１４１】
なお、上記下地の抽出方法は一例であり、カラー画像および/または白黒画像の読み取りに適切な下地の抽出方法であればどのような方法でもよい。
【０１４２】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１４３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（OS）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【０１４４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【０１４５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したソフトウェア構成図やフローチャートに対応するプログラムコードが格納されることになる。
【０１４６】
【発明の効果】
以上説明したように、本発明によれば、原稿画像の一回のプリスキャンにより、ヒストグラムを生成し、カラー画像用および白黒画像用の両方の下地情報を抽出するので、効率のよく下地情報を抽出することができる。その結果、同一原稿をカラー画像および白黒画像として読み取る際に自動濃度調整を適用した場合の画像読取時間を短縮することができる。
【図面の簡単な説明】
【図１】本実施形態の画像処理装置の構成例を示すブロック図、
【図２】画像入出力デバイスを示す図、
【図３】図1に示す操作部の構成例を示す図、
【図４】図1に示すスキャナ画像処理部の構成例を示すブロック図、
【図５】図1に示すプリンタ画像処理部の構成例を示すブロック図、
【図６】図1に示す画像圧縮部の構成例を示すブロック図、
【図７】図1に示す画像回転部の構成例を示すブロック図、
【図８】画像データの不連続アドレッシングによるデータ転送を説明する図、
【図９】データ転送された画像データをメモリに書き込む様子を示す図、
【図１０】図1に示すデバイスI/Fの構成例を示すブロック図、
【図１１】本実施形態の画像処理装置が接続されるネットワークシステム全体の構成例を示す図、
【図１２】画像処理装置1001のソフトウェア構成例を示すブロック図、
【図１３】アプリケーションの動作を説明するためのネットワーク構成の一例を示すブロック図、
【図１４】図1に示す操作部のLCDに表示される操作画面の一例を示す図、
【図１５】  DIS、ジョブマネジャ、スキャナマネジャおよびプリントマネジャの情報のやり取りを示す図、
【図１６】  DIS内部に保持される各種データベースを示す図、
【図１７】スキャン動作に関するソフトウェアの構造例を示す図、
【図１８】スキャン動作管理部がジョブマネジャから受け取るテーブルデータを示す図、
【図１９】スキャン動作管理部がDISから受け取るスキャンパラメータを示す図、
【図２０】デバイスI/Fによるビデオデータの送信タイミングを示す図、
【図２１】デバイスI/Fの設定項目を示す図、
【図２２】  DPRAMを介した設定項目、制御コマンドおよびステータスを示す図、
【図２３】図4に示す変倍部の詳細な構成例を示すブロック図、
【図２４】入力される原稿画像とサンプリングとの関係を示す図、
【図２５】画像のヒストグラムの一例を示す図、
【図２６】濃度データ用のガンマ補正カーブの例を示す図、
【図２７】濃度データ用のガンマ補正カーブの例を示す図、
【図２８】濃度データ用のガンマ補正カーブの例を示す図、
【図２９】輝度データ用のガンマ補正カーブの例を示す図、
【図３０】輝度データ用のガンマ補正カーブの例を示す図、
【図３１】輝度データ用のガンマ補正カーブの例を示す図、
【図３２】CODECマネジャの処理手順の一例を示すフローチャートである。
【図１】
0003880277.tif 000002
【図２】
0003880277.tif 000003
【図３】
0003880277.tif 000004
【図４】
0003880277.tif 000005
【図５】
0003880277.tif 000006
【図６】
0003880277.tif 000007
【図７】
0003880277.tif 000008
【図８】
0003880277.tif 000009
【図９】
0003880277.tif 000010
【図１０】
0003880277.tif 000011
【図１１】
0003880277.tif 000012
【図１２】
0003880277.tif 000013
【図１３】
0003880277.tif 000014
【図１４】
0003880277.tif 000015
【図１５】
0003880277.tif 000016
【図１６】
0003880277.tif 000017
【図１７】
0003880277.tif 000018
【図１８】
0003880277.tif 000019
【図１９】
0003880277.tif 000020
【図２０】
0003880277.tif 000021
【図２１】
0003880277.tif 000022
【図２２】
0003880277.tif 000023
【図２３】
0003880277.tif 000024
【図２４】
0003880277.tif 000025
【図２５】
0003880277.tif 000026
【図２６】
0003880277.tif 000027
【図２７】
0003880277.tif 000028
【図２８】
0003880277.tif 000029
【図２９】
0003880277.tif 000030
【図３０】
0003880277.tif 000031
【図３１】
0003880277.tif 000032
【図３２】
0003880277.tif 000033