시작페이지로 시작페이지로
즐겨찾기추가 즐겨찾기추가
로그인 회원가입 | 아이디찾기 | 비밀번호찾기 | 장바구니 모바일모드
홈으로 와싸다닷컴 HIFI게시판 상세보기

트위터로 보내기 미투데이로 보내기 요즘으로 보내기 싸이월드 공감
아날로그 파형은 dac에서 만드는데 소프트웨어는 무슨 차이?
HIFI게시판 > 상세보기 | 2011-11-16 13:47:39
추천수 1
조회수   824

제목

아날로그 파형은 dac에서 만드는데 소프트웨어는 무슨 차이?

글쓴이

박철휘 [가입일자 : 2010-08-17]
내용
그러게요.

cplay는 안써봤고, jriver와 foobar를 번갈아서 써보면 얼핏 차이가 느껴지고, 자세히 들어보면 아닌거 같고. 계속 틀어놓고 있다 보면 또 차이가 있고. 그렇더란 말이죠.

동일머신에 우분투를 설치해서 들어보면 차이가 꽤 크게 나타나고 말이죠.

데이터는 똑 같은데!



이거 설명하자고 하면 갑자기 사이비로 몰릴거 같은 불길한 예감이 되네요. ㅋ

다음은 저의 소설이니 그것을 fact로 받아들이진 말아주세요.

자신의 소리가 뭔가 마음에 들지 않을 때, 돈 한푼 안들이고 효과를 볼 수도 있습니다.



1.

플레이어가 음원을 플레이해서 output device에 출력할 때, 가장 중요한 것은 cpu 이며, cpu는 주변 device를 돌아가면서 컨트롤합니다.

아무 일 안하고 재생소프트웨어만 플레이하는 경우라도 OS는 백그라운드에서 여러가지 일을 하며, 그것을 위해 cpu는 돌아가면서 실행을 시킵니다.

그러나 cpu는 매우 고속이므로 나머지 느린 디바이스에 비해 병목이 발생할 일이 별로 없습니다.

병목은 보통 device 자체에서 발생시킵니다.



병목이 발생하는 device로 인해 음악재생소프트웨어가 적절한 시점에 연산이 처리되지 않을 수도 있습니다.

이것은 dpc latency 라는 유틸리티로 확인이 가능하며 ratency가 갑자기 튄다면 음악재생프로그램이 적절한 시점에 데이터를 출력하지 못하는 drop-out이 발생할 수 있습니다. 확연하게는 음악이 멈출 수 있으며, 미묘하게는 음상이 흔들린다거나 할 수도 있습니다.



이런 경우에는 dpc latency를 띄워놓고 device를 하나씩 제거함으로써 문제를 해결할 수 있습니다.

사용자마다 다르지만, 네트웍 device가 이러한 drop-out의 주체라면 랜선 뽑았더니 음질이 좋아졌어요. 할 수도 있겠죠.



2.

cpu는 하나인데, 동시에 여러가지 일을 처리하는 것을 멀티 프로세싱이라고 합니다.

서버는 cpu의 갯수만큼 실제로 멀티 프로세싱이 가능하지만, pc는 진정한 멀티 프로세싱을 하는 것이 아닌, 멀티 스레딩을 합니다. 인텔의 하이퍼 스레딩 기술도 그렇습니다. 보다 전문적인 내용은 skip.

어쨌든. 음악 재생 소프트웨어는 real-time으로 계속 프로세싱이 진행되어야 하는데, 자세히 까보면 예를 들면, DAC에게 1초에 해당하는 PCM을 0.1초만에 보내놓고 대기 해야하는 동안 cpu가 지맘대로 다른 일을 처리해버린단 말이죠.

문제는 정확히 0.9초 후에 음악 재생 소프트웨어가 재생이 재게되지 않을 수도 있다는 것입니다.



그렇게 구현하려면 OS가 cpu의 클럭이 아닌 진짜 RTC에게서 시간 정보를 받아올 수 있어야 하고, 이 시간 정보를 정확히 지정된 시간에 보내주는 것이 다른 모든 것보다 우선해야 하며, real-time을 제공받길 원하는 소프트웨어는 이것을 언제 받을지 매번 지정해줘야 합니다. 0.9초 마다 지정하는거라면. 흠. 그런대로 돌아갈겁니다.

0.1초로 지정해주면 평범한 PC는 뻗습니다.

왜냐면 0.1초 텀의 delay의 시간 동안 다른걸 처리해야 하는데. 그걸 처리하려고 한 순간 다시 0.1 텀이 돌아와버리기 때문입니다.

0.1초도 그러한데, 0.01초는. 뻔하겠죠.

(10년 전에 해본겁니다. 요즘 PC는 0.1초도 스무스하게 처리할지도 모르죠. 중요한건 맥락이니 별도로 다시 테스트해보진 않겠습니다.)



그러므로. PC에서 RT는 그다지 효과가 없는 것입니다.

이러한 프로세스를 별도의 칩으로 넘기고 지 혼자 알아서 하거나, cpu가 real하게 2개를 두고, 하나는 재생 소프트웨어에게 전담시키고 나머지 하나로 일반적인 처리를 하게 해야겠죠.

(리얼타임OS가 없냐면. 그건 아닙니다. 겁나게 비쌉니다. 몇천 수준이 아니라 몇십억 수준입니다. 국내에선 만드는 회사도 없고. 전세계로 쳐도 HP나 IBM 정도나 만들어냅니다. 국내에선 금융기관에서도 특정한 부분에서만 사용하고. 나머지 공항이나 항만 쪽에서도 사용할 거 같긴 한데 모르겠습니다. 그쪽에선 일을 안해봐서요. 리눅스가 RT kernel을 제공한다고 해서 그게 정말 RT로 돈다고 생각하면 곤란합니다. 하드웨어가 받쳐줘야 합니다. 왜 그런지는 위에서 설명했습니다. 이해가 안되셔도 더 이상의 설명은 곤란합니다. 저도 제 시간 투자해서 적고 있는건데 벌써 30분 넘어갔습니다. 이해가 꼭 중요한건 아니잖아요. 그냥 그런갑다 해주세요. ㅠㅠ)



그러므로.

죽자고 cpu가 나만 바라보게 해야합니다.

다른건 왠만하면 딜레이 시켜야 합니다.

그렇게 하는걸 우선권이라고 하며, 가장 탐욕적으로 우선권을 차지하는게 가능한게 MS의 OS입니다. 선점형 멀티 태스킹이라는 기술이 그것입니다.

보통 프로그램 작성에서 우선권 제어하면서 프로그램을 작성하는 경우는 거의 없습니다. foobar가 그러합니다.

cplay는 우선권 처리를 했다고 하던데 확인해보지 않았습니다.

jriver는 우선권 처리를 세심하게 하는 것 같습니다.

그래서 jriver가 foobar보다 짱 좋냐.

대신 jriver는 한 프로세스에 상당히 비대한 기능을 집어넣었습니다.

foobar는 간단합니다.

비대한 기능 또한 cpu 연산을 차지하며, 간단한 프로그램은 cpu 연산을 적게 차지하며, cpu가 다른 일을 보다 수월하게 처리할 수 있게 해줍니다.



결국. 간단하면서 우선권을 잡고 왠만하면 잘 안 놓는 프로그램이 유리하겠죠.

이 의미는 jriver 실행시키면 이상하게 마우스 포인터 이동이 느려지고, 타이핑한게 1초 후에 화면에 떠요. 왜그러죠. 와 같은 현상이 발생될 수도 있다는 것과 같은 의미입니다. 유리하긴 한데 못써먹을 수도 있는 프로그램이 되는거죠.



이것을 의도적으로 조정하는 유틸리티가 있습니다.

high fidelity였던가요. 제가 pc-fi 게시판에 소개했었던건데요. 다운받아서 써보시는 것도 괜찮겠죠.



3. 여기까지가 usb adaptive mode일 경우입니다. 광/동 출력도 마찬가지입니다.

다 해당되는 얘기입니다.

문제는 usb async mode의 경우 위의 사항의 중요성이 떨어지며, aync mode를 구현한 DAC이 cpu와는 완전히 별개로 작동하도록 구현이 되면. 그다지 설득력이 없겠죠.



DD-1이나 MA-1을 들이고나서 비교하면서 테스트해봐야 하는데. 안해봤습니다.

제 귀에 듣기 좋으면 그걸로 땡인 주의라서요.

누군가 민감한 청각의 소유자 분께서 확인해봐주시면 좋겠는데 말이죠.



4. 그럼에도 차이가 난다면.

남은건 구현체를 발로 구현했거나.

(말이 쉽지. 제대로 구현한다는 것은 언제나 어려운 일입니다.)

어차피 선들이 전기로 엮여 있으니 그냥 전기적인 신호 잡음이 소자들에게 영향을 미쳐서 음질에 차이가 나는 것 같더라. 로 퉁쳐서 생각할랍니다.

이러한 문제에 대한 해결책도 곧 나오겠죠.

디지털 도메인의 문제는 시장만 커지면 매우 빠르게 기술이 발전하는 경향이 있으니까요.





김중호님께서 2011-11-16 11:11:07에 쓰신 내용입니다

: 인가요............

:

: 그게 또 궁금해지네요

:

:

: 아날로그 파형은 dac에서 만들어지고

:

: 2진의 파일은 pc에서 usb케이블로 보내지는데

:

:

: 어느 한정된 프로토콜로 보내져야지 dac에서 받아 들일 수 있는 것 아닙니까??

:

: 한정된 프로토콜로 보내지는데

:

: j리버 / 푸바 / cplay 등등은 왜 차이를 보일까요?

:

: 여기서 말하는건 그냥 알송급의 플레이어들과 위에서 언급한 플레이어간의 차이를 묻고 싶은게 아니라

:

: 비트 퍼펙트가 충분히 지원되는 상황에서 할 것 다 해주는 플레이어들이

:

: 음질의 차이를 보이는 것이 궁금합니다.

:

: 그렇다고 01 로 된 2진의 음원파일을 전송할때 착색하기 위해서 본음원은 건드리지

: 않을 것 이라고 생각 됩니다. (본음원을 건드린다면 이글은 바로 삭제를 해야겠네요)

:
추천스크랩소스보기 목록
이종남 2011-11-16 14:01:01
답글

그러니까. 비트퍼펙트가 되어도 어찌 되었든.. 소리는 변하는 것 아닌가요?? <br />
<br />
그럼 PCM은 비트와 HZ로 구성이 되는데.. 비트는 변하지 않는 것은 확실하고.. HZ가 변하나요?? <br />
<br />
44.1KHz가 한 45Khz정도로 변하나요???

박철휘 2011-11-16 14:25:25
답글

데이터는 그대론데요. 구현체가 완벽하게 작동을 못해주는거죠.<br />
이유는. 디지털이니까? ㅎㅎㅎ<br />
<br />
출력 아날로그 파형이 어떻게 되더라. 하는 것은 이종남님께서 잘 아시는 거고. 전 잘 모르는 것이니 전 뭐라고 할 말이 없습니다. 저 나름대로는 '44.09 khz가 될 수도 있겠네.' 라고 생각합니다. ^^;

이종남 2011-11-16 14:35:15
답글

하하하... <br />
<br />
박철휘님// <br />
<br />
비트도 같고.. 44.1Khz도 변하지 않습니다..이게 변하면 말그대로 컴터를 믿을 수도 없고. 당연히 은행전산망도 믿지 못합니다.. <br />
<br />
그런데 소리는 변하지 않나요??? 디지털은 원인이 있어야 결과가 나옵니다. 그것은 아날로그도 마찬가지지만요.. 그게 이과인의 당연한 사고방식 아닌가요??? <br />
<br />
그럼 둘 중 하나지

박철휘 2011-11-16 14:56:47
답글

음... 1은 그럴 수 있겠죠. <br />
전 저 자신을 별로 안믿어요. ㅋ<br />
3주 전에 들었던 HD음원 카펜터즈가 귀가 아프고 소란스러웠었는데, 어제 들었을 땐 감미롭더라구요. 귀도 안아프고. 음량이 약 3정도 차이가 나고. 습도와 온기가 차이가 나긴 하지만 기기는 바뀐게 없는데 말이죵.<br />
<br />
2가 문제입니다. <br />
그냥 넘어가도 상관은 없는데, 종남님께서 말씀하시는 이과인의 속성 때문에 계속해서

박철휘 2011-11-16 15:02:55
답글

아. 총체적으로 보면 핀트를 약간 어긋나게 보시는 점은 있지만.<br />
결과로서 완전히 다른 결론을 얻는건 아니세요.<br />
<br />
결국 net-fi가 pc-fi보다는 유리하죠.<br />
그니깐 스퀴즈박스 라도 하나 써보시랑게요. <br />
그거만 달랑 사면 되요. 기존 pc는 스퀴즈서버 설치하면 되고요.<br />
<br />
그리고서. 이제 랜선과 공유기 문제를 거론하실걸로 기대하겠습니다. ㅎㅎ

이종남 2011-11-16 15:03:54
답글

하하하....<br />
<br />
하여간 아무리 그래도 16비트의 비트구조와.. 44.1Khz는 변할 수가 없습니다.. 이게 변하면 절대 안됩니다...<br />
44.1Khz가 좀 방해 받아서 44Khz로 변했다?? 그러는 순간 컴퓨터는 다운이 됩니다... 즉 뻗어버린다는 말이지요..<br />
<br />
그런데... 소리는 분명 변했는데.. 그럼 당연히 PCM도 변했을 것이고요... 이것은 당연하고요...<br />
그럼 컴

김중호 2011-11-16 15:05:25
답글

사실 여부를 떠나서 저의 궁금증에 장문의 의견을 달아주셔서 감사합니다.<br />
<br />
음 pc에 대한 지식이 아예 없는건 아니라서 하시고 싶은 말의 대략적인 의미는 알겠네요.<br />
(소프트웨어를 다루고 있지 않지만 관련분야를 나온지라...)<br />
<br />
일단 클럭을 고르게 뿜어주어서 고르게 음이 나와줘야 하는데.........<br />
os및 하드웨어 설계 한계상 데이터를 못주는 시기가 생기고 <br />

박철휘 2011-11-16 15:15:32
답글

음... 한가해서 답변을 달기 시작한게 일이 밀리기 시작했습니다. <br />
이걸 마지막으로 다쉬 관망모드로 전환해야 할까봐요. ㅋ<br />
<br />
컴퓨터가 다운이 된다 : 정확히는 블러킹(대기상황)이 발생합니다.<br />
44.1 khz가 방해 받아서 44khz로 변했다 : X <br />
주는 놈이나 받는 놈이나 보낼 양과 받을 양을 정확히 알고 있으므로 서로 대기하는 상황이 발생할 뿐입니다. 요는 데이터는 결국 제대로

이종남 2011-11-16 15:26:28
답글

예.. 귀는 아주 정확한 계측기입니다. 특히 시간차에 대해서는 거의 상상을 초월하는 정도의 감각수준을 갖고 있습니다.. <br />
<br />
양귀의 거리차는 겨우 17cm밖에 안되는데. 그 최대 17cm 거리차 안에 도달하는 미세한 소리의 시간차를 아주 예민하게 잡아낼 능력이 있습니다... 그림을 한번 그려보십시요.. 우리는 12시 방향과 2시방향의 소리를 정확하게 잡아낼 수 있는데.. 12시 방향이면.. 양귀의 거리가 음원과 똑같고..

류창수 2011-11-16 15:35:22
답글

44.1Khz에 맞추어 보낸다고 CPU클럭을 쓰지는 않습니다. 44.1에 맞추어 전송하는 영역은 사운드 장치의 별도 클럭이 담당하는 것이고, 어플리케이션에서는 버퍼에 채워주면 오디오 디바이스 드라이버가 버퍼에 있는 PCM을 알아서 전송할 텐데요. 그것은 J-River든 foobar가 관여할 수 있는 부분은 아니지 싶습니다.<br />
<br />
전에 상헌님이 적으신 아래 글도 참고하시지요.<br />
<br />
http://board

이종남 2011-11-16 15:41:03
답글

하여간 열심히들 음악을 들으시길 바랍니다... PC로 듣던 CDP로 듣던 ADP로 듣던....<br />
<br />
그렇지만. 귀를 너무 홀대하지 마세요.. 생각보다 예민한 귀입니다...<br />
<br />
디지털은 다 똑같아야 한다???? 디지털은 공학입니다.... 공학은 항상 허용 오차범위라는 것이 있지요..<br />
그럼 디지털은 다 똑같은 것이 아니라 허용오차범위안에서 변하는 것입니다....<br />
그 허용오차범위

이종남 2011-11-16 15:56:05
답글

그리고 류창수님이 제시한 자료는 음량만 계측을 했네요??<br />
그것으로 귀의 능력을 평가한다는 것이 어불성설이지요....<br />
<br />
파형을 내서 위상을 체크해야 합니다.. 두개의 위상과 진폭이 모두 똑같이 겹쳐져야.... 비로서 이것은 같은 소리다 라고 인정을 하는 것이지요..<br />
<br />
음량이 같아도.. 위상이 달라지면.. 귀는 전혀 다른 소리로 듣습니다...

박철휘 2011-11-16 15:56:26
답글

그 오디오 디바이스가 일을 하려면 cpu가 일을 시켜줘야 합니다.<br />
<br />
상헌님께서 올리신 글은 저도 봤었습니다.<br />
저는 상헌님께서 측정하는 계측기의 오차범위를 고려했을 때 오차범위를 초과하는 지터가,<br />
해상력이 좋고 밸런스가 뛰어나며, 타이밍이 빠른 현대적인 스피커 시스템에서 공통적으로 인지하는 차이를 만들어낸다는 결론을 도출했습니다.<br />
반대로는 일반적인 시스템에서는 대충 써도 똑같으니 스트

  • 광고문의 결제관련문의