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
Tiêu chuẩn này quy định các yêu cầu đối với mã hình được gọi là mã hình 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. 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.
NỘI DUNG TIÊU CHUẨN QUỐC GIA 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
TIÊU CHUẨN QUỐC GIA
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áomode 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>HEX>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
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)
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<>>>
Chuyển dữ liệu: ]Q537AA1234BBB112text text text text
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