(57)【要約】【課題】基準色領域を設けた場合であっても、記録できるデータの容量が低下することを抑制することができる二次元カラーコードを提供することである。【解決手段】本発明にかかる二次元カラーコードは、二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータを記録する。二次元カラーコード１０は、第１のデータが記録されたデータ領域１２と、前記複数の色に対応し、データ領域１２から第１のデータを読み取る際に参照される基準色がそれぞれ付された複数のセルを備える基準色領域１１と、を備える。基準色領域１１には、複数のセルの各々に付される基準色の並び順に基づいて第２のデータが記録される。【選択図】図１
2014106887.tif 000002
【特許請求の範囲】
【請求項１】
二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータを記録する二次元カラーコードであって、
前記二次元カラーコードは、
第１のデータが記録されたデータ領域と、
前記複数の色に対応し、前記データ領域から前記第１のデータを読み取る際に参照される基準色がそれぞれ付された複数のセルを備える基準色領域と、を備え、
前記基準色領域には、前記複数のセルの各々に付される前記基準色の並び順に基づいて第２のデータが記録される、
二次元カラーコード。
【請求項２】
前記複数の基準色の順番を定義し、
前記基準色領域に配置されている前記複数のセルに順番を割り当て、
記録する第１の記録データの値に対応した第１のセルに第１の基準色を配置する、
請求項１に記載の二次元カラーコード。
【請求項３】
前記第１の基準色を配置した後、
前記第１のセルを除いた前記複数のセルに再度順番を割り当て、
記録する第２の記録データの値に対応した第２のセルに第２の基準色を配置する、
請求項２に記載の二次元カラーコード。
【請求項４】
第ｎ−１（ｎは２以上の整数である）の基準色を配置した後、
前記第１乃至第ｎ−１のセルを除いた前記複数のセルに再度順番を割り当て、
記録する第ｎの記録データの値に対応した第ｎのセルに第ｎの基準色を配置する、
請求項２に記載の二次元カラーコード。
【請求項５】
前記複数のセルに順番を割り当てる際、前記記録する所定のデータのビット数で表現できる最大の数の順番を割り当てる、請求項２乃至４のいずれか一項に記載の二次元カラーコード。
【請求項６】
二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータが記録された二次元カラーコードからデータを読み取る二次元カラーコード読み取り装置であって、
前記複数の色に対応している基準色がそれぞれ付された複数のセルを備える基準色領域を前記二次元カラーコードから抽出する基準色領域抽出部と、
前記抽出された前記基準色を相互に比較することで前記基準色の各々を特定する基準色特定部と、
前記基準色領域が備える複数のセルの各々に付された前記基準色の並び順に基づいてデータを読み取る基準色領域デコード部と、を備える、
二次元カラーコード読み取り装置。
【請求項７】
前記基準色領域が備える前記複数のセルに順番を割り当て、
予め順番が定義された基準色のうちの１番目の基準色である第１の基準色が付された第１のセルに割り当てられている順番に基づいて第１の記録データをデコードする、請求項６に記載の二次元カラーコード読み取り装置。
【請求項８】
前記第１の記録データをデコードした後、
前記第１のセルを除いた前記複数のセルに再度順番を割り当て、
予め順番が定義された基準色のうちの２番目の基準色である第２の基準色が付された第２のセルに割り当てられている順番に基づいて第２の記録データをデコードする、請求項７に記載の二次元カラーコード読み取り装置。
【請求項９】
前記第ｎ−１（ｎは２以上の整数）の記録データをデコードした後、
前記第１乃至第ｎ−１のセルを除いた前記複数のセルに再度順番を割り当て、
予め順番が定義された基準色のうちのｎ番目の基準色である第ｎの基準色が付された第ｎのセルに割り当てられている順番に基づいて第ｎの記録データをデコードする、請求項７に記載の二次元カラーコード読み取り装置。
【請求項１０】
前記複数のセルに順番を割り当てる際、前記デコードする所定のデータのビット数で表現できる最大の数の順番を割り当てる、請求項７乃至９のいずれか一項に記載の二次元カラーコード読み取り装置。
【請求項１１】
二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータを記録する二次元カラーコードの生成方法であって、
データ領域に第１のデータを記録し、
前記複数の色に対応し、前記データ領域から前記第１のデータを読み取る際に参照される基準色を基準色領域に配置されている複数のセルに付し、
前記基準色を前記複数のセルに付す際の前記基準色の並び順に基づいて第２のデータを記録する、
二次元カラーコードの生成方法。
【請求項１２】
二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータが記録された二次元カラーコードからデータを読み取る二次元カラーコードの読み取り方法であって、
前記複数の色に対応している基準色がそれぞれ付された複数のセルを備える基準色領域を前記二次元カラーコードから抽出し、
前記抽出された前記基準色を相互に比較することで前記基準色の各々を特定し、
前記基準色領域が備える複数のセルの各々に付された前記基準色の並び順に基づいてデータを読み取る、
二次元カラーコードの読み取り方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は二次元カラーコード、その生成方法、及びその読み取り方法、二次元カラーコード読み取り装置に関する。
【背景技術】
【０００２】
二次元カラーコードは、カラー表現を用いて各々のセルに情報を記録するため、従来の白色および黒色を用いた二次元コードよりも高密度に情報を記録することができる。このような二次元カラーコードでは、読み取り時における光源の違いによる見た目の色変化や、経時変化による退色の影響を低減するために、基準色を所定の領域に記録する手法が提案されている。
【０００３】
特許文献１には、カラー表現される二次元コードにおいて、セルに表示される各色の基準となる参照領域を設けることができ、且つコード領域と背景とを高精度に分離できる技術が開示されている。また、特許文献２には、カラーコード内の各セル内に本来の色とは異なる色が含まれていた場合にも、確実にセルの本来の色を認識させることを可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−６１２１７号公報
【特許文献２】特開２０１１−１３４０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
二次元カラーコードでは、各々異なる複数の色を用いてデータを記録している。よって、情報の記録に使用する複数の色である基準色を二次元カラーコードに記録し、二次元カラーコードを読み取る際に基準色を参照することで、二次元カラーコードに記録されているデータを正確に読み取ることができる。
【０００６】
しかしながら、基準色を二次元カラーコードに記録するためには、基準色を記録する基準色領域を、データが記録されているデータ領域とは別に設ける必要がある。基準色領域は、基準色を記録するのみでありデータを記録することができない。このため、基準色領域を設けると、基準色領域の面積分だけ二次元カラーコードに記録できるデータの容量が減少するという問題があった。
【０００７】
上記課題に鑑み本発明の目的は、基準色領域を設けた場合であっても、記録できるデータの容量が低下することを抑制することができる二次元カラーコード、その生成方法、及びその読み取り方法、二次元カラーコード読み取り装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明にかかる二次元カラーコードは、二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータを記録する二次元カラーコードであって、前記二次元カラーコードは、第１のデータが記録されたデータ領域と、前記複数の色に対応し、前記データ領域から前記第１のデータを読み取る際に参照される基準色がそれぞれ付された複数のセルを備える基準色領域と、を備え、前記基準色領域には、前記複数のセルの各々に付される前記基準色の並び順に基づいて第２のデータが記録される。
【０００９】
本発明にかかる二次元カラーコード読み取り装置は、二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータが記録された二次元カラーコードからデータを読み取る二次元カラーコード読み取り装置であって、前記複数の色に対応している基準色がそれぞれ付された複数のセルを備える基準色領域を前記二次元カラーコードから抽出する基準色領域抽出部と、前記抽出された前記基準色を相互に比較することで前記基準色の各々を特定する基準色特定部と、前記基準色領域が備える複数のセルに付された前記基準色の並び順に基づいてデータを読み取る基準色領域デコード部と、を備える。
【００１０】
本発明にかかる二次元カラーコードの生成方法は、二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータを記録する二次元カラーコードの生成方法であって、データ領域に第１のデータを記録し、前記複数の色に対応し、前記データ領域から前記第１のデータを読み取る際に参照される基準色を基準色領域に配置されている複数のセルに付し、前記基準色を前記複数のセルに付す際の前記基準色の並び順に基づいて第２のデータを記録する。
【００１１】
本発明にかかる二次元カラーコードの読み取り方法は、二次元的に配置された複数のセルに、各々異なる複数の色の中から選択された所定の色を付すことでデータが記録された二次元カラーコードからデータを読み取る二次元カラーコードの読み取り方法であって、前記複数の色に対応している基準色がそれぞれ付された複数のセルを備える基準色領域を前記二次元カラーコードから抽出し、前記抽出された前記基準色を相互に比較することで前記基準色の各々を特定し、前記基準色領域が備える複数のセルに付された前記基準色の並び順に基づいてデータを読み取る。
【発明の効果】
【００１２】
本発明により、基準色領域を設けた場合であっても、記録できるデータの容量が低下することを抑制することができる二次元カラーコード、その生成方法、及びその読み取り方法、二次元カラーコード読み取り装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態にかかる二次元カラーコードを示す図である。
【図２Ａ】実施の形態にかかる二次元カラーコードの基準色領域にデータを記録する処理を説明するためのフローチャートである。
【図２Ｂ】実施の形態にかかる二次元カラーコードの基準色領域にデータを記録する処理を説明するためのフローチャートである。
【図３Ａ】実施の形態にかかる二次元カラーコードの基準色領域にデータを記録する処理の具体例を示す図である。
【図３Ｂ】実施の形態にかかる二次元カラーコードの基準色領域にデータを記録する処理の具体例を示す図である。
【図４】実施の形態にかかる二次元カラーコード読み取り装置を示すブロック図である。
【図５Ａ】実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理を説明するためのフローチャートである。
【図５Ｂ】実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理を説明するためのフローチャートである。
【図６Ａ】実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理の具体例を示す図である。
【図６Ｂ】実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理の具体例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本実施の形態にかかる二次元カラーコードを示す図である。図１に示すように、本実施の形態にかかる二次元カラーコード１０は、基準色領域１１とデータ領域１２とを備える。図１に示す例では、複数のセルが１６行１６列に配置されている二次元カラーコードを例として示している。しかし、セルの数や配置はこれに限定されることはなく、例えば、任意の数のセルをｐ行ｑ列（ｐ、ｑは整数である）に格子状に配置してもよい。また、セルの配置は格子状に限定されることはなく、例えば千鳥配置や円形状など、二次元的な配置であればどのような配置であってもよい。
【００１５】
また、図１に示す例では、基準色領域１１を二次元カラーコード１０の一辺に設けているが、基準色領域を設ける場所はこれに限定されることはない。基準色領域１１は、例えば、二次元カラーコードの中心付近に配置してもよく、また２辺に渡って配置してもよい。また、図１に示す例では、基準色領域１１のセルが１行に配列している（つまり、セルが直線状に配列している）場合を示しているが、基準色領域１１のセルは複数行に渡って配列していてもよい。また、図１に示す例では、基準色領域１１は連続した領域となっているが、基準色領域１１は二次元カラーコード１０内において離散的に配置されていてもよい。すなわち、基準色が付されたセルが二次元カラーコード１０内において離散的に配置されていてもよい。
【００１６】
データ領域１２には、各々異なる複数の色（基準色）の中から選択された所定の色を付すことでデータ（第１のデータ）が記録される。また、データ領域１２からデータを読み取る際は、基準色領域１１に配置された基準色が参照される。データの記録に用いる基準色の数は複数であれば何色であってもよい。本実施の形態では基準色を１６色とした場合を例として説明する。
【００１７】
基準色を１６色とした場合は、一つのセルに４ビット（１６＝２４）のデータを記録することができる。基準色として用いる色としては、例えば、白、黒、赤（Ｒ）、緑（Ｇ）、青（Ｂ）、マゼンタ、シアン、黄色に加えて、これらの色の中間色（例えば、灰色、橙色、茶色など）を用いることができる。このように、基準色の種類が多くなると各々の色の区別がつきにくくなる。しかし、これらの基準色を基準色領域１１に記録し、読み取り時に基準色領域１１に記録された基準色を参照することで、データ領域１２からデータを正確に読み取ることができる。
【００１８】
次に、基準色領域１１にデータを記録する処理について説明する。図２Ａ、図２Ｂは、本実施の形態にかかる二次元カラーコード１０の基準色領域１１にデータを記録する処理を説明するためのフローチャートである。図３Ａ、図３Ｂは、本実施の形態にかかる二次元カラーコード１０の基準色領域１１にデータを記録する処理の具体例を示す図である。
【００１９】
本実施の形態にかかる二次元カラーコード１０では、基準色領域１１の複数のセルの各々に付される基準色の並び順に基づいて基準色領域１１にデータ（第２のデータ）を記録することができる。以下では、図３Ａに示すデータ５０"００１１  ００１０  １００１  １０１０  １１１０  ０１０１  ００００  ０１１０"（３２ビットのデータ）を基準色領域１１に記録する場合を例として説明する。
【００２０】
図２Ａに示すように、まず基準色の順番＃０〜＃１５を定義する（ステップＳ１）。例えば１番目の基準色＃０を「白」、２番目の基準色＃１を「黒」、３番目の基準色＃２を「赤」、４番目の基準色＃３を「緑」、５番目の基準色＃４を「青」、６番目の基準色＃５を「マゼンタ」、７番目の基準色＃６を「シアン」、８番目の基準色＃７を「黄」・・・、の様に、１６色の基準色のそれぞれについて順番＃０〜＃１５を決定する。各々の基準色と順番＃０〜＃１５の対応関係は任意に決定することができる。
【００２１】
次に、基準色領域１１に配置されている複数のセルに順番を割り当てる。例えば、図３Ａの基準色領域５１に示すように、基準色領域に配置されている複数のセルを左から順番にＢ０〜Ｂ１５とする（ステップＳ２）。ここで、基準色領域５１の下に示しているＰ０〜Ｐ１５は、基準色領域に配置されている複数のセルの絶対的な位置を示している。つまり、位置Ｐ０〜Ｐ１５は固定されている。また、この場合は１６個のセルに順番Ｂ０〜Ｂ１５を割り当てることができるので、４ビット（１６＝２４）のデータを記録することができる。また、本実施の形態では、複数のセルを左から順番にＢ０〜Ｂ１５としているが、右から順番にＢ０〜Ｂ１５としてもよい。順番Ｂ０〜Ｂ１５は任意に割り当てることができる。
【００２２】
次に、記録する記録データ（第１の記録データ）の値に対応したセル（第１のセル）に基準色＃０（第１の基準色）を配置する（ステップＳ３）。図３Ａの基準色領域５１にはまだ基準色が配置されていないので、１６個のセルのいずれかに基準色＃０を配置することができる。よって、基準色領域５１には４ビットのデータを記録することができる。つまり、データ５０の左側から４ビット分（ブロックＡで示す）のデータを基準色領域５１に記録することができる。ここで、ブロックＡは"００１１"（１０進法で"３"）であるので、"００１１"に対応した位置Ｂ３のセルＰ３に最初の基準色＃０を配置する。
【００２３】
次に、基準色＃０を配置したセルＰ３を除いた複数のセルに再度順番を割り当てる。例えば、図３Ａの基準色領域５２に示すように、セルＰ３を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。ここで、セルＰ３には既に基準色＃０が配置されているので、残りのセルの数は１５個となる。この場合は４ビットのデータを記録することができないので、基準色領域５２には３ビット（８＝２３）に対応した順番Ｂ０〜Ｂ７を割り当てる。換言すると、複数のセルに順番を割り当てる際、記録する所定のデータのビット数で表現できる最大の数の順番を割り当てる。
【００２４】
次に、記録する記録データ（第２の記録データ）の値に対応したセル（第２のセル）に基準色＃１（第２の基準色）を配置する（ステップＳ５）。つまり、データ５０のブロックＢのデータは"００１"（１０進法で"１"）であるので、"００１"に対応した位置Ｂ１のセルＰ１に基準色＃１を配置する。
【００２５】
次に、残りの基準色領域のセルの数が７個以下であるか判断する（ステップＳ６）。この時点では残りのセルの数が７個以下ではないので（ステップＳ６：Ｎｏ）、ステップＳ４〜Ｓ６の動作を繰り返す。
【００２６】
つまり、図３Ａの基準色領域５３に示すように、基準色＃０、＃１を配置したセルＰ３、Ｐ１を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＣのデータ"０１０"（１０進法で"２"）に対応した位置Ｂ２のセルＰ４に基準色＃２を配置する（ステップＳ５）。
【００２７】
更に、図３Ａの基準色領域５４に示すように、基準色＃０、＃１、＃２を配置したセルＰ３、Ｐ１、Ｐ４を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＤのデータ"０１１"（１０進法で"３"）に対応した位置Ｂ３のセルＰ６に基準色＃３を配置する（ステップＳ５）。
【００２８】
更に、図３Ａの基準色領域５５に示すように、基準色＃０、＃１、＃２、＃３を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＥのデータ"０１０"（１０進法で"２"）に対応した位置Ｂ２のセルＰ５に基準色＃４を配置する（ステップＳ５）。
【００２９】
更に、図３Ｂの基準色領域５６に示すように、基準色＃０、＃１、＃２、＃３、＃４を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＦのデータ"１１１"（１０進法で"７"）に対応した位置Ｂ７のセルＰ１２に基準色＃５を配置する（ステップＳ５）。
【００３０】
更に、図３Ｂの基準色領域５７に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＧのデータ"００１"（１０進法で"１"）に対応した位置Ｂ１のセルＰ２に基準色＃６を配置する（ステップＳ５）。
【００３１】
更に、図３Ｂの基準色領域５８に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＨのデータ"０１０"（１０進法で"２"）に対応した位置Ｂ２のセルＰ８に基準色＃７を配置する（ステップＳ５）。
【００３２】
更に、図３Ｂの基準色領域５９に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ４）。次に、データ５０のブロックＩのデータ"０００"（１０進法で"０"）に対応した位置Ｂ０のセルＰ０に基準色＃８を配置する（ステップＳ５）。
【００３３】
上記処理を一般化すると、第ｎ−１（ｎは２以上の整数である）の基準色を配置した後、第１乃至第ｎ−１のセルを除いた複数のセルに再度順番を割り当て、記録する第ｎの記録データの値に対応した第ｎのセルに第ｎの基準色を配置する、と表現することができる。
【００３４】
基準色＃８を配置した時点において、残りのセルの数が７個以下となる（ステップＳ６：Ｙｅｓ）。よって、図３Ｂの基準色領域６０に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７、＃８を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８、Ｐ０を除いた複数のセルを左から順番にＢ０〜Ｂ３とする（図２ＢのステップＳ７）。ここで、基準色領域６０の残りのセルの数は７個であるので、基準色領域６０には３ビットのデータを記録することはできない。よって、基準色領域６０には２ビット（４＝２２）に対応した順番Ｂ０〜Ｂ３を割り当てる。次に、データ５０のブロックＪのデータ"０１"（１０進法で"１"）に対応した位置Ｂ１のセルＰ９に基準色＃９を配置する（ステップＳ８）。
【００３５】
次に、残りの基準色領域のセルの数が３個以下であるか判断する（ステップＳ９）。この時点では残りのセルの数が３個以下ではないので（ステップＳ９：Ｎｏ）、ステップＳ７〜Ｓ９の動作を繰り返す。
【００３６】
つまり、図３Ｂの基準色領域６１に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７、＃８、＃９を配置したセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８、Ｐ０、Ｐ９を除いた複数のセルを左から順番にＢ０〜Ｂ３とする（ステップＳ７）。次に、データ５０のブロックＫのデータ"１０"（１０進法で"２"）に対応した位置Ｂ２のセルＰ１１に基準色＃１０を配置する（ステップＳ８）。
【００３７】
図３Ａ、図３Ｂに示す例では、データ５０は３２ビットのデータであるので、以上の動作により基準色領域１１へのデータ５０の記録が終了する。その後、図３Ｂの基準色領域６２に示すように、残りのセルＰ７、Ｐ１０、Ｐ１３、Ｐ１４、Ｐ１５には、残りの基準色＃１１〜＃１５を配置する。このとき、基準色＃１１〜＃１５を配置する順番は任意に決定することができる。
【００３８】
３２ビットよりも大きいデータを記録する場合は、更に図２Ｂに示すステップＳ７〜Ｓ９の動作を繰り返す。そして、残りのセルの数が３個以下となった場合（ステップＳ９：Ｙｅｓ）、基準色が配置されていない残りのセルを左から順番にＢ０〜Ｂ１とする（ステップＳ１０）。この場合は、基準色領域に１ビット（２＝２１）のデータを記録することができる。その後、記録するデータに対応した位置に基準色を配置する（ステップＳ１１）。
【００３９】
次に、残りの基準色領域のセルの数が１個以下であるか判断する（ステップＳ１２）。残りのセルの数が１個以下でない場合は（ステップＳ１２：Ｎｏ）、ステップＳ１０〜Ｓ１２の動作を繰り返す。一方、残りのセルの数が１個以下である場合は（ステップＳ１２：Ｙｅｓ）、基準色領域にデータを記録することができないので、データの記録を終了する。基準色領域の残りのセルの数が１つとなった場合は、残りのセルに最後の基準色＃１５を配置することとなる。
【００４０】
以上で説明した処理により、基準色領域１１にデータを記録することができる。上記の手法を用いた場合は、１６個のセルを備える基準色領域１１には、４＋３＋３＋３＋３＋３＋３＋３＋３＋２＋２＋２＋２＋１＋１＝３８ビットのデータを記録することができる。
【００４１】
また、上記の手法以外にも、基準色領域１１の各々のセルに付される基準色の並び順を組み合わせることで、１６Ｐ１６＝１６！≒２．０９×１０１３となり、４４ビットのデータを記録することができる。
【００４２】
次に、本実施の形態にかかる二次元カラーコードを読み取る二次元カラーコード読み取り装置について説明する。図４は、本実施の形態にかかる二次元カラーコード読み取り装置を示すブロック図である。図４に示すように、二次元カラーコード読み取り装置２０は、撮像部２１、基準色領域抽出部２２、基準色特定部２３、基準色領域デコード部２４、データ領域抽出部２５、およびデータ領域デコード部２６を備える。
【００４３】
撮像部２１は、二次元カラーコード１０の画像情報を取得する。例えば、撮像部２１はカメラで構成されている。撮像部２１で取得された二次元カラーコード１０の画像データ３１は、基準色領域抽出部２２およびデータ領域抽出部２５に出力される。
【００４４】
基準色領域抽出部２２は、二次元カラーコード１０の画像データ３１の中から基準色領域１１の画像データを抽出する。抽出された基準色領域１１の画像データ３２は、基準色特定部に２３に出力される。基準色特定部２３は、基準色領域１１の各々セルに記録された基準色を相互に比較し、それぞれの基準色を特定する。特定された基準色の情報３３、３５はそれぞれ、基準色領域デコード部２４およびデータ領域デコード部２６に出力される。
【００４５】
基準色領域デコード部２４は、基準色領域１１が備える複数のセルの各々に付された基準色の並び順に基づいてデータを読み取り、読み取ったデータ３６を出力する。基準色領域１１に記録されたデータを読み取る処理については後述する。
【００４６】
データ領域抽出部２５は、二次元カラーコード１０の画像データ３１の中からデータ領域１２の画像データを抽出する。抽出されたデータ領域１２の画像データ３４は、データ領域デコード部２６に出力される。データ領域デコード部２６は、データ領域１２の各々のセルに付された色を特定し、各々のセルに記録されたデータを読み取る。データ領域デコード部２６は、各々のセルに付された色を特定する際に、基準色特定部２３で特定された基準色の情報３５を参照する。データ領域デコード部２６は、読み取ったデータ３７を出力する。
【００４７】
次に、二次元カラーコードの基準色領域からデータを読み取る処理（二次元カラーコード読み取り装置の動作）について説明する。図５Ａ、図５Ｂは、本実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理を説明するためのフローチャートである。図６Ａ、図６Ｂは、本実施の形態にかかる二次元カラーコードの基準色領域からデータを読み取る処理の具体例を示す図である。
【００４８】
図５Ａに示すように、撮像部２１は、二次元カラーコード１０の画像情報を取得する（ステップＳ２１）。次に、基準色領域抽出部２２は、二次元カラーコード１０の画像データ３１の中から基準色領域１１の画像データを抽出する（ステップＳ２２）。次に、基準色特定部２３は、基準色領域１１の各々のセルに記録された基準色を相互に比較し、それぞれの基準色を特定する（ステップＳ２３）。
【００４９】
基準色領域デコード部２４は、基準色領域１１に配置されている複数のセルに順番を割り当てる。例えば、図６Ａの基準色領域７１に示すように、基準色領域に配置されている複数のセルを左から順番にＢ０〜Ｂ１５とする（ステップＳ２４）。ここで、基準色領域７１の下に示しているＰ０〜Ｐ１５は、基準色領域に配置されている複数のセルの絶対的な位置を示している。つまり、位置Ｐ０〜Ｐ１５は固定されている。また、この場合は１６個のセルに順番Ｂ０〜Ｂ１５を割り当てることができるので、４ビット（１６＝２４）のデータを読み取ることができる。また、本実施の形態では、複数のセルを左から順番にＢ０〜Ｂ１５としているが、右から順番にＢ０〜Ｂ１５としてもよい。順番Ｂ０〜Ｂ１５は、基準色領域１１にデータを記録した際のルールに従い割り当てられる。
【００５０】
次に、予め順番が定義された基準色＃０〜＃１５のうちの最初の基準色＃０（第１の基準色）が付されたセル（第１のセル）に割り当てられている順番に基づいて記録データ（第１の記録データ）をデコードする（ステップＳ２５）。すなわち、図６Ａの基準色領域７１に示すように、基準色＃０が付されたセルＰ３の順番Ｂ３に基づいて、記録データをデコードする。この場合は、基準色＃０が付されたセルＰ３の順番Ｂ３は"３"であるので、４ビットのデータ"００１１"（ブロックＡ）を取得する。
【００５１】
次に、基準色＃０が配置されているセルＰ３を除いた複数のセルに再度順番を割り当てる。例えば、図６Ａの基準色領域７２に示すように、セルＰ３を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。ここで、セルＰ３を除いた残りのセルの数は１５個となる。よって、残りのセルから読み取ることができるデータは３ビットのデータとなる。換言すると、複数のセルに順番を割り当てる際、デコードする所定のデータのビット数で表現できる最大の数の順番を割り当てる。
【００５２】
次に、予め順番が定義された基準色＃０〜＃１５のうちの２番目の基準色＃１（第２の基準色）が付されたセル（第２のセル）に割り当てられている順番に基づいて記録データ（第２の記録データ）をデコードする（ステップＳ２７）。すなわち、図６Ａの基準色領域７２に示すように、基準色＃１が付されたセルＰ１の順番Ｂ１に基づいて、記録データをデコードする。この場合は、基準色＃１が付されたセルＰ１の順番Ｂ１は"１"であるので、３ビットのデータ"００１"（ブロックＢ）を取得する。
【００５３】
次に、基準色＃８に対応するデータ（最後の３ビットのデータに対応）を取得したか判断する（ステップＳ２８）。この時点では、まだ基準色＃８に対応するデータを取得していないので（ステップＳ２８：Ｎｏ）、ステップＳ２６〜Ｓ２８の動作を繰り返す。
【００５４】
つまり、図６Ａの基準色領域７３に示すように、基準色＃０、＃１が配置されているセルＰ３、Ｐ１を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃２が付されたセルＰ４の順番Ｂ２に基づいて、記録データをデコードする。この場合は、基準色＃２が付されたセルＰ４の順番Ｂ２は"２"であるので、３ビットのデータ"０１０"を取得する（ステップＳ２７）。
【００５５】
更に、図６Ａの基準色領域７４に示すように、基準色＃０、＃１、＃２が配置されているセルＰ３、Ｐ１、Ｐ４を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃３が付されたセルＰ４の順番Ｂ３（１０進法で"３"）に基づいて、３ビットのデータ"０１１"を取得する（ステップＳ２７）。
【００５６】
更に、図６Ａの基準色領域７５に示すように、基準色＃０、＃１、＃２、＃３が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃４が付されたセルＰ５の順番Ｂ２（１０進法で"２"）に基づいて、３ビットのデータ"０１０"を取得する（ステップＳ２７）。
【００５７】
更に、図６Ｂの基準色領域７６に示すように、基準色＃０、＃１、＃２、＃３、＃４が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃５が付されたセルＰ１２の順番Ｂ７（１０進法で"７"）に基づいて、３ビットのデータ"１１１"を取得する（ステップＳ２７）。
【００５８】
更に、図６Ｂの基準色領域７７に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃６が付されたセルＰ２の順番Ｂ１（１０進法で"１"）に基づいて、３ビットのデータ"００１"を取得する（ステップＳ２７）。
【００５９】
更に、図６Ｂの基準色領域７８に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃７が付されたセルＰ８の順番Ｂ２（１０進法で"２"）に基づいて、３ビットのデータ"０１０"を取得する（ステップＳ２７）。
【００６０】
更に、図６Ｂの基準色領域７９に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８を除いた複数のセルを左から順番にＢ０〜Ｂ７とする（ステップＳ２６）。次に、基準色＃８が付されたセルＰ０の順番Ｂ０（１０進法で"０"）に基づいて、３ビットのデータ"０００"を取得する（ステップＳ２７）。
【００６１】
上記処理を一般化すると、第ｎ−１（ｎは２以上の整数）の記録データをデコードした後、第１乃至第ｎ−１のセルを除いた複数のセルに再度順番を割り当て、予め順番が定義された基準色のうちのｎ番目の基準色である第ｎの基準色が付された第ｎのセルに割り当てられている順番に基づいて第ｎの記録データをデコードする、と表現することができる。
【００６２】
基準色＃８に対応したデータを取得した後（ステップＳ２８：Ｙｅｓ）は、図６Ｂの基準色領域８０に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７、＃８が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８、Ｐ０を除いた複数のセルを左から順番にＢ０〜Ｂ３とする（ステップＳ２９）。ここで、残りのセルの数は７個であるので、残りのセルから読み取ることができるデータは２ビットのデータとなる。次に、基準色＃９が付されたセルＰ９の順番Ｂ１（１０進法で"１"）に基づいて、２ビットのデータ"０１"を取得する（ステップＳ３０）。
【００６３】
次に、基準色＃１２に対応するデータ（最後の２ビットのデータに対応）を取得したか判断する（ステップＳ３１）。この時点では、まだ基準色＃１２に対応するデータを取得していないので（ステップＳ３１：Ｎｏ）、ステップＳ２９〜Ｓ３１の動作を繰り返す。
【００６４】
つまり、図６Ｂの基準色領域８１に示すように、基準色＃０、＃１、＃２、＃３、＃４、＃５、＃６、＃７、＃８、＃９が配置されているセルＰ３、Ｐ１、Ｐ４、Ｐ６、Ｐ５、Ｐ１２、Ｐ２、Ｐ８、Ｐ０、Ｐ９を除いた複数のセルを左から順番にＢ０〜Ｂ３とする（ステップＳ２９）。次に、基準色＃１０が付されたセルＰ１１の順番Ｂ２（１０進法で"２"）に基づいて、２ビットのデータ"１０"を取得する（ステップＳ３０）。
【００６５】
図６Ａ、図６Ｂに示す例では、記録データ７０は３２ビットのデータであるので、以上の処理により基準色領域１１から記録データ７０を読み取る処理が終了する。なお、基準色領域１１に記録されている記録データ７０のサイズ情報を、予め二次元カラーコード１０等に記録することで、基準色領域デコード部２４は、基準色＃１０に対応するデータを取得した時点で記録データ７０のデコード処理を終了することができる。
【００６６】
３２ビットよりも大きいデータが記録されている場合は、更に図５Ｂに示すステップＳ２９〜Ｓ３１の動作を繰り返す。そして、基準色＃１２に対応したデータを取得した後（ステップＳ３１：Ｙｅｓ）は、基準色が配置されていない残りのセルを左から順番にＢ０〜Ｂ１とする（ステップＳ３２）。ここで、残りのセルの数は３個であるので、残りのセルから読み取ることができるデータは１ビットのデータとなる。その後、基準色＃１３が付されたセルの順番に基づいて、１ビットのデータを取得する（ステップＳ３３）。
【００６７】
次に、基準色＃１４に対応するデータを取得したか判断する（ステップＳ３４）。この時点では、まだ基準色＃１４に対応するデータを取得していないので（ステップＳ３４：Ｎｏ）、ステップＳ３２〜Ｓ３４の動作を繰り返す。
【００６８】
つまり、基準色が配置されていない残りのセルを左から順番にＢ０〜Ｂ１とする（ステップＳ３２）。その後、基準色＃１４が付されたセルの順番に基づいて、１ビットのデータを取得する（ステップＳ３３）。
【００６９】
この時点で基準色＃１４に対応するデータは取得済みとなるので（ステップＳ３４：Ｙｅｓ）、基準色領域デコード部２４は、記録データのデコード処理を終了する。
【００７０】
以上で説明したデコード処理により、基準色領域１１に記録されている記録データを読み取ることができる。上記の処理を用いた場合は、１６個のセルを備える基準色領域１１から、４＋３＋３＋３＋３＋３＋３＋３＋３＋２＋２＋２＋２＋１＋１＝３８ビットのデータを取得することができる。
【００７１】
背景技術で説明したように、二次元カラーコードでは各々異なる複数の色を用いてデータを記録している。よって、情報の記録に使用する複数の色である基準色を二次元カラーコードに記録し、二次元カラーコードを読み取る際に基準色を参照することで、二次元カラーコードに記録されているデータを正確に読み取ることができる。
【００７２】
例えば、従来の二次元カラーコードでは、４色から８色程度の色を用いているものが多い。この理由は、色数が多くなると読み取りが困難になるからである。また、プリンターの色再現の問題もあり、使用する色数を増加するには困難が伴った。一方で、二次元カラーコードのデータ量を増加させるには色数を増加させる必要がある。例えば、１６色（４ビット）のコードを使用すれば、４色（２ビット）の場合にくらべ２倍の情報量とすることができる。６４色のコードを用いればさらに情報量を増やすことができる。
【００７３】
このように色数を増やした場合は、それぞれの色を正確に分離する必要がある。例えば、４色の場合には、ＲＧＢの各成分における強度を比較し、最も明るい色を判別するだけで色の分離が可能であった。８色の場合にも、ＲＧＢの各成分における明るさが所定値よりも強いか弱いかを判断することで８つの色を判別することができる。光源の色や輝度、周囲の環境が多少変化した場合であっても、色の判別が出来ないと言うことは少なく、どちらかと言えば二次元カラーコードの汚れや退色による色変化の影響が大きかった。
【００７４】
一方、１６色以上の色を用いる場合は、ＲＧＢ以外の中間的な色を使用する。具体的には、灰色や橙色、茶色のような色を使用する。これらの中間色はＲＧＢの各成分における強度を判別するだけでは区別するのは困難であり、ＲＧＢの比率などを用いて色を判別する必要がある。このため、１６色以上の色を使用する場合は、二次元カラーコードで使用する基準色を二次元カラーコードに予め記録しておき、この基準色と各々のセルの色とを比較することで、光源の輝度や色が変化した場合にも二次元カラーコードを正確に読み取ることができる。
【００７５】
しかしながら、基準色を二次元カラーコードに記録するためには、基準色を記録する基準色領域を、データが記録されているデータ領域とは別に設ける必要がある。このため、基準色領域を設けると、基準色領域の面積分だけ二次元カラーコードに記録できるデータの容量が減少するという問題があった。特にこの問題は、上記で説明したように、二次元カラーコードに使用する色の数が多くなればなるほど顕著となる。例えば、色の数が１６色以上となるとこの問題が顕著となる。
【００７６】
そこで本実施の形態にかかる二次元カラーコードでは、基準色領域に記録されている基準色の並び順に基づいてデータを記録している。よって、基準色を参照することで二次元カラーコードに記録されているデータを正確に読み取ることができ、更に基準色領域にもデータを記録することができるので二次元カラーコードに記録できるデータの容量が低下することを抑制することができる。
【００７７】
以上で説明した本実施の形態にかかる発明により、基準色領域を設けた場合であっても、記録できるデータの容量が低下することを抑制することができる二次元カラーコード、その生成方法、及びその読み取り方法、二次元カラーコード読み取り装置を提供することができる。
【００７８】
以上、本発明を上記実施形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００７９】
１０  二次元カラーコード
１１  基準色領域
１２  データ領域
２１  撮像部
２２  基準色領域抽出部
２３  基準色特定部
２４  基準色領域デコード部
２５  データ領域抽出部
２６  データ領域デコード部
【図１】
2014106887.tif 000003
【図２Ａ】
2014106887.tif 000004
【図２Ｂ】
2014106887.tif 000005
【図３Ａ】
2014106887.tif 000006
【図３Ｂ】
2014106887.tif 000007
【図４】
2014106887.tif 000008
【図５Ａ】
2014106887.tif 000009
【図５Ｂ】
2014106887.tif 000010
【図６Ａ】
2014106887.tif 000011
【図６Ｂ】
2014106887.tif 000012