画素ごとにAビットの入力階調値を有する画像データに基づいて印刷を実行する印刷装置であって、前記画像データからエッジ画素を検出するエッジ検出部と、前記画像データに含まれる各画素をスクリーン処理によって2値化するスクリーン処理部と、前記画像データに含まれる各画素を前記入力階調値に応じたCただしC≦Aビットのパルス幅データに変換するパルス幅変換部と、前記スクリーン処理部で2値化されたデータに基づくパルス幅データ、及び、前記パルス幅変換部で変換されたパルス幅データ、のいずれかを画素ごとに出力する出力部と、前記出力部から出力されたパルス幅データに対応するパルス信号を出力して印刷を実行する印刷実行部と、を備え、前記パルス幅変換部は、前記画像データに含まれる各画素を、前記入力階調値に応じて、前記Cビットのパルス幅データよりも高精度なBただしB>Aビットの仮パルス幅データに変換し、当該仮パルス幅データを、前記パルス幅データの精度に合わせた実数データに変換し、所定の範囲の一様乱数を加えることによって、前記Cビットのパルス幅データに変換し、前記出力部は、前記エッジ検出部でエッジ画素として検出された画素については、前記パルス幅変換部で変換されたパルス幅データを出力し、前記エッジ検出部で非エッジ画素として検出された画素については、前記スクリーン処理部で2値化されたデータに基づくパルス幅データを出力する、ことを特徴とする印刷装置。請求項1に記載の印刷装置であって、前記パルス幅変換部は、前記実数データに加える一様乱数の範囲を、前記パルス幅データの精度に応じて可変とする、ことを特徴とする印刷装置。請求項1に記載の印刷装置であって、前記パルス幅変換部は、前記実数データに加える一様乱数の範囲を、前記入力階調値に応じて可変とする、ことを特徴とする印刷装置。請求項1乃至3のいずれか1項に記載の印刷装置であって、前記画像データは、画素ごとに属性情報を有しており、前記エッジ検出部は、記属性情報を用いてエッジ画素を検出する、ことを特徴とする印刷装置。コンピューターを、印刷制御装置として機能させるドライバープログラムであって画素ごとにAビットの入力階調値を有する画像データからエッジ画素を検出するエッジ検出ステップと、前記画像データに含まれる各画素をスクリーン処理によって2値化するスクリーン処理ステップと、前記画像データに含まれる各画素を前記入力階調値に応じたCただしC≦Aビットのパルス幅データに変換するパルス幅変換ステップと、前記スクリーン処理ステップで2値化されたデータに基づくパルス幅データ、及び、前記パルス幅変換ステップで変換されたパルス幅データ、のいずれかを画素ごとに出力する出力ステップと、を前記コンピューターに実行させ、前記パルス幅変換ステップでは、前記画像データに含まれる各画素を、前記入力階調値に応じて、前記Cビットのパルス幅データよりも高精度なBただしB>Aビットの仮パルス幅データに変換し、当該仮パルス幅データを、前記パルス幅データの精度に合わせた実数データに変換し、所定の範囲の一様乱数を加えることによって、前記Cビットのパルス幅データに変換し、前記出力ステップでは、前記エッジ検出ステップでエッジ画素として検出された画素については、前記パルス幅変換ステップで変換されたパルス幅データを出力し、前記エッジ検出ステップで非エッジ画素として検出された画素については、前記スクリーン処理ステップで2値化されたデータに基づくパルス幅データを出力する、ことを特徴とするドライバープログラム。しかし、細線と判断されたエッジ画素をパルス幅データに変換する場合、印刷可能な階調数はPWMの分解能に依存する。つまり、Mビット精度のパルス幅データまでしか処理できないPWMでは、最大でも2Mの階調数しか表現できない。本発明は、PWMの分解能が低い場合でも、なるべく画質の低下を防ぐ技術を提供することを目的とする。上記課題を解決するための本願発明は、画素ごとにAビットの入力階調値を有する画像データに基づいて印刷を実行する印刷装置であって、前記画像データからエッジ画素を検出するエッジ検出部と、前記画像データに含まれる各画素をスクリーン処理によって2値化するスクリーン処理部と、前記画像データに含まれる各画素を前記入力階調値に応じたCただしC≦Aビットのパルス幅データに変換するパルス幅変換部と、前記スクリーン処理部で2値化されたデータに基づくパルス幅データ、及び、前記パルス幅変換部で変換されたパルス幅データ、のいずれかを画素ごとに出力する出力部と、前記出力部から出力されたパルス幅データに対応するパルス信号を出力して印刷を実行する印刷実行部と、を備える。前記パルス幅変換部は、前記画像データに含まれる各画素を、前記入力階調値に応じて、前記Cビットのパルス幅データよりも高精度なBただしB>Aビットの仮パルス幅データに変換し、当該仮パルス幅データを、前記パルス幅データの精度に合わせた実数データに変換し、所定の範囲の一様乱数を加えることによって、前記Cビットのパルス幅データに変換する。前記出力部は、前記エッジ検出部でエッジ画素として検出された画素については、前記パルス幅変換部で変換されたパルス幅データを出力し、前記エッジ検出部で非エッジ画素として検出された画素については、前記スクリーン処理部で2値化されたデータに基づくパルス幅データを出力する。以下、本発明の一実施形態について図面を参照して説明する。図1は、本発明の一実施形態が適用された印刷システム10の概略構成の一例を示すブロック図である。図示するように、印刷システム10は、印刷装置100と、情報処理装置ホストPC200と、を備える。情報処理装置200は、印刷装置100のホストコンピューターとして機能する。そして、情報処理装置200には、例えば、LAN等のコンピューターネットワークやUSBケーブルを介して通信可能に、印刷装置100が接続されている。情報処理装置200は、不図示の、CPUCentralProcessingUnitと、RAMRandomAccessMemory等の主記憶装置と、ROMReadOnlyMemoryやハードディスク等の外部記憶装置と、ディスプレイ等からなる出力装置と、キーボード、マウス等からなる入力装置と、印刷装置100とデータの送受信を行う通信インターフェイスと、を備える一般的なコンピューターである。そして、情報処理装置200は、図示するように、画像データ入力部210と、ラスタライズ処理部220と、を有する。なお、各機能部210、220は、外部記憶装置に記憶されている所定のプログラムを主記憶装置にロードしてCPUで実行することで実現可能である。画像データ入力部210は、印刷対象の画像を入力する。印刷対象の画像には、例えば、文字データ、グラフィックデータ、イメージデータなどの画像データが含まれる。また、情報処理装置100で作成された画像に限らず、コンピューターネットワークやUSBケーブルを介して入力された画像、USBメモリーや携帯電話に内蔵されるメモリー等の可搬型メモリーから入力された画像、等を含む。ラスタライズ処理部220は、例えば、オペレーティングシステムの特定の機能とプリンタードライバーにより構成される。ラスタライズ処理部220は、画像データ入力部210によって入力された画像データを、画素ごとに複数ビットの階調値を有する入力画像データに変換し、印刷装置100に出力する。入力画像データがモノクロデータであれば、例えば、8ビットの256階調値を有する。また、入力画像データがカラーデータであれば、RGB画像データまたはCMYK画像データ等であり、色ごとに8ビットの256階調値を有する。上記の情報処理装置200の構成は、本願発明の特徴を説明するにあたって主要構成を説明したものであって、上記に限られない。また、一般的なコンピューターが備える他の構成を排除するものではない。また、情報処理装置200は、印刷装置100のホストコンピューターとして機能すれば、例えば、携帯端末などでもよい。印刷装置100は、情報処理装置200から送信された入力画像データの印刷を行う。印刷装置100は、図示するように、画像処理回路110と、パルス幅変調部PWM120と、印刷エンジン130と、を備える。また、印刷装置100は、不図示の、CPUと、RAM等の主記憶装置と、ROMやフラッシュメモリー等の外部記憶装置と、ネットワーク50に接続するための通信装置と、入力ボタン、タッチパネルなどからなる入力装置と、液晶ディスプレイなどからなる出力装置と、を備えた一般的なプリンターである。図2は、画像処理回路110の概略構成の一例を示すブロック図である。図示するように、画像処理回路110は、色変換部111と、属性エッジ検出部112と、スクリーン処理部113と、パルス幅変換部114と、出力部115と、を有する。なお、各機能部111~115は、専用のハードウェアASIC等で実現してもよいし、外部記憶装置に記憶されている処理のプログラムを主記憶装置にロードしてCPUで実行することで実現してもよい。色変換部111は、情報処理装置200から送信された入力画像データに対して、色変換を行う。例えば、入力画像データが色ごとにA=8ビットの入力階調値2A=256階調を有するRGB画像データであれば、色変換部111は、色ごとにAビットの入力階調値2A=256階調を有するCMYK画像データに変換して出力する。なお、画像処理回路110は、スクリーン処理に先立ち、情報処理装置200から送信された入力画像データを構成する各画素に、その属性を特定可能な情報以下では属性情報Xとよぶを付加しておく。図3Aは、属性情報Xの概略データ構造の一例を示す図である。図示するような属性情報Xが、入力画像データを構成する各画素に付加される。なお、各画素を正方形で表しており、正方形内の数字は、属性を識別するための値を表している。例えば、写真属性には0が割り当てられ、グラフィック属性には1が割り当てられ、文字属性には2が割り当てられ、線属性には3が割り当てられている。そして、色変換部111は、入力画像データに付加されている属性情報X例えば、2ビットについては、そのまま出力する。属性エッジ検出部112は、属性情報Xを用いて、入力画像データに含まれるエッジ画素を検出する。例えば、属性エッジ検出部112は、色変換部111から出力された属性情報Xに対応する画素を注目画素とした場合に、当該注目画素の属性情報Xと、当該注目画素からみて上下左右の各方向に隣接する画素の属性と、を比較する。そして、属性エッジ検出部112は、当該注目画素の属性情報Xと、当該注目画素からみて上下左右のいずれか1つの方向に隣接する画素の属性と、が異なれば、当該注目画素をエッジ画素として検出する。なお、上記のエッジ検出の処理は、エッジ検出の対象となる属性を有する注目画素例えば、線属性の画素に対して実施される。そして、属性エッジ検出部112は、エッジ検出の結果を反映させたエッジ信号を出力部115へ出力する。例えば、属性エッジ検出部112は、エッジ画素として検出された画素についてはエッジ信号1を出力し、非エッジ画素として検出された画素すなわち、エッジ画素として検出されなかった画素についてはエッジ信号0を出力する。図3Bは、図3Aに示す属性情報Xを用いてエッジ検出が行われたときに属性エッジ検出部112が出力するエッジ信号を示す図である。図示するように、属性エッジ検出部112は、線属性の属性情報Xを有する画素図3Aの黒塗り画素のうち、線属性以外の属性情報Xを有する画素と隣接する画素図3Bの黒塗り画素については、エッジ画素とみなしてエッジ信号1を出力する。また、それ以外の画素については、非エッジ画素とみなしてエッジ信号0を出力する。図2に戻り、スクリーン処理部113は、色変換部111から出力されたCMYK画像データに対して、スクリーン処理を施す。具体的には、スクリーン処理部113は、図4Aに示すような5×5のサイズからなる閾値マトリクスを用い、色変換部111から出力された入力階調値と、当該入力階調値を有する画素に対応する閾値と、を比較し、入力階調値が閾値よりも大きい場合に、当該画素の位置に印字する出力ドットを形成するための2値化データを生成する。一方、入力階調値が閾値以下である場合には、当該画素の位置に印字しない2値化データを生成する。なお、ここで、スクリーン処理部113が出力する2値化データは、例えば、印字の場合にパルス幅変調部120から出力されるパルス信号のパルス幅と、非印字の場合にパルス幅変調部120から出力されるパルス信号のパルス幅と、のいずれかを指定するパルス幅データC’M’Y’K’でよい。もちろん、2値化データは、印字、非印字を区別する1ビットの識別データでもよい。なお、図4Aに示した例では、1画素のパルス幅の分解能を1ビットとしているが、パルス幅変調によりMビットの出力を行ってもよい。その場合には、1画素に対応する閾値がMビットで構成されることとなる。図4Bは、スクリーン処理後の2値化データC’M’Y’K’の一例を示す図である。なお、正方形内の数字は、印字するか否かを示す値0:非印字、1:印字を表している。図2に戻り、パルス幅変換部114は、色変換部111から出力されたCMYK画像データに対して、パルス幅変換処理を施す。具体的には、パルス幅変換部114は、色変換部111から出力されたCMYK画像データの入力階調値に応じて、パルス幅変調部120から出力されるパルス信号のパルス幅を決定する。そして、パルス幅変換部114は、決定されたパルス幅を指定するパルス幅データC’’M’’Y’’K’’を出力部115へ出力する。図5は、パルス幅変調部120から出力されるパルス信号のパルス幅と、印字範囲の関係を示す図である。なお、画素内における黒塗り部分を印字範囲とし、画素内おける白塗り部分を非印字範囲とする。図示するように、パルス幅変換部114から出力されるパルス幅データに応じて、各画素の印字範囲が変更される。従って、例えば、パルス幅変換部114からC=4ビット精度のパルス幅データが出力される場合には、各画素の印字範囲を2C段階で変更することができる。なお、パルス幅変調部PWM120でC=4ビット精度のパルス幅データまでしか処理できないPWMの分解能がCビットとすると、パルス幅変換部114は、C=4ビット精度以下のパルス幅データを出力しなければならない。しかし、色変換部111からパルス幅変換部114へ送られてくるCMYK画像データは、色ごとにAただし、A≧Cビットの入力階調値を有しているため、それよりビット数の少ないCビットのパルス幅データに変換すると、当然のことながら画質の低下を引き起こす。このような画質の低下を防ぐために、本実施形態のパルス幅変換部114は、色ごとにAビットの入力階調値階調値2Aを有するCMYK画像データが色変換部111から送られてくると、まずは、当該入力階調値よりも高精度なビット数の多い、Bただし、B>Aビットの仮パルス幅データに変換する仮のパルス幅変換処理とよぶ。それから、パルス幅変換部114は、Bビットの仮パルス幅データを、パルス幅変調部PWM120で処理可能なビット数Cに合わせた実数データに変換し、所定の範囲Sの一様乱数を加えることによって、Cビットのパルス幅データに変換する拡散処理とよぶ。以下、仮のパルス幅変換処理と拡散処理について詳細に説明する。<仮のパルス幅変換処理>パルス幅変換部114は、入力階調値と、仮のパルス幅と、を対応付けたパルス幅変換テーブルを用いて、仮のパルス幅変換処理を行う。具体的には、パルス幅変換部114は、CMYK画像データの入力階調値に対応付けられているパルス幅をパルス幅変換テーブルから抽出し、仮のパルス幅Bビットとして決定する。図6は、パルス幅変換テーブルの一例をグラフ化した図である。図示するように、パルス幅変換テーブルに格納されている、入力階調値と、仮のパルス幅と、の関係は非線形となる。ここで、入力階調値と、仮のパルス幅と、の関係を非線形にしているのは、パルス幅変調部120から出力されるパルス信号のパルス幅に対して、実際に印刷媒体に印字される出力濃度が比例しないためである。以下では、パルス幅変調部120から出力されるパルス信号のパルス幅に対する、実際の出力濃度の関係を出力濃度特性とよぶ。図7Aは、出力濃度特性の一例をグラフ化した図である。図示するように、パルス幅変調部120から出力されるパルス信号のパルス幅と、実際に印刷媒体に印字される出力濃度と、の関係は非線形となる。このような、出力濃度特性は、装置印刷装置100固有のものであり、使用環境によっても異なる。そのため、パルス幅変換テーブルには、印刷装置100の工場出荷時において、入力階調値とパルス幅の関係が最適となるように各値が格納される。ここで、最適な入力階調値とパルス幅の関係とは、入力階調値に対して、実際に印刷媒体に印字される出力濃度印刷濃度が比例するリニアとなる関係を指す。なお、パルス幅変換テーブルに格納された各値が最適である場合、エッジ画素を印字する場合パルス幅変換部114から出力されたデータに基づく印字の出力濃度は、非エッジ画素を印字する場合スクリーン処理部113から出力されたデータに基づく印字の出力濃度に一致する。図7Bは、入力階調値と、出力濃度と、の目標となる関係を示す図である。図示するように、入力階調値に対して、実際に印刷媒体に印字される出力濃度を比例させることができれば、高品質な印字結果を得ることができる。なお、図8は、図6に示すようなパルス幅変換テーブルの生成方法を説明するための図である。図示するように、パルス幅変換部114は、第1象限に、図7Aに示すような出力濃度特性のグラフ関係をプロットし、第2象限に、図7Bに示すような入力階調値と出力濃度の目標となる関係グラフをプロットし、第3象限に、比例係数を1とする正比例の直線をプロットする。そして、パルス幅変換部114は、パルス幅Nを出発点図示するA点として、その出発点のパルス幅Nに対応する出力濃度Rを第1象限のグラフ出力濃度特性のグラフから特定する図示するB点。それから、パルス幅変換部114は、特定した出力濃度Rに対応する入力階調値を第2象限のグラフ目標となる入出力関係から特定する図示するC点。さらに、パルス幅変換部114は、特定した入力階調値第3象限のD点で折り返した値と、出発点のパルス幅Nと、を対応付けてすなわち、図示するE点の値を、パルス幅変換テーブルに格納する。パルス幅変換部114は、以上のような入力階調値とパルス幅Nの対応付けを、出発点パルス幅Nを変更して繰り返し行う。こうして、入力階調値に対して、実際に印刷媒体に印字される出力濃度を比例させるためのパルス幅変換テーブルを生成できる。そして、パルス幅変換部114は、生成したパルス幅変換テーブルを、仮のパルス幅変換処理に先立って所定の記憶装置に格納しておく。こうして生成されたパルス幅変換テーブルを用いて、本実施形態のパルス幅変換部114は、画素ごとに、Aビットの入力階調値をBB>Aビットの仮パルス幅データに変換できる。<拡散処理>次に、パルス幅変換部114は、Bビットの仮パルス幅データを、パルス幅変調部PWM120で処理可能なビット数Cただし、C≦Aに合わせた実数データに変換する。具体的には、パルス幅変換部114は、以下の数式1に従って、Bビットの仮のパルス幅データを、パルス幅変調部PWM120で処理可能なビット数Cに合わせた実数データに変換する。DBL_X=INT_X×{2C-1/2B-1}数式1ここで、DBL_Xは、変換後の実数データを表し、INT_Xは、変換前の仮パルス幅データを表す。こうして、パルス幅変換部114は、パルス幅変調部PWM120で処理可能なビット数Cに合わせた実数データを得ることができる。なお、パルス幅変換部114は、Bビットの仮パルス幅データを、パルス幅変換部114から出力する予定のCビット精度のパルス幅データに合わせて、実数データに変換してもよい。それから、パルス幅変換部114は、得られた実数データの値を中心として、所定の範囲Sすなわち、±S/2で一様に拡散させる乱数を、実数データに加える。具体的には、パルス幅変換部114は、以下の数式2に従って、実数データに一様乱数を加え、四捨五入することによって、出力すべきCビットのパルス幅データを得ることができる。DIFF_X=INT{DBL_XRs-S/20.5}数式2ここで、DIFF_Xは、出力すべきCビットのパルス幅データを表し、DBL_Xは、実数データを表し、Rsは、0からSまでの範囲の一様乱数を表す。なお、INTは、切り捨て処理を表し、INTk0.5で、kを四捨五入する処理を表す。図7Cは、入力階調値と、パルス幅変換部114から出力されるパルス幅データと、の関係を示す図である。図示するように、パルス幅変換部114は、上記の仮のパルス幅変換処理と拡散処理を行うことで、Aビットの入力階調値階調値2Aを、Cビットのパルス幅データに変換することができる。また、図9A、Bは、拡散処理による効果を説明するための図である。図9Aの上段に示すように、仮のパルス幅変換処理によって高階調化高精度化されたBビットの実数データに対して、本実施形態の拡散処理を適用せず、そのまま四捨五入すると、各画素のパルス幅データは、入力階調値に対応する適正なパルス幅データの値図示する例では12.3から離れてしまう。しかし、図9Aの下段に示すように、仮のパルス幅変換処理によって高階調化高精度化されたBビットの実数データに対して、本実施形態の拡散処理を適用し、これを四捨五入すると、各画素のパルス幅データは、全体でみれば平均的には、入力階調値に対応する適正なパルス幅データの値図示する例では12.3に近づく。また、図9Bは、本実施形態の拡散処理を適用しない場合における、入力階調値と出力濃度の関係を示すグラフの一例点線と、本実施形態の拡散処理を適用した場合における、入力階調値と出力濃度の関係を示すグラフの一例太線と、を重ねてプロットした図である。図示するように、拡散処理を適用することにより、入力階調値と出力濃度の関係を、図7Bで説明した目標となる関係比例に近づけることができる。以上のことから、パルス幅変換部114は、上記の拡散処理を適用することによって、より高精度なすなわち、入力階調値と出力濃度がよりリニアになるパルス幅データを得ることができる、といえる。図2に戻り、出力部115は、スクリーン処理部113から出力されたパルス幅データC’M’Y’K’と、パルス幅変換部114から出力されたパルス幅データC’’M’’Y’’K’’と、のうち、いずれかのパルス幅データを選択して、パルス幅変調部120へ出力する。例えば、出力部115は、非エッジ画素については、スクリーン処理部113から出力されたパルス幅データC’M’Y’K’を出力し、エッジ画素については、パルス幅変換部114から出力されたパルス幅データC’’M’’Y’’K’’を出力する。そのため、出力部115は、非エッジ画素であることを示すエッジ信号0が属性エッジ検出部112から入力されている場合に、スクリーン処理部113から出力されたパルス幅データC’M’Y’K’を、出力画像データC’’’M’’’Y’’’K’’’として出力する。一方、出力部115は、エッジ画素であることを示すエッジ信号1が属性エッジ検出部112から入力されている場合には、パルス幅変換部114から出力されたパルス幅データC’’M’’Y’’K’’を、出力画像データC’’’M’’’Y’’’K’’’として出力する。こうして、出力部115から出力された出力画像データC’’’M’’’Y’’’K’’’は、パルス幅変調部120へ入力される。そして、パルス幅変調部120は、入力された出力画像データC’’’M’’’Y’’’K’’’を、画素ごとにレーザー駆動パルスに変換し、印刷エンジン130に出力する。印刷エンジン130は、レーザードライバー不図示と、レーザーダイオード不図示やライン状発光素子不図示と、を備える。レーザードライバーは、パルス幅変調部120から出力されたレーザー駆動パルスに従ってレーザーダイオードやライン状発光素子を駆動し、感光体ドラム不図示に出力画像データに基づく画像を形成する。図10Aは、図3Bのエッジ信号に対応した入力画像データの一例を示しており、図10Bは、図10Aの全ての画素を非エッジ画素としてスクリーン処理した場合の出力画像データの一例を示しており、図10Cは、図10Aのエッジ画素と非エッジ画素でスクリーン処理を変更した場合の出力画像データの一例を示す図である。図示するように、本実施形態では、非エッジ画素についてはスクリーン処理部113で処理されたデータに基づいて印字を行うが、エッジ画素についてはパルス幅変換部114で処理されたデータに基づいて印字を行うので、エッジ部分にジャギー等が発生するのを防げる。さらに、入力画像データに付加した属性情報Xを用いて、エッジ画素と非エッジ画素を分離しているため、従来よりも簡単な構成で、かつ、正確にエッジ画素と非エッジ画素を分離できる。そのため、ハードウェア面、或いはソフトウェア面での負荷を抑えることができる。また、色情報を破棄してもエッジ画素と非エッジ画素を正確に分離できるため、グレイ画像を処理する場合であっても、エッジ部分にジャギー等が発生するのを防ぐことができる。上記の印刷装置100の構成は、本願発明の特徴を説明するにあたって主要構成を説明したものであって、上記に限られない。また、一般的なプリンターが備える他の構成を排除するものではない。また、印刷装置100は、印刷機能を有していれば、例えば、複合機、スキャナー装置、コピー機、FAX装置などでもよい。本実施形態が適用された印刷システム10は、以上のような構成からなる。ただし、上記の印刷システム10の構成は、本願発明の特徴を説明するにあたって主要構成を説明したものであって、上記に限られない。また、他の構成の追加を排除するものではない。また、上記した各構成要素は、印刷システム10の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。印刷システム10の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、上記実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。例えば、上記実施形態では、図5に示すように、パルス幅変調部120は、エッジ画素の位置に依存せずに、常に、印字領域が注目画素内の左端側左寄りとなるようにパルス信号を出力している。しかし、本発明は、これに限定されず、エッジ画素の位置に応じて、注目画素内における印字領域をずらすことができる。例えば、パルス幅変調部120は、注目画素の右方向に隣接する画素についてのパルス幅データよりも、当該注目画素の左方向に隣接する画素についてのパルス幅データが大きい場合には、印字領域が注目画素内の左端側左寄りとなるようにパルス信号を出力する。また、パルス幅変調部120は、注目画素の左方向に隣接する画素についてのパルス幅データよりも、当該注目画素の右方向に隣接する画素についてのパルス幅データが大きい場合には、印字領域が注目画素内の右端側右寄りとなるようにパルス信号を出力する。また、パルス幅変調部120は、注目画素の左方向に隣接する画素についてのパルス幅データと、当該注目画素の右方向に隣接する画素についてのパルス幅データが等しい場合には、印字領域が注目画素内の中央位置となるようにパルス信号を出力する。この場合には、図11に示すような出力画像データを得ることができる。従って、常に印字領域が注目画素内の左端側左寄りとなるようにパルス信号を出力する場合と比較して、エッジ部分の画質が向上する。なお、図11は、図3Bのエッジ信号に基づいて得られる出力画像データの一例である。また、上記実施形態では、パルス幅変換部114は、実数データに、所定の範囲Sすなわち、±S/2で一様に拡散させる乱数を加えて、Cビットのパルス幅データを生成している。しかし、本発明は、これに限定されない。例えば、実数データに加える一様乱数の範囲Sを、パルス幅変調部PWM120の分解能Cビット、或いは、パルス幅変換部114から出力するパルス幅データの精度Cビットに応じて可変としてもよい。また、実数データに加える一様乱数の範囲Sを、CMYK画像データの入力階調値に応じて可変としてもよい。この場合、例えば、パルス幅変換部114は、図6に示すように、入力階調値に対する仮のパルス幅の変化量が少ない範囲図示するK1からK2までの範囲の入力階調値であるか、それ以外の範囲図示する0からK1、K2から255の入力階調値であるか、に応じて、実数データに加える一様乱数の範囲Sを異ならせてもよい。このように、実数データに加える一様乱数の範囲Sを可変とすることで、より高精度なすなわち、入力階調値と出力濃度がよりリニアになるパルス幅データを得ることができる、