スマホのカメラを向けると一瞬で開く、あの白黒のモザイク。
ポスター、レジ横、名刺、宅配便の伝票。気づけば1日に何度も読み取っているのに、あの模様の中で何が起きているのかを考えたことは、ほとんどないと思います。私もWeb制作の仕事で年に何十個とQRコードを作りますが、長いこと「読めればいい」で済ませていました。
変わったきっかけは、真ん中に企業ロゴが入ったQRコードを渡されたときです。中央を堂々と塗りつぶしてあるのに、ちゃんと読める。なぜ?
調べていくと、開発の出発点が昼休みの囲碁だったこと、三隅にある四角の比率が「印刷物を片っ端から数えて決めた数字」だったこと、そして世の中に広まっている「誤り訂正レベルHなら30%まで隠せる」という説明が、かなり危ない省略だということが分かってきました。
この記事では、QRコードが生まれた経緯から、ロゴを重ねても読める仕組み、そして「30%隠せる」がなぜ誤解なのかまでを、開発元デンソーウェーブの公式情報をもとにまとめます。
ついでに白状しておくと、私は一度、印刷に出したチラシのQRコードが「機種によっては読めない」という連絡をもらったことがあります。原因はロゴではなく、見栄えを優先してコードの周りの白い余白を詰めていたこと。あれは冷や汗をかきました…。
雑学として読んでも面白い話ですし、チラシや名刺にQRコードを載せる予定がある人には、そのまま印刷事故の予防になります。
QRコードのヒントは、昼休みの囲碁だった
QRコードが世に出たのは1994年です。
作ったのは自動車部品メーカーのデンソー(現在はデンソーウェーブ)。きっかけは1992年、製造現場から届いた「バーコードの読み取りをもっと速くできないか」という要望でした。多品種少量生産に移ったことで1つの部品に紐づく情報が増え、バーコードの桁数では足りなくなっていたのです。
プロジェクトを率いたのは原昌宏さん。開発チームはたった2人で、約1年半で完成させています。世界規格になったものが、社内の小さなチームから出てきたというのが、私がこの話でいちばん驚いたところでした。
そして、情報を2次元に並べるという発想のヒントになったのが、昼休みの趣味だった囲碁です。
碁盤に並ぶ白と黒の石。縦にも横にも情報が並んでいて、しかも多少ずれていても位置は読み取れる。原さんはそこから、縦横2方向を使えばバーコードより桁違いに多くの情報を詰め込めると考えました。
昼休みの遊びが、30年後には世界中のレジで動いている。出発点がこれというのは、なかなかの話です。
三隅の四角は「印刷物で一番使われていない比率」だった
QRコードの三隅にある、あの大きな四角。
正式には「切り出しシンボル」(位置検出パターン)と呼ばれます。これがあるおかげで、読み取り機はコードがどこにあってどちらが上なのかを一瞬で判断でき、360度どの向きから読んでも一発で通ります。
面白いのは、四角の中の白黒の幅です。中心を横切る線でスキャンすると、黒・白・黒・白・黒の幅が必ず1対1対3対1対1になるように設計されています。
ではなぜこの数字なのか。開発チームは、チラシや雑誌、段ボールに印刷されている絵や文字をすべて白黒に直し、その面積の比率を徹底的に調べ上げました。そうして「印刷物の中で一番使われていない比率」として浮かび上がったのが、1対1対3対1対1だったのです。
つまりあの三隅の四角は、デザインの都合でも、計算式から出てきた数でもありません。世の中の印刷物を片っ端から数えた末に、「これなら他の何かと見間違えようがない」と確かめて選ばれた形です。
やり方が力技すぎて、読んだとき笑ってしまいました。理屈で導いたのではなく、数えて確かめた。この泥臭さ、好きです!
ちなみに四角が4つではなく3つなのにも意味があります。4隅すべてに同じ模様があったら、上下左右の区別がつきません。1隅だけ空いているからこそ、機械は向きを判定できるわけです。
ロゴを重ねても読めるのは、誤り訂正のおかげ
本題のロゴです。
QRコードには、汚れたり欠けたりしてもデータを復元できる「誤り訂正」という仕組みが組み込まれています。CDに多少の傷が付いても音が飛ばないのと同じ発想で、リード・ソロモン符号という技術が使われています。
訂正能力は4段階から選べます。
- レベルL 復元できるのはおよそ7%
- レベルM およそ15%
- レベルQ およそ25%
- レベルH およそ30%
デンソーウェーブの公式サイトによれば、一般的にはM(15%)で運用されるケースが多いとのこと。工場のように汚れやすい環境ではQやHを選び、それほど汚れない環境でデータ量が多いときはLを選ぶ、という使い分けです。
ただしタダで手に入る能力ではありません。訂正能力を上げるほど、その分の符号を余計に持つ必要があるので、同じデータでもコードのマス目が増えていきます。同じURLをレベルLで作ると25×25、レベルHにすると33×33になった、という比較もあります。
小さく印刷したいのにレベルHを選んだ結果、1マスが潰れて逆に読めなくなる。ここは完全にトレードオフです。
参考:誤り訂正機能の解説ページ
「レベルHなら30%隠せる」は、かなり危ない省略
「誤り訂正レベルHなら、面積の30%までロゴで隠せる」
ロゴ入りQRコードの作り方を検索すると、この説明に何度も出会います。私も長いことそう理解していました。でも、これは言葉が足りません。
30%という数字が指しているのは、コードの「面積」ではないからです。QRコードはデータをコードワードという一定の単位に区切って持っていて、誤り訂正レベルは、そのコードワードのうち何個までなら壊れても復元できるかを表しています。30%はデータの個数に対する割合であって、絵として見たときに塗りつぶしてよい面積の割合ではありません。
しかも、誤り訂正の対象にならない部分があります。三隅の切り出しシンボルと、その間を結ぶ点線のようなタイミングパターンです。ここが潰れると、データを復元する以前に「コードがある」と認識してもらえません。
実際の検証もあります。ITmediaが同じURLから作った2つのQRコードを少しずつ消していったところ、片方は面積比でわずか3.2%消した時点で読み取り不能になりました。もう片方は20%以上隠れても読めたそうです。元のURLは同じなのに、この差。
だから「Hにしておけば3割までは大丈夫」は通用しません。落としどころは、ロゴは中央に控えめに置き、残った訂正能力は印刷のかすれやカメラのブレといった現実の劣化のために取っておくこと。ロゴのために使い切ってはいけない予算、という感覚が近いです。
開発元は「ロゴを重ねないでほしい」と書いている
ロゴ入りのQRコードは街にあふれていますが、開発元がそれを推奨しているかというと、答えははっきり「していない」です。
公式FAQにある答え
デンソーウェーブのFAQには、イラストやデザインを重ねると読み取り不良や読み取り品質の低下につながるため、安定した読み取りという面からJISやISOの規格に従って使ってほしい、という趣旨が書かれています。装飾したいなら、コードの中に自由に使えるキャンバス領域を持つ「フレームQR」を使ってほしい、という案内もあります。
禁止されているわけではありません。ただ、動くかどうかは保証の外。ロゴ入りで作るなら実機確認まで自分でやる、というのが正しい距離感だと思います。
特許を持ちながら、権利行使しないと宣言した
QRコードがここまで広まった理由として外せない話が、もう1つあります。
デンソーウェーブはQRコードの特許(特許第2938338号)を保有しています。そのうえで、規格化されたQRコードについては権利行使を行わない、と宣言しました。規格そのものも公開されていて、1999年1月にJIS X 0510として、2000年6月にISO/IEC 18004として制定されています。
規格に沿ったQRコードの利用に、ライセンスも使用料も要りません。誰でも自由に使えます。
「多くの人に使ってほしい」という理由で仕様をオープンにした判断が、レジでも名刺でも当たり前に使われる今につながっています。
なお「QRコード」はデンソーウェーブの登録商標です。公式サイトが「QRコード®」と書いているのはそのため。使うこと自体は自由ですが、頭の隅に入れておくといい豆知識です。
QRコードは1種類じゃない
普段わたしたちが見ているQRコードは、正確には「モデル2」と呼ばれるものです。
最初に作られたモデル1は最大でも73×73セル、数字なら1167桁まででした。それを改良したモデル2は最大177×177セル、数字で7089桁まで入ります。今「QRコード」と言えば、ほぼこのモデル2を指します。
兄弟もいます。
- マイクロQRコード 切り出しシンボルが1つだけ。最大17×17セルで数字35桁まで。周囲の余白も2セル分で足りるので、小さな部品にも印字できる
- rMQRコード 細長いスペースに収まる形。マイクロQRより多くの情報を持てる
- SQRC データの読み取りを制限できるコード。社内情報やプライバシー情報の管理向け
- フレームQR コードの中に文字や画像を置けるキャンバス領域を持つ。装飾したいときの正規ルート
ロゴを重ねて読めるかどうかで悩むくらいなら、最初からフレームQRを検討したほうが筋がいい場面もあります。私も、仕事で提案する必要が出てくるまで存在を知りませんでした。
参考:QRコードの種類の一覧
私がQRコードを作るときに気をつけていること
冒頭に書いた、チラシのQRコードが一部の機種で読めなかった件。犯人は余白でした。
QRコードの周りには「クワイエットゾーン」と呼ばれる白い余白が必要で、通常のQRコードでは4セル分が求められます。デザイン上はただの空白に見えるので詰めたくなるのですが、ここを削ると読み取り機がコードの端を見つけられません。公式がマイクロQRの特長として「マージンも2セル分で足りる」とわざわざ書いているのは、裏を返せば通常のQRコードはもっと広い余白が要る、ということです。
そのうえで、私がいつもやっているのは3つ。
1つ目は、埋め込むURLをできるだけ短くすることです。文字数が減ればセルの数も減り、1マスが大きくなります。同じサイズで印刷するなら、URLが短いほど読み取りは楽になります。長いパラメータ付きのURLをそのまま突っ込むと、驚くほど細かいコードができあがります。
2つ目は、誤り訂正レベルをMから動かさないこと。ロゴを入れない限り、Mで困ったことはありません。Hにしてマス目を細かくするより、Mのまま大きく印刷するほうが確実です。
3つ目は、入稿やWeb公開の前に、手持ちの端末で必ず読むことです。iPhoneの標準カメラ、Androidの標準カメラ、それに読み取り機能を持つ決済アプリ。読み取りエンジンはアプリごとに違うので、1台で読めたから大丈夫、とはなりません。
とくに白黒を反転させたQRコードや、グラデーションをかけたQRコードは端末によって結果が割れます。デザイン性を取るなら、その分の検証時間を最初から見込んでおくことです。
まとめ
白黒のモザイクの中身を、ひととおり追いかけてきました。
三隅の四角が1対1対3対1対1なのは、チラシや雑誌や段ボールを白黒に直して面積比を数え尽くした末に、「印刷物の中で一番使われていない比率」として選ばれたからでした。2人のチームが1年半かけて作ったものが、30年経った今も同じ形で世界中のレジに並んでいる。地味にすごい話だと思いませんか。
実用面で効いてくるのは、誤り訂正レベルHの「30%」の読み方です。あれはコードワードというデータの単位の個数に対する復元率であって、絵として塗りつぶしてよい面積ではありません。ITmediaの検証では、面積比3.2%消しただけで読めなくなったQRコードもありました。
ロゴを重ねたQRコードが読めるのは誤り訂正のおかげですが、「Hにしたから3割まで安全」という保証はどこにもなく、開発元のデンソーウェーブ自身が規格どおりの利用を推奨しています。
デザインを優先したいなら、無理にロゴを重ねるより、公式が用意しているフレームQRという選択肢があります。キャンバス領域が最初から確保されているので、読めるかどうかで悩まずに済みます。
私の結論はシンプルです。誤り訂正レベルはMのまま、URLは短く、余白は4セル分きっちり空ける。そして入稿前に複数の端末で実際に読む。
チラシの件で冷や汗をかいて以来、入稿前のチェックリストにこの4項目を並べてあります。刷り上がってから気づいても、どうにもならないので。