Golden Ears Event
Announcements
추천제품목록이동

14

2014-Oct

초급 블루투스 코덱에 관하여

작성자: fireloaf 조회 수: 6563

initiallll 님 글에 댓글로 달려다
늦은 감이 있기도 하고 댓글도 너무 길어져서 새글로 남깁니다.
일부 수정/보완하는 내용도 같이 올립니다.


1. SBC (sub-band coding)
구조가 간단하지만 음질이 떨어집니다.
mp3보다는 MPEG1 layer II에 가까운 구조를 가집니다.


2. aptX (audio processing technology X)
CSR이 삼성에 팔았던 부분은 aptX코덱부분이 아니라
블루투스 칩셋관련된 부분입니다.
이 또한 최근에 다시 매각했습니다.
(http://www.newspim.com/view.jsp?newsId=20140116000583)

CSR은 원래 칩셋제조사이며
aptX를 개발한 APT사 (Audio Processing Technology Ltd)를 2010년에 인수했습니다.
블루투스 오디오에 대한 음질 개선이 필요하다는 계산을 했을 것이며
그를 위해 aptX를 인수한 후에 프로모션한 것으로 보입니다.
최근 출시되는 상당수의 모바일 블루투스 장치에는 CSR의 칩셋이 사용됩니다.
기존에는 apt-X가 정식명칭이었지만 CSR인수후에 aptX를 정식명칭으로 사용하고 있습니다.


3. AAC (advanced audio codec)
apple audio codec로 착각하시는 분들이 계실 수도 있지만 ^^;
MPEG에 의해 1999년에 표준화된 코덱입니다.
AAC의 압축율은 mp3대비 30% 정도의 개선을 보입니다.
192 kbps mp3와 128 kbps AAC는 유사한 음질을 들려줍니다.

개인적인 생각으로는 같은 비트레이트에서는 
aptX가 AAC의 음질을 따라잡지는 못할 것이라고 봅니다.
aptX가 AAC와 비슷하거나 낫다면 관련된 자료들을 쏟아냈겠지만
그런 자료는 찾을 수가 없었습니다.
mp3와 유사한 수준이라는 주장은 본 적이 있는데 출처가 기억이 안나네요.;;;
aptX 관계자의 이야기에서도 압축성능에 대해 이야기하기 보다는
저지연과 저연산에 특화되어 있다고 이야기합니다.
(http://www.hydrogenaud.io/forums/index.php?showtopic=78217&pid=683817&mode=threaded&start=#entry683817)
(David Trainor, AES에 aptX에 관한 논문들을 제출)

실제로 aptX의 경우 2 msec (@48 kHz)의 낮은 processing delay만을 요구합니다.
SBC의 5 msec (@32 kHz) 지연보다도 적습니다.
AAC의 경우는 음질은 좋지만 transform coding 알고리즘을 사용하기 때문에
55 msec (@48 kHz)의 지연을 가집니다.
(2004 116th AES Conv. "A guideline to audio codec delay")

20배 이상의 차이지만
streaming이나 broadcasting scenario하에서는
이러한 딜레이는 사용자에게 불편을 주지 않습니다.
하지만 서로 듣고 대답하는 형태의 양방향 통신시나리오에서는
딜레이가 매우 큰 비중을 차지합니다.
따라서 마이크를 사용하는 헤드셋에 사용되는 코덱에서는 저지연이 매우 중요합니다.

동영상 재생시에 립싱크 문제가 제기되기도 하지만
비디오 코덱의 디코딩 시간이 훨씬 길기 때문에
상대적으로 오디오 코덱의 디코딩이 문제를 야기하지는 않는다고 알고 있습니다.


AAC가 최선?
블루투스를 통해 아이튠즈 음악을 감상시엔 AAC가 최선의 선택이다라는 의견에 동의합니다.
애플이 aptX를 지원하지 않는 이유, AAC를 대표코덱으로 사용하는 데는 이유가 있습니다.
aptX를 사용하려면 CSR에 코덱사용료를 로얄티로 지불해야만 합니다.

반면에 AAC의 경우 애플 자체적인 인코더와 디코더를 보유하고 있습니다.
(hydrogenaudio의 실험결과, 애플의 퀵타임 인코더의 성능이 가장 우수하게 판명되었습니다.
사실상 AAC를 만든 기관인 FhG의 인코더보다도 나은 성능을 보여주었습니다.
http://listening-tests.hydrogenaud.io/igorc/aac-96-a/results.html)

1992년에 표준화된 mp3보다 1999년에 표준화된 AAC의 성능이 우수함은 자명한 사실입니다.
(mp3의 경우 태생 자체가 여러 컨소시엄의 기술을 합치는 과정에서 효율성이 떨어지는 구조를 가지고 있었으며
AAC는 이러한 비효율성을 제거했을 뿐 아니라 새로운 기술들이 추가되기도 했습니다.)
하지만 이미 mp3가 시장을 장악하고 있었다 보니
성능이 우수함에도 코덱을 바꾸기가 쉽지 않았습니다.
하지만 애플에게는 아이튠즈라는 인프라가 있었기 때문에 가능했습니다.

문득 이 대목에서 이런 의문이 드실 겁니다.
2014년을 살고 있는 우리는 왜 아직도 20세기말의 코덱을 쓰고 있는가?

이유는 기술적인 포화 때문이라고 말씀드려야 할 것 같습니다.
청각적으로 원본과 차이를 보이지 않으면서 (논란이 있는 표현이긴 합니다. ^^;)
가장 효율적으로 압축할 수 있는 코덱이 AAC입니다.

2003년에 나온 AAC의 후속 코덱인 HE-AAC의 목적은 고음질이 아니었습니다.
어떻게든 비트율을 줄여보자였습니다.
덕분에 AAC에서 30% 가량 줄여낼 수 있었습니다.
96 kbps AAC 는 64 kbps HE-AAC와 비슷합니다.
HE-AACv2에서는 다시 30% 가량 줄입니다.

하지만 두 코덱은 AAC 수준의 음질을 만들어내지는 못합니다.
128 kbps AAC 수준의 음질을 얻기 위해서는 128 kbps로 인코딩해야 합니다.

비슷하게 돌비에서 나온 E-AC-3 (enhanced AC-3) 또는 DD+ (dolby digital plus)도
AC-3보다 나중에 나왔지만 음질에서는 AC-3를 넘어서질 못합니다.

이후에 나온 MPEG-Surround, xHE-AAC도 마찬가지입니다.
음질을 희생하고 압축율을 높일 수는 있었지만 AAC의 음질을 넘어서진 못합니다.

음질만이 목적이라면 원본 wav나 flac이 답이 될 수 있습니다.
하지만 휴대환경에서는 저장매체의 용량, DSP 연산량, 배터리 용량 등이 발목을 잡게 됩니다.
그러한 것들을 고려해야 하는 상황이라면 AAC가 최선이라고 생각합니다.


aptX는?
AAC가 아닌 aptX가 최고라고 생각하실 수도 있습니다.
aptX 관련 논문을 보니 THD로 성능을 분석한 게 많이 보이네요.
이는 aptX 코덱의 특성상 sine파를 잘 표현하기 때문입니다.

THD 결과 위주로 보여주는 것은 객관적 자료로 싸우겠다는 게 아니라
일부의 정보를 이용하여 소비자를 현혹하기 위함이라고 보입니다.
차라리 헤드셋에서는 aptX가 딜레이가 적어서
통화하는데 위화감이 제일 적다라고 광고하면 납득하겠습니다만...


AAC vs. aptX
한 두개의 사인파 재생에 대한 결과인 THD와 IMD 분석치를 기준으로
AAC를 aptX에 비해 나쁜 코덱이라고 단정지을 수는 없다고 생각합니다.

AAC는 음악을 듣기 위한 코덱이지
사인파를 듣기 위한 코덱이 아닙니다.

쉬운 비교로 음성코덱과 오디오코덱은 각자 잘 처리할 수 있는 음원이 다릅니다.
음성코덱은 3~40 kbps의 비트율로도 음성을 잘 표현할 수 있습니다.
하지만 오디오 코덱은 그 비트율로는 음성을 제대로 표현해 내지 못합니다.
(음성은 사인파와 유사한 특성들을 가집니다.)
음원이 음악이라면 상황은 반대가 됩니다.

aptX는 음성코덱과 다소 유사한 ADPCM을 기반으로 개발되었습니다.
거기에 심리음향학도 고려되면서 음악에 대해서도 어느 정도 좋은 성능을 보여줍니다.
하지만 덕분에 압축율이 매우 낮습니다. 4:1 고정입니다.

시간축에서 처리하는 음성코덱은 monophonic한 음성은 잘 표현할 수 있습니다.
단일 주파수만 잘 예측해내면 되기 때문이죠.
(이론상 2차 AR 모델링을 통해 사인파를 거의 정확하게 모델링할 수 있습니다.)

반면에 여러개의 주파수 성분들이 혼재되어 있는 음악에 대해서는 잘 표현해내지 못합니다.
그럴 때는 주파수축에서 처리하는 오디오코덱이 polyphonic한 음악을 잘 표현합니다.

하나의 사인파만을 관찰하는 경우에는 스피치 코덱의 성능이 우수하게 관측될 수 밖에 없다고 봅니다.



통화용 고음질 코덱은 aptX만이 정답?

저지연의 aptX에 대한 대안이 될만한 MPEG의 코덱으로는 AAC-ELD (enhanced low delay)가 있습니다.
aptX의 2 msec 수준의 저지연은 아니지만 기존 AAC보다는 감소한 20 msec의 낮은 지연을 보입니다.
그덕에 애플의 facetime용 코덱으로 채택되어 사용되고 있습니다.
(http://macnews.tistory.com/1890)
vo-LTE에 사용되는 AMR-WB (25ms @16 kHz)도 있지만
태생이 저비트율의 음성코덱이라 음악에 대해서는 다소 취약한 특성을 가집니다.



아이튠즈 음악을 들을 때는 AAC가 최선?
initiallll 님께서 언급하신 것처럼 트랜스코딩 과정이 생략되기 때문에
음질과 연산량 측면에서 장점을 가지는 AAC 전송이 최선입니다.
참고로 트랜스코딩은 디코딩과 재인코딩 과정에 대응되지만
실제로는 디코딩과 재인코딩이 순차적으로 이루어지지 않고
파라미터 상에서의 변형을 통하기 때문에
디코딩+재인코딩의 연산량보다는 적은 연산량을 필요로 합니다.


기타
1. mp3의 경우 트랜스코딩이 반드시 필요하지는 않습니다.
A2DP 스펙상에서 optional로 존재하기 때문에 (그것도 첫번째 optional, SBC는 mandatory-의무적)
장치에서 지원한다면 트랜스코딩 없이 전송 및 디코딩이 가능합니다.
A2DP 스펙을 참조하시기 바랍니다.
(https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=260859&vId=290074)

2. 블루투스 헤드폰에는 DAC가 들어있을 수 밖에 없습니다.
무선을 통해 디지털 신호가 전송되기 때문입니다.
배터리 이슈가 큰 블루투스 헤드셋에서
많은 전력을 소모하는 고성능 DAC를 사용할 수 있을까요?
재생시간이 긴 블루투스 헤드셋이라면
DAC 성능에 대해 의문을 던질 수 밖에 없다고 생각합니다.

3. flac이나 wav 파일을 전송할 경우는 aptX를 쓰는 게 나을까요?
사실 aptX가 사용하는 압축율을 보면 그런 논의가 무의미해 보이기도 합니다.
4:1 수준의 압축이라면 mp3, aac, ogg, aptX 무엇을 쓰든 별 차이가 없을만한 압축율입니다.

해당 압축율에서 aptX의 필요성을 주장하려면 음질보다는
저지연과 저연산을 장점으로 내세워야 합니다.
profile

Sony MDR-E888

Gyrocom DR.DAC3 + Shure SRH940

Trens TA10.2 + 사운드포럼 포도

Palo Alto Audio Design Cubik

profile

터럭

2014.10.14 16:40
추천
1
비추천
0

잘 정리한 고찰이군요? 재밌게 읽었습니다. ^^

profile

fireloaf

2014.10.15 09:45
추천
1
비추천
0

감사합니다. ^^

profile

【↓】꼬꼬마 - 키작은꼬마야

2014.10.14 17:37
추천
1
비추천
0

절말 좋은 글이네요^^

 

한 가지 질문이 있는데요.

 

aptx를 사용해서 블루투스로 신호를 전달하면 일반 다른 코덱의 칩셋보다 고주파수 쪽이 더 깔끔하게 전달된다고 본 기억이 있는데요. 이건 사실인가요?? ㅎㅎ 그냥 그 블루투스 칩셋과 받아들인 후 디코더 칩셋의 성능 차이일 뿐인가요? ㅎㅎ

profile

fireloaf

2014.10.15 10:28
추천
2
비추천
0

글쎄요.

aptX에 대해서는 기술적으로 열려 있는 부분이 워낙에 적어서요.

아마 고주파수 쪽도 왜곡이 별로 없이 잘 표현될 것 같습니다.

코덱의 성능을 논하기에는 비트율이 너무 높습니다.


AAC의 경우 128 kbps만 되어도 충분히 좋은 음질을 들려주는 상황에

352 kbps를 쓰는 aptX의 성능이 나쁠래야 나쁠 수가 없다고 봅니다.


해당 비트율에서 제일 성능이 떨어질만한 게 SBC인데 SBC조차도 MD SP수준에 근접한다고 합니다.

http://soundexpert.org/news/-/blogs/audio-quality-of-bluetooth-aptx


블루투스에서 음질불만은 무선송신의 문제이거나

코덱이 사용하는 비트율이 낮기 때문일거라 생각합니다.

profile

initiallll

2014.10.14 18:31
추천
1
비추천
0

오오! 궁금했던 점이 많이 해결되었습니다~

 

결과적으로 데이터 전송이 해결되어도,

충분한 성능의 블루투스 기기는 시간이 지나야 가능할 것 같습니다.

 

비교적 가장 많이 사용되어지는 mp3가 A2DP의 기본으로 지원되지 않는 점은

아직도 사실 이해가 안가는 부분이긴 합니다.

 

좋은글 감사합니다~

 

 

 

profile

fireloaf

2014.10.15 10:18
추천
1
비추천
0
저도 initiallll 님 덕분에 블루투스에 대해 고민하고
정리할 수 있는 기회가 되었습니다.

블루투스 코덱만으로 보았을 때는 필요한 조건들은 이미 충분히 만족하고 있다고 봅니다.
저도 초기 블루투스로 통해 들었던 기억때문에 SBC 자체의 성능이 매우 떨어질 거라 생각했었는데
아래 링크에 나타난 결과를 보았을 때 충격을 좀 받았습니다.

SBC middle quality는 mp3 128 kbps수준
SBC high quality는 MD SP에 근접하는 수준이라는 겁니다.
이렇게 보면 aptX가 굳이 필요할까라는 의문이 더욱 커집니다.
초기에 제가 들었던 블루투스 사운드는 SBC의 비트율을
낮게 강제했기 때문이었던 걸까라는 생각이 들더군요.

http://soundexpert.org/news/-/blogs/audio-quality-of-bluetooth-aptx

블루투스 칩셋을 만드는 회사들이 CSR외에도 Broadcom 등의 회사가 있는 걸로 알고 있습니다.
그러한 상황에서 경쟁력을 확보하기 위해서 CSR이 채택한 것이 aptX로 보입니다.

aptX로 얻을 수 있는 장점은 어찌보면 미미합니다.
압축율이 조금 높아지고 딜레이가 5 msec에서 2 msec로 감소한 정도로 보입니다.
그정도의 지연차이는 중요한 수준은 아니라고 보입니다.
물론 연산량은 12 MIPS에서 32 MIPS로 증가했습니다.

제가 보기엔 Microsoft의 Internet Explorer 끼워팔기로 밖에 안보이네요.



mp3가 A2DP의 mandatory가 아닌 optional로 채택된 이유는 '돈' 때문인 듯 합니다.

블루투스 표준화 과정에서 오디오 코덱은 매우 중요한 부분을 차지하는데
여기에 로얄티가 붙는다면 업체들에서 사용을 꺼릴 수 있겠죠.

MPEG1 audio를 표준화하는데 큰 기여를 했던 분이 MPEG1 layer II에서
연산량을 많이 요구하는 psychoacoustic model 부분을 제외시키고
구조를 단순화하여 만든 것이 SBC이며 이를 royalty free로
블루투스 SIG에 제공한 것으로 알고 있습니다.
덕분에 SBC는 블루투스의 mandatory로 자리를 잡게 되었습니다.

블루투스 제조사 입장에서는 공짜 코덱인 SBC를 두고 굳이 mp3를 사용할 이유가 없었겠죠.
mp3 파일이 아닌 오디오를 전송하려면 송신측에 mp3 인코더도 사용해야 하는데 그 또한 부담입니다.
또한 전력소모가 중요한 이슈인 블루투스 헤드셋에서 mp3의 전력소모가 더욱 심했을 테니까요.

AAC는 가능한 것은 애플의 영향력이 크기 때문으로 보입니다.
애플의 AAC 인코더는 무료로 사용이 가능하다고 알고 있습니다.
애플 제품에서 AAC 인코딩에 대한 부담이 없을 것이며
음악파일도 대부분 AAC로 저장되기 때문에 트랜스코딩 과정을 생략할 수 있으니
블루투스 헤드셋에서의 전력소모를 감안해도 이득이라고 보았을 수 있겠습니다.

개인적으로는 블루투스 헤드셋에서 AAC 재생, SBC 재생 aptX 재생시의
play time 비교 결과가 있으면 흥미로울 것 같습니다.
profile

라쿠라

2014.10.14 23:45
추천
1
비추천
0

훌륭한글 잘봤습니다

대단하시단 말밖에는 쓸말이 없네여..ㅎㅎ

역시 편하긴 블루투스 입니다..ㅎㅎ

profile

fireloaf

2014.10.15 10:23
추천
1
비추천
0

저도 최근에야 블루투스 스피커(홈보이 스피커독 ^^)를 사용하게 되었는데

엄청 편하네요.

profile

쉬...

2014.10.17 01:38

오오 정말 많은 정보를 얻게되네요. AAC가 바이패스 된다는 건 처음 알았습니다~~

근데 궁금한 점이 하나 있는데요...

스마트폰과 블루투스기기를 연결해서 사용할때 스마트폰에서 볼륨을 올리는 경우

바이패스가 어떻게 가능한지 궁금하네요.

볼륨조절 제어신호를 블투기기에 전송한 후 블투기기에서 디코딩 및 볼륨조절을 하는 건가요?


많이 배워갑니다~

profile

fireloaf

2014.10.17 08:57

https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=158743
https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=238193

HSP(Head-Set Profile), HFP(Hands-Free Profile) 프로파일을 참고하시면

remote volume control을 통해 정보를 전송하는 것으로 나오네요.


오디오 코덱과 관련된 A2DP(Advanced Audio Distribution Profile)에는

볼륨과 관련된 내용은 언급이 되지 않네요.


최근의 모바일 장비에 많이 들어가는 CSR8645의 경우,

EQ와 볼륨 부스트 기능도 제공하고 있네요.

http://www.csr.com/products/143/csr8645

profile

WhiteClover

2014.10.23 13:49

정말 잘 읽고갑니다. ^^

예전부터 블루투스 코덱에 대한 궁굼증이 많았는데 두분 덕분에 많은것들이 해소되었네요 ㅎㅎ


profile

fireloaf

2014.10.26 18:58

저도 블루투스 쪽 코덱들에 대해서는 잘 몰랐다가

이번에 기회가 되어 정리했는데 도움이 되셨다니 다행이네요. ^^

List of Articles

12852

VIEWS

14

COMMENTED

15293

VIEWS

13

COMMENTED

7932

VIEWS

9

COMMENTED

10562

VIEWS

23

COMMENTED

중급 약간 단순한 DSD와 DAC이야기 -4부- file

  • 등록일: 2014-12-02

10387

VIEWS

8

COMMENTED

9852

VIEWS

20

COMMENTED

42659

VIEWS

5546

VIEWS

초급 블루투스 코덱에 관하여

  • 등록일: 2014-10-14

6563

VIEWS

12

COMMENTED