前面说道FFmpeg在整个视频解码的过程中存在很大一个瓶颈,就是做色彩空间转换时。看源代码目录结构便知:libavcodecarm下有大量音视频编解码的汇编代码。而libswscale下却没有。
事实上也确实如此,在使用了PINK NOISE的YUV2RGB后性能提升非常明显。(目前项目需要,只移植了YUV420toRGB565,在移动设备上实时视频也足够了。
如需软解码回放高清画质,PINK NOISE的库中,yuv420 422,444 to 565 888 8888 都有。
这是我移植的补丁,是在FFmpeg 1.0版本基础上导出的。
下载:ARM-assembler-optimization-for-libswscale
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: 适用于FFmpeg 1.0的ARM汇编优化yuv2rgb补丁
使用以后会产生crash….
欢迎提供log文件改进
不过在我们的生产环境下一切正常
这个要怎么加进去啊
ffmpeg1.0 的源码上,可以直接打这个补丁
其他版本的,可以按补丁内容添加
1.2同样可以使用
我用的是neon, 相应的Makefile是不是改成
NEON-OBJS += arm/yuv2rgb_arm.o
arm/yuv2rgb16tab.o
arm/yuv420rgb565.o
不用改 因为这个汇编不是NEON的
好像更容易crash
高版本的ffmpeg补丁打不上啊
这是肯定的,现在大家都在用2.0.1了么?
请教怎么把yuv420rgb565换成8888,哪些地方需要修改
http://wss.co.uk/pinknoise/yuv2rgb/里的v.0.03版本中的test.c是不是还不全呢
他这个不能直接用在ffmpeg的项目里
可以参考这个:
https://code.google.com/p/dolphin-player/source/browse/#git%2Fp%2Fjni%2Fyuv2rgb%2Fsrc%253Fstate%253Dclosed
看着dolphin-player里用到了这部分yuv2rgb了,我想的是ffmpeg里加入8888那部分,我最终要得到的rgb8888格式
yuv2rgbX.s这个文件中的dither设置0、1、2、3是对应的色深吗?色深多少位?
yuv420rgb8888.S已经成功加入到最新版本的ffmpeg中了,不过出现了一个问题,播放视频,画面呈蓝色调
很好的东西,请问在ffmpeg2.1版本下如何使用这个补丁?