Source: https://perso.liris.cnrs.fr/lionel.medini/enseignement/SIB32/CM/1_codage.pdf