説明

画像処理装置及び画像処理プログラム

【課題】 ベジエ曲線の長さを算出する際の演算量を低減させる画像処理装置を提供することを目的とする。
【解決手段】 入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、始点と終点とを、その始点に近い制御点から順に線分で結んで得られる第1の折れ線の長さを算出し、始点と終点とを結んだ線分の長さを算出し、第1の折れ線の長さから、ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の折れ線の長さ及び第3の折れ線の長さの和、を引いた値が所定値未満の場合に、ベジエ曲線の長さを、第1の折れ線の長さと線分の長さの平均値として出力するベジエ曲線長計算部210gを有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【0002】
文書フォーマットの1つであるXPS(XML Paper Specification)では、破線を線分の長さに合わせるように調整する描画指定が可能である。当該調整は、ベジエ(Bezier)曲線についても適用されるため、ベジエ曲線の長さを算出することで、破線もこれに応じて調整されることとなる。
【0003】
印刷装置等に含まれる画像処理装置では、ベジエ曲線をド・カステリョの再帰分割法を用いて描画することが知られている。例えば、特許文献1では、ベジエ曲線を描画するにあたり、ベジエ曲線の制御点列等を順につないだ折れ線を近似して描画している。
【特許文献1】特開2002−117411号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、ベジエ曲線の長さを算出する際の演算量を低減させる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
請求項1に記載の発明は、入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、始点と終点とを、その始点に近い制御点から順に線分で結んで得られる第1の折れ線の長さを算出する第1算出手段と、始点と終点とを結んだ線分の長さを算出する第2算出手段と、第1の折れ線の長さから、ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の折れ線の長さ及び第3の折れ線の長さの和、を引いた値が所定値未満の場合に、ベジエ曲線の長さを、第1の折れ線の長さと線分の長さの平均値として出力する出力手段と、を有することを特徴とする画像処理装置である。
【0006】
請求項2に記載の発明は、入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、始点と終点とを、その始点に近い制御点から順に線分で結んで得られる折れ線の長さを算出する第1算出手段と、始点と終点とを結んだ第1の線分の長さを算出する第2算出手段と、ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の線分の長さ及び第3の線分の長さの和から第1の線分の長さを引いた値が所定値未満の場合に、ベジエ曲線の長さを、折れ線の長さと第1の線分の長さの平均値として出力する出力手段と、を有することを特徴とする画像処理装置である。
【0007】
請求項3に記載の発明は、請求項1または2に記載の発明において、分割されたベジエ曲線に基づき、再帰的にベジエ曲線の長さを出力することを特徴としている。
【0008】
請求項4に記載の発明は、請求項1から3のいずれか1項に記載の発明において、所定値が、ベジエ曲線の長さの精度に対して許容され得る誤差に関する設定値であることを特徴としている。
【0009】
請求項5に記載の発明は、コンピュータを、入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、始点と終点とを、その始点に近い制御点から順に線分で結んで得られる第1の折れ線の長さを算出する第1算出手段と、始点と終点とを結んだ線分の長さを算出する第2算出手段と、第1の折れ線の長さから、ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の折れ線の長さ及び第3の折れ線の長さの和、を引いた値が所定値未満の場合に、ベジエ曲線の長さを、第1の折れ線の長さと線分の長さの平均値として出力する出力手段として機能させることを特徴とする画像処理プログラムである。
【0010】
請求項6に記載の発明は、コンピュータを、入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、始点と終点とを、その始点に近い制御点から順に線分で結んで得られる折れ線の長さを算出する第1算出手段と、始点と終点とを結んだ第1の線分の長さを算出する第2算出手段と、ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の線分の長さ及び第3の線分の長さの和から第1の線分の長さを引いた値が所定値未満の場合に、ベジエ曲線の長さを、折れ線の長さと第1の線分の長さの平均値として出力する出力手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【0011】
請求項1に係る発明によれば、ベジエ曲線の長さを算出する際の演算量を低減させることができる。
【0012】
請求項2に係る発明によれば、ベジエ曲線の長さを算出する際の演算量を低減させることができる。
【0013】
請求項3に係る発明によれば、ベジエ曲線の長さの精度を高めることができる。
【0014】
請求項4に係る発明によれば、ベジエ曲線の長さの精度を決定する許容誤差を設定することができる。
【0015】
請求項5に係る発明によれば、ベジエ曲線の長さを算出する際の演算量を低減させることができる。
【0016】
請求項6に係る発明によれば、ベジエ曲線の長さを算出する際の演算量を低減させることができる。
【発明を実施するための最良の形態】
【0017】
(第1実施形態)
以下、本発明の第1実施形態について、図面を参照して具体的に説明する。
図1は本発明の第1実施形態に係る画像処理装置が適用可能な画像処理システムの構成図である。画像処理システムは、図1に示すように、PC100、印刷装置200等から構成されている。PC100、印刷装置200等は、ケーブルやネットワーク機器等で構成されるネットワーク300を介して互いに接続される。尚、ネットワーク300は、無線通信等によって通信されるようにしてもよい。
【0018】
PC100は、液晶ディスプレイやCRTディスプレイ等の表示装置110、本発明の入力手段の一例となるキーボードやマウス等の入力装置120、これらの動作を制御するコンピュータ130等で構成される。コンピュータ130は、利用者からの入力装置120に対する操作に応じて文書情報や画像情報等を生成し、さらに、当該文書情報等に対して入力装置120から印刷指示があると、その指示に応じてPDLデータ等の印刷情報を生成する。印刷情報は、例えばXPSデータ等圧縮された印刷情報であってもよい。印刷情報はネットワーク300を介して印刷装置200に送信される。なお、図1においては、1台のPC100が記載されているが、複数台であってもよい。
【0019】
印刷装置200は、レーザー光源、帯電器、反射ミラー、トナーカートリッジ等で構成されるプリンタエンジンと、所定の画像処理を行うとともに、当該プリンタエンジン等を制御する画像処理装置等とから構成される。画像処理装置は、印刷情報を受信すると、当該印刷情報の内容に応じた画像を形成して出力し、プリンタエンジンが当該画像を記録用紙等に印刷する。また、印刷情報が圧縮されていた場合には、必要に応じて解凍してから画像を形成する。
【0020】
尚、印刷装置200は、図面に記載されたものだけに限られず、例えば、印刷機能、複写機能、ファクシミリ機能、スキャナ機能、画像情報や電子メール等の送受信機能、ノイズ除去機能、OCR(Optical Character Reader)機能等を少なくとも1つ備える複合機等であってもよい。尚、OCR機能とは、光学的に文字を読取る処理をいう。また、使用する印刷装置の数についても図面に記載された数だけに限られない。
【0021】
続いて、本発明の実施形態に係る画像処理装置について図2を参照して説明する。
図2は上述した画像処理装置の要部構成を示す機能ブロック図である。
画像処理装置210は、図2に示すように、CPU210a等の処理装置、SRAM(Static Random Access Memory)、DRAM(Dynamic RAM)やSDRAM(Synchronous DRAM)等のRAM210b、フラッシュメモリ等のROM(Read Only Memory)210c、例えばPC100等の外部装置との入出力を行う入出力I/F(インタフェース)210d、プリンタエンジン220との入出力を行うプリンタエンジンI/F210e等が内部バス210fにより接続されたハードウェア構成と、ベジエ曲線の長さを計算するベジエ曲線長計算部210g等により実現される。
【0022】
したがって、CPU210aがROM210cに格納された所要のプログラムを読み込み、当該プログラムに従った演算を行うことにより、画像処理装置210内のベジエ曲線長計算部210gが実現される。尚、本発明の第1算出手段、第2算出手段、出力手段等は、ベジエ曲線長計算部210g等により構成される。
【0023】
以下、ベジエ曲線長計算部210gの動作について図3から図9を参照して詳細に説明する。
図3はベジエ曲線を示す図、図4はベジエ曲線長計算部の動作の一例を示すフローチャート、図5はベジエ曲線を示す他の図、図6は評価値を算出するためのフローチャートの一例、図7は多角形長を算出するためのフローチャートの一例、図8は平均長を算出するためのフローチャートの一例、図9は直線長を算出するためのフローチャートの一例である。
【0024】
ベジエ曲線は、図3に示すように、始点P0(x、y)、終点P3(x、y)、始点に近い方の制御点P1(x、y)、始点から遠い方の制御点P2(x、y)の4点によって表される曲線である。始点P0、制御点P1、P2及び終点P3は、利用者が入力装置120から入力した設定値によって決定される。
【0025】
また、図3に示すように、始点P0と終点P3とを、その始点に近い制御点から順に線分で結んで得られる折れ線の長さを以下においてベジエ多角形長といい、始点P0と終点P3とを結んだ線分の長さを以下においてベジエ直線長という。したがって、本実施形態では、図3に示すベジエ曲線の長さをベジエ多角形長及びベジエ直線長に基づいて算出するものである。
【0026】
ベジエ曲線長計算部210gは、まず、ド・カステリョのアルゴリズムに基づいて、ベジエ曲線を2分割する(ステップS1)。ド・カステリョのアルゴリズムとは、(n+1)個の制御点が与えられたとき、線形補間を繰り返すことでベジエ曲線を求めるアルゴリズムである。
【0027】
具体的には、図5に示すように、始点P0(図5においてlに相当)から制御点P1、制御点P2、終点P3(図5においてrに相当)の順に結んで得られる3つの線分P0−P1、線分P1−P2、線分P2−P3をそれぞれt:1−t(0<t<1)の比率で分割する点P4(図5においてlに相当)、P5、P6(図5においてrに相当)を算出する。さらに、2つの線分P4−P5、線分P5−P6、をそれぞれt:1−tの比率で分割する点P7(図5においてlに相当)、P8(図5においてrに相当)を算出する。さらに、線分P7−P8をt:1−tの比率で分割する点P9(図5においてlまたはrに相当)を算出する。このように算出された点P9に基づいて、ベジエ曲線長計算部210gは、ベジエ曲線P0−P3を、ベジエ曲線P0−P9とベジエ曲線P9−P3とに分割する。尚、tを0から1の範囲で変化させた場合のP9の軌跡がベジエ曲線となる。
【0028】
ベジエ曲線長計算部210gは、次いで、ベジエ曲線の長さの精度を評価する(ステップS2)。当該処理は、図6に示すように、評価値Errorを算出することで行われる。評価値Errorの算出処理は、図5にも示すように、ベジエ曲線P0−P3の多角形長から、ベジエ曲線P0−P9の多角形長(図6においてleftの多角形長と示す。)とベジエ曲線P9−P3の多角形長(図6においてrightの多角形長と示す。)との和を引いた値を算出することにより行われる(ステップS2A)。
【0029】
すなわち、図5において、ベジエ曲線P0−P3の多角形長Lengthは、線分P0−P1、線分P1−P2、線分P2−P3によって表される折れ線の長さを意味し、ベジエ曲線P0−P9の多角形長は、線分P0−P4、線分P4−P7、線分P7−P9によって表される折れ線の長さを意味し、ベジエ曲線P9−P3の多角形長は、線分P9−P8、線分P8−P6、線分P6−P3によって表される折れ線の長さを意味する。
【0030】
したがって、例えば、ベジエ曲線P0−P3の多角形長は、図7に示すように、三平方の定理から、√{(x−x+(y−y}+√{(x−x+(y−y}+√{(x−x+(y−y}で表され(ステップS2a)、ベジエ曲線P0−P9の多角形長やベジエ曲線P9−P3の多角形長についても、三平方の定理に基づく計算式により、算出されることとなる。
【0031】
ベジエ曲線長計算部210gは、図4に示すように、次いで、ステップS2の処理で算出された評価値Errorが所定値未満であるか否かを判定する(ステップS3)。当該所定値は、ベジエ曲線の長さの精度に対して許容され得る誤差に関する設定値であって、利用者が入力装置から入力した設定値によって決定される。当該所定値は、例えば、100分の1、1000分の1、10000分の1等で表され、所定値が小さくなればなるほど、ベジエ曲線の長さの精度が高くなる。
【0032】
ベジエ曲線長計算部210gは、ステップS3の処理において、評価値Errorが所定値未満であると判断した場合には、ベジエ曲線P0−P9の平均長(図4においてleftの平均長と示す。)とベジエ曲線P9−P3の平均長(図4においてrightの平均長と示す。)と和を算出し、当該和をもって、ベジエ曲線P0−P3の長さとする処理を行う(ステップS4)。
【0033】
ここで、ベジエ平均長とは、ベジエ多角形長とベジエ直線長の平均値をいい、図8に示すように、ベジエ多角形長とベジエ直線長との和を2で割ることにより算出される(ステップS4A)。また、ベジエ直線長Lengthは、図9に示すように、三平方の定理から、√{(x−x+(y−y}で表され、ベジエ曲線P0−P9のベジエ直線長やベジエ曲線P9−P3のベジエ直線長についても、三平方の定理に基づく計算式により、算出されることとなる。したがって、本実施形態においては、ベジエ曲線長を算出する際に使用される評価値Errorが許容誤差未満である場合には、ベジエ平均長によりベジエ曲線長を表すものである。尚、ベジエ平均長は、本実施形態では、相加平均を用いて算出したが、相乗平均を用いて算出したり、所望の重み付けを行った平均値を用いるようにしてもよい。
【0034】
一方で、ベジエ曲線長計算部210gは、図4に示すように、ステップS3の処理において、評価値Errorが所定値以上であると判断した場合には、ベジエ曲線P0−P9の長さを算出し(ステップS5)、さらに、ベジエ曲線P9−P3の長さを算出する(ステップS6)。ここで、これらの長さを算出する際にあっては、再度、図4に示すフローチャートを利用することとなる。すなわち、ベジエ曲線長を算出する際に使用される評価値Errorが許容誤差以上である場合には、分割後のベジエ曲線に対して再帰的に図4に示すフローチャートを繰り返す。この結果、ベジエ曲線長計算部210gは、分割後のベジエ曲線の評価値Errorが所定値(許容誤差)未満であると判断した場合、分割後のベジエ曲線の長さを分割後のベジエ曲線の平均長とし、これを足し合わせていくことにより、最終的なベジエ曲線の長さが算出されることとなる。算出結果は、破線をベジエ曲線の長さに合わせるように調整する際に使用される等、適宜、出力され、調整された破線が印刷装置等で記録用紙等に印刷される。
【0035】
図10は上述したベジエ曲線長計算部210gの動作結果を示す表である。
当該表は、ベジエ曲線の制御点を任意に設定し、10000回計算させた場合の動作結果を表す表である。図10に示すように、精度(許容誤差)を100分の1、1000分の1、10000分の1ごとに分割数及び処理時間を計測したものである。尚、精度はこれらの数値に限られず、精度を上げるために、数値をさらに小さくしてもよく、逆に、処理時間を短くするために、数値を大きくしてもよい。
【0036】
まず、分割数は10000回計算させた計算結果の平均値で示されている。図10に示すように、精度を100分の1と設定した場合には、従来であれば分割数が120回であったのに対し、本手法により18回となった。また、精度を1000分の1と設定した場合には、従来であれば分割数が300回であったのに対し、本手法により35回となっており、精度を10000分の1と設定した場合には、従来であれば分割数が800回であったのに対し、本手法により70回となった。したがって、分割数は本手法により概ね1/10に抑制され、これによりベジエ曲線の長さを算出する際の演算量が低減される。
【0037】
また、処理時間は、例えば精度を100分の1と設定した場合には、従来であれば3.2秒であったのに対し、本手法により0.5秒となった。また、精度を1000分の1と設定した場合には、従来であれば7秒であったのに対し、本手法により1秒となっており、精度を10000分の1と設定した場合には、従来であれば16秒であったのに対し、本手法により2秒となった。したがって、処理時間は本手法により概ね1/7に抑制され、従来に比して高速化される。
【0038】
(第2実施形態)
続いて、本発明の第2実施形態に係る画像処理装置について図11等を参照して説明する。第2実施形態に係る画像処理装置は、上述した評価値Errorの算出手法を変更したものである。本実施形態においても、第1実施形態と同様の効果を得る。
【0039】
本実施形態では、ベジエ曲線長計算部210gは、評価値Errorを算出するにあたって、図5及び図11に示すように、ベジエ曲線P0−P9のベジエ直線長(図11においてleftの直線長と示す。)とベジエ曲線P9−P3のベジエ直線長(図11においてrightの直線長と示す。)との和からベジエ曲線P0−P3の直線長を引いた値を算出する。
【0040】
ベジエ曲線P0−P9のベジエ直線長は、始点P0と制御点P9を結ぶ線分の長さを意味し、ベジエ曲線P9−P3のベジエ直線長は、制御点P9と終点点P3を結ぶ線分の長さを意味し、ベジエ曲線P0−P3のベジエ直線長は、始点P0と終点点P3を結ぶ線分の長さを意味する。このように、ベジエ直線長を用いることによっても、第1実施形態と同種の効果を得る。尚、各ベジエ直線長は図9に示す手法により算出される。
【0041】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。例えば、本発明のプログラムを通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。例えば、画像処理装置を構成する各手段は1つの装置に集約されているが、複数の装置に分散されて、各手段がそれぞれ機能するようにしてもよい。
【産業上の利用可能性】
【0042】
以上説明したように、本発明によれば、ベジエ曲線の長さをベジエ多角形長の長さとベジエ直線長の平均値とすることで、ベジエ曲線の長さを算出する際の演算量を低減させることができ、さらに、再帰的に処理を繰り返すことで、ベジエ曲線の長さの精度を向上させることができ、産業上の利用可能性が高い。
【図面の簡単な説明】
【0043】
【図1】画像処理システムの構成図である。
【図2】画像処理装置の要部構成を示す機能ブロック図である。
【図3】ベジエ曲線を示す図である。
【図4】ベジエ曲線長計算部の動作の一例を示すフローチャートである。
【図5】ベジエ曲線を示す他の図である。
【図6】評価値を算出するためのフローチャートの一例である。
【図7】多角形長を算出するためのフローチャートの一例である。
【図8】平均長を算出するためのフローチャートの一例である。
【図9】直線長を算出するためのフローチャートの一例である。
【図10】ベジエ曲線長計算部の動作結果を示す表である。
【図11】評価値を算出するためのフローチャートの他の一例である。
【符号の説明】
【0044】
100 PC
110 表示装置
120 入力装置
130 コンピュータ
200 印刷装置
210 画像処理装置
210a CPU
210b RAM
210c ROM
210d 入出力I/F
210e プリンタエンジンI/F
210f 内部バス
210g ベジエ曲線長計算部
220 プリンタエンジン
300 ネットワーク

【特許請求の範囲】
【請求項1】
入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、前記始点と前記終点とを、その始点に近い制御点から順に線分で結んで得られる第1の折れ線の長さを算出する第1算出手段と、
前記始点と前記終点とを結んだ線分の長さを算出する第2算出手段と、
前記第1の折れ線の長さから、前記ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の折れ線の長さ及び第3の折れ線の長さの和、を引いた値が所定値未満の場合に、ベジエ曲線の長さを、前記第1の折れ線の長さと前記線分の長さの平均値として出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項2】
入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、前記始点と前記終点とを、その始点に近い制御点から順に線分で結んで得られる折れ線の長さを算出する第1算出手段と、
前記始点と前記終点とを結んだ第1の線分の長さを算出する第2算出手段と、
前記ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の線分の長さ及び第3の線分の長さの和から前記第1の線分の長さを引いた値が所定値未満の場合に、ベジエ曲線の長さを、前記折れ線の長さと前記第1の線分の長さの平均値として出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項3】
前記出力手段は、分割されたベジエ曲線に基づき、再帰的にベジエ曲線の長さを出力することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記所定値は、前記ベジエ曲線の長さの精度に対して許容され得る誤差に関する設定値であることを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
コンピュータを、
入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、前記始点と前記終点とを、その始点に近い制御点から順に線分で結んで得られる第1の折れ線の長さを算出する第1算出手段と、
前記始点と前記終点とを結んだ線分の長さを算出する第2算出手段と、
前記第1の折れ線の長さから、前記ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の折れ線の長さ及び第3の折れ線の長さの和、を引いた値が所定値未満の場合に、ベジエ曲線の長さを、前記第1の折れ線の長さと前記線分の長さの平均値として出力する出力手段として機能させることを特徴とする画像処理プログラム。
【請求項6】
コンピュータを、
入力手段から設定されたベジエ曲線に関する始点、制御点及び終点の各位置情報に基づいて、前記始点と前記終点とを、その始点に近い制御点から順に線分で結んで得られる折れ線の長さを算出する第1算出手段と、
前記始点と前記終点とを結んだ第1の線分の長さを算出する第2算出手段と、
前記ベジエ曲線をド・カステリョのアルゴリズムに基づき2分割して得られる第1のベジエ曲線及び第2のベジエ曲線であって、これらのベジエ曲線に基づく第2の線分の長さ及び第3の線分の長さの和から前記第1の線分の長さを引いた値が所定値未満の場合に、ベジエ曲線の長さを、前記折れ線の長さと前記第1の線分の長さの平均値として出力する出力手段として機能させることを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate