JP2009176251A - 画像処理装置及びプログラム - Google Patents
画像処理装置及びプログラム Download PDFInfo
- Publication number
- JP2009176251A JP2009176251A JP2008016823A JP2008016823A JP2009176251A JP 2009176251 A JP2009176251 A JP 2009176251A JP 2008016823 A JP2008016823 A JP 2008016823A JP 2008016823 A JP2008016823 A JP 2008016823A JP 2009176251 A JP2009176251 A JP 2009176251A
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- code
- image
- medium
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御する。
【解決手段】各種状況に応じて復号レベルを設定する復号レベル設定部10と、画像を読み取る画像読取部21と、画像からドットを検出してドット配列を生成するドット配列生成部22と、ドット配列からブロックを検出して符号配列を生成するブロック検出部23と、符号配列から同期符号を検出する同期符号検出部24と、同期符号に基づいて識別符号を検出する識別符号検出部30と、設定された復号レベルで識別符号を復号して識別情報を取得する識別符号復号部32と、同期符号に基づいて座標符号を検出するX座標符号検出部40及びY座標符号検出部45と、座標符号を復号して座標情報を取得するX座標符号復号部42及びY座標符号復号部47と、識別情報及び座標情報を出力する情報出力部50とを備える。
【選択図】図13
【解決手段】各種状況に応じて復号レベルを設定する復号レベル設定部10と、画像を読み取る画像読取部21と、画像からドットを検出してドット配列を生成するドット配列生成部22と、ドット配列からブロックを検出して符号配列を生成するブロック検出部23と、符号配列から同期符号を検出する同期符号検出部24と、同期符号に基づいて識別符号を検出する識別符号検出部30と、設定された復号レベルで識別符号を復号して識別情報を取得する識別符号復号部32と、同期符号に基づいて座標符号を検出するX座標符号検出部40及びY座標符号検出部45と、座標符号を復号して座標情報を取得するX座標符号復号部42及びY座標符号復号部47と、識別情報及び座標情報を出力する情報出力部50とを備える。
【選択図】図13
Description
本発明は、画像処理装置、プログラムに関する。
表面上の複数の位置を符号化する位置コードを提供する方法は知られている(例えば、特許文献1参照)。この特許文献1では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも3つの循環数字列を備えると共に、隣り合うコードウィンドウの1つの数字列と重なり合う1つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている(例えば、特許文献2参照)。この特許文献2では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている(例えば、特許文献3参照)。この特許文献3では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている(例えば、特許文献4参照)。この特許文献4において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている(例えば、特許文献5参照)。この特許文献5において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
ここで、一般に、所定の情報を誤り訂正符号化して得られたビット列に対応するもののそのビット列を特定できない誤りパターン画像が検出された場合に、その検出状況を考慮することなく誤り訂正復号を行うと、誤った復号結果を得る確率は変わることがなかった。
本発明の目的は、ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御することにある。
本発明の目的は、ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御することにある。
請求項1に記載の発明は、媒体及び当該媒体に印刷された文書画像の少なくとも何れか一方の識別情報を誤り訂正符号化して得られた複数のビット列の各々に対応する複数のパターン画像を取得する取得手段と、前記複数のパターン画像のうちの対応するビット列を特定できないパターン画像である誤りパターン画像を検出する検出手段と、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列を特定する特定手段と、前記特定手段により特定されたビット列を用いて誤り訂正復号を行うことにより前記識別情報を取得できる可能性があっても、前記誤りパターン画像の検出状況に応じて、当該誤り訂正復号を行うかどうかを決定する決定手段とを備えたことを特徴とする画像処理装置である。
請求項2に記載の発明は、前記決定手段は、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項1記載の画像処理装置である。
請求項3に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置である。
請求項4に記載の発明は、前記設定手段は、前記機器が前記媒体に筆記するための状態であるか前記媒体上の所定の位置を指示するための状態であるかを示す状態情報に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置である。
請求項5に記載の発明は、前記設定手段は、前記機器が接している前記媒体上の領域を特定する情報と、前記媒体上の各領域が筆記用の領域であるか指示用の領域であるかを示す情報との照合結果に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置である。
請求項6に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置である。
請求項7に記載の発明は、前記特定手段は、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列として、前記機器が前記媒体に接してから現在までに読み取った対応するパターン画像に基づいて決定されるビット列を採用し、前記設定手段は、前記機器が前記媒体に接して以降に前記複数のパターン画像を読み取るごとに、前記誤りパターン画像の許容数に対して、当該許容数を増加させる処理及び当該許容数を変えない処理の少なくとも何れか一方を施すことを特徴とする請求項6記載の画像処理装置である。
請求項8に記載の発明は、コンピュータに、媒体及び当該媒体に印刷された文書画像の少なくとも何れか一方の識別情報を誤り訂正符号化して得られた複数のビット列の各々に対応する複数のパターン画像を取得する機能と、前記複数のパターン画像のうちの対応するビット列を特定できないパターン画像である誤りパターン画像を検出する機能と、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列を特定する機能と、特定されたビット列を用いて誤り訂正復号を行うことにより前記識別情報を取得できる可能性があっても、前記誤りパターン画像の検出状況に応じて、当該誤り訂正復号を行うかどうかを決定する機能とを実現させるためのプログラムである。
請求項9に記載の発明は、前記決定する機能では、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項8記載のプログラムである。
請求項10に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラムである。
請求項11に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラムである。
請求項2に記載の発明は、前記決定手段は、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項1記載の画像処理装置である。
請求項3に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置である。
請求項4に記載の発明は、前記設定手段は、前記機器が前記媒体に筆記するための状態であるか前記媒体上の所定の位置を指示するための状態であるかを示す状態情報に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置である。
請求項5に記載の発明は、前記設定手段は、前記機器が接している前記媒体上の領域を特定する情報と、前記媒体上の各領域が筆記用の領域であるか指示用の領域であるかを示す情報との照合結果に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置である。
請求項6に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置である。
請求項7に記載の発明は、前記特定手段は、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列として、前記機器が前記媒体に接してから現在までに読み取った対応するパターン画像に基づいて決定されるビット列を採用し、前記設定手段は、前記機器が前記媒体に接して以降に前記複数のパターン画像を読み取るごとに、前記誤りパターン画像の許容数に対して、当該許容数を増加させる処理及び当該許容数を変えない処理の少なくとも何れか一方を施すことを特徴とする請求項6記載の画像処理装置である。
請求項8に記載の発明は、コンピュータに、媒体及び当該媒体に印刷された文書画像の少なくとも何れか一方の識別情報を誤り訂正符号化して得られた複数のビット列の各々に対応する複数のパターン画像を取得する機能と、前記複数のパターン画像のうちの対応するビット列を特定できないパターン画像である誤りパターン画像を検出する機能と、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列を特定する機能と、特定されたビット列を用いて誤り訂正復号を行うことにより前記識別情報を取得できる可能性があっても、前記誤りパターン画像の検出状況に応じて、当該誤り訂正復号を行うかどうかを決定する機能とを実現させるためのプログラムである。
請求項9に記載の発明は、前記決定する機能では、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項8記載のプログラムである。
請求項10に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラムである。
請求項11に記載の発明は、前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラムである。
請求項1の発明は、ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項2の発明は、誤りパターン画像の検出数と許容数との比較結果に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項3の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離に応じたものになるという効果を有する。
請求項4の発明は、本構成を有していない場合に比較して、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離を簡単に判断することができるという効果を有する。
請求項5の発明は、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離を、その機器の構造に変更を加えることなく判断することができるという効果を有する。
請求項6の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接して以降にパターン画像を読み取った回数に応じたものになるという効果を有する。
請求項7の発明は、パターン画像の読取機器が媒体に接してから現在までに読み取ったパターン画像に基づいてビット列を決定する際に、本構成を有していない場合に比較して、誤りの少ない復号結果を早い段階で得ることができるという効果を有する。
請求項8の発明は、ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項9の発明は、誤りパターン画像の検出数と許容数との比較結果に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項10の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離に応じたものになるという効果を有する。
請求項11の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接して以降にパターン画像を読み取った回数に応じたものになるという効果を有する。
請求項2の発明は、誤りパターン画像の検出数と許容数との比較結果に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項3の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離に応じたものになるという効果を有する。
請求項4の発明は、本構成を有していない場合に比較して、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離を簡単に判断することができるという効果を有する。
請求項5の発明は、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離を、その機器の構造に変更を加えることなく判断することができるという効果を有する。
請求項6の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接して以降にパターン画像を読み取った回数に応じたものになるという効果を有する。
請求項7の発明は、パターン画像の読取機器が媒体に接してから現在までに読み取ったパターン画像に基づいてビット列を決定する際に、本構成を有していない場合に比較して、誤りの少ない復号結果を早い段階で得ることができるという効果を有する。
請求項8の発明は、ビット列を特定できない誤りパターン画像の検出状況に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項9の発明は、誤りパターン画像の検出数と許容数との比較結果に応じて、誤った復号結果を得る確率を制御することができるという効果を有する。
請求項10の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接してから離れるまでに移動する距離に応じたものになるという効果を有する。
請求項11の発明は、誤った復号結果を得る確率が、パターン画像の読取機器が媒体に接して以降にパターン画像を読み取った回数に応じたものになるという効果を有する。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
まず、本実施の形態で利用する符号化方式について説明する。
本実施の形態における符号化方式では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するための情報パターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
まず、本実施の形態で利用する符号化方式について説明する。
本実施の形態における符号化方式では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するための情報パターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
図1に、mCn方式における符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3×横3の合計9個のドット配置可能な領域を設けた例を示しており、このうち、(a)は、9個のドット配置可能な領域に2ドットを配置する9C2方式における符号パターンの一例を、(b)は、9個のドット配置可能な領域に3ドットを配置する9C3方式における符号パターンの一例を示している。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3×横3の合計9個のドット配置可能な領域を設けた例を示しており、このうち、(a)は、9個のドット配置可能な領域に2ドットを配置する9C2方式における符号パターンの一例を、(b)は、9個のドット配置可能な領域に3ドットを配置する9C3方式における符号パターンの一例を示している。
但し、図1で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図1の最小の四角)とは一致していない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの一辺の長さは0.0423mmなので、1ドットの一辺の長さは、84.6μm(=0.0423mm×2)となる。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。但し、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
次いで、図2に、9C2方式における全符号パターンの例を示す。尚、ここでは、ドット間の空白は省略している。図示するように、9C2方式では、36(=9C2)通りの符号パターンが利用される。また、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
また、図3に、9C3方式における全符号パターンの例を示す。尚、ここでも、ドット間の空白は省略している。図示するように、9C3方式では、84(=9C3)通りの符号パターンが利用される。また、この場合も、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、この場合も、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
尚、ここでは、符号パターンが配置される領域(以下、「パターンブロック」という)の大きさを、3ドット×3ドットを配置可能な大きさとした。しかしながら、パターンブロックの大きさはこれに限るものではない。つまり、2ドット×2ドット、4ドット×4ドット等を配置可能な大きさであってもよい。
また、パターンブロックの形状として、正方形でなく、例えば3ドット×4ドットを配置する場合のように長方形を採用してもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形、つまり、正方形以外の矩形のことをいうものとする。
更に、任意に決めた数のドット配置可能な領域のうち、幾つの領域にドットを配置するかも、表現したい情報の量と許容できる画像濃度とを考慮して、適宜決めるとよい。
また、パターンブロックの形状として、正方形でなく、例えば3ドット×4ドットを配置する場合のように長方形を採用してもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形、つまり、正方形以外の矩形のことをいうものとする。
更に、任意に決めた数のドット配置可能な領域のうち、幾つの領域にドットを配置するかも、表現したい情報の量と許容できる画像濃度とを考慮して、適宜決めるとよい。
このように、本実施の形態では、m箇所からn箇所を選択することでmCn種類の符号パターンを用意している。そして、これらの符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
ここで、図2又は図3に示した符号パターンのうちの同期パターンについて説明する。尚、これらの符号パターンを利用する場合、パターンブロックの形状は正方形となるため、画像の回転を90度単位で認識する必要がある。従って、4種類の符号パターンで1組の同期パターンが構成される。
図4(a)は、9C2方式における同期パターンの例である。ここでは、36種類の符号パターンのうち、32種類の符号パターンを5ビットの情報を表現する情報パターンとし、残りの4種類の符号パターンで1組の同期パターンを構成するものとする。例えば、パターン値「32」の符号パターンを正立した同期パターン、パターン値「33」の符号パターンを右に90度回転した同期パターン、パターン値「34」の符号パターンを右に180度回転した同期パターン、パターン値「35」の符号パターンを右に270度回転した同期パターンとしている。但し、36種類の符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、16種類の符号パターンを4ビットの情報を表現する情報パターンとし、残りの20種類の符号パターンで5組の同期パターンを構成してもよい。
図4(a)は、9C2方式における同期パターンの例である。ここでは、36種類の符号パターンのうち、32種類の符号パターンを5ビットの情報を表現する情報パターンとし、残りの4種類の符号パターンで1組の同期パターンを構成するものとする。例えば、パターン値「32」の符号パターンを正立した同期パターン、パターン値「33」の符号パターンを右に90度回転した同期パターン、パターン値「34」の符号パターンを右に180度回転した同期パターン、パターン値「35」の符号パターンを右に270度回転した同期パターンとしている。但し、36種類の符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、16種類の符号パターンを4ビットの情報を表現する情報パターンとし、残りの20種類の符号パターンで5組の同期パターンを構成してもよい。
また、図4(b)は、9C3方式における同期パターンの例である。ここでは、84種類の符号パターンのうち、64種類の符号パターンを6ビットの情報を表現する情報パターンとし、残りの20種類の符号パターンで5組の同期パターンを構成するものとする。図は、この5組の同期パターンのうちの2組を示す。例えば、第1組においては、パターン値「64」の符号パターンを正立した同期パターン、パターン値「65」の符号パターンを右に90度回転した同期パターン、パターン値「66」の符号パターンを右に180度回転した同期パターン、パターン値「67」の符号パターンを右に270度回転した同期パターンとしている。また、第2組においては、パターン値「68」の符号パターンを正立した同期パターン、パターン値「69」の符号パターンを右に90度回転した同期パターン、パターン値「70」の符号パターンを右に180度回転した同期パターン、パターン値「71」の符号パターンを右に270度回転した同期パターンとしている。
尚、図示しないが、パターンブロックの形状が長方形である場合は、画像の回転の検出のために2種類の符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度又は270度回転していることが分かるからである。
次に、同期パターンと情報パターンを配置してなる情報表現の最小単位(以下、「符号ブロック」という)について説明する。
図5は、符号ブロックのレイアウトの一例を示したものである。
図中、(a)及び(b)のそれぞれの右側に、符号ブロックのレイアウトを示している。ここでは、レイアウトとして、パターンブロックを5個×5個の25個並べたものを採用している。この25個のパターンブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上の横方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上の縦方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
図5は、符号ブロックのレイアウトの一例を示したものである。
図中、(a)及び(b)のそれぞれの右側に、符号ブロックのレイアウトを示している。ここでは、レイアウトとして、パターンブロックを5個×5個の25個並べたものを採用している。この25個のパターンブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上の横方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上の縦方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
また、(a)の左側には、9C2方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、36種類の符号パターンを、例えば、4種類の同期パターンと32種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。一方、(b)の左側には、9C3方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、84種類の符号パターンを、例えば、20種類の同期パターンと64種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。
尚、本実施の形態において、座標情報は、紙面の縦方向及び横方向にM系列で表現される。ここで、M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施の形態では、1個の符号パターンを4ビットに対応付ける。即ち、2047ビットのビット列を4ビットごとに10進数で表し、図2又は図3の割り当てに従って符号パターンを決定し、紙面の横と縦に渡って印刷する。従って、復号の際は、3つの連続する符号パターンを特定し、符号パターンと座標との対応関係を格納したテーブルを参照することにより、ビット列上の位置が特定されることになる。
また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、RS符号化が適している。RS符号は多値の符号法であり、各パターンブロックに配置された符号パターンのパターン値をRS符号の多値に対応させるとよいからである。
尚、本実施の形態における符号パターンの利用形態としては、例えば、文書画像に重ねてその識別情報を紙面に印刷し、ペン状のスキャナで紙面上の部分画像を読み込み、そこから文書画像の識別情報を取得する、といったものが想定される。この場合、紙面上の汚れやスキャナの性能によって誤りが発生するが、この誤りはRS符号により訂正される。
尚、本実施の形態における符号パターンの利用形態としては、例えば、文書画像に重ねてその識別情報を紙面に印刷し、ペン状のスキャナで紙面上の部分画像を読み込み、そこから文書画像の識別情報を取得する、といったものが想定される。この場合、紙面上の汚れやスキャナの性能によって誤りが発生するが、この誤りはRS符号により訂正される。
ここで、RS符号による訂正及びそのような訂正を行う場合に表現可能な情報量について具体的に説明する。
本実施の形態では、上述したように、1パターンブロック内のドット数が一定である符号パターンを採用している。これにより、仮に1ドットが消失した場合や、1ドットが付加された場合は、パターンブロック内のドット数が変わる。従って、これらは誤りだと分かる誤りとなる。一方で、ドットの消失と付加が同時に起こった場合は、他の符号パターンであると誤認識してしまうので、誤りだと分からない誤りとなる。
例えば、識別情報を表す情報パターンを配置する16ブロックのうち、10ブロックを識別情報そのものを表す情報パターンを配置するブロックとし、6ブロックを訂正のためのブロックとする。この場合、誤りだと分かるブロックは6ブロックまで、誤りだと分からないブロックも3ブロックまで、訂正される。これを例えば9C2方式における32種類の情報パターンで実現したとすると、1ブロックで5ビットの情報が表現されるので、識別情報そのものは10ブロックで50ビット分表現される。また例えば9C3方式における64種類の情報パターンで実現したとすると、1ブロックで6ビットの情報が表現されるので、識別情報そのものは10ブロックで60ビット分表現される。
本実施の形態では、上述したように、1パターンブロック内のドット数が一定である符号パターンを採用している。これにより、仮に1ドットが消失した場合や、1ドットが付加された場合は、パターンブロック内のドット数が変わる。従って、これらは誤りだと分かる誤りとなる。一方で、ドットの消失と付加が同時に起こった場合は、他の符号パターンであると誤認識してしまうので、誤りだと分からない誤りとなる。
例えば、識別情報を表す情報パターンを配置する16ブロックのうち、10ブロックを識別情報そのものを表す情報パターンを配置するブロックとし、6ブロックを訂正のためのブロックとする。この場合、誤りだと分かるブロックは6ブロックまで、誤りだと分からないブロックも3ブロックまで、訂正される。これを例えば9C2方式における32種類の情報パターンで実現したとすると、1ブロックで5ビットの情報が表現されるので、識別情報そのものは10ブロックで50ビット分表現される。また例えば9C3方式における64種類の情報パターンで実現したとすると、1ブロックで6ビットの情報が表現されるので、識別情報そのものは10ブロックで60ビット分表現される。
次いで、上記符号ブロックを含む広範囲のレイアウトについて説明する。
図6は、そのようなレイアウトの一例を示した図である。このレイアウトでは、図5の符号ブロックが基本単位として紙面全体の縦方向及び横方向に周期的に配置されている。
ここで、同期パターンとしては、同じ符号パターンが各符号ブロックにおける左上のパターンブロックに配置されている。図では、同期パターンを「S」で表している。
また、X座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ行の各パターンブロックに配置されている。Y座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ列の各パターンブロックに配置されている。図では、X座標情報を表すパターンを「X01」、「X02」、…で表し、Y座標情報を表すパターンを「Y01」、「Y02」、…で表している。
更に、識別情報としては、符号パターンの同じ配列が、縦方向及び横方向に周期的に配置されている。図では、識別情報を表すパターンを「I01」、「I02」、…、「I16」で表している。
そして、このようなレイアウトを採用することにより、例えば、図中、丸印で示した範囲が読み取られた場合のように、図5の符号ブロックの全体を含む範囲が読み取られていない場合であっても、後述する処理により、識別情報及び座標情報が得られる。
図6は、そのようなレイアウトの一例を示した図である。このレイアウトでは、図5の符号ブロックが基本単位として紙面全体の縦方向及び横方向に周期的に配置されている。
ここで、同期パターンとしては、同じ符号パターンが各符号ブロックにおける左上のパターンブロックに配置されている。図では、同期パターンを「S」で表している。
また、X座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ行の各パターンブロックに配置されている。Y座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ列の各パターンブロックに配置されている。図では、X座標情報を表すパターンを「X01」、「X02」、…で表し、Y座標情報を表すパターンを「Y01」、「Y02」、…で表している。
更に、識別情報としては、符号パターンの同じ配列が、縦方向及び横方向に周期的に配置されている。図では、識別情報を表すパターンを「I01」、「I02」、…、「I16」で表している。
そして、このようなレイアウトを採用することにより、例えば、図中、丸印で示した範囲が読み取られた場合のように、図5の符号ブロックの全体を含む範囲が読み取られていない場合であっても、後述する処理により、識別情報及び座標情報が得られる。
尚、このようなレイアウトで紙面に印刷される符号画像は、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、又は、特殊トナーにより形成される。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
ところで、このように、m箇所から選択したn箇所にドットを配置した符号パターンを利用する場合、前述の通り、次のような2種類の誤りが発生する。
一つは、ドットの付加又は消失によりパターンブロック内のドット数が増減する誤りである。例えば、1つのパターンブロックから3ドットが検出されるべきなのに、4ドットが検出されたり、2ドットしか検出されなかったりするので、これは誤りだと分かる。この誤りが発生した場合、そのパターンブロックから符号パターンを特定することは不可能である。従って、本明細書では、このような誤りを「特定不能誤り」と呼ぶことにする。
また、もう一つは、ドットの付加及び消失が同時に起こることによりパターンブロック内のドット数が増減しない誤りである。例えば、1つのパターンブロック内の3ドットのうちの1ドットが消失し、ドットがなかった箇所に1ドットが検出されるような場合であり、これは誤りだと分からない。この誤りが発生した場合、そのパターンブロックから符号パターンを特定することは可能であるが、特定された符号パターンは誤っている。従って、本明細書では、このような誤りを「誤特定誤り」と呼ぶことにする。
一つは、ドットの付加又は消失によりパターンブロック内のドット数が増減する誤りである。例えば、1つのパターンブロックから3ドットが検出されるべきなのに、4ドットが検出されたり、2ドットしか検出されなかったりするので、これは誤りだと分かる。この誤りが発生した場合、そのパターンブロックから符号パターンを特定することは不可能である。従って、本明細書では、このような誤りを「特定不能誤り」と呼ぶことにする。
また、もう一つは、ドットの付加及び消失が同時に起こることによりパターンブロック内のドット数が増減しない誤りである。例えば、1つのパターンブロック内の3ドットのうちの1ドットが消失し、ドットがなかった箇所に1ドットが検出されるような場合であり、これは誤りだと分からない。この誤りが発生した場合、そのパターンブロックから符号パターンを特定することは可能であるが、特定された符号パターンは誤っている。従って、本明細書では、このような誤りを「誤特定誤り」と呼ぶことにする。
さて、識別情報の符号化には、上述したようにRS符号を用いているので、所定数のブロックまでの誤りは訂正される。具体的には、訂正のためのブロックの数をB、特定不能誤りが発生したブロックの数をBs、誤特定誤りが発生したブロックの数をBoとすると、
B≧Bs+Bo×2
が成り立つ場合に、誤りが発生したブロックは訂正され、正しい復号結果が得られる。
B≧Bs+Bo×2
が成り立つ場合に、誤りが発生したブロックは訂正され、正しい復号結果が得られる。
図7は、図5の符号ブロックにおいて、識別情報を表す情報パターンが配置される16個のパターンブロックのうち、特定不能誤りが発生したパターンブロックの数と、誤特定誤りが発生したパターンブロックの数と、符号ブロック全体としての復号の成否との関係を示した図である。図では、訂正のためのブロック数を「6」としており、図中、「Y」は正しい復号結果が得られる場合を、「E」は誤った復号結果が得られる場合を、「N」は復号できない場合を、それぞれ示している。
ここで、特定不能誤りのみを考えた場合は、特定不能誤りが発生したブロックの数が訂正可能なブロックの数を超えていれば、誤った復号結果を返すことが分かっているので、復号せずに終了すればよい。例えば、図7の例では、特定不能誤りが発生したブロックが7個以上になれば、復号しなければよい。しかしながら、誤特定誤りも含めて考えると、特定不能誤りが発生したブロックの数だけでは、訂正可能なブロックの数を超えているかどうか分からず、そのまま復号してしまうと、誤った復号結果を返してしまうといった問題がある。
また、誤った復号結果が返される可能性は、特定不能誤りの数に応じて変わってくる。特定不能誤りが少なければ、誤特定誤りに対する許容範囲は大きいが、特定不能誤りが多くなると、誤特定誤りに対する許容範囲は小さくなってくる。例えば、図7の例で、特定不能誤りのブロックが0個の場合、誤特定誤りのブロックが3個あっても、正しい復号結果が得られる。これに対し、特定不能誤りのブロックが6個の場合、誤特定誤りのブロックが1個あっても、復号結果は誤ったものとなってしまう。
そこで、本実施の形態では、特定不能誤りの検出状況に応じて誤り訂正復号を行うかどうかを判定する。具体的には、特定不能誤りのブロックの数が、訂正可能なブロックの数を超えていなくても、予め定めた許容されるブロック数(以下、「許容ブロック数」という)に達しているかどうかによって、復号するかどうかを判定する。尚、以下では、この許容ブロック数のことを「復号レベル」ともいう。そして、許容ブロック数が少ないことを「復号レベルが高い」といい、許容ブロック数が多いことを「復号レベルが低い」というものとする。
また、本実施の形態では、復号結果の間違いがどの程度許容されるかの状況に応じて、復号レベルである許容ブロック数を決定する。即ち、復号結果の間違いが許容されない場合には、復号レベルを高くする。つまり、許容ブロック数を少なくする。一方、復号結果の間違いがある程度許容される場合には、復号レベルを低くする。つまり、許容ブロック数を多くする。そして、何れの場合も、特定不能誤りのブロックの数が許容ブロック数以下であれば復号を行い、許容ブロック数を超えていれば復号を行わないようにする。
次に、復号レベルの設定と、符号ブロックから正しい復号結果が得られる確率(正特定率)及び誤った復号結果が得られる確率(誤特定率)との関係について説明する。
図8は、このような関係を示したグラフである。縦軸には、正特定率及び誤特定率を示している。但し、正特定率に比べて誤特定率はかなり小さいので、左側に0.2刻みで正特定率を示し、右側に0.01刻みで誤特定率を示している。また、横軸には、符号パターンのドットが消失し、又は、付加される確率を示している。厳密には、ドットが消失する確率とドットが付加される確率とは異なると考えられるが、ここではこれらを等しいと仮定している。更に、グラフの左側の「ErasureK Correct」は、Kブロックの特定不能誤りを許容した場合の正特定率を表す折れ線グラフを指しており、グラフの右側の「ErasureK Miss」は、Kブロックの特定不能誤りを許容した場合の誤特定率を表す折れ線グラフを指している(K=0〜6)。また、グラフの上側の「Simulation 100000」は、実際に10万回のシミュレーションを行った場合の正特定率である。
図8は、このような関係を示したグラフである。縦軸には、正特定率及び誤特定率を示している。但し、正特定率に比べて誤特定率はかなり小さいので、左側に0.2刻みで正特定率を示し、右側に0.01刻みで誤特定率を示している。また、横軸には、符号パターンのドットが消失し、又は、付加される確率を示している。厳密には、ドットが消失する確率とドットが付加される確率とは異なると考えられるが、ここではこれらを等しいと仮定している。更に、グラフの左側の「ErasureK Correct」は、Kブロックの特定不能誤りを許容した場合の正特定率を表す折れ線グラフを指しており、グラフの右側の「ErasureK Miss」は、Kブロックの特定不能誤りを許容した場合の誤特定率を表す折れ線グラフを指している(K=0〜6)。また、グラフの上側の「Simulation 100000」は、実際に10万回のシミュレーションを行った場合の正特定率である。
図8のグラフからは、次のようなことが分かる。
まず、許容ブロック数を0とした場合は、復号しないと判断されることも多く、正特定率は約0.5とそれほど高くないが、誤特定率は殆ど0である。また、許容ブロック数を1とした場合も、復号しないと判断されることが多く、正特定率は約0.8に留まっているが、誤特定率は殆ど0である。更に、許容ブロック数を2とした場合も、正特定率は約0.9に留まっているが、誤特定率は殆ど0である。また、許容ブロック数を3、4、5、6と増やしていくと、正特定率は1.0に近づいていくが、誤特定率が格段に高くなっていく。
まず、許容ブロック数を0とした場合は、復号しないと判断されることも多く、正特定率は約0.5とそれほど高くないが、誤特定率は殆ど0である。また、許容ブロック数を1とした場合も、復号しないと判断されることが多く、正特定率は約0.8に留まっているが、誤特定率は殆ど0である。更に、許容ブロック数を2とした場合も、正特定率は約0.9に留まっているが、誤特定率は殆ど0である。また、許容ブロック数を3、4、5、6と増やしていくと、正特定率は1.0に近づいていくが、誤特定率が格段に高くなっていく。
次いで、本実施の形態における状況に応じた復号レベルの変更について具体例を用いて説明する。以下の説明で、「ストローク」とは、ペン型スキャナ等の画像を読み取る機器が紙面に接してから離れるまでにスキャナの先端が辿る軌跡をいうものとする。尚、本実施の形態では、媒体から複数のパターン画像を読み取る機器が媒体に接してから離れるまでに移動する距離の一例として、ストロークの長さを用いている。また、図中、「*」が特定不能誤りを示す。
(1)ストロークが短い場合
例えば、紙面上の所定の位置を指示(ポイント)することで、所定の処理を起動するような場合である。この場合は、誤った結果を出力することがないように、復号レベルを高く設定する必要がある。
図9に、画像を読み取ることで獲得されたパターン配列(獲得パターン配列)と、このような状況において獲得パターン配列を復号するかどうかの判定結果を示す。この場合、復号レベルとして、例えば、許容ブロック数「1」が設定されているものとする。すると、1つ目のフレーム及び2つ目のフレームにおける獲得パターン配列は、特定不能誤りを5つ含んでいるので、復号されないが、3つ目のフレームにおける獲得パターン配列は、特定不能誤りを1つしか含んでいないので、復号される。
例えば、紙面上の所定の位置を指示(ポイント)することで、所定の処理を起動するような場合である。この場合は、誤った結果を出力することがないように、復号レベルを高く設定する必要がある。
図9に、画像を読み取ることで獲得されたパターン配列(獲得パターン配列)と、このような状況において獲得パターン配列を復号するかどうかの判定結果を示す。この場合、復号レベルとして、例えば、許容ブロック数「1」が設定されているものとする。すると、1つ目のフレーム及び2つ目のフレームにおける獲得パターン配列は、特定不能誤りを5つ含んでいるので、復号されないが、3つ目のフレームにおける獲得パターン配列は、特定不能誤りを1つしか含んでいないので、復号される。
(2)ストロークが長いが、履歴情報を利用しない場合
例えば、紙面上で筆記する際に、フレームごとに復号を行い、ストロークの最後で復号結果の多数決を取って最も頻度が高い復号結果を採用する場合である。この場合は、復号レベルを高くしておくと、各フレームで復号されない虞がある。従って、低いレベルを設定し、多数決の候補となる復号結果が多数用意されるようにする。
図10に、獲得パターン配列と、このような状況において獲得パターン配列を復号するかどうかの判定結果を示す。この場合、復号レベルとして、例えば、許容ブロック数「4」が設定されているものとする。すると、1つ目のフレームから3つ目のフレームまでの獲得パターン配列は、何れも特定不能誤りを4つまでしか含んでいないので、復号される。
例えば、紙面上で筆記する際に、フレームごとに復号を行い、ストロークの最後で復号結果の多数決を取って最も頻度が高い復号結果を採用する場合である。この場合は、復号レベルを高くしておくと、各フレームで復号されない虞がある。従って、低いレベルを設定し、多数決の候補となる復号結果が多数用意されるようにする。
図10に、獲得パターン配列と、このような状況において獲得パターン配列を復号するかどうかの判定結果を示す。この場合、復号レベルとして、例えば、許容ブロック数「4」が設定されているものとする。すると、1つ目のフレームから3つ目のフレームまでの獲得パターン配列は、何れも特定不能誤りを4つまでしか含んでいないので、復号される。
(3)ストロークが長く、履歴情報を利用する場合
例えば、紙面上で筆記する際に、同じストロークにおける過去のフレームのパターン値に基づいて現在のフレームのパターン値を修正して修正パターン配列を取得していき、ストロークの最後に得られた修正パターン配列から復号する場合である。この場合、最後に得られる修正パターン配列には特定不能誤りが少ないはずなので、復号レベルを高くしておいても、正しい復号結果が得られる可能性が高い。
図11に、獲得パターン配列と、修正パターン配列と、このような状況において修正パターン配列を復号するかどうかの判定結果を示す。この例では、過去及び今回のフレームの獲得パターン配列におけるパターン値のうち頻度が最大のものを修正パターン配列におけるパターン値としている。その際、何らかのパターン値と「*」が同数であれば、「*」を採用している。この場合、復号レベルとして、例えば、許容ブロック数「2」が設定されているものとする。すると、3つ目のフレームにおける修正パターン配列は、特定不能誤りを2つしか含んでいないので、復号される。
例えば、紙面上で筆記する際に、同じストロークにおける過去のフレームのパターン値に基づいて現在のフレームのパターン値を修正して修正パターン配列を取得していき、ストロークの最後に得られた修正パターン配列から復号する場合である。この場合、最後に得られる修正パターン配列には特定不能誤りが少ないはずなので、復号レベルを高くしておいても、正しい復号結果が得られる可能性が高い。
図11に、獲得パターン配列と、修正パターン配列と、このような状況において修正パターン配列を復号するかどうかの判定結果を示す。この例では、過去及び今回のフレームの獲得パターン配列におけるパターン値のうち頻度が最大のものを修正パターン配列におけるパターン値としている。その際、何らかのパターン値と「*」が同数であれば、「*」を採用している。この場合、復号レベルとして、例えば、許容ブロック数「2」が設定されているものとする。すると、3つ目のフレームにおける修正パターン配列は、特定不能誤りを2つしか含んでいないので、復号される。
(4)ストロークの長さが変動する場合
例えば、紙面上の所定の位置を指示(ポイント)することで所定の処理を起動するのか、紙面上に筆記するのかが分からないような場合である。この場合、ストロークの初期では復号レベルを高くし、徐々に復号レベルを低くするとよい。ストロークが進むにつれて、過去のフレームのパターン値を用いてパターン値が修正されるので、復号レベルを低くしても、誤った復号結果を出力するリスクは少なくなる。
図12に、獲得パターン配列と、修正パターン配列と、このような状況において修正パターン配列を復号するかどうかの判定結果を示す。この例でも、過去及び今回のフレームの獲得パターン配列におけるパターン値のうち頻度が最大のものを修正パターン配列におけるパターン値としている。その際、何らかのパターン値と「*」が同数であれば、「*」を採用している。この場合、復号レベルとして、例えば、Fフレーム目に対して許容ブロック数Fが設定されているものとする(F=0,1,2)。すると、1つ目のフレーム及び2つ目のフレームにおける修正パターン配列は、特定不能誤りをそれぞれ4つ及び6つ含んでいるので、復号されないが、3つ目のフレームにおける修正パターン配列は、特定不能誤りを2つしか含んでいないので、復号される。
例えば、紙面上の所定の位置を指示(ポイント)することで所定の処理を起動するのか、紙面上に筆記するのかが分からないような場合である。この場合、ストロークの初期では復号レベルを高くし、徐々に復号レベルを低くするとよい。ストロークが進むにつれて、過去のフレームのパターン値を用いてパターン値が修正されるので、復号レベルを低くしても、誤った復号結果を出力するリスクは少なくなる。
図12に、獲得パターン配列と、修正パターン配列と、このような状況において修正パターン配列を復号するかどうかの判定結果を示す。この例でも、過去及び今回のフレームの獲得パターン配列におけるパターン値のうち頻度が最大のものを修正パターン配列におけるパターン値としている。その際、何らかのパターン値と「*」が同数であれば、「*」を採用している。この場合、復号レベルとして、例えば、Fフレーム目に対して許容ブロック数Fが設定されているものとする(F=0,1,2)。すると、1つ目のフレーム及び2つ目のフレームにおける修正パターン配列は、特定不能誤りをそれぞれ4つ及び6つ含んでいるので、復号されないが、3つ目のフレームにおける修正パターン配列は、特定不能誤りを2つしか含んでいないので、復号される。
このように、本実施の形態は、状況に応じて復号レベルを変更することで、復号性能を高めるものである。上記では、そのような状況として、(1)及び(2)でストロークの長短を示し、(4)でフレーム番号を示した。そこで、以下では、この2つの復号レベルの変更方法を例にとって説明する。尚、本実施の形態では、如何なるmCn方式を利用してもよいが、以降の説明においては、簡単のため、9C3方式の利用を前提とする。また、以下では、パターンブロックのことを単に「ブロック」ともいう。
次に、紙面に形成された符号画像を読み取って処理する画像処理装置20について説明する。
図13は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、復号レベル設定部10と、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24とを備える。また、識別符号検出部30と、識別符号復号部32と、X座標符号検出部40と、X座標符号復号部42と、Y座標符号検出部45と、Y座標符号復号部47と、情報出力部50とを備える。
図13は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、復号レベル設定部10と、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24とを備える。また、識別符号検出部30と、識別符号復号部32と、X座標符号検出部40と、X座標符号復号部42と、Y座標符号検出部45と、Y座標符号復号部47と、情報出力部50とを備える。
復号レベル設定部10は、各種状況に応じて、識別符号復号部32が識別符号を復号する際の復号レベルを設定し、メモリに格納する。ここで、各種状況としては、上述したように、紙面上のストロークが長いか短いか、ストロークが長い場合に現在処理中の画像がストロークにおける何フレーム目に当たるか、等が例示される。
画像読取部21は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。
ドット配列生成部22は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。尚、符号画像からのドット検出の前処理として、読み取った画像に含まれるノイズを除去するための処理も行う。ここで、ノイズには、例えば、撮像素子感度のばらつきや電子回路により発生するノイズがある。ノイズ除去の処理の種類は、撮像系の特性に合わせるべきだが、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用するとよい。また、ドットの検出は、次のように行う。即ち、まず、2値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、2値化された個々の画像位置からドットの位置を検出する。その際、2値化された画像にノイズ成分が多数含まれる場合があるため、2値化された画像の面積や形状によりドットの判定を行うフィルタ処理を組み合わせる必要がある。その後、ドット配列の生成は、2次元の配列上で、例えば、ドットがある位置を「1」、ドットがない位置を「0」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、複数のパターン画像を取得する取得手段の一例として、ドット配列生成部22を設けている。
ドット配列生成部22は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。尚、符号画像からのドット検出の前処理として、読み取った画像に含まれるノイズを除去するための処理も行う。ここで、ノイズには、例えば、撮像素子感度のばらつきや電子回路により発生するノイズがある。ノイズ除去の処理の種類は、撮像系の特性に合わせるべきだが、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用するとよい。また、ドットの検出は、次のように行う。即ち、まず、2値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、2値化された個々の画像位置からドットの位置を検出する。その際、2値化された画像にノイズ成分が多数含まれる場合があるため、2値化された画像の面積や形状によりドットの判定を行うフィルタ処理を組み合わせる必要がある。その後、ドット配列の生成は、2次元の配列上で、例えば、ドットがある位置を「1」、ドットがない位置を「0」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、複数のパターン画像を取得する取得手段の一例として、ドット配列生成部22を設けている。
ブロック検出部23は、ドット配列上で、符号ブロック内のパターンブロックを検出する。即ち、符号ブロックと同じ大きさ及び形状のフレームで、パターンブロックと同じ大きさ及び形状のブロックを有するブロックフレームをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいフレーム位置とし、各ブロック内のパターン値を格納した符号配列を生成する。本実施の形態では、誤りパターン画像を検出する検出手段の一例として、ブロック検出部23を設けている。
同期符号検出部24は、ドット配列から検出された各符号パターンの種類を参照して、同期符号を検出する。また、同期符号検出部24は、検出した同期符号に基づいて、画像の回転の判定も行う。例えば、正方形の符号パターンを用いた場合、90度単位で回転している可能性がある。そこで、検出した同期符号が4種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の符号パターンを用いた場合、180度単位で回転している可能性がある。そこで、検出された同期符号が2種類の同期パターンのいずれに対応しているかによって、その向きを検出する。更に、同期符号検出部24は、このように検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
識別符号検出部30は、角度が補正された符号配列から、同期符号の位置を基準にして、識別符号を検出する。本実施の形態では、ビット列を特定する特定手段の一例として、識別符号検出部30を設けている。
識別符号復号部32は、上述したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。本実施の形態では、誤り訂正復号を行うかどうかを決定する決定手段の一例として、識別符号復号部32を設けている。
識別符号復号部32は、上述したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。本実施の形態では、誤り訂正復号を行うかどうかを決定する決定手段の一例として、識別符号復号部32を設けている。
X座標符号検出部40は、角度が補正された符号配列から、同期符号の位置を基準にしてX座標符号を検出する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をX座標情報として出力する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をX座標情報として出力する。
Y座標符号検出部45は、角度が補正された符号配列から、同期符号の位置を基準にしてY座標符号を検出する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をY座標情報として出力する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をY座標情報として出力する。
情報出力部50は、識別符号復号部32、X座標符号復号部42、Y座標符号復号部47からそれぞれ取得した識別情報、X座標情報、Y座標情報を出力する。
次いで、この画像処理装置20の動作を説明する。尚、この動作の説明では、9C3方式の符号パターンが図5のレイアウトで配置されていることを前提とする。
まず、復号レベル設定部10は、各種状況に応じて復号レベルを決定し、図示しないメモリに格納する。前述の通り、ここでは、各種状況として、ストロークの長短、及び、ストロークにおけるフレーム番号を考える。
まず、復号レベル設定部10は、各種状況に応じて復号レベルを決定し、図示しないメモリに格納する。前述の通り、ここでは、各種状況として、ストロークの長短、及び、ストロークにおけるフレーム番号を考える。
第一に、復号レベル設定部10がストロークの長短に応じて復号レベルを設定する際の動作について説明する。
図14(a)は、このときの復号レベル設定部10の動作例を示したフローチャートである。尚、この動作例において、画像処理装置20には、少なくとも2つのモードが設定できるようになっており、そのモードによってストロークの長短が決められるものとする。ここで、2つのモードとは、例えば、ペン先からインクが出るようにして筆記を可能にすると共に筆跡を電子化する筆記モードと、ペン先からインクが出ないようにして紙面上の位置を指して何らかの情報を参照する参照モードである。即ち、上記(1)のように、参照モードにおけるストロークの場合は、復号レベルを高くし、上記(2)のように、筆記モードにおけるストロークの場合は、復号レベルを低くすることが考えられる。また、何れのモードが選択されているかを示すモード情報は、2つのモードを切り替えるためのモード切り替えスイッチ等からの信号として取得すればよい。尚、本実施の形態では、状態情報の一例として、モード情報を用いている。
図14(a)は、このときの復号レベル設定部10の動作例を示したフローチャートである。尚、この動作例において、画像処理装置20には、少なくとも2つのモードが設定できるようになっており、そのモードによってストロークの長短が決められるものとする。ここで、2つのモードとは、例えば、ペン先からインクが出るようにして筆記を可能にすると共に筆跡を電子化する筆記モードと、ペン先からインクが出ないようにして紙面上の位置を指して何らかの情報を参照する参照モードである。即ち、上記(1)のように、参照モードにおけるストロークの場合は、復号レベルを高くし、上記(2)のように、筆記モードにおけるストロークの場合は、復号レベルを低くすることが考えられる。また、何れのモードが選択されているかを示すモード情報は、2つのモードを切り替えるためのモード切り替えスイッチ等からの信号として取得すればよい。尚、本実施の形態では、状態情報の一例として、モード情報を用いている。
動作を開始すると、復号レベル設定部10は、まず、ペン先の圧力センサ等からストローク開始信号を受け取る(ステップ101)。これにより、復号レベル設定部10は、モード切り替えスイッチ等からモード情報を取得する(ステップ102)。
次に、復号レベル設定部10は、そのモード情報に予め対応付けられた復号レベルを取得する(ステップ103)。ここで、復号レベルとしては、上述した許容ブロック数を取得する。この例では、上記(1)及び(2)に示したように、「参照モード」に対応付けられた許容ブロック数が、「筆記モード」に対応付けられた許容ブロック数より少なくなっているのが好ましい。
そして、復号レベル設定部10は、ここで取得した復号レベルをdecodeLevelに格納してメモリに記憶し(ステップ104)、画像読取部21に対して画像の読み取りを指示する(ステップ105)。
次に、復号レベル設定部10は、そのモード情報に予め対応付けられた復号レベルを取得する(ステップ103)。ここで、復号レベルとしては、上述した許容ブロック数を取得する。この例では、上記(1)及び(2)に示したように、「参照モード」に対応付けられた許容ブロック数が、「筆記モード」に対応付けられた許容ブロック数より少なくなっているのが好ましい。
そして、復号レベル設定部10は、ここで取得した復号レベルをdecodeLevelに格納してメモリに記憶し(ステップ104)、画像読取部21に対して画像の読み取りを指示する(ステップ105)。
尚、このフローチャートでは、画像処理装置20に設定されたモードに基づいて、ストロークの長短を判断するようにしたが、これには限らない。例えば、紙面に筆記するための領域(筆記用領域)と情報参照を指示するための領域(指示用領域)を設けておき、画像処理装置20が接触した紙面上の領域がこの何れであるかに基づいて、ストロークの長短を判断するようにしてもよい。具体的には、紙面上の領域の座標情報と、その領域が筆記用領域であるか指示用領域であるかを示す情報とを対応付けた管理情報を作成しておく。そして、画像処理装置20が、紙面上に接触した際に座標情報を読み取り、管理情報を参照してその座標情報に対応する領域が筆記用領域であるか指示用領域であるかを判定するとよい。
第二に、復号レベル設定部10がストロークにおけるフレーム番号に応じて復号レベルを設定する際の動作について説明する。
図14(b)は、このときの復号レベル設定部10の動作例を示したフローチャートである。
図14(b)は、このときの復号レベル設定部10の動作例を示したフローチャートである。
動作を開始すると、復号レベル設定部10は、まず、ペン先の圧力センサ等からストローク開始信号を受け取る(ステップ151)。これにより、復号レベル設定部10は、フレーム番号iFlameを初期化する(ステップ152)。
次に、復号レベル設定部10は、そのときのフレーム番号に予め対応付けられた復号レベルを取得する(ステップ153)。ここで、復号レベルとしては、(a)の場合と同様、許容ブロック数を取得する。また、フレーム番号から復号レベルを取得するには、所定の関数を用いてもよい。上記(4)で述べたように、一般には、フレーム番号が進むに従って復号レベルは低くするのが好ましい。その場合は、上記の所定の関数として、フレーム番号の増加に伴って許容ブロック数が等しいか又は増加する関数を用いるとよい。特に、そのような関数として、「y=x」(xはフレーム番号を、yは許容ブロック数を表す)を採用することにより、フレーム番号をそのまま復号レベルである許容ブロック数とすることも考えられる。但し、状況によっては、フレーム番号が進むに従って復号レベルを高くしたほうがよい場合も考えられる。その場合は、上記の所定の関数として、フレーム番号の増加に伴って許容ブロック数が等しいか又は減少する関数を採用するとよい。
次に、復号レベル設定部10は、そのときのフレーム番号に予め対応付けられた復号レベルを取得する(ステップ153)。ここで、復号レベルとしては、(a)の場合と同様、許容ブロック数を取得する。また、フレーム番号から復号レベルを取得するには、所定の関数を用いてもよい。上記(4)で述べたように、一般には、フレーム番号が進むに従って復号レベルは低くするのが好ましい。その場合は、上記の所定の関数として、フレーム番号の増加に伴って許容ブロック数が等しいか又は増加する関数を用いるとよい。特に、そのような関数として、「y=x」(xはフレーム番号を、yは許容ブロック数を表す)を採用することにより、フレーム番号をそのまま復号レベルである許容ブロック数とすることも考えられる。但し、状況によっては、フレーム番号が進むに従って復号レベルを高くしたほうがよい場合も考えられる。その場合は、上記の所定の関数として、フレーム番号の増加に伴って許容ブロック数が等しいか又は減少する関数を採用するとよい。
そして、復号レベル設定部10は、ここで取得した復号レベルをdecodeLevelに格納してメモリに記憶し(ステップ154)、画像読取部21に対して画像の読み取りを指示する(ステップ155)。
その後、復号レベル設定部10は、ストロークが終了したかどうかを判定する(ステップ156)。この判定も、例えば、ペン先の圧力センサ等からの信号によって行うとよい。その結果、ストロークが終了していないと判定された場合は、フレーム番号iFlameに「1」を加算し、そのときのフレーム番号についてステップ153〜155の処理を繰り返す。一方、ストロークが終了したと判定された場合は、処理を終了する。
このようにして復号レベルがメモリに記憶された状態で、以下の画像処理が実行される。
その後、復号レベル設定部10は、ストロークが終了したかどうかを判定する(ステップ156)。この判定も、例えば、ペン先の圧力センサ等からの信号によって行うとよい。その結果、ストロークが終了していないと判定された場合は、フレーム番号iFlameに「1」を加算し、そのときのフレーム番号についてステップ153〜155の処理を繰り返す。一方、ストロークが終了したと判定された場合は、処理を終了する。
このようにして復号レベルがメモリに記憶された状態で、以下の画像処理が実行される。
まず、画像読取部21が、符号画像が印刷された媒体から、所定の大きさの領域の符号画像を読み取る。
次に、ドット配列生成部22が、ドットを検出した位置に「1」を、ドットを検出しなかった位置に「0」を設定したドット配列を生成する。
その後、ブロック検出部23が、このドット配列にブロックフレームを重ねて、全てのパターンブロック内のドットの数が「3」となるブロックフレームの位置を探索することで、パターンブロックの境界を検出する。本実施の形態において、符号ブロックは、パターンブロックが5個×5個で配置されたものとしている。従って、ブロックフレームとしても、5ブロック×5ブロックの大きさのものを用いる。
次に、ドット配列生成部22が、ドットを検出した位置に「1」を、ドットを検出しなかった位置に「0」を設定したドット配列を生成する。
その後、ブロック検出部23が、このドット配列にブロックフレームを重ねて、全てのパターンブロック内のドットの数が「3」となるブロックフレームの位置を探索することで、パターンブロックの境界を検出する。本実施の形態において、符号ブロックは、パターンブロックが5個×5個で配置されたものとしている。従って、ブロックフレームとしても、5ブロック×5ブロックの大きさのものを用いる。
ここで、ブロック検出部23の動作について説明する。
図15は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。本実施の形態では、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
図15は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。本実施の形態では、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
次に、取得したドット配列に、ブロックフレームを重ね合わせる(ステップ202)。そして、カウンタI、Jに「0」を代入し、MaxBNにも「0」を代入する(ステップ203)。ここで、I、Jは、ブロックフレームを初期位置から移動させたステップ数をカウントするものである。画像の1ラインごとにブロックフレームを移動させ、そのとき移動させたライン数をカウンタI、Jでカウントする。また、MaxBNは、ブロック内で検出されるドット数が「3」となるブロック数をブロックフレームを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
次に、ブロック検出部23は、ブロックフレームをX方向にI、Y方向にJ移動させる(ステップ204)。初期状態においてI、Jは「0」であるので、ブロックフレームは移動しない。そして、ブロックフレームの各ブロックに含まれるドット数をカウントして、ドット数が「3」となるブロックの数をカウントする。カウントしたブロック数はIB[I,J]に格納する(ステップ205)。IB[I,J]のI、Jには、ブロックフレームの移動量を示すIとJの値がそれぞれ記録される。
次に、ブロック検出部23は、IB[I,J]とMaxBNとを比較する(ステップ206)。MaxBNは初期値が「0」であるので、最初の比較では、IB[I,J]がMaxBNよりも大きくなる。この場合、MaxBNにIB[I,J]の値を代入すると共に、MXにIの値を、MYにJの値を代入する(ステップ207)。尚、IB[I,J]がMaxBN以下である場合は、MaxBN、MX、MYの値はそのままにしておく。
その後、ブロック検出部23は、I=2であるかどうかを判定する(ステップ208)。
ここで、I=2でない場合には、Iに「1」を加算する(ステップ209)。そして、ステップ204、205の処理を繰り返し行い、IB[I,J]とMaxBNとを比較していく(ステップ206)。
IB[I,J]が前回までのIB[I,J]の最大値であるMaxBNよりも大きいと、MaxBNにIB[I,J]の値を代入し、そのときのIの値をMXに、Jの値をMYに代入する(ステップ207)。また、MaxBNのほうがIB[I,J]よりも大きい場合には、I=2であるかどうかを判定する(ステップ208)。I=2となると、次にJ=2であるかどうかを判定する(ステップ210)。J=2でない場合には、Iに「0」を代入し、Jに「1」を加算する(ステップ211)。このような手順を繰り返し行い、(I,J)が(0,0)から(2,2)までで、IB[I,J]が最大のものを検出する。
ここで、I=2でない場合には、Iに「1」を加算する(ステップ209)。そして、ステップ204、205の処理を繰り返し行い、IB[I,J]とMaxBNとを比較していく(ステップ206)。
IB[I,J]が前回までのIB[I,J]の最大値であるMaxBNよりも大きいと、MaxBNにIB[I,J]の値を代入し、そのときのIの値をMXに、Jの値をMYに代入する(ステップ207)。また、MaxBNのほうがIB[I,J]よりも大きい場合には、I=2であるかどうかを判定する(ステップ208)。I=2となると、次にJ=2であるかどうかを判定する(ステップ210)。J=2でない場合には、Iに「0」を代入し、Jに「1」を加算する(ステップ211)。このような手順を繰り返し行い、(I,J)が(0,0)から(2,2)までで、IB[I,J]が最大のものを検出する。
I=2、J=2までの処理が終了すると、ブロック検出部23は、保存しているMaxBNと閾値TBとを比較する(ステップ212)。閾値TBは、ドット数が「3」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロックフレームをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「−1」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロックフレームをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「−1」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
次に、同期符号検出部24の動作について説明する。
図16は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
図16は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
次に、同期符号検出部24は、PA[K,L]のパターン値が「64」かどうかを判定する(ステップ253)。
PA[K,L]のパターン値が「64」であれば、符号配列PA[X,Y]の回転は必要ないと判定し、同期符号のあるブロックのX座標SXにKを代入し、Y座標SYにLを代入する。また、ブロックフレームのX方向への移動量ShiftXにMXを代入し、Y方向への移動量ShiftYにMYを代入する(ステップ254)。
PA[K,L]のパターン値が「64」であれば、符号配列PA[X,Y]の回転は必要ないと判定し、同期符号のあるブロックのX座標SXにKを代入し、Y座標SYにLを代入する。また、ブロックフレームのX方向への移動量ShiftXにMXを代入し、Y方向への移動量ShiftYにMYを代入する(ステップ254)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「65」かどうかを判定する(ステップ255)。
PA[K,L]のパターン値が「65」であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図4(b)に示すようにパターン値「65」の符号パターンは、パターン値「64」の符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロックフレームのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
PA[K,L]のパターン値が「65」であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図4(b)に示すようにパターン値「65」の符号パターンは、パターン値「64」の符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロックフレームのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「66」かどうかを判定する(ステップ258)。
PA[K,L]のパターン値が「66」であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図4(b)に示すようにパターン値「66」の符号パターンは、パターン値「64」の符号パターンを180度回転させた画像であるので、パターン値「66」の符号パターンを180度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、180度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Kを代入し、Y座標SYに6−Lを代入する。また、ブロックフレームのX方向への移動量ShiftXに2−MXを代入し、Y方向への移動量ShiftYに2−MYを代入する(ステップ260)。
PA[K,L]のパターン値が「66」であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図4(b)に示すようにパターン値「66」の符号パターンは、パターン値「64」の符号パターンを180度回転させた画像であるので、パターン値「66」の符号パターンを180度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、180度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Kを代入し、Y座標SYに6−Lを代入する。また、ブロックフレームのX方向への移動量ShiftXに2−MXを代入し、Y方向への移動量ShiftYに2−MYを代入する(ステップ260)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「67」かどうかを判定する(ステップ261)。
PA[K,L]のパターン値が「67」であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図4(b)に示すようにパターン値「67」の符号パターンは、パターン値「64」の符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロックフレームのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
PA[K,L]のパターン値が「67」であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図4(b)に示すようにパターン値「67」の符号パターンは、パターン値「64」の符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロックフレームのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
そして、ステップ254、257、260、263で、SX、SY、ShiftX、ShiftYに値が代入された場合、同期符号検出部24は、PA[X,Y]とこれらの値を識別符号検出部30、X座標符号検出部40、Y座標符号検出部45に出力する(ステップ264)。
また、PA[K,L]がパターン値「64」〜「67」のいずれでもなければ、同期符号検出部24は、K=5であるかどうかを判定する(ステップ265)。K=5でない場合には、Kに「1」を加算し(ステップ266)、ステップ253に戻る。K=5であれば、L=5であるかどうかを判定する(ステップ267)。L=5でない場合には、Kに「1」を代入し、Lに「1」を加算し(ステップ268)、ステップ253に戻る。即ち、ステップ253〜264の処理を、パターン値「64」〜「67」のブロックを検出するまでK、Lの値を変更しながら繰り返し行う。また、K=5、L=5になっても、パターン値「64」〜「67」のブロックを検出することができなかった場合には、復号不能の判定信号を出力する(ステップ269)。
また、PA[K,L]がパターン値「64」〜「67」のいずれでもなければ、同期符号検出部24は、K=5であるかどうかを判定する(ステップ265)。K=5でない場合には、Kに「1」を加算し(ステップ266)、ステップ253に戻る。K=5であれば、L=5であるかどうかを判定する(ステップ267)。L=5でない場合には、Kに「1」を代入し、Lに「1」を加算し(ステップ268)、ステップ253に戻る。即ち、ステップ253〜264の処理を、パターン値「64」〜「67」のブロックを検出するまでK、Lの値を変更しながら繰り返し行う。また、K=5、L=5になっても、パターン値「64」〜「67」のブロックを検出することができなかった場合には、復号不能の判定信号を出力する(ステップ269)。
次に、識別符号検出部30及び識別符号復号部32の動作について説明する。尚、フレーム番号に応じた復号レベルによる復号を上記(4)のように履歴情報を用いて行うものとすると、ストロークの長短に応じて復号レベルを設定した場合とフレーム番号に応じて復号レベルを設定した場合とで動作が異なってくるので、2つの動作を説明する。
図17は、ストロークの長短に応じて復号レベルを設定した場合における識別符号検出部30及び識別符号復号部32の動作例を示したフローチャートである。
まず、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ301)。
次に、識別符号検出部30は、識別符号配列IA[X,Y]の全ての要素を「−1」で初期化する(ステップ302)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ303)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
まず、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ301)。
次に、識別符号検出部30は、識別符号配列IA[X,Y]の全ての要素を「−1」で初期化する(ステップ302)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ303)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
また、識別符号検出部30は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ304)。即ち、IYで特定される行に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ305)、ステップ304へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ306)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ305)、ステップ304へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ306)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IX−SXが「5」で割り切れた場合、つまり、この列に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IXに「1」を加算し(ステップ307)、ステップ306へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5]にPA[IX,IY]を代入する(ステップ308)。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5]にPA[IX,IY]を代入する(ステップ308)。
そして、IX=5であるかどうかを判定する(ステップ309)。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ307)、ステップ306〜308の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ310)。IY=5でない場合には、IXに「1」を代入し(ステップ311)、IYに「1」を加算して(ステップ305)、ステップ304〜309の処理をIY=5となるまで繰り返し行う。また、IY=5となると、識別符号復号部32の処理に移る。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ307)、ステップ306〜308の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ310)。IY=5でない場合には、IXに「1」を代入し(ステップ311)、IYに「1」を加算して(ステップ305)、ステップ304〜309の処理をIY=5となるまで繰り返し行う。また、IY=5となると、識別符号復号部32の処理に移る。
即ち、識別符号復号部32は、特定不能誤りの数をiErasureに設定する(ステップ312)。ここで、特定不能誤りの数は、IA[X,Y]=−1となっているブロックを数えることで求める。そして、識別符号復号部32は、図14(a)のステップ104でメモリに記憶されたdecodeLevelを読み出す(ステップ313)。
その後、識別符号復号部32は、iErasureがdecodeLevelを超えているかどうかを判定する(ステップ314)。
ここで、iErasureがdecodeLevelを超えていないと判定すると、識別符号復号部32は、IA[X,Y]から識別情報を得る(ステップ315)。また、iErasureがdecodeLevelを超えていると判定すると、識別情報にN/Aを代入する(ステップ316)。
その後、識別符号復号部32は、iErasureがdecodeLevelを超えているかどうかを判定する(ステップ314)。
ここで、iErasureがdecodeLevelを超えていないと判定すると、識別符号復号部32は、IA[X,Y]から識別情報を得る(ステップ315)。また、iErasureがdecodeLevelを超えていると判定すると、識別情報にN/Aを代入する(ステップ316)。
図18は、フレーム番号に応じて復号レベルを設定した場合における識別符号検出部30及び識別符号復号部32の動作例を示したフローチャートである。
まず、識別符号検出部30は、判定配列IA[X,Y,P]の全ての要素を「0」で初期化する(ステップ351)。
次に、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ352)。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ353)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
まず、識別符号検出部30は、判定配列IA[X,Y,P]の全ての要素を「0」で初期化する(ステップ351)。
次に、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ352)。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ353)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
また、識別符号検出部30は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ354)。即ち、IYで特定される行に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ355)、ステップ354へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ356)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ355)、ステップ354へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ356)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IX−SXが「5」で割り切れた場合、つまり、この列に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IXに「1」を加算し(ステップ357)、ステップ356へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5,PA[IX,IY]]に「1」を加算する(ステップ358)。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5,PA[IX,IY]]に「1」を加算する(ステップ358)。
そして、IX=5であるかどうかを判定する(ステップ359)。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ357)、ステップ356〜358の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ360)。IY=5でない場合には、IXに「1」を代入し(ステップ361)、IYに「1」を加算して(ステップ355)、ステップ354〜359の処理をIY=5となるまで繰り返し行う。また、IY=5となると、これまで求めたIA[X,Y,P]の最大値を求める処理に移る。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ357)、ステップ356〜358の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ360)。IY=5でない場合には、IXに「1」を代入し(ステップ361)、IYに「1」を加算して(ステップ355)、ステップ354〜359の処理をIY=5となるまで繰り返し行う。また、IY=5となると、これまで求めたIA[X,Y,P]の最大値を求める処理に移る。
まず、識別符号検出部30は、識別符号配列における各ブロックを識別するためのJX、JYに「1」を代入する(ステップ371)。
次に、識別符号検出部30は、ステップ358で生成した判定配列IA[JX,JY,P]を最大にするPの値を、識別符号配列EA[JX,JY]に格納する(ステップ372)。
そして、JX=4であるかどうかを判定する(ステップ373)。
ここで、JX=4でない場合には、JXに「1」を加算して(ステップ374)、ステップ372の処理をJX=4となるまで繰り返し行う。また、JX=4となると、次に、JY=4であるかどうかを判定する(ステップ375)。JY=4でない場合には、JXに「1」を代入し、JYに「1」を加算して(ステップ376)、ステップ372〜374の処理をJY=4となるまで繰り返し行う。また、JY=4となると、識別符号復号部32の処理に移る。
次に、識別符号検出部30は、ステップ358で生成した判定配列IA[JX,JY,P]を最大にするPの値を、識別符号配列EA[JX,JY]に格納する(ステップ372)。
そして、JX=4であるかどうかを判定する(ステップ373)。
ここで、JX=4でない場合には、JXに「1」を加算して(ステップ374)、ステップ372の処理をJX=4となるまで繰り返し行う。また、JX=4となると、次に、JY=4であるかどうかを判定する(ステップ375)。JY=4でない場合には、JXに「1」を代入し、JYに「1」を加算して(ステップ376)、ステップ372〜374の処理をJY=4となるまで繰り返し行う。また、JY=4となると、識別符号復号部32の処理に移る。
即ち、識別符号復号部32は、特定不能誤りの数をiErasureに設定する(ステップ377)。ここで、特定不能誤りの数は、EA[JX,JY]=−1となっているブロックを数えることで求める。そして、識別符号復号部32は、図14(b)のステップ154でメモリに記憶されたdecodeLevelを読み出す(ステップ378)。
その後、識別符号復号部32は、iErasureがdecodeLevelを超えているかどうかを判定する(ステップ379)。
ここで、iErasureがdecodeLevelを超えていないと判定すると、識別符号復号部32は、EA[JX,JY]から識別情報を得る(ステップ380)。また、iErasureがdecodeLevelを超えていると判定すると、識別情報にN/Aを代入する(ステップ381)。
その後、識別符号復号部32は、iErasureがdecodeLevelを超えているかどうかを判定する(ステップ379)。
ここで、iErasureがdecodeLevelを超えていないと判定すると、識別符号復号部32は、EA[JX,JY]から識別情報を得る(ステップ380)。また、iErasureがdecodeLevelを超えていると判定すると、識別情報にN/Aを代入する(ステップ381)。
次に、X座標符号検出部40及びX座標符号復号部42の動作について説明する。
図19は、X座標符号検出部40及びX座標符号復号部42の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SY、ShiftX、ShiftYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列XA[X]の全ての要素を「−1」で初期化する(ステップ402)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
図19は、X座標符号検出部40及びX座標符号復号部42の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SY、ShiftX、ShiftYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列XA[X]の全ての要素を「−1」で初期化する(ステップ402)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
また、X座標符号検出部40は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ404)。即ち、IYで特定される行に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、X座標符号を取り出す対象ではないため、IYに「1」を加算し(ステップ405)、ステップ404へ進む。
一方、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合、X座標符号検出部40は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ406)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、X座標符号を取り出す対象ではないため、IYに「1」を加算し(ステップ405)、ステップ404へ進む。
一方、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合、X座標符号検出部40は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ406)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IX−SXが「5」で割り切れた場合、つまり、この列に同期符号が配置されている場合は、X座標符号を取り出す対象ではないため、IXに「1」を加算し(ステップ407)、ステップ406へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、X座標符号検出部40は、XA[KX]にPA[IX,IY]を代入する(ステップ408)。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、X座標符号検出部40は、XA[KX]にPA[IX,IY]を代入する(ステップ408)。
そして、IX=5であるかどうかを判定する(ステップ409)。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、X座標符号復号部42の処理に移る。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、X座標符号復号部42の処理に移る。
即ち、X座標符号復号部42は、XA[X]を復号できるかどうかを判定する(ステップ411)。
ここで、XA[X]を復号できると判定すると、X座標符号復号部42は、XA[X]とShiftXからX座標情報を復号する(ステップ412)。また、XA[X]が復号できないと判定された場合は、X座標情報にN/Aを代入する(ステップ413)。
ここで、XA[X]を復号できると判定すると、X座標符号復号部42は、XA[X]とShiftXからX座標情報を復号する(ステップ412)。また、XA[X]が復号できないと判定された場合は、X座標情報にN/Aを代入する(ステップ413)。
尚、ここでは、X座標符号検出部40及びX座標符号復号部42の動作のみ説明したが、Y座標符号検出部45及びY座標符号復号部47も同様の動作を行う。
以上により、本実施の形態における画像処理装置20の動作説明を終了する。
以上により、本実施の形態における画像処理装置20の動作説明を終了する。
次に、本実施の形態における画像処理装置20の具体的なハードウェア構成について説明する。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図20は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図20は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
尚、図13に示した画像読取部21は、例えば、図20の赤外CMOS64にて実現される。また、ドット配列生成部22は、例えば、図20の画像処理部61aにて実現される。更に、図13に示した復号レベル設定部10、ブロック検出部23、同期符号検出部24、識別符号検出部30、識別符号復号部32、X座標符号検出部40、X座標符号復号部42、Y座標符号検出部45、Y座標符号復号部47、情報出力部50は、例えば、図20のデータ処理部61bにて実現される。
また、図20の画像処理部61a又はデータ処理部61bにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ90で実現するものとし、コンピュータ90のハードウェア構成について説明する。
図21は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
図21は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
10…復号レベル設定部、20…画像処理装置、21…画像読取部、22…ドット配列生成部、23…ブロック検出部、24…同期符号検出部、30…識別符号検出部、32…識別符号復号部、40…X座標符号検出部、42…X座標符号復号部、45…Y座標符号検出部、47…Y座標符号復号部、50…情報出力部
Claims (11)
- 媒体及び当該媒体に印刷された文書画像の少なくとも何れか一方の識別情報を誤り訂正符号化して得られた複数のビット列の各々に対応する複数のパターン画像を取得する取得手段と、
前記複数のパターン画像のうちの対応するビット列を特定できないパターン画像である誤りパターン画像を検出する検出手段と、
前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列を特定する特定手段と、
前記特定手段により特定されたビット列を用いて誤り訂正復号を行うことにより前記識別情報を取得できる可能性があっても、前記誤りパターン画像の検出状況に応じて、当該誤り訂正復号を行うかどうかを決定する決定手段と
を備えたことを特徴とする画像処理装置。 - 前記決定手段は、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項1記載の画像処理装置。
- 前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置。
- 前記設定手段は、前記機器が前記媒体に筆記するための状態であるか前記媒体上の所定の位置を指示するための状態であるかを示す状態情報に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置。
- 前記設定手段は、前記機器が接している前記媒体上の領域を特定する情報と、前記媒体上の各領域が筆記用の領域であるか指示用の領域であるかを示す情報との照合結果に基づいて、前記移動する距離の長短を判定することを特徴とする請求項3記載の画像処理装置。
- 前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する設定手段を更に備えたことを特徴とする請求項2記載の画像処理装置。
- 前記特定手段は、前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列として、前記機器が前記媒体に接してから現在までに読み取った対応するパターン画像に基づいて決定されるビット列を採用し、
前記設定手段は、前記機器が前記媒体に接して以降に前記複数のパターン画像を読み取るごとに、前記誤りパターン画像の許容数に対して、当該許容数を増加させる処理及び当該許容数を変えない処理の少なくとも何れか一方を施すことを特徴とする請求項6記載の画像処理装置。 - コンピュータに、
媒体及び当該媒体に印刷された文書画像の少なくとも何れか一方の識別情報を誤り訂正符号化して得られた複数のビット列の各々に対応する複数のパターン画像を取得する機能と、
前記複数のパターン画像のうちの対応するビット列を特定できないパターン画像である誤りパターン画像を検出する機能と、
前記複数のパターン画像のうちの前記誤りパターン画像以外のパターン画像に対応するビット列を特定する機能と、
特定されたビット列を用いて誤り訂正復号を行うことにより前記識別情報を取得できる可能性があっても、前記誤りパターン画像の検出状況に応じて、当該誤り訂正復号を行うかどうかを決定する機能と
を実現させるためのプログラム。 - 前記決定する機能では、前記誤りパターン画像の検出数と予め定められた前記誤りパターン画像の許容数との比較結果に応じて、前記誤り訂正復号を行うかどうかを決定することを特徴とする請求項8記載のプログラム。
- 前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接してから離れるまでに移動する距離に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラム。
- 前記媒体から前記複数のパターン画像を読み取る機器が当該媒体に接して以降に当該複数のパターン画像を読み取った回数に応じて、前記誤りパターン画像の許容数を設定する機能を更に前記コンピュータに実現させるための請求項9記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008016823A JP2009176251A (ja) | 2008-01-28 | 2008-01-28 | 画像処理装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008016823A JP2009176251A (ja) | 2008-01-28 | 2008-01-28 | 画像処理装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009176251A true JP2009176251A (ja) | 2009-08-06 |
Family
ID=41031227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008016823A Withdrawn JP2009176251A (ja) | 2008-01-28 | 2008-01-28 | 画像処理装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009176251A (ja) |
-
2008
- 2008-01-28 JP JP2008016823A patent/JP2009176251A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4198456B2 (ja) | 2次元コードパターン、2次元コードパターンを担持するパターン担持媒体、2次元コードパターンの生成方法、2次元コード読取装置および読取方法 | |
JP4289350B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4207049B2 (ja) | 同定機能付き印刷物、画像生成装置、画像処理装置及びその方法 | |
JP5971098B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP5609469B2 (ja) | 画像処理装置、識別装置、電子筆記具及びプログラム | |
KR20130139225A (ko) | 광학 펜을 이용한 절대 위치와 기타 정보용 도트 코드 패턴, 도트 코드 프린팅 방법, 및 도트 코드 읽는 방법 | |
JP4967823B2 (ja) | 位置検出装置及びプログラム | |
JP4985436B2 (ja) | 位置検出装置及びプログラム | |
US8657205B2 (en) | Image processing apparatus, identification apparatus, method for determining bit sequence and computer readable medium | |
JP2009175845A (ja) | 画像処理装置、ペン・デバイスおよびプログラム | |
JP4973316B2 (ja) | 画像処理装置及びプログラム | |
JP5125548B2 (ja) | 画像処理装置及びプログラム | |
JP5125547B2 (ja) | 画像生成装置、画像処理装置、プログラム、及び印刷媒体 | |
JP5115213B2 (ja) | 画像生成装置、画像処理装置、プログラム、及び印刷媒体 | |
JP2009176251A (ja) | 画像処理装置及びプログラム | |
JP5098441B2 (ja) | 画像処理装置及びプログラム | |
JP2009181341A (ja) | 位置検出装置及びプログラム | |
JP4973317B2 (ja) | 画像処理装置及びプログラム | |
JP2008301120A (ja) | 画像処理装置、画像生成装置、及びプログラム | |
JP5028955B2 (ja) | 画像処理装置及びプログラム | |
JP2009181346A (ja) | 画像処理装置、ペン・デバイスおよびプログラム | |
JP4915211B2 (ja) | 画像生成装置、印刷媒体、及びプログラム | |
JP7109398B2 (ja) | 画像表示媒体、画像処理装置、画像処理方法、及びプログラム | |
JP2008109578A (ja) | 画像生成装置、情報読み取り装置および記録媒体 | |
JP2008301128A (ja) | 画像処理装置、画像生成装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101217 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111004 |