以下、本発明の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体を適用した実施の形態について説明する。
ここで、実施の形態の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体について説明する前に、図1を用いて、描画制御装置で描画を行う際の問題点について説明する。
図2は、描画制御装置で描画を行う際の問題点を説明するための図である。
例えば、長方形のように幅広い形状を描画する場合には、レーザを照射することにより、図2(A)に示すように、上から下に直線を描画していき、一つ一つの直線は、左から右に描画していくこととする。
この場合は、レーザを左から右に走査し、点a1から点a2まで直線Aを引き、次に、レーザを照射せずに点a2から一行下の点b1まで空走し、点b1から再びレーザを右方向に走査し始め、点b2まで直線Bを引くことになる。
区間1について直線Aを引いた後に、一行下に直線Bを引く際には、直線Aを引いたことによって区間1の端から端まで略一律に加熱されており、余熱が残っている。
このため、直線Aの一行下に隣接する領域の点b1から点b2にかけて直線Bを引く場合は、点a1から点a2の区間の余熱を考慮して、直線Aを引いたときよりもレーザ出力を低くして描画を行えば、直線Bを引く際に点b1と点b2との間の区間が受ける熱量は、最初に直線Aを引いた際に点a1と点a2との間の区間が受けた熱量と等しくすることができ、直線Bについても問題なく描画を行うことができる。なお、直線Aと直線Bを引く際のレーザの走査速度は同一であり、レーザの走査速度は描画対象を描画する際の描画速度である。
次に、図2(B)のように、ビットマップ画像を描画する場合において、直線A1、A2、A3を引いた後に、直線Bを引こうとする場合は、直線A1、A2、A3が途切れ途切れになっているため、区間1〜区間5の各々余熱は一定ではなくなっている。
区間1、3、5では、直線Bを引く直前に直線A1、A2、A3が描画されているため余熱がある。このため、直線Bを描画する際には、区間1、3、5においてレーザ出力を低下させる必要が生じる。
一方、区間2、4では、直線Bを引く直前に直線は描かれておらず、余熱がないため、レーザ出力を低下させる必要はない。
以上のように、ビットマップ画像を描画する場合は、これから引こうとする直線Bよりも前に引かれた直線A1、A2、A3による余熱を考慮しなければ、正確な描画を行うことができない。
ここで、余熱が冷めるのを待つために、待機時間を設けることが考えられるが、待機時間を設けると、描画時間が長くなるという問題が生じる。
ところで、描画時間を短縮するためにレーザの走査速度を高速化するためには、レーザの走査を往復させることが望ましい。
これは、図2(A)、図2(B)に示すように片道(左から右)だけで走査すると、一行毎に空走区間を介して左側に戻る必要があるが、往復走査で描画を行うようにすれば、空走区間が短くて済むためである。
しかしながら、図2(A)に示す直線Aを引いた直後において、点a1と点a2では、点a2の方が余熱が高い。
このため、往復走査で描画を行うと、復路の開始直後は余熱が大きく温度が高いが、終了直前は時間の経過により温度が低下するため、復路を描画するためのレーザ出力を一定にしては媒体を適切に加熱できず、正確な描画を行うことができないという問題が生じる。
さらに、ビットマップ画像の場合は、直前に引かれた線の有無という要因が加わるので、直前の直線の有無に応じてレーザによる加熱量を調整する必要がある。
図2(C)は、ビットマップ画像を往復走査で描画する例である。
直線Bを引く直前に直線A1、A2、A3を引いた区間5、区間3、区間1では、直線Bを点b1から点b2に引く際には、加熱量を落とさなければならないが、直線A1、A2、A3を引いてから経過した経過時間が各区間で異なるので、余熱量が異なる。
区間5は直線A3を引いてからの経過時間が区間3、区間1よりも短いので、直線Bを引く際の加熱量を抑え、区間3では区間5に比べると経過時間が長いので加熱量を少し多くにしなければならず、区間2では区間3よりも経過時間が長いので加熱量をさらに多くにしなければならない。
また、一つの区間の中でも、右と左では経過時間が異なるため、区間内でも加熱量を制御することが望ましい。
本発明は、短時間で媒体に正確な描画を行うことのできる描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体を提供することを目的とする。
次に、図3を用いて、本発明の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体により、短時間で媒体に正確な描画を行うために、媒体に与える熱量の算出方法の基本的な考え方について説明する。
図3は、本発明の描画制御装置及び描画制御方法において、短時間で媒体に正確な描画を行うために、媒体に与える熱量の算出方法の基本的な考え方を説明するための図である。
図3に示すように、レーザを左から右に走査して、点a1から点a2の間に直線Aを描画した後に、直線Aの一行下に隣接する微小領域である点bにおける媒体の温度がどのように変化するかを考える。
媒体上のある点bの温度Tの変化の割合は、点bの温度Tと、点bの周囲の温度Tsの差T−Tsに比例する。ここで、温度Tsは、点bの周囲の任意の点における媒体の温度であり、直線Aを引いたことによる加熱の影響を受けていない点の温度であるとする。
温度Tは時間の関数であるから、次の微分方程式が成り立つ。
ここで、tは時間、kは冷却定数と呼ばれる定数であり、実験的に求める。
式(1)を解くと、式(2)を得る。
ここで、Tは、直線Aを引いたことによる媒体の加熱直後からの経過時間tにおける点bでの媒体の温度、kは媒体の性質により定まる冷却定数、Tsは周囲の温度、T0は加熱直後の点bにおける媒体の温度である。
なお、冷却定数kは、一行上に隣接するストロークの無い孤立したストロークを描画する場合と、一行上に隣接するストロークがあるストロークを描画する場合とを考慮して、実験的に最適値に決定すればよい。
次に、点bにレーザを照射し描画する場合を考える。温度をTsからTe(発色温度)に上昇させるための熱量をQs、TからTeまでに上昇させるための熱量をQとする。必要な熱量は温度差に比例すると考えると、式(3)を得る。
よって、経過時間tが経過した際に点bで媒体を発色させるために必要な熱量Qは式(4)で表すことができる。
以下で説明する実施の形態の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体では、上述の熱量の算出方法を用いる。
次に、実施の形態の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体を説明するにあたり、用語の定義について説明する。
以下の実施の形態では、「描画対象」なる文言は、文字、数字、記号、図形等の描画の対象を表すものとして用いる。また、「文字」とは、遍(へん)や旁(つくり)、又は、更にその一部等、文字の全体又は一部を表す文言として用いる。同様に、「数字」、「記号」、「図形」は、数字、記号、図形の全体又は一部を表す文言として用いる。
「ストローク」とは、描画が開始される位置から次に描画が終了される位置までに連続的に描画される一又は複数の線分(ストローク片)を含むものとして用いる。例えば、レーザ照射で描画を行う場合は、レーザの1回の照射開始点から照射終了点までに描画される文字等の一画がストロークとなる。ストロークは、両端の座標が決まっており、レーザの照射範囲に対応する太さ(幅)を有する。ストロークは、直線の一部だけでなく、曲線の一部であってもよい。
「ストローク片」とは、ストロークに含まれる線分であり、レーザの出力又は走査速度を個別に設定できる最小単位である。ストローク片は、ストロークと同一の幅を有する。
ストローク片は、例えば、ストロークを所定の長さ(ΔX)のストローク片に分割することによって生成することができる。ストローク片(ΔX)の長さは、任意の長さに設定することができる。ストローク片は、長さΔXで、ストロークと同一の幅を有する領域を描画するために用いられる。ストローク片は、湾曲している領域を描画するように用いられてもよい。
以上より、文字、数字、記号、図形等の描画対象は、1以上のストロークを含み、ストロークは、1以上のストローク片を含む。
なお、実施の形態のストローク(一画)は、公的機関(例えば、日本規格協会、ISO等)等が定める一画と同じであってもよいし異なっていてもよい。
また、「描画順」なる文言は、描画対象に含まれるストローク片を描画する順(ストローク片をどちらの端部から描画するかという描画順も含む)と、文章等に含まれる複数の描画対象の各々を描画する順との2つの意味を有するものとして用いる。
以下、実施の形態1乃至5の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体について説明する。
<実施の形態1>
図4は、実施の形態1の描画制御装置を含むレーザマーキング装置のハードウェア構成の一例を示す図である。
レーザマーキング装置100は、レーザを照射する描画装置10、及び、描画装置10の描画を制御する描画制御装置20を有する。描画装置10は、レーザを照射するレーザ発振器11、レーザの照射方向を変える方向制御ミラー13、方向制御ミラー13を駆動する方向制御モータ12、光学レンズ14、及び集光レンズ15を含む。
レーザ発振器11は、半導体レーザ(LD(Laser Diode))であるが、気体レーザ、固体レーザ、液体レーザ等でもよい。方向制御モータ12は、方向制御ミラー13の反射面の向きを2軸に制御する例えばサーボモータである。方向制御モータ12と方向制御ミラー13とによりガルバノミラーを構成する。光学レンズ14は、レーザ光のスポット径を大きくするレンズであり、集光レンズ15はレーザ光を収束させるレンズである。
サーマルリライタブル媒体50は、180℃以上の温度に加熱して急冷することで発色し、130〜170℃の温度に加熱することで消色する書き換え可能な感熱媒体である。通常の感熱紙やサーマルリライタブル媒体は近赤外領域のレーザ光を吸収しないので、近赤外レーザ波長を発振するレーザ光源(半導体レーザや固体レーザのYAG等)を用いる場合は、感熱紙、サーマルリライタブル媒体にレーザ光を吸収する材料の添加や層を追加する必要がある。なお、書き換えとは、レーザ光で加熱して記録を行い、レーザ光又は温風、ホットスタンプ等で加熱して消去することである。また、書き換えができないサーマルペーパとは、加熱により消色が困難な感熱紙をいう。本実施の形態では、使用する媒体の例として、サーマルリライタブル媒体50を使用した場合を説明するが、書き換えができないサーマルペーパ、プラスチック、金属等のように書き換えが可能でない媒体に対しても、好適に適用できる。
図5は、実施の形態1の描画制御装置20のハードウェア構成の一例を示す図である。図5は、主にソフトウェアによって描画制御装置20を実装する場合のハードウェア構成図であり、コンピュータを実体としている。コンピュータを実体とせず描画制御装置20を実現する場合、ASIC((Application Specific Integrated Circuit))等の特定機能向けに生成されたICを利用する。
描画制御装置20は、CPU31、メモリ32、ハードディスク35、入力装置36、CD−ROMドライブ33、ディスプレイ37、及びネットワーク装置34を有する。
ハードディスク35には、ストロークフォントの一連の文字のフォントデータを記憶するフォントデータDB41、フォントデータから重複を排除した描画命令を生成し描画装置10を制御する文字描画プログラム42、及び描画命令DBが記憶されている。なお、ハードディスク35は、描画対象の描画に必要なその他のデータも記憶する。
CPU31は、ハードディスク35から文字描画プログラム42を読み出して実行し、後述する手順で、サーマルリライタブル媒体50に文字を描画する。メモリ32は、DRAM等の揮発性メモリで、CPU31が文字描画プログラム42を実行する際の作業エリアとなる。
入力装置36は、マウスやキーボード等の描画装置10を制御する指示をユーザが入力するための装置であり、さらに、スキャナのように描画対象を読み取る装置を含んでもよい。
サーマルリライタブル媒体50に描画する文章又は図形(以下、文章等)や、文章等に含まれる描画対象のサイズ等を表す描画条件は、例えば、入力装置36を介してユーザによって入力され、例えば、ハードディスク35に記憶される。描画条件には、文章等の中における各描画対象の位置、及びサイズ等を表すデータが含まれる。
ディスプレイ37は、例えば文字描画プログラム42が指示する画面情報に基づき所定の解像度や色数で、GUI(Graphical User Interface)画面を表示するユーザインターフェイスとなる。例えば、サーマルリライタブル媒体50に描画する文字の入力欄が表示される。
CD−ROMドライブ33は、CD-ROM38を脱着可能に構成され、CD−ROM38からデータを読み出し、また、記録可能な記録媒体にデータを書き込む際に利用される。フォントデータDB41、及び文字描画プログラム42は、CD-ROM38に記憶された状態で配布され、CD-ROM38から読み出されてハードディスク35にインストールされる。CD−ROM38は、この他、DVD、ブルーレイディスク、SDカード、メモリースティック(登録商標)、マルチメディアカード、xDカード等、不揮発性のメモリで代用することができる。
ネットワーク装置34は、LANやインターネット等のネットワークに接続するためのインターフェイス(例えばイーサネット(登録商標)カード)であり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行して、描画装置10に文字コードに応じた描画命令を送信することを可能とする。フォントデータDB41、及び文字描画プログラム42は、ネットワークを介して接続した所定のサーバからダウンロードすることができる。なお、ネットワーク経由でなく、USB(Universal Serial Bus)、IEEE1394、ワイヤレスUSB、Bluetooth等で直接、描画制御装置20と描画装置10を接続してもよい。
サーマルリライタブル媒体50に描画される描画対象は、入力装置36から入力され、ハードディスク35に記憶されている。
描画対象が文字である場合は、描画対象は、UNICODEやJISコード等の文字コードで特定され、描画制御装置20は文字コードに対応する文字のフォントデータをフォントデータDB41から読み出し、描画装置10を制御するための描画命令を生成する際に用いる。
また、描画対象が図形である場合は、描画対象は、例えば、ビットマップ画像を表すビットマップ画像データで特定される。
次に、図6を用いて、実施の形態1の描画制御装置20について説明する。なお、ここでは、描画対象がビットマップ画像データで表される図形である場合について説明する。
図6は、実施の形態1の描画制御装置20の機能ブロック図である。
実施の形態1の描画制御装置20は、主制御部201、ストローク情報生成部202、ストローク片生成部203、描画順決定部204、速度設定部205、空走区間設定部206、待機時間設定部207、隣接ストローク判定部208、経過時間算出部209、レーザ出力設定部210、描画命令生成部211、及びデータ格納部212を含む。
主制御部201は、実施の形態1の描画制御装置20の処理を統括する制御部である。
ストローク情報生成部202は、描画対象を表すビットマップ画像データからストローク情報を生成する。ストローク情報は、ストロークの両端の座標を表すデータである。ストローク情報生成部202は、例えば、XY座標(X軸は横向きで右方向が正、Y軸は縦向きで下方向が正)において、ビットマップデータからX軸方向のストローク情報を生成する。
ストローク片生成部203は、ストローク情報生成部202が生成するストローク情報が表すストロークを所定の長さ(ΔX)毎に分割することにより、長さΔXのストローク片を生成する。実施の形態1の描画制御装置20は、描画対象をストローク片毎に分割して描画命令を生成する。
ここで、描画対象をストローク片に分割することは、描画対象をストローク片の大きさで決まる矩形領域に分割することであり、すなわち、描画対象をメッシュ状に分割することである。
描画順決定部204は、ストローク情報生成部202が生成するストローク情報が表すストロークを描画する順番を決定する。描画順は、例えば、描画対象の全体を描画する際に、最も効率良く描画できるように、各ストロークの両端の位置に応じて決定される。
速度設定部205は、各ストローク片を描画する際のレーザの走査速度を設定する。速度設定部205は、経過時間が短いほど、レーザの走査速度を高速にする。
空走区間設定部206は、ストロークの終点から次のストロークの始点に移動する際に、描画を行わずにレーザの照射点を移動させるための空走区間を設定する。空走区間は、例えば、描画順と同様に、描画対象の全体を描画する際に、最も効率良く描画できるように、各ストロークの両端の位置に応じて決定される。
待機時間設定部207は、空走区間の始点と終点において、ガルバノミラーが安定するのを待機するための待機時間を設定する。
隣接ストローク判定部208は、ストローク片を描画する際に、一行上に隣接するストローク片があるか否かを判定する。実施の形態1では、往復走査をするため、一行上に隣接するストローク片とは、描画命令の生成対象となるストローク片の始点とX座標が同一の終点を有するストローク片であって、描画命令の生成対象となるストローク片の一行上に生成されるストローク片をいう。
なお、片道走査で描画を行う場合は、一行上に隣接するストローク片は、描画命令の生成対象となるストローク片の始点(又は終点)とX座標が同一の始点(又は終点)を有するストローク片であって、描画命令の生成対象となるストローク片の一行上に生成されるストローク片にすればよい。
経過時間算出部209は、ストローク片を描画する際に、一行上に隣接するストローク片の描画終了時からの経過時間を算出する。
レーザ出力設定部210は、隣接ストローク判定部208の判定結果と、経過時間算出部209が算出する経過時間とに基づき、ストローク片を描画する際のレーザの出力を設定する。出力決定部210は、経過時間が短いほど、レーザの出力を低くする。
描画命令生成部211は、描画順決定部204が決定する描画順、速度設定部205が設定するレーザの走査速度、空走区間設定部206が設定する空走区間、待機時間設定部207が設定する待機時間、及びレーザ出力設定部210が決定するストローク片を描画する際のレーザの出力に基づき、描画命令を生成する。描画命令生成部211は、生成した描画命令を描画命令DBに格納する。
データ格納部212は、ストローク情報生成部202が生成するストローク情報、ストローク片生成部203が生成するストローク片の両端の座標を表すストローク片情報、描画順決定部204が決定する描画順、速度設定部205が設定するレーザの走査速度、空走区間設定部206が設定する空走区間、待機時間設定部207が設定する待機時間、レーザ出力設定部210が決定するストローク片を描画する際のレーザの出力、描画命令生成部211が生成する描画命令を格納する。
データ格納部212は、図5に示すメモリ32又はハードディスクによって実現される。
次に、図7を用いて、実施の形態1の描画制御装置20のストローク情報生成部202が描画対象を表すビットマップ画像データからストローク情報を生成する手法について説明する。
図7は、実施の形態1の描画制御装置20のストローク情報生成部202が描画対象を表すビットマップ画像データからストローク情報を生成する手法を示す図である。
ストローク情報生成部202は、図7に示すビットマップ画像データについて、上から下に向けて、所定のピッチで左右に往復(往復走査)しながら、ビットマップ画像データを(1)〜(5)で示す矢印の方向にスキャンし、描画対象がある区間についてストロークを生成する。なお、描画対象がない区間についてはスキャンを行わない。
図7では、ストローク情報生成部202は、上から下にかけて順番に、ストローク1〜8を生成する。
以上のようにして、ストローク情報生成部202は、ストローク1〜8を表すストローク情報を生成する。
なお、図7には、説明の便宜上、ビットマップ画像データの一部分についてストロークを生成する手法を示すが、ストローク情報生成部202は、ビットマップ画像データの全体についてストロークの生成を行う。
また、ストローク片生成部203は、図7に示すストローク1〜8を、さらに所定の長さ(ΔX)のストローク片に分割するが、ストローク片については、後述する。
次に、実施の形態1の描画制御装置20が描画対象の描画する際のレーザの出力について説明する。
実施の形態1では、各ストローク片を描画する際に、一行上に既に描画したストローク片がある場合に、一行上のストローク片を描画する時刻からの経過時間に応じてレーザの出力を調整することにより、正確な描画を行う。なお、一行上に既に描画したストローク片がある/なしに拘わらず、レーザの走査速度は一定に保持する。
ここで、式(4)で表されるサーマルリライタブル媒体50を発色させるために必要な熱量Qが、レーザの出力に比例すると考えると、あるストローク片を描画する際に必要なレーザの出力Pは、式(5)で表すことができる。
ただし、Psは、ある一定の走査速度Vsにおいて、周囲に他のストローク片が存在しない単独のストローク片をサーマルリライタブル媒体50に描画する際に必要なレーザの出力である。ここで、走査速度Vsは走査速度のデフォルト値であり、レーザ出力Psはレーザ出力のデフォルト値である。
また、kはサーマルリライタブル媒体50の冷却定数である。tは、一行上のストローク片の描画が終了する時刻からの経過時間である。
実施の形態1の描画制御装置20は、式(5)で表されるレーザの出力を用いて描画対象の描画を行う。
次に、図8及び図9を用いて、実施の形態1の描画制御装置20による描画制御処理について説明する。
図8は、実施の形態1の描画制御装置20が実行する描画制御処理を示すフローチャートである。図8に示すフローチャートは、実施の形態1の描画制御方法を表す。この描画制御方法は、実施の形態1の描画制御プログラムを実行することによって実現される。
図9は、実施の形態1の描画制御装置20が実行する描画制御処理によって描画される図形の一部を表す図である。実施の形態1では、描画対象をサーマルリライタブル媒体50に描画する際に、往復走査を行うこととする。
描画制御装置20は、ストローク情報を生成する(ステップS1)。ステップS1の処理は、描画制御装置20のストローク情報生成部202が実行する処理である。
ストローク情報生成部202は、ストロークをスキャンした順番にデータ格納部212に格納する。例えば、図7に示すようにストローク1〜ストローク8を生成した場合は、ストローク情報生成部202は、ストローク1〜ストローク8の順番にデータ格納部212に格納する。
次に、描画制御装置20は、描画する速度を標準速度(Vs)に設定する(ステップS2)。ステップS2の処理は、描画制御装置20の速度設定部205が実行する処理である。
次に、描画制御装置20は、データ格納部212に格納されたストローク情報を順番の若い方から1本読み出す(ステップS3)。例えば、図9では、最初のストロークは、一番上のストローク(点(7)から始まるストローク)となる。なお、ステップS3の処理は、描画制御装置20の主制御部201によって実行される。
次に、描画制御装置20は、空走区間を設定する(ステップS4)。ステップS4の処理は、描画制御装置20の空走区間設定部206が実行する処理である。この空走区間は、レーザを照射せずにガルバノミラーの焦点を動かす区間であり、描画命令に含まれる。すなわち、ステップS4の処理は、描画するストロークの始点にガルバノミラーの焦点を移動させるための処理である。例えば、図9では、ガルバノミラーの焦点が点(7)に移動される。
待機時間設定部207は、空走区間の前後に待機時間を設定する。待機時間は、ガルバノミラーの特性、走査速度、及び空走速度に基づいて、予め定められた所定の時間であり、描画から空走に切り替えるときと、空走から描画に切り替えるときの両方の場合(すなわち、空走区間の前後)について設定される。
次に、描画制御装置20は、一行上に隣接するストローク片があるか否かを判定する(ステップS5)。ステップS5の処理は、描画制御装置20の隣接ストローク判定部208が実行する処理である。
図9に示す点(7)は、最初に描画されるストロークの始点であるため、一行上のストローク片は存在せず、ステップS5はNOと判定される。
ステップS5では、ストローク毎ではなく、ストローク片毎に判定が行われる。
描画制御装置20は、ステップS5で一行上のストロークは存在しない(S5:NO)と判定すると、レーザの出力を標準出力Psに設定する(ステップS6)。
描画制御装置20は、ステップS6でレーザの出力を設定したストローク片の描画命令を描画命令DBに格納する(ステップS9)。ステップS9の処理は、描画制御装置20の描画命令生成部211が実行する処理である。
描画命令は、ステップS2で設定したレーザの走査速度、ステップS6で設定したレーザの出力、及びストローク片の両端の座標を含む。
描画制御装置20は、現在処理中のストローク片の終点が、そのストローク片を含むストロークの終点であるか否かを判定する(ステップS10)。ステップS10の処理は、描画制御装置20の主制御部201が実行する処理である。
現在処理中のストローク片の終点が、そのストローク片を含むストロークの終点であるか否かは、例えば、ストローク片の終点の座標と、ストロークの終点の座標を比較することによって行えばよい。
描画制御装置20は、ストロークの終点ではないと判定すると(S10:NO)、フローをステップS11に進行させる。
描画制御装置20は、次のストローク片を選択する(ステップS11)。ステップS11の処理は、描画制御装置20の主制御部201が実行する処理である。
次のストローク片は、始点と終点の座標がΔX増大した値で表される。
ステップS11の処理が終了すると、描画制御装置20は、フローをステップS5にリターンする。これにより、描画制御装置20は、ストロークの終点に辿り着くまでステップS5〜S10の処理を繰り返し実行する。
描画制御装置20は、ステップS10でストロークの終点であると判定すると(S10:YES)、すべてのストロークについて描画命令を生成したか否かを判定する(ステップS12)。
例えば、図9において、点(7)からストローク片毎に処理を実行して点(11)まで辿り着くと、まだすべてのストロークについての処理が終了していないため、描画制御装置20は、すべてのストロークについて描画命令を生成していないと判定し(S12:NO)、フローをステップS3にリターンする。
ここで、ステップS3にリターンした際に、描画制御装置20が図9に示す点(1)から始まるストロークを読み出したとする。
描画制御装置20の空走区間設定部206は、ステップS4において、図9に示す点(3)から点(1)に空走するための空走区間を設定する。
次に、ステップS5では、図9において、点(1)の一行上には、ストロークが存在するため(S5:YES)、フローはステップS7に進行する。
描画制御装置20は、一行上に隣接するストローク片の描画が終了してから、現在描画命令を作成中のストローク片の描画を開始するまでの経過時間を算出する(ステップS7)。ステップS7は、描画制御装置20の経過時間算出部209が実行する処理である。
ここで、経過時間をΔtとすると、経過時間は、<1>一行上のストローク片の描画が終了してから、現在描画命令を作成中のストローク片を描画するまでの間に描画を行うストローク片の描画にかかる時間Δt1、<2>空走時間Δt2、及び<3>待機時間Δt3の合計(Δt1+Δt2+Δt3)で表される。
一行上のストローク片の描画が終了してから、現在描画命令を作成中のストローク片を描画するまでの間に描画を行うストローク片の描画にかかる時間Δt1は、図9では、点(12)と点(2)の間のストローク片の描画を終了した後に、点(1)から始まるストローク片の描画を行う前に描画を行うストローク片の描画に係る時間である。このため、図9では、点(2)と点(3)の間のストローク片の描画に要する時間である。従って、Δt1=ΔX/Vsとなる。
空走時間Δt2は、一行上のストローク片の描画が終了してから、現在描画命令を作成中のストローク片を描画するまでの間に存在する空走区間に要する時間であるため、空走区間の始点及び終点の座標と、空走速度Vjとに基づいて求めることができる。
空走区間の始点の座標を(x1,y1)、終点の座標路(x2,y2)とすると、式(6)で表すことができる。
図9では、点(3)から点(2)に空走する空走区間の所要時間として求まる。
待機時間Δt3は、空走区間の前後に設定する時間であり、ガルバノミラーの特性、走査速度、及び空走速度に基づいて、予め定められた所定の時間である。ここで、描画から空走に切り替えるときの待機時間twj、空走から描画に切り替えるときの待機時間twdとすると、Δt3=twj+twdである。
ステップS7では、上述のΔt1、Δt2、Δt3の合計時間であるΔtを経過時間算出部209が求める。
次いで、描画制御装置20は、レーザの出力を設定する(ステップS8)。ステップS8の処理は、描画制御装置20のレーザ出力設定部210が実行する処理である。
レーザ出力設定部210は、ステップS7において経過時間算出部209が算出した経過時間Δtを用いて、式(5)に基づいてレーザの出力を算出する。
ステップS8の処理が終了すると、ステップS9において、ステップS8でレーザの出力を設定したストローク片の描画命令を描画命令DBに格納する。
描画命令は、ステップS2で設定したレーザの走査速度、ステップS8で設定したレーザの出力、及びストローク片の両端の座標を含む。
図9では、点(1)と点(6)の間のストローク片の描画命令が描画命令DBに格納される。
以上の処理を繰り返し実行することにより、ステップS12において描画制御装置20がすべてのストロークについて描画命令を生成したと判定すると(S12:YES)、描画制御装置20はフローをステップS13に進行する。
描画制御装置20は、描画命令の統合を行う(ステップS13)。ステップS13の処理は、描画制御装置20の描画命令生成部211が実行する処理である。
描画命令の統合処理は、必須の処理ではないが、データ量を圧縮するために行う処理である。
主制御部210は、例えば、同一のストロークに含まれるストローク片のうち、互いに連続するストローク片同士であって、レーザ出力が同一のストローク片同士の描画命令を統合する。
ここで、図10を用いて描画命令の統合処理について説明する。
図10は、描画命令の統合処理について説明するための図である。
図10(A)に示す矢印は、各ストローク片を示している。上述のステップS1〜S12の処理により、各矢印で示されるストローク片についての描画命令が生成される。
ここで、同一のストロークに含まれるストローク片であって、レーザ出力が同一であるストローク片同士の描画命令を統合すると、図10(A)に示す矢印A1〜A5は、描画命令が統合され、図10(B)に矢印B1で示すように、一つの描画命令で描画されることになる。
描画制御装置20は、描画命令を出力する(ステップS14)。ステップS14の処理は、描画制御装置20の描画命令生成部211が実行する処理である。画命令生成部211は、描画命令を描画装置10に入力する。これにより、描画装置10において、一行上の描画時刻からの経過時刻に応じてレーザの出力を調整することにより、正確な描画が行われる。
以上により、実施の形態1の描画制御装置20によれば、一行上のストローク片の描画終了時刻からの経過時間に応じてレーザの出力を設定することができる。この結果、一行上のストローク片の描画によってサーマルリライタブル媒体50に余熱がある状態でも、レーザの出力を調節することにより、正確に描画を行うことができる。
また、実施の形態1の描画制御装置20は、上述のようにレーザの出力を調整しているので、往復走査を行っても、正確な描画を行うことができ、描画時間の短縮を図ることができる。
図11は、実施の形態1の描画制御装置20が生成する描画命令の一例を示す図である。
図11(A)に示す5本のストロークは、図9に示す5本のストロークと同一のストロークである。
図11(A)に示すように、描画を行う領域の左上に原点Oをとり、横方向にX軸(右方向を正)、縦方向にY軸(下方向を正)とする。
図11(A)に示す点(7)は(X,Y)=(10,10)、点(10)は(X,Y)=(40,10)、点(11)は(X,Y)=(60,10)、点(12)は(X,Y)=(70,10)、点(2)は(X,Y)=(80,10)、点(1)は(X,Y)=(90,10)、点(1)は(X,Y)=(80,20)、点(6)は(X,Y)=(70,20)、点(13)は(X,Y)=(60,20)、点(9)は(X,Y)=(50,20)、点(8)は(X,Y)=(40,20)、点(4)は(X,Y)=(30,20)、点(5)は(X,Y)=(20,20)、点(14)は(X,Y)=(0,20)とする。
また、ここで、描画命令において、ストロークの太さをt、レーザ非照射で指定座標までの移動(空走)をm、指定座標までの直線描画をd、待機時間をw(msec(ミリ秒))、レーザ出力(レーザ出力のデフォルト値に対する割合(百分率(%)))をp、走査速度(走査速度のデフォルト値に対する割合(百分率(%)))をsとする。
図11(A)に示す5本のストロークを最も上の行の最も原点Oに近い点(7)から描画するための描画命令は、図11(B)に示す通りである。
図11(B)に示す描画命令は、まず、走査速度sを100(%)に設定し、ストロークの太さtを10(ポイント)に設定し、空走により(X,Y)=(10,10)の点(7)まで空走する(m)。
次に、レーザ出力(p)を100%に設定し、(X,Y)=(60,10)まで直線描画を行う(d)。
次に、(X,Y)=(70,10)まで空走し(m)、(X,Y)=(90,10)まで直線描画を行う(d)。これにより、点(3)までが描画される。
次に、点(3)で待機時間wを50(msec)に設定し、(X,Y)=(80,20)である点(1)まで空走する(m)。
点(1)では一行上に描かれたストロークがあるため、レーザ出力pをデフォルト値Psの20%に設定し、(X,Y)=(70,20)の点(6)まで直線描画を行う(d)。
点(6)では、一行上にストロークがないため、レーザ出力pを100%に戻し、(X,Y)=(60,20)の点(13)まで直線描画を行う(d)。
点(13)からは一行上にストロークがあるため、レーザ出力pを50(%)に低下させ、(X,Y)=(50,20)の点(9)まで直線描画を行う(d)。
点(9)では、引き続き一行上にストロークがあるため、レーザ出力pを60(%)に設定し、(X,Y)=(40,20)の点(8)まで直線描画を行う(d)。
点(8)では、引き続き一行上にストロークがあるため、レーザ出力を70(%)に設定し、(X,Y)=(30,20)の点(4)まで直線描画を行う(d)。
次に、(X,Y)=(20,20)の点(5)まで空走する(m)。
点(5)からは、一行上にストロークがあるため、レーザ出力を78(%)に設定し、(X,Y)=(10,20)の点(14)まで直線描画を行う(d)。
点(14)からは一行上にストロークが存在しないため、レーザ出力を100(%)に設定し、(X,Y)=(0,20)の点(15)まで直線描画を行う(d)。
以上により、一行上のストロークの描画が終了してからの経過時間に応じてレーザ出力を調整しながら、点(7)から点(15)まで4本のストロークを引くことができる。
なお、点(14)から点(4)の一行下に位置するストロークも同様に描画することができる。
なお、以上では、描画対象がビットマップ画像データで表される図形である場合について説明したが、描画対象は、文字であってもよい。特に、文字を太く描画する際には、実施の形態1の描画制御装置20で描画を行えば、短時間で正確に文字を描くことができる。
<実施の形態2>
次に、図12を用いて、実施の形態2の描画制御装置300について説明する。なお、ここでは、描画対象がビットマップ画像データで表される図形である場合について説明する。
図12は、実施の形態2の描画制御装置300の機能ブロック図である。
実施の形態2の描画制御装置300は、主制御部301、ストローク情報生成部302、ストローク片生成部303、描画順決定部304、速度設定部305、空走区間設定部306、待機時間設定部307、隣接ストローク判定部308、経過時間算出部309、レーザ出力設定部310、描画命令生成部311、及びデータ格納部312を含む。
主制御部301、ストローク情報生成部302、ストローク片生成部303、描画順決定部304、空走区間設定部306、待機時間設定部307、隣接ストローク判定部308、経過時間算出部309、描画命令生成部311、及びデータ格納部312は、実施の形態1の主制御部201、ストローク情報生成部202、ストローク片生成部203、描画順決定部204、空走区間設定部206、待機時間設定部207、隣接ストローク判定部208、経過時間算出部209、描画命令生成部211、及びデータ格納部212とそれぞれ同一である。
実施の形態2の速度設定部305は、一行上のストロークの描画終了時刻からの経過時間に応じてレーザの走査速度(描画速度)を設定し、レーザ出力設定部310は、レーザ出力をデフォルト値Ps(一定値)に設定する点が、実施の形態1の速度設定部205及びレーザ出力設定部210と異なる。
以下、実施の形態1との相違点を中心に説明する。
式(4)で表される熱量を、レーザの出力をデフォルト値Psで一定に保持して、レーザの走査速度を調整することにより、余熱が残る媒体に加える熱量を調整することを考える。
媒体に与えられる熱量は、走査速度に反比例すると考えられるから、速度により熱量を変化させる場合の速度vは、式(7)で表すことができる。
ここで、Vsは実施の形態1で説明したデフォルト値の速度である。また、kは媒体の冷却定数である。tは、処理中のストロークの一行上に存在するストローク片の描画が終了する時刻からの経過時間である。
実施の形態2では、式(7)で表される走査速度を用いて、各ストローク片を描画する際に、一行上に既に描画したストローク片がある場合に、一行上のストローク片を描画する時刻からの経過時間に応じてレーザの走査速度を調整することにより、正確な描画を行う。なお、一行上に既に描画したストローク片がある/なしに拘わらず、レーザの出力はデフォルト値Psで一定とする。
実施の形態2の描画制御装置300は、式(7)で表されるレーザの走査速度を用いて描画対象の描画を行う。
次に、図13を用いて、実施の形態2の描画制御装置300による描画制御処理について説明する。なお、図13のフローチャートの説明には、実施の形態1の図9を援用する。
図13は、実施の形態2の描画制御装置300が実行する描画制御処理を示すフローチャートである。図13に示すフローチャートは、実施の形態2の描画制御方法を表す。この描画制御方法は、実施の形態2の描画制御プログラムを実行することによって実現される。
描画制御装置300は、ストローク情報を生成する(ステップS201)。ステップS201の処理は、描画制御装置300のストローク情報生成部302が実行する処理である。
ストローク情報生成部302は、ストロークをスキャンした順番にデータ格納部312に格納する。
次に、描画制御装置300は、レーザの出力を標準出力(Ps)に設定する(ステップS202)。ステップS202の処理は、描画制御装置300のレーザ出力設定部310が実行する処理である。
次に、描画制御装置300は、データ格納部312に格納されたストローク情報を順番の若い方から1本読み出す(ステップS203)。例えば、図9では、最初のストロークは、一番上のストローク(点(7)から始まるストローク)となる。なお、ステップS203の処理は、描画制御装置300の主制御部301が実行する処理である。
次に、描画制御装置300は、空走区間を設定する(ステップS204)。ステップS204の処理は、描画制御装置300の空走区間設定部306が実行する処理である。この空走区間は、レーザを照射せずにガルバノミラーの焦点を動かす区間であり、描画命令に含まれる。すなわち、ステップS204の処理は、描画するストロークの始点にガルバノミラーの焦点を移動させるための処理である。例えば、図9では、ガルバノミラーの焦点が点(7)に移動される。
待機時間設定部307は、空走区間の前後に待機時間を設定する。待機時間は、ガルバノミラーの特性、走査速度、及び空走速度に基づいて、予め定められた所定の時間であり、描画から空走に切り替えるときと、空走から描画に切り替えるときの両方の場合(すなわち、空走区間の前後)について設定される。
次に、描画制御装置300は、相対時刻の算出を行う(ステップS205)。相対時刻の算出は、ストローク片を描画する際に、一行上にストローク片が存在する場合に、一行上のストローク片の描画を行ってから、処理対象となるストローク片を描画するまでの経過時間を算出するために行う。このため、ステップS205の処理は、描画制御装置300の経過時間算出部309が実行する処理である。
ここで、実施の形態2では、レーザの走査速度を調整することによってサーマルリライタブル媒体50が受ける熱量を調節する。従って、レーザの走査速度は、ストローク片によって異なる可能性がある。
このため、実施の形態2における経過時間の算出は、実施の形態1と異なる部分がある。実施の形態2では、例えば、図9に示す点(7)から描画を開始する時刻を基準時刻(t=0)とし、各点における時刻との相対時刻(経過時間)を算出する。
実施の形態2における経過時間の算出方法については、図14及び図15を用いて後述する。
次に、描画制御装置300は、一行上に隣接するストローク片があるか否かを判定する(ステップS206)。ステップS206の処理は、描画制御装置300の隣接ストローク判定部308が実行する処理である。
図9に示す点(7)は、最初に描画されるストロークの始点であるため、一行上のストローク片は存在せず、ステップS206はNOと判定される。
ステップS206では、ストローク毎ではなく、ストローク片毎に判定が行われる。
描画制御装置300は、ステップS206で一行上のストロークは存在しない(S206:NO)と判定すると、レーザの走査速度を標準速度Vsに設定する(ステップS207)。
描画制御装置300は、ステップS207でレーザの走査速度を設定したストローク片の描画命令を描画命令DBに格納する(ステップS209)。ステップS209の処理は、描画制御装置300の描画命令生成部311が実行する処理である。
描画命令は、ステップS202で設定したレーザの出力、ステップS207で設定したレーザの走査速度、及びストローク片の両端の座標を含む。
描画制御装置300は、ストローク片の終点が、そのストローク片を含むストロークの終点であるか否かを判定する(ステップS210)。ステップS210の処理は、描画制御装置300の主制御部301が実行する処理である。
ストローク片の終点が、そのストローク片を含むストロークの終点であるか否かは、例えば、ストローク片の終点の座標と、ストロークの終点の座標を比較することによって行えばよい。
描画制御装置300は、ストロークの終点ではないと判定すると(S210:NO)、フローをステップS211に進行させる。
描画制御装置300は、次のストローク片を選択する(ステップS211)。ステップS211の処理は、描画制御装置300の主制御部301が実行する処理である。
次のストローク片は、始点と終点の座標がΔX増大した値で表される。
ステップS211の処理が終了すると、描画制御装置300は、フローをステップS205にリターンする。これにより、描画制御装置300は、ストロークの終点に辿り着くまでステップS205〜S210の処理を繰り返し実行する。
描画制御装置300は、ステップS210でストロークの終点であると判定すると(S210:YES)、すべてのストロークについて描画命令を生成したか否かを判定する(ステップS212)。
例えば、図9において、点(7)からストローク片毎に処理を実行して点(11)まで辿り着くと、まだすべてのストロークについての処理が終了していないため、描画制御装置300は、すべてのストロークについて描画命令を生成していないと判定し(S212:NO)、フローをステップS203にリターンする。
ここで、ステップS203にリターンした際に、描画制御装置300が図9に示す点(1)から始まるストロークを読み出したとする。
描画制御装置300の空走区間設定部306は、ステップS204において、図9に示す点(3)から点(1)に空走するための空走区間を設定する。
次に、ステップS206では、図9において、点(1)の一行上には、ストロークが存在するため(S206:YES)、フローはステップS208に進行する。
次いで、描画制御装置300は、経過時間Δtを用いてレーザの走査速度を設定する(ステップS208)。ステップS208の処理は、描画制御装置300の速度設定部305が実行する処理である。
速度設定部305は、ステップS205において経過時間算出部309が算出した経過時間Δtを用いて、式(7)に基づいてレーザの走査速度を算出する。
ステップS208の処理が終了すると、ステップS209において、ステップS208でレーザの走査速度を設定したストローク片の描画命令を描画命令DBに格納する。
描画命令は、ステップS202で設定したレーザの出力、ステップS208で設定したレーザの走査速度、及びストローク片の両端の座標を含む。
図9では、点(1)と点(6)の間のストローク片の描画命令が描画命令DBに格納される。
以上の処理を繰り返し実行することにより、ステップS212において描画制御装置300がすべてのストロークについて描画命令を生成したと判定すると(S212:YES)、描画制御装置300はフローをステップS213に進行する。
描画制御装置300は、描画命令の統合を行う(ステップS213)。ステップS213の処理は、描画制御装置300の描画命令生成部311が実行する処理である。
描画命令の統合処理は、必須の処理ではないが、データ量を圧縮するために行う処理である。
主制御部210は、例えば、同一のストロークに含まれるストローク片のうち、互いに連続するストローク片同士であって、レーザ出力が同一のストローク片同士の描画命令を統合する。
描画制御装置300は、描画命令を出力する(ステップS214)。ステップS214の処理は、描画制御装置300の描画命令生成部311が実行する処理である。画命令生成部211は、描画命令を描画装置10に入力する。これにより、描画装置10において、一行上の描画時刻からの経過時刻に応じてレーザの出力を調整することにより、正確な描画が行われる。
以上により、実施の形態2の描画制御装置300によれば、一行上のストローク片の描画終了時刻からの経過時間に応じてレーザの出力を設定することができる。この結果、一行上のストローク片の描画によって媒体に余熱がある状態でも、レーザの出力を調節することにより、正確に描画を行うことができる。
また、実施の形態2の描画制御装置300は、上述のようにレーザの出力を調整しているので、往復走査を行っても、正確な描画を行うことができ、描画時間の短縮を図ることができる。
ここで、図9に示す点(1)の描画を開始する時刻をt1、点(2)の描画が終了した時刻をt2とすると、式(7)は、式(8)のように表すことができ、式(8)によって点(1)から描画を開始するときのレーザの走査速度を求めることができる。
すなわち、t1−t2は、点(2)での描画が終了してから、点(1)での描画を開始するまでの経過時間Δt(=t1−t2)である。
経過時間Δtは、実施の形態1の経過時間Δtと同様に、<1>一行上のストローク片の描画が終了してから、現在描画命令を作成中のストローク片を描画するまでの間に描画を行うストローク片の描画にかかる時間Δt1、<2>空走時間Δt2、及び<3>待機時間Δt3の合計(Δt1+Δt2+Δt3)で表される。
また、例えば、点(8)から描画を開始しようとする場合、点(8)の一行上には、X座標値が同一の点(10)が存在する。
ここで、点(8)での描画開始時刻をt8、点(10)での描画終了時刻をt10、点(11)での待機時間twj、点(12)での待機時間twd、点(3)での待機時間twj、点(1)での待機時間twdとする。
また、点(10)から点(11)の走査速度をVs(デフォルト値)、点(11)から点(12)への空走速度をVj、点(12)から点(3)の走査速度をVs(デフォルト値)、点(1)から点(6)の走査速度をV1、点(6)から点(13)までの走査速度をVs(デフォルト値)、点(13)から点(8)までの走査速度をV2とする。
また、点(10)と点(11)との間の距離を2ΔX、点(11)と点(12)との間の距離をΔX、点(12)と点(3)との間の距離を2ΔX、点(3)と点(1)との間の距離をA、点(1)と点(6)との間の距離をΔX、点(6)と点(13)との間の距離をΔX、点(13)と点(8)との間の距離を2ΔXとする。
この場合、時刻t8と時刻t10との間の経過時間Δtは、以下のように求まる。
Δt=(2ΔX/Vs)+twj+(ΔX/Vj)+twd+(2ΔX/Vs)+twj+(A/Vj)+twd+(ΔX/V1)+(ΔX/Vs)+(2ΔX/V2)
この場合、点(8)から描画を開始するときのレーザの走査速度は、式(9)のように表される。
次に、図14及び図15を用いて、実施の形態2の描画制御装置300において、処理対象のストローク片とX座標が同一の一行上のストローク片を描画する時刻と、処理対象のストローク片の描画を開始する時刻との相対時刻(経過時間)を算出する手法について説明する。
図14は、実施の形態2の描画制御装置300において相対時刻を算出する処理を示すフローチャートである。図14に示す処理は、実施の形態2の描画制御装置300の経過時間算出部309が実行する処理である。
図15は、実施の形態2の描画制御装置300において相対時刻を算出する処理の説明に用いるストロークを示す図である。
経過時間算出部309は、描画を開始しようとする位置において、処理対象となるストローク片に、直前のストローク片があるか否かを判定する(ステップS301)。直前のストローク片とは、処理対象となるストローク片よりも前に描画されるストローク片のことをいう。すなわち、ステップS301は、処理対象となるストローク片が、ビットマップ画像データ内で最初のストローク片であるか否かを判定する処理である。
ここで、直前のストローク片があるか否かは、例えば、処理対象となるストローク片と同一行内で、X座標が小さい位置に、ストローク片が存在するか否か、また、処理対象となるストローク片よりもY座標が小さい行内に、ストローク片があるか否かに基づいて判定すればよい。
ここで、直前のストローク片がないストローク片とは、例えば、図15に示す点(3)が該当する。
経過時間算出部309は、ステップS301において直前のストローク片があると判定した場合は(S301:YES)、直前のストローク片情報を取得する(S302)。経過時間算出部309は、ストローク片情報として、ストローク片の両端の座標を取得する。相対時刻の算出には、ストローク片の長さが必要になるからである。
経過時間算出部309は、直前のストローク片が処理対象となるストローク片と同一のストローク内にあるか否かを判定する(ステップS303)。直前のストローク片が処理対象となるストローク片と同一のストローク内に無い場合は、例えば、直前のストローク片と、処理対象となるストローク片との間に空走区間が存在するからである。
経過時間算出部309は、直前のストローク片が処理対象となるストローク片と同一のストローク内にあると判定した場合は(S303:YES)、直前のストローク片の描画速度(レーザの走査速度)を取得する(ステップS304)。
次に、経過時間算出部309は、直前のストローク片の描画開始位置からの経過時間を算出する(ステップS305)。例えば、図15において、点(1)から始まるストローク片を描画しようとする場合には、直前のストローク片は点(2)から点(1)までのストローク片になるため、経過時間算出部309は、点(2)から点(1)までのストローク片の距離ΔXと、ステップS304で取得した描画速度V都を用いて、経過時間Δt=ΔX/Vを求める。
次に、経過時間算出部309は、相対時刻を算出する(ステップS309)。相対時刻は、直前のストローク片又は空走区間に要した経過時間を、直前のストローク片又は空走区間の始点における時刻に加算した時刻として求まる。
なお、ステップS301において、直前にストローク片が無い場合は(S301:NO)、相対時刻を0に設定する(ステップS310)。それより前に、ストローク片の描画を行っておらず、最初のストローク片であるため、相対時刻を0に設定することとしたものである。
また、ステップS303において、直前のストローク片が処理対象となるストローク片と同一のストローク内にないと判定した場合は(S303:NO)、経過時間算出部309は、空走距離を取得し(ステップS306)、空走速度を取得し(ステップS307)、さらに待機時間を取得して(ステップS308)、フローをステップS309に進行させる。空走区間に要した経過時間を算出するためである。
ここで、例えば、図15では、点(5)と点(2)との間にある空走区間が該当する。点(5)の座標を(X,Y)=(X5、Y5)、点(2)の座標を(X,Y)=(X2,Y2)、点(5)における待機時間をtwj、点(2)における待機時間をtwdとする。
図15に示す点(5)から点(2)への空走時間は、式(10)で求まる。
従って、点(5)において描画を終了してから、点(2)で描画を開始するまでの経過時間Δtは、式(10)で表される空走時間に、点(5)における待機時間をtwjと、点(2)における待機時間をtwdとを加えた時間になる。
以上のように、経過時間算出部309は、相対時刻を算出する。その後は、実施の形態2の描画制御装置300により、図13に示したステップS206以下の処理が実行される。
図16は、実施の形態2の描画制御装置300が生成する描画命令の一例を示す図である。
図16(A)に示す5本のストロークは、図9及び図11(A)に示す5本のストロークと同一のストロークであり、各ストロークに示す点の座標は、図11(A)に示す座標と同一である。
また、ここで、実施の形態1と同様に、描画命令において、ストロークの太さをt、レーザ非照射で指定座標までの移動(空走)をm、指定座標までの直線描画をd、待機時間をw(msec(ミリ秒))、レーザ出力(レーザ出力のデフォルト値に対する割合(百分率(%)))をp、走査速度(走査速度のデフォルト値に対する割合(百分率(%)))をsとする。
図16(A)に示す5本のストロークを最も上の行の最も原点Oに近い点(7)から描画するための描画命令は、図16(B)に示す通りである。
図16(B)に示す描画命令は、まず、走査速度sを100(%)に設定し、ストロークの太さtを10(ポイント)に設定し、空走により(X,Y)=(10,10)の点(7)まで空走する(m)。
次に、レーザ出力(p)を100%に設定し、(X,Y)=(60,10)まで直線描画を行う(d)。
次に、(X,Y)=(70,10)まで空走し(m)、(X,Y)=(90,10)まで直線描画を行う(d)。これにより、点(3)までが描画される。
次に、点(3)で待機時間wを50(msec)に設定し、(X,Y)=(80,20)である点(1)まで空走する(m)。
点(1)では一行上に描かれたストロークがあるため、レーザの走査速度sをデフォルト値Vsの500%に設定し、(X,Y)=(70,20)の点(6)まで直線描画を行う(d)。
点(6)では、一行上にストロークがないため、レーザの走査速度sを100%に戻し、(X,Y)=(60,20)の点(13)まで直線描画を行う(d)。
点(13)からは一行上にストロークがあるため、レーザの走査速度sを200(%)に上昇させ、(X,Y)=(50,20)の点(9)まで直線描画を行う(d)。
点(9)では、引き続き一行上にストロークがあるため、レーザの走査速度sを167(%)に設定し、(X,Y)=(40,20)の点(8)まで直線描画を行う(d)。
点(8)では、引き続き一行上にストロークがあるため、レーザの走査速度sを143(%)に設定し、(X,Y)=(30,20)の点(4)まで直線描画を行う(d)。
次に、(X,Y)=(20,20)の点(5)まで空走する(m)。
点(5)からは、一行上にストロークがあるため、レーザの走査速度sを128(%)に設定し、(X,Y)=(10,20)の点(14)まで直線描画を行う(d)。
点(14)からは一行上にストロークが存在しないため、レーザの走査速度sを100(%)に設定し、(X,Y)=(0,20)の点(15)まで直線描画を行う(d)。
以上により、一行上のストロークの描画が終了してからの経過時間に応じてレーザの走査速度sを調整しながら、点(7)から点(15)まで4本のストロークを引くことができる。
なお、点(14)から点(4)の一行下に位置するストロークも同様に描画することができる。
なお、以上では、描画対象がビットマップ画像データで表される図形である場合について説明したが、描画対象は、文字であってもよい。特に、文字を太く描画する際には、実施の形態2の描画制御装置300で描画を行えば、短時間で正確に文字を描くことができる。
<実施の形態3>
図17は、実施の形態3の描画制御装置で用いるテーブル形式のデータを示す図である。
実施の形態3の描画制御装置は、実施の形態1の式(5)と実施の形態2の式(7)との共通項である(1−e−kt)の計算値をテーブル形式のデータとして保持する点が実施の形態1、2の描画制御装置20、300と異なる。
以下、相違点を中心に説明する。
図17に示すデータは、冷却定数kをk=0.2に設定し、経過時間tが1〜100(msec(ミリ秒))で計算した値を示す。
テーブル形式のデータでは、値を離散値で持つことになる。このため、中間値は線型補間することで概算を求めることができる。概算で求めた値を用いて精度が問題になる場合は、離散値をより細かく設定すれば、線形補間による誤差を小さくすることができる。
実施の形態3では、式(5)、式(7)に含まれる項の値を予め計算してテーブル形式のデータとして利用する場合について説明したが、描画条件によっては、既に保持していたテーブル形式のデータの値では適切な描画を行えない場合もあり得る。このような場合には、実験で求めた冷却係数を用いて(1−e−kt)項の計算値を求めておけば、正確な描画を行うことができる。また、環境温度やサーマルリライタブル媒体50の性質により、予め複数のテーブル形式のデータを用意しておき、環境温度やサーマルリライタブル媒体50の性質に応じてテーブル形式のデータを切り替えることも可能である。
<実施の形態4>
実施の形態4の描画制御装置は、実施の形態1の描画制御装置20の処理を簡略化し、描画対象の有無に関わらずに片道走査でスキャンを行ってストロークを生成し、走査速度と空走速度を同一速度に設定し、直前のストロークの有無によってレーザの出力を切り替える。
ここで、実施の形態4では、片道走査で描画を行うため、一行上に隣接するストローク片は、描画命令の生成対象となるストローク片の始点(又は終点)とX座標が同一の始点(又は終点)を有するストローク片であって、描画命令の生成対象となるストローク片の一行上に生成されるストローク片とする。
図18は、実施の形態4の描画制御装置が描画を行う際のレーザの片道走査の順序を示す図である。
実施の形態4では、片道走査でレーザを走査し、かつ、空走区間を設けて描画対象の有無に関係なく原点OからXY座標で表されるすべての領域について走査を行う。
ここで、原点Oは、点a1にあるとする。X軸は横方向(右方向が正)で、Y軸は縦方向(下方向が正)である。
実施の形態4では、点a1から点a2に向けてストロークA1を描画する。点a2から点a3まで空走する。点a3から点a4までストロークA4を描画する。点a4から点a5まで空走する。点a5から点a6までストロークA3を描画する。
そして、点a6から点b1に破線の矢印で示すように空走する。これにより、2行目に入る。
2行目では、X=0からX軸の正方向(図18中右方向)に向けて、点b1から点b2まで破線で示すストロークB1を描画する。点b2から点b3まで空走する。点b3から点b4まで破線で示すストロークB2を描画する。そして、点b4から点b5の間は、描画対象が存在しないが、空走を行う。
この場合において、実施の形態4の描画制御装置は、レーザの出力を、一例として、3段階に調節する。ここで、レーザの出力は、P2(=デフォルト値Ps)、P1(デフォルト値Psの50%)、P0(0%)の3段階であるとする。
ここで、図18に示す点b1から点b5の間の区間を区間1〜区間7に分ける。区間1は、X軸方向において、点a1(b1)から点a1の間の区間である。区間2は、X軸方向において、点a2から点a3の間の区間である。区間3は、X軸方向において、点a3から点b2の間の区間である。区間4は、X軸方向において、点b2から点a4(b3)の間の区間である。区間5は、X軸方向において、点a4(b3)から点a5の間の区間である。区間6は、X軸方向において、点a5から点b4の間の区間である。区間7は、X軸方向において、点b4から点a6(b5)の間の区間である。
そして、実施の形態4では、上述のようにレーザの出力を設定する場合、区間2、5は、ストローク片を描画する区間であり、一行上にストローク片がないので、レーザの出力を最強のP2(デフォルト値Ps)とする。区間1、3、6は、ストローク片を描画する区間であるが、一行上にストローク片があるので、レーザの出力を弱めのP1とする。区間2、5、7では、ストローク片を描画しない区間であるため、レーザの出力をP0(0%)とする。
実施の形態4では、図18に示す点b4から点b5のように描画対象が存在しない区間についてもレーザの走査を行い、レーザの出力を3段階の出力P2、P1、P0のうちから選択し、片道走査でストロークを描画する。
このように、実施の形態4では、一行上にストローク片が存在する場合は経過時間によらずに一律にレーザ出力をP1(デフォルト値の50%)にする。このため、経過時間に応じてレーザ出力を算出する必要がなくなり、処理を簡易化できる。
次に、図19を用いて、実施の形態4の描画制御装置が実行する描画制御処理について説明する。
図19は、実施の形態4の描画制御装置が実行する描画制御処理を示すフローチャートである。図19に示すフローチャートは、実施の形態4の描画制御方法を表す。この描画制御方法は、実施の形態1の描画制御プログラムを実行することによって実現される。
なお、実施の形態4の描画制御装置は、実施の形態1の描画制御装置20と同様に、図6に示す主制御部201、ストローク情報生成部202、ストローク片生成部203、描画順決定部204、速度設定部205、空走区間設定部206、待機時間設定部207、隣接ストローク判定部208、経過時間算出部209、レーザ出力設定部210、描画命令生成部211、及びデータ格納部212を含むものとして説明を行う。
実施の形態4の描画制御装置は、描画する速度を標準速度(Vs)に設定する(ステップS401)。ステップS401の処理は、実施の形態4の描画制御装置の速度設定部205が実行する処理である。
実施の形態4の描画制御装置は、一行上に隣接するストローク片の描画が終了してから、現在描画命令を作成中のストローク片の描画を開始するまでの経過時間を算出する(ステップS402)。ステップS402は、実施の形態4の描画制御装置の経過時間算出部209が実行する処理である。
例えば、実施の形態4の描画制御装置は、図18に示す点b1からの描画を行う際には、点a1から点a6までの描画時間、点a6における待機時間、点a6から点b1への空走時間、及び点b1での待機時間の合計時間を、点b1の一行上にある点a1の描画を開始してから点b1の描画を開始するまでの経過時間として算出する。
なお、点a1の描画を開始するときのように、一行上にストローク片が存在しない場合は、経過時間を算出する必要はない。
次に、実施の形態4の描画制御装置は、レーザの出力P1を決定する(ステップS403)。ステップS403の処理は、実施の形態4の描画制御装置のレーザ出力設定部210が実行する処理である。実施の形態4では、レーザ出力P1は、レーザ出力P2(デフォルト値)の50%に設定するため、レーザ出力設定部210は、レーザ出力P1をレーザ出力P2の50%の出力値に決定する。
次に、実施の形態4の描画制御装置は、ビットマップ画像データに含まれる行を上側から1つ選択し、これから描画を行う行に含まれるすべてのストロークを取得する(ステップS404)。ステップS404の処理は、実施の形態4の描画制御装置のストローク情報生成部202が実行する処理である。図18の例で、2行目を選択した場合は、ストローク情報生成部202は、点b1から点b2の間のストロークB1と、点b3から点b4の間のストロークB2との2本のストロークを取得する。
次に、実施の形態4の描画制御装置は、一行前の行に含まれるすべてのストロークを取得する(ステップS405)。ステップS404の処理は、実施の形態4の描画制御装置のストローク情報生成部202が実行する処理である。図18の例では、ストローク情報生成部202は、点a1から点a2の間のストロークA1、点a3から点a4の間のストロークA2、及び点a5から点a6の間のストロークA3の3本のストロークを取得する。
次に、実施の形態4の描画制御装置は、ステップS404及びS405で求めたストロークに基づき、これから描画を行う行を複数の区間に分割する(ステップS406)。ステップS406の処理は、実施の形態4の描画制御装置の主制御部201が実行する処理である。
主制御部201は、ステップS406において、これから描画を行う行に含まれるストロークと、一行上の行に含まれるストロークとの位置関係に応じて、これから描画を行う行に含まれるストロークを、一行上にストロークが存在する区間と、存在しない区間とに分けられるように、これから描画を行う行のストロークを分割する。
図18に示す例では、主制御部201は、ストロークB1、B2が存在する行を区間1〜区間7に分割する。
次に、実施の形態4の描画制御装置は、ステップS406で分割した複数の区間のうち、X軸の原点Oに近い側から区間を1つ選択する(ステップS407)。ステップS407の処理は、実施の形態4の描画制御装置の主制御部201が実行する処理である。ステップS407は、後述するステップS414からステップS407にフローがリターンされて繰り返し実行されることにより、ステップS406で分割した複数の区間のうち、X軸の原点Oに近い側から区間を1つずつ選択する処理である。
次に、実施の形態4の描画制御装置は、ステップS407で選択した区間が描画区間であるか否かを判定する(ステップS408)。ステップS408の処理は、実施の形態4の描画制御装置の主制御部201が実行する処理である。図18では、区間1〜区間3、区間5、区間6が描画区間であり、区間4及び区間7は描画を行わない区間である。
実施の形態4の描画制御装置は、ステップS408において、ステップS407で選択した区間が描画区間ではないと判定した場合は(S408:NO)、レーザ出力をP0(0%)に設定する(ステップS410)。ステップS410の処理は、実施の形態4の描画制御装置のレーザ出力設定部210及び空走区間設定部206が実行する処理である。描画を行わない区間であるため、レーザの出力を0%に設定し、その区間を空走区間に設定するためである。なお、この場合は、図18では、区間4、区間7が該当する。
また、実施の形態4の描画制御装置は、ステップS408において、ステップS407で選択した区間が描画区間であると判定した場合は(S408:YES)、一行上にストロークがあるか否かを判定する(ステップS409)。ステップS409の処理は、実施の形態4の描画制御装置の隣接ストローク判定部208が実行する処理である。
実施の形態4の描画制御装置は、ステップS409において、一行上にストロークがないと判定した場合は(S409:NO)、レーザの出力をP2(デフォルト値)に設定する(ステップS411)。ステップS411の処理は、実施の形態4の描画制御装置のレーザ出力設定部210が実行する処理である。一行上にストロークがない場合に描画を行うときは、レーザの出力をデフォルト値であるP2(100%)に設定するためである。この場合は、図18では、区間2、区間5が該当する。
また、実施の形態4の描画制御装置は、ステップS409において、一行上にストロークがあると判定した場合は(S409:YES)、レーザの出力をP1(デフォルト値の50%)に設定する(ステップS412)。ステップS412の処理は、実施の形態4の描画制御装置のレーザ出力設定部210が実行する処理である。一行上にストロークがある場合に描画を行うときは、直前に行われた一行上のストロークの描画による余熱がサーマルリライタブル媒体50に残っているため、レーザの出力をデフォルト値よりも低いP1(50%)に設定するためである。
実施の形態4の描画制御装置は、ステップS410、S411、S412の処理が終了すると、ステップS410、S411、S412でレーザの出力を設定した区間の描画命令を描画命令DBに格納する(ステップS413)。ステップS413の処理は、実施の形態4の描画制御装置の描画命令生成部211が実行する処理である。
描画命令は、ステップS401で設定したレーザの走査速度、ステップS410、S411、S412で設定したレーザの出力、及び区間の両端の座標を含む。
実施の形態4の描画制御装置は、すべての区間について描画命令を生成したか否かを判定する(ステップS414)。ステップS414の処理は、実施の形態4の描画制御装置の主制御部201が実行する処理である。
すべての区間について描画命令を生成したか否かは、例えば、処理中の区間の終点の座標と、行の終点の座標を比較することによって行えばよい。
実施の形態4の描画制御装置は、ステップS414において、すべての区間について描画命令を生成していないと判定すると(S414:NO)、フローをステップS407に進行させる。
これにより、次の区間についてステップS408〜S414の処理が行われる。
実施の形態4の描画制御装置は、ステップS414において、すべての区間について描画命令を生成したと判定すると(S414:YES)、フローをステップS415に進行させる。
実施の形態4の描画制御装置は、すべての行について処理が終了したか否かを判定する(ステップS415)。ステップS415の処理は、実施の形態4の描画制御装置の主制御部201が実行する処理である。すべての行について処理が終了したか否かは、例えば、処理中の行のY座標が、ビットマップ画像データの一番下の行に達したか否かを判定することによって行えばよい。
実施の形態4の描画制御装置は、すべての行について処理が終了していないと判定した場合は(ステップS415:NO)、フローをステップS404にリターンする。ステップS404では、実施の形態4の描画制御装置が次の行を選択して、行内のストロークを取得し、ステップS405以下の処理を実行する。
実施の形態4の描画制御装置は、すべての行について処理が終了したと判定した場合は(ステップS415:YES)、描画命令を出力する(ステップS416)。ステップS416の処理は、実施の形態4の描画制御装置の描画命令生成部211が実行する処理である。画命令生成部211は、描画命令を描画装置10に入力する。これにより、描画装置10において、一行上のストロークの有無に応じてレーザの出力を調整することにより、正確な描画が行われる。
以上により、実施の形態4の実施の形態4の描画制御装置によれば、一行上のストローク片の有無に応じてレーザの出力を設定することができ、一行上のストローク片の描画によってサーマルリライタブル媒体50に余熱がある状態でも、レーザの出力を調節することにより、正確に描画を行うことができる。
また、実施の形態4の実施の形態4の描画制御装置は、上述のように、一行上にストロークが存在する場合はレーザの出力を一律にP1(デフォルト値の50%)に設定するので、実施の形態1、2のように経過時間に応じてレーザの出力を算出する場合に比べて、処理を簡易化することができる。
なお、以上の説明では、ストロークを区間に分ける形態について説明したが、上述の区間をストローク片として取り扱ってもよい。実施の形態1、2では、ストローク片が一定の長さΔXを有するものとして説明したが、実施の形態4の区間は、描画の有無と、一行上のストロークの有無によって様々な長さを取り得るため、長さが可変のストローク片として取り扱えばよい。
<実施の形態5>
実施の形態5は、実施の形態1乃至4の描画制御装置の変形例であり、サーマルリライタブル媒体50の温度がある程度低下するのを待つために待機時間を調整する点が実施の形態1乃至4の描画制御装置と異なる。
サーマルリライタブル媒体50は、材質等に応じた冷却定数kを有するため、ストロークを描画した後に、描画を行ったストロークの一行下の部分において、サーマルリライタブル媒体50の温度がどの程度低下するかは、実験的に求めることができる。
このため、実施の形態5の描画制御装置は、レーザの走査速度とレーザの出力をともにデフォルト値(Vs、Ps)に設定し、空走区間の始点又は終点における待機時間を調整してサーマルリライタブル媒体50の温度が低下するのを待つ。
一行上にストロークを描画した直後に、そのストロークの一行下にストロークを描画する際に、待機時間を長くとってサーマルリライタブル媒体50の温度が低下するのを待てば、走査速度Vs(デフォルト値)及びレーザの出力Ps(デフォルト値)で描画を行っても、余熱の影響を抑制し、正確な描画を行うことができる。
実施の形態5の描画制御装置では、実施の形態1乃至4よりも待機時間が長くなる場合があるため、すべての描画を終了するのに要する時間が長くなる場合があり得るが、レーザの出力及び走査速度を調整する必要がないため、実施の形態1乃至4の描画制御装置よりも描画処理を簡易化することができる。
以上、本発明の例示的な実施の形態の描画制御装置、レーザ照射装置、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。