조회 수 1356 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 첨부

QR 코드 크기

QR 코드는 버전 1 ~ 버전 40 까지 총 40개의 크기가 정의되어 있다. 버전 1이 QR 코드의 크기가 가장 작으며 버전이 올라갈 수록 QR 코드의 크기는 커진다. 

QR 코드는 버전이 증가할 때 마다 가로, 세로 각각 4 modules 씩 증가한다. 버전 1의 경우 { 21 x 21 } modules로 구성되며 버전 2의 경우 가로, 세로 각각 4 modules 증가하여 { 25 x 25 } modules로 구성된다. 크기가 가장 큰 버전 40의 경우는 { 177 x 177 } modules로 구성할 수 있다. 

 

QR 코드 구조

QR 코드는구성여백 ( Quiet Zone ) 을 포함한 정사각형 모양으로 기능 패턴 ( Function Patterns )과 인코딩 영역 ( Encoding Region )으로 구성된다. 기능 패턴은  { Finder Pattern, Separator, Timing Patterns, Alignment Patterns } 로 이루어져 있으며 해당 데이터는 인코딩되지 않는다. 인코딩 영역은 { Format Information, Version Information, Data and Error Correction Code }로 이루어져 있으며 데이터를 인코딩 하여 저장한다.

 

QRCode Structure_1.png

[ 그림 1 ] QR 코드 구조

 

[ 그림 1 ] 의 QR 코드 구조를 실제 QR 코드 ( Version 2 ) 를 예제로 하여 간략하게 설명한다. 

 

00. QRCode.png

[ 그림 2 ] QR Code Sample

Finder Pattern

 

01. Finter Pattern.png

[ 그림 3 ] Finder Pattern

일반적으로 좌측 상단, 우측 상단, 좌측 하단에 배치하며 QR 코드의 기준점이 된다. 기능 패턴 삽입 시 해당 패턴의 위치를 잡아주며 어느 위치와 방향에서도 QR 코드를 스캑하여 인식할 수 있게 해준다.

Finder Pattern은 바깥쪽부터 항상 흑백 -> 흰색 -> 흑백으로 구성되며 각각 1:1:3:1:1 의 비율을 유지한다.

FinderPatternStructure.png

[ 그림 4 ] Structure of Position Detection Pattern

 

Finder11311.png

[ 그림 5 ] Structure of Position Detection Pattern Ratio

Timing Pattern

 

04. Timing Pattern.png

[ 그림 6 ] Timing Pattern

QR 코드의 데이터들의 정확한 위치를 알기 위한 표시로 좌측 상단을 원점 ( 0, 0 )으로 가정하고 [ 그림 5 ]와 같이 Position Detection Patter 기준으로 각각 ( 6, 8 ) / ( 9, 7 ) 을 시작으로 좌측 하단, 우측 상단으로 흑백을 번갈아 가면서 채우는 패턴이다. 

 

Alignment Pattern

 

02. Alignment Pattern.png

[그림 7 ] Alignment Pattern

QR 코드가 왜곡되었을 때 사용하는 패턴으로 버전 2부터 지원하고 있으며 각 버전별로 위치가 정해져 있다.

Alignment Pattern은 바깥쪽부터 항상 흑백 -> 흰색 -> 흑백으로 구성되며 각각 1:1:1:1:1 의 비율을 유지한다.

 

Format Information

 

03. Format Information.png

[그림 8 ] Format Pattern

 

QR 코드 스캔 후 데이터를 추출할 때 가장 먼저 분석하는 부분으로 QR 코드의 각종 정보 ( ECC Level, Masking Pattern )를 저장하고 있다.

 

Version Information

버전 7 이상부터 지원하고 있으며 버전 정보를 저장하고 있다.

 

Encoding Region

05. Data.png

[그림 9 ] Encoding Region

 

실제 데이터를 저장하는 부분으로 Encoding 데이터와 오류 보정 ( Error Correction Code )가 저장되어 있다.

?