www378660084 发表于 2025-12-9 11:01:41

ChayaSar 发表于 2025-11-28 07:38
我试了试把BES2700IHC的lhdcv5 a文件(ARM架构)载入IDA,它给我解析出来19个o文件,大致分为:
- 内层lhdc ...

反编试下Ghidra

jayceon 发表于 2025-12-19 08:50:27

学习

fever 发表于 2026-6-18 10:20:28

期待。

星星上的圣诞树 发表于 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部分,感谢您提供的宝贵资料!

billydakidz 发表于 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

ChayaSar 发表于 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,和手机同源)。

同样的,(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是真正的自我实现。
页: 1 [2]
查看完整版本: 咨询LHDCV5解码算法