专利分类
专利分类

多核平台多层次任务级与数据级并行的HEVC解码方法专利

专利号:201810239375.1

销售价
1500
多核平台多层次任务级与数据级并行的HEVC解码方法专利二维码
  • 累计销量0
  • 浏览次数45
  • 累计评论0
首页

专利名称:基于多核平台多层次任务级与数据级并行的HEVC解码方法

技术领域:多核平台HEVC,解码方法

IPC主分类号:H04N19/44

申请号:CN201810239375.1

公开日:2019-11-22

说明书

基于多核平台多层次任务级与数据级并行的HEVC解码方法

技术领域

[0001] 本发明属于数字视频信号编解码领域,具体涉及基于多核平台多层次任务级与数据级并行的HEVC解码方法。

背景技术

[0002] 随着高清、超高清视频应用的急剧增加,为提高压缩性能以及满足海量视频数据的传输和存储要求,视频编码联合协作小组JCT-VC在2013年4月正式发布了新一代高效视频编解码国际标准HEVC(High Efficiency Video Coding)。HEVC编解码标准的主要目标是在H.264/AVC标准的基础上,在保证相同视频图像质量的前提下,将高分辨率的视频图像压缩效率提高一倍,使视频流的码率减少50%,进而更好地适应各种不同的网络环境,同时能够支持多核并行编解码。
[0003] HEVC的编码框架沿用了H.264/AVC的混合编码框架,是一种基于块的混合编码方案。但与以往的混合编码方案不同,HEVC几乎在每一个编码环节上都采取了重要的改进措施。HEVC将编码帧分为若干相邻但不重叠的方形编码树单元(Coding Tree Unit,CTU),CTU可以按照四叉树的形式进一步划分为若干方形编码单元CU(Coding Unit),CU还可以分解为更小的预测单元PU(Prediction Unit)和变换单元TU(Transform Unit)。HEVC在H.264/AVC预测模式基础上增加了很多方向预测模式来消除图像的空间相关性,每个PU支持35种预测模式。HEVC除了采用和H.264/AVC类似的环内去方块滤波(DeBlocking Filter,DBF)外,还增加了新的样点自适应补偿SAO(Sample Adaptive Offset)环内滤波工具,以此来减少失真。
[0004] 与以往的视频编解码标准相比,HEVC面临着计算复杂性迅速增加的问题,这直接影响了它的运行和实现,而提高处理速度、增强计算能力的有效方法之一就是在多核平台上进行并行化处理。Tilera系列多核处理器在当前多核处理器市场上就非常具有代表性,它作为一种可重构阵列结构DSP,采用了网格化多核架构,通过iMesh网络实现众多处理器核互连,将单芯片运算处理能力提高了几十到上百倍。国内的很多学者已经在多核处理器上对视频编解码标准做了一些研究。2016年,南京邮电大学的方狄在其论文“基于Tilera多核处理器的HEVC多层次并行解码方法的研究与实现”中将HEVC解码器分为三个任务模块,分别为熵解码模块、像素解码模块以及去方块滤波模块,并就后两个任务模块分别设计基于CTU行的并行方法,用单个核对同一CTU行进行串行解码操作,同时利用任务模块间CTU行的依赖关系实现解码器的并行计算处理。2016年,西南交通大学的刘鹏在其论文“基于多核的嵌入式HEVC解码器并行优化”中研究了一种去方块滤波并行方法,在该方法中,解码器会为每个线程分配均衡数目的CTU行,然后各线程会先对其所负责的多个CTU行进行垂直边界的滤波操作,待一帧图像的垂直边界滤波操作完成后,则再用这些线程对CTU行中所有的水平边界进行处理。但他们的研究有着一定的局限性,如对各任务模块进行并行处理时,是以CTU行为并行粒度,解码器用单个线程去串行解码一行CTU,但像素解码模块和去方块滤波模块其在进行并行化处理时的依赖关系是存在于各CTU单元之上的,而不是CTU行,这在一定程度上会增加时延,同时使得多核资源不能充分利用,造成核资源的浪费。另外去方块滤波的并行处理,完全地将垂直边界与水平边界的滤波操作分离开来,未充分考虑各边界的依赖关系,未能将垂直边界与水平边界的滤波操作相结合以实现并行操作,并行效率未能有效提升。

发明内容

[0005] 本发明所要解决的技术问题是现有技术对各任务模块进行并行处理时,是以CTU行为并行粒度,没有考虑CTU单元的依赖关系;同时去方块滤波的并行处理,完全地将垂直边界与水平边界的滤波操作分离开来,未充分考虑各边界的依赖关系,并行效率未能有效提升。
[0006] 为解决上述技术问题,本发明提供基于多核平台多层次任务级与数据级并行的HEVC解码方法,包括:
[0007] 步骤1、主线程首先对整个HEVC解码器进行初始化操作,读取二进制码流文件,创建HEVC解码器以及对内存单元进行申请;
[0008] 步骤2、从所读取的二进制码流中截取当前帧的码流并调用函数,对视频码流的设定单元进行解析,将得到的视频参数和全局信息保存至解码图像对象结构体中;
[0009] 步骤3、根据配置参数分配预设数目的线程,通过多核函数库将每个线程与不同的核进行绑定;
[0010] 步骤4、一个线程读取视频码流,对视频码流进行熵解码解析操作,在熵解码操作结束后将得到的量化系数QP和残差数据存入帧缓存中;
[0011] 步骤5、当前CTU单元的熵解码操作完成后,若当前CTU单元的左相邻、左上相邻、上相邻、右上相邻的CTU单元像素解码重构若都完成则安排线程对当前CTU单元进行像素解码重构;若线程完成当前CTU单元的像素解码重构操作,转入任务队列并进入等待状态;
[0012] 步骤6、当前CTU单元像素解码重构结束之后,且当前CTU单元左相邻CTU单元已完成垂直边界滤波操作,随即安排线程对当前CTU单元进行垂直边界的滤波处理操作,处理完成后,线程转入任务队列并进入等待状态;
[0013] 步骤7、当前CTU单元完成垂直边界滤波操作后,且当前CTU单元的左相邻、上相邻CTU单元已完成垂直边界的滤波,则安排线程对其进行水平边界的滤波操作;
[0014] 步骤8、若当前CTU单元的左相邻、左上相邻、上相邻、右上相邻的CTU单元样点自适应补偿操作都完成则安排线程对当前CTU单元进行样点自适应补偿SAO操作;
[0015] 步骤9、对下一帧图像帧中重复步骤5~8直到一帧视频码流的解码完成;
[0016] 步骤10、完成一帧视频码流的解码之后,检测视频码流是否全部解码完成,若完成则释放所有的资源和销毁线程池;若没完成,则返回步骤4。
[0017] 本发明所达到的有益效果:本发明以多核处理器为处理平台,同时结合HEVC标准,将整个HEVC解码器划分为5个任务模块,分别为码流读取模块、熵解码模块、像素重构模块、去方块滤波模块以及样点自适应补偿模块;针对不同的解码任务模块分别设计并行方法,并对缓冲存储空间进行有效管理,同时在各模块间利用各CTU单元的依赖关系实现不同解码任务间基于CTU单元的流水线并行处理,采用线程池技术为解码任务动态分配线程资源,提高多核资源利用率,且可以移植到其他的多核处理器中;本方法在保证解码图像质量的前提下,在多核处理器平台上对未使用任何并行编码方式的高清单一码流进行并行解码,完成视频解码器的并行操作,提高解码器整体并行加速比以及提升多核处理器的核利用率。

附图说明

[0018] 图1是本发明方法实施例的流程图;
[0019] 图2是本发明方法实施例实现的HEVC解码器架构;
[0020] 图3是本发明方法实施例的像素解码重构模块可并行处理的CTU单元的示意图;
[0021] 图4是本发明方法实施例的像素解码操作时需存放到缓冲存储区的像素点;
[0022] 图5是本发明方法实施例的当前CTU单元像素解码时所需的参考像素点;
[0023] 图6是本发明方法实施例的去方块滤波操作时边界强度计算流程图;
[0024] 图7是本发明方法实施例的行去方块滤波并行处理的各边界依赖性分析示意图;
[0025] 图8是本发明方法实施例的去方块滤波两个阶段操作时,需要存放到缓冲存储区中的像素点;
[0026] 图9是本发明方法实施例的各子任务模块CTU单元的依赖关系示意图;
[0027] 图10是本发明不同子任务模块在各CTU单元上的处理示意图;
[0028] 图11是本发明的多任务模块流水线并行解码架构图;
[0029] 图12是在不同QP下本发明进行多核并行解码时不同视频序列的平均加速比与WPP解码器算法的对比结果图。

具体实施方式

[0030] 下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0031] 本发明采用Tilera GX36多核处理器作为硬件实验平台,它由36个Tile核组成,Tilera多核处理器拥有一套完整的多核开发工具,为多核并行程序的开发提供了方便。
[0032] 图1本发明方法实施例的流程图;具体按照以下步骤:
[0033] 首先步骤1、主线程首先对整个解码器进行初始化操作,读取二进制码流文件,创建HEVC解码器以及对内存单元进行申请;
[0034] 进一步地,步骤2、从所读取的二进制码流中截取当前帧的码流并调用函数,对视频码流的相关单元进行解析,得到封存于其中的视频参数及一些全局信息如预测值,补偿值,量化参数、变化参数,再将这些信息保存至解码图像对象结构体中。
[0035] 进一步地,步骤3、为减少频繁创建以及终止线程所产生的开销,在解码器程序开始进行时,根据配置参数一次性分配固定数目的线程,固定数目可以预先设定,这些线程自始至终的存在,并采取线程池(Thread Pool)技术,通过多核函数库将每个线程与不同的核进行绑定,保证各个线程都能够充分地进行调度,实现多核高效并行解码。同时为了减少阻塞与唤醒线程所产生的代价,工作线程在解码头信息或者等待CTU单元时,不进入阻塞状态。之后进入主循环处理;
[0036] 进一步地,步骤4、安排一个线程对视频码流进行读取,并对其进行熵解码解析操作,并在熵解码操作结束后将得到的量化系数QP和残差数据存入帧缓存中;一个CTU单元的熵解码操作完成后,即可获得其重建时所需要的所有信息;
[0037] 进一步地,步骤5、若一个CTU单元重建操作所需的各类信息都已获得,则为该CTU行安排四个线程进行不同子任务间的流水线并行操作。采用像素解码重构并行方法来对CTU单元进行像素解码操作,为每一个依赖性得到满足的CTU单元分配一个核来进行相应的处理,直到该CTU单元像素解码结束。只将后面CTU单元所要参考的像素点放入缓冲存储区,而不是将所有像素点都放进去,来进一步效率;
[0038] 进一步地,步骤6、当图像帧中CTU单元像素解码重构结束之后,且与其左相邻CTU单元已完成垂直边界滤波操作,随即安排一个线程对其进行垂直边界的滤波处理操作,同样只将后面CTU单元所要参考的像素点放入缓冲存储区;
[0039] 进一步地,步骤7、当前CTU单元完成垂直边界滤波操作后,且左相邻、上相邻CTU单元已完成垂直边界的滤波,则安排线程对其进行水平边界的滤波操作;
[0040] 进一步地,步骤8、为满足依赖关系的CTU单元进行样点自适应补偿操作SAO操作,以完成该CTU单元的重建工作。这样重建好的CTU单元可以更快地被其他帧所参考,有利于实现帧间并行处理操作,更有效地提升多核资源的利用率;
[0041] 进一步地,步骤9、对下一帧图像帧中依赖关系得到满足的CTU单元,安排线程进行像素解码重构操作,并重复以上步骤;
[0042] 进一步地,步骤10、完成一帧视频码流的解码之后,检测视频码流是否全部解码完成,若完成则释放所有的资源和销毁线程池;若没完成,则返回步骤4。
[0043] 图2所示为本发明方法实施例实现的HEVC解码器架构。首先对经过编码后的二进制比特流进行熵解码,从而得到量化系数以及控制信息,再对量化系数进行反量化和反变换,得到残差信息。接下来解码器利用控制信息进行帧内预测以及帧间预测,预测信息与还原出的残差信息进行结合,再经过去方块滤波以及样点自适应补偿的环路滤波处理,得到输出的图像。
[0044] HEVC所提供的多项新的编码结构和编码工具都体现了它对并行处理实现的“友好”。本发明将整个HEVC解码器划分为5个任务模块,分别为码流读取模块、熵解码模块、像素重构模块、去方块滤波模块以及样点自适应补偿模块。针对不同的解码任务模块分别设计并行方法,并对缓冲存储空间进行有效管理,同时在各模块间利用各CTU单元的依赖关系实现不同解码任务间基于CTU单元的流水线并行处理,采用线程池技术为解码任务动态分配线程资源,提高多核资源利用率,且可以移植到其他的多核处理器中。
[0045] 图3是本发明方法实施例的像素解码重构模块可并行处理的CTU单元示意图。要想实现基于CTU单元的像素解码并行操作,必须使得各CTU单元的依赖性得到满足。每个CTU单元与它的左方、左上方、上方和右上方这4个相邻的CTU单元有数据依赖性,只有当这四个CTU的像素解码重构操作完成之后即CTU单元的依赖性得到满足才能对当前CTU进行像素解码操作。本发明利用线程池的动态调度策略为多个CTU单元同时分配多个线程以同步进行像素解码重构处理,同时为保证各CTU单元的解码依赖关系,前一CTU行的处理进度要比后一行提前两个CTU单元。
[0046] 图4是本发明方法实施例的像素解码操作时需存放到缓冲存储区的像素点。引入数据冗余减少机制后,在进行像素解码模块时,不必将整个CTU单元的像素点放到缓冲存储空间中,只将它上方CTU及左方CTU单元的边界像素点放到缓冲存储区中,可以避免大量冗余操作。
[0047] 图5是本发明方法实施例当前CTU单元进行像素解码操作时所需的参考像素点。可以发现,按照图4所示的减少冗余数据操作的方法,只将部分边界像素点放到缓冲存储空间去,当前CTU单元的依赖性依然可以得到满足,并进行解码操作。
[0048] 图6是本发明方法实施例进行去方块滤波操作时边界强度计算流程图。去方块滤波的主要难点在于判断是否对一个具体的块边界进行滤波,同时确定其滤波强度。过强的滤波可能会导致图像细节区过度平滑,而滤波强度不够又会让方块效应降低主观质量。确定一个块边界两边的像素是否需要滤波,主要取决于块边界两边的重建像素值的差值特征,自适应决定是否进行滤波操作,如果需要滤波,则要安排适当的滤波强度和滤波深度。
[0049] 图7是本发明方法实施例进行去方块滤波并行处理的各边界依赖性分析示意图。滤波器开关和强弱判断涉及到4行边界左右6个像素。强滤波会对垂直边界的左、右边相邻3个像素值进行更新,弱滤波会对边界相邻块各两个像素值进行更新。考虑到以上滤波操作时像素值的更新关系,发现任意的垂直边界与其他垂直边界都没有依赖关系,且滤波操作相互不影响,因此可以对其进行并行滤波处理。但对于水平边界,如图7,虚线所围起来的像素区域是实际进行滤波操作的CTU单元大小,相当于一个修正后的CTU单元,所以需要等与它左相邻、上相邻的CTU单元完成垂直边界的滤波处理操作,才能对当前CTU单元的水平边界进行滤波处理。
[0050] 图8是本发明方法实施例的进行去方块滤波两个阶段操作时,当前CTU单元需要放到缓冲存储区中的像素点。这些像素点是下一个CTU进行滤波操作时所需要参考像素点。只存放这些被依赖的像素点,减少数据的冗余操作,提升解码效率。
[0051] 图9是本发明方法实施例的各子任务模块CTU单元的依赖关系示意图。当前CTU单元要进行像素解码重构操作,需要其左方、上方、右上方三个相邻的CTU单元已完成相应操作,在对其进行并行处理时,要使得像素依赖性得到满足。另外如图9所示在对第N行CTU第k个CTU单元进行去方块滤波操作时,与之左相邻、上相邻的CTU单元已完成去方块滤波操作,且第N+1行CTU已经完成第k个CTU单元的像素解码重构操作。同样地要对第N行CTU第k个CTU单元进行去样点自适应补偿操作SAO操作时,需要第N+1行CTU已经完成第k+1个CTU单元的去方块滤波操作。不过在两个相邻图像帧之间,在当前帧图像的最后一行CTU进行样点自适应补偿操作SAO操作时,线程同样存在着空等待问题,所以借助于OWF算法的思想,等待中的线程直接对下一图像帧中帧间预测依赖性关系得到满足的CTU单元进行像素解码重构操作。简单点讲,当一个解码任务模块被分成多个子任务模块时,多个子任务模块虽说可以进行并行处理操作,但这个并行操作不是同时起步的,相邻两个子任务模块之间存在着两个CTU单元的时延,以保证CTU单元解码的依赖性得到满足。
[0052] 图10所示为本发明不同子任务模块在各CTU单元上的处理示意图。可以发现,像素解码操作在相邻的CTU行中存在着两个CTU单元的延迟,同时当一个CTU单元完成像素解码重构操作后,立刻为该CTU单元安排一个线程以进行垂直边界的滤波处理,待垂直边界滤波完成后,随即进行水平边界的滤波处理。另外当样点自适应补偿操作SAO操作的依赖关系得到满足时,再安排一个线程对CTU单元进行样点自适应补偿操作SAO操作。同时为了防止一帧图像解码操作即将完成时绝大多数线程进入空等待的情况发生,本方法借助OWF算法的思想,将线程池中处于等待状态下的线程直接用来对下一图像帧中帧间预测依赖性关系得到满足的CTU单元进行像素解码重构操作,以实现相邻帧之间的并行处理操作。
[0053] 图11所示为本发明的多任务模块流水线并行解码架构图。将整个HEVC解码器划分为5个任务模块,分别为码流读取模块、熵解码模块、像素重构模块、去方块滤波模块以及样点自适应补偿模块。针对不同的解码任务模块分别设计并行方法,并对缓冲存储空间进行有效管理,同时在各模块间利用各CTU单元的依赖关系实现不同解码任务间基于CTU单元的流水线并行处理,采用线程池技术为解码任务动态分配线程资源,提高多核资源利用率,且可以移植到其他的多核处理器中。
[0054] 为验证本发明方法的效果,进行了以下验证实验:利用本发明方法进行解码,选取3种视频序列“BasketballDrive”,“Cactus”,“Kimono”,QP分别为22、27、32、37。本发明的解码算法在Tilera多核处理器上分别实现了多核并行解码和单核串行解码。为了能够更好的衡量基于多核平台多层次任务级与数据级并行的HEVC解码方法的性能,实验将引入WPP并行方法。通过与WPP方法的对比,来进行并行加速比的对比分析。
[0055] 图12表示在不同QP下本发明在多核处理器中进行多核并行解码时不同视频序列的平均加速比,并与WPP解码器算法进行对比。其中并行程序设计的性能用加速比来表示,具体如下:
[0056]
[0057] 表1示出不同QP下本发明方法在不同核数下的并行解码加速比实验结果。
[0058] 表1实验结果
[0059]
[0060]
[0061] 由实验数据结果观察分析可知,对于同一个视频测试序列,不同的量化QP值会产生不同的解码加速比,编码端采用的量化QP值越小,解码器并行解码的速度也就越慢。相比于WPP并行算法线程利用率不高的情况,本文所设计基于多核平台多层次任务级与数据级并行的HEVC解码方法充分地利用各CTU单元的依赖关系,并在各解码任务模块之间采用流水线并行技术以减少解码器的解码时延,同时引入数据冗余减少机制对解码算法进行优化,极大地提升了解码器的并行解码效率。由图10的加速比对比图中可以发现本发明的并行解码算法在各个QP值之下的加速比都要比WPP解码器的加速比更高。
[0062] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

多核平台多层次任务级与数据级并行的HEVC解码方法委托购买说明

填写需求表单支付预付款

平台根据需求优化购买方案

确认购买方案支付尾款

平台办理变更等待成功通知

多核平台多层次任务级与数据级并行的HEVC解码方法购买流程说明

发起委托,需要先支付100元预付款,委托不成功,全额退返预付款;

平台收到需求后,会在第一时间联系您,给到您最佳购买方案;

您在确认购买方案后,需支付全额专利购买费,预付款可抵扣购买费,专利购买费具体参见下方表格;

平台确认收款后,将帮您办理专利购买、专利过户等全流程手续;

平台代购专利失败,将全额退返专利购买费,包括预付款;

多核平台多层次任务级与数据级并行的HEVC解码方法专利购买费用

授权未缴费=专利裸价+著录项变更(200元)+登办费(当年年费+5元印花税)+恢复权利请求费1000元(按实收)+委托服务费(200元)+税金(专利裸价+委托服务费)x6%

已下证=专利裸价+著录项变更(200元)+滞纳金(按实收)+恢复权利请求费1000元(按实收)+委托服务费(200元)+税金(专利裸价+委托服务费)x6%

多核平台多层次任务级与数据级并行的HEVC解码方法购买费用说明

专利转让费用

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。更多

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,最快多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

更多专利转让常见问题

动态评分

0.0

没有评分数据
没有评论数据
 
X 顶部大图