QRコードをつくってみる5

最初のページへ  前のページへ  次のページへ




2.5 マスク処理

 データを配置した状態で一方の色のモジュールが極端に多かったり、 位置検出パターンに類似した模様があると、読み込みに支障をきたす 恐れがあります。

 これを防ぐためにQRコードでは8種類のマスクパターンを用意し その中で最適なものを選ぶようにしています。

2.5.1 マスクをかける範囲

 マスクをかける範囲は位置検出パターンやタイミングパターン、形式情報 等の機能パターンを除く範囲、すなわちデータコード部です。

2.5.2 マスクの種類と条件

 マスクは下表の通り8種類あり、マスクパターン参照子として3bitの2進数 あらわします。

 (i,j)はそれぞれ行・列を意味し各条件を満たすモジュールにおいて ビットを反転させます。

マスクパターン参照子条件
000(i+j) mod 2 = 0
001i mod 2 = 0
010j mod 3 = 0
011(i+j) mod 3 = 0
100(( i div 2)+(j div 3)) mod 2 = 0
101(ij) mod 2 + (ij) mod 3 = 0
110((ij) mod 2 +(ij) mod 3) mod 2 = 0
111((ij)mod 3 + (i+j) mod 2) mod 2 = 0
※表中の mod は剰余計算 div は整数除算をあらわす。

例えば、マスクパターン0では...
(20,20)の場合、 (20+20) mod 2 = 0 なので ビットを反転させます。
(19,20)の場合、 (20+19) mod 2 = 1 なのでビットを反転させません。

2.5.3 マスクの評価

 前項で計算した8つのマスクパターンのどれを選択するかを決定するために 結果の評価を行います。

 それぞれのマスクパターンの結果に対して以下の表に示す特徴に対して失点を課し、 最も合計失点の少ないパターンを採用します。
 なお評価は機能パターンを含むシンボル全体に対して行います。

特徴評価条件失点
同色の行/列の隣接モジュールモジュール数=(5+i)3+i
同色のモジュールブロックブロックサイズ 2×23
行/列における1:1:3:1:1(暗:明:暗:明:暗)のパターン
40
全体に占める暗モジュールの割合50±(5+k)%~50±(5+(k+1))%10×k

筆者注:マスク評価の問題
 筆者はこのマスク評価のルールについて困っておりました。
 というのも上記通りに評価してもJISの図やP-touch editorで得られる結果と異なる (もう一ついえばJISとP-touch editor間でも異なる!)ためでした。
 試行錯誤の結果、下記でJISの2つの実例(図1と付属書8図2)と同じになったのでとりあえずこれを採用することとしました。
(間違えている可能性大ですが)

   評価するパターンはデータおよび誤り訂正語部のみとし位置検出パターン・タイミングパターンは空白のままとする。
   (イメージ)

2004.12.26追記
#JIS X0510(2004)ではマスクの評価方法が少し変わりました。
 詳細はJIS X0510(2004)と(1999)の比較参照ください。

 逆にJIS X0510(1999)の付属書8の結果とJIS X0510(2004)の付属書Gの結果が マスクパターン参照子が異なっている結果となっていることから、やはりマスク パターン参照子は「極端な場合だけ省ければよい」という解釈で問題ないと思う というのがひとつの結論なのかもしれません。
 

サンプルではマスクパターン 011 を選択しました。


次ページ:形式情報

前のページ  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]  次のページ