10-разрядные и 16-разрядные форматы видео YUV
В этом разделе описываются 10-и 16-разрядные форматы YUV, которые рекомендуются для записи, обработки и отображения видео в операционной системе Microsoft Windows.
В этом разделе содержатся следующие разделы:
- Обзор
- коды FOURCC для 10-разрядных и 16-разрядных
- определения поверхности
- предпочитаемые форматы YUV
- связанные разделы
Обзор
Эти форматы используют представление фиксированной точки для каналов luma и chroma (C'b и C'r). Примеры значений масштабируются 8-разрядными значениями, используя коэффициент масштабирования 2^(n – 8), где n равно 10 или 16, как по разделам 7.7-7.8 и 7.11-7.12 SMPTE 274M. Преобразования точности можно выполнять с помощью простых битовых сдвигов. Например, если белый знак 8-разрядного формата равен 235, соответствующий 10-разрядный формат имеет белую точку в 940 (235 × 4).
16-разрядные представления, описанные здесь, используют небольшие значения WORD для каждого канала. 10-разрядные форматы также используют 16 бит для каждого канала, при этом наименьшее значение 6 битов равно нулю, как показано на следующей схеме.
схема
Так как 10-разрядные и 16-разрядные представления одного формата YUV имеют одинаковый макет памяти, можно привести 10-разрядное представление к 16-разрядному представлению без потери точности. Кроме того, можно привести 16-разрядное представление к 10-разрядному представлению. (Форматы Y416 и Y410 являются исключением из этого общего правила, однако, поскольку они не используют одинаковый макет памяти.)
Когда графическое оборудование считывает поверхность, содержащую 10-разрядное представление, оно должно игнорировать низкий порядок 6 бит каждого канала. Если поверхность содержит допустимые 16-разрядные данные, однако она должна быть определена как 16-разрядная поверхность.
В форматах, содержащих альфа, полностью прозрачный пиксель имеет альфа-значение нуля, а полностью непрозрачный пиксель имеет альфа-значение (2^n) – 1, где n — число альфа-битов. Альфа предполагается, что линейная величина применяется к каждому компоненту после преобразования компонента в нормализованную линейную форму.
Для изображений в памяти видео драйвер графики выбирает выравнивание памяти поверхности. Поверхность должна быть DWORD. То есть отдельные линии в поверхности гарантированно начинаются с 32-разрядной границы, хотя выравнивание может быть больше 32 битов. Источник (0,0) всегда является левым верхним углом поверхности.
В этой документации термин U эквивалентен Cb, а термин V эквивалентен Cr.
Коды FOURCC для 10-разрядных и 16-разрядных ЮВ
Коды FOURCC для форматов, описанных здесь, используют следующее соглашение:
Если формат является планарным, первый символ в коде FOURCC — P. Если формат упакован, первый символ — Y.
Второй символ в коде FOURCC определяется выборкой хрома, как показано в следующей таблице.
Выборка Chroma Буква кода FOURCC 4:4:4 '4' 4:2:2 '2' 4:2:1 '1' 4:2:0 '0' Последние два символа в FOURCC указывают количество битов на канал, либо "16" для 16 битов или "10" для 10 битов.
С помощью этой схемы определены следующие коды FOURCC. В настоящее время не определены форматы 4:2:1 для 10-разрядной или 16-разрядной ЮВ.
FOURCC | Описание |
---|---|
P016 | Planar, 4:2:0, 16-разрядная. |
P010 | Planar, 4:2:0, 10-разрядная. |
P216 | Planar, 4:2:2, 16-разрядная. |
P210 | Planar, 4:2:2, 10-разрядная версия. |
Y216 | Упакован, 4:2:2, 16-разрядная версия. |
Y210 | Упакован, 4:2:2, 10-разрядная версия. |
Y416 | Упакован, 4:4:4, 16-разрядная |
Y410 | Упакован, 4:4:4, 10-разрядная версия. |
Идентификаторы GUID подтипа также определены из этих четырех ЦК; см. идентификаторы guid графического интерфейса видео.
Определения Surface
В этом разделе описывается макет памяти каждого формата. В следующих описаниях термин WORD относится к 16-разрядному значению, а термин DWORD относится к 32-разрядному значению.
Форматы 4:2:0
Определены два формата 4:2:0 с кодами FOURCC P016 и P010. Они используют один и тот же макет памяти, но P016 использует 16 бит на канал, а P010 использует 10 бит на канал.
P016 и P010
В этих двух форматах все примеры Y отображаются в памяти в виде массива wordс четным числом строк. Поверхность может быть больше ширины плоскости Y. За этим массивом следует сразу массив word, содержащий переплетированные примеры, как показано на следующей схеме.
схема
Если объединенный массив U-V обращается в виде массива DWORD, наименьшее значение слова (LSW) содержит значение U, а самое важное слово (MSW) содержит значение V. Шаг объединенной плоскости U-V равен шагу плоскости Y. Самолет U-V имеет половину строк, как плоскость Y.
Эти два формата являются предпочтительными форматами 4:2:0 планарных пикселей для более точного представления YUV. Они должны быть промежуточным требованием для акселераторов DirectX Video Acceleration (DXVA), которые поддерживают 10-разрядное или 16-разрядное видео 4:2:0 видео.
Форматы 4:2:2
Определены четыре формата 4:2:2, два плана и два упакованных. Они имеют следующие коды FOURCC:
- P216
- P210
- Y216
- Y210
P216 и P210
В этих двух планарных форматах все примеры Y сначала отображаются в памяти в виде массива wordс четным числом строк. Поверхность может быть больше ширины плоскости Y. За этим массивом следует сразу массив word, содержащий переплетированные примеры, как показано на следующей схеме.
схема
Если объединенный массив U-V обращается в виде массива DWORD, LSW содержит значение U, а MSW содержит значение V. Шаг объединенной плоскости U-V равен шагу плоскости Y. Плоскость U-V имеет то же количество строк, что и плоскость Y.
Эти два формата являются предпочтительными форматами 4:2:2 планарных пикселей для более точного представления YUV. Ожидается, что они будут промежуточным требованием для акселераторов DirectX Video Acceleration (DXVA), поддерживающих 10-разрядное или 16-разрядное видео 4:2:2.
Y216 и Y210
В этих двух упакованных форматах каждая пара пикселей хранится в виде массива из четырех word, как показано на следующем рисунке.
Первый WORD в массиве содержит первый пример Y в паре, второй WORD содержит пример U, третий WORD содержит второй пример Y, а четвертый WORD содержит пример V.
Y210 идентичен Y216, за исключением того, что каждый пример содержит только 10 бит значительных данных. Наименьшее значение 6 битов равно нулю, как описано ранее.
Форматы 4:4:4
Определены два формата 4:4:4 с кодами FOURCC Y410 и Y416. Оба являются упакованными форматами.
Y410
Этот формат представляет собой 10-разрядное представление, включающее 2 бита альфа.< Каждый пиксель закодирован как один DWORD с макетом памяти, показанным на следующей схеме.
Биты 0-9 содержат пример U, биты 10-19 содержат пример Y, биты 20-29 содержат образец V, а биты 30-31 содержат альфа-значение. Чтобы указать, что пиксель полностью непрозрачн, приложение должно задать два альфа-бита равным 0x03.
Y416
Этот формат представляет собой 16-разрядное представление, включающее 16 бит альфа-файлов. Каждый пиксель закодирован как пара DWORDs, как показано на следующем рисунке.
Биты 0-15 содержат пример U, биты 16-31 содержат пример Y, биты 32-47 содержат образец V, а биты 48-63 содержат альфа-значение.
Чтобы указать, что пиксель полностью непрозрачн, приложение должно задать два альфа-байта равным 0xFFFF. Этот формат предназначен в первую очередь в качестве промежуточного формата во время обработки изображений, чтобы избежать накопления ошибок.
Предпочитаемые форматы YUV
В следующей таблице перечислены предпочитаемые форматы YUV, включая 8-разрядные форматы.
Формат | Выборка Chroma | Упакован или планар | Биты на канал |
---|---|---|---|
AYUV | 4:4:4 | Упакованный | 8 |
Y410 | 4:4:4 | Упакованный | 10 |
Y416 | 4:4:4 | Упакованный | 16 |
AI44 | 4:4:4 | Упакованный | Палеттизированный |
YUY2 | 4:2:2 | Упакованный | 8 |
Y210 | 4:2:2 | Упакованный | 10 |
Y216 | 4:2:2 | Упакованный | 16 |
P210 | 4:2:2 | Плоскостной | 10 |
P216 | 4:2:2 | Плоскостной | 16 |
NV12 | 4:2:0 | Плоскостной | 8 |
P010 | 4:2:0 | Плоскостной | 10 |
P016 | 4:2:0 | Плоскостной | 16 |
NV11 | 4:1:1 | Плоскостной | 8 |
Рекомендуется, чтобы объект поддерживал заданную битовую глубину и схему выборки хрома, он должен поддерживать соответствующие форматы YUV, перечисленные в этой таблице. (Объекты могут поддерживать дополнительные форматы, не перечисленные здесь.)
Связанные разделы
-
рекомендуемые 8-разрядные форматы YUV для отрисовки видео
-
идентификатор ы GUID видео