最近在ST公司的STxp70的dsp平台上开发音频codec模块.

公司最近和ST公司有个DAB的项目, 需要将AACplus,BSAC,MPEG-lay2以及lay3的算法在该dsp平台上

进行优化.这个dsp平台比较的奇怪和TI的以及arm的core不太一样,它有一个基本core以及基本指令集,它的

扩展的一些数学指令集是通过增加一些extension库来实现的.不过优化后的效率还是比较令人满意的.

用的时候感觉同neon指令集似曾相识,

其实是不一样的, st的这个dsp对于SIMD方面的支持较少, 主要是对于数据精度上可以给用户以很大的支持.

有浮点寄存器组以及相应的指令集和宽度达到为64位的寄存器组以及相应的指令集.我想这些在一些对于音频效果

要求较高的场合可能有用处吧.

在开发的过程中碰到一些问题,但是都不是技术上的,发现老外的效率并不如想象中的那么高,常常一个问题的

提出到收到他们的回复,一个多星期都已经过去了. 因为这个浪费了我不少的时间.本来三个codec一共可能只要

两个月时间都可以搞定的,但是前期他们给的支持太少,文档又没有给全,导致优化完后,他们又发来一些新的

指令集的文档,又要使用新指令集重新进行优化.

其中MP1x标志是对于多媒体处理方面指令集的扩展;fpx标志是浮点指令扩展标志.

ST的该款dsp的v3版本支持program cache,data cache没有. internal program memory只有64kb,

internal data memory有160kb. 它的外部memory有高达26个cycle的延迟, 而经过测试它的p-cache

效果并不是非常理想. 不过该dsp的开发环境workbench中通过使用IPA标志可以较大的对code size进行压缩,

效果还是比较的理想. 并且提供对代码进行性能测试的工具与函数. 不过它的profiler工具总是无法在我自己的

机子上工作, 真是很郁闷.

 

感觉自己目前对于音频codec在应用方面的能力已经没有什么问题了,目前自己具备的经验包括:

1)浮点算法阶段需要的进行算法级优化的能力: FFT的优化(实序列方面), mdct方面的优化.

2)TI公司系列的汇编指令64系列,54以及55系列.

ARM公司v4,v5,v6,以及neon指令系列

以及最近搞的st公司的dsp汇编指令.

目前感觉新拿到一个core的manual可以保证在一个星期内熟悉指令集并进行开工优化.

其实个人感觉只要你懂了TI公司的C64的汇编优化方法,其他大部分的core的优化都应该问题不大.

因为他们的优化难度都不如TI的c64, 这是我的体会.

3)掌握了将算法从浮点转换到定点.

 

以下是以后要做的:

以后可能要多看看数字信号处理方面的书籍,如oppenham的书.

掌握基音搜索算法在speech领域.

掌握huffman编码方面的知识.

多多使用matlab进行算法方面的仿真来加深自己对知识的理解.

 

 

转载于:https://www.cnblogs.com/wzgpeter/archive/2010/07/29/1787772.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse中部分快捷键

这个链接文章介绍的比较全面:http://blog.csdn.net/hevicky/article/details/7239977 我把其中认为对自己有用的几个快捷键整理出来,以便熟悉、使用。 MyEclipse 快捷键1(CTRL) ------------------------------------- Ctrl1 快速修复(例如导…

win设置壁纸

默认壁纸图片位置: C:\Windows\Web\Wallpaper\Scenes 你可以自己建文件夹,放自己喜欢的桌面壁纸。 设置壁纸: 桌面右键 -> 个性化 然后点击 “桌面背景” -> 可以点击标题选择其下面的所有图片,也可以按 ctrl 选择你想要的…

Makefile中三个自动变量:$^,$@,$<

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 什么叫自动变量呢?就是这种变量会把模式中所定义的一系列的文件自动地挨个取出,直至所有的符合模式的文件都取完。这种自动化变量只应出现在规则的命令中。 以一个例子说明。 OBJS…

win8 软件字体乱码

安装了Win8企业评估版,安装一些软件中文字体显示出粗。进入控制面板,语言->单击左下角的位置链接->弹出的区域当前位置下拉框选择中文即可,最后重启即可。 winq -> search language setup->add language-> location (left bot…

物理机安装ESXI6.7提示No Network Adapters的解决方案

下载好ESXI6.7.iso镜像,写入U盘后,提示No Network Adapters,找不到网卡驱动。 解决办法:需要重新封装ESXI,将对应的网卡驱动嵌入进来。 1、先下载VMware-PowerCLI-6.5.0和ESXi-Customizer-PS: http://down.…

汇编程序、shell脚本与Makefile中的注释方法

一、汇编程序中的注释方法 (1)可以用或;(这里的不是makefile中的静默执行之意,分号是英文状态的分号)。 (2)可以用//或者/* */(既然可以用/* */,汇编语言就不用关注单行…

mysqlslap详解--MySQL自带的性能压力测试工具(转)

本文的参考博客地址为:https://blog.csdn.net/fuzhongfaya/article/details/80943991 和 https://www.cnblogs.com/davygeek/p/5253830.html 本文的目的一方面是自己整理,防止后续忘记,一方面是对参考博客的进行验证. 首先在这里介绍一下常用…

Android Gallery控件使用方法详解

我们今天给大家讲的就是Gallery控件,这个控件在android当中是非常重要的,我们今天就给大家介绍一下3D的Gallery控件是怎么样来实现的。下面我们就来直接看看代码吧。 1.扩展Gallery: public class GalleryFlow extends Gallery { private Cam…

javax.servlet.jsp.JspTagException:

2019独角兽企业重金招聘Python工程师标准>>> Illegal use of <when>-style tag without <choose> as its direct parent 这个错误一般是在jsp页面中非法使用<when>标签 该标签必须是<choose>标签的直接子标签 不能单独是<when>标签 …

uboot将命令结构体单独存放在某个代码段的方法

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、uboot的链接脚本里有如下代码片段。 __u_boot_cmd_start .;.u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end .; 2、uboot中将命令结构体单独存放在某个代码段&#xff0c;是通过以下两个宏…

Felix的Nodejs代码风格

Felix的Nodejs代码风格 原文地址&#xff1a;http://nodeguide.com/style.html 这是翻译的关于nodejs编码风格的一片文章&#xff0c;nodejs并没有官方统一的编码风格&#xff0c;但是好的编码风格可以提高代码可读性&#xff0c;既然有人总结了&#xff0c;就可以参照一下。没…

c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序

1、继承的概念 2、继承中&#xff0c;构造函数和析构函数的先后顺序

mysql操作常用技巧

删除一张表的数据&#xff0c;条件在另一张表 delete a from A a,B b where a.telb.tel and a.codeb.code and a.day201808;转载于:https://www.cnblogs.com/JAYIT/p/9720117.html

结对开发:电梯调度(2)

组员&#xff1a;赵天 李金吉 分工&#xff1a;赵天&#xff1a;概要设计与编码。 李金吉&#xff1a;详细设计与调试。 界面&#xff1a; 详细代码&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sys…

c++远征之继承篇——继承方式

以下内容源于慕课网&#xff0c;系学习整理而成&#xff0c;如有侵权&#xff0c;请告知删除。 1、公有继承 2、保护继承 3、私有继承

VMware vCenter Server6.5安装及群集配置介绍

借助 VMware vCenterServer&#xff0c;可从单个控制台统一管理数据中心的所有主机和虚拟机&#xff0c;该控制台聚合了集群、主机和虚拟机的性能监控功能。 VMware vCenterServer 使管理员能够从一个位置深入了解虚拟基础架构的集群、主机、虚拟机、存储、客户操作系统和其他关…

[JS性能优化专篇]

为什么80%的码农都做不了架构师&#xff1f;>>> 参考文章&#xff1a;了解 JavaScript 应用程序中的内存泄漏 旧版本的IE和Firefox都存在内存泄漏的问题&#xff0c;而且会一直持续到浏览器关闭。现在可以使用 Google Chrome 中的 Heap Profiler 来诊断内存问题。 …

jQuery --- grep

返回值:ArrayjQuery.grep(array, callback, [invert]) 概述 使用过滤函数过滤数组元素。 此函数至少传递两个参数&#xff1a;待过滤数组和过滤函数。过滤函数必须返回 true 以保留元素或 false 以删除元素。 参数 array,callback,[invert]Array,Function,BooleanV1.0 array:待…

Simulated Annealing(模拟退火算法)

/* Simulated Annealing(模拟退火算法) 求解旅行商问题(TSP) 网上给的数据是31个省会的坐标&#xff0c;蚁群算法得到的结果是&#xff1a;15378 我算的结果中&#xff0c;最好的一次是&#xff1a;15495 */ #include<iostream> #include<cstdio> #include<cstd…

c++远征之继承篇——隐藏,isa,虚析构函数

一、隐藏 父子关系。成员&#xff08;数据成员或者成员函数&#xff09;同名&#xff1b;此时子类中会隐藏父类中的同名成员。无法函数重载&#xff0c;只会隐藏&#xff01;如果想访问父类中的同名成员&#xff0c;需要 :: 操作。 访问父类同名函数的方法 二、is-a &#xff…