CN108540797A - 基于多核平台的hevc帧内/帧间联合wpp编码方法 - Google Patents

基于多核平台的hevc帧内/帧间联合wpp编码方法 Download PDF

Info

Publication number
CN108540797A
CN108540797A CN201810250015.1A CN201810250015A CN108540797A CN 108540797 A CN108540797 A CN 108540797A CN 201810250015 A CN201810250015 A CN 201810250015A CN 108540797 A CN108540797 A CN 108540797A
Authority
CN
China
Prior art keywords
frame
thread
coding
ctu
frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810250015.1A
Other languages
English (en)
Inventor
胡栋
谷涛
韩峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201810250015.1A priority Critical patent/CN108540797A/zh
Publication of CN108540797A publication Critical patent/CN108540797A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了基于多核平台的HEVC帧内/帧间联合WPP编码方法,包括以下步骤:主线程首先完成线程池及任务池的初始化及创建一个HEVC编码器;HEVC编码器接受用户命令行参数;将每个线程绑到不同的核上;逐帧读入图像并加入帧级任务队列,判断帧级任务队列是否达到设定的最大值;主线程对帧级任务队列中的所有帧进行类型判定与依赖性分析,并开启CTU行级编码线程;帧内依赖关系满足时申请线程处理下一个CTU行,帧间依赖关系满足时调取线程处理后续帧的CTU行,当一帧图像编码完成后,主线程输出码流信息,并继续读入新的帧,直到所有帧全部编码完成后释放系统资源并销毁线程池和任务池。本发明有省时且并行编码效率高的优点。

Description

基于多核平台的HEVC帧内/帧间联合WPP编码方法
技术领域
本发明涉及视频编码技术领域,具体涉及基于多核平台的HEVC帧内/帧间联合的WPP编码方法。
背景技术
HEVC(High Efficiency Video Coding)作为新一代视频编码国际标准,于2010年4月在德国德累斯顿召开的JCT-VC会议中被提出。该标准核心目标是在前一个标准H.264/AVC的High Profile基础上,将压缩效率提高一倍,即保证在相同的视频图像质量前提下,视频流的码率减少50%。HEVC遵循了H.264/AVC的编码核心机制,并采用了多种新的并行编码处理技术,以提高了编码运算性能。其中,包括波前并行处理技术WPP(WavefrontParallel Processing)是受到普遍关注的一种方式。在WPP编码时,将一帧图像分割为多个编码树单元CTU(Coding Tree Unit)行,每个CTU行会继续划分为多个CTU块。此时,每个CTU行就构成了一个独立的分区,在处理时都会依赖于其前一个CTU行,二者之间使用两个连续CTU块的时延来进行关联,即每一个CTU行都要比其上面一个CTU行滞后两个CTU单元才能进行处理。这样在CTU相互依赖关系情况下便可以展开视频并行编码的工作。
在标准HEVC中,WPP基本算法如下所述:
(1)将一帧图像的第一个CTU行提交给一个运算单元处理;
(2)当第一个CTU行完成两个CTU单元的编码后,第二个CTU行交给另一个运算单元处理;
(3)如此类推,后续每一个CTU行的处理都将滞后其前一个CTU行两个CTU单元;
(4)编码直至完成该帧最后一个CTU行;
(5)编码下一帧。
上述WPP基本算法存在以下缺点:(1)在该算法中,如果一个运算单元处理完一行CTU后,在当前帧中没有剩余的CTU行可以交给它进行处理,那么在整帧图像编码重建完成之前,该运算单元会一直处于闲置状态,直到整幅图像编码重建完成后,才可以开始下一帧的波前并行处理,即:该WPP基本方式是逐帧进行的帧内单元并行(称其为帧内WPP方式),明显限制了并行编码效率,导致可提供的并行度不够充分;(2)耗时且编码速度慢。
发明内容
本发明的目的是提供一种省时、编码速度快且并行编码效率高的基于多核平台的HEVC帧内/帧间联合的WPP编码方法。
为实现上述目的,本发明采用了如下技术方案:所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,包括以下步骤:
步骤(1):主线程首先完成系统初始化的工作,包括:线程池及任务池的初始化、以及创建一个HEVC编码器;
步骤(2):HEVC编码器接受用户命令行参数,将参数传入HEVC编码器的内部编码图像结构体中,并根据参数来进行相应的配置;
步骤(3):线程池初始化完成后,根据CPU数量创建相应的线程数,通过调用多核函数库将每个线程绑定到不同的核上,并且设定同一个线程函数,保证各个线程能够多核并行处理;
步骤(4):进入编码主循环后,逐帧读入图像,加入帧级任务队列,并判断帧级任务队列是否达到设定的最大值,若没达到帧级任务队列设定的最大值,则继续读入帧;若达到帧级任务队列设定的最大值,则调用任务池为帧级任务队列中每一帧图像分配一个任务,每个任务拥有独立的内存空间来存储每一帧的参数信息,所有任务共享一个线程池资源;
步骤(5):主线程对帧级任务队列中的所有帧进行类型判定与依赖性分析,并开启CTU行级编码线程,开始真正的编码;
步骤(6):将CTU行作为最小的并行粒度调用线程池中的一个空闲线程来进行编码,并将该CTU行加入CTU行级任务队列;对于CTU行级任务队列中的所有CTU行,都会调用线程池中的空闲线程来进行编码,直到没有线程可用,此时CTU行级任务队列中的CTU行需等待新的空闲线程才能进行编码;当有CTU行编码完成时,将该CTU行编码线程重新加入线程池空闲队列,以供其他CTU行级任务调用;
步骤(7):对I帧的CTU行在满足帧内依赖关系条件下进行帧内的WPP并行处理,而对非I帧处理时,若当前帧中编码完成后,当帧间CTU依赖关系满足时,将调用线程池中的空闲线程对后续帧进行编码工作,实现帧内/帧间联合WPP编码;其中,上述的代表编码顺序中第i帧中第j+LH个CTU行的第k+LW个CTU块,其中LH、LW代表运动矢量的垂直分量位移和水平分量位移;
步骤(8):当一帧图像编码完成后,主线程输出码流信息,并跳转到步骤(4)继续读入新的帧,直到所有帧全部编码完成后释放系统资源并销毁线程池和任务池。
进一步地,前述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其中:步骤(7)中,当核资源数大于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:当前编码帧按照帧内WPP方式,当有核资源处理完CTU行后,在满足后续帧CTU对当前编码帧的依赖关系后,可将该核资源用于处理后续帧CTU行编码。
进一步地,前述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其中:步骤(7)中,当核资源数小于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:核资源数量的CTU行按照WPP进行编码,当有CTU行完成编码后,将该核资源转向当前帧剩余的CTU行,进行后续的编码,若有空闲的核资源则可以转向后续帧中满足依赖关系的CTU行。
进一步地,前述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其中:步骤(7)中,在处理非I帧数据时,当编码完成后,若当前有闲置的核资源则可以挂到下一帧,进行后续帧的编码工作,而不需要等待所在CTU行全部完成编码。
通过上述技术方案的实施,本发明的有益效果是:(1)利用线程池技术将多帧并行与WPP编码相结合,形成帧内/帧间联合并行编码,大大减小了编码时间,提高了编码速度,提高了并行加速比,提升了并行编码效率;(2)能够充分利用多核资源,在不影响视频图像主客观质量的前提下,减少编码的时间,提升并行编码效率。
附图说明
图1为本发明所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法的流程框图。
图2为本发明中帧内各CTU块之间的依赖关系示意图。
图3为本发明中帧级任务队列与CTU行级任务队列的关系示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
如图1、图2所示,所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,包括以下步骤:
步骤(1):主线程首先完成系统初始化的工作,包括:线程池及任务池的初始化、以及创建一个HEVC编码器;
步骤(2):HEVC编码器接受用户命令行参数,将参数传入HEVC编码器的内部编码图像结构体中,并根据参数来进行相应的配置;
步骤(3):线程池初始化完成后,根据CPU数量创建相应的线程数,通过调用多核函数库将每个线程绑定到不同的核上,并且设定同一个线程函数,保证各个线程能够多核并行处理;
步骤(4):进入编码主循环后,逐帧读入图像,加入帧级任务队列,并判断帧级任务队列是否达到设定的最大值,若没达到帧级任务队列设定的最大值,则继续读入帧;若达到帧级任务队列设定的最大值,则调用任务池为帧级任务队列中每一帧图像分配一个任务,每个任务拥有独立的内存空间来存储每一帧的参数信息,所有任务共享一个线程池资源,方便线程调度与切换;
步骤(5):主线程对帧级任务队列中的所有帧进行类型判定与依赖性分析,并开启CTU行级编码线程,开始真正的编码;
步骤(6):将CTU行作为最小的并行粒度调用线程池中的一个空闲线程来进行编码,并将该CTU行加入CTU行级任务队列;对于CTU行级任务队列中的所有CTU行,都会调用线程池中的空闲线程来进行编码,直到没有线程可用,此时CTU行级任务队列中的CTU行需等待新的空闲线程才能进行编码;当有CTU行编码完成时,将该CTU行编码线程重新加入线程池空闲队列,以供其他CTU行级任务调用;
步骤(7):对I帧的CTU行在满足帧内依赖关系条件下进行帧内的WPP并行处理,而对非I帧处理时,若当前帧中编码完成后,当帧间CTU依赖关系满足时,将调用线程池中的空闲线程对后续帧进行编码工作,实现帧内/帧间联合WPP编码;其中,上述的代表编码顺序中第i帧中第j+LH个CTU行的第k+LW个CTU块,其中LH、LW代表运动矢量的垂直分量位移和水平分量位移;
当核资源数大于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:当前编码帧按照帧内WPP方式,当有核资源处理完CTU行后,在满足后续帧CTU对当前编码帧的依赖关系后,可将该核资源用于处理后续帧CTU行编码;
当核资源数小于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:核资源数量的CTU行按照WPP进行编码,当有CTU行完成编码后,将该核资源转向当前帧剩余的CTU行,进行后续的编码,若有空闲的核资源则可以转向后续帧中满足依赖关系的CTU行;
步骤(8):当一帧图像编码完成后,主线程输出码流信息,并跳转到步骤(4)继续读入新的帧,直到所有帧全部编码完成后释放系统资源并销毁线程池和任务池。
在本实施例中,步骤(7)中在处理非I帧数据时,当编码完成后,若当前有闲置的核资源则可以挂到下一帧,进行的编码工作,而不需要等待所在CTU行全部完成编码,进一步缩减帧间依赖关系满足时间,更快进入到帧间WPP处理过程,整体提升视频并行编码效率;
同时,根据多核平台CPU核心的数量创建相应的线程数,并将每一个线程绑定到对应的核上,通过绑定可以避免线程从一个核上被调度到另一个核上导致的总线竞争和Cache利用率下降问题的发生,对于线程的并行,引入线程池模型来减少线程反复创建和销毁的开销,同时也减少多线程间的冲突,提升了处理效率;
并且,在本HEVC帧内/帧间联合的WPP编码方法中引入了线程池模型,可以有效地减少线程频繁地创建与销毁带来的大量系统开销,从而影响编码性能;具体的工作原理:在线程池初始化阶段,创建一定数量的线程并绑定到相应核上,当有任务需要线程资源时,则调用线程池中一个空闲线程来处理该任务,并将其状态置为忙;若无空闲线程则等待,当任务结束时,系统并非销毁这个线程,而是将它重新加入到线程池空闲队列中,并将其状态置为空闲,等待后续任务的调用;
在本HEVC帧内/帧间联合的WPP编码方法中,引入了两级优先权任务队列来完成CTU行级任务的存储,两级优先权任务队列关系示意图具体参见图3所示,即CTU行级任务队列中的每一个CTU行都会调用线程池中一个空闲线程来处理它,直到没有空闲线程可用,此时CTU行级任务队列中的CTU行级任务就会等待新的可用线程,一旦有CTU行完成编码工作,编码线程就会重新回到线程池中被下一个CTU行级任务调用;
为了验证本发明的有效性,在TILE-Gx36多核平台上对本发明进行实验,基于多核平台的HEVC帧内/帧间联合WPP并行编码算法是基于WPP算法改进而来的,因此为了比较本发明所述算法对编码性能的提升效果,对单核串行及WPP并行算法也进行实验,这里主要是为了对比几种不同的算法在多核平台上并行编码的效果,因而不考虑其他因素的影响,故统一设QP=28,其他QP下的结论类似,具体编码参数如表所示:
(1)CTU尺寸64×64时的实验结果:
(2)CTU尺寸64×64时的实验结果:
从上述实验结果可以看出,本发明所述的HEVC帧内/帧间联合的WPP编码方法相较于单核串行及WPP并行算法,具有编码时间短、编码速度快并行编码效率高等优点。
以上所述仅为本发明的一个具体实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明内。

Claims (4)

1.基于多核平台的HEVC帧内/帧间联合WPP编码方法,其特征在于:包括以下步骤:
步骤(1):主线程首先完成系统初始化的工作,包括:线程池及任务池的初始化、以及创建一个HEVC编码器;
步骤(2):HEVC编码器接受用户命令行参数,将参数传入HEVC编码器的内部编码图像结构体中,并根据参数来进行相应的配置;
步骤(3):线程池初始化完成后,根据CPU数量创建相应的线程数,通过调用多核函数库将每个线程绑定到不同的核上,并且设定同一个线程函数,保证各个线程能够多核并行处理;
步骤(4):进入编码主循环后,逐帧读入图像,加入帧级任务队列,并判断帧级任务队列是否达到设定的最大值,若没达到帧级任务队列设定的最大值,则继续读入帧;若达到帧级任务队列设定的最大值,则调用任务池为帧级任务队列中每一帧图像分配一个任务,每个任务拥有独立的内存空间来存储每一帧的参数信息,所有任务共享一个线程池资源;
步骤(5):主线程对帧级任务队列中的所有帧进行类型判定与依赖性分析,并开启CTU行级编码线程,开始真正的编码;
步骤(6):将CTU行作为最小的并行粒度调用线程池中的一个空闲线程来进行编码,并将该CTU行加入CTU行级任务队列;对于CTU行级任务队列中的所有CTU行,都会调用线程池中的空闲线程来进行编码,直到没有线程可用,此时CTU行级任务队列中的CTU行需等待新的空闲线程才能进行编码;当有CTU行编码完成时,将该CTU行编码线程重新加入线程池空闲队列,以供其他CTU行级任务调用;
步骤(7):对I帧的CTU行在满足帧内依赖关系条件下进行帧内的WPP并行处理,而对非I帧处理时,若当前帧中编码完成后,当帧间CTU依赖关系满足时,将调用线程池中的空闲线程对后续帧进行编码工作,实现帧内/帧间联合WPP编码;其中,上述的代表编码顺序中第i帧中第j+LH个CTU行的第k+LW个CTU块,其中LH、LW代表运动矢量的垂直分量位移和水平分量位移;
步骤(8):当一帧图像编码完成后,主线程输出码流信息,并跳转到步骤(4)继续读入新的帧,直到所有帧全部编码完成后释放系统资源并销毁线程池和任务池。
2.根据权利要求1所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其特征在于:步骤(7)中,当核资源数大于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:当前编码帧按照帧内WPP方式,当有核资源处理完CTU行后,在满足后续帧CTU对当前编码帧的依赖关系后,可将该核资源用于处理后续帧CTU行编码。
3.根据权利要求1所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其特征在于:步骤(7)中,当核资源数小于一帧图像的CTU行数时,帧内/帧间联合WPP编码的具体编码方式为:核资源数量的CTU行按照WPP进行编码,当有CTU行完成编码后,将该核资源转向当前帧剩余的CTU行,进行后续的编码,若有空闲的核资源则可以转向后续帧中满足依赖关系的CTU行。
4.根据权利要求1所述的基于多核平台的HEVC帧内/帧间联合WPP编码方法,其特征在于:步骤(7)中,在处理非I帧数据时,当编码完成后,若当前有闲置的核资源则可以挂到下一帧,进行后续帧的编码工作,而不需要等待所在CTU行全部完成编码。
CN201810250015.1A 2018-03-23 2018-03-23 基于多核平台的hevc帧内/帧间联合wpp编码方法 Pending CN108540797A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810250015.1A CN108540797A (zh) 2018-03-23 2018-03-23 基于多核平台的hevc帧内/帧间联合wpp编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810250015.1A CN108540797A (zh) 2018-03-23 2018-03-23 基于多核平台的hevc帧内/帧间联合wpp编码方法

Publications (1)

Publication Number Publication Date
CN108540797A true CN108540797A (zh) 2018-09-14

Family

ID=63485164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810250015.1A Pending CN108540797A (zh) 2018-03-23 2018-03-23 基于多核平台的hevc帧内/帧间联合wpp编码方法

Country Status (1)

Country Link
CN (1) CN108540797A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783232A (zh) * 2018-12-21 2019-05-21 王家万 视频数据处理方法、装置及存储介质
CN110418145A (zh) * 2019-07-26 2019-11-05 北京奇艺世纪科技有限公司 一种视频编码方法、装置、电子设备及存储介质
CN110446043A (zh) * 2019-08-08 2019-11-12 南京邮电大学 一种基于多核平台的hevc细粒度并行编码方法
CN111316643A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 视频编码方法、设备和可移动平台

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783232A (zh) * 2018-12-21 2019-05-21 王家万 视频数据处理方法、装置及存储介质
CN111316643A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 视频编码方法、设备和可移动平台
CN110418145A (zh) * 2019-07-26 2019-11-05 北京奇艺世纪科技有限公司 一种视频编码方法、装置、电子设备及存储介质
CN110418145B (zh) * 2019-07-26 2022-04-22 北京奇艺世纪科技有限公司 一种视频编码方法、装置、电子设备及存储介质
CN110446043A (zh) * 2019-08-08 2019-11-12 南京邮电大学 一种基于多核平台的hevc细粒度并行编码方法

Similar Documents

Publication Publication Date Title
CN108540797A (zh) 基于多核平台的hevc帧内/帧间联合wpp编码方法
CN105992008B (zh) 一种在多核处理器平台上的多层次多任务并行解码方法
CN102098503B (zh) 一种多核处理器并行解码图像的方法和装置
CN108449603B (zh) 基于多核平台多层次任务级与数据级并行的hevc解码方法
US9148669B2 (en) High performance AVC encoder on a multi-core platform
CN110337002B (zh) 一种在多核处理器平台上hevc多层次并行解码方法
EP2445211A1 (en) Multi-core image encoding processing device and image filtering method thereof
CN103297767A (zh) 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器
CN104539972A (zh) 一种多核处理器中视频并行解码的控制方法和装置
WO2016210177A1 (en) Parallel intra-prediction
US20190279330A1 (en) Watermark embedding method and apparatus
US8718129B2 (en) Power saving decoder architecture
CN103888782B (zh) 一种hevc解码器并行任务划分方法
Sankaraiah et al. GOP level parallelism on H. 264 video encoder for multicore architecture
CN109391816B (zh) 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法
Koivula et al. Performance evaluation of Kvazaar HEVC intra encoder on Xeon Phi many-core processor
Wang et al. A collaborative scheduling-based parallel solution for HEVC encoding on multicore platforms
CN110446043A (zh) 一种基于多核平台的hevc细粒度并行编码方法
Gudumasu et al. Software-based versatile video coding decoder parallelization
US10791332B2 (en) Video data processing system
CN102075753B (zh) 一种视频编解码中去块滤波方法
CN111093078A (zh) 视频解码方法及装置、存储介质、终端
CN109379591A (zh) 图片转码方法、电子装置及计算机可读存储介质
Hautala et al. Programmable lowpower implementation of the HEVC adaptive loop filter
Yan et al. Parallel deblocking filter for H. 264/AVC implemented on Tile64 platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180914

RJ01 Rejection of invention patent application after publication