Pull to refresh

Comments 28

А почему мы должны получить белое изображение, если заменим все числа нулями?

JPEG — это хорошо, но ему уже под 30 лет, может — рассказать (перевести) про более современные форматы? Хотя бы HEVC (HEIF), который мы почти принудительно получили от Apple в новых iOS?

Или про неприжившуюся экзотику, типа LSC?

HEVC — стандарт кодирования видео. А вот рассказ про WebP был бы куда интересней.

ОК, поправлюсь — даешь рассказ про HEIC, а то везде кратко пишут, что основан на H.265, а за счет чего достигнуто преимущество над jpeg при сжатии изображений — не указывают.
Он не основан на H.265. Это одно и то же.
Да там на целую книгу рассказ. Блоки от 4х4 до 64х64, один блок может ссылаться на другой в рамках того же кадра и при этом будет храниться только разница, разные коэффициенты квантования, энтропийное сжатие… Там не то, что каждый байт — каждый бит экономят.
Конечно для кого как и кто как видит. И как говорится ИМХО.
Но я сравнивал с жепегом: webp(ключевые кадры из vp8), heif/heic(ключевые кадры из h265), ключевые кадры из нового кодека AV1 (потому-что планируется такой формат изображений).
И в итоге преимущества то можно сказать и нету.
Оно есть только в редких картинках или мультфильмах.
В фотографиях и тем более компьютерной графики преимущества нет.
Ну и есть преимущество, когда можно получить картинку раза в 2 меньшего размера чем минимальный жепег, но там уже от изначальной картинки мало что останется.

Так что у жепега нужно просто заменить алгоритм сжатия без потерь на более новый, что уже может нормально уменьшить размер.
Ну и при сильном сжатии, когда явно видны блоки 8х8, можно использовать фильтр для частичного устранения этого.
Вот и получится новый формат, который реально имеет преимущество, а не просто мылит всё как перечисленные выше новые форматы, которые просто взяты из видео форматов.
А WebP кодирует изображение с помощью VP8, который стандарт кодирования видео. :)
Спасибо за отличный материал, а так же за, казалось бы, очевидную идею про отрывание заголовков. Этак тушки изображений можно хранить в облаках чуть ли не открыто, а заголовки где-то в базе.

Мысль, как говорится, поперла :-)))
Смысл?
Для каждой картинки, нужен свой заголовок, т.е. нужна идентификация картинки + заголовок и хранить все это в 2-х местах?
Гораздо проще проксорить своим секретным файлом с белым шумом, с плавающим смещением которое записывать в этот же джипег вставив число смещения в любое место, которое потом «выкусывать» при декодировании. Можно увеличить количество файлов с белым шумом до N.
Заголовок же «выкусывают», не для сокрытия информации, а для еще одного вида сжатия, так как подряд снятые фотографии могут иметь полностью или частично идентичные данные которые используется при декодировании + выбрасывается EXIF и тд.
Потом брутфорсом можно заголовок подобрать, мне кажется, без проблем. Если добавить к этому всему модные ИИ, то на автомате всё это делать можно.
1) 500 байт это 4000 бит, пока что больше чем 1024 за разумное время не на чем перебирать (по моим данным). Хотя наверное часть байт не несут смысла.
2) Проблема в том, как понять что найдена нужная комбинация. Глазами? С архивами — там есть CRC, тут же такого нет
Фразу «Код, использованный в статье, открыт...» прочитал как «Кот, использованный в статье, открыт...» — задумался. Перечитал.
Жаль не написали про EXIF. Там хранится очень много дополнительной информации. Начиная от маленького thumbnail-изображения, модели камеры и всех-всех параметров сьемки, использованных редакторов, заканчивая RAW данными с сенсора, если это картинка с тепловизора.
UFO just landed and posted this here
64% чувствительны к красному, 32% к зелёному и 2% к синему.
Не не не, это какая то новая математика. Зеленые мониторы не просто так появились, а потому, что как раз к нему более чувствительны глаза, а точнее ближе к желтому.
К тому же вычисление яркости в YUV (YCbCr) это:
0.299 красного + 0.587 зеленого + 0.114 синего
Так что не так? Это по количеству сенсоров, а не их чувствительности.
Да, я невольно провел аналогию количества к качеству. Но тут тоже есть вопросы, каждый глаз устроен по своему и колбочки с палочками там не только чувствительны к цвету и не только к трем цветам. Отдельный ряд колбочек чувствителен и к синему и к красному, но не к зеленому, поэтому более короткие волны это ультра-фиолетовый, а не ультра-синий. Так что это вообще дебри. Чувствительность тут скорее средне статистическая.

Но вопрос как раз про чувствительность к оттенкам синего и красного. А как можно наглядно понять, что 64% чувствительны к красному, менее чувствительны чем 32% к зелёному. И практически стоят между 32% красного и 2% синего.

Светочувствительность глаза
image
Отдельный ряд колбочек чувствителен и к синему и к красному, но не к зеленому

Боюсь, нет таких колбочек. Зеленый находится между синим и красным, а кривые спектральной чувствительности любых колбочек — «одногорбые». Пурпурный цвет, если Вы об этом, возникает от преимущественного воздействия света на L и S-колбочки одновременно.
Спектры поглощения колбочек
image
Боюсь, нет таких колбочек.
Красные чувствительны и к красному и к синему (фиолетовому), а в совокупности с синими они дают ощущение фиолетового. Пурпурный там где заканчивается чувствительность синих колбочек и продолжается чувствительность красных к «синему». Это два разных диапазона волн для «красных» или отдельных колбочек чувствительных к красному и синему.
Для людей наблюдающих только цвета монитора в диапазоне от 400-650 таких колбочек действительно нет, они им и незачем.
image
Фиолетовый на мониторе это две волны воздействующие на красный 620-740 нм и синий 440-480 нм колбочки. Физический фиолетовый 380 — 440 мы бы ни когда не увидели, если бы красные колбочки не реагировали на синий цвет. Он был бы для нас также синим. А если бы красные реагировали одним диапазоном то и синего бы не было.

image
UFO just landed and posted this here
Спасибо большое, очень познавательно! Сжатие с обозначением цвета пиксела и числом его повторяемости когда-то в PCX использовалось. Но, понятное дело, что плыло, когда даже незначительно менялся градиент.
Прошу еще про GIF аналогичное запостить, если есть конечно ;)
Цветовые рецепторы наших глаз называются «колбочки», и делятся на три типа, каждый из которых более чувствителен либо к красному, либо к зелёному, либо к синему цветам [… Наличие этих трёх видов колбочек (и палочек, чувствительных в изумрудно-зелёной части спектра) даёт человеку цветное зрение. / прим. перев.]. Палочки, другой тип фоторецепторов в наших глазах, способен улавливать изменения в яркости, однако гораздо более чувствителен к цвету. В наших глазах есть около 120 млн палочек и всего 6 млн колбочек.

Поэтому наши глаза гораздо лучше замечают изменения в яркости, чем изменения в цвете.


Боюсь, что несмотря на ссылку на Вики, я вынужден не согласиться с процитированным. Палочки работают только в скотопических условиях, т.е., при пониженном освещении, в сумерках, ночью. Они не дают цветного зрения. Колбочек же, действительно, три вида и у них разные спектральные чувствительности. В фотопических условиях, т.е., при достаточном освещении, работают только колбочки, т.к. родопсин, светочувствительный пигмент палочек, выцветает при ярком освещении, палочки насыщаются и просто перестают реагировать на свет.

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

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

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

Мой источник: «Наука о зрении» — С. Пальмер, Б. Ванделл, С. Шварц.
Sign up to leave a comment.

Articles