Код БЧХ (BCH)
Код БЧХ — циклический помехоустойчивый код Боуза–Чоудхури–Хоквингема; в QR защищает информацию о формате (БЧХ 15,5) и версии (БЧХ 18,6), но не сами данные — их защищает Рид-Соломон.
Что такое код БЧХ
БЧХ — семейство циклических помехоустойчивых кодов, названных по фамилиям Боуза, Рой-Чоудхури и Хоквингема, которые описали их на рубеже 1959–1960 годов. Идея та же, что у любого блочного кода: к коротким информационным битам добавляются проверочные, и по ним приёмник восстанавливает данные, даже если часть бит исказилась. БЧХ работает над полем Галуа и гарантирует заранее заданную корректирующую способность.
Где применяется в QR-коде
В QR два служебных поля защищены именно БЧХ. Первое — информация о формате: 5 значащих бит (уровень коррекции и номер маски) превращаются в 15 бит кодом БЧХ (15,5), который исправляет до трёх ошибок. Второе — информация о версии, она есть в кодах версий 7 и выше: 6 бит номера версии разворачиваются в 18 бит кодом БЧХ (18,6), тоже исправляющим до трёх ошибок. Оба поля критичны: не прочитав их, декодер вообще не подступится к данным.
Чем отличается от Рид-Соломона
Здесь легко запутаться. Полезные данные и их избыточность в QR защищает не БЧХ, а код Рид-Соломона — он тоже из семейства БЧХ, но работает над байтами (символами поля GF(256)), а не над отдельными битами, и исправляет целые повреждённые кодовые слова. Классический БЧХ в QR отвечает только за два маленьких служебных поля, где важна битовая надёжность на считанных битах. Собрать код и посмотреть, как раскладываются эти поля, можно в генераторе QR.
Частые вопросы
Что защищает код БЧХ в QR-коде?
Два служебных поля: информацию о формате (БЧХ 15,5 — уровень коррекции и номер маски) и информацию о версии в кодах версии 7 и выше (БЧХ 18,6). Сами данные защищает другой код — Рид-Соломона. БЧХ отвечает лишь за то, чтобы декодер надёжно прочитал служебные параметры кода.
Чем БЧХ отличается от кода Рид-Соломона?
Рид-Соломон — частный случай БЧХ, но работает над байтами (символами поля GF(256)) и исправляет целые повреждённые кодовые слова данных. Классический БЧХ в QR работает над отдельными битами и защищает лишь короткие служебные поля формата и версии, а не полезные данные.
Сколько ошибок исправляет БЧХ (15,5)?
До трёх ошибочных бит из пятнадцати. Из 15 бит поля формата только 5 несут информацию (уровень коррекции и маску), остальные 10 — проверочные. Минимальное кодовое расстояние этого кода равно семи, что и даёт гарантированное исправление трёх бит.
Что означают числа в записи БЧХ (15,5)?
Первое число — общая длина кодового слова в битах, второе — количество информационных бит. БЧХ (15,5): 15 бит на выходе, 5 значащих. БЧХ (18,6): 18 бит, 6 значащих. Разница между числами — проверочные биты, за счёт которых и происходит исправление ошибок.