找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

楼主: ChayaSar

[经典蓝牙协议栈] 咨询LHDCV5解码算法

  [复制链接]
连续签到天数:1天
签到总天数:189天
签到总奖励:1651金币
发表于 2025-12-9 11:01:41 | 显示全部楼层
ChayaSar 发表于 2025-11-28 07:38
我试了试把BES2700IHC的lhdcv5 a文件(ARM架构)载入IDA,它给我解析出来19个o文件,大致分为:
- 内层lhdc ...

反编试下Ghidra
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:77天
签到总奖励:504金币
发表于 2025-12-19 08:50:27 | 显示全部楼层
学习
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:4天
签到总奖励:20金币
发表于 2026-6-18 10:20:28 | 显示全部楼层
期待。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:2天
签到总天数:2天
签到总奖励:12金币
发表于 2026-7-12 18:06:22 | 显示全部楼层
ChayaSar 发表于 2025-11-28 07:38
我试了试把BES2700IHC的lhdcv5 a文件(ARM架构)载入IDA,它给我解析出来19个o文件,大致分为:
- 内层lhdc ...

请问是否有liblhdc-collections/BES-IHC/audio_codec_lib/liblhdc-enc/inc/lhdc_enc_api.h实际链接到的二进制文件?我正在尝试逆向lhdc的encoder部分,感谢您提供的宝贵资料!
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:6天
签到总奖励:27金币
发表于 2026-7-20 03:54:04 | 显示全部楼层
The user "Christmas Tree on the Stars" posted on July 12, 2026 at 18:06
: "Does liblhdc-collections/BES-IHC/audio_codec_lib/liblhdc-enc/inc/lhdc_enc_api.h actually link to the second..."

Please take a look at my decoder!
https://www.52bluetooth.com/forum.php?mod=viewthread&tid=94327&page=1#pid571045
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:19天
签到总奖励:112金币
 楼主| 发表于 2026-8-20 11:50:28 | 显示全部楼层
星星上的圣诞树 发表于 2026-7-12 18:06
请问是否有liblhdc-collections/BES-IHC/audio_codec_lib/liblhdc-enc/inc/lhdc_enc_api.h实际链接到的二 ...

如果你在寻找配套的音频Codec静态库,可以访问https://github.com/sprlightning/BES2700IHC-SDK/tree/main/lib/thirdparty/audio_codec,可以肯定的是它一定是解码器库,但不能保证包含编码器。

如果你想要寻找lhdcv5解码器源码,有三个途径,都是完整的源码,不使用任何外部库:
1. Google开源的lhdcv5解码器(rust版本),具备完整源码实现:https://android.googlesource.com/platform/packages/modules/Bluetooth/+/refs/heads/android17-release/system/audio/codecs/lhdcv5
2. WillyBilly06(billydakidz)基于Google lhdcv5编码器写的c99版本,同样是完整源码:https://github.com/WillyBilly06/LHDC-V5-Encoder
3. 我单独fork了Google的rust版lhdcv5编码器:https://github.com/sprlightning/liblhdcv5/tree/codecs/lhdcv5-encoder-rust

我已经对Google/WillyBilly的lhdcv5编码器和WillyBilly06最新的解码器做了roundtrip测试,表现很优秀。

并且注意到Google的编码器支持5ms(常规)和2.5ms帧长,2.5ms可以实现低延迟(但xiaomi14手机仍然使用5ms帧长)(WillyBilly06的解码器也是使用5ms,因为它逆向于.so,和手机同源)。

同样的,[WillyBilly的lhdcv5解码器](https://github.com/WillyBilly06/LHDC-V5-Decoder) 也非常不错,是很宝贵的资料。我在esp32测试了它,44.1kHz到96kHz完美运行,192kHz因为CPU算力不足,单帧解码超过5ms而卡顿(即使是拆分了左右声道到双核)(也有可能是我的拆分方式不正确),不过192kHz在PC上测试是没问题的,如果想要在MCU运行,推荐使用esp32-s31或者stm32h7+ap6212来实现(现成的硬件是ART-Pi,目前仅实现了SBC,未来会接入lhdcv5,参考https://github.com/sprlightning/btstack)。

注意lhdcv5和lhdc完全不一样,lhdc是对flac/lc3p的重新封装,而lhdcv5是真正的自我实现。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2026-9-16 05:48 , Processed in 0.080877 second(s), 16 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表