2d codes vs 1d barcodes