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