Я всегда думал, что JPEG кодирует изображение разбивая его на отдельные не связанные блоки 8x8 пикселей.
Однако, когда я изменяю один пиксель в изображении и сохраняю его, то помимо изменённого блока могут меняться и соседние блоки. Происходит это не всегда, но вероятность этого достаточно большая.
Делаю я следующее. Загружаю изображение (img1) и сохраняю его в JPEG (img2). Понятно, что при последующем открытии и сверки его с оригиналом есть небольшие отличия. Если я ещё раз сохраняю исходное изображение (img1) в JPEG с теми же самыми параметрами, то получается то же изображение (img2). Теперь я изменяю один пиксель исходного изображения (img1) и сохраняю его в JPEG (img3). Тут возможны следующие варианты. Если изменения незначительны, то может быть img3==img2. Иногда бывает, что меняется содержимое блока, в котором произошли изменения пикселя. Но, иногда, помимо этого блока меняется ещё и содержимое соседнего (одного или нескольких) блоков. Неужели при кодировании в JPEG изменение исходного содержимого одного блока может влиять на соседние блоки?