Kody QR

Czym są te kwadraty i jak działają kody QR w praktyce?

Co to jest kod QR? Po co powstały kody QR? Jakie możliwości ze sobą niesie kod QR? Jakie jest ich przeznaczenie? Do czego służą kody QR?

Kod QR / QR Code

Kod QRz ang. QR Code, to skrót od Quick Response Code. Kody QR to nic innego jak kolejna odmiana kodów kreskowych, z tą różnicą, że kody QR pozwalają na zapisanie dość pokaźnej ilości danych jak na tak mały obrazek złożony z kwadracików. Ilość danych możliwa do zapisania w jednym kodzie jest zmienna i zależna od zakodowanej treści. Ilość danych jaką kody QR są w stanie “udźwignąć” dla znaków alfanumerycznych wynosi dokładnie 4296 znaków.

Kody QR wynalezione zostały przez japońską firmę Denso-Wave w 1994 roku, a są to alfanumeryczne, dwuwymiarowe, matrycowe, kwadratowe kody kreskowe.

Jak działają kody QR?

Modułem w kodzie jest kwadrat mogący przybierać jeden z dwóch kolorów (ciemny lub jasny). Większa ilość modułów tworzy tzw. słowa kodowe, w których zapisana jest informacja o poszczególnych znakach. Wymiar modułu nie jest ściśle określony i zależy od możliwości urządzeń odczytujących i zapisujących. W związku z tym również wymiary całego kodu są zmienne. Zależą one dodatkowo od wybranej wersji kodu, która jest zależna od przyjętego poziomu korekcji błędów oraz ilości zapisanych danych.

Możliwości QR na przykładach

Kody QR, umożliwiają użytkownikom kodowanie przeróżnych znaków:

  • japońskich Kanji/Kana, 
  • znaków alfabetu arabskiego,
  • znaków alfabetu greckiego, 
  • znaków alfabetu hebrajskiego, 
  • cyrylicy i wielu innych.


Kody QR zyskały na popularności w Japonii właśnie ze względu na swoje duże możliwości, dzięki którym zakodowanie znaków Kanji/Kana nie stanowi dla kodów QR żadnego problemu.


Standard

Standard, a raczej standardy, które kody QR osiągnęły:

  • 1997 - ISS - QR Code
  • 1998 - JEIDA-55
  • 1999 - JIS X 0510
  • 2000 - ISO/IEC18004


Wzór wyszukiwania zawarty w kodzie QR

W kodzie wykorzystuje się wzór wyszukiwania pozwalający czytnikowi na odnalezienie poszczególnych miejsc w kodzie, względem których odczytywana jest pozostała jego część. Wzór wyszukiwania składa się na trzy wzory pozycji (każdy stanowi kilkomodułowy ciemny kwadrat otoczony jasną ramką, która jest otoczona ciemną ramką), które dodatkowo są oddzielone od danych jasną ramką o szerokości jednego modułu (tzw. separatorem). Oznaczenia wzorów pozycji są umieszczone w trzech narożnikach kodu.

Dodatkowo w kodzie występuje tzw. wzór synchronizacji składający się na dwie linie o szerokości jednego modułu, z których jedna przebiega poziomo, a druga pionowo pomiędzy wzorami pozycji. Linie te zawierają na przemian ułożone ciemne i jasne kropki. Dzięki nim możliwe jest określenie wersji, gęstości kodu oraz współrzędnych poszczególnych danych w nim zapisanych.

Model 2 kodu zawiera dodatkowy wzór osiowy. Pojedynczy element wzoru osiowego składa się z czarnego modułu otoczonego białą ramką, która otoczona jest czarną ramką. Ilość elementów wzoru zależna jest od rozmiarów kodu. Model 1 kodu zawierał inne wzory, które zostały umieszczone z myślą o jego rozszerzeniu (nie zostały wykorzystane).

Korekcja błędów w kodach QR

W części danych oprócz samych danych umieszczone są informacje o formacie i wersji kodu oraz dane niezbędne do działania mechanizmów korekcji błędów. Dookoła kodu wymagane jest stosowanie marginesu o szerokości co najmniej czterech modułów.

Szybkość działania

Inną cechą kodu jest tzw. mechanizm maskowania, który powoduje, że jasne i ciemne moduły są rozłożone w miarę równomiernie, co skutkuje zwiększeniem szybkości przetwarzania obrazów przez skanery.