没有合适的资源?快使用搜索试试~ 我知道了~
首页星核SC140/SC1400平台上的3GPP AMR-NB与ETSI-EFR编码实现优化
星核SC140/SC1400平台上的3GPP AMR-NB与ETSI-EFR编码实现优化
需积分: 10 3 下载量 171 浏览量
更新于2024-07-21
收藏 404KB PDF 举报
本篇应用笔记详细阐述了3GPP窄带自适应多速率语音编码(AMR-NB)在Freescale的StarCore™ SC140/SC1400 DSP核心上的移植与优化过程。AMR-NB是3GPP为3G世界制定的一种语音编码标准,旨在提供高效的低比特率通信,特别适用于移动电话和其他资源受限设备。 在移植过程中,Freescale采用了之前成功的语音编码项目所采用的方法论,即通过代码优化来提高性能。然而,与早期侧重于速度提升的项目不同,这篇应用笔记的重点在于减小内存占用,包括代码大小和数据存储,以适应3G移动终端对轻量化的需求。为了实现这一目标,设计者们特别关注了那些时间消耗大的函数,通过优化实现了内存效率与处理速度之间的良好平衡。 不同于以往仅针对少数关键函数进行速度优化的做法,尺寸优化涉及到对整个编码器架构的全面审视,可能包括但不限于算法改进、数据结构优化、缓存策略调整以及硬件加速等手段。这些优化措施旨在确保在满足功能需求的同时,最大限度地降低处理器负载,提高整体系统效率。 此外,由于StarCore SC140/SC1400 DSP核心的特点,这种优化可能涉及到对硬件特性(如流水线处理、并行计算单元等)的有效利用,以增强编码和解码的实时性能。同时,考虑到3G网络的实时性要求,可能还会有专门针对音频数据流处理的实时调度策略。 本应用笔记不仅提供了AMR-NB在Freescale StarCore平台上实施的步骤,还展示了如何在保证音频质量的同时,针对特定硬件平台进行深度定制和优化,以适应3G通信环境中的实际应用需求。这对于其他开发者理解和在类似环境中部署语音编码技术具有重要的参考价值。
资源详情
资源推荐
3GPP-AMR-NB With ETSI-EFR Implementation on the StarCore™ SC140/SC1400 Cores, Rev. 1
4 Freescale Semiconductor
Implementation Phases
2 Implementation Phases
Table 3 presents the main phases of the methodology used to implement AMR-NB on the SC140 core. A full
description and examples for each step are provided in [1]. Tab le 3 includes an additional phase necessary for our
application: EFR integration. In the EFR integration phase, some functions or pieces of code, tables, channel data,
and constants from the EFR reference code are included in the AMR-NB vocoder to achieve bit-exact EFR
functionality.
Table 3. Methodology Phases
Development Phase Description
Porting AMR-NB to the SC140
core
Data type definitions, introduction of intrinsic functions,
StarCore adaptations.
EFR integration Integration of ETSI-EFR code within the AMR-NB code
Project-level optimizations Inlining fast 32-bit DPF operations, data alignment
Algorithm changes Platform-independent and platform-dependent changes in
algorithms
Function-level C optimizations C optimization techniques (multisample, loop unrolling, split
summation), and better use of intrinsic functions
Function implementation in
assembly
Implementation of selected functions in assembly for best
optimization
As discussed in Section 1, there are differences between the bitstream formats of the AMR-NB encoder and
decoder and ETSI EFR encoder and decoder. Therefore, in addition to the reference code, a wrapper interface
feeds each of the two vocoders with the correct data stream.
Code Listing 1 presents the API for the AMR-NB
with EFR implementation.
Example 1. AMR-NB with EFR API
void MDCR_AMR750_amrefr_enc
(
INT16 *input_buf, /* input speech data, 160 words */
INT16 *output_buf, /* output data, 245 words */
AMREFR_ENC_CTRL_PTR *ctrl_ptr,
AMREFR_ENC_STATUS_PTR *status_ptr
);
typedef struct {
UINT32 temp_2: 24; /* place holders */
UINT32 mode: 4; /* AMR rate place holder */
UINT32 temp_1: 1; /* place holder */
UINT32 dtx: 1; /* 1 - Enable */
UINT32 coder: 1; /* 0 - AMR, 1 - EFR */
UINT32 init: 1; /* 1 - initialize */
UINT8 *static_ptr; /* static channel data, 3072 bytes */
UINT8 *scratch_ptr; /* scratch space, 4096 bytes */
} AMREFR_ENC_CTRL_PTR;
typedef struct {
UINT8 used_mode; /* Unused for EFR */
UINT8 sp_flag;
UINT8 vad_flag;
} AMREFR_ENC_STATUS_PTR;
剩余15页未读,继续阅读
qq_25867933
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功