블루투스/코덱
1. 개요
블루투스는 이어폰이나 헤드폰, 스피커 등 오디오 재생용 제품의 무선 연결에 가장 널리 사용되고 있다. 이 문서에서는 블루투스 이용을 도와주는 여러 코덱들에 대하여 설명한다.
2. 상세
블루투스 스피커나 블루투스 이어폰/헤드폰/헤드셋 등 음악감상용 블루투스 오디오 기기는 A2DP(Advanced Audio Distribution Profile) 프로필을 사용하는데, 여기에 오디오 압축 기능이 들어간다. MP3 음악 파일 등을 재생하면 16비트 리니어 PCM 디지털 신호로 복호화 되는데, 이걸 압축하지 않고 그대로 전송하기에는 블루투스 전송 속도로는 감당이 되지 않으므로 대역폭을 절약하기 위해 오디오 신호를 코덱으로 압축해서 전송한다.
3. 코덱
3.1. SBC
A2DP 프로필의 기본 표준 압축은 SBC(Sub-Band Codec)라는 코덱을 쓴다. 압축 방식은 MP3와 비슷하게 오디오 신호를 주파수 대역별로 여러 밴드로 나눠 코딩하는데, 알고리즘을 간소화해서 그만큼 계산량이 적어서 전력 소모가 적은 대신 압축율은 낮다. 전송률은 최고 345kbps[1] 까지 지원하므로 음질은 MP3와 비슷하지만 압축률이 낮아 전송 지연이 다소 길다.
[image]
다만, 전송 지연의 경우에는 상단의 표와 같이 aptX LL과 같이 레이턴시 특화 코덱이 아니라면 코덱보다 리시버 하드웨어에 더 큰 영향을 받는다. 즉, 잘 만든 블루투스 리시버는 SBC 코덱이라 하더라도 aptx와 레이턴시에 큰 차이가 없다. SBC와 aptX를 동시에 지원하는 경우 양자간에 20ms 정도의 속도 차이를 보였으며, 사람이 인식할 수 있는 레이턴시 차이가 15ms임을 감안하면 전송 지연에서는 사실상 차이가 없다고 볼 수 있다. 또한 SBC 코덱임에도 타 제품의 aptX 코덱과 비슷하거나 더 나은 레이턴시를 보이는 제품이 상당수 존재하여, 이를 통해 SBC와 aptX의 전송 지연의 경우 코덱의 지원 여부보다 하드웨어에 더 큰 영향을 받는 것이 확인된다. 다만 aptX LL을 지원하는 경우 30ms의 레이턴시를 보이며 전송 지연 감소 특화 코덱 다운 모습을 보여주었다. 참조
요즘 블루투스 오디오 기기들은 기본적인 SBC 코덱 외에 압축률과 음질이 다소 개선된 aptX 코덱이나 AAC 코덱, LDAC 등도 지원한다. 이들은 블루투스 표준 규격이 기본적으로 코덱은 아닌 확장 규격이므로 스마트폰 등 오디오 소스와 스피커/이어폰 등 오디오 출력장치 양쪽이 aptX든 AAC든 동일한 코덱을 공통적으로 지원해야 해당 코덱을 통한 고음질 소스를 지원할 수 있다.
요즘 기준으로 그리 좋은 코덱이라 볼 수는 없지만 전송률이 높아 음질은 블라인드 테스트로 큰 차이가 없고, 전송 지연도 하드웨어 성능이 좋을 경우 aptX LL과 비교가 아니라면 타 코덱과 극적인 차이가 없다. 사용하기에 나쁜 코덱은 아니라는 뜻이다.
여담으로, 안드로이드는 블루투스 스택을 수정하여 SBC의 비트레이트 제한을 상향 조정할 수 있다. 이렇게 비트레이트가 상향된 SBC는 SBC XQ 혹은 SBC Dual Channel로 불리는데 인코딩 결과물 분석을 바탕으로 살펴보면 aptX를 압도하는 것은 물론이고 특히 16-bit/44.1kHz/551.3kbps 혹은 16-bit/48kHz/600kbps 에서 aptX HD를 상회하는 음질을 확인할 수 있다.
아래 표는 실험을 거친 설정과 비트레이트 값들 중 의미 있는 값들을 정리한 것이다.
*모드에 특기하지 않은 설정은 기본값이다(JointStereo <-> DualChannel, Subbands8 <-> Subbands4).
*같은 비트풀이라도 44.1khz와 48khz의 비트레이트는 다름에 주의. 이는 샘플레이트 증가로 인한 대역폭 상승이 반영된 것이다.
*48khz에서 TWS는 극히 일부 예외를 빼면 비트레이트를 올리기가 거의 불가능하다.
*Subband4 단독 설정은 효율이 좋으나 호환 폭이 좁고 몇몇 트랜시버에서 심각한 Crackling을 유발할 가능성이 있다.
*Subband4 포함 설정은 대부분의 TWS 리시버에서 작동하지 않는다.
*DualChannel, Subbands4 동시 설정은 일부 트랜시버 조합에서만 가능하며 야외에서 사용하기에는 무리가 있다.
*꼭 고급, 최신 칩셋을 사용한 트랜시버라 해서 좋은 설정이 가능하리라는 보장이 없으며 의외로 저가형, 구형 칩셋이 월등한 경우가 있다.
*표에 명시되지 않은 설정값은 이곳에서 계산할 수 있다.
안드로이드 파이 이하의 루팅된 기기는 대부분 디스어셈블러와 헥스에디터를 사용해 패치하는 방법으로 비트레이트 값을 설정할 수 있다. 다만, 현재 제대로 정리된 패치 메뉴얼을 찾을 수 있는 것은 블루드로이드 스택을 사용하는 롤리팝 이상 누가 이하까지다. 그외에는 제조사나 안드로이드 버전마다 패치 방법과 난이도가 크게 갈리는데, 특히 진저브레드이면서 레거시 브로드컴 스택을 사용할 경우[4] 디스컴파일러까지 동원해야 할 수도 있다. 블루드로이드 스택을 사용하면서 로그를 따기 쉬운 킷캣부터 플루오라이드 스택을 사용하는 오레오, 파이는 패치하기가 비교적 용이한 편. 블루엔젤 스택을 사용하는 마쉬멜로우 미만의 미디어텍 기기들은 아직 패치 성공 여부가 확인되지 않았다.
일단 발신 측에 패치를 성공하면 수신 측에서는 별다른 지원이나 조작이 필요하지 않다. 4~600Kbps는 거의 대부분 문제 없이 작동하며 700kbps 이상도 불가능하지 않다. 드물기는 하지만 1000kbps가 넘는 비트레이트를 줬음에도 문제가 없는 당혹스러운 경우도 있다.
SBC XQ 452kbps와 551.3kbps 설정은 lineage OS를 비롯한 몇몇 커스텀 롬에 기본으로 들어간다.
3.2. aptX
aptX 코덱은 SBC 다음으로 널리 쓰이는 대중적인 코덱이다. 과거에는 apt-X라고 표시했지만 요즘은 aptX로 표시한다. 대충 16비트 44 kHz 의 오디오 CD급 샘플링 소스로 384 kbps MP3 급으로 압축률은 4:1 정도이고 전송 지연도 약간 줄였다. 원래 CSR에서 개발한 코덱인데 현재는 스마트폰용 AP 칩셋을 만드는 퀄컴사가 2015년 회사를 인수해서 퀄컴의 스냅드래곤 칩을 사용하는 스마트폰은 대부분 aptX를 지원한다. 삼성 갤럭시 등 요즘의 안드로이드 계열 스마트폰들은 대부분 aptX를 지원한다. Windows 10 이후 기본 지원 코덱이라, 자체 블루투스 스택을 사용하지 않으면 Windows 기기도 aptX를 사용가능하다.
이 코덱의 장점은 연산량이 적어 배터리 소모가 적고 Low Latency(LL) 버전의 경우 전송 지연 시간이 다른 압축 오디오 코덱보다 상당히 낮다는 점인데, 블루투스는 전송 안정성을 위해 큰 버퍼를 사용해야만 하므로[5] 전송 지연 시간(latency)이 다소 길다. 컴퓨터 게임이나 TV나 동영상 감상에 블루투스 이어폰을 사용하면 화면보다 소리가 약간 뒤쳐지거나 입이 안 맞는다는 느낌이 든다. 유선 이어폰 등의 전송 지연은 10 msec 이하이고 SBC 코덱은 지연 시간이 보통 170~220 msec나 된다. 일반 aptX 코덱도 다소 단축했지만 여전히 70~170 msec나 되어 꽤 딜레이가 느껴지고 AAC 코덱도 비슷하다. aptX LL 코덱은 이런 전송 지연 시간을 대폭 단축하기 위해 버퍼 크기를 극단적으로 줄인 것이다[6] . 이들의 지연 시간은 대충 33~40 msec 정도로 크게 줄어들어 지연이 거의 느껴지지 않는다. 이러한 이유로 aptX와 aptX LL 코덱은 블루투스 이어폰, 스피커 등에서 채택이 늘어나고 있다.
3.3. AAC
AAC 코덱은 MPEG4 규격의 오디오 코덱으로 애플의 여러 기기에 널리 쓰이고 있다. 아이폰이나 아이패드, 블루투스 이어폰인 에어팟 등의 애플의 블루투스 오디오 기기는 aptX를 지원하지 않고 대신에 SBC와 AAC 코덱을 사용하고 있다.[7] 안드로이드 오레오에서도 LDAC와 함께 기본 블루투스 코덱으로 추가되었다.
AAC 코덱을 블루투스 오디오 코덱으로 활용하기 위해서는 플레이어와 리시버가 AAC 코덱을 지원해야 한다. 음원은 AAC가 아니어도 상관없다.
3.4. SSC
SSC 코덱은 삼성전자가 독자 개발한 블루투스 코덱으로 비트레이트 값이 고정값이 아닌 가변값으로 설정하여 블루투스 연결강도에 따라 비트레이트를 변경하여 연결성을 중시하는 코덱이다. Samsung Scalable Codec의 약자이다.
자세한 내용은 Samsung Scalable Codec 참고
3.5. LC3
블루투스 스팩 5.2 LE Audio 에서 추가 된 오디오 코텍으로 전송률은 192kbps로 SBC 모두 50% 정도 압축률이 좋다.
LE Audio는 기존 Classic 보다 전력소모가 적어 배터리 수명이 길다. 그리고 브로드 캐스팅을 지원하여 여러 사람이 같이 들을 수 있다.
참조
3.5.1. LC3plus
LC3의 슈퍼세트로서 5ms와 2ms 수준의 저지연모드를 지원하며 LC3 이상으로 게임과 VoIP 통화 용도에 최적화 되어있다.
참조
3.6. HD 블루투스 코덱
최근에는 CD급 음질을 넘어서, 흔히 HD 오디오로 불리는 24 비트/96 kHz 이상의 초고음질 음원을 지원할 수 있는 새로운 고성능 HD급 코덱들도 등장하고 있다. 대표적으로 aptX HD 코덱이 있는데 최고 24 비트/48 kHz 초고음질 음원을 지원한다. 또 음질과 전송 지연을 조절할 수 있어서 음질을 낮추고 대신 전송 지연을 aptX/LL급 정도로 단축할 수도 있다. 그 외에도 소니가 제안한 최고 96 kHz 샘플링을 지원하는 최고급 LDAC 코덱이 있다. 소니는 이 코덱의 소스를 구글에 제출해서 안드로이드 8.0 Oreo부터는 블루투스 코덱으로 LDAC 코덱이 기본적으로 지원된다. 삼성도 UHQaudio라는 새로운 코덱을 제안하고 있다.
이들 HD 코덱은 발신 기기와 수신 음향기기 양쪽이 다 같은 HD 코덱을 지원하면 지연 시간이 긴 것을 빼면 거의 유선에 가까운 고음질을 사용할 수 있다. 하지만 이런 HD 코덱들은 아직 나온 지가 얼마 되지 않았고 주로 고가의 오디오 기기에만 쓰이고 있어서 이들 지원하는 기기가 아직 많지 않다.
LDAC의 경우 안드로이드 오레오 이상의 스마트폰이라면 모두 발신은 가능하지만, 수신 가능한 음향기기는 고가의 소니 블루투스 헤드폰 뿐이다. aptx HD의 경우 퀄컴칩셋을 탑재한 스마트폰에서 발신이 가능하지만, 수신 가능한 음향기기는 메이저 음향기기 제조사에서도 고가다. 삼성 코덱의 경우 삼성 스마트폰과 삼성 음향기기를 썼을때만 동작한다.
4. 근황
현재 블루투스 이어폰 헤드폰 스피커들은 점차 안드로이드 폰이 사용하는 aptX나 aptX LL 코덱을 지원하는 기기들이 늘어나고 있는 있는 추세이다. 또 아이폰을 지원하는데 필요한 AAC 코덱도 함께 지원하는 aptX/AAC 겸용 이어폰도 늘어나고 있다. 현재로는 무난하게는 코덱으로 SBC, aptX LL, AAC 등 두세가지만 지원되면 갤럭시나 아이폰에서 다 지원받을 수 있다.
PC에서도 윈도우 10 은 aptX를 지원하는데 블루투스를 자체 지원하는 노트북 등은 사용하는 블루투스 칩셋에 따라 요즘은 대부분 aptX를 지원하는 경우가 많다. 블루투스나 aptX를 직접 지원하지 않는 데스크탑이나 윈도우 버전 등에서 aptX 블루투스를 쓰려면 aptX를 지원하는 블루투스 USB 동글을 따로 USB 포트에 설치해야 한다. 스탠다드뿐만이 아닌 aptx-ll이나 aptx-hd를 추가로 지원하는 동글은 흔한 편이므로 차라리 이쪽이 더 나을 수 있다. 다만 AAC나 LDAC 등은 PC에서 사용하기 까다로운데, 굳이 사용해야겠다면 USB DAC와 블루투스 기능을 동시에 지원하는 DAP를 구매하거나 스트리밍 서버를 만들어 해당 블루투스 코덱을 지원하는 모바일 기기를 브릿지처럼 사용하는 게 차라리 더 빠르다[8] .
애플이 2016년 아이폰7에서 3.5 밀리 이어폰 단자를 제거한 이후 이어폰/헤드폰 시장은 점차 유선에서 무선으로 중심이 이동하고 있다. 애플은 에어팟 같은 제품으로 블루투스 코드리스 이어폰 시장을 주도하고 있고 고급 무선 헤드폰 시장에도 진출을 준비 중이다. 현재 고급 이어폰/헤드폰 시장에서도 무선의 비중이 60% 정도로 급격히 높아지고 있다. 삼성도 에어팟으로 시작된 코드리스 이어폰 시장에 대응하기 위해 기존에 출시된 기어 시리즈를 이어폰으로 변경하여 출시하였으며, 스마트폰 제조사 이외에도 기존 하이엔드 리시버 제조업체(B&O, Sennheiser, 소니 등)도 코드리스 이어폰을 출시하여 시장이 급격히 팽창되고 있다.
최근 스마트폰을 비롯한 스마트 디바이스들이 블루투스 5.0을 지원하게 되어 블루투스 5.0을 지원하는 무선 이어폰 등도 이에 발맞춰 시장에 속속 등장하고 있다. 퀄컴도 에어팟의 W1 이어폰 칩에 자극받아 에어팟급 성능과 편리성을 가능하게 하는 블루투스 5.0 이어폰용 칩을 발표하여 2018년 하반기에는 이를 채용한 신제품이 대거 등장할 예정으로 무선 이어폰/헤드폰 시장경쟁이 뜨거워지고 있다.
유선 이어폰/헤드폰 이나 차량의 카 스테레오나 가정용 오디오 등을 스마트폰 등과 무선으로 연결해서 쓰고 싶다면 무선 블루투스 오디오를 유선으로 변환해 주는 블루투스 리시버를 쓰면 된다. 차량용은 3.5 플러그가 달린 동글 형태로 카스테레오의 3.5 밀리 AUX/LINE 입력 단자에 꽂는 형태이고 이어폰/헤드폰 용은 지포 라이터 또는 1회용 라이터 모양이고 이어폰을 꽂는 3.5 잭과 옷깃에 찝는 클립이 달려있다. 이들은 자체 충전배터리를 내장하고 있어 6-8시간 정도 연속 사용할 수 있다. 고가의 고급 유선 이어폰/헤드폰을 이미 보유하고 있다면 이런 무선 리시버로 새로 큰 돈 들이지 않고 무선화할 수 있다. Avantree 등의 제품이 유명하다. 가정용 오디오용으로는 3.5 이어폰 잭 외에 S/PDIF 디지털 광단자 등의 오디오용 단자를 갖추고 블루투스 오디오 송신과 수신을 겸할 수 있는 제품도 나오고 있다. 이들은 5핀 마이크로 USB 에서 전원을 얻는다.
[1] 일반적으로 44.1khz에서 328kbps(bitpool 53), 48khz에서 345kbps(bitpool 51)가 최대 비트레이트다.[2] TWS 사용시 48khz에서 가능한 최대 비트레이트[3] 44.1khz 1212.8kbps는 Sony Xperia Z5 Compact E5823 32.0.A.6.156 Customized UK + KZ Bluetooth Upgrade Cable(CSR8675 Ver.) 조합에서, 48khz 1320kbps는 Sony Xperia E1 D2005 20.1.A.2.19 Customized KR + FiiO BTR3 조합에서 작동 확인.[4] 갤럭시 S가 대표적인 예인데, 정상적인 방법으로 HCI로그를 딸 수 없는 것은 둘째치고 주된 설정을 바꾸더라도 그것을 곧장 디폴트 값으로 되돌리는 코드들이 곳곳에 산재해 있다. 하나하나 찾아서 고치는 수밖에 없다.[5] 인코딩/디코딩에 의한 지연은 SBC 기준 10ms 내외로 생각보다 큰 영향을 끼치지 않는다.[6] 대역폭은 352kbps로 aptx 스탠다드와 크게 차이가 없다. 단, 적은 버퍼로도 안정적인 연결을 유지하기 위한 수단이 반드시 필요하다. 그래서 작은 크기에 많은 부품을 집적해야 하는 TWS, Wifi와 블루투스가 안테나를 공유하는 스마트폰 등의 기기에서는 지원하기 어렵다.[7] 애플에서 사실상 손실 음원의 자체 표준으로 쓰고 있는 점과 AAC 코덱 이름이 Apple Audio Codec이라는 오해를 받아 애플 자체 코덱이라는 오해를 받는 경우가 있는데, 이는 사실이 아니다. 자세한 내용은 AAC 항목 참조.[8] 안드로이드에서는 SoundWire나 AudioRelay와 같은 다양한 앱에서 wifi와 USB 테더링을 통한 무손실 스트리밍을 지원한다. 오레오 이상의 안드로이드 폰은 대개 LDAC을 지원하므로 블루투스 DAC로 활용할 여지가 충분하다. 다만 16bit 48khz 이상을 지원하지 않는다. 또한 이중 버퍼로 인해 지연이 대폭 증가하므로 음악 감상 이외에 다른 것을 하기는 어렵다.