Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ в Дизайне. Ответы на вопросы..docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
344.22 Кб
Скачать

[Править]Разновидности схем сжатия jpeg

Стандарт JPEG предусматривает два основных способа представления кодируемых данных.

Наиболее распространённым, поддерживаемым большинством доступных кодеков, является последовательное (sequential JPEG) представление данных, предполагающее последовательный обход кодируемого изображения поблочно слева направо, сверху вниз. Над каждым кодируемым блоком изображения осуществляются описанные выше операции, а результаты кодирования помещаются в выходной поток в виде единственного «скана», то есть массива кодированных данных, соответствующего последовательно пройденному («просканированному») изображению. Основной или «базовый» (baseline) режим кодирования допускает только такое представление. Расширенный (extended) режим наряду с последовательным допускает также прогрессивное (progressive JPEG) представление данных.

В случае progressive JPEG сжатые данные записываются в выходной поток в виде набора сканов, каждый из которых описывает изображение полностью с всё большей степенью детализации. Это достигается либо путём записи в каждый скан не полного набора коэффициентов ДКП, а лишь какой-то их части: сначала — низкочастотных, в следующих сканах — высокочастотных (метод «spectral selection» то есть спектральных выборок), либо путём последовательного, от скана к скану, уточнения коэффициентов ДКП (метод «successive approximation», то есть последовательных приближений). Такое прогрессивное представление данных оказывается особенно полезным при передаче сжатых изображений с использованием низкоскоростных каналов связи, поскольку позволяет получить представление обо всём изображении уже после передачи незначительной части JPEG-файла.

Обе описанные схемы (и sequential, и progressive JPEG) базируются на ДКП и принципиально не позволяют получить восстановленное изображение абсолютно идентичным исходному. Однако стандарт допускает также сжатие, не использующее ДКП, а построенное на основе линейного предсказателя (lossless, то есть «без потерь», JPEG), гарантирующее полное, бит-в-бит, совпадение исходного и восстановленного изображений. При этом коэффициент сжатия для фотографических изображений редко достигает 2, но гарантированное отсутствие искажений в некоторых случаях оказывается востребованным. Заметно большие степени сжатия могут быть получены при использовании не имеющего, несмотря на сходство в названиях, непосредственного отношения к стандарту JPEG ISO/IEC 10918-1 (ITU T.81 Recommendation) метода сжатия JPEG-LS, описываемого стандартом ISO/IEC 14495-1 (ITU T.87 Recommendation).

20. Представление графической информации в растровых файлах. Поле, тег, поток. Представление графических данных Растровая графика

Растровая графика оперирует с изображениями в виде растров. Неформально можно сказать, что растр - это описание изображения на плоскости путем разбиения всей плоскости или ее части на одинаковые квадраты и присвоение каждому квадрату своего атрибута. Иногда понятие растра определяют более широко: как разбиение плоскости (или ее участка) на равные элементы (т.е. "замощение"). Такие элементы растра называются пикселями (pixel - picture element). Каждому пикселю может быть задан определенный атрибут, это, как правило, цвет или яркость. В растровой графике пиксели выстраиваются в виде прямоугольной матрицы (bitmap), где из них, как из крохотных точек собрано мозаичное изображение. Благодаря маленькому размеру и большой концентрации таких пикселей-точек, отдельные точки становятся невидны (или малозаметны), и создаётся впечатление однородной картины.

Растровый способ представления изображений прекрасно подходит для хранения фотографий и видеофрагментов и позволяет создать (воспроизвести) практически любой рисунок, вне зависимости от сложности.

Основной недостаток растровой графики — большой размер графических файлов. Простые растровые картинки занимают несколько десятков или сотен килобайтов. Реалистические изображения, полученные с помощью сканеров с высокой разрешающей способностью, могут занимать несколько мегабайтов. По этой причине информация в файлах растрового формата, как правило, хранится в сжатом виде. Для сжатия графической информации используются специальные методы, позволяющие сократить ее объем в десятки раз.

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

Поля

Поле — это структура данных в графическом файле, имеющая фиксированный размер. Фиксированное поле может иметь не только фиксированный размер, но и фиксированную позицию в файле. Для определения местоположения поля задают либо абсолютное смещение от ориентира в файле, например от начала или конца файла, либо относительное смещение от любых других данных. Размер поля может быть указан в спецификации формата либо определен по другой информации.

Теги

Тег — это структура данных, размер и позиция которой изменяются от файла к файлу. Аналогично полю, позиция тега задается либо абсолютным смешением относительно известного ориентира в файле, либо относительным смешением от другого файлового элемента. Теги могут содержать в себе другие теги или наборы связанных полей.

 Потоки

Поля и теги спроектированы таким образом, чтобы помочь программе получить быстрый доступ к нужным данным. Если позиция в файле известна, то программа может получить доступ к ней непосредственно, без предварительного чтения промежуточных данных. Файл, в котором данные организованы в виде потока, не дает таких возможностей и должен читаться последовательно. Мы предполагаем, что поток позволяет поддерживать блоки данных переменной длины, которые являются элементами потока и должны учитываться программой при чтении файла. Хотя начало и конец потока могут быть известны и заданы, местоположение блоков данных (за исключением первого) неизвестно и определяется в процессе чтения.