USB Audio 전송 케이블에 따른 음질 열화 논란에 대하여

요즘 들어서 오디오에 관심을 가지다 보니, 자연스럽게 이러한 케케묵은 논쟁거리에 발을 담그게 되는 것 같다.
오디오 케이블, 특히 디지털 케이블이 음질에 미치는 영향은 오랜 기간 동안 논란이 되어 왔는데, ‘청감상 무의미하다’는 의견이 대세가 되었음에도 아직 완전히 수그러들지는 않았기에 이 글을 작성하게 되었다.

이 글은 USB-IF에서 게시한 USB 2.0 Specification 및 USB Audio 2.0 Specification에 근거하여 작성되었으며, 이 기술 명세들은 공공에 공개되어 있음을 미리 밝히는 바이다.

 

1. USB의 전송 모드

현재 논란이 되고 있는 지터(Jitter) 노이즈에 대해 이야기하려면, 먼저 USB의 전송 모드에 대한 이해가 필요하다.
USB 2.0 표준은 4가지의 전송 모드를 가지고 있다.
각각 Control Transfer, Bulk Transfer, Interrupt Transfer, Isochronous Transfer 모드로, 각 모드의 특징은 다음과 같다.

– Control Transfer : USB 장치가 연결되고 초기 설정을 진행하는 모드로, 데이터의 수신이 보장된다.
– Bulk Transfer : 대용량 데이터를 전송할 때 사용하는 모드로, 에러 감지와 정정을 통한 신뢰성 있는 통신을 보장한다.
– Interrupt Transfer : 제한된 지연 시간(Latency)가 요구되는 경우에 사용된다. 디바이스로부터 임의의 시간에 데이터가 올 수 있으며, 디바이스가 요구하는 것 이상의 전송률(Rate)를 반드시 지원해야 한다. 추가적인 타이밍 소스가 없음에도, 응답 시간 제한이 요구될 수 있다.
– Isochronous Transfer : 생산-전송-소비가 연속적, 실시간으로 이루어지는 모드로, 타이밍이 매우 중요하다. 일정한 전송률로 데이터를 보낼 것이 요구되며, 지연 시간은 단말의 버퍼 크기에 달려 있다. 주로 비디오, 음성 등을 전송할 때 사용되며, USB Audio도 여기에 속한다. Isochronous Transfer는 일정한 전송률을 유지하는 것과 지연 시간을 최소화하기 위해 재전송을 허용하지 않으며, 오로지 Control Transfer를 통한 에러 보고만이 이루어진다.

Each AudioStreaming interface can have at most one isochronous data endpoint.
USB Audio 2.0 Specification

이와 같이 USB Audio는 Isochronous Transfer를 이용하는 것을 알 수 있다.

 

2. USB Audio 표준과 전송 지터 문제

지금껏 논란이 되었던 것은, ‘과연 USB 케이블의 품질이 전송 신호에 영향을 미칠까?’라는 것이었다. 이 주장은 크게 두 가지로 나뉘는데, USB 케이블을 거치는 동안 클럭이 열화된되는 주장과, USB 케이블의 품질에 따라 데이터 자체에 손실이 일어난다는 것이었다.
먼저 클럭 열화부터 다루어 보자.
클럭 열화가 발생한다고 주장하는 측에서는 컴퓨터가 생성하는 클럭의 품질이 낮으며, 그에 따라서 아날로그 신호를 재생할 때 열화가 발생한다고 말한다. 하지만 엄밀히 말해서 이것은 정확한 주장이라고 말하기 힘들다.

PC에서 기준 클럭으로 사용하는 오실레이터의 성능은 보통 25MHz 수준이며, 이것은 최대 0.08μs의 오차를 가진다는 이야기이다. 흔히 오디오용으로 사용되는 TCXO 오실레이터의 경우 40MHz의 클럭을 가지며, 약 0.05μs의 오차를 가진다. 최대값 기준으로 0.03μs의 오차를 구분하는 것은 사람의 귀로는 불가능하다.

그렇다면 무엇이 문제였는가? 사실 이 문제는 USB가 데이터를 전송할 때 전송 신호를 동기화하는 방식에서 기인한다.
디지털 신호를 전송할 때 클럭 동기화는 중요한 고려 요인 중 하나이다. 왜냐하면 디지털 신호는 전압 변동을 통해 0과 1을 해석하는데, 해석 타이밍이 어긋나버리면 0을 1로, 1을 0으로 인식할 수 있기 때문이다. USB에서는 클럭을 SOF(Start of Frame)을 기준으로 동기화하였고, 프레임의 주기는 USB 1.0에서는 1ms, 2.0에서는 125μs가 된다. 이 클럭 주기는 일반적인 데이터를 전송할 때는 문제가 없었지만, 데이터를 실시간으로 처리해야 되는 입장에서 보면, 데이터를 해석할 수 있는 기준점이 프레임의 주기마다 한번씩 들어오는 셈이 된다.

일반적으로 사용되는 CD의 샘플링 레이트인 44.1KHz를 기준으로 하면, 0.023ms, 23μs간격마다 한번씩 클럭이 교정되어야 ‘정확한’ 복원이 이루어진다고 장담할 수 있다. 하지만 USB Audio 1.0을 기준으로 한다면 무려 50배, 2.0을 기준으로도 6배의 오차가 발생할 수 있게 된다. 이러한 오차는 DAC에서 오버샘플링을 거치면서 더욱 커지게 되고, 결과적으로는 청감상으로도 영향을 미칠 수 있게 된다.
물론 나는 0.1ms정도의 오차로 발생할 수 있는 지터 노이즈를 인간의 귀가 구분할 수 있다고 생각하지 않는다. 하지만 이러한 논란이 제기된 것이 USB Audio 1.0이 사용되던 시기임을 생각하면 최대 1ms, 오버샘플링을 적용할 경우 수ms의 오차로 발생하는 노이즈는 귀로도 알아챌 수 있었을 것이다.

물론 이러한 문제가 USB Audio 표준 제정시에도 알려져 있었기에, 이러한 클럭 동기화에 따른 지터를 방지하기 위한 목적으로 Asynchronous(비동기) 클럭 동기화가 제안되었다. 이 비동기 전송이 USB Audio 2.0부터 도입된 것이라고 생각하는 사람들이 많은데, USB Audio 1.0 Specification에도 엄연히 비동기 전송이 포함되어 있으며, DAC를 USB로 연결하는 것이 보편화된 2000년대에 들어서야 비동기 전송이 채택된 DAC들이 시중에 등장하기 시작했다고 보는 것이 옳다.

비동기 클럭 동기화는 마스터 클럭을 SOF로부터 복원하는 것이 아닌, 단말이 가지고 있는(혹은 외부의) 클럭 소스로부터 얻어내는 것으로, USB의 클럭 주기에서 벗어나 더 고성능의 클럭을 이용해 DAC를 수행할 수 있게 하였다. 2016년 현재 판매되는 대부분의 USB DAC들은 비동기 전송을 지원하는 제품으로, 전송 지터는 사실상 무의미한 문제가 되었다.

 

3. USB Audio 전송 시의 데이터 손실

흔히들 ‘디지털 데이터는 무손실이기 때문에 데이터 오류가 발생하는 것은 불가능하다’고 치부하고 넘어가는 이 문제는 사실 전송 지터보다 훨씬 유의미한 문제이다. 왜냐하면 앞서 보았듯이 USB Audio가 사용하는 전송 모드인 Isochronous Transfer는 재전송을 수행하지 않기 때문인데, 디지털 신호에서 에러는 ‘발생하지 않는 것’이 아니라 ‘감지/정정 가능한 것’이기 때문에 아날로그 신호에 비해 월등한 신뢰성을 보장하는 것임을 생각하면 재전송을 통한 에러 정정을 수행하지 않는 것은 데이터가 전송 에러에 그대로 노출된다는 것을 의미한다.

USB에서는 에러를 감지하는 수단으로 CRC를 제공하지만, 에러를 정정하는 것은 하드웨어/소프트웨어 단의 재전송을 통해 이루어진다.

The protocol allows for error handling in hardware or software. Hardware error handling includes reporting and retry of failed transfers. A USB Host Controller will try a transmission that encounters errors up to three times before informing the client software of the failure. The client software can recover in an implementation-specific way.
USB 2.0 Specification

The timely delivery of isochronous data is ensured at the expense of potential transient losses in the data stream.
USB 2.0 Specification

하지만, USB Audio에서는 에러가 발생하더라도 재전송을 통한 정정을 수행하지 않는다!

이제 실제로 데이터가 손실될 수 있음을 알았으니 이 사실이 ‘청감적으로 유의미한 차이를 가져오는가’에 대해 논할 차례가 되었다.
정말 그럴까? 한번 계산을 통해 확인해보자.

USB 3.0 Electrical Compliance Methodology에 따르면 USB 3.0을 지원하는 장비는 10-12의 BER(Bit Error Rate)를 가진다고 한다. 아주 관대하게 봐서 비트 에러가 오로지 전송 매체(케이블)에서 발생한다고 가정하자. 그렇다면 1012비트를 전송하는 동안 1비트의 오류가 발생하는 셈이다. 1012비트를 좀 더 읽기 좋게 환산하면 125GB가 된다.
음.. 가만 생각해보니 청감상 무의미하다는 쪽에 무게를 너무 많이 실어주는 것 같다. 지금 예시로 든 것도 USB 3.0이지, 2.0이 아니지 않은가?
안타깝게도 USB 2.0에서 요구하는 비트 에러율에 대한 레퍼런스를 찾을 수 없었기에, 아주 관대하게 ‘좀 더 낡은 규격인 USB 2.0은 USB 3.0보다 100배의 에러가 발생한다’고 가정하자. 이렇게 가정하였을 경우 USB 2.0의 비트 에러율은 10-10이며, 1.25GB의 데이터를 전송할 때 1비트의 에러가 발생한다는 이야기가 된다.

앞서 말했듯이 USB 2.0은 125μs당 하나의 마이크로 프레임(Micro Frame)을 전송하며, 하나의 마이크로 프레임에 포함될 수 있는 데이터의 최대 크기가 1023Bit이므로, 1023Bit가 손실된다고 가정해 보자. 이 경우 일반적인 PCM 2채널의 비트레이트인 1141Kbps를 기준으로 약 0.001초에 해당하는 데이터가 손실된다. 하지만 Isochronous Transfer는 전송률을 맞춰야 하므로 1141Kbps에 맞춰서 데이터를 전송한다고 가정하면 약 143Bit가 손실된다. 이것으로 손실되는 데이터는 거칠게 계산해서 0.0001초 미만이다. 이것을 청감상으로 구분할 수 있을까? 판단은 지금 이 글을 읽고 있는 독자에게 맡긴다.
또한 실제로 에러가 발생하였을 경우 DAC에서는 데이터를 파기하는 대신 보간을 통한 복원을 시도한다. 이러한 알고리즘이 100% 성공적이라고 장담할 수는 없겠지만, 데이터가 잘려나가는 대신 정정된 데이터가 들어가는 것만으로도 에러를 구분할 수 있을 가능성은 더욱 줄어들 것이라는 점을 쉽게 알 수 있을 것이다.

한편, 1.25GB의 데이터를 전송할 동안 1비트의 에러가 발생한다는 것이 잘 와닿지 않을 수도 있겠다는 생각이 들어 간단한 예시를 준비하였다.
일반적인 PCM 데이터의 비트레이트인 1141Kbps를 기준으로 계산해보면, 약 8764초를 재생할 때 1비트의 에러가 발생한다는 결론이 나온다. 즉, 확률적으로 음악을 2시간 30분간 재생할 때 0.0001초의 노이즈가 1회 발생한다.

이것이 청감상으로 유의미하며 또한 자신의 귀로 구분이 가능하다고 주장하는 사람이 있다면 그건 정말 대단한 일이 아닐 수 없다는 생각이 든다.

 

4. 결론

이것으로 USB Audio의 음질 열화, 그리고 고급 USB 케이블을 둘러싼 소모적인 논쟁의 마무리를 지을 수 있었으면 한다.
무엇이건 주장하는 것은 자신의 자유이지만, 그 주장으로 남을 설득시키기 위해서는 상대방이 납득할 수 있는 수준의 근거와 논리가 필요하다. 마찬가지로, ‘청감상 무의미하다!’고 주장하는 것은 자유이지만, 이 주장을 입증하기 위해서는 나름의 근거와 논리가 있어야 할 것이다. 이 글이 오디오 미신과 싸우는 다른 모든 사람들에게 유익한 글이 되었기를 희망한다.

13 thoughts on “USB Audio 전송 케이블에 따른 음질 열화 논란에 대하여

  1. USB Audio가 사용하는 전송 모드인 Isochronous Transfer는 재전송을 수행하지 않기때문에 완벽한 데이터 전송을 보장하지는 않습니다.
    따라서 USB오디오는 장비에 따라 데이터 에러가 발생할 수 밖에 없습니다.
    규격에서 말하는 비트에러율은 완벽한 상태일 때 조건이고 케이블의 상태나 전원의 노이즈등 실제상황에서는 더 높은 비트 에러율을 나타낼 수 있습니다.
    그래서 케이블 바꿈질이 일어나고 있다고 봅니다.
    많은 사람들이 USB오디오는 디지털이므로 에러가 없다라고 말하는 것이 잘 못되었다는 것을 자세히 설명해 주셔서 고맙습니다.

    1. USB Device의 EMI 노출 테스트에 의하면 65% 편조 실드만으로도 유의미한 신호의 유출(leakage)가 발생하지 않았다고 합니다.
      올바르게 차폐되고 접지된 케이블만 있으면 주변 노이즈의 유입은 일반적으로 무의미합니다.

      주변에 아크 용접기라도 있으면 모르겠군요. 얘는 전원 자체를 흔들어버리니

      https://www.ti.com/sc/docs/apps/msp/intrface/usb/emitest.pdf

    2. 이걸 이런 식으로 해석해서 받아들이시는 분도 있군요.
      설령 디지털 데이터에 노이즈가 발생하더라도 퍽, 딱, 칙 소리가 나거나 끊김이 발생하는 것이지, 고역이 넓어진다든지 저역이 어떻게 된다든지 하는 음악적인 변화가 생길 수가 없습니다.
      그러니까 평소 찌직찌직 잡음에 시달리는 것도 아닌데 케이블을 바꾸는 것은 넌센스입니다.
      이것은 바이너리 에디터로 디지털 음원을 수정해서 임의로 노이즈를 집어넣어 보면 쉽게 확인할 수 있습니다.

    1. 링크의 제품 소개를 읽어보았습니다.
      사실 전제부터가 잘못되어 있습니다. 제 글을 읽어보셨다면 알겠지만, USB Audio 2.0 표준은 비동기 전송 시 Isochronous 전송 모드를 사용합니다. Bulk Transfer가 아니라요.

      Bulk Transfer를 적용할 경우 비표준인 것에 더해 에러 정정을 위한 버퍼를 만들 수 밖에 없고, 이것은 직접적인 신호의 지연으로 나타납니다. 오디오파일들이 그리 반길 환경은 아니죠.
      지터와 외부 노이즈원의 간섭을 제거한 뒤에도 신호에 영향을 미칠 수 있다면, 또 그 영향이 ‘음질’에 영향을 미칠 수 있다면 부디 그것을 증명할 수 있는 데이터를 보내주시길 바랍니다.

      덧붙여서, USB의 전원 노이즈가 DAC의 출력단에 영향을 미치거나 하는 이슈는 부디 언급하지 않았으면 합니다. 그건 USB 케이블과 디지털 데이터가 문제인 것이 아니고, 회로 설계를 잘못 한 것이니까요.

  2. 충분히 좋은 시스템에서 테스트 해보셨나요?

    테스트를 충분히 해보셨다면 인정하겠습니다.!!
    아니라면.., 무책임한 글 입니다.!!

  3. 치명적인 문제가 하나 있는데.. 바꿔보면 차이가 납니다.
    이론적으로는 차이가 나면 안되는데 이해할수가 없는 현상이 실제로 일어나요.
    완벽한 디지털 앞에 이건 무슨 정신나간 소린가 싶어서
    재미삼아 저렴한거 한번 사봤을 뿐인데..
    결국 케이블 중에서 usb 케이블에 돈 제일 많이 썼네요;;;;
    귀로 쉽게 캐치할수 있는 해상력과 공간감의 차이가 납니다.
    또 장비가 업글되고 귀가 훈련될수록 차이가 더 예민하게 느껴집니다.

sop에게 댓글 남기기 댓글 취소

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.