Как цветовое пространство YCbCr представлено в изображении JPEG? - Фотопедия
9 голосов
/ 05 февраля 2011

Я знаю, что 24-битное изображение выделяет 8 бит для R, G и B. Это только для цветового пространства RGB. Как распределяются биты в цветовом пространстве YCbCr для 24-битного изображения JPEG?

Ответы [ 4 ]

23 голосов
/ 07 февраля 2011

JPEG может начинаться с 8 битов на канал R, G и B, но при сохранении в JPEG он сохраняется совсем по-другому, где нет реальной «битовой глубины», а вместо этого значения сохраняются как частотные коэффициенты заданная точность.

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

Другим важным фактором при сохранении JPEG является тип субвыборки цветности . В формате JPEG у вас есть возможность вдвое уменьшить горизонтальное, или горизонтальное, и вертикальное разрешение цветных (Pr и Pb) каналов относительно канала яркости (яркости). При распаковке цветовые каналы интерполируются, и в большинстве фотографических объектов это не имеет большого значения.

Вот грубая сводка того, как изображение превращается в JPEG.

  1. Значения RGB преобразуются в значения Y, Pb, Pr. Цветовое пространство YPbPr лучше подходит для эффективного сжатия, поскольку оно хранит информацию о яркости, которая несет большую часть деталей, только в одном канале. Это преобразование является простой арифметической операцией, которая является полностью обратимой, за исключением случаев, когда имеется ошибка округления.

  2. Если используется какой-либо субсэмплинг цветности (другими словами, любой другой режим, кроме режима 4: 4: 4), то вертикальное и / или горизонтальное разрешение только для каналов Pb и Pr уменьшается вдвое. Таким образом, эти каналы будут иметь разные размеры в пикселях относительно канала яркости. Это приводит к постоянной потере разрешения в цветовых каналах.

  3. Для каждого канала изображение делится на блоки размером 8 на 8 пикселей, что дает 64 линейных значения для каждого такого блока в каждом канале. Если канал не кратен 8 пикселям в любом измерении, то крайние пиксели повторяются (и будут выбрасываться при распаковке - таким образом, сжатие JPEG всегда более эффективно с размерами, кратными 8 пикселям, или 16, если вы учитываете в цветовой подвыборке).

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

  5. Затем идет шаг квантования, где каждый из 64 коэффициентов, которые вы получили на предыдущем шаге, делится на некоторое число (называемое коэффициентом квантования), а остаток выбрасывается. Именно здесь точность сэмплов больше всего сказывается, но именно здесь вы получаете огромную экономию пространства от JPEG по сравнению со сжатием без потерь. Поскольку все находится в частотной области со времени предыдущего преобразования, эта потеря точности делает все возможное для сохранения воспринимаемого качества изображения, чем простое уменьшение битовой глубины / точности пикселей до этого преобразования. Обратной стороной этой процедуры является просто умножение на то же число, на которое вы поделили коэффициенты, но, конечно, поскольку вы выбросили остатки, вы в конечном итоге получите меньшую точность коэффициентов. Это приводит к постоянной потере качества, но не на попиксельной основе, а влияет на блок 8x8 в целом в соответствии с частотной диаграммой этих коэффициентов.

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

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

3 голосов
/ 05 февраля 2011

Есть несколько форматов для YCbCr. Вообще говоря, глаз более чувствителен к изменениям яркости (Y, яркость), чем к изменениям цветности (Cb, Cr, цвет). Таким образом, возможно стереть некоторую информацию о цветности, сохранив качество изображения.

Таким образом, самый «дорогой» формат - это 4: 4: 4, где для каждого компонента яркости (Y) имеется 1 компонента с красной разницей (Cr) и одна компонента с синей разницей (Cb).

Затем, применяя упомянутый мной принцип, получается 4: 2: 2, где на каждые 2 компонента Y приходится 1 Cb и 1 Cr. И это идет еще дальше к 4: 1: 1 и 4: 2: 0 и т. Д. Подробнее здесь .

1 голос
/ 06 февраля 2011

Представление цветности (Cb Cr) в отдельных каналах от яркости (Y) оказывает еще одно положительное влияние на сжатие. Большая часть видимой информации находится в канале яркости. Человеческие глаза допускают как более низкое пространственное разрешение, так и более агрессивное квантование в каналах цветности. Таким образом, агрессивно сжатое изображение может в итоге занять около 10% файлового пространства для цветности, а остальное - для яркости, и при этом выглядеть прилично.

В конце концов, это все еще сжатие с потерями.

0 голосов
/ 05 февраля 2011

Приблизительно 8 бит для каждого канала, но есть несколько немного разных способов сделать это. Подробности приведены в статье Википедии о YCbCr .

...