1. 程式人生 > >PDF417二維條碼詳解

PDF417二維條碼詳解

    PDF417是美國符號科技(Symbol Technologies, Inc.)發明的二維條碼,發明人是臺灣赴美學人王寅君博士,王博士於1984年畢業於國立交通大學資訊系,獲得紐約州立大學石溪分校(University of New York at Stony Brook)電腦碩士和博士學位後,在1988年進入符號科技進行二維條碼的研發工作,於1992年底推出PDF417,並於1989年至1992年間領導世界第一部二維條碼雷射讀碼系統的開發。1993年3月作者正式將PDF417引進臺灣,交由祥記資訊推廣及研發相關套裝軟體(黃慶祥,1995)。

    目前PDF417、Maxicode、Datamatrix同被美國國家標準協會 (American National Standards Institute, ANSI) MH10 SBC-8委員會選為二維條碼國際標準制定範圍,其中PDF417主要是預備應用於運輸包裹與商品資料標籤(Burnell, 1995)。PDF417不僅具有錯誤偵測能力,且可從受損的條碼中讀回完整的資料(Moore, 1994),亦即「錯誤復原能力」,其錯誤復原率最高可達50%,如圖8.1所列各種情形,皆可將資料復原。

PDF417二維條碼的結構
    由於PDF417二維條碼的容量較大,除了可將人的姓名、單位、地址、電話等基本資料進行編碼外,還可將人體的特徵如指紋、視網膜掃瞄、及照片等個人紀錄儲存在條碼中,這樣不但可以實現證件資料的自動輸入,而且可以防止證件的偽造,減少犯罪。PDF417已在美國、加拿大、紐西蘭的交通部門的執照年審、車輛違規登記、罰款及定期檢驗上開始應用。美國並同時將PDF417應用在身分證、駕照、軍人證上。此外墨西哥也將PDF417應用在報關單據與證件上,從而防止了仿造及犯罪。

PDF417是一個公開碼,任何人皆可用其演演算法而不必付費,因此是一個開放的條碼系統。PDF417的PDF為可攜性資料檔(Portable Data File)的縮寫,取其條碼類似一個資料檔,可儲存較多資料,且可隨身攜帶或隨產品走而得名(Paclidis, 1992)。正如其名,每一個PDF碼的儲存量可高達1,108個文數字(Bytes),若將數字壓縮則可存放至2,729Bytes。

每一個PDF417碼是由3~90橫列堆疊而成,而為了掃瞄方便,其四周皆有靜空區,靜空區分為水平靜空區與垂直靜空區,至少應為0.020寸,如圖8.2所示。
 


圖8.2 PDF417碼的結構

其中每一層都包括下列五個部份:

起始碼。
左標區:在起始碼後面,為一指示符號字元。
資料區:可容納1~30個資料字元。
右標區: 在資料區的後面,為一指示符號字元。
結束碼:在橫列之最右邊。

    除了起始碼和結束碼外,左標區、資料區和右標區的組成字元皆可稱為字碼 (Codeword),每一個字碼由17個模組(Modules)所構成,每一個字碼又可分成4線條(或黑線)及4空白(或白線),每個線條至多不能超過6個模組寬。每個417碼因資料大小不同,其行數及每行的資料模組數與字碼數都可以從1至30不等。字碼的組成如圖8.3所示。


圖8.3 PDF417字碼的組成

 PDF417二維條碼的尺寸
 

     也因為符號的組合較有彈性,每一個PDF417二維條碼可因應不同的實體裝置印成不同的長寬比例與密度,以適應印刷條件及掃瞄條件的要求。其中每個模組寬X是PDF417碼中最重要的尺寸之一,X值的最小限制為0.0075英寸(約0.191mm),在同一個條碼符號中,X的值是固定不變的。

PDF417的最小高度與長度可由下列算式算出: 

W= (17C+69)X+ 2Q

H = R ×Y+ 2Q

其中:

W= 條碼寬度,H=條碼高度,X=條碼模組寬,Y=層數

C=每層符號字元的總數(含左右標區),R=層高,Q=靜空區大小
 
PDF417二維條碼的錯誤糾正能力  

PDF417二維條碼的一個重要特性是其自動糾正錯誤的能力較高,不過PDF417的錯誤糾正能力與每個條碼可存放的資料量有關,PDF417碼將錯誤復原分為9個等級,其值從0到8,級數愈高,錯誤糾正能力愈強,但可存放資料量就愈少,一般建議編入至少10%的檢查字碼。資料存放量與錯誤糾正等級的關係如表8.1所示。表8.2則建議不同的字數所適用的錯誤糾正等級。
 

表8.1 可存放資料量與錯誤糾正等級對照表

錯誤糾正等級

糾正碼數

可存資料量(位元)

自動設定

64

1024

0

2

1108

1

4

1106

2

8

1101

3

16

1092

4

32

1072

5

64

1024

6

128

957

7

256

804

8

512

496


表8.2 PDF417的建議錯誤糾正等級

資料字碼數

錯誤糾正等級

1~40

2

40~160

3

161~320

4

321~863

5

      如前所述,錯誤糾正等級涉及拒讀錯誤(E錯誤)與替代錯誤(T錯誤)兩種錯誤型別。無論使用哪一種條碼機都有一定的精密度極限,造成線條和空白的寬度與理想寬度間必有偏差存在,條碼掃瞄裝置能夠讀出解碼演演算法所允許範圍內的不精確條碼符號,目前標準中規定X的值最小為0.0075英寸(約0.191mm),此一限制同時反映出目前標準裝置的技術現狀。綜合本節所討論,PDF417的特性如表8.3所示。

表8.3 PDF417的特性

專案

特性

可編碼字元集 8位二進位制資料,多達811800種不同的字元集或解釋
型別 連續型,多層
字元自我檢查
尺寸 可變

高:3~90

寬:1~30

讀碼方式 雙向可讀
錯誤糾正字碼數 2~512
最大資料容量 安全等級為0 每個符號可表示1108個位元