第10章
二維碼打印以及QR碼生成目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析10.1二維碼生成技術(shù)概述二維條碼的生成包括信息編碼、糾錯(cuò)編碼、符號(hào)表示和符號(hào)印制4個(gè)過(guò)程。二維條碼生成總體流程。目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析10.2.1
QR碼概述QRCode是由日本Denso公司于1994年9月研制的一種矩陣式二維條碼,QR(QuickResponse)從這個(gè)名字就可以看出快速識(shí)讀的特性。QR碼的特性的基本特性
符號(hào)規(guī)格21×21模塊(版本1)-177×177模塊(版本40)
(每增加一規(guī)格:每邊增加4個(gè)模塊)數(shù)據(jù)類型與容量(指最大規(guī)格符號(hào)版本40-L級(jí))數(shù)字?jǐn)?shù)據(jù)7089個(gè)字符
字母數(shù)據(jù)4296個(gè)字符
8位字節(jié)數(shù)據(jù)2953個(gè)字符
中國(guó)漢字、日本漢字?jǐn)?shù)據(jù)1817個(gè)字符數(shù)據(jù)表示方法深色模塊表示二進(jìn)制“1”,淺色模塊表示二進(jìn)制“0”。可以反白糾錯(cuò)能力L級(jí):約可糾錯(cuò)7%的數(shù)據(jù)碼字
M級(jí):約可糾錯(cuò)15%的數(shù)據(jù)碼字
Q級(jí):約可糾錯(cuò)25%的數(shù)據(jù)碼字
H級(jí):約可糾錯(cuò)30%的數(shù)據(jù)碼字結(jié)構(gòu)鏈接(可選)可用1-16個(gè)QRCode條碼符號(hào)表示掩模(固有)可以使符號(hào)中深色與淺色模塊的比例接近1:1,使因相鄰模塊的排列造成譯碼困難的可能性降為最小。擴(kuò)充解釋(可選)這種方式使符號(hào)可以表示缺省字符集以外的數(shù)據(jù)(如阿拉伯字符、古斯拉夫字符、希臘字母等),以及其他解釋(如用一定的壓縮方式表示的數(shù)據(jù))或者針對(duì)行業(yè)特點(diǎn)的需要進(jìn)行編碼。獨(dú)立定位功能有1)360度識(shí)讀:QR碼的三個(gè)角上有三個(gè)尋象圖形,使用CCD識(shí)讀設(shè)備來(lái)探測(cè)碼的位置、大小、傾斜角度、并加以解碼,實(shí)現(xiàn)360度高速識(shí)讀。2)識(shí)讀速度快:每秒可以識(shí)讀30個(gè)含有100個(gè)字符QR碼。3)QR碼容量密度大:可以放入1817個(gè)漢字、7089個(gè)數(shù)字、4200個(gè)英文字母。QR碼用數(shù)據(jù)壓縮方式表示漢字,僅用13bit即可表示一個(gè)漢字,比其他二維條碼表示漢字的效率提高了20%。此外微型QR碼可以在1厘米的空間內(nèi)放入35個(gè)數(shù)字或9個(gè)漢字或21個(gè)英文字母,適合對(duì)小型電路板對(duì)ID號(hào)碼進(jìn)行采集的需要。4)高糾錯(cuò)等級(jí):QR具有4個(gè)等級(jí)的糾錯(cuò)功能,即使破損或破損也能夠正確識(shí)讀。5)QR碼抗彎曲的性能強(qiáng):通過(guò)QR碼中的每隔一定的間隔配置有校正圖形,從碼的外形來(lái)求得推測(cè)校正圖形中心點(diǎn)與實(shí)際校正圖形中心點(diǎn)的誤差來(lái)修正各個(gè)模塊的中心距離,即使將QR碼貼在彎曲的物品上也能夠快速識(shí)讀。6)可分割性:QR碼可以分割成16個(gè)QR碼,可以一次性識(shí)讀數(shù)個(gè)分割碼,適應(yīng)于印刷面積有限及細(xì)長(zhǎng)空間印刷的需要。
300個(gè)字符或數(shù)字被編進(jìn)這樣大小的QR碼里面同樣的數(shù)據(jù)只有條碼的十分之一大小QR碼的特性的基本特性
編碼字符集數(shù)字型數(shù)據(jù)(數(shù)字0~9);字母數(shù)字型數(shù)據(jù)(數(shù)字0~9;大寫字母A~Z;9個(gè)其他字符:space,$,%,s,+,-,.,/,:);8位字節(jié)型數(shù)據(jù)(與JISX0201一致的JIS8位字符集(拉丁和假名));中國(guó)漢字字符(GB2312對(duì)應(yīng)的漢字和非議字字符)。每個(gè)QR碼符號(hào)由名義上的正方形模塊構(gòu)成,組成一個(gè)正方形陣列,它由編碼區(qū)域和包括尋象圖形、分隔符、定位圖形和校正圖形在內(nèi)的功能圖形組成。下圖為QR碼版本7符號(hào)的結(jié)構(gòu)圖。QR碼的構(gòu)成QR碼符號(hào)共有40種版本,分別為版本1、版本2……版本40。版本1的規(guī)格為21模塊×21模塊,版本2為25模塊×25模塊,以此類推,每一版本符號(hào)比前一版本每邊增加4個(gè)模塊,直到版本40,規(guī)格為177模塊×177模塊。QR碼編碼的版本信息QR碼編碼的版本信息QR碼編碼的版本信息QR碼編碼的版本信息QR碼編碼的版本信息尋象圖形尋象圖形包括三個(gè)相同的位置探測(cè)圖形,分別位于符號(hào)的左上角、右上角和左下角,如圖2所示。每個(gè)位置探測(cè)圖形可以看作是由3個(gè)重疊的同心的正方形組成,它們分別為7x7個(gè)深色色模塊、5x5個(gè)淺模塊和3x3個(gè)深色模塊。如下圖所示,位置探測(cè)圖形的模塊寬度比為1:1:3:1:1。符號(hào)中其他地方遇到類似圖形的可能性極小,因此可以在視場(chǎng)中迅速地識(shí)別可能的QR碼符號(hào)。識(shí)別組成的尋象圖形的三個(gè)位置探測(cè)圖形,可以明確地確定視場(chǎng)中QR碼的位置和方向。QR碼編碼功能圖分隔符在每個(gè)位置探測(cè)圖形和編碼區(qū)域之間有寬度為1個(gè)模塊的分隔符,它全部由淺色模塊組成。定位圖形水平和垂直定位圖形分別為一個(gè)模塊寬的一行和一列,由深色淺色模塊交替組成,其開始和結(jié)尾都是深色模塊。水平定位圖形位于上部的兩個(gè)位置探測(cè)圖形之間,符號(hào)的第6行(第0行開始計(jì)算)。垂直定位圖形位于左側(cè)的兩個(gè)位置探測(cè)圖形之間,符號(hào)的第6列。它們的作用是確定符號(hào)的密度和版本,提供決定模塊坐標(biāo)的基準(zhǔn)位置。求各模塊中心坐標(biāo)的圖形。當(dāng)QR碼歪斜或模塊間隔出現(xiàn)誤差時(shí)用于糾正數(shù)據(jù)模塊的中心坐標(biāo)。校正圖形每個(gè)校正圖形可看作是3個(gè)重疊的同心正方形,由5×5個(gè)的深色模塊,3×3個(gè)的淺色模塊以及位于中心的一個(gè)深色(1x1)模塊組成。校正圖形的數(shù)量是根據(jù)版本號(hào)而定,在模式2的符號(hào)中,版本2以上(含版本2)的QR碼均有校正圖形。補(bǔ)正QR碼歪斜的圖形,求得校正圖形的中心坐標(biāo),補(bǔ)正QR碼的歪斜。在校正圖形中配置有孤立的黑模塊,使得更容易檢測(cè)出中心坐標(biāo)。編碼區(qū)域編碼區(qū)域包括表示數(shù)據(jù)碼字、糾錯(cuò)碼字、版本信息和格式信息的符號(hào)字符??瞻讌^(qū)空白區(qū)為環(huán)繞在符號(hào)四周的4個(gè)模塊寬的區(qū)域,其反射率應(yīng)與淺色模塊相同。
QR碼編碼功能圖10.2.2
QR碼編碼方法綜述第一步數(shù)據(jù)分析分析要輸入的數(shù)據(jù)流,確定要進(jìn)行編碼的字符的類型。第二步數(shù)據(jù)編碼將數(shù)據(jù)字符轉(zhuǎn)換為位流。在當(dāng)需要進(jìn)行模式轉(zhuǎn)換時(shí),在新的模式段開始前加入模式指示符進(jìn)行模式轉(zhuǎn)換。在數(shù)據(jù)序列后面加入終止符。將產(chǎn)生的位流分為每8位一個(gè)碼字。必要時(shí)加入填充字符以填滿按照版本要求的數(shù)據(jù)碼字?jǐn)?shù)。第三步糾錯(cuò)編碼按需要將碼字序列分塊,以便按塊生成相應(yīng)的糾錯(cuò)碼字,并將其加入到相應(yīng)的數(shù)據(jù)碼字序列的后面。第四步構(gòu)造最終信息在每一塊中置入數(shù)據(jù)和糾錯(cuò)碼字,必要時(shí)加剩余位。第五步在矩陣中布置模塊將碼流放入放入到碼字模塊中,和尋象圖形、分隔符、定位圖形、校正圖形放入矩陣。第六步掩模依次將掩模圖形用于符號(hào)的編碼區(qū)域。評(píng)價(jià)結(jié)果,并選擇其中使深色淺色模塊比率最優(yōu)且使不希望出現(xiàn)的圖形最少化的結(jié)果。第七步格式和版本信息生成格式和版本信息(如果用到時(shí)),形成符號(hào)。
版本每邊的模塊數(shù)(A)功能圖形模塊數(shù)(B)格式及版本信息模塊數(shù)(C)除C以外的數(shù)據(jù)模塊數(shù)
(D=A2-B-C)數(shù)據(jù)容量
[碼字]*(E)剩余位1212023120826022523531359447329243315677074332513180710075372593110791347641267311383172774539067156819608493986719362420953406672336292010574146727683460116142267323240401265430673728466013694386742565320147361167465158131577619675243655316816276758677333178563567652381531889643677211901319936516779319913209765967868310853QR碼編碼—版本與模塊關(guān)系
版本每邊的模塊數(shù)(A)功能圖形模塊數(shù)(B)格式及版本信息模塊數(shù)(C)除C以外的數(shù)據(jù)模塊數(shù)
(D=A2-B-C)數(shù)據(jù)容量
[碼字]*(E)剩余位2110188267925211564221058906710068125842310989867109161364424113906671179614744251179146712708158842612192267136521706427125930671462818284281291203671537119213291331211671641120513301371219671748321853311411227671858723233321451235671972324653331491243672089126113341531251672209127613351571574672300828760361611582672427230340371651590672556831960381691598672689633620391731606672825635320401771614672964837060QR碼編碼—版本與模塊關(guān)系QR碼數(shù)據(jù)碼字的生成主要通過(guò)擴(kuò)展解釋模式(ECI)、數(shù)字模式(NC)、字母數(shù)字模式(AC)、8位字節(jié)模式(8-bitByte)、中國(guó)漢字模式等,將數(shù)據(jù)信息轉(zhuǎn)化為二進(jìn)制的位流序列,然后按每8位一個(gè)碼字,將位流序列轉(zhuǎn)化為碼字序列。下面主要分析一下ECI、NC、AC、中國(guó)漢字模式下數(shù)據(jù)碼字的生成。10.2.3
QR碼數(shù)據(jù)碼字的生成
數(shù)字模式數(shù)字模式對(duì)十進(jìn)制數(shù)字0~9(ASCII值30HEX至39HEX)編碼,通常的密度為每10位表示3個(gè)字符。字母數(shù)字模式字母數(shù)字模式對(duì)45個(gè)字符的字符集進(jìn)行編碼,即:10個(gè)數(shù)字0~9(ASCII值30HEX至39HEX),26個(gè)字母字符A~Z(ASCII值41HEX至5AHEX)以及9個(gè)符號(hào)SP、$、%、*、+、-、.、/、:(ASCII值分別為20HEX,24HEX,25HEX,2AHEX,2BHEX,2DHEX,2EHEX,2FHEX,3AHEX)。通常情況下,兩個(gè)輸入字符用11位表示。8位字節(jié)模式8位字節(jié)模式用于表示與JISX0201一致的8位拉丁/假名字符集(字符值為00HEX至FFHEX),其編碼密度為每個(gè)字符8位。QR碼編碼模式日本漢字模式日本漢字模式用于表示與基于JISX0208的轉(zhuǎn)換JIS系統(tǒng)一致的日本漢字字符。轉(zhuǎn)換JIS值由JISX0208轉(zhuǎn)換而來(lái)。具體內(nèi)容見JISX0208附錄1轉(zhuǎn)換代碼表示法。每個(gè)雙字節(jié)字符由13位二進(jìn)制碼字表示。中國(guó)漢字模式混合模式QR碼符號(hào)可以包含以對(duì)多種模式所表示的混合數(shù)據(jù)序列。結(jié)構(gòu)鏈接模式結(jié)構(gòu)鏈接模式用于把一個(gè)數(shù)據(jù)文件分開表示為多個(gè)QR碼符號(hào)的序列,要求所有的符號(hào)可以識(shí)讀并且數(shù)據(jù)可以按正確的順序重新建立。每個(gè)符號(hào)都要有一個(gè)結(jié)構(gòu)鏈接頭,以標(biāo)識(shí)這個(gè)序列的長(zhǎng)度及該符號(hào)在其中的位置,并且檢驗(yàn)是否所有識(shí)讀的符號(hào)屬于同一個(gè)文件。QR碼編碼模式模式指示符ECI0111數(shù)字0001字母數(shù)字00108位字節(jié)0100日本漢字1000中國(guó)漢字1101結(jié)構(gòu)鏈接0011FNC10101(第一位置)1001(第二位置)終止符(信息結(jié)尾)0000版本數(shù)字模式
字母數(shù)字模式8位字節(jié)模式日本漢字模式中國(guó)漢字模式1~91098810~261211161027~4014131612模式指示符字符計(jì)數(shù)指示符的位數(shù)整個(gè)符號(hào)的結(jié)束由4位終止符0000表示,當(dāng)符號(hào)數(shù)據(jù)位流后所余的容量不足4位時(shí),終止符將被截短。終止符本身不是模式指示符。QR碼編碼數(shù)字模式將輸入的數(shù)據(jù)每三位分為一組,將每組數(shù)據(jù)轉(zhuǎn)換為10位二進(jìn)制數(shù)。如果所輸入的數(shù)據(jù)的位數(shù)不是3的整數(shù)倍,所余的1位或2位數(shù)字應(yīng)分別轉(zhuǎn)換為4位或7位二進(jìn)制數(shù)。將二進(jìn)制數(shù)據(jù)連接起來(lái)并在前面加上模式指示符和字符計(jì)數(shù)指示符。數(shù)字模式中字符計(jì)數(shù)指示符如表3中定義的有10、12或14位。輸入的數(shù)據(jù)字符的數(shù)量轉(zhuǎn)換為10、12或14位二進(jìn)制數(shù)后,放置在模式指示符之后,二進(jìn)制數(shù)據(jù)序列之前。例1(符號(hào)版本1-H)輸入的數(shù)據(jù): 012345671)分為3位一組: 012345672)將每組轉(zhuǎn)換為二進(jìn)制: 012→0000001100 345→0101011001 67→10000113)將二進(jìn)制數(shù)連接為一個(gè)序列:0000001100010101100110000114)將字符計(jì)數(shù)指示符轉(zhuǎn)換為二進(jìn)制(版本1-H為10位):字符數(shù)為:8→00000010005)加入模式指示符0001以及字符計(jì)數(shù)指示符的二進(jìn)制數(shù)據(jù):00010000001000000000110001010110011000011QR碼編碼例2(符號(hào)版本1-H)輸入的數(shù)據(jù): 01234567890123451)分為3位一組: 01234567890123452)將每組轉(zhuǎn)換為二進(jìn)制:012→0000001100 345→0101011001 678→1010100110 901→1110000101 234→0011101010 5→01013)將二進(jìn)制數(shù)連接為一個(gè)序列:0000001100010101100110101001101110000101001110101001014)將字符計(jì)數(shù)指示符轉(zhuǎn)換為二進(jìn)制(版本1-H為10位):字符數(shù)為:16→00000100005)加入模式指示符0001以及字符計(jì)數(shù)指示符的二進(jìn)制數(shù)據(jù):00010000010000000000110001010110011010100110111000010100111010100101數(shù)字模式中位流的長(zhǎng)度計(jì)算公式如下:B=4+C+10(DDIV3)+R其中:B=位流的位數(shù)
C=字符計(jì)數(shù)指示符的位數(shù)(根據(jù)表3)
D=輸入的數(shù)據(jù)字符數(shù)
R=0當(dāng)(DMOD3)=0 R=4當(dāng)(DMOD3)=1 R=7當(dāng)(DMOD3)=2QR碼編碼將輸入的數(shù)據(jù)分為兩個(gè)字符一組,用11位二進(jìn)制表示。將前面字符的值乘以45與第二個(gè)字符的值相加,將所得的結(jié)果轉(zhuǎn)換為11位二進(jìn)制數(shù)。如果輸入的數(shù)據(jù)的字符數(shù)不是2的整數(shù)倍,將最后一個(gè)字符編碼為6位二進(jìn)制數(shù)。將所得的二進(jìn)制數(shù)據(jù)連接起來(lái)并在前面加上模式指示符和字符計(jì)數(shù)指示符,按表3的規(guī)定在字母數(shù)字模式中,字符計(jì)數(shù)指示符的長(zhǎng)度為9、11或13位。將輸入的字符數(shù)編碼為9、11或13位二進(jìn)制數(shù),放在模式指示符之后,二進(jìn)制數(shù)據(jù)序列之前。字母數(shù)字模式按照下表,每個(gè)輸入的字符賦于一個(gè)數(shù)值V,它的值為0到44。字符值字符值字符值字符值字符值字符值字符值字符值0066C12I18O24U30SP36.421177D13J19P25V31$37/432288E14K20Q26W32%38:443399F15L21R27X33*3944A10G16M22S28Y34+4055B11H17N23T29Z35-41QR碼編碼例(符號(hào)版本1-H)輸入的數(shù)據(jù): AC-421)根據(jù)表5查出字符的值: AC-42→(10,12,41,4,2)2)將結(jié)果分為2個(gè)一組: (10,12)(41,4)(2)3)將每組數(shù)據(jù)轉(zhuǎn)換為11位二進(jìn)制數(shù): (10,12)10*45+12→462→00111001110
(41,4)41*45+4→1849→11100111001
(2)→2→0000104)二進(jìn)制數(shù)據(jù)順次連接: 00111001110111001110010000105)將字符計(jì)數(shù)指示符轉(zhuǎn)換為二進(jìn)制(版本1-H為9位):輸入的字符數(shù) 5→0000001016)在二進(jìn)制數(shù)據(jù)前加上模式指示符0010和字符計(jì)數(shù)指示符:00100000001010011100111011100111001000010字母數(shù)據(jù)模式的二進(jìn)制位流位數(shù)由下式計(jì)算:B=4+C(字符計(jì)數(shù)指示符)+11(DDIV2)+6(DMOD2)其中:B=位流的位數(shù)
C=字符計(jì)數(shù)指示符的位數(shù)
D=輸入的字符數(shù)QR碼編碼QR碼編碼中國(guó)漢字模式下數(shù)據(jù)碼字的生成
GB2312中規(guī)定的中國(guó)漢字和非漢字字符共7445個(gè),其中漢字字符6768個(gè)。GB2312規(guī)定的字符由兩個(gè)字節(jié)表示。字符值為CB2312中圖形字符的內(nèi)碼值。將輸人數(shù)據(jù)字符按下面定義轉(zhuǎn)換為13位二進(jìn)制碼字。隨后將二進(jìn)制數(shù)據(jù)連接起來(lái)并在前面加上模式指示符、中國(guó)漢字子集指示符和字符計(jì)數(shù)指示符。中國(guó)漢字模式的中國(guó)漢字子集指示符為4位二進(jìn)制數(shù),字符計(jì)數(shù)指示符的位數(shù)按規(guī)定為8、10或12位,將字符計(jì)數(shù)指示符轉(zhuǎn)換為相應(yīng)的8、10或12位二進(jìn)制數(shù),放在模式指示符之后,二進(jìn)制數(shù)據(jù)序列之前。QR碼編碼中國(guó)漢字模式下數(shù)據(jù)碼字的生成
1、對(duì)于第一字節(jié)值在A1HEX-AAHEX、范圍,第二字節(jié)值在AlHEX-FEHEX范圍的字符:①第一字節(jié)值減去A1HEX;②將①的結(jié)果乘以60HEX;③第二字節(jié)值減去A1HEX;④將②的結(jié)果加上③的結(jié)果;⑤將結(jié)果轉(zhuǎn)換為13位_進(jìn)制串。QR碼編碼中國(guó)漢字模式下數(shù)據(jù)碼字的生成
2、對(duì)于第一字節(jié)值在B0HEX-FAHEX范圍,第二字節(jié)值在A1HEX-FEHEX范圍的字符:①笫一字節(jié)值減去A6HEX;②將①的結(jié)果乘以60HEX;③第二字節(jié)值減去AlHEX;④將②的結(jié)果加上③的結(jié)果:⑤將結(jié)果轉(zhuǎn)換為13位二進(jìn)制串。QR碼編碼中國(guó)漢字模式下數(shù)據(jù)碼字的生成
【例2.4】
輸入字符“♂”“安”字符值:A1ElB0B2①第一字節(jié)值減去AIHEX或A6HEXA1–A1=OB0-A6=0A②將①的結(jié)果乘以60HEX0×60=0A×60=3C0③第二字節(jié)值減去A1HEXEl-A1=40B2–A1=11④將②的結(jié)果加上③的結(jié)果0+40=403C0+11=3D1⑤將結(jié)果轉(zhuǎn)換為13位二進(jìn)制串00000010000000001111010001
QR碼編碼中國(guó)漢字模式下數(shù)據(jù)碼字的生成
3、對(duì)于所有的中國(guó)漢字字符在輸入的數(shù)據(jù)字符的二進(jìn)制隊(duì)列前加上模式指示符(1101)、中國(guó)漢字子集指示符(4位,對(duì)應(yīng)GB2312的子集指示符為0001)和字符計(jì)數(shù)指示符的二進(jìn)制表示(8,10或12位)。目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析糾錯(cuò)等級(jí)的選擇QR碼采用糾錯(cuò)算法生成一系列糾錯(cuò)碼字,添加在數(shù)據(jù)碼字序列后,使得符號(hào)可以在遇到損壞時(shí)不致丟失數(shù)據(jù)。糾錯(cuò)共有4個(gè)糾錯(cuò)等級(jí),對(duì)應(yīng)四種糾錯(cuò)容量。QR碼的糾錯(cuò)等級(jí)及每一糾錯(cuò)等級(jí)所對(duì)應(yīng)的糾錯(cuò)能力下表,在編碼時(shí),應(yīng)根據(jù)QR碼符號(hào)的使用環(huán)境及用戶要求選擇適當(dāng)?shù)募m錯(cuò)等級(jí)。糾錯(cuò)等級(jí)糾錯(cuò)能力(%)L7M15Q25H30糾錯(cuò)碼字計(jì)算
RS糾錯(cuò)是現(xiàn)在信息領(lǐng)域中應(yīng)用最為廣泛的一種糾錯(cuò)碼之一,在二維碼中主要使用的就是RS糾錯(cuò)。RS是一組性能優(yōu)良的分組線性碼,在同樣的編碼效率下糾錯(cuò)能力最強(qiáng)。舉例:(n,k)RS碼,假設(shè)(6,4),總碼詞數(shù)為6個(gè),信息碼4個(gè),則糾錯(cuò)碼6-4=2個(gè),設(shè)4個(gè)信息碼為(m3,m2,m1,m0),則碼詞多項(xiàng)式為:M(x)=m3x3+m2x2+m1x+m0;生成多項(xiàng)式G(x)=(x-a1)(x-a2)…(x-a(n-k))=(x-a1)(x-a2)除式M(x)*x(n-k)/G(x)=(m3x3+m2x2+m1x+m0)*x2/(x-a1)(x-a2)=H(x)+余式余式=c1x+c0,則編碼后碼詞為:m3,m2,m1,m0,c1,c0
解碼:碼詞多項(xiàng)式/生成多項(xiàng)式=(m3x5+m2x4+m1x3+m0x2+c1x1+c0)/(x-a1)(x-a2)整除則碼詞沒有錯(cuò)誤,不整除則碼詞有錯(cuò)誤,需糾錯(cuò)。目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析碼字在矩陣中的布置1、符號(hào)字符表示在QR碼符號(hào)中有兩種類型的符號(hào)字符:規(guī)則的和不規(guī)則的。它們的使用取決于它們?cè)诜?hào)中的位置,以及與其他符號(hào)字符和功能圖形的關(guān)系。多數(shù)碼字在符號(hào)中表示為規(guī)則的2×4個(gè)模塊的排列。其排列有兩種方式,垂直布置(2個(gè)模塊寬,4個(gè)模塊高);如果需要改變方向,可以水平布置(4個(gè)模塊寬,2個(gè)模塊高)。當(dāng)改變方向或緊靠校正圖形或其他功能圖形時(shí),需用不規(guī)則符號(hào)字符。2、功能圖形的布置按照與使用的版本相對(duì)應(yīng)的模塊數(shù)構(gòu)成空白的正方形矩陣。在尋象圖形、分隔符、定位圖形以及校正圖形相應(yīng)的位置,填入適當(dāng)?shù)纳钌珳\色模塊。格式信息和版本信息的模塊位置暫時(shí)空置,它們對(duì)所有版本都是相同的。3、符號(hào)字符的布置在QR符號(hào)的編碼區(qū)域中,符號(hào)字符以2個(gè)模塊寬的縱列從符號(hào)的右下角開始布置,并自右向左,且交替地從下向上或從上向下安排。下面給出了符號(hào)字符以及字符中位的布置原則。在縱列中的布置為從右到左,向上或向下應(yīng)與符號(hào)字符的布置方向一致。10.4.1
QR碼生成與布置
b)每個(gè)碼字的最高位(表示為位7)應(yīng)放在第一個(gè)可用的模塊位置,以后的放在下一個(gè)模塊的位置。如果布置的方向是向上的,則最高位占用規(guī)則模塊字符的右下角的模塊,布置的方向向下時(shí)為右上角。如果先前的字符結(jié)束于右側(cè)的模塊縱列,最高位可能占據(jù)不規(guī)則符號(hào)字符的左下角模塊的位置。c)如果符號(hào)字符的兩個(gè)模塊縱列同時(shí)遇到校正圖形或定位圖形的水平邊界,可以在圖形的上面或下面繼續(xù)布置。d)如果遇到符號(hào)字符區(qū)域的上或下邊界(即符號(hào)的邊緣,格式信息,版本信息或分隔符),碼字中剩余的位應(yīng)改變方向放在左側(cè)的縱列中。e)如果符號(hào)字符的右側(cè)模塊縱列遇到校正圖形或版本信息占用的區(qū)域,位的布置形成不規(guī)則排列符號(hào)字符,在相鄰校正圖形或版本信息的單個(gè)縱列繼續(xù)延伸。如果字符在可用于下一個(gè)字符的兩列縱列之前結(jié)束,則下一個(gè)符號(hào)字符的首位放在單個(gè)縱列中。QR碼生成與布置還有另一種可供選擇的符號(hào)字符布置方法,可得到相同的結(jié)果,將整個(gè)碼字序列視為一個(gè)單獨(dú)的位流,將其(最高位開始)按從右向左,按向上和向下的方向交替的布置于兩個(gè)模塊寬的縱列中。并跳過(guò)功能圖形占用的區(qū)域,在縱列的頂部或底部改變方向,每一位應(yīng)放在第一個(gè)可用的位置。當(dāng)符號(hào)的數(shù)據(jù)容量不能恰好分為整數(shù)個(gè)8位符號(hào)字符時(shí),要用相應(yīng)的剩余位填充符號(hào)的容量。在進(jìn)行掩模以前,這些剩余位的值為0。版本2-M符號(hào)的符號(hào)字符布置QR碼生成與布置
為了QR碼閱讀的可靠性,最好均衡地安排深色與淺色模塊。應(yīng)盡可能避免位置探測(cè)圖形的位圖1011101(牛眼)出現(xiàn)在符號(hào)的其他區(qū)域。為了滿足上述條件,應(yīng)按以下步驟進(jìn)行掩模。1)掩模不用于功能圖形2)用多個(gè)矩陣圖形連續(xù)地對(duì)已知的編碼區(qū)域的模塊圖形(格式信息和版本信息除外)進(jìn)行XOR操作。3)對(duì)每個(gè)結(jié)果圖形的不合要求的部分記分,以評(píng)估這些結(jié)果。4)選擇得分最低的圖形。
下表給出了掩模圖形的參考(放置于格式信息中的二進(jìn)制參考)和掩模圖形生成的條件。掩模圖形是通過(guò)將編碼區(qū)域(不包括為格式信息和版本信息保留的部分)內(nèi)那些條件為真的模塊定義為深色而產(chǎn)生的。所示的條件中,i代表模塊的行位置,j代表模塊的列位置,(i,j)=(0,0)代表符號(hào)中左上角的位置。(為了避開牛眼等功能圖)掩模圖形參考條件000(i+j)mod2=0001imod2=0010jmod3=0011(i+j)mod3=0100((idiv2)+(jdiv3))mod2=0101(ij)mod2+(ij)mod3=0110((ij)mod2+(ij)mod3)mod2=0111((ij)mod3+(i+j)mod2)mod2=010.4.2
QR碼掩膜
版本1符號(hào)的所有的掩模圖形,000到111QR碼掩膜符號(hào)的掩模過(guò)程QR碼掩膜在依次用每一個(gè)掩模圖形進(jìn)行掩模操作之后,要通過(guò)對(duì)每一次如下情況的出現(xiàn)進(jìn)行罰點(diǎn)記分,以便對(duì)每一個(gè)結(jié)果進(jìn)行評(píng)估,分?jǐn)?shù)越高,其結(jié)果越不可用。在下表中,N1到N4為對(duì)不好的特征所罰分?jǐn)?shù)的權(quán)重(N1=3,N2=3,N3=40,N4=10),i為緊鄰的顏色相同模塊數(shù)大于5的次數(shù),k為符號(hào)深色模塊所占比率離50%的差距,步長(zhǎng)為5%。雖然掩模操作僅對(duì)編碼區(qū)域進(jìn)行,不包括格式信息,但評(píng)價(jià)是對(duì)整個(gè)符號(hào)進(jìn)行的。特征評(píng)價(jià)條件分?jǐn)?shù)行/列中相臨的模塊的顏色相同模塊數(shù)=(5+i)N1+i模塊塊的顏色相同顏色相同的模塊組成*塊塊尺寸=m×nN2×(m-1)×(n-1)在行/縱列中出現(xiàn)1:1:3:1:1(深淺深淺深)圖形N3整個(gè)符號(hào)中深色模塊的比率50±(5×k)%到50±(5×(k+1))%N4×k應(yīng)選擇掩模結(jié)果中罰分最低的掩模圖形用于符號(hào)掩模。QR碼掩膜格式信息為15位,其中有5個(gè)數(shù)據(jù)位,10個(gè)是用BCH(15,5)編碼計(jì)算得到的糾錯(cuò)位。第1-2位是糾錯(cuò)信息指示符,如下表:糾錯(cuò)等級(jí)二進(jìn)制指示符L01M00Q11H10格式信息數(shù)據(jù)的第3到第5位的內(nèi)容為掩模圖形參考。按上述方法計(jì)算10位糾錯(cuò)數(shù)據(jù),并加在5個(gè)數(shù)據(jù)位之后;將15位格式信息與掩模圖形101010000010010進(jìn)行XOR運(yùn)算,以確保糾錯(cuò)等級(jí)和掩模圖形合在一起的結(jié)果不全是0;10.4.3
QR碼格式信息
例:設(shè)定糾錯(cuò)等級(jí)為M:00掩模圖形參考: 101數(shù)據(jù): 00101BCH位: 0011011100掩模前的位序列: 001010011011100用于XOR操作的掩模圖形:101010000010010格式信息模塊圖形: 100000011001110QR碼格式信息版本信息為18位,其中,6位數(shù)據(jù)位,通過(guò)BCH(18,6)編碼計(jì)算出12個(gè)糾錯(cuò)位。6位數(shù)據(jù)為版本信息,最高位為第一位。12位糾錯(cuò)信息在6位數(shù)據(jù)之后。只有版本7~40的符號(hào)包含版本信息,沒有任何版本信息的結(jié)果全為0。所以不必對(duì)版本信息進(jìn)行掩模。最終的版本信息應(yīng)映射在符號(hào)中預(yù)留的位置。需要注意的是,由于版本信息的正確譯碼是整個(gè)符號(hào)正確譯碼的關(guān)鍵,因此版本信息在符號(hào)中出現(xiàn)兩次以提供冗余。版本信息的最低位模塊放在編號(hào)為0的位置上,最高位放在編號(hào)為17的位置上。例:版本號(hào): 7數(shù)據(jù): 000111BCH位: 110010010100格式信息模塊圖形:0001111100100101006行×3列模塊組成的版本信息塊放在定位圖形的上面,其右側(cè)緊臨右上角位置探測(cè)圖形的分隔符,3行×6列模塊組成的版本信息塊放在定位圖形的左側(cè),其下邊緊臨左下角位置探測(cè)圖形的分隔符。10.4.4
QR碼版本信息
QR碼版本信息目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析10.5.1二維碼的印制技術(shù)二維條碼生成技術(shù),包括編碼信息到二維條碼符號(hào)表示的轉(zhuǎn)化技術(shù)以及相關(guān)的印制技術(shù)。二維條碼的印制是將二維條碼符號(hào)印制到標(biāo)簽、卡證等物理載體的過(guò)程,是二維條碼技術(shù)應(yīng)用中的一個(gè)重要環(huán)節(jié)。二維條碼的印制技術(shù)主要包括傳統(tǒng)的熱敏、熱轉(zhuǎn)印技術(shù)、噴墨印制技術(shù)、激光蝕刻技術(shù)和針式印制技術(shù)。在制作二維條碼時(shí),應(yīng)根據(jù)不同的二維條碼載體采用不同的印制技術(shù)。二維碼的印制技術(shù)熱敏熱轉(zhuǎn)印技術(shù)噴墨印制技術(shù)激光蝕刻技術(shù)針式印制技術(shù)10.5.2二維碼印制設(shè)備點(diǎn)陣打印機(jī)激光打印機(jī)熱敏/熱轉(zhuǎn)印打印機(jī)噴墨打印機(jī)激光噴碼機(jī)10.5.3二維碼印制設(shè)備的選擇印制載體印制寬度印制速度印制密度目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析6.實(shí)驗(yàn)概述【實(shí)驗(yàn)?zāi)康摹渴煜ざS碼的生成原理;掌握二維碼的生成原理的代碼實(shí)現(xiàn);掌握二維碼的打印的代碼實(shí)現(xiàn)?!緦?shí)驗(yàn)內(nèi)容】一、通過(guò)串口線連接移動(dòng)互聯(lián)終端的COM1與二維碼實(shí)驗(yàn)箱COM口;二、在二維碼實(shí)驗(yàn)箱的顯示屏上選擇“打印機(jī)”模塊;三、在移動(dòng)互聯(lián)終端的程序界面上打開Demo9,(注意:波特率已經(jīng)寫好為115200,串口根據(jù)實(shí)際連接在移動(dòng)互聯(lián)終端上的COM口進(jìn)行選擇,下例以選擇COM1為例),進(jìn)入界面會(huì)提示“請(qǐng)確認(rèn)底板已經(jīng)切換到打印機(jī)模塊”初始界面如圖10-20所示;圖10-20打印機(jī)及QR碼生成初始界面四、點(diǎn)擊右上角“串口設(shè)置”可以對(duì)串口下拉框中對(duì)COM口進(jìn)行選擇,選擇正確后進(jìn)行點(diǎn)擊“保存”操作,點(diǎn)擊“恢復(fù)默認(rèn)”,則波特率會(huì)自動(dòng)調(diào)回到正確的波特率115200(注意:界面設(shè)置如Demo6圖7-2所示);五、在文本輸入框中輸入想要的文本內(nèi)容信息,輸入完成后點(diǎn)擊“生成”,則在二維碼區(qū)域會(huì)生成一個(gè)二維碼圖像,界面如圖10-21所示;圖10-21二維碼生成六、點(diǎn)擊“進(jìn)紙”則紙張會(huì)向上推出,繼續(xù)點(diǎn)擊“打印”,則會(huì)把生成的二維碼從二維碼實(shí)驗(yàn)箱打印機(jī)上打印出來(lái)。目錄5.二維碼的印制3.
QR二維碼糾錯(cuò)技術(shù)4.
QR二維碼符號(hào)表示技術(shù)1.二維碼生成技術(shù)概述2.
QR二維碼的編碼技術(shù)6.實(shí)驗(yàn)描述8.實(shí)驗(yàn)實(shí)現(xiàn)7.實(shí)驗(yàn)原理9.關(guān)鍵代碼解析7.實(shí)驗(yàn)原
評(píng)論
0/150
提交評(píng)論