今回の解説では、「数字モード」を実例をつかって計算してみましょう!
実例をみると、ぐーーっと身近に感じてくるでしょう。きっと(笑)
独極・QRコード担当の「あじな」です。
どーせ、私の解説は退屈ですよね・・・。どーせ。・・・
なんて、卑屈にならずに今回は実例を使って「数字モード」の「データ領域」の計算をしてみましょう。
今回の例は「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」
おぉ!なんか達成感ありませんか?
さぁ、「数字モード」の解説はこれでおしまいです。
でも、数字しか表せないのでは、ちょっと物足りないですよね。
次回からは「英数字モード」の解説が始まります!(連載が中止にならなければ・・・)
実例をみると、ぐーーっと身近に感じてくるでしょう。きっと(笑)
独極・QRコード担当の「あじな」です。
これまでの復習 [表示する]
- QRコードは株式会社デンソーが作ったもので、スマホや携帯で読み取れる
- QRコードは「小さな白と黒の四角でできている」「多少汚れても大丈夫」という特徴がある
- 白黒の四角を使うのは、コンピュータにわかりやすくさせるため
- QRコードは「機能パターン」と「符号化領域」で出来上がっている
- 「機能パターン」は、「クワイエットゾーン」「位置検出パターン」「位置検出パターンの分離パターン」「タイミングパターン」「位置合わせパターン」の5種類
- 「符号化領域」は「形式情報」「型番情報」「データ領域」の3種類
- 「形式情報」は「エラー訂正レベル」と「マスクパターン参照子」で決まり、「\(4 \times 8=32\)」種類のパターンがある
- 「型番情報」は「QRコードのバージョンによって決まり、40種類ある
- 「データ領域」は「データ」と「エラー訂正情報」で出来上がる
- QRコードはバージョンが1~40まである。一辺の大きさは、「QRコードのバージョン(1~40)\( \times \)4\( + \)17」
- 「エラー訂正レベル」は「L(7%の汚れまで)」「M(15%の汚れまで)」「Q(25%の汚れまで)」「H(30%の汚れまで)」の4種類ある
- 「1bit」とは白・黒、1・0のような2種類の情報を表すことができる能力のことで、文字を増やすと「2bit(4種類)」「3bit(8種類)」と表現できる種類が増える
- 日常の言葉を「エンコード」して「コード(符号)」に置き換え、「コード(符号)」を「デコード」して日常の言葉に戻す
- QRコードの「エンコード」方式は「数字モード」「英数字モード」「漢字モード」「8bitモード」の4種類
- どの「エンコード」方式でも、データは「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」となる
解説だけではよくわからん!!
解説だけでは退屈ですよね。どーせ、私の解説は退屈ですよね・・・。どーせ。・・・
なんて、卑屈にならずに今回は実例を使って「数字モード」の「データ領域」の計算をしてみましょう。
今回の例は「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」
おぉ!なんか達成感ありませんか?
さぁ、「数字モード」の解説はこれでおしまいです。
でも、数字しか表せないのでは、ちょっと物足りないですよね。
次回からは「英数字モード」の解説が始まります!(連載が中止にならなければ・・・)