TCVN 7322:2009 Công Nghệ Thông Tin-Kỹ Thuật Phân Định Và Thu Nhận Dữ Liệu Tự Động-Công Nghệ Mã Vạch-Mã QR

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 mu 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ữ liu 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
= 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ự.

Bng 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 C= 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 hin 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 mt 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à vin 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