Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드

고음질 오디오를 녹음하거나 재생할 때 잡음 끊김(glitch)과 스터터링(stuttering)만큼 짜증나는 일은 없습니다. 디지털 스트리밍과 음원 다운로드 서비스에서 '하이레스(hi-res)' 및 무손실(lossless) 오디오 포맷을 제공하기 시작하면서 이를 찾는 사람들이 늘고 있지만, 정작 자신의 PC를 고해상도 오디오에 맞게 최적화한 사람은 많지 않습니다.

좋아하는 DAW(디지털 오디오 워크스테이션)에서 트랙을 녹음하는데 끊김과 드롭아웃이 계속 발생하는 뮤지션이거나, 24bit/192kHz 무손실 음원을 들을 때 잡음과 왜곡이 심한 오디오파일이라면 이 가이드가 큰 도움이 될 것입니다.

오디오 버퍼와 지연 시간(Latency)의 이해

먼저 몇 가지 기본 용어부터 정리해 보겠습니다.

  • 버퍼링(Buffering) – 샘플들을 묶음(batch) 단위로 그룹화하여 처리하는 과정입니다.
  • 버퍼 크기(Buffer Size) – 한 번에 처리되는 하나의 묶음에 포함된 샘플 수입니다.
  • 오디오 사이클(Audio Cycle) – 하나의 오디오 버퍼를 처리하는 과정입니다.
  • 지연 시간(Latency) – 버퍼가 지속되는 시간입니다.

사람의 귀가 어느 정도의 지연까지 견딜 수 있는지가 관건입니다. 대부분의 사람은 약 10밀리초(ms) 미만의 소리 간격은 구분하지 못하는 것으로 알려져 있습니다. 즉, 10ms 차이로 재생되는 두 소리는 거의 동시에 들리는 것처럼 느껴집니다.

지연 시간은 버퍼 크기를 샘플 레이트로 나누어 계산할 수 있으며, 간단한 산수로 필요한 버퍼 크기도 구할 수 있습니다.

  • Latency = BufferSize / SampleRate
  • BufferSize = Latency × SampleRate
  • BufferSize = 0.01 × 44100 = 441

샘플 레이트 44.1kHz에서 10ms는 441개 샘플에 해당합니다. 다만 일부 사운드카드는 RAM처럼 2의 거듭제곱 형태의 버퍼 크기만 지원하기 때문에, 실제로는 컴퓨터 성능에 따라 512샘플(약 12ms)로 올리거나 256샘플(6ms)로 내려 조정하게 됩니다.

컴퓨터가 끊김 없는 오디오 스트림을 출력하려면 약 10밀리초마다 새로운 샘플 버퍼를 사운드카드에 공급해야 합니다. 이 속도를 따라가지 못하면 소리 사이의 빈 공간을 채워줄 것이 없으므로 잡음 끊김이 발생합니다.

들리는 잡음 유형은 상황에 따라 다릅니다.

  • 짧은 지연은 보통 '틱(tick)' 하는 소리로 들립니다.
  • 긴 지연은 아예 소리가 나지 않는 '드롭아웃(dropout)'이 되거나, 이전 사이클의 버퍼된 샘플이 반복 재생되며 '스터터링' 현상을 일으킵니다.

실시간 오디오 처리용 PC 튜닝의 핵심은, 컴퓨터가 버퍼 길이보다 오래 다른 작업에 붙잡혀 있게 만드는 요소를 모두 제거하는 것입니다. 입력 신호의 라이브 모니터링이나 출력 신호 재생 중 오디오 끊김을 줄이거나 완전히 없애려면, Windows 설정을 중심으로 여러 가지 작업을 진행할 수 있습니다.

전원 관리 설정

고사양 게임용 PC 최적화와 마찬가지로, 가장 먼저 할 일은 전원 설정을 고성능 모드로 변경하고 불필요한 절전 기능을 비활성화하는 것입니다.

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드
  • 전원 계획: 고성능(High Performance)
  • 하드 디스크 끄기: 안 함(Never)
  • 최소/최대 프로세서 상태: 100%
  • USB 선택적 절전 모드: 사용 안 함
  • PCI Express 링크 상태 관리:

장치 관리자 설정

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드
  1. Windows 시작 버튼을 클릭하고 'device manager(장치 관리자)'를 입력한 후 Enter 키를 눌러 장치 관리자를 엽니다.
  2. 목록 맨 아래로 스크롤하여 '범용 직렬 버스 컨트롤러(Universal Serial Bus controllers)' 항목을 확장합니다.
  3. 목록에서 'USB 허브' 또는 'USB 루트 허브'라는 이름이 포함된 모든 장치를 마우스 오른쪽 버튼으로 클릭합니다.
  4. 팝업 메뉴에서 '속성(Properties)'을 선택합니다.
  5. '전원 관리(Power Management)' 탭으로 전환합니다.
  6. '전력을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음' 옵션의 체크를 해제합니다.
  7. 나머지 모든 허브 장치에 대해 3번부터 반복합니다.

하드 드라이브 압축 및 인덱싱 해제

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드
  1. 파일 탐색기를 실행합니다 (Windows 키 + E).
  2. 왼쪽 패널에서 '컴퓨터'(Windows 10에서는 '내 PC')를 선택합니다.
  3. 각 하드 드라이브를 마우스 오른쪽 버튼으로 클릭하고 '속성'을 선택합니다.
  4. 창 하단의 두 옵션(드라이브 압축, 인덱싱)을 모두 해제합니다.

프로세서 예약(Processor Scheduling)

Windows의 멀티태스킹은 '타임 슬라이싱(time slicing)'이라는 방식을 기반으로 작동합니다. 각 프로그램에 아주 짧은 실행 시간을 할당하고, 실행 중인 모든 프로그램을 빠르게 순환하면서 마치 동시에 실행되는 것처럼 보이게 만듭니다. 프로세서 예약 설정은 이 타임 슬라이스의 길이를 제어합니다. 긴 타임 슬라이스는 백그라운드 처리에 유리하고, 짧은 타임 슬라이스는 사용자 인터페이스가 더 반응이 빠르다고 느껴지게 만듭니다.

어느 쪽이 오디오 처리에 더 좋은지 궁금할 수 있는데, 정답은 없습니다! 전적으로 작업 내용에 따라 달라지며, 어떤 경우에는 한쪽이 더 나은 성능을 보일 수 있습니다.

긴 타임 슬라이스는 오디오 소프트웨어에 더 많은 처리 시간을 줄 수 있지만, 반대로 프로세서가 다른 작업에 오래 붙잡혀 오디오 처리를 방해할 수도 있습니다.

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드

일반적으로 '백그라운드 서비스' 모드부터 시작해 보는 것이 좋습니다.

  1. Windows 시작 버튼을 클릭하고 'advanced system settings(고급 시스템 설정)'를 입력한 후 Enter 키를 누릅니다.
  2. '프로세서 예약' 섹션에서 짧은 타임 슬라이스를 원하면 '프로그램', 긴 타임 슬라이스를 원하면 '백그라운드 서비스'를 선택합니다.

코어 파킹(Core Parking) 설정

코어 파킹은 인텔 i7 등 일부 최신 프로세서에서 제공되는 CPU 전용 기능으로, 전력 소비를 최소화하기 위해 CPU 코어 전체를 비활성화하는 기능입니다. 전력 관리에는 유용하지만, 코어를 다시 활성화(unparking)할 때 약간의 지연이 발생하여 해당 연산 능력이 필요한 순간에 드롭아웃이 생길 수 있으므로 실시간 오디오 성능에는 악영향을 줄 수 있습니다.

기본적으로 Windows는 코어 파킹 설정을 숨겨두고 있지만, 레지스트리를 몇 가지 수정하면 이 옵션을 표시할 수 있습니다.

  1. Windows 시작 버튼을 클릭하고 'regedit'를 입력한 후 Enter 키를 눌러 레지스트리 편집기를 실행합니다.
  2. Home 키를 눌러 왼쪽 패널의 선택 위치를 맨 위로 이동합니다.
  3. Ctrl+F를 눌러 검색 창을 열고 "dec35c318583"(따옴표 제외)을 검색합니다.
  4. 키를 찾으면 상태 표시줄을 확인하여 해당 키가 전원 설정과 관련된 것인지 확인합니다. 경로에 'Control\Power\PowerSettings'가 포함되어 있어야 합니다. 그렇지 않다면 무시하고 3번부터 다시 검색합니다.
  5. 오른쪽 패널에서 'Attribute' 값을 두 번 클릭하고 값 데이터를 0(영)으로 변경합니다.
  6. 3~5단계를 반복하여 해당하는 모든 항목을 변경합니다(여러 개가 있을 수 있습니다). 주의할 점은, '0cc5b647-c1df-4637-891a-dec35c318583' 키 아래의 'Attribute' 값만 변경해야 한다는 것입니다.
  7. 변경을 마치면 전원 옵션에 코어 파킹을 제어하는 새로운 설정 항목이 나타납니다.
  8. 제어판 → 전원 옵션 → 전원 계획 설정 변경 → 고급 전원 설정 변경으로 이동합니다.

고급 설정 창에서 '프로세서 전원 관리 → 프로세서 성능 코어 파킹 최소 코어(Processor performance core parking min cores)'로 이동합니다. 이 설정값은 항상 실행 상태(파킹되지 않은 상태)로 유지해야 하는 프로세서 코어의 최소 비율입니다. 모든 코어가 파킹되지 않도록 하려면 100%로 설정하세요.

페이지 파일(Page File) 설정

페이지 파일은 물리적 메모리(RAM)가 부족해질 때 Windows가 추가 저장 공간으로 사용하는 특수 파일입니다. 메모리 페이지가 페이지 파일과 물리적 메모리 사이에서 교체(swap)되기 때문에 '스왑 파일'이라고도 부릅니다. 기본적으로 Windows는 페이지 파일 크기를 자동으로 관리하도록 설정되어 있지만, 작업 중 크기 조정이 일어나지 않도록 고정 크기로 설정하는 것이 좋습니다.

페이지 파일을 구성하는 방법은 다음과 같습니다.

  1. Windows 시작 버튼을 클릭합니다.
  2. 'advanced system settings(고급 시스템 설정)'를 입력하고 Enter 키를 누릅니다.
  3. '성능' 그룹에서 '설정' 버튼을 클릭합니다.
  4. '고급' 탭으로 전환합니다.
  5. '가상 메모리' 그룹에서 '변경' 버튼을 클릭합니다.
  6. '모든 드라이브에 대한 페이징 파일 크기 자동 관리' 옵션을 해제합니다.
  7. 목록에서 첫 번째 드라이브를 선택합니다.
  8. '사용자 지정 크기' 라디오 버튼을 선택합니다.
  9. 원하는 초기 크기와 최대 크기를 입력합니다 (아래 참고).
  10. 나머지 각 드라이브에 대해 7~9단계를 반복합니다.

이제 각 드라이브의 페이지 파일 크기를 결정해야 합니다.

  • 페이지 파일은 항상 가장 빠른 하드 드라이브에 배치하세요. SSD가 있다면 반드시 그 드라이브에 스왑 파일을 두는 것이 좋습니다.
  • 일반적으로 한 드라이브에만 페이지 파일이 있으면 충분하지만, 여러 드라이브에 분산하면 아주 작은 성능 향상을 얻을 수 있습니다.
  • 전체 페이지 파일 크기의 대략적인 기준은 컴퓨터의 물리적 RAM 용량의 약 1.5배입니다. 예: 물리적 RAM 4GB = 페이지 파일 6GB.
  • 물리적 RAM이 많다면(예: 8GB 초과) 더 작은 페이지 파일로도 충분합니다. 예를 들어 RAM이 32GB라면 48GB를 페이지 파일에 할당하는 것은 별 의미가 없습니다(SSD 용량의 상당 부분을 차지할 수 있습니다).

불필요한 오디오 장치 비활성화

오디오 작업용 전용 사운드카드를 사용하고 있다면, 내장 사운드 장치나 사용하지 않는 다른 사운드카드를 비활성화하는 것이 좋습니다. 사운드카드 드라이버는 DPC 지연 문제를 일으키는 악명 높은 원인 중 하나입니다.

또한 이런 장치들을 비활성화하면 선택 목록에서 사라지기 때문에 오디오 소프트웨어 설정도 더 단순해집니다.

  1. Windows 시작 버튼을 클릭하고 'device manager(장치 관리자)'를 입력한 후 Enter 키를 누릅니다.
  2. '사운드, 비디오 및 게임 컨트롤러' 그룹을 확장합니다.
  3. 필요 없는 사운드카드를 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 '디바이스 사용 안 함'을 선택합니다.

LatencyMon으로 지연 문제 진단하기

ISR 및 DPC 지연 문제를 확인할 수 있는 훌륭한 무료 도구로 LatencyMon이 있습니다. 이 도구는 컴퓨터가 최적의 오디오 입출력 환경에 맞게 구성되어 있는지, 그리고 어떤 드라이버가 전체 지연 시간에 영향을 주고 있는지 알려줍니다.

무손실 고음질 오디오 재생을 위한 Windows 7/8/10 고급 설정 최적화 가이드

LatencyMon을 다운로드한 후 다음 순서로 테스트를 진행합니다.

  1. 배터리로 작동하는 기기라면 반드시 전원 어댑터를 연결합니다.
  2. 실제 작업(공연·녹음) 시와 동일하게 전원 설정이 구성되어 있는지 확인합니다.
  3. 실행 중인 다른 모든 프로그램을 종료합니다.
  4. LatencyMon을 시작합니다.
  5. 녹색 '재생' 버튼을 눌러 테스트를 시작합니다.
  6. 몇 분간 실행 상태로 둡니다.
  7. 빨간 '정지' 버튼을 눌러 테스트를 종료합니다.

LatencyMon이 보고한 모든 시간이 여유 범위(headroom)보다 짧다면 DPC와 ISR은 문제를 일으키지 않을 가능성이 높습니다. 반대로 보고된 시간이 가용 여유 범위보다 길거나 약 500µs(0.5ms)를 초과한다면 좀 더 자세히 살펴봐야 합니다. LatencyMon은 어떤 드라이버가 가장 느린 ISR 및 DPC 시간을 기록했는지 보여줍니다.

  1. 업데이트된 드라이버가 있는지 확인합니다. 새 드라이버가 있다면 설치한 후 테스트를 다시 실행합니다.
  2. 최신 드라이버를 사용 중인데 해당 장치가 실시간 작업에 필요 없는 것이라면, Windows 장치 관리자에서 비활성화한 후 테스트를 다시 실행할 수 있습니다. (절대 장치를 제거(uninstall)하지 말고, 시스템 운영에 필수적인 장치를 비활성화하지 않도록 주의하세요.)
  3. 문제가 되는 드라이버 이름과 'DPC', 'ISR' 같은 키워드로 검색해 보세요. 특정 드라이버의 문제점을 논의하는 포럼 게시글을 쉽게 찾을 수 있으며, 때로는 특정 버전(심지어 구버전)이 더 안정적으로 작동한다는 정보를 얻을 수 있습니다.