Читайте также:
|
|
SDF – формоопределенные форматы. SDF – один из простейших и наиболее разносторонних форматов. Этот формат определяет графическое изображение как совокупность геометрических фигур и образцов. Таким способом хранятся данные систем автоматизированного проектирования (CAD), так как для них обычно нет необходимости определять значение цвета для каждой точки растра.
RLE (Run-Length Encoding) – сжатие длинных последовательностей. Самый простой алгоритм сжатия. С большим успехом применяется по сей день на различных потоках данных, но чаще всего в качестве дополнительного алгоритма сжатия. Наиболее эффективен в примитивных малоцветных изображениях, где существуют довольно большие участки кода, передающего один цвет. Принцип работы алгоритма легко понять на следующем примере. Имеем текст: аааааааааааабббббббббвапезааааааааааааааааазепккккккккккккккккккккккккк
Запишем его следующим образом: цифра, обозначающая количество повторов символа, затем сам символ. Если цифра 0, то следующая цифра – размер непрерывного бесповторного фрагмента текста и дальше сам текст. В результате этих манипуляций имеем: 12а9б05вапез17а03зеп25к. Как видно, текст сжался почти в 3 раза и его можно полностью восстановить в исходный или отобразить специальным просмотрщиком. Формат PCX – одна из реализаций этого алгоритма. При хорошей реализация алгоритм дает большую скорость преобразований. Основной недостаток описанного алгоритма – невозможность сжатия картинок с большим количеством цветов и оттенков и плавными переходами цвета. RLE используется и в сжатии данных при передаче по каналам связи. Например, реализации модемных протоколов сжатия (MNP) в своей основе используют именно этот алгоритм.
LZ – Lempel-Ziv. Это метод словарей, несколько улучшенный алгоритм сжатия изображений, впервые опубликованный в 1977 г. На сегодняшний день LZ-алгоритм и его модификации получили наиболее широкое распространение по сравнению с другими методами сжатия. Принцип в общем похож на RLE. Из повторяющихся участков кода формируется индексированный словарь. А поскольку индекс занимает гораздо меньше места, чем участок кода, получается достаточно эффективный метод сжатия. Основной плюс – сжимаются повторы комбинаций. Основной недостаток – словарь требуется хранить в том же файле. Существует большое число модификаций этого метода LZ – LZW, LZ77, LZSS и т. д.
Метод сжатия Хаффмена (Huffman compression method, кодирование CCITT) разработан в 1952 году Дэвидом Хаффменом (David Huffman). Международный консультативный комитет по телефонии и телеграфии (CCITT) разработал на его основе ряд коммуникативных протоколов для факсимильной передачи черно-белых изображений по телефонным каналам и сетям передачи данных (Стандарт T.4 CCIT и T.6 CCITT, они же — сжатие CCITT group 3 и сжатие CCITT group 4).
22.
JPEG (произносится «джейпег»[1], англ. Joint Photographic Experts Group, по названию организации-разработчика) — один из популярных графических форматов, применяемый для хранения фотоизображений и подобных им изображений. Файлы, содержащие данные JPEG, обычно имеют расширения .jpeg, .jfif, .jpg, .JPG, или .JPE. Однако из них .jpg самое популярное расширение на всех платформах.
Фотография заката в формате JPEG с уменьшением степени сжатия слева направо
Алгоритм JPEG является алгоритмом сжатия данных с потерями.
Формат является форматом сжатия с потерями, поэтому некорректно считать что JPEG хранит данные как 8 бит на канал (24 бит на пиксел). С другой стороны, так как данные, подвергающиеся компрессии по формату JPEG и декомпрессированые данные обычно представляются в формате 8 бит на канал, иногда используется эта терминология. Поддерживается также сжатие чёрно-белых полутоновых изображений.
При сохранении JPEG-файла можно указать степень качества, а значит и степень сжатия, которую обычно задают в некоторых условных единицах, например, от 1 до 100 или от 1 до 10. Большее число соответствует лучшему качеству, но при этом увеличивается размер файла. Обыкновенно, разница в качестве между 90 и 100 на глаз уже практически не воспринимается. Следует помнить, что восстановленное из формата JPEG изображение не является точной копией оригинала. Распространённым заблуждением является мнение о том, что качество JPEG тождественно доле сохраняемой информации.
Широкая поддержка формата JPEG разнообразным ПО нередко приводит к кодированию в JPEG изображений, для того не предназначенных – безо всякого выигрыша по степени сжатия в сравнении с правильно сделанными PNG или GIF, но с прискорбными последствиями для качества. Например, попытка записать в JPEG изображение, содержащее мелкие контрастные детали (особенно, цветные) приведёт к появлению характерных хорошо заметных артефактов даже при высокой «степени качества».
Сжатие
При сжатии изображение преобразуется из цветового пространства RGB в YCbCr (YUV). Следует отметить, что стандарт JPEG (ISO/IEC 10918-1) никак не регламентирует выбор именно YCbCr, допуская и другие виды преобразования (например, с числом компонентов[2], отличным от трёх), и сжатие без преобразования (непосредственно в RGB), однако спецификация JFIF (JPEG File Interchange Format, предложенная в 1991 году специалистами компании C-Cube Microsystems, и ставшая в настоящее время стандартом де-факто) предполагает использование преобразования RGB->YCbCr.
После преобразования RGB->YCbCr для каналов изображения Cb и Cr, отвечающих за цвет, может выполняться "прореживание" (subsampling[3]), которое заключается в том, что каждому блоку из 4 пикселов (2х2) яркостного канала Y ставятся в соответствие усреднённые значения Cb и Cr (схема прореживания "4:2:0"[4]). При этом для каждого блока 2х2 вместо 12 значений (4 Y, 4 Cb и 4 Cr) используется всего 6 (4 Y и по одному усреднённому Cb и Cr). Если к качеству восстановленного после сжатия изображения предъявляются повышенные требования, прореживание может выполняться лишь в каком-то одном направлении — по вертикали (схема "4:4:0") или по горизонтали ("4:2:2"), или не выполняться вовсе ("4:4:4").
Стандарт допускает также прореживание с усреднением Cb и Cr не для блока 2х2, а для четырёх расположенных последовательно (по вертикали или по горизонтали) пикселов, то есть для блоков 1х4 или 4х1 (схема "4:1:1"). Допускается также использование различных типов прореживания для Cb и Cr, но на практике такие схемы встречаются исключительно редко.
Далее, яркостный компонент Y и отвечающие за цвет компоненты Cb и Cr разбиваются на блоки 8х8 пикселов. Каждый такой блок подвергается дискретному косинусному преобразованию (ДКП). Полученные коэффициенты ДКП квантуются (для Y, Cb и Cr в общем случае используются разные матрицы квантования) и пакуются с использованием кодов Хаффмана. Стандарт JPEG допускает также использование значительно более эффективного арифметического кодирования, однако, из-за патентных ограничений (патент на описанный в стандарте JPEG арифметический QM-кодер принадлежит IBM) на практике оно не используется.
Матрицы, используемые для квантования коэффициентов ДКП, хранятся в заголовочной части JPEG-файла. Обычно они строятся так, что высокочастотные коэффициенты подвергаются более сильному квантованию, чем низкочастотные. Это приводит к огрублению мелких деталей на изображении. Чем выше степень сжатия, тем более сильному квантованию подвергаются все коэффициенты.
Разновидности схем сжатия JPEG
Стандарт JPEG предусматривает два основных способа представления кодируемых данных.
Наиболее распространённым, поддерживаемым большинством доступных кодеков, является последовательное (sequential JPEG) представление данных, предполагающее последовательный обход кодируемого изображения поблочно слева направо, сверху вниз. Над каждым кодируемым блоком изображения осуществляются описанные выше операции, а результаты кодирования последовательно помещаются в выходной поток в виде единственного «скана» (массива кодированных данных). Основной или «базовый» (baseline) режим кодирования допускает только такое представление. Расширенный (extended) режим наряду с последовательным допускает также прогрессивное (progressive JPEG) представление данных.
В случае progressive JPEG сжатые данные записываются в выходной поток в виде набора сканов, каждый из которых описывает изображение полностью с всё большей степенью детализации. Это достигается либо путём записи в каждый скан не полного набора коэффициентов ДКП, а лишь какой-то их части: сначала — низкочастотных, в следующих сканах — высокочастотных (метод «spectral selection» т.е. спектральных выборок), либо путём последовательного, от скана к скану, уточнения коэффициентов ДКП (метод «successive approximation», т.е. последовательных приближений). Такое прогрессивное представление данных оказывается особенно полезным при передаче сжатых изображений с использованием низкоскоростных каналов связи, поскольку позволяет получить представление обо всём изображении уже после передачи незначительной части JPEG-файла.
Дата добавления: 2015-07-21; просмотров: 119 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Требования к устройствам синхронизации по элементам. | | | Форматы сжатия видео семейства MPEG |