JP2006341386A - 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 - Google Patents
画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 Download PDFInfo
- Publication number
- JP2006341386A JP2006341386A JP2005166712A JP2005166712A JP2006341386A JP 2006341386 A JP2006341386 A JP 2006341386A JP 2005166712 A JP2005166712 A JP 2005166712A JP 2005166712 A JP2005166712 A JP 2005166712A JP 2006341386 A JP2006341386 A JP 2006341386A
- Authority
- JP
- Japan
- Prior art keywords
- halftone pattern
- unit
- scan line
- halftone
- data
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】画像処理装置で、小規模なハードウェアで高速な描画処理ができる。
【解決手段】描画コマンド解析部71はコマンドを解析し、閾値テーブルの先頭アドレスなどのパラメータをハーフトンパターン生成部72に書き込んで階調処理を開始させる。ハーフトンパターン生成部72は,メインメモリ54から閾値テーブルを読み込んで階調処理を施し、メインメモリ54のハーフトンパターンメモリ領域404へハーフトンパターンを書き込む。スキャンラインハーフトンパターン書込部74は,描画のY座標値などのパラメータを受け取り,メインメモリ54から描画するY座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトンパターン記憶部76へ順次書き込む。水平ライン描画部75は、スキャンラインハーフトンパターン記憶部76からハーフトンパターンを読み込みながらバンドメモリへ描画処理を施す。
【選択図】 図5
【解決手段】描画コマンド解析部71はコマンドを解析し、閾値テーブルの先頭アドレスなどのパラメータをハーフトンパターン生成部72に書き込んで階調処理を開始させる。ハーフトンパターン生成部72は,メインメモリ54から閾値テーブルを読み込んで階調処理を施し、メインメモリ54のハーフトンパターンメモリ領域404へハーフトンパターンを書き込む。スキャンラインハーフトンパターン書込部74は,描画のY座標値などのパラメータを受け取り,メインメモリ54から描画するY座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトンパターン記憶部76へ順次書き込む。水平ライン描画部75は、スキャンラインハーフトンパターン記憶部76からハーフトンパターンを読み込みながらバンドメモリへ描画処理を施す。
【選択図】 図5
Description
本発明は、画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体に関するものである。
従来、インクジェットプリンタは、ネットワークで接続されたパーソナルコンピュータ(PC)によって印字される画像データが生成されて、プリンタ側では、生成された画像データを受け取って印刷する方式であった。これに、対してレーザープリンタなどにおいては、ネットワークを介して受信したPDL(ページ記述言語)から描画装置が実行可能な中間言語に翻訳して生成し、この中間言語を解析してバンドメモリへ階調処理後の画像を描画し、C、M、Y、Kの各版に対応するデータのプリンタエンジンに転送して印字していた。この圧縮方法としては、算術符号化方式を採用した2値画像符号化方式の国際標準であるJBIG(JointBi−levelImageexpertsGroup)が知られている。
このように中間言語を解析し、バンドメモリへ階調処理後の画像を描画する描画装置においては、高速にハーフトン処理を行う必要があった。このハーフトン処理を高速にし、ハードウェアの規模を小さくする技術が考案されてきた。
例えば、特許文献1の技術は、ハーフトン閾値マトリックスデータから階調値により2値化した2値マトリックスデータを生成し、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成し、ハーフトーンリピート機能により、水平方向に順次繰り返し描画することによって、高速に階調処理後の画像を描画するものである。
この技術によれば、事前にハーフトン閾値マトリックスデータから階調値により2値化した2値マトリックスデータを作成し、描画部のメモリバウンダリ幅と基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成し、ハーフトーンリピート機能によって水平方向に順次繰り返し描画することにより、高速に階調処理後の画像を描画するので、基本ビットパターンの幅の最小公倍数のハーフトンパターンを作成した後は、水平方向に繰り返し描画するだけで良く、ハードウエア規模が小さく高速化が可能であった。
しかしながら、特許文献1の技術においては、ブルーノイズマスク法のように画像処理において使用するマスクサイズを大きくすると、膨大なメモリ容量を必要とした。例えば256画素*256画素のマスクサイズの場合で階調処理後のbit深さが1bitの場合、1枚のマスクで約8Kバイト、4色で約32Kバイトでかつ、使用する階調数が256階調全てであれば、約8Mバイトもの膨大なメモリ容量を必要とする。さらに、bit深さが2bitの場合は約16Mバイト、bit深さが4bitの場合は約32Mバイトもの膨大なメモリを必要としてしまう。このため、ブルーノイズマスクのような大きなサイズの閾値テーブルの階調処理においても、小規模のハードウエアで高速に処理することが可能な画像処理技術が求められていた。
本発明は、上記に鑑みてなされたものであって、その目的は、画像処理における階調処理の際に、大きなサイズの閾値テーブルを使う場合であっても、小規模なハードウェアであって、高速に描画処理を施すことができる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体を提供することである。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置において、前記描画コマンドを解析する描画コマンド解析手段と、前記描画コマンド解析手段によって解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段と、前記閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成手段と、前記ハーフトンパターン生成手段により生成されたハーフトンパターンデータを格納するハーフトンパターン記憶手段と、前記ハーフトンパターン記憶手段が格納するハーフトンパターンデータのうち、少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段と、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込みんで前記スキャンラインハーフトンパターン記憶手段に書き込むスキャンラインハーフトンパターン書込手段と、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画手段と、を備えたことを特徴とする。
請求項2にかかる発明は、請求項1に記載の画像処理装置において、前記ハーフトンパターン生成手段は、メモリワード単位の複数の閾値テーブルを用いて、前記解析された前記描画コマンドに基づいて、並列的に複数の階調処理を施すものであることを特徴とする。
請求項3にかかる発明は、請求項2に記載の画像処理装置において、前記ハーフトンパターン生成手段は、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集する固定長データ生成手段を有するものであることを特徴とする。
請求項4にかかる発明は、請求項1〜3のいずれか1つに記載の画像処理装置において、前記ハーフトンパターン生成手段は、解析された前記描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するものであることを特徴とする。
請求項5にかかる発明は、請求項1〜4のいずれか1つに記載の画像処理装置において、前記スキャンラインハーフトンパターン書込手段は、少なくとも描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および前記副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、前記ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算するハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記ハーフトンパターンデータを読み込んで前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする。
請求項6にかかる発明は、請求項1〜5のいずれか1つに記載の画像処理装置において、前記水平ライン描画手段は、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、前記スキャンラインハーフトンパターン記憶手段が格納する前記スキャンラインハーフトンパターンのアドレスを計算するスキャンラインハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記水平ラインの描画データを生成するものであることを特徴とする。
請求項7にかかる発明は、請求項1〜6のいずれか1つに記載の画像処理装置において、前記水平ライン描画手段は、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成する描画マスク生成手段を有し、該生成された描画マスクを用いて、前記水平ラインの描画データを生成するものであることを特徴とする。
請求項8にかかる発明は、請求項7に記載の画像処理装置において、前記水平ライン描画手段は、前記描画マスク生成手段により生成された描画マスク値、および前記スキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をAND処理するAND処理手段を有し、該AND処理によって、前記水平ラインの描画データを生成するものであることを特徴とする。
請求項9にかかる発明は、請求項1〜8のいずれか1つに記載の画像処理装置において、前記スキャンラインハーフトンパターン記憶手段は、記憶する前記ハーフトンパターンデータを、前記水平ライン描画手段が1度に描画する描画ワード単位と同一のワード単位で格納するものであることを特徴とする。
請求項10にかかる発明は、請求項1〜9のいずれか1つに記載の画像処理装置において、前記スキャンラインハーフトンパターン書込手段は、前記ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、前記スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換する描画ワード変換手段を有し、該変換されたハーフトンパターンを前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする。
請求項11にかかる発明は、請求項1〜10のいずれか1つに記載の画像処理装置において、ページ記述言語による記述から中間言語による記述に翻訳する描画コマンド生成手段を、さらに備え、前記描画コマンド生成手段は、少なくとも前記ハーフトンパターン生成手段が必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成し、前記コマンド解析手段は、前記描画コマンド生成手段が生成したハーフトンパターン生成コマンドを解析するものであることを特徴とする。
請求項12にかかる発明は、ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置の画像処理方法において、描画コマンド解析手段によって、前記描画コマンドを解析する描画コマンド解析工程と、ハーフトンパターン生成手段によって、前記描画コマンド解析工程で解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成工程と、ハーフトンパターン記憶手段に、前記ハーフトンパターン生成工程で生成されたハーフトンパターンデータを格納するハーフトンパターン記憶工程と、スキャンラインハーフトンパターン書込手段によって、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込んで、前記ハーフトンパターン記憶手段に格納するハーフトンパターンデータのうち少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に対して、書き込むスキャンラインハーフトンパターン書込工程と、水平ライン描画手段によって、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画工程と、を備えたことを特徴とする。
請求項13にかかる発明は、プログラムであって、請求項12に記載の画像処理方法をコンピュータに実行させることを特徴とする。
請求項14にかかる発明は、記録媒体であって、請求項13に記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする。
請求項1にかかる発明によれば、ページ記述言語から翻訳された中間言語の描画コマンドを解析し、解析された描画コマンドに基づいて、階調処理する閾値テーブルを読み込み、描かれる描画パターンにおいて階調処理を施したハーフトンパターンデータを生成し、生成されたハーフトンパターンデータをハーフトンパターン記憶手段に格納し、さらに、ハーフトンパターン記憶手段から、スキャンライン単位に副走査方向の位置情報により定まるハーフトンパターンデータを読み込み、少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に書き込み、書き込まれたハーフトンパターンデータをスキャンラインハーフトンパターン記憶手段から読み込んで、スキャンライン単位に水平ラインの描画データを生成する。この構成によって、同一階調値の描画オブジェクトに対して、描画処理を施す前にハーフトンパターンを生成し、スキャンラインごとに描画する際に、副走査方向の位置情報に対応するハーフトンパターンを読み込み、水平ライン方向に繰り返し描画することによって、大きなサイズの閾値テーブルを使う階調処理であっても小規模なハードウェアで可能となり、しかも、高速に描画処理を施すことができる。
請求項2にかかる発明によれば、ハーフトンパターン生成に際しては、メモリワード単位の複数の閾値テーブルを用い、解析された描画コマンドに基づいて、並列的に複数の階調処理を施すので、描画処理時間が短縮できる。
請求項3にかかる発明によれば、ハーフトンパターン生成に際しては、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集するので、描画処理時間が短縮できる。
請求項4にかかる発明によれば、ハーフトンパターン生成に際しては、解析された描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するので、描画処理時間が短縮できる。
請求項5にかかる発明によれば、スキャンラインハーフトンパターン書込に際しては、描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算し、該計算されたアドレスを用いて、ハーフトンパターンデータを読み込んでスキャンラインハーフトンパターン記憶手段に書き込むので、描画処理時間が短縮できる。
請求項6にかかる発明によれば、水平ライン描画に際しては、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、スキャンラインハーフトンパターン記憶手段が格納するスキャンラインハーフトンパターンのアドレスを計算し、該計算されたアドレスを用いて、水平ラインの描画データを生成するので、描画処理時間が短縮できる。
請求項7にかかる発明によれば、水平ライン描画に際しては、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成し、該生成された描画マスクを用いて、水平ラインの描画データを生成ので、描画処理時間が短縮できる。
請求項8にかかる発明によれば、水平ライン描画に際しては、描画マスク値、およびスキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をAND処理するので、描画処理時間が短縮できる。
請求項9にかかる発明によれば、スキャンラインハーフトンパターン記憶に際しては、記憶するハーフトンパターンデータを、水平ライン描画手段が1度に描画する描画ワード単位と同一のワード単位で格納するので、描画処理時間が短縮できる。
請求項10にかかる発明によれば、スキャンラインハーフトンパターン書き込みに際しては、ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換してスキャンラインハーフトンパターン記憶手段に書き込むので、描画処理時間が短縮できる。
請求項11にかかる発明によれば、ページ記述言語による記述から中間言語による記述に翻訳して描画コマンドを生成する場合には、ハーフトンパターン生成において必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成して該ハーフトンパターン生成コマンドを解析するので、描画処理時間が短縮できる。
請求項12にかかる発明によれば、ページ記述言語から翻訳された中間言語の描画コマンドを解析し、解析された描画コマンドに基づいて、階調処理する閾値テーブルを読み込み、描かれる描画パターンにおいて階調処理を施したハーフトンパターンデータを生成し、生成されたハーフトンパターンデータをハーフトンパターン記憶手段に格納し、さらに、ハーフトンパターン記憶手段から、スキャンライン単位に副走査方向の位置情報により定まるハーフトンパターンデータを読み込み、少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に書き込み、書き込まれたハーフトンパターンデータをスキャンラインハーフトンパターン記憶手段から読み込んで、スキャンライン単位に水平ラインの描画データを生成する。この構成によって、同一階調値の描画オブジェクトに対して、描画処理を施す前にハーフトンパターンを生成し、スキャンラインごとに描画する際に、副走査方向の位置情報に対応するハーフトンパターンを読み込み、水平ライン方向に繰り返し描画することによって、大きなサイズの閾値テーブルを使う階調処理であっても小規模なハードウェアで可能となり、しかも、高速に描画処理を施すことができる。
請求項13にかかる発明によれば、請求項12に記載の画像処理方法をコンピュータに実行させることができるプログラムを提供できる。
請求項14にかかる発明によれば、請求項13に記載のプログラムをコンピュータ読み取り可能に格納した記録媒体を提供できる。
以下に、添付図面を参照して、この発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体の最良な実施の形態を詳細に説明する。
(1.全体構成)
図1は、実施の形態によるカラーインクジェットプリンタの構成を示す図である。カラーインクジェットプリンタ1は、画像処理部10、インク供給路11、記録部12、イエロー用インク容器13Y、マゼンタ用インク容器13M、シアン用インク容器13C、ブラック用インク容器13K、インク容器トレイ14、記録ヘッド21C、21M、21Y、21K、ヘッドブロック22、突起部23、給紙部31、ピックアップローラユニット32、給紙搬送部33、搬送部34、排紙搬送部35、排紙トレー36、および回復処理部37を備える。
図1は、実施の形態によるカラーインクジェットプリンタの構成を示す図である。カラーインクジェットプリンタ1は、画像処理部10、インク供給路11、記録部12、イエロー用インク容器13Y、マゼンタ用インク容器13M、シアン用インク容器13C、ブラック用インク容器13K、インク容器トレイ14、記録ヘッド21C、21M、21Y、21K、ヘッドブロック22、突起部23、給紙部31、ピックアップローラユニット32、給紙搬送部33、搬送部34、排紙搬送部35、排紙トレー36、および回復処理部37を備える。
カラーインクジェットプリンタ1は、ネットワークを介して受け取ったPDL(ページ記述言語)形式のデータを、画像処理部10により画像処理し、記録媒体としての用紙Paの記録面に対して、記録部12がインクを吐出し付着させることにより、記録動作を行う。搬送部34は、記録部12の下方に配され、記録部12の記録動作に応じて所定のタイミングで用紙Paを後述する排紙搬送部35に搬送する。排紙搬送部35は、搬送部34により搬送される印刷された用紙Pa’を排紙トレー36上に排出する。給紙搬送部33は、給紙部31からの用紙Paを1枚づつ記録部12に搬送する。記録部12の各記録ヘッドに対して回復処理を選択的に行う回復処理部37を備える。
記録部12は、各色のインクを吐出する記録ヘッド21C、21M、21Y、21Kよりなり、それらはインク供給路11に接続された各色のインク容器27C〜27Kからインク供給を受ける。また、インク容器は、イエロー用インク容器13Y、マゼンタ用インク容器13M、シアン用インク容器13C、ブラック用インク容器13Kよりなり、それらはインク容器トレイ14に載置される。ここで、インク容器トレイ14は、それぞれのインク容器が離間して載置されるように、独立障壁構造となっている。
給紙部31に積載されて収容される所定の規格サイズの用紙Paは、図示が省略される駆動モータが作動状態とされるとき、1枚ずつピックアップローラユニット32により、取り出され、それが給紙搬送部33に供給される。
インクジェット記録方式ではインクの小液滴が飛翔され、それが紙等の記録用紙面に付着せしめられて記録を行うものなので、用紙Paは、インクが用紙面で必要以上ににじんで印字がぼけたりしないものであることが必要である。また、用紙Paは、用紙Paに付着したインクが、速やかにその内部に吸収されるような特質を有するものが好適とされる。用紙Paは、特に異なる色のインクが、短時間内に用紙Paにおける同一箇所に重複して付着した場合でもインクの流れ出しおよびしみ出しの現象がなく、しかも印字ドットの広がりを、画質の鮮明さを損なわない程度に抑えられるような特質を有するものが好適とされる。
図2は、マルチノズル型インクジェット方式の記録部の構成を示す図である。 記録部12は、記録ヘッド21C、21M、21Yおよび21K、ヘッドブロック22、および加熱式定着部23を備える。
複数個のインク吐出口が記録媒体の被印写幅をカバーするように長尺化されたマルチノズル型インクジェット記録部の記録部を示すものである。
記録部12は、各記録ヘッド21C、21M、21Y、21Kと、後述する加熱式定着部23とを内蔵するヘッドブロック22を備えている。ヘッドブロック72は、記録媒体(用紙Pa)の搬送路に沿った両端部にそれぞれ設けられる突起部72Aを介して記録部12内部に支持されている。
記録ヘッド21C、21M、21Y、21Kは、それぞれ順次、用紙Paの搬送路の上流側から下流側に向けて所定の相互間隔をもって配されている。その際、記録ヘッド21C、21M、21Y、21Kは、これらのヘッドのすべての吐出口面によって形成される平面の平面度が数十μ程度以内になるようにヘッドブロック72に位置決め固定されている。
各記録ヘッド21C、21M、21Y、21Kは、それぞれ例えば、前述のようなサーマルインクジェット方式とされ、シアン、マゼンタ、イエロー、ブラックのインクを吐出するものである。即ち、各記録ヘッド21C、21M、21Y、21Kは、その吐出口に通じる液流路に電気熱変換体としてのヒータを有し、そのヒータによりインクが加熱されることにより形成されるインク滴を吐出するものである。各記録ヘッド21C、21M、21Y、21Kは、用紙Paの搬送方向に対し略直交する方向に沿って配列される複数の吐出口を有している。複数の吐出口は、用紙Paの記録面における搬送方向に対し略直交する方向の全幅に亘って形成されている。
各記録ヘッド21C、21M、21Y、21Kは、インク供給路11に接続され、後述するインク容器からインク供給を受ける。なお図では1本のラインで示しているが、インク供給路11は各色で独立していることはいうまでもない。ここでインク供給路11には耐インク腐食性が要求され、テフロン(登録商標)、ポリエチレン等の樹脂チューブや、ステンレスパイプ等が用いられる。
各記録ヘッド21C、21M、21Y、21Kの記録動作は、同一の1枚の用紙Paに対してそれぞれ行うものとされ、例えば、1番目に記録ヘッド21Cが記録し、2番目に、記録ヘッド21Cが記録した記録面に重ね、または、新たな位置に記録し、3番目に記録ヘッド21Yがさらに同様に記録し、そして、最後に記録ヘッド21Kが、記録するものとされる。
また、記録ヘッドがイエロー、マゼンタ、シアンの3色の各インクジェット記録ヘッドからなるカラーインクジェット記録部においては、色毎のインクジェット記録ヘッドをイエロー、マゼンタ、シアンの順に配列する。そしてこの際、3色の各インクジェット記録ヘッドにそれぞれの色のインクを供給するためのインク容器の配列もイエロー、マゼンタ、シアンの順にする。
(2.描画処理部)
図3は、画像処理部の機能的ブロック図である。画像処理部10は、CPU51、CPUI/F52、メモリコントローラ53、メインメモリ54、中間言語生成部55、符号化部56、復号部57、ローカルバスI/F61、描画処理部70、エンジンコントローラ58、プリンタエンジン59、通信コントローラ60、ROM62、パネルコントローラ63、および操作表示部64を備える。
図3は、画像処理部の機能的ブロック図である。画像処理部10は、CPU51、CPUI/F52、メモリコントローラ53、メインメモリ54、中間言語生成部55、符号化部56、復号部57、ローカルバスI/F61、描画処理部70、エンジンコントローラ58、プリンタエンジン59、通信コントローラ60、ROM62、パネルコントローラ63、および操作表示部64を備える。
CPU51は、カラーインクジェットプリンタ1全体の制御を行う。CPUI/F52は、メモリコントローラ53に接続し、CPU51とメモリコントローラ53間のI/Fを処理する。
メモリコントローラ53は、メインメモリ54をコントロールし、CPU51、ローカルバスI/F61、復号部57、符号化部56、描画処理部70、および中間言語生成部55などとメインメモリ54との転送をコントロールする。メインメモリ54は、中間言語生成部55からの中間言語、CPU51のプログラム、バンドデータ、ページの圧縮データなどの各種データを格納する。
描画処理部70は、中間言語生成部55から描画コマンドを受け取り、メインメモリ54のバンド領域へ描画する。符号化部56は、メインメモリ54のバンド領域に描画されたデータを符号化し、メインメモリ54の符号ページメモリ領域406(図4)へ符号データを送る。復号部57は、プリンタエンジン59に同期して、符号化部56によって符号化された符号データを受け取り、復号して、エンジンコントローラ58へ転送する。この描画処理部70が本発明の要部である。
エンジンコントローラ58は、プリンタエンジン59を制御する。通信コントローラ60は、ネットワークに接続された外部のPCからのPDLデータを受け取り転送する。ローカルバスI/F61は、ROM62、パネルコントローラ63などと、CPU51、メインメモリ54などのとのI/Fを処理する。
ROM62は、文字などのフォント情報や、CPU51のプログラムなどを格納する。パネルコントローラ63は、操作表示部64を制御する。操作表示部64は、操作者からの操作による入力信号をプリンタへ送信する。
図4は、メインメモリ54のファーマットの一例を示す模式図である。メインメモリ54は、PDL格納メモリ領域401、中間言語格納メモリ領域402、閾値テーブルメモリ領域403、ハーフトンパターンメモリ領域404、バンドメモリ格納領域405、符号ページメモリ格納領域406、プログラム領域407、ワーク領域408、およびその他の領域409を有する。
PDL(ページ記述言語)格納メモリ領域401は、中間言語を格納する。閾値テーブルメモリ領域403は、閾値テーブルを格納する。ハーフトンパターンメモリ領域404は、ハーフトンパターンを格納する。バンドメモリ格納領域405は、バンドデータを格納する。符号ページメモリ領域406は、符号化された1ページ分のバンドの符号データを複数ページ分格納する領域である。プログラム領域407は、CPU51のプログラムを格納する。ワーク領域408はCPU51などの処理の中間結果を格納する。
図5は、メインメモリ54と描画処理部70の間のデータの流れを説明する図である。描画処理部70は、描画コマンド解析部71、ハーフトンパターン生成部72、水平ライン変換部73、スキャンラインハーフトンパターン書込部74、水平ライン描画部75、およびスキャンラインハーフトンパターン記憶部76を備える。
通信コントローラ60は、プリンタの通信処理を実行し、外部PC90からのPDLデータを受け取り、メインメモリ54のPDLメモリ領域へ格納する。
中間言語生成部55は、メインメモリ54のPDLを解析し中間言語を生成し、メインメモリ54の中間言語格納メモリ領域402へ転送し、中間言語格納メモリ領域402が格納する。この時、閾値テーブルも、メインメモリ54の閾値テーブルメモリ領域403へ転送し、閾値テーブルメモリ領域403が格納する。
描画コマンド解析部71は、メインメモリ54の中間言語格納メモリ領域402から中間言語を読み込み解析し、描画コマンドであると判定した場合、水平ライン変換部73へ描画パラメータを転送する。一方、ハーフトンパターン生成コマンドであると判定した場合、ハーフトンパターン生成部72へパラメータを転送し起動させる。
ハーフトンパターン生成部72は描画コマンド解析部71によりパラメータを受け取り、閾値テーブルからハーフトンパターンを生成し、メインメモリ54のハーフトンパターンメモリ領域404へ書き込む。
水平ライン変換部73は、描画コマンド解析部71からパラメータを受け取り、水平ラインパラメータへ変換し、水平ライン描画部75へ転送する。また、この時、スキャンラインハーフトンパターン書込部74を起動させ、描画するY座標に対応するハーフトンパターンをDMA(Direct Memory Access)転送する。
スキャンラインハーフトンパターン書込部74は、水平ライン変換部73からパラメータを受け取り、ハーフトンパターンメモリ領域404から描画するY座標に対応するスキャンライン分のハーフトンパターンのみを読み込み、スキャンラインハーフトンパターン記憶部76へ書き込む。
スキャンラインハーフトンパターン記憶部76は、スキャンラインハーフトンパターン書込部74からのスキャンライン分のみのハーフトンパターンを受け取り記憶する。
水平ライン描画部75は、水平ライン変換部73から描画座標パラメータを受け取り、スキャンラインハーフトンパターン記憶部76からスキャンライン分のハーフトンパターンを受け取り、バンドメモリ領域405へスキャンラインを描画する。
メインメモリ54のバンドメモリ格納領域405は、描画処理部70により描画されたバンドデータを記憶する。
符号化部56は、メインメモリ54のバンドメモリ格納領域405のバンドデータを読み込み符号化し、メインメモリ54の符号ページメモリ領域406へ符号化されたデータを送る。ページ符号メモリ領域406は、符号化部56から符号を受け取り記憶する。
復号部57は、メインメモリ54のページ符号メモリ領域406に記憶された各バンドごと符号からなる1ページ分の符号データを読み込み、復号し、エンジンコントローラ53へ転送し、プリンタエンジン59を介してプリントアウトする。
図6は、バンドメモリのフォーマットとバンドメモリによる描画例を説明する図である。描画ワード幅は、描画処理部70がバンドメモリをアクセスするワードの幅である。描画例として、水平ラインX始点から水平ラインX終点までの水平ラインを描画した例を示している。ここで、水平ラインとは主走査方向の画素の並びに対応するラインである。
図7は、描画処理部70が処理する中間言語による記述の一例を示す模式図である。図8は、描画処理部70が処理する中間言語による他の記述の一例を示す模式図である。図7に示した例では、複数の階調値のハーフトンパターンデータを生成し、複数の階調値の描画を行っている。図8に示した例では、1つの描画ごとにハーフトンパターンデータを生成し、描画を行っている。
図7の例では、複数の描画に対して同じハーフトンパターンを使用可能であるので、ハーフトンパターンの生成時間が少ない。図8の例では、描画処理ごとにハーフトンパターンデータを作成するので、1つのハーフトンパターンデータを記憶する領域を使用可能とするので、記憶容量が少ないが、多くのハーフトンパターンを生成するため、ハーフトンパターンの生成時間が多い。
図9は、図7に示した中間言語による記述でバンドメモリに生成された描画例を示す模式図である。ここで、共通するハーフトンがバンドC版901〜バンドK版904に渡って使用されている。
図10は、中間言語による各コマンドのフォーマット例の模式図である。図10に示すように、バンド初期化コマンド1001、ハーフトンパターン生成コマンド1002、四角形描画コマンド1003、三角形描画コマンド1004、およびバンド終了コマンド1005を例示する。
図11は、描画処理部70の機能的ブロック図である。描画処理部70は、図5で示した各部の他、パラメータ記憶部77、コントローラ78、MUX(パルチプレクサ)79、およびメモリコントローラI/F80を備える。
各コマンドとそれに対する描画処理部70の各部の動作について述べる。バンド初期化コマンド1001は、バンドの先頭アドレス、バンドの高さ、および幅を定義している。描画コマンド解析部71はこのコマンドを受け取るとバンドの先頭アドレスとバンドの高さと幅をパラメータ記憶部77へ格納する。
ハーフトンパターン生成コマンド1002は、閾値テーブルアドレス、描画階調値、閾値テーブルX、Y幅、およびハーフトンテーブルアドレスを指定し、描画コマンド解析部71がこのコマンドを受け取ると、ハーフトンパターン生成部72はハーフトン閾値アドレスで指定されたメインメモリ54の閾値テーブルメモリ領域403から閾値テーブルを読み込み、指定された描画階調値で階調処理を施してメインメモリ54のハーフトンパターンメモリ領域404の指定されたアドレスへ書き込む。ここで、階調処理時間を少なくし、ハーフトンパターンメモリ領域404を少なくするために閾値テーブル開始Y値と終点Y値を設定し処理する期間を指定することができる。
四角形描画コマンド1003は、指定されたハーフトンテーブルを使用し、指定された四角形の左上の座標から右下の座標までの四角形を描画する。描画コマンド解析部71はこのコマンドを受け取ると、四角形の左上の座標、右下の座標、および四角形コマンド名を水平ライン変換部73へ転送し、描画処理を施す。
三角形描画コマンド1004は、指定された三角形の各端点座標から3角形を描画する。描画コマンド解析部71はこのコマンドを受け取ると、三角形の各端点座標と3角形コマンド名を水平ライン変換部73へ転送し、描画処理を施す。
バンド終了コマンド1005は、定義したバンドの描画の終了を意味する。描画コマンド解析部71はこのコマンドを受け取ると、実行していた該バンドの処理を終了する。
描画処理部70の各部の動作については、以下の通りである。描画コマンド解析部71は、メモリコントローラI/F80からのコマンドを読み込んで解析する。解析の結果、パラメータの設定コマンドであると判定した場合、パラメータ記憶部77へパラメータ値を転送する。描画コマンドであると判定した場合、水平ライン変換部73へ描画コマンドを転送する。一方、描画コマンド解析部71が、コマンドはハーフトンパターン生成コマンドであると判定した場合、ハーフトンパターン生成部72へ閾値テーブルの先頭アドレスとX、Y幅サイズと階調値と階調処理後のハーフトンパターンを書き込みハーフトンパターン先頭アドレスを転送し、階調処理を起動する。
パラメータ記憶部77は、描画コマンド解析部71から転送されたパラメータを記憶し、水平ライン変換部73および水平ライン描画部75へ転送する。
ハーフトンパターン生成部72は、描画コマンド解析部71から閾値テーブルの先頭アドレスとX、Y幅サイズと階調値と階調処理後のハーフトンパターンを書き込みハーフトンパターン先頭アドレスを受け取り、メモリコントローラI/F80を介して、メインメモリ54から指定された閾値テーブルを読み込み、指定された階調値で階調処理を施してメインメモリ54の指定されたハーフトンパターンメモリ領域404へハーフトンパターンを書き込む。
水平ライン変換部73は、描画コマンド解析部71から描画コマンドを受けとり、水平ラインへ変換し、水平ライン描画部75へ転送する。また、この時にスキャンラインハーフトンパターン書込部74へ描画するY座標値と、処理するハーフトンパターン先頭アドレスと、X、Y方向の幅とを転送し、スキャンラインを描画する前に起動する。
スキャンラインハーフトンパターン書込部74は、水平ライン変換部73から描画するY座標値と、処理するハーフトンパターン先頭アドレスと、X、Y幅とを受け取り、メモリコントローラI/F80を通して、メインメモリ54から描画するY座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトンパターン記憶部76へ順次書き込む。
MUX(パルチプレクサ)79は、スキャンラインハーフトンパターン記憶部76のアドレスを切り換える。スキャンラインハーフトンパターン記憶部76は、スキャンラインハーフトンパターン書込部74により書き込まれた描画するY座標に対応するハーフトンパターンを格納する。
水平ライン描画部75は、水平ライン変換部73からの水平ラインデータに基づき、メモリコントローラI/F80を介してメインメモリ54のバンドメモリ領域405へ描画処理を施す。また、描画時にスキャンラインハーフトンパターン記憶部76からハーフトンパターンを読み込みながらバンドメモリへ描画処理を行う。
パラメータ記憶部77は、描画コマンド解析部71から転送されたパラメータを記憶し、水平ライン変換部73および水平ライン描画部75へ転送する。スキャンラインハーフトンパターン記憶部76は、スキャンラインハーフトンパターン生成部72により生成された階調処理後のハーフトンパターンを格納する。
スキャンラインハーフトンパターン書込部74は、スキャンラインハーフトンパターン記憶部76にスキャンラインハーフトンパターンを読み込みに行く。コントローラ78は、描画処理部70の全体を制御する。
図12は、スキャンラインハーフトンパターン書込部74の機能的ブロック図である。スキャンラインハーフトンパターン書込部74は、ハーフトンパターン先頭アドレス記憶部741、ハーフトンパターンX、Y幅記憶部742、描画Y座標値記憶部743、ハーフトンパターンアドレス生成部744、スキャンラインハーフトンパターンメモリアドレス生成部745、バッファー746、描画ワード変換部747、およびコントローラ748を備える。
ハーフトンパターン先頭アドレス記憶部741は、処理するハーフトンパターンの先頭アドレスを格納する。ハーフトンパターンX、Y幅記憶部742は、処理するハーフトンパターンのX、Y幅を格納する。描画Y座標値記憶部743は、描画するY座標値を格納する。
ハーフトンパターンアドレス生成部745は、メインメモリ54に格納されたハーフトンパターンを読み込むためのメモリアドレスを生成する。バッファー746は、ハーフトンパターンアドレス生成部744により、アクセスされたハーフトンパターンデータを一時格納する。
描画ワード変換部747は、ハーフトンパターンアドレス生成部744によりアクセスされたハーフトンパターンデータを、スキャンラインハーフトンパターン記憶部76の有する描画ワードへ変換する。
スキャンラインハーフトンパターンメモリアドレス生成部745は、バッファー746に格納されたハーフトンパターンデータをスキャンラインハーフトンパターン記憶部76へ書き込むためのアドレスを順次生成する。コントローラ748は、スキャンラインハーフトンパターン書込部74全体を制御している。
図13は、ハーフトンパターン生成部72の機能的ブロック図である。ハーフトンパターン生成部72は、閾値テーブル先頭アドレス記憶部721、閾値テーブルX、Y幅記憶部722、閾値テーブル開始Y値記憶部723、閾値テーブル終点Y値記憶部724、閾値テーブルメモリアドレス生成部725、階調値記憶部726、バッファー727、階調処理部728、固定長データ生成部729、バッファー730、ハーフトンテーブルメモリアドレス生成部731、およびコントローラ732を備える。
閾値テーブル先頭アドレス記憶部721は、処理する閾値テーブルの先頭アドレスを格納する。閾値テーブルX、Y幅記憶部722は、処理する閾値テーブルのX、Y幅を格納する。閾値テーブル開始Y値記憶部723は、処理する閾値テーブルの開始Y値を格納する。閾値テーブル終点Y値記憶部724は、処理する閾値テーブルの終点Y値を格納する。閾値テーブルアドレス生成部725は、メインメモリ54に格納された閾値テーブルを読み込むためのメモリアドレスを生成する。
階調値記憶部726は、描画する階調値を格納する。バッファー727は、閾値テーブルアドレス生成部725により、アクセスされた閾値テーブルデータを一時格納する。階調処理部728は、バッファー727に格納された閾値テーブルデータをワード単位に階調値記憶部726に格納された階調値により階調処理を行う。
固定長データ生成部729は、階調処理部728により生成された階調処理後データを順次束ねて、ハーフトンパターンデータを生成する。バッファー730は、固定長データ生成部729により生成されたハーフトンパターンデータを一時格納する。
ハーフトンテーブルメモリアドレス生成部731は、メインメモリ54に格納された閾値テーブルを読み込むためのメモリアドレスを生成する。コントローラ732は、ハーフトンパターン生成部72の全体を制御する。
図14は、水平ライン描画部75の機能的ブロック図である。水平ライン描画部75は、スキャンラインハーフトンパターンアドレス生成部745、X始点ワード値生成部751、X終点ワード値生成部752、描画ワードX値生成部753、スキャンラインハーフトンパターンアドレス生成部745、描画マスク生成部755、AND部756、描画アドレス生成部757、およびコントローラ758を備える。
スキャンラインハーフトンパターンアドレス生成部754は、ハーフトンパターンのX幅と描画するX座標から、スキャンラインハーフトンパターン記憶部76のアドレスを生成する。X始点ワード値生成部751は、水平ラインX始点値から、描画ワード単位の描画ワードX始点値を求め、描画ワードX値生成部753へ転送する。
X終点ワード値生成部752は、水平ラインX終点値から、描画ワード単位の描画ワードX終点値を求め、描画ワードX値生成部753へ転送する。描画ワードX値生成部753は、X始点ワード値生成部751およびX終点ワード値生成部752から描画ワード単位でX始点値から終点値の描画ワードX値を生成し、スキャンラインハーフトンパターンアドレス生成部745と、描画アドレス生成部757へ描画するX値を転送する。
描画マスク生成部755は、水平ラインX始点値と水平ラインX終点値から、描画ワードごとのX始点からX終点までの描画マスクを生成し、AND部756へ転送する。AND部756は、スキャンラインハーフトンパターン記憶部76からの描画するハーフトンパターンを受け取り、描画マスク生成部755から描画マスクを受け取り、AND演算を行い、描画パターン値を生成し、メモリコントローラI/F80へ描画パターンを転送する。
描画アドレス生成部757は、水平ラインY値と、水平ラインX始点値からメインメモリ54のバンドメモリへ描画するアドレスである描画アドレスを生成し、メモリコントローラI/F80へ転送する。コントローラ758は、水平ライン描画部75の全体をコントロールする。
図15は、階調処理部728の機能的ブロック図である。階調処理部728は比較器7281〜7284を備える。比較器7281〜7284は、バッファ727に格納された閾値テーブルデータを用いて、ワード単位に、階調値記憶部726に格納された階調値を比較して階調処理を施す。
図16は、固定長データ生成部729の機能的ブロック図である。固定長データ生成部729は、図示するようにレジスタを備え、階調処理部728によって生成された階調処理後データを順次束ねて、ハーフトンパターンデータを生成する。
図17は、メインメモリ54の閾値テーブルメモリ領域403に格納された閾値テーブルの一例である。閾値テーブルは、ここでは図示するようにm×nのハーフトンの閾値である。
図18は、メインメモリ54の閾値テーブルメモリ領域403に格納された閾値テーブルフォーマットの一例である。閾値テーブルメモリ領域403が同時に出力する1ワードが32BITであるために、32BIT単位に記憶されている。
図19は、スキャンラインハーフトンパターン記憶部76に格納するハーフトンパターンのフォーマットの一例を示す模式図である。このようにハーフトンパターンの1スキャンライン分のデータを格納する。
図20は、符号化部56の機能的ブロック図である。符号化部56は、メモリコントローラI/F561、バッファ562、JBIG符号化部563、バッファ564、メモリアドレス生成部565、およびコントローラ566を備える。
メモリコントローラI/F561は、メモリコントローラ53とのI/Fである。バッファ562は、画像データを一時記憶する。JBIG符号化部563は、JBIG規格の符号化方式により画像データを符号化し、バッファ564へ転送する。バッファ564は、符号データを一時記憶する。
メモリアドレス生成部565は、メインメモリ54のバンドメモリ格納領域405から画像データを読み込むためのアドレスを生成し、かつ、メインメモリ54の符号ページメモリ格納領域406へ符号データを書き込むためのアドレスを生成する。コントローラ566は、符号化部56全体を制御する。
図21は、復号部57の機能的ブロック図である。復号部57は、メモリコントローラI/F571、バッファ572、JBIG復号部573、バッファ574、メモリアドレス生成部575、およびコントローラ576を備える。
メモリコントローラI/F571は、メモリコントローラ53とのI/Fである。バッファ572は、符号データを一時記憶する。JBIG復号部573は、JBIG規格の復号方式により符号データを復号し、バッファ574へ転送する。バッファ574は、画像データを一時記憶する。
メモリアドレス生成部575は、メインメモリ54の符号ページメモリ格納領域406から符号データを読み込むためのアドレスを生成する。コントローラ576は、復号部57全体を制御する。こうして復号部57によって、復号された画像データはエンジンコントローラ58を介してプリンタエンジン59に送信され、画像出力装置(不図示)によって画像出力される。
(3.描画処理手順)
図22および23は、実施の形態による描画処理手順を示すフローチャートである。描画コマンド解析部71は、送信されたコマンドを読み込み(ステップS101)、読み込んだコマンドを解析する(ステップS102)。そして、描画コマンド解析部71は、コマンドが描画コマンドであるか否かを判定し(ステップS103)、描画コマンドでないと判定した場合(ステップS103のNo)、さらにパラメータ設定コマンドであるか否かを判定する(ステップS104)。
図22および23は、実施の形態による描画処理手順を示すフローチャートである。描画コマンド解析部71は、送信されたコマンドを読み込み(ステップS101)、読み込んだコマンドを解析する(ステップS102)。そして、描画コマンド解析部71は、コマンドが描画コマンドであるか否かを判定し(ステップS103)、描画コマンドでないと判定した場合(ステップS103のNo)、さらにパラメータ設定コマンドであるか否かを判定する(ステップS104)。
描画コマンド解析部71が、コマンドがパラメータ設定コマンドであると判定した場合(ステップS104のYes)、パラータ記憶部77へパラメータを書き込んで(ステップS105)、ステップS101に戻る。
一方、パラメータ設定コマンドでないと判定した場合(ステップS104のNo)、ハーフトンパターン生成コマンドであるか否かを判定し(ステップS106)、ハーフトンパターン生成コマンドでないと判断した場合(ステップS106のNo)、そのまま終了する。この場合、描画については意味のないコマンドだったことになる。
描画コマンド解析部71が、ハーフトンパターン生成コマンドであると判定した場合(ステップS106のYes)、ハーフトーンパターン生成部72を起動させて、指定された閾値テーブルを指定した階調値で階調処理する(ステップS107)。そして、ステップS101へ戻る。
また、描画コマンド解析部71が、コマンドが描画コマンドであると判定した場合(ステップS103のYes)、水平ライン変換部73を起動させて、描画コマンドを水平ライン単位に変換し、水平ライン描画部75へ転送する(ステップS108)。
そして、水平ライン変換部73は、ハーフトンパターンアドレスを、水平ラインY値に対してハーフトンパターンY幅によるモジュール(module)計算を行い、即ち、ハーフトンパターンY幅で割った余りを置き換える(ステップS109)。
水平ライン変換部73は、描画ワード単位のX始点値である描画ワードX終点値を、水平ラインX始点値から求める(ステップS110)。水平ライン変換部73は、描画ワード単位のX終点値である描画ワードX終点値を、水平ラインX終点値から求める(ステップS111)。水平ライン変換部73は、描画ワードX値を、描画ワードX始点値に置き換える(ステップS112)。
水平ライン描画部73は、スキャンラインハーフパターン書込部74を起動させて、描画するY座標に対応するハーフトンパターンを読み込み、スキャンラインハーフトーンパターン記憶部76へ送信して格納させる(ステップS113)。
水平ライン描画部75はこれより、水平ライン変換部73から指定された水平ラインを、スキャンラインハーフトーンパターン記憶部が記憶するハーフトンパターンを繰り返し使用し、水平ラインを描画していく。先ず、水平ライン描画部75は、ハーフトンパターンを描画する点が始点であるか否かを判定し(ステップS114)、始点であると判定した場合は(ステップS114のYes)、水平ライン描画部75は、水平ラインX始点値から描画マスク値を生成し(ステップS117)、ステップS119に移行する。
水平ライン描画部75が始点でないと判定して(ステップS114のNo)、さらに終点であるか否かを判定し(ステップS116)、終点であると判定した場合は(ステップS116のYes)、水平ライン描画部75は、水平ラインX終点値から描画マスク値を生成して(ステップS117)、ステップS119に移行する。
一方、水平ライン描画部75が、終点でないと判定した場合(ステップS116のNo)、水平ライン描画部75は、描画マスク値を全て1に書き換え(ステップS118)、ステップS119に移行する。
水平ライン描画部75は、ハーフトンパターンシフト値を、描画ワードX値に対してハーフトンパターンX幅でモジュール計算を行い、即ち、ワードX値をX幅値で割り算した余りをハーフトンパターンシフト値として求める(ステップS119)。水平ライン描画部75は、ハーフトンパターンから、描画する部分を切り出し、切り出された後、ハーフトンパターンを生成する(ステップS120)。切り出した後、ハーフトンパターン値と描画マスク値とをAND処理を施して、描画パターン値を生成する(ステップS121)。
水平ライン描画部75は、描画ワードX値を、描画ワード値+描画ワード幅に置き換える(ステップS122)。そして、描画ワードX値が、描描ワードX終点値より大きいか否かを判定し(ステップS123)、大きくない場合(ステップS123のNo)、ステップS114に戻る。一方、大きい場合は(ステップS123のYes)、水平ライン変換部73は、全てのスキャンラインを描画したか否かを判定し(ステップS124)、描画し終えたと判定した場合(ステップS124のYes)そのまま終了し、スキャンラインの全てを描画してはいないと判定した場合(ステップS124のNo)、ステップS109に戻って繰り返し処理を施す。
図24は、スキャンラインハーフトンパターン書込部74による読み込みおよび書き込み手順を示すフローチャートである。スキャンラインハーフトンパターン書込部74は、描画するスキャンラインのハーフトンパターンアドレスを、
(描画するY座標値%ハーフトンパターンY幅)×(ハーフトンパターンX幅のワード数)+(メインメモリのハーフトンパターン先頭アドレス)
の式で算出する(ステップS201)。ここで、%は剰余演算を意味する記号である。
(描画するY座標値%ハーフトンパターンY幅)×(ハーフトンパターンX幅のワード数)+(メインメモリのハーフトンパターン先頭アドレス)
の式で算出する(ステップS201)。ここで、%は剰余演算を意味する記号である。
次に、メインメモリのハーフトンパターン領域から描画するスキャンラインのハーフトンパターンを、1ワード読み込む(ステップS202)。そして、スキャンラインハーフトンパターン書込部74は、1ワードのハーフトンパターンを、スキャンラインハーフトンパターン記憶部76へ順次書き込む(ステップS203)。1スキャンライン分のハーフトンパターンをDMA転送したか否かを判定し(ステップS204)、未だの場合は(ステップS204のNo)ステップS202に戻る。既に終了した場合は(ステップS204のYes)そのまま終了する。
(4.効果)
このようにして、中間言語作成時に同じ階調値である描画オブジェクトを求め、この同じ階調値のオブジェクトを描画処理する前にハーフトンパターンを生成するコマンドを設定し、スキャンラインごとに描画する際、描画処理部70内のスキャンラインハーフトンパターン記憶部76に描画するY座標に対応するハーフトンパターンを随時読み込み、水平ライン方向に繰り返し、描画することによって、ブルーノイズマスクのような大きなサイズの閾値テーブルの階調処理であっても小さなハードウエアで高速に処理することが可能となる。
このようにして、中間言語作成時に同じ階調値である描画オブジェクトを求め、この同じ階調値のオブジェクトを描画処理する前にハーフトンパターンを生成するコマンドを設定し、スキャンラインごとに描画する際、描画処理部70内のスキャンラインハーフトンパターン記憶部76に描画するY座標に対応するハーフトンパターンを随時読み込み、水平ライン方向に繰り返し、描画することによって、ブルーノイズマスクのような大きなサイズの閾値テーブルの階調処理であっても小さなハードウエアで高速に処理することが可能となる。
ここで、ハーフトンパターンを専用に記憶する記憶部を備えなくても、メインメモリ54から随時、スキャンライン分を記憶するメモリによってスキャンライン分のみ転送することができる。そのため、描画に必要な全てのハーフトンパターンを全て準備する必要が無く、描画中に描画処理部70がハーフトンパターン生成コマンドを読み込んでハーフトンパターンを生成することによって、ハーフトンパターンの記憶領域は小規模なものに抑えることができる。
また、特に、描画時にアクセスする階調処理用のメモリアクセス数を、階調処理後のハーフトンパターンにアクセスするために、さらに、抑制することができる。
(5.プログラム、記憶媒体など)
実施の形態によるカラーインクジェットプリンタで実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成できる。
実施の形態によるカラーインクジェットプリンタで実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成できる。
さらに、実施の形態によるカラーインクジェットプリンタで実行される画像処理プログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良く、また、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
実施の形態のカラーインクジェットプリンタで実行される画像処理プログラムは、上述した各部(70描画処理部、描画コマンド解析部71、ハーフトンパターン生成部72、水平ライン変換部73、スキャンラインハーフトンパターン書込部74、水平ライン描画部75、スキャンラインハーフトンパターン記憶部76、パラメータ記憶部77、コントローラ78、およびMUX79)、あるいはシステムコントローラ、コピーアプリ、プリンタアプリ等を含むモジュール構成となっている。実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから画像処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、システムコントローラ、画像処理部、コピーアプリ、プリンタアプリ等が主記憶装置上に生成されるように構成できる。また、上記各部を一つのチップとして形成し、このチップ内でCPU51を介さずに上記各部およびメインメモリ54と直接、データの受け渡しを行う構成とすることができる。
以上のように、本発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体は、画像処理技術に有用であり、特に、プリンタ、コピー機、デジタルカメラなどの画像処理装置における画像処理技術に適している。
70 描画処理部
71 描画コマンド解析部
72 ハーフトンパターン生成部
73 水平ライン変換部
74 スキャンラインハーフトンパターン書込部
75 水平ライン描画部
76 スキャンラインハーフトンパターン記憶部
77 パラメータ記憶部
78 コントローラ
79 MUX
80 メモリコントローラI/F
71 描画コマンド解析部
72 ハーフトンパターン生成部
73 水平ライン変換部
74 スキャンラインハーフトンパターン書込部
75 水平ライン描画部
76 スキャンラインハーフトンパターン記憶部
77 パラメータ記憶部
78 コントローラ
79 MUX
80 メモリコントローラI/F
Claims (14)
- ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置において、
前記描画コマンドを解析する描画コマンド解析手段と、
前記描画コマンド解析手段によって解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段と、
前記閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成手段と、
前記ハーフトンパターン生成手段により生成されたハーフトンパターンデータを格納するハーフトンパターン記憶手段と、
前記ハーフトンパターン記憶手段が格納するハーフトンパターンデータのうち、少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段と、
解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込みんで前記スキャンラインハーフトンパターン記憶手段に書き込むスキャンラインハーフトンパターン書込手段と、
解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画手段と、
を備えたことを特徴とする画像処理装置。 - 前記ハーフトンパターン生成手段は、メモリワード単位の複数の閾値テーブルを用いて、前記解析された前記描画コマンドに基づいて、並列的に複数の階調処理を施すものであることを特徴とする請求項1に記載の画像処理装置。
- 前記ハーフトンパターン生成手段は、並列的に複数の階調処理を施されたハーフトンパターンデータを、メモリワード単位の固定長ワードへ編集する固定長データ生成手段を有するものであることを特徴とする請求項2に記載の画像処理装置。
- 前記ハーフトンパターン生成手段は、解析された前記描画コマンドに基づいて、階調処理を開始する副走査方向における開始位置から終了位置までの閾値テーブルを読み込み、読み込まれた閾値によって階調処理を施してハーフトンパターンデータを生成するものであることを特徴とする請求項1〜3のいずれか1つに記載の画像処理装置。
- 前記スキャンラインハーフトンパターン書込手段は、少なくとも描画するハーフトンパターンの副走査方向の位置情報、ハーフトンパターンの副走査方向幅情報、および前記副走査方向の位置情報に対応するハーフトンパターンの主走査方向位置情報に基づいて、前記ハーフトンパターン記憶手段に格納されている描画対象となるハーフトンパターンのアドレスを計算するハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記ハーフトンパターンデータを読み込んで前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする請求項1〜4のいずれか1つに記載の画像処理装置。
- 前記水平ライン描画手段は、ハーフトンパターンの主走査方向幅および描画する主走査方向位置情報に基づいて、前記スキャンラインハーフトンパターン記憶手段が格納する前記スキャンラインハーフトンパターンのアドレスを計算するスキャンラインハーフトンパターンメモリアドレス生成手段を有し、該計算されたアドレスを用いて、前記水平ラインの描画データを生成するものであることを特徴とする請求項1〜5のいずれか1つに記載の画像処理装置。
- 前記水平ライン描画手段は、描画するスキャンラインの主走査方向始点位置情報と終点位置情報とに基づいて、描画するワード単位のワード内の描画する部分および描画しない部分を判別する描画マスクを生成する描画マスク生成手段を有し、該生成された描画マスクを用いて、前記水平ラインの描画データを生成するものであることを特徴とする請求項1〜6のいずれか1つに記載の画像処理装置。
- 前記水平ライン描画手段は、前記描画マスク生成手段により生成された描画マスク値、および前記スキャンラインハーフトンパターン記憶手段に記憶されたハーフトンパターン情報をAND処理するAND処理手段を有し、該AND処理によって、前記水平ラインの描画データを生成するものであることを特徴とする請求項7に記載の画像処理装置。
- 前記スキャンラインハーフトンパターン記憶手段は、記憶する前記ハーフトンパターンデータを、前記水平ライン描画手段が1度に描画する描画ワード単位と同一のワード単位で格納するものであることを特徴とする請求項1〜8のいずれか1つに記載の画像処理装置。
- 前記スキャンラインハーフトンパターン書込手段は、前記ハーフトンパターン記憶手段から読み込まれたハーフトンパターンデータを、前記スキャンラインハーフトンパターン記憶手段の格納するハーフトンパターンと同一の描画ワードへ変換する描画ワード変換手段を有し、該変換されたハーフトンパターンを前記スキャンラインハーフトンパターン記憶手段に書き込むものであることを特徴とする請求項1〜9のいずれか1つに記載の画像処理装置。
- ページ記述言語による記述から中間言語による記述に翻訳する描画コマンド生成手段を、さらに備え、
前記描画コマンド生成手段は、少なくとも前記ハーフトンパターン生成手段が必要とする閾値テーブルの先頭アドレス、閾値テーブルの主走査幅および副走査幅、並びに、階調値および階調処理後のハーフトンパターンを格納する先頭アドレスを設定するハーフトンパターン生成コマンドを生成し、
前記コマンド解析手段は、前記描画コマンド生成手段が生成したハーフトンパターン生成コマンドを解析するものであることを特徴とする請求項1〜10のいずれか1つに記載の画像処理装置。 - ページ記述言語による記述から中間言語による記述に翻訳された描画コマンドに基づく画像に対応する描画データを生成する画像処理装置の画像処理方法において、
描画コマンド解析手段によって、前記描画コマンドを解析する描画コマンド解析工程と、
ハーフトンパターン生成手段によって、前記描画コマンド解析工程で解析された描画コマンドに基づく画像を階調処理する閾値テーブルを格納する閾値テーブル記憶手段が格納する閾値テーブルを読み込み、解析された前記描画コマンドによって画定される描画パターンにおいて、読み込んだ前記閾値テーブルにより階調処理を施してハーフトンパターンデータを生成するハーフトンパターン生成工程と、
ハーフトンパターン記憶手段に、前記ハーフトンパターン生成工程で生成されたハーフトンパターンデータを格納するハーフトンパターン記憶工程と、
スキャンラインハーフトンパターン書込手段によって、解析された前記描画コマンドに基づいて、前記ハーフトンパターン記憶手段から、描画するスキャンライン単位に、副走査方向の位置情報により定まるハーフトンパターンデータを読み込んで、前記ハーフトンパターン記憶手段に格納するハーフトンパターンデータのうち少なくとも1スキャンライン分のハーフトンパターンデータを格納するスキャンラインハーフトンパターン記憶手段に対して、書き込むスキャンラインハーフトンパターン書込工程と、
水平ライン描画手段によって、解析された前記描画コマンドに基づいて、前記スキャンラインハーフトンパターン記憶手段に書き込まれたハーフトンパターンデータを読み込んでスキャンライン単位に水平ラインの描画データを生成する水平ライン描画工程と、
を備えたことを特徴とする画像処理方法。 - 請求項12に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
- 請求項13に記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005166712A JP2006341386A (ja) | 2005-06-07 | 2005-06-07 | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005166712A JP2006341386A (ja) | 2005-06-07 | 2005-06-07 | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006341386A true JP2006341386A (ja) | 2006-12-21 |
Family
ID=37638720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005166712A Pending JP2006341386A (ja) | 2005-06-07 | 2005-06-07 | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006341386A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009274366A (ja) * | 2008-05-15 | 2009-11-26 | Canon Inc | 画像処理方法及び画像処理装置とその制御方法 |
-
2005
- 2005-06-07 JP JP2005166712A patent/JP2006341386A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009274366A (ja) * | 2008-05-15 | 2009-11-26 | Canon Inc | 画像処理方法及び画像処理装置とその制御方法 |
US8339664B2 (en) | 2008-05-15 | 2012-12-25 | Canon Kabushiki Kaisha | Image processing method, image processing apparatus, and control method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012153118A (ja) | 画像処理装置及び画像処理方法 | |
US6886912B2 (en) | Method and apparatus for processing images having color combinations | |
US7589860B2 (en) | Method, apparatus and computer program product for processing image data stored on a memory for rendering an image on a device | |
JP4665792B2 (ja) | 印刷システム及び印刷方法 | |
JPWO2005047003A1 (ja) | 記録装置、およびデータ処理方法 | |
JP2006341386A (ja) | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記録媒体 | |
JP2004358732A (ja) | 追加印刷装置および追加印刷方法、追加印刷制御プログラムならびにそのプログラムを記録した記録媒体 | |
JP4661043B2 (ja) | 印刷装置、印刷制御装置、印刷方法およびプログラム | |
JP2006168370A (ja) | インクジェット記録装置および記録方法 | |
JPH0918732A (ja) | 情報処理装置及びその方法 | |
JP2023028288A (ja) | 印刷システムおよび印刷判定方法 | |
JP2004306392A (ja) | 印刷装置、制御装置、印刷方法、制御方法およびプログラム | |
JP7041520B2 (ja) | インクジェット記録装置、画像処理方法およびプログラム | |
JP2015012357A (ja) | 画像処理装置、プリンタードライバー、印刷システム、及び印刷データ生成方法 | |
JP2004314411A (ja) | 印刷装置、制御装置、印刷方法、制御方法およびプログラム | |
JP3780120B2 (ja) | 記録方法及び記録装置 | |
JP5786394B2 (ja) | 印刷装置、印刷システム、印刷方法およびプログラム | |
JP4174264B2 (ja) | 記録装置及びその制御方法 | |
JP2009292102A (ja) | 記録装置及びその方法 | |
JP2010120329A (ja) | 印刷画像のジャギーを低減する画像処理 | |
JP2005354421A (ja) | 色空間変換装置、色空間変換方法および画像形成コントローラ | |
JP2021122952A (ja) | 画像処理装置、網点画像生成装置、印刷システムおよび画像処理方法 | |
JP3800095B2 (ja) | プリンタドライバ及び印刷データ生成方法 | |
JP2010055238A (ja) | プログラム、画像処理方法、及び画像処理装置 | |
JP5493647B2 (ja) | 印刷媒体上に画像を重ねて形成する多重印刷 |