Arts-Union

Территория 3DOшников => Программулины => Тема начата: Altmer от 27 Август 2011, 12:46:29

Название: Сжатие образов
Отправлено: Altmer от 27 Август 2011, 12:46:29
Сегодня домучал свой алгоритм комбинаторно кодирования, который в отличие от этого:
http://www.arts-union.ru/node/88
способен учитывать статистику моно серий и соседних символов.

Опробовал его на игровых образах 3DO, результат неоднозначный - симметрия алгоритма оказалась сильно смещенной в строну более долгой упаковки в среднем 1 к 100, поэтому жмутся образы долго, очень дого ))) Но коэффициент сжатия по сравнению с простым адаптивным арифметическим кодом приятно удивил и хотя не дотянул до средних настроек zip архива, но был не сильно позади, что очень даже неплохо, поскольку в моем случае сжималась куча маленьких последовательностей (по 2048 байт для посекторного доступа), а не весь файл целиком.

Po'ed - занял 60Мб.
Gex - мне надоело ждать и я прервал программу, наверное это разумней делать с помощью распределенных вычислений встроив их в эмулятор.

В общем новая версия будет поддерживать сжатые образы для экономии места на винтах )
Название: Re: Сжатие образов
Отправлено: Altmer от 27 Август 2011, 17:27:04
Немного пооптимизировал и симметрия стала 1:20 - паковать уже не так тяжко ))
Название: Re: Сжатие образов
Отправлено: Oleg от 27 Август 2011, 21:03:46
Может можно на Linux или Wine запустить у меня сжатие?
Всёравно у меня каникулы с сегодняшнего дня  ;)
Название: Re: Сжатие образов
Отправлено: Altmer от 27 Август 2011, 21:19:34
Можно, только сначала надо все хорошенько отладить, сжатие - это дело ответственное, надо что бы все без единой ошибки было ))
А еще надо модифицировать discreader.dll, а то какой толк от сжатых образов, если их нельзя запустить )

ПС. Когда оптимизировал - потерял пару процентов в степени сжатия, но думаю я их позже с лихвой окуплю специальным разностным преобразованием секторов с музыкой и другими условно плавными данными, быть может даже ZIP переплюну )
Название: Re: Сжатие образов
Отправлено: Altmer от 27 Август 2011, 21:35:04
А еще, недавно разработал довольно шустрый фрактальный алгоритм сжатия сигналов, по идее если звук в играх пережать, а при игре восстанавливать, то можно раз в 5 весь музон ужать, правда с небольшими потерями, в общем ценителям оригиналов это вряд ли понравится, хотя музыка образов игр от сеги сатурн в mp3 пожата.
Название: Re: Сжатие образов
Отправлено: sashapont от 28 Август 2011, 09:04:45
А по сравнению с 7zip на сколько разница в сжатии? Уверен, что большинство образы хранят именно в нём. Конечно понимаю желание разработать своё персональное, но может 7zip  сжатие заюзать, к тому же и сырцы и библиотеки в открытом доступе...
Название: Re: Сжатие образов
Отправлено: Altmer от 28 Август 2011, 10:28:18
Разница ощутимая, пока процентов двадцать-тридцать, но заюзать 7zip невозможно, по той простой причине, что он не предусматривает посекторный доступ к архиву, как впрочем и все архиваторы общего назначения, а распаковывать образ во временный файло - долго. Ну, а что бы выцепить сектор из середины 7-зип архива прийдется его наполовину, а то и больше разархивировать, в общем при таком подходе - пройдет немало дней, прежде чем вы логотип  игры увидите  ;D

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

Как будет время, добавлю дельта-преобразования, тогда думаю разница будет в пределах 15%.
Название: Re: Сжатие образов
Отправлено: sashapont от 28 Август 2011, 10:49:43
Ясно, спасибо за полный детальный ответ, просто по жизни юзал только зип сжатие (объёмы БД были маленькие и вполне хватало), А тут вы правы, посекторный доступ и всё такое...