A Parity Check involves expecting a certain property to be true about the oddness or evenness of the number of bits received.
Even Check
An even parity check involves sending an optional extra bit with every chunk of data so that the total number of ‘s is always even.

This is a fairly low overhead operation to perform (see the popcnt x86 ASM instruction), but is likely to miss a lot of errors during it’s operation.
Simple Parity Check
This parity check is an expanded version of the even check where both the ‘s and ‘s are checked, which allows all single-bit errors to be detected.
Unfortunately, this introduces a decent sized amount of overhead, as, for example, for every bits sent bits of redundant information is also sent just to run the parity check.
Two Dimensional Parity Check
For a 2D Parity Check, a block of bits is subdivided into a grid, then an extra row and column of parity bits is added.
Then, every single row and column gets an even parity check ran on it individually.
