随笔分类 - 音视频编解码
摘要:本文主要收集本文作者收藏的资源链接,以备查用。本文会持续更新!1. 对于从事codec研发,尤其是语音和音频codec研发的人,都知道的ITU-3GP组织。这里汇集了所有与ITU-3GP codec相关的资源,主要包括标准文档, 当然还有各个标准的参考代码。1.1 http://www.itu.int/rec/T-REC-G/en ITU-G系列的资源,例如G722.2的ARM-WB等。这个网站的代码版本很多都是05年之前的。1.2 http://www.3gpp.org/DynaReport/26-series.htm。包括了最新的ITU-G系列常见资源和诸多的代码。1.3http://w.
阅读全文
摘要:在传统的图像,视频的后处理阶段,一般会涉及到图像大小的缩放问题。这样的操作是为了适配不同屏幕分辨率的大小。例如,对于高档相机拍摄的照片,一般都很大,而要在普通显示器上显示,则要在解码图像数据之后再做缩小操作才能显示到屏幕上。对于手机屏幕,更是如此。那么,能否在图像解码的过程中实现图片的缩小?答案是肯定的。网上开源的jpeg项目早就实现了频域下采样技术。美图秀秀,QQlive等多款桌面图片应用软件也采用了这项技术,并宣称对大图的加载速度快了好几倍。不过,QQlive居然直接使用了这个库! 通过在视频解码中使用频域下采样技术,我们在400M主频的手机上实现了720p的流畅解码,在4...
阅读全文
摘要:这部分主要是引入第三方库,还有就去去除无关的测试代码。7. 引入第三方库 必须引入的第三方库为zdll.lib,这个库在网上可以下载到,如若不加入这个库,很多的函数将链接不到。还有在avcodec文件夹下面以lib打头的文件都是为引入第三方库而进行的接口封装,以适应ffmpeg去调用的相关代码。最重要的例如libx264,libmp3lame.lib libfdk_aac等。我的x264采用我自己用vs2008编译的版本,其它的库也基本上采用vs的版本。暂时不想加入的库,例如libspeex等可以把这些代码移出。8. 去除冗余和暂时不相关的代码。 之前我们把所有的c文件都添加进来,其实有些..
阅读全文
摘要:5. 排除编译错误。 这部分主要是修改C99的语法,常见的不兼容语法如下:5.1 例如在文件av_codec_4xm.c最后的结构体初始化代码如下:AVCodec ff_fourxm_decoder = { .name = "4xm", .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_4XM, .priv_data_size = sizeof(FourXContext), .init = decode_init, .close ...
阅读全文
摘要:前面我们已经把文件重命名了,准备好了代码之后就是把代码添加到vs2008开发环境中来。3. 创建工程添加文件。 创建新的空的控制台工程,把所有的文件都添加进来。有几个文件夹下面的文件不用添加,主要有compat,libavdevice,tools。要注意的是子目录x86下面的c文件也需要添加进来。 上图之中test文件夹里面有些文件是自己添加的,它们是config.h, ffmpeg_init_av_pix_fmt_descriptor.c,g_var_func_init.c 添加完文件之后,不要编译,因为编译会占用较长时间,而且会有成千上万的错误。4. 完善config.h文件 ...
阅读全文
摘要:做音视频编解码的人都知道ffmpeg。然而,要想在windows上调试ffmpeg却不是一件容易的事情。之前也曾经把x264的代码移植到vs2008上面,具体可以参见我前面的文章。最近终于把ffmpeg的最新代码完全移植到vs2008环境中来。在移植过程中深深的感觉到codec的多样性,我虽然在codec领域工作了很多年,但是ffmpeg里面大多数codec甚至连名字都没有见过。下面把移植过程中需要注意的问题描述一下。首先,必须要有坚强的毅力和决心。ffmpeg代码量超级大,其总共有3千多个文件,将近100w行代码。移植ffmpeg是一项体力很繁重的活,所以,如果你决定要做,就不要中途放弃。其
阅读全文
摘要:这里讲的是如何把汇编语言添加进来,而不是跑C代码。
阅读全文
摘要:最新的x264已经没有提供windows版的可编译工程,微软的VS编程开发工具无疑是最好的调试工具,要把它移植到vs开发环境下面有很多的工作要做。
阅读全文
摘要:经过1个月时间的优化,AMR-WB解码性能总体提高了近10倍。1. 从ITU官方网站下载代码,在ADS1.2上调试通过。对于测试码流为23.85kbps的向量tst_m8.cod,在ARM926EJS平台上,性能为105MIPS,156MCPS。2. 根据profile的测试结果,占时间最大的是那些基本算术运算的操作。用ARMv5的内联汇编替换掉以后,性能大概为52MIPS, 70MCPS。3. 这时占时间的函数 Filt_7k Syn_filt_32 Filt_6k_7k Pred_lt4 Syn_filt Oversamp_16k 这几个函数都需要自己写汇编,只有汇编才能体现优化思路,C.
阅读全文
浙公网安备 33010602011771号