Qraft (クラフト)

終端パターン

読み: シュウタンパターン

終端パターン (Terminator) とは、QR コードのエンコード処理でデータビット列の末尾に追加される、最大 4 ビットの 0 の並び (0000) です。読み取り側のデコーダーに「有効なデータはここで終わる」と伝える印で、QR コードの国際規格 ISO/IEC 18004 で規定されています。ターミネータ、終端子と表記されることもあります。

いつ・どこに挿入されますか?

挿入されるのは、入力データをエンコードモードに従ってビット列へ変換した直後、8 ビット単位のコードワードに区切る前の段階です。手順としては、モード指示子・文字数指示子・データ本体と並んだビット列の末尾に終端パターンを足し、それでも 8 ビット境界に揃わなければ 0 を追加し、さらにデータ容量いっぱいになるまで規定のパディングコードワード (11101100 と 00010001 の繰り返し) で埋めます。誤り訂正コードワードの計算は、この埋め終わったビット列に対して行われます。

4 ビットより短くなることはありますか?

あります。終端パターンは「最大 4 ビット」と規定されており、データがシンボルの容量ぎりぎりまで詰まっている場合は、残り容量の分だけ短縮されます。容量にまったく空きがなければ終端パターン自体が省略されます。データの終わりはコードワード数からも判別できるため、短縮・省略されても読み取りには支障がありません。なおマイクロ QR コードでは長さの規定が異なり、バージョン M1 で 3 ビット、M2 で 5 ビット、M3 で 7 ビット、M4 で 9 ビットの 0 が終端として使われます。

残余ビットとの違いは?

どちらも 0 で埋める仕組みですが、層が違います。終端パターンはエンコード段階でビット列に挿入される「データの終わりの印」で、誤り訂正計算の前に入ります。一方の残余ビットは、全コードワードをモジュールとして配置し終えた最終段階で、データ領域に残った 8 ビット未満の端数を埋めるものです。詳しくは用語「残余ビット」で解説しています。