📱
← Quay lại hướng dẫn

Cách mã QR hoạt động: Đi sâu vào kỹ thuật

· Thẻ: qr-codes, technology, encoding, data-storage, barcode

Cách mã QR hoạt động: Đi sâu vào kỹ thuật

Mã QR (mã Phản hồi nhanh) là mã vạch ma trận hai chiều được phát minh vào năm 1994 bởi Denso Wave, một công ty con của Toyota. Được thiết kế để giải mã tốc độ cao, mã QR lưu trữ dữ liệu trong một lưới các ô vuông đen trắng (module) sử dụng bốn chế độ mã hóa tiêu chuẩn và sửa lỗi Reed-Solomon. Không giống như mã vạch tuyến tính mã hóa dữ liệu theo một chiều, mã QR đóng gói thông tin theo cả chiều ngang và chiều dọc, đạt đến 7.089 ký tự số trong một biểu tượng duy nhất.

Giải phẫu mã QR

Mỗi mã QR bao gồm một số vùng chức năng. Hiểu các thành phần này giúp bạn thiết kế mã quét đáng tin cậy và tối đa hóa dung lượng dữ liệu.

Mẫu tìm kiếm (Finder Patterns)

Ba mẫu hình vuông giống hệt nhau nằm ở góc trên bên trái, trên bên phải và dưới bên trái. Mỗi mẫu tìm kiếm bao gồm một hình vuông đen 7x7, một hình vuông trắng 5x5 và một hình vuông đen 3x3 ở trung tâm. Các mẫu này cho phép phần mềm quét nhanh chóng phát hiện vị trí, hướng và góc của mã QR bất kể xoay như thế nào.

Mẫu căn chỉnh (Alignment Patterns)

Các dấu đăng ký nhỏ hơn (thường là module 5x5) được nhúng khắp mã. Mẫu căn chỉnh giúp trình quét sửa lỗi biến dạng khi mã được in trên bề mặt cong như bao bì sản phẩm hoặc lon đồ uống. Mã Phiên bản 2+ có ít nhất một mẫu căn chỉnh; số lượng tăng theo kích thước mã.

Mẫu định thời (Timing Patterns)

Các đường đen trắng xen kẽ chạy giữa các mẫu tìm kiếm, theo cả chiều ngang và chiều dọc. Các module này xác định vị trí hàng và cột của lưới dữ liệu, giúp trình quét xác định kích thước của từng module.

Thông tin định dạng

Một vùng chuyên dụng gần các mẫu tìm kiếm mã hóa mức sửa lỗi và mẫu mặt nạ. Trình quét đọc phần này trước để biết cách giải mã phần còn lại của dữ liệu một cách chính xác.

Vùng dữ liệu và sửa lỗi

Các module còn lại tạo thành hai vùng đan xen: từ mã dữ liệu (tải trọng được mã hóa) và từ mã sửa lỗi (dữ liệu dự phòng để khôi phục hư hỏng). Chúng được sắp xếp theo một mẫu bit cụ thể thay đổi theo phiên bản mã QR.

Vùng yên tĩnh (Quiet Zone)

Một viền rõ ràng bắt buộc rộng ít nhất bốn module bao quanh toàn bộ mã QR. Nếu không có vùng yên tĩnh này, trình quét không thể phân biệt mã với môi trường xung quanh một cách đáng tin cậy. Đây là một trong những nguyên nhân phổ biến nhất gây lỗi quét trong các thiết kế tùy chỉnh.

Phương thức mã hóa dữ liệu

Mã QR hỗ trợ bốn chế độ mã hóa riêng biệt, mỗi chế độ được tối ưu hóa cho một loại dữ liệu khác nhau. Bộ mã hóa tự động chọn chế độ hiệu quả nhất dựa trên đầu vào của bạn.

Chế độ Numeric

Được tối ưu hóa riêng cho chữ số từ 0 đến 9. Đây là chế độ tiết kiệm không gian nhất, đóng gói ba chữ số vào 10 bit (so với 8 bit mỗi byte trong nhị phân tiêu chuẩn). Dung lượng tối đa ở Phiên bản 40-L: 7.089 ký tự. Lý tưởng cho số điện thoại, ID sản phẩm và mã số.

Chế độ Alphanumeric

Mã hóa chữ số (0-9), chữ in hoa (A-Z) và chín ký tự đặc biệt: dấu cách, $, %, *, +, -, ., / và :. Mỗi cặp ký tự được nén vào 11 bit. Dung lượng tối đa: 4.296 ký tự. Tốt nhất cho URL tránh chữ thường và mã văn bản ngắn.

Chế độ Byte

Mã hóa bất kỳ ký tự 8-bit nào sử dụng mã hóa ISO-8859-1 (Latin-1). Khi nội dung chứa chữ thường, chữ hoa/thường hỗn hợp hoặc ký tự UTF-8, bộ mã hóa chuyển sang chế độ Byte. Dung lượng tối đa: 2.953 ký tự. Đây là chế độ linh hoạt nhất và bao gồm hầu hết các trường hợp sử dụng phổ biến như URL đầy đủ và văn bản hỗn hợp.

Chế độ Kanji

Một chế độ chuyên biệt cho ký tự tiếng Nhật hai byte (mã hóa Shift JIS). Mỗi ký tự Kanji được nén vào 13 bit thay vì 16 bit. Dung lượng tối đa: 1.817 ký tự. Ít được sử dụng bên ngoài Nhật Bản nhưng thể hiện nguồn gốc của định dạng này.

Quy trình mã hóa từng bước

  1. Phân tích dữ liệu — Bộ mã hóa phân tích nội dung đầu vào và chọn chế độ hiệu quả nhất
  2. Chỉ báo chế độ — Mã 4 bit báo hiệu chế độ mã hóa nào đã được chọn
  3. Số lượng ký tự — Một chuỗi bit ghi lại độ dài của dữ liệu
  4. Mã hóa dữ liệu — Nội dung được chuyển đổi thành luồng bit sử dụng chế độ đã chọn
  5. Ký tự kết thúc — Một chuỗi đệm ngắn đánh dấu kết thúc dữ liệu
  6. Đệm bit — Dung lượng còn lại được lấp đầy bằng các bit 0 và 1 xen kẽ để đạt đến ranh giới từ mã đầy đủ
  7. Tạo sửa lỗi — Từ mã Reed-Solomon được tính toán và thêm vào

Phiên bản và kích thước mã QR

Mã QR được định nghĩa trên 40 phiên bản, từ Phiên bản 1 (module 21x21) đến Phiên bản 40 (module 177x177). Mỗi phiên bản kế tiếp thêm 4 module mỗi cạnh.

| Phiên bản | Kích thước | Dung lượng Numeric (L) | Sử dụng điển hình | |---------|-----------|---------------------|-------------| | 1 | 21x21 | 41 | URL đơn giản | | 2 | 25x25 | 77 | Liên kết ngắn | | 4 | 33x33 | 187 | vCard, URL | | 6 | 41x33 | 322 | Cấu hình WiFi | | 10 | 57x57 | 652 | Văn bản trung bình | | 20 | 97x97 | 1.746 | Tài liệu | | 40 | 177x177 | 7.089 | Dữ liệu tối đa |

Hầu hết mã QR hướng đến người tiêu dùng sử dụng Phiên bản 2 đến Phiên bản 10. Các phiên bản cao hơn chứa module nhỏ hơn, yêu cầu in độ phân giải cao hơn và quét chính xác hơn.

Sửa lỗi Reed-Solomon

Mã QR sử dụng sửa lỗi Reed-Solomon, chia dữ liệu thành các khối và tạo từ mã dự phòng cho mỗi khối. Có bốn mức:

  • Mức L — Khôi phục 7% dữ liệu bị hỏng. Dung lượng dữ liệu tối đa, bảo vệ tối thiểu.
  • Mức M — Khôi phục 15%. Lựa chọn tiêu chuẩn cho sử dụng chung. Hầu hết các trình tạo QR mặc định ở mức này.
  • Mức Q — Khôi phục 25%. Bảo vệ mạnh mẽ cho mã trên hàng đóng gói hoặc vật phẩm thường xuyên được xử lý.
  • Mức H — Khôi phục 30%. Bảo vệ tối đa cho môi trường ngoài trời hoặc công nghiệp.

Hệ thống sửa lỗi cũng cho phép thực hành phổ biến là nhúng logo và hình ảnh vào mã QR. Các module bị chặn được tái tạo từ dữ liệu dự phòng, miễn là vật cản không vượt quá khả năng sửa lỗi.

Cách quét hoạt động

Quét mã QR hiện đại liên quan đến một quy trình phức tạp chạy trong mili giây:

  1. Phát hiện — Camera chụp ảnh và phần mềm định vị các mẫu tìm kiếm để xác định ranh giới của mã
  2. Sửa phối cảnh — Trình quét áp dụng các phép biến đổi hình học để sửa cho góc nhìn và bề mặt cong
  3. Nhị phân hóa — Hình ảnh được chuyển đổi thành đen trắng thuần túy sử dụng ngưỡng thích ứng để xử lý ánh sáng đa dạng
  4. Lấy mẫu module — Trình quét đọc màu của từng module tại các điểm giao nhau của lưới
  5. Giải mã định dạng — Mức sửa lỗi và mẫu mặt nạ được trích xuất từ các vùng định dạng
  6. Trích xuất dữ liệu — Mặt nạ được đảo ngược và luồng bit dữ liệu được đọc theo thứ tự quy định
  7. Kiểm tra lỗi — Tính toán hội chứng Reed-Solomon phát hiện và sửa lỗi
  8. Giải mã — Luồng bit sạch được chuyển đổi trở lại thành nội dung gốc sử dụng chế độ mã hóa đã khai báo

Mẫu mặt nạ

Mã QR áp dụng một trong tám mẫu mặt nạ (đánh số từ 0 đến 7) cho vùng dữ liệu trước khi hiển thị cuối cùng. Mặt nạ đảm bảo phân phối cân bằng giữa module đen và trắng, ngăn chặn các vùng trống lớn có thể gây nhầm lẫn cho trình quét. Trình quét đọc tham chiếu mặt nạ từ thông tin định dạng và đảo ngược mặt nạ trong quá trình giải mã.

Mã Micro QR

Một biến thể gọi là Mã Micro QR sử dụng một mẫu tìm kiếm duy nhất (thay vì ba) và có bốn phiên bản nhỏ hơn. Mã Micro QR hữu ích cho không gian rất nhỏ như linh kiện điện tử và thiết bị y tế, với dung lượng tối đa 355 ký tự số.

Tạo mã QR với sự tự tin

Hiểu công nghệ cơ bản giúp bạn tạo mã QR quét đáng tin cậy trong mọi môi trường. Trình tạo mã QR trực tuyến miễn phí của chúng tôi tự động hóa tất cả các quyết định kỹ thuật — chọn phiên bản, tối ưu hóa chế độ, sửa lỗi và mặt nạ — để bạn có được mã sẵn sàng sản xuất trong vài giây. Chọn từ URL, văn bản, vCard, WiFi và nhiều định dạng khác với đầy đủ tùy chọn tùy chỉnh.