2016-12-02 3 views
0

У меня есть веб-галерея, где я показываю изображения, которые различаются по размерам файлов и разрешениям, загруженным пользователями. В настоящее время все изображения являются базовыми. Поэтому я хотел бы знать, будет ли это действительно иметь какое-либо существенное влияние, если я преобразую их в прогрессивные образы. Каковы преимущества и преимущества использования прогрессивных изображений.Прогрессивный jpeg против базовой линии jpegs

ответ

4

Стандарт JPEG определяет различные режимы сжатия. Только три из них широко используются:

  • Baseline Sequential
  • Расширенная Последовательная
  • Progressive

Единственное различие в первой находится в ряде таблиц допускается. В противном случае они кодируются и декодируются точно так же.

JPEG делит изображения на фреймы, которые затем делятся на «Сканы». Вышеуказанные режимы допускают только один кадр. Рамка - это изображение. Сканирование проходит через данные изображения. Сканирование может содержать данные для одного цветового компонента или может чередоваться и содержать данные для нескольких компонентов цвета.

  • Последовательный поток JPEG в градациях серого будет иметь одно сканирование.
  • Цветовой последовательный поток JPEG может иметь одно или три сканирования.

JPEG принимает 8x8 блоков данных пикселей и применяет дискретное косинусное преобразование к этим данным. 64-пиксельные данные становятся 64 DCT-коэффициентами. Первый коэффициент DCT называется коэффициентом «DC», а другой 63 называется «AC».

Это путаная терминология, основанная на аналогии с постоянным током и переменным током. Коэффициент DC аналогичен среднему значению пикселя блока.

В последовательном JPEG, 64 коэффициента в блоке кодируются вместе (с коэффициентами DC и AC, закодированными по-разному). В Progressive JPEG DC и AC коэффициенты сканируют кодированные битовые поля (настраиваемого размера) в пределах коэффициента. Теоретически у вас может быть отдельное сканирование для каждого бита каждого компонента.

Прогрессивный JPEG намного сложнее реализовать и использовать. Если вы создаете кодировщик для последовательного JPEG, вам просто нужно предоставить вызывающему абоненту возможность использовать чередование или не чередование. Для прогрессивного JPEG вашему кодеру требуется механизм для вызывающего абонента, чтобы определить, сколько сканирований и какие биты должны быть закодированы при каждом сканировании.

Прогрессивное кодирование может быть медленнее, чем последовательное, поскольку вам необходимо сделать несколько проходов над данными.

Вопрос о скорости в прогрессивном декодировании зависит от того, как это делается. Если вы полностью декодируете все изображение, прогрессивный, возможно, будет медленнее, чем последовательный. Если ваш декодер показывает затухание изображения, поскольку он обрабатывает поток, он будет намного медленнее, чем последовательный. Каждый раз, когда вы обновляете дисплей, вам необходимо выполнить обратное преобразование DCT, upsampling и color.

С другой стороны, можно добиться гораздо лучшего сжатия с использованием прогрессивного JPEG с хорошо настроенными сканированиями.

Там нет никакой разницы в качестве между прогрессивной и последовательной

Эта книга описывает процессы:

https://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=asap_bc?ie=UTF8

+1

Больше, чем вы когда-либо хотели узнать о JPEG-файлах ... ;-) +1 – deceze

+0

Wow..a много материала underhood для jpeg. :) – Ayan

0

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

Для браузеров, которые не поддерживают прогрессивные изображения, вы ничего не увидите, пока не будет загружено все изображение. (В настоящее время все полные современные браузеры поддерживают прогрессивные JPEG-файлы.)

Вы можете увидеть анимацию разницы в действии, например. здесь: https://www.youtube.com/watch?v=TOc15-2apY0

+0

Так есть ли разница в скорости? – Ayan

+0

Скорость загрузки? Это зависит от размера изображения, которое зависит от того, как вы сжимаете/сохраняете его точно. То же самое количество файлов загружается за такое же количество времени. Скорость обработки? Вряд ли стоит говорить. – deceze

+0

Итак, если вы хотите использовать jpegs в галерее, вы предпочитаете ленивую загрузку базовых jpeg или прогрессивных jpeg. – Ayan

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