Комментарии 28
А почему мы должны получить белое изображение, если заменим все числа нулями?
JPEG — это хорошо, но ему уже под 30 лет, может — рассказать (перевести) про более современные форматы? Хотя бы HEVC (HEIF), который мы почти принудительно получили от Apple в новых iOS?
Или про неприжившуюся экзотику, типа LSC?
Или про неприжившуюся экзотику, типа LSC?
HEVC — стандарт кодирования видео. А вот рассказ про WebP был бы куда интересней.
ОК, поправлюсь — даешь рассказ про HEIC, а то везде кратко пишут, что основан на H.265, а за счет чего достигнуто преимущество над jpeg при сжатии изображений — не указывают.
Он не основан на H.265. Это одно и то же.
Да там на целую книгу рассказ. Блоки от 4х4 до 64х64, один блок может ссылаться на другой в рамках того же кадра и при этом будет храниться только разница, разные коэффициенты квантования, энтропийное сжатие… Там не то, что каждый байт — каждый бит экономят.
Конечно для кого как и кто как видит. И как говорится ИМХО.
Но я сравнивал с жепегом: webp(ключевые кадры из vp8), heif/heic(ключевые кадры из h265), ключевые кадры из нового кодека AV1 (потому-что планируется такой формат изображений).
И в итоге преимущества то можно сказать и нету.
Оно есть только в редких картинках или мультфильмах.
В фотографиях и тем более компьютерной графики преимущества нет.
Ну и есть преимущество, когда можно получить картинку раза в 2 меньшего размера чем минимальный жепег, но там уже от изначальной картинки мало что останется.
Так что у жепега нужно просто заменить алгоритм сжатия без потерь на более новый, что уже может нормально уменьшить размер.
Ну и при сильном сжатии, когда явно видны блоки 8х8, можно использовать фильтр для частичного устранения этого.
Вот и получится новый формат, который реально имеет преимущество, а не просто мылит всё как перечисленные выше новые форматы, которые просто взяты из видео форматов.
Но я сравнивал с жепегом: webp(ключевые кадры из vp8), heif/heic(ключевые кадры из h265), ключевые кадры из нового кодека AV1 (потому-что планируется такой формат изображений).
И в итоге преимущества то можно сказать и нету.
Оно есть только в редких картинках или мультфильмах.
В фотографиях и тем более компьютерной графики преимущества нет.
Ну и есть преимущество, когда можно получить картинку раза в 2 меньшего размера чем минимальный жепег, но там уже от изначальной картинки мало что останется.
Так что у жепега нужно просто заменить алгоритм сжатия без потерь на более новый, что уже может нормально уменьшить размер.
Ну и при сильном сжатии, когда явно видны блоки 8х8, можно использовать фильтр для частичного устранения этого.
Вот и получится новый формат, который реально имеет преимущество, а не просто мылит всё как перечисленные выше новые форматы, которые просто взяты из видео форматов.
А WebP кодирует изображение с помощью VP8, который стандарт кодирования видео. :)
del
Спасибо за отличный материал, а так же за, казалось бы, очевидную идею про отрывание заголовков. Этак тушки изображений можно хранить в облаках чуть ли не открыто, а заголовки где-то в базе.
Мысль, как говорится, поперла :-)))
Мысль, как говорится, поперла :-)))
Смысл?
Для каждой картинки, нужен свой заголовок, т.е. нужна идентификация картинки + заголовок и хранить все это в 2-х местах?
Гораздо проще проксорить своим секретным файлом с белым шумом, с плавающим смещением которое записывать в этот же джипег вставив число смещения в любое место, которое потом «выкусывать» при декодировании. Можно увеличить количество файлов с белым шумом до N.
Заголовок же «выкусывают», не для сокрытия информации, а для еще одного вида сжатия, так как подряд снятые фотографии могут иметь полностью или частично идентичные данные которые используется при декодировании + выбрасывается EXIF и тд.
Для каждой картинки, нужен свой заголовок, т.е. нужна идентификация картинки + заголовок и хранить все это в 2-х местах?
Гораздо проще проксорить своим секретным файлом с белым шумом, с плавающим смещением которое записывать в этот же джипег вставив число смещения в любое место, которое потом «выкусывать» при декодировании. Можно увеличить количество файлов с белым шумом до N.
Заголовок же «выкусывают», не для сокрытия информации, а для еще одного вида сжатия, так как подряд снятые фотографии могут иметь полностью или частично идентичные данные которые используется при декодировании + выбрасывается EXIF и тд.
Потом брутфорсом можно заголовок подобрать, мне кажется, без проблем. Если добавить к этому всему модные ИИ, то на автомате всё это делать можно.
Фразу «Код, использованный в статье, открыт...» прочитал как «Кот, использованный в статье, открыт...» — задумался. Перечитал.
Жаль не написали про EXIF. Там хранится очень много дополнительной информации. Начиная от маленького thumbnail-изображения, модели камеры и всех-всех параметров сьемки, использованных редакторов, заканчивая RAW данными с сенсора, если это картинка с тепловизора.
64% чувствительны к красному, 32% к зелёному и 2% к синему.Не не не, это какая то новая математика. Зеленые мониторы не просто так появились, а потому, что как раз к нему более чувствительны глаза, а точнее ближе к желтому.
К тому же вычисление яркости в YUV (YCbCr) это:
0.299 красного + 0.587 зеленого + 0.114 синего
Так что не так? Это по количеству сенсоров, а не их чувствительности.
Да, я невольно провел аналогию количества к качеству. Но тут тоже есть вопросы, каждый глаз устроен по своему и колбочки с палочками там не только чувствительны к цвету и не только к трем цветам. Отдельный ряд колбочек чувствителен и к синему и к красному, но не к зеленому, поэтому более короткие волны это ультра-фиолетовый, а не ультра-синий. Так что это вообще дебри. Чувствительность тут скорее средне статистическая.
Но вопрос как раз про чувствительность к оттенкам синего и красного. А как можно наглядно понять, что 64% чувствительны к красному, менее чувствительны чем 32% к зелёному. И практически стоят между 32% красного и 2% синего.
Но вопрос как раз про чувствительность к оттенкам синего и красного. А как можно наглядно понять, что 64% чувствительны к красному, менее чувствительны чем 32% к зелёному. И практически стоят между 32% красного и 2% синего.
Светочувствительность глаза

Отдельный ряд колбочек чувствителен и к синему и к красному, но не к зеленому
Боюсь, нет таких колбочек. Зеленый находится между синим и красным, а кривые спектральной чувствительности любых колбочек — «одногорбые». Пурпурный цвет, если Вы об этом, возникает от преимущественного воздействия света на L и S-колбочки одновременно.
Спектры поглощения колбочек

Боюсь, нет таких колбочек.Красные чувствительны и к красному и к синему (фиолетовому), а в совокупности с синими они дают ощущение фиолетового. Пурпурный там где заканчивается чувствительность синих колбочек и продолжается чувствительность красных к «синему». Это два разных диапазона волн для «красных» или отдельных колбочек чувствительных к красному и синему.
Для людей наблюдающих только цвета монитора в диапазоне от 400-650 таких колбочек действительно нет, они им и незачем.

Фиолетовый на мониторе это две волны воздействующие на красный 620-740 нм и синий 440-480 нм колбочки. Физический фиолетовый 380 — 440 мы бы ни когда не увидели, если бы красные колбочки не реагировали на синий цвет. Он был бы для нас также синим. А если бы красные реагировали одним диапазоном то и синего бы не было.


Спасибо большое, очень познавательно! Сжатие с обозначением цвета пиксела и числом его повторяемости когда-то в PCX использовалось. Но, понятное дело, что плыло, когда даже незначительно менялся градиент.
Прошу еще про GIF аналогичное запостить, если есть конечно ;)
Прошу еще про GIF аналогичное запостить, если есть конечно ;)
Цветовые рецепторы наших глаз называются «колбочки», и делятся на три типа, каждый из которых более чувствителен либо к красному, либо к зелёному, либо к синему цветам [… Наличие этих трёх видов колбочек (и палочек, чувствительных в изумрудно-зелёной части спектра) даёт человеку цветное зрение. / прим. перев.]. Палочки, другой тип фоторецепторов в наших глазах, способен улавливать изменения в яркости, однако гораздо более чувствителен к цвету. В наших глазах есть около 120 млн палочек и всего 6 млн колбочек.
Поэтому наши глаза гораздо лучше замечают изменения в яркости, чем изменения в цвете.
Боюсь, что несмотря на ссылку на Вики, я вынужден не согласиться с процитированным. Палочки работают только в скотопических условиях, т.е., при пониженном освещении, в сумерках, ночью. Они не дают цветного зрения. Колбочек же, действительно, три вида и у них разные спектральные чувствительности. В фотопических условиях, т.е., при достаточном освещении, работают только колбочки, т.к. родопсин, светочувствительный пигмент палочек, выцветает при ярком освещении, палочки насыщаются и просто перестают реагировать на свет.
Палочки, другой тип фоторецепторов в наших глазах, способен улавливать изменения в яркости, однако гораздо более чувствителен к цвету.
Эта фраза вообще не имеет смысла, если учитывать, что цвет — это ощущение, возникающее в мозге человека (не на сетчатке, не в колбочках — в мозге), в результате воздействия света на все три вида колбочек, имеющих различную спектральную чувствительность.
К сожалению, объяснить, почему мозг человека большее значение придает именно яркости, а сигналам цветности меньшее — я не могу. Но уже от сетчатки передается больше яркостный сигнал, чем цветностные (Lab).
Мой источник: «Наука о зрении» — С. Пальмер, Б. Ванделл, С. Шварц.
Вообще про формат JPEG было достаточно статей, причем топовых:
-
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как устроен формат JPEG