2017年4月26日 星期三

[Barcode] UPC 編碼原則


UPC (Universal Product Code)特性:

  • 最早大規模應用的條碼,應用廣泛,又稱「萬用條碼」
  • EAN碼的前身
  • 資料內容只提供數字(0-9)
  • 分成五種類型,其中S:系統碼、X:資料碼、C:檢查碼 
版本 對象 格式
UPC-A 通用商品 SXXXXX XXXXXC
UPC-B 醫療衛生 SXXXXX XXXXXC
UPC-C 產業部門 XSXXXXX XXXXXCX
UPC-D 倉庫批發 SXXXXX XXXXXCXX
UPC-E 商品短碼 XXXXXXX 
  • UPC-A編碼
  • UPC-A編碼結構 
    UPC-A編碼是由一連串的黑白條線條所組成(參考上圖),其中白線的值為0,而黑線為1。這串黑白線則再分成以下幾個區塊,包含
    • 開始碼 : 共3bits,固定值為101。而線條長度必須高於質料碼。
    • 中間碼:共5bits,固定值為01010。而線條長度必須高於質料碼。
    • 結束碼:共3bits,固定值為101。而線條長度必須高於質料碼。
    • 資料碼:質料碼分成左質料碼與右質料碼,左資料碼由6個碼組成,第一碼為系統碼,固定為「0」,其餘五碼則是「產商代碼」。而右質料碼則是被定義為「產品代碼」,共五碼組成。質料碼的小單位為「碼」,即上圖數字表示的部分,其中每個「碼」皆是由「7」bits來表示,左質料碼與右質料碼的編碼規則參考下表。由於左資料碼定義黑線必為「奇」數,而右質料碼為「偶」數,故又有奇質料碼,偶質料碼之稱。
      左質料碼(奇) 右質料碼(偶)
      0 0001101 1110010
      1 0011001 1100110
      2 0010011 1101100
      3 0111101 1000010
      4 0100011 1011100
      5 0110001 1001110
      6 0101111 1010000
      7 0111011 1000100
      8 0110111 1001000
      9 0001011 1110100
    • 檢查碼
      N11 N10 N9 N8 N7 N6 N5 N4 N3 N2 N1 C

      檢查碼計算公式:
          C1 = (N1+N3+N5+N7+N9+N11) x 3
          C2 = N2+N4+N6+N8+N10
          CC = (C1+C2) 取各位數
          C = 10 - CC 取各位數

      Example : (計算上圖的檢查碼)
          C1= (0+1+3+5+8+0) x 3 = 51
          C2= (0+2+4+7+9) = 22
          CC= (51+22) = 73
          C= 10 - 3 = 7
  • UPC-E條碼
    UPC-E編碼結構 
    UPC-E條碼是UPC-A的壓縮版本,只能用於國別碼為「0」的商品。而UPC-E碼的組成包含:
    • 左邊線(開始碼):共3bits,固定值為101
    • 右邊線(結束碼):共6bits,固定值為010101
    • 檢查碼:為了減少質料量,該碼的資訊並未轉成黑白線記錄與圖形,只使用一個數字方便使用者辨識。而檢查碼的演算法與UPC-A計算方式相同,但計算前需先使用下表將UPC-E碼轉成UPC-A碼。
      UPC-E UPC-A
      XXYYY0 0XX00000YYY
      XXYYY1 0XX10000YYY
      XXYYY2 0XX20000YYY
      XXXYY3 0XXX00000YY
      XXXXY4 0XXXX00000Y
      XXXXX5 0XXXX000005
      XXXXX6 0XXXX000006
      XXXXX7 0XXXX000007
      XXXXX8 0XXXX000008
      XXXXX9 0XXXX000009
      Example:(計算上圖的檢查碼)
          (UPC-E) -> (UPC-A) = 123456 -> 01234500006
          C1= (0+2+4+0+0+6) x 3 = 36
          C2= (1+3+5+0+0) = 9
          CC= (36+9) = 45
          C= 10 - 5 = 5
    • 質料碼:「檢查碼」的數值則是決定質料碼的數值該使用奇質料碼,還是偶資料碼。排列方式如下:
      N6 N5 N4 N3 N2 N1 C
      B B B A A A 0
      B B A B A A 1
      B B A A B A 2
      B B A A A B 3
      B A B B A A 4
      B A A B B A 5
      B A A A B B 6
      B A B A B A 7
      B A B A A B 8
      B A A B A B 9

      UPC-E資料碼的編碼方式:
      奇質料碼(A) 偶質料碼(B)
      0 0001101 010011
      1 0011001 0110011
      2 0010011 0011011
      3 0111101 0100001
      4 0100011 0011101
      5 0110001 0111001
      6 0101111 0000101
      7 0111011 0010001
      8 0110111 0001001
      9 0001011 0010111

Reference :
[1] UPC條碼
[2] http://www.barcode-generator.org/
[3] 2010-06-27 Barcode - Code128 應用(上)

沒有留言:

張貼留言