(57)【要約】【課題】画像処理装置で、小規模なハードウェアで高速な描画処理ができる。【解決手段】描画コマンド解析部７１はコマンドを解析し、閾値テーブルの先頭アドレスなどのパラメータをハーフトンパターン生成部７２に書き込んで階調処理を開始させる。ハーフトンパターン生成部７２は，メインメモリ５４から閾値テーブルを読み込んで階調処理を施し、メインメモリ５４のハーフトンパターンメモリ領域４０４へハーフトンパターンを書き込む。スキャンラインハーフトンパターン書込部７４は，描画のＹ座標値などのパラメータを受け取り，メインメモリ５４から描画するＹ座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトンパターン記憶部７６へ順次書き込む。水平ライン描画部７５は、スキャンラインハーフトンパターン記憶部７６からハーフトンパターンを読み込みながらバンドメモリへ描画処理を施す。【選択図】        図５
2006341386.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置において、
前記描画コマンドを解析する描画コマンド解析手段と、
前記描画コマンド解析手段によって解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段と、
前記閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成手段と、
前記ハーフトンパターン生成手段により生成されたハーフトンパターンデータを格納するハーフトンパターン記憶手段と、
前記ハーフトンパターン記憶手段が格納するハーフトンパターンデータのうち、少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段と、
解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込みんで前記スキャンラインハーフトンパターン記憶手段に書き込むスキャンラインハーフトンパターン書込手段と、
解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記ハーフトンパターン生成手段は、メモリワード単位の複数の閾値テーブルを用いて、前記解析された前記描画コマンドに基づいて、並列的に複数の階調処理を施すものであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ハーフトンパターン生成手段は、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集する固定長データ生成手段を有するものであることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記ハーフトンパターン生成手段は、解析された前記描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するものであることを特徴とする請求項１〜３のいずれか１つに記載の画像処理装置。
【請求項５】
前記スキャンラインハーフトンパターン書込手段は、少なくとも描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および前記副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、前記ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算するハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記ハーフトンパターンデータを読み込んで前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする請求項１〜４のいずれか１つに記載の画像処理装置。
【請求項６】
前記水平ライン描画手段は、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、前記スキャンラインハーフトンパターン記憶手段が格納する前記スキャンラインハーフトンパターンのアドレスを計算するスキャンラインハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記水平ラインの描画データを生成するものであることを特徴とする請求項１〜５のいずれか１つに記載の画像処理装置。
【請求項７】
前記水平ライン描画手段は、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成する描画マスク生成手段を有し、該生成された描画マスクを用いて、前記水平ラインの描画データを生成するものであることを特徴とする請求項１〜６のいずれか１つに記載の画像処理装置。
【請求項８】
前記水平ライン描画手段は、前記描画マスク生成手段により生成された描画マスク値、および前記スキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をＡＮＤ処理するＡＮＤ処理手段を有し、該ＡＮＤ処理によって、前記水平ラインの描画データを生成するものであることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記スキャンラインハーフトンパターン記憶手段は、記憶する前記ハーフトンパターンデータを、前記水平ライン描画手段が１度に描画する描画ワード単位と同一のワード単位で格納するものであることを特徴とする請求項１〜８のいずれか１つに記載の画像処理装置。
【請求項１０】
前記スキャンラインハーフトンパターン書込手段は、前記ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、前記スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換する描画ワード変換手段を有し、該変換されたハーフトンパターンを前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする請求項１〜９のいずれか１つに記載の画像処理装置。
【請求項１１】
ページ記述言語による記述から中間言語による記述に翻訳する描画コマンド生成手段を、さらに備え、
前記描画コマンド生成手段は、少なくとも前記ハーフトンパターン生成手段が必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成し、
前記コマンド解析手段は、前記描画コマンド生成手段が生成したハーフトンパターン生成コマンドを解析するものであることを特徴とする請求項１〜１０のいずれか１つに記載の画像処理装置。
【請求項１２】
ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置の画像処理方法において、
描画コマンド解析手段によって、前記描画コマンドを解析する描画コマンド解析工程と、
ハーフトンパターン生成手段によって、前記描画コマンド解析工程で解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成工程と、
ハーフトンパターン記憶手段に、前記ハーフトンパターン生成工程で生成されたハーフトンパターンデータを格納するハーフトンパターン記憶工程と、
スキャンラインハーフトンパターン書込手段によって、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込んで、前記ハーフトンパターン記憶手段に格納するハーフトンパターンデータのうち少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に対して、書き込むスキャンラインハーフトンパターン書込工程と、
水平ライン描画手段によって、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画工程と、
を備えたことを特徴とする画像処理方法。
【請求項１３】
請求項１２に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体に関するものである。
【背景技術】
【０００２】
従来、インクジェットプリンタは、ネットワークで接続されたパーソナルコンピュータ（ＰＣ）によって印字される画像データが生成されて、プリンタ側では、生成された画像データを受け取って印刷する方式であった。これに、対してレーザープリンタなどにおいては、ネットワークを介して受信したＰＤＬ（ページ記述言語）から描画装置が実行可能な中間言語に翻訳して生成し、この中間言語を解析してバンドメモリへ階調処理後の画像を描画し、Ｃ、Ｍ、Ｙ、Ｋの各版に対応するデータのプリンタエンジンに転送して印字していた。この圧縮方法としては、算術符号化方式を採用した２値画像符号化方式の国際標準であるＪＢＩＧ（ＪｏｉｎｔＢｉ−ｌｅｖｅｌＩｍａｇｅｅｘｐｅｒｔｓＧｒｏｕｐ）が知られている。
【０００３】
このように中間言語を解析し、バンドメモリへ階調処理後の画像を描画する描画装置においては、高速にハーフトン処理を行う必要があった。このハーフトン処理を高速にし、ハードウェアの規模を小さくする技術が考案されてきた。
【０００４】
例えば、特許文献１の技術は、ハーフトン閾値マトリックスデータから階調値により２値化した２値マトリックスデータを生成し、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成し、ハーフトーンリピート機能により、水平方向に順次繰り返し描画することによって、高速に階調処理後の画像を描画するものである。
【０００５】
この技術によれば、事前にハーフトン閾値マトリックスデータから階調値により２値化した２値マトリックスデータを作成し、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成し、ハーフトーンリピート機能によって水平方向に順次繰り返し描画することにより、高速に階調処理後の画像を描画するので、基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成した後は、水平方向に繰り返し描画するだけで良く、ハードウエア規模が小さく高速化が可能であった。
【０００６】
【特許文献１】特許第３４４６３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術においては、ブルーノイズマスク法のように画像処理において使用するマスクサイズを大きくすると、膨大なメモリ容量を必要とした。例えば２５６画素＊２５６画素のマスクサイズの場合で階調処理後のｂｉｔ深さが１ｂｉｔの場合、１枚のマスクで約８Ｋバイト、４色で約３２Ｋバイトでかつ、使用する階調数が２５６階調全てであれば、約８Ｍバイトもの膨大なメモリ容量を必要とする。さらに、ｂｉｔ深さが２ｂｉｔの場合は約１６Ｍバイト、ｂｉｔ深さが４ｂｉｔの場合は約３２Ｍバイトもの膨大なメモリを必要としてしまう。このため、ブルーノイズマスクのような大きなサイズの閾値テーブルの階調処理においても、小規模のハードウエアで高速に処理することが可能な画像処理技術が求められていた。
【０００８】
本発明は、上記に鑑みてなされたものであって、その目的は、画像処理における階調処理の際に、大きなサイズの閾値テーブルを使う場合であっても、小規模なハードウェアであって、高速に描画処理を施すことができる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体を提供することである。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置において、前記描画コマンドを解析する描画コマンド解析手段と、前記描画コマンド解析手段によって解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段と、前記閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成手段と、前記ハーフトンパターン生成手段により生成されたハーフトンパターンデータを格納するハーフトンパターン記憶手段と、前記ハーフトンパターン記憶手段が格納するハーフトンパターンデータのうち、少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段と、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込みんで前記スキャンラインハーフトンパターン記憶手段に書き込むスキャンラインハーフトンパターン書込手段と、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画手段と、を備えたことを特徴とする。
【００１０】
請求項２にかかる発明は、請求項１に記載の画像処理装置において、前記ハーフトンパターン生成手段は、メモリワード単位の複数の閾値テーブルを用いて、前記解析された前記描画コマンドに基づいて、並列的に複数の階調処理を施すものであることを特徴とする。
【００１１】
請求項３にかかる発明は、請求項２に記載の画像処理装置において、前記ハーフトンパターン生成手段は、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集する固定長データ生成手段を有するものであることを特徴とする。
【００１２】
請求項４にかかる発明は、請求項１〜３のいずれか１つに記載の画像処理装置において、前記ハーフトンパターン生成手段は、解析された前記描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するものであることを特徴とする。
【００１３】
請求項５にかかる発明は、請求項１〜４のいずれか１つに記載の画像処理装置において、前記スキャンラインハーフトンパターン書込手段は、少なくとも描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および前記副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、前記ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算するハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記ハーフトンパターンデータを読み込んで前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする。
【００１４】
請求項６にかかる発明は、請求項１〜５のいずれか１つに記載の画像処理装置において、前記水平ライン描画手段は、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、前記スキャンラインハーフトンパターン記憶手段が格納する前記スキャンラインハーフトンパターンのアドレスを計算するスキャンラインハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記水平ラインの描画データを生成するものであることを特徴とする。
【００１５】
請求項７にかかる発明は、請求項１〜６のいずれか１つに記載の画像処理装置において、前記水平ライン描画手段は、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成する描画マスク生成手段を有し、該生成された描画マスクを用いて、前記水平ラインの描画データを生成するものであることを特徴とする。
【００１６】
請求項８にかかる発明は、請求項７に記載の画像処理装置において、前記水平ライン描画手段は、前記描画マスク生成手段により生成された描画マスク値、および前記スキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をＡＮＤ処理するＡＮＤ処理手段を有し、該ＡＮＤ処理によって、前記水平ラインの描画データを生成するものであることを特徴とする。
【００１７】
請求項９にかかる発明は、請求項１〜８のいずれか１つに記載の画像処理装置において、前記スキャンラインハーフトンパターン記憶手段は、記憶する前記ハーフトンパターンデータを、前記水平ライン描画手段が１度に描画する描画ワード単位と同一のワード単位で格納するものであることを特徴とする。
【００１８】
請求項１０にかかる発明は、請求項１〜９のいずれか１つに記載の画像処理装置において、前記スキャンラインハーフトンパターン書込手段は、前記ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、前記スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換する描画ワード変換手段を有し、該変換されたハーフトンパターンを前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする。
【００１９】
請求項１１にかかる発明は、請求項１〜１０のいずれか１つに記載の画像処理装置において、ページ記述言語による記述から中間言語による記述に翻訳する描画コマンド生成手段を、さらに備え、前記描画コマンド生成手段は、少なくとも前記ハーフトンパターン生成手段が必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成し、前記コマンド解析手段は、前記描画コマンド生成手段が生成したハーフトンパターン生成コマンドを解析するものであることを特徴とする。
【００２０】
請求項１２にかかる発明は、ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置の画像処理方法において、描画コマンド解析手段によって、前記描画コマンドを解析する描画コマンド解析工程と、ハーフトンパターン生成手段によって、前記描画コマンド解析工程で解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成工程と、ハーフトンパターン記憶手段に、前記ハーフトンパターン生成工程で生成されたハーフトンパターンデータを格納するハーフトンパターン記憶工程と、スキャンラインハーフトンパターン書込手段によって、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込んで、前記ハーフトンパターン記憶手段に格納するハーフトンパターンデータのうち少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に対して、書き込むスキャンラインハーフトンパターン書込工程と、水平ライン描画手段によって、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画工程と、を備えたことを特徴とする。
【００２１】
請求項１３にかかる発明は、プログラムであって、請求項１２に記載の画像処理方法をコンピュータに実行させることを特徴とする。
【００２２】
請求項１４にかかる発明は、記録媒体であって、請求項１３に記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする。
【発明の効果】
【００２３】
請求項１にかかる発明によれば、ページ記述言語から翻訳された中間言語の描画コマンドを解析し、解析された描画コマンドに基づいて、階調処理する閾値テーブルを読み込み、描かれる描画パターンにおいて階調処理を施したハーフトンパターンデータを生成し、生成されたハーフトンパターンデータをハーフトンパターン記憶手段に格納し、さらに、ハーフトンパターン記憶手段から、スキャンライン単位に副走査方向の位置情報により定まるハーフトンパターンデータを読み込み、少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に書き込み、書き込まれたハーフトンパターンデータをスキャンラインハーフトンパターン記憶手段から読み込んで、スキャンライン単位に水平ラインの描画データを生成する。この構成によって、同一階調値の描画オブジェクトに対して、描画処理を施す前にハーフトンパターンを生成し、スキャンラインごとに描画する際に、副走査方向の位置情報に対応するハーフトンパターンを読み込み、水平ライン方向に繰り返し描画することによって、大きなサイズの閾値テーブルを使う階調処理であっても小規模なハードウェアで可能となり、しかも、高速に描画処理を施すことができる。
【００２４】
請求項２にかかる発明によれば、ハーフトンパターン生成に際しては、メモリワード単位の複数の閾値テーブルを用い、解析された描画コマンドに基づいて、並列的に複数の階調処理を施すので、描画処理時間が短縮できる。
【００２５】
請求項３にかかる発明によれば、ハーフトンパターン生成に際しては、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集するので、描画処理時間が短縮できる。
【００２６】
請求項４にかかる発明によれば、ハーフトンパターン生成に際しては、解析された描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するので、描画処理時間が短縮できる。
【００２７】
請求項５にかかる発明によれば、スキャンラインハーフトンパターン書込に際しては、描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算し、該計算されたアドレスを用いて、ハーフトンパターンデータを読み込んでスキャンラインハーフトンパターン記憶手段に書き込むので、描画処理時間が短縮できる。
【００２８】
請求項６にかかる発明によれば、水平ライン描画に際しては、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、スキャンラインハーフトンパターン記憶手段が格納するスキャンラインハーフトンパターンのアドレスを計算し、該計算されたアドレスを用いて、水平ラインの描画データを生成するので、描画処理時間が短縮できる。
【００２９】
請求項７にかかる発明によれば、水平ライン描画に際しては、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成し、該生成された描画マスクを用いて、水平ラインの描画データを生成ので、描画処理時間が短縮できる。
【００３０】
請求項８にかかる発明によれば、水平ライン描画に際しては、描画マスク値、およびスキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をＡＮＤ処理するので、描画処理時間が短縮できる。
【００３１】
請求項９にかかる発明によれば、スキャンラインハーフトンパターン記憶に際しては、記憶するハーフトンパターンデータを、水平ライン描画手段が１度に描画する描画ワード単位と同一のワード単位で格納するので、描画処理時間が短縮できる。
【００３２】
請求項１０にかかる発明によれば、スキャンラインハーフトンパターン書き込みに際しては、ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換してスキャンラインハーフトンパターン記憶手段に書き込むので、描画処理時間が短縮できる。
【００３３】
請求項１１にかかる発明によれば、ページ記述言語による記述から中間言語による記述に翻訳して描画コマンドを生成する場合には、ハーフトンパターン生成において必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成して該ハーフトンパターン生成コマンドを解析するので、描画処理時間が短縮できる。
【００３４】
請求項１２にかかる発明によれば、ページ記述言語から翻訳された中間言語の描画コマンドを解析し、解析された描画コマンドに基づいて、階調処理する閾値テーブルを読み込み、描かれる描画パターンにおいて階調処理を施したハーフトンパターンデータを生成し、生成されたハーフトンパターンデータをハーフトンパターン記憶手段に格納し、さらに、ハーフトンパターン記憶手段から、スキャンライン単位に副走査方向の位置情報により定まるハーフトンパターンデータを読み込み、少なくとも１スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に書き込み、書き込まれたハーフトンパターンデータをスキャンラインハーフトンパターン記憶手段から読み込んで、スキャンライン単位に水平ラインの描画データを生成する。この構成によって、同一階調値の描画オブジェクトに対して、描画処理を施す前にハーフトンパターンを生成し、スキャンラインごとに描画する際に、副走査方向の位置情報に対応するハーフトンパターンを読み込み、水平ライン方向に繰り返し描画することによって、大きなサイズの閾値テーブルを使う階調処理であっても小規模なハードウェアで可能となり、しかも、高速に描画処理を施すことができる。
【００３５】
請求項１３にかかる発明によれば、請求項１２に記載の画像処理方法をコンピュータに実行させることができるプログラムを提供できる。
【００３６】
請求項１４にかかる発明によれば、請求項１３に記載のプログラムをコンピュータ読み取り可能に格納した記録媒体を提供できる。
【発明を実施するための最良の形態】
【００３７】
以下に、添付図面を参照して、この発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体の最良な実施の形態を詳細に説明する。
【００３８】
（１．全体構成）
図１は、実施の形態によるカラーインクジェットプリンタの構成を示す図である。カラーインクジェットプリンタ１は、画像処理部１０、インク供給路１１、記録部１２、イエロー用インク容器１３Ｙ、マゼンタ用インク容器１３Ｍ、シアン用インク容器１３Ｃ、ブラック用インク容器１３Ｋ、インク容器トレイ１４、記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋ、ヘッドブロック２２、突起部２３、給紙部３１、ピックアップローラユニット３２、給紙搬送部３３、搬送部３４、排紙搬送部３５、排紙トレー３６、および回復処理部３７を備える。
【００３９】
カラーインクジェットプリンタ１は、ネットワークを介して受け取ったＰＤＬ（ページ記述言語）形式のデータを、画像処理部１０により画像処理し、記録媒体としての用紙Ｐａの記録面に対して、記録部１２がインクを吐出し付着させることにより、記録動作を行う。搬送部３４は、記録部１２の下方に配され、記録部１２の記録動作に応じて所定のタイミングで用紙Ｐａを後述する排紙搬送部３５に搬送する。排紙搬送部３５は、搬送部３４により搬送される印刷された用紙Ｐａ’を排紙トレー３６上に排出する。給紙搬送部３３は、給紙部３１からの用紙Ｐａを１枚づつ記録部１２に搬送する。記録部１２の各記録ヘッドに対して回復処理を選択的に行う回復処理部３７を備える。
【００４０】
記録部１２は、各色のインクを吐出する記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋよりなり、それらはインク供給路１１に接続された各色のインク容器２７Ｃ〜２７Ｋからインク供給を受ける。また、インク容器は、イエロー用インク容器１３Ｙ、マゼンタ用インク容器１３Ｍ、シアン用インク容器１３Ｃ、ブラック用インク容器１３Ｋよりなり、それらはインク容器トレイ１４に載置される。ここで、インク容器トレイ１４は、それぞれのインク容器が離間して載置されるように、独立障壁構造となっている。
【００４１】
給紙部３１に積載されて収容される所定の規格サイズの用紙Ｐａは、図示が省略される駆動モータが作動状態とされるとき、１枚ずつピックアップローラユニット３２により、取り出され、それが給紙搬送部３３に供給される。
【００４２】
インクジェット記録方式ではインクの小液滴が飛翔され、それが紙等の記録用紙面に付着せしめられて記録を行うものなので、用紙Ｐａは、インクが用紙面で必要以上ににじんで印字がぼけたりしないものであることが必要である。また、用紙Ｐａは、用紙Ｐａに付着したインクが、速やかにその内部に吸収されるような特質を有するものが好適とされる。用紙Ｐａは、特に異なる色のインクが、短時間内に用紙Ｐａにおける同一箇所に重複して付着した場合でもインクの流れ出しおよびしみ出しの現象がなく、しかも印字ドットの広がりを、画質の鮮明さを損なわない程度に抑えられるような特質を有するものが好適とされる。
【００４３】
図２は、マルチノズル型インクジェット方式の記録部の構成を示す図である。  記録部１２は、記録ヘッド２１Ｃ、２１Ｍ、２１Ｙおよび２１Ｋ、ヘッドブロック２２、および加熱式定着部２３を備える。
【００４４】
複数個のインク吐出口が記録媒体の被印写幅をカバーするように長尺化されたマルチノズル型インクジェット記録部の記録部を示すものである。
【００４５】
記録部１２は、各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋと、後述する加熱式定着部２３とを内蔵するヘッドブロック２２を備えている。ヘッドブロック７２は、記録媒体（用紙Ｐａ）の搬送路に沿った両端部にそれぞれ設けられる突起部７２Ａを介して記録部１２内部に支持されている。
【００４６】
記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、それぞれ順次、用紙Ｐａの搬送路の上流側から下流側に向けて所定の相互間隔をもって配されている。その際、記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、これらのヘッドのすべての吐出口面によって形成される平面の平面度が数十μ程度以内になるようにヘッドブロック７２に位置決め固定されている。
【００４７】
各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、それぞれ例えば、前述のようなサーマルインクジェット方式とされ、シアン、マゼンタ、イエロー、ブラックのインクを吐出するものである。即ち、各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、その吐出口に通じる液流路に電気熱変換体としてのヒータを有し、そのヒータによりインクが加熱されることにより形成されるインク滴を吐出するものである。各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、用紙Ｐａの搬送方向に対し略直交する方向に沿って配列される複数の吐出口を有している。複数の吐出口は、用紙Ｐａの記録面における搬送方向に対し略直交する方向の全幅に亘って形成されている。
【００４８】
各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋは、インク供給路１１に接続され、後述するインク容器からインク供給を受ける。なお図では１本のラインで示しているが、インク供給路１１は各色で独立していることはいうまでもない。ここでインク供給路１１には耐インク腐食性が要求され、テフロン（登録商標）、ポリエチレン等の樹脂チューブや、ステンレスパイプ等が用いられる。
【００４９】
各記録ヘッド２１Ｃ、２１Ｍ、２１Ｙ、２１Ｋの記録動作は、同一の１枚の用紙Ｐａに対してそれぞれ行うものとされ、例えば、１番目に記録ヘッド２１Ｃが記録し、２番目に、記録ヘッド２１Ｃが記録した記録面に重ね、または、新たな位置に記録し、３番目に記録ヘッド２１Ｙがさらに同様に記録し、そして、最後に記録ヘッド２１Ｋが、記録するものとされる。
【００５０】
また、記録ヘッドがイエロー、マゼンタ、シアンの３色の各インクジェット記録ヘッドからなるカラーインクジェット記録部においては、色毎のインクジェット記録ヘッドをイエロー、マゼンタ、シアンの順に配列する。そしてこの際、３色の各インクジェット記録ヘッドにそれぞれの色のインクを供給するためのインク容器の配列もイエロー、マゼンタ、シアンの順にする。
【００５１】
（２．描画処理部）
図３は、画像処理部の機能的ブロック図である。画像処理部１０は、ＣＰＵ５１、ＣＰＵＩ／Ｆ５２、メモリコントローラ５３、メインメモリ５４、中間言語生成部５５、符号化部５６、復号部５７、ローカルバスＩ／Ｆ６１、描画処理部７０、エンジンコントローラ５８、プリンタエンジン５９、通信コントローラ６０、ＲＯＭ６２、パネルコントローラ６３、および操作表示部６４を備える。
【００５２】
ＣＰＵ５１は、カラーインクジェットプリンタ１全体の制御を行う。ＣＰＵＩ／Ｆ５２は、メモリコントローラ５３に接続し、ＣＰＵ５１とメモリコントローラ５３間のＩ／Ｆを処理する。
【００５３】
メモリコントローラ５３は、メインメモリ５４をコントロールし、ＣＰＵ５１、ローカルバスＩ／Ｆ６１、復号部５７、符号化部５６、描画処理部７０、および中間言語生成部５５などとメインメモリ５４との転送をコントロールする。メインメモリ５４は、中間言語生成部５５からの中間言語、ＣＰＵ５１のプログラム、バンドデータ、ページの圧縮データなどの各種データを格納する。
【００５４】
描画処理部７０は、中間言語生成部５５から描画コマンドを受け取り、メインメモリ５４のバンド領域へ描画する。符号化部５６は、メインメモリ５４のバンド領域に描画されたデータを符号化し、メインメモリ５４の符号ページメモリ領域４０６（図４）へ符号データを送る。復号部５７は、プリンタエンジン５９に同期して、符号化部５６によって符号化された符号データを受け取り、復号して、エンジンコントローラ５８へ転送する。この描画処理部７０が本発明の要部である。
【００５５】
エンジンコントローラ５８は、プリンタエンジン５９を制御する。通信コントローラ６０は、ネットワークに接続された外部のＰＣからのＰＤＬデータを受け取り転送する。ローカルバスＩ／Ｆ６１は、ＲＯＭ６２、パネルコントローラ６３などと、ＣＰＵ５１、メインメモリ５４などのとのＩ／Ｆを処理する。
【００５６】
ＲＯＭ６２は、文字などのフォント情報や、ＣＰＵ５１のプログラムなどを格納する。パネルコントローラ６３は、操作表示部６４を制御する。操作表示部６４は、操作者からの操作による入力信号をプリンタへ送信する。
【００５７】
図４は、メインメモリ５４のファーマットの一例を示す模式図である。メインメモリ５４は、ＰＤＬ格納メモリ領域４０１、中間言語格納メモリ領域４０２、閾値テーブルメモリ領域４０３、ハーフトンパターンメモリ領域４０４、バンドメモリ格納領域４０５、符号ページメモリ格納領域４０６、プログラム領域４０７、ワーク領域４０８、およびその他の領域４０９を有する。
【００５８】
ＰＤＬ（ページ記述言語）格納メモリ領域４０１は、中間言語を格納する。閾値テーブルメモリ領域４０３は、閾値テーブルを格納する。ハーフトンパターンメモリ領域４０４は、ハーフトンパターンを格納する。バンドメモリ格納領域４０５は、バンドデータを格納する。符号ページメモリ領域４０６は、符号化された１ページ分のバンドの符号データを複数ページ分格納する領域である。プログラム領域４０７は、ＣＰＵ５１のプログラムを格納する。ワーク領域４０８はＣＰＵ５１などの処理の中間結果を格納する。
【００５９】
図５は、メインメモリ５４と描画処理部７０の間のデータの流れを説明する図である。描画処理部７０は、描画コマンド解析部７１、ハーフトンパターン生成部７２、水平ライン変換部７３、スキャンラインハーフトンパターン書込部７４、水平ライン描画部７５、およびスキャンラインハーフトンパターン記憶部７６を備える。
【００６０】
通信コントローラ６０は、プリンタの通信処理を実行し、外部ＰＣ９０からのＰＤＬデータを受け取り、メインメモリ５４のＰＤＬメモリ領域へ格納する。
【００６１】
中間言語生成部５５は、メインメモリ５４のＰＤＬを解析し中間言語を生成し、メインメモリ５４の中間言語格納メモリ領域４０２へ転送し、中間言語格納メモリ領域４０２が格納する。この時、閾値テーブルも、メインメモリ５４の閾値テーブルメモリ領域４０３へ転送し、閾値テーブルメモリ領域４０３が格納する。
【００６２】
描画コマンド解析部７１は、メインメモリ５４の中間言語格納メモリ領域４０２から中間言語を読み込み解析し、描画コマンドであると判定した場合、水平ライン変換部７３へ描画パラメータを転送する。一方、ハーフトンパターン生成コマンドであると判定した場合、ハーフトンパターン生成部７２へパラメータを転送し起動させる。
【００６３】
ハーフトンパターン生成部７２は描画コマンド解析部７１によりパラメータを受け取り、閾値テーブルからハーフトンパターンを生成し、メインメモリ５４のハーフトンパターンメモリ領域４０４へ書き込む。
【００６４】
水平ライン変換部７３は、描画コマンド解析部７１からパラメータを受け取り、水平ラインパラメータへ変換し、水平ライン描画部７５へ転送する。また、この時、スキャンラインハーフトンパターン書込部７４を起動させ、描画するＹ座標に対応するハーフトンパターンをＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送する。
【００６５】
スキャンラインハーフトンパターン書込部７４は、水平ライン変換部７３からパラメータを受け取り、ハーフトンパターンメモリ領域４０４から描画するＹ座標に対応するスキャンライン分のハーフトンパターンのみを読み込み、スキャンラインハーフトンパターン記憶部７６へ書き込む。
【００６６】
スキャンラインハーフトンパターン記憶部７６は、スキャンラインハーフトンパターン書込部７４からのスキャンライン分のみのハーフトンパターンを受け取り記憶する。
【００６７】
水平ライン描画部７５は、水平ライン変換部７３から描画座標パラメータを受け取り、スキャンラインハーフトンパターン記憶部７６からスキャンライン分のハーフトンパターンを受け取り、バンドメモリ領域４０５へスキャンラインを描画する。
【００６８】
メインメモリ５４のバンドメモリ格納領域４０５は、描画処理部７０により描画されたバンドデータを記憶する。
【００６９】
符号化部５６は、メインメモリ５４のバンドメモリ格納領域４０５のバンドデータを読み込み符号化し、メインメモリ５４の符号ページメモリ領域４０６へ符号化されたデータを送る。ページ符号メモリ領域４０６は、符号化部５６から符号を受け取り記憶する。
【００７０】
復号部５７は、メインメモリ５４のページ符号メモリ領域４０６に記憶された各バンドごと符号からなる１ページ分の符号データを読み込み、復号し、エンジンコントローラ５３へ転送し、プリンタエンジン５９を介してプリントアウトする。
【００７１】
図６は、バンドメモリのフォーマットとバンドメモリによる描画例を説明する図である。描画ワード幅は、描画処理部７０がバンドメモリをアクセスするワードの幅である。描画例として、水平ラインＸ始点から水平ラインＸ終点までの水平ラインを描画した例を示している。ここで、水平ラインとは主走査方向の画素の並びに対応するラインである。
【００７２】
図７は、描画処理部７０が処理する中間言語による記述の一例を示す模式図である。図８は、描画処理部７０が処理する中間言語による他の記述の一例を示す模式図である。図７に示した例では、複数の階調値のハーフトンパターンデータを生成し、複数の階調値の描画を行っている。図８に示した例では、１つの描画ごとにハーフトンパターンデータを生成し、描画を行っている。
【００７３】
図７の例では、複数の描画に対して同じハーフトンパターンを使用可能であるので、ハーフトンパターンの生成時間が少ない。図８の例では、描画処理ごとにハーフトンパターンデータを作成するので、１つのハーフトンパターンデータを記憶する領域を使用可能とするので、記憶容量が少ないが、多くのハーフトンパターンを生成するため、ハーフトンパターンの生成時間が多い。
【００７４】
図９は、図７に示した中間言語による記述でバンドメモリに生成された描画例を示す模式図である。ここで、共通するハーフトンがバンドＣ版９０１〜バンドＫ版９０４に渡って使用されている。
【００７５】
図１０は、中間言語による各コマンドのフォーマット例の模式図である。図１０に示すように、バンド初期化コマンド１００１、ハーフトンパターン生成コマンド１００２、四角形描画コマンド１００３、三角形描画コマンド１００４、およびバンド終了コマンド１００５を例示する。
【００７６】
図１１は、描画処理部７０の機能的ブロック図である。描画処理部７０は、図５で示した各部の他、パラメータ記憶部７７、コントローラ７８、ＭＵＸ（パルチプレクサ）７９、およびメモリコントローラＩ／Ｆ８０を備える。
【００７７】
各コマンドとそれに対する描画処理部７０の各部の動作について述べる。バンド初期化コマンド１００１は、バンドの先頭アドレス、バンドの高さ、および幅を定義している。描画コマンド解析部７１はこのコマンドを受け取るとバンドの先頭アドレスとバンドの高さと幅をパラメータ記憶部７７へ格納する。
【００７８】
ハーフトンパターン生成コマンド１００２は、閾値テーブルアドレス、描画階調値、閾値テーブルＸ、Ｙ幅、およびハーフトンテーブルアドレスを指定し、描画コマンド解析部７１がこのコマンドを受け取ると、ハーフトンパターン生成部７２はハーフトン閾値アドレスで指定されたメインメモリ５４の閾値テーブルメモリ領域４０３から閾値テーブルを読み込み、指定された描画階調値で階調処理を施してメインメモリ５４のハーフトンパターンメモリ領域４０４の指定されたアドレスへ書き込む。ここで、階調処理時間を少なくし、ハーフトンパターンメモリ領域４０４を少なくするために閾値テーブル開始Ｙ値と終点Ｙ値を設定し処理する期間を指定することができる。
【００７９】
四角形描画コマンド１００３は、指定されたハーフトンテーブルを使用し、指定された四角形の左上の座標から右下の座標までの四角形を描画する。描画コマンド解析部７１はこのコマンドを受け取ると、四角形の左上の座標、右下の座標、および四角形コマンド名を水平ライン変換部７３へ転送し、描画処理を施す。
【００８０】
三角形描画コマンド１００４は、指定された三角形の各端点座標から３角形を描画する。描画コマンド解析部７１はこのコマンドを受け取ると、三角形の各端点座標と３角形コマンド名を水平ライン変換部７３へ転送し、描画処理を施す。
【００８１】
バンド終了コマンド１００５は、定義したバンドの描画の終了を意味する。描画コマンド解析部７１はこのコマンドを受け取ると、実行していた該バンドの処理を終了する。
【００８２】
描画処理部７０の各部の動作については、以下の通りである。描画コマンド解析部７１は、メモリコントローラＩ／Ｆ８０からのコマンドを読み込んで解析する。解析の結果、パラメータの設定コマンドであると判定した場合、パラメータ記憶部７７へパラメータ値を転送する。描画コマンドであると判定した場合、水平ライン変換部７３へ描画コマンドを転送する。一方、描画コマンド解析部７１が、コマンドはハーフトンパターン生成コマンドであると判定した場合、ハーフトンパターン生成部７２へ閾値テーブルの先頭アドレスとＸ、Ｙ幅サイズと階調値と階調処理後のハーフトンパターンを書き込みハーフトンパターン先頭アドレスを転送し、階調処理を起動する。
【００８３】
パラメータ記憶部７７は、描画コマンド解析部７１から転送されたパラメータを記憶し、水平ライン変換部７３および水平ライン描画部７５へ転送する。
【００８４】
ハーフトンパターン生成部７２は、描画コマンド解析部７１から閾値テーブルの先頭アドレスとＸ、Ｙ幅サイズと階調値と階調処理後のハーフトンパターンを書き込みハーフトンパターン先頭アドレスを受け取り、メモリコントローラＩ／Ｆ８０を介して、メインメモリ５４から指定された閾値テーブルを読み込み、指定された階調値で階調処理を施してメインメモリ５４の指定されたハーフトンパターンメモリ領域４０４へハーフトンパターンを書き込む。
【００８５】
水平ライン変換部７３は、描画コマンド解析部７１から描画コマンドを受けとり、水平ラインへ変換し、水平ライン描画部７５へ転送する。また、この時にスキャンラインハーフトンパターン書込部７４へ描画するＹ座標値と、処理するハーフトンパターン先頭アドレスと、Ｘ、Ｙ方向の幅とを転送し、スキャンラインを描画する前に起動する。
【００８６】
スキャンラインハーフトンパターン書込部７４は、水平ライン変換部７３から描画するＹ座標値と、処理するハーフトンパターン先頭アドレスと、Ｘ、Ｙ幅とを受け取り、メモリコントローラＩ／Ｆ８０を通して、メインメモリ５４から描画するＹ座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトンパターン記憶部７６へ順次書き込む。
【００８７】
ＭＵＸ（パルチプレクサ）７９は、スキャンラインハーフトンパターン記憶部７６のアドレスを切り換える。スキャンラインハーフトンパターン記憶部７６は、スキャンラインハーフトンパターン書込部７４により書き込まれた描画するＹ座標に対応するハーフトンパターンを格納する。
【００８８】
水平ライン描画部７５は、水平ライン変換部７３からの水平ラインデータに基づき、メモリコントローラＩ／Ｆ８０を介してメインメモリ５４のバンドメモリ領域４０５へ描画処理を施す。また、描画時にスキャンラインハーフトンパターン記憶部７６からハーフトンパターンを読み込みながらバンドメモリへ描画処理を行う。
【００８９】
パラメータ記憶部７７は、描画コマンド解析部７１から転送されたパラメータを記憶し、水平ライン変換部７３および水平ライン描画部７５へ転送する。スキャンラインハーフトンパターン記憶部７６は、スキャンラインハーフトンパターン生成部７２により生成された階調処理後のハーフトンパターンを格納する。
【００９０】
スキャンラインハーフトンパターン書込部７４は、スキャンラインハーフトンパターン記憶部７６にスキャンラインハーフトンパターンを読み込みに行く。コントローラ７８は、描画処理部７０の全体を制御する。
【００９１】
図１２は、スキャンラインハーフトンパターン書込部７４の機能的ブロック図である。スキャンラインハーフトンパターン書込部７４は、ハーフトンパターン先頭アドレス記憶部７４１、ハーフトンパターンＸ、Ｙ幅記憶部７４２、描画Ｙ座標値記憶部７４３、ハーフトンパターンアドレス生成部７４４、スキャンラインハーフトンパターンメモリアドレス生成部７４５、バッファー７４６、描画ワード変換部７４７、およびコントローラ７４８を備える。
【００９２】
ハーフトンパターン先頭アドレス記憶部７４１は、処理するハーフトンパターンの先頭アドレスを格納する。ハーフトンパターンＸ、Ｙ幅記憶部７４２は、処理するハーフトンパターンのＸ、Ｙ幅を格納する。描画Ｙ座標値記憶部７４３は、描画するＹ座標値を格納する。
【００９３】
ハーフトンパターンアドレス生成部７４５は、メインメモリ５４に格納されたハーフトンパターンを読み込むためのメモリアドレスを生成する。バッファー７４６は、ハーフトンパターンアドレス生成部７４４により、アクセスされたハーフトンパターンデータを一時格納する。
【００９４】
描画ワード変換部７４７は、ハーフトンパターンアドレス生成部７４４によりアクセスされたハーフトンパターンデータを、スキャンラインハーフトンパターン記憶部７６の有する描画ワードへ変換する。
【００９５】
スキャンラインハーフトンパターンメモリアドレス生成部７４５は、バッファー７４６に格納されたハーフトンパターンデータをスキャンラインハーフトンパターン記憶部７６へ書き込むためのアドレスを順次生成する。コントローラ７４８は、スキャンラインハーフトンパターン書込部７４全体を制御している。
【００９６】
図１３は、ハーフトンパターン生成部７２の機能的ブロック図である。ハーフトンパターン生成部７２は、閾値テーブル先頭アドレス記憶部７２１、閾値テーブルＸ、Ｙ幅記憶部７２２、閾値テーブル開始Ｙ値記憶部７２３、閾値テーブル終点Ｙ値記憶部７２４、閾値テーブルメモリアドレス生成部７２５、階調値記憶部７２６、バッファー７２７、階調処理部７２８、固定長データ生成部７２９、バッファー７３０、ハーフトンテーブルメモリアドレス生成部７３１、およびコントローラ７３２を備える。
【００９７】
閾値テーブル先頭アドレス記憶部７２１は、処理する閾値テーブルの先頭アドレスを格納する。閾値テーブルＸ、Ｙ幅記憶部７２２は、処理する閾値テーブルのＸ、Ｙ幅を格納する。閾値テーブル開始Ｙ値記憶部７２３は、処理する閾値テーブルの開始Ｙ値を格納する。閾値テーブル終点Ｙ値記憶部７２４は、処理する閾値テーブルの終点Ｙ値を格納する。閾値テーブルアドレス生成部７２５は、メインメモリ５４に格納された閾値テーブルを読み込むためのメモリアドレスを生成する。
【００９８】
階調値記憶部７２６は、描画する階調値を格納する。バッファー７２７は、閾値テーブルアドレス生成部７２５により、アクセスされた閾値テーブルデータを一時格納する。階調処理部７２８は、バッファー７２７に格納された閾値テーブルデータをワード単位に階調値記憶部７２６に格納された階調値により階調処理を行う。
【００９９】
固定長データ生成部７２９は、階調処理部７２８により生成された階調処理後データを順次束ねて、ハーフトンパターンデータを生成する。バッファー７３０は、固定長データ生成部７２９により生成されたハーフトンパターンデータを一時格納する。
【０１００】
ハーフトンテーブルメモリアドレス生成部７３１は、メインメモリ５４に格納された閾値テーブルを読み込むためのメモリアドレスを生成する。コントローラ７３２は、ハーフトンパターン生成部７２の全体を制御する。
【０１０１】
図１４は、水平ライン描画部７５の機能的ブロック図である。水平ライン描画部７５は、スキャンラインハーフトンパターンアドレス生成部７４５、Ｘ始点ワード値生成部７５１、Ｘ終点ワード値生成部７５２、描画ワードＸ値生成部７５３、スキャンラインハーフトンパターンアドレス生成部７４５、描画マスク生成部７５５、ＡＮＤ部７５６、描画アドレス生成部７５７、およびコントローラ７５８を備える。
【０１０２】
スキャンラインハーフトンパターンアドレス生成部７５４は、ハーフトンパターンのＸ幅と描画するＸ座標から、スキャンラインハーフトンパターン記憶部７６のアドレスを生成する。Ｘ始点ワード値生成部７５１は、水平ラインＸ始点値から、描画ワード単位の描画ワードＸ始点値を求め、描画ワードＸ値生成部７５３へ転送する。
【０１０３】
Ｘ終点ワード値生成部７５２は、水平ラインＸ終点値から、描画ワード単位の描画ワードＸ終点値を求め、描画ワードＸ値生成部７５３へ転送する。描画ワードＸ値生成部７５３は、Ｘ始点ワード値生成部７５１およびＸ終点ワード値生成部７５２から描画ワード単位でＸ始点値から終点値の描画ワードＸ値を生成し、スキャンラインハーフトンパターンアドレス生成部７４５と、描画アドレス生成部７５７へ描画するＸ値を転送する。
【０１０４】
描画マスク生成部７５５は、水平ラインＸ始点値と水平ラインＸ終点値から、描画ワードごとのＸ始点からＸ終点までの描画マスクを生成し、ＡＮＤ部７５６へ転送する。ＡＮＤ部７５６は、スキャンラインハーフトンパターン記憶部７６からの描画するハーフトンパターンを受け取り、描画マスク生成部７５５から描画マスクを受け取り、ＡＮＤ演算を行い、描画パターン値を生成し、メモリコントローラＩ／Ｆ８０へ描画パターンを転送する。
【０１０５】
描画アドレス生成部７５７は、水平ラインＹ値と、水平ラインＸ始点値からメインメモリ５４のバンドメモリへ描画するアドレスである描画アドレスを生成し、メモリコントローラＩ／Ｆ８０へ転送する。コントローラ７５８は、水平ライン描画部７５の全体をコントロールする。
【０１０６】
図１５は、階調処理部７２８の機能的ブロック図である。階調処理部７２８は比較器７２８１〜７２８４を備える。比較器７２８１〜７２８４は、バッファ７２７に格納された閾値テーブルデータを用いて、ワード単位に、階調値記憶部７２６に格納された階調値を比較して階調処理を施す。
【０１０７】
図１６は、固定長データ生成部７２９の機能的ブロック図である。固定長データ生成部７２９は、図示するようにレジスタを備え、階調処理部７２８によって生成された階調処理後データを順次束ねて、ハーフトンパターンデータを生成する。
【０１０８】
図１７は、メインメモリ５４の閾値テーブルメモリ領域４０３に格納された閾値テーブルの一例である。閾値テーブルは、ここでは図示するようにｍ×ｎのハーフトンの閾値である。
【０１０９】
図１８は、メインメモリ５４の閾値テーブルメモリ領域４０３に格納された閾値テーブルフォーマットの一例である。閾値テーブルメモリ領域４０３が同時に出力する１ワードが３２ＢＩＴであるために、３２ＢＩＴ単位に記憶されている。
【０１１０】
図１９は、スキャンラインハーフトンパターン記憶部７６に格納するハーフトンパターンのフォーマットの一例を示す模式図である。このようにハーフトンパターンの１スキャンライン分のデータを格納する。
【０１１１】
図２０は、符号化部５６の機能的ブロック図である。符号化部５６は、メモリコントローラＩ／Ｆ５６１、バッファ５６２、ＪＢＩＧ符号化部５６３、バッファ５６４、メモリアドレス生成部５６５、およびコントローラ５６６を備える。
【０１１２】
メモリコントローラＩ／Ｆ５６１は、メモリコントローラ５３とのＩ／Ｆである。バッファ５６２は、画像データを一時記憶する。ＪＢＩＧ符号化部５６３は、ＪＢＩＧ規格の符号化方式により画像データを符号化し、バッファ５６４へ転送する。バッファ５６４は、符号データを一時記憶する。
【０１１３】
メモリアドレス生成部５６５は、メインメモリ５４のバンドメモリ格納領域４０５から画像データを読み込むためのアドレスを生成し、かつ、メインメモリ５４の符号ページメモリ格納領域４０６へ符号データを書き込むためのアドレスを生成する。コントローラ５６６は、符号化部５６全体を制御する。
【０１１４】
図２１は、復号部５７の機能的ブロック図である。復号部５７は、メモリコントローラＩ／Ｆ５７１、バッファ５７２、ＪＢＩＧ復号部５７３、バッファ５７４、メモリアドレス生成部５７５、およびコントローラ５７６を備える。
【０１１５】
メモリコントローラＩ／Ｆ５７１は、メモリコントローラ５３とのＩ／Ｆである。バッファ５７２は、符号データを一時記憶する。ＪＢＩＧ復号部５７３は、ＪＢＩＧ規格の復号方式により符号データを復号し、バッファ５７４へ転送する。バッファ５７４は、画像データを一時記憶する。
【０１１６】
メモリアドレス生成部５７５は、メインメモリ５４の符号ページメモリ格納領域４０６から符号データを読み込むためのアドレスを生成する。コントローラ５７６は、復号部５７全体を制御する。こうして復号部５７によって、復号された画像データはエンジンコントローラ５８を介してプリンタエンジン５９に送信され、画像出力装置（不図示）によって画像出力される。
【０１１７】
（３．描画処理手順）
図２２および２３は、実施の形態による描画処理手順を示すフローチャートである。描画コマンド解析部７１は、送信されたコマンドを読み込み（ステップＳ１０１）、読み込んだコマンドを解析する（ステップＳ１０２）。そして、描画コマンド解析部７１は、コマンドが描画コマンドであるか否かを判定し（ステップＳ１０３）、描画コマンドでないと判定した場合（ステップＳ１０３のＮｏ）、さらにパラメータ設定コマンドであるか否かを判定する（ステップＳ１０４）。
【０１１８】
描画コマンド解析部７１が、コマンドがパラメータ設定コマンドであると判定した場合（ステップＳ１０４のＹｅｓ）、パラータ記憶部７７へパラメータを書き込んで（ステップＳ１０５）、ステップＳ１０１に戻る。
【０１１９】
一方、パラメータ設定コマンドでないと判定した場合（ステップＳ１０４のＮｏ）、ハーフトンパターン生成コマンドであるか否かを判定し（ステップＳ１０６）、ハーフトンパターン生成コマンドでないと判断した場合（ステップＳ１０６のＮｏ）、そのまま終了する。この場合、描画については意味のないコマンドだったことになる。
【０１２０】
描画コマンド解析部７１が、ハーフトンパターン生成コマンドであると判定した場合（ステップＳ１０６のＹｅｓ）、ハーフトーンパターン生成部７２を起動させて、指定された閾値テーブルを指定した階調値で階調処理する（ステップＳ１０７）。そして、ステップＳ１０１へ戻る。
【０１２１】
また、描画コマンド解析部７１が、コマンドが描画コマンドであると判定した場合（ステップＳ１０３のＹｅｓ）、水平ライン変換部７３を起動させて、描画コマンドを水平ライン単位に変換し、水平ライン描画部７５へ転送する（ステップＳ１０８）。
【０１２２】
そして、水平ライン変換部７３は、ハーフトンパターンアドレスを、水平ラインＹ値に対してハーフトンパターンＹ幅によるモジュール（ｍｏｄｕｌｅ）計算を行い、即ち、ハーフトンパターンＹ幅で割った余りを置き換える（ステップＳ１０９）。
【０１２３】
水平ライン変換部７３は、描画ワード単位のＸ始点値である描画ワードＸ終点値を、水平ラインＸ始点値から求める（ステップＳ１１０）。水平ライン変換部７３は、描画ワード単位のＸ終点値である描画ワードＸ終点値を、水平ラインＸ終点値から求める（ステップＳ１１１）。水平ライン変換部７３は、描画ワードＸ値を、描画ワードＸ始点値に置き換える（ステップＳ１１２）。
【０１２４】
水平ライン描画部７３は、スキャンラインハーフパターン書込部７４を起動させて、描画するＹ座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトーンパターン記憶部７６へ送信して格納させる（ステップＳ１１３）。
【０１２５】
水平ライン描画部７５はこれより、水平ライン変換部７３から指定された水平ラインを、スキャンラインハーフトーンパターン記憶部が記憶するハーフトンパターンを繰り返し使用し、水平ラインを描画していく。先ず、水平ライン描画部７５は、ハーフトンパターンを描画する点が始点であるか否かを判定し（ステップＳ１１４）、始点であると判定した場合は（ステップＳ１１４のＹｅｓ）、水平ライン描画部７５は、水平ラインＸ始点値から描画マスク値を生成し（ステップＳ１１７）、ステップＳ１１９に移行する。
【０１２６】
水平ライン描画部７５が始点でないと判定して（ステップＳ１１４のＮｏ）、さらに終点であるか否かを判定し（ステップＳ１１６）、終点であると判定した場合は（ステップＳ１１６のＹｅｓ）、水平ライン描画部７５は、水平ラインＸ終点値から描画マスク値を生成して（ステップＳ１１７）、ステップＳ１１９に移行する。
【０１２７】
一方、水平ライン描画部７５が、終点でないと判定した場合（ステップＳ１１６のＮｏ）、水平ライン描画部７５は、描画マスク値を全て１に書き換え（ステップＳ１１８）、ステップＳ１１９に移行する。
【０１２８】
水平ライン描画部７５は、ハーフトンパターンシフト値を、描画ワードＸ値に対してハーフトンパターンＸ幅でモジュール計算を行い、即ち、ワードＸ値をＸ幅値で割り算した余りをハーフトンパターンシフト値として求める（ステップＳ１１９）。水平ライン描画部７５は、ハーフトンパターンから、描画する部分を切り出し、切り出された後、ハーフトンパターンを生成する（ステップＳ１２０）。切り出した後、ハーフトンパターン値と描画マスク値とをＡＮＤ処理を施して、描画パターン値を生成する（ステップＳ１２１）。
【０１２９】
水平ライン描画部７５は、描画ワードＸ値を、描画ワード値＋描画ワード幅に置き換える（ステップＳ１２２）。そして、描画ワードＸ値が、描描ワードＸ終点値より大きいか否かを判定し（ステップＳ１２３）、大きくない場合（ステップＳ１２３のＮｏ）、ステップＳ１１４に戻る。一方、大きい場合は（ステップＳ１２３のＹｅｓ）、水平ライン変換部７３は、全てのスキャンラインを描画したか否かを判定し（ステップＳ１２４）、描画し終えたと判定した場合（ステップＳ１２４のＹｅｓ）そのまま終了し、スキャンラインの全てを描画してはいないと判定した場合（ステップＳ１２４のＮｏ）、ステップＳ１０９に戻って繰り返し処理を施す。
【０１３０】
図２４は、スキャンラインハーフトンパターン書込部７４による読み込みおよび書き込み手順を示すフローチャートである。スキャンラインハーフトンパターン書込部７４は、描画するスキャンラインのハーフトンパターンアドレスを、
（描画するＹ座標値％ハーフトンパターンＹ幅）×（ハーフトンパターンＸ幅のワード数）＋（メインメモリのハーフトンパターン先頭アドレス）
の式で算出する（ステップＳ２０１）。ここで、％は剰余演算を意味する記号である。
【０１３１】
次に、メインメモリのハーフトンパターン領域から描画するスキャンラインのハーフトンパターンを、１ワード読み込む（ステップＳ２０２）。そして、スキャンラインハーフトンパターン書込部７４は、１ワードのハーフトンパターンを、スキャンラインハーフトンパターン記憶部７６へ順次書き込む（ステップＳ２０３）。１スキャンライン分のハーフトンパターンをＤＭＡ転送したか否かを判定し（ステップＳ２０４）、未だの場合は（ステップＳ２０４のＮｏ）ステップＳ２０２に戻る。既に終了した場合は（ステップＳ２０４のＹｅｓ）そのまま終了する。
【０１３２】
（４．効果）
このようにして、中間言語作成時に同じ階調値である描画オブジェクトを求め、この同じ階調値のオブジェクトを描画処理する前にハーフトンパターンを生成するコマンドを設定し、スキャンラインごとに描画する際、描画処理部７０内のスキャンラインハーフトンパターン記憶部７６に描画するＹ座標に対応するハーフトンパターンを随時読み込み、水平ライン方向に繰り返し、描画することによって、ブルーノイズマスクのような大きなサイズの閾値テーブルの階調処理であっても小さなハードウエアで高速に処理することが可能となる。
【０１３３】
ここで、ハーフトンパターンを専用に記憶する記憶部を備えなくても、メインメモリ５４から随時、スキャンライン分を記憶するメモリによってスキャンライン分のみ転送することができる。そのため、描画に必要な全てのハーフトンパターンを全て準備する必要が無く、描画中に描画処理部７０がハーフトンパターン生成コマンドを読み込んでハーフトンパターンを生成することによって、ハーフトンパターンの記憶領域は小規模なものに抑えることができる。
【０１３４】
また、特に、描画時にアクセスする階調処理用のメモリアクセス数を、階調処理後のハーフトンパターンにアクセスするために、さらに、抑制することができる。
【０１３５】
（５．プログラム、記憶媒体など）
実施の形態によるカラーインクジェットプリンタで実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成できる。
【０１３６】
さらに、実施の形態によるカラーインクジェットプリンタで実行される画像処理プログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良く、また、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１３７】
実施の形態のカラーインクジェットプリンタで実行される画像処理プログラムは、上述した各部（７０描画処理部、描画コマンド解析部７１、ハーフトンパターン生成部７２、水平ライン変換部７３、スキャンラインハーフトンパターン書込部７４、水平ライン描画部７５、スキャンラインハーフトンパターン記憶部７６、パラメータ記憶部７７、コントローラ７８、およびＭＵＸ７９）、あるいはシステムコントローラ、コピーアプリ、プリンタアプリ等を含むモジュール構成となっている。実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭから画像処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、システムコントローラ、画像処理部、コピーアプリ、プリンタアプリ等が主記憶装置上に生成されるように構成できる。また、上記各部を一つのチップとして形成し、このチップ内でＣＰＵ５１を介さずに上記各部およびメインメモリ５４と直接、データの受け渡しを行う構成とすることができる。
【産業上の利用可能性】
【０１３８】
以上のように、本発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体は、画像処理技術に有用であり、特に、プリンタ、コピー機、デジタルカメラなどの画像処理装置における画像処理技術に適している。
【図面の簡単な説明】
【０１３９】
【図１】実施の形態によるカラーインクジェットプリンタの構成を示す図である。
【図２】マルチノズル型インクジェット方式の記録部の構成を示す図である。
【図３】画像処理部の機能的ブロック図である。
【図４】メインメモリ５４のファーマットの一例を示す模式図である。
【図５】メインメモリ５４と描画処理部７０の間のデータの流れを説明する図である。
【図６】バンドメモリのフォーマットとバンドメモリによる描画例を説明する図である。
【図７】描画処理部７０が処理する中間言語による記述の一例を示す模式図である。
【図８】描画処理部７０が処理する中間言語による他の記述の一例を示す模式図である。
【図９】図７に示した中間言語による記述でバンドメモリに生成された描画例を示す模式図である。
【図１０】中間言語による各コマンドのフォーマット例の模式図である。
【図１１】描画処理部７０の機能的ブロック図である。
【図１２】スキャンラインハーフトンパターン書込部７４の機能的ブロック図である。
【図１３】ハーフトンパターン生成部７２の機能的ブロック図である。
【図１４】水平ライン描画部７５の機能的ブロック図である。
【図１５】階調処理部７２８の機能的ブロック図である。
【図１６】固定長データ生成部７２９の機能的ブロック図である。
【図１７】メインメモリ５４の閾値テーブルメモリ領域４０３に格納された閾値テーブルの一例を示す図である。
【図１８】メインメモリ５４の閾値テーブルメモリ領域４０３に格納された閾値テーブルフォーマットの一例を示す図である。
【図１９】スキャンラインハーフトンパターン記憶部７６に格納するハーフトンパターンのフォーマットの一例を示す模式図である。
【図２０】符号化部５６の機能的ブロック図である。
【図２１】復号部５７の機能的ブロック図である。
【図２２】実施の形態による描画処理手順を示すフローチャートである。
【図２３】実施の形態による描画処理手順を示すフローチャートである。
【図２４】スキャンラインハーフトンパターン書込部７４による読み込みおよび書き込み手順を示すフローチャートである。
【符号の説明】
【０１４０】
７０  描画処理部
７１  描画コマンド解析部
７２  ハーフトンパターン生成部
７３  水平ライン変換部
７４  スキャンラインハーフトンパターン書込部
７５  水平ライン描画部
７６  スキャンラインハーフトンパターン記憶部
７７  パラメータ記憶部
７８  コントローラ
７９  ＭＵＸ
８０  メモリコントローラＩ／Ｆ
【図１】
2006341386.tif 000003
【図２】
2006341386.tif 000004
【図３】
2006341386.tif 000005
【図４】
2006341386.tif 000006
【図５】
2006341386.tif 000007
【図６】
2006341386.tif 000008
【図７】
2006341386.tif 000009
【図８】
2006341386.tif 000010
【図９】
2006341386.tif 000011
【図１０】
2006341386.tif 000012
【図１１】
2006341386.tif 000013
【図１２】
2006341386.tif 000014
【図１３】
2006341386.tif 000015
【図１４】
2006341386.tif 000016
【図１５】
2006341386.tif 000017
【図１６】
2006341386.tif 000018
【図１７】
2006341386.tif 000019
【図１８】
2006341386.tif 000020
【図１９】
2006341386.tif 000021
【図２０】
2006341386.tif 000022
【図２１】
2006341386.tif 000023
【図２２】
2006341386.tif 000024
【図２３】
2006341386.tif 000025
【図２４】
2006341386.tif 000026