SBC(오디오 코덱)
덤프버전 : (♥ 0)
분류
1. 개요[편집]
Sub-Band Codec이라고도 불리며, 블루투스 오디오 기기에 사용되는 A2DP(Advanced Audio Distribution Profile) 프로필의 기본 표준 압축에 사용되는 코덱이다.
2. 압축 방식[편집]
압축 방식은 MP2, Musepack, MP3와 비슷하게 오디오 신호를 주파수 대역별로 여러 밴드로 나눠 코딩하는데, 알고리즘을 간소화해서 그만큼 계산량이 적어서 전력 소모가 적은 대신 압축률은 MP2보다도 낮다.
3. 전송 지연[편집]
![파일:bluetooh_latency.png](http://obj-sg.the1.wiki/d/be/c2/37a6811012baae039903458f34b8378014f3e4b60e6d513443d80964fd10f425.png)
압축률이 낮아 전송 지연이 다소 길다고 알려져 있다. 그러나 전송 지연은 상단의 표와 같이 aptX LL과 같이 레이턴시 특화 코덱이 아니라면 코덱 그 자체(Algorithmic delay)[1] 보다 리시버 하드웨어에 더 큰 영향을 받는다. 즉, 잘 만든 블루투스 리시버는 SBC 코덱이라 하더라도 aptx와 레이턴시에 큰 차이가 없다. SBC와 aptX를 동시에 지원하는 경우 양자 간에 20ms 정도의 속도 차이를 보였으며, 사람이 인식할 수 있는 레이턴시 차이가 15ms임을 감안하면 전송 지연에서는 사실상 차이가 없다고 볼 수 있다. 또한 SBC 코덱임에도 타 제품의 aptX 코덱과 비슷하거나 더 나은 레이턴시를 보이는 제품이 상당수 존재하여, 이를 통해 SBC와 aptX의 전송 지연의 경우 코덱의 지원 여부보다 하드웨어에 더 큰 영향을 받는 것이 확인된다. 다만 aptX LL을 지원하는 경우 30ms의 레이턴시를 보이며 전송 지연 감소 특화 코덱 다운 모습을 보여주었다. 참조
4. 비트레이트[편집]
비트전송률(비트레이트)은 고정되어 있지 않지만 일반적으로는 최고 328/345kbps[2] 까지 지원하므로 음질은 MP3 224kbps와 비슷하다. 기기에 따라서는 혼선을 방지하기 위해 MP3 112kbps 정도의 음질인 229/237kbps[3] 로 제한을 걸 수 있다. 또한 TWS나 저가형 칩셋을 사용하는 블루투스 리시버의 경우 위의 표준값과는 상관없는 임의의 제한을 가질 수 있다.
여담으로, 안드로이드는 블루투스 스택을 수정하여 SBC의 비트레이트 제한을 상향 조정할 수 있다. 이렇게 비트레이트가 상향된 SBC는 SBC XQ 혹은 SBC Dual Channel로 불리는데 인코딩 결과물 분석을 바탕으로 살펴보면 aptX를 압도하는 것은 물론이고 특히 16-bit/44.1kHz/551.3kbps 혹은 16-bit/48kHz/600kbps 에서 aptX HD를 상회하는 음질을 확인할 수 있다.
아래 표는 실험을 거친 설정과 비트레이트 값들 중 의미 있는 값들을 정리한 것이다.
- 같은 비트풀이라도 32kHz, 44.1kHz, 48kHz의 비트레이트는 다름에 주의. 이는 샘플레이트 증가로 인한 대역폭 상승이 반영된 것이다.
- TWS는 48kHz에서는 정상적으로 작동하지 않는 것이 보통이므로 주의해야 한다. 그나마 CSR[4] 과 QCC[5] 를 비롯한 퀄컴 계열 칩셋은 문제가 덜한 편이며 BES는 2300부터[6] 정상 작동하는 모델이 나타나기 시작한다. 칩셋이 동일해도 제각각인 것을 보면 펌웨어를 어떻게 구성했느냐와도 연관이 있는 듯.
- 꼭 고급, 최신 칩셋을 사용한 트랜시버라 해서 좋은 설정이 가능하리라는 보장이 없으며 의외로 저가형, 구형 칩셋이 월등한 경우가 있다.
- 표에 명시되지 않은 설정값은 이곳에서 계산할 수 있다.
안드로이드 11 이하의 루팅된 기기는 대부분 디스어셈블러와 헥스에디터를 사용해 패치하는 방법[9] 으로 비트레이트 값을 설정할 수 있다. 다만, 현재 제대로 정리된 패치 메뉴얼을 찾을 수 있는 것은 블루드로이드 스택을 사용하는 롤리팝 이상 누가 이하까지다. 그외에는 칩셋, 제조사, 안드로이드 버전마다 패치 방법이 크게 달라진다[10] .
일단 발신 측에 패치를 성공하면 수신 측에서는 별다른 지원이나 조작이 필요하지 않으며 설령 수신 측이 임의의 비트레이트 제한을 가진 경우라도 채널 모드가 변경되기 때문에[11] 그것을 자연스럽게 우회한다. 다만 초저가형 리시버 중 듀얼 채널 모드 자체를 지원하지 않거나 고비트레이트에서 문제를 일으키는 것들이 드물게 있으므로 주의해야 한다. 심한 노이즈/왜곡이 발생하거나 소리가 아예 안 난다.
SBC XQ 452kbps와 551.3kbps 설정은 Lineage OS를 비롯한 몇몇 커스텀 롬에 기본으로 들어간다.
5. 기타[편집]
- 요즘 블루투스 오디오 기기들은 기본적인 SBC 코덱 외에 압축률과 음질이 다소 개선된 aptX, AAC, LDAC 코덱 등도 지원한다. 이들은 블루투스 표준 규격이 기본적으로 코덱은 아닌 확장 규격이므로 스마트폰 등 오디오 소스와 스피커/이어폰 등 오디오 출력장치 양쪽이 aptX든 AAC든 동일한 코덱을 공통적으로 지원해야 해당 코덱을 통한 고음질 소스를 지원할 수 있다.
- 요즘 기준으로 그리 좋은 코덱이라 볼 수는 없지만 전송률이 높아 음질은 블라인드 테스트로 큰 차이가 없고, 전송 지연도 하드웨어 성능이 좋을 경우 aptX LL과 비교가 아니라면 타 코덱과 극적인 차이가 없다. 사용하기에 나쁜 코덱은 아니라는 뜻이다.
6. 사양[편집]
- 샘플레이트: 16, 32, 44.1, 48 kHz
- 비트레이트: 10~1500 kbps
- 채널: 1(모노), 2(스테레오, 조인트 스테레오, 듀얼 채널)
- 운영체제별 지원 범위 #
[1] SBC의 경우 1.13~12.88ms인데, 일반적인 환경(44.1/48kHz, 16 Blocks in frame, 8 Subbands)에서는 4.67/4.29ms 밖에 안 된다.[2] 44.1kHz에서 328kbps(bitpool 53), 48kHz에서 345kbps(bitpool 51).[3] 44.1kHz에서 229kbps(bitpool 35), 48kHz에서 237kbps(bitpool 33).[4] CSR8670을 사용한 젠하이저 모멘텀 트루 와이어리스가 660kbps를 아무 문제 없이 버틴다.[5] 3020, 3040, 3046, 5121을 사용한 모델들 중 정상 작동함과 동시에 660kbps 실사용에 문제가 없는 모델이 최소한 하나 이상씩 확인되었다.[6] TaoTronics SoundLiberty 79가 660kbps에서 실사용이 가능하다.[7] A2DP Middle Quality Profile[8] A2DP High Quality Profile[9] 패치한 바이너리를 Magisk 모듈로 만드는 것도 가능하다.[10] AOSP의 블루즈(젤리빈4.1 이하)/블루드로이드(젤리빈4.2 이상)/플루오라이드(오레오 이상) 기반 스택, 젤리빈4.1 이하의 삼성/LG/팬텍 기기에서 종종 발견되는 레거시 브로드컴 스택, 마쉬멜로우 미만 미디어텍 기기 전용인 블루엔젤 스택 정도가 특기할 만하다.[11] SBC를 사용하는 블루투스 리시버는 비트레이트가 아닌 비트풀을 제한하는 방식으로 비트레이트 제한을 구현한다. 채널 모드가 조인트 스테레오에서 듀얼 채널로 변경되면 비트풀에 따른 비트레이트 값이 두 배 가까이 상승하기 때문에 비트레이트 제한도 두 배 가까이 오른다.