次の方法で共有


Audio Resampler DSP

Audio Resampler は、オーディオ ストリームに対して次のアクションのいずれかまたは両方を実行します。

  • サンプリング レートを変更します。
  • チャネルの数を変更します。

CLSID

CLSID_CResamplerMediaObject

インターフェイス

形式

PCM または IEEE 浮動小数点

メディアの種類では、圧縮されていない PCM または浮動小数点オーディオ形式を指定する必要があります。

プロパティ

必須の属性

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
Wmcodecdsp.h
[DLL]
Resampledmo.dll

こちらもご覧ください

デジタル信号プロセッサ