一种画质调节方法及系统技术方案

技术编号:10243644 阅读:131 留言:0更新日期:2014-07-23 17:18
本发明专利技术公开了一种画质调节方法及系统,该画质调节方法包括:A.检测当前显卡是否支持OpenCL;B.若支持OpenCL,则检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝;C.若支持互相拷贝,则当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象的参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理;D.将处理后的数据重新拷贝到渲染器的显存中,并进行显示。本发明专利技术还构造一种画质调节系统。实施本发明专利技术的技术方案,能在硬件加速解码时完成比较复杂的画质调节。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种画质调节方法及系统,该画质调节方法包括:A.检测当前显卡是否支持OpenCL;B.若支持OpenCL,则检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝;C.若支持互相拷贝,则当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象的参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理;D.将处理后的数据重新拷贝到渲染器的显存中,并进行显示。本专利技术还构造一种画质调节系统。实施本专利技术的技术方案,能在硬件加速解码时完成比较复杂的画质调节。【专利说明】—种画质调节方法及系统
本专利技术涉及流媒体处理领域,尤其是涉及一种在使用DXVA接口硬件加速编码时进行画质调节的方法及系统。
技术介绍
在基于Directshow (Directshow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包)框架系统下的播放器中,使用DXVA (DirectX Video Acceleration,视频硬件加速)接口对视频进行硬件加速解码,可以大大减少CPU的使用率,但DXVA接口,其后必须连接渲染器(Renderer),中间不能进行任何数据处理,否则就无法使用DXVA接口对视频进行硬件加速解码。在使用DXVA接口的同时,要对解码出来的图像进行画质调节,一般有两种方式:1.数据从显存拷贝到内存,利用CPU对图像数据进行处理,处理完毕再拷回到显存中进行显示,该方式缺点是拷贝数据相当耗时;2.在显存中利用Pixel Shader (像素着色引擎)进行就地处理,该Pixel Shader以像素为单位进行图形处理,缺点是Pixel Shader有指令数的限制,只能进行简单的画质调节。这两种方法都无法完成比较复杂的画质调节。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述无法完成比较复杂的画质调节的缺陷,提供一种画质调节方法及系统,能在硬件加速解码时完成比较复杂的画质调节。本专利技术解决其技术问题所采用的技术方案是:构造一种画质调节方法,用于在使用DXVA接口时对视频的画质进行调节,所述画质调节方法包括:A.检测当前显卡是否支持OpenCL;B.若支持OpenCL,则检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝;C.若支持互相拷贝,则当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象的参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理;D.将处理后的数据重新拷贝到渲染器的显存中,并进行显示。在本专利技术所述的画质调节方法中,在所述步骤A中,通过OpenCL自带的平台ID函数和设备ID函数的返回值来检测当前显卡是否支持OpenCL。在本专利技术所述的画质调节方法中,在所述步骤B中,通过OpenCL自带的设备支持等级函数的返回值来检测当前显卡是否支持渲染器与OpenCL的显存数据互相拷贝。在本专利技术所述的画质调节方法中,在步骤C之前,预先接收并存储用户设置的内核对象的参数。在本专利技术所述的画质调节方法中,所述内核对象包括下列中的至少一个:亮度、对比度、灰度、色调、饱和度、锐度、白平衡、去抖动。本专利技术还构造一种画质调节系统,用于在使用DXVA接口时对视频的画质进行调节,所述画质调节系统包括:第一检测模块,用于检测当前显卡是否支持OpenCL ;第二检测模块,用于在检测到支持OpenCL时,检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝;处理模块,用于在检测到支持互相拷贝时,当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象的参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理;显示模块,用于将处理后的数据重新拷贝到渲染器的显存中,并进行显示。在本专利技术所述的画质调节系统中,所述第一检测模块通过OpenCL自带的平台ID函数和设备ID函数的返回值来检测当前显卡是否支持OpenCL。在本专利技术所述的画质调节系统中,所述第二检测模块通过OpenCL自带的设备支持等级函数的返回值来检测当前显卡是否支持渲染器与OpenCL的显存数据互相拷贝。在本专利技术所述的画质调节系统中,所述画质调节系统还包括:设置模块,用于预先接收并存储用户设置的内核对象的参数。在本专利技术所述的画质调节系统中,所述内核对象包括下列中的至少一个:亮度、对比度、灰度、色调、饱和度、锐度、白平衡、去抖动。实施本专利技术的技术方案,首先,由于是在两个显存(渲染器的显存和OpenCL的显存)之间互相拷贝数据,因此相比现有的在显存和内存之间互相拷贝数据,节省了时间;其次,由于是在OpenCL中完成画质调节的处理,因此相比现有的直接在渲染器的显存中利用像素着色引擎进行就地处理,克服了指令数受限的缺陷。综上,这种画质调节方法能完成比较复杂的画质调节。【专利附图】【附图说明】下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术画质调节方法实施例一的流程图;图2是本专利技术画质调节系统实施例一的逻辑图。【具体实施方式】本专利技术针对现有技术中在使用DXVA接口时对视频的画质进行调节时无法完成比较复杂的画质调节的缺陷,提供一种基于OpenCL (Open Computing Language,开放运算语言)的画质调节方法,首先说明的是,OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU或其他类型的处理器组成。图1是本专利技术画质调节方法实施例一的流程图,该画质调节方法包括:A.检测当前显卡是否支持OpenCL,也即,判断当前显卡是否安装有OpenCL显示驱动程序,若是,则执行步骤B ;若否,则执行步骤E。优选地,可通过OpenCL自带的平台ID函数(clGetPlatformIDs)和设备ID函数(clGetDevicelDs)的返回值来检测当前显卡是否支持 OpenCL ;B.检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝,若是,则执行步骤C ;若否,则执行步骤E。优选地,可通过OpenCL自带的设备支持等级函数(clGetDevicelnfo)的返回值来检测当前显卡是否支持渲染器与OpenCL的显存数据互相拷贝;C.当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理,在该步骤中,需说明的是,应预先创建OpenCL显存对象、创建命令队列、创建程序对象、创建Kernel (内核)对象等,并且设置好内核对象的参数,其中,创建OpenCL显存对象是为了存放从渲染器拷贝过来的显存数据;创建命令队列是为了在将一个视频帧分成多个块进行处理时以指示多个块如何处理;创建程序对象是为了执行具体的画质调节算法;创建内核对象为了指示具体的调节对象,例如包括:亮度、对比度、灰度、色调、饱和度、锐度、白平衡、去抖本文档来自技高网
...

【技术保护点】
一种画质调节方法,用于在使用DXVA接口硬件加速编码时对视频的画质进行调节,其特征在于,所述画质调节方法包括:A.检测当前显卡是否支持OpenCL;B.若支持OpenCL,则检测当前OpenCL版本是否支持渲染器与OpenCL的显存数据互相拷贝;C.若支持互相拷贝,则当DXVA接口处理后的视频被送入到渲染器的显存后,将渲染器的显存数据拷贝至OpenCL的显存对象,并调用OpenCL中的内核对象的参数,根据OpenCL中所创建的命令队列、程序对象对显存数据进行画质调节的处理;D.将处理后的数据重新拷贝到渲染器的显存中,并进行显示。

【技术特征摘要】

【专利技术属性】
技术研发人员:白向军
申请(专利权)人:深圳市快播科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1