さぁさぁ、「8bit」モードの実践です。独極・QRコード担当の「あじな」です。
今回の解説にもでてきた「愛してる」を実際に符号化してみましょう。
符号化する前提として、「QRコードのバージョン」は「1」、「エラー訂正レベル」は「Q」を想定しましょう。
(この場合、データ領域の容量は「13語」です)
毎度のことですが、忘れないようにデータ領域の構造をもう一度書いておきます。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
モード指示子は、「8bitモード」なので「0100」(4桁)ですね。
次に、「文字数指示子」は、QRコードの「バージョンが1」なので「8桁」で、文字数が4個なので「00000100」(8桁)となります。
「愛してる」をエンコードすると次のようになります。
「対応表」は「こちら(http://seiai.ed.jp/sys/text/java/shiftjis_table.html)」のページに掲載されています。
「愛」=「88A0」+「4」=88A4=「1000100010100100」(16桁)
「し」=「82B0」+「5」=82B5=「1000001010110101」(16桁)
「て」=「82C0」+「4」=82C4=「1000001011000100」(16桁)
「る」=「82E0」+「9」=88E9=「1000100011101001」(16桁)
これをつなげると、「愛してる」=「1000100010100100100000101011010110000010110001001000100011101001」(64桁)になります。
そして、終端パターンは「0000」(4桁)ですね。
ここまでの1,0の数字を全部数えると、「80桁」になります。
さて、お次は「埋め草ビット」ですね・・・。でも、もうすでに、桁数が8の倍数になっているので「埋め草ビット」は必要ありません!!
ここまでで、桁数は80桁になり、「語数は10語(80桁÷8=10)」になりました。
最後に、「QRコードのバージョン1」・「誤り訂正レベルQ」の容量は「13語」ですので、「3語」足りません。
そのため、「埋め草ワード」を3語ほど追加します。
つまり、「埋め草ワード」は「11101100 00010001 11101100」(24桁)です。
これでめでたく104桁(=13語)になりました!
以上のことを合わせると、「QRコードのバージョン1」、「エラー訂正レベルQ」の場合、「I-LOVE-YOU.」をエンコードするとデータ領域は次の104桁の1,0になります!
「01000000010010001000101001001000001010110101100000101100010010001000111010010000111011000001000111101100」
ふーー。疲れますね。
「8bitモード」の解説はこれでおしまい!。
あと残すは漢字モードだけですよ!!
これまでの復習 [表示する]
- 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種類
- どの「エンコード」方式でも、データは「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」となる
実践こそ全て!
では、恒例の「実践」にうつります。今回の解説にもでてきた「愛してる」を実際に符号化してみましょう。
符号化する前提として、「QRコードのバージョン」は「1」、「エラー訂正レベル」は「Q」を想定しましょう。
(この場合、データ領域の容量は「13語」です)
毎度のことですが、忘れないようにデータ領域の構造をもう一度書いておきます。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
モード指示子は、「8bitモード」なので「0100」(4桁)ですね。
次に、「文字数指示子」は、QRコードの「バージョンが1」なので「8桁」で、文字数が4個なので「00000100」(8桁)となります。
「愛してる」をエンコードすると次のようになります。
「対応表」は「こちら(http://seiai.ed.jp/sys/text/java/shiftjis_table.html)」のページに掲載されています。
「愛」=「88A0」+「4」=88A4=「1000100010100100」(16桁)
「し」=「82B0」+「5」=82B5=「1000001010110101」(16桁)
「て」=「82C0」+「4」=82C4=「1000001011000100」(16桁)
「る」=「82E0」+「9」=88E9=「1000100011101001」(16桁)
これをつなげると、「愛してる」=「1000100010100100100000101011010110000010110001001000100011101001」(64桁)になります。
そして、終端パターンは「0000」(4桁)ですね。
ここまでの1,0の数字を全部数えると、「80桁」になります。
さて、お次は「埋め草ビット」ですね・・・。でも、もうすでに、桁数が8の倍数になっているので「埋め草ビット」は必要ありません!!
ここまでで、桁数は80桁になり、「語数は10語(80桁÷8=10)」になりました。
最後に、「QRコードのバージョン1」・「誤り訂正レベルQ」の容量は「13語」ですので、「3語」足りません。
そのため、「埋め草ワード」を3語ほど追加します。
つまり、「埋め草ワード」は「11101100 00010001 11101100」(24桁)です。
これでめでたく104桁(=13語)になりました!
以上のことを合わせると、「QRコードのバージョン1」、「エラー訂正レベルQ」の場合、「I-LOVE-YOU.」をエンコードするとデータ領域は次の104桁の1,0になります!
「01000000010010001000101001001000001010110101100000101100010010001000111010010000111011000001000111101100」
ふーー。疲れますね。
「8bitモード」の解説はこれでおしまい!。
あと残すは漢字モードだけですよ!!