Поделиться через


10-разрядные и 16-разрядные форматы видео YUV

В этом разделе описываются 10-и 16-разрядные форматы YUV, которые рекомендуются для записи, обработки и отображения видео в операционной системе Microsoft Windows.

В этом разделе содержатся следующие разделы:

Обзор

Эти форматы используют представление фиксированной точки для каналов 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-разрядным представлением

Так как 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, содержащий переплетированные примеры, как показано на следующей схеме.

схема с макетом пикселей p016 и p010 пикселей

Если объединенный массив 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, содержащий переплетированные примеры, как показано на следующей схеме.

схема с макетом пикселей p216 и p210 пикселей

Если объединенный массив 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, как показано на следующем рисунке.

диаграмме с макетом пикселей y216 и y210.

Первый 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 с макетом памяти, показанным на следующей схеме.

диаграмме с макетом пикселей y410.

Биты 0-9 содержат пример U, биты 10-19 содержат пример Y, биты 20-29 содержат образец V, а биты 30-31 содержат альфа-значение. Чтобы указать, что пиксель полностью непрозрачн, приложение должно задать два альфа-бита равным 0x03.

Y416

Этот формат представляет собой 16-разрядное представление, включающее 16 бит альфа-файлов. Каждый пиксель закодирован как пара DWORDs, как показано на следующем рисунке.

диаграмме с макетом пикселей y416.

Биты 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 видео

Типы мультимедиа видео