Sample Rate Conversion

Sample Rate ConversionSampleRateConversionIntroductionSeetheWikipediaarticleResampling(audio)foragenericdefinitionofsamplerateconversion,alsoknownas"resampling."Theremainderofthisarticledescr…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Sample Rate Conversion

Introduction


See the Wikipedia article Resampling (audio) for a generic definition of sample rate conversion, also known as “resampling.” The remainder of this article describes resampling within Android. See Sample Rate Conversion for related terminology.

Sample rate conversion is the process of changing a stream of discrete samples at one sample rate to another stream at another sample rate. A sample rate converter, or resampler, is a module that implements sample rate conversion. With respect to the resampler, the original stream is called the source signal, and the resampled stream is the sink signal.

Resamplers are used in several places in Android. For example, an MP3 file may be encoded at 44.1 kHz sample rate and needs to be played back on an Android device supporting 48 kHz audio internally. In that case, a resampler would be used to upsample the MP3 output audio from 44.1 kHz source sample rate to a 48 kHz sink sample rate used within the Android device.

The characteristics of a resampler can be expressed using metrics, including:

  • degree of preservation of the overall amplitude of the signal
  • degree of preservation of the frequency bandwidth of the signal, subject to limitations of the sink sample rate
  • overall latency through the resampler
  • consistent phase and group delay with respect to frequency
  • computational complexity, expressed in CPU cycles or power draw
  • permitted ratios of source and sink sample rates
  • ability to dynamically change sample rate ratios
  • which digital audio sample formats are supported

The ideal resampler would exactly preserve the source signal’s amplitude and frequency bandwidth (subject to limitations of the sink sample rate), have minimal and consistent delay, have minimal computational complexity, permit arbitrary and dynamic conversion ratios, and support all common digital audio sample formats. In practice, ideal resamplers do not exist, and actual resamplers are a compromise among these characteristics. For example, the goals of ideal quality conflict with short delay and low complexity.

Android includes a variety of audio resamplers, so that appropriate compromises can be made depending on the application use case and load. Section Resampler implementations below lists the available resamplers, summarizes their characteristics, and identifies where they should typically be used.

Resampler implementations


Available resampler implementations change frequently, and may be customized by OEMs. As of Android 4.4, the default resamplers in descending order of signal distortion, and ascending order of computational complexity include:

  • linear
  • cubic
  • sinc with original coefficients
  • sinc with revised coefficients

In general, the sinc resamplers are more appropriate for higher-quality music playback, and the other resamplers should be reserved for cases where quality is less important (an example might be “key clicks” or similar).

The specific resampler implementation selected depends on the use case, load, and the value of system property af.resampler.quality. For details, consult the audio resampler source code in AudioFlinger.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181120.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月17日 上午8:00
下一篇 2022年10月17日 上午8:00


相关推荐

  • 大数据框架综述

    大数据框架综述一 什么是大数据大数据 IT 行业术语 是指无法在一定时间范围内用常规软件工具进行捕捉 管理和处理的数据集合 由数据组成的集合 是需要新处理模式才能具有更强的决策力 洞察发现力和流程优化能力的海量 高增长率和多样化的信息资产 它具有以下特征 1 海量的数据规模 随着信息技术的高速发展 数据开始爆发性增长 存储单位从过去的 GB 到 TB 乃至现在的 PB EB 级别 2 快速的数据流转 大数据的产生

    2026年3月17日
    2
  • MySQL索引的优缺点

    MySQL索引的优缺点一、什么是索引索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。例如有三张表分别是t1、t2、t3,每个表都有字段a1、a2、…

    2022年5月26日
    36
  • PyQt5+Qt designer实战

    PyQt5+Qt designer实战PyQt5 Qtdesigner 制作计算器配置说明 Anaconda4 2 0 64 bit Python3 5 2 首先 在 Qtdesigner 里面设计界面 打开 Qtdesigner 后 设计界面如下所示 保存为 clat ui 然后将其转为 py 文件 之后会生产 clat py 文件 打开后 代码如下 coding utf 8

    2026年3月26日
    3
  • 素数_c语言素数判断程序

    素数_c语言素数判断程序素数

    2022年4月20日
    70
  • securecrt 乱码

    SecureCRT连接Linux时经常会看到乱码。发生乱码的原因主要是有三个地方1.Linux的etc的系统默认配置的编码2.用户环境变量里面设置的LANG变量3.SecureCRT会话变量里面的字符集的设置只要保持这三个地方的字条集编码保持一致就可以了。解决步骤如下:1.设置用户的环境变量查询当前用户的Local信息:[root@devdbserver…

    2022年4月7日
    62
  • SpringBoot整合Spring Security【超详细教程】

    SpringBoot整合Spring Security【超详细教程】好好学习,天天向上本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航前言SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤器链,不同的功能经由不同的过滤器。这篇文章就是想通过一个小案例将SpringSecurity整合到SpringBoot中去。要实现的功能就是在认证服务器上登录,.

    2022年7月25日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号