2D QR code generation and decoding