Комментарии 98
А почему в подвале топика нет блока со словами "Минутка заботы об нло?"
Мне кажется сабж — типа гидрашки. Плотность сильно большая, не сжимается.
https://ice2heart.com/doomguy.mp4
Тут что-то около тысячи преобразований.
Прикольно что даже на макроблоках потеряли цвет.
Если была цель скомпенсировать изменения размера, то вместо умножения на 0.8 стоило делить на 1.2. Сейчас там изображение становится в среднем на 2% меньше с каждым преобразованием (1.2 * 0.8 = 0.96).
Ну и по видео очень заметно, что разрешение очень быстро упало за первые секунд 5 и причина явно не в jpeg.
Наприемр Topaz JPEG to RAW AI. Ведь была даже идея встроить такие штуки в стандарт декодера, и что-то похожее на это реализовали в h264, in-loop deblocking, и ещё что-то более сильное в h265.
Хм, некоторая информация будет теряться, но потерянную информацию будут додумывать алгоритмы улучшения. Я подозреваю, что если восстанавливать будет нейронка, то после миллиона итераций будет качественное, фотореалистичное лицо, но другого человека.
www.youtube.com/watch?v=G8GOcB6H0uQ
Вот забугорный блогер перезаливает видео на YouTube 1000 раз.
https://youtu.be/JR4KHfqw-oE
Минутка наркомании, не судите строго: я не смог быстрым поиском найти информацию о JPEG-инвариантных изображениях (изображения, которые не меняются в результате однократного сжатия/восстановления). Если предположить, что таковые существуют, то для них верно (примерно) следующее:
I = JPEG
-1 (JPEG (I))
Можно пойти дальше: Пусть I
0 — исходное изображение. Строим последовательность I
n= JPEG
-1(JPEG(I
n-1))
. Существует ли такое неотрицательное конечное N
, что для любого n > N
: I
n+1= I
n= J
, где J
— инвариантный JPEG-образ исходного изображения? Единственнен ли такой образ если он существует? Является ли он нетривиальным (отличается ли от равномерно-залитого прямоугольника, например). Можно ли найти простое преобразование из I
0 в J
и использовать J
как исходное изображение, которое не будет меняться при сжатии/восстановлении JPEG (хотя бы при каком-то фиксированном наборе параметров), но при этом для человека будет слабо отличаться от исходного?
(отличается ли от равномерно-залитого прямоугольника, например)
Предположу что это любая сетка пикселей 8*8 пикселей с однородной заливкой, которые являются неким базисом для сжатия. В том числе прямоугольники кратные 8 пикселям, и с привязкой к сетке пикселей кратным 8.

Применяется начиная с верхнего левого угла змейкой по диагонали.
Чтобы оно пережималось без потерь надо выбирать первые паттерны и желательно с целыми коэффициентами.
Теперь кажется понятно, почему фотошоп настойчиво предлагает сохранить «в том же качестве» по умолчанию. Надеюсь, что именно для уменьшения ошибок.
ps отдельное спасибо и за статью по ссылке, пришлось предварительно тоже прочитать. Интересуюсь давно, но так и не осилил разобраться. Хотелось на основе готовых таблиц из jpeg файла извлекать какой-нибудь pHash без декодирования всей картинки.
Я разочарован, что внутри статьи какие-то фотки кота, вместо Путина.
По крайней мере нижнюю часть статьи, где анализируется вкшный феномен, стоило бы проиллюстрировать получившимся у вас результатом и результатом, получившимся в группе.
А круче видео сделать, да.
Спасибо, с видео и графики понятнее, график отклонения явно читается на видео.
А на вопрос причин, я ставлю на то, что администратор группы просто решил разнообразить контент. Даже видны конкретные моменты, когда он внёс одно искажение в алгоритм и когда внёс второе.
P.S. Осталось сопоставить даты внесения искажений и проверить, не проходило ли в те дни каких-либо [минутка заботы НЛО].
Получается по качеству можно определить примерное количество раз которое картинка была закачана и скачана?
К сожалению, я так и не выяснил, что же действительно происходило с изображением.
Может быть это был просто PrintScreen области экрана с последующим сохранением?
К сожалению, я так и не выяснил, что же действительно происходило с изображением
возможно, происходит изменение самого изображения на серверах
Именно происходит изменение изображения на vk-сервере. При приёме изображения от пользователя его немного ужимают с потерей качества, а также преобразуют PNG и GIF в JPEG и уменьшают размер изображения до 2048 по большей стороне, если таковой был превышен. Именно по причине обработки изображения на сервере в vk не работает такая вещь, как rarjpeg.
Но это всё если загружать картинку в раздел фотографий. Если же загружать картинку как документ, то её обработки не происходит, можно загружать картинки размером больше чем 2048х2048, rarjpeg работает.
Хотя, конечно, не настолько жесть…
А вот это место статьи очень интересное: «После любого последующего количества перекодирований с тем же качеством картинка не меняется.» Сколько раз пробовали это сделать? Пришлите пожалуйста исходный файл или ссылку на него, интересно попробовать.
Что касается «определённых условий», то можно их конкретно сформулировать в явном виде, чтобы можно было проверить на практике?
При изменении DQT меняется и сетка, поэтому, конечно, качество будет ухудшаться.
Потрясающая эта и предыдущая статья про jpeg.
Подскажите, существует ли простой способ поместить в jpeg обратное кусочное DC- преобразование произвольного бинарного файла так, чтобы оно пережило несколько пересохранений подряд с возможностью восстановления содержимого файла? И как мог бы выглядеть такой "рисунок"?
В случае бесконечного числа пережатий это невозможно. Можно подобрать такую последовательность коэффициентов сжатия, что последовательные округления занулят любые значения.
А статья действительно интересная, продолжай!)
продолжайте пересохранять дальше. примерно через тыщщи полторы пересохранений фотка начнёт улучшаться. как и вся жизнь в этой стране. :)
А если серьёзно, продолжайте писать о новых экспериментах с изображениями (с точки зрения работы алгоритмов), очень интересно
Сначала 87, потом 80, потом обратно 87, а потом 96.
Местом разжились или добавляют случайность в эксперимент?
Исследование многократного перезалива JPEG