Compartilhar via


Comandos de controle macroblock

A geração de cada macroblock decodificado durante a decodificação de imagem compactada é regida por uma estrutura de comando de controle macroblock. Há quatro estruturas de comando de controle macroblock definidas no arquivo de cabeçalho dxva.h :

DXVA_MBctrl_I_HostResidDiff_1

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_HostResidDiff_1

DXVA_MBctrl_P_OffHostIDCT_1

As estruturas definidas explicitamente em dxva.h são casos especiais de um design genérico usado para comandos de controle de macroblock no DirectX VA. Para obter uma descrição desse design genérico, consulte Forma genérica de estruturas de comando de controle macroblock.

A seleção da estrutura de comandos de controle macroblock a ser usada baseia-se no tipo de imagem a ser decodificada e em como ela será decodificada. Os seguintes membros e sinalizadores de estrutura determinam o tipo de imagem, as opções de decodificação e quais das quatro estruturas de controle de macrobloco do DirectX VA serão usadas:

  • Os membros bPicIntra, bChromaFormat, bPicOBMC, bPicBinPB, bPic4MVallowed e bMV_RPS da estrutura DXVA_PictureParameters .

  • O membro bConfigResidDiffHost da estrutura DXVA_ConfigPictureDecode .

  • O sinalizador HostResidDiff (bit 10 no membro wMBtype de cada estrutura de controle de macroblock).

Os valores desses membros e sinalizadores de estrutura são mostrados nas seções a seguir.

DXVA_MBctrl_I_HostResidDiff_1

A estrutura DXVA_MBctrl_I_HostResidDiff_1 é usada para imagens intra com decodificação de diferença residual baseada em host. Os seguintes membros e sinalizadores de estrutura devem ser iguais aos valores indicados:

  • bPicIntra deve ser igual a 1 (intra pictures).

  • bChromaFormat deve ser igual a 1 (amostragem de 4:2:0).

  • HostResidDiff deve ser igual a 1 (IDCT baseada em host).

  • bConfigResidDiffHost deve ser igual a 1 (decodificação de diferença residual baseada em host).

DXVA_MBctrl_I_OffHostIDCT_1

A estrutura DXVA_MBctrl_I_OffHostIDCT_1 é usada para imagens intra com amostragem 4:2:0 com decodificação de diferença residual fora do host. Os seguintes membros e sinalizadores de estrutura devem ser iguais aos valores indicados:

  • bPicIntra deve ser igual a 1 (intra pictures).

  • bChromaFormat deve ser igual a 1 (amostragem de 4:2:0).

  • HostResidDiff deve ser igual a zero (IDCT fora do host).

  • bConfigResidDiffHost deve ser igual a zero (decodificação de diferença residual fora do host).

DXVA_MBctrl_P_HostResidDiff_1

A estrutura de DXVA_MBctrl_P_HostResidDiff_1 é usada para imagens P e B com decodificação de diferença residual baseada em host. Os seguintes processos de controle de macroblock não são usados: OBMC, uso de quatro vetores de movimento por macroblock para a parte B de uma imagem PB e uso da seleção de imagem de referência de vetor de movimento.

Os seguintes membros e sinalizadores de estrutura devem ser iguais aos valores indicados:

  • bPicIntra deve ser igual a zero (decodificação para vetores de imagem P e imagem B ou movimento de ocultação na imagem I).

  • bChromaFormat deve ser igual a 1 (amostragem de 4:2:0).

  • HostResidDiff deve ser igual a 1 (IDCT baseada em host).

  • bPicOBMC deve ser igual a zero (OBMC não usado).

  • bMV_RPS deve ser igual a zero (seleção de imagem de referência de vetor de movimento não usada).

  • Pelo menos um dos bPicBinPB (imagem B na compensação de movimento de quadro PB não usado) e bPic4MVallowed (quatro vetores de movimento de referência de encaminhamento por macroblock não usado) devem ser iguais a zero.

  • bConfigResidDiffHost deve ser igual a 1 (decodificação de diferença residual baseada em host).

DXVA_MBctrl_P_OffHostIDCT_1

A estrutura DXVA_MBctrl_P_OffHostIDCT_1 é usada para imagens P e B com amostragem de 4:2:0 com decodificação de diferença residual fora do host. Os seguintes processos de controle de macroblock não são usados: OBMC, uso de quatro vetores de movimento por macroblock para a parte B de uma imagem PB e uso da seleção de imagem de referência de vetor de movimento.

Os seguintes membros e sinalizadores de estrutura devem ser iguais aos valores indicados:

  • o membro bPicIntra da estrutura DXVA_PictureParameters deve ser igual a zero (decodificação para imagens P e B ou vetores de movimento de ocultação em imagens I).

  • bChromaFormat deve ser igual a 1 (amostragem de 4:2:0).

  • HostResidDiff deve ser igual a zero (IDCT fora do host).

  • bPicOBMC deve ser igual a zero (OBMC não usado).

  • bMV_RPS deve ser igual a zero (seleção de imagem de referência de vetor de movimento não usada).

  • Pelo menos um dos bPicBinPB (imagem B na compensação de movimento de quadro PB não usado) e bPic4MVallowed (quatro vetores de movimento de referência de encaminhamento por macroblock não usado) devem ser iguais a zero.

  • bConfigResidDiffHost deve ser igual a zero (decodificação de diferença residual fora do host).