Алгоритмы сжатия изображений / Хабр
Легко подсчитать, что несжатое полноцветное изображение, размером 2000*1000 пикселов будет иметь размер около 6 мегабайт. Если говорить об изображениях, получаемых с профессиональных камер или сканеров высокого разрешения, то их размер может быть ещё больше. Не смотря на быстрый рост ёмкости устройств хранения, по-прежнему весьма актуальными остаются различные алгоритмы сжатия изображений.
Все существующие алгоритмы можно разделить на два больших класса:
- Алгоритмы сжатия без потерь;
- Алгоритмы сжатия с потерями.
Когда мы говорим о сжатии без потерь, мы имеем в виду, что существует алгоритм, обратный алгоритму сжатия, позволяющий точно восстановить исходное изображение. Для алгоритмов сжатия с потерями обратного алгоритма не существует. Существует алгоритм, восстанавливающий изображение не обязательно точно совпадающее с исходным.
Алгоритмы сжатия без потерь
Алгоритм RLE
Все алгоритмы серии RLE основаны на очень простой идее: повторяющиеся группы элементов заменяются на пару (количество повторов, повторяющийся элемент). Рассмотрим этот алгоритм на примере последовательности бит. В этой последовательности будут чередовать группы нулей и единиц. Причём в группах зачастую будет более одного элемента. Тогда последовательности 11111 000000 11111111 00 будет соответствовать следующий набор чисел 5 6 8 2. Эти числа обозначают количество повторений (отсчёт начинается с единиц), но эти числа тоже необходимо кодировать. Будем считать, что число повторений лежит в пределах от 0 до 7 (т.е. нам хватит 3 бит для кодирования числа повторов). Тогда рассмотренная выше последовательность кодируется следующей последовательностью чисел 5 6 7 0 1 2.
Легко подсчитать, что для кодирования исходной последовательности требуется 21 бит, а в сжатом по методу RLE виде эта последовательность занимает 18 бит.Хоть этот алгоритм и очень прост, но эффективность его сравнительно низка. Более того, в некоторых случаях применение этого алгоритма приводит не к уменьшению, а к увеличению длины последовательности. Для примера рассмотрим следующую последовательность 111 0000 11111111 00. Соответствующая ей RL-последовательность выглядит так: 3 4 7 0 1 2. Длина исходной последовательности – 17 бит, длина сжатой последовательности – 18 бит.
Этот алгоритм наиболее эффективен для чёрно-белых изображений. Также он часто используется, как один из промежуточных этапов сжатия более сложных алгоритмов.
Словарные алгоритмы
Идея, лежащая в основе словарных алгоритмов, заключается в том, что происходит кодирование цепочек элементов исходной последовательности. При этом кодировании используется специальный словарь, который получается на основе исходной последовательности.
Существует целое семейство словарных алгоритмов, но мы рассмотрим наиболее распространённый алгоритм LZW, названный в честь его разработчиков Лепеля, Зива и Уэлча.
Словарь в этом алгоритме представляет собой таблицу, которая заполняется цепочками кодирования по мере работы алгоритма. При декодировании сжатого кода словарь восстанавливается автоматически, поэтому нет необходимости передавать словарь вместе с сжатым кодом.
Словарь инициализируется всеми одноэлементными цепочками, т.е. первые строки словаря представляют собой алфавит, в котором мы производим кодирование. При сжатии происходит поиск наиболее длинной цепочки уже записанной в словарь. Каждый раз, когда встречается цепочка, ещё не записанная в словарь, она добавляется туда, при этом выводится сжатый код, соответствующий уже записанной в словаре цепочки. В теории на размер словаря не накладывается никаких ограничений, но на практике есть смысл этот размер ограничивать, так как со временем начинаются встречаться цепочки, которые больше в тексте не встречаются. Кроме того, при увеличении размеры таблицы вдвое мы должны выделять лишний бит для хранения сжатых кодов. Для того чтобы не допускать таких ситуаций, вводится специальный код, символизирующий инициализацию таблицы всеми одноэлементными цепочками.
Рассмотрим пример сжатия алгоритмом. Будем сжимать строку кукушкакукушонкукупилакапюшон. Предположим, что словарь будет вмещать 32 позиции, а значит, каждый его код будет занимать 5 бит. Изначально словарь заполнен следующим образом:
Эта таблица есть, как и на стороне того, кто сжимает информацию, так и на стороне того, кто распаковывает. Сейчас мы рассмотрим процесс сжатия.
В таблице представлен процесс заполнения словаря. Легко подсчитать, что полученный сжатый код занимает 105 бит, а исходный текст (при условии, что на кодирование одного символа мы тратим 4 бита) занимает 116 бит.
По сути, процесс декодирования сводится к прямой расшифровке кодов, при этом важно, чтобы таблица была инициализирована также, как и при кодировании. Теперь рассмотрим алгоритм декодирования.
Строку, добавленную в словарь на i-ом шаге мы можем полностью определить только на i+1. Очевидно, что i-ая строка должна заканчиваться на первый символ i+1 строки. Т.о. мы только что разобрались, как можно восстанавливать словарь. Некоторый интерес представляет ситуация, когда кодируется последовательность вида cScSc, где c — это один символ, а S — строка, причём слово cS уже есть в словаре. На первый взгляд может показаться, что декодер не сможет разрешить такую ситуацию, но на самом деле все строки такого типа всегда должны заканчиваться на тот же символ, на который они начинаются.
Алгоритмы статистического кодирования
Алгоритмы этой серии ставят наиболее частым элементам последовательностей наиболее короткий сжатый код. Т.е. последовательности одинаковой длины кодируются сжатыми кодами различной длины. Причём, чем чаще встречается последовательность, тем короче, соответствующий ей сжатый код.
Алгоритм Хаффмана
Алгоритм Хаффмана позволяет строить префиксные коды. Можно рассматривать префиксные коды как пути на двоичном дереве: прохождение от узла к его левому сыну соответствует 0 в коде, а к правому сыну – 1. Если мы пометим листья дерева кодируемыми символами, то получим представление префиксного кода в виде двоичного дерева.
- Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который равен частоте появления символа
- Выбираются два свободных узла дерева с наименьшими весами
- Создается их родитель с весом, равным их суммарному весу
- Родитель добавляется в список свободных узлов, а двое его детей удаляются из этого списка
- Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0
- Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.
С помощью этого алгоритма мы можем получить коды Хаффмана для заданного алфавита с учётом частоты появления символов.
Арифметическое кодирование
Алгоритмы арифметического кодирования кодируют цепочки элементов в дробь. При этом учитывается распределение частот элементов. На данный момент алгоритмы арифметического кодирования защищены патентами, поэтому мы рассмотрим только основную идею.
Пусть наш алфавит состоит из N символов a1,…,aN, а частоты их появления p1,…,pN соответственно. Разобьем полуинтервал [0;1) на N непересекающихся полуинтервалов. Каждый полуинтервал соответствует элементам ai, при этом длина полуинтервала пропорциональна частоте pi.
Кодирующая дробь строится следующим образом: строится система вложенных интервалов так, чтобы каждый последующий полуинтервал занимал в предыдущем место, соответствующее положению элемента в исходном разбиении. После того, как все интервалы вложены друг в друга можно взять любое число из получившегося полуинтервала. Запись этого числа в двоичном коде и будет представлять собой сжатый код.
Арифметическое кодирование чрезвычайно эффективно. Коды, получаемые с его помощью, приближаются к теоретическому пределу. Это позволяет утверждать, что по мере истечения сроков патентов, арифметическое кодирование будет становиться всё более и более популярным.
Алгоритмы сжатия с потерями
Не смотря на множество весьма эффективных алгоритмов сжатия без потерь, становится очевидно, что эти алгоритмы не обеспечивают (и не могут обеспечить) достаточной степени сжатия.
Сжатие с потерями (применительно к изображениям) основывается на особенностях человеческого зрения. Мы рассмотрим основные идеи, лежащие в основе алгоритма сжатия изображений JPEG.
Алгоритм сжатия JPEG
JPEG на данный момент один из самых распространенных способов сжатия изображений с потерями. Опишем основные шаги, лежащие в основе этого алгоритма. Будем считать, что на вход алгоритма сжатия поступает изображение с глубиной цвета 24 бита на пиксел (изображение представлено в цветовой модели RGB).
Перевод в цветовое пространство YCbCr
В цветовой модели YCbCr мы представляем изображение в виде яркостной компоненты (Y) и двух цветоразностных компонент (Cb,Cr). Человеческий глаз более восприимчив к яркости, а не к цвету, поэтому алгоритм JPEG вносит по возможности минимальные изменения в яркостную компоненту (Y), а в цветоразностные компоненты могут вноситься значительные изменения. Перевод осуществляется по следующей формуле:
Выбор Kr и Kb зависит от оборудования. Обычно берётся Kb=0.114;Kr=0.299. В последнее время также используется Kb=0.0722;Kr=0.2126, что лучше отражает характеристики современных устройств отображения.
Субдискретизация компонент цветности
После перевода в цветовое пространство YCbCr выполняется дискретизация. Возможен один из трёх способов дискретизации:
4
- :4:4 – отсутствует субдискретизация;
- 4:2:2 – компоненты цветности меняются через одну по горизонтали;
- 4:2:0 – компоненты цветности меняются через одну строку по горизонтали, при этом по вертикали они меняются через строку.
При использовании второго или третьего способа мы избавляется от 1/3 или 1/2 информации соответственно. Очевидно, что чем больше информации мы теряем, тем сильнее будут искажения в итоговом изображении.
Дискретное косинусное преобразование
Изображение разбивается на компоненты 8*8 пикселов, к каждой компоненте применятся ДКП. Это приводит к уплотнению энергии в коде. Преобразования применяются к компонентам независимо.
Квантование
Человек практически не способен замечать изменения в высокочастотных составляющих, поэтому коэффициенты, отвечающие за высокие частоты можно хранить с меньшей точностью. Для этого используется покомпонентное умножение (и округление) матриц, полученных в результате ДКП, на матрицу квантования. На данном этапе тоже можно регулировать степень сжатия (чем ближе к нулю компоненты матрицы квантования, тем меньше будет диапазон итоговой матрицы).
Зигзаг-обход матриц
Зигзаг-обход матрицы – это специальное направление обхода, представленное на рисунке:
При этом для большинства реальных изображений в начале будут идти ненулевые коэффициенты, а ближе к концу будут идти нули.
RLE- кодировние
Используется особый вид RLE-кодирования: выводятся пары чисел, причём первое число в паре кодирует количество нулей, а второе – значение после последовательности нулей. Т.е. код для последовательности 0 0 15 42 0 0 0 44 будет следующим (2;15)(0;42)(3;44).
Кодирование методом Хаффмана
Используется описанный выше алгоритм Хаффмана. При кодировании используется заранее определённая таблица.
Алгоритм декодирования заключается в обращении выполненных преобразований.
К достоинствам алгоритма можно отнести высокую степень сжатие (5 и более раз), относительно невысокая сложность (с учётом специальных процессорных инструкций), патентная чистота. Недостаток – артефакты, заметные для человеческого глаза.
Фрактальное сжатие
Фрактальное сжатие – это относительно новая область. Фрактал – сложная геометрическая фигура, обладающая свойством самоподобия. Алгоритмы фрактального сжатия сейчас активно развиваются, но идеи, лежащие в их основе можно описать следующей последовательностью действий.
Процесс сжатия:
- Разделение изображения на неперекрывающиеся области (домены). Набор доменов должен покрывать всё изображение полностью.
- Выбор ранговых областей. Ранговые области могут перекрываться и не покрывать целиком всё изображение.
- Фрактальное преобразование: для каждого домена подбирается такая ранговая область, которая после аффинного преобразования наиболее точно аппроксимирует домен.
- Сжатие и сохранение параметров аффинного преобразования. В файл записывается информация о расположении доменов и ранговых областей, а также сжатые коэффициенты аффинных преобразований.
Этапы восстановления изображения:
- Создание двух изображений одинакового размера A и B. Размер и содержание областей не имеют значения.
- Изображение B делится на домены так же, как и на первой стадии процесса сжатия. Для каждого домена области B проводится соответствующее аффинное преобразование ранговых областей изображения A, описанное коэффициентами из сжатого файла. Результат помещается в область B. После преобразования получается совершенно новое изображение.
- Преобразование данных из области B в область A. Этот шаг повторяет шаг 3, только изображения A и B поменялись местами.
- Шаги 3 и 4 повторяются до тех пор, пока изображения A и B не станут неразличимыми.
Точность полученного изображения зависит от точности аффинного преобразования.
Сложность алгоритмов фрактального сжатия в том, что используется целочисленная арифметика и специальные довольно сложные методы, уменьшающие ошибки округления.
Отличительной особенностью фрактального сжатия является его ярко выраженная ассиметрия. Алгоритмы сжатия и восстановления существенно различаются (сжатие требует гораздо большего количества вычислений).
методы сжатия графической информации, Информатика
Пример готового реферата по предмету: Информатика
Содержание:
Введение 3
1. Виды графической информации по способу кодировки 4
2 Алгоритмы сжатия данных 6
2. 1 Групповое кодирование (RLE) 8
2.2 Алгоритм Хаффмана 11
2.3 Алгоритм Хаффмана с фиксированной таблицей CCITTGroup 3 13
2.4 LZW-сжатие 14
2.4 JPEG (Joint Photographic Experts Group) 15
Заключение 18
Литература 19
Содержание
Выдержка из текста
Поэтому для выбора эффективного метода сжатия графической информации необходимо разобраться в способах кодировки графических данных.- изучить способы сжатия графической информации;
- сделать выводы о выборе эффективного способа сжатия графической информации.
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом “де-факто” для программного обеспечения разных классов, начиная с операционных систем.
В настоящее время в связи с широким внедрением персональных компьютеров во все сферы жизни, резкой интенсификацией процесса научных исследований, революционным совершенствованием его технологии, значительным повышением возможностей аппаратуры все больший интерес вызывают идеи, алгоритмы и средства компьютерной графики ……………………………………………………………………………………………………………………………………………………
Надежность хранения информации и легкий доступ для тех, кто в ней нуждается, является залогом успешной совместной работы.Системы электронного документооборота (Electronic Document Management System) представляют собой взаимосвязанную систему организационного, технического и программного обеспечения для управления различными видами документов и информацией.
Удивительно, что даже простейшие методы анализа данных позволяют существенно прояснить сложную ситуацию, первоначально поражающую нагромождением цифр. По результатам анализа вы получаете статистические таблицы, графические иллюстрации и аналитический отчет.
Составить математическую модель задачи и решить ее двумя способами: симплекс методом и графически.
Введение
1. Понятие компьютерной графики
2. Растровая и векторная графика
3. Цветовой охват 104. Цвет в КГ. Аддитивные и субтрактивные цвета. Системы RGB, CMYK, HSB, HSL
Литература
1. Шикин Е.В., Боресков А.В. Компьютерная графика. — М.: Диалог — МИФИ, 1995. – 464 с.
2. Захаров С. С. Учебное пособие по дисциплине «Компьютерная графика». – М.: МГУЭСиИ, 2006. – 52 с.
3. Джеймс Д. Мюррей, Уильям ванРайперЭнциклопедия форматов графических файлов — К.: BHV, 1997.
4. Том Сван Форматы файлов Windows — М.: Binom, 1995.
5. Борзенко А., Федоров А. Мультимедиа для всех. — М.:Компьютер-пресс, 1995.
6. Корриган Д. Компьютерная графика. Секреты и решения — М.:Энтроп, 1995.
Мультимедиа/ Под ред. Петренко А.И. — М.: БИНОМ, 1994
список литературы
Что такое сжатие изображений и как оно работает?
К
- Роберт Шелдон
Сжатие изображения — это процесс, применяемый к графическому файлу для минимизации его размера в байтах без ухудшения качества изображения ниже допустимого порога. Уменьшая размер файла, можно сохранить больше изображений на заданном объеме диска или в памяти. Изображение также требует меньшей пропускной способности при передаче через Интернет или загрузке с веб-страницы, что снижает перегрузку сети и ускоряет доставку контента.
Какие существуют два типа сжатия изображений?Методы, используемые для сжатия файлов изображений, обычно относятся к одной из двух категорий: с потерями и без потерь. Сжатие с потерями уменьшает размер файла изображения за счет безвозвратного удаления менее важной информации, особенно избыточных данных. Сжатие с потерями может значительно уменьшить размер файла, но также может привести к искажению качества изображения, особенно если изображение чрезмерно сжато. Тем не менее, качество может быть сохранено при тщательном сжатии.
Одна из проблем сжатия с потерями заключается в том, что оно необратимо. После того, как он был применен к изображению, это изображение никогда не может быть восстановлено до исходного состояния. Если к одному и тому же изображению неоднократно применяется сжатие с потерями, оно все больше искажается. Тем не менее, сжатие с потерями оказалось ценной стратегией для Интернета, где часто можно допустить умеренное ухудшение качества изображения.
Наиболее распространенным примером сжатия с потерями является JPEG, формат сжатия изображений, широко используемый в Интернете и в цифровой фотографии. Этот широко известный формат поддерживается многочисленными инструментами и приложениями. Кроме того, сжатие может применяться в градусах, что позволяет использовать сжатие JPEG, которое наилучшим образом обеспечивает баланс между размером файла и качеством.
Разница в качестве, поскольку к изображению применяется большее сжатие.Другой подход к сжатию изображений называется без потерь. Этот метод применяет сжатие без удаления важных данных или снижения качества изображения, в результате чего сжатое изображение может быть восстановлено до исходного состояния без ухудшения или искажения. Однако сжатие без потерь не уменьшает размер файла почти так же сильно, как сжатие с потерями, предлагая небольшое преимущество с точки зрения места для хранения, пропускной способности сети или скорости загрузки. Сжатие без потерь обычно используется в ситуациях, когда качество изображения важнее, чем место на диске или производительность сети, например, для изображений продуктов или для демонстрации иллюстраций.
Одним из наиболее распространенных форматов без потерь является PNG, широко используемый формат, который уменьшает размер файла за счет выявления шаблонов и их совместного сжатия. Хотя файлы PNG обычно больше, чем файлы JPEG, веб-сайты широко используют их, когда требуется больше деталей изображения, например, для логотипов, значков, снимков экрана или изображений с текстом. Другим знакомым форматом без потерь является BMP, проприетарный подход к сжатию изображений, представленный Microsoft и используемый в основном для продуктов Microsoft, особенно для компьютеров под управлением Windows.
GIF — это формат сжатия, который попадает в категорию без потерь, хотя есть некоторая путаница в отношении того, является ли он с потерями или без потерь. Изображения GIF ограничены 256 цветами, поэтому преобразование изображения с большим количеством цветов в GIF приводит к потере качества, что иногда связано со сжатием с потерями. Но алгоритмы сжатия, используемые GIF, работают без потерь. Если качество теряется, это связано с проблемами, связанными с преобразованием файла. В настоящее время формат GIF используется в основном для простых видео и анимации.
Сравнение различий между сжатием без потерь и сжатием с потерямиПопулярным форматом сжатия является Google WebP, формат изображений, разработанный исключительно для Интернета. В отличие от большинства методов сжатия, WebP поддерживает сжатие как без потерь, так и с потерями, что делает его очень универсальным. Изображения WebP обычно занимают меньше места на диске, чем другие форматы, но обеспечивают сравнимое качество. Большинство основных браузеров поддерживают изображения WebP.
Сжатие также можно использовать для типов файлов, не являющихся изображениями, таких как текстовые или программные файлы, но его использование, как правило, ограничивается сжатием без потерь. В текстовых и программных файлах очень важно, чтобы сжатие было без потерь, потому что одна ошибка может повредить смысл текстового файла или привести к тому, что программа не запустится. Формат zip-файла является примером сжатия без потерь, обычно используемого для текстовых файлов или даже целых каталогов файлов.
При сжатии изображения небольшая потеря качества обычно незаметна. В ситуациях, когда допустима потеря, к файлам может быть применено большее сжатие, чем в случае отсутствия допустимой потери. По этой причине графические изображения обычно могут быть сжаты в гораздо большей степени, чем текстовые или программные файлы.
techtarget.com/whatis/definition/image-compression&enablejsapi=1&origin=https://www.techtarget.com» type=»text/html» frameborder=»0″>См. также: кодек
Последнее обновление: июль 2022 г.
Продолжить чтение О сжатии изображений- Сжатие, дедупликация и шифрование: в чем разница?
- Передовой опыт корпоративного хранения данных изображений
- Как уменьшить задержку в сети за 3 шага
- Почему фишинговые электронные письма на основе изображений трудно обнаружить
- Рекомендации по политике хранения резервных копий: руководство для ИТ-администраторов
Б2С
B2C, или бизнес-потребитель, представляет собой розничную модель, в которой продукты или услуги поступают непосредственно от бизнеса к конечному пользователю, который приобрел товары или услуги для личного использования.
Сеть
- система управления сетью
Система управления сетью, или NMS, представляет собой приложение или набор приложений, которые позволяют сетевым инженерам управлять сетевыми . ..
- хост (в вычислениях)
Хост — это компьютер или другое устройство, которое взаимодействует с другими хостами в сети.
- Сеть как услуга (NaaS)
Сеть как услуга, или NaaS, представляет собой бизнес-модель для предоставления корпоративных услуг глобальной сети практически на основе подписки.
Безопасность
- токенизация
Токенизация — это процесс замены конфиденциальных данных уникальными идентификационными символами, которые сохраняют все необходимые …
- безопасность обмена сообщениями
Безопасность обмена сообщениями — это подкатегория унифицированного управления угрозами, или UTM, ориентированная на обеспечение безопасности и защиту …
- API веб-аутентификации
API веб-аутентификации (WebAuthn API) — это программный интерфейс приложения (API) для управления учетными данными, который позволяет . ..
ИТ-директор
- управление потоком создания ценности
Управление потоком создания ценности — это новый бизнес-процесс, предназначенный для измерения потока ценности в бизнес-ресурсы и …
- программа аудита (план аудита)
Программа аудита, также называемая планом аудита, представляет собой план действий, в котором документируются процедуры, которым аудитор будет следовать для проверки …
- децентрализация блокчейна
Децентрализация — это распределение функций, контроля и информации вместо того, чтобы быть централизованным в едином учреждении.
HRSoftware
- командное сотрудничество
Совместная работа в команде — это подход к общению и управлению проектами, который делает упор на командную работу, новаторское мышление и равенство . ..
- самообслуживание сотрудников (ESS)
Самообслуживание сотрудников (ESS) — это широко используемая технология управления персоналом, которая позволяет сотрудникам выполнять множество связанных с работой …
- платформа обучения (LXP)
Платформа обучения (LXP) — это управляемая искусственным интеллектом платформа взаимного обучения, предоставляемая с использованием программного обеспечения как услуги (…
Служба поддержки клиентов
- Net Promoter Score (NPS)
Net Promoter Score (NPS) — это показатель, который организации используют для оценки лояльности клиентов к их бренду, продуктам или …
- B2C (бизнес-потребитель)
B2C, или бизнес-потребитель, представляет собой розничную модель, при которой продукты или услуги поступают непосредственно от предприятия к конечному пользователю, который . ..
- сегментация рынка
Сегментация рынка — это маркетинговая стратегия, в которой используются четко определенные критерии для разделения общей адресной доли рынка бренда …
Все, что вам нужно знать о сжатии изображений
Правильное использование сжатия изображений может существенно изменить внешний вид и размер файлов изображений вашего веб-сайта . Но сжатие — это тема, которую часто неправильно понимают, отчасти из-за реального отсутствия понимания того, для чего хороши различные типы сжатия. Если вы не понимаете, какой тип сжатия использовать для различных типов изображений, вы, скорее всего, получите один из двух результатов: либо изображения выглядят не так хорошо, как могли бы, либо размеры файлов изображения слишком велики. больше, чем они должны быть.
Ниже приведено все, что вам нужно знать о сжатии изображений применительно к веб-дизайну. Мы рассмотрели различия между сжатием без потерь и сжатием с потерями, различные типы файлов и методы сжатия, которые они используют, а также рекомендации относительно того, какие форматы файлов лучше всего подходят для разных типов изображений.
1. «Сжатие без потерь» и «сжатие с потерями»
Многие люди считают, что им следует использовать только те форматы изображений, которые используют сжатие без потерь. Хотя сжатие без потерь лучше подходит для многих типов изображений, для многих других оно не требуется. По сути, сжатие изображений без потерь означает сохранение всех данных из исходного файла. Сжатие с потерями, с другой стороны, удаляет некоторые данные из исходного файла и сохраняет изображение с уменьшенным размером файла. Вам, как дизайнеру, решать, сколько данных игнорировать, устанавливая степень сжатия изображения.
Сжатие без потерь
Существует несколько различных методов сжатия без потерь. Существует кодирование длин серий (используемое для файлов BMP), которое берет серии данных (последовательные элементы данных с одинаковыми значениями) и сохраняет их в одном значении данных и подсчете. Он лучше всего подходит для простых графических файлов, в которых есть длинные серии одинаковых элементов данных.
DEFLATE — это еще один метод сжатия данных без потерь, используемый для изображений PNG. Он использует комбинацию алгоритма LZ77 и кодирования Хаффмана. Помимо использования для изображений PNG, он также используется в сжатии ZIP и gzip.
Сжатие Lempel-Ziv-Welch (LZW) — это алгоритм сжатия без потерь, который выполняет ограниченный анализ данных. Он используется в GIF и некоторых форматах файлов TIFF.
Сжатие с потерями
Существует ряд методов сжатия с потерями, некоторые из которых можно комбинировать с методами без потерь для создания файлов еще меньшего размера. Один из методов заключается в сокращении цветового пространства изображения до наиболее распространенных цветов в изображении. Это часто используется в GIF, а иногда и в изображениях PNG, чтобы уменьшить размер файла. При использовании с правильными типами изображений и в сочетании с дизерингом это может привести к получению изображений, почти идентичных оригиналам.
Кодирование с преобразованием — это тип кодирования, используемый для изображений JPEG. В изображениях кодирование с преобразованием усредняет цвет в небольших блоках изображения, используя дискретное косинусное преобразование (DCT), чтобы создать изображение, которое имеет гораздо меньше цветов, чем оригинал.
Субдискретизация цветности — это еще один тип сжатия с потерями, который учитывает, что человеческий глаз воспринимает изменения яркости более резко, чем изменения цвета, и использует это преимущество, отбрасывая или усредняя некоторую информацию о цветности (цвете) при сохранении яркости (яркости). информация. Он обычно используется в схемах кодирования видео и в изображениях JPEG.
2. Различные типы файлов
В этой статье мы сосредоточимся только на трех типах файлов, наиболее часто встречающихся в веб-дизайне: PNG, JPEG и GIF. Хотя существуют и другие форматы изображений, в которых используется сжатие (TIFF, PCX, TGA и т. д.), вы вряд ли столкнетесь с ними в какой-либо работе с цифровым дизайном.
GIF
GIF расшифровывается как Graphics Interchange Format и представляет собой формат растровых изображений, представленный в 1987 году компанией CompuServe. Он поддерживает до 8 бит на пиксель, что означает, что изображение может иметь до 256 различных цветов RGB. Одним из самых больших преимуществ формата GIF является то, что он позволяет создавать анимированные изображения, чего не позволяет ни один из других форматов, упомянутых здесь.
JPEG
JPEG (Joint Photographic Experts Group) — это формат изображения, который использует сжатие с потерями для создания файлов меньшего размера. Одним из больших преимуществ JPEG является то, что он позволяет дизайнеру точно настроить степень используемого сжатия. Это приводит к лучшему качеству изображения при правильном использовании, а также к наименьшему разумному размеру файла. Поскольку JPEG использует сжатие с потерями, изображения, сохраненные в этом формате, склонны к «артефактам», когда вы можете увидеть пикселизацию и странные ореолы вокруг определенных частей изображения. Это чаще всего встречается в областях изображения, где есть резкий контраст между цветами. Как правило, чем выше контрастность изображения, тем выше качество изображения, которое необходимо сохранить, чтобы получить прилично выглядящее конечное изображение.
PNG
PNG (Portable Network Graphics) — это еще один формат растровых изображений, который использует сжатие данных без потерь и был создан для замены формата изображения GIF. Формат PNG в значительной степени не поддерживался Internet Explorer в течение длительного времени, что делало его менее распространенным, чем форматы GIF и JPEG, хотя теперь он должным образом поддерживается всеми основными браузерами. Файлы PNG поддерживают цвет на основе палитры (24-битный RGB или 32-битный RGBA), оттенки серого, цветовые пространства RGBA и RGB. Одним из самых больших преимуществ PNG является то, что он поддерживает ряд параметров прозрачности, включая прозрачность альфа-канала.
3. Выбор формата файла
Каждый из указанных выше форматов файлов подходит для различных типов изображений. Выбор правильного формата приводит к более высокому качеству изображений и меньшим размерам файлов. Выбор неправильного формата означает, что ваши изображения будут не такими качественными, как могли бы быть, и что размеры их файлов, вероятно, будут больше, чем необходимо.
Для простой графики, такой как логотипы или штриховые рисунки, лучше всего подходят форматы GIF. Из-за ограниченной цветовой палитры GIF графика с градиентами или легкими цветовыми сдвигами часто оказывается постеризованной. Хотя это можно до некоторой степени преодолеть с помощью сглаживания, часто лучше использовать другой формат файла.
Для фотографий или изображений с градиентами, где формат GIF неуместен, лучше всего подходит формат JPEG. JPEG отлично подходит для фотографий с небольшим изменением цвета и без резких контрастов. На участках с резким контрастом скорее будут артефакты (разноцветный ореол вокруг участка). Регулировка уровня сжатия ваших файлов JPEG перед их сохранением часто может привести к получению изображения гораздо более высокого качества при сохранении меньшего размера файла.
Для изображений с высокой контрастностью, особенно фотографий или иллюстраций с большим количеством градиентов или контрастности, лучше всего подходит формат PNG. Это также лучший вариант для прозрачных изображений, особенно для тех, которым нужна частичная прозрачность. Файлы PNG часто больше, чем JPEG, хотя это зависит от конкретного изображения. Файлы PNG также не имеют потерь, что означает, что исходное качество изображения остается неизменным.
Вот обзор того, какие типы файлов лучше всего подходят для каждого типа изображения:
GIF
- Если требуется анимация.
- Штриховые рисунки и простая графика.
JPEG
- Фотографии, особенно без высокой контрастности.
- Скриншоты, особенно фильмов, игр или подобного контента.
PNG
- Штриховые рисунки, иллюстрации.
- Фотографии с высокой контрастностью.
- Прозрачность, особенно прозрачность альфа-канала.
- Скриншоты приложения или другие подробные схемы.
Вот обзор форматов, которых следует избегать для каждого типа изображений:
GIF
- Изображения с градиентами.
- Фото.
JPEG
- Изображения с высокой контрастностью.
- Подробные изображения, особенно диаграммы.
- Простая графика (размеры файлов больше).
PNG
- Фотографии с низкой контрастностью (размеры файлов больше).
4. Сжатие изображений в полиграфическом дизайне
Хотя основная часть этой статьи посвящена сжатию изображений в веб-дизайне, стоит упомянуть о том эффекте, который сжатие может иметь в полиграфическом дизайне. По большей части в полиграфическом дизайне следует полностью избегать сжатия изображений с потерями. Печатная графика гораздо менее терпима к артефактам и низкому качеству изображения, чем экранная графика. В то время как JPEG, сохраненный в среднем качестве, может отлично выглядеть на вашем мониторе, при печати даже на струйном принтере потеря качества заметна (как и артефакты).
Для дизайна печати предпочтительнее использовать типы файлов со сжатием без потерь.