資源描述:
《QR碼編碼原理二(編碼)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、編碼就是把常見的數(shù)字、字符等轉(zhuǎn)換成QR碼的方法。說具體的編碼之前,先說一下QR碼的最大容量問題。一、最大容量QR碼的最大容量取決于選擇的版本、糾錯級別和編碼模式(Mode:數(shù)字、字符、多字節(jié)字符等)。以版本1、糾錯級別為LevelQ的QR碼為例,可以存儲27個純數(shù)字,或17個字母數(shù)字混合字符或11個8bit字節(jié)數(shù)據(jù)。如果要存儲同樣多的內(nèi)容同時提高糾錯級別,則需要采用更高的版本。版本1~9數(shù)據(jù)容量、糾錯碼容量對照如下表:(version)(errorcorrectinglevel)(countofdatacodewords)countofECcodewords(nume
2、ric)(alphanumeric)8bit1L197412517M1610342014Q1313271611H917171072L3410774732M2816633826Q2222482920H16283420143L55151277753M44261016142Q3436774732H26445835244L802018711478M64361499062Q48521116746H36648250345L10826255154106M864820212284Q62721448760H468810664446L13636322195134M108642551541
3、06Q769617510874H6011213984587L15640370224154M12472293178122Q8810820712586H6613015493648L19448461279192M15488365221152Q110132259157108H86156202122849L23260552335230M182110432262180Q132160312189130H10019223514398下面,就舉例說明將“ABCDE123”轉(zhuǎn)換成為版本1、LevelH的QR碼轉(zhuǎn)換方法。二、模式標(biāo)識符(ModeIndicator)QR碼的模式(Mode)就
4、是前文提到的數(shù)字、字符、8bit字節(jié)碼、多字節(jié)碼等。對于不同的模式,都有對應(yīng)的模式標(biāo)識符(ModeIndicator)來幫助解碼程序進行匹配,模式標(biāo)識符是4bit的二進制數(shù):1、數(shù)字模式(numericmode):00012、混合字符模式(alphanumericmode):00103、8bitbytemode:01004、日本漢字(KANJImode):10005、中國漢字(GB2312):1101由于示例文本串是混合字符,因此將選擇alphanumericmode,其標(biāo)識碼為:0010三、文本串計數(shù)標(biāo)識符(Charactercountindicator)文本串計數(shù)
5、標(biāo)識符用來存儲源內(nèi)容字符串的長度,在版本1-9的QR碼中,文本串長度標(biāo)識符自身的長度被定義為:數(shù)字?:10bit?混合字符:9bit8bit?字節(jié)碼:8bit多字節(jié)碼:8bit在本例中,源文本串的長度為8個字符,混合字符的長度為9bit,因此將字符個數(shù)8編碼為9位二進制表示:000001000加上混合字符模式標(biāo)識碼,總的編碼為0010000001000四、數(shù)據(jù)內(nèi)容編碼?1、數(shù)字模式下的編碼在數(shù)字模式下,數(shù)據(jù)被限制為3個數(shù)字一段,分成若干段。如:"123456"將分成"123"?和"456",分別被編碼成10bit的二進制數(shù)?!?23”的10bit二進制表示法為:000
6、1111011,實際上就是二進制的123。當(dāng)數(shù)據(jù)的長度不足3個數(shù)字時,如果只有1個數(shù)字則用4bit,如果有2個數(shù)字就用7個bit來表示。如:"9876"被分成"987"和"6"兩段,因此被表示為"11110110110110"。2、混合字符模式下的編碼混合字符模式編碼,其字符對照表如下:0??0???A??10???K??20???U??30???+??40?11?B11?L21?V31?-4122?C12?M22?W32?.4233?D13?N23?X33?/4344?E14?O24?Y34?:4455?F15?P25?Z3566?G16?Q26?[sp]3677?
7、H17?R27?$3788?I18?S28?%3899?J19?T29?*3?編碼方式為:源碼被分成兩個字符一段,如下所示,每段的第一個字符乘上45,再用第二個數(shù)字相加。因此每段變成了11bit的2進制碼,如果字符個數(shù)只有1個,則用6bit表示。?示例:???"AB""CD""E1""23"??45*10+1145*12+1345*14+145*2+3??461553631930010000001000001110011010100010100101001110111000010111013、8bit字節(jié)數(shù)據(jù)不經(jīng)編碼轉(zhuǎn)換直接保存。五、編碼終止符(Te