嵌入式操作教程_数字信号处理_音频编解码:3-6 AAC音频解码实验

【秒懂音视频开发】16_AAC解码实战 本文主要讲解:如何将AAC编码后的数据解码成PCM。 命令行 用法非常简单: ffmpeg -c:a libfdk_aac -i in.aac -f s16le out.pcm -c:a libfdk_aac 使用fdk-aac解码器 需要注意的是:这个参数要写在aac文件那边,也就是属于输入参数 -f s16le 设置PCM文件最终的采样格式 编程 需要用到2个库: extern "C" { #include <libavcodec/avcodec. 阅读详情

一、实验目的

了解AAC音频格式,掌握AAC音频解码的原理,并实现将AAC格式的音频解码为PCM

二、实验原理

音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算法。本实验中使用的AAC格式属于有损音乐压缩格式。音频编解码的目的是减少传输的信息量和减少储存的信息。

音频的编解码的格式分类

无压缩的格式(PCM,WAV…)

无损压缩格式(APE,FLAC,LPAC,WMA_LS…)

有损音乐压缩格式(AAC,AACPlus,AC3,DTS,ATRAC,MP3,WMA,OGG,RA…)

有损语音压缩格式(AMR, GSM, LPC, SPEEX, CELP, G.7XX, ADPCM,…)

合成算法(MIDI,TTS)

AAC高级音频编解码(Advanced Audio Coding)

最初是基于MPEG-2的音频编码技术,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术(PS,SBR),为区别于传统的MPEG-2 AAC,故含有SBR或PS特性的AAC又称为MPEG-4 AAC。

AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码。其中LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率(>=80Kbps),HE-AAC(相当于AAC+SBR)主要用于中低码(<=80Kbps),而新近推出的HE-AACv2(相当于AAC+SBR+PS)主要用于低码率(<=48Kbps)。事实上大部分编码器设成<=48Kbps自动启用PS技术,而>48Kbps就不加PS,就相当于普通的HE-AAC。

HE:“High Efficiency”(高效性)。HE-AAC v1(又称AACPlusV1,SBR),用容器的方法实现了AAC(LC)+SBR技术。SBR其实代表的是Spectral Band Replication(频段复制)。

音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。如果对整个频段编码,若是为了保护高频就会造成低频段编码过细以致文件巨大;若是保存了低频的主要成分而失去高频成分就会丧失音质。

SBR把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,“统筹兼顾”了,在减少文件大小的情况下还保存了音质,完美的化解这一矛盾。

HEv2:用容器的方法包含了HE-AAC v1和PS技术。PS指“parametric stereo”(参数立体声)。原来的立体声文件文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性,根据香农信息熵编码定理,相关性应该被去掉才能减小文件大小。所以PS技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方。

AAC编解码特点

(1)AAC是一种高压缩比的音频压缩算法,但它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等。并且其质量可以同未压缩的CD音质相媲美。

(2)同其他类似的音频编码算法一样,AAC也是采用了变换编码算法,但AAC使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。

(3)AAC使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等最新技术,这些新技术的使用都使压缩比得到进一步的提高。

(4)AAC支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。

(5)AAC支持更宽的声音频率范围,最高可达到96kHz,最低可达8KHz,远宽于MP3的16KHz-48kHz的范围。

(6)不同于MP3及WMA,AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。专业评测中表明,AAC比WMA声音更清晰,而且更接近原音。

(7)AAC采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。

MPEG-4 AACLC解码器的基本框图

在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始。

找到后,开始进行无噪解码,无噪解码实际上就是哈夫曼解码,它的作用在于进一步减少尺度因子和量化后频谱的冗余,即将尺度因子和量化后的频谱信息进行哈夫曼编码。

通过反量化、

联合立体声、

知觉噪声替换、

瞬时噪声整形、

反离散余弦变换、

频段复制,这几个模块之后,

得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。

image.png

程序流程

程序流程设计中首先要打开/创建输入和输出的文件,接着进行aac解码并将解码后的数据保存到pcm文件,最后关闭文件即可。

image.png

三、操作现象

实验设备

本实验所需硬件为实验板、仿真器和电源。

image.png

硬件连接

(1)连接仿真器和电脑的USB接口。

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程,生成可执行文件

将CCS连接实验箱并加载程序

点击运行程序

运行程序后,Console 窗口会打印信息。

大概等待5分钟,编码完成。

可看到工程目录下的song.aac文件解码生成的song.pcm文件。

可播放song.pcm,具体操作步骤如下:

(1)打开软件后,点击“文件->导入->原始数据”,

(2)选择工程目录下的song.pcm文件,数据配置如图,

(3)导入数据后,点击绿色剪头即可播放音频数据。

(4)对比后可发现其效果与AAC原文件播放内容一致。

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

基于Kinetis SDK的嵌入式音频处理实战:从ADC采集到WAV播放全链路解析 模数转换器(ADC)是连接模拟世界与数字系统的核心桥梁,其原理是将连续变化的模拟信号(如声音、温度)转换为微控制器可处理的数字量。在嵌入式开发中,ADC的性能与驱动方式直接影响数据采集的精度与实时性,尤其在物联网、智能音频设备等场景中至关重要。本文聚焦于NXP Kinetis SDK在音频处理领域的实战应用,通过剖析ADC在音频流采集与传感器测量中的双重角色,详解了如何利用SDK API高效驱动硬件,并实现从模拟信号输入、数字信号处理到WAV文件播放的完整链路。文中深入探讨了DMA双缓冲、PDB硬件触发等关 阅读详情

相关推荐

Bluetooth Profile Specification之 A2DP 的音频编解码器-MPEG , Audio和MPEG , AAC 嵌入式

在蓝牙技术的应用中,A2DP(Advanced Audio Distribution Profile)起到了至关重要的作用,它使得我们能够通过蓝牙无线传输高质量的音频数据。通过使用AAC编解码器,用户可以在不牺牲音质的前提下,在蓝牙设备之间进行高质量的音频传输。未来,随着无线通信技术的不断发展,我们可以期待更多先进的音频编解码器的出现,进一步提升蓝牙音频的质量和性能。在A2DP规范中,MPEG、Audio和AAC是三个常见的音频编解码器,它们在不同的应用场景中表现出各自的优势。

CyberBytezZ的博客 526

一些常见的AAC编解码库

一些AAC编解码库

mandagod的博客 7502

【A2DP】规范精讲[13]: 蓝牙音频技术中的关键术语与缩略语全指南

蓝牙技术中的这些术语缩写相互关联、相互作用,共同构成了一个完整的技术体系。从音频编码格式的选择到蓝牙设备之间的连接和数据传输,再到数据的处理和保护,每个术语都在其中扮演着不可或缺的角色。对于蓝牙技术的开发者、工程师以及爱好者来说,深入理解这些术语的含义和应用,不仅有助于准确解读技术文档和标准规范,更能够在实际的开发和应用中,设计出更加高效、稳定和优质的蓝牙产品和解决方案。

byte轻骑兵的技术小窝 9863

嵌入式Linux pcm faac,GitHub - babosa/EasyAACEncoder: 简单、高效、稳定的开源音频编码库,支持将各种音频数据(G.711A/PCMA、G.711U/PCMU...

EasyAACEncoderEasyAACEncoder 是EasyDarwin开源流媒体服务团队整理、开发的一款音频转码到AAC的工具库,目前支持G711a/G711u/G726/PCM等音频格式的转码,跨平台,支持Windows(32&64)/Linux(32&64)/ARM各平台;我们发现在类似于hisi海思芯片的大部分ARM系统中,对浮点运算的支持都不是很好,效率非常低,导...

weixin_39864682的博客 491

QCC305x-QCC304x系列音频子系统详解 嵌入式开发教程

本文对QCC305x-QCC304x系列音频子系统进行了详细的介绍,并提供了相应的源代码示例。通过学习和了解音频子系统的架构和核心组件,可以更好地应用和开发相关的音频产品。在嵌入式系统中,音频子系统起着至关重要的作用,特别是在移动设备、无线耳机和音频处理器等领域。QCC305x-QCC304x系列芯片是高通公司推出的一款功能强大、性能卓越的嵌入式音频处理器。QCC305x-QCC304x系列音频子系统由多个核心组成,包括音频编解码器、数字信号处理器(DSP)、输入输出接口等。下面将逐一介绍这些核心组件。

WangWEel的博客 211

深入了解AAC编解码库:技术细节与应用实例

AAC(Advanced Audio Coding)是一种高级音频编码技术,由Fraunhofer IIS、Dolby Laboratories、AT&T、Sony、Nokia等多家音频技术公司共同开发。AAC作为MPEG-2和MPEG-4音频标准的一部分,旨在提供比MP3更高的音频质量,同时保持类似的或更小的文件大小。AAC的发展始于1997年,随着技术的演进,它在1999年成为了ISO/IEC标准,此后不断有新的功能被加入以适应不同的应用场景。

weixin_36289742的博客 802

揭秘C++音频编解码优化:如何实现低延迟高保真音频处理

掌握C++音频处理核心技术,实现低延迟与高保真编解码优化。适用于实时通信、音频软件开发等场景,通过算法优化与内存管理提升性能。详解关键实现方法与调试技巧,助力高效开发,值得收藏。

CodeIsle的博客 462

基于 SPI 的音频编解码器:VS1053 与嵌入式音频系统实现(附源码)

VS1053是一款多功能音频编解码芯片,支持MP3、AAC、WAV等多种音频格式的解码与编码。该芯片通过SPI接口与微控制器通信,采用双片选机制分别处理寄存器访问和音频数据传输。硬件连接需注意数字/模拟电源隔离和音频滤波电路设计。VS1053提供丰富的功能控制,包括音量调节、低音增强、3D音效和5段均衡器等。初始化流程包含硬件复位、时钟配置等步骤,而音频播放则通过检测DREQ信号实现数据流控制。该芯片为嵌入式系统提供了低成本、高性能的音频解决方案。

Open 967

ESP32音频信号处理全攻略:从基础配置到高级优化

ESP32平台凭借其强大的处理能力和丰富的外设接口,已成为嵌入式音频处理的理想选择。无论是智能音箱、语音助手还是工业级音频设备,ESP32都能提供出色的音频信号处理性能。本文将深入解析ESP32音频处理的技术原理、实现方案、应用实践和性能优化,帮助开发者快速掌握嵌入式语音技术。 ## 技术原理:音频处理的科学基础 ### 音频信号的本质 音频信号是随时间变化的连续波形,包含了丰富的频率成分。

gitblog_00132的博客 900

Visual C++音视频编解码技术深度实战:理论与源码结合

htmltable {th, td {th {pre {简介:《Visual C++音视频编解码技术及实践》是一本系统讲解音视频编解码核心技术的实用教材,涵盖从基础概念到高级编程实现的完整知识体系。本书聚焦于C++环境下的多媒体处理,结合理论与真实源码,帮助读者掌握音频视频的编码标准(如MP3、AAC、H.264、HEVC)、解码流程(包括熵解码、IDCT等)、以及在Visual C++中使用FFmpeg、DirectShow等主流库进行项目开发的关键技术。

weixin_35516624的博客 766

[附源码]计算机毕业设计JAVA网上花店系统

附源码]计算机毕业设计JAVA网上花店系统项目运行环境配置:(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat。

ssm毕设程序设计 2445

SNAC与传统编解码器对决:为什么多尺度神经编码是未来趋势?

在当今数字音频处理领域,SNAC(Multi-Scale Neural Audio Codec)作为一款创新的多尺度神经音频编解码器,正在重新定义音频压缩技术。这款先进的神经音频编解码器通过其独特的多尺度架构,在保持音频质量的同时实现了极低的比特率压缩,为音频处理和生成领域带来了革命性的变化。 ## 🎯 什么是SNAC多尺度神经音频编解码器? SNAC是一种基于深度学习的音频编解码器,它能够

gitblog_00719的博客 825

《阵列信号处理及MATLAB实现》阵列响应矩阵(均匀线阵、均匀圆阵、L型阵列、平面阵列和任意阵列)

《阵列信号处理及MATLAB实现》内容总结,如需阅读更详细内容请购买正版书籍。

APPLECHARLOTTE的博客 1万+

嵌入式DSP实现WAV到AAC实时音频编码技术解析

数字信号处理(DSP)在音频编码领域发挥着关键作用,特别是在嵌入式系统中实现高效的音频压缩。WAV作为无损音频格式包含完整的PCM数据,而AAC(Advanced Audio Coding)则是主流的有损压缩格式,通过心理声学模型和MDCT变换等技术实现高压缩比。在嵌入式DSP平台上,需要针对有限的计算资源和内存进行算法优化,如使用硬件加速指令、内存访问优化等技术。这种技术广泛应用于专业音频设备、车载娱乐系统等实时音频处理场景,体现了DSP在流式信号处理中的独特优势。通过本实验可以深入理解音频编解码原理及嵌

weixin_33695450的博客 361

V2签名预装失败原因及解决方案

GOOGLE最新的GTS要求targetSdkVersion 大于30的APK必须使用V2及以上签名。 但实际在预装过程中,GTS测试会失败。 后面发现这是由于预装方式的原因造成的。原来的预装方式是使用APK,指定APK使用预签名的方式。Android.mk如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := DKTest LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS

zyfzhangyafei的专栏 6304

六维力传感器选型指南:电阻式vs电容式,哪个更适合你的工业场景?

本文深入解析六维力传感器在工业自动化中的选型要点,重点对比电阻式与电容式传感器的核心原理、环境适应性及成本结构。针对不同工业场景(如高精度装配、重载机器人等),提供专业选型建议,帮助工程师优化系统性能与经济效益。

weixin_42525005的博客 395

音频Codec(编解码器)和DSP(数字信号处理器)

它的核心功能是将模拟音频信号转换为数字信号(ADC,模数转换)或将数字信号转换为模拟信号(DAC,数模转换)。音频Codec(编解码器)和DSP(数字信号处理器)是音频处理领域中两个重要的技术概念,它们在音频设备中扮演着不同但互补的角色。智能手机:麦克风的模拟信号通过 Codec 转换为数字信号,DSP 对信号进行降噪和语音增强处理,最后通过 Codec 输出到扬声器。主动降噪耳机:麦克风采集环境噪声,Codec 将其转换为数字信号,DSP 计算反向声波,最终通过 Codec 输出降噪后的音频。

u010613585的专栏 2627

软考中级-软件设计师 Python基础

软考中级-软件设计师 Python知识点整理

片言可决讼,半纸能缚龙 3643

音诺ai翻译机集成ADAU1761提升数字音频编解码精度

音诺AI翻译机通过集成ADI的ADAU1761音频编解码芯片,显著提升语音采集与回放的保真度。该芯片支持高动态范围、低失真ADC/DAC及片内可编程DSP,实现前端信号预处理,降低主控负载,改善ASR识别准确率,尤其在噪声环境下词错误率下降约18%,为智能语音设备提供高信噪比、低延迟的音频解决方案。

weixin_42143092的博客 512

嵌入式工程师成长之路(2)——电路设计

为什么你的电源模块总是发热炸机?DC/DC和LDO选型的“潜规则”你踩坑了吗? LM2596降压芯片用错电容导致输出振荡?LED恒流驱动设计让灯珠寿命缩水50%?24V转12V方案成本超预算被老板狂喷?——这些血泪教训,谁能懂得!

云轩阁 13万+

Unity技术开发干货 - 总目录

总目录 欢迎大家来到 passion 的《Unity技术开发干货》开始前博主先列出学习的大纲,同时也供大家学习参考,如果有什么问题,欢迎留言。 一.Unity基础: Unity基础-脚本生命周期 Unity基础-向量 Unity基础-寻路系统 Unity基础-物理系统 Unity基础-Mecanim动画系统 Unity基础-UGUI Unity基础-灯光 Unity-UGUI之Event System Unity-2018-粒子系统 Unity-协程入门 Unity-2D物理引擎、铰链、效应器 Unity-

TxNet 4262

音频录放技术全解析:从ADC到编解码的工程实践与避坑指南

音频录放是数字信号处理的基础技术,其核心在于将模拟声波转换为数字信号并进行处理。这一过程遵循采样定理,通过模数转换器以特定采样率和位深度捕获声音,确保频率范围和动态范围的保真。在工程实践中,缓冲区管理是关键环节,它平衡了流畅性与延迟,直接影响实时交互体验。技术价值体现在从基础语音通信到高保真音乐制作、实时语音交互及AR/VR沉浸式音频等广泛场景。为实现高质量音频,开发者需深入理解PCM、AAC、Opus等编解码器的选型,并在Android、iOS等平台进行低延迟优化与硬件管理。本文聚焦音频录放全链路,剖析采

weixin_29175469的博客 241

GEE案例教程:融合Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据,构建完整的洪水监测与影响评估工作流

本文介绍了一个专为巴基斯坦哈扎拉分区设计的洪水监测系统,该系统整合了Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据等多源遥感数据。系统通过VV极化SAR数据的水体提取算法(阈值-13dB)实现洪水范围监测,结合10米分辨率的光学影像进行可视化验证,并利用100米分辨率人口数据评估受灾人口。系统提供完整的技术实现,包括研究区加载、遥感数据处理、日期选择界面和洪水变化检测等功能模块,为灾害应急响应提供科学依据。

此星光明博客 191

嵌入式DSP平台AAC音频编码实战:从PCM到码流的完整实现与优化

音频编码是数字信号处理的核心技术之一,其原理是通过压缩算法去除音频信号中的冗余信息,在保证听感质量的前提下大幅减少数据量。这项技术的关键在于时频变换、心理声学模型和熵编码等环节的协同工作,其技术价值在于实现了高效的数据存储与传输,是流媒体、数字广播和移动通信的基石。在嵌入式系统等资源受限的应用场景中,实现高效的音频编码尤为关键,它直接关系到产品的实时性、功耗和成本。本文聚焦于AAC这一主流音频编码标准,详细探讨了在嵌入式DSP平台上,如何从零开始实现将PCM原始音频数据编码为AAC码流的完整流程,涵盖了编码

weixin_30292843的博客 201

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VS1005 VS1005g-q-f – MP3 音频系列级芯片,中文翻译资料

VS1005是目前世界上最集成的音频编解码芯片,是VLSI最新推出的旗舰产品。 概述: VS1005 是一片灵活的音频平台器件。它基于 VS_DPS4 构件,这是一个功能强大的DSP(数 字信号处理器)核心。在独立应用中,数字接口 提供了灵活的外部器件访问。在复杂的音频处理 系统中能灵活地输入输出音频数据。模拟接口提 供了高保真的音频输入和输出,例如控制ADC 可以作为电阻式触摸屏

u013466244的专栏 2335

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数字信号处理学习的一些困惑.

     大学学的计算机专业,毕业到现在搞过51,ARM,DSP,工作基本也都在做嵌入式软件;慢慢的发现DSP中的编解码部分才是整个DSP应用技术的核心,虽然我是做应用出身,但还是很想凭借自己来自学信号处理部分,为的是完成做编解码工作的部分。          在确立这个目标以后,我开始从语音编解码了解,和同事交流,自己看基础书籍。在这个过程中了解到了:     1.做编解码的目的是去冗余

Free Breath 关于技术关于世界。 1112

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 数字信号处理实验操作教程:3-3 mp3音频编码实验(AD7606采集)
下一篇: C6000教学实验箱_嵌入式操作教程_音频编码:3-7 G711A音频编码实验
Tronlongtech
博客等级 码龄4年 687粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值