説明

グリッド方位、変倍、平行移動及び変調の推定に関する処理方法、装置、プログラム、コンピュータ可読媒体

【課題】グリッドのグリッド方位、グリッド間隔及びグリッド平行移動を判定する計算費用の安価な改良された処理を提供する。
【解決手段】情報媒体上のドットは仮想グリッドからの変位により変調され変調グリッドとなっている。変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定する処理700が提供される。処理700は、グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定する。処理700は、仮想グリッドを判定するために、ベクトルを使用して変調を除去する。その後、処理700は、判定したベクトルを使用してグリッドの向きを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に画像処理に関し、特にグリッド検出に関する。更に本発明は、グリッドの向き(以下、「グリッド方位」と呼ぶ)、間隔(以下、「グリッド間隔」と呼ぶ)及び平行移動(以下、「グリッド平行移動」と呼ぶ)を判定する処理及び装置に関し、また、グリッドに対するグリッド方位、グリッド間隔及びグリッド平行移動を判定するコンピュータプログラムを記録したコンピュータ可読媒体に関する。
【背景技術】
【0002】
従来技術において、グリッド方位及びグリッド間隔を判定する方法が多く存在する。そのような方法は、通常、データがグリッドのような構成で格納される2次元バーコード又は透かしを位置合わせする処理の一部である。
【0003】
従来技術の方法は、通常、自己相関(autocorrelation)又はペリオドグラム(periodogram)等の畳み込みに基づく方法(convolution-based method)を使用して、グリッド方位及びグリッド間隔を判定する。自己相関及びペリオドグラムの双方が、出力データではピークとして示される入力データの主周波数を判定する。それらピークは判定され、最大ピークの場所がグリッドの主周波数となる。グリッドのグリッド間隔及びグリッド方位は、その主周波数から判定される。
【0004】
畳み込みに基づく方法の主な欠点は、それら方法が画像全体に対して畳み込みを実行するため、計算費用が高いことである。
【発明の開示】
【発明が解決しようとする課題】
【0005】
従って、グリッドのグリッド方位、グリッド間隔及びグリッド平行移動を判定する計算費用の安価な改良された処理が必要とされる。
【課題を解決するための手段】
【0006】
本発明の1つの面によると、ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定する処理方法は、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するステップと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するステップと、
前記判定したベクトルを使用して前記グリッド方位を判定するステップとを備えることを特徴する。
【0007】
本発明の別の面によると、符号化データに対するグリッドを判定する処理方法は、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するステップと、
前記統計平均に基づいて、前記データの角度方向を判定するステップと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するステップとを備えることを特徴する。
【0008】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定する処理方法は、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するステップと、
前記変位ベクトルを使用して前記グリッド方位を判定するステップと、
前記グリッド間隔を判定するステップと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するステップとを備えることを特徴する。
【0009】
本発明の更に別の面によると、符号化データに対するグリッドを判定する処理方法は、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するステップと、
前記グリッドの隣接データ点の間隔を判定するステップと、
前記グリッドに関して、各データ点に対するオフセットを判定するステップとを備えることを特徴する。
【0010】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定する装置は、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するベクトル判定手段と、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去する変調除去手段と、
前記判定したベクトルを使用して前記グリッド方位を判定するグリッド方位判定手段とを備えることを特徴する。
【0011】
本発明の更に別の面によると、符号化データに対するグリッドを判定する装置は、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定する統計平均判定手段と、
前記統計平均に基づいて、前記データの角度方向を判定する角度方向判定手段と、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するグリッド判定手段とを備えることを特徴する。
【0012】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定する装置は、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定する変位ベクトル判定手段と、
前記変位ベクトルを使用して前記グリッド方位を判定するグリッド方位判定手段と、
前記グリッド間隔を判定するグリッド間隔判定手段と、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するグリッド平行移動判定手段とを備えることを特徴する。
【0013】
本発明の更に別の面によると、符号化データに対するグリッドを判定する装置は、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定する角度方向判定手段と、
前記グリッドの隣接データ点の間隔を判定する間隔判定手段と、
前記グリッドに関して、各データ点に対するオフセットを判定するオフセット判定手段とを備えることを特徴する。
【0014】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定するコンピュータプログラムは、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するコードと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するコードと、
前記判定したベクトルを使用して前記グリッド方位を判定するコードとを備えることを特徴する。
【0015】
本発明の更に別の面によると、符号化データに対するグリッドを判定するコンピュータプログラムは、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するコードと、
前記統計平均に基づいて、前記データの角度方向を判定するコードと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するコードとを備えることを特徴する。
【0016】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定するコンピュータプログラムは、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するコードと、
前記変位ベクトルを使用して前記グリッド方位を判定するコードと、
前記グリッド間隔を判定するコードと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するコードとを備えることを特徴する。
【0017】
本発明の更に別の面によると、符号化データに対するグリッドを判定するコンピュータプログラムは、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するコードと、
前記グリッドの隣接データ点の間隔を判定するコードと、
前記グリッドに関して、各データ点に対するオフセットを判定するコードとを備えることを特徴する。
【0018】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定するコンピュータプログラムを記録したコンピュータ可読媒体は、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するコンピュータプログラムコードと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するコンピュータプログラムコードと、
前記判定したベクトルを使用して前記グリッド方位を判定するコンピュータプログラムコードとを備えることを特徴する。
【0019】
本発明の更に別の面によると、符号化データに対するグリッドを判定するコンピュータプログラムを記録したコンピュータ可読媒体は、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するコンピュータプログラムコードと、
前記統計平均に基づいて、前記データの角度方向を判定するコンピュータプログラムコードと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するコンピュータプログラムコードとを備えることを特徴する。
【0020】
本発明の更に別の面によると、ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定するコンピュータプログラムを記録したコンピュータ可読媒体は、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するコンピュータプログラムコードと、
前記変位ベクトルを使用して前記グリッド方位を判定するコンピュータプログラムコードと、
前記グリッド間隔を判定するコンピュータプログラムコードと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するコンピュータプログラムコードとを備えることを特徴する。
【0021】
本発明の更に別の面によると、符号化データに対するグリッドを判定するコンピュータプログラムを記録したコンピュータ可読媒体は、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するコンピュータプログラムコードと、
前記グリッドの隣接データ点の間隔を判定するコンピュータプログラムコードと、
前記グリッドに関して、各データ点に対するオフセットを判定するコンピュータプログラムコードとを備えることを特徴する。
【発明を実施するための最良の形態】
【0022】
(変調グリッド)
図2は、ドットの変調グリッド200(以下、「変調グリッド200」と呼ぶ)を形成するように位相変調(phase modulated)されたドット(例えば、202)の配列を示す拡大図である。変調グリッド200は、標準正方形グリッド(square regular grid)201の交点(例えば、203)に近接する多数のドット202を含む。実際には、図2に示されるように、ドット202のみが変調グリッド200を形成する。グリッド201及びその線は仮想のものであり、単にドット202の場所を説明するために図2に示される。
【0023】
変調グリッド200の外観は、ドットの標準グリッド(regular grid)300(以下、「標準グリッド300」と呼ぶ)を形成するように、図3に示されるような標準正方形グリッド301に従って配置されたドット(例えば、302)の外観に類似する。しかし、変調グリッド200及び標準グリッド300は同一のものではない。図3は、標準正方形グリッド301のグリッド間隔303を更に示す。
【0024】
標準グリッド300と変調グリッド200との相違点は、変調グリッド200におけるドット202の位置が、ドット202が標準グリッド201の交点203に従って配置される場合にドット202が占有するグリッド位置から離れた位置に僅かに変調されることである。この僅かな変調は、次の2つの目的を満足させる。第1に、変調により、変調グリッド200のドット202は、標準グリッド300のドット302よりも僅かに可視性が低くなる。これは、人間の視覚系が標準グリッドを認識することに非常に適しているからである。第2に、デジタルデータの形式のメッセージは、変調グリッド200のようにドットを変調した際に格納される。
【0025】
図4は、変調グリッド400を形成するように位相変調されたドット(例えば、402)の別の配列を示す。ドット402は、標準正方形グリッド401の交点(例えば、407)に近接する。図4から分かるように、各ドット402は、9つの可能な位置のうち1つの位置(例えば、403)に変調される。各ドットの9つの可能な位置は、関連するグリッド交点407に集中する3×3の配列(例えば、405)で構成される。3×3の配列405の中心位置409は、グリッド交点407に位置付けられ、水平方向及び垂直方向の距離がゼロの変調に対応する。同様に、標準正方形グリッド401の他の交点も、交点の辺りに位置付けられる3×3の配列を有する。残りの8つの変調位置(例えば、403)は、水平方向、垂直方向、あるいは水平方向及び垂直方向の双方に対するグリッド交点407からのオフセットである。残りの変調位置のオフセットの距離である水平方向及び垂直方向の距離を「変調量子」(modulation quantum)404と呼ぶ。9つの変調位置(modulation positions)403の場所は、グリッド交点407を基準として(x, y)ベクトルのリストとして表すことができる。ここで、xは水平方向を示し、yは垂直方向を示す。また、xに関しては右向きのオフセットが正であり、yに関しては下向きのオフセットが正であるという規則を使用する。9つの変調位置403の場所を表すベクトルは、グリッド交点407を基準として、「mq」が変調量子を表す場合に以下のように表すことができる。
【0026】
(-mq, -mq),
(0, -mq)
(+mq, -mq),
(-mq, +0),
(0, +0),
(+mq, +0),
(-mq, +mq),
(0, +mq),
(+mq, +mq)
図5は、標準正方形グリッド401に対するドット変調位置(例えば、403)を更に詳細に示す。ドット変調位置403は、グリッド401のグリッド交点407に集中しており、各変調位置、例えば、変調位置403は、変調位置403に関連するデジタルコード値(例えば、503)を有する。変調位置403等の9つの変調位置は、各ドット402が変調位置403に対するデジタルコード値503等の9つの可能なデジタルコード値のうち1つを符号化することを可能にする。これにより、変調グリッド400はデジタルデータ記憶装置として動作でき、変調グリッド400の各ドット402はデータの9を基数とする1つの数字を格納する。図6に示されるように、デジタルデータ記憶装置の数字の好ましい順序付けは、ドット601の矩形配列600を使用することにより提供される順序付けである。この順序付けは、一番上の最も左側のドット601から開始し、一番下の最も右側のドット603に到達するまで、矢印(例えば、604)で表すように左から右及び上から下に進む。図6に示す以外のデジタルデータ記憶装置の数字の順序付けが使用されてもよい。
【0027】
いくつかの例において、あるデータを含む変調グリッドが提供される際、その変調グリッドに対するグリッド方位、グリッド間隔及び変調量子を判定するのが有用である。グリッド方位、グリッド間隔及び変調量子の判定は、変調グリッド400等の変調グリッドにおいて、複数のドット402間の平均間隔がグリッド間隔411に等しいということを利用して行なわれてもよい。しかし、ドット402間の間隔は、グリッド間隔411に常に等しいとは限らない。同様に、ドット402及びドット413等の隣接するドット間の平均方向は、標準正方形グリッド401の線に位置合わせされる。しかし、隣接するドット(402及び413)間の方向は、グリッド401の線に常に位置合わせされるとは限らない。
【0028】
更に、特定のドット(例えば、402)に対して、それに対応して存在するグリッド点(grid-point)が位置付けられる場所を推定することは有用である。この問題は、グリッド平行移動の探索(finding the grid translation)と呼ばれる。ドットに対するグリッド点の場所は、ドットに最近接する交点の座標で表される。例えば、ドット402のグリッド点の場所は、交点407の座標である。
【0029】
多くの応用例において、変調グリッド400が作成される時と変調グリッド400に関連するパラメータ(例えば、グリッド間隔、グリッド方位)が判定される時との間に、変調グリッド(例えば、400)に対して変調が行なわれてもよい。例えば、変調グリッド400は印刷及び走査され、且つドット検出が行なわれてもよい。そのような変更の間に、いくつかの追加のドットが導入されてもよく、又はいくつかのドットが消失してもよく、且ついくつかのドットが移動してもよい。グリッドパラメータの推定は、そのような変更が行なわれる場合であっても信頼性の高いものである必要がある。
【0030】
(グリッドパラメータの判定)
次に、ドットのグリッドのグリッド方位、グリッド間隔(grid spacing)及びグリッド平行移動(grid translation)を判定する処理700について、図7〜図17を参照して説明する。処理700は、図1に示すような汎用コンピュータシステム100を使用して実現されてもよい。ここで、図7〜図17の処理は、コンピュータシステム100内で実行するアプリケーションプログラム等のソフトウェアとして実現されてもよい。特に、処理700のステップは、コンピュータにより実行されるソフトウェアの命令により開始される。命令は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成されてもよい。また、ソフトウェアは、2つの個別の部分に分割されてもよい。第1の部分は説明される処理を実行し、第2の部分は第1の部分とユーザとの間のユーザインタフェースを管理する。ソフトウェアは、例えば以下に説明する記憶装置等のコンピュータ可読媒体に格納されてもよい。ソフトウェアは、コンピュータ可読媒体からコンピュータにロードされ、コンピュータにより実行される。そのようなソフトウェア又はコンピュータプログラムを記録したコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータにおいてコンピュータプログラム製品を使用することにより、処理700を実現する有利な装置を起動するのが好ましい。
【0031】
コンピュータシステム100は、コンピュータモジュール101と、キーボード102及びマウス103等の入力装置と、プリンタ115、表示装置114及びスピーカ117を含む出力装置とから形成される。変調器(Modulator)‐復調器(Demodulator)(モデム)トランシーバ装置116は、例えば電話回線121又は他の機能媒体を介して接続可能な通信ネットワーク120と通信するために、コンピュータモジュール101により使用される。モデム116は、インターネット、及びローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)等の他のネットワークシステムにアクセスするために使用され、また、いくつかの実現例において、コンピュータモジュール101に内蔵されてもよい。
【0032】
コンピュータモジュール101は、通常、少なくとも1つのプロセッサユニット105と、例えば半導体ランダムアクセスメモリ(RAM)及び読み出し専用メモリ(ROM)から形成されるメモリユニット106とを含む。モジュール101は、ビデオ表示装置114及びスピーカ117に結合するオーディオビデオインタフェース107、キーボード102及びマウス103及びオプションとしてのジョイスティック(不図示)に対する入出力(I/O)インタフェース113、並びにモデム116及びプリンタ115に対するインタフェース108を含む多くのI/Oインタフェースを更に含む。いくつかの実現例において、モデム116は、コンピュータモジュール101内、例えばインタフェース108内に内蔵されてもよい。記憶装置109が提供され、通常、それはハードディスクドライブ110及びフロッピー(登録商標)ディスク(登録商標)ドライブ111を含む。更に、磁気テープ装置(不図示)が使用されてもよい。CD-ROMドライブ112は、通常、不揮発性のデータソースとして提供される。コンピュータモジュール101の構成要素105〜113は、通常、当業者に周知のコンピュータシステム100の従来の動作モードを結果として与える方法で、相互接続バス104を介して通信する。上述の構成が実現されるコンピュータの例として、IBMのPC及びそれに互換性のあるもの、Sun SPARCstation又はそれから進化した同様のコンピュータシステムがある。
【0033】
通常、アプリケーションプログラムは、ハードディスクドライブ110に常駐し、実行の際にはプロセッサ105により読み出され且つ制御される。ネットワーク120から取り出されるプログラム及び任意のデータの中間記憶装置は、ハードディスクドライブ110と共に動作する可能性のある半導体メモリ106を使用して達成されてもよい。いくつかの例において、アプリケーションプログラムは、CD-ROM又はフロップディスク上で符号化されてユーザに供給され、対応するドライブ112又は111を介して読み出されてもよい。あるいは、アプリケーションプログラムは、ユーザによりモデム装置116を介してネットワーク120から読み出されてもよい。更に、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム100にロードできる。本明細書において使用される用語「コンピュータ可読媒体」は、実行及び/又は処理のために、命令及び/又はデータをコンピュータシステム100に提供することに関係する任意の記憶装置又は伝送媒体を示す。記憶媒体の例としては、装置がコンピュータモジュール101の内部装置であるか又は外部装置であるかに関わらず、フロッピー(登録商標)ディスク(登録商標)、磁気テープ、CD‐ROM、ハードディスクドライブ、ROM又は集積回路、光磁気ディスク、あるいはPCMCIAカード等のコンピュータ可読カード等がある。伝送媒体の例としては、別のコンピュータ又はネットワーク化装置に対するネットワーク接続、並びに電子メール送信及びウェブサイト等に記録された情報を含むインターネット又はイントラネットに加え、無線伝送チャネル又は赤外線伝送チャネルがある。
【0034】
あるいは、処理700は、図7〜図17の処理の機能又はサブ機能を実行する1つ以上の集積回路等の専用ハードウェアにおいて実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ、又は1つ以上のマイクロプロセッサ及び連想メモリを含んでもよい。
【0035】
処理700に対する入力は、グリッドのドットのドット座標(dot coordinates)であり、それらはメモリ106に格納されてもよい。処理700は、ステップ703で開始する。ステップ703において、プロセッサ105は、グリッドのグリッド方位を表す角度を判定する。グリッド方位(grid orientation)は、メモリ106に格納されたグリッドのドットのドット座標から判定される。ステップ703で実行されるようなグリッドに対するグリッド方位を判定する処理900については、図9を参照して以下に詳細に説明する。判定されたグリッド方位は、メモリ106に格納されてもよい。グリッド方位が判定されると、次のステップ705において、プロセッサ105は、グリッドの全てのドット座標に対して回転を適用する。その回転により、ドット座標がグリッド方位の角度分だけ回転され、その結果、回転されたドット座標は、x軸及びy軸に対して位置合わせされたグリッド軸を有する。回転されたドット座標を仮定すると、次のステップ707において、プロセッサ105はグリッドのグリッド間隔を判定し、そのグリッド間隔はメモリ106に格納されてもよい。ステップ707で実行されるようなグリッドのグリッド間隔を検出する処理1000については、図10を参照して以下に詳細に説明する。次のステップ709において、プロセッサ105は、グリッド間隔及び回転されたドット座標を使用して、グリッド平行移動を判定する。グリッド平行移動は、メモリ106に格納されてもよい。グリッド平行移動を判定する処理1300については、図13を参照して以下に詳細に説明する。処理は、ステップ709の後に終了する。
【0036】
図8は、変調グリッド(modulated grid)のグリッド方位(grid orientation)、グリッド間隔(grid spacing)、グリッド平行移動(grid translation)及び変調量子(modulation quantum)を判定する処理800を示す。処理800に対する入力は、変調グリッド上のドットの座標であり、それらはメモリ106に格納されてもよい。次のステップ803において、プロセッサ105は、処理700を実行することにより、グリッド方位、グリッド間隔及びグリッド平行移動を判定する。その後、次のステップ805において、プロセッサ105は変調量子を判定する。ステップ805で実行されるような変調量子を判定する処理1500については、図15を参照して以下に詳細に説明する。判定された変調量子は、メモリ106に格納されてもよい。
【0037】
(グリッド方位の判定)
次に、処理700のステップ703で実行されるようなグリッド方位を判定する処理900について、図9を参照して更に詳細に説明する。処理900は、グリッドのドットのグリッド方位を判定する。
【0038】
処理900は、最初のステップ902で開始する。ステップ902において、プロセッサ105は、グリッドの各ドットに対して、そのドットに最近接する他のドットを判定する。ステップ902は、グリッドの全てのドットに対して実行される。特定のドットに対する最近接ドットを判定する周知の方法が、ステップ902において使用されてもよい。例えば、特定のドットに対する最近接ドットを判定する1つの処理においては、順番にドットを選択し、選択したドットから他の各ドットまでの距離を判定し、判定した距離が最短であるドットを選択する。特定のドットに対する最近接ドットを判定する好ましい処理は、グリッド空間(grid space)全体が多くの「バケット」(buckets)に分割される高速処理である。各ドットは、その特定のドットの場所を範囲に含むバケットに割り当てられる。特定のドットに対する最近接ドットを判定するために、プロセッサ105は、その特定のドットを範囲に含むバケットから開始し、その特定のドットの周囲にある各バケット中の全てのドットを調査し、特定のドットに最近接するドットを選択する。周囲のバケットの中にドットが存在しない場合、プロセッサ105は、半径方向外側の次に近接するバケットのセットに継続し、処理は同様の方法で継続する。特定のドットに対する最近接ドットを判定するこの好ましい処理は、最近接ドットであると考えられる候補ドットの数を大幅に減少する。
【0039】
次のステップ903において、プロセッサ105は、各ドットからステップ902で発見された最近接ドットへの変位ベクトルを判定する。従って、グリッドの全てのドットは、そのドットに対して判定された対応する変位ベクトルを有する。
【0040】
次のステップ904において、プロセッサ105は、ステップ903で判定された各変位ベクトルに対して、変位ベクトルの角度を判定する。ベクトルの角度θは、以下のように判定されてもよい。
【0041】
θ= atan2(y, x)
式中、x及びyは、ベクトルの水平成分及び垂直成分である。
【0042】
処理900は、次のステップ905に続く。ステップ905において、プロセッサ105は、以下の式で定義される変数A及びBの値を判定する。
【0043】
【数1】

【0044】
式中、θiは、ステップ904で判定された変位ベクトルの角度である。和は、全ての変位ベクトルにわたり取得される。
【0045】
処理900の次のステップ906は、以下の式を使用して、グリッド方位を表すグリッド方位の角度φを判定する。
【0046】
φ=atan2(B,A)
処理900は、ステップ906の後に終了する。
【0047】
(グリッド間隔の判定)
次に、処理700のステップ707で実行されるようなグリッドのグリッド間隔を判定する処理1000について、図10を参照して詳細に説明する。処理1000は、最初のステップ1002で開始する。ステップ1002において、プロセッサ105は、入力としてグリッドのドットを取得する。グリッドの各ドット(x, y)に対して、水平方向の同一列においてドット(x, y)の右側の最隣接ドット(nearest neighbouring dot)が判定され、メモリ106に格納される。以下の解法(heuristic)が、ステップ1002を実行するために使用されてもよい。(x, y)ではない全てのドット(a, b)が考慮され、(a, b)がドット(x, y)の右側の90度の扇形の外側にある場合には(a, b)は拒否される。形式上、以下の場合、ドット(a, b)は拒否される。
【0048】
【数2】

【0049】
残されたドットに対して、以下の関数を最小にするドットが判定される。
【0050】
【数3】

【0051】
このドットは、(x, y)の右側のドットであると考えられ、メモリ106内に構成される右隣接ドット(right neighbour dots)のリストに格納される。
【0052】
次のステップ1003において、プロセッサ105は、ステップ1002でメモリ106に格納された右隣接ドット(a, b)の各々を取得して、以下のように(x, y)からの差分ベクトル(difference vector)(dx, dy)を判定する。
【0053】
(dx, dy) = (a, b) - (x, y)
式中、(dx, dy)は、メモリ106に構成される差分ベクトルのリストに格納される。例として、図11は、差分ベクトルのリストのグラフ1100を示す。グラフ1100は、y軸1101及びx軸1102を含む。グラフ1100の円(例えば、1103)は、差分ベクトルの端点を表す。グリッドにおける雑音及び歪により、端点(terminal point)1104のような範囲外にある不適切な端点がいくつか存在する。
【0054】
処理1000は、次のステップ1004に続く。ステップ1004において、プロセッサ105は、ステップ1003で判定された各差分ベクトルのx座標を取得して、x座標の値の周波数ヒストグラム(frequency histogram)を生成する。図12はヒストグラム1200の一例を示す。軸1201は周波数軸(frequency axis)であり、軸1202はx座標軸である。周波数ヒストグラム1200は、周波数バー(frequency bar)(例えば、1203)を更に含む。x座標軸1202における各量子のサイズは、ドット座標(dot coordinates)の粒度(granularity)に関連付けられる。量子(quantum)は、0.5のグリッド座標軸系(grid co-ordinate axis system)になるように選択されるのが好ましい。しかし、任意の適切な値が量子に使用されてもよい。
【0055】
処理1000は、次のステップ1005に続く。ステップ1005において、プロセッサ105は、ヒストグラム1200を使用してグリッド間隔を判定する。尚、右隣接ドットの殆どは、グリッドの間隔の辺りにクラスタ化(clustered)される。従って、グリッド間隔は、最も多く存在するx座標のx値を取得することにより判定され、図12の例において、それは周波数バー1204で示される。
【0056】
(グリッド平行移動の判定)
次に、処理700のステップ709で実行されるようなグリッドのグリッド平行移動を判定する処理1300について、図13を参照して更に詳細に説明する。メモリ106に格納されたドット座標のリスト及びグリッド間隔は、処理1300に対する入力として提供される。処理1300は、グリッドの全てのドットに対するグリッド平行移動を判定する。すなわち、処理1300は、全てのドットに対して、ドットのグリッド点の場所を推定する。
【0057】
処理は、ステップ1303で開始する。ステップ1303において、プロセッサ105は、グリッドに対してメモリ106に格納されたドットのリストからまだ処理されていないドットを選択する。この選択されたドットを「現在のドット」(current dot)と呼ぶ。プロセッサ105は、現在のドットのローカルウィンドウ内に存在する全てのドットを判定し、そのドットをメモリ106内に構成されるローカルウィンドウドットのリストに配置する。例えば、図14は、雑音のある環境において、グリッドのような構成1400で配置されるドットを示す。グリッド1400は現在のドット1402を含み、現在のドット1402のグリッド点の場所1403である。現在のドット1402のローカルウィンドウ1401が更に示される。ローカルウィンドウ1401は、図14の例において、辺の長さ5を有する。ローカルウィンドウ1401のサイズは、グリッド環境に存在する雑音の種類及び大きさに依存する。ローカルウィンドウの好ましいサイズは30である。
【0058】
次のステップ1305において、プロセッサ105は、メモリ106からローカルウィンドウドット(例えば、1404)のリストを取得し、以下のように、グリッド間隔が2πとなるように各ドット(xk, yk)の座標を正規化する。
【0059】
【数4】

【0060】
処理1300は、次のステップ1307に続く。ステップ1307において、プロセッサ105は、メモリ106に格納された正規化(normalised)されたローカルウィンドウドットのリストを取得し、2つのフェーザ(phasors)xOffset及びyOffsetを判定する。
【0061】
【数5】

【0062】
ステップ1307における加算は、正規化されたローカルウィンドウドットのリスト全体に対して行なわれる。xOffset及びyOffsetの位相は、それぞれ、現在のドットがグリッド点からx方向及びy方向に位相がずれている量を推定する。
【0063】
次のステップ1309において、プロセッサ105は、現在のドットのグリッド点の場所を判定する。現在のドットを(xc, yc)で示す。現在のドットに対するグリッド点(xGrid, yGrid)は以下の式で与えられる。
【0064】
【数6】

【0065】
処理1300は、次のステップ1311に続く。ステップ1311において、自身のグリッド点をまだ判定していないドットが存在するとプロセッサ105が判定した場合、処理1300はステップ1303に戻る。存在すると判定しなかった場合、処理1300は終了する。
【0066】
(変調量子の判定)
次に、ステップ805で実行されるような変調量子を判定する処理1500について、図15を参照して詳細に説明する。処理1500は、最初のステップ1502で開始する。ステップ1502において、プロセッサ105は、入力としてグリッドのドットを取得する。ステップ1002について上述したように、グリッドの各ドット(x, y)に対して、水平方向の同一列においてドット(x, y)の右側の最隣接ドットが判定され、メモリ106に格納される。次のステップ1503において、プロセッサ105は、ステップ1003について上述したように、ステップ1002でメモリ106に格納された右隣接ドット(a, b)の各々を取得し、(x, y)からの差分ベクトル(dx, dy)を判定する。
【0067】
次のステップ1504において、プロセッサ105は、ステップ1503で判定された各差分ベクトルのy値の周波数ヒストグラムを判定する。例として、図16はヒストグラム1600を示す。ヒストグラムは、周波数軸1601、y座標軸1602及び複数の周波数バー(例えば、1603)を含む。y座標軸における各量子のサイズは、ドット座標の粒度に関連付けられる。繰り返しになるが、量子は、0.5のグリッド座標軸系になるように選択されるのが好ましい。しかし、任意の適切な値が量子に使用されてもよい。
【0068】
次のステップ1505において、プロセッサ105は、ヒストグラム1600を使用して、グリッドの変調量子(modulation quantum)を判定する。ステップ1505において、プロセッサ105は、ゼロの近くでヒストグラム1600のピークを判定する。ピークは、「ピークウィンドウ半径」(peak-window-radius)と呼ばれる特定の半径内の隣接するy値の全ての周波数バーより大きい関連する周波数バーを有するy値になるように規定される。ピークウィンドウ半径は、グリッド間隔に比例する。説明される処理において、ピークウィンドウ半径は、グリッド間隔の1/10であるのが好ましい。そのようなピークの例は、図16に示されるような1603である。ここで、ピークウィンドウ半径は1である。いくつかのピーク(例えば、5つのピーク)が原点1601の周囲で判定されると、変調量子は、隣接するピーク間の距離の平均を取得することにより判定される。処理1500は、ステップ1505の後に終了する。
【0069】
(変調量子を判定する別の方法)
方法800のステップ805のような変調量子を判定する別の処理1700を図17に示す。処理1700は、ステップ1702で開始する。ステップ1702において、プロセッサ105は、メモリ106内に構成されるドットのリスト中の全てのドットに対して、最近接グリッド点を推定する。すなわち、プロセッサ105は、グリッドのドットに対するグリッド平行移動を判定する。上述したように、最近接グリッド点は、ステップ1702において、図13の処理1300を使用して各ドットに対して判定される。
【0070】
次のステップ1703において、プロセッサ105は、ステップ1702で判定されたドットの対応するグリッド点に対する各ドットからのオフセットベクトルを判定する。次のステップ1704において、プロセッサ105は、上述のように、ステップ1703で判定されたオフセットベクトルのy成分のヒストグラムを判定する。次のステップ1705において、プロセッサ105は、ステップ1704で判定されたヒストグラムの3つの最大ピークを判定する。それらピークのうち最小のピークと2番目に小さいピークとの距離及び2番目に小さいピークと最大ピークとの距離は、グリッドに対する変調量子にほぼ等しい。ステップ1706において、プロセッサ105はそれら2つの距離の平均を検出し、それを変調量子として使用する。
【0071】
(別の構成)
図9のステップ902において、処理900は、各ドットに対する最近接ドットを判定する。別の構成においては、最近接ドットが、グリッドのドットのサブセットに対してのみ判定されてもよい。この例において、最近接ドットが判定されるドットのサブセットは、例えばドットをランダムに選択したものでもよい。あるいは、最近接ドットは、グリッドの上部25%内に存在するドットに対してのみ判定されてもよく、又はグリッドの所定の帯域に存在するドットに対してのみ判定されてもよい。この例において、処理900の後続するステップ903及び904では、サブセット中のドットのみが考慮される。
【0072】
更に別の構成において、1つの最近接ドットのみを使用するのではなく、N個の最近接ドットを使用して変位ベクトルを判定してもよい。例えば、Nは2又は4に等しくてもよい。この構成により、複雑性及び速度と引き換えに、雑音の多いグリッドにおいてグリッド方位をより正確に検出できる場合がある。
【0073】
図9のステップ906において、処理900は、先のステップ905で判定された変位ベクトルの角度からグリッド方位の角度φを判定する。ステップ906において多くの別の方法が使用されてもよいことは、当業者には理解されるだろう。例えば、変位ベクトルの角度のヒストグラムが判定されてもよい。この例において、多数の変位ベクトルの角度を含むヒストグラムビンは、グリッド方位の角度φに対応する。
【0074】
図10のステップ1003において、差分ベクトルのセットが判定され、全ての差分ベクトルが後続するステップ1004及び1005において使用される。別の構成において、差分ベクトルのランダムなサブセットが、ステップ1004及び1005で使用されてもよく、グリッド間隔に対する値は、そのランダムなサブセットに基づいて判定される。この例において、ステップ1004及び1005の処理は、N回(例えば、30回)繰り返され、繰り返す度に差分ベクトルの異なるランダムなサブセットが使用される。これにより、N+1個の異なるグリッド間隔の値が得られる。実際のグリッド間隔は、それらN+1個の値のモードになるように判定されてもよい。この別の構成により、複雑性及び速度と引き換えに、雑音の多いグリッドにおいてグリッド間隔をより正確に得られる場合がある。
【0075】
同様に、差分ベクトルのランダムなサブセットが、複雑性及び速度と引き換えに変調量子をより正確に検出するために、処理1500のステップ1503及び1504において使用されてもよい。
【0076】
図10のステップ1004及び1005において、グリッド間隔は、ステップ1003で発見された差分ベクトルのx座標から判定される。グリッド間隔を判定するために、多くの別の処理が使用されてもよいことは、当業者には理解されるだろう。例えば、グリッド間隔は、ステップ1003で判定された差分ベクトルのx座標の平均として判定されてもよい。
【0077】
説明された構成は、コンピュータ産業及びデータ処理産業に適用可能であることは、上述から明らかである。
【0078】
上述において、本発明のいくつかの実施形態のみを説明したが、本発明の趣旨の範囲から逸脱せずに変形及び/又は変更が可能である。それら実施形態は単なる例示であり、限定するものではない。
【図面の簡単な説明】
【0079】
【図1】説明された構成が実現される汎用コンピュータを概略的に示すブロック図である。
【図2】位相変調されたドットの配列を示す図である。
【図3】標準グリッドに従って配置されたドットの別の配列を示す図である。
【図4】位相変調されたドットの更に別の配列を示す図である。
【図5】図4の標準正方形グリッドの交点に対するドット変調位置を示す図である。
【図6】デジタルデータ記憶装置の数字の順序付けを示す図である。
【図7】ドットのグリッドのグリッド方位、グリッド間隔及びグリッド平行移動を判定する処理を示すフローチャートである。
【図8】ドットの変調グリッドにおけるグリッド方位、グリッド間隔、グリッド平行移動及び変調量子を判定する処理を示すフローチャートである。
【図9】図7の処理において実行されるグリッド方位を判定する処理を示すフローチャートである。
【図10】図7の処理において実行されるグリッドのグリッド間隔を判定する処理を示すフローチャートである。
【図11】右隣接差分ベクトルのリストを示すグラフである。
【図12】x値を示す周波数ヒストグラムである。
【図13】図7の処理において実行されるグリッドのグリッド平行移動を判定する処理を示すフローチャートである。
【図14】グリッドのような構成で配置されるドットと、グリッドのグリッド平行移動を推定する際に使用されるローカルウィンドウとを示す図である。
【図15】変調量子を判定する処理を示すフローチャートである。
【図16】y値を示す周波数ヒストグラムである。
【図17】変調量子を判定する別の処理を示すフローチャートである。

【特許請求の範囲】
【請求項1】
ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定する処理方法であって、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するステップと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するステップと、
前記判定したベクトルを使用して前記グリッド方位を判定するステップと
を備えることを特徴とする処理方法。
【請求項2】
前記ベクトルを使用してドットの前記グリッドに対する間隔の値を判定するステップを更に備えることを特徴とする請求項1に記載の処理方法。
【請求項3】
1つ以上の隣接する境界領域に基づいて、前記変調グリッドから前記ドットの少なくとも1つに対する前記仮想グリッドへの平行移動を判定するステップを更に備えることを特徴とする請求項1に記載の処理方法。
【請求項4】
前記ベクトルのうち少なくとも1つは変位ベクトルであることを特徴とする請求項1に記載の処理方法。
【請求項5】
前記ベクトルのうち少なくとも1つは差分ベクトルであることを特徴とする請求項1に記載の処理方法。
【請求項6】
ドットの前記グリッドは位相変調されることを特徴とする請求項1に記載の処理方法。
【請求項7】
符号化データに対するグリッドを判定する処理方法であって、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するステップと、
前記統計平均に基づいて、前記データの角度方向を判定するステップと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するステップと
を備えることを特徴とする処理方法。
【請求項8】
前記グリッドにおける隣接データ点の間隔を判定するステップを更に備えることを特徴とする請求項6に記載の処理方法。
【請求項9】
前記グリッドに関して、各データ点に対するオフセットを判定するステップを更に備えることを特徴とする請求項6に記載の処理方法。
【請求項10】
ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定する処理方法であって、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するステップと、
前記変位ベクトルを使用して前記グリッド方位を判定するステップと、
前記グリッド間隔を判定するステップと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するステップと
を備えることを特徴とする処理方法。
【請求項11】
符号化データに対するグリッドを判定する処理方法であって、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するステップと、
前記グリッドの隣接データ点の間隔を判定するステップと、
前記グリッドに関して、各データ点に対するオフセットを判定するステップと
を備えることを特徴とする処理方法。
【請求項12】
ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定する装置であって、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するベクトル判定手段と、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去する変調除去手段と、
前記判定したベクトルを使用して前記グリッド方位を判定するグリッド方位判定手段と
を備えることを特徴とする装置。
【請求項13】
符号化データに対するグリッドを判定する装置であって、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定する統計平均判定手段と、
前記統計平均に基づいて、前記データの角度方向を判定する角度方向判定手段と、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するグリッド判定手段と
を備えることを特徴とする装置。
【請求項14】
ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定する装置であって、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定する変位ベクトル判定手段と、
前記変位ベクトルを使用して前記グリッド方位を判定するグリッド方位判定手段と、
前記グリッド間隔を判定するグリッド間隔判定手段と、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するグリッド平行移動判定手段と
を備えることを特徴とする装置。
【請求項15】
符号化データに対するグリッドを判定する装置であって、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定する角度方向判定手段と、
前記グリッドの隣接データ点の間隔を判定する間隔判定手段と、
前記グリッドに関して、各データ点に対するオフセットを判定するオフセット判定手段とを具備する装置。
【請求項16】
ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定するコンピュータプログラムであって、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するコードと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するコードと、
前記判定したベクトルを使用して前記グリッド方位を判定するコードと
を備えることを特徴とするコンピュータプログラム。
【請求項17】
符号化データに対するグリッドを判定するコンピュータプログラムであって、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するコードと、
前記統計平均に基づいて、前記データの角度方向を判定するコードと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するコードと
を備えることを特徴とするコンピュータプログラム。
【請求項18】
ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定するコンピュータプログラムであって、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するコードと、
前記変位ベクトルを使用して前記グリッド方位を判定するコードと、
前記グリッド間隔を判定するコードと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するコードと
を備えることを特徴とするコンピュータプログラム。
【請求項19】
符号化データに対するグリッドを判定するコンピュータプログラムであって、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するコードと、
前記グリッドの隣接データ点の間隔を判定するコードと、
前記グリッドに関して、各データ点に対するオフセットを判定するコードと
を備えることを特徴とするコンピュータプログラム。
【請求項20】
ドットの変調グリッドにおいて符号化されたデータに対して1つ以上のパラメータを判定するコンピュータプログラムを記録したコンピュータ可読媒体であって、
前記ドットは仮想グリッドに関して変調され、前記グリッドの少なくとも1つのドットから最近接ドットへの1つ以上のベクトルを判定するコンピュータプログラムコードと、
前記仮想グリッドを判定するために、前記ベクトルを使用して前記変調を除去するコンピュータプログラムコードと、
前記判定したベクトルを使用して前記グリッド方位を判定するコンピュータプログラムコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項21】
符号化データに対するグリッドを判定するコンピュータプログラムを記録したコンピュータ可読媒体であって、
前記データの少なくとも1つの最隣接データ点に関して、前記データのデータ点の変位の方向の統計平均を判定するコンピュータプログラムコードと、
前記統計平均に基づいて、前記データの角度方向を判定するコンピュータプログラムコードと、
前記角度方向に基づいて、前記データに対する前記グリッドを判定するコンピュータプログラムコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項22】
ドットの変調グリッドにおいて符号化されたデータに対してグリッド方位、グリッド間隔及びグリッド平行移動を判定するコンピュータプログラムを記録したコンピュータ可読媒体であって、
少なくとも1つのドットの各々から最近接ドットへの変位ベクトルを判定するコンピュータプログラムコードと、
前記変位ベクトルを使用して前記グリッド方位を判定するコンピュータプログラムコードと、
前記グリッド間隔を判定するコンピュータプログラムコードと、
近接する複数のドットのうち1つの隣接ドットを使用して、少なくとも1つのドットの前記グリッド平行移動を判定するコンピュータプログラムコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項23】
符号化データに対するグリッドを判定するコンピュータプログラムを記録したコンピュータ可読媒体であって、
データ点の変位の方向の統計平均及び最隣接データ点に基づいて判定される前記データの角度方向を判定するコンピュータプログラムコードと、
前記グリッドの隣接データ点の間隔を判定するコンピュータプログラムコードと、
前記グリッドに関して、各データ点に対するオフセットを判定するコンピュータプログラムコードと
を備えることを特徴とするコンピュータ可読媒体。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2007−151082(P2007−151082A)
【公開日】平成19年6月14日(2007.6.14)
【国際特許分類】
【外国語出願】
【出願番号】特願2006−248618(P2006−248618)
【出願日】平成18年9月13日(2006.9.13)
【特許番号】特許第3919808号(P3919808)
【特許公報発行日】平成19年5月30日(2007.5.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】