Jak działają kody QR

Inne nazwy: kodowanie kodu QR, dekodowanie kodu QR

Definicja

Kod QR działa tak: dane zamieniane są na słowa kodowe, dodawana jest korekcja błędów Reeda-Solomona, a bity układa się w siatce wokół stałych wzorców, które pomagają aparatowi znaleźć kod, wyprostować go i odczytać.

Od danych do wzoru

Tworzenie kodu QR zaczyna się od wyboru trybu kodowania pasującego do danych: numerycznego, alfanumerycznego, bajtowego albo kanji. Koder zamienia dane na bity, dzieli je na 8-bitowe słowa kodowe i dodaje słowa kodowe korekcji błędów Reeda-Solomona na wybranym poziomie. Następnie wybiera najmniejszą wersję, w której dane się mieszczą.

Słowa kodowe układa się w siatce zygzakiem, który omija stałe wzorce. Na koniec koder nakłada jeden z ośmiu wzorców maski, żeby rozbić duże puste obszary i mylące kształty, i zapisuje maskę oraz poziom korekcji błędów w informacji o formacie.

  • Wybór trybu kodowania
  • Zakodowanie danych i dodanie słów kodowych korekcji błędów
  • Wybór wersji (rozmiaru)
  • Umieszczenie wzorców wyszukiwania, synchronizacji i wyrównania
  • Wypełnienie modułów danych
  • Zastosowanie najlepszej z ośmiu masek i zapisanie informacji o formacie

Od obrazu z aparatu do danych

Dekodowanie wykonuje te same kroki w odwrotnej kolejności. Skaner znajduje trzy wzorce wyszukiwania, których proporcja ciemnych i jasnych pól 1:1:3:1:1 wyróżnia się na tle większości obrazów, i za ich pomocą oraz wzorców synchronizacji i wyrównania odwzorowuje siatkę. Odczytuje informację o formacie, usuwa maskę i zbiera słowa kodowe.

Dekodowanie Reeda-Solomona naprawia potem błędnie odczytane słowa kodowe, do granicy wyznaczonej przez poziom korekcji błędów. Jeśli uszkodzeń jest za dużo, kod się nie odczyta, zamiast zwrócić błędne dane, dlatego kody QR rzadko dają zniekształcone wyniki.

Dlaczego liczą się rozmiar i kontrast

Każdy krok zależy od tego, czy aparat odróżni ciemne moduły od jasnych. Małe moduły, niski kontrast, odblaski, rozmycie albo brak strefy ciszy sprawiają, że coraz więcej modułów budzi wątpliwości, a korekcja błędów poradzi sobie tylko z ograniczoną ich liczbą. Krótkie dane, mocny kontrast i wolny margines dają dekoderowi najłatwiejsze zadanie.

Najczęstsze pytania

Skąd telefon wie, gdzie jest kod QR?

Szuka trzech dużych kwadratowych wzorców wyszukiwania w rogach. Ich charakterystyczna proporcja 1:1:3:1:1 pozwala skanerowi znaleźć je pod dowolnym kątem i ustalić orientację.

Po co kody QR mają wzorzec maski?

Maska odwraca moduły według ustalonego wzoru, żeby kod unikał dużych jednolitych obszarów i kształtów przypominających wzorce wyszukiwania. Koder sprawdza wszystkie osiem masek i zostawia tę, która odczytuje się najpewniej.

Czy kod QR można odczytać do góry nogami?

Tak. Wzorce wyszukiwania mówią skanerowi, jak kod jest obrócony, więc kod QR można odczytać w dowolnym obrocie.

Źródła i normy

Wszystkie hasła