Trang /
Tiêu chuẩn TCVN 8655:2010 Yêu cầu kỹ thuật về mã vạch PDF 417
- Thuộc tính
- Nội dung
- Tiêu chuẩn liên quan
- Lược đồ
- Tải về
Lưu
Theo dõi văn bản
Đây là tiện ích dành cho thành viên đăng ký phần mềm.
Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.
Báo lỗi
Đang tải dữ liệu...
Đang tải dữ liệu...
Tiêu chuẩn Việt Nam TCVN 8655:2010
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 PDF 417
Số hiệu: | TCVN 8655:2010 | Loại văn bản: | Tiêu chuẩn Việt Nam |
Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Lĩnh vực: | Thông tin-Truyền thông |
Năm ban hành: | 2010 | Hiệu lực: | |
Người ký: | Tình trạng hiệu lực: | Đã biết Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây! | |
Tình trạng hiệu lực: Đã biết
Ghi chú: Thêm ghi chú cá nhân cho văn bản bạn đang xem.
Hiệu lực: Đã biết
Tình trạng: Đã biết
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
Information technology - Automatic identification and data capture techniques - PDF417 bar code symbology specification
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
Information technology - Automatic identification and data capture techniques - PDF417 bar code symbology specification
1. Phạm vi áp dụng
Tiêu chuẩn này quy định các yêu cầu đối với mã 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 information 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 specification - 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 identification and data capture techniques - Data carrier identifiers including symbology identifiers (Công nghệ thông tin - Kĩ thuật phân định và thu nhận dữ liệu tự động - 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 codeword)
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 Identifier)
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 Shift (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
QH vùng trống nằm ngang
Qv 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
d15 = bộ Mô tả độ dài mã vạch (trong ví dụ này, với một giá trị của 16)
d14 đến d1 = biểu diễn dữ liệu đã mã hóa
d0 = 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 = (b1 - b2 + b3 - b4 + 9) mod 9
Trong đó b1 b2, b3, và b4 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 |
khở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 Shift |
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 |
mode 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 xuấ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à shift đượ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ống |
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 (shift 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 b5 đến b0 (trong đó b5 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 |
C0 |
927 |
|
|
C1 |
ECI_no |
C1 = (0 đến 899) |
000900 đến 810899 |
C0 |
926 |
|
|
C1 |
ECI_no div 900 - 1 |
C1 = (0 đến 899) |
|
C2 |
ECI_no mod 900 |
C2 = (0 đến 899) |
810900 đến 811799 |
C0 |
925 |
|
|
C1 |
ECI_no - 810 900 |
C1 = (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 return-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 hai 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ệ.
(Mời xem tiếp trong file đính kèm)
Click Tải về để xem toàn văn Tiêu chuẩn Việt Nam nói trên.