Giter Site home page Giter Site 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

Abby avatar Allen Zhu avatar AndyCycle avatar 乔栀 avatar Algae Xia avatar  avatar Louis Liu avatar Yashwant Saini avatar Li Jie avatar  avatar  avatar  avatar Dark Litss 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.