Re: еще дополнение (уточнение)


Сайт о сжатии >> Форум #Компрессор# >> [Ответить] [Ответы]

Автор: Serge Osnach,
Kiev, Ukraine, 21 ноября 2002 года в 12:40:47

В ответ на : Re: еще дополнение (уточнение) от Сергей в 20 ноября 2002 года в 22:50:18:


> > Теперь самое время оценить этот выигрыш :)
> Ну что ж, попробую.
> Допустим, что удастся добиться сжатия на каждом проходе в среднем на 1% с вероятностью 0.99.
Это невозможно. Причины я уже показывал.

> Предположим, что хотим сжимать файлы не хуже, чем вдвое - для этого потребуется порядка 70 проходов. Вероятность благоприятных для нас вариантов - 0,99^70 = 0,4948. То есть почти в половине случаев получаем требуемый выигрыш.
Я уже показал, что суперсжатия не существует, и ты это доказательство принял.
Повторяю рассуждения:
Пусть мы сжимаем файлы размером не более, чем N как минимум вдвое и хотим, чтобы половина этих файлов сжималась и разжималась без потерь.
Тогда количество файлов размером не более чем N будет округленно (+1, -1 не играют роли) 2^(N+1), количество файлов, сжимаемых вдвое соответственно 2^N. Архивы для удачно сжатых файлов будут размером не более, чем (N/2), и их количество примерно 2^(N/2+1)

Тогда при достаточно большом N (N>=8, файлы не меньше 1 байта) 2^(N/2+1) Если удастся получить 1% с вероятностью 0,9999 то вероятность благоприятного для нас исхода - 0,993. Дальше - лучше. Вопрос достижений хороших параметров -вопрос технологии. Считаю, что его можно решить (используя сверхмощные компьютеры и соответствующие алгоритмы) но отнюдь не уверен, что удастся мне или еще кому-то в ближайшее время.

> > А вот и нет. Компрессор не может сжимать хотя бы на 1 бит половину или больше файлов размера не больше, чем N бит при достаточно большом N (а ведь именно об этом случае и идет речь).
> > Этот факт прямо следует из того, что количество файлов размером не более N почти вдвое больше количесва файлов размером не более N+1.
> > Следовательно, твоя оценка слишком оптимистична :)

> 2^100 - это число порядка того же, что и вес в граммах Земли. Запомним эту цифру.
> Выводить функцию сразу для всего файла - дело безнадежное. Естественно функция для файла представляет из себя набор более простых функций. попробуем экспериментировать на 200-битных числах.

Давай сразу на 2-х битных :-) Там все абсолютно наглядно.

[skip]
> Если, число всех возможных файлов на Земле оценить в 2^40 то какой процент это составляет от 2^200 - большинство из которых может и увеличиваться?

Замечательно. А как ты предлагаешь определять, может ли существовать такой файл в природе, или нет?

> И можно ли достичь вероятности попадания скажем в 0,999999 - (мне то до сих пор казалось, что увеличивая число функций и их качество удастся добиться величины больше 1).

С увеличением числа функций тебе прийдется писать в архив более длинные коды, определяющие, какой именно функцией был обработан очередной кусок. Это съест весь выигрыш от введения новых функций.

> Если учесть, что все существующие файлы производит ограниченное число программ

Огласите, пожалуйста, весь список (c)
:-)

> (источников) и есть для всех них определенное число закономерностей, которые на сегодня мы не можем уловить, то получается, что хотя теоретически суперкомпрессор создать нельзя, но на практике он вполне может существовать.

Если хочешь действительно сделать супер-компрессор, найди неизвестный пока вид избыточности, широко распространенный в реальных файлах. Или новый подход к борьбе с недостатками существующих алгоритмов сжатия.

Функциональная зависимость, о которой ты говоришь, широко распространена в разнообразных оцифрованных сигналах (звук и т.д.). Сможешь пример _функциональной_ зависимости в тексте?

Я бы тебе посоветовал с твоим подходом заняться именно сжатием звука (там, кстати, и сжатие с потерями не наказуемо) ;-)

Ответы:



Ответить на это сообщение

Тема:

Имя (желательно полное):

E-Mail:

URL:

Город:

Страна:

Вежливый и подробный комментарий:
(Форматируйте его, пожалуйста, как почту - короткими строками
Еnter в конце строки, пустая строка между параграфами).

Пожалуйста, заполните все поля.
И не нажимайте по два раза на кнопку! Дождитесь ответа сервера.