2012-02-29 2 views
3

Существуют ли алгоритмы сжатия без потерь изображений растровых изображений, которые избивают семейство LZ? Подходит для встроенной среды.алгоритм сжатия для растровых изображений

Требования:

  • максимальное сжатие
  • направлена ​​на изображениях с низким БПП: 2-8, не более 15
  • низкое потребление памяти или на месте декомпрессии
  • быстрой декомпрессии
+0

Как обычные подозреваемые (gzip, bzip2, lzma, PNG) выполняют на корпусе изображений, которые вам нужно сжать? Развертывают ли они в реальном времени на вашей целевой платформе? Можете ли вы рассказать мне больше о характеристиках вашего корпуса изображения? Фотореалистичный (хотя и низкий bpp) или сгенерированный компьютером? Подцветки? –

+0

@Mike: На все ваши вопросы уже был дан ответ. Да, изображения основаны на палитре, поэтому специализированное сжатие, вероятно, даст лучшие результаты, чем LZ общего назначения. Алгоритмы, подобные LZMA/PPMD, непрактичны. Декомпрессия в реальном времени была бы идеальной, но не обязательной. – Saideira

+0

Хотя 2-8 bpp обычно подразумевает палитру, 15 bpp заставляет меня думать RGB555. Является ли ваш портфель 15 ppp действительно палитрой? Кроме того, bzip2 не является частью семьи LZ, поэтому я тоже хотел спросить об этом (но это педантичность сжатия). Основываясь на вашем описании до сих пор, я выводил довольно много визуального разнообразия в характеристики вашего корпуса, что может затруднить поиск одного формата, который сжимает все из них лучше, чем, скажем, PNG. –

ответ

1

Одним из кандидатов может быть алгоритм Smacker для Rad Game Tools. Их бесплатные инструменты сжатия можно загрузить по адресу http://www.radgametools.com/smkdown.htm

Преимущества: Видео Smacker используется с середины 1990-х годов и может декодироваться в реальном времени на компьютерах i486 с небольшим объемом оперативной памяти (по сегодняшним меркам). Хотя это видеоформат, многие игры использовали его для неподвижных изображений.

Недостатки: Пока он подпаян, я не совсем уверен, что он без потерь. Скорее всего, для этого есть циферблаты. Кроме того, если вы планируете распространять продукт на его основе, вы должны заплатить за лицензию. Я понятия не имею, для какой платформы вам это нужно, но у них может не быть декодера, готового для вас. К счастью, в проекте FFmpeg есть открытый декодер, но опять же, проблемы с лицензированием - не знаю, будут ли они подписываться на вас, используя декодер с открытым исходным кодом, даже если вы купили лицензию.

Если это не соответствует вашим потребностям, вам нужно будет предоставить более подробную информацию с более конкретными целями, начиная с выпечки, демонстрируя, как общие форматы сжатия работают на вашем корпусе и какие конкретные цели (сжатие и скорость -и), которые вы хотели бы достичь.

Смежные вопросы