基于HEVC核心模块的并行解码方法、装置及介质制造方法及图纸

技术编号:27599342 阅读:71 留言:0更新日期:2021-03-10 10:20
本发明专利技术公开了一种基于HEVC核心模块融合的并行解码方法、装置及介质。本方法在熵解码模块,利用已有的帧级并行熵解码方法;在环路滤波模块,引入一种区域待滤波边界估计方法及划分方法,并利用缓存,实现基于多线程负载均衡的联合并行环路滤波方法;在像素解码重构模块,利用帧内及帧间CTU之间的数据依赖关系,实现基于CTU的帧内/帧间融合并行方法;最后,在三个模块之间,使用分级线程调度策略,并引入流水线并行技术,实现核心模块融合的并行解码方法。本方法充分利用了多核处理器的并行计算资源,提高了HEVC的实时解码处理效率。提高了HEVC的实时解码处理效率。提高了HEVC的实时解码处理效率。

【技术实现步骤摘要】
基于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倍。与此同时,高清、超高清视频包含比 以往标清视频更大规模的数据量,这些问题都给传统单核处理器带来了巨大压 力。目前,单纯依靠增加单核处理器的时钟频率来提升处理速度的方法已达到 极限,并且这种做法还会使得功耗变得更高。使用多核处理器技术成为解决上 述问题的重要途径。
[0003]国内外的学者已经在多核处理器上结合视频编解码标准做出了一些研究。 国际上,在韩国学者Seunghyun Cho和HyunMi Kim发表在2015年的IEEETransactions on multimedia上的论文“Efficient In-Loop Filtering Across Tile Boundaries for Multi-Core HEVC Hardware Decoders with 4K/8K-UHD VideoApplications”中,结合多核HEVC硬件解码器提出了一种控制环路滤波的方法。 该方法允许在跨越Tile边界时,解码器的内核继续处理下一个编码树单元 (CTU),而无需等待其他解码器完成对其他Tile中相邻CTU的ILF处理。 Mauriocio Alvarez-Mesa,Chi Ching Chi等人在发表于2012年的IEEE Transactionson circuits and systems for video technology的论文“Parallel Scalability andEfficiency of HEVC Parallelization Approaches”中,在一个12核,运行于3.33GHz 的平台上比较了Tile、WPP和OWF在并行处理时的表现,实验结果显示Tile 的性能略高于WPP,在12个核上,对所有给出的分辨率视频,解码速度平均提 高了7%。OWF有着更高的性能,平均比Tile高28%。HyunMi Kim等人在发表 的论文“An Efficient Architecture of In-Loop Filters for Multicore Scalable HEVCHardware Decoders”(2018)提出一种基于多核平台的高效环路滤波(ILF)方 案,解决了多个处理单元间的数据依赖问题,并能够灵活地对多个图像区域进 行滤波。国内学者也提出了一些多核平台的解码方法。大连理工大学信息与通 信工程学院的马爱迪等(2014年)提出了基于CPU+GPU混合平台的HEVC并 行解码器,采用CUDA硬件平台,且利用硬件优势完成系统优化。南京邮电大 学图像处理与图像通信实验室的方狄(2015年)提出了基于Tilera多核处理器 的HEVC多层次并行解码方法,实现了包括帧级CABAC并行熵解码,基于CTU 行的并行像素解码重构和CTU行级并行去方块滤波在内的三种并行方案,降低 了模块间的解码延迟。同实
验室的韩峰(2018年)提出基于Tilera多核处理器 的任务级与数据级相结合的HEVC并行解码技术,将HEVC解码流程划分成码 流读取,熵解码解析,像素解码重构,去方块滤波,SAO等多个环节,采用流 水线方式实现各环节间的并行处理,实现任务级与数据级的结合。同实验室的 张文祥(2019年)提出了细粒度多层次并行解码方案,进一步减少了系统整体 延迟,并且实现了在Tilera平台上同时处理两路视频流的实时解码,使多核资源 得到更加充分的利用。
[0004]前述学者提出的基于多核平台的HEVC并行解码研究成果虽然已经对多核 并行编解码方案做出了很大改进,但是解码效率上依然存在一些可以改进之处。

技术实现思路

[0005]本专利技术的目的在于克服现有技术中的不足,提供一种基于HEVC核心模块 融合的并行解码方法、装置及介质,解决在保证解码图像质量的前提下,进一 步提高并行解码效率的技术问题。
[0006]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0007]第一方面,本专利技术提供了一种基于HEVC核心模块融合的并行解码方法, 包括以下步骤:
[0008]步骤1:主线程进行初始化操作,包括初始化HEVC解码器,申请寄存器 单元,初始化缓存,初始化解码任务队列,置空任务队列;
[0009]步骤2:读入HEVC编码的序列码流,调用网络适配层NAL解析函数,解 析封装的各类参数信息,得到解码所需的profile、level、图像帧类型、图像尺寸 参数和环路滤波参数信息;
[0010]步骤3:根据步骤2中网络适配层解析生成的各类参数信息,在线程池中创 建与图像CTU行数相同数量的线程,通过多核函数库将每个线程绑定到不同的 核,保证各个线程能够进行多核并行解码,然后进入解码主循环;
[0011]步骤4、主线程对读入的视频流进行解析,若检测到是多个同级别的B帧, 则执行并行熵解码;否则,则调用单个帧级线程串行执行CABAC熵解码;
[0012]步骤5、若是步骤4中是对I帧的熵解码,则在一帧熵解码完成后,主线程 负责总体任务调度及根据I帧建立帧内CTU依赖表;帧级线程根据CTU依赖关 系表建立CTU任务队列,并根据任务队列,通知主线程调度帧内线程进行帧内 CTU的并行像素解码重构;帧级线程判断当前帧内CTU单元间的依赖,并通知 主线程更新依赖表,当依赖表中某个CTU单元的所有依赖都完成解码时,该CTU 单元被帧级线程被加入待解码任务队列中,帧级线程通知主线程调度空闲的帧 内线程,解码帧内CTU待解码任务队列中的CTU;根据每个帧内线程的消息判 断该CTU是否解码已结束,若结束,则该帧级会重新回归空闲状态,回到线程 池等待;同时,帧级线程通知主线程更新帧内CTU依赖表;如果被更新的项依 赖变成0,将其加入到帧内CTU待解码任务队列;
[0013]步骤6:在帧内线程进行帧内像素重构的过程中,帧级线程判断是否当前帧 至少有两行CTU已完成像素重构,若完成,则检测线程池是否为空,若不为空, 则根据此时完成像素的CTU行数调用若干线程进行基于多线程负载均衡的联合 并行环路滤波,设置最多调取N-1个线程,N本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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待滤波边界数的具体对应关系为两个数组,数组...

【专利技术属性】
技术研发人员:胡栋马浩李毅
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

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

1