Вы можете сжимать данные сколько угодно, но эффект может оказаться не таким, как вы хотите. После первого уровня сжатия, если вы запустите тот же алгоритм на нем, он, вероятно, будет недостаточно сжат, чтобы сделать его полезным.
Подумайте об этом, вот ваши данные:
1001 0011 1110 0100 0011 1001
Я использую готовый компрессор, чтобы разбить данные на четыре части как nybble:
если 1001, сожмите как 101, поскольку ниббл не начинается с 101, а 1001 встречается дважды
если 0011, сожмите как 110, поскольку ниббл не начинается с 110, а 0011 встречается дважды
После сжатия:
101 110 1110 0100 110 101
или же
1011 1011 1001 0011 0101
На самом деле это не сработает в реальном мире, но, как вы можете себе представить, вы можете сжать это снова, поскольку это все еще двоичные данные.
Следующее сжатие делает это:
если 1011, сжимать как 111
после сжатия:
111 111 1001 0011 0101
или же
1111 1110 0100 1101 01
Но, как вы видите, больше нет дубликатов, так что компрессору, который я использовал, больше нечего было сжимать.
Опять же, это не настоящий компрессор, а простой способ понять концепцию.