Rewolucyjny sposób zapisu danych

Podczas planowanej na jesień premiery nowego filmu z przygodami Jamesa Bonda ludzie będą się tłoczyć przed plakatami. Będą stali z telefonem w ręce, jednak zamiast obfotografowywać nową gorącą dziewczynę Bonda, skierują swą uwagę na mały obrazek.
Przykładowy kod QR
Przykładowy kod QR

Dlaczego ten obrazeczek wzbudzi takie zainteresowanie? Ponieważ umożliwia szybkie przejście na odpowiednią stronę w Sieci. W przypadku owego obrazka mamy do czynienia z Quick Response Code, w skrócie QR Code, w którym zaszyfrowany został adres internetowy. Aparat komórki wczytuje matrycę QR, która jest dekodowana przez odpowiednią aplikację. W wyniku tego fan otrzymuje link, za pośrednictwem którego będzie mógł pobrać darmowy wygaszacz ekranu czy dzwonek ze ścieżką mzyczną z filmu. Rozwiązanie zostało sprawdzone w Wielkiej Brytanii podczas premiery ostatniego filmu z cyklu “Mr. Bean”.

Kody QR nie są nowością, a trend ten pochodzi z Azji. Tam czarno-białe wzory znajdują się na plakatach, puszkach oraz wizytówkach. Nawet McDonald’s postanowił umieścić matrycę QR na opakowaniach swoich burgerów: w matrycy został zapisany odnośnik do strony internetowej zawierającej informację o składnikach oraz wartości odżywczej fast foodów.

Quick Response Code
Jak  to działa?

Właściwie jakie znaczenie mają zakodowane znaki, które możemy odczytać telefonem? Poniżej rozwiązujemy zagadkę tajemniczego “pisma”.

STRUKTURA:

W przeciwieństwie do znanego ze sklepów kodu kreskowego, który zawiera maksymalnie 12 cyfr, na matrycy QR zmieści się zdecydowanie większa ilość informacji. Pliki binarne mogą się składać z prawie 3000 bajtów, co odpowiada obrazowi JPEG składającemu się z 1500 pikseli. Kombinacja cyfr może mieć długość maksymalnie 7000 znaków. Przeciętnie, wykorzystując również tekst, możemy zapisać około 4300 znaków. Trzeba zaznaczyć, że matryca QR ma różne rozmiary. Od rozmiaru 1, któremu odpowiada kwadrat składający się z 21×21 punktów, do rozmiaru 40, do którego odnoszą się wyżej podane wartości. W tym przypadku boki kwadratu mają długość 177 punktów. Najczęściej stosowana jest tzw.  wersja 3, która odpowiada kwadratowi składającemu się z 29×29 punktów oraz ze 115 znaków.

KONWERSJA:

Koder QR przelicza odnośnik lub słowo, np. “CHIP”, na ciąg czarnych i białych pól. Choć

w kodzie komputerowym mamy do czynienia z plikami binarnymi, czarne pola w matrycy reprezentują wartość 1, natomiast białe – 0. Pola, które widzimy, to jedynie efekt końcowy działania kodera.

W pierwszym kroku koder zamienia litery, cyfry oraz znaki interpunkcyjne za pomocą normalizowanej tabeli na liczby. Słowo “CHIP” zostanie w ten sposób zapisane jako 12, 17, 18, 25. Liczby te koder łączy w pary. Rozwiązanie umożliwia oszczędzanie miejsca podczas kodowania, które przebiega zgodnie z następującą formułą: pierwsza liczba jest mnożona przez 45, do otrzymanego wyniku jest dodawana druga liczba. Dla pary “CH” oznacza to 557, natomiast dla “IP” – 835. Wartości 557 oraz 835 są następnie przez koder konwertowane do 11-bitowego kodu binarnego. W przykładzie otrzymujemy dla liczby 557 ciąg 01000101101, a dla 835 – 01101000011. Gdy ustawimy jeden ciąg za drugim, otrzymamy słowo “CHIP” zapisane w kodzie QR.

Po konwersji koder dzieli strumień bitów na bloki zawierające po osiem bitów. Z mającego 22 bity ciągu CHIP zostaną więc stworzone trzy bloki. Ostatni blok, który zawiera tylko 6 bitów informacji, zostaje uzupełniony zerami – do 8 bitów.

KOREKCJA BŁĘDÓW:

Jeżeli matryca QR zostanie zabrudzona lub uszkodzona, możemy ją nadal odczytać dzięki zintegrowanej korekcji błędów. Dzieje się tak dlatego, że znaczna część matrycy jest zajęta przez dane korekcyjne, które są dołączane do właściwej treści.

Koder sprawdza dane dotyczące korekcji błędów za pomocą algorytmu korekcji Reed-Solomon, który jest wykorzystywany również w przypadku płyt CD oraz DVD. To, ile danych zdołamy odzyskać, zależy od poziomu korekcji. W standardzie QR zostały zdefiniowane cztery poziomy korekcji błędów: L, M, Q oraz H. L umożliwia odratowanie siedmiu procent uszkodzonych danych, H natomiast oferuje najwyższe bezpieczeństwo danych: w tym przypadku czytnik QR potrafi odtworzyć do 30 procent danych. Oczywiście im wyższy poziom korekcji, tym więcej miejsca w matrycy zajmują dane korekcyjne.

MASKOWANIE:

Koder w tym momencie nie przystępuje jeszcze do konwersji bloków składających się

z zer i jedynek oraz zamiany ich na czarne i białe punkty. Wpierw na wcześniej wyliczone dane nakłada maskę, w celu uniknięcia wielkich białych lub czarnych obszarów, które  sprawiają kłopot czytnikom. Koder dokonuje wyboru jednej z kilkunastu masek. Wybierana jest ta, która gwarantuje najlepszą czytelność. Dopiero teraz tworzone są czarne i białe punkty.

Aby czytnik QR mógł z grafiki punktowej z powrotem wyczarować odpowiednie bity, w matrycy muszą zostać zapisane dwie dodatkowe informacje: poziom korekcji błędów oraz zastosowana maska. Obydwie informacje znajdują się w obszarze dotyczącym formatowania.

Kody QR w praktyce
Więcej informacji na komórce

Dla branży reklamowej kody QR oznaczają nowy kanał kontaktu z klientem, ale korzyść odnosi również użytkownik prywatny. Darmowe są nie tylko aplikacje umożliwiające odczyt telefonom komórkowym, ale za darmo można  też tworzyć w Internecie własne kody QR (qrcode.kaywa.com). Poza ich komercyjnym wykorzystaniem możliwe jest też inne. Działają już projekty typu Tag City (tag-city.net) we Frankfurcie. W mieście umieszczono kody w miejscach interesujących pod względem artystycznym lub historycznym. Po zeskanowaniu kodu otrzymamy dodatkowe informacje dotyczące ciekawego obiektu. Możemy sobie śmiało wyobrazić całą wycieczkę, której przewodnikiem byłaby matryca QR. Kto na przykład zeskanuje obrazek przy frankfurckim ratuszu, znanym jako Römer, zostanie przekierowany na stronę internetową ze szczegółowymi informacjami dotyczącymi architektury budynku. Podobne rozwiązanie można by zastosować w muzeach. Na razie jednak rozmieszczenie kodów QR w bardzo wielu miejscach jest utrudnione z powodu braku kilku istotnych elementów. Bez taniego stałego dostępu do Sieci dla komórek połączenie z Internetem w celu sprawdzenia informacji jest zbyt drogie. Tymczasem jedynie Internet udostępnia więcej informacji –

w znaczku QR nie ma na to wystarczająco dużo miejsca.

W dodatku aktualnie jedynie Nokia w kilku wybranych modelach (N82, N93, N93i, N95 oraz E90) oferuje zintegrowany czytnik QR – w tym wypadku bezproblemowa współpraca pomiędzy czytnikiem

a aparatem jest gwarantowana. Inne telefony komórkowe mogą nam w różnym stopniu sprawiać problemy. Niektórym aparatom komórkowym brakuje lampy błyskowej czy też możliwości zoomowania. Dlatego w ich przypadku kody QR powinniśmy skanować jedynie w dobrych warunkach oświetleniowych. Na szczęście wraz z przełomem w mobilnym Internecie kłopoty te najprawdopodobniej się skończą, a kody QR staną się tak powszechne jak wiadomości SMS.

Budowa matrycy QR

Krawędź zewnętrzna i Wzorce pozycji ułatwiają rozpoznanie obrazka podczas skanowania. Separator oddziela trzy punkty szczególne od właściwego pola tekstowego. Wzorce pozycji i timingu sprawiają, że czytnik QR poprawnie rozpoznaje poszczególne pola. Dopiero wtedy czytnik odczytuje informacje dotyczące formatu oraz wersji matrycy. Dzięki temu dane o korekcji błędów zostaną oddzielone od obszaru zakodowanych słów, które czytnik ma odczytać.

Aplikacje QR

KAYWA READER: Uniwersalny czytnik do telefonów komórkowych obsługujących Javę. Pod podanym adresem znajdziemy też informację o obsługiwanych modelach. reader.kaywa.com
QUICKMARK: Na stronie www.quickmark.com.tw znajdziemy czytniki do telefonów komórkowych z systemem Windows Mobile lub Symbian.