二維碼的糾錯功能原理是?它的容錯率有多高?

二維碼是可以加入圖片logo的,目前看到一般logo面積很小。那按此分析,它的糾錯原理是什麼,任何位置都可以嗎? 容錯率有多高?有說是30%的!


二維碼的糾錯功能原理是?

例如,需要編碼的碼字數據有100個,並且想對其中的一半,也就是50個碼字進行糾錯,則計算方法如下。糾錯需要相當於碼字2倍的符號,因此在這種情況下的數量為50個×2=100碼字。因此,全部碼字數量為200個,其中用作糾錯的碼字為50個,所以計算得出,相對於全部碼字的糾錯率就是25%。這一比率相當於QR碼糾錯級別中的「Q」級別。

另外,在上述例子當中,也可以認為相對於碼字數據的糾錯率為50%,但變髒或破損的部位不僅僅局限於碼字數據部分,因此,在QR碼中,還是用相對於全部碼字的比率來描述糾錯率。

它的容錯率有多高?

QR碼具有「糾錯功能」。即使編碼變髒或破損,也可自動恢複數據。這一「糾錯能力」具備4個級別,用戶可根據使用環境選擇相應的級別。調高級別,糾錯能力也相應提高,但由於數據量會隨之增加,編碼尺寸也也會變大。


最常見的QR二維碼,用的是里德-所羅門碼(RS)來做糾錯。

分有幾級,糾錯級別越高,整體需要攜帶的信息越多:L級可糾正約7%錯誤、M級別可糾正約15%錯誤、Q級別可糾正約25%錯誤、H級別可糾正約30%錯誤。

RS碼原理比較複雜,整體基於「任意k個確定點可表示一個階數至少為k-1的多項式」,實際上發送超過k個點,就算中間有一些錯誤,也能通過數學原理反推出最初的多項式,從而獲得信息。

並不是所有位置都可以缺損,像最明顯的那三個角上的方框,直接影響初始定位。

中間零散的部分是內容編碼,可以容忍缺損。

以下圖示來自:QR code

Mr. Watson, come here - I want to see you. (二維碼自動識別)

Mr. Watson, come here - I want to see you. (二維碼自動識別)


推薦閱讀:

TAG:互聯網 | 二維碼 | 二維碼應用 |