== Коды без памяти ==
Простейшими кодами, на основе которых может выполняться сжатие данных, являются '''коды без памяти''' (англ. ''code without memory''). В коде без памяти каждый символ в кодируемом векторе данных заменяется кодовым словом из префиксного множества двоичных последовательностей или слов.
К примеру, множество двоичных слов <tex>S_1</tex> = <tex> \{00, 01, 100, 110, 1010, 1011\} </tex> является префиксным множеством двоичных последовательностей, поскольку, если проверить любую из 30 возможных совместных комбинаций (<tex>w_i</tex>, <tex>w_j</tex>) из <tex>S_1</tex>, то видно, что <tex>w_i</tex> никогда не явится префиксом (или началом) <tex>w_j</tex>. С другой стороны, множество <tex>S_2</tex> = <tex> \{00, 001, 1110\} </tex> не является префиксным множеством двоичных последовательностей, так как последовательность 00 является префиксом (началом) другой последовательности из этого множества {{---}} 001. Соответственно, множество <tex>S_1</tex> может быть множеством кодовых слов для вектора данных в коде без памяти, а <tex>S_2</tex> {{---}} нет.
Примерами кодов без памяти являются кодирование Хаффмана и кодирование Шеннона — Фано.