#no-std #audio-processing #mulaw #alaw

no-std law-encoder

一个将16位PCM编码为A-law和μ-law的库

1个不稳定版本

0.1.0 2024年2月1日

418音频

MIT 许可证

13KB
232

law-encoder

tests status

⚖️️‍️law-encoder👨‍⚖是Rust库,用于A-law和μ-law(mu-law)音频编码。这些编码方案在ITU-T标准G.711中定义,广泛应用于数字音频处理,尤其是在电话和音频压缩中。

功能

  • A-law & μ-law编码:使用A-law和μ-law算法压缩16位音频数据。
  • 高性能:无动态内存分配。针对实时和嵌入式应用优化。
  • 无依赖:设计为独立工作,无外部依赖。无标准库。只有良好的位操作。

安装

law-encoder添加到您的Cargo.toml

[dependencies]
law-encoder = "0.1.0"

用法

以下是一个使用law-encoder的快速示例

use law_encoder::{LawEncoder, InputFormat, OutputFormat};

let encoder = LawEncoder;

let mut output = [0; 150000];

let num_bytes_encoded = encoder
    .encode(
        InputFormat::BigEndian,
        &audio,
        OutputFormat::Mulaw,
        &mut output,
    )
    .unwrap();

println!("Encoded {} bytes!", num_bytes_encoded);

更多详细示例在示例目录中。

贡献

欢迎贡献!请阅读我们的CONTRIBUTING.md以获取详细信息。

许可证

本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。

致谢

  • 本项目是根据ITU-T G.711标准音频压缩规范开发的。

支持

有关支持和查询,请在GitHub仓库问题跟踪器上创建问题。

无运行时依赖