TCVN8655:2010

Tiêu chuẩn quốc gia TCVN 8655:2010 (ISO/IEC 15438:2006) về Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Yêu cầu kỹ thuật về mã vạch PDF 417 TIÊU CHUẨN QUỐC GIA TCVN 8655:2010 ISO/IEC 15438: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 VỀ MÃ VẠCH PDF417 In f ormation technology - Automatic identi fi cation and data capture techniques - PDF417 bar code symbology speci f ication Lời nói đầu TCVN 8655:2010 hoàn toàn tương đương với ISO/IEC 15438:2006. TCVN 8655:2010 do Tiểu Ban kĩ thuật tiêu chuẩn quốc gia TCVN/JTC1/SC31 "Thu thập 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ông nghệ mã hóa bằng vạch dựa vào sự công nhận các vạch và khoảng trống có kích thước xác định. Có nhiều biện pháp mã hóa thông tin vào dạng vạch, được biết đến với tên gọi là kí hiệu mã hóa, các qui tắc xác định việc chuyển dịch kí tự vào các vạch và khoảng trống và các đặc trưng quan trọng khác được biết đến như quy định kĩ thuật về mã vạch. Nhà sản xuất thiết bị mã vạch và người sử dụng công nghệ mã vạch yêu cầu có sẵn các tiêu chuẩn quy định kĩ thuật về mã vạch để họ tham khảo khi xây dựng các tiêu chuẩn ứng dụng và tiêu chuẩn về thiết bị. ISO và IEC hiểu rõ và có mục tiêu đối với việc quy định mã vạch trong tiêu chuẩn này là hoàn toàn trong phạm vi chung, không bị ràng buộc vào bất kì hạn chế, giấy phép và phí nào. CÔNG NGHỆ THÔNG TIN - KĨ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG - YÊU CẦU KĨ THUẬT VỀ MÃ VẠCH PDF417 In f ormation technology - Automatic identi fi cation and data capture techniques - PDF417 bar code symbology speci f ication 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ã vạch PDF417, các đặc tính của m ã vạch, việc mã hóa các ký tự dữ liệu, các định dạng mã vạch, các kích thước, các quy tắc sửa lỗi, thuật toán giải mã tham khảo, và số lượng các tham s ố ứng dụng. 2. Tài liệu 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 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. TCVN 8656-1:2010 (ISO/IEC 19762-1) Công nghệ thông tin - Kĩ thuật phân định và thu nhận dữ liệu tự động (AIDC) - Thuật ngữ hài hòa - Phần 1: Các thuật ngữ chung liên quan đến AIDC ISO/IEC 646:1991 Information technology - ISO 7-bit coded character set for i nformation interchange (Công nghệ thông tin - Bộ kí tự mã hóa ISO 7-bit dành cho trao đổi thông tin) ISO/IEC 8859-1 Information technology - 8-bit single-byte coded graphic character sets - Part 1: Lantin alphabet No. 1 (Công nghệ thông tin - Bộ kí tự đồ họa mã hóa 8 bit đơn - 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 spe cif ication - two - dimension 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 identi f ication and data capture techniques - Data carrier identi f iers including symbology identi f iers (Công nghệ thông tin - Kĩ thuật phân định và thu nhận dữ liệu tự động - Các số phân định vật mang dữ liệu (gồm cả các m ã nhận dạng mã vạch)) 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) - Thuật ngữ hài hòa - Phần 2: Phương tiện đọc quang học) ISO/IEC 24723, Information technology - Automatic identification and data capture techniques - EAN.UCC Composite bar code symbology specification (Công nghệ thông tin - Kĩ thuật phân định và thu nhận dữ liệu tự động - Yêu cầu kĩ thuật về mã vạch ghép EAN.UCC) AIM Inc. International technical Standard: ITS/04-001, Extended Channel Interpretations - Part 1: ldentification Schemes and protocols (Tiêu chuẩn kỹ thuật quốc tế: ITS/04/001, Diễn dịch kênh m ở rộng - Phần 1: Các lược đồ và giao thức phân định) 3. Thuật ngữ và định nghĩa Trong tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong TCVN 8656-1:2010 (ISO/IEC 19762-1). 3.1. Mô hình kênh cơ sở (basic channel model) Hệ thống chuẩn về việc mã hóa và truyền dữ liệu mã vạch, trong đó các byte gói tin dữ liệu được lấy từ bộ giải mã nhưng không có thông tin kiểm soát về gói tin được truyền CHÚ THÍCH : Bộ giải m ã tuân theo mô hình hoạt động trong Phương thức Kênh Cơ sở. 3.2. Chuỗi vạch-khoảng trống (bar-space sequence) Chuỗi biểu diễn chiều rộng môđun của các phần tử kí tự mã vạch 3.3. Cụm (cluster) Bất kỳ ba tập con loại trừ lẫn nhau của các kí tự mã vạch PDF417, các kí tự mã vạch trong cụm đã cho phù hợp với các quy tắc cấu trúc riêng được sử dụng trong việc giải mã mã vạch 3.4. Phương thức nén (compaction mode) Bất kì ba thuật toán nén dữ liệu trong PDF417 (văn bản, các phương thức nén số và byte) được sử dụng để ánh xạ các byte dữ liệu 8 bít một cách hiệu quả đến các từ mã của PDF417 3.5. Khoảng cách e (e-distance) Khoảng cách từ đường biên chủ đạo của một phần tử đến đường biên ch ủ đạo của phần tử tương tự tiếp theo, hoặc từ đường biên cuối đến đường biên cuối 3.6. Từ mã điều chỉnh lỗi (error correction codeword) Từ mã mã hóa giá trị được bắt nguồn từ thuật toán về từ mã điều chỉnh lỗi để kích hoạt các lỗi giải mã được phát hiện và, phụ thuộc vào mức điều chỉnh lỗi, được điều chỉnh 3.7. Diễn dịch kênh mở rộng (Extended Channel Interpretation) Quy trình trong phạm vi một vài mã vạch, bao gồm PDF417, để thay thế diễn dịch mặc định bằng diễn dịch mặc định khác theo một cách đáng tin cậy CHÚ THÍCH : Diễn dịch trước khi tạo ra mã vạch có thể được lấy lại sau khi giải mã mã vạch được quét để tái tạo gói tin dữ liệu trong định dạng gốc của nó. 3.8. Mô hình kênh mở rộng (Extended Channel Model) Hệ thống về mã hóa và truyền các byte gói tin dữ liệu và thông tin kiểm soát về gói tin, thông tin kiểm soát được truyền tải sử dụng các chuỗi thoát ECI CHÚ THÍCH : Bộ giải mã tuân theo mô h ì nh này hoạt động trong Phương thức Kênh mở rộng. 3.9. Từ mã chức năng (Function code w ord) Trong mã vạch, từ mã bắt đầu bằng một phép tính riêng, ví dụ để chuyển giữa các bộ mã hóa dữ liệu, để gọi một lược đồ nén, để lập trình bộ đọc, hoặc để gọi các ECI 3.10 . Mã phân định nhãn toàn cầu (Global Label Identi f ier) GLI Quy trình trong mã vạch PDF417 hoạt động theo một cách tương tự với ECI CHÚ THÍCH : Hệ thống GLI là tiền thân của hệ thống ECI độc lập 3.11. Macro PDF417 (Macro PDF417) Quy trình trong mã vạch PDF417 phân tán dữ liệu từ một tệp tin máy tính qua một số mã vạch PDF417 liên quan một cách hợp lý CHÚ THÍCH 1 : Quy trình mở rộng dung lượng dữ liệu ngo à i một mã vạch đơn. CHÚ THÍCH 2 : Quy trình này tương tự với đặc tính gắn với cấu trúc trong các mã vạch khác. 3.12 . Từ mã Mode latch (Mode Latch codeword) Từ mã được sử dụng để chuyển từ một phương thức này sang một phương thức khác, có hiệu lực cho tới khi từ mã latch hoặc shift khác trở nên đơn giản hoặc rõ ràng để sử dụng, hoặc đến khi kết thúc mã 3.13 . Từ mã Mode Shi f t (Mode Shift codeword) Từ mã được sử dụng để chuyển từ một phương thức sang này một phương thức khác, sau khi việc mã hóa trở về phương thức ban đầu 3.14 . Từ mã ch ỉ báo hàng (Row Indicator codeword) Từ mã PDF417 sát với kí tự bắt đầu và kí tự kết thúc trong một hàng, trong đó mã hóa thông tin về cấu trúc của mã vạch PDF417 dưới dạng phân định hàng, tổng số hàng và cột, và mức điều chỉnh lỗi 3.15 . Bộ Mô tả độ dài mã vạch (Symbol Length Descriptor) Từ mã đầu tiên trong mã vạch PDF417, trong đó mã hóa tổng số từ mã dữ liệu trong mã vạch 4. Mã vạch, phép tính và thuật ngữ viết tắt 4.1. Mã vạch Các mã vạch toán học sau đây được áp dụng nhằm đáp ứng các mục đích nêu trong tiêu chuẩn này. Có nhiều trường hợp các mã vạch được sử dụng trong phương trình theo nhiều cách khác nhau. Điều này được á p dụng để nhất quán với việc sử dụng ký hiệu chung và được định nghĩa rõ trong tiêu chuẩn này. A tỉ lệ bề mặt mã vạch (chiều cao đến chiều rộng) của mã vạch PDF417 b độ dài phần tử trong một ký tự của mã vạch c số cột của mã vạch trong miền dữ liệu (không bao gồm các từ mã đầu, cuối và chỉ báo hàng) d từ mã dữ liệu bao gồm tất cả từ mã chức năng E từ mã điều chỉnh lỗi e đường biên đến kích thước đường biên tương tự trong kí tự mã vạch F số hàng f số lỗi thay thế H độ cao của mã vạch bao gồm vùng trống K số cụm k số từ mã sửa lỗi L ch ỉ báo hàng trái l số vết xó a m số từ mã dữ liệu nguồn trước khi bổ sung bộ Mô tả Độ dài Mã vạch và các từ mã đệm n tổng số các từ mã dữ liệu bao gồm bộ Mô tả Độ dài Mã vạch và các từ mã đệm p độ dốc và chiều rộng của ký tự mã vạch Q H vùng trống nằm ngang Q v vùng trống thẳng đứng R chỉ báo hàng phải r số hàng trong mã vạch s mức điều chỉnh lỗi W độ rộng của mã vạch bao gồm vùng trống X độ rộng môđun hoặc kích thước X Y độ cao môđun (cũng được gọi là độ cao của hàng) 4.2. Các phép tính toán học Các phép tính toán học sau đây áp dụng nhằm đáp ứng các mục đích nêu trong tiêu chuẩn này. div là toán tử phân chia số nguyên, làm tròn xuống INT là giá trị nguyên còn lại sau khi chia mod là số dư nguyên dương sau khi chia. Nếu số dư là âm, thì sẽ cộng số dư với số chia để được kết quả là số dương. Ví dụ, -29160 chia 929 dư -361, khi đó lấy phần dư cộng với 929 được kết quả là 568. 4.3. Thuật ngữ viết tắt Các thuật ngữ viết tắt sau đây áp dụng nhằm đáp ứng các mục đích nêu trong tiêu chuẩn này. ECI Diễn dịch kênh mở rộng GLI Số phân định nhãn toàn cầu 5. Yêu cầu 5.1. Đặc tính của mã vạch 5.1.1. Đặc tính cơ bản PDF417 là một loại mã vạch với các đặc tính cơ bản sau đây: a) Bộ kí tự mã hóa 1. Phương thức nén văn bản (xem 5.4.1.5) thừa nhận tất cả các kí tự ASCII có thể in ra sẽ được mã hóa, ví dụ: các giá trị từ 32 đến 126 theo ISO/IEC 646 (IRV), cũng như các kí tự kiểm soát đã chọn. 2. Phương thức nén byte (xem 5.4.3) thừa nhận tất cả 256 giá trị byte 8 bit có thể được mã hóa. Điều này bao gồm tất cả các ký tự ASCII giá trị từ 0 đến 127 và hỗ trợ bộ kí tự quốc tế. 3. Phương thức nén số (xem 5.4.4) thừa nhận việc mã hóa hiệu quả các chuỗi dữ liệu số. 4. Trên 811 800 bộ kí tự khác nhau hoặc các diễn dịch dữ liệu. 5. Các từ mã chức năng khác nhau dùng cho các mục đích kiểm soát. b) Cấu trúc kí tự của mã vạch: các ký tự ( n, k, m ) của 17 môđun ( n ), 4 vạch và 4 yếu tố trống ( k ), với 6 môđun chiều rộng của yếu tố lớn nhất (m). c) Số lượng tối đa có thể các kí tự dữ liệu trong mỗi mã vạch (ở mức điều chỉnh lỗi là 0): 925 từ mã dữ liệu có thể mã hóa: 1. Phương thức nén văn bản: 1 850 ký tự (2 kí tự dữ liệu mỗi từ mã). 2. Phương thức nén byte: 1 108 ký tự (1,2 kí tự dữ liệu mỗi từ mã). 3. Phương thức nén số: 2 710 ký tự (2,93 kí tự dữ liệu mỗi từ mã). Tại mức điều chỉnh lỗi tối thiểu đã khuyến cáo, có tối đa 863 từ mã dữ liệu có thể mã hóa: 4. Phương thức nén văn bản: 1 726 kí tự (2 k í tự dữ liệu mỗi từ mã). 5. Phương thức nén byte: 1 033 kí tự (1,2 kí tự dữ liệu mỗi từ mã). 6. Phương thức nén số: 2 528 kí tự (2,93 kí tự dữ liệu mỗi mã). d) Kích cỡ mã vạch 1. Số hàng: 3 đến 90. 2. Số cột: 1 đến 30. 3. Chiều rộng trong các môđun: 90X đến 583X bao gồm các vùng trống. 4. Số lượng từ mã tối đa: 928 từ mã. 5. Số lượng từ mã dữ liệu tối đa: 925 từ mã. Khi số hàng và cột được chọn, tỉ lệ bề mặt của mã PDF417 có thể bị thay đổi khi in đ ể phù hợp với các yêu cầu về không gian của ứng dụng. e) Điều chỉnh lỗi có thể chọn: 2 đến 512 từ mã mỗi mã vạch (xem 5.7). f) Vùng không chứa dữ liệu: 1. Mỗi hàng: 73 môđun, bao gồm các vùng trống. 2. Mỗi mã vạch: tối thiểu 3 từ mã, được biểu diễn như các ký tự mã vạch. g) Kiểu mã: liên tục, hai kích thước nhiều hàng h) Tự kiểm tra kí tự: Có i) C ó thể giải mã hai chiều: Có 5.1.2. Tóm tắt các đặc tính bổ sung Trong mã vạch PDF417, các đặc tính bổ sung là vốn có hoặc tùy chọn được tóm tắt như sau: a) nén dữ liệu : (vốn có) Ba lược đồ được xác định để nén một số các đặc tính dữ liệu vào các từ mã. Nhìn chung, dữ liệu không được biểu diễn trực tiếp trên một ký tự về một cơ sở từ mã (xem 5.4.1.5 đến 5.4.4). b) Các diễn dịch kênh mở rộng : (tùy chọn) Các cơ chế này cho phép trên 811 800 bộ kí tự dữ liệu hoặc diễn dịch khác nhau được mã hóa (xem 5.5). c) Macro PDF417 : (tùy chọn) C ơ chế này cho phép các tệp dữ liệu được biểu diễn một cách logic và liền nhau trong một số mã vạch PDF417. Trên 99 999 mã vạch PDF417 khác nhau có thể được kết nối hoặc ràng buộc vào nhau và được quét theo một chuỗi nào đó giúp cho tệp dữ liệu gốc được thiết kế lại một cách chính xác (xem 5.13). d) Đường biên đến đường biên giải mã : (vốn có) PDF417 có thể được giải mã bằng cách đo các phần tử từ đường biên đến đường biên tương tự (5.3.1). e) Quét hàng chéo : (vốn có) Sự kết hợp của ba đặc tính sau đây trong PDF417 tạo thuận lợi cho việc quét hàng chéo: - được đồng bộ hóa theo chiều ngang, hoặc tự định thời - phân định hàng - được đồng bộ hóa theo chiều dọc, bằng cách sử dụng các giá trị của cụm để hoàn tất việc phân hóa hàng cục bộ. Sự kết hợp này cho phép máy quét mã vạch một chiều đi qua một số hàng và hoàn tất việc giải mã dữ liệu một phần miễn sao ít nhất một ký tự mã vạch hoàn thiện ở mỗi hàng được giải mã thành từ mã. Thuật toán giải mã có thể đặt các từ mã riêng lẻ vào một ma trận có ý nghĩa. f) Điều chỉnh lỗi : (vốn có) Người dùng có thể xác định một trong 9 mức điều chỉnh lỗi. Mức 0 không chỉ phát hiện ra lỗi mà còn có thể điều chỉnh một cách thiếu chính xác các từ mã còn thiếu hoặc đã giải mã. g) PDF417 nén : (tùy chọn) Trong các môi trường tương đối “trong sạch", có thể giảm một số hàng đầu để cải thiện mật độ của mã vạch. CHÚ THÍCH: Trong các quy định kĩ thuật trước đây về mã vạch PDF417, PDF417 nén được gọi là PDF417 bị cắt ngắn. PDF417 nén là thuật ngữ ưu tiên để tránh nhầm lẫn với một thuật ngữ được sử dụng phổ biến hơn là “bị cắt ngắn". 5.2. Cấu trúc mã vạch 5.2.1. Tham số của mã vạch PDF417 Mỗi mã vạch PDF417 bao gồm nhiều hàng được sắp xếp theo chiều dọc với tối thiểu 3 hàng (tối đa 90 hàng). Mỗi hàng phải bao gồm tối thiểu 1 kí tự mã vạch (tối đa 30 kí tự). Không bao gồm các cột chỉ báo hàng, cột đầu và cuối. Mã vạch phải bao gồm một vùng trống ở tất cả bốn phía. Hình 1 minh họa một mã vạch PDF417 mã hóa văn bản: Chuẩn về mã vạch PDF417. Hình 1 - Cấu trúc mã vạch PDF417 5.2.2. Tham số hàng Mỗi hàng của mã vạch PDF417 phải bao gồm: a) Vùng trống đầu b) Kí tự bắt đầu c) Kí tự mã vạch chỉ báo hàng trái d) 1 đến 30 ký tự mã vạch e) Kí tự mã vạch chỉ báo hàng phải f) Kí tự kết thúc g) Vùng trống cuối CHÚ THÍCH: S ố kí tự mã vạch (hoặc từ mã) đề cập trong mục “d" ở trên bằng với số cột dữ liệu trong mã vạch PDF417. 5.2.3. Chuỗi từ mã Mã vạch PDF417 có thể bao gồm trên 928 kí tự mã vạch hoặc từ mã. Kí tự mã vạch là thuật ngữ thích hợp hơn để xem vạch/ khoảng trống được in; từ mã thích hợp cho giá trị số của kí tự mã vạch. Các từ mã phải theo chuỗi này: a) Từ mã đầu tiên, bộ Mô tả độ dài mã vạch mã hóa toàn bộ số từ mã dữ liệu trong mã vạch, bao gồm bộ Mô tả độ dài mã vạch, các từ mã dữ liệu và các từ mã đệm, nhưng không bao gồm các từ mã điều chỉnh lỗi. b) Các từ mã dữ liệu phải theo sau kí tự có khả năng mã hóa điển hình nhất. Các từ mã chức năng có thể được chèn để hoàn tất việc nén dữ liệu. c) Các từ mã đệm cho phép chuỗi từ mã được biểu diễn theo ma trận hình chữ nhật. Các từ mã đệm cũng có thể được sử dụng để lấp đầy các hàng bổ sung nhằm đạt được tỉ lệ bề mặt mong muốn hoặc được quy định bởi ứng dụng. d ) Một khối kiểm soát Macro PDF417 tùy chọn. e) Các từ m ã điều chỉnh lỗi về việc phát hiện và điều chỉnh lỗi. Các từ mã được sắp xếp cùng với từ mã điển hình nhất kế với bộ Mô tả độ dài mã vạch, được mã hóa từ trái qua phải và từ hàng trên cùng đến hàng dưới cùng. Hình 2 minh họa định dạng chuỗi về mã vạch giống như Hình 1. Trong Hình 2, Mức điều chỉnh lỗi 1 được sử dụng và một kí tự đệm cần lấp đầy ma trận mã vạch. Hình 2 - Ví dụ về lược đồ mã vạch của PDF417 trong đó L, R, d và E được đề cập trong Điều 4 d 1 5 = bộ Mô tả độ dài mã vạch (trong ví dụ này, với một giá trị của 16) d 1 4 đến d 1 = biểu diễn dữ liệu đã mã hóa d 0 = từ mã đệm Các quy tắc và lời khuyên về việc lập cấu trúc ma trận được nêu trong điều 5.9. 5.3. Mã hóa cơ bản 5.3.1. Cấu trúc ký tự mã vạch Mỗi kí tự mã vạch PDF417 phải bao gồm bốn yếu tố vạch và yếu tố khoảng trống, mỗi yếu tố có thể có một đến sáu môđun chiều rộng. Bốn phần tử vạch và bốn phần tử khoảng trống phải đo 17 môđun tất cả. Các kí tự mã vạch có thể được giải mã bằng cách đo các khoảng cách e trong ký tự. Mỗi kí tự mã vạch PDF417 được xác định bởi chuỗi vạch-khoảng trống gồm 8 số, trong đó biểu diễn các chiều rộng môđun của tám yếu tố của kí tự mã vạch đó. Hình 3 minh họa một kí tự mã vạch với chuỗi vạch-khoảng trống 51111125. Hình 3 - Kí tự của mã vạch PDF417 Có 929 giá trị kí tự mã vạch (từ mã) được đánh số từ 0 đến 928. Các từ mã được biểu diễn bởi ba bộ kí tự mã vạch hoặc các cụm loại trừ lẫn nhau. Mỗi cụm mã hóa 929 từ mã PDF417 có sẵn thành các mẫu vạch-khoảng trống khác nhau sao cho một cụm khác với cụm khác. Các số của cụm là 0, 3, và 6. Định nghĩa cụm áp dụng cho tất cả các kí tự mã vạch PDF417, ngoại trừ các kí tự bắt đầu và kết thúc. Cụm số K được xác định bởi công thức sau đây: K = ( b 1 - b 2 + b 3 - b 4 + 9) mod 9 Trong đó b 1 b 2 , b 3 , và b 4 biểu diễn chiều rộng trong các môđun của bốn phần tử vạch tương ứng Cụm số K về kí tự mã vạch trong Hình 3 là: K = (5 - 1 + 1 - 2 + 9) mod 9 = 3 Các từ mã và chuỗi vạch-khoảng trống cho mỗi cụm kí tự mã vạch được đề cập đến trong Phụ lục A 5.3.2. Kí tự bắt đầu và kết thúc Các kí tự bắt đầu và kết thúc phải được sắp xếp như trong Bảng 1 và minh họa trong Hình 4: Bảng 1 - Chuỗi vạch-khoảng trống cho các kí tự bắt đầu và kết thúc Kí tự Chuỗi vạch-khoảng trống B S B S B S B S B Bắt đầu 8 1 1 1 1 1 1 3 Kết thúc 7 1 1 3 1 1 1 2 1 CHÚ THÍCH 1 : Các kí tự bắt đầu và kết thúc của mã vạch PDF417 là duy nhất có nhiều hơn 6 môđun chiều rộng. CHÚ THÍCH 2 : Kí tự kết thúc có thêm một môđun phần từ vạch đơn. Đối với tất cả các hàng, các kí tự bắt đầu và kết thúc phải có cùng chuỗi vạch- khoảng trống. Hình 4 - Các kí tự bắt đầu và kết thúc của mã vạch PDF417 5.4. Mã hóa (dữ liệu) mức cao Mã hóa mức cao biến đổi các kí tự dữ liệu thành các từ mã tương ứng. Các lược đồ nén dữ liệu được sử dụng để hoàn tất việc mã mức cao một cách hiệu quả. Ba phương thức được đề cập dưới đây, mỗi phương thức xác định một ánh xạ riêng giữa dữ liệu người sử dụng và các chuỗi từ mã. PDF417 có ba phương thức nén dữ liệu: - Phương thức nén văn bản (xem 5.4.1.5) - Phương thức nén byte (xem 5.4.3) - Phương thức nén số (xem 5.4.4) Chuỗi các byte dữ liệu cho trước có thể được biểu diễn bởi các thứ tự từ mã khác nhau, phụ thuộc vào cách bộ mã hóa chuyển giữa các phương thức nén và phương thức con nén. Không có cách đơn l ẻ nào để mã hóa dữ liệu trong mã vạch PDF417. 900 từ mã (0 đến 899) luôn có sẵn trong mỗi phương thức về mã hóa dữ liệu và các chức năng khác trong phương thức. 29 từ mã cò lại được ấn định cho các chức năng cụ thể (xem 5.4.1) độc lập với phương thức nén hiện hành. PDF417 cũng hỗ trợ hệ thống Diễn dịch Kênh M ở rộng, cho phép các diễn dịch dữ liệu khác được mã hóa chính xác trong mã vạch (xem 5.5). 5.4.1. Từ mã chức năng Các từ mã từ 900 đến 928 được ấn định làm các từ mã chức năng như sau: - chuyển giữa các phương thức (xem 5.4.1.1) - các ứng dụng nâng cao sử dụng các Diễn dịch Kênh mở rộng (ECIs) (xem 5.4.1.2) - các ứng dụng nâng cao khác (xem 5.4.1.3 và 5.4.1.4) Hiện tại, các từ mã từ 903 đến 912, 914 đến 917, và 919 là các từ mã dự trữ. Bảng 2 xác định danh sách gồm đầy đủ các từ mã chức năng đã ấn định và dự trữ. Các chức năng của chúng được đề cập trong các điều từ 5.4.1.1 đến 5.4.1.5. Xem 5.4.6 về cách xử lý các từ mã dự trữ. Bảng 2 - Nhiệm vụ của các từ mã chức năng trong mã vạch PDF417 Từ mã Chức năng Tham khảo điều 900 mode latch sang phương thức nén văn bản 5.4.1.1 901 mode latch sang phương thức nén byte 5.4.1.1, 5.4.3.1 902 mode latch sang phương thức nén số 5.4.1.1 903 đến 912 Dự trữ 913 mode shift sang phương thức nén byte 5.4.1.1 914 đến 917, 919 Dự trữ 918 cờ liên kết đến thành phần hàng kèm theo, trong mã vạch ghép (khác với mã vạch ghép EAN.UCC) 5.4.1.5 920 cờ liên kết đến thành phần một chiều kèm theo, trong mã vạch ghép EAN.UCC 5.4.1.5 921 k h ở i tạo bộ đọc 5.4.1.4 922 từ mã cuối cho khối kiểm soát Macro PDF 5.13 923 thẻ phân định phần đầu các trường tùy chọn trong khối kiểm soát Macro PDF 5.13 924 mode latch sang phương thức nén byte (sử dụng khác với 901) 5.4.1.1, 5.4.3.1 925 đến 927 số phân định cho một Diễn dịch Kênh Mở rộng (ECI) 5.5 928 từ mã đánh dấu Macro biểu thị phần đầu của khối kiểm soát Macro PDF 5.13 5.4.1.1 . Từ mã chức năng cho việc chuyển phương thức Trong một mã vạch PDF417, có thể chuyển tới và lui các phương thức mỗi lần có yêu cầu. Lời khuyên về việc chọn lựa các phương thức thích hợp có trong điều 5.4.5. Từ mã Mode Latch có thể được sử dụng để chuyển từ phương thức hiện hành tới phương thức đích mà có tác dụng đến khi bộ chuyển phương thức khác được đưa vào sử dụng. Các từ mã từ 900 đến 902 và 924 được ấn định cho mục đích này. Bảng 3 xác định chức năng của chúng. Từ mã Mode Shift 913 tạo ra một bộ chuyển tạm thời từ phương thức nén văn bản sang phương thức nén byte. Bộ chuyển này chỉ có hiệu quả cho từ mã tiếp theo, sau khi phương thức trở lại phương thức con thịnh hành của phương thức nén văn bản. Từ mã 913 chỉ sẵn có trong phương thức nén văn bản, cách sử dụng của nó được mô tả trong điều 5. 4 .2.4. Bảng 3 - Các từ mã chuyển phương thức và định nghĩa phương thức Phương thức đích Mode Latch Mode Sh i ft Nén văn bản 900 Nén byte 901/924 913 Nén số 902 CHÚ THÍCH : Bảng 3 phân định từ mã được sử dụng để chuyển phương thức đ ã xác định. Các quy tắc chuyển giữa ba phương thức được đề cập trong Bảng 4 và biểu diễn trong Hình 5. Bảng 4 - Bảng chuyển phương thức, các từ mã biểu diễn và chức năng của chúng Phương thức gốc Phương thức đích Văn bản Byte Số Văn bản mo d e latch 900 mode shift 913 mode latch 901 mode latch 924 mode latch 902 Byte mode latch 900 mode latch 901 mode latch 924 mode latch 902 Số mode latch 900 mode latch 901 mode latch 924 mode latch 902 Hình 5 - Chuyển phương thức có sẵn Các quy tắc chuyển thành phương thức nén byte được mô tả đầy đủ hơn ở điều 5.4.3.1. 5.4.1.2. Các từ mã chức năng cho việc chuyển sang các từ mã Diễn dịch Kênh Mở rộng Từ mã ECI có thể được sử dụng để chuyển tới một diễn dịch cụ thể, mà vẫn có tác dụng đến khi một từ mã ECI khác được đưa vào sử dụng rõ ràng hoặc đến phần cuối của dữ liệu. Các từ mã từ 925 đến 927 được ấn định cho chức năng này (xem 5.5). 5.4.1.3. Các từ mã chức năng về Macro PDF417 Các mã vạch Macro PDF417 (xem 5.13) phải sử dụng từ mã 928 tại điểm bắt đ ầu của khối kiểm soát Macro PDF417. Các từ mã 922 và 923 được sử dụng cho các chức năng trong Macro PDF417. 5.4.1.4. Từ mã chức năng để khởi tạo bộ đọc Từ mã 921 phải được sử dụng để hướng dẫn người đọc dịch dữ liệu chứa trong mã vạch khi lập trình khởi tạo bộ đọc. Từ mã 921 phải xuất hiện đầu tiên sau bộ Mô tả Độ dài Mã vạch. Nếu có chuỗi khởi tạo Macro PDF417 thì từ mã 921 phải x u ất hiện trong mỗi mã vạch. Dữ liệu chứa trong mã vạch khởi tạo hoặc chuỗi các mã vạch, sẽ không được bộ đọc truyền đi. 5.4.1.5. Các từ mã chức năng cho các cờ liên kết trong mã vạch ghép Từ mã 920 phải được sử dụng như một cờ liên kết để báo hiệu sự có mặt của thành phần một chiều EAN.UCC liên quan phù hợp ISO/IEC 24723. Từ mã 918 phải được sử dụng làm cờ liên kết để báo hiệu sự có mặt của thành phần một chiều liên quan trong mọi mã vạch ghép. Khi sử dụng, từ mã 918 hoặc 920 có thể xuất hiện ở mọi vị trí trong mã vạch. Yêu cầu kĩ thuật của mã vạch ghép có thể xác định vị trí cụ thể của cờ liên kết. Các bộ đọc hỗ trợ ứng dụng ghép đã được chỉ định phải giải mã và truyền dữ liệu từ t ấ t cả các thành phần như đã quy định trong yêu cầu kĩ thuật về mã vạch ghép liên quan. Các bộ đọc không hỗ trợ ứng dụng ghép có thể xử lý từ mã 918 hoặc 920 như một từ mã dự trữ (xem 5.4.6). Ngoài ra, các bộ đọc không hỗ trợ ứng dụng ghép 918 có thể có một lựa chọn là bỏ qua thành phần ghép 2 chiều và ch ỉ truyền dữ liệu từ thành phần một chiều liên quan. 5.4.2. Phương thức nén văn bản Phương thức nén văn bản bao gồm tất cả các kí tự ASCII có thể in được (ví dụ: các giá trị từ 32 đến 126) và ba kí tự kiểm soát ASCII: HT hoặc tab (ASCII giá trị 9), LF (tín hiệu chuyển hàng) (ASCII giá trị 10) và CR (quay lại bộ phận vận tải) (ASCII giá trị 13). Phương thức nén văn bản cũng bao gồm các kí tự latch và shi f t được sử dụng dành riêng trong phương thức này. Phương thức nén văn bản mã hóa trên 2 kí tự mỗi từ mã. Các quy tắc biến đổi dữ liệu thành các từ mã PDF417 được đề cập trong điều 5 .4 .2.2. Các bộ chuyển phương thức con được đề cập trong điều 5.4.2.3. 5.4.2.1. Các phương thức con về nén văn bản Phương thức nén văn bản gồm bốn phương thức con: - Alpha (chữ hoa) - Lower (chữ thường) - Hỗn hợp (số và chấm câu) - Chấm câu Mỗi phương thức con chứa 30 kí tự, bao gồm các kí tự shift và latch của phương thức con. Phương thức nén mặc định cho PDF417 có hiệu quả tại lúc bắt đầu mỗi mã vạch luôn là phương thức con Alpha (chữ hoa) của phương thức nén văn bản. Từ mã latch từ một phương thức khác sang phương thức nén văn bản phải luôn chuyển sang phương thức con Alpha của phương thức nén văn bản. Tất cả các kí tự và giá trị của chúng được đề cập trong Bảng 5 Bảng 5 - Định nghĩa phương thức con Các giá trị của Base 30 Các phương thức con về nén văn bản Alpha Lower H ỗ n hợp Chấm câu Kí tự ASCII Kí tự ASCII Kí tự ASCII Kí tự ASCII 0 A 65 a 97 0 48 ; 59 1 B 66 b 98 1 49 <> 60 2 C 67 c 99 2 50 > 62 3 D 68 d 100 3 51 @ 64 4 E 69 e 101 4 52 [ 91 5 F 70 f 102 5 53 \ 92 6 G 71 g 103 6 54 ] 93 7 H 72 h 104 7 55 _ 95 8 I 73 i 105 8 56 ‘ 96 9 J 74 j 106 9 57 ~ 126 10 K 75 k 107 & 38 ! 33 11 L 76 I 108 CR 13 CR 13 12 M 77 m 109 HT 9 HT 9 13 N 78 n 110 , 44 , 44 14 O 79 o 111 : 58 : 58 15 P 80 p 112 # 35 LF 10 16 Q 81 q 113 - 45 - 45 17 R 82 r 114 . 46 . 46 18 S 83 s 115 $ 36 $ 36 19 T 84 t 116 / 47 / 47 20 U 85 u 117 + 43 “ 34 21 V 86 v 118 % 37 | 124 22 W 87 w 119 * 42 * 42 23 X 88 x 120 = 61 ( 40 24 Y 89 y 121 ^ 94 ) 41 25 Z 90 z 122 pl ? 63 26 khoảng trống 32 khoảng trống 32 khoảng trốn g 32 { 123 27 II as II } 125 28 ml ml al ‘ 39 29 ps ps ps al al = latch sang alpha ml = latch sang hỗn hợp as = shift sang alpha pl = latch sang chấm câu II = latch sang lower ps = shift sang chấm câu CHÚ THÍCH : Các cột Kí tự ở trên biểu diễn diễn dịch mặc định của ECI 000003 của các giá trị byte đ ã được chỉ ra trong các cột ASCII liền kề. Mỗi bảng biểu diễn một nửa từ mã, ví dụ: các dãy giá trị từ 0 đến 29 (xem 5.4.2.2). 5 .4 .2.2 . Các quy tắc nén cho việc mã hóa trong phương thức nén văn bản Trong phương thức nén văn bản, các cặp kí tự dữ liệu được biểu diễn trong từ mã đơn. Các giá trị được ấn định cho các k í tự dữ liệu nằm trong khoảng từ 0 đến 29 (tức là cơ số/ base 30) và được đề cập trong bảng 5. Đối với mỗi cặp của các giá trị base 30, giá trị đầu tiên hoặc bên trái phải được thiết kế nhiều giá trị h hơn, các giá trị khác thiết kế ít giá trị / hơn. Từ mã PDF417 đã mã hóa được xác định bằng việc sử dụng công thức sau: d = h x 30 + l trong đó: d được quy định trong điều 4 Công thức này cũng áp dụng cho các giá trị base 30 đối với các shift và latch trong phương thức nén văn bản. Các giá trị shift và latch thích hợp được sử dụng giữa các phương thức con. Nếu việc mã hóa chuỗi ký tự không có kết quả là một số chẵn các giá trị của base 30, xem điều 5 .4.2.4 về cơ chế sử dụng cụ thể. Ví dụ sau đây minh họa cách nén đạt được trong phương thức nén văn bản. Ví DỤ : Dữ liệu được mã hóa: PDF417 Bảng 6 - Ví dụ về việc mã hóa nén văn bản Các cặp kí tự h / h x 30 + / Từ mã P D 15 3 15 x 30 + 3 453 F ml 5 28 5 x 0 + 28 178 4 1 4 1 4 x 30 + 1 121 7 ps 7 29 7 x 30 + 29 239 CHÚ THÍCH 1 : ml (latch sang phương thức con hỗn hợp) được sử dụng để m ã hóa các ký tự số CHÚ THÍCH 2 : ps được sử dụng như một giá trị đệm trong ví dụ này, các giá trị shift và latch khác có thể được sử dụng (xem 5.4.2.4) Dữ liệu PDF417 được biểu diễn bởi các từ mã 453, 178, 121, 239 5.4.2.3. Chức năng của shift và latch trong việc chuyển phương thức con của nén văn bản Việc chuyển từ một phương thức con sang một phương thức con khác trong phương thức nén văn bản phải thông qua các giá trị latch và shift đã xác định cho phương thức con trước bộ chuyển. Phương thức con của shift phải được sử dụng để chuyển một phương thức con của nén văn bản sang một phương thức con khác chỉ với một kí tự dữ liệu. Các từ mã tiếp theo trở lại phương thức con đang được sử dụng trước shift (ngoại tr ừ việc ps được sử dụng như một bước đệm, xem 5.4.2.4). Shift có các chức năng như sau: - ps = shift chuyển sang phương thức con chấm câu - as = shift chuyển sang phương thức con chữ viết hoa Phương thức con của Latch phải được sử dụng để chuyển một phương thức con của nén văn bản sang một phương thức con khác mà có hiệu quả đến khi một latch hay shift khác được đưa vào sử dụng. Latch có các chức năng như sau: - al = latch sang phương thức con theo chữ viết hoa - II = latch sang phương thức con chữ thường - ml = latch sang phương thức con hỗn hợp - pl = latch sang phương thức con chấm câu Bộ các chức năng của latch và shift giới hạn luôn sẵn có trong mỗi phương thức con của nén văn bản. Các chức năng này được liệt kê trong Bảng 5. Bảng 7 biểu diễn việc chuyển giữa các phương thức con của nén văn bản; Hình 6 biểu diễn các chức năng này dưới dạng lược đồ. CH Ú THÍCH : Tiếp theo phương thức con của latch có thể là phương thức con của latch hoặc shift khác; còn tiếp theo phương thức con của shift có thể không phải là phương thức của con shift hoặc latch. Bảng 7 - Bảng chuyển phương thức con của nén văn bản Phương thức con gốc Phương thức con đích Alpha Lower Hỗn hợp Chấm câu Alpha II ml ps Lower as ml ps Hỗn h ợ p al II ps pl Chấm câu al Hình 6 - Chuyển phương thức con của nén văn bản 5.4.2.4. Cơ chế sử dụng lớp đệm trong phương thức nén văn bản Nếu chuỗi kí tự nén văn bản không có kết quả là một số chẵn các giá trị của base 30, thì phải bổ sung ở cuối chuỗi kí tự một lớp đệm. Bảng 6 nêu ví dụ được minh họa. Khi không có các chức năng vô hiệu trong phương thức nén văn bản th ì phương thức con của shift và latch phải được sử dụng theo các cơ chế xác định trong các trường hợp sau đây: a) Nếu chuỗi kí tự tiếp tục xuất hiện đến cuối dữ liệu hoặc chuỗi kí tự của phương thức nén văn bản được theo sau bằng cách chốt phương thức nén khác, khi đó lớp đệm có thể là bất kì shift hay latch của phương thức con nào. b) Nếu chuỗi kí tự của phương thức nén văn bản được theo sau bởi shift byte (từ mã 913) để mã hóa kí tự của phương thức nén byte đơn, hai cơ chế có thể được sử dụng phụ thuộc vào phương thức con của nén văn bản đang được sử dụng trước shift nén byte: 1) Nếu phương thức con của nén văn bản không phải là chấm câu, thì giá trị 29 ( ps ) của base 30 phải được sử dụng nếu việc mã hóa được nhằm để trở lại phương thức con của nén văn bản giống như vậy. Bộ giải mã ngay lập tức bỏ qua ps trước từ mã 913. 2) Nếu phương thức con của nén v ă n bản là chấm câu, thì giá trị 29 ( al ) của base 30 phải được sử dụng. Bộ giải mã không bỏ qua ( al ), do đ ó sẽ không quay lại phương thức con Alpha. 5.4.2.5. Chuyển từ phương thức nén văn bản Phương thức nén văn bản có thể được kết thúc ở cuối mã vạch, hoặc bởi bất kì từ mã nào sau đây: - 900 (latch của phương thức nén văn bản) - 901 (latch của phương thức nén byte) - 902 (latch của phương thức nén số) - 924 (latch của phương thức nén byte) - 928 (phần đầu của khối kiểm soát Macro PDF417) - 923 (phần đầu của trường tùy chọn Macro PDF417) - 922 (ký tự kết thúc Macro PFD417) Ba từ mã cuối cùng chỉ xuất hiện trong khối kiểm soát Macro PDF417 của mã vạch Macro PDF417 (xem 5.13.1). Phương thức nén văn bản cũng bị ảnh hưởng bởi sự xuất hiện của từ mã dự trữ (xem 5.4.6). Nếu bộ giải mã có trong phương thức nén văn bản và gặp từ mã 913 (sh i ft của phương thức nén byte), thì nó giải mã từ mã theo sau từ mã 913 như một byte nhị phân đơn và sau đó quay về phương thức nén văn bản. Phương thức con mà bộ giải mã quay về là phương thức con được latch gần đây nhất có hiệu quả trước từ mã 913; một shift của phương thức con ps ngay lập tức bị bỏ qua trước từ mã 913. Nếu bộ giả mã có trong phương thức nén văn bản và gặp từ mã 900 (latch của phương thức nén văn bản), thì bộ giải mã sẽ khởi tạo lại phương thức con Alpha. 5.4.3. Phương thức nén byte Phương thức nén byte cho phép một chuỗi các byte 8 bit được mã hóa thành chuỗi các từ mã. Điều này được thực hiện bởi bộ chuyển đổi Base 256 thành Base 900, trong đó đạt được tỉ lệ nén của sáu byte trên năm từ mã (1,2 : 1). Tất c ả kí tự và giá trị của chúng (0 đến 256) được quy định trong Phụ lục B. Điều này được coi như một diễn dịch kí tự kiểm soát và diễn dịch đồ họa mặc định. Khi các ECI được gọi ra (xem 5.5) thì diễn dịch này được xác định là ECI 000003 (xem 5.5.2). CHÚ THÍCH : Trong các quy định kĩ thuật về PDF417 trước đây, bộ kí tự mặc định tương đương với ECI (trang mã về hệ điều hành MS-DOS). Diễn dịch về các giá trị kí tự byte dưới 128 là không đổi, thao tác của thiết bị in và quét mã vạch PDF417 là vô hiệu. Các ứng dụng mới sử dụng các giá trị kí tự byte trên 127 phải thừa nhận diễn dịch mặc định ECI 000003 về tính tương hợp r õ nét nhất với các hệ thống hiện hành. C á c ứng dụng hiện có sử dụng các giá trị ở trên 127 có thể tiếp tục mã hóa và xử lý dữ liệu như trước. Các ứng dụng dựa vào diễn dịch mặc định các giá trị trên 127 trước đó có thể mã hóa ECI 000002 rõ ràng nếu chúng muốn chuyển bằng t í n hiệu diễn dịch này. 5.4.3.1. Chuyển sang phương thức nén byte Trong phương thức nén số hoặc văn bản, để chuyển sang phương thức nén byte cần sử dụng một trong các từ mã sau đây: - Mode latch 924 được sử dụng khi tổng số kí tự nén byte được mã hóa là bội số của 6 - Mode latch 901 được sử dụng khi tổng số kí tự nén byte được mã hóa không phải là bội số của 6 - Mode shift 913 có thể được sử dụng thay cho từ mã 901 khi kí tự nén byte đơn phải được mã hóa 5.4.3.2. Quy tắc nén để mã hóa kí tự nén byte đơn (sử dụng mode shift 913) Để mã hóa kí tự nén byte đơn, từ mã phải là giá trị thập phân (0 đến 255) của kí tự như đã quy định trong Phụ lục B. 5.4.3.3. Quy tắc nén để mã hóa các chuỗi kí tự nén byte dài hơn (sử dụng Mode latch 924 hoặc 901) Quy trình sau đây được sử dụng để mã hóa dữ liệu kí tự nén byte 1) Thiết lập tổng số kí tự nén byte. 2) Nếu là bội số của 6 th ì mode latch 924 và 901 phải được sử dụng. 3) Chia nhỏ số kí tự nén byte thành chuỗi 6 ký tự, từ trái qua phải (từ các kí tự quan trọng nhất đến ít quan trọng nhất). 4) Gán các giá trị thập phân 6 byte dữ liệu được mã hóa trong phương thức nén byte b 5 đến b 0 (trong đó b 5 là byte dữ liệu đầu tiên). 5) Thực hiện bộ chuyển đổi từ base 256 thành base 900 để tạo một chuỗi gồm 5 từ mã. Phụ lục C xác định thuật toán và minh họa ví dụ. 6) Nhắc lại từ Bước 3 nếu cần thiết. 7) Với các kí tự nén byte còn lại khi sử dụng mode latch 901, (ví dụ: khi nhóm cuối cùng ít hơn 6 kí tự nén byte) (các) từ mã phải là (các) giá trị thập phân (0 đến 255) của (các) kí tự đã quy định trong Phụ lục B, theo thứ tự từ quan trọng nhất đến ít quan trọng nhất. CHÚ THÍCH : Phương thức nén byte sau Mode latch 901 thừa nhận rằng tổng số byte được mã hóa không phải là bội số của 6. Nếu số byte được mã trong phương thức nén byte l à bội số nguyên của 6 thì 901 hoặc 924 sẽ được mã hóa, và được đặt ở bất kì điểm nào trong mã vạch nhằm tạo ra một mã hóa chính xác theo các quy tắc mã hóa này. Ví dụ, t ừ mã 924 là từ mã thứ nh ấ t hoặc thứ hai có thể phân định hàng từ mã sau đây của phương thức nén byte khi mã hóa số byte là bội của 6. Như một sự lựa chọn , từ m ã 901 có thể được đặt ở bất kỳ vị trí nào trong dòng từ mã của phương thức nén byte nhằm phân chia dòng thành hai đoạn, cả hai đoạn này đều không mã hóa số byte là bội của 6. Nếu có yêu cầu về mã hóa bổ sung trong các phương thức nén số hoặc văn bản thì các kí tự latch thích hợp phải được sử dụng (xem 5.4.1.1). 5.4.3.4. Chuyển từ nén byte Phương thức nén byte có thể kết thúc ở cuối mã vạch hoặc bất kì các từ m ã sau đây: - 900 (latch của phương thức nén văn bản) - 901 (latch của phương thức nén byte) - 902 (latch của phương thức nén số) - 924 (latch của phương thức nén byte) - 928 (phần đầu của khối kiểm soát Macro PDF417) - 923 (phần đầu của trường tùy chọn Macro PDF417) - 922 (ký tự kết thúc Macro PFD417) Ba từ mã cuối cùng chỉ xuất hiện trong khối kiểm soát Marcro PDF417 của mã vạch Macro PDF417 (xem 5.13.1). Phương thức nén byte cũng bị ảnh hưởng bởi sự có mặt của từ mã dự trữ (xem 5.4.6). Việc gọi lại phương thức nén byte (bằng cách sử dụng từ mã 901 hoặc 924 trong phương thức nén byte) để hoàn thành nhóm 6 ký tự nén byte của phương thức nén byte trước đó như đã mô tả trong điều 5.4.3.3, và sau đó bắt đầu một nhóm mới. Quy trình này có thể cần thiết khi số gán ECI cần được mã hóa (xem 5. 5 .3.2). Đối với phương thức nén văn bản, trong suốt quá trình giải mã, việc xử lý nhóm các từ mã cuối cùng khác nhau phụ thuộc vào liệu phương thức nén byte được gọi ra với từ mã 901 hoặc 924 hay không. Nếu phương thức nén byte được gọi ra với từ mã 924, tổng số từ mã trong phương thức nén phải là bội số của năm. Nếu không phải như vậy thì mã vạch không hợp lệ. Tất cả các nhóm 5 từ mã được giải mã thành các nhóm 6 byte. Nếu phương thức nén byte được gọi ra với từ mã 901 thì nhóm các từ mã cuối cùng được diễn dịch trực tiếp là một byte mỗi từ mã, mà không cần nén. Do đó, nếu nhóm cuối cùng gồm năm từ mã thì nhóm được diễn dịch là 5 byte hơn là 6. 5.4.4. Phương thức nén số Phương thức nén số là phương pháp nén dữ liệu từ base 10 đến base 900 và phải được sử dụng để mã hóa các chuỗi số liên tiếp. Phương thức bén số mã hóa trên 2,93 chữ số mỗi từ mã. 5.4.4.1. Latch sang phương thức nén số Phương thức bén số có thể được gọi khi trong các phương thức nén văn bản hoặc nén byte sử dụng mode latch 902. 5.4.4.2. Quy tắc nén để mã hóa các chuỗi số liên tiếp Quy trình sau đây được sử dụng để nén dữ liệu số: 1) Chia chuỗi số thành các nhóm 44 chữ số, ngoại trừ nhóm cuối cùng, nhóm này có thể chứa ít chữ số hơn. 2) Với mỗi nhóm, bổ sung chữ số 1 vào vị trí quan trọng nhất để ngăn ngừa sự mất mát các số 0 ở đầu V Í DỤ dữ liệu gốc 00246812345678 sau bước 2 1 00246812345678 CHÚ THÍCH : Chữ số đầu 1 được rời đi trong thuật toán giải mã 3) Biểu diễn việc chuyển đổi base 10 đến base 900. Phụ lục D quy định thuật toán về việc chuyển đổi này và minh họa ví dụ. 4) Nhắc lại từ Bước 2 khi cần. Các quy tắc sau đây có thể được sử dụng để xác định số từ mã chính xác trong phương thức nén số: - Các nhóm 44 chữ số nén 15 từ mã - Đối với các nhóm chuỗi số ngắn hơn, số từ mã có thể được tính như sau: Các từ mã = INT(số các chữ số / 3) + 1 VÍ DỤ : Đối với chuỗi 28 số INT (28/3) + 1 = 9 + 1 = 10 từ mã 5.4.4.3. Chuyển từ phương thức nén số Phương thức nén số có thể được kết thức ở cuối mã vạch, hoặc bất kì từ mã sau đây: - 900 (latch của phương thức nén văn bản) - 901 (latch của phương thức nén byte) - 902 (latch của phương thức nén số) - 924 (latch của phương thức nén byte) - 928 (phần đầu của khối kiểm soát Macro PDF417) - 923 (phần đầu của trường tùy chọn Macro PDF417) - 922 (ký tự kết thúc Macro PFD417) Ba từ mã cuối cùng chỉ xuất hiện trong khối kiểm soát Macro PDF417 của mã vạch Macro PDF417 (xem 5.13.1). Phương thức nén số cũng bị ảnh hưởng bởi sự có mặt từ mã dự trữ (xem 5.4.6). Việc gọi lại phương thức nén số (bằng cách sử dụng từ mã 902 trong phương thức nén số) để kết thúc nhóm trong phương thức nén số hiện hành như đã mô tả trong điều 5 .4 .2.2, và sau đó bắt đầu một nhóm mới. Quy trình này có thể cần thiết khi số gán ECI cần được mã hóa (xem 5. 5 .3.4). Đối với phương thức nén số, trong suốt quá trình giải mã, việc chuyển đổi base 900 thành base 10 phải có kết quả là một số có chữ số quan trọng nhất là “1”. Nếu việc chuyển đổi này không có kết quả là một số bắt đầu với “1", thì mã vạch sẽ không hợp lệ. Chữ số đầu “1" được rời đi để tạo số gốc. 5.4.5. Lời khuyên về việc lựa chọn phương thức nén thích hợp Tất cả các việc thực hiện cơ bản về in và quét các mã vạch PDF417 phải hỗ trợ ba phương thức: nén văn bản, nén byte, và nén số. Bộ ký tự mặc định về nén văn bản được đề cập trong Bảng 5; về nén byte được đề cập trong Phụ lục B. Phương thức nén văn bản hiệu quả hơn phương thức nén byte về việc mã hóa các tệp văn bản ASCII chuẩn bởi việc nén các giá trị ký tự ASCII 9, 10, 13 và 32 đến 126 tốt hơn. Phương thức nén số phải được sử dụng cho các chuỗi số dài. Lời khuyên về việc chuyển giữa các phương thức để giảm thiểu số từ mã được cung cấp như một thuật toán trong Phụ lục N. 5.4.6. Xử lý các từ mã dự trữ của PDF417 5.4.6.1. Tổng quan Các mã vạch PDF417 sử dụng trong các hệ thống mở không được dùng bất kì từ mã dành riêng (xem 5.4.1) trong tiêu chuẩn này. Tuy nhiên, thiết bị giải mã phải hỗ trợ việc truyền các từ mã dự trữ sử dụng các chuỗi thoát như quy định trong 5.17.4. Thiết bị giải mã có thể cũng hỗ trợ lựa chọn xử lý các mã vạch như vậy là không hợp lệ, cũng như vậy khi hoạt động trong Phương thức Kênh Cơ sở. Các hệ thống nhận phải xóa bỏ dữ liệu chứa các chuỗi thoát sử dụng các từ mã dự trữ, trừ phi hệ thống hiểu được định nghĩa mới về từ mã dự trữ trước. 5.4.6.2. Sử dụng các từ mã dự trữ trong tương lai Bất kì từ mã chức năng mới được xác định trong các sửa đổi của tiêu chuẩn này phải có các quy tắc mã hóa được quy định phù hợp với thiết bị tồn tại trước đó. Đặc biệt là: - Khi một từ mã báo hiệu mới (chống lại từ mã của phương thức nén mới) được mã hóa, nó được theo sau bởi latch của phương thức nén thích h ợ p để các từ mã dữ liệu tiếp theo được diễn dịch và truyền như một hàng byte, hơn là chuỗi các từ mã thoát không diễn dịch. Phương pháp này sẽ cho các kết quả mong muốn với thiết bị giải mã phù hợp với cả tiêu chuẩn gốc và tiêu chuẩn này, không quan tâm liệu thiết bị có dùng giao thức truyền mới hay nguyên bản hay không. - Tại hệ thống nhận, bộ giải mã ECI sẽ xử lý các ECI báo hiệu (ví dụ: Khối điều khiển Macro và các từ mã thoát không diễn dịch) trước các ECI có khả năng mã hóa (ví dụ như các bộ ký tự). Do đó, bộ mã hóa phải chú ý tới thứ tự các thao tác sau: 1) Nếu xuất hiện các ECI của khối kiểm soát Macro thì chúng sẽ được sử dụng để sắp xếp hàng byte theo thứ tự chính xác. 2) Các từ mã dữ liệu thoát được dịch bởi bộ giải mã ECI theo các quy tắc của phương thức nén mới hoặc ECI báo hiệu, và các byte dữ liệu kết quả sẽ được chèn vào vị trí thích hợp của chúng trong hàng byte. 3) Cuối cùng, bộ kí tự và các ECI có khả năng mã hóa khác sẽ được áp dụng cho hàng byte kết quả. 5.5. Diễn dịch Kênh Mở rộng Giao thức diễn d ịch kênh mở rộng (ECI) cho phép hàng dữ liệu xuất có các diễn dịch khác với diễn dịch của bộ ký tự mặc định. Giao thức ECI được xác định một cách nhất quán qua số mã vạch, bao gồm PDF417. Các ECI được ấn định bởi AIM Global, Inc (Hiệp hội thương mại xác thực tự động). CHÚ THÍCH : Lược đồ về mã vạch gọi là S ố phân định toàn cầu (GLIs) được xác định cho mã vạch PDF417. Việc mã hóa và giải mã các ECI giống với các yêu cầu kĩ thuật trước đây về các GLI của PDF417. Tuy nhiên, phương thức truyền các gói tin giải mã theo các yêu cầu kĩ thuật trước đây về PDF417 cho các GLI là khác với phương thức truyền các ECI. Cũng có nhiều điểm khác biệt trong việc sử dụng các ECI với Macro PDF417. Tiêu chuẩn này cho phép sử dụng các giao thức hiện hành và trước đây, theo cách này thiết bị mới và cũ có thể tiếp tục cùng tồn tại. Có năm kiểu diễn dịch được hỗ trợ trong PDF417: a) các bộ ký tự (hoặc các trang mã) b) các diễn dịch theo mục đích chung như là mã hóa dữ liệu và nén dữ liệu (khác với các phương thức nén của mã vạch) c) người sử dụng xác định các diễn dịch về các hệ thống đóng d) truyền thông tin kiểm soát về Macro PDF417 e) truyền các từ mã không diễn dịch của PDF417 Việc truyền giao thức Diễn dịch Kênh mở rộng được quy định đầy đủ trong tiêu chuẩn quốc tế ITS/04-001 của AIM, Phần 1: Giao thức cung cấp phương pháp để quy định các diễn dịch riêng về các giá trị byte trước khi in và sau khi giải mã. Diễn dịch Kênh Mở rộng (ECI) được phân định bởi số có 6 chữ số được mã hóa trong mã vạch PDF417 bởi một trong ba từ mã cụ thể theo sau bởi một hoặc hai từ mã (xem 5.5.1). ECI có thể bị gọi ra ở bất cứ đâu trong gói tin mã hóa theo các quy tắc của phương thức nén (xem 5.5.3). Giao thức ECI chỉ có thể được sử dụng với các bộ giải mã cho phép truyền mã nhận dạng mã vạch (xem 5.17.5). Các bộ giải mã không được phép truyền số phân định mã vạch thì không thể chuyển các chuỗi thoát từ mã vạch chứa ECI. 5.5.1. Mã hóa số gán ECI ECI có thể được gọi ra ở bất kỳ đâu trong hàng dữ liệu, tùy thuộc vào các điều kiện nêu trong điều 5.5.3. Trước đây, khi một ECI được gọi ra, quá trình chuyển có thể diễn ra ở mọi phương thức nén. Phương thức nén đã sử dụng được xác định hoàn toàn bởi các giá trị dữ liệu 8 bit đang được mã hóa và không phụ thuộc vào ECI hiện hành. Ví dụ, chuỗi các giá trị trong khoảng từ 48 đến 57 (thập phân) được mã hóa một cách hiệu quả nhất trong phương thức nén số thậm chí nếu chuỗi không được diễn dịch là các số. Số gán ECI được mã hóa ở một trong ba chuỗi từ mã ECI, trong đó bắt đầu với các từ mã 927, 926 hoặc 925. Một trong hai từ mã bổ sung không được sử dụng để mã hóa số gán ECI. Các quy tắc mã hóa được quy định trong Bảng 8. Bảng 8 - Mã hóa các số gán ECI Số gán ECI Chuỗi từ mã Các từ mã Các khoảng 000000 đến 000899 C 0 927 C 1 ECI_no C 1 = (0 đến 899) 000900 đến 810899 C 0 926 C 1 ECI_no div 900 - 1 C 1 = (0 đến 899) C 2 ECI_no mod 900 C 2 = (0 đến 899) 810900 đến 811799 C 0 925 C 1 ECI_no - 810 900 C 1 = (0 đến 899) Có 811 800 số gán ECI có sẵn trong mã vạch PDF417 CHÚ THÍCH : Phương pháp mã hóa giống với lược đồ GLI hợp nhất trong các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và AIM Châu Âu (1994). Ví dụ sau đây minh họa việc mã hóa: V Í DỤ : ECI = 013579 Các từ m ã = [ 926 ] [ 13 579 div 900 ] - 1 ] [ 13 579 mod 900 ] = [ 926 ] [ 15-1 ] [ 79 ] = [ 926 ] [ 14 ] [ 79 ] 5.5.2. Diễn dịch Kênh mở rộng mặc định và được gán trước Các ECI từ ECI 000000 đến ECI 000003 được gán trước phù hợp với các yêu cầu kĩ thuật về mã vạch hiện có, bao gồm PDF417. - ECI 000000 (ngang bằng với ECI 0 nguyên bản) biểu diễn lược đồ mã hóa mặc định của các bộ mã hóa tuân theo các tiêu chuẩn về PDF nguyên bản - ECI 000001 (ngang bằng với GLI 1 nguyên bản) biểu diễn lược đồ mã hóa GLI của một số mã vạch với các ký tự từ 0 đến 127 giống với các kĩ tự đó trong ISO/IEC 646:1991, Phiên bản Tham chiếu Quốc tế (tương đương với ANSI X 3.4) và các ký tự từ 128 đến 255 giống với các giá trị đó trong ISO/IEC 8859-1. CHÚ THÍCH : ECI 000000 (tương đương với GLI 0) và ECI 000001 (tương đương với GLI 1) yêu cầu một số logic 0 dạng retu rn -to-GLI tại phần đầu mỗi mã vạch đã mã hóa của bộ mã vạch Macro PDF417. Giao thức này không chấp nhận các Diễn dịch Kênh M ở rộng khác. - ECI 000002 có bảng mã tương đương với ECI 000000, mà không có số logic 0 dạng return-to-GLI - ECI 000003 có bảng mã tương đương với ECI 000001, mà không có số logic 0 dạng return-to- GLI. ECI 000003 là lược đồ mã hóa mặc định về các bộ mã hóa hoàn toàn phù hợp với tiêu chuẩn này ECI 000000 và ECI 000001 không được mã hóa trong cùng mã vạch PDF417 hoặc bộ mã vạch Macro PDF417 như các ECI khác, ngoại trừ các ECI do người sử dụng xác định. ECI 000002 và ECI cung cấp các lựa chọn thích hợp cho ECI 000000 và ECI 000001 tương ứng. ECI 000000 và ECI 000001 không được sử dụng trong các ứng dụng mới. 5.5.3. Mã hóa chuỗi ECI trong phương thức nén Nguyên tắc mã hóa chung là: các ECI được áp dụng cho hàng byte dữ liệu nguồn (các diễn dịch báo hiệu khác nhau) tạo ra hàng byte đã sửa đổi được mã hóa thành các m ã vạch PDF417 sử dụng các phương thức nén của mã vạch chi tính hiệu quả. Mã hóa ECI và nén mã vạch tạo thành hai lớp quá trình logic độc lập. Mặc dù các số gán ECI và các phương thức nén có thể được hoà chung với nhau, nhưng một vài kết hợp có thể tạo ra sự tối nghĩa và không logic. Các điều sau đây quy định cách các ECI có thể hợp nhất với nhau một cách rõ ràng bằng cách quy định việc sắp xếp các chuỗi thoát ECI hợp lệ. 5.5.3.1. ECI và phương thức nén văn bản Một chuỗi thoát ECI có thể được đặt tại bất kỳ đâu trong phương thức nén văn bản. Phương thức con gọi ra ngay trước chuỗi thoát ECI được lưu giữ cho việc mã hóa sau nó. Do đó, các latch và shift của phương thức con được lưu giữ qua chuỗi thoát ECI; và một shift của phương thức con ngay trước chuỗi thoát ECI không bị bỏ qua. 5.5.3.2. ECIs và phương thức nén byte sử dụng mode latch 924 và 901 Nếu mã hóa trong phương thức nén byte sử dụng mode latch 924, thì chuỗi thoát ECI có thể được định vị bởi bộ mã hóa theo ngay sau từ mã 924, hoặc ở ranh giới 5 từ mã sau đó. C ần phải cung cấp một vị trí rõ ràng trong hàng byte đã giải mã để cho bộ giải mã đặt chuỗi thoát. Nếu bộ giải mã có trong phiên bản 924 của phương thức nén byte và tìm thấy chuỗi thoát ECI theo sau một nhóm 5 từ mã, nó sẽ cung cấp sáu byte dữ liệu liên quan đến các từ mã trước chuỗi thoát, cung cấp chuỗi thoát và sau đó tiếp tục thu thập các từ mã để giải mã trong phương thức nén byte. Nếu bộ giải mã bắt gặp một chuỗi thoát ECI khác với các vị trí quy định này thì mã vạch sẽ được xem là không hợp lệ. Nếu việc mã hóa trong phương thức nén byte sử dụng mode latch 901, thì chuỗi thoát ECI có thể được định vị: - theo ngay sau từ mã 901 - sau ngay bất kì bộ năm từ mã mã hóa sáu byte - sau ngay bất kì các từ mã gồm byte đơn ở phần cuối của chuỗi CHÚ THÍCH : Bộ giải mã không thể thừa nhận rằng, ch ỉ chuỗi thoát ECI theo sau một bộ gồm năm từ m ã , năm từ mã mã hóa sáu byte, khi hàng nhập độ d à i 6N + 5 (trong đó N là một số nguyên) có bộ năm từ mã cuối cùng ch ỉ mã hóa 5 byte, một byte mỗi từ mã. Do đó, bộ giải mã phải quét trước trong m ã vạch qua chuỗi thoát ECI để xác định h ai phương thức 901 kết thúc, như đ ã quy định trong điều 5.4.3.4. Dựa vào thông tin này , có thể xác định cách thức nhóm 5 từ mã được mã hóa. Hình 7 minh họa các vị trí hợp lệ về các chuỗi thoát ECI khi mã hóa trong phương thức nén byte. Nếu bộ giải mã b ắ t gặp một chuỗi thoát ECI trong nhóm 5 từ mã, thì mã vạch được xem là không hợp lệ. Hình 7 - Vị trí hợp lệ về chuỗi thoát trong phương thức nén byte 5.5.3.3. ECI và phương thức nén byte sử dụng mode shift 913 Nếu mã hóa trong phương thức nén byte sử dụng mode shift 913, thì chuỗi thoát ECI có thể được đặt - ngay trước từ mã 913 - ngay sau từ mã 913 - ngay sau và cách từ mã 913 một từ mã Trong hai trường hợp đầu tiên, chuỗi thoát ECI được cung cấp trước byte đã mã hóa, trong khi ở trường hợp cuối chuỗi thoát được cung cấp sau byte đã mã hóa. 5.5.3.1. ECI và phương thức nén số Một chuỗi thoát ECI không được đặt trong nhóm các từ mã đang được xử lý thông qua bộ chuyển đổi base 10 đến base 900 như đã quy định trong điều 5.4.4.2. Nó ch ỉ có thể được đặt trong phương thức nén số tại ranh giới giữa các nhóm 15 từ mã. Điều này là cần thiết để cung cấp một vị trí rõ ràng trong hàng chuỗi số đã được giải mã để bộ giải mã đặt chuỗi thoát. Do đó, chuỗi thoát ECI chỉ có thể được đặt: - ngay sau từ mã 902 - sau từ mã thứ 15 - sau từ mã thứ 30 - v.v. Nếu bộ mã hóa cần đặt chuỗi thoát ECI tại vị trí mà không có kết quả là các từ mã là bội số của 15, thì nó sẽ coi khối số trước ECI là thực thể hoàn thiện, như đã quy định trong 5 .4.4.2 bước 2. Bộ mã hóa sẽ gọi lại phương thức nén số bằng cách đặt từ mã 902 khác trong hàng được theo sau bởi chuỗi thoát ECI. Nếu bộ giải mã tìm thấy chuỗi thoát ECI ở một trong các điểm ranh giới đã xác định ở trên, thì nó phải phát ra các byte dữ liệu liên quan đến từ mã trước chuỗi thoát (nếu có), sau đó phát ra chuỗi thoát và tiếp tục thu thập các từ mã về việc giải mã trong phương thức nén số. Nếu bộ giải mã bắt gặp một chuỗi thoát ECI tại vị trí khác với các vị trí quy định thì mã vạch được xem như không hợp lệ. 5.5.3.5. ECI liên kết Hai hoặc nhiều chuỗi thoát ECI (ví dụ: các số gán) có thể được đặt ở mọi điểm mà một ECI có thể được định vị một cách có giá trị: với điều kiện không đặt giữa chúng từ mã nào khác với chúng được sử dụng để mã hóa chuỗi thoát ECI. 5.5.4. Giao thức giải mã trước Giao thức về việc truyền dữ liệu ECI giống như đã quy định trong điều 5.17.2. Khi truyền các ECI, các số phân định (xem 5.17.5) phải được thực hiện đầy đủ và số phân định mã vạch thích hợp sẽ được truyền như một lời mở đầu. 5.6. Xác định chuỗi từ mã Quá trình mã hóa sinh ra chuỗi các từ mã: d n-1 ... d 0 trong đó: d = từ mã dữ liệu bao gồm bộ Mô tả Độ dài Mã vạch và tất cả các từ mã chức năng n = tổng số từ mã dữ liệu (và bước đệm) bao gồm bộ Mô tả Độ dài Mã vạch, không tính các từ mã sửa lỗi. Trong suốt quá trình mã hóa, các chuỗi từ mã sẽ được thiết lập. Giống như dữ liệu gốc, dữ liệu quan trọng nhất sẽ xuất hiện đầu tiên, ví dụ dữ liệu số và nguyên bản viết từ trái qua phải. Chuỗi các từ mã phải là chuỗi mà từ mã dữ liệu quan trọng nhất chứa dữ liệu đã mã hóa là từ mã ký hiệu d n - 2 . Từ mã dữ liệu cuối cùng (bước đệm) là từ mã kí hiệu d 0 . Quá trình được sử dụng để xác định ma trận hàng và cột của mã vạch (xem 5.9.2) yêu cầu bổ sung các từ mã đệm ở phần cuối của chuỗi từ mã dữ liệu. 5.7. Phát hiện lỗi và sửa Mỗi mã vạch PDF417 chứa ít nhất hai từ mã sửa lỗi. Các từ mã sửa lỗi cung cấp khả năng phát hiện và sửa lỗi. 5.7.1. Mức sửa lỗi Mức sửa lỗi cho mã vạch PDF417 có thể lựa chọn ở thời điểm tạo mã vạch. Bảng 9 biểu diễn số từ mã sửa lỗi cho mỗi mức sửa lỗi. Bảng 9 - Mức sửa lỗi và từ mã sửa lỗi Mức sửa lỗi T ổ ng số từ mã sửa lỗi 0 2 1 4 2 8 3 16 4 32 5 64 6 128 7 256 8 512 5.7 . 2. Khả năng sửa lỗi Sửa lỗi có thể được sử dụng để bù đắp cho các lỗi trong nhãn và các hiểu nhầm trong suốt quy trình giải mã. Đối với bất kì mức sửa lỗi đưa ra, một số từ mã sửa lỗi được hợp nhất thành mã vạch PDF417. Thuật toán về từ mã sửa lỗi cho phép hai kiểu lỗi được khôi phục lại: - vết xóa , đó là từ mã thiếu hoặc không thể giải mã ở v ị trí đã biết, - lỗi thay thế , đó là từ mã được giải mã nhầm ở vị trí không xác định. Lược đồ sửa lỗi yêu cầu một từ mã sửa lỗi để sửa vết xóa và hai từ mã điều chỉnh lỗi đ ể khôi phục lỗi thay thế. Do đó, mức điều chỉnh lỗi có thể sửa mọi kết hợp giữa các lỗi thay thế và các vết xóa thoả mãn các phương trình sau đây: l + 2 f ≤ 2 s +1 - 2 trong đó: l , f và s được quy định trong 4.1. Tuy nhiên, Nếu hầu hết khả năng sửa lỗi được sử dụng để điều chỉnh các vết xóa, thì có thể gia tăng các lỗi không phát hiện được. Với lý do này, bất cứ khi nào có ít hơn 4 lỗi được điều chỉnh (trừ khi s = 0) , thì khả năng điều chỉnh lỗi nên được giảm như sau: l + 2 f ≤ 2 s +1 - 3 tr o ng đó: l , f và s được đề cập trong điều 4.1 VÍ D Ụ: M ã vạch PDF417 mức sửa lỗi 3 có 16 từ mã điều chỉnh lỗi trong đó trên 14 từ m ã có thể được sử dụng để sửa các lỗi và các vết xóa. Chúng có thể sửa trên 13 vết xóa và 7 lỗi thay thế, hoặc mọi kết hợp giữa các vết xóa l và các lỗi thay thế f tuân theo các phương trình ở trên. Bảng 10 quy định các kết hợp có thể xảy ra. Bảng 10 - Các kết hợp sửa lỗi có thể xảy ra đối với mức sửa lỗi 13 Lỗi thay thế đã khôi phục V ết xóa đã khôi phục Phương trình xác định 0 13 hoặc ít hơn l + 2 f ≤ 2 s+ 1 - 3 (số lỗi <> 1 11 hoặc ít hơn 2 9 hoặc ít hơn 3 7 hoặc ít hơn 4 6 hoặc ít hơn l + 2 f ≤ 2 s+ 1 - 2 (số lỗi ≥ 4) 5 4 hoặc ít hơn 6 2 hoặc ít hơn 7 0 5.7.3. Xác định các từ mã sửa lỗi Quá trình gồm hai giai đoạn phải được thực hiện để xác định các từ mã sửa lỗi: 1) Lựa chọn mức sửa lỗi. Người sử dụng hoặc ứng dụng xác định lựa chọn, điều này được quy định trong Phụ lục E. 2) Tạo ra các từ mã sửa lỗi. Điều này liên quan đến bộ quy tắc được đề cập trong điều 5.10. Các quy trình không được sử dụng cho đến khi tất cả các từ mã dữ liệu bao gồm các từ mã đệm (xem 5.9.2) được xác định CHÚ THÍCH : Các quy trình được quy định trong các điều từ 5.3 đến 5.9, 5.13 và 5.14 là mối quan tâm hàng đầu của người sử dụng. Các quy trình nhiều kĩ thuật hơn được đề cập trong các điều 5.10, 5.11 và 5.15 có thể được hoàn tất và k hông cần các quyết định của người sử dụng. 5.8. Kích thước Các mã vạch PDF417 tuân theo các kích thước sau đây: 5.8.1. Độ rộng tối thiểu của một môđun (X) Độ rộng tối thiểu của một môđun được xác định bởi quy định kĩ thuật, có liên quan đến tính sẵn có của thiết bị v ề việc tạo và đọc mã vạch và phù hợp với các yêu cầu chung của ứng dụng. Kích thước X phải là một hằng số qua một mã vạch cho trước. CHÚ THÍCH : Các tiêu chuẩn về phép đo chất lượng mã vạch hiện hành (ví dụ ISO/IEC 15415) không yêu cầu các phép đo kích thước tuyệt đối để đánh giá chất lượng mã vạch. Nếu không tuân theo bất kì kích thước tối thiểu nào thì đ ó là lý do không chấp thuận mã vạch trong các tiêu chuẩn này. 5.8.2. Độ cao hàng ( Y ) Đối với các mã vạch với ít nhất mức sửa lỗi tối thiểu đã khuyến cáo: Y ≥ 3 X Đối với các mã vạch với ít hơn mức điều chỉnh lỗi tối thiểu đã khuyến cáo, chiều cao hàng có thể được tăng lên, cụ thể là khi giá trị X nhỏ. (Xem Phụ lục E để biết thêm chi tiết về mức điều chỉnh lỗi đã khuyến cáo). 5.8.3. Vùng trống - Độ rộng tối thiểu của vùng trống nằm ngang (đến bên trái và phải của mã vạch PDF417): 2X - Kích cỡ tối thiểu của vùng trống thẳng đứng (bên trên và phía dưới mã vạch PDF417): 2X 5.9. Xác định định dạng mã vạch Ma trận mã vạch PDF417 và toàn bộ kích cỡ, hình dáng của mã vạch được xác định bởi: 1) độ rộng môđun và tỉ lệ bề mặt và, 2) số hàng và cột trong ma trận mã vạch. Để tạo nên một mã vạch PDF417, các tham số này được lựa chọn qua sự kết hợp của các thiết bị nhập người sử dụng, quy định ứng dụng và cài đặt mặc định. Quá trình lựa chọn có thể lặp đi lặp lại cho đến khi người sử dụng hài lòng với định dạng kết quả. 5.9.1. Xác định tỉ lệ bề mặt của môđun Tỉ lệ bề mặt của môđun in ra phải được xác định bởi hai kích thước: - X kích thước mong muốn của vạch và khoảng trống hẹp nhất - Y kích thước mong muốn của chiều dài mỗi hàng Các tham số này được xác định bởi người sử dụng hoặc bởi ứng dụng. Các phần tử quan trọng mà xác định các giá trị của các tham số này là giải pháp của việc in và quét hệ thống được sử dụng trong ứng dụng. Các vấn đề này được nêu trong điều 5.14. 5.9.2. Xác định ma trận hàng và cột của mã vạch Có một vài phần tử cần được xem xét để xác định ma trận mã vạch, ví dụ: số hàng r và số cột c: - số lượng và kiểu dữ liệu được mã hóa - các quy tắc cơ bản của mã vạch, ví dụ: xác định các giới hạn về số hàng và cột (xem 5.2.1 và 5.2.2) - không gian vật lý sẵn có để in mã vạch - trên thực tế các hàng dài hơn sẽ sử dụng mã vạch ở trên ít hơn (các ký tự bắt đầu và kết thúc, chỉ báo hàng và không gian về vùng trống) - trên thực tế độ dài của hàng (bao gồm các vùng trống) phải ít hơn độ dài của dòng quét được quy định hoặc bao hàm bởi ứng dụng - kiểu máy quét, trong đó xác định toàn bộ tỉ lệ bề mặt của mã vạch - mức điều chỉnh lỗi đã chọn. Đối với nhiều ứng dụng, độ rộng cho phép của mã vạch là một phần tử bắt buộc đầu tiên, và ma trận mã vạch có thể được xác định trực tiếp bằng cách ấn định lại số cột. Phụ lục O cung cấp các hướng dẫn chính xác hơn được sử dụng để xác định ma trận mã vạch. Sau khi dữ liệu nguồn được mã hóa sử dụng các phương thức nén đã lựa chọn, số từ mã dữ liệu nguồn m (trước khi bổ sung bộ Mô tả độ dài mã vạch và các từ mã đệm) được biết. Khi số hàng, cột và mức sửa lỗi được lựa chọn thì tổng số từ mã dữ liệu n được tính như sau: n = c x r - k trong đó: c, k, n và r được quy định trong điều 4.1 Ma trận có thể đưa đến một tình huống mà số hàng và cột yêu cầu sử dụng các từ mã đệm (bằng cách chuyển đổi sử dụng giá trị 900 ). Điều này xảy ra khi: n > m + 1 trong đó: m và n được quy định trong điều 4.1 Bộ Mô tả độ dài mã vạch phải được đặt là giá trị n đã xác định ở trên: d n-1 = n = c x r - k Số các từ mã đệm yêu cầu là ( n - m) - 1. Các từ mã đệm phải có giá trị 900 và phải được đặt trong các vị trí ít quan trọng nhất của chuỗi từ mã dữ liệu, ví dụ: bên phải từ mã dữ liệu nguồn ít quan trọng nhưng trước Khối kiểm soát Macro PDF417, nếu có. Ví dụ về quá trình này được nêu dưới đây. Ngoại trừ việc chèn bộ Mô tả độ dài mã vạch và các từ mã đệm, chuỗi từ mã phải giống y hệt như cái được tạo lúc ban đầu khi mã hóa dữ liệu nguồn. VÍ DỤ để m = 246, c = 12, r = 24, và k = 32, thì n = (c x r) - k = (12 x 24) - 32 = 256. CHÚ THÍCH : Kí hiệu như đã được nêu ở trên Giá trị của bộ Mô tả độ dài mã vạch l à n = 256. Số từ mã đệm = (n - m) - 1 = 256 - 246 - 1 = 9. Trong ví dụ này, các từ mã dữ liệu (trước khi đệm) bắt đầu với một latch đến phương thức nén số (từ mã 902), và kết thúc với từ mã 423, và tất cả các bước đệm đều sử dụng từ mã 900. Việc bổ sung bộ Mô tả độ dài mã vạch và các bước đệm được biểu diễn dưới đây: Chuỗi từ mã dữ liệu gốc d m-1 ... d 0 Các từ mã 902... 423 Chuỗi từ mã dữ liệu đã đệm d n -1 d n - 2 … d 9 d 8 … d 0 Các từ mã 256 902... 423 900 ... 900 5.10. Tạo các từ mã sửa lỗi Các từ mã sửa lỗi được tạo bằng cách sử dụng quy trình xác định dưới đây. Chúng được tính trên cơ sở các giá trị của tất cả từ mã dữ liệu bao gồm bộ Mô tả độ dài mã vạch và các từ mã đệm. Chuỗi từ mã được xác định như sau: d n -1 , d n - 2 , … d 0 trong đó: d n -1 là bộ Mô tả độ dài mã vạch Đa thức về dữ liệu mã vạch là: d(x) = d n-1 x n-1 + d n - 2 x n- 2 + ... + d 1 x + d 0 Đa thức sau đây mô tả cách các từ mã sửa lỗi được tính cho dòng dữ liệu và mức sửa lỗi đã chọn. Tất cả số học được thực hiện theo modulo 929. Các từ mã sửa lỗi là phần bổ sung các hệ số của số dư từ việc chi a đa thức dữ liệu mã vạch d (x) nhân với x k bởi đa thức tạo g(x). Các giá trị âm được ánh xạ thành trường Galois GF (929) bằng cách thêm 929 cho đến khi giá trị ≥ 0. Đa thức tạo sau đây được sử dụng để tính các hệ số về các từ mã sửa lỗi k yêu cầu cho mức sửa lỗi: g k (x) = ( x - 3)(x - 3 2 )(x - 3 3 )...( x - 3 k ) = a 0 + a 1 x + a 2 x 2 +...+ a k-1 x k-1 + x k trong đó g k (x) = đa số tạo và x là biến số k = tổng số từ mã điều chỉnh lỗi a j = hệ số các lũy thừa x được đưa ra bởi đa thức tạo g k ( x ) Ví dụ về việc tính các hệ số được có trong Phụ lục Q. Phụ lục F chứa tất cả các giá trị hệ số cần thiết để mã hóa mã vạch PDF417 của mức điều chỉnh lỗi. Các từ mã sửa lỗi phải được tính theo thuật toán xác định dưới đây sử dụng kí hiệu sau: d i = từ mã dữ liệu d n- 1 ... d 0 E j = từ mã điều chỉnh lỗi E k-1 ... E 0 a j = hệ số lũy thừa của x lấy từ đa thức tạo (xem giải thích ở trên và Phụ lục F) t 1 , t 2 , t 3 = các biến tạm thời Thuật toán: 1. Nhận dạng chuỗi từ mã dữ liệu d n-1 , d n-2 , d 0 2. Khởi tạo các từ mã sửa lỗi E 0 , …, E k - 1 đến giá trị 0 3. Với mỗi từ mã dữ liệu d i = d n-1 ... d 0 BEGIN t 1 = (d i + E k-1 ) mod 929 Với mỗi từ mã sửa lỗi E j = E k-1 … E 1 : BEGIN t 2 = ( t 1 x a j ) mod 929 t 3 = 929 - t 2 E j = (E j- 1 + t 3 ) mod 929 END t 2 = ( t 1 x a 0 ) mod 929 t 3 = 929 - t 2 E 0 = t 3 mod 929 END 4. Đối với mỗi từ mã sửa lỗi, E j = E 0 ...E k - 1 , tính phần bù: BEGIN if E j không bằng 0 E j = 929 - E j END Một ví dụ về việc tính các từ mã sửa lỗi được quy định trong Phụ lục Q. Một quy trình khác về việc tạo các t ừ mã sửa lỗi, sử dụng mạch phân chia được quy định trong Phụ lục R. 5.11. Mã hóa mức thấp Mã hóa mức thấp chuyển đổi các từ mã thành các kí tự mã vạch tương ứng của chúng (chuỗi vạch-kho ả ng trống) chỉ ra rằng ma trận mã vạch đã được ấn định. Hình 8 minh họa dưới dạng lược đồ về mã vạch PDF417, vị trí tương ứng của mỗi từ mã dữ liệu, từ mã sửa lỗi và các chỉ báo hàng. Hình 8 - Mã vạch PDF417 điển hình biểu diễn dưới dạng lược đồ vị trí các từ mã trong đó: L r = ch ỉ báo hàng trái R r = ch ỉ báo hàng phải Vùng tô bóng = vùng từ mã dữ liệu Vùng không tô bóng phía dưới vùng t ừ mã là các từ mã sửa lỗi 5.11.1. Các cụm PDF417 sử dụng hệ thống hàng cục bộ để tìm ra các chuyển đổi hàng-hàng. Bộ các từ mã được biểu diễn trong mỗi ba cụm. Các số cụm 0, 3 và 6 được sử dụng. Các chuỗi vạch-khoảng trống liên kết của mỗi ký tự mã vạch biểu diễn mỗi từ mã và cụm được quy định trong Phụ lục A. Để mã hóa các chỉ báo hàng và từ mã, mỗi hàng phải chứa các ký tự mã vạch (dấu hiệu vạch- khoảng trống) chỉ của một cụm. Hàng 1 sử dụng các ký tự mã vạch từ cụm 0, hàng 2 sử dụng các ký tự mã vạch từ cụm 3, hàng 3 sử dụng các ký tự mã vạch từ cụm 6, hàng 4 sử dụng các ký tự mã vạch từ cụm 0 và v.v. Chuỗi cụm 0, 3, 6 lặp lại liên tục . S ố cụm K cho mọi hàng có thể được tính: K = [ (số hàng - 1) mod 3 ] x 3 trong đó: các hàng được đánh số từ 1 đến r (như trong điều 4.1). Do hai hàng liền nhau có các cụm khác nhau nên máy giải mã có thể sử dụng các tia quét đi qua các hàng trong khi gi ả i mã mã vạch PDF417. 5.11.2. Xác định ma trận mã vạch Ma trận các hàng và cột của mã vạch cuối cùng phải được xác định bởi các quy trình đã quy định trong điều 5.9.2. Điều này cung cấp các giá trị của r và c. 5.11.3. Xác định giá trị của các chỉ báo hàng trái và phải Các chỉ báo hàng trong mã vạch PDF417 là các từ mã mã hoà một vài tham số chính: số hàng (F), số các hàng (r), số cột (c) và mức sửa lỗi (s). Thông tin được truyền qua ba hàng và vòng lặp phải nhắc lại liên tục . S ố hàng (F) phải được mã hóa trong mỗi hàng. 5.11.3.1. C hỉ báo dòng trái Các chỉ báo hàng bên được tính như sau: Nếu K F = 0; L F = 30 x ((F - 1) div 3) + (r - 1) div 3 Nếu K F = 3; L F = 30 x ((F - 1) div 3) + (s x 3) + (r - 1) mod 3 Nếu K F = 6; L F = 30 x ((F - 1) div 3) + (c - 1) trong đó: c , F, r, s và K được quy định trong điều 4.1 5.11.3.2. Ch ỉ báo hàng bên phải Các chỉ báo hàng bên phải được tính như sau: Nếu K F = 0 ; R F = 30 x ((F - 1) div 3) + (c - 1) Nếu K F = 3; R F = 30 x ((F - 1) div 3) + (r - 1) div 3 Nếu K F = 6; R F = 30 x ((F - 1) div 3) + (s x 3) + (r - 1) mod 3 trong đó: c, F, r, s và K được quy định trong điều 4.1. 5.11.4. Mã hóa hàng Trong mỗi hàng, các kí tự mã vạch sau đây tuân theo số cụm: - chỉ báo hàng bên trái - các kí tự mã vạch biểu diễn dữ liệu và/hoặc các từ mã sửa lỗi đến một số b ằ ng với số cột. - chỉ báo dòng bên phải Các kí tự bắt đầu và kết thúc là không thay đổi đối với tất cả các hàng. Mã vạch được mã hóa theo từng hàng, lấy các từ mã c (số các cột) vào mỗi hàng. Hàng đầu tiên bao gồm bộ Mô tả độ dài mã vạch trong cột đầu tiên. Dòng cuối cùng bao gồm một số hoặc tất cả từ mã sửa lỗi. 5.12. PDF417 nén Các mã vạch PDF417 nén là một lựa chọn có sẵn. Nếu được sử dụng, PDP417 nén phải phù hợp với Phụ lục G. 5.13. Macro PDF417 Macro PDF417 cung cấp một cơ chế về dữ liệu trong tệp được chia thành các khối và được biểu diễn ở nơi có từ hai mã vạch PDF417 trở lên. Cơ chế này tương tự với đặc tính g ắ n kết cấu trúc trong các mã vạch khác. Mỗi mã vạch Macro PDF417 chứa thông tin kiểm soát bổ sung để giúp cho tệp dữ liệu gốc được thiết kế lại một cách thích đáng, không kể đến chuỗi mà các mã vạch PDF417 riêng lẻ được quét và giải mã. Trên 99 999 mã vạch PDF417 riêng lẻ có thể được sử dụng để mã hóa dữ liệu trong Macro PDF417. Các chi tiết đầy đủ về quy trình của Macro PDF417 được quy định trong Phụ lục H. 5.13.1. Các phương thức nén và Macro PDF417 Khối Kiểm soát Macro PDF417 có phương thức mã hóa định trước, vì vậy từ mã 928 là nguyên nhân của sự kết thúc chuỗi phương thức nén trong thân mã vạch. Trường chỉ số từng phần (Segment Index) được mã hóa trong phương thức nén số. Mỗi trường tùy chọn của Macro PDF417 xác định có một phương thức nén lúc đầu và một phương thức con cụ thể, phần đầu của trường tùy chọn mới kết thúc phương thức nén từ trường trước đó (xem Phụ lục H.2.3) và khởi đầu phương thức mặc định của nó. Cụ thể là, nếu hai trường tùy chọn liên tiếp cùng sử dụng phương thức nén văn bản thì phương thức con Alpha được sắp xếp lại khi gặp từ mã 923. 5.13.2. ECI và Macro PDF417 Tùy thuộc vào các quy định trong điều 5.5.2, các ECI có thể xuất hiện ở gói tin đã mã hóa trong bộ mã vạch PDF417 đơn hoặc bộ các mã vạch Macro PDF417. Mọi ECI được gọi ra phải áp dụng cho đến khi kết thúc dữ liệu đã được mã hóa hoặc cho đến khi gặp ECI khác. Do đó, diễn dịch ECI có thể đứng giữa hai hay nhiều mã vạch. (Các) diễn dịch ECI trong thân của dòng từ mã dữ liệu không mở rộng thành khối kiểm soát Macro PDF417 nhưng tự động lấy lại ở phần đầu của mã vạch tiếp theo. Dữ liệu của khối kiểm soát được diễn dịch bằng cách sử dụng ECI (000003) mặc định, trừ khi chuỗi thoát ECI được mã hóa trong trường tùy chọn ở khối kiểm soát; hiệu quả của ECI này được tự kết thúc ở phần cuối của trường nơi nó xuất hiện. CHÚ THÍCH : Khi thực hiện các GLI theo yêu cầu kỹ thuật trước đó (v í dụ: các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và của AIM Châu Âu (1994)), việc mã hóa bao gồm một phản hồi đến GLI 0 (tương đương với ECI 000000) ở lúc bắt đầu mỗi mã vạch. Nếu GLI 1 có trong mã vạch tiếp theo thì GLI 1 phải được mã hóa tại lúc bắt đầu của mã vạch tiếp theo này. Khi các máy mã hóa phù hợp với các tiêu chuẩn có trước này được sử dụng th ì sẽ có l ờ i khuyên về cách thức phù hợp với yêu cầu kĩ thuật này trong điều 5.17.6. 5.14. Hướng dẫn cho người sử dụng 5.14.1. Diễn dịch người đọc Các mã vạch PDF417 có khả năng mã hóa số lượng lớn dữ liệu, có nghĩa là diễn dịch người đọc của các kí tự dữ liệu có thể không thực tế. Nói cách khác, văn bản mô tả có thể liên kết mã vạch hơn là văn bản thuần túy. Gói tin có thể được in ở bất kì đâu xung quanh mã vạch, nhưng không được gây trở ngại cho mã vạch hoặc các vùng trống. Phông chữ hoặc kích cỡ kí tự không được quy định trong tiêu chuẩn này, nhưng có thể được quy định trong các tiêu chuẩn ứng dụng. 5.14.2. Khả năng tự động phân biệt PDF417 có thể được sử dụng trong môi trường tự động phân biệt với một số mã vạch khác (xem Phụ lục S.1). 5.14.3. Các tham số ứng dụng do người sử dụng quy định Các tiêu chuẩn ứng dụng xác định các tham số của mã vạch PDF417 đã quy định trong tiêu chuẩn này như sau: 5.14.3.1. Mã vạch và các đặc tính về kích thước Các tiêu chuẩn ứng dụng quy định dữ liệu, mã vạch và các tham số về kích thước sau đây: a) Lựa chọn và sử dụng các diễn dịch kênh mở rộng, nếu được yêu cầu, để mở rộng mã hóa dữ liệu ngoài diễn dịch mặc định của phương thức cơ bản. b) Khối lượng dữ liệu trong mã vạch, có thể là cố định, biến đổi hoặc biến đổi tới một lượng tối đa xác định. c) Lựa chọn mức sửa lỗi d) Khoảng kích thước X e) Khoảng kích thước Y f) Các tham số mã vạch: Khoảng tỷ lệ bề mặt cho phép và/hoặc độ dài và rộng mã vạch có kích cỡ tối đa CHÚ THÍCH : Các phần tử bổ sung có thể được tính đến khi quy định về các ứng dụng PDF417 được quy định trong Phụ lục O và S. 5.14.3.2. Kiểm tra yêu cầu kĩ thuật Các tham số để đánh giá mã vạch được xác định bằng cách quy định cấp chất lượng theo ISO/IEC 15415 trong tiêu chuẩn ứng dụng. Cấp này được trình bày theo dạng: Cấp kí hiệu tổng thể / số tham chiếu của lỗ đo /bước sóng h ưở ng ứng đỉnh Ví dụ sau đây minh họa các kiểu giá trị cần được trình bày: 1,5/10/660 trong đó: 1,5 là c ấ p chất lượng tổng thể của mã vạch 10 số tham chiếu của lỗ đo (trong ví dụ này: đường kính 0,25mm) 660 là bước sóng hưởng ứng đỉnh theo nanomet CHÚ THÍCH : ISO/IEC 15415 đưa ra hướng dẫn về việc lựa chọn các thông số phân c ấ p trong các yêu cầu kĩ thuật về ứng dụng. Các giá trị dành riêng cho ứng dụng sẽ được đề cập đến trong tiêu chuẩn về ứng dụng. 5.14.4. Ch ấ t lượng mã vạch PDF417 Các mã vạch PDF417 phải được đánh giá chất lượng bằng việc sử dụng các hướng dẫn về chất lượng in mã vạch 2D quy định trong ISO/IEC 15415 về các mã vạch nhiều hàng với khả năng quét hàng chéo. 5.15. Thuật toán giải mã tham chiếu Thuật toán mã hóa tham chiếu về PDF417 được quy định trong Phụ lục J. Thuật toán giải mã tham chiếu này là cơ sở để đánh giá chất lượng in theo ISO/IEC 15415. 5.16. Phát hiện lỗi và quy trình sửa lỗi Như một phần của quy trình giải mã, có thể thiết kế lại mã vạch cho các vết xóa và lỗi thay thế trong khả năng sửa lỗi của mã vạch. Điều này có thể được thực hiện bằng cách sử dụng quy trình nêu trong Phụ lục K. 5.17. Dữ liệu truyền đi 5.17.1. Dữ liệu truyền đi trong diễn dịch (mặc định) cơ bản Tất cả các từ mã dữ liệu được thông dịch thành dữ liệu người sử dụng và được truyền như các byte 8 bit, liệu dữ liệu này có được mã hóa trong phương thức nén văn bản, nén byte hay nén số hay không. Các ký tự bắt đầu và kết thúc, các chỉ báo hàng, bộ Mô tả độ dài mã vạch, các từ mã chuyển phương thức, các từ mã đệm và các từ mã sửa lỗi không được truyền đi. 5.17.2. Giao thức truyền đối với diễn dịch kênh mở rộng (ECI) Trong các hệ thống mà ECI được hỗ trợ, một tiền tố về số phân định mã vạch được sử dụng với mỗi bộ truyền (xem 4.17.5 và Phụ lục L). Các khối kiểm soát Macro PDF417 (nếu được truyền) được xem như một phần của bộ kiểm soát các chuỗi thoát trong đó hoạt động cùng với giao thức truyền ECI (xem 5.17.3 và Phụ lục H). Ba từ m ã (925, 926 và 927) báo hiệu việc mã hóa của giá trị ECI và được giải mã là các giá trị byte như sau: 1) Nếu chuỗi ECI bắt đầu với từ mã 927: i. Từ mã 927 được truyền như ký tự thoát 92, biểu diễn dấu nghịch (\), hoặc gạch chéo ngược trong mã hóa mặc định ii. Từ mã tiếp theo được chuyển thành giá trị 6 số, bằng cách đặt các số 0 trước từ mã. Giá trị 6 số được truyền như 6 giá trị byte tương ứng trong khoảng từ 48 đến 57. VÍ DỤ: Mã vạch mã hóa: [927] [123] Truyền dữ liệu (byte): 92, 48, 48, 48, 49, 50, 51 Diễn dịch ASCII: \000123 2) Nếu chuỗi ECI bắt đầu với từ mã 926: i. Từ mã 926 được truyền như ký tự thoát 92. ii. Hai từ mã tiếp theo được chuyển thành giá trị 6 số với các số 0 ở đầu nếu được yêu cầu, sử dụng công thức sau đây: ( [ từ mã đầu tiên ] + 1) x 900 + [từ mã thứ hai] Giá trị 6 số được truyền như sáu giá trị byte tương ứng trong khoảng từ 48 đến 57. VÍ DỤ Mã vạch mã hoá: [ 926 ] [ 136 ] [ 156 ] Truyền dữ liệu (các byte): 92, 49, 50, 51, 52, 53, 54 Diễn dịch ASCIl:\123456 3) Nếu chuỗi ECI bắt đầu với từ mã 925: i. Từ mã 925 được truyền như ký tự thoát 92. ii. Từ mã tiếp theo được chuyển thành giá trị 6 số bằng cách bổ sung giá trị 810 900 cho nó. Giá trị 6 số được truyền như sáu giá trị byte tương ứng trong khoảng từ 48 đến 57. VÍ DỤ Mã vạch mã hóa [ 925 ] [ 456 ] Truyền dữ liệu (byte): 92, 56,49, 49, 52, 53, 54 Diễn dịch ASCII:\811356 Quy trình được lặp lại với mỗi lần xuất hiện của ECI. Phần mềm ứng dụng thừa nhận chuỗi thoát 7 byte của kí tự thoát 92 theo sau bởi sáu byte (mỗi byte trong khoảng 48 đến 57) diễn dịch tất cả các kí tự theo sau đến cuối dữ liệu mã hóa hoặc đến khi byte đơn 92 khác bị bắt gặp, đến từ ECI được xác định bởi chuỗi sáu số. Nếu dấu ngược, hoặc kí tự khác được biểu diễn bởi byte 92 cần được sử dụng như dữ liệu mã hóa, thì việc truyền như sau. Bất cứ khi nào byte 92 xuất hiện như dữ liệu, thì hai byte của giá trị đó phải được truyền; do đó một lần xuất hiện đơn luôn luôn là ký tự thoát và lần xuất hiện kép cho biết dữ liệu thực. Ví DỤ: Dữ liệu mã hóa: A\\B\C Sự truyền: A\\\\B\\C 5.17.3. Dữ liệu truyền đối với Macro PDF417 Giao thức cho dữ liệu truyền đối với Macro PDF417 có trong H.6. 5.17.4. Truyền từ mã dự trữ sử dụng giao thức ECI Khi hoạt động theo giao thức truyền ECI, các bộ giải mã PDF417 phải truyền chuỗi thoát sáu byte của từ mã dự trữ (diễn dịch là ‘ \CnnnC’), biểu diễn ký tự thoát (92) theo sau bởi ’C’(67), ba số biểu diễn giá trị thập phân của từ mã dự trữ, theo sau bởi ‘ C’ khác, kết thúc chuỗi thoát theo cách độc lập. Các từ mã dữ liệu theo sau từ mã dự trữ không được diễn dịch bởi bộ giải mã theo bất kỳ phương thức nén nào, nhưng thay vào đó được truyền như một loạt chuỗi thoát biểu diễn các từ mã sử dụng cùng chuỗi thoát sáu byte đã nêu ở phần đầu đoạn văn bản này. Tất cả các từ mã dữ liệu còn lại được truyền theo cách này cho đến khi đạt được một trong các điều sau đây: - phần cuối của dữ liệu mã hóa trong mã vạch - một latch của phương thức nén được thừa nhận - từ mã chức năng của Khối Kiểm soát Macro PDF417 (928, 923, hoặc 922) Từ mã 913 (Byte shift) chỉ được thừa nhận từ phương thức nén văn bản, do đó không phải là một phần của dòng từ mã trong quá trình gửi các từ mã không được diễn dịch và thoát này. CHÚ THÍCH : Giao thức này có thể truyền một cách thích đáng cú pháp gói tin của mọi từ mã dự trữ mà định nghĩa của nó nhằm mục đích cung cấp chức năng báo hiệu hoặc để biểu diễn một phương thức nén mới. 5.17.5. Số phân định mã vạch Khi cấu trúc của dữ liệu (dưới dạng Macro PDF417, ECI, v.v) được phân định, số phân định mã vạch phù hợp được bổ sung như một lời mở đầu cho dữ liệu được truyền bởi bộ giải mã. Xem Phụ lục L về các số phân định mã vạch áp dụng PDF417. 5.17.6. Quá trình truyền sử dụng các giao thức cũ Giới thiệu về hệ thống Diễn dịch Kênh Mở rộng, chung cho một số mã vạch có tác động đến các mã vạch hiện có bao gồm PDF417. Các quy tắc giải mã và mã hóa cơ b ả n còn lại trong tiêu chuẩn này giống với các quy tắc trong các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và AIM Châu Âu (1994). Trong định dạng quá trình truyền các ECI và Macro PDF417 là khác nhau, nhưng truyền tải cùng thông tin. Tất cả phần mềm và thiết bị giải mã PDF417 mới phải tuân theo tiêu chuẩn này. Tuy nhiên, thiết bị phù hợp với tiêu chuẩn trước đây sẽ vẫn tồn tại trong một vài năm nữa. Phụ lục M xác định các quy tắc phải làm theo khi sử dụng phần mềm và thiết bị giải mã không có khả năng tuân theo các mã vạch Macro PDF417 và ECI hiện hành. Theo cách này, thiết bị giải mã cũ và mới có thể tiếp tục cùng tồn tại. Phụ lục A (quy định) Bảng mã hóa/ giải mã chuỗi vạch-khoảng trống của mã vạch PDF417 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 0 31111136 51111125 21111155 26 31113251 31112612 61113221 1 41111144 61111133 31111163 27 11113334 31113125 11113262 2 51111152 41111216 11111246 28 21113342 41113133 51113312 3 31111235 51111224 21111254 29 11114144 51113141 11113361 4 41111243 61111232 31111262 30 21114152 21113216 51113411 5 51111251 41111315 11111345 31 11114243 31113224 41114114 6 21111326 51111323 21111353 32 21114251 41113232 51114122 7 31111334 61111331 31111361 33 11115152 21113315 41114213 8 21111425 41111414 11111444 34 51116111 31113323 51114221 9 11111516 51111422 21111452 35 31121135 41113331 41114312 10 21111524 41111513 11111543 36 41121143 21113414 41114411 11 11111615 51111521 61112114 37 51121151 31113422 31115114 12 21112136 41111612 11112155 38 21121226 21113513 41115122 13 31112144 41112125 21112163 39 31121234 31113521 31115213 14 41112152 51112133 61112213 40 41121242 21113612 41115221 15 21112235 61112141 11112254 41 21121325 21114125 31115312 16 31112243 31112216 21112262 42 31121333 31114133 31115411 17 41112251 41112224 61112312 43 11121416 41114141 21116114 18 11112326 51112232 11112353 44 21121424 11114216 31116122 19 21112334 31112315 21112361 45 31121432 21114224 21116213 20 11112425 41112323 61112411 46 11121515 31114232 31116221 21 11113136 51112331 11112452 47 21121523 11114315 21116312 22 21113144 31112414 51113114 48 11121614 21114323 11121146 23 31113152 41112422 61113122 49 21122135 31114331 21121154 24 11113235 31112513 11113163 50 31122143 11114414 31121162 25 21113243 41112521 51113213 51 41122151 21114422 11121245 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 52 11122226 11114513 21121253 83 11131613 51122231 31126121 53 21122234 21114521 31121261 84 11132126 31122314 21126212 54 31122242 11115125 11121344 85 21132134 41122322 21126311 55 11122325 21115133 21121352 86 31132142 31122413 11131145 56 21122333 31115141 11121443 87 11132225 41122421 21131153 57 31122341 11115224 21121451 88 21132233 31122512 31131161 58 11122424 21115232 11121542 89 31132241 31122611 11131244 59 21122432 11115323 61122113 90 11132324 21123116 21131252 60 11123135 21115331 11122154 91 21132332 31123124 11131343 61 21123143 11115422 21122162 92 11132423 41123132 21131351 62 31123151 11116133 61122212 93 11132522 21123215 11131442 63 11123234 21116141 11122253 94 11133134 31123223 11131541 64 21123242 11116232 21122261 95 21133142 41123231 61132112 65 11123333 11116331 61122311 96 11133233 21123314 11132153 66 21123341 41121116 11122352 97 21133241 31123322 21132161 67 11124143 51121124 11122451 98 11133332 21123413 61132211 68 21124151 61121132 51123113 99 11134142 31123421 11132252 69 11124242 41121215 61123121 100 21141125 21123512 11132351 70 11124341 51121223 11123162 101 31141133 21123611 51133112 71 21131126 61121231 51123212 102 41141141 11124116 11133161 72 31131134 41121314 11123261 103 11141216 21124124 51133211 73 41131142 51121322 51123311 104 21141224 31124132 41134112 74 21131225 41121413 41124113 105 31141232 11124215 41134211 75 31131233 51121421 51124121 106 11141315 21124223 31135112 76 41131241 41121512 41124212 107 21141323 31124231 31135211 77 11131316 41121611 41124311 108 31141331 11124314 21136112 78 21131324 31122116 31125113 109 11141414 21124322 21136211 79 31131332 41122124 41125121 110 21141422 11124413 11141144 80 11131415 51122132 31125212 111 11141513 21124421 21141152 81 21131423 31122215 31125311 112 21141521 11124512 11141243 82 11131514 41122223 21126113 113 11142125 11125124 21141251 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 114 21142133 21125132 11141342 145 52111151 31133321 22112261 115 31142141 11125223 11141441 146 22111226 21133412 62112311 116 11142224 21125231 61142111 147 32111234 21133511 12112352 117 21142232 11125322 11142152 148 42111242 11134115 12112451 118 11142323 11125421 11142251 149 22111325 21134123 52113113 119 21142331 11126132 51143111 150 32111333 31134131 62113121 120 11142422 11126231 41144111 151 42111341 11134214 12113162 121 11142521 41131115 31145111 152 12111416 21134222 52113212 122 21143141 51131123 11151143 153 22111424 11134313 12113261 123 11143331 61131131 21151151 154 12111515 21134321 52113311 124 11151116 41131214 11151242 155 22112135 11134412 42114113 125 21151124 51131222 11151341 156 32112143 11134511 52114121 126 31151132 41131313 11152151 157 42112151 11135123 42114212 127 11151215 51131321 11161142 158 12112226 21135131 42114311 128 21151223 41131412 11161241 159 22112234 11135222 32115113 129 31151231 41131511 12111146 160 32112242 11135321 42115121 130 11151314 31132115 22111154 161 12112325 11136131 32115212 131 21151322 41132123 32111162 162 22112333 41141114 32115311 132 11151413 51132131 12111245 163 12112424 51141122 22116113 133 21151421 31132214 22111253 164 12112523 41141213 32116121 134 11151512 41132222 32111261 165 12113135 51141221 22116212 135 11152124 31132313 12111344 166 22113143 41141312 22116311 136 11152223 41132321 22111352 167 32113151 41141411 21211145 137 11152322 31132412 12111443 168 12113234 31142114 31211153 138 11161115 31132511 22111451 169 22113242 41142122 41211161 139 31161131 21133115 12111542 170 12113333 31142213 11211236 140 21161222 31133123 62112113 171 12113432 41142221 21211244 141 21161321 41133131 12112154 172 12114143 31142312 31211252 142 11161511 21133214 22112162 173 22114151 31142411 11211335 143 32111135 31133222 62112212 174 12114242 21143114 21211343 144 42111143 21133313 12112253 175 12115151 31143122 31211351 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 176 31211126 21143213 11211434 207 12122126 31162211 12123161 177 41211134 31143221 21211442 208 22122134 21163112 51214112 178 51211142 21143312 11211533 209 32122142 21163211 52123211 179 31211225 21143411 21211541 210 11213126 42111116 11214161 180 41211233 11144114 11211632 211 12122225 52111124 51214211 181 51211241 21144122 12121145 212 22122233 62111132 42124112 182 21211316 11144213 22121153 213 32122241 42111215 41215112 183 31211324 21144221 32121161 214 11213225 521 112 23 42124211 184 41211332 11144312 11212145 215 21213233 62111231 41215211 185 21211415 11144411 12121244 216 31213241 42111314 32125112 186 31211423 11145122 22121252 217 11213324 52111322 31216112 187 41211431 11145221 11212244 218 12122423 42111413 32125211 188 21211514 41151113 21212252 219 11213423 52111421 31216211 189 31211522 51151121 22121351 220 12123134 42111512 22126112 190 22121126 41151212 11212343 221 22123142 42111611 22126211 191 32121134 41151311 12121442 222 11214134 32112116 11221136 192 42121142 31152113 11212442 223 12123233 42112124 21221144 193 21212126 41152121 12121541 224 22123241 52112132 31221152 194 22121225 31152212 11212541 225 11214233 32112215 11221235 195 32121233 31152311 62122112 226 21214241 42112223 21221243 196 42121241 21153113 12122153 227 11214332 52112231 31221251 197 21212225 31153121 22122161 228 12124142 32112314 11221334 198 31212233 21153212 61213112 229 11215142 42112322 21221342 199 41212241 21153311 62122211 230 12124241 32112413 11221433 200 11212316 11154113 11213153 231 11215241 42112421 21221441 201 12121415 21154121 12122252 232 31221125 32112512 11221532 202 22121423 11154212 61213211 233 41221133 32112611 11221631 203 32121431 11154311 11213252 234 51221141 22113116 12131144 204 11212415 41161112 12122351 235 21221216 32113124 22131152 205 21212423 41161211 11213351 236 31221224 42113132 11222144 206 11212514 31162112 52123112 237 41221232 22113215 12131243 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 238 21221315 32113223 22131251 269 21223232 61211222 12141242 239 31221323 42113231 11222243 270 22132331 11211263 11232242 240 41221331 22113314 21222251 271 11223323 51211313 12141341 241 21221414 32113322 11222342 272 12132422 61211321 11232341 242 31221422 22113413 12131441 273 12132521 11211362 12142151 243 21221513 32113421 11222441 274 12133133 51211412 11233151 244 21221612 22113512 62132111 275 22133141 51211511 11241134 245 22131125 22113611 12132152 276 11224133 42121115 21241142 246 32131133 12114116 61223111 277 12133232 52121123 11241233 247 42131141 22114124 11223152 278 11224232 62121131 21241241 248 21222125 32114132 12132251 279 12133331 41212115 11241332 249 22131224 12114215 11223251 280 11224331 42121214 11241431 250 32131232 22114223 52133111 281 11225141 61212131 12151142 251 11222216 32114231 51224111 282 21231116 41212214 11242142 252 12131315 12114314 42134111 283 31231124 51212222 12151241 253 31222232 22114322 41225111 284 41231132 52121321 11242241 254 32131331 12114413 32135111 285 21231215 41212313 11251133 255 11222315 22114421 31226111 286 31231223 42121412 21251141 256 12131414 12114512 22136111 287 41231231 41212412 11251232 257 22131422 12115124 11231135 288 21231314 42121511 11251331 258 11222414 22115132 21231143 289 31231322 41212511 12161141 259 21222422 12115223 31231151 290 21231413 32122115 11252141 260 22131521 22115231 11231234 291 31231421 42122123 11261132 261 12131612 12115322 21231242 292 21231512 52122131 11261231 262 12132125 12115421 11231333 293 21231611 31213115 13111145 263 22132133 12116132 21231341 294 12141116 32122214 23111153 264 32132141 12116231 11231432 295 22141124 42122222 33111161 265 11223125 51211115 11231531 296 32141132 31213214 13111244 266 12132224 61211123 12141143 297 11232116 41213222 23111252 267 22132232 11211164 22141151 298 12141215 42122321 13111343 268 11223224 51211214 11232143 299 22141223 31213313 23111351 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 300 32141231 32122412 13111442 331 12151115 12125123 12212144 301 11232215 31213412 13111541 332 22151123 22125131 13121243 302 21232223 32122511 63112112 333 32151131 11216123 23121251 303 31232231 31213511 13112153 334 11242115 12125222 12212243 304 11232314 22123115 23112161 335 12151214 11216222 22212251 305 12141413 32123123 63112211 336 22151222 12125321 12212342 306 22141421 42123131 13112252 337 11242214 11216321 13121441 307 11232413 21214115 13112351 338 21242222 12126131 12212441 308 21232421 22123214 53113112 339 22151321 51221114 63122111 309 11232512 32123222 13113161 340 11242313 61221122 13122152 310 12142124 21214214 53113211 341 12151412 11221163 62213111 311 22142132 31214222 43114112 342 11242412 51221213 12213152 312 11233124 32123321 43114211 343 12151511 61221221 13122251 313 12142223 21214313 33115112 344 12152123 11221262 12213251 314 22142231 22123412 33115211 345 11243123 51221312 53123111 315 11233223 21214412 23116112 346 11243222 11221361 52214111 316 21233231 22123511 23116211 347 11243321 51221411 43124111 317 11233322 21214511 12211136 348 31251122 42131114 42215111 318 12142421 12124115 22211144 349 31251221 52131122 33125111 319 11233421 22124123 32211152 350 21251411 41222114 32216111 320 11234132 32124131 12211235 351 22161122 42131213 23126111 321 11234231 11215115 22211243 352 12161213 52131221 21311135 322 21241115 12124214 32211251 353 11252213 41222213 31311143 323 31241123 22124222 12211334 354 11252312 51222221 41311151 324 41241131 11215214 22211342 355 11252411 41222312 11311226 325 21241214 21215222 12211433 356 23111126 42131411 21311234 326 31241222 22124321 22211441 357 33111134 41222411 31311242 327 21241313 11215313 12211532 358 43111142 32132114 11311325 328 31241321 12124412 12211631 359 23111225 42132122 21311333 329 21241412 11215412 13121144 360 33111233 31223114 31311341 330 21241511 12124511 23121152 361 13111316 32132213 11311424 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 362 23111324 42132221 21311432 393 42211331 61231121 11321126 363 33111332 31223213 11311523 394 22211414 11231162 21321134 364 13111415 41223221 21311531 395 32211422 51231212 31321142 365 23111423 31223312 11311622 396 22211513 11231261 11321225 366 13111514 32132411 12221135 397 32211521 51231311 21321233 367 13111613 31223411 22221143 398 23121125 42141113 31321241 368 13112126 22133114 32221151 399 33121133 52141121 11321324 369 23112134 32133122 11312135 400 43121141 41232113 21321332 370 33112142 21224114 12221234 401 22212125 51232121 11321423 371 13112225 22133213 22221242 402 23121224 41232212 21321431 372 23112233 32133221 11312234 403 33121232 42141311 11321522 373 33112241 21224213 21312242 404 12212216 41232311 11321621 374 13112324 31224221 22221341 405 13121315 32142113 12231134 375 23112332 21224312 11312333 406 32212232 42142121 22231142 376 13112423 22133411 12221432 407 33121331 31233113 11322134 377 13112522 21224411 11312432 408 12212315 32142212 12231233 378 13113134 12134114 12221531 409 22212323 31233212 22231241 379 23113142 22134122 11312531 410 23121422 32142311 11322233 380 13113233 11225114 13131143 411 12212414 31233311 21322241 381 23113241 12134213 23131151 412 13121513 22143113 11322332 382 13113332 22134221 12222143 413 12212513 32143121 12231431 383 13114142 11225213 13131242 414 13122125 21234113 11322431 384 13114241 21225221 11313143 415 23122133 31234121 13141142 385 32211125 11225312 12222242 416 33122141 21234212 12232142 386 42211133 12134411 13131341 417 12213125 22143311 13141241 387 52211141 11225411 11313242 418 13122224 21234311 11323142 388 22211216 12135122 12222341 419 32213141 12144113 12232241 389 32211224 11226122 11313341 420 12213224 22144121 11323241 390 42211232 12135221 13132151 421 22213232 11235113 11331125 391 22211315 11226221 12223151 422 23122331 12144212 21331133 392 32211323 51231113 11314151 423 12213323 11235212 31331141 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 424 13122422 12144311 11331224 455 21312314 53111123 11352131 425 12213422 11235311 21331232 456 22221413 63111131 11361122 426 13123133 12145121 11331323 457 32221421 43111214 11361221 427 23123141 11236121 21331331 458 21312413 53111222 14111144 428 12214133 51241112 11331422 459 31312421 43111313 24111152 429 13123232 11241161 11331521 460 22221611 53111321 14111243 430 12214232 51241211 12241133 461 13131116 43111412 24111251 431 13123331 42151112 22241141 462 23131124 43111511 14111342 432 13124141 41242112 11332133 463 33131132 33112115 14111441 433 12215141 42151211 12241232 464 12222116 43112123 14112152 434 31311116 41242211 11332232 465 13131215 53112131 14112251 435 41311124 32152112 12241331 466 23131223 33112214 54113111 436 51311132 31243112 11332331 467 33131231 43112222 44114111 437 31311215 32152211 13151141 468 11313116 33112313 34115111 438 41311223 31243211 12242141 469 12222215 43112321 24116111 439 51311231 22153112 11333141 470 22222223 33112412 13211135 440 31311314 21244112 11341124 471 32222231 33112511 23211143 441 41311322 22153211 21341132 472 11313215 23113115 33211151 442 31311413 21244211 11341223 473 21313223 33113123 13211234 443 41311421 12154112 21341231 474 31313231 43113131 23211242 444 31311512 11245112 11341322 475 23131421 23113214 13211333 445 22221116 12154211 11341421 476 11313314 33113222 23211341 446 32221124 11245211 12251132 477 12222413 23113313 13211432 447 42221132 51251111 11342132 478 22222421 33113321 13211531 448 21312116 42161111 12251231 479 11313413 23113412 14121143 449 22221215 41252111 11342231 480 13131611 23113511 24121151 450 41312132 32162111 11351123 481 13132124 13114115 13212143 451 42221231 31253111 21351131 482 23132132 23114123 14121242 452 21312215 22163111 11351222 483 12223124 33114131 13212242 453 31312223 21254111 11351321 484 13132223 13114214 14121341 454 41312231 43111115 12261131 485 23132231 23114222 13212341 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 486 11314124 13114313 14122151 517 22231412 33122213 31411133 487 12223223 23114321 13213151 518 21322412 43122221 41411141 488 22223231 13114412 12311126 519 22231511 32213213 11411216 489 11314223 13114511 22311134 520 21322511 42213221 21411224 490 21314231 13115123 32311142 521 13141115 32213312 31411232 491 13132421 23115131 12311225 522 23141123 33122411 11411315 492 12223421 13115222 22311233 523 33141131 32213411 21411323 493 13133132 13115321 32311241 524 12232115 23123114 31411331 494 12224132 13116131 12311324 525 13141214 33123122 11411414 495 13133231 52211114 22311332 526 23141222 22214114 21411422 496 11315132 62211122 12311423 527 11323115 23123213 11411513 497 12224231 12211163 22311431 528 12232214 33123221 21411521 498 31321115 52211213 12311522 529 22232222 22214213 11411612 499 41321123 62211221 12311621 530 23141321 32214221 12321125 500 51321131 12211262 13221134 531 11323214 22214312 22321133 501 31321214 52211312 23221142 532 21323222 23123411 32321141 502 41321222 12211361 12312134 533 13141412 22214411 11412125 503 31321313 52211411 13221233 534 11323313 13124114 12321224 504 41321321 43121114 23221241 535 12232412 23124122 22321232 505 31321412 53121122 12312233 536 13141511 12215114 11412224 506 31321511 42212114 13221332 537 12232511 13124213 21412232 507 22231115 43121213 12312332 538 13142123 23124221 22321331 508 32231123 53121221 13221431 539 23142131 12215213 11412323 509 42231131 42212213 12312431 540 12233123 22215221 12321422 510 21322115 52212221 14131142 541 13142222 12215312 11412422 511 22231214 42212312 13222142 542 11324123 13124411 12321521 512 41322131 43121411 14131241 543 12233222 12215411 11412521 513 21322214 42212411 12313142 544 13142321 13125122 13231133 514 31322222 33122114 13222241 545 11324222 12216122 23231141 515 32231321 43122122 12313241 546 12233321 13125221 12322133 516 21322313 32213114 21411125 547 13143131 12216221 13231232 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 548 11325131 61311113 11413133 579 12243122 43132121 11422421 549 31331114 11311154 12322232 580 11334122 32223113 13241132 550 41331122 21311162 13231331 581 11334221 33132212 12332132 551 31331213 61311212 11413232 582 41341121 31314113 13241231 552 41331221 11311253 12322331 583 31341311 32223212 11423132 553 31331312 21311261 11413331 584 32251121 33132311 12332231 554 31331411 61311311 14141141 585 22251212 31314212 11423231 555 22241114 11311352 13232141 586 22251311 32223311 11431115 556 32241122 11311451 12323141 587 13161113 31314311 21431123 557 21332114 52221113 11414141 588 12252113 23133113 31431131 558 22241213 62221121 11421116 589 11343113 33133121 11431214 559 32241221 12221162 21421124 590 13161311 22224113 21431222 560 21332213 51312113 31421132 591 12252311 23133212 11431313 561 31332221 61312121 11421215 592 24111125 21315113 21431321 562 21332312 11312162 21421223 593 14111216 22224212 11431412 563 22241411 12221261 31421231 594 24111224 23133311 11431511 564 21332411 51312212 11421314 595 14111315 21315212 12341123 565 13151114 52221311 21421322 596 24111323 22224311 22341131 566 23151122 11312261 11421413 597 34111331 21315311 11432123 567 12242114 51312311 21421421 598 14111414 13134113 12341222 568 13151213 43131113 11421512 599 24111422 23134121 11432222 569 23151221 53131121 11421611 600 14111513 12225113 12341321 570 11333114 42222113 12331124 601 24111521 13134212 11432321 571 12242213 43131212 22331132 602 14112125 11316113 13251131 572 22242221 41313113 11422124 603 24112133 12225212 12342131 573 11333213 51313121 12331223 604 34112141 13134311 11433131 574 21333221 43131311 22331231 605 14112224 11316212 11441114 575 13151411 41313212 11422223 606 24112232 12225311 21441122 576 11333312 42222311 21422231 607 14112323 11316311 11441213 577 12242411 41313311 11422322 608 24112331 13135121 21441221 578 11333411 33132113 12331421 609 14112422 12226121 11441312 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 610 14112521 61321112 11441411 641 14121611 12235112 13311323 611 14113133 11321153 12351122 642 14122124 13144211 23311331 612 24113141 21321161 11442122 643 24122132 11326112 13311422 613 14113232 61321211 12351221 644 13213124 12235211 13311521 614 14113331 11321252 11442221 645 14122223 11326211 14221133 615 14114141 11321351 11451113 646 24122231 61331111 24221141 616 23211116 52231112 21451121 647 13213223 11331152 13312133 617 33211124 12231161 11451212 648 23213231 11331251 14221232 618 43211132 51322112 11451311 649 13213322 52241111 13312232 619 23211215 52231211 12361121 650 14122421 51332111 14221331 620 33211223 11322161 11452121 651 14123132 43151111 13312331 621 23211314 51322211 15111143 652 13214132 42242111 15131141 622 33211322 43141112 25111151 653 14123231 41333111 14222141 623 23211413 42232112 15111242 654 13214231 33152111 13313141 624 33211421 43141211 15111341 655 32311115 32243111 12411116 625 23211512 41323112 15112151 656 42311123 31334111 22411124 626 14121116 42232211 14211134 657 52311131 23153111 32411132 627 24121124 41323211 24211142 658 32311214 22244111 12411215 628 34121132 33142112 14211233 659 42311222 21335111 22411223 629 13212116 32233112 24211241 660 32311313 13154111 32411231 630 14121215 33142211 14211332 661 42311321 12245111 12411314 631 33212132 31324112 14211431 662 32311412 11336111 22411322 632 34121231 32233211 15121142 663 32311511 11341151 12411413 633 13212215 31324211 14212142 664 23221115 44111114 22411421 634 23212223 23143112 15121241 665 33221123 54111122 12411512 635 33212231 22234112 14212241 666 22312115 44111213 12411611 636 13212314 23143211 13311125 667 23221214 54111221 13321124 637 14121413 21325112 23311133 668 33221222 44111312 23321132 638 24121421 22234211 33311141 669 22312214 44111411 12412124 639 13212413 21325211 13311224 670 32312222 34112114 13321223 640 23212421 13144112 23311232 671 33221321 44112122 23321231 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 672 22312313 34112213 12412223 703 13224131 34122113 11512412 673 23221412 44112221 22412231 704 12315131 44122121 12421511 674 22312412 34112312 12412322 705 41411114 33213113 11512511 675 23221511 34112411 13321421 706 51411122 34122212 13331123 676 22312511 24113114 12412421 707 41411213 33213212 23331131 677 14131115 34113122 14231132 708 51411221 34122311 12422123 678 24131123 24113213 13322132 709 414113121 33213311 13331222 679 13222115 34113221 14231231 710 41411411 24123113 11513123 680 14131214 24113312 12413132 711 32321114 34123121 12422222 681 33222131 24113411 13322231 712 42321122 23214113 13331321 682 12313115 14114114 12413231 713 31412114 24123212 11513222 683 13222214 24114122 21511115 714 41412122 23214212 12422321 684 23222222 14114213 31511123 715 42321221 24123311 11513321 685 24131321 24114221 41511131 716 31412213 23214311 14241131 686 12313214 14114312 21511214 717 41412221 14124113 13332131 687 22313222 14114411 31511222 718 31412312 24124121 12423131 688 14131412 14115122 21511313 719 32321411 13215113 11514131 689 12313313 14115221 31511321 720 31412411 14124212 21521114 690 13222412 53211113 21511412 721 23231114 13215212 31521122 691 14131511 63211121 21511511 722 33231122 14124311 21521213 692 13222511 13211162 12421115 723 22322114 13215311 31521221 693 14132123 53211212 22421123 724 23231213 14125121 21521312 694 24132131 13211261 32421131 725 33231221 13216121 21521411 695 13223123 53211311 11512115 726 21413114 62311112 12431114 696 14132222 44121113 12421214 727 22322213 12311153 22431122 697 12314123 54121121 22421222 728 32322221 22311161 11522114 698 13223222 43212113 11512214 729 21413213 62311211 12431213 699 14132321 44121212 21512222 730 31413221 12311252 22431221 700 12314222 43212212 22421321 731 23231411 12311351 11522213 701 13223321 44121311 11512313 732 21413312 53221112 21522221 702 14133131 43212311 12421412 733 22322411 13221161 11522312 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 734 21413411 52312112 12431411 765 31422113 21411251 25211141 735 14141114 53221211 11522411 766 41422121 11411342 15211232 736 24141122 12312161 13341122 767 31422212 11411441 15211331 737 13232114 52312211 12432122 768 32331311 62321111 16121141 738 14141213 44131112 13341221 769 31422311 12321152 15212141 739 24141221 43222112 11523122 770 23241113 61412111 14311124 740 12323114 44131211 12432221 771 33241121 11412152 24311132 741 13232213 42313112 11523221 772 22332113 12321251 14311223 742 23232221 43222211 21531113 773 23241212 11412251 24311231 743 11414114 42313211 31531121 774 21423113 53231111 14311322 744 12323213 34132112 21531212 775 22332212 52322111 14311421 745 22323221 33223112 21531311 776 23241311 51413111 15221132 746 14141411 34132211 12441113 777 21423212 44141111 14312132 747 11414213 32314112 22441121 778 22332311 43232111 15221231 748 21414221 33223211 11532113 779 21423311 42323111 14312231 749 13232411 32314211 12441212 780 14151113 41414111 13411115 750 11414312 24133112 11532212 781 24151121 34142111 23411123 751 14142122 23224112 12441311 782 13242113 33233111 33411131 752 13233122 24133211 11532311 783 23242121 32324111 13411214 753 14142221 22315112 13351121 784 12333113 31415111 23411222 754 12324122 23224211 12442121 785 13242212 24143111 13411313 755 13233221 22315211 11533121 786 14151311 23234111 23411321 756 11415122 14134112 21541112 787 11424113 22325111 13411412 757 12324221 13225112 21541211 788 12333212 21416111 13411511 758 11415221 14134211 12451112 789 13242311 14144111 14321123 759 41421113 12316112 11542112 790 11424212 13235111 24321131 760 51421121 13225211 12451211 791 12333311 12326111 13412123 761 41421212 12316211 11542211 792 11424311 11421143 23412131 762 41421311 11411144 16111142 793 13243121 21421151 13412222 763 32331113 21411152 16111241 794 11425121 11421242 14321321 764 42331121 11411243 15211133 795 41431211 11421341 13412321 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 796 31432112 12331151 15231131 827 24212123 34213211 21612113 797 31432211 11422151 14322131 828 25121222 25123112 22521212 798 22342112 11431142 13413131 829 14212214 24214112 21612212 799 21433112 11431241 22511114 830 24212222 25123211 22521311 800 21433211 11441141 32511122 831 14212313 24214211 21612311 801 13252112 45111113 22511213 832 24212321 15124112 13431113 802 12343112 45111212 32511221 833 14212412 14215112 23431121 803 11434112 45111311 22511312 834 15121511 15124211 12522113 804 11434211 35112113 22511411 835 14212511 14215211 13431212 805 15111116 45112121 13421114 836 15122123 63311111 11613113 806 15111215 35112212 23421122 837 25122131 13311152 12522212 807 25111223 35112311 12512114 838 14213123 13311251 13431311 808 15111314 25113113 22512122 839 24213131 54221111 11613212 809 15111413 35113121 23421221 840 14213222 53312111 12522311 810 15111512 25113212 12512213 841 15122321 45131111 11613311 811 15112124 25113311 13421312 842 14213321 44222111 14341121 812 15112223 15114113 12512312 843 15123131 43313111 13432121 813 15112322 25114121 13421411 844 14214131 35132111 12523121 814 15112421 15114212 12512411 845 33311114 34223111 11614121 815 15113132 15114311 14331122 846 33311213 33314111 31621112 816 15113231 15115121 13422122 847 33311312 25133111 31621211 817 24211115 54211112 14331221 848 33311411 24224111 22531112 818 24211214 14211161 12513122 849 24221114 23315111 21622112 819 34211222 54211211 13422221 850 23312114 15134111 22531211 820 24211313 45121112 12513221 851 33312122 14225111 21622211 821 34211321 44212112 31611113 852 34221221 13316111 13441112 822 24211412 45121211 41611121 853 23312213 12411143 12532112 823 24211511 44212211 31611212 854 33312221 22411151 13441211 824 15121115 35122112 31611311 855 23312312 12411242 11623112 825 25121123 34213112 22521113 856 24221411 12411341 12532211 826 14212115 35122211 32521121 857 23312411 13321151 11623211 Từ mã Chuỗi vạch - khoảng trống Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS BSBSBSBS 858 15131114 12412151 31631111 889 22413113 16124111 23512121 859 14222114 11511134 22541111 890 23322212 15215111 13512212 860 15131213 21511142 21632111 891 24231311 14311151 14421311 861 25131221 11511233 13451111 892 22413212 13411142 13512311 862 13313114 21511241 12542111 893 23322311 13411241 15331121 863 14222213 11511332 11633111 894 22413311 12511133 14422121 864 15131312 11511431 16211132 895 15141113 22511141 13513121 865 13313213 12421142 16211231 896 25141121 12511232 32611112 866 14222312 11512142 15311123 897 14232113 12511331 32611211 867 15131411 12421241 25311131 898 24232121 13421141 23521112 868 13313312 11512241 15311222 899 13323113 12512141 22612112 869 14222411 11521133 15311321 900 14232212 11611124 23521211 870 15132122 21521141 16221131 901 15141311 21611132 22612211 871 14223122 11521232 15312131 902 12414113 11611223 14431112 872 15132221 11521331 14411114 903 13323212 21611231 13522112 873 13314122 12431141 24411122 904 14232311 11611322 14431211 874 14223221 11522141 14411213 905 12414212 11611421 12613112 875 13314221 11531132 24411221 906 13323311 12521132 13522211 876 42411113 11531231 14411312 907 15142121 11612132 12613211 877 42411212 11541131 14411411 908 14233121 12521231 32621111 878 42411311 36112112 15321122 909 13324121 11612231 23531111 879 33321113 36112211 14412122 910 12415121 11621123 22622111 880 32412113 26113112 15321221 911 51511112 21621131 14441111 881 42412121 26113211 14412221 912 51511211 11621222 13532111 882 32412212 16114112 23511113 913 42421112 11621321 12623111 883 33321311 16114211 33511121 914 41512112 12531131 16311122 884 32412311 45212111 23511212 915 42421211 11622131 16311221 885 24231113 36122111 23511311 916 41512211 11631122 16411113 886 34231121 35213111 14421113 917 33331112 11631221 25411121 887 23322113 26123111 24421121 918 32422112 14411141 15411212 888 33322121 25214111 13512113 919 33331211 13511132 15411311 Từ mã Chuỗi vạch - khoảng trống Cụm 0 Cụm 3 Cụm 6 BSBSBSBS BSBSBSBS BSBSBSBS 920 31513112 13511231 16321121 921 32422211 12611123 15412121 922 31513211 22611131 24511112 923 24241112 12611222 24511211 924 23332112 12611321 15421112 925 24241211 13521131 14512112 926 22423112 12612131 15421211 927 23332211 12621122 14512211 928 21514112 12621221 33611111 Phụ lục B (quy định) Bộ ký tự mặc định cho Mode nén bytec CHÚ THÍCH : Bảng này tương đương với bộ ký tự quy định trong ISO/IEC 8859-1, có bổ sung các kí tự kiểm soát (các giá tr ị byte từ 00 - 31) được q u y định trong ISO/IEC 646, Phiên bản tham chiếu của quốc tế. Phụ lục C (quy định) Thuật toán mã hóa phương thức nén byte Chuyển đổi này được sử dụng trong phương thức nén byte. Sáu byte dữ liệu được chuyển thành năm từ mã dữ liệu PDF417. Phương trình chuyển đổi là: b 5 x 256 5 + b 4 x 256 4 + b 3 x 256 3 + b 2 x 256 2 + b 1 x 256 1 + b 0 x 256 0 = d 4 x 900 4 + d 3 x 900 3 + d 2 x 900 2 + d 1 x 900 1 + d 0 x 900 0 trong đó: b = giá trị byte dữ liệu là phân số (0 đến 255) d = từ mã dữ liệu Thuật toán sau đây có thể được sử dụng cho chuyển đổi base 256 thành base 900. 1. Chọn t = biến tạm thời 2. Tính t = b 5 x 256 5 + b 4 x 256 4 + b 3 x 256 3 + b 2 x 256 2 + b 1 x 256 1 + b 0 x 256 0 3. Tính mỗi từ mã như sau Đối với mỗi từ mã d i = d 0 ... d 4 BEGIN d i = t mod 900 t = t div 900 END VÍ DỤ: Mã hóa các ký tự nén byte b 5 .... b 0 {231, 101, 11, 97, 205, 2} Tính tổng t sử dụng các giá trị thập phân của sáu ký tự nén byte: t = 231 x 256 5 + 101 x 256 4 + 11 x 256 3 + 97 x 256 2 + 205 x 256 1 + 2 x 256 0 = 254 421 168 672 002 Tính từ mã 0 d 0 = 254 421 168 672 002 mod 900 = 302 t = 254 421 168 672 002 div 900 = 282 690 187 413 Tính từ mã 1 d 1 = 282 690 187 413 mod 900 = 213 t = 282 690 187 413 div 900 = 314 100 208 Tính từ mã 2 d 2 = 314 100 208 mod 900 = 208 t = 314 100 208 div 900 = 349 000 Tính từ mã 3 d 3 = 349 000 mod 900 = 700 t = 349 000 div 900 = 387 Tính từ mã 4 d 4 = 387 mod 900 = 387 t = 387 div 900 = 0 Chuỗi từ mã d 4 .... d 0 là 387, 700, 208, 213, 302 Phụ lục D (quy định) Thuật toán mã hóa phương thức nén số Chuyển đổi này được sử dụng trong phương thức nén số. Các nhóm trên 44 chữ số liên tiếp được chuyển thành 15 từ mã dữ liệu PDF417 hoặc ít hơn. Thuật toán sau đây có thể được sử dụng cho việc chuyển đổi base 10 thành base 900. 1. Chọn t = giá trị tạm thời 2. Đặt giá trị đầu của t là nhóm trên 44 chữ số liên tiếp, bắt đầu bằng số 1 3. Tính mỗi từ mã như sau: Đối với mỗi từ mã d i = d 0 .... d n- 1 BEGIN d i = t mod 900 t = t div 900 nếu t = 0, thì dừng mã hóa END VÍ DỤ Mã hóa chuỗi số gồm 15 chữ số 000213298174000 Thêm vào đầu chuỗi số 1 và đặt giá trị đầu của t = 1 000 213 298 174 000 Tính từ mã 0 d 0 = 1 000 213 298 174 000 mod 900 = 200 t = 1 000 213 298 174 000 div 900 = 1 111 348 109 082 Tính từ mã 1 d 1 = 1 111 348 109 082 mod 900 = 282 t = 1 111 348 109 082 div 900 = 1 234 831 232 Tính từ mã 2 d 2 = 1 234 831 232 mod 900 = 632 t = 1 234 831 232 div 900 = 1 372 034 Tính từ mã 3 d 3 = 1 372 034 mod 900 = 434 t = 1 372 034 div 900 = 1 524 Tính từ mã 4 d 4 = 1 524 mod 900 = 624 t = 1 524 div 900 = 1 T í nh từ mã 5 d 5 = 1 mod 900 = 1 t = 1 div 900 = 0 Chuỗi từ mã d 5 … d 0 là 1, 6 2 4, 434, 632, 282, 200 Phụ lục E (quy định) Lựa chọn mức sửa lỗi của người sử dụng E.1 Mức điều chỉnh lỗi tối thiểu được khuyến cáo Mức điều chỉnh lỗi tối thi ể u được chỉ rõ trong Bảng E.1. Bảng E.1 - Mức sửa lỗi được khuyến cáo Số từ mã dữ liệu Mức sửa lỗi tối thiểu 1 đến 40 2 41 đến 160 3 161 đến 320 4 321 đến 863 5 Giống như một hướng dẫn về việc đánh giá số từ mã dữ liệu từ nội dung dữ liệu sử dụng Bảng E.1, sử dụng 1,8 ký tự văn bản ở mỗi từ mã dữ liệu trong phương thức nén văn bản, 2,9 chữ số mỗi từ mã dữ liệu trong phương thức nén số và 1,2 byte ở mỗi từ mã dữ liệu trong phương thức nén byte. Các mức sửa lỗi cao hơn phải được sử dụng ở nơi mối nguy hiểm hoặc sự thoái hóa nghiêm trọng của mã vạch được thấy trước. Mức thấp hơn có thể được sử dụng trong các ứng dụng hệ thống khép kín. E.2 Xem xét khác của người sử dụng về mức điều chỉnh lỗi Mục đích trong chuẩn ứng dụng nhằm đảm bảo các đặc tính của việc sửa lỗi mà không mất đi khả năng tạo ra nội dung dữ liệu. Các yếu tố sau đây phải được người sử dụng tính đến trong việc lựa chọn mức điều chỉnh lỗi: g) Mức điều chỉnh lỗi được khuyến cáo (xem Bảng E.1) phải được tuân thủ h) Khi số từ mã dữ liệu tối đa trong mỗi mã vạch là 925, số lượng lớn các từ mã dữ liệu giới hạn mức điều chỉnh lỗi tối đa có thể được thực hiện. Nhiều hơn 415 từ mã dữ liệu cản trở việc sửa lỗi mức 8. Nhiều hơn 671 từ mã dữ liệu cản trở mức 7 và 8. Nhiều hơn 799 từ mã dữ liệu cản trở việc sửa lỗi các mức 6, 7 và 8. Nhiều hơn 863 từ mã dữ liệu cản trở mức 5 do đó không được khuyến cáo. i) Khi các mã vạch PDF417 có các từ mã thiếu hoặc bị xóa, mức sửa lỗi có thể tăng lên mức 8, hoặc trên mức mà số từ mã sửa lỗi lấp đầy ma trận có kích cỡ tối đa phù hợp với ứng dụng. j) Duy trì chất lượng mã vạch hơn là cân bằng chất lượng in kém bằng cách tăng mức sửa lỗi. Thay vì chấp nhận mức sửa lỗi cao hơn, tốt hơn là chỉ rõ kích thước X lớn hơn hoặc các chất liệu riêng biệt có thể duy trì chất lượng in của mã vạch PDF417. Phụ lục F (quy định) Bảng hệ số cho việc tính các từ mã sửa lỗi của mã vạch PDF417 Bảng F.1 - Bảng hệ số cho sửa lỗi mức 0 j 0 1 a j 27 917 Bảng F.2 - Bảng hệ số cho sửa lỗi mức 1 j 0 1 2 3 a j 522 568 723 809 Bảng F.3 - Bảng hệ số cho sửa lỗi mức 2 j 0 1 2 3 4 5 6 7 a j 237 308 436 284 646 653 428 379 Bảng F.4 - Bảng hệ số cho sửa lỗi mức 3 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 274 562 232 755 599 524 801 132 295 116 442 428 295 42 176 65 Bảng F.5 - Bảng hệ số cho sửa lỗi mức 4 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 361 575 922 525 176 586 640 321 536 742 677 742 687 284 193 517 j 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 a j 273 494 263 147 593 800 571 320 803 133 231 390 685 330 63 410 Bảng F.6 - Bảng hệ số cho sửa lỗi mức 5 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 539 422 6 93 862 771 453 106 610 287 107 505 733 877 381 612 j 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 a j 723 476 462 172 430 609 858 822 543 376 511 400 672 762 283 184 j 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 a j 440 35 519 31 460 594 225 535 517 352 605 158 651 201 488 502 j 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 a j 648 733 717 83 404 97 280 771 840 629 4 381 843 623 264 543 Bảng F.7 - Bảng hệ số cho sửa lỗi mức 6 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 521 310 864 547 858 580 296 379 53 779 897 444 400 925 749 415 j 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 a j 822 93 217 208 928 244 583 620 246 148 447 631 292 908 490 704 j 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 a j 516 258 457 907 594 723 674 292 272 96 684 432 686 606 860 569 j 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 a j 193 219 129 186 236 287 192 775 278 173 40 379 712 463 646 776 j 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 a j 171 491 297 763 156 732 95 270 447 90 507 48 228 821 808 898 j 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 a j 784 663 627 378 382 262 380 602 754 336 89 614 87 432 670 616 j 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 a j 157 374 242 726 600 269 375 898 845 454 354 130 814 587 804 34 j 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 a j 211 330 539 297 827 865 37 517 834 315 550 86 801 4 108 539 B ả ng F.8 - Bảng hệ số cho sửa lỗi mức 7 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 524 894 75 766 882 857 74 204 82 586 708 250 905 786 138 720 j 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 a j 858 194 311 913 275 190 375 850 438 733 194 280 201 280 828 757 j 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 a j 710 814 919 89 68 569 11 204 796 605 540 913 801 700 799 137 j 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 a j 439 418 592 668 353 859 370 694 325 240 216 257 284 549 209 884 j 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 a j 315 70 329 793 490 274 877 162 749 812 684 461 334 376 849 521 j 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 a j 307 291 803 712 19 358 399 908 103 511 51 8 517 225 289 470 j 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 a j 637 731 66 255 917 269 463 830 730 433 848 585 136 538 906 90 j 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 a j 2 290 743 199 655 903 329 49 802 580 355 588 188 462 10 134 j 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 a j 628 320 479 130 739 71 263 318 374 601 192 605 142 673 687 234 j 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 a j 722 384 177 752 607 640 455 193 689 707 805 641 48 60 732 621 j 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 a j 895 544 261 852 655 309 697 755 756 60 231 773 434 421 726 528 j 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 a j 503 118 49 795 32 144 500 238 836 394 280 566 319 9 647 550 j 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 a j 73 914 342 126 32 681 331 792 620 60 609 441 180 791 893 754 j 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 a j 605 383 228 749 760 213 54 297 134 54 834 299 922 191 910 532 j 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 a j 609 829 189 20 167 29 872 449 83 402 41 656 505 579 481 173 j 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 a j 404 251 688 95 497 555 642 543 307 159 924 558 648 55 497 10 Bảng F.9 - Bảng hệ số cho sửa lỗi mức 8 j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a j 352 77 373 504 35 599 428 207 409 574 118 498 285 380 350 492 j 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 a j 197 265 920 155 914 299 229 643 294 871 306 88 87 193 352 781 j 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 a j 846 75 327 520 435 543 203 666 249 346 781 621 640 268 794 534 j 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 a j 539 781 408 390 644 102 476 499 290 632 545 37 858 916 552 41 j 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 a j 542 289 122 272 383 800 485 98 752 472 761 107 784 860 658 741 j 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 a j 290 204 681 407 855 85 99 62 482 180 20 297 451 593 913 142 j 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 a j 808 684 287 536 561 76 653 899 729 567 744 390 513 192 516 258 j 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 a j 240 518 794 395 768 848 51 610 384 168 190 826 328 596 786 303 j 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 a j 570 381 415 641 156 237 151 429 531 207 676 710 89 168 304 402 j 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 a j 40 708 575 162 864 229 65 861 841 512 164 477 221 92 358 785 j 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 a j 288 357 850 836 827 736 707 94 8 494 114 521 2 499 851 543 j 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 a j 152 729 771 95 248 361 578 323 856 797 289 51 684 466 533 820 j 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 a j 669 45 902 452 167 342 244 173 35 463 651 51 699 591 452 578 j 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 a j 37 124 298 332 552 43 427 119 662 777 475 850 764 364 578 911 j 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 a j 283 711 472 420 245 288 594 394 511 327 589 777 699 688 43 408 j 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 a j 842 383 721 521 560 644 714 559 62 145 873 663 713 159 672 729 j 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 a j 624 59 193 417 158 209 563 564 343 693 109 608 563 365 181 772 j 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 a j 677 310 248 353 708 410 579 870 617 841 632 860 289 536 35 777 j 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 a j 618 586 424 833 77 597 346 269 757 632 695 751 331 247 184 45 j 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 a j 787 680 18 66 407 369 54 492 228 613 830 922 437 519 644 905 j 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 a j 789 420 305 441 207 300 892 827 141 537 381 662 513 56 252 341 j 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 a j 242 797 838 837 720 224 307 631 61 87 560 310 756 665 397 808 j 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 a j 851 309 473 795 378 31 647 915 459 806 590 731 425 216 548 249 j 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 a j 321 881 699 535 673 782 210 815 905 303 843 922 281 73 469 791 j 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 a j 660 162 498 308 155 422 907 817 187 62 16 425 535 336 286 437 j 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 a j 375 273 610 296 183 923 116 667 751 353 62 366 691 379 687 842 j 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 a j 37 357 720 742 330 5 39 923 311 424 242 749 321 54 669 316 j 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 a j 342 299 534 105 667 488 640 672 576 540 316 486 721 610 46 656 j 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 a j 447 171 616 464 190 531 297 321 762 752 533 175 134 14 381 433 j 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 a j 717 45 111 20 596 284 736 138 646 411 877 669 141 919 45 780 j 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 a j 407 164 332 899 165 726 600 325 498 655 357 752 768 223 849 647 j 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 a j 63 310 863 251 366 304 282 738 675 410 389 244 31 121 303 263 Phụ lục G (quy định) PDF417 cô đọng G . 1 Mô tả PDF417 cô đọng có thể được sử dụng ở nơi mà các xem xét về không gian là mối quan tâm hàng đầu và việc làm tổn hại cho mã vạch không thể xảy ra. Trong môi trường mà việc làm tổn hại cho nhãn không x ả y ra (ví dụ: văn ph ò ng), các chỉ báo hàng bên phải có thể b ị b ỏ qua và dấu hiệu dừng bị giảm xuống một môđun độ rộng vạch, như đã được chỉ ra trong Hình G.1 dưới đây. Quy trình này giảm từ 4 từ mã mỗi hàng xuống còn 2 từ mã mỗi hàng với một số thoả hiệp trong giải mã, hoặc khả năng chống lại tiếng ồn, tổn hại, sự giảm sút, bụi v.v. Phiên bản này được gọi là PDF417 cô đọng, là bộ giải mã tương thích với tiêu chuẩn này. Mã vạch PDF417 cô đọng với ít hơn 6 hàng mã hóa số cột chỉ tại một vị trí, mà không phải là lỗi đã điều chỉnh, do đó có thể nguy hiểm đến chất lượng in hoặc tổn hại. CHÚ THÍCH : Trong các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và AIM Eurrope (1994), thuật ngữ PDF417 bị cắt ngắn được sử dụng theo cách đồng bộ. Tên PDF417 cô đọng hay được sử dụng hơn để tránh nhầm lẫn với thuật ngữ “bị cắt ngắn". Hình G.1 - PDF 417 cô đọng G.2 Chất lượng in Mặc dù phương pháp về chất lượng in chuẩn quy định trong điều 5.14.4 được áp dụng cho PDF417 cô đọng, nhưng sự vắng mặt của Dấu hiệu Kết thúc (ngoài môđun vạch đơn) vẫn yêu cầu tạo ra hai ngoại lệ. Phân tích các giản đồ phản xạ quét về các dấu hiệu bắt đầu và kết thúc chỉ áp dụng cho dấu hiệu bắt đầu. Để đánh giá hiệu suất Từ mã, yêu cầu quét hàng trên hoặc hàng dưới của mã vạch (ISO/IEC 15415 bao gồm việc giải mã các dấu hiệu bắt đầu và kết thúc không được áp dụng); thay vào đó, đối với các hàng khác, dấu hiệu bắt đầu và ít nhất một từ mã bổ sung phải được giải mã. Phụ lục H (quy định) Macro PDF417 H.1 Tổng quan về Macro PDF417 Macro PDF417 cung cấp cơ chế chuẩn để tạo ra phép biểu diễn phân tán của các tệp rất lớn được thực hiện bởi mã vạch PDF417 đơn. Các mã vạch Macro PDF417 khác với các mã vạch PDF417 thường trong đó chúng chứa thông tin kiểm soát bổ sung trong Khối Kiểm soát Macro PDF417. Sử dụng Macro PDF417, các tệp lớn được chia thành một vài đoạn tệp và được mã hóa thành các mã vạch riêng lẻ. Khối Kiểm soát xác định tệp ID, chuỗi liên kết với nhau và các thông tin tùy chọn khác về tệp. Bộ giải mã Macro PDF417 sử dụng thông tin của Khối Kiểm soát để thiết kế lại tệp một cách chính xác, độc lập với thứ tự quét mã vạch. H.2 Cú pháp Macro PDF417 Mỗi mã vạch Macro PDF417 phải mã hóa Khối Kiểm soát Macro PDF417 chứa thông tin kiểm soát. Khối Kiểm soát bắt đầu với từ mã đánh dấu Macro (928). Khối kiểm soát theo sau khối dữ liệu mà nó liên kết, và số từ mã trong khối kiểm soát được xem là dữ liệu và được hợp thành giá trị của bộ Mô tả Độ dài Mã vạch. Phần đầu của các từ mã sửa lỗi nhận dạng phần cuối của Khối Kiểm soát. CHÚ THÍCH : M ã vạch không chứa dữ liệu người sử dụng, khác với Khối Kiểm soát Macro PDF417, là một mã vạch hợp lệ. Khối Kiểm soát phải chứa ít nhất hai trường bắt buộc: chỉ số đoạn và tệp ID. Nó cũng có thể chứa số trường tùy chọn, như đã mô tả trong Phụ lục H.2.3. Hình H.1 minh họa vị tr í của Khối Kiểm soát trong mã vạch Macro PDF417. Hình H.1 - Sơ đồ mã vạch PDF417 H. 2.1 C hỉ số đoạn Trong Macro PDF417, mỗi mã vạch biểu diễn một đoạn của toàn bộ tệp. Để thiết kế lại toàn bộ tệp, các đoạn cần được đặt theo đúng thứ tự. Thông tin Kiểm soát trong Khối Kiểm soát tạo điều kiện cho quá trình tái sắp xếp này. Một tệp được chia thành bộ mã vạch j Macro PDF417, trường chỉ số đoạn trong mỗi Khối Kiểm soát của mã vạch chứa giá trị giữa 0 và j -1, tương ứng với vị trí của nội dung mã vạch đó trong phép biểu diễn phân tán. Trường chỉ số đoạn là hai từ mã độ dài và được mã hóa sử dụng phương thức nén số như đã quy định trong điều 5.4.4. Giá trị chỉ số đoạn phải được đệm với các số 0 chủ đạo tới năm chữ số trước khi phương thức nén số được áp dụng, và việc chuyển thành phương thức nén số không yêu cầu mode latch (từ mã 902). Giá trị cho phép lớn nhất trong trường chỉ số đoạn là 99 998. Do đó, trên 99 999 mã vạch Macro PDF417 có thể bao gồm phép biểu diễn phân tán của tệp dữ liệu. CHÚ THÍCH : Chỉ số đoạn này chuyển dịch thành sức chứa gần 110 triệu byte dữ liệu trong phương thức nén byte , hoặc 184 triệu ký tự trong phương thức nén văn bản, hoặc gần 300 triệu ký tự trong phương thức nén số. H. 2.2 Trường tệp ID Đối với mỗi mã vạch Macro PDF417 liên quan, trường tệp ID chứa cùng giá trị. Điều này đảm bảo rằng tất cả các dữ liệu mã vạch được ráp lại thuộc về cùng một phép biểu diễn tệp phân tán. Tệp ID là trường độ dài biến đổi bắt đầu với từ mã đầu tiên theo sau chỉ số đoạn và mở rộng đến phần đầu của các trường tùy chọn (nếu có) hoặc đến phần cuối của Khối Kiểm soát (nếu không có). Mỗi từ mã trong trường ID có thể có giá trị giữa 0 và 899, tạo cho tệp ID chuỗi các số base 900. Mỗi từ mã của chuỗi được truyền như phép biểu diễn 3 chữ số ASCII giá trị thập phân của nó. CHÚ THÍCH : Hiệu quả của lược đồ phân định tệp bị ảnh hưởng bởi độ dài của trường tệp ID và sự thích hợp của thuật toán sử dụng để tạo giá trị của nó. H. 2.3 Trường tùy chọn Các trường tùy chọn có thể theo sau tệp ID. Mỗi trường tùy chọn bắt đầu với chuỗi thẻ cụ thể và mở rộng tới phần đầu của trường tùy chọn tiếp theo (nếu có) hoặc phần cuối của Khối Kiểm soát (nếu không có). Chuỗi thẻ bao gồm từ mã 923, tiếp theo đó là bộ miêu tả trường từ mã đơn. Trong mỗi trường tùy chọn, dữ liệu theo sau chuỗi thẻ có một diễn dịch cụ thể về trường. Các trường tùy chọn rỗng không được sử dụng. Bảng H.1 biểu diễn sự tương ứng giữa các bộ miêu tả trường xác định và nội dung trường tùy chọn. Mỗi trường tùy chọn bắt đầu với trạng thái đầu đến phương thức nén được chỉ ra trong b ả ng và trạng thái đầu đến ECI 000002 (hoặc GLI 0 về các bộ mã hóa phù hợp với các tiêu chuẩn PDF417 trước đó). Các chuỗi thoát ECI, các mode latch và mode shift có thể được sử dụng, nhưng chỉ ở các trường tùy chọn ban đầu trong phương thức nén văn bản. Các trường này phải luôn luôn biểu diễn các thuộc tính tệp chung và không cần có mặt trong Khối Kiểm soát của nhiều hơn một mã vạch PDF417 trong phép biểu diễn tệp phân tán, ngoại tr ừ trường đếm đoạn như đã mô tả dưới đây. Đoạn chứa các trường này được xác định bởi bộ mã hóa cụ thể. Nếu một trường riêng xuất hiện ở nhiều đoạn thì nó sẽ xuất hiện giống hệt nhau ở mỗi đoạn. Không có thứ tự nào được yêu cầu đối với các trường tùy chọn. Bảng H.1 - Bộ miêu tả trường tùy chọn Macro PDF417 Bộ mô tả trường Giá trị byte được truyền Nội dung Phương thức nén ban đầu Phương thức a nén cố định Tổng số các từ mã b 0 48 Tên Tệp Nén văn bản N Biến 1 49 Bộ đếm Đoạn Nén Số Y 4 2 50 Tem Thời gian Nén Số Y 6 3 51 Người gửi Nén văn bản N Biến 4 52 Người nhận Nén văn bản N Biến 5 53 Kích cỡ tệp Nén Số Y Biến 6 54 Kiểm tra tổng Nén Số Y 4 a A‘Y’ trong cột ‘P hương thức nén cố định’ có nghĩa là không có các ECI, các mode latch và shift nén được cho phép trong trường đó b Tổng số được chỉ ra trong cột cuối cùng bao gồm chuỗi thẻ hai từ mã Như đã chỉ ra trong Bảng H.1, tất cả các trường tùy chọn sử dụng mã hóa mức cao của PDF417. Tại phần đầu của mỗi trường, phương thức mặc định hiện hành phải được xác định bởi Bảng H.1, không tính đến các mode shift và latch có trước trong mã vạch. Cấu trúc cụ thể của các trường tùy chọn như sau: - Trường đếm đoạn (phân định tổng số mã vạch Macro PDF417 trong tệp phân tán) có thể chứa các giá trị từ 1 đến 99 999 và phải được mã hóa thành hai từ mã. Nếu trường đếm đoạn tùy chọn được sử dụng th ì nó phải xuất hiện trong mỗi đoạn. - Trường tem thời gian được diễn dịch trong phương thức nén số. Nó cho biết tem thời gian trên tệp nguồn được biểu diễn là thời gian trôi qua trong các giây từ 1970:01:01:00:00:00 GMT (ví dụ: 00:00:00 GMT vào ngày 1 tháng 1 năm 1970). Sử dụng định dạng này, bốn từ mã có thể mã hóa mọi ngày tháng trong 200 thế kỷ tới. - Trường kích cỡ tệp chứa kích cỡ được tính bằng byte của toàn bộ tệp nguồn. - Trường kiểm tra tổng chứa giá trị của 16 bít (2 byte) kiểm tra tổng CRC sử dụng đa thức CCITT-16 x 16 + x 12 + x 5 + 1 tính qua toàn bộ tệp nguồn. Kích cỡ tệp và kiểm tra tổng phải được tính từ tệp nguồn, trước khi bổ sung bất kỳ chuỗi thoát ECI về mã hóa ECI. Nếu người nhận xác minh kiểm tra tổng sau khi nhận, thì tệp nguồn phải được thiết kế lại nguyên v ă n. Điều này chỉ yêu cầu đối với các mục đích xác minh kiểm tra tổng tùy chọn, rằng không có người sử dụng hoặc phép biến đổi tùy chọn dòng byte được thực hiện, thậm chí nếu các phép biến đổi này được hoàn thành trong bộ xử lý giải mã ECI. Nếu CRC được sử dụng thì việc tính toán có thể được thực hiện trước khi dữ liệu được gửi đến máy in hoặc trong máy in, dựa trên các khả năng của máy in. Bộ miêu tả trường có giá trị lớn hơn 6 hiện không xác định. Tuy nhiên, thiết bị giải mã PDF417 phải giải mã và truyền các trường tùy chọn với bộ miêu tả trường từ 7 đến 9 (byte 55 đến 57) hoặc từ A đến Z (byte 65 đến 90) bằng cách coi dữ liệu của trường như trong phương thức nén văn bản và độ dài biến. H. 2.4 Ký tự kết thúc Macro PDF417 Khối kiểm soát trong mã vạch biểu diễn phần cuối cùng của tệp Macro PDF417 chứa dấu hiệu đặc biệt, chứa từ mã 922 ở cuối Khối Kiểm soát. Khối Kiểm soát về mã vạch khác kết thúc sau các trường tùy chọn mà không có ký tự kết thúc đặc biệt nào. H. 3 Xem xét mã hóa mức cao Macro PDF417 cung cấp cơ chế liên kết bộ mã vạch một cách lôgic, điều quan trọng là việc nhận ra rằng đối với mã hóa mức cao PDF417, mỗi mã vạch giữ lại một thực thể riêng biệt. Do đó, phạm vi của bộ chuyển phương thức được hạn chế trong mã vạch mà nó tìm thấy. Mỗi mã vạch phải bắt đầu hoàn toàn trong phương thức con Alpha của phương thức nén văn bản. Hai trường bắt buộc được mã hóa như sau: chỉ số đoạn được mã hóa trong phương thức nén số và tệp ID được mã hóa là chuỗi các số của base 900. Trong ngữ cảnh trường tùy chọn của Khối Kiểm soát, các phương thức nén trong Bảng H.1 thay thế phương thức được thiết lập bởi các từ mã phân định phương thức trong vùng từ mã dữ liệu của mã vạch. Tuy nhiên, phạm vi ECI hiện hành đi qua Khối kiểm soát Macro đến phần đầu của mã vạch Macro PDF417 tiếp theo. Mỗi trường Khối Kiểm soát Macro bắt đầu với trạng thái đầu đến ECI 000002 (hoặc GLI 0 đối với các bộ mã hóa phù hợp với các tiêu chuẩn PDF417 trước đây). Cũng có khả năng thiết lập một ECI khác trong trường Khối Kiểm soát Macro của phương thức nén văn bản tùy chọn, ví dụ để biểu diễn chính xác tên của người nhận ở Hylạp. Chuỗi thoát ECI có thể được đặt tại mọi vị trí cho phép (xem điều 5.5.3) sau từ mã thẻ (923). H. 4 Ví dụ về mã hóa Để minh họa việc mã hóa Khối Kiểm soát Macro, sử dụng ví dụ sau đây: Chuỗi Macro PDF417 mã hóa tổng số 4 567 byte của dữ liệu do người sử dụng xác định trong bốn mã vạch PDF417 (hoặc các đoạn tệp). Dữ liệu “tiêu đề" khác được mã hóa là: ● Tệp ID = 17 base 900 53 base 900 ● Bộ đếm đoạn được sử dụng ● Người gửi: CEN BE ● Người nhận: ISO CH CHÚ THÍCH : Bộ đếm đoạn, ng ườ i gửi, người nhận là ba trường tùy chọn được người sử dụng l ựa chọn. Giả sử rằng bộ mã hóa đặt các trường tùy chọn ở mã vạch đầu tiên, thì mã hóa Khối Kiểm soát Macro cho mã vạch đó như sau ... [ từ mã dữ liệu cuối cùng] [ 928 ] A [ 111 ] [ 100 ] B [0 17 ] [ 053 ] C [ 923 ] [ 001 ] D [ 111 ] [ 104 ] E [ 923 ] [ 003 ] F [ 064 ] [ 416 ] [ 034 ] G [ 923 ] [ 004 ] H [ 258 ] [ 446 ] [ 067 ] l [ từ mã sửa lỗi đầu tiên ] ... Bốn mã vạch cuối cùng có Khối Kiểm soát Macro sau đây: [ từ mã dữ liệu cuối cùng ] [ 928 ] A [ 111 ] [ 100 ] B [0 17 ] [ 053 ] C [ 923 ] [ 001 ] D [ 111 ] [ 104 ] E [ 92 2] J [ từ mã sửa lỗi đầu tiên ] trong đó: A = Từ mã đánh dấu Macrro B = Tệp đoạn ID Các đoạn tệp được đánh số từ 0 đến j - 1, và được mã hóa sử dụng phương thức nén số Đoạn thứ nhất = 00000 = các từ mã 111, 100 Đoạn thứ tư = 00003 = các từ mã 111, 103 C = Tệp ID đến base 900 D = Thẻ về trường đếm đoạn E = Bộ đếm đoạn F = Thẻ về trường người gửi G = Mã hóa trường người gửi CEN BE H = Thẻ về trường người nhận I = Mã hóa trường người nhận ISO CH J = Ký tự kết thúc Macro PDF417 H. 5 Macro PDF417 và giao thức Diễn dịch Kênh mở rộng Giao thức Diễn dịch Kênh Mở rộng độc lập với mã vạch được xây dựng sau PDF417 và được quy định như một mã vạch. PDF417 hỗ trợ hệ thống Phân định Nhãn Chung (GLI), tiền thân và cơ sở của giao thức ECI, từ lần xuất bản yêu cầu kỹ thuật về mã vạch đầu tiên năm 1994. Do đó, các diễn dịch GLI trước đây phải được tính đến. Có hai điều kiện khác nhau cần được tính đến: - GLI 0 và 1 là các diễn dịch được quy định trong yêu cầu kỹ thuật về PDF417 gốc. Các yêu cầu này tương đương với ECI 000000 và ECI 000001. Các quy tắc chuẩn xác về Macro PDF417 được đề cập đến Phụ lục H.5.1. - Tất cả các phép gán ECI khác mà cách sử dụng của nó với Macro PDF417 được quy định trong Phụ lục H.5.2. H. 5.1 Macro PDF417 với ECI 000000 và 000001 (GLI 0 và 1) Khi các GLI thực chất là một phần của yêu cầu kĩ thuật về PDF417 gốc, theo lôgic thì cần có bộ mã hóa GLI và Macro PDF417 kết hợp trong một đơn vị. Yêu cầu kĩ thuật về mã vạch PDF417 gốc yêu cầu nguyên lý ‘ trở về GLI 0’ tại điểm bắt đầu của các mã vạch Macro PDF417 thứ hai và sau đó, do đó mỗi mã vạch bắt đầu ở diễn dịch mặc định. Đối với GLI 0 và 1 (tương đương với ECI 000000 và ECI 000001), cái này không ả nh h ưở ng đến việc mã hóa. Tuy nhiên, đối với một vài ECI phức hợp, nguyên lý ‘ trở về GLI 0’ khó thực thì theo cách độc lập với mã vạch. Phần mềm mã hóa tuân theo yêu cầu kĩ thuật gốc về Macro PDF417, GLI 0 và 1 phù hợp hoàn toàn với các ứng dụng trước đó. Cũng như vậy đối với các ứng dụng trước đó về các GLI do người sử dụng xác định (bây giờ được gọi là các ECI) bởi theo định nghĩa thì vùng hệ thống là bắt buộc. Tất cả các ECI đánh số là 000002 hoặc cao hơn không được xác định với nguyên lý ’trở về GLI 0’. Do đó, các mã vạch PDF417 sẽ không kết hợp ECI 000000 và ECI 000001 với bất kỳ ECI cao hơn nào (Ngoại trừ trong các hệ thống đóng). H. 5.2 Macro PDF417 và các ECI khác Bộ mã hóa ECI có thể là một mã vạch độc lập và tạo ra dòng byte đóng vai trò như đầu vào bộ mã hóa mã vạch PDF417. Bộ mã hóa ECI hoạt động giống như có một dòng dữ liệu đơn, không kể đến kích cỡ tệp. Do đó, khi ECI được gọi ra sẽ tiếp tục tồn tại qua các đoạn cho tới ECI khác hoặc phần cuối của dữ liệu đã mã hóa. Điều này là quan trọng nếu, ví dụ, phép gán ECI biểu diễn một lược đồ mã hóa, ở đó việc trở về GLI 0 là không thích hợp. Các bộ mã hóa Macro PDF417 phù hợp với tiêu chuẩn này không cần mã hóa ECI đang thịnh hành tại phần đầu của các mã vạch PDF417 theo sau. CHÚ THÍCH : Cần tạo ra mã hóa phần cuối m ã vạch theo lô gích, ví dụ: phương thức nén số không đứng giữa hai đoạn, nhưng hai khối nén số riêng biệt có thể được mã hóa tại phần cuối của mã vạch hoặc phần đầu của mã vạch tiếp theo. Các điều kiện này liên quan đến Macro PDF417 và Mã hóa Mức Cao (Xem Phụ lục H.3) và không phải là Macro PDF417 và các ECI. H. 6 Truyền dữ liệu Macro PDF417 Truyền thông tin Khối Kiểm soát Macro PDF417 được xử lý theo cách tương tự với các ECI diễn dịch. Giao thức ECI độc lập với mã vạch được xác định dưới đây, giao thức PDF417 gốc được n ê u trong Phụ lục M. Mặc dù Khối Kiểm soát Macro được mã hóa tại phần cuối của dữ liệu mã vạch nhưng nó vẫn được truyền trước dữ liệu mã vạch khi sử dụng giao thức ECI. Ba từ mã (922, 923 và 928) báo hiệu việc mã hóa Khối Kiểm soát Macro PDF417 hoặc một trong các phần hợp thành của nó. Việc giải mã như sau: 1. Nếu từ mã đánh d ấ u Macro (928) b ắ t đầu chuỗi: a. Từ mã 928 được truyền như chuỗi thoát 92, 77, 73, biểu diễn ‘ \MI’ trong diễn dịch mặc định. b. Hai từ mã tiếp theo phân định chỉ số đoạn. Các từ mã này được mã hóa trong phương thức nén số và giải mã thành số có năm chữ số trong dãy 00000 đến 99998. c. Các từ mã tiếp theo mã hóa trường tệp ID, trường này phải giống với tất cả mã vạch Macro PDF417 liên quan. Điểm cuối của trường tệp ID là từ mã 922, từ mã 923, hoặc phần cuối của dữ liệu mã hóa trong mã vạch. Mỗi từ mã được chuyển thành số có 3 chữ số trong dãy 000 đến 899 (ví dụ: số từ mã) và được truyền như các giá trị ba byte (trong dãy thập phân 48 đến 57) tiếp theo là tiêu đề thoát: 92, 77, 70, biểu diễn ‘ \MF’ trong diễn dịch mặc định. 2. Nếu từ mã thẻ chuỗi Macro (923) bắt đầu chuỗi: a. Từ mã 923 được truyền như chuỗi thoát 92, 77, 79, biểu diễn ‘ \MO’ trong diễn dịch mặc định. b. Từ mã tiếp theo biểu diễn một trong các bộ miêu tả trường tùy chọn trong Bảng H.1 được truyền như một byte đơn biểu diễn giá trị ASCII của bộ miêu tả. c. Các từ mã tiếp theo mang nội dung dữ liệu của bộ miêu tả trường tùy chọn. Điểm cuối của trường tùy chọn là từ mã 922, từ mã 923, hoặc phần cuối của dữ liệu được mã hóa trong mã vạch. Các từ mã xen ngang phải được biến đổi theo các quy tắc giải mã của phương thức nén liên quan có trong Bảng H.1. Dữ liệu kết quả có thể là độ dài biến. 3. Nếu ký tự kết thúc Macro PDF417 (từ mã 922) được phân định, thì chuỗi thoát 92, 77, 90, biểu diễn ‘ \MZ' trong diễn dịch mặc định phải được truyền. 4. Tại phần cuối của Khối Kiểm soát Macro, mà được xác định bởi phần cuối của dữ liệu mã hóa trong mã vạch, chuỗi thoát 92, 77, 89 biểu diễn ‘\ M Y’ trong diễn dịch mặc định phải được truyền. CHÚ THÍCH: Chuỗi thoát này không được mã hóa rõ ràng trong mã vạch. Tất cả các trường Khối Kiểm soát Macro về mã vạch (đoạn) phải được truyền như một khối đơn bắt đầu với \MI... và kết thúc với \MY. Quá trình truyền Khối Kiểm soát Macro phải diễn ra trước quá trình truyền phần c ò n lại của đoạn tệp mã hóa, thậm chí nó được mã hóa tại phần cuối của mã vạch. VÍ DỤ: Khối Kiểm soát Macro của mã vạch đầu tiên, Chỉ số Đoạn = 0, với Tệp ID (100, 200, 300) được mã hóa trong mã vạch như chuỗi từ mã: [ 928 ] [ 111 ] [ 100 ] [ 100 ] [ 200 ] [ 300 ] N ó được truyền như: Truyền dữ liệu (byte): 92 , 77 , 73 , 48, 48 , 48, 48, 48 , 92 , 77, 70, 49, 48, 48, 50, 48, 48, 51, 48 , 48, 92 , 77, 89 Diễn dịch ASCII: \ MI00000 \MF100200300\MY Khi các mã vạch Macro PDF417 được quét, chức năng de-packetizing khôi phục gói tin gốc, nhớ rằng các mã vạch có thể được quét bên ngoài chuỗi. Nếu hệ thống hoạt động theo phương thức đệm thì chức năng de-packetizing sẽ tồn tại trong bộ giải mã; còn nếu hệ thống hoạt động theo phương thức không đệm thì nó sẽ tồn tại trong hệ thống nhận. Các bộ giải mã phải cung cấp phương tiện về bộ giải mã, nhờ vậy việc sử xử lý tệp ID của Macro PDF417 có thể bị gián đoạn, do đó cho phép bộ giải mã bắt đầu xử lý tệp ID mới. C ần phải ngăn chặn sự bế tắc tác động lên các mã vạch của tệp ID đã cho bị thiếu hoặc không thể giải mã. H. 6.1 Hoạt động trong phương thức đệm Trong phương thức đệm, chức năng de-packetizing phải được thực hiện trong bộ đọc/bộ giải mã. Tùy thuộc vào c ấ u hình của thiết b ị , nó sẽ: - gửi dữ liệu được tái lập không có khối kiểm soát Macro Hoặc - gửi một khối kiểm soát Macro (mà bản thân nó có thể được lập lại để bao gồm tất cả các trường tùy chọn trong mọi mã vạch) để đến trước toàn bộ gói tin được mã hóa. Khối kiểm soát Macro kết quả có trường ch ỉ số Macro đặt là 0 và bao gồm trường kết thúc tệp Macro (để đánh d ấ u toàn bộ gói tin được tái lập đầu tiên và chỉ có đoạn Macro của chuỗi giả mạo). H. 6.2 Hoạt động trong phương thức không đệm Trong phương thức không đệm, chức năng de-packetizing phải được thực hiện trong hệ thống nhận. Mỗi khối kiểm soát Macro được truyền biểu diễn tất cả các trường yêu cầu và tùy chọn thực tế được mã hóa trong mã vạch. Khi được tạo cấu hình trong phương thức không đệm, bộ giải mã có thể được tạo cấu hình một cách tùy chọn không yêu cầu các mã vạch kế tiếp có cùng tệp ID. Quy trình này chỉ phù hợp nếu bộ mã hóa được tạo cấu hình để truyền khối kiểm soát Macro PDF417 đến hệ thống nhận, và hệ thống nhận này được thiết kế để giám sát một đoạn tệp ID của khối kiểm soát nhằm xác định khi nào toàn bộ tệp được xử lý. Các mã vạch với tệp ID hoặc phi tệp ID khác nhau (ví dụ: mã vạch đơn không phải là một phần của bộ Macro PDF417) được xác định bởi hệ thống nhận Để tạo thuận lợi cho việc kiểm tra tất cả các mã vạch trong bộ Macro PDF417 được nhận trong phương thức hoạt động không đệm, trường đếm đoạn tùy chọn phải được sử dụng bất cứ khi nào có thể nh ư một phần của khối kiểm soát Macro đã mã hóa. H. 6.3 Bộ truyền điều chỉnh về 0 Các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và AIM Châu Âu (1994) xác định GLI 0 và GLI 1 có các nguyên tắc khác với các nguyên tắc về ECI, bộ đọc tuân theo Tiêu chuẩn quốc tế này, trong hai tình huống sau đây, phải có thêm các chuỗi thoát khi truyền các mã vạch chứa các dẫn chứng GL I 1: 1. Bộ giải m ã truyền chuỗi thoát GLI 0 hoặc chuỗi thoát ECI 000000 (phụ thuộc vào giao thức truyền được lập trình để sử dụng) sau khi truyền dữ liệu của mã vạch Macro PDF417 trong đó dữ liệu của nó kết thúc trong diễn dịch GLI 1 (ECI 000001). 2. Bộ giải mã truyền GLI 1 (ECI 000001) tại lúc bắt đầu của mỗi trường tùy chọn có độ dài biến đã mã hóa trong phương thức nén văn bản trong khối kiểm soát Macro, nếu dữ liệu đến trước trường đó kết thúc trong diễn dịch GL I 1 (ECI 000001). Yêu cầu này áp dụng khi hoạt động trong phương thức đệm hoặc không đệm, và liệu bộ giải mã có được lập trình để truyền bằng cách sử dụng giao thức ECI hoặc giao thức truyền PDF417 gốc hay không. Phụ lục I (quy định) Kiểm tra chất lượng mã vạch PDF417 Như đã quy định trong điều 5.14.4, chất lượng mã vạch PDF417 được đánh giá theo phương pháp quy định trong ISO/IEC 15415 về việc ước định các mã vạch nhiều hàng với khả năng quét hàng chéo. Nói tóm lại, các mã vạch PDF417 được phân cấp như sau: - Phân tích đồ thị đặc tính phản xạ quét khi quét, chỉ áp dụng cho các dấu hiệu bắt đầu và kết thúc - Lưu lượng từ mã, chỉ áp dụng cho các từ mã dữ liệu và sửa lỗi, trong đó đo tính hiệu quả mà các máy quét một chiều có thể phục hồi dữ liệu từ mã vạch. Lưu lượng từ mã là số các từ mã được giải mã biểu diễn bằng tỉ lệ phần trăm số các từ mã tối đa có thể được giải mã, ví dụ: số cột dữ liệu trong mã vạch nhân với số máy quét “chuẩn" (sau khi điều chỉnh độ nghiêng). - Sửa lỗi chưa sử dụng, chỉ áp dụng cho các từ mã dữ liệu và các từ mã sửa lỗi, trong đó biểu diễn số lỗi và vết xóa như một chức năng của khả năng sửa lỗi của mã vạch. - Chất lượng in từ mã, chỉ áp dụng cho các từ mã dữ liệu và các từ mã sửa lỗi, trong đó cho phép khả năng giải mã, các nhược điểm và tham số điều chế của các đồ thị đặc tính phản xạ quét khi quét bao trùm toàn bộ vùng dữ liệu về mã vạch được phân cấp, sau đó các phân cấp này được thay đổi cho phép sự tác động của sửa lỗi trong tấm chắn ít hơn các thuộc tính của mã vạch mà ảnh hưởng đến chất lượng mã vạch. Dựa trên bản phân tích đồ thị đặc tính phản xạ quét khi quét, các phân cấp dựa trên Lưu lượng Từ mã, Sửa lỗi chưa sử dụng, chất lượng in từ mã và cấp tổng thể của mã vạch phải là thấp nhất, Phụ lục J (quy định) Thuật toán giải mã tham chiếu về PDF417 Phụ lục này mô tả thuật toán giải mã tham chiếu sử dụng trong việc tính khả năng giải mã khi đánh giá chất lượng mã vạch sử dụng phương pháp đã mô tả trong ISO/IEC 15415. Khi đánh giá chất lượng mã vạch qua việc sử dụng thuật toán giải mã tham chiếu này , mã vạch PDF417 được giải mã trong chuỗi các dòng quét chạy qua mã vạch, đi qua ít nhất một kí tự bắt đầu hoặc kết thúc, nhưng không nhất thiết theo từng hàng một. C ần giải mã mã vạch nếu dòng quét đi qua hai hoặc nhiều hàng bằng cách sử dụng số cụm. Việc giải m ã các chuỗi vạch-khoảng trống của kí tự mã vạch đạt được bằng cách sử dụng các phương pháp đo ‘ cạnh - cạnh' (e) Mã vạch PDF417 được mã hóa theo bốn giai đoạn: 1. Khởi tạo - thiết lập ma trận mã vạch. 2. Giải mã dòng sử dụng thuật toán giải mã tham chiếu 3. Hoàn thiện ma trận 4. Giải thích J.1 Kh ở i tạo Số giải mã dòng đầy đủ (xem Phụ lục J.2) được thực hiện tại lúc bắt đầu quá trình giải mã để thiết lập các tham số cấu trúc mã vạch (số hàng r, số cột c) và các mức sửa lỗi. Thông tin này được mã hóa trong các chỉ báo hàng trái và phải, kế tiếp là các ký tự bắt đầu và kết thúc. Sau khi các tham s ố cấu trúc mã vạch được khởi tạo, ma trận được thiết lập phản ánh kích c ỡ (từng hàng, từng cột) của mã vạch được giải mã. Ma trận không bao gồm các ký tự bắt đầu, kết thúc và các chỉ báo hàng. J.2 Thuật toán giải mã tham chiếu về giải mã dòng Dòng quét có khả năng giải mã chứa ít nhất: một vùng trống, kí tự bắt đầu hoặc kết thúc, một chỉ báo hàng và một hoặc nhiều kí tự mã vạch trong miền dữ liệu. Dòng quét có thể đi qua nhiều hàng. Thuật toán chứa các bước giải mã dòng sau đây: 1. Xác nhận sự có mặt của vùng trống. 2. Đối với mỗi chuỗi vạch-khoảng trống của ký tự mã vạch (bao gồm kí tự bắt đầu và kết thúc) tính các phép đo độ rộng sau đây theo Hình J.1: Hình J.1 - Các phép đo giải mã 3. Thay đổi các phép đo e 1 , e 2 , e 3 , e 4 , e 5 và e 6 thành các giá trị chuẩn hóa E 1 , E 2 , E 3 , E 4 , E 5 và E 6 , các giá trị này biểu diễn độ rộng môđun đầy đủ của các phép đo này. Phương pháp sau đây được sử dụng cho giá trị th ử i . nếu 1,5p / 17 ≤ e i <2,5p> 17, thì E i = 2 nếu 2,5p / 17 ≤ e i <3,5p> 17, thì E i = 3 nếu 3,5p / 17 ≤ e i <4,5p> 17, thì E i = 4 nếu 4,5p / 17 ≤ e i <> / 17, thì E i = 5 nếu 5,5p / 17 ≤ e i <6,5p> 17, thì E i = 6 nếu 6,5p / 17 ≤ e i <7,5p> / 17, th ì E i = 7 nếu 7,5p / 17 ≤ e i <8,5p> 17, thì E i = 8 nếu 8,5p / 17 ≤ e i <9,5p> 17, thì E i = 9 Mặt khác chuỗi vạch-khoảng trống của kí tự mã vạch bị lỗi. 4. Sau khi t ì m ra kí tự bắt đầu hoặc kết thúc, thử giải mã chỉ báo hàng, và nhiều kí tự mã vạch cũng như số cột trong ma trận, theo hướng từ kí tự bắt đầu hoặc kết thúc được giải mã. Giải mã các chuỗi vạch-khoảng trống của kí tự mã vạch như bước 5. 5. Tính số cụm kí tự mã vạch K: K = ( E 1 - E 2 + E 5 - E 6 + 9) mod 9 CHÚ THÍCH 1 : Công thức này cho các kết quả giống với phương trình trong điều 4.3.1. Số cụm K bằng 0, 3 hoặc 6; mặt khác kí tự mã vạch và từ mã liên kết của nó bị lỗi. 6. Lấy lại từ mã từ bảng gi ả i mã (Phụ lục A) sử dụng bảy giá trị (giá trị cụm K và các giá trị E 1 , E 2 , E 3 , E 4 , E 5 và E 6 ) như khoá. Các giá trị này có thể được tính toán trực tiếp từ các giá trị chuỗi vạch-khoảng trống được quy định trong Phụ lục A. CHÚ THÍCH 2 : Việc tính toán hoàn toàn sử dụng số cụm để phát hiện tất cả các lỗi giải mã gây ra bởi các lỗi đường biên một môđun phi hệ thống. 7. Trước kia, khi các kí tự bắt đầu và/hoặc kết thúc hợp lệ được thiết lập thì các từ mã về chỉ báo hàng trái và/hoặc chỉ báo hàng phải được sử dụng để thiết lập các tham số cấu trúc mã vạch. Phép nghịch đảo của các phương trình trong điều 5.11.3.1 và 5.11.3.2 được sử dụng để thiết lập: số hàng (F), số các hàng (r), số các cột (c) và mức điều chỉnh lỗi (s). 8. Thực hiện các lần kiểm tra thứ hai khác (gia tốc quét, các kích thước định thời tuyệt đối, các vùng trống v.v.) một cách c ẩ n thận và phù hợp với các đặc tính riêng của thiết b ị đọc. J.3 Lấp đầy ma trận Quy trình sau đây được sử dụng để lấp đầy ma trận hàng (r) bằng cột (c) thiết lập bởi quy trình khởi tạo: 1. Đặt giá trị đầu của bộ đếm vết xóa v bằng r x c 2. Với mỗi tia quét, thử giải mã nhiều từ mã cũng như số cột của ma trận. 3. Các kết quả giải mã hợp lệ được đặt trong ma trận tại các vị trí thích hợp của chúng được xác định bởi số hàng (từ các chỉ báo hàng) và giá trị cụm. Nếu hàng chéo xuất hiện thì dòng quét sẽ có số hàng khác nhau được biểu thị bởi các chỉ báo hàng trái v à phải. Số cụm được sử dụng để tự thêm vào số hàng chính xác cho mỗi từ mã hợp lệ riêng lẻ. VÍ DỤ: Một tia quét có các ký tự bắt đầu và kết thúc hợp lệ và có các chỉ báo hàng trái với số hàng 7 và chỉ báo hàng phải với số hàng 10. Có 10 cột trong ma trận. Dòng quét không giải mã ba t ừ mã bởi v ì nó không giữ lại toàn bộ từ mã trong một hàng để chuyển hết, tuy nhiên vị trí của các từ m ã ‘ thiếu' này được biết từ các bộ đếm thời phần tử. Hình J.2 - Biểu diễn bằng lược đồ các hàng chéo của dòng quét Các cụm là: ẩn số, 6, 6, 6, ẩ n số, 0, 0, ẩn số, 3, 3. Sử dụng ma trận ký hiệu r (hàng), c (cột), các từ mã được lấp đầy trong các vị trí: ẩ n số, (8, 2), (8, 3), (8, 4), ẩn số, (9, 6), (9, 7), ẩn số , (10, 9), và (10, 10) CHÚ THÍCH : Trong ví dụ này ta thấy dòng quét đi qua bốn hàng, kết quả là giải mã thành công 70 % từ mã. 4. Khi ma trận được lấp đầy thì bộ đếm vết xóa v giảm đi một đối với mỗi từ mã hợp lệ. 5. Nếu mức sửa lỗi khác 0 thì việc khôi phục lỗi có thể được thử nghiệm khi số từ mã không xác định (bộ đếm vết xóa v) thoả mãn các phương trình trong điều 5.7.2 (với v = I và f = 0). Nếu việc khôi phục lỗi thất bại thì sẽ có nhiều từ mã hơn được thu thập. 6. Nếu mức sửa lỗi bằng 0 thì công nhận hai từ mã sửa lỗi. Để biết thêm chi tiết về việc sửa và phát hiện lỗi, xem trong Phụ lục K. J.4 Diễn dịch Bắt đầu từ trạng thái ban đầu của phương thức con Alpha của phương thức nén văn bản, các từ mã dữ liệu được diễn dịch theo các phương thức nén. Phụ lục K (quy định) Quy trình điều chỉnh lỗi Khi toàn bộ số từ mã không xác định v ít hơn hoặc bằng giá trị I trong phương trình thích hợp ở điều 5.7.2, trong đó f = 0, thì lược đồ khôi phục có thể được gọi ra. Các từ mã không xác định được thay thế bởi các số 0 và vị trí của từ mã không xác định thứ l l à j i với I = 1, 2, …v . Xây dựng đa thức ký tự mã vạch như sau: C (x) = C n-1 x n-1 + C n-2 x n-2 + …+C 1 x 1 + C 0 trong đó: các hệ số n lọc là bộ đọc các từ mã, với C n-1 là từ mã đầu tiên n = tổng số từ mã Tính các giá trị syndrome k (S 1 đến S k ) bằng: C(x) tại x = 3 i với i = 1 đến i = k trong đó k = số kí tự sửa lỗi trong mã vạch = 2 s+ 1 Mạch tạo các syndrome được biểu diễn trong Hình K.1 Khi các vị trí của các từ mã không xác định trong ma trận mã vạch được biết từ j l với l = 1, 2,... v , đa thức định v ị lỗi về các vị trí xác định có thể được tính : s (x) = (1 - b 1 x) (1 - b 2 x)…(1 - b v x) = 1 x s 1 x + … + s v x v trong đó: b l = 3 jl Đa thức định vị lỗi, s (x) , có thể được cập nhật để bao trùm vị trí các lỗi. Điều này được thực hiện bằng cách sử dụng thuật toán Berlekamp-Massey. Xem thư mục về văn bản gốc. Tại vị trí này xác nhận rằng số lỗi và vết xóa thoả mãn phương trình về khả năng sửa lỗi phù hợp trong điều 5.7.2. s (x) = 0 cho biết vị trí các lỗi t , trong đó t ≥ 0, nếu t = 0 thì không có lỗi . C ần tính giá trị lỗi, e jl , với vị trí j l , l = 1 ,…v + t . Để tính các giá trị lỗi một đa thức phụ, đa thức Z được xác định như sau: Z ( x) = 1 + (s 1 + s 1 )x + (s 2 + s 1 s 1 + s 2 )x 2 +...+ (s h + s 1 s h -1 + s 2 s h -2 + s h )x h trong đó: h = v + t Giá trị lỗi tại vị trí j i là: Sau khi giải quyết thành công các giá trị lỗi, phần bù của các giá trị lỗi được bổ sung vào các từ mã tại các vị trí tương ứng. Phụ lục L (quy định) Số phân định mã vạch Phương pháp đồng nhất quy định trong trong ISO/IEC 15424 được sử dụng để báo cáo việc đọc mã vạch, các lựa chọn trong bộ đọc và các đặc tính đặc biệt của mã vạch gặp phải. Số phân định mã vạch về PDF417 là: ] Lm Trong đó: ] là kí tự cờ hiệu của số phân định mã vạch (ASCII 93) L là số phân định mã vạch về PDF417 m là kí tự thay đổi với một trong nhiều giá trị nêu trong Bảng L.1. Bảng L.1 - Các giá trị thay đổi của số phân định mã vạch về PDF417 m Lựa chọn 0 Bộ đọc phù hợp với giao thức nêu trong các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) và AIM Châu Âu (1994) (xem Phụ lục M). a 1 Bộ đọc theo sau giao thức về Diễn dịch Kênh Mở rộng của tiêu chuẩn này (xem 5.17.2). Tất cả các ký tự dữ liệu 92 được nhân đôi. 2 Bộ đọc theo sau giao thức về Điều hành Kênh cơ sở của tiêu chuẩn này (4.17.1). Ký tự dữ liệu 92 không được nhân đôi. b a Khi lựa chọn này được truyền, người nhận không thể xác định liệu các ECI có được gọi ra hay không, hoặc liệu byte dữ liệu 92 có được nhân đôi trong khi truyền hay không. b Khi các bộ giải mã được lập trong phương thức này, thì các mã vạch Macro PDF417 không đệm và các mã vạch yêu cầu bộ giải mã để truyền các chuỗi thoát ECI không được truyền Thông tin này không được mã hóa trong mã vạch, nhưng được tạo ra bởi bộ giải mã sau khi giải mã và được truyền như một lời mở đầu cho gói tin dữ liệu. Phụ lục M (quy định) Giao thức truyền về bộ giải mã tuân theo các tiêu chuẩn PDF417 gốc Các yêu cầu kĩ thuật về mã vạch PDF417 trước đây hỗ trợ: Phương thức Kênh Cơ sở, số phân định Nhãn Chung (tiền thân của Diễn dịch Kênh M ở rộng độc lập với mã vạch) và Macro PDF417 (không hợp nhất hoàn toàn với giao thức ECI). Phụ lục này: - Xác định giao thức truyền phù hợp với yêu cầu kỹ thuật gốc mà có thể vẫn được sử dụng. - Đề cập đến các vấn đề về sự tương thích. M.1 Phương thức kênh cơ sở Trong Kênh cơ sở, tất cả các kí tự dữ liệu mã vạch được dịch theo các phương thức nén hiện hành, và được bao hàm trong phép truyền dữ liệu như chuỗi các byte 8 bít. Các ký tự bắt đầu và kết thúc, các chỉ b á o hàng, Mô tả độ dài mã vạch, các từ mã chuyển phương thức và các từ mã sửa lỗi không được truyền. CHÚ THÍCH : Điều này giống với quy trình trong 5.17.1. Các bộ giải mã gốc đưa ra số phân định mã vạch ] L0, hoặc có thể không truyền tựa đề của số phân định mã vạch. M.2 Mã vạch mã hóa GLI Chỉ có GLI 0 và GLI 1 được quy định trước, nhưng việc truyền tất cả chuỗi thoát GLI/ECI được hỗ tr ợ bởi giao thức gốc. Ba từ mã (925, 926 và 927) báo hiệu việc mã hóa giá trị GLI và được giải mã như các giá trị byte như sau: 1. Nếu chuỗi GLI bắt đầu với từ mã 927: a. Từ mã 927 được truyền là chuỗi thoát 4 byte 92, 57, 50, 55, biểu diễn ‘ \927' trong diễn dịch ASCII. b. Từ mã tiếp theo biểu diễn số GLI trong dãy 000 đến 899. Từ mã được chuyển thành giá trị 3 chữ số. Giá trị 3 chữ số được truyền như các giá trị byte thích hợp (48 đến 57), đi trước là byte 92. V Í DỤ: Mã hóa mã vạch: [ 927 ] [ 001 ] Truyền dữ liệu (byte): 92, 57, 50, 55, 92, 48, 48, 49 Diễn dịch ASCII: \927\001 2. Nếu chuỗi GLI bắt đầu với từ mã 926: a. Từ mã 926 được truyền là chuỗi thoát 4 byte 92, 57, 50, 54, biểu diễn ‘ \926’ trong diễn dịch ASCII b. Hai từ mã tiếp theo (các từ mã từ 000 đến 899 được chấp nhận) biểu diễn số ECI như sau: Từ mã 1 = ECI_no div 900-1 Từ mã 2 = ECI_no mod 900 Mỗi từ mã được chuyển thành giá trị 3 chữ số. Giá trị 3 chữ số được truyền như các giá trị byte thích hợp (48 đến 57), đi trước là byte 92. VÍ DỤ : Mã vạch mã hóa: [ 926 ] [ 136 ] [ 156 ] Truyền dữ liệu (byte): 92, 57, 50, 54, 92, 49, 51, 54, 92, 49, 53 , 54 Diễn dịch ASCII: \926\136\156 3. Nếu chuỗi GLI bắt đầu với từ mã 925: a. Từ mã 925 được truyền như chuỗi thoát 4 byte 92, 57, 50, 53, biểu diễn ‘\ 925’ trong dịch ASCII. b. Từ mã tiếp theo biểu diễn số người sử dụng x ác định GLI không có 810 900 (bất kì từ mã từ 000 đến 899 được chấp nhận). Từ mã này được chuyển thành giá trị 3 chữ số. Giá trị 3 chữ số được truyền như các giá trị byte phù hợp (48 đến 57), đi trước là byte 92. VÍ DỤ: Mã vạch mã hóa: [ 925 ] [ 456 ] Truyền dữ liệu (byte): 92, 57, 50, 53, 92, 52, 53, 54 Diễn dịch ASCII: \925\456 Quy trình được nhắc lại với mỗi lần GLI xuất hiện. CHÚ THÍCH 1 : Minh họa các v í dụ ECI tương tự, nhưng sử dụng giao thức ECI được quy định trong điều 5.17.2. Nếu dấu gạch chéo ngược hoặc ký tự khác biểu diễn bởi byte 92 cần được sử dụng như dữ liệu mã hóa, thì việc truyền sẽ là như sau. Bất cứ khi nào byte 92 xuất hiện như dữ liệu, th ì hai byte của dữ liệu đó phải được truyền; do đó lần xuất hiện đơn luôn là một kí tự thoát và lần xuất hiện kép cho biết dữ liệu thực. VÍ DỤ: Dữ liệu mã hóa: A\\B\C Sự truyền: A\\\\B\\C Kí tự thoát mặc định có thể được thay đổi trong bộ giải mã (trong trường hợp hệ thống nhận phải được định hình để phù hợp), nhưng các giá trị byte từ 47 đến 58 (được diễn dịch như các chữ số) không được sử dụng. CHÚ THÍCH 2 : Trong giao thức ECI (xem 5.17.2) kí tự thoát được ấn định tại byte 92. Như một lựa chọn, các bộ giải mã có thể có phương thức hoạt động ở đó không kí tự thoát nào được xác định, các bộ đọc như vậy không thể truyền các chuỗi thoát hoặc nhân đôi các kí tự dữ liệu. Do đó, phương thức này không thể hỗ trợ việc truyền các chuỗi thoát ECI, hoặc các Khối Kiểm soát Macro PDF417. M.3 Mã vạch Macro PDF417 Khi hoạt động theo giao thức truyền PDF417 gốc, khi bộ giải mã PDF417 xử lý mã vạch Macro PDF417 với tệp ID cho trước, nó phải giải mã và truyền tất cả mã vạch cho tệp ID đó trước khi có thể truyền các mã vạch khác. Yêu cầu n à y áp dụng cho các phương thức truyền sau đây. M.3.1 Truyền trong phương thức đệm Hệ thống truyền đệm yêu cầu bộ giải mã thu thập toàn bộ bộ mã vạch trước giao thức truyền của nó. Việc xử lý các trường bắt buộc của Khối Kiểm soát Macro được xử lý bên trong. Việc truyền các trường tùy chọn có thể được kích hoạt hoặc không kích hoạt riêng lẻ trong bộ giải mã. Các trường tùy chọn, nếu có, phải được truyền một lần tại phần cuối của toàn bộ bộ dữ liệu. Mỗi trường bắt đầu với việc truyền chuỗi th ẻ về trường tùy chọn của Macro PDF417 tương ứng. Chuỗi thẻ bao gồm từ mã 923 được theo sau bởi giá trị thẻ được nêu trong Bảng H.1; chuỗi này được truyền bằng cách sử dụng ký tự thoát như trong Phụ lục M.2. Nội dung giải mã mức cao của trường được truyền sau chuỗi thẻ này. M.3.2 Truyền trong phương thức không đệm Hệ thống truyền không đệm cho phép bộ giải mã truyền các mã vạch riêng lẻ khi chúng được giải mã. Khi sử dụng lược đồ không đệm, việc truyền Tiêu đề Kiểm soát Macro PDF417 phải được kích hoạt, bởi vì các mã vạch trong lược đồ không đệm không được bộ đọc đặt ở bên trong. Điều này cho phép hệ thống máy ch ủ áp đặt thứ tự chính xác trên dữ liệu nhận. Việc truyền Tiêu đề Kiểm soát Macro PDF417 có thể được kích hoạt hoặc không được kích hoạt. Tiêu đề Kiểm soát Macro PDF417 là một phần của Khối Kiểm soát Macro PDF417 (xem Hình H.1), bao gồm từ mã đánh dấu 928, C hỉ số Đoạn (trong phương thức nén số), và chuỗi từ mã Tệp ID. Khi việc truyền Tiêu đề Kiểm soát được kích hoạt, từ mã đánh dấu và các từ mã Tệp ID phải được truyền bằng cách sử dụng ký tự thoát như đã đề cập trong Phụ lục M.2. Ví dụ, Tiêu đề Kiểm soát Macro PDF417 của mã vạch đầu tiên, Chỉ số Đoạn = 0, với Tệp ID (100, 200, 300) được mã hóa trong mã vạch như chuỗi từ mã: [ 928 ] [ 111 ] [ 100 ] [ 100 ] [ 200 ] [ 300 ] và (giả sử rằng ký tự thoát mặc định 92) được truyền như: Truyền dữ liệu (byte): 92, 57, 50, 56, 48, 48, 48 , 48 , 48, 92, 49, 48, 48, 92, 50, 48, 48, 92, 51, 48, 48 Diễn dịch ASCII: \92800000\100\200\300 Nếu được kích hoạt, Tiêu đề Kiểm soát Macro PDF417 được truyền sau dữ liệu mã hóa trong mã vạch. Khi chuỗi GLI cuối cùng được truyền bởi bộ đọc trừ GLI 0, thì dữ liệu đã truyền từ đoạn đó được kết thúc với chuỗi byte: 92, 57, 50, 55, 92, 48, 48, 48 (ASCII tương đương: \927\000) giống như dữ liệu của mã vạch kết thúc với chuỗi các từ mã [927] [000]. Điều này quay về diễn dịch của khối tiếp theo trở lại GLI 0. Việc truyền các trường tùy chọn có thể được kích hoạt hoặc không được kích hoạt riêng lẻ trong bộ giải mã. Các trường tùy chọn đã kích hoạt được truyền với mỗi mã vạch Macro PDF417 ở đó chúng được mã hóa. Mỗi trường bắt đầu với việc truyền chuỗi thẻ về trường tùy chọn của Macro PDF417 tương ứng. Chuỗi thẻ bao gồm từ mã 923 được theo sau bởi giá trị thẻ như đã nêu trong Bảng 2; chuỗi này phải được truyền bằng cách sử dụng kí tự thoát như quy định trong Phụ lục M.2. Nội dung giải mã mức cao của trường được truyền sau chuỗi thẻ này. Dựa trên việc truyền dòng dữ liệu đã mã hóa, thật khó để xác định giới hạn tồn tại giữa phần cuối Khối Kiểm soát Macro (đặc biệt nếu chứa các trường tùy chọn) và phần đầu nội dung dữ liệu của m ã vạch tiếp theo. Giao thức truyền của hệ thống n à y (ví dụ: sử dụng các ký tự thoát của phép truyền thường STX và ETX hoặc các quy trình ‘ hand shaking’ khác) có thể được sử dụng để xác định các giới hạn giữa các mã vạch Macro PDF417 đã truyền. Để tạo điều kiện cho việc kiểm tra tất cả các mã vạch trong bộ Macro PDF417 được nhận trong hoạt động không đệm, trường Đếm Đoạn tùy chọn phải được sử dụng bất cứ khi nào có thể như một phần của Khối Kiểm soát Macro đã mã hóa. M.4 Truyền các từ mã dự trữ s ử dụng giao thức PDF417 gốc Khi hoạt động theo giao thức truyền PDF417 gốc, các bộ giải mã phải truyền từ mã dự trữ như kí tự thoát (mặc định 92) được theo sau bởi ba số, ba số này biểu diễn giá trị thập phân của từ mã dự trữ. Các từ mã dữ liệu theo sau từ mã dự trữ được diễn dịch và truyền theo phương thức nén hiện hành trước từ mã dự trữ. Cụ thể là, diễn dịch sẽ là từ mã dự trữ chèn từ mã latch vào phương thức nén hiện hành. Một latch như vậy, khi trong phương thức nén số hoặc Byte, khởi tạo lại nhóm các từ mã mới. Nếu phương thức phổ biến là nén văn bản thì kết quả là khởi tạo lại phương thức con của phương thức nén văn bản. Trong khi giao thức này có thể truyền hợp thức cú pháp gói tin của từ mã dự trữ mà định nghĩa trong tương lai của nó cung cấp một chức năng báo hiệu, n ó không cung cấp kết quả rõ ràng cho phương thức nén mới. Do đó, khi sử dụng giao thức truyền PDF417 gốc, bộ nhận phải xóa mọi dữ liệu theo sau chuỗi thoát biểu diễn từ mã của phương thức nén mới xác định. M.5 Việc đạt được tính tương thích giữa thiết bị PDF417 cũ và mới M.5.1 Bộ mã hóa Phần giới thiệu về các Diễn dịch Kênh Mở rộng độc lập với mã vạch muốn nói rằng cần phân chia các chức năng của mã hóa ECI từ m ã hóa mã vạch. Trên thực tế, về bản chất mã hóa GLI được kết nối với mã vạch PDF417. Dòng từ mã mã hóa là tương đương nhau, liệu mã vạch có được mã hóa trên các bộ mã hóa mới hoặc hiện có hay không. Nó có khả năng mã hóa, ví dụ, dữ liệu phù hợp với diễn dịch ECI 000123 (mà bản thân nó không được xác định ở ngày công bố tiêu chuẩn này) theo bộ mã hóa GLI đặc thù của PDF417 hoặc trên bộ mã hóa ECI độc lập với mã vạch cấp đầu tiên theo sau đó là bộ mã hóa mã vạch PDF417 cấp thứ hai. Có hai quy định: - return-to-GLI 0 logic chỉ áp dụng cho GLI 0 (ECI 000000) và GLI 1 (ECI 000001). - GLI 0 và 1 không được kết hợp với các ECI khác trong cùng một mã vạch, hoặc bộ Macro PDF417. M.5.2 Bộ giải mã Giải pháp cho tính liên tác giữa các bộ giải mã PDF417 giao thức mới và gốc là việc truyền tiền tố của số phân định mã vạch bất cứ khi nào bộ giải mã được định hình cho hoạt động mới của phương thức kênh mở rộng, và sử dụng theo yêu cầu tiền tố đó bất cứ khi nào thiết bị PDF417 mới hoặc cũ được kết hợp tại cùng lúc cài đặt. Một bộ giải mã kích hoạt hoạt động của phương thức kênh mở rộng (thậm chí nếu đọc lẫn các mã vạch của phương thức kênh mở rộng và phương thức kênh cơ sở) sẽ gửi số phân định mã vạch với mỗi phép truyền. CHÚ THÍCH : Các yêu cầu kĩ thuật về PDF417 của AIM Mỹ (1994) gốc và AIM Châu Âu (1994) không yêu cầu việc sử dụng số ph â n định mã vạch, thậm chí khi nhân đôi ký tự thoát (mặc định là 92). Phù hợp với giao thức ECI như đã quy định trong tiêu chuẩn này, yêu cầu sử dụng số phân định mã vạch. Các bộ giải mã tuân theo một trong các điều kiện sau đây: A Ph ù hợp hoàn toàn với giao thức ECI và tiêu chuẩn này: 1. Truyền số phân định mã vạch thích hợp. 2. Khả năng được đặt hoặc chuyển đến phương thức kênh cơ sở hoặc hoạt động phương thức kênh mở rộng. 3. Truyền giao thức ECI như đã quy định trong tiêu chuẩn này (xem 5.17.2). 4. Xử lý Macro PDF417 như đã quy định trong tiêu chuẩn này. B Ph ù hợp với các tiêu chuẩn năm 1994: B.1 Phối hợp với thiết b ị mới, và các mã vạch đã mã hóa của ECI 1. Truyền số phân định mã vạch ‘]L 0’. 2. Khả năng được đặt hoặc chuyển đến phương thức kênh cơ sở hoặc hoạt động phương thức kênh mở rộng. 3. Truyền giao thức GLI như đã quy định trong M.2 4. Xử lý Macro PDF417 như đã quy định trong M.3. B.2 Nhưng không phối hợp với thiết bị mới, và các mã vạch đã mã hóa của ECI. 1. Không truyền số phân định mã vạch. 2. Khả năng được đặt hoặc chuyển đến phương thức kênh cơ sở hoặc hoạt động phương thức kênh mở rộng. 3. Truyền giao thức GLI như đã quy định trong M.2 4. Xử lý Macro PDF417 như đã quy định trong M.3. C Ch ỉ phù hợp với phương thức k ênh cơ sở : 1. Truyền số phân định mã vạch ‘] L0’ (thiết bị cũ) hoặc ‘] L2 (thiết bị mới), hoặc không truyền số phân định mã vạch. 2. Xem các mã vạch chứa các từ mã ECI là không hợp lệ. 3. Xem các mã vạch Macro PDF417 là không hợp lệ, nếu bộ đọc không hoạt động trong phương thức đệm, và việc truyền tiêu đề kiểm soát Macro không được kích hoạt. Giả sử rằng thiết bị được thiết lập một cách hợp thức như ở trên, điều này giúp cho bộ nhận có khả năng phát hiện và tác dụng trở lại một cách hợp thức với các điều kiện sau đây: 1. Nếu số phân định mã vạch ‘] L1’ có mặt tại lúc bắt đầu truyền: Trong trường hợp này, bộ nhận có thể đảm bảo rằng bộ giải mã đang hoạt động trong Phương thức Kênh Mở rộng về mã vạch đã quét. Do đó tất cả byte 92, khi xuất hiện như dữ liệu, đã được nhân đôi liệu mã vạch có chứa các ECI hoặc một phần của bộ Macro PDF417 hay không . S ố lần xuất hiện đơn của byte 92 cho biết sự bắt đầu của chuỗi thoát. Tất cả các đặc tính khác đều phù hợp với tiêu chuẩn này. 2. Nếu số phân định mã vạch ‘] L2’ có mặt tại lúc bắt đầu truyền: Trong trường hợp này, bộ nhận có thể đảm bảo rằng bộ giải mã đang hoạt động trong phương thức kênh cơ sở về mã vạch đã quét. Do đó, byte 92 luôn biểu diễn byte dữ liệu đơn. Các mã vạch với các chuỗi thoát ECI được xem là không hợp lệ. Các mã vạch Macro PDF417 được xem là không hợp lệ, nếu bộ đọc được định hình cho phương thức đệm, và được định hình để không truyền các tiêu đề k i ểm soát Macro PDF417. 3. Nếu số phân đ ị nh mã vạch ‘] L0’ có mặt tại lúc bắt đầu truyền, chỉ r õ phiên bản PDF417 năm 1994: Đây là trường hợp ngoại lệ do các yêu cầu kỹ thuật về PDF417 của AIM Mỹ (1994) gốc và AIM Châu Âu (1994), mặc dù nó không cung cấp phương thức kênh mở rộng hỗ trợ, xác định ‘ 0’ (ví dụ: ‘ không có bộ các lựa chọn’) như giá trị tùy chọn về số phân định mã vạch PDF417. Do đó, thiết bị PDF417 hiện c ó , nếu phù hợp hoàn toàn với các yêu cầu kĩ thuật về PDF417 của AIM Mỹ (1994) gốc và AIM Châu Âu (1994) thì sẽ không sử dụng các giá trị tùy chọn mới cho biết phương thức kênh mở rộng hay phương thức kênh cơ sở đang có hiệu l ực. Do đó, nếu bộ nhận thấy ‘] L0’ thì nó phải tuân theo tiêu chuẩn 1994 về PDF417. Cụ thể là: ● Bộ nhận không thể phân biệt từ việc truyền liệu bộ giải mã là trong phương thức kênh mở rộng (luôn nhân đôi byte được gán là ký tự thoát như Phụ lục M.2) hay phương thức kênh cơ sở (không nhân đôi bất kỳ byte nào), bộ giải mã phải được định hình để phù hợp với bộ nhận. ● Nếu bộ giải mã được đặt lên phương thức kênh mở rộng và nếu các ECI không được mã hóa trong mã vạch, thì bộ giải mã sẽ truyền các chuỗi thoát GLI của loại PDF417 năm 1994 (Phụ lục M.2) hơn là chuỗi thoát ECI như đã quy định trong điều 5.17.2. ● Việc sử dụng giao thức gốc, nếu khối kiểm soát Macro có mặt, thì các nội dung của khối kiểm soát Macro sẽ theo sau, hơn là đứng trước, các byte dữ liệu trong mã vạch. 4. Nếu số phân định mã vạch không có mặt tại lúc bắt đầu truyền: Trong trường hợp này: a. Bộ giải mã được định hình hợp thức để hỗ trợ riêng cho các mã vạch của phương thức kênh cơ sở . Hệ thống nhận được đảm bảo rằng không có giá trị byte nào được nhân đôi bởi bộ giải mã và mọi ECI rõ ràng trong dòng dữ liệu là các liên kết kí tự ngẫu nhiên. Hoặc b. Bộ giải mã được định hình không đúng cách cho tính liên tác tr o ng hệ thống mở ở đó các mã vạch đã được mã hóa của ECI có thể bị bắt gặp. Phụ lục N (tham khảo) Thuật toán giảm thi ể u số từ mã Cùng một dữ liệu có thể được biểu diễn bởi các chuỗi từ mã PDF417 khác nhau thông qua việc sử dụng các quy trình chuyển và các phương thức nén khác nhau. Tuy không có quy trình được quy định nhưng thuật toán sau đây sẽ giúp giảm thiểu số từ mã được yêu cầu: 1. Gọi đ i ểm P là điểm đầu của dòng dữ liệu 2. Đặt phương thức mã hóa hiện hành cho phương thức nén văn bản 3. Gọi N là số các chữ số liên tiếp bắt đầu tại P 4. Nếu N ≥ 13 thì 5. Phương thức latch thành phương thức nén số 6. Mã hóa các ký tự N sử dụng phương thức nén số 7. Tăng P bởi N 8. Đi tới bước 3 9. Ngược lại nếu N < 13=""> ì 10. Gọi T là độ dài chuỗi kí tự của phương thức nén văn bản bắt đầu tại P . Chuỗi được kết thúc khi kí tự từ một phương thức trừ phương thức nén văn bản được phát hiện hoặc chuỗi số ≥ 13 chữ số được phát hiện. 11. Nếu T ≥ 5 thì 12. Latch chuyển thành phương thức nén văn bản 13. Mã hóa các ký tự T sử dụng phương thức nén văn bản 14. Tăng P bởi T 15. Đi tới bước 3 16. Ngược lại nếu T < 5=""> 17. Gọi B là độ dài chuỗi mã hóa nhị phân bắt đầu tại P . Chuỗi được kết thúc khi chuỗi nén văn bản có độ dài ≥ 5 hoặc chuỗi số có độ dài ≥ 13 được tìm thấy 18. Nếu B = 1 VÀ phương thức hiện hành là phương thức nén văn bản, thì 19. Shift chuyển thành phương thức nén byte 20. Mã hóa giá trị byte đơn sử dụng phương thức nén byte 21. Tăng P bởi B 22. Đi tới bước 3 23. Ngược lại 24. Latch chuyển thành phương thức nén byte 25. Mã hóa các byte B sử dụng phương thức nén byte 26. Tăng P bởi B 27. Đi tới bước 3 Phụ lục O (tham khảo) Hướng dẫn xác định ma trận mã vạch O .1 Các tham số ảnh hưởng đến việc xác định ma trận Số các tham số được sử dụng trước khi in để xác định ma trận mã vạch dưới dạng số hàng (r) và cột (c). Mỗi tham số đề cập đến một nét riêng, trong đó quy định ma trận mã vạch. Trong các phương trình mà theo sau A, c, k, n, Q H , Q v , r, X và Y phù hợp với các định nghĩa trong 4.1. Các phương trình có thể được sử dụng theo cách riêng của chúng để xây dựng nhiều thuật toán phức tạp hơn. - Tham số 1: S ố các hàng: r 3 ≤ r ≤ 90 (xem 5.2.1) - Tham số 2: S ố các cột: c 1 ≤ c ≤ 30 (xem 5.2.2) - Tham số 3: kích thước X Xác định bởi yêu cầu kỹ thuật cho ứng dụng (xem 5.8.1) - Tham số 4: kích thước Y Y ≥ 3X (xem 5.8.2) - Tham số 5: Vùng trống ngang: QH Q H ≥ 2X (xem 5.8.3) - Tham số 6: Vùng trống đứng: QV Q v ≥ 2X (xem 5.8.3) - Tham số 7: Độ rộng sẵn có cho mã vạch, W W ≥ (17c + 69) + 2Q H CHÚ THÍCH 1 : Tham số này có thể được giới hạn bởi trường quét của độ rộng nhãn hoặc hình v ẽ . - Tham số 8: Độ cao mã vạch, H H ≥ Y r + 2 Q V CHÚ THÍCH 2 : Tham số này có thể được giới hạn bởi trường quét của độ rộng nhãn hoặc hình vẽ. - Tham số 9: Các tham số ma trận (n + k) = (c * r) <> - Tham số 10: Tỉ lệ phương diện mã vạch: A Trước khi kích cỡ mã vạch có thể được xác định, số các từ mã dữ liệu và các từ mã sửa lỗi phải được tính toán. Bước tiếp theo phụ thuộc vào các tham số được quy định bởi ứng dụng. Khi các yêu cầu của ứng dụng quy định tỉ lệ phương diện mã vạch tổng thể thì điều tiếp theo của phần này đưa ra hướng dẫn về việc tính toán số cột của miền dữ liệu cần thiết để tạo ra một mã vạch với tỉ lệ đó. Nếu ứng dụng quy định độ cao hoặc độ rộng cho phép của mã vạch (hoặc cả hai), thì sẽ sử dụng các tính toán đơn giản hơn. Phần 1 chỉ ra thuật toán đơn giản mà có thể được sử dụng khi độ rộng mã vạch được quy định. - Khi toàn bộ độ rộng W (bao gồm các vùng trống) được quy định, thì số cột dữ liệu có thể được tính toán từ phương trình của tham số 7 (làm tròn đến số nguyên dương gần nhất) của các cột. S ố hàng được bắt nguồn từ tổng số các từ mã: (n + k) = (c * r). - Tỉ lệ phương diện mã vạch A là độ cao đến độ rộng của mã vạch bao gồm các vùng trống. Đ ể đạt được giá trị A, phương trình sau đây có thể được giải, với số cột (c). Giả sử rằng các vùng trống được biểu diễn dưới dạng X nhưng phương trình có thể được sử dụng trong tất cả các trường hợp để tạo ra phép tính xấp x ỉ hoàn hảo nhất của số cột (c). trong đó: A, c, H, Q v , r, W, X và Y được quy định trong Điều 4 Q v = 2X Số cột có thể được biểu diễn là: r = trong đó: n và k được quy định trong Điều 4 Phương trình được trình bày lại như sau: Do đó: Phương trình này có thể được biểu diễn như sau: 1 7 Ac 2 + (73A - 4)c - [ (n + k)Y/X ] = 0 Thay thế x bằng c ta được phương trình bậc hai có dạng: ax 2 + bx + c = 0 Giải phương trình bậc hai ta có: x = Thay thế các giá trị tham số của PDF417, gi ải phương trình bậc hai (không tính giá trị âm), ta có: Giá trị n phụ thuộc vào số từ mã đệm và điều này chưa được biết đến khi các tham số ma trận được xác định. Tuy nhiên, số từ mã nguồn được xác định. Khi m + 1 ≤ n thì có thể được thay thế trong phương trình trên như sau: Giải giá trị dương của c không được kết quả là một số nguyên dương. Giá trị nguyên dương gần nhất của c cho giá trị tốt nhất của số cột để đạt được tỉ lệ phương diện. Số hàng là: r = IN T[ (m + 1 + k) / c ] + 1 Nếu (c * r) ≥ m + 1 + k + c thì r = r - 1 Khi (c * r) = (n + k), thì số từ mã đệm là ( n + k) - (m + 1 + k) VÍ DỤ : Để đạt được tỉ lệ phương diện A = 0,5 cho mã vạch PDF417 trong đó m + 1 + k = 277, X = 0,33 mm và Y = 1,00 mm Số từ mã đệm yêu cầu là: (c * r) - (m + 1 + k) 280 - 277 = 3 Mã vạch này có 35 hàng và 8 cột, và đo 36,32 mm độ cao trên 68,97 mm độ rộng được tỉ lệ phương diện thực tế là 0,527. O. 2 Hướng dẫn cho mọi tham số không đạt được Nếu mã vạch không phù hợp với kích c ỡ nhãn: k) giảm nội dung dữ liệu, nếu có thể. I) tăng kích cỡ nhãn trong một hoặc cả hai kích thước m) giảm mức điều chỉnh lỗi n) giảm kích thước X hoặc độ cao môđun (Y) Phụ lục P (tham khảo) Tính các hệ số để tạo các từ mã sửa lỗi - ví dụ đã xử lý Đa thức tạo sau đây được sử dụng để tính các hệ số cho mỗi mức độ điều chỉnh lỗi: g k (x) = (x - 3) (x - 3 2 ) (x - 3 3 ) ... (x - 3 k ) = a 0 + a 1 x + a 1 x 2 + … a k-1 x k-1 + x k trong đó: g k (x) = đa thức tạo k = tổng số từ mã sửa lỗi a j = hệ số lũy thừa x được sinh ra bởi đa thức tạo g k (x) Đầu tiên, mở rộng phương trình ở trên. Tiếp theo, tính phần bù của hệ số từ công thức nêu trên Với a j = a 0 .... a k-1 BEGIN a j = a j mod 929 END VÍ DỤ Tính các hệ số đa thức tạo về sửa lỗi mức 1 s = 1 sửa lỗi mức 1 k = 2 s+ 1 = 4 (số từ mã sửa lỗi) g 4 (x) = (x - 3)(x - 3 2 ) (x-3 3 ) (x-3 4 ) = 59 049 - 29 160x + 3 510x 2 - 120x 3 + x 4 a 0 = 59 049 mod 929 = 522 a 1 = - 29 160 mod 929 = 568 a 2 = 3 510 mod 929 = 723 a 3 = - 120 mod 929 = 809 CHÚ THÍCH : Phụ lục F chứa tất cả các giá trị hệ số cần để mã hóa mã vạch PDF417 của mọi mức sửa lỗi. Phụ lục Q (tham khảo) Tạo các từ mã sửa lỗi - ví dụ đã xử lý Thuật toán trong điều 5.10 được sử để tạo các từ mã sửa lỗi (kí hiệu sử dụng trong ví dụ dưới đây giống với ví dụ trong điều 5.10) VÍ DỤ: Dữ liệu PDF417 được biểu diễn bằng các từ mã 5, 453, 178, 121, 239, đi trước là bộ Mô tả Độ dài Mã vạch. Không có các từ mã đệm nào. Thì: n = 5 (số từ mã bao gồm bộ mô tả độ dài mã vạch) d 4 = 5 d 3 = 453 d 2 = 178 d 1 = 121 d 0 = 239 Lựa chọn sửa lỗi mức 1: s = 1 k = 2 1+1 = 4 a 0 ,….., a 3 = 522, 568, 723, 809 CHÚ THÍCH : Đây là một ví dụ đơn giản, ch ỉ có 5 từ mã dữ liệu và 4 từ mã sửa lỗi. Tuy nhiên, n ó minh họa toàn bộ quá trình mở rộng làm tăng số từ mã dữ liệu và số từ mã sửa lỗi. Các phép toán là: Bắt đầu E 0 ,... E 3 đến 0 t 1 = ( d 4 + E 3 ) mod 929 = (5+0) mod 929 = 5 t 2 = ( t 1 x a 3 ) mod 929 = (5 x 809) mod 929 = 329 t 3 = 929 - t 2 = 929 - 329 = 600 E 3 = (E 2 + t 3 ) mod 929 = (0+600) mod 929 = 600 t 2 = (t 1 x a 2 ) mod 929 = (5 x 723) mod 929 = 828 t 3 = 929 - t 2 = 929 - 828 = 101 E 2 = (E 1 + t 3 ) mod 929 = (0+101) mod 929 = 101 t 2 = (t 1 x a 0 ) mod 929 = (5 x 568) mod 929 = 53 t 3 = 929 - t 2 = 929 - 53 = 876 E 1 = (E 0 + t 3 ) mod 929 = (0+876) mod 929 = 876 t 2 = (t 1 x a 0 ) mod 929 = (5 x 522) mod 929 = 752 t 3 = 929 - t 2 = 929 - 752 = 177 E 0 = t 3 mod 929 = 177 mod 929 = 177 t 1 = (d 3 + E 3 ) mod 929 = (453 + 600) mod 929 = 124 t 2 = (t 1 x a 3 ) mod 929 = (124 x 809) mod 929 = 913 t 3 = 929 - t 2 = 929 - 913 = 16 E 3 = (E 2 + t 3 ) mod 929 = (101 +16) mod 929 = 117 t 2 = (t 1 x a 2 ) mod 929 = (124 x 723) mod 929 = 468 t 3 = 929 - t 2 = 929 - 468 = 461 E 2 = (E 1 + t 3 ) mod 929 = (876 + 461) mo d 929 = 408 t 2 = ( t 1 x a 1 ) mod 929 = (124 x 568) mod 929 = 757 t 3 = 929 - t 2 = 929 - 757 = 172 E 1 = ( E 0 + t 3 ) mod 929 = (177 + 172) mod 929 = 349 t 2 = ( t 1 x a 0 ) mod 929 = (124 x 522) mod 929 = 627 t 3 = 929 - t 2 = 929 - 627 = 302 E 0 = t 3 mod 929 = 302 mod 929 = 302 t 1 = (d 2 + E 3 ) mod 929 = (178 + 117) mod 929 = 295 t 2 = (t 1 x a 3 ) mod 929 = (295 x 809) mod 929 = 831 t 3 = 929 - t 2 = 929 - 831 = 98 E 3 = (E 2 + t 3 ) mod 929 = (408 + 98) mod 929 = 506 t 2 = ( t 1 x a 2 ) mod 929 = (295 x 723) mod 929 = 544 t 3 = 929 - t 2 = 929 - 544 = 385 E 2 = (E 1 + t 3 ) mod 929 = (349 + 385) mod 929 = 734 t 2 = (t 1 x a 1 ) mod 929 = (295 x 568) mod 929 = 340 t 3 = 929 - t 2 = 929 - 340 = 589 E 1 = (E 0 + t 3 ) mod 929 = (302 + 589) mod 929 = 891 t 2 = ( t 1 x a 0 ) mod 929 = (295 x 522) mod 929 = 705 t 3 = 929 - t 2 = 929 - 705 = 224 E 0 = t 3 mod 929 = 224 mod 929 = 224 t 1 = (d 1 + E 3 ) mod 929 = (121 + 506) mod 929 = 627 t 2 = (t 1 x a 3 ) mod 929 = (627 x 809) mod 929 = 9 t 3 = 929 - t 2 = 929 - 9 = 920 E 3 = (E 2 + t 3 ) mod 929 = (734 +920) mod 929 = 725 t 2 = (t 1 x a 2 ) mod 929 = (627 x 723) mod 929 = 898 t 3 = 929 - t 2 = 929 - 898 = 31 E 2 = (E 1 + t 3 ) mod 929 = (891 + 31) mod 929 = 922 t 2 = (t 1 x a 1 ) mod 929 = (627 x 568) mod 929 = 329 t 3 = 929 - t 2 = 929 - 329 = 600 E 1 = (E 0 + t 3 ) mod 929 = (224 + 600) mod 929 = 824 t 2 = ( t 1 x a 0 ) mod 929 = (627 x 522) mod 929 = 286 t 3 = 929 - t 2 = 929 - 286 = 643 E 0 = t 3 mod 929 = 643 mod 929 = 643 t 1 = (d 0 + E 3 ) mod 929 = (239 + 725) mod 929 = 35 t 2 = (t 1 x a 3 ) mod 929 = (35 x 809) mod 929 = 445 t 3 = 929 - t 2 = 929 - 445 = 484 E 3 = (E 2 + t 3 ) mod 929 = (922 + 484) mod 929 = 477 t 2 = (t 1 x a 2 ) mod 929 = (35 x 723) mod 929 = 222 t 3 = 929 - t 2 = 929 - 222 = 707 E 2 = (E 1 + t 3 ) m od 929 = (824 + 707) mod 929 = 602 t 2 = (t 1 x a 1 ) mod 929 = (35 x 568) mod 929 = 371 t 3 = 929 - t 2 = 929 - 371 = 558 E 1 = (E 0 + t 3 ) mod 929 = (643 + 558) mod 929 = 272 t 2 = (t 1 x a 0 ) mod 929 = (35 x 522) mod 929 = 619 t 3 = 929 - t 2 = 929 - 619 = 310 E 0 = t 3 mod 929 = 310 mod 929 = 310 Cuối cùng, t í nh phần bù của các kết quả ở trên , để nhận được 4 từ mã sửa lỗi cho dữ liệu mã hóa PDF417 như sau: E 3 = 929 - E 3 = 929 - 477 = 452 E 2 = 929 - E 2 = 929 - 602 = 327 E 1 = 929 - E 1 = 929 - 272 = 657 E 0 = 929 - E 0 = 929 - 310 = 619 Phụ lục R (tham khảo) Quy trình phân chia mạch để tạo các từ mã sửa lỗi Đây là quy trình khác với quy trình quy định trong điều 5.10 và sử dụng mạch phân chia làm cơ sở cho việc xác định các từ mã sửa lỗi Mạch phân chia được minh họa trong Hình R.1 Hình R.1 - Mạch mã hóa từ mã sửa lỗi Bộ đăng ký b 0 đến b k-1 được bắt đầu bằng những số 0. Toán học môđun được xác định bởi các phương trình sau: x Å y = (x + y) mod 929 x Ä y = (x x y) mod 929 Ó x = (929 - x) mod 929 Trong đó: x và y là các số từ 0 đến 928 Å là phép cộng môđun Ä là phép nhân môđun © là phần bù môđun Có hai giai đoạn tạo ra việc mã hóa. Trong giai đoạn thứ nhất, với việc di chuyển theo tư thế xuôi, dữ liệu mã vạch được đi qua cả đầu ra và đoạn mạch. Giai đoạn thứ nhất kết thúc sau n mạch đồng hồ. Trong giai đoạn thứ hai (các mạch đồng hồ n + 1...n + k), với việc di chuyển theo tư thế lên, các từ mã sửa lỗi E k-1 ,...E 0 được tạo ra bằng cách làm tràn các bộ đăng kí theo thứ tự và bổ sung đầu ra trong lúc giữ đầu v à o dữ liệu tại 0. Phụ lục S (tham khảo) Hướng dẫn thêm về cách sử dụng PDF417 S.1 Tự động phân biệt PDF417 có thể được đọc bởi các bộ giải mã mã vạch đã lập trình phù hợp, trong đó chúng được thiết kế để phân biệt với các mã vạch khác. Bộ mã vạch hợp lệ của bộ giải mã phải được giới hạn đến các mã vạch được yêu cầu bởi ứng dụng để tối đa hóa tính an toàn của việc đọc. S.2 In pixel S .2.1 Nguyên tắc chung Phần mềm đồ họa được sử dụng để tạo ra các mã vạch trên các máy in pixel phải chia chính xác mỗi vạch và khoảng trống thành bước ghi của máy in đang được sử dụng. Đối với các mã vạch giải mã cạnh đến cạnh tương tự như PDF417, số ảnh điểm bao gồm mỗi ký tự mã vạch phải là bội số nguyên dương không đổi và cố định của số môđun trong ký tự mã vạch. Với PDF417, số môđun là 17 cho Dấu hiệu Bắt đầu, các ký tự mã vạch khác, và 18 cho Dấu hiệu Kết thúc. Do đó, máy in chỉ có thể in bộ kích thước X. Việc cân bằng sự tăng (giảm) độ rộng vạch đồng đều phải nằm trong số lượng bù bằng nhau trên tất cả các vạch và khoảng trống trong mã vạch. Điều này được thực hiện bằng cách thay đổi số nguyên các ảnh điểm từ đậm thành nhạt hoặc từ nhạt thành đậm theo cùng một cách với mỗi cặp vạch- khoảng trống trong mã vạch và đối với mã vạch cuối cùng. Ví dụ, tất cả các ảnh điểm dọc theo cùng một cạnh của mọi vạch trong mã vạch có thể được thay đổi từ đậm thành nhạt hoặc các điểm ảnh dọc theo cả hai cạnh của mỗi vạch được thay đổi từ đậm thành nhạt, độ phân giải của máy in cho phép điều này được thực hiện một cách khá tốt. Bất kỳ bộ thay đổi điểm ảnh từ đậm thành nhạt hoặc từ nhạt thành đậm cung cấp sự điều chỉnh được thực hiện trước sau như một qua toàn bộ mã vạch và không thay đổi các đơn vị đo cạnh tương ứng hoặc toàn bộ độ rộng ký tự mã vạch. Nếu không tuân theo các nguyên tắc này sẽ dẫn đến việc chất lượng mã vạch bị giảm và các mã vạch không thể đọc được. Mục đích chung của phần mềm in được thiết kế để hỗ trợ diện rộng các máy in cho người sử dụng với khả năng điều chỉnh kích thước X và sự tăng (giảm) độ rộng vạch. S .2.2 Ví dụ của người lập trình Các nguyên tắc này được biến đổi theo các quy tắc về tệp thiết kế mã vạch dạng số như sau: 1. Biến đổi kích thước X theo thiết kế sang kích cỡ môđun trong các ả nh điểm được làm tròn xuống thành số nguyên dương gần nhất. 2. Xác định số ảnh điểm tương đương với việc cân bằng theo thiết kế sự tăng độ rộng vạch đồng đều và làm tròn lên thành số nguyên dương lớn hơn. 3. Áp dụng các kết quả ở trên để xác định bộ đếm điểm ảnh của mỗi vạch và khoảng trống trong mã vạch. VÍ DỤ : Sử dụng các tệp thiết kế mã vạch dạng số với thiết bị in 24 điểm mỗi mm, tạo ra mã vạch 0,27 mm kích thước X với 0,06 mm sự giảm độ rộng vạch. Kích c ỡ môđun là 24 điểm/mm x 0,27mm/môđun = 6,5 pixel, làm tròn xuống thành 6 pixel mỗi môđun. C â n bằng độ nở của vạch là 0,06mm x 24 điểm/mm= 1,4 pixel, làm tròn lên thành 2 pixel Quá trình này dẫn đến bộ đếm ảnh cho các vạch và khoảng trống như đ ã minh họa trong Bảng S.1 sau đây: Bảng S.1 - Ví dụ về điều chỉnh các ảnh điểm cho độ phân giải ảnh hóa và sự giảm độ rộng vạch Độ rộng phần tử (môđun) Độ rộng danh định (điểm ảnh) Bộ đếm ảnh điểm đã điều chỉnh Vạch Khoảng trống 1 6 4 8 2 12 10 14 3 18 16 20 4 24 22 26 5 30 28 32 6 36 34 38 8 48 46 n/a THƯ MỤC TÀI LIỆU THAM KHẢO [1] A source re f erence for the Berlekamp-Massey algorithm (re f erred to in Annex K) is available in: ‘ Theory and Practice of Error Control Codes' by Richard E. Blahut (published by Addison Wesley, 1984) (page 260, etc.) (Nguồn tham khảo về thuật toán Berlekamp-Masey (được tham khảo trong Phụ lục K) sẵn có ở : “Lý thuyết và thực tiễn về Mã kiểm soát lỗi” của Richard E. Blahut (do Addison W esley xuất b ả n, 1984) (trang 260...)) [2] AIM Mỹ Uni f orm Symbology Specification PDF417, published by AIM Mỹ, 1994 (Quy định kĩ thuật mã vạch PDF417 thống nhất của AIM Mỹ, do AIM Mỹ xuất bản, 1994) [3] AIM Châu Âu Uniform Symbology Specification PDF417, published by AIM Châu Âu, 1994 (Quy định kĩ thuật mã vạch PDF417 thống nhất của AIM Châu Âu, do AIM Châu Âu xuất bản, 1994) [4] ANSI X3.4, Coded Character Sets - 7-bit American National Standard Code for Information Interchange (7-bit ASCII) (equivalent to the US national version of ISO/IEC 646) (Các bộ kí tự được mã hóa, ANSI X3.4 - Mã chuẩn quốc gia Mỹ 7-bit cho trao đ ổ i thông tin (7-bit ASCII) (tương đương với phiên bản ISO/IEC 646 quốc gia Mỹ)) [5] AIM Inc. ITS/04-001: International technical Standard: (AIM Inc. ITS/04-001: Tiêu chuẩn kĩ thuật quốc tế: Diễn dịch kênh mở rộng ) - Part 2, Registration Procedure for Coded Character Sets and O ther Data Formats (Phần 2, Thủ tục đăng kí các bộ kí tự được mã hóa và các định dạng dữ liệu khác) - Character Set Register (Đăng kí bộ kí tự). MỤC LỤC 1. Phạm vi áp dụng 2. Tài liệu viện dẫn 3. Thuật ngữ và định nghĩa 4. Mã vạch, phép tính và thuật ngữ viết tắt 4.1. Mã vạch 4.2. Các phép tính toán học 4.3. Thuật ngữ viết tắt 5. Yêu cầu. 5.1. Đặc tính của mã vạch 5.1.1. Đặc tính cơ bản 5.1.2. Tóm tắt các đặc tính bổ sung 5.2. Cấu trúc mã vạch 5.2.1. Tham số của mã vạch PDF417 5.2.2. Tham số hàng 5.2.3. Chuỗi từ mã 5.3. Mã hóa cơ bản 5.3.1. Cấu trúc ký tự mã vạch 5.3.2. Kí tự bắt đầu và kết thúc 5.4. Mã hóa (dữ liệu) mức cao 5.4.1. Từ mã chức năng 5.4.1.1. Từ mã chức năng cho việc chuyển phương thức 5.4.2 . Phương thức nén văn bản 5.4.3. Phương thức nén byte 5.4.4. Phương thức nén số 5.4.5. Lời khuyên về việc lựa chọn phương thức nén thích hợp 5.5. Diễn dịch Kênh Mở rộng 5.5.1. Mã hóa số gán ECI. 5.5.2. Diễn dịch K ê nh m ở rộng mặc định và được gán trước 5.5.3. Mã hóa chuỗi ECI trong phương thức nén 5.5.4. Giao thức giải mã trước 5.6. Xác định chuỗi từ mã 5.7. Phát hiện lỗi và sửa 5.7.1. Mức sửa lỗi 5.7.2. Khả năng sửa lỗi 5.7.3. Xác định các từ mã sửa lỗi 5.8. Kích thước 5.8.1. Độ rộng tối thiểu của một mô đun (X) 5.8.2. Độ cao hàng ( Y ) 5.8.3. Vùng trống 5.9. Xác định định dạng mã vạch 5.9.1. Xác định t ỉ lệ bề mặt của môđun 5.9.2. Xác định ma trận hàng và cột của mã vạch 5.10. Tạo các từ mã sửa lỗi 5.11. M ã hóa mức thấp 5.11.1. Các cụm 5.11.2. Xác định ma trận mã vạch 5.11.3. Xác định giá trị của các chỉ báo hàng trái và phải 5.11.4. Mã hóa hàng 5.12. PDF417 nén 5.13. Macro PDF417 5.13.1. Các phương thức nén và Macro PDF417 5 . 13.2 . ECI và Macro PDF417 5.14. Hướng dẫn cho người sử dụng 5.14.1. Diễn dịch người đọc 5.14.2. Khả năng tự động phân biệt 5.14.3. Các tham số ứng dụng do người sử dụng quy định 5.14.4. Chất lượng mã vạch PDF417 5.15. Thuật toán giải mã tham chiếu 5.16. Phát hiện lỗi và quy trình sửa lỗi 5.17. Dữ liệu truyền đi 5.17.1. Dữ liệu truyền đi trong diễn dịch (mặc định) cơ bản 5.17.2. Giao thức truyền đối với diễn dịch kênh mở rộng (ECI) 5.17.3. Dữ liệu truyền đối với Macro PDF417 5.17.4. Truyền từ mã dự trữ sử dụng giao thức ECI 5.17.5. Số phân định mã vạch 5.17.6. Quá trình truyền sử dụng các giao thức cũ Phụ lục C E .1 . Mức điều chỉnh lỗi tối thiểu được khuyến cáo E.2 . Xem xét khác của người sử dụng về mức điều chỉnh lỗi Phụ lục F G .1 . Mô tả. G.2. Chất lượng in Phụ lục H H. 1 . Tổng quan về Macro PDF417 H.2 . Cú ph á p Macro PDF417 H.2.1 . Ch ỉ số đoạn H.2.2 . Trường tệp ID H.2.3 . Trường tùy chọn H.2.4 . Ký tự kết thúc Macro PDF417 H.3 . Xem xét mã hóa mức cao H.4 . Ví dụ về mã hóa H.5 . Macro PDF417 và giao thức Diễn dịch Kênh Mở rộng H. 5.1 . Macro PDF417 với ECI 000000 và 000001 (GLI 0 và 1) H. 5.2 . Macro PDF417 và các ECI khác H. 6 . Truyền dữ liệu Macro PDF417 H. 6.1 . Hoạt động trong phương thức đệm H. 6.2 . Hoạt động trong phương thức không đệm H. 6.3 . Bộ truyền điều chỉnh về 0 Phụ lục I Phụ lục J J.1 . Kh ở i tạo J.2 . Thuật toán giải mã tham chiếu về giải mã dòng J.3 . Lấp đầy ma trận J.4 . Diễn dịch Phụ lục K Phụ lục L Phụ lục M M.1 . Phương thức kênh cơ sở M.2 . Mã vạch mã hóa GLI M.3 . Mã v ạ ch Macro PDF417 M.3.1 . Truyền trong phương thức đệm M.3.2 . Truyền trong phương thức không đệm M.4 . Truyền các từ mã dự trữ sử dụng giao thức PDF417 gốc M.5 . Việc đạt được tính tương thích giữa thiết b ị PDF417 cũ và m ới M.5.1 . Bộ mã hóa M.5.2 . Bộ giải mã Phụ lục N Phụ lục O O. 1 . Các tham số ảnh hưởng đến việc xác định ma trận O. 2 . Hướng dẫn cho mọi tham số không đạt được Phụ lục P Phụ lục Q (tham khảo) Phụ lục R Phụ lục S S.1. Tự động phân biệt S.2. In pixel S .2.1 . Nguyên tắc chung S .2.2 . V í dụ của người lập trình