Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Оснащения врачебно-сестринской бригады.
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
На этом этапе надо определиться с уровнем коррекции — чем выше этот уровень, тем больше допустимый уровень повреждения QR кода, на котором его ещё можно восстановить, и тем меньше информации поместится на QR коде фиксированного размера. Всего есть 4 уровня корекции: L (допустимо максимум 7% повреждений), M (15%), Q (25%) и H (30%). Чаще всего используется уровень M. Если вы хотите добавить на QR код свой рисунок (на Хабре есть несколько статей на эту тему), то используйте уровень H.
Ещё одно свойство QR кода — его версия (чем она больше, тем больше размер). Всего существует 40 версий. Номер версии зависит от количества кодируемой информации и от уровня коррекции. В таблице 2 указано максимальное количество полезной информации вместе со служебной (в битах), которое можно закодировать в QR коде этой версии. Из этой таблицы определется версия нашего QR кода.
Таблица 2. Максимальное количество информации.
Строка — уровень коррекции, столбец — номер версии.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
| L | 152 | 272 | 440 | 640 | 864 | 1088 | 1248 | 1552 | 1856 | 2192 |
| M | 128 | 224 | 352 | 512 | 688 | 864 | 992 | 1232 | 1456 | 1728 |
| Q | 104 | 176 | 272 | 384 | 496 | 608 | 704 | 880 | 1056 | 1232 |
| H | 72 | 128 | 208 | 288 | 368 | 480 | 528 | 688 | 800 | 976 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
| L | 2592 | 2960 | 3424 | 3688 | 4184 | 4712 | 5176 | 5768 | 6360 | 6888 |
| M | 2032 | 2320 | 2672 | 2920 | 3320 | 3624 | 4056 | 4504 | 5016 | 5352 |
| Q | 1440 | 1648 | 1952 | 2088 | 2360 | 2600 | 2936 | 3176 | 3560 | 3880 |
| H | 1120 | 1264 | 1440 | 1576 | 1784 | 2024 | 2264 | 2504 | 2728 | 3080 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | |
| L | 7456 | 8048 | 8752 | 9392 | 10208 | 10960 | 11744 | 12248 | 13048 | 13880 |
| M | 5712 | 6256 | 6880 | 7312 | 8000 | 8496 | 9024 | 9544 | 10136 | 10984 |
| Q | 4096 | 4544 | 4912 | 5312 | 5744 | 6032 | 6464 | 6968 | 7288 | 7880 |
| H | 3248 | 3536 | 3712 | 4112 | 4304 | 4768 | 5024 | 5288 | 5608 | 5960 |
| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
| L | 14744 | 15640 | 16568 | 17528 | 18448 | 19472 | 20528 | 21616 | 22496 | 23648 |
| M | 11640 | 12328 | 13048 | 13800 | 14496 | 15312 | 15936 | 16816 | 17728 | 18672 |
| Q | 8264 | 8920 | 9368 | 9848 | 10288 | 10832 | 11408 | 12016 | 12656 | 13328 |
| H | 6344 | 6760 | 7208 | 7688 | 7888 | 8432 | 8768 | 9136 | 9776 | 10208 |
Добавление служебных полей
К этому моменту уже должен быть выбран уровень коррекции и определена версия. Теперь надо перед последоветельностью бит, полученной в предыдущем пункте, добавить в начале два поля: способ кодирования и количество данных. Способ кодирования — поле длиной 4 бита, которое имеет следующие значения: 0001 для цифрового кодирования, 0010 для буквенно-цифрового и 0100 для побайтового. Количество данных — это количество кодируемых символов, а для побайтового количество байт (а не бит в полученной последовательности), представленное в виде двоичного числа, длина которого определяется по таблице 3.
Таблица 3. Длина поля количества данных.
| Версия 1–9 | Версия 10–26 | Версия 27–40 | |
| Цифровое | 10 бит | 12 бит | 14 бит |
| Буквенно-цифровое | 9 бит | 11 бит | 13 бит |
| Побайтовое | 8 бит | 16 бит | 16 бит |
Например, дана строка длиной 100 байт, закодированная побайтово, уровень коррекции — M. Длина последовательности бит этой строки — 800 бит. Воспользовавшись таблицей 2 можно определить, что оптимальнее всего будет использовать 6-ю версию. Длина поля, определяющего количество данных в нашем случае — 8 бит (таблица 3). Поле, определяющее способ кодирование имеет вид 0100, поле количества данных — 01100100 (100 в двоичном виде). В итоге получится последовательность бит 010001100100<исходная последовательность>.
Если длина полученной последовательности бит оказалась больше допустимой для выбранной версии, то версию надо увеличит на одну и проделать добавление служебных полей заново.
Спецификация допускает использование смешанного кодирования. Это значит, что несколько групп данных можно закодировать разными способами и объединить их в одну последовательность. Это делается следующим образом: <способ кодирования данных 1><количество данных 1><данные 1><способ кодирования данных 2><количество данных 2><данные 2> и так далее.
Заполнение
На данном этапе у нас есть последовательность бит данных, количество бит в которой наверняка некратно 8. Надо дополнить её нулями так, чтобы её длина стала кратна 8. Теперь нашу последовательность бит можно разбить на группы по 8 бит и представить в виде последовательности байт (далее мы так и будем делать). Если количество бит в текущей последовательности байт меньше того, которое нужно для выбранной версии, то её надо дополнить чередующимися байтами 11101100 и 00010001. Таким образом, у нас получилась последовательность байт, длина которой соответствует выбранной версии QR кода.
Пример. Есть последовательность: <последовательность бит, длина которой кратна 8> 101010111001; дополняем её нулями, чтобы её длина стала кратна 8: <последовательность бит, длина которой кратна 8> 101010111001 0000; теперь предположим, что её длина — 108 бит, а для выбранной версии необходимо 128 бит, тогда для заполнения нужно добавить 20 «заполняющих» бит (5 байт): <последовательность бит, длина которой кратна 8> 101010111001 0000 11101100 00010001 11101100 00010001 11101100. Готово.
Разделение информации на блоки
Последовательность байт, полученная на предыдущем этапе, (далее данные) разделяется на обределённое для версии и уровня коррекции количество блоков, которое приведено в таблице 4. Если количество блоков равно одному, то этот этап можно пропустить.
Таблица 4. Количество блоков.
Строка — уровень коррекции, столбец — номер версии.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
| L | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 4 |
| M | 1 | 1 | 1 | 2 | 2 | 4 | 4 | 4 | 5 | 5 |
| Q | 1 | 1 | 2 | 2 | 4 | 4 | 6 | 6 | 8 | 8 |
| H | 1 | 1 | 2 | 4 | 4 | 4 | 5 | 6 | 8 | 8 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
| L | 4 | 4 | 4 | 4 | 6 | 6 | 6 | 6 | 7 | 8 |
| M | 5 | 8 | 9 | 9 | 10 | 10 | 11 | 13 | 14 | 16 |
| Q | 8 | 10 | 12 | 16 | 12 | 17 | 16 | 18 | 21 | 20 |
| H | 11 | 11 | 16 | 16 | 18 | 16 | 19 | 21 | 25 | 25 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | |
| L | 8 | 9 | 9 | 10 | 12 | 12 | 12 | 13 | 14 | 15 |
| M | 17 | 17 | 18 | 20 | 21 | 23 | 25 | 26 | 28 | 29 |
| Q | 23 | 23 | 25 | 27 | 29 | 34 | 34 | 35 | 38 | 40 |
| H | 25 | 34 | 30 | 32 | 35 | 37 | 40 | 42 | 45 | 48 |
| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | |
| L | 16 | 17 | 18 | 19 | 19 | 20 | 21 | 22 | 24 | 25 |
| M | 31 | 33 | 35 | 37 | 38 | 40 | 43 | 45 | 47 | 49 |
| Q | 43 | 45 | 48 | 51 | 53 | 56 | 59 | 62 | 65 | 68 |
| H | 51 | 54 | 57 | 60 | 63 | 66 | 70 | 74 | 77 | 81 |
|
|
|
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!