- 博客(9)
- 收藏
- 关注
原创 声音编码基础
1.脉冲编码调制PCM文件格式简介将音频数字化,其实就是将声音数字化。最常见的方式是透过脉冲编码调制PCM(Pulse Code Modulation) 。运作原理如下。首先我们考虑声音经过麦克风,转换成一连串电压变化的信号,如图一所示。这张图的横座标为秒,纵座标为电压大小。要将这样的信号转为 PCM 格式的方法,是使用三个参数来表示声音,它们是:声道数、采样位数和采样频率。
2010-01-26 22:36:00
2957
原创 error MIDL2025 : syntax error : expecting a type specification near "HRESULT"解决办法
在vc6.0用ATL建立一个COM组件,然后在接口定义中加入方法,会遇到编译错误:(1)error MIDL2025 : syntax error : expecting a type specification near "HRESULT"(2)error MIDL2026 : cannot recover from earlier syntax errors; aborting compi
2010-01-16 11:25:00
4102
原创 音频相关简介--码率
码率高低直接影响音质,码率高音质好,码率低音质差。码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来的cbr(固定码率)与vbr(可变码率),都是在这方面
2010-01-09 23:19:00
2018
原创 MPlayer开发
一、介绍 不论是音频数据还是视频数据,我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。 学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充,给出一些技巧、关键点和一般的路线图。 术语介绍:“Codec"表示编码器/解码器(如果你愿意,也可以称为压缩器/解压缩器),它表示一个模块既
2010-01-09 23:18:00
2033
转载 MPlayer编解码开发指导
一、介绍 不论是音频数据还是视频数据,我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。 学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充,给出一些技巧、关键点和一般的路线图。 术语介绍:“Codec"表示编码器/解码器(如果你愿意,也可以称为压缩器/解压缩器),它表示一个模块既
2010-01-05 19:51:00
1203
1
原创 COM特性本质
1.语言无关性 COM以接口形式提供服务,所谓接口在C++中为一个虚函数表,在C语言为一个函数指针,注意到他们的本质可归一到某一个函数的入口地址,仅仅是地址!也就是说它可以(实现上确实如此)在二进制级别上实现服务端与客户端的交互。 2.进程透明性 这完全是COM底层库实现的功能,也可理解为它参与操作系统中进行了进程控制和通信。 3.可重用性 这与C++的重用
2009-12-16 21:30:00
1264
原创 了解PCM码
PCM: Pulse Code Modulation脉冲编码调制一般速率为64kbps是指对语音信号直接采样量化的一种编码办法,采样速率为8000Hz,每样点用8bit表示。CD用16bit 44.1kHz采样的PCM。数字电话用的也是PCMPCM是非线性编码,根据G.711建议,编码结束后需要做偶数位翻转。即如果编码后结果是 0 110 1001则在发送的时候需要经过偶数位翻转得到: 0 011
2009-12-15 21:43:00
4361
1
转载 组合模式(Composite)
1.模式名称 组合模式Composite 2.分类 结构型模式3.意图将对象组合成树形结构以表示“部分-整体”的层次结构。合成模式要对组合的对象进行管理,所以在一定位置给予对象的相关管理方法,如:add(),remove()等.合成模式中对象的管理有两种方案。(1).安全方式:此方式只允许树枝构件有对象的管理方法。 (2).透明方式:此方式只允许树
2009-12-12 21:49:00
460
原创 First article
1,使用VC向导生成一个具体项目,如Win32 Dynamic-Link; 2,包含头文件streams.h;3,在VC的菜单中选择Project|Settings|C/C++,在弹出的对话框中的Category中选择Code generation,然后在Calling convention中选择_stdcall;4,使用多线程语言运行时库,即在VC的菜单中选择Project|Sett
2009-12-12 15:18:00
366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人