Jump to content

Устаревшие аудиокомпоненты Windows

(Перенаправлено из Диспетчера сжатия звука )

В этой статье описываются API-интерфейсы и компоненты аудио в Microsoft Windows , которые сейчас устарели или устарели.

Мультимедийные расширения (MME)

[ редактировать ]

MME API или Windows Multimedia API (также известный как WinMM ) был первым универсальным и стандартизированным аудио API Windows. Звуковые события Wave, воспроизводимые в Windows (вплоть до Windows XP ), и MIDI-входы/выходы используют MME. Устройства, перечисленные в апплете панели управления «Мультимедиа/Звуки и аудио» , представляют собой MME API драйвера звуковой карты .

Мультимедийные расширения (интерфейсы WaveIn/WaveOut) были выпущены осенью 1991 года для поддержки звуковых карт , а также приводов CD-ROM , которые в то время становились все более доступными. Мультимедийные расширения были выпущены производителям оригинального оборудования (OEM) , в основном производителям приводов CD-ROM и звуковых карт, и добавили базовую поддержку мультимедиа для ввода и вывода звука, а также компакт-дисков приложение аудиоплеера в Windows 3.0. Новые функции мультимедийных расширений были недоступны в реальном режиме Windows 3.0, а только в стандартном и расширенном режиме 386. Windows 3.1x позже будет включать в себя многие из ее функций. Microsoft разработала спецификацию звуковой карты Windows Sound System в дополнение к этим расширениям.

В Windows 95/ME в MME отсутствует микширование нескольких аудиопотоков во время воспроизведения и совместного использования устройств, поэтому одновременно может обрабатываться только один аудиопоток. Но некоторые драйверы звуковых карт могут эмулировать более одного устройства MME (или поддерживать более одного потокового клиента), поэтому они также могут работать с MME. Начиная с Windows 2000, MME поддерживает совместное использование устройств воспроизведения (многоклиентский доступ) и может смешивать потоки воспроизведения. Начиная с Windows XP, MME начал поддерживать совместное использование записывающих устройств.

В более ранних версиях Windows MME поддерживал до двух каналов записи, 16-битную разрядность звука и частоту дискретизации до 44 100 сэмплов в секунду, при этом весь звук микшировался и дискретизировался до 44 100 семплов в секунду. [ нужна ссылка ] Начиная с Windows 2000, MME поддерживает до 384 000 выборок в секунду, до 8 каналов и до 32 бит на выборку.

До Windows XP количество интерфейсов устройств MME/WinMM (waveIn, waveOut, MIDIIn, MidiOut, микшер и aux) ограничивалось 10. В Windows XP это ограничение увеличено с 10 до 32. [ 1 ] [ 2 ]

Длина имени устройства в MME ограничена 31 символом, поэтому длинные имена устройств могут отображаться только частично.

Проблемы

[ редактировать ]

В Windows Vista появилась ошибка в эмуляции MME WaveIn/WaveOut: если требуется преобразование частоты дискретизации, иногда появляется звуковой шум, например, при воспроизведении звука в веб-браузере, который использует эти API. Это связано с тем, что внутренний ресэмплер, который больше не настраивается, по умолчанию использует быструю целочисленную линейную интерполяцию , которая была режимом преобразования самого низкого качества, который можно было установить в предыдущих версиях Windows. Ресемплер можно перевести в режим высокого качества только с помощью исправления для Windows 7 и Windows Server 2008. [ 3 ] [ 4 ]

Менеджер сжатия звука

[ редактировать ]

Audio Compression Manager (ACM) Windows — это мультимедийная платформа , которая управляет аудиокодеками (компрессорами/декомпрессорами). [ 5 ] ACM также можно считать спецификацией API. Кодек должен соответствовать неявной спецификации ACM для работы с Windows Multimedia. Файлы ACM можно распознать по расширению имени файла. .acm. Файлы ACM также используют типы файлов, совместимые с RIFF, такие как WAV или AVI, в качестве «оболочки» для хранения аудиоданных, закодированных любым аудиокодеком, поддерживаемым ACM.

ACM считается устаревшей платформой/API, и Microsoft теперь рекомендует использовать как минимум DirectShow . Однако, в отличие от ACM и связанного с ним диспетчера сжатия видео (VCM) , DirectShow не предоставляет конечным пользователям средств кодирования файлов, но требует от разработчиков создания сквозных графиков для кодирования контента. ACM также не поддерживает VBR аудиопотоки ; поэтому новые кодеки, такие как MPEG-4 AAC , Ogg Vorbis , FLAC и т. д., не могут поддерживаться через ACM при использовании переменных битрейтов. Хотя многие источники утверждают обратное, Ogg Vorbis хорошо работает с ACM, например, при внедрении в RIFF-совместимый файл (например, файл WAV или AVI, как упоминалось ранее), при условии, что поток Ogg Vorbis кодируется с постоянным битрейтом.

Windows поставляется с несколькими предустановленными кодеками ACM. Список этих кодеков можно найти в файле WAV § Сравнение схем кодирования .

Кодеки ACM идентифицируются двухбайтовым кодом (TwoCC), предоставленным Microsoft.

Аудиобиблиотеки DirectX

[ редактировать ]

KMixer — это драйвер Kernel Audio Mixer , часть WDM Audio в Windows 98 –Windows XP, которая управляет микшированием нескольких звуковых буферов в выходной файл.

Задачи, выполняемые KMixer.sys:

  • Смешивание нескольких PCM аудиопотоков
  • Преобразование формата, разрядности (также известной как длина слова) и частоты дискретизации.
  • Конфигурация динамиков и отображение каналов

В Windows 98, Windows 2000 и Windows Me максимальная частота дискретизации KMixer составляет 100 кГц. В Windows XP SP1 и более поздних версиях частота дискретизации звука KMixer поддерживает максимум 200 кГц. [ 6 ] [ 7 ] [ 8 ]

Проблемы

[ редактировать ]

KMixer был разработан, чтобы помочь приложениям, избавив их от необходимости микшировать аудиопотоки, особенно на слабых звуковых картах, которые не поддерживают несколько звуковых потоков. Однако это привело к некоторым существенным проблемам.

Во-первых, задержка KMixer составляет около 30 мс. [ 9 ] и его нельзя уменьшить, потому что этот компонент находится прямо над аудиодрайвером класса порта, поэтому каждый аудиопоток, включая те, которые выдаются DirectSound (кроме случаев аппаратного микширования ) и WinMM, проходят через микшер ядра. [ 10 ] Если аудиооборудование поддерживает аппаратное микширование (также известное как аппаратная буферизация или аппаратное ускорение DirectSound), DirectSound буферизуется непосредственно на устройство рендеринга. [ 11 ] Таким образом, если потоки DirectSound используют аппаратное микширование , KMixer обходится. [ 12 ]

В более ранних версиях, таких как исходная версия Windows 98, KMixer пытался смешивать все форматы данных, которые проходили через него, даже те, которые он не поддерживал. Это вызывало различные проблемы с медиаплеерами, которые пытались передать AC3 в кодировке потоки объемного звука через выход S/PDIF звуковой карты на внешний домашнего кинотеатра ресивер . Это было исправлено в Windows Me и предоставлено в виде исправления для Windows 98 Second Edition и Windows 2000 SP2. [ 13 ] Начиная с Windows Me, API waveOut, DirectSound и DirectShow поддерживают форматы, отличные от PCM, такие как AC-3 или WMA, через S/PDIF, а данные, отличные от PCM, передаются непосредственно в драйвер класса, а не через KMixer.

Новый API режима ядра Direct Kernel Streaming также был представлен в Windows 98, чтобы обойти KMixer и избежать проблем, связанных с ним.

KMixer в большинстве случаев не меняет звук. [ 6 ] Кроме того, существует множество способов обойти KMixer без необходимости использования дополнительного плагина для доступа к DirectSound, ASIO , Direct Kernel Streaming или WASAPI . Например, в Windows XP использование DirectSound (который Winamp использует по умолчанию) с аппаратным микшером — это способ обойти KMixer. [ 9 ]

KMixer был удален в Windows Vista . Его заменяет пользовательский режим WASAPI (Windows Audio Session API) Audio Engine, который является частью обновленной звуковой архитектуры . Аудиосистема может работать в общем или эксклюзивном режиме . В совместном режиме микширование все равно происходит. Предварительно микшированный звук PCM отправляется драйверу в едином формате (с точки зрения частоты дискретизации, разрядности и количества каналов), который можно настроить на панели управления звуками. WASAPI Эксклюзивный режим обходит микшер, как и использование сторонних аудио API, таких как OpenAL или ASIO , которые по-прежнему имеют прямой доступ к оборудованию. [ 14 ]

Потоковая передача ядра

[ редактировать ]

Потоковая передача ядра или прямая потоковая передача ядра (Direct KS) — это метод, который поддерживает в режиме ядра обработку потоковых данных . Он обеспечивает эффективную потоковую передачу в реальном времени для мультимедийных устройств, таких как звуковые карты и ТВ-тюнеры . Потоковая передача ядра позволяет драйверу устройства создавать фильтры и контакты, подобные DirectShow, в режиме ядра , обеспечивая доступ к оборудованию, меньшую задержку связи и при этом использоваться в графе фильтров DirectShow .

Потоковая передача ядра была представлена ​​в Windows 98. Когда звуковая карта использует специальный драйвер для использования с системным драйвером класса порта PortCls.sys или реализует мини-драйвер для использования с драйвером класса потоковой передачи, приложения могут полностью обходить KMixer и использовать вместо этого интерфейсы потоковой передачи ядра напрямую взаимодействуют с аудиодрайвером и уменьшают задержку. Windows 98 включает первый драйвер потоковой передачи ядра — Stream.sys. В Windows XP Microsoft представила еще один улучшенный драйвер класса потоковой передачи ядра — AVStream.

Музыкальные проигрыватели, такие как JRiver Media Center , JPLAY, foobar2000 , Audirvana Studio и Winamp , поддерживают потоковую передачу ядра . По сравнению с обычным «методом WaveOut» в Microsoft Windows , потоковая передача ядра требует меньше процессорного времени. Это происходит за счет обхода KMixer и регулятора громкости Windows. Потоковая передача ядра также не позволяет совместно использовать устройства, если аудиодрайвер режима ядра не поддерживает несколько клиентов.

До Windows Vista Kernel Streaming предлагал только один протокол связи клиент-драйвер с цепочкой буферов, используемый в MME. Начиная с Vista, Real-Time Audio ( RT Audio , не путать с кодеком RTAudio представлен новый протокол ), основанный на одном кольцевом буфере . Протокол RT Audio реализуется драйвером порта WaveRT в portcls.sys. В Vista и более поздних версиях аудиоподсистема поддерживает оба протокола, поэтому может взаимодействовать как с устаревшими, так и с новыми аудиодрайверами. Но большинство аудиоприложений, использующих KS, поддерживают только один протокол (в большинстве случаев устаревший), поэтому они могут взаимодействовать только с одним типом аудиодрайверов.

См. также

[ редактировать ]
  1. ^ Основы API аудиодрайвера Windows
  2. ^ Ограничения интерфейса устройства Windows 2000
  3. ^ «Политика преобразования частоты дискретизации аудиопотоков (драйверы Windows)» . Центр разработки — Аппаратное обеспечение . Майкрософт . Проверено 17 января 2012 г.
  4. ^ «Артефакты в Windows 7 из-за преобразования частоты дискретизации» . Ветка обсуждения на форумах по разработке настольных компьютеров для Windows . Проверено 17 января 2012 г.
  5. ^ «Диспетчер сжатия звука» . Майкрософт . 30 мая 2018 г.
  6. ^ Jump up to: а б «Политика микширования аудиопотоков и установки выходной частоты дискретизации» . MSDN . Проверено 23 ноября 2010 г.
  7. ^ «Windows Кмиксер» . Проверено 23 ноября 2010 г.
  8. ^ «Что такое «bitperfect» и что мне нужно сделать для идеального воспроизведения?» . Проверено 23 ноября 2010 г.
  9. ^ Jump up to: а б «Задержка KMixer» . MSDN . Проверено 23 ноября 2010 г.
  10. ^ CakeWalk - Круглый стол Windows Pro Audio
  11. ^ Модели драйверов DirectSound
  12. ^ Обзор аппаратного ускорения DirectSound
  13. ^ Форматы волн, отличные от PCM, и аудиодрайверы WDM
  14. ^ «Плагин вывода Winamp OpenAL» . Проверено 23 ноября 2010 г.
[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 01c01264d69fcecb9bbc4176928b8236__1721537880
URL1:https://arc.ask3.ru/arc/aa/01/36/01c01264d69fcecb9bbc4176928b8236.html
Заголовок, (Title) документа по адресу, URL1:
Windows legacy audio components - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)