Digital Signal Processor
DSP는 디지털 신호 처리에 특화된 전자 장치 또는 칩을 가리키는 용어입니다. 이러한 DSP 칩은 아날로그 신호를 디지털로 샘플링하고, 디지털 신호를 처리하며, 다양한 신호 처리 작업을 수행하는 데 사용됩니다.
간단하게 정의하면, DSP는 다음과 같은 주요 역할을 수행합니다:
DSP는 현대 전자 제품과 시스템에서 빠른 데이터 처리와 복잡한 신호 분석을 가능하게 하므로 디지털 시대에서 더욱 중요한 역할을 합니다.
DSP 칩을 주로 제작하는 회사로는 Texas instrument, Motorola, Analog device 와 같은 회사들이 있다.
DSP is a term referring to specialized electronic devices or chips designed for digital signal processing. These DSP chips are used to sample analog signals into digital, process digital signals, and perform various signal processing tasks.
In a simple definition, DSP performs the following key roles:
DSP plays a crucial role in modern electronics and systems, enabling fast data processing and complex signal analysis. Therefore, it has become increasingly important in the digital age.
Companies that primarily manufacture DSP chips include Texas Instruments, Motorola, Analog Devices, and others.
Chip 제조사들은 해당 칩의 계산 능력을 사용할 수 있도록 해당 칩에서 돌아가는 전용의 명령어 세트를 여러가지 언어의 명령어 라이브러리 형태로 배포하는데, DSP 칩의 경우에는 보통 그 명령어들이 주로 신호 처리에 관련된 명령어들이다.1)2)
예를 들면, 오디오 시그널 처리의 핵심 해당하는 부분은 DSP가 빠르게 처리하고, 주로 사용하는 명령어 라이브러리를 DSP를 판매하면서 같이 제공한다. 그러면 그 DSP 를 이용한 제품(오디오 제품, 또는 플러그인)을 만드는 회사는 그 명령어들을 이용하여 원하는 신호 처리 소프트웨어를 편하게 제작이 가능하다.3)
사실 DSP로 작동하는 소프트웨어(DSP 믹서나 플러그인)를 제작하는 것은 범용으로 이미 소스 코드가 많이 공개되어 있는 CPU 용 소프트웨어 제작보다 난이도가 높다.4)
Analog Device 사의 SHARC 칩을 많이 사용한다.
TC powercore
UAD16)
참고
주요 DSP 엔진에 따른 심도 연산 스펙
참고로 여기 나오는 DSP 제품 중에, 24-bit DSP를 가진 UAD 나 TC Powercore 등은 다이내믹 계열 플러그인의 음질에 대하여 논란이 많았다.7)
UAD 2의 경우에는 DSP 내장 기능인 IIR 필터 명령어를 이용한 안티 앨리어싱 필터를 빠르게 처리 가능하므로, 실시간 리샘플링을 효과적으로 할 수 있다, 들어오는 오디오 신호를 실시간으로 192kHz로 바꾸어서 192kHz로 연산을 한다.8) 당연히 해당 플러그인의 품질이 매우 좋아지게 된다. 다만 모든 플러그인이 192kHz 실시간 리샘플링을 지원하지 않고 몇몇 개의 플러그인이 지원하며, 이 기능을 사용하는 플러그인은 매우 높은 점유율9)을 가지기 때문에 한 두개 밖에 못쓰게 될 수도 있다. 아래의 내용은 해당 내용이고, UAD software 매뉴얼에서 발췌했다.
UAD Plug-Ins and High Definition Audio
Antialias Filtering
Some UAD plug-ins process audio at high sample rates internally, allowing replication
of complex nonlinear behaviors such as distortion, saturation, and other classic analog
characteristics. These UAD plug-ins incorporate a linear phase antialiasing filter that
removes audio artifacts far above the audio spectrum in order to deliver the highest
possible sound quality.
Note: The tables on the following pages list which UAD plug-ins use the linear
phase antialiasing filter.
The audible frequency spectrum is generally recognized as 20Hz – 20 kHz, and the UAD
antialiasing filter removes all audio above 30 kHz regardless of the session sample rate.
This practice eliminates all audio artifacts, but may not be compatible with certain HD
audio distributors that check for audio above 30 kHz.
If antialiased UAD plug-ins are used in HD audio productions (generally defined as audio
with sample rates of 96 kHz and higher), either avoid using these UAD plug-ins on the
master Output bus, or use UAD plug-ins without the antialiasing filter on the master
Output bus instead.
Tip: When using any UAD plug-in that has a MIX control (such as API 2500,
Fairchild 670, etc.), setting the MIX control to any value below 100% blends full
bandwidth audio with the filtered audio — allowing antialiased UAD plug-ins to be
used on the master bus for HD audio distributors.
For more in-depth information, see this article from Sound On Sound magazine:
• www.soundonsound.com/sound-advice/q-why-do-universal-audio-restrictprocessing-bandwith-their-uad-plug-ins
CPU는 따로 오디오 시그널 처리에 대한 명령어 라이브러리를 DSP 칩들 만큼 제공하고 있지는 않지만, 이미 CPU는 긴 역사를 통해 수많은 오디오 시그널 처리에 관한 소스들이 공개되어 있다. 만약 x86(x64) 기계어나, C 언어를 통해서 오디오 시그널 처리에 대한 명령어 라이브러리10)를 사용한다면 CPU도 충분히 DSP 칩으로써 동작할 수 있다. CPU의 경우는 “모든” 계산에 최적화된 “범용” 프로세서이기 때문이다. 오히려, DSP보다 훨씬 빠르고 강력한 계산 능력이 있기 때문에 훨씬 더 강력한 DSP 칩으로써 작동할 수도 있다. CPU의 연산 능력은 매우 발전하여 일반 DSP 칩의 수십,수백배에 달한다.
다만 CPU는 DSP로만 만들어진 제품에 비해, 매우 전력 소모량이 크고 발열이 매우 심하다. 그리고 DSP 칩에 비해 매우 비싸다.11) 거기에 추가로, 메인보드, 파워 서플라이, 메모리까지 하면 가격이 매우 비싸진다. 즉, DSP 제품에 비해 CPU 제품은 제작 비용이 매우 높아진다.
이러한 여러 문제들 때문에 이제까지 어느 제조사도 CPU를 DSP 칩 대신 쓰는 일을 하지 않았으나, 그걸 하고 있는 제조사들이 등장하기 시작했다.
이게 가능하게 된 이유는, CPU 의 가성비가 DSP 칩의 가성비를 넘어서고 있기 때문이다.
DSP 보드 구성 방법 중 하나인, DSP 칩을 여러개 사용해서 단일 CPU 와 같은 동급의 성능을 내려면, 여러 개의 DSP 칩을 1개의 DSP 칩 처럼 동작하게 만들어 주는 병렬 프로세서인 FPGA 칩이 필요한데, 이 FPGA 칩이 가격이 매우 비싸고 DSP 칩 8개에다가 FPGA 칩 1개를 구성해서 겨우 팬티엄 급의 계산 능력을 가지는 DSP 보드를 만드는 것이, 팬티엄 급의 CPU 로 구성된 보드 1개를 사는 것보다 가격이 높다.(UAD octa core 이야기 입니다.)
하지만 CPU를 DSP로 쓰는 장비들의 경우 발열, 그리고 발열에 의한 냉각 용 팬 소음이 아직 해결해야 할 과제이다.
CPU를 DSP로 활용하는 경우, 대다수의 사람들이 Windows나 맥 OS에서 CPU 네이티브 시스템을 연상하며 “레이턴시가 있지 않나?”하고 생각하는 사람들도 있다. 하지만 레이턴시는 어디까지나 OS가 멀티태스킹을 해야 해서 여러가지 어플리케이션에 대기시간을 할당하는 방식 때문에 필수적으로 오디오 처리 버퍼를 크게 사용해야 하기 때문에 존재하는 것이다. 만약 멀티태스킹 OS가 아닌 RTOS14)를 사용하면 CPU도 실시간으로 동작하게 된다. Linux RT의 경우는 오디오 레이턴시가 1ms 정도로 나온다고 한다.
CPU를 DSP로 활용하는 위와 같은 제품들은 모두 DSP 처리를 해주는 RTOS를 사용하여 동작한다.
사실 최근에 제작되어 만들어지는 디지털 콘솔들, 마이다스의 M32, 베링거의 X32, Yamaha의 PM, CL, TF 등, 여러가지 디지털 콘솔의 내부를 자세히 들여다보면 이러한 RTOS15)가 설치되어 있고, 그 위에 실시간으로 돌아가는 소프트웨어 믹서 어플리케이션을 구성한 것이다. 거기에 추가로 따로 DSP 보드가 있는 경우가 많다.(주로 디지털 콘솔 용으로 사용되는 OS는 Yamaha는 리눅스, 디지코 등은 Windows 7기반이다. 안정성이 좋다고 알려진 맥 OSX를 사용하는 디지털 콘솔은 의외로 없다. 이유는 무엇일까?)
참고할만한 글
CPU와 GPU의 차이
DSP와 FPGA의 차이