首页 > 范文大全 > 正文

Android平台上基于H.265的视频测评软件

开篇:润墨网以专业的文秘视角,为您筛选了一篇Android平台上基于H.265的视频测评软件范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对全新编解码技术H.265,研究并实现了基于android平台的视频质量评估软件开发。首先通过分析H.265编

>> 基于Android平台上BLE的智能家居控制系统设计与实现 基于RTCP和h.265的监控视频动态降码率 基于Android的移动视频学习平台的构建 基于Android平台的视频智能监控报警系统 基于Android平台的移动视频监控系统开发 基于Android平台的视频分析系统构建 基于Android平台的视频监控系统设计与应用 基于Android平台的电力监控终端软件的设计 基于Android平台的老人跌倒检测软件 基于Android的微课平台软件设计 基于Android 平台的软件开发方法研究 基于Android平台的GPS面积测量软件开发 基于Android移动学习平台的设计 浅谈基于Android平台的移动办公 基于Android平台的GPS开发研究 基于Android平台的GPIO操控方法 基于android平台赛马游戏的开发 基于Android平台的“老吾老”系统 基于Android平台的儿童跟踪系统 基于Android平台的多点触控 常见问题解答 当前所在位置:

关键词:H.265;VLC;YUV;安卓;视频评分

引言

随着H.265视频压缩标准的出现,其压缩效率与错误恢复能力的提高,以及实时的时延和信道获取时间的减少等特点,为互联网高清视频带来了巨大变化。同时4G网络的逐渐覆盖使得移动客户端上的视频载入率日渐提高,因此流媒体视频评测软件的开发具有意义重大。

本文基于如今用户群最大的Android平台实现流媒体视频评测软件的开发,软件主要从分辨率和帧率两方面来测评视频流畅度,同时从视频质量的亮度、色度和清晰度三个方面来评估视频画质,并将评估结果以分数的形式直观呈现于手机上。此结果方便用户选择视频质量更好的流媒体,同时也方便运营商针对视频存在的问题进行测评维修,这将推动整个流媒体服务器的发展。

1 技术平台介绍

1.1 H.265发展优势

H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。

H.265的技术亮点包括以下几点:第一,灵活的编码结构,在H.265中将宏块的大小从H.264的16×16扩展到了64×64,以便于高分辨率视频的压缩。同时,采用了更加灵活的编码结构来提高编码效率,包括编码单元、预测单元和变换单元:第二,使用新的MV(运动矢量)预测方式,区别于H.264基于空间域的运动矢量预测方式,H.265扩充更加多的方向进行帧内预测,同时将预测块的集合由原来的空间域扩展到时间域及空时混合域,通过率失真准则计算后选择最佳的预测块;第三,更低的码流,多项质量比较测试已经表明,在相同的图像质量下,相比于H.264,通过H.265编码的视频码流大小比H.264减少大约39%-44%。通过主观视觉测试得出的数据显示,在码率减少51%-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好,其本质上说是比预期的信噪比(PSNR)要好。

1.2 Android平台开发的优越性

广泛使用性:Android软件拥有广泛且稳定的使用人群。

开放性:Android具有开源系统可供用户自行设计更改。

丰富的硬件选择:从性能一般的低端机到高配置的高端机一应俱全,可满足不同阶层用户的不同需求。

不受限制的软件开发:Android平台开发周期短,应用的简单,只需要通过Eclipse引导签署开发出的应用,开发者即拥有一个可以在任何Android平台运行的APK文件。将这个APK文件到各种平台上进行推广,用户安装即可使用。如果应用在使用中出现了问题,出现代码错误,开发者也能立刻上传修复的版本供用户下载。

1.3方案总述

选择Android平台上基于H.265进行视频测评。具体方案流程图如图1所示。

首先利用VLC沆媒体播放器接收流媒体数据流,再在Linux环境下使用Android NDK将HM10.0的解码库进行移植,与VLC各模块共同封装成SO库移植到Android平台上,再通过JNI本地调用的方式在Java层调用来完成对HEVC码流的解析。在播放视频的第三阶段通过C语言来编写解码模块,由之解出的码流分为两路,其中一路按照正常播放流程由播放器输出以实现正常播放的功能。另外一路则先导出至sdcard中,当视频播放结束后重新读入YUV数据并利用Opencv设计算法进行分析,最终结果以txt文本的形式存储至sdcard中。

2 视频流畅度测评

2.1分辨率测评

2.1.1分辨率简介

视频分辨率指视频的高/宽像素值,用来度量图像内数据量。通常将分辨率表示成ppi(每英寸像素Pixel perinch),一般说的分辨率指图像的高/宽像素值,严格意义上的分辨率是指单位长度内的有效像素值ppi。如图2所示,分别是分辨率为72ppi和300ppi的图像示例。

2.1.2分辨率算法

本测评软件采用一般定义,即视频的高/宽像素值。

(1)首先利用Android自带功能遍历手机SD卡中的所有视频,为视频测评做准备。

(2)通过搜索视频媒体自带的信息,获取手机视频的分辨率,并且根据获取的分辨率为视频评分。

(3)依据手机分辨率的屏幕参数,我们选取480×270作为标定值。高于此值,则分辨率这一项为满分;反之,则为零分。

2.2帧率

2.2.1帧率简介

帧率是用来测量显示帧数的量度,单位一般为fps(frames persecond),表示图形处理去处理场景时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。根据人眼的特殊生理结构,如果所看画面帧率高于16fps,则会认为画面连续。然而当帧率超过屏幕刷新率时,只会浪费图像处理能力。一般最合适的人眼接受帧率为25fps。

同时,帧率影响画面流畅度,与画面流畅度成正比。帧率越大,画面越流畅;帧率越小,画面越有跳动感。

2.2.2帧率评分标定

本项目采用一边播放视频一边导出视频转换成YUV文件形式,再利用YUV文件的大小以及每一帧图像的分辨率大小,计算出一段视频的平均帧率。由于采用的是YUV420的形式,所以每一帧图像的大小为length*width*1.5 bit,由此得出平均帧率计算公式如下:

帧率=一段时间内YUV文件大小/length*width*1.5 bit*时间(1)

具体实现函数如下:

(fram/(mVideoHeight*mVide oWidth*1.5*times》

由于人眼最适合的帧率为25fps,本文选取帧率大于20fps为流畅,即为满分;选取小于Sfps的帧率为不合格,即为零分。具体评分准则如表1。

3 视频画质测评

3.1清晰度

3.1.1清晰度研究背景

随着各类数字成像技术的飞速发展,数字图像的清晰度日益成为衡量数字成像系统优劣的重要指标。一幅数字图像质量的好坏与其清晰度直接相关,清晰度也指模糊度或粗糙度,是指人眼能感觉出的相邻影像间的明显程度。导致图像清晰度下降的原因是图像模糊,在图像采集、传输、压缩等处理过程中都有可能产生模糊。

目前,对数字图像清晰度的评价方法驻要有空域参数方差、熵、以及频域调制传递函数等,但由于这些方法各有优缺点,如空域参数虽评价简洁、快速,但对图像清晰度的细小变化不敏感:频域参数虽对图像清晰度变化敏感,但计算较慢,不依程序运算的自动化。

本项目通过对图像进行边缘提取,计算其梯度数据,建立清晰度评判标准,从而进行单帧图像的清晰度判定。

3.1.2图像边缘特征

图像边缘是指其周围像素灰度有阶跃性变化或屋顶型变化的像素的集合,是图像最基本的特征之一,可以反映目标的清晰度。

一条理想的边缘具有如图3所示(a)模型的特征,这个模型生成的理想边缘是一组相连像素的集合,每个像素都处在灰度级跃变的一个垂直台阶上。实际系统中,由于各种原因导致图像模糊后,实际边缘如3所示,(b)是一个过度的斜面。

从人眼视觉特性上,观测目标是否清晰,关键在于目标与背景的边缘上,如果边缘锐利,图像就比较清晰;如果边缘过渡平缓,图像就模

3.1.3清晰度算法

(1)先将图片转换为灰度图,并申明为Ipllm age对象。核心代码如下:

cvtColor(Input,gray,CV_BGR2GRAY);

Ipllmage tmp_image=Ipllmage (gray),

Ipllmage *img= &tmp_image;

(2)求梯度

公式及算法思路:

令:平均梯度为X,位宽为s,总梯度为Y,总像素点为N。

则:

(3)分析数据可知,过渡区上的最大梯度值,与图像的清晰度呈正比关系。并且,梯度的陡峭程度与清晰度呈正比关系。

(4)清晰度评价算法

第一,为达到客观的评判,避免误判视频本身的模糊需求,在开始评测之前会进行主观失焦评断。结合人的主观评断和标准视频流的清晰度标准来刻画,这样的评断更客观公正。具体实现界面如图4。

第二,结合是否主动失焦以及标准流的判断确定满分标准,之后进行归一化处理。处理后最终的评判标准如表2。

3.2亮度

3. 2.1亮度简介

亮度是指发光体(反光体)表面发光(反光)强弱的物理量,是人对光的强度的感受。我们认为的亮度参数都是指白色的参数,然而想要更好地体现视频的亮度,就不能只用白色的参数来表示亮度,故而引入了色彩亮度的概念。

3.2.2亮度评分算法

(1)将每一帧的图片灰度化,并以mat矩阵存储以方便刻画行列,统计图片中每个亮度值出现的个数,求出平均亮度。根据前期的主观评测,选定动态阈值作为平均比较值。

(2)将每一个像素点的值与动态阈值作方差,计算出来的值即可在一定程度上表示图片的平均亮度。

令动态阈值为

,每一个像素点的灰度值为x,则平均亮度的公式如下:核心代码如下:

(3)最终亮度评断标准如表3所不。

3.3色度

3.3.1色度简介

色度的测量是对颜色的一种客观评价,将色度这种度量最终以值的形式表示,有常见的几种表现模型:CIE、RGB等。

在颜色感知的研究中,CIE 1931XYZ色彩空间是其中一个最先采用数学方式来定义的色彩空间。其中,色彩空间指的是用一种客观的方式叙述颜色在人眼上的感觉,通常需要三色刺激值,即首先定义三种主要颜色,再利用颜色叠加模型来叙述各种颜色。CIE 1931色彩空间通常用XYZ三个值来表示三色刺激值。

CIE XYZ和CIE RGB可以相互转换,具体转换方式如下:

X=CxR(5)

X=0.49000R+0.31000G+0.20000B (6)

Y=0.17697R+0.81240G+0.01063B (7)

Z= O.OOOOOR+O.OlOOOG+0.99000B (8)

转换按照等能白点转换,即有约束:RGB(O.333,0.333,0.333)对应XY2(0.333,0.333,0.333).

3.3.2色度评分算法

(1)调用以下Opencv函数将RGB按照以上公式转换成CIE形式。

cvtColor(Input,LABimg,C V_BGR2Lab)

(2)同样调用Opencv里函数,得到a、b的值。其中a表示图像的红绿分量,b表示黄蓝分量,根据这两个分量可以判断出图像的色偏,为评分做准备。核心代码如下:

dac= a/float (LABimg.rows*LABimg.cols),//a*表示图像红/绿分量,计算红绿分量的平均值

dbc=b/float(LABimg.rows*LABimg.cols);//b*表示图像黄/蓝分量,计算黄蓝分量的平均值

(3)最终利用a、b的值计算出L,根据L的大小来对色度进行评分。L的计算方式如下:

float D =sqrt(dac*dac+dbc*dbc);

Ma/= flo at( (LABimg.rows*LABimg.cols));

Mb/= float 《LABimg.rows*LABimg.cols));

float M=sqrt(Ma*Ma+Mb*Mb);

float K=D/M;

avr=K:

(4)通过rda, rdb得出整体色彩偏向,然后根据L得出最后得分如表4所示。

4 结语

本文在Android移动平台上基于H.265视频标准,开发了安卓手机本地视频质量评测软件。该测评软件从视频流畅度和视频画质两个方面对视频质量做出了测评,其中视频流畅度包括视频分辨率和帧率两个部分,视频画质测评包括视频清晰度、亮度和色度等三个部分。本文还分析了视频测评体系建立过程,并阐述了五项评分的核心算法。本文还通过设计开发一个Android移动平台软件,方便用户选择视频质量更好的流媒体,同时也利于运营商针对视频存在的问题进行测评维修。这推动了整个流媒体服务器的发展,并且推广了新一代视频编解码技术H.265。