Какие существуют методы сравнения качества изображения?
Задача: есть несколько версий одного и того же изображения (из разных источников), нужно выбрать наиболее качественное* из них. Гарантируется, что все изображения имеют одинаковое соотношение сторон, не были сдвинуты или отзеркалены.
Под "качественностью" имеется в виду наличие наименьшего количества артефактов и искажений, связанных со сжатием и масштабированием (задача осложнена тем, что скорее всего такое изображение было масштабировано и сжато несколько раз).
Текущее наивное решение: набор изображений сравнивается в первую очередь по количеству пикселей, во вторую по размеру файла (метаданные отсутствуют). * В качестве изображений выступают цветные графические рисунки, часто на однородном фоне либо на фоне, похожем на плавный градиент.
* Вычислительная сложность алгоритма не критична, важно получать наибольшее количество максимально качественных изображений.
* Гарантируется, что кроме многократного сжатия и пропорционального масштабирования изображения идентичны
Вопрос: какие есть подходы для решения данной задачи?
Оценка по размеру файла может быть не релевантна, если имеем разные форматы файлов. Например, GIF выиграет при малом количестве цветов и больших однотонных областях, либо горизонтальных линиях (схемы, диаграммы, рисунки); JPG выиграет в случае фотографий; PNG может выиграть для комбинации (страница текста плюс иллюстрация), либо для многоцветных рисунков, многоцветной деловой графики.
В итоге можно иметь изображение(A) в разных форматах, и лучшее качество в файле меньшего размера, а также изображение(Б) в разных форматах, но там лучшее качество обеспечил другой формат.
Более-менее размер соответствует качеству, если все файлы в JPG.
Я помню что в умных статьях, которые сравнивают алгоритмы сжатия типа JPEG/J2k/Lurawave
часто приводили параметр PSNR (Peak signal-to-noise ratio) и на базе него пытались
построить какие-то выводы. Период этих революций сжатия приходился примерно на 2000-е годы.
Но при этом у них был известен оригинал изображения и всем было понятно что с чем сравнивают.
Таблицы сравнения прилагались и читатель мог видеть числовое значение PSNR как метрику качества.
Ну еще и сгруппированоо по коэффициенту сжатия.
В случае когда картинок много и мы не можем определить где оригинал то я-бы предложил
смотреть спектры высоких частот. Где их больше - там и предположительно оригинал.
Если с изображением работали (scale, фильтры) то обычно метрика высоких частот будет
слабее выражена.
Вобщем сравнивать вам придется не по 1 параметру а по вектору. Увы-увы... в наше современное
время маш-обучения сравнение векторов это нормально. Так и должно быть.
В случае когда картинок много и мы не можем определить где оригинал то я-бы предложил
смотреть спектры высоких частот. Где их больше - там и предположительно оригинал.
К сожалению, JPЕG добавляет высоких частот, даже если в оригинале высоких частот не было вовсе. Тем самым, высоких частот (артефактов JPEG) может быть больше при снижении качества. IMHO.
А вот в случае PNG, вроде бы, должно работать как вы сказали: больше высоких - выше качество.
Для JPEG мы знаем эти артефакты. Есть размеры JPEG-фрейма (типа 8х8) и по этой границе
можно предполагать появление резких изменений уровня сигнала. И зная этот период
и частототу мы можем ее эффективно давить полосовым фильтром. И даже более
того, мы точно знаем фазу этого сигнала.
hint000, jpeg добавляет высокие частоты только между блоками. Внутри блока 8x8 высокие частоты как раз подавлены.
Можно еще косвено определить степень сжатия по гистограммам компонентов Cr, Cb..
Я бы попробовал взвесить удельный информационный вес одного пикселя изображения:
P = размер файла / (длина * ширина).
Если изображение jpeg, то бы еще посмотрел степень компрессии по качеству Q.
И потом бы взял результат: order by P desc, Q desc
Это самый наивный анализ без влезания в оценку частотных и вивлет преобразований.
Ну. Тема топика не про это. У вас может быть качественный JPEG и очень плохое,
прошедшее 100 преобразований PNG изображение. И тут недостаточно будет
мерять свойства конейнера изображения. Ну .. если-б я был автором вопроса
то меня как раз интересовало бы само изображение.