あまりに前置きが長すぎて、QRコードのお話ということを忘れられてないでしょうか。
独極・QRコード担当の「あじな」です。
この記事に需要があるのか・・・不安と戦う毎日です。
はやく、符号化の方法について書けよ!・・・という気持ちはわかるのですが、重要なことなので許してください。
前回、QRコードには4種類のモードがあるという解説をしましたが、どのモードでもデータ領域は次のような構造になります。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
実際は、こんな感じの1と0の並びになります。
・・・・。皆さんがおっしゃりたいことはよくわかります。
もっと簡単にしろよ!と。すみません。でも、決まりなんです。
ただ、このデータ領域の構造は「データ」部分を除けば、ウルトラ簡単ですので、ちゃちゃっと解説します。
これまで解説してきた通り、モードが違うと白黒の四角の持つ意味が変わってきます。
(例えば、同じ「0011」でも、「数字モード」の場合は「894」を意味して、「漢字モード」の場合は「愛」を意味するといったイメージです)
なので、「このQRコードは○○モードで書かれてますよ」と教えてあげる必要があるので、「モード指示子」があります。
「モード指示子」は4桁の1,0であらわされます。
※ちなみに、QRコードでは「白い四角」と「黒い四角」で情報を表すのですが、サイト上で□や■を書いてもわかりづらいので、□のことを0、■のことを1として書きます。
これだけです。ウルトラ簡単でしょ。
「QRコード」に入っている文字数を「二進数」表記でデータに記載する必要があります。
ただし、「QRコード」の「バージョン」や「モード」によって「二進数」の桁数が異なるので注意してください。
「数字モード」の場合の「文字数指示子」の桁数は次の表のとおりです。
例えば、数字モードで11個の数字を書きたい場合、QRコードのバージョンが1だと数字指示子は「0000001011」になります。
バージョンが10~26だと、「000000001011」です。(わかりづらいのですが、先頭の0が2個増えました)
うーーん!なかなかデータの表し方に入れないですね!!
でも、次回はいよいよ「数字モード」でのデータの表し方を解説しますよ!!
独極・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種類
ようやく符号化の方法に!?
符号化の具体的な方法に入る前に、「符号の構造」についてちょっと解説をさせてください。はやく、符号化の方法について書けよ!・・・という気持ちはわかるのですが、重要なことなので許してください。
前回、QRコードには4種類のモードがあるという解説をしましたが、どのモードでもデータ領域は次のような構造になります。
「モード指示子」+「文字数指示子」+「データ」+「終端パターン」+「埋め草ビット」+「埋め草ワード」
実際は、こんな感じの1と0の並びになります。
・・・・。皆さんがおっしゃりたいことはよくわかります。
もっと簡単にしろよ!と。すみません。でも、決まりなんです。
ただ、このデータ領域の構造は「データ」部分を除けば、ウルトラ簡単ですので、ちゃちゃっと解説します。
モード指示子
QRコードが「数字モード」なのか、「英数字モード」なのか、「漢字モード」なのか、「8bitモード」なのかを示す記号です。これまで解説してきた通り、モードが違うと白黒の四角の持つ意味が変わってきます。
(例えば、同じ「0011」でも、「数字モード」の場合は「894」を意味して、「漢字モード」の場合は「愛」を意味するといったイメージです)
なので、「このQRコードは○○モードで書かれてますよ」と教えてあげる必要があるので、「モード指示子」があります。
「モード指示子」は4桁の1,0であらわされます。
※ちなみに、QRコードでは「白い四角」と「黒い四角」で情報を表すのですが、サイト上で□や■を書いてもわかりづらいので、□のことを0、■のことを1として書きます。
モード | モード指示子 |
---|---|
数字モード | 0001 |
英数字モード | 0010 |
8bitモード | 0100 |
漢字モード | 1000 |
文字数指示子
次は、「文字数指示子」です。「QRコード」に入っている文字数を「二進数」表記でデータに記載する必要があります。
ただし、「QRコード」の「バージョン」や「モード」によって「二進数」の桁数が異なるので注意してください。
「数字モード」の場合の「文字数指示子」の桁数は次の表のとおりです。
バージョン | 文字数指示子の桁数 |
---|---|
1~9 | 10 |
10~26 | 12 |
27~40 | 14 |
例えば、数字モードで11個の数字を書きたい場合、QRコードのバージョンが1だと数字指示子は「0000001011」になります。
バージョンが10~26だと、「000000001011」です。(わかりづらいのですが、先頭の0が2個増えました)
うーーん!なかなかデータの表し方に入れないですね!!
でも、次回はいよいよ「数字モード」でのデータの表し方を解説しますよ!!