自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 声音合成

最近了解到一款声音合成软件,通过组合数字信号处理算法制作声音,感觉非常伟大! 可以制作大自然的声音,如雨,打雷,刮风等。 如果技术成熟,运用到软件开发中可以方便嵌入声音,而无需资源包。 下面是教程,后续分析该软件运行原理,并准备开发一下,搞个sdk给大家用。 http://obiwanna...

2015-12-31 17:33:15 1800 1

原创 时间戳杂谈(二)

时间戳由时间基准和时间戳值组成。 时间基准:对时间单位(s)划分的标准。 例如,1/25表示每秒分为25个单位,每个单位时间间隔包含1个单位。 3001/90000表示每秒分为90000单位,每个单位时间间隔包含3001个单位。 时间戳值:基于时间基准的时间表示,也即多少个单位时间间隔。 ...

2014-07-28 18:05:21 3645 1

原创 解复用实现原理

解复用是多媒体开发中核心的功能。 解复用功能是从音视频信号源中分流出不同的音频和视频流;另外解复用一般属于一种主动操作,即从音视频信号源中取出。 数据流结构为Source->Demux->Stream 主要实现模式有: 1)直接模式:直接从信号源获取相应的音频或者视频数据。这种...

2014-07-28 16:18:48 7059 0

原创 数据流同步控制策略

数据流同步控制策略        数据处理过程实际就是数据流控制过程,在数据流控制过程中,如何确保模块之间的同步显得尤为重要。 数据流同步控制策略主要有以下两种方式,如图1所示。 1)数据同步:如图上部分所示。多采用FIFO队列实现,一般会使用信号量或者事件来同步...

2014-03-07 18:12:59 3646 1

原创 VLC播放引擎架构

VLC虽然是用c代码实现的,但是在代码编写上遵循了面向对象原则,易修改和扩展。不过实话实说,结构之间的关联太过于频繁,理解上还是不太容易。如果能够改成c++那是最好不过了。         对于媒体播放器,肯定离不开解复用,解码,音频和视频输出这四个模块,不管是DirectShow,还是VLC,...

2014-03-04 15:03:10 4951 0

原创 时间戳杂谈

参考时钟与时间戳处理 1、参考时钟        用于作为系统的唯一参考,一般以系统启动时间开始计时,具体数值影响不大,主要是做一个比较和参考作用。 参考时钟设计时主要保证稳定性,尽量不产生时钟偏移。 2、时间戳 时间戳有两种, 1)同步时间戳         之所以称为同步,其作用...

2014-02-20 16:28:55 2726 0

原创 WebRTC源码分析四:视频模块结构

本文在上篇的基础上介绍WebRTC视频部分的模块结构,以进一步了解其实现框架。 一、对外接口        对外接口有ViEBase,ViECapture,ViECodec,ViEEncryption,ViEFile,ViEImageProcess,ViENetwork,ViERender和ViE...

2014-02-19 16:12:06 9653 1

原创 WebRTC源码分析三:视频处理流程

文本介绍视频的处理流程。图1中显示了两路视频会话视频信号流过程。 以一路视频会话为例,主要分为以下几个线程: 1)视频源产生线程:Camera生产视频画面,封装成视频帧,以一定帧率投递到下一个模块。; 2)采集线程:由Capturer负责采集视频帧,并对视频帧进行一定处理,如调整画面亮度。并送...

2014-02-19 11:32:17 11391 4

原创 WebRTC源码分析二:音频模块结构

本文介绍WebRTC音频模块组成和结构,详细介绍音频引擎的配置和启动,相信看完本文后,很多人可以利用webRTC完成一个音频通话程序开发。 一、对外接口       音频部分的对外主要接口如下,各个接口之间的关系如图1所示。 1)VoiceEngine:负责引擎的所有接口查询,存储共享数据信息Sh...

2014-02-17 17:44:30 16132 4

原创 WinHTK开发与使用三:连续语音识别

WinHTK开发与使用三:连续语音识别 本文接上文,介绍连续语音识别系统设计过程,演示视频见下载资源中。 二、连续语音识别系统设计         上面讨论了一个简单的十个孤立数字识别系统的设计过程,可以看出比较简单,效果也非常好。下面将设计一连续语音识别系统,相比较于孤立词识别而言,它有...

2014-02-16 11:31:45 6955 1

原创 WinHTK开发与使用二:孤立词识别

WinHTK开发与使用二:孤立词识别         本文在WinHTK软件设计的基础之上,介绍设计语音识别系统过程。具体包括孤立词语音和连续语音识别系统设计,这里先介绍孤立词的识别。语音识别系统设计过程主要包括四个步骤[32]:数据准备,模型训练,识别测试,效果分析,如图1所示。  图1 ...

2014-02-15 22:05:20 3386 3

原创 WinHTK开发与使用一:软件设计

WinHTK开发与使用一:软件设计         接触语音识别的同行都会了解HTK,HTK工具包的功能很强大;但是对于习惯界面操作的很多人而言,它有一些先天不足。当然对于一开始就习惯类Unix等命令行界面 开发者而言,这些都不是问题,所以本系列文章只针对熟悉可见即可及操作的对于语音识别感兴趣的初...

2014-02-15 17:59:49 3344 14

原创 WebRTC源码分析一:音频处理流程

本文概要介绍webRTC的音频处理流程,见下图: webRTC将音频会话抽象为一个通道Channel,譬如A与B进行音频通话,则A需要建立一个Channel与B进行音频数据传输。上图中有三个Channel,每个Channel 包含编解码和RTP/RTCP发送功能。 以一个Channel而言,应...

2014-02-14 15:18:25 11634 5

原创 命令行解析代码

开发设计过程中,往往要对命令行进行解析,下面实现了命令行解析功能,具体见代码(QuickHash在之前文章中): 命令选项类,封装-p等命令选项 #ifndef COMMAND_OPTION_H #define COMMAND_OPTION_H #include /**@file Command...

2014-02-11 10:15:59 4784 0

原创 C++状态机实现V1.0

实现状态机框架,可以继承此框架的基类实现自定义功能,需要QuickHash头文件,源码如下,请尊重原创!欢迎批评指正! FSM.h #ifndef FSM_H #define FSM_H #include #include "QuickHash.h" #include...

2012-04-27 18:14:57 8308 12

转载 状态机之C++解析

状态机之C++解析   2008-11-18 作者:CppExplore 来源:cppblog.com   一、状态机描述 状态机理论最初的发展在数字电路设计领域。在数字电路方面,根据输出是否与输入信号有关,状态机可以划分为...

2012-04-27 17:06:14 2171 0

原创 C++ Hash表设计V2.0

在第一个版本上修改完善的,可以任意使用,但请尊重原创: #ifndef QUICK_HASH_H #define QUICK_HASH_H #include #include /**@file QuickHash.h * 实现Hash功能的模板类 * @author xiaoxing...

2012-04-26 10:14:21 2153 3

原创 C++ Hash表设计V1.0

前面发了几篇博客,一个评语都没有,这次废话不多说,直接上代码。有讨论的话再给出代码介绍。请尊重原创!!! #ifndef QUICK_HASH_H #define QUICK_HASH_H #include #include /**@file QuickHash.h * 实现Hash功...

2012-04-25 17:55:15 1347 0

原创 svn配置

利用apache httpd服务来访问svn repository比较方便,下面介绍一下配置过程 步骤1:下载subversion,并安装 步骤2:创建一个代码库目录,E:/svnlib/repository 步骤3:配置apache httpd服务 利用htpasswd程序生成一...

2012-04-25 14:16:42 637 0

原创 多进程及多线程之间同步与通信

同步与互斥:简单的控制 通信:交互的信息更多 Windows和Linux下用于同步与通信的机制大体一致,下面简单做一个归纳。 1.多线程的同步 方式                         Windows                                 Linux ...

2012-04-23 14:09:53 4469 0

原创 c++内存池实现

利用C/C++开发大型应用程序中,内存的管理与分配是一个需要认真考虑的部分。 本文描述了内存池设计原理并给出内存池的实现代码,代码支持Windows和Linux,多线程安全。 内存池设计过程中需要考虑好内存的分配与释放问题,其实也就是空间和时间的矛盾。 有的内存池设计得很巧妙,内存分配与需求...

2012-04-19 17:12:25 17244 16

原创 windows下守护进程实现

这里的守护进程指的是无控制终端的进程。 Linux下运行进程只需要后面添加&就可以实现。有的时候需要设计一个可以同时在Windows和Linux下运行的守护进程 为了避免过多的修改代码。可以添加如下伪指令来实现: #ifndef WIN32 #pragma comment(link...

2012-02-25 17:35:36 7019 2

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