(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
ホストから印刷指示情報を受信する受信手段と、
受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換手段と、
前記中間情報をスキャンライン毎のスパン情報に変換する第２変換手段と、
スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り手段と、
前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成手段と、
スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割手段と、
タイル単位で前記生成手段が生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮手段と、
タイル単位の前記圧縮データのページ分を保持する記憶手段と、
前記記憶手段に保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷手段と
を有し、
前記分割手段は、前記第２変換手段からのスキャンライン毎のスパン情報を前記入力情報とし、タイル内のスキャンライン毎のスパン情報に分割してタイル単位のスパン情報に並べ替えて、前記並べ替えたタイル単位のスパン情報を前記色塗り手段に前記出力情報として出力することを特徴とする画像処理装置。
【請求項２】
前記分割手段は、副走査方向に２タイルラインを記憶する記憶手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記憶手段は、前記画像処理装置のメインメモリであることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記分割手段は、前記出力情報としての前記並べ替えたタイル単位のスパン情報を、スキャンライン毎にシーケンスに前記色塗り手段に出力することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
画像処理装置であって、
ホストから印刷指示情報を受信する受信手段と、
受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換手段と、
前記中間情報をスキャンライン毎のスパン情報に変換する第２変換手段と、
スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り手段と、
前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成手段と、
スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割手段と、
タイル単位で前記前記生成手段が生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮手段と、
タイル単位の前記圧縮データのページ分を保持する記憶手段と、
前記記憶手段に保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷手段と
を有し、
前記分割手段は、前記色塗り手段からのスキャンライン毎の色を付与したランレングス情報を前記入力情報とし、タイル内のスキャンライン毎のランレングス情報に分割してタイル単位のランレングス情報に並べ替えて、前記並べ替えたタイル単位の色を付与したランレングス情報を前記生成手段に前記出力情報として出力することを特徴とする画像処理装置。
【請求項６】
前記分割手段は、副走査方向に２タイルラインを記憶する記憶手段を有することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記記憶手段は、前記画像処理装置のメインメモリであることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記分割手段は、前記出力情報としての前記並べ替えたタイル単位のランレングス情報を、スキャンライン毎にシーケンスに前記生成手段に出力することを特徴とする請求項５に記載の画像処理装置。
【請求項９】
画像処理装置の制御方法であって、
受信手段が、ホストから印刷指示情報を受信する受信工程と、
第１変換手段が、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換工程と、
第２変換手段が、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換工程と、
色塗り手段が、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り工程と、
生成手段が、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成工程と、
分割手段が、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割工程と、
圧縮手段が、タイル単位で前記生成工程にて生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮工程と、
記憶手段が、タイル単位の前記圧縮データのページ分を記憶部に保持する記憶工程と、
印刷手段が、前記記憶工程により保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷工程と
を有し、
前記分割工程では、前記第２変換工程により変換されたスキャンライン毎のスパン情報を前記入力情報とし、タイル内のスキャンライン毎のスパン情報に分割してタイル単位のスパン情報に並べ替えて、前記並べ替えたタイル単位のスパン情報を前記色塗り工程に対して前記出力情報として出力することを特徴とする画像処理装置の制御方法。
【請求項１０】
画像処理装置の制御方法であって、
受信手段が、ホストから印刷指示情報を受信する受信工程と、
第１変換手段が、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換工程と、
第２変換手段が、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換工程と、
色塗り手段が、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り工程と、
生成手段が、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成工程と、
分割手段が、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割工程と、
記憶手段が、タイル単位で前記生成工程にて生成されたタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮工程と、
記憶手段が、タイル単位の前記圧縮データのページ分を記憶部に保持する記憶工程と、
印刷手段が、前記記憶工程により保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷工程と
を有し、
前記分割工程では、前記色塗り工程のよるスキャンライン毎の色を付与したランレングス情報を前記入力情報とし、タイル内のスキャンライン毎のランレングス情報に分割してタイル単位のランレングス情報に並べ替えて、前記並べ替えたタイル単位の色を付与したランレングス情報を前記生成工程に対して前記出力情報として出力することを特徴とする画像処理装置の制御方法。
【請求項１１】
請求項９または１０に記載の画像処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及びその制御方法に関する。例えば、ページ記述言語等のベクタデータを印刷するプリンタもしくは複合機に関わる画像処理技術である。特に、レンダリング後のラスタ画像をスプールする際に、画像をラスタ順からタイル順に変換するプリンタもしくは複合機に関する画像処理技術に関するものである。
【背景技術】
【０００２】
ページ記述言語等のベクタデータをレンダリングし、生成したラスタ画像やスキャナから読み込んだラスタ画像をスプールし、プリンタエンジンに印刷を行う画像処理装置として複合機がある。かかる処理を、特許文献１や２に開示されているように、ラスタ画像をスプールする際に画像をラスタ順からタイル順に変換する（以下ラスタタイル変換処理と称す）ことで、画像処理が並列に処理できるようになり高速な印刷が可能となる。
【０００３】
図１６Ａ及び図１６Ｂは、かかるラスタタイル変換処理を行なう従来の画像処理装置のコントローラ構成を示した構成図である（なお、図１６Ａ及び図１６Ｂにおいては、本願に関連する構成要素のみを説明する）。図１６Ａ及び図１６Ｂは、画像処理装置のコントローラ部２０００を示す。コントローラ部２０００は、破線で囲んだ１チップのＡＳＩＣからなる、外部から受信したページ記述言語データから出力画像データを生成すると共に入力画像データを処理するシステム制御部２１５０を有する。また、コントローラ部２０００は、破線で囲んだ１チップのＡＳＩＣからなる、システム制御部２１５０からの出力画像データを受信して出力すると共に入力画像データをシステム制御部２１５０に送信する画像処理部２１４９を有する。
【０００４】
ネットワーク２０１１経由で受信したページ記述言語データをＣＰＵ２００１にて処理し、レンダリング可能なディスプレイリストに変換した後、レンダリング部２０６０にてラスタ画像を生成する。生成されたラスタ画像の各画素は、ラスタ順にビデオ信号２１１として色変換部２１３５を経由してタイル生成部２０６１に送られ、タイル生成部２０６１でタイル順に変換される。
【０００５】
以下、図１７及び図１８の説明において、図１６Ａ及び図１６Ｂの構成要素が参照される。
【０００６】
図１７は、従来技術のレンダリング部２０６０の詳細を示したデータフロー図である。なお、図１７の左側の表示リストストアは、ＣＰＵ２００１にて処理してページ記述言語データから変換されたレンダリング可能なディスプレイリストに相当し、例えば図１６Ａの外部記憶装置２００４に格納されている。また、図１７の右側の一次ストアは、レンダリング部２０６０による処理中にデータを一次記憶する領域であり、例えば図１６ＡのＲＡＭ２００２に確保される。図１７の中央がレンダリング部２０６０が実行する処理機能部であり、ハードウエア、ソフトウエアあるいはその組合せで実現される。
【０００７】
ディスプレイリストの命令ストリームが命令実行部３００によりフェッチされて、順に実行される。辺処理部４００において、辺レコードストアを使用して辺情報がスキャンラインごとのＸ座標とグラフィックオブジェクトの情報に変換される。この時のグラフィックオブジェクトごとのＸ座標対がグラフィックオブジェクトの当該スキャンラインのスパン情報となる。優先順位判定部５００は、優先順位特性・状態テーブルを使用して、グラフィックオブジェクトごとの前後関係の優先順位から可視オブジェクトを判定し、当該スキャンラインのスパンを含む塗りつぶし命令を生成する。塗りつぶし色判定部６００は、塗りつぶしデータテーブルを使用して、ラスタ画像の画素データを当該スキャンラインのオブジェクトごとにどんな色で塗るかを判定する。そして、単色のオブジェクトであれば単色の色とそのスパンの長さを生成し、イメージやグラデーションなどの単色ではないオブジェクトでは画素ごとの色を生成する。画素合成部７００では、画素合成スタックを使用して、生成された色を用いて重なったオブジェクトの色の合成を行う。画素合成部７００は、合成後の色を、単色オブジェクトの合成であれば色とランレングス情報を出力し、単色でないオブジェクトの合成結果であれば複数の色情報を出力する。画素出力部８００は、画素合成部７００が生成したランレングス情報を全ての画素情報に伸張し、ビデオ信号２１１として送信する。
【０００８】
図１８は、従来技術の図１６Ａ、図１６Ｂ及び図１７の構成におけるページ記述言語の受信から印刷までの処理フローをまとめたデータ処理フロー図である。図１６Ａ及び図１６Ｂで参照番号が付された構成要素、図１７の各処理部を参照して、以下説明をする。
【０００９】
ＣＰＵ２００１により、ページ記述言語から生成されたディスプレイリスト形式のベクタデータ生成処理１０１が行われる。次に、命令実行部３００、辺処理部４００、優先順位判定部５００によって、ディプレイリストデータからスキャンラインごとのスパン情報に変換されるスパン生成処理１０２が行われる。次に、塗りつぶし色判定部６００、画素合成部７００により、色塗り処理１０３が行われる。次に、画素出力部８００がピクセル生成処理１０４を行う。かかる、スパン生成処理１０２、色塗り処理１０３、ピクセル生成処理１０４を、図１６Ａのレンダリング部２０６０が実行する。
【００１０】
生成された画素（ピクセル）は、図１６Ａのタイル生成部２０６１によって、ラスタタイル変換処理１０５が実施される。ラスタタイル変換処理１０５は、タイル高さ分のラスタ画像を保持するために中間バッファメモリ１０６を必要とする。この中間バッファメモリ１０６としては、図１６Ａのタイル生成部２０６１がシステムバスブリッジ２００７、ＲＡＭコントローラ２１２４経由でアクセスするメインメモリ（ＲＡＭ）２００２の一部領域を使用する。タイル生成部２０６１はタイル画像の圧縮処理１０７も実施し、圧縮されたタイル順のラスタ画像が図１６Ａの外部記憶装置２００４にスプール処理１０８される。
【００１１】
図１６Ａの外部記憶装置２００４にスプール処理１０８された画像は、図１６Ｂのタイル伸張部２１０３にて伸張処理１０９され、タイルバス２１０７を経由して画像回転部２０３０等で回転処理１１０などが行われる。この伸張され回転処理などをしたタイル形式のピクセルデータは、画像出力インターフェース２１１３、２１５１、２１５２，２１５３にてタイルラスタ変換が行われる。そして、プリンタ画像処理部２１１５、２１５４，２１５５，２１５６にて色変換処理１１３やハーフトーン処理１１４が実施され、プリンタ２０９５にて印刷処理１１５がなされる。
【００１２】
ここで、タイルラスタ変換処理１１１が行われる際にタイル高さ分の中間メモリ１１２が必要になるが、画像出力インターフェース２１１３、２１５１、２１５２，２１５３がメモリバス２１０８を経由して画像メモリ２１２３内の一部領域を使用する。
【００１３】
図１９は、図１８にて説明した従来技術の処理フローにおいて、ベクタデータ生成処理１０１からラスタタイル変換処理１０５までの処理データ例を示した模式図である。なお、ここでは、背景６０１に単色のオブジェクト６０２とイメージ６０３を展開する処理を例に説明する。赤い矩形オブジェクト６０２とイメージ６０３の無い領域は背景であり、本例では白とする。
【００１４】
ベクタデータ生成処理１０１により図１９の最上段に示すベクタデータが生成される。
【００１５】
生成されたベクタデータはスパン情報生成処理１０２により図１９の２段目にしめすスパン情報に変換される。スパンＡには背景しかないため、ページの左端から右端までのスパンとなる。スキャンラインＢＣＤは、赤い矩形オブジェクト６０２が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクトのスパンであるスパンＣ、さらに背景のスパンＤが生成される。スキャンラインＢＥＦは、赤い矩形オブジェクト６０２とイメージ６０３が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクト６０２のスパンであるスパンＥ、さらにイメージ６０３のスパンＦが生成される。
【００１６】
続いて、図１９の３段目に示すようにいろ塗り処理１０３が実施される。スキャンラインＡでは、背景色である白とスパンの長さとの組合せのランレングス情報が生成される。スキャンラインＢＣＤでは、背景の白とそのスパン長、赤い矩形オブジェクト６０２の色とそのスパン長、さらに背景の白とそのスパン長によるランレングス情報が生成される。スキャンラインＢＥＦでは、背景の白とそのスパン長、赤い矩形オブジェクト６０２の色とそのスパン長、さらにイメージ６０３による各画素の色情報の並びによるランレングス情報が生成される。
【００１７】
続いて、図１９の４段目に示すように、ピクセル生成処理１０４によって画素情報に変換され、図１９の最下段に示すように、ラスタタイル変換処理１０５にてページのラスタ順からタイル順の画像に変換される。
【特許文献１】特開2002-300190公報
【特許文献２】特開2002-305622公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来技術のラスタタイル変換処理１０５では、大量のデータを中間バッファメモリ１０６（ＲＡＭ２００２）に読み書きすることになる。印刷解像度が６００dpiであった場合には、Ａ４サイズ(幅21cm、高さ29.5cm)の画像をラスタタイル変換するために、次のサイズのデータを中間バッファメモリ１０６に格納する必要がある。
【００１９】
(21[cm]/2.54[cm/inch]x600[dpi]) x (29.5[cm]/2.54[cm/inch]x600[dpi])
＝ 4960[pixel] x 6968[pixel]
＝ 34.56[Mpixels]
1[pixel] ＝ 4[byte] (R=8bit, G=8bit, B=8bit, Attribute=8bit)
34.56[Mpixel] x 4[byte] ＝ 138.24[MB]
毎分８５枚の印刷速度を実現するためには、次のようなメモリのデータ転送帯域が必要となる。
【００２０】
(138.24[MB, 書き込み] + 138.24[MB, 読み出し]) / (60[sec]/85[ppm])
＝ 391.68[MB/s]
印刷の解像度は年々高くなっているため、印刷の解像度が１２００dpiに向上した場合に必要になるメモリのデータ転送帯域は、６００dpiの４倍となるため、以下のメモリのデータ転送帯域が必要になる。
【００２１】
391.68[MB/s] x 4 ＝ 1566.72[MB/s] ＝ 1.567[GB/s]
一方、DDR2 SDRAM 400MHz 64bit のメモリの理論的なデータ転送帯域は、3.2[GB/s]であるが、ランダムアクセス時の実効のメモリのデータ転送帯域は、1[GB/s]から1.5[GB/s]の間である。
【００２２】
従って、印刷の解像度６００dpiではラスタタイル処理１０５はＤＲＡＭを用いて実現可能であり、かつメモリ帯域に余裕があるため他の処理との共用が可能であった。しかし、印刷の解像度が１２００dpiに高まると、ＤＲＡＭの１チャンネルで実現が出来る限界となり、かつメモリ帯域に余裕が無いため、他の処理を実現するためにＤＲＡＭをもう１チャネル増設する必要が生じる。このため、コストが上昇してしまうという課題がある。
【００２３】
ところで、図１６Ａでは中間バッファメモリ１０６として使用されるＲＡＭ２００２をＡＳＩＣ（破線で囲んだシステム制御部２１５０や画像処理部２１４９）の外部に装備している。メモリのデータ転送帯域を上げる別の解決策として、中間バッファメモリ１０６をＡＳＩＣ上のオンチップメモリで実現し、ＤＲＡＭのチャネル増設を回避するという方法もある。この場合には、以下の容量のメモリが必要となる。
【００２４】
(29.5[cm]/2.54[cm/inch]x1200 [dpi])x32[line/tile]x2[band]x4[byte]
＝ 4960[pixel] x 6968[pixel]
＝ 3.56[MB]
90nmの半導体プロセスを用いてＡＳＩＣ上に3.56MBのオンチップメモリを実現することは可能であるが、やはり大幅なコスト上昇を生じてしまうため、前者の方法と同様の課題がある。
【００２５】
本発明は、前記課題を鑑みてなされたものである。本発明者等は、図１９の２段目から４段目に示すように、一般にランレングス情報はほとんどの場合ラスタ画像よりもデータ量が少なく、またスパン情報はランレングス情報よりもデータ量が少ないことに注目した。そこで、タイル順への変換処理を従来のラスタ画像を用いて行うのではなく、その上流の色塗り処理の出力であるランレングス情報、もしくはスパン生成処理の出力であるスパン情報において、データの並びをタイル順に置き換える。かかる処理により、タイル順に変換する際に一次格納するデータ量を大幅に削減し、従来と同等以下のコストおよびメモリのデータ転送帯域においても高い出力解像度のラスタタイル処理を実現する。
【課題を解決するための手段】
【００２６】
この課題を解決するために、本発明の画像処理装置は、画像処理装置であって、ホストから印刷指示情報を受信する受信手段と、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換手段と、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換手段と、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り手段と、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成手段と、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割手段と、タイル単位で前記生成手段が生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮手段と、タイル単位の前記圧縮データのページ分を保持する記憶手段と、前記記憶手段に保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷手段とを有し、前記分割手段は、前記第２変換手段からのスキャンライン毎のスパン情報を前記入力情報とし、タイル内のスキャンライン毎のスパン情報に分割してタイル単位のスパン情報に並べ替えて、前記並べ替えたタイル単位のスパン情報を前記色塗り手段に前記出力情報として出力することを特徴とする。
【００２７】
ここで、前記分割手段は、副走査方向に２タイルラインを記憶する記憶手段を有する。また、前記記憶手段は、前記画像処理装置のメインメモリである。また、前記分割手段は、前記出力情報としての前記並べ替えたタイル単位のスパン情報を、スキャンライン毎にシーケンスに前記色塗り手段に出力する。
【００２８】
また、本発明の画像処理装置は、画像処理装置であって、ホストから印刷指示情報を受信する受信手段と、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換手段と、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換手段と、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り手段と、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成手段と、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割手段と、タイル単位で前記前記生成手段が生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮手段と、タイル単位の前記圧縮データのページ分を保持する記憶手段と、前記記憶手段に保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷手段とを有し、前記分割手段は、前記色塗り手段からのスキャンライン毎の色を付与したランレングス情報を前記入力情報とし、タイル内のスキャンライン毎のランレングス情報に分割してタイル単位のランレングス情報に並べ替えて、前記並べ替えたタイル単位の色を付与したランレングス情報を前記生成手段に前記出力情報として出力することを特徴とする。
【００２９】
ここで、前記分割手段は、副走査方向に２タイルラインを記憶する記憶手段を有する。また、前記記憶手段は、前記画像処理装置のメインメモリである。また、前記分割手段は、前記出力情報としての前記並べ替えたタイル単位のランレングス情報を、スキャンライン毎にシーケンスに前記生成手段に出力する。
【００３１】
また、本発明の画像処理装置の制御方法は、画像処理装置の制御方法であって、受信手段が、ホストから印刷指示情報を受信する受信工程と、第１変換手段が、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換工程と、第２変換手段が、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換工程と、色塗り手段が、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り工程と、生成手段が、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成工程と、分割手段が、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割工程と、圧縮手段が、タイル単位で前記生成工程にて生成したタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮工程と、記憶手段が、タイル単位の前記圧縮データのページ分を記憶部に保持する記憶工程と、印刷手段が、前記記憶工程により保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷工程とを有し、前記分割工程では、前記第２変換工程により変換されたスキャンライン毎のスパン情報を前記入力情報とし、タイル内のスキャンライン毎のスパン情報に分割してタイル単位のスパン情報に並べ替えて、前記並べ替えたタイル単位のスパン情報を前記色塗り工程に対して前記出力情報として出力することを特徴とする。
【００３２】
また、本発明の画像処理装置の制御方法は、画像処理装置の制御方法であって、受信手段が、ホストから印刷指示情報を受信する受信工程と、第１変換手段が、受信した前記印刷指示情報を、レンダリング処理可能な中間情報へ変換する第１変換工程と、第２変換手段が、前記中間情報をスキャンライン毎のスパン情報に変換する第２変換工程と、色塗り手段が、スキャンライン毎のスパン情報に色を付与して、色情報と繰り返し情報とからなるスキャンライン毎のランレングス情報を生成する色塗り工程と、生成手段が、前記ランレングス情報を展開することによって、タイル順の画素情報を生成する生成工程と、分割手段が、スキャンライン毎の入力情報を、タイル内のスキャンライン毎の情報に分割してタイル単位の出力情報に並べ替える分割工程と、記憶手段が、タイル単位で前記生成工程にて生成されたタイル順の画素情報を圧縮処理して圧縮データを生成する圧縮工程と、記憶手段が、タイル単位の前記圧縮データのページ分を記憶部に保持する記憶工程と、印刷手段が、前記記憶工程により保持されたタイル単位に圧縮された前記圧縮データを用いて印刷処理する印刷工程とを有し、前記分割工程では、前記色塗り工程のよるスキャンライン毎の色を付与したランレングス情報を前記入力情報とし、タイル内のスキャンライン毎のランレングス情報に分割してタイル単位のランレングス情報に並べ替えて、前記並べ替えたタイル単位の色を付与したランレングス情報を前記生成工程に対して前記出力情報として出力することを特徴とする。
【００３３】
更に、上記画像処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム、及び該プログラムを記憶したコンピュータで読み取り可能な記憶媒体を提供する。
【発明の効果】
【００３４】
以上述べたように、本発明によれば、ラスタタイル変換処理に必要なメモリのデータ転送帯域を大幅に削減することが可能となり、プリンタシステムを実現する際にコスト上昇を抑えながら印刷の解像度を向上することが可能となる。
【００３５】
例えば、印刷の解像度１２００dpiにおいて、ページの３０％の面積がイメージで占められていた場合、ランレングス情報のデータ量はラスタ画像のデータ量の３０％にほぼ等しい。従って、必要なメモリのデータ転送帯域は、以下の様に削減される。
【００３６】
1.567[GB/s] x 30% ＝ 470[MB/s]
このメモリのデータ転送帯域であれば、印刷の解像度６００dpiと同等のコストで実現できる。
【００３７】
また例えば、スパン情報のデータ量が32byteで、かつ全面にひとつのオブジェクトがある場合には、スパン情報によりラスタタイル処理に必要なメモリのデータ転送帯域は以下の帯域となり、非常に少ない帯域で処理が可能となる。
【００３８】
(32[byte]x(29.5[cm]/2.54[cm/inch]x1200[dpi]))
x 2(read/write)/(60[sec]/85[ppm])
＝ 1.26[MB/s]
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施形態を添付図面を参照して詳細に説明する。
【００４０】
＜本実施形態の画像処理装置の構成例＞
本実施形態における画像処理装置は、スパン情報あるいはランレングス情報においてラスタ順からタイル順への変換を行なう。かかる処理は、従来例で示したレンダリング部２０６０において実現される。従って、図１６Ａ及び図１６Ｂにおいて、タイル生成部２０６１が無い構成が、本実施形態の画像処理装置のコントロール部の構成例となる（図示せず）。
【００４１】
なお、本実施形態のレンダリング部２０６０の特徴的部分については、図９から図１３において詳細に説明する。以下、かかる本実施形態の画像処理装置のコントロール部の構成を念頭に置いて、その処理例を説明する。
【００４２】
＜第１実施形態の画像処理装置の動作例＞
図１は、上記のような図１６Ａ及び図１６Ｂにおいてタイル生成部２０６１が無い構成における、第１実施形態におけるページ記述言語の受信から印刷までの処理フローをまとめたデータ処理フロー図である。なお、従来例の図１７と同様の処理については、同じ参照番号を付する。
【００４３】
まず、印刷指示情報であるページ記述言語からレンダリング処理可能な中間情報であるディスプレイリスト形式のベクタデータを生成するベクタデータ生成処理１０１が行われる。かかるベクタデータ生成処理１０１は第１変換処理として参照される。
【００４４】
次に、ディプレイリストデータからスキャンライン毎のスパン情報に変換されるスパン情報生成処理１０２が行われる。かかるスパン情報生成処理１０２は第２変換処理として参照される。第１実施形態では、かかるスキャンライン毎のスパン情報がスパンタイル変換処理２０１への入力情報となる。
【００４５】
第１実施形態では、生成されたスキャンラインごとのスパン情報は、スパンタイル変換処理２０１によって各タイル内のスキャンラインのスパン情報に変換される。このときタイル高さ分のスキャンラインごとのスパン情報が、中間バッファメモリ２０２（図１６ＡのＲＡＭ２００２）に格納され、かつ読み出される。第１実施形態においては、各タイル内のスキャンラインのスパン情報がスパンタイル変換処理２０１からの出力情報となる。
【００４６】
次に、各タイル内のスキャンラインのスパン情報は、色塗り処理１０３によってオブジェクトごとの色が付与され、タイルライン（タイルの主走査方向の１行分）ごとのランレングス情報として出力される。タイルラインごとのランレングス情報は、ピクセル生成処理１０４によって画素情報に変換され、タイル順の画素情報として出力される。
【００４７】
ここで、上記のように、中間バッファメモリ２０２はメインメモリであるＲＡＭ２００２内の一部領域として確保される。レンダリング部２０６０から、システムバスブリッジ２００７、ＲＡＭコントローラ２１２４経由にてＲＡＭ２００２内の中間メモリバッファ２０２の領域がアクセスされる。スパンタイル順変換処理２０１を含むスパン情報生成処理１０２からピクセル生成１０４までの処理は、レンダリング部２０６０に実装される。
【００４８】
その後は、従来例と同様に、圧縮処理１０７を実施し、圧縮されたタイル順のラスタ画像（圧縮データとも言う）のページ分が図１６Ａの外部記憶装置２００４にプール処理１０８される。図１６Ａの外部記憶装置２００４にスプール処理１０８されたページ分の画像は、図１６Ｂのタイル伸張部２１０３にて伸張処理１０９され、タイルバス２１０７を経由して画像回転部２０３０等で回転処理１１０などが行われる。この伸張され回転処理などをしたタイル形式のピクセルデータは、画像出力インターフェース２１１３、２１５１、２１５２，２１５３にてタイルラスタ変換が行われる。そして、プリンタ画像処理部２１１５、２１５４，２１５５，２１５６にて色変換処理１１３やハーフトーン処理１１４が実施され、プリンタ２０９５にて印刷処理１１５がなされる。
【００４９】
ここで、タイルラスタ変換処理１１１が行われる際にタイル高さ分の中間メモリ１１２が必要になるが、画像出力インターフェース２１１３、２１５１、２１５２，２１５３がメモリバス２１０８を経由して画像メモリ２１２３内の一部領域を使用する。
【００５０】
（第１実施形態におけるタイル順への変換の具体例）
図２は、図１にて説明した第１実施形態の処理フローにおいてベクタデータ生成処理１０１からピクセル生成処理１０４までの処理データ例を示した模式図である。従来例における、図１８と対比すると本願発明の作用効果が明瞭となる。なお、従来との対比を明瞭にするため、背景６０１と赤い矩形オブジェクト６０２とイメージ６０３とは、図１８と同様である。
【００５１】
ベクタデータ生成処理１０１により、図２の最上段に示すベクタデータが生成される。
【００５２】
生成されたベクタデータはスパン情報生成処理１０２により、図２の２段目にしめすスパン情報に変換される。スパンＡは背景しかないためページの左端から右端までのスパンとなる。スキャンラインＢＣＤは、赤い矩形オブジェクト６０２が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクトのスパンであるスパンＣ、さらに背景のスパンＤが生成される。スキャンラインＢＥＦは、赤い矩形オブジェクト６０２とイメージ６０３が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクト６０２のスパンであるスパンＥ、さらにイメージ６０３のスパンＦが生成される。
【００５３】
続いて、図２の３段目に示すように、本実施形態のスパンタイル順変換処理２０１によって、スキャンライン単位のスパン情報からタイル内のスキャンラインのスパン情報に変換される。
【００５４】
スキャンラインＡは、４つのタイルT1,T2,T3,T4に分割される。背景であるためページの左端から右端までのスパンであったスパンＡは、４つのタイル幅のスパンに分割される。
【００５５】
スキャンラインＢＣＤも、４つのタイルT1,T2,T3,T4に分割される。タイル形式への変換前のスキャンラインＢＣＤは、背景と赤い矩形オブジェクトによって、スパンＢ、スパンＣ、スパンＤの３つのスパンであった。これが、タイルT1はスパンＢ、タイルT2はスパンＣが分割された前方のスパン、タイルT3もスパンＣが分割された後方のスパン、タイルT４はスパンＤに分割される。
【００５６】
スキャンラインＢＥＦも、４つのタイルT1,T2,T3,T4に分割される。タイル形式への変換前のスキャンラインＢＥＦは、背景と赤い矩形オブジェクトとイメージオブジェクトによって、スパンＢ、スパンＥ、スパンＦの３つのスパンであった。それが、タイルT1はスパンＢ、タイルT2はスパンＥと分割された前方のスパンＦ、タイルT3は分割された中間のスパンＦ、タイルT４も後方のスパンＦに分割される。
【００５７】
続いて、図２の４段目６に示すように、タイル内のスキャンラインのスパン情報からタイル単位の色塗り処理１０３が実施されて、ランレングス情報が生成される。次に、図２の５段目に示すように、ランレングス情報からピクセル生成処理１０４により画素情報が生成される。
【００５８】
本実施形態では、このピクセル生成処理１０４が終了した時点で、図２の最下段に示したように、タイル順の画像情報が完成していることになる。
【００５９】
（本実施形態の画像データ例）
図３は、本実施形態のベクタデータ生成処理１０１で生成され、スパン情報生成処理１０２で処理を行うディスプレイリストのデータ形式を示したデータ例である。すなわち、本実施形態において使用される、ディスプレイリスト、優先順位テーブル、塗りつぶしリスト、などの例を示す図である。背景６０１と赤い矩形オブジェクト６０２とイメージ６０３とは、図２及び図１８と同様である。
【００６０】
３１はディスプレイリストであり、上からイメージ、赤い矩形オブジェクト、背景が記述されている。ここで、優先順位（プライオリティー）は“０”が最も高いとする。初めにPriority=０の背景６０１を指定し、次に１００ライン描画する。次にPriority=１の赤い矩形オブジェクト６０２を指定し、次に５０ライン描画する、次にPriority＝２のビットマップオブジェクト６０３を指定し、さらにページ下端まで１５０ラインを描画する。
【００６１】
３２は、描画記述とは別にオブジェクトの上下関係を示す優先順位テーブル(PriorityTable)が存在し、ディスプレイリストの先頭から順にスタックされている。優先順位テーブル３２の各エントリには、色塗りのためのPaintIDと各オブジェクトのアウトラインへのポインタが含まれる。各々のアウトラインは、開始のＸ座標と、外形のパスがＸ，Ｙアドレスの増減で指定される。そのアウトラインが３２ａにそれぞれ示されている。
【００６２】
PaintIDは、塗りつぶしリスト(PaintTable)３３のエントリに対応しており、PaintTableは各色塗り情報であるpaint情報３３ａへのポインタ配列である。各paint情報３３ａには、単色(FLAT)とビットマップ(BITMAP)が存在し、FLATはRGB各色の値が含まれ、BITMAPはアフィン変換のための変換行列と、ビットマップ実体３３ｂへのポインタが含まれる。本例では、背景が白、赤い矩形オブジェクト、イメージのビットマップが定義されている。
【００６３】
第１実施形態では、優先順位テーブル３２から各オブジェクトのアウトライン３２ａが判定された時点で、スパン情報の生成及びスパンタイル順変換処理が実行される。塗りつぶしリスト３３に基づく塗りつぶし処理は、スパンタイル順変換処理が完了した後に実行される。
【００６４】
図４は、本実施形態において使用される、タイル形式の画像データの例を示す図である。かかるタイル形式の画像データは、既にピクセル単位に展開された結果を示している。
【００６５】
図４は、Ａ４サイズのページ４１で、６００dpiの場合の例を示しており、３２×３２画素のタイル４２に分割されて、１ページが２２０×１５６＝３４，３２０タイルとなる。なお、１２００dpiの場合には、４４０×６２４＝２７４，５６０タイルとなる。
【００６６】
＜第１実施形態のスパンタイル順変換処理の処理手順例＞
図５は、スパンタイル順変換処理２０１の処理フローを示したフローチャートである。なお、かかる処理は、レンダリング部２０６０で実行される。レンダリング部２０６０を制御するＣＰＵによりソフトウエアで実現されてもよいし、後述のようなステップマシンによるファームウエア、あるいはハイドウエア回路で実現されてもよい。
【００６７】
初めに注目スキャンラインのスパン情報を、例えば外部記憶装置２００４から取得する（Ｓ５０１）。次に、注目スキャンラインのスパン情報を中間バッファメモリ２０２（ＲＡＭ２００２）に格納する（Ｓ５０２）。１つのタイルの高さ分のスキャンラインを取得したかを判断する（Ｓ５０３）。まだ１つのタイルの高さ分のスパン情報を取得していない場合には、注目ラインを次ラインに設定し（Ｓ５０４）、注目スキャンラインのスパンを入力（５０１）に戻る。
【００６８】
１つのタイルの高さ分のスキャンラインを取得したならば、ライン中の注目タイルを設定する（Ｓ５０５）。注目ラインを注目タイルの先頭ラインに設定する（Ｓ５０６）。次に、注目タイルの注目ラインに相当するスパン情報を中間バッファメモリ２０２から読み出し（Ｓ５０７）、注目タイル内のスキャンラインに相当する幅に分割したスパン情報を生成して、タイル順に色塗り処理１０３へ送信する（Ｓ５０８）。次に、注目タイルの高さ分のラインを処理したかを判断する（Ｓ５０９）。注目タイルの高さ分を処理していなければ、注目ラインを次のラインに変更し（Ｓ５１０）、注目タイルの注目ラインのスパン情報を中間バッファメモリ２０２から読み出す処理（Ｓ５０７）へ戻る。
【００６９】
注目タイルの高さ分の処理が終わっていたならば、主走査方向（ライン方向）の最後のタイルまで処理を行ったかを判断する（Ｓ５１１）。主走査方向の最後まで終わっていなければ、主走査方向に注目タイルを移動し（Ｓ５１２）、注目タイルを設定する処理（Ｓ５０５）へ戻る。
【００７０】
主走査方向の最後のタイルを処理し終えたならば、次にページ終了かを判断する（Ｓ５１３）。ページが終了していないならば、注目ラインをそれまで処理したタイルラインの次のタイルラインの先頭に変更し（Ｓ５１４）、注目ラインのスパン情報を外部記憶装置２００４から取得する処理（Ｓ５０１）へ戻る。ページが終了していたならば、処理を終了する。
【００７１】
＜第１実施形態のスパンタイル順変換処理の具体例＞
（スパンタイル順変換処理前のスパン情報例）
図６Ａは、第１実施形態におけるスパン情報のフォーマット例を示す図である。また、図６Ｂは、図２の例において図６Ａのフォーマットで外部記憶装置２００４に格納されたスパン情報の格納例を示した模式図である。
【００７２】
図６Ａに示すように、スパン情報は一対のエッジ情報からなり、ひとつのエッジ情報は、少なくとも優先順位情報、現在のＸ座標位置、エッジの方向フラグを含む。
【００７３】
図６Ｂは、図２の例におけるスパン情報である。
【００７４】
ライン０には背景しかないため、ページの左端と右端の一対のエッジからなるスパン情報を生成する。これはスキャンラインＡに相当する。
【００７５】
赤い矩形オブジェクト６０２が展開されるスキャンラインＢＣＤに相当するスパン情報が、ラインＮに示されている。左からページの左端エッジ、赤い矩形オブジェクト６０２の左端エッジ、赤い矩形オブジェクト６０２の右端エッジ、ページの右端エッジからなる。
【００７６】
図６Ｂに示すように、スパン情報の情報量はスキャンライン毎に異なるデータ量を持つ。本実施形態では、メモリ上の連続の領域に、異なるデータ量のライン情報を隙間なく詰めて格納する。
【００７７】
（スパンタイル順変換処理の動作例）
図７は、中間バッファメモリ２０２（ＲＡＭ２００２）におけるスパンタイル順変換処理中のスパン情報について示した図である。なお、図７には、図５における各ステップとの対応が示されている。
【００７８】
７０は、図２及び図３の処理対象と同じページを示している。ここでは、理解を容易にするためページを４×６＝２４のタイルに分割する例を示している。
【００７９】
７１は、外部記憶装置２００４に格納されているスパン情報の先頭のタイルラインを示している。図５のステップＳ５０１の繰り返しにより、図６Ｂのスパン情報からかかるスパン情報の先頭のタイルライン分が取得される。７２は、図５のステップＳ５０１の繰り返しで、中間バッファメモリ２０２であるＲＡＭ２００２にスパン情報の先頭のタイルライン分が格納される。７３もＲＡＭ２００２に格納されたスパン情報の先頭のタイルライン分であり、図５のステップＳ５０７の繰り返しで、ＲＡＭ２００２からスパン情報がタイル順に読み出される。
【００８０】
７４は、レンダリング部２０６０におけるスパンタイル順変換処理の実行部における処理を示す。図５のステップＳ５０８の処理の繰り返しで、ＲＡＭ２００２から読み出したスパン情報をタイル幅に分割して、７５に示すようにタイル順に色塗り処理１０３へ送信する。
【００８１】
なお、中間バッファメモリ２０２からタイル順にスパン情報を取得するため、スパンタイル順変換処理２０１では、注目タイルの高さ内の各スキャンラインの現在の注目スパンのアドレス情報を、注目タイル内のスキャンライン数分保持する。そして、注目タイルのスパン情報を生成するごとに当該アドレス情報を更新する。
【００８２】
（スパンタイル順変換処理後のスパン情報）
図８は、スパンタイル順変換処理２０１によってタイル順に変換されて、色塗り処理１０３へ出力されるタイル分割後のスパン情報を示す模式図である。かかるタイル分割後のスパン情報は、タイル順に色塗り処理１０３へ送信される。
【００８３】
スキャンライン０からスキャンライン７までは、背景しかないため、注目タイルの左端エッジと右端エッジからなるスパン情報に分割される。タイル０内のスキャンライン０とタイル１内のスキャンライン０のスパン情報は、図６Ｂのスキャンライン０のスパン情報が分割されて生成されたものである。
【００８４】
図６ＢのスキャンラインＮは、オブジェクト６０２が開始されるスキャンラインである。スキャンラインＮは、タイルｍ内のスキャンライン１に対応し、タイルｍはオブジェクト６０２の左上端である。そのために、タイルｍ内のスキャンライン１の中には、背景のスパン情報と、オブジェクト６０２のスパン情報とが発生する。タイルｍ＋１を見るとタイルｍ＋１内のスキャンライン１はオブジェクト６０２のスパンのみが存在する。
【００８５】
＜本実施形態のスパンタイル順変換処理の回路構成例＞
図９は、スパンタイル順変換処理２０１を実現する回路構成例を示したブロック図である。なお、図９中の"FIFO"はファーストイン・ファーストアウト（先書込み・先読出し）のバッファ、"FSM"は特定機能を果たすステート・マシン、"Cache"はキャッシュメモリを表わしている。
【００８６】
ライトFIFO（図９中、Write FIFO)１３０１がスパン情報生成部１０２から送られてくるスキャン順のスパン情報を受信し、有効なスパン情報を受信したことをvalid01信号でストアFSM(図９中、Store FSM)１３０２に通知する。ストアFSM１３０２はライトFIFO１３０１に有効なスパン情報が入っていると、start0信号を出力することを起点とした中間バッファメモリ２０２へのライトトランザクションを発生させる。そして、スパン情報を中間バッファメモリ２０２へ保存する。
【００８７】
ストアFSM１３０２は、ラインの先頭をEnd of line01信号の出力を検出することで検知する。そして、スキャンラインの先頭のスパン情報を中間バッファメモリ２０２へ保存するアドレスをアドレスFIFO(図９中、Adress FIFO)１３０３へ送付する。また、ストアFSM１３０２は、１つのタイルの高さ分のスパン情報を中間バッファメモリ２０２に書き出したことを検知すると、Tile line end02信号をアドレスFIFO１３０３へ送付する。
【００８８】
タイルリードFSM(図９中、Tile Read FSM)１３０４は、アドレスFIFO１３０３に保持されたスキャンラインのスパン情報の先頭アドレスを獲得する。そして、タイルリードFSM１３０４が保持する１タイルの高さ分をアドレスするアドレスレジスタに順次記憶する。タイルリードFSM１３０４は、アドレスFIFO１３０３からTile line end03信号の出力によってタイルラインの終了を検知すると、記憶したアドレスから中間バッファメモリ２０２に格納されたスパン情報をリードする。
【００８９】
タイルリードFSM１３０４が中間バッファメモリ２０２からスパン情報をリードする際に、キャッシュ(図９中、Cache)１３０５が中間バッファメモリ２０２からリードしたスパン情報をアドレスに関連付けてキャッシュする。タイルリードFSM１３０４のメモリアクセスは、同じスパン情報を次のタイルのリード時にもリードする可能性が高いため、キャッシュ１３０５内にキャッシュされたデータがヒットする場合が多い。
【００９０】
タイルリードFSM１３０４は、中間バッファメモリ２０２からキャッシュ１３０５を経由してリードしたスキャンライン構成のスパン情報を、注目タイルのスパンに分割し、リードFIFO(図９中、Read FIFO)１３０６へ出力する。リードFIFO１３０６は、タイル内のスパン情報を色塗り処理１０３へ送信する。
【００９１】
（ストアFSM１３０２の動作例）
図１０Ａは、ストアFSM１３０２の実装を示した状態遷移図である。図１０Ｂは、ストアFSM１３０２の各状態(State Sx)における出力信号と内部レジスタの状態を示す図である。
【００９２】
ストアFSMはまず、バンド０のスタートアドレス(Band.addr0)を内部レジスタにロードする（S0）。次に、スタートアドレスを最初のスキャンラインのスタートアドレスとして、アドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する(S1)。
【００９３】
次にライトFIFO１３０１に有効なスパンデータが格納されているかを、valid01により確認する（S2）。有効なスパンデータが格納されていれば、当該スパンデータを中間バッファメモリ２０２にライトするために、アドレス信号を出力する（S3）。次に、データをメモリ上に書き出してライトFIFO１３０１のデータを１つ引き出す（S4）。次に、内部レジスタに保持している書き出し先アドレスをインクリメントする(S5)。ここで、まだライトFIFO1301に有効なデータが保存されていなければ、アイドル（S2）に遷移するが、有効なデータが保持されていれば次のアドレスフェーズ（S3）に遷移する。かかる、S3-S4-S5-(S2)-S3…を繰り返すことで、１ライン分のスパン情報を
もし(S2)において、当該有効なデータがラインの最後であれば(End of line01)、ライン最後のアドレスフェーズ（S6）に遷移する。ライン最後のデータをメモリに書き出し（S7）、内部レジスタに保持したアドレス情報とタイル内ライン数カウントをインクリメントする（S8）。タイル内のライン数カウンタが１タイルの高さに達していなければ、既にインクリメントしたアドレスを、次ラインの先頭アドレスとしてアドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する(S1)。
【００９４】
タイル内のライン数カウンタが１タイルの高さに達していたならば、タイルの終わりである情報(Tile line end02)を、アドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する（S9）。次に、最初のバンドでなければ、タイルリードFSM１３０４からのバンドフィニッシュ信号(Band finish)の出力を待って（S10）、バンド１の先頭アドレスをロードする（S11）。最初のバンドであれば、タイルリードFSM１３０４からのバンドフィニッシュ信号(Band finish)の出力を待たずに、直接、バンド１の先頭アドレスをロードする（S11）。
【００９５】
次に、スタートアドレス(Line addr02)を最初のスキャンラインのスタートアドレスとして、アドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する(S12)。以降の、S12からS19における処理は、バンドが異なるのみでS1からS8と類似である。
【００９６】
ライトFIFO１３０１に有効なスパンデータが格納されているかを確認する（S13）。有効なスパンデータが格納されていれば、当該スパンデータを中間バッファメモリ２０２にライトするために、まずアドレス信号を出力する（S14）。次に、データをメモリ上に書き出してライトFIFO１３０１のデータを１つ引き出す（S15）。次に、内部レジスタの保持している書き出し先アドレスをインクリメントする(S16)。まだライトFIFO1301に有効なデータが保存されていなければ、アイドル（S13）に遷移し、有効なデータが保持されていれば次のアドレスフェーズ（S14）に遷移する。もし(S13)において、当該有効なデータがラインの最後であればライン最後のアドレスフェーズ（S17）に遷移する。ライン最後のデータをメモリに書き出し（S18）、内部レジスタに保持したアドレス情報とタイル内のライン数カウントをインクリメントする（S19）。タイル内のライン数カウンタが１タイルの高さに達していなければ、既にインクリメントしたアドレスを、次ラインの先頭アドレスとしてアドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する(S12)。
【００９７】
もし(S19)において、タイル内のライン数カウンタがタイル高さに達していたならば、次にタイルの終わりである情報を、アドレスFIFO１３０３を経由してタイルリードFSM１３０４へ送信する（S20）。最後のバンドであったならばシーケンスを終了し、最後のバンドでなければ、次に、タイルリードFSM１３０４からのバンドフィニッシュ信号の出力を待って（S21）、バンド０の先頭アドレスをロードする（S0）。以上を繰り返す。
【００９８】
このように、ストアFSM１３０２においては、ダブルバッファ（BAND0, BAND1)処理によって、副走査方向に２タイルライン分を読み出すことで、スパンタイル順変換処理の高速化を図っている。
【００９９】
（タイルリードFSM１３０４の動作例）
図１１Ａは、タイルリードFSM１３０４の実装を示した状態遷移図である。図１１Ｂは、タイルリードFSM１３０４の各状態(State Sx)における出力信号と内部レジスタの状態を示す図である。
【０１００】
初めに内部レジスタの値を初期化し（S0）、次にストアFSM１３０２からアドレスFIFO１３０３を経由したLineAddrValid03信号の出力を待つ（S1）。LineAddrValid03信号が出力されたならば、ラインの先頭アドレス(Line addr03)を内部レジスタにロードする（S2）。ラインの先頭アドレスが１タイル内のライン数分送られてきていなければ、アイドル(S1)に戻ってラインの先頭アドレスのロード(S2)を繰り返す。
【０１０１】
１タイル内のライン数分の先頭アドレスが送られてくれば、内部レジスタの主走査方向のタイル数カウンタを最初のタイルにセットする(S3)。続いて、中間バッファメモリ２０２からリードするラインをセットする(S4)。
【０１０２】
状態は右図の(S5)に遷移して、当該ラインの最初のスパンデータのアドレスを発行し（S5）、中間バッファメモリ２０２からキャッシュ１３０５経由でスパンデータを取得する（S6）。もし(S6)において、取得したスパンデータのＸ座標が注目タイルの左端よりも小さいＸ座標であれば、アドレスをインクリメントし（S7）、再度アドレスを発行して（S5）、次のスパンデータを取得する（S6）。
【０１０３】
もし(S6)において、取得したスパンデータのＸ座標が注目タイルの左端のＸ座標と等価であれば、まずタイルの左端のＸ座標をタイル内のスパンデータの最初の情報として出力して、アドレスをインクリメントする（S8）。次にアドレスを発行し（S9）、中間バッファメモリ２０２からキャッシュ１３０５経由でスパンデータを取得する（S10）。取得したスパンデータのＸ座標が注目タイルの右端よりも小さいＸ座標であれば、アドレスをインクリメントし（S11）、再度アドレスを発行する（S9）。もし(S10)において、取得したスパンデータのＸ座標が注目タイルの右端と等価かそれ以上であれば、タイルの右端のＸ座標をタイル内のスパンデータの右端として出力する（S13）。
【０１０４】
もし(S6)において、取得したスパンデータのＸ座標が注目タイルの左端のＸ座標より大きいＸ座標であれば、タイルの左端のＸ座標をタイル内のスパンデータの左端として出力する(S12)。そして、タイルの右端のＸ座標をタイル内のスパンデータの右端として出力する（S13）。
【０１０５】
次に、更新した現状のアドレスをタイル内の当該ラインの注目アドレスとして、注目ラインに関連付けられた内部レジスタに保存し（S14）、状態は左図に戻る。
【０１０６】
現在のアドレスを内部レジスタに保存された次ラインの注目アドレスに切り替えることで、注目ラインを更新する（S15）。更新した注目ラインがタイルの下端でなければ、(S15)から(S5)に遷移し、アドレスを発行して次ラインのスパンデータのリードを開始する（S5）。更新した注目ラインがタイルの下端であれば、注目タイルを主走査方向に更新し（S16）、注目ラインをタイル内の最初のラインに設定する（S4）。そして、アドレスを発行してスパンデータのリードを開始する（S5）。
【０１０７】
もし(S15)において、更新した注目ラインがタイルの下端で、かつ主走査方向にリードし、分割すべきタイルの右端のタイルを処理し終えたならば、BandFinsih信号を出力する（S17）。ストアFSM１３０２からの次のバンドバッファが用意されたか(Band finish ack)を確認し、次のバンドバッファが用意されたならばアイドルに戻る（S1）。
【０１０８】
（スパンタイル順変換回路の動作タイミング例）
図１２及び図１３は、スパンタイル順変換処理２０１を実行する図９乃至図１１に図示のスパンタイル順変換回路の挙動の一部を示した波形図である。なお、"clk"はクロック信号を示し、以下の説明では添付番号をサイクルｎとして参照する。従って、図１３は図１２の後に続く波形図である。
【０１０９】
サイクル１において、ストアFSM１３０２がバンドの先頭アドレスをスキャンラインの先頭アドレスとして出力し、続くサイクル２で、ライトFIFO1301に最初のスパンデータが受信される。
【０１１０】
サイクル３で、ライトFIFO１３０１からストアFSM１３０２にvalid01信号が出力されるため、ストアFSM１３０２はサイクル４において、start0信号を出力してライトトランザクションをスタートする。ライトトランザクションはサイクル４、５で終了する。ライトFIFO１３０１に次のスパンデータが既に入力されているため、ストアFSM１３０２は次のライトトランザクションをサイクル７、８で発生する。
【０１１１】
ストアFSM１３０２は、End of line01信号によってラインの終了であることを検出するため、サイクル９で次ラインの先頭アドレスをLine addr02に載せてアドレスFIFO１３０３に送信する。スキャンライン方向のスパンデータの格納がこのように継続し、タイルの最後のラインの際に、ストアFSM１３０２はTile ine end02信号を出力し、アドレスFIFO１３０３を介してTile ine end03信号となる。
【０１１２】
Tile line end03信号により、タイルリードFSM１３０４はまずサイクル１４で、キャッシュ１３０５をflush信号を出力することによって初期化し、続いてタイル内のラインの先頭アドレスからリードトランザクションを発行する。そして、サイクル１５〜２０に示すのように、中間バッファメモリ２０２からキャッシュ１３０５を経由してスパンデータを取得する。このスパンデータはサイクル４、５において中間バッファメモリ２０２に格納されたものをリードしている。
【０１１３】
タイルリードFSM１３０４は、リードしたスキャンラインのスパンデータをタイル内のスパンデータに分割し、サイクル１８、２１でリードFIFO１３０６にタイルに分割されたスパンデータを出力する。
【０１１４】
このようなタイル内に分割されたスパンデータの出力を繰り返し、サイクル３１，３２においてタイル内の最後のラインの最後のスパンデータを出力すると、注目タイルを主走査方向に１増加し、サイクル３６から再度スキャンラインのスパンデータのリードを行う。
【０１１５】
タイルリードFSM１３０４は、かかるサイクル１４から３２の処理を主走査方向のタイルの処理が終了するまで繰り返し、主走査方向のタイルが終了すると、副走査方向の次ぎのタイル(Band1として用意されている）の処理に移る。かかる処理が、ページの全タイルについて行われるまで繰り返される。
【０１１６】
＜第２実施形態の画像処理装置の動作例＞
図１４は、第２実施形態におけるページ記述言語印刷の処理フローをまとめたデータ処理フロー図である。第１実施形態ではスパン情報生成処理１０２で生成されたスパン情報に対してタイル順の変換がされたが、第２実施形態では、色塗り処理後のランレングス情報に対してタイル順への変換が行われる。
【０１１７】
ページ記述言語から生成されたディスプレイリスト形式のベクタデータ生成処理１０１が行わる。次に、ディプレイリストデータからスキャンラインごとのスパン情報に変換されるスパン情報生成処理１０２が行われる。生成されたスキャンライン毎のスパン情報は、色塗り処理１０３によってスパン単位の色が加えられる。単色のスパンでは色情報と繰り返し情報が生成され、イメージ等の画素毎に色の異なるオブジェクトのスパンでは複数の画素のそれぞれの色情報の連続情報からなるスキャンライン毎のランレングス情報が生成される。第２実施形態では、かかるスキャンライン毎のランレングス情報がランレングスタイル変換処理１２０１への入力情報となる。
【０１１８】
本第２実施形態では、スキャンライン毎のランレングス情報は、ランレングスタイル順変換処理１２０１により、一度中間バッファメモリ１２０２に格納される。そして、格納されたスキャンライン毎のランレングス情報をタイル順に読み出し、タイル幅に分割されたランレングス情報としてピクセル生成処理１０４に対して出力される。第２実施形態においては、タイル幅に分割されたランレングス情報ランレングスタイル変換処理１２０１からの出力情報となる。
【０１１９】
タイルライン毎のランレングス情報は、ピクセル生成処理１０４によって画素情報に変換され、タイル順の画素情報として出力される。
【０１２０】
ここで、上記のように、中間バッファメモリ２０２はメインメモリであるＲＡＭ２００２内の一部領域として確保される。レンダリング部２０６０から、システムバスブリッジ２００７、ＲＡＭコントローラ２１２４経由にてＲＡＭ２００２内の中間メモリバッファ２０２の領域がアクセスされる。ランレングスタイル順変換処理１２０１を含むスパン情報生成処理１０２からピクセル生成１０４までの処理は、レンダリング部２０６０に実装される。
【０１２１】
その後は、従来例と同様に、圧縮処理１０７を実施し、圧縮されたタイル順のラスタ画像（圧縮データとも言う）のページ分が図１６Ａの外部記憶装置２００４にスプール処理１０８される。図１６Ａの外部記憶装置２００４にスプール処理１０８されたページ分の画像は、図１６Ｂのタイル伸張部２１０３にて伸張処理１０９され、タイルバス２１０７を経由して画像回転部２０３０等で回転処理１１０などが行われる。この伸張され回転処理などをしたタイル形式のピクセルデータは、画像出力インターフェース２１１３、２１５１、２１５２，２１５３にてタイルラスタ変換が行われる。そして、プリンタ画像処理部２１１５、２１５４，２１５５，２１５６にて色変換処理１１３やハーフトーン処理１１４が実施され、プリンタ２０９５にて印刷処理１１５がなされる。
【０１２２】
ここで、タイルラスタ変換処理１１１が行われる際にタイル高さ分の中間メモリ１１２が必要になるが、画像出力インターフェース２１１３、２１５１、２１５２，２１５３がメモリバス２１０８を経由して画像メモリ２１２３内の一部領域を使用する。
【０１２３】
（第２実施形態におけるタイル順への変換の具体例）
図１５は、図１４にて説明した第１実施形態の処理フローにおいてベクタデータ生成処理１０１からピクセル生成処理１０４までの処理データ例を示した模式図である。従来例における、図１８と対比すると本願発明の作用効果が明瞭となる。なお、従来との対比を明瞭にするため、背景６０１と赤い矩形オブジェクト６０２とイメージ６０３とは、図１８と同様である。
【０１２４】
ベクタデータ生成処理１０１により、図１５の最上段に示すベクタデータが生成される。
【０１２５】
生成されたベクタデータはスパン情報生成処理１０２により、図１５の２段目にしめすスパン情報に変換される。スパンＡは背景しかないためページの左端から右端までのスパンとなる。スキャンラインＢＣＤは、赤い矩形オブジェクト６０２が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクトのスパンであるスパンＣ、さらに背景のスパンＤが生成される。スキャンラインＢＥＦは、赤い矩形オブジェクト６０２とイメージ６０３が存在するスキャンラインである。そのため、スパンＢは背景のスパン、赤い矩形オブジェクト６０２のスパンであるスパンＥ、さらにイメージ６０３のスパンＦが生成される。
【０１２６】
続いて、図１５の３段目に示すように、スキャンラインのスパン情報に対して色塗り処理１０３が実施されて、ランレングス情報が生成される。
【０１２７】
続いて、図１５の４段目に示すように、本実施形態のランレングスタイル順変換処理１２０１によって、スキャンライン単位のランレングス情報からタイル内のスキャンラインのランレングス情報に変換される。
【０１２８】
スキャンラインＡは、４つのタイルT1,T2,T3,T4に分割される。背景であるためページの左端から右端までのスパンであったスパンＡのランレングス情報は、４つのタイル幅のランレングス情報に分割される。
【０１２９】
スキャンラインＢＣＤのランレングス情報も、４つのタイルT1,T2,T3,T4に分割される。タイル形式への変換前のスキャンラインＢＣＤのランレングス情報は、背景と赤い矩形オブジェクトによって、スパンＢ、スパンＣ、スパンＤの３つのランレングス情報であった。これが、タイルT1はスパンＢのランレングス情報、タイルT2はスパンＣが分割された前方のランレングス情報、タイルT3もスパンＣが分割された後方のランレングス情報、タイルT４はスパンＤのランレングス情報に分割される。
【０１３０】
スキャンラインＢＥＦのランレングス情報も、４つのタイルT1,T2,T3,T4に分割される。タイル形式への変換前のスキャンラインＢＥＦのランレングス情報は、背景と赤い矩形オブジェクトとイメージオブジェクトによって、スパンＢ、スパンＥ、スパンＦの３つののランレングス情報であった。タイルT1はスパンＢのランレングス情報である。しかし、タイルT2はスパンＥのランレングス情報と分割されたスパンＦの前方のランレングス情報、タイルT3は分割されたスパンＦの中間のランレングス情報、タイルT４もスパンＦの後方のランレングス情報に分割される。
【０１３１】
次に、図１５の５段目に示すように、ランレングス情報からピクセル生成処理１０４により画素情報が生成される。
【０１３２】
本実施形態では、このピクセル生成処理１０４が終了した時点で、図１５の最下段に示したように、タイル順の画像情報が完成していることになる。
【０１３３】
なお、第２実施形態におけるランレングスタイル順変換処理１２０１を実現する回路構成は、第１実施形態の図９乃至図１３に示した回路例が開示されれば、当業者により容易に構成できるものである。
【０１３４】
＜他の実施形態＞
なお、本実施形態では、スパンタイル順変換処理２０１を実現するステートマシンによる回路例を詳細に示したが、本発明のスパンタイル順変換処理２０１は図５に示したフローチャートに従う処理が実現できれば、どのような回路構成でも可能である。
【０１３５】
又、本実施形態では、スパンタイル順変換処理２０１やランレングスタイル順変換処理１２０１が、図１６Ａのレンダリング部２０６０に含まれる構成を説明したが、これらの処理が独立の構成要素により処理されてもよい。あるいは、他の構成要素に含まれたり、更に大きな構成要素の一部に組み込まれてもよい。
【０１３６】
更に、本実施形態では、処理結果のタイル形式の画素情報は印刷処理されるものとして説明したが、画素情報による処理、例えば表示処理などに使用されてもよい。本発明は、多量のデータからタイル形式の画素情報を資源を節約しながら高速に実現する構成を提案するものであり、かかる処理を必要とする技術に適用可能である。
【０１３７】
又、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、プリンタなど）から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。
【０１３８】
又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（OS）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。このような処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４１】
【図１】第１実施形態の処理フローの例を示す図である。
【図２】第１実施形態のデータ処理の具体例を示す図である。
【図３】本実施形態で使用されるディスプレイリストのデータ形式の例を示す図である。
【図４】本実施形態で作成されるタイル画像の構成を示した模式図である。
【図５】第１実施形態のスパンタイル順変換処理の手順例を示したフローチャートである。
【図６Ａ】本実施形態におけるスパン情報のフォーマット例を示す図である。
【図６Ｂ】第１実施形態の図２の具体例におけるスパン情報の例を示す図である。
【図７】第１実施形態におけるスパンタイル順変換処理を示す模式図である。
【図８】第１実施形態における図６Ｂのスパン情報のスパンタイル順変換処理後のタイル順のスパンデータの例を示す図である。
【図９】第１実施形態のスパンタイル順変換処理を実現する回路構成例を示したブロック図である。
【図１０Ａ】図９の回路を構成するストアFSM１３０２の状態遷移を示した状態遷移図である。
【図１０Ｂ】図１０ＡのストアFSM１３０２の各状態の出力信号と内部レジスタの状態を示した図である。
【図１１Ａ】図９の回路を構成するタイルリードFSM１３０４の状態遷移を示した状態遷移図である。
【図１１Ｂ】図１１ＡのタイルリードFSM１３０４の各状態の出力信号と内部レジスタの状態を示した図である。
【図１２】図９の回路構成におけるスパンタイル順変換処理の動作例を示した信号波形図である。
【図１３】図９の回路構成におけるスパンタイル順変換処理の動作例を示した信号波形図である。
【図１４】第２実施形態の処理フローの例を示す図である。
【図１５】第２実施形態のデータ処理の具体例を示す図である。
【図１６Ａ】画像処理装置のコントラーラ部の構成例を示すブロック図である。
【図１６Ｂ】画像処理装置のコントラーラ部の構成例を示すブロック図である。
【図１７】従来技術におけるレンダリング部の構成例を示す図である。
【図１８】従来技術におけるタイル順の画素情報作成の処理フローの例を示す図である。
【図１９】従来技術におけるデータ処理の具体例を示す図である。
【図１】
0005300317.tif 000002
【図２】
0005300317.tif 000003
【図３】
0005300317.tif 000004
【図４】
0005300317.tif 000005
【図５】
0005300317.tif 000006
【図６Ａ】
0005300317.tif 000007
【図６Ｂ】
0005300317.tif 000008
【図７】
0005300317.tif 000009
【図８】
0005300317.tif 000010
【図９】
0005300317.tif 000011
【図１０Ａ】
0005300317.tif 000012
【図１０Ｂ】
0005300317.tif 000013
【図１１Ａ】
0005300317.tif 000014
【図１１Ｂ】
0005300317.tif 000015
【図１２】
0005300317.tif 000016
【図１３】
0005300317.tif 000017
【図１４】
0005300317.tif 000018
【図１５】
0005300317.tif 000019
【図１６Ａ】
0005300317.tif 000020
【図１６Ｂ】
0005300317.tif 000021
【図１７】
0005300317.tif 000022
【図１８】
0005300317.tif 000023
【図１９】
0005300317.tif 000024