こんにちは、まっちゃんです。去年、どうしても解決できなかった疑問が今日解決できたのでシェアします。
それはズバリ、「なぜQRコードは被りがでないのか」です。
「QRコード 被らない」で検索してもなぜか「質問の意図がわからない」という情報だけ出てきて解決できませんでしたが、今日「QRコード 限界」で検索したら解決しました。前者のワードでも今度は有益な情報が色々手に入ったのでGoogleアルゴリズムも進化しているようです。
それでは本題です。「なぜQRコードは被りが出ないのか」
QRコードが被らない理由と自分が被ると勘違いした理由
- QRコードは途方もない量のデータ(英数字約4200文字)を記録できる
- QRコードは図形ではない。2進数で表された英数字の文字列だ。白黒のまとまりごとに英数字を表していて、解読するとURLと全く同じものになる。(QRコードの用途がリンクの場合)
この2点が主な被らない理由であり、知らなかったがために自分は被ると勘違いした理由です。
なぜQRコードに限界がこないのか=QRコードはかなりの長さの文字列を表せる
まず、QRコードは思った以上の情報を記録できます。
実際に作ってみましょう。親切なサイトはあるもので、こちらで無料で無制限にQRコードを作成することができます。
このブログの一記事をQRコードにしました。普段見るQRコードもこれぐらいの複雑さですよね。これくらいの白黒の組み合わせならそれなりの情報量しかないように思えますが…
限界の270文字のURLを入れてQRコードにしたところ、こんなにも大きく複雑になります。このQRコードを見れば理屈を知らなくともかなりの量の情報が入れられそうだと感じられますよね。
https://mattyan.org/translate-google-vs-deepl/aihfiahfiahfiashfiadhjkfahitueagiohasjkghakhfiuuahvkjhvjkjlahgiohsaghjkghiasefoa
@tadjlkajfladj;lajeoiajrfdjafklajoiehafjdklafjlafjlka;fjl;ajjd;alfjl;ajejaofjaop
ejflkajd;lfaijeoifjla;kjdsfl;ajf;oajf;asjfoajfoeijlajd;la
↑ちなみに入れた全文はこんな感じです。ここまで長文なURLなんてそうそうないですよね…
また、270文字はあくまでこのサイトで入力できる上限であり、ここからさらに情報を増やすこともできます。このサイトには
QRコードの規格では2953文字まで対応していますが、画像が大きくなるので実用的ではありません。当サイトでは、古い携帯電話でも読み取りが確実な270文字(バイト換算)を上限にしています。
https://qr.quel.jp/url.php#sidebar-nav__faq
と記載されています。
サイト内限界の270文字のURLですら普通見るものではないので、いくら今後Webサイトが増えてドメインが取り合いになり長文ばかりになったとしても、10倍の2953文字に達することはこの数十年ではまずないでしょう。URLを記載する分には限界が来てしまうというのはほぼなさそうです。
なぜURLが違えば必ずQRコードの模様も違うのか=QRコードは柄じゃなくて文字だから
最初に提示した理由の2点目です。
- QRコードは図形ではない。2進数で表された英数字だ。白黒のまとまりごとに英数字を表していて、解読するとURLと全く同じものになる。(QRコードの用途がリンクの場合)
かなり長くなってしまいましたが、そういうことです。
この記事が非常にためになりました。手間はかかりますが、読むことで人力でQRコードを解読できるようにもなります。
多分かなり間違っていますが、自分流に解釈するとこうなります。
「QRコードとは、カメラが読み取れるように作られた機械用の文字列である!!(ドーン!!)」
ナ、ナンダッテー!!
僕はQRコードはURLの一文字一文字と対応しているのではなく、URLごとに画像を発行してそれを何らかの方法で紐づけていると勘違いしていました。ランダムに生成されたただの画像、図形の集まりだと思ったから、偶然同じ画像を発行してしまって混乱することがあるのではないかと思っていました。
しかし実際にはリンクを張った記事の通り、QRコードはいくつかの白黒ごとにURLの一文字一文字を表しています。だからリンクが長ければ長いほどQRコードの白黒も細かくなっていったわけですね。
携帯電話はカメラでこの画像をぐねぐね読み取り、1文字1文字を文字として読み取っていくわけです。
なぜQRコードは被らないのかという質問は、「日本人よ、なぜ『りんごはおいしい』という文章が『みかん食べたい』という文章とダブってしまわないのか」という質問だったわけです。そりゃ文章を文章として認知していたら質問の方が訳が分からない訳ですね(謎)
まとめ
なぜ限界が来ないのか→限界がないことはないが、途方もない量の文字列を記録できるのでURLを記録する分にはそうそう限界にたどり着けない(バカ長いURLをわざと作らなければ)
なぜ被らないのか→QRコードはカメラ用の文字列のようなものだから。
いかがだったでしょうか。理屈をきちんと理解されていた方からすれば「こいつは何を当たり前のことを言っているんだ」と思われるかもしれませんが、僕はこの理屈を知れてとてもすっきりしました。
もしかしたらまたこういった雑学系の記事も書いていくかもしれないので、よろしければトップページのブックマークの方お願いしますm(__)m
コメント