사용자 도구

사이트 도구


음향:electric_circuit:dsp
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

음향:electric_circuit:dsp [2024/03/01] 정승환음향:electric_circuit:dsp [2024/04/14] (현재) – 바깥 편집 127.0.0.1
줄 38: 줄 38:
 =====디지털 신호 처리 장치===== =====디지털 신호 처리 장치=====
  
-Chip 제조사들은 해당 칩의 계산 능력을 사용할 수 있도록 해당 칩에서 돌아가는 전용의 명령어 세트를 여러가지 언어의 명령어 라이브러리 형태로 배포하는데, DSP 칩의 경우에는 보통 그 명령어들이 주로 신호 처리에 관련된 명령어들이다.((오디오 관련 명령어는 보통 필터, 푸리에 변환, 컨벌루젼 등))((CPU와 DSP의 차이점은 , CPU 는 원래는 정수 연산 용의 계산기+메모리나 하드웨어 등 주변기기 컨트롤러 형태 인것을 말하는데, 현재의 CPU는 부동소수 연산기+정수 연산기+컨트롤러 등으로 발전해왔고, DSP의 경우는 스펙에 따라 정수 연산 형태(24bit48bit)인 것이 있고, 부동소수 연산 형태(32bit 부동소수, 64bit 부동소수)인 것도 있다. 현재는 CPU가 매우 발전하여, 계산 능력은 CPU가 훨씬 우수하지만, 문제는 CPU 는 DSP에 비해 전력 소모량과 발열이 매우 크고, 가격이 DSP에 비해 비싸다.))+Chip 제조사들은 해당 칩의 계산 능력을 사용할 수 있도록 해당 칩에서 돌아가는 전용의 명령어 세트를 여러가지 언어의 명령어 라이브러리 형태로 배포하는데, DSP 칩의 경우에는 보통 그 명령어들이 주로 신호 처리에 관련된 명령어들이다.((오디오 관련 명령어는 보통 필터, 푸리에 변환, 컨벌루젼 등))((CPU와 DSP의 차이점은 , CPU 는 원래는 정수 연산 용의 계산기+메모리나 하드웨어 등 주변기기 컨트롤러 형태 인것을 말하는데, 현재의 CPU는 부동소수 연산기+정수 연산기+컨트롤러 등으로 발전해왔고, DSP의 경우는 스펙에 따라 정수 연산 형태(24-bit48-bit)인 것이 있고, 부동소수 연산 형태(32-bit 부동소수, 64-bit 부동소수)인 것도 있다. 현재는 CPU가 매우 발전하여, 계산 능력은 CPU가 훨씬 우수하지만, 문제는 CPU 는 DSP에 비해 전력 소모량과 발열이 매우 크고, 가격이 DSP에 비해 비싸다.))
  
 예를 들면, 오디오 시그널 처리의 핵심 해당하는 부분은 DSP가 빠르게 처리하고, 주로 사용하는 명령어 라이브러리를 DSP를 판매하면서 같이 제공한다. 그러면 그 DSP 를 이용한 제품(오디오 제품, 또는 플러그인)을 만드는 회사는 그 명령어들을 이용하여 원하는 신호 처리 소프트웨어를 편하게 제작이 가능하다.((사실 업계 일하시는 분들 말로는 제공하는 기본 명령어 라이브러리는 아주 기본적인 것들만 있어서 그냥 다시 명령어 라이브러리를 해당 Chip의 기계어로 새로 만들어 쓰는 경우가 더 많다고 한다. 그리고 그렇게 만들어서 쌓인 명령어 라이브러리는 해당 프로그래머/회사의 자산이 된다.))\\ 예를 들면, 오디오 시그널 처리의 핵심 해당하는 부분은 DSP가 빠르게 처리하고, 주로 사용하는 명령어 라이브러리를 DSP를 판매하면서 같이 제공한다. 그러면 그 DSP 를 이용한 제품(오디오 제품, 또는 플러그인)을 만드는 회사는 그 명령어들을 이용하여 원하는 신호 처리 소프트웨어를 편하게 제작이 가능하다.((사실 업계 일하시는 분들 말로는 제공하는 기본 명령어 라이브러리는 아주 기본적인 것들만 있어서 그냥 다시 명령어 라이브러리를 해당 Chip의 기계어로 새로 만들어 쓰는 경우가 더 많다고 한다. 그리고 그렇게 만들어서 쌓인 명령어 라이브러리는 해당 프로그래머/회사의 자산이 된다.))\\
줄 47: 줄 47:
 Analog Device 사의 SHARC 칩을 많이 사용한다. Analog Device 사의 SHARC 칩을 많이 사용한다.
  
-[{{음향:digital:dsp:pasted:20220113-133859.png|UAD 2, Avid HDX DSP((32bit 부동소수 DSP))}}]+<WRAP centeralign box>{{음향:digital:dsp:pasted:20220113-133859.png|UAD 2, Avid HDX DSP((32-bit 부동소수 DSP))}}\\ 
 +UAD 2, Avid HDX DSP((32-bit 부동소수 DSP))</WRAP>
  
-[{{음향:digital:dsp:pasted:20220113-133914.png|TC powercore}}]+<WRAP centeralign box>{{음향:digital:dsp:pasted:20220113-133914.png|TC powercore}}\\ 
 +TC powercore</WRAP>
  
-[{{음향:digital:dsp:pasted:20220113-133921.png|UAD1((UAD1 은 1개의 24bit DSP 칩만 사용했다.))}}]+<WRAP centeralign box>{{음향:digital:dsp:pasted:20220113-133921.png|UAD1((UAD1 은 1개의 24-bit DSP 칩만 사용했다.))}}\\ 
 +UAD1((UAD1 은 1개의 24-bit DSP 칩만 사용했다.))</WRAP>
  
 참고\\ 참고\\
 주요 DSP 엔진에 따른 심도 연산 스펙 \\ 주요 DSP 엔진에 따른 심도 연산 스펙 \\
-참고로 여기 나오는 DSP 제품 중에, 24bit DSP를 가진 UAD 나 TC Powercore 등은 다이내믹 계열 플러그인의 음질에 대하여 논란이 많았다.((이 시절엔 오히려 외장 DSP를 쓰는 플러그인이 CPU 기반 Native 플러그인보다 음질이 떨어지는 것에 대해 말이 많았을 정도.))\\+참고로 여기 나오는 DSP 제품 중에, 24-bit DSP를 가진 UAD 나 TC Powercore 등은 다이내믹 계열 플러그인의 음질에 대하여 논란이 많았다.((이 시절엔 오히려 외장 DSP를 쓰는 플러그인이 CPU 기반 Native 플러그인보다 음질이 떨어지는 것에 대해 말이 많았을 정도.))\\
  
-  * TDM : 48bit 정수 배정밀도 +  * TDM : 48-bit 정수 배정밀도 
-  * VST : 32bit 부동소수(최근엔 내부적으로 64bit 부동소수 배정밀도 가능),(CPU) +  * VST : 32-bit 부동소수(최근엔 내부적으로 64-bit 부동소수 배정밀도 가능),(CPU) 
-  * AAX : 32bit 부동소수 +  * AAX : 32-bit 부동소수 
-  * UAD 2: 32bit 부동소수 +  * UAD 2: 32-bit 부동소수 
-  * UAD 1: 24bit 정수 +  * UAD 1: 24-bit 정수 
-  * TC Powercore : 24bit 정수 +  * TC Powercore : 24-bit 정수 
-  * [[:유저위키:dsp:tc_electronic_system6000|TC System 6000]] : 32bit 부동소수(CPU) +  * [[:유저위키:dsp:tc_electronic_system6000|TC System 6000]] : 32-bit 부동소수(CPU) 
-  * [[유저위키:소프트웨어:waves:soundgrid:soundgrid_dsp_server|Waves soundgrid DSP]] : 32bit 부동소수(CPU) +  * [[유저위키:소프트웨어:waves:soundgrid:soundgrid_dsp_server|Waves soundgrid DSP]] : 32-bit 부동소수(CPU) 
-  * [[유저위키:아웃보드:lexicon_960l|Lexicon 960L]] : 32bit 부동소수(CPU)\\+  * [[유저위키:아웃보드:lexicon_960l|Lexicon 960L]] : 32-bit 부동소수(CPU)\\
  
 UAD 2의 경우에는 DSP 내장 기능인 IIR 필터 명령어를 이용한 안티 앨리어싱 필터를 빠르게 처리 가능하므로, 실시간 리샘플링을 효과적으로 할 수 있다, 들어오는 오디오 신호를 실시간으로 192kHz로 바꾸어서 192kHz로 연산을 한다.((UAD 만 지원하는 것은 당연히 아니다. CPU로 동작하는 플러그인도 이 기능을 넣으면 된다. Waves 경우도 당연히 이 기능이 되는 플러그인이 많다.)) 당연히 해당 플러그인의 품질이 매우 좋아지게 된다. 다만 모든 플러그인이 192kHz 실시간 리샘플링을 지원하지 않고  몇몇 개의 플러그인이 지원하며, 이 기능을 사용하는 플러그인은 매우 높은 점유율((48kHz기준으로 UAD 2의 경우에는 DSP 내장 기능인 IIR 필터 명령어를 이용한 안티 앨리어싱 필터를 빠르게 처리 가능하므로, 실시간 리샘플링을 효과적으로 할 수 있다, 들어오는 오디오 신호를 실시간으로 192kHz로 바꾸어서 192kHz로 연산을 한다.((UAD 만 지원하는 것은 당연히 아니다. CPU로 동작하는 플러그인도 이 기능을 넣으면 된다. Waves 경우도 당연히 이 기능이 되는 플러그인이 많다.)) 당연히 해당 플러그인의 품질이 매우 좋아지게 된다. 다만 모든 플러그인이 192kHz 실시간 리샘플링을 지원하지 않고  몇몇 개의 플러그인이 지원하며, 이 기능을 사용하는 플러그인은 매우 높은 점유율((48kHz기준으로
  4배, 보통 4배))을 가지기 때문에 한 두개 밖에 못쓰게 될 수도 있다. 아래의 내용은 해당 내용이고, UAD software 매뉴얼에서 발췌했다.  4배, 보통 4배))을 가지기 때문에 한 두개 밖에 못쓰게 될 수도 있다. 아래의 내용은 해당 내용이고, UAD software 매뉴얼에서 발췌했다.
  
-<WRAP round box>+<WRAP centeralign box>
 **UAD Plug-Ins and High Definition Audio**\\ **UAD Plug-Ins and High Definition Audio**\\
 Antialias Filtering\\ Antialias Filtering\\
줄 109: 줄 112:
 =====CPU를 DSP처럼 사용하는 경우===== =====CPU를 DSP처럼 사용하는 경우=====
  
-CPU는 따로 오디오 시그널 처리에 대한 명령어 라이브러리를 DSP 칩들 만큼 제공하고 있지는 않지만, 이미 CPU는 긴 역사를 통해 수많은 오디오 시그널 처리에 관한 소스들이 공개되어 있다. 만약 x86(x64) 기계어나, C 언어를 통해서 오디오 시그널 처리에 대한 명령어 라이브러리(([[음향:digital:openal|openAL]], JUCE와 같은 것들이 있다.))를 사용한다면 CPU도 충분히 DSP 칩으로써 동작할 수 있다. CPU의 경우는 "모든" 계산에 최적화된 "범용" 프로세서이기 때문이다. 오히려, DSP보다 훨씬 빠르고 강력한 계산 능력이 있기 때문에 훨씬 더 강력한 DSP 칩으로써 작동할 수도 있다. CPU의 연산 능력은 매우 발전하여 일반 DSP 칩의 수십,수백배에 달한다.+CPU는 따로 오디오 시그널 처리에 대한 명령어 라이브러리를 DSP 칩들 만큼 제공하고 있지는 않지만, 이미 CPU는 긴 역사를 통해 수많은 오디오 시그널 처리에 관한 소스들이 공개되어 있다. 만약 x86(x64) 기계어나, C 언어를 통해서 오디오 시그널 처리에 대한 명령어 라이브러리(([[컴퓨터:sound:openal|openAL]], JUCE와 같은 것들이 있다.))를 사용한다면 CPU도 충분히 DSP 칩으로써 동작할 수 있다. CPU의 경우는 "모든" 계산에 최적화된 "범용" 프로세서이기 때문이다. 오히려, DSP보다 훨씬 빠르고 강력한 계산 능력이 있기 때문에 훨씬 더 강력한 DSP 칩으로써 작동할 수도 있다. CPU의 연산 능력은 매우 발전하여 일반 DSP 칩의 수십,수백배에 달한다.
  
 다만 CPU는 DSP로만 만들어진 제품에 비해, 매우 전력 소모량이 크고 발열이 매우 심하다. 그리고 DSP 칩에 비해 매우 비싸다.((DSP 단가가 몇 만원 단위라면, CPU는 몇십 만원 단위이다.)) 거기에 추가로, 메인보드, 파워 서플라이, 메모리까지 하면 가격이 매우 비싸진다. 즉, DSP 제품에 비해 CPU 제품은 제작 비용이 매우 높아진다. 다만 CPU는 DSP로만 만들어진 제품에 비해, 매우 전력 소모량이 크고 발열이 매우 심하다. 그리고 DSP 칩에 비해 매우 비싸다.((DSP 단가가 몇 만원 단위라면, CPU는 몇십 만원 단위이다.)) 거기에 추가로, 메인보드, 파워 서플라이, 메모리까지 하면 가격이 매우 비싸진다. 즉, DSP 제품에 비해 CPU 제품은 제작 비용이 매우 높아진다.
줄 119: 줄 122:
 DSP 보드 구성 방법 중 하나인, DSP 칩을 여러개 사용해서 단일 CPU 와 같은 동급의 성능을 내려면, 여러 개의 DSP 칩을 1개의 DSP 칩 처럼 동작하게 만들어 주는 병렬 프로세서인 FPGA 칩이 필요한데, 이 FPGA 칩이 가격이 매우 비싸고 DSP 칩 8개에다가 FPGA 칩 1개를 구성해서 겨우 팬티엄 급의 계산 능력을 가지는 DSP 보드를 만드는 것이, 팬티엄 급의 CPU 로 구성된 보드 1개를 사는 것보다 가격이 높다.(UAD octa core 이야기 입니다.) DSP 보드 구성 방법 중 하나인, DSP 칩을 여러개 사용해서 단일 CPU 와 같은 동급의 성능을 내려면, 여러 개의 DSP 칩을 1개의 DSP 칩 처럼 동작하게 만들어 주는 병렬 프로세서인 FPGA 칩이 필요한데, 이 FPGA 칩이 가격이 매우 비싸고 DSP 칩 8개에다가 FPGA 칩 1개를 구성해서 겨우 팬티엄 급의 계산 능력을 가지는 DSP 보드를 만드는 것이, 팬티엄 급의 CPU 로 구성된 보드 1개를 사는 것보다 가격이 높다.(UAD octa core 이야기 입니다.)
  
-[{{음향:digital:dsp:pasted:20220113-133657.png|FPGA 칩 1개 + DSP 칩 8개((UAD octacore의 연산 능력은 팬티엄이나 I3 CPU 와 비슷한 수준이다)). 어떤 면에서는 가성비가 없다고 볼 수 있다.((가격이 컴퓨터 보다 비쌈.))}}]+<WRAP centeralign box>{{음향:digital:dsp:pasted:20220113-133657.png|}}\\ 
 +FPGA 칩 1개 + DSP 칩 8개((UAD octacore의 연산 능력은 팬티엄이나 I3 CPU 와 비슷한 수준이다)). 어떤 면에서는 가성비가 없다고 볼 수 있다.((가격이 컴퓨터 보다 비쌈.))</WRAP>
  
 하지만 CPU를 DSP로 쓰는 장비들의 경우 발열, 그리고 발열에 의한 냉각 용 팬 소음이 아직 해결해야 할 과제이다.  하지만 CPU를 DSP로 쓰는 장비들의 경우 발열, 그리고 발열에 의한 냉각 용 팬 소음이 아직 해결해야 할 과제이다. 
줄 137: 줄 141:
 DSP는 제로 레이턴시에 가깝게 동작한다. DSP는 제로 레이턴시에 가깝게 동작한다.
  
-CPU를 DSP로 활용하는 경우, 대다수의 사람들이 Windows나 맥 OS에서 CPU 네이티브 시스템을 연상하며 “레이턴시가 있지 않나?”하고 생각하는 사람들도 있다. 하지만 레이턴시는 어디까지나 OS가 멀티 스킹을 해야 해서 여러가지 어플리케이션에 대기시간을 할당하는 방식 때문에 필수적으로 오디오 처리 버퍼를 크게 사용해야 하기 때문에 존재하는 것이다. 만약 멀티태스팅 OS가 아닌 RTOS((Realtime operating system))를 사용하면 CPU도 실시간으로 동작하게 된다. Linux RT의 경우는 오디오 레이턴시가 1ms 정도로 나온다고 하고, DOS 와 같은 예전 OS도 멀티태스킹 OS가 아닌 RTOS 였다.+CPU를 DSP로 활용하는 경우, 대다수의 사람들이 Windows나 맥 OS에서 CPU 네이티브 시스템을 연상하며 “레이턴시가 있지 않나?”하고 생각하는 사람들도 있다. 하지만 레이턴시는 어디까지나 OS가 멀티스킹을 해야 해서 여러가지 어플리케이션에 대기시간을 할당하는 방식 때문에 필수적으로 오디오 처리 버퍼를 크게 사용해야 하기 때문에 존재하는 것이다. 만약 멀티태스킹 OS가 아닌 RTOS((Realtime operating system))를 사용하면 CPU도 실시간으로 동작하게 된다. Linux RT의 경우는 오디오 레이턴시가 1ms 정도로 나온다고 다.
  
 CPU를 DSP로 활용하는 위와 같은 제품들은 모두 DSP 처리를 해주는 RTOS를 사용하여 동작한다. CPU를 DSP로 활용하는 위와 같은 제품들은 모두 DSP 처리를 해주는 RTOS를 사용하여 동작한다.
줄 157: 줄 161:
   * ASIC : FPGA 로 만든 명령어 세트를 고정시켜 대량 생산한 것, 멀티 코어 프로세서에서 병렬 게이트 어레이 기능.    * ASIC : FPGA 로 만든 명령어 세트를 고정시켜 대량 생산한 것, 멀티 코어 프로세서에서 병렬 게이트 어레이 기능. 
  
-[{{ 음향:digital:dsp:pasted:20220113-042154.png |AMD ZEN Micro 아키텍쳐, 왼쪽이 ALU(정수 연산자) 오른쪽이 FPU(부동소수 연산자)((MMX나 AVX 는 부동소수 연산에 관련된 명령어 유닛들이다.))}}]+<WRAP centeralign box>{{ 음향:digital:dsp:pasted:20220113-042154.png |}}\\ 
 +AMD ZEN Micro 아키텍쳐, 왼쪽이 ALU(정수 연산자) 오른쪽이 FPU(부동소수 연산자)((MMX나 AVX 는 부동소수 연산에 관련된 명령어 유닛들이다.))</WRAP>
  
-[{{ 음향:digital:dsp:pasted:20220113-042202.png |CPU와 GPU의 차이}}]+<WRAP centeralign box>{{ 음향:digital:dsp:pasted:20220113-042202.png |CPU와 GPU의 차이}}\\ 
 +CPU와 GPU의 차이</WRAP>
  
 {{ youtube>taMH5Dickv4?large }}\\ {{ youtube>taMH5Dickv4?large }}\\
줄 165: 줄 171:
 {{ youtube>1BAZf3PsjWA?large }}\\ {{ youtube>1BAZf3PsjWA?large }}\\
  
-[{{ 음향:digital:dsp:pasted:20220113-042210.png |DSP와 FPGA의 차이}}]+<WRAP centeralign box>{{ 음향:digital:dsp:pasted:20220113-042210.png |DSP와 FPGA의 차이}}\\ 
 +DSP와 FPGA의 차이</WRAP>
  
 =====DSP LoadLock===== =====DSP LoadLock=====
줄 174: 줄 181:
  
  --- //[[merefox@Naver.com|retronica]] 2019/01/06 13:04//  --- //[[merefox@Naver.com|retronica]] 2019/01/06 13:04//
 +
 +
  

[홈레코딩 필독서]"모두의 홈레코딩"구매링크


음향/electric_circuit/dsp.1709248070.txt.gz · 마지막으로 수정됨: 2024/03/01 저자 정승환