(57)【要約】【課題】画像の小さなブロックを利用して画像を編集または処理すること。【解決手段】小さなブロックによる処理により、画像全体のスキャンの終了前にまたは画像全体がメモリもしくはバッファにロードされる前に画像処理を開始することができる。また、印刷する場合に編集された画像全てが生成されることを待つことなく、小さなブロックが完成すれば直ちに印刷プロセスを開始することができる。ブロックは、ＤＭＡバッファのサイズ，ＤＭＡバッファのサイズの整数倍のサイズ，またはＤＭＡバッファのサイズに均一に分割可能なサイズであることが好ましい。実行される画像処理機能は、他の画像の全てまたは一部を繰り返し使用すること，または論理積または論理和のような機能を実行することによる論理的な複数の画像の組み合わせによる画像の生成を含む。【選択図】        図８
2007129741.tif 000002
【特許請求の範囲】
【請求項１】
第１の端部および前記第１の端部に垂直な第２の端部を有した画像を形成する画像形成方法であって、
画像の任意のセクションを選択する第１の工程と、
選択された前記セクションを複数のブロックからなる行および列に分割する第２の工程と、
選択された前記セクションの最初の行の各ブロックを、形成される前記画像の前記第１の端部に到達するまでメモリに書き込む第３の工程と、
選択された前記セクションの続く行を、形成される前記画像の前記第１の端部に到達するまで順次メモリに書き込み、形成される前記画像の前記第２の端部まで到達していないが、選択された前記セクションの最終行に到達した場合、形成される前記画像の前記第２の端部に到達するまで、選択された前記セクションの各行を再び前記最初の行の各ブロックから順次書き込む第４の工程と、
を含むことを特徴とする画像形成方法。
【請求項２】
前記第３および第４の工程は、前記行のそれぞれが前記画像の選択されたセクションの対応する行の少なくとも一つのブロックについて１を超える数のコピーを含むように、前記行をそれぞれ書き込むことを特徴とする請求項１に記載の画像形成方法。
【請求項３】
前記第３および第４の工程は、前記行の端部が選択された前記画像のセクションの端部以外のブロックを有するように、前記行を書き込むことを特徴とする請求項１に記載の画像形成方法。
【請求項４】
第１の画像の画像データのブロックを読み出す第１の工程と、
第２の画像の画像データの対応するブロックを読み出す第２の工程と、
前記第１および第２の画像の画像データの対応するブロックを論理的に結合する第３の工程と、
プリントバッファに前記論理的に結合された画像データのブロックを書き込む第４の工程と、
画像データのＭ本の完全な主走査ラインが前記プリントバッファに書き込まれた後、前記プリントバッファに記憶されている画像データの各前記ブロックを印刷する第５の工程と、
を含むことを特徴とする画像結合方法。
【請求項５】
さらに、前記論理的に結合されたブロックを前記プリントバッファに書き込む前に、前記論理的に結合されたブロックを回転させる第６の工程を含み、
前記第４の工程は、前記ブロックが読み出される前に前記ブロックの向きを基準にして前記ブロックの位置を回転させることができるように、回転されかつ論理的に結合された画像データの前記ブロックをプリントバッファに書き込むことを特徴とする請求項４に記載の画像結合方法。
【請求項６】
第１の端部および前記第１の端部に垂直な第２の端部を有した画像を形成する画像形成システムであって、
画像の任意のセクションを選択する第１の手段と、
選択された前記セクションを複数のブロックからなる行および列に分割する第２の手段と、
選択された前記セクションの最初の行の各ブロックを、形成される前記画像の前記第１の端部に到達するまでメモリに書き込む第３の手段と、
選択された前記セクションの続く行を、形成される前記画像の前記第１の端部に到達するまで順次メモリに書き込み、形成される前記画像の前記第２の端部まで到達していないが、選択された前記セクションの最終行に到達した場合、形成される前記画像の前記第２の端部に到達するまで、選択された前記セクションの各行を再び前記最初の行の各ブロックから順次書き込む第４の手段と、
を備えたことをを特徴とする画像形成システム。
【請求項７】
前記第３および第４の手段は、前記行のそれぞれが前記画像の選択されたセクションの対応する行の少なくとも一つのブロックについて１を超える数のコピーを含むように、前記行をそれぞれ書き込むことを特徴とする請求項６に記載の画像形成システム。
【請求項８】
前記第３および第４の手段は、前記行の端部が選択された前記画像のセクションの端部以外のブロックを有するように、前記行を書き込むことを特徴とする請求項６に記載の画像形成システム。
【請求項９】
第１の画像の画像データのブロックを読み出す第１の手段と、
第２の画像の画像データの対応するブロックを読み出す第２の手段と、
前記第１および第２の画像の画像データの対応するブロックを論理的に結合する第３の手段と、
プリントバッファに前記論理的に結合された画像データのブロックを書き込む第４の手段と、
画像データのＭ本の完全な主走査ラインが前記プリントバッファに書き込まれた後、前記プリントバッファに記憶されている画像データの各前記ブロックを印刷する第５の手段と、
を備えたことを特徴とする画像結合システム。
【請求項１０】
さらに、前記論理的に結合されたブロックを前記プリントバッファに書き込む前に、前記論理的に結合されたブロックを回転させる第６の手段を備え、
前記第４の手段は、前記ブロックが読み出される前に前記ブロックの向きを基準にして前記ブロックの位置を回転させることができるように、回転されかつ論理的に結合された画像データの前記ブロックをプリントバッファに書き込むことを特徴とする請求項９に記載の画像結合システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル複写機または多機能画像処理装置（multiple-function image processing device）に関し、特に、スキャンされ、記憶されまたは印刷される画像の画像処理（編集）に関する（ブロックを基準として動作するディジタル複写機の画像処理）。また、本発明は、画像の任意のセクションを繰返し使用することによって画像を形成すること，および２以上の画像を論理的に結合することに関し、これらの全ての処理は画像の小さなブロックを用いて実行される。
【背景技術】
【０００２】
ディジタル複写機は、画像を走査し、走査して得た画像のディジタル表現をメモリに記憶し、さらに、その画像のディジタル表現を印刷する画像処理装置である。ところで、画像のディジタル表現を記憶することはないが、感光体ドラムまたは感光体ベルト上に画像を形成するためにミラーおよびレンズのような光学コンポーネントを使用する従来のアナログ複写機による速度と同様な速度でデジタル化された画像を印刷するためには、非常に大量のデータを高速度で伝送しなければならない。このように大量のデータを速く転送する必要性に応じて、現在のデータ処理機能およびストレージデバイスの機能の向上が図られている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ディジタル複写機は、スキャンされ、記憶され、または印刷されることになる画像データを処理（編集）する必要がある場合がある。このような機能を実現する従来の方法は、処理対象の画像をメモリにロードし、そしてこの画像を処理することである。しかしながら、本発明の発明者らは、処理対象の画像の全てがメモリにロードされることを待つのは時間の無駄であることに気がついた。また、画像処理機能は、ディジタル複写機がある特定の期間にわたって生成することが可能なコピー枚数を制限するディジタル複写機の欠点である場合がある。
【０００４】
本発明は上記に鑑みてなされたものであって、画像処理の高速化を図ったシステムを提供することを目的とする。
【０００５】
また、本発明は上記に鑑みてなされたものであって、画像の小さなブロックを処理することによって画像を処理するディジタル複写機および方法を提供することを目的とする。
【０００６】
また、本発明は上記に鑑みてなされたものであって、画像全体がバッファに記憶されていなくても画像処理プロセスを開始可能なディジタル複写機ならびに画像処理方法および画像処理システムを提供することを目的とする。
【０００７】
さらに、本発明は上記に鑑みてなされたものであって、別の画像の全てまたは一部を繰返し使用して画像を生成する処理、および論理積または論理和のような論理演算を実行する処理のうち、少なくとも一つを実行するディジタル複写機およびディジタル複写機の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述した目的や他の目的は、ディジタル複写機およびブロックベースの処理方法で実現される。画像の効率的な転送を実現するために、ブロックのサイズは、ダイレクトメモリアクセスバッファのサイズ，ＤＭＡバッファのサイズの整数倍のサイズ，またはＤＭＡバッファのサイズに均一に分割可能なサイズであることが好ましい。
【０００９】
本発明で実行可能な画像処理として、画像反復機能がある。これにより、別の画像の全てまたは一部を繰り返し利用することによって画像を構築することができるようにしている。また、画像反復機能は、小さなブロックを利用し、オリジナル画像またはリピートされるセクションの小さなブロックを繰り返し生成することによって実行される。画像反復機能は、用紙節約オペレーションとして利用することができ、画像が普通のページサイズの半分またはそれより小さい場合、画像を１ページ上に２、３回繰り返し生成することにより、利用される用紙の量を減らすことができる。
【００１０】
リピートされた部分または画像全体を使用して生成される画像は、選択されたセクションのブロックの最初の行を、形成される画像の第１の端部に達するまでメモリに書き込むことによって生成される。その後、選択されているセクションの続く行が、画像の最後に達するまでメモリに書き込まれる。形成される画像がさらなる画像データの行を必要とする場合、繰り返される画像の選択されたセクションの最初の行のブロックから再び開始し、続いて残りの行のブロックを最終の画像が構築されるまで使用することによって画像が構築される。
【００１１】
さらに、本発明で実行される場合のある別の画像処理機能として、２以上の画像を論理的に結合する機能がある。たとえば複数の画像の論理積または論理和をとることにより、複数の画像が論理的に結合されることになる。排他的論理和のような他の論理演算も必要に応じて実行できるようにしても良い。
【００１２】
ブロックベースで様々な画像処理機能を実行することによって、処理速度の向上を図ることができ、そして、画像が全て読み取られることや、読み取られた画像が全てメモリに書き込まれることを待つ必要をなくすことができる。画像処理の間に生成された画像を印刷する場合、プリンタの主走査方向の行にわたってブロックが生成される。これにより、プリンタは、画像データの最初の行が生成されると直ちに印刷処理を開始することができる。
【００１３】
すなわち、請求項１の画像形成方法は、第１の端部および前記第１の端部に垂直な第２の端部を有した画像を形成する画像形成方法であって、画像の任意のセクションを選択する第１の工程と、選択された前記セクションを複数のブロックからなる行および列に分割する第２の工程と、選択された前記セクションの最初の行の各ブロックを、形成される前記画像の前記第１の端部に到達するまでメモリに書き込む第３の工程と、選択された前記セクションの続く行を、形成される前記画像の前記第１の端部に到達するまで順次メモリに書き込み、形成される前記画像の前記第２の端部まで到達していないが、選択された前記セクションの最終行に到達した場合、形成される前記画像の前記第２の端部に到達するまで、選択された前記セクションの各行を再び前記最初の行の各ブロックから順次書き込む第４の工程と、を含むものである。
【００１４】
また、請求項２の画像形成方法は、請求項１に記載の画像形成方法において、前記第３および第４の工程が、前記行のそれぞれが前記画像の選択されたセクションの対応する行の少なくとも一つのブロックについて１を超える数のコピーを含むように、前記行をそれぞれ書き込むものである。
【００１５】
また、請求項３の画像形成方法は、請求項１に記載の画像形成方法において、前記第３および第４の工程が、前記行の端部が選択された前記画像のセクションの端部以外のブロックを有するように、前記行を書き込むものである。
【００１６】
また、請求項４の画像結合方法は、第１の画像の画像データのブロックを読み出す第１の工程と、第２の画像の画像データの対応するブロックを読み出す第２の工程と、前記第１および第２の画像の画像データの対応するブロックを論理的に結合する第３の工程と、プリントバッファに前記論理的に結合された画像データのブロックを書き込む第４の工程と、画像データのＭ本の完全な主走査ラインが前記プリントバッファに書き込まれた後、前記プリントバッファに記憶されている画像データの各前記ブロックを印刷する第５の工程と、を含むものである。
【００１７】
また、請求項５の画像結合方法は、請求項４に記載の画像結合方法において、さらに、前記論理的に結合されたブロックを前記プリントバッファに書き込む前に、前記論理的に結合されたブロックを回転させる第６の工程を含み、前記第４の工程が、前記ブロックが読み出される前に前記ブロックの向きを基準にして前記ブロックの位置を回転させることができるように、回転されかつ論理的に結合された画像データの前記ブロックをプリントバッファに書き込むものである。
【００１８】
また、請求項６の画像形成システムは、第１の端部および前記第１の端部に垂直な第２の端部を有した画像を形成する画像形成システムであって、画像の任意のセクションを選択する第１の手段と、選択された前記セクションを複数のブロックからなる行および列に分割する第２の手段と、選択された前記セクションの最初の行の各ブロックを、形成される前記画像の前記第１の端部に到達するまでメモリに書き込む第３の手段と、選択された前記セクションの続く行を、形成される前記画像の前記第１の端部に到達するまで順次メモリに書き込み、形成される前記画像の前記第２の端部まで到達していないが、選択された前記セクションの最終行に到達した場合、形成される前記画像の前記第２の端部に到達するまで、選択された前記セクションの各行を再び前記最初の行の各ブロックから順次書き込む第４の手段と、を備えたものである。
【００１９】
また、請求項７の画像形成システムは、請求項６に記載の画像形成システムにおいて、前記第３および第４の手段が、前記行のそれぞれが前記画像の選択されたセクションの対応する行の少なくとも一つのブロックについて１を超える数のコピーを含むように、前記行をそれぞれ書き込むものである。
【００２０】
さらに、請求項８の画像形成システムは、請求項６に記載の画像形成システムにおいて、前記第３および第４の手段が、前記行の端部が選択された前記画像のセクションの端部以外のブロックを有するように、前記行を書き込むものである。
【００２１】
また、請求項９の画像結合システムは、第１の画像の画像データのブロックを読み出す第１の手段と、第２の画像の画像データの対応するブロックを読み出す第２の手段と、前記第１および第２の画像の画像データの対応するブロックを論理的に結合する第３の手段と、プリントバッファに前記論理的に結合された画像データのブロックを書き込む第４の手段と、画像データのＭ本の完全な主走査ラインが前記プリントバッファに書き込まれた後、前記プリントバッファに記憶されている画像データの各前記ブロックを印刷する第５の手段と、を備えたものである。
【００２２】
また、請求項１０の画像結合システムは、請求項９に記載の画像結合システムにおいて、さらに、前記論理的に結合されたブロックを前記プリントバッファに書き込む前に、前記論理的に結合されたブロックを回転させる第６の手段を備え、前記第４の手段が、前記ブロックが読み出される前に前記ブロックの向きを基準にして前記ブロックの位置を回転させることができるように、回転されかつ論理的に結合された画像データの前記ブロックをプリントバッファに書き込むものである。
【発明の効果】
【００２３】
本発明によれば、画像処理の高速化を図ったシステムを提供すること、画像の小さなブロックを処理することによって画像を処理するディジタル複写機および方法を提供すること、画像全体がバッファに記憶されていなくても画像処理プロセスを開始可能なディジタル複写機ならびに画像処理方法および画像処理システムを提供すること、さらに、別の画像の全てまたは一部を繰返し使用して画像を生成する処理，および論理積または論理和のような論理演算を実行する処理のうち、少なくとも一つを実行するディジタル複写機およびディジタル複写機の制御方法を提供すること等が可能になる。
【発明を実施するための最良の形態】
【００２４】
図面を参照しつつ本発明の実施の形態について説明することにするが、いくつかの図において、同一または対応する部分については同一の符号を付すことにする。
【００２５】
図１は、本発明にかかるディジタル複写機または複合機（multi-function device）のシステムアーキテクチャを示す図である。ディジタル複写機は、画像を走査し、画像のディジタル表現（digital representation）を作成し、そのディジタル表現を少なくとも一時的にメモリまたはバッファに記憶して、画像のディジタル表現を印刷する機能を有するデバイスである。ディジタル複写機は特殊目的デバイス（special purpose device）であり、少なくとも１分当たりに１０〜１５ページコピーできる機能を有することが好ましいとされるが（以下、１分当たりのコピー枚数（pages per minute）のことを「ｐｐｍ」と記述する）、本発明にかかるディジタル複写機はコピー速度約４５ｐｐｍ用に設計されているものとする。
【００２６】
ただし、ディジタル複写機のコピー速度が３５ｐｐｍと同じくらい遅くまたは５５ｐｐｍと同じくらい速くても良いが、本発明にかかるアーキテクチャによって５５ｐｐｍより速い速度および３５ｐｐｍより遅い速度を含むあらゆる所望の速度を実現することも可能である。図１において、マザーボード１０上には、ＣＰＵ１２，およびＣＰＵ１２をシステムバス４４およびメモリ１６に接続するホストブリッジ１４が搭載されている。ＣＰＵ１２は、任意の種類のプロセッサまたはマイクロプロセッサとして実装され得る。
【００２７】
本発明を具体化したものにおいては、ＮＥＣのＶＲ４３００ＲＩＳＣマイクロプロセッサを利用することが好ましいが、後に開発されるＮＥＣ製のマイクロプロセッサ，インテル・モトローラ・日立の各社製のマイクロプロセッサ，または他のメーカー製のマイクロプロセッサもしくはプロセッサを含むあらゆる他のマイクロプロセッサを本発明において使用することにしても良い。マザーボード１０は、ペンティアム（登録商標）互換プロセッサ（もしくはそれ以上）または他の種類のプロセッサを有し、ＰＣとの互換性を持つマザーボードを含むあらゆる所望のもので実現可能なものである。
【００２８】
ここでは、マザーボード１０を図示することにしたが、システムはこのようなマザーボードの構造または構成を必要とするものではなく、また、このようなマザーボードの構造または構成に限定されるものではない。たとえば、必要な場合、ＰＣＩバスに対する全てのインタフェースは、各ＰＣＩバススロットを介してマザーボード１０上に存在するものであっても良い。また、マザーボード１０無しで図１の各デバイスが接続されるようにしても良い。
【００２９】
ホストブリッジ１４はメモリ１６のメモリコントローラとして機能し、また、バス４４とＣＰＵ１２との間のホストブリッジまたはインタフェースとして機能するものである。本発明の好適な実施の形態において、ホストブリッジ１４は、ＮＥＣ社製のＶＲＣ４３７３ＰＣＩブリッジおよびメモリコントローラとして実装されるが、本発明はこのホストブリッジおよびメモリコントローラに限定されるべきものではない。
【００３０】
また、本発明の好適な実施の形態において、ＤＭＡ（direct memory access）オペレーションは、データを転送するデバイスによって制御される。たとえば、スキャンユニット２４もしくはプロットユニット２６からデータを転送する場合またはスキャンユニット２４もしくはプロットユニット２６にデータを転送する場合に、ＤＭＡオペレーションはインタフェース２２で制御されるようにすることが好ましい。本発明の好適な実施の形態において、ＤＭＡ転送は３２バイトのブロック単位で実行される。また、３２バイトＤＭＡ転送サイズに従って、ＤＭＡバッファとして３２バイトのサイズのものを実装することにしても良い。
【００３１】
３２バイトサイズの転送は便利なサイズであり、インタフェース２２内で処理される画像の小さなブロックも３２バイトであることが好ましい。しかし、ＤＭＡ転送のサイズは、３２バイトより大きいか小さいかにかかわらず、いかなる所望のサイズであっても良い。ＤＭＡ転送のサイズおよび／またはＤＭＡ転送のために使用される一以上のバッファのサイズは、システムアーキテクチャに基づいて選択される。一般に、ＤＭＡオペレーションで転送されるデータは、送信デバイスにおいてバッファから読み出され、受信デバイスにおいてバッファに書き込まれる。ＤＭＡ転送は図１のバス４４に接続されているいずれのデバイス間においても発生する可能性がある。
【００３２】
ＤＭＡ転送のサイズを決定する際に要求に応じて調査可能なファクタには、アクセスされるデータのサイズ，バスのバースト長のような転送バースト長（transfer burst length），およびアクセス機能が含まれる。これらは非制限ファクタであり、他のいかなるファクタを利用してＤＭＡ転送機能およびパラメータを選択することにしても良い。図１のシステムにおいて、３２バイトのブロック単位でデータを転送することにより、非常に効率的に画像を転送することが可能になる。このように、本発明の機能は、ＤＭＡコントローラのバッファと同一のサイズを有するブロック単位で画像を転送（および処理）することである。
【００３３】
また、効果的ではないかもしれないが、画像を処理する際に使用されるブロックのサイズをＤＭＡバッファのサイズの倍数にし、または分割したもの全てがＤＭＡバッファのサイズとなるようにすると効率的である。たとえば、３２バイトのＤＭＡバッファに対し、ブロックのサイズは６４バイトであっても良く、また１６バイトであっても良い。これに代えて、他のブロックサイズまたはＤＭＡ転送サイズを使用することにしても良い。なお、ＮＥＣ社製のＶＲＣ４３７３  ＰＣＩブリッジおよびメモリコントローラの設計仕様，機能および性能は、公に入手可能ないくつかの文書で明らかにされており、それらは参照としてここに援用される。
【００３４】
ホストブリッジ１４は、標準バス、より好ましくはＰＣＩバスであるバス４４を接続するものである。標準バスまたは業界標準バス（工業標準バス）は、ある規格を満足するバスである。規格は１９９７年のマイクロソフトプレスのコンピュータディクショナリー（参照として援用される）で示されているように定義される。規格は、二つの異なる種類の規格のいずれかである場合がある。第１の種類の規格は、非商業的組織または政府組織によって認められた正当な（法律上の）技術的ガイドライン（de jure technical guideline）であり、ハードウエア開発またはソフトウエア開発の領域において均一性を確立するために使用されるものである。
【００３５】
規格は、既存の方法，アプローチならびに技術移転および技術開発の集中的な研究の後、共同グループまたは委員会によって起草された仕様書に基づく、形式的なプロセスの結果である。提案された規格は、認可されている組織によって後に批准されまたは承認され、また、その規格に基づく商品が市場においてだんだん普及していくように、時間が経つにつれてコンセンサスによって採択される。ＰＣＩバスの規格は、一種の正当な（de jure）技術的ガイドライン規格である。
【００３６】
これに対し、ある規格は、単一の会社によって製品または理念が開発され、成功と模倣を通じて標準からの逸脱が互換性の問題を引き起こすか、または市場性を制限する程広く使用されるようになる場合に生じるハードウエア開発またはソフトウエア開発に関する事実上の（de facto）技術的ガイドラインである。このようにして作られる非常に非公式な規格の種類には、たとえばヘイズコンパチブルモデムおよびＩＢＭ  ＰＣ互換コンピュータがある。
【００３７】
本発明の好適な実施の形態において、標準バス４４はＰＣＩバス規格を使用して実装される。ＰＣＩバスは、ＰＣＩ小研究グループ（ＳＩＧ：Special Interest Group）によって開発および承認されたバスである。この定義は、本明細書の作成時点でＰＣＩ  ＳＩＧで承認されているＰＣＩ仕様を含んでおり、また、後に承認されるＰＣＩバスを含んでいる。現在、ＰＣＩ  ＳＩＧによって、ＰＣＩ仕様書改訂版２．１およびＰＣＩブリッジ仕様書改訂版１．０が承認されており、これらは参照としてここに援用される。
【００３８】
加えて、ＰＣＩバス仕様書バージョン２．２の最終的なドラフトが存在しており、それは本発明で利用することが可能なものであることから、ここに参照として援用される。さらに、二つの新たなＰＣＩバス仕様書、即ちＰＣＩ−Ｘ仕様書およびＭｉｎｉ  ＰＣＩ仕様書（これらは参照としてここに援用される）が検討され、承認のプロセスに入っている。さらに、ＰＣＩ互換カードまたはインタフェースに対応しているいずれのバスも、ＰＣＩバスとみなし得る。本発明を具現化したものにおいて、バスは６４ビット長で、６６ＭＨｚで動作するものが好ましいが、バスに対応して速度（速いおよび遅い）および長さ（長いおよび短い）を選択して使用するようにすることにしても良い。
【００３９】
本発明の好適な実施の形態においては、ＰＣＩバス４４がＣＰＵ１２に直接接続されているホストブリッジ１４に直接接続されている。したがって、バス４４は、マザーボード１０上に少なくとも部分的に搭載可能であり、または、これに代えて、マザーボード１０上に完全に搭載されるようにすることも可能である。本発明の一実施の形態において、バス４４はＰＣＩバスであるが、本発明の他の実施の形態において、設計者またはユーザの要求事項を満足する他のあらゆる所望のバスとしてバス４４を実装するようにしても良く、また、バス４４は業界標準バスであっても良いし、業界標準バスでなくても良い。
【００４０】
メモリ１６は、ＣＰＵ１２で実行される計算機命令を記憶するためや、処理される画像を記憶するために利用される作業領域メモリおよび／またはランダムアクセスメモリ（ＲＡＭ）である。メモリ１６は、ファーストページＤＲＡＭ，ＥＤＯ  ＲＡＭ，同期ＤＲＡＭ，およびフラッシュメモリ，またはそれらの組み合わせ等、あらゆる種類のメモリであっても良い。図１においては特に図示していないが、マザーボード１０は、ディジタル複写機をブートアップし，電源オンし，リセットする場合に使用される数種類のブートメモリを通常有している。
【００４１】
ブートメモリは、フラッシュメモリもしくはフラッシュＲＯＭ，ＲＯＭ，ディスクまたは他の不揮発性メモリのような任意の種類の不揮発性メモリを利用している。ブートメモリはメモリ１６の一部、ホストブリッジ１４に接続される異なるメモリ、ホストブリッジ１４内に含まれるもの、ＣＰＵ１２とホストブリッジ１４との間に接続されるもの、ＣＰＵ１２に直接接続されるものもしくはＣＰＵ１２の一部であるもの、または他のあらゆる所望の場所に存在するものであっても良い。
【００４２】
メモリ１６は、半導体メモリチップのような一以上のメモリチップを使用して実装可能なものである。したがって、本発明は、画像データおよび計算機命令の両方を同一のメモリチップに記憶することを含むものである。また、本発明は、画像を保存するための物理アドレスの範囲が計算機命令を記憶するために使用される物理アドレスの範囲に隣接するようにして実現可能なものである。
【００４３】
図１のシステムアーキテクチャの新規な機能は、統合メモリ（unified memory）１６を使用して画像データおよびＣＰＵ１２の命令を記憶することである。仮想メモリの概念を使用することにより、メモリ１６中のＲＡＭの限られた量を効率的に使用し、画像データおよび命令の両方を記憶することが可能になる。メモリ１６内に記憶されているデータが、インタフェース１８に接続されているハードディスクドライブのような大容量記憶装置２０にページングされ、そして、その大容量記憶装置２０からページングされるようにすることも可能である。仮想メモリシステムは、計算機命令と画像データとの間において、必要に応じてメモリ１６を動的に割り当てる。
【００４４】
仮想メモリシステムは、ＣＰＵおよびＣＰＵのオペレーティングシステムを利用して実現される。このように、ＣＰＵまたはオペレーティングシステムと協力したＣＰＵは、仮想メモリコントローラとみなし得る。これに代えて、仮想メモリコントローラが追加のコンポーネントを使用するようにすることも可能であり、必要に応じて、仮想メモリコントローラをＣＰＵと別々のものにしても良い。本発明の好適な実施の形態において、利用されるオペレーティングシステムはＬＩＮＵＸであり、たとえばバージョン１．３．９４を使用して実装可能であるが、ＬＩＮＵＸの他のバージョン，またはマイクロソフト社のウインドウズオペレーティングシステムを含む他のあらゆるオペレーティングシステムを使用することにしても良い。
【００４５】
また、本発明を効率的に実現するため、計算機命令および画像データのためのメモリ１６の割り当てを必要に応じて変更することが可能である。たとえば、追加の画像データをメモリ１６にページングすることができるように、ＣＰＵ１２の命令をメモリ１６外にページングするようにすることも可能であり、反対に、ＣＰＵ１２の命令をメモリ１６にページングすることができるように、追加の画像データをメモリ１６外にページングするようにすることも可能である。
【００４６】
本発明で使用可能な仮想メモリの実装および使用に関する詳細については、「The indispensable Pentium Book」, by Hans-Peter Messmer, Addison-Wesley, 1995, pp.207-218および「Computer Architecture and Parallel Processing」, by Hwang et al, 1984, pp.80-98の該当個所において明らかにされており、これらは参照としてここに援用される。
【００４７】
本発明の仮想メモリシステムは、計算機命令（コード）および画像データをメモリ１６にスワップすると共に、メモリ１６外にスワップするが、特定のコードおよび特定のデータをメモリ１６中に保持しておくことが好ましく、さらに必要とされるかもしれない（たとえば、メモリ１６におけるメモリの複数のセクションをロックし、それらがページングまたはスワッピングされないようにする）。
【００４８】
そのようなコードおよびデータは、オペレーティングシステムの要素である場合がある。アプリケーションコードおよびデータは、通常、それら全体においてスワッピングおよびページングされる。物理メモリ（たとえばメモリ１６）の相当の部分は、オペレーティングシステムによって所定のサイズのフレームのセットになるように概念的にセグメント化される。物理メモリのこの部分は、通常、ページングメモリ（paged memory）と呼ばれるものである。オペレーティングシステムと同様にアプリケーションについても、抽象アドレス空間（abstract address space）にプログラムされるようにしても良い。
【００４９】
コンパイラ（compiler）およびリンカ（linker）は協力してそのようなプログラムをコンパイルし、かつリンクすることによって生成された様々なコードおよびデータセグメントに仮想アドレスを割り当てる。アドレスは、各プログラムオブジェクトが隣接する線形のアドレス空間（linear address space）に存在するように割り当てられる。なお、線形のアドレス空間は始めと終わりを有するものである。また、この全アドレス空間はプロセス専用であり、オペレーティングシステムによって「ページ」のセットになるように概念的にセグメント化される。
【００５０】
「ページ」は「フレーム」のサイズと同一サイズであることが好ましい。要求があった場合、オペレーティングシステムは、要求された「ページ」を「フレーム」に配置し、メモリ管理ユニット（ＭＭＵ：Memory Management Unit）がリファレンスを通じてアドレス変換を実行するように設定する。このような全体のメカニズムおよびオペレーションは、アプリケーションプログラムに見えるものではない。
【００５１】
オペレーティングシステムは、それ自身で占有するある量の物理メモリを確保し、起動時においてメモリのその領域にそれ自身のオペレーションのための基本的なオブジェクトを配置する。この領域はページングされない。それは、通常、ノンページングメモリ（non-paged memory）と呼ばれる。アプリケーションプログラムを起動する間、オペレーティングシステムはアプリケーションコードおよびデータの数ページを任意に選択される物理メモリフレームに配置し、アドレス変換のためにＭＭＵをセットアップする。
【００５２】
この初期設定は、一般にワーキング設定と呼ばれるものである。アプリケーションが実行を開始すると、アプリケーションが仮想アドレスに対する参照を作成することにしても良く、それによってオペレーティングシステムがハードウエアの変換をセットアップする必要をなくすることが可能になる。そのような参照が発生する場合、例外が発生する。そのような例外イベントはページフォルト（page-fault）として知られている。ページフォルトが発生する場合、オペレーティングシステムが介入してページフォルトを修復する。そのような修復は、以下のオペレーションを含むものである。
【００５３】
（１）参照が作成されたページの位置を求める。
（２）ハードディスクから有効な物理メモリに必要なページをページングする。（３）ＭＭＵハードウエアに新たなページのためのアドレス変換をインストールする。
（４）アプリケーションのプロセスの実行を再開する。
【００５４】
オペレーティングシステムは、「ページテーブル（page-table）」を保持することにより、それが正しいオペレーションならびにアプリケーションおよびデータの保全を確実にするために使用するいくつかの関連付けられたフラグを持つだけでなく、ページフォルトの修復速度の向上を助ける。現代のマイクロプロセッサのような大きなアドレス空間のマシンの場合、単一のページテーブルが非常に長くなることがあり得、大量の物理メモリを拘束する可能性がある。
【００５５】
それゆえ、ページサイズのページテーブル（page-sized page-table）をいくつか使用して、各ページテーブルをページングすることができるようにしても良い。全てのページテーブルを把握するため、ページディレクトリの階層が使用される。多くの場合、オペレーティングシステムは物理メモリページフレームを解放する必要がある。オペレーティングシステムは、選択されたフレームからハードディスクにページを追い出すことによって、物理メモリページフレームを解放する。
【００５６】
任意のプロセスまたはオペレーティングシステムのための任意の時間に物理メモリに存在するページ数は、そのときの必要性に基づいてオペレーティングシステムによって動的に制御される。システムが何らかの理由で物理メモリを使い切ってしまいそうになった場合、システムは通常、スワッピングまたはページングと呼ばれるオペレーションを介して物理メモリを解放する。なお、あるページが物理メモリからスワップされることがないようにすることは好ましい場合がある。
【００５７】
たとえば、ＤＭＡバッファ中の画像データは、最終的に（または直ちに）必要とされることがわかっている。そのため、この画像データを物理メモリ中に割り当て、決して解放されることがないようにすることができる。すなわち、ノンページングメモリに置くということである。しかし、アプリケーションプログラムがこのデータにアクセスすることを必要とするため、仮想アドレス空間からアクセスできるようにしなければならない。さらに、一以上のアプリケーションが同時に同一のデータを必要とする場合もある。
【００５８】
このためのある解決案は、カーネル空間（ノンページングメモリ）からユーザ空間にデータをコピーすることである。それは、必要とされる場合に、物理的なＤＭＡバッファを必要に応じてリクエストしているプロセスのアドレス空間にマッピングする場合があることから、相当能率が悪い。しかし、そのようにマッピングされたページは、ページングされるべきではない。
【００５９】
図１の大容量記憶装置２０は、ハードディスクドライブを使用することによって実装されることが好ましいが、光磁気ディクスドライブまたは他の読み書き可能な記憶装置のようなドライブを含む他の任意の種類の大容量記憶装置を利用することにしても良い。大容量記憶装置２０は、インタフェース１８を利用してバス４４に接続されている。なお、インタフェース１８を、必要に応じて大容量記憶装置２０中に組み込むことにしても良い。
【００６０】
インタフェース２２は、本発明の特徴の一つであり、ディジタル複写機を効率的に実現することを可能にする。インタフェース２２は、スキャンユニット２４およびプロットユニット２６の両方にバス４４に対する単一のインタフェースを提供するものである。一実施の形態において、プロットユニット２６は、ラスタライズされた画像を生成する機能，またはプリンタ言語のＰＣＬやポストスクリプトのコマンドようなコマンドを処理する機能を有していない場合がある。そのため、画像データはプロットユニット２６に対してラスタライズされたフォーマットで転送される。これに代えて、プロットユニット２６が、ラスタライズされた画像を生成できるようにしても良いし、ＰＣＬおよび／またはポストスクリプトコマンドを処理することができるようにしても良い。
【００６１】
画像回転，画像オーバレイおよび画像反復のような基本処理機能は、後述するように、インタフェース（カード）２２において実行されるようにすることが好ましい。スキャンユニット２４およびプロットユニット２６の基本機能および基本動作は、その中に含まれるそれぞれのエンジンコントローラを使用して制御される。それぞれのエンジンコントローラはいかなる位置に設けられていても良いが、ディジタル複写機の内部が好ましい。
【００６２】
プロットユニット２６およびスキャンユニット２４が異なるハウジング内に設けられる必要はないが、このような配置を用いることにしても良い。また、ユーザインタフェース３０がインタフェース２２に接続されており、ユーザインタフェース３０は、ユーザがコマンドを入力してコピー・プリント・ファクシミリ機能を制御することを可能にすると共に、ユーザに対する情報または任意の種類のメッセージを表示するために利用される。
【００６３】
ＰＣＩバス４４は、任意の従来のコンポーネントを接続することが可能なものである。ディジタル複写機内においてＰＣＩバスのような標準バスを利用することの利点は、きわめて簡単にかつ通常安価に標準バス４４と互換性を有する任意の種類のコンポーネントをディジタル複写機で利用できるという点である。そのように簡単に利用可能で安価なＰＣＩバスにプラグ接続可能なカードの例としては、ネットワークカードおよびファックスモデムカード等があるが、他のいかなる種類のカードまたはコンポーネントを利用することにしても良い。
【００６４】
さらに、通常の状況において、ＣＰＵ１２は標準バス４４に接続されている追加の周辺機器またはカードによって要求される処理を実行することが可能である。本発明のソフトウエアソリューションは、ソフトウエアと追加された周辺機器やカードとが高度に統合されることを要求するものではなく、ソフトウエアはＣＰＵ１２で実行されるようにするために大容量記憶装置２０上にロードされるだけのものとすることが可能なものである。
【００６５】
効率的にディジタル複写機を動作させるために、画像を表現しているデータを圧縮することが望ましい。そのため、画像データを圧縮・伸長するためのデータ圧縮／伸長器３２が設けられている。ここでは、損失のない圧縮アルゴリズムまたは損失のある圧縮アルゴリズムを含む、任意の種類のデータ圧縮を利用することが可能であり、または、それらの組み合わせを利用することも可能である。
【００６６】
利用可能な画像圧縮の例としては、Lempel-Zivの適用圧縮アルゴリズム（Lempel-Ziv adaptive compression algorithm）に基づく圧縮，適応無損失データ圧縮アルゴリズム（Adaptive Lossless Data Compression (ALDC) algorithm）またはReed-Solomonフォワードエラーコレクションアルゴリズム（Reed-Solomon Forward Error correction algorithm）に基づく圧縮等があり、任意の種類のデータ圧縮・伸長を利用することが可能である。データ圧縮／伸長器３２として使用可能な様々なデータ圧縮製品は、ワシントン州プルマンのAdvanced Hardware Architectures, Inc.によって市販されている。
【００６７】
本発明のディジタル複写機または複合機は、ファクシミリ機能を含む場合がある。他のファクシミリ装置との通信を実現するため、バス４４にＦＡＸモデム３４が接続されている。ＦＡＸモデムは、一般加入電話網（ＰＳＴＮ：Public Switched Telephone Network）３６を介して通信を行うものである。これに代えて、ＩＳＤＮ(Integrated Switched Digital Network)またはインターネットを含む他のいかなる通信媒体を利用してファクシミリをやり取りするようにしても良い。
【００６８】
また、読み取った画像をディジタル複写機から伝送することも可能であり、印刷される画像がネットワークカード３８を介してディジタル複写機で受信されるようにすることも可能である。ここではネットワークカード３８をＬＡＮ(Local Area Network)４０に接続されるものとするが、必要に応じて、ネットワークカード３８を広域ネットワークやインターネットに接続することも可能である。
【００６９】
ディジタル複写機に対し、バス４４に接続される一以上の他のカード４２を含めることも可能である。この他のカード４２は、バス４４にプラグ接続する任意の種類の周辺機器またはデバイスとして実装可能なものであり、ディジタル複写機内に第２のＦＡＸモデムカードを接続するために利用可能であり、または、新しいソフトウエアをディジタル複写機にロードしてＣＰＵ１２およびディジタル複写機で実行される機能をアップグレードし、強化し、または変更できるようにフロッピー（登録商標）ディスクドライブまたはＣＤ−ＲＯＭドライブのような他のストレージデバイスを接続するために利用可能なものである。
【００７０】
標準バス４４は、周辺機器３２，３４，３８および４２のようなプラグ接続されたインタフェースおよびカードが、容易に利用可能で安価なオフザシェルフ（off-the-shelf）製品とすることを可能にする。そのような容易に利用可能な製品は、特にＰＣＩバスの場合にあっては、本発明のアーキテクチャを非常に望ましいものにし、ディジタル複写機のコストを削減可能にし、柔軟性およびスケーラビリティを与える。
【００７１】
本発明のディジタル複写機においては、スキャンユニット２４のスキャニングデバイス上で走査されるページを給紙する自動給紙装置を利用することも可能である。自動給紙装置は、表を上に向けた（face-up）状態でたくさんのページ（用紙）を受け入れ、そしてそれらが走査される際にページを回転させて表を下に向ける（face-down）ことができるように実装される。これに代えて、自動給紙装置は、表を下に向けた状態で（face-down orientation）たくさんのページを受け入れることにより、走査の前に物理的なページを回転または反転させる必要をなくすことにしても良い。
【００７２】
さらに、プロットエンジンおよびスキャンエンジンは、必要に応じて、従来技術の使用を含むいかなる所望の方法を用いて実装することが可能なものである。本発明で利用可能なプロットエンジンおよびスキャンエンジンの例は米国特許５，８１９，１１０に開示されており、それは参照としてここに援用される。なお、プロットエンジンおよびスキャンエンジンは、同一または異なるハウジングを用いて実装することができる。
【００７３】
本発明の一般的なシステム設計は、ディジタル複写機において新規な統合メモリの概念を利用しながらも、リアルタイムで応答できるようにすることである。しかし、システムスループット要求が増大していることから、システム要求はより厳しいものとなっている。たとえば、４５ｐｐｍの複写機は、リアルタイムのイベントに対して１０ｐｐｍの複写機が必要とするものより速い応答を必要とする場合がある。
【００７４】
本発明によって提供されるリアルタイム応答は、動作中にリアルタイムで発生するイベントに反応するための、制限された通常非常に小さな時間をコントローラが有するということを意味する。この必要条件は、応答が無いことを原因としてシステムの他のパーツがストールしてはならないという事実から生じるものである。
【００７５】
所望の応答時間を実現するため、統合メモリを有する本発明の実施の形態は、一以上の以下の機能を利用することが可能なものであり、これらの機能は本発明の他の実施の形態に適用することも可能である。ここで、システムの高速化を図るために、慎重にシステムを設計することを通じてシステムから時間が影響する要求（time-critical requirements）をできるだけ多く取り除くようにすることが望ましい。システム速度を増加させるために使用可能な機能の例には以下の概念が含まれる。
【００７６】
・エンジン（たとえば、スキャンまたはプロットエンジン）インタフェースハードウエア（たとえばインタフェース２２）に高度に時間が影響するオペレーション（highly time-critical operations）を管理させる。なお、エンジンインタフェースハードウエアはエンジンの近くおよび/またはエンジンにできるだけ近いものである。
【００７７】
・時間が影響するものではないオペレーション（less time-critical operations）を割込み主導型（interrupt-driven）にする。
【００７８】
・データフローにいかなる混乱を引き起こすことなく、コントローラがイベントに応答することができるように、エンジンインタフェースハードウエアに十分なバッファを設ける。
【００７９】
・ＤＭＡオペレーションを通じてエンジンインタフェースバッファからメインメモリ１６にデータを移動させ、割込みを通じてＤＭＡイベントを管理し、緊急のサービスを必要するイベントが遅延なくサービスされるように割込みに優先順位をつけ、優先順位が付けられた割込みを通じてオペレーティングシステムのプロセススケジューリングに影響を与え、ＤＰＣ（Deferred Procedure Calls）を使用して割込み潜伏期（interrupt latency）をできるだけ短くし、アプリケーションソフトウエアと同様にオペレーティングシステムを通じて時間が影響する実行パス（time-critical execution paths）をできるだけ短くし、データをコピーすることをできるだけ避け、さらに、仮想メモリマッピングを通じて参照を使用する。
【００８０】
図２は、図１のユーザインタフェース３０の詳細を示す図である。ユーザインタフェース３０は、ディジタル複写機で生成される画像がどのくらい拡大されることになるのかを表示するサイズインジケータ５０を含んでいる。たとえば、等倍の場合は１００％のサイズで示され、若干拡大する場合は１１０％のサイズで示され、縮小する場合は９０％のサイズで示される。
【００８１】
アップボタン５２は拡大率を増加させ、ダウンボタン５４は拡大率を減少させる。クリアボタン５６は現在のコピーオペレーションをクリアするものであり、リセットボタン５８はディジタル複写機のパラメータをデフォルトのパラメータにリセットするものであり、コピーボタンまたはコピーキー６０はコピージョブの開始を指示するものである。
【００８２】
ディジタル複写機または複合機で生成される画像の印字濃度は、明方向ボタン６４および暗方向ボタン６２で制御される。ボタンまたはスイッチの一つが押下される毎に、複数のＬＥＤ６８の一つのインジケータライトが、押下されたキーに対応する方向に一つのスペース分移動する。マーク６６は、デフォルトの位置または濃度調整値が０であることを示す。さらに、ユーザインタフェース３０は、たとえば液晶ディスプレイ（ＬＣＤ）として実装可能で、生成されるコピー枚数，コピーオペレーションおよび用紙ジャムを含むディジタル複写機の診断情報またはエラー情報等のようなディジタル複写機のパラメータ等のあらゆる種類のディジタル複写機の情報を表示するために使用されるディスプレイ７０を含んでいる。
【００８３】
また、本発明のディジタル複写機が多数の機能を含むことが可能で、複合機を構成可能であることから、ディスプレイ７０は、ファクシミリが送信されることになる電話番号，リモートファクシミリ装置から送信されるＩＤまたは電話番号，リモートファクシミリ装置が送信モードまたは受信モードのいずれの状態にあるかを含むファクシミリの送信・受信機能に関する全ての情報のようなそれらの他の機能に関連する情報を表示することができる。
【００８４】
さらに、ディジタル複写機がプリンタまたはスキャナとして機能可能であるため、プリント機能およびスキャニング機能に関連する情報も表示可能である。さらに、ユーザインタフェース３０は、たとえばコピー枚数を選択するために、０〜９の１０個の数字のいずれかを入力するための複数のキーを含むナンバーパッドおよび他のボタン／スイッチ入力部７２を含んでいる。さらに、スキャニング機能およびプリント機能のようなディジタル複写機の他の機能に関連する他のボタンおよびスイッチが、ナンバーパッドおよび他のボタン／スイッチ入力部７２上に含まれるようにしても良い。
【００８５】
図３は、インタフェース２２の構成を示すブロック図である。インタフェース２２はシングルチップまたはＡＳＩＣ上に実装されることが好ましいが、複数の半導体デバイスおよび／または従来の回路要素を相互に接続したもの等、あらゆる所望の構成を利用してインタフェース２２を構成することも可能である。データは、バス４４からインタフェース２２に入力され、ＤＭＡリードバッファ８０またはコントロールおよびステータスレジスタ（ＣＳＲ：Control and Status Register）バッファ８２に転送される。
【００８６】
画像データはプロットユニット２６でプリントするためにインタフェース２２に転送されることが好ましく、または画像データは、スキャンユニット２４から送られる場合にＤＭＡオペレーションを使用してインタフェース２２から転送される。インタフェース２２に転送される受信画像データ（incoming image data）は、ＤＭＡオペレーションを使用している際に転送され、ＤＭＡリードバッファ８０に書き込まれる。インタフェース２２のオペレーションを制御するために使用されるコントロールおよびステータス情報のような他の情報が、ＤＭＡオペレーションを実行することなくインタフェース２２に到着するようにし、ＣＳＲバッファ８２に書き込まれるようにすることも可能である。
【００８７】
コントロールおよびステータス情報は、ＣＳＲバッファ８２からコントロールおよびステータスレジスタ８４（複数のレジスタから構成され得る）に書き込まれる。コントロールおよびステータスレジスタ８４は、インタフェース２２のオペレーションだけでなく、ディジタル複写機のオペレーションにも利用可能なものである。たとえば、コピーオペレーション，スキャニングオペレーションおよびプリントオペレーションに関連するコピー枚数，印字濃度，拡大倍率および他の情報が、コントロールおよびステータスレジスタ８４に記憶され得る。コントロールおよびステータスレジスタ８４に記憶されるデータは、図１のＣＰＵ１２またはマザーボード１０上の他のデバイスから入力されるものであっても良い。
【００８８】
これに代えて、コントロールおよびステータスレジスタ８４のデータは、ユーザインタフェース３０をインタフェース２２に接続するインタフェース８６を通過して、ユーザインタフェース３０から入力されるものであっても良い。コントロールおよびステータスレジスタ８４は、ディジタル複写機およびインタフェース２２の様々なコンポーネントの一般的なオペレーションを制御する。したがって、コントロールおよびステータスレジスタ８４は、プロットインタフェースおよびプロセッサ９２やスキャンインタフェースおよびプロセッサ９６がアクセスすることが可能なものである。さらに、コントロールおよびステータスレジスタ８４は、後述するＰＣＩターゲットコントローラ８８およびＰＣＩマスタコントローラ９０で利用することが可能である。
【００８９】
受信画像データはＤＭＡリードバッファ８０に書き込まれる。このＤＭＡリードバッファ８０は、プリントされる受信画像データの一時記憶としての役割を果たしつつ、論理演算を実行するためにも利用される。たとえば、本発明は、後述する論理和機能，論理積機能およびマスキング機能を実行することによって実現可能なものである。これらの論理演算は、所望の論理演算を実行するために第１の画像をＤＭＡリードバッファ８０に書き込み、続いて、既にＤＭＡリードバッファ８０中に存在している第１の画像上に第２の画像を書き込み、またはその第１の画像と第２の画像とを組み合わせることによって実行されるようなものが好ましい。
【００９０】
ＤＭＡリードバッファ８０は、３２バイトである図１のホストブリッジ１４の対応するバッファと同一のサイズであることが好ましいが、必要に応じて、他のあらゆるサイズのバッファまたはＤＭＡ転送サイズを利用することにしても良い。ＤＭＡリードバッファ８０で実行される論理演算は、コントロールおよびステータスレジスタ８４に記憶されているコントロールおよびステータス情報に基づいて実行されるが、他の所望の方法で他の種類の制御ロジックまたは機能を実現することにしても良い。
【００９１】
ＰＣＩターゲットコントローラ８８およびＰＣＩマスタコントローラ９０は、一般に知られているデバイスであり、バス４４を介したインタフェース２２とのやり取りを制御するために利用される。ＰＣＩターゲットコントローラ８８は、メモリ転送を初期化およびセットアップするために利用され、一方、ＰＣＩマスタコントローラ９０は、バス４４を使用して高速アクセスおよびダイレクトメモリアクセスを制御するために利用される。
【００９２】
説明の便宜上、図３に図示することは省略するが、コントロールおよびステータスレジスタ８４は、インタフェース８６に加えて、ＰＣＩターゲットコントローラ８８，ＰＣＩマスタコントローラ９０，プロットインタフェースおよびプロセッサ９２，ならびに、スキャンインタフェースおよびプロセッサ９６を含む図３の様々なデバイスからアクセス可能なものである。
【００９３】
プロットインタフェースおよびプロセッサ９２は、ポート９５を介してプロットユニット２６に対するデータ配信を制御するが、ワイヤ，光ファイバケーブルまたはバスを含む他の任意の接続パスを使用することにしても良い。また、プロットインタフェースおよびプロセッサ９２は、画像のマクロローテーション（macrorotation：画像データのブロックを適当な場所から読み出しまたは適当な場所に書き込むこと），個々のブロックのマイクロローテーション（microrotation），画像反復機能およびＤＭＡオペレーションを制御する。
【００９４】
プロットデータＲＡＭ９４は、プロットユニット２６に転送する前に画像データを記憶するものである。画像データを回転させるというように、画像データについて論理演算を実行する場合、画像データのブロックがプロットインタフェースおよびプロセッサ９２を利用してＤＭＡリードバッファ８０から読み出され、プロットインタフェースおよびプロセッサ９２がこのデータのブロックの回転を制御する。
【００９５】
続いてデータは、必要に応じて、回転された方向でプロットデータＲＡＭ９４に書き込まれる。そして、データは、エンジンコントローラを含むプロットユニット２６に転送される。このプロットインタフェースおよびプロセッサ９２は、ポート９５を介してプロットユニット２６に、画像データおよび制御データの両方、さらに正確な同期のためのクロック信号を送信する。
【００９６】
プロットオペレーションと同様に、スキャンインタフェースおよびプロセッサ９６は、バス９７を介してスキャンユニット２４から得た画像データのＤＭＡオペレーションを制御すると共に、画像データの回転等、この画像データの編集を制御する。画像データがスキャンユニット２４から受信されると、画像データはスキャンデータＲＡＭ９８に最初に書き込まれる。
【００９７】
たとえば、この画像データをインタフェース２２からメモリ１６または大容量記憶装置２０に転送する場合、画像データは、スキャンインタフェースおよびプロセッサ９６によってスキャンデータＲＡＭ９８からブロック単位で読み出され、回転され、かつ／または反転され、そしてＤＭＡライトバッファ１００に転送される。ＤＭＡライトバッファ１００からの送信画像データ（outgoing image data），コントロールおよびステータスレジスタ８４からの送信制御およびステータス情報は、データをバス４４に転送するマルチプレクサ１０２に転送される。
【００９８】
様々な画像編集機能が本発明にかかるディジタル複写機によって実行される。しかし、４５ｐｐｍの好適な速度で画像をコピーするため、できるだけ速く画像処理機能を実行する必要があり、そのために、全画像の取得を待つことなく画像処理機能を実行するようにすることが好ましい。それゆえ、小さな領域単位またはブロック単位で画像を処理することが望ましい。なお、本発明の原理は、高速および低速のシステムまたはマシンにも応用でき、または当てはめることが可能なものである。
【００９９】
所望の画像処理を実行するための効率的な方法は、スキャナから画像データを得ている際に、または、それに代えて画像データがプリンタに送信されている際に画像処理を実行することである。スキャナから画像データが得られている際にまたは画像データがプリンタに書き込まれている際に画像編集を実行することによって、バスを介してデータを移動させるために必要とされる特別なステップと共に、画像データをメモリに読み込むためおよびメモリから読み出すための特別なまたは専用のステップを省略することが可能となる。従来の方法のように、画像編集というただ一つの目的のために画像データをシステムバスを介して転送することにすると、計算リソースに大きな負担を強いることになる。
【０１００】
図４は、画像編集のために使用される本発明にかかるデータパスを示す図である。図４において、画像データはスキャンユニット２４から取得され、バッファ９８（スキャンデータＲＡＭ）に書き込まれる。画像データの回転または他のプロセスを制御するためのデバイス９６（スキャンインタフェースおよびプロセッサ）は、画像データをバッファ９８から読み出し、処理されたデータをＤＭＡバッファ１００に書き込む。たとえば回転されたデータまたは反転されたデータである可能性のある処理されたデータは、たとえばＤＭＡオペレーションを使用することによってバス４４を介してメモリ１６に転送される。
【０１０１】
このように、処理されたデータをディジタル複写機のメモリ１６に書き込むためには、バス４４を介してデータを１回転送することが必要とされるのみである。同様に、データをプリントするために、データをメモリ１６から読み出す場合、画像データはメモリ１６から読み出され、ＤＭＡオペレーションを使用することによってバス４４を介して転送され、そしてＤＭＡリードバッファ８０に書き込まれる。
【０１０２】
後述するように、画像はデバイス９２（プロットインタフェースおよびプロセッサ）によって、少なくとも二つの画像について論理演算を実行することおよび／またはある画像のセクションを回転させ、またはリピートすること等のように、必要な場合に処理される。処理されたデータは、デバイス９２からバッファ９４（プロットデータＲＡＭ）に書き込まれ、そして最終的にプリントするためにプロットユニット２６に転送される。
【０１０３】
図４に示したデータの流れとは対照的に、従来のシステムはスキャナで読み取ったデータを処理することなく、スキャナから直接プロセッサのメモリに未処理のデータを転送している。そして、画像データを処理するために、画像データをメモリから読み出し、処理し、そしてメモリに再び書き込まなければならない。この処理によれば、本発明のデータの流れに対して、２回余分にバスを介してデータを転送する必要が生じることになる。
【０１０４】
本発明が、メモリ１６に書き込む前にスキャナからデータ圧縮／伸長器３２に最初にデータを転送することにする場合、画像データをメインメモリ１６に読み込むためにバス４４を介して画像データを２回転送する必要が生じることになる。具体的には、最初に、画像データはＤＭＡライトバッファ１００からデータ圧縮／伸長器３２に転送され、つぎに、画像データはデータ圧縮／伸長器３２からメモリ１６に転送される。
【０１０５】
同様に、画像データを伸長するために、最初に画像データを伸長し、続いてデータ圧縮／伸長器３２からプロットユニット２６に伸長された画像データを転送するというように、バス４４を介して２回転送する必要が生じる。圧縮および伸長を行うことによって、バス４４を介してデータを余分な回数転送することが必要となるが、従来のシステムが本発明で使用されるものと同様な圧縮および伸長方式を有しているような場合、そのような余分なステップは従来のシステムにおいても必要とされるものである。
【０１０６】
図５は、本発明にかかる代替的な実施の形態を示す図である。この実施の形態において、スキャンユニット２４，プロットユニット２６およびユーザインタフェース３０に接続されているインタフェース２２は、それ自身の専用バス４６を有している。なお、バス４６はＰＣＩバスであることが好ましい。ホストブリッジ４８は、バス４４および４６の両方をＣＰＵ１２に接続するものである。なお、図１のホストブリッジ１４によって提供される（他の）機能および性能を図５のホストブリッジ４８が有していることはいうまでもない。
【０１０７】
本発明にかかるディジタル複写機で実行される機能は画像を回転させることである。たとえば、図６は、オリジナル画像２５２の向き（オリエンテーション）を示す図である。図７（ａ）はこの画像２５２を０度回転、即ち回転無しの画像２５４を示す図であり、図７（ｂ）は画像２５２を反時計回りに９０度回転させた画像２５６を示す図であり、図７（ｃ）は１８０度回転させた画像２５８を示す図であり、図７（ｄ）は反時計回りに２７０度回転させた画像２６０を示す図である。本発明は、図７（ａ）〜図７（ｄ）に示す四つの種類の回転について最も効果的に働くものであるが、必要に応じて他の角度回転させることも可能である。
【０１０８】
図８は、スキャン（読み取り）されつつ回転させられることになる画像２６２を示す図である。画像２６２は、一例として、６個の小さなブロックに分割されるものとして示されている。本発明は、画像の小さなブロック上において効率的に動作するものである。本発明の好適な実施の形態は、３２バイトを占める１６×１６ピクセルのブロック上で動作する。このように、図８はあくまでも画像の例を示すものであって、６個のブロックに分割された画像を示しているが、たとえば、０．２１６ｍ（８．５インチ）×０．２７９ｍ（１１インチ）の画像の場合、画像は３１９ブロック×４１３ブロックで、従って１３１，７４７ブロックで構成されることになる。
【０１０９】
なお、上記３１９ブロックは、０．２１６ｍ×（６００ピクセル／０．０２５４ｍ）／（１ブロック／１６ピクセル）、即ち８．５インチ×（６００ピクセル／インチ）／（１ブロック／１６ピクセル）で得られる。前述したように、これらの数値は単なる例示であり、異なる分割数や異なるサイズのブロックを用いることも可能である。ところで、画像を走査する場合、一度に１本の主走査ラインの画像が得られる。１本の主走査ラインが得られる毎に、主走査ラインは副走査方向において１ピクセル下がる（または上がる）。
【０１１０】
すなわち、主走査ラインが副走査方向に１ピクセル進む。本発明を実現可能な例示的な実施の形態として、図８においては、複数のブロック１，２および３にわたって画像２６２（原稿）の長手方向（図面の向きに対して水平）に延びる電荷結合素子（ＣＣＤ）が利用される。図８において、ブロック１は、Ｍ本の主走査ライン×Ｎ個のピクセル（またはＮ個の列）で構成されるものとして示されている。図８の各ブロックは、それらの中にそれぞれ横向きに書かれた数字を有している。これらの数字は、ブロックを識別するために使用されるだけでなく、ブロック内の画像データの向きを示すためにも使用されるものとする。
【０１１１】
図８の画像を回転させるには、マイクロローテーションと呼ばれるように、各ブロックのデータを個々に回転させる。ブロック内の画像データの回転は、画像データがブロックの中心点を中心にして回転しているようにして実行される。そして、ブロックの画像データが回転された後、この画像データはメモリ中の該当する（適切な）位置に書き込まれる。画像データを該当する位置に書き込むことにより、ブロックの位置はメモリ中の回転された位置に書き込まれることになる。
【０１１２】
この種類の回転はマクロローテーションと呼ばれている。この回転プロセスの制御は、図３のスキャンインタフェースおよびプロセッサ９６によって実行され得る。回転プロセスがどのようにして実行されるかに関する例は、図９（ａ）および図９（ｂ），図１０（ｃ）および図１０（ｄ）ならびに図１１（ｅ）〜図１１（ｇ）に示されている。
【０１１３】
図９（ａ）において、画像データ２６４が、画像のＭ本の主走査ラインを走査することによって得られる。Ｍ本の主走査ラインが得られた後、ブロック１，２および３として示されるブロックの最初の行に対応するデータが存在することになる。図９（ｂ）の第１のブロック２６６は、最初のＭ本の主走査ライン×Ｎ個のピクセル（またはＮ列のピクセル）を持つようなブロックを構成することによって得られる。ブロック２６６が得られた後、ブロック２６６は、所望の方法で図９（ｂ）の画像２６８の向きとなるように回転させられる。
【０１１４】
これはマイクロローテーションであり、ブロックの点を中心にして実行可能なものである。なお、ブロックは、たとえば参照としてここに援用される米国特許４，２７１，４７６に開示されているようにして回転され得る。しかし、他の所望の方法を利用してブロックを回転させることにしても良い。
【０１１５】
画像の第１のブロックを回転させ、画像のブロックのデータを図９（ｂ）の画像２６８に一致させた後、画像のブロックをメモリ中の該当する位置に書き込む必要がある。反時計回りに９０度回転させる場合、画像データは図１０（ｃ）に示すように、画像全体のために確保されたメモリ２７０の位置２７４に書き込まれる。これにより、マクロローテーションオペレーションを実行することができ、ブロックの位置を変更する機能を実行することができる。
【０１１６】
つぎに、図１０（ｄ）に示す第２のブロック２９０を９０度時計回りに回転させ、そして、図１０（ｄ）の画像２９２に一致するようにする。続いて、この第２のブロックは、図１１（ｅ）に示すように、メモリ２７０の記憶位置２７８に書き込まれる。全てのブロックが回転させられ、メモリ２７０に書き込まれた場合、メモリは図１１（ｆ）に示すようにして画像データを含むようにアレンジされる。
【０１１７】
図１１（ｆ）において、画像データ４を有するブロックが位置２７２に記憶され、ブロック１が位置２７４に記憶され、ブロック５が位置２７６に記憶され、ブロック２が位置２７８に記憶され、ブロック６が位置２８０に記憶され、そして、ブロック３が位置２８２に記憶される。その後図１１（ｆ）に記憶された画像データを印刷するために、画像データは位置２７２〜位置２８２の順でメモリから読み出され、図１１（ｇ）のような最終的に回転させられた画像２９６が生成される。
【０１１８】
図８の画像２６２を１８０度回転させることが望まれていた場合であっても、図８の各ブロック１〜６を個々に回転させ、それらを図１２（ａ）に示すように順次記憶することによって同様のプロセスが実行され得る。図１２（ａ）において、メモリ３０２は、位置３０４，位置３０６，位置３０８，位置３１０，位置３１２および位置３１４にそれぞれ記憶されたブロック６，ブロック５，ブロック４，ブロック３，ブロック２およびブロック１を含んでいる。図１２（ａ）の画像データが書き込みのためにメモリから読み出され、画像が生成される場合、ブロック６，５および４の画像データを含む第１の行ならびにブロック３，２および１の画像データを含む第２の行を有する図１２（ｂ）の画像３２０が生成され得る。
【０１１９】
図１３は、図９（ａ）および図９（ｂ），図１０（ｃ）および図１０（ｄ），図１１（ｅ）〜図１１（ｇ）ならびに図１２（ａ）および図１２（ｂ）に示した例に従って動作する、画像を回転させるプロセスを示すフローチャートである。スタートの後、ステップＳ３３０は、つぎのＭ本の主走査ラインを走査し、走査したラインから得たデータをバッファに書き込む。このバッファは、図３のスキャンデータＲＡＭ９８であって良く、本実施の形態においては３２キロバイトの容量を有するものであることが好ましいが、他の種類のメモリや異なるサイズのメモリを利用することにしても良い。
【０１２０】
第１回目のステップＳ３３０が実行されると、最初のＭ本の主走査ラインが得られる。このＭ本の主走査ラインが得られると、画像の複数のブロックを回転させることが可能な十分な画像データが得られたことになる。ステップＳ３３２は、回転のための小さなブロックを生成するために、（Ｍ本のライン×つぎのＮ列のピクセル）をバッファから読み出す。第１回目のステップＳ３３２は、画像データのある行に対して実行され、得られるブロックは最初のＮ個のピクセルの列を含むものであり、以降のブロックは続くＮ個のピクセルの列を含むものとなる。
【０１２１】
そして、ステップＳ３３４は、所望の方法でブロックを回転させる。つぎに、ステップＳ３３６は、回転されたブロックをメモリ中の該当するアドレスに書き込む。メモリ中の該当するアドレスについては、希望する最終的な画像の向きを知ることによって容易に理解され得る。たとえば、図１１（ｇ）において最終画像の向きを参照することができ、この画像は図１１（ｆ）に示されるような適当な位置に書き込まれた画像データを用いて生成される。
【０１２２】
同様に、図１２（ａ）は、図１２（ｂ）の画像を生成するための画像データの適当な位置を示す図である。なお、図８〜図１２に示した画像データは単に例を示すものであって、本発明を限定する要素とみなされるものではない。また、各ブロックをメモリに書き込む順番や各ブロックを回転させる方法については、任意の方法を利用することにしても良い。
【０１２３】
つぎに、ステップＳ３３８は、バッファ（Ｍ本の主走査ラインを含むバッファ）中の全てのブロックが回転させられ、メモリの該当する位置に書き込まれたか否かを判定する。すべてのブロックが回転させられていない（または回転および書き込みされていない）場合、フローはつぎに回転させるブロックのデータを読み出すためのステップＳ３３２に戻る。
【０１２４】
ステップＳ３３８が全てのブロックが回転させられていると判定した場合、ステップＳ３４０は、画像全体が回転され、メモリに書き込まれたか否かを判定する。画像全体が回転され、メモリに書き込まれていない場合、制御はつぎのＭ本の主走査ラインを走査し、続いてバッファに書き込む処理が実行されるステップＳ３３０に戻る。ステップＳ３４０において画像全体が走査され、回転させられていると判定された場合、図１３のプロセスは終了となる。
【０１２５】
なお、図１３のプロセス（および本発明にかかる他のプロセス）においては、フローチャートの性質上、並列に（たとえば同時に）実行される処理を忠実に表現することは困難である。しかし、実際のオペレーションにおいて最も効率的なオペレーションを行うために、いくつかのプロセスが同時に実行される場合がある。たとえば、スキャニングオペレーションはスタートおよびストップという動作の組み合わせではなく、一連の流れの中で実行されるものであり、図１３で説明した処理においては、Ｍ本の主走査ラインが得られると、つぎのＭ本の主走査ラインを得る処理を実行しつつ、ステップＳ３３２，Ｓ３３４およびＳ３３６の回転プロセスが実行されることになる。さらに、図１３の他のプロセスも、必要に応じて他の処理と並列に実行される場合がある。
【０１２６】
また、本発明の機能は画像を反転することに関連している。このような機能は、スキャニングオペレーションの副走査方向がプリントまたはファクシミリ送信オペレーションの副走査方向と異なる場合、および／またはスキャニングオペレーションの主走査方向がプリントオペレーションの主走査方向と異なる場合に要求される場合がある。図１４（ａ）は、図面の上方から図面の下方に（または画像３５０をその適切な方向または直立させた状態で眺める場合は右から左に）向かって進行する副走査方向の説明図である。
【０１２７】
この情報（画像）が最終的に印刷される際に、プリンタの主走査方向および副走査方向とスキャナの主走査方向および副走査方向とが一致していれば、図１４（ｂ）に示す印刷画像３５２と図１４（ａ）の読み取り画像とは同一のものになる。しかしながら、スキャナの副走査方向または主走査方向がプリンタの副走査方向または主走査方向と異なる場合にあっては、後述するようにして画像を反転させない限り問題が生じることになる。
【０１２８】
反転することが必要となるような、スキャニングによってデータを得る場合の問題は、多くの場合使用される自動給紙装置（ＡＤＦ）の種類に起因するものである。なお、スキャンユニット２４で使用されるＣＣＤまたは他のイメージセンサの主走査方向の方向に起因する場合もある。一般的なＡＤＦは、ＡＤＦトレーにコピーする面を上に向けて載置されたページを裏返し、コピー面が下を向くようにしてスキャンユニット２４のガラスまたは他の透明なプラテン上に送り出す。
【０１２９】
そのようなＡＤＦは、人間がマニュアルでコピーを取る場合と同様な向きで走査されるようにシートを載置する。このため、ＡＤＦを使用する場合の副走査方向は、ＡＤＦを用いることなく、マニュアルでプラテン上にコピーするシートを載置する場合と同一である。このような種類の装置は図１４（ａ）に示したように画像を走査し、そして通常、図１４（ｂ）に示したような画像を生成することから、画像を反転させる必要はない。
【０１３０】
しかしながら、画像を反転させる処理が必要となる「シートスルータイプ（sheet through type）」フィーダのような他の種類の自動給紙装置が利用される場合がある。この種類の自動給紙装置は、一般にファクシミリ装置ならびに数種類の複合機およびディジタル複写機において見受けられる。この種類の自動給紙装置をファクシミリ装置で使用すると、ページを走査しながらデータを圧縮して送信することが可能であるため、ファクシミリ装置（または複合機）においてメモリ容量を減らすことが可能になり、その結果、ファクシミリで送信されることになるページ全体を記憶する必要をなくすことができる。
【０１３１】
ただし、必要な場合にあっては、送信前にデータを記憶することにしても良い。この種類の自動給紙装置が使用される場合、スキャナアセンブリは通常適所に固定され、文書が移動することになる。典型的に、これによって副走査方向は標準のコピーオペレーションと比べて反対方向になってしまうが、主走査方向は同一方向または普通の方向である。スキャナの主走査方向は通常固定されていると共に、スキャンユニット２４を組み立てる際においてＣＣＤをどのように配置するかに依存するものである（たとえば、左から右もしくは右から左、または、上から下もしくは下から上）。
【０１３２】
なお、ＡＤＦを使用した標準コピーオペレーションにおいて、画像の最初の部分は通常、最後に走査される部分になる（たとえば、図１４（ａ）の文字「Ａ」を参照）。しかし、ここで説明したＡＤＦを使用する場合、文書の最初の部分は最初に走査される部分になる（たとえば、図１５（ａ）の文字「Ａ」を参照）。
【０１３３】
図１５（ａ）は、図面を通常の向きで眺めた場合に、画像の下方から画像の上方に向かう、画像３５４の副走査方向を示す図である。なお、図１５（ａ）に示す副走査方向は、図１４（ａ）の副走査方向の方向と反対となっている。図１５（ａ）に示す方向の走査によって得られる画像は図１５（ｂ）に示されている。この画像は反転され、または読み取り画像の鏡像となっている。
【０１３４】
この画像を直して適切な印刷を行えるようにするため、画像は、軸、好ましくは画像の中央部分で副走査方向に平行な軸を中心にして反転（フリップ）される。ただし、軸はどの位置に位置するものであっても良い。副走査方向に平行な軸を中心にして反転すると、得られた画像は図１５（ｃ）に示す通りのものとなる。図１５（ｃ）の画像は、図１５（ａ）の画像をある点を中心にして１８０度回転させたもののように見えるが、反転された画像は、画像の反転方法やスキャナおよびＡＤＦの構造に応じて任意の方向を向くようにすることができる。
【０１３５】
前述した画像の回転の場合と同様に、反転のプロセスはブロック単位で実行され、画像の回転と同時に実行することも可能である。さらに、反転のプロセスを回転の一種と考えることも可能であるが、ある点を中心にしてブロック内の画像を反転するのではなく、画像データは副走査方向に平行な軸を中心にして反転させられまたは回転させられる。ブロック内において画像データを反転することに加えて、各ブロックの位置が副走査方向に延びる軸を中心に反転されまたは回転させられる。
【０１３６】
図１６（ａ）は、図９（ｂ）に示したブロック１のような、スキャニングオペレーションで得た画像データのブロックにおける９個のピクセルを示しているものとする。この小さなブロックを印刷するため、図１６（ａ）のブロックのピクセルを反転させて図１６（ｂ）に示す位置に変える必要がある。しかしながら、各ブロックのピクセルを反転する必要があるだけでなく、ブロックの位置も反転する必要がある。
【０１３７】
ここで、図１６（ａ）を、ピクセルを表すのではなく、画像のブロック（ピクセルのブロック）を表しているものと仮定すると、（各ブロック内でピクセルを反転させることに加えて）図１６（ａ）に示すブロック３および１の位置を反転して図１６（ｂ）に示すブロックの位置になるようにする必要がある。そのため、図１６（ａ）のブロック３および１は、反転されて図１６（ｂ）に示すような状態のブロックになり、そして、これらのブロックは印刷の前にメモリに記憶される。同様に、ブロック６および４の位置も反転され、また、ブロック９および７の位置も反転される。
【０１３８】
図１３に示したプロセスを利用してブロックを反転するためのプロセスを実行することも可能である。この場合、図１３のプロセスは、（ある点を中心にして回転が実行されると共に、副走査軸で反転が実行されるように）Ｍ本のライン×Ｎ個のピクセルのブロックを回転および反転させるというようにステップＳ３３４を変更することによって修正されることになる。回転されたブロックをメモリ中の該当するアドレスに書き込むというステップＳ３３６を実行する場合に、ブロックの位置を反転する必要性が考慮されることになる。ただし、ある点を中心にした回転オペレーションが実行されるか否かにかかわらず、反転処理を実行することも可能である。
【０１３９】
本発明の別の特徴は、画像がメモリ１６または大容量記憶装置２０から読み出されるときからプロットユニット２６で画像が印刷されるときまでの間に画像を回転させることである。図１７のプロセスは、プロットの前に画像を回転させる処理を示すものであって、画像が走査されるときからメモリに書き込まれるまでの間に画像を回転させる処理を示す図１３のフローチャートのオペレーションと同様なものである。回転プロセスおよびこの回転プロセスの制御は、プロットインタフェースおよびプロセッサ９２で実行される。そのため、読み取りデータ（スキャンデータ）について実行される回転および反転オペレーションは、直ちにプロットまたはプリントされるデータについて実行される回転（および、必要に応じて反転）と同時に実行されることになる。
【０１４０】
図１７の処理が開始されると、ステップＳ３７０は、つぎの該当するブロックをメモリから読み出す。たとえば、図１１（ｇ）の画像２９６が図１１（ｆ）に示したようにメモリに記憶されており、このデータから図８の画像２６２に示したような画像を印刷することが望まれている場合、図１１（ｆ）から読み出されることになる最初のブロックは、最初のブロックの画像データを含むブロック２７４であり、そのブロックはＤＭＡリードバッファ８０に書き込まれ、この画像データは図９（ｂ）の画像２６８の向きから図９（ｂ）の画像２６６になるように回転させられる。そして、ブロック２６６の画像データは、最初のＭ本の走査ラインが図９（ｂ）の画像２６６のデータと一致する最初のＮ列のピクセルをその中に含むように、図３のバッファ９４（プロットデータＲＡＭ）のようなバッファに書き込まれることになる。
【０１４１】
つぎに、メモリ２７０のメモリセクション２７８に記憶されているブロック２の画像データが、読み出され、図１０（ｄ）の向き２９２から向き２９０になるように回転され、続いて、Ｍ本の走査ラインのつぎのＮ列のバッファに書き込まれる。最後に、メモリ位置２８２のブロック３のデータが、図１１（ｆ）のメモリ２７０から読み出され、回転させられ、そしてメモリバッファに書き込まれ、図９（ａ）に示したようなＭ本の主走査ラインが形成される。そして、これらのＭ本の走査ラインが印刷されることになる。
【０１４２】
図１７の説明に戻る。ステップＳ３７２においてブロックを回転させ、ステップＳ３７４においてブロックを記憶バッファに一時記憶した後、ステップ３７６は、Ｍ本の完全なラインがプロットデータＲＡＭ９４のような（図９（ａ）に示した）バッファ中に存在するか否かを判定する。バッファ中に存在しないと判定した場合、つぎの該当するブロックがステップＳ３７０において読み出される。ステップＳ３７６がＭ本の完全なラインが読み出されたと判定した場合、そのＭ本のラインの印刷を実行した後（Ｓ３７８）、制御はステップＳ３８０に進み、画像の一部として印刷されることになるブロックがメモリ中にさらに存在しているか否かを判定する。
【０１４３】
ブロックがメモリ中にさらに存在している場合、前述したようにしてつぎの該当するブロックが読み出され、回転され、バッファに記憶される。図１１（ｆ）において記憶されているようなデータの例において、つぎにメモリから読み出されて回転させられるブロックは、ブロック２７２，２７６および２８０である。ステップＳ３８０が印刷画像の一部として印刷されるブロックがメモリ中に存在していないと判定する場合、図１７のプロセスが終了となる。
【０１４４】
ブロックを基準として動作する本発明で実行可能な他の機能は、二つ以上の画像を使用して論理演算を実行することに関連している。図１８（ａ）〜図１８（ｃ）は、二つの画像の論理和をとる場合の概念を示す図である。論理和（ＯＲ）機能は、単に二つの別々の画像を互いに組み合わせるものである。したがって、図１８（ａ）の画像３９０と図１８（ｂ）の画像３９２の論理和をとると、図１８（ｃ）に示すような画像が得られる。
【０１４５】
また、二つの画像の論理積をとると、論理積をとって得られた画像は、二つのオリジナル画像の対応するピクセルが両方黒である場合にのみ、その位置に得られる黒のピクセルを含んだものとなる。たとえば、図１９（ａ）の画像３９６と図１９（ｂ）の画像３９８との論理積をとると、図１９（ｃ）に示すような画像４００が得られる。図１９（ｂ）の画像３９８の黒い上部の部分全体は、図１９（ａ）の画像３９６の上半分に存在する黒のピクセルが論理積をとった結果の図１９（ｃ）の画像４００に含まれるように作用するが、図１９（ｂ）の画像３９８の下半分の全てのピクセルが白であるため、図１９（ａ）の下半分の画像３９６は効果的にマスクされたことになる。
【０１４６】
このように論理積オペレーションは、マスキングオペレーションと呼ばれる場合がある。図１９（ａ）〜図１９（ｃ）に示したように、画像の一部をマスクする要求があるような特定の状況において、真の論理積機能は人間の直感に反したものであるといえるかもしれない。たとえば、人々は、画像を覆い隠す場合に通常黒色を思いつくと考えられるが、図１９（ａ）〜図１９（ｃ）の例は、黒色が実際に文字を印刷されるようにしてしまうという反対の効果をもたらすことを示している。
【０１４７】
したがって、論理積機能に図１９（ｃ）の結果と正反対の結果を生じさせるようにすることが望ましく、画像を組み合わせる場合に、ある画像の黒のピクセルを利用して別の画像のピクセルをマスクするようにすることが望ましい。たとえば、図１９（ｆ）に示すような画像を生成するために、図１９（ｅ）の黒いピクセルのセクションを図１９（ｄ）に示す画像の下の領域をマスクするために使用するようにすることである。
【０１４８】
図２０は、画像を組み合わせる（結合する）プロセスを示すフローチャートである。スタートの後、ステップＳ４１０は、第１の画像について、つぎの該当するブロックを読み出し、このブロックをたとえば図３のＤＭＡリードバッファ８０のような保持バッファに書き込む。そして、ステップＳ４１２は、第２の画像について、つぎの該当するブロックを読み出し、所望の論理演算を実行しつつ、バッファ中の第１の画像上に重ねて書き込む。
【０１４９】
このため、ＤＭＡリードバッファ８０は、論理演算を実行するように実装され、コントロールおよびステータスレジスタ８４，および／または，プロットインタフェースおよびプロセッサ９２からの命令に基づいてそのような演算を実行するように構成され得る。第１の画像のブロックおよび第２の画像のブロックは互いに位置が一致するように処理される。保持バッファは、所望の論理演算機能が第２の画像の書き込み時に実行されるように構成されることが好ましい。
【０１５０】
たとえば、論理和機能を実行する場合に、第２の画像の黒のピクセルは保持バッファの該当する場所に書き込まれ、一方、白のピクセルは、保持バッファ中に既に存在している第１の画像の黒のピクセルの状態を変化させることがないようにする。同様に、論理積機能またはマスキング機能を実行する場合に、バッファは、第１の画像のブロックと第２の画像の対応するブロックの論理積またはマスキングを実行する機能を自動的に実行するように構成される。
【０１５１】
そして、ステップＳ４１４は組み合わされた画像データのブロックを必要に応じて回転（および／または反転）させ、ステップＳ４１６は印刷されることになるブロックをバッファに記憶する。ステップＳ４１８はＭ本の完全な主走査ラインがバッファに記憶されたか否かを判定し、そして、ステップＳ４２０はＭ本の主走査ラインを印刷する。ステップＳ４１８がＭ本の完全な主走査ラインが記憶されていないと判定する場合、制御はステップＳ４１０に戻り、さらなるブロックについて論理演算を実行する必要がある。
【０１５２】
ステップＳ４２０においてＭ本の主走査ラインが印刷されると、ステップＳ４２２は印刷画像の一部として印刷されることになるさらなるブロックがメモリ中に存在しているか否かを判定する処理を実行する。印刷すべきブロックがさらに存在している場合、フローはステップＳ４１０に戻り、第１の画像においてつぎに印刷されるブロックを読み出し、そしてさらなるブロックに関する処理を繰り返す。
【０１５３】
ステップＳ４２２が印刷すべきブロックが存在していないと判定する場合、図２０のプロセスが終了となる。ここでは図２０のプロセスを印刷に関連させて説明することにしたが、論理的に組み合わせた画像を印刷することに代わるものとして、直ちに印刷することなく、画像を後に使用するために，または表示するために記憶する処理等が考えられる。
【０１５４】
本発明によって実行される別のプロセスは、画像反復（image repetition）またはプロット画像反復（plot image repetition）に適用される。ここでは、ユーザが画像の任意の領域（または画像全体）を選択すると、この領域（または画像）が新たな画像を形成するために繰り返し生成されることになる。例として、図２１（ａ）に示された画像４３０を用いることにする。ユーザは、図２１（ｂ）の画像４３２において破線で示されているように、「Ｐｉｃｋ  Ｎｏｗ」という言葉を有するセクションを選択したものとする。
【０１５５】
そして、本発明のプロセスは、画像中の選択されたセクションを繰り返し、このようにして繰り返されたセクションを用いて図２１（ｃ）に示す画像４３４のような画像を形成する。この発明の利点は、たとえば、ページの１／２，ページの１／３またはページの１／４（サイズは任意に設定できる）の画像のコピーを繰返し生成するために有効であるという点である。一例として、図２２（ａ）は、ページ半分のみが（任意の文字列で）占有された画像４３６を示している。
【０１５６】
また、図２２（ｂ）の破線は画像４３８のページ半分が選択されたことを示している。そして、画像反復プロセスを実行した結果は図２２（ｃ）に示す画像４４０の通りであり、ページ半分の画像が画像（記録紙）の上半分と画像（記録紙）の下半分に印刷された様子が示されている。これにより、最終的に印刷される画像が用紙を半分にカットできるようなサイズである場合、用紙の使用量を５０％に減少させることができ、用紙を節約することが可能となる。
【０１５７】
この実施の形態にかかるオペレーションのより詳細な例について説明する。図２３は、ブロック４４２のような小さな複数のブロックに画像を分割した様子を示す図である。この実施の形態において、説明の便宜上、主走査方向は水平方向であるものとして示され、副走査方向は用紙の縦方向であるものとして示されているが、これらの方向は必要に応じて逆にしても良い。また、図２３のブロック４４２は、Ｎ本の主走査ライン×Ｍ列のピクセルを含んでいる。
【０１５８】
画像反復機能の実行のため、画像は、本発明の他の実施の形態と同様に小さな複数のブロックに分割される。図２４（ａ）は、６４個の小さなブロックに分割された画像４５０を示している。もちろん、６４個に限らず、必要に応じて任意の数のブロックに分割することも可能である。本発明にかかる好適な実施の形態において、ブロックはそれぞれ１６個のピクセルおよび１６本の主走査ラインを含んでいるものとする。
【０１５９】
図２４（ｂ）は、画像４５２においてブロック２０，２１，２２，２８，２９，３０，３６，３７および３８が選択されたことを示す図である。本発明にかかる好適な実施の形態において、整数（whole number）のブロックが選択される（たとえば、ブロックをより小さな部分に分割することはできない）。これは問題を示すものではなく、ディジタル複写機が６００ｄｐｉ（dots per inch）の解像度を有し、各ブロックが１６ピクセル×１６ピクセルのサイズからなり、これらのパラメータが０．０３インチ（１インチ当たり１６ピクセル／６００ピクセル）の有効選択解像度をもたらすような場合に、ユーザの選択肢を制限するものではない。
【０１６０】
この整数ブロックの制約が問題を示すものではないとするさらなる理由は、典型的に、ディスプレイの解像度が０．０３インチ未満であり、また、ディスプレイがより多くの制約を整数ブロックの選択より選択プロセスに負わせるということである。しかし、必要な場合、整数のブロックに収まるように選択された画像の境界を利用することなく、ユーザが画像を選択することができるようにしても良い。
【０１６１】
図２４（ｂ）に示すように所望の領域（セクション）、たとえばページの１／２，ページの１／４およびページの１／３等、リピートされる都合の良い位置やサイズがユーザによって選択されると（または、代替的にマシンによって選択されると）、画像反復プロセスを使用して生成された新たな画像の形成が開始される。図２５（ａ）に示すように、選択されたブロックの最初の行が画像４５４に書き込まれる。画像の選択された部分の最初の行の最終ブロックに到達すると、図２５（ｂ）の画像４５６に示すように、同一の行に最初の行の最初のブロック，続く２番目のブロック等が順次書き込まれる。
【０１６２】
つぎに、画像のブロックの第２の行は、図２５（ｃ）に示すように画像４５８に繰返し書き込まれる。プロセスは続き、図２５（ｄ）において、画像のブロックの３番目の行が繰返し描かれる。３番目の行が完全に書き込まれると、３番目の行は画像の選択されたセクションの最後の行であるので、ブロックの最初の行から書き込みが開始され、図２５（ｄ）に示すように印刷される最終的な画像が完全に形成される。
【０１６３】
図２６および図２７は、画像反復プロセスを示すフローチャートである。プロセスが開始されると、ステップＳ４７０はリピートされる画像のセクションを選択する。この選択処理はユーザが自由に実行できるようにすることが好ましいが、これに代えて、ユーザインタフェース３０上の単一または複数のスイッチもしくはボタンがユーザにページの１／２，ページの１／４，ページの１／３または他の定義済みのリピートセクションを選択させるようにすることにしても良い。リピートされるセクションは、整数ブロックのみから構成されることが好ましい。
【０１６４】
しかし、必要に応じて、ユーザが画像の整数ブロック以外のものを選択することができるようにしても良い。つぎに、ステップＳ４７２は、リピートされる画像セクションの第１の（最初の）行のブロックについて処理を開始し、行の最初のＭ×Ｎブロックが選択されたセクションから読み出されてバッファに書き込まれる（Ｓ４７４）。ステップＳ４７６は、主走査方向においてバッファの最後が満たされたか否かを判定する。これがちょうど最初のブロックの場合、バッファはフル（full）の状態ではなく、フローはステップＳ４７８に進む。
【０１６５】
ステップＳ４７８は、その行（たとえば主走査方向）におけるつぎのＭ×Ｎブロックを読み出し、この情報をバッファに書き込むためのステップである。バッファの全ての行が満たされた場合（たとえば図２５（ｂ）を参照）、フローはステップＳ４８０に進み、バッファに記憶されているＭ本の主走査ラインを印刷する。なお、この特定の機能および例において、主走査および副走査方向を他の例と比較して逆にしても良いし、変数ＭおよびＮを逆にしても良く、どのような主走査および副走査方向が利用されても良い。そして、フローは、ステップＳ４８０から図２７に示されているプロセスＡに進む。
【０１６６】
図２７において、ステップＳ４８２は、印刷画像が副走査方向において完成したか否かを判定する。このステップは、画像全体が印刷されたか否かを判定するものである。画像全体が印刷された場合、図２６および図２７のプロセスは終了となる。画像全体の印刷が終了していない場合、フローはステップＳ４８４に進み、印刷されることになる選択された画像セクションのブロックの別の行があるか否かを判定する。
【０１６７】
印刷される選択された画像のブロックの別の行はないが、選択された画像セクションの最後の行がちょうど印刷されたような場合、フローは図２６のステップＳ４７２であるプロセスＢに進み、画像セクションの最初の行を再びバッファに書き込む処理を開始する。一方、印刷される選択された画像のブロックの別の行が存在する場合、ステップＳ４８６が実行され、選択された画像セクションのつぎの行に進む。そして、フローは、図２６のステップＳ４７４であるプロセスＣに進み、つぎの行の第１の（最初の）ブロックが読み出され、図２６のプロセスが続行される。
【０１６８】
この発明は、コンピュータ技術の当業者にとって明らかなように、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータまたはマイクロプロセッサを使用することによって簡単に実現することができるものである。適切なソフトウエアコーディングは、ソフトウエア技術の当業者にとって明らかなように、本開示の教示に基づいて、熟練したプログラマによって容易に準備することが可能なものある。また、本発明は、その技術の当業者にとって明らかなように、用途特化集積回路（application specific integrated circuit）を用意することによって、または従来の部品回路の適切なネットワークを相互に結びつけることによって実現可能なものである。
【０１６９】
本発明は、コンピュータにプログラムを供給し、本発明のプロセスをコンピュータに実行させるために用いることが可能な命令を含んだ記録媒体のようなコンピュータプログラムプロダクトを含むものである。以下のものに限定されるわけではないが、記録媒体には、フロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭおよび光磁気ディスクを含むあらゆる種類のディスク，ＲＯＭ・ＲＡＭ・ＥＰＲＯＭ・ＥＥＰＲＯＭ・磁気または光学カード，または電子的な命令を記憶することに適したあらゆる種類の媒体が含まれる。
【０１７０】
前述した教示を考慮することによって、本発明について様々な設計変更を行うことが可能であることは明らかである。したがって、特許請求の範囲における各請求項の範囲内で、ここで特に開示されたようなものとは別の方法で本発明を実施することが可能であると理解すべきである。
【０１７１】
本出願は、共通して所有される出願中の米国特許出願０９／１９１，１１２（代理人整理番号５２４４−００８６−２Ｘ）『スケーラブルなアーキテクチャを有したディジタル複写機』および米国特許出願０９／１９１，１１１（代理人整理番号５２４４−００８７−２Ｘ）『計算機命令および画像データを記憶する統合メモリを備えたディジタル複写機』に関連するものである。なお、これらは本出願の基礎出願と同時に米国において出願されたものであり、それらの内容は参照としてここに援用される。
【図面の簡単な説明】
【０１７２】
【図１】本発明にかかるディジタル複写機のシステム構成を示すブロック図である。
【図２】図１に示したユーザインタフェースを示す説明図である。
【図３】図１に示したスキャナおよびプロッタへのインタフェースを示すブロック図である。
【図４】画像処理の際のデータの流れを示すブロック図である。
【図５】別のバスを使用してスキャナおよびプロッタをホストブリッジに接続する代替的な実施の形態を示すブロック図である。
【図６】画像の向きを示す説明図である。
【図７】（ａ）〜（ｄ）は図６の画像を回転させて得た四つの画像を示す説明図である。
【図８】６つのブロックに分割され、回転させられる画像を示す説明図である。
【図９】図８に示した読み取り画像を回転するためのデータ処理のプロセスを示す説明図であり、（ａ）は画像の第１のＭラインを走査する処理を示す説明図であり、（ｂ）は画像の第１のブロックを回転させる処理を示す説明図である。
【図１０】図９に続き、図８に示した読み取り画像を回転するためのデータ処理のプロセスを示す説明図であり、（ｃ）は第１のブロックをメモリ中の該当する位置に書き込む処理を示す説明図であり、（ｄ）は画像の第２のブロックを回転させる処理を示す説明図である。
【図１１】図１０に続き、図８に示した読み取り画像を回転するためのデータ処理のプロセスを示す説明図であり、（ｅ）は第２のブロックをメモリ中の該当する位置に書き込む処理を示す説明図であり、（ｆ）は六つのブロック全てが回転させられた後のメモリ構成を示す説明図であり、（ｇ）は（ｆ）に示すように配列されたデータを用いて生成された回転画像を示す説明図である。
【図１２】（ａ）は図８の画像が１８０度回転させられた後にどのようにしてメモリに記憶されるのかを示す説明図であり、（ｂ）は（ａ）のように配列されたデータを使用して生成された画像を示す説明図である。
【図１３】画像を回転させる際に使用するプロセスを示すフローチャートである。
【図１４】（ａ）は図の上方から下方に向かう副走査方向を示す説明図であり、（ｂ）は（ａ）のようにして走査して得た画像を示す説明図である。
【図１５】（ａ）は図の下方から上方に向かう副走査方向を示す説明図であり、（ｂ）は（ａ）のようにして走査して得た画像を示す説明図であり、（ｃ）は副走査方向に平行な軸で反転された（ｂ）の画像を示す説明図である。
【図１６】（ａ）および（ｂ）は互いに関連するように反転された画像のブロック内の画像ピクセルを示す説明図である。
【図１７】印刷する直前に画像を回転させる処理を示すフローチャートである。
【図１８】（ｃ）は（ａ）および（ｂ）に示す画像の論理和をとった結果を示す説明図である。
【図１９】（ｃ）は（ｅ）のマスクを使用して（ａ）の画像をマスキングした結果を示す説明図であり、（ｆ）は（ｅ）のマスクを使用して（ｄ）の画像をマスキングした結果を示す説明図である。
【図２０】画像の各ブロックを使用して画像について論理演算を実行するプロセスを示すフローチャートである。
【図２１】（ａ）は画像を示す説明図であり、（ｂ）はリピートされることになる画像の部分を選択した場合を示す説明図であり、（ｃ）は（ｂ）の画像に示すようにして選択されたセクションをリピートすることによって生成された画像を示す説明図である。
【図２２】（ａ）は画像を示す説明図であり、（ｂ）は選択される画像のページ半分を示す説明図であり、（ｃ）は（ｂ）における選択に基づいて画像リピート機能を実行した結果を示す説明図である。
【図２３】画像リピート機能が実行されることになる画像のブロックの主走査および副走査方向を示す説明図である。
【図２４】（ａ）は画像リピート機能に使用される画像のすべてのブロックを示す説明図であり、（ｂ）は画像リピート機能に使用される（ａ）の画像において選択されたセクションを示す説明図である。
【図２５】（ａ）から（ｄ）は、リピートされることになる部分を含む画像を書き込むプロセスを示す説明図である。
【図２６】画像リピートプロセスを示すフローチャートである。
【図２７】画像リピートプロセスを示すフローチャートである。
【符号の説明】
【０１７３】
１０  マザーボード
１２  ＣＰＵ１２
１４，４８  ホストブリッジ
１６  メモリ
１８，２２，８６  インタフェース
２０  大容量記憶装置
２４  スキャンユニット
２６  プロットユニット
３０  ユーザインタフェース
３２  データ圧縮／伸長器
３４  ＦＡＸモデム
３８  ネットワークカード
４２  他のカード
４４，４６，９７  バス
５０  サイズインジケータ
５２  アップボタン
５４  ダウンボタン
５６  クリアボタン
５８  リセットボタン
６０  コピーボタンまたはコピーキー
６２  暗方向ボタン
６４  明方向ボタン
６８  ＬＥＤ
６６  マーク
７０  ディスプレイ
７２  ナンバーパッドおよび他のボタン／スイッチ入力部
８０  ＤＭＡリードバッファ
８２  ＣＳＲバッファ
８４  コントロールおよびステータスレジスタ
８８  ＰＣＩターゲットコントローラ
９０  ＰＣＩマスタコントローラ
９２  プロットインタフェースおよびプロセッサ
９４  プロットデータＲＡＭ
９５  ポート
９６  スキャンインタフェースおよびプロセッサ
９８  スキャンデータＲＡＭ
１００  ＤＭＡライトバッファ
１０２  マルチプレクサ
【図１】
2007129741.tif 000003
【図２】
2007129741.tif 000004
【図３】
2007129741.tif 000005
【図４】
2007129741.tif 000006
【図５】
2007129741.tif 000007
【図６】
2007129741.tif 000008
【図７】
2007129741.tif 000009
【図８】
2007129741.tif 000010
【図９】
2007129741.tif 000011
【図１０】
2007129741.tif 000012
【図１１】
2007129741.tif 000013
【図１２】
2007129741.tif 000014
【図１３】
2007129741.tif 000015
【図１４】
2007129741.tif 000016
【図１５】
2007129741.tif 000017
【図１６】
2007129741.tif 000018
【図１７】
2007129741.tif 000019
【図１８】
2007129741.tif 000020
【図１９】
2007129741.tif 000021
【図２０】
2007129741.tif 000022
【図２１】
2007129741.tif 000023
【図２２】
2007129741.tif 000024
【図２３】
2007129741.tif 000025
【図２４】
2007129741.tif 000026
【図２５】
2007129741.tif 000027
【図２６】
2007129741.tif 000028
【図２７】
2007129741.tif 000029