Audio Resampler DSP
Resampler audio выполняет одно или оба следующих действия в звуковом потоке.
- Изменение частоты выборки.
- Изменение количества каналов.
CLSID
CLSID_CResamplerMediaObject
Интерфейсы
Форматы
PCM или IEEE с плавающей запятой
Тип носителя должен указывать формат аудиофайлов без сжатия PCM или с плавающей запятой.
- Для интерфейса IMFTransform инициализируйте тип мультимедиа, как описано в разделе Типы мультимедиа без сжатия.
- Для интерфейса IMediaObject тип мультимедиа должен быть типом FORMAT_WaveFormatEx . Дополнительные сведения см. в разделе DMO_MEDIA_TYPE.
Свойства
Обязательные атрибуты
Для рересимплера необходимо задать следующие атрибуты:
Сопоставление настраиваемых каналов
Реамплер звука сопоставляет входные звуковые каналы с выходными звуковыми каналами на основе следующих сведений:
- Число каналов. Это значение задается в атрибуте MF_MT_AUDIO_NUM_CHANNELS типа носителя или в элементе nChannels структуры WAVEFORMATEX .
- Маска канала, которая назначает каналы в положение говорящего. Маска канала задается в атрибуте MF_MT_AUDIO_CHANNEL_MASK типа носителя или в элементе dwChannelMask структуры WAVEFORMATEXTENSIBLE .
- Матрица весовых коэффициентов сопоставления.
Матрица содержит ряд весовых коэффициентов, чтобы каждый выходной канал был взвешенный средний входных каналов.
Можно указать настраиваемую матрицу для сопоставления каналов, вызвав метод IWMResamplerProps::SetUserChannelMtx или задав свойство MFPKEY_WMRESAMP_CHANNELMTX . Если пользовательская матрица не указана, resampler audio использует набор матриц по умолчанию.
Сопоставление каналов по умолчанию
Если пользовательская матрица не указана, DSP Audio Resampler DSP использует значения по умолчанию для сопоставления каналов.
В следующих таблицах каналы сокращены:
- L: слева
- R: справа
- C: Центр
- LFE: эффекты низкой frequence
- 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 |
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) — это вектор весовых коэффициентов, указывающий, насколько сильно каждый входной канал влияет на левый канал выходных данных. Вторая строка таблицы (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 Audio Resampler для увеличения числа каналов, добавленным каналам будут присвоены значения 0.
Качество вывода
Вы можете указать качество вывода DSP Resampler Audio, вызвав IWMResamplerProps::SetHalfFilterLength или задав свойство MFPKEY_WMRESAMP_FILTERQUALITY . Если не указать качество вывода, поставщик служб DSP audio Resampler использует значение качества по умолчанию 30.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
DLL |
|