오디오 리샘플러 DSP
오디오 리샘플러는 오디오 스트림에서 다음 작업 중 하나 또는 둘 다를 수행합니다.
- 샘플링 속도를 변경합니다.
- 채널 수를 변경합니다.
CLSID
CLSID_CResamplerMediaObject
인터페이스
형식
PCM 또는 IEEE 부동 소수점
미디어 유형은 압축되지 않은 PCM 또는 부동 소수점 오디오 형식을 지정해야 합니다.
- IMFTransform 인터페이스의 경우 압축되지 않은 오디오 미디어 형식에 설명된 대로 미디어 형식을 초기화합니다.
- IMediaObject 인터페이스의 경우 미디어 형식은 FORMAT_WaveFormatEx 형식이어야 합니다. 자세한 내용은 DMO_MEDIA_TYPE 참조하세요.
속성
필수 특성
리샘플러를 사용하려면 다음 특성을 설정해야 합니다.
사용자 지정 채널 매핑
오디오 리샘플러는 다음 정보에 따라 입력 오디오 채널을 출력 오디오 채널에 매핑합니다.
- 채널 수입니다. 미디어 형식의 MF_MT_AUDIO_NUM_CHANNELS 특성 또는 WAVEFORMATEX 구조체의 nChannels 멤버에 제공됩니다.
- 화자 위치에 채널을 할당하는 채널 마스크입니다. 채널 마스크는 미디어 형식의 MF_MT_AUDIO_CHANNEL_MASK 특성 또는 WAVEFORMATEXTENSIBLE 구조체의 dwChannelMask 멤버에 제공됩니다.
- 매핑 가중치의 행렬입니다.
행렬에는 각 출력 채널이 입력 채널의 가중 평균이 되도록 일련의 가중치가 포함됩니다.
IWMResamplerProps::SetUserChannelMtx를 호출하거나 MFPKEY_WMRESAMP_CHANNELMTX 속성을 설정하여 채널 매핑에 대한 사용자 지정 행렬을 지정할 수 있습니다. 사용자 지정 행렬이 제공되지 않으면 Audio Resampler는 기본 행렬 집합을 사용합니다.
기본 채널 매핑
사용자 지정 행렬을 지정하지 않으면 오디오 Resampler DSP는 채널 매핑에 기본값을 사용합니다.
다음 테이블에서 채널은 축약됩니다.
- L: 왼쪽
- R: 오른쪽
- C: Center
- LFE: 낮은 빈도 효과
- BL: 왼쪽 뒤로
- BR: 오른쪽 뒤로
- SL: 왼쪽 둘러싸기
- SR: 오른쪽 둘러싸기
다음 표에서는 6개 채널(마스크 0x3F)을 2개 채널에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL | BR | |
---|---|---|---|---|---|---|
L | 0.314 | 0 | 0.222 | 0.031 | 0.268 | 0.164 |
R | 0 | 0.314 | 0.222 | 0.031 | 0.164 | 0.268 |
다음 표에서는 6개 채널(마스크 0x60F)을 2개 채널에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | SL | SR | |
---|---|---|---|---|---|---|
L | 0.320 | 0 | 0.226 | 0.032 | 0.292 | 0.130 |
R | 0 | 0.320 | 0.226 | 0.032 | 0.130 | 0.292 |
다음 표에서는 6개 채널(마스크 0x3F 또는 0x60F) 채널을 1개 채널에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL(SL) | BR(SR) | |
---|---|---|---|---|---|---|
C | 0.192 | 0.192 | 0.192 | 0.038 | 0.192 | 0.192 |
다음 표에서는 8개 채널(마스크 0x63F)을 2개 채널에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.222 | 0 | 0.157 | 0.022 | 0.189 | 0.116 | 0.203 | 0.090 |
R | 0 | 0.222 | 0.157 | 0.022 | 0.116 | 0.189 | 0.090 | 0.203 |
다음 표에서는 8개 채널(마스크 0x63F)을 1개 채널에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
C | 0.139 | 0.139 | 0.139 | 0.028 | 0.139 | 0.139 | 0.139 | 0.139 |
다음 표에서는 8개 채널(마스크 0x63F)을 6개 채널(마스크 0x3F)에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.518 | 0 | 0 | 0 | 0 | 0 | 0.189 | 0 |
R | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 | 0.189 |
C | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 | 0 |
Lfe | 0 | 0 | 0 | 0.518 | 0 | 0 | 0 | 0 |
BL | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 | 0 |
BR | 0 | 0 | 0 | 0 | 0 | 0.518 | 0 | 0.482 |
다음 표에서는 8개 채널(마스크 0x63F)을 6개 채널(마스크 0x60F)에 매핑하기 위한 기본 계수를 보여 줍니다.
L | R | C | Lfe | BL | BR | SL | SR | |
---|---|---|---|---|---|---|---|---|
L | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
R | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 | 0 |
C | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 | 0 |
Lfe | 0 | 0 | 0 | 0.447 | 0 | 0 | 0 | 0 |
Sl | 0 | 0 | 0 | 0 | 0.429 | 0.124 | 0.447 | 0 |
Sr | 0 | 0 | 0 | 0 | 0.124 | 0.429 | 0 | 0.447 |
계수 테이블을 해석하는 방법을 이해하려면 6개 채널을 2로 매핑하는 첫 번째 테이블을 고려합니다. 테이블의 첫 번째 행(0.314, 0, 0.222, 0.031, 0.268, 0.164)은 각 입력 채널이 출력의 왼쪽 채널에 얼마나 많이 기여하는지 지정하는 가중치의 벡터입니다. 테이블의 두 번째 행(0, 0.314, 0.222, 0.031, 0.164, 0.268)은 각 입력 채널이 출력의 오른쪽 채널에 얼마나 많이 기여하는지 지정하는 가중치의 벡터입니다.
다음 수식은 출력 채널이 계산되는 방법을 보여 줍니다.
L_out = L*0.314 + C*0.222 + LFE*0.031 + BL*0.268 + BR*0.164
R_out = R*0.314 + C*0.222 + LFE*0.031 + BL*0.164 + BR*0.268
참고
오디오 Resampler DSP를 사용하여 채널 수를 늘리면 추가된 채널에 0 값이 할당됩니다.
출력 품질
IWMResamplerProps::SetHalfFilterLength를 호출하거나 MFPKEY_WMRESAMP_FILTERQUALITY 속성을 설정하여 오디오 Resampler DSP의 출력 품질을 지정할 수 있습니다. 출력 품질을 지정하지 않으면 Audio Resampler DSP에서 기본 품질 값인 30을 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
헤더 |
|
DLL |
|