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コード


前のページへ   次のページへ