2023/08/14

ノーツで QR コード:#3)QR コードの構造

前回は QR コードの概要について整理しましたが、今回は、その構造について理解を深めます。

いろいろ調査した結果、以下のサイトが、仕組みをうまく説明していると思いました。まずはご一読ください。

仕組みが分かれば、スマホなどいらぬ……ッ! 肉眼のみで解読するQRコード講座


なかなか、複雑な構造でしたね...

QR コードの構造を知るためにポイントを整理しましょう。


QR コードの構造

QR コードの根幹となる部分です。

まずは、QR コードの3つの隅に配置されている四角のマークです。これは、前回紹介した通り、切り出しシンボルと呼びます。認識率と判定速度の向上を目的とした独特のマークです。3か所なのは、QR コードの向きを検出するためのようですね。

切り出しシンボル間をつなぐ点線が必ず存在します。これをタイミングパターンと呼びます。白と黒が交互に配置されていることから、QR コードのゆがみやセルの中心位置や間隔を認識したり補正するそうです。

QR コードの内に配置されるパターンで、アライメントパターンと呼びます。非線形のゆがみを補正する機能だそうで、QR コードの印刷面が曲がっている場合などに効果があるのでしょう。このパターンは、QR コード内に1つだけではなく、コードが大きくなると、等間隔に表示されます。

この切り出しシンボルとタイミングパターンを使用して、QR コードの範囲、向き、傾き、座標(パターンの間隔)などを読み取る仕組みになっています。

なお、この部分は、色が決められており、白と黒が反転することはありません。また、シンボル部分には、データは含まれていません。


誤り訂正

続いて、シンボル横に存在する情報で、以下の部分についてです。ここには、2つの機能が割り当てられています。

1つ目は、誤り訂正レベルです。誤り訂正には4段階設定が可能なのですが、そのレベルを指定します。

2つ目は、マスク情報です。QR コードに変換した結果、白や黒のエリアが偏りがある場合やシンボルに利用するパターンに類似すると、誤認識のもとになります。そこで、あらかじめ定義された8種類のマスクパターンから適切なマスクを決定する仕様になっています。

ちなみに、誤り訂正の機能は次のように定義されています。

レベル 訂正能力
L 約 7 %
M 約 15 %
Q 約 25 %
H 約 30 %


データと誤り訂正コード

残りのエリアが、データを保存するためのエリアとなります。データエリアには、次の順にデータが配置されています。

  1. モード(最初の 4 ビット)
  2. 文字数(次の 8 ビット)
  3. データ本体
  4. 誤り訂正コード

ちなみに、モードには、数字モード(0001)、英数字モード(0010)、8 bit バイト(0100)と漢字(1000)の4種類があります。


まとめ

今回は、QR コードを読み取る手順を例に構造を整理しました。まだまだ、論理的な内容に入れていないのですが、なかなか複雑ですね。理解できるのか不安になってきました...

QR コードを構成する要素が、次のような値がパラメータとなるようです。

  1. QR コード化する値
  2. 値からモード、文字数が決定
  3. 誤り訂正レベル
  4. マスクパターン


次回は、これらパラメータから QR コードに変換する方法について調べます。

前回 ノーツで QR コード 次回

0 件のコメント:

コメントを投稿