CN104768000A - 异构集群中实现x264编码加速的方法、系统及计算节点 - Google Patents

异构集群中实现x264编码加速的方法、系统及计算节点 Download PDF

Info

Publication number
CN104768000A
CN104768000A CN201410002089.5A CN201410002089A CN104768000A CN 104768000 A CN104768000 A CN 104768000A CN 201410002089 A CN201410002089 A CN 201410002089A CN 104768000 A CN104768000 A CN 104768000A
Authority
CN
China
Prior art keywords
coding
video
computing node
frame
encoded
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
CN201410002089.5A
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201410002089.5A priority Critical patent/CN104768000A/zh
Priority to PCT/CN2014/080020 priority patent/WO2015100956A1/zh
Publication of CN104768000A publication Critical patent/CN104768000A/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/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

Landscapes

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

Abstract

本发明公开了一种异构集群中实现X264编码加速的方法、系统及计算节点,包括获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点并行处理;将来自各计算节点利用GPU设备进行编码加速处理后得到的编码后的结果,合并为完整的视频。本发明中基于支持GPU的异构集群环境,不仅使用了集群的并行能力,同时针对单个计算节点使用了GPU设备进行二次加速,充分发挥了异构集群的优势。而且,在本发明提供的技术方案中,利用GPU设备的性能优势,提高了通用性和兼容性。

Description

异构集群中实现X264编码加速的方法、系统及计算节点
技术领域
本发明涉及图形处理技术,尤指一种基于支持GPU的异构集群中实现X264编码加速的方法、系统及计算节点。
背景技术
目前,在X264编码优化领域主要有软件优化和硬件优化两个方面。其中,专门的硬件优化技术代价高,往往需要特定的硬件平台来支持,而且不能通用;软件优化技术,主要从算法层次和并行加速两个方面着手:X264程序本身,简化了H.264标准中的很多复杂算法,同时使用CPU中的多媒体指令从指令并行的角度进行了加速设计。目前,已有的X264程序的加速方案主要是利用同构集群或者单机上的图形处理器(GPU,Graphic ProcessingUnit)设备,来加速X264编码效率。
现有技术中,提出了集群环境中加速X264程序的设计和实现方案,参见“PC集群中的H.264并行编码效率分析”(“Parallel Coding EfficiencyAnalysis of H.264on PC cluster”(IEEE2010),其中,在集群中对slice并行方案和帧(frame)并行方案,进行了设计与分析,H.264标准规定每个图像帧可以划分为一个或多个slice,每个slice可包含多个宏块。虽然frame级并行方案,能减缓数据传输的压力,但是,frame方案中针对的是同构的集群环境,而且,在其基于帧(frame_based)并行方案中,主节点每次将一帧的数据传给一个计算节点进行计算,这样的实现方式并不能在有多个计算节点的集群中很好的发挥作用。
在AMD的公开号为US2009/0016430,发明名称为“利用GPU加速的软件视频编码器”(“Software Video Encoder with GPU Acceleration”)的申请中,提出了一种将整个编码任务分解,不同的任务调度到不同的设备进行计算的方案。在该技术方案中,GPU主要完成运动搜索过程以及熵编码过程。该方法突出的是,CPU间多线程的任务分配,而GPU设备的性能并没有发挥出来。
在“基于CUDA的H.264并行编码器研究与实现”(国防科学技术大学,苏华友硕士论文,2010年11月)中,提出了在单个GPU上利用统一设备架构(CUDA)加速H.264并行编码器的实现方案。利用GPU加速了X.264程序中的帧间预测、帧内预测、熵编码等过程。但是,其提出的加速方案中,由于加速的几个模块是严格的串行执行过程,因此,整体的加速性能受到了很大的影响。同时,在每一个模块的计算时,都是以宏块为单位顺序进行的,虽然文中采用了对角线扫描的方式以增加宏块处理的并行性,但是,这样的并行处理方式仍不能发挥GPU的优势。另外,该方法仅使用单个GPU加速,没有考虑集群环境,且基于CUDA加速,故其能够支持的GPU设备显然是受限的,比如该方法就不能支持AMD公司的GPU设备。
综上所述,现有基于支持GPU的异构集群的X264编码加速中,要么不能在有多个计算节点的集群中发挥作用,要么未考虑集群环境,不能将GPU设备的性能优势发挥出来,而且通用性和兼容性不好。
发明内容
为了解决上述技术问题,本发明提供一种异构集群中实现X264编码加速的方法、系统及计算节点,能够充分发挥异构集群的优势,利用GPU设备的性能优势,提高通用性和兼容性。
为了达到本发明目的,本发明提供了一种异构集群中实现X264编码加速的方法,包括:获取集群中计算节点的设备信息;
计算待编码的视频序列帧数目,同时按照所述计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点并行处理;
将来自各计算节点利用图形处理器GPU设备进行编码加速处理后得到的结果,合并为完整的视频。
所述计算待编码的视频序列帧frame数目包括:
对待编码的视频中的码流数据进行分离,获取视频流数据;
针对不同的视频格式,对获得的视频流数据进行解析,获取不同的视频流数据的头部以及视频流数据的视频段;
根据计算得出的视频流数据每一帧的大小,以及视频流数据的总长度,计算待编码的视频序列数目。
所述计算节点的设备信息,主要包括CPU设备的核的数目、GPU设备工作组信息。
所述每一个计算节点的计算任务v(v1,v2L vn)如下式所示:
其中,vi表示计算节点i上的计算任务,其中i=1,2,3…n;gi(i=1,2,3…n)表示计算节点i上是否存在GPU设备,gi表示对gi的值取反的运算;v表示视频序列数目;pi(pi=1,2,3…n)表示计算节点i的CPU设备的核的数目;floor表示下取整运算;。
所述将待编码的视频序列帧分段调度到相应的计算节点并行处理包括:
将各所述计算任务所包含的视频段调度到对应的计算节点上,每一个计算节点从对应的偏移量开始,依次处理接下来的vi帧视频序列;
其中,待编码的视频帧的偏移量分别为
本发明还提供了一种异构集群中实现X264编码加速的方法,包括:计算节点对待编码的视频段进行预处理,将不同的待编码的视频帧的像素点映射到不同的GPU工作组中,并行地处理一帧中的所有像素点的插值结果;
根据得到的插值结果,在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将不同的计算任务分别映射到不同的工作单元中进行计算;将编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价;
同时,并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价;
比较当前编码帧,在不同的编码模式下的帧内编码代价、帧间编码代价,以及综合编码中率失真优化、确定当前帧的编码类型。
本发明又公开了一种异构集群中实现X264编码加速的系统,至少包括源主节点、目的主节点、一个或一个以上计算节点;其中,
源主节点,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;
计算节点,用于利用GPU设备进行编码加速处理后,将编码后的结果输出给目的主节点;
目的主节点,用于接收来自各计算节点的编码后的结果,将其合并为完整的视频。
所述源主节点与目的主节点是同一节点。
所述计算节点的设备信息至少包括CPU设备的核的数目、GPU设备工作组信息。
本发明还公开了一种节点,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;接收来自各计算节点利用图形处理器GPU设备进行编码加速处理后的编码结果,并将编码后的结果合并为完整的视频。
本发明再公开了一种计算节点,至少包括预处理模块、帧内编码代价计算模块、帧间编码代价计算模块,以及处理模块;其中,
预处理模块,用于对待编码的视频段进行预处理,将不同的待编码的视频帧的像素点映射到不同的GPU工作组中,并行地处理一帧中的所有像素点的插值结果,将插值结果输出给帧内编码代价计算模块和帧间编码代价计算模块;
帧内编码代价计算模块,用于在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将不同的计算任务分别映射到不同的工作单元中进行计算;将编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价;
帧间编码代价计算模块,用于并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价;
处理模块,用于比较当前编码帧,在不同的编码模式下的帧内编码代价、帧间编码代价,以及综合编码中率失真优化、确定当前帧的编码类型。
与现有技术相比,本申请技术方案提供包括获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点并行处理;各计算节点利用GPU设备进行编码加速处理后,将编码后的结果合并为完整的视频。本发明中基于支持GPU的异构集群环境,不仅使用了集群的并行能力,同时针对单个计算节点使用了GPU设备进行二次加速,充分发挥了异构集群的优势。而且,在本发明提供的技术方案中,利用GPU设备的性能优势,提高了通用性和兼容性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明基于支持GPU的异构集群中实现X264编码加速的方法的流程图;
图2为本发明基于支持GPU的异构集群中实现X264编码加速的系统的组成结构示意图;
图3为本发明计算节点的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明基于支持GPU的异构集群中实现X264编码加速的方法的流程图,如图1所示,包括以下步骤:
步骤100:获取集群中计算节点的设备信息。
在异构集群中,计算节点可以是一个或一个以上,计算节点的设备信息是指计算节点中的所有设备的信息,主要包括CPU设备的核的数目、GPU设备工作组信息等,目前的集群系统或集群软件都提供直接获取到各计算节点的设备信息的功能,属于本领域技术人员的公知技术,这里不再赘述。
对于异构集群,假设计算节点的数目是n,n为大于1的自然数;那么,CPU设备的核的数目采用p(p1,p2L pn)表示,其中,pi(i=1,2,3…n)表示计算节点i的CPU设备的核的数目;GPU设备工作组采用local_dim(x,y,z),global_dim(x,y,z),其中,前者为工作组的局部ID,后者为工作组的全局ID,是OpenCL中的默认表示方式,这里的ID是每个核的ID。这里,使用exist_gpu(g1,g2L gn)来表示对应的计算节点上是否存在GPU设备,其中,gi(i=1,2,3…n)表示计算节点i上是否存在GPU设备,比如gi=0表示不存在,gi=1表示存在等。
步骤101:计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点并行处理。
本步骤中,计算待编码的视频序列帧(frame)数目包括:将待编码的视频按照不同的视频序列的类型和视频格式,计算待编码的视频序列frame数目V。具体实现中,首先,对待编码的视频中的码流数据进行分离,获取视频流数据,具体实现属于本领域技术人员的惯用技术手段,这里不再赘述;然后,针对不同的视频格式,对获得的视频流数据进行解析,获取不同的视频流数据的头部(即头字段)以及视频数据的详细信息(即视频段);最后,计算视频流数据每一帧的大小frame_size,以及视频流数据的总长度len,并按照公式(1)计算得出待编码的视频序列frame数目V:
V=len/frame_size    (1)
本步骤中,按照计算节点的设备信息分配视频编码任务包括:
按照每一个计算节点的CPU设备的核的数目,以及GPU设备的设备信息,分配视频编码任务。具体的编码任务分配中,为了简化编码任务分配的难度,可以认为每一个CPU节点的处理能力只与处理器数目相关,有GPU的计算节点和没有GPU计算节点的处理能力相比是一个常量。由此,得出每一个计算节点的编码任务即计算任务v(v1,v2L vn)如公式(2)所示:
v i = floor ( v × ( p i × g i × ∂ + p i × ~ g i ) Σ 1 n p i × g i × ∂ + Σ 1 n p i × ~ g i ) - - - ( 2 )
在公式(2)中,vi表示计算节点i上的计算任务,其中i=1,2,3…n。gi表示对gi的值取反的运算,floor表示下取整运算;pi(pi=1,2,3…n)表示计算节点i的CPU设备的核的数目,gi(i=1,2,3…n)表示计算节点i上是否存在GPU设备,V表示视频序列frame数目。
那么,每一个计算节点在对其编码任务进行编码时,读取的待编码的视频帧的偏移量分别为 offset ( 0 , v 1 , v 1 + v 2 , . . . , Σ 1 n - 1 v i ) .
本步骤中,将待编码的视频序列帧分段调度到相应的计算节点并行处理包括:按照公式(2)中分配的计算任务,将各自的计算任务所包含的视频段调度到对应的计算节点上。每一个计算节点从对应的偏移量开始,依次处理接下来的vi帧视频序列。
通过本发明步骤100~步骤101,依据计算节点的设备信息,针对其处理能力为每一个计算节点划分了计算任务,各计算节点在在整个集群环境中,对待编码的视频进行并行处理,达到了加速视频编码的目的,提高了编码效率。
步骤102:将来自各计算节点利用GPU设备进行编码加速处理后得到的编码后的结果,合并为完整的视频。
本步骤中,对于各个计算节点,针对X264程序的特点和编码流程的限制,对X264的前期预测线程进行并行加速处理。这样,对于X264的整体处理过程来讲,本发明强调的是,编码过程由适宜做逻辑运算的CPU设备来执行,而预测处理过程则由GPU设备来执行,GPU的编码是采用的通用的OpenCL技术来实现的。具体地,本步骤中,各计算节点利用GPU设备进行编码加速处理包括:
首先,对待编码的视频段进行预处理,即将不同的待编码的视频帧的最小组成单元即像素点映射到计算节点中的不同的GPU工作组中,所有的像素点计算都是独立进行的,并行地处理一帧中的所有像素点的插值结果,并缓存最终结果以作为计算帧编码代价的输入参数;这里,为了降低运算的复杂度,可以将预处理设置为比如针对8×8宏块进行处理。
然后,根据预处理后的插值结果进行帧内编码代价计算和帧间编码代价计算,其中,
帧内编码代价计算包括:每一个宏块(像素点的集合)的处理都有M种如8种不同的预测模式。在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将8种不同的计算任务分别映射到8个不同的工作单元中进行计算。一帧中的所有宏块映射到GPU的全局工作组中。计算得出每一个宏块的预测模式后,比较8种预测模式中编码代价最小的预测模式,选择编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价。计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价intra_cost;
帧间编码代价计算包括:并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中。计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价inter_cost。
其中,帧内编码代价计算、帧间编码代价计算属于本领域技术人员的惯用技术手段,具体实现这里不再赘述。
接着,通过比较当前编码帧,在不同的编码模式下的帧内编码代价intra_cost、帧间编码代价inter_cost,以及综合编码中率失真优化、及其它编码参数限制条件下,确定当前帧的编码类型。具体实现属于本领域技术人员的公知技术,这里不再赘述。
本步骤中,将编码后的结果合并为完整的视频包括:
每一个计算节点,会将编码后的编码结果返回给主节点,主节点按照输出视频的格式,对来自各计算节点编码后的码流数据进行重新封装,合成一个完整的视频。具体实现属于本领域技术人员的惯用技术手段,这里不再赘述。其中,对于本发明来讲,主节点指的是同一节点,也可以将其分为源节点与目的节点。
通过本步骤,在单个计算节点中,CPU和GPU设备相互协调工作,对待编码视频的前期预处理在GPU中实现,而视频编码在CPU中实现,充分发挥了GPU和CPU各自设备的优势,进一步提升了编码的性能。
与传统的同构集群不同,本发明中使用的支持GPU的异构集群环境,不仅使用了集群的并行能力,同时针对单个计算节点使用了GPU设备进行二次加速,充分发挥了异构集群的优势。与已有的采用CUDA技术实现环节不同,本发明提供的技术方案中,GPU的加速环节采用OpenCL技术来实现,实现了在应用X264应用软件的通用性和兼容性上提供支持,从而实现了在不同公司如AMD和Nivida公司的GPU设备上的运行。
图2为本发明基于支持GPU的异构集群中实现X264编码加速的系统的组成结构示意图,如图2所示,至少包括源主节点、目的主节点、一个或一个以上计算节点;其中,
源主节点,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;
计算节点,用于利用GPU设备进行编码加速处理后,将编码后的结果输出给目的主节点;
目的主节点,用于接收来自各计算节点的编码后的结果,将其合并为完整的视频。
其中,源主节点与目的主节点可以是同一节点。本发明还提供一种节点,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;接收来自各计算节点利用图形处理器GPU设备进行编码加速处理后的编码结果,并将编码后的结果合并为完整的视频。
其中,计算节点的设备信息至少包括CPU设备的核的数目、GPU设备工作组信息。
图3为本发明计算节点的组成结构示意图,如图3所示,计算节点至少包括预处理模块300、帧内编码代价计算模块301、帧间编码代价计算模块302,以及处理模块303;其中,
预处理模块300,用于对待编码的视频段进行预处理,将不同的待编码的视频帧的像素点映射到不同的GPU工作组中,并行地处理一帧中的所有像素点的插值结果,将插值结果输出给帧内编码代价计算模块301和帧间编码代价计算模块302;
帧内编码代价计算模块301,用于在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将不同的计算任务分别映射到不同的工作单元中进行计算;将编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价;
帧间编码代价计算模块302,用于并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价;
处理模块303,用于比较当前编码帧,在不同的编码模式下的帧内编码代价、帧间编码代价,以及综合编码中率失真优化、确定当前帧的编码类型。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种异构集群中实现X264编码加速的方法,其特征在于,包括:获取集群中计算节点的设备信息;
计算待编码的视频序列帧数目,同时按照所述计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点并行处理;
将来自各计算节点利用图形处理器GPU设备进行编码加速处理后得到的结果,合并为完整的视频。
2.根据权利要求1所述的方法,其特征在于,所述计算待编码的视频序列帧frame数目包括:
对待编码的视频中的码流数据进行分离,获取视频流数据;
针对不同的视频格式,对获得的视频流数据进行解析,获取不同的视频流数据的头部以及视频流数据的视频段;
根据计算得出的视频流数据每一帧的大小,以及视频流数据的总长度,计算待编码的视频序列数目。
3.根据权利要求1所述的方法,其特征在于,所述计算节点的设备信息,主要包括CPU设备的核的数目、GPU设备工作组信息。
4.根据权利要求3所述的方法,其特征在于,所述每一个计算节点的计算任务v(v1,v2…vn)如下式所示:
其中,vi表示计算节点i上的计算任务,其中i=1,2,3…n;gi(i=1,2,3…n)表示计算节点i上是否存在GPU设备,gi表示对gi的值取反的运算;v表示视频序列数目;pi(pi=1,2,3…n)表示计算节点i的CPU设备的核的数目;floor表示下取整运算。
5.根据权利要求1所述的方法,其特征在于,所述将待编码的视频序列帧分段调度到相应的计算节点并行处理包括:
将各所述计算任务所包含的视频段调度到对应的计算节点上,每一个计算节点从对应的偏移量开始,依次处理接下来的vi帧视频序列;
其中,待编码的视频帧的偏移量分别为
6.一种异构集群中实现X264编码加速的方法,其特征在于,包括:计算节点对待编码的视频段进行预处理,将不同的待编码的视频帧的像素点映射到不同的GPU工作组中,并行地处理一帧中的所有像素点的插值结果;
根据得到的插值结果,在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将不同的计算任务分别映射到不同的工作单元中进行计算;将编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价;
同时,并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价;
比较当前编码帧,在不同的编码模式下的帧内编码代价、帧间编码代价,以及综合编码中率失真优化、确定当前帧的编码类型。
7.一种异构集群中实现X264编码加速的系统,其特征在于,至少包括源主节点、目的主节点、一个或一个以上计算节点;其中,
源主节点,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;
计算节点,用于利用GPU设备进行编码加速处理后,将编码后的结果输出给目的主节点;
目的主节点,用于接收来自各计算节点的编码后的结果,将其合并为完整的视频。
8.根据权利要求7所述的系统,其特征在于,所述源主节点与目的主节点是同一节点。
9.根据权利要求7或8所述的系统,其特征在于,所述计算节点的设备信息至少包括CPU设备的核的数目、GPU设备工作组信息。
10.一种节点,其特征在于,用于获取集群中计算节点的设备信息;计算待编码的视频序列帧数目,同时按照计算节点的设备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点;接收来自各计算节点利用图形处理器GPU设备进行编码加速处理后的编码结果,并将编码后的结果合并为完整的视频。
11.一种计算节点,其特征在于,至少包括预处理模块、帧内编码代价计算模块、帧间编码代价计算模块,以及处理模块;其中,
预处理模块,用于对待编码的视频段进行预处理,将不同的待编码的视频帧的像素点映射到不同的GPU工作组中,并行地处理一帧中的所有像素点的插值结果,将插值结果输出给帧内编码代价计算模块和帧间编码代价计算模块;
帧内编码代价计算模块,用于在GPU设备中并行计算时,将一个宏块的计算映射到GPU的一个本地工作组中,将不同的计算任务分别映射到不同的工作单元中进行计算;将编码代价最小的预测模式下的编码代价作为当前块的帧内编码代价;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧内编码代价;
帧间编码代价计算模块,用于并行处理一帧中的所有宏块,每一个宏块的处理映射到不同的处理单元中;计算时同步全局工作组中的线程,所有计算完成后,并行计算所有宏块的编码代价之和,得出该编码帧的帧间编码代价;
处理模块,用于比较当前编码帧,在不同的编码模式下的帧内编码代价、帧间编码代价,以及综合编码中率失真优化、确定当前帧的编码类型。
CN201410002089.5A 2014-01-02 2014-01-02 异构集群中实现x264编码加速的方法、系统及计算节点 Pending CN104768000A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410002089.5A CN104768000A (zh) 2014-01-02 2014-01-02 异构集群中实现x264编码加速的方法、系统及计算节点
PCT/CN2014/080020 WO2015100956A1 (zh) 2014-01-02 2014-06-16 异构集群中实现x264编码加速的方法、系统及计算节点、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410002089.5A CN104768000A (zh) 2014-01-02 2014-01-02 异构集群中实现x264编码加速的方法、系统及计算节点

Publications (1)

Publication Number Publication Date
CN104768000A true CN104768000A (zh) 2015-07-08

Family

ID=53493102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410002089.5A Pending CN104768000A (zh) 2014-01-02 2014-01-02 异构集群中实现x264编码加速的方法、系统及计算节点

Country Status (2)

Country Link
CN (1) CN104768000A (zh)
WO (1) WO2015100956A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10147103B2 (en) 2017-03-24 2018-12-04 International Business Machines Corproation System and method for a scalable recommender system using massively parallel processors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562750A (zh) * 2009-05-25 2009-10-21 腾讯科技(深圳)有限公司 视频编码快速模式选择装置及方法
US20120233486A1 (en) * 2011-03-10 2012-09-13 Nec Laboratories America, Inc. Load balancing on heterogeneous processing clusters implementing parallel execution
CN102752594A (zh) * 2012-06-21 2012-10-24 浙江大学 一种基于图像编解码与传输并行的集群渲染方法
CN103152613A (zh) * 2011-12-06 2013-06-12 上海文广互动电视有限公司 基于视频图像组分割的分布式转码任务调度系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098483A (zh) * 2007-07-19 2008-01-02 上海交通大学 以图像组结构为并行处理单元的视频集群转码系统
CN101640802B (zh) * 2009-08-28 2012-06-20 北京工业大学 基于宏块特征和统计特性的视频帧间压缩编码方法
CN102510499A (zh) * 2011-10-19 2012-06-20 清华大学 一种云环境中基于图像组的视频转码方法
CN102802053A (zh) * 2012-07-23 2012-11-28 深圳市融创天下科技股份有限公司 一种音视频文件转码集群调度方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562750A (zh) * 2009-05-25 2009-10-21 腾讯科技(深圳)有限公司 视频编码快速模式选择装置及方法
US20120233486A1 (en) * 2011-03-10 2012-09-13 Nec Laboratories America, Inc. Load balancing on heterogeneous processing clusters implementing parallel execution
CN103152613A (zh) * 2011-12-06 2013-06-12 上海文广互动电视有限公司 基于视频图像组分割的分布式转码任务调度系统及方法
CN102752594A (zh) * 2012-06-21 2012-10-24 浙江大学 一种基于图像编解码与传输并行的集群渲染方法

Also Published As

Publication number Publication date
WO2015100956A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
CN105491377B (zh) 一种计算复杂度感知的视频解码宏块级并行调度方法
CN104869398B (zh) 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法
CN101860752B (zh) 一种针对嵌入式多核系统的视频编码流水化并行方法
CN106339351B (zh) 一种sgd算法优化系统及方法
CN110087087A (zh) Vvc帧间编码单元预测模式提前决策及块划分提前终止方法
CN102547289A (zh) 基于gpu并行实现的快速运动估计方法
CN106851293A (zh) 用于帧内预测的解码图像的装置
CN103369315B (zh) 色度分量的帧内预测模式的编码、解码方法、设备及系统
CN101222646B (zh) 一种适用于avs编码的帧内预测装置及预测方法
CN103974081A (zh) 一种基于多核处理器Tilera的HEVC编码方法
CN103152613A (zh) 基于视频图像组分割的分布式转码任务调度系统及方法
CN109495743A (zh) 一种基于异构多处理平台的并行化视频编码方法
CN101115207B (zh) 基于预测点间相关性的帧内预测实现的方法及装置
CN109165733A (zh) 多输入多输出矩阵最大值池化向量化实现方法
CN103413273A (zh) 一种基于gpu加速实现图像复原处理方法
CN104392298A (zh) 一种采用粒子群算法进行生产调度的方法
CN101977313A (zh) 视频信号编码装置和方法
CN103702131B (zh) 一种基于模式预处理的帧内编码优化方法和系统
CN106851298A (zh) 一种高效视频编码方法及装置
CN1589028A (zh) 基于像素流水的帧内预测装置及预测方法
Kim et al. Efficient large-scale deep learning framework for heterogeneous multi-gpu cluster
CN109391816A (zh) 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法
CN102123275B (zh) 一种视频分量数据信息获取及提取的方法
CN1946178A (zh) 一种用于运动估计的vlsi装置及运动估计的方法
CN104768000A (zh) 异构集群中实现x264编码加速的方法、系统及计算节点

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150708