Before encoding the data, select an error correction level. As mentioned in the introduction, QR codes use Reed-Solomon error correction. This process creates error correction codewords (bytes) based on the encoded data. A QR code reader can use these error correction bytes to determine if it did not read the data correctly, and the error correction codewords can be used to correct those errors. There are four levels of error correction: L, M, Q, H. The following table lists the levels and their error correction capabilities.