다음을 통해 공유


DirectSound 하드웨어 가속 개요

여러 오디오 어댑터는 하나 이상의 DirectSound 스트림에 대해 하드웨어 혼합을 수행하는 기능인 DirectSound 하드웨어 가속을 제공합니다. 하드웨어 혼합은 CPU에서 오디오 믹싱 작업을 오프로드하고 하드웨어 속도로 수행하여 성능을 향상시킵니다. 혼합 외에도 하드웨어는 SRC(샘플 속도 변환), 감쇠 및 필요에 따라 소프트웨어에서 수행해야 하는 3D 처리와 같은 관련 작업을 수행합니다.

모든 WaveCyclic 또는 WavePci 렌더링 디바이스는 오디오 스트림을 혼합하기 위한 하나 이상의 하드웨어 핀을 제공합니다. 단일 스트림 디바이스의 경우 KMixer 시스템 드라이버는 항상 사용 가능한 하드웨어 렌더링 핀 하나에 인스턴스화됩니다.

DirectSound 하드웨어 가속이 있는 디바이스는 둘 이상의 하드웨어 혼합 핀을 제공합니다. 각 추가 핀을 사용하여 DirectSound 스트림을 혼합할 수 있습니다. 하드웨어 믹서 핀에 공급되는 DirectSound 스트림은 KMixer를 우회하고 KMixer에서 소프트웨어 혼합의 대기 시간을 방지합니다. DirectSound는 해당 핀에 DirectSound 노드 순서 요구 사항을 준수하는 토폴로지를 포함하는 한 오디오 장치의 사용 가능한 모든 하드웨어 가속 믹서 핀을 사용합니다. 또한 DirectSound를 사용하려면 핀이 KSDATAFORMAT_SPECIFIER_DSOUND 지정한 DirectSound 데이터 형식을 지원해야 합니다(DirectSound Stream 데이터 형식 참조).

SysAudio 시스템 드라이버는 항상 KMixer용 하드웨어 핀 하나를 예약하므로 다른 (예약되지 않은) 하드웨어 핀이 모두 할당된 후 KMixer에서 추가 스트림을 혼합하여 예약된 하드웨어 핀에 공급할 수 있습니다.

DirectSound 소프트웨어 및 하드웨어 버퍼를 사용하여 웨이브 콘텐츠 렌더링의 그림은 이러한 개념을 보여 줍니다.

오디오 디바이스가 충분한 수의 하드웨어 혼합 핀을 제공하는 경우 DirectSound 애플리케이션의 모든 출력 스트림을 하드웨어 가속할 수 있습니다. 그렇지 않은 경우 DirectSound 애플리케이션에는 다음과 같은 몇 가지 옵션이 있습니다.

  • 사용 가능한 하드웨어 혼합 핀을 대기 시간이 가장 짧은 스트림에 정적으로 할당할 수 있습니다.

  • 핀을 공유 리소스 풀로 처리하여 필요에 따라 사용 가능한 하드웨어 혼합 핀을 스트림에 동적으로 할당할 수 있습니다.

자세한 내용은 Microsoft Windows SDK 설명서에서 음성 관리에 대한 설명을 참조하세요.

DirectSound는 2D 및 3D의 두 가지 유형의 하드웨어 믹서 핀을 사용할 수 있습니다. 2D 핀은 SRC, 감쇠 및 혼합을 수행하지만 3D 위치 지정은 수행하지 않습니다. DirectSound는 소프트웨어에서 필요한 감쇠 및 빈도 계산을 수행하고 결과를 2D 핀의 적절한 노드에 적용하여 2D 핀을 사용하여 3D 포지셔닝을 수행할 수 있습니다. 반면, 3D 핀에는 DirectSound를 사용하는 대신 3D 버퍼 및 3D 수신기 속성에서 직접 자체 3D 효과를 계산할 수 있는 3D 노드가 포함되어 있습니다. 3D 노드의 속성 목록은 KSNODETYPE_3D_EFFECTS. 2D 및 3D 핀에 대한 자세한 내용은 WDM 오디오에서 2D DirectSound 가속 지원 및 WDM 오디오에서3D DirectSound 가속 지원을 참조하세요.