Показать сообщение отдельно
Старый 29.10.2010, 20:31   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Indexed Color Palete - Image Format

Сообщение от .Squid Посмотреть сообщение
Лажа...


Сообщение от .Squid Посмотреть сообщение
> максимум может быть 65,535 цветов, чего вполне хватит для избежания искажения цвета
Извини, но мой глаз может распознать гораздо больше оттенков.
Сообщение от MoKa
например если у нас
...

Сообщение от .Squid Посмотреть сообщение
> ((8*3*65536)+(16*256*256)) bits = 320 kilobytes
ты тупо к обычному изображению без всякого сжатия еще таблицу индексов прикрутил. С учетом того, что палитра содержит уникальные данные, как ты их сжать собираешься? Я уж не говорю о том, что даже сжав таблицу индексов, конечный размер все равно получится больше, чем у несжатого изображения.

ЗЫ. Посмотри LZW.
Что скажешь насчёт того, чтобы применить подобный алгоритм:
Найти любые сходства на полосы или небольшие квадратные участки, так сказать Patern'ы.
Например имея градиент, который длиной в 5 пикселей, но много где повторяется, таким образом его можно загнать в список патернов, который содержит индексы цветов. И отдельно список первых индексов, которые начинают этот патерн. Далее при пробегу по индексам, когда наступает индекс который использовался в списке индексов пикселей патернов, использовать информацию из патерна, и проскакивать пиксели которые покрываются этим патерном.
Алогоритм анализа картинки на нахождение "оправданных" патернов не так и прост, но это вполне реально и уменьшит размер картинки, если она содержит большое колличество учатсков которые идентичны другим участкам. А это в основном графика, может быть и пиксель арт, но фотографии тут не подходят.
Такой метод не потеряет ни доли качества, но может в картинках с повторениями увеличить колосально размер.
Эллементарный пример: горизонтальный градиент, всю полоску можно загнать в патерн, а для следующих строк использовать только индекс патерна, таким образом для создания градиента 256x256, будет иметься только первая строка как индексы цветов. А для других строк не 256 индексов, а 1 индекс для патерна.
Патерн может быть любой высоты и ширины, естественно это должны быть маленькие патерны.
Но это весьма сложный алгоритм на нахождение патернов, и затем на потверждение их "оправданности".
(Offline)
 
Ответить с цитированием