Giter VIP home page Giter VIP logo

aqua's Introduction


Experimental MPEG-1 Audio Layer 3 (MP3) encoder. Implemented according to ISO/IEC 11172-3 and its reference code "dist10" for personal research. No decoder included in this repo.

WARNING: USE AT YOUR OWN RISK! DO NOT USE THIS ENCODER FOR FORMAL PURPOSES! (e.g. archiving, broadcasting, etc.)

实验性 MPEG-1 Audio Layer 3 (MP3) 音频编码器。依据 ISO/IEC 11172-3 及其配套的参考代码“dist10”实现,用于个人学习研究。本系统不含解码器。

警示:风险自负!请勿将本编码器用于正式目的,例如存档、广播等。

在线体验 Online Demo

特性

  • 目前实现的特性:采样率32kHz/44.1kHz/48kHz,恒定码率64/128/224/320kbps。
  • 计划开发的特性:第二心理声学模型、联合立体声。
  • 暂不实现的特性:混合块、尺度因子预测(即scfsi)、低采样率支持、VBR、ID3标签、回放增益等等。
  • 可视化工具:分析子带滤波器组

使用方法

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

研究笔记

编码器框图

码率和噪声控制循环

研究开发进度

  • 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~2023 BD4SUR,保留所有权利。

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

第三方组件

aqua's People

Contributors

bd4sur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.