このページは、下記仕様書を理解するためにまとめたメモです。
元の仕様書に曖昧な点やどう見ても入力ミスと思われる値などがあったので正確でないところがあるかと思います。
GS1 General Specifications(GS1という組織が公開している仕様書)
JIS X 0509 情報技術-自動認識及びデータ取得技術-バーコードシンボル体系仕様-GS1 データバー
GS1という組織がRSS(Reduced Space Symbology)を改名してGS1データバーとした。
キャラクタセット | 符号化コード | チェックサム | バーコードシンボルの名称 | 多方向スキャナ | |
---|---|---|---|---|---|
タイプ1 | 4つのシンボルキャラクタ 数字0-9 | GTIN-14 14桁の数字 | mod79 | GS1データバー標準型 | 読み取りやすい |
GS1データバー切詰型 | |||||
GS1データバー二層型 | |||||
GS1データバー標準二層型 | 読み取りやすい | ||||
タイプ2 | 2つのシンボルキャラクタ 数字0-9 | GTIN-14 13桁の数字 | mod89 | GS1データバー限定型 | |
タイプ3 | 可変長シンボルキャラクタ 数字・特殊文字(FNC1) 英大小文字・記号20種類 | GS1-128と同じコード 最大74桁の数字 最大41文字の英数字 | mod211 | GS1データバー拡張型 | 読み取りやすい |
GS1データバー拡張多層型 | 読み取りやすい |
左側 ガード | + | シンボル キャラクター 1 (16,4) | + | 左側 位置検出 パターン | + | シンボル キャラクター 2 (15,4) | + | シンボル キャラクター 4 (15,4) | + | 右側 位置検出 パターン | + | シンボル キャラクター 3 (16,4) | + | 右側 ガード |
---|
左側ガード | : | 1モジュールのスペース + 1モジュールのバー |
シンボルキャラクタ1(16,4) | : | 16モジュール(左から右に4つのスペースと4つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
左側位置検出パターン | : | 15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ2(15,4) | : | 15モジュール(右から左に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
シンボルキャラクタ4(15,4) | : | 15モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
右側位置検出パターン | : | 15モジュール(右から左に3つのバーと2つのスペース)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ3(16,4) | : | 16モジュール(右から左に4つのバーと4つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
右側ガード | : | 1モジュールのスペース + 1モジュールのバー |
・先頭の(01)はアプリケーション識別子で、シンボルには含まれないが、リーダからは送信される。
・最後の1桁の9は、GTIN-14のチェックデジットで、シンボルには含まれないが、リーダからは送信される。
・14桁のコードの最初の1桁は連結フラッグで0か1、その後の13桁はGTIN-14のチェックデジットを除いたもの。
・連結フラッグが1の場合は二次元コンポーネントが連結している。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の33倍以上必要。1モジュール=0.254mmなら高さ8.382mm以上
・シンボル幅は96モジュールで46のエレメント(スペースとバー)で構成
・位置検出パターンはチェックキャラクタ・セグメント識別子としても機能する。
・シンボル値 = 左側キャラクタ対 X 4537077 + 右側キャラクタ対
・左側キャラクタ対 = シンボル値 div 4537077
・右側キャラクタ対 = シンボル値 mod 4537077
・キャラクタ対 = 外側キャラクタ X 1597 + 内側キャラクタ
・外側キャラクタ = キャラクタ対 div 1597
・内側キャラクタ = キャラクタ対 mod 1597
・キャラクタ1 = 左キャラクタ対 div 1597
・キャラクタ2 = 左キャラクタ対 mod 1597
・キャラクタ3 = 右キャラクタ対 div 1597
・キャラクタ4 = 右キャラクタ対 mod 1597
奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値
2.モジュール数
3.エレメント数
4.最大エレメント幅
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ
キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数
グループ | キャラクタ値 | モジュール数 奇数/偶数 | 最大エレメント幅 奇数/偶数 | 偶数成分 組合せ総数 |
---|---|---|---|---|
1 | 0 - 160 | 12/4 | 8/1 | 1 |
2 | 161 - 960 | 10/6 | 6/3 | 10 |
3 | 961 - 2014 | 8/8 | 4/5 | 34 |
4 | 2015 - 2714 | 6/10 | 3/6 | 70 |
5 | 2715 - 2840 | 4/12 | 1/8 | 126 |
キャラクタ値 = 偶数成分値 X 奇数成分組合せ総数 + 奇数成分値 + グループ内の最小値
偶数成分値 = (キャラクタ値 - グループ内の最小値)div 奇数成分組合せ総数
奇数成分値 = (キャラクタ値 - グループ内の最小値)mod 奇数成分組合せ総数
グループ | キャラクタ値 | モジュール数 奇数/偶数 | 最大エレメント幅 奇数/偶数 | 奇数成分 組合せ総数 |
---|---|---|---|---|
1 | 0 - 335 | 5/10 | 2/7 | 4 |
2 | 336 - 1035 | 7/8 | 4/5 | 20 |
3 | 1036 - 1515 | 9/6 | 6/3 | 48 |
4 | 1516 - 1596 | 11/4 | 8/1 | 81 |
チェックサムは、シンボルキャラクタの各エレメント幅と重みを掛け合わせた総和をmod79した値。
シンボル キャラクタ | 各エレメントの重み | |||||||
---|---|---|---|---|---|---|---|---|
1 | 1 | 3 | 9 | 27 | 2 | 6 | 18 | 54 |
2 | 4 | 12 | 36 | 29 | 8 | 24 | 72 | 58 |
3 | 16 | 48 | 65 | 37 | 32 | 17 | 51 | 74 |
4 | 64 | 34 | 23 | 69 | 49 | 68 | 46 | 59 |
チェックサム mod79 の計算値からチェックキャラクタを計算して、パターンを決める。
チェックサムが8以上ならチェックサムを+1する。その値が72以上ならまたチェックサムを+1する。
左側チェックキャラクタ = チェックサム div 9
右側チェックキャラクタ = チェックサム mod 9
8と0または0と8という組合せは使用しない。
チェック キャラクタ | エレメント幅 | ||||
---|---|---|---|---|---|
0 | 3 | 8 | 2 | 1 | 1 |
1 | 3 | 5 | 5 | 1 | 1 |
2 | 3 | 3 | 7 | 1 | 1 |
3 | 3 | 1 | 9 | 1 | 1 |
4 | 2 | 7 | 4 | 1 | 1 |
5 | 2 | 5 | 6 | 1 | 1 |
6 | 2 | 3 | 8 | 1 | 1 |
7 | 1 | 5 | 7 | 1 | 1 |
8 | 1 | 3 | 9 | 1 | 1 |
上段 左側 ガード | + | シンボル キャラクター 1 (16,4) | + | 左側 位置検出 パターン | + | シンボル キャラクター 2 (15,4) | + | 上段 右側 ガード |
---|---|---|---|---|---|---|---|---|
----------分離パターン---------- | ||||||||
下段 左側 ガード | + | シンボル キャラクター 4 (15,4) | + | 右側 位置検出 パターン | + | シンボル キャラクター 3 (16,4) | + | 下段 右側 ガード |
上段左側ガード | : | 1モジュールのスペース + 1モジュールのバー |
シンボルキャラクタ1(16,4) | : | 16モジュール(左から右に4つのスペースと4つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
左側位置検出パターン | : | 15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ2(15,4) | : | 15モジュール(右から左に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
上段右側ガード | : | 1モジュールのバー + 1モジュールのスペース |
分離パターン | : | 3段で構成される。1段の高さは1モジュール幅と同じ。 |
下段左側ガード | : | 1モジュールのバー + 1モジュールのスペース |
シンボルキャラクタ4(15,4) | : | 15モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
右側位置検出パターン | : | 15モジュール(右から左に3つのバーと2つのスペース)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ3(16,4) | : | 16モジュール(右から左に4つのバーと4つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
下段右側ガード | : | 1モジュールのスペース + 1モジュールのバー |
・上段/下段のシンボル幅は50モジュールで25のエレメント(スペースとバー)で構成
・最小シンボル高さは、1モジュール幅の69倍(33+3+33)
・両端の4モジュール分には分離パターンはなし(常に白)。
・上段パターンは上段シンボルと反対色。左側位置検出パターンのエレメント1とエレメント3は例外で、黒・白・黒...と1モジュール幅で繰り返す。
・下段パターンは下段シンボルと反対色。右側位置検出パターンのエレメント2は例外で、黒・白・黒...と1モジュール幅で繰り返す(左から右に)。
右側位置検出パターンの値が3の場合は、エレメント2は1モジュール幅になるが、その黒1モジュールを右に1モジュール分ずらす。
・中断パターンは、白・黒...と1モジュール幅で繰り返す。
・標準型との違いは、高さが最小(13 x 1モジュール幅)に切り詰めただけ。
・標準二層型との違い
1.上段の高さは、5 x 1モジュール幅
2.下段の高さは、7 x 1モジュール幅
3.分離パターンは、1段のみ
・両端の4モジュール分には分離パターンはなし(常に白)。
・上段と下段が共にバー(黒)の時はスペース(白)。
・上段と下段が共にスペース(白)の時はバー(黒)。
・上段と下段が異なる時は、左側の分離モジュールの反対色にする。これは、1モジュール幅単位で繰り返す。
左側 ガード | + | 左側シンボル キャラクター (26,7) | + | チェック キャラクタ (18,7) | + | 右側シンボル キャラクター (26,7) | + | 右側 ガード |
---|
左側ガード | : | 1モジュールのスペース + 1モジュールのバー |
左側シンボルキャラクタ(26,7) | : | 26モジュール(左から右に7つのスペースと7つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
チェックキャラクタ | : | 18モジュール(左から右に7つのスペースと7つのバー)最後の2エレメントは1モジュール幅 |
右側シンボルキャラクタ(26,7) | : | 26モジュール(左から右に7つのバーと7つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
右側ガード | : | 1モジュールのスペース + 1モジュールのバー + 5モジュールのスペース |
・先頭の(01)はアプリケーション識別子で、シンボルには含まれないが、リーダからは送信される。
・最後の1桁の7は、GTIN-14のチェックデジットで、シンボルには含まれないが、リーダからは送信される。
・GTIN-14の最初の1桁のインジケータが0か1の商品コードのみ扱える。
・連結フラッグが設定されている場合は二次元コンポーネントが連結している。
・シンボル化できるのは13桁(最大1999999999999)のコードで、連結フラッグを設定する時は値2015133531096を加算する。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の10倍以上必要。
・シンボル幅は79モジュールで47のエレメント(スペースとバー)で構成
・奇数番目のエレメントがスペースで、偶数番目のエレメントがバー。
・シンボル値 = 左側キャラクタ値 X 2013571 + 右側キャラクタ値
・左側キャラクタ値 = シンボル値 div 2013571
・右側キャラクタ値 = シンボル値 mod 2013571
奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値
2.モジュール数
3.エレメント数
4.最大エレメント幅
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ
キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数
グループ | キャラクタ値 | モジュール数 奇数/偶数 | 最大エレメント幅 奇数/偶数 | 偶数成分 組合せ総数 |
---|---|---|---|---|
1 | 0 - 183063 | 17/9 | 6/3 | 28 |
2 | 183064 - 820063 | 13/13 | 5/4 | 728 |
3 | 820064 - 1000775 | 9/17 | 3/6 | 6454 |
4 | 1000776 - 1491020 | 15/11 | 5/4 | 203 |
5 | 1491021 - 1979844 | 11/15 | 4/5 | 2408 |
6 | 1979845 - 1996938 | 19/7 | 8/1 | 1 |
7 | 1996939 - 2013570 | 7/19 | 1/8 | 16632 |
チェックサムは、シンボルキャラクタの各エレメント幅と重みを掛け合わせた総和をmod89した値。
シンボル キャラクタ | 各エレメントの重み | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
左 | 1 | 3 | 9 | 27 | 81 | 65 | 17 | 51 | 64 | 14 | 42 | 37 | 22 | 66 |
右 | 20 | 60 | 2 | 6 | 18 | 54 | 73 | 41 | 34 | 13 | 39 | 28 | 84 | 74 |
チェックサム mod89 の計算値がチェックキャラクタ。
シーケンス = スペースパターン値 X 21 + バーパターン値
奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値 = シーケンス div 21・シーケンス mod 21
2.モジュール数 = 8
3.エレメント数 = 6
4.最大エレメント幅 = 3
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ = 1(含まなくても良い)
値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス | 値 | シーケンス |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 10 | 10 | 20 | 20 | 30 | 30 | 40 | 40 | 50 | 66 | 60 | 127 | 70 | 146 | 80 | 316 |
1 | 1 | 11 | 11 | 21 | 21 | 31 | 31 | 41 | 41 | 51 | 73 | 61 | 128 | 71 | 210 | 81 | 317 |
2 | 2 | 12 | 12 | 22 | 22 | 32 | 32 | 42 | 42 | 52 | 74 | 62 | 129 | 72 | 211 | 82 | 318 |
3 | 3 | 13 | 13 | 23 | 23 | 33 | 33 | 43 | 43 | 53 | 75 | 63 | 130 | 73 | 212 | 83 | 319 |
4 | 4 | 14 | 14 | 24 | 24 | 34 | 34 | 44 | 45 | 54 | 76 | 64 | 132 | 74 | 213 | 84 | 320 |
5 | 5 | 15 | 15 | 25 | 25 | 35 | 35 | 45 | 52 | 55 | 77 | 65 | 141 | 75 | 214 | 85 | 322 |
6 | 6 | 16 | 16 | 26 | 26 | 36 | 36 | 46 | 57 | 56 | 78 | 66 | 142 | 76 | 215 | 86 | 323 |
7 | 7 | 17 | 17 | 27 | 27 | 37 | 37 | 47 | 63 | 57 | 79 | 67 | 143 | 77 | 216 | 87 | 326 |
8 | 8 | 18 | 18 | 28 | 28 | 38 | 38 | 48 | 64 | 58 | 82 | 68 | 144 | 78 | 217 | 88 | 337 |
9 | 9 | 19 | 19 | 29 | 29 | 39 | 39 | 49 | 65 | 59 | 126 | 69 | 145 | 79 | 220 |
左側 ガード | + | チェック キャラクター (17,4) | + | 位置検出 パターン A1 | + | シンボル キャラクター 1 (17,4) | + | シンボル キャラクター 2 (17,4) | + | 位置検出 パターン B2 | + | シンボル キャラクター 3 (17,4) | + | シンボル キャラクター 4 (17,4) | + | 位置検出 パターン B1 | + | シンボル キャラクター 5 (17,4) | + | 右側 ガード |
---|
左側ガード | : | 1モジュールのスペース + 1モジュールのバー |
チェックキャラクタ(17,4) | : | 17モジュール(左から右に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
位置検出パターンA1 | : | 15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ1(17,4) | : | 17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
シンボルキャラクタ2(17,4) | : | 17モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
位置検出パターンB2 | : | 15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ3(17,4) | : | 17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
シンボルキャラクタ4(17,4) | : | 17モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
位置検出パターンB1 | : | 15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅 |
シンボルキャラクタ5(17,4) | : | 17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要 |
右側ガード | : | 1モジュールのバー + 1モジュールのスペース |
・最初のシンボルキャラクタはチェックキャラクタで、チェックサムとシンボル長が符号化される。
・位置検出パターンとその両側にあるシンボルキャラクタを1組にして、その連続でシンボルを構成する。
・シンボルキャラクタが奇数の場合は、最後は位置検出パターンとなる。
・シンボル値は2進数として内部表現され、シンボルキャラクタ数 × 12ビットのバイナリ列となる。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の34倍以上必要。
キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数
・シンボルキャラクタ値の範囲は、0~4095(12bitの2進数)。
・奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要。
・奇数エレメントの1番目は、4モジュール以下の幅とする。
グループ | キャラクタ値 | モジュール数 奇数/偶数 | 最大エレメント幅 奇数/偶数 | 偶数成分 組合せ総数 |
---|---|---|---|---|
1 | 0 - 347 | 12/5 | 7/2 | 4 |
2 | 348 - 1387 | 10/7 | 5/4 | 20 |
3 | 1388 - 2947 | 8/9 | 4/5 | 52 |
4 | 2948 - 3987 | 6/11 | 3/6 | 104 |
5 | 3988 - 4191 | 4/13 | 1/8 | 204 |
・GS1-128規則に従ってAIエレメント列を連結する。(可変長エレメント列の最後はFNC1)
・シンボルキャラクタ数 × 12ビットのバイナリ列は、下記の5領域に分割される。
1.二次元コンポーネント連結フラッグ
2.符号化方式
3.可変長シンボルビット
4.圧縮データ
5.汎用データ圧縮
連結フラッグは1ビットで、1なら二次元コンポーネントが連結している。
符号化方式領域 | シンボルキャラクタ数 | 圧縮データ領域長 | 汎用データ圧縮領域 | AIエレメント列 |
---|---|---|---|---|
1 | 5 - 22 | 44 | あり | (01)商品識別コード+他のAI |
00 | 4 - 22 | 0 | あり | (01)商品識別コード以外の任意のAI |
0100 | 6 | 55 | (01)商品識別コード+(3103)計量商品の計測値(0.001Kg) | |
0101 | 6 | 55 | (01)商品識別コード+(3202)/(3203)計量商品の計測値(0.01lb/0.001lb) | |
01100 | 6 - 22 | 42 | あり | (01)商品識別コード+(392x)計量商品金額(各国通貨) |
01101 | 7 - 22 | 52 | あり | (01)商品識別コード+(393x)計量商品金額(ISO通貨コード) |
0111000 | 8 | 76 | (01)商品識別コード+(310x)計量商品の計測値+(11)製造年月日 | |
0111001 | 8 | 76 | (01)商品識別コード+(320x)計量商品の計測値+(11)製造年月日 | |
0111010 | 8 | 76 | (01)商品識別コード+(310x)計量商品の計測値+(13)包装年月日 | |
0111011 | 8 | 76 | (01)商品識別コード+(320x)計量商品の計測値+(13)包装年月日 | |
0111100 | 8 | 76 | (01)商品識別コード+(310x)計量商品の計測値+(15)品質保持期限日 | |
0111101 | 8 | 76 | (01)商品識別コード+(320x)計量商品の計測値+(15)品質保持期限日 | |
0111110 | 8 | 76 | (01)商品識別コード+(310x)計量商品の計測値+(17)有効期限 | |
0111111 | 8 | 76 | (01)商品識別コード+(320x)計量商品の計測値+(17)有効期限 |
シンボルキャラクタ数が可変の場合に存在し、2ビットで構成される。
ビット構成 | ビット値0 | ビット値1 |
---|---|---|
1番目 | シンボルキャラクタ数が偶数 | シンボルキャラクタ数が奇数 |
2番目 | シンボルキャラクタ数が14以下 | シンボルキャラクタ数が15以上 |
商品識別コードからAIの01とチェックディジット(最後の1桁)を除いた13桁を2進数へ変換して複合化する。
商品識別コード | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 4 | 10 | 10 | 10 | 10 |
商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(3103)を除いた6桁の計測値を2進数へ変換して符号化する。最大値は32.767Kg。
商品識別コード | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 計量値5桁 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 10 | 10 | 10 | 10 | 15 |
商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(3202)を除いた6桁の計測値(最大値は99.99lb)を2進数へ変換して符号化する。
計測値のAI(3203)を除いた6桁の計測値(最大値は22.767lb)に10000を加えたものを2進数へ変換して符号化する。
商品識別コード | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 計量値5桁 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 10 | 10 | 10 | 10 | 15 |
商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(310x)/(320x)の最後の1桁(x)と6桁の計測値の下5桁を6桁にして2進数へ変換して符号化する。
年月日のAI(11)/(15)/(17)を除き下記の通り日付を圧縮して(0 - 38399)2進数へ変換して符号化する。
圧縮された年月日が38400の場合は、日付領域が符号化されてないことを意味する。
これは符号化方式「0100」/「0101」の計測値の最大値を超えた場合に日付なしで用いられる。
年月日YYMMDD → YY x 384 + (MM - 1) x 32 + DD = 0 ~ 38399
商品識別コード | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | AIの最後の1桁と計量値下5桁 | 圧縮した日付 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 10 | 10 | 10 | 10 | 20 | 16 |
商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(392x)の最後の1桁(x)は小数点以下の数を表し、0~3の値となる。
計測値のAI(392x)の最後の1桁を2進数へ変換して符号化する。
計量商品金額(15桁までの可変長)は、汎用データ圧縮領域に符号化される。
商品識別コード | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | AIの最後の1桁 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 10 | 10 | 10 | 10 | 2 |
商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(393x)の最後の1桁(x)は小数点以下の数を表し、0~3の値となる。
計測値のAI(393x)の最後の1桁を2進数へ変換して符号化する。
ISO通貨コード3桁を2進数へ変換して符号化する。
計量商品金額(15桁までの可変長)は、汎用データ圧縮領域に符号化される。
商品識別コード | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | AIの最後の1桁 | ISO通貨コード3桁 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ビット数 | 10 | 10 | 10 | 10 | 2 | 10 |
数字とFNC1を用い、1文字当たり3.5ビット必要。
汎用データ圧縮領域の最初に有効になる符号化方式。
2桁の数字、FNC1+数字、数字+FNC1を下記式で変換して7ビットに符号化する。
値 = 11 × 1桁目 + 2桁目 + 8 (FNC1は10で計算)
値は8~127になる。7ビットでは、0001000~1111111。
この7ビットに続き4ビットの0000が続くと、英数字符号化方式への切り替えを意味する。
残りのビット数が4ビット以上になるように下記式で計算する。
残りビット(4ビット以上) = 12(シンボルキャラクタ1つで12ビット) × N - 現時点での合計ビット数
残りビット数が4~6の場合は、数字に1を加えたものを4ビットに符号化する。 残りビット数が7以上の場合は、数字+FNC1を7ビットに符号化し、残りはパディングビットで埋める。 パディングビットは、0000で英数字符号化方式に切り替え、00100を繰り返す。(JIS X 0201 符号化方式と英数字符号化方式の切り替えを繰り返す)
数字とFNC1及び英大文字と5つの記号を用い、数字とFNC1は1文字当たり5ビット、英大文字と記号は1文字当たり6ビット必要。
次のキャラクタが数字で18文字以上ある場合は数字切換えする。
次のキャラクタ以降が12文字以上の数字列で、データが終了する場合は数字切換えする。
残りのビットは、パディングビットで埋める。パディングビットは00100を繰り返す。
キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 |
---|---|---|---|---|---|---|---|
数字切換え | 000 | A | 100000 | N | 101101 | * | 111010 |
JISX0201切換え | 00100 | B | 100001 | O | 101110 | , | 111011 |
0 | 00101 | C | 100010 | P | 101111 | - | 111100 |
1 | 00110 | D | 100011 | Q | 110000 | . | 111101 |
2 | 00111 | E | 100100 | R | 110001 | / | 111110 |
3 | 01000 | F | 100101 | S | 110010 | ||
4 | 01001 | G | 100110 | T | 110011 | ||
5 | 01010 | H | 100111 | U | 110100 | ||
6 | 01011 | I | 101000 | V | 110101 | ||
7 | 01100 | J | 101001 | W | 110110 | ||
8 | 01101 | K | 101010 | X | 110111 | ||
9 | 01110 | L | 101011 | Y | 111000 | ||
FNC1 | 01111 | M | 101100 | Z | 111001 |
数字とFNC1及び英大文字と英小文字及び21個の記号を用い、数字とFNC1は1文字当たり5ビット、英大文字と英小文字は1文字当たり7ビット、記号は1文字当たり8ビット必要。
次のキャラクタ以降が12文字以上の数字列の場合は数字切換えする。
次のキャラクタ以降10個の中に英小文字や記号(JISX0201符号化方式だけの文字)が含まれていなく、英数字符号化方式で符号化できる場合は、英数字切換えする。
残りのビットは、パディングビットで埋める。パディングビットは00100を繰り返す。
キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 | キャラクタ | 2進数 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
数字切換え | 000 | A | 1000000 | N | 1001101 | a | 1011010 | n | 1100111 | | | 11101000 | : | 11110101 |
英数字切換え | 00100 | B | 1000001 | O | 1001110 | b | 1011011 | o | 1101000 | " | 11101001 | ; | 11110110 |
0 | 00101 | C | 1000010 | P | 1001111 | c | 1011100 | p | 1101001 | % | 11101010 | < | 11110111 |
1 | 00110 | D | 1000011 | Q | 1010000 | d | 1011101 | q | 1101010 | & | 11101011 | = | 11111000 |
2 | 00111 | E | 1000100 | R | 1010001 | e | 1011110 | r | 1101011 | ' | 11101100 | > | 11111001 |
3 | 01000 | F | 1000101 | S | 1010010 | f | 1011111 | s | 1101100 | ( | 11101101 | ? | 11111010 |
4 | 01001 | G | 1000110 | T | 1010011 | g | 1100000 | t | 1101101 | ) | 11101110 | _ | 11111011 |
5 | 01010 | H | 1000111 | U | 1010100 | h | 1100001 | u | 1101110 | * | 11101111 | スペース | 11111100 |
6 | 01011 | I | 1001000 | V | 1010101 | i | 1100010 | v | 1101111 | + | 11110000 | ||
7 | 01100 | J | 1001001 | W | 1010110 | j | 1100011 | w | 1110000 | , | 11110001 | ||
8 | 01101 | K | 1001010 | X | 1010111 | k | 1100100 | x | 1110001 | - | 11110010 | ||
9 | 01110 | L | 1001011 | Y | 1011000 | l | 1100101 | y | 1110010 | . | 11110011 | ||
FNC1 | 01111 | M | 1001100 | Z | 1011001 | m | 1100110 | z | 1110011 | / | 11110100 |
グループ | セグメント数 | 位置検出パターン列 |
---|---|---|
1 | 4 | A1 A2 |
5, 6 | A1 B2 B1 | |
7, 8 | A1 C2 B1 D2 | |
9, 10 | A1 E2 B1 D2 C1 | |
11, 12 | A1 E2 B1 D2 D1 F2 | |
13, 14 | A1 E2 B1 D2 E1 F2 F1 | |
2 | 15, 16 | A1 A2 B1 B2 C1 C2 D1 D2 |
17, 18 | A1 A2 B1 B2 C1 C2 D1 D2 E1 | |
19, 20 | A1 A2 B1 B2 C1 C2 D1 E2 F1 F2 | |
21, 22 | A1 A2 B1 B2 C1 C2 D1 E2 E1 F2 F1 |
Ver.1 | モジュール数 | Ver.2 | モジュール数 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
白 | 黒 | 白 | 黒 | 白 | 黒 | 白 | 黒 | 白 | 黒 | ||
A1 | 1 | 8 | 4 | 1 | 1 | A2 | 1 | 1 | 4 | 8 | 1 |
B1 | 3 | 6 | 4 | 1 | 1 | B2 | 1 | 1 | 4 | 6 | 3 |
C1 | 3 | 4 | 6 | 1 | 1 | C2 | 1 | 1 | 6 | 4 | 3 |
D1 | 3 | 2 | 8 | 1 | 1 | D2 | 1 | 1 | 8 | 2 | 3 |
E1 | 2 | 6 | 5 | 1 | 1 | E2 | 1 | 1 | 5 | 6 | 2 |
F1 | 2 | 2 | 9 | 1 | 1 | F2 | 1 | 1 | 9 | 2 | 2 |
バーコードシンボルに含まれるシンボルキャラクタ数(チェックキャラクタを含む)4~22とチェックサム値を符号化する。
チェックキャラクタ値(0~4009) = 211 × (シンボルキャラクタ数 - 4) + チェックサム値
チェックサム値 = (シンボルキャラクタの各エレメント幅 × 重み係数)の総和 mod 211
シンボル キャラクタ の位置 | エレメント番号に対する重み | |||||||
---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
A1の右 | 1 | 3 | 9 | 27 | 81 | 32 | 96 | 77 |
A2の左 | 20 | 60 | 180 | 118 | 143 | 7 | 21 | 63 |
A2の右 | 189 | 145 | 13 | 39 | 117 | 140 | 209 | 205 |
B1の左 | 193 | 157 | 49 | 147 | 19 | 57 | 171 | 91 |
B1の右 | 62 | 186 | 136 | 197 | 169 | 85 | 44 | 132 |
B2の左 | 185 | 133 | 188 | 142 | 4 | 12 | 36 | 108 |
B2の右 | 113 | 128 | 173 | 97 | 80 | 29 | 87 | 50 |
C1の左 | 150 | 28 | 84 | 41 | 123 | 158 | 52 | 156 |
C1の右 | 46 | 138 | 203 | 187 | 139 | 206 | 196 | 166 |
C2の左 | 76 | 17 | 51 | 153 | 37 | 111 | 122 | 155 |
C2の右 | 43 | 129 | 176 | 106 | 107 | 110 | 119 | 146 |
D1の左 | 16 | 48 | 144 | 10 | 30 | 90 | 59 | 177 |
D1の右 | 109 | 116 | 137 | 200 | 178 | 112 | 125 | 164 |
D2の左 | 70 | 210 | 208 | 202 | 184 | 130 | 179 | 115 |
D2の右 | 134 | 191 | 151 | 31 | 93 | 68 | 204 | 190 |
E1の左 | 148 | 22 | 66 | 198 | 172 | 94 | 71 | 2 |
E1の右 | 6 | 18 | 54 | 162 | 64 | 192 | 126 | 167 |
E2の左 | 120 | 149 | 25 | 75 | 14 | 42 | 126 | 167 |
E2の右 | 79 | 26 | 78 | 23 | 69 | 207 | 199 | 175 |
F1の左 | 103 | 98 | 83 | 38 | 114 | 131 | 182 | 124 |
F1の右 | 161 | 61 | 183 | 127 | 170 | 88 | 53 | 159 |
F2の左 | 55 | 165 | 73 | 8 | 24 | 72 | 5 | 15 |
F2の右 | 45 | 135 | 194 | 160 | 58 | 174 | 100 | 89 |
領域名 | 二次元 コンポーネント 連結フラッグ | 符号化 方式 | 可変長 シンボル ビット | 圧縮データ | 汎用 データ 圧縮 | ||||
---|---|---|---|---|---|---|---|---|---|
商品識別コード(中12桁) | 計量値 | ||||||||
001 | 234 | 567 | 890 | 1750 | |||||
2進数 | 0 | 0100 | 0000000001 | 0011101010 | 1000110111 | 1101111010 | 000011011010110 |
シンボルキャラクタ | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
2進数 | 001000000000 | 001001110101 | 010001101111 | 101111010000 | 011011010110 |
10進数 | 512 | 629 | 1135 | 3024 | 1750 |
圧縮日付 = 99x384 + (12-1)x32 + 31 = 38399
領域名 | 二次元 コンポーネント 連結フラッグ | 符号化 方式 | 可変長 シンボル ビット | 圧縮データ | 汎用 データ 圧縮 | |||||
---|---|---|---|---|---|---|---|---|---|---|
商品識別コード(中12桁) | AI下1桁+計量値下5桁 | 圧縮日付 | ||||||||
889 | 876 | 543 | 210 | 212345 | 38399 | |||||
2進数 | 0 | 0111101 | 1101111001 | 1101101100 | 1000011111 | 0011010010 | 00110011110101111001 | 1001010111111111 |
シンボルキャラクタ | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
2進数 | 001111011101 | 111001110110 | 110010000111 | 110011010010 | 001100111101 | 011110011001 | 010111111111 |
10進数 | 989 | 3702 | 3207 | 3282 | 829 | 1945 | 1535 |