Low-Level IDCT 處理元素

DirectX VA 介面支援各種處理低階反離散余弦轉換的方式, (IDCT) 。 作業有兩種基本類型:

  • 非主機識別碼CT:將轉換係數的宏區塊傳遞至外部 IDCT 的加速器、圖片重建和重建裁剪。

  • 主機型 IDCT:在主機上執行 IDCT,並將空間網功能變數結果區塊傳遞至加速器,以便外部圖片重建和重建裁剪。

在這兩種情況下,基本反向量子化程式、預先識別碼範圍飽和、MPEG-2 不相符的控制 (視需要) ,以及視需要在主機上執行 DC 內部位移 () 。 在這兩種情況下,最終的圖片重建和重建裁剪都會在加速器上完成。

下列步驟會定義反向量子化、預先 IDCT 飽和度、不符控制、DC 內部位移、IDCT、圖片重建和重建裁剪程式。 DXVA_QmatrixData結構會載入壓縮視訊圖片解碼的反向量子化矩陣資料。 (除非由DXVA_PictureParameters structure.) 指定,否則應該假設BPPWTHT的值等於 8

  1. 視需要執行反向量化 (包括套用任何反向量子化加權矩陣) ,以建立一組 IDCT 係數值 F「 (u,v) 從 entropy 編碼的量子化索引。 這是由主機所執行。

  2. 將轉換係數區塊的每個重新建構係數值 F「 (u,v) 飽和,以取得下列公式中所定義的限制允許範圍內的值 F' (u,v) 。 這是由主機所執行。 預先 IDCT 飽和度計算的公式。

  3. 對 MPEG-2 執行不相符的控制項。 (只有 MPEG-2 需要這個階段的處理。) 不符控制項是藉由加總宏區塊中所有係數的飽和值, (這相當於 XORing 其最小有效位) 。 如果總和為偶數,則會從最後一個係數F (的飽和值減去1,W T-1,HT-1) 。 如果總和是奇數,F' (WT-1,HT-1) 的飽和值會依原樣使用,而不需改變。 在飽和度和不相符控制項之後建立的係數值稱為 F (u,v) 。 這是由主機所執行。 MPEG-1 具有不同形式的不符控制項,由每個係數的加號或減 1 改變值所組成,否則在反向量化之後會有偶數值。 H.263 不需要本節所述的不符控制項。 在任何情況下,不符控制是主機視需要的責任。 不符控制項計算的公式。

  4. 視需要將內部 DC 位移) (新增至所有內部區塊,因此所有內部區塊都代表相對於空間參考預測值 2 (BPP-1) 的差異。 除了HostResidDiff為 1 且 DXVA_ConfigPictureDecode結構的bConfigIntraResidUnsigned成員為 1 之外,這類位移對於 H.261、H.263、MPEG-1、MPEG-2 和 MPEG-4) 的所有參考視訊編碼 (標準而言是必要的。 內部 DC 位移的值 (2 (BPP-1) ) * sqrt (WT) 轉換網域中。 除了 MPEG-4 以外,這個值在所有情況下都是 1024,這可讓 BPP 大於 8。 這是由主機所執行。

  5. 在主機或加速器上執行反向離散余弦轉換 (IDCT) 。 IDCT 是由下列公式所指定,其中: C (u) = 1 for u = 0, 否則C (u) = sqrt (2) C (v) = 1 for v = 0,否則C (v) = sqrt (2) xy是圖元網域u中的水準和垂直空間座標,v是轉換網域水準和垂直頻率座標WTHT是轉換區塊的寬度和高度, (通常都是 8) 。

  6. 將空間定義域殘差資訊新增至非tra 區塊的 動作補償預測 值,或新增至內部區塊的常數參考值,以在加速器上執行圖片重建。 內部區塊的常數參考值為 2 (BPP-1) ,但當DXVA_MBctrl_P_HostResidDiff_1) 結構之 wMBtype成員的 HostResidDiff (位 10 時,DXVA_ConfigPictureDecode結構的bConfigIntraResidUnsigned成員為 1。 在後者的情況下,常數為零。

  7. 將圖片重建裁剪成從零到 (2BPP) -1 的範圍,並將最終產生的圖片範例值儲存在加速器上。