LINUX.ORG.RU
решено ФорумTalks

Как интересно работает сжатие изображений

 , , ,


0

2

Попался на глаза забавный шорт
Делаю png 1000x600,
рисую три прямоугольника rgb, по типу флага.
Размер файла 3,7 КиБ.
Поворачиваю рисунок на 90 градусов,
размер становится 4,5 КиБ.



Последнее исправление: xyz (всего исправлений: 1)

Не надо познавать мир через видеохостинги. И КиБ вместо КБ тоже не надо.

firkax ★★★★★
()
Ответ на: комментарий от firkax

КиБ вместо КБ тоже не надо

Так пишет фм.

xyz
() автор топика
Последнее исправление: xyz (всего исправлений: 1)
Ответ на: комментарий от karton1

Не факт, кстати. Корреляция прослеживается явно, но важно не забывать альтернативную гипотезу: вполне возможно, что среди любителей шортсов полно людей с убитым мозгом не потому что шортсы его убили, а потому что люди с убитым мозгом начинают яростно смотреть шортсы.

CrX ★★★★★
()
Ответ на: комментарий от CrX

На самом деле связь есть. Мозг учится перескакивать с информации на информацию не анализируя её. По итогу имеем сдвг с убитой напрочь способностью анализировать входящий поток информации. Идеальный потребитель

karton1 ★★★★★
()
Ответ на: комментарий от karton1

Да. Но вполне возможно, что по крайней мере в некоторых случаях просмотр шортсов — это не причина, а следствие. Если у человека сформировалась неспособность воспринимать информацию больше одного параграфа в тексте или больше минуты в видео, то такой человек, будет постоянно смотреть шортсы как единственный комфортный для него формат. Не всегда причинно-следственная связь такая явная, как того хотелось бы. Хуже всего, если окажется, что есть ещё и положительная обратная связь (и убитый мозг заставляет смотреть шортсы, и шортсы ещё сильнее добивают мозг, цепная реакция).

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от greenman

Какая эклектика!

Почему же? Вполне стандартный набор — ведь во всех них используется алгоритм сжатия DEFLATE.

CrX ★★★★★
()
Ответ на: комментарий от greenman

Битность цвета не уменьшает? Есть и такие png оптимизаторы.

Нет.

CrX ★★★★★
()
Ответ на: комментарий от xyz

Делал в Pix, повернул в Xviewer.

Ну так в разном софте и без поворота разный размер может быть. Ты даже не задал степень сжатия и прочее.

Прогони обе через ect -9 -strip и сравни размер.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от greenman

optipng 561 и 714 // исходники убил.

xyz
() автор топика

три прямоугольника

А если зебру?

ratvier ★★
()
Ответ на: комментарий от CrX

Аа ну как с баскетбольной командой. Там высокие не потому что играют в баскетбол, а потому что туда берут изначально высоких

karton1 ★★★★★
()
Ответ на: комментарий от xyz

Не нашел ect.

Я же дал ссылку.

Взял файл, повернул его два раза в Xviewer. Результат - 3,1 и 3,8 КБ соответственно.

Ну вот видишь, уже не такая большая разница.

Короче, зависит от того, каким софтом, какими либами и с какими параметрами ты сохраняешь свой PNG. Если хочется уменьшить размер, используй ect. Ну или optipng, но он менее эффективный.

CrX ★★★★★
()
Ответ на: комментарий от karton1

высокие не потому что играют в баскетбол, а потому что туда берут изначально высоких

Слышал от учительницы биологии, что постоянные прыжки стимулируют рост костей ног в длину у детей и подростков — волейболисты и баскетболисты растут быстрее.

question4 ★★★★★
()
Ответ на: комментарий от question4

Корреляция != зависимость.

Корреляция есть, а причинно-следственная связь может быть обратной - например, если ребенок растет выше и быстрее - его и отдадут/возьмут в скорей всего воллейбол и баскетбол, а не в фигурное катание.

no-dashi-v2 ★★★★
()
Ответ на: комментарий от no-dashi-v2

Корреляция есть, а причинно-следственная связь может быть обратной - например, если ребенок растет выше и быстрее - его и отдадут/возьмут в скорей всего воллейбол и баскетбол, а не в фигурное катание.

Ну да, причину и следствие сложно выделить, когда накладываются несколько факторов. Когда людей, уже показавших предрасположенность к высокому росту, подвергают нагрузкам, стимулирующим рост, неясно, что дало больший вклад — генетика или упражнения.

question4 ★★★★★
()

Всю жизнь это знал, уж и не помню когда точно. Рисуя сканированные схемы обязательно использую уменьшение числа цветов, чтобы в горизонтальной линии был один чёрный, а белый фон был идеально белым, а не чередовался бы белым с разными оттенками. В Gimp есть инструмент выделения пикселей одинакового цвета или с заказным допуском и видно как выделяется, потом подменить это одним цветом. Но перед этим использовать «кривые» или «уровни». В винде есть «PNGGauntlet», он даже индексированный файл в Gimp может сжать ещё на 10-50%. А недавно (может уже исправили) Gimp при индексации криво как-то делал, все цвета слегка искажал, допустим тёмно-серый цвет 3F3F3F делал слегка зелёным, долго я не мог понять как он это делал, если можно тупо посчитать каких цветов больше в виде гистограммы и определить ключевые пиксели, а он тупо делал градации по диапазонам и потом из этих цветов генерировал, короче мне пришлось другой программой делать индексацию.

AZJIO
()
Ответ на: комментарий от question4

Слышал от учительницы биологии

У нас говорила, что у жирафа вытянулась шея в связи с тем, что он тянется за едой к верху. Сейчас я знаю, что все животные созданы Богом в том виде в каком их видят и если что-то меняется в них, то это не от того что они тянутся, а закладывается в ДНК. Если вы на компьютере открываете какой-то файл постоянно, то он не начнёт самостоятельно в кэш закладываться, но это может заложить разработчик.

AZJIO
()
Ответ на: комментарий от CrX

Собрал этот ect – Efficient Compression Tool (из AUR)

Увидел такие строки (исходники не смотрел):

[ 94%] Building CXX object optipng/CMakeFiles/optipng.dir/codec.cpp.o
[ 94%] Building CXX object optipng/CMakeFiles/optipng.dir/optipng.cpp.o
[ 94%] Building C object optipng/CMakeFiles/optipng.dir/image.c.o
[ 94%] Building C object optipng/CMakeFiles/optipng.dir/opngreduc/opngreduc.c.o
[ 95%] Linking CXX static library liboptipng.a
[ 95%] Built target optipng

Надо будет сравнить ect/optipng/oxipng
Возможно, ect вызывает optipng с какими-то подобранными опциями (а их там немало, см. optipng --help).

При «обычном» запуске optipng отрабатывает только часть из того, что в него заложено.

mozjpeg тоже упоминается. В общем, становится яснее, что это за tool.

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 3)
Ответ на: комментарий от greenman

Взял четвёртую картинку из этой новости: DJV 3.3.3

Вот что получилось (везде опции по-умолчанию)

$ time oxipng djv333_oxi.png 
Processing: djv333_oxi.png
48483 bytes (36.94% smaller): djv333_oxi.png

real	0m0,287s
user	0m0,346s
sys	0m0,017s
$ time optipng djv333_opti.png 
** Processing: djv333_opti.png
1025x550 pixels, 4x8 bits/pixel, RGB+alpha
Input IDAT size = 76826 bytes
Input file size = 76883 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 48900
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 48900

Output IDAT size = 48900 bytes (27926 bytes decrease)
Output file size = 48957 bytes (27926 bytes = 36.32% decrease)


real	0m0,507s
user	0m0,497s
sys	0m0,008s
$ time ect djv333_ect.png 
Ошибка сегментирования                (образ памяти сброшен на диск) ect djv333_ect.png

real	0m0,366s
user	0m0,182s
sys	0m0,015s
$ ls -l djv*
76883 янв 26 10:21 djv333_ect.png
48957 янв 26 10:31 djv333_opti.png
48483 янв 26 10:26 djv333_oxi.png
greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Ну это надо разбираться, почему оно у тебя сегфолтится.

Ну а так вообще опции по умолчанию не интересны.

CrX ★★★★★
()
Ответ на: комментарий от question4

Способность меняться в течении жизни под действием внешних факторов тоже определяется генами :)

Нет, гены определяют предрасположенность, а способность меняться - приобретенное…

Sm0ke85
()
Ответ на: комментарий от AZJIO

У нас говорила, что у жирафа вытянулась шея в связи с тем, что он тянется за едой к верху. Сейчас я знаю, что все животные созданы Богом в том виде в каком их видят и если что-то меняется в них, то это не от того что они тянутся, а закладывается в ДНК. Если вы на компьютере открываете какой-то файл постоянно, то он не начнёт самостоятельно в кэш закладываться, но это может заложить разработчик.

Все версии мимо, это не так работает…

Sm0ke85
()

На низком уровне, картинка на вход программ обычно подаётся как одномерный массив. Байты берутся по слоям из верхнего левого угла. Соответственно, если полосы расположены горизонтально, то переход от одного цвета в другой будет 2 раза, а если вертикально, то 1000 * 3 - 1. Вероятно, архиватору на такие переходы нужно генерить чуть больше байтов.

Kogrom
()
Ответ на: комментарий от CrX

Обе гипотезы не исключают друг друга. Как наследственная предрасположенность к алкоголизму и отдых в all-inclusive гостинице не находятся в прямом отношении причина→следствие, но образуют контекст в котором беда может случиться и она случается.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Совершенно верно. И как я упомянул в следующем сообщении, хуже всего, если там помимо не исключения есть ещё и положительная обратная связь — тогда совсем жесть.

CrX ★★★★★
()
Ответ на: комментарий от question4

Какая разница между «предрасположенностью» и «способностью»?

В том контексте разница есть, в первом случае что-то может никогда не реализоваться даже при наличии некоторых условий (некая не маловероятная история), во втором случае - что-то реализуется при благотворных обстоятельства (это свойство).

Sm0ke85
()
Ответ на: комментарий от AZJIO

Вы это сейчас серьезно написали, или это настолько тонкий стеб, что даже становится похожим на правду?

VIT ★★
()
Ответ на: комментарий от VIT

Обзор от ИИ

Утверждение, что шизофрения «помолодела»
отражает тенденцию к более раннему началу болезни, часто в подростковом или раннем взрослом возрасте (15–35 лет), хотя типичный пик остается 20–30 лет; это может быть связано с улучшением диагностики и пониманием ранних, «негативных» симптомов (апатия, безволие, социальная изоляция) наряду с классическими (галлюцинации, бред), а не обязательно с резким ростом заболеваемости именно в молодом возрасте, хотя факторы стресса и образа жизни играют роль

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

Да если честно меня не столько беспокоит молодёжная шизофрения сколько вообще душевное состояние, образование, и что самое главное мотивация тех молодых людей, которые идут на смену. Один вон в теме про «Сетунь» не успев даже вуз закончить рассуждает с пафосом о том, что он где-то услышал про высшую математику. Теперь второй, у которого всё от бога. Вы как Байкалы то развивать собрались с такими кадрами? Ждать, когда Бог новый Байкал сбросит?

Это конечно не моё дело.

VIT ★★
()
Ответ на: комментарий от VIT

Это банальное отупение из-за возведенной в абсолют степени потреблядства.

Что собственно подтверждает предпоследний комментарий, когда человек на серьезных щщах предоставляет высер ИИ как истину последней инстанции, что по уровню развития схоже на аргументацию «мне мамка сказала».

windows10 ★★★★★
()

Как интересно работает сжатие изображений

1. Глянь код на любом читаемом ЯП;

2. Программа поворачивающая рисунок - добавила в png какой-нить EXIF;

3. Как правило пиксельная обработка области происходит двумя циклами, один из которых вложенный и это y.

for x:=0 to width do begin
 for y:=0 to height do begin
  putpixel(x,y,color);
 end
end

Поэтому допускаю что более эффективный алгоритм сжатия на горизонтальных линиях.

Посмотри кот и не вангуй.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Поэтому допускаю что более эффективный алгоритм сжатия на горизонтальных линиях.

Лектор из видео говорит, что так сложилось исторически, построчное чтение, хотя вполне могло быть и по столбцам.

xyz
() автор топика
Ответ на: комментарий от windows10

предпоследний комментарий, когда человек на серьезных щщах предоставляет высер ИИ как истину последней инстанции, что по уровню развития схоже на аргументацию «мне мамка сказала»

Во-первых, я нигде не писал про истину в последней инстанции. Наоборот, явным образом подсветил выхлоп ИИ как выхлоп ИИ. Если у тебя указание на ИИ ассоциируется с последней инстанцией, то это в первую очередь проблема твоего восприятия; стоит над ним поработать

Во-вторых, это сообщение какбе продолжает дискуссию на тему ИИ между VIT и мной, которая началась в соседнем топике

Manhunt ★★★★★
()

Формат PNG примитивнее некуда – это тривиальная предобработка bitmap + zlib. Типа вычесть значение слева или сверху, чтобы градиенты превращались в повторение соседних чисел и хорошо жались zlib-ом. Собственно поворот, видимо, и ломает скудные возможности предобработки.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 4)
Ответ на: комментарий от VIT

Вы как Байкалы то развивать собрались с такими кадрами?

Также как вы, сэр :-)

Ну а если серьёзно, не надо делать выводы из маленькой выборки.

Aceler ★★★★★
()
Ответ на: комментарий от VIT

Реформа школьного образования принесла свои плоды. Это как у коров в коровнике: решения касательно будущего (условий содержания, надоев и производства телятины) принимают владельцы коровника, а вовсе не коровы. Коровам о таких вещах думать не нужно, и даже вредно (для надоев и вообще для управления активами).

Manhunt ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)