" title="Написать письмо">Написать письмо
Донаты на карту ВТБ:
2200 4002 2461 6363

Статьи по дате (многие всегда актуальны)

Статистика

Пользователи : 1
Статьи : 2113
Просмотры материалов : 7767845
 
% сжатия JPEG - липа (29.01.2025). Печать E-mail
2025 - Январь
29.01.2025 09:41
Save & Share
Были выпущены научные работы, получены результаты: универсальный процент сжатия JPEG составляет 85% - для отсканированных текстовых документов. Однако было добавлено, что продолжение следует, - и спустя 10 лет оно подъехало. Это вы виноваты в том, что сейчас происходит: перестали мне донатить - оплачивать дополнительное место на хостинге стало накладно (и даже оно уже подходит к концу) - нужно уже и изображения пережимать.



Из материалов не был сделан самый главный вывод. Выводы статей намекают на то, что универсального процента JPEG Quality не существует: он уникальный для каждого изображения + зависит от размера контейнера (в маленьком окошке на сайте или мониторе 32"). То есть, требуется попроцентный анализ изображения на деформацию относительно оригинала - что может требовать большого количества ресурсов, и из прошлых работ можно позаимствовать дополнительные числа необходимой деформации.

Но этим работам пока не суждено сбыться, т.к. подъехал очередной треш. У разных программ: "одинаковые" номиналы процентов качества и изменяемость набора данных обработанных изображений - разные. То есть, сначала нужно определить, чем корректным пережимать, - и пока даже на этот вопрос ответов нет.

На примере ОС Astra Linux SE v.1.4 + Astra Linux SE v.1.7.4.0, сред программирования Qt v.5.3 + Qt v.5.15.2, метода save класса QImage, рисунка /home/учётка/SystemWallpapers/elbrus.jpg (1.7.4.0, 2698719Б, 96x96т/д, 6000x4000пикс, нет EXIF), JPEG Quality 0-50-100%:
- размер изображения - не идентичен в разных ОС при идентичном проценте JPEG Quality. Максимальная разница изображений разных ОС, +90051Б, достигнута на JPEG Quality 100;
- в 1.4 разрешение (DPI) становится 75x75т/д, в 1.7.4.0 - 100x100т/д (независимо от степени компрессии). Если же изображение уже содержит DPI (повторное перекодирование результатов одной ОС в другой) - DPI не меняется;
- в перекодированные изображения добавляется информация EXIF. Проставляется версия JFIF v.1.01 и версия кодирования "базовое DCT, кодирование Хаффмана". Тут всплывает и другая проблема: форматов JPEG существует несколько (JPEG 2000, JPEG-LS, JPEG XR, MotionJPEG и т.д.). И в каком сжимается - неизвестно;
- аналогичный результат получен на 3 произвольных фотографиях с телефона TECNO Pova 6 (72dpi, 2976x3968пикс). Максимальная разница изображений разных ОС - +227745Б при JPEG Quality 100%.

На примере тех же фото и ОС Windows XP SP1 x64, Windows 7 x64, Windows 10 x64 и встроенном в них MsPaint, Paint (просто пересохранение фотографий сразу после открытия). В XP - все 4 фото оказались меньше по размерам. В 10 - с фотоаппарата все меньше, Эльбрус - почти в 2 раза больше. В 7 - с фотоаппарата все меньше, Эльбрус - почти в 2 раза больше (разница между рисунками 7 и 10 - несколько десятков килобайт, но всё равно есть). DPI не изменяется, JFIF и кодирование стали указаны (проверялось перемещением рисунков в Astra 1.7.4.0). Paint'ы не имеют входных параметров качества кодирования.

На примере тех же фото и стационарного Image Optimizer Pro v.5.10.6010 (JPEG Quality 75%, MagiCompression 100%): выставляет всем фотографиям фиксированное разрешение 96dpi (при этом Astra 1.7.4.0 ошибочно видит его как 1dpi), все меньше. JFIF и кодирование указаны. Не имеет входных параметров качества кодирования.

На примере тех же фото и одного из множества предлагаемых интернетом сжимателей webresizer.com: выставляет всем фотографиям фиксированное разрешение 96dpi (при этом Astra 1.7.4.0 ошибочно видит его как 1), все меньше. JFIF и кодирование указаны (кодирование стало прогрессивных DCT).

96dpi - является "стандартным" разрешением в Windows, часто мелькает оптимальным параметров в 1С для чёткости мелких шрифтов. Однако хотелось бы найти ПО, имеющее JPEG Quality как входной параметр, - и при этом не изменяющее DPI.

(добавлено 30.01.2025) Придётся пока делать ставку на Qt v.5.15.2: DPI чуть больше "стандартного", EXIF много места не занимает, можно его подтереть (оставив только выходную информацию после сжатия).

Однако в нём пока проблемы есть и другие:
- DPI отсутствует, но есть DPM (точек на метр) - который нафиг не сдался;
- не удалось найти зависимость поведения QImage от библиотек ОС;
- не удалось расшифровать, что такое JFIF именно версии 1.01. Гугл показывает: как минимум, существует ещё JFIF 1.02. Из беглого сравнения большого описания британского национального архива: следует разница всего в 2 слова - скорее всего, несущественных;
- QImage допускает создание себя без параметров. Однако интернет-примеры, в т.ч. производителя Qt, явно указывают как минимум формат в будущем загружаемого изображения. Возможно, стажёр изначально неправильно выполнил практическую часть данного материала.

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

(добавлено 03.02.2025) Разница между JFIF 1.01 и 1.02 - некритична, можно не учитывать при анализе программ сжатия:
- 1.01: the JPEG File Interchange Format (JFIF) is a file format for storing JPEG-compressed raster images. It was developed by the Independent JPEG Group and C-Cube Microsystems, in the absence of any such format being defined in the JPEG standard, and rapidly became a de facto standard; this is what is commonly referred to as the JPEG file format. A JFIF file comprises a JPEG data stream together with a JFIF marker. It begins with a Start of Image (SOI) marker, immediately followed by a JFIF Application (APP0). This is followed by the JPEG image data, which is terminated by an End of Image (EOI) marker. JFIF supports up to 24-bit colour and uses lossy compression (based on the Discrete Cosine Transform algorithm). Other types of compression are available through JPEG extensions, including progressive image buildup, arithmetic encoding, variable quantization, selective refinement, image tiling, and lossless compression, but these may not be supported by all JFIF readers and writers;
- 1.02: the JPEG File Interchange Format (JFIF) is a file format for storing JPEG-compressed raster images. It was developed by the Independent JPEG Group and C-Cube Microsystems, in the absence of any such format being defined in the JPEG standard, and rapidly became a de facto standard. A JFIF file comprises a JPEG data stream together with a JFIF marker. It begins with a Start of Image (SOI) marker, immediately followed by a JFIF Application (APP0) marker and one or more optional application extension markers. This is followed by the JPEG image data, which is terminated by an End of Image (EOI) marker. JFIF supports up to 24-bit colour and uses lossy compression (based on the Discrete Cosine Transform algorithm). Other types of compression are available through JPEG extensions, including progressive image buildup, arithmetic encoding, variable quantization, selective refinement, image tiling, and lossless compression, but these may not be supported by all JFIF readers and writers.
Обновлено ( 03.02.2025 10:16 )
 
 

Последние новости


©2008-2025. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru