사용자 도구

사이트 도구


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

차이

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

차이 보기로 링크

음향:digital:latency [2024/02/05] – [ASIO Buffer 만을 고려한 이론적인 레이턴시] 정승환음향:digital:latency [2024/04/14] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ======레이턴시====== ======레이턴시======
  
-**Latency** : 지연 시간, 시간 지연+**Latency** : 지연 시간
  
-디지털 세상에서는 아날로그의 소리를 디지털로 바꾸거나, 디지털를 아날로그로 변환할 때 시간이 걸리고, 사운드를 처리하는 데에 모두 시간이 걸린다. 그 시간을 레이턴시라고 한다.((쉽게 말해서 소리가 지연된다.))+디지털 세상에서는 아날로그의 소리를 디지털로 바꾸거나, 디지털을 아날로그로 변환할 때 시간이 걸리고, 사운드를 처리하는 데에 모두 시간이 걸린다. 그 시간을 레이턴시라고 한다.((쉽게 말해서 소리가 지연된다.))
  
-{{음향:digital:latency:pasted:20220113-022559.png?450}}+{{:음향:digital:20240229-162118.png?450}}
  
 =====Roundtrip Latency===== =====Roundtrip Latency=====
  
-우리가 소리를 듣는 데에는 위 그림처럼, A/D 컨버팅 과정에서 걸리는 시간, 하드웨어적으로 그 변환된 디지털 신호를 CPU에서 계산할 수 있도록 메인 메모리에 기록하는데 드는 시간(Bus input buffer latency), ASIO 에서 소리를 처리하는데 걸리는 시간(ASIO input latency)을 거쳐서 다시 ASIO에서 소리를 내보내고(ASIO Output Latency), 그 계산 처리 결과물을 메모리에서 기기로 다시 이동시키고(Bus Output Buffer Latency), 그 디지털 신호를 다시 아날로그 신호로 출력하는 D/A 컨버팅의 시간이 걸린다.+우리가 소리를 듣는 데에는 위 그림처럼, A/D 컨버팅 과정에서 걸리는 시간, 하드웨어적으로 그 변환된 디지털 신호를 CPU에서 계산할 수 있도록 메인 메모리에 기록하는데 드는 시간(BUS input buffer latency), ASIO 에서 소리를 처리하는데 걸리는 시간(ASIO input latency)을 거쳐서 다시 ASIO에서 소리를 내보내고(ASIO Output Latency), 그 계산 처리 결과물을 메모리에서 기기로 다시 이동시키고(BUS Output Buffer Latency), 그 디지털 신호를 다시 아날로그 신호로 출력하는 D/A 컨버팅의 시간이 걸린다.
  
-우리가 DAW의 오디오 인터페이스 설정 등에서 볼 수 있는 Input, Output Latency는 이러한 Bus Latency와 ASIO Latency 값만을 합산해서 보여준다. 그리고 이러한 Input/Output 레이턴시의 총합을 Roundtrip Latency라고 한다. ((A/D D/A에 따른 레이턴시는 합산 되지 않는다.)) 여기에 A/D, D/A 과정에 따른 레이턴시까지 합산한 값은, 실질적으로 측정 프로그램으로 측정해야 하며 Realworld Latency라고 한다.+우리가 DAW의 오디오 인터페이스 설정 등에서 볼 수 있는 Input, Output Latency는 이러한 BUS Latency와 ASIO Latency 값만을 합산해서 보여준다. 그리고 이러한 Input/Output 레이턴시의 총합을 Roundtrip Latency라고 한다. ((A/D D/A에 따른 레이턴시는 합산 되지 않는다.)) 여기에 A/D, D/A 과정에 따른 레이턴시까지 합산한 값은, 실질적으로 측정 프로그램으로 측정해야 하며 Realworld Latency라고 한다.
  
-만약, PCI 방식이나 PCIe 방식, Thunderbolt, Ethernet 또는 일부 USB 방식 등에서 DMA (Direct Memory Access)가 지원되어 CPU와 메모리에 직접적으로 디지털 신호를 보내고 받을 수 있는 오디오 인터페이스라면 Bus Input, Output Latency 는 없거나 매우 짧은 시간이다.((특정 오디오 인터페이스들이 아주 짧은 레이턴시가 가능한 이유, 또한 저가형 USB 오디오인터페이스들이 긴 레이턴시를 가지는 이유이기도 하다. DMA를 가능하게 하는 별도의 Chipset이나 기능이 없기 때문.)) 이러한 DMA 기능을 가진 오디오 인터페이스를 비동기식(Asynchronous)이라고 한다. DAW가 ASIO 데이터를 CPU 처리하는 동일한 시간에 작동하지 않고, 입출력에 입력되고, 나가는 오디오 데이터를 메모리에 미리미리 전달하여 처리하기 때문이다. +만약, PCI 방식이나 PCIe 방식, Thunderbolt, Ethernet 또는 일부 USB 방식 등에서 DMA (Direct Memory Access)가 지원되어 CPU와 메모리에 직접적으로 디지털 신호를 보내고 받을 수 있는 오디오 인터페이스라면 BUS Input, Output Latency 는 없거나 매우 짧은 시간이다.((특정 오디오 인터페이스들이 아주 짧은 레이턴시가 가능한 이유, 또한 저가형 USB 오디오인터페이스들이 긴 레이턴시를 가지는 이유이기도 하다. DMA를 가능하게 하는 별도의 Chipset이나 기능이 없기 때문.)) 이러한 DMA 기능을 가진 오디오 인터페이스를 비동기식(Asynchronous)이라고 한다. DAW가 ASIO 데이터를 CPU 처리하는 동일한 시간에 작동하지 않고, 입출력에 입력되고, 나가는 오디오 데이터를 메모리에 미리미리 전달하여 처리하기 때문이다. 
  
 Thunderbolt의 경우 태생이 PCIe 방식에서 왔기 때문에, 이러한 비동기식, DMA 동작을 자체 칩셋을 통해 직접 처리할 수 있는 경우가 많고((따라서 대부분의 PCIe, Thunderbolt 방식들은 매우 낮은 레이턴시를 보여준다.)), USB 의 경우는 오디오 인터페이스 USB 컨트롤러 칩셋 자체에 DMA 를 처리해주는 기능이 들어가 있으면 DMA 동작을 수행할 수 있다.((USB 방식에도 불구하고 매우 낮은 레이턴시를 보여주는 제품들이 있다.)) 이더넷의 경우에는 이더넷 오디오 프로토콜을 연결하는 인터페이스 카드에서 DMA 지원 여부가 결정된다. Thunderbolt의 경우 태생이 PCIe 방식에서 왔기 때문에, 이러한 비동기식, DMA 동작을 자체 칩셋을 통해 직접 처리할 수 있는 경우가 많고((따라서 대부분의 PCIe, Thunderbolt 방식들은 매우 낮은 레이턴시를 보여준다.)), USB 의 경우는 오디오 인터페이스 USB 컨트롤러 칩셋 자체에 DMA 를 처리해주는 기능이 들어가 있으면 DMA 동작을 수행할 수 있다.((USB 방식에도 불구하고 매우 낮은 레이턴시를 보여주는 제품들이 있다.)) 이더넷의 경우에는 이더넷 오디오 프로토콜을 연결하는 인터페이스 카드에서 DMA 지원 여부가 결정된다.
  
  
-[{{:음향:digital:20220921-114635.png|단테 전용 칩으로 DMA 동작을 수행하기 때문에 엄청나게 낮은 레이턴시를 보장하는 Dante accel card}}]+<WRAP centeralign box>{{:음향:digital:20220921-114635.png?450|}}\\ 
 +단테 전용 칩으로 DMA 동작을 수행하기 때문에 엄청나게 낮은 레이턴시를 보장하는 Dante accel card</WRAP>
  
  
 =====대역폭과 레이턴시===== =====대역폭과 레이턴시=====
  
-많은 사람들이 Thunderbolt 같은 대역폭이 높은 연결방식이 당연히 레이턴시가 짧을 것이라고 생각하는 경우가 많다. 하지만 대역폭은 어디까지나 대역폭일 뿐이고 오디오 처리 속도와는 관련이 없다. 사실 아주 예전의 오디오 인터페이스들의 경우는 대역폭이 너무 낮아서 한번에 처리해야 할 비트레이트를 한번에 처리하지 못하고 두번, 세번에 걸쳐 전송하는 경우가 있었으나 지금의 인터페이스들의 전송 대역폭은 오디오 신호의 실시간 비트레이트보다 훨씬 높기 때문에 지금은 해당하지 않는다. 24bit 96kHz 1채널(모노)의 비트레이트는 2.3Mbps 이고, 64채널을 동시 녹음시 2.3 x 64 = 147.2Mbps 이다. 이는 USB 2.0의 이론상 대역폭인 480Mbps(일반적인 USB 2.0 기기는 실제적으로는 70%(288Mbps) 정도의 성능을 내어준다고 한다.)에 못미친다.+많은 사람들이 Thunderbolt 같은 대역폭이 높은 연결방식이 당연히 레이턴시가 짧을 것이라고 생각하는 경우가 많다. 하지만 대역폭은 어디까지나 대역폭일 뿐이고 오디오 처리 속도와는 관련이 없다. 사실 아주 예전의 오디오 인터페이스들의 경우는 대역폭이 너무 낮아서 한번에 처리해야 할 비트레이트를 한번에 처리하지 못하고 두번, 세번에 걸쳐 전송하는 경우가 있었으나 지금의 인터페이스들의 전송 대역폭은 오디오 신호의 실시간 비트레이트보다 훨씬 높기 때문에 지금은 해당하지 않는다. 24-bit 96kHz 1채널(모노)의 비트레이트는 2.3Mbps 이고, 64채널을 동시 녹음시 2.3 x 64 = 147.2Mbps 이다. 이는 USB 2.0의 이론상 대역폭인 480Mbps(일반적인 USB 2.0 기기는 실제적으로는 70%(288Mbps) 정도의 성능을 내어준다고 한다.)에 못미친다.
  
-[{{:음향:digital:20221025-165134.png|UA apollo Thunderbolt 레이턴시, 48kHz 128 samples}}] +<WRAP centeralign box>{{:음향:digital:20221025-165134.png|}}\\ 
-[{{:음향:digital:20221025-170739.png|Scarlett 2i2 USB 레이턴시, 48kHz 128 samples}}]     +UA apollo Thunderbolt 레이턴시, 48kHz 128 samples</WRAP> 
 +<WRAP centeralign box>{{:음향:digital:20221025-170739.png|}}\\ 
 +Scarlett 2i2 USB 레이턴시, 48kHz 128 samples</WRAP>     
  
 8차선 도로를 달리는 최고 속도 100km/h 차와, 2차선 도로를 달리는 최고 속도 100km/h 의 차를 생각하면 된다. 대역폭은 도로의 차선에 해당하고, 레이턴시는 최고 속도에 해당한다. 여전히 속도는 100km/h로 동일할 뿐이다. 8차선 도로를 달리는 최고 속도 100km/h 차와, 2차선 도로를 달리는 최고 속도 100km/h 의 차를 생각하면 된다. 대역폭은 도로의 차선에 해당하고, 레이턴시는 최고 속도에 해당한다. 여전히 속도는 100km/h로 동일할 뿐이다.
줄 38: 줄 41:
 =====Near zero latency===== =====Near zero latency=====
  
-거의 0ms 에 가까운 레이턴시+  * 거의 0에 가까운 레이턴시 
 +  * 보통 2ms 이하를 말한다.
  
-보통 2ms 이하를 말한다. +보통 오디오 인터페이스의 DSP 믹서나 디지털 믹스 콘솔에서 많이 사용하는 용어로, 일반적인 DSP 믹서는 완벽한 제로 레이턴시로 동작하지 않기 때문에 제로 레이턴시라는 말보단 Near zero latency라는 말을 사용한다.((DSP도 신호처리를 하는 것에 시간이 걸린다.)) DSP 칩을 무엇을 쓰느냐에 따라 달라질 수 있고, DSP 믹서 소프트웨어에 따라서도 달질 수 있으나보통 2ms 이내로 동작하도록 만든다.
- +
-보통 오디오 인터페이스의 DSP Mixer 에서 많이 사용하는 용어로, DSP Mixer는 완벽한 0ms로 동작하지 않기 때문에 Zero latency라는 말보단 Near zero latency라는 말을 사용한다. DSP 칩을 무엇을 쓰느냐에 따라 달라질 수 있고, DSP mixer 소프트웨어에 따라서도 달질 수 있으나 보통 2ms 이내로 동작하도록 만든다.+
  
 =====가상악기의 레이턴시와 실제 오디오 녹음 시의 레이턴시===== =====가상악기의 레이턴시와 실제 오디오 녹음 시의 레이턴시=====
줄 51: 줄 53:
   * 오디오 인풋 다이렉트 모니터링 : Near Zero Latency   * 오디오 인풋 다이렉트 모니터링 : Near Zero Latency
  
-우리가 VSTi 등의 가상악기를 연주할 경우, MIDI 입력 레이턴시는 0ms에 가깝다. 오로지 ASIO Output Latency, D/A 레이턴시만이 악기의 소리의 오디오 출력에 관여하기 때문에, MIDI 시퀀싱이나 VSTi 연주 등에서는 일반적으로 ASIO Output Latency 만 고려하면 된다. ASIO input 레이턴시와는 관계가 없기 때문에, 입력되는 오디오에 대한 소프트웨어 모니터링 보다 절반 정도의 레이턴시만 고려하면 된다.+우리가 VSTi 등의 가상악기를 연주할 경우, MIDI 입력 레이턴시는 0ms에 가깝다. 오로지 ASIO Output Latency, D/A 레이턴시만이 악기의 소리의 오디오 출력에 관여하기 때문에, MIDI 시퀀싱이나 VSTi 연주 등에서는 일반적으로 ASIO Output Latency 만 고려하면 된다. ASIO input 레이턴시와는 관계가 없기 때문에, 입력되는 오디오에 대한 소프트웨어 모니터링을 하는 경우보다 절반 정도의 레이턴시만 고려하면 된다.
  
-사실, 실제 피아노의 경우에도 건반을 끝까지 누르고 나서 해머가 현을 때릴 때 까지 약 5ms 정도의 레이턴시가 있다.((다만 피아노 제조사들도 이 레이턴시를 더 줄이기 위해 해머 액션을 계속 발전시켜왔다.)) 아마도 어느 정도 존재하는 ASIO Output latency 는 이와 비슷하게 셋팅될 것이다.+사실, 실제 피아노의 경우에도 건반을 끝까지 누르고 나서 해머가 현을 때릴 때까지 약 5ms 정도의 레이턴시가 있다.((다만 피아노 제조사들도 이 레이턴시를 더 줄이기 위해 해머 액션을 계속 발전시켜왔다.)) 아마도 어느 정도 존재하는 ASIO Output latency 는 이와 비슷하게 셋팅될 것이다.
  
 =====ASIO Buffer 만을 고려한 이론적인 레이턴시===== =====ASIO Buffer 만을 고려한 이론적인 레이턴시=====
줄 70: 줄 72:
  
  
-위의 계산에서 보면 ASIO Latency 말고 추가로 레이턴시가 존재하지 않는 이상적인 오디오 인터페이스의 경우라도 128 Samples 96kHz에서 최소한 Roundtrip Latency((Input + Output Latency))가 2.6ms가 됨을 알 수 있다.+위의 계산에서 보면 ASIO Latency 말고 추가로 레이턴시가 존재하지 않는 이상적인 오디오 인터페이스의 경우라도 128 Samples 96kHz에서 최소 Roundtrip Latency((Input + Output Latency))가 2.6ms가 됨을 알 수 있다.
  
 보통 디지털 믹서나 DSP 믹서들에서 Near zero latency라고 할때 레이턴시를 2.0ms 이하로 만들기 때문에, 2.6ms 정도면 실시간으로 오디오를 소프트웨어 모니터링으로 들으면서 사용하는 데는 무리는 없을 것 같다. 하지만, 이 이상의 레이턴시라면, 아마도 민감한 연주자나 보컬은 소리가 살짝 늦게 나오는 것 같다며 불평 할 수 있다. 보통 인/아웃 전체 레이턴시가 5ms 정도 이상이 되면 불편하게 된다. ((실제로 민감한 연주자나 보컬은 불평한다.)) 보통 디지털 믹서나 DSP 믹서들에서 Near zero latency라고 할때 레이턴시를 2.0ms 이하로 만들기 때문에, 2.6ms 정도면 실시간으로 오디오를 소프트웨어 모니터링으로 들으면서 사용하는 데는 무리는 없을 것 같다. 하지만, 이 이상의 레이턴시라면, 아마도 민감한 연주자나 보컬은 소리가 살짝 늦게 나오는 것 같다며 불평 할 수 있다. 보통 인/아웃 전체 레이턴시가 5ms 정도 이상이 되면 불편하게 된다. ((실제로 민감한 연주자나 보컬은 불평한다.))
줄 84: 줄 86:
 **16분 음표 1개=0.07초=70ms** **16분 음표 1개=0.07초=70ms**
  
-그래서 7ms의 레이턴시만 있어도 연주자에게는 10%의 오차이다.\\+그래서 3.5ms의 레이턴시만 있어도 연주자에게는 5%의 오차이다.\\ 
 +7ms의 경우에는 10%의 오차\\
 14ms의 경우에는 20%의 오차\\ 14ms의 경우에는 20%의 오차\\
 20ms의 경우에는 30%의 오차 이것은 연주에 심각한 문제를 가져올 수 있는 수치이다.\\ 20ms의 경우에는 30%의 오차 이것은 연주에 심각한 문제를 가져올 수 있는 수치이다.\\
줄 110: 줄 113:
 [[음향:audio_production:recording:console_monitoring|콘솔 모니터링]], 다이렉트 모니터링 [[음향:audio_production:recording:console_monitoring|콘솔 모니터링]], 다이렉트 모니터링
  
-그에 비해 아예 아날로그 믹서 를 통해서 모니터링하고 녹음만 오디오 인터페이스로 한다던지, 오디오 인터페이스의 자체 다이렉트 모니터링 기능이나 자체 내장된 DSP mixer를 이용한 모니터링의 경우는 어떠한 경우에도 실시간(Zero Latency 또는 Near zero latency)을 보장하기 때문에, 연주 녹음이나 보컬 녹음을 하는 경우에 가급적 소프트웨어 모니터링은 끄고 이러한 하드웨어 모니터링을 하는 것이, 녹음 퀄리티 향상에 도움이 된다.((DAW 에서 모니터링을 켜고 하드웨어 모니터링도 같이 하면 소리가 겹쳐 들리게 된다.))+그에 비해 아예 아날로그 믹서 를 통해서 모니터링하고 녹음만 오디오 인터페이스로 한다던지, 오디오 인터페이스의 자체 다이렉트 모니터링 기능이나 자체 내장된 DSP 믹서를 이용한 모니터링의 경우는 어떠한 경우에도 실시간(Zero Latency 또는 Near zero latency)을 보장하기 때문에, 연주 녹음이나 보컬 녹음을 하는 경우에 가급적 소프트웨어 모니터링은 끄고 이러한 하드웨어 모니터링을 하는 것이, 녹음 퀄리티 향상에 도움이 된다.((DAW 에서 모니터링을 켜고 하드웨어 모니터링도 같이 하면 소리가 겹쳐 들리게 된다.))
  
-다만 하드웨어 모니터링은 오디오 인터페이스에서 자체적으로 들어오는 오디오 신호를 바로 모니터링으로 보내주는 것 이므로, DAW에서 사용되는 믹서나 플러그인 등과는 상관 없이 원래의 오디오 인터페이스에서 처리된 소리로만 들리게 된다.((오디오 인터페이스의 DSP 믹서의 자체적인 이펙터나 플러그인이 있으면 이것은 작동한다. 그래서 오디오 인터페이스의 자체 DSP mixer에 추가로 컴프레서나 이퀄라이저가 있거나 전용 플러그인을 걸 수 있는 제품들이 선호되기도 한다.))+다만 하드웨어 모니터링은 오디오 인터페이스에서 자체적으로 들어오는 오디오 신호를 바로 모니터링으로 보내주는 것 이므로, DAW에서 사용되는 믹서나 플러그인 등과는 상관 없이 원래의 오디오 인터페이스에서 처리된 소리로만 들리게 된다.((오디오 인터페이스의 DSP 믹서의 자체적인 이펙터나 플러그인이 있으면 이것은 작동한다. 그래서 오디오 인터페이스의 자체 DSP 믹서에 추가로 컴프레서나 이퀄라이저가 있거나 전용 플러그인을 걸 수 있는 제품들이 선호되기도 한다.))
  
 **가급적, 녹음 시에는 소프트웨어 모니터링은 보다는 다이렉트 모니터링, 또는 [[음향:audio_production:recording:console_monitoring|콘솔 모니터링]]을 사용하는 것을 추천한다.** **가급적, 녹음 시에는 소프트웨어 모니터링은 보다는 다이렉트 모니터링, 또는 [[음향:audio_production:recording:console_monitoring|콘솔 모니터링]]을 사용하는 것을 추천한다.**
  
 =====게임 모드===== =====게임 모드=====
-TV나 사운드 기기 등에서 게임 모드(Game Mode)라는 것을 지원하는 경우가 있다. 이것은 영상 장치나 오디오 장치가 내부적으로 DSP를 이용하여 화면이나 사운드에 자체 처리를 하고 있는 경우에, 이 기능을 끔으로 써 자체 처리에 걸리던 시간(레이턴시)를 제거하여 빠르게 화면이나 사운드가 나올 수 있도록 하는 기능이다. +TV 나 사운드 기기 등에서 게임 모드(Game Mode)라는 것을 지원하는 경우가 있다. 이것은 영상 장치나 오디오 장치가 내부적으로 DSP를 이용하여 화면이나 사운드에 자체 처리를 하고 있는 경우에, 이 기능을 끔으로써 자체 처리에 걸리던 시간(레이턴시)를 제거하여 빠르게 화면이나 사운드가 나올 수 있도록 하는 기능이다. 
  
 ======Latency====== ======Latency======

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


음향/digital/latency.1707059039.txt.gz · 마지막으로 수정됨: 2024/02/05 저자 정승환