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

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




2.4 データの配置

 QRコードでは1モジュール1bitを意味するので先に得られたコード語列を 2進化しそれぞれ所定のモジュールに配置します。
 なおRSブロック(表5)が2つ以上の 場合はデータをインターリーブ配置する必要がありますが、
サンプルの1-H型は不要なので説明を省きます。

また位置検出パターンおよびタイミングパターンは各バージョンで固定なので あらかじめ配置しておきます。

・配置のルール
 1、一番左上を(0,0)としi行j列(i,j)の座標系を考えます。
   例えばサンプルのバージョン1では(0,0)~(20,20)です。

 2、スタートは右下とします。
   サンプルでは(20,20)からスタートですのでここにデータ(0 or 1)を配置します。

 3、上下の進行方向を決めておきます。最初の進行方向は上です。

 4、幅2つ分を基準とします。

   幅2つ分のうち右側にいるとき...
   ひとつ左に移動することを試みます。
   あいていればそこに移動し次のデータを配置します。
   もし固定のパターン等で埋まっていたら現在の進行方向(上または下)へ1つ移動しデータを配置します。

   幅2つ分のうち左側にいるとき...
   そこより現在の進行方向側に空きがあるか確認します。
   空きがあれば現在のモジュールに上下方向で最も近くかつ幅2つのうち右側に優先してデータを配置します。
   もし進行方向に空きが無ければ一つ左方向へ移動しそこにデータを配置します。またその時進行方向を今までの逆にします。

 ・配置の具体例
  上記の説明ではややわかりにくいので具体例をあげます。
  仮に"01234567 89ABCDEF GHIJKLMN"というデータがあり(実際には0か1しかないが..)
  6行4列のマトリックスに上記のルールで配置すると...

DCBA
FE98
HG76
JI54
LK32
NM10





(↑最初の進行方向)

となります。

また同様のマトリックスで中央の4行2列がすでに固定パターン"*"で埋まっている場合、
"01234567 89ABCDEF"というデータを配置する場合は...

9876
A**5
B**4
C**3
D**2
FE10






(↑最初の進行方向)

となります。

この配置のルールで先ほど得たデータを2進化し各ビット毎のデータを各モジュールに割り振ります。

下図は位置検出パターン・タイミングパターン・サンプルのデータを割り振った直後の状態です。

データ配置直後のQRコード


次ページ:マスク処理

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