Mức sửa lỗi QR Code (L, M, Q, H) — Giải thích chi tiết
L, M, Q, H thực sự nghĩa là gì — khi nào dùng mức nào, ảnh hưởng kích thước code thế nào, và vì sao sửa lỗi cho phép nhúng logo.
Mọi tool tạo QR đều hỏi bạn chọn mức sửa lỗi (error correction level): L, M, Q, hay H. Hầu hết mọi người chọn cái default highlighted rồi bỏ qua. Thường thì OK — nhưng hiểu chuyện gì đang xảy ra giúp bạn tránh được vài lỗi phổ biến, đặc biệt khi muốn nhúng logo hoặc in trên thứ dễ bẩn.
Sửa lỗi thực sự làm gì
Sửa lỗi thêm dữ liệu dự phòng vào QR code. Thuật toán Reed–Solomon mã hoá data của bạn với module "parity" thêm (các ô đen trắng) để khi một phần code bị hỏng — trầy, nhoè, bị che một phần — scanner vẫn phục hồi được nội dung gốc.
Bốn mức tương ứng với mức độ code có thể không đọc được trước khi scan fail:
| Mức | Chịu hỏng | Tương đương |
|---|---|---|
| L (Low) | ~7% | Một vết nhoè nhỏ |
| M (Medium) | ~15% | Default cho hầu hết case |
| Q (Quartile) | ~25% | Biển hiệu ngoài trời, sticker |
| H (High) | ~30% | Có nhúng logo, môi trường khắc nghiệt |
Mức cao hơn = nhiều dữ liệu dự phòng = code dày hơn cho cùng nội dung.
Trade-off: density vs durability
Mức sửa lỗi cao hơn nghĩa là nhiều module parity hơn, nghĩa là QR dày hơn cho cùng input. Một URL https://example.com/path ở mức L có thể vừa lưới 25×25 module; ở mức H cần 33×33. Quan trọng vì hai lý do:
- Kích thước in — code dày hơn cần in lớn hơn để scan tin cậy từ cùng khoảng cách.
- Cảm giác visual — code dày hơn nhìn "ồn ào" hơn, ít designed hơn.
Vậy mức đúng không phải lúc nào cũng là cao nhất. Đó là mức thấp nhất sống sót được nơi QR sẽ tồn tại.
Khi nào chọn mức nào
Mức L (~7%)
Chỉ dùng khi QR sẽ tồn tại trên màn hình kỹ thuật số sạch — slide Zoom, website, PDF không in. Code nhỏ nhất, nhẹ visual nhất.
Mức M (~15%) — default
Câu trả lời đúng cho hầu hết ấn phẩm in trong điều kiện bình thường: danh thiếp, hoá đơn, poster trong nhà, packaging, dùng online. Nếu không có lý do gì khác, chọn M.
Mức Q (~25%)
Dùng khi QR sẽ ra ngoài trời hoặc nơi dễ bị hao mòn vật lý: cửa kính shop, biển vỉa hè, label parcel, lanyard event thể thao, table card nhà hàng bị lau liên tục. Q hấp thụ trầy xước, dấu vân tay, hơi nước, phai màu một phần.
Mức H (~30%)
Dùng khi:
- Bạn nhúng logo ở giữa QR (logo che mất module thật; cần dự phòng thêm để phục hồi)
- QR sẽ in trên bề mặt cong (cốc, chai)
- QR sẽ tồn tại ở môi trường khắc nghiệt (biển công trường, ứng dụng marine)
Đừng vô tư chọn H — nó làm code nặng visual hơn và có khi khó scan từ xa hơn vì module nhỏ hơn.
Vì sao H bắt buộc cho logo
Nếu bạn đặt logo lên giữa QR, bạn đang vật lý che mất module. Scanner thấy data lộn xộn ở vị trí logo. Nó bù bằng cách dựng lại data thiếu từ module parity — nhưng chỉ nếu có đủ parity.
Quy tắc thô:
- Che ~10% code → L có thể work, M an toàn
- Che ~15–20% → dùng Q
- Che ~25% → dùng H, và đừng to hơn
Nếu logo che hơn ~25% code, scan fail rate tăng nhanh bất kể mức nào. Thu nhỏ logo hoặc dời sang góc.
Test thực tế
Tạo cùng nội dung ở L, M, Q, H. In cả 4 ở kích thước thực sẽ dùng. Che ~10% mỗi cái bằng sticker tròn ở các vị trí khác nhau. Thử scan cả 4 bằng điện thoại.
Bạn sẽ thấy ngay:
- L fail ngay với sticker đầu tiên ở vùng quan trọng
- M sống sót hầu hết vị trí
- Q và H sống sót gần như mọi nơi trừ khi che mất các ô position-detection (3 khối lớn ở góc — không phục hồi được)
Test 5 phút này nói chính xác use case của bạn cần mức nào.
Sửa lỗi không fix được gì
Ba thứ giết bất kỳ scan QR nào, bất kể mức:
- Hỏng các pattern position-detection — 3 ô vuông lớn lồng nhau ở góc. Đó là cách scanner định hướng code. Che một cái, scan fail.
- Quiet zone không đủ — viền trắng quanh code. Thiếu nó, scanner không tìm được rìa. Đừng cắt vào viền.
- Tương phản kém — sáng trên tối, màu tương phản thấp, hoặc laminate bóng phản chói. Sửa lỗi không help nếu camera còn không thấy module.
Tóm lại
- Default M cho digital và hầu hết ấn phẩm in
- Tăng lên Q cho ngoài trời, môi trường khắc nghiệt, dễ hao mòn
- Dùng H chỉ khi nhúng logo hoặc in trên material khắc nghiệt
- Không dùng L trừ khi thật sự cần code nhỏ nhất và QR tồn tại trên màn hình sạch
- Test in + che + scan trước khi commit cho lượng in lớn
Bạn có thể chọn mức sửa lỗi khi tạo code tại Qropi — 4 nút dưới "Error Correction" làm đúng những gì mô tả ở trên.