At the most basic level, PACKET CRC is CRC calculated over a video packet (Multiple pixels), the LINE CRC is CRC calculated over a video line (multiple packets), and FRAME CRC is CRC calculated over an entire frame (multiple lines). At first it may seem that enabling FRAME CRC would be good enough and LINE CRC and PACKET CRC would be redundant but this is not the case due to a couple reasons:
- Line CRC and FRAME CRCs both check pixel data only, video packets are also used to send Sync information during blanking periods, so PACKET CRC (which can cover blanking periods) cannot be easily overlooked.
- CRCs can check for a limited number of errors. if too many errors occurs, it is possible for the errors to form a valid CRC. By having multiple forms of CRC, it is less likely for there to be enough errors landing in such a way that the different CRCs (which are calculated differently) to all be valid at the same time.