音訊重新取樣器 DSP
Audio Resampler 會在音訊資料流程上執行下列其中一個或兩個動作。
- 變更取樣率。
- 變更通道數目。
CLSID
CLSID_CResamplerMediaObject
介面
格式
PCM 或 IEEE 浮點數
媒體類型必須指定未壓縮的 PCM 或浮點音訊格式。
- 針對 IMFTransform 介面,初始化媒體類型,如 未壓縮的音訊媒體類型中所述。
- 針對 IMediaObject 介面,媒體類型必須是 FORMAT_WaveFormatEx 類型。 如需詳細資訊,請參閱 DMO_MEDIA_TYPE。
屬性
必要的屬性
重新取樣器需要設定下列屬性:
自訂通道對應
音訊重新取樣器會根據下列資訊,將輸入音訊通道對應至輸出音訊通道:
- 頻道的數目。 這在媒體類型的MF_MT_AUDIO_NUM_CHANNELS屬性中提供,或為「其」結構之 nChannels成員提供。
- 通道遮罩,會將通道指派給說話者位置。 通道遮罩是在媒體類型的 MF_MT_AUDIO_CHANNEL_MASK 屬性中提供,或其 DWChannelMask 成員為 「其」,而該成員則為「波狀結構」ATEXTENSIBLE 結構。
- 對應權數的矩陣。
矩陣包含一系列的權數,因此每個輸出通道都是輸入通道的加權平均值。
您可以呼叫 IWMResamplerProps::SetUserChannelMtx 或設定 MFPKEY_WMRESAMP_CHANNELMTX 屬性,來指定通道對應的自訂矩陣。 如果未提供自訂矩陣,Audio Resampler 會使用一組預設矩陣。
預設通道對應
如果您未指定自訂矩陣,Audio Resampler DSP 會使用預設值進行通道對應。
在下列資料表中,通道會縮寫:
- L:左
- R:右方
- C:中心
- LFE:低頻率效果
- BL:左下
- BR:右上
- SL:左右周框
- SR:右括住
下表顯示將 6 個通道 (遮罩0x3F) 對應至 2 個通道的預設係數。
L | R | C | LFE | BL | BR | |
---|---|---|---|---|---|---|
L | 0.314 | 0 | 0.222 | 0.031 | 0.268 | 0.164 |
R | 0 | 0.314 | 0.222 | 0.031 | 0.164 | 0.268 |
下表顯示將 6 個通道 (遮罩0x60F) 對應至 2 個通道的預設係數。
L | R | C | LFE | SL | SR | |
---|---|---|---|---|---|---|
L | 0.320 | 0 | 0.226 | 0.032 | 0.292 | 0.130 |
R | 0 | 0.320 | 0.226 | 0.032 | 0.130 | 0.292 |
下表顯示將 6 個 (遮罩0x3F或0x60F) 通道對應至 1 個通道的預設係數。
L | R | C | LFE | BL (SL) | BR (SR) | |
---|---|---|---|---|---|---|
C | 0.192 | 0.192 | 0.192 | 0.038 | 0.192 | 0.192 |
下表顯示將 8 個通道 (遮罩0x63F) 對應至 2 個通道的預設係數。
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.222 | 0 | 0.157 | 0.022 | 0.189 | 0.116 | 0.203 | 0.090 |
R | 0 | 0.222 | 0.157 | 0.022 | 0.116 | 0.189 | 0.090 | 0.203 |
下表顯示將 8 個通道 (遮罩0x63F) 對應至 1 個通道的預設係數。
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
C | 0.139 | 0.139 | 0.139 | 0.028 | 0.139 | 0.139 | 0.139 | 0.139 |
下表顯示將 8 個通道 (遮罩0x63F) 對應至 6 個通道的預設係數, (遮罩0x3F) 。
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.518 | 0 | 0 | 0 | 0 | 0 | 0.189 | 0 |
R | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 | 0.189 |
C | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 |
LFE | 0 | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 |
BL | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 | 0 |
Br | 0 | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 |
下表顯示將 8 個通道 (遮罩0x63F) 對應至 6 個通道的預設係數, (遮罩0x60F) 。
L | R | C | LFE | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
R | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 |
C | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 |
LFE | 0 | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 |
SL | 0 | 0 | 0 | 0 | 0.429 | 0.124 | 0.447 | 0 |
鍶 | 0 | 0 | 0 | 0 | 0.124 | 0.429 | 0 | 0.447 |
若要瞭解如何解譯係數資料表,請考慮將 6 個通道對應至 2 的第一個資料表。 資料表的第一個資料列 (0.314、0、0.222、0.031、0.268、0.164) 是一種加權向量,指定每個輸入通道對輸出左側通道的比重。 資料表的第二個數據列 (0、0.314、0.222、0.031、0.164、0.268) 是加權的向量,指定每個輸入通道對輸出的正確通道貢獻程度。
下列公式顯示如何計算輸出通道。
L_out = L*0.314 + C*0.222 + LFE*0.031 + BL*0.268 + BR*0.164
R_out = R*0.314 + C*0.222 + LFE*0.031 + BL*0.164 + BR*0.268
注意
如果您使用 Audio Resampler DSP 來增加通道數目,則新增的通道會指派 0 的值。
輸出品質
您可以呼叫 IWMResamplerProps::SetHalfFilterLength 或設定 MFPKEY_WMRESAMP_FILTERQUALITY 屬性,來指定 Audio Resampler DSP 的輸出品質。 如果您未指定輸出品質,Audio Resampler DSP 會使用預設值 30。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
標頭 |
|
DLL |
|