Рубрика «jpeg»

Введение

Бывают дни, когда на работе делать нечего. А бывают дни, когда ты — программист и звукорежиссёр одновременно, и в голову приходит странная мысль: «А что, если взять аудио, превратить его в картинку-спектрограмму, сжать эту картинку как фотографию (JPEG, WebP, AVIF), а потом попробовать восстановить звук обратно? Как оно будет звучать?»

Спойлер: иногда — удивительно хорошо. Иногда — как из унитаза. Но всегда — интересно.

Читать полностью »

Откройте ваш плейлист и нажмите play на любом треке.

Эта песня попала в ваши наушники благодаря одной идее. Той самой, за которую француза в 1807 году высмеяли на заседании Парижской академии наук. Лаплас был «за», но Лагранж встал и сказал: «Это невозможно.»

Француза звали Жан-Батист Жозеф Фурье. Его идея была настолько простой, что учёные отказались ей поверить.

Сейчас она обрабатывает каждую фотографию на вашем телефоне. Каждый пакет Wi-Fi. Каждый звонок. Каждый JPEG. Каждый MP3. Каждое MRI-сканирование. Каждую команду Siri. Каждый кадр на стриминговых платформах.

Идея, которая звучит слишком просто

Фурье утверждал:

Читать полностью »

После того как я написал статью про то, что ваш монитор не умеет показывать бирюзовый и 65% видимых цветов для него просто не существуют, один мой знакомый (далекий правда от технической отрасли) спросил: «Окей, монитор врёт, а что тогда делает JPEG с оставшимися 35%?» И это хороший вопрос. Я полез в спеку, а через полчаса забыл, зачем вообще полез. Потому меня уже интересовало другое: ребята, которые в 1992-м финализировали этот стандарт, по сути заревёрсили человеческое зрение и запихнули его в алгоритм сжатия.

Читать полностью »

В этой статье я разберу, как реализовать передачу JPEG-видео по RTP поверх UDP напрямую с ESP32 - так, чтобы поток открывался в VLC и ffplay, без RTSP, FFmpeg и промежуточных серверов.


Почему не HTTP MJPEG

В интернете легко найти десятки примеров стриминга с ESP32 через HTTP MJPEG. Возникает логичный вопрос: зачем вообще усложнять и использовать RTP?

Причин здесь несколько.

Во-первых, HTTP MJPEG это не очень интересно. Это по сути бесконечный HTTP-ответ с multipart-boundary, который работает ровно до тех пор, пока браузер его терпит. Протокол не предназначен для real-time мультимедиа и используется скорее как удобный хак.

Читать полностью »

Как на самом деле хранятся изображения? - 1

Этот пост — погружение в кроличью нору. Разработчик Монсеф Аббад задумался о изображениях — вероятно, после недавнего изученияЧитать полностью »

Самый маленький корректный Baseline JPEG (159 байтов)

Самый маленький корректный Baseline JPEG (159 байтов)

Недавно на Хабре была опубликована статья Разбираем самый маленький PNG в мире. Интересно, а какой самый маленький файл JPEG? В ответах на StackOverflow и RedditЧитать полностью »

ИИ чат‑боты любят ловить глюки и выдавать всякую чушь. Так массово, что словом 2023 года признали «галлюцинировать». В чем причина такого явления? Является ли генеративный ИИ интеллектом (спойлер — и да, и нет)? И что общего у ChatGPT и копировального аппарата Xerox? Разбираемся, осмысляя базовую логику работы языковых моделей.

Небольшое вступление или "в чем суть проблемы?"

Кебриджский словарь признал Читать полностью »

Как вы знаете, формат изображений WebP в большинстве случаев имеет меньший вес, по сравнению со своими братьями: png и jpeg. Поэтому использовать его в своих приложениях - это хорошая практика.

А как же пользователи, устройства которых не поддерживают данный формат?

В этом случае нам помогает тег <picture> или значение image-set свойства background-image. Просто пишем такие магические конструкции и браузер сам выберет тот источник, который понимает:

<!-- for HTML... -->
<picture>
  <source type="image/webp" srcset="images/cat.webp">
  <img src="images/cat.jpg" width="100" height="100" alt="Cat">
</picture>
Читать полностью »
JPEG, который можно посмотреть в блокноте - 1

Если открыть произвольный JPEG-файл в блокноте, то можно увидеть лишь хаотичный набор символов. Отсюда вопрос: возможно ли закодировать изображение так, чтобы его было можно просмотреть не только обычным способом, но и в обычном блокноте, в виде ASCII-графики. Ответ положительный, если использовать максимальное сжатие:


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js