自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ARM CORTEX Ax NEON 中的加法指令

<br />NEON 中的加法指令其实并不少,大致有以下几种<br />VADD<br />VADDHN<br />VHADD<br />VPADD<br />VQADD<br />VRHADD<br />VRADDH<br />但是使用起来相当的不灵活,尤其是某些加法指令不带饱和,往往加的结果会溢出而无法处理,不得不采用ARM指令来完成饱和加<br /><br />其中<br />VADD,<br />VQADD<br />是可以带饱和的加<br />VHADD<br />VPADD<br />VRHAD

2010-09-28 23:17:00 2072

原创 转贴ARM NEON 优化的例子

<br />ARM NEON Optimization. An Example <br />Http://hilbert-space.de/?p=22<br /> <br />Since there is so little information about NEON optimizations out there I thought I’d write a little about it.<br />Some weeks ago someone on the beagle-board mailing-l

2010-09-14 22:51:00 4275

转载 android C编程技巧 及 C/C++开发测试(转)

Android C编程技巧运行模拟器<br />  emulator -console<br />  * 将文件写入到模拟器的userdata.img文件中<br />  adb push <br />  *将一个目录拷贝到模拟器中,包括子目录<br />  adb push <br />  * 将一个目录从模拟器中拷出来<br />  adb pull <br />  * 使得模拟器可以运行arm代码.<br />  使用GNU/ARM Linux编译器编译你的应用程序就可以了<br />  *

2010-09-06 22:22:00 946

原创 MIPS,MCPS, MHz for voice codec

MIPS = Total Instructions*Sampling frequency/(No of frames * Samples per frame*100000) MCPS = Total Cycles*Sampling frequency/(No of frames * Samples per frame*100000) MHz is same as MCPS And as we know , some instructions may take more than 1 cycle ,so so

2010-09-02 23:01:00 2556 1

原创 RVDS4.0上开发cortex A8 NEON程序

<br />用RVDS4.0集成开发环境新建一个target为cortex A8 NEON的工程,即便是hellowolrd,也无法正常运行,<br />然而自己写makefile调用amrcc的方式就可以。在水木等地咨询,虽然回复的网友众多,其中不乏一些高手,但是问题总是解决不了。<br />最后还是arm的技术支持技高一筹,给了下面的代码,并设置程序入口点为init_cpu,问题解决<br />http://infocenter.arm.com/help/index.jsp?topic=/com.arm

2010-08-30 22:43:00 1557 1

原创 ARM 汇编中跳转指令

<br />今天检查实习生写的程序,发现他们对跳转指令有混用的现象,想给他们解释,于是重新复习了一下这几条跳转指令。<br /> <br />B :强制跳转<br />BL:带链接跳转,将下一个指令的地址复制到 lr(r14,链接寄存器)中。<br />BX:跳转并切换指令集,将下一个指令的地址复制到 lr(r14,链接寄存器)中。<br />BLX:带链接跳转并切换指令集,将下一个指令的地址复制到 lr(r14,链接寄存器)中,<br />    BLX label:无论何种情况,始终会更改处理器的状态 

2010-08-26 23:11:00 663

原创 定点c程序之六(完):Q值的选取和动态Q值

<br />by  c6000@sina.com<br />在定点算法实现中,由于数的定标直接影响到运算的精度,因此,确定各个变量的Q值非常重要.当Q值选得过大时,可能导致变量取值超出其所能表示得范围而导致失真;当Q值选得过小时,又会因为其所能表示的精度太低达不到较好的算法性能。<br />确定Q值的问题实际上就是要确定变量的动态范围。<br /> <br />设变量的最大绝对值为|max|,取一个整数n,使其满足<br />  2^(n-1)< |max|<2^(n)<br />  则有<br />  2

2010-08-24 22:57:00 2715

原创 定点c程序之五:定点数的字长效应

由于定点数的字长效应,其数值表示的动态范围较小,在运算过程中需要进行:饱和处理(Saturation)当运算(如累加、乘法等)超出最大、最小范围时,将超出最大值的数置为最大能表示的数值(如MAX16、MAX32等);将小于最小值的数表示为最小能表示的数值(如MIN16、MIN32等)。<br />在累加和乘运算中,结果往往会超出原操作数的字长。例如,两个16位的数相乘得到的是32位的乘积,而结果保存只希望高16比特被存储,即将累加器中的高16比特数存储到普通存储单元,这时,需要对低位比特进行处理:截尾处理直

2010-08-22 23:55:00 1110

原创 定点c程序之四:除法

<br />设浮点除法运算的表达式为:<br />float x,y,z;<br />z=x/y ;<br />假设经过统计后被除数x的Q值为Qx,除数y的Q值为Qy,商z的Q值为Qz,则<br />zq*2^(- Qz)   = xq*2^(-Qx)/ yq*2^(- Qy) <br />zq=(xq)*2^( Qz -Qx +Qy)/yq<br /> <br />但是在通用的DSP中,一般不提供单周期的除法指令,必须用除法子程序来完成定点数除法。除法是乘法的逆运算,乘法包括一系列的移位和加法;除法可分解

2010-08-22 21:44:00 1577

原创 定点c程序之三:乘法

两个有符号定点数相乘结果将导致两个符号位,为此DSP处理器一般都设计了硬件控制逻辑,可以直接将乘积结果左移移位,去掉符号位以后再存储。两个16比特定点数相乘得到的是32位定点数,一种处理方法是直接保留32比特乘积,进行后续处理;另一种处理方法是舍弃低16比特,降低精度。<br />设浮点乘法运算的表达式为:<br />float x,y,z;<br />z=xy ;<br />假设经过统计后x的Q值为Qx,y的Q值为Qy,乘积z的Q值为Qz,则<br />zq*2^(- Qz)   = xq* yq*2^(

2010-08-21 23:44:00 1005

转载 栈和堆的区别 转,出处不详

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,

2010-08-20 00:39:00 392

原创 定点c程序之二:定点加减法

1. 定点数表示的基础:Q值。Q值就是小数点的位置。<br />16位整形数表示小数<br /><br /> <br />32位整形数表示小数<br /><br />2. 将浮点加减法转化为定点加减法最重要的是必须保持两个操作数的Q值一致。如果两者不一致,一般地,为了保证数的精度,在运算前将Q值小的数调整为与Q值大的数的Q值,同时必须注意是否溢出。<br />设x的Q值为QX,y的Q值为Qy,加法/减法结果z的定标值为Qz,则 <br />z=x+y <br />zq*2^(- Qz)   = xq*2^(

2010-08-19 22:26:00 987

原创 定点c程序之一:定标

<br />定点DSP把所有数据都当作整数来处理ü在定点DSP芯片中,数字运算都是基于整形数的运算,也即所有操作数都用整形数表示。运算精度取决于整形数的字长,一般定点DSP的字长为16、24、或32。ü定点数用2的补码表示,16比特定点数表示的数值范围-32768~32767ü如1111111111111100b = -4ü定点DSP如何处理小数/分数?ü数的定标:设定小数点在16位整形数的适当位置,小数点前面部分表示数的整数部分;小数点后面部分表示小数部分。<br />当小数点处于不同位置时,所能表示的数

2010-08-19 00:31:00 1342

原创 图解CELP模型的语意编码器

<br />CELP,是Code Excited Linear Prediction的缩写。CELP是近10年来最成功的语音编码算法。CELP语音编码算法用线性预测提取声道参数,用一个包含许多典型的激励矢量的码本作为激励参数,每次编码时都在这个码本中搜索一个最佳的激励矢量,这个激励矢量的编码值就是这个序列的码本中的序号。CELP已经被许多语音编码标准所采用,美国联邦标准FS1016就是采用CELP的编码方法,主要用于高质量的窄带语音保密通信。<br /> <br /> <br /> <br />  <br

2010-08-19 00:13:00 1255 1

原创 语音编解码器 2

2.1.1    GIPS公司提出编码协议2.1.1.1  iLBC协议[6]<br />iLBC(internet Low Bit Codec)是GIPS(Global IP Sound)于2000年开发并被IETF标准化的的语音编解码器。iLBC是一种非常适合在IP网络上进行语音通信的编解码,主要为窄带语音通信而设计,但在实际的应用中它已突破了窄带的限制。iLBC有2种基本数据帧格式。一种是20ms的帧格式,语音数据经过编码之后的速率为15.2Kbps;另一种是30ms的帧格式,编码后的语音速率为13.

2010-08-18 00:52:00 801

原创 语音编解码器 3

2.1.1    VoIP语音编码器的比较<br />语音压缩编码研究的基本问题就是在一定的编码速率下,如何用较低的复杂度和较小的时延获得尽量好的重建语音,因此重建语音质量、编码速率、算法复杂度、算法延迟是衡量编解码器性能的四个主要因素。表2-1是上述VoIP常用语音编码器的指标的对比[1],[4],[5],[6] 。<br /> <br />纵观集中编解码器,iLBC有很多技术优势,主要表现在:<br />(1)   占用带宽少<br />        在20ms帧时,iLBC所占总的带宽为27.73K

2010-08-18 00:52:00 952

转载 如何在Windows下搭建Android开发环境(转)

<br />马上要用到了,先转过来。<br /> <br />链接:http://blog.csdn.net/Mac_cm/archive/2009/01/06/3720492.aspx<br /> <br />搭建Android开发环境<br />1 下载Android SDK<br />http://code.google.com/android/download.html<br />这是官方网址,进入后跟着流程走,选择适合于自己平台(这里是Windows)的SDK包下载。下载后直接解压就可以使用了。<

2010-08-18 00:50:00 254

原创 语音编解码器 1

<br />摘自本人总结的一片文档<br /> <br />为使VoIP能够可靠的进行语音通信,必须保证在一定话音质量的前提下尽可能地降低编码速率,这主要是依赖语音编码技术。在目前VoIP中常用的语音编码算法主要有以下几类:基于波形编码的算法;基于CELP模型的混合编码算法;以及GIPS公司自己提出的4种语音编码算法。<br /> 2.1.1    采用波形编码的编码器<br />波形编解码器基本上不考虑信号是如何产生的,而直接将输入的模拟信号抽样编码,然后将量化后的样值传送到终端,在终端原始信号被重组到与

2010-08-18 00:50:00 947

原创 windows Mobile开发环境搭建指南 (转)

http://blog.joycode.com/musicland/articles/38275.aspx 内容简介本文描述了如何搭建典型的Windows Mobile开发环境。介绍了相应的IDE、SDK及辅助开发工具的安装及常用配置,并对Windows Mobile下一代开发环境的发展前景做出展望。本文适合初次接触Windows Mobile开发的开发人员。Windows Mobile开发简介Windows Mobile是微软公司操作系统产品线上重要的一环。与Windows 9x/NT/XP/2003相比

2010-08-18 00:48:00 317

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除