버퍼, Latency - Yunjong-Lee/WiKi GitHub Wiki

버퍼

  • 컴퓨팅에서 버퍼(buffer, 완충기억기)는
      데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다.

  • 디지탈 프로세싱으로 오디오 신호를 전송하는 경우,
      전송속도와 처리 속도의 차이로 인하여 데이터가 손실되는 것을 방지하기 위해
      데이터를 실시간으로 바로 전송하지 않고 일정량 만큼 모아 둔 다음 전달하는 과정을 버퍼라 한다.
      또, 데이터를 모아두는 행위를 버퍼링이라 한다.
      - 이러한 버퍼는 디지탈 장비는 물론이고, 오디오 인터페이스, 신디사이저, 이펙터 등의 장비에도 존재한다.
      - 데이터를 모아두기 때문에 그 모아두는 시간 동안 만큼의 지연 시간이 발생되며 이를 Latency라 한다.

Latency

  • 레이턴시는 버퍼 size에 따른 지연 시간으로 정의한다.
    • 컴퓨터의 오디오 인터페이스의 input에 신호가 보내지는 시점부터, output에서 동일한 오디오를 재생할 수 있는 시점까지의 지연 시간
  • 레이턴시는 0이 될 수 없는 이유
    • 오디오 데이터가 input에서 output으로 전송되는 동안 처리 시간을 확보하기 위해 데이터 버퍼를 사용해 지연이 발생함

오디오에서 버퍼와 레이턴시

  • 버퍼 size가 작으면 여러번 작업을 수행해야 하므로 CPU 점유율이 상승한다.
  • 오디오 인터페이스의 경우,
    • 버퍼 사이즈가 작을수록 Latency는 낮아진다. (모아서 전송하는 양이 적고 자주 전송함)