Unter Matrixcodes versteht man Codes, die im Aufbau einem Schachbrett ähneln. In der Matrix werden einzelnen Zellen hell oder dunkel eingefärbt. Hell entspricht dann z.B. einer binären 1 und dunkel einer binären 0. Im Gegensatz zum Strichcode, der die Information bezogen auf ein x/y Koordinatensytem nur in der X-Achse liefert (und in der Y-Achse wiederholt) kodiert ein Matrixcode in x und y Richtung. Strichcodes werden deshalb auch als eindimensionale (1D) Codes bezeichnet und Matrixcodes als zweidimensionale Codes (2D).
Typische Vertreter sind :
Weitere Entwicklungen sprechen von 3D Codes und von 4D Codes. Bei 3D Codes sind die einzelnen Zellen farbig bzw. weisen verschiedene Graustufen auf. Die Farben bzw. Grausstufen werden dann z.B. Werten zugeordnet. Wenn vier Farben unterschieden werden soll dann kann eine Zelle die Werte 0,1,2 oder 3 annehmen. Im Hell/Dunkel Fall ist es nur 0 oder 1. Wenn 8 Farben unterschieden werden können, dann kann eine Zelle die Werte 0 bis 7 annehmen. Binär ausgedrückt sind es ein bit bei Hell/Dunkel, 2 bits bei vier Farben und 3 bits bei 8 Farben pro Matrixzelle.
Ein farbiger Code ist z.B. der Ultracode und der Microsoft Tag Code (Microsoft hat das eingestellt und an Scanbuy lizensiert oder verkauft).
Ein neuer farbiger Code ist der JAB Code. Es gibt dazu eine ISO Norm, eine freie Spezifikation und eine eigene JABCODE Internetseite. Die Besonderheit bei diesem Code ist die freie Geometrie. Der Code kann z.B. U-Förmig oder Mäanderformig gestaltet werden. Klassisch quadratisch oder rechteckig ist selbstverständlich auch möglich. Wenn der Code mit 8 Farben gedruckt wird ist der Platzvorteil gegenüber einem Data Matrix Code etwa 30%. Das Neue und Interessante an dem Code ist allerdings die freie Geometrie.
Die Quelltexte zum dekodieren des JAB Codes wie auch zum generieren sind unter der GPL Lizenz frei verfügbar.
4D Codes nutzen zusätzlich die Zeit als vierte Dimension. D.h. der Code ist eine ablaufende Bildsequenz von farbigen 3D Codes. Dem Autor dieser Seite ist aber kein Code und keine Anwendung in dieser Art bekannt. Es ist daher bislang ein theoretischer Code.
Eine Sondervariante sind die sogenannten gestapelten 2D Codes. Die gestapelten 2D Codes sind mehrere Strichcodes, die übereinander angeordnet sind. Vertreter dieser Code Varianten sind der Code 16k, Code 49, Codablock, MicroPDF, GS1 Databar stacked und PDF417. Diese Codes wurden entwickelt um mehr Information kodieren zu können und um solche Codes mit einfachen Strichcodescannern lesen zu können (Laser, CCD immer eine Leselinie). In der Zwischenzeit hat sich die Kameratechnik rasant weiterentwickelt. Codeleser beinhalten inzwischen meistens eine digitale Kamera, die den Code über eine Bildaufnahme (Digitalfoto) erfasst und dekodiert. Diese Scannerklasse ist inzwischen schon sehr preisgünstig verfügbar.
Scanner, die mit einem Laser arbeiten werden noch in Hochgeschwindigkeitssortieranlagen (Pakete) benutzt. Manuel bediente Handscanner und auch der Scanner an der Kasse im Supermarkt sind inzwischen fast nur noch mit Kameras ausgestattet. Aufgrund dieser Entwicklung und der Tatsache, dass der Platzverbrauch gestapelter 2D-Codes (unter den Bedingungen identischer Codeinhalt, identische Modulgröße) deutlich größer ist als der, der Matrixcodes kann man gestapelte 2D Codes als überholt betrachten. Einfache Strichcodes werden aufgrund der langen Anwendungshistorie noch eine lange Zeit benutzt werden.
Der Trend geht eindeutig in vielen Bereichen zum 2D Matrixcode. Dies wird z.B. durch die Vorgabe einen Matrixcode auf Arzneimittelverpackungen und Medizinprodukten zu benutzen. Des weiteren wird das Thema im Einzelhandel und er dem Schlagwort "2D in Retail" vorangetrieben.