文章分类 - 多媒体基础
摘要:转自:http://www.cppblog.com/fwxjj/archive/2009/05/27/85918.htmlPCM编码(原始数字音频信号流)类型:Audio制定者:ITU-T所需频宽:1411.2 Kbps特性:音源信息完整,但冗余度过大优点:音源信息保存完整,音质好缺点:信息量大,体积大,冗余度过大应用领域:voip版税方式:Free备注:在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保
        阅读全文
                
摘要:PSD(*.PSD) PSD格式是Adobe Photoshop软件自身的格式,这种格式可以存储Photoshop中所有的图层,通道、参考线、注解和颜色模式等信息。在保存图像时,若图像中包含有层,则一般都用Photoshop(PSD)格式保存。保存后的图像将不具有任何图层。PSD格式在保存时会将文件压缩,以减少占用磁盘空间,但PSD格式所包含图像数据信息较多(如图层、通道、剪辑路径、参考线等),因此比其他格式的图像文件还是要大得多。由于PSD文件保留所有原图像数据信息,因而修改起来较为方便,大多数排版软件不支持PSD格式的文件,必须到图像处理完以后,再转换为其他占用空间小而且存储质量好的文件格
        阅读全文
                
摘要:1. wav转MP3示例程序代码:/*gcc -I /usr/include/lame/ lame_test.c -lmp3lame -o lame_test -lm*/#include #include #include #define INBUFSIZE 4096#define MP3BUFSIZE (int) (1.25 * INBUFSIZE) + 7200int encode(char* inPath, char* outPath) { int status = 0; lame_global_flags* gfp;int ret_code;FILE* infp;FILE* outfp
        阅读全文
                
摘要:这里利用FAAC来实现AAC编码。另外,WAV的数据段是PCM,代码会出现很多PCM缩写。1 下载安装 FAAC这里的安装过程是在 Mac 和 Linux 上实现的,Windows可以类似参考。wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gztar zxvf faac-1.28.tar.gzcd faac-1.28./configuremakesudo make install如果才用默认的 configure 中的 prefix path,那么安装后的 lib 和 .h 文件分别在/usr/local/lib和/usr/l
        阅读全文
                
摘要:首先FAAC和FAAD的下载地址在前面的博文里有。FAAC和FAAD有win32的编译工程,相对其他开源项目来说,win32的编译很简单了FAAC,FAAD的编码和解码也封装的非常好,使用上很简单。打开FAAC编码器m_faacHandle = faacEncOpen(isamplerate, ichannels, &m_uSampleInput, &m_uOutputBytes);if( 0 == m_faacHandle )return false ;faacEncConfigurationPtr faacCfg;faacCfg = faacEncGetCurrentCon
        阅读全文
                
摘要:我的程序是根据faac 1.28 库中的frontend目录下的faac的例子改的。下面是程序的运行流程:首先调用faacEncHandle hEncoder=faacEncOpen(samplerate,channels,& samplesInput,&maxBytesOutput);1.打开aac编码引擎,创建aac编码句柄。参数 samplerate 为要编码的音频pcm流的采样率,channels为要编码的音频pcm流的的频道数(原有的例子程序是从wav文件中读出这些信息),sampleInput在编码时要用到,意思是每次要编码的采样数,参数maxBytesOutput
        阅读全文
                
摘要:gdImagePtrim;intback,border,blue;intxsize,ysize;charstr[5];intsize;char*ptr;xsize=60;ysize=20;sprintf(str,"%04d",1234);im=gdImageCreate(xsize,ysize);back=gdImageColorAllocate(im,255,255,255);border=gdImageColorAllocate(im,0,0,0);blue=gdImageColorAllocate(im,30,130,211);gdImageFilledRectang
        阅读全文
                
摘要:我刚接触流媒体不久, 现在遇到一个非常奇怪的问题,向各位大侠请假,请你们指点。 问题是这样的 用一个 VLC(流媒体客户端) 去请求流媒体服务器上的数据, 但是获得的数据播放速度明显快于1倍速,大概是 timestamp 不对, 不知道是服务器的错误,还是客户端解码时出错, 总感觉服务器那边有问题, 由于服务器端是客户端提供的,客户说是我们的问题, 我还不知道如何证明是谁的错。A:RFC3984 规定采用 90000 Hz 的时钟,因此如果编码帧频是 30,那么时间戳间隔就该是 90000 / 30 = 3000,根据抓包来看,似乎时间戳间隔的确是 3000。时间戳的 间隔不固定,比如有的时间
        阅读全文
                
摘要:ffmpeg中的时间视频的显示和存放原理对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的:PTS: 1 4 2 3DTS: 1 2 3 4Stream: I P B B通常PTS和DTS只有在流中有B帧的时候会不同。DTS和PTS音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如
        阅读全文
                
摘要:目录(?)[-]图像容器Mat访问图像中的像素高效的方法C操作符安全的方法迭代器iterator更慢的方法动态地址计算减小颜色空间 color space reductionLUT Look up table算法计时实验结果今天百度搜资料还搜到了自己的。。。《访问图像中每个像素的值》,这是之前写的了,用的也是2.0的风格IplImage*格式,不太适用后来Mat的格式,特此重写一篇。以下例子源自《The OpenCV Tutorials --Release 2.4.2》2.2 How to scan images, lookup tables and time measurement with
        阅读全文
                
摘要:图像旋转原理和旋转公式http://blog.csdn.net/wangyadong/article/details/3549284如果果一个点(x1,y1)旋转到(x2,y2),对应的角度旋转从θ1到θ1+θ2sinθ1=y1/sqrt(x1*x1+ y1*y1) cosθ1=x1/sqrt(x1*x1+ y1*y1) sin(θ1+θ2)=sin(θ1)*cos(θ2)+cos(θ1)*sin(θ2)=y2/sqrt(x2*x2+y2*y2)cos(θ1+θ2)=cos(θ1)*cos(θ2)-sin(θ1)*sin(θ2)=x2/sqrt(x2*x2+y2*y2)根据上述推到出y2=..
        阅读全文
                
摘要:转自:http://blog.csdn.net/xiaowei_cqu/article/details/7616044目录(?)[-]几何变换空间变换OpenCV中的图像变换函数实践图像旋转变换原尺寸实践图像旋转变换保留原图内容放大尺寸实践图像旋转变换保留原图内容放大尺寸-2实践图像放射变换通过三点确定变换矩阵几何变换几何变换可以看成图像中物体(或像素)空间位置改变,或者说是像素的移动。几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定为整数坐标。这时就需要灰度级差值将映射的新坐标匹配到输出像素之间。最简单的插值方法是最近邻插
        阅读全文
                
摘要:/*** Choose the Huffman table that will encode ix[begin..end] with* the fewest bits.* Note: This code contains knowledge about the sizes and characteristics* of the Huffman tables as defined in the IS (Table B.7), and will not work* with any arbitrary tables.**选取合适的huffman table.** ix[samp_per_frame
        阅读全文
                
摘要:一、l3psy.c简单介绍只要做过心理声学模型的,对l3psy.c这个文件应该不陌生,该文件由voidL3_psycho_initialise(void)voidL3_psycho_analize(intchannel,short*buffer,shortsavebuf[1344],floatsnr32[32],doubleratio_d[21],doubleratio_ds[12][3],double*pe,gr_info*cod_info )voidL3para_read(void)三个函数组成。L3_psycho_initialise负责初始化心里声学模型中的一些常数据.L3_psych
        阅读全文
                
摘要:发了狠了,买过一个扳子。多频带滤波器移植// ------------------------------ main.c ------------------------------#include#include#include#include"l3subband.h"#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong//L3_window_subband(&buffer_window[channel], &win_que[channel][0], channel);
        阅读全文
                
摘要:静音门槛曲线人的耳朵对声音的感知能力是有限的,在非常安静的环境下,也许可以听到针掉在地上的声音。但是仍然有许多声音是耳朵无法感知的,这并不是说这些声音就不存在,它们是存在的,只是我们的耳朵无法感知而已。根据人耳的特性,实验人员经过测试绘制出了下表的曲线。横轴是频率f,纵轴是临界声压Tq(f),该曲线描述的人耳朵对不同频率的声音的感知能力.(这里解释一下什么是声压sound pressure level (SPL)用来描述声音对人耳产生的压力,是一个评判声音刺激人耳的标准, SPL越大说明需要的刺激越高)Tq(f)的值越大,说明在该频率下的声音越难被人感知,只有在f频率下的声压A(f)满足A(f
        阅读全文
                
摘要:Table 3-B.7. Huffman codes for Layer IIIHuffman code table for quadruples (A)Value hlen hcod00001100014010100104010000115001010100401100101600010101105001000111600010010004011110015000111010500110101160000001100500111110160000101110600001111116000001Huffman code table for quadruples (B)Value hlen hc
        阅读全文
                
摘要:如何计算一个granule所占的average available bits及我所提出的疑问所谓available bits也就是真实的有用的音频数据,最后会被解码的数据,或者也可以说它是main_data数据,是由big_value和count1组成的.罗嗦一堆就是说明available bits是真正的被解码的数据,是不包括side_info的.计算方式为The average number of bits per granule is calculated from the frame size.The bitrate 64 kb/second is used as an example
        阅读全文
                
摘要:在量化的时候发现max_bits重复计算了4次。将①提到外部②的位置,每个Frame只需要计算一次就可以了,不必重复计算。max_bits = mean_bits / config.wave.channels; -----②/* */for( gr=2; gr--; ) {for( ch=config.wave.channels; ch--; ) { cod_info = (gr_info *)&(side_info->gr[gr].ch[ch]); /* calculation of number of available bit( per granule )*计算每个颗粒可用
        阅读全文
                
摘要:http://blog.csdn.net/sshcx/article/details/1651616FFT原理及实现(Radix-2)哈!经过连续几个晚上的奋战,终于弄懂了FFT推导过程及实现!HappyJ基2 FFT总的思想是将输入信号对半分割,再对半分割,再再对半分割(以下省略10000个再再...J)直至分割到2点.两点DFT简化假设输入为x[0],x[1];输出为X[0],X[1].伪代码如下:// ------------------------------------------------------------------#defineN2#definePI3.1415926/
        阅读全文
                
                    
                
浙公网安备 33010602011771号