一种基于GPU的移动视频编解码系统技术方案

技术编号:34949730 阅读:15 留言:0更新日期:2022-09-17 12:26
本发明专利技术公开了一种基于GPU的移动视频编解码系统,涉及视频编解码领域,该系统包括:OpenCL环境控制模块,用于创建并行执行环境;第一帧数据管理模块,用于在并行执行环境中将第一移动设备的目标视频数据帧和参考帧传输至GPU端以及更新GPU端中的参考帧;宏块模式选择模块,用于对GPU端中的目标视频数据帧进行分区;编码模块,用于对分区后的每个宏块编码,将编码数据传输至第二移动设备;解码模块,用于对第二移动设备的GPU端的编码数据进行解码;第二帧数据管理模块,用于将GPU端中的解码数据传输至第二移动设备的主机端CPU中。本发明专利技术在GPU端进行处理,提升移动设备上视频编解码性能,同时降低电池电量的能耗。同时降低电池电量的能耗。同时降低电池电量的能耗。

【技术实现步骤摘要】
一种基于GPU的移动视频编解码系统


[0001]本专利技术涉及视频编解码领域,特别是涉及一种基于GPU的移动视频编解码系统。

技术介绍

[0002]近年来随着智能手机和其他移动设备的快速发展,同时随着视频数据的爆炸式增长,在移动设备上处理海量的视频数据面临诸多的挑战。由于多媒体应用的爆炸式增长以及用户对视频质量的要求越来越高,如何有效的分配移动设备上的计算资源(CPU和GPU)成为一个重要问题;由于移动设备的电池电量有限,同时随着用户对视频分辨率、视频帧率以及实时性的要求越来越高,如何在满足用户需求的前提下尽量减少移动设备的能量消耗是目前面临的另一大挑战;传统视频编解码算法具有高计算量以及高时间复杂度的特点,如果直接将其移植到计算资源有限的移动设备上,编解码性能并不能得到相应的保障。
[0003]随着移动端GPU的迅猛发展,移动端GPU的可编程性也在不断增强。除了图形渲染这些专门的图形处理任务外,应用GPU进行通用计算的研究越来越普遍。相比CPU中功能更加强大、逻辑更加复杂的核心来说,GPU中的核心逻辑简单,而且GPU中核心的数量比较多,一般是数以千计,是专门为并行计算而设计。虽然GPU的工作频率没有CPU高,但GPU总体的性能

功耗比要比CPU高很多,尤其是当并行计算任务越大,这种优势越明显。因此对于计算量巨大、计算数据之间没有依赖关系的计算任务,非常适合使用GPU并行处理。如果能将这种问题迁移到GPU上运行,将会得到性能上很好的提升。

技术实现思路

[0004]基于此,本专利技术实施例提供一种基于GPU的移动视频编解码系统,应用GPU并行计算技术提升移动设备上视频编解码性能,同时降低电池电量的能耗。
[0005]为实现上述目的,本专利技术提供了如下方案:
[0006]一种基于GPU的移动视频编解码系统,包括:
[0007]OpenCL环境控制模块,用于:
[0008]创建运行OpenCL所需要的并行执行环境;
[0009]第一帧数据管理模块,用于:
[0010]确定第一移动设备的主机端CPU中存储的目标视频数据帧的类型;
[0011]基于所述类型,在所述并行执行环境中将所述目标视频数据帧和参考帧传输至第一移动设备的GPU端;所述参考帧为所述目标视频数据帧的上一帧数据;
[0012]每传输一帧目标视频数据帧,则对第一移动设备的GPU端中的参考帧进行更新;
[0013]宏块模式选择模块,用于:
[0014]对第一移动设备的GPU端中的目标视频数据帧进行分区,得到多个宏块;
[0015]编码模块,用于:
[0016]基于编码参数,对每个所述宏块进行编码,得到编码数据,并将所述编码数据传输至第二移动设备的GPU端;
[0017]解码模块,用于:
[0018]对第二移动设备的GPU端存储的所述编码数据进行解码,得到解码数据;
[0019]第二帧数据管理模块,用于:
[0020]将第二移动设备的GPU端中的解码数据传输至第二移动设备的主机端CPU中,第二移动设备的主机端CPU存储所述解码数据。
[0021]可选地,所述基于GPU的移动视频编解码系统,还包括:
[0022]数据包发送模块,用于对所述编码模块发送的编码数据进行缓存,并将所述编码数据发送出去;
[0023]数据包接收模块,用于对接收到的所述数据包发送模块发送的所述编码数据进行缓存,并将接收到的所述编码数据发送至所述解码模块。
[0024]可选地,所述基于GPU的移动视频编解码系统,还包括:
[0025]参数控制模块,用于对所述编码模块模块所需的编码参数进行自适应调整。
[0026]可选地,所述基于GPU的移动视频编解码系统,还包括:
[0027]网络信息收集模块,用于采集网络状态信息,并将所述网络状态信息发送至所述参数控制模块;所述参数控制模块根据所述网络状态信息对所述编码模块模块所需的编码参数进行自适应调整。
[0028]可选地,所述编码模块,具体包括:
[0029]并行运动估计单元,用于采用帧间编码模式对每个所述宏块进行运动估计,生成估计信息;
[0030]运动补偿单元,用于采用所述参考帧对所述估计信息进行运动补偿,生成预测宏块;
[0031]预测宏块处理单元,用于基于所述目标视频数据帧对所述预测宏块进行处理,得到编码数据。
[0032]可选地,所述预测宏块处理单元,具体包括:
[0033]残差块生成子单元,用于将所述预测宏块与所述目标视频数据帧进行相减,得到残差块;
[0034]变换量化子单元,用于对所述参数块依次进行DCT变换和量化,得到编码系数;
[0035]系数处理子单元,用于对所述编码系数依次进行重排序和熵编码,得到初始编码数据;
[0036]信息添加子单元,用于在所述初始编码数据中添加解码所需信息,得到压缩比特流,并将所述压缩比特流确定为最终的编码数据。
[0037]可选地,所述基于GPU的移动视频编解码系统,还包括:
[0038]视频显示模块,用于显示第二移动设备的主机端CPU存储的所述解码数据。
[0039]与现有技术相比,本专利技术的有益效果是:
[0040]本专利技术实施例提出了一种基于GPU的移动视频编解码系统,包括:OpenCL环境控制模块,用于创建运行OpenCL所需要的并行执行环境;第一帧数据管理模块,用于在并行执行环境中将目标视频数据帧和参考帧传输至GPU端以及对GPU端中的参考帧进行更新;宏块模式选择模块,用于对GPU端中的目标视频数据帧进行分区,得到多个宏块;编码模块,用于对每个宏块进行编码,将编码数据传输至第二移动设备;解码模块,用于对第二移动设备的
GPU端的编码数据进行解码;第二帧数据管理模块,用于将GPU端中的解码数据传输至第二移动设备的主机端CPU中并存储。本专利技术在GPU端进行编解码处理,应用GPU并行计算技术提升了移动设备上视频编解码性能,同时降低了电池电量的能耗。
附图说明
[0041]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为本专利技术实施例基于GPU的移动视频编解码系统的结构图;
[0043]图2为具体实例涉及的移动设备下基于GPU的视频编解码系统架构图;
[0044]图3为编码器的结构示意图;
[0045]图4为主机端与GPU端通过异步传输数据帧时各自的任务流程图;
[0046]图5为数据传输算法的流程图;
[0047]图6为数据更新算法的流程图;
[0048]图7为运动估计并行算法的流程图。
具体实施方式
[0049]下面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU的移动视频编解码系统,其特征在于,包括:OpenCL环境控制模块,用于:创建运行OpenCL所需要的并行执行环境;第一帧数据管理模块,用于:确定第一移动设备的主机端CPU中存储的目标视频数据帧的类型;基于所述类型,在所述并行执行环境中将所述目标视频数据帧和参考帧传输至第一移动设备的GPU端;所述参考帧为所述目标视频数据帧的上一帧数据;每传输一帧目标视频数据帧,则对第一移动设备的GPU端中的参考帧进行更新;宏块模式选择模块,用于:对第一移动设备的GPU端中的目标视频数据帧进行分区,得到多个宏块;编码模块,用于:基于编码参数,对每个所述宏块进行编码,得到编码数据,并将所述编码数据传输至第二移动设备的GPU端;解码模块,用于:对第二移动设备的GPU端存储的所述编码数据进行解码,得到解码数据;第二帧数据管理模块,用于:将第二移动设备的GPU端中的解码数据传输至第二移动设备的主机端CPU中,第二移动设备的主机端CPU存储所述解码数据。2.根据权利要求1所述的一种基于GPU的移动视频编解码系统,其特征在于,还包括:数据包发送模块,用于对所述编码模块发送的编码数据进行缓存,并将所述编码数据发送出去;数据包接收模块,用于对接收到的所述数据包发送模块发送的所述编码数据进行缓存,并将接收到的所述编码数据发送至所述解码模块。3.根据权利要求1所述的一种基于GPU的移动视频编解码系统,其特征在于,还包括:参数控制模块,用于对所述...

【专利技术属性】
技术研发人员:程渤赵帅章洋苏佰川陈俊亮
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

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

1