(高清版)GBT 41208-2021 數據矩陣碼_第1頁
(高清版)GBT 41208-2021 數據矩陣碼_第2頁
(高清版)GBT 41208-2021 數據矩陣碼_第3頁
(高清版)GBT 41208-2021 數據矩陣碼_第4頁
(高清版)GBT 41208-2021 數據矩陣碼_第5頁
已閱讀5頁,還剩79頁未讀 繼續免費閱讀

VIP免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

國家市場監督管理總局國家標準化管理委員會I V 1 13.1術語和定義 13.2符號 23.3數學/邏輯符號 2 24.1基本特性 24.2附加特性總結 34.3符號結構 35ECC200的技術要求 45.1編碼流程概述 45.2數據編碼 45.3用戶定義事項 5.5數據矩陣碼(ECC200)符號特性 5.6結構鏈接 5.7錯誤校驗和糾正 5.8構建符號 6.1尺寸的基本要求 6.2GS1系統應用領域的推薦尺寸 7符號質量 7.1符號質量總則 7.2符號質量參數 7.3整體符號等級 7.4過程控制測試 8數據矩陣碼參考譯碼算法 9用戶導則 9.1供人識讀解釋 279.2自動辨識能力 9.3系統考慮 27 2710.1數據傳輸總則 27Ⅱ10.2FNC1在第一位置的協議(GS1數據矩陣碼) 2710.3FNC1在第二位置的協議 2710.4宏碼字在第一位置的協議(僅適用于ECC200) 28 28 28附錄A(資料性)ECC200編碼實例 29 B.1示意性圖解說明 B.2不同尺寸符號的交織開始序列 附錄C(資料性)使用最小的ECC200符號進行數據字符編碼 附錄D(規范性)ECC200模式隨機算法 D.1253狀態隨機化算法 D.1.2253狀態隨機算法 D.2255狀態隨機化算法 附錄E(規范性)ECC200編碼字符集 附錄F(規范性)ECC200校正圖形 43 45 45G.2糾錯運算 G.3糾錯碼字算法 47附錄H(規范性)ECC200符號字符放置 49H.1符號字符放置程序 49H.2符號字符放置規則 H.2.1不規則符號字符形狀 H.2.2符號字符的排列 H.3ECC200符號字符放置實例 附錄I(資料性)FNC1在第一位置的DataMatrix碼(GS1數據矩陣碼)應用領域的推薦尺寸 61 I.2僅在常規配送的貿易項目 I.3非POS掃描或常規零售貿易項目[一般分銷或受監管醫療 61 1.5非常規掃描的受管制非零售醫療貿易項目 I.6零部件直接標記二維條碼應用(DP 1.7零售或非零售藥房常規配送可掃描的貿易項目(儲運包裝) 1.8受監管的常規配送可掃描的醫療零售貿易項目 Ⅲ 附錄J(資料性)系統考慮 附錄K(規范性)二維矩陣條碼的印制質量——固有圖形污損指標 K.2.1待評價的圖形部分 附錄L(資料性)過程控制技術 L.2符號反差 L.3特殊的參考符號 L.4評價軸向不一致性 L.5目測符號變形及缺陷 附錄M(資料性)自動辨識性能 附錄N(規范性)碼制標識符 77V本文件按照GB/T1.1—2020《標準化工作導則第1部分:標本文件參考ISO/IEC16022:2006《信息技術自動識別和數據采集技術數據矩陣碼條碼規范》1GB/T15273.1信息處理八位單字節編碼圖形字符集第一部分:拉丁字母一ISO/IEC646信息技術信息交換用ISO7位編碼字符集(Informationprocessing—ISO7-bitISO/IEC8859-5:1999信息技術8位單字節編碼圖形字符集第5部分:拉丁字母/斯拉夫字母(Informationtechnology—8-bitsingle-bytecodeAutomaticidentificationanddatacapture(AIDC)techniques—Harmonizedvocabulary]2數據矩陣碼ASCII模式中表示后續編碼為擴展ASCII碼的專用字符。數據矩陣碼C40和Text模式中表示后一碼字為其他編碼子集的專用字符。3.2符號d:糾錯碼字數k:(ECC200)糾錯碼字總數n:(ECC200)數據碼字總數∈1:第i個糾錯碼字t:替代錯誤數X:模塊的水平或垂直寬度LSB:最低有效位MSB:最高有效位數據矩陣碼是一種矩陣式二維條碼符號,該符號由方形模塊陣列與環繞矩陣碼主要以淺色背景和深色符號表示,也可以用深色背景和淺色符號表示,其中ECC200采用的是Reed-Solomon(RS編碼)糾錯。數據矩陣碼的特征如下:1)與ISO/IEC646相一致的值為0~127的128個字符。2)與GB/T15273.1中的值為128~255的字符。3c)以模塊數表示的符號尺寸(不包括空白區):ECC200:10×10~144×144(模塊)ECC200:8×18~16×48(模塊),僅為偶d)每個符號的數據字符數量(ECC200的最大尺寸符號):1)數字字母型數據:最多2335個字符2)8位字節數據:最多1555個字節3)數字型數據:最多3116個數字ECC200:Reed-Solomon糾錯形(見圖1)在識讀時這兩種圖形都可以做到正確識讀。除特別說明,本文件中所指的符號都b)擴充解釋(ECI)(僅適用ECC200,可選):這種方式使符號可以表示其他字符集的字符(如阿拉c)長方形符號(僅適用ECC200,可選):規定有6種符號采用長方形的形式表示。d)結構鏈接(僅適用ECC200,可選):允許一個數據文件通過最多16.個數據矩陣碼符號的結構每個數據矩陣碼符號主要由規則排列的名義上為正方形的模塊構成的數據為兩個ECC200符號的示例。45雙位數字(十進制)4ISO/IEC646值0~1278大寫字母數字型小寫字母數字型ISO/IEC646字符值32~9468包括轉移字符,占用兩個Text值。碼字1~128(ISO/IEC646字符編碼取值+1);擴展ASCII字符(GB/T15273.1中取值為128~255的表2ASCII編碼值ISO/IEC646字符(字符編碼取值+1)雙數字型數據00~99(數字值+130)擴展轉換碼字(轉移至擴展ASCII)6表2ASCII編碼值(續)保留保留705宏06宏編碼。C40編碼方案共有4個子集。第一子集又稱基本集,由3個特殊轉換字符、空格字符和ISO/IEC646字符A~Z和0~9組成,每個字符編碼為一個C40值。其他3個子集由特定的分組(C1,C2,C3)編碼為16位二進制值。將前8位和后8位分別轉換為兩個碼字。8C40值[1(Shift2)][30(擴展轉換字符)][V(擴展ASCI字符值-128)]9[1(Shift2)][30(擴展轉換字符)][0,1,或2(Shift1,2或3)][V(擴展ASCII字符值-128)]5.2.7ANSIX12編碼ANSIX12終止符和分隔符進行編碼。ANSIX12代碼集分配見表4。在ANSIX12ISO/IEC646字符值0X12段終止符<CR>1X12段分隔符·23空格符EDIFACT值A9注:在譯碼過程中,若前導位(第6位)為1,則添加前綴00以建立8位字節。若前導位(第6位)為0,則添加前綴01以建立8位字節。EDIFACT值011111例外,它是切換至ASCII編碼的解除鎖定字DATAEDIFACT值(見表E.3)1列以基256編碼鎖定碼字起始,之后為以1個~2個長僅1個長度指示碼字,將8位二進制字節數直接轉換為8位二進制碼字,長度不足8位時前面補二進制“0”d?=(字節數div250)+249d?=字節數mod250將這兩個數分別轉換為2個長度指示碼字,長度不二進制“0”ECC200共有24種正方形符號和6種長方形符號。符號的尺寸和形狀可以根據實際應用的需要5.4擴充解釋(ECI)ECI協議允許輸出的數據流有與默認字符集不同的解釋。ECI協議在各碼制中有一致的定義。數a)國際字符集(或代碼頁);b)例如加密和壓縮等一般用途的解釋;數據矩陣碼中ECC200的所有編碼方案(如表1中定義的)可在任何ECI下應用。ECI只能在編碼的8位數據值,而不依賴于使用的有效ECI。例如,從48到57(十進制)的字符序列使用數字型模式編碼最有效,即使它們并不譯解為數字。在ASCII編碼中,使用ECI指示碼字(241)可以激活ECI,其后的1個、2個或者3個附加碼字被用來對ECI任務號進行編碼。編碼規則見表6。=[241][1+192][289mod2碼字序列表6ECC200中ECI任務號的編碼(續)ECI任務號碼字序列碼字范圍數據區映象矩陣尺寸塊糾錯分組占比%糾正的碼字(替代/拒讀")行列塊數正方形符號1353516311575716318816111111111111414141數據區映象矩陣尺寸塊糾錯分組占比%糾正的碼字(替代/拒讀)行列塊數41442244446688815757163821811212121見5.7.3。在最大的符號(144×144)中,前8個Reed-Solomon塊共有218個碼字(對156個數據碼字編碼個有217個碼字(對155個數據碼字編碼),所有各塊都有62個糾錯碼字。詳見表B.1。基于Text或C40編碼,無需切換或轉換;對于其他編碼方案,這個值可能會根據字符集不同。5.6結構鏈接在一個結構格式中可以鏈接共計16個ECC200符號。如果某個符號是結構鏈接的一部分,該符號第一個碼字位置為碼字(233),其后緊跟著三個結構鏈接碼字。第一個碼字是符號序列指示碼字,第二個和第三個碼字是文件標識。5.6.2符號序列指示碼字在結構鏈接格式中,符號序列指示碼字以n(2~16)個符號中的第m個符號的形式,指示該結構鏈接符號在多個結構鏈接數據矩陣碼符號中的次序。該碼字的前4位以(m-1)的二進制值形式在符號序列中的次序;后4位以(17-n)的二進制值的形式存儲結構鏈接的符號個數,詳見表8。次序m為3:0010表8結構鏈接符號序列指示碼字的編碼12233445566778899文件標識碼字是取值范圍為1~254的,用于標識結構鏈接符號承載信息屬于同一文件的兩個碼字。用戶可自行定義64516個不同的文件標識。通過文件標識結構鏈接可以實現承載多個文件。如果FNC1(見5.2.4.7)與結構鏈接共用時,則第一個結構鏈接符號的第5個或第6個碼字應為FNC1碼字,標識符號用于特定應用領域。出現在其他位置的FNC1碼字(包括其他結構鏈ECC200符號采用Reed-Solomon糾錯。對于少于255個碼字的ECC200符號,糾錯碼字由數據碼后根據附錄B中的交織過程進行交織。每一個ECC200符號具有特定數量的數據和被分成特定數量的ECC200的糾錯多項式算法用位的模2算法和字節的模“1001組對應的16個不同的生成多項式。數據碼字多項式除以Reed-Solomon生成多項式g(x)后的余式便為糾錯碼字。數據碼字多項式最高次項系數為第一個數據碼字,最低次項系數為第一數據碼字。余式的最高次項系數為第一個糾錯碼字,最低次(0次)項系數為最后一個糾錯碼字。糾錯碼字的計算可通過使用圖5所示的除法電路圖實現。寄存器b。到b-1的初始值為0。生成編碼的狀誤碼字)。拒讀錯誤是不能被掃描或不能被譯碼的符號字符。替代錯誤是被錯誤譯碼的符號字符。可t——替代錯誤數;在一般情況下,p=0。如果大部分糾錯容量用于糾正拒讀錯誤,則檢不出替代錯誤的概率增加。當拒讀錯誤的數量多于糾錯碼字的一半時,p=3。對于小型符號(10×10,12×12,8×18和8×32)不b)插入校正圖形模塊(如果需要);為1,淺色模塊為0。8個模塊按照從左到右、從上到下的順序組合成一個符應采用特殊的形狀和排布方式。對于由校正圖形分隔的多個數據區,某些鄰的數據區域內。附錄H規定了符號字符的放置方法與C語言排布程序。在32×32以上的正方形和除8×18,12×26以外的長方形數據矩陣碼符號中,根據所選擇的符號校正圖形:校正圖形的寬度最小應為X尺寸的2倍。空白區:符號四周空白區的最小寬度為X。對于在符號附近會出現中等或較高反射區域的應用,宜使用2X~4X的空白區。GS1數據矩陣碼應用系統的推薦尺寸見附錄I。錄L。3)定義距離mmi為孔徑的1.25倍。當孔徑的大小為符號X尺寸的80%時,為標稱的最小果兩條線具有相反的p?到p?的方向,則驗證p?到p?或p?到p?的間距小5)重復步驟3)和步驟4)直到沒有A1線段對可以組合。左偏移3mmin,再向下偏移3mmin左左探測直線“L”邊“L”邊5)從右側區域最小的X對應的T值開始,增大X值,找到T。值(T,=零和T-1的最大值)的第一個實例,如果T值大于1,T,小于先前局部最大值T的15%。增加X的值,6)在圖形左側區域找到與右邊波峰和波谷的下降曲線X值最匹配的波峰和波谷的下降曲X值相差小于兩個波峰X值的均值的15%,并且確保左右波谷之間相差小于兩個波谷X值的均值的15%。15%為最大允許偏差。偏移量=到波峰線的距離/[(轉換次數+1)×2]4)邊到邊測量值與EE_Dist相差超過25%的模塊對被丟棄。油墨擴張=均值[{條-[(條+空)/2]}/[(條+空)/2]]D?中的空,如果為負,偏移量將遠離此空),將該邊偏移(油墨擴張/2)×Ⅲ)將單元格的中心設置在p?和p?的中間。向右的消失點向右的消失點的垂直直角邊的10%。1)在數據模塊的中心對其取樣。中心黑色為1,白色為0。2)把定義的碼字圖形中的8個模塊樣本轉變為8位符號字符值。3)對符號字符值應用Reed-Solomon糾錯。數據矩陣碼符號與其他符號一樣可以在與其他多種碼制一起使用的FNC1字符并不進行傳輸。當作為分隔符使用時,FFNC1應以ISO/IEC646字符<9s>(ISO/IEC646字符值29)的形式出現在傳輸信息中。此協議用于在ECC200符號中對兩個特殊的信息當宏碼字出現在符號第一位置時,應在編碼字為236(碼字宏05),則應在編碼數據之前增加()>Rs059s。如果第一個符號字符為237(碼字宏06),則應在編碼數據之前增加[]>Rs069s。并在編碼數據之后附加后綴RsFo。在支持ECI協議的系統中,每一傳輸過程都要求使用碼制標識符前綴。如遇到ECI碼字,它應作義規則的逆運算,下一個碼字將轉化為6位的數值。這個6位的數值以相應的ISO/IEC646字符值應用軟件識別到\nnnnnn之后,將所有后續字符解釋為來自6位數字序列定義的ECI。該解釋在如果反斜線符號(字節92pec)需要作為被編碼的數據,應按如下方式進行傳輸。每當字符GB/Z19257—2003定義的碼制標識符用于識讀器向上層系碼制標識符作為前綴后傳輸。數據矩陣碼的碼制標識符及修對于待傳輸的字符信息“K”,擬使用ECC200中的ASCII編碼方案進行編碼。在數據矩陣碼默但是可以用ISO/IEC8859-5(ECI000007)相同的值182表示。這樣完整的信息就可以用第一個字符后符號編碼信息<1><轉換至ECI000007><K>,使用下面一系列的數據矩陣碼字:[擴展轉換碼譯碼器傳輸字節序列為(包括作為前綴的碼制標識符修正字符值4,表明使用了ECI協議):93,100,52,182,92,48,48,48,48釋。支持ECI協議的應用軟件應能夠正確處理ECI轉義序列\000007,并將斯拉夫語字符“K”用系統指定的形式顯示(如某一特定字體),最后的結果將與原始信息“K”(資料性)ASCII編碼將上面的6個字符轉化成3個字節。對數字對使用下面的公式。碼字=(數字對的數值)+130“12”=12+130=142“34”=34+130=164“56”=56+130=186十進制值:142164186根據表7,三個數據碼字正好符合10×10符號,需要添加5個糾錯碼字。如果編碼數據不能正好步驟2:錯誤校驗和糾正123456785+數據 步驟3:矩陣的模塊放置步驟4:實際的符號加入尋像圖形模塊,并把1轉換成黑色、0轉換成白色就得到最后的數據矩陣,見圖A.2。圖A.2最終符號圖形糾錯碼字∈48糾錯碼字∈糾錯碼字∈48糾錯碼字∈5糾錯碼字∈26糾錯碼字∈37用72×72符號尺寸為例,如圖B.1所示,對總共368個數據碼糾錯碼字∈1234123415263748數據碼字序列糾錯碼字序列12121234符號尺寸數據碼字序列糾錯碼字序列1234123412341234561234561234567812表B.1不同符號尺寸的數據碼字和糾錯碼字序列(續)數據碼字序列糾錯碼字序列3456789注:144×144符號的第9個和第10個塊僅有155個數據碼字,另外的8個塊均有156個數據碼字。g)當用基256(B256)編碼時:1)如果現有模式為ASCII,初始化:ASCII計數=0,X12計數=1,ASCII計數=1,Text計數=2,X12計數=2,EDF計數=22)如果現有模式為C40編碼,C40計數=0。3)如果現有模式為Text編碼,Text計數=0。4)如果現有模式為X12編碼,X12計數=0。5)如果現有模式為EDIFACT編碼,EDF計數=0。6)如果現有模式為基256編碼,B256計數=0。1)將所有的計數調整為整數。1)如果數據字符為數字型,在ASCII計數上加1/2。2)如果數據字符為擴展ASCII字符值(大于127),整數化并在ASCI計數上加2。3)否則,整數化并在ASCII計數上加1。1)如果數據字符為純C40字符,在C40計數上加2/3。2)如果數據字符為擴展ASCII字符值(大于127),在C40計數上加8/3。3)否則,在C40計數上加4/3。2)如果數據字符為擴展ASCII字符值(大于127),在Text計數上加8/3。3)否則,在Text計數上加4/3。1)如果數據字符為純X12字符,在X12計數上加2/3。2)如果數據字符為擴展ASCII字符值(大于127),在X12計數上加13/3。3)否則,在X12計數上加10/3。2)如果數據字符為擴展ASCII字符值(大于127),在EDF計數上加17/4。3)否則,在EDF計數上加13/4。2)否則,在B256計數上加1。ii)如果C40計數等于X12計數:INPUT(Pad_codeword_value,Pad_codeword_pseudo_random_number=((149*Pad_codeword_position)mod253)+1temp_variable=Pad_codeword_value+pseudo_randOUTPUT(randomized_Pad_codeword_value=temp_variable)OUTPUT(randomized_Pad_codeword_value=temp_variable—254)INPUT(randomized_Pad_codeword_value,Pad_codewordpseudo_random_number=((149*Pad_codeword_position)mod253)+1temp_variable=randomized_Pad_codeword_value—pseudo_random_numINPUT(Base256_codeword_value,Base256_codewordpseudo_random_number=((149*Base256_codeword_position)mod255)+1temp_variable=Base256_codeword_value+pseudOUTPUT(randomized_Base256_codeword_value=temp_variable)OUTPUT(randomized_Base256_codeword_value=temp_variable—256)INPUT(randomized_Base256_codeword_value,Base256_codeworpseudo_random_number=((149*Base256_codeword_position)mod255)+1temp_variable=randomized_Base256_c轉換集1十進制十進制十進制十進制00!11a22井b33$c404%d515e626f73(g848)h9596十7k8一19mA/nB:0CPD<qE=rF>sG?tH@uI[VJWK]XLyM zN{表E.1C40編碼字符集(續)轉換集1十進制十進制十進制十進制0P}QRSTUVWXYZ注:不管采用何種ECI,ASCII十進制值和C40值保持相對不變。轉換集1十進制十進制十進制十進制00!114A22井B33$C404%D515&E626F737(G848)H959*I6十J7K8L9Ma/Nb:0表E.2Text編碼字符集(續)轉換集1十進制十進制十進制十進制C;Pd<QeR>Sg?Th@U[Vj\Wk]XYm一Zn{0P}9~rstuVWXyZ注:不管采用何種ECI,ASCII十進制值和Text值保持相對不變。@DAEBFCG表E.3Text編碼字符集(續)H$I%J&KL(M)N*0十PQ一RS/T0U1V2W3X4Y5Z6[78]9<!=>#?注:不管采用何種ECI,ASCII十進制值和EDIFACT值保持相對不變。圖F.3和圖F.4。圖F.3120×120正方形符號的校正圖形=x?+(2+4+8+16+32)x?+[(2×4)+(2×8)+(2×16)+(2×32)+(4×(4×32)+(8×16)+(8×32)+(16×32)]x3+[(2×4×8)+(2×4(8×16×32)]x2+[(2×4×8×16)+(2×4×8×32)+(2×4×16×32=x?+62x?+111x3+15x2+g(x)=x?+62x?+11lx3+1g(x)=x?+254x?+92x?+240x?+134x2+1g(x)=x1?+61x?+110x?+255x?+116x?+248x?+223x?+166x3+g(x)=x11+120x1?+97x?+60x?+245x1+39x?+168x?+194x?+12x3+2g(x)=x12+242x11+100x1?+178x?+97x?+213x?+142x?+42x?+61x?+91x3+g(x)=x1?+185x13+83x2+186x11+18x10+45x?+138x?+119x?+157x?+9xg(x)=x1?+188x?+90x1?+48x1?+225x1?+254x3+94x2+129x11+109x1?61x?+66x?+75x?+188x?+39x3+g(x)=x2?+172x1?+186x1?+174x?+27x1?+82x1?+108x1?+79x3+253x12+160x?+188x?+2x?+168xg(x)=x2?+193x23+50x2+96x21+184x20+181x1?+12x1?+124x1?+254x121x3+155x12+223x1+251x1?+197x?+155x?+21x?+176x?+39x?+109x?+g(x)=x2?+255x?+93x2?+168x2?+233x2?+151x3+120x2+136x1+141x2?+138x?+17x1?+121x1?+249x?+34x1g(x)=x3?+112x35+81x3?+98x33+225x32+25x31+59x30+184x2?+175x2?119x?+95x?+137x23+101x2+33x1+68x2?+4x251x13+220x2+179x1+84x1?+120x?+102x?+181x?+162x?+250x?+130x?+2g(x)=x?2+5x?1+9x?0+5x3+226x3+177x37+150x3?+50x35+69x3?+101x1+54x3+57x?+253x2?+x?+21x2?+121x?+59x1?+100x1?+95x1?+175x1?+8x1?+242x1?+133x13+245x12+2x1+122g(x)=x4?+19x?+225x?+253x??+92x“+213x3+69x2+175x?1+160x?0+187x3?+176x3+44x3?+82x3?+240x13+186x32+138x31+66x30+100205x?+170x2?+90x23+37x22+23x1+118x0+147x1?+16x1?+106x?+191x1?+8188x13+205x2+231x11+238x1?+133x?+238x?+2g(x)=x??+46x??+143x??+53x?3+233x2+107x?1+203x?0+43x?+155x67x??+127x?+245x?3+137x?2+13x1+164x?0+207x39+62x3?+117x322x?+238x3+144x32+232x31+29x30+203x2+117x?+234x”+218x?+14654x3+132x2+200x21+38x20+223x1?+36x1?+159x1?+150x1?+235x230x2+170x1+175x1?+29x?+100x?+208x?+220x?+17x?+12x?+238x3+2g(x)=x2+204x?1+11x0+47x??+86x??+124x??+224x??+166x??+94x107x?1+4x??+170x??+176x??+31x??+163x??+1763x3+51x3+218x3?+27x3?+6x3+147x?+44x3+161x2+71x31+114x221x?+185x2?+106x2?+250x2?+190x23+197x2+63x1+245x20+230x1?+134185x1?+37x1?+196x1?+108x13+143x2+189x1210x?+144x?+50x3+169x2g(x)=x??+186x??+82x??+103x??+96x??+63x?3+132x2+153x?1+108189x??+211x??+232x??+49x??+25x?3+172x?2+223x?+136x??+231x“+210x3+96x2+232x?1+220x?+25x3?+179x3?+16185x3?+153x3?+139x3+66x32+236x3+227x30+168x?+177x3+158x22+197x1+234x2?+180x1?+248x1?+136x?+213x36x3+154x2+244x11+147x1?+33x?+89x?+56x?+159x?+149x?+25ECC200符號譯碼糾錯采用Peterso所有的運算應在域GF(2?)內進行。加法和減法相當于二進制中的異或處理(XOR)。乘法和除法構建符號字符多項式C(x)=Cn-1x”-1+Cn-2x"-2+…+C?x1+由上面得到的j個L值構建錯誤位置多項式:L(x)=L;-1x?+L;-1x-1計算L(x)在x=2*的值,k從0到n-1,n為符號中符號字符的總數。只要L(2*)=0,錯誤的位把m個錯誤位置保存為變量E。到Em-1,其中m為所找到的錯誤位置數。使用糾錯位置變量和第一個m的復合值S構造并解關于m的聯立方程組,其中X。到Xm-1(錯誤量值)為關于m的未該算法的C語言實現可以從美國AIM的數據矩陣碼開發者Diskette獲得。中。函數ReedSolomon()首先生使用素數模數“pp”(在ECC200,301情況下)在長度為“gf”的伽羅瓦/*"prob(x,y,log,alog,gf)"returnstheproduct"x"times"y"intprob(intx,inty,int*log,inELSEreturnalog[(log[x]+log}/*"ReedSolomon(wd,nd,nc,gf.pp)"takes"nd"datacodewordvaluesinwd[]*//*powerof2and"pp"isthevalueofitsprimemoduluspolynomial*/voidReedSolomon(int*wd,intnd,intnc,ininti,j,/*allocate,thengeneratethelog&antilog=malloc(sizeof(int)*gffor(/*allocate,thengeneratethegeneratorpolynomialcoefficients:*/c[i]=c[i-1]*prob(c[j],alog[i],}c[0]=prob(c[0],alog[i],lowd[nd+j]=wd[nd+j+1]^prob(k,c[nc-j-1],log,alog}}}/*"module"places"chr+bit"withappropriatewrappingvoidmodule(introw,int{if(row<0){row+=nrow;colif(col<0){col+=ncol;row+=array[row*ncol+col]=10*chr+bit;}/*"utah"placesthe8bitsofautah-shapedsymbolcharacterinECC200*/module(row-2,col-1,chmodule(row-1,col-2,chmodule(row-1,col-1,chmodule(row—1,col,chmodule(row,col-2,chmodule(row,col-1,ch/*"cornerN"places8bitsofthefourspecialcornercasesinECC2module(nrow-1,1,chrmodule(nrow-1,2,chrmodule(nrow-2,0,chrmodule(nrow-1,0,chrmodule(nrow-2,0,chrmodule(nrow-1,0,chrmodule(nrow-1,ncol-1,ch/*"ecc200"fillsannrowfor(row=0;row<nrow;row+十){}}/*repeatedlyfirstcheckforoneoftheif((row==nrow-2)&.&.(col==0)&.&(ncol%if((row==nrow+4)&&(col==2)&&(!(ncol%8)))cor/*sweepupwarddiagonally,insertingsuccessivif((row<nrow)&.&(col>=0)&&(!array[rowrow十=1;col+=3;/*&.thensweepdownif((row>=0)&&(col<ncol)&&(!array[rowrow十=2;col-=2;row十=3;col+=1;/*Lastly,ifthelowerrighthandcornerisuntouched,fillinfixedpatternarray[nrow*ncol-1]=array[nrow*nco}/*"main"checksforvalidcommandlineentries,thencprintf("Commandline:ECC200#_of_Data_Rows#_of_Data_Columns\nnrow=atoi(argv[1]);ncol=atoi(argif((nrow>=6)&&(~nrow&.0x01)&&(ncol>=6)&&(~narray=malloc(sizeof(elseprintf("%3d.%d",z/10,z%10}}}基本的符號字符圖形(見圖H.2)。這些排列的變化要考慮上下邊界之間列和列的關系(見放置。需要的特殊符號字符對數量隨著映像圖矩陣周界尺寸增加而成比例的增加。圖H.1和模塊a8和a7的行關系的列關系映像矩陣實例中的圖1a7行=a8行c3列=c6列無正方形:82,162,242,322,圖H.16左左邊右邊的行關系的列關系參考圖編號影響的映像矩陣實例中的圖2c3列=c6列-2無正方形:102,182圖H.10和圖H.173圖H.3正方形:122,202,282,圖H.11和圖H.184圖H.4正方形:142,222圖H.12和圖H.195圖H.5圖H.136無圖H.147a7行=a8行+4圖H.6圖H.15圖H.3角落情況1圖H.4角落情況2圖H.5角落情況3圖H.6角落情況4這些數據區域相鄰構成32×32的映像矩陣。每個符號格式的映像矩陣的尺寸見表7。模塊放置的開始順序166.36.48.48.5y.15/810.310.410.57.1圖H.3先于其上方的符號字符編號(見圖H.11和圖H.18的例子)。圖H.6先于其上方的符號字符編號(見圖H.15的例子)。遵循這個程序的典型的映像矩陣見H.3。圖H.9~圖H.15分別覆蓋了邊界放置的7種情圖H.13尺寸為6×16的長方形映像矩陣的碼字放置7.2[6.66.76.89.39.49.57.47.58.18.27.77.88.38.48.53.13.28.68.78.817.317.417.512.112.218.618.718.827.327.427.53.33.43.54.14.217.617.717.812.312.412.513.113.227.627.21.621.721.8|24.324.424.5圖H.14尺寸為10×24的長方形映像矩陣的碼字放置1.36.66.76.8|3.33.43.54.14.212.612.712.89.39.49.510.110.218.618.718.8153154158.38.48.511.11.210.610.710.814.314.414.517.117.216.616.716.88.68.7881L311.411.513.113.214.614.714.817818.29.69.79.810.310.410.514.114.215.615.715816316.4圖H.15尺寸為6×28的長方形映像矩陣的碼字放置圖H.16尺寸為16的正方形映像矩陣的碼字放置28.328.428.537.137.224.624.724.835.135.2圖H.17尺寸為18的正方形映像矩陣的碼字放置31.331.431.544.344.444.5指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側-由X維度和編碼的數據決定高度1X在所有四面指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側由X維度和編碼的數據決定高度1X在所有四面指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側由X維度和編碼的數據決定高度1X在所有四面用于常規配送的物流單元的符號尺寸見表I.4。指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側 由X維度和編碼的數據決定高度1X在所有四面指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側由X維度和編碼的數據決定高度1X在所有四面用于零部件直接標記生成二維條碼應用中的符號尺寸見表L.6。指定符號X維度/mm(in)給定X維度的空白區目標值左側右側—陣碼由X維度和編碼的數據決定高度1X在所有四面以外直接標記物品記(噴碼)由X維度和編碼的數據決定高度1X在所有四面的直接標記,指定符號X維度/mm(in)給定X維度的空白區目標值左側右側標記·由X維度和編碼的數據決定高度1X在所有四面30T|30S|90)的直接標記,如由X維度和編碼的數據決定高度1X在所有四面30T|30S|90)器械/手術器“創建的“L”形尋像圖形中是“連接模塊”的直接標記方式(如激光蝕刻)。·創建的“L”形尋像圖形中是“非連接模塊”的直接標記方式(如機械打點)。指定符號X維度/mm(in)給定X維度的最小空白區目標值對于最小左側右側陣碼由X維度和編碼的數據決定高度1X在所有四面指定符號X維度/m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論