CN113875239A - 子分区的并行双向帧内编码 - Google Patents

子分区的并行双向帧内编码 Download PDF

Info

Publication number
CN113875239A
CN113875239A CN202080039055.7A CN202080039055A CN113875239A CN 113875239 A CN113875239 A CN 113875239A CN 202080039055 A CN202080039055 A CN 202080039055A CN 113875239 A CN113875239 A CN 113875239A
Authority
CN
China
Prior art keywords
sub
partition
pixels
reference pixels
pixel
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
CN202080039055.7A
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.)
Hulu LLC
Original Assignee
Hulu LLC
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 Hulu LLC filed Critical Hulu LLC
Publication of CN113875239A publication Critical patent/CN113875239A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

在一些实施例中,一种方法确定待编码的当前块的第一组参考像素。当前块被分成多个子分区。方法并行地使用第一组参考像素处理多个子分区中的第一子分区并且使用第一组参考像素处理多个子分区中的第二子分区。然后方法基于从第一子分区的处理确定的第二组参考像素处理多个子分区中的第三子分区,并且基于从第二子分区的处理确定的第三组参考像素处理多个子分区中的第四子分区。

Description

子分区的并行双向帧内编码
【相关申请的交叉引用】
本公开要求2020年5月28日提交的标题为“PARALLEL BI-DIRECTIONAL INTRA-CODING OF SUB-PARTITIONS(子分区的并行双向帧内编码)”的美国非临时申请号16/886,641的优先权,该非临时申请要求2019年5月30日提交的美国临时申请号62/854,746的优先权,此处为了所有目的以引证的方式将申请的内容全文并入。
【背景技术】
在视频编码中,视频内容经由一组过程来压缩,该组过程包括预测(prediction)、变换(transformation)、量化(quantization)和熵编码(entropy coding)。在帧内预测中,减少视频帧中相邻像素之间的空间冗余。例如,视频帧的原始像素可以不被编码和发送到解码器。相反,可以从原始像素减去预测像素以形成残差。残差是要编码和发送到解码器的比原始像素更少的量的信息。这减少了用于传输经编码位流的带宽。
【附图说明】
图1描绘了根据一些实施例的用于执行帧内预测的简化系统。
图2描绘了根据一些实施例的用于帧内预测的帧的示例。
图3描绘了根据一些实施例的转码器的示例。
图4描绘了根据一些实施例的解码器的更详细的示例。
图5A描绘了根据一些实施例的对当前块中的子分区#1和#4进行转码的示例。
图5B描绘了根据一些实施例的对当前块中的子分区#2和#3进行转码的示例。
图6A描绘了根据一些实施例的第一帧内预测方向的第一场景。
图6B描绘了根据一些实施例的第二帧内预测方向的第二场景。
图6C描绘了根据一些实施例的第三帧内预测方向的第三场景。
图7A描绘了根据一些实施例的第四帧内预测方向的第四场景。
图7B描绘了根据一些实施例的第五帧内预测方向的第五场景。
图7C描绘了根据一些实施例的第六帧内预测方向的第四场景。
图8描绘了根据一些实施例的子分区的并行处理的示例。
图9描绘了根据一些实施例的块的转码的更详细的流程图。
图10描绘了根据一些实施例的块的解码的更详细的流程图。
图11描绘了根据一些实施例的编码系统的示例。
图12描绘了根据一些实施例的解码系统的示例。
【具体实施方式】
本文描述了用于视频编码系统的技术。在以下描述中,为了说明的目的,阐述了大量示例和具体细节,以便提供一些实施例的透彻理解。由权利要求限定的一些实施例可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文所述的特征和概念的修改和等同物。
在帧内预测中,转码器可从视频帧的原始像素减去预测像素,以减少需要转码的值的量。帧内预测编码模式的一种方法是将帧内编码块分成多个子分区并且单独地处理子分区。常规上,当先对一个子分区进行转码然后开始另一子分区的转码过程时,或者当先对一个子分区进行解码然后开始另一子分区的解码过程时,对子分区进行串行处理。然而,一些实施例对子分区的组进行并行处理。这与对子分区进行串行编码相比将编码过程的速度提高至少两倍。当并行处理子分区时,来自两个子分区的参考像素可以用于处理接下来的两个子分区。而且,当使用两个参考像素时,在诸如基于与被转码或解码的像素的距离预测像素值时,可以对两个参考像素进行不同的加权。
系统
图1描绘了根据一些实施例的用于执行帧内预测的简化系统100。系统100对源视频资产进行转码,该源视频资产可以是任何类型的视频,诸如用于电视节目、影片或视频剪辑。源视频可能需要被转码成一种或多种格式,诸如一个或多个位率。在一些实施例中,服务器系统102向客户端104发送经编码位流。例如,服务器系统102可以向客户端104发送视频以供回放。
服务器系统102包括将视频转码成经编码位流的转码器106。转码器106可以是配置在中央处理单元(CPU)上的软件视频处理器/转码器、具有图形处理单元(GPU)的硬件加速视频处理器/转码器、现场可编程门阵列(FPGA)和/或在专用集成电路(ASIC)中实施的硬件处理器/转码器。转码可以是从一种数字格式到另一种数字格式的转换。转码可以涉及对源格式进行解码并将源视频编码为另一数字格式,或者将源内容转换为具有特定分辨率、帧速率、位率、编解码等的视频。而且,编码可以是将模拟源内容转换为数字格式。如所使用的,术语转码可以包括编码。
转码器106包括执行帧内预测的转码器帧内预测块108。转码器侧和解码器侧使用帧内编码模式,以通过去除视频帧中相邻像素的空间冗余来压缩视频。传统上,帧内编码可对像素尺寸等于NxN的当前块进行帧内编码。在一些实施例中,使用来自当前块的相邻块的像素来对当前块内部的像素进行帧内编码,该相邻块诸如为当前块的顶部、左边和斜对的块。
客户端104包括对经编码位流进行解码的解码器112。在解码过程期间,解码器帧内预测块110执行帧内预测,以使用来自当前块的相邻块的像素来对块进行解码,该相邻块诸如为当前块的顶部、左边和斜对的块。
图2描绘了根据一些实施例的用于帧内预测的帧200的示例。帧200可以是被转码或解码的图像。帧200包括多个块,并且当前块202(#16)正被转码或解码。当前块202的顶部的顶部块204(#10)和当前块202的左边的左边块206(#15)已经被解码。来自左边块206和顶部块204的像素可以用于预测当前块202的内容。因为这些像素已经被解码,所以这些像素可以用于预测当前块的内容。例如,相邻像素可类似于当前块的一些像素并且提供当前块202中的当前像素的良好预测。也可以使用来自其它块的像素,诸如来自块#9、#11和#21(斜对定位)的像素,如果来自这些块的像素可用(例如,已被转码然后解码)。
转码器
图3描绘了根据一些实施例的转码器106的示例。图3包括转码器的简化版本,更详细的版本将在下面描述。转码器106接收来自被转码的当前块202的原始像素。在302,转码器106然后从原始像素中减去预测像素以产生残差,该残差包括将被转码的像素。例如,作为转码过程的一部分,变换和量化块304对残差值执行变换步骤和量化步骤(T/Q),以进一步压缩要转码的数据尺寸。最后,熵编码块306通过对数据进行熵编码来处理得到的数据。转码器106将数据打包成经编码位流,经编码位流被转码器106发送到解码器侧。
为了确保解码器侧以与转码器侧相同的行为执行解码过程,转码器106包括逆量化和逆变换块308以及镜像解码流水线的帧内预测块(例如,转码器帧内预测块108)。该循环为解码的当前块202生成重建像素,这些像素用作编码顺序中的下一编码块的参考像素。例如,在312,转码器106将用于对当前块进行转码的预测像素与残差的经解码像素相加,以生成参考像素。
转码器帧内预测块108使用与要转码的下一当前块相邻的参考像素值来生成预测像素值。例如,转码器帧内预测块108接收参考像素值,并且根据所使用的帧内模式来生成预测像素值。帧内预测模式可以包括预测的方向,并且基于所使用的方向使用不同的参考像素。即,水平帧内预测方向可使用当前块的左边的参考像素,竖直帧内预测方向可使用当前块的顶部的参考像素。方向还可以包括斜对方向。转码器帧内预测块108可以从参考像素和预测方向生成预测像素。转码器帧内预测块108可以以不同的方式确定预测的方向。在一些实施例中,转码器帧内预测块108可以检查所有可能的帧内预测方向,并且基于诸如率失真优化度量之类的规则来选择最佳的一个。可以使用预测像素,因为一些方向可能需要参考像素值的一些内插;比如,斜对方向可内插来自一或多个参考像素的像素值。
解码器
图4描绘了根据一些实施例的解码器112的更详细的示例。图4包括解码器的简化版本,更详细的版本将在下面描述。在解码器侧,解码器112接收经编码位流,并且熵解码块402执行熵解码。然后,逆量化和逆变换块404执行逆量化步骤和逆变换步骤(Q-1/T-1)。逆量化和逆变换步骤的输出是残差。在408,解码器112然后将残差与曾被用于在转码器106处生成残差的预测像素组合,以生成经解码像素。经解码像素是原始像素的重建表示。
解码器帧内预测块406从参考像素,诸如来自被解码的当前块的经解码参考像素,生成预测像素。经解码像素用作解码顺序中的下一编码块的参考像素。编码顺序中的另一编码块可以使用从参考像素生成的预测像素来解码另一块的经编码位流。
帧内预测
在帧内预测期间,转码器侧和解码器侧可以使用帧内子分区(ISP)模式来执行帧内子划分。帧内子划分将帧内编码块分为多个子分区(SP),并对这些子分区分别进行转码或解码。
图5A描绘了根据一些实施例的对当前块202中的子分区#1和#4进行转码的示例。当前块202被分成四个子分区:子分区#1 502-1、子分区#2 502-2、子分区#3 502-3和子分区#4 502-4。尽管描述了四个子分区,但可使用其它数量的子分区,诸如两个子分区、六个子分区、八个子分区等。而且,子分区可水平或竖直地分割。在图5A中,当前块被水平分割;然而,当前块可竖直地或以其它模式分割。子分区#1 502-1可以在块的顶部边缘上找到,并且子分区#4 502-4不紧挨子分区#1 502-1。相反,子分区#2 502-2和子分区#3502-3在子分区#1 502-1与子分区#4 502-4之间。
在转码过程中,转码器106分别处理子分区502,这意味着转码器106首先对子分区502-1的像素进行转码,然后对下一子分区502-2的像素进行转码,以此类推。如上所述,转码器106使用参考像素来对各个子分区502进行转码。例如,来自已经转码的块的参考像素用于对各个子分区502进行转码。
转码器106以使得转码器可以并行地对一些子分区进行转码的方式选择用于各个子分区502的参考像素。常规上,子分区可能被串行地转码;例如,转码器首先对子分区#1502-1进行转码,然后使用来自子分区#1 502-1的参考像素来对子分区#2 502-2进行转码,然后使用来自子分区#2 502-2的参考像素来对子分区#3 502-3进行转码,最后使用来自子分区#3 502-3的参考像素来对子分区#4 502-4进行转码。这迫使转码器串行地对子分区502进行转码。代替串行地对子分区502进行转码,转码器并行地对子分区502的组进行转码,这加快了当前块的转码时间。转码器106可以包括能够并行地执行子分区502的转码的多个转码过程,或者可以使用分立的转码器。
为了并行地对子分区502进行转码,用于一些子分区502的参考像素从用于串行地对子分区进行转码的参考像素改变。例如,共享用于子分区#1502-1和子分区#4 502-4的参考像素504-1。然后,转码器106并行地对子分区#1和子分区#4进行转码。一旦转码器106对子分区#1和子分区#4进行转码和解码,则来自子分区#1和子分区#4的参考像素可以用于并行地对子分区#2和子分区#3进行转码。
图5B描绘了根据一些实施例的对当前块202中的子分区#2和#3进行转码的示例。转码器106使用来自相邻块、子分区#1和/或子分区#4的参考像素来对子分区#2和子分区#3进行转码。例如,来自子分区#1 502-1的参考像素504-2被发现在子分区#2 502-2上方。来自相邻块的参考像素504-3被发现在当前块202的左边且不在任何一个子分区内。来自子分区#4 502-4的参考像素504-4被发现在子分区#3 502-3下方。如可以看到的,子分区#2502-2处于来自子分区#1 502-1的参考像素504-2与子分区#3 502-3之间。类似地,子分区#3 502-3处于来自子分区#4 502-4的参考像素504-4与子分区#2 502-2之间。使用这些参考像素不同于串行处理子分区。例如,与来自子分区#2 502-2的参考像素相比,来自子分区#1504-1的参考像素更远离子分区#3 502-3。类似地,与来自子分区#1 504-1的参考像素相比,来自子分区#4 502-4的参考像素504-4更远离子分区#2 502-2。而且,来自相邻块的参考像素504-3可以不同于子分区#1 502-2和子分区#4 502-4的参考像素。例如,来自相邻块的参考像素504-3紧挨子分区#2 502-2和子分区#3 502-4(例如,左边),并且不紧挨子分区#1 502-2和子分区#4 502-4。下面描述当对子分区#2 502-2和子分区#3 502-3进行转码时使用来自子分区#1 502-2的参考像素和来自子分区#4 502-4的参考像素504-4的帧内预测场景。
尽管上文描述了转码,但解码器112可在解码过程中以类似方式使用子分区,这将在下文更详细地描述。
帧内预测场景
转码器106将用于描述以下场景,但是应当认识到,解码器112可以执行类似的动作。转码器106打破所有子分区之间的数据相互依赖性,以并行处理子分区的组。然后,转码器106可以使用相同的参考像素执行子分区#2和子分区#3的帧内预测。预测可使用来自子分区#1 502-1的参考像素504-2、来自子分区#4 502-4的参考像素504-4和来自相邻块的参考像素504-3的组合。例如,预测可为双向的,这使用来自两个子分区或来自子分区和相邻块的像素。而且,预测可使用来自一个子分区或相邻块的像素。例如,给定子分区#2或子分区#3的区域内部的像素,转码器106根据帧内预测方向确定参考像素。根据帧内预测方向,转码器106可以定位一个或两个参考像素。转码器106可以一起确定子分区#2和子分区#3的最佳帧内预测方向。帧内预测方向在发送到解码器112的压缩位流中用信号通知。具体地,转码器106沿着多个可能的帧内预测方向(例如水平、竖直或常规角度方向)执行子分区#2和子分区#3的帧内预测过程。在一些实施例中,转码器106可以计算各个可能模式的率失真值,然后将具有最小率失真值的方向选择为最佳方向。转码器106可以使用相同的帧内预测方向来对子分区#2和子分区#3的所有像素进行转码。
当转码器106为子分区#2和子分区#3的帧内预测模式选择不同方向时应用以下示例。图6A描绘了根据一些实施例的第一帧内预测方向的第一场景。转码器106对子分区#2502-2中的像素p 604进行转码。转码器106使用被确定为最佳的帧内预测方向来选择参考像素。如上所述,转码器帧内预测块108基于以下内容来选择参考像素和方向:检查所有可能的帧内预测方向并且基于规则选择最佳方向606。在该示例中,参考像素r0 602-1来自子分区#1 502-1,并且参考像素r1 602-2来自子分区#4 502-4。帧内预测方向与来自子分区#1 502-1的参考像素504-2和来自子分区#4 502-4的参考像素504-4相交,而不与来自相邻块的参考像素504-3相交。
转码器帧内预测块108可以使用不同的过程来计算像素p的预测值。在一些实施例中,转码器帧内预测块108可以使用来自参考像素r0 602-1和参考像素r1 602-2的值来计算像素p 604的预测值。该计算可以使用参考像素r0 602-1和参考像素r1 602-2的值的权重的不同值,这将在下面更详细地描述。现在,将首先讨论可能的帧内预测方向的其他场景。
尽管转码器106对子分区#2 502-2中的像素p 604进行转码,但转码器106可执行相同的过程以预测子分区#3 502-3中的像素。这适用于所有以下场景。
图6B描绘了根据一些实施例的第二帧内预测方向的第二场景。转码器106对子分区#2 502-2中的像素p 604进行转码。转码器帧内预测块108选择最佳方向606。在该示例中,参考像素r0 602-1来自子分区#1 502-1,并且参考像素r1 602-2来自相邻块。帧内预测方向与来自子分区#1 502-1的参考像素504-2和来自相邻块的参考像素504-3相交,而不与来自子分区#4 502-4的参考像素504-4相交。与来自子分区#4 502-4的参考像素504-3相比,参考像素r1 602-2可以更靠近像素p 604,并且在一些情况下可以是像素p 604的更佳预测。
图6C描绘了根据一些实施例的第三帧内预测方向的第三场景。转码器106对子分区#2 502-2中的像素p 604进行转码。转码器帧内预测块108选择最佳方向606。在该示例中,参考像素r0 602-1来自相邻块,并且参考像素r1 602-2来自子分区#4 502-4。帧内预测方向与来自子分区#4 502-4的参考像素504-4和来自相邻块的参考像素504-3相交,而不与来自子分区#1 504-1的参考像素相交。与来自子分区#1 502-1的参考像素504-2相比,参考像素r0 602-1可以更靠近像素p 604,并且在一些情况下可以是像素p 604的更佳预测。
以上场景使用具有两个参考像素的双向预测。一些场景可以使用仅具有单个像素的单向预测。图7A描绘了根据一些实施例的第四帧内预测方向的第四场景。转码器106对子分区#2 502-2中的像素p 604进行转码。转码器帧内预测块108选择最佳方向606。在该示例中,参考像素r0 602-1来自相邻块。帧内预测方向与来自相邻块的参考像素504-3相交,而不与来自子分区#4 502-4的参考像素504-4和来自子分区#1 502-1的参考像素504-2相交。与来自子分区#1 502-1的参考像素504-2和子分区#4 502-4相比,参考像素r0 602-1可以更靠近像素p 604,并且在一些情况下可以是像素p 604的更佳预测。
图7B描绘了根据一些实施例的第五帧内预测方向的第五场景。转码器106对子分区#2 502-2中的像素p 604进行转码。转码器帧内预测块108选择最佳方向606。在该示例中,参考像素r0 602-1来自子分区#1 502-2。帧内预测方向与来自子分区#1 502-1的参考像素504-2相交,而不与来自子分区#4 502-4的参考像素504-4和来自相邻块的参考像素504-3相交。与来自相邻块的参考像素504-3和子分区#4 502-4相比,参考像素r0 602-1可以更靠近像素p 604,并且在一些情况下可以是像素p 604的更佳预测。
图7C描绘了根据一些实施例的第六帧内预测方向的第四场景。转码器106对子分区#3 502-3中的像素p 604进行转码。转码器帧内预测块108选择最佳方向606。在该示例中,参考像素r0 602-1来自子分区#4 502-4。帧内预测方向与来自子分区#4 502-4的参考像素相交,而不与来自子分区#1 502-1的参考像素504-2和来自相邻块的参考像素504-3相交。与来自子分区#1502-2的参考像素和相邻块相比,参考像素r0 602-1可以更靠近像素p604,并且在一些情况下可以是像素p 604的更佳预测。
对于具有两个参考像素可用的场景,转码器106可以使用不同的方法计算像素p的预测值。例如,转码器106可以将权重应用于参考像素。在一些实施例中,转码器106可以使用以下计算:
p=w0r0+w1rl
其中,权重w0和权重wl是加权因子,p是像素值,r0和rl是参考像素值。在此,r0和rl的值可以等于参考像素,或者可以是参考像素的处理后的值。在一些实施例中,对参考像素值执行内插、滤波和拉动过程以提高压缩效率。转码器106可以以不同的方式导出权重w0和wl的值。例如,转码器106可以使用固定加权因子和自适应加权因子。固定加权因子可将权重w0和w1设定为固定值,诸如各为0.5。而且,权重w0和w1可以被设定为不同的固定值,诸如分别为0.45和0.55。不同的方向也可具有不同的固定值。例如,在图6A中,权重w0可设定为比权重wl高的固定值,因为参考像素r0可更靠近像素p。
转码器106可以基于不同的方法,例如通过使用与像素p的距离,来确定自适应加权因子。例如,转码器106可以使用以下公式:
Figure BDA0003375239940000101
其中,dist(A,B)是测量像素A和像素B的两个像素位置之间的空间距离的函数。假设像素A和B的位置可以由二维坐标(Ax,Ay)和(Bx,By)表示,则可能的距离计算可以是:
dist(A,B)=|Ax-Bx|+|Ay-By|,或者
Figure BDA0003375239940000102
通过距离对参考像素进行加权可以将更靠近像素p的参考像素加权为大于更远的参考像素。更靠近的参考像素更可能与像素p类似,并且可以是像素p的更佳预测。使用自适应权重可然后改进压缩和准确性,因为可更类似于像素p的参考像素被加权得更高。也可使用其它方法来确定权重,诸如通过分析参考像素的特性来确定哪些像素更类似于该像素。
对于仅有一个参考像素可用的情况,预测方法可以预测像素p的像素值,该像素值等于参考像素的像素值,例如,p=r。在此,r的值可以等于参考像素,或者可以是参考像素的处理后的值。在一些实施例中,对参考像素值执行内插、滤波和拉动过程以提高压缩效率。
子分区处理
使用上述方法,转码器106和解码器112可以并行地将四个子分区作为两组进行处理。图8描绘了根据一些实施例的子分区的并行处理的示例。在转码过程或解码过程中可以使用以下处理流水线。在转码过程中,流水线生成一子分区的预测像素,然后在该子分区的转码之后,生成该子分区的经解码像素,以用作另一子分区的参考像素。如果串行地执行该过程,则串行地针对各个子分区执行以上生成子分区的预测像素并随后构建该子分区的经解码像素的过程。例如,在串行过程中,首先,转码器106生成子分区#1 502-1的预测像素,生成残差并对残差进行转码,然后转码器106构建子分区#1 502-1的经解码像素。转码器106使用这些经解码像素作为参考像素,以生成子分区#2 502-2的预测像素。在对子分区#2502-2进行帧内编码之后,转码器106构建子分区#2 502-2的经解码像素。转码器106使用这些经解码像素来生成子分区#3 502-3的预测像素,并且该过程串行地继续,直到转码器106对当前块进行转码为止。因此,当串行处理子分区502时,转码器106必须常规地完成对子分区进行转码并在继续对另一子分区进行转码之前解码该子分区的像素。
如上所述,转码器106不需要在开始另一子分区的转码过程之前等待先前的子分区被转码然后被解码。在图8中,当开始当前块的转码时,子分区#1 502-1和子分区#4 502-4的参考像素相同,并且转码器106并行地在802开始子分区#1 502-1的转码和在806开始子分区#4 502-4的转码。例如,转码过程#1 800-1对子分区#1 502-1进行转码,转码过程#2800-2对子分区#4502-4进行转码。
在802,转码过程#1 800-1使用来自相邻块的参考像素生成子分区#1 502-1的预测像素,该相邻块诸如为当前块202顶部的块和当前块202左边的块。然后,转码过程#1800-1执行子分区#1 502-1的转码过程。在对像素进行转码之后,在804,转码过程#1 800-1然后重建(例如,解码)子分区#1 502-1的像素。并行地,在806,转码过程#2 800-2使用与用于子分区#1 502-1的参考像素相同的参考像素来生成子分区#4 502-4的预测像素。然后,转码过程#2 800-2执行子分区#4 502-4的转码过程。在对像素进行转码之后,在808,转码过程#2 800-2然后重建(例如,解码)子分区#3 502-3的像素。
子分区#2 502-2可使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素及来自诸如左边的相邻块之类的相邻块的参考像素。在一些实施例中,转码过程#1 800-1从转码过程#2 800-2接收来自子分区#4 502-4的经解码像素。这样,转码过程#1800-1可以使用来自子分区#4 502-4的参考像素。当讨论接收经解码像素时,可以使用不同的实现方式。例如,各个转码过程800-1和800-2可以在存储器中存储相应的经解码像素。一旦经解码像素存储在存储器中,各个转码过程800-1和800-2可以继续对子分区#2和子分区#3进行转码。
在重建子分区#1 502-1的经解码像素之后,如果需要,转码过程#1 800-1可能必须等待接收子分区#4 502-4的经解码像素。然后,在810,转码过程#1 800-1可以使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边相邻块的参考像素来生成预测像素。转码过程#1 800-1执行子分区#2 502-2的转码过程。在对像素进行转码之后,在812,转码过程#1 800-1然后重建(例如,解码)子分区#2 502-2的像素。
而且,子分区#3 502-3使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素及来自诸如左边块之类的相邻块的参考像素。在一些实施例中,转码过程#2800-2从转码过程#1 800-1接收子分区#1 502-1的经解码像素。这样,转码过程#2 800-2可以使用来自子分区#1 502-1的参考像素。
在重建子分区#4 502-4的经解码像素之后,如果需要,转码过程#4 800-4可能必须等待接收子分区#1 502-1的经解码像素。然后,在814,转码过程#2 800-2可以使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边相邻块的参考像素来生成预测像素。转码器106执行子分区#3 502-3的转码过程。在对像素进行转码之后,在818,转码过程#2 800-2然后重建(例如,解码)子分区#3 502-3的像素。
在重建子分区#2 502-2的经转码像素并重建子分区#3 502-3的经转码像素之后,转码过程结束。因此,由于两组子分区502的并行处理,转码器106可以比串行执行处理快大约两倍地执行转码过程。尽管描述了两组,但是转码器106可以将当前块202分为不同数量的组。例如,如果使用八个子分区502,则可以使用两个组;然而,转码器可以将子分区502分成四组,以与串行相比快四倍并且与使用两组相比快两倍地执行该过程。
在解码过程中,子分区502也可以并行地解码。例如,当解码器112开始解码当前块202时,子分区#1 502-1和子分区#4 502-4的参考像素相同,并且解码器112开始并行地解码子分区#1 502-1和子分区#4 502-4。解码器112也可以使用被称为解码过程#1 801-1和解码过程#2 801-2的两个解码过程,类似于转码器106。
解码过程#1 801-1使用来自相邻块(诸如来自当前块202顶部的块和当前块202左边的块)的像素生成子分区#1 502-1的预测像素。然后,解码过程#1 801-1执行子分区#1502-1的解码过程,以生成残差。在解码像素之后,解码过程#1 801-1然后使用预测的像素和残差来重建子分区#1 502-1的像素。并行地,解码过程#2 801-2使用与用于子分区#1502-1的参考像素相同的参考像素来生成子分区#4 502-4的预测像素。然后,解码过程#2801-2执行子分区#4 502-4的解码过程。在解码像素之后,解码过程#2 801-2然后使用预测的像素和残差来重建子分区#4 502-4的参考像素。
子分区#2 502-2使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素及来自相邻块(诸如左边相邻块)的参考像素。在解码子分区#1 502-1的像素之后,解码过程#1 801-1可以使用来自子分区#1 502-1 的参考像素、来自子分区#4 502-4的参考像素和/或来自左边相邻块的参考像素504-3来生成预测像素,解码过程#1 801-1执行子分区#2 502-2的解码过程,以生成残差。在解码像素之后,解码过程#1 801-1然后使用预测的像素和残差来重建子分区#2 502-2的参考像素。
子分区#3 502-3使用与子分区#2 502-2相同的参考像素,并且解码过程可以与子分区#2 502-2并行执行。解码过程#2 801-2执行子分区#3 502-3的解码过程,以生成残差。在解码像素之后,解码过程#2 801-2然后使用预测的像素和残差来重建子分区#3 502-3的参考像素。
转码过程
图9描绘了根据一些实施例的块的转码的更详细的流程图900。上述流程讨论了预测像素的生成。下面的流程图更详细地描述了转码过程。
在902,转码过程800-1接收子分区#1 502-1的原始像素和子分区#1 502-1的预测像素。在904,转码过程800-1从原始像素和预测像素生成子分区#1的残差。在906,转码过程800-1通过执行变换和量化以及熵编码来对子分区#1 502-1的残差进行转码。在908,转码过程#1 800-1对残差进行解码,以生成子分区#1 502-1的经解码像素。在910,转码过程#1800-1将经解码像素与预测像素组合,以生成子分区#1 502-1的参考像素。在911,转码过程#1 800-1将经解码像素传送到转码过程#2 800-2(例如,将经解码像素存储在存储器中)。在912,使用与902到911中描述的步骤类似的步骤执行-子分区#2 502-2的转码过程。然而,子分区#2使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边相邻块的参考像素。可能需要从子分区#4 502-4接收经解码像素来完成转码过程。
并行地执行以下操作。注意,对应的步骤可能不是完全同时执行的。即,902和912的步骤不需要同时开始和结束。相反,902至912的步骤与914至924的步骤并行执行,其中,各个步骤可以以其自己的步调进行。然而,需要从子分区#1 502-1接收经解码像素来完成来自子分区#3 502-3的转码过程。在914,转码过程#2 800-2接收子分区#3 502-3的原始像素和子分区#3 502-3的预测像素。在916,转码过程#2 800-2从原始像素和预测像素生成子分区#1的残差。在918,转码过程#2 800-2通过执行变换和量化以及熵编码来对子分区#3502-3的残差进行转码。在920,转码过程#2 800-2对残差进行解码,以生成子分区#3 502-3的经解码像素。在922,转码过程#2 800-2将经解码像素与预测像素组合,以生成子分区#3502-3的参考像素。在923,转码过程#2 800-2将经解码像素传送到转码过程#1 800-1(例如,将经解码像素存储在存储器中)。在924,使用与914到923中描述的步骤类似的步骤执行-子分区#3 502-3的转码过程。然而,子分区#3使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边相邻块的参考像素。可能需要从子分区#1502-1接收经解码像素来完成转码过程。
解码过程
图10描绘了根据一些实施例的块的解码的更详细的流程图1000。在1002,解码过程#1 801-1从前一块的参考像素生成预测像素。前一块可以是当前块202的顶部和/或当前块202的左边的块。
在1004,解码过程#1 801-1接收子分区#1 502-1的经编码像素。在1006,解码过程#1 801-1从经编码像素生成子分区#1的残差。例如,解码过程#1 801-1可以执行熵解码以及逆量化和变换。在1008,解码过程#1 801-1从预测像素和残差生成经解码像素。例如,解码过程#1 801-1可以将经解码像素与预测像素组合。
在1010,解码过程#1 801-1从参考像素生成子分区#1的预测像素。在1011,解码过程#1 801-1将经解码像素传送到转码过程#2 1002-2。在1012,解码过程#1 801-1执行子分区#2的预测过程。该过程可以类似于步骤1002-1011。然而,子分区#2使用来自子分区#1502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边块的参考像素。需要从子分区#4 502-4接收经解码像素来完成转码过程。
并行地执行以下操作。注意,对应的步骤可能不是完全同时执行的。即,1002和1014的步骤不需要同时开始和结束。相反,1002至1012的步骤与1014至1024的步骤并行执行,其中,各个步骤可以以其自己的步调进行。然而,可能需要从子分区#1 502-1接收经解码像素。在1014,解码过程#2 801-2从前一块的参考像素生成预测像素。在1016,解码过程#2 801-2接收子分区#3的经编码像素。在1018,解码过程#2 801-2从经编码像素生成子分区#3的残差。在1020,解码过程#2 801-2从预测像素和残差生成经解码像素。在1022,解码过程#2 801-2从参考像素生成子分区#3的预测像素。在1023,解码过程#1 801-1将经解码像素传送到转码过程#2 1002-2。在1024,解码过程#2 801-2执行子分区#3的预测过程。该过程可以类似于步骤1014-1023。然而,子分区#3使用来自子分区#1 502-1的参考像素、来自子分区#4 502-4的参考像素和/或来自左边块的参考像素。需要从子分区#1 502-1接收经解码像素来完成转码过程。
结论
总之,一些实施例打破了子分区之间的数据依赖性,并允许并行地执行过程。此外,一些实施例引入了用于编码块的中心区域中的像素的加权双向预测方法。这增强了预测准确度并导致视频的更佳的压缩效率。
系统
图11描绘了根据一些实施例的编码系统的示例。一种视频编解码器框架包括一组基本部件:块分割、帧间和帧内预测、变换和量化以及熵编码。
转码器106接收视频帧,该视频帧首先被分成非重叠编码块以用于进一步处理。为了应对不同的视频内容特性,复杂区域将被具有较小尺寸的分区覆盖,而简单区域将被较大的分区覆盖。多个块模式和形状可以一起使用,例如四叉树模式、三叉树模式和二叉树模式可以一起使用,而正方形块和矩形块也可以一起使用。
预测被用于去除视频信号的冗余。通过从被处理的像素中减去预测像素值,可以显著地减小残差信号的振幅,由此可以减小所得到的位流尺寸。使用当前帧中的参考像素的帧内预测块1110旨在减少帧内的空间冗余。使用来自相邻帧的参考像素的帧间预测块1112试图去除帧之间的时间冗余。运动估计和补偿块1116可以是在编码器侧的帧间预测的子模块,该子模块捕获相邻帧之间的对象的运动轨迹,并且生成用于帧间预测的参考像素。
变换和量化块1104在帧内或帧间预测之后使用剩余像素。变换和量化块1104执行在频域中表示残差信号的变换操作。考虑到人类视觉系统对视频信号的低频分量比高频分量更敏感,量化被设计为通过降低高频信号的精度来进一步压缩残差信号。
为了避免编码器1100与解码器600之间的不同步问题,编码器1100包含解码模块,以确保编码器1100和解码器600都使用相同的数学处理。由此,逆变换和逆量化块1108类似于解码器侧的对应块。逆变换和逆量化块1108使用帧内和帧间预测来重建像素。
环内滤波器1114去除由上述过程引入的任何视觉伪影。以级联方式对重建帧应用各种滤波方法以减少不同的伪影,包括但不限于块伪影、蚊式伪影、色带效应等。
熵编码模块1106可以进一步使用基于模型的方法压缩位流。转码器106通过网络或其它类型的介质将所得到的经编码位流发送到解码器112。
图12描绘了根据一些实施例的解码系统的示例。解码器112接收经编码的位流,并且将其输入到熵解码块1202中以恢复解码过程所需的信息。如上所述,可以通过以与构建解码帧相同的方式使用逆变换和逆量化块1204、帧内预测块1206或帧间预测块1208、运动补偿块1210和环内滤波块1212来对解码帧进行解码。
示例实施例
在一些实施例中,一种方法包括:由计算装置确定待编码的当前块的第一组参考像素,当前块被分成多个子分区;由计算装置使用第一组参考像素并行处理多个子分区中的第一子分区和第二子分区;由计算装置从第一子分区生成第二组参考像素并且从第二子分区生成第三组参考像素;以及由计算装置基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第三子分区,并且基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第四子分区。
在一些实施例中,处理第三子分区及第四子分区包括:使用来自第一组参考像素、第二组参考像素和第三组参考像素中的一个的第一参考像素;以及使用来自第一组参考像素、第二组参考像素和第三组参考像素中未被第一参考像素使用的的一个的第二参考像素。
在一些实施例中,处理第三子分区及第四子分区包括:使用第一参考像素的第一权重并且使用第二参考像素的第二权重,以确定当前块中被编码的像素的预测像素值,其中,第一权重和第二权重是不同值。
在一些实施例中,处理第三子分区及第四子分区包括:计算从第一参考像素到像素的第一距离;计算从第二参考像素到像素的第二距离;以及使用第一距离和第二距离计算第一权重和第二权重。
在一些实施例中,处理第三子分区及第四子分区包括:使用来自第一组参考像素、第二组参考像素和第三组参考像素中的一个的单个参考像素。
在一些实施例中,第一组参考像素包括来自帧中的当前块的一个或多个相邻块的像素。
在一些实施例中,第一子分区位于沿着当前块的边缘的第一位置,并且第二子分区不紧挨第一子分区。
在一些实施例中,第三子分区和第四子分区位于第一子分区与第二子分区之间。
在一些实施例中,第一组参考像素的至少一部分紧挨第二子分区和第三子分区,并且第一组参考像素的至少一部分在当前块的相邻块中。
在一些实施例中,方法还包括:利用第一组参考像素使用第一转码过程处理第一子分区;以及与第一子分区的处理并行地利用第一组参考像素使用第二转码过程处理第二子分区。
在一些实施例中,方法还包括:将来自第一转码过程的第二组参考像素提供给第二转码过程,以便用于处理第四子分区;以及将来自第二转码过程的第三组参考像素提供给第一转码过程,以便用于处理第三子分区。
在一些实施例中,第二组参考像素从第一子分区的经解码像素生成,并且第三组参考像素从第二子分区的经解码像素生成。
在一些实施例中,第二组参考像素从第一子分区的第一残差生成,并且第三组参考像素从第二子分区的第二残差生成。
在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:从第一组参考像素生成第一预测像素;使用第一预测像素对第一子分区进行转码;从第二组参考像素生成第二预测像素;以及使用第二预测像素对第二子分区进行转码。
在一些实施例中,基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第三子分区并且基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第四子分区包括:基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个来生成第三预测像素;使用第三预测像素对第三子分区进行转码;基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个来生成第四预测像素;以及使用第四预测像素对第四子分区进行转码。
在一些实施例中,第二组参考像素从第一子分区的第一经解码像素和第一预测像素生成,并且第三组参考像素从第二子分区的第二经解码像素和第二预测像素生成。
在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:解码第一子分区;从第一组参考像素生成第一预测像素;从经解码第一子分区和第一预测像素生成第二组参考像素;解码第二子分区;从第二组参考像素生成第二预测像素;以及从经解码第二子分区和第二预测像素生成第三组参考像素。
在一些实施例中,一种非暂时性计算机可读存储介质,包含指令,这些指令在被执行时控制计算机系统可操作为:确定待编码的当前块的第一组参考像素,当前块被分成多个子分区;使用第一组参考像素并行处理多个子分区中的第一子分区和第二子分区;从第一子分区生成第二组参考像素并且从第二子分区生成第三组参考像素;以及基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第三子分区,并且基于第一组参考像素、第二组参考像素和第三组参考像素的至少一部分中的一个或多个处理多个子分区中的第四子分区。
在一些实施例中,处理第三子分区及第四子分区包括:使用来自第一组参考像素、第二组参考像素和第三组参考像素中的一个的第一参考像素;以及使用来自第一组参考像素、第二组参考像素和第三组参考像素中的未被第一参考像素使用的一个的第二参考像素。
在一些实施例中,一种设备,包括:一个或多个计算机处理器;包括指令的非暂时性计算机可读存储介质,这些指令在被执行时控制一个或多个计算机处理器可操作为:确定待编码的当前块的第一组参考像素,当前块被分成多个子分区;并行地使用第一组参考像素处理多个子分区中的第一子分区并且使用第一组参考像素处理多个子分区中的第二子分区;以及基于从第一子分区的处理确定的第二组参考像素处理多个子分区中的第三子分区,并且基于从第二子分区的处理确定的第三组参考像素处理多个子分区中的第四子分区。
一些实施例可以在非暂时性计算机可读存储介质中实施,以供指令执行系统、设备、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统执行由一些实施例描述的方法的指令。计算机系统可以包括一个或多个计算装置。当由一个或多个计算机处理器执行时,指令可以被配置为或可操作为执行在一些实施例中描述的操作。
如在本文的描述中以及贯穿所附权利要求书所使用的单数形式,“一”、“一个”和“该”包括复数引用,除非上下文明确另外规定。而且,如在本文的描述中以及贯穿所附权利要求书所使用的,“中”的含义包括“中”和“上”,除非上下文明确另外规定。
以上描述例示了各种实施例以及可以如何实施一些实施例的方面的示例。上述示例和实施例不应被认为是仅有的实施例,并且被呈现以例示如由所附权利要求限定的一些实施例的灵活性和优点。基于以上公开内容和所附权利要求,在不背离由权利要求限定的本发明的范围的情况下,可以采用其它布置、实施例、实施方案和等同物。

Claims (20)

1.一种方法,包括:
由计算装置确定待编码的当前块的第一组参考像素,所述当前块被分成多个子分区;
由所述计算装置使用所述第一组参考像素并行处理所述多个子分区中的第一子分区和第二子分区;
由所述计算装置从所述第一子分区生成第二组参考像素并且从所述第二子分区生成第三组参考像素;以及
由所述计算装置基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第三子分区,并且基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第四子分区。
2.根据权利要求1所述的方法,其中,处理所述第三子分区及所述第四子分区包括:
使用来自所述第一组参考像素、所述第二组参考像素和所述第三组参考像素中的一个的第一参考像素;以及
使用来自所述第一组参考像素、所述第二组参考像素和所述第三组参考像素中未被所述第一参考像素使用的一个的第二参考像素。
3.根据权利要求2所述的方法,其中,处理所述第三子分区及所述第四子分区包括:
使用所述第一参考像素的第一权重并且使用所述第二参考像素的第二权重,以确定所述当前块中被编码的像素的预测像素值,其中,所述第一权重和所述第二权重是不同值。
4.根据权利要求3所述的方法,其中,处理所述第三子分区及所述第四子分区包括:
计算从所述第一参考像素到所述像素的第一距离;
计算从所述第二参考像素到所述像素的第二距离;以及
使用所述第一距离和所述第二距离计算所述第一权重和所述第二权重。
5.根据权利要求1所述的方法,其中,处理所述第三子分区及所述第四子分区包括:
使用来自所述第一组参考像素、所述第二组参考像素和所述第三组参考像素中的一个的单个参考像素。
6.根据权利要求1所述的方法,其中,所述第一组参考像素包括来自帧中的所述当前块的一个或多个相邻块的像素。
7.根据权利要求1所述的方法,其中,
所述第一子分区位于沿着所述当前块的边缘的第一位置,并且
所述第二子分区不紧挨所述第一子分区。
8.根据权利要求7所述的方法,其中,
所述第三子分区和所述第四子分区位于所述第一子分区与所述第二子分区之间。
9.根据权利要求1所述的方法,其中,
所述第一组参考像素的所述至少一部分紧挨所述第二子分区和所述第三子分区,并且
所述第一组参考像素的所述至少一部分在所述当前块的相邻块中。
10.根据权利要求1所述的方法,还包括:
利用所述第一组参考像素使用第一转码过程处理所述第一子分区;以及
与所述第一子分区的处理并行地利用所述第一组参考像素使用第二转码过程处理所述第二子分区。
11.根据权利要求10所述的方法,还包括:
将来自所述第一转码过程的所述第二组参考像素提供给所述第二转码过程,以便用于处理所述第四子分区;以及
将来自所述第二转码过程的所述第三组参考像素提供给所述第一转码过程,以便用于处理所述第三子分区。
12.根据权利要求1所述的方法,其中,
所述第二组参考像素从所述第一子分区的经解码像素生成,并且
所述第三组参考像素从所述第二子分区的经解码像素生成。
13.根据权利要求1所述的方法,其中,
所述第二组参考像素从所述第一子分区的第一残差生成,并且
所述第三组参考像素从所述第二子分区的第二残差生成。
14.根据权利要求1所述的方法,其中,并行地使用所述第一组参考像素处理所述第一子分区并且使用所述第一组参考像素处理所述第二子分区包括:
从所述第一组参考像素生成第一预测像素;
使用所述第一预测像素对所述第一子分区进行转码;
从所述第二组参考像素生成第二预测像素;以及
使用所述第二预测像素对所述第二子分区进行转码。
15.根据权利要求14所述的方法,其中,基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第三子分区并且基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第四子分区包括:
基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个来生成第三预测像素;
使用所述第三预测像素对所述第三子分区进行转码;
基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个来生成第四预测像素;以及
使用所述第四预测像素对所述第四子分区进行转码。
16.根据权利要求15所述的方法,其中,
所述第二组参考像素从所述第一子分区的第一经解码像素和所述第一预测像素生成,并且
所述第三组参考像素从所述第二子分区的第二经解码像素和所述第二预测像素生成。
17.根据权利要求1所述的方法,其中,并行地使用所述第一组参考像素处理所述第一子分区并且使用所述第一组参考像素处理所述第二子分区包括:
解码所述第一子分区;
从所述第一组参考像素生成第一预测像素;
从经解码第一子分区和所述第一预测像素生成所述第二组参考像素;
解码所述第二子分区;
从所述第二组参考像素生成第二预测像素;以及
从经解码第二子分区和所述第二预测像素生成所述第三组参考像素。
18.一种非暂时性计算机可读存储介质,包含指令,这些指令在被执行时控制计算机系统可操作为:
确定待编码的当前块的第一组参考像素,所述当前块被分成多个子分区;
使用所述第一组参考像素并行处理所述多个子分区中的第一子分区和第二子分区;
从所述第一子分区生成第二组参考像素并且从所述第二子分区生成第三组参考像素;以及
基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第三子分区,并且基于所述第一组参考像素、所述第二组参考像素和所述第三组参考像素的至少一部分中的一个或多个处理所述多个子分区中的第四子分区。
19.根据权利要求18所述的非暂时性计算机可读存储介质,其中,处理所述第三子分区及所述第四子分区包括:
使用来自所述第一组参考像素、所述第二组参考像素和所述第三组参考像素中的一个的第一参考像素;以及
使用来自所述第一组参考像素、所述第二组参考像素和所述第三组参考像素中的未被所述第一参考像素使用的一个的第二参考像素。
20.一种设备,包括:
一个或多个计算机处理器;和
包括指令的非暂时性计算机可读存储介质,这些指令在被执行时控制所述一个或多个计算机处理器可操作为:
确定待编码的当前块的第一组参考像素,所述当前块被分成多个子分区;
并行地使用所述第一组参考像素处理所述多个子分区中的第一子分区并且使用所述第一组参考像素处理所述多个子分区中的第二子分区;以及
基于从所述第一子分区的处理确定的第二组参考像素处理所述多个子分区中的第三子分区,并且基于从所述第二子分区的处理确定的第三组参考像素处理所述多个子分区中的第四子分区。
CN202080039055.7A 2019-05-30 2020-05-29 子分区的并行双向帧内编码 Pending CN113875239A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962854746P 2019-05-30 2019-05-30
US62/854,746 2019-05-30
US16/886,641 2020-05-28
US16/886,641 US11202070B2 (en) 2019-05-30 2020-05-28 Parallel bi-directional intra-coding of sub-partitions
PCT/US2020/035363 WO2020243596A1 (en) 2019-05-30 2020-05-29 Parallel bi-directional intra-coding of sub-partitions

Publications (1)

Publication Number Publication Date
CN113875239A true CN113875239A (zh) 2021-12-31

Family

ID=73550449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080039055.7A Pending CN113875239A (zh) 2019-05-30 2020-05-29 子分区的并行双向帧内编码

Country Status (5)

Country Link
US (1) US11202070B2 (zh)
EP (1) EP3977742A4 (zh)
KR (1) KR20220003631A (zh)
CN (1) CN113875239A (zh)
WO (1) WO2020243596A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
WO2020260313A1 (en) * 2019-06-25 2020-12-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder, encoder and methods comprising a coding for intra subpartitions
CN116114245A (zh) 2021-09-02 2023-05-12 辉达公司 在视频编码过程中视频帧的并行处理
WO2023028965A1 (en) * 2021-09-02 2023-03-09 Nvidia Corporation Hardware codec accelerators for high-performance video encoding

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859494B2 (en) 2001-07-27 2005-02-22 General Instrument Corporation Methods and apparatus for sub-pixel motion estimation
US20080120676A1 (en) * 2006-11-22 2008-05-22 Horizon Semiconductors Ltd. Integrated circuit, an encoder/decoder architecture, and a method for processing a media stream
KR101365575B1 (ko) 2007-02-05 2014-02-25 삼성전자주식회사 인터 예측 부호화, 복호화 방법 및 장치
US9363533B2 (en) 2010-09-29 2016-06-07 Electronics And Telecommunications Research Institute Method and apparatus for video-encoding/decoding using filter information prediction
US20120163460A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Sub-pixel interpolation for video coding
ES2657197T3 (es) 2011-06-28 2018-03-01 Samsung Electronics Co., Ltd. Aparato de decodificación de video con intra predicción
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US20130121417A1 (en) * 2011-11-16 2013-05-16 Qualcomm Incorporated Constrained reference picture sets in wave front parallel processing of video data
US9332259B2 (en) * 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
WO2013109123A1 (ko) * 2012-01-19 2013-07-25 삼성전자 주식회사 인트라 예측 처리 속도 향상을 위한 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9838684B2 (en) * 2012-04-11 2017-12-05 Qualcomm Incorporated Wavefront parallel processing for video coding
US9906786B2 (en) * 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
FR2999760A1 (fr) * 2012-12-17 2014-06-20 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10341673B2 (en) * 2013-05-08 2019-07-02 Integrated Device Technology, Inc. Apparatuses, methods, and content distribution system for transcoding bitstreams using first and second transcoders
US10158866B2 (en) * 2014-09-26 2018-12-18 Qualcomm Incorporated Parsing dependency reduction for palette index coding
US10091530B2 (en) 2014-10-01 2018-10-02 Qualcomm Incorporated Pipelined intra-prediction hardware architecture for video coding
US9706210B2 (en) * 2014-11-07 2017-07-11 Qualcomm Incorporated Low complexity coding based on dynamic mode decision branching for largest coding units
US10425648B2 (en) 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
JP6847211B2 (ja) * 2016-10-14 2021-03-24 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 距離重み付けされた双方向性イントラ予測
JP6994868B2 (ja) * 2017-08-09 2022-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels

Also Published As

Publication number Publication date
WO2020243596A1 (en) 2020-12-03
EP3977742A1 (en) 2022-04-06
EP3977742A4 (en) 2023-03-15
US11202070B2 (en) 2021-12-14
KR20220003631A (ko) 2022-01-10
US20200382777A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
US10791333B2 (en) Video encoding using hierarchical algorithms
KR102512053B1 (ko) 스킵 모드를 이용한 영상 복호화 방법 및 이러한 방법을 사용하는 장치
US9445114B2 (en) Method and device for determining slice boundaries based on multiple video encoding processes
JP6605726B2 (ja) 直前のフレームの動きベクトルパーティショニング
CN113875239A (zh) 子分区的并行双向帧内编码
CN113875238A (zh) 子分区的并行帧内编码
US8594189B1 (en) Apparatus and method for coding video using consistent regions and resolution scaling
US11792390B2 (en) Reset of historical motion vector prediction
JP6660868B2 (ja) 動画像符号化装置及び動画像復号装置並びにプログラム
WO2019191714A1 (en) Template based adaptive weighted bi-prediction for video coding
US20210227216A1 (en) Template refined bi-prediction for video coding using anchor point
US9491455B2 (en) Picture encoding method, picture decoding method, picture encoding apparatus, picture decoding apparatus, picture encoding program, and picture decoding program
JP2018107692A (ja) 動画像復号装置、動画像復号方法、動画像符号化装置、動画像符号化方法及びコンピュータ可読記録媒体
US11647228B2 (en) Method and apparatus for encoding and decoding video signal using transform domain prediction for prediction unit partition
US11582478B2 (en) Video encoding technique utilizing user guided information in cloud environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: HULU LLC

Address before: California, USA

Applicant before: HULU, LLC