Windows유산 오디오 요소들
Windows legacy audio components이 글이지만 충분한 해당하는 인라인 인용이 부족한 일반적인 참고 문헌 목록이 포함되어 있다.제발 도와 주세요 더 정확한 인용을 소개하는 것으로 이 기사 개선한다.(2009년 9월)( 어떻게 그리고 언제 이 템플릿 제거할 메시지를 배우다.). |
이 기사는 오디오 API와 마이크로 소프트 원도우에서 현재 또는 배척은 구식 부품에 대해 설명합니다.
멀티 미디어 확장(MME)
그 MMEAPI또는 윈도우 멀티 미디어 API(또한 WinMM으로 알려져) 제1및 Windows오디오 API표준화 보편적인 것이었다.Wave 소리 행사 Windows에서(WindowsXP까지)과 미디/O사용 MME. 있는 기기는 Multimedia/Sounds과 오디오 제어판 애플릿에 나열된 사운드 카드 드라이버의 MMEAPI를 나타내는을 했다.
멀티미디어 확장 기능(WaveIn/WaveOut 인터페이스)은 사운드 카드와 CD-ROM 드라이브를 지원하기 위해 1991년 가을에 출시되었으며, 그 후 점점 더 많이 이용 가능하게 되었습니다.멀티미디어 확장 기능은 주로 CD-ROM 드라이브 및 사운드 카드 제조업체인 OEM(Original Equipment Manufacturers)에 출시되었으며 Windows 3.0에는 오디오 입력 및 출력에 대한 기본적인 멀티미디어 지원 및 CD 오디오 플레이어 애플리케이션이 추가되었습니다.멀티미디어 익스텐션의 새로운 기능은 Windows 3.0 리얼 모드에서는 사용할 수 없었습니다.표준 모드와 386 확장 모드에서만 사용할 수 있습니다.Windows 3.1x는 나중에 많은 기능을 통합하게 됩니다.Microsoft는 이러한 확장을 보완하기 위해 Windows 사운드 시스템 사운드 카드 사양을 개발했습니다.
Windows 95/ME 에서는, MME 에서는, 재생과 디바이스의 공유중에 복수의 오디오 스트림을 혼재시킬 수 없기 때문에, 동시에 렌더링 할 수 있는 오디오 스트림은 1개 뿐입니다.다만, 사운드 카드 드라이버에 따라서는, 복수의 MME 디바이스를 에뮬레이트 할 수 있기 때문에(또는 복수의 스트리밍 클라이언트를 서포트할 수 있습니다), MME에서도 동작할 수 있습니다.Windows 2000 이후, MME 는 재생 디바이스 공유(멀티 클라이언트 액세스)를 서포트해, 재생 스트림을 혼재시킬 수 있습니다.Windows XP 이후, MME 는 녹음 디바이스 공유를 서포트하기 시작했습니다.
이전 버전의 Windows에서는 MME는 최대 2채널의 녹음, 16비트 오디오비트 깊이 및 최대 44100샘플/초의 샘플링 레이트를 지원했습니다.모든 오디오가 혼재되어 44100샘플/초의 [citation needed]샘플링이 이루어졌습니다.Windows 2000 이후로는 MME는 초당 최대 384000개의 샘플, 최대 8개의 채널 및 샘플당 최대 32비트를 지원합니다.
Windows XP 이전에는 MME/WinMM 디바이스 인터페이스(waveIn, waveOut, midiIn, midiOut, mixer 및 aux)의 수가 10으로 제한되어 있었습니다.Windows XP [1][2]에서는 이 제한이 10에서 32로 증가했습니다.
MME의 디바이스 이름 길이는 31자로 제한되어 있기 때문에 긴 디바이스 이름은 부분적으로만 표시될 수 있습니다.
문제들
Windows Vista 에서는 MME WaveIn/WaveOut 에뮬레이션에 장애가 도입되었습니다.샘플레이트 변환이 필요한 경우 이러한 API를 사용하는 웹 브라우저에서 오디오를 재생할 때 등 가청 노이즈가 발생할 수 있습니다.주는 것이 이전에 정할 수 있을 것의lowest-quality 변환 모드 빠른integer-based 선형 보간(예를 들어 새로운 샘플 두 가까운 견본의 다양한 부분 대신 가장 가까운 샘플의 정확한 duplicate[의심스러운 –을 논의하]으로 취해 진다), 때문에 더 이상 구성할 수 있는 내부 resampler, 기본 값입니다. 여러 버전의 Windows재샘플러는 Windows 7 및 Windows Server 2008의 핫픽스를 통해 고품질 모드로 설정할 [3][4]수 있습니다.
오디오 압축 관리자
Audio Compression Manager(ACM)는 오디오코덱(압축기/압축기)[5]을 관리하는 Windows 멀티미디어 프레임워크입니다.ACM은 API 사양으로 간주할 수도 있습니다.Windows Multimedia 와 연동하려면 , 코덱이 암묵적인 ACM 사양에 준거하고 있을 필요가 있습니다.ACM 파일은 파일 이름 확장자에 의해 인식됩니다..acm
또, ACM 파일에서는, WAV 나 AVI 와 같은 RIFF 호환 파일 타입을 「워퍼」로서 사용하고, ACM 로 서포트되고 있는 오디오 코덱에 의해서 부호화된 오디오 데이터를 보존합니다.
ACM은 구식 프레임워크/API로 간주되며 Microsoft는 적어도 DirectShow 사용을 권장하고 있습니다.단, ACM 및 관련 Video Compression Manager(VCM)와는 달리 DirectShow는 최종 사용자에게 파일을 인코딩하는 수단을 제공하지 않지만 콘텐츠 인코딩을 위한 엔드 투 엔드 그래프를 작성해야 합니다.ACM은 VBR 오디오스트림도 지원하지 않기 때문에 가변 비트레이트를 사용하는 경우 ACM을 통해 MPEG-4 AAC, Ogg Vorbis, FLAC 등의 새로운 코덱을 지원할 수 없습니다.Ogg Vorbis 스트림이 일정한 비트환율로 부호화되어 있는 한, Ogg Vorbis는, 예를 들면, RIFF 호환 파일(앞에서 설명한 WAVI 파일 등)에 짜넣어져 있는 경우, ACM 에서는 정상적으로 동작합니다.
Windows 에는, 다수의 ACM 코덱이 프리 인스톨 되어 있습니다.이러한 코덱의 리스트에 대해서는, WAV 파일 「Comparison of coding scheme」를 참조해 주세요.
ACM 코덱은 Microsoft가 할당한2 바이트 코드(TwoCC)로 식별됩니다.
DirectX오디오 도서관
KMixer
KMixer는 Kernel Audio Mixer 드라이버로 Windows 98에서 Windows XP로의 WDM Audio의 일부로 여러 사운드버퍼의 혼합을 처리합니다.
KMixer가 수행하는 작업입니다.시스템:
- 여러 PCM 오디오스트림 혼합
- 포맷, 비트 깊이(워드 길이라고도 함) 및 샘플링 속도 변환
- 스피커 설정 및 채널 매핑
Windows 98, Windows 2000 및 Windows Me에서는 KMixer의 최대 샘플링 속도는 100kHz입니다.Windows XP SP1 이후에서는 KMixer 오디오샘플링 레이트는 최대 200kHz를 [6][7][8]지원합니다.
문제들
KMixer는 특히 여러 사운드 스트림을 지원하지 않는 로우엔드 사운드 카드에서 오디오 스트림을 혼합할 필요가 없도록 함으로써 애플리케이션을 지원하도록 설계되었습니다.그러나 몇 가지 중대한 문제를 야기했다.
우선 KMixer의 지연은 약 30밀리초이며, 이 컴포넌트는 포트 클래스 오디오 드라이버 바로 위에 있기 때문에 DirectSound와 WinMM에 의해 발행된 오디오 스트림을 포함한 모든 오디오 스트림이 커널 [10]믹서를 통해 전달됩니다.오디오 하드웨어가 하드웨어 믹싱(하드웨어 버퍼링 또는 DirectSound 하드웨어 액셀러레이션이라고도 함)을 지원하는 경우 DirectSound는 렌더링 [11]장치에 직접 버퍼링합니다.따라서 DirectSound 스트림이 하드웨어 믹싱을 사용하는 경우 KMixer는 [12]바이패스됩니다.
Windows 98의 원래 릴리스와 같은 이전 릴리스에서는 KMixer가 지원하지 않는 데이터 포맷을 모두 혼합하려고 했습니다.사운드 카드의 S/PDIF 출력을 통해 AC3 인코딩 서라운드 사운드 스트림을 외부 홈 시네마 리시버에 전달하려고 하는 미디어 플레이어에서 다양한 문제가 발생했습니다.이 문제는 Windows Me에서 수정되어 Windows 98 Second Edition 및 Windows 2000 SP2의 [13]핫픽스로 제공되었습니다.Windows Me 이후 waveOut, DirectSound 및 DirectShow API는 AC-3 또는 WMA over S/PDIF 등의 비 PCM 형식을 지원하며 비 PCM 데이터는 KMixer를 거치지 않고 클래스 드라이버로 직접 전송됩니다.
KMixer를 우회하고 관련 문제를 피하기 위해 새로운 커널 모드 API인 Direct Kernel Streaming도 Windows 98에 도입되었습니다.
KMixer는 대부분의 [6]경우 사운드를 변경하지 않습니다.또한 DirectSound, ASIO, Direct Kernel Streaming 또는 WASAPI에 액세스하기 위한 추가 플러그인 없이 KMixer를 바이패스하는 많은 방법이 있습니다.예를 들어 Windows XP에서는 하드웨어 믹서와 함께 DirectSound(Winamp가 기본적으로 사용)를 사용하는 것이 KMixer를 [9]우회하는 방법입니다.
KMixer는 Windows Vista에서 삭제되었습니다.이것은 개량된 오디오아키텍처의 일부인 사용자 모드 WASAPI(Windows Audio Session API) 오디오엔진으로 대체되었습니다.오디오 엔진은 Shared 모드 또는 Exclusive 모드로 작동할 수 있습니다.공유 모드에서도 혼합은 계속됩니다.사전 혼합된 PCM 오디오는 사운드 제어판에서 구성할 수 있는 단일 형식(샘플 레이트, 비트 깊이 및 채널 수)으로 드라이버에 전송됩니다.WASAPI Exclusive 모드는 Open과 같은 서드파티 오디오 API를 사용하는 경우와 마찬가지로 믹서를 바이패스합니다.AL 또는 ASIO. 이들은 [14]아직 하드웨어에 직접 액세스할 수 있습니다.
커널 스트리밍
커널 스트리밍 또는 다이렉트 커널 스트리밍(Direct KS)은 스트리밍된 데이터의 커널 모드 처리를 지원하는 기술입니다.사운드 카드나 TV 튜너 카드등의 멀티미디어 디바이스에 대해서, 효율적인 리얼 타임 스트리밍을 실현합니다.커널 스트리밍을 통해 디바이스 드라이버는 DirectShow와 같은 필터와 핀을 커널 모드로 작성할 수 있으며 하드웨어에 대한 액세스와 낮은 레이텐시 통신을 제공하며 DirectShow 필터 그래프 내에서 계속 사용할 수 있습니다.
커널 스트리밍은 Windows 98에서 도입되었습니다.사운드 카드가 시스템 공급 포트 클래스 드라이버 PortCls.sys에서 사용하는 커스텀드라이버를 사용하거나 스트리밍 클래스 드라이버에서 사용하는 미니 드라이버를 실장하면 응용 프로그램은 KMixer를 완전히 바이패스하고 대신 커널 스트리밍 인터페이스를 사용하여 오디오 드라이버와 직접 대화하여 지연을 줄일 수 있습니다.Windows 98 에는 최초의 커널 스트리밍 드라이버 Stream.sys 가 포함되어 있습니다.Windows XP 에서는, Microsoft 는 또 다른 개량된 커널 스트리밍 클래스 드라이버인 AVStream 을 도입했습니다.
JRiver Media Center, JPLAY, foobar2000, Audirvana Studio, Winamp 등의 음악 플레이어는 커널 스트리밍을 지원합니다.Microsoft Windows 의 통상의 「WaveOut 메서드」에 비해, 커널 스트리밍은 CPU 의 시간을 적게 필요로 합니다.이 경우 KMixer 및 Windows 볼륨 컨트롤을 우회해야 합니다.커널 스트리밍에서는 커널 모드오디오 드라이버가 여러 클라이언트를 지원하지 않는 한 디바이스 공유도 할 수 없습니다.
Windows Vista 이전에 커널 스트리밍은 MME에서 사용되는 버퍼 체인을 가진 단일 클라이언트-드라이버 통신 프로토콜만을 제공했습니다. Vista부터는 단일 원형 버퍼를 기반으로 새로운 실시간 오디오(RT Audio, RTAudio 코덱과 혼동되지 않음) 프로토콜이 도입되었습니다.RT 오디오 프로토콜은 portcls.sys의 WaveRT 포트 드라이버에 의해 구현됩니다.Vista 이후 버전에서 오디오 서브시스템은 레거시 및 새 오디오 드라이버와 상호 작용할 수 있도록 두 프로토콜을 모두 지원합니다.그러나 KS를 사용하는 대부분의 오디오 애플리케이션은 단일 프로토콜(대부분의 경우 레거시)만 지원하므로 단일 유형의 오디오 드라이버로만 통신할 수 있습니다.
「 」를 참조해 주세요.
참조
- ^ Windows 오디오 드라이버 API 기본
- ^ Windows 2000 디바이스 인터페이스의 제한
- ^ "Policy for Sample Rate Conversion of Audio Streams (Windows Drivers)". Dev Center - Hardware. Microsoft. Retrieved 2012-01-17.
- ^ "Artifacts on Windows 7 due to sample rate conversion". Windows Desktop Development Forums discussion thread. Retrieved 2012-01-17.
- ^ "Audio Compression Manager". Microsoft. May 30, 2018.
- ^ a b "Policy for Mixing Audio Streams and Setting the Output Sample Rate". MSDN. Retrieved 2010-11-23.
- ^ "Windows Kmixer". Retrieved 2010-11-23.
- ^ "What is "bitperfect", and what do I have to do for bitperfect playback?". Retrieved 2010-11-23.
- ^ a b "KMixer Latency". MSDN. Retrieved 2010-11-23.
- ^ CakeWalk - Windows Pro 오디오 라운드 테이블
- ^ DirectSound 드라이버 모델
- ^ DirectSound 하드웨어 액셀러레이션 개요
- ^ 비 PCM Wave 형식 및 WDM 오디오 드라이버
- ^ "Winamp OpenAL Output Plug-in". Retrieved 2010-11-23.
외부 링크
- Microsoft 웹 사이트의 Kmixer에 대한 정보
- Microsoft 웹 사이트의 KMixer 지연 시간
- MS ACM 드라이버(코덱) 상세
- Microsoft Audio Compression Manager 코덱 기술 방법(설치 가능 드라이버)
- foobar2000 플러그인: foobar2000용 커널 스트리밍 플러그인
- Winamp 커널 스트리밍 플러그인
링크 부문
- 커널 스트리밍 컴포넌트
- MME API(WinMM)
- 커널 스트리밍 컴포넌트(React에서 재실장하기 위해 문서화되어 있음)OS)