视频编码器评估与参数优化
来源:互联网 发布:windows如何打开pages 编辑:程序博客网 时间:2024/06/06 10:42
视频编码器评估与参数优化是个比较麻烦的问题,主要原因是:编码器种类多,输入的参数繁多,参数的相互影响非线性,深入理解其实现需要投入巨大的精力或者不可能(对于商业产品而言)。而另一方面,评估和选择编码器、针对特定的目标选择最优的编码参数组合对于视频服务商——比如视频网站来说,是一个现实的需要。有感于或者苦恼于如何选择最优的方案,笔者通过对多目标优化方法的尝试进行了一定的探索,之所以选择这种方法,主要原因是它比较“暴力”和“傻瓜”,并不需要过多的纠缠参数的涵义f‘(*∩_∩*)′。
下文仅仅是一个初步的方案可行性论证(发布此文的一个月前),所有展示的数据为实际运行结果,但是只有参考价值或者不完整,仅供交流思路使用。
因涉及到工作的内容,不打算更新以展示最新的进展——好吧,由于中间各种事情打岔的关系,其实没啥进展.....................╮( ̄﹏ ̄)╭
1.测试视频资源
视频序列
说明
码率kb/s
帧数
FPS 帧/秒
分辨率
Cartoon
少儿动漫
2336
746
25
720x576 (yuv420p)
Sport-Soccer
足球世界杯预选赛
2553
713
25
720x576 (yuv420p)
Sport-NBA
NBA篮球赛
2394
738
25
720x576 (yuv420p)
Course
百家讲坛
2513
711
25
720x576 (yuv420p)
Scenic
风景片《大黄山》
2804
710
25
720x576 (yuv420p)
Documentary
历史纪录片《燃烧的太平洋》
8291
730
25
1920x1080 (yuv420p)
2.编码器:
x264-snapshot-20141012-2245
3.测试方法
基于分布式计算的多目标优化
4.评估方法
4.1目标
1. 文件压缩率
2. 处理速度:文件大小 / 编转码时长
3. 视频质量:SSIM
4.2编码参数
参数
说明
取值范围
deblock
[-3, 3]
crf
[0, 51]
trellis
[0, 2]
nr
[0, 1000]
subq
[0, 6]
mbd
[0, 2]
pass
[0, 2]
coder
[ "vlc", "ac", "raw", "rle", "deflate", ]
me_method
[ "zero", "full", "epzs", "esa", "tesa", "dia", "log", "phods", "x1", "hex", "umh", "iter", ]
Partitions
[ "parti4x4", "parti8x8", "partp4x4", "partp8x8",]
Etc…..
5.测试结果
5.1 2目标(视频质量&文件压缩)
曲线拟合结果:
对应的编码参数:
Cartoon视频部分解:
5.2 2目标(视频质量&编码速度)
5.3 3目标(视频质量&编码速度&文件压缩率)
5.4最优解集收敛速度(convergence rate)
6.简要结论
1. X264编码器对不同类型的视频内容有明显不同的最优解集。
a) 在视频质量、视频压缩率、编码速度三项指标的多种组合上,色彩不丰富、变化幅度小的视频(如动画),帕累托前端的数据要全面优于色彩丰富、变化剧烈的视频(如体育赛事)。这也说明,在强调最优策略的场合,针对不同视频类型进行编码是有价值和必要性的。
b) 如何对视频类型进行区分,需要更多的工作要做。如:更大的样本。
2. 多个编码器的比较和评估同样可以基于对多个编码器的帕累托前端的比较。如:对intel mdk进行求解。
3. 在实验过程中,我们将编码器视作“黑盒子”或者是一个非线性的未知方程组,进行最优求解。
a) 最终的pareto front可以拟合为一个线性方程:
b) 最优解集的规律性有待进一步挖掘
- 视频编码器评估与参数优化
- 用数字信号处理器优化视频编码器
- 264编码器的DSP移植与优化
- Linux 音视频技术] 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- Linux 音视频技术] 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- H.264 视频编码器的研究与分析
- Linux服务器性能评估与优化【转载】
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- [转]Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- Linux服务器性能评估与优化
- hdu3976[Electric resistance] hdu5006[Resistance] hdu4870[Rating] 高斯消元
- 数据结构-快速排序 java实现
- UML中的九种图
- Python文件右键无IDLE打开项解决办法
- PHP使用FTP转移文件夹以及子文件夹
- 视频编码器评估与参数优化
- 使用swig实现C++的python扩展功能
- POJ 1088滑雪 (记忆化DP)题解
- PHP获取指定日期所在月的第一天和最后一天
- Gas Station(leetcode)
- php导入excel表格生成数组
- 再谈 X-UA-Compatible 兼容模式
- 《与曹仁超对话》——MILK
- 直接拿来用!最火的Android开源项目(一)