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

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

Info

Publication number
WO2015100956A1
WO2015100956A1 PCT/CN2014/080020 CN2014080020W WO2015100956A1 WO 2015100956 A1 WO2015100956 A1 WO 2015100956A1 CN 2014080020 W CN2014080020 W CN 2014080020W WO 2015100956 A1 WO2015100956 A1 WO 2015100956A1
Authority
WO
WIPO (PCT)
Prior art keywords
video
frame
encoded
encoding
gpu
Prior art date
Application number
PCT/CN2014/080020
Other languages
English (en)
French (fr)
Inventor
王继刚
周斌
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2015100956A1 publication Critical patent/WO2015100956A1/zh

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

Definitions

  • the present invention relates to a graphics processing technology, and more particularly to a method, a system, a computing node, and a storage medium for implementing X264 encoding acceleration in a heterogeneous cluster supporting a GPU (Graphic Processing Unit). Background technique
  • the existing X264 encoding acceleration based on heterogeneous clusters supporting GPUs may not function in a cluster with multiple computing nodes, or the cluster environment may not be considered, and the performance advantages of GPU devices cannot be exerted. And versatility and compatibility are not good. Summary of the invention
  • the embodiment of the present invention provides a method, a system, and a computing node for implementing X264 encoding acceleration in a heterogeneous cluster, which can fully utilize the advantages of the heterogeneous cluster, utilize the performance advantages of the GPU device, and improve versatility and compatibility. Sex.
  • an embodiment of the present invention provides a method for implementing X264 encoding acceleration in a heterogeneous cluster, including: acquiring device information of a computing node in a cluster;
  • the video encoding task is allocated and the video sequence frame to be encoded is segmentally scheduled to the corresponding computing node for parallel processing;
  • the calculating the number of frame frames of the video sequence to be encoded includes:
  • the number of video sequences to be encoded is calculated according to the calculated size of each frame of the video stream data and the total length of the video stream data.
  • the device information of the computing node mainly includes the number of cores of the CPU device and the GPU device working group information.
  • the computing task v ( Vl , V2 ... of each of the computing nodes is as follows:
  • the segmentation of the video sequence frame to be encoded to the corresponding computing node for parallel processing includes:
  • the embodiment of the invention further provides a method for implementing X264 encoding acceleration in a heterogeneous cluster, the package Comprising: the computing node performs pre-processing on the video segment to be encoded, and maps pixel points of different video frames to be encoded into different GPU working groups, and processes interpolation results of all the pixels in one frame in parallel;
  • the calculation of one macro block is mapped to a local working group of the GPU, and different computing tasks are respectively mapped into different working units for calculation; the coding cost is minimized.
  • the coding cost in the prediction mode is used as the intra-frame coding cost of the current block; the thread in the global working group is synchronized in the calculation, and after all calculations are completed, the sum of the coding costs of all the macroblocks is calculated in parallel, and the intra-frame of the coded frame is obtained. Coding cost;
  • the embodiment of the invention further discloses a system for implementing X264 encoding acceleration in a heterogeneous cluster, which comprises at least a source master node, a destination master node, and one or more computing nodes;
  • the source master node is configured to acquire device information of the computing node in the cluster; calculate the number of video sequence frames to be encoded, allocate video encoding tasks according to the device information of the computing node, and schedule the video sequence frames to be encoded to the corresponding calculation.
  • the computing node is configured to perform encoding acceleration processing by using the GPU device, and output the encoded result to the target master node;
  • the destination master node is configured to receive the encoded results from each compute node and combine them into a complete video.
  • the source primary node and the destination primary node are the same node.
  • the device information of the computing node includes at least a number of cores of the CPU device and GPU device working group information.
  • the embodiment of the present invention further discloses a node configured to acquire device information of a computing node in a cluster; calculate a number of video sequence frames to be encoded, and allocate a video encoding task according to device information of the computing node and frame the video sequence to be encoded. The segmentation is scheduled to the corresponding computing node; receiving the encoding result from each computing node using the graphics processor GPU device for encoding acceleration processing, and combining the encoded result into a complete video.
  • the embodiment of the present invention further discloses a computing node, which includes at least a preprocessing module, an intra coding cost calculation module, an interframe coding cost calculation module, and a processing module;
  • the pre-processing module is configured to pre-process the video segments to be encoded, map the pixels of different video frames to be encoded into different GPU working groups, and process the interpolation results of all the pixels in one frame in parallel, The interpolation result is output to the intra coding cost calculation module and the interframe coding cost calculation module;
  • the intra-frame coding cost calculation module is configured to map a macro block calculation to a local working group of the GPU when the parallel computing is performed in the GPU device, and map different computing tasks to different working units for calculation;
  • the coding cost in the prediction mode with the lowest coding cost is used as the intra-frame coding cost of the current block;
  • the threads in the global work group are synchronized in the calculation, and after all the calculations are completed, the sum of the coding costs of all the macroblocks is calculated in parallel, and the coded frame is obtained.
  • Interframe coding cost calculation an interframe coding cost calculation module configured to process all macroblocks in a frame in parallel, the processing of each macroblock is mapped to a different processing unit; the threads in the global working group are synchronized during the calculation, all After the calculation is completed, the sum of the coding costs of all the macroblocks is calculated in parallel, and the interframe coding cost of the coded frame is obtained;
  • the processing module is configured to compare the current coded frame, the intra-frame coding cost in different coding modes, the inter-frame coding cost, and the rate-distortion optimization in the integrated coding to determine the coding type of the current frame.
  • the embodiment of the invention further describes a storage medium, wherein the storage medium stores a computer program configured to perform the foregoing X264 encoding acceleration in a heterogeneous cluster. Method.
  • the technical solution of the embodiment of the present invention provides: acquiring device information of a computing node in a cluster; calculating a number of video sequence frames to be encoded, and allocating a video encoding task according to device information of the computing node and to be encoded.
  • the video sequence frame is scheduled to be processed in parallel to the corresponding computing node; each computing node uses the GPU device to perform encoding acceleration processing, and then merges the encoded result into a complete video.
  • the heterogeneous cluster environment supporting the GPU in the embodiment of the present invention not only the parallel capability of the cluster is used, but also the GPU device is used for secondary acceleration for a single computing node, and the advantages of the heterogeneous cluster are fully utilized.
  • the versatility and compatibility are improved by utilizing the performance advantages of the GPU device.
  • FIG. 1 is a flowchart of a method for implementing X264 encoding acceleration in a heterogeneous cluster supporting a GPU according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a system for implementing X264 encoding acceleration in a heterogeneous cluster supporting a GPU according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a computing node according to an embodiment of the present invention. detailed description
  • FIG. 1 is a flowchart of a method for implementing X264 encoding acceleration in a GPU-supporting heterogeneous cluster according to an embodiment of the present invention. As shown in FIG. 1, the method includes the following steps:
  • Step 100 Obtain device information of the computing node in the cluster.
  • the computing node can be one or more.
  • the device information of the computing node refers to the information of all the devices in the computing node, including the number of cores of the CPU device, the working group information of the GPU device, and the like.
  • the system or the clustering software provides the function of directly acquiring the device information of each computing node, and is a well-known technology of those skilled in the art, and details are not described herein again.
  • the GPU device workgroup uses local_dim(x, y , Z global _dim(x, y, z), where the former is the local ID of the workgroup, and the latter is the global ID of the workgroup, which is the default representation in OpenCL, where ID is the ID of each core.
  • Step 101 Calculate the number of video sequence frames to be encoded, and allocate video coding tasks according to the device information of the computing node, and schedule the video sequence frames to be encoded to the corresponding computing nodes for parallel processing.
  • calculating the number of frames of the video sequence to be encoded includes: calculating the number of frames of the video sequence to be encoded according to the type of the different video sequences and the video format.
  • the code stream data in the video to be encoded is separated, and the video stream data is obtained, and the conventional technical means belonging to those skilled in the art are specifically implemented, and details are not described herein.
  • Video stream data is parsed, get not The header of the same video stream data (ie, the header field) and the detailed information of the video data (ie, the video segment); finally, the size of each frame of the video stream data frame_size, and the total length of the video stream data len, and Calculate the number of frames of the video sequence to be encoded according to formula (1):
  • the assigning the video encoding task according to the device information of the computing node includes: assigning a video encoding task according to the number of cores of the CPU device of each computing node and the device information of the GPU device.
  • the specific coding task assignment in order to simplify the difficulty of coding task assignment, it can be considered that the processing power of each CPU node is only related to the number of processors, and the computational power of the GPU has a constant value compared with the processing capability of the GPU computing node.
  • the coding task of each compute node, ie the computation task i is obtained as shown in equation (2):
  • V, floor ⁇ ;'
  • the offsets of the video frames to be encoded read are o (0, v donorv, + v 2 , ⁇ ⁇ ⁇ , 3 ⁇ 4 v t ).
  • scheduling the video sequence frame to be encoded to the corresponding computing node for parallel processing includes: scheduling the video segments included in the respective computing tasks to the corresponding computing nodes according to the computing tasks allocated in formula (2) on.
  • Each compute node begins with the corresponding offset and processes the next frame video sequence in sequence.
  • a computing task is divided for each computing node according to its processing capability, and each computing node is in the entire cluster environment.
  • Parallel processing of the coded video achieves the purpose of accelerating video coding and improves coding efficiency.
  • Step 102 Combine the encoded results obtained by using the GPU device for encoding acceleration processing from each computing node into a complete video.
  • each computing node for the characteristics of the X264 program and the limitation of the encoding process, the X264 pre-predicted thread is accelerated in parallel.
  • the encoding process is performed by a CPU device suitable for logical operations
  • the prediction process is performed by the GPU device
  • the GPU encoding is a general-purpose OpenCL. Technology to achieve.
  • each computing node performs coding acceleration processing by using the GPU device, including:
  • the video segment to be encoded is preprocessed, that is, the smallest component of the video frame to be encoded is mapped to a different GPU working group in the computing node, and all pixel calculations are performed independently.
  • the interpolation result of all the pixels in one frame is processed in parallel, and the final result is buffered as an input parameter for calculating the frame coding cost; here, in order to reduce the complexity of the operation, the preprocessing may be set to be processed, for example, for an 8x8 macroblock. .
  • the intra coding cost calculation includes: Each macro block (a collection of pixel points) has M kinds of 8 different prediction modes. When computing in parallel in a GPU device, the calculation of one macroblock is mapped to a local working group of the GPU, and eight different computing tasks are respectively mapped into eight different working units for calculation. All macroblocks in a frame are mapped into the GPU's global workgroup. After calculating the prediction mode of each macroblock, the prediction mode with the least coding cost among the eight prediction modes is compared, and the coding cost in the prediction mode with the smallest coding cost is selected as the intra coding cost of the current block. Synchronize the threads in the global working group during calculation.
  • the interframe coding cost calculation includes: processing all macroblocks in one frame in parallel, and the processing of each macroblock is mapped into a different processing unit. Synchronize the threads in the global workgroup at the time of calculation. After all calculations are completed, calculate the sum of the coding costs of all macroblocks in parallel, and obtain the interframe coding cost of the coded frame? 'wter-cos t.
  • the intra coding cost in the different coding modes the intra cos t, the inter coding cost, the ter _ cos t, the rate-distortion optimization in the integrated coding, and other coding parameter constraints.
  • the encoding type of the current frame The specific implementation is well known to those skilled in the art and will not be described herein.
  • combining the encoded results into a complete video includes:
  • Each computing node returns the encoded coded result to the master node.
  • the master node repackages the code stream data encoded by each compute node according to the format of the output video to form a complete video.
  • the specific implementation of the technical means belongs to those skilled in the art, and details are not described herein.
  • the primary node refers to the same node, and may also be divided into a source node and a destination node.
  • the CPU and the GPU device work in coordination with each other, and the pre-processing of the encoded video is implemented in the GPU, and the video encoding is implemented in the CPU, which fully exploits the advantages of the respective devices of the GPU and the CPU, further Improve the performance of the code.
  • FIG. 2 is a schematic structural diagram of a system for implementing X264 encoding acceleration in a heterogeneous cluster supporting a GPU according to an embodiment of the present invention. As shown in FIG. 2, at least a source primary node, a destination primary node, and one or more computing nodes are included; ,
  • the source master node is configured to acquire device information of the computing node in the cluster; calculate the number of video sequence frames to be encoded, allocate video encoding tasks according to the device information of the computing node, and schedule the video sequence frames to be encoded to the corresponding calculation.
  • the computing node is configured to perform encoding acceleration processing by using the GPU device, and output the encoded result to the target master node;
  • the destination master node is configured to receive the encoded results from each compute node and combine them into a complete video.
  • the source master node and the destination master node may be the same node.
  • the present invention further provides a node configured to acquire device information of a computing node in a cluster; calculate a number of video sequence frames to be encoded, and allocate a video encoding task according to device information of the computing node and schedule the video sequence frame to be encoded. Go to the corresponding computing node; receive the encoding result from each computing node using the graphics processor GPU device for encoding acceleration processing, and merge the encoded result into a complete video.
  • the device information of the computing node includes at least the number of cores of the CPU device and the GPU device working group information.
  • the computing node includes at least a preprocessing module 300, an intra encoding cost calculation module 301, an inter encoding cost calculation module 302, and a processing module 303; among them,
  • the pre-processing module 300 is configured to pre-process the video segments to be encoded, map pixel points of different video frames to be encoded into different GPU working groups, and process interpolation results of all the pixels in one frame in parallel. Outputting the interpolation result to the intra coding cost calculation module 301 and the interframe coding cost calculation module 302;
  • the intra-frame coding cost calculation module 301 is configured to map the calculation of one macro block to a local working group of the GPU when performing parallel computing in the GPU device, and map different computing tasks to different working units for calculation;
  • the coding cost in the prediction mode with the smallest coding cost is taken as the intra-frame coding cost of the current block; the threads in the global working group are synchronized in the calculation, and after all the calculations are completed, the sum of the coding costs of all the macroblocks is calculated in parallel, and the coding is obtained.
  • the intraframe coding cost of the frame
  • the inter-frame coding cost calculation module 302 is configured to process all the macroblocks in one frame in parallel, and the processing of each macroblock is mapped to different processing units; the threads in the global working group are synchronized in the calculation, after all calculations are completed, parallel Calculating the sum of the coding costs of all macroblocks, and obtaining the interframe coding cost of the coded frame;
  • the processing module 303 is configured to compare the current coding frame, the intra-frame coding cost in different coding modes, the inter-frame coding cost, and the rate-distortion optimization in the integrated coding to determine the coding type of the current frame.
  • the foregoing preprocessing module the intraframe coding cost calculation module, the interframe coding cost calculation module, and the processing module (AP, Application Processor), the central processing unit (CPU, Central Processing) Unit), digital signal processor (DSP, Digital Signal Processor) or programmable gate array (FPGA, Field Programmable Gate Array).
  • AP Application Processor
  • CPU Central Processing
  • DSP Digital Signal Processor
  • FPGA Field Programmable Gate Array
  • the embodiment of the invention further describes a storage medium in which a computer program is stored, the computer program being configured to perform the method for implementing the X264 encoding force speed in the heterogeneous cluster of the foregoing embodiment.
  • the invention is based on a heterogeneous cluster environment supporting GPU, which not only uses the parallel capability of the cluster, but also uses the GPU device for secondary acceleration for a single computing node, and fully exploits the advantages of the heterogeneous cluster. Moreover, the present invention utilizes the performance advantages of the GPU device to improve versatility and compatibility.

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, Graphic Processing Unit )的异构集群中实现 X264编码加速的方法、 系统及 计算节点、 存储介质。 背景技术
目前, 在 X264编码优化领域主要有软件优化和硬件优化两个方面。 其 中, 专门的硬件优化技术代价高, 往往需要特定的硬件平台来支持, 而且 不能通用;软件优化技术,主要从算法层次和并行加速两个方面着手: X264 程序本身, 简化了 H.264标准中的^ I多复杂算法, 同时使用 CPU中的多媒 体指令从指令并行的角度进行了加速设计。 目前, 已有的 X264程序的加速 方案主要是利用同构集群或者单机上的 GPU设备,来加速 X264编码效率。
现有技术中, 提出了集群环境中加速 X264程序的设计和实现方案, 参 见 "PC集群中的 H.264并行编码效率分析" ( "Parallel Coding Efficiency Analysis of H.264 on PC cluster" (IEEE 2010), 其中, 在集群中对 slice并行 方案和帧 (frame ) 并行方案, 进行了设计与分析, H.264 标准规定每个图 像帧可以划分为一个或多个 slice, 每个 slice可包含多个宏块。 虽然 frame 级并行方案, 能减缓数据传输的压力, 但是, frame方案中针对的是同构的 集群环境, 而且, 在其基于帧 (frame— based ) 并行方案中, 主节点每次将 一帧的数据传给一个计算节点进行计算, 这样的实现方式并不能在有多个 计算节点的集群中 [艮好的发挥作用。
在 AMD的公开号为 US 2009/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(Vl,V2... 如下式所示:
' 7 ,. ~ Λ其中, 表示计算节点 1上的计算任
1 1 务, 其中 i=l,2,3...n; gi. (i=l,2,3...n)表示计算节点 i上是否存在 GPU设 备, "^表示对 &的值取反的运算; V表示视频序列数目; Pl ( ^ =1,2,3... n) 表示计算节点 i的 CPU设备的核的数目; _fo。r表示下取整运算;。
所述将待编码的视频序列帧分段调度到相应的计算节点并行处理包 括:
将各所述计算任务所包含的视频段调度到对应的计算节点上, 每一个 计算节点从对应的偏移量开始, 依次处理接下来的 帧视频序列; 其中, 待编码的视频帧的偏移量分别为 offs,, ν,ν + ν2 ,···,¾ vt )。
1
本发明实施例还提供了一种异构集群中实现 X264编码加速的方法,包 括: 计算节点对待编码的视频段进行预处理, 将不同的待编码的视频帧的 像素点映射到不同的 GPU工作组中, 并行地处理一帧中的所有像素点的插 值结果;
根据得到的插值结果, 在 GPU设备中并行计算时, 将一个宏块的计算 映射到 GPU的一个本地工作组中, 将不同的计算任务分别映射到不同的工 作单元中进行计算; 将编码代价最小的预测模式下的编码代价作为当前块 的帧内编码代价; 计算时同步全局工作组中的线程, 所有计算完成后, 并 行计算所有宏块的编码代价之和, 得出该编码帧的帧内编码代价;
同时, 并行处理一帧中的所有宏块, 每一个宏块的处理映射到不同的 处理单元中; 计算时同步全局工作组中的线程, 所有计算完成后, 并行计 算所有宏块的编码代价之和, 得出该编码帧的帧间编码代价;
比较当前编码帧, 在不同的编码模式下的帧内编码代价、 帧间编码代 价, 以及综合编码中率失真优化、 确定当前帧的编码类型。
本发明实施例又公开了一种异构集群中实现 X264编码加速的系统,至 少包括源主节点、 目的主节点、 一个或一个以上计算节点; 其中,
源主节点, 配置为获取集群中计算节点的设备信息; 计算待编码的视 频序列帧数目, 同时按照计算节点的设备信息分配视频编码任务并将待编 码的视频序列帧分段调度到相应的计算节点;
计算节点, 配置为利用 GPU设备进行编码加速处理后, 将编码后的结 果输出给目的主节点;
目的主节点, 配置为接收来自各计算节点的编码后的结果, 将其合并 为完整的视频。
所述源主节点与目的主节点是同一节点。
所述计算节点的设备信息至少包括 CPU设备的核的数目、 GPU设备工 作组信息。 本发明实施例还公开了一种节点, 配置为获取集群中计算节点的设备 信息; 计算待编码的视频序列帧数目, 同时按照计算节点的设备信息分配 视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点; 接收 来自各计算节点利用图形处理器 GPU设备进行编码加速处理后的编码结 果, 并将编码后的结果合并为完整的视频。
本发明实施例再公开了一种计算节点, 至少包括预处理模块、 帧内编 码代价计算模块、 帧间编码代价计算模块, 以及处理模块; 其中,
预处理模块, 配置为对待编码的视频段进行预处理, 将不同的待编码 的视频帧的像素点映射到不同的 GPU工作组中, 并行地处理一帧中的所有 像素点的插值结果, 将插值结果输出给帧内编码代价计算模块和帧间编码 代价计算模块;
帧内编码代价计算模块, 配置为在 GPU设备中并行计算时, 将一个宏 块的计算映射到 GPU的一个本地工作组中, 将不同的计算任务分别映射到 不同的工作单元中进行计算; 将编码代价最小的预测模式下的编码代价作 为当前块的帧内编码代价; 计算时同步全局工作组中的线程, 所有计算完 成后, 并行计算所有宏块的编码代价之和, 得出该编码帧的帧内编码代价; 帧间编码代价计算模块, 配置为并行处理一帧中的所有宏块, 每一个 宏块的处理映射到不同的处理单元中; 计算时同步全局工作组中的线程, 所有计算完成后, 并行计算所有宏块的编码代价之和, 得出该编码帧的帧 间编码代价;
处理模块, 配置为比较当前编码帧, 在不同的编码模式下的帧内编码 代价、 帧间编码代价, 以及综合编码中率失真优化、 确定当前帧的编码类 型。
本发明实施例还记载了一种存储介质, 所述存储介质中存储有计算机 程序,所述计算机程序配置为执行前述的异构集群中实现 X264编码加速的 方法。
与现有技术相比, 本发明实施例的技术方案提供包括获取集群中计算 节点的设备信息; 计算待编码的视频序列帧数目, 同时按照计算节点的设 备信息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算 节点并行处理; 各计算节点利用 GPU设备进行编码加速处理后, 将编码后 的结果合并为完整的视频。本发明实施例中基于支持 GPU的异构集群环境, 不仅使用了集群的并行能力, 同时针对单个计算节点使用了 GPU设备进行 二次加速, 充分发挥了异构集群的优势。 而且, 在本发明实施例提供的技 术方案中, 利用 GPU设备的性能优势, 提高了通用性和兼容性。
本发明实施例的其它特征和优点将在随后的说明书中阐述, 并且, 部 分地从说明书中变得显而易见, 或者通过实施本发明而了解。 本发明的目 的和其他优点可通过在说明书、 权利要求书以及附图中所特别指出的结构 来实现和获得。 附图说明
此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一 部分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发 明的不当限定。 在附图中:
图 1为本发明实施例基于支持 GPU的异构集群中实现 X264编码加速 的方法的流程图;
图 2为本发明实施例基于支持 GPU的异构集群中实现 X264编码加速 的系统的组成结构示意图;
图 3为本发明实施例计算节点的组成结构示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚明白, 下文中将结合附 图对本发明的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互任意组合。
图 1为本发明实施例基于支持 GPU的异构集群中实现 X264编码加速 的方法的流程图, 如图 1所示, 包括以下步骤:
步骤 100: 获取集群中计算节点的设备信息。
在异构集群中, 计算节点可以是一个或一个以上, 计算节点的设备信 息是指计算节点中的所有设备的信息,主要包括 CPU设备的核的数目、GPU 设备工作组信息等, 目前的集群系统或集群软件都提供直接获取到各计算 节点的设备信息的功能, 属于本领域技术人员的公知技术, 这里不再赘述。
对于异构集群,假设计算节点的数目是", "为大于 1的自然数; 那么,
CPU设备的核的数目采用 … )表示, 其中, Pi ( i=l,2,3...n )表示计 算节点 i的 CPU设备的核的数目; GPU设备工作组采用 local— dim(x, y, Z global _dim(x, y, z),其中,前者为工作组的局部 ID,后者为工作组的全局 ID, 是 OpenCL 中的默认表示方式, 这里的 ID是每个核的 ID。 这里, 使用 ex^ -^^, &… g")来表示对应的计算节点上是否存在 GPU设备, 其中 ( i=l,2,3...n )表示计算节点 i上是否存在 GPU设备,比如& =0表示不存在, g =l表示存在等。
步骤 101 : 计算待编码的视频序列帧数目, 同时按照计算节点的设备信 息分配视频编码任务并将待编码的视频序列帧分段调度到相应的计算节点 并行处理。
本步骤中, 计算待编码的视频序列帧 (frame )数目包括: 将待编码的 视频按照不同的视频序列的类型和视频格式,计算待编码的视频序列 frame 数目 。 具体实现中, 首先, 对待编码的视频中的码流数据进行分离, 获取 视频流数据, 具体实现属于本领域技术人员的惯用技术手段, 这里不再赘 述; 然后, 针对不同的视频格式, 对获得的视频流数据进行解析, 获取不 同的视频流数据的头部(即头字段 )以及视频数据的详细信息(即视频段); 最后, 计算视频流数据每一帧的大小 frame _ size, 以及视频流数据的总长度 len, 并按照公式 (1)计算得出待编码的视频序列 frame数目 :
Figure imgf000010_0001
本步骤中, 按照计算节点的设备信息分配视频编码任务包括: 按照每一个计算节点的 CPU设备的核的数目, 以及 GPU设备的设备信 息, 分配视频编码任务。 具体的编码任务分配中, 为了简化编码任务分配 的难度,可以认为每一个 CPU节点的处理能力只与处理器数目相关,有 GPU 的计算节点和没有 GPU计算节点的处理能力相比是一个常量 3。 由此, 得出 每一个计算节点的编码任务即计算任务 i 如公式 (2)所示:
V, = floor η ;' )
1 1
在公式 (2)中, 表示计算节点 i上的计算任务, 其中 i=l,2,3...n。 " ^表 示对 &的值取反的运算, _ fo。r表示下取整运算; Pl ( A =l,2,3...n )表示计 算节点 i的 CPU设备的核的数目, gl ( i=l,2,3...n )表示计算节点 i上是否 存在 GPU设备, V表示视频序列 frame数目。
那么, 每一个计算节点在对其编码任务进行编码时, 读取的待编码的 视频帧的偏移量分别为 o (0, v„v, + v2 ,· · ·, ¾ vt )。
1
本步骤中, 将待编码的视频序列帧分段调度到相应的计算节点并行处 理包括: 按照公式 (2)中分配的计算任务, 将各自的计算任务所包含的视频 段调度到对应的计算节点上。 每一个计算节点从对应的偏移量开始, 依次 处理接下来的 帧视频序列。
通过本发明步骤 100〜步骤 101, 依据计算节点的设备信息, 针对其处理 能力为每一个计算节点划分了计算任务, 各计算节点在在整个集群环境中, 对待编码的视频进行并行处理, 达到了加速视频编码的目的, 提高了编码 效率。
步骤 102: 将来自各计算节点利用 GPU设备进行编码加速处理后得到的 编码后的结果, 合并为完整的视频。
本步骤中, 对于各个计算节点, 针对 X264程序的特点和编码流程的限 制, 对 X264的前期预测线程进行并行加速处理。 这样, 对于 X264的整体 处理过程来讲, 本发明强调的是, 编码过程由适宜做逻辑运算的 CPU设备 来执行, 而预测处理过程则由 GPU设备来执行, GPU的编码是采用的通用 的 OpenCL技术来实现的。 具体地, 本步骤中, 各计算节点利用 GPU设备 进行编码加速处理包括:
首先, 对待编码的视频段进行预处理, 即将不同的待编码的视频帧的 最小组成单元即像素点映射到计算节点中的不同的 GPU工作组中, 所有的 像素点计算都是独立进行的, 并行地处理一帧中的所有像素点的插值结果, 并缓存最终结果以作为计算帧编码代价的输入参数; 这里, 为了降低运算 的复杂度, 可以将预处理设置为比如针对 8x8宏块进行处理。
然后, 根据预处理后的插值结果进行帧内编码代价计算和帧间编码代 价计算, 其中,
帧内编码代价计算包括: 每一个宏块(像素点的集合) 的处理都有 M 种如 8种不同的预测模式。 在 GPU设备中并行计算时, 将一个宏块的计算 映射到 GPU的一个本地工作组中, 将 8种不同的计算任务分别映射到 8个 不同的工作单元中进行计算。 一帧中的所有宏块映射到 GPU的全局工作组 中。 计算得出每一个宏块的预测模式后, 比较 8种预测模式中编码代价最 小的预测模式, 选择编码代价最小的预测模式下的编码代价作为当前块的 帧内编码代价。 计算时同步全局工作组中的线程, 所有计算完成后, 并行 计算所有宏块的编码代价之和, 得出该编码帧的帧内编码代价^ ra _ cos t ; 帧间编码代价计算包括: 并行处理一帧中的所有宏块, 每一个宏块的 处理映射到不同的处理单元中。 计算时同步全局工作组中的线程, 所有计 算完成后, 并行计算所有宏块的编码代价之和, 得出该编码帧的帧间编码 代价? 'wter—cos t。
其中, 帧内编码代价计算、 帧间编码代价计算属于本领域技术人员的 惯用技术手段, 具体实现这里不再赘述。
接着, 通过比较当前编码帧, 在不同的编码模式下的帧内编码代价 intra cos t、 帧间编码代价《ter _ cos t, 以及综合编码中率失真优化、 及其它 编码参数限制条件下, 确定当前帧的编码类型。 具体实现属于本领域技术 人员的公知技术, 这里不再赘述。
本步骤中, 将编码后的结果合并为完整的视频包括:
每一个计算节点, 会将编码后的编码结果返回给主节点, 主节点按照 输出视频的格式, 对来自各计算节点编码后的码流数据进行重新封装, 合 成一个完整的视频。 具体实现属于本领域技术人员的惯用技术手段, 这里 不再赘述。 其中, 对于本发明来讲, 主节点指的是同一节点, 也可以将其 分为源节点与目的节点。
通过本步骤, 在单个计算节点中, 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, 配置为比较当前编码帧, 在不同的编码模式下的帧内编码 代价、 帧间编码代价, 以及综合编码中率失真优化、 确定当前帧的编码类 型。
本领域技术人员应当理解, 上述预处理模块、 帧内编码代价计算模块、 帧间编码代价计算模块, 以及处理模块均可由的应用处理器 (AP, Application Processor ), 中央处理器( CPU, Central Processing Unit )、 数字 信号处理器( DSP, Digital Signal Processor )或可编程门阵列( FPGA, Field Programmable Gate Array )等实现。
本发明实施例还记载了一种存储介质, 所述存储介质中存储有计算机 程序,所述计算机程序配置为执行前述实施例的异构集群中实现 X264编码 力口速的方法。
以上所述, 仅为本发明的较佳实例而已, 并非用于限定本发明的保护 范围。 凡在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进 等, 均应包含在本发明的保护范围之内。
工业实用性 本发明基于支持 GPU的异构集群环境, 不仅使用了集群的并行能力, 同时针对单个计算节点使用了 GPU设备进行二次加速, 充分发挥了异构集 群的优势。 并且, 本发明利用 GPU设备的性能优势, 提高了通用性和兼容 性。

Claims

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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2015100956A1 true WO2015100956A1 (zh) 2015-07-09

Family

ID=53493102

Family Applications (1)

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

Country Status (2)

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

Cited By (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 (6)

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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
CN102752594B (zh) * 2012-06-21 2015-01-28 浙江大学 一种基于图像编解码与传输并行的集群渲染方法

Patent Citations (6)

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

Cited By (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

Also Published As

Publication number Publication date
CN104768000A (zh) 2015-07-08

Similar Documents

Publication Publication Date Title
CN105491377B (zh) 一种计算复杂度感知的视频解码宏块级并行调度方法
US9148669B2 (en) High performance AVC encoder on a multi-core platform
KR101797845B1 (ko) 멀티코어 컴퓨팅 시스템에서 병렬 비디오 처리 장치 및 방법
CN102625108B (zh) 一种基于多核处理器实现的h.264解码方法
US10805622B2 (en) High efficiency video coding method and apparatus, and computer-readable storage medium
CN101710986A (zh) 基于同构多核处理器的h.264并行解码方法和系统
US9596467B2 (en) Motion estimation device for predicting a vector by referring to motion vectors of adjacent blocks, motion estimation method and storage medium of motion estimation program
US8340194B2 (en) High-yield multi-threading method and apparatus for video encoders/transcoders/decoders with dynamic video reordering and multi-level video coding dependency management
CN103414896B (zh) 一种基于多核实现的运动估计方法
Chang et al. Distributed video transcoding on a heterogeneous computing platform
KR20110134626A (ko) 매크로블록의 연관관계를 고려하여 영상 데이터의 부호화 및 복호화를 병렬 처리하는 장치 및 방법
CN104980764A (zh) 基于复杂度均衡的并行编解码方法、装置及系统
CN101256668B (zh) 一种计算均衡的多核进行视频滤波的方法
JP3621598B2 (ja) 並列ソフトウェア画像符号化方法、および並列ソフトウェア画像符号化プログラムを記録した記録媒体
WO2015100956A1 (zh) 异构集群中实现x264编码加速的方法、系统及计算节点、存储介质
CN105100799A (zh) 一种减少hevc编码器中帧内编码时延的方法
Gudumasu et al. Software-based versatile video coding decoder parallelization
Gao et al. An intelligent video processing architecture for edge-cloud video streaming
CN109587484B (zh) 基于双片dsp的多模式hevc视频编码器设计方法
US9781439B2 (en) Combined parallel and pipelined video encoder
Doan et al. Multi-asip based parallel and scalable implementation of motion estimation kernel for high definition videos
Wang et al. An optimized parallel IDCT on graphics processing units
Deng et al. GPU-based real-time decoding technique for high-definition videos
CN102023897B (zh) 一种众核环境下视频编解码动态多分辨率自适应并行方法和系统
Wang et al. Hardware architecture design of HEVC entropy decoding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14875983

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14875983

Country of ref document: EP

Kind code of ref document: A1