1KB以上の大きな情報量
二次元シンボルの最大情報量は、原始的なマルチロー型(スタック型)シンボルのCode49やCode16Kは、英数字で49字または77字と従来の一次元シンボルの数倍であったが、その後、技術の進歩と供に、情報量は増加した。例えば、1989年に開発されたマルチロー型(スタック型)の代表シンボルであるPDF417は、英数字1,850字(1,108バイト)である。一方、マトリックス型シンボルでは、1987年に開発されたDataMatrixは、英数字約2,000字(約1,000バイト)、そして、QR Codeは、最大セルサイズが105×105で、最大情報量が英数字1,520字(1,045バイト)であった。
ところが、マトリックス型は、情報量を大きくするとシンボルに僅かな歪みや湾曲があるだけで読取率が大幅に低下すると言う問題があるため、標準化の過程でシンボルにアライメントパターンによる歪み補正機能を追加すことになった。そして、同時に最大情報量も増加することになった。1995年に開発されたDataMatixのECC200バージョンでは、最大セルサイズが144×144で、最大情報量は英数字2,335字(1,556バイト)になり、1996年に改良されたQR Codeのモデル2では、最大セルサイズが177×177で、最大情報量は、英数字4,296字(1,847バイト)になっている。そして、1995年に開発された最新のマトリックス型シンボルであるAztecCodeでは、最大セルサイズを151×151、最大情報量を英数字で3,067字(1,914バイト)になっている。
規格の最大情報量まで読めないマトリックスシンボル
このように最大情報量の規格は、どんどん大きくなったが、実用レベルから考えると余り意味がない。なぜなら、マトリックス型シンボルの読み取りには、二次元イメージャ(イメージ式バーコードリーダ)を使用するが、ここで使用されているイメージセンサの画素数は、価格的問題からビデオカメラで多く利用される30~40万画素程度であり、シンボルの情報量を大きくすると、1セル当たりと画素数が少なくなって読み取りできなくなるからである。近年、100万画素を超えるメガピクセルを使用した二次元イメージャが開発され、高解像度化が進んできている。しかし、実用的な読取速度を確保するためには、約500から800バイトが限界と言われ、それ以上の情報量の場合は、シンボルを分割した方が良い。
一方、スタック型シンボルでは、レーザスキャナによる読取ができるので、PDF417の場合、規格最大の1108バイト字の読み取りが可能である。しかし、イメージャを使用した場合は、同じように情報量に制限が生じる。
MaxiCodeは、最大情報量を小さく規定している。MaxiCodeは、物流の仕分けシンボルとして使用することを目的に開発されているため、シンボルサイズは約28×27mm(クワイエットゾーン含む)、情報量は英数字で77字または93字に固定して、読取速度を向上させている。
バーコードの10倍から100倍の情報化密度
二次元シンボルの情報化密度は、エンコードする情報量によって大きく変化する。例えば、細バーが0.19mmまたはセルサイズが0.25mm、情報量が英字100字とした場合、1平方センチ当たりの情報量は、PDF417が約40文字、QR Codeモデル2が約75字、VeriCodeが約100字、DataMatrix(ECC200)が120字、AztecCodeが約130字となる。こらは、Code128の情報化密度が約4文字/平方センチであることから、一次元シンボルの情報化密度の10倍から30倍となる。
マルチロー(スタック)型シンボルのPDF417では、レーザスキャナでの読み取りを考慮して、バーの高さは、バー幅の3倍以上にするような規格となっている。したがって、情報化密度は、マトリックス型シンボルに比べ3倍以上になる。
マトリックス型シンボルの中で情報化密度に差ができる理由は、ファインダーパターンによるオーバーヘッドの大きさと情報の圧縮率が異なるためである。QR Codeは、ファインダーパターンが3箇所あるためでデータエリアが少なくなっており、VeriCodeは、英文字を8ビットでエンコードしているため、情報の圧縮率が低くなっている。
マルチロー(スタック)型シンボルの情報化密度は、情報量が大きくなる程、また、横長の形状になる程、スタートストップコードのオーバーヘッドが減少するため、情報化密度は向上する。例えば、英字500文字をバー幅0.19mmでエンコードした時、PDF417の情報化密度は、約60字/平方センチとなる。
マルチロー(スタック)型シンボルでも、より情報化密度を高くする工夫がなされている。PDF417では、トランケーションシンボルと言って、スタートコードまたはストップコードの片方を取り除く方法がある。また、バーの高さをバー幅の2倍にし、スタートストップコードをシンプルにしたMicro PDF417では、50字程度までならマトリックス型シンボルと同程度の情報化密度を実現することができる。
マトリックス型シンボルの情報化密度についても、情報量が大きくなる程、情報化密度は向上する。例えば、英字500文字をセルサイズ0.25mmでエンコードした時、QR Codeの情報化密度は、約80字/平方センチとなる。
ミニチュアサイズの2次元シンボル
一次元シンボルは、如何に情報が少なくなっても、細バー0.19mmの時、数字8桁で5×21mm以下にすることは難しい。そこで、二次元シンボルが期待される。
マルチロー(スタック)型シンボルPDF417では、バーの高さがバー幅の3倍は必要であるため、例えトランケーションシンボルにしても、細バー0.19mmの時、数字8桁で6×12mmが限界で、一次元シンボルのおよそ半分である。Micro PDF417では、同じ条件で4.6×7.6mmまで小さくでき、これは一次元シンボルのおよそ1/3になる。
また、マトリックス型シンボルは、マルチロー型(スタック型)シンボルに比べ最小シンボルサイズは、遙かに小さくなるが、シンボルの種類によって、最小シンボルサイズは異なる。それは、最小セル数のシンボル規格による。例えば、最小セル数は、DataMatrix (ECC50)が9×9、DataMatrix (ECC200)が10×10、VeriCodeが10×10、Micro QR Codeが11×11、AztecCodeが15×15、QR Codeが21×21である。QR Codeの最小シンボルサイズが特に大きいのは、3箇所の角にファインダーパターンがあるからである。これを極小シンボルサイズに対応させるために、ファインダーパターンを1つにしたMicro QR Codeが開発された。そして、近年、最小セルサイズを9×9にしたiQR Codeが開発された。
マトリックス型シンボルの最小サイズは、数字14桁をセルサイズ0.25mm、誤り訂正能力10~15%で作成した場合、Micro QR Codeが5.8×5.8mm、DataMatrixが4.1×4.1mm、AztecCodeが4.3×4.3mm、QR Codeが7.4×7.4mmとなる。また、マルチロー型(スタック型)シンボルでは、Micro PDF417が14.5×4.6mmとなるが、省スペースシンボルGS1 Databar Stackedを使用すると二次元シンボルに近い12.7×3.3mmまで小さくできる。
今まで、シンボルサイズを面積で比較してきたが、実際の運用では、面積比だけで選択できないことがある。例えば、プリント基板の周囲にマーキングをしたい場合は、正方形より長方形の方が都合良い。このような場合は、面積比は劣っていても、長方形にできるマルチロー(スタック)型シンボルやDataMatixの方が適している場合がある。そこで、近年、開発されたiQR Codeでは、この長方形に対応している。
最小シンボルサイズ
シンボル | 最小セル数 | 最小サイズ | 数字データ |
DataMatrx | 10×10 | 2.5mm×2.5mm+QZ(0.25mm) | 6桁 |
Micro QR Code | 11×11 | 2.8mm×2.8mm+QZ(1mm) |
5桁 |
QR Code | 21×21 | 5.3mm×5.3mm+QZ(1mm) | 40桁 |
MicroPDF417 |
モジュール0.19mm | 6.8mm×4.2mm+QZ(0.25mm) | 8桁 |
GS1 Databar Stacked | モジュール0.17mm | 8.5mm×2.2mm | 14桁 |
QZ:クワイエットゾーン
カナ、漢字からバイナリーまで対応
一次元シンボルは、1シンボルキャラクタが1文字になっていたが、近代的な二次元シンボルは、必ずしも1対1に対応していない。Code128の数字モードは、1シンボルキャラクタが2桁の数字を表すように、二次元シンボルでは、数字や英字のように1バイト(8ビット)を必要としない場合は、自動的に圧縮されるようになっている。
マルチロー(スタック)型シンボルのPDF417では、928コードワードが用意されており、コードワード単位にコード化される。英数字記号モードでは、2文字が1コードワードに変換され、数字モードでは、約3桁が1コードワードに変換される。バイナリーモードでは、256種のデータを900進数に変換するので、6バイトが5コードワードになる。
QR CodeやAztecCodeにおいても、英数字記号モード、数字モード、バイナリーモードがあり、それぞれ最小化されてエンコードされる。したがって、バイナリーモードで指定してエンコードしない限り、同じ文字数でも、エンコードモードによってシンボルサイズが変わってくる。そこで、ラベルをデザインする場合は、シンボルがラベルからはみ出さないように注意しなければならない。
VeriCodeは、バイナリーモードのみであるために、英字や数字のみであっても、シンボルサイズは小さくならない。したがって、シンボルを最小化したい場合は、エンコードする前にデータの最小化をしておく必要がある。
汚れたシンボルの読み取りを可能にする誤り訂正能力
一次元シンボルは、バーが1本でも欠けたり、増えたりしたら決して読み取ることはできない。このことが、一次元シンボルは信頼性が高く、誤読が発生しにくいことの理由である。しかし、二次元シンボルでは、バーやセルが小さいために、一次元シンボルに比べ損傷を受ける確率は非常に高い。そこで、二次元シンボルでは、損傷を受けたデータを演算により元に戻すために、誤り訂正機能を持つことが一般的になっている。この技術は、データ通信やデジタル信号処理の世界では古くから使用されていた技術である。
二次元シンボルは、この誤り訂正方法により読取率に差が出ることから、各メーカともに凌ぎを削って改良してきた。誤り訂正方式は、コンボリューショナル方式とリードソロモン方式が代表的であり、コンボリューショナル方式は少ないデータに有効で、リードソロモン方式は、大きなデータに有効であると言われている。オリジナルなVeriCodeとDataMatrix (ECC000~ECC140)の旧バージョンは、コンボリューショナル方式を使用していたが、三菱商事が改良した新VeriCodeと歪み補正を採用したDataMatrix (ECC200)は、リードソロモン方式に変更されている。したがって、現在は、リードソロモン方式が主流となっている。
誤り訂正レベルは、一般的に使用環境により5%から30%程度を何段階かに分けて設定できるようになっている。AztecCodeは、誤り訂正データをシンボルの5%から99%まで任意に設定できるようになっているため、環境に合わせて最適な誤り訂正率を設定できる。QR Codeは、L(7%), M(15%), Q(25%), H(30%) の4段階であったが、iQR Codeでは、L(7%), M(15%), Q(25%), H(30%), S(50%) の5段階に増やした。PDF417は、セキュリティレベルと言って、復元可能なコードワード数で表している。例えば、セキュリティレベルをレベル5の62コードワードに設定すると、62コードワードの障害までデータを復元できることになる。
また、誤り訂正を付加させると言うことは、その分シンボルサイズが大きくなるということも承知しておかなければならない。
誤り訂正機能の効能と副作用
誤り訂正能力は、汚れや傷に対する万能薬のように見られることが多いが、実は、この薬が効かない場合や副作用もある。例えば、QR Code、MaxiCode、AztecCodeのようなファインダーパターンがあるシンボルで、そのファインダーパターンが汚れて見えなくなってしまった時、誤り訂正機能が働いて、読み取りできるであろうか。一般的にリーダは、このファインダーパターンを見つけてシンボルの種類を認識しているので、シンボルの種類が認識できなければ、当然読み取ることはできない。また、ファインダーパターン以外の方法でシンボルを認識できる特殊なプログラムを持っているリーダがあったとしても、読取時間が非常に長くなることになり、誤り訂正機能に救われることはない。
また、二次元シンボルをファックスで送信したり、ドットプリンタで印刷した時、誤り訂正能力により確実な読み取りを保証できるだろうか。いずれの場合も二次元シンボルが全体にぼけていれば、正しいデータの読み取りができないため、誤り訂正の演算をすることはできない。このような場合は、原始的ではあるが、バーやセルのサイズをできる限り大きくする方が効果的である。
誤り訂正能力の副作用とは、シンボルサイズとデコード時間のことである。誤り訂正能力を高めると言うことは、既に説明したようにシンボルサイズが大きくなる。しかし、これ以上に問題なことは、演算が増えるためにデコード時間が長くなることである。通常、100文字程度のデータであれば、0.2から0.3秒の読取時間に充分抑えることができるが、誤り訂正能力を高くすると0.5秒程度にすぐ低下してしまうことがある。これは、デコーダの処理速度に依存するので、使用する前に充分テストをするようにしたい。
高速読取
自動仕分システムでは、仕分コードを高速で読み取って、ソータに指示を出さなければならない。宅配会社のUPSは、このためにMaxiCodeを開発した。MaxiCodeは、シンボルの中心に同心円のファインダーパターンを配置し、素早くシンボルを見つけられるようにした。また、シンボルサイズを約1インチに固定し、情報量も144コードワードと小さく1種類に固定化することによってデコーディング速度を早くするように工夫している。
QR Codeは、その名のとおりQuick Response(高速読取)のために開発されたシンボルで、シンボルのコーナに四角形のファインダーパターンを配置し、素早くシンボルを見つけられるようにしている。さらに、3カ所のファインダーパターンにより回転角の検知も高速になるように工夫している。しかし、シンボルサイズを検知するために、2つのファインダーパターンの距離(セル数)をカウントしなければならないので、その分読み取りが遅くなるが、ハードウェアでシンボルの切り出しを行うことにより、驚異的な読取速度を実現できる。
AztecCodeは、四角形のファインダーパターンをMaxiCodeと同じようにシンボルの中心に配置することによって素早くシンボルを見つけるようにしている。回転角を検知するために、ファインダーパターンのコーナーに回転検知セルを配置している。さらに、シンボルサイズ、レイヤ数、誤り訂正レベル等のシンボルを決定するための基本情報をファインダーパターンの周囲に配置することにより、素早くデコーディングに入れるようになっている。