论文部分内容阅读
随着通信技术、多媒体技术和互联网的飞速发展,手机和PC终端的性能越来越高,视频和图像已成为了人们获取信息的主要方式。对于PC终端而言,高性能图像数据的采集往往离不开视频采集卡,而现有视频采集卡接口单一,且大部分处理压缩功能都由硬件完成,这不仅增加了硬件成本,而且通用性较弱。因此,除了视频采集卡的硬件设计之外,如何利用现有资源,低成本、高效且实时地对采集上来的数据进行处理也是关键之一。本文设计并实现了一种通用高效的图像处理软件系统,该系统基于OpenCV库和CUDA库进行开发,实现视频数据的采集和处理,其中部分设计与算法实现已经应用与某研究所合作项目中。论文主要工作如下:(1)针对视频采集卡通用性较弱的问题,本文实现了一种通用高效的图像处理软件,该软件采用MFC多窗口显示和多线程技术,实现了两路原始视频数据的采集、处理、存储和显示。其中,数据采集支持RGB、Gray、Bayer等标准颜色传输模式;数据处理包括画面缩放、画面翻转、画面饱和度调节、画面单通道对比度和亮度的调节、叠加中英文字符、叠加图形等;数据存储支持视频单帧采集和视频压缩,视频压缩格式支持MJPEG和H.264。针对视频采集处理需要很高的实时性这一问题,本文提出了一种双链表、双线程以及定时器显示的处理回调机制软件架构,即在处理回调过程中实现图像处理,在显示回调过程中实现图像显示。为了屏蔽软件多接口硬件驱动上的差异,本文提出了采用线程机制来并行模拟图像采集驱动,并调试系统的性能。(2)为实现视频软件压缩功能,在上述软件架构基础上,设计了MEM(内存)接口,采用改进的x264工程来实现软件视频实时采集压缩,但对于高清视频的采集,此方法难以达到实时性。另外,随着GPU显卡的普及以及采用GPU对图像处理的优势不断增强,针对上述问题与现状,本软件系统还将大部分的图像处理过程采用GPU优化,并提出了采用NVIDIA公司开发的NVIDIA VIDEO ENCODER(NVENC)作为本系统压缩H.264的另一接口。NVENC可以说是对x264工程向GPU并行计算的改进。本文通过GPU与CPU两种实现对比分析,采用GPU实现处理和压缩功能,能极大的提高本软件性能,并达到1080P@30fps的实时视频采集、处理及压缩存储。(3)针对具体应用中的问题,还提出了实用的色阶调整算法、帧率控制算法和Bayer滤波算法。色阶调整算法用于不同深度图像信息的转换,帧率控制算法用于解决高帧速视频显示,Bayer滤波算法用于Bayer采集图像的处理与显示。