[发明专利]一种基于CPU+GPU异构平台实现HEVC中的CABAC的并行方法有效

专利信息
申请号: 201510266416.2 申请日: 2015-05-21
公开(公告)号: CN104869398B 公开(公告)日: 2017-08-22
发明(设计)人: 郭成安;章琨 申请(专利权)人: 大连理工大学
主分类号: H04N19/13 分类号: H04N19/13;H04N19/436
代理公司: 大连理工大学专利中心21200 代理人: 潘迅,梅洪玉
地址: 116024 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 cpu gpu 平台 实现 hevc 中的 cabac 并行 方法
【权利要求书】:

1.一种基于CPU+GPU异构平台实现HEVC中的CABAC的并行方法,其特征在于:

(1)将CABAC中所要完成的全部任务划分成两个模块:CABAC模块1和CABAC模块2;

(2)CABAC模块1的任务为语法元素转换、二进制化和上下文模型选择:

由GPU多线程完成当前帧图像各个CTU的语法元素转换、二进制化和上下文模型选择处理任务;设在此运算之前,已在GPU中完成包括将当前帧图像划分成M个CTU,M为一帧图像中所包含的CTU个数;对各个CTU的预测、变换、量化及滤波重建,再在GPU上开设M个线程,一个线程负责完成一个CTU的CABAC模块1的处理任务,M个线程并行处理;

(3)CABAC模块2的任务为算术编码:

在CPU端开设CPU主线程和CPU从线程两个线程,CPU主线程用于调度和管理GPU多线程与CPU从线程,CPU从线程用于完成CABAC模块2的处理任务;CPU主线程对GPU多线程和CPU从线程的调度方案如下:

在同一时间中分配GPU多线程处理当前帧的图像数据,包括对当前帧进行预测、变换、量化、滤波重建以及CABAC模块1的计算,CPU从线程处理前一帧经过GPU多线程完成CABAC模块1后的码流数据;当CPU设备中具备双核以上的CPU处理器时,将CPU主线程和CPU从线程映射到两个CPU核上,使两个线程并行工作。

2.根据权利要求1所述的并行方法,其特征在于如下步骤,

步骤1:由CPU主线程对GPU多线程发调度指令,对分块后的第1帧图像进行帧内预测、变换、量化及滤波重建等处理,产生分割模式、预测模式、像素残差等待编码数据;结束时向CPU主线程发结束标志;CPU主线程接到GPU发来的结束标志,对GPU多线程发调度指令执行CABAC模块1;在CABAC模块1中,首先对得到的待编码数据以CTU为单元进行划分,按照HEVC中的CABAC算法原理对每一个CTU单元的待编码数据进行语法元素转换,按光栅扫描顺序存储各个CTU的语法元素;一个GPU线程处理一个CTU单元,NCTU个线程并行处理;对得到的各个CTU的语法元素按照HEVC中的CABAC算法原理进行二进制化处理,产生以CTU为单元的二进制化预编码码流;一个GPU线程处理一个CTU单元,NCTU个线程并行;对得到的二进制化预编码码流以CTU为单元按照HEVC中的CABAC进行上下文模型选择,存储上下文模型选择结果;一个GPU线程处理一个CTU单元,NCTU个线程并行处理;结束时向CPU主线程发送结束标志;其中,NCTU为当前一帧图像所包含的CTU个数;

步骤2:CPU主线程接到GPU发来的结束标志,将在步骤1中得到的二进制化预编码码流和上下文模型的选择结果取到CPU中;

步骤3:CPU主线程开启CPU从线程,并分别向CPU从线程和GPU多线程发调度指令、启动CPU从线程和GPU多线程;CPU从线程对步骤2中得到的第1帧图像的二进制化预编码码流和上下文模型选择结果进行编码运算;结束时向CPU主线程发结束标志;GPU多线程对第2帧图像进行帧间预测、变换、量化及滤波重建等处理,产生分割模式、运动矢量误差、像素残差等待编码数据;结束时向CPU主线程发结束标志;CPU主线程接到GPU发来的结束标志,对GPU发调度指令执行CABAC模块1;在GPU端的CABAC模块1中,首先对得到的第2帧图像的待编码数据以CTU为单元进行划分,按照HEVC中的CABAC算法原理对每一个CTU单元的待编码数据进行语法元素转换,按光栅扫描顺序存储各个CTU的语法元素;一个GPU线程处理一个CTU单元,NCTU个线程并行处理;GPU多线程对得到的图像语法元素按照HEVC中的CABAC算法原理进行二进制化处理,产生以CTU为单元的二进制化预编码码流;一个GPU线程处理一个CTU单元,NCTU个线程并行;GPU多线程对得到的二进制化预编码码流以CTU为单元按照HEVC中的CABAC算法原理进行上下文模型选择,存储上下文模型选择结果;一个GPU线程处理一个CTU单元,NCTU个线程并行;结束时向CPU主线程发送结束标志;

步骤4:CPU主线程接到CPU从线程发来的结束标志和GPU多线程发来的结束标志后,将在步骤3中得到的二进制化预编码码流和上下文模型选择结果取到CPU中;分别向CPU从线程和GPU多线程发调度指令,按照步骤3执行,分别由CPU从线程完成对第2帧图像进行编码运算、GPU多线程完成分配给GPU端的对第3帧图像的处理任务;

步骤5:设执行到第k帧,2≤k≤N;按照步骤4分别由CPU从线程完成对第k-1帧图像进行算术编码(CABAC模块2)运算、GPU多线程完成分配给GPU端的对第k帧图像的处理任务;

步骤6:CPU主线程接到CPU从线程发来的完成第N-1帧CABAC模块2的结束标志和GPU多线程发来的完成第N帧的CABAC模块1的结束标志,对CPU从线程发调度指令执行对第N帧图像的CABAC模块2的处理,整个视频序列的CABAC编码过程结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510266416.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top