專利名稱:二維碼編碼方法、解碼方法及裝置、終端的制作方法
技術領域:
本發明涉及通訊技術及計算機技術,尤其涉及二維碼技術。
背景技術:
現代高新技術的發展,迫切要求用條碼在有限的幾何空間內表示更多的信 息,從而滿足千變萬化的信息的需要。二維條碼正是為了解決一維條碼無法解
決的問題而i延生的,二維條碼/二維碼 (2-dimensional bar code) 是用某 種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記 錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的"0"、 "1"比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信 息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處理它具有 條碼技術的一些共性每種碼制有其特定的字符集;每個字符占有一定的寬度; 具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖 形旋轉變化等特點。二維條碼/二維碼能夠在橫向和縱向兩個方位同時表達信 息,因此能在很小的面積內表達大量的信息。因為它具有高密度、大容量等特 點,所以可以用它表示數據文件(包括漢字文件)、圖片等。二維條碼是各種證件 及卡片等大容量、高可靠信息存儲、攜帶并自動識讀的最理想的方法。
在目前幾十種二維要碼中,常用的碼制有PDF417二維條碼,Datamatrix 二維條碼,Maxicode二維條碼,QR Code, Code 49, Code 16K , Code one,等, 除了這些常見的二維條碼之外,還有Vericode條碼、CP條碼、Codablock F條碼、 田字碼、Ultracode條碼,Aztec條碼。
手機掃描二維碼技術簡單的說是通過手機拍照功能對二維碼進行掃描,快速 獲取到二維條碼中存儲的信息,進行上網、發送短信、撥號、資料交換、自動文字輸入等,手機二維碼目前已經被各大手機廠商使用開發。
手機二維碼是二維碼的一種,手機二維碼不但可以印刷在報紙、雜志、廣告、 圖書、包裝以及個人名片上,用戶還可以通過手機掃描二維碼,或輸入二維碼 下面的號碼即可實現快速手機上網功能,并隨時隨地下載圖文、了解企業產品 信息等。
現有技術中的二維碼容量有限。
發明內容
本發明實施例要解決的技術問題是提供二維碼生成方法及裝置,延展二維 碼所能夠支持的上層應用范圍,突破二維碼容量的瓶頸。
本發明實施例提供一種二唯碼生成方法,包括 獲得上層應用數據;
對所述上層應用數據進行二維碼編碼,生成的二維碼包括拼接符區域和信
息數據區域。
本發明實施例還提供一種二維碼解碼方法,包括
獲得二維碼,所述二維碼包括拼接符區域和信息數據區域; 解出上層應用數據,提供給二維碼上層應用。 本發明實施例還提供一種編碼裝置,包括 獲得單元,用于獲得上層應用數據;
二維碼編碼單元,用于對所述上層應用數據進行二維碼編碼,生成二維碼, 該二維碼包括拼接符區域和信息數據區域。
本發明實施例還提供一種解碼裝置,包括 獲得單元,用于獲得二維碼;
二維碼解碼單元,用于將二維碼解碼為上層應用數據 提供給二維碼上層應 用,該二維碼包括拼接符區域和信息數據區域。
本發明實施例還提供一種終端,包括一編碼裝置,所述編碼裝置包括獲得單元,用于獲得上層應用數據;
二維碼編碼單元,用于對所述上層應用數據進行二維碼編碼,生成二維碼,
該二維碼包括拼接符區域和信息數據區域。
本發明實施例還提供一種終端,包括一解碼裝置,所述解碼裝置包括
獲得單元,用于獲得二維碼;
二維碼解碼單元,用于將二維碼解碼為上層應用數據,提供給二維碼上層應 用,該二維碼包括拼接符區域和信息數據區域。
本發明實施例通過二維碼中的拼接符區域,擴展了 二維碼所能夠支持的上層 應用數據容量。
圖1是本發明實施例1提供的一種二維碼編碼方法的流程圖; 圖2是本發明實施例1提供的一種二維碼解碼方法的流程圖; 圖3是本發明實施例l提供的一種二維碼編碼裝置的示意圖; 圖4是本發明實施例1提供的一種二維碼解碼裝置的示意圖; 圖5是本發明實施例2提供的一種二維碼編碼方法的流程圖; 圖6是本發明實施例2提供的一種二維碼解碼方法的流程圖; 圖7是本發明實施例2提供的一種二維碼編碼裝置的示意圖; 圖8是本發明實施例2提供的一種二維碼解碼裝置的示意圖; 圖9是本發明實施例3提供的一種二維碼編碼方法的流程圖; 圖IO是本發明實施例3提供的一種二維碼解碼方法的流程圖; 圖ll是本發明實施例3提供的一種二維碼編碼裝置的示意圖; 圖12是本發明實施例3提供的一種二維碼解碼裝置的示意圖。 圖13是本發明實施例4提供的一種終端的示意圖; 圖14是本發明實施例4提供的一種終端的示意圖; 圖15是本發明實施例4提供的一種終端的示意圖。
具體實施方式
實施例l
本發明實施例l提供一種二維碼編碼方法,如圖l所示,包括
101、 獲得待編碼的數據;
102、 判斷數據大小經二維碼編碼后是否超過一個二維碼的容量,"否"則轉"103","是"則轉"104";
編碼后二維碼包括拼接區域和信息數據區域,由于編碼方式確定,編碼后 增加的大小如拼接符區域等可以確定,那么數據經過二維碼編碼后的大小可以 預先算出來,每個二維碼所能攜帶的編碼容量=拼接區域大小+信息數據區域大 小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼滿足信息數據 區域大小=每個二維碼所能攜帶的信息編碼容量-拼接區域大小。
103、 將上層應用數據進行二維碼編碼,所生成的二維碼包括 組二維碼標識用于標識需要拼接的一組二維碼,同一組(用于拼接的)
二維碼,分配一個同樣的組二維碼標識。例如,0- 65535中的某一個數。
拼接條數標識待編碼數據被分成的二維碼拼接條數,例如,使用8位二進
制數來標識條數,0 - 255共256個數,除去全零不用,可以標識255個二維碼;
拼接次序在拼接條數不為零時,拼接次序有效。拼接次序標識該條二維碼在
應用拼接中所處的次序。例如,使用8位二進制數來標識次序,0 255共256個
數,除去全零不用,可以標識255個二維碼。
將"拼接條數標識"置為'T,,"組二維碼標識,,可以使用填充符填充或
者置為某個值,"拼接次序"可以使用填充符填充或者置為l,在信息數據區域
中填入待編碼數據,生成二維碼編碼,退出;
104、 拆分數據、排序;每個二維碼所能攜帶的編碼容量=拼接區域大小+ 信息數據區域大小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼 滿足信息數據區域大小=每個二維碼所能攜帶的編碼容量_拼接區域大小。 所以,拆分數據時,以信息數據區域大小為基準對待編碼數據一次進行分片, 每個分片依次序分配序號;
105、 將各待編碼數據經二維碼編碼生成二維碼;
將"拼接條數標識"置為分片數目,"拼接次序,,="序號",將該組中 的"組二維碼標識"置為某個相同的數,在各自的信息數據區域中填入數據分 片(最后一個分片中,元數據小于信息數據區域大小的,可使用填充位填充)。本發明實施例l還提供一種二維碼解碼方法,如圖2所示,包括
200. 準備獲得二維碼,所述二維碼包括二維碼包括拼接區域和信息數據區 域;
201. 獲得輸入(如使用手機上的攝像頭拍攝)的二維碼;
202. 判斷:二維碼中"拼接條數"的大小,"=1"則"203" ; "〉1"則轉 "204";
203. 解出上層應用數據,提供給二維碼上層應用,退出;
204. 判斷是否已獲得含有相同"組二維碼標識"的二維碼,"是"則"205"; "否"則轉 "208";
205. 判斷是否已獲得含有"拼接次序"中序號也相同的二維碼,"是"則 "206";"否"則"207";
206. 拋棄該重復輸入,并提示"輸入重復,請輸入不同的二維碼",轉"200";
207. 比較預存的具有該相同"組二維碼標識"的二維碼條數+1、"拼接條 數"的大小,"<"則轉"208","=,,則轉"209";
208. 存儲該條二維碼,提示"請繼續輸入該組的不同二維碼",轉"200";
209. 將該組二維碼中的信息數據按照序號拼接起來,轉"203"。
本發明實施例l還提供一種二維碼編碼裝置,如圖3所示,包括 獲得單元301,用于獲得待編碼數據;
二維碼編碼單元3Q3,用于對所述待編碼數據進行編碼,生成二維碼編碼, 該二維碼編碼包括4并接符區域和信息數據區域。 所述裝置還可以包括
判斷單元302,用于判斷待編碼數據大小是否超過一個所述待編碼數據對應 的二維碼容量,若是則由數據拆分單元304進行數據拆分,若否則由二維碼編碼 單元3 Q 3直接對待編碼數據進行二維碼編碼;數據拆分單元304,用于在所述判斷單元3022判斷應用數據大小超過一個所 述待編碼數據對應的二維碼容量的情況下,對所述待編碼數據進行拆分成數據 分段并排序并提供給二維碼編碼單元3 0 3進行二維碼編碼。
本發明實施例l還提供一種二維碼解碼裝置,如圖4所示,包括 獲得單元401,用于獲得二維碼; 二維碼解碼單元407,用于將二維碼解碼為上層應用數據,提供給二維碼上 層應用,該二維碼包括4并接符區域和信息數據區域。 所述裝置還可以包括
拼接條數判斷單元402,用于判斷所述獲得單元401獲得的二維碼的拼接條 數的大小,若等于1則將所述二維碼上層信息編碼提供給二維碼解碼單元407處 理;
組二維碼標識判斷單元403,用于所述拼接條數判斷單元402判斷拼接條數
大于l的情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;
拼接次序判斷單元404,用于在所述組二維碼標識判斷單元403判斷獲得含
有相同組二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號 也相同的二維碼。
比較判斷單元405,用于在所述拼接次序判斷單元404判斷未接受含有相同 拼接次序的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條 數+l后和拼接條數的大小。
拼接單元406,用于在所述比較判斷單元405判斷為等于的情況下,將該組 二維碼中的信息數據按照序號拼接起來,并提供給所述二維碼解碼單元407處 理。
實施例二
本發明實施例2提供一種二維碼編碼方法,如圖5所示,包括 501、獲得待編碼的數據;502、 判斷數據大小經編碼后是否超過一個二維碼的容量,"否"則轉"503", "是"則轉"504";
編碼后二維碼包括拼接區域和信息數據區域,由于編碼方式確定,編碼后 增加的大小如拼接符區域等可以確定,那么數據經過二維碼編碼后的大小可以 預先算出來,每個二維碼所能攜帶的編碼容量=拼接區域大小+信息數據區域大 小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼滿足信息數據 區域大小=每個二維碼所能攜帶的信息編碼容量-拼接區域大小。
503、 進行二維碼編碼
"拼接標識"="0",信息數據區域中編入待編碼數據,生成一組二維碼,
退出;
504、 拆分數據、排序;每個二維碼編碼容量=拼接區域大小+信息數據區 域大小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼滿足信息 數據區域大小=每個二維碼容量-拼接區域大小。所以,拆分數據時,以信息 數據區域大小為基準對待編碼數據一次進行分片,每個分片依次序分配序號;
505、 將各數據分段進行二維碼編碼 所述二維碼包括
拼接標識用于標識該二維碼是否需要拼接。此時,使用 "1"標識需要 拼接;
組二維碼標識用于標識需要拼接的一組二維碼,同一組(用于拼接的) 二維碼,分配一個同樣的組二維碼標識。例如,Q 65535中的某一個^:。
拼接條數標識上層應用數據被分成的二維碼拼接條數,例如,使用8位二 進制數來標識條數,Q 255共256個數,除去全零不用,可以標識255個二維碼;
拼接次序在拼接條數不為零時,拼接次序有效。拼接次序標識該條二維 碼在應用拼接中所處的次序。例如,使用8位二進制數來標識次序,0~ 255共256 個數,除去全零不用,可以標識255個二維碼。
將"拼接標識,,='T,,將"拼接條數標識"置為分片數目,"拼接次序"="序號",將該組中的"組二維碼標識"置為某個相同的數,在各自的信息數據區域中填入數據分片(最后一個分片中,元數據小于信息數據區域大小的,可使用填充位填充),生成一組二維碼。
本發明實施例2還提供一種二維碼解碼方法,如圖6所示,包括
600、 準備獲得二維碼;
601、 獲得輸入(如使用手機上的攝像頭拍攝)的二維碼;
602、 二維碼信息編碼中"拼接標識"的大小,"=0"則轉603," = 1"則604;
603、 解出上層應用數據,提供給二維碼上層應用,退出;
604、 是否已獲得含有相同"組二維碼標識"的二維碼,"是"則605,"否"則608;
605、 是否已獲得含有"拼接次序"中序號也相同的二維碼,"是"606,"否"607;
606、 拋棄該重復輸入,并提示"輸入重復,請輸入不同的二維碼";
607、 比較預存的具有該相同"組二維碼標識"的二維碼條數+1、"拼接條數"的大小,"=,,609, "<,, 608;
608、 存儲該條二維碼,提示"請繼續輸入該組的不同二維碼",轉600;
609、 將該組二維碼中的信息數據按照序號拼接起來,轉603。
本發明實施例2還提供一種二維碼編碼裝置,如圖7所示,包括獲得單元701 ,用于獲得待編碼數據;
二維碼編碼單元7Q6,用于對所述待編碼數據進行二維碼編碼,生成二維碼編碼,該二維碼編碼包括拼接符區域和信息數據區域;所述裝置還可以包括
判斷單元702,用于判斷應用數據大小是否超過一個所述待編碼數據對應的
15二維碼容量,若是則由數據拆分單元703進行數據拆分,若否則由二維碼編碼單 元7 06直接對應用數據進行二維碼編碼;
數據拆分單元703,用于在所述判斷單元702判斷應用數據大小超過一個所 述待編碼數據對應的二維碼容量的情況下,對所述應用數據進行拆分成數據分 段并排序并提供給二維碼編碼單元進行二維碼編碼。
所述二維碼編碼單元706可以包括
編碼單元一704,用于在所述判斷單元702判斷應用數據大小未超過一個所 述待編碼數據對應的二維碼容量的情況下,對所述對待編碼數據直接進行二維 碼編碼,所述對應用數據直接進行二維碼編碼是將拼接條數標識置為1,"組二 維碼標識"可以使用填充符填充或者置為某個值,"拼接次序,,可以使用填充 符填充或者置為l,在信息數據區域中填入待編碼數據,生成二維碼編碼;
編碼單元二705,用于在所述判斷單元702判斷待編碼數據大小超過一個所 述待編碼數據對應的二維碼容量的情況下,對所述數據分段進行二維碼編碼,
所述對數據分段進行二維碼編碼是將拼接條數標識置為分片數目,拼接次序置 為序號,將組二維碼標識置為某個相同的數,在各自的信息數據區域中填入數 據分片。
本發明實施例2還提供一種二維碼解碼裝置,如圖8所示,包括 獲得單元801,用于獲得二維碼;
二維碼解碼單元807,用于將二維碼解碼為上層應用數據,提供給二維碼上 層應用,該二維碼包括拼接符區域和信息數據區域。 所述裝置還可以包括 拼接條數判斷單元802,用于判斷所述獲得單元801獲得的二維碼的拼接條數 的大小,若等于l則將所述二維碼編碼提供給二維碼解碼單元處理;
組二維碼標識判斷單元803,用于所述拼接條數判斷單元8Q2判斷拼接條數大 于l的情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;拼接次序判斷單元804,用于在所述組二維碼標識判斷單元803判斷獲得含有 相同組二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號也 相同的二維》馬。
比較判斷單元805,用于在所述拼接次序判斷單元804判斷未接受含有相同拼 接次序的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條數 +1后和拼接條數的大小。
拼接單元806,用于在所述比較判斷單元805判斷為等于的情況下,將該組 二維碼中的信息數據按照序號拼接起來,并提供給所述二維碼解碼單元處理。
所述裝置還可以包括
拼接標識單元808,用于判斷拼接標識的大小,在判斷拼接標識為l的情況 下,將二維碼編碼提供給拼接條數判斷單元802,在判斷拼接標識為O的情況下, 將二維碼編碼提供給二維碼解碼單元8Q7處理。
實施例三
本發明實施例3提供一種二維碼編碼方法,如圖9所示,包括 以下是本發明二維碼生成方法的流程示例
901、 獲得待編碼數據;
902、 判斷數據大小經二維碼編碼后是否超過一個二維碼的容量,"否"則 轉"903","是"則轉"904";
編碼后二維碼包括拼接區域和信息數據區域,由于編碼方式確定,編碼后 增加的大小如拼接符區域等可以確定,那么數據經過二維碼編碼后的大小可以 預先算出來,每個二維碼所能攜帶的編碼容量=拼接區域大小+信息數據區域大 小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼滿足信息數據 區域大小=每個二維碼所能攜帶的信息編碼容量-拼接區域大小。
903、 將待編碼數據進行二維碼編碼 所述生成的二維碼包括
組二維碼標識用于標識需要拼接的一組二維碼,同一組(用 拼接的)二維碼,分配一個同樣的組二維碼標識。例如,0 65535中的某一個數。
拼接次序拼接次序標識該條二維碼在應用拼接中所處的次序。例如,使用8位二進制數來標識次序,Q 255共256個數,除去全零不用,可以標識255個二維碼。
后續條數標識應用數據被分成的二維碼拼接條數減去條信息的拼接次序(即后續條數-總條數一該條次序),例如,使用8位二進制數來標識條數,0 - 255共256個數,除去全零不用,可以標識255個二維碼。々i設應用數據被分成共10條二維碼,該條次序為4,那么后續條數為6。
二維碼編碼,由拼接符區域和信息數據區域組成拼接符區可以具體由組二維碼標識、拼接次序和后續條數組成,信息數據區域可以使用現有二維碼編碼方式構成。
將"后續條數標識"置為"0","組二維碼標識"、"拼接次序"使用填充符填充,在信息數據區域中填入待編碼數據,生成二維碼編碼,退出;
904、 拆分數據、排序;每個二維碼容量=拼接區域大小+信息數據區域大小,即,對于所編碼生成的一組二維碼而言,其中每個二維碼滿足信息數據區域大小=每個二維碼容量-拼接區域大小。所以,拆分數據時,以信息數據區域大小為基準對待編碼數據一次進行分片,每個分片依次序分配序號;
905、 將各數據分段進行二維碼編碼;所述生成的二維碼包括
組二維碼標識用于標識需要拼接的一組二維碼,同一組(用于拼接的)二維碼,分配一個同樣的組二維碼標識。例如,0 65535中的某一個數。
拼接次序拼接次序標識該條二維碼在應用拼接中所處的次序。例如,使用8位二進制數來標識次序,0 255共256個數,除去全零不用,可以標識255個二維碼。
后續條數標識應用數據被分成的二維碼拼接條數減去條信息的拼接次序(即后續條數=總條數一該條次序),例如,使用8位二進制數來標識條數,
180 255共256個數,除去全零不用,可以標識255個二維碼。 -暇設應用數據被分 成共10條二維碼,該條次序為4,那么后續條數為6。
具體是"拼接次序"="序號",根據"后續條數=總條數一該條拼接 次序"得出后續條數,將該組中的"組二維碼標識"置為某個相同的數,在各 自的信息數據區域中填入數據分片(最后一個分片中,元數據小于信息數據區 域大小的,可使用填充位填充),生成一組二維碼。
本發明實施例3還提供一種二維碼解碼方法,如圖10所示,包括
1000. 準備獲得二維碼;
1001. 獲得輸入(如使用手機上的攝像頭拍攝)的二維碼;
1002. 通過"拼接序號"+ "后續條數"算出"總條數"判斷"總條數" 的大小,"=1"則"1003" ;"〉1"則轉"1004";
1003. 解出上層應用數據,提供給二維碼上層應用,退出;
1004. 判斷是否已獲得含有相同"組二維碼標識"的二維碼,"是"則"1005"; "否"則轉 "1008";
1005. 判斷是否已獲得含有"拼接次序"中序號也相同的二維碼,"是" 則"1006";"否,,則"1007";
1006. 拋棄該重復輸入,并提示"輸入重復,請輸入不同的二維碼",轉"1000";
1007. 比較預存的具有該相同"組二維碼標識"的二維碼條數+1、"總條 數"的大小,"<"則轉"1008","=,,則轉"1009";
1008. 提示"請繼續輸入該組的不同二維碼",轉"1000";
1009. 將該組二維碼中的信息數據按照序號拼接起來,轉"1003"。
本發明還提供一種二維碼編碼裝置,如圖ll所示,包括 獲得單元l 11 ,用于獲得待編碼數據;
二維碼編碼單元116,用于對所述上層應用數據進行二維碼編碼,生成二維碼編碼,該二維碼編碼包括拼接符區域和信息數據區域;所述裝置還可以包括
判斷單元112,用于判斷應用數據大小是否超過一個所述待編碼數據對應的二維碼容量,若是則由數據拆分單元113進行數據拆分,若否則由二維碼編碼單元116直接對應用數據進行二維碼編碼;
數據拆分單元113,用于在所述判斷單元112判斷待編碼數據大小超過一個所述待編碼數據對應的二維碼容量的情況下,對所述待編碼數據進行拆分成數據分段并排序并提供給二維碼編碼單元l 16進行二維碼編碼。
所述二維碼編碼單元116可以包括
編碼單元一114,用于在所述判斷單元112判斷;f寺編碼數據大小未超過一個所述待編碼數據對應的二維碼容量的情況下,對所述待編碼數據直接進行二維碼編碼,所述對待編碼數據直接進行二維碼編碼是將拼接條數標識置為1,"組二維碼標識"可以使用填充符填充或者置為某個值,"拼接次序"可以使用填充符填充或者置為l,在信息數據區域中填入待編碼數據,生成二維碼編碼;
編碼單元二115,用于在所述判斷單元112判斷待編碼數據大小超過一個所述待編碼數據對應的二維碼容量的情況下,對所述數據分段進行二維碼編碼,所述對數據分段進行二維碼編碼是將拼接條數標識置為分片數目,拼接次序置為序號,將組二維碼標識置為某個相同的數,在各自的信息數據區域中填入數據分片。
所述編碼單元一 114還用于計算后續條數;所述編碼單元二 115還用于將后續條數標識置為0。
本發明實施例3還提供一種二維碼解碼裝置,如圖12所示,包括獲得單元121,用于獲得二維碼;
二維碼解碼單元127,用于從所述二維碼編碼中解出上層應用數據,提供給二維碼上層應用。所述裝置還可以包括
拼接條數判斷單元122,用于判斷所述獲得單元121獲得的二維碼的拼接條 數的大小,若等于則將所述二維碼編碼提供給應用數據提供單元處理;
組二維碼標識判斷單元123,用于所述拼接條數判斷單元122判斷拼接條數 大于l的情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;
拼接次序判斷單元124,用于在所述組二維碼標識判斷單元123判斷獲得含 有相同組二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號 也相同的二維碼。
比較判斷單元125,用于在所述拼接次序判斷單元124判斷未接受含有相同 拼接次序的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條 數+l后和拼接條數的大小。
拼接單元126,用于在所述比較判斷單元125判斷為等于的情況下,將該組 二維碼中的信息數據按照序號拼接起來,并提供給所述二維碼解碼單元處理。
所述裝置還可以包括
拼接條數計算單元128,用于將后續條數與拼接序號相加得出拼接總條數, 并提供給拼接條數判斷單元12 2 。 實施例四
本發明實施例還4是供一種終端138,如圖13所示,包括一編碼裝置137,所 述編碼裝置137包括
獲得單元131,用于獲得上層應用數據;
二維碼編碼單元136,用于對所述上層應用數據進行二維碼編碼,生成二維 碼,該二維碼包括拼接符區域和信息數據區域。
所述編碼裝置137,還包括
判斷單元132,用于判斷應用數據大小是否超過一個所述上層應用數據 對應的二維碼容量,若是則由數據拆分單元133進行數據拆分,若否則由二 維碼編碼單元直接對應用數據進行二維碼編碼;數據拆分單元133,用于在所述判斷單元132判斷應用數據大小超過一個所述上層應用數據對應的二維碼容量的情況下,對所述應用數據進行拆分成數據分段并排序并提供給二維碼編碼單元136進行二維碼編碼。
所述二維碼編碼單元136包括
編碼單元一 134,用于在所述判斷單元132判斷應用數據大小未超過一個所述上層應用數據對應的二維碼容量的情況下,對所述對應用數據直接進行二維碼編碼,所述對應用數據直接進行二維碼編碼是將拼接條數標識置為1,"組二維碼標識,,可以使用填充符填充或者置為某個值,"拼接次序,,可以使用填充符填充或者置為1,在信息數據區域中填入上層應用數據,生成二維碼;
編碼單元二 135,用于在所述判斷單元132判斷應用數據大小超過一個所述上層應用數據對應的二維碼容量的情況下,對所述數據分段進行二維碼編碼,所述對數據分段進行二維碼編碼是將拼接條數標識置為分片數目,拼接次序置為序號,將組二維碼標識置為某個相同的數,在各自的信息數據區域中填入數據分片。
所述編碼單元一 134還用于在所述判斷單元132判斷應用數據大小未超過一個所述上層應用數據對應的二維碼容量的情況下將拼接標識置為0;
所述編碼單元二 135還用于在所述判斷單元132判斷應用數據大小超過一個所述上層應用數據對應的二維碼容量的情況下將拼接標識置為1。
本發明實施例還提供一種終端1410,如圖14所示,包括一解碼裝置1409,所述解碼裝置149包括
獲得單元141,用于獲得二維碼;
二維碼解碼單元147,用于將二維碼解碼為上層應用數據,提供給二維碼上層應用,該二維碼包括拼接符區域和信息數據區域。
22所述解碼裝置149,還包括
拼接條數判斷單元142,用于判斷所述獲得單元141獲得的二維碼的拼接條數的大小,若等于1則將所述二維碼提供給二維碼解碼單元147處理;
組二維碼標識判斷單元143,用于所述拼接條數判斷單元142判斷拼接條數大于l的情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;
拼接次序判斷單元144,用于在所述組二維碼標識判斷單元143判斷獲得含有相同組二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號也相同的二維碼;
比較判斷單元145,用于在所述拼接次序判斷單元144判斷未接受含有相同拼接次序的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條數+l后和拼接條數的大小;
拼接單元146,用于在所述比較判斷單元145判斷為等于的情況下,將該組二維碼中的信息數據按照序號拼接起來,并提供給二維碼解碼單元147處理。
所述解碼裝置1409還可以包括
拼接標識單元148,用于判斷拼接標識的大小,在判斷拼接標識為l的情況下,將二維碼編碼提供給拼接條數判斷單元142,在判斷拼接標識為Q的情況下,將二維碼編碼提供給二維碼解碼單元147處理。
本發明實施例4還提供一種終端1410,如圖15所示,包括一解碼裝置149,所述解碼裝置149包括
獲得單元131,用于獲得二維碼;
二維碼解碼單元147,用于將二維碼解碼為上層應用數據,提供給二維碼上層應用,該二維碼包括拼接符區域和信息數據區域。所述解碼裝置149,還包括
拼接條數判斷單元142,用于判斷所述獲得單元獲得的二維碼的拼接條數的大小,若等于1則將所述二維碼提供給二維碼解碼單元147處理;組二維碼標識判斷單元143,用于所述拼接條數判斷單元142判斷拼接條數
大于l的情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;
拼接次序判斷單元144,用于在所述組二維碼標識判斷單元143判斷獲得含 有相同組二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號 也相同的二維碼;
比較判斷單元145,用于在所述拼接次序判斷單元144判斷未接受含有相同 拼接次序的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條 數+l后和拼接條數的大小;
所述解碼裝置149,還包括
拼接條數計算單元l51 ,用于將后續條數與拼接序號相加得出拼接總條數, 并提供給拼接條數判斷單元14 2 。
上述實施例中,所有涉及的舉例,如"拼接標識"=011;組二維碼標識分 配0 - 65535中的某一個數;拼接條數標識使用8位二進制數來標識次序,0~ 255共256個數;拼接次序使用8位二進制數來標識次序, ~ 255共256個數 等,都只是一種舉例說明,實際實現時應不受此限制,發明中的方案同樣適用。
權利要求
1、一種二維碼編碼方法,包括獲得上層應用數據;對所述上層應用數據進行二維碼編碼,生成的二維碼包括拼接符區域和信息數據區域。
2、 如權利要求l所述的方法,其特征在于,所述獲得上層應用數據后還 包括判斷應用數據大小是否超過一個所述上層應用數據對應的二維碼容量;如果 是,則將數據拆分成數據分段并排序,所述對所述上層應用數據進行二維碼編 碼是對數據分段進行二維碼編碼,所述拼接符區域包括拼接條數標識;如果否, 所述對所述上層應用數據進行二維碼編碼是對所述應用數據直接進行二維碼編 碼,所述拼接符區域包括拼接條數標識。
3、 如權利要求2所述的方法,其特征在于,所述拼接符區域還包括組二維 碼標識和拼接次序。
4、 如權利要求3所述的方法,其特征在于,拆分數據時,以信息數據區 域大小為基準對上層應用數據一次進行分片,每個分片依次序分配序號;所 述對數據分段進行二維碼編碼是將拼接條數標識置為分片數目,拼接次序置 為序號,將組二維碼標識置為某個相同的數,在各自的信息數據區域中填入 數據分片。
5、 如權利要求3所述的方法,其特征在于,所述對應用數據直接進行二 維碼編碼是將拼接條數標識置為1,在信息數據區域中填入上層應用數據, 生成二維碼編碼。
6、 如權利要求2所述的方法,其特征在于,所述拼接符區域還包括拼接標識。
7、 如權利要求6所述的方法,其特征在于,拆分數據時以信息數據區域大小為基準對上層應用數據一次進行分片,每個分片依次序分配序號;所述對數據分段進行二維碼編碼是將拼接標識置為l,將4并接條數標識置為分片數目,拼接次序置為序號,將組二維碼標識置為某個相 同的數,在各自的信息數據區域中填入數據分片。
8、 如權利要求6所述的方法,其特征在于,所述對所述應用數據直接進行二 維碼編碼是將所述拼接標識置為0,信息數據區域中編入上層應用數據。
9、 如權利要求1所述的方法,其特征在于,所述獲得應用數據后還包括 判斷應用數據大小是否超過一個所述上層應用數據對應的二維碼容量;如果 是,則將數據拆分成數據分段并排序,所述對所述上層應用數據進行二維碼 編碼是對數據分段進行二維碼編碼,所述拼接符區域包括組二維碼標識,后 續條數標識和拼接次序;如果否,所述對所述上層應用數據進行二維碼編碼 是對所述應用數據直接進行二維碼編碼,所述拼接符區域包括組二維碼標 識,后續條數標識和拼接次序。
10、 如權利要求9所述的方法,其特征在于,拆分數據時以信息數據區 域大小為基準對上層應用數據一次進行分片,每個分片依次序分配序號;所 述對數據分段進行二維碼編碼是將拼接次序置為序號,計算后續條數,將組 二維碼標識置為相同的數,在各自的信息數據區域中填入數據分片。
11、 如權利要求9所述的方法,其特征在于,所述對所述應用數據直接 進行二維碼編碼是將后續條數標識置為0,在信息數據區域中填入待編碼數據。
12、 一種二維碼解碼方法,包括獲得二維碼,所述二維碼包括拼接符區域和信息數據區域; 解出上層應用數據,提供給二維碼上層應用。
13、 如權利要求12所述的方法,其特征在于,所述拼接符區域包括組二 維碼標識,拼接條數標識和拼接次序。
14、如權利要求13所述的方法,其特征在于,所述獲得二維碼后還包括判斷所述拼接條數的大小,若拼接條數是1則解出上層應用數據,提供給二 維碼上層應用,若大于1則判斷是否已獲得含有相同組二維碼標識的二維 碼。
15 、如權利要求14所述的方法,其特征在于,所述判斷是否已獲得含有相 同組二維碼標識的二維碼,若是則判斷是否已獲得含有拼接次序中序號也相 同的二維碼;若否則比較預存的具有該相同組二維碼標識的二維碼條數+1 后和拼接條數的大小,若等于則將該組二維碼中的信息數據按照序號拼接起 來,解出上層應用數據,提供給二維碼上層應用。
16、 如權利要求12所述的方法,其特征在于,所述拼接符區域包括拼接 標識,組二維碼標識,4并接條l!t標識、拼4妄次序。
17、 如權利要求16所述的方法,其特征在于,所述獲得二維碼后還包括 判斷拼接標識的大小,若為1則判斷是否已獲得含有相同組二維碼標識的二 維碼,若為O則解出上層應用數據,提供給二維碼上層應用。
18、 如權利要求17所述的方法,其特征在于,所述判斷是否已獲得含有 相同組二維碼標識的二維碼,若是則判斷是否已獲得含有拼接次序中序號也 相同的二維碼;若否則比較預存的具有該相同組二維碼標識的二維碼條數加 1后和拼接條數的大小。
19、 如權利要求18所述的方法,其特征在于,所述比較預存的具有該相同 組二維碼標識的二維碼條數加1后和拼接條數的大小,若等于將該組二維碼中的 信息數據按照序號拼接起來;解出上層應用數據,提供給二維碼上層應用。
20、 如權利要求12所述的方法,其特征在于,所述拼接符區域包括組二維 碼標識,后續條數標識和拼接次序。
21、 如權利要求20所述的方法,其特征在于,所述獲得二維碼后還包括將 后續條數與拼接序號相加得出拼接總條數;判斷拼接總條數的大小,若等于l則解出上層應用數據,提供給二維碼上層應用,若大于l則判斷是否已獲得含有 相同組二維碼標識的二維碼。
22、 如權利要求21所述的方法,其特征在于,所述判斷是否已獲得含有相 同組二維碼標識的二維碼,若是則判斷是否已獲得含有拼接次序中序號也相同 的二維碼;若否則比較預存的具有該相同組二維碼標識的二維碼條數與拼接條 數的大小。
23、 如權利要求22所述的方法,其特征在于,所述比較預存的具有該相同 組二維碼標識的二維碼條數加l后與拼接條數的大小,若等于則將該組二維碼中 的信息數據按照序號拼接起來,解出上層應用數據,提供給二維碼上層應用。
24、 一種編碼裝置,包括 獲得單元,用于獲得上層應用數據;二維碼編碼單元,用于對所述上層應用數據進^f亍二維碼編碼,生成二維碼, 該二維碼包括拼接符區域和信息數據區域。
25、 如權利要求24所述的裝置,其特征在于,還包括判斷單元,用于判斷應用數據大小是否超過一個所述上層應用數據對應 的二維碼容量,若是則由數據拆分單元進行數據拆分,若否則由二維碼編碼 單元直接對應用數據進行二維碼編碼;數據拆分單元,用于在所述判斷單元判斷應用數據大小超過一個所述上 層應用數據對應的二維碼容量的情況下,對所述應用數據進行拆分成數據分 段并排序并提供給二維碼編碼單元進行二維碼編碼。
26、 如權利要求25所述的方法,其特征在于,所述二維碼編碼單元包括編碼單元一,用于在所述判斷單元判斷應用數據大小未超過一個所述上 層應用數據對應的二維碼容量的情況下,對所述對應用數據直接進行二維碼 編碼,所述對應用數據直接進行二維碼編碼是將拼接條數標識置為1,在信 息數據區域中填入上層應用數據,生成二維碼;編碼單元二,用于在所述判斷單元判斷應用數據大小超過一個所述上層 應用數據對應的二維碼容量的情況下,對所述數據分段進行二維碼編碼,所 述對數據分段進行二維碼編碼是將拼接條數標識置為分片數目,拼接次序置 為序號,將組二維碼標識置為某個相同的數,在各自的信息數據區域中填入 數據分片。
27、 如權利要求26所述的裝置,其特征在于,所述編碼單元一還用于在所述判斷單元判斷應用數據大小未超過一個所 述上層應用數據對應的二維碼容量的情況下將拼接標識置為0;所述編碼單元二還用于在所述判斷單元判斷應用數據大小超過一個所述 上層應用數據對應的二維碼容量的情況下將拼接標識置為1 。
28、 如權利要求26所述的裝置,其特征在于, 所述編碼單元一還用于計算后續條數; 所述編碼單元二還用于將后續條數標識置為0。
29、 一種解碼裝置,包括 獲得單元,用于獲得二維碼;二維碼解碼單元,用于將二維碼解碼為上層應用數據,提供給二維碼上層應 用,該二維碼包括拼接符區域和信息數據區域。
30、 如權利要求29所述的裝置,其特征在于,還包括 拼接條數判斷單元,用于判斷所述獲得單元獲得的二維碼的拼接條數的大小,若等于l則將所述二維碼提供給二維碼解碼單元處理;組二維碼標識判斷單元,用于所述拼接條數判斷單元判斷拼接條數大于l的 情況下,判斷是否已獲得含有相同組二維碼標識的二維碼;拼接次序判斷單元,用于在所述組二維碼標識判斷單元判斷獲得含有相同組 二維碼標識的二維碼的情況下,判斷是否已獲得含有拼接次序中序號也相同的二維碼;比較判斷單元,用于在所述拼接次序判斷單元判斷未接受含有相同拼接次序 的二維碼的情況下,比較預存的具有該相同組二維碼標識的二維碼條數+l后和拼接條數的大小;拼接單元,用于在所述比較判斷單元判斷為等于的情況下,將該組二維碼中 的信息數據按照序號拼接起來,并提供給二維碼解碼單元處理。
31、 如權利要求30所述的裝置,其特征在于,還包括 4并接標識單元,用于判斷拼-接標識的大小,在判斷拼接標識為l的情況下,將二維碼提供給拼接條數判斷單元,在判斷拼接標識為O的情況下,將二維碼提 供給二維碼解碼單元處理。
32、 如權利要求30所述的裝置,其特征在于,還包括 拼接條數計算單元,用于將后續條數與拼接序號相加得出拼接總條數,并提供給拼接條數判斷單元。
33、 一種終端,其特征在于,包括一編碼裝置,所述編碼裝置包括 獲得單元,用于獲得上層應用數據;二維碼編碼單元,用于對所述上層應用凄t據進^"二維碼編碼,生成二維碼, 該二維碼包括拼接符區域和信息數據區域。
34、 一種終端,其特征在于,包括一解碼裝置,所述解碼裝置包括獲得單元,用于獲得二維碼;二維碼解碼單元,用于將二維碼解碼為上層應用數據,提供給二維碼上層應 用,該二維碼包括拼接符區域和信息數據區域。
全文摘要
本發明實施例公開了二維碼編碼方法、解碼方法及裝置、終端,涉及二維碼技術,要解決的技術問題是延展二維碼所能夠支持的上層應用范圍,突破二維碼容量的瓶頸。二維碼生成方法主要包括獲得上層應用數據;對所述上層應用數據進行二維碼編碼,生成二維碼,該二維碼包括拼接符區域和信息數據區。本發明實施例通過二維碼的拼接符區域,擴展了二維碼所能夠支持的上層應用數據容量。
文檔編號G06K19/06GK101639899SQ20081014257
公開日2010年2月3日 申請日期2008年7月30日 優先權日2008年7月30日
發明者張惠萍, 健 楊, 雷 王, 范姝男, 挺 董, 陳國喬 申請人:華為技術有限公司