(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6840182
(24)【登録日】2021年2月18日
(45)【発行日】2021年3月10日
(54)【発明の名称】駆動曲線を圧縮し、および伸張するための方法および装置
(51)【国際特許分類】
H03M 7/42 20060101AFI20210301BHJP
G02B 26/10 20060101ALI20210301BHJP
B41J 2/47 20060101ALI20210301BHJP
【FI】
H03M7/42
G02B26/10 104Z
B41J2/47 101P
【請求項の数】25
【外国語出願】
【全頁数】17
(21)【出願番号】特願2019-62474(P2019-62474)
(22)【出願日】2019年3月28日
(65)【公開番号】特開2020-31416(P2020-31416A)
(43)【公開日】2020年2月27日
【審査請求日】2019年3月28日
(31)【優先権主張番号】10 2018 108 419.6
(32)【優先日】2018年4月10日
(33)【優先権主張国】DE
(73)【特許権者】
【識別番号】506151659
【氏名又は名称】カール ツァイス マイクロスコピー ゲーエムベーハー
【氏名又は名称原語表記】CARL ZEISS MICROSCOPY GMBH
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林特許業務法人
(72)【発明者】
【氏名】ヴェーヘ, カーステン
【審査官】
北村 智彦
(56)【参考文献】
【文献】
特表2003−519945(JP,A)
【文献】
Jianyang Li, Fenqin Zhou,Research on Key Technology of Three-Dimensional Laser Scanning Data Processing[online],2013 International Conference on Computer Sciences and Applications,2014年 6月19日,pp.784-787,[検索日:2020.04.20],インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6835713>
(58)【調査した分野】(Int.Cl.,DB名)
H03M 3/00−9/00
B41J 2/47
G02B 26/10
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
走査デバイスの駆動曲線を圧縮するためのコンピュータ支援方法であって、
駆動曲線(30、60)をセグメント(s0〜s7、s00〜s07)に細分することと、
前記セグメントのそれぞれに対して、
前記セグメントのそれぞれのセグメントに対応するセグメントがライブラリ内に存在するかどうかを確認することと、
対応するセグメントが前記ライブラリ内に何も存在しない場合、前記セグメントを前記それぞれのセグメントに対応するセグメントとして前記ライブラリに組み込むことと、
前記ライブラリ内の前記対応するセグメントを示すポインタをポインタリストに組み込むこととを含む、コンピュータ支援方法。
【請求項2】
前記確認することが、前記それぞれのセグメントと同一のセグメントが前記ライブラリ内に存在する場合に、対応するセグメントが前記ライブラリ内に存在すると判定することを含む、請求項1に記載の方法。
【請求項3】
前記確認することが、所定の尺度以下だけ前記それぞれのセグメントと異なるセグメントが前記ライブラリ内に存在する場合に、対応するセグメントが前記ライブラリ内に存在すると判定することを含む、請求項1に記載の方法。
【請求項4】
前記確認することが、前記それぞれのセグメントに変換可能であるセグメントが前記ライブラリ内に存在する場合に、前記それぞれのセグメントに対応するセグメントが前記ライブラリ内に存在すると判定することを含み、
前記セグメントに対する前記ポインタを前記ポインタリストに組み込むことが、前記ライブラリ内の前記対応するセグメントの前記それぞれのセグメントへの変換操作を定義する1つまたは複数の変換パラメータを前記ポインタリストに組み込むことをさらに含む、請求項1に記載の方法。
【請求項5】
前記1つまたは複数の変換パラメータが、前記ライブラリからの前記セグメントの読出し方向を含む、請求項4に記載の方法。
【請求項6】
前記1つまたは複数の変換パラメータが、前記ポインタによって示される前記ライブラリ内の当該セグメントに、+1または−1のいずれかのスケーリング係数が適用されることを示す符号を含む、請求項4または5に記載の方法。
【請求項7】
前記1つまたは複数の変換パラメータが、前記ポインタによって示される前記ライブラリの当該セグメントに対するオフセットおよび/またはスケーリング係数を含む、請求項4から6のいずれか一項に記載の方法。
【請求項8】
前記方法が、複数の駆動曲線に適用される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ライブラリが、前記複数の駆動曲線の共有ライブラリである、請求項8に記載の方法。
【請求項10】
前記ポインタリストが、各駆動曲線に対して別々に作成される、請求項8または9に記載の方法。
【請求項11】
前記セグメントが、前記ライブラリ内にパケットの形で記憶される、請求項1から10のいずれか一項に記載の方法。
【請求項12】
コンピュータプログラムであって、コンピューティングデバイス上で実行されたとき、請求項1から11のいずれか一項に記載の方法を実行させるプログラムコードを含むコンピュータプログラム。
【請求項13】
走査デバイスの駆動曲線を圧縮するための装置であって、コンピューティングデバイス(12、13)を備え、請求項1から11のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項14】
走査デバイスの駆動曲線を伸張するためのコンピュータ支援方法であって、
セグメントライブラリ内のセグメントを示すポインタをポインタリストから読み取ることと、
前記ポインタによって示される前記セグメントを前記ライブラリから読み取ることと、
前記セグメントに基づいてデータシンクを駆動することと、
前記ポインタリスト内の複数のポインタについて、前記ポインタの前記読取り、前記セグメントの前記読取りおよび前記データシンクの前記駆動を繰り返すこととを含む、コンピュータ支援方法。
【請求項15】
前記セグメントに基づいて前記データシンクを駆動することが、変換されたセグメントに基づいて制御することを含み、前記ライブラリから読み取られた前記セグメントを変換するための少なくとも1つの変換パラメータが、前記ポインタと一緒に前記ポインタリストから読み取られる、請求項14に記載の方法。
【請求項16】
前記少なくとも1つの変換パラメータが、前記ライブラリからの前記セグメントの読出し方向を含む、請求項15に記載の方法。
【請求項17】
前記少なくとも1つの変換パラメータが、前記ポインタによって指し示される前記ライブラリ内の当該セグメントに、+1または−1のいずれかのスケーリング係数が適用されることを示す符号を含む、請求項15または16に記載の方法。
【請求項18】
前記少なくとも1つの変換パラメータが、前記ポインタによって示される前記ライブラリの当該セグメントに対するオフセットおよび/またはスケーリング係数を含む、請求項15から17のいずれか一項に記載の方法。
【請求項19】
前記方法が、複数の駆動曲線を定義する複数のポインタリストに対して実行され、前記ポインタを読み取ること、前記セグメントを読み取ること、および前記データシンクを駆動することのプロセスが、複数のポインタリストに対して交互に均一にまたは非均一に実行される、請求項14から18のいずれか一項に記載の方法。
【請求項20】
前記ポインタを読み取ることおよび前記セグメントを読み取ることが、ダイレクトメモリアクセス装置を用いて実行される、請求項19に記載の方法。
【請求項21】
前記セグメントを前記ライブラリから読み取ることが、該セグメントのデータを含む1つまたは複数のパケットを前記ライブラリから読み取ることを含み、前記パケットが、前記データシンクに伝送される、請求項14から20のいずれか一項に記載の方法。
【請求項22】
前記セグメントを前記ライブラリから読み取ることが、該セグメントのデータを含む1つまたは複数のパケットを前記ライブラリから読み取ることを含み、前記パケットが、前記データシンクに伝送され、
異なるポインタリストに割り当てられたパケットが、交互に伝送される、請求項19または20に記載の方法。
【請求項23】
コンピュータプログラムであって、コンピューティングデバイス上で実行されたとき、請求項14から22のいずれか一項に記載の方法を実行させるプログラムコードを含むコンピュータプログラム。
【請求項24】
走査デバイスの駆動曲線を伸張するための装置であって、コンピューティングデバイスを備え、請求項14から22のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項25】
システムであって、
サンプルを走査するための走査デバイスと、
請求項13または24に記載の少なくとも1つの装置とを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、駆動曲線を圧縮し、および伸張するための方法および装置に関し、ならびに走査デバイスの駆動曲線に対してそのような圧縮および伸張を使用する走査デバイスを備えるシステムに関する。
【背景技術】
【0002】
走査デバイスは、例えばレーザ光線などの光線を用いて、例えば、サンプルを走査するのに使用される。光線の場合、1つまたは複数の可動ミラーが、このために、しばしば使用される。次いで、前記1つまたは複数のミラーの移動が、サンプル上のレーザ光線などの光線を移動させ、照明への応答(例えば、輝度、蛍光、光散乱など)を測定することができる。この種類のシステムの一例は、レーザ走査顕微鏡(LSM)を備える。原子間力顕微鏡などの他の適用例において、例えば、チップを使用してサンプルが走査され、チップは、サンプルの上を移動される。
【0003】
この場合、多くの適用例において、そのような走査は、走査デバイスがサンプルを走査するために駆動される電圧または電流プロファイルを定義する駆動曲線を使用して実行される。例として、ガルバニックミラーなどの可動ミラー、微小電気機械システム(MEMS)に基づくミラーまたは薄膜ミラーは、ミラー調整を制御するために、したがって、サンプルのまたはその対象の一部の走査を定義するために電圧プロファイルを用いて駆動することができる。
【0004】
特に並列に存在する複数の駆動曲線の場合(例えば、2つのミラーが2次元でサンプルを走査するために使用される場合)、そのような駆動曲線は、大量の記憶空間を必要とすることがある。したがって、そのような駆動曲線を圧縮し、および伸張する可能性を提供することが目的である。
【発明の概要】
【0005】
この目的は、独立請求項において定義されるように方法および装置を用いて実現される。従属請求項は、他の実施形態ならびに対応するコンピュータプログラムおよびシステムを定義する。
【0006】
1つの例示的な実施形態によれば、走査デバイスの駆動曲線を圧縮するためのコンピュータ支援方法であって、
駆動曲線をセグメントに細分することと、
セグメントのそれぞれに対して、
セグメントのそれぞれのセグメントに(すなわち、現在検査されたセグメントに)対応するセグメントが、ライブラリ内に存在するかどうかを確認することと、
対応するセグメントがライブラリ内に何も存在しない場合、そのセグメントをそれぞれのセグメントに対応するセグメントとしてライブラリに組み込むことと、
対応するセグメント(現在組み込まれているセグメントまたはすでに存在するセグメント)を示すポインタをライブラリ内のポインタリストに組み込むこととを含む、コンピュータ支援方法が提供される。
【0007】
この場合、コンピュータ支援方法は、コンピュータなどの適切なコンピューティングユニット、デジタル信号プロセッサ(DSP)、または特定用途向け集積回路(ASIC)もしくはフィールドプログラマブルゲートアレイ(FPGA)などの、同様に構成されたハードウェア構成要素上に実装される方法である。
【0008】
それぞれのセグメントと同一のセグメントがライブラリ内に存在する場合、対応するセグメントが、ライブラリ内に存在することができる。
【0009】
別の例示的な実施形態において、所定の尺度以下だけそれぞれのセグメントと異なるセグメントがライブラリ内に存在する場合、対応するセグメントが、ライブラリ内に存在する。この場合、尺度は、例えば、平均二乗偏差または他の何らかの測定基準の閾値であることができる。
【0010】
駆動曲線の効率的な圧縮は、このようにして実現することができる。
【0011】
代替案として、それぞれのセグメントに変換可能であるセグメントがライブラリ内に存在する場合、それぞれのセグメントに対応するセグメントが、ライブラリ内に存在することができ、この場合、セグメントに対するポインタをポインタリストに組み込むことは、ライブラリ内の対応するセグメントのそれぞれのセグメントへの変換操作を定義する1つまたは複数の変換パラメータをポインタリストに組み込むことをさらに含む。
【0012】
少なくとも1つの変換パラメータは、ライブラリからのセグメントの読出し方向を含むことができる。
【0013】
少なくとも1つの変換パラメータは、ポインタによって示されるライブラリ内の当該セグメントが共に提供されることになる符号を含むこともできる。
【0014】
少なくとも1つの変換パラメータは、ポインタによって示されるライブラリの当該セグメントのオフセットおよび/またはスケーリング係数を含むこともできる。
【0015】
そのような変換パラメータの使用により、いくつかの例示的な実施形態において記憶要件をさらに低減することが可能になる。
【0016】
方法は、複数の駆動曲線に適用することができる。
【0017】
複数のチャネルをこのようにして動作させることができる。
【0018】
ライブラリは、複数の駆動曲線の共有ライブラリであることができ、それにより、ライブラリの記憶要件を低減することができる。
【0019】
各駆動曲線に対して、ポインタリストを別々に作成することができる。
【0020】
さらに、プロセッサ上で実行されたとき、上記に説明した方法のうちの1つを実行させるプログラムコードを備えるコンピュータプログラムが提供される。
【0021】
別の例示的な実施形態によれば、コンピューティングデバイスを備える、走査デバイスの駆動曲線を圧縮するための装置が提供され、装置は、例えば、上記のコンピュータプログラムを用いて、上記に説明したように方法を実行するように構成される。
【0022】
他の例示的な実施形態によれば、走査デバイスの駆動曲線を伸張するためのコンピュータ支援方法であって、
セグメントライブラリ内のセグメントを示すポインタをポインタリストから読み取ることと、
ポインタによって示されるセグメントをライブラリから読み取ることと、
データシンクを駆動することであって、具体的には、セグメントに基づいて、適切な場合調整器などの他の構成要素とともに、走査デバイスであることができ、またはそのような走査デバイスを備えることができるデータシンクを駆動することと、
ポインタの読取り、セグメントの読取りおよびポインタリスト内の複数のポインタの制御を繰り返すこととを含む、コンピュータ支援方法が提供される。
【0023】
セグメントに基づいてデータシンクを制御することは、変換されたセグメントに基づいて制御することを含むことができ、ライブラリから読み取られたセグメントを変換するための少なくとも1つの変換パラメータが、ポインタと一緒に、ポインタリストから読み取られる。
【0024】
少なくとも1つの変換パラメータは、ライブラリからのセグメントの読出し方向を含むことができる。
【0025】
少なくとも1つの変換パラメータは、ポインタによって指し示されるライブラリ内の当該セグメントが共に提供されることになる符号を含むこともできる。
【0026】
少なくとも1つの変換パラメータは、ポインタによって示されるライブラリの当該セグメントのオフセットおよび/またはスケーリング係数を含むこともできる。
【0027】
そのような変換パラメータの使用により、いくつかの例示的な実施形態において記憶要件をさらに低減することが可能になる。
【0028】
方法は、複数の駆動曲線を定義する複数のポインタリストに対して実行することができ、ポインタを読み取り、セグメントを読み取り、およびデータシンクを制御するプロセスは、複数のリストに対して交互に実行される。この場合、「交互に(alternately)」は、リストが均一に読み出されない可能性を含み、むしろ、リストによっては他のリストよりもしばしば読み出すことができるものもあり、すなわち、交互にすることは均一にまたは非均一に行われることがある。
【0029】
複数のチャネルをこのようにして動作させることができる。
【0030】
この場合、ポインタを読み取ること、およびセグメントを読み取ることは、ダイレクトメモリアクセス装置(DMA装置:direct memory access apparatus)を用いて実行することができる。
【0031】
セグメントをライブラリから読み取ることは、1つまたは複数のパケットをライブラリから読み取ることを含むことができ、パケットはデータシンクに伝送される。
【0032】
この場合、異なるリストに割り当てられたパケットは、交互に伝送することができる。同期デバイスを用いて、同期された、具体的には同時の、異なるデータシンクの駆動は、リストの非均一読出し、したがって、異なるチャネルに対する駆動の異なるデータ速度の場合でも、ここで実装することができる。
【0033】
さらに、コンピューティングデバイス上で実行されたとき、伸張のための上記の方法のうちの1つを実行させるプログラムコードを含むコンピュータプログラムが提供される。
【0034】
別の例示的な実施形態によれば、コンピューティングデバイスを備える、走査デバイスの駆動曲線を伸張するための装置が実装され、装置は、上記に説明したように伸張のための方法を実行するように構成される。この場合、コンピューティングデバイスは、コンピュータを備えることができるが、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの、特別に構成されたハードウェア構成要素も備えることができる。
【0035】
さらに、システムであって、
サンプルを走査するための走査デバイスと、
上記に説明したように少なくとも1つの装置とを備える、システムが提供される。
【0036】
添付の図面を参照して、様々な例示的な実施形態を以下により詳細に説明する。
【図面の簡単な説明】
【0037】
【
図1】1つの例示的な実施形態による、システムの構成図である。
【
図2】1つの例示的な実施形態による、駆動曲線を圧縮するための方法の流れ図である。
【
図6】複数の駆動曲線に対する、
図3からの方法を示す図である。
【
図7】複数の駆動曲線に対する、
図3からの方法を示す図である。
【
図8】複数の駆動曲線に対する、
図3からの方法を示す図である。
【
図9】1つの例示的な実施形態による、駆動曲線を伸張するための方法の流れ図である。
【
図10】複数の駆動曲線の場合の伸張を示す図である。
【
図11】複数の駆動曲線の場合の伸張のための装置の一部の構成図である。
【発明を実施するための形態】
【0038】
様々な例示的な実施形態を以下に詳細に説明する。これらの例示的な実施形態は、単に解明に役立つものであり、制限しようとするものと解釈してはならない。例として、複数の特徴を有する例示的な実施形態の説明は、すべてのこれらの特徴が実装に必要であるとの趣旨で解釈してはならない。むしろ、他の例示的な実施形態において、例示した構成要素または方法ステップの一部は省略し、および/または代替構成要素または方法ステップに置き換えることができる。明確に例示した構成要素および方法ステップに加えて、他の構成要素および方法ステップ、例えば、走査デバイスを使用する従来の装置およびシステムに使用される構成要素および方法ステップを使用することが可能である。
【0039】
図1は、1つの例示的な実施形態による、システムの構成図を示す。システムは、制御デバイス11と装置15とを備え、装置15は、制御デバイス11を用いて制御可能である。
【0040】
制御デバイス11は、同様にプログラム可能なコンピュータまたは他のコンピューティングデバイス、例えば、デジタル信号プロセッサ(DSP)などの他のプロセッサ、あるいは特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの固定プログラムハードウェア構成要素を備えることができる。
【0041】
図示する例示的な実施形態において、装置15は、導入部に説明したように走査デバイス19を備え、走査デバイス19を用いて、例えば、サンプルを走査することができる。例えば、レーザ光線を使用する光学走査の場合、走査デバイス19は、1つまたは複数のミラー、例えば、ガルバニックミラー、微小電気機械システムに基づくミラー(MEMSミラー)、薄膜ミラーなどを含むことができる。いくつかの例示的な実施形態において、装置15は、レーザ走査顕微鏡であることができるが、それに制限されない。
【0042】
具体的には、走査デバイス19の1つまたは複数の駆動曲線は、制御デバイス11において定義され、前記1つまたは複数の駆動曲線は、走査デバイスの走査を制御し、決定する。駆動曲線を定義することは、例えば、ユーザ入力を用いて、ユーザによるサンプルの対象領域のマーキングおよび後続の、前記対象領域を走査するための駆動曲線の自動決定を用いてなど、任意の従来のやり方で行うことができる。これらの手順は、それ自体が周知であり、したがって、より詳細に説明しない。
【0043】
制御デバイス11は、
図2〜8を参照して後でより詳細に説明するように、1つの駆動曲線または複数の駆動曲線の圧縮を実行する。このために、制御デバイス11としてのコンピュータの場合、制御デバイス11のプロセッサ12上で実行されるコンピュータプログラムを使用することが可能であり、前記コンピュータプログラムは、制御デバイス11の記憶デバイス13、および/または特定のハードウェア構成要素に記憶される。したがって、後でより詳細に説明するように、記憶デバイス13において、ポインタリストおよびライブラリの形で圧縮駆動曲線を記憶することが可能である。駆動曲線は、具体的には、点列として、すなわち、時間に対する値の列としてデジタルの形で存在することができる。
【0044】
圧縮データは、インターフェース14を用いて装置15に転送され、前記装置は、このためにインターフェース16を有する。転送は、例えば、有線のやり方で、無線で、または光学的に実行することができる。転送は、例えば、LVDSバスを介して実行することができるが、それに制限されない。例示した例において、装置15は、記憶デバイス18を有するプロセッサ17を有する。圧縮データは、例えば、プロセッサ17上で実行されるコンピュータプログラムを用いて、記憶デバイス18に記憶され、および伸張される。プロセッサ17などの、同様にプログラム可能なプロセッサの代わりに、またはそれに加えて、装置15は、他の種類のコンピューティングデバイス、例えば、ASICまたはFPGAなどの特定のハードウェア構成要素を備えることもできる。次いで、走査デバイス19は、伸張された駆動曲線に基づいて駆動される。この場合、例えば、可動ミラーなどの走査デバイスの構成要素は、直接、あるいは調整器を介して間接的に駆動することができる。他の例示的な実施形態において、駆動曲線に従って駆動されることが意図されている他のデータシンクを駆動することができる。
【0045】
この場合、記憶デバイス13、18は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、ハードディスクなどの磁気記憶媒体または光記憶媒体など、任意の適切な記憶デバイスを備えることができる。圧縮駆動曲線の伸張に関する詳細は、
図9〜11を参照して後で説明する。圧縮の結果として、この場合
図1の例示的な実施形態において、具体的には、制御デバイス11から装置15に転送されなければならないデータの量が低減される。
【0046】
図1は圧縮および伸張が行われる別々の装置を示すが(制御デバイス11における圧縮および装置15における伸張)、これは制限しようとするものと解釈してはならず、2つのプロセスは、単一の装置において実行することもでき、例えば、駆動曲線は、装置によって連続して受け取られ、したがって装置における記憶要件を低減するために圧縮した形で記憶デバイスに記憶される。したがって、
図1における分割は、単に例として理解されたい。
【0047】
データ圧縮のための方法の1つの例示的な実施形態を次に
図2を参照して説明し、
図2は1つの例示的な実施形態による方法の流れ図を示す。
図2における方法のより良い解明のため、
図3〜5をさらに参照するが、
図3〜5は、
図2における方法を用いる圧縮の一例を示す。
図3〜5に示す例は、特定の駆動曲線の圧縮を示し、したがって、他の駆動曲線を同様のやり方で圧縮することができるので、単に例として理解されたい。
【0048】
図2のステップ20において、駆動曲線がセグメントに細分される。この場合、セグメントは、駆動曲線の時間セグメントである。好ましくは、すべてのセグメントは同じ長さを有し、原理上は、異なる長さのセグメントへの細分も可能であるが、圧縮に必要な計算をより難しくすることがある。
【0049】
そのようなセグメントへの細分の一例を
図3に概略的に示す。
図3は、例として、駆動曲線30を示し、駆動曲線30は、この場合、周期的な、およそ三角形の駆動曲線である。そのような駆動曲線に基づいて、例えば、アナログ駆動電圧をデジタル/アナログ変換器を用いて発生させることができ、その駆動電圧を用いて、ミラーが次いで駆動され、次いで、ミラーは、例えば、周期的に前後に移動する。
【0050】
前記駆動曲線30は、等しい長さのセグメントに細分され、そのセグメントのうちのs0〜s7を
図8に示す。駆動曲線30の残りは、同様にセグメントに細分される(
図3に示していない)。
【0051】
この細分の後、セグメントは連続して処理される。ステップ21には、対応するセグメントがセグメントライブラリ内に存在するかどうかを確認することが関与する。これが該当しない場合、22において、セグメントは、ライブラリに組み込まれる。この場合、対応するセグメントは、同一のセグメント、または変換操作を用いて現在検査されたセグメントに変えることができるセグメントであることができる。変換操作は、例えば、読出し方向、符号の変更、オフセットの追加またはスケーリング係数によるスケーリングを含むことができる。その例は後でさらに説明する。他の例示的な実施形態において、対応するセグメントは、適切な場合変換操作の包含を用いて、それぞれの現在処理されたセグメントと所定の尺度以下だけ異なるセグメントであることもできる。尺度は、例えば、セグメント間の偏差を測るのに使用される測定基準の閾値を定義することができる。適切な測定基準は、二乗偏差(ここで、セグメントの点間の差の二乗が加算される)、または絶対偏差の和(ここで、セグメントの点間の差の絶対値が加算される)を含む。
【0052】
ステップ23において、ライブラリ内のセグメントを指し示すポインタが、適切な場合、現在検査されたセグメントにライブラリ内のセグメントを変換する変換操作を記述した変換パラメータとともに、次いでポインタリストに組み込まれる。
【0053】
この場合、ポインタは、一般に、対応するセグメントをライブラリから読み出すことを可能にする情報と理解されたい。例として、ポインタは、記憶デバイス内のセグメントのメモリアドレスを直接指し示すことができるが、しかし、ポインタは、他の何らかのやり方でセグメントを識別することもでき、後者の場合、ポインタからの情報は、次いで、例えば、メモリアドレスに変えられる。
【0054】
ステップ24には、現在検査されたセグメントが駆動曲線の最後のセグメントであるかどうかを確認することが関与する。これが該当しない場合、方法は、ステップ21において、次のセグメントに継続される。これが該当する場合、駆動曲線は完全に圧縮されており、方法はステップ25において終了される。
【0055】
次に、例に基づいてこれをさらにより詳細に説明する。この点において、
図4は、ステップ22においてセグメントが組み込まれるライブラリ40の例を示し、
図5は、ポインタリスト50の例を示す。
【0056】
この場合、次に続く例示は、ライブラリがまだ存在しないと想定し、前記ライブラリが次いで新たに作成される。
【0057】
方法の最初のパスにおいて、セグメントs0が分析される。エントリがまだライブラリ内に存在しないので、対応するセグメントもライブラリ内にまだ存在せず、セグメントはSeg0としてライブラリ40に組み込まれる。ポインタ(ポインタ0)は、ライブラリ40内のセグメントSeg0を指し示す。同様に、前記ポインタ0は、最初の位置(
図5の位置Nb=0)においてポインタリストに組み込まれる。例示する例において、読出し方向および符号が、変換操作としてさらに利用可能である。s0を再構築するためのセグメントの読出し方向は、順方向に実装されることが意図されており、それは
図5の右側に向いた矢印で示される。すなわち、この場合、
図5に存在する形の駆動曲線30のセグメントs0がSeg0として記憶される。符号の変更は同様に必要なく、これは
図5に0で表される。
【0058】
次いで、方法の次のパスの間、二番目のセグメントs1への移行が行われる。ここで、同様に、対応するセグメントがまだライブラリに存在せず、セグメントs1は、ライブラリ40内にSeg1として記憶され、ポインタ(ポインタ1)で指し示される。同様に、前記ポインタ1は、読出し方向が順方向におよび符号の変更なしで、二番目の位置(Nb=1)においてポインタリスト50に組み込まれる。この手順は、駆動曲線30の三番目のセグメントs2および四番目のセグメントs3に対して同じやり方で実装される。これらは、同様に、ライブラリ内にまだ存在せず、ポインタ(ポインタ2)によって指し示されるSeg2およびポインタ(ポインタ3)によって指し示されるSeg3としてライブラリ40に組み込まれる。同様に、ポインタ2およびポインタ3のエントリが、それぞれ、読出し方向が順方向におよび符号の変更なしで、次に、ポインタリスト50に入力される。
【0059】
次に、
図2の方法において、セグメントs4が分析される。後者は、反対方向のセグメントs3に対応する(セグメントs3の場合のように低い値から高い値への代わりに高い値から低い値への)。したがって、ここで、ステップ21において、対応するセグメント(Seg3)がすでにライブラリ内に存在することが確定される。したがって、セグメントs4に対して、ポインタ3が(位置Nb=4において)ポインタリスト50に再度記憶され、読出しを逆方向に実行しなければならないことが変換パラメータとしてさらに記憶され、これは
図5の左側に向いた矢印で象徴される。
【0060】
同様に、同じことが、反対方向のセグメントs2に対応するセグメントs5、反対方向のセグメントs1に対応するセグメントs6、および反対方向のセグメントs1に対応するセグメントs7にも当てはまる。したがって、それ以上のセグメントは、それらに対してライブラリ内に何も記憶されず、ポインタリストにおいて、それぞれの場合に読出しは逆方向で、ポインタ2が六番目の位置(Nb=5)に記憶され、ポインタ1が七番目の位置(Nb=6)に記憶され、ポインタ0が八番目の位置(Nb=7)に記憶される。
【0061】
図3〜5の例において、読出し方向および符号だけが、変換パラメータとして許容された。他の例示的な実施形態において、他の変換操作も可能にすることができる。概して、追加の変換操作を可能にすることにより、圧縮に必要な計算時間が増加するが、より高い圧縮率に、すなわち、圧縮駆動曲線のより小さい記憶空間要件に役立つことができる。
【0062】
例として、オフセットは、変換パラメータとして許容することができる。
図3の駆動曲線30の例において、セグメントs1およびs2における駆動曲線のプロファイルは、原理上は同一であるが、互いに対してオフセットを有する。オフセットが変換パラメータとして許容された場合、例として、セグメントs1だけがライブラリ40に記憶され、セグメントs2に対しては、関連したオフセットと一緒にライブラリにおけるセグメントs1を指し示すポインタが、ポインタリストに記憶されるはずである。他の例示的な実施形態において、さらに、または代替案として、スケーリング係数によるスケーリングも可能であり、その結果として、例えば、セグメントの勾配を改変することができる。符号の可能性は、その可能性は
図3〜5を参照して説明したが、そのようなスケーリング係数によるスケーリングの特別な場合を構成し、その場合、+1および−1のスケーリング係数だけが可能である。
【0063】
駆動曲線30の残りに対して、方法は、対応するやり方で継続される。駆動曲線30の場合、セグメントs0〜s7は、ここで、周期的に繰り返され、したがって、この場合、新たなセグメントがライブラリ40内に何も記憶されず、ポインタリスト50は、周期的に継続され、すなわち、次いで、行Nb0〜7における例示するエントリがNb=8から開始して、周期的に繰り返される。
【0064】
図2の方法は、例えば、走査デバイスの異なる構成要素の制御に対して複数のチャネルに使用される複数の駆動曲線にも適用可能である。例として、2つのミラーを2次元で走査する目的で駆動することができ、ミラーの傾斜軸は、2次元走査を可能にするために互いに垂直であり、またはサンプルは、2つ以上のレーザ光線を使用して走査することができる。原理上は、
図2において説明したように、方法は、次いで連続して複数の駆動曲線に適用することができ、共有ライブラリを使用することができ、したがって、2つ以上の駆動曲線において生じるセグメントは、一度だけ記憶される。これは
図6〜8を参照して次に説明する。
【0065】
図6〜8の例において、2つの駆動曲線は、
図2からの方法を使用して圧縮され、前記駆動曲線は
図6において示す。それらは、初めに、
図3においてすでに示し、説明した駆動曲線30であり、次に、駆動曲線60である。すでに述べたように、これらの2つの駆動曲線は、例えば、異なる走査デバイスのミラーを駆動することができる。
【0066】
図2からのステップ20において、駆動曲線は、説明したように、セグメントに細分される。この場合、駆動曲線30は、すでに論じたセグメントs0〜s7、...に細分される。駆動曲線60は、
図6に示すように、セグメントs00、s01、s02、s03、s04、s05、s06、s07...、に細分される。この場合、曲線30および60が細分されるセグメントの長さは、
図6〜8の例示的な実施形態において同一であり、それにより、共有ライブラリの使用が容易になる。
【0067】
次いで、
図2からの方法が、説明したように、駆動曲線30のセグメントに対して実行され、その結果として、セグメントs0〜s3が、対応するポインタ(ポインタ0〜ポインタ3)とともにセグメントSeg0〜Seg3として
図7に示すライブラリ70に記憶され、この場合もやはり
図8において示し、および
図5からのポインタリスト50に対応するポインタリスト50が作成される。
【0068】
次いで、駆動信号60のセグメントが、
図2からの方法を使用して処理される。セグメントs00は、まだライブラリ内になく、したがって、割り当てられたポインタ(ポインタ4)とともにライブラリ70にSeg4として追加される。したがって、順読出し方向を有するポインタ4は、第1のエントリ(Nb=0)として、ポインタリスト81に追加される。セグメントs01は、反対方向のセグメントs00に対応する。したがって、今回は逆読出し方向を有するポインタ4が第2のエントリとしてポインタリスト81(Nb=1)内に再度記憶される。
【0069】
次いで、駆動信号60のセグメントs02が、すでにSeg2として記憶デバイス70に記憶されている駆動信号30のセグメントs2に対応する。したがって、順読出し方向を有するポインタ2が、第3のエントリ(Nb=2)としてポインタリスト81に入力される。同様のやり方で、セグメントs03が、すでにSeg3として記憶されている駆動曲線30のセグメントs3に対応し、セグメントs04が、逆の列を有する前記セグメントに対応する。したがって、ポインタ3は、次に、順読出し方向(Nb=3)で1回および逆読出し方向(Nb=4)で1回の2回ポインタリスト81に入力される。このようにして、ポインタリストが、
図8に示すように、曲線60に対しても次第に作成される。2つのポインタリストの場合も、方向および符号の他に、オフセットまたはスケーリングなどの上述の他の変換パラメータを他の例示的な実施形態において使用することもできる。2つの駆動曲線に対して上記に説明したのと同じやり方で、方法は、3つ以上の駆動曲線に適用することもできる。
【0070】
次に、
図9を参照して、このようにして圧縮された駆動曲線を伸張するための方法を、
図9を参照して論じる。
図9を説明するために、
図3〜8を再度参照する。
【0071】
ステップ90には、ポインタリストから第1のポインタおよび、適切な場合、変換パラメータ(後者が使用された場合)を読み出すことが関与する。
図3〜5の例の場合、行Nb=0のエントリとして、ポインタ0が、読出しが順方向に実施されなければならない変換パラメータと一緒に、ポインタリスト50から読み出される。ステップ91において、ポインタによって指し示されるセグメント(リスト50およびポインタ0の場合セグメントSeg0)が、次いでライブラリから読み出される。
【0072】
次いで、任意選択で、ステップ92において、セグメントが、変換パラメータに基づいて変換され、例えば、符号が変更される。変換パラメータとして読出し方向の場合、ステップ92が、ステップ91と一緒に実行され、すなわち、セグメントが変換パラメータによって示される方向にライブラリから読み出される。しかし、代替案として、この場合もまた、変換は、最初にセグメントを読み出し、次いで列を逆にすることによって別々のステップで実行することができる。
【0073】
ステップ93において、データシンク、例えば、走査デバイス、例えば、走査デバイスのミラーまたはそのようなミラーを制御する調整器が、次いで、セグメント(適切な場合、セグメントが変換された場合は変換されたセグメント)に基づいて駆動された。例として、アナログ/デジタル変換器を用いて、セグメントを、例えば、それによりスキャナミラーが駆動される電圧プロファイルに変えることができる。
【0074】
ステップ94においては、いくつかの例示的な実施形態において、ポインタ読出しが、処理されるポインタのうちの最後のポインタであるかどうかを確立するために確認が行われる。これは、ポインタリスト内の最後のポインタに達した場合である可能性があり、すなわち、この場合、ポインタリストは1回処理される。別の変形において、これは、さらに、または代替案として、異なる終端条件が満足された場合である可能性があり、例えば、所定の数のセグメントおよび/またはセグメントに基づいて発生された出力値が出力されている。これが該当する場合、方法はステップ95において終了する。これが該当しない場合、方法は、ステップ90における次のポインタに継続される。
【0075】
他の例示的な実施形態において、ポインタリストは、やはり周期的に繰り返される。そのような場合、ポインタリストの最後のポインタが処理された後、方法は、ポインタリストの第1のポインタに継続される。この点において、駆動曲線を周期的に繰り返すことができる。これは、上記に説明した終端条件と組み合わせることができる。
【0076】
ステップ93は、必ずしも、各セグメントに対して別々に実行しなくてもよく、むしろ、複数の、またはすべてのセグメントを組み合わせることもでき、次いで、駆動を実行することができることに留意されたい。
【0077】
図6〜8を参照して説明したように複数の駆動曲線の場合、
図9の方法は、例えば、異なるポインタリストに対して交互に実行することができ、したがって、ポインタリストは順番に読み出される(ラウンドロビン方法)。これは、特に複数の構成要素、例えば、複数のミラーが互いに同期しておよび実質的に駆動曲線と同時に駆動されることが意図されている場合に役立つ。これも、
図10および11を参照して以下に説明する。
【0078】
図10および11における例示的な実施形態において、セグメントに基づく走査デバイスの制御(ステップ93)は、セグメントの情報を含み、走査デバイスに伝送されるパケットに基づいて行われると想定される。この場合、パケットは、特定の量のデータを含むことができる。セグメントのデータの量(例えば、セグメントに含まれる駆動曲線の点の数)が、パケットで伝達されるデータの数よりも大きい場合、セグメントは、複数のパケットで伝達される。
【0079】
図10の例示的な実施形態において、走査デバイスは、2つの駆動曲線(例えば、
図6からの曲線30および60)に基づいて駆動される。駆動には、交互に各駆動曲線のポインタが、それぞれのポインタリストから読み出され、セグメントが、ライブラリから読み取られ、適切な場合、変換される。すなわち、
図9からのステップ90〜92が、2つの曲線に関連付けられたポインタリスト(例えば、
図8からのポインタリスト50および81)に対して交互に実行される。
【0080】
図10の例示的な実施形態において、各セグメントは、n個のパケットの形でライブラリに記憶される。
図10の例において、曲線1のセグメント100、曲線0のセグメント101、曲線1のセグメント102、曲線0のセグメント103が、それぞれの場合にn個の関連したパケットでライブラリに記憶されるなどされる。次いで、
図6〜8の例の場合、セグメント100が、曲線60のセグメントs00に対応することができ、セグメント101が、曲線30のセグメントs0に対応することができ、セグメント102が、曲線60のセグメントs01に対応することができ、セグメント103が、曲線30のセグメントs1に対応することできるなどする。他の変形において、セグメントは、パケット以外の形で記憶することもでき、したがって、例えば、読み出しし次第だけ、パケット化することができることに留意されたい。パケットは、それぞれ、それぞれのセグメントの点を含むヘッダおよびデータセクションを備えることができる。
【0081】
次いで、通信の場合、2つの曲線からのパケットが、ブロック104に示すように交互にライブラリから読み取られ、走査デバイスに伝達され、走査デバイスは、ここで、データシンクの例としての役目をする。複数の構成要素を同期して駆動するために、この場合、出力を複数の構成要素に同期させる同期デバイスを提供することが可能である。
【0082】
例として、
図10において、初めにセグメント100のパケット0が、次いで、セグメント101のパケット0が、次いで、セグメント100のパケット1が、次いで、セグメント101のパケット1が伝達されるなどされて、ついには、セグメント100、101のすべてのパケットが伝達される。この場合、パケットは、セグメントを指し示すポインタに対するサブポインタによって対処することができる。次いで、
図10の矢印で示すように、2つの曲線の次のポインタが処理され、次のセグメント102、103のパケットが、交互に伝送される。このために、
図9からの方法を実装する読出しデバイスが、セグメントの大きさ(すなわち、パケットごとのデータの量(長さに対応する)で割ったセグメントのデータの量(長さに対応する)に対応するパケットがセグメントごとにいくつ必要か)に関する情報を必要とし、したがって、装置は、いつ次のポインタを処理しなければならないかを知る。これは、例えば、処理されたパケットの数を数え、パケットの数が所定の値に達したときにセグメントが終了したことを決定するカウンタを用いて実行することができる。他の例示的な実施形態において、交互読出しは均一でなくてもよいことに留意されたい。例として、セグメントからのパケットは、駆動曲線に基づいて駆動されるそれぞれのデバイスに対する駆動の要件により、1つの駆動曲線に対して、別の駆動曲線に対するよりもしばしば読み取ることができる。
【0083】
そのようなライブラリからの読出しは、具体的には、例えば、
図1からの記憶デバイス18に直接アクセスするダイレクトメモリアクセス装置(DMA装置)を用いて使用することができ、その場合、圧縮駆動曲線(ポインタリストおよびライブラリ)は、このためにプロセッサ17などのプロセッサを使用しなくても、記憶される。他の装置において、方法は、DMA装置を使用せずに、プロセッサだけによって実行することもできる。さらに他の例示的な実施形態において、DMA装置は、上記に説明したように、特定のハードウェア構成要素に基づいて実装することもできるコンピューティングデバイスの一部であることができる。
【0084】
DMA装置のそのような使用の一例を
図11に示す。
図11は、
図10を参照して説明したように、異なる駆動曲線に対してポインタをポインタリスト(
図11の例において3つのポインタリスト110A、110Bおよび110C)から順番に読み取るDMA装置111を示す。次いで、DMA装置111は、セグメントの対応するパケットをライブラリ112からさらに読み取り、それらを変換し(例えば、論じたように、対応する読出し方向の選択および符号による乗算によって)、
図10を参照して説明したように、例えば、適用例、具体的には、走査デバイス113にパケットを伝送する。このために、同様に説明したように、DMA装置111は、いつ最後のポインタに達したのか(
図9のステップ94において、はい)および各セグメントがその間で分割されるパケットの数に関する情報を知るためにパラメータ114として、ポインタリストの長さを受け取る。他の例示的な実施形態において、パケット化は行われず、むしろ、走査デバイスが、セグメント読出しに基づいて直接制御されることに留意されたい。
【0085】
このようにして、複数のデータチャネルが、複数の駆動曲線に対応するやり方で扱われることが可能であり、パラメータ114、具体的には、ポインタリストの長さが、各ポインタリストに対して存在しなければならない(長さがすべてのポインタリストに対して同一である場合、単一の存在で十分である)。
【0086】
DMA装置の使用の結果として、複数のチャネルに対して、例えば、FPGA(フィールドプログラマブルゲートアレイ)を用いて相対的に費用効率よく実装可能である1つのDMA装置だけが使用されるので、複数の駆動曲線に対しても相対的に少しの資源しか必要でない。
【0087】
上記に論じた様々な変更に関して、提示した例示的な実施形態が例示のためだけに役立ち、制限しようとするものと解釈してはならないことは明らかである。方法は、
図1を参照して説明したように、プロセッサ上にコンピュータプログラムを用いて実装することができるが、例えば、
図11は、DMA装置などのハードウェア構成要素を使用することもできることを示す。