二維碼的編、解碼方法及二維碼編碼器、解碼器的制造方法
【專利摘要】本發(fā)明公開了一種二維碼的編碼方法及二維碼編碼器,用以解決采用現(xiàn)有技術(shù)提供的二維碼編碼方法導(dǎo)致解碼得到主碼信息準(zhǔn)確率較低的問題。通過將主碼信息和內(nèi)嵌碼信息編碼為同一個(gè)二維碼,從而避免了主碼和內(nèi)嵌碼的相互干擾,使得后續(xù)對(duì)二維碼解碼得到的主碼信息的準(zhǔn)確率大大提高。本發(fā)明還公開了一種二維碼的解碼方法及二維碼解碼器。
【專利說明】二維碼的編、解碼方法及二維碼編碼器、解碼器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及終端及數(shù)據(jù)業(yè)務(wù)領(lǐng)域,尤其涉及二維碼的編、解碼方法及二維碼編碼器、解碼器。
【背景技術(shù)】
[0002]二維碼作為新一代圖形碼技術(shù),因其快速便捷的讀取方式、豐富的字符支持以及遠(yuǎn)高于條形碼的容量而迅速得以普及和應(yīng)用。
[0003]目前國(guó)際上比較典型的二維碼編碼標(biāo)準(zhǔn)如表1所示,其中在中國(guó)國(guó)內(nèi)使用最多的是快速響應(yīng)(QR,Quick Response)碼。
[0004]表1:
[0005]
【權(quán)利要求】
1.一種二維碼的編碼方法,其特征在于,包括: 對(duì)主碼源字節(jié)序列進(jìn)行糾錯(cuò)碼編碼,并對(duì)內(nèi)嵌碼源字節(jié)序列進(jìn)行編碼; 將對(duì)主碼源字節(jié)序列進(jìn)行糾錯(cuò)碼編碼得到的可糾錯(cuò)主碼字節(jié)序列轉(zhuǎn)換為主碼數(shù)據(jù)模塊集合,將對(duì)內(nèi)嵌碼源字節(jié)序列進(jìn)行編碼得到的內(nèi)嵌碼字節(jié)序列轉(zhuǎn)換為內(nèi)嵌碼數(shù)據(jù)模塊集合; 合并內(nèi)嵌碼數(shù)據(jù)模塊集合和主碼數(shù)據(jù)模塊集合,得到混合碼數(shù)據(jù)模塊集合; 根據(jù)所述混合碼數(shù)據(jù)模塊集合生成相應(yīng)的二維碼。
2.如權(quán)利要求1所述的方法,其特征在于,合并內(nèi)嵌碼數(shù)據(jù)模塊集合和主碼數(shù)據(jù)模塊集合,具體包括: 確定序號(hào)偏移量,其中,所述序號(hào)偏移量滿足:增加該序號(hào)偏移量后的所有內(nèi)嵌碼數(shù)據(jù)模塊的序號(hào),都包含于主碼數(shù)據(jù)模塊的序號(hào)構(gòu)成的序號(hào)集合中; 執(zhí)行所有內(nèi)嵌碼數(shù)據(jù)模塊的序號(hào)分別增加所述序號(hào)偏移量的操作,得到偏移后的序號(hào); 從所述序號(hào)集合中,確定與所述偏移后的序號(hào)相同的序號(hào);并基于確定的序號(hào),執(zhí)行:對(duì)同一序號(hào)分別對(duì)應(yīng)的主碼數(shù)據(jù)模塊的值和內(nèi)嵌碼數(shù)據(jù)模塊的值執(zhí)行模二加操作。
3.如權(quán)利要求1所述的方法,其特征在于,對(duì)主碼源字節(jié)序列糾錯(cuò)碼編碼得到的可糾錯(cuò)字節(jié)的個(gè)數(shù)不小于對(duì)內(nèi)嵌碼源字節(jié)序列編碼得到的內(nèi)嵌碼字節(jié)序列包含的字節(jié)個(gè)數(shù)和預(yù)測(cè)的噪聲字節(jié)的個(gè)數(shù)之和。
4.一種基于如權(quán)利要求1~3任一所述的二維碼編碼方法的二維碼解碼方法,其特征在于,包括: 通過對(duì)二維碼的掃描,獲得對(duì)應(yīng)于二維碼的數(shù)據(jù)模塊集合; 將獲得的數(shù)據(jù)模塊集合轉(zhuǎn)換為可糾錯(cuò)字節(jié)序列; 利用糾錯(cuò)算法從可糾錯(cuò)字節(jié)序列中解析出主碼源字節(jié)序列。
5.如權(quán)利要求4所述的方法,其特征在于,還包括: 將解析出的源主碼字節(jié)序列轉(zhuǎn)換為數(shù)據(jù)模塊集合; 按照將主碼源字節(jié)序列糾錯(cuò)編碼為可糾錯(cuò)主碼字節(jié)序列時(shí)所依據(jù)的編碼版本信息和糾錯(cuò)能力信息,對(duì)轉(zhuǎn)換得到的數(shù)據(jù)模塊集合進(jìn)行糾錯(cuò)碼編碼,得到可糾錯(cuò)主碼數(shù)據(jù)模塊集合;并 合并所述對(duì)應(yīng)于二維碼的數(shù)據(jù)模塊集合和所述可糾錯(cuò)主碼數(shù)據(jù)模塊集合,得到內(nèi)嵌碼數(shù)據(jù)模塊集合; 將得到的內(nèi)嵌碼數(shù)據(jù)模塊集合轉(zhuǎn)換為內(nèi)嵌碼源字節(jié)序列。
6.如權(quán)利要求5所述的方法,其特征在于,將得到的內(nèi)嵌碼數(shù)據(jù)模塊集合轉(zhuǎn)換為內(nèi)嵌碼源字節(jié)序列,具體包括: 從得到的內(nèi)嵌碼數(shù)據(jù)模塊集合中,確定定位數(shù)據(jù)模塊; 刪除得到的內(nèi)嵌碼數(shù)據(jù)模塊集合中位于定位數(shù)據(jù)模塊構(gòu)成的方形區(qū)域之外的數(shù)據(jù)模塊;以及 將刪除位于定位數(shù)據(jù)模塊構(gòu)成的方形區(qū)域之外的數(shù)據(jù)模塊后的內(nèi)嵌碼數(shù)據(jù)模塊集合,轉(zhuǎn)換為內(nèi)嵌碼源字節(jié)序列。
7.—種二維碼編碼器,其特征在于,包括: 編碼單元,用于對(duì)主碼源字節(jié)序列進(jìn)行糾錯(cuò)碼編碼,并對(duì)內(nèi)嵌碼源字節(jié)序列進(jìn)行編碼; 序列轉(zhuǎn)換單元,用于將編碼單元對(duì)主碼源字節(jié)序列進(jìn)行糾錯(cuò)碼編碼得到的可糾錯(cuò)主碼字節(jié)序列轉(zhuǎn)換為主碼數(shù)據(jù)模塊集合,將編碼單元對(duì)內(nèi)嵌碼源字節(jié)序列進(jìn)行編碼得到的內(nèi)嵌碼字節(jié)序列轉(zhuǎn)換為內(nèi)嵌碼數(shù)據(jù)模塊集合; 混合碼數(shù)據(jù)模塊集合生成單元,用于合并序列轉(zhuǎn)換單元轉(zhuǎn)換得到的內(nèi)嵌碼數(shù)據(jù)模塊集合和主碼數(shù)據(jù)模塊集合,得到混合碼數(shù)據(jù)模塊集合; 二維碼生成單元,用于根據(jù)混合碼數(shù)據(jù)模塊集合生成單元得到的混合碼數(shù)據(jù)模塊集合,生成相應(yīng)的二維碼。
8.如權(quán)利要求7所述的編碼器,其特征在于,所述混合碼數(shù)據(jù)模塊集合生成單元具體包括: 偏移量確定子單元,用于確定序號(hào)偏移量,其中,所述序號(hào)偏移量滿足:增加該序號(hào)偏移量后的所有內(nèi)嵌碼數(shù)據(jù)模塊的序號(hào),都包含于主碼數(shù)據(jù)模塊的序號(hào)構(gòu)成的序號(hào)集合中;序號(hào)偏移執(zhí)行子單元,用于執(zhí)行所有內(nèi)嵌碼數(shù)據(jù)模塊的序號(hào)分別增加偏移量確定子單元確定的序號(hào)偏移量的操作,得到偏移后的序號(hào); 序號(hào)確定子單元,用于從所述序號(hào)集合中,確定與執(zhí)行子單元得到的偏移后的序號(hào)相同的序號(hào); 模二加執(zhí)行子單兀,用于基于序號(hào)確定子單兀確定的序號(hào),執(zhí)行:對(duì)同一序號(hào)分別對(duì)應(yīng)的主碼數(shù)據(jù)模塊的值和內(nèi)嵌碼數(shù)據(jù)模塊的值執(zhí)行模二加操作。
9.如權(quán)利要求7所述的編碼器,其特征在于,對(duì)主碼源字節(jié)序列糾錯(cuò)碼編碼得到的可糾錯(cuò)字節(jié)的個(gè)數(shù)不小于對(duì)內(nèi)嵌碼源字節(jié)序列編碼得到的內(nèi)嵌碼字節(jié)序列包含的字節(jié)個(gè)數(shù)和預(yù)測(cè)的噪聲字節(jié)的個(gè)數(shù)之和。
10.一種基于如權(quán)利要求7、任一所述的二維碼編碼器的二維碼解碼器,其特征在于,包括: 掃描單元,用于通過對(duì)二維碼的掃描,獲得對(duì)應(yīng)于二維碼的數(shù)據(jù)模塊集合; 數(shù)據(jù)模塊轉(zhuǎn)換單元,用于將掃描單元獲得的數(shù)據(jù)模塊集合轉(zhuǎn)換為可糾錯(cuò)字節(jié)序列; 解析單元,用于利用糾錯(cuò)算法,從數(shù)據(jù)模塊轉(zhuǎn)換單元得到的可糾錯(cuò)字節(jié)序列中解析出主碼源字節(jié)序列。
11.如權(quán)利要求10所述的解碼器,其特征在于,還包括: 主碼源字節(jié)序列轉(zhuǎn)換單元,用于將解析單元解析出的主碼源字節(jié)序列轉(zhuǎn)換為數(shù)據(jù)模塊集合; 可糾錯(cuò)主碼數(shù)據(jù)模塊編碼單元,用于按照將主碼源字節(jié)序列糾錯(cuò)編碼為可糾錯(cuò)主碼字節(jié)序列時(shí)所依據(jù)的編碼版本信息和糾錯(cuò)能力信息,對(duì)主碼源字節(jié)序列轉(zhuǎn)換單元轉(zhuǎn)換得到的數(shù)據(jù)模塊集合進(jìn)行糾錯(cuò)碼編碼,得到可糾錯(cuò)主碼數(shù)據(jù)模塊集合; 合并單元,用于合并所述對(duì)應(yīng)于二維碼的數(shù)據(jù)模塊集合和可糾錯(cuò)主碼數(shù)據(jù)模塊編碼單元編碼得到的主碼數(shù)據(jù)模塊集合,得到內(nèi)嵌碼數(shù)據(jù)模塊集合; 內(nèi)嵌碼數(shù)據(jù)模塊轉(zhuǎn)換單元,用于將合并單元得到的內(nèi)嵌碼數(shù)據(jù)模塊集合轉(zhuǎn)換為內(nèi)嵌碼源字節(jié)序列。
12.如權(quán)利要求11所述的解碼器,其特征在于,所述內(nèi)嵌碼數(shù)據(jù)模塊轉(zhuǎn)換單元具體包括: 定位數(shù)據(jù)模塊確定子單元,用于從得到的內(nèi)嵌碼數(shù)據(jù)模塊集合中,確定定位數(shù)據(jù)模塊; 刪除子單元,用于刪除得到的內(nèi)嵌碼數(shù)據(jù)模塊集合中位于定位數(shù)據(jù)模塊確定子單元確定的定位數(shù)據(jù)模塊構(gòu)成的方形區(qū)域之外的數(shù)據(jù)模塊; 轉(zhuǎn)換子單元,用于將被刪除子單元?jiǎng)h除了位于定位數(shù)據(jù)模塊構(gòu)成的方形區(qū)域之外的數(shù)據(jù)模塊后的內(nèi)嵌碼數(shù)據(jù)模塊 集合,轉(zhuǎn)換為內(nèi)嵌碼源字節(jié)序列。
【文檔編號(hào)】G06K19/06GK103544516SQ201210241774
【公開日】2014年1月29日 申請(qǐng)日期:2012年7月12日 優(yōu)先權(quán)日:2012年7月12日
【發(fā)明者】徐朝 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司