데이터 용량 대 오류 수정 트레이드오프
Quantifying the trade-off: how increasing EC level reduces capacity, and strategies for fitting more data at higher EC.
Data Capacity vs Error Correction Trade-offs
Increasing error correction makes QR codes more resilient but reduces the space available for your actual data. Quantifying this trade-off helps you make informed decisions.
The Numbers
For a module count." data-category="QR Code Structure">Version 10 QR code (57x57 modules):
| EC Level | Data Codewords | EC Codewords | Max Bytes |
|---|---|---|---|
| L | 346 | 78 | 271 |
| M | 274 | 150 | 213 |
| Q | 196 | 228 | 151 |
| H | 154 | 270 | 119 |
Moving from L to H reduces data capacity by 56%. The same data that fits in Version 10 at EC-L might require Version 14 at EC-H.
Version Jumps
The real cost of higher EC is often a version jump — and version jumps are not linear. Each version adds 4 modules per side, but the physical area grows quadratically:
- Version 5 → Version 7: 37x37 → 45x45 (48% more modules)
- Version 10 → Version 14: 57x57 → 73x73 (64% more modules)
A version jump means a visually larger QR code, which may not fit the available space.
Optimisation Strategies
When your data is close to a version boundary:
- Shorten the data: URL shortening, removing optional fields
- Use efficient encoding: Uppercase URLs for Alphanumeric mode
- Lower EC level: If the environment allows, drop from H to Q or Q to M
- MeCard over vCard: 30-40% smaller for contact data
- Remove tracking parameters: UTM strings add significant length
Finding the Sweet Spot
For each application, balance three constraints:
- Physical size: Maximum printable area
- Scan distance: Determines minimum module size
- Damage risk: Determines minimum EC level
If your data requires Version 15 at EC-H but your space only fits Version 10, you must either reduce the data, lower the EC level, or increase the print area.
Key Takeaways
- EC-H uses 56% more space than EC-L for the same version
- Higher EC may force a version jump, significantly increasing physical size
- Data shortening techniques can avoid version jumps
- Balance physical space, scan distance, and damage resilience
- Test with actual data to find the minimum viable version and EC level