[发明专利]一种基于Opengl ES的颜色空间数据转化算法在审
申请号: | 201711362472.1 | 申请日: | 2017-12-18 |
公开(公告)号: | CN108154539A | 公开(公告)日: | 2018-06-12 |
发明(设计)人: | 张世洋 | 申请(专利权)人: | 北京酷我科技有限公司 |
主分类号: | G06T7/90 | 分类号: | G06T7/90;G06T1/20 |
代理公司: | 北京德和衡律师事务所 11405 | 代理人: | 姚克枫 |
地址: | 100080 北京市海淀区农大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 颜色空间数据 着色器 算法 转化 顶点着色器 片段着色器 并行运行 数据转化 转化效率 帧画面 着色 视频 创建 语言 | ||
本发明涉及一种基于Opengl ES的颜色空间数据转化算法,包括如下步骤:采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU的多个核上,提高颜色空间数据转化的速度;在Opengl ES中需要创建两种着色器:顶点着色器vertex shaders和片段着色器fragment shaders。本发明,采用GPU处理数据,基于Opengl ES完成YUV颜色空间数据转化为RGBA颜色空间数据,能大幅度提高转化效率,支持1080P(1920x1080)视频30帧画面每秒的要求。
技术领域
本发明涉及颜色空间数据转化技术领域,具体说是一种基于Opengl ES的颜色空间数据转化算法。
背景技术
现有的移动手持设备,除了中央处理器(CPU)性能不断提高之外,大多也相应的配备了专业的图形处理器(GPU)。
图形处理器(GPU)和中央处理器(CPU)相比:CPU需要很强的通用性来处理各种不同的数据类型,同时又有逻辑判断,会因此引入大量的分支跳转和中断的处理,这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
GPU上适合运行的程序:
(1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。
(2)易于并行的程序。GPU其实是一种SIMD架构(Single Instruction MultipleData),它有成百上千个核,每一个核在同一时间能做同样的事情。
在用CPU完成YUV颜色空间数据转化为RGBA颜色空间数据时,因为CPU寄存器数量不是很多,难于实现高度并行,算法(如C++实现)性能低,不能满足高清(如1080P)视频的实时显示。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Opengl ES的颜色空间数据转化算法,采用GPU处理数据,基于Opengl ES完成YUV颜色空间数据转化为RGBA颜色空间数据,能大幅度提高转化效率,支持1080P(1920x1080)视频30帧画面每秒的要求。
为达到以上目的,本发明采取的技术方案是:
一种基于Opengl ES的颜色空间数据转化算法,其特征在于,包括如下步骤:
采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU的多个核上,提高颜色空间数据转化的速度;
在Opengl ES中需要创建两种着色器:顶点着色器vertex shaders和片段着色器fragment shaders。
在上述技术方案的基础上,所述颜色空间数据转化指YUV颜色空间数据转化为RGBA颜色空间数据。
在上述技术方案的基础上,所述YUV颜色空间数据来自摄像头捕获的数据,
具体格式是NV21格式。
在上述技术方案的基础上,所述着色器shader,采用如下转换公式完成YUV颜色空间数据转化为RGBA颜色空间数据:
R = Y + 1.13983 *(V - 128)
G = Y - 0.39465 *(V - 128)- 0.58060 * (V - 128)
B = Y + 2.03211 * (U -128)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京酷我科技有限公司,未经北京酷我科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711362472.1/2.html,转载请声明来源钻瓜专利网。