视频编码器评测系统: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的更多相关文章
- JavaWeb项目:在线评测系统
此项目为本人的Java大作业. 项目文件和相关资源已上传到本人的GitHub 一.项目概况 1.1设计内容 一个在线评测系统,分用户和管理员两种身份.用户能够通过注册登录,参加比赛,最后实时得到比赛结 ...
- cena评测系统:自定义校验器(自定义评测插件编写)
Cena评测系统,最受欢迎的信息学竞赛离线评测系统. 它是开放源程序的信息学竞赛评测系统,能满足大多数程序设计竞赛的测评需求. 特色功能: 通过局域网自动收取选手程序. 高效率的数据文件配置工具. 自 ...
- 开源的在线评测系统——Vakuum
项目地址 http://code.google.com/p/vakuum-oj/ https://github.com/BYVoid/vakuum 简介 Vakuum是一个基于Linux+PHP的在线 ...
- CCSUOJ评测系统——第四次scrum冲刺
1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 刘洋江 薛思汝 2.最终成果及其代码仓库链接 CCSU评测系统 代码仓库 3.评测系统功能 用户注册 用户可选题目进行提交 用户做题结果 排名功能 ...
- CCSUOJ评测系统——第三次scrum冲刺
1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 刘洋江 薛思汝 2.个人在小组第三次冲刺的任务及其完成情况描述. 本人在小组第三次冲刺的任务是负责代码的编写,其他人提需求和改进,代码是采用Git ...
- CCSUOJ评测系统
队名: BUGG 团队信息与分工: 开发: 周斌 B20150304221 舒 溢 B20150304209 测试: 许嘉荣 B20150304213 唐 浩 B20150304316 Product ...
- 2017.9.29 web网上答题及其自动评测系统
1. 设计计一个网上答题及其自动评测系统,首先是试题页面的设计及其解答的提交, 其次是当提交解答之后,系统自动评阅并给出结果. 分析:需要两个jsp页面:一个是提交信息的页面,另一个是获取提交信息的页 ...
- 2019 计蒜之道 复赛 B. 个性化评测系统 (模拟,实现,暴搜)
24.02% 1000ms 262144K "因材施教"的教育方式自古有之,互联网时代,要实现真正意义上的个性化教育,离不开大数据技术的扶持.VIPKID 英语 2020 多万学员 ...
- CCF CSP认证考试在线评测系统
关于 CCF CSP 认证考试在线评测系统 CCF CSP 认证考试简介 CCF 是中国计算机学会的简称.CCF 计算机软件能力认证(简称 CCF CSP 认证考试)是 CCF 于 2014 年推出, ...
随机推荐
- javascript的基础(2)--数据类型介绍
1. number数据类型 所有的数字都是Number数据类型 利用typeof运算符可以返回当前数据的数据类型 特殊值:NaN not a number 不是一个数字 注意 :小数的计算可能产生丢失 ...
- [NOIp 2015]斗地主
Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3& ...
- [APIO2016]划艇
题目描述 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着 NNN 个划艇学校,编号依次为 111 到 NNN.每个学校都拥有若干艘划艇.同一所学校的所有划艇颜色相同,不同的学校的划艇 ...
- 【BZOJ1060】【ZJOI2007】时态同步
Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板 ...
- bzoj 4180: 字符串计数
Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...
- 51 nod 1055 最长等差数列(dp)
1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB 分值: 80 难度:5级算法题 N个不同的正整数,找出由这些数组成的最长的等差数列. 例如:1 3 5 6 8 9 ...
- fatal error LNK1104: 无法打开文件“lua51.lib”
今天学习C++与Lua通信,遇到了问题:fatal error LNK1104: 无法打开文件"lua51.lib" 开发环境: VS2012 cocos版本:cocos2d-x- ...
- display显示方式
元素的diplay显示方式有多种,隐藏.块级.内联.内联-块级. 1.display:none 隐藏 2.display:block; 表示块级元素. 块级元素会自动在前面和后面加上换行,并且在其 ...
- UDP网络编程
概念: UDP协议(用户数据报协议)是无连接,不可靠的,无序的.速度比较快, UDP协议以数据报作为数据传输的载体 进行数据传输时,首先将传输的数据定义成数据报(Datagram),在数据报中指明数据 ...
- 分享一个二维码图片识别控制台程序Demo
怎么用NuGet和配置log4net就不介绍了,直接上代码(QRDecodeDemo.zip). (Visual Studio 2015 下的项目,用的.NET Framework 4.5.2) 吐槽 ...