JP2015232873A - 二次元コード、二次元コードの解析システム及び二次元コードの作成システム - Google Patents

二次元コード、二次元コードの解析システム及び二次元コードの作成システム Download PDF

Info

Publication number
JP2015232873A
JP2015232873A JP2015084511A JP2015084511A JP2015232873A JP 2015232873 A JP2015232873 A JP 2015232873A JP 2015084511 A JP2015084511 A JP 2015084511A JP 2015084511 A JP2015084511 A JP 2015084511A JP 2015232873 A JP2015232873 A JP 2015232873A
Authority
JP
Japan
Prior art keywords
data
dimensional code
basic pattern
position detection
pattern portion
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.)
Granted
Application number
JP2015084511A
Other languages
English (en)
Other versions
JP6521709B2 (ja
Inventor
豊 細金
Yutaka Hosogane
豊 細金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyodo Printing Co Ltd
Original Assignee
Kyodo Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kyodo Printing Co Ltd filed Critical Kyodo Printing Co Ltd
Priority to JP2015084511A priority Critical patent/JP6521709B2/ja
Publication of JP2015232873A publication Critical patent/JP2015232873A/ja
Application granted granted Critical
Publication of JP6521709B2 publication Critical patent/JP6521709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

【課題】機能性の高い二次元コードを、データ効率の低下を抑制して実現することを目的とする。【解決手段】二進コードで表されるスペックデータおよび実データをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、前記二次元コードは位置検出パターンを含む基本パターン部を備え、前記基本パターン部はセル位置を特定するための位置検出パターンと、前記二次元コードの基本パターン部以外のセルの配置を決定するスペックデータと、前記二次元コードに記録するメッセージを符号化した実データを備え、前記スペックデータの記録量を任意に設定可能であることを特徴とする二次元コード。【選択図】図1

Description

本発明は、二次元コード、二次元コードの解析システム及び二次元コードの作成システムに関する。
二次元コードは、一次元コードと比較して、狭い面積に多くの情報を持つことができ、物品管理や、携帯電話を用いたウェブ誘導など、様々な用途で広く活用されている。二次元コードには、保持するデータ量によりコードの大きさを可変にできるものが知られている。このような二次元コードを解析する際には、事前にコードの大きさ、向きなどが不明なことが多く、二次元コードの撮影画像からこれら情報を判別することとなる。
二次元コードは、撮影された画像の位置関係を検出するため、所定形状の位置検出パターンを有する。位置検出パターンは、二次元コード内で、単独で他の部分と容易に区別可能な形状を有する。解析時は、撮影した二次元コードの画像において、位置検出パターンを検出し、位置検出パターンの位置関係に基づいて変換を行う。位置検出パターンの検出は、解析の基礎となる処理であり、認識精度や、解析時間への影響が大きい。よって、二次元コードにとって、位置検出パターンの形状は、重要な要素である。
位置検出パターンの認識方法は、大きく2種類に分けられ、1つの方法は1つの位置検出パターンで認識する方法であり、別の方法は複数の位置検出パターンの組み合わせで認識する方法である。前者の二次元コードは、二次元コードの中心に配置された1個の位置検出パターンを有する主に特許文献1に記載されたコード(アズテックコード)が知られている。後者の二次元コードは、長方形または正方形の形状を有し、4つのコーナーに配置された3個の位置検出パターンを有する主に特許文献2に記載されたコード(QRコード(登録商標))が知られている。
また、二次元コードに求められるニーズとして、コードのサイズを指定するバージョン情報や、誤り訂正レベルの選択や、コード内の任意の場所への任意な絵柄の埋込や、自由度の高いコード形状の選択など、コードの用途に応じて柔軟に機能の追加を可能にする、などがある。
コード内へ任意な絵柄の埋込が可能になれば、例えば、雑誌やポスターなどでスマートフォンを使って関係するウェブサイトに誘導する際に、二次元コード内に大きくキャラクターを入れるなどのデザイン性の高い二次元コードを提供できる。また、物品管理では、オペレーターがリーダーを使わなくてもコードの内容を外観から判別できるように、コード内に文字を印字することが可能となる。
また、柔軟な形状変化では、例えば、正方形以外にも、細長いコードが可能になれば、フォルダの背に印字するなど、印刷物の限られたスペースの中で、最適なコードの形状を選択できるようになり、二次元コードの活用の幅が広がる。形状に自由度がある二次元コードは、コード内のデータ配置が一定ではないため、データの配置に関する情報を、解析時にコードから読み取る必要がある。
米国特許第5591956号明細書 特開平7−254037号公報
上記の機能性の高い二次元コードを実現するには、解析時に二次元コードからデータ配置等に関するスペックデータを読み取り、スペックデータを利用して二次元コード内のデータの配置を知る必要がある。
特許文献1のコード(アズテックコード)の場合、例えば解析時にモードメッセージを読み取り、二次元コード内のデータの配置を決定している。特許文献2(QRコード(登録商標)))の場合、例えば、解析時に型番情報(バージョン情報)や形式情報(フォーマット情報)を読み取り、二次元コード内のデータ配置や、誤り訂正レベルの決定をしている。
しかし、これらのコードは、これらのスペックデータを、コード内の固定の領域に固定のデータとして設ける必要がある。コード全体のデータ格納効率を下げないために、スペックデータの記録領域は固定の小領域であった。
スペックデータで表す機能の種類および各機能の変化数が増加すると、それに応じてスペックデータのデータ量が増加することになる。例えば、17〜32の変化数を表すには5ビットが必要であり、このような機能が6種類あるような場合には、合計30ビットが必要となる。これらのデータについて誤り訂正を行う必要があり、さらに冗長性を向上するような構成にすれば、スペックデータのデータ量はさらに増大する。そのため、二次元コードが有する記録領域に占めるスペックデータを表すための領域の割合が増加する。特に、小さなサイズの二次元コードでは、記録領域が狭いため、スペックデータの割合が大きくなる。従って、従来技術では、スペックデータを表すために大きな領域を確保しておくことが難しかった。
本発明の二次元コードは、これらの課題を解決するものである。
なお、二次元コードとしてセルの色から情報を読み取るカラーコードが提案されており、その場合、複数の位置検出パターンを、同じ形状であるが、異なる色にし、位置検出パターンを特定することが考えられる。しかし、大多数のコード発行プリンターはモノクロプリンターであり、プリンターやインキの状態、照明を含む外部環境に影響を受けやすいことから、精度に懸念が有る。ここでは、モノクロの二次元コードを例として説明を行う。
請求項1の発明では、二進コードで表されるスペックデータおよび実データをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、上記二次元コードは位置検出パターンを含む基本パターン部を備え、上記基本パターン部はセル位置を特定するための上記位置検出パターンと、上記二次元コードの上記基本パターン部以外のセルの配置を決定するスペックデータと、上記二次元コードに記録するメッセージを符号化した実データを備え、上記スペックデータの記録量を任意に設定可能であることを特徴とする二次元コードである。
請求項2の発明は、上記基本パターン部において、上記スペックデータと上記実データを結合させたビット列が固定長で記録されていることを特徴とする請求項1記載の二次元コードである。
請求項3の発明では、上記基本パターン部は、複数個の上記位置検出パターンを有し、上記基本パターン部の周囲に配置される、実データを記録可能な周辺部を備えることを特徴とする請求項1から2いずれか1項に記載の二次元コードである。
請求項4の発明では、上記スペックデータの記録量は、上記二次元コードのサイズを示すバージョン情報に応じて増減することを特徴とする請求項3記載の二次元コードである。
請求項5の発明では、上記スペックデータは、所定の外形からの変化の有無を示すフラグデータを含むことを特徴とする請求項3から4のいずれか1項に記載の二次元コードである。
請求項6の発明では、上記スペックデータは、空白情報を含むことを特徴とする請求項3から5いずれか1項に記載の二次元コードである。
請求項7の発明では、上記スペックデータは、基本パターン部移動情報を含むことを特徴とする請求項3から6いずれか1項に記載の二次元コードである。
請求項8の発明では、上記位置検出パターンは、4個以上の異なる位置検出パターンであることを特徴とする請求項1から7のいずれか1項に記載の二次元コードである。
請求項9の発明では、上記基本パターン部は、3個以上の異なる上記位置検出パターン、及び位置補正パターンを有する上記ことを特徴とする請求項1から7のいずれか1項に記載の二次元コードである。
請求項10の発明では、二進コードで表される二次元コードのセルの配置を決定するスペックデータおよびメッセージを符号化した実データをセル化して、二次元のマトリックス状にパターンとして配置し、位置検出パターンを設けた基本パターン部を備える二次元コードを解析する二次元コードの解析システムであって、上記位置検出パターンの位置関係に基づいて上記基本パターン部の座標を変換して、上記スペックデータを検出するスペックデータ情報検出手段と、上記スペックデータの検出結果に基づいて、上記基本パターン部の上記スペックデータと上記実データの境界を識別して、上記実データを解析する実データ解析手段と、を備えることを特徴とする二次元コードの解析システムである。
請求項11の発明では、上記実データ解析手段は、上記基本パターン部の周囲に上記実データが記録された周辺部が存在する場合は、上記周辺部の上記実データも解析することを特徴とする請求項10に記載の二次元コード解析システムである。
請求項12の発明では、二進コードで表される二次元コードのセルの配置を決定するスペックデータおよびメッセージを符号化した実データをセル化して、二次元のマトリックス状にパターンとして配置し、位置検出パターンを設けた基本パターン部を備える二次元コードの作成システムであって、上記実データを作成する手段と、上記スペックデータを作成する手段と、上記スペックデータのデータ量に応じて、上記実データの記録を開始する位置を決定する手段と、上記基本パターン部に上記スペックデータを配置し、上記スペックデータを配置した後の上記基本パターン部に残余部分がある場合には、上記実データを上記残余部分に配置する配置手段と、を備えることを特徴とする二次元コードの作成システムである。
請求項13の発明では、上記配置手段は、上記基本パターン部の残余部分に上記実データの全てが配置できない場合には、上記基本パターン部の周囲の周辺部に残りの上記実データを配置することを特徴とする請求項12に記載の二次元コード作成システムである。
上述した課題を解決した二次元コードを実現することが可能となった。
図1は、第1実施形態の二次元コードの構成を示す図である。 図2は、二次元コードに記録されるデータの構成を示す図であり、(A)がデータ構成例を、(B)が実データの構成例を示す。 図3は、第1実施形態の二次元コードのデータ配置の一例を示す図であり、(A)が全体構成を、(B)が一部分を拡大したブロックおよび分離パターンを示す。 図4は、第1実施形態の二次元コードの変形例を示す図である。 図5は、第2実施形態を示す図である。 図6は、第2実施形態の二次元コードのデータ配置の一例を示す図である。 図7は、第2実施形態の別例を示す図である。 図8は、第2実施形態の別例を示す図である。 図9は、二次元コードのバージョン情報に応じた変化を説明する図である。 図10は、バージョン情報のビット列を示す図であり、各バージョンと、それを表すビット数と、ビット列と、を示す。 図11は、第1実施形態の二次元コードの1例を示す図である。 図12は、第2実施形態の1例を示す図である。 図13は、第2実施形態の1例を示す図である。 図14は、空白領域を設けた第2実施形態の二次元コードの1例を示す図である。 図15は、バージョン横3×縦3の二次元コードで、基本パターン部が移動しない第2実施形態の二次元コードの1例を示す図である。 図16は、周辺部を含む二次元コードに対して基本パターン部を中心から移動した第2実施形態の二次元コードの1例を示す図である。 図17は、横方向について、基本パターン部の位置を基本パターン部移動量情報でどのように表すか説明する図である。 図18は、バージョン横19×縦19の二次元コードにおいて、基本パターン部11を移動させた例を示す図である。 図19は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図である。 図20は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。 図21は、実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。 図22は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。 図23は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。
図1は、第1実施形態の二次元コードの構成を示す図である。
第1実施形態の二次元コード10は、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであり、一定形状の基本パターン部11を有する。基本パターン部11は、セル位置を特定するための位置検出パターン12A−12Dと、スペックデータと実データからなる結合データ、を含み、スペックデータは、後述する周辺部のサイズを決定するバージョン情報を含む。結合データを表すデータ構造は、スペックデータと実データの区切りが明確である構造とする。
図1において、基本パターン部11内の位置検出パターン12A−12Dを除く領域、すなわち、参照番号13で示す領域は結合データの記録領域である。領域13には、スペックデータと実データからなる結合データが記録される。領域13には、さらに位置補正パターンおよび後述する分離パターンが必要により設けられる。また、領域13には、結合データの誤り訂正を行う基本パターン部訂正データも記録される。スペックデータは、領域13内の所定の位置に記録される。
結合データは、基本パターン部に記録される、スペックデータと実データを合わせたものである。結合データは、後述する周辺部20の実データを含まない。基本パターン部誤り訂正データは、領域13で表される所定のデータ量を訂正する情報を有する。
スペックデータのデータ量は、周辺部のサイズを決定するバージョン情報や、二次元コード10における基本パターン部11の位置情報、空白に関する情報など二次元コードの外形に影響する情報の組み合わせパターン数や、周辺部の誤り訂正のレベル情報のデータ量に応じて増減する。しかし、スペックデータのデータ量の変化量は、データ領域13に記録できる範囲内である。領域13の内、スペックデータを記録した残りの部分に実データが記録される。つまり、結合データのスペックデータの記録量を任意に設定可能であることから、基本パターン部11内に記録可能な実データのデータ量は、スペックデータのデータ量に応じて増減する。第1実施形態は、後述するバージョン情報が周辺部には存在しないことを示している(バージョン横1×縦1)実施形態である。
図2は、二次元コード10に記録されるデータの構成を示す図であり、(A)が二次元コードのデータ構成例を、(B)が実データの構成例を示す。
図2の(A)に示すように、スペックデータはすべて基本パターン部11内に記憶され、実データは基本パターン部11内の残余部分に記録され、基本パターン部に納まりきらない場合には、後述する基本パターン部の周囲に形成される周辺部に記録される。スペックデータのデータ量は増減するため、基本パターン部11内のスペックデータと実データの境界は、スペックデータのデータ量に応じて変化する。基本パターン部11内に記録されるスペックデータと実データは、スペックデータのバイナリ列と実データのバイナリ列を結合させたデータビット列である結合データとして記録される。また、基本パターン部11内のデータ領域13をブロックに分割する場合、スペックデータと実データの境界がブロック内に存在する場合が起こり得る。
スペックデータは、周辺部におけるデータの配置に関する情報を表すデータである。スペックデータは、周辺部の形状を選択するスタイル情報、周辺部のサイズを決定する縦・横のバージョン情報、周辺部の誤り訂正データの量が可変であれば周辺部誤り訂正レベル情報、周辺部実データを配置しないブロックを決定する空白情報(データとして機能しないブロックの情報)、および基本パターン部移動情報等を有する。
スペックデータは、二次元コードの仕様を表すデータだが、基本パターン部11が常に一定形状である場合、実質的に周辺部20のスペックを定義するものとみなすことができる。ここで、一定形状とは、寸法及び形状が固定されている意味である。
スペックデータは、発行する二次元コード10によりデータ量が増減し、周辺部に記録するデータ量およびデータ配置に影響する情報を有する。一方で、スペックデータは、データ量が変化するが、基本パターン部11におけるスペックデータ内の情報はあらかじめ定められたで順に配置して記録される。基本パターン部11のデータ領域13の残余部分に実データが記録される。
特許文献2等に記載があるQRコード(登録商標)では、撮影画像から、位置検出パターンの画素数と、位置検出パターン同士の距離の画素数と、を計測し、そこからスペックデータであるバージョン情報を算出することも可能である。これを、QRコード(登録商標)の規格(JIS X 0510:2004)によれば、参照復号アルゴリズムにおいて、仮のシンボル型番の求め方として、記載されている。このバージョン情報は、撮影画像の二次元コードの形状から算出しており、コードを斜め上から撮影した場合や、インキが滲んだ場合などでは、誤差が発生する。二次元コードには過酷な環境下での撮影や、劣悪な印字での認識も求められるため、この誤差を生じさせないために、バージョン情報を、読み取りに必要な冗長性とともに、二次元コードにデータとして持つことが望ましい。
図2の(B)に示すように、実データは、メッセージおよびメッセージを修飾するヘッダー(メッセージ種類(メッセージのエンコード)・メッセージサイズ)を合わせたセグメントを、メッセージ数だけ並べる。メッセージは、ユーザーが二次元コードに格納するデータのことであり、複数のメッセージを格納でき、メッセージごとにセグメントを付与する。また、特殊なセグメントとして、メッセージを含まない、終端フラグだけが入ったセグメントを用意し、実データの容量が余った場合に終端フラグのセグメントを配置し、その後に埋め草を配置する。したがって、終端フラグは、メッセージの有無を示し、最後のセグメントの終端フラグはtrueであり、それ以外のセグメントの終端フラグはfalseである。
図2(A)に示す、スペックデータと、実データは、1ブロック当たりのデータ容量に従い、ブロック単位に分割される。同様に誤り訂正データも、ブロック単位に分割する。
データには誤り訂正データが付される。誤り訂正データにリードソロモン符号を使った場合、誤り訂正はワード単位で行われるため、1ワードを1ブロックとすることが望ましい。1ワードが複数のブロックにまたがる場合、1つのブロックに汚れが発生した場合でも、そのブロックが関係する全てのワードが誤り訂正の対象となり、訂正の効率が悪くなる。訂正原因となる汚れや、スポットライトによる色とびは、1箇所に集中することが多いが、1ワードを1ブロックにすることにより同時に訂正対象となるデータを1箇所にまとめる効果があり、効率的な訂正を可能にし、コードを認識させる可能性を高める。
ここで、スペックデータについてさらに説明する。スペックデータのデータ量は、周辺部の大きさを決定するバージョン情報により増減させることができる。すなわち、周辺部が小さい、もしくは存在しない場合には基本パターン部内のスペックデータの量を少なくし、周辺部が大きい場合には基本パターン部内のスペックデータの量を多くすることで、コードの情報量にあわせてスペックデータのデータ量を増減させることが可能である。従来例のようなスペックデータのデータ量を固定した場合、コードのサイズが小さい場合に、コードの面積当たりのスペックデータのデータ量が占める割合が大きくなるという課題もあったが、本実施形態ではこの問題を解決可能である。
上記のように、スペックデータは、バージョン情報を含み、バージョン情報に基づいて二次元コードの大きさ(サイズ)が決定される。例えば、バージョン情報として、コードの横のサイズを表す横バージョン情報と、コードの縦のサイズを表す縦バージョン情報という2種類のデータがあれば、コードは任意のサイズの長方形となる。バージョン情報の詳細については後述する。
図3は、第1実施形態の二次元コードの構成の一例を示す図であり、(A)が全体構成を、(B)が一部分を拡大したブロックおよび分離パターンを示す。
第1実施形態の二次元コード10は、図3の(B)に示すように、この例では、1ブロックは横3×縦3セルを含み、分離スペース16は1セルの幅を有する。基本パターン部11は、破線で囲った横7×縦7ブロック(横27×縦27セル)のサイズで、4つのコーナーに位置検出パターン12A−12Dが配置される。基本パターン部11の位置検出パターン12A−12D以外の領域が、基本パターン部11の記録領域13である。領域13のうち、基本パターン部11の上側の横7×縦3ブロックの位置検出パターン12Bおよび12D以外の領域14のブロックA1−A11が、結合データを記録するブロックであり、基本パターン部11の下側の横7×縦4ブロックの位置検出パターン12Aおよび12C以外の領域のブロックB1−B12が、基本パターン部11の領域13に記録される、結合データの誤り訂正を行う基本パターン部誤り訂正データ(ワード)を記録する領域である。
ブロックは横3×縦3セルとするが、これが長方形でも、可変でも構わない。
また、セルの形状を正方形としているが、これに限られるものではない。
さらに、図3の二次元コード10では、各ブロックは分離パターン16で分離されているため、4個の位置検出パターン12A−12Dは、いずれもブロックより大きな面積を有する。これにより、位置検出パターンと同じパターンが、二次元コード中に出現することはなくなり、位置検出パターンの識別が容易になる。さらに、各ブロック15は分離スペース16により分離されているため、特に撮影画像にぼけ・ぶれがある場合の、各ブロック15におけるセルの明暗の判定精度が向上する。
図3の二次元コード10の領域13において、ブロック18は位置補正パターンである。位置補正パターン18は、ブロック18の9個のセルがすべて暗であるが、位置補正パターン18の形状はこれに限定されるものではなく、位置補正パターンとして識別できるものであればよい。
位置補正パターン18は、基本パターン部の中心ブロックを(CX,CY)とした時に、(CX+7N,CY+7M)(N,Mは整数、ただし、コードをはみ出ない)のブロックに設けることが望ましい。二次元コード10の領域を外れた部分には、位置補正ブロックを配置しない。また、位置補正パターン18は、空白ブロックに重なる場合、位置検出パターンと重なる場合も配置しない。図3では、N=M=0である位置補正パターン18を1ブロックのみに設けている。
位置補正パターンを含むと冗長性が高まり、認識精度向上が期待できる。位置検出パターン12A−12Dの1つが汚れにより見つけられなかった場合、認識出来た位置検出パターン3個から位置補正パターン18の位置を推測し、これを見つける。この位置検出パターン3個と位置補正パターン1個より、4個の点の組をパラメータとする二次元空間の射影変換より、二次元コード10の各セルの計算精度が高まる。このように、図3の二次元コード10は、位置補正パターン18を設けることにより、二次元コード10におけるセル位置検出の精度が一層高まる。
位置検出パターンの配置には他にも各種の組合せが考えられる。位置検出パターンと位置補正パターンの合計が5個で、位置検出パターンが3個以下の組合せについては、いずれも、4個の位置検出パターンと1個の位置補正パターンの組合せより、汚れなどへの耐性が弱くなるが、認識は可能である。
位置検出パターンと、位置補正パターンは、セルの座標を特定するために使われるが、役割が異なる。位置検出パターンは、解析時に、位置検出パターンは独立して識別でき、コードの内外で同じ形状があらわれないことが望ましい。誤った位置検出パターンを検出した場合、二次元コードであるか否かを判別する必要があり、解析に時間がかかってしまう。また、識別に時間がかかる、複雑な形状や、コードの他の部分と分離困難な形状でないことが望ましい。
一方で、位置補正パターンの検出は、位置検出パターンにより二次元コードの位置を特定した後に行われる。位置補正パターンの場所もおおよそわかっている状態で、ある一定範囲を探索することで、位置補正パターンを見つける。位置補正パターンにより、セルの座標の計算の精度を高め、二次元コードが曲がり、セルが非均一になった場合にも認識できる可能性を高めることが可能となる。
図4は、第1実施形態の二次元コードの変形例を示す図である。このように、位置検出パターンの個数は1個でも構わない。ただし、位置検出パターンが1つの場合は、図4のような方向が一意に決定できる位置検出パターン52とする必要がある。
図5は、第2実施形態を示す図である。第2実施形態は第1実施形態と比較し、基本パターン部の周囲に周辺部20が設けられている点が異なる。スペックデータの増加や、実データの増加により、実データが基本パターン部に記録しきらない場合は、その実データを周辺部20に記録する。
図5の(A)は、正方形の基本パターン部11を有する例を示す。図5の(B)は、二次元コード10が、図5の(A)に比べて縦長の基本パターン部11を有し、さらに周辺部20を有する例を示す。基本パターン部11は、形状(正方形、長方形)、サイズなどは任意に設計可能である。
図5の(C)は、基本パターン部11において、位置検出パターン12A−12Dが、基本パターン部11の境界から離れた内側、言い換えれば、コーナーでない位置に設けられている例を示す。図5の(C)に示すように、位置検出パターン12A−12Dは、基本パターン部11のコーナーや、境界に沿って設けられる必要はない。
図6は、第2実施形態の二次元コードのデータ配置の一例を示す図である。第1実施形態の二次元コードのデータ配置を示した図3と比較し、実データ記録ブロック19が存在する点が異なる。
図7および図8は、第2実施形態の別例を示す図である。第1実施形態と同様に、位置検出パターンの個数は1個でも構わない。なお、図4と同様に、位置検出パターンの回転方向を一意に特定できるパターンであれば、位置補正パターン38等の配置は必須ではない。
なお、第2実施形態のコードは、位置検出パターンを複数とした場合、複数の二次元コードを一括認識する際に優位である。複数の二次元コードを一括して認識する場合、1つの撮影画像内に複数の二次元コードの複数の位置検出パターンが写り込むことになる。例えば、正方形(長方形)の二次元コードで、複数個(3個以上)の位置検出パターンを二次元コードの四隅に配置した場合、同じような位置検出パターンが多数画像内に存在することになり、正しい位置検出パターンの組み合わせの絞り込みが困難となる。
この場合の解析処理として、位置検出パターンの組み合わせの絞り込みを容易とすれば、処理時間が短くなる。第2実施形態のようにコードのサイズを変化させても、常に基本パターン部のサイズを固定することで、同一の二次元コード内の位置検出パターン同士の距離は固定である上、バージョンが高く周辺部20のサイズが大きい場合には、他の二次元コードの位置検出パターンとの距離が長くなる。そのため、正しい位置検出パターン同士の距離の組み合わせ以外を容易に除外できるので、判定する組み合わせ数を減らすことができる。この効果は、二次元コードの形状が正方形であれば、効果が大きいが、長方形の二次元コードであっても、組み合わせを減らす効果が得られる。
図9は、二次元コードのバージョン情報に応じた変化を説明する図である。第1実施形態の二次元コード10は、図9の(A)に示した基本パターン部11のみを有する最小サイズのコードであり、基本パターン部11のみを有する最小サイズの正方形の二次元コードを、バージョン横1×縦1と呼ぶ。
第2実施形態の二次元コード10は、周辺部20のサイズを縦方向および横方向にそれぞれ伸張できる。横バージョンが2、縦バージョンが3の場合、バージョン横2×縦3と表記する。二次元コード10は、基本パターン部と同じ形状のバージョン横1×縦1を基準とし、バージョン数とともに二次元コード全体のサイズが増加する。バージョンが1上がるごとに、サイズが1単位大きくなる。この例ではバージョンは1から26まで選択可能であるが、これに限定されるものではない。二次元コードは、バージョン情報を用いて、複数個の位置検出パターン間の距離を固定した状態で二次元コードのサイズを可変に設計することが可能になされている。
図9の(B)に示すように、横バージョンの増加では、バージョン数の増加にしたがって、周辺部20の横方向のサイズが、左側(Y2)、右側(Y3)、左側(Y4)、右側(Y5)…という具合に交互に1単位ずつ増加する。言い換えれば、1つ増加するバージョン数が偶数の場合、左側に1単位追加する。同じく1つ増加するバージョン数が奇数の場合、右側に1単位追加する。したがって、横バージョンが奇数の場合には、周辺部20の左右の幅は等しく、偶数の場合には、周辺部20の左側が右側より1単位広い。
図9の(B)に示すように、縦バージョンの増加では、バージョン数の増加にしたがって、周辺部20の縦方向のサイズが、上側(T1)、下側(T2)、上側(T3)、下側(T4)…という具合に交互に1単位ずつ増加する。言い換えれば、1つ増加するバージョン数が偶数の場合、上側に1単位追加する。同じく1つ増加するバージョン数が奇数の場合、下側に1単位追加する。したがって、縦バージョンが奇数の場合には、周辺部20の上下の幅は等しく、偶数の場合には、周辺部20の上側が下側より1単位広い。
この基本パターン部の位置は、基本パターン部の移動における、基準となる所定の位置とする。
バージョンの変化による、二次元コードのサイズの変化に関して、1単位ずつ交互に増やす以外にも、2単位以上を交互に増やす場合や、上下、左右にそれぞれ均等に1単位ずつ増加させる場合や、増加を上と左のみ、下や左のみなど一方向に増加させる場合があり得る。また、バージョンが小さい場合には、左右又は上下交互に1単位ずつ変化させることがある。バージョンが大きい場合は左右又は上下均等に1単位ずつのように、バージョンにより変化をつける場合など、様々な方法が考えられる。
以下に、バージョン情報が高くなるに従い、スペックデータの量が増加する仕組みの一例を説明する。
図10は、バージョン情報のビット列を示す図であり、バージョン(Version)と、それを表すのに必要なビット数と、ビット列と、を示す。このようなデータ構造のバージョン情報が、縦方向用および横方向用として2つ設けられる。
図7などでは、二次元コードの形状が長方形であるコードを例としているが、形状を正方形に限定すれば、スペックデータのバージョン情報が1つでよい。反対に、読取可能にする二次元コードを複数の形状のコードに対応させる場合は、バージョン情報を表すデータの情報量が増え、スペックデータのバージョン情報も読み取り可能にした形状の数に応じて増やす。つまり、二次元コードの外形選択の自由度に従いバージョン情報のデータ量が増える。
第2実施形態の二次元コード10は、スペック情報として、横のバージョン情報と、縦のバージョン情報の順にデータを持つ。スペックデータの先頭から2ビットを取出し、“00”、“01”、“10”のいずれかである場合は、横のバージョンが1−3で確定し、3ビット以降が縦のバージョン情報となる。“11”である場合は、さらに次の3ビットを取出し、“111”以外の場合は、横のバージョン4−10が確定し、6ビット以降が縦のバージョン情報となる。“111” である場合は、さらに次の4ビットを取出し、横のバージョン11−26が確定し、10ビット以降が縦のバージョン情報となる。
縦のバージョンも同様に取出し、横と縦のバージョン情報を表すスペックデータのビット列以降のビットが実データとなる。したがって、図10のバージョン情報であれば、バージョンを表すのに必要なビット数を使用すればよい。例えば、バージョン1−3を表すのであれば2ビットのみでよく、他のバージョンを表す場合に必要になる3ビット目以降を他のデータに使用できる。
第1実施形態は、横のバージョンのビット列が“00”で、縦のバージョンのビット列も“00”となる、最小のコードである。
このように、二次元コードのサイズが小さい場合はバージョン情報のビット数を少なくし、二次元コードのサイズが大きい場合はバージョン情報のビット数を多くすることで、バージョン情報のデータ量を固定にした場合に比べ、二次元コードのデータ量に対するバージョン情報のデータ量の割合をより一定に近づけることができる。本実施形態によれば、コードのサイズが小さい場合に、スペック情報の相対的なデータ量が大きくなり、データ効率が悪い、という問題を解消する。
同様に、例えば空白領域をコード内に設ける場合、この領域に関する情報を、空白領域がある場合には、空白領域があることを示す空白埋込フラグと、空白領域に関する情報を示す空白位置情報を、スペックデータに含ませる。また、空白領域がない場合には、空白領域がないことを示す空白埋込フラグのみをスペックデータに含ませて、空白領域に関する情報を省くことで、スペックデータの情報量を減らすことが可能である。さらに、空白領域がある場合の空白領域に関する情報も、バージョン情報にあわせて、ビット数を増減することで、スペックデータの情報量の効率を向上できる。
以下、自由度を持たせた二次元コードの例を示す。自由度を持たせることにより、スペックデータとして機能性を持たせるための情報が追加され、基本パターン部に記録可能な実データが減少することになる。
自由度は、機能と、機能の変化範囲の、2つが影響する。
機能として、例えば、二次元コードのサイズの変化として、正方形の場合と、長方形の場合を比較する。正方形は1辺の長さという1つのパラメータで表せるが、長方形は縦横の辺の長さという2つのパラメータが必要である。よって、正方形は1個の、長方形は2個の機能を有するといえる。二次元コードが空白領域を持つことを可能にした場合には、さらに機能が追加される。
機能の変化範囲として、例えば、図7の二次元コードでは、バージョンが縦と横で独立して1−26の範囲で選択可能であるように、各機能でそれぞれ数パターンの変化がある。
よって、自由度は、機能と、機能の変化範囲を、掛けあわせたものといえる。この自由度が大きいほど、ユーザーが選択できる、二次元コードの形状の選択肢が増え、1種類のコードで、より多くのユーザーのニーズに合わせることが可能になる。
二次元コードに機能性を持たせることにより、二次元コードの中にキャラクターなどの絵柄を埋め込み可能な領域を提供することで二次元コードのデザイン性を高めることや、フォルダの背表紙などの限られたスペースにあわせて二次元コードの形状を変化させる、といったことが可能になる。
図11は、第1実施形態の二次元コードの1例を示す図である。
図12および図13は、第2実施形態の例を示す図である。
スペックデータは、基本パターン部移動情報を持つようにしてもよい。バージョン情報により基本パターン部の外側に縦・横に順次周辺部を付加する場合、基本パターン部は二次元コードのほぼ中心に位置するケースが多い。しかし、二次元コードの中心以外の任意の位置に基本パターン部を配置することが要望される場合がある。基本パターン部移動量情報は、二次元コード内の基本パターン部の基準となる所定の位置からの移動量を指定する情報である。基本パターン部移動情報の詳細例については後述する。
本例では、スペック情報として、周辺部20における周辺部誤り訂正レベル情報、および周辺部20における空白領域を示す空白情報、および基本パターン部11の移動に関する情報を示す基本パターン部移動情報を含む。また、空白情報は、空白を埋め込むか否かを示す空白埋込フラグと、空白を埋め込む場合には空白の領域を示す空白位置情報、を含む。また、基本パターン部移動情報は、基本パターン部11を移動するか否かを示す基本パターン部移動フラグと、基本パターン部11を移動する場合には所定の位置からの移動量を表す基本パターン部移動量情報、を含む。
スペック情報を表すビットデータであるスペックデータの、第2実施形態での一例を示す。まず、横のバージョン情報が入る。横のバージョン情報は1から26までの値となり、2から9ビットで表される。次に、同様の方法で縦のバージョン情報が入る。次に、周辺部誤り訂正レベル情報が入る。周辺部誤り訂正レベル情報は2ビットで表され、4種類の周辺部誤り訂正レベルを取り得る。周辺部誤り訂正レベル情報に関しては後述する。次に、空白領域の有無を表す空白埋込フラグと、基本パターン部の所定位置からの移動の有無を表す基本パターン部移動フラグが入る。空白埋込フラグおよび基本パターン部移動フラグは、1ビットで表され、1(有り)か0(無し)である。次に、空白埋込フラグが1の時には、空白の領域情報を表す空白位置情報が基本パターン部移動フラグの後ろに追加される。次に、基本パターン部移動フラグが1の時は、基本パターン部移動量情報が、空白埋込フラグが1の時には空白位置情報の後に追加され、空白埋込フラグが0の時には基本パターン部移動フラグの後に追加される。これらの情報の後に、基本パターン部に格納可能な領域が残っている場合、実データが続いて格納される。
このスペック情報の種類や、順番、データ量、フラグの扱いに関して、上記に限られるものではないが、エンコードと、デコードにおいて、スペックデータを同じ解釈にする必要がある。
空白情報は、空白領域の有無を示す、空白埋込フラグと、空白の領域情報を表す、空白位置情報からなる。空白埋込フラグは、1(有り)と0(無し)の状態を持つ1ビットのデータであり、1の時にだけ空白位置情報があり、無しの場合には空白位置情報を省略できる。これにより空白が無いときの情報を減らすことができ、有りの場合にのみ空白位置情報をスペックデータに入れる。空白埋込フラグは、空白の有無以外に、空白領域の個数を表しても良い。例えば、空白埋込フラグは、2ビットとしておき、空白位置の個数を表す0から3の値を持つ。0の場合は、空白位置情報が無く、3の場合は、空白位置情報を3個連続してスペックデータに入れる。
空白位置情報は、ブロック単位で、サイズ・オフセットを指定し、この情報を空白の位置を示す情報として保持する。ブロックの座標を空白領域の左上隅のブロックを原点としてオフセットを(n,m)と表現する。コードの横ブロック数をblW個、縦ブロック数をblH個としたとき、空白領域の最大横ブロック数はblW個、最大縦ブロック数はblH個となる。
図14は、空白領域を設けた第2実施形態の二次元コードの1例を示す図である。
図14の空白領域は、オフセットが(1,1)であり、サイズは横ブロック数が9個、縦ブロック数が1個と表せる。ただし、空白ブロックが基本パターン部にかかってはならない。
空白位置情報は、その周辺部のサイズに合わせて、データ量を可変にできる。
バージョンが横9×縦9である場合、コードの横ブロック数が15個であり、コードの縦ブロック数が15個となる。取りうるオフセットの範囲が(0、0)から、(14、14)まで、縦横それぞれ15通りが考えられる。最大横ブロック数は15個、最大縦ブロック数は15個なる。空白位置情報としては、縦横の各オフセットが4ビットずつ、縦横の各ブロック数が4ビットずつの、計16ビット必要となる。
同様に、コードが縦横に可変した場合、バージョン情報からバージョンが横11×縦11である場合、取りうるオフセットの範囲が(0、0)から、(16、16)であり、縦と横の最大ブロック数が17通りであるため、空白位置情報としては、縦横の各オフセットが5ビットずつ、縦横のサイズが5ビットずつの、計20ビット必要となる。
このように、空白領域の個数、空白領域の範囲、コードのサイズに応じて、必要とするデータ量を増減することができる。
空白位置情報は、領域を全て明のセルとする範囲をブロック単位で指定する。認識対象とはならないため、エンドユーザーは絵柄、写真、文字をこの領域に入れて、コード情報の可視化や、二次元コードのデザイン性向上に役立てることができる。空白領域内は、解析時には無視されるので、埋め込まれた写真・絵柄は、解析に影響しない。
空白領域を表す方法としては、以下のような方法が考えられる。
(1)ブロックの開始座標と、ブロック幅・高さと指定する方法
(2)ブロックの開始座標と、終点座標を指定する方法
(3)数点のブロック座標を示し、その座標の内側を空白とする方法
(4)これらの指定の単位が、ブロックではなく、セルで指定する方法
(5)幾つか空白領域を予約しておき、それをコード内で指定する方法
(6)(1)−(5)に加え、拡大縮小率を変更させる方法
さらに、複数の空白領域を設ける場合には、それぞれの領域で異なる方法を行うようにしてもよい。
図15は、バージョン横3×縦3で、基本パターン部を移動しない、第2実施形態の二次元コードの1例を示す図である。
図16は、バージョン横3×縦3であり、周辺部を含む二次元コード10に対して基本パターン部11を中心から移動した第2実施形態の二次元コードの1例を示す図である。図16は、図15と比較し、基本パターン部が、右に1ブロック移動しており、上下方向は移動していない。基本パターン部11は、二次元コード10の領域に対して中心を基準位置とすることに限定されない。基本パターン部移動情報は、基本パターン部11が、二次元コード10の領域に対してどのように配置されるかを示す情報で、横方向と縦方向についてそれぞれ決定される。
基本パターン部移動情報は、移動の有無を示す、基本パターン部移動フラグと、基本パターン部の基準となる所定位置からの移動量を表す、基本パターン部移動量情報からなる。第2実施形態における所定位置は、図9(B)の基本パターン部の位置とする。基本パターン部移動フラグは、1(移動有り)と0(移動無し)の状態を持つ1ビットのデータであり、1の時にだけ基本パターン部移動量情報があり、0(無し)の場合には基本パターン部移動量情報を省略できる。これにより基本パターン部を移動させない場合の情報を減らすことができ、移動させる場合にのみ基本パターン部移動量情報をスペックデータとして記録する。基本パターン部移動量情報は、基本パターン部が移動しない場合の基本パターン部の位置を基準とした、移動量を表す。
図17は、基本パターン部11の位置を基本パターン部移動情報でどのように表すか説明する図である。
図17に示すように、バージョン1の時には基本パターン部11のみであり、バージョンが増加するにしたがって左側、右側にブロック列が追加される。基本パターン部11が移動可能な位置は、バージョン数に制限される。例えば、バージョン数が2であれば、基本パターン部11が移動可能な位置は、移動しないか、左側に1ブロック列移動するかである。バージョン数が3であれば、基本パターン部11が移動可能な位置は、移動しないか、左側に1ブロック列移動するか、右側に1ブロック列移動するか、である。言い換えれば、バージョン数が1増加するのに対応して基本パターン部11が移動可能な位置が1つ増加するということである。したがって、基本パターン部移動量情報を表すのに必要なデータ量は、バージョン数に応じて変化する。
図17において、横方向のバージョン数が6の場合に、−3から2の数字は、基本パターン部11のブロック単位での基本パターン部移動量情報を示す。横方向のバージョン数が、0は移動しない場合を、マイナスの値は左側への基本パターン部移動量情報を、プラスの値は右側への基本パターン部移動量情報を示す。図15の移動量は0であり、図16の移動量は1となる。ただし、図15では基本パターン部が所定位置から移動していないため、スペックデータとしては、基本パターン部移動フラグを0とすれば、基本パターン部移動量情報は省略できる。
基本パターン部が移動する場合、基本パターン部移動情報としては、基本パターン部移動フラグが1となり、基本パターン部移動量情報として、横の移動量を表す情報と、縦の移動量を表す情報をスペックデータに記録する。
図18は、バージョン横19×縦19の二次元コード10において、基本パターン部11を移動させた例を示す図である。
図18において、参照番号11は、移動していない基本パターン部11を示し、この場合の基本パターン部位置は、横が0で、縦が0である。参照番号11Aで示す基本パターン部11の基本パターン部位置は、横が−8で、縦が−8である。参照番号11Bで示す基本パターン部11の基本パターン部位置は、横が9で、縦が−9である。参照番号11Cで示す基本パターン部11の基本パターン部位置は、横が−5で、縦が4である。参照番号11Dで示す基本パターン部11の基本パターン部位置は、横が0で、縦が9である。参照番号11Eで示す基本パターン部11の基本パターン部位置は、横が9で、縦が9である。
ここでは基本パターン部移動の単位をブロックで表したが、セル単位でも構わない。
また、移動の単位を1ではなく、2より大きい値にしてもよい。この場合、図18のバージョン横19×縦19の二次元コード10では、横19通り、縦19通りの組み合わせであったが、移動の単位を2ブロックずつにすることで、横9通り、縦9通りの組み合わせとなり、これによりスペックデータの情報量を下げることができる。
また、基本パターン部移動情報として、二次元コードの中心からの移動量を示す基本パターン部移動量情報を含めたが、基本パターン部移動量情報の代わりに二次元コード内の基本パターン部の位置を表す基本パターン部位置情報を用いてもよい。
基本パターン部位置情報は、コード左上のブロック座標(0、0)に基本パターン部11の左上のコーナーがある場合を基準とした場合の、基本パターン部11のブロック座標とするここができる。例えば、図16では、基本パターン部11の左上のコーナーがブロック座標(2、1)にあるため、基本パターン部位置情報として、横に2ブロック、縦に1ブロック、を表すデータが、スペックデータに記録される。
また、基本パターン部位置情報の他の表現方法として、基本パターン部の移動のパターンをあらかじめ定義しておく方法もある。例えば、基本パターン部の移動パターンとして “左上”、“右上”、“左下”、“右下”の4通りあらかじめ定義しておき、基本パターン部位置情報として2ビットを持たせ、それぞれ0−3の値を移動のパターンに割り振っておく。図18の二次元コード10では、基本パターン部位置情報が示す値が、“左上”の場合は、横が−9で、縦が−9となり、“右下”の場合は、横が9で、縦が9となる。
この方法の利点として、基本パターン部移動量情報を常に2ビットに抑えることができ、スペックデータを小さくできる。
さらに、上記移動パターンに“真ん中”を追加した5通りとし、加えて基本パターン部移動フラグをなくすことで、基本パターン部移動情報が常に3ビットで示されることになり、少ない情報量で基本パターン部の移動が実現できる。
スペックデータには、周辺部誤り訂正レベル情報を持たせることができる。周辺部実データの誤り訂正量を、周辺部誤り訂正レベルとして、周辺部誤り訂正レベル情報に記録できるようにする。例えば、周辺部誤り訂正レベルは、10%、20%、30%、40%の4通りから選択させるようにする。これにより、撮影条件の悪い環境で用いるコードを認識させる場合には誤り訂正レベルを上げ、そうでない場合は下げるということが可能になる。この場合、スペックデータにおける周辺部誤り訂正レベル情報として、2ビットを確保するようにする。
周辺部誤り訂正レベルは、周辺部実データのデータ量に影響し、周辺部誤り訂正レベルが低ければデータ量が多くなり、周辺部誤り訂正レベルが大きければデータ量が少なくなる。
周辺部誤り訂正レベル情報は、周辺部が存在しない場合(バージョンが横1×縦1)は不要であり、スペックデータから省くことができ、その分実データの量を増やすことができる。バージョン情報と、空白情報と、位置補正パターンと、により、周辺部でのデータを持つブロックの数が決定する。これにより、周辺部の記録できるデータの量が決まる。この周辺部のデータ量と、周辺部誤り訂正レベル情報より、周辺部実データと、周辺部誤り訂正データの、データ量が決まる。
周辺部のデータの配置は、第2実施形態の1例では、例えば、周辺部実データを、左上から右方向へ順番にブロックごとに記録し、1行記録し終わったら、1ブロック下の左から右方向へ順番に記録する。周辺部実データの後に、周辺部誤り訂正データを記録する。その場合に、基本パターン部、空白領域、位置補正パターンにはデータを記録しない。
上記は一例であり、周辺部のデータの配置の方法は、あらかじめ決められていればよい。
また、第2実施形態の1例として、スペックデータは、スタイル情報を持つようにしてもよい。この場合、スタイル情報が、縦横バージョン可変、縦のみバージョン可変、横のみバージョン可変、バージョン不変(周辺部なし)の4つの状態を保持可能だとする。それにより、バージョン情報のデータ量を変化させる。スタイル情報の内容に従い、バージョン情報のデータ量を、縦横バージョン可変の場合には縦横バージョンの2つの値を保持し、縦のみバージョン可変、もしくは横のみバージョン場合には1つの値を保持し、それ以外はバージョン情報を無しにする、というように、スタイル情報によりバージョン情報量を可変にでき、また自由度の高いコード形状を許容する。
また、それ以外にもスタイル情報は、丸、星、など様々な形状が考えられ、コードを用途に合わせ自由に形状を変化させることが可能になる。
また、周辺部は基本パターン部に隣接する必要は無い。よって、基本パターン部から離れた場所に様々な周辺部を置いてもよい。よって、周辺部は、基本パターン部の形状に関わらず、自由な形状をとることも可能である。
また、周辺部は基本パターン部から独立している。よって、周辺部と基本パターン部とでは、セルの形状を同じ正方形にする必要はない。また、基本パターン部と、周辺部でセルのサイズを同じにする必要もない。例えば、基本パターン部のセルを認識させやすくするため、周辺部のセルよりも大きくしてもよい。また、周辺部のブロックが持つデータ量は、基本パターン部のブロックが持つデータ量と同じにする必要はなない。また、周辺部のブロックと、基本パターン部のブロックとは、ブロックの形状が異なっていても良い。
以上の通り、第1実施形態、第2実施形態の二次元コードは、スペックデータのデータ量は、スペックデータの内容に応じて増減可能であり、基本パターン部のスペックデータを記録した残りのデータ領域には、実データが記録されるので、データ効率の低下が抑制できる。また、二次元コードに持たせる外形選択の自由度に応じて、基本パターン部に記録可能なスペックデータのデータ量を増減させることが可能なので、様々な機能性を持った二次元コードに柔軟に対応可能である。また、スペックデータのデータ量を周辺部のサイズと比例関係とすることで、二次元コードのサイズに適合したスペックデータのデータ量とすることが可能である。なお、第2実施形態において、基本パターン部の周囲に周辺部を設ける構成は、スペックデータのデータ量を増減可能にせず、基本パターン部には実データを含まなくても実現できる。また、第2実施形態において、位置検出パターンが複数である場合、複数の位置検出パターン間の距離が一定であることから、複数のコードを一括して認識する処理が優れている効果は第1実施形態と同様に得られる。
第1実施形態や第2実施形態で用いる位置検出パターンは、正方形の枠内に正方形を有する形状の第1位置検出パターン12Aと、第1位置検出パターン12Aより小さな正方形の枠形状の第2位置検出パターン12Dと、長方形の第3位置検出パターン12Bおよび第4位置検出パターン12Cと、を有することが好ましい。4個の位置検出パターン12A−12Dは、基本パターン部11の四隅(4つのコーナー)に配置されている。この場合、第1位置検出パターン12Aと第2位置検出パターン12Dは、対角上に配置され、第3位置検出パターン12Bと第4位置検出パターン12Cは、対角上に配置され、第3位置検出パターン12Bおよび第4位置検出パターン12Cの長辺は、第1位置検出パターン12Aの辺と同じ長さであり、第3位置検出パターン12Bおよび第4位置検出パターン12Cの短辺は、第2位置検出パターン12Dの辺と同じ長さであり、第3位置検出パターン12Bおよび第4位置検出パターン12Cの短辺の一方は、第1位置検出パターン12Aの辺の延長上に配置され、第3位置検出パターン12Bおよび第4位置検出パターン12Cの長辺の一方は、第2位置検出パターン12Dの辺の延長上に配置されることが望ましい。図1に示した位置検出パターン12A−12Dは、それぞれ単独で容易に識別することができ、一部の位置検出パターンが汚れ等で識別できない場合でも、識別できた残りの位置検出パターンの組から、二次元コードにおけるセルの座標位置を容易に求めることができる。
位置検出パターンは、第1実施形態、第2実施形態に示した例以外にも各種の変形例が可能である。例えば、位置検出パターンの個数は、1個以上であり、上限は無いが、現実的には最大4個程度で、それ以上の個数であっても効果が少なく、逆にデータ効率が低下する。また、複数個の位置検出パターンの形状が同じ場合と、少なくとも一部が異なる場合があり得る。さらに、基本パターン部11における位置検出パターンの位置は、基本パターン部11のコーナーに限定されず、1個または複数の位置検出パターンの一部またはすべてが基本パターン部11内のコーナー以外に位置してもよい。言い換えれば、基本パターン部11内で、位置検出パターンと、データ領域13の位置関係は、任意に決定できる。
第1実施形態、第2実施形態に示した以外の代表的な例としては、異なる形状の3個の位置検出パターンと1個の位置補正パターンの組合せ、位置検出パターンと位置補正パターンの合計が4つ以上の組合せ、1個の位置検出パターンと1個の位置補正パターンの組合せ、等が考えられる。異なる形状の3個の位置検出パターンと1個の位置補正パターンの組合せであれば、二次元コードにおけるセルの座標位置を比較的容易に求めることができる。
次に、実施形態の二次元コードを作成する処理(エンコード処理)について説明する。
図19は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図であり、クライアント・サーバ構成の例を示す。
作成システムは、仕様を決めて二次元コードの作成を依頼するユーザーが操作するユーザーハードウェアと、依頼された二次元コードを作成して提供するシステムハードウェアと、を有する。
ユーザーハードウェアは、コンピュータ等のユーザー処理装置71と、磁気ディスク等の記憶装置72と、を有する。
システムハードウェアは、コンピュータ等のシステム処理装置75と、磁気ディスク等の記憶装置76と、を有する。
ユーザー処理装置71とシステム処理装置75は、通信回線等で接続され、通信可能に構成されている。
ここでは、印刷は、ユーザー側で行うが、システム側や他の印刷所で行うようにしてもよい。二次元コードを印刷する媒体はどのようなものでもよく、例えば、紙、樹脂板、筐体表面などである。ここで、媒体として、埋め込む絵柄があらかじめ印刷されているものでもよく、印刷されている埋込絵柄が二次元コードの絵柄領域に入るようにセッティングした上で二次元コードを印刷する。
印刷装置は、これらの媒体に二次元コードを印刷可能なものであればよく、例えば簡易プリンター、精密プリンター、印刷装置等であり、モノクロ印刷だけでなく、カラー印刷可能なものでもよい。また、作成した二次元コードは、印刷せずに、通信回線を介してユーザーに二次元コードのデータとして送信されてもよい。ユーザーは、必要に応じて第三者のディスプレイ等に、作成した二次元コードを表示するようにデータを送信する。
なお、図19はクライアント・サーバ構成の作成システムの例を示すが、作成システムはこれに限定されず、例えば。クライアントPC上のエンコードソフトウェアで発行し、USB接続したプリンターから発行する構成や、ハンディータイプの端末・プリンターから発行する構成など、各種の変形例があり得る。また、二次元コードを作成する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な一時的又は非一時的な記憶媒体に記録されていてもよい。
図20は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。ここでは、バージョン横1×縦1より大きなバージョンの二次元コードを作成する場合を示しており、バージョン横1×縦1の場合には周辺部が存在しないので、それに関係する処理が実質的になくなる。
ステップS10では、ユーザーがエンコードのメイン処理を開始する。
ステップS11では、ユーザーが二次元コードに記録するメッセージを入力する。
ステップS12では、ユーザーが、二次元コードのバージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を入力する。これに応じて、ユーザー処理装置71は、システム処理装置75に、入力されたメッセージと、バージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を通知する。
ステップS13では、システム側で、送信された情報に基づいて基本パターン部と周辺部の配置を決定する。
ステップS14では、送信された情報に基づいてスペックデータのデータ量を決定する。
ステップS15では、システム側で、送信された情報に基づいて空白領域のブロックの配置と数を決定する。
ステップS16では、位置補正パターンのブロックの配置とブロック数を決定する。
ステップS17では、周辺部誤り訂正レベルから、周辺部誤り訂正データのブロック数を決定する。
ステップS18では、二次元コードに記録可能な実データのサイズを決定する。
ステップS19では、二次元コード内でメッセージを表現するのに必要な実データのサイズを計算する。
ステップS20では、S18で求められた二次元コードのデータサイズに、S19の実データが入るか、データサイズが不足して入らないかを判定し、データサイズが不足であれば、ユーザー処理装置71にデータサイズが不足することを送信し、足りていればステップS22に進む。
ステップS21では、ユーザー処理装置71がユーザーに、入力された二次元コードの形状では入力されたメッセージを表現するのにデータサイズが不足であるというエラー発生を通知して、終了する。
ステップS22では、スペックデータを作成する。
ステップS23では、実データを作成する。
ステップS24では、スペックデータと実データを結合する。
ステップS25では、基本パターン部に記録可能なスペックデータと実データ、基本パターン部に配置する。
S26では、基本パターン部に記録されたデータから、基本パターン部誤り訂正データを計算し、配置する。
ステップS27では、基本パターン部に入りきらなかった実データを周辺部実データとして周辺部に配置する。
ステップS28では、周辺部実データから、周辺部誤り訂正データを計算し、配置する。
ステップS29では、二次元コードの情報を、画像としてユーザー処理装置71に出力する。
ステップS30で、エンコードのメイン処理が終了する。
図21は、第2実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。
二次元コード解析装置は、読み取り部80と、コンピュータ(二次元コード解析処理部)84と、ディスプレイ85と、通信インターフェース86と、を有する。読み取り部80は、レンズ81と、イメージセンサ82と、アナログ・デジタル変換器(AD)83と、を有し、撮影した二次元コードのデジタル画像データをコンピュータ84に出力する。図21の二次元コード解析装置は、広く使用されており、近年は携帯端末も二次元コード解析装置と同様の機能を実現している。また、二次元コードを解析する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な一時的又は非一時的な記憶媒体に記録されていてもよい。
図22および図23は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。このデコード処理は、1画面に複数の第2実施形態の二次元コードが写し込まれている場合を想定している。デコード処理は、解析メイン処理と、情報取り出し処理からなる。まず、解析メイン処理を説明する。
ステップS101では、解析のメイン処理を開始する。
ステップS102では、二次元コードの撮影画像を入力する。
ステップS103では、入力された撮影画像の二値画像を作成する。二値化の方法は、入力された撮影画像がRGB画像などのカラー画像であれば、一旦グレースケール画像に変換し、画像内の最大輝度値と最小輝度値の平均を閾値とし、閾値以上であれば明、未満であれば暗とする。カラー画像からグレースケール変換するには、各画素のRGBの値を用いて、輝度(brightness)=0.299R+0.587G+0.114Bの変換式にしたがって変換する。カラー画像へのグレースケール画像への変換方法、さらに二値化画像への変換方法は、様々な方法が提案されており、上記変換方法に限られない。
ステップS104では、位置検出パターン候補を検出する。具体的には、二値化画像を走査する際に、走査方向の横方向、および縦方向に、暗明暗、もしくは暗明暗明暗が、一定の比率であらわれるパターンを検出する。
ステップS105では、4種の位置検出パターンの組合せを作成し、検討していない4種の位置検出パターンの組合せが残っているか判定し、残っていればステップS106に進み、残っていなければステップS110に進む。
ステップS106では、2点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが1組でもある場合には、正しい組合せではないと判定できる。このように、位置検出パターン同士の距離に基づいて誤検出を除外する。
ステップS107では、組合せた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図23を参照して後述する。
ステップS108では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップS109に進み、失敗した場合には失敗した位置検出パターンの組合せを除外する処理を行った後、ステップS105に戻る。
ステップS109では、情報の取り出しに成功した位置検出パターンの組合せをリストアップする。
ステップS110では、データの取り出しに成功した二次元パターンに使われた4個の位置検出パターン候補を除外し、ステップS105に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
ステップS105からS110を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の4個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
ステップS111では、検討されていない3個の位置検出パターン候補の組み合わせが残っているか判定し、残っていなければステップS120に進み、残っていればステップS112に進む。
ステップS112では、3個の位置検出パターン候補から位置補正パターンの位置を推定する。
ステップS113では、位置補正パターンがあるか判定し、有ればステップS115に進み、無ければステップS114に進む。
ステップS114では、3個の3個の位置検出パターン候補から1個の位置検出パターン候補を補完し、ステップS115に進む。
ステップS115では、2点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが1組でもある場合には、正しい組合せではないと判定できる。位置補正パターンなどで補完した場合にも、欠けていることが想定される位置検出パターンの座標を推定し、距離を検証する。
ステップS116では、組合せた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図23を参照して後述する。
ステップS117では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップS118に進み、失敗した場合には失敗した位置検出パターンの組合せを除外する処理を行った後、ステップS111に戻る。
ステップS118では、情報の取り出しに成功した位置検出パターンの組合せをリストアップする。
ステップS119では、データの取り出しに成功した二次元パターンに使われた3個の位置検出パターン候補を除外し、ステップS111に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
ステップS111からS119を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の3個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
ステップS120では、リストアップされた位置検出パターンのメッセージを出力し、ステップS121に進む。
ステップS121では、解析メイン処理を終了する。
次に図23を参照してステップS107およびS116の情報取り出し処理を説明する。
ステップS200で、情報取り出し処理を開始する。
ステップS201で、位置検出パターンから、基本パターン部に属するブロック内のセルの座標を計算する。
ステップS202で、結合データと、基本パターン部誤り訂正データを取り出す。
ステップS203で、基本パターン部誤り訂正データによる誤り検出処理を行い、誤りがある場合にはステップS204に進み、誤りが無ければステップS207に進む。
ステップS204では、ブロック内のセルデータから誤り訂正可能であるか判定し、誤り訂正が不可能であればステップS205に進み、誤り訂正が可能であればステップS206に進む。
ステップS205では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
ステップS206では、結合データの誤り訂正処理を行う。
ステップS207では、結合データから、スペックデータを取り出し、二次元コードのバージョン、周辺部誤り訂正レベル、空白情報、基本パターン部移動情報を特定する。
ステップS208では、スペックデータを元に、基本パターン部の周辺部の位置補正パターンを計算する。
ステップS209では、スペックデータを元に、周辺部の位置補正パターンと、空白領域と、を除く周辺部実データと、周辺部誤り訂正データのブロックを特定する。
ステップS210では、周辺部実データと、周辺部誤り訂正データのブロック数の合計を計算し、これと周辺部誤り訂正レベルから、それぞれのブロック数を計算する。
ステップS211では、周辺部に属するブロック内のセルの座標を求める。
ステップS212では、周辺部実データと周辺部誤り訂正データを取り出す。
ステップS213では、周辺部誤り訂正データにより誤りを検出し、誤りがあればステップS214に進み、誤りが無ければステップS217に進む。
ステップS214では、誤り訂正可能であるか判定し、誤り訂正が不可能であればステップS215に進み、誤り訂正が可能であればステップS216に進む。
ステップS215では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
ステップS216では、データの誤り訂正処理を行う。
ステップS217では、基本パターン部のデータからスペックデータを除いた実データと、周辺部の実データを連結する。
ステップS218では、実データを解析する。
ステップS219では、メッセージを取り出す。
ステップS220では、二次元コードからの情報の取出しに成功したので、メッセージを表示して終了する。
以上説明したように、本発明の二次元コードは、機能性を向上するために多種類の機能や多くの情報量をスペックデータとして記録できるようにする場合に、基本パターン部に記録するスペックデータのデータ量を仕様に応じて可変とする。このような構成によれば、基本パターン部に残余部分があれば実データを記録することにより、スペックデータのデータ量が少ない場合のデータ効率の低下が抑制できる。
以上、本発明の実施形態を説明したが、記載した実施形態は発明を説明するためのもので、当業者には、特許請求の範囲において各種の変形例があり得ることが容易に理解可能である。
10 二次元コード
11 基本パターン部
12A 第1位置検出パターン
12B 第3位置検出パターン
12C 第4位置検出パターン
12D 第2位置検出パターン
13 領域
15 ブロック
16 分離パターン
17 セル
18 位置補正パターン

Claims (13)

  1. 二進コードで表されるスペックデータおよび実データをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであって、
    前記二次元コードは位置検出パターンを含む基本パターン部を備え、
    前記基本パターン部はセル位置を特定するための前記位置検出パターンと、
    前記二次元コードの前記基本パターン部以外のセルの配置を決定するスペックデータと、
    前記二次元コードに記録するメッセージを符号化した実データを備え、
    前記スペックデータの記録量を任意に設定可能であることを特徴とする二次元コード。
  2. 前記基本パターン部において、前記スペックデータと前記実データを結合させたビット列が固定長で記録されていることを特徴とする請求項1に記載の二次元コード。
  3. 前記基本パターン部は、複数個の前記位置検出パターンを有し、
    前記基本パターン部の周囲に配置される、実データを記録可能な周辺部を備えることを特徴とする請求項1又は2に記載の二次元コード。
  4. 前記スペックデータの記録量は、前記二次元コードのサイズを示すバージョン情報に応じて増減することを特徴とする請求項3に記載の二次元コード。
  5. 前記スペックデータは、所定の外形からの変化の有無を示すフラグデータを含むことを特徴とする請求項3又は4に記載の二次元コード。
  6. 前記スペックデータは、空白情報を含むことを特徴とする請求項3から5のいずれか1項に記載の二次元コード。
  7. 前記スペックデータは、基本パターン部移動情報を含むことを特徴とする請求項3から6のいずれか1項に記載の二次元コード。
  8. 前記位置検出パターンは、4個以上の異なる位置検出パターンであることを特徴とする請求項1から7のいずれか1項に記載の二次元コード。
  9. 前記基本パターン部は、3個以上の異なる前記位置検出パターン、及び位置補正パターンを有する
    ことを特徴とする請求項1から7のいずれか1項に記載の二次元コード。
  10. 二進コードで表される二次元コードのセルの配置を決定するスペックデータおよびメッセージを符号化した実データをセル化して、二次元のマトリックス状にパターンとして配置し、位置検出パターンを設けた基本パターン部を備える二次元コードを解析する二次元コードの解析システムであって、
    前記位置検出パターンの位置関係に基づいて前記基本パターン部の座標を変換して、前記スペックデータを検出するスペックデータ情報検出手段と、
    前記スペックデータの検出結果に基づいて、前記基本パターン部の前記スペックデータと前記実データの境界を識別して、前記実データを解析する実データ解析手段と、を備えることを特徴とする二次元コードの解析システム。
  11. 前記実データ解析手段は、前記基本パターン部の周囲に前記実データが記録された周辺部が存在する場合は、前記周辺部の前記実データも解析することを特徴とする請求項10に記載の二次元コード解析システム。
  12. 二進コードで表される二次元コードのセルの配置を決定するスペックデータおよびメッセージを符号化した実データをセル化して、二次元のマトリックス状にパターンとして配置し、位置検出パターンを設けた基本パターン部を備える二次元コードの作成システムであって、
    前記実データを作成する手段と、
    前記スペックデータを作成する手段と、
    前記スペックデータのデータ量に応じて、前記実データの記録を開始する位置を決定する手段と、
    前記基本パターン部に前記スペックデータを配置し、前記スペックデータを配置した後の前記基本パターン部に残余部分がある場合には、前記実データを前記残余部分に配置する配置手段と、を備えることを特徴とする二次元コードの作成システム。
  13. 前記配置手段は、前記基本パターン部の残余部分に前記実データの全てを配置できない場合には、前記基本パターン部の周囲の周辺部に残りの前記実データを配置することを特徴とする請求項12に記載の二次元コード作成システム。
JP2015084511A 2014-05-14 2015-04-16 二次元コード、二次元コードの解析システム及び二次元コードの作成システム Active JP6521709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015084511A JP6521709B2 (ja) 2014-05-14 2015-04-16 二次元コード、二次元コードの解析システム及び二次元コードの作成システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014100984 2014-05-14
JP2014100984 2014-05-14
JP2015084511A JP6521709B2 (ja) 2014-05-14 2015-04-16 二次元コード、二次元コードの解析システム及び二次元コードの作成システム

Publications (2)

Publication Number Publication Date
JP2015232873A true JP2015232873A (ja) 2015-12-24
JP6521709B2 JP6521709B2 (ja) 2019-05-29

Family

ID=54934249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015084511A Active JP6521709B2 (ja) 2014-05-14 2015-04-16 二次元コード、二次元コードの解析システム及び二次元コードの作成システム

Country Status (1)

Country Link
JP (1) JP6521709B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020170466A (ja) * 2019-04-05 2020-10-15 オムロン株式会社 シンボル評価装置、および評価方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185492A (ja) * 1994-12-27 1996-07-16 Sharp Corp デジタル情報記録担体、デジタル情報記録方法および装置、並びにデジタル情報解読方法および装置
JPH11203381A (ja) * 1998-01-19 1999-07-30 Toyota Central Res & Dev Lab Inc 情報閲覧システム
JP2004140823A (ja) * 2003-10-06 2004-05-13 Dentsu Tec Inc コード情報を用いた情報提供システム
JP2006321175A (ja) * 2005-05-20 2006-11-30 Brother Ind Ltd 印刷データ編集装置、印刷データ編集プログラム及び記録媒体
JP2009259187A (ja) * 2008-03-28 2009-11-05 Denso Wave Inc 情報コード、情報コードの生成方法、及び情報コードの表示方法
JP2013030184A (ja) * 2008-03-27 2013-02-07 Denso Wave Inc 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法
JP2013131057A (ja) * 2011-12-21 2013-07-04 Fuji Xerox Co Ltd 二次元コード、記録装置、識別装置及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185492A (ja) * 1994-12-27 1996-07-16 Sharp Corp デジタル情報記録担体、デジタル情報記録方法および装置、並びにデジタル情報解読方法および装置
JPH11203381A (ja) * 1998-01-19 1999-07-30 Toyota Central Res & Dev Lab Inc 情報閲覧システム
JP2004140823A (ja) * 2003-10-06 2004-05-13 Dentsu Tec Inc コード情報を用いた情報提供システム
JP2006321175A (ja) * 2005-05-20 2006-11-30 Brother Ind Ltd 印刷データ編集装置、印刷データ編集プログラム及び記録媒体
JP2013030184A (ja) * 2008-03-27 2013-02-07 Denso Wave Inc 二次元コード、二次元コード生成方法、二次元コードを表示させるコンピュータ読み取り可能なプログラム、二次元コードを利用した認証方法、及び二次元コードを利用した情報提供方法
JP2009259187A (ja) * 2008-03-28 2009-11-05 Denso Wave Inc 情報コード、情報コードの生成方法、及び情報コードの表示方法
JP2013131057A (ja) * 2011-12-21 2013-07-04 Fuji Xerox Co Ltd 二次元コード、記録装置、識別装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
末武 陽一: "バーコードよりも大容量,高密度で誤り訂正機能を持つ二次元コードQRコードの概要", INTERFACE, vol. 第30巻, 第12号, JPN6018043896, 1 December 2004 (2004-12-01), JP, ISSN: 0003914500 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020170466A (ja) * 2019-04-05 2020-10-15 オムロン株式会社 シンボル評価装置、および評価方法
JP7230652B2 (ja) 2019-04-05 2023-03-01 オムロン株式会社 シンボル評価装置、および評価方法
US11829837B2 (en) 2019-04-05 2023-11-28 Omron Corporation Symbol evaluation device and evaluation method

Also Published As

Publication number Publication date
JP6521709B2 (ja) 2019-05-29

Similar Documents

Publication Publication Date Title
JP6045752B2 (ja) 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
JP6091708B2 (ja) 二次元コード、二次元コードの解析システム
TWI528293B (zh) QR code
JP5848464B2 (ja) 二次元コード、二次元コードの作成システムおよび解析プログラム
TWI501159B (zh) QR code
JP6521709B2 (ja) 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
JP2017102841A (ja) 二次元コード、二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム
JP5487424B2 (ja) 2値化画像への情報埋め込み方法及び読み出し方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190423

R150 Certificate of patent or registration of utility model

Ref document number: 6521709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250