Kod QR

Kod QR (ang. Quick Response, szybka odpowiedź) – alfanumeryczny, dwuwymiarowy, matrycowy, kwadratowy kod graficzny opracowany przez japońskie przedsiębiorstwo Denso Wave w 1994 roku.

Jest to kod modularny i stałowymiarowy. 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.

Alfabet w kodzie QR
Przykład kodu QR

Charakterystyka

Budowa kodu umożliwia jego umieszczenie i odczyt na przedmiotach szybko przemieszczających się względem skanera (np. na przenośnikach). Symbolika jest również stosowana w różnych aplikacjach niezwiązanych z transportem przesyłek. Analogicznie do Semakodu można ją stosować do zapisywania i umieszczania w różnych miejscach adresów URL, a następnie odczytywać przy pomocy odpowiednio oprogramowanych urządzeń przenośnych. Takie zastosowanie jest szczególnie popularne w Japonii. W Polsce świadomość w zakresie techniki QR jest coraz wyższa. Można się z nimi spotkać w coraz większej ilości miejsc, takich jak reklamy, strony internetowe, czy gry komputerowe.

Odmiany

QR Code występuje w dwóch odmianach: podstawowej (Model 1) oraz rozszerzonej (Model 2), która pozwala zakodować do 7089 znaków numerycznych, 4296 alfanumerycznych, 1817 znaków Kanji, 2953 ośmiobitowych danych binarnych (bajtów)[1] lub 984 znaków UTF-8[2].

Dopuszczalne wymiary kodu wynoszą 21×21 modułów do 177×177 modułów. W sumie istnieje czterdzieści dopuszczalnych wielkości. Specyfikacja dopuszcza połączenie do 16 kodów celem zapisania większej ilości informacji.

Standardy

W październiku 1997 symbolika została włączona do Wykazu ujednoliconych symboli (ang. Uniform Symbol Specifications) przez organizację AIM Global (Association for Automatic Identification and Mobility) 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 Międzynarodowa Organizacja Normalizacyjna włączyła ją jako standard ISO/IEC18004.

Budowa kodu

Kod QR z zaznaczonymi miejscami szczególnymi

Modułem w kodzie jest kwadrat mogący przybierać jeden z dwóch kolorów (ciemny lub jasny). Większa liczba 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ęść. Na wzór wyszukiwania składają się trzy wzory pozycji (każdy stanowi kilkumoduł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ę z dwóch linii 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ą. Liczba 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.

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.

Mechanizm korekcji błędów

Specyfikacja udostępnia cztery poziomy korekcji i odzyskiwania danych (algorytm Reeda-Solomona):

  • L – umożliwiający odzyskanie około 7 procent uszkodzonych danych
  • M – umożliwiający odzyskanie około 15 procent uszkodzonych danych
  • Q – umożliwiający odzyskanie około 25 procent uszkodzonych danych
  • H – umożliwiający odzyskanie około 30 procent uszkodzonych danych.

Poziom korekcji wpływa na ilość danych możliwych do zapisania przez kod o określonych wymiarach (o określonej wersji). Na przykład wersja 10 (o rozmiarach 57×57 modułów) dla poziomu korekcji L pozwala na zapisanie 652 cyfr, a dla poziomu H – 288 cyfr[3].

Obsługa przez oprogramowanie

Z kodów QR można korzystać na mobilnych systemach przy użyciu wyspecjalizowanego oprogramowania. Android obsługuje przekierowania URL co pozwala na przesyłanie kodom QR metadanych do znajdujących się na urządzeniu aplikacji[4]. System operacyjny Nokii Symbian wyposażony jest w skaner kodów kreskowych potrafiący czytać kody QR. Dla systemu Maemo czytnikiem kodów QR jest aplikacja mbarcode. W Apple iOS od wersji 11 czytnik kodów QR jest wbudowany w systemową aplikację Aparat. W starszych systemach czytnik nie jest domyślnie obecny, ale dostępnych w App Store jest wiele aplikacji, które potrafią zarówno odczytywać kody QR jak i je tworzyć. W urządzeniach BlackBerry, aplikacja App World potrafi odczytywać kody QR, rozpoznawać w nich adres WWW i wczytywać go w systemowej przeglądarce. Windows Phone 7.5 potrafi odczytywać kody QR i otwierać zawarty w nich adres WWW przy użyciu Bing Vision. Kody QR mogą być używane także na Nintendo 3DS.

W sieci znajduje się wiele stron, które zapewniają możliwość kodowania i dekodowania kodów QR.

Zobacz też

Przypisy

Bibliografia

  • Kody kreskowe: rodzaje, standardy, sprzęt, zastosowaniaInstytut Logistyki i Magazynowania, Poznań 2000, ISBN 83-87344-60-5

Linki zewnętrzne

Media użyte na tej stronie

Qr-witaj-w-wikiped.svg
Autor: Andrew J.Kurbiko, Licencja: CC0
Wikimedia Quick Response codes
QR Code with desc.svg
Budowa kodu kreskowego QR Code
Obszar zaznaczony niebieską ramką – wzór wyszukiwania (3xwzór pozycji) oraz separatory
Obszar zaznaczony zieloną ramką – wzór synchronizacji (2x)
Obszar zaznaczony czerwoną ramką – wzory osiowe
Obszar zaznaczony żółtą ramką – pojedynczy moduł
UWAGA: Grafika nie przedstawia obowiązkowego marginesu o szerokości 4 modułów z każdej strony kodu!
Qr code-alphabet.svg
Autor: MesserWoland, Licencja: CC-BY-SA-3.0
Alfabet zakodowany w kodzie QR Code