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