В настоящем разделе описан процесс преобразования входных данных в символ QR Code.
Этап 1. Анализ данных
Анализируют входной поток данных, чтобы установить различия входящих в него знаков, которые нужно закодировать. Формат QR Code (не Micro QR Code) поддерживает интерпретацию в расширенном канале, допуская для кодирования данные, отличающиеся от заданного по умолчанию набора знаков. QR Code может включать в себя несколько режимов (см. 7.3), которые позволяют эффективно преобразовывать различные поднаборы знаков в знаки символа. По мере необходимости между режимами вставляют переключения для достижения наиболее эффективного преобразования данных в двоичную строку. Выбирают требуемый уровень обнаружения и исправления ошибок. Если пользователь не определил версию символа, которую нужно использовать, выбирают версию символа с наименьшим значением, которая допускает размещение данных. Полный перечень версий символа и соответствующих им емкостей приведен в таблице 1.
Этап 2. Кодирование данных
Знаки данных преобразуют в двоичный поток в соответствии с правилами, установленными для действующего режима по 7.4.2-7.4.6. При необходимости смены режима вставляют индикаторы режима в начале каждого нового сегмента, а в конце данных вставляют ограничитель. Преобразуют результирующий двоичный поток в последовательность 8-битовых кодовых слов. Добавляют необходимое число знаков-заполнителей для образования требуемого числа кодовых слов в соответствии с выбранной версией символа.
Этап 3. Кодирование исправления ошибок
Последовательность кодовых слов делят на требуемое число блоков (согласно таблице 9), чтобы обеспечить возможность обработки алгоритмами исправления ошибок. Для каждого блока формируют кодовые слова исправления ошибок, добавляя кодовые слова исправления ошибок в конец последовательности кодовых слов данных.
Этап 4. Структура завершенного сообщения
Кодовые слова данных чередуют с кодовыми словами исправления ошибок от каждого блока согласно в 7.6 (этап 3) и добавляют остаточные биты, если это необходимо.
Этап 5. Размещение модулей в матрице
Модули кодовых слов размещают в матрице вместе с шаблоном поиска, разделителями, шаблонами синхронизации и направляющими шаблонами.
Этап 6. Маскирование данных
К области закодированных данных подбирают маскирующий шаблон, после чего оценивают результаты и выбирают шаблон маски, который оптимизирует баланс темных/светлых модулей и скрывает возникновение нежелательных комбинаций.
Этап 7. Информация о формате и версии
Формируют информацию о формате и, при необходимости, о версии, после чего завершают создание символа.
Таблица 1 - Емкость кодовых слов для всех версий QR Code
Версия | Число модулей/ | Число модулей в функциональных шаблонах (B) | Число модулей в информации о версии (C) | Оставшиеся модули для данных (D) (D=A-B-C) | Объем данных (кодовых слов (E) | Остаточные биты |
M1 | 11 | 70 | 15 | 36 | 5 | 0 |
M2 | 13 | 74 | 15 | 80 | 10 | 0 |
M3 | 15 | 78 | 15 | 132 | 17 | 0 |
M4 | 17 | 82 | 15 | 192 | 24 | 0 |
1 | 21 | 202 | 31 | 208 | 26 | 0 |
2 | 25 | 235 | 31 | 359 | 44 | 7 |
3 | 29 | 243 | 31 | 567 | 70 | 7 |
4 | 33 | 251 | 31 | 807 | 100 | 7 |
5 | 37 | 259 | 31 | 1079 | 134 | 7 |
6 | 41 | 267 | 31 | 1383 | 172 | 7 |
7 | 45 | 390 | 67 | 1568 | 196 | 0 |
8 | 49 | 398 | 67 | 1936 | 242 | 0 |
9 | 53 | 406 | 67 | 2336 | 292 | 0 |
10 | 57 | 414 | 67 | 2768 | 346 | 0 |
11 | 61 | 422 | 67 | 3232 | 404 | 0 |
12 | 65 | 430 | 67 | 3728 | 466 | 0 |
13 | 69 | 438 | 67 | 4256 | 532 | 0 |
14 | 73 | 611 | 67 | 4651 | 581 | 3 |
15 | 77 | 619 | 67 | 5243 | 655 | 3 |
16 | 81 | 627 | 67 | 5867 | 733 | 3 |
17 | 85 | 635 | 67 | 6523 | 815 | 3 |
18 | 89 | 643 | 67 | 7211 | 901 | 3 |
19 | 93 | 651 | 67 | 7931 | 991 | 3 |
20 | 97 | 659 | 67 | 8683 | 1085 | 3 |
21 | 101 | 882 | 67 | 9252 | 1156 | 4 |
22 | 105 | 890 | 67 | 10068 | 1258 | 4 |
23 | 109 | 898 | 67 | 10916 | 1364 | 4 |
24 | 113 | 906 | 67 | 11796 | 1474 | 4 |
25 | 117 | 914 | 67 | 12708 | 1588 | 4 |
26 | 121 | 922 | 67 | 13652 | 1706 | 4 |
27 | 125 | 930 | 67 | 14628 | 1828 | 4 |
28 | 129 | 1203 | 67 | 15371 | 1921 | 3 |
29 | 133 | 1211 | 67 | 16411 | 2051 | 3 |
30 | 137 | 1219 | 67 | 17483 | 2185 | 3 |
31 | 141 | 1227 | 67 | 18587 | 2323 | 3 |
32 | 145 | 1235 | 67 | 19723 | 2465 | 3 |
33 | 149 | 1243 | 67 | 20891 | 2611 | 3 |
34 | 153 | 1251 | 67 | 22091 | 2761 | 3 |
35 | 157 | 1574 | 67 | 23008 | 2876 | 0 |
36 | 161 | 1582 | 67 | 24272 | 3034 | 0 |
37 | 165 | 1590 | 67 | 25568 | 3196 | 0 |
38 | 169 | 1598 | 67 | 26896 | 3362 | 0 |
39 | 173 | 1606 | 67 | 28256 | 3532 | 0 |
40 | 177 | 1614 | 67 | 29648 | 3706 | 0 |
Все кодовые слова имеют размер 8 битов, за исключением версий M1 и M3, где финальное кодовое слово имеет размер 4 бита.
|