Как цветовое пространство YCbCr представлено в изображении JPEG?

9

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

Пожалуйста, прочитайте мой профиль
источник

Ответы:

3

Есть несколько форматов для 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 и т. Д. Подробнее здесь .

ysap
источник
Эти шаблоны, похоже, относятся к частотной выборке для видео, а не к кодированию JPEG.
whuber
@whuber: они часто используются при обсуждении кодирования видео, но JPEG также поддерживает яркость с удвоенным разрешением цветности. В случае с JPEG это не обязательно - цветность может быть как с полным, так и с половинным разрешением.
Джерри Коффин
1
GIMP будет использовать подвыборку цветности по умолчанию при сохранении JPEG, хотя это легко переопределить. Не могу вспомнить, относится ли это к фотошопу тоже.
Томасруттер
@thomasrutter, Photoshop выбирает субдискретизацию на основе выбранной вами настройки качества. Это не самостоятельный вариант.
Марк Рэнсом
Между прочим, числа относятся к числу выборок на 4 горизонтальных пикселя для Y, Pr и Pb. Таким образом, 4: 4: 4 означает, что все три канала дискретизируют каждый пиксель; 4: 2: 2 означает, что каналы Pr и Pb сэмплируют только каждый второй пиксель по горизонтали; 4: 1: 1 (я не думаю, что это когда-либо используется в фотографии, только в видео) означает, что Pr и Pb сэмплируют только каждый четвертый пиксель по горизонтали. 4: 2: 0 - это особое отклонение от этого правила. Это НЕ означает, что нет канала Pb. Это означает, что каналы Pr и Pb делятся пополам как по горизонтали, так и по вертикали, а не только по горизонтали.
Томасруттер
24

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 по сравнению со сжатием без потерь. Поскольку все находится в частотной области со времени предыдущего преобразования, эта потеря точности делает все возможное для сохранения воспринимаемого качества изображения, чем простое уменьшение битовой глубины / точности пикселей до этого преобразования. Обратной стороной этой процедуры является просто умножение на то же число, на которое вы поделили коэффициенты, но, конечно, поскольку вы выбросили остатки, вы в конечном итоге получите меньшую точность коэффициентов. Это приводит к постоянной потере качества,

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

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

thomasrutter
источник
2
Я думаю, что мой мозг просто взорвался.
Ник Бедфорд
Подвыбор цветности не просто приводит к «потере разрешения». Он вносит очень заметные артефакты, особенно в красный канал.
Марк Рэнсом
@ Mark Ransom эти артефакты являются не чем иным, как результатом вдвое уменьшения разрешения в цветовых каналах и интерполяции, необходимой для учета этого после декомпрессии. Он никогда не должен создавать никаких «заметных артефактов», кроме тех, которые вызваны размытым разрешением, хотя могут существовать некоторые декодеры, которые испортят эту интерполяцию или сделают очень простую интерполяцию ближайшего соседа, что приведет к блочности, которая довольно заметна для красного детали на черном (или пурпурный на синем и т. д.). Например, это было распространенной проблемой на некоторых ранних DVD-плеерах.
Томасруттер
5
Я не думаю, что когда-либо видел лучшее, более легкое для понимания объяснение сжатия изображений JPEG или действительно с потерями. определенно +1
jay.lee
Извините, я не имел в виду, что субсэмплинг вызывает артефакты. Просто существующие ошибки квантования взрываются в 2 раза, делая их гораздо более заметными. Я думаю, что важно знать, что видимый эффект субсэмплинга - это больше, чем просто небольшая нечеткость.
Марк Рэнсом
1

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

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

О. Джонс
источник
-1

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

whuber
источник
Это было указано в вопросе. Предоставьте более подробный ответ.
Ник Бедфорд
@ Ник Где именно было указано «это» в вопросе? Вопрос в его нынешнем виде гласит: «Как распределяются биты в цветовом пространстве YCbCr для 24-битного изображения JPEG?» Я сказал, как они распределяются, предполагая - как любой, кто понимает вопрос, - что каналы - это Y, Cb и Cr. Мой ответ - правильное резюме статьи в Википедии. Политика SE состоит в том, чтобы предоставлять резюме, а не копировать материалы оптом (хотя, я допускаю, легко привести некоторые пограничные примеры длинных цитат в других местах на этом сайте).
whuber
Я думаю, что этот вид ответа, хотя и не так хорош, как полное объяснение, намного лучше, чем тот, который просто вырезает и вставляет из Википедии, или даже который перефразирует целую статью Википедии. Если Википедия хороша, полезно рассказать людям об этом. И если это все, что ваш ответ помогает, быть искренним и просто дать краткую сводку и ссылку, это именно то, что нужно сделать.
Пожалуйста, прочитайте мой профиль