QRコードの概要
符号化(エンコード)
エラー訂正の概要
エラー訂正に必要な「行列」の解説
「行列」を使ってエラー訂正をしよう
リード・ソロモン符号とエラー訂正の方法
多項式の割り算
リード・ソロモン符号の作り方
ガロア理論と体
QRコードを作ろう
QRコードメーカー
今回の解説では、「数字モード」を実例をつかって計算してみましょう!
実例をみると、ぐーーっと身近に感じてくるでしょう。きっと(笑)
独極・QRコード担当の「あじな」です。


これまでの復習 [表示する]

  1. QRコードは株式会社デンソーが作ったもので、スマホや携帯で読み取れる
  2. QRコードは「小さな白と黒の四角でできている」「多少汚れても大丈夫」という特徴がある
  3. 白黒の四角を使うのは、コンピュータにわかりやすくさせるため
  4. QRコードは「機能パターン」と「符号化領域」で出来上がっている
  5. 「機能パターン」は、「クワイエットゾーン」「位置検出パターン」「位置検出パターンの分離パターン」「タイミングパターン」「位置合わせパターン」の5種類
  6. 「符号化領域」は「形式情報」「型番情報」「データ領域」の3種類
  7. 「形式情報」は「エラー訂正レベル」と「マスクパターン参照子」で決まり、「\(4 \times 8=32\)」種類のパターンがある
  8. 「型番情報」は「QRコードのバージョンによって決まり、40種類ある
  9. 「データ領域」は「データ」と「エラー訂正情報」で出来上がる
  10. QRコードはバージョンが1~40まである。一辺の大きさは、「QRコードのバージョン(1~40)\( \times \)4\( + \)17」
  11. 「エラー訂正レベル」は「L(7%の汚れまで)」「M(15%の汚れまで)」「Q(25%の汚れまで)」「H(30%の汚れまで)」の4種類ある
  12. 「1bit」とは白・黒、1・0のような2種類の情報を表すことができる能力のことで、文字を増やすと「2bit(4種類)」「3bit(8種類)」と表現できる種類が増える
  13. 日常の言葉を「エンコード」して「コード(符号)」に置き換え、「コード(符号)」を「デコード」して日常の言葉に戻す
  14. QRコードの「エンコード」方式は「数字モード」「英数字モード」「漢字モード」「8bitモード」の4種類
  15. どの「エンコード」方式でも、データは「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」となる

解説だけではよくわからん!!

解説だけでは退屈ですよね。


どーせ、私の解説は退屈ですよね・・・。どーせ。・・・


なんて、卑屈にならずに今回は実例を使って「数字モード」の「データ領域」の計算をしてみましょう。

今回の例は「09012345678」です!
符号化する前提として、QRコードのバージョンは1、エラー訂正レベルは「H」を想定しましょう。
(この場合、データ領域の容量は「9ワード」です)


いきなり「ワード」という単語を使ったのですが、QRコードでは8個の1,0をまとめて「1ワード」と呼びます。
そのため、9語というのは9×8=72個の「1,0」という意味です。


一応、忘れないようにデータ領域の構造をもう一度書いておきます。


「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」


「モード指示子」は数字モードなので「0001」(4桁)ですね。

次に、「文字数指示子」は、「QRコードのバージョンが1」なので「10桁」です。そして、表現したい数字の個数が「11個」なので「0000001011」(10桁)です。

「データ」は前回の解説で説明した通り、「09012345678」を3桁ずつに区切って、それぞれの数字を二進数で表した、「0001011010000111101101110010001001110」(37桁)です。

そして、「終端パターン」は「0000」(4桁)ですね。


ここまでの1,0の数字を全部数えると、「55桁」になります。


そのため、8の倍数にするために「埋め草ビット」「0」を1つ追加します(56桁になり、\(8 \times 7=56\)と8の倍数になります)
ここまでで、桁数は56桁になり、語数は7語(\(56 \div 8=7\))になりました。


最後に、「QRコードのバージョン1」・「誤り訂正レベルH」の容量は9語ですので、2語足りません。
そのため、「埋め草ワード」を2語ほど追加します。

つまり、「埋め草ワード」は「1110110000010001」(16桁)です。
これでめでたく「72桁(=9語)」になりました!


これまでのことをまとめると、「QRコードのバージョン1」、「エラー訂正レベルH」の場合、「09012345678」をエンコードするとデータ領域は次の72桁の1,0になります!

「000100000010110001011010000111101101110010001001110000001110110000010001」
おぉ!なんか達成感ありませんか?


さぁ、「数字モード」の解説はこれでおしまいです。

でも、数字しか表せないのでは、ちょっと物足りないですよね。
次回からは「英数字モード」の解説が始まります!(連載が中止にならなければ・・・)