概要
普段から様々な場所で使われているQRコード、ちょっと仕様を把握する必要があったので調べたことを簡単にまとめます。
随時更新していきます。
量が増えてきたらそれぞれの項目ごとのページを作って移すかも。
目次
用語
セル
QRコードを構成する最小の単位。(白黒の正方形)
https://bunkyo-kumihan.com/kumihan_blog/?p=2952 より
モジュール
セルと同義。
シンボル
QRコードそのもの。
QRコードはマトリクス型二次元シンボルの一つ。
http://k-cr.jp/content/wp-content/uploads/2013/11/QR_Code2.pdf より
また、シンボルサイズには規定がある。
シンボル | セルサイズ |
---|---|
最小シンボルサイズ | 21セル× 21セル |
最大シンボルサイズ | 177セル× 177セル |
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
バージョン
1から40まであり、バージョンごとのセル数が規定されている。
内包するデータ量とデータの種類、誤り訂正レベルを決定することでバージョンが決まる。
データは数字、英数字、バイナリ、漢字のいずれかから選ぶ。(混合も可能)
バージョン一覧
ファインダパターン
QRコードの3コーナーに配置される位置検出用パターン。
黒白が 1:1:3:1:1
の比率になるよう規定されている。
これによってQRコードの回転角度を検出し、360度どこからでも高速で読み込めるようになっている。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
アライメントパターン
QRコードの歪み補正(射影変換)に使用されるパターン。
黒白が 1:1:1:1:1
になるよう規定されている。
バージョンが高くなると個数が増える一方、バージョンが低いものはない場合もある。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
タイミングパターン
シンボル内のモジュール座標を決定するのに使用されるパターン。
黒白セルが交互に並ぶ。
シンボルが歪んだりして誤差が生じた場合に、モジュールの中心座標を補正する。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
クワイエットゾーン
シンボルのまわりにある空白部分。
モデル1、モデル2で4セル分、マイクロQRコードで2セル分の空白が必要
このページでは通常のQRコード(モデル2)以外は特筆しない。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
フォーマット情報
使用されている誤り訂正レベルとマスクパターンの情報。
デコードで最初に読み込まれる部分。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
誤り訂正レベル
コードが汚れていたり破損していた場合に、コード自身でデータを復元する機能の復元率。
4段階規定されている。
誤り訂正機能について
誤り訂正符号
誤り訂正のため、リードソロモン法を用いて生成された符号。
https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp より
リードソロモン法
リード・ソロモン符号(符号理論における誤り訂正符号の一種)を用いた符号化、復元法。
数学専門知識が必要になるのでこのページでは特筆しない。
リード・ソロモン符号
マスク
データを配置した状態で一方の色が極端に多かったり、ファインダパターンに類似した模様があると、読み込みに支障をきたす場合があるため、模様に補正をかけるためのパターン。
8種類の中から最適なものを選ぶ。
https://qiita.com/amanao/items/b7c54a3c73a8301b2412 より