Apa yang dilakukan masking
Setelah bit data dan koreksi kesalahan ditempatkan, beberapa area bisa berakhir dengan deretan panjang satu warna atau bentuk yang mirip finder pattern. Masking memperbaikinya dengan membalik modul di mana pun rumus sederhana bernilai benar, sehingga gelap dan terang tersebar lebih merata.
Mask hanya berlaku pada area data dan koreksi kesalahan. Finder, timing, dan alignment pattern, format dan version information, serta dark module tidak pernah di-mask.
Delapan mask
Mask dinomori 000 sampai 111. Masing-masing didefinisikan oleh kondisi pada baris i dan kolom j sebuah modul; jika kondisi terpenuhi, modul itu dibalik. Pembaca mengetahui nomor mask dari format information dan menerapkan mask yang sama sekali lagi untuk membatalkannya.
- 000: (i + j) mod 2 = 0, papan catur
- 001: i mod 2 = 0, baris bergantian
- 010: j mod 3 = 0, setiap kolom ketiga
- 011: (i + j) mod 3 = 0, garis diagonal
- 100 sampai 111: kombinasi baris, kolom, dan perkalian yang lebih kompleks
Cara mask terbaik dipilih
Encoder mencoba kedelapan mask dan menilai tiap hasil dengan empat aturan penalti. Mask dengan total penalti terendah dipakai, yang membuat kode jadi lebih mudah dibaca kamera.
Sebagian generator melewati evaluasi penuh dan memakai mask tetap, yang tetap menghasilkan kode valid tetapi mungkin sedikit lebih sulit di-scan. Micro QR code memakai kumpulan empat mask yang lebih kecil dengan aturan penilaian tersendiri.
- Aturan 1: deretan panjang warna yang sama dalam satu baris atau kolom
- Aturan 2: blok 2 × 2 satu warna
- Aturan 3: pola yang menyerupai rasio finder 1:1:3:1:1
- Aturan 4: ketidakseimbangan keseluruhan antara modul gelap dan terang