Перейти к содержимому

Код БЧХ (BCH)

Код БЧХ — циклический помехоустойчивый код Боуза–Чоудхури–Хоквингема; в QR защищает информацию о формате (БЧХ 15,5) и версии (БЧХ 18,6), но не сами данные — их защищает Рид-Соломон.

Что такое код БЧХ

БЧХ — семейство циклических помехоустойчивых кодов, названных по фамилиям Боуза, Рой-Чоудхури и Хоквингема, которые описали их на рубеже 1959–1960 годов. Идея та же, что у любого блочного кода: к коротким информационным битам добавляются проверочные, и по ним приёмник восстанавливает данные, даже если часть бит исказилась. БЧХ работает над полем Галуа и гарантирует заранее заданную корректирующую способность.

Где применяется в QR-коде

В QR два служебных поля защищены именно БЧХ. Первое — информация о формате: 5 значащих бит (уровень коррекции и номер маски) превращаются в 15 бит кодом БЧХ (15,5), который исправляет до трёх ошибок. Второе — информация о версии, она есть в кодах версий 7 и выше: 6 бит номера версии разворачиваются в 18 бит кодом БЧХ (18,6), тоже исправляющим до трёх ошибок. Оба поля критичны: не прочитав их, декодер вообще не подступится к данным.

Чем отличается от Рид-Соломона

Здесь легко запутаться. Полезные данные и их избыточность в QR защищает не БЧХ, а код Рид-Соломона — он тоже из семейства БЧХ, но работает над байтами (символами поля GF(256)), а не над отдельными битами, и исправляет целые повреждённые кодовые слова. Классический БЧХ в QR отвечает только за два маленьких служебных поля, где важна битовая надёжность на считанных битах. Собрать код и посмотреть, как раскладываются эти поля, можно в генераторе QR.