Рубрика «jpeg»

Изображения формата JPEG встречаются повсюду в нашей цифровой жизни, но за этим покровом осведомлённости скрываются алгоритмы, устраняющие детали, не воспринимаемые человеческим глазом. В итоге получается высочайшее визуальное качество при наименьшем размере файла – но как конкретно всё это работает? Давайте посмотрим, чего именно не видят наши глаза!

Как устроен формат JPEG - 1

Легко принять, как само собой разумеющееся, возможность отправить фотку другу, и не волноваться по поводу того, какое устройство, браузер или операционную систему он использует – однако так было не всегда. К началу 1980-х компьютеры умели хранить и показывать цифровые изображения, однако по поводу наилучшего способа для этого существовало множество конкурирующих идей. Нельзя было просто отправить изображение с одного компьютера на другой и надеяться, что всё заработает.
Читать полностью »

Как и наверно почти все фотолюбители, я с некоторым скепсисом отношусь к фотосъемке на мобильные телефоны. Все знают про маленькие матрицы, простую оптику, и все такое. С другой стороны, нельзя не признать, что возможности мобильной фотографии совершенствуются, матрицы становятся менее шумными, в смартфонах появляются оптическая стабилизация, и так далее. И наконец, когда Samsung анонсировала новый смартфон с тремя камерами (широкоугольной, обычной и теле), я таки не удержался и решил что «пора брать».

Тестирование Samsung Galaxy S10 — когда смартфоны по возможностям догонят фотокамеры? - 1
Nokia 9 PureView — тремя камерами смартфоны уже не ограничиваются

Как это работает, и какие возможности дает фотолюбителю современный смартфон, подробности под катом. Осторожно траффик.
Читать полностью »

Ищем быструю универсальную библиотеку для работы с графическими файлами, разбираемся с Google benchmark - 1

В наше время, когда нейронные сети бороздят просторы Big Data, а искусственный интеллект раздумывает, выгодно ли ему получать зарплату за свою работу в Bitcoin, доставшаяся мне задача поиска самой быстрой открытой кросс-платформенной библиотеки для загрузки, сохранения и перекодирования графических файлов выглядела настоящим анахронизмом. Но на самом деле эта задача актуальна как никогда – для всех технологий компьютерного зрения и машинного обучения гигабайты картинок надо обязательно загрузить, а иногда и сохранить промежуточные данные в виде изображений. Так что сделать это самым быстрым способом очень желательно. В этой статье мы найдем искомую библиотеку, а, главное, разберемся с очень полезным продуктом, сильно упрощающим подобные и многие другие задачи — Google Benchmark.
Читать полностью »

image

Вы когда-нибудь собирали театральные программки? Если да, то, наверное, в вашей коллекции их десятки, а может, наберется и сотня. А теперь представьте, что в вашем распоряжении 120 тысяч программок, 48 тысяч афиш и 100 тысяч исторических фотографий. Столько бумажных документов сохранил с середины XIX века Большой театр. Самые древние и ценные из них уже пожелтели и стали ветхими, а на поиск информации в театральном архиве уходили часы. Чтобы сохранить эти сокровища, сотрудники театрального музея начали вручную переводить документы в электронный вид, но оказалось, что на это могут уйти годы.

Поэтому в сентябре 2016 года вместе с Большим театром и при активной поддержке Феклы Толстой, праправнучки Льва Николаевича Толстого, мы запустили краудсорсинговый проект по оцифровке истории главного театра страны. В этом посте мы расскажем о подробностях первого этапа проекта и о его технических деталях: как мы оцифровывали уникальные документы с помощью ABBYY FineReader и как волонтеры помогали проверять результаты распознавания. Читать полностью »

В этом году в операционных системах Apple изменился формат сохранения изображений по умолчанию. С выходом iOS 11 и MacOS High Sierra миллионы пользователей продукции яблочного гиганта получили возможность использовать новый формат хранения изображений HEIF. Он пришел на смену старому доброму JPEG, хотя многие и не знают, что это произошло. По расчетам Apple пользователи должны получить значительную экономию места на диске (до 50%) за счет большей эффективности сжатия при лучшем качестве картинки.

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

На Yelp хранится более 100 миллионов пользовательских фотографий, от картинок ужинов и причёсок до одной из наших последних фич, #yelfies. Эти изображения составляют основную часть трафика для пользователей приложения и веб-сайта, а их хранение и передача обходятся недёшево. Стараясь предоставить людям наилучший сервис, мы усиленно работали над оптимизацией всех фотографий и добились среднего уменьшения размера на 30%. Это экономит людям время и трафик, а также сокращает наши расходы на обслуживание этих изображений. Ах да, и мы сделали это без ухудшения качества фотографий!

Исходные данные

Yelp хранит пользовательские фотографии уже 12 лет. Мы сохраняем lossless-форматы (PNG, GIF) как PNG, а все остальные форматы в JPEG. Для сохранения файлов используются Python и Pillow, а загрузки фотографий начинаются примерно с такого сниппета:

# do a typical thumbnail, preserving aspect ratio
new_photo = photo.copy()
new_photo.thumbnail(
    (width, height),
    resample=PIL.Image.ANTIALIAS,
)
thumbfile = cStringIO.StringIO()
save_args = {'format': format}
if format == 'JPEG':
    save_args['quality'] = 85
new_photo.save(thumbfile, **save_args)

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

Вот интересная демонстрация возможностей afl; меня реально удивило, что она работает!

$ mkdir in_dir
$ echo 'hello' >in_dir/hello
$ ./afl-fuzz -i in_dir -o out_dir ./jpeg-9a/djpeg

В сущности, я создал текстовый файл только со словом "hello" и попросил фаззер выдавать поток в программу, которая ожидает на входе изображение JPEG (djpeg это простая утилита, которая идёт вместе с распространённой графической библиотекой IJG jpeg; libjpeg-turbo тоже должна подойти). Конечно, мои входные данные не похожи на валидное изображение, так что утилита быстро отвергает их:

$ ./djpeg '../out_dir/queue/id:000000,orig:hello'
Not a JPEG file: starts with 0x68 0x65

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

FLIF

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

FLIF (Free Lossless Image Format) – новый формат файлов для изображений, обеспечивающий беспрецедентное сжатие без потерь. Файлы получаются:

  • На 14% меньше, чем WebP, без потерь
  • На 22% меньше, чем BPG, без потерь
  • На 33% меньше, чем сжатый через ZopfliPNG PNG-файл
  • На 43% меньше, чем обычные PNG-файлы
  • На 46% меньше, чем оптимизированные по Adam7 чересстрочные PNG-файлы
  • На 53% меньше, чем JPEG 2000, без потерь
  • На 74% меньше, чем JPEG XR, без потерь

На Хабре уже опубликовано пару статей на тему FLIF. Но мы пойдем дальше: какую еще практическую пользу несет формат, кроме меньшего размера для любого типа изображений?
Читать полностью »

Изображения в формате JPEG, помимо собственно файлов с расширением .jpg, можно встретить внутри PDF-файлов и TIFF-файлов.

Стейкхолдеров технологии JPEG можно, наверное, разделить на следующие группы:

  • разработчики фотоаппаратов и сканеров;
  • фотографы (большие фотографии в хорошем разрешении с высокими требованиями к качеству);
  • соцсети и CDN'ы типа imgix, которые раздают залитые фоточки неконтролируемого UGC-происхождения, количества и размера в пережатом виде;
  • вебмастеры, которые управляют умеренным количеством не-UGC картинок с контролируемым качеством;
  • любители отсканированных бумажных книг и прочих исторических источников;

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

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

По следам интернетовских поисков замены самого культового и дефективного типа файлов

«GIF умер, да здравствует GIF!» - 1

5 ноября 1999 года было объявлено «Днём сжигания всех гифок» [Burn All GIFs Day]. Если бы вы тогда зашли на домашнюю страницу этого проекта, вы бы увидели план его реализации, такой же простой, как его название: «В День сжигания всех GIF все пользователи GIF собираются в Unisys и сжигают все свои файлы GIF». Сопровождали всё это гордые антиподы GIF – файлы формата PNG.

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

К тому моменту формату было уже больше десяти лет, он зародился лет за пять до самой сети, и он начинал устаревать. Он поддерживал жалкие 256 цветов. Его возможности анимации были хуже, чем у бумажного блокнота. Он явно был недоразвит по сравнению с любым более новым форматом файлов. И кроме всего прочего, держатели патентов уже пять лет угрожали судебными исками пользователям формата. Ко «Дню сжигания всех гифок» он уже находился на краю пропасти. Специалисты по форматам файлов и будущему сети обступили устаревший формат, вооружившись картинками с факелами и вилами в формате PNG.

И всё же, каким-то образом, мы с вами оказались в такой вот ситуации. Прошло 17 лет, а GIF не умер. Он правит интернетом.

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