Як працює QR-код. Пояснення
Покроковий розбір того, як працює QR-код від Dan Hollick.
Код швидкого реагування був винайдений дочірньою компанією Toyota для відстеження деталей у процесі виробництва.
Штрих-коди виявилися неадекватними – їх можна було зчитувати лише під певними кутами, і вони не зберігали багато даних відносно свого розміру.
QR-код вирішує ці та інші проблеми.
![FcnnO46acAE_zAB1.png](/media/images/FcnnO46acAE_zAB1.width-600.png)
Найбільш відмінною рисою QR-коду є ці кубічні форми, які називають шаблонами пошуку. Вони допомагають зчитувальному пристрою виявити код.
Менший четвертий куб, шаблон вирівнювання, орієнтує код так, що він може міститися під будь-яким кутом, і зчитувальний пристрій все одно знатиме, в який бік він розташований.
![FcnnPZZacAALNbh2.png](/media/images/FcnnPZZacAALNbh2.width-600.png)
Ви, мабуть, ніколи не помічали, але кожен QR-код має ці чергування чорних і білих крапок, які називаються шаблоном синхронізації. Вони повідомляють читачеві, наскільки великий окремий модуль і наскільки великий QR-код, відомий як версія.
Версія 1: найменша
Версія 40: найбільша
![FcnnP9dacAEoEJL3.png](/media/images/FcnnP9dacAEoEJL3.width-600.png)
![FcnnQSKaUAAhOOW.png](/media/images/FcnnQSKaUAAhOOW.width-600.png)
Інформація про формат зберігається у цих двох смужках поруч із шаблонами Finder. Вона зберігається двічі, тому її можна прочитати, навіть якщо QR-код частково прихований. (Ви помітите, що це повторювана тема).
Тут зберігаються три важливі частини інформації: маска, рівень корекції помилок, формат виправлення помилок. Я знаю, що це звучить надзвичайно нудно, але насправді вони досить цікаві.
![FcnnRVGaMAUcfsM.png](/media/images/FcnnRVGaMAUcfsM.width-600.png)
По-перше, виправлення помилок – що це? По суті, це визначає, скільки надлишкової інформації зберігається в коді, щоб гарантувати, що він залишається читабельним, навіть якщо частина його відсутня.
![FcnnRycaUAI6Ux9.png](/media/images/FcnnRycaUAI6Ux9.width-600.png)
По-друге, маска – що це таке? QR-рідери працюють найкраще, коли в них однакова кількість білих та чорних ділянок. Але дані можуть не збігатись, тому для вирівнювання використовується маска.
![FcnnSz8akAI80Vu.png](/media/images/FcnnSz8akAI80Vu.width-600.png)
Коли маска застосовується до коду, все, що потрапляє під темну частину маски, інвертується. Біла ділянка стає чорною, а чорна – білою.
Є 8 стандартних шаблонів, які застосовуються один за одним. Використовується шаблон, який забезпечує найкращий результат, і ця інформація зберігається, щоб читач міг скасувати застосування маски.
![FcnnXIjaAAANy9c.png](/media/images/FcnnXIjaAAANy9c.width-600.png)
Нарешті ми дійшли до фактичних даних. Дивно, але дані починаються в нижньому правому куті та згортаються назад, як показано на малюнку. Майже неважливо, де вони починаються, тому що їх можна читати під будь-яким кутом.
![FcnnXo_aEAACmw0.png](/media/images/FcnnXo_aEAACmw0.width-600.png)
Перша частина інформації тут повідомляє читачеві, у якому режимі було закодовано дані, а друга вказує довжину. У нашому випадку кожен символ займає 8 бітових фрагментів, інакше відомих як байти, і їх 24.
![FcnnYJcaUAI5WFF77.png](/media/images/FcnnYJcaUAI5WFF77.width-600.png)
Після наших даних ще залишається купа вільного місця. Тут зберігається інформація про виправлення помилок.
Можливо, найкрутіше QR-кодах те, що компанія Denso Wave, яка їх винайшла, ніколи не користувалася своїм патентом і випустила технологію безкоштовно.