Войти

Показать полную графическую версию : Размеры файлов JPEG в вертикальном и горизонтальном соотношении


Absolut
30-07-2005, 01:09
Обратил внимание на разницу одних и тех же файлов сделанных в разной плоскости.
к примеру фото 2048х1536 и 1536х2048
в первом случае занимает на диске на 100 кило больше чем в вертикальном соотношении...
или наоборот. почему так?

dascon
30-07-2005, 01:32
Absolut, я так понимаю, ты сравнивал фотографию до и после поворота? Т.е. в любом случае, после поворота размер уменьшается?

BJ Co
30-07-2005, 08:44
Как я понял, меньшее изображение было получено из большего с помощью какой-либо программы (ACDSee, Photoshop, Jasc Paint Shop...). При сохранении качество было на 100%?

Absolut
30-07-2005, 21:52
BJ Co нет ... я брал оригинал и сохранял его в двух вариациях и всегда вижу этот факт, что уменьшается если по вертикали больше точек...
dascon не всегда уменьшается.. бывает и увеличивается.

ShaRP
31-07-2005, 00:29
Absolut
Осмелюсь нагло высказать предположение, что изображение зело неоднородно. Сжатие по алгоритму формата в любом случае идет по линейному массиву данных (и вообще все "многомерные" структуры в памяти компа так или иначе отображаются на линейные). Следовательно при "перевороте" изображения мы получаем другую линию, которая и сжимается по-другому.

Пример для 3Х3, читаемого построчно.

111
222
333

"Разматываем". Получаем последовательность 111222333

Теперь переворачиваем его "набок".
123
123
123

А это уже "разматывается" в 123123123 соответственно.

Совсем другие "танцы". Вверху три "группы", внизу одна, повторенная трижды.

BJ Co
31-07-2005, 01:45
Absolut

Интересно, интересно.

А давай-ка сделаем эксперимент. Возьмем фотку (не размытую), откроем её в ACDSee и сохраним. Но сохраним её четыре раза, при всевозможных комбинациях галочек во фрейме "Color component sampling"; остальные опции сохранения во всех четырех случаях должны быть одинаковыми; будем следить, чтобы каждый раз сохранять оригинал, а не один з предыдущих результатов сохранения. А сейчас сделаем точно такую же процедуру, но только перед сохранением оригинал будем поворачивать на 90°.

Не окажется ли, что:
1) фотка, которая вращалаясь, занимает приблизительно столько же, сколько и не вращаемая, если при 2-ом сохранении напротив 2:1 Horizontal (2:1 Vertical) стояло то же, что и в первом напротив 2:1 Vertical (2:1 Horizontal). То есть если первую строчку (2:1 Horizontal) поменять местами со второй (2:1 Vertical).
2) Чем больше галочек в "Color component sampling", тем меньше конечный размер. Почему? Это станет ясно, если почитать в инете, что такое 2:1 sampling (коротко - отбрасывание каждого второго столбца или строки).
3) Если ставить ровно одну галочку, то размер (при фиксированом качестве) будет меньше, если для "стоячих" ("вертикальных") изображений выбирать 2:1 vertical, а для "лежачих" ("горизонтальных") - 2:1 horizontal.

Эксперименты подтверждают эти пункты?

ShaRP

У меня на винчестере где-то валяется схема алгоритма jpeg и MPEG. Сейчас попробую найти...

------

Нашел. Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юкин. Методы сжатия даных. Алгоритмы сжатия изображений. http://compression.graphicon.ru/

Коротко говоря, при поворачивании фотки матрица DCT начинает относительно сильно отличаться от соответствующей матрицы фото-оригинала.

Absolut
01-08-2005, 01:00
надо же так... интересно да уж.
как то редактировал фотки для печати их в фотолабе...
вот и заметил чте в вертикале они меньше места занимают...

насчет сэмплирования я их тока в фотошопе сохранял...
хотя ACDSEE дает более понятную картину и более сильную разницу в размерах файлов.




© OSzone.net 2001-2012