Cập nhật lần cuối:
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, một vỉ 10 gói (50 thanh) kẹo cao su Wrigley's Juicy Fruit được quét tại quầy thu ngân. Giá 67 cent. Đây được ghi nhận là sản phẩm đầu tiên được đọc bằng mã vạch UPC tại quầy thu ngân bán lẻ. 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 đầu tiên phổ biến rộng rãi cho việc nhận dạng sản phẩm bán lẻ là UPC (Universal Product Code), được một hiệp hội ngành bán lẻ thực phẩm tại Mỹ chọn làm tiêu chuẩn vào tháng 4 năm 1973. Trước đó, mã vạch dùng trong công nghiệp và mã vạch nhận dạng toa xe lửa đã đi vào thực tế, nhưng UPC mới là điểm khởi đầu của một tiêu chuẩn thống nhất đến cả cấu trúc chữ số, xoay quanh việc quét sản phẩm tại quầy thu ngân. 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. Vị trí nào được nhân 3 sẽ đổi chỗ theo tổng số chữ số: ở EAN-13 / JAN-13 gồm 13 chữ số thì các vị trí chẵn được nhân 3, còn ở UPC-A gồm 12 chữ số thì lại là các vị trí lẻ, nên tuyệt đối không được lẫn hai định dạng với nhau.
Tính với ví dụ cụ thể. Giả sử 12 chữ số đầu của một mã JAN-13 là "490123456789." Các vị trí lẻ (1, 3, 5, 7, 9, 11) cộng lại: 4 + 0 + 2 + 4 + 6 + 8 = 24. Các vị trí chẵn (2, 4, 6, 8, 10, 12) cộng lại: 9 + 1 + 3 + 5 + 7 + 9 = 34. Vậy 24 + 34 × 3 = 24 + 102 = 126, và 126 chia 10 dư 6, nên 10 - 6 = 4. Chữ số kiểm tra là "4," và mã 13 chữ số đầy đủ là "4901234567894." Chỉ cần đọc sai một chữ số là phép tính không còn khớp, và đó chính là cách máy quét loại bỏ ngay một lần đọc lỗi.
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. Code 39, do David Allais và các đồng nghiệp tại Intermec nghĩ ra năm 1974, là một trong những tiêu chuẩn đầu tiên xử lý được chữ in hoa song song với chữ số, và việc Bộ Quốc phòng Mỹ áp dụng nó năm 1981 đã giúp nó phổ biến khắp các cơ sở quân sự và sản xuất.
| Tiêu chuẩn | Xuất hiện / Nguồn gốc | 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 | Cùng nhóm thiết kế với Code 39 | 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 | Phái sinh từ Code 128 | 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. Code 128 dùng 11 module cho mỗi ký tự, mà riêng mã start, ký tự kiểm tra và mã stop đã chiếm khoảng 35 module, nên phần thực sự vừa được chỉ khoảng 30 ký tự.
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 International Data Matrix, Inc. đề xuất, 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. Liên minh Công nghiệp Điện tử Mỹ (EIA) cũng khuyến nghị dùng Data Matrix để dán nhãn cho linh kiện điện tử nhỏ.
Aztec Code được đề xuất năm 1995 và công bố thành tiêu chuẩn của AIM năm 1997, đặ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 ~30% |
| 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 chuyên in kích thước cực nhỏ cho linh kiện điện tử và dược phẩm. ECC 200 cho phép chọn kích thước ký hiệu theo từng bậc, từ 10 × 10 ô đến 144 × 144 ô, nên diện tích có thể giữ ở mức tối thiểu mà số ký tự cần lưu đòi hỏi, và một dấu vài milimét vuông vẫn vừa đủ 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, và dù các ràng buộc về cấu trúc thu hẹp số lượng thực dùng, phần dư vẫn lớn hơn khối sách đã xuất bản trên toàn thế giới đến nay nhiều bậc độ lớn.
GS1 Digital Link - Tiêu chuẩn mã vạch thế hệ tiếp theo
GS1 Digital Link 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
So với 12 chữ số của UPC-A đi vào hoạt động tại quầy thu ngân năm 1974, mã QR ra đời năm 1994 chứa được tối đa 7.089 chữ số, tức khoảng 590 lần dung lượng trong cùng một 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ố. "rMQR" (Micro QR hình chữ nhật) sau đó được thêm vào họ mã này, nên những dải không gian hẹp cũng có thể in được.
Đ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 đi qua quầy thu ngân 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."