WO2015064334A1 - 二次元コード生成方法、二次元コード生成装置、二次元コード読み取り方法、二次元コード読み取り装置、二次元コード、および、プログラム - Google Patents

二次元コード生成方法、二次元コード生成装置、二次元コード読み取り方法、二次元コード読み取り装置、二次元コード、および、プログラム Download PDF

Info

Publication number
WO2015064334A1
WO2015064334A1 PCT/JP2014/077084 JP2014077084W WO2015064334A1 WO 2015064334 A1 WO2015064334 A1 WO 2015064334A1 JP 2014077084 W JP2014077084 W JP 2014077084W WO 2015064334 A1 WO2015064334 A1 WO 2015064334A1
Authority
WO
WIPO (PCT)
Prior art keywords
code word
data
word
code
information
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2014/077084
Other languages
English (en)
French (fr)
Inventor
傳生 西▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toppan Infomedia Co Ltd
Original Assignee
Toppan TDK Label Co Ltd
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 Toppan TDK Label Co Ltd filed Critical Toppan TDK Label Co Ltd
Priority to JP2014550585A priority Critical patent/JP5978315B2/ja
Priority to CN201480058953.1A priority patent/CN105706118B/zh
Priority to US15/032,419 priority patent/US9858518B2/en
Priority to EP14858849.4A priority patent/EP3065088B1/en
Publication of WO2015064334A1 publication Critical patent/WO2015064334A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06K19/06075Constructional details the marking containing means for error correction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06K19/06056Constructional details the marking comprising a further embedded marking, e.g. a 1D bar code with the black bars containing a smaller sized coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1426Multi-level bar codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1434Barcodes with supplemental or add-on codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction

Definitions

  • the present invention relates to a technique for concealing confidential information in a two-dimensional code that expresses information in a graphic form.
  • Patent Document 1 discloses a technique for expressing a key for decryption with a modified cell having a different shape and density as a reference in a matrix-like encrypted two-dimensional code having a light and dark pattern.
  • Patent Document 2 discloses a technique in which a decryption key code pattern of an encrypted two-dimensional code is overlapped with a configuration in which at least one of a data code word area and a correction code word area pattern on the formed two-dimensional code pattern is overwritten. Has been.
  • Patent Document 3 when the total number of data code words encoded as code words representing the data to be disclosed is smaller than a predetermined total number of code words for generating a two-dimensional code, a termination code is placed after the code area. And generating a code figure by arranging a secret data code instead of a part of a padding code (padded code) originally placed after a terminal code.
  • padded code padding code
  • decryption key information which is concealed information, is generated as a “deformed cell” or “bright / dark pattern” different from that of the original code on the code pattern graphic. Then, a replacement (that is, overwriting) operation is performed at a predetermined region or position as a target on the figure.
  • the key information itself used for decrypting the two-dimensional code is not encrypted. Therefore, in the case of having a code generation system that applies the same encryption key, the same “pattern” appears in the same place. Therefore, there is a possibility that the information pattern is concealed by carefully observing the code pattern as a figure. The same applies to the deformed “deformed cell”.
  • the above technique requires a special process for generating a pattern figure for overwriting in the encoding process. Such processing is complicated and becomes an obstacle to speeding up the processing.
  • Patent Document 3 when the total number of data code words encoded as code words representing the data to be disclosed is smaller than a predetermined total number of code words for generating a two-dimensional code, a terminal code is added after the code area. It is disclosed that a code figure is generated by arranging a secret data code instead of a part of a padding code (padded code) originally placed after a terminal code.
  • padded code padding code
  • a data code different from the code pattern originally defined as the padding code is arranged in the padding code area. Therefore, such a code becomes a code of a non-standard format from a standard general-purpose decoder that conforms to a code format based on a standard that defines a code pattern of a padding code as in Non-Patent Document 1. .
  • an unspecified data code is mixed in a data area that is not originally a display target. Therefore, there is a possibility that the standard general-purpose decoder may exhibit unexpected behavior.
  • the size of the information is disproportionately large compared to the amount of information that should be obtained by standard decoding processing. It may be a two-dimensional code. Then, the user of the two-dimensional code can be distrusted or information concealment can be suspected.
  • the present invention has been made in view of such circumstances, and an object thereof is to provide a two-dimensional code that can conceal information to be concealed in addition to information to be disclosed. Another object of the present invention is to appropriately read information that is a secret object from a new two-dimensional code.
  • a two-dimensional code generation method includes a first data code word including first information and an error correction code capable of detecting and correcting an error in the first data code word.
  • the first data code word and a part of the error correction code word are replaced with the second data code word. It can be corrected and restored using words.
  • the second data code word can be extracted from the data block after replacement before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word.
  • the information to be concealed in the second information it is possible to provide a two-dimensional code that can conceal the information to be concealed in addition to the information to be disclosed.
  • the post-replacement data block includes a header data code word including arrangement information of the second data code word in the post-replacement data block. According to the two-dimensional code generated in this way, the position of the second data code word can be appropriately specified based on the header data code word.
  • the total number of words of the second data code word and the header data word does not exceed the number of error corrections by the error correction code word. According to the two-dimensional code generated in this way, the second data code word and the header data code word are appropriately corrected based on the error correction code word, and the first data code word can be reliably obtained. it can.
  • the second data code word is discontinuously arranged based on the arrangement information of the second data code word. According to the two-dimensional code generated in this way, the second data code word can be arranged discontinuously to improve the concealment of the second data code word, and the second data code word can be determined according to the arrangement information. Can be appropriately identified.
  • At least one of the header data code word and the second data code word includes an error correction code word.
  • the two-dimensional code generated in this way by including an error correction code in the header data code word, even if an error has occurred in the header data code word, this can be corrected appropriately. Can do.
  • an error correction code in the second data code word even if an error has occurred in the second data code word, it can be corrected appropriately.
  • a part of the second data code word is replaced with the header data code word in the replaced data block, and the second data code word includes: An error correction code word that can detect and correct an error occurring in the second data code word may be included.
  • the position of the second data code word can be specified based on the header data code word, and the second data code word is the header data code word in the error correction code.
  • the portion replaced with can be corrected. Thereby, 2nd information can be calculated
  • a part of the first data code word includes the header data code word including arrangement information of the second data code word in the replaced data block. Also good.
  • the first data code word can be obtained based on the error correction code word included in the replaced data block.
  • the position of the 2nd data code word in a data block after substitution can be specified based on the header data code word contained in the 1st data code word.
  • a part of the first data code word may include a header position data code word including arrangement information of the header data code word in the replaced data block. Good.
  • the first data code word can be obtained based on the error correction code word included in the replaced data block.
  • the position of the header data code word included in the replacement data block can be specified.
  • a header data code word can be extracted from the position of the specified header data code word, and the position of the second data code word can be specified based on the header data code word. Then, the second information can be extracted based on the second data code word. Thereby, concealment property can also be improved more.
  • the two-dimensional code is masked with a predetermined mask pattern, and the replacement data block is obtained by specifying a replacement position in the data block based on a mask pattern reference specifying the predetermined mask pattern.
  • a part of the data block may be replaced with the second data code word at the replacement position.
  • the mask pattern reference which specifies the mask pattern applied to the two-dimensional code is also used to specify the position to be replaced with the second data code word. Since there are a plurality of types of mask patterns, the mask pattern reference can also have a plurality of values. Therefore, the position of replacement with the second data code word can also be changed according to the applied mask pattern. Thereby, it becomes difficult for a third party to specify the position of the second data code word, and extraction of the second information contained in the second data code word can be made more difficult.
  • the two-dimensional code is masked with a predetermined mask pattern, and the replacement data block is obtained by specifying a replacement position in the data block based on a mask pattern reference specifying the predetermined mask pattern. Then, a part of the data block is replaced with the header data code word at the replacement position, and a part of the data block is replaced with the second data code word at the position specified by the header data code word. It is good as well.
  • the mask pattern reference which specifies the mask pattern applied to the two-dimensional code is also used to specify the position to be replaced with the header data code word. Since there are a plurality of types of mask patterns, the mask pattern reference can also have a plurality of values.
  • the position of replacement with the header data code word can be changed according to the applied mask pattern. This makes it difficult for a third party to specify the position of the header data code word. Since the position of the second data code word is specified by the header data code word, the extraction of the second data code word can be made more difficult.
  • the two-dimensional code may be a QR code
  • the mask pattern reference may be included in the format information of the QR code.
  • the format information in the QR code is not masked with a standard mask pattern (predetermined mask pattern) in the JIS standard. Therefore, the mask pattern reference contained in the format information can be appropriately read by reading the QR code. Then, the masking can be canceled using a predetermined mask pattern specified by the mask pattern reference. Further, in the post-replacement data code word obtained after canceling the masking, the position of the second data code word or the position of the header data code word can be appropriately specified using the mask pattern reference.
  • obtaining the replacement data block specifies a replacement position in the data block based on the error correction code word, and determines one of the data blocks at the replacement position.
  • the part may be replaced with the second data code word.
  • the error correction code word is obtained based on the first data code word. Therefore, if the first data code word is different, the error correction code word is also different. Therefore, by specifying the replacement position based on the error correction code word, if the first data code word is different, the replacement position is also different. Therefore, for the third party, the position of the second data code word is specified. This makes it difficult to extract the second information contained in the second data word.
  • obtaining the replacement data block specifies a replacement position in the data block based on the error correction code word, and determines one of the data blocks at the replacement position.
  • the part may be replaced with the header data code word, and a part of the data block may be replaced with the second data code word at a position specified by the header data code word.
  • the error correction code word is obtained based on the first data code word. Therefore, if the first data code word is different, the error correction code word is also different. Therefore, by specifying the replacement position based on the error correction code word, if the first data code word is different, the replacement position is also different. For the third party, therefore, the position of the header data code word is even specified. It becomes difficult. Since the position of the second data code word is specified by the header data code word, the extraction of the second data code word can be made more difficult.
  • the error correction code word is preferably a Reed-Solomon code. According to the two-dimensional code generated in this way, since the Reed-Solomon code having a strong correction capability is used as the error correction code word, the first data code word can be obtained appropriately.
  • the method further includes outputting the generated two-dimensional code.
  • the generated two-dimensional code can be output by, for example, printing and read by a corresponding decoder.
  • a two-dimensional code includes a first data code word including first information, and an error correction code word capable of detecting and correcting an error in the data code word.
  • the data block is generated based on the replaced data block obtained by replacing a part of the data block including the second data code word including the second information.
  • the first data code word and a part of the error correction code word are replaced with the second data code word. It can be corrected and restored using words.
  • the second data code word can be extracted from the data block after replacement before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word.
  • the information to be concealed in the second information it is possible to provide a two-dimensional code that can conceal the information to be concealed in addition to the information to be disclosed.
  • a two-dimensional code generation device includes a first data code word including first information, an error correction code word capable of detecting and correcting an error in the data code word, A two-dimensional code is generated based on the replaced data block obtained by replacing a part of the data block including, with the second data code word including the second information. According to the two-dimensional code generated in this way, the first data code word and a part of the error correction code word are replaced with the second data code word. It can be corrected and restored using words. Further, the second data code word can be extracted from the data block after replacement before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word. At this time, by including the information to be concealed in the second information, it is possible to provide a two-dimensional code that can conceal the information to be concealed in addition to the information to be disclosed.
  • a program includes: a first data code word including first information; and an error correction code word capable of detecting and correcting an error in the first data code word.
  • Obtaining a data block including: obtaining a replaced data block obtained by replacing a part of the data block with a second data code word including second information; and obtaining a two-dimensional code based on the replaced data block.
  • generating the computer According to the two-dimensional code generated in this way, the first data code word and a part of the error correction code word are replaced with the second data code word. It can be corrected and restored using words.
  • the second data code word can be extracted from the data block after replacement before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word.
  • the information to be concealed in the second information it is possible to provide a two-dimensional code that can conceal the information to be concealed in addition to the information to be disclosed.
  • a two-dimensional code reading method includes a first data code word including first information and an error correction code capable of detecting and correcting an error in the first data code word.
  • a two-dimensional code generated based on the replaced data block obtained by replacing a part of the data block including the word with the second data code word including the second information, and a predetermined value in the replaced data block Extracting the second data code word from the position, obtaining the second information from the second data code word, obtaining the first data code word based on the replaced data block, And determining the first information from a data code word.
  • the correction code word is used for the first data code word. Can be corrected and restored.
  • the second data code word can be extracted from the post-replacement data block before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word. At this time, the second information can also include information that is to be concealed. Then, it is possible to read information that is appropriately concealed.
  • the post-replacement data block includes a header data code word, and the predetermined position is specified based on the header data code word.
  • the position of the second data code word can be appropriately specified based on the header data code word.
  • the total number of words of the second data code word and the word number of the header data code word does not exceed the number of error correction words by the error correction code word. According to such a two-dimensional code reading method, the second data code word and the header data code word are appropriately corrected based on the error correction code word, and the first data code word can be obtained reliably.
  • the header data code word includes arrangement information of the second data code word, and the second data code word is discontinuous based on the arrangement information. It is desirable to be arranged.
  • the second data code word can be arranged discontinuously to improve the concealment of the second data code word, and the second data code word can be arranged according to the arrangement information. Can be identified appropriately.
  • At least one of the header data code word and the second data code word includes an error correction code word. According to such a two-dimensional code reading method, even if an error has occurred in the header data code word by including the error correction code sign in the header data code word, this can be corrected appropriately. it can. In addition, by including an error correction code in the second data code word, even if an error has occurred in the second data code word, it can be corrected appropriately.
  • a part of the second data code word is replaced with the header data code word in the replaced data block
  • the second data code word includes: An error correction code word capable of detecting and correcting an error occurring in itself is included, and obtaining the second information specifies the predetermined position based on the header data code word, Finding the second data code word partially replaced with the header data code word from a predetermined position, correcting the second data code word based on the error correction code word in the second data code word, and correcting It is good also as calculating
  • the position of the second data code word can be specified based on the header data code word, and the second data code word is replaced with the header data code word in the error correction code.
  • the corrected part can be corrected.
  • 2nd information can be calculated
  • the header data code word is included in a part of the first data code word, and obtaining the second information is an error in the replaced data block.
  • the header data code word is obtained by correction, the position of the second data code word in the replaced data block is specified based on the header data code word, and the second data code word is obtained, and the second data code word is obtained. It is good also as calculating
  • the first data code word can be obtained based on the error correction code word included in the replaced data block.
  • the position of the 2nd data code word in a data block after substitution can be specified based on the header data code word contained in the 1st data code word.
  • a part of the first data code word includes a header position data code word indicating an arrangement position of the header data code word, and obtains the second information. That is, the header position data code word included in the first data code word is obtained by error correcting the data block after replacement, and the position of the header data code word based on the extracted header position data code word Determining the header data code word, determining the position of the second data code word in the replaced data block based on the header data code word, determining the second data code word, and The second information may be obtained from the data code word. According to such a two-dimensional code reading method, the first data code word can be obtained based on the error correction code word included in the replaced data block.
  • the position of the header data code word included in the replacement data block can be specified. Furthermore, a header data code word can be extracted from the position of the specified header data code word, and the position of the second data code word can be specified based on the header data code word. Then, the second information can be extracted based on the second data code word. Thereby, concealment property can be improved more.
  • the two-dimensional code reading method is masked with a predetermined mask pattern, and reading the two-dimensional code is the predetermined mask pattern applied to the two-dimensional code. And extracting the second data code word from a predetermined position in the post-replacement data block is based on the mask pattern reference and replacing the replacement in the post-replacement data block. The position may be specified, and the second data code word may be extracted from the replacement position in the post-replacement data block. By doing in this way, it is used also for specifying the position where the mask pattern reference child which specifies the mask pattern applied to the two-dimensional code is replaced with the second data code word.
  • the mask pattern reference can also have a plurality of values. Therefore, the position to be replaced with the second data code word is also changed according to the applied mask pattern. Thereby, it becomes difficult for a third party to specify the position of the second data code word, and extraction of the second information contained in the second data code word can be made more difficult.
  • the two-dimensional code reading method is masked with a predetermined mask pattern, and reading the two-dimensional code is the predetermined mask pattern applied to the two-dimensional code. And extracting the second data code word from a predetermined position in the post-replacement data block is based on the mask pattern reference and replacing the replacement in the post-replacement data block. The position is specified, and the header data code word is extracted from the replacement position of the replaced data block, and the second data code word is extracted from the position specified by the header data code word of the replaced data block It is good to do.
  • the mask pattern reference which specifies the mask pattern applied to the two-dimensional code is also used to specify the position to be replaced with the header data code word.
  • the mask pattern reference can also have a plurality of values. Therefore, the position to be replaced with the header data code word is also changed according to the applied mask pattern. This makes it difficult for a third party to specify the position of the header data code word. Since the position of the second data code word is specified by the header data code word, the extraction of the second data code word can be made more difficult.
  • the two-dimensional code is a QR code
  • the mask pattern reference is included in format information of the QR code.
  • the format information in the QR code is not masked with a standard mask pattern (predetermined mask pattern) in the JIS standard. Therefore, the mask pattern reference contained in the format information can be appropriately read by reading the QR code. Then, the masking can be canceled using a predetermined mask pattern specified by the mask pattern reference. Further, in the post-replacement data code word obtained after canceling the masking, the position of the second data code word or the position of the header data code word can be appropriately specified using the mask pattern reference.
  • extracting the second data code word from a predetermined position in the post-replacement data block may include replacing the replacement position in the post-replacement data block based on the error correction code word. It is also possible to identify and extract the second data code word from the replacement position in the post-replacement data block.
  • the error correction code word is obtained based on the first data code word. Therefore, if the first data code word is different, the error correction code word is also different. Therefore, by specifying the replacement position based on the error correction code word, if the first data code word is different, the replacement position is also different. Therefore, for the third party, the position of the second data code word is specified. This makes it difficult to extract the second information contained in the second data word.
  • extracting the second data code word from a predetermined position in the post-replacement data block may include replacing the replacement position in the post-replacement data block based on the error correction code word. Specifying and extracting the header data code word from the replacement position of the post-replacement data block and extracting the second data code word from the position specified by the header data code word of the post-replacement data block It is good.
  • the error correction code word is obtained based on the first data code word. Therefore, if the first data code word is different, the error correction code word is also different. Therefore, by specifying the replacement position based on the error correction code word, if the first data code word is different, the replacement position is also different. For the third party, therefore, the position of the header data code word is even specified. It becomes difficult. Since the position of the second data code word is specified by the header data code word, the extraction of the second data code word can be made more difficult.
  • obtaining the first data code word based on the replaced data block uses the error correction code word included in the replaced data block. It is desirable to perform error correction on the data block. According to such a two-dimensional code reading method, since the error correction code word is used, the first data code word can be appropriately obtained.
  • the error correction code word is preferably a Reed-Solomon code. According to such a two-dimensional code reading method, since the Reed-Solomon code having a strong correction capability is used as the error correction code word, the first data code word can be obtained appropriately.
  • the two-dimensional code reading method it is further preferable to output at least one of the first information and the second information. According to such a two-dimensional code reading method, the decoded first information or second information can be acquired.
  • a two-dimensional code reading method includes a first data code word including first information and an error correction code capable of detecting and correcting an error in the first data code word.
  • a two-dimensional code generated based on the replaced data block obtained by replacing a part of the data block including the word with the second data code word including the second information, and based on the replaced data block Obtaining the data block including the first data code word and the error correction code word; obtaining the second data code word based on the data block and the replacement data block; And determining the second information from a data code word.
  • the correction code word is used for the first data code word. Can be used to correct and restore.
  • the second data code word can be obtained by comparing the data before correcting the post-replacement data block with the data after correction and taking the difference. Then, the second information can be obtained based on the obtained second data code word. At this time, by including the information to be concealed in the second information, it is possible to appropriately read the information to be concealed.
  • obtaining the second data code word based on the data block and the replacement data block is between the data block and the replacement data block. It is desirable to include extracting different portions from the post-replacement data block. According to such a two-dimensional code reading method, it is possible to identify the different part as the second data code word by comparing the two.
  • obtaining the data block including the first data code word and the error correction code word based on the post-replacement data block includes: It is desirable to perform error correction on the post-replacement data block using the included error correction codeword. According to such a two-dimensional code reading method, it is possible to perform error correction of the data block after replacement using the error correction code word and restore the data block before replacement.
  • the first information is further obtained from the first data code word based on the obtained data block and the replaced data block.
  • information to be disclosed and information to be concealed can be appropriately obtained by setting certain information to be disclosed as first information.
  • a two-dimensional code reader includes a first data code word including first information and an error correction code capable of detecting and correcting an error in the first data code word.
  • a reading unit that reads a two-dimensional code generated based on the replaced data block obtained by replacing a part of the data block including the word with the second data code word including the second information, and in the replaced data block The second data code word is extracted from a predetermined position, the second information is obtained from the second data code word, the first data code word is obtained based on the replaced data block, and the first data
  • a control unit that obtains the first information from a code word.
  • the correction code word is used for the first data code word. Can be corrected and restored.
  • the second data code word can be extracted from the post-replacement data block before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word. At this time, the second information can also include information that is to be concealed. Then, it is possible to read information that is appropriately concealed.
  • a program includes: a first data code word including first information; and an error correction code word capable of detecting and correcting an error in the first data code word. Reading a two-dimensional code generated based on the replaced data block obtained by replacing a part of the included data block with the second data code word including the second information, and from the predetermined position in the replaced data block Extracting a second data code word, obtaining the second information from the second data code word, obtaining the first data code word based on the replaced data block, and from the first data code word It is desirable to cause the computer to obtain the first information.
  • the first data code word and a part of the correction code word are replaced with the second data code word
  • the first data code word is corrected using the correction code word.
  • the second data code word can be extracted from the post-replacement data block before error correction processing obtained by directly reading the two-dimensional code.
  • the second information can be obtained based on the extracted second data code word.
  • the second information can also include information that is to be concealed. Then, it is possible to read information that is appropriately concealed.
  • the correction code It can be corrected and restored using words.
  • the second data code word can be extracted from the data block after replacement before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word. At this time, by including the information to be concealed in the second information, it is possible to provide a two-dimensional code that can conceal the information to be concealed in addition to the information to be disclosed. Further, according to the two-dimensional code reading method as described above, although the first data code word and the correction code word are partially replaced with the second data code word, the correction code It can be corrected and restored using words.
  • the second data code word can be extracted from the post-replacement data block before error correction processing obtained by directly reading the two-dimensional code. Then, the second information can be obtained based on the extracted second data code word. At this time, the second information can also include information that is to be concealed. Then, it is possible to read information that is appropriately concealed.
  • FIG. 1 is a block diagram of an extension encoder 10 according to a first embodiment. It is a schematic diagram of RS block in a 1st embodiment. It is a flowchart of the QR code symbol generation method in the first embodiment. It is explanatory drawing of RS block. It is explanatory drawing of a concealment information word. It is the 1st explanatory view when a part of RS block is replaced by the technique by a 1st embodiment. 3 is a block diagram of an extension decoder 20.
  • FIG. It is a flowchart of the QR code symbol reading method in the first embodiment. It is explanatory drawing of the extraction method of a concealment information word. It is explanatory drawing of the extraction method of an information main body.
  • the two-dimensional code in the first embodiment will be described.
  • a QR code is used as an example of the two-dimensional code.
  • the two-dimensional code may be a data matrix code, a maxi code, a veri code, a Carla code, a CP code, or the like.
  • JIS standard Japanese Industrial Standard JIS X 0510: 2004 “Two-dimensional code symbol-QR code”
  • JIS standard An encoder that conforms to the JIS standard is referred to as a standard encoder, and a decoder that conforms to the JIS standard is referred to as a standard decoder.
  • An encoder capable of handling concealment information in the first embodiment is called an extension encoder, and a decoder is called an extension decoder. And these are distinguished.
  • the “code word” is described as having an 8-bit length. However, depending on the system, the “code word” may be a 16-bit length, or may have another length such as a 1-bit length. You can also.
  • FIG. 1 is an explanatory diagram of the QR code symbol 1.
  • the QR code symbol 1 is prepared in various sizes from type 1 to type 40. Here, each function will be described by taking the model number “2” as an example.
  • QR code symbol 1 has a function pattern and a coding area.
  • the function pattern is a pattern necessary for searching a QR code symbol position and identifying a characteristic necessary for assisting decoding in a QR code module.
  • the encoding area is an area where necessary information is written.
  • the function pattern includes a position detection pattern FP, a separation pattern SP, a timing pattern TP, an alignment pattern AP, and a quiet zone QZ.
  • the position detection pattern FP is a pattern arranged at at least three corners of the QR code. At the time of reading, by identifying the three position detection patterns FP, the direction and position of the QR code symbol 1 can be correctly recognized.
  • the separation pattern SP is a light module having a width of 1 module arranged around the position detection pattern FP. As a result, the position detection pattern FP can be distinguished from the QR code symbol 1.
  • Module M is a unit cell constituting QR code symbol 1. In principle, one bit corresponds to one module.
  • the timing pattern TP is a pattern in which dark modules and bright modules are alternately arranged in a straight line one module at a time. Since the number of modules of the QR code symbol 1 can be recognized by the timing pattern TP, it is possible to identify the QR code model number.
  • the alignment pattern AP is a pattern arranged at a position determined by the QR code model number.
  • the alignment pattern AP serves to assist the search for the position of the QR code symbol 1 in the case of a large module.
  • the quiet zone QZ is a bright module area of at least 4 modules wide provided around the QR code.
  • the encoding area has data and error correction code words, format information FI, and model number information VI.
  • data and error correction code word an error correction code word for error correction when actual data and data cannot be read is arranged.
  • the format information FI has information on the error correction level applied to the QR code symbol 1 and the mask processing pattern to be used, and is a coding pattern necessary for decoding the coding region.
  • the model number information VI includes information on the model number of the QR code.
  • FIG. 2 is a block diagram of the extension encoder 10 in the first embodiment.
  • the extension encoder 10 is a device that converts information to be displayed and concealment information into a QR code symbol 1.
  • the extension encoder 10 includes a control unit 11, a display device 13, a printing device 14, and an input device 15.
  • the control unit 11 includes a calculation unit 11a and a storage unit 11b.
  • the calculation unit 11a is composed of a central processing unit and the like, and is responsible for program execution and various calculations.
  • the storage unit 11b is responsible for storing necessary data when executing the program. In particular, the storage unit 11b stores a program for executing a QR code generation method described later.
  • the display device 13 has a display function necessary for data input and the like.
  • the display device 13 outputs the generated QR code symbol 1 by display.
  • the printing device 14 also outputs the generated QR code symbol 1 by printing.
  • the input device 15 is used for data input and operation of the extension encoder 10.
  • the configuration of the extension encoder 10 can be realized by installing a program for executing a QR code generation method, which will be described later, in a general computer, a mobile phone, a smartphone, or the like.
  • FIG. 3 is a schematic diagram of an RS block in the first embodiment.
  • the QR code symbol 1 includes one or a plurality of RS blocks.
  • the RS block is used as one error correction processing unit.
  • RS block is described as an example of a processing unit block for error detection and correction calculation.
  • the RS block includes a data code word (corresponding to a first data code word) having an information main body to be displayed, a terminal code, and a padding code word.
  • the RS block includes an RS (Reed Solomon) code (corresponding to a correction code word) as a correction code word.
  • the information body is information that can be decoded when the QR code symbol 1 is read even by a standard decoder.
  • the end code is a code representing the end of the information body.
  • the padding code word is a temporary code word used for the purpose of filling an empty code word portion when the total number of code words in the information body is less than the capacity of the QR code symbol 1.
  • the RS code is a code added for error correction in units of RS blocks.
  • the error correction level “L” has an error correction capability of 7% with respect to the total number of words. For example, when the number of words in the RS block is 100%, the error correction capability is 7%.
  • the error correction level “M” has a correction capability of 15% with respect to the total number of words.
  • the error correction level “Q” has a correction capability of 25% with respect to the total number of words.
  • the error correction level “H” has an error correction capability of 30% with respect to the total number of words.
  • concealment information is concealed in a QR code using “H” which is the highest class error correction capability. However, the error correction level may be changed according to the number of concealment information words to be concealed.
  • FIG. 3 shows a concealment information word (corresponding to a second data code word).
  • a part of the RS block is replaced with the concealment information word (hereinafter, “replacement” may be referred to as “overwrite”).
  • the standard decoder can correct the replaced information body using the RS code. Then, the corrected information body portion can be extracted and displayed.
  • the concealment information word is information that is corrected by the RS code and discarded, it is not displayed by the standard decoder.
  • the extended decoder 20 corresponding to the first embodiment extracts a concealment information word from the replaced RS block as will be described later. After that, correction is performed using the RS code to extract the information body part. Information is concealed in the QR code symbol 1 by the above principle.
  • FIG. 4 is a flowchart of the QR code symbol generation method according to the first embodiment.
  • FIG. 5 is an explanatory diagram of the RS block.
  • FIG. 6 is an explanatory diagram of concealment information words.
  • a method according to the JIS standard is adopted as the encoding method to the QR code symbol 1.
  • the QR code symbol 1 has a plurality of RS blocks, but here, for ease of explanation, one RS block is illustrated as an example. Further, since the contents shown below are examples for easy explanation, each code word length may be different from the actual one.
  • the storage unit 11b stores “offset information” indicating a start position to be replaced with a concealment information word described later and “length (number of words) information” of the concealment information word.
  • an information body and a concealment information word embedded in the QR code symbol 1 are captured (S102).
  • the code word of the information body is “TOKYO ⁇ cr> MINATO ⁇ cr> JPN” (FIG. 5)
  • the concealment information word is “00090012345678” (FIG. 6).
  • the information main body and the concealment information word may be taken in via the input device 14, or information stored in advance in the storage unit 11b may be used.
  • the QR code symbol 1 has a total number of code words determined according to the model number.
  • the total number of code words is the sum of the number of data code words including the number of information body words and the number of correction code words.
  • the size and number of RS blocks made up of data code words and correction code words are determined according to the model number of the QR code symbol 1. Error correction is performed in units of RS blocks.
  • the error correction level is “H” and the model number is “4”
  • the total number of code words is set to “100”. It is determined that four RS blocks are included. The number of data code words in one RS block is “9”, and the number of correction code words is “16”.
  • Replacement with concealment information words is performed for each RS block within a range not exceeding the number of error corrections of the RS block.
  • the replacement of the number of code words “8” is allowed for each RS block, and the replacement of the number of code words of “32” is allowed as a whole (referred to as “total number of allowable replacement words”). There will be).
  • the model number of the QR code symbol 1 having the minimum size in which the number of concealment information words does not exceed the total number of permissible words and the number of information body words does not exceed the number of data code words is selected.
  • an RS block is generated based on the code word of the information body (S106).
  • the code word of the information body is divided into a plurality of blocks. Then, an error correction code word is generated for each block, and the generated correction code word is added after the corresponding code word. Then, an RS block is generated.
  • the correction code word generation method can conform to the JIS standard.
  • FIG. 5 shows an example of an information body, a terminal code, and a correction code word.
  • plain text information is shown as the code word of the information body.
  • the termination code for example, a bit string of “0000” can be adopted. Then, an RS code generated based on a code word including the information main body is added to create an RS block.
  • the part of the RS block generated in this way is replaced with a concealment information word (S108).
  • FIG. 7 is a first explanatory diagram when a part of the RS block is replaced by the method according to the first embodiment.
  • FIG. 7 shows the RS block and the concealment information word. And based on the length information and offset information of the above-mentioned concealment information word, in 1st Embodiment, as shown in FIG. 7, it replaces with the concealment information word from the head of RS block.
  • the standard decoder can correct the information body portion after replacement with the RS code, appropriately extract it, and display it.
  • the portion replaced with the concealment information word becomes information that is considered to be an error due to the corruption of the QR code symbol 1 and is discarded, and therefore cannot be displayed by the standard decoder.
  • the extended decoder 20 extracts a concealment information word from the post-replacement RS block as will be described later. After that, correction is performed using the RS code to extract the information body part. Then, the extracted concealment information word and the information body part are displayed.
  • QR code symbol 1 is created based on the replaced RS block (S110).
  • a method for generating the QR code symbol 1 based on the RS block the same method as the standard QR code generation method in the JIS standard can be adopted. In this way, the QR code symbol 1 can be generated.
  • the information body is represented as plain text data for ease of explanation.
  • the data word itself of the information body may be interleaved or encrypted.
  • an RS block before replacement may be generated by adding a correction code word to the information body after interleaving or the information body after encryption.
  • interleaving and encryption may be performed in units of bits instead of units of code words.
  • the hidden information word may be interleaved or encrypted.
  • the concealment information word may be encoded for error detection or error correction (for example, RS encoding).
  • FIG. 8 is a block diagram of the extension decoder 20.
  • the extension decoder 20 is a device that reads the QR code symbol 1 and develops information to be displayed and a hidden information word included in the QR code symbol 1.
  • the extended decoder 20 includes a control unit 21, an imaging device 22, a display device 23, a printing device 24, and an input device 25.
  • the control unit 21 includes a calculation unit 21a and a storage unit 21b.
  • the calculation unit 21a is composed of a central processing unit and the like, and is responsible for program execution and various calculations.
  • the storage unit 21b is responsible for storing necessary data when executing the program. In particular, the storage unit 21b stores a program for executing a QR code reading method described later.
  • the imaging device 22 is a device for imaging the QR code symbol 1 and is, for example, a CCD camera or the like.
  • the display device 23 has a display function necessary for data input and the like.
  • the display device 23 outputs the information developed from the QR code by display.
  • the printing device 24 also outputs the developed information by printing.
  • the input device 25 is used for data input and operation of the extension decoder 20.
  • the configuration of the extended decoder 20 can be realized by installing a program for executing a QR code reading method, which will be described later, in a general computer, a mobile phone, and a smartphone if the imaging device 22 is provided. it can. Further, the extension encoder 10 and the extension decoder 20 described above can be integrated and realized.
  • FIG. 9 is a flowchart of the QR code symbol reading method according to the first embodiment.
  • a method according to the JIS standard is adopted as a decoding method of the QR code symbol 1.
  • the storage unit 21b of the decoder 20 includes “length (number of words) information” of the concealment information word and “offset information” indicating the start position to be replaced with the concealment information word. It shall be remembered.
  • QR code symbol 1 is read (S202). Then, a plurality of RS blocks are developed based on the read QR code symbol 1 (S204). For the development to these plurality of RS blocks, those conforming to the JIS standard can be adopted. Thereby, for example, the post-replacement RS block shown in FIG. 7 described above is acquired.
  • FIG. 10 is an explanatory diagram of a concealment information word extraction method.
  • FIG. 10 shows the RS block after replacement and the concealment information word.
  • the post-replacement RS block can be obtained by reading the QR code symbol and expanding it according to the JIS standard.
  • the decoder 20 specifies the position of the concealment information word in the post-replacement RS block based on the concealment information word offset information and length information stored in the storage unit 21b. And a concealment information word is extracted from the specified position.
  • FIG. 11 is an explanatory diagram of an information body extraction method.
  • the decoder 20 acquires the pre-replacement RS block by performing error correction of the post-replacement RS block. Then, information from the beginning to the end code of the RS block before replacement is extracted, and the extracted data is used as the information body.
  • the code word and the concealment information word of the obtained information body are output (S208).
  • These output targets may be the display device 23 or the printing device 24 such as a printer.
  • the data word itself of the information body is interleaved, the data is rearranged by a predetermined method so as to be in the original order. If it has been encrypted, decryption is performed by a predetermined decryption method.
  • the standard decoder reads the QR code symbol 1 in the first embodiment.
  • the entire RS block is corrected based on the RS code of the RS block after replacement.
  • the information body portion is also corrected, and the corrected information body is displayed on the standard decoder. Since the standard decoder does not have a function of extracting the concealment information word from the RS block after replacement like the above-described extended decoder 20, only the information body can be extracted, and the concealment information word cannot be extracted.
  • an output result when a general QR code symbol is read by the extension decoder 20 will be described.
  • an RS block can be obtained based on the read QR code symbol.
  • the RS block acquired from a general QR code symbol does not include a concealment information word.
  • the extended decoder 20 cannot determine whether the read symbol 1 is the QR code symbol or the general QR code symbol in the first embodiment.
  • the extended decoder 20 extracts a data code word as a concealment information word from the position where the concealment information word of the RS block is arranged, as in the method in the first embodiment. Thereafter, the entire RS block is corrected based on the RS code of the RS block. As a result, the information body portion is corrected, and the corrected information body is displayed on the extension decoder 20.
  • the code word read as the concealment information word is a concealment information word is determined based on the concealment information word when there is a difference of a predetermined ratio or more between the RS block before correction and the RS block after correction. (That is, the QR code symbol is determined to be a QR code symbol in the first embodiment), and when there is no difference of a predetermined ratio or more, it is determined that it is not a concealment information word (that is, the QR code symbol is a general code symbol).
  • the concealment information word is not displayed by determining that it is a QR code symbol. This is because, when replacement is performed as a concealment information word, a difference of a predetermined ratio or more between the pre-replacement RS block and the post-replacement RS block surely occurs.
  • a case is considered in which, after a general QR code symbol is generated, a graphic pattern generation process is performed only on a portion corresponding to specific concealment information, and the graphic pattern is overwritten. .
  • a specific graphic pattern generation process is performed after the two-dimensional pattern is generated, it is necessary to separately prepare a different processing system for the specific graphic pattern generation process.
  • the QR code symbol is generated, it is necessary to perform a graphic pattern generation process for overwriting. Such processing is not desirable from the viewpoint of processing speed because the graphic pattern generation processing is performed a plurality of times.
  • the extension encoder 10 generates the data block before replacement immediately after generating the data block before replacement at the data code word level. This processing is performed on the memory (storage unit 11b) of a single processing system (control unit 11). Then, the final QR code symbol 1 is generated only once for the post-replacement data block (S110). Since necessary processing is performed at the data code word level in this way, the final QR code symbol 1 can be generated more efficiently and faster than necessary processing at the graphic pattern generation level. Such advantages are also applicable to the embodiments described later.
  • FIG. 12 is a second explanatory diagram when a part of the RS block is replaced by the method in the first embodiment.
  • concealment information words are replaced in order from the top of the RS block.
  • any position of the RS block may be replaced with a concealment information word.
  • the storage unit 11b of the extension encoder 10 and the storage unit 21b of the extension decoder 20 store the fact that the concealment information word is started from the predetermined seventh word position of the replaced RS block as offset information. ing. Moreover, it is memorize
  • the final end of the concealment information word to be replaced may be defined by adding a predetermined separation code to the final word of the concealment information word.
  • FIG. 13 is a third explanatory diagram when a part of the RS block is replaced by the method in the first embodiment.
  • the RS block is replaced with a plurality of concealment information words separated.
  • the concealment information word for 3 words is replaced from the position of the 3rd word from the top of the RS block, and the concealment information word for 2 words from the position of the 8th word from the top of the RS block.
  • the concealment information word for one word from the 11th word position from the top of the RS block replace with the concealment information word for 4 words from the 16th word position from the top of the RS block, It is good also as replacing by the concealment information word for 3 words from the position of the 22nd word from the head.
  • the extended decoder 20 can extract each concealment information word from the position specified beforehand in this way. Also in this case, since the number of concealment information words is smaller than the number of correctable words by the RS code, it is possible to appropriately obtain the RS block before replacement by performing correction. And an information main part can be extracted from RS block before substitution.
  • the arrangement information is recorded in a header data code word (“header” in the figure).
  • the header data code word is further included in the replaced RS block.
  • FIG. 14 is a conceptual diagram of an RS block in the second embodiment.
  • the extension encoder 10 replaces a part of the RS block before replacement with a header data code word and a concealment information word. Then, the RS block after replacement is generated.
  • the replacement by the header data code word and the concealment information word is performed within a range not exceeding the error correction number of the RS block. That is, the total number of words of the header data code word and the number of words of the concealment information word does not exceed the error correction number of the RS block.
  • the header data code word shown in FIG. 14 includes the concealment information word arrangement information as described above. Therefore, the start position of the concealment information word and its length (number of words) can be specified by referring to this header data code word. It is assumed that the position of the header data code word is predetermined. Further, the header data code word can include information on the format of the concealment information word.
  • the information related to the format of the concealment information word includes information on the encryption key when the concealment information word is encrypted and information related to rearrangement when the concealment information word is interleaved. In addition, when the concealment information word is encoded for error detection or error correction, information regarding the error detection or error correction technique is included.
  • FIG. 15 is an explanatory diagram of header data code words and concealment information words in the second embodiment.
  • FIG. 15 shows a header data code word and a concealment information word, and shows that a correction code word is included in a part of the concealment information word.
  • FIG. 16 is a first explanatory diagram when a part of the RS block is replaced by the method according to the second embodiment.
  • FIG. 16 shows an RS block, a concealment information word, and a header data code word.
  • the RS block is replaced with the concealment information word from the head thereof by the extension encoder 10.
  • the rear end of the RS block is replaced with a header data code word.
  • the header data code word includes concealment information word arrangement information (in this case, starting from the top (that is, the offset is zero) and having a length of 11 words). Yes.
  • the standard decoder can appropriately extract and display the information body portion after replacement with the RS code.
  • the portion replaced with the concealment information word becomes information that is considered to be an error due to contamination of the QR code symbol 1 or the like and is discarded, and therefore cannot be displayed by the standard decoder.
  • the extended decoder 20 extracts concealment information words from the RS block after replacement. At this time, arrangement information for specifying the position of the concealment information word is acquired from the header data code word. And a concealment information word is extracted based on the arrangement information. In addition, since the correction code word is added to the concealment information word, even if the concealment information word is contaminated, it can be corrected using the correction code word.
  • the concealment information word when the concealment information word is interleaved, it can be rearranged in the original order based on the information about the interleaving method included in the header data code word. Even when the information main body is interleaved, the information can be rearranged in the original order based on the information about the interleaving method included in the header data code word. Further, when the concealment information word is encrypted, the decryption can be performed based on the encryption key included in the header data code word. In addition, as described above, when coding for error detection or error correction (for example, RS coding) is performed on the concealment information word, error correction is performed based on information included in the header data code word. Can be specified.
  • error detection or error correction for example, RS coding
  • the extended decoder 20 After extracting the concealment information word in this way, the extended decoder 20 corrects the post-replacement RS block to obtain the pre-replacement RS block. And the information main-body part contained in RS block before substitution is extracted. Then, the extracted concealment information word and the information body part are displayed.
  • FIG. 17 is a second explanatory diagram when a part of the RS block is replaced by the method according to the second embodiment.
  • concealment information words are sequentially replaced from the top of the RS block.
  • the concealment information word may be replaced from a position other than the head.
  • the replacement of the concealment information word from the ninth word of the RS block is included in the offset information in the header data code word.
  • the length information in the header data code word includes that the concealment information word has a length of 11 words.
  • FIG. 18 is a third explanatory diagram when a part of the RS block is replaced by the method according to the second embodiment.
  • the position of the header data code word is determined in advance to have a length of 2 words starting from the 13th word of the RS block.
  • the header data code word includes arrangement information of a plurality of concealment information words. By doing in this way, a concealment information word can be extracted appropriately by referring to the header data code word.
  • the position of the header data code word may be specified by providing a delimiter before and after the header data code word.
  • Whether the read QR code symbol is a general QR code symbol or a QR code symbol in the second embodiment is determined by whether or not the header data code word is included in the extracted concealment information word. It can be determined based on. That is, since the header data code word is included in the QR code symbol in the second embodiment, the extension decoder 20 can display the concealment information word. Further, since a general QR code symbol does not include a header data code word, the extended decoder 20 can display only the information to be displayed without displaying the concealment information word.
  • FIG. 19 is an explanatory diagram when a part of the RS block is replaced by the method according to the third embodiment.
  • FIG. 19 shows an RS block before replacement, a concealment information word, an RS block after temporary replacement, a header data code word, and an RS block after replacement.
  • the extended encoder 10 replaces a part of the RS block before replacement with a concealment information word. Then, an RS block after provisional replacement is generated.
  • the concealment information word includes a correction codeword having a correction capability sufficient to correct it even if it is replaced by a header data codeword.
  • the extension encoder 10 replaces a part of the portion replaced with the concealment information word in the RS block after provisional replacement with the header data code word. Then, an RS block after replacement is generated. Thereafter, the extension encoder 10 generates a QR code symbol based on the generated post-replacement RS block.
  • the extended decoder 20 in the third embodiment reads the QR code symbol generated in this way, and expands the RS block after replacement. Then, the extended decoder 20 extracts the header data code word. As in the first and second embodiments, the position of the header data code word can be set to a predetermined position, or the position is determined by providing a delimiter before and after the header data code word. It may be specified.
  • the position of the concealment information word is specified based on the arrangement information included in the header data code word extracted in this way. Then, the concealment information word is extracted. Since the concealment information word includes the correction code word as described above, the portion replaced by the header data code word is also appropriately corrected by performing correction based on the correction code word. Then, the concealment information word before being replaced by the header data code word is appropriately extracted.
  • the decoder 20 performs correction using the correction codeword included in the pre-replacement RS block. Thereby, the part replaced by the concealment information word is also appropriately corrected, and the RS block before replacement can be obtained. Then, the extension decoder 20 can extract the information body from the pre-replacement RS block.
  • the number of words of the concealment information word does not exceed the number of correctable words by the correction code word included in the RS block before replacement. Further, in the third embodiment, the number of words of the header data code word does not exceed the number of correctable words by the correction code word included in the concealment information word. Thereby, a concealment information word and an information main body can be extracted appropriately.
  • a feature of the third embodiment is that a part of the portion replaced with the concealment information word is replaced with the header data code word.
  • the read QR code symbol is a general QR code symbol or a QR code symbol in the third embodiment.
  • a determination can be made based on whether a word includes a header data code word. That is, since the header data code word is included in the QR code symbol in the third embodiment, the extended decoder 20 can display the concealment information word. Further, since a general QR code symbol does not include a header data code word, the extended decoder 20 can display only the information to be displayed without displaying the concealment information word.
  • FIG. 20 is an explanatory diagram when a part of the RS block is replaced by the method according to the fourth embodiment.
  • FIG. 20 shows an RS block before replacement, a concealment information word, and an RS block after replacement.
  • the header data code word is included in the information body of the RS block before replacement.
  • a delimiter (described as “deli” in FIG. 20) is arranged before and after the header data code word, and thereby, the display information in the information body and the header data code word are separated.
  • the extension encoder 10 In order to generate such a pre-replacement RS block, in the fourth embodiment, the extension encoder 10 generates an information body including display information, a header data code word, and a delimiter.
  • the header data code word includes arrangement information of concealment information words to be described later. Further, the extension encoder 10 generates a correction code word based on these information bodies (including the padding code word if present). Then, a pre-replacement RS block is generated.
  • the extension encoder 10 replaces a part of the RS block before replacement with the concealment information word.
  • the replacement position is a position corresponding to the arrangement information included in the header data code word.
  • an RS block after replacement is generated.
  • the extension encoder 10 generates a QR code symbol based on the replaced RS block.
  • the extended decoder 20 in the fourth embodiment reads the QR code symbol generated in this way, and expands the RS block after replacement. Then, the extended decoder 20 obtains the pre-replacement RS block by correcting the post-replacement RS block based on the correction codeword included in the pre-replacement RS block.
  • the pre-replacement RS block includes header data code words that are separated by the delimiter as described above.
  • the extension decoder 20 identifies and extracts the position of the concealment information word from the post-replacement RS block based on the arrangement information included in the header data code word. The extracted concealment information word may be corrected using a correction codeword included in the concealment information word.
  • the replacement RS block is generated by replacing the header data code word including the concealment information word arrangement information with the concealment information word, it is difficult to specify the position of the concealment information word from the replacement RS block. Become. And extraction of a concealment information word can be made more difficult for a third party.
  • whether the read QR code symbol is a general QR code symbol or a QR code symbol in the fourth embodiment is determined by whether the header data code word is included in the extracted pre-replacement RS block. It can be determined based on whether it is included. That is, since the header data code word is included in the pre-replacement RS block in the fourth embodiment, the extended decoder 20 can display the concealment information word. Further, since a general QR code symbol does not include a header data code word, the extended decoder 20 can display only the information to be displayed without displaying the concealment information word.
  • FIG. 21 is an explanatory diagram when a part of the RS block is replaced by the method according to the fifth embodiment.
  • FIG. 21 shows an RS block before replacement, a concealment information word, a header data code word, and an RS block after replacement.
  • the information body of the RS block before replacement includes a header data code word offset position information word (position “offset” in FIG. 21) including the position information of the header data code word. Is included).
  • a delimiter is arranged before and after the header offset position information word, whereby the display information in the information body and the header offset position information word are separated.
  • the extension encoder 10 In order to generate such a pre-substitution RS block, in the fifth embodiment, the extension encoder 10 generates an information body including display information, a header offset position information word, and a delimiter. Then, the extension encoder 10 generates a correction code word based on these information bodies (including the padding code word if present). Then, a pre-replacement RS block is generated.
  • the extension encoder 10 replaces a part of the RS block before replacement with the concealment information word.
  • the replacement position is a position corresponding to the arrangement information of the concealment information word included in the header data code word.
  • the concealment information word arrangement information it is assumed that replacement of the concealment information word is started from the fifth word of the RS block, and information that the concealment information word has a length of 11 words is included. . Then, an RS block after provisional replacement is generated.
  • the extension encoder 10 replaces a part of the concealment information word in the RS block after provisional replacement with the header data code word.
  • the replacement position is a position corresponding to the position information of the header data code word included in the header offset position information word.
  • information that replacement is performed from the seventh word of the RS block is included in the header offset position information word.
  • the length of the header data code word is determined to be two words in advance. Then, based on these pieces of information, the extension encoder 10 performs replacement with the header data code word, and generates an RS block after replacement. Thereafter, the extension encoder 10 generates a QR code symbol based on the replaced RS block.
  • the extension decoder 20 in the fifth embodiment reads the QR code symbol generated in this way, and expands the RS block after replacement. Then, the extension decoder 20 obtains the pre-replacement RS block by correcting the post-replacement RS block based on the correction codeword included in the RS block.
  • the pre-replacement RS block includes the header offset position information word that is separated by the delimiter as described above.
  • the extended decoder 20 specifies the position of the header data code word in the post-replacement RS block based on the header offset position information word. Then, a header data code word is extracted from the position of the identified post-replacement RS block, and concealment information word arrangement information is obtained.
  • the extended decoder 20 extracts concealment information words from the replaced RS block based on the concealment information word arrangement information. However, this concealment information word is partially replaced by a header data code word. Therefore, the extended decoder 20 performs correction based on the correction code word included in the concealment information word, and obtains the concealment information word before being replaced by the header data code word. Thereby, a concealment information word can be acquired appropriately.
  • the extended decoder 20 acquires the information word obtained by removing the header offset position information word and the delimiter from the information body of the RS block before replacement.
  • the header offset position information word for specifying the position of the header data code word is included in the information body, and this header offset position information word is further replaced with the concealment information word. It becomes more difficult to specify the position of. And it can be made more difficult for a third party to extract the concealment information word.
  • the concealment information word is replaced from an arbitrary position based on the concealment information word arrangement information included in the header data code word, or the concealment information word is separated into a plurality of pieces. It can also be replaced. Further, the concealment information word can be encrypted or interleaved based on the information of the header data code word.
  • the position of the header data code word is specified based on the “offset”. However, if the position of the header data code word can be specified, the position can be specified by another method without specifying the offset amount. Good.
  • whether the read QR code symbol is a general QR code symbol or the QR code symbol in the fifth embodiment is determined by extracting the concealment information. A determination can be made based on whether a word includes a header data code word. That is, since the header data code word is included in the QR code symbol in the fifth embodiment, the extension decoder 20 can display the concealment information word. Further, since a general QR code symbol does not include a header data code word, the extended decoder 20 can display only the information to be displayed without displaying the concealment information word.
  • FIG. 22 is a first explanatory diagram when a part of the RS block is replaced by the method according to the sixth embodiment.
  • FIG. 22 shows a pre-replacement RS block, a concealment information word, and a post-replacement RS block.
  • the extension encoder 10 generates a correction code word based on the information body (including the padding code word if present). Then, a pre-replacement RS block is generated. Next, the extended encoder 10 replaces a part of the RS block before replacement with a concealment information word. Then, an RS block after replacement is generated. Then, a QR code symbol is generated based on the replaced RS block. As described above, in the sixth embodiment, the method for generating the QR code symbol is based on substantially the same method as in the first embodiment.
  • the extended decoder 20 in the sixth embodiment reads the QR code symbol generated in this way, and expands the RS block after replacement. Then, the extended decoder 20 obtains the pre-replacement RS block by correcting the post-replacement RS block based on the correction codeword included in the RS block.
  • the extension decoder 20 compares the RS block before replacement with the RS block after replacement. And a part different from RS block before substitution is extracted from RS block after substitution. The information word extracted in this way is a hidden information word. Also, the information body is extracted from the pre-replacement RS block. Since the pre-replacement RS block is provided with a terminal code between the information main body and the correction codeword, the decoder 20 can separate the information main body and the correction codeword based on the terminal code.
  • the hidden information word and the information body can be extracted.
  • FIG. 23 is a second explanatory diagram when a part of the RS block is replaced by the method according to the sixth embodiment.
  • the RS block is replaced with a plurality of concealment information words separated.
  • the concealment information word can be divided into five and a part of the RS block can be replaced. Even in this case, since the number of concealment information words is smaller than the number of correctable words by the RS code, it is possible to appropriately obtain the RS block before replacement by performing correction. Also in this case, the concealment information word can be obtained by taking the difference between the RS block before replacement and the RS block after replacement. Moreover, an information main body can be obtained by extracting a data word from the position specified beforehand of RS block before substitution.
  • the method of extracting the concealment information word based on the difference is particularly effective when the QR code symbol is hardly damaged and the RS block is also hardly damaged. For example, when an image data file of a QR code symbol is generated, imported as a file, and a concealment information word or the like is extracted, there is no opportunity for the QR code symbol to be exposed to the outside. .
  • This method has an advantage that the concealment information word can be specified without providing a special header data code word or the like as described above. This is an advantage that replacement can be performed with more concealment information words.
  • the code word read as the concealment information word is a concealment information word is determined in the same manner as in the first embodiment by a difference of a predetermined ratio or more between the RS block before correction and the RS block after correction.
  • it is determined that it is a concealment information word that is, it is determined that the QR code symbol is a QR code symbol in the sixth embodiment
  • it is determined that it is not a concealment information word that is, , The QR code symbol is determined to be a general QR code symbol
  • the concealment information word is not displayed. This is because, when replacement is performed as a concealment information word, a difference of a predetermined ratio or more between the pre-replacement RS block and the post-replacement RS block surely occurs.
  • FIG. 24 is a third explanatory diagram when a part of the RS block is replaced by the method in the sixth embodiment.
  • a rule is applied that each word of the header data code word and each word of the concealment information word are arranged consecutively. By applying such a rule, these words are always replaced consecutively, so even if there is a missing word because it happens to be the same word, it coincides by chance.
  • the information can be supplemented by filling in the missing part with the word.
  • the missing portion may be simply filled with the data code word at the corresponding position.
  • the end portion is subjected to some complementation and verified.
  • FIG. 25 is an explanatory diagram of a partially missing RS block.
  • a leading missing RS block an RS block in which the leading end portion of the data code word is missing
  • a rear end missing RS block an RS block in which the trailing end portion of the correction code word is missing
  • a rear end missing RS block an RS block in which the trailing end portion of the correction code word is missing
  • a rear end missing RS block an RS block from which both end portions are missing
  • specific code words are not shown in each cell.
  • the portion of the missing code word is indicated by a broken line. Thus, there are these three cases as a case where the end of the RS block is missing.
  • the front and rear ends are complemented in possible combinations. Then, for all the combinations, it is verified whether (1) the correction process functions in the complemented RS block, or (2) whether the correction process is correct and the correction result is correct as the block configuration syntax.
  • FIG. 26 is an explanatory diagram of complementation of the tip missing RS block.
  • FIG. 26 shows an RS block in which an erroneous complement is performed on the tip missing RS block.
  • the tip missing RS block should be complemented for the tip portion originally, but it is not known whether the tip portion is missing or the rear end portion is missing only by looking at the missing RS block. Therefore, both the RS block that complements the front end part and the RS block that complements the rear end part are generated. Then, correction is performed using the correction code word for both RS blocks that have been complemented.
  • the correction process is appropriately performed, and the correction result is also correct as the block configuration syntax.
  • the position of the correction code word is estimated from the assumed word length, and as a result, the incorrect position is the correction code word. It is specified as a position. As described above, correction is performed based on the code word in the area that is erroneously recognized as the correction code word, and thus correction is not appropriately performed.
  • FIG. 27 is an explanatory diagram of complementation of the rear end missing RS block.
  • FIG. 27 illustrates an RS block in which an erroneous complement is performed on the rear end missing RS block.
  • the rear end missing RS block should be supplemented for the rear end portion, but in this case as well, the leading end portion is missing or the rear end portion is missing only by looking at the missing RS block. I don't know if it is. Therefore, also in this case, both the RS block that complements the front end portion and the RS block that complements the rear end portion are generated. Then, correction is performed using correction code words for both RS blocks that have been complemented.
  • the correction process is appropriately performed, and the correction result is the correct result as the block configuration syntax.
  • the position of the correction code word is estimated from the assumed word length, and as a result, the incorrect position is the position of the correction code word. It will be specified as. As described above, correction is performed based on the code word in the area that is erroneously recognized as the correction code word, and thus correction is not appropriately performed.
  • FIG. 28 is an explanatory diagram of complementation of RS blocks with missing both ends.
  • FIG. 28 shows two RS blocks that have been erroneously complemented with respect to RS blocks that are missing at both ends. Here, it is assumed that there is a missing word at each end for each word. In such an RS block lacking both ends, one-word complementation should be originally performed for the front end portion and the rear end portion. I don't know if this is missing.
  • an RS block that has been supplemented with two words at the leading end an RS block that has been supplemented with two words at the trailing end, and an RS block that has been complemented by one word at each end.
  • each complemented RS block is corrected using the correction block.
  • the subsequent verification method is the same as that in the case where complementation is performed in the leading end missing RS block and the case where complementation is performed in the trailing end missing RS block, and thus the description thereof is omitted.
  • the leading part is missing three words
  • the leading part is missing two words and the trailing part is missing one word
  • the leading part is missing one word
  • an RS block that has been complemented only in a case corresponding to this is generated, and each is verified to properly perform the correct complement. be able to.
  • a correction function may be established in an RS block that has been erroneously complemented. In this case, however, the corrected block does not conform to a predetermined format. Become. Therefore, based on this, it can be determined that the supplement is not normal.
  • the replacement when replacing a pre-replacement RS block with a concealment information word, the replacement is performed at the position of the number of words specified by the mask pattern reference child MPR.
  • the mask pattern reference MPR is a reference specifying a mask pattern (referred to as a “standard mask pattern” in this description) in the JIS standard.
  • this mask pattern reference MPR is used for specifying a replacement position with a concealment information word, thereby making it difficult to extract the concealment information word from a third party.
  • the mask pattern reference child MPR is included in the format information FI of the QR code symbol 1.
  • the format information FI further includes an error correction level. Note that in the JIS standard, masking with a standard mask pattern is applied only to an area of the encoded area excluding the format information FI and the model number information VI, and therefore the mask pattern reference MPR is not masked with the standard mask pattern. become.
  • FIG. 29 is a flowchart of a QR code symbol generation method according to the seventh embodiment.
  • a QR code symbol generation method according to the seventh embodiment will be described with reference to this flowchart.
  • the information main body and the concealment information word embedded in the QR code symbol 1 are captured (S302).
  • the model number of the QR code symbol 1 is determined based on the information body and the concealment information word (S304).
  • an RS block is generated based on the code word of the information body (S306). Since the same method as that of the first embodiment is used for the acquisition of the information main body and the concealment information word, the determination of the model number, and the generation of the RS block in steps S302 to S306, description thereof will be omitted.
  • the value of the mask pattern reference MPR is initialized to “0” (S308).
  • the value of the mask pattern reference MPR has a numerical value from 0 to 7 (“000” to “111”). Therefore, here, the value of the mask pattern reference MPR is changed from 0 to 7, and the processing from step S310 to step S314 described later is repeatedly performed. Therefore, the value of the mask pattern reference MPR is initialized to “0”.
  • replacement with a concealment information word is performed at the position (replacement position) specified by the mask pattern reference MPR (S310).
  • the replacement with the concealment information word is performed at a position offset from the head of the RS block before replacement by the number of words corresponding to the value of the mask pattern reference MPR. For example, when the value of the mask pattern reference MPR is “0”, the concealment information word is replaced from the head of the RS block before replacement.
  • the mask pattern reference MPR since the mask pattern reference MPR has a value from 0 to 7, the mask pattern reference MPR can define eight types of positions as replacement positions of the concealment information word.
  • FIG. 30 is an explanatory diagram when a part of the RS block is replaced by the method according to the seventh embodiment.
  • FIG. 30 shows a case where the mask information reference MPR has a value of “6” and replacement with the concealment information word is performed at a position offset by 6 words from the head of the RS block before replacement. ing.
  • the method of setting the position offset by the same number of words as the value of the mask pattern reference MPR as the replacement position with the concealment information word is the simplest form of specifying the replacement position with the mask pattern reference MPR. Is not limited to this.
  • a position corresponding to the value of the mask pattern reference MPR may be defined in advance, and the replacement position may be specified according to this.
  • a QR code symbol before applying the standard mask pattern is generated (S312).
  • the standard mask pattern specified by the mask pattern reference child MPR is applied to the QR code symbol before application of the standard mask pattern (S314).
  • the application of the standard mask pattern conforms to the JIS standard and will not be described.
  • step S316 it is determined whether or not the value of the mask pattern reference child MPR is 7 (S316). Thus, it is determined whether or not the processing from step S310 to step S314 has been performed for all cases where the value of the mask pattern reference child MPR is 0 to 7. If the value of the mask pattern reference MPR is not 7 in step S316, the value of the mask pattern reference MPR is incremented (S318).
  • step S316 all the QR code symbols when the value of the mask pattern reference MPR is changed from 0 to 7 in the processing so far. Is generated. Therefore, these eight QR code symbols are evaluated to identify the optimum QR code symbol pattern (S320).
  • the evaluation of the QR code symbol in step S320 is omitted because “evaluation of the mask processing result” in the JIS standard is applied. By performing this evaluation process, QR code symbols with moderately varying modules are identified.
  • step S320 the QR code symbol specified in step S320 is output (S320).
  • the output of the QR code symbol may be displayed on the display device 13 or may be printed by the printing device 14.
  • the mask pattern reference child MPR that specifies the standard mask pattern applied to the QR code symbol is also used to specify the position to be replaced with the concealment information word. Since there are eight types of standard mask patterns, the value of the mask pattern reference MPR also has eight types of numerical values. Therefore, the position to be replaced with the concealment information word can be changed according to the standard mask pattern to be applied. Thereby, it becomes difficult for a third party to specify the position of the concealment information word, and extraction of the concealment information word can be made more difficult.
  • step S320 in which position the concealment information word is located until all QR code symbols generated by changing the value of the mask pattern reference MPR from 0 to 7 are evaluated in step S320. It is not known whether the arrangement of the symbols becomes the optimum QR code symbol. For this reason, it is not known at which position the QR code symbol that has been replaced with the concealment information word is employed until it is evaluated in step S320. Thus, since the replacement position of the concealment information word cannot be determined in advance, the position of the concealment information word can be made more difficult to specify. And extraction of a concealment information word can be made more difficult.
  • the application of the standard mask pattern can be performed before the concealment information word replacement process in step S310.
  • the standard mask pattern is applied after the concealment information word replacement process in step S310.
  • step S108 masking with a standard mask pattern is performed after step S108.
  • all the standard mask patterns of mask pattern references MPR “0” to “7” are applied.
  • step S320 in the seventh embodiment the QR code symbol that is the optimum QR code symbol is selected from these QR code symbols.
  • the mask pattern reference MPR Since masking by the standard mask pattern is applied only to the area excluding the format information FI and the model number information VI in the encoded area, the mask pattern reference MPR is not affected by the masking by the standard mask pattern. Therefore, when reading the QR code symbol, the mask pattern reference MPR can be appropriately read from the format information FI to cancel the standard mask pattern.
  • FIG. 31 is a flowchart of a QR code symbol reading method according to the seventh embodiment.
  • a QR code symbol reading method according to the seventh embodiment will be described with reference to the flowchart and FIG. 30 described above.
  • an extended QR code symbol is read (S402).
  • the same method as in the first embodiment is used, and thus the description thereof is omitted.
  • the mask pattern reference MPR is information included in the format information FI as described above.
  • the format information FI is not masked by the standard mask pattern in the QR code symbol 1. For this reason, the format information FI can be appropriately read out by the method of the JIS standard. Then, the mask pattern reference MPR included in the format information FI can be specified.
  • the standard mask pattern applied to the QR code symbol 1 can be specified by a mask pattern reference MPR. Then, the standard mask pattern applied to the QR code symbol 1 is canceled using the specified standard mask pattern.
  • a plurality of RS blocks (here, replaced RS blocks) are developed from the QR code symbol from which the standard mask pattern is released. Then, the position of the concealment information word in the post-replacement RS block is specified based on the mask pattern reference MPR (S408).
  • the position offset from the head of the RS block after replacement by the number of words corresponding to the value of the mask pattern reference MPR is specified as the head position of the concealment information word.
  • the start position of the concealment information word is a position offset by 6 words from the head of the RS block after replacement, as shown in FIG. Become.
  • a concealment information word is extracted from the position of the identified concealment information word (S410). Further, the post-replacement RS block is corrected using the Reed-Solomon code (S412). By performing the correction using the Reed-Solomon code, the RS block after replacement is converted into the RS block before replacement. And an information main part can be extracted from RS block before substitution.
  • the obtained information main body and concealment information word are output (S414). These outputs may be displayed on the display device 13 or may be printed by the printing device 14.
  • the position of the concealment information word is defined based on the mask pattern reference MPR.
  • the position of the concealment information word may also be defined using the model number information of the QR code symbol. Good.
  • QR code symbol error correction level information may be combined.
  • error correction levels “L”, “M”, “Q”, and “H”. Therefore, by further applying these four types of combinations, a total of 1280 types of positions can be defined.
  • the concealment information words are continuously replaced from the specified position, the concealment information words may be replaced in a distributed manner as shown in FIG.
  • FIG. 32 is an explanatory diagram when a part of the RS block is replaced by the technique according to the eighth embodiment.
  • a part of the RS block before replacement is replaced with the header data code word and the concealment information word, and the RS block after replacement is generated.
  • replacement with the concealment information word is performed at the position indicated by the header data code word.
  • the eighth embodiment is common to the seventh embodiment in that the replacement position is specified by the value of the mask pattern reference child MPR. Therefore, a QR code symbol generation method according to the eighth embodiment will be described while changing a part of the flowchart used in the seventh embodiment.
  • step S302 to step S308 is the same as in the seventh embodiment. Therefore, the description is omitted.
  • the eighth embodiment differs from the seventh embodiment in the process of step S310.
  • the replacement by the header data code word is performed with the position offset from the head of the RS block before replacement by the same number of words as the value of the mask pattern reference MPR as the head position. Further, a part of the pre-replacement RS block is replaced with the concealment information word at the position specified by the header data code word.
  • FIG. 32 shows the case where the mask pattern reference child MPR is “2” and the replacement with the header data code word is performed at a position offset by two words from the head of the RS block before replacement. Yes.
  • this header data code word represents a position that is offset by 8 words from the head of the RS block before replacement as a replacement position of the concealment information word. For this reason, replacement with a concealment information word is performed at a position offset by 8 words from the head of the RS block before replacement.
  • step S312 to step S322 is the same as that of the seventh embodiment, and thus description thereof is omitted.
  • the replacement position by the header data code word and the replacement position by the concealment information word it is desirable that these positions do not overlap each other. This is because if these overlap, at least one of the header data code word and the concealment information word cannot be accurately restored.
  • step S402 The processing from step S402 to step S406 is the same as in the seventh embodiment. Therefore, the description is omitted. What differs from the seventh embodiment in the eighth embodiment is the processing in steps S408 and S410.
  • step S408 the position of the header data code word is specified and extracted based on the value of the mask pattern reference MPR.
  • step S410 the position of the concealment information word is specified using the header data code word, and the concealment information word is extracted.
  • step S412 to step S414 is the same as that in the seventh embodiment, and thus the description thereof is omitted.
  • the mask pattern reference child MPR that specifies the standard mask pattern applied to the QR code symbol is also used to specify the position to be replaced with the header data code word. Since there are eight types of standard mask patterns, the value of the mask pattern reference MPR also has eight types of numerical values. Therefore, the position where the header data code word is replaced can be changed according to the applied standard mask pattern. Thereby, it becomes difficult for a third party to specify the position of the header data code word, and the extraction of the concealment information word can be made more difficult.
  • step S320 at which position the header data code is not evaluated until all QR code symbols generated by changing the value of the mask pattern reference MPR from 0 to 7 are evaluated in step S320. I don't know if the word arrangement is the best QR code symbol. Until the evaluation is made in step S320, it is not known at which position the QR code symbol subjected to the replacement with the header data code word is adopted. Thus, since the replacement position of the header data code word cannot be determined in advance, it is difficult to specify the position of the header data code word. Since it becomes difficult to specify even the position of the header data code word, it is further difficult to specify the position of the concealment information word, and it is difficult to extract the concealment information word.
  • step S102 to step S106 is the same as in the first embodiment. Therefore, the description is omitted.
  • the ninth embodiment is different from the first embodiment in that the replacement position of the concealment information word is specified between step 106 and step S108 based on the correction code word.
  • FIG. 33 is a first diagram illustrating a technique for replacing a part of the RS block by the technique according to the ninth embodiment.
  • FIG. 33 shows a pre-replacement RS block.
  • the replacement position of the concealment information word is specified based on a plurality of bits in a specific byte of the correction code word. Specifically, here, the third byte of the correction code word is extracted, and the lower 4 bits are extracted from this byte. Then, the value of the lower 4 bits is used as a concealment information word replacement position.
  • “0010” is shown as the information of the lower 4 bits. “0010” represents “2” in decimal, but here “0” is specified as the first position, so “0010” represents the third position from the beginning.
  • substitution with a concealment information word is performed based on this substitution position (S108).
  • FIG. 34 is a second diagram illustrating a technique for replacing a part of the RS block by the technique according to the ninth embodiment.
  • FIG. 34 shows that replacement with a concealment information word is performed from the position of the third byte (position of the third word) from the head of the RS block before replacement. In this way, the replacement position in the concealment information word is specified based on the correction code word, and the replacement is performed.
  • a QR code is generated based on the post-replacement RS block (S110). Then, masking with a standard mask pattern is performed. Masking with a standard mask pattern conforms to the JIS standard.
  • the correction code word is obtained based on the data code word. Therefore, if the data code word is different, the correction code word is also different. Therefore, by specifying the replacement position based on the correction code word, if the data code word is different, the replacement position is also different, which makes it difficult for a third party to specify the position of the concealment information word. And extraction of a concealment information word can be made more difficult.
  • the processing from step S202 to step S04 is the same as in the first embodiment. Therefore, the description is omitted.
  • the ninth embodiment differs from the first embodiment in the process of step S206.
  • the replacement position of the concealment information word is specified based on a bit of a specific byte of the correction code word.
  • the third byte of the correction code word is extracted.
  • the lower 4 bits are extracted from this byte, and the replacement position of the concealment information word is specified based on the value represented by the lower 4 bits. In this way, as shown in FIG. 34, the position of the concealment information word can be appropriately identified and the concealment information word can be extracted.
  • the data code word can be appropriately extracted by correcting the post-replacement RS block using the correction code word.
  • the result output of the extracted data is the same as in the first embodiment (S108), and thus the description thereof is omitted.
  • the byte of the correction code word for specifying the replacement position may be replaced.
  • the RS block after replacement may be corrected with the correction code word first.
  • the third byte of the correction code word is used. Needless to say, another byte of the correction code word may be used. Moreover, although 16 positions can be specified by using the lower 4 bits, the number of specified positions can be increased by increasing the number of bits used.
  • the correction code word is used to specify the replacement position of the concealment information word.
  • the concept of the header data code word of the second embodiment is introduced, and the position of the header data code word is determined. May be specified by the aforementioned correction code word.
  • the error correction code word is obtained based on the data code word. Therefore, if the data code word is different, the error correction code word is also different. Therefore, by specifying the replacement position based on the error correction code word, if the data code word is different, the replacement position is also different, so it is difficult for a third party to specify the position of the header data code word. Become. Since the position of the concealment information word is specified by the header data code word, extraction of the concealment information word can be made more difficult.
  • the QR code symbol as described above can be used, for example, by printing it on a ticket for a pre-sale event or concert.
  • the “display information” can be “event name”, “seat information”, “reservation number”, and “URL”.
  • the concealment information can be “information at the time of reservation”.
  • ID information such as “sex”, “age”, “name”, “license”, or “passphrase” can be adopted.
  • the concealment information is read by the extension decoder 20. Then, by collating the ID information of “sex”, “age”, “license” and “passphrase” included in the concealment information, unauthorized use and impersonation can be prevented.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Printers Characterized By Their Purpose (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含むことを特徴とする二次元コード生成方法である。また、前記二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求めることと、前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求めることと、を含むことを特徴とする二次元コード読み取り方法である。

Description

二次元コード生成方法、二次元コード生成装置、二次元コード読み取り方法、二次元コード読み取り装置、二次元コード、および、プログラム
 本発明は、情報を図形で表現する二次元コードに秘匿情報を隠蔽する技術に関する。
 図形コードを読み取り、そこに含まれる情報を取り出す二次元コードの技術として、たとえば、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル-QRコード-」がある。そして、さらにこのような二次元コードに開示対象情報以外の秘匿情報を隠蔽する技術が開発されている。そして、このように見た目は標準的な二次元コードに秘匿情報を隠蔽することで、暗号鍵情報や個人情報などの取り扱いを必要とする産業応用への途が開かれてきた。
 特許文献1には、明暗パターンからなるマトリクス状の暗号化二次元コードにおいて、基準となる形状や濃度と異なる変形セルによって復号のための鍵を表現する技術が開示されている。
 特許文献2には、暗号化二次元コードの解読鍵コードパターンを形成された二次元コードパターン上のデータコード語領域および訂正コード語領域のパターンの少なくとも一方に上書きした構成で重複する技術が開示されている。
 特許文献3には、開示するデータを表すコード語としてコード化されたデータコード語の総数が二次元コード生成のための所定のコード語総数よりも小さい場合に、上記コード領域の後ろに終端符号を置き、本来終端符号のあとに置かれるパディングコード(埋め草コード)の一部に代えて秘匿データコードを配置してコード図形を生成することが開示されている。
特開2006-4378号公報 特開2009-93443号公報 特開2009-9547号公報 日本工業規格JIS X 0510:2004
 特許文献1及び特許文献2の技術では、隠蔽される情報である復号鍵情報がコードパターンの図形上において元のコードのそれとは異なる「変形セル」や「明暗パターン」として生成される。そして、図形上において対象となる所定の領域または位置での置き換え(すなわち、上書き)操作がなされる。
 これら技術において、二次元コードの復号化に利用される鍵情報そのものは暗号化されない。そのため、同一の暗号鍵を適用するコード生成体系を持つ場合には、同一の「パターン」が同じ場所に現れる。よって、図形としてのコードパターンを注意深く観察することで情報パターンの隠蔽が疑われる可能性がある。このことは、異形の「変形セル」の場合も同様である。
 また、上記鍵の「パターン」の置かれる場所がコード図形上の複数の場所にあったとしても、図形パターン上に上書きで置き換えられる方式のために、置き換え場所が図形パターン上での位置があらかじめ規定されている。そのため、同一の鍵情報が適用された二次元コードのサンプルを複数重ね合わせることで「不動な箇所」を認識できてしまう。
 また、上記技術では、エンコード処理において、上書きするためのパターン図形を生成するための特別な処理が別途必要となる。このような処理は、複雑であり、処理の高速化に際して障害となる。
 特許文献3では、開示するデータを表すコード語としてコード化されたデータコード語の総数が二次元コード生成のための所定のコード語総数よりも小さい場合に、上記コード領域の後ろに終端符号を置き、本来終端符号のあとに置かれるパディングコード(埋め草コード)の一部に代えて秘匿データコードを配置してコード図形を生成することが開示されている。
 上記技術によれば、本来パディングコードとして規定されるコードパターンとは別のデータコードがパディングコード領域に配置されることになる。そのため、このようなコードは、非特許文献1のようなパディングコードのコードパターンが規定されるような規格に基づいたコード形式に準ずる標準汎用のデコーダからすれば、規格外の形式のコードとなる。そうすると、本来表示対象ではないデータ領域に規定外のデータコードが混入することになるから、標準汎用のデコーダにおいて想定外の挙動を示す恐れがある。
 また、開示する情報量よりサイズの大きな情報の場合はもとより、それと同程度のサイズの情報を秘匿する場合、標準のデコード処理で得られるはずの開示情報量と比較して不釣合いに大きなサイズの二次元コードとなることがある。そうすると、この二次元コードの利用者に不信感を与えたり情報秘匿を疑わせ得ることになる。
 以上のようなことから、開示対象である情報の他に秘匿対象である情報を隠蔽することができる新たな二次元コードが望まれる。また、この新たな二次元コードについて、適切に秘匿対象である情報を読み取ることが望まれる。
 本発明は、このような事情に鑑みてなされたものであり、開示対象である情報の他に秘匿対象である情報を隠蔽することのできる二次元コードを提供することを目的とする。また、新たな二次元コードから適切に秘匿対象である情報を読み取ることを目的とする。
 このような目的を達成するために本発明に係る二次元コード生成方法は、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含む。
 このようにして生成された二次元コードによれば、第1データコード語及び誤り訂正コード語の一部が第2データコード語で置換されてしまうものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
 また、本発明に係る二次元コード生成方法において、前記置換後データブロックは、前記置換後データブロックにおける前記第2データコード語の配置情報を含むヘッダデータコード語を備えることが望ましい。
 このようにして生成された二次元コードによれば、ヘッダデータコード語に基づいて適切に第2データコード語の位置を特定することができる。
 また、本発明に係る二次元コード生成方法において、前記第2データコード語の語数と前記ヘッダデータ語の語数との総語数は、前記誤り訂正コード語による誤り訂正数を超えないことが望ましい。
 このようにして生成された二次元コードによれば、誤り訂正コード語に基づいて、第2データコード語とヘッダデータコード語を適切に訂正して、確実に第1データコード語を求めることができる。
 また、本発明に係る二次元コード生成方法において、前記第2データコード語は当該第2データコード語の配置情報に基づいて不連続に配置されることが望ましい。
 このようにして生成された二次元コードによれば、第2データコード語を不連続に配置して、第2データコード語の隠蔽性を高めることができるとともに、配置情報により第2データコード語の配置を適切に特定することができる。
 また、本発明に係る二次元コード生成方法において、前記ヘッダデータコード語と前記第2データコード語のうち少なくともいずれかは誤り訂正符号語を含むことが望ましい。
 このようにして生成された二次元コードによれば、ヘッダデータコード語に誤り訂正符号を含むことで、ヘッダデータコード語に誤りを生じていた場合であっても、適切にこれを訂正することができる。また、第2データコード語に誤り訂正符号を含むことで、第2データコード語に誤りを生じていた場合であっても、適切にこれを訂正することができる。
 また、本発明に係る二次元コード生成方法において、前記置換後データブロックにおいて、前記第2データコード語の一部が前記ヘッダデータコード語で置換されており、前記第2データコード語には、当該第2データコード語に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれていることとしてもよい。
 このようにして生成された二次元コードによれば、ヘッダデータコード語に基づいて第2データコード語の位置を特定することができるとともに、第2データコード語は誤り訂正コードにおいてヘッダデータコード語で置換された部分の訂正を行うことができる。これにより、第2データコード語から適切に第2の情報を求めることができる。
 また、本発明に係る二次元コード生成方法において、前記第1データコード語の一部に、前記置換後データブロックにおける前記第2データコード語の配置情報を含む前記ヘッダデータコード語を含むこととしてもよい。
 このようにして生成された二次元コードによれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第1データコード語を求めることができる。そして、第1データコード語に含まれるヘッダデータコード語に基づいて、置換後データブロックにおける第2データコード語の位置を特定することができる。このようにすることで、第2データコード語を適切に抽出し、第2データコード語から第2の情報を抽出することができる。これにより、より隠蔽性を高めることもできる。
 また、本発明に係る二次元コード生成方法において、前記第1データコード語の一部に、前記置換後データブロックにおける前記ヘッダデータコード語の配置情報を含むヘッダ位置データコード語を含むこととしてもよい。
 このようにして生成された二次元コードによれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第1データコード語を求めることができる。そして、第1データコード語に含まれるヘッダ位置データコード語に基づいて、置換後データブロックに含まれるヘッダデータコード語の位置を特定することができる。さらに、特定したヘッダデータコード語の位置からヘッダデータコード語を抽出し、ヘッダデータコード語に基づいて、第2データコード語の位置を特定することができる。そして、第2データコード語に基づいて、第2の情報を抽出することができる。これにより、より隠蔽性を高めることもできる。
 また、前記二次元コードは所定のマスクパターンでマスキングされており、前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第2データコード語で置換することとしてもよい。
 このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、第2データコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有し得る。そのため、適用されるマスクパターンに応じて第2データコード語で置換する位置も変化させることができる。これにより、第三者にとっては第2データコード語の位置を特定することが困難となり、第2データコード語に含まれる第2の情報の抽出をより困難なものとすることができる。
 また、前記二次元コードは所定のマスクパターンでマスキングされており、前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第2データコード語で置換することとしてもよい。
 このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、ヘッダデータコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有しうる。そのため、適用されるマスクパターンに応じてヘッダデータコード語で置換する位置も変化させることができる。これにより、第三者にとってはヘッダデータコード語の位置の特定すら困難となる。第2データコード語の位置はヘッダデータコード語で特定されるものであるため、第2データコード語の抽出をより困難なものとすることができる。
 また、前記二次元コードはQRコードであり、前記マスクパターン参照子は、前記QRコードの形式情報に含まれることが望ましい。
 QRコードにおける形式情報は、JIS規格において標準マスクパターン(所定のマスクパターン)でマスキングされない。そのため、QRコードを読み出すことで適切に形式情報に含まれるマスクパターン参照子を読み出すことができる。そして、マスクパターン参照子で特定される所定のマスクパターンを用いて、マスキングを解除することができる。また、マスキングを解除した後に得られる置換後データコード語において、マスクパターン参照子を用いて第2データコード語の位置またはヘッダデータコード語の位置を適切に特定することができる。
 また、本発明に係る二次元コード生成方法において、前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第2データコード語で置換することとしてもよい。
 誤り訂正コード語は、第1データコード語に基づいて求められる。そのため、第1データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第1データコード語が異なれば置換位置も異なることとなるので、第三者にとっては第2データコード語の位置を特定することが困難となり、第2データ語に含まれる第2の情報の抽出をより困難なものとすることができる。
 また、本発明に係る二次元コード生成方法において、前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第2データコード語で置換することとしてもよい。
 誤り訂正コード語は、第1データコード語に基づいて求められる。そのため、第1データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第1データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。第2データコード語の位置はヘッダデータコード語で特定されるものであるため、第2データコード語の抽出をより困難なものとすることができる。
 また、本発明に係る二次元コード生成方法において、前記誤り訂正コード語は、リード・ソロモン符号であることが望ましい。
 このようにして生成された二次元コードによれば、誤り訂正コード語として強力な訂正能力を有するリード・ソロモン符号を用いるので、適切に第1データコード語を求めることができる。
 また、本発明に係る二次元コード生成方法において、さらに、生成した前記二次元コードを出力することを含むことが望ましい。
 このような二次元コード生成方法によれば、生成した二次元コードをたとえば印刷等により出力して対応するデコーダに読み取らせることができる。
 また、上記目的を達成するために本発明に係る二次元コードは、第1の情報を含む第1データコード語と、前記データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成される。
 このようにして生成された二次元コードによれば、第1データコード語及び誤り訂正コード語の一部が第2データコード語で置換されてしまうものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
 また、上記目的を達成するために本発明に係る二次元コード生成装置は、第1の情報を含む第1データコード語と、前記データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて二次元コードを生成する。
 このようにして生成された二次元コードによれば、第1データコード語及び誤り訂正コード語の一部が第2データコード語で置換されてしまうものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
 また、上記目的を達成するために本発明に係るプログラムは、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、をコンピュータに実行させる。
 このようにして生成された二次元コードによれば、第1データコード語及び誤り訂正コード語の一部が第2データコード語で置換されてしまうものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
 このような目的を達成するために本発明に係る二次元コード読み取り方法は、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求めることと、前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求めることと、を含むことが望ましい。
 このような二次元コード読み取り方法によれば、第1データコード語および訂正コード語の一部が第2データコード語で置換されているものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後データブロックから第2データコード語を抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることもできる。そして、適切に秘匿対象である情報を読み取ることができる。
 また、本発明に係る二次元コード読み取り方法において、前記置換後データブロックはヘッダデータコード語を含み、前記所定の位置は前記ヘッダデータコード語に基づいて特定されることが望ましい。
 このような二次元コード読み取り方法によれば、ヘッダデータコード語に基づいて適切に第2データコード語の位置を特定することができる。
 また、本発明に係る二次元コード読み取り方法において、前記第2データコード語の語数と前記ヘッダデータコード語の語数の総語数は、前記誤り訂正コード語による誤り訂正語数を超えないことが望ましい。
 このような二次元コード読み取り方法によれば、誤り訂正コード語に基づいて、第2データコード語とヘッダデータコード語を適切に訂正して、確実に第1データコード語を求めることができる。
 また、本発明に係る二次元コード読み取り方法において、前記ヘッダデータコード語には、前記第2データコード語の配置情報が含まれ、前記第2データコード語は前記配置情報に基づいて不連続に配置されることが望ましい。
 このような二次元コード読み取り方法によれば、第2データコード語を不連続に配置して、第2データコード語の隠蔽性を高めることができるとともに、配置情報により第2データコード語の配置を適切に特定することができる。
 また、本発明に係る二次元コード読み取り方法において、前記ヘッダデータコード語と前記第2データコード語のうち少なくともいずれかは誤り訂正符号語を含むことが望ましい。
 このような二次元コード読み取り方法によれば、ヘッダデータコード語に誤り訂正符号号を含むことで、ヘッダデータコード語に誤りを生じていた場合であっても、適切にこれを訂正することができる。また、第2データコード語に誤り訂正符号を含むことで、第2データコード語に誤りを生じていた場合であっても、適切にこれを訂正することができる。
 また、本発明に係る二次元コード読み取り方法において、前記置換後データブロックにおいて、前記第2データコード語の一部が前記ヘッダデータコード語で置換されており、前記第2データコード語には、自己に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれており、前記第2の情報を求めることは、前記ヘッダデータコード語に基づいて前記所定の位置を特定し、特定した前記所定の位置から前記ヘッダデータコード語で一部が置換された前記第2データコード語を求め、前記第2データコード語における誤り訂正コード語に基づいて前記第2データコード語を訂正し、訂正した第2データコード語から前記第2の情報を求めることを含むこととしてもよい。
 このような二次元コード読み取り方法によれば、ヘッダデータコード語に基づいて第2データコード語の位置を特定することができるとともに、第2データコード語は誤り訂正コードにおいてヘッダデータコード語で置換された部分の訂正を行うことができる。これにより、第2データコード語から適切に第2の情報を求めることができる。
 また、本発明に係る二次元コード読み取り方法において、前記第1データコード語の一部に前記ヘッダデータコード語を含んでおり、前記第2の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第2データコード語の位置を特定して前記第2データコード語を求め、前記第2データコード語から前記第2の情報を求めることを含むこととしてもよい。
 このような二次元コード読み取り方法によれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第1データコード語を求めることができる。そして、第1データコード語に含まれるヘッダデータコード語に基づいて、置換後データブロックにおける第2データコード語の位置を特定することができる。このようにすることで、第2データコード語を適切に抽出し、第2データコード語から第2の情報を抽出することができる。これにより、より隠蔽性を高めることができる。
 また、本発明に係る二次元コード読み取り方法において、前記第1データコード語の一部に前記ヘッダデータコード語の配置位置を示すヘッダ位置データコード語を含んでおり、前記第2の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記第1データコード語に含まれる前記ヘッダ位置データコード語を求め、抽出した前記ヘッダ位置データコード語に基づいて前記ヘッダデータコード語の位置を特定して前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第2データコード語の位置を特定して前記第2データコード語を求め、前記第2データコード語から前記第2の情報を求めることとしてもよい。
 このような二次元コード読み取り方法によれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第1データコード語を求めることができる。そして、第1データコード語に含まれるヘッダ位置データコード語に基づいて、置換後データブロックに含まれるヘッダデータコード語の位置を特定することができる。さらに、特定したヘッダデータコード語の位置からヘッダデータコード語を抽出し、ヘッダデータコード語に基づいて、第2データコード語の位置を特定することができる。そして、第2データコード語に基づいて、第2の情報を抽出することができる。これにより、より隠蔽性を高めることができる。
 また、本発明に係る二次元コード読み取り方法において、前記二次元コードは所定のマスクパターンでマスキングされており、前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第2データコード語を抽出することとしてもよい。
 このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、第2データコード語で置換された位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有し得る。そのため、適用されるマスクパターンに応じて第2データコード語で置換される位置も変化させられる。これにより、第三者にとっては第2データコード語の位置を特定することが困難となり、第2データコード語に含まれる第2の情報の抽出をより困難なものとすることができる。
 また、本発明に係る二次元コード読み取り方法において、前記二次元コードは所定のマスクパターンでマスキングされており、前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第2データコード語を抽出することとしてもよい。
 このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、ヘッダデータコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有しうる。そのため、適用されるマスクパターンに応じてヘッダデータコード語で置換される位置も変化させられる。これにより、第三者にとってはヘッダデータコード語の位置の特定すら困難となる。第2データコード語の位置はヘッダデータコード語で特定されるものであるため、第2データコード語の抽出をより困難なものとすることができる。
 また、本発明に係る二次元コード読み取り方法において、前記二次元コードはQRコードであり、前記マスクパターン参照子は、前記QRコードの形式情報に含まれることが望ましい。
 QRコードにおける形式情報は、JIS規格において標準マスクパターン(所定のマスクパターン)でマスキングされない。そのため、QRコードを読み出すことで適切に形式情報に含まれるマスクパターン参照子を読み出すことができる。そして、マスクパターン参照子で特定される所定のマスクパターンを用いて、マスキングを解除することができる。また、マスキングを解除した後に得られる置換後データコード語において、マスクパターン参照子を用いて第2データコード語の位置またはヘッダデータコード語の位置を適切に特定することができる。
 本発明に係る二次元コード読み取り方法において、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第2データコード語を抽出することとしてもよい。
 誤り訂正コード語は、第1データコード語に基づいて求められる。そのため、第1データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第1データコード語が異なれば置換位置も異なることとなるので、第三者にとっては第2データコード語の位置を特定することが困難となり、第2データ語に含まれる第2の情報の抽出をより困難なものとすることができる。
 本発明に係る二次元コード読み取り方法において、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第2データコード語を抽出することとしてもよい。
 誤り訂正コード語は、第1データコード語に基づいて求められる。そのため、第1データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第1データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。第2データコード語の位置はヘッダデータコード語で特定されるものであるため、第2データコード語の抽出をより困難なものとすることができる。
 また、本発明に係る二次元コード読み取り方法において、前記置換後データブロックに基づいて前記第1データコード語を求めることは、前記置換後データブロックに含まれる誤り訂正コード語を用いて前記置換後データブロックの誤り訂正を行うことが望ましい。
 このような二次元コード読み取り方法によれば、誤り訂正コード語を用いるので、適切に第1データコード語を求めることができる。
 また、本発明に係る二次元コード読み取り方法において、前記誤り訂正コード語は、リード・ソロモン符号であることが望ましい。
 このような二次元コード読み取り方法によれば、誤り訂正コード語として強力な訂正能力を有するリード・ソロモン符号を用いるので、適切に第1データコード語を求めることができる。
 また、本発明に係る二次元コード読み取り方法において、さらに、前記第1の情報と前記第2の情報のうち少なくともいずれかを出力することが望ましい。
 このような二次元コード読み取り方法によれば、デコードした第1の情報または第2の情報を取得することができる。
 また、上記目的を達成するために本発明に係る二次元コード読み取り方法は、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックに基づいて前記第1データコード語と前記誤り訂正コード語とを含む前記データブロックを求めることと、前記データブロックと前記置換後データブロックとに基づいて、前記第2データコード語を求め、当該第2データコード語から前記第2の情報を求めることと、を含むことが望ましい。
 このような二次元コード読み取り方法によれば、第1データコード語および誤り訂正コード語の一部が第2データコード語で置換されているものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、置換後データブロックを訂正する前のデータと、訂正した後のデータとを比較し差分をとることで求めることができる。そして、求めた第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、適切に秘匿対象である情報を読み取ることができる。
 また、本発明に係る二次元コード読み取り方法において、前記データブロックと前記置換後データブロックとに基づいて前記第2データコード語を求めることは、前記データブロックと前記置換後データブロックとの間で異なる部分を前記置換後データブロックから抽出することを含むことが望ましい。
 このような二次元コード読み取り方法によれば、両者の比較を行って異なる部分を第2データコード語として特定することができる。
 また、本発明に係る二次元コード読み取り方法において、前記置換後データブロックに基づいて前記第1データコード語と前記誤り訂正コード語とを含む前記データブロックを求めることは、前記置換後データブロックに含まれる誤り訂正コード語を用いて前記置換後データブロックの誤り訂正を行うことが望ましい。
 このような二次元コード読み取り方法によれば、誤り訂正コード語を用いて置換後データブロックの誤り訂正を行い、置換前のデータブロックを復元することができる。
 また、本発明に係る二次元コード読み取り方法において、求められた前記データブロックと前記置換後データブロックとに基づいて、さらに前記第1データコード語から前記第1の情報を求めることが望ましい。
 このような二次元コード読み取り方法によれば、開示対象で或る情報を第1の情報とすることで、開示対象である情報と秘匿対象である情報とを適切に得ることができる。
 また、上記目的を達成するために本発明に係る二次元コード読み取り装置は、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取る読み取り部と、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求め、前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求める制御部と、を備えることが望ましい。
 このような二次元コード読み取り装置によれば、第1データコード語および訂正コード語の一部が第2データコード語で置換されているものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後データブロックから第2データコード語を抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることもできる。そして、適切に秘匿対象である情報を読み取ることができる。
 また、上記目的を達成するために本発明に係るプログラムは、第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求めることと、前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求めることと、をコンピュータに実行させることが望ましい。
 このようなプログラムによれば、第1データコード語および訂正コード語の一部が第2データコード語で置換されているものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後データブロックから第2データコード語を抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることもできる。そして、適切に秘匿対象である情報を読み取ることができる。
 以上のように構成された二次元コードによれば、第1データコード語及び誤り訂正コード語の一部が第2データコード語で置換されてしまうものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
 また、以上のような二次元コード読み取り方法によれば、第1データコード語および訂正コード語の一部が第2データコード語で置換されているものの、第1データコード語については、訂正コード語を用いて訂正して復元することができる。また、第2データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後データブロックから第2データコード語を抽出することができる。そして、抽出した第2データコード語に基づいて第2の情報を得ることができる。このとき、第2の情報に秘匿対象である情報を含ませることもできる。そして、適切に秘匿対象である情報を読み取ることができる。
QRコードシンボル1の説明図。 第1実施形態における拡張エンコーダ10のブロック図である。 第1実施形態におけるRSブロックの概要図である。 第1実施形態におけるQRコードシンボル生成方法のフローチャートである。 RSブロックの説明図である。 隠蔽情報語の説明図である。 第1実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。 拡張デコーダ20のブロック図である。 第1実施形態におけるQRコードシンボル読み取り方法のフローチャートである。 隠蔽情報語の抽出方法の説明図である。 情報本体の抽出方法の説明図である。 第1実施形態における手法でRSブロックの一部を置換したときの第2の説明図である。 第1実施形態における手法でRSブロックの一部を置換したときの第3の説明図である。 第2実施形態におけるRSブロックの概念図である。 第2実施形態におけるヘッダおよび隠蔽情報語の説明図である。 第2実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。 第2実施形態による手法でRSブロックの一部を置換したときの第2の説明図である。 第2実施形態による手法でRSブロックの一部を置換したときの第3の説明図である。 第3実施形態による手法でRSブロックの一部を置換したときの説明図である。 第4実施形態による手法でRSブロックの一部を置換したときの説明図である。 第5実施形態による手法でRSブロックの一部を置換したときの説明図である。 第6実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。 第6実施形態による手法でRSブロックの一部を置換したときの第2の説明図である。 第6実施形態による手法でRSブロックの一部を置換したときの第3の説明図である。 一部欠落したRSブロックの説明図である。 先端欠落RSブロックの補完の説明図である。 後端欠落RSブロックの補完の説明図である。 両端欠落RSブロックの補完の説明図である。 第7実施形態におけるQRコードシンボル生成方法のフローチャートである。 第7実施形態による手法でRSブロックの一部を置換したときの説明図である。 第7実施形態におけるQRコードシンボル読み取り方法のフローチャートである。 第8実施形態による手法でRSブロックの一部を置換したときの説明図である。 第9実施形態による手法でRSブロックの一部を置換する手法を説明する第1の図である。 第9実施形態による手法でRSブロックの一部を置換する手法を説明する第2の図である。
 ===第1実施形態===
 以下に、第1実施形態における二次元コードについて説明を行う。ここでは、二次元コードの一例としてQRコードを採用して説明するが、二次元コードは、データマトリックスコード、マキシコード、ベリコード、カルラコード、CPコード等であってもよい。
 また、以下の説明で特段のことわりのない場合には、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル-QRコード-」(以下、単に「JIS規格」ということがある)に準ずる。また、このJIS規格に準ずるエンコーダを標準エンコーダといい、JIS規格に準ずるデコーダを標準デコーダという。また、第1実施形態における隠蔽情報を取り扱うことができるエンコーダを拡張エンコーダといい、デコーダを拡張デコーダという。そして、これらを区別する。
 また、以下の説明において、「コード語」は、8ビット長として説明するが、システムに応じて、16ビット長とすることもできるし、1ビット長など他の長さを有するものとすることもできる。
 図1は、QRコードシンボル1の説明図である。QRコードシンボル1は、1型から40型まで様々なサイズが用意されているが、ここでは、一例として型番「2」を例に各機能について説明する。
 QRコードシンボル1は、機能パターンと符号化領域を有する。機能パターンは、QRコードのモジュール内での復号化を補助するために必要なQRコードシンボル位置の検索や特性の識別に必要なパターンである。符号化領域は、必要となる情報が書き込まれている領域である。
 機能パターンは、位置検出パターンFP、分離パターンSP、タイミングパターンTP、位置合わせパターンAP、および、クワイエットゾーンQZを有する。
 位置検出パターンFPは、QRコードの少なくとも3つの隅に配置されるパターンである。読み取り時において、3つの位置検出パターンFPを識別することで、QRコードシンボル1の方向や位置を正しく認識可能とする。
 分離パターンSPは、位置検出パターンFPの周りに配置される1モジュール幅の明モジュールである。これにより、位置検出パターンFPをQRコードシンボル1から区別することができるようになる。
 モジュールMは、QRコードシンボル1を構成する単位セルである。原則として、1ビットが1モジュールに相当する。
 タイミングパターンTPは、暗モジュールと明モジュールが1モジュールずつ直線状に交互に配置されたパターンである。タイミングパターンTPによって、QRコードシンボル1のモジュール数を認識可能となるため、これによりQRコードの型番を識別することができる。
 位置合わせパターンAPは、QRコードの型番によって決められた位置に配置されるパターンである。位置合わせパターンAPは、大きなモジュールの場合、QRコードシンボル1の位置の検索を補助する働きをする。
 クワイエットゾーンQZは、QRコードの周囲に設けられる最低4モジュール幅の明モジュール領域である。
 符号化領域は、データおよび誤り訂正コード語と、形式情報FIと、型番情報VIを有する。データおよび誤り訂正コード語は、実際のデータおよびデータが読み取れなかった場合の誤り訂正用の誤り訂正コード語を配置する。形式情報FIは、QRコードシンボル1に適用する誤り訂正レベルおよび使用するマスク処理パターンに関する情報を有し、符号化領域を復号化するのに必要な符号化パターンである。型番情報VIは、QRコードの型番の情報を有する。
 図2は、第1実施形態における拡張エンコーダ10のブロック図である。拡張エンコーダ10は、表示対象である情報と隠蔽情報とをQRコードシンボル1に変換する装置である。拡張エンコーダ10は、制御部11と表示装置13と印刷装置14と入力装置15を備える。
 制御部11は、演算部11aと記憶部11bを備える。演算部11aは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部11bは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部11bには、後述するQRコード生成方法を実行するためのプログラムが記憶されている。
 表示装置13は、データの入力等に際し必要な表示機能を担う。また、表示装置13は、生成されたQRコードシンボル1を表示により出力する。印刷装置14も、生成されたQRコードシンボル1を印刷により出力する。また、入力装置15は、データの入力および拡張エンコーダ10の操作に使用される。
 拡張エンコーダ10の構成は、一般的なコンピュータ、携帯電話、および、スマートフォン等に、後述するQRコード生成方法を実行するためのプログラムをインストールすることによって実現することができる。
 図3は、第1実施形態におけるRSブロックの概要図である。まず、図3を参照しつつ、第1実施形態におけるQRコードのデータフォーマットの概要について説明する。図3には、誤り訂正処理単位として、RS(リード・ソロモン)ブロックが示されている。QRコードシンボル1には、1または複数のRSブロックが含まれる。そして、RSブロックを1つの誤り訂正処理単位としている。
 なお、ここで説明する実施形態においては、リード・ソロモン(RS)符号による誤り訂正方式を採用しているため、誤り検出訂正演算の処理単位ブロックの一例として、「RSブロック」と記載している。
 RSブロックは、表示対象である情報本体と、終端符号と、パディングコード語とを有するデータコード語(第1データコード語に相当する)を含む。また、RSブロックは、訂正コード語としてのRS(リード・ソロモン)符号(訂正コード語に相当する)を含む。情報本体とは、標準デコーダであってもQRコードシンボル1を読み取ったときにデコード可能な情報である。終端符号は、情報本体の終端を表す符号である。パディングコード語は、情報本体のコード語の総数がQRコードシンボル1の容量に満たない場合、空のコード語部分を充填する目的で使用される仮のコード語である。RS符号は、RSブロックを単位として誤り訂正するために付加される符号である。
 QRコードでは、「L」「M」「Q」「H」の4段階の誤り訂正レベルが選択可能である。誤り訂正レベル「L」では、全体の語数に対して7%の誤り訂正能力を有する。例えば、RSブロックの語数を100%とした場合、そのうちの7%の誤り訂正能力を有する。誤り訂正レベル「M」では、全体の語数に対して15%の訂正能力を有する。誤り訂正レベル「Q」では、全体の語数に対して25%の訂正能力を有する。誤り訂正レベル「H」では、全体の語数に対して30%の誤り訂正能力を有する。第1実施形態では、例えば、最高クラスの誤り訂正能力である「H」を利用して、隠蔽情報をQRコードに隠蔽する。ただし、隠蔽される隠蔽情報語の語数に応じて誤り訂正レベルを変更してもよい。
 第1実施形態においてQRコードに情報を隠蔽する手法の概念は、次の通りである。図3には、隠蔽情報語(第2データコード語に相当する)が示されている。第1実施形態では、この隠蔽情報語でRSブロックの一部を置換する(以下、この「置換」を「上書き」ということがある)。このように一部を置換した場合であっても、標準デコーダでは、置換後の情報本体部分をRS符号を用いて訂正できる。そして訂正後の情報本体部分を抽出して表示することができる。一方、隠蔽情報語は、RS符号により訂正されて捨てられてしまう情報であるため、標準デコーダでは表示されないことになる。
 これに対し、第1実施形態に対応する拡張デコーダ20では、後述するように、置換後RSブロックから隠蔽情報語を抽出する。そして、その後、RS符号により訂正を行って情報本体部分を抽出する。以上の原理によりQRコードシンボル1に情報を隠蔽する。
 次に、第1実施形態における具体的なQRコードの生成方法について説明する。
 図4は、第1実施形態におけるQRコードシンボル生成方法のフローチャートである。図5は、RSブロックの説明図である。図6は、隠蔽情報語の説明図である。以下の説明において、特段のことわりがない場合、QRコードシンボル1へのエンコード手法は、JIS規格による手法が採用される。なお、QRコードシンボル1は、複数のRSブロックを有する場合がほとんどであるが、ここでは説明の容易のために、1つのRSブロックを例示して説明を行う。また、以下に示される内容は容易な説明を行うための例示であるので、各コード語長は実際のものと異なることがある。
 また、第1実施形態の前提として、記憶部11bには、後述する隠蔽情報語で置換される開始位置を表す「オフセット情報」と、隠蔽情報語の「長さ(語数)情報」が記憶されていることとする。
 まず、QRコードシンボル1に埋め込まれる情報本体および隠蔽情報語が取り込まれる(S102)。ここでは、情報本体のコード語を「TOKYO<cr>MINATO<cr>JPN」とし(図5)、隠蔽情報語を「00090012345678」としている(図6)。情報本体と隠蔽情報語の取り込みは、入力装置14を介して行ってもよいし、記憶部11bに予め記憶された情報を用いてもよい。
 次に、情報本体および隠蔽情報語に基づいてQRコードシンボル1の型番が決定される(S104)。QRコードシンボル1は型番に応じてトータルのコード語数が定められている。トータルのコード語数は、情報本体の語数を含むデータコード語数と、訂正コード語数と、の和である。また、QRコードシンボル1の型番に応じて、データコード語と訂正コード語からなるRSブロックの大きさと数が定められている。そして、誤り訂正は、RSブロックを単位として行われる。
 例えば、誤り訂正レベルが「H」であって型番が「4」の場合、トータルのコード語数は「100」と定められている。そして、4つのRSブロックを含むことが定められている。1つのRSブロックにおけるデータコード語数は「9」であり、訂正コード語数は「16」である。
 データコード語数「9」と訂正コード語数「16」の和は「25」であり、このようなRSブロックが4つあるため、型番が「4」のQRコードシンボルは、25×4=100の総コード語数を有することになる。
 また、このときの誤り訂正語数は、RSブロック毎に「8」である。これは、データコード語数「9」のうちの「8」を訂正する能力を有することを表す。RSブロックは4つであったから、4×8=32の語数の総訂正能力を有することになる。100語のうち32語を訂正可能としているので、全体からすると32%の訂正能力を有することになる。
 隠蔽情報語による置換は、RSブロック毎に、RSブロックの誤り訂正数を超えない範囲で行われる。上記の場合であると、RSブロック毎にコード語数「8」の置換が許容されることになり、全体では「32」のコード語数の置換が許容される(「総置換許容語数)と呼ぶことがある)ことになる。
 このような演算に基づいて、隠蔽情報語数が総置換許容語数を上回らず、かつ、情報本体の語数がデータコード語数を上回らない最小サイズのQRコードシンボル1の型番が選択される。
 次に、情報本体のコード語に基づいてRSブロックが生成される(S106)。RSブロックを生成するため、情報本体のコード語が複数のブロックに分割される。そして、各ブロックに対して誤り訂正コード語が生成され、生成された訂正コード語が対応するコード語の後に付加される。そして、RSブロックが生成される。なお、訂正コード語の生成手法については、JIS規格に準ずることができる。
 図5には、情報本体と終端符号と訂正コード語の一例が示されている。ここでは、情報本体のコード語としてプレインなテキスト情報が示されている。終端符号は、例えば、「0000」のビット列を採用することができる。そして、情報本体を含むコード語に基づいて生成されたRS符号が付加され、RSブロックが作成されている。
 このようにして生成されたRSブロックの一部が隠蔽情報語で置換される(S108)。
 図7は、第1実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。図7には、前述のRSブロックと、隠蔽情報語が示されている。そして、前述の隠蔽情報語の長さ情報とオフセット情報に基づき、第1実施形態では、図7に示されるように、RSブロックの先頭から隠蔽情報語で置換される。
 このように、RSブロックの一部が隠蔽情報語で置換されると、情報本体の一部が消失してしまうことになる。しかしながら、RSブロック単位で訂正を行うことができるため、標準デコーダでは、置換後の情報本体部分をRS符号で訂正して適切に抽出し、表示できるのである。
 そして、隠蔽情報語で置換された部分は、QRコードシンボル1の汚損等による誤りであるとみなされて捨てられてしまう情報となるので、標準デコーダでは表示することができない。一方、拡張デコーダ20では、後述するように、置換後RSブロックから隠蔽情報語を抽出する。そして、その後、RS符号により訂正を行って情報本体部分を抽出する。そして、抽出された隠蔽情報語と情報本体部分を表示するのである。
 次に、置換後RSブロックに基づいてQRコードシンボル1を作成する(S110)。RSブロックに基づいてQRコードシンボル1を生成する手法は、JIS規格における標準的なQRコード生成手法と同様のものを採用することができる。このようにすることで、QRコードシンボル1を生成することができる。
 なお、上記では説明の容易のために、情報本体はプレインなテキストデータとして表したが、情報本体のデータ語自体をインターリーブしたり、暗号化することとしてもよい。そして、インターリーブ後の情報本体や暗号化後の情報本体に対して訂正コード語を付加して置換前RSブロックを生成することとしてもよい。また、インターリーブや暗号化は、コード語単位でなくビット単位で行われることとしてもよい。
 また、隠蔽情報語についてもインターリーブしたり、暗号化することとしてもよい。また、隠蔽情報語について誤り検知または誤り訂正のための符号化(例えば、RS符号化など)がなされていることとしてもよい。
 次に、このようにして生成されたQRコードシンボル1のデコード手法について説明する。
 図8は、拡張デコーダ20のブロック図である。拡張デコーダ20は、QRコードシンボル1を読み取り、QRコードシンボル1に含まれる表示対象である情報と隠蔽情報語とを展開する装置である。拡張デコーダ20は、制御部21と撮像装置22と表示装置23と印刷装置24と入力装置25を備える。
 制御部21は、演算部21aと記憶部21bを備える。演算部21aは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部21bは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部21bには、後述するQRコード読み取り方法を実行するためのプログラムが記憶されている。
 撮像装置22は、QRコードシンボル1を撮像するための装置であって、例えば、CCDカメラなどである。
 表示装置23は、データの入力等に際し必要な表示機能を担う。また、表示装置23は、QRコードから展開された情報を表示により出力する。印刷装置24も、展開された情報を印刷により出力する。また、入力装置25は、データの入力および拡張デコーダ20の操作に使用される。
 拡張デコーダ20の構成は、撮像装置22を備えていれば、一般的なコンピュータ、携帯電話、および、スマートフォンに、後述するQRコード読み取り方法を実行するためのプログラムをインストールすることによって実現することができる。また、前述の拡張エンコーダ10と拡張デコーダ20とを一体化して実現することも可能である。
 図9は、第1実施形態におけるQRコードシンボル読み取り方法のフローチャートである。以下の説明において、特段のことわりがない場合、QRコードシンボル1のデコード手法は、JIS規格による手法が採用される。
 また、第1実施形態の前提として、デコーダ20の記憶部21bには、隠蔽情報語の「長さ(語数)情報」、および、隠蔽情報語で置換される開始位置を表す「オフセット情報」が記憶されていることとする。
 まず、QRコードシンボル1の読み取りが行われる(S202)。そして、読み取ったQRコードシンボル1に基づいて、複数のRSブロックが展開される(S204)。これら複数のRSブロックへの展開は、JIS規格に準ずるものを採用することができる。これにより、たとえば、前述の図7に示された置換後RSブロックが取得される。
 次に、取得された置換後RSブロックから情報本体のコード語および隠蔽情報語が抽出される(S206)。
 図10は、隠蔽情報語の抽出方法の説明図である。図10には、置換後RSブロックと隠蔽情報語が示されている。
 置換後RSブロックは、前述のように、QRコードシンボルを読み取り、JIS規格に準じて展開することにより取得することができる。デコーダ20は、記憶部21bに記憶されている隠蔽情報語のオフセット情報と長さ情報とに基づいて、置換後RSブロックにおける隠蔽情報語の位置を特定する。そして、特定した位置から隠蔽情報語を抽出する。
 図11は、情報本体の抽出方法の説明図である。デコーダ20は、置換後RSブロックの誤り訂正を行うことにより、置換前RSブロックを取得する。そして、置換前RSブロックの先頭から終端符号までの情報を抽出し、抽出したデータを情報本体とする。
 次に、得られた情報本体のコード語と隠蔽情報語が出力される(S208)。これらの出力対象は、表示装置23であってもよいし、プリンターなどの印刷装置24であってもよい。
 なお、前述のように、情報本体のデータ語自体がインターリーブされている場合には、その後、元の順序となるように所定の手法でデータの並び替えが行われる。また、暗号化されていた場合には、所定の復号化方法で復号が行われる。
 次に、比較例として、標準デコーダで第1実施形態におけるQRコードシンボル1を読み取ったときの出力結果について説明する。標準デコーダでQRコードシンボル1を読み取ると、置換後RSブロックのRS符号に基づいて、RSブロック全体の訂正が行われる。そして、情報本体部分も訂正がなされ、訂正後の情報本体が標準デコーダに表示される。標準デコーダには、前述の拡張デコーダ20のように、置換後RSブロックから隠蔽情報語を抽出する機能はないから、情報本体のみが抽出可能であり、隠蔽情報語を抽出することはできない。
 また、比較例として、一般的なQRコードシンボルを拡張デコーダ20で読み取ったときの出力結果について説明する。拡張デコーダ20で一般的なQRコードシンボルを読み取ると、これに基づいてRSブロックを取得することができる。一般的なQRコードシンボルから取得されたRSブロックには隠蔽情報語は含まれていない。しかしながら、RSブロックを取得した時点において、拡張デコーダ20は、読み取ったシンボル1が第1実施形態におけるQRコードシンボルであるのか一般的なQRコードシンボルであるのか判定することができない。
 そのため、拡張デコーダ20は、第1実施形態における手法同様に、RSブロックの隠蔽情報語が配置される位置から隠蔽情報語としてデータコード語を抽出する。その後、RSブロックのRS符号に基づいて、RSブロック全体の訂正を行う。これにより、情報本体部分の訂正が行われ、訂正後の情報本体が拡張デコーダ20に表示される。
 隠蔽情報語として読み取ったコード語が隠蔽情報語であるのか否かの判定は、訂正前のRSブロックと訂正後のRSブロックとの間に所定割合以上の差異があったときには隠蔽情報語であったと判定(すなわち、QRコードシンボルは第1実施形態におけるQRコードシンボルであると判定)し、所定割合以上の差異がなかったときには隠蔽情報語ではなかったと判定(すなわち、QRコードシンボルは一般的なQRコードシンボルであると判定)して隠蔽情報語を表示しないこととすることができる。これは、隠蔽情報語として置換が行われている場合には、置換前RSブロックと置換後RSブロッとの間の所定割合以上の差異が確実に生ずるものであるという理由に起因する。
 また、さらなる比較例として、仮に、一般的なQRコードシンボルを生成した後に、特定の隠蔽情報に対応する部分に限って図形パターンの生成処理を行って、図形パターンの上書きを行う場合を考察する。このような場合、二次元パターンを生成した後に特定の図形パターンの生成処理を行うことになるため、別途、特定の図形パターンの生成処理のための異なる処理系を用意する必要がある。また、QRコードシンボルを生成した後に、さらに上書きする図形パターンの生成処理を行う必要がある。このような処理は、複数回図形パターンの生成処理を行っていることになるから処理速度の面から望ましくない。
 これに対し、第1実施形態であれば、拡張エンコーダ10がデータコード語レベルで置換前データブロックを生成した後、ただちに置換後データブロックを生成する。この処理は、単一の処理系(制御部11)のメモリ(記憶部11b)上で行われる。そして、この置換後データブロックに対して、1回のみ最終的なQRコードシンボル1の生成処理を行うこととしている(S110)。このようにデータコード語レベルで必要な処理を行うこととしているため、図形パターン生成レベルで必要な処理を行うよりも効率的かつ高速に最終的なQRコードシンボル1の生成を行うことができる。なお、このような利点は、後述する実施形態においても同様に言えることでもある。
 図12は、第1実施形態における手法でRSブロックの一部を置換したときの第2の説明図である。前述の手法では、RSブロックの先頭から順に隠蔽情報語が置換されていた。しかしながら、リード・ソロモン符号による訂正能力を勘案すれば、RSブロックのいずれの位置を隠蔽情報語で置換してもよい。
 この場合、予めRSブロックの先頭からいくつ目の位置から隠蔽情報語で置換されるかを決めておくことができる。例えば、図12に示すように、RSブロックの先頭から7語目の位置から13語分の隠蔽情報語で置換することとしてもよい。この場合、拡張エンコーダ10の記憶部11bおよび拡張デコーダ20の記憶部21bには、オフセット情報として置換後RSブロックの予め決められた7語目の位置から隠蔽情報語が開始されることが記憶されている。また、隠蔽情報語の長さ情報として、13語分の長さであることが記憶されている。このような場合であっても、隠蔽情報語の語数がRS符号による訂正可能語数よりも少ないことから、訂正を行うことで適切に置換前RSブロックを得ることができる。そして、置換前RSブロックから情報本体を抽出することができる。
 なお、このとき、隠蔽情報語の最終語において所定の分離符号を付加することとして、置換される隠蔽情報語の最終端を規定することとしてもよい。
 図13は、第1実施形態における手法でRSブロックの一部を置換したときの第3の説明図である。ここでは、複数に分離した隠蔽情報語でRSブロックを置換する。
 この場合、予めRSブロックのどの位置が隠蔽情報語で置換されるかを複数箇所決めておくことができる。例えば、図13に示すように、RSブロックの先頭から3語目の位置から3語分の隠蔽情報語で置換し、RSブロックの先頭から8語目の位置から2語分の隠蔽情報語で置換し、RSブロックの先頭から11語目の位置から1語分の隠蔽情報語で置換し、RSブロックの先頭から16語目の位置から4語分の隠蔽情報語で置換し、RSブロックの先頭から22語目の位置から3語分の隠蔽情報語で置換することとしてもよい。
 この場合、拡張エンコーダ10の記憶部11bと拡張デコーダ20の記憶部21bには、オフセット情報および長さ情報として上記の情報が記憶されているものとする。このようにすることで、拡張デコーダ20は、このように予め特定された位置から、それぞれの隠蔽情報語を抽出することができる。また、この場合も隠蔽情報語の語数がRS符号による訂正可能語数よりも少ないことから、訂正を行うことで適切に置換前RSブロックを得ることができる。そして、置換前RSブロックから情報本体を抽出することができる。
 ===第2実施形態===
 前述の第1実施形態では、隠蔽情報語のオフセット情報、および、長さ情報などの配置に関する情報(以下、配置情報ということがある)が、予め拡張エンコーダ10の記憶部11b、および、拡張デコーダ20の記憶部21bに記憶されていることしていた。第2実施形態では、ヘッダデータコード語(図中において「ヘッダ」)にこれら配置情報が記録される。そして、第2実施形態では、さらにこのヘッダデータコード語が置換後RSブロックに含まれているものとしている。
 図14は、第2実施形態におけるRSブロックの概念図である。図14を前述の第1実施形態における図3と比較すると分かるように、第2実施形態では、拡張エンコーダ10が、置換前RSブロックの一部をヘッダデータコード語と隠蔽情報語とで置換し、置換後RSブロックを生成する。
 第2実施形態において、ヘッダデータコード語と隠蔽情報語による置換は、RSブロックの誤り訂正数を超えない範囲で行われる。すなわち、ヘッダデータコード語の語数と隠蔽情報語の語数との総語数は、RSブロックの誤り訂正数を超えない。
 図14に示されるヘッダデータコード語には、前述のように隠蔽情報語の配置情報が含まれる。よって、このヘッダデータコード語を参照することにより、隠蔽情報語の開始位置およびその長さ(語数)を特定することができる。なお、ヘッダデータコード語の位置は予め決められているものとする。また、さらにヘッダデータコード語は、隠蔽情報語のフォーマットに関する情報を含むことができる。隠蔽情報語のフォーマットに関する情報には、仮に、隠蔽情報語を暗号化したときにおける暗号鍵の情報や、隠蔽情報語をインターリーブしたときにおける配置入れ替えに関する情報が含まれる。また、隠蔽情報語について誤り検知または誤り訂正のための符号化がなされている場合には、誤り検知または誤り訂正の手法に関する情報が含まれる。
 図15は、第2実施形態におけるヘッダデータコード語および隠蔽情報語の説明図である。図15には、ヘッダデータコード語と隠蔽情報語が示されており、隠蔽情報語の一部に訂正符号語が含まれることが示されている。
 図16は、第2実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。図16には、RSブロックと隠蔽情報語とヘッダデータコード語が示されている。そして、ここでは、図16に示されるように、RSブロックは、拡張エンコーダ10により、その先頭から隠蔽情報語で置換される。また、RSブロックは、その後端がヘッダデータコード語で置換される。そして、このヘッダデータコード語には、隠蔽情報語の配置情報(この場合、先頭から開始(すなわち、オフセットがゼロである)すること、および、11語の長さを有すること)が含まれている。
 このように、RSブロックの一部が隠蔽情報語で置換されると、情報本体および訂正コード語の一部が消失してしまうことになる。しかしながら、RSブロック単位で訂正を行うことができるため、標準デコーダでは、置換後の情報本体部分をRS符号で訂正して適切に抽出し、表示できる。そして、隠蔽情報語で置換された部分は、QRコードシンボル1の汚損等による誤りであるとみなされて捨てられてしまう情報となるので、標準デコーダでは表示することができない。
 一方、拡張デコーダ20では、置換後RSブロックから隠蔽情報語を抽出する。その際、ヘッダデータコード語から隠蔽情報語の位置を特定するための配置情報を取得する。そして、その配置情報に基づいて隠蔽情報語を抽出する。なお、隠蔽情報語には、訂正符号語が付加されているため、仮に、隠蔽情報語に汚損があったとしても、訂正符号語を用いてこれを訂正することもできる。
 また、隠蔽情報語についてインターリーブされている場合には、ヘッダデータコード語に含まれるインターリーブ手法についての情報に基づいて、元の順序に並べ替えを行うことができる。また、情報本体についてインターリーブされている場合にも、ヘッダデータコード語に含まれるインターリーブ手法についての情報に基づいて、元の順序に並べ替えを行うこともできる。また、隠蔽情報語について暗号化が行われている場合には、ヘッダデータコード語に含まれる暗号鍵等に基づいて復号化を行うことができる。また、前述のように、隠蔽情報語について誤り検知または誤り訂正のための符号化(例えば、RS符号化など)がなされている場合には、ヘッダデータコード語に含まれる情報に基づいて誤り訂正の手法を特定することができる。
 このようにして隠蔽情報語を抽出した後、拡張デコーダ20は、置換後RSブロックの訂正を行って置換前RSブロックを求める。そして、置換前RSブロックに含まれる情報本体部分を抽出する。そして、抽出された隠蔽情報語と情報本体部分を表示する。
 図17は、第2実施形態による手法でRSブロックの一部を置換したときの第2の説明図である。前述の図16の手法では、RSブロックの先頭から順に隠蔽情報語で置換されていた。しかしながら、図17に示すように、先頭以外の位置から隠蔽情報語で置換することとしてもよい。
 図17に示されるような場合、RSブロックの9語目から隠蔽情報語の置換が開始されることがヘッダデータコード語中のオフセット情報に含まれている。また、隠蔽情報語が11語分の長さを有することがヘッダデータコード語中の長さ情報に含まれている。これにより、ヘッダデータコード語を参照することで、第1実施形態のときと同様に隠蔽情報語を適切に抽出することができる。
 これは、前述の図13のときのように、隠蔽情報語が分散して置換される場合にも同様に適用することができる。
 図18は、第2実施形態による手法でRSブロックの一部を置換したときの第3の説明図である。このとき、ヘッダデータコード語の位置はRSブロックの13語目から開始して2語の長さを有することが予め決められているものとする。このように、隠蔽情報語が分散して置換される場合には、ヘッダデータコード語には複数の隠蔽情報語の配置情報を含むことになる。このようにすることで、ヘッダデータコード語を参照することで適切に隠蔽情報語を抽出することができる。
 なお、ヘッダデータコード語の位置は予め決められていたものとして説明を行ったが、ヘッダデータコード語の前後にデリミタを設けることとしてヘッダデータコード語の位置を特定することとしてもよい。
 なお、読み取ったQRコードシンボルが一般的なQRコードシンボルであるか第2実施形態におけるQRコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第2実施形態におけるQRコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ20は、隠蔽情報語を表示することとすることができる。また、一般的なQRコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ20は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
 ===第3実施形態===
 図19は、第3実施形態による手法でRSブロックの一部を置換したときの説明図である。図19には、置換前RSブロックと隠蔽情報語と暫定置換後RSブロックとヘッダデータコード語と置換後RSブロックが示されている。
 第3実施形態において、拡張エンコーダ10は、置換前RSブロックの一部を隠蔽情報語で置換する。そして、暫定置換後RSブロックを生成する。なお、隠蔽情報語には、後述するように、ヘッダデータコード語によって置換されてもそれを訂正しうるだけの訂正能力を有する訂正符号語が含まれている。
 次に、拡張エンコーダ10は、暫定置換後RSブロックにおいて隠蔽情報語で置換した部分の一部をヘッダデータコード語で置換する。そして、置換後RSブロックを生成する。その後、拡張エンコーダ10は、生成された置換後RSブロックに基づいてQRコードシンボルを生成する。
 次に、デコード手法について説明する。第3実施形態における拡張デコーダ20は、このようにして生成されたQRコードシンボルを読み取り、置換後RSブロックを展開する。そして、拡張デコーダ20は、ヘッダデータコード語を抽出する。ヘッダデータコード語の位置は、第1実施形態および第2実施形態のときと同様に、予め決められた位置としておくこともできるし、ヘッダデータコード語の前後にデリミタを設けることとしてその位置を特定することとしてもよい。
 このようにして抽出されたヘッダデータコード語に含まれる配置情報に基づいて、隠蔽情報語の位置が特定される。そして、隠蔽情報語が抽出される。隠蔽情報語には、前述のように訂正符号語が含まれているため、この訂正符号語に基づいて訂正を行うことにより、ヘッダデータコード語によって置換された部分も適切に訂正される。そして、ヘッダデータコード語によって置換される前の隠蔽情報語が適切に抽出される。
 このようにすることで、まずは暫定置換後RSブロックを得ることができる。次に、デコーダ20は、置換前RSブロックに含まれる訂正符号語を用いて訂正を行う。これにより、隠蔽情報語によって置換された部分も適切に訂正され、置換前RSブロックを得ることができる。そして、拡張デコーダ20は、置換前RSブロックから情報本体を抽出することができる。
 第3実施形態において、隠蔽情報語の語数は、置換前RSブロックに含まれる訂正符号語による訂正可能語数を超えない。また、第3実施形態において、ヘッダデータコード語の語数は、隠蔽情報語に含まれる訂正符号語による訂正可能語数を超えない。これにより、適切に隠蔽情報語および情報本体を抽出することができる。
 第3実施形態において特徴的なのは、このように隠蔽情報語で置換した部分の一部をヘッダデータコード語で置換する点である。このようにすることで、ヘッダデータコード語と隠蔽情報語が重なり合うこととなるので、ヘッダデータコード語と隠蔽情報語との総語長を短くすることができる。これにより、QRコードシンボルの誤り検出・訂正能力の余力をより大きく持たせることができる。
 なお、第3実施形態においても第2実施形態と同様に、読み取ったQRコードシンボルが一般的なQRコードシンボルであるか第3実施形態におけるQRコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第3実施形態におけるQRコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ20は隠蔽情報語を表示することとすることができる。また、一般的なQRコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ20は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
 ===第4実施形態===
 図20は、第4実施形態による手法でRSブロックの一部を置換したときの説明図である。図20には、置換前RSブロックと隠蔽情報語と置換後RSブロックが示されている。
 第4実施形態において、置換前RSブロックの情報本体には、ヘッダデータコード語が含まれている。ヘッダデータコード語の前後にはデリミタ(図20において「デリ」と記載)が配置され、これにより、情報本体における表示情報とヘッダデータコード語との切り分けが行われている。
 このような置換前RSブロックを生成するために、第4実施形態において、拡張エンコーダ10は、表示情報とヘッダデータコード語とデリミタを含む情報本体を生成する。ヘッダデータコード語には、後述する隠蔽情報語の配置情報が含まれている。また、拡張エンコーダ10は、これらの情報本体(存在すればパディングコード語も含め)に基づいて、訂正コード語を生成する。そして、置換前RSブロックを生成する。
 次に、拡張エンコーダ10は、隠蔽情報語で置換前RSブロックの一部を置換する。ここで、置換する位置は、ヘッダデータコード語に含まれる配置情報に対応する位置である。そして、置換後RSブロックを生成する。その後、拡張エンコーダ10は、置換後RSブロックに基づいてQRコードシンボルを生成する。
 次に、デコード手法について説明する。第4実施形態における拡張デコーダ20は、このようにして生成されたQRコードシンボルを読み取り、置換後RSブロックを展開する。そして、拡張デコーダ20は、置換前RSブロックに含まれる訂正符号語に基づいて、置換後RSブロックを訂正することにより置換前RSブロックを得る。置換前RSブロックには、前述のようにデリミタで切り分けされたヘッダデータコード語が含まれる。拡張デコーダ20は、このヘッダデータコード語に含まれる配置情報に基づいて、置換後RSブロックから隠蔽情報語の位置を特定し、抽出する。抽出された隠蔽情報語について、隠蔽情報語に含まれる訂正符号語を用いて訂正が行われることとしてもよい。
 このように、隠蔽情報語の配置情報を含むヘッダデータコード語を隠蔽情報語で置換して置換後RSブロックを生成するので、置換後RSブロックから隠蔽情報語の位置を特定することが困難となる。そして、第三者にとって、隠蔽情報語の抽出をより困難なものとすることができる。
 なお、第4実施形態において、読み取ったQRコードシンボルが一般的なQRコードシンボルであるか第4実施形態におけるQRコードシンボルであるかの判定は、抽出した置換前RSブロックにヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第4実施形態における置換前RSブロックには、ヘッダデータコード語が含まれているので、拡張デコーダ20は隠蔽情報語を表示することとすることができる。また、一般的なQRコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ20は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
 ===第5実施形態===
 図21は、第5実施形態による手法でRSブロックの一部を置換したときの説明図である。図21には、置換前RSブロックと隠蔽情報語とヘッダデータコード語と置換後RSブロックが示されている。
 第5実施形態において、置換前RSブロックの情報本体には、ヘッダデータコード語の位置情報を含んだヘッダデータコード語オフセット位置情報語(図21において「オフセット」と記載。「ヘッダ位置データコード語」に対応する)が含まれている。ヘッダオフセット位置情報語の前後には、デリミタが配置され、これにより、情報本体における表示情報とヘッダオフセット位置情報語との切り分けが行われている。
 このような置換前RSブロックを生成するために、第5実施形態において、拡張エンコーダ10は、表示情報とヘッダオフセット位置情報語とデリミタを含む情報本体を生成する。そして、拡張エンコーダ10は、これらの情報本体(存在すればパディングコード語も含め)に基づいて、訂正コード語を生成する。そして、置換前RSブロックを生成する。
 次に、拡張エンコーダ10は、隠蔽情報語で置換前RSブロックの一部を置換する。ここで、置換する位置は、ヘッダデータコード語に含まれる隠蔽情報語の配置情報に対応する位置である。ここでは、隠蔽情報語の配置情報において、RSブロックの5語目から隠蔽情報語の置換が開始され、隠蔽情報語が11語分の長さを有することの情報が含まれているものとする。そして、暫定置換後RSブロックを生成する。
 次に、拡張エンコーダ10は、暫定置換後RSブロックにおける隠蔽情報語の一部をヘッダデータコード語で置換する。ここで、置換する位置は、前述のヘッダオフセット位置情報語に含まれるヘッダデータコード語の位置情報に対応する位置である。ここでは、RSブロックの7語目から置換が行われることの情報がヘッダオフセット位置情報語に含まれるものとする。また、ヘッダデータコード語の長さは予め2語分であることが定められているものとする。そして、これらの情報に基づいて、拡張エンコーダ10はヘッダデータコード語による置換を行い、置換後RSブロックを生成する。その後、拡張エンコーダ10は、置換後RSブロックに基づいてQRコードシンボルを生成する。
 次に、デコード手法について説明する。第5実施形態における拡張デコーダ20は、このようにして生成されたQRコードシンボルを読み取り、置換後RSブロックを展開する。そして、拡張デコーダ20は、RSブロックに含まれる訂正符号語に基づいて、置換後RSブロックを訂正することにより、置換前RSブロックを得る。置換前RSブロックには、前述のようにデリミタで切り分けされたヘッダオフセット位置情報語が含まれる。
 拡張デコーダ20は、このヘッダオフセット位置情報語に基づいて、置換後RSブロックにおけるヘッダデータコード語の位置を特定する。そして、特定した置換後RSブロックの位置からヘッダデータコード語を抽出し、隠蔽情報語の配置情報を得る。
 拡張デコーダ20は、隠蔽情報語の配置情報に基づいて、置換後RSブロックから隠蔽情報語を抽出する。ただし、この隠蔽情報語は、ヘッダデータコード語により一部が置換されている。よって、拡張デコーダ20は、隠蔽情報語に含まれる訂正符号語に基づいて訂正をし、ヘッダデータコード語によって置換がされる前の隠蔽情報語を得る。これにより、適切に隠蔽情報語を取得することができる。
 また、拡張デコーダ20は、置換前RSブロックの情報本体からヘッダオフセット位置情報語とデリミタを除いた情報語を取得する。
 このようにすることで、ヘッダデータコード語の位置を特定するためのヘッダオフセット位置情報語を情報本体に含めることし、このヘッダオフセット位置情報語をさらに隠蔽情報語で置換するので、隠蔽情報語の位置を特定することがより困難となる。そして、第三者にとって、隠蔽情報語を抽出することをより困難なものとすることができる。
 なお、前述の第2実施形態のように、ヘッダデータコード語に含まれる隠蔽情報語の配置情報に基づいて、任意の位置から隠蔽情報語を置換したり、隠蔽情報語を複数に分離させて置換することとすることもできる。また、ヘッダデータコード語の情報に基づいて、隠蔽情報語を暗号化したりインターリーブしたりすることもできる。
 また、ヘッダデータコード語の位置を「オフセット」に基づいて特定することとしたが、ヘッダデータコード語の位置を特定できればオフセット量で特定しなくとも、他の手法でその位置を特定してもよい。
 なお、第5実施形態においても第2実施形態と同様に、読み取ったQRコードシンボルが一般的なQRコードシンボルであるか第5実施形態におけるQRコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第5実施形態におけるQRコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ20は隠蔽情報語を表示することとすることができる。また、一般的なQRコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ20は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
 ===第6実施形態===
 図22は、第6実施形態による手法でRSブロックの一部を置換したときの第1の説明図である。図22には、置換前RSブロックと隠蔽情報語と置換後RSブロックが示されている。
 第6実施形態において、拡張エンコーダ10は、情報本体(存在すればパディングコード語も含め)に基づいて、訂正コード語を生成する。そして、置換前RSブロックを生成する。次に、拡張エンコーダ10は、置換前RSブロックの一部を隠蔽情報語で置換する。そして、置換後RSブロックを生成する。そして、置換後RSブロックに基づいて、QRコードシンボルを生成する。このように、第6実施形態において、QRコードシンボルの生成方法は、第1実施形態とほぼ同様の手法による。
 次に、デコード手法について説明する。第6実施形態における拡張デコーダ20は、このようにして生成されたQRコードシンボルを読み取り、置換後RSブロックを展開する。そして、そして、拡張デコーダ20は、RSブロックに含まれる訂正符号語に基づいて、置換後RSブロックを訂正することにより、置換前RSブロックを得る。
 拡張デコーダ20は、置換前RSブロックと置換後RSブロックとを比較する。そして、置換前RSブロックと異なる部分を置換後RSブロックから抽出する。このようにして抽出された情報語は隠蔽情報語とされる。また、置換前RSブロックから情報本体を抽出する。置換前RSブロックには、情報本体と訂正符号語の間に終端符号が設けられているため、デコーダ20は、この終端符号に基づいて情報本体と訂正符号語とを切り分けることができる。
 このようにすることで、隠蔽情報語と情報本体を抽出することができる。そして、第6実施形態の手法によれば、単に置換前RSブロックと置換後RSブロックとを比較し、異なる部分を抽出すればよいので、隠蔽情報語の位置情報が不要となる利点がある。すなわち、仮にヘッダデータコード語を用いる場合には、ヘッダデータコード語の語数を減らすことができる。
 図23は、第6実施形態における手法でRSブロックの一部を置換したときの第2の説明図である。ここでは、複数に分離した隠蔽情報語でRSブロックを置換する。
 例えば、図23に示すように、隠蔽情報語を5つに分離してRSブロックの一部を置換することができる。このようにした場合であっても、隠蔽情報語の語数がRS符号による訂正可能語数より少ないことから、訂正を行うことで適切に置換前RSブロックを得ることができる。そして、この場合も置換前RSブロックと置換後RSブロックとの差分をとることによって、隠蔽情報語を得ることができる。また、置換前RSブロックの予め特定された位置からデータ語を抽出することにより情報本体を得ることができる。
 このように、差分に基づいて隠蔽情報語を抽出する手法は、QRコードシンボルに汚損が生じにくく、RSブロックにも汚損が生じにくい場合に特に有効である。例えば、QRコードシンボルの画像データファイルを生成し、これをファイルとして取り込み、隠蔽情報語等を抽出する場合には、QRコードシンボルが外部に曝される機会がないため、汚損が生ずることがありえない。
 この手法によれば、前述のように、特段ヘッダデータコード語等を設けなくても隠蔽情報語を特定することができるという利点がある。これは、より多くの隠蔽情報語で置換をすることができるという利点になる。
 隠蔽情報語として読み取ったコード語が隠蔽情報語であるのか否かの判定は、第1実施形態と同様に、訂正前のRSブロックと訂正後のRSブロックとの間に所定割合以上の差異があったときには隠蔽情報語であったと判定(すなわち、QRコードシンボルは第6実施形態におけるQRコードシンボルであると判定)し、所定割合以上の差異がなかったときには隠蔽情報語ではなかったと判定(すなわち、QRコードシンボルは一般的なQRコードシンボルであると判定)して隠蔽情報語を表示しないこととすることができる。これは、隠蔽情報語として置換が行われている場合には、置換前RSブロックと置換後RSブロックとの間の所定割合以上の差異が確実に生ずるものであるという理由に起因する。
 ところで、差分による上記のような手法でデコードを行った場合、置換前データブロックと置換後データブロックの隠蔽情報語で置換される部分において、きわめて希にではあるが、偶然に同じ語となった部分がある場合には、その部分は差分として抽出されないという問題がある。この場合、ヘッダデータコード語、および、隠蔽情報語に含まれる各語は必ず連続で置換されることとしておく。
 図24は、第6実施形態における手法でRSブロックの一部を置換したときの第3の説明図である。ここでは、ヘッダデータコード語の各語と隠蔽情報語の各語が連続して配置されるという規則を適用する。このような規則を適用することで、これらの語は必ず連続して置換されていることになるので、たとえ偶然に同じ語となることで欠落した語があったとしても、偶然一致してしまった語で欠落部分を埋めることで情報を補完することができる。
 ところで、このようにRSブロックの端部以外でコード語の欠落が生じた場合には単に対応する位置のデータコード語でその欠落部分を埋めればよい。しかし、RSブロックの端部で欠落が生じた場合には、その欠落が先端部分で生じたのか後端部分で生じたのかを特定すること自体が困難となる。よって、この場合には、次に説明するように、端部についていくつかの補完を行って、検証を行う。
 図25は、一部欠落したRSブロックの説明図である。図25には、欠落のないRSブロックと、データコード語の先端部分が欠落したRSブロック(以下、先端欠落RSブロックと呼ぶ)と、訂正コード語の後端部分が欠落したRSブロック(以下、後端欠落RSブロックと呼ぶ)と、両端部分が欠落したRSブロック(以下、両端欠落RSブロックと呼ぶ)が示されている。なお、説明の便宜上、各セル内に具体的なコード語は示されていない。これらの図において、欠落したコード語の部分は、破線で示されている。このように、RSブロックの端部が欠落するケースとしては、これらの3つのケースがあることになる。
 これらのようなRSブロックについては、可能な組み合わせで先端及び後端に補完を行う。そして、全ての組み合わせについて、(1)補完されたRSブロックで訂正処理が機能するか、(2)訂正処理が機能したとしてその訂正結果がブロック構成構文として正しいか、の検証を行う。
 図26は、先端欠落RSブロックの補完の説明図である。図26には、先端欠落RSブロックに対して誤った補完が行われたRSブロックが示されている。先端欠落RSブロックは、本来、先端部分について補完が行われるべきであるが、欠落したRSブロックを見ただけでは先端部分が欠落しているのか後端部分か欠落しているのかは分からない。そのため、先端部分の補完を行ったRSブロックと、後端部分の補完を行ったRSブロックとの両方を生成する。そして、補完を行った両方のRSブロックについて、訂正コード語を用いて訂正を行うことになる。
 先端部分の補完を行ったRSブロックは、正しいRSブロックとなるため、適切に訂正処理が行われ、訂正結果としてもブロック構成構文として正しい結果となる。
 これに対し、後端部分の補完を行ったRSブロックは、図26に示されるように、想定される語長から訂正コード語の位置が推定され、その結果、誤った位置が訂正コード語の位置であるとして特定されてしまう。このように誤って訂正コード語であると認識された領域のコード語に基づいて訂正が行われるため、適切に訂正は行われないことになる。
 なお、ここでは、1語分の欠落が生じたものとして説明を行ったが、欠落した語数が複数語であっても、特定される訂正コード語の位置は誤った位置となることから、やはり適切に訂正は行われないことになる。
 図27は、後端欠落RSブロックの補完の説明図である。図27には、後端欠落RSブロックに対して誤った補完が行われたRSブロックが示されている。後端欠落RSブロックは、本来、後端部分について補完が行われるべきであるが、やはりこの場合も、欠落したRSブロックを見ただけでは先端部分が欠落しているのか後端部分か欠落しているのかは分からない。そのため、この場合も、先端部分の補完を行ったRSブロックと、後端部分の補完を行ったRSブロックとの両方を生成する。そして、補完を行った両方のRSブロックについて訂正コード語を用いて、訂正を行うことになる。
 後端部分の補完を行ったRSブロックは、正しいRSブロックとなるため、適切に訂正処理が行われ、訂正結果としてもブロック構成構文として正しい結果となる。
 これに対し、先端部分の補完を行ったRSブロックは、図27に示されるように、想定される語長から訂正コード語の位置が推定され、その結果、誤った位置が訂正コード語の位置であるとして特定されてしまう。このように誤って訂正コード語であると認識された領域のコード語に基づいて訂正が行われるため、適切に訂正は行われないことになる。
 なお、ここでも、1語分の欠落が生じたものとして説明を行ったが、欠落した語数が複数語であっても、特定される訂正コード語の位置は誤った位置となることから、やはり適切に訂正は行われないことになる。
 図28は、両端欠落RSブロックの補完の説明図である。図28には、両端欠落RSブロックに対して誤った補完が行われた2つのRSブロックが示されている。ここでは、1語ずつ各端部で欠落が生じていることを想定している。このような両端欠落RSブロックにおいて、本来、先端部分と後端部分について1語ずつの補完が行われるべきではあるが、やはりこの場合も欠落したRSブロックを見ただけでは、どのような形態で欠落が生じているのかが分からない。
 そのため、この場合には、先端部分に2語の補完を行ったRSブロックと、後端部分に2語の補完を行ったRSブロックと、各端部分に1語ずつの補完を行ったRSブロックを生成することになる。そして、それぞれ補完したRSブロックについて、訂正ブロックを用いて訂正することになる。その後の検証方法は、先端欠落RSブロックにて補完を行った場合および後端欠落RSブロックにて補完を行った場合と同様であるので、説明を省略する。
 このようにして、考えられる全てのケースの補完を行って検証を行うことで、適切に補完がされたRSブロックを得ることができる。
 ここでは、上記の3ケースについて説明を行ったが、欠落したデータコード語の数に応じて検証するべき数が変化する。
 例えば、前述のように、データコード語が1語欠落する場合は、先端部分が1語欠落する場合と、後端部分が1語欠落する場合の2ケースが考えられることになる。
 また、データコード語が2語欠落する場合は、先端部分が2語欠落する場合と、先端部分が2語欠落しかつ後端部分が1語欠落する場合と、後端部分が2語欠落する場合の3ケースが考えられることになる。
 また、データコード語が3語欠落する場合は、先端部分が3語欠落する場合と、先端部分が2語欠落しかつ後端部分が1語欠落する場合と、先端部分が1語欠落しかつ後端部分が2語欠落する場合と、後端部分が3語欠落する場合の4ケースが考えられることになる。
 これらの規則性からすると、端部でN語欠落している場合には、(N+1)種類の検証を行うことになる。そして、(N+1)種類の検証を行った後、適切に訂正を行えたものを採用することができる。
 このように、先端部分や後端部分に欠落が生じた場合であっても、これに対応するケースだけ補完を行ったRSブロックを生成し、それぞれを検証することによって、適切に正しい補完を行うことができる。なお、極めて希に、誤った補完を行ったRSブロックにおいて訂正機能が成立してしまう場合も有りうるが、この場合、訂正後のブロックが定められたフォーマットにしたがっていない等の不具合を有することになる。そのため、これに基づいて、正常な補完ではないと判定することができる。
 ===第7実施形態===
 第7実施形態では、置換前RSブロックを隠蔽情報語で置換するときにおいて、マスクパターン参照子MPRで特定される語数の位置で置換が行われる。マスクパターン参照子MPRは、JIS規格におけるマスクパターン(本説明中において「標準マスクパターン」と呼ぶ)を特定する参照子である。第7実施形態では、このマスクパターン参照子MPRを隠蔽情報語での置換位置の特定に利用することにより、第三者からの隠蔽情報語の抽出をより困難にしている。
 マスクパターン参照子MPRは、QRコードシンボル1の形式情報FIに含まれる。形式情報FIには、さらに誤り訂正レベルが含まれている。なお、JIS規格において、標準マスクパターンによるマスキングは、符号化領域のうち、形式情報FIおよび型番情報VIを除いた領域にのみ適用されるため、マスクパターン参照子MPRも標準マスクパターンによってマスキングされないことになる。
 図29は、第7実施形態におけるQRコードシンボル生成方法のフローチャートである。以下、本フローチャートを参照しつつ、第7実施形態におけるQRコードシンボル生成方法の説明を行う。
 まず、QRコードシンボル1に埋め込まれる情報本体および隠蔽情報語が取り込まれる(S302)。次に、情報本体および隠蔽情報語に基づいてQRコードシンボル1の型番が決定される(S304)。次に、情報本体のコード語に基づいてRSブロックが生成される(S306)。これらステップS302からS306における情報本体と隠蔽情報語の取り込み、型番の決定、および、RSブロックの生成については第1実施形態と同様の手法が用いられるため説明を省略する。
 次に、マスクパターン参照子MPRの値が「0」に初期化される(S308)。JIS規格のマスクパターン参照子MPRによれば、マスクパターン参照子MPRの値は0から7(「000」から「111」)までの数値を有する。そこで、ここでは、マスクパターン参照子MPRの値を0から7まで変化させ、後述するステップS310からステップS314の処理を繰り返し行わせる。そのために、マスクパターン参照子MPRの値を「0」に初期化するのである。
 次に、マスクパターン参照子MPRで特定される位置(置換位置)で隠蔽情報語での置換が行われる(S310)。ここでは、置換前RSブロックの先頭からマスクパターン参照子MPRの値の語数だけオフセットさせられた位置で隠蔽情報語での置換が行われる。例えば、マスクパターン参照子MPRの値が「0」である場合には、置換前RSブロックの先頭から隠蔽情報語に置換がされることになる。前述のように、マスクパターン参照子MPRは0から7までの値を有することから、マスクパターン参照子MPRは隠蔽情報語の置換位置として8種類の位置を規定することができる。
 図30は、第7実施形態による手法でRSブロックの一部を置換したときの説明図である。図30では、マスクパターン参照子MPRの値が「6」である場合であって、置換前RSブロックの先頭から6語分オフセットさせた位置で隠蔽情報語での置換がされる様子が示されている。
 なお、マスクパターン参照子MPRの値と同じ語数分オフセットさせた位置を隠蔽情報語での置換位置とする手法は、マスクパターン参照子MPRで置換位置を特定する最も単純な形態であり、実施形態はこれに限られない。マスクパターン参照子MPRの値に応じた位置を予め規定しておき、これに応じて置換位置が特定することとしてもよい。
 次に、このようにしてRSブロックの一部が置換された置換後RSブロックに基づいて、標準マスクパターン適用前のQRコードシンボルが生成される(S312)。そして、標準マスクパターン適用前のQRコードシンボルに対して、マスクパターン参照子MPRで特定される標準マスクパターンが適用される(S314)。標準マスクパターンの適用については、JIS規格に準ずるため説明を省略する。
 次に、マスクパターン参照子MPRの値が7であるか否かが判定される(S316)。これにより、マスクパターン参照子MPRの値が0から7までの全てのケースについて、ステップS310からステップS314までの処理を行ったか否かの判定がなされることになる。そして、ステップS316において、マスクパターン参照子MPRの値が7ではない場合には、マスクパターン参照子MPRの値をインクリメントする(S318)
 一方、ステップS316においてマスクパターン参照子MPRの値が「7」である場合には、これまでの処理で、マスクパターン参照子MPRの値を0から7まで変化させたときの全てのQRコードシンボルが生成されていることになる。そこで、これらの8個のQRコードシンボルが評価され最適なQRコードシンボルパターンが特定される(S320)。
 ステップS320におけるQRコードシンボルの評価は、JIS規格における「マスク処理結果の評価」が適用されるため説明を省略する。この評価処理を行うことにより、モジュールが適度にばらついたQRコードシンボルが特定されることになる。
 次に、ステップS320において特定されたQRコードシンボルが出力される(S320)。QRコードシンボルの出力は、表示装置13に表示させることとしてもよいし、印刷装置14により印刷させることとしてもよい。
 このようにすることで、QRコードシンボルに適用された標準マスクパターンを特定するマスクパターン参照子MPRが、隠蔽情報語で置換する位置を特定することにも用いられる。標準マスクパターンが8種類存在するため、マスクパターン参照子MPRの値も8種類の数値を有する。そのため、適用される標準マスクパターンに応じて隠蔽情報語で置換する位置も変化させることができる。これにより、第三者にとっては隠蔽情報語の位置を特定することが困難となり、隠蔽情報語の抽出をより困難なものとすることができる。
 また、第7実施形態の手法によれば、マスクパターン参照子MPRの値を0から7まで変化させて生成した全てのQRコードシンボルをステップS320で評価してみるまで、どの位置に隠蔽情報語を配置したものが最適なQRコードシンボルとなるのか分からない。そのため、ステップS320で評価するまで、どの位置で隠蔽情報語での置換が行われたQRコードシンボルが採用されるのかが分からないことになる。このように、予め隠蔽情報語の置換位置を決めておくことができないので、より隠蔽情報語の位置の特定を困難なものとすることができる。そして、隠蔽情報語の抽出をより困難なものとすることができる。
 なお、標準マスクパターンの適用については、ステップS310の隠蔽情報語の置換処理よりも前に行わせることもできる。ただし、QRコードシンボルにおけるモジュールの分散性という観点からすれば、標準マスクパターンの適用はステップS310の隠蔽情報語の置換処理よりも後に行われることが望ましい。
 なお、前述の第1実施形態においても、ステップS108の後に標準マスクパターンによるマスキングが行われることになる。このとき、マスクパターン参照子MPR「0」から「7」のすべての標準マスクパターンが適用される。そして、第7実施形態におけるステップS320と同様に、これらのQRコードシンボル中から最適なQRコードシンボルとなるものが選択されることになる。
 標準マスクパターンによるマスキングは、符号化領域のうち形式情報FIおよび型番情報VIを除いた領域にのみ適用されるので、マスクパターン参照子MPRは標準マスクパターンによるマスキングの影響を受けない。よって、QRコードシンボルの読み取り時において、形式情報FIからマスクパターン参照子MPRを適切に読み出して、標準マスクパターンを解除することができる。
 次に、第7実施形態におけるQRコードシンボルの読み取り方法を説明する。
 図31は、第7実施形態におけるQRコードシンボル読み取り方法のフローチャートである。以下、本フローチャートと前述の図30を参照しつつ、第7実施形態におけるQRコードシンボル読み取り方法の説明を行う。
 まず、拡張QRコードシンボルの読み取りが行われる(S402)。拡張QRコードシンボルの読み取りについては、第1実施形態と同様の手法が用いられるため、説明を省略する。
 次に、マスクパターン参照子MPRの値の読み出しが行われる(S404)。マスクパターン参照子MPRは、前述のように形式情報FIに含まれる情報である。形式情報FIは、QRコードシンボル1において、標準マスクパターンによってマスキングされていない。そのため、形式情報FIはJIS規格の手法で適切に読み出すことができる。そして、形式情報FIに含まれるマスクパターン参照子MPRを特定することができる。
 次に、QRコードシンボルの標準マスクパターンが解除される(S406)。QRコードシンボル1に適用された標準マスクパターンは、マスクパターン参照子MPRによって特定することができる。そして、特定された標準マスクパターンを用いてQRコードシンボル1に適用された標準マスクパターンの解除が行われる。
 次に、標準マスクパターンが解除されたQRコードシンボルから複数のRSブロック(ここでは、置換後RSブロック)が展開される。そして、マスクパターン参照子MPRに基づいて置換後RSブロックにおける隠蔽情報語の位置が特定される(S408)。ここでは、置換後RSブロックの先頭からマスクパターン参照子MPRの値の語数だけオフセットさせた位置が隠蔽情報語の先頭位置として特定される。
 再度、図30を参照する。例えば、マスクパターン参照子MPRの値が「6」である場合には、図30に示されるように、隠蔽情報語の開始位置は置換後RSブロックの先頭から6語分オフセットした位置ということになる。
 次に、特定された隠蔽情報語の位置から隠蔽情報語が抽出される(S410)。また、置換後RSブロックについて、リード・ソロモン符号を用いた訂正がなされる(S412)。リード・ソロモン符号による訂正が行われることにより、置換後RSブロックは置換前RSブロックへと変換される。そして、置換前RSブロックから情報本体を抽出することができる。
 次に、得られた情報本体と隠蔽情報語が出力される(S414)。これらの出力は、表示装置13に表示させることとしてもよいし、印刷装置14により印刷させることとしてもよい。
 なお、上記説明によれば、マスクパターン参照子MPRに基づいて隠蔽情報語の位置を規定していたが、さらに、QRコードシンボルの型番情報を利用して隠蔽情報語の位置を規定してもよい。QRコードの型番は、JIS規格において1型から40型の40種類を有する。よって、マスクパターン参照子MPR(8種類)にさらに40種類の組み合わせを適用して、計320種類の位置を規定することができるようになる。
 また、これらの組み合わせに加えて、QRコードシンボルのエラー訂正のレベル情報を組み合わせてもよい。JIS規格において、エラー訂正レベルは「L」「M」「Q」「H」の4種類を有している。よって、これら4種類の組み合わせをさらに適用することで、計1280種類の位置を規定することができるようになる。
 また、特定された位置から連続して隠蔽情報語を置換することとしたが、前述の図18のように隠蔽情報語を分散的に置換することとしてもよい。
 ===第8実施形態===
 図32は、第8実施形態による手法でRSブロックの一部を置換したときの説明図である。第8実施形態では、前述の第2実施形態と同様に、置換前RSブロックの一部がヘッダデータコード語と隠蔽情報語とで置換され、置換後RSブロックが生成される。また、このとき、ヘッダデータコード語が示す位置で隠蔽情報語での置換が行われる。
 また、第8実施形態は、マスクパターン参照子MPRの値で置換位置が特定される点で第7実施形態と共通する。そこで、第7実施形態で用いたフローチャートの一部を変更しつつ、第8実施形態におけるQRコードシンボルの生成方法について説明する。
 ステップS302からステップS308の処理は、第7実施形態と同様である。よって、説明を省略する。第8実施形態において第7実施形態と異なるのは、ステップS310の処理である。第8実施形態では、置換前RSブロックの先頭からマスクパターン参照子MPRの値と同じ語数分オフセットさせた位置を先頭位置として、ヘッダデータコード語による置換が行われる。また、ヘッダデータコード語で特定される位置で、隠蔽情報語での置換前RSブロックの一部の置換が行われる。
 図32では、マスクパターン参照子MPRが「2」である場合であって、置換前RSブロックの先頭から2語分オフセットさせた位置でヘッダデータコード語での置換がされる様子が示されている。また、このヘッダデータコード語は、隠蔽情報語の置換位置として、置換前RSブロックの先頭から8語オフセットさせた位置を表すものとする。そのため、置換前RSブロックの先頭から8語オフセットさせた位置で隠蔽情報語による置換が行われている。
 以下、ステップS312からステップS322の処理は第7実施形態と同様であるので説明を省略する。
 なお、ヘッダデータコード語による置換位置と隠蔽情報語による置換位置であるが、これらの位置は互いに重ならないことが望ましい。これらが重なり合ってしまうと、ヘッダデータコード語と隠蔽情報語の少なくともいずれか一方が正確に復元できなくなってしまうためである。
 次に、第7実施形態で用いたフローチャートの一部を変更しつつ、第8実施形態におけるQRコードシンボルの読み取り方法について説明する。
 ステップS402からステップS406の処理は第7実施形態と同様である。よって、説明を省略する。第8実施形態において第7実施形態と異なるのは、ステップS408とステップS410の処理である。第8実施形態ではステップS408において、マスクパターン参照子MPRの値に基づいてヘッダデータコード語の位置を特定し、抽出する。そして、ステップS410において、ヘッダデータコード語を用いて隠蔽情報語の位置を特定し、隠蔽情報語の抽出を行う。
 以下、ステップS412からステップS414の処理は第7実施形態と同様であるので説明を省略する。
 このようにすることで、QRコードシンボルに適用された標準マスクパターンを特定するマスクパターン参照子MPRが、ヘッダデータコード語で置換する位置を特定することにも用いられる。標準マスクパターンが8種類存在するため、マスクパターン参照子MPRの値も8種類の数値を有する。そのため、適用される標準マスクパターンに応じてヘッダデータコード語で置換する位置も変化させることができる。これにより、第三者にとってはヘッダデータコード語の位置を特定することが困難となり、隠蔽情報語の抽出をより困難なものとすることができる。
 また、第8実施形態の手法によれば、マスクパターン参照子MPRの値を0から7まで変化させて生成した全てのQRコードシンボルをステップS320で評価してみるまで、どの位置にヘッダデータコード語を配置したものが最適なQRコードシンボルとなるのか分からない。ステップS320で評価するまで、どの位置でヘッダデータコード語での置換が行われたQRコードシンボルが採用されるのかが分からないことになる。このように、予めヘッダデータコード語の置換位置を決めておくことができないので、ヘッダデータコード語の位置の特定を困難なものとすることができる。そして、ヘッダデータコード語の位置すら特定することが困難となるので、隠蔽情報語の位置を特定することはさらに困難となり、隠蔽情報語の抽出を困難なものとすることができる。
 ===第9実施形態===
 第9実施形態では、置換前RSブロックを隠蔽情報語で置換するときにおいて、訂正コード語(RS符号)に基づいて置換する位置が特定される。以下、第1実施形態で用いたフローチャートの一部を変更しつつ、第9実施形態におけるQRコードシンボルの生成方法について説明する。
 ステップS102からステップS106の処理は、第1実施形態と同様である。よって、説明を省略する。第9実施形態で第1実施形態と異なるのは、ステップ106とステップS108の間に、訂正コード語に基づいて隠蔽情報語の置換位置が特定される点である。
 図33は、第9実施形態による手法でRSブロックの一部を置換する手法を説明する第1の図である。図33には、置換前RSブロックが示されている。第9実施形態では、訂正コード語のある特定のバイト内の複数ビットに基づいて、隠蔽情報語の置換位置を特定している。具体的には、ここでは、訂正コード語の第3番目のバイトを抽出し、このバイトから下位4ビットを抽出する。そして、この下位4ビットの値を隠蔽情報語の置換位置とする。図33では、下位4ビットの情報として「0010」が示されている。「0010」は十進数では「2」を表すが、ここでは、「0」を1番目の位置として特定させるので、「0010」は、先頭から3番目の位置を表す。次に、この置換位置に基づいて隠蔽情報語での置換が行われる(S108)。
 図34は、第9実施形態による手法でRSブロックの一部を置換する手法を説明する第2の図である。図34には、置換前RSブロックの先頭から3番目のバイトの位置(3語目の位置)から隠蔽情報語での置換が行われることが示されている。このようにして、訂正コード語に基づいて隠蔽情報語での置換位置が特定され、置換が行われる。
 このように隠蔽情報語での置換が行われると(S108)、置換後RSブロックに基づいてQRコードが生成される(S110)。そして、標準マスクパターンによるマスキングが行われる。標準マスクパターンによるマスキングは、JIS規格に準ずる。
 訂正コード語は、データコード語に基づいて求められる。そのため、データコード語が異なれば、訂正コード語も異なることになる。よって、訂正コード語に基づいて置換位置を特定することで、データコード語が異なれば置換位置も異なることとなるので、第三者にとっては隠蔽情報語の位置を特定することが困難となる。そして、隠蔽情報語の抽出をより困難なものとすることができる。
 次に、第1実施形態で用いたフローチャートの一部を変更しつつ、第9実施形態におけるQRコードシンボルの読み取り方法について説明する。
 ステップS202からステップS04の処理は第1実施形態と同様である。よって、説明を省略する。第9実施形態において第1実施形態と異なるのは、ステップS206の処理である。第9実施形態では、訂正コード語のある特定のバイトのビットに基づいて、隠蔽情報語の置換位置を特定する。ここでは、前述のように、訂正コード語の第3番目のバイトを抽出する。そして、このバイトから下位4ビットを抽出し、この下位4ビットの表す値に基づいて隠蔽情報語の置換位置を特定する。このようにすることで、図34に示されるように、適切に隠蔽情報語の位置を特定して、隠蔽情報語を抽出することができることになる。
 また、その後、訂正コード語を用いて置換後RSブロックを訂正することにより、適切にデータコード語も抽出することができる。
 抽出したデータの結果出力は、第1実施形態と同様(S108)であるので説明を省略する。
 なお、隠蔽情報語で置換前RSブロックの一部を置換する際、置換位置を特定するための訂正コード語のバイトも置換されてしまうおそれもある。このような場合には、先に訂正コード語により置換後RSブロックを訂正することとしてもよい。このようにすることで、置換前RSブロックを取得することができるから、置換位置を特定するための訂正コード語のバイトを適切に抽出することができる。
 また、上記説明では訂正コード語の第3番目のバイトを用いることとしたが、訂正コード語の他のバイトを用いることとしてもよいことは言うまでもない。また、下位4ビットを用いることで16通りの位置を特定することができるようになるが、さらに用いるビット数を多くして、特定する位置を増やすこともできる。
 また、以上の説明では、隠蔽情報語の置換位置を特定するために訂正コード語を用いることとしたが、第2実施形態のヘッダデータコード語の概念を導入し、このヘッダデータコード語の位置を前述の訂正コード語により特定するようにしてもよい。誤り訂正コード語は、データコード語に基づいて求められる。そのため、データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。隠蔽情報語の位置はヘッダデータコード語で特定されるものであるため、隠蔽情報語の抽出をより困難なものとすることができる。
 ===適用例について===
 上記のようなQRコードシンボルは、例えば、予約販売制のイベントやコンサートなどのチケットに印刷して使用することができる。このとき、「表示情報」としては、「イベント名」、「席情報」、「予約番号」、および、「URL」とすることができる。一方、隠蔽情報としては、「予約時の情報」とすることができる。「予約時の情報」とは、「性別」、「年齢」、「氏名」、「免許証」などのID情報や、「パスフレーズ」を採用することができる。
 このような条件下において、仮に、表示情報のみを利用して新たにQRコードを作成するような偽造行為があったとする。この場合、このQRコードシンボルには、隠蔽情報が存在しない。よって、このQRコードシンボルは偽造されたものであると特定することができる。
 また、第1実施形態から第6実施形態を用いて作製したQRコードシンボルをそのままコピーした用いた場合には、拡張デコーダ20によって隠蔽情報が読み出される。そして、隠蔽情報に含まれる「性別」、「年齢」、「免許証」のID情報や、「パスフレーズ」を本人と照合することにより、不正利用やなりすましを防止することができる。
10 拡張エンコーダ、
11 制御部、11a 演算部、11b 記憶部、
13 表示装置、14 印刷装置、15 入力装置、
20 拡張デコーダ、
21 制御部、21a 演算部、21b 記憶部、
22 撮像装置、23 表示装置、24 印刷装置、25 入力装置

Claims (40)

  1.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
     前記データブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックを求めることと、
     前記置換後データブロックに基づいて二次元コードを生成することと、
    を含むことを特徴とする二次元コード生成方法。
  2.  請求項1に記載の二次元コード生成方法であって、
     前記置換後データブロックは、前記置換後データブロックにおける前記第2データコード語の配置情報を含むヘッダデータコード語を備えることを特徴とする二次元コード生成方法。
  3.  請求項2に記載の二次元コード生成方法であって、
     前記第2データコード語の語数と前記ヘッダデータ語の語数との総語数は、前記誤り訂正コード語による誤り訂正数を超えないことを特徴とする二次元コード生成方法。
  4.  請求項2または請求項3に記載の二次元コード生成方法であって、
     前記第2データコード語は当該第2データコード語の配置情報に基づいて不連続に配置されることを特徴とする二次元コード生成方法。
  5.  請求項2から請求項4のいずれかに記載の二次元コード生成方法であって、
     前記ヘッダデータコード語と前記第2データコード語のうち少なくともいずれかは誤り訂正符号語を含むことを特徴とする二次元コード生成方法。
  6.  請求項2に記載の二次元コード生成方法であって、
     前記置換後データブロックにおいて、前記第2データコード語の一部が前記ヘッダデータコード語で置換されており、
     前記第2データコード語には、当該第2データコード語に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれていることを特徴とする二次元コード生成方法。
  7.  請求項2に記載の二次元コード生成方法であって、
     前記第1データコード語の一部に、前記置換後データブロックにおける前記第2データコード語の配置情報を含む前記ヘッダデータコード語を含むことを特徴とする二次元コード生成方法。
  8.  請求項2に記載の二次元コード生成方法であって、
     前記第1データコード語の一部に、前記置換後データブロックにおける前記ヘッダデータコード語の配置情報を含むヘッダ位置データコード語を含むことを特徴とする二次元コード生成方法。
  9.  請求項1に記載の二次元コード生成方法であって、
     前記二次元コードは所定のマスクパターンでマスキングされており、
     前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第2データコード語で置換することを含むことを特徴とする二次元コード生成方法。
  10.  請求項2に記載の二次元コード生成方法であって、
     前記二次元コードは所定のマスクパターンでマスキングされており、
     前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第2データコード語で置換することを含むことを特徴とする二次元コード生成方法。
  11.  請求項9または請求項10に記載の二次元コード生成方法であって、
     前記二次元コードはQRコードであり、
     前記マスクパターン参照子は、前記QRコードの形式情報に含まれることを特徴とする二次元コード生成方法。
  12.  請求項1に記載の二次元コード生成方法であって、
     前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第2データコード語で置換することを含むことを特徴とする二次元コード生成方法。
  13.  請求項2に記載の二次元コード生成方法であって、
     前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第2データコード語で置換することを含むことを特徴とする二次元コード生成方法。
  14.  請求項1から請求項13のいずれかに記載の二次元コード生成方法であって、
     前記誤り訂正コード語は、リード・ソロモン符号であることを特徴とする二次元コード生成方法。
  15.  請求項1から請求項14のいずれかに記載の二次元コード生成方法であって、
     さらに、生成した前記二次元コードを出力することを含むことを特徴とする二次元コード生成方法。
  16.  第1の情報を含む第1データコード語と、前記データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コード。
  17.  第1の情報を含む第1データコード語と、前記データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて二次元コードを生成する二次元コード生成装置。
  18.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
     前記データブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックを求めることと、
     前記置換後データブロックに基づいて二次元コードを生成することと、
    をコンピュータに実行させるプログラム。
  19.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求めることと、
     前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求めることと、
    を含むことを特徴とする二次元コード読み取り方法。
  20.  請求項19に記載の二次元コード読み取り方法であって、
     前記置換後データブロックはヘッダデータコード語を含み、
     前記所定の位置は前記ヘッダデータコード語に基づいて特定されることを特徴とする二次元コード読み取り方法。
  21.  請求項20に記載の二次元コード読み取り方法であって、
     前記第2データコード語の語数と前記ヘッダデータコード語の語数の総語数は、前記誤り訂正コード語による誤り訂正語数を超えないことを特徴とする二次元コード読み取り方法。
  22.  請求項20または請求項21に記載の二次元コード読み取り方法であって、
     前記ヘッダデータコード語には、前記第2データコード語の配置情報が含まれ、前記第2データコード語は前記配置情報に基づいて不連続に配置されることを特徴とする二次元コード読み取り方法。
  23.  請求項20から請求項22のいずれかに記載の二次元コード読み取り方法であって、
     前記ヘッダデータコード語と前記第2データコード語のうち少なくともいずれかは誤り訂正符号語を含むことを特徴とする二次元コード読み取り方法。
  24.  請求項20に記載の二次元コード読み取り方法であって、
     前記置換後データブロックにおいて、前記第2データコード語の一部が前記ヘッダデータコード語で置換されており、
     前記第2データコード語には、自己に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれており、
     前記第2の情報を求めることは、前記ヘッダデータコード語に基づいて前記所定の位置を特定し、特定した前記所定の位置から前記ヘッダデータコード語で一部が置換された前記第2データコード語を求め、前記第2データコード語における誤り訂正コード語に基づいて前記第2データコード語を訂正し、訂正した第2データコード語から前記第2の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
  25.  請求項20に記載の二次元コード読み取り方法であって、
     前記第1データコード語の一部に前記ヘッダデータコード語を含んでおり、
     前記第2の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第2データコード語の位置を特定して前記第2データコード語を求め、前記第2データコード語から前記第2の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
  26.  請求項20に記載の二次元コード読み取り方法であって、
     前記第1データコード語の一部に前記ヘッダデータコード語の配置位置を示すヘッダ位置データコード語を含んでおり、
     前記第2の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記第1データコード語に含まれる前記ヘッダ位置データコード語を求め、抽出した前記ヘッダ位置データコード語に基づいて前記ヘッダデータコード語の位置を特定して前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第2データコード語の位置を特定して前記第2データコード語を求め、前記第2データコード語から前記第2の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
  27.  請求項19に記載の二次元コード読み取り方法であって、
     前記二次元コードは所定のマスクパターンでマスキングされており、
     前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第2データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
  28.  請求項20に記載の二次元コード読み取り方法であって、
     前記二次元コードは所定のマスクパターンでマスキングされており、
     前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第2データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
  29.  請求項27または請求項28に記載の二次元コード読み取り方法であって、
     前記二次元コードはQRコードであり、
     前記マスクパターン参照子は、前記QRコードの形式情報に含まれることを特徴とする二次元コード読み取り方法。
  30.  請求項19に記載の二次元コード読み取り方法であって、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第2データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
  31.  請求項20に記載の二次元コード読み取り方法であって、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第2データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
  32.  請求項19から請求項31のいずれかに記載の二次元コード読み取り方法であって、
     前記置換後データブロックに基づいて前記第1データコード語を求めることは、前記置換後データブロックに含まれる誤り訂正コード語を用いて前記置換後データブロックの誤り訂正を行うことを含むことを特徴とする二次元コード読み取り方法。
  33.  請求項19から請求項32のいずれかに記載の二次元コード読み取り方法であって、
     前記誤り訂正コード語は、リード・ソロモン符号であることを特徴とする二次元コード読み取り方法。
  34.  請求項19から請求項33のいずれかに記載の二次元コード読み取り方法であって、
     さらに、前記第1の情報と前記第2の情報のうち少なくともいずれかを出力することを含むことを特徴とする二次元コード読み取り方法。
  35.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
     前記置換後データブロックに基づいて前記第1データコード語と前記誤り訂正コード語とを含む前記データブロックを求めることと、
     前記データブロックと前記置換後データブロックとに基づいて、前記第2データコード語を求め、当該第2データコード語から前記第2の情報を求めることと、
    を含むことを特徴とする二次元コード読み取り方法。
  36.  請求項35に記載の二次元コード読み取り方法であって、
     前記データブロックと前記置換後データブロックとに基づいて前記第2データコード語を求めることは、前記データブロックと前記置換後データブロックとの間で異なる部分を前記置換後データブロックから抽出することを含むことを特徴とする二次元コード読み取り方法。
  37.  請求項35または請求項36に記載の二次元コード読み取り方法であって、
     前記置換後データブロックに基づいて前記第1データコード語と前記誤り訂正コード語とを含む前記データブロックを求めることは、前記置換後データブロックに含まれる誤り訂正コード語を用いて前記置換後データブロックの誤り訂正を行うことを含むことを特徴とする二次元コード読み取り方法。
  38.  請求項35乃至請求項37のいずれかに記載の二次元コード読み取り方法であって、
     求められた前記データブロックと前記置換後データブロックとに基づいて、さらに前記第1データコード語から前記第1の情報を求めることを含む二次元コード読み取り方法。
  39.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取る読み取り部と、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求め、前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求める制御部と、
    を備えることを特徴とする二次元コード読み取り装置。
  40.  第1の情報を含む第1データコード語と、前記第1データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第2の情報を含む第2データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
     前記置換後データブロックにおける所定の位置から前記第2データコード語を抽出し、当該第2データコード語から前記第2の情報を求めることと、
     前記置換後データブロックに基づいて前記第1データコード語を求め、当該第1データコード語から前記第1の情報を求めることと、
    をコンピュータに実行させるプログラム。
PCT/JP2014/077084 2013-10-30 2014-10-09 二次元コード生成方法、二次元コード生成装置、二次元コード読み取り方法、二次元コード読み取り装置、二次元コード、および、プログラム Ceased WO2015064334A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014550585A JP5978315B2 (ja) 2013-10-30 2014-10-09 二次元コード生成方法、および、二次元コード読み取り方法
CN201480058953.1A CN105706118B (zh) 2013-10-30 2014-10-09 生成二维条码的方法、生成二维条码的装置、读取二维条码的方法、读取二维条码的装置、二维条码及程序
US15/032,419 US9858518B2 (en) 2013-10-30 2014-10-09 Method for generating two-dimensional barcode, device for generating two-dimensional barcode, method for reading two-dimensional barcode, device for reading two-dimensional barcode, two-dimensional barcode, and program
EP14858849.4A EP3065088B1 (en) 2013-10-30 2014-10-09 2d-code generation method, 2d-code generation device, 2d-code reading method, 2d-code reading device, 2d code, and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013-225332 2013-10-30
JP2013225332 2013-10-30
JP2013225336 2013-10-30
JP2013-225336 2013-10-30

Publications (1)

Publication Number Publication Date
WO2015064334A1 true WO2015064334A1 (ja) 2015-05-07

Family

ID=53003945

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/077084 Ceased WO2015064334A1 (ja) 2013-10-30 2014-10-09 二次元コード生成方法、二次元コード生成装置、二次元コード読み取り方法、二次元コード読み取り装置、二次元コード、および、プログラム

Country Status (5)

Country Link
US (1) US9858518B2 (ja)
EP (1) EP3065088B1 (ja)
JP (2) JP5978315B2 (ja)
CN (1) CN105706118B (ja)
WO (1) WO2015064334A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004357A (ja) * 2014-06-16 2016-01-12 株式会社トッパンTdkレーベル 秘匿対象情報の隠蔽方法、秘匿対象情報隠蔽装置、プログラム、秘匿対象情報の抽出方法、および、秘匿対象情報抽出装置
EP3379462A4 (en) * 2015-11-20 2019-08-21 Toppan TDK Label Co., Ltd. METHOD FOR GENERATING TWO-DIMENSIONAL CODES, A DEVICE FOR PRODUCING TWO-DIMENSIONAL CODES, A PROGRAM, A TWO-DIMENSIONAL CODE, A METHOD FOR READING TWO-DIMENSIONAL CODES AND A DEVICE FOR READING TWO-DIMENSIONAL CODES AND A SYSTEM FOR MANAGING TWO-DIMENSIONAL CODES
JP2020509457A (ja) * 2017-01-24 2020-03-26 北京大碼技術有限公司 複合型二次元バーコード生成、読取装置および方法
EP3311336B1 (en) 2015-06-18 2020-08-26 Hicof Inc. Authentication feature in a barcode

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5827738B1 (ja) 2014-10-15 2015-12-02 株式会社トッパンTdkレーベル 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード、二次元コード読み取り方法、および、二次元コード読み取り装置
US10387577B2 (en) 2015-03-03 2019-08-20 WonderHealth, LLC Secure data translation using machine-readable identifiers
EP3266149B1 (en) * 2015-03-03 2020-05-06 Wonderhealth, LLC Access control for encrypted data in machine-readable identifiers
CN106127276B (zh) * 2016-06-27 2018-12-21 福建联迪商用设备有限公司 一种量化污损QRCode的方法及系统
KR101893520B1 (ko) * 2016-12-19 2018-08-30 한국전자통신연구원 2차원 바코드 생성 장치, 2차원 바코드 정보 추출 장치 및 2차원 바코드 생성 방법
JP6972729B2 (ja) * 2017-07-24 2021-11-24 コニカミノルタ株式会社 画像表示システム、資料提供支援装置、資料取得装置、資料提供支援方法、およびコンピュータプログラム
CN107766909B (zh) * 2017-11-01 2018-11-06 厦门物之联智能科技有限公司 对二维码图形进行防篡改处理的方法和系统
CN107766771B (zh) * 2017-11-15 2021-01-19 深圳大学 二维码检测方法以及终端
CN108154211B (zh) 2017-11-22 2020-08-28 阿里巴巴集团控股有限公司 二维码生成、业务处理方法、装置和设备以及二维码
US10831596B2 (en) * 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
CN110119643B (zh) * 2018-02-07 2020-11-03 北京三快在线科技有限公司 二维码生成方法及装置、二维码识别方法及装置
CN108681765A (zh) * 2018-02-15 2018-10-19 海南亚元防伪技术研究所(普通合伙) 超限窄缝防伪方法及产品
CN108921261A (zh) * 2018-04-17 2018-11-30 新大陆(福建)公共服务有限公司 一种安全二维码生成方法以及解析方法
CN108734048A (zh) * 2018-05-29 2018-11-02 西安理工大学 基于专有码的多维度二维码生成与译码方法
CN113474784B (zh) * 2019-02-15 2024-11-26 日商方舟合同公司 动态二维码评价方法、动态二维码评价系统、动态二维码管理服务器和记录介质
US10853609B2 (en) * 2019-03-12 2020-12-01 Microsoft Technology Licensing, Llc Hybrid two-dimensional barcode reader
US10650208B1 (en) * 2019-03-12 2020-05-12 Microsoft Technology Licensing, Llc Hybrid two-dimensional barcode and hybrid two-dimensional barcode generator
US10970378B2 (en) * 2019-05-13 2021-04-06 Cyberark Software Ltd. Secure generation and verification of machine-readable visual codes
US10990779B1 (en) * 2019-06-14 2021-04-27 Eric Johanson Securing and authenticating an item based on 2-D barcode encoding
IT201900016688A1 (it) 2019-09-19 2021-03-19 St Poligrafico E Zecca Dello Stato S P A Etichetta adesiva
JP6714303B1 (ja) * 2019-11-12 2020-06-24 合同会社Ark 二次元コード生成方法、二次元コード評価方法、二次元コードシステム、二次元コード生成装置、及び二次元コード評価装置
CN111046996B (zh) * 2019-11-27 2023-08-04 湖南省科腾信安智能科技有限公司 一种彩色qr码生成和识别方法
CN111241352A (zh) * 2020-01-16 2020-06-05 深圳市深圳通有限公司 二维码、二维码数据存储方法以及装置
CN110991591A (zh) * 2020-03-03 2020-04-10 支付宝(杭州)信息技术有限公司 二维码的编解码方法、装置、编码设备和解码设备
CN113033745B (zh) * 2021-03-25 2022-03-04 深圳市智码通科技有限公司 一种生成文字二维码的方法
EP4206929A1 (en) * 2022-01-03 2023-07-05 Koninklijke Philips N.V. Multiple application qr code
CN118525270A (zh) * 2022-01-03 2024-08-20 皇家飞利浦有限公司 多应用qr码
WO2024026249A2 (en) 2022-07-26 2024-02-01 XR Goods Company Method and system for generating matrix code print file
US20260030990A1 (en) * 2024-07-25 2026-01-29 Sheyna Kimberly Teran System and Method for Providing Vehicle Maintenance Instructions Using QR Codes
CN120911505B (zh) * 2025-09-19 2026-02-10 西安天圆光电科技有限公司 一种基于机器可读码的非标数据标准化传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004378A (ja) 2004-06-21 2006-01-05 Gijutsu Transfer Service:Kk 2次元コード,2次元コードの形成装置及び形成方法並びに2次元コードの読取装置及び読取方法
JP2009009547A (ja) 2007-05-29 2009-01-15 Denso Wave Inc 二次元コードの生成方法およびその読取装置
JP2009093443A (ja) 2007-10-10 2009-04-30 Denso Wave Inc 二次元コードおよびその読取装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3996520B2 (ja) * 2003-01-30 2007-10-24 株式会社デンソーウェーブ 二次元情報コードおよびその生成方法
JP2007032062A (ja) * 2005-07-26 2007-02-08 Aruze Corp 電気錠装置
JP3953501B1 (ja) * 2006-03-03 2007-08-08 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び2次元コード
CN101063999B (zh) * 2006-04-29 2010-09-15 银河联动信息技术(北京)有限公司 一种二维码与标识的合成系统及方法
JP4873623B2 (ja) * 2006-07-28 2012-02-08 Kddi株式会社 カラー画像へのバーコード埋め込み方法および装置、およびコンピュータプログラム
EP2000950B1 (en) * 2007-05-29 2017-03-01 Denso Wave Incorporated Method for producing two-dimensional code and reader for reading the two-dimensional code
JP4924206B2 (ja) * 2007-05-29 2012-04-25 株式会社デンソーウェーブ 二次元コードの生成方法およびその読取装置
JP5071853B2 (ja) * 2007-12-21 2012-11-14 国立大学法人 鹿児島大学 画像処理装置、画像処理方法、プログラム及び記録媒体
TWI354933B (en) * 2007-12-28 2011-12-21 Wistron Corp Preamble data generating method and related appara
US20100327066A1 (en) * 2009-06-25 2010-12-30 Samsung Electronics Co. Ltd. Network based reliable decoding of bar codes
US8807435B2 (en) 2011-04-06 2014-08-19 Eastman Kodak Company Decoding multi-resolution optical codes
CA2851809A1 (en) * 2011-07-25 2013-01-31 4Gqr Llc Device and its use for creation, output and management of 2d barcodes with embedded images
CN102521634A (zh) * 2011-11-16 2012-06-27 徐文呈 编码方法和系统装置
US20150235118A1 (en) * 2012-04-26 2015-08-20 Steven J Simske Two-Dimensional Barcodes Having A Plurality of Different Regions
US10565483B2 (en) * 2012-08-31 2020-02-18 International Business Machines Corporation Two-dimensional barcode to avoid unintentional scanning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004378A (ja) 2004-06-21 2006-01-05 Gijutsu Transfer Service:Kk 2次元コード,2次元コードの形成装置及び形成方法並びに2次元コードの読取装置及び読取方法
JP2009009547A (ja) 2007-05-29 2009-01-15 Denso Wave Inc 二次元コードの生成方法およびその読取装置
JP2009093443A (ja) 2007-10-10 2009-04-30 Denso Wave Inc 二次元コードおよびその読取装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004357A (ja) * 2014-06-16 2016-01-12 株式会社トッパンTdkレーベル 秘匿対象情報の隠蔽方法、秘匿対象情報隠蔽装置、プログラム、秘匿対象情報の抽出方法、および、秘匿対象情報抽出装置
EP3311336B1 (en) 2015-06-18 2020-08-26 Hicof Inc. Authentication feature in a barcode
EP3311336B2 (en) 2015-06-18 2023-02-01 Thymaris Ltd. Authentication feature in a barcode
EP3379462A4 (en) * 2015-11-20 2019-08-21 Toppan TDK Label Co., Ltd. METHOD FOR GENERATING TWO-DIMENSIONAL CODES, A DEVICE FOR PRODUCING TWO-DIMENSIONAL CODES, A PROGRAM, A TWO-DIMENSIONAL CODE, A METHOD FOR READING TWO-DIMENSIONAL CODES AND A DEVICE FOR READING TWO-DIMENSIONAL CODES AND A SYSTEM FOR MANAGING TWO-DIMENSIONAL CODES
US10789439B2 (en) 2015-11-20 2020-09-29 Toppan Infomedia Co., Ltd. Method and device for generating two-dimensional barcode, program, two-dimensional barcode, method and device for reading two-dimensional barcode, and administration system for 2D barcode
JP2020509457A (ja) * 2017-01-24 2020-03-26 北京大碼技術有限公司 複合型二次元バーコード生成、読取装置および方法

Also Published As

Publication number Publication date
EP3065088B1 (en) 2021-03-24
JP2016189197A (ja) 2016-11-04
US20160267370A1 (en) 2016-09-15
US9858518B2 (en) 2018-01-02
CN105706118A (zh) 2016-06-22
JPWO2015064334A1 (ja) 2017-03-09
EP3065088A4 (en) 2017-08-02
EP3065088A1 (en) 2016-09-07
JP5978315B2 (ja) 2016-08-24
JP6518625B2 (ja) 2019-05-22
CN105706118B (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
JP5978315B2 (ja) 二次元コード生成方法、および、二次元コード読み取り方法
JP5914579B2 (ja) 秘匿対象情報の隠蔽方法、秘匿対象情報隠蔽装置、プログラム、秘匿対象情報の抽出方法、および、秘匿対象情報抽出装置
JP5827738B1 (ja) 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード、二次元コード読み取り方法、および、二次元コード読み取り装置
JP6035407B1 (ja) 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード、二次元コード読み取り方法、二次元コード読み取り装置、及び、二次元コード管理システム
CN109657769B (zh) 一种基于游程编码的二维码信息隐藏方法
US10789667B2 (en) Method and apparatus for digital watermarking of three dimensional object
CN105303075B (zh) 基于pdf格式的自适应文本水印方法
JP5810179B2 (ja) 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード読み取り方法、および、二次元コード読み取り装置
EP3924881B1 (en) Hybrid two-dimensional barcode reader
JP2008192111A (ja) 誤り訂正機能を持つシンボルシステムにおいて機密性向上を導入する方法、システム及び製品
CN101405762A (zh) 由一系列符号标记的数字文件、这些标记串联组成的信息以及从这种带标记的数字文件中提取标记的方法
JP6709607B2 (ja) 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード、二次元コード読み取り方法、二次元コード読み取り装置、及び、二次元コード管理システム
JP4613807B2 (ja) 文書処理装置および文書処理方法
EA002213B1 (ru) Способ идентификации изображения или документа
JP5273014B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
Puhan et al. Restoration in secure text document image authentication using erasable watermarks
JP2007174181A (ja) 文書処理装置、文書処理方法および文書処理プログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2014550585

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14858849

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2014858849

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15032419

Country of ref document: US

Ref document number: 2014858849

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE