Комментарии 51
Я всегда просто ставила quality 80 и всё, а оказывается там целая психофизика, нейроны и DCT-блоки… Как будто кто-то научился обманывать твой мозг так, чтобы ты этого не замечала. Теперь буду смотреть на фото и думать, а что я реально вижу, а что мозг догадался сам
Думаю вы как и все сначала покрутили крутилку качества и присмотрелись - норм/нет и в какой то момент остановились на 80, т.к.. это оказалось лучшим вариантом. А сейчас вы просто узнали почему вы как все)
Про обман мозга тут ещё бы про MP3 упомянуть не помешает, там тоже "убираем что итак не услышит")
Любое сжатие С потерями эксплуатирует недостатки рецепторов человека.
Про музыку - в то же время есть немало людей, которые фанатеют от оцифровки LP в lossless с дискретизацией 192k. Что-то они слышат. Лично я в таких оцифровках кроме лишнего шума и размера файла ничего не наблюдаю :)
Именно оцифровка LP, скорее всего, смысла не имеет.
А вот электронную музыку, которую пишу сам, я экспортирую во FLAC 192k, если проект не совсем тяжёлый, ибо большие проекты и в 44.1k иногда с трудом допиливаю.
Там разница скорее в том, что все этапы синтеза и обработки звука проходят в 192k, а потому снижается алиасинг (что влияет на звучание дисторшна и большинства синтезаторов) и чище обрабатывают эффекты, в основе которых — запись в буфер и последующее воспроизведение с изменениями скорости.
Встречал аргументы, что в современных плагинах уже есть встроенный оверсэмплинг и такие манипуляции излишни, но я ее согласен, т к если в плагине и есть оверсэмплинг, то между плагинами по цепочке передаётся звук в 44.1, и это тоже приводит к накоплению искажений. + видимо, я пользуюсь не современными и не самыми крутыми, т к разница очень ощутимая.
Затем отрендеренный файл можно конвертнуть из 192k в 44.1k.
Чуть-чуть могут быть заметны артефакты в высоких частотах, но они еле слышны.
В 48k вообще не заметны.
т е разница именно в частоте дискретизации при рендере композиции, а не в файле, который попадает к конечному слушателю
Когда-то давно интересовался вопросом, какая реально необходимая максимальная частота дискретизации. И наткнулся на описание экспериментов, кажется, Sony (дело было давно, ссылок не нахожу сходу). Экспериментаторы исследовали, как точно человеческое ухо различает интервал между двумя близкими сильными короткими импульсами. И с удивлением обнаружили, что некоторые люди уверенно различают интервалы, отличающиеся на доли микросекунды (длину самих интервалов при этом не помню, возможно, несколько сотен микросекунд). Примерно 0.7 мкс разницы еще различали. Исходя из этого, было решено, что частоты оцифровки звука в 10 МГц наверняка достаточно, а всё, что меньше - возможно, приводит к искажениям (а возможно, и не приводит - но при звуках из эксперимента таки приводит).
Хотел повторить, но нужны весьма специфические источники звука, чтобы могли такое выдать и не создавали разные искажения второго импульса при разной задержке относительно первого. Не придумал хорошего варианта.
Насколько я помню у программ начала 2000-х по умолчанию было 75.
…также напоминаю, что добавление третьей координаты (времени) прекрасно сохраняет работоспособность всей затеи и я это проверил. Об эффективности трудно судить (оптимальную таблицу квантования в одно любительское рыло не получишь), но для работоспособной реализации нужен буквально один месяц одного человека того уровня, который у меня был по молодости (считаю только свободные вечера, даже выходные не считаю).
Ну, или чтобы меня врачи временно на ноги поставили, тогда сам допишу. Если бы можно было вену протезировать, эххх… но, увы, на вене клапана, это не артерия — трубочкой не заменишь.
Когда я купил экшн камеру для поездок, умеющую снимать в 4К с кодеками H264/265 с fps 120, думал "во, можно снимать только видео, а фотки я надергаю из отдельных кадров". Но сжатие видео оказаласось суровее, чем я ожидал, такие "фото" годны только для превью...
И да, здоровья, это самый главный ресурс.
блин. я не специалист вот вообще, но вырастить то можно? во всяком случае как это демонстрируют всякие разные исследователи. полагаю вопрос - в том, что между нынешней медициной и нынешними исследованиями - пропасть. Ищите того, кто сделает первый шаг, как Святослав Фёдоров.
Всех благ вам.
Напомнило ZX Spectrum. Тоже низкое разрешение цветности.

так условно говоря увидят пришельцы наши фотки а сравнении с реальностью с более полноценным зрением а значит восприятием вищуальной реальности.
Может у них зрение в радиодиапазоне или ультрафиолете и наши фотки они вообще не увидят.
в книге Энди Вейра "Проект «Аве-Мария»" аспект связанный со зрением при первом контакте описан шикарно, рекомендую ознакомиться))
Место, где кривая «выигрыш в качестве / проигрыш в размере» резко меняет наклон. И это место (сюрприз) определяется всё той же CSF. До quality ~80 квантование режет только те частоты, к которым ваш глаз слабо чувствителен.
Тут натягивание совы на глубус. У вас там график SSIM - тупо численная характеристика разности по пикселям, ей на частоты, и какие из них наш глаз хорошо видит, вообще пофигу.
Это просто универсальный принцип убывающей отдачи, или же принцип Парето - 20% усилий отвечает за 80% результата. Следующие 20 за 80 от остатка. И так дале. Поэтому чем больше усилий тем меньше скорость роста результата.
Отличительной особенностью метода, помимо упомянутых ранее (MSE и PSNR), является то, что метод учитывает «восприятие ошибки» благодаря учёту структурного изменения информации. Идея заключается в том, что пиксели имеют сильную взаимосвязь, особенно когда они близки пространственно. Данные зависимости несут важную информацию о структуре объектов и о сцене в целом.
Описано весьма хорошо, но не хватает объяснения шкалы качества по "е**чим шакалам")
Строго говоря не преобразование Фурье, а преобразование Габора. Кстати, характерно для всех высших mammals. А вот для других - нет.
Потрясающе, даже добавить нечего. Спасибо за публикацию!
Прореживание канала цветности придумали задолго до развития цифровой техники, в стандарте цветного аналогово телевещания.
Статья хорошая, спасибо.
Спасибо за историю.
Всё же очень интересно, насколько индивидуально различны сенсоры между людьми. Как со звуком. Наверняка кому-то жпег больнее, чем другим. А кто-то вообще не понимает, о чём мы, всё комфортно.
Эволюция затачивала зрение приматов под «найди спелый фрукт среди зелёных листьев»
Не совсем так. Если посмотреть на спектр излучения нашего Солнца - то максимум приходится как раз на зеленую часть - вот на что ориентировалась эволюция.
Хорошая статья, спасибо. Вот как-то раз знакомый офтальмолог сказал мне: - Наши глаза смотрят, а видим мы своими мозгами."
Jpeg xl как раз недавно был добавлен в хромобраузеры. #enable-jxl-image-format
YCbCr ненене, 2026 год ICtCp есть, но кодеков новых все нет, печаль прям.
Очень интересно! Я каждый год школьникам рассказываю общее устройство глаза, когда дело доходит до RGB. Небольшое замечание - канал Y, который автор называет "яркостью" на самом деле это середина спектра, как раз желто-зеленая зона, что и отражено в названии - Y. Условно, ее бы и следовало изображать зеленоватой.
Хоть и знал это ещё с 90х, а всё равно интересно ;)
И картинка с частотами – прямо супер, гораздо нагляднее, чем текст.
Молодец чо. Большая работа, хорошая подача, нужный вектор. Благодарю.
Статья хорошая, дополню немного:
JPEG тут же переводит всё в другую систему — YCbCr
Не обязательно. Вполне можно сделать чисто RGB, без конверсии. Каждый канал просто будет упакован как Grayscale без преобразования модели цветности. Аналогично для полиграфии – CMYK-изображения в .jpg всегда сохраняются именно по такой схеме.
Вообще, строго говоря, .jpg файлы что мы каждый день используем – это JFIF, а JPEG это просто метод компрессии.
Спасибо, это лучшее объяснение работы JPEG, которое я читал.
В одно время приделал у себя в софте режим просмотра YCbCr 2×2 специально чтобы ловить, что камера стала передавать пережатый видеопоток — на цветоразностных каналах артефакты вылезают даже на высоком качестве. Ну и субдискретизация сразу видна по прямоугольным пикселям. У JPEG всё это ещё слабо выраженно, видеокодеки в этом плане заметно агрессивнее.

Теоретически кодеки могут дойти до уровня «текст промпта генерации + номер сида + хеш весов модели», там то точно биометрии некуда будет уместиться (и то не факт:|). Но практически до этого ещё далеко, хотя, вроде бы, в H266 уже потихонечку внедряют ИИ для сжатия.
Ничего общего между сетчаткой и jpeg нету. Цель сетчатки - распознание объектов и движения. Цель jpeg - максимальное сжатие.
Причём тут сетчатка?
А вот причём — DCT разбивает изображение на блоки 8×8 пикселей и раскладывает каждый блок на 64 частотных компоненты
На какие блоки разбивает изображение сетчатка? На никакие - будет большой черный квадрат - мозг будет обрабатывать один большой квадрат.
И знаете что? Нейроны первичной зрительной коры (V1) работают поразительно похоже. Ещё в 60-х Хьюбел и Визел (Нобелевка 1981 года, между прочим) обнаружили, что нейроны V1 реагируют на ориентированные полоски разной частоты. По сути на пространственные частоты. Ваша зрительная кора делает что-то вроде преобразования Фурье над входящим сигналом.
Еще в коре есть зона отвечающая за стандартные примитивы (круг, квадрат, линия и т.д.), это тоже есть в jpeg?
Ваша зрительная кора делает что‑то вроде преобразования Фурье над входящим сигналом.
Палочек около 120 миллионов, и они отвечают за яркость. Колбочек 6–7 миллионов, и они видят цвет.
Может быть в этом?
Цель jpeg - максимальное сжатие с потерями, но чтобы визуально казалось, что без потерь. Потому и сетчатка.
Для меня самым удивительным является то, что всё это: JPEG, MP3, AVI, MP4, ZIP, RAR - было создано даже не в 00-е, а в 90-е или даже 80-е. Насколько чудовищен разрыв между навыками тех программистов и нынешних! А ведь каждый из этих алгоритмов, это шедевр, где используется 3/4 учебников алгебры, всякие преобразования Фурье, матричная алгебра и т.д.
Сейчас 90% работы - это перекладывание json слева-направо или справа-налево (я имею в виду даунстрим и апстрим). 90% программистов уже не делают побитовые операции и не используют стримы.
Да потому что сейчас ничего этого не нужно, всё уже “сделано до нас”. Хорошее время тогда было, да. Я тогда тоже перепридумал dithering (как потом выяснилось это называется), чтобы на EGA мониторе показывать VGA картинки. Очень неплохо показывало, в отличие от тех показывателей картинок, которые тогда были доступны. Они то просто брали ближайший доступный цвет для каждого пиксела, а я считал ошибку и добавлял её к соседнему пикселу, прежде чем подбирать ему ближайший цвет. Особенно хорошо это работало, когда картинка была маленькая, а режим экрана был большого разрешения и тогда картинку можно было увеличить для показа. И тогда ошибка размазывалась на больше пикселов и цвет ещё точнее показывался. Через какое-то время и типовые просмотрщики картинок такому научились. А дальше у всех уже были нормальные полноцветные мониторы и тема перестала быть акутальной.
Попробуйте пообщаться с теми кто делает реализации кодеков H265/H266 на SIMD/CUDA, или кто пишет ядра инференса современных LLM :)
Хотя это сегодня очень узкий круг лиц. Раньше то все велосипеды изобретали. Или вот вспомнить можно assembly (как это правильно называлось - соревнования, форумы, что-то ещё?) где люди всякое красивое графическое и музыку упихивали в смешные килобайты на ассемблере )
Это всякие demoparty.
А, точно. Забыл, оно, да.
На хабре по этому ключевому слову интересные статьи есть. Например здесь я еще не досмотрел все видео https://habr.com/ru/articles/953810/
Ну, на пониженном разрешении цветного зрения базировалось еще цветное телевидение системы SECAM - яркостный сигнал Y и два цветоразностных (R-Y, B-Y) не только обеспечивали совместимость с черно-белыми телевизорами, использовавшими только яркостный сигнал. Цветоразностные передавались поочередно - один в четных строках, другой в нечетных в итоге строчное разрешение "в цвете" получалось в два раза ниже (а для смешивания в одной строке применялся повтор сигнала предыдущей строки, прошедшего линию задержки).
Спасибо за статью, очень познавательно!
Вопрос: как вы объясните, почему JPEG снятые телефоном или камерой уменьшаются в 1.5-2 раза если их пережать на компьютере? :)

В каждом JPEG зашита модель вашей сетчатки. Буквально