【技术实现步骤摘要】
基于HEVC核心模块的并行解码方法、装置及介质
[0001]本专利技术涉及数字视频信号编码解码领域,具体涉及一种基于多核处理器平 台的HEVC核心模块融合的并行解码方法。
技术介绍
[0002]网络传输和存储技术的发展,也带动了视频应用的创新,同时工业生产和 人们日常生活中对2K高清及4K超高清视频的需求日益广泛,这些因素都使得 视频压缩技术面临更大的挑战。为了应对这些挑战,2010年,JCT-VC(视频编码 联合工作组)—由VCEG(视频编码专家组)和动态图像专家组MPEG(动态图像专 家组)组建—开始制定新的视频编码标准,并于2013年4月正式发布,即 H.265/HEVC。这个新的视频编码标准在继承了之前标准的众多优良特性基础上 引入了创新技术,使得其能够保证在编码与H.264/AVC标准相同质量视频的同 时,减少一半的码率,但新技术的引入也使得H.265/HEVC标准运算的复杂度 相比于H.264/AVC大约提升了2到3倍。与此同时,高清、超高清视频包含比 以往标清视频更大规模的数据量,这些问题都给传统单核处理器带来 ...
【技术保护点】
【技术特征摘要】
1.一种基于多核处理器的HEVC核心模块融合的并行解码方法,其特征在于,包括以下步骤:步骤1:主线程进行初始化操作,包括初始化HEVC解码器,申请寄存器单元,初始化缓存,初始化解码任务队列,置空任务队列;步骤2:读入HEVC编码的序列码流,调用网络适配层NAL解析函数,解析封装的各类参数信息,得到解码所需的profile、level、图像帧类型、图像尺寸参数和环路滤波参数信息;步骤3:根据步骤2中网络适配层解析生成的各类参数信息,在线程池中创建与图像CTU行数相同数量的线程,通过多核函数库将每个线程绑定到不同的核,保证各个线程能够进行多核并行解码,然后进入解码主循环;步骤4、主线程对读入的视频流进行解析,若检测到是多个同级别的B帧,则执行并行熵解码;否则,则调用单个帧级线程串行执行CABAC熵解码;步骤5、若是步骤4中是对I帧的熵解码,则在该帧熵解码完成后,主线程负责总体任务调度及根据I帧建立帧内CTU依赖表;帧级线程根据CTU依赖关系表建立CTU任务队列,并根据任务队列,通知主线程调度帧内线程进行帧内CTU的并行像素解码重构;帧级线程判断当前帧内CTU单元间的依赖,并通知主线程更新依赖表,当依赖表中某个CTU单元的所有依赖都完成解码时,该CTU单元被帧级线程被加入待解码任务队列中,帧级线程通知主线程调度空闲的帧内线程,解码帧内CTU待解码任务队列中的CTU;根据每个帧内线程的消息判断该CTU是否解码已结束,若结束,则该帧级会重新回归空闲状态,回到线程池等待,同时,帧级线程通知主线程更新帧内CTU依赖表;如果被更新的项依赖变成0,将其加入到帧内CTU待解码任务队列;步骤6:在帧内线程进行帧内像素重构的过程中,帧级线程判断是否当前帧至少有两行CTU已完成像素重构,若完成,则检测线程池是否为空,若不为空,则根据此时完成像素的CTU行数调用若干线程进行基于多线程负载均衡的联合并行环路滤波,设置最多调取N-1个线程,N是已完成解码的CTU行数,且N不小于2;若当前线程池为空,则暂时不进行环路滤波,帧级线程持续对线程池进行监测,直到线程池不为空;步骤7、帧级线程根据帧内CTU任务队列对帧内线程进行调度,同时对相邻帧进行判断,进行基于CTU的帧内或帧间融合并行解码;步骤8、帧级线程判断之前帧是否已经全部完成,若已完成,则根据下一帧的解码完成情况,通知主线程对尚未完成解码的CTU建立CTU依赖表;帧内线程对之前已解码完成的区域直接进行环路滤波;若当前帧的下一帧为I帧,则需等待当前帧全部完成解码,并且从当前帧的下一帧开始,跳转执行步骤6-8,直至当前帧图像解码完成后,执行步骤9;步骤9、检测视频码流是否全部解码完成,若完成则释放所有的资源;否则,跳转执行步骤6。2.根据权利要求1所述的基于HEVC核心模块融合的并行解码方法,其特征在于,所述步骤6中,依据当前帧像素解码重构完成的区域中,CTU划分方式不同,不同线程所承担的去方块滤波边界数不同;设计区域待滤波边界统计方法与区域划分方法,将待滤波边界均分给多个线程,从而实现线程间负载均衡。3.根据权利要求2所述的基于HEVC核心模块融合的并行解码方法,其特征在于,图像中全部CTU待滤波边界数统计方式如下:
其中,表示第i帧的去方块滤波边界数目估计,L表示一帧中CTU的个数;表示第i帧中第j个CTU的滤波计算复杂度估计,N
i,j
表示第i帧的第j个CTU中CU的个数;Comp
cu
,也即CU中包含的待滤波边界数目,可由TU划分信息得到;CTU待滤波边界数的具体对应关系为两个数组,数组...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。