Aufbau der Grundmatrix
Zunächst werden die fixen Bestandteile des Codes in die Matrix eingezeichnet. Die orangen Bereiche sind reserviert und dürfen für die anschliessende Platzierung der Datenmodule nicht verwendet werden.Grundelemente
Beispiele für Codes V1, V2 und V10
Eintragung der Datenmodule in die Matrix
Die einzelnen Datenmodule werden von unten rechts beginnend in die Matrix eingefüllt, wobei die reservierten Flächen einfach übersprungen bzw. umflossen werden. Die einzige Ausnahme bildet das vertikale "timing pattern". Wird dieses während dem Einfüllen erreicht, so wird die Eintragung danach erst zweimal nach links und dann wieder normal fortgeführt.Einfüllprinzip
Beispiele Datenplatzierung
Maskierung
Um die Lesbarkeit des QR-Codes zu verbessern, können die Datenmodule in der Matrix mithilfe einer Maske angepasst werden. So wird z.B. vermieden, dass zuviele Module derselben Farbe beieinander liegen oder Ähnlichkeit mit den fixen Mustern des Codes haben. Um herauszufinden, welche Maske zum besten Resultat führt, werden nacheinander 8 Masken auf den Code angewendet und anhand von vier Kriterien bewertet. Die Maske mit der besten Bewertung wird schlussendlich definitiv angewendet. Die Information, welche Maske angewendet wurde, wird anschliessend in den Infobereich des Codes eingetragen.Masken 0 bis 7
Beispiel Maskierung mit Maske 1
In den grünen Bereichen der Maske werden die Werte der Datenmodule invertiert.
Gleiche Botschaft bei unterschiedlicher Maskierung
Der Code ist grundsätzlich mit allen 8 Masken lesbar. Dies verdeutlicht die folgende Animation. Die Nachricht lautet in jedem Fall "CUSTOMedia.ch"
Format- und Versionsinformation
Die Informationen bezüglich der verwendeten Maske, Fehlerkorrekturlevel und Codeversion (ab V7) werden in die dafür vorgesehenen, reservierten Bereiche eingetragen.Fehlerkorrekturlevel
Die folgenden vier Abbildungen zeigen das Verhältnis zwischen den eigentlichen Nutzdaten (grün) und den redundanten Fehlerkorrekturdaten (rot). Beim Level "H" sind im vergleich zum Level "L" viel mehr redundante Informationen vorhanden, wodurch die Fehleranfälligkeit abnimmt und der Platzbedarf zunimmt. Bei gleichem Platzbedarf lassen sich somit in einem Level "L" Code mehr Nutzdaten speichern als in einem Level "Q" Code.Zurück