画像処理装置
【課題】 複数の描画部によりタイル毎に画像を描画し、次工程でタイル毎に参照画素を要する画処理を行うシステムにおいて、描画工程と画像処理工程とを可能な限り少ないバッファメモリを用いて制御することを目的とする。
【解決手段】 各タイル毎に初期状態を示す状態と、描画済を示す状態と、使用済を示す状態とを少なくとも有する状態変数をまたせる構成をとる。
【解決手段】 各タイル毎に初期状態を示す状態と、描画済を示す状態と、使用済を示す状態とを少なくとも有する状態変数をまたせる構成をとる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリ上に矩形ブロック単位で展開された画像データに対して矩形ブロック単位で画像処理を施す画像処理装置に関するものである。
【背景技術】
【0002】
従来、メモリバッファ上に格納された画像データに対して画像処理を実行するものとしては、矩形ブロック領域単位で画像処理を実行するものがあった。矩形ブロック処理単位で画像処理を行う画像処理部は、対象となる矩形ブロック領域に対して画像処理を実行するためにより大きな参照領域を必要とする(特許文献1図17参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−220584号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の従来の技術では、画像処理部が対象領域の画像処理を行うために対象領域より広い参照領域を画像データが展開されたメモリバッファから読み取る必要があった。つまりある一つの矩形ブロック領域の画像がメモリバッファに格納されたとき、その矩形ブロック領域の画像処理を行うことはできない。図2に示すように参照領域は周囲の9個の矩形ブロックの領域の一部に及ぶからである。従って上述の技術においては十分広い領域の例えば1ページに相当する多くの矩形ブロックからなる領域を一旦メモリバッファ上に格納してから次工程の画像処理工程へ移る必要があった。
【0005】
本発明が解決しようとしている課題はメモリバッファの大きさを削減することである。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明は矩形ブロック単位で転送された画像データをメモリバッファに格納し、格納された画像データを元に画像処理を行い処理済データを出力する画像処理装置において以下の手段をとる。即ち、格納可能な状態を示す状態と格納済を示す状態と画像処理済を示す状態とを少なくとも有する状態変数をメモリバッファの各矩形ブロック単位ごとに保持する手段を有することを特徴とする。
【0007】
さらに前述の任意の矩形ブロック領域が画像処理可能状態になったときに画像処理要求命令を発生させる手段を有することを特徴とする。
【0008】
さらに前述の画像処理装置において、前述の画像処理要求命令を保持する待ち行列手段を有することを特徴とする。
【発明の効果】
【0009】
本発明の第一の効果は必要なバッファメモリの容量を削減することができることである。さらに大容量のメモリバッファへの格納の終了をまたずに次の画像処理工程へ移れるので最初の画像処理済データが得られるまでの時間は短縮される。
【0010】
また本発明によれば、各矩形ブロック領域を順番通り処理せず処理順が前後しても可能な矩形ブロック領域から効果的に次段の矩形ブロック単位の画像処理を行うことができる。このことは画像処理装置の内部構成の柔軟性を高める効果がある。例えばメモリバッファから見て上流の画像転送手段は複数個に拡張してパフォーマンスを向上させることが容易となる。同様にメモリバッファから見て下流の画像処理手段は複数個に拡張してパフォーマンスを向上させることが容易となる。
【図面の簡単な説明】
【0011】
【図1】本発明の画像処理装置を説明するブロック図である。
【図2】矩形ブロック領域と参照領域の関係を説明する図である。
【図3】画像処理装置が処理するページとバッファメモリ101との関係を示す図である。
【図4】メモリバッファとフラグテーブルの対応を説明する図である。
【図5】状態遷移を説明する図である。
【図6】フラグテーブルの更新を説明する図である。
【図7】一つの矩形ブロックがバッファメモリにライトされたときに制御部が行う動作を説明する図である。
【図8】一つの矩形ブロックの画像処理が完了したときに制御部が行う動作を説明する図である。
【図9】画像処理部1、画像処理部2、画像処理部3のそれぞれに実装されるスムージング回路の構成図である。
【図10】画像処理部1、画像処理部2、画像処理部3の詳細構成を示すブロツク図である。
【図11】3ステートバッファ24の構成を示す図である。
【図12】図10のSRAM周辺回路の動作を示すタイムチャートである。
【図13】7×7のウィンドウを示す図である。
【図14】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図15】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図16】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図17】スムージングによって得られる画像の例を示す図である。
【発明を実施するための形態】
【0012】
(実施例1)
図1は、本発明を実施した画像処理装置の構成を説明するブロック図である。
【0013】
図において、103はスプールメモリであり図示しない上流装置から送られた矩形ブロック領域ごとの描画のための中間データをスプールする。描画部1、描画部2、描画部3は描画部であり、それぞれスプールメモリ103にスプールされた矩形ブロック領域毎の中間データから画像データを生成する。
【0014】
3つの描画部が処理する矩形ブロックはページを縦3列に等分するなどして予め定めておいても良い。また、ページの左上の矩形ブロックから主走査方向へ順番に描画部1、描画部2、描画部3と振っても良い。また、予め定めずに処理が可能な描画部が未処理の矩形ブロックを動的に選択する方法でも良い。
【0015】
描画部1、描画部2、描画部3はそれぞれ生成された矩形ブロック領域の画像データをメモリバッファ101へライトする前にREQ信号を後述の制御部102へ発行する。それに対するACK信号が返されるまでメモリバッファ101へのライトは延期される。REQ信号は矩形ブロック領域を特定する情報を含んでいる。また、それぞれの描画部はその描画した画像をバッファメモリ101へライトし終えたならばWriteDONEを出力する。REQ、ACK、WriteDONEの通信は矩形ブロック領域の単位で行われる。また、REQ、ACK、WriteDONE信号は3つの描画部ごとに独立して存在する。
【0016】
フラグテーブル106はバッファメモリ101が有する矩形ブロック領域の全てに対応する状態を有するものであり、後述の制御部102により管理される。
【0017】
制御部102はWriteDONE信号、DONE信号の入力に応じてフラグテーブル106を更新する。またその状態を参照し各描画部からの描画要求された矩形ブロックを含む9個の矩形ブロックが全てIまたはWのとき描画を許可する。これはの後述する条件Bの判断を可能にするためである。
【0018】
また制御部102はフラグテーブル106の後述する条件Aが成立すると画像処理要求命令をキュー104へ送信する。画像処理要求命令は矩形ブロック領域一つの描画の単位で発行される。画像処理要求命令は矩形ブロック流域を特定する情報を含む。
【0019】
キュー104は待ち行列バッファであり画像処理要求命令を画像処理部1、画像処理部2、画像処理部3のいずれも受け付けられないとき命令を消失しないように保持する。
【0020】
画像処理部1、画像処理部2、画像処理部3の内画像処理動作中ではないいずれかのものがキュー104から画像処理要求命令を受信して指定された矩形ブロック領域の画像処理を行う。また、画像処理が終了するとDONE信号を制御部102へ返す。
【0021】
画像処理部1、画像処理部2、画像処理部3によって画像処理された画像データは後段のバッファ105に転送される。
【0022】
図3は画像処理装置が処理するページとバッファメモリ101との関係を示す図である。本実施例において1ページは主走査方向が矩形ブロック12個、副走査方向が矩形ブロック15個分のサイズを持っている。バッファメモリ101のサイズは主走査方向が矩形ブロック12個、副走査方向が矩形ブロック5個分である。
【0023】
図4はバッファメモリ101とフラグテーブル106との対応関係を説明する図である。本実施例では主走査方向に12ブロック、副走査方向に5ブロック分の矩形ブロック領域をもつバッファメモリであり、フラグメモリも同様の構成をもち各矩形ブロックごとに状態値を保持する。
【0024】
各矩形ブロックの状態値の遷移を図5を用いて説明する。
【0025】
最初は全ブロックについて初期状態でありまた、描画可能な状態である。その状態をI(Initial)と表す。描画部のライトが終了しWriteDONEが発行されたならばライトされた状態であるW(Written)の状態に遷移させる。続いて対応するブロックが画像処理に用いられたならばU(Used)の状態に遷移する。さらに後述する条件Bが成立し画像を保持する必要性が無くなったならば、最初のIの状態へ遷移する。
【0026】
図6はフラグテーブル106の更新のされ方を説明するずである。
【0027】
説明のため主走査方向の位置がx、副走査方向の位置がyの矩形ブロックを(x、y)とする。
【0028】
図6(a)は既に3ブロックのライトがされている。先に述べたように制御部102は各描画部からの描画要求された矩形ブロックを含む9個の矩形ブロックが全てIまたはWのとき描画を許可する。例えば描画部1、2、3のいずれかにより(4,0)の矩形のライトのREQ信号が発生されたとする。(a)の時点で左右の2ブロック、下方向の2ブロックともにIまたはWなので要求は許可される。本来上方のブロックとして(3、4)、(4、4)、(5、4)もチェックされるべきであるが、ページの先頭なのでドントケアとして良い。
【0029】
同図の(b)は処理が進行し、(6、0)の矩形ブロックの後述の条件Aが成立し(6、0)の画像処理要求命令が発生した状態を示す。条件Aとは対象となる矩形ブロックの周囲9つの矩形ブロックが全てWまたはUの状態になることである。(b)のときのバッファメモリはページの上端に相当するので上方向のブロックは必要条件からはずれ条件Aが成立となる。
【0030】
バッファメモリ101がページメモリの2バンド目以降に相当するとき即ちフラグテーブルの状態が2巡以上したときは上方向のブロックとして(5、4)、(6、4)、(7、4)を参照する必要がある。
【0031】
画像処理要求命令を画像処理部1、2、3のいずれかが受け画像処理を終えたたならばそれはDONE信号によって通知され、該当する矩形ブロックの状態はUへ遷移する。
【0032】
図6(c)はUの状態が増加している状態を示す図である。(c)の状態において(3、0)の矩形ブロックの後述の条件Bが成立し図6(d)において(3、0)がIへ遷移している。条件Bとは対象となる矩形ブロックの周囲9つの矩形ブロックが全てUまたはIの状態になることである。(c)のときのバッファメモリはページの上端に相当するので上方向のブロックは必要条件からはずれ条件Aが成立となる。
【0033】
バッファメモリ101がページメモリの2バンド目以降に相当するとき即ちフラグテーブルの状態が2巡以上したときは上方向のブロックとして(2、4)、(3、4)、(4、4)を参照する必要がある。
【0034】
図7と図8は制御部102が行う処理のフローを説明する図である。
【0035】
図7は描画部1、2、3のいずれかが矩形ブロックの画像データのバッファメモリへのライトを終了したときに制御部102で発生する処理フローである。同図の602においてまず制御部102は該当する矩形ブロックの状態をIからWへ変更する。次に上記の変更によって影響を受ける可能性のある9個の矩形ブロックのそれぞれについて状態変化があるかを603から607にかけてチェックする。
【0036】
まず603において602で状態が変更されたブロックを中心に含む9ブロックの一つを注目ブロックに設定する。604において注目矩形ブロックを含む周囲9矩形ブロックは全てWまたはUであるかを検査する。これは前述した条件Aである。Yesであれば606において画像処理要求命令を発生する。Noであれば605で最後と判断されない限り注目矩形を607で次のものに変更し604の条件チェックを繰り返す。以上条件Aのチェックを9回繰り返して終了する。
【0037】
図8は画像処理部1、2、3のいずれかが矩形ブロックの画像処理を終了したときに制御部102で発生する処理フローである。同図の702においてまず制御部102は該当する矩形ブロックの状態をWからUへ変更する。次に上記の変更によって影響を受ける可能性のある9個の矩形ブロックのそれぞれについて状態変化があるかを703から707にかけてチェックする。
【0038】
まず703において702で状態が変更されたブロックを中心に含む9ブロックの一つを注目ブロックに設定する。704において注目矩形ブロックを含む周囲9矩形ブロックは全てUまたはIであるかを検査する。これは前述した条件Bである。Yesであれば705において注目画素を発生する。Noであれば707で最後と判断されない限り注目矩形を706で次のものに変更し704の条件チェックを繰り返す。以上条件Bのチェックを9回繰り返して終了する。
【0039】
図9は画像処理部1、2,3のそれぞれに実装されるものの例を示すものであり、ここではそれぞれスムージング機能を有するものである。3つの画像処理部を並列に動作させることにより全体の処理のパフォーマンスを向上することが可能である。
【0040】
図9に示した画像処理部では、インターフェース部10が必要な画像データ、つまり矩形ブロック部の周囲の重複部を含むエリアの画像データを主メモリ102から読み取る。さらに内部で処理した後に矩形ブロック部のエリアのみの画像データを出力部103へ書き戻すものである。同図においてインターフェース部10は受信したデータをシリアルデータに変換して記憶部17へVCLKに同期させて転送する。記憶部17はインターフェース部10より送られてくる画像信号を受け、記憶部17が主走査7ラインを記憶し、スムージング部18がそれをウインドウ状に主走査7ドツトに展開してスムージング処理を行ない、それをプリンタエンジン200に送出する。
【0041】
ここで画像処理部107と画像処理部108がエッジ強調などのフィルタリングを行う画像処理であった場合においても周辺画素を参照する点で同様な回路構成になることに注意されたい。つまり画像データバスとのインターフェイスと周辺画素を保持するための記憶部17、周辺画素から注目画素のデータを決定する論理決定部である。論理決定部は図9においてはスムージング部に相当する。
【0042】
図10は、図9に示した画像処理部20の詳細構成を示すブロツク図である。同図に示した画像処理部には、図9のインターフェース部10から画像転送クロックVCLKと画像クロックVCLKと同位相で8倍の周波数のシステムクロックSCLK、そして画像クロックVCLKに同期してシリアル画像信号が送られてくる。
【0043】
シリアル画像信号は、3ステートラッチバッファ24の入力端の1つであるD0端子に入力され、D0に対応する3ステートラッチバッファ24の出力Q0 は、シフトレジスタ29に入力されるとともに、SRAM21のデータ端子であるI/O1にも入力される。また、SRAMのアドレスAD0〜AD6は、アドレスカウンタ22より供給される7本のアドレスラインと接続されている。尚、これら7本のアドレスラインにて展開されるアドレス長は、矩形ブロックの1ラインと周辺の画像データを記憶するのに十分である。
【0044】
また、SRAMへの読み出し信号OE、書き込み信号WE、3ステートバッファ24のラッチ信号CLK、出力イネーブル信号OC、及びアドレスカウンタ22のクリア信号RESETは、制御回路23にて生成されるが、それらの動作については後述する。制御回路23は、画像クロックVCLKの1周期間にシステムクロックSCLKにより複数のステートを作り出している。よって、上述の如く、SCLKはVCLKの8倍の周波数なので、ここでは画像クロックVLCKの1周期の間に最大8つのステツプを実行することができる。尚、3ステートラッチバッファ24の各バッファは、図11に示すようにラッチ回路24aとバッファ回路24bとから構成されている。
【0045】
次に、図12に示すタイムチヤートを参照して、図10のSRAM周辺回路の動作を説明する。尚、以下の説明では第n番目の画素のデータをdata(n)、そのデータが格納されるアドレスをadr(n)と記す。図12において、画像クロックVLCK(2)が論理ローレベルになつてから第1番目のクロックが入る(時刻t1)。そのとき、3ステートラッチバッファ24の出力イネーブル信号OC(9)がFALSE状態になり、3ステートラッチバッファ24内部のバッファ回路はハイインピーダンス状態となる。すると、今まで出力されていたデータdata(n−1)((10)バッファ出力参照)の出力が止まり、SRAM21のデータバスには何も入力されない状態となる。
【0046】
第2番目のクロックが入ると(時刻t2)、OE信号(5)がTRUE状態となる。同時にSRAM21はリード状態となつて((12)メモリ状態参照)、アドレスadr(n)に格納されていたデータdata(n)がデータバス上に出力される((6)メモリ出力データ参照)。第3番目のクロックにて(時刻t3)、ラッチクロック(7)が立ち上がるので、データバス上に出力されていたデータdata(n)が3ステートラッチバッファ24の内部でラッチされる。しかし、このときは、出力イネーブル信号OC(9)がFALSE状態のままなので、データは3ステートラッチバッファ24の外部には出力されない。そのため、バスの衝突は起こらない。
【0047】
第4番目のクロックが入ると(時刻t4)、SRAM21の出力イネーブル信号OE(5)がFALSE状態になり、SRAM21はフローテイング状態となる。そして、第5番目のクロックが入ると(時刻t5)、3ステートラッチバッファ24の出力イネーブル信号OC(9)がTRUE状態に変化し、ラッチされていたデータdata(n)が出力されてSRAM21に送られる。しかし、SRAM21は、ライトイネーブル信号WE(11)がFALSE状態であるため、書き込みは行なわれない。
【0048】
第6番目のクロックにて(時刻t6)、SRAM21のライトイネーブル信号WE(11)がTRUE状態となり、SRAM21にdata(n)が書き込まれる。そして、第7番目のクロックが入力されると(時刻t7)、ライトイネーブル信号WEがFALSE状態となつて書き込み動作が完了する。第8番目のクロックが入力されると(時刻t8)、アドレスがadr(n)からadr(n+1)に更新され、一画素のデータに関しての一連の動作が完了する。
【0049】
以上の動作が3ステートラッチバッファ24、及びSRAM21にて行なわれることで、画像クロックVCLKの1サイクルの間にSRAM21の端子から出力されたデータが同じアドレスの別端子に入力される。さらに、順次データが送られることによって、常に7ラインの画像データが記憶される。同時にシフトレジスタ29〜35に対しても画像データが供給される。
【0050】
シフトレジスタ29〜35は、それぞれ7ビツトのビツト長を有する。それらは、3ステートラッチバッファ24から送られてくる7ラインの画像データに対して直列−並列変換を施すことで主走査方向7ドツトずつに展開して、論理回路41に対しては、計49ドツトの画像データを送出する。論理回路41では、送出された49ビツトの画像データを、図13に示すような7×7のウインドにあてはめ、以下に説明する定められた論理に従つて注目画素D4を主走査方向に1/4の大きさの4ドツトa,b,c,dに分割する。さらに、レーザ光量の大小を指定する信号LPを決定する。尚、ここでは、レーザ光量指定信号Pは、画像クロックVCLK単位に変化するものとする。
【0051】
この論理回路41はANDロジツク回路にて構成され、シフトレジスタ29〜35からの計49個のデータの論理積をとり、その結果に応じて、1画素を4分割したa,b,c,d区画の印字、非印字を表わすVDO信号とレーザ光量指定信号LPを出力する。このレーザ光量指定信号LPは、1ドツト単位で変化し、VDO信号は、1/4ドツト単位に変化する。
【0052】
図14〜図16は、水平に近い線のスムージング処理を例を示すものである。図14において、図の右上に示す論理が成立する。つまり、3C,3D,3E,3F,3G,4A,4B,4Cが0(白)、4D,4E,4F,4G,5A,5B,5C,5D,5E,5F,5Gが1(黒)の場合は、注目画素4DのVDOをa=0,b=1,c=1,d=0とする。同様に、図15の場合、注目画素4DのVDOをa=0,b=1,c=1,d=0とする。また、図16の場合、注目画素4DのVDOをa=0,b=0,c=1,d=0とする。
【0053】
これらの処理による印字結果を、図17に示す。本図は画像処理が出力する矩形ブロックの単位を64×64であるときの例を示している。画像処理部としては重複部を含む70×70の画像領域を処理する。
【0054】
上述のように、1画素を1/4分割し、各区画を印字、または非印字にすることで、エッジや文字の輪郭を滑らかにすることができる。これは、この処理にて感光ドラム上の潜像電位を滑らかにすることができるためであり、電子写真特有の現象である。尚、ここでは、水平に近いラインのスムージング処理について説明したが、垂直に近いライン、斜め線、文字の輪郭という部分も、49画素の論理のデータの論理積をとることで検出できる。いずれの場合も感光ドラム上の潜像電位を滑らかにつなぎ、印字結果を滑らかにするよう注目画素の印字面積、及びレーザ光量を決定する。
【0055】
また、論理回路41の出力であるa,b,c,dは、バスインターフェイス回路10にてデータバスのプロトコルに変換され出力される。
【符号の説明】
【0056】
101 画像バッファメモリ
102 制御部
103 スプールメモリ
104 待ち行列バッファ
105 バッファ
【技術分野】
【0001】
本発明はメモリ上に矩形ブロック単位で展開された画像データに対して矩形ブロック単位で画像処理を施す画像処理装置に関するものである。
【背景技術】
【0002】
従来、メモリバッファ上に格納された画像データに対して画像処理を実行するものとしては、矩形ブロック領域単位で画像処理を実行するものがあった。矩形ブロック処理単位で画像処理を行う画像処理部は、対象となる矩形ブロック領域に対して画像処理を実行するためにより大きな参照領域を必要とする(特許文献1図17参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−220584号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の従来の技術では、画像処理部が対象領域の画像処理を行うために対象領域より広い参照領域を画像データが展開されたメモリバッファから読み取る必要があった。つまりある一つの矩形ブロック領域の画像がメモリバッファに格納されたとき、その矩形ブロック領域の画像処理を行うことはできない。図2に示すように参照領域は周囲の9個の矩形ブロックの領域の一部に及ぶからである。従って上述の技術においては十分広い領域の例えば1ページに相当する多くの矩形ブロックからなる領域を一旦メモリバッファ上に格納してから次工程の画像処理工程へ移る必要があった。
【0005】
本発明が解決しようとしている課題はメモリバッファの大きさを削減することである。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明は矩形ブロック単位で転送された画像データをメモリバッファに格納し、格納された画像データを元に画像処理を行い処理済データを出力する画像処理装置において以下の手段をとる。即ち、格納可能な状態を示す状態と格納済を示す状態と画像処理済を示す状態とを少なくとも有する状態変数をメモリバッファの各矩形ブロック単位ごとに保持する手段を有することを特徴とする。
【0007】
さらに前述の任意の矩形ブロック領域が画像処理可能状態になったときに画像処理要求命令を発生させる手段を有することを特徴とする。
【0008】
さらに前述の画像処理装置において、前述の画像処理要求命令を保持する待ち行列手段を有することを特徴とする。
【発明の効果】
【0009】
本発明の第一の効果は必要なバッファメモリの容量を削減することができることである。さらに大容量のメモリバッファへの格納の終了をまたずに次の画像処理工程へ移れるので最初の画像処理済データが得られるまでの時間は短縮される。
【0010】
また本発明によれば、各矩形ブロック領域を順番通り処理せず処理順が前後しても可能な矩形ブロック領域から効果的に次段の矩形ブロック単位の画像処理を行うことができる。このことは画像処理装置の内部構成の柔軟性を高める効果がある。例えばメモリバッファから見て上流の画像転送手段は複数個に拡張してパフォーマンスを向上させることが容易となる。同様にメモリバッファから見て下流の画像処理手段は複数個に拡張してパフォーマンスを向上させることが容易となる。
【図面の簡単な説明】
【0011】
【図1】本発明の画像処理装置を説明するブロック図である。
【図2】矩形ブロック領域と参照領域の関係を説明する図である。
【図3】画像処理装置が処理するページとバッファメモリ101との関係を示す図である。
【図4】メモリバッファとフラグテーブルの対応を説明する図である。
【図5】状態遷移を説明する図である。
【図6】フラグテーブルの更新を説明する図である。
【図7】一つの矩形ブロックがバッファメモリにライトされたときに制御部が行う動作を説明する図である。
【図8】一つの矩形ブロックの画像処理が完了したときに制御部が行う動作を説明する図である。
【図9】画像処理部1、画像処理部2、画像処理部3のそれぞれに実装されるスムージング回路の構成図である。
【図10】画像処理部1、画像処理部2、画像処理部3の詳細構成を示すブロツク図である。
【図11】3ステートバッファ24の構成を示す図である。
【図12】図10のSRAM周辺回路の動作を示すタイムチャートである。
【図13】7×7のウィンドウを示す図である。
【図14】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図15】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図16】図10の論理回路41にて行われるスムージング処理の1例を示す図である。
【図17】スムージングによって得られる画像の例を示す図である。
【発明を実施するための形態】
【0012】
(実施例1)
図1は、本発明を実施した画像処理装置の構成を説明するブロック図である。
【0013】
図において、103はスプールメモリであり図示しない上流装置から送られた矩形ブロック領域ごとの描画のための中間データをスプールする。描画部1、描画部2、描画部3は描画部であり、それぞれスプールメモリ103にスプールされた矩形ブロック領域毎の中間データから画像データを生成する。
【0014】
3つの描画部が処理する矩形ブロックはページを縦3列に等分するなどして予め定めておいても良い。また、ページの左上の矩形ブロックから主走査方向へ順番に描画部1、描画部2、描画部3と振っても良い。また、予め定めずに処理が可能な描画部が未処理の矩形ブロックを動的に選択する方法でも良い。
【0015】
描画部1、描画部2、描画部3はそれぞれ生成された矩形ブロック領域の画像データをメモリバッファ101へライトする前にREQ信号を後述の制御部102へ発行する。それに対するACK信号が返されるまでメモリバッファ101へのライトは延期される。REQ信号は矩形ブロック領域を特定する情報を含んでいる。また、それぞれの描画部はその描画した画像をバッファメモリ101へライトし終えたならばWriteDONEを出力する。REQ、ACK、WriteDONEの通信は矩形ブロック領域の単位で行われる。また、REQ、ACK、WriteDONE信号は3つの描画部ごとに独立して存在する。
【0016】
フラグテーブル106はバッファメモリ101が有する矩形ブロック領域の全てに対応する状態を有するものであり、後述の制御部102により管理される。
【0017】
制御部102はWriteDONE信号、DONE信号の入力に応じてフラグテーブル106を更新する。またその状態を参照し各描画部からの描画要求された矩形ブロックを含む9個の矩形ブロックが全てIまたはWのとき描画を許可する。これはの後述する条件Bの判断を可能にするためである。
【0018】
また制御部102はフラグテーブル106の後述する条件Aが成立すると画像処理要求命令をキュー104へ送信する。画像処理要求命令は矩形ブロック領域一つの描画の単位で発行される。画像処理要求命令は矩形ブロック流域を特定する情報を含む。
【0019】
キュー104は待ち行列バッファであり画像処理要求命令を画像処理部1、画像処理部2、画像処理部3のいずれも受け付けられないとき命令を消失しないように保持する。
【0020】
画像処理部1、画像処理部2、画像処理部3の内画像処理動作中ではないいずれかのものがキュー104から画像処理要求命令を受信して指定された矩形ブロック領域の画像処理を行う。また、画像処理が終了するとDONE信号を制御部102へ返す。
【0021】
画像処理部1、画像処理部2、画像処理部3によって画像処理された画像データは後段のバッファ105に転送される。
【0022】
図3は画像処理装置が処理するページとバッファメモリ101との関係を示す図である。本実施例において1ページは主走査方向が矩形ブロック12個、副走査方向が矩形ブロック15個分のサイズを持っている。バッファメモリ101のサイズは主走査方向が矩形ブロック12個、副走査方向が矩形ブロック5個分である。
【0023】
図4はバッファメモリ101とフラグテーブル106との対応関係を説明する図である。本実施例では主走査方向に12ブロック、副走査方向に5ブロック分の矩形ブロック領域をもつバッファメモリであり、フラグメモリも同様の構成をもち各矩形ブロックごとに状態値を保持する。
【0024】
各矩形ブロックの状態値の遷移を図5を用いて説明する。
【0025】
最初は全ブロックについて初期状態でありまた、描画可能な状態である。その状態をI(Initial)と表す。描画部のライトが終了しWriteDONEが発行されたならばライトされた状態であるW(Written)の状態に遷移させる。続いて対応するブロックが画像処理に用いられたならばU(Used)の状態に遷移する。さらに後述する条件Bが成立し画像を保持する必要性が無くなったならば、最初のIの状態へ遷移する。
【0026】
図6はフラグテーブル106の更新のされ方を説明するずである。
【0027】
説明のため主走査方向の位置がx、副走査方向の位置がyの矩形ブロックを(x、y)とする。
【0028】
図6(a)は既に3ブロックのライトがされている。先に述べたように制御部102は各描画部からの描画要求された矩形ブロックを含む9個の矩形ブロックが全てIまたはWのとき描画を許可する。例えば描画部1、2、3のいずれかにより(4,0)の矩形のライトのREQ信号が発生されたとする。(a)の時点で左右の2ブロック、下方向の2ブロックともにIまたはWなので要求は許可される。本来上方のブロックとして(3、4)、(4、4)、(5、4)もチェックされるべきであるが、ページの先頭なのでドントケアとして良い。
【0029】
同図の(b)は処理が進行し、(6、0)の矩形ブロックの後述の条件Aが成立し(6、0)の画像処理要求命令が発生した状態を示す。条件Aとは対象となる矩形ブロックの周囲9つの矩形ブロックが全てWまたはUの状態になることである。(b)のときのバッファメモリはページの上端に相当するので上方向のブロックは必要条件からはずれ条件Aが成立となる。
【0030】
バッファメモリ101がページメモリの2バンド目以降に相当するとき即ちフラグテーブルの状態が2巡以上したときは上方向のブロックとして(5、4)、(6、4)、(7、4)を参照する必要がある。
【0031】
画像処理要求命令を画像処理部1、2、3のいずれかが受け画像処理を終えたたならばそれはDONE信号によって通知され、該当する矩形ブロックの状態はUへ遷移する。
【0032】
図6(c)はUの状態が増加している状態を示す図である。(c)の状態において(3、0)の矩形ブロックの後述の条件Bが成立し図6(d)において(3、0)がIへ遷移している。条件Bとは対象となる矩形ブロックの周囲9つの矩形ブロックが全てUまたはIの状態になることである。(c)のときのバッファメモリはページの上端に相当するので上方向のブロックは必要条件からはずれ条件Aが成立となる。
【0033】
バッファメモリ101がページメモリの2バンド目以降に相当するとき即ちフラグテーブルの状態が2巡以上したときは上方向のブロックとして(2、4)、(3、4)、(4、4)を参照する必要がある。
【0034】
図7と図8は制御部102が行う処理のフローを説明する図である。
【0035】
図7は描画部1、2、3のいずれかが矩形ブロックの画像データのバッファメモリへのライトを終了したときに制御部102で発生する処理フローである。同図の602においてまず制御部102は該当する矩形ブロックの状態をIからWへ変更する。次に上記の変更によって影響を受ける可能性のある9個の矩形ブロックのそれぞれについて状態変化があるかを603から607にかけてチェックする。
【0036】
まず603において602で状態が変更されたブロックを中心に含む9ブロックの一つを注目ブロックに設定する。604において注目矩形ブロックを含む周囲9矩形ブロックは全てWまたはUであるかを検査する。これは前述した条件Aである。Yesであれば606において画像処理要求命令を発生する。Noであれば605で最後と判断されない限り注目矩形を607で次のものに変更し604の条件チェックを繰り返す。以上条件Aのチェックを9回繰り返して終了する。
【0037】
図8は画像処理部1、2、3のいずれかが矩形ブロックの画像処理を終了したときに制御部102で発生する処理フローである。同図の702においてまず制御部102は該当する矩形ブロックの状態をWからUへ変更する。次に上記の変更によって影響を受ける可能性のある9個の矩形ブロックのそれぞれについて状態変化があるかを703から707にかけてチェックする。
【0038】
まず703において702で状態が変更されたブロックを中心に含む9ブロックの一つを注目ブロックに設定する。704において注目矩形ブロックを含む周囲9矩形ブロックは全てUまたはIであるかを検査する。これは前述した条件Bである。Yesであれば705において注目画素を発生する。Noであれば707で最後と判断されない限り注目矩形を706で次のものに変更し704の条件チェックを繰り返す。以上条件Bのチェックを9回繰り返して終了する。
【0039】
図9は画像処理部1、2,3のそれぞれに実装されるものの例を示すものであり、ここではそれぞれスムージング機能を有するものである。3つの画像処理部を並列に動作させることにより全体の処理のパフォーマンスを向上することが可能である。
【0040】
図9に示した画像処理部では、インターフェース部10が必要な画像データ、つまり矩形ブロック部の周囲の重複部を含むエリアの画像データを主メモリ102から読み取る。さらに内部で処理した後に矩形ブロック部のエリアのみの画像データを出力部103へ書き戻すものである。同図においてインターフェース部10は受信したデータをシリアルデータに変換して記憶部17へVCLKに同期させて転送する。記憶部17はインターフェース部10より送られてくる画像信号を受け、記憶部17が主走査7ラインを記憶し、スムージング部18がそれをウインドウ状に主走査7ドツトに展開してスムージング処理を行ない、それをプリンタエンジン200に送出する。
【0041】
ここで画像処理部107と画像処理部108がエッジ強調などのフィルタリングを行う画像処理であった場合においても周辺画素を参照する点で同様な回路構成になることに注意されたい。つまり画像データバスとのインターフェイスと周辺画素を保持するための記憶部17、周辺画素から注目画素のデータを決定する論理決定部である。論理決定部は図9においてはスムージング部に相当する。
【0042】
図10は、図9に示した画像処理部20の詳細構成を示すブロツク図である。同図に示した画像処理部には、図9のインターフェース部10から画像転送クロックVCLKと画像クロックVCLKと同位相で8倍の周波数のシステムクロックSCLK、そして画像クロックVCLKに同期してシリアル画像信号が送られてくる。
【0043】
シリアル画像信号は、3ステートラッチバッファ24の入力端の1つであるD0端子に入力され、D0に対応する3ステートラッチバッファ24の出力Q0 は、シフトレジスタ29に入力されるとともに、SRAM21のデータ端子であるI/O1にも入力される。また、SRAMのアドレスAD0〜AD6は、アドレスカウンタ22より供給される7本のアドレスラインと接続されている。尚、これら7本のアドレスラインにて展開されるアドレス長は、矩形ブロックの1ラインと周辺の画像データを記憶するのに十分である。
【0044】
また、SRAMへの読み出し信号OE、書き込み信号WE、3ステートバッファ24のラッチ信号CLK、出力イネーブル信号OC、及びアドレスカウンタ22のクリア信号RESETは、制御回路23にて生成されるが、それらの動作については後述する。制御回路23は、画像クロックVCLKの1周期間にシステムクロックSCLKにより複数のステートを作り出している。よって、上述の如く、SCLKはVCLKの8倍の周波数なので、ここでは画像クロックVLCKの1周期の間に最大8つのステツプを実行することができる。尚、3ステートラッチバッファ24の各バッファは、図11に示すようにラッチ回路24aとバッファ回路24bとから構成されている。
【0045】
次に、図12に示すタイムチヤートを参照して、図10のSRAM周辺回路の動作を説明する。尚、以下の説明では第n番目の画素のデータをdata(n)、そのデータが格納されるアドレスをadr(n)と記す。図12において、画像クロックVLCK(2)が論理ローレベルになつてから第1番目のクロックが入る(時刻t1)。そのとき、3ステートラッチバッファ24の出力イネーブル信号OC(9)がFALSE状態になり、3ステートラッチバッファ24内部のバッファ回路はハイインピーダンス状態となる。すると、今まで出力されていたデータdata(n−1)((10)バッファ出力参照)の出力が止まり、SRAM21のデータバスには何も入力されない状態となる。
【0046】
第2番目のクロックが入ると(時刻t2)、OE信号(5)がTRUE状態となる。同時にSRAM21はリード状態となつて((12)メモリ状態参照)、アドレスadr(n)に格納されていたデータdata(n)がデータバス上に出力される((6)メモリ出力データ参照)。第3番目のクロックにて(時刻t3)、ラッチクロック(7)が立ち上がるので、データバス上に出力されていたデータdata(n)が3ステートラッチバッファ24の内部でラッチされる。しかし、このときは、出力イネーブル信号OC(9)がFALSE状態のままなので、データは3ステートラッチバッファ24の外部には出力されない。そのため、バスの衝突は起こらない。
【0047】
第4番目のクロックが入ると(時刻t4)、SRAM21の出力イネーブル信号OE(5)がFALSE状態になり、SRAM21はフローテイング状態となる。そして、第5番目のクロックが入ると(時刻t5)、3ステートラッチバッファ24の出力イネーブル信号OC(9)がTRUE状態に変化し、ラッチされていたデータdata(n)が出力されてSRAM21に送られる。しかし、SRAM21は、ライトイネーブル信号WE(11)がFALSE状態であるため、書き込みは行なわれない。
【0048】
第6番目のクロックにて(時刻t6)、SRAM21のライトイネーブル信号WE(11)がTRUE状態となり、SRAM21にdata(n)が書き込まれる。そして、第7番目のクロックが入力されると(時刻t7)、ライトイネーブル信号WEがFALSE状態となつて書き込み動作が完了する。第8番目のクロックが入力されると(時刻t8)、アドレスがadr(n)からadr(n+1)に更新され、一画素のデータに関しての一連の動作が完了する。
【0049】
以上の動作が3ステートラッチバッファ24、及びSRAM21にて行なわれることで、画像クロックVCLKの1サイクルの間にSRAM21の端子から出力されたデータが同じアドレスの別端子に入力される。さらに、順次データが送られることによって、常に7ラインの画像データが記憶される。同時にシフトレジスタ29〜35に対しても画像データが供給される。
【0050】
シフトレジスタ29〜35は、それぞれ7ビツトのビツト長を有する。それらは、3ステートラッチバッファ24から送られてくる7ラインの画像データに対して直列−並列変換を施すことで主走査方向7ドツトずつに展開して、論理回路41に対しては、計49ドツトの画像データを送出する。論理回路41では、送出された49ビツトの画像データを、図13に示すような7×7のウインドにあてはめ、以下に説明する定められた論理に従つて注目画素D4を主走査方向に1/4の大きさの4ドツトa,b,c,dに分割する。さらに、レーザ光量の大小を指定する信号LPを決定する。尚、ここでは、レーザ光量指定信号Pは、画像クロックVCLK単位に変化するものとする。
【0051】
この論理回路41はANDロジツク回路にて構成され、シフトレジスタ29〜35からの計49個のデータの論理積をとり、その結果に応じて、1画素を4分割したa,b,c,d区画の印字、非印字を表わすVDO信号とレーザ光量指定信号LPを出力する。このレーザ光量指定信号LPは、1ドツト単位で変化し、VDO信号は、1/4ドツト単位に変化する。
【0052】
図14〜図16は、水平に近い線のスムージング処理を例を示すものである。図14において、図の右上に示す論理が成立する。つまり、3C,3D,3E,3F,3G,4A,4B,4Cが0(白)、4D,4E,4F,4G,5A,5B,5C,5D,5E,5F,5Gが1(黒)の場合は、注目画素4DのVDOをa=0,b=1,c=1,d=0とする。同様に、図15の場合、注目画素4DのVDOをa=0,b=1,c=1,d=0とする。また、図16の場合、注目画素4DのVDOをa=0,b=0,c=1,d=0とする。
【0053】
これらの処理による印字結果を、図17に示す。本図は画像処理が出力する矩形ブロックの単位を64×64であるときの例を示している。画像処理部としては重複部を含む70×70の画像領域を処理する。
【0054】
上述のように、1画素を1/4分割し、各区画を印字、または非印字にすることで、エッジや文字の輪郭を滑らかにすることができる。これは、この処理にて感光ドラム上の潜像電位を滑らかにすることができるためであり、電子写真特有の現象である。尚、ここでは、水平に近いラインのスムージング処理について説明したが、垂直に近いライン、斜め線、文字の輪郭という部分も、49画素の論理のデータの論理積をとることで検出できる。いずれの場合も感光ドラム上の潜像電位を滑らかにつなぎ、印字結果を滑らかにするよう注目画素の印字面積、及びレーザ光量を決定する。
【0055】
また、論理回路41の出力であるa,b,c,dは、バスインターフェイス回路10にてデータバスのプロトコルに変換され出力される。
【符号の説明】
【0056】
101 画像バッファメモリ
102 制御部
103 スプールメモリ
104 待ち行列バッファ
105 バッファ
【特許請求の範囲】
【請求項1】
矩形ブロック単位で画像データを転送する画像転送手段と、
上記画像転送手段により転送された画像データを記憶するメモリと、
上記メモリに記憶された画像データを元に画像処理を行い処理済データを出力する画像処理部と、
格納可能な状態を示す状態と格納済を示す状態と画像処理済を示す状態とを少なくとも有する状態変数を各矩形ブロック単位ごとに有する状態テーブルを有する画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
任意の矩形ブロック領域が画像処理可能状態になったときに画像処理要求命令を発生させる手段とを有する画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
画像処理要求命令を保持する待ち行列を有する画像処理装置。
【請求項1】
矩形ブロック単位で画像データを転送する画像転送手段と、
上記画像転送手段により転送された画像データを記憶するメモリと、
上記メモリに記憶された画像データを元に画像処理を行い処理済データを出力する画像処理部と、
格納可能な状態を示す状態と格納済を示す状態と画像処理済を示す状態とを少なくとも有する状態変数を各矩形ブロック単位ごとに有する状態テーブルを有する画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
任意の矩形ブロック領域が画像処理可能状態になったときに画像処理要求命令を発生させる手段とを有する画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
画像処理要求命令を保持する待ち行列を有する画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2010−288145(P2010−288145A)
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願番号】特願2009−141359(P2009−141359)
【出願日】平成21年6月12日(2009.6.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願日】平成21年6月12日(2009.6.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]