Есть алгоритмы или готовые решения для определения качества изображения?
compare из пакета imagemagick это умеет, см. например.
Тут не обойтись без нейросетей.
Ведь картинка изначально может быть размытая, мутная, или с маленьким числом деталей (например, какой-то простой предмет, типа кубика, на однотонном фоне). И обычными алгоритмами не получится выяснить, насколько сильно сжатие исходного материала (если оно есть вообще). Ведь можно открыть картинку в любом просмотрщике, увеличить, сделать снимок экрана, и получится совершенно качественное изображение, с точки зрения jpg (и любого другого подобного формата).
Однако уже сейчас есть готовые сети, которые улучшают чёткость картинки, и не только фото, но и видео, ориентируясь на большой массив изображений, по которым их обучили, как распознать, где сильно пережатый а где нет, и какой может быть исходная картинка. Чуть модифицировать, и можно сделать чуть простое решение - просто определить, насколько сильно сжатие картинки (без привязки к тому, какой формат и что там прописано, чисто по содержимому картинки, как это делает мозг человека).
Возможно, уже есть готовые решения, я даже не гуглил на эту тему. Направление, думаю, понятно.