尹丹
現(xiàn)在只要說“掃一掃”,很多人都會下意識地拿出手機(jī),啟動微信的“掃一掃”功能。那么,微信為什么能快速識別二維碼呢?
二維碼(二維條碼)是用某種特定的幾何圖形按一定規(guī)律,在平面上(二維方向上)分布黑白相間的圖形,來記錄數(shù)據(jù)的一種符號信息。它巧妙地利用構(gòu)成計算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”和“1”比特流的概念,使用若干個與二進(jìn)制相對應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,通過圖像輸入設(shè)備或光電掃描設(shè)備自動識讀,實(shí)現(xiàn)快速識別二維碼的功能。
掃碼過程其實(shí)就是不斷對焦、采集圖像、識別的過程,采集的幀數(shù)越少,代表掃碼速度越快。微信團(tuán)隊(duì)經(jīng)過分析數(shù)據(jù)得出結(jié)論,微信正常圖片的解碼速度為:蘋果系統(tǒng)約為5毫秒,安卓系統(tǒng)約為12毫秒。將整個掃碼預(yù)判模塊置于核心識別引擎之前,就能實(shí)現(xiàn)快速過濾大量無碼圖像,使信息響應(yīng)更加及時,提高掃碼過程中的流暢度。
“掃一掃”作為微信核心功能,微信團(tuán)隊(duì)專門開發(fā)了二維碼和條形碼識別“大殺器”——識別引擎QBar。QBar對二維碼容錯性解碼算法、多語言字符檢測算法等均進(jìn)行了數(shù)十項(xiàng)優(yōu)化,在識別率和識別速度上得到了提升,成功提高了解碼的概率。同時,微信圖像技術(shù)團(tuán)隊(duì)給每個步驟都做上“標(biāo)簽”,目的是找出錯誤信息,對失敗信息再設(shè)置相應(yīng)的二次檢測流程,進(jìn)行更“努力”的嘗試,且越到后面的步驟,表明圖中存在二維碼的概率越大。通過這樣每步找錯、多次識別解碼,大大提高了手機(jī)掃描二維碼的成功率。一些二維碼就算穿孔、污損或者彎折,一樣能被識讀,被正確還原。
冗長的輸入,因“掃一掃”變得簡單;安全的“掃一掃”,讓二維碼成了網(wǎng)絡(luò)的新入口。