利索能及
我要发布
收藏
专利号: 2016101926980
申请人: 南京邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-04-10
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种在多核处理器平台上的多层次多任务并行解码方法,其特征在于,包括以下步骤:

步骤1、主线程首先完成一些初始化的工作,包括码流文件的读取,创建HEVC解码器以及必要的内存单元申请;

步骤2、先从读入的未使用任何并行编码方式形成的高清单一码流中截取当前帧的码流并调用函数,进行解析NAL单元以及图像的PPS、VPS、SEI参数集信息和图像的Slice头信息,这些信息包含了解码所需的profile,level,图像的宽和高,环路滤波的参数信息,然后将其保存至解码图像对象结构体中;

步骤3、根据步骤2中解析生成的参数信息,在线程池中创建与图像CTU行数相同数量的线程,通过多核函数库将每个线程绑定到不同的核,保证各个线程能够进行多核并行解码,然后进入主循环;

步骤4、读取一帧图像,若检测到I帧或者P帧,则直接进行该帧的熵解码;若检测到同级相互独立的B帧,即可调用多核线程池中的线程进行帧级并行熵解码,一旦线程完成并行熵解码后,直接进行CTU行数据的解码,并将上述两种熵解码后的数据存入帧缓存中;

步骤5、检测多核线程池中熵解码之后的CTU行数据的左侧,左上侧,上侧,右上侧的CTU解码是否完成,若解码完成,则可以从任务队列中获取执行当前行CTU的任务,即可实现CTU行之间的并行解码;

步骤6、完成该CTU行内反量化,反变换,运动补偿,帧内预测的一系列解码过程,直到该CTU行解码结束,一旦工作线程解完一行CTU数据,则重新将其放到线程池之中;

步骤7、一帧解码完成之后,检测视频码流是否全部解码完成,若完成则释放所有的资源和销毁线程池;若没有完成,则返回步骤3。

2.如权利要求1所述的一种在多核处理器平台上的多层次多任务并行解码方法,其特征在于,所述步骤4中,将同一水平线B帧作为一个等级,对于同一级别的B帧将不会相互参考,而且也不会作为I帧和P帧的参考图像,所以可以将同一级别的B帧交给不同处理器核进行处理,实现帧级熵解码并行。

3.如权利要求1所述的一种在多核处理器平台上的多层次多任务并行解码方法,其特征在于,所述步骤5中,在CTU级,每个CTU必须等待它的左、左上、上和右上4个相邻CTU解码完成才能开始预测,因为根据HEVC标准的语法限制,当前CTU需要这几个相邻CTU的已解码信息,在帧内解码时,当前CTU需要从上述相邻CTU的重建像素进行帧内预测;在帧间预测时,当前CTU需要从上述相邻CTU处获取运动信息。

4.如权利要求1所述的一种在多核处理器平台上的多层次多任务并行解码方法,其特征在于,利用线程池技术,将固定数目的线程各自绑定到一个核心上,多核处理器只需要将解码数据包交给线程池即可。