КАК УСТРОЕН QR-КОД? СОБИРАЕМ С НУЛЯ

Alek OS
25 Apr 202418:42

Summary

TLDRВ видео скрипте рассматривается тема облачных серверов компании Isonet, предлагающих высокоскоростные услуги. Также упоминается изобретение штрих-кода Нормана Вудленда и его ограничения, что привело к созданию QR-кода с большей емкостью информации. В видео объясняется, как работает QR-код, его структура, свойства, а также процесс кодирования и коррекции ошибок. В заключение, скрипт предлагает бесплатный доступ к облачным ресурсам от Cloud.ru и упоминает курсы по искусственному интеллекту.

Takeaways

  • 🌐 Изонет предлагает мощные и быстрые серверы, которые не подводят пользователей по всему миру.
  • 🛡️ Изонет также предлагает бесплатную защиту и виртуальный сервер Терминатор для размещения серверов в разных локациях по всему миру.
  • 📈 В середине XX века Норман Вудленд изобрел штрих-код, который компактно хранит информацию о товаре с помощью черных и белых полос.
  • 🔍 Штрих-коды были ограничены в размере и объеме информации, что не устраивало японскую компанию DeNo, которая производит запчасти для автомобилей.
  • 💡 Масахиро Хара из компании DeNo разработал QR-код, который может содержать гораздо больше информации и увеличивает скорость сканирования.
  • 🔢 QR-код состоит из 40 версий, каждая из которых увеличивает размер на четыре модуля по горизонтали и вертикали.
  • 🔗 QR-коды могут содержать не только текст или числа, но и ссылки, изображения, музыку и даже игры.
  • 📚 Для кодирования в QR-коде используются различные методы, такие как цифровое, цифро-буквенное и байтовое кодирование.
  • 🛠️ Создание QR-кода включает в себя определение версии и уровня коррекции, разбиение данных на блоки, генерацию байтов коррекции и добавление кода маски.
  • 🌐 Cloud.ru предоставляет бесплатные облачные ресурсы, включая виртуальную машину и объектное хранилище, для тестирования и разработки.
  • 🔗 QR-коды используют вспомогательные модули, такие как квадраты выравнивания и полосы синхронизации, для корректного сканирования и распознавания.

Q & A

  • Какие преимущества предлагает компания isonet в сфере хостинга?

    -Isonet предлагает крепкие и быстрые серверы, флагманские скорости, бесплатную DDoS защиту и виртуальный сервер Терминатор без лишних трат.

  • Что такое штрих-код и как он был изобретен?

    -Штрих-код - это графический элемент, разработанный Норманом Вудлендом, который позволяет компактно хранить информацию о товаре с использованием последовательности черных и белых полос.

  • Какие проблемы существовали с первоначальными штрих-кодами?

    -Первые штрих-коды могли хранить ограниченное количество информации, вмещая всего 8 или 13 цифр, что было недостаточно для маркировки деталей автомобилей.

  • Какую проблему решил QR-код?

    -QR-код (Quick Response Code) устраняет ограничения одномерных штрих-кодов, позволяя закодировать гораздо больше информации и ускоряя процесс сканирования.

  • Чем отличается QR-код от обычного штрих-кода?

    -QR-код является двумерным квадратным кодом, который может содержать не только текст или числа, но и ссылки, изображения, музыку и даже игры.

  • Какой процесс разработки прошел у масахиро Хара при создании QR-кода?

    -Масахиро Хара потратил 2 года на разработку QR-кода, который в итоге превзошел все ожидания и стал способным вмещать гораздо больше информации.

  • Какой уровни коррекции ошибок есть в QR-коде?

    -В QR-коде существует четыре уровня коррекции ошибок: L, M, Q, H, соответствующие 7%, 15%, 25% и 30% допустимых повреждений.

  • Какой тип кодирования данных в QR-коде наиболее эффективен для китайских и японских иероглифов?

    -Для китайских и японских иероглифов используется специальное кодирование Канти, которое оптимально подходит для этих символов.

  • Чему обучается на платформе университета искусственного интеллекта и как это повлияет на карьеру?

    -На платформе обучаются искусственному интеллекту и нейронным сетям, что делает специалистов более востребованными и высокооплачиваемыми на рынке.

  • Какие компании уже воспользовались образовательными возможностями университета искусственного интеллекта?

    -Выпускники университета искусственного интеллекта устроились в такие компании, как Huawei, Dell, Роскосмос, Яндекс и другие.

  • Что предоставляет облачный провайдер Cloud.ru и какие его особенности?

    -Cloud.ru предоставляет бесплатные облачные ресурсы, включая виртуальную машину и объектное хранилище, на платформе Cloud R Evolution с общественно-защищенным облаком на базе собственных разработок.

  • Какие дополнительные модули используются в QR-коде для корректного сканирования?

    -Для корректного сканирования QR-кода используются квадраты выравнивания, полосы синхронизации, номер версии и код маски.

Outlines

00:00

🚀 Серверы и изобретение штрих-кода

В первом параграфе рассматривается тема производительности серверов от компании isonet, которые обеспечивают высокоскоростной доступ для пользователей по всему миру. Также упоминается изобретение Нормана Вудленда - штрих-код, который позволяет компактно хранить информацию о товаре в виде черных и белых полос. Однако, японская компания deno, занимающаяся производством автозапчастей, столкнулась с проблемой ограниченной вместимости штрих-кодов для маркировки деталей. В результате, была разработана новая система кодирования - QR-код, который может хранить гораздо больше информации и ускоряет процесс сканирования.

05:01

📚 Образование в области ИИ и QR-коды

Второй параграф посвящён образованию в сфере искусственного интеллекта и его значению для специалистов. Университет искусственного интеллекта предлагает инновационное образование, после которого студенты могут получить гарантированную стажировку и работу в компаниях, таких как Huawei, Dell, Роскосмос и Яндекс. Также здесь подробно объясняется, как работает QR-код, включая его структуру, версии, уровни коррекции ошибок и процесс кодирования информации различными способами, от цифрового до байтового кодирования.

10:02

🔍 Технология QR-кода и облачные сервисы

Третий параграф продолжает тему QR-кодов, описывая процесс их создания, включая добавление кода версии, коррекции ошибок и маски. Также упоминается провайдер облачных услуг Cloud.ru, который предоставляет бесплатные облачные ресурсы, такие как виртуальные машины и объектное хранилище, для тестирования и разработки продуктов. Облачные сервисы Cloud R Evolution предлагают защищённое публичное облако на базе собственных разработок и свободно распространяемых компонентов.

15:03

🛠️ Создание и сканирование QR-кода

В заключительном параграфе описывается процесс создания QR-кода, включая добавление вспомогательных модулей, таких как квадраты выравнивания и полосы синхронизации, которые обеспечивают корректное сканирование. Также рассматривается процесс добавления кода маски, который определяет, какие биты данных инвертировать для корректного считывания. В конце параграфа объясняется, как размещать данные в QR-коде и как добавлять необходимые рамки для предотвращения ошибок при сканировании.

Mindmap

Keywords

💡QR код

QR код (Quick Response Code) - это двухмерный штрих-код, разработанный для более эффективного хранения и передачи информации. В видео упоминается, что QR код может содержать не только текст, но и ссылки, изображения и музыку. Он связан с темой видео, поскольку рассматривается как пример современного технологического достижения, которое улучшает способность быстрой передачи данных.

💡Изонет

Изонет - это название компании, предоставляющей услуги по хостингу и серверам, которые, как утверждается в видео, обеспечивают высокую скорость и надежность. В контексте видео это пример маркетинговой стратегии, когда компания продвигает свои продукты, подчеркивая преимущества над конкурентами.

💡Штрих-код

Штрих-код - это графический элемент, разработанный Норманом Вудлендом, который позволяет компактно хранить информацию о товаре. В видео упоминается, что штрих-код состоит из черных и белых полос, которые представляют собой бинарный код. Штрих-коды стали широко распространены для маркировки товаров, что иллюстрирует их значимость в современной коммерции.

💡Масахиро Хара

Масахиро Хара - это имя участника истории развития QR кода, который был назначен для разработки более практичный код с большим объемом информации. В видео подчеркивается его вклад в создание QR кода, что демонстрирует инновационный процесс и развитие технологий.

💡Кодирование

Кодирование в контексте видео относится к процессу преобразования данных в формат, который может быть использован QR кодом. Рассматриваются различные виды кодирования, такие как цифровое, буквенно-цифровое и байтовое, которые определяют, как информация будет представлена в двоичной форме в QR коде.

💡Коррекция ошибок

Уровень коррекции ошибок в QR коде определяет, насколько сильно код может быть поврежден и по-прежнему быть распознан. В видео упоминается, что существует четыре уровня коррекции ошибок, от LM до H, каждый из которых предоставляет разный уровень защиты и вместимости информации.

💡Облачные сервисы

Облачные сервисы в видео представлены как платформа для размещения и тестирования продуктов, предоставляющая бесплатные ресурсы. В контексте видео упоминается 'Cloud.ru', которая предлагает бесплатный доступ к виртуальным машинам и хранилищам для пользователей, что подчеркивает преимущества облачных технологий для разработки и тестирования.

💡Код маски

Код маски в QR коде - это специальная информация, которая используется для определения, какие биты данных должны быть инвертированы для корректного сканирования и декодирования. В видео рассматривается процесс выбора кода маски и его влияние на структуру QR кода.

💡Кодирование UTF-8

UTF-8 - это форма кодирования символов, которая используется для представления текста в компьютерных системах. В видео упоминается, что при байтовом кодировании данные представляются в двоичном виде, как они есть в UTF-8, что иллюстрирует способность QR кода обрабатывать различные типы данных.

💡Коррекция

Коррекция в контексте QR кода относится к процессу добавления дополнительных данных, которые позволяют исправлять ошибки, возникающие при сканировании. В видео объясняется, как байты коррекции генерируются и включаются в состав QR кода для улучшения его надежности.

Highlights

Изонет предлагает высокоскоростные серверы с флагманскими возможностями.

Бесплатная защита DDoS и виртуальный сервер Терминатор включены в сервис.

Серверы Изонет доступны в десятках локаций по всему миру для высокого уровня хостинга.

Норман Вудленд изобретает штрих-код для компактного хранения информации о товаре.

Штрих-коды быстро распространяются по всему миру и используются для маркировки товаров.

Японская компания Deno недовольна ограничениями штрих-кодов и инициирует разработку более эффективного кода.

Масахиро Хара из Deno разрабатывает двумерный QR-код для увеличения объема информации.

QR-код позволяет кодировать не только текст и числа, но и ссылки, изображения, музыку и игры.

Версия QR-кода и уровень коррекции определяют его размер и способность к восстановлению после повреждений.

Кодирование в QR-коде может быть цифровым, цифро-буквенным, байтовым или Канти.

Для цифрового кодирования последовательность чисел переводится в двоичный вид и разбивается на группы.

Цифровые кодировки в QR-коде используют разные группы для представления данных.

Байтовая кодировка представляет данные в двоичном виде как есть, например в кодировке UTF-8.

Для корректного раскодирования данные должны быть помечены способом кодирования и количеством кодируемых данных.

Разбиение данных на блоки и генерация байтов коррекции обеспечивает надежность QR-кода.

Код маски определяет формулу для инвертирования битов данных в QR-коде.

Маски и код уровня коррекции дублируются в QR-коде для увеличения его надежности.

Треугольники выравнивания и полосы синхронизации помогают считывающему устройству корректно определить расположение QR-кода.

Облачные сервисы Cloud.ru предлагают бесплатные облачные ресурсы, включая виртуальные машины и объектное хранилище.

Платформа Cloud R Evolution основана на собственных разработках и свободно распространяемых компонентах.

Transcripts

play00:00

Вы пробовали крепкие и быстрые сервера

play00:02

Да сервера от isonet смотрите как наши

play00:04

серверы взлетают isonet - это серверы

play00:07

которые не подведут пользователи всего

play00:09

мира уже используют флагманские скорости

play00:11

Аза Используй бесплатную дудо защиту

play00:15

лишние траты не потребуется получите

play00:17

бесплатный виртуальный сервер Терминатор

play00:20

разместите свой сервер в одной из

play00:22

десятка наших локаций по всему миру

play00:24

Наслаждайся хостингом высокого уровня

play00:27

саза по самым выгодным ценам

play00:32

в середине XX века Норман вудленд

play00:35

Работая в дрексель ском университете

play00:36

придумывает такой графический элемент

play00:38

который позволяет компактно хранить в

play00:40

себе информацию о товаре используя всего

play00:42

лишь последовательность чёрных и белых

play00:44

полос такой графический элемент мы все

play00:47

сегодня знаем под названием штрих-код

play00:49

сам вудлон сравнивал его с азбукой морзы

play00:51

Только вместо точек и тире здесь

play00:53

используются широкие и узкие линии в

play00:56

реальности же все эти полосы снова

play00:57

сводятся к двоичному коду чёрный полос

play01:00

это единицы белый полосы - это нули это

play01:02

изобретение быстро разлетелось по всему

play01:04

миру и штрихкоды стали массово

play01:06

использовать для маркировки товаров по

play01:08

сей день Однако нашлась одна компания

play01:10

которую Это изобретение очень не

play01:12

устраивало это была японская корпорация

play01:15

по производству запчастей для

play01:16

автомобилей deno Дело в том что

play01:18

количество информации которую можно

play01:20

запаковать в штрих-код довольно-таки

play01:21

мало первые стандарты штрихкодов могли

play01:24

хранить в себе всего 8 или 13 цифр Хотя

play01:26

теоретически в штрихкод можно вместить

play01:28

сколько угодно информа ци так как это

play01:30

всего лишь графический элемент который

play01:32

можно расширять до бесконечности правда

play01:34

есть один маленький нюанс который всё

play01:36

портит штрих-код одномерный то есть

play01:39

высота Полос не оказывает никакого

play01:41

влияния на количество данных влияние

play01:43

оказывает лишь длина которая По мере

play01:45

увеличения позволяет вмещать в штрихкод

play01:47

всё больше и больше информации но в

play01:49

этом-то и заключается вся проблема чем

play01:52

больше информации нам нужно закодировать

play01:54

тем больше будет в ней бит тем больше

play01:56

будет линий тем больше будет длина

play01:58

штрихкода которая временем либо просто

play02:00

перестанет помещаться на товаре либо её

play02:03

станет очень сложно сканировать

play02:04

соответствующим устройством поэтому

play02:06

штрихкоды как правило ограничиваются

play02:08

небольшой длиной что очень сильно не

play02:10

устраивало работников этой компании

play02:12

которые в один прекрасный день стали

play02:14

массово жаловаться что считывание

play02:15

штрихкодов происходит медленно работа их

play02:17

неэффективна в штрихкод не вмещается

play02:19

столько информации сколько требуется для

play02:21

маркировки всевозможных деталей и вообще

play02:23

не очень сильно устают Как ни странно

play02:26

руководство компании всерьёз отнеслось к

play02:28

этой проблеме и поручил своему

play02:30

сотруднику масахиро Хара из-за дела

play02:32

разработки придумать более практичный

play02:34

код который сможет вмещать в себя

play02:35

намного больше информации что и позволит

play02:38

увеличить скорость сканирования масахиро

play02:40

потребовалось целых 2 года прежде чем

play02:43

представить своё изобретение в свет Зато

play02:45

Результат превзошёл все ожидания вместо

play02:48

одномерного штрихкода был представлен

play02:50

двумерный квадрат получивший название

play02:52

Quick response CDE код быстрого

play02:54

реагирования или говоря в просто народе

play02:56

QR код количество информации которое в

play02:58

него можно занести позволяет кодировать

play03:00

не только текст или числа но и различные

play03:02

ссылки изображения музыку и даже игры

play03:05

чтобы понять Как это работает и почему

play03:07

это возможно нужно разобраться с тем из

play03:10

чего qr-kod вообще состоит самое первое

play03:12

что нужно сделать перед его созданием -

play03:14

это определиться с его свойствами первое

play03:17

свойство - это версия QR кода всего

play03:19

существует 40 версий от которой и

play03:21

зависит итоговый размер так например

play03:23

первая версия составляет всего 21х 21

play03:25

модуль А каждая последующая версия

play03:27

увеличивает предыдущий размер на четыре

play03:29

модуля по горизонтали и вертикали В

play03:32

итоге сороковая версия будет занимать

play03:33

уже 177 на 177 модулей второе свойство

play03:37

связано с одной интересной особенностью

play03:39

QR кода которая заранее учитывалась при

play03:42

его разработке считывающее устройство

play03:44

сможет распознать QR код даже если тот

play03:46

будет иметь повреждение Но какой

play03:49

допустимый уровень этих повреждений

play03:50

может быть определяется как раз-таки

play03:52

вторым свойством уровнем коррекции Чем

play03:55

выше будет этот уровень тем выше будет

play03:57

допустимый уровень повреждения и тем

play03:59

меньше информации в QR код получится

play04:01

запихнуть всего существует четыре уровня

play04:04

LM Q H 7 15 25 и 30% допустимых

play04:09

повреждений соответственно при выборе

play04:11

двух этих свойств нужно ориентироваться

play04:13

на количество кодируемый данных если мы

play04:15

хотим закодировать фразу Al Quest

play04:17

которая состоит из семи символов то нам

play04:19

подойдёт любой вариант из первого уровня

play04:21

например H1 Перед тем как мы продолжим

play04:24

хочу сказать пару слов о навыке которые

play04:26

не просто даст вам новые знания как в

play04:27

случае с QR кодом но и сделает вас более

play04:30

востребованным и высокооплачиваемым

play04:31

специалистам по сравнению с другими

play04:34

конечно речь идёт об искусственном

play04:35

интеллекте и нейронных сетях количество

play04:37

компаний которая внедряют свои проекты

play04:39

нейроны и сети говорит лишь о том что

play04:41

это направление ещё долго будет

play04:43

актуальным как для программистов

play04:44

желающих повысить свою зпи расширить

play04:46

Круг навыков так и для руководителей

play04:48

предпринимателей желающих всесторонне

play04:51

развивать своё дело минимальная зарплата

play04:53

Джуна на рынке сейчас составляет в

play04:55

пределах от 70 до 100.000 руб но

play04:57

получить все эти знания можно в

play04:59

университе искусственного интеллекта это

play05:01

инновационное образовательное онлайн

play05:03

учреждение через которое прошли уже

play05:04

более 7.000 студентов со всего мира в

play05:07

ходе обучения вы создадите себе готовое

play05:09

портфолио с опытом написания тридцати

play05:11

дву нейросетей и готовыми фреймворка

play05:14

которые затем вы сможете презентовать

play05:16

своему работодателю у ребят есть

play05:17

гарантированная стажировка на реальных

play05:19

проектах в крупных компаниях и

play05:21

гарантированное трудоустройство

play05:22

прописанной в договоре выпускники уже

play05:25

смогли устроиться в такие компании как

play05:26

Huawei Dell Роскосмос Яндекс и другие

play05:29

чтобы определиться Подходит ли это

play05:31

направление вам ребята подготовили

play05:33

бесплатный трёхдневный интенсив на

play05:35

котором вы создадите девять нейронных

play05:36

сетей даже если у вас вообще нет навыков

play05:39

программирования всё что нужно сделать -

play05:41

это перейти по ссылке в описании

play05:42

зарегистрироваться и получить за это в

play05:44

подарок доступ к вебинару Chat gpt

play05:46

создаём Нейрон без единой строчки кода

play05:49

информация которую мы собираемся

play05:51

закодировать в QR код какой бы она ни

play05:53

была в конечном итоге в любом случае

play05:55

будет представлять из себя всего лишь

play05:57

последовательность бит но Каким образом

play05:59

это коне конечная последовательность бит

play06:00

будет получена зависит от вида

play06:02

информации с которой мы работаем И от

play06:04

вида кодирования который мы выберем для

play06:07

QR кода представлено четыре основных

play06:09

вида цифровое кодирование в котором

play06:10

можно использовать только цифры от нуля

play06:12

до девяти цифро буквенное кодирование в

play06:14

котором можно использовать буквы цифры и

play06:16

несколько таких символов байтовой

play06:18

кодирование в котором все данные просто

play06:20

представляются в двоичном виде и

play06:21

кодирование Канти это кодирование

play06:24

китайско японских иероглифов что для нас

play06:26

с вами не особо актуально поэтому

play06:28

сосредоточимся только на первых трёх в

play06:30

цифровом кодировании вся

play06:31

последовательность разбивается на

play06:33

трёхзначные числа каждое такое число

play06:35

переводится в двоичный вид состоящий из

play06:37

10 бит Если же общее количество цифр не

play06:40

было кратно трём то самое последнее

play06:42

число будет состоять либо из двух либо

play06:44

из одной цифры соответственно в двоичном

play06:46

виде под него будет отведено либо семь

play06:48

либо четыре бита потому что именно в это

play06:51

количество бит вмещается максимально

play06:52

возможные число каждой группы Ну О'кей

play06:55

если с цифрами всё довольно понятно то

play06:57

со второй группой буквенно цифровых

play06:58

данных у уже не всё так просто вся

play07:01

последовательность в этом случае тоже

play07:02

разбивается на группы но уже не по три а

play07:05

по два символа при этом в последней

play07:07

группе снова может оказаться один символ

play07:10

если общее количество символов не было

play07:12

кратно двум далее каждый символ в этой

play07:14

группе заменяется числом Согласно такой

play07:16

вот таблице Затем в каждой группе мы

play07:18

берём первое число умножаем его на 45 и

play07:20

прибавляем к нему второе число Ну а в

play07:23

конце снова переводим полученные

play07:24

значения в двоичные числа состоящие из

play07:27

11 бит либо состоящие из шести бит если

play07:30

в последней группе было одно число

play07:32

последний вид байтовой кодирования

play07:33

подразумевает что мы просто представляем

play07:35

данные в двоичном виде как они есть то

play07:38

есть например если нам представлен текст

play07:39

в кодировке utf8 то Мы просто записываем

play07:42

эту последовательность бит Ну О'кей

play07:44

данные в двоичный вид мы перевели но

play07:46

чтобы раскодировка понять как эти данные

play07:49

были закодированы мы должны где-то ему

play07:51

об этом оставить знак делается это прямо

play07:54

перед полученной последовательностью с

play07:56

помощью одного из следующих четырёх

play07:57

битовых чисел мы указываем способ с помо

play07:59

которого данные были закодированы а

play08:01

следом за ним мы указываем количество

play08:03

этих кодируемый данных это либо

play08:05

количество символов если используется

play08:07

цифровой или цифро буу способ либо

play08:09

количество байт если используется

play08:11

байтовые кодировка Каким количеством бит

play08:13

будет закодирована эта длина зависит от

play08:15

версии и вида кодирования в нашем случае

play08:18

это 9 бит Ну окей Все дальнейшие этапы

play08:21

будут подразумевать работу с байтами

play08:23

Поэтому будет удобнее если мы всю эту

play08:24

битовую последовательность на эти байты

play08:27

Разобьём одна Если мы посмотрим на Коли

play08:29

наших бит то заметим что она не кратно

play08:32

восьми Это означает что если мы разделим

play08:34

все наши данные на байты то последний

play08:36

байт будет неполным Поэтому в самый

play08:38

конец мы добавляем столько количества

play08:40

нулей Сколько потребуется для того чтобы

play08:42

количество данных стало кратно восьми

play08:45

хорошо мы получили 56 Бит Но из таблицы

play08:48

с максимальным количеством данных мы

play08:49

знаем что в H1 может поместиться 72 бита

play08:53

именно до этого количества нам нужно

play08:55

сейчас наши данные снова дополнить с

play08:57

помощью Таких вот чередующихся ба в

play08:59

итоге мы получаем 9 байт и переходим к

play09:01

самой последней сложной части перед тем

play09:04

как к ней приступить нужно всю

play09:06

последовательность байт разбить на блоки

play09:08

из данной таблицы Мы видим что для H1

play09:10

требуется всего один блок поэтому

play09:12

конкретно в нашем случае ничего

play09:14

разбивать не нужно но на практике если

play09:16

будет использована другая версия и

play09:18

другой уровень коррекции то

play09:20

последовательность байт разбивать

play09:22

всё-таки придётся чтобы узнать

play09:24

количество байт в одном блоке нужно

play09:26

всего лишь разделить общее количество

play09:27

байт на количество бло Однако если

play09:30

результат деления окажется не целым

play09:32

числом то количество байт в блоках будет

play09:35

зависеть от остатка от деления Медет

play09:37

остаток показывает количество последних

play09:39

блоков в которых количество байт будет

play09:41

на единицу больше чем в остальных То

play09:44

есть если у нас к примеру есть сть

play09:45

блоков и 704 байта данных то мы получаем

play09:49

117,5 а в остатке отделения получаем два

play09:52

Это означает что в четырёх блоках будет

play09:54

находиться по 117 байт А в последних

play09:56

двух будет находиться 118 Ну О'кей

play10:00

каждый такой полученный блок поможет нам

play10:01

сгенерировать байты коррекции которые мы

play10:04

затем смешаем с данными количество этих

play10:06

байтов снова зависит от уровня коррекции

play10:09

и версии в нашем случае это 17 байт на

play10:12

основе Этого числа по ещё одной таблице

play10:14

мы получаем генерирующий многочлен и

play10:16

начинаем выполнять алгоритм для каждого

play10:18

такого блока в отдельности состоит он из

play10:21

девяти шагов мы создаём массив нося туда

play10:24

наши данные из блока Но если количество

play10:26

байт коррекции окажется больше

play10:28

количества байт с да то добиваем этот

play10:30

массив нулями до этой длины теперь

play10:33

начинаем этот массив перебирать достаём

play10:35

первый элемент из этого массива и

play10:36

называем его а все остальные элементы

play10:39

сдвигаем влево А на последнее место

play10:41

ставим ноль если а оказывается нулём то

play10:43

сразу переходим к следующей итерации

play10:46

Если нет то по таблице находим

play10:47

соответствующее ему число b Затем

play10:50

перебираем все числа генерирующего

play10:52

многочлена складываем по модулю 255

play10:54

текущее число с числом B получая число C

play10:58

и в конце заменяем число из массива с

play11:00

данными по текущему индексу на результат

play11:02

операции кр Между ним и числом D которое

play11:05

мы снова получаем по ещё одной таблице в

play11:07

соответствии с числом C выполнив все эти

play11:09

шаги для каждого блока мы получим байты

play11:12

коррекции в нашем массиве При этом если

play11:14

байтов коррекций по таблице 17 А

play11:16

количество элементов в массиве будет

play11:18

больше то байтами коррекции будут

play11:20

являться только первые 17 элементов

play11:23

хорошо всё что осталось сделать - это

play11:25

объединить все блоки данных со всеми

play11:27

блоками байтов коррекции для этого мы из

play11:29

каждого блока с данными по очереди берём

play11:31

их первые байты затем вторые третье и

play11:34

так далее после этого проделываем то же

play11:36

самое с байтами коррекции и добавляем их

play11:38

в самый конец К данным в случае если у

play11:41

нас был всего один блок с данными и один

play11:43

блок с байтами коррекции то просто

play11:45

добавляем байты коррекции в конец к

play11:47

байтам с данными чтобы всё это создать

play11:49

требовалось очень много тестов и это

play11:51

касается любого продукта в ходе его

play11:53

разработки многим из вас наверняка

play11:55

требуется разворачивать запускать и

play11:57

тестировать свои продукты да для для

play11:59

этого сейчас существуют облачные сервисы

play12:01

которые предоставляют такие услуги но мы

play12:03

хотим чтобы эти услуги были не только

play12:05

качественными но и бесплатными Особенно

play12:07

если это что-то тестовое так вот

play12:09

наконец-то у нас появилась такая

play12:11

возможность благодаря провайдеру Cloud

play12:13

ru Cloud ru - это Лидер на рынке

play12:14

облачных сервисов и ai технологий ребята

play12:17

собрали крутую команду из более чем

play12:19

полутора тысяч профессионалов в области

play12:21

it кибербезопасности искусственного

play12:23

интеллекта а совсем недавно они

play12:25

запустили fre tire это объём облачных

play12:27

ресурсов которые мы можем получить

play12:29

бесплатно и навсегда что сюда входит

play12:31

Первое - это виртуальная машина с

play12:33

двухъядерный виртуальным процессором 4

play12:35

ГБ оперативной памяти 30 Гб SSD диска

play12:39

второе - это объектное хранилище сюда

play12:42

входит 5 Гб облачного хранилища и

play12:44

бесплатная операции для загрузки данных

play12:46

любого типа все эти сервисы расположены

play12:48

на платформе Cloud R Evolution это

play12:50

публичное защищённое Облако на базе

play12:52

собственных разработок и свободно

play12:54

распространяемых компонентов провайдер

play12:56

собирает платформу силами только своей

play12:58

команды пишет детальную документацию и

play13:00

делает простой интерфейс на русском

play13:02

языке Если вы новый пользователь этой

play13:04

платформы то вы получите ещё и 4.000

play13:06

бонусов За регистрацию по Сбер ID или

play13:09

привязку карты один бонус равняется

play13:11

одному рублю И ими можно оплачивать

play13:13

любые сервисы это актуально Потому что

play13:15

если вы хотите с вашей виртуальной

play13:17

машиной выйти в интернет то Придётся

play13:18

приобрести публичное IP за которой можно

play13:21

будет расплатиться бонусами переходи по

play13:23

ссылке в описании регистрируйся в личном

play13:25

кабинете и начинай использовать

play13:26

платформу Cloud именно в таком виде мы и

play13:29

будем размещать наши данные в QR коде но

play13:32

чтобы это сделать Сперва нужно

play13:34

разобраться со

play13:42

вспомогатель одним модулем мы называем

play13:44

один такой квадратик первая проблема с

play13:46

которой мы сразу же сталкиваемся - это

play13:48

то что qr-kod имеет квадратную форму

play13:51

Дело в том что считывающего устройству

play13:53

нужно определить где у этого квадрата

play13:55

верх где низ где право А где лево

play13:58

Поэтому в QR добавляется три специальных

play14:00

одинаковых квадрата в два верхних и в

play14:02

один Левый нижний угол состоит такой

play14:05

квадрат из чёрных модулей 3х 3 которые

play14:07

окружены белой рамкой из одного модуля и

play14:09

чёрной рамкой тоже из одного модуля

play14:11

Кроме этого у них имеется ещё и белая

play14:13

рамка в местах не прилегающих границы

play14:16

квадрата именно по этим квадратам

play14:18

считывающее устройство и определяет

play14:20

расположение qr-kod Но при условии что

play14:22

QR код будет в идеальном для считывания

play14:24

положений но как мы знаем QR код может

play14:27

быть мятый неровный иметь повреждения и

play14:30

так далее поэтому для корректного

play14:31

считывания данных используются

play14:33

дополнительные модули например квадраты

play14:35

выравнивания добавляются они в

play14:59

18 от левого верхнего модуля а 622 и 38

play15:02

в седьмой версии соединившись каждая с

play15:04

каждым даст нам девять координат для

play15:07

девяти квадратов при этом выравнивающие

play15:09

квадраты не должны перекрывать квадраты

play15:11

расположения То есть например в седьмой

play15:13

версии квадратов в координатах 66 638 и

play15:16

386 быть не должно О'кей следующий

play15:20

вспомогательный модуль для корректного

play15:21

сканирования - это полосы синхронизации

play15:24

начинаются они после белой рамки справа

play15:26

и снизу напротив правого нижнего чёрного

play15:29

модуля левого верхнего квадрата и

play15:31

представляют собой чередующиеся чёрные и

play15:33

белые модули до белых рамок

play15:35

противоположных квадратов начиная с

play15:38

седьмой версии в QR код заносится ещё и

play15:40

номер этой версии это специальный код

play15:42

состоящий из нулей и единиц где чёрный

play15:45

модуль - это единица А белый модуль -

play15:47

это ноль всё это двоичное число

play15:49

разбивается на три части и размещается в

play15:51

виде строк над нижним левым квадратом и

play15:53

в виде колонок слева от верхнего правого

play15:56

квадрата последнее что осталось сделать

play15:58

перед тем как приступить к размещению

play16:00

данных это добавить в qr-kod код уровня

play16:02

коррекции и код маски они как и версия

play16:05

QR кода дублируется в двух местах первый

play16:07

возле верхнего левого квадрата по

play16:09

направлению слева направо снизу вверх а

play16:11

второй разрывается на две части первая

play16:13

часть размещается справа от Нижнего

play16:15

левого квадрата снизу вверх а вторая под

play16:18

верхним правым квадратом слева направо

play16:20

при этом над первой частью по умолчанию

play16:22

располагается чёрный модуль если с кодом

play16:24

уровня коррекции мы знакомы то что такое

play16:27

код маски это код которая определяет

play16:29

формулу на основе которой будут

play16:31

инвертировать биты наших подготовленных

play16:33

данных какую формулу лучше выбрать

play16:35

зависит от самих данных мы не будем на

play16:37

этом останавливаться а Посмотрим как эта

play16:39

маска вообще работает например код маски

play16:42

с номером два предлагает нам вычислить

play16:44

остаток отделени X на 3 x - это номер

play16:47

модуля слева направо начиная с нуля если

play16:49

мы произведём подобные вычисления для

play16:51

всех модулей по оси X нашего QR кода то

play16:54

Увидим в каких модулях результат

play16:55

вычисления даст ноль А в каких даст

play16:57

больше нуля так вот там где получится

play17:00

ноль бит и будет инвертировать то есть

play17:02

если там был ноль то станет единица А

play17:04

если была единица то станет ноль чтобы

play17:07

было нагляднее мы произведём это

play17:09

инвертирование уже после того как

play17:11

разместим оставшиеся данные если мы

play17:13

закроем все участки которые отведены под

play17:21

вспомогательной закодированных данных

play17:23

мезона позволяет вместить в себя 208 бит

play17:26

72 из которых - это наши данные плюс

play17:28

способ кодирования длина данных и

play17:30

чередующиеся байты а 136 - это байты

play17:33

коррекции для удобства всё это

play17:35

пространство мы Разобьём на Столбцы

play17:37

шириной в два модуля единица - это

play17:39

по-прежнему чёрный модуль ноль

play17:41

по-прежнему белый размещать мы начинаем

play17:43

их от правого нижнего угла QR кода в

play17:45

виде такой вот змейки каждый раз доходя

play17:48

до верха мы направляемся к левому краю

play17:50

следующего столбца и продолжаем

play17:52

размещать той же самой змейкой только

play17:54

уже по направлению вниз а доходя до низа

play17:56

Мы точно также переходим к левому краю

play17:59

следующего столбца и отправляемся

play18:01

змейкой вверх таким образом разместив

play18:03

все наши данные Остаётся только наложить

play18:05

на них нашу маску и инвертировать цвета

play18:07

тех модулей в которых остаток отделения

play18:10

даст ноль самое последнее что осталось

play18:12

сделать чтобы qr-code заработал - это

play18:14

добавить вокруг него обязательную

play18:19

двухмоторный шумов которые могут

play18:21

находиться вокруг него чтобы сканер

play18:24

случайно не взял их в качестве данных

play18:26

если мы теперь попробуем просканировать

play18:27

этот код то получим название моего

play18:29

канала alos подписывайся в Telegram

play18:32

канал по ссылке в закреплённой

play18:34

комментарии чтобы не пропускать выход

play18:36

полезного контента увидимся в следующих

play18:38

видео

Rate This

5.0 / 5 (0 votes)

Related Tags
Облачные СервераИзонетШтрих-кодыQR-кодыТехнологииХостингОбучениеИскусственный ИнтеллектНейронные СетиОблачные Сервисы
Do you need a summary in English?