Kódování QR kódů
Souhrn informací o QR kódu
a
ukázka Reed-Solomonova kódování

Autor: Bc. Luděk Reif
1. listopad 2013
Historie QR kódů
• Nástupce čárových kódů
• Větší množství informace
• Stále potřeba přímá viditelnost
• Levné řešení

• A...
Specifikace QR kódů
• Mnohem více informací než čárové kódy

• Standardní ve 40 (1 až 40) velikostech
• Velikost podle vzo...
Specifikace QR kódů II
• Čtyři úrovně korekce (redundance)
•
•
•
•

Úroveň L – až 7% poškozené plochy
Úroveň M – až 15% po...
Geometrická vrstva

•
•
•
•

Klidová zóna minimálně 4 body okolo kódu
Čtverce (3) určující pozici (Č 7x7 + B 5x5 + Č 3x3) ...
Geometrická vrstva II
Tabulka s příklady verzi QR kódu (počty bodů)
v

Strana

Plocha

Pozice

Časování

Verze

A

Zarovná...
Ukázka složitého QR kódu

Recept na svíčkovou o 1 053 českých znacích
úroveň zabezpečení L, rozměr 113x113 (verze 24)
1. l...
Informační vrstva
Černý bod = binární 1

Bílý bod = binární 0

• Plnění začíná v pravém dolním rohu dvojřad
• Po naplnění ...
Informační vrstva II
• Informace o korekci
• Dva bity označují úroveň korekce (tabulka pro 26 bytový blok dat)
Úroveň kore...
Informační vrstva III
Zbývajících 10 bitů obsahuje samoopravné kódy formátu
Všechny formátovací informace jsou na kódu dva...
Příklad vytvoření QR
Příklad vytvoření QR kódu
1. Vstupní řetězec přepsaný podle tabulky
MARTINS = (22,10,27,29,18,23,28)
...
Informační vrstva V
Původní binární data
00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001
11101100 ...
Reed-Solomonovo kódování II
Příklad polynomu pro generování Reed-Solomonova kódu
𝑔 𝑥 = 𝑥 5 + 31𝑥 4 + 198𝑥 3 + 63𝑥 2 + 147𝑥...
Reed-Solomonovo kódování III
Příklad kódování
Vstupní data: 1 (00000001)
𝑔 𝑥 = 𝑥 2 + 3𝑥 + 2𝑥 0
𝒙𝟐

𝟐𝒙 𝟎

𝜶𝟎

g(x)*(α0)*x0
...
Děkuji za pozornost

1. listopad 2013

Snímek 13 z 14
Zdroje
-

https://cs.wikipedia.org/wiki/QR_k%C3%B3d
http://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders
h...
Upcoming SlideShare
Loading in …5
×

Kódování QR kódů

190 views
139 views

Published on

Souhrnné informace o QR kódování a ukázka Reed-Solomonova kódování

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
190
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kódování QR kódů

  1. 1. Kódování QR kódů Souhrn informací o QR kódu a ukázka Reed-Solomonova kódování Autor: Bc. Luděk Reif 1. listopad 2013
  2. 2. Historie QR kódů • Nástupce čárových kódů • Větší množství informace • Stále potřeba přímá viditelnost • Levné řešení • Alternativní technologie • RFID • nepotřebuje přímou viditelnost • výrazně dražší řešení 1. listopad 2013 Snímek 2 z 14
  3. 3. Specifikace QR kódů • Mnohem více informací než čárové kódy • Standardní ve 40 (1 až 40) velikostech • Velikost podle vzorce: 17 + (v x 4) • Nejmenší kódy 21x21, největší 177x177 • Navíc Micro QR kód (11x11 až 17x17) • Kapacita • • • • 7 089 číslic 4 296 písmen a číslic 2 953 8-bitových data 1 817 znaků kandži (japonské znaky) 1. listopad 2013 Snímek 3 z 14
  4. 4. Specifikace QR kódů II • Čtyři úrovně korekce (redundance) • • • • Úroveň L – až 7% poškozené plochy Úroveň M – až 15% poškozené plochy Úroveň Q – až 25% poškozené plochy Úroveň H – až 30% poškozené plochy Text „Hello, World!“ Úroveň L 1. listopad 2013 Úroveň H Snímek 4 z 14
  5. 5. Geometrická vrstva • • • • Klidová zóna minimálně 4 body okolo kódu Čtverce (3) určující pozici (Č 7x7 + B 5x5 + Č 3x3) s bílou okolo Další (0 - 46) čtverce (Č 3x3 + B 2x2 + Č 1x1) doplňují zarovnání Na 7. řádku a 7. sloupci časovací znaky (střídavě Č a B) 1. listopad 2013 Snímek 5 z 14
  6. 6. Geometrická vrstva II Tabulka s příklady verzi QR kódu (počty bodů) v Strana Plocha Pozice Časování Verze A Zarovnání Pro data Vzdál. zarovnání 1 21 441 192 10 0 0 0 239 - 10 57 3 249 192 82 36 2 140 2 799 22 20 97 9 409 192 162 36 3 305 8 714 28 30 137 18 769 192 242 36 5 785 17 514 26 40 177 31 329 192 322 36 6 1100 29 679 28 1. listopad 2013 Snímek 6 z 14
  7. 7. Ukázka složitého QR kódu Recept na svíčkovou o 1 053 českých znacích úroveň zabezpečení L, rozměr 113x113 (verze 24) 1. listopad 2013 Snímek 7 z 14
  8. 8. Informační vrstva Černý bod = binární 1 Bílý bod = binární 0 • Plnění začíná v pravém dolním rohu dvojřad • Po naplnění se směr otáčí zase ve dvojřadu • Pokud narazí na formátovací prvek, tak jej přeskočí (zarovnání, časování) nebo se odrazí (pozice) • Svislé časování je přeskočeno, dokončí se plnění posledními třemi dvojřady a končí v levém spodním rohu • Data obsahují bytovou zprávu a korekční byty • Prvotní nemaskovaná data jsou uložena postupně • Nejprve data, poté korekční kód 1. listopad 2013 Snímek 8 z 14
  9. 9. Informační vrstva II • Informace o korekci • Dva bity označují úroveň korekce (tabulka pro 26 bytový blok dat) Úroveň korekce Bitové označení Počet korekčních bytů Počet datových bytů L 01 7 19 M 00 10 16 Q 11 13 13 H 10 17 9 • Maskování • • • V kódu mohou vznikat vzory matoucí geometrickou vrstvu Tři bity označují způsob maskování pro celou informační vrstvu Maskuje se podle výsledku maskování, které dostane nejméně záporných bodů 1. listopad 2013 Snímek 9 z 14
  10. 10. Informační vrstva III Zbývajících 10 bitů obsahuje samoopravné kódy formátu Všechny formátovací informace jsou na kódu dvakrát Informace jsou kódovány pomocí BCH kódů - kódovaná část se převede na polynom násobí se kódovacím polynom modulo řídící polynom nad 𝑍2 výsledkem je zakódovaná část dat Data jsou kódovány pomocí Reed- Solomonových kódů - kódy jsou speciálním případem BCH kódů symbolově orientovány (kódování po celých slovech) předpokládají shlukové chyby 1. listopad 2013 Snímek 10 z 14
  11. 11. Příklad vytvoření QR Příklad vytvoření QR kódu 1. Vstupní řetězec přepsaný podle tabulky MARTINS = (22,10,27,29,18,23,28) 2. Rozdělit na skupiny po dvou dekadických číslech (22,10) (27,29) (18,23) (28) 3. Operace podle vzorce C = A*45 + B C1 = 22*45 + 10 = 1 000 C2 = 27*45 + 29 = 1244 C3 = 18*45 + 23 = 833 C4 = 28 4. Dekadická čísla na binární (11bit + poslední 6bit) 1 000 = 011 1110 1000 1255 = 100 1101 1100 833 = 011 0100 0001 28 = 01 1100 5. Spojit na jedno číslo 6. Určí se indikátor vstupných dat Pro alfanumerické řetězce: 0010 7. počet vstupních symbolů ve dvojkové soustavě 000000111 8. Vše do jednoho řetězce 0010 000000111 01111101000 10011011100 01101000001 011100 Každých osm bitů představuje 1 CW (blok dat u QR), bude tedy 7 CW Korekce je typu L, rozložení data : korekce bude tedy 13 CW na 13 CW 9. Do nevyužitých CW se doplní vyplňující CW Liché: 11101100 Sudé: 00010001 10. Dopočítá se korekce a využije se maska dat Využije se Reed-Solomonova kódování 11. Doplní se informace o korekci a masce Pomocí BCH dostaneme 10 1100 1000 01111101000 10011011100 01101000001 011100 1. listopad 2013 Snímek 11 z 14
  12. 12. Informační vrstva V Původní binární data 00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 (128 bitů) Zakódovaná data Reed-Solomonovým kódováním 00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 10100101 00100100 11010100 11000001 11101101 00110110 11000111 10000111 00101100 01010101 (208 bitů) korekce typu M – lze opravit až 15% chyb 1. listopad 2013 Snímek 12 z 14
  13. 13. Reed-Solomonovo kódování II Příklad polynomu pro generování Reed-Solomonova kódu 𝑔 𝑥 = 𝑥 5 + 31𝑥 4 + 198𝑥 3 + 63𝑥 2 + 147𝑥 + 116𝑥 0 𝒙𝟓 𝟑𝟏𝒙 𝟒 𝟏𝟗𝟖𝒙 𝟑 𝟔𝟑𝒙 𝟐 𝟏𝟒𝟕𝒙 𝟏𝟏𝟔𝒙 𝟎 𝜶𝟎 𝜶 𝟏𝟏𝟑 𝜶 𝟏𝟔𝟒 𝜶 𝟏𝟔𝟔 𝜶 𝟏𝟏𝟗 𝜶 𝟏𝟎 Polynom pro generování se liší podle použité verze. Původní data se převedou na mnohočlen (kódována po bytových blocích). Např. 255 128 10 155: 𝑝 𝑥 = 255𝑥 8 + 128𝑥 7 + 10𝑥 6 + 155𝑥 5 + 0𝑥 4 + 0𝑥 3 + 0𝑥 2 + 0𝑥 1 + 0𝑥 0 𝒙 s exponenty 0 až 4 se dopočítávají při kódování a zde jsou pouze pro doplnění. Pro zvolené kódování jsou doplněny 4 členy. Jejich počet mění podle verze. 1. listopad 2013 Snímek 12 z 14
  14. 14. Reed-Solomonovo kódování III Příklad kódování Vstupní data: 1 (00000001) 𝑔 𝑥 = 𝑥 2 + 3𝑥 + 2𝑥 0 𝒙𝟐 𝟐𝒙 𝟎 𝜶𝟎 g(x)*(α0)*x0 𝟑𝒙 𝜶 𝟐𝟓 𝜶𝟏 1x2+ α0 0 + 0 =α0 xor 1 = 0 0x1+ 0x0 25 + 0 = α25 xor 0 = 3 3x1+ α25 1 + 0 = α1 xor 0 = 2 2x0 α1 Výsledná data: 3 2 (00000011 00000010) 1. listopad 2013 Snímek 12 z 14
  15. 15. Děkuji za pozornost 1. listopad 2013 Snímek 13 z 14
  16. 16. Zdroje - https://cs.wikipedia.org/wiki/QR_k%C3%B3d http://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders http://access.feld.cvut.cz/view.php?cisloclanku=2006080002 http://zin.tym.cz/index.php?k=0501&s=42 http://www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=29510 http://www.pclviewer.com/rs2/calculator.html 1. listopad 2013 Snímek 14 z 14

×