[发明专利]一种基于CUDA的H.264并行编码器的实现方法有效
申请号: | 201710368717.5 | 申请日: | 2017-05-23 |
公开(公告)号: | CN107231558B | 公开(公告)日: | 2019-10-22 |
发明(设计)人: | 杨振 | 申请(专利权)人: | 江苏火米互动科技有限公司 |
主分类号: | H04N19/159 | 分类号: | H04N19/159;H04N19/176;H04N19/436;H04N19/80;H04N19/91 |
代理公司: | 北京天盾知识产权代理有限公司 11421 | 代理人: | 曹静;葛宏 |
地址: | 215131 江苏省苏州市相城区元和*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于CUDA的H.264并行编码器的实现方法,该方法包括编码器总体结构优化和各个功能模块在CUDA上的并行化处理。所述总体结构优化包括对编码器功能模块进行帧级分隔,并对CPU和GPU进行任务划分。GPU在模块级对编码器的功能模块分别进行帧间预测、帧内预测编码、熵编码、去块滤波4个过程,从并行模型设计和存储模型等方面实现编码器在CUDA上的并行化。 | ||
搜索关键词: | 编码器 并行编码器 结构优化 编码器功能模块 帧内预测编码 并行化处理 并行模型 存储模型 帧间预测 并行化 熵编码 滤波 帧级 分隔 | ||
【主权项】:
1.一种基于CUDA的H.264并行编码器的实现方法,其特征在于,该方法包括以下步骤:(1)对H.264编码器结构进行调整,包括对编码器功能模块进行帧级分隔,以及对该编码器在CPU和GPU上的任务进行划分;(2)所述编码器的各个功能模块在CUDA上并行化运行,即在模块级对H.264编码器的功能模块分别进行帧间预测、帧内预测编码、熵编码、去块滤波4个过程;功能模块的帧级分隔包括如下步骤:(1.1)按照编码器核心函数的功能,将核心函数中的各个功能函数分隔成独立的循环体,使每个功能函数在帧一级进行独立循环;(1.2)将编码器中的大型数据结构按照其生命周期划分成多个简单数据结构,并且根据其实际的生命周期进行本地化;所述步骤1.2具体包括:将所述大型数据结构分成局部变量、伪全局变量和真全局变量三种类型;所述伪全局变量是指虽然是全局变量,但是作用范围可以拆分成多个实际生命周期的变量;(a)如果所述大型数据结构是局部变量,则其不作变化;(b)如果所述大型数据结构是伪全局变量,则通过重命名的方法,将该伪全局变量按照其实际生命周期划分成不同的变量;(c)如果所述大型数据结构是真全局变量,则考察该真全局变量的数据结构中,是否有部分变量是伪全局变量或局部变量,如果有,则将这些变量从该真全局变量中分离出去,对分离出去的伪全局变量再进行如上述步骤b的处理;帧内预测编码过程中,采用一次读取多次处理的方式加载数据,即每个线程块向对应的共享存储器中加载处理多个宏块需要的数据,CUDA的kernel函数内部通过一层循环对这些数据进行预测编码,当此次读取的数据处理结束之后将重建数据写回,然后再加载新的数据进行处理;相应的kernel的组织为两重循环结构,外层循环控制变量对应加载的次数,内存循环控制变量对应每次加载的数据需处理的次数;kernel内部以宏块为单位进行处理,所述宏块包括多个子宏块,帧内预测编码包括三个阶段:第一阶段:每个子宏块交由帧内预测线程块中的一个线程进行帧内预测处理;第二阶段:由DCT线程块中的一个线程对一个子宏块中的一行或一列像素进行DCT处理;第三阶段:由量化线程块中的一个线程对一个像素进行量化处理。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏火米互动科技有限公司,未经江苏火米互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710368717.5/,转载请声明来源钻瓜专利网。
- 上一篇:载荷检测装置
- 下一篇:一种山苍子精油在控制辣椒疫病上的应用