專利名稱:一種增強qr碼糾錯能力的改進方法
技術領域:
本發明涉及一種改進方法用于增強QR碼的糾錯能力,提高QR碼抵抗污損的能力; 有助于進一步推廣QR碼在現實生產生活中的應用;有助于更加自由的進行個性化定制。
背景技術:
二維碼技術從上個世紀80年代末開始出現,經過20多年的推廣應用,在很多行業的信息管理和信息交換領域發揮了巨大的作用。國內的二維碼市場也在快速發展中,QR碼作為中國移動官方推薦的條碼標準,早在2004年就納入中國移動數據部得業務計劃,在2005年底制定中國移動企業標準,在2006 年納入中國移動終端預置規劃。目前,國內的火車票上也開始出現QR碼的身影,相信二維碼在國內會獲得蓬勃地發展。
發明內容
本發明的目的是根據現有QR碼的抗污損能力在特定場合下不足,在進行QR碼的個性化定制時受到較大的限制的問題。本發明提出一種用于增強QR碼的糾錯能力的方法, 可以提高QR碼抵抗污損的能力;有助于進一步推廣QR碼在現實生產生活中的應用。本發明的技術解決方案如下增強QR碼糾錯能力的改進方法,QR碼符號中能夠存儲的數據量是確定的,而用戶需要存儲的數據量小于能夠存儲的容量,那么多出來的未使用空間用來存儲額外糾錯碼,以此來增強QR碼的糾錯能力。本發明利用數據區的未使用空間,不再是填入預定的(特定)數據,根據已填入數據計算糾錯碼,再將糾錯碼數據填入未使用空間;額外糾錯數據長度填入QR碼功能區定位圖形區域中。RS碼又稱里所碼,即Reed-Solomon codes,是一種前向糾錯的信道編碼,對由校正過采樣數據所產生的多項式有效。編碼過程首先在多個點上對這些多項式求冗余,然后將其傳輸或者存儲。對多項式的這種超出必要值得采樣使得多項式超定(過限定)。當接收器正確的收到足夠的點后,它就可以恢復原來的多項式,即使接收到的多項式上有很多點被噪聲干擾失真。RS(Reed-Solomon)碼是一類糾錯能力很強的特殊的非二進制BCH碼。對于任選正整數S可構造一個相應的碼長為η = qS-1的q進制BCH碼,而q作為某個素數的冪。當S =1,q > 2時所建立的碼長η = q-1的q進制BCH碼,稱它為RS碼。當q = an(m > 1), 其碼元符號取自于的二進制RS碼可用來糾正突發差錯,它是最常用的糾錯碼之一。計算額外糾錯碼的方法的步驟糾錯碼和原始QR碼一樣選擇RS碼進行糾錯;RS 碼的生成多項式根據剩余存儲空間進行動態計算和生成;糾錯分段數量和原有編碼機制 (根據版本號的糾錯等級確定)中一樣;采用數據分段機制,分段的方向和原有機制不同;所述的數據分段機制的特征在于根據原有機制將數據分為η段D1、D2、……Dn, 構造完成后的數據段1長度等于Dl的長度,但是數據由Dl的第一個字節,D2的第一個字節、……Dn的第一個字節、Dl的第二個字節……以此類推構成。
根據QR碼的版本號和糾錯等級確定QR碼數據的分段數,按照原來的分段方法進行分段,然后換一個方向進行重新分段。根據剩余空間確定糾錯碼數量,再根據分段后的數據計算糾錯碼,填入剩余空間,接下來按照原始的方法計算糾錯碼得到最終數據。額外糾錯碼的長度存入功能區的定位圖形中。表1版本5-H符號的最終碼字序列
數據碼字糾錯碼字塊1DlD2DllElE2E22塊2D12D13D22E23E24E44塊3D23D24D33D34E45E46E66塊4D35D36D45D46E67E68E88所述的數據分段機制舉例如下在版本2糾錯等級H的QR碼中,可以存放46字節數據,QR碼將其分為4塊,本發明方法中也將要編碼的數據分為4塊,假設用戶輸入數據長度為M字節,則還空余22字節,分段后數據排列情況如表2。但是進行糾錯碼計算的時候取塊1的第1個字節、塊2的第1個字節……總共數據長度的四分之一長,即Dl,D7,D13, D19,D2,D8作為第一塊數據碼來計算5個字節的糾錯碼。這樣的順序組合來進行糾錯碼的計算,當解碼時可以利用原來QR碼編碼機制中的糾錯碼和本發明增加額外糾錯碼的互補性,最大程度的增強糾錯能力。表2本發明分段機制對編碼數據進行分段
塊1DlD2D3D4D5D6塊2D7D8D9DlODllD12塊3D13D14D15D16D17D18塊4D19D20D21D22D23D24所述的額外糾錯長度存入定位圖形的方法,定位圖形有兩個,進行一次重復冗余; 對長度數據本身也進行糾錯計算,版本ι不進行糾錯;版本2進行奇偶校驗;版本3以后使用BCH(15,4)進行糾錯計算。本發明利用數據存儲區域的未使用空間,額外再進行一次糾錯;增加的糾錯和原有機制的糾錯使用不同的排列分段方式,通過兩次糾錯的互補,最大程度的增強糾錯能力。 額外糾錯的長度存入數據區的功能區。計算額外糾錯碼的方法的步驟糾錯碼和原始QR碼一樣選擇RS碼進行糾錯;RS 碼的生成多項式根據剩余存儲空間進行動態計算和生成;糾錯分段數量和原有編碼機制 (根據版本號的糾錯等級確定)中一樣;采用數據分段機制,分段的方向和原有機制不同;所述的數據分段機制的特征在于根據原有機制將數據分為η段D1、D2、……Dn, 構造完成后的數據段1長度等于Dl的長度,但是數據由Dl的第一個字節,D2的第一個字節、……Dn的第一個字節、Dl的第二個字節……以此類推構成。根據QR碼的版本號和糾錯等級確定QR碼數據的分段數,按照原來的分段方法進行分段,然后換一個方向進行重新分段。根據剩余空間確定糾錯碼數量,再根據分段后的數據計算糾錯碼,填入剩余空間,接下來按照原始的方法計算糾錯碼得到最終數據。額外糾錯碼的長度存入功能區的定位圖形中。所述的數據分段機制舉例如下在版本2糾錯等級H的QR碼中,可以存放46字節數據,QR碼將其分為4塊,本發明方法中也將要編碼的數據分為4塊,假設用戶輸入數據長度為M字節,則還空余22字節,分段后數據排列情況如表2。但是進行糾錯碼計算的時候取塊1的第1個字節、塊2的第1個字節……總共數據長度的四分之一長,即Dl,D7,D13, D19,D2,D8作為第一塊數據碼來計算5個字節的糾錯碼。這樣的順序組合來進行糾錯碼的計算,當解碼時可以利用原來QR碼編碼機制中的糾錯碼和本發明增加額外糾錯碼的互補性,最大程度的增強糾錯能力。所述的額外糾錯長度存入定位圖形的方法,定位圖形有兩個,進行一次重復冗余; 對長度數據本身也進行糾錯計算,版本1不進行糾錯;版本2進行奇偶校驗;版本3以后使用BCH(15,4)進行糾錯計算。本發明利用數據存儲區域的未使用空間,額外再進行一次糾錯;增加的糾錯和原有機制的糾錯使用不同的排列分段方式,通過兩次糾錯的互補,最大程度的增強糾錯能力。 額外糾錯的長度存入QR碼的功能區。在本發明改進方法中,解碼程序需要得到額外增加的糾錯數據的長度才能正確的糾錯,在完全兼容普通QR碼解碼器的前提下,利用QR碼原有編碼機制中的定位圖形區域 (探測圖形之間深淺交替的行和列)存放額外糾錯數據長度。本發明的有益效果是在QR碼原有編碼機制中,在每個版本中根據糾錯等級可以存入固定數量的數據碼和糾錯碼,若是已有數據量不足以填滿預留的數據區,空白區域會用預定的數據進行填充。增強QR碼糾錯能力的改進方法就是利用這一塊原有編碼機制沒有利用的空間,來對數據進行一次糾錯碼生成,這樣在解碼部分,可以進行兩次糾錯,這兩次糾錯還可能會互補,從而還原最初填入的數據。現有QR碼的抗污損能力在特定場合下不足,本發明可以提高QR碼抵抗污損的能力;有助于進一步推廣QR碼在現實生產生活中的應用;有助于自由的進行個性化定制。
圖1是本發明增加糾錯的實現流程;圖2通過本發明編碼方式編碼,經過個性化定制或是污損,普通QR碼解碼工具無法解碼,但本發明解碼方法可以解碼的示例圖片。
具體實施例方式表3糾錯等級
權利要求
1.增強QR碼糾錯能力的改進方法,其特征在于利用數據區的未使用空間,不再是填入預定的特定數據,根據已填入數據計算糾錯碼,再將糾錯碼數據填入未使用空間;額外糾錯數據長度填入QR碼功能區定位圖形區域中;計算額外糾錯碼的方法的步驟糾錯碼和原始QR碼一樣選擇RS碼進行糾錯;RS碼的生成多項式根據剩余存儲空間進行動態計算和生成;糾錯分段數量和原有編碼機制中一樣;采用數據分段機制,所述的數據分段機制的特征在于根據原有機制將數據分為η段D1、D2、……Dn,構造完成后的數據段1長度等于Dl 的長度,但是數據由Dl的第一個字節,D2的第一個字節、……Dn的第一個字節、Dl的第二個字節……以此類推構成。
2.根據權利要求1所述的增強QR碼糾錯能力的改進方法,其特征在于根據QR碼的版本號和糾錯等級確定QR碼數據的分段數,按照原來的分段方法進行分段,然后換一個方向進行重新分段;根據剩余空間確定糾錯碼數量,再根據分段后的數據計算糾錯碼,填入剩余空間,接下來按照原始的方法計算糾錯碼得到最終數據。額外糾錯碼的長度存入功能區的定位圖形中。
3.根據權利要求1或2所述的增強QR碼糾錯能力的改進方法,其特征在于所述的額外糾錯長度存入定位圖形的方法,定位圖形有兩個,進行一次重復冗余;對長度數據本身也進行糾錯計算,版本1不進行糾錯;版本2進行奇偶校驗;版本3以后使用BCH(15,4)進行糾錯計算。
4.根據權利要求1或2所述的增強QR碼糾錯能力的改進方法,其特征在于解碼程序需要得到額外增加的糾錯數據的長度才能正確的糾錯,在完全兼容普通QR碼解碼器的前提下,利用QR碼原有編碼機制中的定位圖形區域存放額外糾錯數據長度。
全文摘要
增強QR碼糾錯能力的改進方法,利用數據區的未使用空間,不再是填入預定的特定數據,根據已填入數據計算糾錯碼,再將糾錯碼數據填入未使用空間;額外糾錯數據長度填入QR碼功能區定位圖形區域中;糾錯碼和原始QR碼一樣選擇RS碼進行糾錯;RS碼的生成多項式根據剩余存儲空間進行動態計算和生成;糾錯分段數量和原有編碼機制中一樣;采用數據分段機制,分段的方向和原有機制在每個版本中根據糾錯等級可以存入固定數量的數據碼和糾錯碼,若是已有數據量不足以填滿預留的數據區,空白區域會用預定的數據進行填充。本發明利用原有編碼機制未利用的空間對數據進行糾錯碼生成,在解碼部分,可進行兩次糾錯,這兩次糾錯還可能會互補,從而還原最初填入的數據。
文檔編號G11C29/42GK102568608SQ2012100446
公開日2012年7月11日 申請日期2012年2月24日 優先權日2012年2月24日
發明者劉嘉, 詹珣, 鄭滔 申請人:南京大學