关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > Android平台上基于H.265的视频测评软件开发

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

作者:龚心杰 陈锐 王思捷 时间:2015-08-06来源:电子产品世界收藏
编者按:针对全新编解码技术H.265,研究并实现了基于Android平台的视频质量评估软件开发。首先通过分析H.265编解码标准的特点和VLC多媒体播放器的解码方式,获取了VLC播放器解码后的YUV数据。再针对YUV数据进行了分辨率、帧率、清晰度、亮度、色度等五个方面的评估分析,并结合主观分析对该五项建立了合理的视频评分体系。最后基于简洁明了的UI界面设计,为用户清晰地展示了评分结果。

摘要:针对全新编解码技术,研究并实现了基于Android平台的视频质量评估软件开发。首先通过分析编解码标准的特点和多媒体播放器的解码方式,获取了播放器解码后的数据。再针对数据进行了分辨率、帧率、清晰度、亮度、色度等五个方面的评估分析,并结合主观分析对该五项建立了合理的体系。最后基于简洁明了的UI界面设计,为用户清晰地展示了评分结果。

本文引用地址:http://www.eepw.com.cn/article/277717.htm

引言

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

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

1 技术平台介绍

1.1 H.265发展优势

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

  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所示。

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

2 视频流畅度测评

2.1 分辨率测评

2.1.1 分辨率简介

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

2.1.2 分辨率算法

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

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

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

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

2.2 帧率

2.2.1 帧率简介

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

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

2.2.2 帧率评分标定

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

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

  具体实现函数如下:

  (fram/(mVideoHeight*mVideoWidth*1.5*times))

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

3 视频画质测评

3.1 清晰度

3.1.1 清晰度研究背景

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

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

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

3.1.2 图像边缘特征

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

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

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

3.1.3 清晰度算法

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

  cvtColor(Input,gray,CV_BGR2GRAY);

  IplImage tmp_image= IplImage(gray);

  IplImage *img = &tmp_image;

  (2)求梯度

  公式及算法思路:

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

  则:

(2)

(3)

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

  (4)清晰度评价算法



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭