다음을 통해 공유


오디오 리샘플러 DSP

오디오 리샘플러는 오디오 스트림에서 다음 작업 중 하나 또는 둘 다를 수행합니다.

  • 샘플링 속도를 변경합니다.
  • 채널 수를 변경합니다.

CLSID

CLSID_CResamplerMediaObject

인터페이스

형식

PCM 또는 IEEE 부동 소수점

미디어 유형은 압축되지 않은 PCM 또는 부동 소수점 오디오 형식을 지정해야 합니다.

속성

필수 특성

리샘플러를 사용하려면 다음 특성을 설정해야 합니다.

사용자 지정 채널 매핑

오디오 리샘플러는 다음 정보에 따라 입력 오디오 채널을 출력 오디오 채널에 매핑합니다.

  • 채널 수입니다. 미디어 형식의 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 [데스크톱 앱만 해당]
헤더
Wmcodecdsp.h
DLL
Resampledmo.dll

추가 정보

디지털 신호 프로세서