(57)【要約】      （修正有）【課題】走査デバイスの駆動曲線を圧縮するための方法および装置ならびに対応するコンピュータプログラムを提供する。【解決手段】データ圧縮するための方法において、、駆動曲線３０が、セグメントｓ０〜ｓ７に細分される。ライブラリ内にまだ存在しないセグメントが、ライブラリ内に記憶される。さらに、各セグメントに対して、ライブラリ内の対応するセグメントを指し示すポインタが、リスト内に記憶される。【選択図】図３
2020031416.tif 000002
【特許請求の範囲】
【請求項１】
走査デバイスの駆動曲線を圧縮するためのコンピュータ支援方法であって、
駆動曲線（３０、６０）をセグメント（ｓ０〜ｓ７、ｓ００〜ｓ０７）に細分することと、
前記セグメントのそれぞれに対して、
前記セグメントのそれぞれのセグメントに対応するセグメントがライブラリ内に存在するかどうかを確認することと、
対応するセグメントが前記ライブラリ内に何も存在しない場合、前記セグメントを前記それぞれのセグメントに対応するセグメントとして前記ライブラリに組み込むことと、
前記ライブラリ内の前記対応するセグメントを示すポインタをポインタリストに組み込むこととを含む、コンピュータ支援方法。
【請求項２】
前記それぞれのセグメントと同一のセグメントが前記ライブラリ内に存在する場合、対応するセグメントが、前記ライブラリ内に存在する、請求項１に記載の方法。
【請求項３】
所定の尺度以下だけ前記それぞれのセグメントと異なるセグメントが前記ライブラリ内に存在する場合、対応するセグメントが、前記ライブラリ内に存在する、請求項１または２に記載の方法。
【請求項４】
前記それぞれのセグメントに変換可能であるセグメントが前記ライブラリ内に存在する場合、前記それぞれのセグメントに対応するセグメントが、前記ライブラリ内に存在し、前記セグメントに対する前記ポインタを前記ポインタリストに組み込むことが、前記ライブラリ内の前記対応するセグメントの前記それぞれのセグメントへの変換操作を定義する１つまたは複数の変換パラメータを前記ポインタリストに組み込むことをさらに含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記少なくとも１つの変換パラメータが、前記ライブラリからの前記セグメントの読出し方向を含む、請求項４に記載の方法。
【請求項６】
前記少なくとも１つの変換パラメータが、前記ポインタによって示される前記ライブラリ内の当該セグメントが共に提供されることになる符号を含む、請求項４または５に記載の方法。
【請求項７】
前記少なくとも１つの変換パラメータが、前記ポインタによって示される前記ライブラリの当該セグメントに対するオフセットおよび／またはスケーリング係数を含む、請求項４から６のいずれか一項に記載の方法。
【請求項８】
前記方法が、複数の駆動曲線に適用される、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記ライブラリが、前記複数の駆動曲線の共有ライブラリである、請求項８に記載の方法。
【請求項１０】
前記ポインタリストが、各駆動曲線に対して別々に作成される、請求項８または９に記載の方法。
【請求項１１】
前記セグメントが、前記ライブラリ内にパケットの形で記憶される、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
コンピュータプログラムであって、コンピューティングデバイス上で実行されたとき、請求項１から９のいずれか一項に記載の方法を実行させるプログラムコードを含むコンピュータプログラム。
【請求項１３】
走査デバイスの駆動曲線を圧縮するための装置であって、コンピューティングデバイス（１２、１３）を備え、請求項１から１１のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項１４】
走査デバイスの駆動曲線を伸張するためのコンピュータ支援方法であって、
セグメントライブラリ内のセグメントを示すポインタをポインタリストから読み取ることと、
前記ポインタによって示される前記セグメントを前記ライブラリから読み取ることと、
前記セグメントに基づいてデータシンクを駆動することと、
前記ポインタの前記読取り、前記セグメントの前記読取りおよび前記ポインタリスト内の複数のポインタに対する前記制御を繰り返すこととを含む、コンピュータ支援方法。
【請求項１５】
前記セグメントに基づいて前記データシンクを駆動することが、変換されたセグメントに基づいて制御することを含み、前記ライブラリから読み取られた前記セグメントを変換するための少なくとも１つの変換パラメータが、前記ポインタと一緒に前記ポインタリストから読み取られる、請求項１４に記載の方法。
【請求項１６】
前記少なくとも１つの変換パラメータが、前記ライブラリからの前記セグメントの読出し方向を含む、請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つの変換パラメータが、前記ポインタによって指し示される前記ライブラリ内の当該セグメントが共に提供されることになる符号を含む、請求項１５または１６に記載の方法。
【請求項１８】
前記少なくとも１つの変換パラメータが、前記ポインタによって示される前記ライブラリの当該セグメントに対するオフセットおよび／またはスケーリング係数を含む、請求項１５から１７のいずれか一項に記載の方法。
【請求項１９】
前記方法が、複数の駆動曲線を定義する複数のポインタリストに対して実行され、前記ポインタを読み取ること、前記セグメントを読み取ること、および前記データシンクを制御することのプロセスが、複数のリストに対して交互に均一にまたは非均一に実行される、請求項１４から１８のいずれか一項に記載の方法。
【請求項２０】
前記ポインタを読み取ることおよび前記セグメントを読み取ることが、ダイレクトメモリアクセス装置を用いて実行される、請求項１９に記載の方法。
【請求項２１】
前記セグメントを前記ライブラリから読み取ることが、１つまたは複数のパケットを前記ライブラリから読み取ることを含み、前記パケットが、前記データシンクに伝送される、請求項１４から２０のいずれか一項に記載の方法。
【請求項２２】
異なるリストに割り当てられたパケットが、交互に伝送される、請求項２１および請求項１９または２０に記載の方法。
【請求項２３】
コンピュータプログラムであって、コンピューティングデバイス上で実行されたとき、請求項１４から２２のいずれか一項に記載の方法を実行させるプログラムコードを含むコンピュータプログラム。
【請求項２４】
走査デバイスの駆動曲線を伸張するための装置であって、コンピューティングデバイスを備え、請求項１４から２３のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項２５】
システムであって、
サンプルを走査するための走査デバイスと、
請求項１３または２４に記載の少なくとも１つの装置とを備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、駆動曲線を圧縮し、および伸張するための方法および装置に関し、ならびに走査デバイスの駆動曲線に対してそのような圧縮および伸張を使用する走査デバイスを備えるシステムに関する。
【背景技術】
【０００２】
走査デバイスは、例えばレーザ光線などの光線を用いて、例えば、サンプルを走査するのに使用される。光線の場合、１つまたは複数の可動ミラーが、このために、しばしば使用される。次いで、前記１つまたは複数のミラーの移動が、サンプル上のレーザ光線などの光線を移動させ、照明への応答（例えば、輝度、蛍光、光散乱など）を測定することができる。この種類のシステムの一例は、レーザ走査顕微鏡（ＬＳＭ）を備える。原子間力顕微鏡などの他の適用例において、例えば、チップを使用してサンプルが走査され、チップは、サンプルの上を移動される。
【０００３】
この場合、多くの適用例において、そのような走査は、走査デバイスがサンプルを走査するために駆動される電圧または電流プロファイルを定義する駆動曲線を使用して実行される。例として、ガルバニックミラーなどの可動ミラー、微小電気機械システム（ＭＥＭＳ）に基づくミラーまたは薄膜ミラーは、ミラー調整を制御するために、したがって、サンプルのまたはその対象の一部の走査を定義するために電圧プロファイルを用いて駆動することができる。
【０００４】
特に並列に存在する複数の駆動曲線の場合（例えば、２つのミラーが２次元でサンプルを走査するために使用される場合）、そのような駆動曲線は、大量の記憶空間を必要とすることがある。したがって、そのような駆動曲線を圧縮し、および伸張する可能性を提供することが目的である。
【発明の概要】
【０００５】
この目的は、独立請求項において定義されるように方法および装置を用いて実現される。従属請求項は、他の実施形態ならびに対応するコンピュータプログラムおよびシステムを定義する。
【０００６】
１つの例示的な実施形態によれば、走査デバイスの駆動曲線を圧縮するためのコンピュータ支援方法であって、
駆動曲線をセグメントに細分することと、
セグメントのそれぞれに対して、
セグメントのそれぞれのセグメントに（すなわち、現在検査されたセグメントに）対応するセグメントが、ライブラリ内に存在するかどうかを確認することと、
対応するセグメントがライブラリ内に何も存在しない場合、そのセグメントをそれぞれのセグメントに対応するセグメントとしてライブラリに組み込むことと、
対応するセグメント（現在組み込まれているセグメントまたはすでに存在するセグメント）を示すポインタをライブラリ内のポインタリストに組み込むこととを含む、コンピュータ支援方法が提供される。
【０００７】
この場合、コンピュータ支援方法は、コンピュータなどの適切なコンピューティングユニット、デジタル信号プロセッサ（ＤＳＰ）、または特定用途向け集積回路（ＡＳＩＣ）もしくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの、同様に構成されたハードウェア構成要素上に実装される方法である。
【０００８】
それぞれのセグメントと同一のセグメントがライブラリ内に存在する場合、対応するセグメントが、ライブラリ内に存在することができる。
【０００９】
別の例示的な実施形態において、所定の尺度以下だけそれぞれのセグメントと異なるセグメントがライブラリ内に存在する場合、対応するセグメントが、ライブラリ内に存在する。この場合、尺度は、例えば、平均二乗偏差または他の何らかの測定基準の閾値であることができる。
【００１０】
駆動曲線の効率的な圧縮は、このようにして実現することができる。
【００１１】
代替案として、それぞれのセグメントに変換可能であるセグメントがライブラリ内に存在する場合、それぞれのセグメントに対応するセグメントが、ライブラリ内に存在することができ、この場合、セグメントに対するポインタをポインタリストに組み込むことは、ライブラリ内の対応するセグメントのそれぞれのセグメントへの変換操作を定義する１つまたは複数の変換パラメータをポインタリストに組み込むことをさらに含む。
【００１２】
少なくとも１つの変換パラメータは、ライブラリからのセグメントの読出し方向を含むことができる。
【００１３】
少なくとも１つの変換パラメータは、ポインタによって示されるライブラリ内の当該セグメントが共に提供されることになる符号を含むこともできる。
【００１４】
少なくとも１つの変換パラメータは、ポインタによって示されるライブラリの当該セグメントのオフセットおよび／またはスケーリング係数を含むこともできる。
【００１５】
そのような変換パラメータの使用により、いくつかの例示的な実施形態において記憶要件をさらに低減することが可能になる。
【００１６】
方法は、複数の駆動曲線に適用することができる。
【００１７】
複数のチャネルをこのようにして動作させることができる。
【００１８】
ライブラリは、複数の駆動曲線の共有ライブラリであることができ、それにより、ライブラリの記憶要件を低減することができる。
【００１９】
各駆動曲線に対して、ポインタリストを別々に作成することができる。
【００２０】
さらに、プロセッサ上で実行されたとき、上記に説明した方法のうちの１つを実行させるプログラムコードを備えるコンピュータプログラムが提供される。
【００２１】
別の例示的な実施形態によれば、コンピューティングデバイスを備える、走査デバイスの駆動曲線を圧縮するための装置が提供され、装置は、例えば、上記のコンピュータプログラムを用いて、上記に説明したように方法を実行するように構成される。
【００２２】
他の例示的な実施形態によれば、走査デバイスの駆動曲線を伸張するためのコンピュータ支援方法であって、
セグメントライブラリ内のセグメントを示すポインタをポインタリストから読み取ることと、
ポインタによって示されるセグメントをライブラリから読み取ることと、
データシンクを駆動することであって、具体的には、セグメントに基づいて、適切な場合調整器などの他の構成要素とともに、走査デバイスであることができ、またはそのような走査デバイスを備えることができるデータシンクを駆動することと、
ポインタの読取り、セグメントの読取りおよびポインタリスト内の複数のポインタの制御を繰り返すこととを含む、コンピュータ支援方法が提供される。
【００２３】
セグメントに基づいてデータシンクを制御することは、変換されたセグメントに基づいて制御することを含むことができ、ライブラリから読み取られたセグメントを変換するための少なくとも１つの変換パラメータが、ポインタと一緒に、ポインタリストから読み取られる。
【００２４】
少なくとも１つの変換パラメータは、ライブラリからのセグメントの読出し方向を含むことができる。
【００２５】
少なくとも１つの変換パラメータは、ポインタによって指し示されるライブラリ内の当該セグメントが共に提供されることになる符号を含むこともできる。
【００２６】
少なくとも１つの変換パラメータは、ポインタによって示されるライブラリの当該セグメントのオフセットおよび／またはスケーリング係数を含むこともできる。
【００２７】
そのような変換パラメータの使用により、いくつかの例示的な実施形態において記憶要件をさらに低減することが可能になる。
【００２８】
方法は、複数の駆動曲線を定義する複数のポインタリストに対して実行することができ、ポインタを読み取り、セグメントを読み取り、およびデータシンクを制御するプロセスは、複数のリストに対して交互に実行される。この場合、「交互に（ａｌｔｅｒｎａｔｅｌｙ）」は、リストが均一に読み出されない可能性を含み、むしろ、リストによっては他のリストよりもしばしば読み出すことができるものもあり、すなわち、交互にすることは均一にまたは非均一に行われることがある。
【００２９】
複数のチャネルをこのようにして動作させることができる。
【００３０】
この場合、ポインタを読み取ること、およびセグメントを読み取ることは、ダイレクトメモリアクセス装置（ＤＭＡ装置：ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ａｐｐａｒａｔｕｓ）を用いて実行することができる。
【００３１】
セグメントをライブラリから読み取ることは、１つまたは複数のパケットをライブラリから読み取ることを含むことができ、パケットはデータシンクに伝送される。
【００３２】
この場合、異なるリストに割り当てられたパケットは、交互に伝送することができる。同期デバイスを用いて、同期された、具体的には同時の、異なるデータシンクの駆動は、リストの非均一読出し、したがって、異なるチャネルに対する駆動の異なるデータ速度の場合でも、ここで実装することができる。
【００３３】
さらに、コンピューティングデバイス上で実行されたとき、伸張のための上記の方法のうちの１つを実行させるプログラムコードを含むコンピュータプログラムが提供される。
【００３４】
別の例示的な実施形態によれば、コンピューティングデバイスを備える、走査デバイスの駆動曲線を伸張するための装置が実装され、装置は、上記に説明したように伸張のための方法を実行するように構成される。この場合、コンピューティングデバイスは、コンピュータを備えることができるが、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの、特別に構成されたハードウェア構成要素も備えることができる。
【００３５】
さらに、システムであって、
サンプルを走査するための走査デバイスと、
上記に説明したように少なくとも１つの装置とを備える、システムが提供される。
【００３６】
添付の図面を参照して、様々な例示的な実施形態を以下により詳細に説明する。
【図面の簡単な説明】
【００３７】
【図１】１つの例示的な実施形態による、システムの構成図である。
【図２】１つの例示的な実施形態による、駆動曲線を圧縮するための方法の流れ図である。
【図３】図３からの方法を示す図である。
【図４】図３からの方法を示す図である。
【図５】図３からの方法を示す図である。
【図６】複数の駆動曲線に対する、図３からの方法を示す図である。
【図７】複数の駆動曲線に対する、図３からの方法を示す図である。
【図８】複数の駆動曲線に対する、図３からの方法を示す図である。
【図９】１つの例示的な実施形態による、駆動曲線を伸張するための方法の流れ図である。
【図１０】複数の駆動曲線の場合の伸張を示す図である。
【図１１】複数の駆動曲線の場合の伸張のための装置の一部の構成図である。
【発明を実施するための形態】
【００３８】
様々な例示的な実施形態を以下に詳細に説明する。これらの例示的な実施形態は、単に解明に役立つものであり、制限しようとするものと解釈してはならない。例として、複数の特徴を有する例示的な実施形態の説明は、すべてのこれらの特徴が実装に必要であるとの趣旨で解釈してはならない。むしろ、他の例示的な実施形態において、例示した構成要素または方法ステップの一部は省略し、および／または代替構成要素または方法ステップに置き換えることができる。明確に例示した構成要素および方法ステップに加えて、他の構成要素および方法ステップ、例えば、走査デバイスを使用する従来の装置およびシステムに使用される構成要素および方法ステップを使用することが可能である。
【００３９】
図１は、１つの例示的な実施形態による、システムの構成図を示す。システムは、制御デバイス１１と装置１５とを備え、装置１５は、制御デバイス１１を用いて制御可能である。
【００４０】
制御デバイス１１は、同様にプログラム可能なコンピュータまたは他のコンピューティングデバイス、例えば、デジタル信号プロセッサ（ＤＳＰ）などの他のプロセッサ、あるいは特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの固定プログラムハードウェア構成要素を備えることができる。
【００４１】
図示する例示的な実施形態において、装置１５は、導入部に説明したように走査デバイス１９を備え、走査デバイス１９を用いて、例えば、サンプルを走査することができる。例えば、レーザ光線を使用する光学走査の場合、走査デバイス１９は、１つまたは複数のミラー、例えば、ガルバニックミラー、微小電気機械システムに基づくミラー（ＭＥＭＳミラー）、薄膜ミラーなどを含むことができる。いくつかの例示的な実施形態において、装置１５は、レーザ走査顕微鏡であることができるが、それに制限されない。
【００４２】
具体的には、走査デバイス１９の１つまたは複数の駆動曲線は、制御デバイス１１において定義され、前記１つまたは複数の駆動曲線は、走査デバイスの走査を制御し、決定する。駆動曲線を定義することは、例えば、ユーザ入力を用いて、ユーザによるサンプルの対象領域のマーキングおよび後続の、前記対象領域を走査するための駆動曲線の自動決定を用いてなど、任意の従来のやり方で行うことができる。これらの手順は、それ自体が周知であり、したがって、より詳細に説明しない。
【００４３】
制御デバイス１１は、図２〜８を参照して後でより詳細に説明するように、１つの駆動曲線または複数の駆動曲線の圧縮を実行する。このために、制御デバイス１１としてのコンピュータの場合、制御デバイス１１のプロセッサ１２上で実行されるコンピュータプログラムを使用することが可能であり、前記コンピュータプログラムは、制御デバイス１１の記憶デバイス１３、および／または特定のハードウェア構成要素に記憶される。したがって、後でより詳細に説明するように、記憶デバイス１３において、ポインタリストおよびライブラリの形で圧縮駆動曲線を記憶することが可能である。駆動曲線は、具体的には、点列として、すなわち、時間に対する値の列としてデジタルの形で存在することができる。
【００４４】
圧縮データは、インターフェース１４を用いて装置１５に転送され、前記装置は、このためにインターフェース１６を有する。転送は、例えば、有線のやり方で、無線で、または光学的に実行することができる。転送は、例えば、ＬＶＤＳバスを介して実行することができるが、それに制限されない。例示した例において、装置１５は、記憶デバイス１８を有するプロセッサ１７を有する。圧縮データは、例えば、プロセッサ１７上で実行されるコンピュータプログラムを用いて、記憶デバイス１８に記憶され、および伸張される。プロセッサ１７などの、同様にプログラム可能なプロセッサの代わりに、またはそれに加えて、装置１５は、他の種類のコンピューティングデバイス、例えば、ＡＳＩＣまたはＦＰＧＡなどの特定のハードウェア構成要素を備えることもできる。次いで、走査デバイス１９は、伸張された駆動曲線に基づいて駆動される。この場合、例えば、可動ミラーなどの走査デバイスの構成要素は、直接、あるいは調整器を介して間接的に駆動することができる。他の例示的な実施形態において、駆動曲線に従って駆動されることが意図されている他のデータシンクを駆動することができる。
【００４５】
この場合、記憶デバイス１３、１８は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、ハードディスクなどの磁気記憶媒体または光記憶媒体など、任意の適切な記憶デバイスを備えることができる。圧縮駆動曲線の伸張に関する詳細は、図９〜１１を参照して後で説明する。圧縮の結果として、この場合図１の例示的な実施形態において、具体的には、制御デバイス１１から装置１５に転送されなければならないデータの量が低減される。
【００４６】
図１は圧縮および伸張が行われる別々の装置を示すが（制御デバイス１１における圧縮および装置１５における伸張）、これは制限しようとするものと解釈してはならず、２つのプロセスは、単一の装置において実行することもでき、例えば、駆動曲線は、装置によって連続して受け取られ、したがって装置における記憶要件を低減するために圧縮した形で記憶デバイスに記憶される。したがって、図１における分割は、単に例として理解されたい。
【００４７】
データ圧縮のための方法の１つの例示的な実施形態を次に図２を参照して説明し、図２は１つの例示的な実施形態による方法の流れ図を示す。図２における方法のより良い解明のため、図３〜５をさらに参照するが、図３〜５は、図２における方法を用いる圧縮の一例を示す。図３〜５に示す例は、特定の駆動曲線の圧縮を示し、したがって、他の駆動曲線を同様のやり方で圧縮することができるので、単に例として理解されたい。
【００４８】
図２のステップ２０において、駆動曲線がセグメントに細分される。この場合、セグメントは、駆動曲線の時間セグメントである。好ましくは、すべてのセグメントは同じ長さを有し、原理上は、異なる長さのセグメントへの細分も可能であるが、圧縮に必要な計算をより難しくすることがある。
【００４９】
そのようなセグメントへの細分の一例を図３に概略的に示す。図３は、例として、駆動曲線３０を示し、駆動曲線３０は、この場合、周期的な、およそ三角形の駆動曲線である。そのような駆動曲線に基づいて、例えば、アナログ駆動電圧をデジタル／アナログ変換器を用いて発生させることができ、その駆動電圧を用いて、ミラーが次いで駆動され、次いで、ミラーは、例えば、周期的に前後に移動する。
【００５０】
前記駆動曲線３０は、等しい長さのセグメントに細分され、そのセグメントのうちのｓ０〜ｓ７を図８に示す。駆動曲線３０の残りは、同様にセグメントに細分される（図３に示していない）。
【００５１】
この細分の後、セグメントは連続して処理される。ステップ２１には、対応するセグメントがセグメントライブラリ内に存在するかどうかを確認することが関与する。これが該当しない場合、２２において、セグメントは、ライブラリに組み込まれる。この場合、対応するセグメントは、同一のセグメント、または変換操作を用いて現在検査されたセグメントに変えることができるセグメントであることができる。変換操作は、例えば、読出し方向、符号の変更、オフセットの追加またはスケーリング係数によるスケーリングを含むことができる。その例は後でさらに説明する。他の例示的な実施形態において、対応するセグメントは、適切な場合変換操作の包含を用いて、それぞれの現在処理されたセグメントと所定の尺度以下だけ異なるセグメントであることもできる。尺度は、例えば、セグメント間の偏差を測るのに使用される測定基準の閾値を定義することができる。適切な測定基準は、二乗偏差（ここで、セグメントの点間の差の二乗が加算される）、または絶対偏差の和（ここで、セグメントの点間の差の絶対値が加算される）を含む。
【００５２】
ステップ２３において、ライブラリ内のセグメントを指し示すポインタが、適切な場合、現在検査されたセグメントにライブラリ内のセグメントを変換する変換操作を記述した変換パラメータとともに、次いでポインタリストに組み込まれる。
【００５３】
この場合、ポインタは、一般に、対応するセグメントをライブラリから読み出すことを可能にする情報と理解されたい。例として、ポインタは、記憶デバイス内のセグメントのメモリアドレスを直接指し示すことができるが、しかし、ポインタは、他の何らかのやり方でセグメントを識別することもでき、後者の場合、ポインタからの情報は、次いで、例えば、メモリアドレスに変えられる。
【００５４】
ステップ２４には、現在検査されたセグメントが駆動曲線の最後のセグメントであるかどうかを確認することが関与する。これが該当しない場合、方法は、ステップ２１において、次のセグメントに継続される。これが該当する場合、駆動曲線は完全に圧縮されており、方法はステップ２５において終了される。
【００５５】
次に、例に基づいてこれをさらにより詳細に説明する。この点において、図４は、ステップ２２においてセグメントが組み込まれるライブラリ４０の例を示し、図５は、ポインタリスト５０の例を示す。
【００５６】
この場合、次に続く例示は、ライブラリがまだ存在しないと想定し、前記ライブラリが次いで新たに作成される。
【００５７】
方法の最初のパスにおいて、セグメントｓ０が分析される。エントリがまだライブラリ内に存在しないので、対応するセグメントもライブラリ内にまだ存在せず、セグメントはＳｅｇ０としてライブラリ４０に組み込まれる。ポインタ（ポインタ０）は、ライブラリ４０内のセグメントＳｅｇ０を指し示す。同様に、前記ポインタ０は、最初の位置（図５の位置Ｎｂ＝０）においてポインタリストに組み込まれる。例示する例において、読出し方向および符号が、変換操作としてさらに利用可能である。ｓ０を再構築するためのセグメントの読出し方向は、順方向に実装されることが意図されており、それは図５の右側に向いた矢印で示される。すなわち、この場合、図５に存在する形の駆動曲線３０のセグメントｓ０がＳｅｇ０として記憶される。符号の変更は同様に必要なく、これは図５に０で表される。
【００５８】
次いで、方法の次のパスの間、二番目のセグメントｓ１への移行が行われる。ここで、同様に、対応するセグメントがまだライブラリに存在せず、セグメントｓ１は、ライブラリ４０内にＳｅｇ１として記憶され、ポインタ（ポインタ１）で指し示される。同様に、前記ポインタ１は、読出し方向が順方向におよび符号の変更なしで、二番目の位置（Ｎｂ＝１）においてポインタリスト５０に組み込まれる。この手順は、駆動曲線３０の三番目のセグメントｓ２および四番目のセグメントｓ３に対して同じやり方で実装される。これらは、同様に、ライブラリ内にまだ存在せず、ポインタ（ポインタ２）によって指し示されるＳｅｇ２およびポインタ（ポインタ３）によって指し示されるＳｅｇ３としてライブラリ４０に組み込まれる。同様に、ポインタ２およびポインタ３のエントリが、それぞれ、読出し方向が順方向におよび符号の変更なしで、次に、ポインタリスト５０に入力される。
【００５９】
次に、図２の方法において、セグメントｓ４が分析される。後者は、反対方向のセグメントｓ３に対応する（セグメントｓ３の場合のように低い値から高い値への代わりに高い値から低い値への）。したがって、ここで、ステップ２１において、対応するセグメント（Ｓｅｇ３）がすでにライブラリ内に存在することが確定される。したがって、セグメントｓ４に対して、ポインタ３が（位置Ｎｂ＝４において）ポインタリスト５０に再度記憶され、読出しを逆方向に実行しなければならないことが変換パラメータとしてさらに記憶され、これは図５の左側に向いた矢印で象徴される。
【００６０】
同様に、同じことが、反対方向のセグメントｓ２に対応するセグメントｓ５、反対方向のセグメントｓ１に対応するセグメントｓ６、および反対方向のセグメントｓ１に対応するセグメントｓ７にも当てはまる。したがって、それ以上のセグメントは、それらに対してライブラリ内に何も記憶されず、ポインタリストにおいて、それぞれの場合に読出しは逆方向で、ポインタ２が六番目の位置（Ｎｂ＝５）に記憶され、ポインタ１が七番目の位置（Ｎｂ＝６）に記憶され、ポインタ０が八番目の位置（Ｎｂ＝７）に記憶される。
【００６１】
図３〜５の例において、読出し方向および符号だけが、変換パラメータとして許容された。他の例示的な実施形態において、他の変換操作も可能にすることができる。概して、追加の変換操作を可能にすることにより、圧縮に必要な計算時間が増加するが、より高い圧縮率に、すなわち、圧縮駆動曲線のより小さい記憶空間要件に役立つことができる。
【００６２】
例として、オフセットは、変換パラメータとして許容することができる。図３の駆動曲線３０の例において、セグメントｓ１およびｓ２における駆動曲線のプロファイルは、原理上は同一であるが、互いに対してオフセットを有する。オフセットが変換パラメータとして許容された場合、例として、セグメントｓ１だけがライブラリ４０に記憶され、セグメントｓ２に対しては、関連したオフセットと一緒にライブラリにおけるセグメントｓ１を指し示すポインタが、ポインタリストに記憶されるはずである。他の例示的な実施形態において、さらに、または代替案として、スケーリング係数によるスケーリングも可能であり、その結果として、例えば、セグメントの勾配を改変することができる。符号の可能性は、その可能性は図３〜５を参照して説明したが、そのようなスケーリング係数によるスケーリングの特別な場合を構成し、その場合、＋１および−１のスケーリング係数だけが可能である。
【００６３】
駆動曲線３０の残りに対して、方法は、対応するやり方で継続される。駆動曲線３０の場合、セグメントｓ０〜ｓ７は、ここで、周期的に繰り返され、したがって、この場合、新たなセグメントがライブラリ４０内に何も記憶されず、ポインタリスト５０は、周期的に継続され、すなわち、次いで、行Ｎｂ０〜７における例示するエントリがＮｂ＝８から開始して、周期的に繰り返される。
【００６４】
図２の方法は、例えば、走査デバイスの異なる構成要素の制御に対して複数のチャネルに使用される複数の駆動曲線にも適用可能である。例として、２つのミラーを２次元で走査する目的で駆動することができ、ミラーの傾斜軸は、２次元走査を可能にするために互いに垂直であり、またはサンプルは、２つ以上のレーザ光線を使用して走査することができる。原理上は、図２において説明したように、方法は、次いで連続して複数の駆動曲線に適用することができ、共有ライブラリを使用することができ、したがって、２つ以上の駆動曲線において生じるセグメントは、一度だけ記憶される。これは図６〜８を参照して次に説明する。
【００６５】
図６〜８の例において、２つの駆動曲線は、図２からの方法を使用して圧縮され、前記駆動曲線は図６において示す。それらは、初めに、図３においてすでに示し、説明した駆動曲線３０であり、次に、駆動曲線６０である。すでに述べたように、これらの２つの駆動曲線は、例えば、異なる走査デバイスのミラーを駆動することができる。
【００６６】
図２からのステップ２０において、駆動曲線は、説明したように、セグメントに細分される。この場合、駆動曲線３０は、すでに論じたセグメントｓ０〜ｓ７、．．．に細分される。駆動曲線６０は、図６に示すように、セグメントｓ００、ｓ０１、ｓ０２、ｓ０３、ｓ０４、ｓ０５、ｓ０６、ｓ０７．．．、に細分される。この場合、曲線３０および６０が細分されるセグメントの長さは、図６〜８の例示的な実施形態において同一であり、それにより、共有ライブラリの使用が容易になる。
【００６７】
次いで、図２からの方法が、説明したように、駆動曲線３０のセグメントに対して実行され、その結果として、セグメントｓ０〜ｓ３が、対応するポインタ（ポインタ０〜ポインタ３）とともにセグメントＳｅｇ０〜Ｓｅｇ３として図７に示すライブラリ７０に記憶され、この場合もやはり図８において示し、および図５からのポインタリスト５０に対応するポインタリスト５０が作成される。
【００６８】
次いで、駆動信号６０のセグメントが、図２からの方法を使用して処理される。セグメントｓ００は、まだライブラリ内になく、したがって、割り当てられたポインタ（ポインタ４）とともにライブラリ７０にＳｅｇ４として追加される。したがって、順読出し方向を有するポインタ４は、第１のエントリ（Ｎｂ＝０）として、ポインタリスト８１に追加される。セグメントｓ０１は、反対方向のセグメントｓ００に対応する。したがって、今回は逆読出し方向を有するポインタ４が第２のエントリとしてポインタリスト８１（Ｎｂ＝１）内に再度記憶される。
【００６９】
次いで、駆動信号６０のセグメントｓ０２が、すでにＳｅｇ２として記憶デバイス７０に記憶されている駆動信号３０のセグメントｓ２に対応する。したがって、順読出し方向を有するポインタ２が、第３のエントリ（Ｎｂ＝２）としてポインタリスト８１に入力される。同様のやり方で、セグメントｓ０３が、すでにＳｅｇ３として記憶されている駆動曲線３０のセグメントｓ３に対応し、セグメントｓ０４が、逆の列を有する前記セグメントに対応する。したがって、ポインタ３は、次に、順読出し方向（Ｎｂ＝３）で１回および逆読出し方向（Ｎｂ＝４）で１回の２回ポインタリスト８１に入力される。このようにして、ポインタリストが、図８に示すように、曲線６０に対しても次第に作成される。２つのポインタリストの場合も、方向および符号の他に、オフセットまたはスケーリングなどの上述の他の変換パラメータを他の例示的な実施形態において使用することもできる。２つの駆動曲線に対して上記に説明したのと同じやり方で、方法は、３つ以上の駆動曲線に適用することもできる。
【００７０】
次に、図９を参照して、このようにして圧縮された駆動曲線を伸張するための方法を、図９を参照して論じる。図９を説明するために、図３〜８を再度参照する。
【００７１】
ステップ９０には、ポインタリストから第１のポインタおよび、適切な場合、変換パラメータ（後者が使用された場合）を読み出すことが関与する。図３〜５の例の場合、行Ｎｂ＝０のエントリとして、ポインタ０が、読出しが順方向に実施されなければならない変換パラメータと一緒に、ポインタリスト５０から読み出される。ステップ９１において、ポインタによって指し示されるセグメント（リスト５０およびポインタ０の場合セグメントＳｅｇ０）が、次いでライブラリから読み出される。
【００７２】
次いで、任意選択で、ステップ９２において、セグメントが、変換パラメータに基づいて変換され、例えば、符号が変更される。変換パラメータとして読出し方向の場合、ステップ９２が、ステップ９１と一緒に実行され、すなわち、セグメントが変換パラメータによって示される方向にライブラリから読み出される。しかし、代替案として、この場合もまた、変換は、最初にセグメントを読み出し、次いで列を逆にすることによって別々のステップで実行することができる。
【００７３】
ステップ９３において、データシンク、例えば、走査デバイス、例えば、走査デバイスのミラーまたはそのようなミラーを制御する調整器が、次いで、セグメント（適切な場合、セグメントが変換された場合は変換されたセグメント）に基づいて駆動された。例として、アナログ／デジタル変換器を用いて、セグメントを、例えば、それによりスキャナミラーが駆動される電圧プロファイルに変えることができる。
【００７４】
ステップ９４においては、いくつかの例示的な実施形態において、ポインタ読出しが、処理されるポインタのうちの最後のポインタであるかどうかを確立するために確認が行われる。これは、ポインタリスト内の最後のポインタに達した場合である可能性があり、すなわち、この場合、ポインタリストは１回処理される。別の変形において、これは、さらに、または代替案として、異なる終端条件が満足された場合である可能性があり、例えば、所定の数のセグメントおよび／またはセグメントに基づいて発生された出力値が出力されている。これが該当する場合、方法はステップ９５において終了する。これが該当しない場合、方法は、ステップ９０における次のポインタに継続される。
【００７５】
他の例示的な実施形態において、ポインタリストは、やはり周期的に繰り返される。そのような場合、ポインタリストの最後のポインタが処理された後、方法は、ポインタリストの第１のポインタに継続される。この点において、駆動曲線を周期的に繰り返すことができる。これは、上記に説明した終端条件と組み合わせることができる。
【００７６】
ステップ９３は、必ずしも、各セグメントに対して別々に実行しなくてもよく、むしろ、複数の、またはすべてのセグメントを組み合わせることもでき、次いで、駆動を実行することができることに留意されたい。
【００７７】
図６〜８を参照して説明したように複数の駆動曲線の場合、図９の方法は、例えば、異なるポインタリストに対して交互に実行することができ、したがって、ポインタリストは順番に読み出される（ラウンドロビン方法）。これは、特に複数の構成要素、例えば、複数のミラーが互いに同期しておよび実質的に駆動曲線と同時に駆動されることが意図されている場合に役立つ。これも、図１０および１１を参照して以下に説明する。
【００７８】
図１０および１１における例示的な実施形態において、セグメントに基づく走査デバイスの制御（ステップ９３）は、セグメントの情報を含み、走査デバイスに伝送されるパケットに基づいて行われると想定される。この場合、パケットは、特定の量のデータを含むことができる。セグメントのデータの量（例えば、セグメントに含まれる駆動曲線の点の数）が、パケットで伝達されるデータの数よりも大きい場合、セグメントは、複数のパケットで伝達される。
【００７９】
図１０の例示的な実施形態において、走査デバイスは、２つの駆動曲線（例えば、図６からの曲線３０および６０）に基づいて駆動される。駆動には、交互に各駆動曲線のポインタが、それぞれのポインタリストから読み出され、セグメントが、ライブラリから読み取られ、適切な場合、変換される。すなわち、図９からのステップ９０〜９２が、２つの曲線に関連付けられたポインタリスト（例えば、図８からのポインタリスト５０および８１）に対して交互に実行される。
【００８０】
図１０の例示的な実施形態において、各セグメントは、ｎ個のパケットの形でライブラリに記憶される。図１０の例において、曲線１のセグメント１００、曲線０のセグメント１０１、曲線１のセグメント１０２、曲線０のセグメント１０３が、それぞれの場合にｎ個の関連したパケットでライブラリに記憶されるなどされる。次いで、図６〜８の例の場合、セグメント１００が、曲線６０のセグメントｓ００に対応することができ、セグメント１０１が、曲線３０のセグメントｓ０に対応することができ、セグメント１０２が、曲線６０のセグメントｓ０１に対応することができ、セグメント１０３が、曲線３０のセグメントｓ１に対応することできるなどする。他の変形において、セグメントは、パケット以外の形で記憶することもでき、したがって、例えば、読み出しし次第だけ、パケット化することができることに留意されたい。パケットは、それぞれ、それぞれのセグメントの点を含むヘッダおよびデータセクションを備えることができる。
【００８１】
次いで、通信の場合、２つの曲線からのパケットが、ブロック１０４に示すように交互にライブラリから読み取られ、走査デバイスに伝達され、走査デバイスは、ここで、データシンクの例としての役目をする。複数の構成要素を同期して駆動するために、この場合、出力を複数の構成要素に同期させる同期デバイスを提供することが可能である。
【００８２】
例として、図１０において、初めにセグメント１００のパケット０が、次いで、セグメント１０１のパケット０が、次いで、セグメント１００のパケット１が、次いで、セグメント１０１のパケット１が伝達されるなどされて、ついには、セグメント１００、１０１のすべてのパケットが伝達される。この場合、パケットは、セグメントを指し示すポインタに対するサブポインタによって対処することができる。次いで、図１０の矢印で示すように、２つの曲線の次のポインタが処理され、次のセグメント１０２、１０３のパケットが、交互に伝送される。このために、図９からの方法を実装する読出しデバイスが、セグメントの大きさ（すなわち、パケットごとのデータの量（長さに対応する）で割ったセグメントのデータの量（長さに対応する）に対応するパケットがセグメントごとにいくつ必要か）に関する情報を必要とし、したがって、装置は、いつ次のポインタを処理しなければならないかを知る。これは、例えば、処理されたパケットの数を数え、パケットの数が所定の値に達したときにセグメントが終了したことを決定するカウンタを用いて実行することができる。他の例示的な実施形態において、交互読出しは均一でなくてもよいことに留意されたい。例として、セグメントからのパケットは、駆動曲線に基づいて駆動されるそれぞれのデバイスに対する駆動の要件により、１つの駆動曲線に対して、別の駆動曲線に対するよりもしばしば読み取ることができる。
【００８３】
そのようなライブラリからの読出しは、具体的には、例えば、図１からの記憶デバイス１８に直接アクセスするダイレクトメモリアクセス装置（ＤＭＡ装置）を用いて使用することができ、その場合、圧縮駆動曲線（ポインタリストおよびライブラリ）は、このためにプロセッサ１７などのプロセッサを使用しなくても、記憶される。他の装置において、方法は、ＤＭＡ装置を使用せずに、プロセッサだけによって実行することもできる。さらに他の例示的な実施形態において、ＤＭＡ装置は、上記に説明したように、特定のハードウェア構成要素に基づいて実装することもできるコンピューティングデバイスの一部であることができる。
【００８４】
ＤＭＡ装置のそのような使用の一例を図１１に示す。図１１は、図１０を参照して説明したように、異なる駆動曲線に対してポインタをポインタリスト（図１１の例において３つのポインタリスト１１０Ａ、１１０Ｂおよび１１０Ｃ）から順番に読み取るＤＭＡ装置１１１を示す。次いで、ＤＭＡ装置１１１は、セグメントの対応するパケットをライブラリ１１２からさらに読み取り、それらを変換し（例えば、論じたように、対応する読出し方向の選択および符号による乗算によって）、図１０を参照して説明したように、例えば、適用例、具体的には、走査デバイス１１３にパケットを伝送する。このために、同様に説明したように、ＤＭＡ装置１１１は、いつ最後のポインタに達したのか（図９のステップ９４において、はい）および各セグメントがその間で分割されるパケットの数に関する情報を知るためにパラメータ１１４として、ポインタリストの長さを受け取る。他の例示的な実施形態において、パケット化は行われず、むしろ、走査デバイスが、セグメント読出しに基づいて直接制御されることに留意されたい。
【００８５】
このようにして、複数のデータチャネルが、複数の駆動曲線に対応するやり方で扱われることが可能であり、パラメータ１１４、具体的には、ポインタリストの長さが、各ポインタリストに対して存在しなければならない（長さがすべてのポインタリストに対して同一である場合、単一の存在で十分である）。
【００８６】
ＤＭＡ装置の使用の結果として、複数のチャネルに対して、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）を用いて相対的に費用効率よく実装可能である１つのＤＭＡ装置だけが使用されるので、複数の駆動曲線に対しても相対的に少しの資源しか必要でない。
【００８７】
上記に論じた様々な変更に関して、提示した例示的な実施形態が例示のためだけに役立ち、制限しようとするものと解釈してはならないことは明らかである。方法は、図１を参照して説明したように、プロセッサ上にコンピュータプログラムを用いて実装することができるが、例えば、図１１は、ＤＭＡ装置などのハードウェア構成要素を使用することもできることを示す。
【図１】
2020031416.tif 000003
【図２】
2020031416.tif 000004
【図３】
2020031416.tif 000005
【図４】
2020031416.tif 000006
【図５】
2020031416.tif 000007
【図６】
2020031416.tif 000008
【図７】
2020031416.tif 000009
【図８】
2020031416.tif 000010
【図９】
2020031416.tif 000011
【図１０】
2020031416.tif 000012
【図１１】
2020031416.tif 000013
【外国語明細書】
2020031416000001.pdf
2020031416000002.pdf
2020031416000003.pdf
2020031416000004.pdf