「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
昨今、キャッシュレス決済の推進する動きが活発になっております。政府は「2025年までにキャッシュレス決済の比率を40%にする」と掲げており、今後も何らかの推進がされていくものと思われます。キャッシュレス決済の中でもQRコード決済がここ数年で急増しており、コンビニやドラッグストアをはじめとした店舗でも対応がされるようになってきました。また、中国ではQRコード決済が主流となっており、現金を使用する人はすでに少数である、という話もあります。今回、QRコードについて簡単ではありますが、ご紹介させていただきます。
QRコード(※)は株式会社デンソーウェーブが1994年に開発した2次元コード(図2.1参照)です。
※ QRコードは株式会社デンソーウェーブの登録商標です。
図2.1. QRコード
QRコードの特徴として以下があります。
特徴1 大容量の情報を小さなコードに表現
図2.2. コードサイズ比較(上:従来のバーコード、下:QRコード)
QRコードは省スペースを実現しつつ、大容量データ保管を実現していますが、実際に運用する際にどれだけのスペースがあればよいか算出しておくのが望ましいです。算出手順は以下の通りです。
■算出手順誤り訂正機能とはQRコードが汚れていたり、破損していても、コード自身でデータを復元する機能です。4段階までのレベル設定が用意されており、使用環境に合わせて設定が可能です。レベルを上げれば誤り訂正能力は向上しますが、データが増えるため、コードサイズは大きくなってしまいます。工場などの汚れやすい環境では「レベルQ」もしくは「レベルH」を選択し、汚れない環境であれば「レベルL」を選択するケースもありますが、標準的な使用環境では「レベルM」で運用されるケースが多いようですので、「レベルM」をベースにして環境に合わせた設定を検討するとよいと思います。
表3.1.1. 誤り訂正能力
レベルL | 約7% |
---|---|
レベルM | 約15% |
レベルQ | 約25% |
レベルH | 約30% |
QRコードのバージョンは1〜40まで設定されており、それぞれのバージョンによってセル数が決められています。(セルとは、QRコード内の黒白の点1つのこと)
バージョン1では21×21セルでQRコードが構成されており、バージョンが増えるごとに4セルずつ増えていき、バージョン40では177×177セルのQRコードとなります。バージョンが増えるごとに保管できるデータ量も増えていきます。
表3.2.1. バージョンごとのデータ保管量(バージョン3まで)
表3.2.2. 合計データビット数算出
例えば、入力したいデータが数字35桁、漢字10文字、誤り訂正レベルを「M」で最適なバージョンを求めるとします。データビット数は以下の通りとなります。
「数字」のデータビット
4 + 10 + 10×11 + 7 = 131
「漢字」のデータビット
13×10 = 130
合計のデータビット数
131 + 130 = 261
表3.2.1のデータビット数と誤り訂正レベル「M」が交差する値で「261」より大きく最も小さいバージョンを探すと、バージョン3となり、これが最適なバージョンとなります。
QRコードのセルサイズは、安定運用のためには1セルあたり4ドット以上で印字することを推奨されております。セルサイズを設定するには、印字するプリンタ、読み取るスキャナーの性能にも依存します。
例えば、プリンタの解像度が300[dpi]の場合、4ドット/セルを印字するとセルサイズは
25.4[mm]÷300[ドット]×4[ドット] = 0.338...[mm]
となり、およそ0.34mmとなりますが、プリンタの解像度を600dpiまであげると、4ドット/セルを0.17mmで印字できるため、QRコードの縦横サイズを半分にでき、全体のQRコードサイズを1/4にすることができます。
しかし、スキャナーの分解能が0.17mmより大きいものしかない場合は、このQRコードを読み取ることはできません。この場合は、解像度を下げる、もしくは1セルあたりのドット数を増やすことで、セルサイズを大きくして、スキャナーの分解能以上のサイズにする必要があります。この場合は、1セルあたり5ドットで印字すれば、セルサイズは0.21mmとなり、スキャナーで読み取ることが可能となります。
このように印字するプリンタ、読み取るスキャナーの性能も考慮してセルサイズを設定する必要があります。
実際にQRコードを運用するにあたって、QRコードの外側にそれぞれ4セル分のマージンを確保する必要があります。事前に決めたバージョンのセル数(図3.4.1の赤枠)にマージン分を加算した値が最終的なセル数となります。最終的なセル数とセルサイズから最終的なQRコードの領域(図3.4.1の青枠)が算出されます。例として、以下条件の場合に必要なQRコードの領域を手順に従って算出してみます。
図3.4.1. QRコードのマージン
QRコードの必要領域を算出した結果、印字したいスペースに収まらなかった場合には以下の検討を行ってください。
QRコードを実際に導入するにあたってどのように作ればいいのか、という部分も含めて簡単ですがご紹介させていただきました。
QRコードにも今回紹介した一般的なコード以外にも様々な種類があり、用途に合わせて最適なQRコードが選択できます。導入するにあたって、本レポートが助けになれば幸いです。
(T.M.)
関連ページへのリンク
関連するソフテックだより