У меня есть веб-галерея, где я показываю изображения, которые различаются по размерам файлов и разрешениям, загруженным пользователями. В настоящее время все изображения являются базовыми. Поэтому я хотел бы знать, будет ли это действительно иметь какое-либо существенное влияние, если я преобразую их в прогрессивные образы. Каковы преимущества и преимущества использования прогрессивных изображений.Прогрессивный jpeg против базовой линии jpegs
ответ
Стандарт 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
Единственное отличие состоит в том, что прогрессивные изображения кодируются таким образом, что браузеры могут отображать предварительный просмотр изображения во время его загрузки, который становится прогрессивно лучше по качеству, пока, наконец, загрузка не будет завершена. Базовое изображение будет загружаться сверху вниз, прогрессивное изображение будет загружаться с низкого разрешения на высокое разрешение.
Для браузеров, которые не поддерживают прогрессивные изображения, вы ничего не увидите, пока не будет загружено все изображение. (В настоящее время все полные современные браузеры поддерживают прогрессивные JPEG-файлы.)
Вы можете увидеть анимацию разницы в действии, например. здесь: https://www.youtube.com/watch?v=TOc15-2apY0
Так есть ли разница в скорости? – Ayan
Скорость загрузки? Это зависит от размера изображения, которое зависит от того, как вы сжимаете/сохраняете его точно. То же самое количество файлов загружается за такое же количество времени. Скорость обработки? Вряд ли стоит говорить. – deceze
Итак, если вы хотите использовать jpegs в галерее, вы предпочитаете ленивую загрузку базовых jpeg или прогрессивных jpeg. – Ayan
- 1. Показать прогрессивный JPEG на IE
- 2. Как разобрать прогрессивный JPG
- 3. JPEG базовый стандарт VS прогрессивный: стоимость сжатия
- 4. Поддерживает ли образы facebook прогрессивный JPEG?
- 5. Прогрессивный слой JPEG/сканирование смещения (imagemagick?)
- 6. Жизненный цикл стратегий базовой линии/базовой линии в UCM ClearCase
- 7. изменен идентификатор базовой линии
- 8. Предотвращение смены базовой линии
- 9. Основной вид базовой линии
- 10. Получение размера базовой линии?
- 11. Параметры выборки базовой линии
- 12. Метод фильтра базовой линии
- 13. Стереофоническая оценка базовой линии
- 14. Уточнение базовой линии
- 15. Метод базовой линии вместо переопределения
- 16. Как показывать прогрессивный JPEG в UIImageView во время его загрузки?
- 17. Как преобразовать изображение в прогрессивный JPEG в Swift?
- 18. Как сделать прогрессивный JPEG на QWidget по мере его загрузки?
- 19. Jpegs в Django-wiki
- 20. Рендеринг с помощью базовой линии
- 21. Удаление базовой линии из данных
- 22. Вложенные модели в базовой линии
- 23. гиперссылка на базовой линии DIV
- 24. Перенаправление базовой линии весны безопасности
- 25. Библиотека коррекции базовой линии Python
- 26. Пользовательский сдвиг базовой линии UIFont
- 27. Сортировка коллекции в базовой линии
- 28. Устранение ошибок синхронизации базовой линии
- 29. Удаление переменной в базовой линии
- 30. методы класса в базовой линии
Больше, чем вы когда-либо хотели узнать о JPEG-файлах ... ;-) +1 – deceze
Wow..a много материала underhood для jpeg. :) – Ayan