(57)【特許請求の範囲】
【請求項１】
画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列内の基準位置及び当該基準位置からの長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部と、
前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部と、
を含み、
前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第２方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる走査線の前記第２方向に沿った座標をｓ(但しｓの初期値は０)としたときに、座標ｓがｓ％ｎ≠０(但しｓ％ｎはｓ÷ｎの剰余)を満たす走査線上の個々の前記特定画素の情報を、座標ｓがｓ−ｓ％ｎの走査線上でかつ前記第１方向の位置が等しい前記第１画素の情報に各々重畳する画像処理装置。
【請求項２】
画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列内の基準位置及び当該基準位置からの長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部と、
前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部と、
を含み、
前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第１方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる個々の走査線上での前記画素列情報が表す前記画素列の始点画素の座標をｘｌ、前記画素列の終点画素の次の画素の座標をｘｒ(但しｘｌ,ｘｒの初期値は０)としたときに、座標ｘｌがｘｌ％ｎ≠０(但しｘｌ％ｎはｘｌ÷ｎの剰余)を満たす始点画素の座標ｘｌをｘｌ＝ｘｌ−ｘｌ％ｎに変更し、かつ、座標ｘｒがｘｒ％ｎ≠０を満たす終点画素の次の画素の座標ｘｒをｘｒ＝ｘｒ＋ｎ−ｘｒ％ｎに変更することで、個々の前記走査線上の前記特定画素の情報を前記第２画素の情報に重畳する画像処理装置。
【請求項３】
前記中間データは、前記画像に含まれる画像要素を、当該画像要素に含まれる画素を特定するための画素特定情報と、前記画像要素に含まれる画素の色を表す色情報を含み、前記前処理部は前記画素特定情報に含まれる前記画素列情報に対して前記前処理を行い、前記色情報を変更せずに保存する請求項１又は請求項２記載の画像処理装置。
【請求項４】
前記画素特定情報には、対応する画像要素の描画領域の範囲を表す描画領域情報が含まれ、前記前処理部は前記前処理に伴って対応する画像要素の描画領域の範囲が変更されるように前記描画領域情報を変更する請求項３記載の画像処理装置。
【請求項５】
前記中間データは、前記画像にテキストを含む第１の属性群の画像要素が含まれる場合に、当該第１の属性群の画像要素を前記画素列情報を含む第１情報で表し、前記画像に多階調のカラー画像を含む第２の属性群の画像要素が含まれる場合に、当該第２の属性群の画像要素をビットマップ形式の第２情報で表す情報であり、
前記前処理部は、前記中間データに前記第１情報が含まれ、かつ前記解像度変換部が前記解像度変換処理を行う場合に、前記第１情報に含まれる前記画素列情報に対して前記前処理を行い、前記中間データに第２情報が含まれ、かつ前記解像度変換部が解像度を１／ｎに低下させる前記解像度変換処理を行う場合に、前記第２情報に対し、前記第２情報が表す画像要素の画素数をｎの整数倍に揃える処理を行う請求項１乃至請求項４の何れか１項記載の画像処理装置。
【請求項６】
コンピュータを、
画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列の一端の位置及び長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部、
及び、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部
として機能させるための画像処理プログラムであって、
前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第２方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる走査線の前記第２方向に沿った座標をｓ(但しｓの初期値は０)としたときに、座標ｓがｓ％ｎ≠０(但しｓ％ｎはｓ÷ｎの剰余)を満たす走査線上の個々の前記特定画素の情報を、座標ｓがｓ−ｓ％ｎの走査線上でかつ前記第１方向の位置が等しい前記第１画素の情報に各々重畳する画像処理プログラム。
【請求項７】
コンピュータを、
画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列の一端の位置及び長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部、
及び、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部
として機能させるための画像処理プログラムであって、
前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第１方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる個々の走査線上での前記画素列情報が表す前記画素列の始点画素の座標をｘｌ、前記画素列の終点画素の次の画素の座標をｘｒ(但しｘｌ,ｘｒの初期値は０)としたときに、座標ｘｌがｘｌ％ｎ≠０(但しｘｌ％ｎはｘｌ÷ｎの剰余)を満たす始点画素の座標ｘｌをｘｌ＝ｘｌ−ｘｌ％ｎに変更し、かつ、座標ｘｒがｘｒ％ｎ≠０を満たす終点画素の次の画素の座標ｘｒをｘｒ＝ｘｒ＋ｎ−ｘｒ％ｎに変更することで、個々の前記走査線上の前記特定画素の情報を前記第２画素の情報に重畳する画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ラスタライズ処理時の解像度が標準解像度と相違している場合に画像データの解像度を標準解像度に変換し、標準解像度の画像データに対して細線化処理を行うことで、細線化処理後のオブジェクトの画像の太さが、ラスタライズ処理時の解像度によってばらつくことを抑制する技術が開示されている。
【０００３】
また、特許文献２には、ビットマップ形式の画像データが表す画像を縮小するにあたり、縮小する画像の色と属性を判断し、属性毎に縮小処理を行い、属性毎に縮小処理を行った結果をマージすると共に、白色かつ細線、SmallTextやTextの場合は白色部分を太らせて強調する画像処理方法を行うことで、画像を縮小する際に描画が欠けたり白色オブジェクトが欠けることを抑制する技術が開示されている。
【０００４】
更に、特許文献３には、ビットマップの画像データが表す画像を縮小するにあたり、縮小するオブジェクト毎に属性を判断し、オブジェクトの属性毎に最適な間引き処理(縮小処理)を行い、オブジェクトの属性毎に縮小処理を行った結果をマージすることで、SmallTextや細線の描画が欠けることを抑制する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７１４２４号公報
【特許文献２】特開２００９−２３２３６９号公報
【特許文献３】特開２０１０−１２４２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像データの解像度を低下させる解像度変換処理を行った場合、この解像度変換処理により画像中の一部の画素が間引かれることで、画像中に存在する細線(例えば１画素幅の線)や微小なドット(例えば１画素のドット)等が画像から消失してしまうことがある。従来技術はビットマップ形式の画像データを処理するため、これらの技術をソフトウェアによって実行しようとすると、例えばバイトデータのビット操作のようなビット処理を必要とすることから、ＣＰＵなどの演算器に処理負荷がかかってしまう。
【０００７】
本発明は、解像度変換処理に伴う細線や微小ドットの消失を抑制する処理をビットマップ形式の画像データに適用してソフトウェア処理する場合と比較して、前記処理の処理負荷を軽減できる画像処理装置及び画像処理プログラムを得ることが目的である。
【課題を解決するための手段】
【０００８】
請求項１記載の発明に係る画像処理装置は、画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列内の基準位置及び当該基準位置からの長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部と、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部と、を含み、前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第２方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる走査線の前記第２方向に沿った座標をｓ(但しｓの初期値は０)としたときに、座標ｓがｓ％ｎ≠０(但しｓ％ｎはｓ÷ｎの剰余)を満たす走査線上の個々の前記特定画素の情報を、座標ｓがｓ−ｓ％ｎの走査線上でかつ前記第１方向の位置が等しい前記第１画素の情報に各々重畳する。
【０００９】
請求項２記載の発明に係る画像処理装置は、画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列内の基準位置及び当該基準位置からの長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部と、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部と、を含み、前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第１方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる個々の走査線上での前記画素列情報が表す前記画素列の始点画素の座標をｘｌ、前記画素列の終点画素の次の画素の座標をｘｒ(但しｘｌ,ｘｒの初期値は０)としたときに、座標ｘｌがｘｌ％ｎ≠０(但しｘｌ％ｎはｘｌ÷ｎの剰余)を満たす始点画素の座標ｘｌをｘｌ＝ｘｌ−ｘｌ％ｎに変更し、かつ、座標ｘｒがｘｒ％ｎ≠０を満たす終点画素の次の画素の座標ｘｒをｘｒ＝ｘｒ＋ｎ−ｘｒ％ｎに変更することで、個々の前記走査線上の前記特定画素の情報を前記第２画素の情報に重畳する。
【００１０】
請求項３記載の発明は、請求項１又は請求項２記載の発明において、前記中間データは、前記画像に含まれる画像要素を、当該画像要素に含まれる画素を特定するための画素特定情報と、前記画像要素に含まれる画素の色を表す色情報を含み、前記前処理部は前記画素特定情報に含まれる前記画素列情報に対して前記前処理を行い、前記色情報を変更せずに保存する。
【００１１】
請求項４記載の発明は、請求項３記載の発明において、前記画素特定情報には、対応する画像要素の描画領域の範囲を表す描画領域情報が含まれ、前記前処理部は前記前処理に伴って対応する画像要素の描画領域の範囲が変更されるように前記描画領域情報を変更する。
【００１２】
請求項５記載の発明は、請求項１乃至請求項４の何れか１項記載の発明において、前記中間データは、前記画像にテキストを含む第１の属性群の画像要素が含まれる場合に、当該第１の属性群の画像要素を前記画素列情報を含む第１情報で表し、前記画像に多階調のカラー画像を含む第２の属性群の画像要素が含まれる場合に、当該第２の属性群の画像要素をビットマップ形式の第２情報で表す情報であり、前記前処理部は、前記中間データに前記第１情報が含まれ、かつ前記解像度変換部が前記解像度変換処理を行う場合に、前記第１情報に含まれる前記画素列情報に対して前記前処理を行い、前記中間データに第２情報が含まれ、かつ前記解像度変換部が解像度を１／ｎに低下させる前記解像度変換処理を行う場合に、前記第２情報に対し、前記第２情報が表す画像要素の画素数をｎの整数倍に揃える処理を行う。
【００１３】
請求項６記載の発明に係る画像処理プログラムは、コンピュータを、画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列の一端の位置及び長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部、及び、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部として機能させるための画像処理プログラムであって、前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第２方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる走査線の前記第２方向に沿った座標をｓ(但しｓの初期値は０)としたときに、座標ｓがｓ％ｎ≠０(但しｓ％ｎはｓ÷ｎの剰余)を満たす走査線上の個々の前記特定画素の情報を、座標ｓがｓ−ｓ％ｎの走査線上でかつ前記第１方向の位置が等しい前記第１画素の情報に各々重畳する。
【００１４】
請求項７記載の発明に係る画像処理プログラムは、コンピュータを、画像をページ記述言語で記述する印刷データから生成され、前記画像に含まれる第１方向に沿った画素列を当該画素列の両端の位置で表すかまたは前記画素列の一端の位置及び長さで表す画素列情報を含み、前記画像の印刷に際してビットマップ形式の画像データへ変換される中間データに対し、当該中間データが表す画像の一部の画素を間引いて解像度を低下させる解像度変換処理を行う解像度変換部、及び、前記解像度変換処理が行われる前の前記中間データに含まれる前記画素列情報に対し、前記解像度変換処理で間引かれる特定画素の情報を、前記解像度変換処理で間引かれない画素の情報に重畳する前処理を行う前処理部として機能させるための画像処理プログラムであって、前記前処理部は、前記特定画素の情報を、前記特定画素と前記第１方向に沿った位置が等しく前記第１方向と交差する第２方向に沿った位置が相違する第１画素の情報に重畳すると共に、前記特定画素と前記第１方向に沿った位置が相違し前記第２方向に沿った位置が等しい第２画素の情報に重畳し、前記解像度変換部が前記第１方向の解像度を１／ｎに低下させる解像度変換処理を行う場合に、前記第１方向に延びる個々の走査線上での前記画素列情報が表す前記画素列の始点画素の座標をｘｌ、前記画素列の終点画素の次の画素の座標をｘｒ(但しｘｌ,ｘｒの初期値は０)としたときに、座標ｘｌがｘｌ％ｎ≠０(但しｘｌ％ｎはｘｌ÷ｎの剰余)を満たす始点画素の座標ｘｌをｘｌ＝ｘｌ−ｘｌ％ｎに変更し、かつ、座標ｘｒがｘｒ％ｎ≠０を満たす終点画素の次の画素の座標ｘｒをｘｒ＝ｘｒ＋ｎ−ｘｒ％ｎに変更することで、個々の前記走査線上の前記特定画素の情報を前記第２画素の情報に重畳する。
【発明の効果】
【００１８】
請求項１，６記載の発明は、第２方向の解像度変換倍率１／ｎを規定するｎの値に応じてアルゴリズムを切り替える場合と比較して、第２方向の解像度変換倍率１／ｎを規定するｎが変化した場合にもアルゴリズムの変更が不要になる、という効果を有する。
【００１９】
請求項２，７記載の発明は、第１方向の解像度変換倍率１／ｎを規定するｎの値に応じてアルゴリズムを切り替える場合と比較して、第１方向の解像度変換倍率１／ｎを規定するｎが変化した場合にもアルゴリズムの変更が不要になる、という効果を有する。
【００２０】
請求項３記載の発明は、解像度変換処理に伴う細線や微小ドットの消失を抑制する処理を中間データ全体を対象として行う場合と比較して、前処理部が行う前処理の処理負荷を削減できる、という効果を有する。
【００２１】
請求項４記載の発明は、描画領域情報を変更しない場合と比較して、描画領域情報が表す描画領域の範囲を、画素列情報に対する前処理に伴って変化する描画範囲に対応させることができる、という効果を有する。
【００２２】
請求項５記載の発明は、解像度変換処理に伴う細線や微小ドットの消失を抑制する処理を、中間データに含まれる画像要素の属性に拘わらず中間データに適用する場合と比較して、画像に多階調のカラー画像を含む第２の属性群の画像要素が含まれる場合に、前処理部による前処理に伴って前記画像要素の画質低下を招くことを抑制できる、という効果を有する。
【図面の簡単な説明】
【００２３】
【図１】実施形態で説明した印刷システムの概略構成を示すブロック図である。
【図２】中間データ生成・処理装置として機能するコンピュータのブロック図である。
【図３】中間データ生成部で生成される中間データのうちのRunデータのフォーマット及び画素列の一例とRunデータとの対応関係を示す概略図である。
【図４】RasterMaskデータのフォーマットの一例を示す概略図である。
【図５】Bounding Boxデータの概要を示す説明図である。
【図６】解像度変換前処理の一例を示すフローチャートである。
【図７】解像度変換前処理によるRunデータの更新(画素列の更新)の一例を示す概略図である。
【図８】解像度変換前処理によるRunデータの更新(画素列の更新)の一例を示す概略図である。
【図９】解像度変換前処理と解像度変換処理を順次行った場合の細線の保存を説明するための概略図である。
【図１０】解像度変換前処理と解像度変換処理を順次行った場合の微小ドットの保存を説明するための概略図である。
【図１１】従来技術において解像度変換処理に伴う細線の消失を説明するための概略図である。
【図１２】従来技術において解像度変換処理に伴う微小ドットの消失を説明するための概略図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には、本実施形態に係る印刷システム１０が示されている。印刷システム１０は、クライアント端末１２、中間データ生成・処理装置１４、ＲＩＰ(Raster Image Processor)１６及びプリンタ１８を含んでいる。クライアント端末１２は通信線２０を介して中間データ生成・処理装置１４に接続され、中間データ生成・処理装置１４は通信線２２を介してＲＩＰ１６に接続され、ＲＩＰ１６は通信線２４を介してプリンタ１８に接続されている。中間データ生成・処理装置１４は本発明に係る画像処理装置の一例である。
【００２５】
なお、図１では、中間データ生成・処理装置１４及びＲＩＰ１６を独立した装置として示しているが、中間データ生成・処理装置１４及びＲＩＰ１６は、例えばプリンタコントローラとしてプリンタ１８に組み込んでもよい。また、中間データ生成・処理装置１４及びＲＩＰ１６は、クライアント端末１２及びプリンタ１８と別体のサーバに組み込んでもよい。更に、中間データ生成・処理装置１４をクライアント端末１２に組み込み、ＲＩＰ１６をプリンタ１８に組み込んでもよい。
【００２６】
印刷システム１０では、印刷システム１０のプリンタ１８に対し、利用者がクライアント端末１２からオンラインで印刷を指示可能とされている。クライアント端末１２はパーソナル・コンピュータ(Personal Computer)、或いは携帯型の電子機器(例えばタブレット端末やスマートフォン等の情報処理機能を備えた電子機器)等を含んでいる。
【００２７】
クライアント端末１２には、任意のＯＳ(Operating System)及び原稿作成に利用可能なアプリケーション・プログラムがインストールされている。本実施形態において、利用者はクライアント端末１２を操作して所望のアプリケーション・プログラムを起動し、原稿作成のための種々の操作を行うことで印刷対象の原稿を作成する。この原稿は文字原稿であってもよいし、写真や図表等の絵柄を含む原稿であってもよいし、文字と絵柄が混在している原稿であってもよい。
【００２８】
印刷対象の原稿の作成が完了すると、利用者は、作成した印刷対象の原稿の印刷を指示する操作を行う。利用者によってこの操作が行われると、印刷対象の原稿をページ記述言語(ＰＤＬ：Page Description Language)で記述した予め設定された解像度(一例としては1200dpi)の印刷データ(以下、ＰＤＬデータという)が、クライアント端末１２から通信線２０を介して印刷システム１０の中間データ生成・処理装置１４へ送信される。
【００２９】
中間データ生成・処理装置１４は、中間データ生成部２６、前処理部２８及び解像度変換部３０を含んでいる。中間データ生成部２６は、クライアント端末１２から受信したＰＤＬデータを解釈し、ＰＤＬデータが表す原稿の各頁を、各頁に含まれる画像要素に分解し、分解した個々の画像要素毎に、個々の画像要素の属性に応じたフォーマットの中間データを生成する。なお、中間データの詳細については後述する。
【００３０】
前処理部２８は、中間データ生成部２６で生成された中間データに対し解像度変換部３０によって解像度変換処理が行われる場合に、この解像度変換処理に先立って解像度変換前処理を行う。解像度変換前処理についても後述する。
【００３１】
解像度変換部３０は、中間データ生成部２６で生成された中間データの解像度(この中間データの解像度はクライアント端末１２から受信したＰＤＬデータの解像度に等しい)が、プリンタ１８による画像印刷における解像度(一例としては600dpi)と相違している場合に、中間データの解像度がプリンタ１８による画像印刷における解像度に一致するように中間データを加工する。中間データ生成・処理装置１４で生成され、必要に応じて解像度変換前処理及び解像度変換処理を経た中間データは、通信線２２を介してＲＩＰ１６へ送信される。
【００３２】
ＲＩＰ１６は、記憶部３２、ＲＩＰ処理部３４及びハーフトーン処理部３６を含んでいる。記憶部３２は中間データ生成・処理装置１４から受信した中間データを記憶する。ＲＩＰ処理部３４は、中間データを記憶部３２から取り出して解釈し、ページ単位で各色成分(例えばＣ,Ｍ,Ｙ,Ｋ)毎のラスタイメージデータ（ビットマップ形式の印刷用画像データ）へ展開するＲＩＰ処理を行う。ハーフトーン処理部３６は、ＲＩＰ処理部３４によるＲＩＰ処理によって生成されたビットマップ形式の印刷用画像データに対し、スクリーン処理、多次元ルックアップテーブルを用いた色変換等の画像処理を行う。ハーフトーン処理部３６による画像処理を経た印刷用画像データは通信線２４を介してプリンタ１８へ送信される。
【００３３】
プリンタ１８は、ＲＩＰ１６から受信した印刷用画像データに基づき記録用紙に印刷対象の原稿の画像を印刷する。プリンタ１８としては、例えば、電子写真プロセスによりフルカラーのトナー像を形成し、記録用紙に転写することで、記録用紙にカラー画像を印刷する構成を採用することができる。但し、これに限定されるものではなく、例えば感熱式や熱転写式、インクジェット式、或いはその他の印刷方式で普通紙や感熱紙上に画像を印刷する各種の構成を採用可能である。
【００３４】
次に図２を参照し、中間データ生成・処理装置１４として機能することが可能なコンピュータ４０について説明する。コンピュータ４０は、ＣＰＵ４２、メモリ４４、記憶部４６、入力部４８、表示部５０、媒体読み書き装置(Ｒ／Ｗ)５２、通信インタフェース(Ｉ／Ｆ)部５４を備えている。ＣＰＵ４２、メモリ４４、記憶部４６、入力部４８、表示部５０、Ｒ／Ｗ５２及び通信Ｉ／Ｆ部５４はバス５６を介して互いに接続されている。Ｒ／Ｗ５２は、記録媒体５８に書き込まれている情報の読み出し及び記録媒体５８への情報の書き込みを行う。
【００３５】
記憶部４６はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。記憶部４６には中間データ生成プログラム６０及び中間データ処理プログラム６２が記憶されている。中間データ生成プログラム６０及び中間データ処理プログラム６２は、中間データ生成プログラム６０及び中間データ処理プログラム６２が書き込まれた記録媒体５８がＲ／Ｗ５２にセットされ、Ｒ／Ｗ５２が記録媒体５８の中間データ生成プログラム６０及び中間データ処理プログラム６２の読み出しを行うことで、記憶部４６へ記憶される。
【００３６】
ＣＰＵ４２は、中間データ生成プログラム６０及び中間データ処理プログラム６２を記憶部４６から読み出してメモリ４４に展開し、中間データ生成プログラム６０及び中間データ処理プログラム６２を順次実行する。ＣＰＵ４２は、中間データ生成プログラム６０を実行することで、中間データ生成部２６として機能する。また、中間データ処理プログラム６２は前処理モジュール６４及び解像度変換モジュール６６を含んでいる。ＣＰＵ４２は、前処理モジュール６４を実行することで前処理部２８として機能する。またＣＰＵ４２は、解像度変換モジュール６６を実行することで解像度変換部３０として機能する。これにより、中間データ処理プログラム６２を実行したコンピュータ４０が、本発明に係る画像処理装置として機能する。なお、中間データ処理プログラム６２は本発明に係る画像処理プログラムの一例である。
【００３７】
次に、本実施形態の作用の説明に先立ち、まず、画像データに対して解像度を低下させる解像度変換処理を行った場合に、画像中に存在する細線や微小なドット等が画像から消失してしまう現象について説明する。
【００３８】
図１１(Ａ)には元画像の一例を示す。この元画像は12画素×12画素のサイズで、ｘ方向に延びる12本の画素列のうち0,1,5,10,11行目の画素列と、ｙ方向に延びる12本の画素列のうち0,1,6,10,11列目の画素列が、それぞれ全画素が印刷有りの画素列になっている。従って、元画像を印刷した場合、ｘ方向に延びる5行目の画素列と、ｙ方向に延びる6列目の画素列は、それぞれ1画素幅の細線として印刷される。
【００３９】
この元画像の解像度を1/2に低下させる場合を考える。まず元画像のｙ方向に延びる12本の画素列を１列おきに間引いたとすると、図１１(Ｂ)に示す画像が得られる。次に、図１１(Ｂ)に示す画像のうちｘ方向に延びる6本の画素列から、１画素おきに画素を間引いたとすると、図１１(Ｃ)に示す画像が得られる。そして、間引かれて残った画素のｘ方向ｙ方向それぞれの間隔を詰めることで、図１１(Ｄ)に示すように、元画像の解像度を1/2に低下させた解像度変換後の画像が得られる。
【００４０】
図１１(Ｄ)を図１１(Ａ)と比較しても明らかなように、解像度変換後の画像では、元画像上に存在していたｘ方向に延びる１画素幅の細線(ｘ方向に延びる12本の画素列のうち5行目の画素列)が消失している。図１１の例では、元画像上に存在していたｙ方向に延びる１画素幅の細線(ｙ方向に延びる12本の画素列のうち6列目の画素列)については、解像度変換後の画像でも保存されているが、この細線も元画像上での位置によっては解像度変換後の画像から消失する。
【００４１】
また、図１２(Ａ)には元画像の他の例を示す。この元画像は12画素×12画素のサイズで、ｘ方向に延びる12本の画素列のうち0,1,10,11行目の画素列と、ｙ方向に延びる12本の画素列のうち0,1,10,11列目の画素列が、それぞれ全画素が印刷有りの画素列になっている。また、ｘ方向に6番目でｙ方向に5番目の画素は、周囲が印刷無しの画素に囲まれた印刷有りの画素(１画素サイズの微小なドット)となっている。
【００４２】
この元画像の解像度を1/2に低下させる場合を考える。まず元画像のｙ方向に延びる12本の画素列を１列おきに間引いたとすると、図１２(Ｂ)に示す画像が得られる。次に、図１２(Ｂ)に示す画像のうちｘ方向に延びる6本の画素列から、１画素おきに画素を間引いたとすると、図１２(Ｃ)に示す画像が得られる。そして、間引かれて残った画素のｘ方向ｙ方向それぞれの間隔を詰めることで、図１２(Ｄ)に示すように、元画像の解像度を1/2に低下させた解像度変換後の画像が得られる。
【００４３】
図１２(Ｄ)を図１２(Ａ)と比較しても明らかなように、解像度変換後の画像では、元画像上のｘ方向に6番目でｙ方向に5番目の位置に存在していた、１画素サイズの微小なドットが消失している。
【００４４】
ここで、上記の解像度変換に伴う細線や微小なドット等の消失を抑制する画像処理を、ビットマップ形式の画像データに対して行う場合、例えば、本実施形態に係る印刷システム１０では、ＲＩＰ１６のＲＩＰ処理部３４で生成されたビットマップ形式の印刷用画像データに対して上記の画像処理を行うことになる。
【００４５】
しかしながら、ビットマップ形式の画像データはデータ量が大きく、特にＲＩＰ処理部３４ではビットマップ形式の画像データが各色成分(Ｃ,Ｍ,Ｙ,Ｋ)毎に生成される。このため、ビットマップ形式の画像データに対して細線や微小なドット等の消失を抑制するための画像処理を行おうとすると、処理負荷の高い画像処理を各色成分毎に４回繰り返す必要があるので処理負荷が著しく大きくなる。特に、このような画像処理をソフトウェアで実行させる場合、例えばバイトデータのビット操作演算が必要になることから、ＣＰＵに多大な処理負荷を与えてしまう。このため、解像度変換に伴う細線や微小なドット等の消失を抑制するための画像処理が処理のボトルネックとなることで、プリンタ１８における印刷速度の低下を招く、という懸念が生ずる。
【００４６】
このため、本実施形態では、中間データ生成部２６で生成される中間データが、ビットマップ形式の画像データよりもデータ量が小さいことに着目し、中間データ生成部２６で生成された中間データに対し、中間データ生成・処理装置１４の前処理部２８が、解像度変換に伴う細線や微小なドット等の消失を抑制する処理(解像度変換前処理)を行っている。
【００４７】
次に、中間データ生成部２６で生成される中間データのフォーマットを説明する。前述したように、中間データ生成部２６は、クライアント端末１２から受信したＰＤＬデータを解釈し、ＰＤＬデータが表す原稿の各頁を、各頁に含まれる画像要素に分解する。そして、分解した個々の画像要素毎に、個々の画像要素の属性に応じたフォーマットの中間データを生成する。
【００４８】
１つの画像要素に対応する中間データは、対応する画像要素に含まれる印刷対象の画素を表す画素特定情報(本実施形態では"Shape"という)と、対応する画像要素に含まれる印刷対象の画素の色を表す色情報(本実施形態では"Color"という)と、対応する画像要素の描画領域の範囲を表す描画領域情報(本実施形態では"Bounding Box"という)と、を含んでいる。
【００４９】
上記の三種類の情報のうち、画像要素の属性に応じてフォーマットが相違する情報は画素特定情報(Shape)であり、画像要素の属性がテキストを含む第１の属性群に含まれる場合、画素特定情報(Shape)として、ランレングス(Run Length)の考え方で画素列を表す画素列情報(本実施形態では"RunMask"という)が用いられ、画像要素の属性が多階調のカラー画像を含む第２の属性群に含まれる場合、画素特定情報(Shape)として、ビットマップ形式の情報(本実施形態では"RasterMask"という)が用いられる。なお、画素特定情報(Shape)としてRasterMaskデータが用いられる画像要素(属性が第２の属性群に含まれる画像要素)は、主に、ＰＤＬデータ上でもビットマップ形式で表現された画像要素である。RunMaskデータは本発明における第１情報の一例、RasterMaskデータは本発明における第２情報の一例である。
【００５０】
RunMaskデータは、対応する画像要素の走査線数と同数のScanlineRunデータを含んでおり、図３(Ａ)に示すように、１つのScanlineRunデータは、対応する走査線における画素列(Run)の数を表すpairデータを含んでいる。また、１つのScanlineRunデータは、pairデータ＞０の場合、xlデータとxrデータの組(このxlデータとxrデータの組を画素列(Run)データともいう)を、pairデータの数(対応する走査線における画素列(Run)の数)と同数個含んでいる。個々のxlデータとxrデータの組は互いに異なる画素列(Run)に対応しており、xlデータは対応する画素列(Run)の始点画素のｘ座標(0起算)を表し、xrデータは対応する画素列(Run)の終点画素の次の画素のｘ座標(0起算)を表している。
【００５１】
一例として、図３(Ｂ)に示すように、走査線上に、始点画素のｘ座標=2、終点画素のｘ座標=2、長さ=1の画素列と、始点画素のｘ座標=7、終点画素のｘ座標=7、長さ=1の画素列と、が存在している場合、当該走査線に対応するScanlineRunデータは、pairデータ=2、xlデータとxrデータの組が２個で、１組目がxlデータ=2、xrデータ=3で、２組目がxlデータ=7、xrデータ=8になる。
【００５２】
また、図３(Ｂ)に示すように、走査線上に、始点画素のｘ座標=2、終点画素のｘ座標=2、長さ=1の画素列と、始点画素のｘ座標=7、終点画素のｘ座標=7、長さ=1の画素列と、始点画素のｘ座標=12、終点画素のｘ座標=13、長さ=2の画素列と、が存在している場合、当該走査線に対応するScanlineRunデータは、pairデータ=3、xlデータとxrデータの組が３個で、１組目がxlデータ=2、xrデータ=3で、２組目がxlデータ=7、xrデータ=8で、３組目がxlデータ=12、xrデータ=14になる。
【００５３】
一方、RasterMaskデータは、次の表１に示すデータを含んでいる。
【００５４】
【表１】
0006459815.tif 000002
【００５５】
上記の表１に示したデータのうち、Widthデータ、Heightデータ及びnextLineデータの関係を図４に示す。なお、nextLineデータは、32の倍数でかつnextLine≧Widthとなるように設定される。Widthデータが指し示す画像要素の右端とnextLineデータが指し示す画像要素の右端との間はダミー領域である。
【００５６】
また、Bounding Boxデータは、一例として図５に示すように、対応する画像要素を取り囲むことができる最小の矩形領域の左上の頂点の座標(lx,ly)のデータと右下の頂点の座標(gx,gy)のデータを含む。
【００５７】
次に、上述したフォーマットの中間データに対して前処理部２８が行う解像度変換前処理について、図６を参照して説明する。なお、図６に示す解像度変換前処理は、１頁分の中間データに対する処理であり、クライアント端末１２から受信したＰＤＬデータが複数頁分のデータを含んでいる場合、中間データ生成部２６で生成される中間データも複数頁分のデータを含んでいるので、前処理部２８では、図６に示す解像度変換前処理が頁数分繰り返し実行される。
【００５８】
解像度変換前処理のステップ１００において、前処理部２８は、解像度変換部３０で中間データに対する解像度変換処理が行われるか否か判定する。ステップ１００の判定は、例えば、中間データの解像度(すなわちＰＤＬデータの解像度)が、プリンタ１８による画像印刷における解像度と相違しているかを判定することで実現できる。中間データの解像度が、プリンタ１８による画像印刷における解像度と一致している等の場合には、ステップ１００の判定が否定されて解像度変換前処理を終了する。
【００５９】
中間データの解像度が、プリンタ１８による画像印刷における解像度と相違している等の場合には、ステップ１００の判定が肯定されてステップ１０２へ移行する。ステップ１０２において、前処理部２８は、解像度変換部３０で行われる中間データに対する解像度変換処理における変換倍率を規定する変数ｎを取得する。本実施形態において、解像度変換部３０は、中間データの解像度がプリンタ１８による画像印刷における解像度と相違している場合、両者に一致するように中間データの解像度を１／ｎ倍にする解像度変換処理を行う。従って、変数ｎは、解像度変換部３０による解像度変換処理における変換倍率(１／ｎ)の逆数で、ｎ≧２の整数であり、中間データの解像度(ＰＤＬデータの解像度)をプリンタ１８による画像印刷における解像度で除算することで算出できる。
【００６０】
なお、本実施形態では、解像度変換部３０による解像度変換処理の実施の有無、及び、解像度変換処理における変換倍率(１／ｎ)が、中間データの解像度(ＰＤＬデータの解像度)とプリンタ１８による画像印刷における解像度との関係によって切り替わる態様を説明している。しかしながら、本発明は、例えば中間データの解像度(ＰＤＬデータの解像度)が1200dpi固定で、プリンタ１８による画像印刷における解像度が600dpi固定、解像度変換部３０が変換倍率１／２(変数ｎ＝２)の解像度変換処理を毎回行う、等のように、解像度変換処理が一定の変換倍率で毎回実施される態様にも適用可能であることは言うまでもない。この場合は、ステップ１００,１０２に代えて、予め設定された領域に固定的に記憶された変数ｎを読み出す処理を行えばよい。
【００６１】
次のステップ１０４において、前処理部２８は、１頁分の中間データ(処理対象の頁の中間データ)の中から、処理対象の頁に含まれる１つの画像要素の情報を取得する。先に説明したように、１つの画像要素の情報は、画素特定情報(Shapeデータ)、色情報(Colorデータ)及び描画領域情報(Bounding Boxデータ)を含んでいる。ステップ１０６において、前処理部２８は、ステップ１０４で取得した単一の画像要素の情報の中からShapeデータを抽出する。
【００６２】
先に説明したように、Shapeデータは、対応する画像要素の属性に応じてフォーマットが相違しており、対応する画像要素の属性がテキストを含む第１の属性群に含まれる場合はRunMaskデータが用いられ、画像要素の属性が多階調のカラー画像を含む第２の属性群に含まれる場合はRasterMaskデータが用いられる。次のステップ１０８において、前処理部２８は、ステップ１０６で抽出したShapeデータがRunMaskデータか否かを判定する。
【００６３】
ShapeデータがRunMaskデータであった場合には、ステップ１０８の判定が肯定されてステップ１１０へ移行し、ステップ１１０以降でRunMaskデータに対し、解像度変換に伴う細線や微小なドット等の消失を抑制する処理を行う。
【００６４】
すなわち、ステップ１１０において、前処理部２８は、RunMaskデータに含まれる個々のScanlineRunデータ(が対応する個々の走査線)を識別するための変数ｓに、初期値として０を設定する。ステップ１１２において、前処理部２８は、ｓ%ｎ≠０(但しｓ％ｎはｓ÷ｎの剰余)か否か判定する。ステップ１１２の判定が否定された場合、変数ｓは変数ｎの整数倍であるので、ｓ番目の走査線(以下、走査線ｓと称する)上の各画素は、解像度変換部３０による変換倍率１／ｎの解像度変換処理を経ても保存されると判断できる。このため、ステップ１１２の判定が否定された場合はステップ１１６へ移行する。
【００６５】
一方、ステップ１１２の判定が肯定された場合は、変数ｓは変数ｎの整数倍ではないので、走査線ｓ(上の各画素)は、解像度変換部３０による変換倍率１／ｎの解像度変換処理によって消失する(間引かれる)と判断できる。このため、ステップ１１２の判定が肯定された場合はステップ１１４へ移行し、ステップ１１４において、前処理部２８は、走査線ｓ−(ｓ%ｎ)上の各画素と走査線ｓ上の各画素との論理和(OR)を演算し、走査線ｓ−(ｓ%ｎ)のScanlineRunデータを、論理和演算によって得られた画素列を表すScanlineRunデータへ更新する。なお、ｓ−(ｓ%ｎ)は変数ｎの整数倍になるので、走査線ｓ−(ｓ%ｎ)は解像度変換処理を経ても保存される。これにより、解像度変換処理によって消失する(間引かれる)走査線ｓ上の各画素の情報が、解像度変換処理を経ても保存される走査線ｓ−(ｓ%ｎ)上の各画素の情報に重畳される。
【００６６】
上記処理を数式で表すと次の(１)式になる。
ｓ%ｎ≠０の場合、
走査線ｓ−(ｓ%ｎ)のScanlineRunデータ←
(走査線ｓ−(ｓ%ｎ)上の各画素)OR(走査線ｓ上の各画素)    …(１)
また、ｎ＝２の場合は、次の(２)式のように簡略化できる。
ｓが奇数の場合、
走査線ｓ−1のScanlineRunデータ←
(走査線ｓ−1上の各画素)OR(走査線ｓ上の各画素)    …(２)
【００６７】
次のステップ１１６において、前処理部２８は、走査線ｓ上の個々の画素列を識別するための変数ｉに、初期値として０を設定する。ステップ１１８において、前処理部２８は、走査線ｓのScanlineRunデータからｉ番目の画素列の始点画素を表すxlデータを取得する。ステップ１２０において、前処理部２８は、xl％ｎ≠０(但しxl％ｎはxl÷ｎの剰余)か否か判定する。ステップ１２０の判定が否定された場合、xlデータの値は変数ｎの整数倍であるので、走査線ｓ上のxl番目の画素(ｉ番目の画素列の始点画素)は、解像度変換部３０による変換倍率１／ｎの解像度変換処理を経ても保存されると判断できる。このため、ステップ１２０の判定が否定された場合は、ｉ番目のxlデータの値を変更することなくステップ１２４へ移行する。
【００６８】
一方、ステップ１２０の判定が肯定された場合は、xlデータの値は変数ｎの整数倍ではないので、走査線ｓ上のxl番目の画素(ｉ番目の画素列の始点画素)は、解像度変換部３０による変換倍率１／ｎの解像度変換処理によって消失する(間引かれる)と判断できる。このため、ステップ１２０の判定が肯定された場合はステップ１２２へ移行し、ステップ１２２において、前処理部２８は、走査線ｓのScanlineRunデータのｉ番目のxlデータの値をxl−(xl％ｎ)へ更新する。なお、xl−(xl％ｎ)は変数ｎの整数倍になるので、走査線ｓ上のxl−(xl％ｎ)番目の画素は解像度変換処理を経ても保存される。これにより、解像度変換処理によって消失する(間引かれる)走査線ｓ上のｉ番目の画素列の始点画素の情報が、解像度変換処理を経ても保存される走査線ｓ上のxl−(xl％ｎ)番目の画素の情報に重畳される。
【００６９】
上記処理を数式で表すと次の(３)式になる。
xl％ｎ≠０の場合、
走査線ｓのｉ番目の画素列の始点画素xl←xl−xl％ｎ    …(３)
また、ｎ＝２の場合は、次の(４)式のように簡略化できる。
xlが奇数の場合、
走査線ｓのｉ番目の画素列の始点画素xl←xl−1    …(４)
【００７０】
次のステップ１２４において、前処理部２８は、走査線ｓのScanlineRunデータからｉ番目の画素列の終点画素の次の画素を表すxrデータを取得する。ステップ１２６において、前処理部２８は、xr％ｎ≠０(但しxr％ｎはxr÷ｎの剰余)か否か判定する。ステップ１２６の判定が否定された場合、xrデータの値は変数ｎの整数倍であるので、走査線ｓ上のxr番目の画素(ｉ番目の画素列の終点画素の次の画素)は、解像度変換部３０による変換倍率１／ｎの解像度変換処理を経ても保存されると判断できる。このため、ステップ１２６の判定が否定された場合は、ｉ番目のxrデータの値を変更することなくステップ１３０へ移行する。
【００７１】
一方、ステップ１２６の判定が肯定された場合は、xrデータの値は変数ｎの整数倍ではないので、走査線ｓ上のxr番目の画素(ｉ番目の画素列の終点画素の次の画素)は、解像度変換部３０による変換倍率１／ｎの解像度変換処理によって消失する(間引かれる)と判断できる。このため、ステップ１２６の判定が肯定された場合はステップ１２８へ移行し、ステップ１２８において、前処理部２８は、走査線ｓのScanlineRunデータのｉ番目のxrデータの値をxr−(ｎ−xr％ｎ)へ更新する。なお、xr−(ｎ−xr％ｎ)は変数ｎの整数倍になるので、走査線ｓ上のxr−(ｎ−xr％ｎ)番目の画素は解像度変換処理を経ても保存される。これにより、解像度変換処理によって消失する(間引かれる)走査線ｓ上のｉ番目の画素列の終点画素の次の画素の情報が、解像度変換処理を経ても保存される走査線ｓ上のxr−(ｎ−xr％ｎ)番目の画素の情報に重畳される。
【００７２】
上記処理を数式で表すと次の(５)式になる。
xr％ｎ≠０の場合、
走査線ｓのｉ番目の画素列の終点画素の次の画素xr←xr＋ｎ−xr％ｎ    …(５)
また、ｎ＝２の場合は、次の(６)式のように簡略化できる。
xrが奇数の場合、
走査線ｓのｉ番目の画素列の終点画素の次の画素xr←xr＋1    …(６)
【００７３】
次のステップ１３０において、前処理部２８は、変数ｉの値が走査線ｓのScanlineRunデータに含まれるpairデータの値に達したか否かを判定することで、走査線ｓ上の全ての画素列(Run)のデータを処理したか否か判定する。ステップ１３０の判定が否定された場合はステップ１３２へ移行し、ステップ１３２において、前処理部２８は、変数ｉを１だけインクリメントした後にステップ１１８へ戻る。これにより、走査線ｓの全ての画素列(Run)のデータに対してステップ１１８乃至ステップ１３０が繰り返された後に、ステップ１３０の判定が肯定される。
【００７４】
上述したステップ１１８乃至ステップ１３０の画素列(Run)データに対する処理について、図７を参照し、処理結果の一例を挙げて更に説明する。なお、図７は、一例として、解像度変換部３０による解像度変換処理における変換倍率が１／２(変数ｎ＝２)の場合を示している。
【００７５】
図７の１番目に「変換前」として示す画素列は、始点画素及び終点画素のｘ座標=0、長さ=1の画素列で、画素列(Run)データはxl=0、xr=1となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３０の処理を行うと、xlは奇数ではないので(４)式の更新は行われず、xrは奇数であるので(６)式に従って１が加算される。従って、図７の１番目に「変換後」として示すように、処理後の画素列は始点画素のｘ座標=0、終点画素のｘ座標=1、長さ=2となり、処理後の画素列(Run)データはxl=0、xr=2となる。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００７６】
図７の２番目に「変換前」として示す画素列は、始点画素のｘ座標=0、終点画素のｘ座標=1、長さ=2の画素列で、画素列(Run)データはxl=0、xr=2となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３０の処理を行うと、xlは奇数ではないので(４)式の更新は行われず、xrも奇数ではないので(６)式の更新は行われない。従って、図７の２番目に「変換後」として示すように、処理後の画素列は処理前の画素列と同じであり、処理後の画素列(Run)データも処理前と同じである。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００７７】
図７の３番目に「変換前」として示す画素列は、始点画素のｘ座標=0、終点画素のｘ座標=2、長さ=3の画素列で、画素列(Run)データはxl=0、xr=3となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３０の処理を行うと、xlは奇数ではないので(４)式の更新は行われず、xrは奇数であるので(６)式に従って１が加算される。従って、図７の３番目に「変換後」として示すように、処理後の画素列は始点画素のｘ座標=0、終点画素のｘ座標=3、長さ=4となり、処理後の画素列(Run)データはxl=0、xr=4となる。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００７８】
図７の４番目に「変換前」として示す画素列は、始点画素及び終点画素のｘ座標=1、長さ=1の画素列で、画素列(Run)データはxl=1、xr=2となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３０の処理を行うと、xlは奇数であるので(４)式に従って1が減算され、xrは奇数でないので(６)式の更新は行われない。従って、図７の４番目に「変換後」として示すように、処理後の画素列は始点画素のｘ座標=0、終点画素のｘ座標=1、長さ=2となり、処理後の画素列(Run)データはxl=0、xr=2となる。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００７９】
図７の５番目に「変換前」として示す画素列は、始点画素のｘ座標=1、終点画素のｘ座標=2、長さ=2の画素列で、画素列(Run)データはxl=1、xr=3となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３２の処理を行うと、xlは奇数であるので(４)式に従って1が減算され、xrも奇数であるので(６)式に従って１が加算される。従って、図７の５番目に「変換後」として示すように、処理後の画素列は始点画素のｘ座標=0、終点画素のｘ座標=3、長さ=4となり、処理後の画素列(Run)データはxl=0、xr=4となる。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００８０】
図７の６番目に「変換前」として示す画素列は、始点画素のｘ座標=1、終点画素のｘ座標=3、長さ=3の画素列で、画素列(Run)データはxl=1、xr=4となる。この画素列(Run)データに対してステップ１１８乃至ステップ１３２の処理を行うと、xlは奇数であるので(４)式に従って1が減算され、xrは奇数ではないので(６)式の更新は行われない。従って、図７の６番目に「変換後」として示すように、処理後の画素列は始点画素のｘ座標=0、終点画素のｘ座標=3、長さ=4となり、処理後の画素列(Run)データはxl=0、xr=4となる。処理後のxl,xrは共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００８１】
ステップ１３０の判定が肯定されるとステップ１３４へ移行し、ステップ１３４において、前処理部２８は、ステップ１１８乃至ステップ１３２の処理を経た走査線ｓの全ての画素列(Run)のデータの中に、ｉ番目のxr＝ｉ＋１番目のxl(但しｉ＝0〜pair−１)を満たす画素列(Run)のデータの対が含まれているか否かを探索する。該当する画素列(Run)データの対が含まれていなければ次のステップ１３６へ移行する。一方、該当する画素列(Run)データの対を発見した場合は、ｉ番目の画素列(Run)データのxrデータにｉ＋１番目の画素列(Run)データのxrデータを設定し、ｉ＋１番目の画素列(Run)データを消去し、pairデータを１だけデクリメントすることで、ｉ番目の画素列(Run)データとｉ＋１番目の画素列(Run)データを結合する。
【００８２】
上述したステップ１３４における画素列(Run)データの結合について、図８を参照し、処理結果の一例を挙げて更に説明する。なお、図８についても、解像度変換部３０による解像度変換処理における変換倍率が１／２(変数ｎ＝２)の場合を示している。図８に「変換前」として示す画素列は、始点画素及び終点画素のｘ座標=0、長さ=1の画素列１と、始点画素及び終点画素のｘ座標=2、長さ=1の画素列２であり、ScanlineRunデータは、pair=2、画素列(Run)データがxl1=0、xr1=1、xl2=2、xr=3となる。
【００８３】
画素列１の画素列(Run)データに対してステップ１１８乃至ステップ１３０の処理を行うと、xlは奇数ではないので(４)式の更新は行われず、xrは奇数であるので(６)式に従って１が加算される。従って、図８に「変換後」として示すように、処理後の画素列１は始点画素のｘ座標=0、終点画素のｘ座標=1、長さ=2となり、処理後の画素列１の画素列(Run)データはxl1=0、xr1=2となる。また、画素列２の画素列(Run)データに対してステップ１１８乃至ステップ１３２の処理を行うと、xlは奇数ではないので(４)式の更新は行われず、xrは奇数であるので(６)式に従って１が加算される。従って、図８に「変換後」として示すように、処理後の画素列２は始点画素のｘ座標=2、終点画素のｘ座標=3、長さ=2となり、処理後の画素列２の画素列(Run)データはxl2=2、xr2=4となる。
【００８４】
ここで、画素列１のxr1=2と画素列２のxl2=2は、ステップ１３４の条件「ｉ番目のxr＝ｉ＋１番目のxl」を満たすので、ステップ１３４の画素列(Run)データの結合が行われ、画素列１のxrに画素列２のxrが設定され、画素列２の画素列(Run)データが消去され、pairデータが１だけデクリメントされる。これにより、図８に「結合処理」と表記して示すように、ScanlineRunデータは、pair=1、画素列(Run)データがxl1=0、xr1=4となる。なお、結合処理後のxl1,xr1は共にｎ(=2)の整数倍であるので、解像度変換部３０による解像度変換処理を経ても、処理後の画素列(Run)データxl,xrが指し示す画素の消失は生じない。
【００８５】
次のステップ１３６において、前処理部２８は、走査線ｓが処理対象の画像要素の最後の走査線か否か判定する。ステップ１３６の判定が否定された場合はステップ１３８へ移行し、ステップ１３８において、前処理部２８は、変数ｓを１だけインクリメントした後にステップ１１２に戻る。これにより、処理対象の画像要素の全ての走査線に対し、ステップ１１２乃至ステップ１３８が繰り返される。そして、ステップ１３６の判定が肯定されるとステップ１４２へ移行する。
【００８６】
上述したRunMaskデータに対する処理について、処理結果の一例を挙げて更に説明する。なお、以下で説明する図９,１０についても、一例として解像度変換部３０による解像度変換処理における変換倍率が１／２(変数ｎ＝２)の場合を示している。
【００８７】
図９(Ａ)には元の画像要素の一例を示す。この画像要素は、図１１(Ａ)に示す元画像と同じであり、12画素×12画素のサイズで、ｘ方向に延びる12本の画素列のうち0,1,5,10,11行目の画素列と、ｙ方向に延びる12本の画素列のうち0,1,6,10,11列目の画素列が、それぞれ全画素が印刷有りの画素列になっている。従って、元の画像要素を印刷した場合、ｘ方向に延びる5行目の画素列と、ｙ方向に延びる6列目の画素列は、それぞれ1画素幅の細線として印刷される。
【００８８】
図９(Ｂ)及び(Ｃ)は説明の都合上、ステップ１１２,１１４の処理(便宜的に「ｙ方向の前処理」と称する)を画像要素全体に行った後に、ステップ１１８乃至ステップ１３０の処理(便宜的に「ｘ方向の前処理」と称する)を画像要素全体に行った場合の処理結果を示す。
【００８９】
ｙ方向の前処理では、ｎ＝２の場合、前出の(２)式に示すように、ｓが奇数の場合に、走査線ｓ−1上の各画素と走査線ｓ上の各画素との論理和(OR)が演算され、走査線ｓ−1のScanlineRunデータが、論理和演算によって得られた画素列を表すScanlineRunデータへ更新される。従って、図９(Ａ)に示す元の画像要素全体に対してｙ方向の前処理を行ったとすると、図９(Ｂ)に示すように、ｘ方向に延びる5行目の画素列の幅が、4行目の画素列を加えた2画素分の幅に拡大される。
【００９０】
また、ｘ方向の前処理では、ｎ＝２の場合、前出の(４)式に示すように、xlが奇数の場合にxlが1だけ減算され、前出の(６)式に示すように、xrが奇数の場合にxrに1が加算される。従って、図９(Ｂ)に示す画像要素全体に対してｘ方向の前処理を行ったとすると、図９(Ｃ)に示すように、ｙ方向に延びる6列目の画素列の幅が、7列目の画素列を加えた2画素分の幅に拡大される。
【００９１】
そして、図９(Ｃ)に示すｙ方向の前処理及びｘ方向の前処理を経た画像要素に対し、変換倍率が１／２の解像度変換処理を行ったとすると、図９(Ｄ)に示すように、元の画像要素の解像度を1/2に低下させた解像度変換後の画像要素が得られる。図９(Ｄ)を図９(Ａ)と比較しても明らかなように、元の画像要素上の5行目の画素列に存在していたｘ方向に延びる１画素幅の細線は、解像度変換後の画像要素では2行目の画素列に１画素幅の細線として保存される。また、元の画像要素上の6列目の画素列に存在していたｙ方向に延びる１画素幅の細線は、解像度変換後の画像要素では3列目の画素列に１画素幅の細線として保存される。
【００９２】
また、図１０(Ａ)には元の画像要素の他の例を示す。この画像要素は、図１２(Ａ)に示す元画像と同じであり、12画素×12画素のサイズで、ｘ方向に延びる12本の画素列のうち0,1,10,11行目の画素列と、ｙ方向に延びる12本の画素列のうち0,1,10,11列目の画素列が、それぞれ全画素が印刷有りの画素列になっている。また、ｘ方向に6番目でｙ方向に5番目の画素は、周囲が印刷無しの画素に囲まれた印刷有りの画素(１画素サイズの微小なドット)となっている。
【００９３】
図１０(Ｂ)及び(Ｃ)についても説明の都合上、ｙ方向の前処理を画像要素全体に行った後に、ｘ方向の前処理を画像要素全体に行った場合の処理結果を示す。ｙ方向の前処理では、ｎ＝２の場合、前出の(２)式に示すように、ｓが奇数の場合に、走査線ｓ−1上の各画素と走査線ｓ上の各画素との論理和(OR)が演算され、走査線ｓ−1のScanlineRunデータが、論理和演算によって得られた画素列を表すScanlineRunデータへ更新される。従って、図１０(Ａ)に示す画像要素全体に対してｙ方向の前処理を行ったとすると、図１０(Ｂ)に示すように、ｘ方向に6番目でｙ方向に5番目の画素の微小なドットは、ｘ方向に6番目でｙ方向に4番目の画素が加わり、ｙ方向の幅が2画素分の幅に拡大される。
【００９４】
また、ｘ方向の前処理では、ｎ＝２の場合、前出の(４)式に示すように、xlが奇数の場合にxlが1だけ減算され、前出の(６)式に示すように、xrが奇数の場合にxrに1が加算される。従って、図１０(Ｂ)に示す画像要素全体に対してｘ方向の前処理を行ったとすると、図１０(Ｃ)に示すように、ｘ方向に6番目でｙ方向に4,5番目の画素の微小なドットは、ｘ方向に7番目でｙ方向に4,5番目の画素が加わり、ｘ方向の幅も２画素分の幅に拡大されることになる。
【００９５】
そして、図１０(Ｃ)に示すｙ方向の前処理及びｘ方向の前処理を経た画像要素に対し、変換倍率が１／２の解像度変換処理を行ったとすると、図１０(Ｄ)に示すように、元の画像要素の解像度を1/2に低下させた解像度変換後の画像要素が得られる。図１０(Ｄ)を図１０(Ａ)と比較しても明らかなように、元の画像要素上に存在していたｘ方向に6番目でｙ方向に5番目の画素の微小なドットは、解像度変換後の画像要素ではｘ方向に3番目でｙ方向に2番目の画素の微小なドットとして保存される。
【００９６】
また、ステップ１０６で抽出したShapeデータがRasterMaskデータであった場合には、ステップ１０８の判定が否定されてステップ１４０へ移行し、ステップ１４０において、前処理部２８は、RasterMaskデータを変数ｎに応じて更新する処理を行う。RasterMaskデータの更新の具体的な処理は次の表２に示す。
【００９７】
【表２】
0006459815.tif 000003
【００９８】
表２から明らかなように、RasterMaskデータに対する主な処理は、対応する画像要素の幅及び高さの画素数を変数ｎの整数倍に揃える処理であり、RunMaskデータに対する処理のように、解像度変換処理で間引かれる画素の情報を解像度変換処理で間引かれない画素の情報に重畳する前処理は行わない。ShapeデータとしてRasterMaskデータが用いられる画像要素(属性が第２の属性群に含まれる画像要素)は、ＰＤＬデータ上でもビットマップ形式で表現される、多階調のカラー画像(例えば自然画像)の画像要素であることが多い。このような画像要素に対して上記のような前処理を行うと、画像が不自然に変化して画質が低下したと感じられることが多いため、前処理を行わないこととしている。
【００９９】
また、上記のように、画像要素の幅及び高さの画素数を変数ｎの整数倍に揃える処理を行うことで、RasterMaskデータに対応する画像要素が、幅及び高さの少なくとも一方の画素数が変数ｎ未満の小サイズの画像要素である場合に、解像度変換処理に伴って前記画像要素が消滅してしまうことが抑制される。
【０１００】
また、変数ｎ＝２の場合には、表２に示したWidth及びHeightに対する処理は「奇数の場合は１を加算して偶数にする」処理に簡略化され、nextLineに対する処理は「変更なし」になる(Widthに1を加算してもnextLineを超えることはないため)。
【０１０１】
次のステップ１４２において、前処理部２８は、処理対象の画像要素のBounding Boxデータを変数ｎに応じて更新する。Bounding Boxデータの更新は、Bounding Boxデータが規定する矩形領域(図５参照)の幅及び高さの画素数を変数ｎの整数倍に揃える処理であり、具体的には、矩形領域の左上の頂点の座標(lx,ly)と右下の頂点の座標(gx,gy)のうち、gx,gyを以下の(７)式に従って更新する。
(gx−lx)%n≠０ならgx←gx+(n−(gx−lx)%n)
(gy−ly)%n≠０ならgy←gy+(n−(gy−ly)%n)    …(７)
【０１０２】
次のステップ１４４において、前処理部２８は、処理対象の画像要素が処理対象の頁の最後の画像要素か否か判定する。ステップ１４４の判定が否定された場合はステップ１０４に戻り、新たな画像要素を処理対象としてステップ１０４以降の処理を繰り返す。そして、ステップ１４４の判定が肯定されると解像度変換前処理を終了する。
【０１０３】
前処理部２８による上述した解像度変換前処理を経た中間データは解像度変換部３０に入力され、解像度変換部３０は、解像度変換前処理を経た中間データに対し、変換倍率が１／ｎの解像度変換処理を行う。これにより、解像度変換処理後の中間データのうち、ShapeデータとしてRunMaskデータが用いられた画像要素については、細線や微小なドット等が保存される。
【０１０４】
このように、上記では、ランレングス(Run Length)の考え方で画素列(画像要素)を表す中間データであるRunMaskデータに対し、解像度変換処理で間引かれる画素の情報を解像度変換処理で間引かれない画素の情報に重畳する前処理を行うことで、解像度変換に伴う細線や微小なドット等の消失を抑制しているので、ビットマップ形式の画像データを処理対象とする場合よりも処理対象のデータのデータ量が小さくなる。
【０１０５】
また、１つの画像要素の情報に含まれるShapeデータ、Colorデータ及びBounding Boxデータのうち、Colorデータは処理対象としていないので、処理対象のデータのデータ量が更に小さくなる。
【０１０６】
また、ビットマップ形式の画像データでは個々の画像要素の属性といった情報が失われているので、ビットマップ形式の画像データを処理対象とする場合は、画像要素の属性毎に処理を切り替えることは困難である。これに対し、上記では中間データを処理対象としているので、画像要素の属性毎に適切な処理に切り替えることが可能になる。
【０１０７】
なお、上記の実施形態で説明した中間データのフォーマットは単なる一例であり、本発明は、ランレングス(Run Length)の考え方で画素列(画像要素)を表す中間データであれば適用可能である。
【０１０８】
また、上記では、画素列情報の一例として、画素列の始点画素を指し示すxlデータと、画素列の終点画素の次の画素を指し示すxrデータを含む画素列(Run)データを説明したが、これに限定されるものではない。画素列情報は、画素列の始点画素を指し示すデータと、画素列の終点画素を指し示すデータを含む情報であってもよいし、画素列の始点画素を指し示すデータと、画素列の長さを表すデータを含む情報であってもよいし、画素列の終点画素を指し示すデータと、画素列の長さを表すデータを含む情報であってもよい。また、画素列情報は、画素列中の基準位置(一例としては画素列の中央)を指し示すデータと、基準位置から画素列の始点画素及び終点画素までの長さを表すデータを含む情報であってもよい。
【０１０９】
また、上記では解像度を１／ｎに低下させる解像度変換処理を行う態様を説明したが、解像度変換における変換倍率は１／ｎに限定されるものではなく、ｍ／ｎ(但し、ｍは1＜ｍ＜ｎの整数)であってもよい。変換倍率がｍ／ｎの場合、解像度変換ではｘ方向またはｙ方向に並ぶｎ個の画素のうちのｍ個の画素が間引かれることになる。ここで、ｎ個の画素のうちの何番目の画素を間引くことでｍ個の画素を間引くのかを予め定めて情報として記憶しておき、解像度変換部３０が前記情報を参照して間引く画素を決定するように構成すれば、前処理部２８も前記情報を参照することで、解像度変換処理で間引かれる画素と解像度変換処理で間引かれない画素とを弁別できる。従って、解像度変換における変換倍率がｍ／ｎであっても本発明に係る前処理を実現可能である。また、変数ｎ,ｍの組み合わせが複数存在している場合にも、変数ｎ,ｍの各組み合わせ毎に前記情報を記憶しておけば対応可能である。
【０１１０】
更に、上記では解像度変換におけるｘ方向とｙ方向の変換倍率は等しい場合を説明したが、上記の実施形態で説明した解像度変換前処理では、ｘ方向とｙ方向とで別々に前処理を行うので、ｘ方向とｙ方向の変換倍率が相違している場合にも適用可能である。
【０１１１】
また、上記では解像度変換における変換倍率が、中間データ(ＰＤＬデータ)の解像度とプリンタ１８による画像印刷における解像度に応じて定まる態様を説明したが、これに限定されるものではない。例えば記録用紙への原稿の印刷サイズ等が別に指定される場合には、解像度変換における変換倍率は印刷サイズ等に応じて変化するので、指定された印刷サイズ等も取得し、取得した印刷サイズ等も勘案して解像度変換における変換倍率を判断するようにしてもよい。
【０１１２】
また、上記では本発明に係る画像処理プログラムの一例である中間データ処理プログラム６２がコンピュータ４０の記憶部４６に予め記憶（インストール）されている態様を説明したが、本発明に係る画像処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、ＵＳＢ等のインタフェースを介して電子機器と接続可能なフラッシュメモリ等の記録媒体に記録されている形態で提供することも可能である。
【符号の説明】
【０１１３】
１０  印刷システム
１２  クライアント端末
１４  中間データ生成・処理装置
１６  ＲＩＰ
１８  プリンタ
２６  中間データ生成部
２８  前処理部
３０  解像度変換部
４０  コンピュータ
４２  ＣＰＵ
４４  メモリ
４６  記憶部
６２  中間データ処理プログラム
【図１】
0006459815.tif 000004
【図２】
0006459815.tif 000005
【図３】
0006459815.tif 000006
【図４】
0006459815.tif 000007
【図５】
0006459815.tif 000008
【図６】
0006459815.tif 000009
【図７】
0006459815.tif 000010
【図８】
0006459815.tif 000011
【図９】
0006459815.tif 000012
【図１０】
0006459815.tif 000013
【図１１】
0006459815.tif 000014
【図１２】
0006459815.tif 000015