Формат джипег как пишется

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

Существует множество графических форматов, они между собой тем или другим отличаются. Фактически, некоторые форматы вообще создавались для реализации практической конкретной задачи, которую имеющиеся варианты решить не могли. Например, до появления JPEG файлы изображений занимали слишком много места для хранения.  Благодаря этому формату необходимо было создать формат для их оптимизации.

Чем отличается JPG от JPEG?

♥ ПО ТЕМЕ: 20 экстремальных селфи (фото и видео) Instagram в местах, где легко расстаться с жизнью.

Но говоря о формате JPEG часто встречаются расширения файлов JIF, JPG и JPEG. Действительно ли у этого формата несколько разновидностей? На самом деле все эти расширения относятся примерно к одному и тому же. А чтобы понять, почему у этого формата вообще появилось несколько имен, придется разобраться в запутанной истории.

♥ ПО ТЕМЕ: Ошибки начинающих фотографов, или как правильно фотографировать.

Что такое JPEG?

Акроним JPEG расшифровывается как Joint Photographic Experts Group. Графическое расширение получило свое название в честь подкомитета, который помог создать формат обмена JPEG (JPEG Interchange Format или JIF). Впервые он был опубликован в 1992 году Международной организацией по стандартизации (ISO).

JPEG – это 24-битные неподвижные растровые изображения с восемью битами в каждом канале цветовой модели RGB. В таком формате не остается места для альфа-канала, а это означает, что, хотя файлы JPEG и могут поддерживать более 16 миллионов цветов, они не могут поддерживать прозрачность.

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

При сжатии JPEG изображений с потерями используется метод, называемый дискретным косинусным преобразованием (DCT). Впервые такой принцип предложил использовать инженер-электрик Насир Ахмед в 1972 году.

♥ ПО ТЕМЕ: Как получить бесплатно безлимитное облако Яндекс.Диск для хранения фото с iPhone и iPad.

Что такое JIF?

Вы можете посчитать файлы JIF реализацией формата JPEG в его изначальном виде. Однако этот формат больше не используется, потому что он имеет некоторые досадные ограничения. Например, определения цвета и аспекта пикселей в JIF вызвали проблемы совместимости между кодировщиками и программами просмотра (декодерами).

К счастью, эти проблемы позже были решены другими дополнительными стандартами, основанными на JIF. Первым из них стал формат обмена файлами JPEG (JFIF), а позднее – формат файлов изображений с возможностью обмена (Exif) и цветовые профили ICC.

И если JPEG / JFIF – самый популярный в настоящее время формат для хранения и передачи фотографических изображений в Интернете, то JPEG / Exif – это формат для цифровых камер и других устройств захвата изображений. Но большинство людей не видят разницы между этими вариантами и просто называют их оба JPEG.

♥ ПО ТЕМЕ: Как вывести фото или видео с iPhone или iPad на телевизор – 4 способа.

Что такое JPEG 2000 (JP2 или JPF)?

В 2000 году группа JPEG выпустила другой формат файла изображения, названный JPEG 2000.

Вместо дискретного косинусного преобразования, применяемого в формате JPEG, в JPEG 2000 используется технология вейвлет-преобразования, основывающуюся на представлении сигнала в виде волновых пакетов.

Файлы JPEG 2000 получили расширения JP2, JPF, J2K и т.д. Формат должен был стать преемником JPEG, но оказался далеко не настолько же популярным. А ведь иногда его передовой метод кодирования приводил к более качественному изображению.

В чем отличие JPEG 2020 от JPEG?

Формат файла JPEG 2000 потерпел неудачу по нескольким причинам. Во-первых, он был основан на совершенно новом коде и, следовательно, не был обратно совместим с JPEG. Вдобавок ко всему, для обработки файлов JPEG 2000 требовалось больше оперативной памяти, что в то время стало серьезным препятствием. Ведь средний компьютер тогда имел только 64 МБ памяти.

Сейчас JPEG 2000 переживает некое возрождение, ведь компьютерное оборудование в целом значительно улучшилось за последние 20 лет, но этот формат файла по-прежнему очень мало используется.

♥ ПО ТЕМЕ: DMD Clone, или как создать двойника на фото (клонировать объекты) в iPhone.

JPEG или JPG?

Ранние версии Windows (в частности, с файловыми системами MS-DOS 8.3 и FAT-16) имели максимальное ограничение в 3 буквы, когда дело доходило до длины расширений файлов. JPEG пришлось сократить до JPG, чтобы не превышать такое ограничение. На компьютерах Mac и Linux такого лимита никогда не было, поэтому пользователи продолжали сохранять изображения в формате JPEG.

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

Так мы получили два расширения файлов для одного и того же формата: JPEG и JPG. А при выборе варианта для сохранения изображения между ними нет никакой разницы.

♥ ПО ТЕМЕ: Как в Telegram отправлять и получать самоудаляющиеся сообщения (текст, фото или видео).

JPEG против PNG: что лучше?

JPEG и PNG появились в одно и то же десятилетие, причем каждый формат файла решал разные проблемы цифровых изображений, с которыми тогда столкнулся мир технологий. Можно сказать, что вполне естественно постоянное сравнение этих форматов как изначально, так и сегодня. Какой же формат файла выбрать между JPEG и PNG?

На самом деле ответ зависит от того, какое изображение вы сохраняете.

JPEG лучше подходит для фотографий, потому что в нем используется сжатие с потерями для сохранения разумного размера файла. Фотографии обычно представляют собой большие и детализированные изображения, на которых вызванные сжатием артефакты (незначительные искажения изображения) не особенно заметны.

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

И вот тут отлично показывает себя формат файла Portable Network Graphics (PNG). Он был разработан PNG Development Group через четыре года после выпуска JPEG и поддерживает сжатие данных без потерь и прозрачность. Именно поэтому PNG часто используют, если необходимо сохранить качество изображения, а размер файла не является проблемой.

Хорошее практическое правило – использовать JPEG для фотографий, а PNG – для изображений с прозрачностью и нефотографических изображений.

♥ ПО ТЕМЕ: Как правильно фотографировать: 12 простых советов для тех, кто хочет улучшить качество своих фотографий.

Заключение

Главное, что вам надо запомнить из прочитанного – JPEG и JPG являются одним и тем же форматом файла. Несмотря на путаницу, которую вызвал JPEG с его многочисленными обновлениями и вариациями, бум на цифровые изображения в Интернете в середине 90-х, несомненно, в первую очередь и был вызван появлением этого графического формата.

В следующий раз, когда вы соберетесь экспортировать фотографию из графического редактора и вам будет представлен длинный список доступных форматов, вспомните, что JPEG и JPG – это одно и то же.

Смотрите также:

  • Ад для перфекциониста: 50 фото, разрушающих гармонию.
  • Что такое «золотой час» при съемке фото, или в какое время суток лучше фотографировать на улице.
  • Как конвертировать фото в формате HEIC (HEIF) в формат JPG прямо на iPhone.


Метки: iFaq.

Вадим Сычёв

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

RAW

Это необработанный файл изображения без сжатия. Вы получаете файлы RAW, делая снимки на цифровом зеркальном фотоаппарате. По этой причине такие файлы огромны — каждый из них легко может занимать 25 МБ. Это подходит для редактирования фотографий, но не для их хранения, поэтому и существует сжатие изображений.

В статье будет использоваться одна и та же фотография для сравнения. В браузере нельзя отобразить её в формате RAW, но просмотр высококачественных фотографий в формате JPEG или PNG должен дать представление о том, как выглядит оригинал. Также для сравнения необработанный файл этой фотографии имеет размер 12,4 МБ.

JPEG

Наиболее распространённый формат изображений JPEG (или JPG) является стандартом организации Joint Photographic Experts Group и часто используется для публикации фотографий и изображений текста в интернете. Формат поддерживает 24 бита на пиксель, по 8 для зелёного, синего и красного, что делает этот формат «truecolor», который может отображать более 16 000 000 цветов.

JPEG способен создавать изображения высокого качества, но это всё равно формат сжатия с потерями. Вот почему вы часто будете видеть варианты «низкое», «среднее» и «высокое» качество при экспорте изображения в формате JPEG. Каждый параметр уменьшает степень сжатия и повышает качество фотографии. Вот фотография в форматах JPEG высокого, среднего и низкого качества с соответствующими размерами.

Иллюстрация JPEG-изображения высокого качества в статье «Чем отличаются форматы изображений и зачем они нужны»

JPEG высокого качества (качество установлено на 100), размер: 471 КБ

Иллюстрация JPEG-изображения среднего качества в статье «Чем отличаются форматы изображений и зачем они нужны»

JPEG среднего качества (установлено качество 50), размер: 68 КБ

Иллюстрация JPEG-изображения низкого качества в статье «Чем отличаются форматы изображений и зачем они нужны»

JPEG низкого качества (качество установлено до 20), размер: 32 КБ

Высококачественный JPEG обычно является хорошим компромиссом между размером и качеством. Однако, как только вы создаёте JPEG среднего и низкого качества, изображение значительно ухудшается. Кроме того, JPEG лучше всего подходит для фотографий или рисунков, у которых меньше резких переходов, чем у текста.

GIF

Graphics Interchange Format (GIF) допускает 8 бит на пиксель, по три на красный и зелёный и два на синий. Поэтому GIF-файлам доступны 256 цветов, хотя можно получить и больше, используя несколько цветовых блоков с различными 256-цветными палитрами. При сжатии без потерь GIF-файлы могут идеально воспроизводить свои ограниченные цветовые палитры при многократном повторном сжатии.

Вот тестовая фотография в кодировке GIF:

Иллюстрация GIF-изображения в статье «Чем отличаются форматы изображений и зачем они нужны»

Размер GIF: 194 КБ

Как вы можете видеть, размер относительно невелик, но отсутствие глубины цвета ухудшает качество изображения (это особенно заметно при переходах между светлым и тёмным, например, внутри края синего горшка с жёлтым цветком на правой стороне фото).

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

PNG

Тип файла Portable Network Graphics, предназначенный для замены GIF, — это ещё один формат сжатия без потерь. Он содержит значительно больше информации, чем его предшественник: 24 или 32 бита на пиксель. 24-разрядная версия содержит информацию RGB, а 32-разрядная использует цветовое пространство RGBA. «A» в RGBA означает «альфа», что обеспечивает разные уровни прозрачности изображения (клетчатый фон, как на рисунке ниже, обычно указывает на прозрачность).

Иллюстрация PNG-изображения в статье «Чем отличаются форматы изображений и зачем они нужны»

Поскольку PNG-файл содержит гораздо больше информации, он будет немного больше, чем JPEG или GIF.

Иллюстрация PNG-изображения в статье «Чем отличаются форматы изображений и зачем они нужны»

Размер PNG: 1,5 МБ

Эта фотография PNG выглядит не лучше, чем высококачественный JPEG, хотя важно помнить, что сжатие без потерь будет поддерживать качество фотографии при многократном повторном сжатии. Кроме того, если важна прозрачность, PNG — верное решение.

TIFF

The Tagged Image File Format изначально разрабатывался для сканеров и становился всё более сложным по мере того, как сканеры переходили от чёрно-белого к полутоновому и до полноцветного изображения. Теперь это широко используемый полноцветный тип файла. TIFF-файлы могут быть сохранены в сжатом или несжатом виде, а используемое сжатие может быть с потерями или без. В большинстве случаев будет использоваться сжатие без потерь, хотя, если размер важен, можно пожертвовать качеством.
Поскольку TIFF технически является обёрткой или контейнером файла, он может сохранять изображения с различными битами на пиксель, предоставляя вам возможность иметь очень большое количество цветов, как это было бы с JPEG или PNG.

Примечание Поскольку поддержка TIFF не универсальна в браузерах, показаны высококачественные JPEG-скриншоты TIFF-файлов.

Иллюстрация TIFF-изображения без сжатия в статье «Чем отличаются форматы изображений и зачем они нужны»

Несжатый размер TIFF: 2,2 МБ

Иллюстрация TIFF-изображения со сжатием в статье «Чем отличаются форматы изображений и зачем они нужны»

Размер сжатого файла TIFF: 1,6 МБ

Эти файлы изображений без потерь немного объёмнее, чем форматы JPEG или GIF, но они содержат гораздо больше информации. Хотя в интеренете вы не видите TIFF так же часто, как другие форматы, он очень широко используется и может быть открыт практически любой программой для редактирования изображений.

BMP

Это старый формат, который уже не так часто используется. Из-за проблем с отображением этого формата в браузерах используется скриншот BMP в высококачественном JPEG ниже, чтобы вы могли увидеть, как он выглядит.

BMP (bitmap) — это, прежде всего, формат для Windows, и стандарт поддерживается Microsoft. Как и TIFF, он может хранить произвольное количество бит на пиксель, вплоть до 64, а значит, он содержит много информации об изображении. Этот формат может содержать данные о прозрачности, но некоторые приложения Microsoft не позволяют их читать.

Короче говоря, если у вас есть BMP, конвертируйте его во что-то другое. Всё будет работать лучше.

Иллюстрация BPM-изображения в статье «Чем отличаются форматы изображений и зачем они нужны»

Размер BMP: 1,1 МБ

Какой формат изображений лучше использовать?

Короткий ответ: для большинства целей PNG — очень достойный вариант. Особенно если изображения большого размера. Например, для печати фотографий размером 8×10 и более. Различие между типами файлов наиболее очевидны на напечатанных фотографиях. А сжатие без потерь означает, что качество будет поддерживаться в течение нескольких циклов сжатия.

Сравнение форматов в статье «Чем отличаются форматы изображений и зачем они нужны»

JPEG высокого или даже среднего качества, скорее всего, подойдёт, если вам нужна более высокая степень сжатия, например для отправки фотографий по электронной почте.
TIFF в основном полезен, если вы знаете, как настроить определённые параметры. Следует избегать как GIF, так и BMP (если, конечно, вы не создаёте анимированные GIF). Рекомендуется хранить RAW-файлы, чтобы вы всегда могли редактировать свои фотографии прямо из исходника.

Перевод статьи «JPEG, GIF, or PNG? Image Filetypes Explained and Tested»

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

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

Для решения этой проблемы в 1986 году был собран комитет экспертов со всего мира под названием «Объединённая группа экспертов по фотографии» (Joint Photographic Experts Group, JPEG), основанный в рамках совместной работы Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) – двух международных организаций по стандартизации, штаб-квартира которых расположена в Женеве (Швейцария).

Группа людей под названием JPEG создала стандарт сжатия цифровых изображений JPEG в 1992 году. Любой человек, использовавший интернет, вероятно, встречался с изображениями в кодировке JPEG. Это самый распространённый способ кодирования, отправки и хранения изображений. От веб-страниц до емейла и соцсетей, JPEG используется миллиарды раз в день – практически каждый раз, когда мы смотрим изображение онлайн или отправляем его. Без JPEG веб был бы менее ярким, более медленным, и, вероятно, в нём было бы меньше фоток котиков!

Эта статья – о том, как декодировать JPEG изображение. Иначе говоря, о том, что требуется для преобразования сжатых данных, хранящихся на компьютере, в изображение, появляющееся на экране. Об этом стоит знать не только потому, что это важно для понимания технологии, которую мы используем ежедневно, но и потому, что раскрывая уровни сжатия, мы лучше узнаём восприятие и зрение, а также то, к каким деталям наши глаза восприимчивей всего.

Кроме того, играться с изображениями таким способом очень интересно.

4f831270939c4f685405283f4286e867

Заглядывая внутрь JPEG

На компьютере всё хранится в виде последовательности двоичных чисел. Обычно эти биты, нули и единицы, группируются по восемь, составляя байты. Когда вы открываете JPEG изображение на компьютере, что-то (браузер, операционка, ещё что-то) должно декодировать байты, восстановив изначальное изображение в виде списка цветов, которые можно показать.

Если вы скачаете эту умильную фотографию кота и откроете её в текстовом редакторе, вы увидите кучу бессвязных символов.

1e48a0017ada1830f50eefc5079410ea
Здесь я использую Notepad++ для изучения содержимого файла, поскольку обычные текстовые редакторы, типа Notepad из Windows, испортят двоичный файл после сохранения, и он перестанет удовлетворять формату JPEG.

Открывая изображение в текстовом редакторе, вы сбиваете компьютер с толку, точно так же, как вы сбиваете с толку свой мозг, когда потрёте глаза и начинаете видеть цветные пятна!

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

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

Чтобы понять, как декодировать JPEG, нам нужно увидеть сами изначальные сигналы – двоичные данные. Это можно сделать при помощи шестнадцатеричного редактора, или же прямо на веб-странице оригинала статьи! Там есть изображение, рядом с которым в текстовом поле приведены все его байты (кроме заголовка), представленные в десятичном виде. Вы можете менять их, и скрипт перекодирует и выдаст новое изображение на лету.

0etuazw ujtrjmepdjpaacmg jo

Можно узнать многое, просто играясь с этим редактором. К примеру, можете ли вы сказать, в каком порядке хранятся пиксели?

В этом примере странно то, что изменение некоторых чисел вообще не влияет на изображение, а, например, если заменить число 17 на 0 в первой строке, то фотка полностью испортится!

Другие изменения, например, замена 7 на строке 1988 на число 254 изменяет цвет, но только последующих пикселей.

tjtu0o9qppmq2pgv5mpfh02hpzw

Возможно, наиболее странным будет то, что некоторые числа меняют не только цвет, но и форму изображения. Измените 70 в строке 12 на 2 и посмотрите на верхний ряд изображения, чтобы увидеть, что я имею в виду.

wruiw3ds yihzasjgytn8vul1de

И вне зависимости от того, какое JPEG изображение вы используете, вы всегда будете находить эти загадочные шахматные последовательности при редактировании байтов.

Играясь с редактором, тяжело понять, как воссоздаётся фотка из этих байтов, поскольку JPEG сжатие состоит из трёх различных технологий, применяющихся последовательно по уровням. Мы изучим каждую из них отдельно, чтобы раскрыть наблюдаемое нами загадочное поведение.

Три уровня JPEG сжатия:

  1. Цветовая субдискретизация.
  2. Дискретное косинусное преобразование и дискретизация.
  3. Кодирование длин серий, дельта и Хаффмана

Дабы вы могли представить себе масштабы сжатия, обратите внимание, что изображение, приведённое выше, представляет 79 819 чисел, то есть, около 79 Кб. Если бы мы хранили его без сжатия, для каждого пикселя потребовалось бы по три числа – для красной, зелёной и синей составляющей. Это составило бы 917 700 чисел, или ок. 917 Кб. В результате JPEG сжатия итоговый файл уменьшился больше чем в 10 раз!

На самом деле, это изображение можно сжать гораздо сильнее. Снизу приведены два изображения рядом – фотка справа была ужата до 16 Кб, то есть в 57 раз меньше, чем несжатая версия!

ec8a0fb53e28470aafb8fb6b04713de3

Если присмотреться, будет видно, что эти изображения не идентичны. Оба они – картинки с JPEG сжатием, однако правая гораздо меньше по объёму. Также она выглядит чуть похуже (посмотрите на квадраты цветов фона). Поэтому JPEG ещё называют сжатием с потерями; в процессе сжатия изображение меняется и теряет некоторые детали.

1. Цветовая субдискретизация

Вот изображение с применением только первого уровня сжатия.

bnjqj3gjgcxd3xazrfnepcfwo s
(Интерактивная версия – в оригинале статьи). Удаление одного числа рушит все цвета. Однако если удалить ровно шесть чисел, это практически не влияет на изображение.

Теперь числа чуть проще расшифровать. Это почти что простой список цветов, у которого каждый байт изменяет ровно один пиксель, но при этом он уже в два раза меньше несжатого изображения (которое занимало бы ок. 300 Кб в таком уменьшенном размере). Догадаетесь, почему?

Можно видеть, что эти числа не обозначают стандартные красную, зелёную и синюю компоненты, поскольку если заменить все числа нулями, мы получим зелёное изображение (а не белое).

ijarqjsfiuanba52sxsn ovh6q0

Это потому, что эти байты обозначают Y (яркость),

Cb (относительная голубизна),

sao1c1div5bv1dltl6gahkp86a

и Cr (относительная краснота) картинки.

Почему не использовать RGB? Ведь именно так работает большинство современных экранов. Ваш монитор может демонстрировать любой цвет, включая красный, зелёный и синий цвета с разной интенсивностью для каждого пикселя. Белый получается включением всех трёх на полную яркость, а чёрный – их отключением.

c27504f7737bca3efab3468f2a09aacc

Это также очень похоже на работу человеческого глаза. Цветовые рецепторы наших глаз называются «колбочки», и делятся на три типа, каждый из которых более чувствителен либо к красному, либо к зелёному, либо к синему цветам [колбочки S-типа чувствительны в фиолетово-синей (S от англ. Short — коротковолновый спектр), M-типа — в зелено-желтой (M от англ. Medium — средневолновый), и L-типа — в желто-красной (L от англ. Long — длинноволновый) частях спектра. Наличие этих трёх видов колбочек (и палочек, чувствительных в изумрудно-зелёной части спектра) даёт человеку цветное зрение. / прим. перев.]. Палочки, другой тип фоторецепторов в наших глазах, способны улавливать только изменения в яркости, однако они гораздо более чувствительные. В наших глазах есть около 120 млн палочек и всего 6 млн колбочек.

Поэтому наши глаза гораздо лучше замечают изменения в яркости, чем изменения в цвете. Если отделить цвет от яркости, можно убрать немного цвета, и никто ничего не заметит. Цветовая субдискретизация – это процесс представления цветовых компонентов изображения в меньшем разрешении по сравнению с компонентами яркости. В примере выше у каждого пикселя ровно один компонент Y, а у каждой отдельной группы из четырёх пикселей есть ровно одна компонента Cb и одна Cr. Поэтому изображение содержит в четыре раза меньше цветовой информации, чем было у оригинала.

Цветовое пространство YCbCr используется не только в JPEG. Его изначально придумали в 1938 году для телепередач. Не у всех есть цветной телевизор, поэтому разделение цвета и яркости позволило всем получать один и тот же сигнал, а телевизоры без цвета просто использовали только компонент яркости.

Поэтому удаление одного числа из редактора полностью рушит все цвета. Компоненты хранятся в виде Y Y Y Y Cb Cr (на самом деле, не обязательно в таком порядке – порядок хранения задаётся в заголовке файла). Удаление первого числа приведёт к тому, что первое значение Cb будет воспринято, как Y, Cr как Cb, и в целом получится эффект домино, переключающий все цвета картинки.

Спецификация JPEG не обязывает вас использовать YCbCr. Но в большинстве файлов она используются, поскольку она даёт изображения лучшего качества после субдискретизации по сравнению с RGB. Но вам не обязательно верить мне на слово. Посмотрите сами в табличке ниже, как будет выглядеть субдискретизация каждого отдельного компонента как в RGB, так и в YCbCr.

9bfleirkdnq8sdwiudks05bdz1o
(Интерактивная версия – в оригинале статьи).

Удаление синего не так заметно, как красного или зелёного. Всё потому, что из шести миллионов колбочек в ваших глазах около 64% чувствительны к красному, 32% к зелёному и 2% к синему.

Субдискретизация компонента Y (слева внизу) видна лучше всего. Заметно даже небольшое изменение.

Преобразование изображения из RGB в YCbCr не уменьшает размер файла, но облегчает поиск менее заметных деталей, которые можно удалить. Сжатие с потерями происходит на втором этапе. В её основе лежит идея представления данных в более сжимаемом виде.

2. Дискретное косинусное преобразование и дискретизация

Этот уровень сжатия по большей части и определяет суть JPEG. После преобразования цветов в YCbCr компоненты сжимаются по отдельности, поэтому далее мы можем сконцентрироваться только на компоненте Y. И вот как выглядят байты компонента Y после применения этого уровня.

src2enhysp480z4qoycrgptdn5m
(Интерактивная версия – в оригинале статьи). В интерактивной версии клик на пикселе прокручивает редактор на строчку, которая его обозначает. Попробуйте поудалять числа с конца или добавить несколько нулей к определённому числу.

На первый взгляд, выглядит, как очень плохое сжатие. В изображении 100 000 пикселей, и для обозначения их яркости (Y-компоненты) требуется 102 400 чисел — это хуже, чем если вообще ничего не сжимать!

Однако обратите внимание на то, что большинство этих чисел равны нулю. Более того, все эти нули в конце строк можно удалять, не меняя изображение. Остаётся порядка 26 000 чисел, а это уже почти в 4 раза меньше!

На этом уровне находится секрет шахматных узоров. В отличие от других эффектов, которые мы видели, появление этих узоров не является глюком. Они – строительные блоки всего изображения. В каждой строчке редактора содержится ровно 64 числа, коэффициенты дискретного косинусного преобразования (DCT), соответствующие интенсивностям 64-х уникальных узоров.

Эти узоры формируются на основе графика косинуса. Вот, как выглядят некоторые из них:

2cc8dadd7ca3d6565753fdd8f14a4fcd
8 из 64 коэффициентов

Ниже – изображение, демонстрирующее все 64 узора.

z38nrihqi2zbdt2cznzqy3p1bh0
(Интерактивная версия – в оригинале статьи).

Эти узоры имеют особое значение, поскольку они формируют базис изображений размера 8х8. Если вы незнакомы с линейной алгеброй, то это означает, что любое изображение размера 8х8 можно получить из этих 64-х узоров. DCT – это процесс разбиения изображений на блоки 8х8 и преобразования каждого блока в комбинацию из этих 64 коэффициентов.

То, что любое изображение можно составить из 64 определённых узоров, кажется волшебством. Однако это то же самое, что сказать, что любое место на Земле можно описать двумя числами – широтой и долготой [с указанием полушарий / прим. перев.]. Мы часто считаем поверхность Земли двумерной, поэтому нам требуются всего два числа. Изображение 8х8 имеет 64 измерения, поэтому нам требуются 64 числа.

Пока непонятно, как это помогает нам в смысле сжатия. Если нам нужно 64 числа для представления изображения 8х8, почему этот способ будет лучше, чем просто хранить 64 компоненты яркости? Мы делаем это по той же причине, по которой мы превратили три числа RGB в три числа YCbCr: это позволяет нам удалить незаметные детали.

Сложно увидеть, какие именно детали удаляются на этом этапе, поскольку JPEG применяет DCT к блокам 8х8. Однако никто не запрещает нам применить его к целой картинке. Вот, как выглядит DCT по компоненте Y в применении к целой картинке:

С конца можно удалить более 60 000 чисел практически без заметных изменений на фотке.

wemqmatswqyazpgyxm12k g7l s

Однако отметьте, что если мы обнулим первые пять чисел, разница будет очевидной.

m0fjtjcfr 6b50duzk3 zvl7gi

Числа в начале обозначают изменения низкой частоты в изображении, и наши глаза улавливают их лучше всего. Числа ближе к концу обозначают изменения высоких частот, которые сложнее заметить. Чтобы «увидеть то, что не видно глазом», мы можем изолировать эти детали высокой частоты, обнулив первые 5000 чисел.

sigjw20pylfjmu0rzqjocl6oqv4

Мы видим все области изображения, в которых происходит наибольшее изменение от пикселя к пикселю. Выделяются глаза кота, его усы, махровое одеяло и тени в нижнем левом углу. Можно пойти и дальше, обнулив первые 10 000 чисел:

20 000:

y9frrialb 94gnwdd plq hcyqc

40 000:

0dcekrobg9 ir hqnggr9fjlw4u

60 000:

uo8fqxadj

Эти высокочастотные детали JPEG и удаляет на этапе сжатия. Преобразование цветов в коэффициенты DCT не несёт потерь. Потери образуются на шаге дискретизации, где удаляются величины высокой частоты или близкие к нулю. Когда вы понижаете качество сохранения JPEG, программа увеличивает порог количества удаляемых значений, что даёт уменьшение размера файла, но делает картинку более пикселизированной. Поэтому изображение в первом разделе, которое было в 57 раз меньше, так выглядело. Каждый блок 8х8 представлялся гораздо меньшим количеством коэффициентов DCT по сравнению с более качественной версией.

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

Вот, просто для интереса, что получится при использовании всего 24 000 чисел:

vnsfxrqyogsnc4qx9pzsok rno

Или всего 5000:

oiy3u6saz6kliguv pm8iucdbqa

Очень размыто, но как будто узнаваемо!

3. Кодирование длин серий, дельта и Хаффмана

Пока что все этапы сжатия шли с потерями. Последний этап, наоборот, идёт без потерь. Он не удаляет информацию, однако значительно уменьшает размер файла.

Как можно сжать что-либо, не отбрасывая информацию? Представьте, как бы мы описали простой чёрный прямоугольник 700 х 437.

JPEG использует для этого 5000 чисел, но можно достичь гораздо лучшего результата. Можете представить себе схему кодирования, которая бы описывала подобное изображение как можно меньшим количеством байт?

Минимальная схема, которую смог придумать я, использует четыре: три для обозначения цвета, и четвёртый – сколько пикселей имеет такой цвет. Идея представления повторяющихся значений таким сжатым способом называется кодирование длин серий. Она не имеет потерь, поскольку мы можем восстановить закодированные данные в первозданном виде.

Размер файла JPEG с чёрным прямоугольником гораздо больше 4 байт – вспомните, что на уровне DCT сжатие применяется к блокам 8х8 пикселей. Поэтому как минимум нам нужен один коэффициент DCT на каждые 64 пикселя. Один нам нужен потому, что вместо того, чтобы хранить один DCT-коэффициент, за которым идёт 63 нуля, кодирование длин серий позволяет нам хранить одно число и обозначить, что «все остальные – нули».

Дельта-кодирование – это техника, при которой каждый байт содержит отличие от какого-то значения, а не абсолютную величину. Поэтому редактирование определённых байтов изменяет цвет всех остальных пикселей. К примеру, вместо того, чтобы хранить

12 13 14 14 14 13 13 14

Мы могли бы начать с 12, а потом просто обозначать, сколько надо прибавить или отнять, чтобы получить следующее число. И эта последовательность в дельта-кодировании приобретает вид:

12 1 1 0 0 -1 0 1

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

Дельта-кодирование – одна из немногих техник, применяемых вне блоков 8х8. Из 64 коэффициентов DCT один – просто постоянная волновая функция (сплошной цвет). Он представляет среднюю яркость каждого блока для компонент яркости, или среднюю голубизну для компонентов Cb, и так далее. Первое значение каждого DCT-блока называется DC-значением, и каждое DC-значение проходит дельта-кодирование по отношению к предыдущим. Поэтому изменение яркости первого блока повлияет на все блоки.

Остаётся последняя загадка: как изменение единственного числа полностью портит всю картинку? Пока таких свойств у уровней сжатия не было. Ответ лежит в заголовке JPEG. Первые 500 байт содержат метаданные об изображении – ширину, высоту, и проч., и пока мы с ними не работали.

Без заголовка практически невозможно (ну, или очень сложно) декодировать JPEG. Это будет выглядеть так, будто я пытаюсь описать вам картину, и начинаю изобретать слова для того, чтобы передать своё впечатление. Описание будет, вероятно, весьма сжатым, поскольку я могу изобретать слова именно с тем значением, которое я хочу передать, однако для всех остальных они не будут иметь смысла.

Звучит глупо, но именно так это и происходит. Каждое изображение JPEG сжимается с кодами, специфичными именно для него. Словарь кодов хранится в заголовке. Эта техника называется «код Хаффмана», а словарь – таблицей Хаффмана. В заголовке таблица отмечена двумя байтами – 255 и потом 196. У каждого цветового компонента может быть своя таблица.

Изменения таблиц радикально повлияют на любое изображение. Хороший пример – поменять на 15-й строке 1 на 12.

mz

Это происходит потому, что в таблицах указывается, как нужно читать отдельные биты. Пока что мы работали только с двоичными числами в десятичном виде. Но это скрывает от нас тот факт, что если вы хотите хранить число 1 в байте, то оно будет выглядеть, как 00000001, поскольку в каждом байте должно быть ровно восемь бит, даже если нужен из них всего один.

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

234 115

То, в зависимости от таблицы Хаффмана, это могут быть три числа. Чтобы их извлечь, вам надо сначала разбить их на отдельные биты:

11101010 01110011

Затем обращаемся к таблице, чтобы понять, как их группировать. К примеру, это могут быть первые шесть битов, (111010), или 58 в десятичной системе, за которыми идут пять битов (10011), или 19, и наконец последние четыре бита (0011), или 3.

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

Один из интересных трюков, которые можно проделать, зная это – отделить заголовок от JPEG и хранить его отдельно. По сути, получится, что файл сможете прочесть только вы. Facebook проделывает это, чтобы ещё сильнее уменьшать файлы.

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

Подведём итоги: так что же нужно для декодирования JPEG? Необходимо:

  1. Извлечь таблицу (таблицы) Хаффмана из заголовка и декодировать биты.
  2. Извлечь коэффициенты дискретного косинусного преобразования для каждого компонента цвета и яркости для каждого блока 8х8, проведя обратные преобразования кодирования длин серий и дельты.
  3. Скомбинировать косинусы на основе коэффициентов, чтобы получить значения пикселей для каждого блока 8х8.
  4. Масштабировать компоненты цветов, если проводилась субдискретизация (эта информация есть в заголовке).
  5. Преобразовать полученные значения YCbCr для каждого пикселя в RGB.
  6. Вывести изображение на экран!

Серьёзная работа для простого просмотра фотки с котиком! Однако, что мне в этом нравится – видно, насколько технология JPEG человекоцентрична. Она основана на особенностях нашего восприятия, позволяющих достичь гораздо лучшего сжатия, чем обычные технологии. И теперь, понимая, как работает JPEG, можно представить, как эти технологии можно перенести в другие области. К примеру, дельта-кодирование в видео может дать серьёзное уменьшение размера файла, поскольку там часто есть целые области, не меняющиеся от кадра к кадру (к примеру, фон).

Код, использованный в статье, открыт, и содержит инструкции по замене картинок на свои собственные.

Что такое формат изображения

Формат изображения – это всего лишь способ записи графической информации или спецификация структуры данных, записанных в компьютерный файл. На сегодняшний день существует большое количество форматов изображений. Все они делятся на растровые, векторные и комплексные (PDF, DjVu )

Чем различаются растровая и векторная графика

Разглядывая на экране растровое изображение, мы в действительности видим перед собой тысячи маленьких квадратных точек – пикселей. Каждый такой пиксель в компьютере описан определенной последовательностью цифр и символов. Сливаясь вместе, эти точки и образуют картинку. Изображение на экране тем реалистичней, чем больше содержит в себе таких пикселей и чем пиксели меньше по размеру. Если увеличивать изображение с растровой графикой, то оно заметно потеряет в качестве.

Фото: blog.csdn.net

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

Например производители популярных экранов с разрешением «Ретина», утверждают, что пиксели на таком экране не больше чем аналогичные точки в нашем глазу, а значит наше зрение просто не способно заметить их на экранах «Ретина».

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

Если увеличить векторное изображение, то можно заметить, что пиксели практически незаметны, то есть качество осталось на прежнем уровне.

Поэтому векторные изображения удобно использовать там, где требуется увеличение без потери качества, например в полиграфии.  

Подводя итог, можно сказать, что растровая графика – это множество точек, а векторная графика множество геометрических фигур. 

Фото: logaster.ru

Виды растровой графики

Наиболее популярные графические форматы на сегодня это JPEG, GIF, PNG,RAW, TIFF, DDS. Остановимся на каждом из них чуть подробнее.

Что такое формат JPEG

Формат JPEG–это формат изображений, который использует сжатие с потерями и не поддерживает прозрачность.

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

Файлы, содержащие изображение в формате jpeg могут иметь также и другие вариации расширений: .jpg, .jpe или .jfif. Все это изображения одного типа и на практике различаются только количеством символов. Дело в том, что раньше операционные системы не поддерживали более 3 символов расширений файлов, поэтому использовались .jpg и .jpe.

Также JPEG имеет встроенную поддержку метаданных (EXIF) таких как: модель использованной камеры, выдержка, диафрагма и светочувствительность, разрешение кадра и многие другие.

Что такое формат GIF

GIF — формат способен хранить сжатые данные без потери качества в формате не более 256 цветов. Формат GIF поддерживает анимационные изображения, которые представляют собой последовательность из нескольких статичных кадров,  а также время, в течение которого каждый кадр должен быть показан на экране. 

Во время загрузки произошла ошибка.

Поддерживаемой возможностью является сохранение большего количества цветов с помощью анимированного GIF с нулевой задержкой между кадрами. При этом преодолевается ограничение в 256 цветов: каждый кадр содержит свою палитру.

Что такое формат  PNG

Формат PNG хранит информацию об изображении в сжатом виде, но сжатие, в отличие от JPEG, производится без потерь, поэтому зачастую PNG всегда больше JPEG по размеру.

PNG также известен как отличный формат для редактирования изображений. Он был спроектирован в качестве замены устаревшему на тот момент формату ГИФ, но в отличие от него лишен анимации. 

В фотографии PNG используется редко — для компактного хранения файлов больше подходит JPEG, а для профессиональной работы лучше подходят RAW-форматы или TIFF.

Долгое время PNG не имел встроенную поддержку метаданных, но в 2017 году эта функция была реализована, а также PNG в отличие от JPEG поддерживает так называемый «прозрачный» цвет.

Что такое формат RAW

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

Обычно в таком формате снимают профессиональные фотографы, так как при сохранении снимка в этом формате не вносятся искажения и преобразования, а значит есть возможность многократной коррекции любых настроек без изменения исходных файлов. При конвертации «сырые» файлы никак не модифицируются, а готовые фотографии могут быть многократно переделаны в случае неудовлетворительной точности настроек конвертера. Из значительных недостатков RAW стоит отметить большой размер готовых файлов.

Что такое формат TIFF

Можно сказать что формат TIFF это что то среднее между RAW и JPEG.

Этот формат позволяет сохранять изображения как со сжатием, так и без него. Зачастую размер такого изображения намного превышает формат JPEG, но в отличие от TIFF каждое повторное сохранение JPEG файла неизбежно приводит к потере качества. Поэтому любое повторное сохранение лучше делать в формат TIFF. Также  этот вид файлов желательно использовать когда изображение нуждается в дополнительной обработке, а JPG лучше всего подходит для готовых  изображений.

Что такое формат DDS

DDS формат был создан для 3D-структур, которые могут быть сжаты посредством технологии DirectX Texture Compression. Он способствует сохранению высокого качества текстур для игровых персонажей, поэтому получил распространение преимущественно  в компьютерной игровой сфере.

Фото: fullrest.ru

Резюме. Какой формат оптимален?

Фотографии и изображения с большим количеством цветов лучше всего сохранять в JPEG. Но стоит помнить, что алгоритм компрессии JPEG сжимает изображения с потерей качества. Если нужно использовать изображение для его последующей обработки, то лучше сохранять снимок в TIFF формате.

Пиктограммы, схемы, картинки с большим количеством текста и изображения с прозрачностью оптимальнее сохранять в PNG. Алгоритм компрессии PNG сжимает изображения без потери качества.

Если вам важен размер, выбирайте JPG, а если у вас мощные ресурсы, то очевидны становятся преимущества PNG. В том случае, если требуется максимальное качество и не важен размер получившегося файла, используйте TIFF.

GIF можно использовать если необходим минимальный размер или требуется анимация. 

Это интересно:

  • Формат ворд как пишется на английском языке
  • Формальдегид как пишется в составе
  • Формат икс эль как пишется
  • Формат ворд как пишется в письме
  • Форма сочинения по литературе в 11 классе