(57)【要約】【課題】  走査線の副走査方向の位置ずれをデジタル補正する際に発生する段差を滑らかにするスムージング処理を行う際、スムージング実行の可否を画素毎にフラグで制御するような印刷システムがある。  ここで、データ量を削減し処理速度を高めるためフラグを複数画素単位でまとめて扱う手法があるが、複数画素単位よりも小さなオブジェクトのフラグが失われやすく、小さなオブジェクトの画質が低下する可能性があった。【解決手段】  画素毎に割り当てられたフラグを複数画素単位にまとめる際に、小さなオブジェクトのスムージング実行の可否を参照しつつ、小さなオブジェクトのフラグが失われにくいような演算方法を選択する。【選択図】  図１
2010115801.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、前記情報処理装置と接続された印刷装置からなる印刷システムにおいて、
各色の走査線の副走査方向の位置ずれに関わる情報を取得する色ずれ情報取得手段と、
画像データを作成する際、前記色ずれ情報取得手段によって取得した各色の位置ずれを補正するために画像データのライン乗り換えを行う画像補正手段と、
前記画像補正手段によって発生する段差を滑らかにするためのスムージング手段と
を有することを特徴とする印刷システム。
【請求項２】
前記スムージング手段を適用するか否かを示すフラグを画素毎に設定するスムージング実行設定手段を有することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記スムージング実行設定手段で画素毎に設定したフラグを一定単位の画素ごとに丸めることで、一定単位の画素における実行設定を１つのフラグで表せるようにするスムージング実行設定丸め手段を有することを特徴とする請求項２に記載の印刷システム。
【請求項４】
前記スムージング実行設定丸め手段において、一定単位の画素ごとにフラグを丸める際の演算方法を動的に変更する丸め演算制御手段を有することを特徴とする請求項３に記載の印刷システム。
【請求項５】
前記スムージング実行設定手段または前記スムージング実行設定丸め手段で設定されたフラグをもとにスムージング手段の実行を制御するスムージング実行制御手段を有することを特徴とする請求項２〜請求項４のいずれかに記載の印刷システム。
【請求項６】
文字や線のオブジェクト毎に前記スムージング手段適用の有無を定めたスムージング設定テーブルを持ち、前記テーブル及び画素の所属するオブジェクトを参照してフラグの設定を行うスムージング実行設定手段を有することを特徴とする請求項２に記載の印刷システム。
【請求項７】
前記スムージング設定テーブルを複数個持ち、前記複数個のテーブルから１つを選択してフラグの設定を行うスムージング実行設定手段を有することを特徴とする請求項６に記載の印刷システム。
【請求項８】
丸め処理を行う際の演算方法を、丸め処理を行う一定単位の画素数よりも小さいオブジェクトが優先されるよう決定する丸め演算制御手段を有することを特徴とする請求項４に記載の印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、走査線の副走査方向の位置ずれを補正するために印刷データのライン乗り換えを行う際に発生する段差を滑らかにする手段を有するような、情報処理装置とプリンタやデジタル複合機からなる印刷システムに関するものである。
【背景技術】
【０００２】
電子写真方式を用いたカラー画像形成装置として、複数の感光体を用意して各色ごとの画像を順次重ね合わせることで印刷画像を得るようなタンデム方式と呼ばれる印刷方式がある。
【０００３】
この方式は画像形成を１回行うだけで済むためスループットを短縮できるという特徴を持つ反面、各感光体におけるレーザービームの曲がりに起因して、各色の転写紙上での位置ずれによる色ずれという問題が生じる。
【０００４】
色ずれを補正するために、特許文献１に開示されるように、レジストレーション補正用パターン画像を中間転写ベルト上に形成し、それをイメージセンサで読み取る方法が取れている。
【０００５】
読み取りによって得られた各色間のずれ量を、各色の画像形成処理にフィードバックすることで、各色の色ずれを補正する。
【０００６】
他方、例えば特許文献２に開示される技術を応用することで、電子写真系の画像形成装置において、レーザスキャナ調整の工程を削減し、レーザビームの曲がりをデジタル補正することでコストダウンする方法が知られている。
【０００７】
例えば副走査方向のデジタル補正では、予め得られているレーザビームの曲がり量に基づいて、曲がり量が相殺できるようにラインを適宜乗り換えて画像を形成する。
【０００８】
詳しく書くと、例えば主走査位置xに対してレーザビームの曲がり量がf(x)で表されるとき、f(x)を四捨五入した値yの逆数-yをライン乗り換え量とし、ライン乗り換え量が等しい区間xiからxjのデータをすべて-yライン分シフトする。
【０００９】
これをすべての画像領域に適用すれば、レーザビームの曲がりは相殺されて、原画を再現することできる。
【００１０】
上記において、主走査位置xを1画素単位でf(x)を評価していけば、非常に高い精度でデジタル補正することができる。しかし、1画素単位で処理するには、ビット演算が必要なため、すべての画像領域をソフトウェアで処理するには相当の時間を要してしまう。
【００１１】
処理時間を短縮するためには、高価な専用ハードウェアを用意しなければならないこともある。
【００１２】
実際には、主走査位置xに対するレーザビームの曲がりf(x)は非常に小さい場合がほとんどである。
【００１３】
具体的には、光学的に調整されていない600dpiのレーザスキャナユニットであっても、主走査幅がA4短辺の210mmに対して副走査方向の曲がりf(x)は２次曲線に近似でき、その高さが1mm未満の範囲に収まるように生産することが十分可能である。
【００１４】
このような場合、主走査位置xを複数画素単位で扱う方法が有効である。例えば上記具体例ならば、曲がりが最も大きいレーザスキャナユニットであっても、1画素単位と32画素単位とでf(x)を評価したときの副走査方向の誤差は最大0.5ライン程度になる。
【００１５】
この程度の誤差であれば、用紙上に印刷されたとき目視では認識できない範囲に収まる。このように構成すれば、16ビットや32ビット単位の論理演算でデジタル補正ができるので、ソフトウェアの処理時間を低減したり、ハードウェアのコストを削減したりできる。
【００１６】
なお別の方法として、画像を形成する際に乗り換えるのではなく、記憶装置から画像を読み出す際の読み出し位置をずらすことで乗り換える、という方法がある。しかしこれは画像を形成する際に乗り換えることと等価である。
【００１７】
さらに別の技術として、レーザビームの曲がり以外の機構的な傾き分も合わせてデジタル補正する方法がある。
【００１８】
この方法は、レーザビームの曲がりに傾き分を加算するだけで、原理的にはレーザビームの曲がりをデジタル補正する方法と同じである。
【００１９】
それから、別の問題として、デジタル補正のためにライン乗り換えを行うことで、乗り換えの境目に段差ができるため、画像パターンが不連続になるという問題がある。
【００２０】
これを回避するのに、特許文献３や特許文献４で開示されるように、段差にスムージング処理を施すことで滑らかにする方法が提案されている。
【００２１】
しかし、例えばスムージングを実行することで画質が低下してしまう場合など、画像に段差があってもスムージング処理を有効にしたくない場合が有り得る。そこでスムージング処理を行うか否かを画素単位で制御する方法が知られている。
【００２２】
通常、スムージング処理を行うべきか否かは文字や線などのオブジェクトごとによって分かれる。このため、各画素が所属するオブジェクトごとにスムージング処理実行の可否を設定する方法が知られている。
【００２３】
さらに、スムージング処理の実行を１画素単位で制御するには処理時間を要するため、ライン乗り換え処理と同様に、スムージング処理の実行制御を複数画素単位で行う方法が知られている。
【特許文献１】特許登録第２６３３８７７号公報
【特許文献２】特許登録第３３８８１９３号公報
【特許文献３】特開２０００−２５３２３１号公報
【特許文献４】特開２００１−２６０４２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、上記背景技術のように複数画素単位でスムージング処理の実行を制御した場合、１画素単位で制御する場合に比べて細かな制御ができなくなるという問題がある。
【００２５】
例えば、スムージングを行う設定をON（1）、行わない設定をOFF（0）として、各画素のスムージング設定から複数画素単位でのスムージング設定を生成するための演算方法をAND演算にしたとする。
【００２６】
この時、細いラインなどの１画素幅しかないオブジェクトがあり、そのオブジェクトに対するスムージング設定がONであったとすると、細いラインオブジェクトのスムージング設定はAND演算によって失われやすくなる。
【００２７】
（複数画素単位内において、１画素でもOFFがあれば、AND演算の結果がOFFになるため）
このように、スムージング設定と演算方法の組み合わせによっては、小さなオブジェクトに対してスムージングを実行したいのに実行できない、または実行したくないのに実行されるなどして、オブジェクトの画質が低下してしまう可能性がある。
【００２８】
また、大きなオブジェクトの一部に画質低下が発生した場合に比べて、小さなオブジェクトに画質低下が発生した場合の方が目立ちやすい傾向がある。
【００２９】
本発明は、上記問題点に鑑みてなされたものであり、複数画素単位でスムージング処理の実行を制御する際、複数画素単位よりも小さくなるオブジェクトの設定が優先されるように、複数画素単位でのスムージング設定を生成する手段を提供する。
【００３０】
これによって、複数画素単位でスムージング処理の実行を制御することで処理速度の低下を防ぎつつ、小さいオブジェクトの画質低下を抑える印刷システムを実現することを目的とする。
【課題を解決するための手段】
【００３１】
上記目的を達成するために、本発明の印刷システムは以下の構成からなる。すなわち、
情報処理装置と、前記情報処理装置と接続された印刷装置からなる印刷システムにおいて、
各色の走査線の副走査方向の位置ずれに関わる情報を取得する色ずれ情報取得手段と、
画像データを作成する際、前記色ずれ情報取得手段によって取得した各色の位置ずれを補正するために画像データのライン乗り換えを行う画像補正手段と、
前記画像補正手段によって発生する段差を滑らかにするためのスムージング手段と、
を有する。
【００３２】
さらに、前記スムージング手段を適用するか否かを示すフラグを画素毎に設定するスムージング実行設定手段を有する。
【００３３】
さらに、前記スムージング実行設定手段で画素毎に設定したフラグを一定単位の画素ごとに丸めることで、一定単位の画素における実行設定を１つのフラグで表せるようにするスムージング実行設定丸め手段を有する。
【００３４】
さらに、前記スムージング実行設定丸め手段において一定単位の画素ごとにフラグを丸める際の演算方法を動的に変更する丸め演算制御手段を有する。
【００３５】
さらに、前記スムージング実行設定手段または前記スムージング実行設定丸め手段で設定されたフラグをもとにスムージング手段の実行を制御するスムージング実行制御手段を有する。
【００３６】
さらに、文字や線のオブジェクト毎に前記スムージング手段適用の有無を定めたスムージング設定テーブルを持ち、前記テーブル及び画素の所属するオブジェクトを参照してフラグの設定を行うような、スムージング実行設定手段を有する。
【００３７】
さらに、前記スムージング設定テーブルを複数個持ち、前記複数個のテーブルから１つを選択してフラグの設定を行うようなスムージング実行設定手段を有する。
【００３８】
さらに、丸め処理を行う際の演算方法を、丸め処理を行う一定単位の画素数よりも小さいオブジェクトが優先されるよう決定するような、丸め演算制御手段を有する。
【発明の効果】
【００３９】
本発明によれば、色ずれを補正する際に発生する画像の段差を滑らかにするスムージング処理について、処理速度を低下させることなく、スムージング処理の実行を制御する複数画素単位よりも小さいオブジェクトの画質低下を抑えることが可能になる。
【発明を実施するための最良の形態】
【００４０】
次に、本発明の詳細を実施例の記述に従って説明する。
【００４１】
（実施例１）
図１は、本発明の実施例における印刷システムの利用環境を示す概略図である。
【００４２】
図中の10〜12は情報処理装置であり、20は印刷装置である。情報処理装置10はUSBケーブル30を介して印刷装置20と接続され、情報処理装置11〜12はネットワーク40を介して印刷装置20と接続されていることを示している。
【００４３】
図２は、本発明の実施例における情報処理装置10のハードウェア構成を示すブロック図である。なお、情報処理装置11〜12もネットワークを介して印刷装置20と接続されている点以外は等価である。
【００４４】
情報処理装置10は、システム制御部101、ROM102、RAM103、外部記憶装置制御部104、キーボード／マウス制御部105、ディスプレイ制御部106、USB制御部107、ネットワーク制御部108、外部記憶装置120から構成される。
【００４５】
また、入出力機器としてキーボード／マウス130とディスプレイ140を持つ。
【００４６】
システム制御部101はCPUなどの処理装置であって、情報処理装置が行う各種処理を実行している。
【００４７】
ROM102は不揮発性記憶装置であって、情報処理装置の各種制御プログラムや初期設定値が格納されている。
【００４８】
RAM103は揮発性記憶装置であって、情報処理装置が行う各種処理のワークエリアとして使用される。本実施例においては、情報処理装置10が持つソフトウェアは、このRAM103に格納されて実行される。
【００４９】
外部記憶装置制御部104は、ハードディスクやフレキシブルディスク、CDやDVDなどの外部記憶装置120に対する入出力などの制御を行っている。本実施例においては、情報処理装置10が持つソフトウェアは、外部記憶装置に記録され必要に応じてRAM103に格納される。
【００５０】
キーボード／マウス制御部105は、情報処理装置10に接続されたキーボード／マウス130からの入力を監視して、入力情報をシステム制御部101に通知している。
【００５１】
ディスプレイ制御部106は、システム制御部101からの制御に従いディスプレイ140の出力を制御している。
【００５２】
USB制御部107はUSBコネクタとその制御装置であり、システム制御部101からの制御に従い、USBケーブル30を介しての外部との入出力の制御を行っている。
【００５３】
ネットワーク制御部108はネットワークコネクタとその制御装置であり、システム制御部101からの制御に従い、ネットワーク40を介しての外部との入出力の制御を行っている。
【００５４】
図３は、本発明の実施例における印刷装置20のハードウェア構成を示すブロック図である。
【００５５】
印刷装置20は、システム制御部201、ROM202、RAM203、画像処理部204、操作部205、表示部206、USB制御部207、ネットワーク制御部208、エンジン部209から構成される。
【００５６】
システム制御部201はCPUなどの処理装置であって、印刷装置が行う各種処理を実行する機能を持つ。またエンジン部209とのシリアル通信装置を持つ。
【００５７】
ROM202は不揮発性記憶装置であって、印刷装置の各種制御プログラムや初期設定値が格納されている。
【００５８】
RAM203は揮発性記憶装置であって、印刷装置が行う各種処理のワークエリアとして使用される。
【００５９】
画像処理部204はASICなどの集積回路であって、システム制御部201の制御に従って各種画像処理を行う。また、画像処理部204は請求項１に記載したスムージング手段と、請求項５に記載したスムージング実行制御手段を持つ。詳細は後述する。
【００６０】
操作部205はボタン等の入力装置であり、システム制御部201は常に入力の状態を監視している。
【００６１】
表示部206はLED等の表示装置であり、システム制御部201の制御に従い表示を行っている。
【００６２】
USB制御部207はUSBコネクタとその制御装置であり、システム制御部201からの制御に従い、USBケーブル30を介しての外部との入出力の制御を行っている。
【００６３】
ネットワーク制御部208はネットワークコネクタとその制御装置であり、システム制御部201からの制御に従い、ネットワーク40を介しての外部との入出力の制御を行っている。
【００６４】
エンジン部209は、紙搬送系やレーザビーム制御系、定着器系などの実際に用紙に画像を印字するための装置や、印字制御を行うための記憶装置及び制御装置、システム制御部201と通信するためのシリアル通信装置などを持つ。
【００６５】
また、各色の走査線の副走査方向の位置ずれ量を測定する装置を持つ。
【００６６】
図４は、本発明の実施例におけるソフトウェアの構成を示すブロック図である。
【００６７】
情報処理装置10は、アプリケーション301、ドライバ302、レンダラ303、ランゲージモニタ304、USBポートモニタ305、ネットワークポートモニタ306から構成される。
【００６８】
これらのソフトウェアは、いずれも外部記憶装置制御部104に記録され、必要に応じてRAM103に格納されシステム制御部201により実行される。
【００６９】
アプリケーション301は、ユーザが使用するアプリケーションである。ユーザはアプリケーションより印刷の指示を行う。
【００７０】
ドライバ302は、アプリケーション301からの印刷指示を受けて印刷データを生成する。
【００７１】
またドライバ302は、印刷データの生成を行う前に、印刷に必要な各種情報の取得を行う。
【００７２】
詳細には、例えばドライバ302は用紙サイズや給紙口などの印刷に関わる情報を設定するためのUI画面を持ち、ユーザからの入力に応じて設定情報を変更している。
【００７３】
さらにドライバ302はUI画面よりスムージング設定テーブルの内いずれを用いるかを設定することができる。これについては詳細は後述する。
【００７４】
またランゲージモニタ304を介して、例えば副走査方向の位置ずれ量などの印刷に必要な情報を印刷装置20より取得している。
【００７５】
さらに、ドライバ302は取得した位置ずれ量をもとに画像データのライン乗り換えなどの処理を行っている。これらの詳細については後述する。
【００７６】
レンダラ303は、ドライバ302が印刷データを生成する過程で呼び出され、ドライバ302の指示に従いビットマップデータとスムージングを適用するか否を示すフラグ（以下、補間フラグ）を生成し、ドライバ302に引き渡す。これらについても詳細は後述する。
【００７７】
ランゲージモニタ304は、コントローラ制御部311と双方向通信を行うことで、印刷装置20の状態監視や、印刷動作の制御を行っている。
【００７８】
USBポートモニタ305はUSB制御部107の制御を行っており、USBケーブル30を介したランゲージモニタ304と印刷装置20の間の通信を実現している。
【００７９】
ネットワークポートモニタ306はネットワーク制御部108の制御を行っており、ネットワーク40を介したランゲージモニタ304と印刷装置20の間の通信を実現している。
【００８０】
印刷装置20は、コントローラ制御部311、エンジン制御部312から構成される。
【００８１】
コントローラ制御部311はROM202に記録され、必要に応じてRAM203に格納されシステム制御部201により実行される。エンジン制御部312はエンジン部209内の記憶装置に格納され、エンジン部209内の制御装置により実行される。
【００８２】
また、コントローラ制御部311は、情報処理装置10から送信された印刷データに基づいた印刷実行の制御を行っている。
【００８３】
さらに、USB制御部207を介して情報処理装置10との通信を行っている。なお情報処理装置11や情報処理装置12のようにネットワーク経由で接続された情報処理装置に対してやネットワーク制御部208を介して通信を行っている。
【００８４】
その他にも、コントローラ制御部311は、エンジン制御部312と通信することでエンジン部209に対する印刷データの送信や各種命令、情報の取得などを行っている。
【００８５】
エンジン制御部312は、受信した印刷データをもとに画像の形成を行う。また副走査方向の位置ずれ量などのエンジン部209の各種状態を示す値の取得・保持や、エンジン部209の各種制御を行う。
【００８６】
図５は、図４記載のアプリケーション301による印刷に対する、図４記載の各ブロックとそれぞれの処理との関係を示した図である。なお図中の処理は上から順に実行されている。
【００８７】
コントローラ制御部311は、エンジン制御部312よりあるタイミングで測定された曲がり・傾きによる各色の走査線の副走査方向の位置ずれ量（以降、曲がり・傾き情報と記載）を取得して、RAM203に格納する。
【００８８】
これは請求項１記載の色ずれ情報取得手段に該当する。
【００８９】
ランゲージモニタ304は定期的にコントローラ制御部311と通信しており、コントローラ制御部311が曲がり・傾き情報を取得したことを検知して、曲がり・傾き情報をコントローラ制御部311より取得しRAM103に格納する。
【００９０】
アプリケーション301を使ってユーザが印刷を実行すると、RAM103にドライバ302がロードされ、アプリケーション3０１からドライバ302へ印刷要求が送られる。
【００９１】
またユーザは、印刷を実行する際にドライバ302を呼び出して、複数個あるスムージング設定テーブルの内どれを用いるかを設定することができる。
【００９２】
スムージング設定テーブルは文字や線、自然画などのオブジェクト毎にスムージングを適用するか否かを定めた、ドライバ302が持つテーブルである。本実施例では図９，図１０に示すように２パターンのテーブルを持つものとする。
【００９３】
ドライバ302は印刷要求を受けて、ユーザが設定したスムージング設定テーブルを取得する。さらにランゲージモニタ304より曲がり・傾き情報を取得する。
【００９４】
ここで、本実施例におけるレーザビームの曲がり及び機構的な傾きは、上記曲がり・傾き情報から２次曲線(f(x)=ax2+bx+c)にフィッティングできるものとする。
【００９５】
ドライバ302は、取得した曲がり・傾き情報から上記２次曲線を求め、続いて直線近似を行う。本実施例では、直線近似処理への入力として画素単位32を与えるものとする。なお、直線近似の詳細については後述する。
【００９６】
その後、ドライバ302はスムージング設定テーブルをレンダラ303に転送する。
【００９７】
レンダラ303は、レンダリングを行いビットマップ形式の画像データを生成する。
【００９８】
また、レンダラ303は印刷画像における各オブジェクトの識別を行っており、識別した各オブジェクトに対してスムージング設定テーブルの設定値を適用することで各画素に対する補間フラグを生成する。
【００９９】
これは請求項２、及び請求項６、請求項７記載のスムージング実行設定手段に該当する。
【０１００】
なお、本実施例においてオブジェクトとは、ビットマップデータ上に配置されるべき物体であり、例えば細い線や太い線、ベタ塗りや自然画、繰り返しのパターンなどに分類される。
【０１０１】
オブジェクト識別方法の詳細や補間フラグ以外への利用方法については、本発明の本質とは関係が薄いので、詳細な説明は割愛する。
【０１０２】
また本実施例では、補間フラグはビットマップ形式のデータとして生成される。データは１画素が4bitであり、各bitがCMYKそれぞれの補間フラグとなっている。なお、モノクロ印刷の場合はCMYのフラグは常に0がセットされている。
【０１０３】
レンダラ303は画像データと補間フラグをドライバ302に転送する。
【０１０４】
ドライバ302は、受け取った補間フラグをCMYK別に分割して1画素1bitのデータ4つに分ける。
【０１０５】
そして、データ量を少なくし処理速度を高めるために、1画素単位で設定されている補間フラグを複数画素単位に変換する処理（以降、補間フラグ間引き処理と呼ぶ）を行う。詳細は後述する。
【０１０６】
補間フラグ間引き処理は請求項３記載のスムージング実行設定丸め手段に該当する。
【０１０７】
なお、本実施例では補間フラグ間引き処理への入力として画素単位8を与えている。
【０１０８】
さらにドライバ302は、直線近似の結果に基づいて副走査方向の乗り換え処理を行う。
【０１０９】
乗り換え処理は請求項１記載の画像補正手段に該当する。
【０１１０】
乗り換え処理はサブルーチンであり、レンダリングした画像データの乗り換えと、補間フラグの乗り換えとで2回呼び出されることになる。乗り換えの詳細は後述する。
【０１１１】
なお、本実施例では画像データの乗り換え処理では入力として画素単位32を与え、補間フラグの乗り換え処理では入力として画素単位4を与える。
【０１１２】
また、画素単位8で間引き処理を行っているため、画像データに対して補間フラグは画像幅が8分の1になっている。
【０１１３】
副走査方向の乗り換えを完了した画像データと補間フラグは、ドライバ302からランゲージモニタ304を介してコントローラ制御部311に転送される。
【０１１４】
コントローラ制御部311では、画像処理部204により段差を滑らかにするためのスムージング処理（以降、補間処理と呼ぶ）が実行される。補間処理の詳細は後述する。
【０１１５】
補間処理は、請求項１記載のスムージング手段に該当する。
【０１１６】
さらにコントローラ制御部311は、補間処理を完了した画像データをエンジン制御部312に転送する。
【０１１７】
最後にエンジン制御部312は、乗り換え処理と補間処理が行われた画像データを用いて画像を形成する。
【０１１８】
図６は、図５記載の直線近似の処理を詳細に示したフローチャートである。
【０１１９】
直線近似の処理はサブルーチンで、呼び出し側から画素単位wをパラメータとして受け取る構成である。
【０１２０】
まず、ステップS6-001において、主走査方向の位置xと配列のインデックスiを初期化する。
【０１２１】
以下、ステップS6-002において、図５記載のフィッティングで得られた２次曲線f()に対してx-中央位置を与え、その四捨五入値を配列y[i]に代入する。
【０１２２】
また、ステップS6-003において、主走査方向の位置xを画素単位wだけ進め、また、配列のインデックスiをインクリメントする。
【０１２３】
ステップS6-004では、xが画像幅を超えたか否かを判定する。まだ画像幅に達していなければ、ステップS6-002を繰り返す。
【０１２４】
もし画像幅に達しているならば、ステップS6-005に進み、画像末尾の直線近似を行う。
【０１２５】
最後にステップS6-006で、後段の副走査方向の乗り換え処理に、配列y[]を渡す準備をして、直線近似の処理を終了する。
【０１２６】
また、図１１は、図５記載の直線近似の例を示す図である。
【０１２７】
例えば処理単位が32であれば、図６のフローチャートの処理を用いて、図中に示すように曲がり・傾きは直線近似される。
【０１２８】
すなわち、図の中央より左側は-1に近似され、右側は0に近似される。
【０１２９】
図７は、図５記載の補間フラグの間引き処理を詳細に示したフローチャートである。
【０１３０】
補間フラグの間引き処理はサブルーチンで、呼び出し側から画素単位wをパラメータとして受け取る構成である。
【０１３１】
ステップS7-001では、ユーザが選択したスムージング設定テーブルを参照して優先すべきオブジェクトを決定する。
【０１３２】
優先すべきオブジェクトは、画素単位ｗよりも小さくなりうるオブジェクトの中で、もっとも小さくなる頻度が高いものである。
【０１３３】
本実施例においては、図９，図１０記載のオブジェクトにおける「小文字・細いライン」が最も小さくなる頻度が高いオブジェクトとなる。
【０１３４】
よって、ステップS7-001では優先すべきオブジェクトとして小文字・細いラインが選択される。
【０１３５】
次に、ステップS7-002において、画像内に優先すべきオブジェクトが存在するかを確認する。例えば一面べた塗りの画像であれば、そこには小文字・細いラインは存在しないことになる。
【０１３６】
もし優先すべきオブジェクトが存在すればステップS7-003へ進み、存在しなければステップS7-004へ進む。
【０１３７】
ステップS7-003では、スムージング設定テーブルを参照し優先すべきオブジェクトの信号値がONかOFFかを確認する。ONであればステップS7-005へ、OFFであればステップS-006へ進む。
【０１３８】
ステップS7-004では、補間フラグの間引き演算に用いる演算方法をデフォルトに設定する。本実施例ではOR演算がデフォルトとなる。その後、ステップS7-007へ進む。
【０１３９】
ステップS7-005では、補間フラグの間引き演算に用いる演算方法をORに設定する。その後、ステップS7-007へ進む。
【０１４０】
ステップS7-006では、補間フラグの間引き演算に用いる演算方法をANDに設定する。その後、ステップS7-007へ進む。
【０１４１】
ステップS7-007では、補間フラグの間引き演算を行う。srcから処理単位ｆ分の各画素のフラグを、ステップS7-004〜006で設定した演算方法に従い1つのフラグに丸めてdstに設定する。
【０１４２】
例えば、優先オブジェクトである小文字・細いラインの信号値がONであり、ステップS7-005で演算方法をORに設定した場合であれば、本実施例では画素単位ｗが4なので、4画素分の補間フラグのORを取ることになる。
【０１４３】
つまり、仮にsrcから4画素分の補間フラグが0010であった場合、各画素のORを取るので演算結果は1となるので、dstには1を設定する。
【０１４４】
dstへの値のセットを終えたら、ステップS7-008へ進む。
【０１４５】
ステップS7-008では、srcの位置をw進め、dstをインクリメントする。
【０１４６】
ステップS7-009では、src+wが画像幅より小さいか否かを確認する。小さいならステップS7-007に戻る。画像幅以上ならステップS7-010へ進む。
【０１４７】
ステップS7-010では、srcの端数についてステップS7-004〜006で設定した演算方法に従い1つのフラグに丸めてdstに設定する。
【０１４８】
この時、端数の画素数がｗに足らない場合は0があるものとする。例えば端数が2画素で値が10の場合、足りない２画素分に0を補うので、1000に対して演算を行うことになる。
【０１４９】
以上より、srcの１ライン分の処理を終了する。
【０１５０】
図５記載の補間フラグの間引き処理においては、すべてのsrcラインを処理するように、図７記載の処理を繰り返し実行する。
【０１５１】
なお、本フローチャートで示した通り条件に応じてステップS7-004〜006の演算方法を選択する処理が、請求項４記載の丸め演算制御手段に該当する。
【０１５２】
図８は、図５記載の副走査方向の乗り換え処理を詳細に示したフローチャートである。
【０１５３】
乗り換えの処理はサブルーチンで、呼び出し側から画素単位wをパラメータとして受け取る構成である。
【０１５４】
まず、ステップS8-001において、画素単位wと、１画素当たりのビット数depthとから、srcおよびdstの処理単位を決定する。
【０１５５】
例えば、w=32, depth=2であれば、処理単位は8バイトになる。
【０１５６】
なお、補間フラグの1画素当たりのビット数depthは常に1である。
【０１５７】
次に、ステップS8-002において、主走査方向の位置xと配列のインデックスiを初期化する。
【０１５８】
以下、ステップS8-003では、srcの位置に対して、主走査方向には同じ位置であって、かつ、副走査方向に-y[i]ラインだけずれた位置にdstを設定する。
【０１５９】
続いて、ステップS8-004では、srcの位置の内容をdstの位置に処理単位分コピーする。処理単位に応じて、一度に扱うデータサイズを適宜調整し、可能な限り早くコピーできるように構成することが望ましい。
【０１６０】
また、ステップS8-005において、主走査方向の位置xを画素単位wだけ進め、また、配列のインデックスiをインクリメントする。
【０１６１】
ステップS8-006では、xが画像幅を超えたか否かを判定する。まだ画像幅に達していなければ、ステップS8-003を繰り返す。
【０１６２】
もし画像幅に達しているならば、ステップS8-007に進み、ステップS8-003と同様にsrcの位置に対してdstの位置を設定する。
【０１６３】
さらに、ステップS8-008において、端数のコピーを行い、副走査方向のsrcの1ライン分の乗り換え処理を終了する。
【０１６４】
図５記載の副走査方向の画像データ及び補間フラグの乗り換え処理においては、すべてのsrcラインを処理するように、図８記載の処理を繰り返し実行する。
【０１６５】
図１２は、図１１の例をもとに図５記載の乗り換えの例を示す図である。
【０１６６】
例えば直線近似の結果が図１１で示す通りであれば、図８のフローチャートの処理を用いて、図中に示すようにラインの乗り換えが行われる。
【０１６７】
すなわち、中央より左側の画素は+1され、右側の画素は+0される。ここで、左側が+1されるのは直線近似された結果が-1であり、ステップS8-003に記載した通り、乗り換え処理では直線近似結果とは逆方向にラインをずらすためである。
【０１６８】
図９と図１０は、前述の通り、オブジェクト毎にスムージングを適用するか否かを定めたテーブルである。
【０１６９】
より詳細には、図９は、本実施例におけるデフォルトのスムージング設定テーブルを示す表である。ユーザが意図的にテーブルを設定しない場合、図９のテーブルが使用される。
【０１７０】
図１０は、本実施例におけるデフォルトではないスムージング設定テーブルを示す表である。
【０１７１】
図９と図１０は、オブジェクトと信号値から成り、各オブジェクトについて、レンダラ303が補間フラグとして信号値の値をセットすることを示している。ここで、信号値ON(=1)は補間処理を行うことを示し、OFF(=0)は行わないことを示す。
【０１７２】
各オブジェクトの詳細や、オブジェクトの識別方法については、前述の通り本発明の本質とは関係が薄いため割愛する。
【０１７３】
図１３は、図１２の例をもとに図５記載の補間処理の例を示す図である。
【０１７４】
本実施例における補間処理は、例えば乗り換え処理を行った結果が図１２で示すとおりであるなら、補間処理後の画像は図１３の補間処理後（補間ON）または補間処理後（補間ON）で示す通りになる。
【０１７５】
詳細には、本実施例における補間処理は、まず補間ON/OFFに関わらず、ラインの乗り換え位置から次の乗り換え位置までを１区間として扱う。
【０１７６】
そして、１区間における左右端の画素幅を半分にして形成する。（区間内における画素数の合計は、1画素減って0.5画素が2つ増えたことになるので変化しない）
その上で各画素に該当する補間フラグを参照し、OFFであるならばそれ以上何もすることなく、画像形成処理へと移行する。
【０１７７】
ONである場合は、図１３の補間処理後（補間ON）で示す通り、徐々に画素の大きさを変えていくことで乗り換えによる段差が滑らかになるようにしている。
【０１７８】
ここで、補間フラグを参照してスムージング設定を行う／行わないを切り替える処理が、請求項５記載のスムージング実行制御手段に該当する。
【０１７９】
具体的には、乗り換え後の画像におけるi-1ライン目とiライン目を足し合わせることで補間処理後の画像のiライン目を作成する。
【０１８０】
この時、画素の位置に応じて足し合わせる割合を変更していくことで、補間処理後の画像において、徐々に画素の大きさを変えていくという処理を実現している。
【０１８１】
より詳細な説明については、本発明の本質とは関連が薄いため割愛する。
【０１８２】
図１４は、図１３の例をもとに本実施例における印刷画像の例を示す図である。
【０１８３】
詳細には、まず図１３の補間処理後のデータを実際に印字した場合、図１１の曲がり・傾きにそって画像が形成されるため、印刷画像は図１４で示すように傾いて形成される。
【０１８４】
結果、図１４で示すような印刷画像となる。
【０１８５】
（その他の実施例）
本発明の本質は、補間処理の実行／非実行を画素毎にフラグを割り当てて制御する場合において、フラグを丸めてデータを軽量化しつつ小さなオブジェクトの画質が低下することを防ぐ点にある。
【０１８６】
よって、実施例で示した以外の補間処理であっても、補間処理が画素毎に補間フラグを割り当てることで補間処理の実行／非実行を制御するものであれば、本発明は適応可能である。
【０１８７】
また、実施例では情報処理装置10と印刷装置20を組み合わせた印刷システムを例としたが、本発明はネットワーク40経由で印刷装置20と接続された情報処理装置11や情報処理装置12と印刷装置20を組み合わせた印刷システムにも適用可能である。
【０１８８】
また、実施例では補間フラグ生成や補間フラグ間引き処理や乗り換え処理を情報処理装置10で実行していた。
【０１８９】
しかし、ドライバ302とレンダラ303と同等の機能を持つモジュールが印刷装置20内にあれば、印刷装置20内で実行することも可能である。
【図面の簡単な説明】
【０１９０】
【図１】本発明の実施例における印刷システムの利用環境を示す概略図である。
【図２】本発明の実施例における情報処理装置10のハードウェア構成を示すブロック図である。
【図３】本発明の実施例における印刷装置20のハードウェア構成を示すブロック図である。
【図４】本発明の実施例におけるソフトウェアの構成を示すブロック図である。
【図５】図４記載のアプリケーション301による印刷に対する、図４記載の各ブロックとそれぞれの処理との関係を示した図である。
【図６】図５記載の直線近似の処理を詳細に示したフローチャートである。
【図７】図５記載の補間フラグ間引き処理の詳細を示したフローチャートである。
【図８】図５記載の乗り換えの処理を詳細に示したフローチャートである。
【図９】本発明の実施例におけるデフォルトのスムージング設定テーブルを示す表である。
【図１０】本発明の実施例におけるデフォルトではないスムージング設定テーブルを示す表である。
【図１１】図５記載の直線近似の例を示す図である。
【図１２】図１１の例をもとに図５記載の乗り換え処理の例を示す図である。
【図１３】図１２の例をもとに図５記載の補間処理の例を示す図である。
【図１４】図１３の例をもとに本実施例における印刷画像の例を示す図である。
【符号の説明】
【０１９１】
10  情報処理装置
11  情報処理装置
12  情報処理装置
20  印刷装置
30  USBケーブル
40  ネットワーク
101  システム制御部
102  ROM
103  RAM
104  外部記憶装置制御部
105  キーボード／マウス制御部
106  ディスプレイ制御部
107  USB制御部
108  ネットワーク制御部
120  外部記憶装置
130  キーボード／マウス
140  ディスプレイ
201  システム制御部
202  ROM
203  RAM
204  画像処理部
205  操作部
206  表示部
207  USB制御部
208  ネットワーク制御部
209  エンジン部
301  アプリケーション
302  ドライバ
303  レンダラ
304  ランゲージモニタ
305  USBポートモニタ
306  ネットワークポートモニタ
311  コントローラ制御部
312  エンジン制御部
【図１】
2010115801.tif 000003
【図２】
2010115801.tif 000004
【図３】
2010115801.tif 000005
【図４】
2010115801.tif 000006
【図５】
2010115801.tif 000007
【図６】
2010115801.tif 000008
【図７】
2010115801.tif 000009
【図８】
2010115801.tif 000010
【図９】
2010115801.tif 000011
【図１０】
2010115801.tif 000012
【図１１】
2010115801.tif 000013
【図１２】
2010115801.tif 000014
【図１３】
2010115801.tif 000015
【図１４】
2010115801.tif 000016