Android 录像上传回显服务器系统开发
2020-08-11扈乐华顾思思
扈乐华 顾思思 李 文*
(湖南科技学院 电子与信息工程学院,湖南 永州425007)
1 关键技术简介
H.264 是一种视频和图像在编码、传送、接收、解码的实现过程中,程序员必须遵守的统一规范和标准。H.264 没有对视频编码器和解码器做细致的开发,但是制定了编码过程中的码流标准和针对码流的严格的解码标准。[1]在很大程度上有利于开发者自主设计出编码器和解码器。H.264 标准编码器主要就算法方面加以优化,并没有就运动估计和量化过程做出大的修改。H.264 解码标准中。关键的解码过程主要有:熵解码实现、运动补偿实现、去方块滤波实现、反变换实现以及反量化实现等模块。主要解码流程图如下图1 所示。
图1 H.264 解码流程图
2 系统设计
本系统主要包括两个大的模块Android 客户端模块和PC端服务器模块,其中Android 客户端模块主要包括拍照模块,录音模块,录像模块,文件浏览模块;PC 端服务器主要包括回显视频流和接收上传文件模块组成。如下图2 所示。
(1)照相模块:包括拍照,取消等选项。
(2)录音模块:主要包括录制,暂停,播放,完成,删除等选项。
(3)录像模块:录制,停止,保存,发送(PC 端服务器)等选项。
(4)文件浏览模块:主要包括视频文件浏览选项。
(5)PC 回显视频流:实时监听Android 客户端传输的流媒体。
(6)PC 接收上传文件功能:接收文件,显示文件基本信息,显示接收结果。
3 关键技术
需要实现的关键技术在解码器的优化,针对优化对象的不同主要采用三种有效的优化方式。
(1)核心代码的优化。针对Android 环境的特殊性,对其中的代码精简,简化其中过于复杂的代码逻辑,增加代码与系统之间的耦合性,从而提升解码器运行的效率。
(2)处理器部分指令操作的优化。从指令集的角度出发,极大程度的利用CPU 的并行处理能力,从而提升算法运算的速度。
(3)部分解码算法优化。对整个解码过程涉及算法做详细分析,找出其中可以进行优化的部分算法,是算法优化的重要工作。重点对其中的去方块滤波算法作分析,其对整个解码算法影响非常大,因此重点对去方块滤波算法做优化处理。接下来重点介绍对H.264 去方块滤波算法优化实现的过程。
H.264 标准去方块滤波算法主要存在要对每一个方块进行去方块滤波计算的缺点,这个过程非常的复杂,需要牺牲较大的时间。在具体的算法中,需要对每一个4*4 方块所有的行边界的像素点进行BS 值计算。但是对BS 值计算过程占据将近方块滤波计算工作量的60%-80%左右,分析出BS 计算量比重非常大,因此找出简化BS 值计算的方法,可以有效的减少去方块滤波计算量。
针对宏块大小的差异,采用不同编码方法,主要有帧间以及帧内编码。针对两种不同的编码方式,采用相应预测模式,从而对BS 值进行估计的过程分为两种方式。因为帧内编码的空间冗余值与时间冗余值相比小非常多,因此残差值也要会对应大。对帧内编码采用较强的去方块滤波算法,而对帧间编码采取较弱的去方块滤波算法。具体的对比过程如表1 所示。
表1 中数据反映出,采用两种不同的方式后,PSNRY 值对比标准的H.264 有一定的提升,同时改良后的解码器的输出码率和标准算法较为接近。
4 结论
本系统开发了Android 录像上传回显服务器系统,实现了2大模块,6 个小模块,Android 端重点采用H.264 编码进行实时视频的传输,在PC 端实现了对实时流媒体数据的接收,并且利用去方块滤波优化算法对其中的解码过程进行优化,提升了视频接收的流畅度。但是由于网络环境的差异,实时传输的过程中还存在少量的丢帧以及时延等问题,后期需要对算法进行进一步的优化,将解码器更加完善。
表1 去块滤波算法对比表