まいど。独極・QRコード担当の「あじな」です。
今回は、「英数字モード」の具体例。これで、意味を伝えることができるよ。
私は、人生で一度も言われたことはありませんが・・・。しょんぼり。
符号化する前提として、QRコードのバージョンは1、エラー訂正レベルは「Q」を想定しましょう。
(この場合、データ領域の容量は「13語」です)
例によって、忘れないようにデータ領域の構造をもう一度書いておきます。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
モード指示子は、「英数字モード」なので「0010」(4桁)ですね。
次に、文字数指示子は、QRコードのバージョンが1なので「9桁」です。また、今回のサンプルの文字数が11文字なので、結局、「文字数指示子」は「000001011」(9桁)となります。
次に「データ」の計算です。
「英数字モード」の計算方法に従って、まず、「I-LOVE-YOU.」を2桁ずつに区切りましょう。
「I-LOVE-YOU.」=「I-」+「LO」+「VE」+「-Y」+「OU」+「.」
次に変換表をつかって、各文字を数字に置き換えましょう。
「I-LOVE-YOU.」に関係する文字だけの、「英数字モード」の「文字と数字の変換表」を書いておきます。
変換するとこうなります。
「I-」=「18, 41」
「LO」=「21, 24」
「VE」=「31, 14」
「-Y」=「41, 34」
「OU」=「24, 30」
「.」=「42」
次に、はじめの数字を45倍して、2番目の数字と足しましょう。
(最後に1文字余ったものはそのままにします)
「I-」=「18, 41」=「18×45+41」=851
「LO」=「21, 24」=「21×45+24」=969
「VE」=「31, 14」=「31×45+14」=1409
「-Y」=「41, 34」=「41×45+34」=1879
「OU」=「24, 30」=「24×45+30」=1110
「.」=「42」=42
最後にそれぞれ11桁の2進数に、(最後の文字だけは6桁の2進数に)しましょう。
「I-」=「18, 41」=「18×45+41」=851=01101010011(11桁)
「LO」=「21, 24」=「21×45+24」=969=01111001001(11桁)
「VE」=「31, 14」=「31×45+14」=1409=10110000001(11桁)
「-Y」=「41, 34」=「41×45+34」=1879=11101010111(11桁)
「OU」=「24, 30」=「24×45+30」=1110=10001010110(11桁)
「.」=「42」=42=101010(6桁)
そして、すべてをつなげれば完成です
「I-LOVE-YOU.」=0110101001101111001001101100000011110101011110001010110101010(61桁)
なんか、1,0の並びを見ているとサイバーな気分になりますね。
そして、終端パターンは「0000」(4桁)
ここまでの1,0の数字を全部数えると、78桁になります。
そのため、8の倍数にするために埋め草ビット「0」を2つ追加します(80桁になり、8×10=80と8の倍数になります)
ここまでで、桁数は80桁になり、語数は10語(80桁÷8=10)になりました。
最後に、QRコードのバージョン1・誤り訂正レベルQの容量は13語ですので、3語足りません。
そのため、埋め草ワードを3語ほど追加します。
つまり、埋め草ワードは「111011000001000111101100」(24桁)です。
これでめでたく104桁(=13語)になりました!
QRコードのバージョン1、エラー訂正レベルQの場合、「I-LOVE-YOU.」をエンコードするとデータ領域は次の104桁の1,0になります!
「00100000010110110101001101111001001101100000011110101011110001010110101010000000111011000001000111101100」
英数字モードの解説はこれでおしまい!。
あと残すは2つのモードだけでっせ。がんばりまっせ!!
今回は、「英数字モード」の具体例。これで、意味を伝えることができるよ。
これまでの復習 [表示する]
- 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種類
- どの「エンコード」方式でも、データは「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」となる
世界を平和にする言葉「I-LOVE-YOU.」
どうせサンプルを解説するなら幸せな言葉がいいですよね。私は、人生で一度も言われたことはありませんが・・・。しょんぼり。
符号化する前提として、QRコードのバージョンは1、エラー訂正レベルは「Q」を想定しましょう。
(この場合、データ領域の容量は「13語」です)
例によって、忘れないようにデータ領域の構造をもう一度書いておきます。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
モード指示子は、「英数字モード」なので「0010」(4桁)ですね。
次に、文字数指示子は、QRコードのバージョンが1なので「9桁」です。また、今回のサンプルの文字数が11文字なので、結局、「文字数指示子」は「000001011」(9桁)となります。
次に「データ」の計算です。
「英数字モード」の計算方法に従って、まず、「I-LOVE-YOU.」を2桁ずつに区切りましょう。
「I-LOVE-YOU.」=「I-」+「LO」+「VE」+「-Y」+「OU」+「.」
次に変換表をつかって、各文字を数字に置き換えましょう。
「I-LOVE-YOU.」に関係する文字だけの、「英数字モード」の「文字と数字の変換表」を書いておきます。
文字 | 変換数字 |
---|---|
E | 14 |
I | 18 |
L | 21 |
O | 24 |
U | 30 |
V | 31 |
Y | 34 |
- | 41 |
. | 42 |
変換するとこうなります。
「I-」=「18, 41」
「LO」=「21, 24」
「VE」=「31, 14」
「-Y」=「41, 34」
「OU」=「24, 30」
「.」=「42」
次に、はじめの数字を45倍して、2番目の数字と足しましょう。
(最後に1文字余ったものはそのままにします)
「I-」=「18, 41」=「18×45+41」=851
「LO」=「21, 24」=「21×45+24」=969
「VE」=「31, 14」=「31×45+14」=1409
「-Y」=「41, 34」=「41×45+34」=1879
「OU」=「24, 30」=「24×45+30」=1110
「.」=「42」=42
最後にそれぞれ11桁の2進数に、(最後の文字だけは6桁の2進数に)しましょう。
「I-」=「18, 41」=「18×45+41」=851=01101010011(11桁)
「LO」=「21, 24」=「21×45+24」=969=01111001001(11桁)
「VE」=「31, 14」=「31×45+14」=1409=10110000001(11桁)
「-Y」=「41, 34」=「41×45+34」=1879=11101010111(11桁)
「OU」=「24, 30」=「24×45+30」=1110=10001010110(11桁)
「.」=「42」=42=101010(6桁)
そして、すべてをつなげれば完成です
「I-LOVE-YOU.」=0110101001101111001001101100000011110101011110001010110101010(61桁)
なんか、1,0の並びを見ているとサイバーな気分になりますね。
そして、終端パターンは「0000」(4桁)
ここまでの1,0の数字を全部数えると、78桁になります。
そのため、8の倍数にするために埋め草ビット「0」を2つ追加します(80桁になり、8×10=80と8の倍数になります)
ここまでで、桁数は80桁になり、語数は10語(80桁÷8=10)になりました。
最後に、QRコードのバージョン1・誤り訂正レベルQの容量は13語ですので、3語足りません。
そのため、埋め草ワードを3語ほど追加します。
つまり、埋め草ワードは「111011000001000111101100」(24桁)です。
これでめでたく104桁(=13語)になりました!
QRコードのバージョン1、エラー訂正レベルQの場合、「I-LOVE-YOU.」をエンコードするとデータ領域は次の104桁の1,0になります!
「00100000010110110101001101111001001101100000011110101011110001010110101010000000111011000001000111101100」
英数字モードの解説はこれでおしまい!。
あと残すは2つのモードだけでっせ。がんばりまっせ!!