First, it depends on what you mean by "ability." For example, Eric J. is right that the maximum capacity of a QR code in byte mode is 2953 bytes for version 40 code. However, if your data is purely numerical, it can encode 7089 digits because it has a special compressed encoding.
Secondly, it is important to understand that not all formats encode arbitrary data. For example, there is no concept of storing anything other than a 12-digit number in UPC-A code. Code 128 cannot store arbitrary bytes. Therefore, some formats may not be considered depending on your use case.
Thirdly, the capacity may vary depending on other options, such as the level of error correction.
Finally, it is important that there is a big difference between the theoretical maximum capacity and the practical maximum. Yes, you can create version 40 code, but good luck scanning it with your camera phone:
( source ).
It can work in industrial contexts for which QR codes were originally developed, but not for use by consumers. Anything above version 10 (a few hundred bytes) becomes difficult to scan. In practice, it is recommended that you stick to version 5 or lower (100 bytes or so).
The same applies to other formats. In this regard, there are no big differences between 2D formats. At some level, everyone is challenged by the same focus restriction, CCD responsiveness, motion blur.
source share