Цифровой кодировщик звука Dolby

Звуковой кодировщик Dolby — это преобразование Media Foundation (MFT), которое кодирует моно- или стереозвук в Dolby Digital, также называемый Dolby AC-3. Кодировщик не поддерживает многоканальные входные данные, например конфигурацию канала 5.1.

Важно!

Для версий Windows до Windows 8 реализация майкрософт технологии Dolby Digital ограничена условиями программы лицензирования Dolby Digital для использования приложениями Майкрософт.

 

Дополнительные сведения о звуке Dolby Digital см. в документе Advanced Television Systems Committee (ATSC) Digital Audio Compression Standard (AC-3, E-AC-3) Revision B.

Идентификатор класса

Идентификатор класса (CLSID) звукового кодировщика Dolby CLSID_CMSDolbyDigitalEncMFT, определенный в файле заголовка wmcodecdsp.h.

Типы вывода

Тип выходных данных должен быть задан первым, перед типом входных данных. В следующей таблице перечислены обязательные и необязательные атрибуты для выходного типа носителя.

attribute Описание Remarks
MF_MT_MAJOR_TYPE Основной тип. Обязательный. Должен быть MFMediaType_Audio.
MF_MT_SUBTYPE Подтип аудио. Обязательный. Должен быть MFAudioFormat_Dolby_AC3.
MF_MT_AUDIO_SAMPLES_PER_SECOND Выборки в секунду. Обязательный. Поддерживаются следующие значения.
  • 32000
  • 44100
  • 48000
MF_MT_AUDIO_NUM_CHANNELS Количество каналов. Обязательный. Должен иметь значение 1 (моно) или 2 (стерео).
MF_MT_AUDIO_CHANNEL_MASK Указывает назначение звуковых каналов позициям говорящего. Необязательный элемент. Если этот параметр задан, значение должно быть 0x3 для стерео (передний левый и правый каналы) или 0x4 для mono (передний центральный канал).
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Скорость закодированного потока AC-3 в байтах в секунду. Необязательный элемент. Допустимые значения см. в разделе Примечания. Если этот атрибут не задан, кодировщик использует скорость передачи по умолчанию, как описано в разделе Примечания.

 

Если необязательные атрибуты не заданы, кодировщик добавляет их в тип носителя после установки типа.

Типы входных данных

В следующей таблице перечислены обязательные и необязательные атрибуты для типа входного носителя.

attribute Описание Remarks
MF_MT_MAJOR_TYPE Основной тип. Обязательный. Должен быть MFMediaType_Audio.
MF_MT_SUBTYPE Подтип аудио. Обязательный. Должен быть MFAudioFormat_PCM или MFAudioFormat_Float.
MF_MT_AUDIO_BITS_PER_SAMPLE Число битов на выборку звука. Обязательный. Значение должно быть 16, если подтип MFAudioFormat_PCM, или 32, если подтип MFAudioFormat_Float.
MF_MT_AUDIO_SAMPLES_PER_SECOND Выборки в секунду. Обязательный. Должен соответствовать типу выходных данных.
MF_MT_AUDIO_NUM_CHANNELS Количество каналов. Обязательный. Должен соответствовать типу выходных данных.
MF_MT_AUDIO_BLOCK_ALIGNMENT Выравнивание блоков в байтах. Обязательный. Вычислите значение следующим образом:
  • MFAudioFormat_PCM: количество каналов × 2.
  • MFAudioFormat_Float: количество каналов × 4.
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Скорость закодированного потока AC3 в байтах в секунду. Обязательный. Должно быть равное выравниванию блоков × выборки в секунду.
MF_MT_AUDIO_CHANNEL_MASK Указывает назначение звуковых каналов позициям говорящего. Необязательный элемент. Если задано значение , значение должно соответствовать типу выходных данных.
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE Количество допустимых битов звуковых данных в каждом образце звука. Необязательный элемент. Если задано значение , значение должно быть идентично значению MF_MT_AUDIO_BITS_PER_SAMPLE.

 

Кодировщик не поддерживает преобразование частоты выборки или стерео/моно.

Комментарии

Каждый аудиокадр Dolby AC-3 содержит 1536 звуковых примеров на канал. Однако каждый входной буфер кодировщика может содержать любое количество выборок PCM. Размер каждого входного буфера должен быть кратным выравниванию блока. Кодировщик кэширует входные примеры до тех пор, пока не будет достаточно 1536 примеров звука на канал; В этот момент кодировщик выводит один кадр AC-3.

Каждый выходной буфер содержит один необработанный кадр AC-3. Длительность эквивалентна длительности 1536 выборок PCM при текущей частоте выборки (32 мс) при частоте дискретизации 48 кГц, 34,83 мс на 44,1 кГц и 48 мс на 32 кГц. Размер каждого выходного буфера зависит от скорости передачи данных и частоты выборки.

Чтобы указать скорость кодирования, задайте атрибут MF_MT_AUDIO_AVG_BYTES_PER_SECOND в типе вывода. В следующей таблице показана связь между скоростью кодирования и MF_MT_AUDIO_AVG_BYTES_PER_SECOND.

Скорость (Кбит/с) MF_MT_AUDIO_AVG_BYTES_PER_SECOND Комментарии
64 8000 Только моно.
80 10000 Только моно.
96 12000 Только моно.
112 14000 Только моно.
128 16000 Моно или стерео.
160 20 000 Моно или стерео.
192 24 000 Моно или стерео. Это значение по умолчанию для mono.
224 28000 Моно или стерео.
256 32000 Моно или стерео. Это значение по умолчанию для стерео.
320 40 000 Только стерео.
384 48000 Только стерео.
448 56000 Только стерео.

 

Скорость кодирования по умолчанию устанавливается на уровне 256 кбит/с для стерео и 192 кбит/с для моно. Параметры по умолчанию отражаются в типах мультимедиа, возвращаемых методом IMFTransform::GetOutputAvailableType кодировщика.

Примеры типов мультимедиа

Ниже приведен пример типов носителей, необходимых для кодирования 16-разрядного целочисленного pcm, стереофонического звука 48 кГц со скоростью по умолчанию 256 кбит/с.

Тип выходного носителя:

attribute Значение
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_Dolby_AC3
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2

 

Тип входного носителя:

attribute Значение
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_PCM
MF_MT_AUDIO_BITS_PER_SAMPLE 16
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2
MF_MT_AUDIO_BLOCK_ALIGNMENT 4
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 192000

 

Требования

Требование Значение
Минимальная версия клиента
Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера
Ни одна версия не поддерживается
DLL
Msac3enc.dll

См. также раздел

Объекты кодека