структура 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)

См. также раздел

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps