Как стать автором
Обновить

Чтение Micro QR Code версии М3 (кириллица, второй тип библиотек)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров602

Данная публикация является продолжением первой части кодирования кириллицы в микрокодах версии М3.

 Этап 5. Применение полученного алгоритма для M3 АБВГ (второй тип библиотек в сети Интернет)

Так как аналогично предыдущему этапу для M3 АБВГ заготовлена битовая последовательность также заранее, а основной алгоритм очень схож (необходимо будет поменять только маску и функцию комбинации итогового кода), то воспользуемся данным обстоятельством и просто продублируем страницу М3 АБВГДЕ на M3 АБВГ с учетом замены исходного микрокода.

Копируем диапазон ячеек T4:AZ16 на странице М3 АБВГДЕ, переходим на страницу M3 АБВГ. Выбираем ячейку T4, добавляем скопированный фрагмент T4:AZ16 получаем новый анализ служебной информации (рис. 23).

Для M3 АБВГ служебная информация не дублирует служебную информацию для М3 АБВГДЕ. Необходимо использовать маску – 01.

Рисунок 23 – Служебная информация для M3 АБВГ
Рисунок 23 – Служебная информация для M3 АБВГ

Переходим ко второй составляющей – анализ рабочей области микрокода. Результат представлен на рисунке 24.

Рисунок 24 – Пример готового результата для M3 АБВГ
Рисунок 24 – Пример готового результата для M3 АБВГ

Примечание: во втором типе библиотек используется всего четыре символа в отличии от шести символов первого типа библиотек. Попытка добавить пятый символ автоматически переводило уровень М3 на уровень выше – М4. Остановимся на четырех символах.

Как уже было упомянуто ранее, данный код также полностью не совпадает с байтовым режимом и с кодовой комбинацией Таблицы ДА.3 ГОСТ. Но так как альтернативных режимов в ГОСТ просто больше нет, будем и далее использовать алгоритм декодирования последовательности бит на примере байтового режима. Начинаем разбирать секреты второго типа бесплатных библиотек сети Интернет (пример использования библиотеки). Заполним все ячейки функциями, согласно таблице 5 (если не заполнено).

В диапазоне ячеек W23:X23 указан код 10 – обозначает наличие байтового режим (таблица 2 ГОСТ. Уже хорошее начало, в отличии от первого типа библиотек. Разбираем дальше. Следующий диапазон из 4-х бит в ячейках Y23:AB23 – диапазон, отображающий битовую комбинацию – 1000 или число 8 (по количеству искомых в микрокоде символов, умноженных на 2). Получается, что для второго типа также должен использоваться полный аналог дополнительных кодовых комбинаций, как и в универсальной кодовой системе. Напомню, в UTF-8 используются 8-битовые комбинации, в UTF-16 – 16-битовые комбинации и т.д. Здесь также как и в первом типе просматривается кодовая последовательность короче. Возвращаемся к кодам Ричарда Хэмминга: мощность искусственного алфавита (кириллицы) дает порядок в 6 бит. Следовательно, первая буква искусственного алфавита будет 000000 или другая аналогичная комбинация. Находим первую последовательность из шести нулей, получаем диапазон Y27:AD27. Значит с кодом первой буквы А угадали. Осталось определить кодовый индикатор. Диапазон W29:X31 и будет индикатором – 1000010001 (ужас, и это еще один секрет программистов моделистов Ассоциации). Почему выбрано именно это число – есть только одно предположение. Число 529знак возможностей преображения и нового восприятия окружающего мира, шутники. Если проверить дальше по коду последовательности, то получим полный скрытый (абсолютно не по ГОСТ) алфавит.

Возвращаемся к первой букве А – в ячейку AF27:AH27 добавляем функцию =СЦЕП(Y27:AD27), получаем 000000 (рис. 25). Первый индикатор будет =СЦЕП(W27:X27;W25:AD25). Следующая буква Б алфавита – в ячейку AF31:AH31 добавляем функцию = СЦЕП(Y31:AD31), получаем последовательность 000001. Перед символом аналогичный индикатор. Третья буква В – в ячейку AF35:AH35 добавляем функцию =СЦЕП(Y35:AD35), получаем последовательность 000010. Буква Г – в ячейку AF39:AH39 добавляем функцию =СЦЕП(Y39:AD39), получаем – 000011. Как и следовало ожидать, аналогично первому типу, просматривается схожая последовательность порядковых номеров букв алфавита кириллицы от 0 до 32. Код буквы Я100000.

Рисунок 25 – Пример готового результата для M3 АБВГ
Рисунок 25 – Пример готового результата для M3 АБВГ

Итак, очередной секрет программистов моделистов раскрыт. На данном моменте можно остановиться, так как алфавиты библиотек обоих типов совпадают. Перейдем к буквам малого регистра первого типа библиотек.

 Этап 6. Применение полученного алгоритма для M3 абвг (второй тип библиотек в сети Интернет)

 Так как заготовлена битовая последовательность для M3 абвг заранее, а основной алгоритм очень схож с М3 АБВГ (необходимо будет поменять только маску и функцию комбинации итогового кода), то воспользуемся данным обстоятельством. Продублируем страницу M3 абвгде на новый лист, добавим расшифровку кода М3 АБВГДЕ и заменим исходный микрокод.

Копируем диапазон ячеек T4:AZ16 на странице М3 АБВГ, переходим на страницу M3 абвг. Выбираем ячейку T4, добавляем скопированный фрагмент T4:AZ16 получаем новый анализ служебной информации (рис. 26).

Для M3 абвг служебная информация полностью дублирует служебную информацию для М3 АБВГ. Необходимо использовать маску – 01.

Рисунок 26 – Служебная информация для M3 абвг
Рисунок 26 – Служебная информация для M3 абвг

Переходим ко второй составляющей – анализ рабочей области микрокода. Копируем соответствующий диапазон ячеек M3 АБВГ. Результат представлен на рисунке 27.

Рисунок 27 – Пример готового результата для M3 абвг
Рисунок 27 – Пример готового результата для M3 абвг

Аналогично предыдущему этапу, в диапазоне ячеек W23:X23 указан код 10 – обозначает наличие байтового режима (таблица 2 ГОСТ). Следующий диапазон из трех бит в ячейках Y23:AA23 – диапазон, отображающий битовую комбинацию – 1000 или число 8 (по количеству искомых в микрокоде символов). Проверка в ячейке AD23 подтверждает полученное значение.

Получены аналогичные первому типу кодовые комбинации для букв кириллицы малого регистра. Буква а110000, буква б110001, в110010, г110011, д110110 и е110101. Т.е., малые буквы начинаются с числа 48 в десятичном эквиваленте.

Аналогично первому типу библиотек, необходимо внести изменения. Сравниваем полученные числовые значения со значениями на странице Code:

Ячейка

Функция

U27

=ЕСЛИ(AF27=Code!K2;Code!J2;"-")

U31

=ЕСЛИ(AF31=Code!K3;Code!J3;"-")

U35

=ЕСЛИ(AF33=Code!K4;Code!J4;"-")

U39

=ЕСЛИ(AF37=Code!K5;Code!J5;"-")

В результате получаем полное совпадение кодовой составляющей.

P.S.: как уже стало понятно из описания и данных этапов, реализованное во второй библиотеке кодирование микрокодов аналогично первому типу никак не представлено в стандартах. Следовательно, данный алгоритм, как и для других режимов, – ноу-хау программиста или программистов моделистов программного модуля Ассоциации. Согласно ГОСТ, необходимо использовать Таблицу ДА.3 и байтовый режим.

Удачи в декодировании байтовых последовательностей.

Micro QR Code версии M3!!!

Теги:
Хабы:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань