KR101770540B1 - 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템 - Google Patents

이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템 Download PDF

Info

Publication number
KR101770540B1
KR101770540B1 KR1020167031742A KR20167031742A KR101770540B1 KR 101770540 B1 KR101770540 B1 KR 101770540B1 KR 1020167031742 A KR1020167031742 A KR 1020167031742A KR 20167031742 A KR20167031742 A KR 20167031742A KR 101770540 B1 KR101770540 B1 KR 101770540B1
Authority
KR
South Korea
Prior art keywords
pattern
dimensional code
pattern portion
data
information
Prior art date
Application number
KR1020167031742A
Other languages
English (en)
Other versions
KR20160135841A (ko
Inventor
유타카 호소카네
Original Assignee
교도 인사쯔 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 교도 인사쯔 가부시키가이샤 filed Critical 교도 인사쯔 가부시키가이샤
Publication of KR20160135841A publication Critical patent/KR20160135841A/ko
Application granted granted Critical
Publication of KR101770540B1 publication Critical patent/KR101770540B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06046Constructional details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes

Abstract

2 진 코드로 나타내는 데이터를 셀화하여, 이차원의 매트릭스상으로 패턴으로서 배치한 이차원 코드로서, 기본 패턴부와, 상기 기본 패턴부의 외측에 배치되는 주변부를 구비하고, 상기 기본 패턴부는, 셀 위치를 특정하기 위한 위치 검출 패턴과, 상기 이차원 코드 영역 내의 상기 기본 패턴부의 위치를 나타내는 기본 패턴부 이동 정보를 포함하는 것을 특징으로 하는 이차원 코드.

Description

이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템{TWO-DIMENSIONAL CODE, TWO-DIMENSIONAL-CODE ANALYSIS SYSTEM, AND TWO-DIMENSIONAL-CODE GENERATION SYSTEM}
본 발명은, 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템에 관한 것이다.
이차원 코드는, 일차원 코드와 비교하여, 좁은 면적에 많은 정보를 가질 수 있는 데이터 효율이 높은 코드로서, 물품 관리나, 휴대 전화를 사용한 웹 유도 등, 다양한 용도로 널리 활용되고 있다.
이차원 코드는, 촬영된 화상의 위치 관계를 검출하기 위해서, 소정 형상의 위치 검출 패턴을 갖는다. 위치 검출 패턴은, 이차원 코드 내에서, 다른 부분과 용이하게 구별 가능한 형상을 갖는다. 해석시에는, 촬영한 이차원 코드의 화상에 있어서, 위치 검출 패턴을 검출하고, 위치 검출 패턴의 위치 관계에 기초하여 변환을 실시한다. 위치 검출 패턴의 검출은, 해석의 기초가 되는 처리이며, 위치 검출 패턴을 인식할 수 없는 경우에는, 코드는 인식할 수 없기 때문에, 위치 검출 패턴을 인식시키기 쉬운 구성으로 하는 것은, 코드의 해석의 정밀도에 있어서 중요한 요소가 된다.
종래의 이차원 코드로는, 특허문헌 1 의 것이 알려져 있다.
일본 공개특허공보 평7-254037호
이차원 코드를 인식하는 경우, 인식이 곤란한 조건하에서도 이용할 수 있도록 하는 것이 요구되고 있다. 예를 들어, 잡지의 페이지 넘김 부위의 내측의 둥글게 된 부분에 코드를 인자하는 경우, 곡률이 지나치게 커지면 내측의 위치 검출 패턴을 발견할 수 없게 된다. 마찬가지로, 제조 현장에서, 코드의 소정의 위치에 조명을 비추어, 항상 특정한 위치 검출 패턴이 노출 과다하여, 인식할 수 없는 것과 같은 경우가 있다. 이와 같이, 미리 코드의 특정한 지점에 판독 곤란한 영역이 발생하는 것이 판명되어 있는 경우가 있다. 이 경우에, 이차원 코드의 판독의 인식 정밀도를 높이는 것이 요구된다.
본 발명은, 위치 검출 패턴의 배치의 자유도를 향상시켜, 판독 곤란한 영역을 피하여 위치 검출 패턴을 배치할 수 있는 이차원 코드의 실현을 목적으로 한다.
청구항 1 의 발명에서는, 2 진 코드로 나타내는 데이터를 셀화하여, 이차원의 매트릭스상으로 패턴으로서 배치한 이차원 코드로서, 기본 패턴부와, 상기 기본 패턴부의 외측에 배치되는 주변부를 구비하고, 상기 기본 패턴부는, 셀 위치를 특정하기 위한 위치 검출 패턴과, 상기 이차원 코드 영역 내의 상기 기본 패턴부의 위치를 나타내는 기본 패턴부 이동 정보를 포함하는 이차원 코드이다.
청구항 2 의 발명에서는, 상기 기본 패턴부 이동 정보는, 상기 기본 패턴부의 소정 위치로부터의 이동량을 나타내는 기본 패턴부 이동량 정보인 청구항 1 에 기재된 이차원 코드이다.
청구항 3 의 발명에서는, 상기 기본 패턴부 이동 정보는, 상기 기본 패턴부의 이차원 코드 내에서의 위치를 나타내는 기본 패턴부 위치 정보인 청구항 1 에 기재된 이차원 코드이다.
청구항 4 의 발명에서는, 상기 기본 패턴부 이동 정보는, 상기 기본 패턴부의 소정 위치로부터의 이동의 유무를 나타내는 기본 패턴부 이동 플래그를 포함하는 청구항 1 내지 3 의 어느 한 항에 기재된 이차원 코드이다.
청구항 5 의 발명에서는, 청구항 1 에 기재된 이차원 코드의 해석 시스템으로서, 상기 위치 검출 패턴의 위치 관계에 기초하여 상기 기본 패턴부의 좌표를 구하고, 상기 기본 패턴부 이동 정보를 검출하는 검출 수단과, 부호화된 메시지로 이루어지는 실데이터를 해석하는 실데이터 해석 수단을 구비하고, 상기 실데이터 해석 수단은, 상기 기본 패턴부 이동 정보의 검출 결과에 기초하여 결정한 상기 실데이터의 검출을 실시하는 이차원 코드의 해석 시스템이다.
청구항 6 의 발명에서는, 청구항 1 에 기재된 이차원 코드의 작성 시스템으로서, 상기 이차원 코드의 주변부의 셀의 배치를 결정하기 위한 스펙 데이터의 작성 수단과, 부호화된 메시지로 이루어지는 실데이터의 작성 수단과, 상기 기본 패턴부 이동 정보를 배치하는 수단과, 적어도 주변부에 상기 실데이터를 배치하는 수단을 포함하는 이차원 코드의 작성 시스템이다.
본 발명의 이차원 코드는, 위치 검출 패턴의 배치의 자유도가 높아, 이차원 코드를 배치하는 경우에, 판독 곤란한 영역에 위치 검출 패턴이 위치하는 경우에는, 그러한 판독 곤란한 영역을 피하여 위치 검출 패턴을 배치할 수 있다. 이에 의해, 이차원 코드의 판독의 인식 정밀도를 높일 수 있다.
도 1 은 제 1 실시형태의 이차원 코드의 구성을 나타내는 도면이다.
도 2a 는 이차원 코드에 기록되는 데이터 구성예를 나타낸다.
도 2b 는 이차원 코드에 기록되는 실데이터의 구성예를 나타낸다.
도 3a 는 제 1 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 전체 구성을 나타낸다.
도 3b 는 제 1 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면으로, 일부분을 확대한 블록 및 분리 패턴을 나타낸다.
도 4 는 제 1 실시형태의 이차원 코드의 변형예를 나타내는 도면이다.
도 5a 는 제 2 실시형태를 나타내는 도면 (그 1) 이다.
도 5b 는 제 2 실시형태를 나타내는 도면 (그 2) 이다.
도 5b 는 제 2 실시형태를 나타내는 도면 (그 3) 이다.
도 6a 는 제 2 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면 (그 1) 이다.
도 6b 는 제 2 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면 (그 2) 이다.
도 7a 는 제 2 실시형태의 다른 예를 나타내는 도면 (그 1) 이다.
도 7b 는 제 2 실시형태의 다른 예를 나타내는 도면 (그 2) 이다.
도 7c 는 제 2 실시형태의 다른 예를 나타내는 도면 (그 3) 이다.
도 7d 는 제 2 실시형태의 다른 예를 나타내는 도면 (그 4) 이다.
도 8 은 제 2 실시형태의 다른 예를 나타내는 도면 (그 5) 이다.
도 9a 는 이차원 코드의 버전 정보에 따른 변화를 설명하는 도면 (그 1) 이다.
도 9b 는 이차원 코드의 버전 정보에 따른 변화를 설명하는 도면 (그 2) 이다.
도 10 은 버전 정보의 비트열을 나타내는 도면으로, 각 버전과, 그것을 나타내는 비트수와, 비트열을 나타낸다.
도 11 은 제 1 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 12 는 제 2 실시형태의 일례를 나타내는 도면이다.
도 13 은 제 2 실시형태의 일례를 나타내는 도면이다.
도 14 는 공백 영역을 형성한 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 15 는 버전 가로 3 × 세로 3 의 이차원 코드로, 기본 패턴부가 이동하지 않는 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 16 은 주변부를 포함하는 이차원 코드에 대하여 기본 패턴부를 중심으로부터 이동한 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 17 은 가로 방향에 대하여, 기본 패턴부의 위치를 기본 패턴부 이동량 정보로 어떻게 나타내는지 설명하는 도면이다.
도 18 은 버전 가로 19 × 세로 19 의 이차원 코드에 있어서, 기본 패턴부 (11) 를 이동시킨 예를 나타내는 도면이다.
도 19 는 이차원 코드를 작성하여 제공하는 작성 시스템의 하드웨어 구성을 나타내는 도면이다.
도 20 은 유저가, 유저 하드웨어를 통하여 시스템 하드웨어에 액세스하여, 원하는 이차원 코드를 작성하는 인코드 처리의 순서를 나타내는 플로우 차트이다.
도 21 은 실시형태의 이차원 코드를 판독하고, 이차원 코드를 해석하는 이차원 코드 해석 장치의 하드웨어 구성을 나타내는 도면이다.
도 22 는 유저가 촬영한 이차원 코드를 해석하는 디코드 처리의 순서를 나타내는 플로우 차트이다.
도 23 은 유저가 촬영한 이차원 코드를 해석하는 디코드 처리의 순서를 나타내는 플로우 차트이다.
도 1 은, 제 1 실시형태의 이차원 코드의 구성을 나타내는 도면이다.
제 1 실시형태의 이차원 코드 (10) 는, 2 진 코드로 나타내는 데이터를 셀화하여, 이차원의 매트릭스상으로 패턴으로서 배치한 이차원 코드이며, 일정 형상의 기본 패턴부 (11) 를 갖는다. 기본 패턴부 (11) 는, 셀 위치를 특정하기 위한 위치 검출 패턴 (12A - 12D) 와, 스펙 데이터와 실데이터로 이루어지는 결합 데이터를 포함한다. 스펙 데이터는, 후술하는 주변부의 사이즈를 결정하는 버전 정보를 포함한다. 결합 데이터를 나타내는 데이터 구조는, 스펙 데이터와 실데이터의 단락이 명확한 구조로 한다.
도 1 에 있어서, 기본 패턴부 (11) 내의 위치 검출 패턴 (12A - 12D) 을 제외한 영역, 즉, 참조 번호 13 으로 나타내는 영역은 결합 데이터의 데이터 영역이다. 영역 (13) 에는, 스펙 데이터와 실데이터로 이루어지는 결합 데이터가 기록된다. 영역 (13) 에는, 추가로 위치 보정 패턴 및 후술하는 분리 패턴이 필요에 의해 형성된다. 또한, 영역 (13) 에는, 결합 데이터의 오류 정정을 실시하는 기본 패턴부 정정 데이터도 기록된다. 스펙 데이터는, 영역 (13) 내의 소정의 위치에 기록된다.
결합 데이터는, 기본 패턴부에 기록되는, 스펙 데이터와 실데이터를 합한 것이다. 결합 데이터는, 후술하는 주변부 (20) 의 실데이터를 포함하지 않는다. 기본 패턴부 오류 정정 데이터는, 영역 (13) 으로 나타내는 소정의 데이터량을 정정하는 정보를 갖는다.
스펙 데이터의 데이터량은, 주변부의 사이즈를 결정하는 버전 정보나, 이차원 코드 (10) 에 있어서의 기본 패턴부 (11) 의 위치 정보, 공백에 관한 정보 등 이차원 코드의 외형에 영향을 주는 정보의 조합 패턴 수나, 주변부의 오류 정정의 레벨 정보의 데이터량에 따라 증감한다. 그러나, 스펙 데이터의 데이터량의 변화량은, 데이터 영역 (13) 에 기록할 수 있는 범위 내이다. 영역 (13) 중, 스펙 데이터를 기록한 나머지의 부분에 실데이터가 기록된다. 요컨대, 결합 데이터의 스펙 데이터의 기록량을 임의로 설정 가능한 점에서, 기본 패턴부 (11) 내에 기록 가능한 실데이터의 데이터량은, 스펙 데이터의 데이터량에 따라 증감한다. 제 1 실시형태는, 후술하는 버전 정보가 주변부에는 존재하지 않는 것을 나타내고 있는 (버전 가로 1 × 세로 1) 실시형태이다.
도 2a 는, 이차원 코드에 기록되는 데이터 구성예를 나타낸다. 도 2b 는, 이차원 코드에 기록되는 실데이터의 구성예를 나타낸다.
도 2a 에 나타내는 바와 같이, 스펙 데이터는 모두 기본 패턴부 (11) 내에 기억되고, 실데이터는 기본 패턴부 (11) 내의 잔여 부분에 기록되고, 기본 패턴부에 전부 들어가지 않는 경우에는, 후술하는 기본 패턴부의 주위에 형성되는 주변부에 기록된다. 스펙 데이터의 데이터량은 증감하기 때문에, 기본 패턴부 (11) 내의 스펙 데이터와 실데이터의 경계는, 스펙 데이터의 데이터량에 따라 변화한다. 기본 패턴부 (11) 내에 기록되는 스펙 데이터와 실데이터는, 스펙 데이터의 바이너리열과 실데이터의 바이너리열을 결합시킨 데이터 비트열인 결합 데이터로서 기록된다. 또한, 기본 패턴부 (11) 내의 데이터 영역 (13) 을 블록으로 분할하는 경우, 스펙 데이터와 실데이터의 경계가 블록 내에 존재하는 경우가 발생할 수 있다.
스펙 데이터는, 주변부에 있어서의 데이터의 배치에 관한 정보를 나타내는 데이터이다. 스펙 데이터는, 주변부의 형상을 선택하는 스타일 정보, 주변부의 사이즈를 결정하는 세로·가로의 버전 정보, 주변부의 오류 정정 데이터의 양이 가변이면 주변부 오류 정정 레벨 정보, 주변부 실데이터를 배치하지 않는 블록을 결정하는 공백 정보 (데이터로서 기능하지 않는 블록의 정보), 및 기본 패턴부 이동 정보 등을 갖는다.
스펙 데이터는, 이차원 코드의 사양을 나타내는 데이터인데, 기본 패턴부 (11) 가 항상 일정 형상인 경우, 실질적으로 주변부 (20) 의 스펙을 정의하는 것으로 간주할 수 있다. 여기서, 일정 형상이란, 치수 및 형상이 고정되어 있는 의미이다.
스펙 데이터는, 발행하는 이차원 코드 (10) 에 의해 데이터량이 증감하여, 주변부에 기록하는 데이터량 및 데이터 배치에 영향을 주는 정보를 갖는다. 한편으로, 스펙 데이터는, 데이터량이 변화하지만, 기본 패턴부 (11) 에 있어서의 스펙 데이터 내의 정보는 미리 정해진 순서로 배치하여 기록된다. 기본 패턴부 (11) 의 데이터 영역 (13) 의 잔여 부분에 실데이터가 기록된다.
특허문헌 1 등에 기재가 있는 QR 코드 (등록상표) 에서는, 촬영 화상으로부터, 위치 검출 패턴의 화소 수와, 위치 검출 패턴끼리의 거리의 화소 수를 계측하고, 그것으로부터 스펙 데이터인 버전 정보를 산출하는 것도 가능하다. 이것을, QR 코드 (등록상표) 의 규격 (JIS X 0510:2004) 에 의하면, 참조 부호 알고리즘에 있어서, 임시의 심볼 형번을 구하는 방법으로서 기재되어 있다. 이 버전 정보는, 촬영 화상의 이차원 코드의 형상으로부터 산출되어 있고, 코드를 비스듬히 위로부터 촬영한 경우나, 잉크가 번진 경우 등에서는, 오차가 발생한다. 이차원 코드에는 가혹한 환경하에서의 촬영이나, 열악한 인자에서의 인식도 요구되기 때문에, 이 오차를 일으키지 않기 위해서, 버전 정보를, 판독에 필요한 용장성과 함께, 이차원 코드에 데이터로서 가지는 것이 바람직하다.
도 2b 는 메시지를 부호화한 실데이터의 일례를 나타낸다. 도 2b 에 나타내는 바와 같이, 실데이터는, 메시지 및 메시지를 수식하는 헤더 (메시지 종류 (메시지의 인코드)·메시지 사이즈) 를 합한 세그먼트를, 메시지수만큼 나열한다. 메시지는, 유저가 이차원 코드에 저장하는 데이터로서, 복수의 메시지를 저장할 수 있고, 메시지별로 세그먼트를 부여한다. 또한, 특수한 세그먼트로서, 메시지를 포함하지 않는, 종단 플래그만이 들어간 세그먼트를 준비하고, 실데이터의 용량이 남은 경우에 종단 플래그의 세그먼트를 배치하고, 그 후에 패딩을 배치한다. 따라서, 종단 플래그는, 메시지의 유무를 나타내고, 마지막 세그먼트인 종단 플래그는 true 이고, 그 이외의 세그먼트의 종단 플래그는 false 이다.
도 2a 에 나타내는, 스펙 데이터와 실데이터는, 1 블록 당의 데이터 용량에 따라, 블록 단위로 분할된다. 마찬가지로 오류 정정 데이터도, 블록 단위로 분할된다.
데이터에는 오류 정정 데이터가 부여된다. 오류 정정 데이터에 리드 솔로몬 부호를 사용한 경우, 오류 정정은 워드 단위로 실시되기 때문에, 1 워드를 1 블록으로 하는 것이 바람직하다. 1 워드가 복수의 블록에 걸치는 경우, 1 개의 블록에 오염이 발생한 경우에도, 그 블록이 관계하는 모든 워드가 오류 정정의 대상이 되어, 정정의 효율이 나빠진다. 정정 원인이 되는 오염이나, 스포트라이트에 의한 색 바램은, 1 개 지점에 집중되는 경우가 많지만, 1 워드를 1 블록으로 함으로써 동시에 정정 대상이 되는 데이터를 1 개 지점에 모으는 효과가 있어, 효율적인 정정을 가능하게 하고, 코드를 인식시킬 가능성을 높인다.
여기서, 스펙 데이터에 대하여 추가로 설명한다. 스펙 데이터의 데이터량은, 주변부의 크기를 결정하는 버전 정보에 의해 증감시킬 수 있다. 즉, 주변부가 작거나, 혹은 존재하지 않는 경우에는 기본 패턴부 내의 스펙 데이터의 양을 적게 하고, 주변부가 큰 경우에는 기본 패턴부 내의 스펙 데이터의 양을 많게 함으로써, 코드의 정보량에 맞추어 스펙 데이터의 데이터량을 증감시키는 것이 가능하다. 종래예와 같은 스펙 데이터의 데이터량을 고정시킨 경우, 코드의 사이즈가 작은 경우에, 코드의 면적 당의 스펙 데이터의 데이터량이 차지하는 비율이 커진다는 과제도 있었지만, 본 실시형태에서는 이 문제를 해결 가능하다.
상기와 같이, 스펙 데이터는, 버전 정보를 포함하고, 버전 정보에 기초하여 이차원 코드의 크기 (사이즈) 가 결정된다. 예를 들어, 버전 정보로서, 코드의 가로의 사이즈를 나타내는 가로 버전 정보와, 코드의 세로의 사이즈를 나타내는 세로 버전 정보라는 2 종류의 데이터가 있으면, 코드는 임의의 사이즈의 장방형이 된다. 버전 정보의 상세한 것에 대해서는 후술한다.
도 3a 는, 제 1 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 전체 구성을 나타낸다. 도 3b 는, 제 1 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면으로, 일부분을 확대한 블록 및 분리 패턴을 나타낸다.
제 1 실시형태의 이차원 코드 (10) 는, 도 3b 에 나타내는 바와 같이, 이 예에서는, 1 블록은 가로 3 × 세로 3 셀을 포함하고, 분리 스페이스 (16) 는 1 셀의 폭을 갖는다. 기본 패턴부 (11) 는, 파선으로 둘러싼 가로 7 × 세로 7 블록 (가로 27 × 세로 27 셀) 의 사이즈로, 4 개의 코너에 위치 검출 패턴 (12A - 12D) 가 배치된다. 기본 패턴부 (11) 의 위치 검출 패턴 (12A - 12D) 이외의 영역이, 기본 패턴부 (11) 의 데이터 영역 (13) 이다. 영역 (13) 중, 기본 패턴부 (11) 의 상측의 가로 7 × 세로 3 블록의 위치 검출 패턴 (12B 및 12D) 이외의 영역 (14) 의 블록 A1-A11 이, 결합 데이터를 기록하는 블록이고, 기본 패턴부 (11) 의 하측의 가로 7 × 세로 4 블록의 위치 검출 패턴 (12A 및 12C) 이외의 영역의 블록 (B1 - B12) 이, 기본 패턴부 (11) 의 영역 (13) 에 기록되는, 결합 데이터의 오류 정정을 실시하는 기본 패턴부 오류 정정 데이터 (워드) 를 기록하는 영역이다.
블록은 가로 3 × 세로 3 셀로 하지만, 이것이 장방형이어도, 가변이어도 상관없다.
또한, 셀의 형상을 정방형으로 하고 있지만, 이것에 한정되는 것은 아니다.
또한, 도 3a 의 이차원 코드 (10) 에서는, 각 블록은 분리 패턴 (16) 으로 분리되어 있기 때문에, 4 개의 위치 검출 패턴 (12A - 12D) 는, 모두 블록보다 큰 면적을 갖는다. 이에 의해, 위치 검출 패턴과 동일한 패턴이, 이차원 코드 중에 출현하는 경우가 없어져, 위치 검출 패턴의 식별이 용이해진다. 또한, 각 블록 (15) 은 분리 스페이스 (16) 에 의해 분리되어 있기 때문에, 특히 촬영 화상에 흐려짐·흔들림이 있는 경우의, 각 블록 (15) 에 있어서의 셀의 명암의 판정 정밀도가 향상된다.
도 3a 의 이차원 코드 (10) 의 영역 (13) 에 있어서, 블록 (18) 은 위치 보정 패턴이다. 위치 보정 패턴 (18) 은, 블록 (18) 의 9 개의 셀이 모두 암이지만, 위치 보정 패턴 (18) 의 형상은 이것에 한정되는 것이 아니고, 위치 보정 패턴으로서 식별할 수 있는 것이면 된다.
위치 보정 패턴 (18) 은, 기본 패턴부의 중심 블록을 (CX, CY) 로 했을 때에, (CX + 7N, CY + 7M) (N, M 은 정수, 단, 코드를 초과하지 않는다) 의 블록에 형성하는 것이 바람직하다. 이차원 코드 (10) 의 영역을 벗어난 부분에는, 위치 보정 블록을 배치하지 않는다. 또한, 위치 보정 패턴 (18) 은, 공백 블록과 겹치는 경우, 위치 검출 패턴과 겹치는 경우에도 배치하지 않는다. 도 3a 에서는, N = M = 0 인 위치 보정 패턴 (18) 을 1 블록에만 형성하고 있다.
위치 보정 패턴을 포함하면 용장성이 높아져, 인식 정밀도 향상을 기대할 수 있다. 위치 검출 패턴 (12A - 12D) 의 1 개가 오염에 의해 발견되지 않은 경우, 인식할 수 있었던 위치 검출 패턴 3 개로부터 위치 보정 패턴 (18) 의 위치를 추측하고, 이것을 찾아낸다. 이 위치 검출 패턴 3 개와 위치 보정 패턴 1 개로부터, 4 개의 점의 조(粗)를 파라미터로 하는 이차원 공간의 사영 변환으로부터, 이차원 코드 (10) 의 각 셀의 계산 정밀도가 높아진다. 이와 같이, 도 3a 의 이차원 코드 (10) 는, 위치 보정 패턴 (18) 을 형성함으로써, 이차원 코드 (10) 에 있어서의 셀 위치 검출의 정밀도가 더욱 높아진다.
위치 검출 패턴의 배치에는 그 밖에도 각종의 조합을 고려할 수 있다. 위치 검출 패턴과 위치 보정 패턴의 합계가 5 개이고, 위치 검출 패턴이 3 개 이하인 조합에 대해서는, 모두, 4 개의 위치 검출 패턴과 1 개의 위치 보정 패턴의 조합으로부터, 오염 등에 대한 내성이 약해지지만, 인식은 가능하다.
위치 검출 패턴과 위치 보정 패턴은, 셀의 좌표를 특정하기 위해서 사용되지만, 역할이 상이하다. 위치 검출 패턴은, 해석시에, 위치 검출 패턴은 독립적으로 식별할 수 있고, 코드의 내외에서 동일한 형상이 나타나지 않는 것이 바람직하다. 잘못된 위치 검출 패턴을 검출한 경우, 이차원 코드인지 여부를 판별할 필요가 있어, 해석에 시간이 걸리게 된다. 또한, 식별에 시간이 걸리는, 복잡한 형상이나, 코드의 다른 부분과 분리 곤란한 형상이 아닌 것이 바람직하다.
한편으로, 위치 보정 패턴의 검출은, 위치 검출 패턴에 의해 이차원 코드의 위치를 특정한 후에 실시된다. 위치 보정 패턴의 장소도 대체로 알고 있는 상태에서, 어느 일정 범위를 탐색함으로써, 위치 보정 패턴을 발견한다. 위치 보정 패턴에 의해, 셀의 좌표의 계산의 정밀도를 높이고, 이차원 코드가 휘어져, 셀이 비균일해진 경우에도 인식할 수 있는 가능성을 높이는 것이 가능해진다.
도 4 는, 제 1 실시형태의 이차원 코드의 변형예를 나타내는 도면이다. 이와 같이, 위치 검출 패턴의 개수는 1 개여도 상관없다. 단, 위치 검출 패턴이 1 개인 경우에는, 도 4 와 같은 방향을 일의적으로 결정할 수 있는 위치 검출 패턴 (52) 으로 할 필요가 있다.
도 5a, 도 5b 및 도 5c 는, 제 2 실시형태를 나타내는 도면이다. 제 2 실시형태는 제 1 실시형태와 비교하여, 기본 패턴부의 주위에 주변부 (20) 가 형성되어 있는 점이 상이하다. 스펙 데이터의 증가나, 실데이터의 증가에 의해, 실데이터가 기본 패턴부에 전부 기록되지 않는 경우에는, 그 실데이터를 주변부 (20) 에 기록한다.
도 5a 는, 정방형의 기본 패턴부 (11) 를 갖는 예를 나타낸다. 도 5b 는, 이차원 코드 (10) 가, 도 5a 에 비하여 세로로 긴 기본 패턴부 (11) 를 갖고, 또한 주변부 (20) 를 갖는 예를 나타낸다. 기본 패턴부 (11) 는, 형상 (정방형, 장방형), 사이즈 등은 임의로 설계 가능하다.
도 5c 는, 기본 패턴부 (11) 에 있어서, 위치 검출 패턴 (12A - 12D) 이, 기본 패턴부 (11) 의 경계로부터 멀어진 내측, 다시 말하면, 코너가 아닌 위치에 형성되어 있는 예를 나타낸다. 도 5c 에 나타내는 바와 같이, 위치 검출 패턴 (12A - 12D) 은, 기본 패턴부 (11) 의 코너나, 경계를 따라 형성될 필요는 없다.
도 6a 는, 제 2 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면 (그 1) 이다. 도 6b 는, 제 2 실시형태의 이차원 코드의 데이터 배치의 일례를 나타내는 도면 (그 2) 이다. 도 6a 는, 제 1 실시형태의 이차원 코드의 데이터 배치를 나타낸 도 3a 와 비교하여, 실데이터 기록 블록 (19) 이 존재하는 점이 상이하다.
도 7a ∼ 도 7d 및 도 8 은, 제 2 실시형태의 다른 예를 나타내는 도면이다. 제 1 실시형태와 마찬가지로, 위치 검출 패턴의 개수는 1 개여도 상관없다. 또한, 도 4 와 마찬가지로, 위치 검출 패턴의 회전 방향을 일의적으로 특정할 수 있는 패턴이면, 위치 보정 패턴 (38) 등의 배치는 필수는 아니다.
또한, 제 2 실시형태의 코드는, 위치 검출 패턴을 복수로 한 경우, 복수의 이차원 코드를 일괄 인식할 때에 우위이다. 복수의 이차원 코드를 일괄하여 인식하는 경우, 1 개의 촬영 화상 내에 복수의 이차원 코드의 복수의 위치 검출 패턴이 비치게 된다. 예를 들어, 정방형 (장방형) 의 이차원 코드로, 복수개 (3 개 이상) 의 위치 검출 패턴을 이차원 코드의 네 모서리에 배치한 경우, 동일한 위치 검출 패턴이 다수 화상 내에 존재하게 되어, 올바른 위치 검출 패턴의 조합의 추출이 곤란해진다.
이 경우의 해석 처리로서, 위치 검출 패턴의 조합의 추출을 용이하게 하면, 처리 시간이 짧아진다. 제 2 실시형태와 같이 코드의 사이즈를 변화시켜도, 항상 기본 패턴부의 사이즈를 고정시킴으로써, 동일한 이차원 코드 내의 위치 검출 패턴끼리의 거리는 고정이고, 버전이 높고 주변부 (20) 의 사이즈가 큰 경우에는, 다른 이차원 코드의 위치 검출 패턴과의 거리가 길어진다. 그 때문에, 올바른 위치 검출 패턴끼리의 거리의 조합 이외를 용이하게 제외할 수 있기 때문에, 판정하는 조합 수를 줄일 수 있다. 이 효과는, 이차원 코드의 형상이 정방형이면, 효과가 크지만, 장방형의 이차원 코드여도, 조합을 줄이는 효과가 얻어진다.
도 9a 및 도 9b 는, 이차원 코드의 버전 정보에 따른 변화를 설명하는 도면이다. 제 1 실시형태의 이차원 코드 (10) 는, 도 9a 에 나타낸 기본 패턴부 (11) 만을 갖는 최소 사이즈의 코드이고, 기본 패턴부 (11) 만을 갖는 최소 사이즈의 정방형의 이차원 코드를, 버전 가로 1 × 세로 1 이라고 부른다.
제 2 실시형태의 이차원 코드 (10) 는, 주변부 (20) 의 사이즈를 세로 방향 및 가로 방향으로 각각 신장할 수 있다. 가로 버전이 2, 세로 버전이 3 인 경우, 버전 가로 2 × 세로 3 으로 표기한다. 이차원 코드 (10) 는, 기본 패턴부와 동일한 형상의 버전 가로 1 × 세로 1 을 기준으로 하여, 버전수와 함께 이차원 코드 전체의 사이즈가 증가한다. 버전이 1 높아질 때마다, 사이즈가 1 단위 커진다. 이 예에서는 버전은 1 에서 26 까지 선택 가능하지만, 이것에 한정되는 것은 아니다. 이차원 코드는, 버전 정보를 사용하여, 복수개의 위치 검출 패턴 사이의 거리를 고정시킨 상태에서 이차원 코드의 사이즈를 가변으로 설계하는 것이 가능하게 되어 있다.
도 9b 에 나타내는 바와 같이, 가로 버전의 증가에서는, 버전수의 증가에 따라, 주변부 (20) 의 가로 방향의 사이즈가, 좌측 (Y2), 우측 (Y3), 좌측 (Y4), 우측 (Y5) … 라는 정도로 교대로 1 단위씩 증가한다. 다시 말하면, 1 개 증가하는 버전수가 짝수인 경우, 좌측으로 1 단위 추가한다. 동일하게 1 개 증가하는 버전수가 홀수인 경우, 우측으로 1 단위 추가한다. 따라서, 가로 버전이 홀수인 경우에는, 주변부 (20) 의 좌우의 폭은 동일하고, 짝수인 경우에는, 주변부 (20) 의 좌측이 우측보다 1 단위 넓다.
도 9b 에 나타내는 바와 같이, 세로 버전의 증가에서는, 버전수의 증가에 따라, 주변부 (20) 의 세로 방향의 사이즈가, 상측 (T1), 하측 (T2), 상측 (T3), 하측 (T4) … 라는 정도로 교대로 1 단위씩 증가한다. 다시 말하면, 1 개 증가하는 버전수가 짝수인 경우, 상측으로 1 단위 추가한다. 동일하게 1 개 증가하는 버전수가 홀수인 경우, 하측으로 1 단위 추가한다. 따라서, 세로 버전이 홀수인 경우에는, 주변부 (20) 의 상하의 폭은 동일하고, 짝수인 경우에는, 주변부 (20) 의 상측이 하측보다 1 단위 넓다.
이 기본 패턴부의 위치는, 기본 패턴부의 이동에 있어서의, 기준이 되는 소정의 위치로 한다.
버전의 변화에 의한, 이차원 코드의 사이즈의 변화에 관해서, 1 단위씩 교대로 증가시키는 것 이외에도, 2 단위 이상을 교대로 증가시키는 경우나, 상하, 좌우로 각각 균등하게 1 단위씩 증가시키는 경우나, 증가를 위와 왼쪽만, 아래나 왼쪽만 등 일방향으로 증가시키는 경우가 있을 수 있다. 또한, 버전이 작은 경우에는, 좌우 또는 상하 교대로 1 단위씩 변화시키는 경우가 있다. 버전이 작고 큰 경우에는, 좌우 또는 상하 균등하게 1 단위씩과 같이, 버전에 따라 변화를 주는 경우 등, 다양한 방법이 생각된다.
이하에, 버전 정보가 높아짐에 따라, 스펙 데이터의 양이 증가하는 구조의 일례를 설명한다.
도 10 은, 버전 정보의 비트열을 나타내는 도면으로, 버전 (Version) 과, 그것을 나타내는 데에 필요한 비트수와, 비트열을 나타낸다. 이와 같은 데이터 구조의 버전 정보가, 세로 방향용 및 가로 방향용으로서 2 개 형성된다.
도 7a ∼ 도 7d 등에서는, 이차원 코드의 형상이 장방형인 코드를 예로 하고 있지만, 형상을 정방형으로 한정하면, 스펙 데이터의 버전 정보는 1 개면 된다. 반대로, 판독 가능하게 하는 이차원 코드를 복수의 형상의 코드에 대응시키는 경우에는, 버전 정보를 나타내는 데이터의 정보량이 증가하고, 스펙 데이터의 버전 정보도 판독 가능하게 한 형상의 수에 따라 증가시킨다. 요컨대, 이차원 코드의 외형 선택의 자유도에 따라 버전 정보의 데이터량이 증가한다.
제 2 실시형태의 이차원 코드 (10) 는, 스펙 정보로서, 가로의 버전 정보와, 세로의 버전 정보의 순서로 데이터를 가진다. 스펙 데이터의 선두로부터 2 비트를 취출하고, "00", "01", "10" 의 어느 것인 경우에는, 가로의 버전이 1 - 3 으로 확정되어, 3 비트 이후가 세로의 버전 정보가 된다. "11" 인 경우에는, 추가로 다음의 3 비트를 취출하고, "111" 이외의 경우에는, 가로의 버전 4 - 10 이 확정되어, 6 비트 이후가 세로의 버전 정보가 된다. "111" 인 경우에는, 추가로 다음의 4 비트를 취출하여, 가로의 버전 11 - 26 이 확정되어, 10 비트 이후가 세로의 버전 정보가 된다.
세로의 버전도 동일하게 취출하여, 가로와 세로의 버전 정보를 나타내는 스펙 데이터의 비트열 이후의 비트가 실데이터가 된다. 따라서, 도 10 의 버전 정보이면, 버전을 나타내는 데에 필요한 비트수를 사용하면 된다. 예를 들어, 버전 1 - 3 을 나타내는 것이면 2 비트만이어도 되고, 다른 버전을 나타내는 경우에 필요하게 되는 3 비트째 이후를 다른 데이터에 사용할 수 있다.
제 1 실시형태는, 가로의 버전의 비트열이 "00" 이고, 세로의 버전의 비트열도 "00" 이 되는, 최소의 코드이다.
이와 같이, 이차원 코드의 사이즈가 작은 경우에는 버전 정보의 비트수를 적게 하고, 이차원 코드의 사이즈가 큰 경우에는 버전 정보의 비트수를 많게 함으로써, 버전 정보의 데이터량을 고정으로 한 경우에 비하여, 이차원 코드의 데이터량에 대한 버전 정보의 데이터량의 비율을 보다 일정하게 접근할 수 있다. 본 실시형태에 의하면, 코드의 사이즈가 작은 경우에, 스펙 정보의 상대적인 데이터량이 커져, 데이터 효율이 나쁘다는 문제를 해소한다.
마찬가지로, 예를 들어 공백 영역을 코드 내에 형성하는 경우, 이 영역에 관한 정보를, 공백 영역이 있는 경우에는, 공백 영역이 있는 것을 나타내는 공백 임베딩 플래그와, 공백 영역에 관한 정보를 나타내는 공백 위치 정보를, 스펙 데이터에 포함시킨다. 또한, 공백 영역이 없는 경우에는, 공백 영역이 없는 것을 나타내는 공백 임베딩 플래그만을 스펙 데이터에 포함시켜, 공백 영역에 관한 정보를 생략함으로써, 스펙 데이터의 정보량을 줄이는 것이 가능하다. 또한, 공백 영역이 있는 경우의 공백 영역에 관한 정보도, 버전 정보에 맞추어, 비트수를 증감시킴으로써, 스펙 데이터의 정보량의 효율을 향상시킬 수 있다.
이하, 자유도를 갖게 한 이차원 코드의 예를 나타낸다. 자유도를 갖게 함으로써, 스펙 데이터로서 기능성을 갖게 하기 위한 정보가 추가되어, 기본 패턴부에 기록 가능한 실데이터가 감소하게 된다.
자유도는, 기능과, 기능의 변화 범위의, 2 개가 영향을 준다.
기능으로서, 예를 들어, 이차원 코드의 사이즈의 변화로서, 정방형의 경우와, 장방형의 경우를 비교한다. 정방형은 1 변의 길이라고 하는 1 개의 파라미터로 나타낼 수 있지만, 장방형은 가로세로의 변의 길이라고 하는 2 개의 파라미터가 필요하다. 따라서, 정방형은 1 개의, 장방형은 2 개의 기능을 갖는다고 할 수 있다. 이차원 코드가 공백 영역을 가지는 것을 가능하게 한 경우에는, 더욱 기능이 추가된다.
기능의 변화 범위로서, 예를 들어, 도 7a ∼ 도 7d 의 이차원 코드에서는, 버전이 세로와 가로로 독립적으로 1-26 의 범위에서 선택 가능하도록, 각 기능에서 각각 수(數) 패턴의 변화가 있다.
따라서, 자유도는, 기능과, 기능의 변화 범위를, 곱한 것이라고 할 수 있다. 이 자유도가 클수록, 유저가 선택할 수 있는, 이차원 코드의 형상의 선택지가 증가하고, 1 종류의 코드로, 보다 많은 유저의 니즈에 맞추는 것이 가능하게 된다.
이차원 코드에 기능성을 갖게 함으로써, 이차원 코드 중에 캐릭터 등의 도안을 임베딩 가능한 영역을 제공하여, 이차원 코드의 디자인성을 높이는 것이나, 폴더의 책표지의 등에 해당하는 부분 등의 한정된 스페이스에 맞추어 이차원 코드의 형상을 변화시키는 것과 같은 것이 가능해진다.
도 11 은, 제 1 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 12 및 도 13 은 제 2 실시형태의 예를 나타내는 도면이다.
스펙 데이터는, 기본 패턴부 이동 정보를 가지도록 해도 된다. 버전 정보에 의해 기본 패턴부의 외측에 세로·가로로 순차 주변부를 부가하는 경우, 기본 패턴부는 이차원 코드의 대략 중심에 위치하는 케이스가 많다. 그러나, 이차원 코드의 중심 이외의 임의의 위치에 기본 패턴부를 배치하는 것이 요망되는 경우가 있다. 기본 패턴부 이동량 정보는, 이차원 코드 내의 기본 패턴부의 기준이 되는 소정의 위치로부터의 이동량을 지정하는 정보이다. 기본 패턴부 이동 정보의 상세예에 대해서는 후술한다.
본 예에서는, 스펙 정보로서, 주변부 (20) 에 있어서의 주변부 오류 정정 레벨 정보, 및 주변부 (20) 에 있어서의 공백 영역을 나타내는 공백 정보, 및 기본 패턴부 (11) 의 이동에 관한 정보를 나타내는 기본 패턴부 이동 정보를 포함한다. 또한, 공백 정보는, 공백을 임베딩하는지 여부를 나타내는 공백 임베딩 플래그와, 공백을 임베딩하는 경우에는 공백의 영역을 나타내는 공백 위치 정보를 포함한다. 또한, 기본 패턴부 이동 정보는, 기본 패턴부 (11) 를 이동하는지 여부를 나타내는 기본 패턴부 이동 플래그와, 기본 패턴부 (11) 를 이동하는 경우에는 소정의 위치로부터의 이동량을 나타내는 기본 패턴부 이동량 정보를 포함한다.
스펙 정보를 나타내는 비트 데이터인 스펙 데이터의, 제 2 실시형태에서의 일례를 나타낸다. 먼저, 가로의 버전 정보가 들어간다. 가로의 버전 정보는 1 에서 26 까지의 값이 되고, 2 내지 9 비트로 나타낸다. 다음으로, 동일한 방법으로 세로의 버전 정보가 들어간다. 다음으로, 주변부 오류 정정 레벨 정보가 들어간다. 주변부 오류 정정 레벨 정보는 2 비트로 나타내고, 4 종류의 주변부 오류 정정 레벨을 취할 수 있다. 주변부 오류 정정 레벨 정보에 관해서는 후술한다. 다음으로, 공백 영역의 유무를 나타내는 공백 임베딩 플래그와, 기본 패턴부의 소정 위치로부터의 이동의 유무를 나타내는 기본 패턴부 이동 플래그가 들어간다. 공백 임베딩 플래그 및 기본 패턴부 이동 플래그는, 1 비트로 나타내고, 1 (있음) 이나 0 (없음) 이다. 다음으로, 공백 임베딩 플래그가 1 일 때에는, 공백의 위치 정보를 나타내는 공백 위치 정보가 기본 패턴부 이동 플래그의 뒤에 추가된다. 다음으로, 기본 패턴부 이동 플래그가 1 일 때에는, 기본 패턴부 이동량 정보가, 공백 임베딩 플래그가 1 일 때에는 공백 위치 정보의 뒤에 추가되고, 공백 임베딩 플래그가 0 일 때에는 기본 패턴부 이동 플래그의 뒤에 추가된다. 이들 정보 뒤에, 기본 패턴부에 저장 가능한 영역이 남아 있는 경우, 실데이터가 계속해서 저장된다.
이 스펙 정보의 종류나, 순서, 데이터량, 플래그의 취급에 관해서, 상기에 한정되는 것은 아니지만, 인코드와 디코드에 있어서, 스펙 데이터를 동일한 해석으로 할 필요가 있다.
공백 정보는, 공백 영역의 유무를 나타내는, 공백 임베딩 플래그와, 공백의 영역 정보를 나타내는, 공백 위치 정보로 이루어진다. 공백 임베딩 플래그는, 1 (있음) 과 0 (없음) 의 상태를 가지는 1 비트의 데이터이며, 1 일 때에만 공백 위치 정보가 있고, 없음의 경우에는 공백 위치 정보를 생략할 수 있다. 이에 의해 공백이 없을 때의 정보를 줄일 수 있고, 있음의 경우에만 공백 위치 정보를 스펙 데이터에 넣는다. 공백 임베딩 플래그는, 공백의 유무 이외에, 공백 영역의 개수를 나타내도 된다. 예를 들어, 공백 임베딩 플래그는, 2 비트로 해두고, 공백 위치의 개수를 나타내는 0 내지 3 의 값을 가진다. 0 인 경우에는, 공백 위치 정보가 없고, 3 인 경우에는, 공백 위치 정보를 3 개 연속해서 스펙 데이터에 넣는다.
공백 위치 정보는, 블록 단위로, 사이즈·오프셋을 지정하고, 이 정보를 공백의 위치를 나타내는 정보로서 유지한다. 블록의 좌표를 공백 영역의 좌상 모서리의 블록을 원점으로 하여 오프셋을 (n, m) 이라고 표현한다. 코드의 가로 블록수를 blW 개, 세로 블록수를 blH 개라고 했을 때, 공백 영역의 최대 가로 블록수는 blW 개, 최대 세로 블록수는 blH 개가 된다.
도 14 는, 공백 영역을 형성한 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 14 의 공백 영역은, 오프셋이 (1, 1) 이고, 사이즈는 가로 블록수를 9 개, 세로 블록수를 1 개로 나타낼 수 있다. 단, 공백 블록이 기본 패턴부에 걸려서는 안 된다.
공백 위치 정보는, 그 주변부의 사이즈에 맞추어, 데이터량을 가변으로 할 수 있다.
버전이 가로 9 × 세로 9 인 경우, 코드의 가로 블록수가 15 개이고, 코드의 세로 블록수가 15 개가 된다. 취할 수 있는 오프셋의 범위가 (0, 0) 부터, (14, 14) 까지, 가로세로 각각 15 방법을 고려할 수 있다. 최대 가로 블록수는 15 개, 최대 세로 블록수는 15 개가 된다. 공백 위치 정보로는, 가로세로의 각 오프셋이 4 비트씩, 가로세로의 각 블록수가 4 비트씩의, 합계 16 비트 필요하다.
마찬가지로, 코드가 가로세로로 가변한 경우, 버전 정보로부터 버전이 가로 11 × 세로 11 인 경우, 취할 수 있는 오프셋의 범위가 (0, 0) 부터, (16, 16) 이고, 세로와 가로의 최대 블록수가 17 방법이기 때문에, 공백 위치 정보로는, 가로세로의 각 오프셋이 5 비트씩, 가로세로의 사이즈가 5 비트씩의, 합계 20 비트 필요하다.
이와 같이, 공백 영역의 개수, 공백 영역의 범위, 코드의 사이즈에 따라, 필요로 하는 데이터량을 증감시킬 수 있다.
공백 위치 정보는, 영역을 모두 명의 셀로 하는 범위를 블록 단위로 지정한다. 인식 대상은 되지 않기 때문에, 엔드 유저는 도안, 사진, 문자를 이 영역에 넣어, 코드 정보의 가시화나, 이차원 코드의 디자인성 향상에 유용하게 할 수 있다. 공백 영역 내는, 해석시에는 무시되기 때문에, 임베딩된 사진·도안은, 해석에 영향을 주지 않는다.
공백 영역을 나타내는 방법으로는, 이하와 같은 방법을 고려할 수 있다.
(1) 블록의 개시 좌표와, 블록 폭·높이로 지정하는 방법
(2) 블록의 개시 좌표와, 종점 좌표를 지정하는 방법
(3) 수 점의 블록 좌표를 나타내고, 그 좌표의 내측을 공백으로 하는 방법
(4) 이들 지정의 단위가, 블록이 아니고, 셀로 지정하는 방법
(5) 몇 개의 공백 영역을 예약해 두고, 그것을 코드 내에서 지정하는 방법
(6) (1) - (5) 에 더하여, 확대 축소율을 변경시키는 방법
또한, 복수의 공백 영역을 형성하는 경우에는, 각각의 영역에서 상이한 방법을 실시하도록 해도 된다.
도 15 는, 버전 가로 3 × 세로 3 이고, 기본 패턴부를 이동하지 않는, 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다.
도 16 은, 버전 가로 3 × 세로 3 이고, 주변부를 포함하는 이차원 코드 (10) 에 대하여 기본 패턴부 (11) 를 중심으로부터 이동한 제 2 실시형태의 이차원 코드의 일례를 나타내는 도면이다. 도 16 은, 도 15 와 비교하여, 기본 패턴부가, 오른쪽으로 1 블록 이동해 있고, 상하 방향은 이동하지 않았다. 기본 패턴부 (11) 는, 이차원 코드 (10) 의 영역에 대하여 중심을 기준 위치로 하는 것에 한정되지 않는다. 기본 패턴부 이동 정보는, 기본 패턴부 (11) 가, 이차원 코드 (10) 의 영역에 대하여 어떻게 배치되는지를 나타내는 정보로, 가로 방향과 세로 방향에 대하여 각각 결정된다.
기본 패턴부 이동 정보는, 이동의 유무를 나타내는, 기본 패턴부 이동 플래그와, 기본 패턴부의 기준이 되는 소정 위치로부터의 이동량을 나타내는, 기본 패턴부 이동량 정보로 이루어진다. 제 2 실시형태에 있어서의 소정 위치는, 도 9b 의 기본 패턴부의 위치로 한다. 기본 패턴부 이동 플래그는, 1 (이동 있음) 과 0 (이동 없음) 의 상태를 가지는 1 비트의 데이터이고, 1 일 때에만 기본 패턴부 이동량 정보가 있고, 0 (없음) 의 경우에는 기본 패턴부 이동량 정보를 생략할 수 있다. 이에 의해 기본 패턴부를 이동시키지 않는 경우의 정보를 줄일 수 있고, 이동시키는 경우에만 기본 패턴부 이동량 정보를 스펙 데이터로서 기록한다. 기본 패턴부 이동량 정보는, 기본 패턴부가 이동하지 않는 경우의 기본 패턴부의 위치를 기준으로 한, 이동량을 나타낸다.
도 17 은, 기본 패턴부 (11) 의 위치를 기본 패턴부 이동 정보로 어떻게 나타내는지 설명하는 도면이다.
도 17 에 나타내는 바와 같이, 버전 1 일 때에는 기본 패턴부 (11) 뿐이고, 버전이 증가함에 따라 좌측, 우측으로 블록열이 추가된다. 기본 패턴부 (11) 가 이동 가능한 위치는, 버전수에 제한된다. 예를 들어, 버전수가 2 이면, 기본 패턴부 (11) 가 이동 가능한 위치는, 이동하지 않거나, 좌측으로 1 블록열 이동한다. 버전수가 3 이면, 기본 패턴부 (11) 가 이동 가능한 위치는, 이동하지 않거나, 좌측으로 1 블록열 이동하거나, 우측으로 1 블록열 이동하거나 한다. 다시 말하면, 버전수가 1 증가하는 데에 대응하여 기본 패턴부 (11) 가 이동 가능한 위치가 1 개 증가한다는 것이다. 따라서, 기본 패턴부 이동량 정보를 나타내는 데에 필요한 데이터량은, 버전수에 따라 변화한다.
도 17 에 있어서, 가로 방향의 버전수가 6 인 경우에, -3 내지 2 의 숫자는, 기본 패턴부 (11) 의 블록 단위에서의 기본 패턴부 이동량 정보를 나타낸다. 가로 방향의 버전수가, 0 은 이동하지 않는 경우를, 마이너스의 값은 좌측으로의 기본 패턴부 이동량 정보를, 플러스의 값은 우측으로의 기본 패턴부 이동량 정보를 나타낸다. 도 15 의 이동량은 0 이고, 도 16 의 이동량은 1 이 된다. 단, 도 15 에서는 기본 패턴부가 소정 위치로부터 이동하고 있지 않기 때문에, 스펙 데이터로는, 기본 패턴부 이동 플래그를 0 으로 하면, 기본 패턴부 이동량 정보는 생략할 수 있다.
기본 패턴부가 이동하는 경우, 기본 패턴부 이동 정보로는, 기본 패턴부 이동 플래그가 1 이 되고, 기본 패턴부 이동량 정보로서, 가로의 이동량을 나타내는 정보와, 세로의 이동량을 나타내는 정보를 스펙 데이터에 기록한다.
도 18 은, 버전 가로 19 × 세로 19 의 이차원 코드 (10) 에 있어서, 기본 패턴부 (11) 를 이동시킨 예를 나타내는 도면이다.
도 18 에 있어서, 참조 번호 11 은, 이동해 있지 않은 기본 패턴부 (11) 를 나타내고, 이 경우의 기본 패턴부 위치는, 가로가 0 이고, 세로가 0 이다. 참조 번호 11A 로 나타내는 기본 패턴부 (11) 의 기본 패턴부 위치는, 가로가 -8 이고, 세로가 -8 이다. 참조 번호 11B 로 나타내는 기본 패턴부 (11) 의 기본 패턴부 위치는, 가로가 9 이고, 세로가 -9 이다. 참조 번호 11C 로 나타내는 기본 패턴부 (11) 의 기본 패턴부 위치는, 가로가 -5 이고, 세로가 4 이다. 참조 번호 11D 로 나타내는 기본 패턴부 (11) 의 기본 패턴부 위치는, 가로가 0 이고, 세로가 9 이다. 참조 번호 11E 로 나타내는 기본 패턴부 (11) 의 기본 패턴부 위치는, 가로가 9 이고, 세로가 9 이다.
여기서는 기본 패턴부 이동의 단위를 블록으로 나타냈지만, 셀 단위여도 상관없다.
또한, 이동의 단위를 1 이 아니라, 2 보다 큰 값으로 해도 된다. 이 경우, 도 18 의 버전 가로 19 × 세로 19 의 이차원 코드 (10) 에서는, 가로 19 방법, 세로 19 방법의 조합이었지만, 이동의 단위를 2 블록씩으로 함으로써, 가로 9 방법, 세로 9 방법의 조합이 되고, 이에 의해 스펙 데이터의 정보량을 낮출 수 있다.
또한, 기본 패턴부 이동 정보로서, 이차원 코드의 중심으로부터의 이동량을 나타내는 기본 패턴부 이동량 정보를 포함했지만, 기본 패턴부 이동량 정보 대신에 이차원 코드 내의 기본 패턴부의 위치를 나타내는 기본 패턴부 위치 정보를 사용해도 된다.
기본 패턴부 위치 정보는, 코드 좌상의 블록 좌표 (0, 0) 에 기본 패턴부 (11) 의 좌상의 코너가 있는 경우를 기준으로 한 경우의, 기본 패턴부 (11) 의 블록 좌표로 할 수 있다. 예를 들어, 도 16 에서는, 기본 패턴부 (11) 의 좌상의 코너가 블록 좌표 (2, 1) 에 있기 때문에, 기본 패턴부 위치 정보로서, 가로에 2 블록, 세로에 1 블록을 나타내는 데이터가, 스펙 데이터에 기록된다.
또한, 기본 패턴부 위치 정보의 다른 표현 방법으로서, 기본 패턴부의 이동의 패턴을 미리 정의해 두는 방법도 있다. 예를 들어, 기본 패턴부의 이동 패턴으로서 "좌상", "우상", "좌하", "우하" 의 4 방법을 미리 정의해 두고, 기본 패턴부 위치 정보로서 2 비트를 갖게 하고, 각각 0-3 의 값을 이동의 패턴에 할당해 둔다. 도 18 의 이차원 코드 (10) 에서는, 기본 패턴부 위치 정보가 나타내는 값이, "좌상" 인 경우에는, 가로가 -9 이고, 세로가 -9 가 되고, "우하" 인 경우에는, 가로가 9 이고, 세로가 9 가 된다.
이 방법의 이점으로서, 기본 패턴부 이동량 정보를 항상 2 비트로 억제할 수 있고, 스펙 데이터를 작게 할 수 있다.
또한, 상기 이동 패턴에 "정가운데" 를 추가한 5 방법으로 하고, 더하여 기본 패턴부 이동 플래그를 없앰으로써, 기본 패턴부 이동 정보가 항상 3 비트로 나타내게 되어, 적은 정보량으로 기본 패턴부의 이동을 실현할 수 있다.
스펙 데이터에는, 주변부 오류 정정 레벨 정보를 갖게 할 수 있다. 주변부 실데이터의 오류 정정량을, 주변부 오류 정정 레벨로서, 주변부 오류 정정 레벨 정보에 기록할 수 있도록 한다. 예를 들어, 주변부 오류 정정 레벨은, 10 %, 20 %, 30 %, 40 % 의 4 방법으로부터 선택시키도록 한다. 이에 의해, 촬영 조건이 나쁜 환경에서 사용하는 코드를 인식시키는 경우에는 오류 정정 레벨을 높이고, 그렇지 않은 경우에는 낮춘다는 것이 가능해진다. 이 경우, 스펙 데이터에 있어서의 주변부 오류 정정 레벨 정보로서, 2 비트를 확보하도록 한다.
주변부 오류 정정 레벨은, 주변부 실데이터의 데이터량에 영향을 주어, 주변부 오류 정정 레벨이 낮으면 데이터량이 많아지고, 주변부 오류 정정 레벨이 크면 데이터량이 적어진다.
주변부 오류 정정 레벨 정보는, 주변부가 존재하지 않는 경우 (버전이 가로 1 × 세로 1) 에는 불필요하고, 스펙 데이터로부터 생략할 수 있고, 그 만큼 실데이터의 양을 증가시킬 수 있다. 버전 정보와, 공백 정보와, 위치 보정 패턴에 의해, 주변부에서의 데이터를 가지는 블록의 수가 결정된다. 이에 의해, 주변부의 기록할 수 있는 데이터의 양이 정해진다. 이 주변부의 데이터량과, 주변부 오류 정정 레벨 정보로부터, 주변부 실데이터와, 주변부 오류 정정 데이터의 데이터량이 정해진다.
주변부의 데이터의 배치는, 제 2 실시형태의 일례에서는, 예를 들어, 주변부 실데이터를, 좌상으로부터 우방향으로 순서대로 블록마다 기록하고, 1 행 기록이 종료되면, 1 블록 아래의 좌에서 우방향으로 순서대로 기록한다. 주변부 실데이터 뒤에, 주변부 오류 정정 데이터를 기록한다. 그 경우에, 기본 패턴부, 공백 영역, 위치 보정 패턴에는 데이터를 기록하지 않는다.
상기는 일례이며, 주변부의 데이터의 배치 방법은, 미리 결정되어 있으면 된다.
또한, 제 2 실시형태의 일례로서, 스펙 데이터는, 스타일 정보를 가지도록 해도 된다. 이 경우, 스타일 정보가, 가로세로 버전 가변, 세로만 버전 가변, 가로만 버전 가변, 버전 불변 (주변부 없음) 의 4 개의 상태를 유지 가능한 것으로 한다. 그에 의해, 버전 정보의 데이터량을 변화시킨다. 스타일 정보의 내용에 따라, 버전 정보의 데이터량을, 가로세로 버전 가변의 경우에는 가로세로 버전의 2 개의 값을 유지하고, 세로만 버전 가변, 혹은 가로만 버전 경우에는 1 개의 값을 유지하고, 그 이외에는 버전 정보를 없음으로 한다는 것과 같이, 스타일 정보에 의해 버전 정보량을 가변으로 할 수 있고, 또한 자유도가 높은 코드 형상을 허용한다.
또한, 그 이외에도 스타일 정보는, 원, 별 등 다양한 형상을 생각할 수 있고, 코드를 용도에 맞추어 자유롭게 형상을 변화시키는 것이 가능해진다.
또한, 주변부는 기본 패턴부에 인접할 필요는 없다. 따라서, 기본 패턴부로부터 멀어진 장소에 다양한 주변부를 두어도 된다. 따라서, 주변부는, 기본 패턴부의 형상에 관계없이, 자유로운 형상을 취하는 것도 가능하다.
또한, 주변부는 기본 패턴부로부터 독립되어 있다. 따라서, 주변부와 기본 패턴부에서는, 셀의 형상을 동일한 정방형으로 할 필요는 없다. 또한, 기본 패턴부와, 주변부에서 셀의 사이즈를 동일하게 할 필요도 없다. 예를 들어, 기본 패턴부의 셀을 인식시키기 쉽게 하기 위해서, 주변부의 셀보다 크게 해도 된다. 또한, 주변부의 블록이 가지는 데이터량은, 기본 패턴부의 블록이 가지는 데이터량과 동일하게 할 필요는 없다. 또한, 주변부의 블록과 기본 패턴부의 블록은, 블록의 형상이 상이해도 된다.
이상과 같이, 제 1 실시형태, 제 2 실시형태의 이차원 코드는, 스펙 데이터의 데이터량은, 스펙 데이터의 내용에 따라 증감 가능하고, 기본 패턴부의 스펙 데이터를 기록한 나머지의 데이터 영역에는, 실데이터가 기록되기 때문에, 데이터 효율의 저하를 억제할 수 있다. 또한, 이차원 코드에 갖게 하는 외형 선택의 자유도에 따라, 기본 패턴부에 기록 가능한 스펙 데이터의 데이터량을 증감시키는 것이 가능하기 때문에, 다양한 기능성을 가진 이차원 코드에 유연하게 대응 가능하다. 또한, 스펙 데이터의 데이터량을 주변부의 사이즈와 비례 관계로 함으로써, 이차원 코드의 사이즈에 적합한 스펙 데이터의 데이터량으로 하는 것이 가능하다. 또한, 제 2 실시형태에 있어서, 기본 패턴부의 주위에 주변부를 형성하는 구성은, 스펙 데이터의 데이터량을 증감 가능하게 하지 않고, 기본 패턴부에는 실데이터를 포함하지 않아도 실현할 수 있다. 또한, 제 2 실시형태에 있어서, 위치 검출 패턴이 복수인 경우, 복수의 위치 검출 패턴 사이의 거리가 일정한 점에서, 복수의 코드를 일괄하여 인식하는 처리가 우수한 효과는 제 1 실시형태와 동일하게 얻어진다.
제 1 실시형태나 제 2 실시형태에서 사용하는 위치 검출 패턴은, 정방형의 프레임 내에 정방형을 갖는 형상의 제 1 위치 검출 패턴 (12A) 과, 제 1 위치 검출 패턴 (12A) 보다 작은 정방형의 프레임 형상의 제 2 위치 검출 패턴 (12D) 과, 장방형의 제 3 위치 검출 패턴 (12B) 및 제 4 위치 검출 패턴 (12C) 을 갖는 것이 바람직하다. 4 개의 위치 검출 패턴 (12A - 12D) 은, 기본 패턴부 (11) 의 네 모서리 (4 개의 코너) 에 배치되어 있다. 이 경우, 제 1 위치 검출 패턴 (12A) 과 제 2 위치 검출 패턴 (12D) 은, 대각 상에 배치되고, 제 3 위치 검출 패턴 (12B) 과 제 4 위치 검출 패턴 (12C) 은, 대각 상에 배치되고, 제 3 위치 검출 패턴 (12B) 및 제 4 위치 검출 패턴 (12C) 의 장변은, 제 1 위치 검출 패턴 (12A) 의 변과 동일한 길이이고, 제 3 위치 검출 패턴 (12B) 및 제 4 위치 검출 패턴 (12C) 의 단변은, 제 2 위치 검출 패턴 (12D) 의 변과 동일한 길이이고, 제 3 위치 검출 패턴 (12B) 및 제 4 위치 검출 패턴 (12C) 의 단변의 일방은, 제 1 위치 검출 패턴 (12A) 의 변의 연장 상에 배치되고, 제 3 위치 검출 패턴 (12B) 및 제 4 위치 검출 패턴 (12C) 의 장변의 일방은, 제 2 위치 검출 패턴 (12D) 의 변의 연장 상에 배치되는 것이 바람직하다. 도 1 에 나타낸 위치 검출 패턴 (12A - 12D) 은, 각각 단독으로 용이하게 식별할 수 있고, 일부의 위치 검출 패턴이 오염 등으로 식별할 수 없는 경우에도, 식별할 수 있었던 나머지의 위치 검출 패턴의 조로부터, 이차원 코드에 있어서의 셀의 좌표 위치를 용이하게 구할 수 있다.
위치 검출 패턴은, 제 1 실시형태, 제 2 실시형태에 나타낸 예 이외에도 각종 변형예가 가능하다. 예를 들어, 위치 검출 패턴의 개수는, 1 개 이상이고, 상한은 없지만, 현실적으로는 최대 4 개 정도이고, 그 이상의 개수여도 효과가 적고, 반대로 데이터 효율이 저하한다. 또한, 복수개의 위치 검출 패턴의 형상이 동일한 경우와, 적어도 일부가 상이한 경우가 있을 수 있다. 또한, 기본 패턴부 (11) 에 있어서의 위치 검출 패턴의 위치는, 기본 패턴부 (11) 의 코너에 한정되지 않고, 1 개 또는 복수의 위치 검출 패턴의 일부 또는 모두가 기본 패턴부 (11) 내의 코너 이외에 위치해도 된다. 다시 말하면, 기본 패턴부 (11) 내에서, 위치 검출 패턴과, 데이터 영역 (13) 의 위치 관계는, 임의로 결정할 수 있다.
제 1 실시형태, 제 2 실시형태에 나타낸 것 이외의 대표적인 예로는, 상이한 형상의 3 개의 위치 검출 패턴과 1 개의 위치 보정 패턴의 조합, 위치 검출 패턴과 위치 보정 패턴의 합계가 4 개 이상인 조합, 1 개의 위치 검출 패턴과 1 개의 위치 보정 패턴의 조합 등을 고려할 수 있다. 상이한 형상의 3 개의 위치 검출 패턴과 1 개의 위치 보정 패턴의 조합이면, 이차원 코드에 있어서의 셀의 좌표 위치를 비교적 용이하게 구할 수 있다.
다음으로, 실시형태의 이차원 코드를 작성하는 처리 (인코드 처리) 에 대하여 설명한다.
도 19 는, 이차원 코드를 작성하여 제공하는 작성 시스템의 하드웨어 구성을 나타내는 도면으로, 클라이언트·서버 구성의 예를 나타낸다.
작성 시스템은, 사양을 결정하여 이차원 코드의 작성을 의뢰하는 유저가 조작하는 유저 하드웨어와, 의뢰된 이차원 코드를 작성하여 제공하는 시스템 하드웨어를 갖는다.
유저 하드웨어는, 컴퓨터 등의 유저 처리 장치 (71) 와, 자기 디스크 등의 기억 장치 (72) 를 갖는다.
시스템 하드웨어는, 컴퓨터 등의 시스템 처리 장치 (75) 와, 자기 디스크 등의 기억 장치 (76) 를 갖는다.
유저 처리 장치 (71) 와 시스템 처리 장치 (75) 는, 통신 회선 등으로 접속되고, 통신 가능하게 구성되어 있다.
여기서는, 인쇄는, 유저측에서 실시하지만, 시스템측이나 다른 인쇄소에서 실시하도록 해도 된다. 이차원 코드를 인쇄하는 매체는 어떠한 것이어도 되고, 예를 들어, 종이, 수지판, 케이싱 표면 등이다. 여기서, 매체로서, 임베딩되는 도안이 미리 인쇄되어 있는 것이어도 되고, 인쇄되어 있는 임베딩 도안이 이차원 코드의 도안 영역에 들어가도록 세팅한 후에 이차원 코드를 인쇄한다.
인쇄 장치는, 이들 매체에 이차원 코드를 인쇄 가능한 것이면 되고, 예를 들어 간이 프린터, 정밀 프린터, 인쇄 장치 등이고, 흑백 인쇄뿐만 아니라, 컬러 인쇄 가능한 것이어도 된다. 또한, 작성한 이차원 코드는, 인쇄하지 않고, 통신 회선을 통하여 유저에 이차원 코드의 데이터로서 송신되어도 된다. 유저는, 필요에 따라 제 3 자의 디스플레이 등에, 작성한 이차원 코드를 표시하도록 데이터를 송신한다.
또한, 도 19 는 클라이언트·서버 구성의 작성 시스템의 예를 나타내지만, 작성 시스템은 이것에 한정되지 않고, 예를 들어, 클라이언트 PC 상의 인코드 소프트웨어로 발행하고, USB 접속한 프린터로부터 발행하는 구성이나, 핸디 타입의 단말·프린터로부터 발행하는 구성 등, 각종의 변형예가 있을 수 있다. 또한, 이차원 코드를 작성하는 처리는, 컴퓨터 실행 가능한 프로그램으로서, 컴퓨터가 판독 가능한 비일시적인 기억 매체에 기록되어 있어도 된다.
도 20 은, 유저가, 유저 하드웨어를 통하여 시스템 하드웨어에 액세스하여, 원하는 이차원 코드를 작성하는 인코드 처리의 순서를 나타내는 플로우 차트이다. 여기서는, 버전 가로 1 × 세로 1 보다 큰 버전의 이차원 코드를 작성하는 경우를 나타내고 있고, 버전 가로 1 × 세로 1 의 경우에는 주변부가 존재하지 않기 때문에, 그에 관계하는 처리가 실질적으로 없어진다.
스텝 S10 에서는, 유저가 인코드의 메인 처리를 개시한다.
스텝 S11 에서는, 유저가 이차원 코드에 기록하는 메시지를 입력한다.
스텝 S12 에서는, 유저가, 이차원 코드의 버전 정보와, 주변부 오류 정정 레벨과, 공백 정보와, 기본 패턴부 이동 정보를 입력한다. 이에 따라, 유저 처리 장치 (71) 는, 시스템 처리 장치 (75) 에, 입력된 메시지와, 버전 정보와, 주변부 오류 정정 레벨과, 공백 정보와, 기본 패턴부 이동 정보를 통지한다.
스텝 S13 에서는, 시스템측에서, 송신된 정보에 기초하여 기본 패턴부와 주변부의 배치를 결정한다.
스텝 S14 에서는, 송신된 정보에 기초하여 스펙 데이터의 데이터량을 결정한다.
스텝 S15 에서는, 시스템측에서, 송신된 정보에 기초하여 공백 영역의 블록의 배치와 수를 결정한다.
스텝 S16 에서는, 위치 보정 패턴의 블록의 배치와 블록수를 결정한다.
스텝 S17 에서는, 주변부 오류 정정 레벨로부터, 주변부 오류 정정 데이터의 블록수를 결정한다.
스텝 S18 에서는, 이차원 코드에 기록 가능한 실데이터의 사이즈를 결정한다.
스텝 S19 에서는, 이차원 코드 내에서 메시지를 표현하는 데에 필요한 실데이터의 사이즈를 계산한다.
스텝 S20 에서는, S18 에서 구해진 이차원 코드의 데이터 사이즈에, S19 의 실데이터가 들어가는지, 데이터 사이즈가 부족해서 들어가지 않는지를 판정하고, 데이터 사이즈가 부족하면, 유저 처리 장치 (71) 에 데이터 사이즈가 부족한 것을 송신하고, 데이터 사이즈가 충분하면 스텝 S22 로 진행한다.
스텝 S21 에서는, 유저 처리 장치 (71) 가 유저에, 입력된 이차원 코드의 형상으로는 입력된 메시지를 표현하는 데에 데이터 사이즈가 부족하다는 에러 발생을 통지하여, 종료한다.
스텝 S22 에서는, 스펙 데이터를 작성한다.
스텝 S23 에서는, 실데이터를 작성한다.
스텝 S24 에서는, 스펙 데이터와 실데이터를 결합한다.
스텝 S25 에서는, 기본 패턴부에 기록 가능한 스펙 데이터와 실데이터, 기본 패턴부에 배치한다.
S26 에서는, 기본 패턴부에 기록된 데이터로부터, 기본 패턴부 오류 정정 데이터를 계산하고, 배치한다.
스텝 S27 에서는, 기본 패턴부에 들어가고 남은 실데이터를 주변부 실데이터로서 주변부에 배치한다.
스텝 S28 에서는, 주변부 실데이터로부터, 주변부 오류 정정 데이터를 계산하고, 배치한다.
스텝 S29 에서는, 이차원 코드의 정보를, 화상으로서 유저 처리 장치 (71) 에 출력한다.
스텝 S30 에서, 인코드의 메인 처리가 종료된다.
도 21 은, 제 2 실시형태의 이차원 코드를 판독하고, 이차원 코드를 해석하는 이차원 코드 해석 장치의 하드웨어 구성을 나타내는 도면이다.
이차원 코드 해석 장치는, 판독부 (80) 와, 컴퓨터 (이차원 코드 해석 처리부) (84) 와, 디스플레이 (85) 와, 통신 인터페이스 (86) 를 갖는다. 판독부 (80) 는, 렌즈 (81) 와, 이미지 센서 (82) 와, 아날로그·디지털 변환기 (AD) (83) 를 갖고, 촬영한 이차원 코드의 디지털 화상 데이터를 컴퓨터 (84) 에 출력한다. 도 21 의 이차원 코드 해석 장치는, 널리 사용되고 있고, 최근에는 휴대 단말도 이차원 코드 해석 장치와 동일한 기능을 실현하고 있다. 또한, 이차원 코드를 해석하는 처리는, 컴퓨터 실행 가능한 프로그램으로서, 컴퓨터가 판독 가능한 비일시적인 기억 매체에 기록되어 있어도 된다.
도 22 및 도 23 은, 유저가 촬영한 이차원 코드를 해석하는 디코드 처리의 순서를 나타내는 플로우 차트이다. 이 디코드 처리는, 1 화면에 복수의 제 2 실시형태의 이차원 코드가 찍혀 있는 경우를 상정하고 있다. 디코드 처리는, 해석 메인 처리와 정보 취출 처리로 이루어진다. 먼저, 해석 메인 처리를 설명한다.
스텝 S101 에서는, 해석의 메인 처리를 개시한다.
스텝 S102 에서는, 이차원 코드의 촬영 화상을 입력한다.
스텝 S103 에서는, 입력된 촬영 화상의 2 치 화상을 작성한다. 2 치화의 방법은, 입력된 촬영 화상이 RGB 화상 등의 컬러 화상이면, 일단 그레이 스케일 화상으로 변환하고, 화상 내의 최대 휘도치와 최소 휘도치의 평균을 임계치로 하고, 임계치 이상이면 명, 미만이면 암으로 한다. 컬러 화상으로부터 그레이 스케일 변환하는 데에는, 각 화소의 RGB 의 값을 사용하여, 휘도 (brightness) = 0.299R + 0.587G + 0.114B 의 변환식에 따라 변환한다. 컬러 화상에 대한 그레이 스케일 화상으로의 변환 방법, 또한 2 치화 화상으로의 변환 방법은, 다양한 방법이 제안되어 있고, 상기 변환 방법에 한정되지 않는다.
스텝 S104 에서는, 위치 검출 패턴 후보를 검출한다. 구체적으로는, 2 치화 화상을 주사할 때에, 주사 방향의 가로 방향, 및 세로 방향에, 암명암, 혹은 암명암명암이, 일정한 비율로 나타나는 패턴을 검출한다.
스텝 S105 에서는, 4 종의 위치 검출 패턴의 조합을 작성하고, 검토되어 있지 않은 4 종의 위치 검출 패턴의 조합이 남아 있는지 판정하고, 남아 있으면 스텝 S106 으로 진행되고, 남아 있지 않으면 스텝 S110 으로 진행된다.
스텝 S106 에서는, 2 점의 위치 검출 패턴 사이의 거리가, 적절하지 않은 값이 되는 것과 같은 조합이 1 조이기도 한 경우에는, 올바른 조합은 아닌 것으로 판정할 수 있다. 이와 같이, 위치 검출 패턴끼리의 거리에 기초하여 오류 검출을 제외한다.
스텝 S107 에서는, 조합한 위치 검출 패턴에 대하여, 동일한 이차원 코드의 위치 검출 패턴이라고 하여 정보의 취출을 실시한다. 이 처리에 대해서는, 도 23 을 참조하여 후술한다.
스텝 S108 에서는, 정보 취출에 성공했는지의 결과에 따라, 성공한 경우에는 스텝 S109 로 진행되고, 실패한 경우에는 실패한 위치 검출 패턴의 조합을 제외하는 처리를 실시한 후, 스텝 S105 로 돌아간다.
스텝 S109 에서는, 정보의 취출에 성공한 위치 검출 패턴의 조합을 리스트업한다.
스텝 S110 에서는, 데이터의 취출에 성공한 이차원 패턴에 사용된 4 개의 위치 검출 패턴 후보를 제외하고, 스텝 S105 로 돌아간다. 또한, 데이터의 취출에 성공한 이차원 패턴의 범위에, 사용하고 있지 않은 위치 검출 패턴 후보가 있는 경우에는, 그것도 후보로부터 제외한다.
스텝 S105 내지 S110 을 반복함으로써, 찍힌 이차원 코드의 위치 검출 패턴 후보의 4 개의 조합에 대하여 동일한 이차원 코드의 것인지의 판정이 종료된다.
스텝 S111 에서는, 검토되어 있지 않은 3 개의 위치 검출 패턴 후보의 조합이 남아 있는지 판정하고, 남아 있지 않으면 스텝 S120 으로 진행되고, 남아 있으면 스텝 S112 로 진행된다.
스텝 S112 에서는, 3 개의 위치 검출 패턴 후보로부터 위치 보정 패턴의 위치를 추정한다.
스텝 S113 에서는, 위치 보정 패턴이 있는지 판정하고, 있으면 스텝 S115 로 진행되고, 없으면 스텝 S114 로 진행된다.
스텝 S114 에서는, 3 개의 3 개의 위치 검출 패턴 후보로부터 1 개의 위치 검출 패턴 후보를 보완하고, 스텝 S115 로 진행된다.
스텝 S115 에서는, 2 점의 위치 검출 패턴 사이의 거리가, 적절하지 않은 값이 되는 것과 같은 조합이 1 조이기도 한 경우에는, 올바른 조합은 아닌 것으로 판정할 수 있다. 위치 보정 패턴 등으로 보완한 경우에도, 결손되어 있는 것이 상정되는 위치 검출 패턴의 좌표를 추정하고, 거리를 검증한다.
스텝 S116 에서는, 조합한 위치 검출 패턴에 대하여, 동일한 이차원 코드의 위치 검출 패턴이라고 하여 정보의 취출을 실시한다. 이 처리에 대해서는, 도 23 을 참조하여 후술한다.
스텝 S117 에서는, 정보 취출에 성공했는지 결과에 따라, 성공한 경우에는 스텝 S118 로 진행되고, 실패한 경우에는 실패한 위치 검출 패턴의 조합을 제외하는 처리를 실시한 후, 스텝 S111 로 돌아간다.
스텝 S118 에서는, 정보의 취출에 성공한 위치 검출 패턴의 조합을 리스트업한다.
스텝 S119 에서는, 데이터의 취출에 성공한 이차원 패턴에 사용된 3 개의 위치 검출 패턴 후보를 제외하고, 스텝 S111 로 돌아간다. 또한, 데이터의 취출에 성공한 이차원 패턴의 범위에, 사용하고 있지 않은 위치 검출 패턴 후보가 있는 경우에는, 그것도 후보로부터 제외한다.
스텝 S111 내지 S119 를 반복함으로써, 찍힌 이차원 코드의 위치 검출 패턴 후보의 3 개의 조합에 대하여 동일한 이차원 코드의 것인지의 판정이 종료된다.
스텝 S120 에서는, 리스트업된 위치 검출 패턴의 메시지를 출력하고, 스텝 S121 로 진행된다.
스텝 S121 에서는, 해석 메인 처리를 종료한다.
다음으로 도 23 을 참조하여 스텝 S107 및 S116 의 정보 취출 처리를 설명한다.
스텝 S200 에서, 정보 취출 처리를 개시한다.
스텝 S201 에서, 위치 검출 패턴으로부터, 기본 패턴부에 속하는 블록 내의 셀의 좌표를 계산한다.
스텝 S202 에서, 결합 데이터와, 기본 패턴부 오류 정정 데이터를 취출한다.
스텝 S203 에서, 기본 패턴부 오류 정정 데이터에 의한 오류 검출 처리를 실시하고, 오류가 있는 경우에는 스텝 S204 로 진행되고, 오류가 없으면 스텝 S207 로 진행된다.
스텝 S204 에서는, 블록 내의 셀 데이터로부터 오류 정정 가능한지 판정하고, 오류 정정이 불가능하면 스텝 S205 로 진행되고, 오류 정정이 가능하면 스텝 S206 으로 진행된다.
스텝 S205 에서는, 이차원 코드로부터의 정보의 취출에 실패한 것을 통지하고, 종료한다.
스텝 S206 에서는, 결합 데이터의 오류 정정 처리를 실시한다.
스텝 S207 에서는, 결합 데이터로부터, 스펙 데이터를 취출하고, 이차원 코드의 버전, 주변부 오류 정정 레벨, 공백 정보, 기본 패턴부 이동 정보를 특정한다.
스텝 S208 에서는, 스펙 데이터를 기초로, 기본 패턴부의 주변부의 위치 보정 패턴을 계산한다.
스텝 S209 에서는, 스펙 데이터를 기초로, 주변부의 위치 보정 패턴과, 공백 영역을 제외한 주변부 실데이터와, 주변부 오류 정정 데이터의 블록을 특정한다.
스텝 S210 에서는, 주변부 실데이터와, 주변부 오류 정정 데이터의 블록수의 합계를 계산하고, 이것과 주변부 오류 정정 레벨로부터, 각각의 블록수를 계산한다.
스텝 S211 에서는, 주변부에 속하는 블록 내의 셀의 좌표를 구한다.
스텝 S212 에서는, 주변부 실데이터와 주변부 오류 정정 데이터를 취출한다.
스텝 S213 에서는, 주변부 오류 정정 데이터에 의해 오류를 검출하고, 오류가 있으면 스텝 S214 로 진행되고, 오류가 없으면 스텝 S217 로 진행된다.
스텝 S214 에서는, 오류 정정 가능한지 판정하고, 오류 정정이 불가능하면 스텝 S215 로 진행되고, 오류 정정이 가능하면 스텝 S216 으로 진행된다.
스텝 S215 에서는, 이차원 코드로부터의 정보의 취출에 실패한 것을 통지하고, 종료한다.
스텝 S216 에서는, 데이터의 오류 정정 처리를 실시한다.
스텝 S217 에서는, 기본 패턴부의 데이터로부터 스펙 데이터를 제외한 실데이터와, 주변부의 실데이터를 연결한다.
스텝 S218 에서는, 실데이터를 해석한다.
스텝 S219 에서는, 메시지를 취출한다.
스텝 S220 에서는, 이차원 코드로부터의 정보의 취출에 성공했기 때문에, 메시지를 표시하여 종료한다.
이상 설명한 바와 같이, 본 발명의 이차원 코드는, 위치 검출 패턴을 포함하는 기본 패턴부를, 이차원 코드 내의 임의의 위치로 이동함으로써, 오염 등이 잘 발생하지 않는 지점에, 위치 검출 패턴을 이동시키는 것이 가능해진다. 예를 들어, 접은 흔적이 남기 쉬운 부분, 사람이 접촉하는 지점, 책의 중간 접는 부분 등 휨이 발생하는 지점에 위치 검출 패턴을 배치하지 않는 것도 가능해진다. 이에 의해, 위치 검출 패턴이 발견되지 않는 것에 의해 인식할 수 없는 경우를 줄일 수 있고, 그 결과 인식 정밀도가 높아진다.
위치 검출 패턴을 포함하는 기본 패턴부의 외측에 주변부를 형성하고, 주변부를 포함하는 이차원 코드의 영역 내에서 기본 패턴부를 이동함으로써 위치 검출 패턴을 이차원 코드 내에서 이동한다는 기능을 실현하는 데에는, 스펙 데이터의 데이터량이 증가한다. 그래서, 본 발명의 이차원 코드에서는, 기본 패턴부에 기록하는 스펙 데이터의 데이터량을 사양에 따라 가변으로 하고, 기본 패턴부에 잔여 부분이 있으면 실데이터를 기록함으로써, 스펙 데이터의 데이터량이 적은 경우의 데이터 효율의 저하를 억제하고 있다. 또한, 기본 패턴부의 외측에 주변부를 형성하고, 주변부를 포함하는 이차원 코드의 영역 내에서 기본 패턴부를 이동함으로써 위치 검출 패턴을 이차원 코드 내에서 이동한다는 기능 자체는, 이와 같은 데이터 구조에 한정되지 않고, 지금까지의 일반적인 이차원 코드의 데이터 구조로도 실현할 수 있다.
이상, 본 발명의 실시형태를 설명했지만, 기재한 실시형태는 발명을 설명하기 위한 것으로, 당업자에게는, 특허 청구의 범위에 있어서 각종 변형예가 있을 수 있는 것이 용이하게 이해 가능하다.
10 ; 이차원 코드
11 ; 기본 패턴부
12A ; 제 1 위치 검출 패턴
12B ; 제 3 위치 검출 패턴
12C ; 제 4 위치 검출 패턴
12D ; 제 2 위치 검출 패턴
13 ; 영역
15 ; 블록
16 ; 분리 패턴
17 ; 셀
18 ; 위치 보정 패턴

Claims (12)

  1. 2 진 코드로 나타내는 데이터를 셀화하여, 이차원의 매트릭스상으로 패턴으로서 배치한 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체로서,
    상기 이차원 코드는, 제 1 패턴부와 상기 제 1 패턴부의 외측에 배치되는 제 2 패턴부를 포함하고,
    상기 제 1 패턴부 및 상기 제 2 패턴부는 상기 셀을 갖고,
    상기 제 1 패턴부는, 셀 위치를 특정하기 위한 위치 검출 패턴과, 상기 이차원 코드 영역 내의 상기 제 1 패턴부의 위치를 나타내는 제 1 패턴부 이동 정보를 포함하는, 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체.
  2. 제 1 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 소정 위치로부터의 이동량을 나타내는 제 1 패턴부 이동량 정보인, 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체.
  3. 제 1 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 이차원 코드 내에서의 좌표를 나타내는 제 1 패턴부 좌표 정보인, 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체.
  4. 제 1 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 이동의 패턴을 미리 정의하여 이동 패턴을 나타내는 제 1 패턴부 이동 패턴 정보인, 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 소정 위치로부터의 이동의 유무를 나타내는 제 1 패턴부 이동 플래그를 포함하는, 컴퓨터 판독 가능한 이차원 코드가 인쇄된 매체.
  6. 제 1 항에 기재된 이차원 코드의 해석 시스템으로서,
    상기 위치 검출 패턴의 위치에 기초하여 상기 제 1 패턴부의 좌표를 구하고, 상기 제 1 패턴부 이동 정보를 검출하는 검출 수단과,
    부호화된 메시지로 이루어지는 실데이터를 해석하는 실데이터 해석 수단을 구비하고,
    상기 실데이터 해석 수단은, 상기 제 1 패턴부 이동 정보의 검출 결과에 기초하여 결정한 상기 실데이터의 검출을 실시하는, 이차원 코드의 해석 시스템.
  7. 제 1 항에 기재된 이차원 코드의 작성 시스템으로서,
    상기 이차원 코드의 제 2 패턴부의 셀의 배치를 결정하기 위한 스펙 데이터의 작성 수단과,
    부호화된 메시지로 이루어지는 실데이터의 작성 수단과,
    상기 제 1 패턴부 이동 정보를 배치하는 수단과,
    적어도 제 2 패턴부에 상기 실데이터를 배치하는 수단을 포함하는, 이차원 코드의 작성 시스템.
  8. 2 진 코드로 나타내는 데이터를 셀화하여, 이차원의 매트릭스상으로 패턴으로서 배치한 컴퓨터 판독 가능한 이차원 코드가 표시된 장치로서,
    상기 이차원 코드는, 제 1 패턴부와 상기 제 1 패턴부의 외측에 배치되는 제 2 패턴부를 포함하고,
    상기 제 1 패턴부 및 상기 제 2 패턴부는 상기 셀을 갖고,
    상기 제 1 패턴부는, 셀 위치를 특정하기 위한 위치 검출 패턴과, 상기 이차원 코드 영역 내의 상기 제 1 패턴부의 위치를 나타내는 제 1 패턴부 이동 정보를 포함하는, 컴퓨터 판독 가능한 이차원 코드가 표시된 장치.
  9. 제 8 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 소정 위치로부터의 이동량을 나타내는 제 1 패턴부 이동량 정보인, 컴퓨터 판독 가능한 이차원 코드가 표시된 장치.
  10. 제 8 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 이차원 코드 매체 내에서의 좌표를 나타내는 제 1 패턴부 좌표 정보인, 컴퓨터 판독 가능한 이차원 코드가 표시된 장치.
  11. 제 8 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 이동의 패턴을 미리 정의하여 이동 패턴을 나타내는 제 1 패턴부 이동 패턴 정보인, 컴퓨터 판독 가능한 이차원 코드가 표시된 장치.
  12. 제 8 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 제 1 패턴부 이동 정보는, 상기 제 1 패턴부의 소정 위치로부터의 이동의 유무를 나타내는 제 1 패턴부 이동 플래그를 포함하는, 컴퓨터 판독 가능한 이차원 코드가 표시된 장치.
KR1020167031742A 2014-05-14 2015-04-14 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템 KR101770540B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2014-100986 2014-05-14
JP2014100986 2014-05-14
PCT/JP2015/061482 WO2015174192A1 (ja) 2014-05-14 2015-04-14 二次元コード、二次元コードの解析システム及び二次元コードの作成システム

Publications (2)

Publication Number Publication Date
KR20160135841A KR20160135841A (ko) 2016-11-28
KR101770540B1 true KR101770540B1 (ko) 2017-08-22

Family

ID=54479736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167031742A KR101770540B1 (ko) 2014-05-14 2015-04-14 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템

Country Status (7)

Country Link
US (1) US9734443B2 (ko)
EP (1) EP3144857B1 (ko)
JP (1) JP6045752B2 (ko)
KR (1) KR101770540B1 (ko)
CN (1) CN106462786B (ko)
TW (1) TWI570629B (ko)
WO (1) WO2015174192A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291584B (zh) * 2016-07-22 2023-05-02 创新先进技术有限公司 识别二维码位置的方法及其系统
JP2019021165A (ja) * 2017-07-20 2019-02-07 株式会社デンソーウェーブ 二次元コード及び二次元コード読取装置
CN107729790B (zh) 2017-09-27 2020-12-29 创新先进技术有限公司 二维码定位方法及装置
US10909432B2 (en) * 2017-10-06 2021-02-02 Denso Wave Incorporated Two-dimensional code composed of a plurality of types of cells
CN107977591B (zh) * 2017-12-11 2020-04-28 维沃移动通信有限公司 一种二维码图像识别方法及移动终端
CN108710932B (zh) * 2018-05-21 2019-05-21 周冰 一种二维码生成方法、装置、电子设备及存储介质
CN109063806A (zh) * 2018-07-17 2018-12-21 深圳市零点零科技有限公司 一种长条小型二维码编码方法
CN108960000A (zh) * 2018-07-17 2018-12-07 深圳市零点零科技有限公司 一种长条小型二维码识别方法
JP7358284B2 (ja) 2020-03-25 2023-10-10 株式会社日立製作所 コード、情報処理システム、及び情報処理装置
CN113673655B (zh) * 2021-10-22 2022-04-05 北京紫光青藤微系统有限公司 用于确定二维码解码方向的方法及装置、电子设备、介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090242649A1 (en) 2008-03-27 2009-10-01 Denso Wave Incorporated Two-dimensional code having rectangular region provided with specific patterns for specify cell positions and distinction from background
US20120145779A1 (en) 2009-04-08 2012-06-14 Continental Teves Ag & Co. Ohg Two-dimensional symbol code and method for reading the symbol code
JP2013238943A (ja) 2012-05-14 2013-11-28 Denso Corp 二次元コード読取装置
JP2014026643A (ja) 2012-06-20 2014-02-06 Denso Wave Inc 情報コードおよび情報コード読取装置
JP2014071722A (ja) 2012-09-28 2014-04-21 Denso Wave Inc 情報コード及び情報コードの読取システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309485A (ja) * 1993-02-25 1994-11-04 Nippondenso Co Ltd 光学的情報読取装置
JP2938338B2 (ja) 1994-03-14 1999-08-23 株式会社デンソー 二次元コード
US5726435A (en) 1994-03-14 1998-03-10 Nippondenso Co., Ltd. Optically readable two-dimensional code and method and apparatus using the same
JP3668275B2 (ja) * 1995-03-15 2005-07-06 シャープ株式会社 デジタル情報記録方法、解読方法および解読装置
US6104833A (en) * 1996-01-09 2000-08-15 Fujitsu Limited Pattern recognizing apparatus and method
JP3209108B2 (ja) * 1996-08-23 2001-09-17 松下電器産業株式会社 2次元コード読み取り装置
TW456110B (en) * 1997-07-12 2001-09-21 Ye Jiun Tsai Design of 2-D safe free code and coder-decoder manufacturing method thereof
DE60328923D1 (de) * 2003-04-15 2009-10-01 Fujitsu Ltd Codeerkennungsverfahren und einrichtung
TW201113815A (en) * 2009-10-09 2011-04-16 Primax Electronics Ltd QR code processing method and apparatus thereof
CN101882210B (zh) * 2010-06-01 2012-06-27 福建新大陆电脑股份有限公司 矩阵式二维条码解码芯片及其解码方法
PL3066612T3 (pl) * 2013-11-07 2019-06-28 Scantrust Sa Dwuwymiarowy kod kreskowy oraz sposób uwierzytelniania takiego kodu kreskowego

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090242649A1 (en) 2008-03-27 2009-10-01 Denso Wave Incorporated Two-dimensional code having rectangular region provided with specific patterns for specify cell positions and distinction from background
US20120145779A1 (en) 2009-04-08 2012-06-14 Continental Teves Ag & Co. Ohg Two-dimensional symbol code and method for reading the symbol code
JP2013238943A (ja) 2012-05-14 2013-11-28 Denso Corp 二次元コード読取装置
JP2014026643A (ja) 2012-06-20 2014-02-06 Denso Wave Inc 情報コードおよび情報コード読取装置
JP2014071722A (ja) 2012-09-28 2014-04-21 Denso Wave Inc 情報コード及び情報コードの読取システム

Also Published As

Publication number Publication date
WO2015174192A1 (ja) 2015-11-19
CN106462786A (zh) 2017-02-22
EP3144857A1 (en) 2017-03-22
JP6045752B2 (ja) 2016-12-14
JPWO2015174192A1 (ja) 2017-04-20
CN106462786B (zh) 2020-01-07
EP3144857A4 (en) 2018-01-17
TWI570629B (zh) 2017-02-11
KR20160135841A (ko) 2016-11-28
US20170039463A1 (en) 2017-02-09
EP3144857B1 (en) 2021-10-13
TW201612794A (en) 2016-04-01
US9734443B2 (en) 2017-08-15

Similar Documents

Publication Publication Date Title
KR101770540B1 (ko) 이차원 코드, 이차원 코드의 해석 시스템 및 이차원 코드의 작성 시스템
KR101821087B1 (ko) 이차원 코드, 이차원 코드의 해석 시스템
TWI692724B (zh) 二維碼、二維碼之作成系統及解析程式
KR101801217B1 (ko) 이차원 코드
TWI501159B (zh) QR code
JP2007317184A (ja) 二次元バーコード、その符号化方法及び復号化方法
JP6521709B2 (ja) 二次元コード、二次元コードの解析システム及び二次元コードの作成システム
JP5487424B2 (ja) 2値化画像への情報埋め込み方法及び読み出し方法
JP2009124511A (ja) 画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant