Абстрактные оценки в вакууме мало что дадут. Сколько свободной памяти и сколько картинок нужно разместить?
Если несколько больших (полноэкранных?) картинок, то использование upkr мне кажется жестоким по отношению к пользователю. Понимаю в деме предельных параметров распаковать 1-2 картинки, человек посмотрит ее один раз и успокоится. А если запускать игру несколько раз и там каждый раз upkr распаковывает картинки по 32 Кб, то терпение быстро иссякнет. Еще момент с местом под распаковку - при использовании "безбуферных" (выдающих полный результат) распаковщиков в сочетании с пикселями нужно дополнительно 32 Кб. Вместо этого можно использовать менее эффективные упаковщики, но с буферными (удобно на 256 байт) распаковщиками и потратить те 32 Кб на компенсацию меньшей степени сжатия. На мой взгляд приемлемыми компромиссами по скорости и степени сжатия являются rip и exomizer, плюс они умеют ограничивать длину и дальность ссылок, т.е. можно распаковывать в кольцевой буфер ограниченного размера.
Никогда всерьез не занимался сжатием палитровых картинок, но насколько я понял из прочитанного, сейчас самый модный вариант - предсказатели+оптимизация палитры для согласования+сжимаем арифметическим кодером. Но тут еще надо найти эти экспериментальные упаковщики, сделать для них распаковщик для вектора и получить скорость скорее всего хуже upkr.
Для полутоновых или нечто jpeg-подобное (с ДКП) или вейвлеты. Но тут сразу много вопросов - насколько приемлемы полутоновые картинки, устроит ли 8 оттенков желтого/зеленого/красного, распаковщик сложный и медленный. 16 отенков серого на ЧБ мониторе более интересны, но это специфическое решение. Кстати, для полутоновых векторное кодирование должно давать более приемлемые результаты, чем для палитровых. Еще можно вспомнить экзотику типа фрактальных, но это опять надо искать упаковщики и делать распаковщик.
Возвращаясь на землю, я бы скорее всего ориентировался на rip. Если сжимать байты, то распаковываем на экран. Если сжимаем пиксели, то распаковываем в кольцевой буфер. Пиксели сжимаются лучше, но ограничение длины и дальности ссылок ухудшает сжатие, поэтому надо смотреть конкретные примеры. Также использование буфера позволяет распаковывать картинки произвольного размера, а не на полный экран.




Ответить с цитированием