Aztec Code
Aztec是每张航空登机牌、几乎所有铁路票务应用以及越来越多交通检票口上使用的二维条码。它是专门针对从低对比度手机屏幕(哪怕有拇指污迹)上可靠解码而优化的唯一二维码制, , 这正是IATA在2005年将其选为BCBP(条码登机牌)标准并沿用至今的原因。
标准规范:ISO/IEC 24778:2008, Information technology, Automatic identification and data capture techniques, Aztec Code bar code symbology specification.
IATA应用:BCBP (Bar Coded Boarding Pass) Resolution 792, 定义所有航空公司使用的M1型载荷格式。
发明者: Welch Allyn(现Honeywell),1995年。原始专利到期后免版税。
IATA应用:BCBP (Bar Coded Boarding Pass) Resolution 792, 定义所有航空公司使用的M1型载荷格式。
发明者: Welch Allyn(现Honeywell),1995年。原始专利到期后免版税。
什么是Aztec
一种方形矩阵码,中心有独特的牛眼定位图案(同心正方形),周围数据模块呈螺旋形排列。与QR码不同,Aztec在角落没有位置/对齐图案, , 中央牛眼是唯一的定位基准,这意味着Aztec对旋转、偏心取景和非正方形裁剪的容忍度远优于QR。
使Aztec在屏幕扫描方面异常出色的五个特性:
- 无需静区。 QR需要4模块边距;Aztec零边距即可解码。当手机屏幕边缘或边框遮挡码时非常有用。
- 牛眼定位器耐受对比度损失。 低亮度手机LCD、太阳眩光、疏油涂层污迹, , Aztec在QR三个角标记褪色的情况下仍可存活。
- 可变ECC 5%–95%。 QR有4个级别(L/M/Q/H),上限30%。Aztec可达95%纠错以应对极端损坏场景。
- 相对容量更紧凑。 最多3,067个字母数字字符,Aztec比PDF417或Data Matrix占用更小的空间存储更多内容。
- 无方向锁定。 QR需要定位图案来解析方向;Aztec的牛眼具有旋转对称性。
尺寸和容量
| 版本 | 尺寸 | 最大字母数字容量 | 典型用途 |
|---|---|---|---|
| 紧凑型 | 15 × 15 至 27 × 27 模块 | ~110字符 | 短URL、IATA座位分配 |
| 全范围(小) | 19 × 19 至 45 × 45 | ~400字符 | BCBP M1型登机牌 |
| 全范围(中) | 49 × 49 至 95 × 95 | ~1,200字符 | 多段交通票 |
| 全范围(最大) | 151 × 151 | ~3,067字符 | 大载荷, , 实际中罕见 |
纠错级别
Aztec ECC以专用于Reed-Solomon纠错的数据码字百分比表示。生成器接受5%到95%的任何值;通用用途默认为23%(与QR级别M匹配),登机牌/交通票默认50%。
| ECC级别 | 典型用途 | 权衡 |
|---|---|---|
| 5% | 仅实验/演示 | 任何实际损坏都会导致失败。切勿在此级别发布生产码。 |
| 23%(默认) | 数字显示屏上的短URL Aztec | 与QR级别M匹配。读取器和环境均良好时的标准选择。 |
| 50% | IATA BCBP、交通票、皱纸 | 可承受折叠角或明显污迹。IATA的隐式默认值。 |
| 75%–95% | 高磨损或高折叠环境 | 载荷容量急剧下降。仅用于专业用途。 |
IATA BCBP格式, , Aztec的标准用途
国际航空运输协会的M1型条码登机牌是体量最大的Aztec应用, , 每年数十亿张码。载荷是固定位置的ASCII字符串,包含以下前导字段:
M1{PASSENGER/NAME}E{BOOKING_REF} {FROM} {TO} {AIRLINE} {FLIGHT} {DAY}{COMPARTMENT}{SEAT}{CHECK_IN_SEQ}{PASSENGER_STATUS}- M1, 格式指示符(单段始终为M1)。
- PASSENGER/NAME, 姓/名,用空格填充至20字符。
- E, 电子机票指示符。
- BOOKING_REF, 6字符PNR(旅客姓名记录)。
- FROM/TO, 3字母IATA机场代码(DEN、LHR、NRT…)。
- AIRLINE, 3字符承运人代码(UA、BA、JL…)。
- DAY, 年积日(001–366)。
- COMPARTMENT, 舱位等级(F/J/Y/…)。
标准测试向量
| 案例 | 载荷 | 预期子字符串 |
|---|---|---|
| 短URL | https://example.com/board/AB12 | example.com/board/AB12 |
| IATA BCBP最小值 | M1DOE/JOHN EABC123 JFKLHRBA 0100 042Y034A0001 100 | M1DOE/JOHN |
| 带段元数据的交通票 | M1SMITH/JANE EXYZ789 LAXSFOVA 0250 032Y012C0015 147 | M1SMITH/JANE |
常见陷阱
- 消费者手机相机无法解码Aztec。 iPhone相机不返回任何内容。大多数Android相机也是如此。如果受众是使用手机的普通大众,请使用QR并接受较低的密度。Aztec适用于专用读取器(机场闸机、旋转门扫描仪、OEM工业成像仪)。
- ECC 5%是陷阱。 最低法定ECC产生的码在任何折皱、眩光或磨损下都会失败。23%是安全下限;50%是任何将印刷在纸上的内容的生产默认值。
- BCBP M1型与M2型。 M1是单段;M2是多段(一个码最多4个航班)。在嵌入多个段之前,请验证您的航空公司闸机读取器是否支持M2, , 一些较旧的读取器会拒绝它。
- 无位置标记, , 旋转可处理但透视不行。 Aztec可容忍旋转,但不能容忍严重的透视失真。从大致垂直于表面的角度扫描;30°+的倾斜会降低解码效果。
- 样式禁用。 QR专用功能(自定义点形状、渐变、中心徽标)不适用于Aztec。Abundera的样式面板对此类型自行禁用。
- 打印模块间距。 Aztec需要至少0.33 mm/模块才能可靠地进行激光扫描仪解码;大幅面Aztec票据上的手机相机读取需要0.5 mm。
扫描仪兼容性
| 读取器 | Aztec支持 | 备注 |
|---|---|---|
| iOS相机(iOS 15+) | 否 | Apple尚未在原生相机应用中添加Aztec。带有Scandit或Dynamsoft SDK的第三方应用可用。 |
| Android相机(Google/Pixel) | 部分 | 某些OEM相机应用可解码;Pixel原生相机不可靠。 |
| Google Lens | 不可靠 | 解码登机牌Aztec不一致。不是生产的可行验证路径。 |
| Zebra / Honeywell / Datalogic工业成像仪 | 是 | 每款工业2D成像仪均开箱支持Aztec。 |
| 航空/交通闸机读取器 | 是(标准) | 这正是Aztec的设计用途。每个机场和铁路闸机都能可靠读取Aztec。 |
| Scandit / Dynamsoft SDK | 是 | 被大多数自助服务亭和航空公司值机应用使用。 |
另请参阅
- /aztec-code-generator/, Aztec生成器。
- Aztec · PDF417 · Data Matrix比较, 与另外两种非QR二维码制的并排比较。
- PDF417参考, 堆叠线性兄弟,用于驾驶证和空运提单。
- Data Matrix参考, 直接零件标记兄弟,用于制药和电子零件。
- 标准索引, 返回参考中心。