c
文章平均质量分 72
TensorFlow学习
这个作者很懒,什么都没留下…
展开
-
Linux内核中常见内存分配函数
[-]原理说明伙伴系统算法slab分配器常用内存分配函数__get_free_pageskmem_cache_allockmallocvmallocdma_alloc_coherentioremapBoot Memory在内核引导时分配内存通过内核引导参数预留顶部内存几种分配函数的比较1. 原理说明Linux内核中采用了一种转载 2014-12-06 21:18:32 · 412 阅读 · 0 评论 -
IOS播放PCM数据
关于PCM播放器源码学习是本文要介绍的内容,由于原始PCM文件不能容纳任何关于其自身频率或者帧大小之类的信息,本例将不得不对此自行设置。我们会使用一种为经过压缩的PCM数据格式,具体参数喂16位、44KHz、单声道。这些信息通过程序顶部的三个预定义值指定:1#define BYTES_PER_SAMPLE 216位等于两个字节转载 2014-10-21 14:47:11 · 1718 阅读 · 0 评论 -
Android下使用lamemp3库将PCM录音数据压缩为MP3格式
转自:http://ikinglai.blog.51cto.com/6220785/1228730之前已经介绍过iOS下使用lamemp3将PCM压缩为mp3格式,今天介绍一下Android的使用。至于lamemp3库的下载就不再介绍了,大家可以直接把iOS的那个库拷过来,或者使用我附件中的库也可以。下面我介绍一下整个使用步骤,我将按照由转载 2014-10-21 14:46:22 · 806 阅读 · 0 评论 -
PCM数据合成WAV文件
由于需要解码后的裸数据保存下来看看效果,故需要将数据合成WAV文件[cpp] view plaincopyypedef struct { unsigned short format_tag; unsigned short channels; /* 1 = mono, 2 = ster转载 2014-10-21 14:40:44 · 986 阅读 · 0 评论 -
IOS 实现录音PCM转MP3格式(边录音边转码)
最近做的一个项目,项目中有个录音功能,采用的录音方法是IOS下的AVAudioRecorder。录音效果不错,但是录制的原生.pcm文件太大,每分钟大约10M左右。找了下相关的音频压缩方法,用speex的比较多。按照speex的示例文档折腾了半天,实现了转码压缩。speex压缩率还蛮高的,但是压缩之后的pcm文件不能播放,需要解码回来,可是按照示例代码解码之后的pcm文件依旧不能播转载 2014-10-21 14:34:45 · 1116 阅读 · 0 评论 -
libmad解码MP3——/dev/dsp播放
一、编译libmad库 1、下载libmad源码,解压。 2、 ./configure --prefix=/usr (安装到/usr/lib目录) 3、make & make install 出现错误信息 error: unrecognized command line option "-fforce-mem"转载 2014-10-21 14:31:21 · 1304 阅读 · 0 评论 -
wav文件提取出pcm数据
/*******************************************************************************************************文件功能:wav文件中提取pcm数据作者:HFL日期:2014-1-12说明:wav文件就是在pcm数据的基础上加了一文件头。文件头的大小为44个字节(没有附件字段的情况,如果转载 2014-10-21 14:25:28 · 1756 阅读 · 2 评论 -
Java实现音频格式转换 WAV---mp3,可使音频压缩
最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一个录音机的功能(见前面的博客),但是windows录音默认保存的格式是WAVE,后缀是WAV,经过大量测试,录制一分钟要1M大小,这样不便于网络的传输,于是下面的任务就是实现音频压缩了,搜了几天,找到了一个不错的软件Monkey Audio(实现说明,我们的项目得全是代码实现的),这个软件的开转载 2014-10-21 14:14:46 · 2899 阅读 · 0 评论 -
使用lame将wav转成mp3
安装lame:下载lame-3.93.1.tar.gz tar -xvzf lame-3.93.1.tar.gz ./configure && make && make installwav转化mp3脚本:#!/bin/sh # # file : wav2mp3.sh # this is for debugging PATH="/var/files转载 2014-10-21 14:07:18 · 2017 阅读 · 0 评论 -
位图文件(BMP)格式以及Linux下C程序实现
说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP。由于没有经过任何的压缩,故BMP图 片往往很大。在Windows下,任何格式的图片文件都要转化为位图格式才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生 成的。一、下面我们来看看位图文件(*.BMP)的格式。位图文件主要分为如下4个部分:转载 2014-11-04 16:08:47 · 604 阅读 · 0 评论 -
各种图像处理类库的比较及选择(The Comparison of Image Processing Libraries)
作者:王先荣前言近期需要做一些图像处理方面的学习和研究,首要任务就是选择一套合适的图像处理类库。目前较知名且功能完善的图像处理类库有OpenCv、EmguCv、AForge.net等等。本文将从许可协议、下载、安装、文档资料、易用性、性能等方面对这些类库进行比较,然后给出选择建议,当然也包括我自己的选择。 许可协议类库许可协议许可转载 2014-11-04 10:58:52 · 380 阅读 · 0 评论 -
标题:C语言处理BMP图像
#ifndef IMAGE_H#define IMAGE_Hvoid image_info(FILE* file);void image_save(FILE *file);void image_gray();void image_binarization();void image_opposite();void image_channel(); //抽取RGB通道转载 2014-11-04 10:55:32 · 443 阅读 · 0 评论 -
使用C语言读取位图
一、位图文件结构位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义:typedef struct tagBITMAPFILEHEADER { // bmfh WORD bfType; DWORD bfSize; WORD bfReserved1;转载 2014-11-03 22:16:02 · 1152 阅读 · 0 评论 -
struct和typedefstruct的区别
1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。2. typedef & 结构的问题转载 2014-11-04 16:25:33 · 597 阅读 · 0 评论 -
读取BMP图像每一像素点RGB数据
对于24位bmp图片,每一个像素点存放着此点的RGB值。首先定义一个结构体,包含红(red)、绿(green)、蓝(blue)这三个字段,如下:[html] view plaincopy//像素颜色值 typedef struct tagPOINT{ BYTE b; BYTE g; BYTE r转载 2014-11-04 15:57:45 · 6080 阅读 · 2 评论 -
C语言fscanf函数了解
fscanf函数从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。原型:int fscanf(FILE *stream, char *format,[argument...]);返回值:返回实际被转换并赋值的输入项的数目。 %d:读入一个十进制整数。 %i :读入十进制,八进制,十六进制转载 2014-11-03 20:30:55 · 528 阅读 · 0 评论 -
C图片处理
1.RGB转素描 #include #include #include #include int temp_ex(int **save,int *temp,int tw,int x,int y) { int i,j; int m=0,px,py,t; for(i=0;ifor(j=0;j{ py=y-tw/2+i; px=x-tw/2+j;转载 2014-11-04 11:21:55 · 705 阅读 · 0 评论 -
在iPhone上使用 OpenCV
原文:http://niw.at/articles/2009/03/14/using-opencv-on-iphone/enPosted by Yoshimasa Niwaon 03/14, 2009图片OpenCV是intel开发的计算机视觉库,例如我们可以用它轻易地实现面部识别。本文介绍如何在iOS中使用OpenCV,包括脚本的编译及一个demo示例程序。上面的转载 2014-11-04 11:10:52 · 402 阅读 · 0 评论 -
C语言位运算详解
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1转载 2014-11-05 11:03:56 · 249 阅读 · 0 评论 -
C语言fread函数了解
fread()函数---- Reads data from a stream.#includesize_t fread( void *buffer, size_t size, size_t count,FILE *stream );从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节转载 2014-11-05 11:24:56 · 578 阅读 · 0 评论 -
c语言操作mysql 简介
用C语言做数据库操作还真不多,一般都选择文件操作来搞定。 最近一个项目需要用到MYSQL,就去看了下mysql之c api. 基本上都是一样的,说白了就是一个应用层的协议。正因为做的机会不多,所以要写下来,免得以后忘记了。 1.首先当然是连接,函数原型如下: C代码 MYSQL * STDCALL mysql_real_connect(MYSQ转载 2014-12-01 17:48:30 · 354 阅读 · 0 评论 -
ImageMagick的安装及使用
目录(?)[-]安装命令行模式编程接口模式最近在使用ImageMagick处理酒店团购图片,写篇博客小小的总结下它的安装及用法。ImageMagick是一套功能强大且免费的图片处理开发包,可以用来读,写和处理多种格式的图片文件,总之很强大就是了,废话不多说了,马上来看看它的安装及用法。1、安装以linux下源码安装为例,首先到点击打开链接上下载最新的ImageM转载 2014-11-07 11:35:42 · 790 阅读 · 0 评论 -
php调用C代码的方法详解
在php程序中需要用到C代码,应该是下面两种情况:1 已有C代码,在php程序中想直接用2 由于php的性能问题,需要用C来实现部分功能针对第一种情况,最合适的方法是用system调用,把现有C代码写成一个独立的程序。参数通过命令行或者标准输入传入,结果从标准输出读出。其次,稍麻烦一点的方法是C代码写成一个daemon,php程序用socket来和它进行通讯。转载 2014-11-07 13:32:16 · 355 阅读 · 0 评论 -
PCM数据基本格式
Android2013-08-06 10:10 139人阅读 评论(0) 收藏 举报PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。 样本大小 数据格式转载 2014-10-21 14:45:17 · 394 阅读 · 0 评论 -
基于 libmad 的简单 MP3 流媒体播放器的实现
转载地址:http://www.ibm.com/developerworks/cn/linux/l-cn-libmadmp3player/index.html1.介绍本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。基本原理是:从 HTTP 服务器获得转载 2014-10-21 14:24:35 · 594 阅读 · 0 评论 -
iOS 通过(lame)将录制音频转换成Mp3
转载请注明出处,保留原帖地址及作者署名.Url:http://blog.csdn.net/ysy441088327/article/details/7392842#replyAuthor:余书懿为了达到 iPhone 与 Android 实现音频互通. 那么Mp3格式的音频文件再好不过了.至于能够转换成Amr 是最好,10秒 的转载 2014-10-21 14:07:14 · 674 阅读 · 0 评论 -
LINUX C获取文件大小
在我们学习生活中经常会遇到问题和困难,就比如说我们在学习Linux时,比如怎样Linux获取文件大小的方法。前几天在工作中需要写一段代码,获取一些视频文件的大小,心想:这还不简单吗?直接用标准C的文件操作函数就OK了。于是写了下面的一段代码来实现:?1234567891011转载 2014-11-02 16:34:00 · 480 阅读 · 0 评论 -
c mp3
首先,我们应该知道mp3文件的格式,这个在百度上应该能找到,我在Google上找到了一篇介绍的比较详细,为了节约篇幅,只截取一段给大家看下吧,我们要修改的是title,作者等信息,这些信息看下mp3文件的格式后会知道他们存在于文件的最后128个字节里,如下所示:二、MP3标签1(放在文件尾部128字节)offset type len name------------------转载 2014-10-21 13:37:02 · 483 阅读 · 0 评论 -
C语言fwrite函数了解
fwrite()函数----write data to a stream原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);注意:这个函数以二进制形式对文件进行操作,不局限于文本文件demo:[cpp] view plain转载 2014-11-05 11:23:11 · 398 阅读 · 0 评论 -
wav与pcm数据
参考下这个WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource InterchangeFileFormat的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。 常见的声音文件主要有两转载 2014-10-21 14:43:45 · 429 阅读 · 0 评论 -
PCM 模拟数据向数字数据编码方法过程
最后形成二进制信息然后在信道上进行传输 采样- 量化- 编码转载 2014-10-21 14:42:09 · 1223 阅读 · 0 评论 -
PCM数据格式
1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22050 次采样, 采转载 2014-10-21 14:41:06 · 410 阅读 · 0 评论 -
libmad学习进阶2----利用libmad将mp3转码成pcm
# include # include # include # include # include "mad.h"#include#include#include#include/** This is perhaps the simplest example use of the MAD high-level API.* Standard input转载 2014-10-21 14:33:06 · 539 阅读 · 0 评论 -
(二)用JAVA编写MP3解码器——帧头信息解码
1.解析帧头 帧头共4字节,从高位到低位这32比特的含义如下:比特数名称内容11sync0x7FF2version1=mpeg1.0, 0=mpeg2.02lay4-lay = layerI, II or III1error protection0=yes, 1=no4bit转载 2014-10-21 14:31:44 · 747 阅读 · 0 评论 -
(二)用JAVA编写MP3解码器——帧头信息解码
1.解析帧头 帧头共4字节,从高位到低位这32比特的含义如下:比特数名称内容11sync0x7FF2version1=mpeg1.0, 0=mpeg2.02lay4-lay = layerI, II or III1error protection0=yes, 1=no4bit转载 2014-10-21 14:33:21 · 564 阅读 · 0 评论 -
memset函数详细说明
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()转载 2014-11-05 12:32:42 · 283 阅读 · 0 评论 -
malloc函数详解
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free(转载 2014-11-05 12:28:24 · 275 阅读 · 0 评论 -
fscant 实例
/* 1013461 506183 1572839 1499551 4327448 2866951 3673105 1206684 511765 2313893 4910692 1088128 876970 527866 1676586 929124 1601964 729983 2680000 14441425请按任意键继续. . .*转载 2014-11-03 21:05:16 · 456 阅读 · 0 评论 -
C文件读写函数介绍(转)
C文件读写函数介绍(转)2010-01-28 10:351.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的转载 2014-11-02 13:37:08 · 311 阅读 · 0 评论 -
poll()函数的使用
poll函数用于监测多个等待事件,若事件未发生,进程睡眠,放弃CPU控制权,若监测的任何一个事件发生,poll将唤醒睡眠的进程,并判断是什么等待事件发生,执行相应的操作。poll函数退出后,struct pollfd变量的所有值被清零,需要重新设置。示例是使用poll函数来监测按键的输入------------------------------------------------转载 2014-11-09 20:07:17 · 940 阅读 · 0 评论