(57)【要約】【課題】誤り訂正に必要となるデータ量を抑えてより多くのデータ領域を確保可能としつつ、高い訂正能力が担保される情報コードを提供することを目的とする。【解決手段】二次元コード１は、複数の情報表示単位セルＣが配列されてなるものであり、所定個数の情報表示単位セルＣによってデータコードワードを表現する複数のデータコードブロック１１と、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロック１２とを備えている。そして、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、且つ、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。【選択図】図１
2011134211.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報表示単位セルがマトリックス状に配列されてなる情報コードであって、
所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、
前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックと、
を備え、
前記データコードワード毎に対応付けて、前記各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、前記誤り検出用パリティのビット数が前記データコードワードのビット数よりも少ないことを特徴とする情報コード。
【請求項２】
前記誤り検出用パリティは、対応付けられた前記データコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されたものであることを特徴とする請求項１に記載の情報コード。
【請求項３】
前記データコードワードが８ビットで表わされ、前記誤り検出用パリティが２ビットで表わされることを特徴とする請求項１又は請求項２に記載の情報コード。
【請求項４】
前記誤り訂正コードワードの数が、前記データコードワードの数の２倍よりも少ないことを特徴とする請求項１から請求項３のいずれか一項に記載の情報コード。
【請求項５】
情報処理装置を用いて請求項１から請求項４のいずれかに記載の前記二次元コードを生成する二次元コード生成方法であって、
コード化すべき解読対象データを取得する取得ステップと、
前記取得ステップで取得した前記解読対象データに基づいて前記各データコードワードを生成する第１生成ステップと、
前記第１生成ステップによって生成された前記各データコードワードに対応する各誤り検出用パリティを生成する第２生成ステップと、
前記第１生成ステップによって生成された前記各データコードワードに対応する前記誤り訂正コードワードを生成する第３生成ステップと、
を備えたことを特徴とする情報コード生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード及び情報コードの生成方法に関するものである。
【背景技術】
【０００２】
従来から用いられているＱＲコード（登録商標）などの二次元コードは、複数のセルがマトリックス状に配置された構成をなしており、コード領域内にデータコードワードを表わした複数のデータコードブロックと、各データコードブロックの誤り訂正に用いる誤り訂正コードワードを表わした複数の誤り訂正コードブロックとが設けられた構成が一般的である。
【０００３】
この種の二次元コードでは、データコードワードとして、例えば、数ビット（例えば８ビット）の情報を一単位としてデータを構成する単位要素を表わしており、また、誤り訂正コードワードとしては、そのデータコードワードの誤り訂正を行うための符号を数ビット（例えば８ビット）の情報で表わしたものなどが用いられている。なお、誤り訂正コードワードとしては、例えば、リードソロモン方式によって誤り訂正を行うための符号（ＲＳ符号）などが広く用いられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２５４０３７公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のような二次元コードを読み取る場合、いずれかのデータコードワードの読み取りが誤っていたとしても、読み取りの初期段階ではその誤り発生位置が特定されていないため、誤り訂正に際し、まず誤りが生じているデータコードワードを特定し、その上で誤りの大きさを求めてその誤りを訂正する必要がある。しかしながら、このように誤り発生位置が特定されていない状態で誤り訂正（いわゆる「検出訂正」）を行う場合、誤り位置が特定された状態で行われる誤り訂正（いわゆる「消失訂正」）と比較して、誤り訂正に必要なデータ（誤り訂正符号）のサイズが大きくなる傾向にあった。
【０００６】
例えば、従来のＱＲコードの方式では、１つのデータコードワードの誤り訂正を、当該データコードワードと同一のビット数からなる２つの誤り訂正コードワード（ＲＳコードワード）を用いて行っている。しかしながら、このような方式で誤り訂正を行う場合、訂正可能なデータコードワードの総数が誤り訂正コードワード（ＲＳコードワード）の総数の半分となってしまうという問題があり、コード領域に記録できるデータ（解読対象データ）のデータサイズも、誤り訂正コードワード（ＲＳコードワード）のデータサイズの半分に制限されてしまうという問題があった。一方、誤り訂正コードワード（ＲＳコードワード）のデータ量を抑えることでデータコードワードのデータ量を大きく確保する方法も考えられるが、この場合、訂正能力が低くなることが避けられない。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、誤り訂正に必要となるデータ量を抑えてより多くのデータ領域を確保可能としつつ、高い訂正能力が担保される情報コードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の発明は、複数の情報表示単位セルが配列されてなる情報コードであって、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックと、を備え、前記データコードワード毎に対応付けて、前記各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、前記誤り検出用パリティのビット数が、前記データコードワードのビット数よりも少ないことを特徴としている。
【０００９】
請求項２の発明は、請求項１に記載の情報コードであって、前記誤り検出用パリティは、対応付けられた前記データコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されたものであることを特徴としている。
【００１０】
請求項３の発明は、請求項１又は請求項２に記載の情報コードであって、  前記データコードワードが８ビットで表わされ、前記誤り検出用パリティが２ビットで表わされることを特徴としている。
【００１１】
請求項４の発明は、請求項１から請求項３のいずれか一項に記載の情報コードであって、前記誤り訂正コードワードの数が、前記データコードワードの数の２倍よりも少ないことを特徴としている。
【００１２】
請求項５の発明は、情報処理装置を用いて請求項１から請求項４のいずれかに記載の前記情報コードを生成する情報コード生成方法であってコード化すべき解読対象データを取得する取得ステップと、前記取得ステップで取得した前記解読対象データに基づいて前記各データコードワードを生成する第１生成ステップと、前記第１生成ステップによって生成された前記各データコードワードに対応する各誤り検出用パリティを生成する第２生成ステップと、前記第１生成ステップによって生成された前記各データコードワードに対応する前記誤り訂正コードワードを生成する第３生成ステップと、を備えたことを特徴としている。
【発明の効果】
【００１３】
請求項１の発明では、所定個数の情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードにおいて、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数が、データコードワードのビット数よりも少なくなっている。このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができる。そして、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【００１４】
請求項２の発明では、誤り検出用パリティが、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロックが全て暗色（例えば黒）で汚れる場合や、全て明色（例えば白）で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【００１５】
請求項３の発明では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている。このようにすると、各データ要素を８ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【００１６】
請求項４の発明では、誤り訂正コードワードの数がデータコードワードの数の２倍よりも少なくなっている。このようにすると、１つのデータコードワードの誤り訂正を２つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【００１７】
請求項５の発明によれば、請求項１から請求項４のいずれか一項に記載の情報コードと同様の効果を奏する情報コードを良好に生成できる。
【図面の簡単な説明】
【００１８】
【図１】図１は、第１実施形態に係る情報コードを概略的に説明する説明図である。
【図２】図２は、データコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。
【図３】図３は、データコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【図４】図４は、第１実施形態に係る情報コードを読み取る光学的情報読取装置を概略的に例示するブロック図である。
【図５】図５は、データコードワードと誤り検出用パリティの組み合わせを複数例示して説明する説明図である。
【発明を実施するための形態】
【００１９】
[第１実施形態]
以下、本発明の情報コードを具現化した第１実施形態について、図面を参照して説明する。
（二次元コードの構成）
まず、図１〜図３を参照して本実施形態に係る情報コードの構成を説明する。
図１は、第１実施形態に係る情報コードを概略的に説明する説明図である。図２は、データコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。図３は、データコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【００２０】
本実施形態に係る情報コード１は、図１に示すように、複数の情報表示単位セル（以下、単に「セル」とも称する）Ｃがマトリックス状に配列されてなるものであり、複数のコードブロック１０と、第１の特定パターン２と、第２の特定パターン３、４と、第３の特定パターン５とを備えた構成をなしている。この情報コード１は、外形が正方形状に構成されたセルＣが集合してマトリックス状に配置されたセル集合体として構成されており、図１の例では、セル数が縦横同数（１１セル×１１セル）となる配列で構成されている。また、情報コード１を構成するコード領域（セルＣが配置される領域）は、外形が矩形状の矩形領域とされており、図１の代表例では外形が正方形状の正方形領域とされている。なお、図１では、一部のセルのみについて符号Ｃを付しており、他のセルの符号は省略している。
【００２１】
情報コード１は、色彩又は濃度又は輝度の異なる複数種類のセルが配列されてなるものであり、図１に示す代表例では、色彩又は濃度又は輝度の異なる２種類のセル（具体的には、黒色セル及び白色セル）が用いられて情報コード１が構成されている。なお、図１等では黒色セルについては符号Ｃｂで示し、白色セルについては符号Ｃｗで示すこととする。
【００２２】
コードブロック１０は、複数のセルＣが集合してなるものであり、図１の情報コード１では、データコードブロック１１と、誤り訂正コードブロック１２とに分けられている。なお、図１では、データコードブロック１１、誤り訂正コードブロック１２、誤り訂正用パリティのブロック１５の領域をそれぞれハッチング、破線枠、網掛けにて概念的に示しているが、これら領域は、具体的には図２のように黒色セルＣｂ或いは白色セルＣｗが配列された構成をなしている。
【００２３】
データコードブロック１１は、例えば図２のような構成をなしており、デコードの対象となるデータの各データ要素を符号化した符号化データ（データコードワード）を複数のセルによって表現したブロックとして構成されている。このデータコードブロック１１を構成する各セルは、予め定められた複数種類のセル（図２の例では黒色セルＣｂと白色セルＣｗの二種類）の中からいずれかの種類のセルが選択されて用いられており、図２の例では、これら複数（図２では８つ）のセルがマトリックス状に集合した構成をなしている。なお、セル配列やブロック形状は図２の構成に限られず、様々な配列、形状とすることができる。また、一部のデータコードブロック１１については２以上の領域に跨って構成されていてもよい。
【００２４】
また、各データコードブロック１１は、全体として、デコードすべき符号化データ（データコード語）に対応したセルの配列で構成されるようになっている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「０」に対して白色セル、データ値「１」に対して黒色セルがそれぞれ対応付けられている。図２の例では、データコードブロック１１によって「００００００１１」という８ビットの値を８つのセルによって表現している。
【００２５】
また、本実施形態では、各データコードブロックを構成する各データコードワードに対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されている。  この誤り検出用パリティのビット数は、データコードワードのビット数よりも少なくされており、図１、図２等に示す代表例では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている（即ち、データコードワードを表現するデータコードブロック１１が８つのセルによって構成されており、誤り検出用パリティを表現するブロック１５が２つのセルによって構成されている）。なお、図１では、データコードブロック１１とそれに対応する誤り検出用パリティの組み合わせを太線枠にて概念的に示している。
【００２６】
誤り訂正コードブロック１２は、各データコードブロック１１にて表現される各データコードワードの誤り訂正に用いるコードブロックであり、例えば各データコードブロック１１に対応して１つずつ設けられている。この誤り訂正コードブロック１２は、対応するデータコードブロック１１のデータコードワードに基づいて所定方式で生成された誤り訂正コードワードを符号化して表現するものであり、誤り訂正コードワードを符号化したデータを複数個のセルＣによって表現している。
【００２７】
本実施形態では、後述する誤り訂正方法により、誤りが生じているデータコードブロック１１を特定した上で、その誤りが生じているデータコードブロック１１に対応する１つの誤り訂正コードブロック１２によって誤り訂正（消失訂正）を行うものとされており、誤り訂正コードブロック１２の内容（即ち誤り訂正コードワード）は、このような消失訂正が可能な構成であれば公知の様々な方式の符号を用いることができる。本実施形態の代表例では、その一例として公知のリード・ソロモン誤り訂正方式を用いており、具体的には、データコードワード毎に各データコードワードと同じビット数でリード・ソロモン符号（ＲＳ符号）が生成され、各データコードワードに対応する各ＲＳ符号をそれぞれ誤り訂正コードブロック１２によって表現している。
【００２８】
（誤り検出用パリティの内容）
次に、本実施形態の特徴をなす誤り検出用パリティについて説明する。
上述したように、情報コード１では、データコードブロック１１毎に、各データコードブロック１１の誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を所定の数（具体的には、例えば誤り検出用パリティのビット数で表現可能な数）で割った剰余の値とされている。
【００２９】
例えば、図１、図２に示すように、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされる場合、検出用パリティで表現可能な数は４であるため、前記「所定の数」として「４」を好適に用いることができる。この場合、例えば、データコードワードの値が「０００００００１」という内容であれば、データコードワードの各ビット値を合計した合計値が「１」であり、これに１を加えた値が２となる。従って、これを「４」で割った値は２であるため、この「２」を２進数で表した値「１０」が誤り検出用パリティとして付されることとなる。同様に、データコードワードの値が「００００００１１」という内容であれば、データコードワードの各ビット値を合計した合計値が「２」であり、これに１を加えた値が３となる。従って、これを「４」で割った値は３であるため、この「３」を２進数で表した値「１１」が誤り検出用パリティとして付されることとなる。また、図３の中段の例でも同様であり、この例ではデータコードワードの値が「００１１１１１」であり、データコードワードの各ビット値を合計した合計値が「５」であり、これに１を加えた値が６となる。従って、これを「４」で割った値は２であるため、この「２」を２進数で表した値「１０」が誤り検出用パリティとして付されることとなる。
【００３０】
また、本実施形態では、データコードワードの各ビット値を合計した合計値に１を加えているが、このような方法を用いることで、誤り検出をより正確に行うことができるようになる。即ち、情報コード１に汚れなどが生じて誤りが発生する場合、いずれかのデータコードブロック１１の全てのセルＣが暗色に汚れたり、全てのセルＣが明色に汚れる場合が多い。この場合、データコードワードが「００００００００」となるため、データコードワードの各ビット値を合計した合計値そのものを誤り検出用パリティとすると「００」となって整合がとれてしまい、誤りが検出できなくなってしまう。これに対し、本実施形態では、データコードワードの各ビット値を合計した合計値に１を加えた値を誤り検出用パリティとしているため、上述のように全てのセルＣが明色に汚れたとしても、整合がとれにくくなる。
【００３１】
なお、上記実施形態では、８ビットのデータコードワードに対して２ビットの誤り検出用パリティを割り当てる構成を例示したが、図３上段のように、８ビットのデータコードワードに対して１ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「２」であるため、前記「所定の数」として「２」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を「２」で割った剰余の値とすることができる。例えば、図３上段のような「０００１１１１１」という８ビットのデータコードワードの場合、各ビットの合計値が「５」であり、これに１を加えた値が「６」であるため、この「６」を前記「所定の数」である「２」で割った値（即ち、「０」）を誤り検出用パリティとすることができる。この場合、データコードワードの各ビット値を合計した合計値に１を加えた値が偶数なら誤り検出用パリティは「０」となり、奇数なら誤り検出用パリティは「１」となる。
【００３２】
或いは、図３下段のように、８ビットのデータコードワードに対して３ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「８」であるため、前記「所定の数」として「８」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を「８」で割った剰余の値とすることができる。例えば、図３下段のような「０００１１１１１」という８ビットのデータコードワードの場合、各ビットの合計値が「５」であり、これに１を加えた値が「６」であるため、この「６」を前記「所定の数」である「８」で割った値（即ち、「６」）を３ビットの２進数で表した値「１１０」を誤り検出用パリティとすることができる。
【００３３】
（情報コードの作成方法）
上記情報コード１は、例えば、ＣＰＵ、メモリ、入力装置（マウス、キーボード）、通信部（ＬＡＮインターフェース等）などを備えた情報処理装置（パーソナルコンピュータなど）を用いて以下のような方法で作成することができる。
【００３４】
まず、上記情報処理装置において、コード化すべき解読対象データを取得する取得ステップを行う。この取得ステップでは、例えば、キーボードからの入力、通信部を介した外部入力、或いは情報処理装置に既に記憶されているデータを読み出す等の方法によってコード化すべきデータを取得する。
【００３５】
そして、その取得ステップで取得した解読対象データに基づいて各データコードワードを生成する第１生成ステップを行う。この第１生成ステップでは、解読対象データを構成する各データ要素（例えば、各文字、各数字等）を予め規定された方式に従って符号化する。本実施形態では、各データコードワードはバイナリデータで生成される。
【００３６】
その後、第１生成ステップで生成された各データコードワードに対応する各誤り検出用パリティを生成する第２生成ステップを行う。この第２生成ステップでは、各データコードワードに対応する各誤り検出用パリティを上述の方法で生成する。なお、誤り検出用パリティもバイナリデータで生成される。更に、各データコードワードに対応する誤り訂正コードワードを規定の方式（例えばリード・ソロモン方式）で生成する第３生成ステップを行う。本実施形態では、誤り訂正コードワードもバイナリデータで生成されることとなる。そして、このように生成された各データコードワード、各誤り検出用パリティ、各誤り訂正コードワードについてのそれぞれのバイナリデータを黒色セル及び白色セルで表現し、これらを例えば図１のような規定のフォーマットに従い、規定された順序で配置することで情報コード１の描画データを取得する。なお、このような描画データは印刷装置などによって印刷して用いてもよく、携帯端末などの表示装置に表示して用いてもよい。
【００３７】
（情報コードの読取例）
次に、本実施形態に係る情報コード１の読取例について概説する。
本実施形態に係る情報コード１は、例えば図４に示すような光学的情報読取装置２０で読み取ることができる。図４に示す光学的情報読取装置２０は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。
【００３８】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、ＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ハウジングの読取口（図４では図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒは、例えば、包装容器や包装用紙あるいはラベルといった表示媒体に相当するもので、本実施形態に係る情報コード１は、このような読取対象物Ｒに、印刷或いはダイレクトマーキング等によって形成されている。
【００３９】
受光センサ２３は、読取対象物Ｒや情報コード１に照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能にプリント配線板（図示略）に実装されている。また、フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【００４０】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０およびメモリ３５と中心に構成されるもので、前述した光学系によって撮像された情報コード１の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該光学的情報読取装置２０の全体システムに関する制御も行っている。
【００４１】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００４２】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００４３】
制御回路４０は、光学的情報読取装置２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０は、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等が制御回路４０に接続されている。なお、通信インタフェース４８には、当該光学的情報読取装置２０の上位システムに相当するホストコンピュータＨＳＴ等が接続される。また、電源系は、電源スイッチ４１、電池４９等によって構成されており、制御回路４０による電源スイッチ４１のオンオフ制御により、電池４９から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
【００４４】
このように構成される光学的情報読取装置２０では、以下のように読取処理が行われる。
読取処理は、例えば作業者が所定操作（例えば、操作スイッチ４２のオン操作）を行うことで開始され、まず上記情報コード１を撮像する処理を行う。この撮像処理では、上記情報コード１の画像を含んだ画像データが取得され、メモリ３５に記憶される。
【００４５】
その後、その画像データにおいて、コード領域の位置及び向きを特定すると共にコード領域に含まれる各セルの位置を特定し、そのコード領域（矩形領域）に基づいてデコード処理を行う。本実施形態では、例えば光学的情報読取装置２０の内部に情報コード１のフォーマットが登録されており、そのフォーマットに従って、各データコードブロック１に記録される各データコードワードを解読する。
【００４６】
各データコードワードを解読する際には、対応する誤り検出用パリティを参照しており、データコードワードとの整合性がとれているか（即ち、認識されたデータコードワードの値に基づいて上記生成方法で誤り検出用パリティを生成した場合に、認識された誤り検出用パリティの値と一致するか）を判断する。この判断処理において整合がとれていると判断される場合には当該データコードブロック１１のデータコードワードを正常なコードワードとして出力対象とする。一方、整合がとれていないと判断される場合には、そのデータコードブロック１１のデータコードワードをエラーコードワードとして扱い、当該データコードブロック１１に対応する誤り訂正コードブロック１２のコードワード（ＲＳコードワード）を用いて消失訂正を行う。
【００４７】
（本実施形態の主な効果）
本実施形態に係る情報コード１は、所定個数の情報表示単位セルＣによってデータコードワードを表現する複数のデータコードブロック１１と、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロック１２とを備えており、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されている。そして、誤り検出用パリティのビット数が、データコードワードのビット数よりも少なくなっている。このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードの読み取りに誤りが生じているか否かを検出することができる。そして、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【００４８】
上記効果は、図５のような説明図で具体的に説明することもできる。図５の例では、データコードワードの正しい値（正解値）が「０００００００１」であり、誤り検出用パリティ（以下、パリティとも称する）の正しい値（正解値）が「１０」のときの誤りパターンを列挙して例示すものである。なお、パターン１は、データコードワード及び誤り検出用パリティがいずれも正しい値（正解値）を示すパターンである。例えば、パターン２は、データコードワードが正しい値（正解値）が「０００００００１」であり、パリティが誤っている例であるが、この場合、データコードワードが正しいのに誤りと判断してしまうことになる。この場合、当該データコードワードに誤りが生じているものとして消失訂正を行うことになる。
【００４９】
一方、パターン３は、データコードワードが「００００００１１」と誤って認識され、パリティが「１０」と正確に認識された例である。このケースでは、誤って認識されたデータコードワードによってビット合計に１を加えた値が２＋１＝３となっており、他方、パリティが２を示しているため不一致となり誤りを検出することができる。従って、当該データコードワードに対応する１つの誤り訂正コードブロック１２を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に２つの誤り訂正コードブロックを用いているため、このパターン３では、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【００５０】
また、パターン４は、データコードワードが「０００１１１１１」と誤って認識され、パリティが「１１」と誤って認識された例である。この例では、パリティが誤って認識されているが、データコードワードとパリティとの整合性が取れず誤りが検出されることとなる。従って、当該データコードワードに対応する１つの誤り訂正コードブロック１２を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に２つの誤り訂正コードブロックを用いて誤り訂正を行うため、このパターン４でも、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【００５１】
なお、パターン２ではデータコードワードは正しいがパリティによって誤りと判断され、使わなくてもよい誤り訂正コードワードを１つ使用している。しかし、このパターン２は、データコードワードが誤らずにパリティのみが誤るケースであるため、データコードワードの長さとパリティの長さ（この例の場合８：２）を考慮するとパターン２が生じる確率は極めて低いといえる。
【００５２】
また、本実施形態に係る情報コード１では、誤り検出用パリティが、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロック１１が全て暗色（例えば黒）で汚れる場合や、全て明色（例えば白）で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【００５３】
また、本実施形態に係る情報コード１では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている。このようにすると、各データ要素を８ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【００５４】
また、本実施形態に係る情報コード１では、誤り訂正コードワードの数がデータコードワードの数の２倍よりも少なくなっている。このようにすると、１つのデータコードワードの誤り訂正を２つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【００５５】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００５６】
上記実施形態では、情報コードの例として１１行１１列で配列された情報コードを例示したが、セルの配列はこれに限られず、行数を増減してもよく、列数を増減してもよい。
【００５７】
上記実施形態では、データコードブロック１１、誤り訂正コードブロック１２、誤り検出用パリティのブロックをいずれも２種類のセルによって表現する例を示したが、これらを３種類以上のセルによって表現するような情報コードであってもよい。
【００５８】
上記実施形態では、データコードワード及び誤り訂正コードワードをいずれも８ビットの２進データで構成し、誤り訂正用パリティを２ビットの２進データで構成した例を示したが、これらいずれか又は全てのビット数を変更してもよい。例えば、誤り訂正用パリティを上述したように１ビット或いは３ビット以上の２進データで構成してもよい。或いは、データコードワード及び誤り訂正コードワードを８ビットよりも大きい２進データ（例えば１６ビットの２進データ）で構成してもよい。
【００５９】
上記実施形態では、各データコードブロック１１に対して１つの誤り訂正コードブロック１２を割り当てた構成を例示したが、いずれかのデータコードブロック１１（例えば重要視するデータコードブロック）については２つの誤り訂正コードブロックを割り当て、他のデータコードブロック１１については上記実施形態と同様に１つの誤り訂正コードブロックを割り当てるようにしてもよい。この場合、前記いずれかのデータコードブロック１１については、当該データコードブロック１１に誤りが生じた場合に誤り検出用パリティを用いて誤りの検出を試み、誤りが検出された場合に消失訂正を行うことができる。他方、誤りが検出できなかった場合には、２つの誤り訂正コードブロックを用いて「検出訂正」を行うことができるようになる。従って、特定のデータコードブロックの誤り訂正レベルを高めることができる。
【符号の説明】
【００６０】
１…情報コード
１１…データコードブロック
１２…誤り訂正コードブロック
Ｃ…情報表示単位セル
【図１】
2011134211.tif 000003
【図２】
2011134211.tif 000004
【図３】
2011134211.tif 000005
【図４】
2011134211.tif 000006
【図５】
2011134211.tif 000007