Какво прави маскирането
След като битовете за данни и коригиране на грешки са поставени, някои области могат да получат дълги редици от един цвят или форми, наподобяващи позиционни шаблони. Маскирането решава това, като обръща модули навсякъде, където е вярна проста формула, и така разпределя тъмното и светлото по-равномерно.
Маската се прилага само към областта с данни и коригиране на грешки. Позиционните, времевите и изравняващите шаблони, информацията за формата и версията и тъмният модул никога не се маскират.
Осемте маски
Маските са номерирани от 000 до 111. Всяка е определена от условие за реда i и колоната j на модула; където условието е изпълнено, модулът се обръща. Четецът научава номера на маската от информацията за формата и прилага същата маска отново, за да я отмени.
- 000: (i + j) mod 2 = 0, шахматна дъска
- 001: i mod 2 = 0, редуващи се редове
- 010: j mod 3 = 0, всяка трета колона
- 011: (i + j) mod 3 = 0, диагонални ивици
- 100 до 111: по-сложни комбинации от редове, колони и произведения
Как се избира най-добрата маска
Кодерът изпробва всичките осем маски и оценява всеки резултат с четири правила за наказателни точки. Използва се маската с най-ниска обща оценка, което прави готовия код по-лесен за четене от камерите.
Някои генератори пропускат пълната оценка и използват фиксирана маска, което пак дава валиден код, но той може да е малко по-труден за сканиране. Micro QR кодовете използват по-малък набор от четири маски със собствено правило за оценка.
- Правило 1: дълги редици от един цвят в ред или колона
- Правило 2: блокове 2 × 2 от един цвят
- Правило 3: шаблони, наподобяващи съотношението 1:1:3:1:1 на позиционния шаблон
- Правило 4: общ дисбаланс между тъмните и светлите модули