Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
YUV — это тип скомпилированного цветового пространства с истинными цветами Y’UV, YUV, YCbCr, YPbPr и другие имена собственные могут называться YUV, и они перекрываются друг с другом. «Y» представляет яркость (яркость, яркость), «U» и «V» представляют цветность и концентрацию (цветность, цветность).
YV12 — это широко используемый формат кодека. Его формат следующий:
На рисунке 1:
W — ширина изображения, H — высота изображения, Stride представляет собой диапазон строк изображения, а часть за W — данные заполнения. Основная цель — выравнивание байтов, обычно 16 байт или 32 байта.
NV12 — это формат видео, определенный Intel. Он изначально поддерживается на аппаратных платформах Intel. Его формат следующий:
В YV12 U и V расположены непрерывно, а в NV12 — в шахматном порядке. Расположение в памяти очень четкое. Первые — Y, а последующие — шахматное расположение U1V1U2V2.
Дополнительные знания:
YUV-формат
Основными форматами выборки являются YCbCr 4:2:0, YCbCr 4:2:2, YCbCr 4:1:1 и YCbCr 4:4:4. Среди них чаще используется YCbCr 4:1:1. Его значение следующее: каждая точка сохраняет 8-битное значение яркости (то есть значение Y), а каждые 2×2 точки сохраняют значения Cr и Cb. Изображение кажется другим невооруженным глазом. Это будет иметь большое значение. Поэтому при первоначальном использовании модели RGB (R, G, B — все 8-битные беззнаковые) для 1 точки требуется 8 × 3 = 24 бита (первое изображение ниже) (после полной выборки YUV по-прежнему занимает по 8 бит каждый). После выборки в соответствии с 4:1:1 для среднего значения теперь требуется только 8+(8/4)+(8/4)=12 бит (4 точки, 8*4(Y)+8(U)+8(V) =48бит), каждая точка в среднем занимает 12бит (второе изображение ниже). Это сжимает данные изображения вдвое. Выше приведены только теоретические примеры. В реальном хранении данных все может быть иначе. Вот несколько конкретных форм хранения:
(1) YUV 4:4:4
Три канала YUV имеют одинаковую частоту дискретизации, поэтому в сгенерированном изображении три компонента каждого пикселя имеют полную информацию (каждый компонент обычно имеет размер 8 бит). После 8-битного квантования каждый несжатый пиксель занимает 3 байта.
Следующие четыре пикселя: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
Сохраненный кодовый поток: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3.
(2) YUV 4:2:2
Частота дискретизации каждого канала цветового различия вдвое меньше, чем у канала яркости, поэтому частота дискретизации цветности в горизонтальном направлении составляет только половину от 4:4:4. Для несжатых 8-битных квантованных изображений каждый макропиксель, состоящий из двух соседних по горизонтали пикселей, требует 4 байта памяти.
Следующие четыре пикселя: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
Сохраненный поток кода: Y0 U0 Y1 V1 Y2 U2 Y3 V3.
Сопоставленные пиксели: [Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
(3) YUV 4:1:1
Выборка цветности 4:1:1 — это выборка цветности 4:1 в горизонтальном направлении. Это по-прежнему приемлемо для бюджетных пользователей и потребительских товаров. Для несжатого 8-битного квантованного видео каждый макропиксель, состоящий из 4 соседних по горизонтали пикселей, требует 6 байт памяти.
Следующие четыре пикселя: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
Сохраненный поток кода: Y0 U0 Y1 Y2 V2 Y3.
Сопоставленные пиксели: [Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]
(4)YUV4:2:0
4:2:0 не означает только компоненты Y, Cb и отсутствие Cr. Это означает, что для каждой строки сканирования сохраняется только один компонент цветности с частотой дискретизации 2:1. Соседние строки сканирования хранят разные компоненты цветности, то есть, если одна строка имеет соотношение 4:2:0, следующая строка — 4:0:2, следующая строка — 4:2:0… и так далее. Для каждого компонента цветности частота дискретизации по горизонтали и вертикали составляет 2:1, поэтому можно сказать, что частота дискретизации цветности равна 4:1. Для несжатого 8-битного квантованного видео каждый макропиксель, состоящий из 2×2 соседних пикселей в 2 строках и 2 столбцах, требует 6 байт памяти.
Следующие восемь пикселей: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]
Сохраненный поток кода: Y0 U0 Y1 Y2 U2 Y3.
Y5 V5 Y6 Y7 V7 Y8
Сопоставленные пиксели: [Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]
[Y5 U0 V5] [Y6 U0 V5] [Y7U2 V7] [Y8 U2 V7]
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.