DirectPlay DirectPlay Voice 음성 CODEC   [목차열람] [주소복사] [슬롯비우기]
음성 CODEC
 
Microsoft DirectX 9.0

음성 CODEC


Microsoft® DirectPlay® 에 준비되는 압축/압축 해제 (CODEC) 알고리즘은, 저대역폭의 음성 압축과 압축 해제에 최적화되고 있다. 이러한 CODEC 는, 모두 8 kHz, 16 비트 단청의 형식의 데이터에 대해서 동작한다. 그러나, DirectPlay Voice 는, 음성 데이터로부터 중간 포맷에의 변환, 중간 포맷화등 음성 데이터에의 변환의 모든 것을 처리한다. 써드파티의 CODEC 는 지원 되지 않는다. 또, DirectPlay Voice 와 함께 사용하는 독자적인 CODEC 를 생성 할 수 없다.

대역폭의 요건이 낮아지면 음성 데이터의 오디오 품질도 저하하므로, 주의가 필요하다. 다음의 표는, 지원 되는 CODEC, 킬로바이트/초 (Kbps) 단위의 대역폭, 그러한 선택에 사용되는 압축 글로벌 일의 식별자 (GUID)를 나타낸다. 압축 GUID 는, Dvoice.h 에 정의된다.

CODEC대역폭GUID
Voxware VR12가변 (평균 1.2 Kbps)   DPVCTGUID_VR12
Voxware SC033.2 KbpsDPVCTGUID_SC03
Voxware SC066.4 KbpsDPVCTGUID_SC06
TrueSpeech8 KbpsDPVCTGUID_TRUESPEECH
Global System for Mobile Communications (GSM)13 KbpsDPVCTGUID_GSM
Microsoft Adaptive Delta Pulse Code Modulation (MS-ADPCM)32 KbpsDPVCTGUID_ADPCM
Pulse Code Modulation (PCM)64 KbpsDPVCTGUID_NONE

최초의 3 개의 CODEC 는, 고레벨의 압축을 제공해, 요구하는 리소스도 거의 같다. 500 MHz 의 Pentium III 클래스의 컴퓨터에서는, 이러한 CODEC 는 CPU 능력의 약 1.5 퍼센트를 사용한다. VR12 CODEC 의 소리는 싸구려 같고 로보트적이지만, SC03 및 SC06 CODEC 의 소리는 타당한 품질이다. PCM CODEC 의 소리는 고품질이며, 기본적으로는 비압축의 8 kHz, 16 비트 단청의 포맷의 음성 데이터이다.

  GSM, ADPCM, PCM CODEC 는 Microsoft Windows® 의 인스톨에 포함되어 있지만, 사용자가 인스톨 하고 있지 않을 가능성이 있다. 사용자에 대해서, 인스톨을 요구하지 않으면 안 되는 것도 있다. 시스템으로 이용 가능한 CODEC 를 판정하려면 ,IDirectPlayVoiceServer::GetCompressionTypes 를 호출한다. CODEC 가 표시되지 않는 경우, 대응하는 ACM CODEC 는 인스톨 되지 않는다.

CODEC 의 선택

다른 모든 게임 설정 파라미터와 같게, 음성 세션에 사용하는 CODEC 는 호스트가 제어한다. 음성 세션의 모든 멤버는, 같은 CODEC 를 사용할 필요가 있다. 피어 투 피어 음성 세션에서는, 음성 세션의 호스트가 반드시 게임 데이터의 호스트와 같은 필요는 없다. 호스트는,IDirectPlayVoiceServer::StartSession 를 호출할 때에 CODEC 를 선택한다. DVSESSIONDESC 구조체의 guidCT 멤버는, 사용하는 CODEC 의 압축 GUID 로 설정한다. 클라이언트는,IDirectPlayVoiceClient::GetSessionDesc 를 호출해 이 구조체를 취득할 수 있다.

같은 CODEC 는, 게임의 전체에 걸쳐서 이상적이지 않은 것도 있다. 예를 들어, player가 게임의 설정에 사용하는 로비 채팅 기능에는 1 개의 CODEC 를 사용해, 게임의 기동 후에 음성 통신을 처리하기 위해서 다른 CODEC 를 사용하는 등이다. 음성 세션중에, 동적으로 CODEC 를 변경할 수 없다. 다른 CODEC 로 전환하려면 , 현재의 음성 세션을 종료해, 새로운 CODEC 를 사용해 새로운 음성 세션을 생성 할 필요가 있다. 그러나, 기본으로 되는 DirectPlay 코어 세션을 종료하지 않아도, 음성 세션을 정지해 재개시 할 수 있다.

어떠한 형태의 네트워크 통신에서도 같지만, 음성 통신의 부하를 분석해, 게임 데이터와 음성 데이터의 통신에 필요한 대역폭을 확보할 수 있을지 어떨지를 확인하는 것이 중요하다. 음성에 의한 대역폭의 사용량은, 간단하게 분석할 수 있다. 동시에 발생 하면 생각되는 음성 스트림의 수를 예측해, CODEC 및 프로토콜 오버헤드에 필요한 대역폭의 합계를, 그 수에 곱셈한다. CODEC 의 선택에서는, CPU 의 소비라고 하는 이제 1 개의 요소도 고려할 필요가 있다. 네트워크의 대역폭과 같게, CPU 리소스의 소비도 스트림수에 응해 증가한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP