NV12 и YV12, основные форматы «рекомендуемой коллекции» YUV.
NV12 и YV12, основные форматы «рекомендуемой коллекции» YUV.

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

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]

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

bit
boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.