Автор Тема: Сжатие образов  (Прочитано 3258 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Altmer

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

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

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

В общем новая версия будет поддерживать сжатые образы для экономии места на винтах )
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4101
Re: Сжатие образов
« Ответ #1 : 27 Август 2011, 17:27:04 »
Немного пооптимизировал и симметрия стала 1:20 - паковать уже не так тяжко ))
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Oleg

  • Гость
Re: Сжатие образов
« Ответ #2 : 27 Август 2011, 21:03:46 »
Может можно на Linux или Wine запустить у меня сжатие?
Всёравно у меня каникулы с сегодняшнего дня  ;)
« Последнее редактирование: 27 Август 2011, 21:11:32 от Олег »

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4101
Re: Сжатие образов
« Ответ #3 : 27 Август 2011, 21:19:34 »
Можно, только сначала надо все хорошенько отладить, сжатие - это дело ответственное, надо что бы все без единой ошибки было ))
А еще надо модифицировать discreader.dll, а то какой толк от сжатых образов, если их нельзя запустить )

ПС. Когда оптимизировал - потерял пару процентов в степени сжатия, но думаю я их позже с лихвой окуплю специальным разностным преобразованием секторов с музыкой и другими условно плавными данными, быть может даже ZIP переплюну )
« Последнее редактирование: 27 Август 2011, 21:24:26 от Altmer »
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4101
Re: Сжатие образов
« Ответ #4 : 27 Август 2011, 21:35:04 »
А еще, недавно разработал довольно шустрый фрактальный алгоритм сжатия сигналов, по идее если звук в играх пережать, а при игре восстанавливать, то можно раз в 5 весь музон ужать, правда с небольшими потерями, в общем ценителям оригиналов это вряд ли понравится, хотя музыка образов игр от сеги сатурн в mp3 пожата.
« Последнее редактирование: 28 Август 2011, 06:30:58 от Altmer »
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн sashapont

  • Постоялец
  • ***
  • Сообщений: 148
  • He is my cat!
Re: Сжатие образов
« Ответ #5 : 28 Август 2011, 09:04:45 »
А по сравнению с 7zip на сколько разница в сжатии? Уверен, что большинство образы хранят именно в нём. Конечно понимаю желание разработать своё персональное, но может 7zip  сжатие заюзать, к тому же и сырцы и библиотеки в открытом доступе...
It is good to be bad

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4101
Re: Сжатие образов
« Ответ #6 : 28 Август 2011, 10:28:18 »
Разница ощутимая, пока процентов двадцать-тридцать, но заюзать 7zip невозможно, по той простой причине, что он не предусматривает посекторный доступ к архиву, как впрочем и все архиваторы общего назначения, а распаковывать образ во временный файло - долго. Ну, а что бы выцепить сектор из середины 7-зип архива прийдется его наполовину, а то и больше разархивировать, в общем при таком подходе - пройдет немало дней, прежде чем вы логотип  игры увидите  ;D

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

Как будет время, добавлю дельта-преобразования, тогда думаю разница будет в пределах 15%.
« Последнее редактирование: 28 Август 2011, 10:46:45 от Altmer »
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн sashapont

  • Постоялец
  • ***
  • Сообщений: 148
  • He is my cat!
Re: Сжатие образов
« Ответ #7 : 28 Август 2011, 10:49:43 »
Ясно, спасибо за полный детальный ответ, просто по жизни юзал только зип сжатие (объёмы БД были маленькие и вполне хватало), А тут вы правы, посекторный доступ и всё такое...
It is good to be bad