JP2004214892A - Image forming apparatus - Google Patents

Image forming apparatus Download PDF

Info

Publication number
JP2004214892A
JP2004214892A JP2002381150A JP2002381150A JP2004214892A JP 2004214892 A JP2004214892 A JP 2004214892A JP 2002381150 A JP2002381150 A JP 2002381150A JP 2002381150 A JP2002381150 A JP 2002381150A JP 2004214892 A JP2004214892 A JP 2004214892A
Authority
JP
Japan
Prior art keywords
data
memory
block
raster data
image
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.)
Granted
Application number
JP2002381150A
Other languages
Japanese (ja)
Other versions
JP4065194B2 (en
Inventor
Michitaka Fukuda
道隆 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002381150A priority Critical patent/JP4065194B2/en
Publication of JP2004214892A publication Critical patent/JP2004214892A/en
Application granted granted Critical
Publication of JP4065194B2 publication Critical patent/JP4065194B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image forming apparatus which reduces memory access. <P>SOLUTION: When image data stored in DRAMs 6103 and 6104 are subjected to rotation processing, the image data are previously treated by the block, and the image data for one block are transmitted to EDIT 6147. When it is determined through CMP 6199 that the same image data are present by the block, the same image data are not read by EDIT 6147, the result of the rotation processing is left in a block buffer, the image data read already are reused, and only a write address is changed. By this setup, rotation processing is more quickly carried out. Memory access is reduced in frequency, and the image forming apparatus is reduced in power consumption. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は画像形成装置に関するものであり、特にメモリアクセスを低減する画像形成装置に関する。
【0002】
【従来の技術】
スキャナやホストインターフェースなどによる画像入力装置と、プリンタ、ネットワーク出力などの画像出力装置を組み合わせた複合機、もしくは単体プリンタなどの画像形成装置において、集約機能や用紙向きに合わせて画像データを受信して任意の方向へ回転処理や、受信したデータをハードディスクに保存を行う場合がある。しかし一般に画像データはデータ量が大きく、各々の処理は長い時間を要する。これは言い換えると、メモリアクセスの負荷が重いことを表している。このような事情により、画像データを何らかの方式で圧縮処理するとか、メモリをより高速なものに替えたりしながら対応してきている。
【0003】
ところで、隣り合う画像データは同じである可能性が高いということは経験的にも知られていることであり、この状況を踏まえて、最初に圧縮処理や保存処理といった所定の処理を施したデータと同じデータに対しては、再度同じ処理を施したりすることなく、最初のデータを再利用する技術がある。
【0004】
例えば、特許文献1に記載の技術では、メモリアクセスの負荷の低減というよりもむしろデータの圧縮効率を高めることを目的としたものであるが、この技術では特にフォントデータに関しては、列方向に連続するイメージデータ列において隣り合う2列前のデータ列の反復性を利用し、2列前のデータ列と同一のデータ列に対しては圧縮処理を行わないような方法を採っている。
【0005】
【特許文献1】
特開平8−337020号公報
【0006】
【発明が解決しようとする課題】
本発明はいずれもこれらを鑑みてなされたものであり、特に隣り合う画像は同じである可能性が高いという性質を利用してメモリアクセスを低減し、各処理をより高速に行うことを目的としている。
【0007】
請求項1に係る発明では、非圧縮、もしくは固定長圧縮されたラスターデータの回転処理を行う際、低速メモリから高速メモリにブロックごとに移し、高速メモリからブロックの一部(ユニット)を切り出して、フリップフロップでラッチし、ラッチされたデータは任意の方向に切り出して高速メモリに書き戻し、ブロック内のユニット処理が全て終了したら、高速メモリから低速メモリへバーストアクセスで書き戻すようにすることで、低速メモリから高速メモリにブロックごとに移す時間を低減することを可能にする画像形成装置を提供することを目的とする。
【0008】
請求項2に係る発明では、非圧縮、もしくは固定長圧縮されたラスターデータの回転処理を行う際、低速メモリから高速メモリにブロックごとに移し、高速メモリからブロックの一部(ユニット)を切り出して、フリップフロップ群でラッチし、ラッチされたデータは任意の方向に切り出して高速メモリに書き戻し、ブロック内のユニット処理が全て終了したら、高速メモリから低速メモリへバーストアクセスで書き戻すようにすることで、高速メモリからフリップフロップ群にユニットごとに移す時間を低減することを可能にする画像形成装置を提供することを目的とする。
【0009】
請求項3に係る発明では、非圧縮、もしくは固定長圧縮されたラスターデータをハードディスクに格納する際、低速メモリから高速メモリにブロックごとに移し、高速メモリからブロックを切り出して、ハードディスクに転送することで、低速メモリから高速メモリにブロックごとに移す時間を低減する画像形成装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
かかる目的を解決するため、請求項1に記載の発明は、非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信されたラスターデータを回転処理ブロック単位に比較する比較手段と、ラスターデータを書き込むメモリと、メモリに書き込まれたラスターデータを任意の方向へ回転処理する回転手段を備えた画像形成装置であり、回転手段による回転処理の際、特に隣り合うブロックのラスターデータと比較して同じだった場合には、メモリからラスターデータを読まずに回転処理バッファメモリにあるラスターデータを再利用することを特徴とする。
【0011】
請求項2に記載の発明は、非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信されたラスターデータを回転処理ユニット単位に比較する比較手段と、ラスターデータを書き込むメモリと、メモリに書き込まれたラスターデータを任意の方向へ回転処理する回転手段を備えた画像形成装置であり、回転手段による回転処理の際、特に隣り合うユニットのラスターデータと比較して同じだった場合には、回転処理バッファメモリからラスターデータを読まずにユニットにあるラスターデータを再利用することを特徴とする。
【0012】
請求項3に記載の発明は、非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信されたラスターデータを回転処理ブロック単位に比較する比較手段と、ラスターデータを書き込むメモリと、ラスターデータをハードディスク等に読み書きできる制御手段を備えた画像形成装置であり、制御手段がハードディスクに書き込む際、特に隣り合うブロックのラスターデータと比較して同じだった場合には、メモリからラスターデータを読まずにハードディスクへ書き込むバッファメモリにあるラスターデータを再利用することを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態(実施例1〜3)を図面を参照して説明するが、最初に各実施例を行うさいの共通の動作の説明をしておく。共通の動作の説明としては、(1)初期化、(2)コピー動作、(3)プリンタ動作、(4)スキャナ動作、(5)ネットワークアプリケーション動作を取り上げる。本実施形態で説明する技術はこれらの動作処理に適用可能であり、さらにこれら以外に関連する動作処理に対しても適用可能である。
【0014】
(各実施例に共通の動作の説明)
まず前記の共通の動作を行う画像形成装置として、複合機の基本構成と、共通とする基本動作およびその基本機能の説明をする。
【0015】
(1)初期化
初期化の動作処理を説明するために、複合機の基本構成のブロック図を図7に示す。また、図7のブロック図を構成する要素及びその機能を以下に示す。
【0016】
6001:CPU
6002:ASIC
6003:操作部
6004:IEEE1284 ホストI/Fである。
6005:ネットワークI/F
6006:ROM0 OS及び基本アプリケーションプログラムを含むROMである。
6007:ROM1 オプションアプリケーションを含むROMである。
6008:ROM2 オプションアプリケーションを含むROMである。
6009:NVRAM バックアップ可能なRAM、システムの設定などを保存する。
6010:MEM0 標準実装されているメモリである。
6011:MEM1 オプションで追加されるメモリである。
6012:HDD
6013:オプションデバイス プリンタアプリケーションなどのオプションI/Fである。
6014:FAX ファックスユニット(オプション)
6015:エンジン スキャナとプロッタを備える。
6016:コントローラ
6017:PCIバス エンジンI/Fとオプションバスを兼ねる。
【0017】
電源が投入されるとエンジン(6015)は搭載されているCPUにより、各機能が初期化され、コントローラ(6016)の初期化が終わって、コマンドを受信するまで待機状態になる。
【0018】
コントローラ(6016)の初期化は、電源が投入されるとASIC(6002)にリセット信号が入力され、ASIC(6002)はそれぞれリセットが必要なデバイスにリセット信号を分配する。CPU(6001)はリセット信号がアサートされ、ネゲートされるとCPU(6001)のリセットベクターの命令をフェッチしようとする。ASIC(6002)はCPU(6001)のフェッチ信号を受け取るとアドレスをデコードして、初期化プログラムの格納されているROM0(6006)のCS信号をアサートし、CPU(6001)が要求したアドレスの内容(命令コードあるいはデータ)を読み出して、CPU(6001)へ渡す。CPU(6001)はASIC(6002)に命令の読み出しを繰り返し要求し、ASIC(6002)はそのアドレスに応じてROM0(6006)の命令コードあるいはデータをCPU(6001)へ渡す。このようにしてCPU(6001)はプログラムを実行することができる。
【0019】
この初期化プログラムでは、CPU(6001)の初期化、ASIC(6002)に接続されるメモリ(6010)とオプションメモリ(6011)の初期化、PCI(6017)の初期化、エンジン(6015)の初期化、操作部(6003)の初期化、HDD(6012)の初期化、ホストと接続されるIEEE1284(6004)の初期化、ネットワークI/F(6005)の初期化、また、必要に応じて、FAX(6014)の初期化、オプション(6013)の初期化を行い、その後アプリケーションを起動する。
【0020】
ASIC(6002)のROM0(6006)のアクセス時間は、データバス幅に依存するが、ASIC(6002)の外部端子数を少なく抑えるために、16bitや8bitなどのようにCPU(6001)のデータバス幅よりも少ないbit数で構成されることが多い。また、場合によってはbit数が4bit、1bitなどのようなシリアルデバイス、たとえば、SEEPROM、SDカード、メモリスティックのようなデバイスを使用した場合には特に遅くなる。
【0021】
参考までに上述した種々の初期化のうちの幾つかに関して詳細な説明をする。
【0022】
・CPU(6001)の初期化
CPU(MIPS系)は、ブートコンフィグデータをASICから読み取り、リセット解除後、命令のフェッチを開始し、コールドリセットか、それ以外によるリセット例外かどうかの判定、ASICのローカルバスのアクセスタイミングの初期化、CPU内のキャッシュの初期化、TLBの初期化、例外ベクターの設定、コプロセッサの初期化を行う。
【0023】
・メモリ(6010、6011)の初期化
標準で実装されるメモリ(以下、標準メモリと呼ぶ)のタイミングにかかわるパラメータを決定する前に、オプションのメモリが存在するかどうか確認し、もし、存在すれば、オプションメモリの情報を格納してあるSEEPROMをアクセスして、そのメモリの容量、速度、構成を読み出し、標準メモリとタイミングを比較し、遅いほうのタイミングを使用して、ASICに設定を行い、メモリの初期化を行う。その後、割り込みベクターの設定、RAMのデータ領域への初期値の設定などを行う。
【0024】
・PCI(6017)の初期化
ASICの内部レジスタのコンフィグ用レジスタを使用して、PCIバスに存在する全デバイスのサーチを行い、デバイスのタイプを判断して、バスブリッジがあれば、その先のバスのデバイスをサーチする。すべてのデバイスの列挙が完了したら、PCIのアドレス空間にマッピングを行う。
ASIC管理下のメモリの先頭アドレスを0x0000.0000としてマッピングを行い、その他のデバイスは、ASICのレジスタ空間に用意されたPCIメモリ空間アクセスウインドウあるいはPCI I/O空間アクセスウインドウ内にマッピングする。マッピングが完了したら、それぞれのデバイスのコマンドレジスタのバスマスタイネーブル、メモリイネーブル、IOイネーブルビットに1を設定して、デバイスが動作する状態にする。
【0025】
・エンジン(6015)の初期化
エンジンとコントローラの通信は、エンジン側PCIデバイスが持つ送信バッファ/受信バッファを介して行う。
【0026】
・操作部(6003)の初期化
操作部とコントローラは操作部I/Fを介して接続され、送信と受信は全二重で行われる。あらかじめ決められているパケットサイズで、パケット通信を行い、操作部にシステムが初期化中であることを表示させる。
【0027】
・HDD(6012)の初期化
HDDが接続されているかどうかの確認を行い、HDDが接続されている場合には、HDDの情報を読み出し、あとで利用するために管理情報をメモリに格納する。
【0028】
コントローラ(6016)に搭載されるソフトウエアの構成は図8のようになっている。また、図8に示すソフトウェアの構成要素を以下に示す。
【0029】
5001:PRINT−APL プリントアプリケーション
5002:COPY−APL コピーアプリケーション
5003:FAX−APL ファックスアプリケーション
5004:SCAN−APL スキャナアプリケーション
5005:NETWORK−APL ネットワークアプリケーション
5006:サービス−API サービス層のアプリケーションプログラミングインターフェースである。
5007:ECS エンジンコントロールサービス
5008:MCS メモリコントロールサービス
5009:OCS オペレーションパネルコントロールサービス
5010:SCS システムコントロールサービス
5011:NCS ネットワークコントロールサービス
5012:FCS ファックスコントロールサービス
5013:SRM システムリソースマネージャー
5014:汎用OS UNIXライクなOSである。
5015:エンジンコマンドI/F エンジンと通信するためのプログラミングインターフェースである。
5016:エンジンハードウエア エンジン本体である。
5017:コントローラハードウエア コントローラのハードウエアリソースである。
【0030】
CPUやASICに依存する部分はデバイスドライバ層で吸収することで、異なるCPUや異なるASICでも移植が容易になるように構成されている。アプリケーションが起動すると操作部(6003)には、デフォルトでコピーアプリケーションの操作画面が表示され、ユーザの指示待ちになる。
【0031】
ASIC(6002)の内部構成図を図9に示す。また、図9に示す各構成要素、およびその機能を以下に示す。
【0032】
6101:CPU
6102:ASIC
6103:MEM0 標準実装されているメモリである。
6104:MEM1 オプションで追加されるメモリである。
6105:Arbiter メモリアービタ
6106:Ramc メモリのコントロールを行うラムコントローラである。
6107:cpuif CPUにあわせて、ASIC内部のレジスタアクセスやメモリアクセスを行うためのCPUバスプロトコル解釈部である。
6108:IREG ASICの内部レジスタである。
6109:lbc CPUのプログラムを格納したROMなどを接続するためのバスを制御するローカルバスコントローラである。
6110:ローカルバスのデータバス 16bit幅を持ち、アドレスの一部とマルチプレクスされる。
6111:ローカルバスの制御線とアドレス信号 6110でマルチプレクスされていない下位のアドレスとアドレスをデコードして作られたチップセレクト信号と、リード信号、ライト信号などを含む。
6112:SDカード用DMAC SDカードからデータを読み書きするためのDMACで、リードあるいはライトの動作が可能な1次元DMACである。
6113:SDカードブートセレクタ SDカードからのCPUブートとDMACを利用したSDカードアクセスを切り替えるためのセレクタ。SDカードからのCPUブートが選択された場合は、CPUのリセット後の最初の命令フェッチはSDカードから行われる。
6114:SDC 外部に接続されたSDカードをプロトコルに従ってアクセスするSDカードコントローラである。
6115:SDカード用信号 SDカードと接続される信号である。
6116:HDC ATA100のHDDを制御することができるハードディスクコントローラである。
6117:DATA−DMAC HDDのデータを転送するためのDMACで、1次元転送と2次元転送が可能である。
6118:CMD−DMAC HDDのコマンドを転送するためのDMACである。
6119:CD1 圧縮あるいは伸長ができる圧縮伸長器1である。
6120:CD1用画像用DMAC 画像の入出力用のDMACで、圧縮時は入力、伸長時は出力で動作する。
6121:CD1用符号用DMAC 符号の入出力用のDMACで、圧縮時は出力、伸長時は入力で動作する。
6122:CD2 圧縮あるいは伸長ができる圧縮伸長器2である。
6123:CD2用画像用DMAC 画像の入出力用のDMACで、圧縮時は入力、伸長時は出力で動作する。
6124:CD2用符号用DMAC 符号の入出力用のDMACで、圧縮時は出力、伸長時は入力で動作する。
6125:CDセレクタ どの圧縮伸長器とHDDを接続するか選択するためのセレクタである。
6126:ビデオセレクタ どの圧縮伸長器の伸長出力とビデオDMACへの入力へ接続するか選択するためのセレクタである。
6127:ビデオ画像用FIFO ビデオ画像用の出力FIFOである。
6128:ビデオ画像用シフタ 出力時に画像のシフトを行う。
6129:ビデオ合成器 出力時に画像とスタンプの合成を行う。合成を行わないことも可能で、その場合は、画像とスタンプは別々の出力を行う。
6130:ビデオ用画像出力DMAC ビデオ画像用の出力用DMACである。
6131:スタンプ用FIFO スタンプ用の出力FIFOである。
6132:スタンプ用DMAC スタンプ用の出力用DMACである。
6133:画像入力用FIFO
6134:画像入力用DMAC
6135:PCI用ダイレクトパス PCIバス側から、メモリをアクセスする場合のデータパスである。
6136:IEEE1284入力用DMAC IEEE1284のデータを入力するためのDMACである。
6137:IEEE1284コントローラ IEEE1284のプロトコルを解釈してデータ転送を行う。
6138:操作部コントローラ 操作部のデータ転送を行う。
6139:操作部送信用DMAC 操作部へのデータ出力用のDMACである。
6140:操作部受信用DMAC 操作部からのデータ入力用のDMACである。
6141:MAC用送信DMAC ネットワーク送信を行う。
6142:MAC用受信DMAC ネットワーク受信を行う。
6143:MAC メディアアクセスコントローラ
6144:編集器用入力1DMAC
6145:編集器用入力2DMAC
6146:編集器用出力DMAC
6147:EDIT 画像の合成あるいは回転を行う編集器である。
6148:CLR 設定したデータで領域をフィルする画像クリアコントローラである。
6149:画像クリアDMAC 2次元あるいは1次元のメモリフィルが可能である。
6150:HDDインターフェース信号
6151:PCI−Arbiter 外部およびASICのPCIアクセスのアービトレーションを行う。
6152:PCI−Master PCIのマスタアクセスを行う。
6153:PCI−CONFIG PCIコンフィグレジスタである。
6155:IEEE1284インターフェース信号
6156:操作部インターフェース送信用信号
6157:操作部インターフェース受信用信号
6158:PHY接続信号 MACとPHYを接続するMII信号である。
6159:PCI−Target PCIターゲットとしてアクセスされた場合に応答する。
6199:CMP PCIから入力される画像をユニット比較や、ブロック比較など行う。
【0033】
また、ASIC(6002)の管理する物理アドレスとメモリマップを図10に示す。
【0034】
各種デバイスの初期化が完了すると汎用OS(5014)は、システムのコンフィグ情報にもとづいてアプリケーションを起動する。
ただし、FAXユニット(6014)が存在しない場合は、FAXアプリケーション(5003)は起動しない。
【0035】
アプリケーション起動後、操作部(6003)には、デフォルトでコピー操作画面が表示される。また、デフォルトの画面は変更することが可能である。
【0036】
(2)コピー動作
コピー動作に必要な構成要素を含む複合機のブロック図を図11に示す。また、図11のブロック図を構成する要素及びその機能を以下に示す。
【0037】
6301:コントローラ
6302:エンジン
6303:FAX
6304:オプション
6305:CPU
6306:ASIC
6307:MEM
6308:操作部
6309:HDD
6310:Vin ビデオ入力を表す。
6311:Vout ビデオ出力を表す。
6312:HDC HDDコントローラである。
6313:CD2 圧縮伸長器2
6314:CD1 圧縮伸長器1
6315:EDIT 編集器
6316:OPC 操作部コントローラ
6317:LBC ローカルバスコントローラ
6318:ROM プログラム/文字フォントが格納されたROMである。
6319:SDC SDカードコントローラ
6320:SDカード
6321:MAC ネットワークコントローラ
6322:Engine−ASIC エンジンASIC
6323:エンジンCPU エンジンの制御を行う。
6324:エンジンROM エンジン制御のプログラムを格納したROMである。
6325:エンジンRAM エンジン制御に必要なメモリである。
6326:出力用画像処理 ガンマ補正などを行う。
6327:PLOTTER 画像出力ユニット
6328:SCANNER 画像入力ユニット
6329:入力用画像処理 シェーディング補正、ガンマ補正などを行う。
【0038】
コピー動作の中には、ユーザ指定によりさまざまなモードがある。一部を表1に示す。
【0039】
【表1】

Figure 2004214892
【0040】
他にもモードはあるが省略し、単純コピー(1toNコピー:N=1の場合)について、画像の流れを図12で説明する。また、図12に記載の各符号の説明を以下に示す。
【0041】
6401:入力原稿
6402:入力原稿画像の流れ
6403:メモリに読み込まれた画像:入力画像データ
6404:メモリ上の画像を圧縮する画像の流れ
6405:画像圧縮後の符号データ
6406:符号をHDDに格納する流れ
6407:メモリ上の画像を出力する流れ
6408:出力画像のプロットされた用紙
【0042】
操作部(6308)にあるスタートキーを押下することにより、外部イベントを監視しているSCS(5010)がスタートキー押下を検知し、現在、操作部(6308)でアクティブになっているアプリケーションであるコピーアプリケーション(5002)に、スタートキーが押されたことを通知する。
【0043】
コピーアプリケーション(5002)は、現在の操作部(6308)で選択されているモードから、単純に原稿をスキャンして、1枚原稿を読み取り、1枚出力することが要求されていること検知する。コピーアプリケーション(5002)は、原稿を1枚読み取って、1枚出力するために必要なシステムリソースを確保するようにSCS(5010)に要求し、システムリソースを確保できる場合には、MCS(5008)に、原稿を1枚読んで、その原稿と等しいサイズで1枚原稿を出力するように要求を出す。MCS(5008)は、必要なメモリをSRM(5013)に要求し、確保してから、ECS(5007)に原稿を1枚読んで、その原稿と等しいサイズで1枚原稿を出力するように要求を出す。するとECS(5007)は汎用OS(5014)へ、コマンドを発行するように要求する。汎用OS(5014)はデバイスドライバーを呼び出して、エンジンコマンドI/F(5015)を経由して、エンジン(5016)にコマンドを発行する。エンジン(6302)のASIC(6322)の通信バッファ経由で、エンジンCPU(6323)が、コマンドを受け取ると、自動原稿搬送装置上の原稿を読み取るために、スキャナ(6328)の制御をする。
【0044】
入力原稿画像の流れ(6402)が示すように、入力原稿(6401)は、スキャナ(6328)の原稿搬送装置により、プラテンガラス上に搬送され、キャリッジが走査することで入力画像がCCD経由で読み取られ、入力画像処理部(6329)により、量子化され、画像補正されて、エンジンASIC(6322)へ転送される。それに先立ってコントローラ(6301)では、Vin(6310)の設定を完了しており、エンジンASIC(6322)から、画像データを転送することで、メモリ(6307)上に、画像データ(6403)を格納する。
【0045】
エンジンASIC(6322)とASIC(6306)との接続は、PCIバスを介して行われ、エンジンASIC(6322)がマスターとなってライト動作をし、ASIC(6306)のVin(6310)の入力がターゲットとして動作する。画像の転送は、読み取り時に作る擬似ラインシンクに同期して、ライン単位で転送のタイミングが取られ、ライン内ではあらかじめ決められたバースト長に従って、バースト転送が繰り返される。画像入力のタイミングを図13に、画像転送のタイミングと動作を図14に示す。また、図13、14に記載されている符号の説明を以下に示す。
【0046】
1801:用紙サイズ 主走査と副走査できまる用紙サイズをあらわす。
1802:FGATE 用紙の副走査の有効範囲を示す信号である。
1803:LGATE 用紙の主走査の有効範囲を示す信号である。
1804:LSYNC 主走査の先頭でアサートされる同期信号である。
1901:LSYNC ラインシンク
1902:DREQ データリクエスト
1903:DATA 1ライン分のデータ転送である。
1904:XREQ PCIバスのバスリクエスト信号である。
1905:XGNT PCIバスのバスグラント信号である。
1906:TRANZ PCIバスのバストランザクションである。
1907:PCICLK PCIの基本クロックである。
1908:XFRAME PCIのFRAME信号である。
1909:XDEVSEL PCIのDEVSEL信号である。
1910:XIRDY PCIのIRDY信号である。
1911:XTRDY PCIのTRDY信号である。
1912:AD[31:0] PCIのアドレス/データバス信号である。
1913:CBE[3:0] PCIのコマンド/バイトイネーブル信号である。
【0047】
同様に、画像出力時は、ポリゴンの回転周期などから作成されるラインシンクに同期して、ライン単位で転送のタイミングが取られ、ライン内ではあらかじめ決められたバースト長に従って、バースト転送が繰り返される。
【0048】
メモリ(6307)上に格納された画像データ(6403)は、ジャム時のリカバリーのため、あるいは、あとで電子文書としてネットワークなどから、利用するためにHDD(6309)に蓄積する。HDD(6309)への蓄積は、圧縮データであったり、非圧縮データであったりする。圧縮した結果が圧縮前よりもデータ量が多い場合などは、非圧縮データで蓄積する。圧縮画像の流れ(6404)が示すように、圧縮伸長器2(6313)を使って、入力画像データ(6403)を圧縮して、符号データ(6405)をメモリ(6307)上に格納する。
【0049】
メモリ(6307)上に格納された1ページ分の符号データ(6405)を、複数のブロックに分割して、複数回のディスクアクセスに分解して、HDD(6309)へ蓄積する。1ページ分のHDDアクセスを連続で行うとネットワークからの電子文書アクセス要求が来た場合に、1ページ分の符号蓄積完了まで、応答が遅れてしまうので、ディスクアクセスは分割して行っている。
【0050】
HDD(6309)への符号データ(6405)蓄積と並行して、画像データ(6403)を出力する。MCS(5008)は、画像の入力が始まると画像出力の要求をECS(5007)に出す。ECS(5007)は汎用OS(5014)へ、画像出力コマンドを発行するように要求する。汎用OS(5014)はデバイスドライバーを呼び出して、エンジンコマンドI/F(5015)を経由して、エンジン(5016)にコマンドを発行する。エンジン(6302)のASIC(6322)の通信バッファ経由で、エンジンCPU(6323)が、コマンドを受け取ると用紙トレイから、指定されたサイズの用紙を搬送するようにプロッタ(6327)の制御をする。エンジン(6302)側のタイミングで、Vout(6311)のFIFOから、画像データ(6403)を読み出して、用紙にプロットする。それに先立って、MCS(5008)は、Vout(6311)のDMACの設定をして、起動しておく。
このように動作することで、単純コピー(1toN:N=1)を行う。
【0051】
(3)プリンタ動作
プリンタ動作に必要な構成を含むブロック図は図11と同様である。
データの流れと処理を図15で説明する。また、図15に記載の各符号の説明を以下に示す。
【0052】
6501:ホストから、印字命令を含むファイルを受信する。
6502:印字命令を含むファイル
6503:印字命令を解釈し、CPUで描画する。
6504:描画された画像
6505:メモリ上の画像を圧縮する画像の流れ
6506:圧縮された符号
6507:HDDに蓄積する流れ
6508:出力のために画像を伸長する流れ
6509:出力画像
6510:出力の画像の流れ
6511:出力画像のプロットされた用紙
【0053】
ホストI/Fに接続されたホストから印刷命令を含むデータが転送されてくる(6501)とSCS(5010)は、印刷命令データ(6502)を受信して、プリンタアプリケーション(5001)に通知する。プリンタアプリケーション(5001)は、印刷命令データ(6502)を解釈し、CPU(6305)は画像の描画を開始する(6503)。それと並行してプリンタアプリケーション(5001)は、MCS(5008)に画像出力を要求する。するとMCS(5008)はSCS(5010)に、画像出力のためのリソースを要求する。SCS(5010)は、要求されたリソースが使用可能になると使用可能であることをMCS(5008)に通知し、出力の準備が整う。
【0054】
プリンタアプリケーション(5001)は、描画の完了した画像(6504)をMCS(5008)に渡す。MCS(5008)は、描画された画像(6504)を圧縮伸長器1(6314)を使って圧縮する(6505)。圧縮された符号(6506)は、ジャム時のリカバリーで使うため、あるいは、ネットワークなどから電子文書として利用するためにHDD(6309)に蓄積される。描画は、画像出力よりも高速に行われるため、画像を圧縮した符号(6506)が複数ページ分メモリ(6307)上とHDD(6309)にたまっていく。
【0055】
MCS(5008)は出力の準備が整うと印刷順に符号(6506)を圧縮伸長器2(6313)を使って、メモリ(6307)上に出力用画像(6509)を伸長し、Vout(6311)のDMACを出力用に設定して、起動をかけ、ECS(5007)に画像出力を指示する。
【0056】
ECS(5007)は、汎用OS(5014)へ、画像出力コマンドを発行するように要求する。汎用OS(5014)はデバイスドライバーを呼び出して、エンジンコマンドI/F(5015)を経由して、エンジン(5016)にコマンドを発行する。エンジン(6302)のASIC(6322)の通信バッファ経由で、エンジンCPU(6323)が、コマンドを受け取ると用紙トレイから、指定されたサイズの用紙を搬送するようにプロッタ(6327)の制御をする。エンジン(6302)側のタイミングで、Vout(6311)のFIFOから、画像データ(6509)を読み出して、用紙にプロットする。
【0057】
(4)スキャナ動作
スキャナ動作に必要な構成を含むブロック図は図11と同様である。
データの流れと処理を図16で説明する。また、図16に記載の各符号の説明を以下に示す。
【0058】
6601:入力原稿
6602:読み取った画像データの流れ
6603:画像データ
6604:CPUによるメモリ上の画像データを圧縮する画像の流れ
6605:圧縮された符号データ
6606:HDDに蓄積する流れ
6607:ホストI/Fを経由して、ホストに転送される符号データの流れ
【0059】
ユーザーは、操作部(6308)のデフォルトのコピーメニュー画面から、スキャナ機能選択ボタンを押下することで、スキャナメニュー画面に移動することができる。SCS(5010)は、操作部(6308)でスキャナ機能が選択されたことを検知するとそれをスキャナアプリケーション(5004)に通知する。スキャナアプリケーション(5004)は、操作部(6308)にメニュー画面を表示するようにOCS(5009)に指示を出す。
【0060】
ユーザーは原稿を自動原稿搬送装置に置いて、読み取りのモードを設定し、スタートキーを押下する。SCS(5010)はスタートキーが押下されたことを検知するとスキャナアプリケーション(5004)に、スタートキーが押されたことを通知する。スキャナアプリケーション(5004)は、現在選択されているモードを使って、原稿をスキャンするようにMCS(5008)に指示を出す。
【0061】
MCS(5008)は、原稿をスキャンするのに必要なリソースをSCS(5010)に要求する。SCS(5010)は、要求されたリソースが使える状態になるとそのことをMCS(5008)に通知する。
【0062】
MCS(5008)は、ECS(5007)に原稿を1枚読むように要求を出す。するとECS(5007)は汎用OS(5014)へ、コマンドを発行するように要求する。汎用OS(5014)はデバイスドライバーを呼び出して、エンジンコマンドI/F(5015)を経由して、エンジン(5016)にコマンドを発行する。エンジン(6302)のASIC(6322)の通信バッファ経由で、エンジンCPU(6323)が、コマンドを受け取ると、自動原稿搬送装置上の原稿を読み取るために、スキャナ(6328)の制御をする。
【0063】
MCS(5008)は、読み取りに先立って、Vin(6310)のDMACに設定をし、起動をかけておく。エンジン(6302)は、スキャナ(6328)を制御して入力原稿(6601)の画像を読み込み、画像入力に必要な画像処理を行う画像処理部(6329)を経由して、エンジンASIC(6322)に画像を送る。基本的な動作はコピー動作時の画像入力と同じである。
【0064】
スキャナ(6323)からメモリ(6307)までの入力画像の流れ(6602)を通って、画像データ(6603)はMEM(6307)上に格納される。スキャナ動作で扱われる画像データ(6603)のデータフォーマットは、白黒では8bit多値あるいは1bit2値、カラーではRGB各8bit多値のデータである。外部のホストPCに、適した画像フォーマットに変換するためにCPU(6308)で、ソフト処理で変換する。変換後の符号データ(6605)は、メモリ(6307)に格納される。場合によっては、変換しない場合もある。スキャナアプリケーション(5004)のモードに応じて、符号データ(6605)をHDD(6309)に格納したり(6606)、ホストPCへホストI/Fを経由して、符号データ(6605)を転送する(6607)。
【0065】
(5)ネットワークアプリケーション動作
ネットワークアプリケーション動作に必要な構成を含むブロック図は図11と同様である。
データの流れと処理を図17で説明する。また、図17に記載の各符号の説明を以下に示す。
【0066】
6701:HDDから、要求された文書(画像データ)を取り出す流れ
6702:コピー動作時に蓄積された文書データ
6703:スキャナ動作時に蓄積された文書データ
6704:サムネールの画像データ
6705:符号データから、サムネールを作成するCPU処理の画像の流れ
6706:画像データから、サムネールを作成するCPU処理の画像の流れ
6707:符号データをホストに送る流れ
6708:画像データをホストに送る流れ
6709:サムネールデータをホストに送る流れ
6710:出力画像の流れ
6711:出力画像
【0067】
ネットワークアプリケーションとは、ネットワークからHDDに蓄積された文書を扱うアプリケーションで、ホストからの要求に応じて、サムネールを作成したり、ホストに転送したり、印刷したり、別の複合機に転送したり、サーバーに転送したするアプリケーションである。
【0068】
ネットワークに接続されたホストから、HDD(6309)に蓄積された文書の一覧要求がくるとSCS(5010)は、ネットワークアプリケーション(5005)に、一覧要求がきたことを通知する。
【0069】
ネットワークアプリケーション(5005)は、必要なリソースをSCS(5010)に要求する。SCS(5010)は、要求されたリソースが利用可能になったことをネットワークアプリケーション(5005)に通知し、ネットワークアプリケーション(5005)は、HDD(6309)に蓄積されている文書のサムネールをMCS(5008)に要求する。MCS(5008)は、HDD(6309)に蓄積されている文書を、データフォーマットに従った処理をして、サムネールデータを作成し、ネットワークアプリケーション(5005)に渡す。HDD(6309)に蓄積された文書は、メモリ(6307)に読み出され(6701)、圧縮や変換のされていない画像データ(6702)は、CPU(6305)により、サムネール(6704)が作成され(6706)、圧縮や変換されている符号データ(6703)はCPU(6305)により、いったん、元の画像の戻されてから、サムネール(6704)が作成され(6705)、ホストに転送される(6709)。
【0070】
ネットワークアプリケーション(5005)は、HDD(6309)内の文書のサムネールを、ホストの解釈できるファイルフォーマットに変換して、たとえば、ホストがブラウザーで閲覧しているのであれば、html形式、専用アプリケーションで閲覧しているのであれば、専用の形式に変換してホストに転送する。ホストはサムネールを受け取るとユーザの処理待ちになり、たとえば、ユーザがある文書を選択して、ホスト側に転送するように要求を出すと、ブラウザーあるいは専用アプリケーションは指定された文書をホストに転送するように複合機に指示を出す。ホストからの転送要求を受け取るとSCS(5010)は、ネットワークアプリケーション(5005)に、文書転送の要求がきたことを通知する。
【0071】
ネットワークアプリケーション(5005)は、必要なリソースをSCS(5010)に要求する。SCS(5010)は、要求されたリソースが利用可能になったことをネットワークアプリケーション(5005)に通知し、ネットワークアプリケーション(5005)は、HDD(6309)に蓄積されている文書データ(6702)をMCS(5008)に要求する。MCS(5008)は、HDD(6309)に蓄積されている文書データ(6702)を、ネットワークアプリケーション(5005)に渡す。
【0072】
ネットアプリケーション(5005)は、文書データ(6702)を、ホストに転送する(6708)。その後、ブラウザーで閲覧しているユーザーが、文書を選択して、印刷を指示するとブラウザーあるいは専用アプリケーションは指定された文書を印刷するように複合機に指示を出す。ホストからの印刷要求を受け取るとSCS(5010)は、ネットワークアプリケーション(5005)に、文書印刷の要求がきたことを通知する。
【0073】
ネットワークアプリケーション(5005)は、必要なリソースをSCS(5010)に要求する。SCS(5010)は、要求されたリソースが利用可能になったことをネットワークアプリケーション(5005)に通知し、ネットワークアプリケーション(5005)は、HDD(6309)に蓄積されている文書データ(6702)を印刷するようにMCS(5008)に要求する。MCS(5008)は、印刷に必要なリソースをSCS(5010)に要求する。コピーアプリケーションの動作と同じようにして、文書を印刷する。
【0074】
以下、本発明に係る実施例を説明する。
【0075】
(実施例1)
実施例1にて、回転処理の際に、特に隣り合うブロックのデータと比較して同じだった場合には、メモリからデータを読まずに回転処理バッファメモリにあるデータを再利用する動作処理の説明をする。
【0076】
(画像回転パスの説明)
まずコピー画像の回転パスを説明する。
図9の6154PCIバスを介して6159PCIターゲット、6133FIFO、6134DMAC、6105メモリアービタを通って、6106メモリインターフェース、6103/6104メモリの順に通る。6103/6104メモリに格納されるフォーマットはさまざまであり、非圧縮形式や小ブロック単位の固定長圧縮などがある。いずれにしてもラスター順に格納される。
【0077】
ところで画像データを回転する必要性が印字モードや給紙の状態によって存在する。例えば2枚のA4原稿を1枚のA4原稿に集約する場合(以下2in1)や、給紙するサイズがA4Rで原稿がA4である場合(以下リミットレス回転)などである。この場合、6103/6104メモリに格納されたデータから6106メモリインターフェース、6105メモリアービタを通って、6144DMAC、6147EDITへ読み込み、ここで画像回転処理を行って、今度は6146DMAC、6105メモリアービタを通って、6106メモリインターフェース、6103/6104メモリの順へ再格納する。
以上のパスにより画像回転を処理することができる。
【0078】
(EDITの説明)
次に6147EDITの動作説明を行う。
図1は回転処理の動作概念図を表している。6147EDIT内には大きくわけて2つのバッファが存在する。1つは例えば512×512のブロック(これをブロック単位と呼ぶ)で高速メモリである。もう一方は、例えば64×64のユニット(これをユニット単位と呼ぶ)でフリップフロップ群である。
まず、6103/6104メモリから1つのブロック分のデータを読み込み、ブロックへ書きこむ。書き込みが終わったら、今度はブロック内の一部(☆1)である64×64をユニットへ書き込む。ユニットで任意な方向に画像を切り出して、再度ブロック内の該当部へ書き戻す。これで64×64の回転は完了である。
【0079】
次にブロック内の該当処理部を一つ横に進めて(☆2)を同様にユニットに書き込む。ユニットで任意な方向に画像を切り出して、再度ブロック内の該当部へ書き戻す。同様に☆1〜☆64の順に処理を行い、完成されたブロックデータを6103/6104メモリへ書き戻す。
【0080】
以上により、512×512のブロック処理が終わり、横のブロックへと処理が移っていく。これを行うことで回転処理を達成する。
【0081】
ところで、下記のチェックを行うことで毎回回転処理を行うためのブロックデータのリードを低減できる。すなわち、図9の6199CMP比較部にてブロック一致フラグを確認しながら、1なら直前のブロックと同じと見なして改めてブロックデータのリードをせず、回転処理後の結果がブロックバッファに残っているものを使い、書き込み先アドレスだけ変えればよい。
【0082】
(チェックの方法)
ところで、隣り合う画像は似ている(同じ)可能性であることが高いという法則からいくと、この512×512ブロックと隣り合うブロックもこれにあてはまるだろう。従って、同じかどうかの判断は回転処理前に6103/6104メモリに入力される段階でチェックする。
【0083】
(CMPの説明)
図9の6199CMPは本比較部である。
【0084】
ラスター順次に6154PCIからバースト単位で入力されるので、例えば8バースト64ビットシステムの場合512ビットずつ入力されることになる。これを毎回比較していけばよい。図2はその様子を示したものである。例えば2048×512の処理について記述する。
【0085】
まず★1の512ビットと★2の512ビットを比較する。同じであれば★2の一致フラグを1とし、そうでなければ0とする。★1の一致フラグは比較対象がないので常に0である。
次に★2の512ビットと★3の512ビットを比較する。同じであれば★3の一致フラグを1とし、そうでなければ0とする。このように順番に比較し、最後は★2047と★2048を比較する。
次に、★1、★5、★9..★2045のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。(この場合、処理先頭なので必ず0になる)
次に、★2、★6、★10..★2046のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
次に、★3、★7、★11..★2047のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
最後に、★4、★8、★12..★2048のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
【0086】
図2の例からいくと左から2番目と4番目がそれぞれ左隣の画像データの同じであるので、1番目と3番目のブロック一致フラグが0となり、2番目と4番目のブロック一致フラグが1となる。なお、上記の6199CMPによる比較処理手順をブロック比較フロー図として図3〜5に示す。
【0087】
図3は、ブロック同士の比較におけるMAINフロー図であり、6199CMPは図2に記載した矢印の順で比較処理していくことを設定する縦幅/横幅処理管理、それから各ブロックにフラグを決めていくブロック比較処理の順で実行していく。
【0088】
図4は、前記縦幅/横幅処理管理のフロー図であり、ラスター順次に6154PCIからバースト単位で入力されたブロックの横幅及び縦幅の処理状況を管理する様子を表している。
【0089】
図5は、前記ブロック比較処理のフロー図であり、逐次的に隣り合うデータ同士を比較し、フラグを割り当てていく様子を表している。
【0090】
(実施例2)
実施例2にて、回転処理の際、特に隣り合うユニットのデータと比較して同じだった場合には、回転バッファメモリからデータを読まずにユニットにあるデータを再利用する動作処理の説明をする。
【0091】
(画像回転パスの説明)
まずコピー画像の回転パスを説明する。
図9の6154PCIバスを介して6159PCIターゲット、6133FIFO、6134DMAC、6105メモリアービタを通って、6106メモリインターフェース、6103/6104メモリの順に通る。6103/6104メモリに格納されるフォーマットはさまざまであり、非圧縮形式や小ブロック単位の固定長圧縮などがある。いずれにしてもラスター順に格納される。
【0092】
ところで画像データを回転する必要性が印字モードや給紙の状態によって存在する。例えば2枚のA4原稿を1枚のA4原稿に集約する場合(以下2in1)や、給紙するサイズがA4Rで原稿がA4である場合(以下リミットレス回転)などである。この場合、6103/6104メモリに格納されたデータから6106メモリインターフェース、6105メモリアービタを通って、6144DMAC、6147EDITへ読み込み、ここで画像回転処理を行って、今度は6146DMAC、6105メモリアービタを通って、6106メモリインターフェース、6103/6104メモリの順へ再格納する。
以上のパスにより画像回転を処理することができる。
【0093】
(EDITの説明)
次に6147EDITの動作説明を行う。
図1の回転処理の動作概念図において、6147EDIT内には大きくわけて2つのバッファが存在する。1つは例えば512×512のブロック(これをブロック単位と呼ぶ)で高速メモリである。もう一方は、例えば64×64のユニット(これをユニット単位と呼ぶ)でフリップフロップ群である。
まず、6103/6104メモリから1つのブロック分のデータを読み込み、ブロックへ書きこむ。書き込みが終わったら、今度はブロック内の一部(☆1)である64×64をユニットへ書き込む。ユニットで任意な方向に画像を切り出して、再度ブロック内の該当部へ書き戻す。これで64×64の回転は完了である。
【0094】
次にブロック内の該当処理部を一つ横に進めて(☆2)を同様にユニットに書き込む。ユニットで任意な方向に画像を切り出して、再度ブロック内の該当部へ書き戻す。同様に☆1〜☆64の順に処理を行い、完成されたブロックデータを6103/6104メモリへ書き戻す。
【0095】
以上により、512×512のブロック処理が終わり、横のブロックへと処理が移っていく。これを行うことで回転処理を達成する。
【0096】
ところで、下記のチェックを行うことで毎回回転処理を行うためのブロックデータのリードや、ユニットデータのリードを低減できる。すなわち、図9の6199CMP比較部にて一致フラグやブロック一致フラグを確認しながら、一致フラグが1なら直前のユニットデータと同じと見なして改めてユニットデータのリードをせず、回転処理前のユニットバッファに残っているものを使って任意の方向に切り出せばよい。また、ブロック一致フラグが1なら直前のブロックデータと同じと見なして改めてブロックデータをリードせず、回転処理後の結果がブロックバッファに残っているものを使えばよく、書き込み先アドレスだけ変えればよい。
【0097】
(チェックの方法)
ところで、隣り合う画像は似ている(同じ)可能性であることが高いという法則からいくと、この512×512ブロックと隣り合うブロックもこれにあてはまるだろう。従って、同じかどうかの判断は回転処理前に6103/6104メモリに入力される段階でチェックする。また、ブロック単位ではなく、64×64のユニット単位でユニット一致比較を行ってもよい。
【0098】
(CMPの説明)
図9の6199CMPは本比較部である。
【0099】
ラスター順次に6154PCIからバースト単位で入力されるので、例えば8バースト64ビットシステムの場合512ビットずつ入力されることになる。これを毎回比較していけばよい。図2はその様子を示したものである。例えば2048×512の処理について記述する。
【0100】
まず★1の512ビットと★2の512ビットを比較する。同じであれば★2の一致フラグを1とし、そうでなければ0とする。★1の一致フラグは比較対象がないので常に0である。
次に★2の512ビットと★3の512ビットを比較する。同じであれば★3の一致フラグを1とし、そうでなければ0とする。このように順番に比較し、最後は★2047と★2048を比較する。
次に、★1、★5、★9..★2045のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。(この場合、処理先頭なので必ず0になる)
次に、★2、★6、★10..★2046のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
次に、★3、★7、★11..★2047のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
最後に、★4、★8、★12..★2048のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
【0101】
図2の例からいくと左から2番目と4番目がそれぞれ左隣の画像データの同じであるので、1番目と3番目のブロック一致フラグが0となり、2番目と4番目のブロック一致フラグが1となる。なお、上記の6199CMPによる比較処理手順をブロック比較フロー図として図3〜5に示す。
【0102】
図3は、ブロック同士の比較におけるMAINフロー図であり、6199CMPは図2に記載した矢印の順で比較処理していくことを設定する縦幅/横幅処理管理、それから各ブロックにフラグを決めていくブロック比較処理の順で実行していく。
【0103】
図4は、前記縦幅/横幅処理管理のフロー図であり、ラスター順次に6154PCIからバースト単位で入力されたブロックの横幅及び縦幅の処理状況を管理する様子を表している。
【0104】
図5は、前記ブロック比較処理のフロー図であり、逐次的に隣り合うデータ同士を比較し、フラグを割り当てていく様子を表している。
以上は、実施例1の通りブロック比較を行った場合である。
【0105】
また、これと合わせて、図6のようにとなりあうユニット64×64を比較してもよい。
まず、ブロックに512×512のデータがたまると、横方向64ビット単位で比較を行う。同じなら一致フラグを1、異なれば0とする。これを横方向は512ビットまで8−1=7回の比較を行い終わると、次のラインに移って同様に横方向64ビットずつ比較を行う。これを64ライン繰り返す。
【0106】
次に、横方向64ビットと縦方向64ビットの一致フラグが全て1かどうか比較し、(つまり隣り合う64×64と同じかどうか比較する。これを「ユニット一致フラグ」という)@1〜@8まで繰り返す。図6の場合、2、5、6、7、8ユニットがユニット一致フラグ1となる。
【0107】
(実施例3)
実施例3にて、対象データをハードディスクに書き込む際、特に隣り合うブロックのデータと比較して同じだった場合には、メモリからデータを読まずにハードディスクへ書き込むバッファメモリにあるデータを再利用する動作処理の説明をする。
【0108】
(画像蓄積パスの説明)
まずコピー画像の蓄積パスを説明する。
図9の6154PCIバスを介して6159PCIターゲット、6133FIFO、6134DMAC、6105メモリアービタを通って、6106メモリインターフェース、6103/6104メモリの順に通る。6103/6104メモリに格納されるフォーマットはさまざまであり、非圧縮形式や小ブロック単位の固定長圧縮などがある。いずれにしてもラスター順に格納される。
【0109】
ところで画像データを蓄積する必要性が印字モードや給紙の状態によって存在する。例えば入力バックアップや、給紙する用紙がなかった場合などである。この場合、6103/6104メモリに格納されたデータから6106メモリインターフェース、6105メモリアービタを通って、6117DATA−DMAC、6116HDCを通って、6150ハードディスクへ格納する。
以上のパスにより画像蓄積を行うことができる。
【0110】
(チェックの方法)
ところで、隣り合う画像は似ている(同じ)可能性であることが高いという法則からいくと、この512×512ブロックと隣り合うブロックもこれにあてはまるだろう。従って、同じかどうかの判断は回転処理前に6103/6104メモリに入力される段階でチェックする。
【0111】
(CMPの説明)
図9の6199CMPは本比較部である。
【0112】
ラスター順次に6154PCIからバースト単位で入力されるので、例えば8バースト64ビットシステムの場合512ビットずつ入力されることになる。これを毎回比較していけばよい。図2はその様子を示したものである。例えば2048×512の処理について記述する。
【0113】
まず★1の512ビットと★2の512ビットを比較する。同じであれば★2の一致フラグを1とし、そうでなければ0とする。★1の一致フラグは比較対象がないので常に0である。
次に★2の512ビットと★3の512ビットを比較する。同じであれば★3の一致フラグを1とし、そうでなければ0とする。このように順番に比較し、最後は★2047と★2048を比較する。
次に、★1、★5、★9..★2045のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。(この場合、処理先頭なので必ず0になる)
次に、★2、★6、★10..★2046のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
次に、★3、★7、★11..★2047のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
最後に、★4、★8、★12..★2048のブロックの一致フラグを全て見て、全て1ならブロック一致フラグを1とする。
【0114】
図2の例からいくと左から2番目と4番目がそれぞれ左隣の画像データの同じであるので、1番目と3番目のブロック一致フラグが0となり、2番目と4番目のブロック一致フラグが1となる。なお、上記の6199CMPによる比較処理手順をブロック比較フロー図として図3〜5に示す。
【0115】
図3は、ブロック同士の比較におけるMAINフロー図であり、6199CMPは図2に記載した矢印の順で比較処理していくことを設定する縦幅/横幅処理管理、それから各ブロックにフラグを決めていくブロック比較処理の順で実行していく。
【0116】
図4は、前記縦幅/横幅処理管理のフロー図であり、ラスター順次に6154PCIからバースト単位で入力されたブロックの横幅及び縦幅の処理状況を管理する様子を表している。
【0117】
図5は、前記ブロック比較処理のフロー図であり、逐次的に隣り合うデータ同士を比較し、フラグを割り当てていく様子を表している。
【0118】
(HDCの説明)
図2の例からいくと、1番目と3番目のブロック一致フラグが0となり、2番目と4番目のブロック一致フラグが1となるので、1番目のブロックは6103/6104メモリから読み込み6116HDC内のバッファに書き込む。そして32KBのデータは1クラスタとして6150ハードディスクへ格納する。
2番目のブロックは1番目に使用した6116HDC内のバッファを利用して次のクラスタに書き込む。従って6103/6104メモリのアクセスは行わない。
3番目のブロックは6103/6104メモリから読み込み6116HDC内のバッファに書き込む。
そして32KBのデータは1クラスタとして6150ハードディスクへ格納する。
4番目のブロックは3番目に使用した6116HDC内のバッファを利用して次のクラスタに書き込む。従って6103/6104メモリのアクセスは行わない。
このようにCMPデータを使いながらハードディスクへ書き込んでいく。
【0119】
【発明の効果】
以上の説明からも明らかなように本発明によれば、以下に述べることが可能になる。
【0120】
請求項1に記載の発明では、入力データをブロックに分割し、その比較を行って同じデータの場合はメモリからアクセスすることなくブロックバッファの残ったデータを使用して回転処理を行うことができるので、回転処理の高速化が見込める。また、メモリアクセス回数を低減でき、他のリソースにあてることができる。例えば平行動作のプリンタ描画の高速化を行うことができる。また、平行動作がない場合でもメモリアクセス回数が低減できるため、低消費電力化が見込める。
【0121】
請求項2に記載の発明では、入力データをブロックに分割し、その比較を行って同じデータの場合はメモリからアクセスすることなくブロックバッファの残ったデータを使用して回転処理を行うことができる。さらに入力データをユニットに分割し、その比較を行って同じ場合は、ブロックからユニットにデータを移す作業を減らすことができるため、さらなる回転処理の高速化が見込める。また、メモリアクセス回数を低減でき、他のリソースにあてることができる。例えば平行動作のプリンタ描画の高速化を行うことができる。また、平行動作がない場合でもメモリアクセス回数が低減できるため、低消費電力化が見込める。
【0122】
請求項3に記載の発明では、入力データをブロックに分割し、その比較を行って同じデータの場合はメモリからアクセスすることなくブロックバッファの残ったデータを使用してハードディスクにクラスタ単位で書き込むことができるため、ハードディスク書き込みの高速化が見込める。また、メモリアクセス回数を低減でき、他のリソースにあてることができる。例えば平行動作のプリンタ描画の高速化を行うことができる。また、平行動作がない場合でもメモリアクセス回数が低減できるため、低消費電力化が見込める。
【図面の簡単な説明】
【図1】画像データの回転処理の動作概念図である。
【図2】ブロックを取り扱うときの比較部の動作概念図である。
【図3】ブロック同士の比較におけるMAINフロー図である。
【図4】ブロック同士の比較における縦幅/横幅処理管理フロー図である。
【図5】ブロック同士の比較における比較処理フロー図である。
【図6】ユニットを取り扱うときの比較部の動作概念図である。
【図7】複写機の基本構成ブロック図である。
【図8】コントローラ(6016)に搭載されるソフトウェアの構成を表すブロック図である。
【図9】ASIC(6002)の内部構成ブロック図である。
【図10】ASIC(6002)のメモリマップである。
【図11】複写機の内部構成を表すブロック図である。
【図12】図11にて、コピー動作における画像データの流れを表したものである。
【図13】コピー動作における画像入力のタイミングチャートである。
【図14】コピー動作における画像転送のタイミングチャートである。
【図15】図11にて、プリンタ動作における画像データの流れを表したものである。
【図16】図11にて、スキャナ動作における画像データの流れを表したものである。
【図17】図11にて、ネットワークアプリケーション動作における画像データの流れを表したものである。
【符号の説明】
6199 CMP
6103 SDRAM(メモリ)
6104 SDRAM(メモリ)
6147 EDIT
6116 HDC[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image forming apparatus, and more particularly to an image forming apparatus that reduces memory access.
[0002]
[Prior art]
In an image forming device such as a multifunction device that combines an image input device such as a scanner or host interface with an image output device such as a printer or network output, or an image forming device such as a single printer, image data is received according to the aggregation function and paper orientation. In some cases, rotation processing is performed in an arbitrary direction, and received data is stored on a hard disk. However, image data generally has a large data amount, and each process requires a long time. This means that the load of memory access is heavy. Under such circumstances, the image data is compressed by some method or the memory is replaced with a faster one.
[0003]
By the way, it is also empirically known that adjacent image data is likely to be the same, and based on this situation, data that has been subjected to predetermined processing such as compression processing and storage processing first There is a technique for reusing the first data without performing the same processing again on the same data.
[0004]
For example, the technique described in Patent Document 1 aims at increasing the data compression efficiency rather than reducing the memory access load. However, in this technique, particularly with respect to font data, continuous processing is performed in the column direction. A method is employed in which the compression process is not performed on the same data sequence as the data sequence two rows before by utilizing the repetition of the data sequence two rows before in the image data sequence to be performed.
[0005]
[Patent Document 1]
JP-A-8-337020
[0006]
[Problems to be solved by the invention]
The present invention has been made in view of the above, and aims to reduce memory access by using the property that adjacent images are likely to be the same, and to perform each processing at higher speed. I have.
[0007]
According to the first aspect of the present invention, when rotating uncompressed or fixed-length compressed raster data, the raster data is transferred from the low-speed memory to the high-speed memory block by block, and a part (unit) of the block is cut out from the high-speed memory. Latched by a flip-flop, the latched data is cut out in any direction and written back to the high-speed memory, and when all the unit processing in the block is completed, it is written back from the high-speed memory to the low-speed memory by burst access. It is another object of the present invention to provide an image forming apparatus capable of reducing the time required to transfer each block from a low-speed memory to a high-speed memory.
[0008]
According to the second aspect of the present invention, when performing rotation processing of uncompressed or fixed-length compressed raster data, the raster data is transferred from the low-speed memory to the high-speed memory block by block, and a part (unit) of the block is cut out from the high-speed memory. , Latched by flip-flops, cut out the latched data in any direction and write it back to the high-speed memory, and when all unit processing in the block is completed, write back from the high-speed memory to the low-speed memory by burst access Accordingly, it is an object of the present invention to provide an image forming apparatus capable of reducing the time required to transfer from a high-speed memory to a flip-flop group for each unit.
[0009]
According to the third aspect of the present invention, when storing uncompressed or fixed-length compressed raster data on a hard disk, the raster data is transferred from the low-speed memory to the high-speed memory block by block, and the blocks are cut out from the high-speed memory and transferred to the hard disk. Accordingly, it is an object of the present invention to provide an image forming apparatus which can reduce the time required to transfer each block from a low-speed memory to a high-speed memory.
[0010]
[Means for Solving the Problems]
In order to solve this object, the invention according to claim 1 includes a receiving unit that receives uncompressed or fixed-length compressed raster data, a comparing unit that compares the received raster data in units of rotation processing blocks, An image forming apparatus including a memory for writing raster data and a rotation unit for rotating the raster data written in the memory in an arbitrary direction. When the rotation unit performs a rotation process, the image data is compared with raster data of an adjacent block. If they are the same, the raster data in the rotation processing buffer memory is reused without reading the raster data from the memory.
[0011]
The invention according to claim 2 is a receiving unit that receives uncompressed or fixed-length compressed raster data, a comparing unit that compares the received raster data in units of rotation processing units, a memory that writes the raster data, An image forming apparatus provided with a rotating means for rotating raster data written in a memory in an arbitrary direction.When the rotating processing by the rotating means is performed, particularly when the raster data is the same as compared with the raster data of an adjacent unit. Is characterized in that the raster data in the unit is reused without reading the raster data from the rotation processing buffer memory.
[0012]
According to a third aspect of the present invention, there is provided a receiving unit that receives uncompressed or fixed-length compressed raster data, a comparing unit that compares the received raster data in units of rotation processing blocks, and a memory that writes the raster data. An image forming apparatus provided with a control unit capable of reading and writing raster data to a hard disk or the like.When the control unit writes the raster data to the hard disk, the raster data is read from the memory, particularly when the data is the same as compared with the raster data of an adjacent block. Raster data in a buffer memory written to a hard disk without being read is reused.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments (Examples 1 to 3) of the present invention will be described with reference to the drawings. First, common operations when each example is performed will be described. As the description of the common operation, (1) initialization, (2) copy operation, (3) printer operation, (4) scanner operation, and (5) network application operation will be described. The technology described in the present embodiment is applicable to these operation processes, and is also applicable to other related operation processes.
[0014]
(Explanation of operation common to each embodiment)
First, as an image forming apparatus that performs the above-described common operation, a basic configuration of a multifunction peripheral, a common basic operation, and its basic function will be described.
[0015]
(1) Initialization
FIG. 7 is a block diagram of the basic configuration of the multifunction peripheral for describing the initialization operation processing. The elements constituting the block diagram of FIG. 7 and their functions are shown below.
[0016]
6001: CPU
6002: ASIC
6003: Operation unit
6004: IEEE 1284 host I / F.
6005: Network I / F
6006: ROM0 ROM including OS and basic application programs.
6007: ROM1 ROM including an optional application.
6008: ROM2 ROM including optional application.
6009: NVRAM Stores RAM that can be backed up, system settings, and the like.
6010: MEM0 This is a memory mounted as standard.
6011: MEM1 Memory added as an option.
6012: HDD
6013: Optional device An optional I / F such as a printer application.
6014: Fax fax unit (optional)
6015: Equipped with engine scanner and plotter.
6016: Controller
6017: PCI bus Also serves as an engine I / F and an optional bus.
[0017]
When the power is turned on, the engine (6015) is initialized by the CPU mounted thereon, the initialization of the controller (6016) is completed, and the engine (6015) is in a standby state until a command is received.
[0018]
In the initialization of the controller (6016), when the power is turned on, a reset signal is input to the ASIC (6002), and the ASIC (6002) distributes the reset signal to devices that need to be reset. When the reset signal is asserted and negated, the CPU (6001) attempts to fetch the reset vector instruction of the CPU (6001). Upon receiving the fetch signal of the CPU (6001), the ASIC (6002) decodes the address, asserts the CS signal of the ROM0 (6006) in which the initialization program is stored, and stores the contents of the address requested by the CPU (6001). (Instruction code or data) is read and passed to the CPU (6001). The CPU (6001) repeatedly requests the ASIC (6002) to read the instruction, and the ASIC (6002) passes the instruction code or data of the ROM0 (6006) to the CPU (6001) according to the address. Thus, the CPU (6001) can execute the program.
[0019]
In this initialization program, the CPU (6001) is initialized, the memory (6010) and the option memory (6011) connected to the ASIC (6002) are initialized, the PCI (6017) is initialized, and the engine (6015) is initialized. , Initialization of the operation unit (6003), initialization of the HDD (6012), initialization of the IEEE 1284 (6004) connected to the host, initialization of the network I / F (6005), and if necessary, The FAX (6014) and the option (6013) are initialized, and then the application is started.
[0020]
The access time of the ROM 0 (6006) of the ASIC (6002) depends on the data bus width. However, in order to reduce the number of external terminals of the ASIC (6002), the data access time of the CPU (6001) such as 16 bits or 8 bits is used. Often, the number of bits is smaller than the width. Also, in some cases, the speed is particularly slow when a serial device having a bit number of 4 bits, 1 bit, or the like, for example, a device such as a EEPROM, an SD card, or a memory stick is used.
[0021]
A detailed description of some of the various initializations described above is provided for reference.
[0022]
・ Initialization of CPU (6001)
The CPU (MIPS system) reads the boot configuration data from the ASIC, releases the reset, starts fetching the instruction, determines whether it is a cold reset or a reset exception due to the other, and initializes the access timing of the local bus of the ASIC. , Initialization of the cache in the CPU, initialization of the TLB, setting of an exception vector, and initialization of the coprocessor.
[0023]
-Initialization of memory (6010, 6011)
Before deciding the parameters related to the timing of the memory implemented as standard (hereinafter referred to as standard memory), check whether the optional memory exists, and if so, store the information of the optional memory. A certain SEEPROM is accessed, the capacity, speed, and configuration of the memory are read, the timing is compared with the standard memory, the ASIC is set using the later timing, and the memory is initialized. Thereafter, setting of an interrupt vector, setting of an initial value in a data area of the RAM, and the like are performed.
[0024]
-Initialization of PCI (6017)
Using the configuration register of the internal register of the ASIC, a search is performed for all devices existing on the PCI bus, the type of the device is determined, and if there is a bus bridge, a device on the next bus is searched. When all devices have been enumerated, mapping is performed in the PCI address space.
Mapping is performed with the start address of the memory under the control of the ASIC being 0x0000.0000, and the other devices are mapped in a PCI memory space access window or a PCI I / O space access window prepared in the register space of the ASIC. When the mapping is completed, the bus master enable, memory enable, and IO enable bits of the command register of each device are set to 1 to bring the device into an operation state.
[0025]
-Initialization of the engine (6015)
Communication between the engine and the controller is performed via a transmission buffer / reception buffer of the engine-side PCI device.
[0026]
-Initialization of the operation unit (6003)
The operation unit and the controller are connected via an operation unit I / F, and transmission and reception are performed in full duplex. The packet communication is performed with a predetermined packet size, and the operation unit is displayed to indicate that the system is being initialized.
[0027]
-Initialization of HDD (6012)
It is checked whether or not the HDD is connected. If the HDD is connected, the information of the HDD is read and the management information is stored in the memory for later use.
[0028]
The configuration of software installed in the controller (6016) is as shown in FIG. The components of the software shown in FIG. 8 are shown below.
[0029]
5001: PRINT-APL print application
5002: COPY-APL copy application
5003: FAX-APL fax application
5004: SCAN-APL scanner application
5005: NETWORK-APL Network Application
5006: Service-API Service layer application programming interface.
5007: ECS engine control service
5008: MCS memory control service
5009: OCS operation panel control service
5010: SCS system control service
5011: NCS Network Control Service
5012: FCS fax control service
5013: SRM system resource manager
5014: General-purpose OS A UNIX-like OS.
5015: Engine command I / F A programming interface for communicating with the engine.
5016: Engine hardware The engine main body.
5017: Controller hardware This is a controller hardware resource.
[0030]
Portions that depend on the CPU and ASIC are absorbed by the device driver layer, so that porting is easy with different CPUs and different ASICs. When the application is activated, the operation unit (6003) displays an operation screen of the copy application by default, and waits for a user instruction.
[0031]
FIG. 9 shows an internal configuration diagram of the ASIC (6002). The components shown in FIG. 9 and their functions are shown below.
[0032]
6101: CPU
6102: ASIC
6103: MEM0 This is a memory mounted as standard.
6104: Memory added by MEM1 option.
6105: Arbiter memory arbiter
6106: Ramc is a ram controller that controls the memory.
6107: A CPU bus protocol interpreting unit for performing register access and memory access inside the ASIC in accordance with the cpuif CPU.
6108: Internal register of the IREG ASIC.
6109: lbc A local bus controller for controlling a bus for connecting a ROM or the like storing a program of the CPU.
6110: Data bus of local bus It has a 16-bit width and is multiplexed with a part of address.
6111: Local bus control line and address signal 6110 This includes a lower address not multiplexed by 6110, a chip select signal generated by decoding the address, a read signal, a write signal, and the like.
6112: DMAC for SD card This is a DMAC for reading and writing data from the SD card, and is a one-dimensional DMAC that can perform a read or write operation.
6113: SD card boot selector A selector for switching between CPU boot from the SD card and SD card access using the DMAC. When the CPU boot from the SD card is selected, the first instruction fetch after the reset of the CPU is performed from the SD card.
6114: SDC An SD card controller for accessing an externally connected SD card according to a protocol.
6115: Signal for SD card This signal is connected to the SD card.
6116: A hard disk controller that can control the HDD of the HDC ATA100.
6117: DATA-DMAC A DMAC for transferring HDD data, which can perform one-dimensional transfer and two-dimensional transfer.
6118: CMD-DMAC This is a DMAC for transferring HDD commands.
6119: CD1 A compression / expansion device 1 capable of compression or expansion.
6120: DMAC for image for CD1 This is a DMAC for inputting / outputting an image, and operates as input during compression and as output during decompression.
6121: DMAC for CD1 code This is a DMAC for inputting and outputting a code. It operates with output during compression and input with expansion.
6122: CD2 compression / expansion device 2 capable of compression or expansion.
6123: DMAC for image for CD2 This is a DMAC for inputting / outputting an image, and operates as input during compression and as output during decompression.
6124: DMAC for CD2 code This is a DMAC for inputting / outputting a code. The DMAC operates as an output during compression and operates as an input during decompression.
6125: CD selector This is a selector for selecting which compression / decompression device is connected to the HDD.
6126: Video selector A selector for selecting which compression / decompression device should be connected to the decompression output and the input to the video DMAC.
6127: FIFO for video image Output FIFO for video image.
6128: Shifter for video image at the time of output.
6129: Video compositor Combines an image and a stamp when outputting. It is also possible not to perform synthesis, in which case the image and the stamp are output separately.
6130: Video image output DMAC This is a video image output DMAC.
6131: Stamp FIFO This is a stamp output FIFO.
6132: DMAC for stamp This is the DMAC for stamp output.
6133: FIFO for image input
6134: DMAC for image input
6135: PCI direct path This is a data path for accessing the memory from the PCI bus side.
6136: DMAC for inputting IEEE1284 This is a DMAC for inputting data of IEEE1284.
6137: IEEE1284 controller Data is transferred by interpreting the IEEE1284 protocol.
6138: Operation unit controller Data transfer of the operation unit is performed.
6139: DMAC for transmitting operation unit This is a DMAC for outputting data to the operation unit.
6140: Operation unit reception DMAC This is a DMAC for inputting data from the operation unit.
6141: Transmission DMAC for MAC Network transmission is performed.
6142: MAC reception DMAC Performs network reception.
6143: MAC Media Access Controller
6144: Input 1DMAC for editor
6145: Input 2DMAC for editor
6146: Output DMAC for editor
6147: EDIT An editor for synthesizing or rotating an image.
6148: CLR An image clear controller that fills an area with the set data.
6149: Image clear DMAC Two-dimensional or one-dimensional memory fill is possible.
6150: HDD interface signal
6151: PCI-Arbiter Arbitrates external and ASIC PCI access.
6152: PCI-Master Performs PCI master access.
6153: PCI-CONFIG PCI configuration register.
6155: IEEE1284 interface signal
6156: Operation unit interface transmission signal
6157: Operation unit interface reception signal
6158: PHY connection signal This is an MII signal for connecting the MAC and the PHY.
6159: PCI-Target Responds when accessed as a PCI target.
6199: Performs unit comparison, block comparison, and the like on the image input from the CMP PCI.
[0033]
FIG. 10 shows a physical address and a memory map managed by the ASIC (6002).
[0034]
When initialization of various devices is completed, the general-purpose OS (5014) starts an application based on system configuration information.
However, if the FAX unit (6014) does not exist, the FAX application (5003) does not start.
[0035]
After the application is started, a copy operation screen is displayed on the operation unit (6003) by default. The default screen can be changed.
[0036]
(2) Copy operation
FIG. 11 is a block diagram of a multifunction peripheral including components necessary for a copy operation. Further, the elements constituting the block diagram of FIG. 11 and their functions are shown below.
[0037]
6301: Controller
6302: Engine
6303: FAX
6304: Optional
6305: CPU
6306: ASIC
6307: MEM
6308: Operation unit
6309: HDD
6310: Indicates a Vin video input.
6311: Vout represents video output.
6312: HDC HDD controller.
6313: CD2 compression / decompression device 2
6314: CD1 compression / expansion unit 1
6315: EDIT editor
6316: OPC operation unit controller
6317: LBC local bus controller
6318: ROM ROM in which program / character font is stored.
6319: SDC SD card controller
6320: SD card
6321: MAC Network Controller
6322: Engine-ASIC Engine ASIC
6323: Engine CPU Controls the engine.
6324: Engine ROM A ROM that stores an engine control program.
6325: Engine RAM Memory required for engine control.
6326: Output image processing Gamma correction and the like are performed.
6327: PLOTTER image output unit
6328: SCANNER image input unit
6329: Input image processing Shading correction, gamma correction, and the like are performed.
[0038]
There are various modes in the copy operation depending on user designation. Some are shown in Table 1.
[0039]
[Table 1]
Figure 2004214892
[0040]
There are other modes but they are omitted, and the flow of images for simple copy (1 to N copy: N = 1) will be described with reference to FIG. The description of each reference numeral shown in FIG. 12 is shown below.
[0041]
6401: Input manuscript
6402: Flow of input document image
6403: Image read into memory: input image data
6404: Flow of image for compressing image on memory
6405: Code data after image compression
6406: Flow of storing code in HDD
6407: Flow of outputting an image on a memory
6408: Paper on which output image is plotted
[0042]
By pressing a start key on the operation unit (6308), the SCS (5010) monitoring an external event detects the start key press and is an application that is currently active on the operation unit (6308). The copy application (5002) is notified that the start key has been pressed.
[0043]
The copy application (5002) detects that a request is made to simply scan an original, read one original, and output one original from the mode selected by the current operation unit (6308). The copy application (5002) requests the SCS (5010) to secure system resources necessary for reading one document and outputting one document. If the system resources can be secured, the MCS (5008) Then, a request is made to read one original and output one original with the same size as the original. The MCS (5008) requests the required memory from the SRM (5013), secures it, reads one document to the ECS (5007), and outputs one document of the same size as the document. Put out. Then, the ECS (5007) requests the general-purpose OS (5014) to issue a command. The general-purpose OS (5014) calls the device driver and issues a command to the engine (5016) via the engine command I / F (5015). When the engine CPU (6323) receives the command via the communication buffer of the ASIC (6322) of the engine (6302), it controls the scanner (6328) to read the document on the automatic document feeder.
[0044]
As shown by the flow of the input document image (6402), the input document (6401) is conveyed onto the platen glass by the document conveying device of the scanner (6328), and the input image is read via the CCD by being scanned by the carriage. The input image processing unit (6329) quantizes the image, corrects the image, and transfers it to the engine ASIC (6322). Prior to that, the controller (6301) completes the setting of Vin (6310), and stores the image data (6403) in the memory (6307) by transferring the image data from the engine ASIC (6322). I do.
[0045]
The connection between the engine ASIC (6322) and the ASIC (6306) is performed via a PCI bus, the engine ASIC (6322) performs a write operation as a master, and the input of the Vin (6310) of the ASIC (6306) is performed. Act as a target. In image transfer, transfer timing is set for each line in synchronization with a pseudo line sync created at the time of reading, and burst transfer is repeated within a line according to a predetermined burst length. FIG. 13 shows the timing of image input, and FIG. 14 shows the timing and operation of image transfer. The description of the reference numerals described in FIGS. 13 and 14 is shown below.
[0046]
1801: Paper size Represents a paper size that can be scanned in main scanning and sub scanning.
1802: FGATE This signal indicates the effective range of the sub-scanning of the paper.
1803: LGATE This signal indicates the effective range of the main scanning of the paper.
1804: LSYNC This is a synchronization signal asserted at the beginning of main scanning.
1901: LSYNC line sink
1902: DREQ data request
1903: Data transfer for one line of DATA.
1904: XREQ PCI bus request signal.
1905: A bus grant signal for the XGNT PCI bus.
1906: A bus transaction of the TRANS PCI bus.
1907: PCICLK This is a PCI basic clock.
1908: XFRAME PCI FRAME signal.
1909: DEVSEL signal of XDEVSEL PCI.
1910: XIRDY PCI IRDY signal.
1911: TRDY signal of XTRDY PCI.
1912: AD [31: 0] PCI address / data bus signal.
1913: CBE [3: 0] PCI command / byte enable signal.
[0047]
Similarly, at the time of image output, the transfer timing is set for each line in synchronization with the line sync created from the rotation cycle of the polygon, and the burst transfer is repeated within the line according to a predetermined burst length. .
[0048]
The image data (6403) stored in the memory (6307) is stored in the HDD (6309) for recovery from a jam or for later use as an electronic document from a network or the like. The storage in the HDD (6309) may be compressed data or uncompressed data. When the compression result has a larger data amount than before compression, the data is stored as uncompressed data. As indicated by the flow of the compressed image (6404), the input image data (6403) is compressed using the compression / decompression device 2 (6313), and the code data (6405) is stored in the memory (6307).
[0049]
Code data (6405) for one page stored in the memory (6307) is divided into a plurality of blocks, decomposed into a plurality of disk accesses, and stored in the HDD (6309). If one page of HDD access is performed continuously, if an electronic document access request is received from the network, the response will be delayed until code accumulation for one page is completed. Therefore, disk access is divided.
[0050]
The image data (6403) is output in parallel with the accumulation of the code data (6405) in the HDD (6309). The MCS (5008) issues an image output request to the ECS (5007) when image input starts. The ECS (5007) requests the general-purpose OS (5014) to issue an image output command. The general-purpose OS (5014) calls the device driver and issues a command to the engine (5016) via the engine command I / F (5015). When the engine CPU (6323) receives the command via the communication buffer of the ASIC (6322) of the engine (6302), the engine CPU (6323) controls the plotter (6327) so as to convey the sheet of the designated size from the sheet tray. At the timing of the engine (6302), the image data (6403) is read from the FIFO of the Vout (6311) and plotted on paper. Prior to this, the MCS (5008) sets the DMAC of Vout (6311) and activates it.
With such an operation, simple copy (1 to N: N = 1) is performed.
[0051]
(3) Printer operation
A block diagram including a configuration necessary for the operation of the printer is the same as FIG.
The data flow and processing will be described with reference to FIG. The description of each symbol shown in FIG. 15 is shown below.
[0052]
6501: Receive file containing print command from host.
6502: File containing print command
6503: The print command is interpreted and drawn by the CPU.
6504: drawn image
6505: Flow of image for compressing image on memory
6506: Compressed code
6507: Flow of storage in HDD
6508: Flow for expanding image for output
6509: Output image
6510: Output image flow
6511: Paper on which output image is plotted
[0053]
When data including a print command is transferred from a host connected to the host I / F (6501), the SCS (5010) receives the print command data (6502) and notifies the printer application (5001). The printer application (5001) interprets the print command data (6502), and the CPU (6305) starts drawing an image (6503). At the same time, the printer application (5001) requests the MCS (5008) to output an image. Then, the MCS (5008) requests the SCS (5010) for resources for image output. The SCS (5010) notifies the MCS (5008) that the requested resource is available when it becomes available, and is ready for output.
[0054]
The printer application (5001) passes the rendered image (6504) to the MCS (5008). The MCS (5008) compresses the drawn image (6504) by using the compression / decompression device 1 (6314) (6505). The compressed code (6506) is stored in the HDD (6309) for use in recovery from a jam or for use as an electronic document from a network or the like. Since the drawing is performed at a higher speed than the image output, the codes (6506) obtained by compressing the images are accumulated in the memory (6307) and the HDD (6309) for a plurality of pages.
[0055]
When the MCS (5008) is ready for output, the code (6506) is expanded in the printing order using the compression / expansion unit 2 (6313) to expand the output image (6509) on the memory (6307), and the Vout (6311) The DMAC is set for output, activated, and the ECS (5007) is instructed to output an image.
[0056]
The ECS (5007) requests the general-purpose OS (5014) to issue an image output command. The general-purpose OS (5014) calls the device driver and issues a command to the engine (5016) via the engine command I / F (5015). When the engine CPU (6323) receives the command via the communication buffer of the ASIC (6322) of the engine (6302), the engine CPU (6323) controls the plotter (6327) so as to convey the sheet of the designated size from the sheet tray. At the timing of the engine (6302), the image data (6509) is read from the FIFO of the Vout (6311) and plotted on paper.
[0057]
(4) Scanner operation
The block diagram including the configuration necessary for the scanner operation is the same as FIG.
The data flow and processing will be described with reference to FIG. The description of each reference numeral shown in FIG. 16 is shown below.
[0058]
6601: Input manuscript
6602: Flow of read image data
6603: Image data
6604: Flow of image for compressing image data on memory by CPU
6605: Compressed code data
6606: Flow of storing in HDD
6607: Flow of code data transferred to host via host I / F
[0059]
The user can move to the scanner menu screen by pressing the scanner function selection button from the default copy menu screen of the operation unit (6308). When the SCS (5010) detects that the scanner function has been selected on the operation unit (6308), it notifies the scanner application (5004) of the selection. The scanner application (5004) instructs the OCS (5009) to display a menu screen on the operation unit (6308).
[0060]
The user places a document on the automatic document feeder, sets a reading mode, and presses a start key. Upon detecting that the start key has been pressed, the SCS (5010) notifies the scanner application (5004) that the start key has been pressed. The scanner application (5004) instructs the MCS (5008) to scan a document using the currently selected mode.
[0061]
The MCS (5008) requests the SCS (5010) for resources required to scan a document. The SCS (5010) notifies the MCS (5008) when the requested resource becomes available.
[0062]
The MCS (5008) issues a request to the ECS (5007) to read one document. Then, the ECS (5007) requests the general-purpose OS (5014) to issue a command. The general-purpose OS (5014) calls the device driver and issues a command to the engine (5016) via the engine command I / F (5015). When the engine CPU (6323) receives the command via the communication buffer of the ASIC (6322) of the engine (6302), it controls the scanner (6328) to read the document on the automatic document feeder.
[0063]
Prior to reading, the MCS (5008) sets the DMAC of Vin (6310) and activates it. The engine (6302) reads the image of the input document (6601) by controlling the scanner (6328), and sends the image to the engine ASIC (6322) via the image processing unit (6329) that performs image processing required for image input. Send an image. The basic operation is the same as the image input during the copy operation.
[0064]
The image data (6603) is stored in the MEM (6307) through the flow (6602) of the input image from the scanner (6323) to the memory (6307). The data format of the image data (6603) handled in the scanner operation is 8-bit multi-value or 1-bit binary for monochrome, and 8-bit multi-value data for each of RGB for color. The CPU (6308) converts the image data into a suitable image format for the external host PC by software processing. The converted code data (6605) is stored in the memory (6307). In some cases, it may not be converted. Depending on the mode of the scanner application (5004), the code data (6605) is stored in the HDD (6309) (6606), or the code data (6605) is transferred to the host PC via the host I / F ( 6607).
[0065]
(5) Network application operation
The block diagram including the configuration necessary for the operation of the network application is the same as FIG.
The data flow and processing will be described with reference to FIG. The description of each symbol shown in FIG. 17 is shown below.
[0066]
6701: Flow of extracting requested document (image data) from HDD
6702: Document data accumulated during copy operation
6703: Document data accumulated during scanner operation
6704: Thumbnail image data
6705: Flow of image of CPU processing for creating thumbnail from code data
6706: Flow of image of CPU processing for creating thumbnail from image data
6707: Flow of sending code data to host
6708: Flow of sending image data to host
6709: Flow of sending thumbnail data to host
6710: Flow of output image
6711: Output image
[0067]
A network application is an application that handles documents stored in the HDD from the network. In response to a request from the host, a thumbnail is created, transferred to the host, printed, or transferred to another MFP. Is the application that you transferred to the server.
[0068]
When a list request for documents stored in the HDD (6309) is received from a host connected to the network, the SCS (5010) notifies the network application (5005) that the list request has been received.
[0069]
The network application (5005) requests necessary resources from the SCS (5010). The SCS (5010) notifies the network application (5005) that the requested resource has become available, and the network application (5005) sends a thumbnail of the document stored in the HDD (6309) to the MCS (5008). ). The MCS (5008) processes the document stored in the HDD (6309) in accordance with the data format, creates thumbnail data, and passes it to the network application (5005). The document stored in the HDD (6309) is read out to the memory (6307) (6701), and a thumbnail (6704) is created by the CPU (6305) for the image data (6702) not compressed or converted. (6706) The CPU (6305) once restores the original image of the code data (6703) that has been compressed or converted, creates a thumbnail (6704) (6705), and transfers it to the host (6705). 6709).
[0070]
The network application (5005) converts the thumbnail of the document in the HDD (6309) into a file format that can be interpreted by the host. For example, if the host is browsing with a browser, the network application (5005) browses with an html format and a dedicated application. If so, convert it to a special format and transfer it to the host. When the host receives the thumbnail, it waits for the user to process it. For example, when the user selects a document and requests that it be transferred to the host, the browser or dedicated application transfers the specified document to the host. Instructions to the MFP. Upon receiving the transfer request from the host, the SCS (5010) notifies the network application (5005) that a document transfer request has been received.
[0071]
The network application (5005) requests necessary resources from the SCS (5010). The SCS (5010) notifies the network application (5005) that the requested resource is available, and the network application (5005) converts the document data (6702) stored in the HDD (6309) into an MCS. (5008). The MCS (5008) transfers the document data (6702) stored in the HDD (6309) to the network application (5005).
[0072]
The network application (5005) transfers the document data (6702) to the host (6708). Thereafter, when the user browsing with the browser selects a document and instructs printing, the browser or the dedicated application instructs the MFP to print the specified document. Upon receiving a print request from the host, the SCS (5010) notifies the network application (5005) that a document print request has been received.
[0073]
The network application (5005) requests necessary resources from the SCS (5010). The SCS (5010) notifies the network application (5005) that the requested resource has become available, and the network application (5005) prints the document data (6702) stored in the HDD (6309). To the MCS (5008). The MCS (5008) requests resources required for printing from the SCS (5010). Print the document in the same way as the operation of the copy application.
[0074]
Hereinafter, examples according to the present invention will be described.
[0075]
(Example 1)
In the first embodiment, during the rotation processing, particularly when the data is the same as compared with the data of the adjacent block, the data in the rotation processing buffer memory is reused without reading the data from the memory. Give an explanation.
[0076]
(Explanation of image rotation path)
First, the rotation path of the copy image will be described.
9, a 6159 PCI target, a 6133 FIFO, a 6134 DMAC, a 6105 memory arbiter, a 6106 memory interface, and a 6103/6104 memory through the 6154 PCI bus. There are various formats stored in the 6103/6104 memory, including an uncompressed format and fixed-length compression in small block units. Either way, they are stored in raster order.
[0077]
By the way, the necessity of rotating the image data exists depending on the print mode and the paper feeding state. For example, there are a case where two A4 documents are combined into one A4 document (hereinafter, 2 in 1), a case where the size of paper to be fed is A4R and the document is A4 (hereinafter, limitless rotation), and the like. In this case, the data stored in the 6103/6104 memory is read into the 6144 DMAC and 6147 EDIT through the 6106 memory interface and 6105 memory arbiter, where the image rotation processing is performed, and this time through the 6146 DMAC and 6105 memory arbiter. The data is stored again in the order of 6106 memory interface and 6103/6104 memory.
Image rotation can be processed by the above-described pass.
[0078]
(Explanation of EDIT)
Next, the operation of 6147EDIT will be described.
FIG. 1 shows an operation conceptual diagram of the rotation processing. There are roughly two buffers in 6147 EDIT. One is a 512 × 512 block (which is called a block unit) and is a high-speed memory. The other is, for example, a flip-flop group of 64 × 64 units (this is called a unit unit).
First, data for one block is read from the 6103/6104 memory and written to the block. After the writing, 64 × 64, which is a part (☆ 1) in the block, is written to the unit. The unit cuts out the image in an arbitrary direction and writes it back to the corresponding part in the block again. This completes the 64 × 64 rotation.
[0079]
Next, the corresponding processing unit in the block is advanced by one, and (* 2) is similarly written in the unit. The unit cuts out the image in an arbitrary direction and writes it back to the corresponding part in the block again. Similarly, processing is performed in the order of ☆ 1 to ☆ 64, and the completed block data is written back to the 6103/6104 memory.
[0080]
As described above, the 512 × 512 block processing is completed, and the processing shifts to a horizontal block. By doing this, the rotation process is achieved.
[0081]
By performing the following checks, the reading of block data for performing the rotation process every time can be reduced. That is, while checking the block match flag in the 6199 CMP comparing unit in FIG. 9, if the value is 1, it is regarded as the same as the immediately preceding block, the block data is not read again, and the result after the rotation process remains in the block buffer. To change only the write destination address.
[0082]
(How to check)
By the way, according to the rule that it is highly probable that adjacent images are likely to be similar (same), this 512 × 512 block and an adjacent block will also apply to this. Therefore, the determination as to whether they are the same is made at the stage of being input to the 6103/6104 memory before the rotation processing.
[0083]
(Explanation of CMP)
Reference numeral 6199 CMP in FIG.
[0084]
Since data is input in burst units from 6154 PCI in raster order, for example, in the case of an 8-burst 64-bit system, 512 bits are input. This should be compared every time. FIG. 2 shows this state. For example, a process of 2048 × 512 will be described.
[0085]
First, the 512 bits of * 1 and the 512 bits of * 2 are compared. If they are the same, the match flag of * 2 is set to 1, otherwise it is set to 0. * The match flag of 1 is always 0 because there is no comparison target.
Next, 512 bits of * 2 and 512 bits of * 3 are compared. If they are the same, the match flag of * 3 is set to 1, otherwise 0. In this way, the comparison is made in order, and finally the comparison is made between * 2047 and * 2048.
Next, ★ 1, ★ 5, ★ 9. . See all the match flags of the block 2045, and if all are 1, set the block match flag to 1. (In this case, it is always 0 because it is the top of the process)
Next, ★ 2, ★ 6, ★ 10. . See all the match flags of the block of 2046, and if all are 1, set the block match flag to 1.
Next, ★ 3, ★ 7, ★ 11. . See all the matching flags of the block 2047, and if all are 1, set the block matching flag to 1.
Finally, ★ 4, ★ 8, ★ 12. . See all the match flags of the block 2048, and if all are 1, set the block match flag to 1.
[0086]
From the example of FIG. 2, the second and fourth from the left are the same as the image data on the left, respectively, so the first and third block match flags become 0, and the second and fourth block match flags become It becomes 1. The comparison processing procedure by the above 6199 CMP is shown in FIGS.
[0087]
FIG. 3 is a MAIN flow chart for comparison between blocks. 6199 CMP is a vertical / horizontal width processing management for setting comparison processing in the order of the arrows shown in FIG. 2, and then a flag is determined for each block. The block comparison process is executed in order.
[0088]
FIG. 4 is a flow chart of the vertical / horizontal processing management, and shows how the horizontal and vertical processing states of blocks input in bursts from 6154 PCI in raster order are managed.
[0089]
FIG. 5 is a flowchart of the block comparison process, and shows a state in which adjacent data are sequentially compared and a flag is assigned.
[0090]
(Example 2)
In the second embodiment, a description will be given of an operation process of reusing data in a unit without reading data from the rotation buffer memory, particularly when data is the same as that of an adjacent unit during the rotation process. I do.
[0091]
(Explanation of image rotation path)
First, the rotation path of the copy image will be described.
9, a 6159 PCI target, a 6133 FIFO, a 6134 DMAC, a 6105 memory arbiter, a 6106 memory interface, and a 6103/6104 memory through the 6154 PCI bus. There are various formats stored in the 6103/6104 memory, including an uncompressed format and fixed-length compression in small block units. Either way, they are stored in raster order.
[0092]
By the way, the necessity of rotating the image data exists depending on the print mode and the paper feeding state. For example, there are a case where two A4 documents are combined into one A4 document (hereinafter, 2 in 1), a case where the size of paper to be fed is A4R and the document is A4 (hereinafter, limitless rotation), and the like. In this case, the data stored in the 6103/6104 memory is read into the 6144 DMAC and 6147 EDIT through the 6106 memory interface and 6105 memory arbiter, where the image rotation processing is performed, and this time through the 6146 DMAC and 6105 memory arbiter. The data is stored again in the order of 6106 memory interface and 6103/6104 memory.
Image rotation can be processed by the above-described pass.
[0093]
(Explanation of EDIT)
Next, the operation of 6147EDIT will be described.
In the operation conceptual diagram of the rotation processing in FIG. 1, there are roughly two buffers in 6147 EDIT. One is a 512 × 512 block (which is called a block unit) and is a high-speed memory. The other is, for example, a flip-flop group of 64 × 64 units (this is called a unit unit).
First, data for one block is read from the 6103/6104 memory and written to the block. After the writing, 64 × 64, which is a part (☆ 1) in the block, is written to the unit. The unit cuts out the image in an arbitrary direction and writes it back to the corresponding part in the block again. This completes the 64 × 64 rotation.
[0094]
Next, the corresponding processing unit in the block is advanced by one, and (* 2) is similarly written in the unit. The unit cuts out the image in an arbitrary direction and writes it back to the corresponding part in the block again. Similarly, processing is performed in the order of ☆ 1 to ☆ 64, and the completed block data is written back to the 6103/6104 memory.
[0095]
As described above, the 512 × 512 block processing is completed, and the processing shifts to a horizontal block. By doing this, the rotation process is achieved.
[0096]
By performing the following checks, it is possible to reduce reading of block data and reading of unit data for performing a rotation process each time. That is, while checking the match flag and the block match flag in the 6199 CMP comparing unit in FIG. 9, if the match flag is 1, the unit data is regarded as the same as the immediately preceding unit data and the unit data is not read again, and the unit buffer before the rotation processing is performed. What is necessary is just to cut out in an arbitrary direction using what remains. If the block match flag is 1, it is assumed that the block data is the same as the immediately preceding block data, and the block data is not read again. .
[0097]
(How to check)
By the way, according to the rule that it is highly probable that adjacent images are likely to be similar (same), this 512 × 512 block and an adjacent block will also apply to this. Therefore, the determination as to whether they are the same is made at the stage of being input to the 6103/6104 memory before the rotation processing. Further, the unit match comparison may be performed not in units of blocks but in units of 64 × 64 units.
[0098]
(Explanation of CMP)
Reference numeral 6199 CMP in FIG.
[0099]
Since data is input in burst units from 6154 PCI in raster order, for example, in the case of an 8-burst 64-bit system, 512 bits are input. This should be compared every time. FIG. 2 shows this state. For example, a process of 2048 × 512 will be described.
[0100]
First, the 512 bits of * 1 and the 512 bits of * 2 are compared. If they are the same, the match flag of * 2 is set to 1, otherwise it is set to 0. * The match flag of 1 is always 0 because there is no comparison target.
Next, 512 bits of * 2 and 512 bits of * 3 are compared. If they are the same, the match flag of * 3 is set to 1, otherwise 0. In this way, the comparison is made in order, and finally the comparison is made between * 2047 and * 2048.
Next, ★ 1, ★ 5, ★ 9. . See all the match flags of the block 2045, and if all are 1, set the block match flag to 1. (In this case, it is always 0 because it is the top of the process)
Next, ★ 2, ★ 6, ★ 10. . See all the match flags of the block of 2046, and if all are 1, set the block match flag to 1.
Next, ★ 3, ★ 7, ★ 11. . See all the matching flags of the block 2047, and if all are 1, set the block matching flag to 1.
Finally, ★ 4, ★ 8, ★ 12. . See all the match flags of the block 2048, and if all are 1, set the block match flag to 1.
[0101]
From the example of FIG. 2, the second and fourth from the left are the same as the image data on the left, respectively, so the first and third block match flags become 0, and the second and fourth block match flags become It becomes 1. The comparison processing procedure by the above 6199 CMP is shown in FIGS.
[0102]
FIG. 3 is a MAIN flow chart for comparison between blocks. 6199 CMP is a vertical / horizontal width processing management for setting comparison processing in the order of the arrows shown in FIG. 2, and then a flag is determined for each block. The block comparison process is executed in order.
[0103]
FIG. 4 is a flow chart of the vertical / horizontal processing management, and shows how the horizontal and vertical processing states of blocks input in bursts from 6154 PCI in raster order are managed.
[0104]
FIG. 5 is a flowchart of the block comparison process, and shows a state in which adjacent data are sequentially compared and a flag is assigned.
The above is the case where the block comparison is performed as in the first embodiment.
[0105]
In addition, a unit 64 × 64 may be compared as shown in FIG.
First, when 512 × 512 data is accumulated in a block, comparison is performed in units of 64 bits in the horizontal direction. If they are the same, the match flag is set to 1; After completing the comparison 8-1 = 7 times in the horizontal direction up to 512 bits, the process moves to the next line and similarly performs a comparison in the horizontal direction by 64 bits. This is repeated for 64 lines.
[0106]
Next, it is compared whether the coincidence flags of the horizontal direction 64 bits and the vertical direction 64 bits are all 1 (that is, whether or not they are the same as adjacent 64 × 64. This is called “unit coincidence flag”) {1}. Repeat until 8. In the case of FIG. 6, units 2, 5, 6, 7, and 8 are unit match flags 1.
[0107]
(Example 3)
In the third embodiment, when writing the target data to the hard disk, particularly when the data is the same as the data of the adjacent block, the data in the buffer memory written to the hard disk without reading the data from the memory is reused. The operation processing will be described.
[0108]
(Explanation of image storage path)
First, a copy image storage path will be described.
9, a 6159 PCI target, a 6133 FIFO, a 6134 DMAC, a 6105 memory arbiter, a 6106 memory interface, and a 6103/6104 memory through the 6154 PCI bus. There are various formats stored in the 6103/6104 memory, including an uncompressed format and fixed-length compression in small block units. Either way, they are stored in raster order.
[0109]
By the way, the necessity of storing the image data exists depending on the print mode and the paper feeding state. For example, there is input backup or when there is no paper to be fed. In this case, data stored in the 6103/6104 memory is stored in the 6150 hard disk through the 6106 memory interface, the 6105 memory arbiter, the 6117DATA-DMAC, and the 6116 HDC.
Image storage can be performed by the above-described paths.
[0110]
(How to check)
By the way, according to the rule that it is highly probable that adjacent images are likely to be similar (same), this 512 × 512 block and an adjacent block will also apply to this. Therefore, the determination as to whether they are the same is made at the stage of being input to the 6103/6104 memory before the rotation processing.
[0111]
(Explanation of CMP)
Reference numeral 6199 CMP in FIG.
[0112]
Since data is input in burst units from 6154 PCI in raster order, for example, in the case of an 8-burst 64-bit system, 512 bits are input. This should be compared every time. FIG. 2 shows this state. For example, a process of 2048 × 512 will be described.
[0113]
First, the 512 bits of * 1 and the 512 bits of * 2 are compared. If they are the same, the match flag of * 2 is set to 1, otherwise it is set to 0. * The match flag of 1 is always 0 because there is no comparison target.
Next, 512 bits of * 2 and 512 bits of * 3 are compared. If they are the same, the match flag of * 3 is set to 1, otherwise 0. In this way, the comparison is made in order, and finally the comparison is made between * 2047 and * 2048.
Next, ★ 1, ★ 5, ★ 9. . See all the match flags of the block 2045, and if all are 1, set the block match flag to 1. (In this case, it is always 0 because it is the top of the process)
Next, ★ 2, ★ 6, ★ 10. . See all the match flags of the block of 2046, and if all are 1, set the block match flag to 1.
Next, ★ 3, ★ 7, ★ 11. . See all the matching flags of the block 2047, and if all are 1, set the block matching flag to 1.
Finally, ★ 4, ★ 8, ★ 12. . See all the match flags of the block 2048, and if all are 1, set the block match flag to 1.
[0114]
From the example of FIG. 2, the second and fourth from the left are the same as the image data on the left, respectively, so the first and third block match flags become 0, and the second and fourth block match flags become It becomes 1. The comparison processing procedure by the above 6199 CMP is shown in FIGS.
[0115]
FIG. 3 is a MAIN flow chart for comparison between blocks. 6199 CMP is a vertical / horizontal width processing management for setting comparison processing in the order of the arrows shown in FIG. 2, and then a flag is determined for each block. The block comparison process is executed in order.
[0116]
FIG. 4 is a flow chart of the vertical / horizontal processing management, and shows how the horizontal and vertical processing states of blocks input in bursts from 6154 PCI in raster order are managed.
[0117]
FIG. 5 is a flowchart of the block comparison process, and shows a state in which adjacent data are sequentially compared and a flag is assigned.
[0118]
(Description of HDC)
According to the example of FIG. 2, the first and third block match flags become 0 and the second and fourth block match flags become 1, so the first block is read from the 6103/6104 memory and stored in the 6116 HDC. Write to buffer. Then, the data of 32 KB is stored in the 6150 hard disk as one cluster.
The second block writes to the next cluster using the buffer in the 6116 HDC used first. Therefore, access to the 6103/6104 memory is not performed.
The third block reads from the 6103/6104 memory and writes to the buffer in the 6116 HDC.
Then, the data of 32 KB is stored in the 6150 hard disk as one cluster.
The fourth block writes to the next cluster using the buffer in the 6116 HDC used third. Therefore, access to the 6103/6104 memory is not performed.
In this manner, writing is performed on the hard disk while using the CMP data.
[0119]
【The invention's effect】
As is clear from the above description, according to the present invention, the following can be described.
[0120]
According to the first aspect of the present invention, the input data is divided into blocks, the comparison is performed, and in the case of the same data, the rotation processing can be performed using the remaining data in the block buffer without accessing from the memory. Therefore, speeding up of the rotation process can be expected. Further, the number of times of memory access can be reduced, and it can be allocated to other resources. For example, it is possible to increase the speed of a parallel operation printer drawing. Further, even when there is no parallel operation, the number of memory accesses can be reduced, so that low power consumption can be expected.
[0121]
According to the second aspect of the invention, the input data is divided into blocks, the comparison is performed, and if the data is the same, the rotation processing can be performed using the remaining data in the block buffer without accessing from the memory. . Further, if the input data is divided into units and the comparison is performed and the same is performed, the operation of transferring the data from the block to the unit can be reduced, so that the rotation processing can be further speeded up. Further, the number of times of memory access can be reduced, and it can be allocated to other resources. For example, it is possible to increase the speed of a parallel operation printer drawing. Further, even when there is no parallel operation, the number of memory accesses can be reduced, so that low power consumption can be expected.
[0122]
According to the third aspect of the present invention, the input data is divided into blocks, the comparison is performed, and in the case of the same data, the data remaining in the block buffer is written to the hard disk in cluster units without accessing from the memory. Can speed up hard disk writing. Further, the number of times of memory access can be reduced, and it can be allocated to other resources. For example, it is possible to increase the speed of a parallel operation printer drawing. Further, even when there is no parallel operation, the number of memory accesses can be reduced, so that low power consumption can be expected.
[Brief description of the drawings]
FIG. 1 is an operation conceptual diagram of a rotation process of image data.
FIG. 2 is an operation conceptual diagram of a comparison unit when handling blocks.
FIG. 3 is a MAIN flow chart in comparison between blocks.
FIG. 4 is a flowchart of a process for managing vertical / horizontal width in comparison between blocks.
FIG. 5 is a flowchart of a comparison process in comparing blocks.
FIG. 6 is an operation conceptual diagram of a comparison unit when handling a unit.
FIG. 7 is a block diagram showing a basic configuration of a copying machine.
FIG. 8 is a block diagram illustrating a configuration of software installed in a controller (6016).
FIG. 9 is an internal configuration block diagram of an ASIC (6002).
FIG. 10 is a memory map of the ASIC (6002).
FIG. 11 is a block diagram illustrating an internal configuration of a copying machine.
FIG. 12 illustrates a flow of image data in a copy operation in FIG.
FIG. 13 is a timing chart of image input in a copy operation.
FIG. 14 is a timing chart of image transfer in a copy operation.
FIG. 15 illustrates a flow of image data in a printer operation in FIG.
FIG. 16 shows a flow of image data in a scanner operation in FIG.
FIG. 17 illustrates a flow of image data in a network application operation in FIG.
[Explanation of symbols]
6199 CMP
6103 SDRAM (memory)
6104 SDRAM (memory)
6147 EDIT
6116 HDC

Claims (3)

非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信された前記ラスターデータを回転処理ブロック単位に比較する比較手段と、前記ラスターデータを書き込むメモリと、前記メモリに書き込まれた前記ラスターデータを任意の方向へ回転処理する回転手段を備えた画像形成装置であり、
前記回転手段による回転処理の際、特に隣り合うブロックのラスターデータと比較して同じだった場合には、前記メモリから前記ラスターデータを読まずに回転処理バッファメモリにある前記ラスターデータを再利用することを特徴とする画像形成装置。
Receiving means for receiving uncompressed or fixed-length compressed raster data, comparing means for comparing the received raster data in units of rotation processing blocks, a memory for writing the raster data, and a memory for writing the raster data. An image forming apparatus having a rotation unit that rotates the raster data in an arbitrary direction,
At the time of the rotation processing by the rotation means, particularly when the raster data of the adjacent blocks is the same, the raster data in the rotation processing buffer memory is reused without reading the raster data from the memory. An image forming apparatus comprising:
非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信された前記ラスターデータを回転処理ユニット単位に比較する比較手段と、前記ラスターデータを書き込むメモリと、前記メモリに書き込まれた前記ラスターデータを任意の方向へ回転処理する回転手段を備えた画像形成装置であり、
前記回転手段による回転処理の際、特に隣り合うユニットのラスターデータと比較して同じだった場合には、回転処理バッファメモリから前記ラスターデータを読まずにユニットにある前記ラスターデータを再利用することを特徴とする画像形成装置。
Receiving means for receiving uncompressed or fixed-length compressed raster data; comparing means for comparing the received raster data in units of rotation processing units; a memory for writing the raster data; and a memory for writing the raster data. An image forming apparatus having a rotation unit that rotates the raster data in an arbitrary direction,
At the time of the rotation processing by the rotation unit, especially when the raster data of the adjacent unit is the same, the raster data in the unit is reused without reading the raster data from the rotation processing buffer memory. An image forming apparatus comprising:
非圧縮もしくは固定長圧縮されたラスターデータを受信する受信手段と、受信された前記ラスターデータを回転処理ブロック単位に比較する比較手段と、前記ラスターデータを書き込むメモリと、前記ラスターデータをハードディスク等に読み書きできる制御手段を備えた画像形成装置であり、
前記制御手段が前記ハードディスクに書き込む際、特に隣り合うブロックのラスターデータと比較して同じだった場合には、前記メモリから前記ラスターデータを読まずに前記ハードディスクへ書き込むバッファメモリにある前記ラスターデータを再利用することを特徴とする画像形成装置。
Receiving means for receiving uncompressed or fixed-length compressed raster data, comparing means for comparing the received raster data in units of rotation processing blocks, memory for writing the raster data, and storing the raster data on a hard disk or the like An image forming apparatus having a readable and writable control unit,
When the control means writes to the hard disk, especially when the same is compared with the raster data of an adjacent block, the raster data in the buffer memory written to the hard disk without reading the raster data from the memory is read. An image forming apparatus characterized by being reused.
JP2002381150A 2002-12-27 2002-12-27 Image forming apparatus Expired - Fee Related JP4065194B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002381150A JP4065194B2 (en) 2002-12-27 2002-12-27 Image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002381150A JP4065194B2 (en) 2002-12-27 2002-12-27 Image forming apparatus

Publications (2)

Publication Number Publication Date
JP2004214892A true JP2004214892A (en) 2004-07-29
JP4065194B2 JP4065194B2 (en) 2008-03-19

Family

ID=32817159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002381150A Expired - Fee Related JP4065194B2 (en) 2002-12-27 2002-12-27 Image forming apparatus

Country Status (1)

Country Link
JP (1) JP4065194B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033420A (en) * 2008-07-30 2010-02-12 Oki Semiconductor Co Ltd Cache circuit and cache memory control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033420A (en) * 2008-07-30 2010-02-12 Oki Semiconductor Co Ltd Cache circuit and cache memory control method

Also Published As

Publication number Publication date
JP4065194B2 (en) 2008-03-19

Similar Documents

Publication Publication Date Title
US8384972B2 (en) Image input/output control apparatus, image processing apparatus, image processing method, data communication apparatus, and data communication method
US6587735B1 (en) Data processing apparatus and processor selection method
JPH08251322A (en) Method and system for optimizing waiting time in facsimile transmission
JP3529205B2 (en) Printing equipment
JPH1083263A (en) Image forming device and method for image processing
JP2005094679A (en) Image processing apparatus equipped with energy saving mode functionality connected to network
US8578071B2 (en) Information processing apparatus and inter-processor communication control method
US7193738B2 (en) Image processing apparatus and method
JP3682443B2 (en) Image forming apparatus
US7145681B2 (en) Apparatus and method for processing divided image data
JP3798353B2 (en) Electronic equipment
JP2003274156A (en) Method and device for image processing
US8582153B2 (en) Image forming apparatus and method
JP5233608B2 (en) Image forming apparatus, image data transfer method, and program
JP4065194B2 (en) Image forming apparatus
JP2000115277A (en) Coding/decoding device and image formation system
JP2002305622A (en) Image input-output controller, image processor image processing method in image input-output controller and image processing method in image processor
JP3682442B2 (en) Image forming apparatus
JP2006255914A (en) Image forming apparatus
JP2004165741A (en) Image processor
JP7383462B2 (en) Image processing device, control method for image processing device, program
JP6833491B2 (en) Information processing device
JP2005192080A (en) Image forming apparatus
JP2000138823A (en) Image processor
JP2006018406A (en) Image forming apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees