Barcodes and QR codes can store various amounts of data. Barcodes can hold up to 20 characters of information and are one-dimensional, while QR codes are two-dimensional and can store up to 4,000 characters. Scanners and smartphone cameras have advanced to read these codes more accurately. Software decodes the coded information, compensating for distortions to determine the actual data being represented for uses like product information, sending users to URLs, and providing information to vendors in advertisements.