마스크 패턴

다른 이름: 데이터 마스크, 마스킹, mask pattern

정의

마스크 패턴은 큰 덩어리와 헷갈리는 모양을 없애려고 QR코드의 데이터 영역에 XOR하는 여덟 가지 고정 패턴 중 하나예요. 인코더는 네 가지 감점 규칙에서 점수가 가장 좋은 마스크를 골라요.

마스킹이 하는 일

데이터와 오류 정정 비트를 배치하고 나면 한 가지 색이 길게 이어지거나 파인더 패턴처럼 보이는 모양이 생기는 영역이 있을 수 있어요. 마스킹은 간단한 공식이 참인 곳의 모듈을 뒤집어서 어둡고 밝은 모듈이 더 고르게 퍼지도록 해요.

마스크는 데이터와 오류 정정 영역에만 적용돼요. 파인더, 타이밍, 정렬 패턴, 포맷 정보와 버전 정보, 다크 모듈에는 절대 적용하지 않아요.

여덟 가지 마스크

마스크는 000부터 111까지 번호가 붙어요. 각각 모듈의 행 i와 열 j에 대한 조건으로 정의되고, 조건이 참인 모듈은 뒤집혀요. 리더는 포맷 정보에서 마스크 번호를 알아내 같은 마스크를 다시 적용해서 되돌려요.

  • 000: (i + j) mod 2 = 0, 체크무늬
  • 001: i mod 2 = 0, 한 줄씩 건너뛰는 행
  • 010: j mod 3 = 0, 세 열마다 하나
  • 011: (i + j) mod 3 = 0, 대각선 줄무늬
  • 100~111: 행, 열, 곱을 조합한 더 복잡한 패턴

가장 좋은 마스크를 고르는 방법

인코더는 여덟 가지 마스크를 모두 시도하고 네 가지 감점 규칙으로 각 결과에 점수를 매겨요. 총 감점이 가장 낮은 마스크를 쓰며, 그래야 완성된 코드를 카메라가 더 쉽게 읽어요.

일부 생성기는 전체 평가를 건너뛰고 고정 마스크를 써요. 유효한 코드가 나오기는 하지만 스캔이 조금 더 어려울 수 있어요. Micro QR코드는 자체 채점 규칙이 있는 네 가지 마스크만 써요.

  • 규칙 1: 행이나 열에서 같은 색이 길게 이어지는 경우
  • 규칙 2: 한 가지 색의 2×2 블록
  • 규칙 3: 1:1:3:1:1 파인더 비율과 닮은 패턴
  • 규칙 4: 어두운 모듈과 밝은 모듈의 전체적인 불균형

자주 묻는 질문

내용이 같은데 두 QR코드가 다르게 보이는 이유는 무엇인가요?

마스크 패턴, 오류 정정 레벨, 버전이 다를 수 있어요. 이 중 무엇이든 바뀌면 모듈 배치가 달라지지만 해독된 내용은 똑같아요.

QR코드에는 마스크 패턴이 몇 가지 있나요?

표준에는 000부터 111까지 여덟 가지가 정의되어 있어요. 선택된 마스크는 포맷 정보에 기록되어, 스캐너가 이를 벗겨 낼 수 있어요.

출처와 표준

모든 용어