视频编码器评測系统:VideoCodecRank
视频编码器领域一直有个比較复杂的问题:mpeg2、divx、xvid、mpeg4、vp8、vp9、x264、openh264、x265等等这一系列编码器究竟哪个好?而对于同一种视频编码器,又包括了各种各样的參数配置,这些配置对视频编码器的影响又是如何的?为了研究这个问题,我和师弟们在课余时间开发了一个软件系统,专门用于评价视频编码器的性能。
本文记录自己做的视频编码器性能评价的系统VideoCodecRank。本系统能够通过调整几种不同的维度的參数取值——视频内容、分辨率、编码器预设、码率来对视频编码器的性能进行评价和对照。对于每一个编码器,本系统能够遍历上述几种參数进行编码,而且记录编码视频图像质量和编码速度。通过本系统,能够全方位的对照视频编码器在各种条件下性能的优劣。
在此还要感谢二位师弟的參与。眼下在大家的合作下该系统基本功能刚开发完毕,下一步打算继续測试和完好。
系统地址:http://www.velab.com.cn/vcr/
眼下的状态
眼下本系统计算了下列编码器:
254
576
1296
0.05
288
508
1152
2592
0.075
432
763
1728
3888
0.1
576
1017
2304
5184
0.15
864
1526
3456
7776
0.2
1152
2035
4608
10368
评价參数
评价參数用于在编码完毕后统计编码的质量情况。评价參数能够分为两类:质量评价參数和速度评价參数。
质量评价參数
编码质量评价主要通过全參考视频质量评价算法实现。全參考视频质量评价算法通过比較编码前原始视频与编解码后受损视频获得视频质量的评价结果。
最常见的全參考视频质量评价模型为PSNR和SSIM。
PSNR
PSNR(峰值信噪比)是使用最为广泛的视频质量评价方法。它的计算公式为:
当中L为图像灰度值范围。对于8bit位深的图像来说L=2^8-1=255;M*N图像块的MSE(均方误差)计算公式为:
PSNR取值通常在20-40之间。取值越大代表图像质量越好。虽然PSNR计算简单。可是因为没有考虑到人类视觉感知特性。所以其评价结果与主观感受往往相差较大。
SSIM
SSIM(结构类似度)是zhou wang等人提出的一种常见的视频质量评价方法。该方法考虑了人类视觉感知特性,综合考虑了亮度、对照度以及结构的影响。
它的计算公式例如以下所看到的。
当中l(x,y)为亮度比較函数。c(x,y)为对照度比較函数。s(x,y) 为结构比較函数。这三个函数的具体计算方法能够參考相关文献。
SSIM取值在0-1之间,取值越大代表图像质量越好。
SSIM相对于PSNR来说更加符合人眼的主观感受,因此也是一种使用非常广泛的视频质量评价方法。
速度评价參数
编码速度评价主要通过统计编码和解码的耗时(以毫秒为单位)来实现。
系统执行原理
本系统会依据输入的配置信息,遍历上文介绍的几种输入參数值,组合成不同的命令进行编码和评价工作。
系统開始执行后,会依照顺序执行以下几步工作:
(1) 对于每一个输入的视频測试序列,对它的尺寸进行缩放,生成一系列不同分辨率的视频序列。
(2) 对于每种分辨率的原始视频序列,选择不同的编码器准备编码。
(3) 对于每种编码器,设置不同的码率进行编码,生成码流文件。随后解码生成的码流文件。得到受损的视频序列。
(4) 对于每一个受损视频序列。使用不同的视频质量评价方法进行质量评价,得到质量分数。
上述逻辑下图所看到的。
从图中能够看出本系统遍历參数的顺序例如以下:
视频内容-->分辨率-->编码器-->码率-->客观质量评价方法
当系统完毕了一次客观质量评价算的计算之后,就会生成一条保存了当前实验參数的记录,并将该记录存储到数据库中。
站点说明
VideoCodecRank站点的结构例如以下图所看到的。整个站点除了首页之外包括了“结果集”、“编码器”、“视频序列”、“系统配置”、“关于”几个页面。
这些页面之间的关系例如以下图所看到的。
首页
首页中包括了一张编码器的综合比較图表。当中蓝色横条代表了编码图像质量,而黄色横条代表了编码时间。
能够拖动图表上方的滑动条调整以下几种參数选择不同的数据对编码器的性能进行排序。
速度质量权重:眼下仅仅支持时间/质量权重设置为1或0。质量权重为1则依照编码器输出视频质量进行排序,时间权重为1则依照编码器消耗时间进行排序。
分辨率:该选项能够选择输入视频的尺寸。
码率:该选项能够选择输入视频的码率。注意码率是依照BPP(Bit Per Pixel,每像素比特数)为单位的。
内容复杂度:该选项能够选择输入測试视频序列。注意输入的视频内容是依照时间复杂度TI或空间复杂度SI(这两个指标均取自于ITU BT.1788标准)进行排序的,以方便选择。
首页的内容例如以下所看到的。
结果集页面
结果集页面中包括了系统中全部客观视频质量评价的结果。每一条实验记录包括了例如以下信息:
编码器
视频序列
分辨率
每像素比特数
编码时间
解码时间
视频质量评价算法
客观质量
主观质量
结果集页面的内容例如以下图所看到的。能够通过在下拉框中调整“编码器”,“视频序列”。“分辨率”。“每像素比特数”。“客观质量评价算法”几个參数来筛选符合特定条件的结果。
编码器页面
编码器页面中包括了系统中全部參与评价的编码器(注:对于包括多种预设的编码器,每种预设都算作一种编码器)。当中每一条记录包括了例如以下信息:
编码器名称
所属标准
厂商
版本号
编码器页面的内容例如以下图所看到的。单击编码器的名称能够进入编码器具体信息页面。
编码器具体信息页面
编码器具体信息页面包括了3个部分:编码器简单介绍、编码器具体质量和编码器时间-质量权衡图。
编码器简单介绍部分内容例如以下所看到的。
能够看出该列表列出了编码器的基本信息。
编码器具体质量部分的内容例如以下图所看到的。
能够通过选择參数(编码器、视频序列、分辨率、码率),列出特定条件下測试视频序列每一帧画面的图像质量信息(客观算法PSNR、SSIM等)。
图表中横坐标为视频序列的帧序号,纵坐标为视频客观质量评价算法的值。
编码器时间-质量权衡图的内容例如以下图所看到的。时间/质量权衡图中的每一个点代表了一个编码器。图表横坐标为编码时间,纵坐标为编码图像质量。由此可知,位于图表左边的编码器速度比較快,而位于图表上边的编码器图像质量比較好。“又快又好”的编码器都位于图表的左上方。
该图表能够通过选择參数(视频序列、码率、分辨率、客观评价方法),列出特定条件下測试视频编码器的耗时信息和图像质量信息。
视频序列页面
视频序列页面中列表显示了系统中全部參与測试的原始视频序列信息。当中每一条记录包括例如以下信息:
视频序列名称
原始分辨率
像素採样格式
帧率
帧数
视频序列页面的内容例如以下图所看到的。单击视频序列的名称能够进入视频序列具体信息页面。
视频序列具体信息页面
视频序列具体信息页面包括了3项内容:视频序列预览、视频序列具体特性以及视频序列时间/空间复杂度对照图。
视频序列预览部分内容例如以下所看到的。
能够通过该功能预览測试视频的内容。
视频序列具体特性部分内容例如以下图所看到的。
能够通过该功能查看视频中每一帧图像的TI(Temporal perceptual Information)信息和SI(Spatial perceptual Information)信息。TI和SI两个指标取自于ITU BT.1788标准。
TI越大,代表视频运动剧烈(时间上变化大)。SI越大。代表视频内容复杂(空间上纹理多)。图表中横坐标为视频序列的帧序号,纵坐标为视频特性值。
视频序列时间/空间复杂度对照图例如以下所看到的。图中每一个点代表一个视频序列,图表横坐标为SI,纵坐标为TI。由此可知位于图表上方的视频序列运动比較剧烈,而位于图表右边的视频序列内容纹理比較复杂。最为简单的视频序列位于图表的右上角,最为简单的视频序列位于图表的左下角。
系统配置页面
系统配置页面的内容例如以下图所看到的。该页面中列出了系统配置的參数信息。
比如显示了输入视频会被拉伸为哪几种分辨率,编码时候会选择哪些BPP,客观质量评价算法有哪些等等。
雷霄骅
leixiaohua1020@126.com
http://blog.csdn.net/leixiaohua1020
视频编码器评測系统:VideoCodecRank的更多相关文章
- 卓尼斯ZT-180评測
卓尼斯ZT-180评測 ——正在出差途中,用10”上网本发帖,没有拍照,且写得冲忙,不妥之处见谅. 一.採购 1.因外出旅游,不想带那台14"笔记本,所以想买一台平板电脑.当时,选择的 ...
- HP Vertica Analytics Platform 评測
1.vertica概念 面向数据分析的数据仓库系统解决方式 2.vertica关键特性 Ø 标准的SQL接口:能够利用已有的BI.ETL.Hadoop/MapReduce和OLTP环境 Ø 高可用 ...
- iPad Air 2全然评測:可怕的三核CPU、六核GPU
在了解了三核心A8X的基本情况后.我们再来通过測试数据,全面地了解一下iPad Air 2的性能表现,包含CPU.GPU.存储.电池.屏幕.摄像头.导航等等. [CPU性能測试:三核太可怕了] 移动处 ...
- 搜狐云景client工具评測之WordPress的搭建
搜狐云景是搜狐推出的一款PaaS产品,眼下还处在公測阶段,拿到邀请码后试用了一下,感觉还不错. 搜狐云景提供了四种方式部署应用,感觉应该能够满足各种口味的码农:1. zip包的形式在网页上传并部署 ...
- 视频编码器评测系统:VideoCodecRank
视频编码器领域一直有个比较复杂的问题:mpeg2.divx.xvid.mpeg4.vp8.vp9.x264.openh264.x265等等这一系列编码器到底哪个好?而对于同一种视频编码器,又包括了各种 ...
- 程序猿常识--OJ系统和ACM测试考试大全
OJ它是Online Judge缩写系统,来在线检測程序源码的正确性. 著名的OJ有RQNOJ.URAL等. 国内著名的题库有北京大学题库.浙江大学题库等. 国外的题库包含乌拉尔大学.瓦拉杜利德大学题 ...
- 面试算法爱好者书籍/OJ推荐
面试算法爱好者书籍/OJ推荐 这个书单也基本适用于准备面试. 一.教科书 基本上一般的算法课本介绍的范围都不会超出算法导论和算法引论的范围.读完这两本书,其它的算法课本大致翻翻也就知道是什么货色了. ...
- 管理支撑办公系统技术架构选型对照讨论(J2EE与SOA对照)
续:管理支撑办公系统技术架构选型及相关技术应用范围.方法分析 M域办公系统改造.整合涉及到OA.业务流程.部室信息站点.部室专业管理等系统和信息共享等新需求,从信息化视角来看,内容多并且杂,这里核心业 ...
- 趋势科技PC-cillin2015,你来公測我发奖!
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
随机推荐
- eXtremeDB相关问题解答(3)
> 1. Could our database support multi-database under one single instance? > > 2. ...
- Extjs 4.2 设置buttontext为中文
能够在Ext.QuickTips.init();后增加例如以下代码: Ext.MessageBox.buttonText = { ok : "确定", cancel : " ...
- HTTP请求具体解释
1. HTTP请求格式 做过Socket编程的人都知道,当我们设计一个通信协议时,"消息头/消息体"的切割方式是非经常常使用的.消息头告诉对方这个消息是干什么的,消息体告诉对方怎么 ...
- ajax起步 (二)
Ajax的关键在于XMLHttpRequest对象,如下基本用法: <!DOCTYPE html> <html> <head> <meta charset=& ...
- BZOJ3336: Uva10572 Black and White(插头Dp)
解题思路: 分类讨论即可. 代码(懒得删Debug了): #include<map> #include<cstdio> #include<vector> #incl ...
- AJAX与XMLHttpRequest
XMLHttpRequest: 中文可以解释为可扩展超文本传输请求.Xml可扩展标记语言,Http超文本传输协议,Request请求.XMLHttpRequest对象可以在不向服务器提交整个页面的情况 ...
- wordpress+wampserver
听说过wordpress和joomla这样的简单建站的工具,尽管是PHP,可是看过同事搭建的公司站点.效果真心不错.于是手痒痒尝试一下.由于是搭着玩儿.所以用wordpress+wampserver( ...
- Harry Potter and the Goblet of Fire
书名:Harry Potter and the Goblet of Fire 作者:J.K. Rowling 篇幅: 752页 蓝思值:880L 用时: 17天 工具: 有道词典 [透析成果 ...
- 推断一个java文件和邮箱格式是否合法
import java.util.Scanner; public class StringTest { public static void main(String[] args) { int bac ...
- Dcloud课程9 天气小助手如何实现
Dcloud课程9 天气小助手如何实现 一.总结 一句话总结:调用天气的接口,如果网上找不到好用的,而如果仅仅是测试,那就自己写一个简单的接口就可以了. 1.dcloud中的css样式怎么调? 和网页 ...