自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android平台,C/C++代码内存对齐问题(signal SIGBUS Error)

最近手机版本老出现崩溃,之前出现过,但很偶然。最近出现机率比较高,就跟查一下。报了signal SIGBUS BUS Error,最终定位在uint32_t i32 = *((uint32_t*)m_data); 这句语出了问题, 确认m_data内存是正确的,并且在PC机上运行是正常的。后面查到原因是x86架构CPU是支持内存非对齐访问,而手机的CPU采用的是RISC架构,为了提高访

2014-02-17 20:46:12 8335

原创 自动增益(AGC)算法小结

Speex AGC算法模型过于简单,只是一个纯粹的算法,在有人声激励的情况 ,表现比较好。能快速增益到合适的音量,缺点是当一段时间没有被正确的信号激励之后,会出现过多地增益背噪声的问题,而且因为增益不稳定,变化速度比较快,会不断地出忽大忽小的背景噪声的情况。重写AGC算法主要就是解决上面提到的问题,除了算法本身以后,也考虑了实际中应用场景,总体的设计思路是前期增益变化会比较快,处于一个快速学习

2013-12-06 20:07:17 21377 3

原创 浅谈异步IO各模型优缺点

本文只讨论OverLapped I/O的三种异步模型及完成端口,像select、SWASelect不作讨论,讨论顺序从劣到优,方便于循序渐进地对比,更容易区分各模型之间的差别。1. OverLapped I/O 设备内核对象模型,这种模型虽然采用异步,但为了知道对象是否触发,需要一直挂起线程,换个角度来说,与同步的差异不大2. OverLapped I/O 事件内核对象模型,这模型

2013-10-08 15:27:54 7064

翻译 Speex之四--编码器/解码器命令行

Speex的基本描述包括一个命令行编码器和解码器. 那些工具产生和读包装在OGG容器的Speex文件.虽然它是可以封装Speex在任意容器的,但Ogg被推荐为文件的容器的.本段描述如何为Ogg的Speex文件使用命令行工具4.1 speexencSpeexenc单元是通过裸PCM或wave文件被使用于创建Speex文件. 可使用下面命令:speexenc [操作] input_fi

2012-05-21 09:35:44 4764

翻译 Speex之三--编译和移植

3. 编译和移植通过自动配置在UNIX/Linux或其它平台支持(如Win32/cywin)编译Speex很容易,只需键入:%./configure[options]%make%make install其设置支持是通过Speex配置脚本的:-prefix= 指定Speex安装其本路径(如 /usr)-enable-shared/-disable-shared  是否编译

2012-05-10 20:04:45 10041 1

翻译 Speex之二-编码描述及相关概念解析

编码描述这一章节将描述Speex更为详细特征1. 概念在介绍全部Speex特征之前,这里有一些语音编码的概念以帮助更好地理解本手册。虽然有一些是语音/音频处理的概念,其它是特殊于Speex的(译得怪怪的) 采样率采样率使用赫茲(hz)表示,是每一秒钟信号采样的个数。以采样率Fs kHz为例,其最高频率等于Fs/2 kHz(Fs/2 被称为Nyquist频率)。这是信号处理的基本

2012-04-24 17:01:09 7034

翻译 Speex之一-介紹Speex

Speex之一-介紹Speex介紹SpeexSpeex編解碼器(www.speex.org)存在是因為有這麼一個需求,即是開源同時專利版權也是免費的。這應該也是各開源軟體的必要條件。本質上講,Speex是針對語音的,vorbis是針對語音/音樂的。不像很多基它編碼,Speex不是為移動手機設計的,而是為網絡和VOIP應用設計的。文件壓縮當然也技持。Speex設計得很靈活,支持很寬範圍的語音

2012-04-20 17:38:43 8275 3

原创 SpeexCBR與Opus編碼對比測試

SpeexCBR與Opus編碼對比測試丟包率波形圖對比聽覺5%Speex與Opus都有個別字出現削波聽整段語音,都比較清晰。重點聽個別削波字,Speex失真程度比較Opus嚴重8%Speex與Opus削波增多,Speex削波會比Opus嚴重聽整段語音,Opus比較

2012-04-06 17:38:49 3911 7

原创 lua学习笔记

近日时间比较充裕,学习一下lua语言,顺便写下笔记,方便以后加深学习。为了方便,我没有编译lua代码,直接下载了lua的动态库及执行文件链接地址:C/C++调用lua动态库及头文件地址(用于C/C++嵌入Lua脚本解析):http://sourceforge.net/projects/luabinaries/files/5.1.4/Windows%20Libraries/lua5_

2012-03-30 12:29:14 1843

原创 語音編解碼總結(二)

ITU語音編碼性能參數編碼算法集樣率比特率采樣位數時延CBRVBR立體聲多通道G.711PCM8 kHz64 kbit/s8 bit125µs 是否

2012-03-09 17:24:30 2182 1

原创 數字信號處理筆記 – 序列(上)

數字信號處理筆記 – 序列(上)序列是對模擬信號x(n)進行等間隔採樣,採樣間隔為T。比較如採樣頻率為16000Hz的採樣間隔為1/16000一、序列的運算(1)移位:序列x(n),当m>0时x(n-m):延时/右移m位x(n+m):超前/左移m位(2)翻褶x(-n)是以n=0的縱軸為對稱軸將序列x(n)加以翻褶(3)和同序列號n的序列值逐項對應相加

2012-03-08 22:10:11 2716

原创 語音編解碼總結(一)

語音編解碼的概述  隨著互聯網、移動通訊的發展,多媒體語音通信的應用越來越廣,降低信道傳輸速率、提高語音質量,成為人們不斷追求的目標。語音編碼技術在這過程中承擔著極其重要角色。 語音編解碼的分類語音編解碼技術有很多種,大致可以分為三類,即波形編碼,參數編碼,混合混碼。另外,根據編碼的速率來分類又可分為低速率、中速率、高速率編碼。根據應用不同也可分為音樂編碼和語音編碼。 1.

2012-02-28 15:44:47 2851 1

原创 调用约定 C++对照及汇编详解

_cdecl(C declration)是C语言函数的默认调用约定规则,也是VS编译器函数默认的调用约定规则,参数从右到左依次push入栈。需要调用者手动平衡栈。使用__cdecl编定规则之后,传递了多少参数和什么类型的参数,被调用者都不会知道,即使不同参数个数和类型都不会产生编译期的错误(PS:以上是指C代码中,C++因为函数名与参数直接关联,所以在编译期是会产生错误)C++及汇编解析声

2012-02-22 15:20:53 1690

原创 Speex 编码宽带下 CBR与VBR对比测试

根據Speex官方網數據,在窄帶情況下,SpeexVBR性能優於SpeexCBR。於是,產品考慮將原來普通音質Speex CBR換成Speex VBR。但不知道在寬帶下性能如何。便對SpeexCBR與SpeexVBR進行對比測試。以下測試結果與大家分享一下,有不對的地方,請大家指正。Ps: SpeexCBR為使用默認參數下的CBR編碼SpeexVBR1為使用默認參數下的VBR編碼Spe

2012-02-21 21:32:47 2749

转载 WinSocket模型的探讨——完成端口模型

众所皆知,完成端口是在WINDOWS平台下效率最高,扩展性最好的IO模型,特别针对于WINSOCK的海量连接时,更能显示出其威力。其实建立一个完成端口的服务器也很简单,只要注意几个函数,了解一下关键的步骤也就行了。这是篇完成端口入门级的文章,分为以下几步来说明完成端口: 函数常见问题以及解答步骤例程1、函数:我们在完成端口模型下会使用到的最重要的两个函数是:Crea

2011-11-28 13:29:12 977

转载 SOCKET编程进阶之Overlapped IO完成例程模型

SOCKET编程进阶之Overlapped IO完成例程模型完成例程模型相比与事件通知模型有个很大的优点就是不再受64个消息的限制,一个线程可以同时管理成百上千个socket连接,且保持较高的性能。 完成例程相比与完成端口较为逊色,因为它的性能不能随着系统CPU数量的增长而线程增长,不过在我看来已经很强了,呵呵~! 说白了,这些连接都是由系统来帮你管理的。你只需做的一件事就是:开启一个

2011-11-18 14:35:45 1334

转载 SOCKET编程进阶之Overlapped I\O事件通知模型

WINSOCK I\O模型有六种: 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模型 六:完成端口IOCP模型 且一个比一个完善,一个比一个高深。最好用的莫过于完成端口,但可惜的是只有NT、2000的系统才支持这种功能。心痛之余

2011-11-15 10:28:33 1952

原创 线程池浅析及C++代码实现

线程池浅析及C++代码实现(1)什么是线程池线程池是一种多线程处理技术。线程池先创建好若干线程,并管理这些线程。当有新的任务到来时,将任务添加到一个已创建的空闲线程中执行。线程池所创建的线程优先级都是一样的,所以需要使用特定线程优先级的任务不宜使用线程池。(2)线程池的优点和应用线程池统一管理线程的方式减少了频繁创建和销毁线程的系统调度开销,很大程度上提高了服务器处理并发任务的性能

2011-11-13 21:18:09 1662

转载 ADPCM压缩算法

ADPCM(Adaptive Differential Pulse Code Modulation),是一种针对 16bits( 或8bits或者更高) 声音波形数据的一种有损压缩算法,它将声音流中每次采样的 16bit 数据以 4bit 存储,所以压缩比 1:4. 而且压缩/解压缩算法非常简单,所以是一种低空间消耗,高质量高效率声音获得的好途径。保存声音的数据文件后缀名为 .AUD 的大多用AD

2011-08-31 14:17:45 1986

原创 G711 a律算法代碼解析

//a律  段落的分界線 (1111 1111)Fstatic short seg_aend[8] = {0x1F, 0x3F, 0x7F, 0xFF,   0x1FF, 0x3FF, 0x7FF, 0xFFF}; //查找段位置,分為8個段static short search(short val,short *table, short size){    short

2011-04-20 17:25:00 2825

原创 預加重及C代碼

預加重及C代碼 預加重的作用預加重是提高信號高頻部分,使得低頻部分到高頻部分的頻譜平穩。使低頻到高頻的信噪比一樣。經常在頻譜分析中使用。 在語音頻譜分析中,我們為什麼要使用預加重?語音信號中由於人聲的激勵,使得頻譜低頻向高頻呈跌落狀態,也就是說高頻比低頻的成分少,高頻比低頻難求。所以在頻譜分析之前我們需要對時域語音信號進行預加重。 以下是預加重的C代碼pfDat

2011-04-19 10:51:00 2009

原创 通过一段汇编,加深对寄存器ESP和EBP的理解

一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush   p2    ;参数2入栈, ESP -= 4h , ESP = NN - 4h

2011-01-05 09:08:00 32309 4

原创 离散卷积与C程序

卷积(convolution)是通过函数f和函数g产生第三个函数的一种数学算子。表示函数f与经过翻转和平移与g 重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。它的应用包括统计、计算机视角、图像与信号处理、电气工程和微方程式等。卷积能被定义不同于欧几里得空间的函数组。尤其是循环卷积能被用于周期函数,而且离散卷积函数能定义成整数计算。一般卷积应用

2010-12-22 15:40:00 2715

原创 自相关函数及c程序

自相关函数,是对信号自身的互相关,表示同一序列不同时刻的相关程度。是用寻找重复模式的数字工具,就如一个存在被覆盖噪声的周期信号,或识别丢失的基频。它经常被用于信号处理中的分析函数或序列,如时域信号。在不同的科学领域其定义各不相同,以下是离散语音数字信号自相关函数公式:其 c++程序实现可以写成如下:float AutoCorrelation(float* data, int

2010-12-21 17:43:00 10816 4

转载 TCP/IP详解读书笔记(第一章)

第1章 概述TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。分层网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,每一层负责不同的功能:1) 链路层,有时也称作数据链路层或网络接口层,通常包括

2008-06-19 13:52:00 1314

转载 (翻译)设计Qt风格的C++的应用程序接口

"Designing Qt-Style C++ APIs" by Matthias Ettrich http://doc.trolltech.com/qq/qq13-apis.html翻译这篇文章的目的不是让人了解Qt,而是让人试着学习点C++编程的软技能。我从原文中得到的一些风格上的体会,也希望你能从中有所收获.(译者注)我们在Trolltech做了大量研究来改进Qt

2008-05-13 15:35:00 1059

转载 C++编程规范

C++编程规范1. 文件结构每个C++/C 程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现( implementation),称为定义( definition)C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“. c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”

2008-05-09 16:27:00 2007

转载 IT项目管理-----给年轻工程师的十大忠告

给年轻工程师的十大忠告 诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强![1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐

2008-04-14 14:51:00 1329

转载 音频压缩和编解码(Audio Compression and Codec)

音频压缩和编解码(Audio Compression and Codec)音 频压缩是一种形式的数据压缩,其被设计来减少音频文件的大小。音频压缩算法在计算机软件上实现叫做音频编码。音频编解码器是一个计算机程序,其根据一个给定音频文件格式或流音频格式压缩/解压缩数字音频数据。大部分编解码器被当作库实现,它的接口接到一个或更多多媒体播放器。针对音频压缩不同标准组织和公司有很多不同技术和标准可用

2008-03-19 11:29:00 6794

原创 VOIP术语

 VOIP术语ACD -- 自动呼叫分配(Automatic Call Distributor)是一个特性,它用来在一个呼叫中心环境下根据一些因素诸如:能力、呼叫的方法、时间等等路由呼叫到合适的人。 Agent -- 坐席,队列的成员。 ATA -- 模拟电话适配器(Analog Telephone Adapter),一个用来连接模拟电话到一个数字线路的设备。 BR

2008-01-13 11:02:00 2080

原创 编译ffmpeg的VC动态库

编译ffmpeg的VC动态库1. 安装minGW + MSYS下载minGW:MinGW-3.1.0-1.exe(我是用了这个版本的,我猜想要是直接下了mingw-5.1.3的话就可以不用再下一些升级包了,没有试验过)http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download双击安装 下载MSYS:

2008-01-10 10:08:00 6668

原创 Gcc总体选项列表

Gcc总体选项列表后  缀  名           所对应的语言-c                  只是编译不链接,生成目标文件“.o”-S                  只是编译不汇编,生成汇编代码-E                  只进行预编译,不做其他处理-g                  在可执行程序中包含标准调试信息-o file

2008-01-03 11:24:00 1484

原创 Makefile 简单编写(二)

Makefile 简单编写(二)                                                        ――静态库       很多基本上都和Makefile 简单编写(一)一样,只是最后产生库时有所不一样。ar rcs libstaticlib.a $(OBJECT_O) ar指令将全部*.o文件创建生库ar命令可以用来创建、修改库,也

2008-01-03 09:31:00 5820

原创 编写简单Makefile (一)

Makefile 编写简单(一) --单一的C工程       编写一个自己工程需要的Makefile其实很简单,以下是一个俺的一个实例,包含了中英文注释,小看一下,应该就很快明白了,要求不多的话,一个Makefile几句就能搞定,详细请查看Gcc参数设置和Makefile规则。1.      工程文件的分布./Makefile---

2007-12-24 22:24:00 5204 1

转载 剖析共享程序库

来源:http://www.ibm.com/developerworks/cn/linux/l-shlibs.html共享程序库通过版本号来完成对应用程序所使用的程序库的升级,同时保留了对原有应用程序的兼容。本文将讨论此方法的实际内幕,以及在常规 Linux™系统上的 /usr/lib 中有很多符号链接的原因。 共享程序库是现代 UNIX®系统中有效利用空间和资源的基础

2007-12-23 21:48:00 1129

转载 MySQL实用命令

(一) 连接MYSQL:mysql -h主机地址- 1、例1:连接到本机上的MYSQL   首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:m

2007-12-06 13:55:00 1060

转载 经典语录

 1、婚姻的成功取决于两点:一、找个好人;二、自己做个好人。2、一个人需要技巧和智慧,但最不能缺少的,是原则和信念。 3、教育了一个女孩就是教育了一个家庭、一个民族、一个国家。4、社会的确是靠那些杰出的男人推进的,但世界又是靠这些平庸的男人顶住的。5、学校里有高分低分之分,但校门外没有,校门外总是把校门里的一切打乱重整。6、有时候,我们会对别人给予的小恩小惠“感激”不尽,却对亲人一辈子的恩情“视而

2007-11-22 08:49:00 1109

转载 人要是没有追求,那跟咸鱼有什么区别!

人要是没有追求,那跟咸鱼有什么区别!-----这是周星驰电影的一句对白!有意思!!我一向尊重有追求的人,不管他追求的是什么!精神?物质?...只要有追求,都是好样的!人,一旦有了追求,生活便会生动起来,热情起来,趣味起来,快乐起来!!因为,他的生活有了一个明确目标,他知道每天要怎么过,他清楚下一步要做什么,他明白什么时候该痛快玩什么时候该疯狂地工作,他了解怎样给自己充电!!这样的人,是幸福的!每一

2007-11-18 22:45:00 3827 1

原创 C/C++内存终极处理方法(夸张点,推荐)

C/C++内存终极处理方法(夸张点,推荐)    C/C++动态分配给我们带来了很多方便,但同时,也给我们带来了无限的烦恼。    1. 在嵌入式中    嵌入式开发内存本来就不是很足够,过于频繁的动态生成和释放,导致内存碎片过多占用内存。最终降低了程序性能和稳定性。    2. 在比较大型或自己不是很了解的源码中    内存泄漏的问题在C/C++编程中是经常要面对的,对于

2007-11-18 21:38:00 4430 3

原创 YUV转RGB函数

以下是YUV420转RGB24函数,有试过可以的,其中参数src0 是Y量的起始指针, src1 是U量的起始指针 , src2是 V量的起始指针dst_ori 是RGB buffer的起始指针width 为宽,height 为高对于YUV420格式数据的YUV量分配分别是Y量为 数据的起始指针U量为 数据的起始指针 + 宽*高V量为 数据的起始指针 + 宽*高*5/4 void Conv

2007-11-18 14:18:00 9034 1

FFDSHOW 很不错的编解库

FFDSHOW 很不错的编解库,源代码!!

2010-07-16

小波变换在语音去噪中的应用

小波变换在语音去噪中的应用 PDF , 研究论文

2009-06-25

设计模式 C++版本

设计模式 C++版本 PDF ,C++程序员的开发宝典

2009-06-25

改进的基于小波变换的语音活动检测算法

改进的基于小波变换的语音活动检测算法 PDF

2009-06-25

空空如也

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

TA关注的人

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