TIÊU CHUẨN QUỐC GIA TCVN 7322:2009 (ISO/IEC 18004:2006) VỀ CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT ĐỐI VỚI MÃ HÌNH QR CODE 2005
TCVN 7322:2009
ISO/IEC 18004:2006
CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT ĐỐI VỚI MÃ HÌNH QR CODE 2005
Information technology – Automatic identification and data capture techniques – QR code 2005 bar code symbology specification
Lời nói đầu
TCVN 7322: 2009 thay thế TCVN 7322: 2003.
TCVN 7322: 2009 hoàn toàn tương đương với ISO/IEC 18004:2006.
TCVN 7322: 2009 do Tiểu ban kỹ thuật tiêu chuẩn quốc gia TCVN/JTC1/ SC 31 “Thu nhận dữ liệu tự động” biên soạn, Tổng cục Tiêu chuẩn Đo lường Chất lượng đề nghị, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
Cần phải phân biệt bốn thành viên trong họ QR code tuy khác nhau về mặt kỹ thuật, nhưng lại có liên hệ chặt chẽ với nhau, bốn thành viên này thể hiện một quá trình phát triển như sau:
– QR code Model 1 là bản ghi quy định kỹ thuật gốc về QR code và được mô tả trong tài liệu Quy định kỹ thuật 97-001 về mã vạch của quốc tế AIM.
– QR code Model 2 là dạng nâng cao của QR code với các đặc tính bổ sung (chủ yếu là sự bổ sung các mẫu căn chuẩn để trợ giúp sự điều hướng trong các mã lớn hơn) và là cơ sở cho lần xuất bản đầu tiên của ISO/IEC 18004.
– QR code 2005 (cơ sở cho lần xuất bản thứ hai của ISO/IEC 18004) rất giống với QR code Model 2 và, trong định dạng QR code của nó, chỉ khác biệt về sự bổ sung khả năng mã vạch có thể xuất hiện trong hướng hình ảnh phản chiếu, cơ cấu đảo chiều của hệ số phản xạ (mã vạch nhạt màu in trên nền đậm màu) và sự lựa chọn để quy định các bộ ký tự khác đối với sự xác lập mặc định đã biết.
– Định dạng Micro QR code (cũng được quy định trong tiêu chuẩn này) là một biến thể của QR code 2005 với một số rút gọn các môđun tiêu đề và một phạm vi các cỡ bị giới hạn, cho phép thể hiện một lượng dữ liệu từ nhỏ đến vừa vào trong một mã hình nhỏ, đặc biệt phù hợp với việc tạo mã trực tiếp lên các phần và các phần hợp thành và phù hợp với các ứng dụng có diện tích gắn mã hạn chế.
QR code 2005 là một loại mã hình, dạng ma trận, gồm một tập hợp các môđun vuông danh định được sắp xếp thành Mẫu hình vuông, bao gồm một mẫu tìm kiếm đơn nhất đặt ở ba góc của mã vạch (đối với mã hình Micro QR code, thì chỉ đặt ở một góc) với mục tiêu trợ giúp việc xác định vị trí, kích cỡ và độ nghiêng của mã một cách dễ dàng. Có nhiều kích cỡ khác nhau của mã được đưa ra, cùng với bốn mức độ sửa lỗi. Kích cỡ của môđun do người sử dụng tự tạo lập cho phép tạo mã bằng nhiều kĩ thuật khác nhau.
QR code Model 2 tương thích hoàn toàn với các hệ thống đọc QR code 2005.
Khuyến nghị chỉ sử dụng QR code Model 1 trong các ứng dụng thuộc hệ thống đóng và không yêu cầu thiết bị phù hợp với tiêu chuẩn này phải hỗ trợ Model 1. Vì QR code 2005 được khuyến nghị sử dụng trong các ứng dụng thuộc hệ thống mở, mới, tiêu chuẩn này quy định đầy đủ về QR code 2005 và liệt kê các điểm khác biệt giữa QR code Model 1 và QR code 2005 trong Phụ lục N.
CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT ĐỐI VỚI MÃ HÌNH QR CODE 2005
Information technology – Automatic identification and data capture techniques – QR code 2005 bar code symbology specification
1. Phạm vi áp dụng
Tiêu chuẩn này quy định các yêu cầu đối với mã hình được gọi là QR code 2005. Tiêu chuẩn này quy định các đặc tính của mã hình QR code 2005, phương pháp mã hóa ký tự dữ liệu, định dạng mã vạch, các đặc tính về kích thước, các quy tắc sửa lỗi, thuật toán giải mã tham chiếu, các yêu cầu về chất lượng tạo mã và các tham số ứng dụng cho người sử dụng lựa chọn, và liệt kê các đặc tính của mã hình QR code Model 1 khác với mã hình QR code 2005 trong phụ lục tham khảo.
2. Tính phù hợp
Mã hình QR code 2005 (và thiết bị được thiết kế để tạo hoặc để đọc mã hình QR code 2005) phải được coi như đã phù hợp với tiêu chuẩn này nếu chúng quy định hay hỗ trợ các đặc tính đã định trong tiêu chuẩn này.
Thiết bị phù hợp với tiêu chuẩn này có thể không đọc được mã vạch phù hợp với các yêu cầu đối với QR code Model 1, như được quy định trong TCVN 7322:2003 (ISO/IEC 18004:2000).
Thiết bị phù hợp với tiêu chuẩn này có thể đọc được mã vạch phù hợp với các yêu cầu đối với QR code Model 2, như được quy định trong TCVN 7322:2003 (ISO/IEC 18004:2000).
Thiết bị đọc phù hợp với TCVN 7322:2003 (ISO/IEC 18004:2000) không có khả năng đọc tất cả mã vạch phù hợp với tiêu chuẩn này. Những thiết bị như vậy không có khả năng đọc mã vạch có tận dụng các đặc tính bổ sung của QR code 2005.
Thiết bị in phù hợp với TCVN 7322:2003 (ISO/IEC 18004:2000) không có khả năng in tất cả mã vạch quy định trong tiêu chuẩn này. Những thiết bị như vậy không có khả năng in mã vạch tận dụng các đặc tính bổ sung của QR code 2005.
Tuy nhiên, cũng phải chú ý rằng, QR code 2005 là dạng mã hình được khuyến nghị cho các ứng dụng thuộc hệ thống mở và mới.
3. Tiêu chuẩn viện dẫn
Các tài liệu viện dẫn sau là cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi.
ISO/IEC 8859-1:1998, Information technology – 8-bit single-byte coded graphic character sets – Part 1: Latin alphabet No.1 (Công nghệ thông tin – Các bộ ký tự đồ họa được mã hóa bai đơn 8-bit – Phần 1: Bảng chữ cái Latinh số 1)
ISO/IEC 15415, Information technology – Automatic identification and data capture techniques – Bar code print quality test specification – Two-dimensional symbols (Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Yêu cầu kỹ thuật đối với kiểm tra chất lượng in mã vạch – Mã vạch hai chiều)
ISO/IEC 15424, Information technology – Automatic identification and data capture techniques – Data carrier identifiers (including symbology identifiers). (Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Số phân định vật mang dữ liệu (bao gồm cả số phân định mã hình).
ISO/IEC 19762-1, Information technology – Automatic identification and data capture (AIDC) techniques – Harmonized vocabulary – Part 1: General terms relating to AIDC (Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động (AIDC) – Từ vựng được hài hòa – Phần 1: Các thuật ngữ chung liên quan đến AIDC)
ISO/IEC 19762-2, Information technology – Automatic identification and data capture (AIDC) techniques – Harmonized vocabulary – Part 2: Optically readable media (ORM) (Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động (AIDC) – Từ vựng được hài hòa – Phần 2: Phương tiện có khả năng đọc về mặt quang học (ORM))
JIS X 0201, 7-bit and 8-bit character sets for Information Interchange. (Bộ ký tự 7-bit và 8-bit dùng để trao đổi thông tin)
JIS X 0208:1997, 7-bit and 8-bit double byte coded KANJI sets for Information Interchange. (Bộ KANJI được mã hóa byte đôi 7-bit và 8-bit dùng để trao đổi thông tin)
AIM, International Technical Specification, Extended Channel Interpretations (Phương thức dịch kênh mở rộng. Quy định kỹ thuật quốc tế, AIM):
– Part 1: ldentification schemes and protocols (Phần 1: Lược đồ và giao thức nhận dạng)
– Part 2: Registration procedure for coded character sets and other data formats (Phần 2: Thủ tục đăng ký các bộ ký tự được mã hóa và các dạng dữ liệu khác)
– Character set register (Đăng ký bộ ký tự).
AIM International symbology specification 97-001, QR code (Quy định kỹ thuật mã vạch của quốc tế AIM 97-001, QRcode)
GS1 general specification, GS1 (Quy định kỹ thuật chung của tổ chức GS1).
4. Thuật ngữ và định nghĩa, ký hiệu toán học và lôgic, chữ viết tắt và quy ước
4.1. Thuật ngữ và định nghĩa
Tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong ISO/IEC 19762-1 và ISO/IEC 19762-2 và các thuật ngữ dưới đây:
4.1.1. Mẫu căn chuẩn (Alignment pattern)
Mẫu tham chiếu được cố định ở những vị trí xác định trong một mã hình ma trận, cho phép phần mềm giải mã tái đồng bộ ánh xạ tọa độ của môđun ảnh trong trường hợp có biến dạng hình ảnh với số lượng vừa phải.
4.1.2. Chỉ dấu đếm ký tự (Character count indicator)
Chuỗi bit quy định độ dài dòng dữ liệu trong một mode.
4.1.3. Áp mặt nạ dữ liệu (Data masking)
Quá trình áp dụng phép toán logic XOR cho mẫu bit trong vùng mã hóa với một mẫu mặt nạ dữ liệu để tạo ra một mã hình có số lượng môđun tối và sáng cân bằng hơn và làm giảm sự xuất hiện các mẫu ảnh hưởng tới việc xử lý nhanh hình ảnh.
4.1.4. Số tham chiếu mẫu mặt nạ dữ liệu (Data mask pattern reference)
Số phân định 3-bit của các mẫu mặt nạ dữ liệu áp dụng cho mã hình.
4.1.5. Vùng mã hóa (Encoding region)
Vùng của mã hình không thuộc phạm vi được choán giữ bởi các mẫu chức năng, được sử dụng để mã hóa dữ liệu và các từ mã sửa lỗi và dành cho thông tin về định dạng và cỡ hình.
4.1.6. Tập con loại trừ (Exclusive subset)
Tập hợp con các ký tự trong phạm vi bộ ký tự của mode không chung với bộ ký tự giới hạn hơn của mode khác.
4.1.7. Mẫu mở rộng (Extension pattern)
Mẫu chức năng không mã hóa dữ liệu trong mã hình Model 1.
4.1.8. Thông tin định dạng (Format information)
Mẫu được mã hóa chứa thông tin về các ký tự mã hình, đóng vai trò cốt yếu cho phép phần còn lại của vùng mã hóa được giải mã.
4.1.9. Mã QR (QR code)
Thuộc về mã hình QR code 2005 được nhận dạng là các cỡ hình từ 1 đến 40, khác biệt với các mã hình Micro QR code.
4.1.10. Mẫu chức năng (Function pattern)
Thành phần ở trên đầu của mã hình (mẫu tìm kiếm, dấu phân cách, mẫu căn chỉnh và mẫu căn chuẩn) cần cho việc định vị mã hình hoặc nhận dạng các đặc điểm của nó để hỗ trợ việc giải mã.
4.1.11. Áp mặt nạ (Masking)
Quá trình áp dụng phép toán logic XOR cho mẫu bit trong vùng mã hình với một mẫu mặt nạ để làm giảm sự xuất hiện các mẫu ảnh hưởng tới việc xử lý nhanh hình ảnh.
4.1.12. Micro
Thuộc về mã hình QR code 2005 được nhận dạng là các cỡ hình từ M1 đến M4, khác biệt với các mã hình QR code.
4.1.13. Mode (Mode)
Phương pháp thể hiện bộ ký tự đã cho bằng một dòng bit.
4.1.14. Chỉ báo mode (Mode indicator)
Số phân định 4 bit chỉ ra chế độ mà chuỗi dữ liệu tiếp theo được mã hóa.
4.1.15. Bit độn thêm (Padding Bit)
Bit 0, không thể hiện dữ liệu, thường được sử dụng để lấp chỗ trống của từ mã cuối cùng sau dấu kết thúc trong dòng bit dữ liệu.
4.1.16. Mẫu tìm kiếm (Finder pattern)
Một trong ba thành phần đồng nhất của mẫu tìm kiếm trong mã hình QR code.
4.1.17. Bit dư (Remainder bit)
Bit 0, không thể hiện dữ liệu, được sử dụng để lấp chỗ trống của vùng mã hóa mã hình sau ký tự mã hình cuối cùng, khi phạm vi của vùng mã hóa có sẵn cho các ký tự mã hình không chia được một cách chính xác thành các ký tự mã hình 8-bit.
4.1.18. Từ mã dư (Remainder codeword)
Từ mã thêm vào, đặt sau các từ mã sửa lỗi, được sử dụng để lấp chỗ trống của từ mã để hoàn chỉnh mã hình nếu tổng số từ mã dữ liệu và sửa lỗi không lấp đầy dung lượng danh định của nó một cách chính xác.
4.1.19. Đoạn (Segment)
Chuỗi dữ liệu được mã hóa theo các quy tắc của ECI hoặc chế độ mã hóa.
4.1.20. Dấu phân cách (Separator)
Mẫu chức năng gồm tất cả các môđun sáng, độ rộng bằng 1 môđun, phân cách các mẫu tìm kiếm với phần còn lại của mã hình.
4.1.21. Số mã hình (Symbol number)
Trường 3 bit chỉ ra cỡ mã hình và mức sửa lỗi được áp dụng, được sử dụng như một phần của thông tin định dạng trong mã hình Micro QR code.
4.1.22. Dấu kết thúc (Terminator)
Mẫu bit về số đã biết (tùy thuộc vào mã hình) của tất cả các bit 0 được sử dụng để kết thúc dòng bit thể hiện dữ liệu.
4.1.23. Mẫu căn chỉnh (Timing pattern)
Chuỗi môđun tối và sáng luân phiên nhau cho phép xác định các tọa độ của môđun trong mã hình.
4.1.24. Cỡ hình (Version)
Cỡ của mã hình được thể hiện bằng vị trí của nó trong chuỗi các cỡ hình cho phép đối với mã hình Micro QR code từ 11 x 11 môđun (cỡ hình M1) đến 17 x 17 môđun (cỡ hình M4), hoặc đối với mã hình QR code từ 21 x 21 môđun (cỡ hình 1) đến 177 x 177 môđun (cỡ hình 40).
CHÚ THÍCH Có thể thêm hậu tố mức sửa lỗi áp dụng cho mã hình vào cỡ hình đã biết, ví dụ cỡ hình 4-L hoặc cỡ hình M3-Q.
4.1.25. Thông tin cỡ hình (Version information)
Mẫu được mã hóa trong các mã hình QR code 2005 chứa thông tin về cỡ mã hình cùng các bit sửa lỗi cho dữ liệu này.
4.2. Ký hiệu toán học và lôgic
Các ký hiệu toán học sử dụng trong các công thức và các phương trình được xác định sau khi chúng xuất hiện trong công thức hay phương trình.
Trong tiêu chuẩn này, các phép toán sẽ sử dụng các ký hiệu sau:
div | phần nguyên |
mod | số dư |
XOR | hàm logic hoặc loại trừ cho kết quả bằng 1 chỉ khi nào hai giá trị đầu vào không giống nhau. Hàm này được ký hiệu là Å. |
4.3. Chữ viết tắt
BCH Bose-Chaudhuri-Hocquenghem
ECI Extended Channel Interpretation (phương thức dịch kênh mở rộng)
RS Reed-Solomon
4.4. Quy ước
4.4.1. Vị trí của môđun
Để dễ dàng xem xét, vị trí của môđun được xác định theo hoành độ và tung độ trong mã hình dưới dạng (i,j) trong đó i chỉ hàng (đếm từ trên xuống) và j chỉ cột (đếm từ trái sang phải) tại vị trí mà môđun sẽ được đặt, bắt đầu đếm từ số 0. Như vậy, môđun có tọa độ (0,0) sẽ nằm ở góc trên cùng bên trái của mã hình.
4.4.2. Ký pháp Byte
Giá trị của Byte được biểu diễn theo hệ thập lục phân (cơ số 16).
4.4.3. Số tham chiếu cỡ hình
Đối với mã hình QR code, các cỡ mã hình được đề cập dưới dạng cỡ hình V-E trong đó V là số cỡ hình (từ 1 đến 40) và E là mức sửa lỗi (L, M, Q, H).
Đối với mã hình Micro QR code, các cỡ mã hình được đề cập dưới dạng cỡ hình MV-E trong đó chữ cái M chỉ ra định dạng của Micro QR code và V (với phạm vi từ 1 đến 4) và E (với các giá trị L, M và Q) có ý nghĩa như đã nêu ở trên.
5. Mô tả mã hình
5.1. Những đặc trưng cơ bản
QR code 2005 là mã hình dạng ma trận có những đặc trưng sau:
a) Định dạng:
1) QR code, với toàn bộ phạm vi các khả năng và dung lượng dữ liệu lớn nhất;
2) Micro QR code, với phần đầu được giảm bớt, một vài hạn chế về khả năng và dung lượng dữ liệu bị cắt giảm (so với mã hình QR code).
b) Bộ ký tự mã hóa:
1) dữ liệu số (số từ 0 – 9);
2) dữ liệu chữ số (số từ 0 – 9; chữ cái hoa từ A – Z; chín ký tự khác: dấu cách, $ % * + – . / :);
3) dữ liệu byte (mặc định: ISO/IEC 8859-1; hoặc các bộ khác nếu không được xác định (xem 6.3.4));
4) Các ký tự Kanji. Các ký tự Kanji trong QR code 2005 có thể được nén trong 13 bit.
c) Thể hiện dữ liệu:
Một môđun tối thường là số 1 hệ nhị phân và một môđun sáng thường là số 0 hệ nhị phân. Tuy nhiên cần xem thêm 5.2 để biết thêm chi tiết về sự đảo chiều của hệ số phản xạ
d) Cỡ của mã hình (không bao gồm vùng trống):
1) Mã hình Micro QR code: từ 11 x 11 môđun đến 17 x 17 môđun (các cỡ hình từ M1 đến M4, tăng dần mỗi lần mỗi cạnh 2 môđun);
2) Mã hình QR code: từ 21 x 21 môđun đến 177 x 177 môđun (các cỡ hình từ 1 đến 40, tăng dần mỗi lần mỗi cạnh 4 môđun).
e) Số lượng ký tự dữ liệu trong mỗi mã hình
1) cỡ mã hình Micro QR code lớn nhất, cỡ hình M4-L:
– dữ liệu số: 35 ký tự
– dữ liệu chữ số: 21 ký tự
– dữ liệu byte: 15 ký tự
– dữ liệu Kanji: 9 ký tự
2) cỡ mã hình QR code lớn nhất, cỡ hình 40-L:
– dữ liệu số: 7 089 ký tự
– dữ liệu chữ số: 4 296 ký tự
– dữ liệu byte: 2 953 ký tự
– dữ liệu Kanji: 1 817 ký tự
f) Các mức sửa lỗi có thể chọn lựa:
Có 4 mức sửa lỗi RS (gọi là L, M, Q và H theo thứ tự tăng dần về khả năng) cho phép khôi phục từ mã của mã hình:
– L 7%
– M 15%
– Q 25%
– H 30%
Đối với mã hình Micro QR code, không có mức sửa lỗi H. Đối với mã hình Micro QR code cỡ hình M1, khả năng RS chỉ được giới hạn đến sự phát hiện ra lỗi.
g) Kiểu mã:
Ma trận
h) Sự độc lập về hướng:
Có (cả sự xoay vòng và phản xạ)
Hình 1 minh họa mã hình QR code 2005 cỡ hình 1 có màu thông thường và với sự đảo chiều của hệ số phản xạ (xem 5.2), ở cả hai hướng thông thường và hình phản chiếu.
Hình 2 minh họa mã hình Micro QR code 2005 cỡ hình M2 có màu thông thường và với sự đảo chiều của hệ số phản xạ (xem 5.2), ở cả hai hướng thông thường và hình phản chiếu.
5.2. Tóm tắt các đặc tính bổ sung
Việc sử dụng các đặc tính bổ sung dưới đây là tùy chọn trong QR code 2005:
– Kết nối có cấu trúc
Đặc tính này cho phép các file dữ liệu được thể hiện một cách lôgic và liên tục trong tối đa 16 mã hình QR code 2005. Có thể quét theo trình tự bất kì các mã này để tái tạo lại dữ liệu nguồn một cách chính xác. Không có kết nối có cấu trúc cho mã Micro.
– Phương thức dịch kênh mở rộng
Cơ chế này cho phép mã hóa dữ liệu sử dụng các bộ ký tự khác với bộ ký tự mã hóa mặc định (ví dụ như các bộ chữ Ả rập, Siri, Hy Lạp) và các bộ dịch dữ liệu khác (chẳng hạn như khối dữ liệu sử dụng được xác định theo chuẩn nén) hoặc các yêu cầu đặc thù của ngành công nghiệp khác. Trong mã hình Micro QR code chỉ có phương thức dịch mặc định, không có các phương thức dịch kênh mở rộng khác.
– Sự đảo chiều của hệ số phản xạ
Các mã hình được nhằm để đọc khi bị tạo mã sao cho hình ảnh hoặc là tối trên sáng hoặc là sáng trên tối (xem Hình 1 và 2). Các quy định kỹ thuật trong tiêu chuẩn này căn cứ vào hình ảnh tối trên nền sáng, vì thế trong trường hợp mã hình được chế tạo ra có số tham chiếu hệ số phản xạ đảo chiều đến môđun tối hoặc sáng thì lần lượt phải coi đó là các số tham chiếu đến môđun sáng hoặc tối.
– Hình phản chiếu
Sự sắp xếp các môđun nêu trong tiêu chuẩn này thể hiện hướng “thông thường” của mã hình. Tuy nhiên, có thể giải mã được mã hình với sự sắp xếp các môđun đã được đổi chỗ ở bên. Khi xem xét mẫu tìm kiếm tại góc trên cùng bên trái, góc trên cùng bên phải và góc dưới cùng bên trái mã hình, ảnh hưởng của hình phản chiếu là làm thay đổi các vị trí hàng và cột của các môđun.
Hình 1 – Ví dụ về mã hình QR code 2005 mã hóa dòng chữ “QR Code Symbol” – (a) hướng thông thường và sự sắp xếp hệ số phản xạ thông thường; (b) hướng thông thường và hệ số phản xạ đảo chiều; (c) hướng hình phản chiếu và sự sắp xếp hệ số phản xạ thông thường; (d) hướng hình phản chiếu và hệ số phản xạ đảo chiều
Hình 2 – Ví dụ về mã hình Micro QR code cỡ hình M2 mã hóa dòng số “01234567” – (a) hướng thông thường và sự sắp xếp hệ số phản xạ thông thường; (b) hướng thông thường và hệ số phản xạ đảo chiều; (c) hướng hình phản chiếu và sự sắp xếp hệ số phản xạ thông thường; (d) hướng hình phản chiếu và hệ số phản xạ đảo chiều
CHÚ THÍCH Các dấu ở góc trong Hình 1 và 2 chỉ rõ sự mở rộng của vùng trống.
5.3. Cấu trúc mã hình
Mỗi một mã hình QR code 2005 phải được tạo bởi các môđun vuông danh định được xếp theo một ma trận vuông và sẽ bao hàm một vùng mã hóa và các mẫu chức năng, được gọi là mẫu tìm kiếm, dấu phân cách, mẫu căn chỉnh và mẫu căn chuẩn. Các mẫu chức năng không mã hóa dữ liệu. Bốn phía của mã sẽ được bao bọc bởi một đường viền trống. Hình 3 mô tả cấu trúc của mã hình cỡ 7. Hình 4 mô tả cấu trúc của mã hình cỡ M3.
Hình 3 – Cấu trúc của mã hình QR code 2005
Hình 4 – Cấu trúc của mã hình Micro QR code cỡ hình M3
5.3.1. Cỡ hình và kích thước mã hình
5.3.1.1. Mã hình QR code
Có 40 cỡ mã hình QR code 2005 được gọi là cỡ hình 1, cỡ hình 2… cỡ hình 40. Cỡ hình 1 gồm 21 x 21 môđun, cỡ hình 2 gồm 25 x 25 môđun, và cứ như vậy mỗi cỡ hình sau tăng thêm 4 môđun mỗi cạnh cho đến cỡ hình thứ 40 là 177 x 177 môđun. Hình 5 đến Hình 10 mô tả cấu trúc của các cỡ hình 1, 2, 6, 7, 14, 21 và 40.
Hình 5 – Mã hình cỡ 1 và 2
Hình 6 – Mã hình cỡ 6
Hình 7 – Mã hình cỡ 7
Hình 8 – Mã hình cỡ 14
Hình 9 – Mã hình cỡ 21
Hình 10 – Mã hình cỡ 40
5.3.1.2. Mã hình Micro QR code
Có 4 cỡ mã hình Micro QR code là M1, M2, M3 và M4. Cỡ hình M1 gồm 11 x 11 môđun, cỡ hình M2 gồm 13 x 13 môđun, cỡ hình M3 gồm 15 x 15 môđun và cỡ hình M4 gồm 17 x 17 môđun, có nghĩa là mỗi cỡ hình sau tăng thêm 2 môđun mỗi cạnh. Hình 11 mô tả cấu trúc cỡ hình từ M1 đến M4 của Micro QR code.
CHÚ THÍCH Hai định dạng của mã hình M3 được chỉ ra, chỉ khác ở vị trí đặt từ mã theo mức sửa lỗi.
Hình 11 – Các cỡ hình của mã hình Micro QR code
5.3.2. Mẫu tìm kiếm
5.3.2.1. Mã hình QR code
Có 3 mẫu tìm kiếm giống nhau đặt tương ứng ở góc trên bên trái, góc trên bên phải và góc dưới bên trái của mã hình như minh họa ở Hình 3. Mỗi mẫu tìm kiếm có thể được xem như 3 hình vuông đồng tâm chồng lên nhau và được tạo bởi 7 x 7 môđun tối, 5 x 5 môđun sáng và 3 x 3 môđun tối. Tỉ lệ độ rộng của môđun trong mỗi mẫu tìm kiếm là 1 : 1 : 3 : 1 : 1 như minh họa ở Hình 12. Mã hình này được ưu tiên mã hóa sao cho ít có khả năng tìm thấy được những mẫu tương tự ở bất kì vị trí nào trong mã hình, cho phép nhận dạng mã hình QR code 2005 một cách nhanh chóng trong trường nhìn. Việc nhận dạng được ba mẫu định vị tạo nên mẫu tìm kiếm sẽ cho ta định rõ được vị trí và hướng quay của mã hình trong trường nhìn.
5.3.2.2. Mã hình Micro QR code
Một mẫu tìm kiếm đơn lẻ, như được quy định trong 5.3.2.1, được đặt ở góc trên bên trái của mã hình như minh họa ở Hình 4. Việc nhận dạng mẫu tìm kiếm này cùng các mẫu căn chỉnh sẽ cho ta định rõ được vị trí, cỡ và hướng quay của mã hình trong trường nhìn.
Hình 12 – Cấu trúc mẫu tìm kiếm
5.3.3. Dấu phân cách
Dấu phân cách với độ rộng 1 môđun, được tạo bởi toàn môđun sáng, được đặt giữa mẫu tìm kiếm và vùng mã hóa, như minh họa ở Hình 3 và 4.
5.3.4. Mẫu căn chỉnh
Mẫu căn chỉnh theo chiều ngang và chiều dọc tương ứng bao gồm một dòng hoặc một cột rộng 1 môđun xen kẽ giữa môđun sáng và môđun tối, bắt đầu và kết thúc bởi một môđun tối. Các mẫu này cho phép xác định mật độ và cỡ mã hình và chúng cung cấp vị trí dữ liệu để xác định các tọa độ của môđun.
Trong mã hình QR code, mẫu căn chỉnh theo chiều ngang chạy qua dòng 6 của mã hình giữa những dấu phân cách đối với các mẫu tìm kiếm ở bên trên; mẫu căn chỉnh theo chiều dọc tương tự chạy xuống theo cột 6 của mã hình giữa những dấu phân cách đối với các mẫu tìm kiếm phía bên trái. Xem Hình 3.
Trong mã hình Micro QR code, mẫu căn chỉnh theo chiều ngang chạy qua dòng 0 của mã hình ở phía bên phải dấu phân cách đến lề phải của mã hình; mẫu căn chỉnh theo chiều dọc tương tự chạy xuống theo cột 0 của mã hình phía bên dưới dấu phân cách đến lề dưới cùng của mã hình. Xem Hình 4.
5.3.5. Mẫu căn chuẩn
Các mẫu căn chuẩn chỉ được thể hiện trong mã hình QR code cỡ hình 2 hoặc lớn hơn. Mỗi mẫu căn chuẩn có thể được xem như ba hình vuông đồng tâm chồng lên nhau và được tạo bởi 5 x 5 môđun tối, 3 x 3 môđun sáng và một môđun tối đơn lẻ ở trung tâm. Số mẫu căn chuẩn phụ thuộc cỡ của mã hình và chúng được đặt trong tất cả các mã hình của cỡ hình 2 hoặc lớn hơn ở các vị trí được quy định trong Phụ lục E.
5.3.6. Vùng mã hóa
Vùng này bao gồm các ký tự mã hình thể hiện dữ liệu, thể hiện từ mã sửa lỗi, thông tin định dạng và thông tin cỡ hình khi có thể. Tham khảo 6.7.1 để xem chi tiết về các ký tự của mã hình. Tham khảo 6.9 để xem chi tiết về thông tin định dạng. Tham khảo 6.10 để xem chi tiết về thông tin cỡ hình.
5.3.7. Vùng trống
Đây là vùng không có bất kì dấu hiệu nào khác, bao quanh ở bốn phía của mã hình. Giá trị hệ số phản xạ danh định của nó phải bằng với giá trị hệ số phản xạ danh định của các môđun sáng.
Đối với mã hình QR code, vùng trống phải có chiều rộng là 4X.
Đối với mã hình Micro QR code, vùng trống phải có chiều rộng là 2X.
6. Yêu cầu kỹ thuật
6.1. Khái quát về quá trình mã hóa
Điều này nêu khái quát các bước cần thiết để chuyển đổi dữ liệu đầu vào thành mã hình QR code 2005.
Bước 1: Phân tích dữ liệu
Phân tích dòng dữ liệu đầu vào để xác định tính đa dạng của các ký tự khác nhau sẽ được mã hóa. Dạng QR code (nhưng không phải là dạng Micro QR code) hỗ trợ đặc tính Phương thức dịch kênh mở rộng, cho phép mã hóa dữ liệu khác với bộ ký tự mặc định. QR code 2005 bao gồm một số mode (xem 6.3) cho phép các tập con ký tự khác nhau được chuyển đổi thành các ký tự mã hình một cách hiệu quả. Khi cần thiết có thể chuyển đổi giữa các mode với nhau để đạt được sự chuyển đổi dữ liệu thành dòng nhị phân một cách hiệu quả nhất. Chọn mức tìm lỗi và sửa lỗi theo yêu cầu. Nếu người sử dụng chưa quy định cỡ của mã hình phải sử dụng thì chọn cỡ hình nhỏ nhất phù hợp với dữ liệu. Danh sách đầy đủ về cỡ hình và dung lượng mã hình được nêu ở Bảng 1.
Bước 2: Mã hóa dữ liệu
Chuyển đổi các ký tự dữ liệu thành một dòng bit theo các quy tắc về mode được sử dụng như đã nêu ở 6.4.2 đến 6.4.6, khi cần thay đổi mode thì chèn chỉ dấu mode ở đoạn đầu của mỗi đoạn mode mới và một dấu kết thúc ở đoạn cuối của chuỗi dữ liệu. Chia dòng bit kết quả thành các từ mã 8-bit. Thêm ký tự độn cho đủ với yêu cầu về số từ mã dữ liệu của cỡ hình khi cần thiết.
Bước 3: Mã sửa lỗi
Chia chuỗi từ mã thành một số khối theo yêu cầu (xem Bảng 9) để có thể áp dụng các thuật toán sửa lỗi. Tạo ra các từ mã sửa lỗi cho mỗi khối, gắn từ mã sửa lỗi vào cuối chuỗi từ mã dữ liệu.
Bước 4: Gói tin cuối về cấu trúc.
Chèn dữ liệu và từ mã sửa lỗi từ mỗi khối như mô tả ở 6.6 (bước 3) và thêm các bit dư nếu cần.
Bước 5: Đặt môđun vào ma trận
Đặt các môđun của từ mã vào ma trận cùng với mẫu tìm kiếm, dấu phân cách, mẫu căn chỉnh và (nếu được yêu cầu) mẫu căn chuẩn
Bước 6: Áp mặt nạ dữ liệu
Áp dụng mẫu áp mặt nạ dữ liệu lần lượt cho vùng mã hóa của mã hình. Đánh giá kết quả và chọn mẫu tối ưu hóa sự cân đối giữa môđun sáng, môđun tối và tối thiểu hóa sự xuất hiện của mẫu không mong muốn.
Bước 7: Thông tin định dạng và cỡ hình
Tạo thông tin định dạng và cỡ hình (nếu có) rồi hoàn thiện mã hình.
Bảng 1 – Dung lượng dữ liệu của tất cả các cỡ hình của QR code
Cỡ hình |
Số môđun/ mặt (A) |
Môđun mẫu chức năng (B) |
Môđun thông tin định dạng và cỡ hình (C) |
Môđun dữ liệu trừ (C) (D= A2-B-C) |
Dung lượng dữ liệu [từ mã]a (E) |
Các bit dư |
M1 |
11 |
70 |
15 |
36 |
5 |
0 |
M2 |
13 |
74 |
15 |
80 |
10 |
0 |
M3 |
15 |
78 |
15 |
132 |
17 |
0 |
M4 |
17 |
82 |
15 |
192 |
24 |
0 |
1 |
21 |
202 |
31 |
208 |
26 |
0 |
2 |
25 |
235 |
31 |
359 |
44 |
7 |
3 |
29 |
243 |
31 |
567 |
70 |
7 |
4 |
33 |
251 |
31 |
807 |
100 |
7 |
5 |
37 |
259 |
31 |
1 079 |
134 |
7 |
6 |
41 |
267 |
31 |
1 383 |
172 |
7 |
7 |
45 |
390 |
67 |
1 568 |
196 |
0 |
8 |
49 |
398 |
67 |
1 936 |
242 |
0 |
9 |
53 |
406 |
67 |
2 336 |
292 |
0 |
10 |
57 |
414 |
67 |
2 768 |
346 |
0 |
11 |
61 |
422 |
67 |
3 232 |
404 |
0 |
12 |
65 |
430 |
67 |
3 728 |
466 |
0 |
13 |
69 |
438 |
67 |
4 256 |
532 |
0 |
14 |
73 |
611 |
67 |
4 651 |
581 |
3 |
15 |
77 |
619 |
67 |
5 243 |
655 |
3 |
16 |
81 |
627 |
67 |
5 867 |
733 |
3 |
17 |
85 |
635 |
67 |
6 523 |
815 |
3 |
18 |
89 |
643 |
67 |
7 211 |
901 |
3 |
19 |
93 |
651 |
67 |
7 931 |
991 |
3 |
20 |
97 |
659 |
67 |
8 683 |
1 085 |
3 |
21 |
101 |
882 |
67 |
9 252 |
1 156 |
4 |
22 |
105 |
890 |
67 |
10 068 |
1 258 |
4 |
23 |
109 |
898 |
67 |
10 916 |
1 364 |
4 |
24 |
113 |
906 |
67 |
11 796 |
1 474 |
4 |
25 |
117 |
914 |
67 |
12 708 |
1 588 |
4 |
26 |
121 |
922 |
67 |
13 652 |
1 706 |
4 |
27 |
125 |
930 |
67 |
14 628 |
1 828 |
4 |
28 |
129 |
1 203 |
67 |
15 371 |
1 921 |
3 |
29 |
133 |
1 211 |
67 |
16 411 |
2 051 |
3 |
30 |
137 |
1 219 |
67 |
17 483 |
2 185 |
3 |
31 |
141 |
1 227 |
67 |
18 587 |
2 323 |
3 |
32 |
145 |
1 235 |
67 |
19 723 |
2 465 |
3 |
33 |
149 |
1 243 |
67 |
20 891 |
2 611 |
3 |
34 |
153 |
1 251 |
67 |
22 091 |
2 761 |
3 |
35 |
157 |
1 574 |
67 |
23 008 |
2 876 |
0 |
36 |
161 |
1 582 |
67 |
24 272 |
3 034 |
0 |
37 |
165 |
1 590 |
67 |
25 568 |
3 196 |
0 |
38 |
169 |
1 598 |
67 |
26 896 |
3 362 |
0 |
39 |
173 |
1 606 |
67 |
28 256 |
3 532 |
0 |
40 |
177 |
1 614 |
67 |
29 648 |
3 706 |
0 |
a Tất cả các từ mã đều có độ dài 8 bit, trừ các cỡ hình M1 và M3 với từ mã dữ liệu cuối là có độ dài 4 bit. |
6.2. Phân tích dữ liệu
Phân tích dòng dữ liệu đầu vào để xác định nội dung của nó, lựa chọn ECI mặc định hoặc ECI khác thích hợp và mode phù hợp để mã hóa mỗi chuỗi như mô tả ở 6.4. Mỗi mode từ mode số đến mode Kanji đều cần nhiều bit hơn cho mỗi ký tự. Có thể chuyển từ mode này sang mode khác ngay trong một mã hình để tối thiểu hóa độ dài dòng bit cho dữ liệu, những phần đó có thể được mã hóa một cách hiệu quả hơn trong một mode hơn là trong những phần khác, ví dụ những chuỗi số tiếp sau bởi chuỗi chữ số. Theo lý thuyết, phương pháp hiệu quả nhất là mã hóa dữ liệu trong một mode cần ít bit nhất cho ký tự dữ liệu, nhưng do có một vài bit phát sinh dưới dạng chỉ báo mode và chỉ dấu đếm ký tự mỗi lần có sự thay đổi mode, thì mã hóa dữ liệu có thể không tạo ra dòng bit tổng thể ngắn nhất khi thay đổi mode cho số ít các ký tự. Ngoài ra, vì dung lượng của mã hình tăng lên theo các bước riêng từ cỡ hình này tới cỡ hình tiếp theo, do đó đối với tất cả các trường hợp không phải lúc nào cũng cần sự chuyển đổi có hiệu quả cao nhất. Hướng dẫn về tối thiểu hóa độ dài dòng bit được nêu trong Phụ lục J. Trong mã hình Micro QR code, có giới hạn về các mode có sẵn trong các cỡ hình nhỏ hơn. Phụ lục J.2 nêu các cỡ hình của mã hình Micro QR code phù hợp với các sự kết hợp khác nhau của hai mode.
6.3. Các mode
Các mode được chỉ ra dưới đây là dựa trên các giá trị ký tự và các phép gán ứng với ECI mặc định. Khi bất kì một ECI nào khác được sử dụng (chỉ trong mã hình QR code), các giá trị byte phải được sử dụng để chọn mode nén dữ liệu tối ưu hơn là sử dụng các phép gán ký tự riêng biệt. Ví dụ: Mode số sẽ phù hợp hơn nếu có một chuỗi giá trị byte dữ liệu nằm trong khoảng 30 HEX đến 39 HEX . Trong trường hợp đó sự rút gọn sẽ được thực hiện bằng cách sử dụng dạng số hoặc chữ số tương đương mặc định của các giá trị byte.
6.3.1. Mode phương thức dịch kênh mở rộng (ECI)
Giao thức phương thức dịch kênh mở rộng (ECI) được quy định trong quy định kỹ thuật quốc tế của AIM Inc. về các phương thức dịch kênh mở rộng, cho phép dòng dữ liệu đầu ra có cách dịch nghĩa khác với cách dịch nghĩa của bộ ký tự mặc định. Giao thức ECI được xác định một cách nhất quán với một số mã hình. Giao thức ECI đưa ra một phương pháp nhất quán để đặc tả cách dịch nghĩa riêng biệt cho các giá trị byte trước khi in và sau khi giải mã. Giao thức ECI không được hỗ trợ trong mã hình Micro QR code.
Cách dịch nghĩa mặc định cho QR code 2005 là ECI 000003 thể hiện bộ ký tự theo ISO/IEC 8859-1.
Các ứng dụng quốc tế sử dụng các bộ ký tự khác phải dùng giao thức ECI. Ví dụ, cách dịch nghĩa tương ứng với các bộ ký tự JIS8 và Shift JIS là ECI 000020.
Ảnh hưởng của mode ECI là việc thêm một chuỗi ký tự trống ECI tại điểm đó vào trong dữ liệu. Ngay lập tức mode đó sẽ bị theo sau bởi một chỉ báo mode khác (ví dụ để mã hóa dữ liệu có hiệu quả) và duy trì hiệu lực đến tận khi kết thúc gói tin hoặc một chỉ báo mode ECI tiếp theo.
6.3.2. Mode số
Mode số mã hóa dữ liệu từ bộ số thập phân (từ 0 đến 9) (các giá trị byte từ 30HEX đến 39HEX). Ở mật độ bình thường, 3 ký tự dữ liệu được thể hiện bằng 10 bit.
6.3.3. Mode chữ số
Mode chữ số mã hóa dữ liệu từ một tập 45 ký tự, tức là: 10 số (0 đến 9) (các giá trị byte từ 30HEX đến 39HEX ), 26 ký tự chữ cái (A đến Z) (các giá trị byte từ 41HEX đến 5AHEX ), và 9 kí hiệu (dấu cách, $, %, *, +, -, ., /, :) (các giá trị byte tương ứng 20HEX, 24HEX, 25HEX, 2AHEX, 2BHEX, 2DHEX đến 2FHEX, 3AHEX ). Thông thường, 2 ký tự đầu vào được thể hiện bởi 11 bit.
Mode chữ số không có sẵn trong mã hình Micro QR code cỡ hình M1.
6.3.4. Mode byte
Trong mode này, dữ liệu được mã hóa ở mật độ 8 bit trên một ký tự.
Trong khi thực hiện ứng dụng đặc thù hoặc khi thực hiện mang tính quốc gia thuộc hệ thống đóng về QR code 2005, có thể quy định một bộ ký tự 8-bit khác cho mode byte, ví dụ như được quy định trong một phần phù hợp nào đó của ISO/IEC 8859. Tuy nhiên, khi quy định bộ ký tự khác, các bên có ý định đọc mã hình QR code 2005 yêu cầu được thông báo về bộ ký tự thích hợp trong quy định kỹ thuật ứng dụng đã biết hoặc bằng thỏa thuận song phương.
Mode byte không có sẵn trong mã hình Micro QR code cỡ hình M1 hoặc M2.
6.3.5. Mode Kanji
Mode Kanji mã hóa có hiệu quả các ký tự Kanji phù hợp với hệ thống Shift JIS dựa trên JIS X 0208. Các giá trị Shift JIS được dịch chuyển từ các giá trị JIS X 0208. Tham khảo JIS X 0208 để xem chi tiết sự thể hiện được mã hóa của Shift. Mỗi giá trị ký tự 2 byte được nén thành một từ mã nhị phân 13
Khi bộ ký tự quy định cho mode byte 8-bit sử dụng các giá trị byte thuộc phạm vi từ 81HEX đến 9FHEX và/ hoặc từ E0HEX đến EBHEX, có thể không có khả năng sử dụng mode Kanji một cách rõ ràng, vì các hệ thống đọc sẽ không có khả năng xác định từ dữ liệu đã được truyền đi xem các giá trị byte như vậy có phải là byte đầu của ký tự byte đôi hay không. Có thể đạt được một dòng bit ngắn hơn bằng cách sử dụng các quy tắc về nén mode Kanji khi một chuỗi phù hợp các giá trị byte xuất hiện trong dữ liệu (có nghĩa là các byte đầu thuộc phạm vi từ 81HEX đến 9FHEX và/ hoặc từ E0HEX đến EBHEX tiếp đến là các byte theo sau thuộc phạm vi từ 40HEX đến FCHEX loại trừ 7FHEX hoặc EBHEX tiếp đến là 40HEX đến BFHEX. Hình H.1 minh họa bằng đồ thị các phối hợp byte nói trên.
Mode Kanji không có sẵn trong mã hình Micro QR code cỡ hình M1 hoặc M2.
6.3.6. Các mode hỗn hợp
Mã hình QR code 2005 có thể chứa các chuỗi dữ liệu kết hợp với bất kì mode nào được mô tả trong 6.3.1 đến 6.3.8. Mã hình Micro QR code có thể chứa các chuỗi dữ liệu kết hợp với bất kì mode nào sẵn có cho cỡ mã hình đã biết và được mô tả trong 6.3.2 đến 6.3.6.
Tham khảo Phụ lục J xem hướng dẫn về việc chọn phương thức hiệu quả nhất để thể hiện một dòng dữ liệu đầu vào cho trước theo nhiều mode trong mã hình QR code, và tham khảo Phụ lục J.3 xem các cỡ hình sẵn có của mã hình Micro QR code đối với các phối hợp dữ liệu đã cho theo 2 mode.
6.3.7. Mode kết nối có cấu trúc
Mode kết nối có cấu trúc được sử dụng để chia dữ liệu mã hóa từ một gói tin vào một số mã hình QR code. Tất cả các mã cần được đọc và gói tin dữ liệu có thể được tái lập theo thứ tự chính xác. Phần đầu kết nối có cấu trúc được mã hóa trong mỗi mã hình để xác định độ dài của chuỗi và vị trí mã hình trong chuỗi, kiểm soát xem các mã hình được đọc có ở cùng một gói tin hay không. Tham khảo Điều 7 để xem chi tiết về việc mã hóa trong mode này.
Mode kết nối có cấu trúc không có sẵn đối với mã hình Micro QR code.
6.3.8. Mode FNC 1
Mode FNC 1 được sử dụng cho những gói tin chứa các dạng dữ liệu đặc thù. Trong “vị trí đầu tiên”, nó chỉ rõ dữ liệu được định dạng theo Quy định kỹ thuật của GS1. Trong “vị trí thứ hai”, nó chỉ rõ dữ liệu được định dạng theo ứng dụng của ngành công nghiệp đặc thù đã thống nhất trước đó với AIM quốc tế. Mode FNC1 áp dụng cho toàn bộ mã hình và không chịu ảnh hưởng của các chỉ báo mode theo sau.
CHÚ THÍCH “vị trí đầu tiên” và “vị trí thứ hai” không chỉ vị trí trên thực tế mà dựa trên các vị trí của ký tự trong mã vạch GS1-128, khi được sử dụng theo cách tương đương.
Mode FNC1 không có sẵn đối với mã hình Micro QR code.
6.4. Mã hóa dữ liệu
6.4.1. Chuỗi dữ liệu
Dữ liệu đầu vào được chuyển đổi thành một dòng bit bao gồm một hoặc nhiều đoạn, mỗi đoạn ở trong một mode riêng rẽ. Trong ECI mặc định, dòng bit được bắt đầu với chỉ báo mode đầu tiên. Nếu ECI đầu tiên khác với ECI mặc định, dòng bit sẽ bắt đầu với phần đầu của ECI theo sau bởi đoạn đầu tiên đã biết.
Phần đầu của ECI (nếu có) bao gồm:
– Chỉ báo mode ECI (4 bit)
– Mã hiệu ECI (8,16 hay 24 bit)
Phần đầu của ECI bắt đầu với bit đầu tiên (quan trọng nhất) của chỉ báo mode ECI và kết thúc với bit cuối cùng (ít quan trọng nhất) của mã hiệu ECI.
Phần còn lại của dòng bit sau đó sẽ được tạo bởi các đoạn, mỗi đoạn bao gồm:
– Chỉ báo mode
– Chỉ dấu đếm ký tự
– Dòng bit dữ liệu
Mỗi đoạn mode bắt đầu với bit đầu tiên (quan trọng nhất) của chỉ báo mode và kết thúc với bit cuối cùng (ít quan trọng nhất) của dòng bit dữ liệu. Sẽ không có dấu phân cách rõ ràng giữa các đoạn vì độ dài của chúng được xác định rõ ràng theo nguyên tắc của mode đang được sử dụng và số ký tự dữ liệu đầu vào.
Để mã hóa một chuỗi dữ liệu đầu vào theo một mode cho trước, phải tiến hành theo các bước đã được chỉ rõ ở 6.4.2 đến 6.4.7. Bảng 2 quy định chỉ báo mode cho mỗi mode. Bảng 3 định rõ độ dài của chỉ dấu đếm ký tự, chỉ dấu này khác nhau tùy theo mode và cỡ của mã hình đang sử dụng.
Bảng 2 – Chỉ báo mode đối với QR code 2005
Mode |
Mã hình QR code |
Mã hình Micro QR code |
|||
Cỡ hình |
Tất cả |
M1 |
M2 |
M3 |
M4 |
Độ dài của chỉ báo mode (bit) |
4 |
0 |
1 |
2 |
3 |
ECI |
0111 |
n/a |
n/a |
n/a |
n/a |
Số |
0001 |
n/a |
0 |
00 |
000 |
Chữ số |
0010 |
n/a |
1 |
01 |
001 |
Byte |
0100 |
n/a |
n/a |
10 |
010 |
Kanji |
1000 |
n/a |
n/a |
11 |
011 |
Kết nối có cấu trúc |
0011 |
n/a |
n/a |
n/a |
n/a |
FNC 1 |
0101 (Vị trí đầu tiên) 1001 (Vị trí thứ hai) |
n/a |
n/a |
n/a |
n/a |
Dấu kết thúc (Kết thúc gói tin) a |
0000 |
000 |
00000 |
0000000 |
000000000 |
a Dấu kết thúc không phải là chỉ báo mode như vậy. |
Bảng 3 – Số bit trong chỉ dấu đếm ký tự đối với QR code 2005
Cỡ hình |
Mode số |
Mode chữ số |
Mode byte |
Mode Kanji |
M1 |
3 |
n/a |
n/a |
n/a |
M2 |
4 |
3 |
n/a |
n/a |
M3 |
5 |
4 |
4 |
3 |
M4 |
6 |
5 |
5 |
4 |
1 đến 9 |
10 |
9 |
8 |
8 |
10 đến 26 |
12 |
11 |
16 |
10 |
27 đến 40 |
14 |
13 |
16 |
12 |
Đoạn cuối của dữ liệu trong một mã hình hoàn chỉnh được chỉ ra bởi dấu kết thúc bao gồm từ 3 đến 9 bit 0 (xem Bảng 2), được bỏ qua hoặc viết tắt nếu dung lượng còn lại của mã hình sau khi dòng bit dữ liệu nhỏ hơn 4 bit. Dấu kết thúc không phải là một chỉ báo mode như vậy.
6.4.2. Mode phương thức dịch kênh mở rộng (ECI)
Mode này, được sử dụng để mã hóa dữ liệu theo các cách dịch nghĩa khác nhau của các giá trị byte (ví dụ, các bộ ký tự khác nhau) phù hợp với quy định kĩ thuật AIM ECI, là quy định về quá trình tiền xử lý loại dữ liệu này, được kích hoạt bởi việc sử dụng chỉ báo mode 0111.
Phương thức dịch kênh mở rộng chỉ có thể được sử dụng bởi các máy đọc có khả năng chuyển mã phân định mã hình. Những máy đọc không thể chuyển mã phân định mã hình thì cũng sẽ không thể chuyển dữ liệu từ bất kỳ mã hình nào có chứa ECI.
Dữ liệu ECI đầu vào phải được xử lý bởi hệ thống mã hóa như là một loạt các giá trị byte.
Dữ liệu trong chuỗi ECI có thể được mã hóa theo bất kỳ chế độ nào hoặc theo những chế độ cho phép mã hóa giá trị byte của dữ liệu một cách hiệu quả nhất, không kể đến mức độ quan trọng của chúng. Ví dụ: Một chuỗi byte trong khoảng từ 30HEX đến 39HEX có thể được mã hóa theo chế độ số (xem 6.4.3) như là một chuỗi số từ 0 đến 9 tuy rằng nó có thể không thực sự đại diện cho dữ liệu số. Để xác định được giá trị của chỉ dấu đếm ký tự, phải sử dụng một số byte (hoặc, trong chế độ Kanji, một số cặp byte).
6.4.2.1. Mã hiệu ECI
Mỗi phương thức dịch kênh mở rộng được gán mã hiệu bằng một số có 6 chữ số, mã số này sẽ được mã hóa vào mã hình QR code 2005 thành một, hai hoặc ba từ mã đầu tiên theo sau chỉ báo mode ECI. Nguyên tắc mã hóa được chỉ rõ trong Bảng 4. Mã hiệu ECI xuất hiện trong dữ liệu được mã hóa như ký tự 5CHEX (ký hiệu \ hay dấu gạch chéo ngược trong ISO/IEC 8859-1, ký hiệu ¥ hay Yên trong JIS8) theo sau bởi số gán có 6 chữ số. Khi ký tự 5CHEX mang giá trị đúng, nó phải được nhân đôi trong dòng dữ liệu trước khi mã hóa vào mã hình mà giao thức ECI áp dụng.
Khi bắt gặp ký tự 5CHEX xuất hiện đơn độc trong dữ liệu nhập vào máy giải mã, một chỉ báo mode ECI sẽ được chèn vào theo sau bởi mã hiệu ECI. Khi bắt gặp ký tự 5CHEX đôi, nó sẽ được mã hóa thành hai byte 5CHEX.
Trong quá trình giải mã, mẫu nhị phân của từ mã hiệu ECI đầu tiên (tức là từ mã tiếp sau chỉ báo mode trong mode ECI), xác định độ dài của chuỗi mã hiệu ECI. Số các bit 1 trước bit 0 đầu tiên chỉ rõ số từ mã bổ sung sau khi bit 0 đầu tiên được sử dụng để đại diện cho số gán ECI. Chuỗi bit sau bit 0 đầu tiên là dãy nhị phân đại diện cho số gán ECI. Phép gán ECI đã được đánh số thấp hơn có thể được mã hóa theo nhiều cách nhưng khuyến khích cách mã hóa ngắn nhất.
Bảng 4 – Mã hóa số gán ECI
Giá trị gán ECI |
Số từ mã |
Các giá trị từ mã |
000000 đến 000127 |
1 |
0bbbbbbb |
000000 đến 016383 |
2 |
10bbbbbb bbbbbbbb |
000000 đến 999999 |
3 |
110bbbbb bbbbbbbb bbbbbbbb |
Nơi nào có b…b là giá trị nhị phân của số gán ECI |
VÍ DỤ
Giả sử dữ liệu được mã hóa bằng tiếng Hy Lạp, sử dụng bộ ký tự ISO 8859-7 (ECI 000009) theo mã hình cỡ 1 – H
Dữ liệu được mã hóa: | \000009ABGDE (các giá trị ký tự A1HEX, A2HEX, A3HEX, A4HEX, A5HEX) |
Chuỗi bit trong mã hình: | |
Chỉ báo mode ECI: | 0111 |
Số gán ECI (000009): | 00001001 |
Chỉ báo mode (byte): | 0100 |
Chỉ dấu đếm ký tự (5): | 00000101 |
Dữ liệu: | 10100001 10100010 10100011 10100100 10100101 |
Dòng bit cuối cùng: | 0111 00001001 0100 00000101 10100001 10100010 1010011 10100100 10100101 |
Xem ví dụ về việc chuyển dữ liệu tiếp sau việc giải mã ở 13.3. |
6.4.2.2. ECI đa bội (Multiple ECIs)
Tham khảo quy định kỹ thuật AIM ECI về những quy tắc xác định ảnh hưởng của mã hiệu ECI tiếp sau trong đoạn dữ liệu ECI. Ví dụ, dữ liệu áp dụng bộ ký tự ECI có thể được mã hóa hoặc nén bằng một bộ ECI phi ký tự, ECI này có thể cùng tồn tại với ECI ban đầu hoặc bộ ký tự ECI thứ hai có tác dụng ngừng ECI thứ nhất và bắt đầu một phân đoạn ECI mới. Mã hiệu ECI xuất hiện ở đâu trong dữ liệu, nơi đó phải được mã hóa vào mã hình QR code 2005 phù hợp với 6.4.2.1 và phải bắt đầu một đoạn mode mới.
6.4.2.3. Các ECI và kết nối có cấu trúc
Bất cứ (các) ECI đã được kích hoạt nào cũng phải áp dụng các quy tắc đã được định rõ ở trên và theo quy định kỹ thuật AIM ECI cho đến phần cuối của dữ liệu đã được mã hóa hoặc khi có sự thay đổi về ECI (được báo hiệu bởi chỉ báo mode 0111). Nếu dữ liệu đã được mã hóa theo (các) ECI mở rộng thành hai hoặc nhiều mã hình trong mode kết nối có cấu trúc, thì sẽ cần phải cung cấp phần đầu ECI bao gồm chỉ báo mode ECI và số mã hiệu ECI cho mỗi ECI được sử dụng, tiếp ngay sau phần đầu của kết nối có cấu trúc, ở các mã hình tiếp sau nơi ECI vẫn tiếp tục được sử dụng.
6.4.3. Mode số
Dòng dữ liệu đầu vào được chia thành các nhóm 3 số và mỗi nhóm được chuyển đổi thành dạng nhị phân tương đương 10 bit. Nếu số các con số đầu vào không phải là bội số của 3, thì 1 hoặc 2 con số cuối sẽ được chuyển đổi tương ứng thành 4 hoặc 7 bit. Dữ liệu nhị phân sau đó sẽ được nối với nhau và gắn chỉ báo mode và chỉ dấu đếm ký tự ở đầu. Chỉ báo mode trong chế độ số hoặc là có 4 bit đối với mã hình QR code hoặc là có số bit như quy định ở Bảng 2 đối với mã hình Micro QR code và chỉ dấu đếm ký tự có số bit như quy định ở Bảng 3. Số ký tự dữ liệu đầu vào được chuyển đổi thành dạng nhị phân tương đương và được thêm vào như là chỉ dấu đếm ký tự sau chỉ báo mode và trước chuỗi dữ liệu nhị phân.
VÍ DỤ 1 (đối với mã hình cỡ 1-H)
Dữ liệu đầu vào: | 01234567 | |
1. Chia thành các nhóm 3 số: | 012 345 67 | |
2. Chuyển đổi mỗi nhóm thành dạng nhị phân tương đương: | 012 → 0000001100 | |
345 → 0101011001 | ||
67 → 1000011 | ||
3. Nối dữ liệu nhị phân thành chuỗi: | 0000001100 0101011001 1000011 | |
4. Chuyển đổi chỉ dấu đếm ký tự thành dạng nhị phân(10 bits đối với cỡ hình 1-H): | ||
Số ký tự dữ liệu đầu vào | 8 → 0000001000 | |
5. Thêm chỉ báo mode 0001 và chỉ dấu đếm ký tự vào dữ liệu nhị phân: | ||
0001 0000001000 0000001100 0101011001 1000011 |
VÍ DỤ 2 (cho mã hình Micro QR code cỡ M3-M)
Dữ liệu đầu vào: | 0123456789012345 |
1. Chia thành các nhóm 3 số: | 012 345 678 901 234 5 |
2. Chuyển đổi mỗi nhóm thành dạng nhị phân tương đương: | 012 = 0000001100 |
345 = 0101011001 | |
678 = 1010100110 | |
901 = 1110000101 | |
234 = 0011101010 | |
5 = 0101 | |
3. Nối dữ liệu nhị phân thành chuỗi | |
0000001100 0101011001 1010100110 1110000101 0011101010 0101 |
|
4. Chuyển đổi chỉ dấu đếm ký tự thành dạng nhị phân (5 bit đối với cỡ hình M3-M) | |
Số ký tự dữ liệu đầu vào: 16 = 10000 |
|
5. Thêm chỉ báo mode (00 đối với cỡ hình M3-M) và chỉ dấu đếm ký tự vào dữ liệu nhị phân: | |
00 1000 0000001100 0101011001 1010100110 1110000101 0011101010 0101 |
Đối với bất kỳ số ký tự dữ liệu nào, độ dài của dòng bit trong mode số cho trước được tính theo công thức sau:
B = M + C+ 10(D DIV 3) + R
trong đó:
B = số bit trong dòng bit
M = số bit trong chỉ báo mode (4 đối với mã hình QR code, hoặc như được nêu trong Bảng 2 đối với mã hình Micro QR code)
C = số bit trong chỉ dấu đếm ký tự (từ Bảng 3)
D = số ký tự dữ liệu đầu vào
R = 0 nếu (D MOD 3)= 0
R = 4 nếu (D MOD 3)= 1
R = 7 nếu (D MOD 3)= 2
6.4.4. Mode chữ số
Mỗi ký tự dữ liệu đầu vào được gán cho một giá trị ký tự V từ 0 đến 44 trong Bảng 5.
Bảng 5 – Bảng mã hóa/ giải mã đối với mode chữ số
Ký tự |
Giá Trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
Ký tự |
Giá trị |
0 |
0 |
6 |
6 |
C |
12 |
I |
18 |
O |
24 |
U |
30 |
Dấu cách |
36 |
. |
42 |
1 |
1 |
7 |
7 |
D |
13 |
J |
19 |
P |
25 |
V |
31 |
$ |
37 |
/ |
43 |
2 |
2 |
8 |
8 |
E |
14 |
K |
20 |
Q |
26 |
W |
32 |
% |
38 |
: |
44 |
3 |
3 |
9 |
9 |
F |
15 |
L |
21 |
R |
27 |
X |
33 |
* |
39 |
|
|
4 |
4 |
A |
10 |
G |
16 |
M |
22 |
S |
28 |
Y |
34 |
+ |
40 |
|
|
5 |
5 |
B |
11 |
H |
17 |
N |
23 |
T |
29 |
Z |
35 |
– |
41 |
|
|
Các ký tự dữ liệu đầu vào được chia thành những nhóm hai ký tự được mã hóa thành mã nhị phân 11 bit. Giá trị ký tự của ký tự đầu tiên được nhân với 45 và cộng với giá trị ký tự của số thứ hai. Tổng đó sẽ được chuyển đổi thành số nhị phân 11 bit. Nếu số ký tự dữ liệu đầu vào không chia hết cho 2, giá trị ký tự của ký tự cuối cùng sẽ được mã hóa thành số nhị phân 6 bit. Dữ liệu nhị phân sau đó sẽ được nối lại và gắn chỉ báo mode và chỉ dấu đếm ký tự ở đầu. Chỉ báo mode trong chế độ chữ số hoặc là có 4 bit đối với mã hình QR code hoặc là có số bit như được quy định trong Bảng 2 đối với mã hình Micro QR code, và chỉ dấu đếm ký tự có số bit như được quy định trong Bảng 3. Số ký tự dữ liệu đầu vào được chuyển đổi thành dạng nhị phân tương đương và được thêm vào làm chỉ dấu đếm ký tự sau chỉ báo Mode và trước chuỗi dữ liệu nhị phân.
Trong mã hình mode FNC1, ký tự FNC1 có thể xuất hiện trong dữ liệu đã biết. Nó được thể hiện theo mode chữ số bằng ký tự %. Tham khảo 6.4.8.1, 6.4.8.2 và 13.4 để biết thêm chi tiết về việc mã hóa và chuyển giao của FNC1 và %.
VÍ DỤ (cho mã hình cỡ 1-H)
Dữ liệu đầu vào: | AC-42 |
1. Xác định giá trị ký tự theo Bảng 5: | AC-42 → (10,12,41,4,2) |
2. Chia kết quả thành nhóm 2 giá trị thập phân: | (10,12) (41,4) (2) |
3. Chuyển đổi mỗi nhóm thành dạng nhị phân tương đương 11 bit: | |
(10,12) 10*45+12 → 462 → 00111001110
(41,4) 41*45+4 →1849 → 11100111001 (2) → 2 → 000010 |
|
4. Nối dữ liệu nhị phân thành chuỗi: | 00111001110 11100111001 000010 |
5. Chuyển đổi chỉ dấu đếm ký tự thành nhị phân (9 bit cho cỡ hình 1-H). | |
Số ký tự dữ liệu đầu vào: |
5 → 000000101 |
6. Thêm chỉ báo mode 0010 và chỉ dấu đếm ký tự vào dữ liệu nhị phân: | |
0010 000000101 00111001110 11100111001 000010 |
Với bất kỳ số ký tự dữ liệu nào, độ dài của dòng bit theo chế độ chữ số được tính theo công thức sau:
B = M + C+11 (D DIV 2) + 6(D MOD 2)
trong đó:
B = số bit trong dòng bit
M = số bit trong chỉ báo mode (4 đối với mã hình QR code, hoặc như được nêu trong Bảng 2 đối với mã hình Micro QR code)
C = số bit trong chỉ dấu đếm ký tự (từ Bảng 3)
D = số ký tự dữ liệu đầu vào
6.4.5. Mode byte
Trong mode này, một từ mã 8 bit trực tiếp thể hiện giá trị byte của ký tự dữ liệu đầu vào, tức là mật độ 8 bit/1 ký tự.
Bảng 6 – Bảng mã hóa/ giải mã đối với bộ ký tự lSO/IEC 8859-1
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
Byte |
Char. |
0 |
NUL |
32 |
space |
64 |
@ |
96 |
` |
128 |
|
160 |
NBSP |
192 |
À |
224 |
à |
1 |
SOH |
33 |
! |
65 |
A |
97 |
a |
129 |
|
161 |
¡ |
193 |
Á |
225 |
á |
2 |
STX |
34 |
“ |
66 |
B |
98 |
b |
130 |
|
162 |
¢ |
194 |
 |
226 |
â |
3 |
ETX |
35 |
# |
67 |
C |
99 |
c |
131 |
|
163 |
£ |
195 |
à |
227 |
ã |
4 |
EOT |
36 |
$ |
68 |
D |
100 |
d |
132 |
|
164 |
¤ |
196 |
Ä |
228 |
ä |
5 |
ENQ |
37 |
% |
69 |
E |
101 |
e |
133 |
|
165 |
¥ |
197 |
Å |
229 |
å |
6 |
ACK |
38 |
& |
70 |
F |
102 |
f |
134 |
|
166 |
¦ |
198 |
Æ |
230 |
æ |
7 |
BEL |
39 |
‘ |
71 |
G |
103 |
g |
135 |
|
167 |
§ |
199 |
Ç |
231 |
ç |
8 |
BS |
40 |
( |
72 |
H |
104 |
h |
136 |
|
168 |
¨ |
200 |
È |
232 |
è |
9 |
HT |
41 |
) |
73 |
I |
105 |
I |
137 |
|
169 |
© |
201 |
É |
233 |
é |
10 |
LF |
42 |
* |
74 |
J |
106 |
j |
138 |
|
170 |
ª |
202 |
Ê |
234 |
ê |
11 |
VT |
43 |
+ |
75 |
K |
107 |
k |
139 |
|
171 |
« |
203 |
Ë |
235 |
ë |
12 |
FF |
44 |
, |
76 |
L |
108 |
I |
140 |
|
172 |
¬ |
204 |
Ì |
236 |
ì |
13 |
CR |
45 |
– |
77 |
M |
109 |
m |
141 |
|
173 |
SHY |
205 |
Í |
237 |
í |
14 |
SO |
46 |
. |
78 |
N |
110 |
n |
142 |
|
174 |
® |
206 |
Î |
238 |
î |
15 |
SI |
47 |
/ |
79 |
O |
111 |
o |
143 |
|
175 |
¯ |
207 |
Ï |
239 |
ï |
16 |
DLE |
48 |
0 |
80 |
P |
112 |
p |
144 |
|
176 |
° |
208 |
Ð |
240 |
ð |
17 |
DC1 |
49 |
1 |
81 |
Q |
113 |
q |
145 |
|
177 |
± |
209 |
Ñ |
241 |
ñ |
18 |
DC2 |
50 |
2 |
82 |
R |
114 |
r |
146 |
|
178 |
² |
210 |
Ò |
242 |
ò |
19 |
DC3 |
51 |
3 |
83 |
S |
115 |
s |
147 |
|
179 |
³ |
211 |
Ó |
243 |
ó |
20 |
DC4 |
52 |
4 |
84 |
T |
116 |
t |
148 |
|
180 |
´ |
212 |
Ô |
244 |
ô |
21 |
NAK |
53 |
5 |
85 |
U |
117 |
u |
149 |
|
181 |
µ |
213 |
Õ |
245 |
õ |
22 |
SYN |
54 |
6 |
86 |
V |
118 |
v |
150 |
|
182 |
¶ |
214 |
Ö |
246 |
ö |
23 |
ETB |
55 |
7 |
87 |
W |
119 |
w |
151 |
|
183 |
· |
215 |
× |
247 |
÷ |
24 |
CAN |
56 |
8 |
88 |
X |
120 |
x |
152 |
|
184 |
¸ |
216 |
Ø |
248 |
ø |
25 |
EM |
57 |
9 |
89 |
Y |
121 |
y |
153 |
|
185 |
¹ |
217 |
Ù |
249 |
ù |
26 |
SUB |
58 |
: |
90 |
Z |
122 |
z |
154 |
|
186 |
º |
218 |
Ú |
250 |
ú |
27 |
ESC |
59 |
; |
91 |
[ |
123 |
{ |
155 |
|
187 |
» |
219 |
Û |
251 |
û |
28 |
FS |
60 |
< |
92 |
\ |
124 |
I |
156 |
|
188 |
¼ |
220 |
Ü |
252 |
ü |
29 |
GS |
61 |
= |
93 |
] |
125 |
} |
157 |
|
189 |
½ |
221 |
Ý |
253 |
ý |
30 |
RS |
62 |
> |
94 |
^ |
126 |
~ |
158 |
|
190 |
¾ |
222 |
Þ |
254 |
þ |
31 |
US |
63 |
? |
95 |
_ |
127 |
DEL |
159 |
|
191 |
¿ |
223 |
ß |
255 |
ÿ |
CHÚ THÍCH 1 Trong bộ ký tự JIS8 (xem Bảng H.1), các giá trị byte từ 80HEX đến 9FHEX và từ E0HEX đến FFHEX là các giá trị không được cấp nhưng được dự trữ lại. Một vài giá trị này được sử dụng làm byte đầu tiên trong bộ ký tự Shift JIS (xem Bảng H.2) và có thể được sử dụng để phân biệt giữa các bộ ký tự JIS8 và Shift JIS, hoặc để tạo thuận lợi cho việc thực hiện nén mode Kanji. JIS X 0208 nêu chi tiết về sự thể hiện được mã hóa của shift.
CHÚ THÍCH 2 Các giá trị byte từ 00HEX đến 9FHEX trong bộ ký tự JIS8 tương ứng với ISO/IEC 8859-1 và ISO/IEC 646 IRV, trừ các giá trị 5CHEX và 7EHEX.
Dữ liệu nhị phân sau đó được nối với nhau và gắn chỉ báo mode và chỉ dấu đếm ký tự ở đầu. Chỉ báo mode trong mode byte hoặc là có 4 bit đối với mã hình QR code hoặc là có số bit như quy định ở Bảng 2 đối với mã hình Micro QR code và chỉ dấu đếm ký tự có số bit như quy định ở Bảng 3. Số ký tự dữ liệu đầu vào được chuyển đổi thành dạng nhị phân tương đương và được thêm vào sau chỉ báo mode và trước chuỗi dữ liệu nhị phân.
Với bất kì số ký tự dữ liệu nào, độ dài của dòng bit trong mode byte được tính theo công thức sau:
B = M + C + 8D
trong đó:
B = số bit trong dòng bit
M = số bit trong chỉ báo mode (4 bit đối với mã hình QR code hoặc là có số bit như quy định ở Bảng 2 đối với mã hình Micro QR code)
C = số bit trong chỉ dấu đếm ký tự (từ Bảng 3)
D = số ký tự dữ liệu đầu vào.
6.4.6. Mode Kanji
Trong hệ thống Shift JIS, các ký tự Kanji được thể hiện bằng một tổ hợp 2 byte. Các giá trị byte này được dịch chuyển từ các giá trị JIS X 0208. Tham khảo JIS X 0208 để xem chi tiết sự thể hiện Shift mã hóa. Các ký tự dữ liệu đầu vào theo mode Kanji được rút gọn thành các từ mã nhị phân 13 bit được chỉ rõ dưới đây. Dữ liệu nhị phân sau đó được nối với nhau và gắn chỉ báo mode và chỉ dấu đếm ký tự ở đầu. Chỉ báo mode theo chế độ số hoặc là có 4 bit đối với mã hình QR code hoặc là có số bit như quy định ở Bảng 2 đối với mã hình Micro QR code và chỉ dấu đếm ký tự có số bit như quy định ở Bảng 3. Số ký tự dữ liệu đầu vào được chuyển đổi thành dạng nhị phân tương đương và được thêm vào thành chỉ dấu đếm ký tự sau chỉ báo mode và trước chuỗi dữ liệu nhị phân.
1. Với các ký tự có giá trị Shift JIS từ 8140HEX đến 9FFCHEX:
a) Lấy giá trị Shift JIS trừ đi 8140HEX ;
b) Nhân giá trị byte quan trọng nhất của kết quả vừa rồi với C0HEX ;
c) Cộng giá trị byte kém quan trọng nhất với kết quả của bước (b);
d) Chuyển đổi kết quả thành dòng nhị phân 13 bit.
2. Với các ký tự có giá trị Shift JIS từ E040HEX đến EBBFHEX ;
a) Lấy giá trị Shift JIS trừ đi C140HEX;
b) Nhân giá trị byte quan trọng nhất của kết quả vừa rồi với C0HEX;
c) Cộng giá trị byte kém quan trọng nhất với kết quả của bước (b);
d) Chuyển đổi kết quả thành dòng nhị phân 13 bit.
VÍ DỤ:
Ký tự đầu vào | ||
(Giá trị Shift JIS) | 935F | E4AA |
1. Trừ đi 8140 hay C140 | 935F – 8140 = 121F | E4AA – C140 = 236A |
2. Nhân giá trị byte quan trọng nhất với C0 | 12 x C0 = D80 | 23 x C0= 1A40 |
3. Cộng với giá trị byte ít quan trọng nhất | D80 + 1F= D9F | 1A40 + 6A= 1AAA |
4. Chuyển đổi thành nhị phân 13 bit | 0D9F → 0 1101 1001 1111 | 1AAA → 1 1010 1010 1010 |
3. Với tất cả các ký tự:
e) Đặt trước chuỗi nhị phân thể hiện các ký tự dữ liệu đầu vào một chỉ báo mode (từ Bảng 2) và một chỉ dấu đếm ký tự dạng nhị phân tương đương (số bit được quy định trong các Bảng);
Với bất kì số ký tự dữ liệu nào, độ dài của dòng bit trong mode Kanji được tính theo công thức sau:
B = M + C + 13D
trong đó:
B = số bit trong dòng bit
M = số bit trong chỉ báo mode (4 bit đối với mã hình QR code hoặc là có số bit như quy định ở Bảng 2 đối với mã hình Micro QR code)
C = số bit trong chỉ dấu đếm ký tự (từ Bảng 3)
D = số ký tự dữ liệu đầu vào.
6.4.7. Các mode hỗn hợp
Mã hình có thể tùy chọn chứa các chuỗi dữ liệu ở một chế độ và sau đó thay đổi chế độ nếu nội dung của dữ liệu yêu cầu, hoặc là có mục đích tăng mật độ mã hóa. Tham khảo Phụ lục J để xem hướng dẫn. Mỗi đoạn dữ liệu được mã hóa theo một mode phù hợp như đã chỉ ra ở 6.4.2 đến 6.4.6 với chỉ báo mode/ chỉ dấu đếm ký tự/ dữ liệu có cấu trúc cơ bản và tiếp ngay sau bài chỉ báo mode bắt đầu một đoạn tiếp theo. Hình 13 minh họa cho cấu trúc của dữ liệu bao gồm n đoạn.
Đoạn 1 |
Đoạn 2 |
…. |
Đoạn n |
|
||||||
Chỉ báo mode 1 |
Chỉ dấu đếm ký tự |
Dữ liệu |
Chỉ báo mode 2 |
Chỉ dấu đếm ký tự |
Dữ liệu |
……. |
Chỉ báo mode n |
Chỉ dấu đếm ký tự |
Dữ liệu |
Dấu kết thúc |
Hình 13 – Định dạng dữ liệu mode hỗn hợp
6.4.8. Mode FNC 1
Trong mã hình QR code, có hai chỉ báo mode được sử dụng cùng với những mode khác được nêu ở 6.3.1 đến 6.3.8 và 6.4.2 đến 6.4.7 để xác định mã hình mã hóa gói tin được định dạng theo ngành công nghiệp đặc thù hoặc theo các quy định kỹ thuật ứng dụng đã xác định từ trước. Những mode này (cùng với dữ liệu tham số liên quan) đứng trước (các) chỉ báo mode được sử dụng để mã hóa dữ liệu một cách hiệu quả. Khi sử dụng những chỉ báo mode này, bộ giải mã cần phải chuyển mã phân định mã hình theo quy định ở 13.2 và Phụ lục F.
6.4.8.1. FNC 1 ở vị trí đầu tiên
CHÚ THÍCH “vị trí đầu tiên” không được sử dụng theo nghĩa đen mà là tham chiếu mang tính lịch sử về vị trí của ký tự mã hình FNC1 trong mã vạch GS1-128.
Chỉ báo mode này xác định mã hình mã hóa dữ liệu được định dạng theo tiêu chuẩn về số phân định ứng dụng GS1. Để thực hiện mục tiêu này, nó chỉ được sử dụng một lần trong mã hình và được đặt ngay trước chỉ báo mode đầu tiên được sử dụng để mã hóa dữ liệu một cách hiệu quả (số, chữ số, byte hoặc Kanji), và đặt sau bất kỳ ECI hoặc phần đầu của kết nối có cấu trúc nào. Vị trí nào mà quy định kỹ thuật GS1 tìm thấy ký tự FNC1 (trong các mã hình khác có sử dụng ký tự đặc biệt này) được sử dụng làm dấu phân cách trường dữ liệu (tức là, ở đoạn cuối của trường dữ liệu có độ dài thay đổi), thì mã hình QR code 2005 phải sử dụng ký tự % trong mode chữ số hoặc ký tự GS (giá trị byte 1DHEX) trong mode byte để thực hiện chức năng này. Nếu ký tự % xuất hiện như là một phần của dữ liệu, nó phải được mã hóa là %%. Bộ giải mã bắt gặp % trong mã hình này phải chuyển nó thành giá trị 1DHEX của ASCII/JIS 8 và nếu gặp %% thì nó phải được chuyển thành một ký tự % đơn lẻ.
VÍ DỤ 1
Dữ liệu đầu vào: 0104912345123459 (Số phân định ứng dụng 01 = mã số vật phẩm GS1, độ dài cố định; dữ liệu: 04912345123459)
15970331 (Số phân định ứng dụng 15 = “Sử dụng trước ngày” có dạng YYMMDD, độ dài cố định; dữ liệu: 31 tháng 3 năm 1997)
30128 (Số phân định ứng dụng 30 = số lượng, độ dài thay đổi; dữ liệu: 128) (yêu cầu ký tự dấu phân cách)
10ABC123 (Số phân định ứng dụng 10 = số lô, độ dài thay đổi; dữ liệu: ABC123)
Dữ liệu được mã hóa:
01049123451234591597033130128%10ABC123
Chuỗi bit trong mã hình:
0101 (chỉ báo mode, FNC1 ở vị trí đầu tiên)
0001 (chỉ báo mode, mode số)
0000011101 (chỉ dấu đếm ký tự, 29)
< các bit dữ liệu đối với 01049123451234591597033130128>
0010 (chỉ báo mode, mode chữ số)
000001001 (chỉ dấu đếm ký tự, 9)
< các bit dữ liệu đối với %10ABC123>
Chuyển dữ liệu (xem 13.2 và Phụ lục F)
]Q301049123451234591597033130128<1 DHEX>10ABC123
VÍ DỤ 2 Mã hóa/ chuyển ký tự % trong dữ liệu:
Dữ liệu đầu vào: 123%
Mã hóa thành: 123%%
Chuyển thành: 123%
6.4.8.2. FNC1 ở vị trí thứ hai
CHÚ THÍCH “vị trí thứ hai” không được sử dụng theo nghĩa đen mà là tham chiếu mang tính lịch sử về vị trí của ký tự mã hình FNC1 trong mã vạch GS1-128.
Chỉ báo mode này xác định mã hình được định dạng theo ngành công nghiệp đặc thù hoặc theo quy định kĩ thuật ứng dụng đã thống nhất trước đó với AIM quốc tế. Theo ngay sau là một từ mã 1 byte có giá trị là giá trị của chỉ báo ứng dụng đã được gán để xác định quy định kỹ thuật mà AIM quốc tế quan tâm. Để thực hiện mục tiêu này, nó chỉ được sử dụng một lần trong mã hình và được đặt ngay trước chỉ báo mode đầu tiên để mã hóa dữ liệu một cách hiệu quả (số, chữ số, byte hoặc Kanji) và đặt sau bất kỳ ECI hoặc phần đầu kết nối có cấu trúc nào. Một chỉ báo ứng dụng có thể có dạng của bất kỳ ký tự chữ Latinh đơn lẻ nào trong tập hợp {a đến z, A đến Z} (đại diện bởi giá trị ASCII của ký tự cộng với 100) hay một số hai chữ số (đại diện trực tiếp bởi giá trị chữ số đó) và phải được bộ giải mã chuyển đi giống như ký tự đầu tiên hoặc hai ký tự đứng ngay trước dữ liệu. Vị trí nào mà quy định kỹ thuật ứng dụng tìm thấy ký tự FNC1 (trong các mã hình khác có sử dụng ký tự đặc biệt này) được sử dụng làm dấu phân cách trường dữ liệu, thì mã hình QR code 2005 phải sử dụng ký tự % trong mode chữ số hoặc ký tự GS (ASCII/JIS8 giá trị 1DHEX) trong mode byte để thực hiện chức năng này. Nếu ký tự % xuất hiện như là một phần của dữ liệu, nó phải được mã hóa là %%. Bộ giải mã bắt gặp % trong mã hình này phải chuyển nó thành giá trị 1DHEX của ASCII/JIS 8 và nếu gặp %% thì nó phải được chuyển thành một ký tự % đơn lẻ.
VÍ DỤ:
CHÚ THÍCH Chỉ báo ứng dụng 37 chưa được gán ở thời điểm công bố cho bất kỳ tổ chức nào và nội dung dữ liệu của ví dụ này là hoàn toàn tùy ý.
Chỉ dấu ứng dụng: 37
Dữ liệu đầu vào: AA1234BBB112text text text text<CR>
Chuỗi bit trong mã hình: 1001 (chỉ báo mode, FNC1 ở vị trí thứ hai)
00100101 (chỉ báo ứng dụng, 37)
0010 (chỉ báo mode, mode chữ số)
000001100 (chỉ dấu đếm ký tự, 12)
<các bit dữ liệu đối với AA1234BBB112>
0100 (chỉ báo mode, mode byte)
00010100 (chỉ dấu đếm ký tự, 20)
các bit dữ liệu đối với text text text text<CR>>
Chuyển dữ liệu: ]Q537AA1234BBB112text text text text<CR>
6.4.9. Dấu kết thúc
Đoạn cuối dữ liệu trong mã hình được báo hiệu bởi chuỗi dấu kết thúc của các bit 0, như đã quy định trong Bảng 2, được bổ sung vào dòng bit dữ liệu theo sau đoạn mode cuối cùng. Phải bỏ qua dấu kết thúc nếu dòng bit dữ liệu đã lấp đầy dung lượng của mã hình, hoặc được viết tắt nếu dung lượng còn lại của mã hình ít hơn 4 bit.
6.4.10. Chuyển đổi dòng bit thành từ mã
Các dòng bit phù hợp với mỗi đoạn mode phải được nối theo trật tự. Dấu kết thúc phải được bổ sung vào dòng bit hoàn chỉnh như quy định ở 6.4.9. Dòng bit gói tin kết quả sau đó phải được chia thành các từ mã. Tất cả các từ mã đều có độ dài 8 bit, ngoại trừ các từ mã đối với ký tự mã hình của dữ liệu cuối cùng trong mã hình Micro QR code cỡ hình M1 và M3 có độ dài 4 bit. Nếu độ dài dòng bit không kết thúc ở đường ranh giới của từ mã, các bit độn thêm với giá trị nhị phân 0 phải được thêm vào sau bit cuối cùng (bit ít quan trọng nhất) của dòng dữ liệu để mở rộng nó tới đường ranh giới của từ mã. Dòng bit của gói tin đã biết sau đó phải được mở rộng để lấp đầy dung lượng dữ liệu của mã hình phù hợp với cỡ hình và mức sửa lỗi, như đã quy định trong Bảng 8, bằng cách thêm lần lượt các từ mã độn 11101100 và 00010001. Đối với mã hình Micro QR code cỡ hình M1 và M3, từ mã của dữ liệu cuối cùng có độ dài 4 bit. Từ mã độn sử dụng trong vị trí ký tự mã hình thể hiện dữ liệu cuối cùng trong mã hình Micro QR code cỡ hình M1 và M3 phải được thể hiện là 0000. Một loạt các từ mã kết quả, chuỗi từ mã dữ liệu, sau đó được xử lý như quy định trong 6.5 để thêm các từ mã sửa lỗi vào gói tin. Trong một số cỡ hình nhất định của mã hình, có thể cần phải thêm 3, 4 hoặc 7 bit dư (tất cả có giá trị bằng 0) vào đoạn cuối của gói tin, sau từ mã sửa lỗi cuối cùng, để lấp đầy dung lượng mã hình một cách chính xác (xem Bảng 1).
Bảng 7- Số ký tự mã hình và dung lượng dữ liệu đầu vào đối với QR code 2005
Cỡ hình |
Mức sửa lỗi |
Số từ mã dữ liệu |
Số bit dữ liệu |
Dung lượng dữ liệu |
|||
Số |
Chữ số |
Byte |
Kanji |
||||
M1 |
Chỉ sửa lỗi |
3 |
20 |
5 |
– |
– |
– |
M2 |
L |
5 |
40 |
10 |
6 |
– |
– |
M |
4 |
32 |
8 |
5 |
– |
– |
|
M3 |
L |
11 |
84 |
23 |
14 |
9 |
6 |
M |
9 |
68 |
18 |
11 |
7 |
4 |
|
M4 |
L |
16 |
128 |
35 |
21 |
15 |
9 |
M |
14 |
112 |
30 |
18 |
13 |
8 |
|
Q |
10 |
80 |
21 |
13 |
9 |
5 |
|
1 |
L |
19 |
152 |
41 |
25 |
17 |
10 |
M |
16 |
128 |
34 |
20 |
14 |
8 |
|
Q |
13 |
104 |
27 |
16 |
11 |
7 |
|
H |
9 |
72 |
17 |
10 |
7 |
4 |
|
2 |
L |
34 |
272 |
77 |
47 |
32 |
20 |
M |
28 |
224 |
63 |
38 |
26 |
16 |
|
Q |
22 |
176 |
48 |
29 |
20 |
12 |
|
H |
16 |
128 |
34 |
20 |
14 |
8 |
|
3 |
L |
55 |
440 |
127 |
77 |
53 |
32 |
M |
44 |
352 |
101 |
61 |
42 |
26 |
|
Q |
34 |
272 |
77 |
47 |
32 |
20 |
|
H |
26 |
208 |
58 |
35 |
24 |
15 |
|
4 |
L |
80 |
640 |
187 |
114 |
78 |
48 |
M |
64 |
512 |
149 |
90 |
62 |
38 |
|
Q |
48 |
384 |
111 |
67 |
46 |
28 |
|
H |
36 |
288 |
82 |
50 |
34 |
21 |
|
5 |
L |
108 |
864 |
255 |
154 |
106 |
65 |
M |
86 |
688 |
202 |
122 |
84 |
52 |
|
Q |
62 |
496 |
144 |
87 |
60 |
37 |
|
H |
46 |
368 |
106 |
64 |
44 |
27 |
|
6 |
L |
136 |
1 088 |
322 |
195 |
134 |
82 |
M |
108 |
864 |
255 |
154 |
106 |
65 |
|
Q |
76 |
608 |
178 |
108 |
74 |
45 |
|
H |
60 |
480 |
139 |
84 |
58 |
36 |
|
7 |
L |
156 |
1 248 |
370 |
224 |
154 |
95 |
M |
124 |
992 |
293 |
178 |
122 |
75 |
|
Q |
88 |
704 |
207 |
125 |
86 |
53 |
|
H |
66 |
528 |
154 |
93 |
64 |
39 |
|
8 |
L |
194 |
1 552 |
461 |
279 |
192 |
118 |
M |
154 |
1 232 |
365 |
221 |
152 |
93 |
|
Q |
110 |
880 |
259 |
157 |
108 |
66 |
|
H |
86 |
688 |
202 |
122 |
84 |
52 |
|
9 |
L |
232 |
1 856 |
552 |
335 |
230 |
141 |
M |
182 |
1 456 |
432 |
262 |
180 |
111 |
|
Q |
132 |
1 056 |
312 |
189 |
130 |
80 |
|
H |
100 |
800 |
235 |
143 |
98 |
60 |
|
10 |
L |
274 |
2 192 |
652 |
395 |
271 |
167 |
M |
216 |
1 728 |
513 |
311 |
213 |
131 |
|
Q |
154 |
1 232 |
364 |
221 |
151 |
93 |
|
H |
122 |
976 |
288 |
174 |
119 |
74 |
|
11 |
L |
324 |
2 592 |
772 |
468 |
321 |
198 |
M |
254 |
2 032 |
604 |
366 |
251 |
155 |
|
Q |
180 |
1 440 |
427 |
259 |
177 |
109 |
|
H |
140 |
1 120 |
331 |
200 |
137 |
85 |
|
12 |
L |
370 |
2 960 |
883 |
535 |
367 |
226 |
M |
290 |
2 320 |
691 |
419 |
287 |
177 |
|
Q |
206 |
1 648 |
489 |
296 |
203 |
125 |
|
H |
158 |
1 264 |
374 |
227 |
155 |
96 |
|
13 |
L |
428 |
3 424 |
1 022 |
619 |
425 |
262 |
M |
334 |
2 672 |
796 |
483 |
331 |
204 |
|
Q |
244 |
1 952 |
580 |
352 |
241 |
149 |
|
H |
180 |
1 440 |
427 |
259 |
177 |
109 |
|
14 |
L |
461 |
3 688 |
1 101 |
667 |
458 |
282 |
M |
365 |
2 920 |
8 71 |
528 |
362 |
223 |
|
Q |
261 |
2 088 |
621 |
376 |
258 |
159 |
|
H |
197 |
1 576 |
468 |
283 |
194 |
120 |
|
15 |
L |
523 |
4 184 |
1 250 |
758 |
520 |
320 |
M |
415 |
3 320 |
991 |
600 |
412 |
254 |
|
Q |
295 |
2 360 |
703 |
426 |
292 |
180 |
|
H |
223 |
1 784 |
530 |
321 |
220 |
136 |
|
16 |
L |
589 |
4 712 |
1 408 |
854 |
586 |
361 |
M |
453 |
3 624 |
1 082 |
656 |
450 |
227 |
|
Q |
325 |
2 600 |
775 |
470 |
322 |
198 |
|
H |
253 |
2 024 |
602 |
365 |
250 |
154 |
|
17 |
L |
647 |
5 176 |
1548 |
938 |
644 |
397 |
M |
507 |
4 056 |
1212 |
734 |
504 |
310 |
|
Q |
367 |
2 936 |
876 |
531 |
364 |
224 |
|
H |
283 |
2 264 |
674 |
408 |
208 |
173 |
|
18 |
L |
721 |
5 768 |
1 725 |
1 046 |
718 |
442 |
M |
563 |
4 504 |
1 346 |
816 |
560 |
345 |
|
Q |
397 |
3 176 |
948 |
574 |
394 |
243 |
|
H |
313 |
2 504 |
746 |
452 |
310 |
191 |
|
19 |
L |
795 |
6 360 |
1 903 |
1 153 |
792 |
488 |
M |
627 |
5 016 |
1 500 |
909 |
624 |
384 |
|
Q |
445 |
3 560 |
1 063 |
644 |
442 |
272 |
|
H |
341 |
2 728 |
813 |
493 |
338 |
208 |
|
20 |
L |
861 |
6 888 |
2 061 |
1 249 |
858 |
528 |
M |
669 |
5 352 |
1 600 |
970 |
666 |
410 |
|
Q |
485 |
3 880 |
1 159 |
702 |
482 |
297 |
|
H |
385 |
3 080 |
919 |
557 |
382 |
235 |
|
21 |
L |
932 |
7 456 |
2 232 |
1 352 |
929 |
572 |
M |
714 |
5 712 |
1 708 |
1 035 |
711 |
438 |
|
Q |
512 |
4 096 |
1 224 |
742 |
509 |
314 |
|
H |
406 |
3 248 |
969 |
587 |
403 |
248 |
|
22 |
L |
1 006 |
8 048 |
2 409 |
1 460 |
1 003 |
618 |
M |
782 |
6 256 |
1 872 |
1 134 |
779 |
480 |
|
Q |
568 |
4 544 |
1 358 |
832 |
565 |
348 |
|
H |
442 |
3 536 |
1 056 |
640 |
439 |
270 |
|
23 |
L |
1 094 |
8 752 |
2 620 |
1 588 |
1 091 |
672 |
M |
860 |
6 880 |
2 059 |
1 248 |
857 |
528 |
|
Q |
614 |
4 912 |
1 468 |
890 |
611 |
376 |
|
H |
464 |
3 712 |
1 108 |
672 |
461 |
284 |
|
24 |
L |
1 174 |
9 392 |
2 812 |
1 704 |
1 171 |
721 |
M |
914 |
7 312 |
2 188 |
1 326 |
911 |
561 |
|
Q |
664 |
5 312 |
1 588 |
963 |
661 |
407 |
|
H |
514 |
4 112 |
1 228 |
744 |
511 |
315 |
|
25 |
L |
1 276 |
10 208 |
3 057 |
1 853 |
1 273 |
784 |
M |
1 000 |
8 000 |
2 395 |
1 451 |
997 |
614 |
|
Q |
718 |
5 744 |
1 718 |
1 041 |
715 |
440 |
|
H |
538 |
4 304 |
1 286 |
779 |
535 |
330 |
|
26 |
L |
1 370 |
10 960 |
3 283 |
1 990 |
1 367 |
842 |
M |
1 062 |
8 496 |
2 544 |
1 542 |
1 059 |
652 |
|
Q |
754 |
6 032 |
1 804 |
1 094 |
751 |
462 |
|
H |
596 |
4 768 |
1 425 |
864 |
593 |
365 |
|
27 |
L |
1 468 |
11 744 |
3 517 |
2 132 |
1 465 |
902 |
M |
1 128 |
9 024 |
2 701 |
1 637 |
1 125 |
692 |
|
Q |
808 |
6 464 |
1 933 |
1 172 |
805 |
496 |
|
H |
628 |
5 024 |
1 501 |
910 |
625 |
385 |
|
28 |
L |
1 531 |
12 248 |
3 669 |
2 223 |
1 528 |
940 |
M |
1 193 |
9 544 |
2 857 |
1 732 |
1 190 |
732 |
|
Q |
871 |
6 968 |
2 085 |
1 263 |
868 |
534 |
|
H |
661 |
5 288 |
1 581 |
958 |
658 |
405 |
|
29 |
L |
1 631 |
13 048 |
3 909 |
2 369 |
1 628 |
1 002 |
M |
1 267 |
10 136 |
3 035 |
1 839 |
1 264 |
778 |
|
Q |
911 |
7 288 |
2 181 |
1 322 |
908 |
559 |
|
H |
701 |
5 608 |
1 677 |
1 016 |
698 |
430 |
|
30 |
L |
1 735 |
13 880 |
4 158 |
2 520 |
1 732 |
1066 |
M |
1 373 |
10 984 |
3 289 |
1 994 |
1 370 |
843 |
|
Q |
985 |
7 880 |
2 358 |
1 429 |
982 |
604 |
|
H |
745 |
5 960 |
1 782 |
1 080 |
742 |
457 |
|
31 |
L |
1 843 |
14 744 |
4 417 |
2 677 |
1 840 |
1132 |
M |
1 455 |
11 640 |
3 486 |
2 113 |
1 452 |
894 |
|
Q |
1 033 |
8 264 |
2 473 |
1 499 |
1 030 |
634 |
|
H |
793 |
6 344 |
1 897 |
1 150 |
790 |
486 |
|
32 |
L |
1955 |
15 640 |
4 686 |
2 840 |
1 952 |
1201 |
M |
1541 |
12 328 |
3 693 |
2 238 |
1 538 |
947 |
|
Q |
1115 |
8 920 |
2 670 |
1 618 |
1 112 |
684 |
|
H |
845 |
6 760 |
2 022 |
1 226 |
842 |
518 |
|
33 |
L |
2 071 |
16 568 |
4 965 |
3 009 |
2 068 |
1 273 |
M |
1 631 |
13 048 |
3 909 |
2 369 |
1 628 |
1 002 |
|
Q |
1 171 |
9 368 |
2 805 |
1 700 |
1 168 |
719 |
|
H |
901 |
7 208 |
2 157 |
1 307 |
898 |
553 |
|
34 |
L |
2 191 |
17 528 |
5 253 |
3 183 |
2 188 |
1 347 |
M |
1 725 |
13 800 |
4 134 |
2 506 |
1 722 |
1 060 |
|
Q |
1 231 |
9 848 |
2 949 |
1 787 |
1 228 |
756 |
|
H |
961 |
7 688 |
2 301 |
1 394 |
958 |
590 |
|
35 |
L |
2 306 |
18 448 |
5 529 |
3 351 |
2 303 |
1 417 |
M |
1 812 |
14 496 |
4 343 |
2 632 |
1 809 |
1 113 |
|
Q |
1 286 |
10 288 |
3 081 |
1 867 |
1 283 |
790 |
|
H |
986 |
7 888 |
2 361 |
1 431 |
983 |
605 |
|
36 |
L |
2 434 |
19 472 |
5 836 |
3 537 |
2 431 |
1 496 |
M |
1 914 |
15 312 |
4 588 |
2 780 |
1 911 |
1 176 |
|
Q |
1 354 |
10 832 |
3 244 |
1 966 |
1 351 |
832 |
|
H |
1 054 |
8 432 |
2 524 |
1 530 |
1 051 |
647 |
|
37 |
L |
2 566 |
20 528 |
6 153 |
3 729 |
2 563 |
1 577 |
M |
1 992 |
15 936 |
4 775 |
2 894 |
1 989 |
1 224 |
|
Q |
1 426 |
11 408 |
3 417 |
2 071 |
1 423 |
876 |
|
H |
1 096 |
8 768 |
2 625 |
1 591 |
1 093 |
673 |
|
38 |
L |
2 702 |
21 616 |
6 479 |
3 927 |
2 699 |
1 661 |
M |
2 102 |
16 816 |
5 039 |
3 054 |
2 099 |
1 292 |
|
Q |
1 502 |
12 016 |
3 599 |
2 181 |
1 499 |
923 |
|
H |
1 142 |
9 136 |
2 735 |
1 658 |
1 139 |
701 |
|
39 |
L |
2 812 |
22 496 |
6 743 |
4 087 |
2 809 |
1 729 |
M |
2 216 |
17 728 |
5 313 |
3 220 |
2 213 |
1 362 |
|
Q |
1 582 |
12 656 |
3 791 |
2 298 |
1 579 |
972 |
|
H |
1 222 |
9 776 |
2 927 |
1 774 |
1 219 |
750 |
|
40 |
L |
2 956 |
23 648 |
7 089 |
4 296 |
2 953 |
1 817 |
M |
2 334 |
18 672 |
5 596 |
3 391 |
2 331 |
1 435 |
|
Q |
1 666 |
13 328 |
3 993 |
2 420 |
1 663 |
1 024 |
|
H |
1 276 |
10 208 |
3 057 |
1 852 |
1 273 |
784 |
CHÚ THÍCH 1 Tất cả các từ mã đều có độ dài 8 bit, ngoại trừ từ mã của dữ liệu cuối cùng đối với cỡ hình M1 và M3 có độ dài 4 bit.
CHÚ THÍCH 2 Số bit dữ liệu bao gồm cả các bit cho chỉ báo mode và chỉ dấu đếm ký tự.
6.5. Sửa lỗi
6.5.1. Dung lượng sửa lỗi
QR CODE 2005 sử dụng việc mã hóa kiểm soát lỗi RS để phát hiện và sửa lỗi. Một loạt từ mã sửa lỗi được tạo ra và thêm vào chuỗi từ mã dữ liệu để cho phép mã hình có thể chịu sự hư hỏng mà không mất dữ liệu. Có 4 mức sửa lỗi cho người sử dụng lựa chọn, như trình bày ở Bảng 8, tạo khả năng khôi phục lại một số lượng hư hỏng như sau:
Bảng 8 – Các mức sửa lỗi
Mức sửa lỗi |
% Dung lượng khôi phục (xấp xỉ) |
L |
7 |
M |
15 |
Q |
25 |
H |
30 |
Phụ lục K.2 nêu hướng dẫn về mức sửa lỗi phù hợp được áp dụng cho mã hình.
Mức sửa lỗi H là không sẵn có trong mã hình Micro QR code.
Các từ mã sửa lỗi có thể sửa hai loại từ mã bị lỗi, vết xóa (các từ mã bị lỗi ở những vị trí đã biết) và các lỗi (các từ mã bị lỗi ở những vị trí chưa biết). Vết xóa là một ký tự mã hình không quét được hoặc không giải mã được. Lỗi là một ký tự mã hình bị giải mã sai. Vì QR code 2005 là một mã hình có dạng ma trận, nên một sai sót khi chuyển đổi môđun từ tối thành sáng hoặc ngược lại sẽ dẫn đến sự giải mã nhầm ký tự mã hình bị ảnh hưởng tưởng như đúng nhưng lại là một từ mã khác. Sai lỗi như vậy gây ra dạng lỗi thay thế trong dữ liệu sẽ cần hai từ mã sửa lỗi để sửa nó.
Số vết xóa và lỗi có thể sửa được tính theo công thức sau đây:
e + 2 t ≤ d-p
trong đó:
e = số vết xóa
t = số lỗi
d = số từ mã sửa lỗi
p = số từ mã bảo vệ giải mã nhầm
Trong trường hợp chung, p = 0. Tuy nhiên, nếu phần lớn dung lượng sửa lỗi được sử dụng để sửa vết xóa thì sẽ tăng khả năng không phát hiện ra lỗi. Bất cứ khi nào số vết xóa lớn hơn một nửa số từ mã sửa lỗi, p = 3. Đối với các mã hình nhỏ có từ mã sửa lỗi nhỏ hơn 8, không được sử dụng phép sửa vết xóa (e = 0 và p > 0).
Ví dụ, trong mã hình cỡ 6-H có tổng cộng 172 từ mã, trong đó có 112 từ mã sửa lỗi (còn lại là 60 từ mã dữ liệu). 112 từ mã sửa lỗi này có thể sửa 56 lỗi giải mã nhầm hoặc lỗi thay thế, tức là 56/172 hay 32,6 % dung lượng mã hình.
Trong công thức trên, phải gán các giá trị sau cho p:
– p = 3 trong các mã hình cỡ 1-L và M2-L;
– p = 2 trong các mã hình cỡ 1-M, 2-L, M1, M2-M, M3-L và M4-L,
– p = 1 trong các mã hình cỡ 1-Q, 1-H và 3-L,
– p = 0 trong các trường hợp khác.
Khi p > 0 thì có p (tức là 1, 2 hay 3) từ mã đóng vai trò là các từ mã tìm lỗi và ngăn chặn sự chuyển dữ liệu từ các mã hình có số lỗi lớn hơn dung lượng sửa lỗi, e phải nhỏ hơn d/2. Ví dụ: trong mã hình cỡ 2-L, tổng số các từ mã là 44; trong đó có 34 từ mã dữ liệu và 10 từ mã sửa lỗi. Từ Bảng 9 có thể thấy rằng dung lượng sửa lỗi là 4 lỗi (khi e = 0). Thay thế vào công thức trên,
0 + (2 x 4) = 10 – 2
có nghĩa là sửa 4 lỗi chỉ cần 8 từ mã sửa lỗi; vì vậy hai từ mã sửa lỗi còn lại có thể tìm thêm các lỗi phụ khác (nhưng chưa chính xác) và mã hình sẽ không thể giải mã được nếu có nhiều hơn 4 lỗi.
Dựa vào cỡ hình và mức sửa lỗi, chuỗi từ mã dữ liệu phải được chia nhỏ thành một hoặc nhiều khối, thuật toán sửa lỗi phải được áp dụng riêng rẽ cho từng khối. Đối với mỗi cỡ hình và mức sửa lỗi, Bảng 9 liệt kê tổng số từ mã, tổng số từ mã sửa lỗi, cấu trúc và số khối sửa lỗi.
Nếu cần phải thêm các bit dư để lấp đầy các môđun còn lại trong dung lượng mã hình đối với các cỡ mã hình nhất định thì tất cả sẽ là các bit 0.
Bảng 9 – Các đặc tính sửa lỗi đối với QR code 2005
Cỡ hình |
Tổng số từ mã |
Mức sửa lỗi |
Số từ mã sửa lỗi |
Giá trị của p |
Số khối sửa lỗi |
Mã sửa lỗi trên mỗi khối (c, k, r)a |
M1 |
5 |
Chỉ phát hiện lỗi |
2 |
2 |
1 |
(5,3,0)b |
M2 |
10 |
L M |
5 6 |
3 2 |
1 1 |
(10,5,1)b (10,4,2)b |
M3 |
17 |
L M |
6 8 |
2 |
1 1 |
(17,11,2)b (17,9,4)b |
M4 |
24 |
L M Q |
8 10 14 |
2 0 0 |
1 1 1 |
(24,16,3) b (24,14,5) b (24,10,7) b |
|
|
L |
7 |
3 |
1 |
(26,19,2) b |
1 |
26 |
M |
10 |
2 |
1 |
(26,16,4) b |
|
|
Q |
13 |
1 |
1 |
(26,13,6) b |
|
|
H |
17 |
1 |
1 |
(26,9,8) b |
|
|
L |
10 |
2 |
1 |
(44,34,4) b |
2 |
44 |
M |
16 |
0 |
1 |
(44,28,8) |
|
|
Q |
22 |
0 |
1 |
(44,22,11) |
|
|
H |
28 |
0 |
1 |
(44,16,14) |
|
|
L |
15 |
1 |
1 |
(70,55,7) b |
3 |
70 |
M |
26 |
0 |
1 |
(70,44,13) |
|
|
Q |
36 |
0 |
2 |
(35,17,9) |
|
|
H |
44 |
0 |
2 |
(35,13,11) |
|
|
L |
20 |
|
1 |
(100,80,10) |
4 |
100 |
M |
36 |
0 |
2 |
(50,32,9) |
|
|
Q |
52 |
|
2 |
(50,24,13) |
|
|
H |
64 |
|
4 |
(25,9,8) |
|
|
L |
26 |
|
1 |
(134,108,13) |
|
|
M |
48 |
|
2 |
(67,43,12) |
5 |
134 |
Q |
72 |
0 |
2 2 |
(33,15,9) (34,16,9) |
|
|
H |
88 |
|
2 2 |
(33,11,11) (34,12,11) |
|
|
L |
36 |
|
2 |
(86,68,9) |
6 |
172 |
M |
64 |
0 |
4 |
(43,27,8) |
|
|
Q |
96 |
|
4 |
(43,19,12) |
|
|
H |
112 |
|
4 |
(43,15,14) |
|
|
L |
40 |
|
2 |
(98,78,10) |
|
|
M |
72 |
|
4 |
(49,31,9) |
7 |
196 |
Q |
108 |
0 |
2 |
(32,14,9) |
|
|
|
|
|
4 |
(33,15,9) |
|
|
H |
130 |
|
4 |
(39,13,13) |
|
|
|
|
|
1 |
(40,14,13) |
|
|
L |
48 |
|
2 |
(121,97,12) |
|
|
M |
88 |
|
2 |
(60,38,11) |
|
|
|
|
|
2 |
(61,39,11) |
8 |
242 |
Q |
132 |
0 |
4 |
(40,18,11) |
|
|
|
|
|
2 |
(41,19,11) |
|
|
H |
156 |
|
4 |
(40,14,13) |
|
|
|
|
|
2 |
(41,15,13) |
|
|
L |
60 |
|
2 |
(146,116,15) |
|
|
M |
110 |
|
3 |
(58,36,11) |
|
|
|
|
|
2 |
(59,37,11) |
9 |
292 |
Q |
160 |
0 |
4 |
(36,16,10) |
|
|
|
|
|
4 |
(37,17,10) |
|
|
H |
192 |
|
4 |
(36,12,12) |
|
|
|
|
|
4 |
(37,13,12) |
|
|
L |
72 |
|
2 |
(86,68,9) |
|
|
|
|
|
2 |
(87,69,9) |
|
|
M |
130 |
|
4 |
(69,43,13) |
|
|
|
|
|
1 |
(70,44,13) |
10 |
346 |
Q |
192 |
0 |
6 |
(43,19,12) |
|
|
|
|
|
2 |
(44,20,12) |
|
|
H |
224 |
|
6 |
(43,15,14) |
|
|
|
|
|
2 |
(44,16,14) |
|
|
L |
80 |
|
4 |
(101,81,10) |
|
|
M |
150 |
|
1 |
(80,50,15) |
|
|
|
|
|
4 |
(81,51,15) |
11 |
404 |
Q |
224 |
0 |
4 |
(50,22,14) |
|
|
|
|
|
4 |
(51,23,14) |
|
|
H |
264 |
|
3 |
(36,12,12) |
|
|
|
|
|
8 |
(37,13,12) |
|
|
L |
96 |
|
2 |
(116,92,12) |
|
|
|
|
|
2 |
(117,93,12) |
|
|
M |
176 |
|
6 |
(58,36,11) |
|
|
|
|
|
2 |
(59,37,11) |
12 |
466 |
Q |
260 |
0 |
4 |
(46,20,13) |
|
|
|
|
|
6 |
(47,21,13) |
|
|
H |
308 |
|
7 |
(42,14,14) |
|
|
|
|
|
4 |
(43,15,14) |
|
|
L |
104 |
|
4 |
(133,107,13) |
|
|
M |
198 |
|
8 |
(59,37,11) |
|
|
|
|
|
1 |
(60,38,11) |
13 |
532 |
Q |
288 |
0 |
8 |
(44,20,12) |
|
|
|
|
|
4 |
(45,21,12) |
|
|
H |
352 |
|
12 |
(33,11,11) |
|
|
|
|
|
4 |
(34,12,11) |
|
|
L |
120 |
|
3 |
(145,115,15) |
|
|
|
|
|
1 |
(146,116,15) |
|
|
M |
216 |
|
4 |
(64,40,12) |
|
|
|
|
|
5 |
(65,41,12) |
14 |
581 |
Q |
320 |
0 |
11 |
(36,16,10) |
|
|
|
|
|
5 |
(37,17,10) |
|
|
H |
385 |
|
11 |
(36,12,12) |
|
|
|
|
|
5 |
(37,13,12) |
|
|
L |
132 |
|
5 |
(109,87,11) |
|
|
|
|
|
1 |
(110,88,11) |
|
|
M |
240 |
|
5 |
(65,41,12) |
|
|
|
|
|
5 |
(66,42,12) |
15 |
655 |
Q |
360 |
0 |
5 |
(54,24,15) |
|
|
|
|
|
7 |
(55,25,15) |
|
|
H |
432 |
|
11 |
(36,12,12) |
|
|
|
|
|
7 |
(37,13,12) |
|
|
L |
144 |
|
5 |
(122,98,12) |
|
|
|
|
|
1 |
(123,99,12) |
|
|
M |
280 |
|
7 |
(73,45,14) |
|
|
|
|
|
3 |
(74,46,14) |
16 |
733 |
Q |
408 |
0 |
15 |
(43,19,12) |
|
|
|
|
|
2 |
(44,20,12) |
|
|
H |
480 |
|
3 |
(45,15,15) |
|
|
|
|
|
13 |
(46,16,15) |
|
|
L |
168 |
|
1 |
(135,107,14) |
|
|
|
|
|
5 |
(136,108,14) |
|
|
M |
308 |
|
10 |
(74,46,14) |
|
|
|
|
|
1 |
(75,47,14) |
17 |
815 |
Q |
448 |
0 |
1 |
(50,22,14) |
|
|
|
|
|
15 |
(51,23,14) |
|
|
H |
532 |
|
2 |
(42,14,14) |
|
|
|
|
|
17 |
(43,15,14) |
|
|
L |
108 |
|
5 |
(150,120,15) |
|
|
|
|
|
1 |
(151,121,15) |
|
|
M |
338 |
|
9 |
(69,43,13) |
|
|
|
|
|
4 |
(70,44,13) |
18 |
901 |
Q |
504 |
0 |
17 |
(50,22,14) |
|
|
|
|
|
1 |
(51,23,14) |
|
|
H |
588 |
|
2 |
(42,14,14) |
|
|
|
|
|
19 |
(43,15,14) |
|
|
L |
196 |
|
3 |
(141,113,14) |
|
|
|
|
|
4 |
(142,114,14) |
|
|
M |
364 |
|
3 |
(70,44,13) |
|
|
|
|
|
11 |
(71,45,13) |
19 |
991 |
Q |
546 |
0 |
17 |
(47,21,13) |
|
|
|
|
|
4 |
(48,22,13) |
|
|
H |
650 |
|
9 |
(39,13,13) |
|
|
|
|
|
16 |
(40,14,13) |
|
|
L |
224 |
|
3 5 |
(135,107,14) (136,108,14) |
|
|
M |
416 |
|
3 13 |
(67,41,13) (68,42,13) |
20 |
1 085 |
Q |
600 |
0 |
15 5 |
(54,24,15) (55,25,15) |
|
|
H |
700 |
|
15 10 |
(43,15,14) (44,16,14) |
|
|
L |
224 |
|
4 4 |
(144,116,14) (145,117,14) |
|
|
M |
442 |
|
17 |
(68,42,13) |
21 |
1 156 |
Q |
644 |
0 |
17 6 |
(50,22,14) (51,23,14) |
|
|
H |
750 |
|
19 6 |
(46,16,15) (47,17,15) |
|
|
L |
252 |
|
2 7 |
(139,111,14) (140,112,14) |
22 |
1 258 |
M |
476 |
0 |
17 |
(74,46,14) |
|
|
Q |
690 |
|
7 16 |
(54,24,15) (55,25,15) |
|
|
H |
816 |
|
34 |
(37,13,12) |
|
|
L |
270 |
|
4 |
(151,121,15) (152,122,15) |
23 |
1 364 |
M |
504 |
0 |
4 14 |
(75,47,14) (76,48,14) |
|
|
Q |
750 |
|
11 14 |
(54,24,15) (55,25,15) |
|
|
H |
900 |
|
16 14 |
(45,15,15) (46,16,15) |
|
|
L |
300 |
|
6 4 |
(147,117,15) (148,118,15) |
24 |
1 474 |
M |
560 |
0 |
6 14 |
(73,45,14) (74,46,14) |
|
|
Q |
810 |
|
11 16 |
(54,24,15) (55,25,15) |
|
|
H |
960 |
|
30 2 |
(46,16,15) (47,17,15) |
|
|
L |
312 |
|
8 |
(132,106,13) |
|
|
|
|
|
4 |
(133,107,13) |
|
|
|
|
|
8 |
(75,47,14) |
25 |
1 588 |
M |
588 |
0 |
13 |
(76,48,14) |
|
|
Q |
870 |
|
7 |
(54,24,15) |
|
|
|
|
|
22 |
(55,25,15) |
|
|
H |
1050 |
|
22 |
(45,15,15) |
|
|
|
|
|
13 |
(46,16,15) |
|
|
L |
336 |
|
10 |
(142,114,14) |
|
|
|
|
|
2 |
(143,115,14) |
|
|
|
|
|
19 |
(74,46,14) |
26 |
1 706 |
M |
644 |
0 |
4 |
(75,47,14) |
|
|
Q |
952 |
|
28 |
(50,22,14) |
|
|
|
|
|
6 |
(51,23,14) |
|
|
H |
1110 |
|
33 |
(46,16,15) |
|
|
|
|
|
4 |
(47,17,15) |
|
|
L |
360 |
|
8 |
(152,122,15) |
|
|
|
|
|
4 |
(153,123,15) |
|
|
|
|
|
22 |
(73,45,14) |
27 |
1 828 |
M |
700 |
0 |
3 |
(74,46,14) |
|
|
Q |
1020 |
|
8 |
(53,23,15) |
|
|
|
|
|
26 |
(54,24,15) |
|
|
H |
1200 |
|
12 |
(45,15,15) |
|
|
|
|
|
28 |
(46,16,15) |
|
|
L |
390 |
|
3 |
(147,117,15) |
|
|
|
|
|
10 |
(148,118,15) |
|
|
|
|
|
3 |
(73,45,14) |
28 |
1 921 |
M |
728 |
0 |
23 |
(74,46,14) |
|
|
Q |
1050 |
|
4 |
(54,24,45) |
|
|
|
|
|
31 |
(55,25,15) |
|
|
H |
1260 |
|
11 |
(45,15,15) |
|
|
|
|
|
31 |
(46,16,15) |
|
|
L |
420 |
|
7 |
(146,116,15) |
|
|
|
|
|
7 |
(147,117,15) |
|
|
|
|
|
21 |
(73,45,14) |
29 |
2 051 |
M |
784 |
0 |
7 |
(74,46,14) |
|
|
Q |
1140 |
|
1 |
(53,23,15) |
|
|
|
|
|
37 |
(54,24,15) |
|
|
H |
1350 |
|
19 |
(45,15,15) |
|
|
|
|
|
26 |
(46,16,15) |
|
|
L |
450 |
|
5 |
(145,115,15) |
|
|
|
|
|
10 |
(146,116,15) |
|
|
|
|
|
19 |
(75,47,14) |
30 |
2 185 |
M |
812 |
0 |
10 |
(76,48,14) |
|
|
Q |
1200 |
|
15 |
(54,24,15) |
|
|
|
|
|
25 |
(55,25,15) |
|
|
H |
1440 |
|
23 |
(45,15,15) |
|
|
|
|
|
25 |
(46,16,15) |
|
|
L |
480 |
|
13 |
(145,115,15) |
|
|
|
|
|
3 |
(146,116,15) |
|
|
|
|
|
2 |
(74,46,14) |
31 |
2 323 |
M |
868 |
|
29 |
(75,47,14) |
|
|
Q |
1 290 |
|
42 |
(54,24,15) |
|
|
|
|
|
1 |
(55,25,15) |
|
|
H |
1 530 |
|
23 |
(45,15,15) |
|
|
|
|
|
28 |
(46,16,15) |
|
|
L |
510 |
|
17 |
(145,115,15) |
|
|
|
|
|
10 |
(74,46,14) |
32 |
2 465 |
M |
924 |
0 |
23 |
(75,47,14) |
|
|
Q |
1 350 |
|
10 |
(54,24,15) |
|
|
|
|
|
35 |
(55,25,15) |
|
|
H |
1 620 |
|
19 |
(45,15,15) |
|
|
|
|
|
35 |
(46,16,15) |
|
|
L |
540 |
|
17 |
(145,115,15) |
|
|
|
|
|
1 |
(146,116,15) |
|
|
|
|
|
14 |
(74,46,14) |
33 |
2611 |
M |
980 |
0 |
21 |
(75,47,14) |
|
|
Q |
1440 |
|
29 |
(54,24,15) |
|
|
|
|
|
19 |
(55,25,15) |
|
|
H |
1710 |
|
11 |
(45,15,15) |
|
|
|
|
|
46 |
(46,16,15) |
|
|
L |
570 |
|
13 |
(145,115,15) |
|
|
|
|
|
6 |
(146,116,15) |
|
|
|
|
|
14 |
(74,46,14) |
34 |
2 761 |
M |
1 036 |
0 |
23 |
(75,47,14) |
|
|
Q |
1 530 |
|
44 |
(54,24,15) |
|
|
|
|
|
7 |
(55,25,15) |
|
|
H |
1 800 |
|
59 |
(46,16,15) |
|
|
|
|
|
1 |
(47,17,15) |
|
|
L |
570 |
|
12 |
(151,121,15) |
|
|
|
|
|
7 |
(152,122,15) |
|
|
|
|
|
12 |
(75,47,14) |
35 |
2 876 |
M |
1 064 |
0 |
26 |
(76,48,14) |
|
|
Q |
1 590 |
|
39 |
(54,24,15) |
|
|
|
|
|
14 |
(55,25,15) |
|
|
H |
1 890 |
|
22 |
(45,15,15) |
|
|
|
|
|
41 |
(46,16,15) |
|
|
L |
600 |
|
6 |
(151,121,15) |
|
|
|
|
|
14 |
(152,122,15) |
|
|
|
|
|
6 |
(75,47,14) |
36 |
3 034 |
M |
1 120 |
0 |
34 |
(76,48,14) |
|
|
Q |
1 680 |
|
46 |
(54,24,15) |
|
|
|
|
|
10 |
(55,25,15) |
|
|
H |
1 980 |
|
2 |
(45,15,15) |
|
|
|
|
|
64 |
(46,16,15) |
|
|
L |
630 |
|
17 |
(152,122,15) |
|
|
|
|
|
4 |
(153,123,15) |
|
|
|
|
|
29 |
(74,46,14) |
37 |
3196 |
M |
1204 |
0 |
14 |
(75,47,14) |
|
|
Q |
1770 |
|
49 |
(54,24,15) |
|
|
|
|
|
10 |
(55,25,15) |
|
|
H |
2 100 |
|
24 |
(45,15,15) |
|
|
|
|
|
46 |
(46,16,15) |
|
|
L |
660 |
|
4 |
(152,122,15) |
|
|
|
|
|
18 |
(153,123,15) |
|
|
|
|
|
13 |
(74,46,14) |
38 |
3362 |
M |
1 260 |
0 |
32 |
(75,47,14) |
|
|
Q |
1 860 |
|
48 |
(54,24,15) |
|
|
|
|
|
14 |
(55,25,15) |
|
|
H |
2 220 |
|
42 |
(45,15,15) |
|
|
|
|
|
32 |
(46,16,15) |
|
|
L |
720 |
|
20 |
(147,117,15) |
|
|
|
|
|
4 |
(148,118,15) |
|
|
|
|
|
40 |
(75,47,14) |
39 |
3 532 |
M |
1 316 |
0 |
7 |
(76,48,14) |
|
|
Q |
1 950 |
|
43 |
(54,24,15) |
|
|
|
|
|
22 |
(55,25,15) |
|
|
H |
2 310 |
|
10 |
(45,15,15) |
|
|
|
|
|
67 |
(46,16,15) |
|
|
L |
750 |
|
19 |
(148,118,15) |
|
|
|
|
|
6 |
(149,119,15) |
|
|
|
|
|
18 |
(75,47,14) |
40 |
3 706 |
M |
1 372 |
0 |
31 |
(76,48,14) |
|
|
Q |
2 040 |
|
34 |
(54,24,15) |
|
|
|
|
|
34 |
(55,25,15) |
|
|
H |
2 430 |
|
20 |
(45,15,15) |
|
|
|
|
|
61 |
(46,16,15) |
a c = tổng số từ – mã, k = số từ – mã dữ liệu, r = số dung lượng sửa lỗi. | ||||||
b Dung lượng sửa lỗi nhỏ hơn một nửa số từ mã sửa lỗi sẽ làm giảm khả năng giải mã sai. |
6.5.2. Tạo từ mã sửa lỗi
Từ mã dữ liệu kể cả từ mã độn khi cần thiết phải được chia thành một số khối như minh họa trong Bảng 9. Từ mã sửa lỗi phải được phân chia cho mỗi khối và gắn với từ mã dữ liệu.
CHÚ THÍCH Mã hình Micro QR code bao gồm một khối đơn lẻ.
Số học đa thức đối với QR code 2005 phải được tính toán bằng việc sử dụng số học theo từng bit modulo 2 và theo từng byte modulo 100011101. Đây là trường Galois trên 28 với 100011101 thể hiện đa thức x8 + x4 + x3 + x2 +1.
Từ mã dữ liệu là những hệ số của lũy thừa trong đa thức trong đó hệ số của lũy thừa bậc cao nhất sẽ là từ mã dữ liệu đầu tiên và hệ số của lũy thừa có bậc thấp nhất sẽ là từ mã dữ liệu cuối cùng đứng ngay trước từ mã sửa lỗi đầu tiên.
Từ mã sửa lỗi là số dư còn lại sau khi chia tổng từ mã dữ liệu cho đa thức g(x) được dùng cho mã sửa lỗi (xem Phụ lục A). Hệ số của bậc cao nhất của số dư sẽ là từ mã sửa lỗi đầu tiên và hệ số bậc 0 sẽ là từ mã sửa lỗi cuối cùng và là từ mã cuối cùng trong khối.
CHÚ THÍCH Nếu phép tính này được thực hiện bởi “phép chia đáng kể” thì đa thức dữ liệu của mã hình phải được nhân trước tiên với xk.
Ba mươi mốt đa thức sinh khác nhau được sử dụng để tạo từ mã sửa lỗi đối với QR code 2005, được trình bày trong Phụ lục A.
Việc tạo từ mã sửa lỗi có thể được thiết lập theo sơ đồ Hình 14. Các thanh ghi từ b0 tới bk-1 đều được khởi tạo các số 0. Có hai giai đoạn tạo bộ mã hóa. Giai đoạn đầu tiên với bộ phận chuyển mạch ở vị trí dưới cùng, từ mã dữ liệu sẽ được chuyển tới đầu ra và tới mạch. Giai đoạn đầu sẽ hoàn thành sau n xung đồng hồ. Trong giai đoạn hai (từ xung đồng hồ thứ n+1 tới n+k), với bộ phận chuyển mạch ở vị trí trên thì từ mã sửa lỗi từ εk-1 tới ε0 sẽ được tạo ra bằng việc chuyển các thanh ghi theo thứ tự trong khi vẫn giữ dữ liệu đầu vào bằng 0.
Å = GF (256) Cộng
Ä = GF(256) Nhân
Hình 14 – Sơ đồ mã hóa từ mã sửa lỗi
6.6. Thiết lập chuỗi từ mã gói tin cuối cùng
Tổng số từ mã trong gói tin luôn tương đương với tổng số từ mã có thể xuất hiện trong mã hình, như trình bày trong Bảng 7 và Bảng 9.
Để thiết lập chuỗi từ mã cuối cùng (dữ liệu cộng với từ mã sửa lỗi và từ mã dư nếu cần thiết) cần phải thực hiện theo những bước sau:
1. Chia chuỗi từ mã dữ liệu thành n khối như đã quy định trong Bảng 9 tùy theo cỡ hình và mức sửa lỗi (hoặc một khối đơn lẻ đối với mã hình Micro QR code).
2. Với mỗi khối dữ liệu, hãy tính toán một khối từ mã sửa lỗi tương ứng như quy định trong 6.5.2 và Phụ lục A.
3. Ghép thành chuỗi cuối bằng việc lấy dữ liệu và từ mã sửa lỗi từ mỗi khối theo thứ tự: Ví dụ, nếu có bốn khối thì chuỗi cuối sẽ là: khối dữ liệu 1, từ mã 1; khối dữ liệu 2, từ mã 1…; khối dữ liệu 4, từ mã 1; khối dữ liệu 1, từ mã 2;… và tương tự tới khối dữ liệu 3, từ mã cuối cùng; khối dữ liệu 4, từ mã cuối cùng; sau đó khối sửa lỗi 1, từ mã 1; khối sửa lỗi 2, từ mã 1;… và tương tự tới khối sửa lỗi 4, từ mã cuối cùng. Mã hình QR code 2005 QR chứa dữ liệu và các khối sửa lỗi mà những khối này sẽ luôn phủ kín toàn bộ dung lượng từ mã của mã hình. Tuy nhiên, trong những cỡ hình nhất định của QR code có một số môđun sẵn có cho dữ liệu và từ mã sửa lỗi không phải chính xác là bội số của 8, có thể cần tới 3, 4 hoặc 7 bit dư được thêm vào dòng bit của gói tin cuối cùng nhằm phủ kín một cách chính xác một số môđun trong vùng mã hóa này.
Khối (hay những khối) dữ liệu ngắn nhất phải được xếp đầu tiên trong chuỗi và tất cả những từ mã dữ liệu phải được sắp xếp trong mã hình ngay trước từ mã sửa lỗi đầu tiên. Chẳng hạn như mã hình cỡ 5-H bao gồm bốn khối dữ liệu và bốn khối sửa lỗi, hai thành phần đầu của mỗi khối chứa 11 từ mã dữ liệu và 22 mã từ sửa lỗi tương ứng, trong khi đó cặp thứ ba và thứ tư chứa 12 từ mã dữ liệu và 22 từ mã sửa lỗi tương ứng. Trong mã hình này, sự sắp xếp ký tự có thể được mô tả theo Hình 15. Mỗi hàng trong hình tương ứng với một khối từ mã dữ liệu (ký hiệu là Dn) theo sau là một khối những từ mã sửa lỗi (ký hiệu là En); chuỗi sắp xếp ký tự trong mã hình sẽ được hình thành bằng cách đọc từ trên xuống lần lượt các cột của hình.
Hình 15 – Thiết lập chuỗi từ mã gói tin cuối cùng
Khi đó, chuỗi từ mã gói tin cuối cùng của mã hình cỡ 5-H sẽ là:
D1, D12, D23, D35, D2, D13, D24, D36,…D11, D22, D33, D45, D34, D46, E1, E23, E45, E67, E2, E24, E46, E68,… E22, E44, E66, E88. Dung lượng môđun trong mã hình được lấp đầy bằng việc bổ sung 7 bit dư (0) cần thiết sau từ mã cuối cùng.
6.7. Sắp xếp từ mã trong ma trận
6.7.1. Trình bày ký tự trong mã hình
Trong mã hình QR code 2005 có hai loại ký tự mã hình, ký tự bình thường và không bình thường. Việc sử dụng chúng tùy thuộc vào vị trí của chúng trong mã hình, có liên quan tới những ký tự mã hình khác và các mẫu chức năng khác.
Phải trình bày hầu hết các từ mã trong khối môđun bình thường cỡ 2 x 4. Có hai cách sắp xếp những khối này, theo chiều dọc (với 2 môđun chiều rộng và 4 môđun chiều cao) và nếu cần thiết thì sắp xếp đổi hướng, xếp theo chiều ngang (với 4 môđun chiều rộng và 2 môđun chiều cao). Những ký tự mã hình không bình thường được sử dụng khi thay đổi hướng hay trong những vùng lân cận với mẫu căn chuẩn hoặc mẫu chức năng khác. Xem các ví dụ nêu trong Hình 16,17 và 18.
6.7.2. Sắp xếp mẫu chức năng
Phải thiết lập một ma trận vuông trống với một số môđun dọc và ngang tương ứng với cỡ hình đang sử dụng. Các vị trí tương ứng với những mẫu tìm kiếm, dấu phân cách, mẫu căn chỉnh và mẫu căn chuẩn phải được lấp đầy bởi các môđun tối hoặc sáng cho thích hợp. Các vị trí môđun đối với thông tin định dạng và thông tin về cỡ hình phải tạm thời được để trống phía bên trái. Những vị trí trống này được mô tả trong Hình 19 và 20 chung cho mọi cỡ hình (mặc dù thông tin về cỡ hình không được thể hiện trong các mã có cỡ hình 1 đến 6). Phụ lục E quy định việc định vị mẫu căn chuẩn.
6.7.3. Sắp xếp ký tự trong mã hình
Trong vùng mã hóa của mã hình QR code 2005, các ký tự mã hình được đặt trong những cột rộng 2 môđun bắt đầu từ góc dưới bên phải của mã hình và luân phiên chạy lên hay chạy xuống từ phải qua trái. Nguyên tắc chi phối việc sắp các ký tự và các bit trong phạm vi các ký tự này sẽ được minh họa dưới đây. Hình 19 và 20 minh họa các mã có cỡ hình 2 và 7 áp dụng nguyên tắc này.
a) Chuỗi sắp xếp bit trong cột phải từ phải qua trái và hoặc là đi lên hoặc đi xuống tùy theo hướng sắp xếp của ký tự trong mã hình.
b) Bit quan trọng nhất (như bit thứ 7) của mỗi từ mã phải được đặt tại vị trí môđun trống đầu tiên. Chuỗi những bit sau phải được đặt tại những vị trí môđun tiếp theo. Do đó bit quan trọng nhất sẽ chiếm môđun thấp hơn bên phải của ký tự mã hình bình thường nếu hướng sắp xếp đi lên, và chiếm môđun cao hơn bên phải nếu hướng sắp xếp đi xuống. Tuy nhiên nó có thể chiếm môđun thấp hơn bên trái của ký tự mã hình không bình thường nếu ký tự trước đó kết thúc ở cột môđun phía bên phải (xem Hình 18).
Hình 16 – Sắp xếp bit trong ký tự mã hình bình thường theo hướng đi lên và đi xuống
c) Khi ký tự mã hình chạm biên ngang của mẫu căn chuẩn hoặc của mẫu căn chỉnh ở cả hai cột môđun thì nó sẽ tiếp tục ở trên hay ở dưới mẫu với giả định rằng các vùng mã hóa là liên tục.
d) Khi chạm tới biên trên hoặc biên dưới vùng ký tự của mã hình (nghĩa là viền mã hình, thông tin định dạng, thông tin cỡ hình hoặc dấu phân cách) thì tất cả các bit dư còn lại trong từ mã phải được đặt trong những cột tiếp theo về bên trái. Hướng sắp xếp sẽ đảo ngược.
Hình 17 – Ví dụ về sắp xếp bit trong ký tự mã hình (i) bình thường và (ii) không bình thường khi hướng sắp xếp thay đổi
e) Khi cột môđun bên phải của cột ký tự mã hình chạm tới mẫu căn chuẩn hoặc vùng chứa thông tin cỡ hình, thì các bit phải được sắp xếp để hình thành nên một ký tự mã hình không bình thường, trải dọc theo cột môđun đơn bên cạnh mẫu căn chuẩn hoặc mẫu thông tin cỡ hình. Nếu ký tự kết thúc trước hai cột trống dành cho ký tự mã hình tiếp theo thì bit quan trọng nhất của ký tự tiếp theo phải được đặt trong cột đơn.
Hình 18 – Ví dụ về sắp xếp bit ở cạnh mẫu căn chuẩn
Có một phương pháp sắp xếp khác trong mã hình có thể tạo ra cùng một kết quả như vậy, đó là xem những chuỗi từ mã xen kẽ như là một dòng bit đơn lẻ được sắp xếp (bắt đầu bằng bit quan trọng nhất) trong những cột rộng 2 môđun chạy lên trên hoặc chạy xuống từ phải sang trái mã hình. Trong mỗi cột, các bit được sắp xếp luân phiên tại những môđun phải và trái, dịch chuyển lên phía trên hoặc xuống phía dưới tùy theo hướng sắp xếp và bỏ qua những khu vực chứa mẫu chức năng, việc thay đổi hướng ở phía trên cùng hoặc dưới cùng của các cột. Phải luôn đặt mỗi bit ở vị trí môđun trống đầu tiên.
Khi dung lượng dữ liệu của mã hình không thể chia chẵn thành một số ký tự mã hình 8-bit thì phải sử dụng một số bit dư thích hợp (3, 4 hoặc 7 như trong Bảng 1) để lấp đầy dung lượng mã hình. Những bit dư này phải luôn luôn có giá trị bằng 0 trước khi áp mặt nạ dữ liệu theo 6.8.
Hình 19 – Sắp xếp ký tự mã hình trong mã hình cỡ 2-M
D1-D13 |
Khối dữ liệu 1 |
D14 – D26 |
Khối dữ liệu 2 |
D27 – D39 |
Khối dữ liệu 3 |
D40 – D52 |
Khối dữ liệu 4 |
D53 – D66 |
Khối dữ liệu 5 |
E1 – E26 |
Khối sửa lỗi 1 |
E27 – E52 |
Khối sửa lỗi 2 |
E53 – E78 |
Khối sửa lỗi 3 |
E79 – E104 |
Khối sửa lỗi 4 |
E105 – E130 |
Khối sửa lỗi 5 |
Hình 20 – Sắp xếp ký tự mã hình trong mã hình cỡ 7-H
Các nguyên tắc giống hệt như vậy cũng áp dụng cho mã hình Micro QR code. Không có các ký tự mã hình không bình thường trong những mã hình này và một ngoại lệ duy nhất là D3 trong mã hình cỡ M1, D11 trong mã hình cỡ M3-L và D9 trong mã hình cỡ M3-M là một khối 4 môđun vuông 2 x 2.
6.8. Áp mặt nạ
Để việc đọc QR code 2005 chính xác hơn thì nên sắp xếp các môđun sáng và tối theo một cách cân đối trong mã hình. Mẫu môđun 1011101 thường được tìm thấy đặc biệt trong mẫu tìm kiếm phải được tránh ở các vùng khác trong mã hình nếu có thể. Để đáp ứng được những điều kiện trên, phải áp mặt nạ dữ liệu theo những bước sau đây:
1. Áp mặt nạ dữ liệu không được áp dụng cho các mẫu chức năng.
2. Chuyển đổi mẫu môđun đã cho trong những vùng mã hóa (ngoại trừ thông tin định dạng và thông tin cỡ hình) với nhiều mẫu ma trận liên tiếp thông qua phép toán logic XOR. Đối với phép toán XOR, hãy đặt mẫu môđun lần lượt trên mỗi mẫu ma trận áp mặt nạ dữ liệu và đảo ngược những môđun (từ sáng sang tối, hoặc ngược lại) tương ứng với các môđun tối của mẫu áp mặt nạ dữ liệu.
3. Sau đó đánh giá tất cả các mẫu đã được chuyển đổi bằng cách tính điểm phạt đối với những tính năng không mong đợi ở mỗi kết quả chuyển đổi.
4. Chọn mẫu có điểm phạt thấp nhất.
6.8.1. Mẫu mặt nạ dữ liệu
Bảng 10 cho thấy bảng tham chiếu mẫu mặt nạ dữ liệu (tham chiếu hệ nhị phân để sử dụng trong thông tin định dạng) và điều kiện để tạo mẫu mặt nạ dữ liệu. Mẫu mặt nạ dữ liệu được tạo ra bằng cách xác định bất kỳ môđun nào là tối trong vùng mã hóa (trừ vùng dành cho thông tin định dạng và thông tin cỡ hình) nếu điều kiện đúng; trong mệnh đề điều kiện thì i là vị trí hàng của môđun trong câu hỏi và j là vị trí cột, với (i,j)= (0,0) đối với môđun phía trên cùng bên trái trong mã hình.
Bảng 10 – Các điều kiện để tạo mẫu mặt nạ dữ liệu
Tham chiếu mẫu mặt nạ dữ liệu đối với mã hình QR code |
Tham chiếu mẫu mặt nạ dữ liệu đối với mã hình Micro QR code |
Điều kiện |
000 |
|
(i+j) mod 2 = 0 |
001 |
00 |
i mod 2 = 0 |
010 |
|
j mod 3 = 0 |
011 |
|
(i+j) mod 3 = 0 |
100 |
01 |
((i div 2) + (j div 3)) mod 2 = 0 |
101 |
|
((i j) mod 2 + (i j) mod 3) = 0 |
110 |
10 |
((i j) mod 2 + (i j) mod 3) mod 2 = 0 |
111 |
11 |
((i j) mod 2 + (i j) mod 3) mod 2 = 0 |
Hình 21 cho thấy tất cả những mẫu mặt nạ dữ liệu, được minh họa trong mã hình cỡ 1. Hình 23 mô phỏng hiệu quả của việc áp mặt nạ dữ liệu có sử dụng tham chiếu mẫu mặt nạ dữ liệu từ 000 tới 111.
((i j) mod 2 + (i+j) mod 3) mod 2 = 0 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
Hình 21 – Mẫu mặt nạ dữ liệu của mã hình cỡ 1
CHÚ THÍCH 1 Ba bit dưới mỗi mẫu đại diện cho tham chiếu mẫu mặt nạ dữ liệu.
CHÚ THÍCH 2 Phương trình bên dưới tham chiếu mẫu mặt nạ dữ liệu cho thấy điều kiện tạo mẫu mặt nạ dữ liệu; những môđun thỏa mãn được điều kiện có màu tối.
Hình 22 dưới đây chỉ ra bốn mẫu áp mặt nạ dữ liệu trống áp dụng cho mã hình Micro QR code cỡ hình M-4.
Hình 22 – Các mẫu mặt nạ dữ liệu áp dụng cho mã hình Micro QR code cỡ hình M-4
Hình 23 – Sự mô phỏng quá trình áp mặt nạ dữ liệu trong mã hình QR code
6.8.2. Đánh giá kết quả áp mặt nạ dữ liệu
6.8.2.1. Đánh giá mã hình QR code
Sau khi thực hiện hoạt động áp mặt nạ dữ liệu lần lượt với mỗi mẫu mặt nạ dữ liệu, kết quả phải được đánh giá bằng cách tính điểm phạt cho mỗi lần xuất hiện những tính năng sau đây. Số điểm càng cao thì càng khó chấp nhận kết quả. Trong Bảng 11 dưới đây, từ biến số N1 tới biến số N4 đại diện cho những điểm phạt có trọng số đối với những tính năng không mong đợi (N1=3, N2=3, N3=40, N4=10), i là số lượng những môđun cạnh nhau có cùng màu vượt quá 5, và k là tỷ suất độ lệch của tỷ lệ các môđun tối chiếm trong mã hình từ 50% trong mỗi bước 5%. Mặc dù thao tác áp mặt nạ dữ liệu chỉ thực hiện trên vùng mã hóa của mã hình không kể thông tin định dạng, nhưng vùng được đánh giá kết quả vẫn là toàn bộ mã hình.
Bảng 11 – Tính điểm các kết quả áp mặt nạ dữ liệu
Tính năng |
Điều kiện đánh giá |
Điểm |
Các môđun kề nhau trong hàng/ trong cột có cùng màu | Số môđun = (5 + i) | N1 + i |
Khối các môđun cùng màu | Cỡ khối = m x n | N2 x (m – 1) x (n – 1) |
Mẫu tỷ lệ 1 : 1 : 3 : 1 : 1
(tối:sáng:tối:sáng:tối) trong hàng/ cột, có vùng sáng độ rộng 4 môđun đi trước hoặc theo sau. |
Sự tồn tại của mẫu | N3 |
Tỷ lệ các môđun tối trong toàn bộ mã hình | 50 ± ( 5 x k)% đến
50 ± ( 5 x (k + 1))% |
N4 x k |
Phải chọn mẫu mặt nạ dữ liệu có điểm phạt thấp nhất cho mã hình.
6.8.2.2. Đánh giá mã hình Micro QR code
Sau khi thực hiện hoạt động áp mặt nạ dữ liệu trên vùng mã hóa của mã hình lần lượt với mỗi mẫu mặt nạ dữ liệu, phải đánh giá các kết quả bằng cách tính điểm phạt đối với một số môđun tối trong mỗi cặp hai đường rìa không phải là mẫu căn chỉnh. Số điểm càng thấp thì càng khó chấp nhận kết quả. Trong những mã vạch này, cấn có nhiều môđun tối hơn trong đường rìa nhằm phân biệt vùng trống với vùng mã hóa một cách hiệu quả hơn.
Lần lượt với mỗi mẫu mặt nạ dữ liệu, đếm số môđun tối trong các đường rìa bên dưới và bên phải mã hình (trừ môđun cuối cùng của mẫu căn chỉnh). Điểm đánh giá được tính theo công thức sau:
Nếu SUM1 ≤ SUM2
Điểm đánh giá = SUM1 x 16 + SUM2
Nếu SUM1 > SUM2
Điểm đánh giá= SUM2 x 16 + SUM1
Trong đó:
SUM1 = số môđun tối trong đường rìa bên phải
SUM2 = số môđun tối trong đường rìa bên dưới
SUM1 > SUM2
Điểm đánh giá = SUM2 x 16 + SUM1 = (6 x 16 ) + 8 = 104 |
Hình 24 – Đánh giá các kết quả của việc áp mặt nạ trong mã hình Micro QR code
Phải chọn mẫu mặt nạ dữ liệu có kết quả điểm cao nhất cho mã hình.
6.9. Thông tin định dạng
6.9.1. Mã hình QR code
Thông tin định dạng là một chuỗi 15 bit chứa 5 bit dữ liệu, với 10 bit sửa lỗi được tính toán bằng cách sử dụng mã BCH(15, 5). Chi tiết về việc tính số liệu sửa lỗi cho thông tin định dạng được quy định trong Phụ lục C. Hai bit dữ liệu đầu tiên chứa mức sửa lỗi của mã hình, được chỉ ra trong Bảng 12.
Bảng 12 – Chỉ dấu mức sửa lỗi đối với mã hình QR code
Mức sửa lỗi |
Chỉ dấu dạng nhị phân |
L |
01 |
M |
00 |
Q |
11 |
H |
10 |
Từ bit dữ liệu thứ 3 tới bit dữ liệu thứ 5 của thông tin định dạng chứa phần tham chiếu mẫu mặt nạ dữ liệu trong Bảng 10 ở trên đối với mẫu được chọn theo 6.8.2
10 bit sửa lỗi phải được tính toán như quy định trong Phụ lục C và được nối với 5 bit dữ liệu.
Thông tin định dạng đã sửa lỗi gồm 15 bit sau đó phải được XOR với mẫu mặt nạ 101010000010010 để đảm bảo rằng không có tổ hợp nào của mức sửa lỗi và mẫu mặt nạ dữ liệu có thể tạo ra một dòng dữ liệu toàn 0.
Thông tin định dạng đã áp mặt nạ xong phải được đặt tương ứng vào những vùng dành cho nó trong mã hình như minh họa trong Hình 25. Chú ý rằng thông tin định dạng xuất hiện hai lần trong mã hình để dự phòng bởi vì việc giải mã chính xác thông tin định dạng đóng vai trò cốt yếu đối với việc giải mã toàn bộ mã hình. Bit kém quan trọng nhất của thông tin định dạng được đặt trong môđun số 0, và bit quan trọng nhất sẽ đặt trong môđun số 14 trong Hình 25. Môđun trong vị trí (4V + 9, 8) trong đó V là số cỡ hình, phải luôn có màu tối và không phải là một phần của thông tin định dạng.
VÍ DỤ
Giả sử mức sửa lỗi là M | 00 |
và tham chiếu mẫu mặt nạ dữ liệu là | 101 |
Dữ liệu | 00101 |
Bit BCH | 001011100 |
Chuỗi bit chưa áp mặt nạ | 001010011011100 |
Mẫu mặt nạ để thực hiện XOR | 101010000010010 |
Mẫu môđun thông tin định dạng | 100000011001110 |
Hình 25- Xác định vị trí của thông tin định dạng
6.9.2. Mã hình Micro QR code
Thông tin định dạng là một chuỗi 15 bit chứa 5 bit dữ liệu, với 10 bit sửa lỗi được tính toán bằng cách sử dụng mã BCH(15, 5). Chi tiết về việc tính số liệu sửa lỗi cho thông tin định dạng được quy định trong Phụ lục C. Ba bit dữ liệu đầu tiên chứa số mã hình (dạng nhị phân) phân định mức sửa lỗi và cỡ hình như được chỉ ra trong Bảng 13.
Bảng 13 – Số mã hình đối với mã hình Micro QR code
Số mã hình |
Cỡ hình |
Mức sửa lỗi |
Chỉ dấu dạng nhị phân |
0 |
M1 |
Chỉ sửa lỗi |
000 |
1 |
M2 |
L |
001 |
2 |
M2 |
M |
010 |
3 |
M3 |
L |
011 |
4 |
M3 |
M |
100 |
5 |
M4 |
L |
101 |
6 |
M4 |
M |
110 |
7 |
M4 |
Q |
111 |
Từ bit dữ liệu thứ 4 tới bit dữ liệu thứ 5 của thông tin định dạng chứa phần tham chiếu mẫu mặt nạ dữ liệu được cho trong Bảng 10 đối với mẫu được chọn theo 6.8.2
10 bit sửa lỗi phải được tính toán như quy định trong Phụ lục C và được nối với 5 bit dữ liệu.
Thông tin định dạng đã sửa lỗi gồm 15 bit sau đó phải được XOR với mẫu bit 100010001000101 để đảm bảo rằng không có tổ hợp nào của số mã hình và mẫu mặt nạ dữ liệu có thể tạo ra một dòng dữ liệu toàn 0.
Thông tin định dạng đã áp mặt nạ xong phải được đặt tương ứng vào những vùng dành cho nó trong mã hình như minh họa trong Hình 25 hoặc 26, tùy thuộc vào loại mã hình. Bit kém quan trọng nhất của thông tin định dạng được đạt trong môđun số 0, và bit quan trọng nhất được đặt trong môđun số 14 trong Hình 24 và 25.
VÍ DỤ
Số mã hình 0: | 000 |
Tham chiếu mẫu mặt nạ dữ liệu: | 11 |
Bit dữ liệu (số mã hình, tham chiếu mẫu mặt nạ dữ liệu): | 00011 |
Bit BCH: | 1101011001 |
Chuỗi bit chưa áp mặt nạ: | 000111101011001 |
Mẫu mặt nạ để thực hiện XOR: | 100010001000101 |
Mẫu môđun thông tin định dạng: | 100101100011100 |
Hình 26 – Các vị trí bit của thông tin định dạng của mã hình Micro QR code
6.10. Thông tin cỡ hình
Thông tin cỡ hình được đưa vào trong mã hình QR code cỡ hình 7 hoặc lớn hơn. Thông tin cỡ hình là một chuỗi 18-bit chứa 6 bit dữ liệu, với 12 bit sửa lỗi được tính toán bằng cách sử dụng mã Golay (18, 6). Tham khảo Phụ lục D để biết thêm chi tiết về việc tính toán sửa lỗi đối với thông tin cỡ hình. Sáu bit dữ liệu nói trên chứa cỡ hình của mã, trước tiên là bit quan trọng nhất.
Phải tính 12 bit sửa lỗi nói trên theo các bước nêu ở Phụ lục D và được nối với 6 bit dữ liệu.
Không có thông tin cỡ hình nào gây ra một dòng dữ liệu toàn 0 bởi vì chỉ có các cỡ hình từ 7 đến 40 chứa thông tin cỡ hình. Vì vậy việc áp mặt nạ không áp dụng đối với thông tin cỡ hình.
Phải đặt thông tin cỡ hình trong vùng dành cho nó trong mã hình như minh họa ở Hình 27. Chú ý rằng thông tin cỡ hình xuất hiện 2 lần trong mã hình để dự phòng vì việc giải mã chính xác thông tin cỡ hình đóng vai trò cốt yếu để giải mã toàn bộ mã hình. Bit kém quan trọng nhất của thông tin cỡ hình sẽ được đặt trong các môđun số 0 và bit quan trọng nhất sẽ được đặt trong các môđun số 17, như minh họa ở Hình 28.
VÍ DỤ
Số cỡ hình: | 7 |
Dữ liệu: | 000111 |
Bit BCH: | 110010010100 |
Mẫu môđun thông tin định dạng: | 000111110010010100 |
Vùng thông tin cỡ hình là một khối 6 x 3 môđun bên trên mẫu căn chỉnh và ngay ở phía trái của dấu phân cách mẫu tìm kiếm trên cùng bên phải, và là khối 3 x 6 môđun về phía trái của mẫu căn chỉnh và ngay trên dấu phân cách tìm mẫu tìm kiếm dưới cùng bên trái.
Hình 27 – Xác định vị trí của thông tin cỡ hình
Hình 28 – Sắp xếp môđun trong thông tin cỡ hình
7. Kết nối có cấu trúc
7.1. Những nguyên tắc cơ bản
Kết nối có cấu trúc không sẵn có với mã hình Micro QR code.
Có thể kết nối tối đa 16 mã hình QR code 2005 với nhau trong một khuôn dạng có cấu trúc. Nếu mã hình là một phần của gói tin kết nối có cấu trúc thì nó sẽ được chỉ ra bởi một khối đầu trong năm phần hai vị trí ký tự mã hình đầu tiên.
Chỉ báo mode kết nối có cấu trúc 0011 được đạt ở trong bốn vị trí bit quan trọng nhất trong ký tự mã hình đầu tiên.
Tiếp ngay sau nó là hai từ mã kết nối có cấu trúc, bao trùm bốn bit kém quan trọng nhất của ký tự mã hình đầu tiên, ký tự mã hình thứ hai và bốn bit quan trọng nhất của ký tự mã hình thứ ba. Từ mã đầu tiên là chỉ báo chuỗi mã hình (xem 7.2). Từ mã thứ hai là dữ liệu dạng chẵn lẻ (xem 7.3) và giống nhau trong mọi mã hình của gói tin, cho phép nó được kiểm chứng lại rằng tất cả mọi mã hình được đọc ra đều là thành phần của cùng một gói tin có dạng kết nối có cấu trúc. Sau phần đầu sẽ là từ mã dữ liệu của mã hình bắt đầu bằng chỉ báo mode đầu tiên. Nếu một hoặc nhiều ECI khác với ECI ngầm định đang sử dụng, thì phần đầu của mỗi ECI sẽ chứa chỉ báo mode ECI và mã hiệu ECI, tiếp theo sau là phần đầu của bộ kết nối có cấu trúc.
Phần dưới của Hình 29 cho thấy một ví dụ về bốn mã hình kết nối có cấu trúc, với cùng một kiểu dữ liệu như mã hình bên trên.
Hình 29- Mã hình đơn lẻ (bên trên) và một loạt mã hình dạng kết nối có cấu trúc (bên dưới) mã hóa thông điệp
“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”
7.2. Chỉ báo chuỗi mã hình
Từ mã này cho thấy vị trí của mã hình trong bộ mã hình (có thể lên tới 16 mã) QR code 2005 trong khuôn dạng kết nối có cấu trúc (dạng m trong n mã hình). Bốn bit đầu tiên của từ mã này xác định vị trí của một mã hình cụ thể. Bốn bit cuối cùng xác định tổng số mã hình được liên kết trong khuôn dạng kết nối có cấu trúc. Các mẫu 4 bit là tương đương nhị phân tương ứng của (m -1) và (n -1).
VÍ DỤ
Để chỉ ra mã hình thứ ba của một bộ 7 mã hình, khi đó sẽ được mã hóa như sau:
Vị trí thứ 3: 0010
Tổng 7 mã hình: 0110
Mẫu bit: 00100110
7.3. Dữ liệu chẵn lẻ
Dữ liệu chẵn lẻ là một byte 8 bit theo sau bộ chỉ báo chuỗi mã hình. Dữ liệu chẵn lẻ là giá trị đạt được bằng cách áp dụng phép toán XOR theo từng byte đối với các giá trị byte của tất cả những dữ liệu đầu vào ban đầu trước khi chia thành những khối mã hình. Chỉ báo mode, chỉ dấu đếm ký tự, các bit đệm, dấu kết thúc và ký tự đệm sẽ không tham gia vào quá trình tính toán. Dữ liệu đầu vào tượng trưng cho việc tính toán này là các giá trị JIS Shift kiểu hai byte đối với ký tự Kanji (mỗi byte sẽ được xử lý độc lập với nhau trong phép toán XOR, đầu tiên quan trọng nhất) và các giá trị 8 bit đối với những ký tự khác như mô tả trong Bảng 6. Các giá trị kiểu byte của chế độ ECI sẽ được hình thành sau khi việc mã hóa hoặc nén dữ liệu được sử dụng để tính toán.
Chẳng hạn, được chia thành “0123”, “4567” và “89 “ như sau:
Khối mã hình thứ nhất (“0123”) – tương ứng giá trị hệ thập lục phân là 30, 31, 32, 33
Khối mã hình thứ hai (“4567”) – tương ứng giá trị hệ thập lục phân là 34, 35, 36, 37
Khối mã hình thứ ba (“89 “) – tương ứng với giá trị hệ thập lục phân là 38, 39, 93FA, 967B
Dữ liệu chẵn lẻ được đếm từ bằng tiến hành XOR dữ liệu theo từng byte.
30 Å 31 Å 32 Å 33 Å 34 Å 35 Å 36 Å 37 Å 38 Å 39 Å 93 Å FA Å 96 Å 7B= 85
Chú ý rằng việc tính toán dữ liệu chẵn lẻ có thể được thực hiện hoặc trước khi dữ liệu được chuyển vào máy in hoặc trong khi đang ở trong máy in, trên cơ sở dung lượng của máy in.
8. Đánh dấu và in mã hình
8.1. Kích thước
Mã hình QR code 2005 phải tuân theo những kích thước sau đây:
Cỡ X: độ rộng của một môđun phải được quy định bởi việc ứng dụng, có xem xét tới công nghệ quét được sử dụng và công nghệ tạo mã hình.
Cỡ Y độ cao của một môđun sẽ bằng với kích thước cỡ X
Vùng trống tối thiểu: Bằng 2X (đối với mã hình Micro QR code) hoặc 4X (đối với mã hình QR code) ở tất cả bốn cạnh
8.2. Diễn giải cho người đọc
Do mã hình QR code 2005 có khả năng mã hóa hàng ngàn ký tự nên việc diễn giải các ký tự dữ liệu cho người đọc có thể hiểu được là một điều không thực tế. Một cách khác hay hơn là nên kèm theo mã hình đoạn mô tả thay vì nội dung toàn văn.
Không quy định cỡ và phông chữ và vì vậy có thể in gói tin ở bất kỳ đâu trong vùng bao quanh mã hình. Diễn giải cho người đọc không được viết đè lên mã hình hay vùng trống.
8.3. Hướng dẫn tạo mã
Có thể in hoặc tạo mã hình QR code 2005 bằng việc sử dụng một số công nghệ khác nhau. Phụ lục K cung cấp cho người sử dụng hướng dẫn này.
9. Chất lượng mã hình
9.1. Phương pháp
Phải đánh giá chất lượng mã hình QR code 2005 bằng việc sử dụng hướng dẫn về chất lượng bản in mã vạch ma trận 2D như đã quy định trong ISO/IEC 15415, được bổ sung và thay đổi như dưới đây.
Một vài công nghệ tạo mã hình có thể không có khả năng tạo mã hình phù hợp với tiêu chuẩn này nếu không có sự phòng ngừa đặc biệt. Phụ lục M bổ sung hướng dẫn để trợ giúp tất cả các hệ thống in đạt được mã hình QR code 2005 có giá trị.
9.2. Các thông số về chất lượng mã hình
9.2.1. Sự hư hại của mẫu cố định
Phụ lục G quy định phép đo và cơ sở phân cấp đối với sự hư hại của mẫu cố định.
9.2.2. Cấp tổng thể của mã hình và cấp độ quét
Cấp độ quét phải là các cấp thấp nhất đối với độ tương phản của mã hình, biến điệu, sự hư hại của mẫu cố định, giải mã, sự không đều trục, sự không đồng nhất của lưới và sự sửa lỗi không được sử dụng trong một hình ảnh riêng lẻ của mã hình. Cấp tổng thể của mã hình là trung bình số học của các cấp độ quét riêng lẻ đối với một số hình ảnh mã hình được thử nghiệm.
9.2.3. Sự không đồng nhất của lưới
Lưới lý tưởng được tính bằng cách sử dụng mẫu tìm kiếm và mẫu căn chuẩn làm điểm luận cứ, và được xác định bằng cách sử dụng thuật toán giải mã tham chiếu (xem điều 11).
9.3. Các phép đo kiểm soát quá trình
Một số công cụ và phương pháp có thể được sử dụng để thực hiện các phép đo hữu ích đối với việc theo dõi và kiểm soát quá trình tạo mã hình QR code 2005. Phụ lục M mô tả các phép đo này. Các công nghệ này không dùng để kiểm tra chất lượng in mã hình đã được tạo ra (một phương pháp đã biết được nêu ở phần đầu của điều này và Phụ lục G chính là phương pháp cần đến để đánh giá chất lượng in mã hình) nhưng chúng mang lại nhiều chỉ dẫn hay về việc liệu quá trình in mã hình có tạo ra mã hình dùng được hay không.
10. Khái quát về quy trình giải mã
Các bước giải mã từ việc đọc một mã hình QR code 2005 cho tới việc đưa ra các ký tự của dữ liệu đều được thực hiện ngược với quy trình mã hóa. Hình 30 minh họa quy trình này.
1. Xác định và thu nhận hình ảnh của mã hình. Nhận biết các môđun tối và môđun sáng như là một chuỗi các bit “0” và “1”. Phân định chiều phân cực của hệ số phản xạ từ việc tạo màu môđun của mẫu tìm kiếm.
2. Đọc thông tin định dạng. Gỡ mẫu áp mặt nạ và thực hiện sửa lỗi trên các môđun thông tin định dạng khi cần thiết; nếu đọc tốt, mã hình có sự định hướng bình thường còn nếu không hãy thử giải mã hình ảnh phản chiếu của thông tin định dạng. Phân định mức sửa lỗi, hoặc là trực tiếp trong mã hình QR code hoặc là từ số mã hình Micro QR code và tham chiếu mẫu mặt nạ dữ liệu.
3. Đọc thông tin cỡ hình (nếu có), sau đó xác định cỡ hình của mã hình (từ số mã hình trong trường hợp của mã hình Micro QR code).
4. Gỡ mẫu áp mặt nạ dữ liệu bằng việc áp dụng phép toán XOR lên mẫu bit của vùng mã hóa bằng mẫu mặt nạ dữ liệu trong đó tham chiếu của nó được lấy ra từ thông tin định dạng.
5. Đọc các ký tự mã hình theo các quy tắc sắp xếp đối với mô hình này, phục hồi dữ liệu và từ mã sửa lỗi của gói tin.
6. Phát hiện lỗi sai bằng việc sử dụng từ mã sửa lỗi tương ứng với thông tin về cấp độ. Nếu phát hiện ra các lỗi sai thì hãy sửa chúng.
7. Phân đoạn từ mã dữ liệu theo chỉ báo mode và chỉ dấu đếm ký tự.
8. Cuối cùng, giải mã các ký tự dữ liệu tùy theo (các) mode đang sử dụng và cho ra kết quả.
Hình 30 – Các bước giải QR code 2005
11. Thuật toán giải mã tham chiếu đối với QR code 2005
Thuật toán giải mã tham chiếu này tìm kiếm mã hình trong hình ảnh và giải mã nó. Thuật toán giải mã này đề cập tới các trạng thái tối và sáng trong hình ảnh.
a) Xác định ngưỡng tổng quát bằng việc lấy giá trị trung bình cộng của hệ số phản xạ lớn nhất và nhỏ nhất trong hình ảnh. Chuyển đổi hình ảnh thành một tập hợp các điểm ảnh tối và sáng bằng cách sử dụng ngưỡng tổng quát.
b) Xác định mẫu tìm kiếm. Mẫu tìm kiếm trong QR code 2005 bao gồm 3 mẫu tìm kiếm giống nhau được đặt ở ba trong tổng số bốn góc của mã hình. Mẫu tìm kiếm trong Micro QR code là một mẫu tìm kiếm đơn lẻ. Như quy định ở 5.3.2, các độ rộng của môđun trong mỗi mẫu tìm kiếm tạo nên một trình tự tối – sáng – tối – sáng – tối có độ rộng tương ứng của mỗi phần tử của chúng chia theo tỉ lệ 1 : 1 : 3 : 1 : 1. Để phục vụ cho thuật toán này, dung sai của mỗi một độ rộng này là 0,5 (có nghĩa là phạm vi từ 0,5 tới 1,5 cho hộp một môđun và 2,5 tới 3,5 cho hộp vuông ba môđun).
1) Khi phát hiện ra một vùng có thể phù hợp hãy lưu ý vị trí của điểm đầu tiên A và điểm cuối cùng B. Tại các điểm này, một đường các điểm ảnh trong hình ảnh sẽ gặp phải các đường rìa ngoài cùng của mẫu tìm kiếm (xem Hình 31). Lặp lại các bước này đối với các đường điểm ảnh kế tiếp trong hình ảnh cho đến khi tất cả các đường đi qua hộp trung tâm của mẫu tìm kiếm nằm trên trục X của hình ảnh đã được nhận dạng.
Hình 31 – Đường quét trong mẫu tìm kiếm
2) Lặp lại bước 1) với các cột điểm ảnh đi qua hộp trung tâm của mẫu tìm kiếm nằm trên trục y của hình ảnh.
3) Định vị tâm của mẫu. Dựng một đường thẳng đi qua các trung điểm của hai điểm A và B nằm trên các đường điểm ảnh xa nhất ngang qua hộp trung tâm của mẫu tìm kiếm trên trục X. Dựng một đường thẳng tương tự qua hai điểm A và B trên các cột điểm ảnh xa nhất ngang qua hộp trung tâm trên trục y. Giao của hai đường này chính là tâm của mẫu.
4) Lặp lại các bước từ 1) tới 3) để xác định tâm của hai mẫu định vị còn lại.
5) Nếu không phát hiện ra vùng phù hợp nào, hãy đảo màu của các điểm ảnh sáng và tối và bắt đầu lại vào lúc bắt đầu bước b) để cố gắng giải mã hình như là mã có hệ số phản xạ đảo chiều.
6) Nếu xác định được một mẫu đơn lẻ nhưng không thể xác định được thêm hai mẫu tìm kiếm nữa, cố gắng giải mã hình như là mã hình Micro QR code bằng cách bước vào giải mã tham chiếu mã hình Micro QR code (từ bước m).
c) Xác định hướng quay của mã hình bằng việc phân tích các tọa độ tâm của mẫu tìm kiếm nhằm nhận dạng mẫu nào là mẫu phía trên bên trái trong mã hình và góc quay của mã hình.
d) Xác định a) khoảng cách D bao trùm toàn bộ độ rộng của mã hình từ tâm của mẫu định vị phía trên bên trái tới tâm của mẫu tìm kiếm phía trên bên phải b) độ rộng của hai mẫu WUL và WUR như minh họa ở Hình 31.
Hình 32 – Các mẫu tìm kiếm phía trên
e) Tính kích thước danh định X của mã hình
X= (WUL + WUR)/14
f) Xác định tạm thời cỡ hình V của mã hình
V= [(D/X -10] /4
g) Nếu cỡ hình tạm thời của mã hình là 6 hoặc nhỏ hơn thì cỡ này sẽ được lấy làm cỡ hình chuẩn.
Nếu cỡ hình tạm thời của mã hình là 7 hoặc lớn hơn thì thông tin cỡ hình được giải mã như sau:
1) Chia độ rộng WUR của mẫu tìm kiếm phía trên bên phải cho 7 để tính cỡ của môđun CPUR
CPUR= WUR / 7
2) Tìm các đường trợ giúp AC và AB từ các điểm A, B và C. Các đường này đi qua tâm của ba mẫu tìm kiếm như minh họa ở Hình 32 bên dưới. Lưới lấy mẫu cho mỗi tâm môđun trong vùng thông tin cỡ hình 1 được xác định căn cứ vào các đường thẳng song song với đường trợ giúp, căn cứ vào tọa độ trung tâm của các mẫu tìm kiếm và cỡ môđun CPUR. Các giá trị nhị phân 0 và 1 được xác định từ mẫu tối và sáng trên lưới lấy mẫu.
Hình 33 – Các mẫu tìm kiếm và thông tin cỡ hình
3) Xác định cỡ hình bằng cách dò tìm và sửa các lỗi, nếu có, dựa trên Bảng cho trong Phụ lục D.2.
4) Nếu phát hiện ra các lỗi vượt quá khả năng sửa lỗi, hãy tính độ rộng WDL của mẫu tìm kiếm dưới cùng bên trái theo trình tự từ các bước a), b), c) như trên để giải mã thông tin cỡ hình 2.
h) Đối với mã có cỡ hình 1, xác định lại X bằng khoảng cách trung bình giữa các tâm điểm của các môđun tối và sáng trong mẫu căn chỉnh. Một cách tương tự, tính toán kích thước Y bằng khoảng cách trung bình giữa các tâm điểm của các môđun tối và sáng trong mẫu căn chỉnh bên trái. Thiết lập một lưới lấy mẫu trên cơ sở (a) đường nằm ngang chạy qua mẫu căn chỉnh phía trên với các đường song song với nó ở khoảng cách Y theo chiều thẳng đứng, kết hợp sáu đường phía trên đường tham chiếu nằm ngang và một số đường nằm phía dưới theo yêu cầu cho cỡ mã hình, và (b) đường nằm dọc chạy qua mẫu căn chỉnh bên trái với các đường song song với nó ở khoảng cách X theo chiều ngang, kết hợp sáu đường ở bên trái của đường tham chiếu dọc với một số đường nằm ở phía phải nó theo yêu cầu cho cỡ mã hình. Đối với mã có cỡ hình 2 và lớn hơn, xác định tọa độ trung tâm của từng mẫu căn chuẩn từ các tọa độ như được quy định ở 5.3.5 và Phụ lục E và thiết lập các lưới lấy mẫu với các đường được đặt cách nhau một khoảng bằng nhau giữa những điểm này.
Hình 34 – Các mẫu tìm kiếm và mẫu căn chuẩn
1) Chia độ rộng WUL của mẫu tìm kiếm trên cùng bên trái PUL cho 7 để tính cỡ môđun CPUL.
CPUL= WUL / 7
2) Xác định các tọa độ trung tâm tạm thời của các mẫu căn chuẩn P1 và P2 (xem Hình 33), dựa vào tọa độ trung tâm A của mẫu tìm kiếm trên cùng bên trái PUL, các đường thẳng song song với các đường trợ giúp AB và AC xác định được ở 7c) và môđun cỡ CPUL.
3) Quét đường viền bao ngoài hình vuông trắng trong mẫu căn chuẩn P1 và P2 bắt đầu từ điểm ảnh của tọa độ trung tâm tạm thời nhằm tìm kiếm các tọa độ trung tâm Xi và Yj thực (xem Hình 34)
Hình 35 – Các tọa độ trung tâm của mẫu căn chuẩn
4) Ước lượng tọa độ trung tâm tạm thời của mẫu căn chuẩn P3, dựa vào tọa độ trung tâm của mẫu tìm kiếm trên cùng bên trái PUL và các tọa độ trung tâm thực của mẫu căn chuẩn P1 và P2 xác định được ở bước 3).
5) Xác định tọa độ trung tâm thực của mẫu căn chuẩn P3 theo quy trình tương tự ở bước 3).
6) Xác định khoảng cách Lx từ tâm của mẫu căn chuẩn P2 tới tâm của mẫu căn chuẩn P3 và khoảng cách LY từ tâm của mẫu căn chuẩn P1 tới tâm của mẫu căn chuẩn P3. Chia Lx và Ly cho độ dãn đã được xác định của các mẫu căn chuẩn nhằm có được bước môđun CPX ở phía bên dưới và CPY ở phía bên phải của vùng trên cùng bên trái của mã hình (xem Hình 35)
CPx= Lx / AP
CPy= Ly / AP
trong đó AP là khoảng cách tính theo môđun của các tâm của mẫu căn chuẩn (xem Bảng E.1).
Đồng thời, xác định khoảng cách LX‘ theo chiều ngang từ tọa độ trung tâm của mẫu tìm kiếm trên cùng bên trái PUL tới các tọa độ trung tâm của mẫu căn chuẩn P1, và khoảng cách theo chiều thẳng đứng LY‘ từ tọa độ trung tâm của mẫu tìm kiếm trên cùng bên trái PUL tới các tọa độ trung tâm của mẫu căn chuẩn P2. Chia LX‘ và LY‘ theo công thức dưới đây nhằm xác định được bước môđun CPX‘ ở phía trên cùng và CPY‘ ở phía trái trong vùng trên cùng bên trái của mã hình.
CPX‘= LX‘ / (Tung độ của môđun trung tâm của mẫu căn chuẩn P1
– Tung độ của môđun trung tâm của mẫu tìm kiếm trên cùng bên trái PUL)
CPY‘= LY‘ / (Hoành độ của môđun trung tâm của mẫu căn chuẩn P2
– Hoành độ của môđun trung tâm của mẫu tìm kiếm trên cùng bên trái PUL)
Hình 36 – Vùng trên bên trái mã hình
7) Xác định lưới lấy mẫu bao phủ vùng trên cùng bên trái mã hình căn cứ vào các bước môđun CPX, CPX‘, CPY và CPY‘ thể hiện ở mỗi phía trong vùng trên cùng bên trái của mã hình.
8) Tương tự, xác định lưới lấy mẫu cho vùng trên cùng bên phải (được bao phủ bởi mẫu tìm kiếm trên cùng bên phải PUR, các mẫu căn chuẩn P1, P3, và P4) và vùng dưới cùng bên trái (được bao phủ bởi mẫu tìm kiếm trên cùng bên phải PUR, các mẫu căn chuẩn P2, P3 và P5) của mã hình.
9) Đối với mẫu căn chuẩn P6 (xem Hình 36), ước lượng tọa độ trung tâm tạm thời của nó từ các bước môđun CPX‘ và CPY‘, các giá trị của mẫu căn chuẩn được xác định từ các độ giãn của mẫu căn chuẩn P3, P4 và P5, các đường hướng dẫn đi qua trọng tâm của các mẫu căn chuẩn P3 và P4, P3 và P5 một cách lần lượt và các tọa độ trung tâm của các mẫu này.
Hình 37 – Vùng dưới bên phải mã hình
10) Lăp lại các bước từ 5) tới 8) để xác định lưới lấy mẫu cho vùng dưới cùng bên phải mã hình.
11) Các nguyên tắc như vậy cũng được áp dụng để xác định lưới lấy mẫu cho bất kỳ vùng nào của mã hình chưa được bao phủ.
i) Lấy mẫu một vùng 3 x 3 ảnh điểm của hình ảnh, được đặt vào giữa trên mỗi giao điểm của các đường lưới và xác định xem nó là tối hay sáng dựa vào ngưỡng tổng quát. Dựng một ánh xạ ma trận bit các môđun tối là số 1 trong hệ nhị phân và các môđun sáng là số 0 trong hệ nhị phân.
j) Giải mã thông tin định dạng kế cận với mẫu tìm kiếm trên cùng bên trái như quy định ở Phụ lục C.2 để thu được mức sửa lỗi và mẫu áp mặt nạ dữ liệu đã áp dụng cho mã hình. Nếu phát hiện các lỗi vượt quá khả năng sửa lỗi của thông tin định dạng, tiến hành quy trình tương tự để giải mã thông tin định dạng kế cận với mẫu tìm kiếm phía dưới bên trái và phía trên bên phải.
k) Nếu không thể nhận được dòng bit thông tin có giá trị về định dạng, xác định xem liệu nó có phải là một dòng có giá trị nếu đọc được theo hướng ngược lại hay không và nếu đúng như vậy thì cố gắng tiếp tục giải mã như mã hình ảnh phản chiếu với hoành độ và tung độ của hình ảnh được truyền đi.
l) Làm đến bước y.
m) Đối với mã hình Micro QR code, xác định các góc quay khả thi của mã hình bằng cách phân tích các góc của các đường từ bước b3) liên quan đến các trục cảm biến của hình ảnh, là J, J + 90°, J + 180° và J + 270°.
n) Vẽ đồ thị ba đường thẳng song song với mỗi trục của mẫu tìm kiếm và được đặt cách đều nhau ngang qua mẫu và đo các khoảng cách từ điểm A đến điểm B trên mỗi đường.
o) Tính kích thước X của môđun tạm thời của mã hình trên mỗi trục bằng một phần bảy giá trị trung bình của ba đoạn AB có được từ bước n.
p) Lần lượt lấy từng cạnh của đường viền mẫu tìm kiếm, kéo dài một đường thẳng ra ngoài từ mẫu tìm kiếm theo cả hai hướng, song song với đường rìa và cách rìa 0,5 X.
q) Tìm các mẫu căn chỉnh:
1) Nhận dạng hai đường rìa của mẫu tìm kiếm trên danh nghĩa vuông góc với nhau, mỗi đường có cả:
i) một vùng trống có độ rộng ít nhất bằng 1,5 X theo mỗi hướng;
ii) các vùng sáng và tối đan xen được đặt cách đều nhau một khoảng 1X vào giữa từ đường rìa của mẫu tìm kiếm theo hướng ngược lại (mẫu căn chỉnh phù hợp).
2) Kiểm tra xem trong mỗi mẫu căn chỉnh phù hợp có cùng một số môđun tối hay không và kiểm tra xem con số này có nằm trong phạm vi từ hai đến năm hay không.
r) Xác định cỡ hình tạm thời của mã hình từ số các yếu tố tối trong mẫu căn chỉnh:
– Nếu có hai yếu tố tối, cỡ mã hình là M1;
– Nếu có ba yếu tố tối, cỡ mã hình là M2;
– Nếu có ba yếu tố tối, cỡ mã hình là M3;
– Nếu có năm yếu tố tối, cỡ mã hình là M4.
s) Từ tâm của môđun tối đầu tiên trong mỗi cạnh của các mẫu căn chỉnh kẻ một đường thẳng song song với cạnh liền kề của mẫu tìm kiếm cắt đường tương ứng từ cạnh khác và lấy mẫu một vùng 3 x 3 ảnh điểm của hình ảnh cách nhau một khoảng 1X dọc theo đường thẳng đó để xác định tình trạng sáng và tối của mỗi môđun của thông tin định dạng. Xác định dòng bit thông tin định dạng bằng cách lấy các ảnh điểm tối là số 1 trong hệ nhị phân và các ảnh điểm sáng là số 0 trong hệ nhị phân.
t) Sử dụng phép toán logic XOR lên dòng bit với mẫu cho trong 6.9.2 để thoát ra khỏi chế độ áp mặt nạ thông tin định dạng và giải mã thông tin định dạng đó (áp dụng quy trình sửa lỗi nêu trong Phụ lục B nếu cần thiết) để thu được số mã hình (và sau là cỡ hình và mức sửa lỗi của mã hình) và mẫu mặt nạ dữ liệu áp dụng cho mã hình.
u) Nếu dòng bit thông tin định dạng không phải là một chuỗi có giá trị, xác định xem liệu nó có phải là một chuỗi có giá trị nếu đọc được theo hướng ngược lại hay không và nếu đúng như vậy thì cố gắng tiếp tục giải mã như mã hình ảnh phản chiếu với hoành độ và tung độ của hình ảnh được truyền đi. Nếu không có nhiều hơn hai bit khác với chuỗi có giá trị nêu trong Phụ lục C, thay thế chuỗi này và giải mã thông tin cỡ hình đã thay thế để có được số mã hình và mẫu áp mặt nạ dữ liệu.
v) Xác nhận bước môđun X trong mỗi trục bằng cách chia độ rộng tổng, từ đường rìa bên ngoài của mẫu tìm kiếm ngay cạnh vùng trống tới đường rìa bên ngoài của môđun tối cuối cùng trong mẫu căn chỉnh, cho số môđun tương ứng với cỡ hình của mã.
w) Dựng một lưới lấy mẫu, theo cỡ hình của mã, gồm các đường thẳng được đặt cách nhau một khoảng 1X theo mỗi trục, song song với nhau và với cạnh của mẫu tìm kiếm và chạy từ trọng tâm của các môđun thuộc mẫu căn chỉnh và từ các vị trí tương tự trong mẫu tìm kiếm.
x) Lấy mẫu một vùng 3 x 3 ảnh điểm của hình ảnh được đặt vào giữa trên mỗi giao điểm của các đường lưới và xác định xem nó là tối hay sáng dựa vào ngưỡng tổng quát. Dựng một ánh xạ ma trận bit các môđun tối là số 1 trong hệ nhị phân và các môđun sáng là số 0 trong hệ nhị phân.
y) Sử dụng phép toán lôgic XOR lên mẫu áp mặt nạ dữ liệu bằng vùng mã hóa của mã hình để thoát ra khỏi chế độ áp mặt nạ dữ liệu và phục hồi các ký tự mã hình thể hiện từ mã sửa lỗi và dữ liệu. Bước này ngược với tác động của quá trình áp mặt nạ dữ liệu đã áp dụng trong quy trình mã hóa.
z) Xác định các từ mã của mã hình theo quy tắc sắp xếp nêu trong 6.7.3
aa) Sắp xếp lại trình tự từ mã thành các khối theo yêu cầu đối với cỡ mã hình và mức sửa lỗi bằng cách đảo ngược lại quy trình xen kẽ như nêu trong mục 6.6 bước 3.
bb) Thực hiện quy trình tìm kiếm và giải mã sửa lỗi nêu trong Phụ lục B để sửa lỗi và vết xóa ở khả năng sửa lỗi lớn nhất đối với mức sửa lỗi và cỡ mã hình.
cc) Khôi phục lại dòng bit của gói tin gốc bằng cách ghép các khối dữ liệu thành chuỗi.
dd) Chia nhỏ dòng bit dữ liệu thành các phân đoạn, mỗi phân đoạn bắt đầu bằng một chỉ báo mode và độ dài của các phân đoạn này được xác định bằng chỉ dấu đếm ký tự theo sau chỉ báo mode.
ee) Giải mã từng phân đoạn theo các quy tắc đối với chế độ đang sử dụng.
12. Khả năng phân biệt tự động
QR code 2005 có thể được sử dụng trong môi trường phân biệt tự động với một số các mã hình khác (xem Phụ lục L). Mặc dù các mã hình Model 1 và QR 2005 có thể được phân biệt tự động bằng việc phân tích mẫu mặt nạ thông tin định dạng, các mã hình Model 1 không được sử dụng trong cùng môi trường với mã hình QR code 2005.
13. Dữ liệu được chuyển giao
13.1. Các nguyên tắc chung
Sự chuyển giao dữ liệu phải bao gồm tất cả các ký tự của dữ liệu được mã hóa. Không được chuyển giao các mẫu chức năng, thông tin cỡ hình và thông tin định dạng, các ký tự sửa lỗi, các ký tự thêm và ký tự dư. Chế độ chuyển giao mặc định đối với tất cả các dữ liệu phải là các byte.
Khối truyền đầu có cấu trúc không được chuyển giao bởi các bộ giải mã chạy trong mode lưu bộ đệm có nhiệm vụ tái lặp lại toàn bộ gói tin trước khi chuyển giao. Nếu bộ giải mã đang chạy trong mode không lưu bộ đệm thì khối truyền đầu có cấu trúc phải được chuyển thành hai byte đầu tiên của mỗi mã hình. Các bộ dịch phức tạp hơn bao gồm cả sự chuyển dữ liệu trong phương thức dịch kênh mở rộng được trình bày dưới đây.
13.2. Số phân định mã hình
ISO/IEC 15424 quy định quy trình chuẩn cho việc báo cáo mã hình đã được đọc cùng với các bộ lựa chọn đã được cài đặt trong bộ giải mã và bất kỳ một điểm đặc biệt nào gặp phải trong mã hình.
Một khi cấu trúc của dữ liệu (bao gồm cả việc sử dụng ECI) được nhận dạng, số phân định mã hình thích hợp phải được bộ giải mã thêm vào như là phần đầu đối với dữ liệu được chuyển giao; nếu sử dụng các ECI, số phân định mã hình là thực sự cần thiết. Xem Phụ lục F để tham khảo số phân định mã hình và các giá trị lựa chọn áp dụng cho QR code 2005.
13.3. Các phương thức dịch kênh mở rộng (ECI)
Trong các hệ thống hỗ trợ giao thức ECI, mỗi khi chuyển dữ liệu cần phải chuyển cả số phân định mã hình. Bất kỳ khi nào xuất hiện chỉ báo mode ECI thì chỉ báo này phải được chuyển thành ký tự thoát 5CHEX (thể hiện ký tự dấu vạch chéo ngược “\” trong ISO/IEC 8859-1 và trong quy định kỹ thuật AIM ECI và phản ánh ký tự”¥ * trong JIS X 0201). (Các) từ mã này thể hiện mã hiệu ECI được chuyển thành con số 6 chữ số bằng cách đảo ngược các quy tắc đã nêu trong Bảng 4. Sáu chữ số này phải được chuyển giao ngay lập tức thành các giá trị 8-bit tương ứng trong dải từ 30HEX tới 39HEX tiếp theo ký tự thoát.
Phần mềm ứng dụng khi gặp cụm ký tự \nnnnnn sẽ giải nghĩa tất cả các ký tự liên tiếp này như là một mã hiệu ECI được định nghĩa bởi mã hiệu 6 chữ số. Bộ dịch này vẫn còn có hiệu quả cho đến khi:
– phần cuối của dữ liệu được mã hóa;
– một sự thay đổi đối với phương thức ECI mới được tạo mã bằng chỉ báo mode 0111, đối tượng của các nguyên tắc theo quy định kỹ thuật AIM ECI.
Khi chuyển đổi thành phương thức dịch mặc định, bộ giải mã phải thông báo trình tự thoát thích hợp như là tiền tố của dữ liệu.
Nếu ký tự 5CHEX cần được sử dụng như là dữ liệu được mã hóa, sự chuyển giao phải được tiến hành như sau: bất kỳ khi nào ký tự 5CHEX biến thể như một dữ liệu, hai byte của giá trị sẽ được chuyển, tuy vậy một biến thể đơn lẻ luôn luôn là một ký tự thoát và biến thể kép chỉ ra dữ liệu thực.
VÍ DỤ 1
a) Dữ liệu được mã hóa (hex): 41 42 43 5C 31 32 33 34
Dữ liệu được chuyển thành: 41 42 43 5C 5C 31 32 33 34
b) Dữ liệu được mã hóa: <further data> theo ABC được mã hóa theo các quy tắc đối với ECI 123456
Dữ liệu được chuyển thành: 41 42 43 5C 31 32 33 34 35 36 <further data>
VÍ DỤ 2 (sử dụng dữ liệu trong 6.4.2.1)
Gói tin bao gồm chỉ báo mode ECI/ mã hiệu ECI/ chỉ báo mode/ chỉ dấu đếm ký tự/ dữ liệu ở dưới dạng
0111 00001001 0100 00000101 10100001 10100010 10100011 10100100 10100101
Số phân định mã hình: ]Q2 (xem Phụ lục F) phải được thêm vào khi có sự chuyển dữ liệu.
Chuyển thành (các giá trị hex.): 5D 51 32 5C 30 30 30 30 30 39 A1 A2 A3 A4 A5
Dữ liệu được mã hóa trong ECI 000009: ABGDE
Trong mode kết nối có cấu trúc, khi gặp chỉ báo mode ECI ở đầu mã hình, các ký tự dữ liệu tiếp theo phải được xem như là (các) mode ECI đang chạy ở phần cuối của mã hình có trước.
CHÚ THÍCH Ký tự 5CHEX tương đương với ký tự dấu vạch chéo ngược “\” trong ISO/IEC 8859-1 và “¥” trong JIS X 0201.
13.4. FNC 1
Trong các mode có ký tự FNC1 ẩn ở vị trí đầu tiên hoặc thứ hai, ký tự ẩn này không thể được chuyển trực tiếp bởi vì không có giá trị byte tương ứng với nó. Vì vậy, cần thiết phải chỉ ra sự hiện hữu của nó ở vị trí đầu tiên hoặc thứ hai bằng việc chuyển các số phân định mã hình thích hợp (]Q3, ]Q4, ]Q5 hay ]Q6). Ở các vị trí khác trong mã hình thì tùy theo các quy định kỹ thuật ứng dụng có liên quan có thể xuất hiện chỉ dấu phân cách trường dữ liệu, được thể hiện trong mode chữ số bằng ký tự % và trong mode byte bằng ký tự GS (ASCII/JIS8 giá trị 1DHEX). Trong cả hai trường hợp, bộ giải mã phải chuyển giao ASCII/JIS8 giá trị 1DHEX.
Nếu trong các mã hình ở mode FNC1 thì ký tự % cần được mã hóa như là dữ liệu trong khi đó ở mode chữ số thì nó phải được thể hiện trong mã hình bằng %%. Nếu gặp ký tự kép này thì bộ giải mã sẽ chuyển thành ký tự % đơn.
Phụ lục A
(quy định)
Các đa thức sinh tìm lỗi và sửa lỗi
Đa thức sinh kiểm tra ký tự được sử dụng để phân chia đa thức từ mã dữ liệu, trong đó mỗi từ mã là hệ số của đa thức chia theo cấp bậc giảm dần. Các hệ số của số dư trong phép chia này chính là các giá trị của từ mã sửa lỗi.
Bảng A.1 chỉ ra các đa thức sinh đối với các mã sửa lỗi được sử dụng cho mỗi cỡ hình và mức, cho mọi mã hình QR code 2005. Có thể tham khảo Bảng 9 để biết một số từ mã sửa lỗi được yêu cầu cho một cỡ hình và một mức sửa lỗi đặc biệt. Trong Bảng A.1, a là phần tử nguyên thủy 2 theo GF(28). Mỗi một đa thức sinh là kết quả của các đa thức bậc một: X-20, X-21,…, X-2n-1 trong đó n là bậc của đa thức sinh.
Bảng A.1 – Các đa thức sinh đối với các từ mã sửa lỗi RS
Phụ lục B
(quy định)
Các bước giải mã sửa lỗi
Lấy mã hình cỡ 1-M làm ví dụ. Với mã hình này, mã (26, 16, 4) RS dưới GF(28) được dùng để sửa lỗi. Giả sử mã sau khi gỡ mặt nạ dữ liệu khỏi mã hình là:
R = (r0, r1 , r2 ,…. r25)
Hay là,
R(x)= r0+ r1x + r2x2+…+ r25x25
ri(i= 0-25) là một phần tử của GF(28)
(i) Tính toán các tập hợp n (trong đó n bằng số từ mã sẵn có để sửa lỗi, cho bởi (c – k – p) như nêu trong Bảng 9).
Tìm tập hợp Si(i= 0-(n – 1))
S0= R(1)= r0 + r1 + r2 + … + r25
S1= R(a)=r0 + r1a + r2a2 + … + r25a25
….
….
S7= R(a7)= r0+ r1a7+ r2a14 +… + r25a175
trong đó a là phần tử nguyên thủy của GF(28)
(ii) Tìm vị trí lỗi
S0s4 – S1s3 + S2s2 – S3s1 + S4 = 0
S1s4 – S2s3 + S3s2 – S4s1 + S5 = 0
S2s4 – S3s3 + S4s2 – S5s1 + S6 = 0
S3s4 – S4s3 + S5s2 – S6s1 + S7 = 0
Sử dụng công thức trên để tìm biến si (i = 1-4) cho từng vị trí lỗi
Sau đó thay biến si đối với đa thức dưới đây và thay lần lượt từng phần tử của GF(28).
s(x)= s4 + s3x+ s2x2 + s1x3 + x4
Đến đây, lỗi tìm thấy ở chữ số thứ j (đếm từ số thứ 0) cho phần tử aj làm cho s (a) = 0
(iii) Tìm kích thước lỗi
Giả sử bước (ii) tìm thấy lỗi ở chữ số j1, j2, j4, sau đây sẽ tìm kích thước lỗi.
Y1aj1 + Y2aj2 + Y3aj3 + Y4aj4 = S0
Y1a2j1 + Y2a2j2 + Y3a2j3 + Y4a2j4 = S1
Y1a3j1 + Y2a3j2 + Y3a3j3 + Y4a3j4 = S2
Y1a4j1 + Y2a4j2 + Y3a4j3 + Y4a4j4 = S3
Giải phương trình trên để tìm ra kích thước từng lỗi Yi(i= 1- 4).
(iv) Sửa lỗi
Sửa lỗi bằng cách cộng phần bù giá trị kích thước lỗi vào từng vị trí bị lỗi.
Phụ lục C
(quy định)
Thông tin định dạng
Thông tin định dạng bao gồm một chuỗi 15 bit, trong đó có 5 bit dữ liệu và 10 bit sửa lỗi BCH. Phụ lục này mô tả cách tính toán các bit sửa lỗi và quá trình giải mã sửa lỗi.
C.1. Cách tính toán bit sửa lỗi
Phải sử dụng mã BCH (15,5) để sửa lỗi. Đa thức mà hệ số của nó là dòng bit dữ liệu thì phải được chia cho đa thức sinh G(x)= x10 + x8 + x5 + x4 + x2 + x + 1. Chuỗi hệ số của đa thức dư phải được nối thêm vào dòng bit dữ liệu để tạo thành dòng mã (15,5) BCH. Cuối cùng, việc áp mặt nạ phải được thực hiện bằng cách áp dụng phép toán logic XOR trên dòng bit với 101010000010010 (đối với mã hình QR code) hoặc 100010001000101 (đối với mã hình Micro QR code) để đảm bảo mẫu bit thông tin định dạng không phải toàn các chữ số 0 đối với bất kỳ tổ hợp của mẫu mặt nạ dữ liệu và mức sửa lỗi.
VÍ DỤ
Mức sửa lỗi M; mẫu mặt nạ dữ liệu 101
Chuỗi nhị phân: 00101
Đa thức: x2 + 1
Nâng lên lũy thừa theo (15-5) được: x12 + x10
Chia cho G(x)= (x10 + x8 + x5 + x4 + x2 + x + 1)x2 + (x7+ x6 + x4 + x3 +x2)
Cộng thêm chuỗi hệ số của đa thức dư ở trên vào dòng dữ liệu thông tin định dạng:
00101 + 0011011100 -> 001010011011100
Thực hiện phép toán logic XOR với mặt nạ 101010000010010
Kết quả: 100000011001110
Đặt các bit này vào vùng thông tin định dạng như mô tả ở 6.9.
C.2. Các bước giải mã sửa lỗi
Tách mặt nạ của các môđun thông tin định dạng bằng cách thực hiện phép toán logic XOR trên chuỗi bit với mẫu mặt nạ 101010000010010 (đối với mã hình QR code) hoặc 100010001000101 (đối với mã hình Micro QR code).
Khoảng cách Hamming của mã sửa lỗi sử dụng trong thông tin định dạng là 7, nó tạo điều kiện sửa được đến 3 lỗi bit. Có 32 chuỗi bit có giá trị đối với thông tin định dạng, vì vậy việc giải mã bằng cách sử dụng Bảng C.1 làm bảng tra cứu là có hiệu quả. Các chuỗi bit đọc được từ vùng thông tin định dạng của mã hình sẽ được so sánh với 32 dòng bit thông tin định dạng có giá trị trong Bảng C.1 trên cơ sở từng bit. Dòng bit từ Bảng C.1 gần sát nhất với dòng bit đọc được từ mã hình sẽ được chọn, đưa ra các dòng khác nhau 3 bit hay ít hơn.
VÍ DỤ (đối với mã hình QR code)
Dòng bit đọc được từ vùng thông tin định dạng: 000011101001001
Dòng bit gần sát nhất từ bảng: 000111101011001
Vì chỉ có 2 bit khác nhau giữa hai dòng bit, phép so sánh này là đạt, nên định dạng mã hình được xác nhận là sử dụng mức sửa mỗi M với mẫu áp mặt nạ 011.
Bảng C.1 Các chuỗi bit thông tin định dạng có giá trị
Chuỗi trước khi áp mặt nạ |
Chuỗi sau khi áp mặt nạ (Mã hình QR code) |
Chuỗi sau khi áp mặt nạ (Mã hình Micro QR code) |
|||
Bit dữ liệu |
Bit sửa lỗi |
Nhị phân |
hex |
Nhị phân |
hex |
00000 |
0000000000 |
101010000010010 |
5412 |
100010001000101 |
4445 |
00001 |
0100110111 |
101000100100101 |
5125 |
100000101110010 |
4172 |
00010 |
1001101110 |
101111001111100 |
5E7C |
100111000101011 |
4E2B |
00011 |
1101011001 |
101101101001011 |
5B4B |
100101100011100 |
4B1C |
00100 |
0111101011 |
100010111111001 |
45F9 |
101010110101110 |
55AE |
00101 |
0011011100 |
100000011001110 |
40CE |
101000010011001 |
5099 |
00110 |
1110000101 |
100111110010111 |
4F97 |
101111111000000 |
5FC0 |
00111 |
1010110010 |
100101010100000 |
4AA0 |
101101011110111 |
5AF7 |
01000 |
1111010110 |
111011111000100 |
77C4 |
110011110010011 |
6793 |
01001 |
1011100001 |
111001011110011 |
72F3 |
110001010100100 |
62A4 |
01010 |
0110111000 |
111110110101010 |
7DAA |
110110111111101 |
6DFD |
01011 |
0010001111 |
111100010011101 |
789D |
110100011001010 |
68CA |
01100 |
1000111101 |
110011000101111 |
662F |
111011001111000 |
7678 |
01101 |
1100001010 |
110001100011000 |
6318 |
111001101001111 |
734F |
01110 |
0001010011 |
110110001000001 |
6C41 |
111110000010110 |
7C16 |
01111 |
0101100100 |
110100101110110 |
6976 |
111100100100001 |
7921 |
10000 |
1010011011 |
001011010001001 |
1689 |
000011011011110 |
06DE |
10001 |
1110101100 |
001001110111110 |
13BE |
000001111101001 |
03E9 |
10010 |
0011110101 |
001110011100111 |
1CE7 |
000110010110000 |
0CB0 |
10011 |
0111000010 |
001100111010000 |
19D0 |
000100110000111 |
0987 |
10100 |
1101110000 |
000011101100010 |
0762 |
001011100110101 |
1735 |
10101 |
1001000111 |
000001001010101 |
0255 |
001001000000010 |
1202 |
10110 |
0100011110 |
000110100001100 |
0D0C |
001110101011011 |
1D5B |
10111 |
0000101001 |
000100000111011 |
083B |
001100001101100 |
186C |
11000 |
0101001101 |
011010101011111 |
355F |
010010100001000 |
2508 |
11001 |
0001111010 |
011000001101000 |
3068 |
010000000111111 |
203F |
11010 |
1100100011 |
011111100110001 |
3F31 |
010111101100110 |
2F66 |
11011 |
1000010100 |
011101000000110 |
3A06 |
010101001010001 |
2A51 |
11100 |
0010100110 |
010010010110100 |
24B4 |
011010011100011 |
34E3 |
11101 |
0110010001 |
010000110000011 |
2183 |
011000111010100 |
31D4 |
11110 |
1011001000 |
010111011011010 |
2EDA |
011111010001101 |
3E8D |
11111 |
1111111111 |
010101111101101 |
2BED |
011101110111010 |
3BBA |
Phụ lục D
(quy định)
Thông tin cỡ hình
Thông tin cỡ hình chứa một chuỗi 18 bit bao gồm 6 bit dữ liệu và 12 bit sửa lỗi Golay. Phụ lục này mô tả cách tính toán các bit sửa lỗi và quá trình giải mã sửa lỗi.
D.1. Cách tính toán bit sửa lỗi.
Phải sử dụng mã Golay (18,6) để sửa lỗi. Những đa thức mà hệ số là dòng bit dữ liệu phải được phân theo đa thức tổng quát G(x)= X12 + X11 + X10 + X9 + X8 + X5 + X2 + 1. Chuỗi hệ số của đa thức dư phải được nối thêm vào dòng bit dữ liệu để tạo thành dòng mã Golay (18,6).
Ví DỤ
Cỡ hình | 7 |
Chuỗi nhị phân: | 000111 |
Đa thức: | x2 + x + 1 |
Nâng lên lũy thừa bậc (18-6) được: | x14 + x13 + x12 |
Chia cho G(x) | = (x12 + x11 + x10 + x9 + x8 + x5 + x2 + 1) x2 + (x11 + x10 + x7+ x4 + x2) |
Cộng thêm chuỗi hệ số của đa thức dư trên đây vào dòng dữ liệu thông tin cỡ hình.
000111 +110010010100 -> 000111110010010100
Đặt các bit này vào các vùng thông tin cỡ hình như nêu trong 6.10.
Bảng D.1 dưới đây sẽ cho thấy dòng bit thông tin cỡ hình đầy đủ của từng cỡ hình.
D.2. Các bước giải mã sửa lỗi
Khoảng cách Hamming của mã sửa lỗi sử dụng trong thông tin cỡ hình là 8, nó tạo điều kiện sửa được đến 3 lỗi bit. Có 34 chuỗi bit có giá trị đối với thông tin cỡ hình, vì vậy việc giải mã bằng cách sử dụng Bảng D.1 làm bảng tra cứu là có hiệu quả. Các chuỗi bit đọc được từ vùng thông tin cỡ hình của mã hình sẽ được so sánh với 34 dòng bit thông tin cỡ hình có giá trị trong Bảng D.1 trên cơ sở từng bit. Dòng bit từ Bảng D.1 gần sát nhất với dòng bit đọc được từ mã hình đã được lấy, với điều kiện là các dòng chỉ khác nhau 3 bit hay ít hơn sau khi so sánh.
VÍ DỤ
Dòng bit đọc được từ vùng thông tin cỡ hình: 000111110110010100
Dòng bit gần sát nhất từ bảng: 000111110010010100
Vì chỉ có 1 bit khác nhau giữa hai dòng bit, phép so sánh này là đạt, nên cỡ mã hình được xác nhận là 7.
Bảng D.1 – Dòng bit thông tin cỡ hình cho từng cỡ hình
Cỡ hình |
Dòng bit thông tin cỡ hình |
Tương đương hệ 16 |
7 |
00 0111 1100 1001 0100 |
07C94 |
8 |
00 1000 0101 1011 1100 |
085BC |
9 |
00 1001 1010 1001 1001 |
09A99 |
10 |
00 1010 0100 1101 0011 |
0A4D3 |
11 |
00 1011 1011 1111 0110 |
0BBF6 |
12 |
00 1100 0111 0110 0010 |
0C762 |
13 |
00 1101 1000 0100 0111 |
0D847 |
14 |
00 1110 0110 0000 1101 |
0E60D |
15 |
00 1111 1001 0010 1000 |
0F928 |
16 |
01 0000 1011 0111 1000 |
10B78 |
17 |
01 0001 0100 0101 1101 |
1145D |
18 |
01 0010 1010 0001 0111 |
12A17 |
19 |
01 0011 0101 0011 0010 |
13532 |
20 |
01 0100 1001 1010 0110 |
149A6 |
21 |
01 0101 0110 1000 0011 |
15683 |
22 |
01 0110 1000 1100 1001 |
168C9 |
23 |
01 0111 0111 1110 1100 |
177EC |
24 |
01 1000 1110 1100 0100 |
18EC4 |
25 |
01 1001 0001 1110 0001 |
191E1 |
26 |
01 1010 1111 1010 1011 |
1AFAB |
27 |
01 1011 0000 1000 1110 |
1B08E |
28 |
01 1100 1100 0001 1010 |
1CC1A |
29 |
01 1101 0011 0011 1111 |
1D33F |
30 |
01 1110 1101 0111 0101 |
1ED75 |
31 |
01 1111 0010 0101 0000 |
1F250 |
32 |
10 0000 1001 1101 0101 |
209D5 |
33 |
10 0001 0110 1111 0000 |
216F0 |
34 |
10 0010 1000 1011 1010 |
228BA |
35 |
10 0011 0111 1001 1111 |
2379F |
36 |
10 0100 1011 0000 1011 |
24B0B |
37 |
10 0101 0100 0010 1110 |
2542E |
38 |
10 0110 1010 0110 0100 |
26A64 |
39 |
10 0111 0101 0100 0001 |
27541 |
40 |
10 1000 1100 0110 1001 |
28C69 |
Phụ lục E
(quy định)
Vị trí của mẫu căn chuẩn
Mẫu căn chuẩn được bố trí đối xứng hai bên đường chéo chạy từ góc trên bên trái xuống góc dưới bên phải của mã hình. Chúng được bố trí càng đều nhau càng tốt giữa mẫu căn chỉnh và phía đối diện của mã hình, những khoảng không bằng nhau sẽ được đặt vào giữa mẫu căn chỉnh và mẫu căn chuẩn đầu tiên bên trong mã hình.
Bảng E.1 dưới đây cho thấy số lượng mẫu căn chuẩn và hoành độ và tung độ của môđun trung tâm của từng mẫu căn chuẩn đối với mỗi cỡ hình.
Bảng E.1 – Hoành độ/ tung độ của môđun trung tâm của các mẫu căn chuẩn
Cỡ hình |
Số lượng mẫu căn chuẩn |
Hoành độ/ tung độ của môđun trung tâm |
||||||
1 |
0 |
|
|
|
|
|
|
|
2 |
1 |
6 |
18 |
|
|
|
|
|
3 |
1 |
6 |
22 |
|
|
|
|
|
4 |
1 |
6 |
26 |
|
|
|
|
|
5 |
1 |
6 |
30 |
|
|
|
|
|
6 |
1 |
6 |
34 |
|
|
|
|
|
7 |
6 |
6 |
22 |
38 |
|
|
|
|
8 |
6 |
6 |
24 |
42 |
|
|
|
|
9 |
6 |
6 |
26 |
46 |
|
|
|
|
10 |
6 |
6 |
28 |
50 |
|
|
|
|
11 |
6 |
6 |
30 |
54 |
|
|
|
|
12 |
6 |
6 |
32 |
58 |
|
|
|
|
13 |
6 |
6 |
34 |
62 |
|
|
|
|
14 |
13 |
6 |
26 |
46 |
66 |
|
|
|
15 |
13 |
6 |
26 |
48 |
70 |
|
|
|
16 |
13 |
6 |
26 |
50 |
74 |
|
|
|
17 |
13 |
6 |
30 |
54 |
78 |
|
|
|
18 |
13 |
6 |
30 |
56 |
82 |
|
|
|
19 |
13 |
6 |
30 |
58 |
86 |
|
|
|
20 |
13 |
6 |
34 |
62 |
90 |
|
|
|
21 |
22 |
6 |
28 |
50 |
72 |
94 |
|
|
22 |
22 |
6 |
26 |
50 |
74 |
98 |
|
|
23 |
22 |
6 |
30 |
54 |
78 |
102 |
|
|
24 |
22 |
6 |
28 |
54 |
80 |
106 |
|
|
25 |
22 |
6 |
32 |
58 |
84 |
110 |
|
|
26 |
22 |
6 |
30 |
58 |
86 |
114 |
|
|
27 |
22 |
6 |
34 |
62 |
90 |
118 |
|
|
28 |
33 |
6 |
26 |
50 |
74 |
98 |
122 |
|
29 |
33 |
6 |
30 |
54 |
78 |
102 |
126 |
|
30 |
33 |
6 |
26 |
52 |
78 |
104 |
130 |
|
31 |
33 |
6 |
30 |
56 |
82 |
108 |
134 |
|
32 |
33 |
6 |
34 |
60 |
86 |
112 |
138 |
|
33 |
33 |
6 |
30 |
58 |
86 |
114 |
142 |
|
34 |
33 |
6 |
34 |
62 |
90 |
118 |
146 |
|
35 |
46 |
6 |
30 |
54 |
78 |
102 |
126 |
150 |
36 |
46 |
6 |
24 |
50 |
76 |
102 |
128 |
154 |
37 |
46 |
6 |
28 |
54 |
80 |
106 |
132 |
158 |
38 |
46 |
6 |
32 |
58 |
84 |
110 |
136 |
162 |
39 |
46 |
6 |
26 |
54 |
82 |
110 |
138 |
166 |
40 |
46 |
6 |
30 |
58 |
86 |
114 |
142 |
170 |
Ví dụ, trong mã cỡ hình 7 bảng này xác định được các giá trị 6, 22 và 38. Vì vậy, các mẫu căn chuẩn được tập trung tại các vị trí (dòng, cột) (6, 22), (22, 6), (22, 22), (22, 38), (38, 22), (38, 38). Chú ý rằng các tọa độ (6, 6), (6, 38), (38, 6) đã bị các mẫu tìm kiếm chiếm giữ, do đó không được dùng cho mẫu căn chuẩn.
Phụ lục F
(quy định)
Số phân định mã hình
Số phân định mã hình được cấp cho QR code 2005 trong ISO/IEC 15424, nó phải được thêm vào phần đầu của dữ liệu được giải mã nhờ một bộ giải mã thích hợp, là:
]Qm
trong đó:
] là số phân định mã hình (ASCII giá trị 93)
Q là ký tự mã dành cho mã hình QR code 2005
m là ký tự thay đổi, có một trong những giá trị được xác định tại Bảng F1.
Bảng F1 – Chọn số phân định mã hình và giá trị thay đổi
Giá trị thay đổi |
Chọn |
0 |
Mã hình Model 1 |
1 |
Mã hình Model 2, không áp dụng giao thức ECI |
2 |
Mã hình Model 2, áp dụng giao thức ECI |
3 |
Mã hình Model 2, không áp dụng giao thức ECI, FNC1 tại vị trí đầu tiên |
4 |
Mã hình Model 2, áp dụng giao thức ECI, FNC1 tại vị trí đầu tiên |
5 |
Mã hình Model 2, không áp dụng giao thức ECI, FNC1 tại vị trí thứ hai |
6 |
Mã hình Model 2, áp dụng giao thức ECI, FNC1 tại vị trí thứ hai |
Các giá trị của m có thể là 0, 1, 2, 3, 4, 5, 6.
Phụ lục G
(quy định)
Chất lượng in QR code 2005 – Các khía cạnh đặc thù của mã hình
Bởi có sự khác biệt về các cấu trúc mã hình và các thuật toán giải mã tham chiếu nên ảnh hưởng của các thông số nhất định đến hiệu suất đọc mã hình có thể khác nhau. ISO/IEC 15415 quy định các yêu cầu kỹ thuật của mã hình để xác định việc phân cấp các thuộc tính nhất định riêng biệt về mã hình. Vì vậy, phụ lục này quy định phương pháp phân cấp sự hư hỏng mẫu cố định và các thông số bổ sung (thông tin định dạng và thông tin cỡ hình) sẽ được sử dụng khi áp dụng ISO/IEC 15415 cho QR code 2005.
G.1. Sự hư hỏng mẫu cố định
G.1.1. Các đặc tính được đánh giá
G.1.1.1. Mã hình QR code
Các đặc tính được đánh giá là:
· Ba đoạn ở góc, mỗi đoạn bao gồm:
○ mẫu tìm kiếm 7 x 7,
○ các dấu phân cách có độ rộng 1X bao quanh hai cạnh phía bên trong mẫu tìm kiếm,
○ phần vùng trống tối thiểu có độ rộng bốn môđun (hoặc nhiều hơn nếu ứng dụng quy định) được mở rộng ra một độ dài 15 môđun dọc theo hai cạnh phía ngoài mẫu tìm kiếm.
· Hai mẫu căn chỉnh của các môđun sáng và tối đan xen kết nối các góc trong của các mẫu tìm kiếm.
· Các mẫu căn chuẩn 5 x 5 (nếu có, trong mã hình Model 2 cỡ hình 2 hoặc lớn hơn).
Các đặc tính liệt kê ở trên phải được đánh giá là sáu đoạn, đó là:
· ba đoạn ở góc (các mẫu tìm kiếm với các dấu phân cách kèm theo và phần vùng trống đã biết) (tương ứng là các đoạn A1, A2 và A3),
· hai mẫu căn chỉnh (tương ứng là các đoạn B1 và B2),
· một đoạn đơn bao gồm tất cả các mẫu căn chuẩn (đoạn C).
Khi một mẫu căn chỉnh cắt một mẫu căn chuẩn, năm môđun trùng với mẫu căn chuẩn được đánh giá là phần của mẫu căn chỉnh và của cả mẫu căn chuẩn.
Ví dụ, trong mã hình cỡ 7 (45 x 45 môđun), mỗi đoạn A chiếm 168 môđun; mỗi đoạn B dài 29 môđun và đoạn C chiếm tổng số 150 môđun (có nghĩa là 6 x 25).
Hình G.1 dưới đây minh họa những đoạn này, trong trường hợp mã hình cỡ 7. A1, A2 và A3 chỉ ba đoạn ở góc; B1 và B2 chỉ hai đoạn của mẫu căn chỉnh và C chỉ đoạn C đơn lẻ (bao gồm 6 mẫu căn chuẩn).
Hình G.1 – Các đoạn mẫu cố định của QR code 2005
G.1.1.2. Mã hình Micro QR code
Các đặc tính được đánh giá là:
· Đoạn ở góc, bao gồm:
○ mẫu tìm kiếm,
○ các dấu phân cách có độ rộng 1X liền kề với hai cạnh phía bên trong mẫu tìm kiếm,
○ phần vùng trống tối thiểu có độ rộng hai môđun (hoặc nhiều hơn nếu ứng dụng quy định) được mở rộng ra một độ dài 11 môđun dọc theo hai cạnh phía ngoài mẫu tìm kiếm.
· Hai mẫu căn chỉnh của các môđun sáng và tối đan xen chạy dọc theo cạnh trên cùng và bên trái mã hình từ mẫu tìm kiếm.
Các đặc tính liệt kê ở trên phải được đánh giá là ba đoạn, đó là:
· đoạn ở góc (mẫu tìm kiếm với các dấu phân cách kèm theo và phần vùng trống đã biết) (đoạn A), chiếm 104 môđun,
· hai mẫu căn chỉnh (tương ứng là các đoạn B1 và B2),
Ví dụ, trong mã hình cỡ M4 (17 x 17 môđun), mỗi đoạn B có độ dài 9 môđun.
Hình G.2 dưới đây minh họa những đoạn này, trong trường hợp mã hình cỡ M4. A chỉ đoạn ở góc; B1 và B2 chỉ hai đoạn của mẫu căn chỉnh.
Hình G.2 – Các đoạn mẫu cố định của Micro QR code 2005
G.1.2. Phân cấp hư hỏng của mẫu cố định
Phải phân cấp sự hư hỏng của mỗi đoạn trên cơ sở sự biến điệu của các môđun riêng tạo nên nó.
Phải lần lượt áp dụng thủ tục dưới đây cho mỗi đoạn.
a) Từ hình ảnh trên thang độ xám chuẩn của mã hình, tìm cấp biến điệu cho mỗi môđun căn cứ vào các giá trị quy định trong ISO/IEC 15415. Vì trạng thái tự nhiên sáng hoặc tối theo dự kiến của một môđun xác định là biết được, nên bất kỳ môđun nào dự kiến là tối nhưng lại có hệ số phản xạ trên ngưỡng tổng quát và bất kỳ môđun nào dự kiến là sáng nhưng lại có hệ số phản xạ dưới ngưỡng tổng quát phải được phân cấp biến điệu ở cấp 0.
b) Đối với mỗi mức về cấp biến điệu, giả sử tất cả các môđun không đạt được cấp đó hoặc một cấp cao hơn là các lỗi về môđun, và nhận được một cấp hư hỏng phỏng đoán căn cứ vào ngưỡng về cấp đã biết được nêu trong Bảng G.1. Lấy giá trị thấp hơn mức về cấp biến điệu và cấp hư hỏng phỏng đoán, cấp hư hỏng phỏng đoán được xác định như sau:
1) Đối với mỗi đoạn A1, A2 và A3 hoặc đoạn A trong mã hình Micro QR code, đếm số lỗi môđun.
2) Đối với các đoạn B1 và B2, đếm số lỗi môđun. Biểu diễn con số này thành tỷ lệ của con số tổng các môđun trong đoạn.
3) Đối với các đoạn B1 và B2, lấy các nhóm năm môđun liền kề và tiến hành cùng đoạn đã biết theo các bước của một môđun, kiểm tra xác nhận trong tất cả nhóm năm môđun liền kề không có nhiều hơn hai môđun bị hư hỏng; nếu phép kiểm tra này không đạt, cấp của đoạn đó phải là 0. Phép kiểm tra này không áp dụng cho Micro QR code.
4) Đối với đoạn C (chỉ với mã hình QR code), đếm số mẫu căn chuẩn có một lỗi về môđun. Thể hiện con số này thành tỷ lệ của số mẫu căn chuẩn trong mã hình.
5) Gán một cấp hư hỏng phỏng đoán cho mỗi đoạn căn cứ vào ngưỡng về cấp được nêu trong Bảng G.1.
c) Cấp hư hỏng của mẫu cố định đối với đoạn đã biết phải là cấp thu được cao nhất đối với tất cả các mức về cấp biến điệu.
Bảng G.1 – Ngưỡng về cấp đối với sự hư hỏng của mẫu cố định trong QR code 2005
Đoạn A1, A2 và A3 (QR code); |
Đoạn B1 và B2 (QR code) |
Đoạn B1 và B2 (Micro QR code) |
Đoạn C (QR code) |
Cấp |
Số các lỗi môđun |
Tỷ lệ của tổng môđun với các lỗi môđun |
Tỷ lệ của tổng môđun với các lỗi môđun |
Tỷ lệ của các mẫu căn chuẩn với các lỗi môđun |
|
0 |
0% |
0% |
0% |
4 |
1 |
≤ 7% |
|
≤ 10% |
3 |
2 |
≤ 11 % |
≤ 30 % |
≤ 20 % |
2 |
3 |
≤ 14 % |
|
≤ 30 % |
1 |
≥ 4 |
> 14 % |
> 30 % |
> 30 % |
0 |
G.2. Phân cấp các thông số bổ sung
Mã hình QR code 2005 có một bộ đôi các môđun thể hiện thông tin xác định sự định dạng của mã hình, và các mã hình cỡ 7 đến 40 cũng có một bộ đôi các môđun thể hiện thông tin xác định cỡ của mã hình. Mã hình Micro QR code có một bộ đơn các môđun thể hiện thông tin xác định sự định dạng của mã hình. Dữ liệu này yêu cầu được tìm ra một cách xác thực vào giai đoạn sớm của quá trình giải mã và nếu nó không thể giải mã được thì phần còn lại của mã hình cũng không thể giải mã được. Vì lý do này, các khối môđun thông tin định dạng và thông tin cỡ hình được phân cấp riêng biệt (giống với phương pháp đối với sự hư hại của mẫu cố định), và các cấp của chúng được tính vào trong sự xác định cấp tổng thể của mã hình.
G.2.1. Phân cấp thông tin định dạng
Đối với mỗi khối thông tin định dạng, xác định cấp cho khối theo phương pháp sau:
a) Từ hình ảnh trên thang độ xám chuẩn của mã hình, tìm cấp biến điệu cho mỗi môđun căn cứ vào các giá trị quy định trong ISO/IEC 15415. Vì trạng thái tự nhiên sáng hoặc tối theo dự kiến của một môđun xác định là biết được sau khi giải mã, nên bất kỳ môđun nào dự kiến là tối nhưng lại có hệ số phản xạ trên ngưỡng tổng quát và bất kỳ môđun nào dự kiến là sáng nhưng lại có hệ số phản xạ dưới ngưỡng tổng quát phải được phân cấp biến điệu ở cấp 0. Nếu không thể giải mã thông tin cỡ hình trong khối thì cấp cho khối phải là 0.
b) Đối với mỗi mức về cấp biến điệu:
1) Giả sử tất cả các môđun không đạt được cấp biến điệu đó hoặc một cấp cao hơn là các lỗi về môđun, và nhận được một cấp phỏng đoán căn cứ vào Bảng G.3:
Bảng G.2 – Phân cấp phỏng đoán thông tin định dạng
Số lỗi môđun |
Cấp |
0 |
4 |
1 |
3 |
2 |
2 |
3 |
1 |
≥ 4 |
0 |
2) Chọn giá trị thấp hơn cấp MOD và cấp phỏng đoán ở mỗi mức làm cấp cho mức đó, như được chỉ rõ ở Bảng G.4.
3) Cấp cho khối đã biết phải là cấp thu được cao nhất, như được chỉ rõ ở Bảng G.4.
Bảng G.3 – Ví dụ về phân cấp khối thông tin định dạng
Cấp biến điệu |
Cấp phỏng đoán |
Giá trị thấp hơn các cấp |
4 |
2 |
2 |
3 |
2 |
2 |
2 |
3 |
2 |
1 |
3 |
1 |
0 |
4 |
0 |
|
Cấp (cao nhất) được chọn |
2 |
c) Cấp thông tin định dạng phải là:
1) Đối với mã hình QR code, giá trị trung bình của các cấp của hai khối thông tin định dạng, được làm tròn lên số nguyên tiếp theo nếu cần thiết.
2) Đối với mã hình Micro QR code, xác định cấp theo bước 2 c).
G.2.2. Phân cấp thông tin cỡ hình (mã hình QR code)
Đối với mỗi khối thông tin cỡ hình, xác định cấp cho khối đó theo phương pháp sau.
a) Tìm cấp biến điệu cho mỗi môđun căn cứ vào các giá trị quy định trong ISO/IEC 15415. Vì trạng thái tự nhiên sáng hoặc tối theo dự kiến của một môđun xác định là biết được sau khi giải mã, nên bất kỳ môđun nào dự kiến là tối nhưng lại có hệ số phản xạ trên ngưỡng tổng quát và bất kỳ môđun nào dự kiến là sáng nhưng lại có hệ số phản xạ dưới ngưỡng tổng quát phải được phân cấp biến điệu ở cấp 0. Nếu không thể giải được mã thông tin cỡ hình trong khối, thì cấp cho khối phải là 0.
b) Đối với mỗi mức về cấp biến điệu:
1) Giả sử tất cả các môđun không đạt được cấp biến điệu đó hoặc một cấp cao hơn là các lỗi về môđun, và nhận được một cấp phỏng đoán căn cứ vào Bảng G.5:
Bảng G.4 – Phân cấp phỏng đoán thông tin cỡ hình
Số lỗi môđun |
Cấp |
0 |
4 |
1 |
3 |
2 |
2 |
3 |
1 |
≥ 4 |
0 |
2) Chọn giá trị thấp hơn cấp MOD và cấp phỏng đoán ở mỗi mức làm cấp cho mức đó, như được chỉ rõ ở Bảng G.6.
3) Cấp cho khối đã biết phải là cấp thu được cao nhất, như được chỉ rõ ở Bảng G.6.
Bảng G.5 – Ví dụ về phân cấp khối thông tin cỡ hình
Cấp biến điệu |
Cấp phỏng đoán |
Giá trị thấp hơn của các cấp |
4 |
2 |
2 |
3 |
2 |
2 |
2 |
3 |
2 |
1 |
3 |
1 |
0 |
4 |
0 |
|
Cấp (cao nhất) được chọn |
2 |
c) Cấp thông tin cỡ hình phải là giá trị trung bình các cấp của hai khối thông tin cỡ hình, được làm tròn lên số nguyên tiếp theo nếu cần thiết.
G.3. Cấp độ quét
Cấp độ quét phải là giá trị thấp nhất của các cấp đối với các thông số chuẩn được đánh giá theo ISO/IEC 15415 cùng với các cấp đối với sự hư hỏng mẫu cố định, thông tin định dạng và (khi thích hợp) thông tin cỡ hình được đánh giá theo phụ lục này.
Phụ lục H
(tham khảo)
Các bộ ký tự JIS8 và Shift JIS
Bảng H.1 – Bộ ký tự 8-bit đối với JIS X 0201 (JIS8)
Hình H.1 dưới đây chỉ ra các vùng mức mã 256 x 256 bị choán bởi các ký tự byte đôi Shift JIS.
Hình H.1 – Các giá trị của ký tự Shift JIS
Theo JIS X 0208:1997, Phụ lục 1, các byte đầu và các byte theo sau trong phạm vi những vùng tô đậm được gán cho các ký tự Shift JIS Kanji. Bất kỳ cặp đôi các byte nào trong những vùng này đều có thể được mã hóa bằng cách sử dụng giản đồ nén mode Kanji.
Phụ lục I
(tham khảo)
Ví dụ về mã hóa mã hình
I.1. Khái quát
Phụ lục này mô tả cách mã hóa dòng dữ liệu 01234567 vào trong cả mã hình QR code và mã hình Micro QR code.
I.2. Mã hóa mã hình QR code
Dòng dữ liệu nói trên sẽ được mã hóa vào trong mã hình cỡ 1-M, sử dụng mode số phù hợp với 6.4.3. Bước 1:
Mã hóa dữ liệu
– Chia thành các nhóm gồm ba số và chuyển mỗi nhóm sang hệ nhị phân thành từng cụm 10 hay 7 bit tương ứng.
012->0000001100
345->0101011001
67 ->1000011
– Chuyển chỉ dấu đếm ký tự sang hệ nhị phân (10 bit đối với cỡ hình 1-M)
Chỉ dấu đếm ký tự (8) = 0000001000
– Kết nối chỉ báo mode đối với mode số (0001), chỉ dấu đếm ký tự, dữ liệu nhị phân và dấu kết thúc (0000)
0001 0000001000 0000001100 0101011001 1000011 0000
– Chia thành các từ mã 8 bit, thêm bit độn (được gạch chân để làm rõ) khi cần.
00010000 00100000 00001100 01010110 01100001 10000000
– Thêm từ mã độn cho đủ dung lượng từ mã dữ liệu của mã hình (đối với cỡ hình 1-M có 16 từ mã dữ liệu, vì vậy cần phải có 10 từ mã độn (được gạch chân để làm rõ), cho kết quả:
00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001
Bước 2: Tạo từ mã sửa lỗi
Sử dụng thuật toán RS để tạo số lượng từ mã sửa lỗi cần thiết (đối với mã hình cỡ 1-M sẽ cần 10 từ mã), chúng (được gạch chân để làm rõ) phải được gắn thêm vào dòng bit, kết quả được:
00010000 00100000 00001100 01010110 01100001 10000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 11101100 00010001 10100101 00100100 11010100 11000001 11101101 00110110 11000111 10000111 00101100 01010101
Bước 3: Đặt môđun vào ma trận
Vì chỉ có một khối sửa lỗi đơn trong mã hình cỡ 1-M, nên không cần thêm gì vào trong ví dụ này. Mẫu tìm kiếm, dấu phân cách và mẫu căn chỉnh được đặt vào ma trận 21 x 21 trống và các vị trí môđun cho thông tin định dạng được tạm thời để trống. Các từ mã ở bước 2 được đặt vào ma trận cho phù hợp với 6.7.3 cho kết quả là sự sắp xếp như được minh họa trong Hình 1.1.
Hình 1.1 – Các môđun dữ liệu được đặt vào mã hình trước khi áp mặt nạ dữ liệu
Bước 4: Chọn mẫu áp mặt nạ dữ liệu
Áp dụng lần lượt các mẫu áp mặt nạ dữ liệu nêu ở 6.8.1 và đánh giá kết quả theo 6.8.2. Mẫu áp mặt nạ dữ liệu đã chọn là tham chiếu 010.
Bước 5: Thông tin định dạng
Mức sửa lỗi là M và mẫu áp mặt nạ dữ liệu là 011. Do vậy, từ 6.9.1 các bit dữ liệu của thông tin định dạng sẽ là 00 010.
Phép toán sửa lỗi BCH đưa ra 1001101110 như một chuỗi bit được thêm vào dữ liệu, đưa ra:
000101001101110 như là thông tin định dạng không được áp mặt nạ.
Áp dụng phép toán logic XOR cho dòng bit này với mặt nạ 101010000010010:
000101001101110 (dòng bit thô)
101010000010010 (mặt nạ)
101111001111100 (thông tin định dạng được đặt vào trong mã hình)
Bước 6: Cấu trúc mã hình cuối cùng
Đưa mẫu áp mặt nạ dữ liệu đã chọn vào vùng mã hóa của mã hình như nêu trong 6.8, và thêm các môđun thông tin định dạng vào các vị trí dự trữ ở bước 3. Mã hình cuối cùng được minh họa ở Hình I.2.
Hình I.2 – Mã hình cuối cùng cỡ 1-M mã hóa 01234567
I.3. Mã hóa mã hình Micro QR code
Dòng dữ liệu 01234567 sẽ được mã hóa vào mã hình cỡ M2 với mức sửa lỗi là L, sử dụng mode số phù hợp với 6.4.3.
Bước 1: Mã hóa dữ liệu
– Chia thành các nhóm gồm ba số và chuyển mỗi nhóm sang hệ nhị phân thành từng cụm 10 hay 7 bit tương ứng.
012 → 0000001100
345 → 0101011001
67 → 1000011
– Chỉ báo mode đối với mode số trong cỡ hình M2 là 0
– Chỉ dấu đếm ký tự là 8; chuyển sang hệ nhị phân (4 bit đối với cỡ hình M2-L):
Chỉ dấu đếm ký tự (8) = 1000
– Dấu kết thúc đối với cỡ hình M2 là 5 bit không, 00000
– Kết nối chỉ báo mode đối với mode số (0), chỉ dấu đếm ký tự (1000), dữ liệu nhị phân và dấu kết thúc (0000)
0 1000 0000001100 0101011001 1000011 00000
– Chia thành các từ mã 8 bit, thêm 3 bit độn (được gạch chân để làm rõ) vì từ mã cuối cùng chỉ có 5 bit.
01000000 00011000 1010110 11000011 00000000
– Không yêu cầu thêm từ mã độn để làm đủ dung lượng từ mã dữ liệu của mã hình (đối với cỡ hình M2- L, có 5 từ mã dữ liệu).
Bước 2: Tạo từ mã sửa lỗi
Sử dụng thuật toán RS để tạo số lượng từ mã sửa lỗi cần thiết (đối với mã hình cỡ M2-L sẽ cần 5 từ mã), chúng (được gạch chân để làm rõ) phải được gắn thêm vào dòng bit, kết quả được:
01000000 00011000 10101100 11000011 00000000 10000110 00001101 00100010 10101110 00110000
Bước 3: Đặt môđun vào ma trận
Mẫu tìm kiếm và mẫu căn chỉnh được đặt vào ma trận 13 x 13 trống và các vị trí môđun cho thông tin định dạng được tạm thời để trống. Các từ mã ở bước 2 được đặt vào ma trận phù hợp với 6.7.3. Hình I.3 minh họa sự sắp xếp môđun này.
Hình I.3 – Các môđun dữ liệu được đặt vào mã hình trước khi áp mặt nạ dữ liệu
Bước 4: Chọn mẫu áp mặt nạ dữ liệu
Áp dụng lần lượt các mẫu áp mặt nạ dữ liệu nêu ở 6.8.1 và đánh giá kết quả theo 6.8.2. Mẫu áp mặt nạ dữ liệu đã chọn là tham chiếu 01. Áp dụng mẫu áp mặt nạ dữ liệu đã chọn vào vùng mã hóa của ma trận theo 6.8
Bước 5: Thông tin định dạng
Số mã hình đối với mã hình M2-L là 1, được thể hiện ở dạng nhị phân là 001, và mẫu áp mặt nạ dữ liệu là 01. Do vậy, các bit dữ liệu của thông tin định dạng sẽ là 001 01.
Phép toán sửa lỗi BCH đưa ra 0011011100 như một chuỗi bit được thêm vào dữ liệu, đưa ra:
001010011011100 như là thông tin định dạng không được áp mặt nạ.
Áp dụng phép toán logic XOR cho dòng bit này với mặt nạ 100010001000101:
001010011011100 (dòng bit thô)
100010001000101 (mặt nạ)
101000010011001 (thông tin định dạng được đặt vào trong mã hình)
Bước 6: Cấu trúc mã hình cuối cùng
Thêm các môđun thông tin định dạng vào các vị trí dự trữ ở bước 3. Mã hình cuối cùng được minh họa ở hình I.4.
Hình 1.4 – Mã hình cuối cùng cỡ M2-L mã hóa 01234567
Phụ lục J
(tham khảo)
Tối ưu hóa độ dài dòng bit
J.1. Khái quát
Như mô tả trong tiêu chuẩn này, QR code 2005 đưa ra nhiều mode mã hóa mà mỗi mode lại khác nhau về số lượng bit cần có để thể hiện dòng dữ liệu. Vì có sự đan cài giữa các bộ ký tự của mỗi mode – ví dụ, dữ liệu số có thể được mã hóa theo mode số, chữ số và bytet, và dữ liệu chữ số Latinh có thể được mã hóa theo mode chữ số và byte – phần mềm tạo mã hình có thể cần chọn mode hợp lý nhất để mã hóa các ký tự dữ liệu xuất hiện trong một hay nhiều mode.
Có thể chọn mã hình QR code hay mã hình Micro QR code.
Phải thực hiện ngay từ đầu việc chọn lựa mode và cũng có thể thay đổi mode ở khoảng giữa của dòng dữ liệu.
Có một số cách tiếp cận khác nhau có thể được chấp nhận để tối thiểu hóa độ dài dòng bit. Thuật toán này chẳng những cần thiết để xem xét chuỗi ký tự tức thời mà còn cần để xem xét từ đầu khi sang chuỗi dữ liệu tiếp theo để hiển thị tiêu đề chuyển mode. Thuật ngữ “tập con loại trừ” được sử dụng trong phụ lục này như là một cách tham chiếu tắt đến bộ các ký tự trong phạm vi bộ ký tự của mode không chung với bộ ký tự giới hạn hơn của mode khác như được nêu dưới đây và trong Bảng J.1.
– Tập con loại trừ dạng số là bộ các giá trị theo hệ thập lục phân (cơ số 16) từ 30 đến 39 (các con số từ 0 đến 9).
– Tập con loại trừ dạng chữ số là bộ các giá trị theo hệ thập lục phân (cơ số 16) từ 20, 24, 25, 2A, 2B, 2D đến 2F, 3A và từ 41 đến 5A, được sắp xếp như là {A – Z, dấu cách, $ % * + – . / :}.
CHÚ THÍCH 1 Tập con này không gồm các con số.
– Tập con loại trừ dạng byte bao gồm các giá trị theo hệ thập lục phân (cơ số 16) từ 00 đến FF nhưng loại trừ các giá trị theo hệ thập lục phân (cơ số 16) từ 20, 24, 25, 2A, 2B, 2D đến 3A và 41 đến 5A.
CHÚ THÍCH 2 Các giá trị loại trừ được chứa trong các tập con loại trừ dạng số và dạng chữ số.
Bảng J.1 – Các giá trị dạng byte của tập con loại trừ đối với các mode của QR code 2005
Tập con loại trừ |
Các giá trị byte (theo hộ thập lục phân (cơ số 16)) |
Dạng số | 30 đến 39 |
Dạng chữ số | 20, 24, 25, 2A, 2B, 2D đến 2F, 3A và 41 đến 5A |
Byte | 00 đến 1F, 21 đến 23, 26 đến 29, 2C, 3B đến 40, 5B đến FF (không tính đến các giá trị dự trữ từ 80 đến 9F và E0 đến FF) |
Kanji | Tất cả các byte đôi trong các phạm vi đã quy định trong Phụ lục H. |
Các hiệu quả nén được nêu ở 6.4.3 tới 6.4.6 cần được diễn giải cẩn thận. Sự phối hợp tốt nhất cho một bộ dữ liệu đã cho có thể không phải là cái có ít bit nhất cho mỗi ký tự dữ liệu. Nếu yêu cầu mức độ nén cao nhất thì cần phải thêm bit để thay đổi mode (thêm chỉ báo mode và chỉ dấu đếm ký tự). Cũng phải chú ý rằng dù cho số lượng từ mã đã được tối thiểu hóa, dòng từ mã đôi khi cần phải được mở rộng để lấp đầy mã hình. Quá trình lấp đầy được thực hiện bằng cách sử dụng ký tự độn.
J.2. Tối ưu hóa đối với mã hình QR code
Đối với mã hình QR code, những chỉ dẫn dưới đây thiết lập cơ sở cho một thuật toán khả thi để xác định dòng bit ngắn nhất cho bất kỳ dữ liệu đầu vào nào.
Số lượng ký tự được đặt trong dấu ngoặc vuông, ví dụ [5, 7, 9] là khả thi tương ứng với các cỡ hình 1 – 9, 10 – 26 và 27 – 40.
a) Chọn mode ban đầu:
1) Nếu phần đầu của dữ liệu đầu vào nằm trong tập con loại trừ của bộ ký tự byte, chọn mode byte;
2) Nếu phần đầu của byte đầu vào nằm trong tập con loại trừ thuộc byte đầu Kanji và byte tiếp sau nằm trong tập con loại trừ thuộc byte theo đuôi Kanji, VÀ dữ liệu tiếp theo nằm trong tập ký tự loại trừ dạng số hoặc dạng chữ số, chọn mode Kanji, NGOÀI RA nếu dữ liệu tiếp theo nằm trong tập ký tự loại trừ của byte VÀ các cặp byte [5, 5, 6] tiếp sau thậm chí cũng nằm trong các tập con loại trừ Kanji, chọn mode byte;
3) Nếu phần đầu của dữ liệu đầu vào nằm trong tập con loại trừ của bộ ký tự chữ số VÀ nếu có ít hơn [6, 7, 8] ký tự theo sau bởi dữ liệu từ phần còn lại của bộ ký tự byte THÌ chọn mode byte, NẾU KHÔNG thì chọn mode chữ số.
4) Nếu phần đầu của dữ liệu là số VÀ nếu có ít hơn [4, 4, 5] ký tự theo sau bởi dữ liệu từ tập con loại trừ của bộ ký tự byte THÌ chọn mode byte, HOẶC NẾU có ít hơn [6, 7, 8] ký tự theo sau bởi dữ liệu từ tập con loại trừ của bộ ký tự chữ số THÌ chọn mode chữ số, NẾU KHÔNG thì chọn mode số.
b) Khi đang trong mode byte:
1) Nếu có một chuỗi ít nhất [9,12,13] cặp byte từ bộ Kanji xuất hiện trước nhiều dữ liệu là tập con loại trừ của bộ ký tự byte, chuyển sang mode Kanji;
2) Nếu có một chuỗi ít nhất [11,15,16] ký tự từ tập con loại trừ của bộ ký tự chữ số xuất hiện trước nhiều dữ liệu từ tập con loại trừ của bộ ký tự byte, chuyển sang mode chữ số;
3) Nếu có một chuỗi ít nhất [6,8,9] ký tự số xuất hiện trước nhiều dữ liệu từ tập con loại trừ của bộ ký tự byte, chuyển sang mode số;
4) Nếu có một chuỗi ít nhất [6,7,8] ký tự số xuất hiện trước nhiều dữ liệu từ tập con loại trừ của bộ ký tự chữ số, chuyển sang mode số.
c) Khi đang ở trong mode chữ số:
1) Nếu có một hoặc nhiều ký tự Kanji xuất hiện thì chuyển sang mode Kanji;
2) Nếu có một hoặc nhiều ký tự từ tập con loại trừ của bộ ký tự byte xuất hiện thì chuyển sang mode byte;
3) Nếu có một chuỗi ít nhất [13,15,17] ký tự số xuất hiện trước nhiều dữ liệu từ tập con loại trừ của bộ ký tự chữ số thì chuyển sang mode số.
d) Khi đang ở trong mode số:
1) Nếu có một hoặc nhiều ký tự Kanji xuất hiện thì chuyển sang mode Kanji.
2) Nếu có một hoặc nhiều ký tự từ tập con loại trừ của bộ ký tự byte xuất hiện thì chuyển sang mode byte.
3) Nếu có một hoặc nhiều ký tự từ tập con loại trừ của bộ ký tự chữ số xuất hiện thì chuyển sang mode chữ số.
J.3. Tối ưu hóa đối với mã hình Micro QR code
J.3.1. Các nguyên tắc tối ưu hóa
Giả sử rằng dữ liệu để mã hóa là các tập con loại trừ của không nhiều hơn hai mode và giả sử rằng tất cả dữ liệu trong mỗi tập con được nhóm lại cùng nhau (ví dụ “123abcdef”), có thể chọn từ Bảng J.2 một thuật toán dùng để xác định dòng bit ngắn nhất cho dữ liệu Micro QR code. Có thể mở rộng những nguyên tắc này để phục vụ cho nhiều hơn hai mode, nhưng phải cẩn trọng đối với việc dòng bit nhận được sẽ khớp với một trong số các mã hình có sẵn.
Vì các mode thấp hơn sử dụng ít bit hơn cho mỗi ký tự so với các mode cao hơn, có một điểm mà tại đó tiêu đề mở rộng của chỉ báo mode bổ sung và chỉ dấu đếm ký tự đối với sự thay đổi của mode được bù lại bởi mật độ mã hóa lớn hơn của mode thấp hơn. Bảng J.2 chỉ ra số ký tự tối thiểu liên tiếp trong mode thấp hơn để đạt được một dòng bit tổng ngắn hơn bằng cách thay đổi mode. Đối với trường hợp có ít ký tự hơn, việc mã hóa tất cả dữ liệu trong mode cao hơn sẽ cho một dòng bit ngắn hơn.
Bảng J.2 – Các ký tự tối thiểu trong mode thấp hơn để tối thiểu hóa độ dài dòng bit bằng cách thay đổi mode
Kết hợp mode |
Mã hình M2 |
Mã hình M3 |
Mã hình M4 |
Số + chữ số |
3 số |
4 số |
5 số |
Số + byte 8-bit |
n/a |
2 số |
3 số |
Chữ số + byte |
n/a |
3 chữ số |
4 chữ số |
Số + Kanji |
n/a |
1 số |
2 số |
Chữ số + Kanji |
n/a |
1 chữ số |
2 chữ số |
Byte + Kanji |
n/a |
2 8-bit |
2 8-bit |
J.3.2. Dung lượng của mã hình Micro QR code
Dựa trên nguyên tắc của bảng ở trên và các dung lượng của nhiều cỡ mã hình, các Hình từ J.1 đến J.6 dưới đây minh họa, đối với mỗi kết hợp mode, các trường hợp tùy chọn có sẵn để mã hóa các lượng dữ liệu cho trước vào kết hợp mode.
Các tiêu đề theo hàng và cột phân định số ký tự trong mỗi mode. Các hình minh họa cỡ mã hình và mức sửa lỗi, bỏ qua chữ M đầu tiên; vì vậy, ví dụ, 4Q chỉ mã hình cỡ M4 với mức sửa lỗi Q. Đối với bất kỳ sự kết hợp giữa ký tự và mode đã cho, cỡ mã hình có sẵn là những cỡ nằm ở giao điểm giữa hàng và cột thích hợp và là những cỡ nằm ở bên phải hoặc bên dưới giao điểm này.
Ví dụ, nếu dòng dữ liệu là “123456abcdefgh”, bao gồm sáu ký tự số và tám ký tự từ bộ ký tự chữ số, Hình J.1 chỉ ra dữ liệu này sẽ khớp với mã hình cỡ M3-L (tổng của 77 bit bao gồm các chỉ báo mode và các chỉ dấu đếm ký tự), hoặc mã hình cỡ M4-M hoặc mã hình cỡ M4-L (81 bit cho mỗi mã). Các trường hợp tùy chọn có thể bị thu hẹp xuống dưới bởi khoảng trống sẵn có hoặc bởi mức sửa lỗi theo yêu cầu.
Hình J.1 – Dung lượng của mã hình Micro QR code – dữ liệu số và chữ số
Hình J.2 – Dung lượng của mã hình mã Micro QR – dữ liệu số và byte
Hình J.3 – Dung lượng của mã hình mã Micro QR – dữ liệu chữ số và byte
Hình J.4 – Dung lượng của mã hình mã Micro QR – dữ liệu số và Kanji
Hình J.5 – Dung lượng của mã hình mã Micro QR – dữ liệu chữ số và Kanji
Hình J.6 – Dung lượng của mã hình mã Micro QR – dữ liệu byte và Kanji
Phụ lục K
(tham khảo)
Hướng dẫn cho người sử dụng việc in và quét mã hình QR code 2005
K.1. Khái quát
Bất cứ việc áp dụng QR code 2005 nào cũng phải được xem xét như là một giải pháp hệ thống tổng thể. Tất cả những thành phần mã hóa/ giải mã mã hình (những thiết bị tạo mã bề mặt hay máy in, nhãn, máy đọc) được cài đặt cần phải vận hành đồng thời như một hệ thống. Lỗi trục trặc ở bất cứ khâu nào của chuỗi này, hay sự không tương thích giữa chúng, có thể làm ảnh hưởng đến hiệu năng của toàn bộ hệ thống.
Trong khi việc tuân thủ theo các quy định kĩ thuật là một chìa khóa để đảm bảo cho sự thành công của toàn bộ hệ thống, thì cũng phải xem xét đến những nhân tố khác cũng ảnh hưởng đến hiệu năng của hệ thống. Những hướng dẫn sau đây nêu một vài nhân tố cần chú ý khi quy định hay áp dụng các hệ thống mã vạch hay mã ma trận.
a) Lựa chọn mật độ in chấp nhận những giá trị dung sai mà công nghệ tạo mã hoặc in được sử dụng có thể đạt được. Phải đảm bảo rằng kích thước của môđun là bội số của kích thước ảnh điểm đầu in (theo hướng song song hay vuông góc với hướng in). Cũng phải đảm bảo rằng bất cứ sự điều chỉnh để đạt được độ lợi (độ mất mát) khi in được thực hiện bằng cách thay đổi số lượng các ảnh điểm như nhau từ tối sang sáng (hoặc từ sáng sang tối) trên tất cả đường biên tối sang sáng của các môđun riêng lẻ hoặc các nhóm môđun tối cạnh nhau để chắc chắn rằng khoảng cách các trung tâm môđun là không đổi, mặc dù sự thể hiện dưới dạng bit-map các môđun tối (hoặc sáng) riêng rẽ được điều chỉnh kích thước để phù hợp với hướng bù.
b) Lựa chọn thiết bị đọc với giải pháp phù hợp với mật độ và chất lượng mã hình do công nghệ tạo mã hoặc in ấn tạo ra.
c) Bảo đảm rằng các tính chất quang học của mã hình in ra là tương thích với bước sóng của nguồn sáng hay bộ cảm biến của máy quét.
d) Phải kiểm tra xác nhận lại sự tương thích của mã hình về cấu hình bao gói hoặc ghi nhãn cuối cùng. Lớp dán đè lên, khả năng nhìn xuyên qua và bề mặt cong hay bất thường có thể ảnh hưởng đến khả năng đọc mã hình.
Cần phải tính đến những ảnh hưởng của sự phản xạ đặc biệt từ các bề mặt bóng của mã hình. Hệ thống quét phải tính đến những thay đổi của sự tán xạ giữa điểm sáng và tối. Ở một vài góc độ quét, thành phần phản chiếu của tia sáng phản chiếu có thể vượt xa thành phần khuếch tán mong muốn, làm thay đổi hiệu năng quét. Trong những trường hợp bề mặt của vật liệu hay các phần có thể bị thay đổi, mờ xỉn, những bề mặt không bóng có thể giúp giảm thiểu những hiệu ứng phản chiếu. Nếu điều đó không thể thực hiện được thì phải bảo đảm sự chiếu sáng của mã hình để đọc được tốt nhất những thành phần tương phản mong muốn.
K.2. Sự lựa chọn mức sửa lỗi của người sử dụng
Người sử dụng phải xác định mức độ sửa lỗi phù hợp để thích ứng với các yêu cầu ứng dụng. Như đã trình bày ở Bảng 8, có bốn mức từ L đến H cung cấp khả năng tăng dần về việc phát hiện và sửa lỗi, đi kèm với việc tăng kích thước đối với độ dài một gói tin đã cho. Ví dụ, mã hình cỡ 20-Q có thể chứa đến 485 từ mã dữ liệu, nhưng nếu chấp nhận mức sửa lỗi thấp hơn thì cùng dữ liệu như vậy cũng có thể được thể hiện bằng mã hình cỡ 15-L (dung lượng chính xác là 523 từ mã dữ liệu).
Mức sửa lỗi được xác định tùy theo:
– mức độ dự kiến về chất lượng mã hình: chất lượng mong đợi càng thấp thì phải áp dụng mức sửa lỗi càng cao;
– tầm quan trọng của tỷ lệ đọc thành công cao trong lần đọc đầu tiên;
– cơ hội quét lại trong trường hợp không đọc được;
– những ràng buộc về không gian có thể làm giảm cơ hội sử dụng mức sửa lỗi cao hơn.
Mức sửa lỗi L là thích hợp cho mã hình chất lượng cao và/ hoặc nhu cầu về mã hình nhỏ nhất có thể đối với dữ liệu đã cho. Mức M là mức “chuẩn” đưa ra một sự dung hòa tốt giữa kích cỡ nhỏ và độ tin cậy khá. Mức Q là mức “tin cậy cao” và thích hợp đối với các ứng dụng quan trọng hơn hoặc chất lượng in kém trong khi mức H đưa ra mức độ tin cậy lớn nhất có thể đạt được.
Phụ lục L
(tham khảo)
Sự tự phân biệt
Có thể đọc được QR code 2005 bằng những máy giải mã được lập trình phù hợp, được thiết kế để tự động phân biệt QR code 2005 với những mã hình khác. Một máy đọc QR code 2005 được lập trình hợp lí sẽ không giải mã nhầm một mã hình khác thành một mã hình QR code 2005 có giá trị; tuy nhiên các mã hình một chiều ngắn có thể được nhận dạng nhầm thành bất kỳ mã hình ma trận nào trong đó có cả QR code 2005.
Mặc dù máy giải mã phù hợp có thể phân biệt tự động mã hình QR code Model 1 với mã hình QR code 2005, vẫn đặc biệt khuyến nghị không sử dụng lẫn lộn hai loại mã hình này.
Cần phải hạn chế tập hợp các mã hình phù hợp với máy giải mã trong một ứng dụng nào đó để tối đa hóa việc bảo mật khi đọc mã.
Phụ lục M
(tham khảo)
Kĩ thuật kiểm soát quá trình
Phụ lục này mô tả các công cụ và các thủ tục cần thiết để giám sát và kiểm soát quá trình tạo mã hình QR code 2005 có thể quét được. Những kĩ thuật này không phải để kiểm tra chất lượng in của mã hình đã được tạo ra – phương pháp quy định ở điều 9 và Phụ lục G là phương pháp cần thiết để đánh giá chất lượng mã hình – nhưng chúng mang lại những chỉ dẫn một cách riêng lẻ và tập trung rằng liệu quá trình tạo mã hình có tạo được những mã hình khả thi hay không.
M.1. Độ tương phản của mã hình
Hầu hết những thiết bị kiểm tra mã vạch một chiều đều có mode phản xạ kế hay mode để vẽ đồ thị đặc tính phản xạ quét và/hoặc báo cáo độ tương phản mã hình, như quy định trong TCVN 7626 (ISO/IEC 15416), từ các mẫu quét không giải mã được. Ngoại trừ những mã hình đòi hỏi cấu hình chiếu sáng đặc biệt, việc đọc độ tương phản mã hình có thể đạt được bằng cách sử dụng lỗ đo 0,150mm hoặc 0,250mm ở bước sóng 660nm – hoặc là giá trị độ tương phản của mã hình đã được báo cáo, các độ trệch của đồ thị đặc tính phản xạ quét từ lớn nhất đến bé nhất, hoặc là sự khác nhau giữa việc đọc phản xạ kế lớn nhất và bé nhất – đã được phát hiện để liên kết với giá trị độ tương phản của mã hình xuất phát từ hình ảnh. Cụ thể, việc đọc này có thể được sử dụng để kiểm tra độ tương phản của mã hình có ở mức cao hơn mức tối thiểu cho phép đối với cấp chất lượng mã hình mong đợi.
M.2. Đánh giá sự không đều theo trục
Đối với mã hình QR code, phải đo khoảng cách từ cạnh trái của mẫu tìm kiếm ở góc trên bên trái đến cạnh phải của mẫu tìm kiếm ở góc trên bên phải, và đo khoảng cách từ cạnh trên của mẫu tìm kiếm ở góc trên bên trái đến cạnh dưới của mẫu tìm kiếm ở góc dưới bên trái. Đối với mã hình Micro QR code, phải đo khoảng cách từ cạnh trái của mẫu tìm kiếm ở góc trên bên trái đến cạnh phải của môđun xa nhất bên phải trong mẫu căn chỉnh bên trên, và đo khoảng cách từ cạnh trên của mẫu tìm kiếm ở góc trên bên trái đến cạnh dưới của môđun thấp nhất trong mẫu căn chỉnh bên trái. Chia các khoảng cách này cho số môđun theo kích thước đó. Ví dụ: Một mã hình cỡ 2 thì chia cho 25. Thay thế các kết quả này cho XAVG và YAVG theo công thức ở G.2.4 và phân cấp kết quả để đánh giá sự không đều theo trục.
M.3. Kiểm tra bằng mắt về sự biến dạng và sai lỗi của mã hình
Việc tiếp tục kiểm tra bằng mắt đối với mẫu tìm kiếm và mẫu căn chỉnh trong mã hình mẫu có thể giám sát một mặt quan trọng của quá trình tạo mã.
Mã ma trận dễ mắc lỗi do sự biến dạng bộ phận của lưới ma trận. Bất kì sự biến dạng nào như vậy có thể thấy bằng mắt hoặc ở bờ cong của mẫu tìm kiếm hoặc ở khoảng trống không bằng phẳng trong mẫu căn chỉnh xen kẽ nhau chạy giữa mẫu tìm kiếm và được căn chỉnh với đường biên bên trong của chúng.
Mẫu tìm kiếm và khu vực vùng trống liền kề phải luôn là khoảng tối và sáng liên tục. Các lỗi trong cơ chế in có thể tạo ra các sai lỗi dưới dạng các đường sọc sáng hoặc tối xuyên suốt mã hình là bằng chứng nhìn thấy bằng mắt rõ ràng ở nơi chúng đi ngang qua mẫu tìm kiếm hoặc vùng trống. Phải sửa các lỗi có hệ thống như vậy trong quá trình in.
M.4. Đánh giá độ dãn khi in
Có thể sử dụng thiết bị kiểm tra mã vạch một chiều có khả năng cung cấp các phép đo trực tiếp các mẫu vạch và khoảng trống để đánh giá độ lợi hoặc độ mất mát khi in theo cả trục hoành và trục tung, bằng cách đo dọc theo hai đường quét ở các góc phải đi qua mẫu tìm kiếm và cắt khối môđun trung tâm 3 x 3. Phân tích đầu ra có thể tìm thấy mẫu vạch/khoảng trống/vạch/khoảng trống/vạch; có thể đánh giá độ lợi (hoặc độ mất mát) khi in bằng cách so sánh năm độ rộng của yếu tố đo được với tỷ lệ độ rộng chuẩn 1 : 1 : 3 : 1 : 1.
Phụ lục N
(tham khảo)
Những đặc điểm của mã hình Model 1
N.1. Mã hình QR code Model 1
Model 1 của QR code, như quy định trong AIM ISS 97-001, là dạng mã hình được sử dụng đầu tiên cho một số ứng dụng thuộc hệ thống đóng hoặc hệ thống trước đây, nhưng không được khuyến khích sử dụng cho các ứng dụng thuộc hệ thống mở hay hệ thống mới, và không phù hợp cho các ứng dụng mà dung lượng dữ liệu có vẻ nhiều. Về mọi mặt, nó tuân theo những quy định kĩ thuật giống như QR code 2005 nhưng khác ở một số khía cạnh quan trọng như được nêu chi tiết trong phụ lục này.
N.1.1. Những đặc điểm tổng quát của Model 1
a) Kích thước mã hình (không bao gồm vùng trống)
Từ 21 x 21 môđun đến 73 x 73 môđun (cỡ hình 1 đến cỡ hình 14, mỗi bậc tăng lên 4 môđun ở mỗi chiều)
b) Dung lượng dữ liệu tối đa (đối với kích thước mã hình lớn nhất với mức sửa lỗi thấp nhất, cỡ hình 14-L)
– dữ liệu kiểu số: 1 167 ký tự
– dữ liệu kiểu chữ số: 707 ký tự
– dữ liệu kiểu byte: 486 ký tự
– dữ liệu kiểu Kanji: 299 ký tự
c) Cấu trúc và các đặc điểm của mã hình so sánh với QR code 2005:
– mẫu căn chuẩn: mã hình Model 1 không có mẫu căn chuẩn
– mẫu mở rộng: mã hình Model 1 có mẫu mở rộng ở bên dưới phía phải
– thông tin cỡ hình: mã hình Model 1 không có thông tin cỡ hình
– sự sắp xếp ký tự mã hình: như đã nói ở trên, việc sắp xếp ký tự mã hình tuân theo các qui tắc khác nhau
– mã hình Model 1 không hỗ trợ giao thức ECI
– mã hình Model 1 không hỗ trợ hình ảnh phản chiếu
– mã hình Model 1 không hỗ trợ sự đảo chiều của hệ số phản xạ
d) Sửa lỗi: Từ mã phát hiện và sửa lỗi được tính giống như ở QR code 2005 nhưng số lượng và kích thước của khối sửa lỗi cho mỗi cỡ hình là khác nhau. Dữ liệu và các khối từ mã sửa lỗi không phải là chủ điểm của việc chèn thêm.
Hình N.1 dưới đây minh họa cấu trúc của mã hình QR code Model 1 cỡ 7.
Hình N.1 – Cấu trúc mã hình QR code Model 1
N.1.2. Cỡ hình và kích thước của mã hình
Chỉ có 14 kích thước đối với mã hình Model 1, từ cỡ hình 1 đến cỡ hình 14, những kích thước này giống với những kích thước của mã hình Model 2 với cùng số cỡ hình, như nêu ở 5.3.1. Do đó, các mã hình cỡ 1 có kích thước là 21 x 21 môđun và mã hình cỡ 14 có kích thước là 73 x 73 môđun. Bảng N.1 cho biết dung lượng dữ liệu của tất cả mã hình Model 1 ở các mức sửa lỗi khác nhau.
Bảng N.1 – Dung lượng dữ liệu của tất cả cỡ hình QR code Model 1
Cỡ hình |
Số lượng môđun/ cạnh (A) |
Các môđun mẫu chức năng (B) |
Các môđun thông tin dạng (C) |
Các môđun dữ liệu loại trữ (C) (D= A2-B-C) |
Dung lượng dữ liệu [từ mã]* (E) |
1 |
21 |
206 |
31 |
204 |
26 |
2 |
25 |
230 |
31 |
364 |
46 |
3 |
29 |
238 |
31 |
572 |
72 |
4 |
33 |
262 |
31 |
796 |
100 |
5 |
37 |
270 |
31 |
1 068 |
134 |
6 |
41 |
294 |
31 |
1 356 |
170 |
7 |
45 |
302 |
31 |
1 692 |
212 |
8 |
49 |
326 |
31 |
2 044 |
256 |
9 |
53 |
334 |
31 |
2 444 |
306 |
10 |
57 |
358 |
31 |
2 860 |
358 |
11 |
61 |
366 |
31 |
3 324 |
416 |
12 |
65 |
390 |
31 |
3 804 |
476 |
13 |
69 |
398 |
31 |
4 332 |
542 |
14 |
73 |
422 |
31 |
4 876 |
610 |
CHÚ THÍCH Từ mã đầu tiên có độ dài 4 bit. Tất cả những từ mã sau dài 8 bit. Từ mã đầu tiên, 4 bit, từ mã dữ liệu sẽ được thêm vào ở đằng trước các số 0000 làm cho nó dài 8 bit để tạo ra các từ mã sửa lỗi.
N.2. Các quy định kỹ thuật chi tiết
Tham khảo AIM ISS 97-001 để có được thông tin đầy đủ về việc đọc và in mã hình model 1.
THƯ MỤC TÀI LIỆU THAM KHẢO
[1] TCVN 7626 (ISO/IEC 15416) Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Yêu cầu kỹ thuật đối với kiểm tra chất lượng in mã vạch – Mã vạch một chiều
[2] TCVN 6755 (ISO/IEC 15417) Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Yêu cầu kỹ thuật về mã vạch GS1-128
[3] ISO/IEC 646, Information technology – ISO 7-bit coded character set for information interchange (Công nghệ thông tin – Bộ ký tự mã hóa theo ISO 7-bit cho trao đổi thông tin)
[4] ISO/IEC 8859-2:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 2: Latin alphabet No.2 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 2: Chữ cái latinh số 2)
[5] ISO/IEC 8859-3:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 3: Latin alphabet No.3 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 3: Chữ cái latinh số 3)
[6] ISO/IEC 8859-4:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 4: Latin alphabet No.4 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 4: Chữ cái latinh số 4)
[7] ISO/IEC 8859-5:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 5: Latin/ Cyrillic alphabet (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 5: Chữ cái latinh/ kirin)
[8] ISO/IEC 8859-6:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 6: Latin/ Arabic alphabet (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 6: Chữ cái latinh/ A-rập )
[9] ISO/IEC 8859-7:2003, Information technology – 8-bit single-byte coded graphic character sets – Part 7: Latin/ Greek alphabet (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 8: Chữ cái latinh/ Hy lạp)
[10] ISO/IEC 8859-8:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 8: Latin/ Hebrew alphabet (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 8: Chữ cái latinh/ Do Thái)
[11] ISO/IEC 8859-9:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 9: Latin alphabet No.5 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 9: Chữ cái latinh số 5)
[12] ISO/IEC 8859-10:1998, lnformation technology – 8-bit single-byte coded graphic character sets – Part 10: Latin alphabet No.6 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 2: Chữ cái latinh số 6)
[13] ISO/IEC 8859-11:2001, Information technology – 8-bit single-byte coded graphic character sets – Part 11: Latin/ Thai alphabet (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 2: Chữ cái latinh/Thái)
[14] ISO/IEC 8859-13:1998, lnformation technology – 8-bit single-byte coded graphic character sets – Part 13: Latin alphabet No.7 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 13: Chữ cái latinh số 7)
[15] ISO/IEC 8859-14:1998, lnformation technology – 8-bit single-byte coded graphic character sets – Part 14: Latin alphabet No.8 (Celtic) (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 14: Chữ cái latinh số 8)
[16] ISO/IEC 8859-15:1999, Information technology – 8-bit single-byte coded graphic character sets – Part 15: Latin alphabet No.9 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 2: Chữ cái latinh số 9)
[17] ISO/IEC 8859-16:2001, Information technology – 8-bit single-byte coded graphic character sets – Part 16: Latin alphabet No. 10 (Công nghệ thông tin – Các bộ ký tự đồ họa mã hóa byte đơn 8-bit – Phần 16: Chữ cái latinh số 10).
MỤC LỤC
Lời nói đầu
Lời giới thiệu
1. Phạm vi áp dụng
2. Tính phù hợp
3. Tiêu chuẩn viện dẫn
4. Thuật ngữ và định nghĩa, ký hiệu toán học và lôgic, chữ viết tắt và quy ước
4.1. Thuật ngữ và định nghĩa
4.2. Ký hiệu toán học và lôgic
4.3. Chữ viết tắt
4.4. Các quy ước
5. Mô tả mã hình
5.1. Những đặc trưng cơ bản
5.2. Tóm tắt các đặc tính bổ sung
5.3. Cấu trúc mã hình
5.3.1. Cỡ hình và kích thước mã hình
5.3.2. Mẫu tìm kiếm
5.3.3. Dấu phân cách
5.3.4. Mẫu căn chỉnh
5.3.5. Mẫu căn chuẩn
5.3.6. Vùng mã hóa
5.3.7. Vùng trống
6. Yêu cầu kỹ thuật
6.1. Khái quát về quá trình mã hóa
6.2. Phân tích dữ liệu
6.3. Các mode
6.3.1. Mode phương thức dịch kênh mở rộng (ECI)
6.3.2. Mode số
6.3.3. Mode chữ số
6.3.4. Mode byte
6.3.5. Mode Kanji
6.3.6. Các mode hỗn hợp
6.3.7. Mode kết nối có cấu trúc
6.3.8. Mode FNC 1
6.4. Mã hóa dữ liệu
6.4.1. Chuỗi dữ liệu
6.4.2. Mode phương thức dịch kênh mở rộng (ECI)
6.4.3. Mode số
6.4.4. Mode chữ số
6.4.5. Mode byte
6.4.6. Mode Kanji
6.4.7. Các mode hỗn hợp
6.4.8. Mode FNC 1
6.4.9. Dấu kết thúc
6.4.10. Chuyển đổi dòng bit thành từ mã
6.5. Sửa lỗi
6.5.1. Dung lượng sửa lỗi
6.5.2. Tạo từ mã sửa lỗi
6.6. Thiết lập chuỗi từ mã gói tin cuối cùng
6.7.Sắp xếp từ mã trong ma trận
6.7.1. Trình bày ký tự trong mã hình
6.7.2. Sắp xếp mẫu chức năng
6.7.3. Sắp xếp ký tự trong mã hình
6.8. Áp mặt nạ
6.8.1. Mẫu mặt nạ dữ liệu
6.8.2. Đánh giá kết quả áp mặt nạ dữ liệu
6.9. Thông tin định dạng
6.9.1. Mã hình QR code
6.9.2. Mã hình Micro QR code
6.10. Thông tin cỡ hình
7. Kết nối có cấu trúc
7.1. Những nguyên tắc cơ bản
7.2. Chỉ báo chuỗi mã hình
7.3. Dữ liệu chẵn lẻ
8. Đánh dấu và in mã hình
8.1. Kích thước
8.2. Diễn giải cho người đọc
8.3. Hướng dẫn tạo mã
9. Chất lượng mã hình
9.1. Phương pháp
9.2. Các thông số về chất lượng mã hình
9.2.1. Sự hư hại của mẫu cố định
9.2.2. Cấp tổng thể của mã hình và cấp độ quét
9.2.3. Sự không đồng nhất của lưới
9.3. Các phép đo kiểm soát quá trình
10. Khái quát về quy trình giải mã
11. Thuật toán giải mã tham chiếu đối với QR code 2005
12. Khả năng phân biệt tự động
13. Dữ liệu được chuyển giao
13.1. Các nguyên tắc chung
13.2. Số phân định mã hình
13.3. Các phương thức dịch kênh mở rộng (ECI)
13.4. FNC1
Phụ lục A (quy định)
Phụ lục B (quy định)
Phụ lục C (quy định)
Phụ lục D (quy định)
Phụ lục E (quy định)
Phụ lục F (quy định)
Phụ lục G (quy định)
Phụ lục H (tham khảo)
Phụ lục I (tham khảo)
Phụ lục J (tham khảo)
Phụ lục K (tham khảo)
Phụ lục L (tham khảo)
Phụ lục M (tham khảo)
Phụ lục N (tham khảo)
Thư mục tài liệu tham khảo
TIÊU CHUẨN QUỐC GIA TCVN 7322:2009 (ISO/IEC 18004:2006) VỀ CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT ĐỐI VỚI MÃ HÌNH QR CODE 2005 | |||
Số, ký hiệu văn bản | TCVN7322:2009 | Ngày hiệu lực | |
Loại văn bản | Tiêu chuẩn Việt Nam | Ngày đăng công báo | |
Lĩnh vực |
Lĩnh vực khác |
Ngày ban hành | |
Cơ quan ban hành | Tình trạng | Còn hiệu lực |
Các văn bản liên kết
Văn bản được hướng dẫn | Văn bản hướng dẫn | ||
Văn bản được hợp nhất | Văn bản hợp nhất | ||
Văn bản bị sửa đổi, bổ sung | Văn bản sửa đổi, bổ sung | ||
Văn bản bị đính chính | Văn bản đính chính | ||
Văn bản bị thay thế | Văn bản thay thế | ||
Văn bản được dẫn chiếu | Văn bản căn cứ |