Нет, дело в изменении распределения символов: если частоты самых частых символов близки к степеням двойки, то кодирование будет более эффективным, а если далеки, то менее. Например, возьмём по 1 MB символов a, b, c. В этом случае их частоты будут 1/3 у каждого, хаффменовский код одного будет однобитный, двух других - двухбитный, итого 5 Mb. С другой стороны, если взять 1.6 MB a и по 0.8 MB b и c, то коды их будут такие же, их суммарная длина 3.2 MB, а результат сжатия - 4.8 Mb.
no subject
Нет, дело в изменении распределения символов: если частоты самых частых символов близки к степеням двойки, то кодирование будет более эффективным, а если далеки, то менее. Например, возьмём по 1 MB символов a, b, c. В этом случае их частоты будут 1/3 у каждого, хаффменовский код одного будет однобитный, двух других - двухбитный, итого 5 Mb. С другой стороны, если взять 1.6 MB a и по 0.8 MB b и c, то коды их будут такие же, их суммарная длина 3.2 MB, а результат сжатия - 4.8 Mb.