共用方式為


DXVA_BlendCombination結構 (dxva.h)

主機譯碼器會將DXVA_BlendCombination結構傳送至快捷鍵,以指定如何從來源圖片建立混合的圖片,以及隨附 Alpha 混合資訊的圖形影像。

語法

typedef struct _DXVA_BlendCombination {
  WORD             wPictureSourceIndex;
  WORD             wBlendedDestinationIndex;
  RECT             PictureSourceRect16thPel;
  RECT             PictureDestinationRect;
  RECT             GraphicSourceRect;
  RECT             GraphicDestinationRect;
  WORD             wBlendDelay;
  BYTE             bBlendOn;
  BYTE             bWholePlaneAlpha;
  DXVA_AYUVsample2 OutsideYUVcolor;
} DXVA_BlendCombination, *LPDXVA_BlendCombination;

成員

wPictureSourceIndex

指定未壓縮的介面索引,如在呼叫 DdMoCompBeginFrame 之前呼叫要與圖形結合之圖片之 lpInputData 成員所指向 DD_BEGINMOCOMPFRAMEDATA之 lpInputData 成員所定義的 DWORD 所定義。 當 DXVA_ConfigAlphaCombinebConfigBlendType 成員為 1) 時,0xFFFF後端硬體 Alpha 混合正在使用 (此值。

wBlendedDestinationIndex

指定要建立之合併圖片之 DdMoCompBeginFrame 之前呼叫 lpInputData 成員所指向的 DWORD 所定義的未壓縮表面索引。DD_BEGINMOCOMPFRAMEDATA的 lpInputData 成員所定義。 當 DXVA_ConfigAlphaCombine 的 bConfigBlendType 成員為 1) 時,0xFFFF後端硬體 Alpha 混合正在使用 (值。

除非使用後端硬體 Alpha 混合,否則這個值不能等於 wPictureSourceIndex

PictureSourceRect16thPel

指定要與圖形影像合併為 RECT 結構的來源圖片區域。 維度的指定單位為亮度元件樣本值之間的距離 1-16 分之一。 (換句話說,RECT 結構中的成員是固定點表示法,在二進位點之前有 28 位,二進位點之後有 4 位。) 此一十六個樣本精確度可讓 PictureSourceRect16thPel 包含與 MPEG-2 影片中的 frame_centre_horizontal_offsetframe_centre_vertical_offset 移動瀏覽變數相同的精確度。

如果DXVA_ConfigAlphaCombine的 bConfigPictureResizing 成員為零, PictureSourceRect16thPel 中的所有維度都必須是 16 的整數倍數。

PictureDestinationRect

將目的地圖片的區域指定為 RECT 結構。 這會包含 PictureSourceRect16thPel 為來源圖片定義的區域。

如果DXVA_ConfigAlphaCombine的 bConfigPictureResizing 成員為零,PictureDestinationRect 指定的區域必須具有與 PictureSourceRect16thPel 所指定的區域相同的寬度和高度。 如果 PictureDestinationRect 的大小與 PictureSourceRect16thPel 不同,則不會指定要套用的重新取樣方法,但必須具有至少等於雙線性重新取樣的品質。

GraphicSourceRect

將來源圖形影像的區域指定為 RECT 結構。 此區域會與 PictureSourceRect16thPel 所指定的來源圖片部分結合,以建立 Alpha 混合的圖片。

GraphicDestinationRect

將目的地圖形影像的區域指定為 RECT 結構。

如果 DXVA_ConfigAlphaCombine的 bConfigGraphicResizing 成員為零,則目的地圖片的寬度和高度必須與 GraphicSourceRect 所指定的區域相同。 如果 GraphicDestinationRect 的大小與 GraphicSourceRect 不同,則不會指定要套用至圖形影像的重新取樣方法。 不過,所使用的重新取樣方法品質至少相當於代表混合資訊的 AYUV 表面的雙線性重新取樣。

wBlendDelay

指定混合組合生效之前的延遲毫秒數。 例如,如果後端硬體混合正在使用 (,如果 DXVA_ConfigAlphaCombinebConfigBlendType 成員為 1 ) ,wBlendDelay 就會包含混合組合生效之前的延遲毫秒數。 如果前端混合正在使用中,這個成員就沒有意義,而且必須是零。

bBlendOn

指定混合組合作業何時啟動和停止。 如果使用後端硬體混合,則會從混合組合作業中指定的時間套用混合, (bBlendOn 等於 1) ,直到新的混合組合運行時間 (bBlendOn 等於 1) ,或直到混合組合作業 (bBlendOn 等於零) 為止。 如果後端硬體混合正在使用中,且 bBlendOn 為零,則 Alpha-blend 組合緩衝區中唯一具有意義的其他值是 wBlendDelay。 如果前端混合正在使用中,這個成員就沒有意義,而且必須是零 。

bWholePlaneAlpha

包含圖形影像 Alpha 色板的不透明度乘數。 值零表示圖形影像是透明的 (,因此圖形內容不會影響產生的混合圖片) 。 值 255 表示圖形影像使用其完整樣本不透明度。 如果 bWholePlaneAlpha 不等於零,則指定的混合是將圖形內容中每個位置的不透明度乘以 (bWholePlaneAlpha+1) /256。 對於 bWholePlaneAlpha 的零值,要使用的混合是圖形影像中指定的不透明度,而不需改變。 如果 DXVA_ConfigAlphaCombinebConfigWholePlaneAlpha 成員為零,這必須等於 255。

OutsideYUVcolor

指出 PictureDestinationRect 外部的區域是否使用常數色彩進行混合。 如果是,這個成員會指定該色彩常數。 OutsideYUVcolor 成員定義為DXVA_AYUVsample2結構。 如需詳細資訊,請參閱備註一節。

備註

如果來源和目的地圖片的格式不是 4:4:4,則圖形混合資訊的每一秒範例 (例如,第一個、第三個或第五個) 會視需要套用至垂直或水準方向的子取樣來源色度資訊,以產生混合的結果。

下列各節顯示 RECT 結構的 上、上 成員的限制。

PictureSourceRect16thPel 的 RECT 結構限制

下列限制適用於 PictureSourceRect16thPelRECT 維度:
  • lefttop 必須大於或等於零。
  • 必須分別大於或等於
  • 如果 right 等於 lefttop 等於 bottom,則所有 RECT 成員都必須有值零,表示未使用來源圖片。 只有當 DXVA_ConfigAlphaCombine 的 bConfigOnlyUsePicDestRectArea 成員為零時,才允許這種情況。
  • 不能分別超過未壓縮來源圖片介面的配置寬度和高度 16 倍。
例如,如果使用 PictureSourceRect16thPel 來選取整個 MPEG-2 譯碼的圖片, 則 PictureSourceRect16thPel 值可以計算如下:
  • left = 0
  • top = 0
  • right = 16 X horizontal_size
  • bottom = 16 X vertical_size

PictureDestinationRect 的 RECT 結構限制

下列限制適用於 PictureDestinationRectRECT 維度:
  • lefttop 必須大於或等於零。
  • 必須分別大於或等於
  • 如果 right 等於 lefttop 等於 bottom (只有在 bConfigOnlyUsePicDestRectArea 成員 DXVA_ConfigAlphaCombine 為零) ,則所有 RECT 成員都必須具有零值,而且 PictureSourceRect16thPel 也必須指定所有值為零的值。
  • 如果DXVA_ConfigAlphaCombine的 bConfigBlendType 成員為零,則右下方不得分別超過未壓縮目的地圖片介面的已配置寬度和高度。
  • 如果 DXVA_ConfigAlphaCombine 的 bConfigBlendType 成員為 1, 則右 不能分別超過來源圖形介面的已配置寬度和高度。

GraphicSourceRect 的 RECT 結構限制

如果 alpha-blend 數據載入使用 DXVA_ConfigAlphaLoadbConfigDataType 成員,且值為 2,則下列限制適用於 GraphicSourceRectRECT 維度:
  • top left 必須是零。
  • right 必須等於 End X 座標減去前一個 DVD SET_DAREA DCCMD 的開始 X 座標,加上 1,才能針對不同的矩形解譯進行調整,如 GraphicDestinationRect 的 RECT 結構限制一節中所述。
  • bottom 必須等於 End Y 座標減去前一個 DVD SET_DAREA DCCMD 的 Start Y 座標,加上 1,才能針對不同的矩形解譯進行調整。
如果 alpha-blend 數據載入未使用 DXVA_ConfigAlphaLoad 的 bConfigDataType 成員且值為 2,則下列限制適用於 GraphicSourceRect 的 RECT 維度:
  • lefttop 必須大於或等於零。
  • 必須分別大於或等於
  • 如果 right 等於 lefttop 等於 bottom,則所有 RECT 成員都必須有值零,表示沒有使用圖形圖片。
  • 不能分別超過圖形來源影像的已配置寬度和高度。 當 DXVA_ConfigAlphaLoad 的 bConfigDataType 成員等於 2 時,配置的寬度和高度分別定義為 720 和 576 樣本。

GraphicDestinationRect 的 RECT 結構限制

下列限制適用於 GraphicDestinationRectRECT 維度:
  • 方和 頂端 必須大於或等於零,除非此需求與需要將圖形位移八個樣本衝突。 在下列案例中,這是這種情況:
  • 必須分別大於或等於 。 如果 right 等於 lefttop 等於 bottom,則 RECT 結構的所有成員都必須具有零值, 而且 GraphicSourceRect 也必須指定其所有成員都具有零值。
  • 如果 DXVA_ConfigAlphaCombine 的 bConfigBlendType 成員等於零,則右不能分別超過未壓縮目的地圖片介面的已配置寬度和高度。
  • 如果 DXVA_ConfigAlphaCombine 的 bConfigBlendType 成員等於 1, 則右 不能分別超過來源圖形影像的已配置寬度和高度。
如果 alpha-blend 數據載入使用 DXVA_ConfigAlphaCombine 的 bConfigDataType 成員,其值為 2,而 DXVA_ConfigAlphaCombine 的 bConfigGraphicResizing 成員值為零,則會套用 下列 GraphicDestinationRect 維度的額外限制:
  • top 必須等於上一個 DVD SET_DAREA DCCMD 的 Start Y 座標。
  • left 必須等於上一個 DVD SET_DAREA DCCMD 的 Start X 座標,或等於該值減 8。 如需詳細資訊,請參閱 DVD 704 寬非移動瀏覽掃描範例DVD 352 寬範例
  • right 必須等於 左邊的值,加上 End X 座標減去最後一個 DVD SET_DAREA DCCMD 的開始 X 座標加上 1,以調整下列附註中所述的不同矩形解譯。
  • bottom 必須等於 頂端 加上 End Y 座標的值減去最後一個 DVD SET_DAREA DCCMD 的 Start Y 座標,加上 1,才能針對下列附註中所述的不同矩形解譯進行調整。
注意 DVD 視訊規格定義子圖形矩形區域的方式和 Microsoft 所使用的慣例之間有差異。 此參考遵循 Microsoft 慣例,因此圖片左上角的寬度為 10 和高度 10 的矩形是由 top = 0、 left = 0、 right = 10 定義,而 bottom = 10。 DVD 視訊規格使用 = 9, 而底部 = 9。
 

設定 OutsideYUVcolor 值

OutsideYUVcolor 結構的值如下所示:
  • 如果 PictureDestinationRect 外部的區域產生為常數色彩,則 OutsideYUVcolor.bSampleAlpha8 的值必須是 255。
  • 如果適用下列兩種情況之一, OutsideYUVcolor.bSampleAlpha8 的值必須為零:
    • PictureDestinationRect 外部的區域不會受到混合影響。
    • PictureDestinationRect 以外的區域無法使用 (,如 DXVA_ConfigAlphaCombine 的 bConfigStayInPicDestRectArea 成員所指出,其值為 1) 。
OutsideYUVcolor.bSampleAlpha8 的其他所有值都會保留供日後使用。

如果 DXVA_ConfigAlphaCombine 結構的 bConfigStayInPicDestRectArea 成員等於 1,OutsideYUVcolor.bSampleAlpha8 的值必須是零。

如果 OutsideYUVcolor.bSampleAlpha8 為零,則受混合影響之目的地介面的唯一區域是 PictureDestinationRect 中的部分。

如果 OutsideYUVcolor.bSampleAlpha8 為 255,則目的地介面的任何區域都位於 PictureDestinationRect 之外,但在 GraphicDestinationRect 內,則會透過將圖形與 OutsideYUVcolor 的非階段成員中指定的色彩混合而產生。 在此情況下,位於 PictureDestinationRectGraphicDestinationRect 之外之目的地介面的整個配置區域會設定為 OutsideYUVcolor 非階段成員中指定的色彩。 如果DXVA_ConfigAlphaCombine結構的 bConfigBlendType 成員為 1,則 OutsideYUVcolor 成員會藉由指定 bSampleAlpha8 = 255、bY_Value = 16 和 bCbValue = bCrValue = 128 來表示與黑色混合。

當DXVA_ConfigAlphaCombine結構的 bConfigBlendType 成員為 1 (後端硬體混合) 時,混合作業可能會與本參考中所述的作業稍有不同。 某些重設大小參數可用來將來源圖片的視訊圖片對應至目的地圖片大小,可能會以修改的方式套用,以將圖形影像對應至相對於來源圖片的適當位置。 不過,混合的結果相當於本參考中Alpha-blend組合命令所取得的混合結果。

規格需求

需求
標頭 dxva.h (包含 Dxva.h)

另請參閱

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

矩形