Kod QR – nowoczesna wizytówka

Czym są kody QR i jak działają?

Kody QR (z ang. QR Code czyli Quick Response Code) to kody kreskowe pozwalające na zapisanie dużej ilości danych. Ilość danych możliwa do zapisania w jednym kodzie jest zmienna. W przypadku znaków alfanumerycznych wynosi ona 4296 znaków.

Jest to alfanumeryczny, dwuwymiarowy, matrycowy, kwadratowy kod kreskowy wynaleziony przez japońską firmę Denso-Wave w 1994 roku.

Umożliwia kodowanie znaków Kanji/Kana, stąd jest popularny w Japonii. Dodatkowo pozwala na zakodowanie znaków należących do alfabetu arabskiego, greckiego, hebrajskiego lub cyrylicy jak również innych symboli określonych przez użytkownika.

Standard

W październiku 1997 symbolika została włączona do Wykazu Ujednoliconych Symbolik (ang. USS – Uniform Symbol Specifications) przez organizację AIM (Global Trade Association of the Automatic Identification & Data Capture Industry) jako ISS – QR Code. W marcu 1998 japońska organizacja JEIDA (Japanese Electronic Industry Development Association) włączyła ją jako standard JEIDA-55. W styczniu 1999 została standardem JIS (Japanese Industrial Standards) – JIS X 0510. W czerwcu 2000 organizacja ISO włączyła ją jako standard ISO/IEC18004.

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.

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).

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.

Tekst na podstawie wikipedii.
Tekst udostępniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach