структура DXVADDI_CONFIGPICTUREDECODE (d3dumddi.h)
Структура DXVADDI_CONFIGPICTUREDECODE описывает конфигурацию для декодирования сжатых рисунков.
Синтаксис
typedef struct _DXVADDI_CONFIGPICTUREDECODE {
[in] GUID guidConfigBitstreamEncryption;
[in] GUID guidConfigMBcontrolEncryption;
[in] GUID guidConfigResidDiffEncryption;
[in] UINT ConfigBitstreamRaw;
[in] UINT ConfigMBcontrolRasterOrder;
[in] UINT ConfigResidDiffHost;
[in] UINT ConfigSpatialResid8;
[in] UINT ConfigResid8Subtraction;
[in] UINT ConfigSpatialHost8or9Clipping;
[in] UINT ConfigSpatialResidInterleaved;
[in] UINT ConfigIntraResidUnsigned;
[in] UINT ConfigResidDiffAccelerator;
[in] UINT ConfigHostInverseScan;
[in] UINT ConfigSpecificIDCT;
[in] UINT Config4GroupedCoefs;
[in] USHORT ConfigMinRenderTargetBuffCount;
[in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;
Члены
[in] guidConfigBitstreamEncryption
GUID шифрования для настройки битового потока.
[in] guidConfigMBcontrolEncryption
GUID шифрования для настройки элемента управления макроблоком.
[in] guidConfigResidDiffEncryption
GUID шифрования для настройки декодирования остаточных различий.
[in] ConfigBitstreamRaw
Индикатор обработки битового потока. Значение 1 в этом элементе указывает, что данные рисунка отправляются в битовые буферы в виде необработанного содержимого битового потока. Нулевое значение указывает, что данные рисунка отправляются с помощью буферов команд управления макроблоком.
Установите для этого элемента значение 0, если элемент ConfigResidDiffHost или ConfigResidDiffAccelerator равен 1. Значение 0 в ConfigBitstreamRaw является базовым уровнем поддержки. Предпочтительнее значение 1.
[in] ConfigMBcontrolRasterOrder
Значение UINT, указывающее, находятся ли команды управления макроблоком в порядке растрового сканирования или в произвольном порядке. Значение 1 в этом элементе указывает, что команды элемента управления макроблоком в каждом буфере команд управления макроблоком находятся в порядке растрового сканирования. Нулевое значение указывает на произвольный порядок. Драйвер может ограничить поддержку порядка растрового сканирования; однако драйвер должен поддерживать произвольный и растровый порядок сканирования.
[in] ConfigResidDiffHost
Конфигурация разницы остатков узла. Значение 1 в этом элементе указывает, что некоторые данные декодирования остаточных различий, возможно, отправляются в виде блоков в пространственном домене от узла. Нулевое значение указывает, что данные пространственной области не отправляются. Задайте для этого элемента нулевое значение, если элемент ConfigBitstreamRaw равен 1. Акселератор должен поддерживать как ноль, так и 1.
[in] ConfigSpatialResid8
Размер слова, используемый для представления остаточных блоков пространственной области для прогнозируемых (неинтровых) изображений при использовании декодирования остаточных различий на основе узла (то есть, когда член ConfigResidDiffHost имеет значение 1).
Если значение ConfigSpatialResid8 равно 1, а ConfigResidDiffHost равно 1, узел отправляет блоки пространственного домена остаточной разницы для неинттровых макроблоков, использующих 8-разрядные образцы со знаком, и для внутренних макроблоков в прогнозируемых (nonintra) изображениях в формате, зависящем от члена ConfigIntraResidUnsigned следующим образом:
Если значение ConfigIntraResidUnsigned равно нулю, блоки пространственного домена для макроблоков отправляются в виде 8-разрядных целочисленных значений со знаком, относящихся к постоянному ссылочному значению 128.
Если значение ConfigIntraResidUnsigned равно 1, блоки пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений без знака, относящихся к значению постоянной ссылки, равному нулю.
Если значение ConfigSpatialResid8 равно нулю, а ConfigResidDiffHost равно 1, узел отправляет остаточные разностные пространственные блоки данных для неинтранных макроблоков, использующих 16-разрядные образцы со знаком, и для внутренних макроблоков в прогнозируемых (nonintra) изображениях в формате, зависящем от ConfigIntraResidUnsigned следующим образом:
Если значение ConfigIntraResidUnsigned равно нулю, блоки пространственного домена для макроблоков отправляются в виде 16-разрядных целочисленных значений со знаком, относящихся к постоянному ссылочному значению 2^(BPP-1), где BPP — это число битов на выборку несжатого видео (обычно это значение 8).
Если значение ConfigIntraResidUnsigned равно 1, блоки пространственного домена для макроблоков отправляются в виде 16-разрядных целочисленных значений без знака, относящихся к нулю постоянного ссылочного значения.
Значение ConfigSpatialResid8 должно быть равным нулю, если ConfigResidDiffHost равно нулю. Если значение ConfigResidDiffHost равно 1, значение ConfigSpatialResid8 может быть любым.
Примечание
Для внутренних изображений с BPP равным 8 блокам пространственной области необходимо отправлять с помощью 8-разрядных примеров. Для внутренних изображений с BPP больше 8 блоков пространственной области необходимо отправлять с помощью 16-разрядных примеров. Если значение ConfigIntraResidUnsigned равно нулю, эти примеры отправляются в виде целочисленных значений со знаком, относящихся к постоянному значению ссылки 2^(BPP-1). Если значение ConfigIntraResidUnsigned равно 1, эти примеры отправляются в виде целочисленных значений без знака, относящихся к постоянному значению ссылки, равному нулю.
[in] ConfigResid8Subtraction
Значение UINT, указывающее, вычитаются или добавляются 8-разрядные блоки разных переполнений. Если для этого элемента задано значение 1, то 8-разрядные блоки разных переполнений вычитаются, а не добавляются. Этот элемент должен быть равен нулю, если только ConfigSpatialResid8 не имеет значения 1. Если значение ConfigSpatialResid8 равно 1, предпочтительное значение для ConfigResid8Subtraction равно 1. Возможность вычитать различия, а не добавлять их, позволяет полностью соответствовать диапазону от –255 до +255 значений, необходимых в спецификациях декодера видео. Эта возможность обеспечивает полное соответствие требованиям, так как значение +255 не может быть представлено как сложение двух 8-разрядных чисел со знаком, но любое число в диапазоне от -255 до +255 может быть представлено как разница между двумя 8-разрядными числами со знаком (+255 равно +127 минус -128).
[in] ConfigSpatialHost8or9Clipping
Значение UINT, указывающее, выполняется ли вырезка узлом. Если для этого элемента задано значение 1, блоки пространственного домена для внутренних макроблоков обрезаются в 8-разрядный диапазон на узле, а пространственные блоки домена для неинтовых макроблоков обрезаются до 9-разрядного диапазона на узле. Нулевое значение указывает, что узел не выполняет такое вырезание. Этот член должен быть равен нулю, если только для ConfigSpatialResid8 не задано значение 0, а для ConfigResidDiffHost не задано значение 1. Предпочтительное значение для ConfigSpatialHost8or9Clipping равно нулю.
[in] ConfigSpatialResidInterleaved
Значение UINT, указывающее, отправляются ли данные остаточной разницы пространственного домена в форме с чередованием хрома. Если для этого элемента задано значение 1, все данные остаточной разницы пространственного домена отправляются в форме чередование хромов, которая соответствует шаблону чередование хрома в формате YUV. Этот элемент должен быть равен нулю, если только ConfigResidDiffHost не имеет значения 1, а формат YUV — NV12 или NV21. Предпочтительное значение для ConfigSpatialResidInterleaved равно нулю.
[in] ConfigIntraResidUnsigned
Метод представления блоков пространственной области с данными остаточной разницы для внутренних блоков при использовании разностного декодирования на основе узла (то есть, когда член ConfigResidDiffHost равен 1).
Если для ConfigIntraResidUnsigned задано нулевое значение, а для ConfigResidDiffHost задано значение 1, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются следующим образом:
Если элемент ConfigSpatialResid8 равен нулю, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 16-разрядных целочисленных значений со знаком, относящихся к постоянному ссылочному значению 2^(BPP-1), где BPP — это число битов на выборку несжатого видео (обычно это значение 8).
На неинтальном рисунке, если ConfigSpatialResid8 имеет значение 1, и на рисунке внутри, если значение BPP равно 8 (независимо от значения ConfigSpatialResid8), блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются в виде 8-разрядных целочисленных значений со знаком, которые относятся к постоянному ссылочному значению 128.
Если для параметра ConfigIntraResidUnsigned задано значение 1, а для ConfigResidDiffHost задано значение 1, блоки данных остаточной разницы пространственного домена для внутренних макроблоков отправляются следующим образом:
Если значение ConfigSpatialResid8 равно нулю, блоки данных остаточной разницы пространственного домена для внутри макроблоков отправляются в виде 16-разрядных целочисленных значений без знака, относящихся к постоянному значению ссылки, равному нулю.
На неинтальном рисунке, если значение ConfigSpatialResid8 равно 1, и на рисунке внутри, если значение BPP равно 8 (независимо от значения ConfigSpatialResid8), блоки данных остаточной разницы пространственного домена для макроблоков отправляются в виде 8-разрядных целочисленных значений без знака, которые относятся к постоянному значению ссылки, равному нулю.
Значение ConfigIntraResidUnsigned должно быть равно нулю, если ConfigResidDiffHost не равно 1. Предпочтительное значение для ConfigIntraResidUnsigned равно нулю.
[in] ConfigResidDiffAccelerator
Конфигурация остаточной разницы акселератора. Значение 1 в этом элементе указывает, что блоки коэффициентов домена преобразования могут быть отправлены с узла для IDCT на основе ускорителя. Нулевое значение указывает, что IDCT на основе ускорителя не используется.
Если член ConfigResidDiffHost и ConfigResidDiffAccelerator имеют значение 1, декодирование остаточных различий выполняется на узле, а некоторые — в ускорителе, как указано в командах управления на уровне макроблока. Значение ConfigResidDiffAccelerator должно быть равно нулю, если член bConfigBitstreamRaw равен 1.
Предпочтительным значением для ConfigResidDiffAccelerator является 1.
Если для ConfigResidDiffAccelerator и ConfigResidDiffHost задано значение 1, декодирование остаточных различий можно совместно использовать между узлом и ускорителем на основе макроблока. Этот общий доступ является еще более высоким уровнем возможностей акселератора, чем если для ConfigResidDiffAccelerator задано значение 1, а для ConfigResidDiffHost — нулевое значение.
[in] ConfigHostInverseScan
Значение UINT, указывающее, выполняется ли обратная проверка для обработки блоков домена преобразования на узле или в ускорителе. Значение 1 в этом элементе указывает, что обратный просмотр для обработки блоков домена преобразования выполняется на узле, а вместо этого отправляются абсолютные индексы для любых коэффициентов преобразования. Нулевое значение указывает, что в ускорителе выполняется обратное сканирование. Значение ConfigHostInverseScan должно быть равно нулю, если ConfigResidDiffAccelerator равно нулю или если член Config4GroupedCoefs равен 1.
Предпочтительным значением для ConfigHostInverseScan является 1, если ConfigResidDiffAccelerator равно 1.
[in] ConfigSpecificIDCT
Значение UINT, указывающее использование определенного метода IDCT для IDCT вне узла. Значение 1 в этом элементе указывает на использование IDCT, указанного в приложении W к Рекомендации ITU-T H.263, о котором вы можете узнать на веб-сайте Международного союза телекоммуникаций . Нулевое значение указывает, что для IDCT вне узла можно использовать любой совместимый IDCT. (Значения, отличные от нуля и 1, зарезервированы.)
Значение ConfigSpecificIDCT должно быть равно нулю, если ConfigResidDiffAccelerator равно нулю, что указывает на декодирование остаточных различий на основе узла.
Примечание
ConfigSpecificIDCT не должно иметь значение 1 для использования с видео MPEG-2.
[in] Config4GroupedCoefs
Значение UINT, указывающее, как отправляются коэффициенты преобразования для IDCT вне узла. Значение 1 в этом элементе указывает, что коэффициенты преобразования для IDCT вне узла отправляются с использованием структуры DXVA_TCoef4Group , а не структуры DXVA_TCoefSingle . Значение Config4GroupedCoefs равно нулю, если ConfigResidDiffAccelerator равно нулю или если ConfigHostInverseScan имеет значение 1.
Предпочтительное значение для Config4GroupedCoefs равно нулю, если ConfigResidDiffAccelerator равно 1.
[in] ConfigMinRenderTargetBuffCount
Значение USHORT, указывающее минимальное количество целевых буферов отрисовки.
[in] ConfigDecoderSpecific
Значение USHORT, указывающее функции декодера для настройки. Сведения о функциях декодера см. в спецификации для этого декодера. Список декодеров см. в разделе Предоставление возможностей для декодирования видео.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |