久久夜色国产精品亚,男人的天堂日韩亚洲欧美,女人扒下裤让男人桶到爽,国产日韩欧美老人啪啪,国产999成人精品,国产精品久久一区二区三区不卡,无码国内精品久久综合88,熟女露脸视频,日本欧洲国产一区二区三区

微信掃碼為啥那么快?官方揭秘

2016-07-14 22:29 快科技 上方文Q/文

很多軟件都支持二維碼掃描,部分手機ROM還內置了單獨的掃一掃功能,但是你是否發現了,微信的掃碼速度似乎特別的快,而且很精準。這是為什么呢?

0d3f89bc5fcd4ccbaf758c80cfce275f_meitu_1.jpg

微信官方公眾號“微信派”就特別介紹了微信二維碼掃描功能的一些技術細節。

二維碼和我們在幾乎所有產品上能看到的條形碼一樣,都是通過條碼的組合記錄信息,不過比條形碼(本名應為一維碼)多一個維度,因而能夠存儲更高密度的信息,比如圖片、漢字、數字。

掃碼過程其實就是不斷對焦、采集圖像、識別的過程,而采集的幀數越少,代表掃碼速度越快,可以理解為圖形處理器每秒鐘能夠刷新幾次。

據粗略估算,微信目前一年要處理至少二維碼達千億級,市面上超過60%的二維碼都誕生于微信平臺,相當于每個微信活躍用戶平均每年都會掃描140次甚至更多的二維碼。

e66ba3a66946427786d0f026e36282f8_meitu_2.jpg

【微信掃碼的秘密:引擎+算法】

微信掃碼使用了自家開發的QBar引擎,并計入了預判算法,在識別條碼之前會過濾無碼圖像,只識別有意義的內容——二維碼和條形碼。

整個掃碼預判模塊位于核心識別引擎之前,不再需要對輸入的視頻中的每一幀圖像進行檢測識別,能實現快速過濾大量無碼圖像,減少后續不必要的定位和識別對掃碼客戶端造成的阻塞,使響應更加及時,增加掃碼過程中的流暢度,而這就是微信掃碼快速的關鍵原因。

微信團隊分析數據顯示,該引擎在識別正常圖片時的解碼速度,iOS可縮短至5毫秒,安卓也僅僅約12毫秒,當然這也和手機配置尤其是攝像頭有很大關系。

a44de85fa40d438daf846662b63893f9.jpg

掃碼預判模塊流程圖

對于無碼圖像,主流手機的處理速度均有較大幅度地提高,部分機型平均運行時間降低到10毫秒以內。

對于有碼圖像,二維碼的平均識別也快了近35%,而且維持了識別率。

862fe8915a274fb4b4415e0aec64c1ce.jpg

不同機型無碼樣本測試速度對比

【“壞碼”也能掃】

一些二維碼就算出現穿孔、污損或者彎折,還是一樣可以識讀,這是因為二維碼中從存儲的信息通常都經過了糾錯編碼,是有冗余的。

一個二維碼所能表示的比特數是固定的,包含的信息越多那么冗余度就越小,反之亦然。微信二維碼中包含的信息量并不需要很大,這意味著編碼的冗余度可以做得較高,所以即使損毀面積達到30%也依舊可以恢復。

QBar掃碼引擎對二維碼容錯性解碼算法、多語言字符檢測算法等均使用進行了數十項優化,在識別率和識別速度上得到了提升。

簡單來說,QBar識別及解碼的流程包括:

- 讀取視頻或圖像,通過灰度化處理得到單張灰度圖;

- 對灰度圖進行處理得到二值圖像(二值化是引擎在識別前把圖像轉換成01圖像的過程);

- 將二值圖輸入不同的解碼器識別是否存在二維碼;

- 如果檢測到存在某種編碼,即通過相應的解碼器進行解碼,并返回解碼結果。



QBar引擎識別解碼流程



        在提高成功解碼的概率上,微信的另一個做法就是給每個步驟做上“標簽”,目的是找出錯誤信息,對失敗信息再設置相應的二次檢測流程,在失敗的步驟處進行更”努力”地嘗試,且越到后面的步驟,表明圖中存在二維碼的概率越大。

        通過這樣每步找錯、多次識別解碼,大大提高了手機掃描二維碼的成功率。

 

分享至:
文章關鍵詞: