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