top of page

리샘플링 필터에서 Ringing 현상이란?

  • siseong3
  • 7월 20일
  • 2분 분량

오디오나 이미지 같은 디지털 신호를 다룰 때, 샘플링 레이트(표본 추출 속도)를 변경하는 작업은 매우 흔합니다. 이를 리샘플링(Resampling) 이라고 하는데, 이 과정에서 우리가 예상하지 못한 "ringing" 현상이 발생할 수 있습니다.

이번 글에서는 리샘플링 필터에서 왜 ringing 현상이 발생하는지, 어떤 문제를 유발하는지, 그리고 어떻게 줄일 수 있는지에 대해 알아보겠습니다.


Ringing 현상이란?


Ringing은 신호의 급격한 변화 주변에서 발생하는 불필요한 진동 현상입니다. 오디오에서는 "찌릿찌릿한 고주파음"처럼 들리며, 이미지에서는 선명한 경계 주변에 얇은 줄무늬나 테두리처럼 보이는 시각적 노이즈가 생깁니다.

쉽게 말해, 존재하지 않아야 할 에코나 테두리 효과가 인위적으로 발생하는 것이죠.



ree

왜 이런 현상이 생길까요?


리샘플링 과정에서는 저역 통과 필터(Low-pass Filter) 가 사용됩니다. 이 필터는 고주파 성분을 제거해 에일리어싱(aliasing) 을 막는 데 핵심적인 역할을 합니다.

그런데 문제는 여기 있습니다:

  • 이론적으로 가장 이상적인 저역통과 필터는 sinc 함수 (sin(x)/x) 형태입니다.

  • 이 sinc 함수는 무한대까지 이어지는 진동 형태를 갖고 있습니다.

  • 실제 구현에서는 이 sinc 함수를 윈도잉(windowing) 하여 잘라내고 사용합니다.

  • 이때 잘려나간 sinc 함수는 진동을 멈추지 않기 때문에, ringing 현상이 필연적으로 발생합니다.



오디오에서의 Ringing 예시


오디오에서 ringing은 주로 다음과 같은 상황에서 두드러지게 들립니다:

  • 타악기 소리, 음의 시작/끝과 같은 급격한 변화를 포함한 신호

  • 특히 고해상도 오디오 파일을 업샘플링(up-sampling) 할 때

  • 예민한 청취 환경에서는 잔향처럼 느껴지거나, 귀에 거슬릴 수 있습니다.


ree

Ringing 줄이는 방법


Ringing은 완전히 제거할 수는 없지만, 아래와 같은 방법으로 효과적으로 억제할 수 있습니다:


방법

설명

필터 길이 줄이기

필터 kernel의 길이를 줄이면 ringing이 줄어들지만, 대신 고주파 손실이 생길 수 있음

윈도우 함수 변경

Blackman, Hann, Hamming, Kaiser 등 다양한 window를 사용해 sinc의 진동 억제

Minimum Phase 필터 사용

ringing이 한쪽(주로 후단)으로만 발생하게 하여 전반적 청감 품질 향상

Oversampling 사용

높은 샘플레이트에서 처리 후 다운샘플링 시 ringing이 덜 느껴짐

사용자 선택 옵션 제공

다양한 필터를 제공하여 사용자가 취향에 따라 선택 가능하게 함


Ringing 현상은 필터의 수학적 특성에서 비롯된 불가피한 부작용입니다. 하지만 이를 잘 이해하고 적절한 필터를 선택하면, 보다 자연스럽고 고품질의 리샘플링을 구현할 수 있습니다.

고해상도 오디오를 다루거나 음질에 민감한 작업을 할 때는, 필터 설정에 주의를 기울여 ringing을 최소화하는 것이 중요합니다.




Pine Player Pro와 같은 고급 플레이어에서는 ringing 억제를 위한 다양한 리샘플링 필터 옵션을 제공하고 있습니다. 자신의 청취 환경에 맞는 필터를 선택해 보세요.


ree

OSF(Over Sampling Filter)는 이미 가장 최적이 필터 알고리즘이 자동으로 설정되어 최적을 상태를 만들어 줍니다. 하지만 특정한 곡에 따라 다른 옵션을 주고 싶으시다면 CSF(Custom Sampling Filter) 를 선택하시고 아래 방식으로 설정을 시도해 보세요.


리샘플링 품질과 ringing 제어는 주로 다음 옵션으로 조절할 수 있습니다:

옵션

설명

ringing 영향

Filter Size

필터의 크기 (탭 수) 설정

크면 고음질이지만 ringing 증가 가능

Phase Shift

필터 위상 단계 수 (4 ~ 30)

낮으면 minimum-phase 효과 ringing 줄임, 높으면 매우 정밀한 주파수 응답하지만 ringing 가능성이 증가

Cutoff

컷오프 주파수 비율 (0.0 ~ 1.0)

작게 설정 시 alias 줄이고 ringing도 줄임

Precision

내부 계산 정밀도 (기본 16)

높은 정밀도는 더 깨끗한 결과 유도

filter_size (libsoxr 전용)

soxr 필터 크기 설정

ringing 억제에 영향 줌

Filter Type

필터 종류 지정

기본적으로 Kaiser를 권장하지만 riniging을 줄이기 위해서는 Lanczos, Blackman Nuttall 등을 시도


 
 
 

댓글


bottom of page