蓝牙音频传输格式:ACC,SBC,APTX和LDAC_蓝牙sbc和aac的区别

蓝牙音频传输格式:ACC,SBC,APTX和LDAC_蓝牙sbc和aac的区别先转载一部分通用的知识众所周知,蓝牙耳机的音频解码主要分为sbc,aac,aptx,ldac,Ihac等几种。下面是简单的介绍。、、1、sbc是通用的最基本的解码方式,蓝牙耳机都支持,支持44khz/16bit的音频,最高码率是328kbps,延时大约220ms,所以音质一般。2、aac是苹果产品通用的解码方式,跟sbc差不多,支持44khz/16bit的音频,最高码率512kbps,延时大约100ms,音质略好于sbc。3、aptx是高通的专利,支持48khz/16bit的音频,最高码率352kb

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

先转载一部分通用的知识
众所周知,蓝牙耳机的音频解码主要分为sbc,aac,aptx,ldac,Ihac等几种。下面是简单的介绍。、、

1、sbc是通用的最基本的解码方式,蓝牙耳机都支持,支持44khz/16bit的音频,最高码率是328kbps,延时大约220ms,所以音质一般。

2、aac是苹果产品通用的解码方式,跟sbc差不多,支持44khz/16bit的音频,最高码率512kbps,延时大约100ms,音质略好于sbc。

3、aptx是高通的专利,支持48khz/16bit的音频,最高码率352kbps,延时约40ms,音质好于sbc,但相比sbc提升并不大。

4、ldac是真正的高音质解码,索尼出品,支持96khz/24bit的音频,最高码率达990kbps,接近无损解码。

5、lhac(hwa)也是接近无损解码,华为主推,支持96khz/24bit的音频,最高码率900kbps,可以媲美ldac

以flac格式的无损音乐为例,FLAC 24bit/96kHz典型压缩编码码率在2350kbps左右,我们网上下载的flac无损音质一般是44khz/16bit的,码率大约990kbps,网上下载的wav无损音乐一般也是44khz/16bit的,码率大约1400kbps。所以高品质的无损音乐体积是比较大的。

了解了以上信息,你是否知道该选哪样的蓝牙耳机了吗?无论是aac还是aptx,aptx hd都不能做到无损解码,我们在选购蓝牙耳机时,一般音乐爱好者对音质没有过多要求的选择普通的支持sbc解码的耳机就够了。对音质有一定要求的可以选择支持aptx的蓝牙耳机,音质接近cd。对音质要求比较高的,可以选择支持aptx hd的蓝牙耳机。音乐发烧友可以选择支持ldac的蓝牙耳机,品质好的价格一般在2000元以上,几百的也有。

1. SBC算法简介

SBC是sub band code的缩写,也可称为子带编码
在A2DP协议中,SBC算法是默认支持的
蓝牙SBC算法是一种以中等比特率传递高质量音频数据的低计算复杂度的音频编码算法
1.1 算法基本框图
SBC系统使用一个余弦调制的滤波器组,用来解析和同步。滤波器组可设定成4或8个子带
子带信号的量化采用比特分配器和自适应脉冲编码器组调制
可用的比特位数和编码器的块数都是可配置的
编码后的数据由比特流打包器打包,以有线或无线方式传输
解码是编码的逆过程

在这里插入图片描述
1.1 算法所用参数
sampling_frequency:采样频率。常用的是16KHz,32KHz,44.1KHz和48KHz
channel mode:通道模式。可以是单声道,双声道,立体声和联合立体声
block length:块长度。可以是4,8,12,16
subbands:子带数量。可以是4或8
allocation method:分配方式。可以是SNR或loudness
bitpool:比特池。范围是2-250。此值越大,编码产生的数据越长

sampling frequency:16
channel mode:单声道
number of subbands:8
number of channels:1
number of blocks:15
allocation method:SNR
bitpool:26

2 SBC算法实现
2.1 SBC编码算法实现

PCM格式的左右声道进入多相解析器,输出尺度因子和子带采样数据
每个尺度因子分别对应一个子带
量化后的子带采样数据需要进行打包,打包方式可以是分段或不分段

在这里插入图片描述
在这里插入图片描述
sbc编码:
在这里插入图片描述
sbc解码:
在这里插入图片描述3 SBC算法在某些蓝牙主设备上面的应用
3.1帧格式
BLE 语音包:
完整的一帧数据由58个字节组成,其中压缩后的语音数据是49字节。通过三个 BLE data 包发送给host
第一包:
在这里插入图片描述
第二包:
在这里插入图片描述
第三包:
在这里插入图片描述
aac等其他会在后面的学习过程中补充。
具体可以参考大佬们写好的博客:
https://www.cnblogs.com/huxiaopeng/p/5653195.html

https://blog.csdn.net/dop102/article/details/111082901

https://www.cnblogs.com/dashen423-511/p/10354675.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197544.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(3)


相关推荐

  • qttreewidget详解_qtreewidget获取节点层级

    qttreewidget详解_qtreewidget获取节点层级目前了解到的有两种方法:1:通过findItems过滤出符合条件的item只是用于简单的过滤,复杂的效果不太好,推荐第二种QList<QTreeWidgetItem*>findItems(constQString&text,Qt::MatchFlagsflags,intcolumn=0)const;QList<QTreeWidgetItem*>MatchItem=

  • php 5.0 与7.0有什么区别

    php 5.0 与7.0有什么区别

  • mysql报错1396_mysql连接不上数据库

    mysql报错1396_mysql连接不上数据库我似乎无法重新创建一个已删除的简单用户,即使以root用户身份在MySQL中也是如此。我的情况是:用户’jack’曾经存在,但是我从mysql.user中删除了它以重新创建它。我在那张桌子上看不到任何痕迹。如果我对其他随机用户名(例如“jimmy”)执行此命令,则该命令会正常工作(就像最初对“jack”所做的一样)。我已经做了些什么来破坏用户“jack”,以及如何撤销该破坏,以便重新创建“…

  • 深入理解Java虚拟机:垃圾收集

    深入理解Java虚拟机:垃圾收集概述    GC即垃圾回收,是指jvm用于释放那些不再使用的对象所占用的内存。    垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。两种常用的方法是引用计数和对象引用遍历。JVM的GC触发原理    JVM的GC主要是对堆内存的回收,一般把新生代的GC称为minorGC,把老年代的GC成为fullGC,所谓fullgc会先出发一次minor

  • golang环境搭建_linux开发环境的搭建

    golang环境搭建_linux开发环境的搭建『Golang』(Go语言,以下简称Go)是Google开发的一种编译型、可并行化、并具有垃圾回收功能的编程语言。罗布·派克(RobPike)、罗伯特·格瑞史莫(RobertGriesemer)、及肯·汤普逊于2007年9月开始设计Go,随后IanLanceTaylor、RussCox加入项目中。Go是基于Inferno操作系统所开发的。Go于2009

    2022年10月11日
  • 百度云个人服务器搭建

    百度云个人服务器搭建百度云个人服务器搭建前言背景​ 前段时间看了一些文章,就突发奇想的想自己做一个小程序。于是乎有了需求,然后自然就去实现他了。因为没有搭建过自己的服务器,其中的过程也挺有意思的,所以就写下来,纪念纪念。大家也就图个乐呵看看,搭建的步骤仅供参考~~​ 至于为什么是百度云的服务器,咳咳,是因为刚刚好发现百度云在做活动,1000多的服务器只要300多,对于我这种穷屌丝来说,试试手,成本低一点当然很重…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号