음질 손실 없는 오디오 재생 시스템을 저비용으로 구현한다

2015.05.29 11:06:09

도킹 시스템 및 장치 액세서리 설계 시 오디오 품질을 손상시키지 않고 가능한 한 낮은 비용으로 샘플 레이트를 변환해야 한다. 이를 해결하기 위해 설계자들은 유연한 샘플 레이트를 보장하는 하이엔드 오디오 DAC를 사용해왔다. 여기서는 오디오 데이터 전송에 편리한 USB 인터페이스에 대해 알아보고, USB 지터 문제를 완화시키는 샘플 레이트 컨버터에 대해서도 살펴본다.

휴대형 디지털 오디오 장치, 기타 디지털 음원용 오디오 도킹 스테이션 및 액세서리 설계 시, 개발자들은 최고 품질의 오디오 재생 성능을 위해 노력하는 한편 비용에 대한 제약을 받게 된다. 


일반적인 도킹 스테이션이나 디바이스 액세서리의 경우, 장치에 연결되는 디지털 음원은 독(Dock)의 USB 인터페이스를 통해 시리얼 스테레오 오디오 데이터 스트림을 전송한다. 독은 다른 중요한 작업을 수행하는 동시에 데이터 스트림을 캡처하여 해당 스트림을 특정 샘플 레이트로 DAC (Digital-to-Analog Converter)에 라우팅한다(그림 1).



그림 1. ‌일반적인 오디오 도킹 스테이션 및 장치 액세서리는 시리얼 데이터 입력 채널, 디시리얼라이저, 샘플 레이트 조정 회로,

출력 필터링 기능을 제공하는 DAC, 오디오 전력 출력단 등으로 구성되어 있다



다양한 디지털 음원들이 존재하지만 모두 동일한 샘플링 레이트를 사용하는 것은 아니므로, 독은 일반적으로 샘플링 주파수를 소스에 맞춰 조정하고 샘플링된 데이터 스트림을 공통 데이터 레이트로 변환한다. 따라서, 도킹 시스템 또는 장치 액세서리 설계 시의 주요 기술 과제는 오디오 품질을 저하시키지 않고 샘플 레이트를 저렴하게 변환하는 것이다. 그러므로 전용 샘플 레이트 변환 회로나 내장된 PLL(Phase-Locked Loop)을 통해 샘플링된 오디오 데이터의 안정적인 통신을 위해 유연한 샘플 레이트를 보장하는 하이 엔드 오디오 DAC가 일반적으로 사용됐다.


USB 인터페이스는 오디오 데이터 전송에 매우 편리한 인터페이스이다. 하지만 전문 오디오의 요구사항을 충족시키려면 USB 지터에 의한 미묘한 음질 손실 문제를 해결해야 한다. 


샘플 레이트 컨버터는 샘플 레이트를 변환할 뿐만 아니라 USB 지터 문제도 완화시킬 수 있다.

 ‌

디지털 오디오 데이터의 기초


아날로그 오디오가 이산(Discrete) 디지털 포맷으로 변환될 때, 아날로그 신호는 아날로그 신호 중 가장 높은 주파수 성분에 대해 최소 2배의 주파수 또는 나이퀴스트 레이트(Nyquist rate)로 샘플링된다. 따라서 이 경우 0kHz∼20kHz 범위의 오디오 신호는 적합한 나이퀴스트 레이트인 44.1kHz의 데이터 레이트로 샘플링될 수 있으므로, 아날로그 영역으로 다시 변환될 때 에일리어싱(Aliasing) 없이 신호를 재구성할 수 있다.


설계자들은 샘플링 레이트뿐만 아니라 변환 해상도를 결정해야 한다. 아날로그 신호를 16비트 워드 또는 24비트 워드로 변환할 수 있을까? 


CD 오디오 파일의 경우에는 44.1kHz 샘플 레이트의 16비트 해상도가 표준이다. 그러나 오디오 애호가들을 위한 고성능 CD 음악 옵션들도 있는데, 이들 표준 중 하나는 데이터를 24비트 해상도로 인코딩하며 샘플링 레이트를 96kHz까지 증가시킨다. 


오디오 전문가들을 위해서는 오디오 파일을 샘플당 24비트의 해상도로 인코딩하며, 스튜디오에서 마스터 제작 준비 시 오디오 믹싱 및 처리에 충분한 헤드룸을 제공한다.


해상도 선택 시 설계자들은 압축을 통해 음질과 파일 크기를 절충할 수 있다. 해상도가 높을수록 오디오 품질은 좋아지지만, 저장 파일의 크기가 커진다. 예를 들어 44.1kHz 샘플 레이트와 16비트 해상도를 갖고 있는 4분 길이의 로우(raw) 스테레오 오디오 파일은 약 42MB이다. 하지만 해상도를 낮추면 저장 크기 요건을 낮출 수 있다. 12비트 해상도의 경우, 최종 오디오 파일 크기를 약 30MB로 낮출 수 있지만 오디오 품질은 상대적으로 저하된다.


USB 인터페이스는 고품질 오디오 스트리밍을 간편하게 처리할 수 있다. 이 인터페이스는 탁월한 고품질 오디오 성능을 제공하며 많은 오디오 사용자들 사이에서 보편적으로 사용되고 있다.


USB 오디오는 광범위한 사용편의성을 제공하며, 유연한 오디오 인터페이스와 함께 사용될 경우에는 높은 샘플 레이트의 고해상도 오디오를 지터가 거의 없는 상태로 전송할 수 있다. 


등시성(Isochronous) 데이터 전송은 다양하게 사용되고 있으며, 특히 실시간 및 일정한 속도로 음원에서 오디오 데이터를 스트리밍하는 데에도 사용된다.


오디오 스트림의 샘플 레이트에 의해 크기가 결정되는 스테레오 오디오 데이터 패킷은 USB 풀 스피드 연결 시 1ms마다 USB 프레임의 일부로 전송된다. 또한 다양한 컨트롤 및 처리 장치 중에서도 USB 오디오는 볼륨, 톤, 게인, 이퀄라이저 등의 일반적인 특성들을 제어할 수 있다.


 ‌품질은 높이고 비용은 낮춘다


비트 레이트와 샘플 레이트의 차이는, 재생 시스템 내 하드웨어나 독이 각각 다른 레이트의 데이터 스트림을 처리할 수 있어야 한다는 것을 의미한다.


이를 위해 시스템은 각각의 샘플 레이트에 대해 위상 잠금 기능을 지원하며 각 재생 옵션을 자동으로 조정하는, 상대적으로 복잡한 DAC(결과적으로 비용이 높음)를 사용하거나 저비용 DAC를 사용하는 외부 샘플 레이트 컨버터 IC를 사용하고, 마이크로컨트롤러(MCU)에서 동작하는 알고리즘을 통해 저가의 단순한 DAC도 처리할 수 있는 표준 샘플 레이트 및 비트 레이트로 모든 스트림을 변환해야 한다(그림 2). 저가의 DAC는 높은 SNR(신호대잡음비), 낮은 전력 소모, 낮은 지터에 최적화되어 있다.



그림 2. 현재 사용되고 있는 일반적인 재생 솔루션


그림 2에 나타난 솔루션들은 많은 재생 시스템 설계자들이 사용하고 있다. 설계자가 기존의 SRC, DAC 솔루션을 구입하여 샘플 레이트 변환 및 DAC 재생을 실행한다고 가정해 보자. 이 솔루션은 높은 SNR 특성, 저전력, 최소 지터 등을 위해 최적화되었다. 하지만 SRC 칩 추가 비용이 전체 시스템 비용에 더해진다. 


또 다른 측면에서는 소수점 클록(Fractional Clock) 처리를 위해 위상 잠금 회로와 스위칭 커패시터 필터를 가진 고급 오디오 DAC를 사용하므로, 각각 다른 샘플 레이트의 데이터 스트림에 잠금 기능을 제공할 수 있다.


이와 같은 접근법들은 실행 가능한 솔루션들을 제공하지만, 추가적인 칩이나 상대적으로 높은 비용의 DAC가 필요하다. 그러나 40MIPS에서 80MIPS까지의 성능 수준을 제공하는 32비트 마이크로컨트롤러 또는 16비트 디지털 신호 컨트롤러(DSC)를 사용할 경우, 레이트 변환 칩을 추가로 사용할 필요가 없다. 이는 적정 성능의 32비트 MCU 또는 16비트 DSC 아키텍처가 오디오 품질 손상 없이 온 칩 샘플 레이트 변환 기능을 제공하기 때문이다. SRC 출력 샘플 레이트는 일정하므로 저가의 고품질 24비트 오디오 DAC를 사용할 수 있다.


예를 들어 현재 많은 시스템들은 USB 인터페이스를 통해 통신, 디스플레이 컨트롤, 버튼 컨트롤, 볼륨 컨트롤, 인터페이스 관리 등과 같은 기능들을 처리하기 위해 8/16비트 임베디드 MCU를 적용하고 있다.


PIC32 및 dsPIC33E DSC 고성능 MCU를 사용하여 칩상에서 SRC 기능을 수행하면서 모든 시스템 인터페이스 및 관리 기능들을 수행할 수 있다. 예를 들어 고성능 MCU를 사용할 경우, 중간 계산이 32비트이므로 오디오 품질을 그대로 유지하면서 샘플 레이트 변환 기능을 수행할 수 있다. 따라서 계산값 절삭에 의한 저하를 방지할 수 있다. 


설계자들은 PIC32 또는 dsPIC33E 제품군에서 제공하는 온 칩 비휘발성 플래시 메모리, SRAM, 주변장치 등과 같은 시스템 자원들을 선택하여 시스템 요건에 따라 적절한 디바이스를 선택할 수 있다(그림 3). 일부 디바이스들은 전력에 민감한 애플리케이션에서 사용할 수 있도록 저전력 특성도 제공하고 있다.


그림 3. ‌PIC32 MCU는 MIPS 프로세서 코어를 사용하여 샘플 레이트 변환 처리에 적절한 성능을 제공하며, 도킹 시스템 또는

그 외 애플리케이션에서 요구되는 다른 모든 기능에 충분한 헤드룸을 제공한다



 ‌

MCU에서 샘플 레이트 변환


그림 4. ‌샘플 레이트 변환 회로가 입력 오디오 데이터의 샘플 레이트를 증가시키고, 샘플 레이트가 증가된 오디오를 필터링한 후 원하는 샘플 레이트로 오디오 데이터를 제공하기 위해 샘플 레이트를 낮춘다



이제 가장 일반적인 오디오 샘플링 레이트에 대한 샘플 레이트 변환 방법에 대해 살펴보자.
SRC 알고리즘은 44.1kHz 또는 32kHz로 샘플링된 실시간 오디오 데이터를 48kHz의 샘플링 레이트로 변환한다. USB 링크 프레임 레이트를 수용하기 위해 입력 오디오 데이터 프레임 크기는 1밀리초 간격으로 32kHz 입력에 대해 64개의 스테레오 샘플을, 44.1kHz 입력에 대해 88개 또는 90개의 스테레오 샘플을 사용한다. 출력은 1밀리초당 96개의 스테레오 샘플로 구성된다.


일반적인 SRC 블록의 경우, 수신되는 오디오 데이터는 업 샘플러 또는 보간 단계(Interpolation Stage)를 통과한다. 다음으로 신호는 안티 에일리어싱 로 패스 필터를 통과한 후 다운 샘플러 또는 데시메이션 단계(Decimation Stage)로 전달된다.


변환 비율이 3 : 2일 때 32kHz 샘플 레이트에서 48kHz 샘플 레이트로 변환하는 경우를 생각해보자. 입력은 샘플 레이트가 3배 증가된 후 급격한 롤 오프 특성을 통해 신호를 평탄화시키는 FIR 필터로 전달된다. 0 삽입에 의한 손실 보상을 위해, 3의 이득 계수(Gain Factor)가 평탄화된 신호에 적용된다. 48kHz의 샘플링 레이트를 갖고 있는 출력 오디오 신호를 얻기 위해 결과적으로 중간 신호의 샘플 레이트가 2배로 낮아진다(그림 4). 샘플 레이트를 낮추면 데시메이션된 샘플의 필터링 시 리던던시가 생성되므로 이 샘플의 필터링을 스킵할 수 있다. 이것은 다상 필터링 기법을 단순화시킨 형태이며 SRC 레이트를 향상시킨다.


44.1kHz에서 48kHz로 샘플 레이트 변환 시 변환 비율은 160 : 147이며, 처리 블록은 다음과 같다. 모든 입력 샘플에 대해 입력에 0을 삽입하고, FIR 필터로 신호를 평탄화시켜 샘플 레이트를 2배로 증가시킨다. 2의 이득 계수를 평탄화된 신호에 적용하여 0 삽입에 의한 손실을 보상한다. 다항식 보간법을 통해 88.2kHz의 147개 샘플 시퀀스를 모두 48kHz의 80개 샘플로 줄인다. 이를 통해 출력 오디오 데이터의 샘플링 레이트가 48kHz로 되도록 한다. 리던던시를 감소시키기 위해 다상 필터링 역시 이 모드에서 적용된다. 여기서 필터 길이와 출력 품질 간 상충 관계가 발생하며, 이때 전체 처리 부하는 필터에 의해 좌우된다.


마이크로칩사의 코드 라이브러리에서는 SRC(Sample-Rate Conversion) 라이브러리를 무료로 제공하고 있다. 알고리즘은 약 30MIPS의 프로세서 대역폭, 6KB 플래시, 1.5KB의 RAM을 필요로 하며 우수한 SNR 특성을 제공한다.

 ‌

USB 클록 불일치


그림 5. 클록 지터는 DAC 언더런 또는 오버런을 발생시키며, 이러한 에러는 미묘한 가청 잡음으로 나타난다


USB 사양은 무선 간섭에 대한 내성을 갖기 위해 USB 클록 주파수에 허용오차 값과 한계가 필요하다. 허용 가능한 오차값을 갖고 있는 USB 클록은 USB 클록 불일치가 일어날 경우 오디오 품질이 저하된다.


실시간 스트리밍 오디오 샘플이 정확하고 일정한 시간 간격으로 공급되어야만 DAC가 설정된 예상 고정 레이트로 디지털 샘플을 아날로그 신호로 변환할 수 있다. 특정 샘플 레이트로 오디오 샘플을 예측 및 수신하는 DAC 클록은 샘플을 절대 놓치지 않는다. 샘플을 놓칠 경우 DAC는 정확한 스트리밍 오디오 신호를 재현할 수 없으므로 듣는 사람은 미묘한 잡음을 감지하게 된다.


USB 모듈이 내장된 MCU 또는 마이크로프로세서에서, USB 클록은 특정 값의 외부 크리스털 오실레이터를 사용하는 온 칩 PLL 등과 같은 소스를 통해 독립적인 클록에서 생성된다. 


클록은 USB 인터페이스에서 생성되는 것이 아니므로, 클록 불일치는 버퍼 오버런 또는 언더런을 일으켜 잡음의 원인이 된다(그림 5).


오디오 품질 저하와 관련된 오디오 데이터 언더런 또는 오버런 문제는 우수한 ASRC(Asynchronous Sample Rate Converter)를 사용할 경우 간단히 해결할 수 있다. 이 경우 입력 샘플 레이트는 지터 감쇠 특성을 고려하여 추정되고, 내부 필터는 새로운 샘플 레이트에 대해 동적으로 튜닝된다. 그러나 우수한 ASRC는 매우 고가이며 시스템은 여전히 아날로그 변환을 위해 DAC를 필요로 한다.


효과적인 저가 솔루션으로는 피드백 메커니즘을 사용하여 USB 오디오 패킷을 버퍼링하고, DAC 클록을 조정해 언더런 또는 오버런을 방지하는 것을 들 수 있다. 


피드백 메커니즘은 버퍼 레벨을 모니터링하여 이를 허용 가능한 범위에서 유지할 수 있도록 보장하고, 고가의 ASRC보다 우수하지는 않더라도 최소한 동등한 품질 수준을 달성할 수 있도록 한다.


한 가지 옵션은 버퍼 레벨 피드백에 따라 샘플 레이트를 부분적으로 조정할 수 있는 PLL 지원 DAC를 사용하는 것이다. 이 솔루션은 ASRC 칩보다 상대적으로 비용이 낮다. PIC32 MCU 및 dsPIC33E DSC는 유연하고 독립적인 시스템 클록 PLL과 독립적인 클록 소스를 사용하는 USB 클록 PLL을 제공한다. 


USB PLL은 외부 크리스털을 통해 클록을 제공받음으로써 필요한 48MHz USB 클록을 정확히 달성할 수 있다. 시스템 클록은 FRC(Fast RC) 클록을 소스로 하여 생성된다.


PIC32 및 dsPIC33E 디바이스의 경우, FRC 클록을 조정할 수 있으며 DAC 클록을 조정하도록 설정할 수도 있다. 이를 통해 버퍼 언더런 및 오버런을 방지하면서 0.2%의 변동 범위 내에서 수용할 수 있는 DAC 샘플 레이트를 유지할 수 있다. 이것은 다른 2가지 솔루션 대비 최저 비용이며 저전력 특성도 달성할 수 있다.


독 또는 장치 액세서리는 소스의 샘플 레이트를 조정하거나 샘플링된 데이터 스트림을 일반적인 데이터 레이트로 변환해야 한다. 또한 USB 클록 불일치에 의한 품질 손실은 샘플 레이트 튜닝으로 해결해야 한다. 버퍼 오버런 및 언더런을 방지하기 위한 샘플 레이트 변환 및 샘플 레이트 튜닝의 책임을 외부 칩이 아닌 MCU 등의 주처리 장치로 이전함으로써, 높은 오디오 품질을 유지하는 동시에 시스템 비용을 절감할 수 있다.


적절한 전력 수준으로 샘플 레이트를 변환하고, 저가이지만 고품질인 DAC와 인터페이스하는 32비트 MCU 또는 16비트 DSC(Digital Signal Controller)는 샘플 레이트를 튜닝함으로써 USB 클록 차이로 인한 오디오 품질 저하를 방지할 수 있다.
PIC32 MCU 또는 dsPIC33E DSC 디바이스와 같은 고성능 MCU는 다양하고 유연한 기능들을 이용하여 비용 절감, 저전력 소모 특성의 전문적인 오디오 품질 솔루션을 제공한다.

Jayanth Madapura Microchip Technology Inc.


정리 : 임재덕 기자 (eled@hellot.net)


Copyright ⓒ 첨단 & automationasia.net



상호명(명칭) : ㈜첨단 | 등록번호 : 서울,아54000 | 등록일자 : 2021년 11월 1일 | 제호 : 오토메이션월드 | 발행인 : 이종춘 | 편집인 : 임근난 | 본점 : 서울시 마포구 양화로 127, 3층, 지점 : 경기도 파주시 심학산로 10, 3층 | 발행일자 : 2021년 00월00일 | 청소년보호책임자 : 김유활 | 대표이사 : 이준원 | 사업자등록번호 : 118-81-03520 | 전화 : 02-3142-4151 | 팩스 : 02-338-3453 | 통신판매번호 : 제 2013-서울마포-1032호 copyright(c)오토메이션월드 all right reserved