2014-12-04 3 views
0

Скажем, у меня есть 16-битное изображение в оттенках серого размером 2 x 2 пикселя, которое совершенно произвольно. Информационный контент 2 x 2 x 2 байта = 8 байт.Формат сжатого изображения

Next I bilinear интерполирует 8 x 8 временных пикселей между моими 2 x 2 начальными пикселями, которые теперь образуют границу. Для каждого пикселя я ищу 3-байтное значение RGB из цветовой карты радуги. Если бы я сохранил это изображение без сжатия, теперь он займет 10 x 10 x 3 байта = 300 байт.

Однако информационный контент не увеличился на много. Супер интеллектуальный алгоритм сжатия должен иметь возможность смотреть на мои 100 пикселей и выводить то, что я сделал, и хранить начальные 2 x 2 оттенки серого и цветовую карту.

Какой сжатый существующий формат изображения следует использовать для хранения такого изображения?

+0

Я нахожу ваше описание очень трудным для понимания. Вы в основном делаете сетку размером 10 пикселей на 10 пикселей (я думаю), создавая 4 случайных серых угла, а затем имея то, что посередине? Вы потеряли меня, когда вы представили радугу и 3-байтные цвета RGB из середины нигде. Как насчет того, чтобы показать нам такой образ с серыми углами и цветной серединой? –

ответ

1

В зависимости от того, требуется ли изображение для потери или без потерь. Я предполагаю, что вы хотите без потерь. Это зависит от того, что вы делаете с изображением и как вы его генерируете. Короткий ответ заключается в том, что 16-битный PNG без прозрачности является лучшим общим форматом. Если вы используете lossy, JPEG часто лучше, но зависит от того, в какой степени изображение является непрерывным тоном, как фотография. Google WebP - это потрясающий формат, который часто сдувает другого, но пока еще нет хорошей поддержки.

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

Не все кодировщики PNG эквивалентны. Некоторые из них более умны, чем другие. Это зависит от того, насколько вы заботитесь о сохранении размера. Photoshop удобен, но делает только достойную работу по созданию небольших файлов PNG. Существует много инструментов с открытым исходным кодом, которые выполняют лучшую работу. Я выбираю, исходя из ситуации. Обычно в зависимости от того, насколько хороши GUI и пакетные опции. Когда я сжимаю код, это зависит от среды, которую я использую. Если я в .NET, я смотрю на стоимость специализированного инструментария изображений и информацию о StackOverflow о том, как тикать встроенные классы изображений.

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