Sự tiến hóa của mã vạch và mật độ thông tin - Lịch sử nén dữ liệu bắt đầu từ 13 chữ số
Lúc 8 giờ 01 phút sáng ngày 26 tháng 6 năm 1974, tại siêu thị Marsh ở Troy, Ohio, thu ngân Sharon Buchanan quét một gói kẹo cao su Wrigley's Juicy Fruit. Giá 67 cent. Đây là sản phẩm đầu tiên trên thế giới được quét bằng mã vạch. Những sọc đen trắng đó chỉ lưu trữ 12 chữ số. Nửa thế kỷ sau, mã vạch đã tiến hóa từ sọc một chiều thành ma trận hai chiều và liên kết kỹ thuật số chứa URL, dung lượng lưu trữ mở rộng hàng nghìn lần.
UPC và JAN - Sự khác biệt giữa 12 và 13 chữ số
Tiêu chuẩn mã vạch thương mại đầu tiên trên thế giới là UPC (Universal Product Code), được thiết lập tại Mỹ năm 1973. UPC-A gồm 12 chữ số: chữ số đầu là số hệ thống (loại sản phẩm), 5 chữ số tiếp là mã nhà sản xuất, 5 chữ số tiếp là mã sản phẩm, và chữ số cuối là chữ số kiểm tra.
Châu Âu và Nhật Bản áp dụng EAN (European Article Number) / JAN (Japanese Article Number), phiên bản mở rộng của UPC. EAN-13 / JAN-13 dùng 13 chữ số, 2-3 chữ số đầu là mã quốc gia (Nhật Bản là 45 hoặc 49), tiếp theo là mã nhà sản xuất, mã sản phẩm và chữ số kiểm tra.
| Tiêu chuẩn | Số chữ số | Cấu trúc | Khu vực sử dụng chính |
|---|---|---|---|
| UPC-A | 12 chữ số | 1 + 5 + 5 + 1 | Mỹ, Canada |
| UPC-E | 8 chữ số | Phiên bản rút gọn UPC-A | Sản phẩm nhỏ |
| EAN-13 / JAN-13 | 13 chữ số | 2-3 + 4-5 + 4-5 + 1 | Châu Âu, Nhật Bản, toàn cầu |
| EAN-8 / JAN-8 | 8 chữ số | Phiên bản rút gọn EAN-13 | Sản phẩm nhỏ |
| ISBN-13 | 13 chữ số | 978/979 + nhà xuất bản + tên sách + 1 | Sách (toàn cầu) |
Chữ số kiểm tra được tính bằng thuật toán Modulus 10. Tổng các chữ số vị trí lẻ cộng tổng các chữ số vị trí chẵn nhân 3, chia cho 10 lấy dư, lấy 10 trừ đi cho chữ số kiểm tra. 1 chữ số xác minh này phát hiện khoảng 90% lỗi quét.
Tính với ví dụ cụ thể. Mã JAN "4901234567890," chữ số cuối "0" là chữ số kiểm tra. Vị trí lẻ (1, 3, 5, 7, 9, 11): 4 + 0 + 2 + 4 + 6 + 8 = 24. Vị trí chẵn (2, 4, 6, 8, 10, 12): 9 + 1 + 3 + 5 + 7 + 9 = 34. 24 + 34 × 3 = 126. 126 mod 10 = 6. 10 - 6 = 4... Chữ số kiểm tra thực tế là "0," nên đây là mã JAN hư cấu. Với mã JAN thực, phép tính này luôn khớp.
Chữ số kiểm tra chỉ là 1 chữ số (0-9), nhưng 1 chữ số này phát hiện 100% lỗi đơn chữ số và tỷ lệ cao lỗi hoán vị hai chữ số liền kề. Sức mạnh toán học cho phép chỉ thêm 1 ký tự để xác minh tính toàn vẹn của 12 chữ số dữ liệu.
Tiến hóa mã vạch 1D - Từ số đến ASCII
UPC/EAN chỉ lưu được số, nhưng logistics và sản xuất cần chữ cái và ký hiệu. Để đáp ứng, các tiêu chuẩn mã vạch 1D hỗ trợ nhiều loại ký tự hơn lần lượt ra đời.
| Tiêu chuẩn | Năm | Ký tự hỗ trợ | Số ký tự | Sử dụng chính |
|---|---|---|---|---|
| Code 39 | 1974 | Chữ hoa + số + 7 ký hiệu | 43 ký tự | Phụ tùng ô tô, quân sự |
| Interleaved 2 of 5 | 1972 | Chỉ số | 10 ký tự | Logistics, thùng carton |
| Code 128 | 1981 | Toàn bộ 128 ký tự ASCII | 128 ký tự | Logistics, y tế |
| GS1-128 | 1989 | 128 ASCII + AI | 128 ký tự + định danh | Logistics, truy xuất thực phẩm |
| Codabar | 1972 | Số + 6 ký hiệu | 16 ký tự | Thư viện, ngân hàng máu |
Code 128 ra đời năm 1981 có thể lưu toàn bộ 128 ký tự ASCII. Điều này cho phép mã vạch biểu diễn chuỗi phức tạp như URL và địa chỉ email. Tuy nhiên, hạn chế cơ bản của mã vạch 1D không thay đổi: thông tin chỉ được mã hóa trong độ rộng và khoảng cách của các vạch ngang, đặt giới hạn vật lý cho dung lượng dữ liệu.
GS1-128 (tên cũ EAN-128) thêm "Định danh ứng dụng" (AI) vào Code 128. AI là số 2-4 chữ số định nghĩa ý nghĩa dữ liệu theo sau. Ví dụ AI "01" là GTIN (mã sản phẩm), AI "17" là hạn sử dụng, AI "10" là số lô. Cho phép một mã vạch lưu mã sản phẩm, hạn sử dụng, số lô và nhiều hơn nữa.
Giới hạn vật lý của mã vạch 1D được xác định bởi độ rộng vạch tối thiểu (module width) và độ phân giải máy quét. Máy quét laser thông thường có độ phân giải khoảng 0,25 mm. Với tổng chiều rộng mã vạch 10 cm, có thể đặt khoảng 400 module, tương đương khoảng 40-50 ký tự chữ số.
Sự xuất hiện của mã vạch 2D - Mang thông tin theo diện tích
Để vượt qua giới hạn dung lượng mã vạch 1D, phát triển mã vạch 2D bắt đầu từ cuối thập niên 1980. Bằng cách mang thông tin theo cả chiều ngang và dọc, lượng dữ liệu lưu trữ tăng vượt bậc trong cùng diện tích.
PDF417 ra đời năm 1991 là tiên phong mã vạch 2D. "PDF" viết tắt của "Portable Data File," lưu tối đa 1.850 ký tự chữ số. Được dùng rộng rãi trên mặt sau bằng lái Mỹ và thẻ lên máy bay.
Năm 1994, Denso Wave phát hành mã QR. Như chi tiết trong mã QR chứa được bao nhiêu ký tự, mã QR lưu tối đa 7.089 chữ số hoặc 4.296 ký tự chữ số - gấp khoảng 2,3 lần PDF417.
Data Matrix do RVSI Acuity CiMatrix phát triển năm 1987, chuyên in kích thước cực nhỏ. Lưu tối đa 2.335 ký tự chữ số, dùng rộng rãi cho đánh dấu linh kiện điện tử và nhận dạng dược phẩm.
Aztec Code do Welch Allyn phát triển năm 1995, đặc trưng bởi mẫu phát hiện trung tâm (bullseye). Lưu tối đa 3.067 ký tự chữ số, dùng cho vé tàu châu Âu và thẻ lên máy bay. Khác với mã QR, không cần vùng trống xung quanh (quiet zone).
| Tiêu chuẩn | Loại | Dung lượng tối đa (số) | Dung lượng tối đa (chữ số) | Sửa lỗi |
|---|---|---|---|---|
| UPC-A | 1D | 12 chữ số | - | 1 chữ số kiểm tra |
| Code 128 | 1D | Thay đổi (phụ thuộc kích thước) | Thay đổi | 1 ký tự kiểm tra |
| PDF417 | 2D (xếp chồng) | 2.710 chữ số | 1.850 ký tự | Tối đa ~50% |
| Mã QR | 2D (ma trận) | 7.089 chữ số | 4.296 ký tự | Tối đa ~30% |
| Data Matrix | 2D (ma trận) | 3.116 chữ số | 2.335 ký tự | Tối đa ~25% |
| Micro QR | 2D (ma trận) | 35 chữ số | 21 ký tự | Tối đa ~25% |
So sánh mật độ thông tin - Bao nhiêu ký tự mỗi cm vuông?
So sánh tiến hóa mã vạch theo "mật độ thông tin" (ký tự lưu trữ trên đơn vị diện tích) cho thấy tiến bộ công nghệ rõ ràng.
Mã vạch UPC-A tiêu chuẩn kích thước khoảng 3,73 cm × 2,59 cm (diện tích ~9,66 cm²), lưu 12 chữ số. Mật độ thông tin khoảng 1,2 chữ số/cm². Mã QR phiên bản 10 (57 × 57 ô) in 3 cm × 3 cm (9 cm²) với mức sửa lỗi L lưu tối đa 652 chữ số. Mật độ thông tin khoảng 72 chữ số/cm² - gấp khoảng 60 lần UPC-A.
| Tiêu chuẩn | Kích thước điển hình | Dữ liệu lưu trữ | Mật độ (chữ số/cm²) | So với UPC-A |
|---|---|---|---|---|
| UPC-A | 3,73 × 2,59 cm | 12 chữ số | ~1,2 | 1x |
| Code 128 (20 ký tự) | 4,0 × 1,0 cm | 20 ký tự | ~5,0 | ~4x |
| Mã QR (Ver.10, L) | 3,0 × 3,0 cm | 652 chữ số | ~72 | ~60x |
| Data Matrix (tối đa) | 2,0 × 2,0 cm | 3.116 chữ số | ~779 | ~650x |
Data Matrix chuyên in kích thước cực nhỏ cho linh kiện điện tử và dược phẩm. Ngay cả kích thước 2 mm × 2 mm cũng lưu được hàng chục ký tự, đạt mật độ thông tin cao nhất trong tất cả tiêu chuẩn mã vạch. Khái niệm mã hóa trong sự khác biệt giữa số ký tự và số byte liên quan trực tiếp đến phương pháp lưu trữ dữ liệu mã vạch.
ISBN - Mã 13 chữ số toàn cầu nhận dạng sách
ISBN (International Standard Book Number) là mã 13 chữ số nhận dạng duy nhất sách. Mở rộng từ 10 lên 13 chữ số năm 2007, tương thích với EAN-13. 3 chữ số đầu là "978" hoặc "979" (tiền tố sách), tiếp theo là mã quốc gia/vùng, mã nhà xuất bản, mã tên sách và chữ số kiểm tra.
ISBN Nhật Bản theo định dạng "978-4-XXXX-XXXX-X," "4" là mã quốc gia Nhật Bản. Độ dài mã nhà xuất bản thay đổi theo quy mô: nhà xuất bản lớn được 2 chữ số, nhỏ hơn được 4-5 chữ số.
13 chữ số cung cấp đủ tổ hợp để nhận dạng duy nhất mọi cuốn sách trên thế giới. Lý thuyết 10^13 = 10 nghìn tỷ tổ hợp, dư sức cho ước tính 130 triệu đầu sách nhân loại đã xuất bản.
GS1 Digital Link - Tiêu chuẩn mã vạch thế hệ tiếp theo
GS1 Digital Link, thiết lập năm 2018, thay đổi căn bản khái niệm mã vạch. Biểu diễn mã nhận dạng sản phẩm (GTIN) dưới dạng URL, lưu trong mã QR.
Mã JAN truyền thống "4901234567894" trở thành "https://id.gs1.org/01/04901234567894" trong GS1 Digital Link. Quét bằng máy POS hoạt động như mã sản phẩm truyền thống; quét bằng smartphone chuyển đến trang sản phẩm nhà sản xuất. Một mã QR phục vụ cả hệ thống POS và người tiêu dùng.
Như giải thích trong giới hạn ký tự URL, URL có giới hạn độ dài trình duyệt và máy chủ, nhưng URL GS1 Digital Link thường nằm trong 50-100 ký tự, dễ dàng lưu trong mã QR phiên bản 3-5.
50 năm mã vạch - Từ 12 chữ số đến 7.089
Từ UPC-A (12 chữ số) năm 1974 đến mã QR (tối đa 7.089 chữ số) năm 2024, dung lượng mã vạch mở rộng khoảng 590 lần trong 50 năm. Tuy nhiên, hầu hết mã vạch thực tế chỉ sử dụng một phần nhỏ dung lượng.
Mã JAN trên sản phẩm cửa hàng tiện lợi là 13 chữ số. Mã thanh toán QR thường là URL 50-200 ký tự. Thẻ lên máy bay khoảng 100-200 ký tự. Dù kỹ thuật cho phép hàng nghìn ký tự, thực tế chỉ cần hàng chục đến hàng trăm.
"Dư dung lượng" này không lãng phí. Chức năng sửa lỗi mã QR phân bổ một phần dung lượng cho dự phòng. Mã QR phiên bản 10 với mức sửa lỗi H lưu khoảng nửa dữ liệu so với mức L, nhưng khôi phục được dữ liệu gốc ngay cả khi 30% bị hỏng. Đây là lý do mã QR thiết kế (có logo ở giữa) hoạt động được.
Micro QR là phiên bản tiết kiệm không gian. Chỉ có 1 mẫu phát hiện (QR tiêu chuẩn có 3), lưu tối đa 35 chữ số. Năm 2022, Denso Wave công bố "rMQR" (Micro QR hình chữ nhật) có thể in trong không gian hẹp.
Điều này cho thấy bản chất mã vạch không phải "lưu trữ dữ liệu khổng lồ" mà là "chìa khóa tối thiểu kết nối thế giới vật lý và kỹ thuật số." Mã JAN 13 chữ số là con trỏ đến thông tin sản phẩm khổng lồ trong cơ sở dữ liệu. URL mã QR là liên kết đến thông tin vô hạn trên web. Mã vạch chỉ cần đủ ký tự để xác định duy nhất tham chiếu.
Lịch sử mã vạch bắt đầu từ một gói kẹo cao su Wrigley thể hiện bản chất thiết kế thông tin: "truy cập thông tin tối đa với số ký tự tối thiểu."
Sách về lịch sử mã vạch và công nghệ thông tin có thể tìm thấy trên Amazon.