Сжатие бит на пиксель что это такое

Как работает видеокодек. Часть 1. Основы

Вторая часть: Принципы работы видеокодека

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

Если рассматривать итоговый цвет как комбинацию т.н. основных цветов (красного, зеленого и синего), в нашей трёхмерной матрице определяем три плоскости: первая для красного цвета, вторая для зеленого и последняя для синего.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое
Статья опубликована при поддержке компании EDISON.

Альтернативные способы кодирования цветного изображения

Для представления цветов, из которых состоит изображение, есть немало и других моделей. Например, можно использовать индексированную палитру, в которой потребуется только один байт для представления каждого пикселя, вместо трёх, необходимых при использовании модели RGB. В такой модели можно использовать 2D-матрицу вместо 3D-матрицы для представления каждого цвета. Это экономит память, но даёт меньшую цветовую гамму.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Например, взгляните на эту картинку ниже. Первое лицо полностью окрашено. Другие — это красная, зеленая и синяя плоскости (интенсивность соответствующих цветов показана в градации серого).

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Для хранения интенсивности каждого цвета требуется определенного количества битов — эта величина называется битовой глубиной. Допустим, тратится 8 бит (исходя из значения от 0 до 255) на одну цветовую плоскость. Тогда имеем глубину цвета в 24 бита (8 бит * 3 плоскости R/G/B).

Другое свойство изображения — это разрешение, представляющее из себя количество пикселей в одном измерении. Частенько обозначается как как ниже на изображение-примере 4 на 4.
Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Когда говорят, что некий фильм или картинка имеют размер 16 на 9, обычно имеется в виду соотношение сторон дисплея (DAR — от Display Aspect Ratio). Однако иногда могут быть различные формы отдельных пикселей — в этом случае речь идёт о соотношении пикселей (PAR — от Pixel Aspect Ratio).

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Хозяюшке на заметку: DVD соответствует DAR 4 на 3

Хотя реальное разрешение DVD составляет 704×480, тем не менее оно сохраняет соотношение сторон 4:3, поскольку PAR имеет значение 10:11 (704×10 / 480×11).

Ну и, наконец, можем определить видео как последовательность из n кадров за период времени, которое можно считать дополнительным измерением. А n тогда — это частота кадров или количество кадров в секунду (FPS — от Frames per Second).

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

битрейт = ширина * высота * бит глубина * кадров в секунду

Например, для видео с 30 кадрами в секунду, 24 битами на пиксель, разрешением 480×240 потребуется 82,944,000 бит в секунду или 82,944 Мбит/с (30x480x240x24) — но это если не используется какой-либо из методов сжатия.

Если скорость передачи почти постоянна, то она называется постоянной скоростью передачи (CBR — от constant bit rate). Но она также может и варьироваться, в этом случае называется переменной скоростью передачи (VBR — от variable bit rate).

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Изначально инженеры разработали метод удвоения воспринимаемой частоты кадров видеодисплея без использования дополнительной полосы пропускания. Этот способ известен как чересстрочное видео; в основном, он отправляет половину экрана в первом «кадре», а другую половину — в следующем «кадре».

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Ну что ж! Теперь мы в курсе, как изображение представляется в цифровом виде, как устроены его цвета, сколько бит в секунду мы тратим, чтобы показать видео, если скорость передачи постоянная (CBR) или переменная (VBR). Знаем про заданное разрешение с использованием заданной частоты кадров, ознакомились со многими другими терминами, такие как чересстрочное видео, PAR и некоторыми другими.

Удаление избыточности

Известно, что видео без сжатия нормально использовать невозможно. Часовое видео с разрешением 720p и частотой 30 кадров в секунду занимало бы 278 Гб. К такому значению приходим, перемножив 1280 x 720 x 24 x 30 x 3600 (ширина, высота, биты на пиксель, FPS и время в секундах).

Использование алгоритмов сжатия без потерь, вроде DEFLATE (используется в PKZIP, Gzip и PNG), не даст достаточного уменьшению необходимой полосы пропускания. Приходится искать другие способы сжатия видео.

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

Цвет, яркость и наши глаза

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Если вы не видите, что в левой половине изображения цвета квадратов A и B на самом деле одинаковы, то это нормально. Наш мозг заставляет нас уделять больше внимания светотени, а не цвету. С правой стороны между означенными квадратами есть перемычка того же цвета — поэтому мы (т.е. наш мозг) легко определяем, что, на самом деле, там один и тот же цвет.

Давайте разберём (упрощенно) как работают наши глаза. Глаз — сложный орган, состоящий из многих частей. Однако нас больше всего интересуют колбочки и палочки. Глаз содержит около 120 миллионов палочек и 6 миллионов колбочек.

Рассмотрим восприятие цвета и яркости как отдельные функции определённых частей глаза (на самом деле, всё обстоит несколько сложнее, но мы упростим). Палочковые клетки, в основном, отвечают за яркость, в то время как колбочковые клетки отвечают за цвет. Колбочки подразделяются на три типа, в зависимости от содержащегося пигмента: S-колбочки (синий цвет), M-колбочки (зеленый цвет) и L-колбочки (красный цвет).

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Функции контрастной чувствительности

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

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

Цветовая модель

Мы немножко разобрались, как работать с цветными изображениями, используя RGB-схему. Есть и другие модели. Существует модель, которая отделяет яркость от цветности и она известна как YCbCr. Кстати, есть и другие модели, которые делают аналогичное разделение, но мы рассмотрим только эту.

В этой цветовой модели Y — это представление яркости, а также используются два цветовых канала: Cb (насыщенный синий) и Cr (насыщенный красный). YCbCr может быть получен из RGB, равно как возможно и обратное преобразование. Используя эту модель, мы можем создавать полноцветные изображения, как видим ниже:

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Преобразование между YCbCr и RGB

Кто-то возразит: как возможно получить все цвета, если не используется зеленый?

Чтобы ответить на этот вопрос, преобразуем RGB в YCbCr. Воспользуемся коэффициентами, принятыми в стандарте BT.601, который был рекомендован подразделением МСЭ-Р. Это подразделение определяет стандарты цифровом видео. Например: что такое 4K? Каковы должны быть частота кадров, разрешающая способность, цветовая модель?

Сначала вычислим яркость. Воспользуемся константами, предложенные МСЭ, и заменим значения RGB.

После того, как мы получили яркость, отделим синий и красный цвет:

И мы также можем преобразовать обратно и даже получить зеленый с помощью YCbCr:

Как правило, дисплеи (мониторы, телевизоры, экраны и т. д.) используют только модель RGB. Но эта модель может быть организована по-разному:

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Насколько допустимо уменьшать разрешение цветности?! Оказывается, уже есть некоторые схемы, которые описывают, как обрабатывать разрешение и слияние

a — эталон горизонтальной выборки (как правило, равен 4)
x — количество выборок цветности в первой строке пикселей (горизонтальное разрешение по отношению к a)
y — количество изменений выборок цветности между первой и второй строками пикселей.

Исключение составляет 4:1:0, обеспечивающее одну выборку цветности в каждом блоке разрешения яркости 4 на 4.

Общие схемы, используемые в современных кодеках:

YCbCr 4: 2: 0 — пример слияния

Вот объединенный фрагмент изображения с использованием YCbCr 4:2:0. Обратите внимание, что мы тратим только 12 бит на пиксель.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Помните, мы насчитали 278 Гб дискового пространства для хранения часового видеофайла с разрешением 720p и 30 кадрами в секунду? Если воспользуемся YCbCr 4:2:0, то этот размер сократится наполовину — 139 Гб. Пока что всё равно далеко до приемлемого результата.

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Цветность, яркость, цветовая гамма — видеообзор

Рекомендуется к просмотру вот это обалденное видео. Тут объясняется, что такое яркость, да и вообще расставлены все точки над ё о яркости и цвете.

Типы кадров

Двигаемся дальше. Попробуем устранить избыточность по времени. Но сначала давайте определим некоторую базовую терминологию. Предположим, у нас есть фильм с 30 кадрами в секунду, вот его первые 4 кадра:

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такоеСжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

I-кадр (Intro Frame)

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

P-кадр (Predicted Frame)

P-кадр (прогнозируемый кадр) использует преимущество того факта, что почти всегда текущее изображение может быть воспроизведено с использованием предыдущего кадра. Например, во втором кадре единственным изменением является движущийся вперёд мяч. Мы можем получить кадр 2 просто немного видоизменив кадр 1, только используя разницу между этими кадрами. Для построения кадра 2 ссылаемся на предшествующий ему кадр 1.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такоеСжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

B-кадр (Bi-predictive Frame)

А как насчет ссылок не только на прошлые, а заодно и на будущие кадры, чтобы обеспечить еще лучшее сжатие?! Это, в основном и есть B-кадр (двунаправленный кадр).

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такоеСжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такоеСжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Промежуточный вывод

Эти типы кадров используются для обеспечения наилучшего сжатия. Мы разберём, как это происходит, в следующем разделе. А пока отметим, что наиболее «дорогим» по затраченной памяти является I-кадр, P-кадр обходится заметно дешевле, а вот самым выгодным вариантом для видео является B-кадр.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Временна́я избыточность (межкадровое прогнозирование)

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

Постараемся потратить как можно меньше битов для кодирования последовательности кадров 0 и 1.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Мы можем произвести вычитание, просто вычитаем кадр 1 из кадра 0. Получаем кадр 1, только используем разницу между ним и предыдущим кадром, фактически кодируем только получающийся остаток.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Но что, если я вам скажу, что есть ещё более лучший метод, который использует еще меньше битов?! Сначала давайте разобьём frame 0 на чёткую сетку, состоящую из блоков. А затем попробуем сопоставить блоки из кадра 0 с кадром 1. Иными словами, оценим движение между кадрами.

Из Википедии — блочная компенсации движения

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

В реальной ситуации этот шарик был бы разделен на n блоков, но сути дела это не меняет.

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Как будет выглядеть реальная компенсация движения

Эта методика применяется сразу ко всем блокам. Зачастую наш условный движущийся мячик будет разбит сразу на несколько блоков.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Вы можете сами пощупать эти концепции, используя Jupyter.

Чтобы увидеть векторы движения можно создать видео с внешним предсказанием с помощью ffmpeg.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Ещё можно воспользоваться Intel Video Pro Analyzer (он платный, но есть бесплатная пробная версия, которая ограничена только первыми десятью кадрами).

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Пространственная избыточность (внутренний прогноз)

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Пройдемся по этому примеру. Эта сцена в основном состоит из синего и белого цветов.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Это I-кадр. Предыдущие кадры для прогнозирования взять не можем, но получится его сжать. Закодируем выделение красного блока. Если мы посмотрим на его соседей, то замечаем, что вокруг него есть кое-какие цветовые тенденции.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Или же можно использовать Intel Video Pro Analyzer (как я уже упоминал выше, в пробной бесплатной версии ограничение на первые 10 кадров, но вам этого на первых порах хватит).

Источник

Глубина цвета. 8, 12, 14 или 16-бит: что вам действительно нужно?

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

«Разрядность» является одним из параметров, за которым все гонятся, но немногие фотографы действительно его понимают. Photoshop предлагает 8, 16 и 32-битные форматы файлов. Иногда мы видим файлы, отмеченные как 24 и 48-бит. И наши камеры часто предлагают 12 и 14-битные файлы, хотя вы можете получить 16 бит с камерой среднего формата. Что всё это значит, и что действительно имеет значение?

Что такое битовая глубина?

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

Так «битовая глубина» определяет малейшие изменения, которые вы можете сделать, относительно некоторого диапазона значений. Если наша шкала яркости от чистого черного до чистого белого имеет 4 значения, которые мы получаем от 2-битного цвета, то мы получим возможность использовать черный, темно-серый, светло серый и белый. Это довольно мало для фотографии. Но если у нас есть достаточное количество бит, мы имеем достаточно шагов с широким диапазоном серого, чтобы создать то, что мы будем видеть как совершенно гладкий градиент от черного к белому.

Ниже приведен пример сравнения черно-белого градиента на разной битовой глубине. Данное изображение – это просто пример. Нажмите на него, чтобы увидеть изображение в полном разрешении в формате JPEG2000 с разрядностью до 14 бит. В зависимости от качества вашего монитора, вы, вероятно, сможете увидеть только разницу до 8 или 10 бит.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Как понимать битовую глубину?

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

Обратите внимание, что изображение выше черно-белое. Цветное изображение, как правило, состоит из красных, зеленых и синих пикселей для создания цвета. Каждый из этих цветов обрабатывается компьютером и монитором как «канал». Программное обеспечение, например, Photoshop и Lightroom, считают количество бит на канал. Таким образом, 8 бит означает 8 бит на канал. Это означает, что 8-битный RGB-снимок в Photoshop будет иметь в общей сложности 24 бита на пиксель (8 для красного, 8 для зеленого и 8 для синего). 16-битное RGB-изображение или LAB в Photoshop будет иметь 48 бит на пиксель и т.д.

Вы бы могли предположить, что 16-бит означает 16-бит на канал в Photoshop, но в данном случае это работает иначе. Photoshop реально используется 16 бит на канал. Тем не менее, он относится к 16-разрядным снимкам по-другому. Он просто добавляет один бит к 15-битам. Это иногда называют 15+1 бит. Это означает, что вместо 2 16 возможных значений (что равнялось бы 65536 возможным значениям) существует только 2 15+1 возможных значений, что составляет 32768+1=32769.

Таким образом, с точки зрения качества, было бы справедливо сказать, что 16-битный режим Adobe, на самом деле содержит только 15-бит. Вы не верите? Посмотрите на 16-разрядную шкалу для панели Info в Photoshop, которая показывает масштаб 0-32768 (что означает 32769 значения учитывая ноль. Почему Adobe так делает? Согласно заявлению разработчика Adobe Криса Кокса, это позволяет Photoshop работать гораздо быстрее и обеспечивает точную среднюю точку для диапазона, который является полезным для режимов смешивания.

Большинство камер позволит вам сохранять файлы в 8-бит (JPG) или от 12 до 16 бит (RAW). Так почему же Photoshop не открывает 12 или 14-битный RAW файл, как 12 или 14 бит? С одной стороны, это потребовало бы очень много ресурсов для работы Photoshop и изменение форматов файлов для поддержки других битовых глубин. И открытие 12-битных файлов в качестве 16-бит на самом деле не отличается от открытия 8-битного JPG, а затем преобразования в 16 бит. Там нет непосредственной визуальной разницы. Но самое главное, есть огромные преимущества использования формата файлов с несколькими дополнительными битами (как мы обсудим позже).

Для дисплеев, терминология меняется. Производители хотят, чтобы характеристики их оборудования звучали соблазнительно. Поэтому режимы отображения 8-бит обычно подписывают как «24-бит» (потому что у вас есть 3 канала с 8-бит каждый). Другими словами, «24-бит» («True Color») для монитора не очень впечатляет, это на самом деле означает то же самое, что 8 бит для Photoshop. Лучшим вариантом было бы «30-48 бит» (так называемый «Deep Color»), что составляет 10-16 бит на канал, хотя для многих более 10 бит на канал является излишеством.

Далее мы будем говорить о битовой глубине в терминологии Photoshop.

Сколько бит вы можете увидеть?

С чистым градиентом (т.е. наихудшими условиями), многие могут обнаружить полосатость в 9-битном градиенте, который содержит 2048 оттенков серого на хорошем дисплее с поддержкой более глубокого отображения цвета. 9-битный градиент является чрезвычайно слабым, едва уловимым. Если бы вы не знали о его существовании, вы бы его не увидели. И даже когда вы будете на него смотреть, будет не просто сказать где границы каждого цвета. 8-битный градиент относительно легко увидеть, если смотреть на него пристально, хотя вы всё ещё сможете его не замечать, если не присматриваться. Таким образом, можно сказать, что 10-битный градиент визуально идентичен 14-битному или более глубокому.

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Как всё это проверить? Для наглядности создадим документ шириной 16384 пикселей, что позволяет использовать ровно 1 пиксель для каждого значения в 14-битном градиенте. Специальный алгоритм создаёт градиенты с каждой битовой глубиной от 1 до 14 на изображении. Файл PSB весит более 20GB, поэтому поделиться им нет возможности. Но можно создать изображение в формате JPEG2000 с полным разрешением. При глубине цвета 16-бит вы не увидите разницы даже при экстремальном редактировании кривых. Удивительно, как этот файл JPEG2000 сжимает оригинальное изображение с 20Gb до 2Mb.

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

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

Важно также отметить, что вы, вероятно, столкнутся с ложной «полосатостью» при просмотре изображений на увеличении менее чем 67%.

Зачем использовать больше бит, чем вы можете увидеть?

Почему у нас есть варианты, даже больше, чем 10-бит в наших камерах и Photoshop? Если мы не редактировали фотографии, то не было бы никакой необходимости добавлять больше бит, чем человеческий глаз может видеть. Однако, когда мы начинаем редактирование фотографий, ранее скрытые различия могут легко вылезть наружу.

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

Почему 8-битные изображения выглядят так же, как 16-битные?

При преобразовании 16-битного изображения в 8-битное вы не увидите разницы. Если так, тогда зачем использовать 16-бит?

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

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

Так сколько бит действительно нужно в камере?

Изменение 4 стопов в обеспечит потерю чуть более 4 бит. Изменение 3 стопов экспозиции находится ближе к потере 2 бит. Как часто вам приходится настолько сильно корректировать экспозицию? При работе с RAW коррекция до +/- 4 стопа – это экстремальная и редкая ситуация, но такое случается, поэтому желательно иметь дополнительные 4-5 бит над пределами видимого диапазонов, чтобы иметь запас. При нормальном диапазоне 9-10 бит, с запасом нормой может быть примерно 14-15 бит.

На самом деле, вы, вероятно, никогда не будете нуждаться в таком большом количестве данных по нескольким причинам:

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

Интересный факт заключается в том, что многое зависит от программы, которую вы используете для постобработки. К примеру, при вытягивании теней из одного и того же изображения в Capture One (CO) и в Lightroom можно получить разные результаты. На практике оказалось, что СО больше портит глубокие тени, чем аналог от Adobe. Таким образом, если вы вытягиваете в LR, то можно рассчитывать на 5 стопов, а в CO – всего на 4.

Но всё таки, лучше избегать попыток вытянуть более 3 стопов динамического диапазона из-за шума и изменения цветового оттенка. 12-бит, безусловно, разумный выбор. Если вы заботитесь о качестве, а не размере файла, то снимайте в 14-битном режиме, если ваша камера позволяет.

Сколько бит стоит использовать в Photoshop?

На основании изложенного выше, должно быть ясно, что 8-бит – это мало. Можно сразу увидеть переходы цветов в плавных градиентах. И если вы не видите это сразу, даже скромные корректировки могут сделать этот эффект заметным.

Стоит работать в 16 бит даже если ваш исходный файл 8-битовый, например, изображения в JPG. Режим 16-бит даст лучшие результаты, поскольку он позволит свести к минимуму переходы при редактировании.

Нет никакого смысла использовать 32-битный режим, если вы не обрабатываете файл HDR.

Сколько бит нужно для интернета?

Преимущества 16 бит заключаются в расширении возможностей редактирования. Преобразование окончательного отредактированного изображения в 8 бит прекрасно подходит для просмотра снимков и имеет преимущество в создании небольших файлов для интернета для более быстрой загрузки. Убедитесь, что сглаживание в Photoshop включено. Если вы используете Lightroom для экспорта в JPG, сглаживание используется автоматически. Это помогает добавить немного шума, который должен свести к минимуму риск появления заметных переходов цвета в 8 бит.

Сколько бит нужно для печати?

Если вы печатаете дома, вы можете просто создать копию рабочего 16-битного файла и обработать его для печати, осуществив печать именно рабочего файла. Но что, если вы отправляете свои изображения через интернет в лабораторию? Многие будут использовать 16-разрядные TIF-файлы, и это отличный способ. Однако, если для печати требуют JPG или вы хотите отправить файл меньшего размера, вы можете столкнуться с вопросами о переходе на 8-бит.

Если ваша лаборатория печати принимает 16-битный формат (TIFF, PSD, JPEG2000), просто спросите у специалистов какие файлы предпочтительны.

Если вам нужно отправить JPG, он будет в 8 бит, но это не должно быть проблемой. В действительности, 8-бит отлично подходит для окончательного вывода на печать. Просто экспортируйте файлы из Lightroom с качеством 90% и цветовым пространством Adobe RGB. Делайте всю обработку перед преобразованием файла в 8 бит и никаких проблем не будет.

Если вы не видите полосатость перехода цветов на мониторе после преобразования в 8-бит, можете быть уверены, что всё в порядке для печати.

В чем разница между битовой глубиной и цветовым пространством?

Битовая глубина определяет число возможных значений. Цветовое пространство определяет максимальные значения или диапазон (обычно известные как «гамма»). Если вам нужно использовать коробку цветных карандашей в качестве примера, большая битовая глубина будет выражаться в большем количестве оттенков, а больший диапазон будет выражаться как более насыщенные цвета независимо от количества карандашей.

Чтобы посмотреть на разницу, рассмотрим следующий упрощенный визуальный пример:

Сжатие бит на пиксель что это такое. Смотреть фото Сжатие бит на пиксель что это такое. Смотреть картинку Сжатие бит на пиксель что это такое. Картинка про Сжатие бит на пиксель что это такое. Фото Сжатие бит на пиксель что это такое

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

Как цветовое пространство влияет на битовую глубину?

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

Рекомендуемые настройки, чтобы избежать полосатости

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

Lightroom и Photoshop (рабочие файлы):

Экспорт для интернета:

Взгляд в будущее

В данный момент выбор большей битовой глубины для вас может не иметь значения, так как ваш монитор и принтер способны работать только в 8 бит, но в будущем всё может измениться. Ваш новый монитор сможет отображать больше цветов, а печать можно осуществить на профессиональном оборудовании. Сохраняйте свои рабочие файлы в 16-бит. Этого будет достаточно, чтобы сохранить наилучшее качество на будущее. Этого будет достаточно, чтобы удовлетворить требованиям всех мониторов и принтеров, которые будут появляться в обозримом будущем. Этого диапазона цвета достаточно, чтобы выйти за пределы диапазона зрения человека.

Однако гамма – это другое. Скорее всего, у вас есть монитор с цветовой гаммой sRGB. Если он поддерживает более широкий спектр Adobe RGB или гамму P3, то вам лучше работать с этими гаммами. Adobe RGB имеет расширенный диапазон цвета в синем, голубом и зелёном, а P3 предлагает более широкие цвета в красном, желтом и зеленом. Помимо P3 мониторов существуют коммерческие принтеры, которые превышают гамму AdobeRGB. sRGB и AdobeRGB уже не в состоянии охватить полный диапазон цветов, которые могут быть воссозданы на мониторе или принтере. По этой причине, стоит использовать более широкий диапазон цвета, если вы рассчитываете на печать или просмотр снимков на лучших принтерах и мониторах позже. Для этого подойдёт гамма ProPhoto RGB. И, как обсуждалось выше, более широкая гамма нуждается в большей битовой глубине 16-бит.

Как удалить полосатость

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

Но если вы столкнетесь с полосатостью (скорее всего при переходе в 8-разрядное изображение, вы можете предпринять следующие шаги, чтобы свести эту проблему к минимуму:

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

Следите за новостями: Facebook, Вконтакте и Telegram

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *