структура D3D11_VIDEO_DECODER_CONFIG (d3d11.h)
Описывает конфигурацию декодера Microsoft Direct3D 11 для DirectX Video Acceleration (DXVA).
Синтаксис
typedef struct D3D11_VIDEO_DECODER_CONFIG {
GUID guidConfigBitstreamEncryption;
GUID guidConfigMBcontrolEncryption;
GUID guidConfigResidDiffEncryption;
UINT ConfigBitstreamRaw;
UINT ConfigMBcontrolRasterOrder;
UINT ConfigResidDiffHost;
UINT ConfigSpatialResid8;
UINT ConfigResid8Subtraction;
UINT ConfigSpatialHost8or9Clipping;
UINT ConfigSpatialResidInterleaved;
UINT ConfigIntraResidUnsigned;
UINT ConfigResidDiffAccelerator;
UINT ConfigHostInverseScan;
UINT ConfigSpecificIDCT;
UINT Config4GroupedCoefs;
USHORT ConfigMinRenderTargetBuffCount;
USHORT ConfigDecoderSpecific;
} D3D11_VIDEO_DECODER_CONFIG;
Члены
guidConfigBitstreamEncryption
Если буферы данных битового потока шифруются с помощью механизма D3D11CryptoSession, этот GUID должен иметь нулевое значение. Если шифрование не применяется, значение будет DXVA_NoEncrypt. Если значение ConfigBitstreamRaw равно 0, значение должно быть DXVA_NoEncrypt.
guidConfigMBcontrolEncryption
Если буферы данных элемента управления макроблоками шифруются с помощью механизма D3D11CryptoSession, этот GUID должен иметь нулевое значение. Если шифрование не применяется, значение будет DXVA_NoEncrypt. Если значение ConfigBitstreamRaw равно 1, значение должно быть DXVA_NoEncrypt.
guidConfigResidDiffEncryption
Если буферы данных декодирования остаточной разницы шифруются с помощью механизма D3D11CryptoSession, этот GUID должен иметь нулевое значение. Если шифрование не применяется, значение будет DXVA_NoEncrypt. Если значение ConfigBitstreamRaw равно 1, значение должно быть DXVA_NoEncrypt.
ConfigBitstreamRaw
Указывает, отправляет ли декодер узла необработанные данные битового потока. Если значение равно 1, данные для рисунков будут отправляться в буферы битового потока в виде необработанного содержимого битового потока. Если значение равно 0, данные рисунка будут отправляться с помощью буферов команд управления макроблоком. Если значение ConfigResidDiffHost или ConfigResidDiffAccelerator равно 1, значение должно быть равно 0.
ConfigMBcontrolRasterOrder
Указывает, находятся ли команды управления макроблоком в порядке растрового сканирования или в произвольном порядке. Если значение равно 1, команды элемента управления макроблоком в каждом буфере команд элемента управления макроблоком находятся в порядке растрового сканирования. Если значение равно 0, порядок является произвольным. Для некоторых типов битовых потоков принудительный порядок растров либо значительно увеличивает количество необходимых буферов управления макроблоками, которые необходимо обработать, либо требует переупорядочения сведений об элементе управления. Поэтому поддержка произвольного порядка может быть более эффективной.
ConfigResidDiffHost
Содержит конфигурацию разницы остатков узла. Если значение равно 1, некоторые данные декодирования остаточных различий могут быть отправлены в виде блоков в пространственном домене от узла. Если значение равно 0, данные пространственной области отправляться не будут.
ConfigSpatialResid8
Указывает размер слов, используемый для представления остаточных блоков пространственной области для прогнозируемых (не внутри) изображений при использовании декодирования остаточных различий на основе узла.
Если значение ConfigResidDiffHost равно 1, а ConfigSpatialResid8 равно 1, узел будет отправлять блоки пространственного домена остаточной разницы для макроблоков, не входящих в макроблоки, с помощью 8-разрядных подписанных примеров и для внутренних макроблоков в прогнозируемых (не внутри) изображениях в формате, зависящем от значения ConfigIntraResidUnsigned:
- Если значение ConfigIntraResidUnsigned равно 0, блоки пространственного домена для макроблоков отправляются в виде 8-разрядных целочисленных значений со знаком относительно постоянного значения ссылки 2^(BPP–1).
- Если значение ConfigIntraResidUnsigned равно 1, блоки пространственного домена для макроблоков отправляются в виде 8-разрядных целочисленных значений без знака относительно постоянного значения ссылки 0.
- Если значение ConfigIntraResidUnsigned равно 0, блоки пространственного домена для макроблоков отправляются в виде 16-разрядных целочисленных значений со знаком относительно постоянного значения ссылки 2^(BPP–1).
- Если значение ConfigIntraResidUnsigned равно 1, блоки пространственного домена для макроблоков отправляются в виде 16-разрядных целочисленных значений без знака относительно постоянного значения ссылки 0.
Для внутренних изображений блоки пространственной области должны отправляться с использованием 8-разрядных выборок, если битов на пиксель (BPP) равно 8, и с использованием 16-разрядных выборок, если BPP > 8. Если значение ConfigIntraResidUnsigned равно 0, эти примеры отправляются как целочисленные значения со знаком относительно постоянного ссылочного значения 2^(BPP–1), а если значение ConfigIntraResidUnsigned равно 1, эти примеры отправляются как целочисленные значения без знака относительно постоянного ссылочного значения 0.
ConfigResid8Subtraction
Если значение равно 1, 8-разрядные блоки переполнения разности вычитаются, а не добавляются. Значение должно быть равно 0, если только ConfigSpatialResid8 не равно 1.
Возможность вычитать различия, а не добавлять их, позволяет полностью соответствовать полному диапазону значений ±255, необходимым в спецификациях декодера видео. поскольку значение +255 не может быть представлено как сложение двух 8-разрядных чисел со знаком, но любое число в диапазоне ±255 может быть представлено как разница между двумя 8-разрядными числами со знаком (+255 = +127 минус –128).
ConfigSpatialHost8or9Clipping
Если значение равно 1, блоки пространственного домена для внутренних макроблоков должны быть обрезан до 8-разрядного диапазона на узле, а блоки пространственного домена для макроблоков, не являющихся внутренними, должны быть обрезаются до 9-разрядного диапазона на узле. Если значение равно 0, узел не требует такой обрезки.
Значение должно быть равно 0, если только ConfigSpatialResid8 не равно 0, а ConfigResidDiffHost не равно 1.
ConfigSpatialResidInterleaved
Если значение равно 1, все данные остаточной разницы пространственного домена должны отправляться в форме чередование хромов, соответствующей шаблону чередование хрома в формате YUV. Значение должно быть равно 0, если только ConfigResidDiffHost не равно 1, а формат YUV не равен NV12 или NV21.
ConfigIntraResidUnsigned
Указывает метод представления блоков пространственной области с данными остаточной разницы для внутренних блоков при использовании декодирования различий на основе узла.
Если значение ConfigResidDiffHost равно 1, а ConfigIntraResidUnsigned равно 0, блоки данных остаточной разницы пространственных доменов для внутренних макроблоков должны отправляться следующим образом:
- Если значение ConfigSpatialResid8 равно 0, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 16-разрядных целочисленных значений со знаком относительно постоянного ссылочного значения 2^(BPP–1).
- Если значение ConfigSpatialResid8 равно 1, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений со знаком относительно постоянного ссылочного значения 2^(BPP–1).
- На рисунке внутри, если значение BPP равно 8, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений со знаком относительно постоянного ссылочного значения 2^(BPP–1), независимо от значения ConfigSpatialResid8.
- Если значение ConfigSpatialResid8 равно 0, то блоки данных остаточной разницы пространственного домена для внутренних макроблоков должны отправляться в виде 16-разрядных целочисленных значений без знака относительно постоянного значения ссылки 0.
- Если значение ConfigSpatialResid8 равно 1, на рисунке, отличном от внутри, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений без знака относительно постоянного ссылочного значения 0.
- На рисунке внутри, если значение BPP равно 8, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений без знака относительно постоянного ссылочного значения 0, независимо от значения ConfigSpatialResid8.
ConfigResidDiffAccelerator
Если значение равно 1, блоки коэффициентов домена преобразования могут отправляться с узла для IDCT на основе ускорителя. Если значение равно 0, idCT на основе ускорителя использовать не будет. Если ConfigResidDiffHost и ConfigResidDiffAccelerator имеют значение 1, это означает, что декодирование некоторых остаточных различий будет выполняться на узле, а некоторые — в ускорителе, как указано в командах управления на уровне макроблока.
Значение должно быть равно 0, если значение ConfigBitstreamRaw равно 1.
ConfigHostInverseScan
Если значение равно 1, обратный просмотр для обработки блоков домена преобразования будет выполняться на узле, а вместо этого будут отправляться абсолютные индексы для любых коэффициентов преобразования. Если значение равно 0, в ускорителе будет выполнена обратная проверка.
Значение должно быть равно 0, если ConfigResidDiffAccelerator равно 0 или если Config4GroupedCoefs равно 1.
ConfigSpecificIDCT
Если значение равно 1, используется IDCT, указанный в приложении W к Рекомендации ITU-T H.263. Если значение равно 0, для IDCT вне узла можно использовать любой совместимый IDCT.
Приложение H.263 не соответствует требованиям IDCT в исправлении MPEG-2 2, поэтому значение не должно быть 1 для использования с видео MPEG-2.
Значение должно быть равным 0, если ConfigResidDiffAccelerator равно 0, что указывает на декодирование остаточных различий на основе узла.
Config4GroupedCoefs
Если значение равно 1, коэффициенты преобразования для IDCT вне узла будут отправляться с использованием структуры DXVA_TCoef4Group . Если значение равно 0, используется структура DXVA_TCoefSingle . Значение должно быть равно 0, если ConfigResidDiffAccelerator равно 0 или если ConfigHostInverseScan равно 1.
ConfigMinRenderTargetBuffCount
Указывает, сколько кадров одновременно обрабатывает устройство декодера.
ConfigDecoderSpecific
Содержит сведения о конфигурации для декодера.
Требования
Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
Верхняя часть | d3d11.h |