Titelbild zum Artikel „Wie viele QR-Codes es gibt und welche Zahl zählt“
Technologie

Wie viele QR-Codes es gibt und welche Zahl zählt

6 Min. Lesezeit
QR-Code erstellen

Der größte QR-Code, den die Spezifikation kennt, hält 2.953 Bytes. Jede andere Folge dieser Länge ist eine andere Nutzlast, ihre Anzahl beträgt also 256 hoch 2.953, und dezimal geschrieben hat diese Zahl 7.112 Stellen. Nichts Körperliches wird in solchen Größen gezählt, und deshalb ist die nützliche Frage nicht, wie viele Codes es gibt, sondern welche Zahl in Ihrem Projekt zuerst ausgeht.

Das ist eine Antwort, und für das, was sie messen will, ist sie exakt. Die Frage lässt sich deshalb so schwer festnageln, weil "wie viele QR-Codes sind möglich" mindestens drei verschiedene Dinge bedeuten kann, und die drei haben sehr verschiedene Antworten.

Entscheiden Sie, was Sie zählen

Drei Kandidaten, jeder für sich berechtigt.

Die Anzahl unterschiedlicher Nutzlasten, die ein QR-Code tragen kann. Das ist die brauchbare Zahl. Zwei Codes mit derselben Zeichenkette sind für jeden praktischen Zweck derselbe Code, auch wenn einer in einer höheren Version und mit einer anderen Maske erzeugt wurde.

Die Anzahl unterschiedlicher gültiger Symbole, also Modulmuster, die tatsächlich dekodieren. Größer, denn eine Nutzlast lässt sich in vielen Versionen kodieren, auf vier Fehlerkorrekturstufen, mit einer von acht Masken darüber, und jedes davon ist ein anderes Bild derselben Information.

Die Anzahl unterschiedlicher Modulmuster in einem Raster dieser Größe, gültig oder nicht. Die größte der drei und nahezu bedeutungslos, denn die überwiegende Mehrheit davon sind überhaupt keine QR-Codes.

Was folgt, zählt das Erste und benennt jede Schranke als das, was sie ist, und nicht als exakte Zählung von irgendetwas.

Die Schranke in der größten Version

Version 40 auf der niedrigsten Fehlerkorrekturstufe ist die Konfiguration mit der höchsten Kapazität: 7.089 numerische Zeichen, 4.296 alphanumerische Zeichen, 2.953 Bytes oder 1.817 Kanji. Diese Obergrenzen stammen aus den Kapazitätstabellen, und jeder Modus ergibt eine andere Anzahl.

Im Byte-Modus hat eine Nutzlast von genau 2.953 Bytes 256 Möglichkeiten je Byte, was 256 hoch 2.953 Nutzlasten ergibt. Als Zweierpotenz ist das 2 hoch 23.624, was dezimal 7.112 Stellen hat.

Im numerischen Modus liegt die Obergrenze bei 7.089 Stellen, also grob 10 hoch 7.089 unterschiedliche Zahlen dieser Länge. Kleiner als der Wert im Byte-Modus, und das ist das richtige Verhältnis: Der numerische Modus packt mehr Zeichen hinein, aber weniger mögliche Werte je Zeichen.

Zwei Einschränkungen halten das ehrlich. Diese Zahlen umfassen Nutzlasten von genau maximaler Länge. Rechnet man jede kürzere Nutzlast mit, steigt die Summe um einen Faktor etwas über der Basis geteilt durch die Basis minus eins, was in dieser Größenordnung nichts ändert. Und der Wert im Byte-Modus setzt voraus, dass jede Bytefolge eine zulässige Nutzlast ist, was sie im rohen Byte-Modus auch ist, selbst dort, wo ein Decoder das Ergebnis als unlesbaren Text anzeigen würde.

Version 1 übertrifft schon das Internet

Das Interessante an dieser Rechnung ist, wie schnell sie aufhört, eine Rolle zu spielen.

Version 1 ist ein Raster von 21 mal 21, das kleinste Symbol überhaupt, dünn genug, um es auf Rasterpapier nachzuzeichnen. Auf der niedrigsten Fehlerkorrekturstufe hält es 17 Bytes. Die Anzahl der Nutzlasten mit 17 Bytes ist 256 hoch 17, und das ist genau 87.112.285.931.760.246.646.623.899.502.532.662.132.736: einundvierzig Stellen, etwa 8,7 mal 10 hoch 40.

Zum Vergleich: Der gesamte IPv6-Adressraum ist 2 hoch 128, etwa 3,4 mal 10 hoch 38. Der kleinste existierende QR-Code trägt mehr unterschiedliche Nutzlasten, als es Adressen in dem Protokoll gibt, das jedes Gerät auf der Erde für alle Zeit durchnummerieren soll.

Schätzungen setzen die Anzahl der Atome im beobachtbaren Universum in die Nähe von 10 hoch 80. Ein Code der Version 2 übertrifft das. Alles oberhalb von Version 2 ist Arithmetik ohne jeden körperlichen Bezug, und deshalb ist die ehrliche Antwort auf die Ausgangsfrage eine Schranke und keine Zählung von Gegenständen.

Die Musteranzahl, der Vollständigkeit wegen

Ignorieren Sie die Gültigkeit und fragen Sie stattdessen, wie viele schwarzweiße Bilder in ein Raster der Version 40 passen. Dieses Raster ist 177 mal 177, also 31.329 Modulpositionen, somit 2 hoch 31.329 Muster: eine Zahl mit 9.431 Stellen.

Fast keines davon dekodiert. Die drei Suchmuster und ihre Trennstreifen liegen fest. Taktmuster liegen fest. Ausrichtungsmuster liegen fest. Format- und Versionsinformation sind eingeschränkt. Datenmodule tragen Fehlerkorrektur-Codewörter, die aus den Daten berechnet werden, die meisten Bitkombinationen sind also von Bauart her ungültig, und über all dem liegt eine von acht Masken. Genau die strukturellen Elemente, die einen Code lesbar machen, sind die, die diese Zahl um ein gewaltiges Maß zu hoch ausfallen lassen.

Es ist eine echte obere Schranke und eine nutzlose Antwort. Nennen Sie sie nur, wenn jemand ausdrücklich fragt, wie viele Bilder in das Raster passen könnten.

Die Grenze ist die Adresse, nicht das Format

Noch niemandem sind die QR-Codes ausgegangen. Was Leuten ausgeht, ist Platz auf dem Objekt.

Jedes Zeichen, das Sie hinzufügen, schiebt die Nutzlast der nächsten Version entgegen, jede Version legt vier Module je Seite dazu, und bei fester Druckbreite heißt mehr Module, dass jedes einzelne schmaler wird. Irgendwo unterhalb der Auflösung Ihres Druckverfahrens oder der scannenden Kamera beginnen die Lesungen an den Rändern des Licht- und Winkelbereichs zu scheitern. Diese Leiter ist in Version 1 bis 40 ausgelegt, und ihr körperliches Ende steht im Größenleitfaden.

Die Kapazitätsfrage, auf die es ankommt, ist also nie, wie viele Codes es gibt. Sie ist, wie kurz Sie die eine Zeichenkette machen können, die Sie kodieren. Eine Weiterleitung mit 40 Zeichen und eine Adresse mit 240 Zeichen und fünf Tracking-Parametern sind aus Sicht des Besuchers identisch und auf dem Etikett etwa drei Versionen voneinander entfernt.

Der Kennungsraum, der im Alltag wirklich ausgeht

Die interessante Zahl ist nicht die Menge möglicher Symbole, sondern die Menge brauchbarer Kennungen hinter Ihrer eigenen Domain, und die begrenzen zwei Anforderungen, die einander widersprechen.

Die erste ist Ratbarkeit. Wenn Ihre Kennungen fortlaufend gebildet werden, kann jeder, der eine kennt, die Nachbarn ausprobieren. Für einen Speiseplan ist das gleichgültig. Führt der Code auf ein Dokument, ein Mieterhandbuch, eine Gedenkseite oder einen Servicebericht, ist es eine Zugriffsmöglichkeit ohne Berechtigung, und zu den Schutzmaßnahmen nach Art. 32 DSGVO gehört, genau das zu verhindern. Zufällig gezogene Kennungen mit ausreichender Länge lösen es, und der Preis ist Länge.

Die zweite Anforderung ist, dass die Kennung hier auch gesprochen und getippt wird. Eine Adresse auf einem Plakat wird abgeschrieben, am Telefon buchstabiert, in ein Formular notiert. Daraus folgen handfeste Regeln. Nehmen Sie kein I, kein l, keine 1, kein O und keine 0 in dasselbe Alphabet, weil diese Zeichen in jeder Handschrift und in jedem Telefonat kollidieren. Verzichten Sie vollständig auf Umlaute und ß, denn sie sind in einer Adresse nicht direkt darstellbar, werden prozentkodiert und von niemandem abgetippt. Und unterscheiden Sie nicht zwischen Groß- und Kleinschreibung, sonst wird aus jedem Diktat am Telefon eine Rückfrage.

Beides lässt sich versöhnen. Ein Alphabet ohne Verwechslungszeichen und eine Länge von sechs bis acht Stellen ergibt einen Raum, der für jede Auflage reicht, die tatsächlich gedruckt wird, und bleibt kurz genug, um am Telefon durchzukommen. Wer auf die Symbolgröße achtet, führt diese Kennungen ausschließlich in Großbuchstaben, weil der alphanumerische Modus des Formats Kleinbuchstaben nicht kennt und der Code dadurch eine Stufe luftiger ausfällt.

Bleibt die dritte Zahl, die in Projekten wirklich ausgeht, und sie ist nicht mathematisch: die Anzahl der Codes, die im Haus überhaupt noch jemand kennt. Nach zwei Jahren und drei Kampagnen weiß niemand mehr, welcher Aufkleber wohin zeigt. Eine Namenskonvention und eine geführte Liste sind hier mehr wert als jede Kombinatorik, und ein Audit toter Codes ist der Weg zurück, wenn beides fehlt.

Die Zahl, die tatsächlich ausgeht

Nur eine Anzahl in dieser ganzen Rechnung ist klein genug, um mit ihr zu planen, und das ist der Raum der kurzen Kennungen hinter Ihren Codes.

Ein Kurzlink mit sechs Zeichen aus Großbuchstaben, Kleinbuchstaben und Ziffern ergibt 62 hoch 6, etwa 56,8 Milliarden Werte. Sieben Zeichen ergeben etwa 3,5 Billionen. Das sind die Zahlen, die man prüft, wenn man Kennungen je Stück ausgibt, denn anders als das Format selbst sind sie auf eine Weise endlich, die ein echtes System erreichen kann.

In dieser Zahl versteckt sich eine schärfere Grenze. Werden Kennungen fortlaufend vergeben, ist der Raum, den Sie sicher nutzen können, nicht der ganze Raum, denn jeder kann die nächste erraten. Werden sie zufällig gezogen, werden Kollisionen lange vor dem Vollwerden wahrscheinlich, nämlich etwa bei der Quadratwurzel der Größe, ein Raum von 56,8 Milliarden beginnt also nach einigen Hunderttausend Ziehungen Kollisionen zu produzieren, wenn Sie nicht beim Einfügen prüfen. Das ist eine echte technische Grenze, und es ist die einzige Zahl in diesem Artikel, die jemals wirklich jemand erreicht.

Kodieren Sie Ihre längste echte Adresse und Ihre kürzeste Weiterleitungsfassung desselben Links, legen Sie die beiden Symbole nebeneinander und zählen Sie an jedem die Module. Dieser Unterschied ist die einzige Kapazitätsangabe, die ändert, was Sie drucken.

Diesen Artikel teilen