Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aqua MP3 Encoder

实验性 MPEG-1 Audio Layer 3 (MP3) 音频编码器,可在Web浏览器中实时运行。依据 ISO/IEC 11172-3 及其配套的参考代码“dist10”实现。仅用于个人学习研究,请勿将本编码器用于正式目的,例如存档、广播等。

Experimental MPEG-1 Audio Layer 3 (MP3) encoder. Available on web browser. Implemented according to ISO/IEC 11172-3 and its reference code "dist10" for personal research. Do NOT use this encoder for formal purposes (e.g. archiving, broadcasting, etc.).

立即体验 Online Demo | 子带滤波器组可视化 Visual Demo for Subband Filter

特性

  • 已实现:采样率32kHz/44.1kHz/48kHz,恒定码率64/128/224/320kbps。
  • 待实现:第二心理声学模型。
  • 不实现:混合块、尺度因子预测(即scfsi)、低采样率支持、VBR、ID3标签、回放增益、联合立体声等。

使用方法

  • 可视化用户界面:下载仓库,直接在浏览器中打开index.html即可。
  • 控制台命令:执行node aqua.js,用于批量编码。待完善。
  • 构建:npx tsc

C 版命令行编解码器(aqua-c/

2026年8月,使用本地部署的 DeepSeek-V4-Flash-0731 + Codex,将 JS 编码器移植为 C99 CLI,并附带一个解码器,编码/解码带终端进度条。

cd aqua-c && make          # gcc + libm,生成 ./aqua
./aqua encode in.wav out.mp3 128 44100   # kbps: 64/128/224/320;hz: 32000/44100/48000
./aqua decode out.mp3 out.wav
bash tools/smoke.sh        # 冒烟测试(生成音调→编解码→结构校验→确定性)
python3 tools/mp3check.py out.mp3   # MP3 帧结构校验

与 JS 版相比,C 版额外完成了:确定性攻击检测驱动的窗切换(长块/短块)、 若干 artifact 修复(huffman 回退写残留位、短块 SFB 布局对齐标准、解码端短块 IMDCT 累加)。 更多说明见 aqua-c/README.md

研究开发进度

  • 2019-11-01:开始资料调研
  • 2019-11-09:实现WAV解析原型
  • 2019-11-14:实现简单低通滤波(支线工作)
  • 2019-11-16:初步实现分析子带滤波器
  • 2019-11-21:研究并尝试实现第二心理声学模型
  • 2019-11-23:分析子带滤波器可视化
  • 2019-11-27:开始开发MDCT和长块去混叠
  • 2019-11-29:开始开发内/外层循环和哈夫曼编解码
  • 2019-12-04:切换新仓库,完善版本控制
  • 2019-12-24:实现比特储备机制
  • 2020-01-05:实现比特流组装
  • 2020-01-07:输出第一个格式正确的MP3文件
  • 2020-01-15:首次成功编码若干个完整的音乐文件
  • 2020-01-19:项目取名“Aquarius”并设计图标
  • 2020-05-23:项目更名“Aqua”
  • 2020-05-28:固化首个基线版本(V0.1)
  • 2022-07-08:首次实现端到端的基于本编码器和GNURadio的无线MP3音频传输
  • 待办:彻底的性能优化,使编码器实现真正的实时编码(最高优先级)
  • 待办:优化quantanf量化步长初始值设置算法
  • 待办:实现第二心理声学模型和高频预加重
  • 待办:完善文档和笔记;处理掉所有TODO

权利声明

版权所有 © 2019~2025 BD4SUR,保留所有权利。

本系统“按原样”提供,采用MIT协议授权。本系统为作者个人以学习和自用目的所创作的作品。作者不对本系统的质量作任何承诺。作者不保证提供有关本系统的任何形式的解释、维护或支持。作者不为任何人使用此系统所造成的任何正面的或负面的后果负责。

第三方组件

About

MP3音频编码器 / MP3 Audio Encoder

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages