레이블이 비트 퍼펙트인 게시물을 표시합니다. 모든 게시물 표시
레이블이 비트 퍼펙트인 게시물을 표시합니다. 모든 게시물 표시

2008년 10월 7일 화요일

동영상도 비트 퍼펙트 재생하자!

※ 나중에 붙임: 이거, 철 지난 소리입니다. 옛날에는 이랬다 정도로 참고만 하세요.

* * *

먼저, 커널 스트리밍(Kernel Streaming)이나 ASIO가 무엇인지 모르시는 분은 아래 링크를 참고하세요:

http://blog.naver.com/miroo67/44661003

푸바에서 커널 스트리밍이나 ASIO 설정해서 쓰고 있는 분은 동영상도 그랬으면 좋겠다고 생각하실 겁니다.
찾아보니 방법이 있더라고요. 여러가지가 있던데 'ReClock DirectShow Filter'라는 넘이 공짜이고 제일 좋아보이더군요.

http://reclock.free.fr

이넘을 깔고 나면 "ReClock Audio Renderer"라는 오디오 장치가 생깁니다. 동영상 프로그램에서 이넘으로 소리가 나도록 설정해주시면 되겠습니다.

그리고 ReClock 설정에서 이래와 같이 해줍니다:



"Audio interface to use for PCM" 항목을 Kernel Streaming으로 하는 게 핵심 되겠습니다. DTS나 AC3 등을 지원하는 리시버를 쓰시는 분은 "Audio interface to use for SPDIF/AC3" 항목도 Kernel Streaming으로 해주시고요.

동영상 재생할 때 앞부분이 버벅거리거나 살짝 끊기거나 하면 "Sound pre-buffer size" 항목을 바꿔주시면 됩니다. 기본값은 500이고 최소값은 25인데 설명서 보니까 100 이하로는 안 좋다고 되어있네요.

Resampling quality는 음질에 영향을 미치니까 무조건 Excellent로 해줍니다.
"Enable audio timestreching" 항목에 체크하면 2배속 재생하거나 할 때 소리가 이상해지는 것을 막아주는데, 음질에는 손해이므로 선택하지 않는 게 좋습니다.

당연한 얘기지만, 커널 스트리밍 재생하면 시스템 볼륨 바꿔도 안 먹습니다. 앰프에서 볼륨을 조절해야 합니다.

KMPlayer에서는 처음에는 안 되다가, 정확히는 ReClock Audio Renderer 선택은 되는데 실제로 커널 스트리밍 재생을 하지는 못하다가 리부팅하고 나니까 되네요. 가끔씩 소리가 안 나는 때도 있던데 정지한 다음에 다시 재생시키면 소리 납니다. 이넘은 볼륨 조절 말고 음성 증폭 기능이 따로 있는데 커널스트리밍 설정한 뒤에도 Shift + PageUp/Down으로 볼륨 조절 비슷한 효과를 낼 수 있습니다.

Media Player Classic이라고 윈도우즈 미디어 플레이어 짝퉁이 있습니다. GNU Public License를 따르는 공개 프로그램인데 이넘은 리부팅하기 전부터 커널 스트리밍 잘되더군요.

더 자세한 내용은 프로그램 도움말을 참고하세요.

나중에 붙임:
만약 오류가 난다면 푸바에서는 커널 스트리밍 되는지 확인해 보세요. 푸바에서도 안 되면 사운드카드가 44.1KHz를 지원하지 않기 때문일 가능성이 높습니다. 48KHz로 리샘플링해서 재생해보고 오류가 나지 않으면 틀림없습니다. 그래도 오류 나면... 그러면 저는 모르겠..;;

나중에 또 붙임:
윈도우즈 미디어 플레이어용 ASIO 플러그인 받기:
http://sourceforge.net/projects/asiowmpplg/

이것도 제대로 될 거라고 장담 못하지만, ReClock이 안 된다면 이거라도..;;

2008년 9월 11일 목요일

I²S와 클록 퍼펙트(clock-perfect) 전송

나중에 붙임: 
잘은 모르지만, 요즘은 이렇게 안 하고 그냥 USB로 해결할 겁니다. 이 당시와 달리 피드백 방식으로 지터를 줄이는 알고리듬을 USB 펌웨어 차원에서 구현할 방법이 있기 때문이죠. 특정 제품의 USB 펌웨어에 그것이 구현되어 있는지만 확인하시면 됩니다.

* * *

- 공시디에 따라 음질이 달라진다고 합니다. 무슨 소립니까? 데이터가 100% 같은데?

- 디지털 케이블에 따라 음질이 달라진다고 합니다. 무슨 실용론자 광분할 소립니까? 데이터가 100% 같은데?
- 디지털은 아날로그보다 음질이 못하다고, 딱딱한 소리가 난다고 합니다. 무슨 헛소립니까? 귀로 듣고 구분할 수 있어요? 응? 응?

저 세 가지 주장이 다 헛소리라고 굳게 믿는 실용오디오 탈레반은 얌전히 꺼져주시면 고맙겠습니다.

※ 나중에 붙임. 아무 데로나 꺼지지 말고 요 아래 사이트로 가서 100만 원 빵을 함 해보시면 어떨까요?

http://blog.naver.com/miroo67

이분은 자칭 황금귀라서 웬만하면 상대방 조건을 다 들어준다고 하는데 신청자가 없는 모양입니다. 저한테 100만 원 빵 신청하셔도 되는데, 저는 황금귀가 아니라서 조건이 제법 까다롭습니다. 엄격한 실험심리학 실험 기준을 적용할 생각이거든요.

* * *

소리가 다르기는 한데, 왜 그런지 모르는 분은 '클록 퍼펙트(clock-perfect)'를 아셔야 합니다. '클록 퍼펙트'는 '비트 퍼펙트(bit-perfect)'를 바꾼 말로 제가 지어냈습니다. 인터넷 검색해보니 '비트 퍼펙트'라는 말은 있어도 '클록 퍼펙트'는 없더군요.

사실은 '클록'보다 '지터(jitter)'를 먼저 아셔야 합니다. 태초에 지터가 있었습니다. 쿨럭...;;

지터가 뭔지는 솔직히 저도 잘 모릅니다. 위키피디아 검색하니 이렇게 나오네요:
http://en.wikipedia.org/wiki/Jitter

지터는 여러 가지가 있지만 대부분은 시간 관련 지터라고 합니다. 데이터를 보내고 받는데 순서가 꼬일 수 있다는 것 같아요. 이걸 바로잡아 줘야 하는데 오디오에서 실시간으로 처리하다 보면 '아날로그적인' 오류가 생길 수 있다는 것 같습니다. 데이터 오류가 생기면 '퍽' 하는 잡음이 생기지만 시간 관련 지터가 생기면 잡음이 생기는 대신 음질이 나빠진다고 해요. '디지털스러운' 딱딱한 소리가 바로 시간 관련 지터 때문이라는군요.

이제 클록(clock)을 알아봅시다. 클록은 우리말로 '시계'이지요. 여기서는 컴퓨터에서 시간 제어에 쓰이는 정보를 말합니다. 컴퓨터에는 클록 제너레이터(clock generator)라는 놈이 시간 제어를 담당한다고 해요. 손목에 차는 시계와 휴대전화 시계와 TV 방송에서 알려주는 시계는 조금씩 다르지요? PC에서 DAC로 데이터를 보낼 때에도 PC에 있는 클록 제너레이터와 DAC에 있는 클록 제너레이터가 당연히 같지 않기 때문에 시간 관련 지터가 생깁니다. 여기서 의문. 그러면 도대체 '클록 퍼펙트'라는 게 가능하기는 한 겁니까? 제가 바로 알고 있다면 이론적으로 불가능합니다. 그러나 백만 년에 1초씩 느려지는 시계가 있다면 그냥 정확한 시계라고 봐도 되지 않을까요? 이쯤 되면 그냥 '클록 퍼펙트'하다고 해줍시다.

클록 제너레이터를 위키피디아에서 찾아보니 이렇게 나오네요:
http://en.wikipedia.org/wiki/Clock_generator

컴퓨터 내부에서는 시간 관련 지터가 없는 것이나 마찬가지라고 합니다. '클록 퍼펙트'하지요. 컴퓨터 속 오디오 장치끼리 정보를 주고받을 때에는 I²S라는 전송규약(protocol)을 따른다고 합니다. I²S는 "Integrated Interchip Sound" 또는 "Inter-IC Sound"를 줄인 말이고 '아이-스퀘어-에스'라고 읽습니다. 이놈은 I²C(Inter-Integrated Circuit)의 오디오 버전인 것 같아요.

I²C는 한글 위키피디아에도 나오네요:
http://ko.wikipedia.org/wiki/I%C2%B2C

I²S는 영문 위키피디아에 있습니다:
http://en.wikipedia.org/wiki/I2S

링크에 나와있는 내용은 전문적이라 많이 어렵지요? I²S는 데이터와 클록 정보를 따로 전송하기 때문에 그만큼 손실이 없거나 적다고만 알고 넘어갑시다.

그런데 사운드카드 또는 오디오카드와 외장 DAC를 연결할 때에는 보통 광, 동축, 또는 USB 케이블로 연결합니다. 광(TOSLINK) 단자와 동축(coaxial) 단자는 S/PDIF(Sony/Philips Digital Interconnect Format)라는 전송규약(protocol)을 따른다고 합니다. USB는 USB 오디오 전송규약을 따르고요. 그러니까 PC에 있는 사운드카드에서 I²S 신호가 S/PDIF로 바뀌거나 PC에 있는 메인보드에서 I²S 신호가 USB 오디오 신호로 바뀌어서 외장 DAC로 간 다음, 다시 외장 DAC 입력단에서 이 신호가 I²S 신호로 바뀌어 DAC 칩으로 가서 아날로그 신호가 됩니다.

S/PDIF를 위키피디아에서 찾아보니:
http://en.wikipedia.org/wiki/SPDIF

여기서 문제가 생깁니다. S/PDIF나 USB는 I²S와는 달리 데이터 정보와 클록 정보를 같이 보내기 때문에 시간 관련 지터가 매.우. 많이 생긴다고 해요. S/PDIF를 만들 때는 그 때문에 사람이 지각할 수 있을 만큼 음질 차이가 날 줄 몰랐겠죠. 아니면 알았어도 마땅한 방법이 없었거나. USB야 애초에 오디오용이 아니었고요.

자, 지터를 되도록 줄이려면 어떻게 하면 될까요? PC나 다른 여러 곳에서 들어오는 '노이즈'를 줄이면 됩니다. 오디오랑 비슷하다고 보면 되지요. 좋은 케이블 쓰고, 차폐에 신경 쓰고, 단자를 깨끗하게 닦아주고, 케이그 칠해주고 등등.

그런데 S/PDIF나 USB를 거칠 게 아니라 PC와 외장 DAC 사이를 처음부터 I²S 연결하면 되지 않나요? 맞습니다! 이게 왜 처음부터 안 되었는지는 저도 잘 모릅니다. 제 생각에는 단자를 비롯한 것들이 표준이 정해지기까지 저작권이 발목을 잡지 않았나 싶어요. 그리고 기술적인 문제도 하나 있는데, I²S는 컴퓨터 내부에서 신호를 주고받으려고 만든 거라서 케이블 길이가 긴 상황을 고려하지 않은 것 같아요. 정확한 내용은 모르겠지만 케이블이 길수록 안 좋다더군요.

여기서 TG-Link 얘기를 하지 않을 수 없습니다. 이놈은 TOGO라는 중국 회사에서 I²S를 베껴서 만든 전송규약인데, 인터넷 전송에 쓰는 이더넷(Ethernet)과 I²S를 합쳐놓았다고 합니다.

이더넷은 한글 위키피디아에도 있네요:
http://ko.wikipedia.org/wiki/%EC%9D%B4%EB%8D%94%EB%84%B7

I²S보다 더 좋은 기술이지만 저작권을 대략 무시하고 만들었기 때문에 중국에서만 써먹고 있지요. 제가 올바로 이해했다면 TG-Link는 I²S보다 케이블 영향을 덜 받을 겁니다. 좀 길어도 되고 싸구려 케이블이라도 돼요.

TG-Link에 대해 제가 얼마 전에 쓴 글:
http://wagnerian.textcube.com/305

그리고 프로용 오디오 장비에서는 I²S와 비슷한 자체 전송규약을 만들어서 쓴다고 합니다.

요즘은 CD 트랜스포트와 DAC를 I²S 연결할 수도 있게 나오지요? PC도 이렇게 하면 좋을 텐데요, 무슨 방법이 있을까요?

첫째, 사운드카드를 개조해서 I²S 신호를 따옵니다. 회로도가 인터넷에 돌아다니기 때문에 개조하기 어렵지 않다고 합니다. 재주 있으신 분은 개조 사운드카드 공제 좀 해주시면 안 될까요? ●█▀█▄ 굽신굽신●█▀█▄ 굽신굽신

둘째, SndScape Odeum라는 사운드카드(?)를 PC에 설치하고 TG-Link to I²S 컨버터를 만들어 연결합니다. SndScape라는 중국 회사에서 컨버터 모듈을 판다고 합니다:
http://www.sndscape.com/AccessoriesPage.asp?AccessoriesNameID=10

셋째, 프로용 장비를 씁니다. 뭐가 있는지는 저도 모릅니다. 일단 비싸겠지요? -_-;;

넷째, USB to I²S 컨버터를 씁니다. 이놈은 USB를 거치는 순간 '클록 퍼펙트'와는 거리가 멀어지므로 궁극적으로는 바람직하지 않습니다. 그러나 USB 펌웨어를 잘 만들고 좋은 클록 제너레이터를 쓰면 현실적으로 가장 좋은 방법일 수도 있습니다. OffRamp I2S라는 제품이 지금까지 나온 것 가운데 가장 좋다고 합니다. 제작자가 Intel 엔지니어 출신이고 지터 전문가라서 믿을 만합니다. 제 생각에 오디오카드를 개조해서 직접
I²S 신호를 따오더라도 이놈 만한 음질이 나와줄지 의심스럽습니다. 대신 값이 싸지는 않네요.

OffRamp I2S 소개:
http://www.empiricalaudio.com/frComputer_Audio.html#Off-Ramp%20I2S


저는 이쪽 전문가가 아니고 음악학 전공한 사람인데, 잘 모르면서 떠들어 봤습니다. 틀린 곳이 있으면 알려주세요.

나중에 붙임. 지터가 생겨도 보정 과정을 거치면 데이터가 바뀌는 일은 거의 없는 모양입니다. 그러나 지터 때문에 왜곡된 클록 정보가 DAC 칩에 영향을 끼쳐 결국 음질이 달라진다고 하네요. 참고:
http://wagnerian.textcube.com/354

정보공유라이선스

김원철. 2008. 이 글은 '정보공유라이선스: 영리·개작불허'에 따라 이용할 수 있습니다.

2008년 9월 3일 수요일

TG-Link, 미래의(?) 디지털 전송 기술

TG-Link, 미래의(?) 디지털 전송 기술         |         PC-fi 게시판         2008.09.03 22:17
김원철(wagnerian97)         성실멤버
http://cafe.naver.com/bbung24/2341

요 밑에서 소개한 Off-Ramp I2S 컨버터를 지를까 심각하게 고민하던 가운데 TG-Link라는 것을 알게 되었네요. I2S와 마찬가지로 데이터와 클록을 나눠서 전송하기 때문에 이론적으로 (시간 관련) 지터가 없답니다. 뭐 이론적으로 그렇다는 것이고, PC에서 TG-Link를 빼내는 장치에 얼마나 좋은 클록 제너레이터가 달렸느냐에 따라 달라지는 건 똑같지 싶습니다. SndScape Odeum이라는 사운드카드를 많이 추천하는데, 이놈은 말이 사운드카드지 아날로그 단이 아예 없고 하이엔드 클록 제너레이터를 두 개나 썼다네요.

(나중에 붙임: 아날로그단이 없다는 부분 매우 중요합니다. 중국산이라도 믿어볼 만한 게 그 때문이거든요. Odeum이 아닌 Centre라는 모델은 아날로그단이 있는 보통 싸.구.려. 사운드카드이므로 SndScape라는 회사 이름만 보고 샀다가는 돈만 날립니다.)

http://www.sndscape.com/ProductPage.asp?action=Intro&ProductID=8

그 런데 문제가 하나 있습니다. TG-Link는 TOGO라는 중국 회사에서 독자적으로 만든 기술로 대략 저작권법 위반이랍니다. 이 부분 중요합니다. TG-Link를 지원하는 DAC가 중국산 말고는 없는 모양입니다. 그 가운데 제일 유명한 게 Zhaolu D3라는 DAC인데요, 미국 쪽에서 열광적인 뽐뿌가 있고 와싸다에서도 마치 TOGO 대변인인 양 뽐뿌하는 사람이 있네요. 그런데 편견일지 모르지만, 아무리 생각해도 아날로그 출력에 믿음이 안 갑니다. 결정적으로 싸구려 부품 쓴 짝퉁이 심심치 않게 있는 것 같습니다. 우리나라에서 공구한 제품이 특히 그렇답니다. (여기서 생각나는 중국 속담: "진짜가 있으면 가짜도 있다." "엄마 빼고는 다 가짜다.")

그런데 이런 생각이 들더군요. USB to I2S 컨버터도 있는데 그럼 TG-Link를 I2S로 바꿔주면 되잖아? 실제로 SndScape에서 그런 모듈을 내놓았더군요.

http://www.sndscape.com/AccessoriesPage.asp?AccessoriesNameID=10

이눔 시키들이 그러면 Odeum 카드에 I2S단자 하나 만들어주면 될 걸 가지고 TG-Link와 BNC와 광단자 이렇게만 지원합니다. 이거 결국 TG-Link 뽐뿌하려고 그러는 거 아닙니까? 지들도 저작권법 위반해서 만든 거면서?

에이프릴 게시판에 TG-Link 지원하는 DAC 좀 만들어달라는 글도 있네요. 에이프릴에서는 아직 답이 없습니다. ;;

결론은, 현재까지 가장 좋은 것은 Off-Ramp I2S와 에이프릴 DA100Sig을 쓰는 겁니다. (물론 DA100Sig보다 나은 DAC도 있겠지만요.)

그런데 TG-Link to I2S 컨버터가 나오기만 하면 Off-Ramp I2S는 팽 신세가 될 것이라...;;
(Off-Ramp I2S는 중간에 USB를 거치기 때문에 지터가 전혀 없지는 않습니다.)
그래서 아직은 아날로그에 더 신경 써야겠습니다.

글 찾기

글 갈래