4 君正底层API接口的封装3

news/2024/11/17 0:50:59/

概述

        在上一节中,我们给出了君正底层API接口的公共基类。但要实现这些公共基类的T31、T40、T41派生类,我们还有事情没有做:那就是封装ADPCM_DVI、AAC等编解码算法。ADPCM_DVI比较简单,网络上一般都能找到开源代码。AAC一般采用FDK AAC开源代码来实现,对FDK AAC开源代码进行二次封装即可。

ADPCM_DVI编解码

        ADPCM,英文全称为Adaptive Differential Pulse Code Modulation,中文为自适应差分脉冲编码调制。

        我们知道,音频信号虽然是比较连续的,但有些差值比较小,有些差值比较大。如果差值比较大,有可能用4bit表示不了。如果增大表示差值的位数,是可以解决这个问题的。但这也会导致数据量变大,没起到压缩的目的;另外,这种差值比较大的只是少数,大部分还是差值比较小的。

        为了解决这个问题,研究人员就提出了ADPCM:定义一个因子,用差值除以因子的值来表示两点之差;如果两点之间差值比较大,则因子也比较大。通过因子引入,可以自动适应差值比较大的数据。

        ADPCM DVI编解码的头文件AdpcmCodec.h如下。

#pragma once#ifdef __cplusplus
extern "C"
{
#endifstruct adpcm_state
{short valprev;            /* Previous output value */char index;                /* Index into stepsize table */
};

http://www.ppmy.cn/news/598637.html

相关文章

多传感器融合SLAM --- 17.多传感器介绍及优缺点及视觉、激光SLAM原理

目录 1 传感器介绍与分析 1.1 传感器介绍及分析 1.1.1 机械式激光雷达和固态激光雷达 1.1.2 激光雷达测距原理 1.1.3 激光点云运动畸变 1.1.4 相机模型 1.1.5 IMU 1.1.6 GNSS 1 传感器介绍与分析 1.1 传感器介绍及分析 1.1.1 机械式激光雷达和固态激光雷达 激光雷达可…

图片分享库

图片分享库: 示例1:

图库

《矢量图库王》150CD EPS格式2006 《全球平面设计图库(大百科2006)》[ISO]2006《数位分层图库》2004《全景图库》2005-5 《全球最新图库大百科 更新至cd75》[ISO]2005 《背景底纹材质库12CD 上传完毕》2005 《Digital Vision图片素材:几何图形专辑…

QQ 图片

http://wpa.qq.com/pa?p2:QQ号码:45查看QQ是否在线&#xff0c;或者图片&#xff0c;在这里&#xff0c;其他的另行百度。 <!-- tencent://message/?uin763999883&Site联系我&Menuyes --> <!-- tencent://message/&#xff1f;Menuyes&uin763999883&…

【爬虫】QQ空间照片下载

转载自&#xff1a;https://blog.csdn.net/jee_king/article/details/79078807 亲测可用&#xff0c; 各种原因 你可能需要下载全部的QQ空间相册密码&#xff0c;下面给出大致流程和爬取代码。 没有找到怎么上传文件&#xff0c;&#xff0c;所以只能给GitHub上的代码了。 1. 需…

QQ 图

参考文章&#xff1a;http://desktop.arcgis.com/zh-cn/arcmap/10.3/guide-books/extensions/geostatistical-analyst/normal-qq-plot-and-general-qq-plot.htm

Spring Cloud之Vault实践踩坑记录

Spring Cloud之Vault实践踩坑记录 一、Vault 简介1.1 概述1.2 Vault 与 Spring Cloud 的关系 二 Vault 实践2.1 安装配置 Vault2.1.1 Vault 的安装步骤2.1.2 Vault 配置文件的配置方法 2.2 使用 Vault 存储敏感信息2.2.1 如何使用 Vault 存储敏感信息2.2.2 Vault 的加密机制 2.…