2017-10-07 4 views
1

내 데이터 구조 클래스에서 최종 프로젝트를위한 QR 코드 생성기를 만들고 싶습니다. 그러나 나는 "Formatted Error Correction"부분을 이해하는 데 어려움을 겪고 있습니다. 나는 11 (L)의 오류 보정과 100의 마스킹 패턴 (다른 모든 행)을 사용하고 싶다. 나는 학부생이기 때문에 버전 1 QR 코드를 다루고 바이트 인코딩을 사용하여 매우 간단하게 유지하려고합니다.QR 코드 생성기의 리드 솔로몬 알고리즘

그런 다음 데이터가 출력 된 후 오류 수정 상자가 표시되는 방법을 이해하지 못합니다.

답변

1

일부 사양을 보면 오류 수정 수준 L (낮음, 7 %를 수정할 수 있음)은 11이 아니라 두 비트 패턴 01로 식별됩니다. 마스크 및 오류 수정 수준을 포함하는 QR 코드 형식 문자열에 연결합니다. 는 thonky.com 웹 페이지에서 사용 된 것과 동일하다 특정 오류 정정 레벨 및 마스크 패턴을 선택한 이후

http://www.thonky.com/qr-code-tutorial/format-version-information

, 형식 문자열 비트의 고정 된 15 비트 패턴 것이다 : "오류 수정 수준이 L이고 마스크 패턴이 4 인 코드의 최종 형식 문자열은 110011000101111"이므로 계산할 필요가 없습니다. QR 코드는

, 8 비트 필드 GF (2^8) 진 필드 모두 덧셈과 뺄셈은 XOR과 동일한 지 9 비트 다항식

x^8 + x^4 + x^3 + x^2 + 1 = hex 11d 
    the primitive α = x + 0 = hex 2 

주에 기초한다.

QR 코드 버전 1은 22 x 21 비트의 매트릭스 = 441 비트가 검정 또는 흰색 사각형으로 표시되며 208 비트 == 26 바이트가 데이터 및 ecc에 사용됩니다.

오류 수정 레벨 L이있는 QR 코드는 152 비트 == 19 바이트의 데이터와 56 비트 == 7 바이트의 ecc, 4는 수정에 사용되며, 3은 감지에 사용됩니다. 수정에 사용 된 4 바이트는 26 바이트 중 2 바이트를 수정할 수 있습니다. 26 바이트 중 약 7 %가 수정됩니다. 검출에 사용되는 3 바이트 이외에, 디코딩 중에 계산 된 위치 중 하나가 26 바이트 데이터의 범위 밖에있는 경우에도 정정 불가능한 오류가 검출됩니다.

생성 다항식 g (x)는 7 항의 나머지가되는 8 항 다항식입니다. g (x) = 0의 7 개의 근은 α의 연속적인 힘이며,이 경우 α^0, α^1, ... α^6 == 16 진수 01, 02, 04, 08, 10, 20, 40이다.

g(x) = (x-1)(x-α)(x-α^2)(x-α^3)(x-α^4)(x-α^5)(x-α^6) 

은 또한 이후 == 감산 == XOR은 마이너스가 흑자로 대체 될 수있다 :

g(x) = (x+1)(x+α)(x+α^2)(x+α^3)(x+α^4)(x+α^5)(x+α^6) 
g(x) = (x+01)(x+02)(x+04)(x+08)(x+10)(x+20)(x+40) 
g(x) = 01 x^7 + 7f x^6 + 7a x^5 + 9a x^4 + a4 x^3 + 0b x^2 + 44 x + 75 

다항식 m로 데이터의 19 바이트를 고려 (X) (m 메시지 약자) . 19 바이트의 데이터에는 x^7을 곱하여 7 바이트의 0으로 채 웁니다. 그런 다음 26 바이트 다항식을 생성 다항식으로 나누고 나머지는 "빼기"(xor'ed 또는 패딩이 0을 생성하므로 나머지는 패딩 된 바이트를 바꿉니다)를 패딩 된 데이터의 하위 7 바이트로 대체합니다. 나머지 R (X)를 호출하고, 부호화 된 결과 C (X)

r(x) = (m(x) x^7) % g(x) 
c(x) = (m(x) x^7) - r(x) 

가 다시 감산을 참고 XOR 또한 동일하다.

위키 리드 솔로몬에 대한 괜찮은 기사가 있습니다

http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

와 NASA는 튜토리얼이 있습니다

http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19900019023.pdf

관련 문제