Как оценить размер файла GIF?
мы создаем онлайн-сервис для редактирования видео. Одна из функций позволяет пользователям экспортировать короткий сегмент из своего видео в виде анимированного gif. Карт имеет ограничение размера файла 2 Мб на загруженный анимированный gif.
размер файла Gif зависит от количества кадров, глубины цвета и самого содержимого изображения: сплошной плоский цвет приводит к очень легкому gif, в то время как некоторые случайные цвета ТВ-шум анимации будет довольно тяжелым.
сначала я экспортирую каждое видео рамка как PNG конечного размера рамки GIF (фиксированная, 384×216).
затем, чтобы максимизировать качество gif, я предпринимаю несколько попыток рендеринга gif с немного разными параметрами-различным количеством кадров и количеством цветов в палитре gif. Рендеринг, который имеет лучшее качество, оставаясь под ограничением размера файла, загружается в Imgur.
вопрос: что может быть умным способом оценить лучшие настройки рендеринга в зависимости от фактических изображений, максимально приблизиться к пределу размера файла и хотя бы минимизировать количество попыток рендеринга до 2-3?
2 ответов
формат изображения GIF использует сжатие LZW. Печально известный для владельца патента на алгоритм Unisys, агрессивно преследующий выплаты роялти, как только формат изображения стал популярным. Оказалось, что за это мы должны благодарить PNG.
объем, на который LZW может сжимать изображение, чрезвычайно недетерминирован и сильно зависит от содержимого изображения. Вы, в лучшем случае, можете предоставить пользователю эвристику, которая смета окончательный размер файла изображения. Отображающий, скажем, предсказание успеха с цветной полосой. Вы можете раскрасить его довольно быстро, преобразовав только первый кадр. Это не займет много времени на изображении 384×216, которое работает в человеческом времени, долю секунды.
а затем экстраполируйте эффективную скорость сжатия этого первого изображения на последующие кадры. Который должно для кодирования только небольших отличий от исходного кадра, поэтому должны иметь сопоставимые скорости сжатия.
вы не можете действительно знать превышает ли он ограничение размера сайта, пока вы не закодируете всю последовательность. Поэтому не забудьте подчеркнуть в своем дизайне пользовательского интерфейса, что ваш прогноз-это просто оценка, поэтому ваш пользователь не будет слишком разочарован. И, конечно, предоставить ему инструменты, чтобы уменьшить размер, что-то вроде интерполяции ближайшего соседа, которая делает пиксели в изображении больше. Фокусировка на том, чтобы сделать более поздние кадры меньше, также может окупиться, кодеры GIF обычно не делают это хорошо сами себя. YMMV.
на это нет простого ответа. Размер GIF одного кадра в основном зависит от энтропии изображения после квантования, и вы можете попробовать использовать stddev в качестве оценки, используя, например, ImageMagick:
вы можете получить лучшие результаты, запустив сглаживающее ядро на изображении, чтобы устранить некоторые высокочастотные шумы, которые вряд ли будут информационными и, скорее всего, испортят производительность сжатия. Это намного лучше с JPEG, чем с GIF, в любом случае.
тогда, в общем, вы хотите запустить очень много образцов, чтобы придумать что-то в этом роде (скажем, у вас есть один параметр сжатия Q)
в этот момент Вы получаете неизвестное изображение, получаете его stddev и сжатие @Q=1, и вы можете интерполировать вероятный размер, когда Q равен, скажем, 4, без фактического запуска кодировки.
пока ваш сервис, вы можете хранить статистические данные (т. е. после действительно сделайте кодировку, вы храните фактический результаты) для дальнейшего улучшения оценки; в конце концов, вы храните только некоторые номера, а не потенциально конфиденциальную или личную информацию, которая может быть в видео. И приобретение и хранение этих номеров будет почти бесплатным.
возможно, стоит распознавать изображения с фиксированным фоном; в этом случае вы можете запустить некоторые адаптации, чтобы сделать все кадры идентичными в некоторых областях, и алгоритм анимации GIF не хранит эту информацию. Это , когда и если вы получаете такое видео (например, говорящая голова), может привести к огромной экономии (но полностью отбросит оценку параметров, если вы не сможете оценить также фактическую протяженность фоновой области. В этом случае пусть эта область будет B, пусть область кадра будет A, сжатый размер «изображения» для пяти кадров будет A+(A-B)*(5-1) вместо A*5, и вы можете применить этот поправочный коэффициент к оценке).
оптимизация сжатия
затем есть методы оптимизации, которые немного изменяют изображение и адаптируют его для лучшего сжатия, но мы бы отклонились от темы. У меня было несколько алгоритмов, которые очень хорошо работали с paletted PNG, который во многом похож на GIF, но мне нужно было бы проверить, могут ли и какие из них свободно использоваться.
некоторые мысли: алгоритм LZW в строки. Поэтому, когда последовательность из N пикселей» меньше X% » отличается (перцептивно или арифметически) из уже встреченной последовательности перепишите последовательность:
здесь последовательность 656765234 в первой строке почти соответствует последовательности 656755234 во второй строке. Изменяя несовпадающие 5 на 6, алгоритм LZW, скорее всего, подберет всю последовательность и сохранит ее с один символ вместо трех (6567,5,5234) или более.
кроме того, LZW работает с bits, а не в байтах. Это значит,очень грубо говоря, чем больше 0 и 1 сбалансированы, тем хуже будет сжатие. Чем более непредсказуема их последовательность, тем хуже результаты.
Итак, если мы сможем найти способ сделать распределение более симметричным, мы выиграем.
и мы можем сделать это, и мы можем сделать это изображение (то же самое работает с PNG). Мы выбираем наиболее распространенный цвет в изображении, как только мы его квантовали. Пусть этот цвет будет цвет с индексом 0. Это 00000000 восемь нулей жира. Теперь мы выбираем наиболее распространенный цвет, который следует за этим, или второй наиболее распространенный цвет; и мы даем ему индекс 1, то есть 00000001. Другой семь нули и один. Следующий цвет будет индексироваться 2, 4, 8, 16, 32, 64 и 128; каждый из них имеет только один бит 1, остальные нули.
поскольку цвета, скорее всего, будут распределены по закону мощности, разумно предположить, что около 20% пикселей будут быть окрашены в первые девять наиболее распространенных цветов; и что 20% потока данных может быть сделано, чтобы быть по крайней мере 87,5% нулей. Большинство из них будут подряд нули, что-то, что LZW оценит без конца.
лучше всего, это вмешательство полностью без потерь; переиндексированные пиксели по-прежнему будут того же цвета, это только палитра, которая будет сдвинута соответственно. Я разработал такой кодек для PNG несколько лет назад, и в моем сценарии использования (PNG street maps) он дал очень хорошие результаты,
20% прироста в сжатии. С более разнообразными палитрами и алгоритмом LZW результаты будут, вероятно, не так хороши, но обработка выполняется быстро и не слишком сложно реализовать.
GIF Resizer: изменение размера Gif анимации онлайн
Изменить размер GIF (уменьшить, увеличить), разложить на кадры онлайн при помощи редактора GIF Resizer
Формат GIF является весьма распространенным на просторах интернета. Причины столь высокой популярности просты: файлы формата GIF имеют весьма хороший алгоритм сжатия, поддерживают прозрачность и дают возможность создать как простую, так и сложную анимацию и рекламные баннеры.
Но, вместе с тем, существует и парочка проблем, основная из которых – необходимость изменить размер GIF. Из этого вытекает вопрос: как уменьшить или увеличить размер GIF? Как осуществить редактирование GIF? К примеру, обрезать файл? В случае, если мы работаем с обычным JPG файлом, таких проблем не возникает – ведь в любом, даже самом простом редакторе, мы при помощи пары щелчков можем изменить размер изображения или выполнить обрезку ненужной части. Как же редактировать GIF? Ведь большинство редакторов позволяет работать только с неподвижными изображениями.
Для решения этой проблемы мы предлагаем вам наш уникальный редактор – GIF Resizer. С его помощью мы сможете быстро и просто изменить размер GIF файла – уменьшить или увеличить его по необходимости. Для этого выполните несколько простых действий:
Несколько секунд – и размер GIF анимации стал таким, как вы хотели!
Как перевести GIF в JPG и разложить на кадры?
Еще один нюанс, который возникает у многих пользователей при работе с GIF – необходимость разложить на кадры. Кроме того, сделать из JPG GIF – не такая сложная задача. Но как перевести GIF в JPG? Или конвертировать в PNG?
Столкнувшись с такой задачей, вы можете снова обращаться к редактору GIF Resizer. Воспользовавшись им, чтобы изменить размер, уменьшить или увеличить GIF, вы можете сразу разложить GIF на кадры и, таким образом, перевести нужную вам анимацию в JPG.
Большой размер GIF-анимации? Мы знаем как уменьшить GIF!
Вне зависимости каким образом вы получили GIF-анимацию, вы можете уменьшить её размер.
Если вы использовали наш сервис по созданию GIF-анимации из видео, то мы рекомендуем использовать оригинал для экспериментов, т.к. как каждая конвертация может ухудшить качество получаемого файла.
Все примеры будут основаны на коротком клипе FullHD видео 16 секунд и 30 кадров в секунду.
Немного теории о GIF
Подробную информацию вы можете прочитать на Википедии.
Смысла её повторять тут нет.
Считаем размер одного кадра: 1920 * 1080 * 40%-100% = 0.8-2 мб.
Шаг 1. Уменьшить GIF. Размер изображения
Обязательно уменьшите размер до адекватного (не более 640 пикселей по большей стороне).
В этом случае размер будет: 640 * 360 * 40%-100% = 90-225 кб.
И размер видео: 16 сек * 30 кадров * 90-225 кб = 42-105 мб.
Наш исходный файл при преобразовании получился 38мб. Меньше расчетного, но тоже большой.
Много? Да. Идем дальше.
Шаг 2. Количество кадров
Наш исходный файл при преобразовании получился 14.5 мб. Уже лучше.
Мы рекомендуем уменьшать частоту кадров пропорционально имеющейся частоте кадров, так можно избежать лишней потери качества.
Шаг 3. Уменьшайте длительность анимации
Шаг 4. Оптимизировать GIF. Выбор качества.
Есть специальные утилиты, для сжатия GIF-анимаций, например, GIFsicle.
Специально для вас мы сделали её онлайн. Просто выберите ваш файл и нажмите оптимизировать.
Так же вы можете управлять качеством файла.
Для вас мы сделали три разные версии GIF-анимации для оценки сжатия с помощью уменьшения качества:
И конечно мы рекомендуем вам самим экспериментировать.
Параметры оптимизации для изображений и анимированных файлов GIF
В этом разделе рассматриваются различные параметры экспорта изображений и анимированных файлов GIF.
Форматы веб-графики
Форматы веб-графики могут быть битовыми (растровыми) или векторными. К битовым форматам относятся GIF, JPEG и PNG, которые зависят от разрешения, то есть от размеров растрового изображения. Использование различных разрешений экрана монитора может привести к изменению качества. К векторным форматам относятся SVG и SWF, которые не зависят от разрешения и поддерживают масштабирование без потери качества изображения. Векторные форматы могут также содержать растровые данные.
Параметры оптимизации JPEG
Формат JPEG является стандартом сжатия нерастрированных изображений, например фотографий. Оптимизация изображения в формате JPEG основана на сжатии с потерями вследствие выборочного удаления данных.
Определяет уровень сжатия. Чем выше значение параметра «Качество», тем больший уровень детализации сохраняется при сжатии. Однако чем выше значение параметра «Качество», тем больше размер файла. Чтобы определить наилучшее соотношение качества и размера файла, рекомендуется просмотреть оптимизированное изображение с различными настройками качества.
Создается улучшенный файл JPEG с незначительно меньшим размером файла. Формат «Оптимизированный JPEG» рекомендуется для максимального сжатия. Однако некоторые браузеры старых версий могут не поддерживать эту функцию.
Изображение в веб-браузере отображается прогрессивно. Изображение выводится как последовательность наложений, что позволяет отобразить изображение с низким разрешением до полной его загрузки. Для параметра «Прогрессивный» необходимо использование формата Оптимизированный JPEG.
Отображение формата «Прогрессивный JPEG» требует большего объема оперативной памяти, этот формат поддерживается не всеми браузерами.
Задает степень размытия изображения. При выборе этого параметра создается эффект, аналогичный фильтру «Размытие по Гауссу», и обеспечивается дополнительное сжатие, что уменьшает размер файла. Рекомендуется использовать значение от 0,1 до 0,5.
Встроенный профиль (Photoshop) или ICC-профиль (Illustrator)
Сохраняет цветовые профили в оптимизированном файле. В некоторых браузерах для цветокоррекции применяются цветовые профили.
Задается цвет заливки для пикселей, которые в исходном изображении были прозрачными. Чтобы выбрать цвет в палитре цветов, щелкните «Образец цвета подложки» или укажите параметр в меню «Подложка»: «Цвет пипетки» (для использования цвета в поле образцов пипетки), «Основной цвет», «Цвет фона», «Белый», «Черный» или «Другой» (для использования палитры цветов).
Полностью прозрачные пиксели исходного изображения заполняются выделенным цветом. Частично прозрачные пиксели исходного изображения смешиваются с выбранным цветом.
Параметры оптимизации для форматов GIF и PNG‑8
Формат GIF является стандартом сжатия для изображений с цветами смесевых красок и четкой детализацией, например, для штриховых рисунков, логотипов или иллюстраций с текстом. Аналогично GIF, формат PNG‑8 эффективно сжимает сплошные области цвета с сохранением четкости деталей.
Файлы PNG‑8 и GIF поддерживают 8-разрядную глубину цвета, то есть до 256 цветов. Процесс определения используемых цветов называется индексированием, поэтому изображения в форматах GIF и PNG‑8 иногда называют изображениями индексированных цветов. Чтобы преобразовать изображение в индексированные цвета, для хранения и индексации цветов в изображении используется таблица цветов изображения. Если в таблице цветов исходного изображения отсутствует нужный цвет, то приложение подбирает ближайший цвет из таблицы или имитирует цвет с помощью сочетания доступных цветов.
Кроме приведенных ниже параметров, можно задать количество цветов в таблице цветов изображения. См. Настройка таблицы цветов для изображений GIF и PNG‑8.
Уменьшение размера файла путем выборочного удаления данных. Чем выше значение параметра «Потери», тем больший объем данных удаляется. Обычно сохранить качество изображения позволяет установка для параметра «Потери» значения в диапазоне от 5 до 10, иногда до 50. Изменение значения параметра «Потери» может привести к уменьшению размеры файла на 5 — 40%.
Параметр «Потери» нельзя использовать одновременно с параметром «Чересстрочно», алгоритмами «Дизеринг шума» или «Регулярный дизеринг».
Цвета и метод редукции цвета
Определяет метод создания таблицы цветов изображения и необходимое количество цветов в таблице. Доступны следующие методы редукции цвета.
Перцепционная Создает пользовательскую таблицу цветов, отдавая предпочтение цветам, к которым человеческий глаз наиболее чувствителен.
Селективная Создает таблицу цветов, аналогичную таблице «Перцепционная», но отдавая предпочтение областям большого размера и сохранению веб-цветов. Обычно при использовании этой таблицы получаются изображения с наибольшей достоверностью цветов. Значение «Селективная» задано по умолчанию.
Адаптивная Создает таблицу путем выборки цветов из преобладающего спектра в изображении. Например, для изображения, в котором есть только зеленый и синий цвета, таблица цветов будет состоять в основном из оттенков синего и зеленого. В большинстве изображений цвета сосредоточены в определенных областях спектра.
Ограниченная (Web) Используется стандартная таблица из 216 цветов, применяемая в Windows и Mac OS в палитрах с 8-разрядной глубиной цвета (256 цветов). При выборе этого параметра дизеринг в браузере не применяется при отображении с 8-разрядной глубиной цвета (такая палитра также называется «безопасной палитрой Web»). Использование палитры Web может приводить к увеличению размера файла, и рекомендуется только в тех случаях, когда крайне важно исключить дизеринг в браузере.
Заказная Применяется палитра цветов, созданная или измененная пользователем. При открытии существующего файла GIF или PNG‑8 в нем будет пользовательская палитра цветов.
Таблица цветов изображения настраивается с помощью палитры Таблица цветов в диалоговом окне «Сохранить для Web и устройств».
«Черно-белый», «Оттенки серого», Mac OS, Windows Используется заданная палитра цветов.
Определяет метод и степень дизеринга. Дизеринг позволяет имитировать цвета, которые отсутствуют в системе цветного изображения компьютера. Более высокий процент дизеринга позволяет передавать больше цветов и деталей, но также приводит к увеличению размера файла. Для оптимального сжатия рекомендуется использовать наименьший процент дизеринга, обеспечивающий необходимую детализацию цвета. К изображениям, состоящим преимущественно из сплошных тонов, дизеринг можно не применять. В изображениях с непрерывными оттенками (особенно градиентами) дизеринг может быть нужен для того, чтобы избежать полошения цветов.
Доступны следующие методы дизеринга.
Диффузия Применяется случайный узор, менее заметный, чем в режиме «Регулярный дизеринг». Эффекты дизеринга распространяются на смежные пиксели.
Узор Для имитации цветов, отсутствующих в таблице цветов, применяется квадратный узор наподобие полутонового.
Шум Применяется случайный узор, подобный методу дизеринга «Случайный», но без распространения на смежные пиксели. При использовании метода дизеринга «Шум» швы не возникают.
«Прозрачность» и «Подложка»
Определяет способ оптимизации прозрачных пикселей в изображении.
Чтобы сделать полностью прозрачные пиксели прозрачными и смешать частично прозрачные пиксели с цветом, выберите «Прозрачность» и укажите цвет подложки.
Чтобы заполнить полностью прозрачные пиксели цветом и наложить их на частично прозрачные пиксели того же цвета, выберите цвет подложки и отмените выбор параметра «Прозрачность».
Для выбора цвета подложки щелкните стрелку рядом с образцом цвета «Подложка» и выберите требуемый цвет в палитре цветов. Второй способ: выберите параметр в меню «Подложка»: Цвет пипетки (для использования цвета в поле образцов пипетки), Основной цвет, Цвет фона, «Белый», «Черный» или «Другой» (для использования палитры цветов).
Параметры «Основной цвет» и «Цвет фона» доступны только в Photoshop.
Компрессор GIF
Сжимайте GIF-файлы онлайн и бесплатно, выбрав одно из приложений ниже
Как сжать GIF
Выберите приложение
Вверху над окном редактора вы можете увидеть кнопки выбора приложения. Щелкните по одному из них, чтобы запустить приложение. Позже вы можете переключить это и попробовать другое приложение.
Следуйте шагам
Теперь вы можете использовать приложение внутри редактора для сжатия GIF. Следуйте инструкциям, которые вы увидите внутри приложения. Если вам не нравится это приложение, попробуйте другое.
Наслаждайтесь результатом
Теперь, когда у вас есть понравившееся изображение, не забудьте сохранить его на свой компьютер. Также добавьте наш сайт в закладки и на главный экран вашего устройства, чтобы не потерять ссылку.
Чтобы понять, как уменьшить изображение в формате gif, важно понимать его структурные элементы. Формат GIF поддерживает анимацию, содержащую несколько движущихся кадров, а также информацию о том, как долго каждый кадр должен отображаться на экране. В результате на размер гифки влияют такие компоненты, как: имя, цветовая палитра и количество кадров. Имя содержит специальную информацию о глобальной палитре, количестве бит для RGB-представления одного цвета в палитре, определение последовательности, в которой выделяются пиксели, а также сколько бит приходится на точку изображения.
Все компрессоры
Уменьшите размер изображения JPG бесплатно и в два клика. С помощью нашего простого онлайн-компрессора JPEG вы можете уменьшить размер изображения без потери качества.
Уменьшите размер изображения PNG бесплатно и в два клика. С помощью нашего простого онлайн-компрессора PNG вы можете уменьшить размер фотографии без потери качества.
Уменьшите размер GIF бесплатно в два клика. С помощью нашего простого онлайн-компрессора GIF вы можете уменьшить размер файла без потери качества.
Уменьшайте размер изображений WebP бесплатно и в два клика. С помощью нашего простого онлайн-компрессора WebP вы можете уменьшить размер изображения без особой потери качества.
Уменьшите размер PDF-документа бесплатно в два клика. С помощью нашего простого онлайн-компрессора PDF вы можете уменьшить размер файла без особой потери качества.
Вам нравится PhotoRetrica? Помогите нам расти!
Мы стараемся создать максимально удобный и универсальный редактор для всего, что связано с фотографиями и изображениями. Мы нуждаемся в твоей помощи. Добавьте нас в закладки или на главный экран вашего устройства. Поделитесь ссылкой на наш сайт в своих социальных сетях. Спасибо!


