Kody 2D

Wstęp

26 czerwca 1974 roku nastąpił pierwszy komercyjny odczyt kodu kreskowego. Odczytano kod kreskowy z paczki gumy do żucia używając czytnika firmy PSC (obecnie Datalogic). Od tego czasu popularność kodów kreskowych wzrosła do tego stopnia, że są stosowane dosłownie w każdej dziedzinie życia, w każdej branży przemysłowej. Swoją rosnącą popularność kody kreskowe zawdzięczają szybkości odczytu, dokładności zapisanej informacji oraz ogromnej funkcjonalności i niskim kosztom wytworzenia i obsługi.

Wraz ze wzrostem popularności kodów kreskowych oraz wygody ich stosowania, zaczęły się pojawiać potrzeby zapisu w nich większej ilości informacji, możliwości użycia różnych zestawów znaków oraz zmniejszenia powierzchni kodu zachowując jednocześnie odległość odczytu.

W rezultacie podjęto starania w celu opracowania kodów kreskowych, w których można by zapisać większą ilość informacji np. zwiększenie maksymalnej ilości znaków w kodzie lub opracowania kodów piętrowych. Okazało się że takie rozwiązania zwiększają objętość kodu, znacznie utrudniają proces odczytu takiego kodu oraz zwiększają koszt wydruku.

Kody dwuwymiarowe (2D) powstały w odpowiedzi na rosnące potrzeby użytkowników eliminując jednocześnie część wad kodów kreskowych.

Kody 2D są stale rozwijane od kodów zapisanych w postaci piętrowo połączonych kodów kreskowych do kodów macierzowych o zwiększonej gęstości, mogących zapisać większą ilość informacji oraz posiadających większą odporność na uszkodzenia kodu. Takie kody wprowadza również GS1 jako kody handlowe.

Postęp techniczny sprawił, że urządzenia czytające oparte na kamerach CCD, niezbędnych do odczytu kodów dwuwymiarowych również znacznie potaniały i stały się dostępne dla przeciętnego użytkownika. Dzięki temu została pokonana główna przeszkoda na drodze popularyzacji i upowszechnienia kodów 2D, jaką jeszcze kilka lat temu była cena inwestycji w urządzenia czytające.

Przykłady symbolik dwuwymiarowych

Kod QR

Kod QR jest odmianą symboliki 2D (dwuwymiarowej) opracowaną przez Denso Wave (oddział Denso Corporation) opublikowaną w 1994 r. jako symbolikę standardowo rozpoznawaną przez urządzenia skanujące.

Kod QR zawiera informacje zakodowane zarówno w pionie jak i w poziomie, podczas gdy kody kreskowe posiadają zapisane informacje tylko w poziomie.

W związku z tym, że Kod QR był pierwszym kodem 2D, a zarazem cechuje się on stosunkowo dużą pojemnością informacji oraz odpornością na uszkodzenia, na jego przykładzie zostaną przedstawione kluczowe cechy kodów dwuwymiarowych.

Standardowy kod kreskowy może zawierać maksymalnie 20 znaków. W kodzie QR można zapisać do kilkuset razy więcej danych.

W powyższym przykładzie kodu QR zapisano 300 znaków alfanumerycznych

Po opracowaniu Kodu QR powstało jeszcze kilka innych kodów 2D. Każdy z nich inaczej wygląda ma inne możliwości i właściwości. W poniższej tabeli porównano najczęściej stosowane kody dwuwymiarowe.

Ze względu na fakt, że w kodzie dwuwymiarowym informacje są zapisywane w pionie i w poziomie, ta sama ilość informacji może być zapisana na 1/10 powierzchni standardowego kodu kreskowego.

Odporność na uszkodzenia

Kod QR posiada cechę odporności na uszkodzenia i zabrudzenia. Informacje zawarte w kodzie mogą zostać poprawnie odczytane nawet przy uszkodzeniu do 30% powierzchni kodu.

Możliwe jest zastosowanie w kodzie czterech poziomów korekcji błędów w zależności np. od warunków otoczenia, w jakim używane są kody. Im większy zastosujemy poziom odporności na uszkodzenia, tym lepsza będzie tolerancja błędów, ale zarazem zwiększy się wielkość kodu. Poziom Q lub H powinien być stosowany w warunkach przemysłowych, gdzie kody często ulegają zabrudzeniom, natomiast poziom L powinien być wystarczający w czystych środowiskach, gdzie koduje się duże ilości informacji. Najczęściej używany jest poziom M (15%).

Kod QR posiada unikalną cechę – może być odczytywany bez spadku szybkości dekodowania niezależnie od orientacji kodu podczas odczytu. Jest to możliwe dzięki wzorom pozycji (kwadraty w trzech rogach kodu), dzięki którym urządzenie skanujące bezbłędnie rozpoznaje kod i zawsze odczytuje go z taką samą prędkością.