QRコードはなぜ少し欠けても読み取れるの?

当ページのリンクには広告が含まれています。
QRコードの仕組みや、一部が欠けても読み取れる理由を解説する記事のアイキャッチ画像。QRコードのイラストと「リード・ソロモン符号によるデータ修復」を示すデザインで構成されている。

QRコードには欠けたデータを補う「誤り訂正」の仕組みがあるから

QRコードには汚れや破損に備えてデータを自動で修復する「リード・ソロモン符号」という技術が組み込まれています。

QRコードが欠けても読めるのは「誤り訂正」があるから

普段何気なくスマホで読み取っているQRコードですが、一部が欠けていたりシールで隠れていたりしても平気で読み取れることがありますよね。あれは偶然ではなく最初から想定された設計です。

QRコードの中には実際のデータとは別に「誤り訂正用のコードワード」と呼ばれる補助データが埋め込まれています。CDやDVDの読み取りにも使われているリード・ソロモン符号という技術で、欠損した部分を数学的に計算して元のデータを復元する仕組みです。汚れや破損によって一部の情報が読み取れなくても、残ったデータと誤り訂正用のデータを組み合わせることで元通りに復元できるというわけですね。

誤り訂正レベルは4段階から選べる

QRコードの誤り訂正能力には L・M・Q・H という4つのレベルがあり、作成時にどのレベルにするか選ぶことができます。レベルを上げるほど復元できる範囲は広がりますが、その分コード自体のマス目が細かくなりサイズも大きくなります。

レベル復元できる目安向いている用途
L約7%汚れにくい環境でデータ量を優先したい場合
M約15%一般的な用途(最も普及しているレベル)
Q約25%屋外掲示や汚れやすい環境
H約30%ロゴ入りQRコードや過酷な環境

この数値は「コード全体に対する復元率」の目安です。用途に応じて工場のようにコードが汚れやすい環境ではQやHを、データ量を優先したい場合はLを選ぶ、というふうに使い分けられています。

参考: 誤り訂正機能について|QRコードドットコム(デンソーウェーブ)

ロゴ入りQRコードが読み取れるのも誤り訂正のおかげ

QRコードで真ん中にロゴが入っているものをよく見かけますよね。あれもこの誤り訂正機能を利用したもので、多くの場合レベルHで作成し「ロゴの部分は破損している」とみなして復元させています。隠れてしまう部分がある前提で、あらかじめ余裕を持たせて設計しているんですね。

このページのURLをBraveブラウザで作成してみました。真ん中に結構大きめのBraveのロゴがありますね。四角ではなく点字のような丸っぽい感じでもいけるんですね。

Braveで作成したQRコード
Braveブラウザで作成したこのページのQRコード

QRコードはどこが欠けても読めるわけではない

でもでも誤り訂正にも限界はあります。破損の量が選んだレベルの復元率を超えると、さすがに元のデータには戻せません。

特に注意したいのが、QRコードの3つの角にある大きな四角い模様です。これは「位置検出パターン」と呼ばれ、スマホや読み取り機にQRコードの位置や向きを伝える目印です。

中央の一部が隠れても読めることはありますが、この角の目印が隠れるとそもそもQRコードとして認識できなくなることがあります。


身近なIT用語の「なんで?」をゆるく知りたい方はIT雑学・ぷちQAカテゴリもあわせてどうぞ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!