SWAPQR← ガイド

ハーフトーンQRコードとディザリングQRコード

どちらのアプローチも機能するQRコードの中に絵を入れます。しかし同じ技術ではなく、部屋の向こうからでも見分けがつきます。一方は網戸越しの絵のように、他方は写真の粒子のように見えます。この記事では、それぞれが何をするか、なぜ見た目が異なるか、一方が明らかに勝つ場面、どちらも勝てない場面を説明します。

ブラウザでQRコードを作成する →四角を一度だけ印刷。リンク先は後から決める。

ハーフトーン方式

2013年頃から出回っている古典的なハーフトーンQRジェネレーターは、コードのサイズを3倍にします。各モジュールが3×3のサブピクセルブロックになります。中央のサブピクセルはモジュールが要求する色に固定され、残りの8つは(すでに閾値処理された)絵が示す値を自由に取ります。スキャナーはモジュールの中心をサンプリングするので、正しくなければならないのは中心であり、実際に正しいのです。機能しますし、認識しやすい見た目を生みます。絵の上に規則的な点のグリッドが乗ります。両方向で3ピクセルごとに固定され、それらの固定ピクセルが完璧に整列するからです。目は規則的な格子を見つけるのが非常に得意です。一度見えると、見えなくすることはできません。このアプローチは実装が簡単で理解しやすく、だから多くのジェネレーターが使っており、画面上でネイティブサイズでしか見られないコードには十分実用的です。限界は印刷で現れます。印刷では何もネイティブサイズで見られず、モジュールあたり1つの固定ピクセルが、プリンター、紙、照明、カメラのリサンプリングを単独で生き延びなければなりません。

ディザリング方式

ディザリング方式は1つのことを変え、それがすべてを変えます。絵を先に閾値処理してからピクセルを上書きする代わりに、誤差拡散で絵をディザリングし、強制されたピクセルをその過程の一部として扱います。値を強制し、強制によって生じた誤差を測り、Floyd–Steinbergが他の誤差を押し出すのと同じように隣接ピクセルに押し出します。その結果、強制されたピクセルは補償されます。周囲のピクセルは局所平均を正しく保つように変化し、強制された点は画像の残りと同じ不規則な斑点の中に収まります。目が捉える格子はなく、絵は網戸越しの絵ではなく絵として読めます。強制領域も1ピクセルである必要はありません。各モジュールの中央にある、サイズが設定可能なブロックにでき、それがSWAPQRの「写真 ↔ コード」バランスが制御するものです。モジュールの残り、そしてその中の絵は、誤差拡散が残すものであり、構成上、それが属するモジュールにとって正しい平均階調を持ちます。

並べて比較

ハーフトーン方式では、コードを配置する前に絵が閾値処理されます。ディザリング方式では、2つが1回のパスで同時に起こります。ハーフトーンはモジュールあたり1つのサブピクセルを完璧なグリッド上で強制し、ディザリングは調整可能なサイズの中央ブロックを斑点の中に隠して強制します。ハーフトーンの視覚的特徴は画像上の規則的な点の格子で、ディザリングは写真の粒子です。ハーフトーンには調整の余地がほとんどなく、9ピクセルのうち1つが固定でそれで終わりですが、ディザリングは各モジュールのどれだけを強制するかを連続的に選べます。至近距離での堅牢性では、ハーフトーンは弱く、モジュールあたり1ピクセルはリサンプリングを生き延びられません。一方ディザリングの結果は調整可能で、このガイドの至近距離の記事が示すように測定可能です。モジュールの約半分未満を強制すると、古いブロック閾値処理の読み取り機は極端な至近距離で苦戦し、それ以上ではしません。2つの方式は同じテーマの変奏ではありません。「絵はどこに行くか」という問いに異なる順序で答えており、その順序こそが目に見えるものです。

ディザリングが大差で勝つ場面

強制の量が固定の9分の1ではなくダイヤルであるため、ディザリングジェネレーターは意図的に絵と信頼性を交換できます。これは見た目だけの違いではありません。モジュールあたり1ピクセルの強制では、コードはプリンターからセンサーまでのすべてのリサンプリング段階を1つのピクセルが生き延びることに依存し、多くの場合生き延びません。インクジェットはそれを広げ、レーザープリンターは丸め、ラミネートはぼかし、斜めからのカメラは2つのセンサーピクセルにまたがって滲ませ、デコーダー自身の縮小は隣接ピクセルと平均します。代わりにブロックを強制し、誤差拡散にその代償を払わせることが、この技術を印刷で持ちこたえさせるものです。それはまた、同じジェネレーターが、同じ絵と同じリンクから、1つのコントロールを動かすだけで、人がスマートフォンを押し当てるステッカー用のほぼ無地のコードと、1メートル離れてスキャンされるポスター用のほぼ純粋な写真の両方を作れることを意味します。ハーフトーンにはそのようなコントロールがありません。信頼性と見た目は方式によって固定されており、より堅牢にする唯一の方法はより大きな固定領域のためにそれを捨てることで、その時点でそれは補償の劣るディザリング方式になっています。

どちらも勝てない場面

どちらのアプローチも悪い写真を良くはしませんし、長いペイロードを生き延びません。どちらも最高レベルの誤り訂正を必要とし、それ自体がコードを密にします。平坦で低コントラストの画像はどちらでも同じ理由で失敗します。モジュールと競合する均一なテクスチャを生むからです。長いリンクはどちらでも失敗します。モジュールが小さくなりすぎて絵を保持できないからです。そしてどちらも結局は意図的なトレードオフです。画像を買うために信頼性を使っているのです。画像に価値がある場所で使い、印刷物をテストしてください。名前を挙げておく価値のある第三の系統があります。通常のコードの背後に手を加えていない絵を置いてモジュールを明るくするだけのジェネレーターや、中央からロゴを打ち抜くジェネレーターです。これらは絵をまったく符号化していません。損傷を吸収するために誤り訂正に頼っているだけです。まったく有効ですが、はるかに面白みがなく、得られる画像の量もはるかに限られます。全コストが誤り訂正の予算から支払われ、何もそれを補償しないからです。

項目ハーフトーン(3×3)ディザリング(誤差拡散)
絵が閾値処理される時点コードを配置する前コードと同時
強制されるピクセルモジュールあたり1つ、完璧なグリッド上中央ブロック、斑点の中に隠れる
視覚的特徴画像上の規則的な点の格子写真の粒子
調整の余地ほとんどなし。9ピクセルのうち1つが固定連続的。各モジュールのどれだけを強制するかを選べる
至近距離での堅牢性弱い。モジュールあたり1ピクセルはリサンプリングを生き延びない調整可能で、測定可能

よくある質問

SWAPQRはどちらを使っていますか?

ディザリング方式です。絵はFloyd–Steinberg誤差拡散で縮約され、コードが必要とするピクセルは強制されてその誤差が隣接ピクセルに拡散され、強制ブロックのサイズが「写真 ↔ コード」バランスです。

ハーフトーンコードにグリッドがかかって見えるのはなぜですか?

すべての3×3ブロックでちょうど1つのサブピクセルが固定され、それらの固定ピクセルが両方向で完璧に整列するからです。目は規則的な格子をすぐに見つけます。

中央からロゴを切り抜くのは同じことですか?

いいえ。それは損傷した領域を吸収するために誤り訂正に頼るもので、損傷を補償するものは何もありません。有効ではありますが、ハーフトーン方式やディザリング方式よりはるかに少ない画像しか許容しません。

どちらも最高の誤り訂正が必要ですか?

はい。どちらもコードの回復予算の一部を絵に使うため、どちらも最高レベルで生成され、それがコードを密にし、リンクを短く保つべきもう1つの理由になります。

四角を一度だけ印刷。リンク先は後から決める。 SWAPQRは静的QRコードを無料で作成できます。すべてのスタイルオプション付きで、アカウント登録も透かしもありません。有料プランではコードが動的になります。印刷した四角はそのままで、リンク先を変更でき、日別・デバイス別にどれくらいスキャンされたかを確認できます。

ブラウザでQRコードを作成する
言語: TR EN DE ES FR IT PT AR RU JA KO