WO2018171445A1 - 一种高效视频编码方法及装置、计算机可读存储介质 - Google Patents
一种高效视频编码方法及装置、计算机可读存储介质 Download PDFInfo
- Publication number
- WO2018171445A1 WO2018171445A1 PCT/CN2018/078578 CN2018078578W WO2018171445A1 WO 2018171445 A1 WO2018171445 A1 WO 2018171445A1 CN 2018078578 W CN2018078578 W CN 2018078578W WO 2018171445 A1 WO2018171445 A1 WO 2018171445A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pixel block
- pixel
- parallel
- video image
- encoded
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000002596 correlated effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
Definitions
- blockL, blockA and the current block are located in the same CTU for parallel processing, then the reconstructed pixels of block L and blockA (such as the pixels in the gray part of Figure 1) on which the current TB (Current TB) depends are not available.
- TU0 uses the result after the previous CTU calculation
- CM used by TU1 is the result after TU0 calculation
- CM used by TU3 is the result after TU2 calculation. This forms a CM inheritance dependency between adjacent blocks.
- An efficient video coding method includes the following steps:
- Each of the pixel blocks on the diagonal line of the pixel block is encoded in parallel as follows: the step of encoding each pixel block by referring to the encoded pixel block on the diagonal line of the adjacent pixel block is:
- Parallel encoding each pixel block on a diagonal line of a pixel block by: setting a pixel in a coded pixel block adjacent to the pixel block on a diagonal line of an adjacent pixel block, encoding each pixel block .
- Each of the pixel blocks on the diagonal line of the pixel block is encoded in parallel as follows: the step of encoding each pixel block by referring to the encoded pixel block on the diagonal line of the adjacent pixel block is:
- the sum of the number of first pixel blocks and the number of second pixel blocks is equal to the number of pixel blocks that are encoded in parallel for each video image.
- the invention also provides a high efficiency video coding device, comprising:
- a first coding unit configured to: perform parallel coding on each pixel block on a diagonal line of the pixel block by: encoding each pixel block in parallel with reference to the coded pixel block on a diagonal line of the adjacent pixel block;
- a second coding unit configured to perform: a pixel block on a diagonal line of the plurality of pixel blocks other than the diagonal line of the pixel block along a diagonal of the video image intersecting the diagonal line of the pixel block The parallel encoding is performed.
- the video image includes at least a first video image and a second video image
- the invention also provides an electronic device comprising:
- Parallel encoding the pixel blocks on the diagonal lines of the plurality of pixel blocks in parallel along the diagonal of the video image intersecting the diagonal line of the pixel block, and performing parallel encoding on the pixel blocks on the diagonal of the video image The pixel block on the diagonal of a video image has been encoded. Therefore, the pixel block on the diagonal of the video image can refer to the coded pixel block on the diagonal of the previous video image, and therefore, the efficient video coding method is released.
- the pixel block dependence in the HEVC encoding process can realize parallel encoding of the pixel block, thereby improving the encoding speed and ensuring the encoding quality.
- FIG. 2 is a schematic diagram of a possible prediction mode (MPM) calculation dependency in a coding prediction mode in a prior art HEVC encoding process
- CM probability model
- FIG. 6 is a schematic diagram of an efficient video coding method according to another embodiment of the present invention.
- FIG. 12 is a schematic diagram of hardware execution of an efficient video encoding method according to an embodiment of the present invention.
- FIG. 14 is a schematic diagram of an efficient video encoding apparatus according to an embodiment of the present invention.
- the video image is divided into a plurality of pixel blocks, which may be a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
- CU coding unit
- PU prediction unit
- TU transform unit
- the diagonal line of the pixel block refers to a line where the diagonal of the pixel block is located.
- a plurality of broken lines L1 to L7 parallel to each other in one direction are diagonal lines of the pixel block.
- a plurality of broken lines L8 and L14 which are parallel to each other in the other direction are also diagonal lines of the pixel block. It can be seen that in one video image, there are two sets of pixel blocks diagonally in different directions.
- the direction of the arrow in Figure 5 indicates the encoding order of the blocks of pixels, i.e., the block of pixels on the diagonal L2 of the video image is first encoded in parallel, and then the diagonal of the video image is L3.
- the upper pixel block is encoded in parallel until the pixel blocks on the video image diagonal L6 are encoded in parallel.
- the method of the embodiment may cancel the pixel dependence when the intra prediction is cancelled, because the pixels in the coding unit on the diagonal line of the pixel block are reconstructed. At the time, the pixels in the adjacent coding unit have been reconstructed, that is, the reconstructed pixels.
- the method of the present embodiment can release the possible prediction mode (MPM) calculation dependency.
- MPM possible prediction mode
- the pixel block dependency in the HEVC encoding process can also be cancelled, and the pixel block can be parallel coded.
- a set pixel in a neighboring coded pixel block of the pixel block for example, a device adjacent to the pixel block. Fixed pixels.
- the parallel encoding order of the pixel blocks in the second frame video image may be different from the parallel encoding order of the pixel blocks in the first frame video image.
- the second frame video image may also sequentially encode the pixel blocks on the diagonal line of the pixel block in parallel according to the direction of the arrow in FIG. 6.
- the pixel blocks of the video image need to be encoded in parallel using a central processing unit (CPU).
- CPU central processing unit
- the present invention also provides the following embodiments.
- a GPU supporting a Compute Unified Device Architecture is mainly composed of a stream multiprocessor (SM) array.
- SM stream multiprocessor
- Different GPUs contain different numbers of SMs, and each SM contains a certain number.
- a scalar stream processor (referred to as SP), and each SM has its own resources, and executes their respective threads independently of each other. The actual thread of execution in the SM is each SP.
- Kernel for example, the core functions Kernel1 and Kernel2 are called in parallel;
- the number of pixel blocks per parallel encoding is an integer multiple of SP numbers, so that each SP is not idle.
- step S100 the central processing unit 122 reads the stored video image from the memory 132 and divides the video image into a plurality of identical pixel blocks.
- step S120 the parallel coding of the pixel blocks on the diagonal lines of the plurality of pixel blocks is sequentially performed along the diagonal of the video image intersecting the diagonal line of the pixel block.
- Each cluster server performs an efficient video encoding method according to steps S100 to S120.
- an efficient video coding apparatus includes:
- the second encoding unit 120 is configured to perform: sequentially, on a diagonal line of the plurality of pixel blocks other than the diagonal line of the pixel block along a diagonal of the video image intersecting the diagonal line of the pixel block The block performs the parallel encoding.
- the implementation process of the high-efficiency video coding apparatus in this embodiment is specifically described in the implementation process of the corresponding steps in the high-efficiency video coding method, and details are not described herein again.
- the present invention also provides a storage medium, which is a computer readable storage medium, such as a temporary and non-transitory computer readable storage medium including instructions.
- the storage medium stores a computer program executable by the central processor 122 of the computer 10 to perform the high efficiency video encoding method described above.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开揭示了一种高效视频编码方法及装置、电子设备、计算机可读存储介质,该方法包括如下步骤:将视频图像划分成多个相同大小的像素块;对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码;沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。在高效视频编码方法解除了HEVC编码过程中的像素块依赖,可以实现对像素块进行并行编码,从而可以提高编码的速度,并且能够保证编码质量。
Description
本公开涉及互联网领域,特别涉及一种高效视频编码方法及装置、电子设备、计算机可读存储介质。
高效视频编码(HEVC)是一种压缩效率比目前最流行的H.264/AVC高一倍的编码方式,比较适合直播流的快速编码、转码。HEVC包括预测编码和熵编码。虽然HEVC属于基于块的混合编码框架,在各个编码阶段都有了增强和改进。但是由于这些改进导致HEVC的编码模式搜索空间非常大,为了保证编码质量,编码器都要进行大量的计算来寻找率失真代价较小的编码模式,即模式选择(mode decision,MD)。
近年来,基于CPU/GPU的混合异构计算系统逐渐成为高性能计算领域的研究热点。在基于CPU/GPU的混合异构计算系统上利用CPU/GPU协同计算来并行HEVC编码成为直播视频流实时编码的有效手段。
目前对HEVC并行相关的研究工作主要集中在帧间模式选择尤其是运动估量模块,对帧内MD并行的研究较少。随着帧间MD的并行化,帧内MD逐渐成为了速度瓶颈。HEVC标准支持的Tiles和WPP(wavefront parallel processing)算法在并行度和编码质量没有达到比较理想的平衡。
在HEVC编码标准中,一帧视频图像是被均匀的划分成很多个编码树单元(Coding Tree Unit,CTU),CTU块的大小可以为64×64、32×32或16×16,典型且不失一般性。
每一个CTU四叉树递归地划分为4个相同大小的子单元,该四叉树的每一个叶子节点叫作一个编码单元(coding nuit,CU);编码单元(CU)编码单元是一个正方形区域,代表着一个编码树单元四叉树划分的叶节点,是进行帧内或帧间编码的基本单元块。预测单元(PU)是在编码单元(CU)的基础上进行划分的,用来传输与预测过程相关信息的基本单元。一般来说,每一个CU可以包含一个或多个PU。变换单元(TU)也是在CU基础上进行划分的,用于变换和量化过程的基本单元。一般来说,每一个CU可以包含一个或多个TU。
通过分析HEVC编码标准,可以知道帧内MD存在多种数据依赖。
1)帧内预测时重构像素依赖
如图1所示,此依赖关系出现在帧内预测时,在一个预测块(PB)或变换块(TB)计算时,需要进行帧内预测,即需要参考相邻块已经重构出来的像素(已重构像素)对自身进行预测。对于一个M×M的TB来说,需要参考周围的4M+1个重构像素,分别来自于其左、上、左下、右上和左上方向已经编码重构完成的相邻图像区域。如果一个PB或TB要参考的重构像素跟它位于同一个CTU,那么重构像素是不可用的,因为相邻块也同时在进行模式选择,并未重构完成.如图1所示,blockL,blockA和当前块位于同一个CTU进行并行处理,那么当前TB(Current TB)所依赖的blockL和blockA的重构像素(如图1中灰色部分的像素)不可用。
2)编码预测模式时可能预测模式(MPM)计算依赖
为了提高编码压缩效率,在对当前PB(Current PB)进行帧内预测模式时需要参考相邻的左边PB(Left PB,LPB)和上边PB(Above PB,APB)的预测模式,构造一个长度固定为3的MPM列表,如图2所示,如果当前PB与参考的LPB或APB位于同一个CTU里面,那么LPB和APB的预测模式是不可用的,因为它们也同时在进行模式选择,预测模式还未得到。
3)概率模型(CM)继承依赖
HEVC中使用上下文自适应的二进制算术编码(context adaptive binary arithmetic coding,CABAC)进行语法元素的熵编码。CABAC的主要过程包括语法元素的二进制化、概率建模、算术编码和CM更新。为了提高编码效率,在编码的过程中CM会自适应动态更新,以更好地反映图像的局部区域特性,获得更高的压缩比。在HM模式选择过程中,熵编码器会使用CM去估计编码产生的位数以计算编码代价,CM是模拟实际编码过程动态更新的熵编码器会使用CM去估计编码产生的位数以计算编码代价。而Z扫描顺序小的块的MD完成之后会将CM传递给Z扫描大的块使用。如图3中所示,TU0使用的是上一个CTU计算之后的结果,TU1使用的CM是TU0计算之后的结果,以此类推,TU3使用的CM是TU2计算之后的结果。这样就形成了相邻块之间的CM继承依赖。
上述依赖均属于HEVC编码过程中的。由于存在这些依赖,在一个CTU中无法并行地对CU进行编码。
发明内容
为了解决相关技术中存在的无法并行地对CU进行编码的技术问题,本公开提供了一种高效视频编码方法及装置。
一种高效视频编码方法,包括如下步骤:
将视频图像划分成多个相同大小的像素块;
对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码;
沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。
在一个实施例中,
所述视频图像至少包括第一视频图像以及第二视频图像;
在对第一视频图像中的像素块进行并行编码时,同时对第二视频图像中的像素块进行并行编码,且第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量。
在一个实施例中,
所述对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码的步骤是:
对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上与所述像素块相邻的已编码像素块内设定像素,对每个像素块进行编码。
在一个实施例中,
所述对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码的步骤是:
对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上已编码像素块内与所述像素块相邻的像素,对每个像素块进行编码。
在一个实施例中,
第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于视频图像对角线上的像素块数量。
在一个实施例中,
利用CPU和GPU共同对视频图像的像素块进行并行编码。
在一个实施例中,
所述利用CPU和GPU共同对视频图像的像素块进行并行编码,包括:
为CPU分配与CPU计算能力正相关的第一像素块数量;为GPU分配与GPU计算能力正相关的第二像素块数量;
其中,第一像素块数量与第二像素块数量的总和等于每次对视频图像并行编码的像素块数量。
本发明还提供了一种高效视频编码装置,包括:
划分单元,被配置为执行:将视频图像划分成多个相同大小的像素块;
第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码;
第二编码单元,被配置为执行:沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。
在一个实施例中,
所述视频图像至少包括第一视频图像以及第二视频图像;
在对第一视频图像中的像素块进行并行编码时,同时对第二视频图像中的像素块进行并行编码,且第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量。
在一个实施例中,
所述第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上与所述像素块相邻的已编码像素块内设定像素,对每个像素块进行编码。
在一个实施例中,
所述第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上已编码像素块内与所述像素块相邻的像素,对每个像素块进行编码。
在一个实施例中,
第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于视频图像对角线上的像素块数量。
本发明还提供了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述高效视频编码方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成上述高效视频编码方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
沿着与像素块对角直线相交的视频图像对角线,依次对多条像素块对角直线上的像素块进行并行编码,在对视频图像对角线上的像素块进行并行编码时,前一条视频图像对角线上的像素块已经完成编码,因此,该视频图像对角线上的像素块可以参考前一条视频图像对角线上的已编码像素块,因此,在高效视频编码方法解除了HEVC编码过程中的像素块依赖,可以实现对像素块进行并行编码,从而可以提高编码的速度,并且能够保证编码质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是现有技术的HEVC编码过程中帧内预测时重构像素依赖的示意图;
图2是现有技术的HEVC编码过程中编码预测模式时可能预测模式(MPM)计算依赖的示意图;
图3是现有技术的HEVC编码过程中概率模型(CM)继承依赖示意图;
图4是本发明一种实施例的高效视频编码方法流程示意图;
图5是本发明一种实施例的高效视频编码方法示意图;
图6是本发明另一种实施例的高效视频编码方法示意图;
图7是本发明另一种实施例的高效视频编码方法示意图;
图8是现有技术一种CPU的架构示意图;
图9是现有技术一种CUDA的架构示意图;
图10是现有技术一种CUDA并行计算的线程结构;
图11是本发明一种实施例的高效视频编码方法流程示意图;
图12是本发明一种实施例的高效视频编码方法执行硬件示意图;
图13是本发明另一种实施例的高效视频编码方法执行硬件示意图;
图14是本发明一种实施例的高效视频编码装置示意图。
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如图4所示,是本发明一种实施例的高效视频编码方法,包括如下步骤。
S100、将视频图像划分成多个相同的像素块。
如图5所示,视频图像被划分出多个像素块,像素块可以是编码单元(CU)、预测单元(PU)或变换单元(TU)。
S110、对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码。
像素块对角直线是指,像素块对角线所在直线,如图5所示,在一个视频图像中,沿一方向相互平行的多条虚线L1至L7,是像素块对角直线。又如图6所示,同样在改视频图像中,沿另一方向相互平行的多条虚线L8和L14,亦是像素块对角直线。由此可见,在一个视 频图像中,存在不同方向的两组像素块对角直线。
如图5所示,每条像素块对角直线上至少有一个像素块,如像素块对角直线L1只有一个像素块11,像素块对角直线L7上只有一个像素块71。而像素块对角直线L2上则有两个像素块21和像素块22。
以对像素块对角直线L5为例,在对像素块对角直线L5上的像素块51至53进行并行编码的过程中,需要参考相邻像素块对角直线L4(即与像素块对角直线L5相邻)上的已编码像素块41至44。
在一个实施例中,在对像素块对角直线L3上的像素块进行编码的过程中,可以参考与相邻像素块对角直线L2上的相邻已编码像素块(与该像素块相邻)。
具体而言,以像素块32为例,在对像素块32进行编码时,需要参考已编码像素块22和已编码像素块21。再以像素块33为例,在对像素块33进行编码时,需要参考已编码像素块22。由此可见,相邻的已编码像素块可以是相邻的一个或两个已编码像素块。通常来说,参考两个相邻的已编码像素块会得到更好的编码效果。
S120、沿着与所述像素块对角直线相交的视频图像对角线,依次对多条像素块对角直线上的像素块进行所述并行编码。
如图5所示,L11是一条视频图像对角线(亦是图6中所示的一条像素块对角直线),L4是另一条视频图像对角线(亦是一条像素块对角直线)。视频图像对角线L11与像素块对角直线L1至L7分别相交。
图5中的箭头方向(即沿着视频图像对角线L11)表示对像素块的编码顺序,即首先对视频图像对角线L2上的像素块进行并行编码,然后对视频图像对角线L3上的像素块进行并行编码,直至对视频图像对角线L6上的像素块进行并行编码。
在对视频图像对角线L3上的像素块进行并行编码时,视频图像对角线L2上的像素块已经完成编码,因此,视频图像对角线L3上的像素块可以参考视频图像对角线L2上的已编码像素块;同样,在对视频图像对角线L6上的像素块进行并行编码时,视频图像对角线L5上的像素块已经完成编码,因此,视频图像对角线L6上的像素块可以参考视频图像对角线L5上的已编码像素块。
因此,在本实施例的方法中,解除了HEVC编码过程中的像素块依赖,可以实现对像素块进行并行编码,从而可以提高编码的速度。
具体而言,当该像素块是预测块或变换块时,本实施例的方法可以解除帧内预测时重构像素依赖,因为当对像素块对角直线上的编码单元中的像素进行重构时,相邻编码单元中的像素已完成重构,即是已重构像素。
当该像素块是预测块时,本实施例的方法可以解除可能预测模式(MPM)计算依赖。在对预测块进行帧内预测模式时,需要参考的相邻左边预测块和上边预测块已经完成编码,已经得到其预测模式。
当对像素块进行概率模型计算时,由于像素块的相邻已编码像素块已经完成编码,已经得到其概率模型。
本高效视频编码方法可以应用在直播流的实时转码。由于直播的观看端各有不同,分PC端、Web端、手机端,手机端又分高配、中配、低配。观看端的性能各有不同,而且观看端的网络带宽也有所不同,因此对不同端推送不同分辨率、码率的视频很有必要。而直播的特性要求我们推送的不同的流能保持同步性。因此本高效视频编码方法很适用于直播流的实时转码。
在一个实施例中,如图5所示,亦可以沿着箭头相反方向表示对像素块的编码顺序,即首先对视频图像对角线L6上的像素块进行并行编码,然后对视频图像对角线L5上的像素块进行并行编码,直至对视频图像对角线L2上的像素块进行并行编码。
在本实施例中,在对像素块对角直线上的像素块进行并行编码时,已编码像素块位于像素块的下方和/右方。
在一个实施例中,如图6所示,对于同样的视频图像,还可以按照图6的箭头方向(即沿着视频图像对角线L4),对多条像素块对角直线上的像素块进行并行编码。在本实施例中,在对像素块对角直线上的像素块进行并行编码时,已编码像素块位于像素块的下方和/左方。
在上述两个实施例的方法中,亦可以解除HEVC编码过程中的像素块依赖,实现对像素块进行并行编码。
在一个实施例中,为了更准确高效地对像素块对角直线上的像素块进行并行编码,需要参考像素块的相邻已编码像素块中的设定像素,例如与像素块相邻的设定像素。
以图5中的像素块53为例,在对像素块53进行编码时,需要参考相邻已编码像素块43和44中与像素块53相邻的像素(图5中阴影部分)。
需要指出的是,如图5所示,在一个视频图像中,当对像素块对角直线L1上的像素块11进行编码时,由于该像素块对角直线L1上仅有一个像素块11,亦可视为对像素块11进行并行编码。此时,对于像素块11的编码,可以参考前一个视频图像(前一帧)相同位置的像素块。
在每个视频图像中对不同的像素块对角线上的像素块进行并行编码时,由于不同的像素块对角线上的像素块数量不同,因此会导致处理的负载不均衡。为了解决负载不均衡的问题,本发明提供了以下实施例的高效视频编码方法。
在一个实施例中,在对第一视频图像中的像素块进行并行编码时,同时对第二视频图像中的像素块进行并行编码,且第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量。
如图7所示,相同标号的像素块表示在同一次编码时被并行编码的像素块。例如,第一帧视频图像上的像素块对角直线L16上的像素块2-1与第二视频帧图像上的像素块对角直线L20上的像素块2-1同时编码或并行编码,第一帧视频图像上的像素块对角直线L17上的像素块2-2与第二视频帧图像上的像素块对角直线L21上的像素块2-2同时编码或并行编码。
在图7中,可以看出,每次第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量5。例如,像素块对角直线L16上的像素块2-1与像素块对角直线L20上的像素块2-1的数量为5。
通过本实施例的技术方案,每次进行并行编码的像素块的数量是相同的,从而能达到每次编码的负载平衡。
在一个实施例中,第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于视频图像对角线上的像素块数量。如图7所示,像素块对角直线L16上的像素块2-1与像素块对角直线L20上的像素块2-1的数量为5,恰好等于视频图像对角线上的像素块数量5。
在一些实施例中,第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和亦可以是视频图像对角线上的像素块数量以外的其他常数。
例如,在图7中,对像素块对角直线L15上的像素块1-5和像素块对角直线L20上的像素块2-1进行并行编码,对像素块对角直线L16上的像素块2-1和像素块对角直线L21上的 像素块2-2进行并行编码,依次类推。在此实施例中,每次第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量6。
通过本实施例的技术方案,每次进行并行编码的像素块的数量是相同的,亦能达到每次编码的负载平衡。
第二帧视频图像中对像素块的并行编码顺序,可以与第一帧视频图像中对像素块的并行编码顺序不同。
例如,在图7中,第二帧视频图像亦可以按照图6中的箭头方向,依次对像素块对角直线上的像素块进行并行编码。
在一些实施例中,需要利用中央处理器(CPU)对视频图像的像素块进行并行编码,为了充分利用CPU中的缓存,本发明还提供了以下实施例。
通常来说,CPU内部有多级缓存,如图9所示,以Intel Xeon E3-1230V3为例,CPU内共有三级缓存。
其中第三级缓存容量最大,为8M,可以存储视频的多帧图片,但是速度最慢。
第二级缓存共有四块,每块大小为256KB,也可以存储一帧或半帧数据。
第一级缓存包括第一级数据缓存和第一级代码缓存,容量最小,但速度最快。其中,第一级数据缓存共有四块,每块大小为32KB。
为了充分利用第一级数据缓存,在步骤S100中,在对视频图像进行划分时,应保证一块第一级数据缓存可以存储整数倍的像素块编码时所用到的数据,防止第一级数据缓存存在多余的存储空间。其中,像素块编码时所用到的数据包括但不限于像素块原始像素值、参考的像素块或者像素的重构像素值、相邻已编码像素块的预测模式、相邻已编码像素块的概率模型等。
可以理解,如果第一级数据缓存足够大,可以容纳多帧视频图像,则不需要根据第一级数据缓存的大小对视频图像进行划分像素块。
另外,当利用图形处理器(GPU)对视频图像的像素块进行并行编码,亦需要充分利用GPU的缓存,亦需要保证相关缓存可以存储整数倍的像素块编码时所用到的数据。
在一些实施例中,需要利用图形处理器(GPU)对视频图像的像素块进行并行编码,为了充分利用GPU中的线程,本发明还提供了以下实施例。
通常来说,支持统一计算架构(Compute Unified Device Architecture,CUDA)的GPU主要由一个流多处理器(简称SM)阵列组成,不同的GPU所包含的SM数量也不同,每个SM又包含一定数量的标量流处理器(简称SP),且每个SM拥有各自的资源,相互独立并行执行各自的线程,SM中实际执行线程的是每个SP。
如图10所示,在一种计算能力2.0的GPU中,一个SM又包含32个标量流处理器(简称SP)、一个指令单元、一个32位的寄存器集合、共享存储器、常量缓存、纹理缓存等硬件资源。
CUDA并行程序是共有三个层级并行调度:
对每个核心函数(Kernel)并行调用;例如,对核心函数Kernel1和Kernel2是并行调用的;
每个核心函数并行调用多个线程块(Block);每个核心函数都对应一个线程网格(Grid)的线程组,而一个Grid由若干个线程块组成,而每个线程块则又由若干个线程组成,如图9所示。
在每个线程块中的每个线程并行执行。
在执行CUDA程序的时候,每个SP对应执行一个线程,每个SM对应一个Block,但一个SM中同时可以有多个活动线程块(Active Block),这些活动线程块会并发的执行。
因此在将视频图像划分为多个像素块时,保证每次并行编码的像素块数量为SP个数的整数倍,这样才能保证每个SP不空闲。
例如,一个SM中SP的数量为n,而每次并行编码的像素块数量为4n个,那么,需要4个SM对像素块进行并行编码,也即是,在网格中有4个活动Block
在一个实施例中,为了提高编码效率,可以利用CPU和GPU共同对视频图像的像素块进行并行编码。
为CPU分配与CPU计算能力正相关的第一像素块数量;为GPU分配与GPU计算能力正相关的第二像素块数量;其中,第一像素块数量与第二像素块数量的总和等于每次对视频图像并行编码的像素块数量。
具体而言,可以根据如下公式为CPU和GPU分配对应的像素块数量:
其中,TaskC和TaskG分别为分配给CPU和GPU的像素块数量,SC和SG分别为CPU和GPU的计算能力。
如图11所示,是本发明另一种实施例中,利用CPU和GPU共同进行高效视频编码方法,包括如下步骤。
S200、将视频图像划分成多个相同的像素块。
在一个实施例中,在对视频图像进行划分时,应保证一块第一级数据缓存可以存储整数倍的像素块编码时所用到的数据,防止第一级数据缓存存在多余的存储空间。
具体的执行步骤可以参考上述实施例,在此不再赘述。
S210、为CPU分配与GPU计算能力正相关的第一像素块数量;为GPU分配与GPU计算能力正相关的第二像素块数量;其中,第一像素块数量与第二像素块数量的总和等于每次对视频图像并行编码的像素块数量。
具体的执行步骤可以参考上述实施例,在此不再赘述。
S220、在一轮并行编码中,CPU对第一像素块数量的像素块进行并行计算,同时GPU对第二像素块数量的像素块进行并行计算。
S230、对编码数据进行同步。等该轮并行编码中,将所有的像素块编码完成后,再重新执行步骤S220,进行下一轮并行编码。
具体的执行步骤可以参考上述实施例,在此不再赘述。
如图12所示,本发明实施例提供的一种计算机的结构,该计算机用于执行高效视频编码方法。
该计算机10可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)122(例如,一个或一个以上处理器)和存储器132,一个或一个以上存储应用程序142或数据144的存储媒体130(例如一个或一个以上海量存储设备)。其中,存储器132和存储媒体130可以是短暂存储或持久存储。执行高效视频编码方法的程序存储在存储媒体130。更进一步地,中央处理器122可以设置为与存储媒体130通信,在计算机10上执行存储媒体130中的程序。计算机10还可以包括一个或一个以上电 源126,一个或一个以上有线或无线网络接口150,一个或一个以上输入输出接口158,和/或,一个或一个以上操作系统141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
更具体的,在步骤S100中,中央处理器122从存储器132中读取存储的视频图像,并将该视频图像划分成多个相同的像素块。
在步骤S110中,中央处理器122对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码。
在步骤S120中,沿着与所述像素块对角直线相交的视频图像对角线,依次对多条像素块对角直线上的像素块进行所述并行编码。
如图13所示,是另一个实施例中高效视频编码方法的硬件执行环境,包括主服务器、集群服务器1至集群服务器n。
主服务器用于根据每个集群服务器的计算能力,分配相应数量的视频图像给每个集群服务器,计算能力越强的集群服务器分配越多的视频图像。
每个集群服务器根据步骤S100至S120执行高效视频编码方法。
每个集群服务器执行高效视频编码方法得到的结果数据,可以传送给下一个需要依赖该结果数据进行编码的集群服务器。
如图14所示,是本发明一种实施例的高效视频编码装置,包括:
划分单元100,被配置为执行:将视频图像划分成多个相同大小的像素块;
第一编码单元110,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码;
第二编码单元120,被配置为执行:沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。
本实施例的高效视频编码装置的实现过程具体详见上述高效视频编码方法中对应步骤的实现过程,在此不再赘述。
本发明还提供了一种电子设备,该电子设备可以用于图13所示实施环境的集群服务器1至集群服务器n中,执行图3、图11任一所示的高效视频编码方法的全部或者部分步骤。所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述的高效视频编码方法。
该实施例中的电子设备的处理器执行操作的具体方式已经在有关该高效视频编码方法的实施例中执行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,本发明还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序可由计算机10的中央处理器122执行以完成上述高效视频编码方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (14)
- 一种高效视频编码方法,其特征是,包括如下步骤:将视频图像划分成多个相同大小的像素块;对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码;沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。
- 如权利要求1所述的方法,其特征是,所述视频图像至少包括第一视频图像以及第二视频图像;在对第一视频图像中的像素块进行并行编码时,同时对第二视频图像中的像素块进行并行编码,且第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量。
- 如权利要求1所述的方法,其特征是,所述对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码的步骤是:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上与所述像素块相邻的已编码像素块内设定像素,对每个像素块进行编码。
- 如权利要求1所述的方法,其特征是,所述对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行编码的步骤是:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上已编码像素块内与所述像素块相邻的像素,对每个像素块进行编码。
- 如权利要求2所述的方法,其特征是,第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于视频图像对角线上的像素块数量。
- 如权利要求1所述的方法,其特征是,利用CPU和GPU共同对视频图像的像素块进行并行编码。
- 如权利要求6所述的方法,其特征是,所述利用CPU和GPU共同对视频图像的像素块进行并行编码,包括:为CPU分配与CPU计算能力正相关的第一像素块数量;为GPU分配与GPU计算能力正相关的第二像素块数量;其中,第一像素块数量与第二像素块数量的总和等于每次对视频图像并行编码的像素块数量。
- 一种高效视频编码装置,其特征是,包括:划分单元,被配置为执行:将视频图像划分成多个相同大小的像素块;第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上的已编码像素块对每个像素块进行并行编码;第二编码单元,被配置为执行:沿着与所述像素块对角直线相交的视频图像对角线,依次对所述像素块对角直线以外的多条像素块对角直线上的像素块进行所述并行编码。
- 如权利要求8所述的装置,其特征是,所述视频图像至少包括第一视频图像以及第二视频图像;在对第一视频图像中的像素块进行并行编码时,同时对第二视频图像中的像素块进行并行编码,且第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于常量。
- 如权利要求8所述的装置,其特征是,所述第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上与所述像素块相邻的已编码像素块内设定像素,对每个像素块进行编码。
- 如权利要求8所述的装置,其特征是,所述第一编码单元,被配置为执行:对像素块对角直线上的每个像素块进行如下并行编码:参考相邻像素块对角直线上已编码像素块内与所述像素块相邻的像素,对每个像素块进行编码。
- 如权利要求9所述的装置,其特征是,第二视频图像中并行编码的像素块数量与第一视频图像中并行编码的像素块数量之和等于视频图像对角线上的像素块数量。
- 一种电子设备,其特征是,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行权利要求1-7任意一项所述的高效视频编码方法。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成权利要求1-7任意一项所述的高效视频编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/424,573 US10805622B2 (en) | 2017-03-22 | 2019-05-29 | High efficiency video coding method and apparatus, and computer-readable storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710173193.4 | 2017-03-22 | ||
CN201710173193.4A CN106851298B (zh) | 2017-03-22 | 2017-03-22 | 一种高效视频编码方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/424,573 Continuation US10805622B2 (en) | 2017-03-22 | 2019-05-29 | High efficiency video coding method and apparatus, and computer-readable storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018171445A1 true WO2018171445A1 (zh) | 2018-09-27 |
Family
ID=59130199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/078578 WO2018171445A1 (zh) | 2017-03-22 | 2018-03-09 | 一种高效视频编码方法及装置、计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10805622B2 (zh) |
CN (1) | CN106851298B (zh) |
WO (1) | WO2018171445A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106851298B (zh) * | 2017-03-22 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 一种高效视频编码方法及装置 |
CN108989805A (zh) * | 2018-06-06 | 2018-12-11 | 郑州云海信息技术有限公司 | 基于WebP图像压缩算法的图像处理方法及装置 |
CN109040753B (zh) * | 2018-08-17 | 2020-12-22 | 广州酷狗计算机科技有限公司 | 预测模式选择方法、装置及存储介质 |
CN111586416B (zh) * | 2020-06-02 | 2024-07-12 | 浙江大华技术股份有限公司 | 视频编码方法、装置、编码器及存储装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685505A (zh) * | 2011-03-10 | 2012-09-19 | 华为技术有限公司 | 帧内预测的方法和预测装置 |
CN104054346A (zh) * | 2012-01-19 | 2014-09-17 | 索尼公司 | 图像处理装置和方法 |
CN106851298A (zh) * | 2017-03-22 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种高效视频编码方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4843482B2 (ja) * | 2006-12-27 | 2011-12-21 | 株式会社東芝 | 情報処理装置およびプログラム |
CN101938645A (zh) * | 2009-07-03 | 2011-01-05 | 哈尔滨工业大学深圳研究生院 | 视频压缩帧内预测4×4模式硬件并行实现结构 |
JP6403393B2 (ja) * | 2014-02-12 | 2018-10-10 | 住友重機械工業株式会社 | 画像生成装置 |
-
2017
- 2017-03-22 CN CN201710173193.4A patent/CN106851298B/zh active Active
-
2018
- 2018-03-09 WO PCT/CN2018/078578 patent/WO2018171445A1/zh active Application Filing
-
2019
- 2019-05-29 US US16/424,573 patent/US10805622B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685505A (zh) * | 2011-03-10 | 2012-09-19 | 华为技术有限公司 | 帧内预测的方法和预测装置 |
CN104054346A (zh) * | 2012-01-19 | 2014-09-17 | 索尼公司 | 图像处理装置和方法 |
CN106851298A (zh) * | 2017-03-22 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种高效视频编码方法及装置 |
Non-Patent Citations (2)
Title |
---|
JIE ZHAO: "CE6: Parallel Prediction Unit for Parallel Intra Coding", JCTV COF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, 23 March 2011 (2011-03-23) * |
JIE ZHAO: "CE6: Parallel Prediction Unit for Parallel Intra Coding", JCTVC OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11 4TH MEETING, 28 January 2011 (2011-01-28) * |
Also Published As
Publication number | Publication date |
---|---|
US20190281316A1 (en) | 2019-09-12 |
CN106851298B (zh) | 2020-04-03 |
US10805622B2 (en) | 2020-10-13 |
CN106851298A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018171445A1 (zh) | 一种高效视频编码方法及装置、计算机可读存储介质 | |
CN105491377B (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
JP6605726B2 (ja) | 直前のフレームの動きベクトルパーティショニング | |
CN105323586B (zh) | 一种用于多核并行视频编码和解码的共享内存接口 | |
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 | |
CN116962719A (zh) | 针对屏幕数据的有效帧内编码 | |
de Souza et al. | GHEVC: An efficient HEVC decoder for graphics processing units | |
JP6744505B2 (ja) | コンテキストツリーを用いたビデオシンタックス要素のコーディング | |
CN105245896A (zh) | Hevc并行运动补偿方法及装置 | |
CN103414896B (zh) | 一种基于多核实现的运动估计方法 | |
KR20110038349A (ko) | 멀티프로세서기반의 영상 복호화 장치 및 방법 | |
WO2019036080A1 (en) | ESTIMATION OF CONSTRAINED MOTION FIELD FOR INTERPRETING | |
Gudumasu et al. | Software-based versatile video coding decoder parallelization | |
KR20090020460A (ko) | 비디오 디코딩 방법 및 장치 | |
Ko et al. | An efficient parallelization technique for x264 encoder on heterogeneous platforms consisting of CPUs and GPUs | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
US20170272775A1 (en) | Optimization of interframe prediction algorithms based on heterogeneous computing | |
Jiang et al. | Highly paralleled low-cost embedded HEVC video encoder on TI KeyStone multicore DSP | |
US9781439B2 (en) | Combined parallel and pipelined video encoder | |
Bahri et al. | Embedded real-time H264/AVC high definition video encoder on TI’s Keystone multicore DSP | |
Alvanos et al. | Task-based parallel H. 264 video encoding for explicit communication architectures | |
CN115065825A (zh) | 一种基于gpu的移动视频编解码系统 | |
Datla et al. | Parallelizing motion JPEG 2000 with CUDA | |
JP2020522185A (ja) | 複合動き補償予測 | |
Liu et al. | A novel architecture for parallel multi-view HEVC decoder on mobile device |
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: 18770711 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: 18770711 Country of ref document: EP Kind code of ref document: A1 |