動態(tài)二維碼的生成、讀取方法及其裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及二維碼技術(shù)領(lǐng)域,尤其涉及動態(tài)二維碼的生成、讀取方法及其裝置。
【背景技術(shù)】
[0002]目前,隨著二維碼技術(shù)的快速發(fā)展,二維碼已經(jīng)越來越廣泛地應(yīng)用到社會生活的各個領(lǐng)域。但是,由于現(xiàn)有技術(shù)中所使用的各種二維碼的安全性不夠高,很容易被復(fù)制,因此二維碼的安全性已經(jīng)開始得到大家的關(guān)注,特別是在進(jìn)行支付時使用二維碼的場景,二維碼的安全性尤為顯得重要。
[0003]為了提高二維碼的安全性,現(xiàn)有技術(shù)中已經(jīng)提出了很多技術(shù)方案和【具體實施方式】。例如,在現(xiàn)有技術(shù)中,已經(jīng)提出了一種生成動態(tài)二維碼的技術(shù)。在該技術(shù)中,為了提高二維碼的安全性,使用了動態(tài)二維碼。該動態(tài)二維碼實際上是一個由多個二維碼圖像組成的圖像序列,在顯示該動態(tài)二維碼時,上述圖像序列中的多個二維碼圖像按照預(yù)定次序和預(yù)定的顯示頻率依次顯示,從而使得該二維碼的顯示成為一種動態(tài)的顯示。由于該動態(tài)二維碼是由多個二維碼圖像組成的圖像序列,因此難以被復(fù)制,從而提高了二維碼的安全性。
[0004]但是,在使用上述動態(tài)二維碼時,也可能會存在一些問題。例如,由于該動態(tài)二維碼中的多個二維碼圖像是按照預(yù)定的顯示頻率依次顯示的,如果讀取設(shè)備的掃描頻率比較低,特別是當(dāng)該掃描頻率比動態(tài)二維碼的顯示頻率低很多時,讀取設(shè)備通過一次掃描不能獲得該動態(tài)二維碼的二維碼圖像序列中的全部二維碼圖像,只能通過不斷循環(huán)讀取該動態(tài)二維碼的二維碼圖像序列,直至讀取到該二維碼圖像序列中的所有二維碼圖像為止,才能進(jìn)行后續(xù)的解碼,從而將大大延長該讀取設(shè)備讀取該動態(tài)二維碼的讀取時間。因此可知,上述動態(tài)二維碼比較適用于使用高掃描頻率的讀取設(shè)備,而不太適用于使用較低掃描頻率的讀取設(shè)備的實際場景,從而限制了該動態(tài)二維碼的應(yīng)用場景和應(yīng)用領(lǐng)域。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種A方法,從而當(dāng)讀取設(shè)備的掃描頻率低于動態(tài)二維碼的顯示頻率時,也可以快速而準(zhǔn)確地從動態(tài)二維碼中獲取到原始的待編碼的信息。
[0006]本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的:
[0007]—種動態(tài)二維碼的生成方法,該方法包括步驟:
[0008]將待編碼的信息編碼為信息碼字;
[0009]根據(jù)各個信息碼字在碼字空間中的分布,計算各個信息碼字在該碼字空間中的分布中心;
[0010]根據(jù)各個信息碼字與分布中心的距離,對已編碼的信息碼字進(jìn)行冗余編碼,形成最終的編碼后的?目息碼字;
[0011]根據(jù)編碼后的信息碼字生成包括預(yù)設(shè)數(shù)量的二維碼圖像的動態(tài)二維碼圖像序列,并在每一幀二維碼圖像中攜帶所述碼字空間的分布中心的值以及初始總和;
[0012]其中,所述初始總和為:所有信息碼字與分布中心的距離的總和。
[0013]較佳的,所述根據(jù)各個信息碼字與分布中心的距離,對已編碼的信息碼字進(jìn)行冗余編碼,形成最終的編碼后的信息碼字包括步驟:
[0014]al、將所有與分布中心的距離大于等于0的信息碼字組成第一集合P1,將所有與分布中心的距離小于0的信息碼字組成第二集合P2 ;
[0015]a2、通過統(tǒng)計分別得到P1和P2中的信息碼字的個數(shù)N1和N2 ;
[0016]a3、如果N1>N2,則隨機(jī)從P2中挑選(N1-N2)個信息碼字,將所挑選的信息碼字復(fù)制到所述P2中,再執(zhí)行步驟a4 ;如果N2>N1,則隨機(jī)從P1中挑選(N2-N1)個信息碼字,將所挑選的信息碼字復(fù)制到所述P1中,再執(zhí)行步驟a4 ;如果N1 = N2,直接執(zhí)行步驟a4 ;
[0017]a4、如果當(dāng)前的P1和P2中的信息碼字的個數(shù)小于原始的信息碼字個數(shù)的2倍,則對P1中的每個信息碼字都進(jìn)行一次復(fù)制,并將復(fù)制得到的信息碼字添加到P1中,對P2中的每個信息碼字都進(jìn)行一次復(fù)制,并將復(fù)制得到的信息碼字添加到P2中;
[0018]a5、對P1和P2中的信息碼字進(jìn)行分組交織編碼和循環(huán)冗余碼校驗,形成最終的編碼后的信息碼字。
[0019]本發(fā)明還提供了一種動態(tài)二維碼的讀取方法,該方法包括步驟:
[0020]A、讀取動態(tài)二維碼,從所述動態(tài)二維碼中獲取多個二維碼圖像;
[0021]B、每獲取一個二維碼圖像時,對該二維碼圖像進(jìn)行解碼,獲取信息碼字,并計算第一總和;其中,所述第一總和為:當(dāng)前所獲取的各個信息碼字與分布中心的距離的和;
[0022]C、如果所述第一總和與初始總和之間的差值小于預(yù)設(shè)的門限閾值,則執(zhí)行步驟D;否則,返回執(zhí)行步驟A ;
[0023]D、再次讀取動態(tài)二維碼,從所述動態(tài)二維碼中獲取一個二維碼圖像;
[0024]E、對該二維碼圖像進(jìn)行解碼,獲取信息碼字,并計算第二總和;其中,所述第二總和為:當(dāng)前所獲取的所有信息碼字與分布中心的距離的和;
[0025]F、如果所述第二總和與所述第一總和之間的差值小于預(yù)設(shè)的第二閾值,則根據(jù)當(dāng)前所獲取的所有信息碼字進(jìn)行解碼得到原始的待編碼的信息;否則,返回執(zhí)行步驟D。
[0026]本發(fā)明還提供了一種動態(tài)二維碼的生成裝置,該裝置包括:編碼模塊、冗余編碼模塊和生成模塊;
[0027]所述編碼模塊,用于將待編碼的信息編碼為信息碼字,將所述信息碼字發(fā)送給冗余編碼模塊;
[0028]所述冗余編碼模塊,用于根據(jù)各個信息碼字在碼字空間中的分布,計算各個信息碼字在該碼字空間中的分布中心;根據(jù)各個信息碼字與分布中心的距離,對已編碼的信息碼字進(jìn)行冗余編碼,形成最終的編碼后的信息碼字;將編碼后的信息碼字發(fā)送給所述生成豐吳塊;
[0029]所述生成模塊,用于根據(jù)編碼后的信息碼字生成包括預(yù)設(shè)數(shù)量的二維碼圖像的動態(tài)二維碼圖像序列,并在每一幀二維碼圖像中攜帶所述碼字空間的分布中心的值以及初始總和;其中,所述初始總和為:所有信息碼字與分布中心的距離的總和。
[0030]較佳的,所述編碼模塊和冗余編碼模塊集成為同一個編碼模塊。
[0031]本發(fā)明還提供了一種動態(tài)二維碼的讀取裝置,該裝置包括:讀取模塊和解碼模塊;
[0032]所述讀取模塊,用于根據(jù)第一讀取指令讀取動態(tài)二維碼,從所述動態(tài)二維碼中獲取多個二維碼圖像、二維碼圖像中攜帶的碼字空間的分布中心的值以及初始總和,將第一解碼指令、所獲取的二維碼圖像、碼字空間的分布中心的值以及初始總和發(fā)送給所述解碼模塊;還用于根據(jù)第二讀取指令再次讀取動態(tài)二維碼,從所述動態(tài)二維碼中獲取一個二維碼圖像;將第二解碼指令和所獲取的一個二維碼圖像發(fā)送給解碼模塊;
[0033]所述解碼模塊,用于在每獲取一個二維碼圖像時,對該二維碼圖像進(jìn)行解碼,獲取信息碼字;根據(jù)第一解碼指令計算第一總和;其中,所述第一總和為:當(dāng)前所獲取的各個信息碼字與分布中心的距離的和;如果所述第一總和與初始總和之間的差值小于預(yù)設(shè)的門限閾值,則向所述讀取模塊發(fā)送第二讀取指令;否則,向所述讀取模塊發(fā)送第一讀取指令;還用于根據(jù)第二解碼指令計算第二總和;其中,所述第二總和為:當(dāng)前所獲取的所有信息碼字與分布中心的距離的和;如果所述第二總和與所述第一總和之間的差值小于預(yù)設(shè)的第二閾值,則根據(jù)當(dāng)前所獲取的所有信息碼字進(jìn)行解碼得到原始的待編碼的信息;否則,向所述讀取模塊發(fā)送第二讀取指令。
[0034]由上述技術(shù)方案可見,在本發(fā)明的技術(shù)方案中,由于在生成動態(tài)二維碼時,是先計算各個信息碼字在該碼字空間中的分布中心,再根據(jù)各個信息碼字與分布中心的距離,對已編碼的信息碼字進(jìn)行冗余編碼,形成最終的編碼后的信息碼字,然后再根據(jù)編碼后的信息碼字生成包括預(yù)設(shè)數(shù)量的二維碼圖像的動態(tài)二維碼圖像序列,并在每一幀二維碼圖像中攜帶所述碼字空間的分布中心的值以及初始總和,因此相當(dāng)于對動態(tài)二維碼中的二維碼圖像序列所承載的信息進(jìn)行了相應(yīng)的冗余編碼。所以,當(dāng)使用讀取裝置讀取上述動態(tài)二維碼時,不必全部讀取該動態(tài)二維碼中的二維碼圖像序列中的所有的幀,而是只需讀取足夠數(shù)量的幀即可正確地解碼得到所承載的信息。因此,即使當(dāng)前所使用的讀取設(shè)備的掃描頻率低于上述動態(tài)二維碼的顯示頻率,也可以快速而準(zhǔn)確地從上述動態(tài)二維碼中獲取到原始的待編碼的信息,有效地解決了由于讀取設(shè)備的掃描頻率低而導(dǎo)致的讀取時間過長的問題,從而使得上述動態(tài)二維碼可以適用于各種場景和應(yīng)用