Audio Resampler DSP
Audio Resampler は、オーディオ ストリームに対して次のアクションのいずれかまたは両方を実行します。
- サンプリング レートを変更します。
- チャネルの数を変更します。
CLSID
CLSID_CResamplerMediaObject
インターフェイス
形式
PCM または IEEE 浮動小数点
メディアの種類では、圧縮されていない PCM または浮動小数点オーディオ形式を指定する必要があります。
- IMFTransform インターフェイスの場合は、「非圧縮オーディオ メディアの種類」の説明に従ってメディアの種類を初期化します。
- IMediaObject インターフェイスの場合、メディアの種類はFORMAT_WaveFormatEx型である必要があります。 詳細については、「 DMO_MEDIA_TYPE」を参照してください。
プロパティ
必須の属性
resampler では、次の属性を設定する必要があります。
カスタム チャネル マッピング
オーディオ リサンプルは、次の情報に基づいて、入力オーディオ チャネルを出力オーディオ チャネルにマップします。
- チャンネル数。 これは、メディア・タイプのMF_MT_AUDIO_NUM_CHANNELS属性、または WAVEFORMATEX 構造体の nChannels メンバーで指定されます。
- チャネル マスク。スピーカーの位置にチャネルを割り当てます。 チャネル マスクは、メディアタイプのMF_MT_AUDIO_CHANNEL_MASK属性、または WAVEFORMATEXTENSIBLE 構造体の dwChannelMask メンバーで指定されます。
- マッピングの重みのマトリックス。
マトリックスには、各出力チャネルが入力チャネルの加重平均になるように、一連の重みが含まれています。
チャネル マッピングのカスタム マトリックスを指定するには、 IWMResamplerProps::SetUserChannelMtx を呼び出すか 、MFPKEY_WMRESAMP_CHANNELMTX プロパティを設定します。 カスタム マトリックスが指定されていない場合、Audio Resampler は一連の既定のマトリックスを使用します。
既定のチャネル マッピング
カスタム マトリックスを指定しない場合、Audio Resampler DSP はチャネル マッピングに既定値を使用します。
次の表では、チャネルは省略されています。
- L: 左
- R: 右
- C: 中央
- LFE: 低周波数効果
- BL: Back Left
- 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 |
SR | 0 | 0 | 0 | 0 | 0.124 | 0.429 | 0 | 0.447 |
係数のテーブルを解釈する方法を理解するには、6 つのチャネルを 2 にマップする最初のテーブルを検討してください。 テーブルの最初の行 (0.314、0、0.222、0.031、0.268、0.164) は、各入力チャネルが出力の左側のチャネルにどれだけ大きく寄与するかを指定する重みのベクトルです。 テーブルの 2 行目 (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
注意
オーディオ リサンプリング DSP を使用してチャネルの数を増やすと、追加されたチャネルには 0 の値が割り当てられます。
出力品質
オーディオ リサンプリング DSP の出力品質を指定するには、 IWMResamplerProps::SetHalfFilterLength を呼び出すか 、MFPKEY_WMRESAMP_FILTERQUALITY プロパティを設定します。 出力品質を指定しない場合、オーディオ リサンプリング DSP では既定の品質値 30 が使用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2008 [デスクトップ アプリのみ] |
Header |
|
[DLL] |
|