CN116114245A - 在视频编码过程中视频帧的并行处理 - Google Patents

在视频编码过程中视频帧的并行处理 Download PDF

Info

Publication number
CN116114245A
CN116114245A CN202180014800.7A CN202180014800A CN116114245A CN 116114245 A CN116114245 A CN 116114245A CN 202180014800 A CN202180014800 A CN 202180014800A CN 116114245 A CN116114245 A CN 116114245A
Authority
CN
China
Prior art keywords
block
mode
size
cost
final
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.)
Granted
Application number
CN202180014800.7A
Other languages
English (en)
Other versions
CN116114245B (zh
Inventor
陈建军
冯炜
何熙
S·韩
R·R·斯里尼瓦桑
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN116114245A publication Critical patent/CN116114245A/zh
Application granted granted Critical
Publication of CN116114245B publication Critical patent/CN116114245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • 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/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

公开了用于压缩图像的数据的技术。可以确定中间像素。图像的每个位置可以与第一大小的多个块中的块和第二大小的多个块中的块相关联。对于第一大小和第二大小的每个块,可以使用中间像素以并行方式确定第一模式的第一成本和第二模式的第二成本。可以针对图像的每个位置,使用与对应位置相关联的第一大小的相应块和第二大小的相应块中的每个块的所述第一成本和所述第二成本,选择最终模式和最终块大小。可以确定最终像素,并且可以基于最终像素获得图像的表示。

Description

在视频编码过程中视频帧的并行处理
技术领域
至少一个实施例涉及用于执行和促进视频文件的高效压缩的计算技术。例如,至少一个实施例涉及视频编解码器软件所使用的操作,用于使用现代视频编码标准对高清视频文件进行高效编码,同时提供大量提高视频质量的工具和选项,但以增加计算复杂度为代价。
背景技术
原始(源)像素格式的视频文件会占用非常大的内存空间,并且需要很大的网络带宽,这对于存储和/或直播来说是不切实际的。例如,一个典型的高清视频显示大约每秒30帧,它们通常非常相似。这些帧中的大量信息必然是冗余的,从而允许高效压缩。一方面,相对较小的变化发生在后续帧之间(时间冗余)。另一方面,在一个给定帧中的各个区域通常彼此相似(空间冗余),例如,天空的图像可以延伸到帧的很大一部分。因此,代替传输每个像素的实际像素信息(亮度和色度),编解码器可以标识一个类似于正被编码(“被预测”)的块的参考块,并向解码器提供实际源块和被预测块之间的差异(“增量”)的合适和紧凑的数学表示。参考块可以是不同帧(例如,前一帧,甚至是后一帧)的块,相同帧的块,甚至是根据基于少量参考像素的某种预定方案(模式)生成的合成块。随后,并非存储或直播像素的实际帧,编解码器可以输出被编码数据的比特流,它主要包含解码器的指令,该指令关于如何生成帧的近似,其视觉外观与源帧无法区分或非常相似。
附图说明
图1是根据至少一些实施例的可以实现用于高效编码操作的本公开方法的示例计算设备的示意性框图。
图2A是描述根据至少一些实施例的用于高效编码操作的编解码器系统的顺序处理的操作的示意图。
图2B是描述根据至少一些实施例的用于高效编码操作的编解码器系统的另一种可能顺序处理的操作的示意图。
图3A是根据至少一些实施例的在视频编码期间,并行处理视频帧以实现高效编码操作的示例方法的流程图。
图3B是根据至少一些实施例的确定中间像素以在视频编码期间用于并行处理视频帧以实现高效编码操作的示例方法的流程图。
图4示出了采用计算机系统形式的示例性机器,在其中可以执行用于使该机器执行本文讨论的任何一或个多个方法的一组指令。
具体实施方式
视频编解码器允许对数字视频文件进行压缩,以减少存储和传输该文件所需的存储空间和带宽的量。压缩的视频文件在未被压缩和显示时可能与源视频文件非常相似或难以区分。为了压缩数字视频文件,编解码器将视频的每一帧划分为一系列块。对于每个块,编解码器确定用于压缩的最佳大小和最佳模式。编解码器可以确定使用帧内预测模式或帧间预测模式。然后,对于每个块,在进行大小选择和模式选择后,编解码器将比较预测结果与源像素,以计算差值(或残差),并对输出比特流中的预测大小、预测模式和残差像素值进行编码。单个帧可以被划分成具有多种大小的块,并且每个块可以有唯一的预测模式。后续帧可以被划分成不同大小的块,并且每个块可以具有不同于前帧的块的预测模式。编解码器单独处理每一帧,并尽量减少编码帧的成本。
帧的每个像素值可以包括多个分量,例如指示像素的亮度或强度的亮度分量,以及指示像素的一种或更多种颜色(例如,红色、绿色、蓝色色度值,或任何其他合适的颜色值)的色度分量。
帧内预测块可以使用邻近块的参考像素值来近似源块的像素值。例如,帧内预测块的像素值可以基于在其上的块的底部边界的像素值、在其左侧的块的右边界的像素值、在其左上角的块的右下角的像素值,或者这些像素值的组合。在跨许多块具有相似颜色(例如,蓝天)的视频帧的区域中,帧内预测模式是有效的。
帧间预测块可以使用前帧或后帧(本文称为参考帧)的像素值来近似源块的像素值。这对视频中的移动对象是有效的。当对象移动时,当前帧中的对象看起来可能与参考帧中的对象相似或相同,但对象可能处于新的位置。编解码器可以使用来自参考帧中对象的相同像素值,来近似当前帧中对象的像素值。由于编解码器使用来自参考帧的相同像素值,而无需为帧间预测块创建一组新的像素值,因此帧间预测块具有比帧内预测块更高的压缩率。
存在已经定义的各种视频编解码器标准,例如H.264(高级视频编码,或AVC)、H.265(高效视频编码,或HEVC)、H.266(多功能视频编码,或VVC)、VP9和AV1(AO媒体视频1)。每个标准定义了可接受的帧间预测模式集和帧内预测模式集。每个标准还定义了可接受的块大小集合。例如,AV1允许58种帧内预测模式、多种帧间预测模式以及多种块大小,包括方块8×8、16×16、32×32、64×64、128×128和矩形块64×32、32×64、32×16、16×32、16×8、8×16。
标准视频编解码器从帧的左上角开始,评估所有可能的块大小和预测模式(包括帧内预测模式和帧间预测模式)的组合的成本,基于计算成本做出选择,然后进行到下一块(例如,左上块右侧的块)。由于帧内预测模式使用相邻块的像素值,所以需要对每个块进行顺序处理,以确保相邻块已经被处理过并且具有可用于处理当前块的参考像素。因此,每个块和前块之间存在依赖关系。按顺序处理块会减慢编码过程,因为一次只能处理单个块,即使未在使用额外的计算资源。此外,由于存在许多需要考虑的块大小和预测模式的可能组合,因此即使处理单个块也可能需要大量时间。
本公开的方面和实施例通过减少编码过程中遇到的依赖关系来解决现代高级编解码器中实时视频编码的这些和其他技术挑战。在某些实施例中,通过对视频帧的块执行初始顺序处理以创建一组中间像素,然后对视频帧的块进行并行处理,来减少依赖关系。例如,初始顺序处理可以针对一种大小的块(例如,16×16像素)执行,并且当如上所述为每个块生成近似值时使用帧内预测模式评估,从而减少需要为每个块考虑的块大小和预测模式的组合的数量。然后,将生成的中间像素用作参考像素,可以为每个块并行评估块大小和预测模式的剩余组合,以便为视频帧的每个块选择最终的块大小和最终的预测模式。在为视频帧的每个块选择了最终块大小和最终预测模式之后,编解码器依次为每个块计算并编码最终残差、最终预测大小和最终预测模式。本公开的实施例相对于现有技术的优点包括编码过程的显著加速。初始的和最终的顺序处理阶段可以比传统技术执行地快得多:初始的顺序处理受限于少得多的固定块大小(例如,一种),而最终的顺序处理受限于为每个块所选择的最终大小和所选择的最终模式。
系统架构
图1是根据至少一些实施例的可以实现用于高效编码操作的本公开方法的示例计算设备100的示意性框图。计算设备100可以包括与视频编码器105交互的一个或更多个设备、模块和/或应用程序,如相机101、视频编辑软件102、互联网浏览器103和/或媒体播放软件104,等等。视频编码器105可以执行本公开的至少某些方面。视频编码器105可以包括参考像素模块106、块预测模块107、成本函数模块110、压缩模块111和存储器112。块预测模块107可以包括帧内预测子模块108和帧间预测子模块109。
参考像素模块106可以在预测块像素值创建时将这样的值存储在存储器112中。参考像素模块106还可以从存储器112中检索当前用于近似由视频编码器105正处理的块的参考像素值。例如,参考像素模块106可以从存储器112中检索当前正在处理的块的顶部、左侧和左上角的块的计算像素值的子集,以用于计算一个或更多个帧内预测模式的成本。参考像素模块106还可以从存储器112中检索与当前正在被处理的一个或更多个块相对应的已经处理的前帧或后帧中的块的计算像素值,以用于计算一个或更多个帧间预测模式的成本。由于帧间预测模式经常用于移动对象,因此参考像素模块106可以从先前处理的帧中检索像素值,例如,从与当前块相邻的块中检索像素值。例如,参考像素模块106可以从存储器112中检索在当前正在被处理的块的右侧的块的先前处理的帧的计算像素值。
当为每个块计算预测时,块预测模块107可以使用来自参考像素模块106的参考像素值。帧内预测子模块108可以用于进行帧内预测,而帧间预测子模块109可用于进行帧间预测。在上述的初始顺序处理、并行处理和最终顺序处理期间,可以使用块预测模块107。在某些情况下,块预测模块107可以使用子模块之一来创建块预测。例如,在初始顺序处理过程中,块预测模块107可以计算帧内预测,并且可以使用帧内预测子模块108,而非帧间预测子模块109,然而在并行处理过程中,块预测模块107可以同时使用帧内预测子模块108和帧间预测子模块109。
当创建帧内预测块时,帧内预测子模块108可以使用来自参考像素模块106的参考像素值,如上所述。参考像素值可以来自与当前块相邻的一个或更多个块。基于所使用的帧内预测模式,由帧内预测子模块108创建的帧内预测块可能具有不同的像素值。例如,帧内预测模式可以是垂直模式,这样预测块具有从顶部相邻块获得的像素值。可替代地,帧内预测模式可以是水平模式,这样预测块具有从左相邻块获得的像素值。作为另一示例,帧内预测模式可以使用不同的方向(例如,与水平方向有一定的倾斜角度),这样预测的块就有来自多个相邻块的像素值的组合。
当创建帧间预测块时,帧间预测子模块109可以使用来自参考像素模块106的参考像素值,如上所述。参考像素值可以来自先前处理过的帧中的相同块,或来自与先前处理过的帧中的当前块相邻的块。在某些情况下,参考像素值可以来自相对于当前块(但部分与当前块重叠)被移动的块。因此,与帧内预测块类似,根据所使用的特定的帧内预测模式,帧间预测子模块109所创建的帧间预测块可以具有不同的像素值。
块预测模块107可以为一个给定块生成多个预测。每个预测可以基于当前块的块大小和预测模式的唯一组合。在初始顺序处理、并行处理和最终顺序处理之间,为每个块生成的预测的数量可能不同。例如,在初始顺序处理过程中,每个预测可以具有相同的块大小,但是可以具有不同的帧内预测模式,而在并行处理过程中,至少某些甚至大多数预测可以具有不同的大小和不同的预测模式(无论是帧内预测或帧间预测模式)。每个预测都会被传递给成本函数模块110,以计算对应的成本。
成本函数模块110可以从块预测模块107接收一个或更多个块的预测。对于每个预测,将预测块的像素值与被编码的原始视频帧的对应源块的像素值进行比较。可以使用各种成本函数,包括绝对变换差之和(SATD),平方差之和(SSD),或任何其他合适的成本函数。在某些情况下,成本函数模块110可以在初始顺序处理期间使用像素值的一个分量计算成本,而在并行处理期间使用多个分量计算成本。例如,成本函数模块110可以使用每个像素值的亮度分量计算初始顺序处理的帧内预测的成本。然后,在并行处理过程中,成本函数模块110可以使用每个像素值的亮度分量和色度分量来计算块预测的成本。在另一个实施例中,成本函数模块110可以使用每个像素值的亮度分量并忽略每个像素值的色度分量,计算初始顺序处理和并行处理的预测的成本。在另一个实施例中,成本函数模块110可以使用每个像素值的亮度分量和色度分量二者来计算初始顺序处理和并行处理二者的预测的成本。在某些实施例中,成本函数模块110可以不同地对亮度分量和色度分量的表示中的误差进行加权,例如,使用根据经验选择的权重。此外,色度分量的不同颜色中的误差可以彼此不同地被加权,例如,红色中的误差可能被加权地比蓝色中的误差更多(反之亦然)。
如果预测的块与对应的源块有很大的不同,则成本可能很高。如果预测块与对应的源块基本相似,则成本可能低。成本函数模块110可以基于块的每个预测的成本的比较,为给定块选择预测。在一个实施例中,成本函数模块110可以选择成本最低的预测。为给定块所选的预测可以包括块大小和预测模式。
在为给定块选择了预测之后,成本函数模块110可以将该选择传递给块预测模块107。然后,块预测模块107可以将与所选预测相对应的预测块传送到参考像素模块106以存储在存储器112中以用作未来块和/或帧的参考块。块预测模块107还可以将与所选预测相对应的预测块传送到压缩模块111。
压缩模块111可以计算残差,该残差可以是表示预测块的像素值与对应源块的像素值之间的差值的残差像素值的块。然后,根据视频编解码器标准中定义的规范,如AV1或任何其他合适的标准,压缩模块111可以在输出比特流中对残差像素值、预测块大小和预测块模式进行编码。在某些实施例中,在对输出比特流中的值进行编码之前,压缩模块111可以根据视频编解码器标准中定义的规范,变换和压缩残差像素值。
图2A是根据至少一些实施例的描述用于高效编码操作的编解码器系统的顺序处理200的操作的示意图。在某些实施例中,编解码器系统可以是图1的视频编码器105。如上所述,可以使用顺序处理200来生成用于后续并行处理的中间像素204。视频帧202可以被划分为第一大小的块(例如,16x16像素块或任何其他合适的块)。第一个目标区域指示器206(用虚线框描绘和第一放大目标区域208)示出正在被处理的当前块210(块N)以及与当前块210相邻的块的部分。视频帧202中当前块210的上面和左侧的块可能已经被顺序处理过,并且中间像素的对应块可能已经生成,如视频帧202中的线阴影块所示。视频帧202的每个块对应于(并近似于)原始视频帧中类似定位的源像素块。
在当前块210的处理过程中,可以从所生成的与当前块210相邻的块的中间像素中选择第一组参考像素212。具体地,第一组参考像素212可以从当前块210的左侧、顶部和左上角的所生成的中间像素块选择(或者从编解码器标准指定的任何其他块的集合中选择)。该组参考像素212可以与多个模式中的每个模式214A-M(模式1,模式2,…,模式M)组合,以创建预测块216A-M(P1,P2,…,PM)。然后,预测块216A-M中的每个可以使用成本函数218来处理以确定预测块216A-M中的每个的成本220A-M(成本1,成本2,…,成本M)。成本函数218可以将预测块与视频帧202中对应的源像素块进行比较。然后,可以基于成本220A-M的比较,为当前块210确定选定的模式222。中间像素生成器224可以为当前块210生成中间像素块204。可以将中间像素块204在当前块210的位置添加到视频帧202。
顺序处理可以继续下一个块230(例如,当前块210右边的块),如第二目标区域指示器226和第二放大目标区域228所示。在下一个块230的处理期间,可以从所生成的与下一个块230相邻的块的中间像素中选择第二组参考像素232。例如,在处理当前块210期间创建的中间像素块204的一部分,可以用作第二组参考像素232的一部分。可以以与上述方式类似的方式为下一个块230生成中间像素块。这个过程可以继续,直到视频帧202中第一大小的每个块都有对应的中间像素块为止。
图2B是根据至少一些实施例的描述用于高效编码操作的编解码器系统的另一种可能的顺序处理250的操作的示意图。在某些实施例中,编解码器系统可以是视频编码器105。顺序处理250可用于以与顺序处理200的方式类似的方式生成用于后续并行处理的中间像素。如上所述,顺序处理250也可以使用参考帧282、参考块N 284和帧间模式280。视频帧202可以划分为第一大小的块(例如,16x16像素)。第一目标区域指示器206示出正在被处理的当前块210(块N)以及与当前块210相邻的块的部分。在视频帧202旁边是第一放大目标区域208。视频帧202中的当前块210的上面和左侧的块可能已经被顺序处理,并且对应的中间像素块可能已经被生成,如视频帧202中的线阴影块所示。
在顺序处理250中对当前块进行处理期间,可以从与当前块210相邻的块的生成的中间像素中选择第一组参考像素212。具体来说,可以从生成的中间像素块中选择第一组参考像素212,该中间像素块位于当前块210的左侧、顶部和左上角。此外,可以从参考帧282的生成的中间像素中选择参考块284(参考块N)。第三目标区域指示器286显示参考帧282中的参考块284。在参考帧282下是第三放大目标区域288,显示了参考块284。该组参考像素212可以与多个模式中的每个模式214A-M相组合,以创建预测块216A-M。参考块284也可以与帧间模式280相组合,以创建预测块290。然后,可以使用成本函数218来处理预测块216A-M和预测块290中的每个,以分别为预测块216A-M和预测块290中的每个确定成本220A-M和292。成本函数218可以将预测块与来自视频帧202中对应的源像素块进行比较。然后,可以基于成本220A-M和292的比较,为当前块210确定选定的模式294。可以通过中间像素生成器224使用选定的模式294和参考块284为当前块210生成中间像素块。
在另一个实施例中,初始顺序处理可以将视频帧分成第一大小的块,并从视频帧中选择对应的源像素块作为每个块的中间像素。
在视频帧的每个块具有对应的中间像素块之后(例如,在初始顺序处理之后),编解码器系统可以继续进行并行处理。编解码器系统可以将视频帧划分为第二大小的块、第三大小的块,等等。然后,编解码器系统可以以类似于初始顺序处理的方式并行处理每个块。在某些实施例中,代替在并行处理中使用相邻块的值来计算预测块,使用来自生成的中间块的相邻块的值。这消除了当前块和前块之间的依赖关系,允许编解码器系统以并行方式处理块。例如,编解码器系统可以使用第一线程开始处理在视频帧的顶部的第二大小的块和第三大小的块,并且可以使用第二线程同时开始处理在视频帧的底部的第二大小的块和第三大小的块。
在某些实施例中,初始顺序处理和并行处理之间的一个区别是,对于并行处理中的每个块,预测大小和预测模式被选择,但不生成中间像素块。利用在并行处理过程中选择的预测大小和预测模式生成预测块,被推迟到最终的顺序处理。
最终顺序处理可与初始顺序处理相似地执行。在某些实施例中,代替将视频帧划分为具有相同大小的块,基于为每个块的选定预测大小将视频帧划分为块。然后,逐块地,编解码器系统使用所选的块的预测模式和来自相邻的、先前处理过的最终预测块的像素值,生成最终预测块。在最终的顺序处理过程中,不计算每个块的成本。如上所述,一旦最终的预测块被创建,残差就被计算出来,并且编解码器系统通过在输出比特流中编码残差、预测模式和预测大小来创建视频帧的表示(如图像)。
图3A是根据至少一些实施例的在视频编码期间并行处理视频帧以用于高效编码操作的示例方法300的流程图。在某些实施例中,可以通过图1的视频编码器105执行方法300。在某些实施例中,方法300可由与一个或更多个存储设备通信的专用编解码器加速器(例如,协处理器)执行。在某些实施例中,方法300可以由通用处理器(例如,中央处理单元或图形处理单元)执行。在一些实施例中,方法300的至少一些操作可以由多个线程执行(例如,以并行方式),每个线程执行方法的一个或更多个单独的函数、例程、子例程或操作。在某些实施例中,实现方法300的处理线程可以是同步的(例如,使用信号量、临界段和/或其他线程同步机制)。可替代地,实现方法300的线程可以彼此异步执行。方法300的各种操作可以按照与图3A所示顺序不同的顺序执行。方法300的一些操作可以与其他操作同时执行。在某些实施例中,不执行图3A所示的一个或更多个操作。
为了简洁,下面对方法300的描述是指图像。应该理解的是,在某些实施例中,图像可以是视频帧,例如运动图片、视频广告、视频游戏或者由相机或者任何合适的视频应用程序产生的任何其他视频文件(包括合成视频文件)的帧序列中的帧。在另一个实施例中,图像可以是单独的图像(包括合成图像),如静止图像、由照相机、扫描仪、图形应用程序等产生的图像,或正在被压缩的任何其他合适图像。
在框310,处理逻辑执行方法300可以确定中间像素(例如图2A的中间像素204)。在一个实施例中,中间像素可以是上述结合图2A描述的初始顺序处理的结果。例如,可以使用下面图3B中所示的方法370来确定中间像素。在另一个实施例中,中间像素可以是源视频帧的像素。
在框320,处理逻辑可以将图像的每个位置与第一大小的多个块中的块和第二大小的多个块中的块相关联。在某些实施例中,每个位置可以进一步与具有第三大小、第四大小等的块相关联。第一块大小和第二块大小(以及其他大小的块)可以分别是由标准视频编解码器(诸如AV1)定义的块大小。例如,64x64像素的每个超块可以被分割成第一大小(32x32像素)、第二大小(16x8像素)、第三大小(8x8像素)、第四大小(32x16像素)的块,等等。
在框330,处理逻辑可以使用中间像素,以并行方式为第一大小的每个块和第二大小的每个块(以及其他大小的块),确定第一模式的第一成本和第二模式的第二成本。处理逻辑可以进一步确定附加模式的附加成本(例如,第三/第四/等模式的第三/第四/等成本),例如,如与模式214A-M和成本220A-M相关的图2B所示。框330可以作为并行处理的一部分来执行。在某些情况下,第一模式和第二模式可分别为帧内预测模式和帧间预测模式,且每一模式的成本可由成本函数模块110计算。例如,第一模式可以是帧内预测模式214A(与成本220A相关),而第二模式可以是帧间预测模式280(与成本292相关)。在另一个示例中,第一模式和第二模式可以都是帧内预测模式。在某些实施例中,对于给定大小(第一/第二/等)的每个块,可以为编解码器标准标识的所有模式或至少一个模式的子集确定相应的成本。
在某些实施例中,如图3A中的上标注部分所示,在框332,对于框330的第一模式和第二模式中的每个模式,处理逻辑可以基于各个模式和一组中间像素生成临时块预测。因此,可以为每个给定大小的块生成临时块预测。
在框334,对于框330的第一模式和第二模式中的每个模式,处理逻辑可以基于临时块预测和图像的对应源像素块的比较来计算各个模式的成本。更具体地,对于给定大小的每个块,可以获得多个临时块预测,每个预测都与各自的成本相关。
在框340,处理逻辑可以针对图像的每个位置,使用与对应位置相关联的第一大小的相应块和第二大小的相应块中的每个块的第一成本和第二成本,从至少第一模式和第二模式中选择最终模式;以及从至少第一大小和第二大小中选择最终块大小。例如,处理逻辑可以确定如何将每个64×64像素的超块划分成更小的块,以及使用什么模式来表示各个块的源像素,例如,基于针对每个块/模式组合计算的成本。例如,可以将使用帧间预测模式表示整个左上角正方形32×32像素块的成本与表示相同的正方形32×32像素块的成本进行比较,通过进一步将其分为两个矩形32×16像素块,其中顶部矩形32×16像素块使用水平的帧内预测模式表示,而底部矩形32x16像素块使用斜角预测模式表示。
在框350,处理逻辑可以基于为图像的每个位置选定的最终模式和选定的最终块大小来确定最终像素。在某些实施例中,如图3A的下标注部分所描述的,在框352,处理逻辑可以基于所选定的最终模式、选定的最终块大小和与一个或更多个相邻位置相关联的一组之前确定的最终像素,为图像的每个位置生成初始预测块。例如,最初的预测块可能是基于成本函数从临时块预测中选择的获胜块。
在框354,处理逻辑可以针对图像的每个位置,通过使用压缩算法对初始预测块进行变换来导出最终像素块。例如,压缩模块111可以为每个选定的获胜块确定残差块,使用由编解码器标准标识的离散变换之一(例如,离散傅里叶变换)变换残差块,量化变换后的块,并执行逆向离散变换以得到最终的像素块。处理逻辑可进一步确定可应用于最终像素块的各种滤波器的参数,以提高块的视觉质量并去除块重建的各种伪影。例如,去块滤波器可以去除相邻块之间的可见块边界,受约束的方向增强滤波器可以去除锐边描述中的伪影,循环恢复滤波器可以降低噪声并提高边缘质量,等等。
在框360,处理逻辑可以基于最终像素获得图像的表示。例如,图像的表示可以是图像的编码输出比特流,其包括对图像各个部分的选定块大小的标识、每个块的选定模式、残差块的表示、为各个块选定的滤波器的参数,等等。
图3B是根据至少一些实施例的确定中间像素以在视频编码期间用于并行处理视频帧以实现高效编码操作的示例方法370的流程图。在一个实施例中,方法370可以作为框310的一部分执行。方法370可对应于上述结合图2A所讨论的初始顺序处理,并可由图1的视频编码器105执行。
在框312,处理逻辑可以将图像划分成多个预定大小的块,本文称为第三大小。例如,图像可以被划分成大小为16x16像素、32x32像素、8x8像素的块或任何其他大小的块(包括非正方形的块大小,例如16x8像素)。
在框314,处理逻辑可以包括按顺序处理第三大小的每个块,以确定第一模式的第三成本和第二模式的第四成本,其中确定第三成本和第四成本使用之前处理的块所获得的一组中间像素。在一个实施例中,第一模式和第二模式可分别为帧内预测模式和帧间预测模式,且每一模式的成本可由成本函数模块110计算。在另一个实施例中,第一模式和第二模式可以都是帧内预测模式。在框316,基于第一模式的第三成本和第二模式的第四成本的比较,处理逻辑可以为第三大小的每个块选择中间模式。在框318,处理逻辑可以使用所选的中间模式来获得用于第三大小的对应块的一组中间像素。
图4示出了采用计算机系统形式的示例机器400。计算机系统400执行使该机器执行本文讨论的任何一个或更多个方法的一组或更多组指令426。该机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份运行,或作为对等(或分布式)网络环境中的对等机器运行。机器可以是个人电脑(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、服务器、网络路由器、交换机或桥,或任何能够执行一组指令(顺序或其他)的机器,这些指令指定该机器要采取的动作。此外,虽然仅示出了单个机器,但术语“机器”也应被认为包括单独或联合执行指令组426以执行本文讨论的任何一个或更多个方法的任何机器集合。
计算机系统400包括处理器402,主存储器404(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM),等等),静态存储器406(例如,闪存、静态随机存取存储器(SRAM),等等),以及数据存储设备416,它们通过总线408相互通信。
处理器402代表一个或更多个通用处理设备,例如微处理器、中央处理单元或类似的设备。更具体地,处理器402可以是复杂指令集计算(CISC)微处理器、简化指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实现其他指令集的处理器或实现指令集组合的处理器。处理器402也可以是一个或更多个特殊用途的处理设备,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,或类似的设备。处理器402被配置为执行网络节点的指令,以执行本文讨论的操作和步骤。
计算机系统400还可以包括网络接口设备422,该设备通过网络418提供与其他机器的通信,例如局域网(LAN)、内部网、外部网或互联网。计算机系统400还可以包括显示设备410(如液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备412(如键盘)、光标控制设备414(如鼠标)和信号生成设备420(如扬声器)。
数据存储设备416可以包括计算机可读存储介质424,其上存储体现本文所述方法或功能的任何一种或更多种的网络节点的指令集426。在计算机系统400执行网络节点的指令集426期间,网络节点的指令集426也可以完全或至少部分地驻留在主存储器404和/或处理器402内,主存储器404和处理器402也构成计算机可读的存储媒体。指令集426可以进一步通过网络接口设备422通过网络418传送或接收。
尽管计算机可读存储介质424的示例被示为单个介质,但术语“计算机可读存储介质”可以包括存储指令集426的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”可以包括能够存储、编码或携带供机器执行的指令集并使机器执行本公开的任何一种或更多种方法的任何介质。术语“计算机可读存储介质”可以包括但不限于固态存储器、光学介质和磁性介质。
应用本文公开的一种或更多种技术所生成的图像和视频可以在监视器或其他显示设备上显示。在某些实施例中,显示设备可以直接耦合到生成或呈现图像或视频的系统或处理器。在其他实施例中,显示设备可以诸如通过网络间接耦合到系统或处理器。这类网络的例子包括互联网、移动通信网络、WIFI网络以及任何其他有线和/或无线联网系统。当显示设备间接耦合时,由系统或处理器生成的图像或视频可以通过网络流传输到显示设备。这种流传输允许,例如视频游戏或渲染图片或视频的其他应用程序在服务器上或数据中心中执行,以及允许所呈现的图片和视频传输并显示在物理上与服务器或数据中心分开的一个或更多个用户设备(如电脑、视频游戏控制台、智能手机、其他的移动设备,等等)上。因此,本文所公开的技术可用于增强流传输的图像或视频,并增强流传输图像和视频的服务,如NVIDIA GeForce Now(GFN)、谷歌Stadia等。
此外,应用本公开的一种或更多种技术生成的图像和视频可用于训练、测试或验证深度神经网络(DNN),该深度神经网络用于识别现实世界中的对象和环境。这样的图像和视频可以包括道路、工厂、建筑物、城市环境、乡村环境、人类、动物以及任何其他实物或真实世界设置的场景。这样的图像和视频可以用来训练、测试或认证在机器或机器人中用来操纵、处理或修改现实世界中的物理对象的DNN。此外,这样的图像和视频可用于训练、测试或认证在自主车辆中用来导航和移动车辆通过真实世界的DNN。此外,应用本文所公开的一种或更多种技术生成的图像和视频可以用来向这些机器、机器人和车辆的使用者传达信息。
他其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在下面权利要求的上下文中),术语“一(a)”和“一个(an)”和“该(the)”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括(comprising)”、“具有(having)”、“包含(inlcuding)”和“含有(containing)”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包含在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。在至少一个实施例中,除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
除非以其他方式明确指出或与上下文明显矛盾,否则诸如“A,B和C中的至少一个”或“A,B与C中的至少一个”形式的短语之类的连接语在上下文中理解为通常用来表示项目、条款等,其可以是A或B或C,也可以是A和B和C的集合的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接短语“A,B和C中的至少一个”和“A,B与C中的至少一个”是指以下任意集:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种连接语言通常不旨在暗示某些实施例要求存在A中的至少一个,B中的至少一个和C中的至少一个。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。在至少一个实施例中,多个中项目的数量至少为两个,但如果明确指示或通过上下文指示,则可以更多。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以任何合适的顺序执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)之类的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令,一个或更多个计算机程序或一个或更多个应用程序),该代码通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码以例如计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其排除了暂时性信号(例如,传播的瞬态电或电磁传输),但包括暂时性信号的收发器内的非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,该可执行指令在由计算机系统的一个或更多个处理器执行时(即,作为被执行的结果),使得计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个体非暂时性存储介质中的一个或更多个缺少全部代码,而多个非暂时性计算机可读存储介质共同存储全部代码。在至少一个实施例中,可执行指令被执行,以使得不同的指令由不同的处理器执行,例如,非暂时性计算机可读存储介质存储指令,并且主中央处理单元(“CPU”)执行一些指令,而图形处理单元(“GPU”)执行其他指令。在至少一个实施例中,计算机系统的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有实现操作的执行的可适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或变换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据变换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的一部分。作为非限制性示例,“处理器”可以是CPU或GPU。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地按顺序或并行执行指令。在至少一个实施例中,术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
在本文件中,可以参考获得、获取、接收或输入模拟或数字数据到子系统、计算机系统或计算机实现的机器中。在至少一个实施例中,可以通过多种方式来完成获得、获取、接收或输入模拟和数字数据的过程,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在至少一个实施例中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的讨论阐述了所描述的技术的示例实施例,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于描述的目的在上面定义了具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。

Claims (20)

1.一种用于压缩图像的数据的方法,所述方法包括:
确定中间像素;
将所述图像的每个位置与第一大小的多个块中的块和第二大小的多个块中的块相关联;
使用所述中间像素,以并行方式为所述第一大小的每个块和为所述第二大小的每个块,确定第一模式的第一成本和第二模式的第二成本;
针对所述图像的每个位置,使用与对应位置相关联的所述第一大小的相应块和所述第二大小的相应块中的每个块的所述第一成本和所述第二成本,i)从至少所述第一模式和所述第二模式中选择最终模式,以及ii)从至少所述第一大小和第二大小中选择最终块大小;
基于所述图像的每个位置的所选择的最终模式和所选择的最终块大小,确定最终像素;以及
基于所述最终像素,获得所述图像的表示。
2.根据权利要求1所述的方法,其中确定所述中间像素包括:
将所述图像划分成第三大小的多个块:
按顺序处理所述第三大小的每个块,以确定所述第一模式的第三成本和所述第二模式的第四成本,其中确定所述第三成本和所述第四成本使用为先前处理的块获取的一组中间像素;
为所述第三大小的每个块,基于所述第一模式的所述第三成本和所述第二模式的第四成本的比较,选择中间模式;以及
使用所选择的中间模式,为所述第三大小的对应块获得一组中间像素。
3.根据权利要求1所述的方法,其中确定所述中间像素包括:
将所述图像划分成第三大小的多个块;以及
为所述第三个大小的每个块,从所述图像中选择对应的源像素块。
4.根据权利要求1所述的方法,其中确定所述第一模式的所述第一成本和所述第二模式的所述第二成本包括,对于所述第一模式和所述第二模式中的每个模式:
基于相应模式和一组中间像素生成临时块预测;以及
基于所述临时块预测和所述图像的对应的源像素块的比较,计算所述相应模式的成本。
5.根据权利要求1所述的方法,其中对于所述图像的每个位置,确定所述最终像素包括:
基于所选择的最终模式、所选择的最终块大小和与一个或更多个相邻位置相关联的一组先前确定的最终像素,生成初始预测块;以及
通过使用压缩算法变换所述初始预测块,导出最终像素块。
6.根据权利要求5所述的方法,其中所述压缩算法基于AV1、HEVC、VVC或VP9编码标准中的一种。
7.根据权利要求1所述的方法,其中所述第一模式是多个帧内预测模式之一,并且所述第二模式是帧间预测模式。
8.根据权利要求7所述的方法,其中所述帧间预测模式:
用第一参考图像中的所述第一大小的第一参考块近似所述第一大小的各个块;以及
用第二参考图像中的所述第二大小的第二参考块近似所述第二大小的各个块。
9.一种系统,包括:
存储器;以及
耦合到所述存储器的处理器,用于执行以下操作,包括:
确定图像的中间像素;
将所述图像的每个位置与第一大小的多个块中的块和第二大小的多个块中的块相关联;
使用所述中间像素,以并行方式为所述第一大小的每个块和为所述第二大小的每个块,确定第一模式的第一成本和第二模式的第二成本;
针对所述图像的每个位置,使用与对应位置相关联的所述第一大小的相应块和所述第二大小的相应块中的每个块的所述第一成本和所述第二成本,i)从至少所述第一模式和所述第二模式中选择最终模式,以及ii)从至少所述第一大小和第二大小中选择最终块大小;
基于所述图像的每个位置的所选择的最终模式和所选择的最终块大小,确定最终像素;以及
基于所述最终像素,获得所述图像的表示。
10.根据权利要求9所述的系统,其中确定所述中间像素包括:
将所述图像划分成第三大小的多个块:
按顺序处理所述第三大小的每个块,以确定所述第一模式的第三成本和所述第二模式的第四成本,其中确定所述第三成本和所述第四成本使用为先前处理的块获取的一组中间像素;
为所述第三大小的每个块,基于所述第一模式的所述第三成本和所述第二模式的第四成本的比较,选择中间模式;以及
使用所选择的中间模式,为所述第三大小的对应块获得一组中间像素。
11.根据权利要求9所述的系统,其中确定所述第一模式的所述第一成本和所述第二模式的所述第二成本包括,对于所述第一模式和所述第二模式中的每个模式:
基于相应模式和一组中间像素生成临时块预测;以及
基于所述临时块预测和所述图像的对应的源像素块的比较,计算所述相应模式的成本。
12.根据权利要求9所述的系统,其中对于所述图像的每个位置,确定所述最终像素包括:
基于所选择的最终模式、所选择的最终块大小和与一个或更多个相邻位置相关联的一组先前确定的最终像素,生成初始预测块;以及
通过使用压缩算法变换所述初始预测块,导出最终像素块。
13.根据权利要求12所述的系统,其中所述压缩算法基于AV1、HEVC、VVC或VP9编码标准中的一种。
14.根据权利要求9所述的系统,其中所述第一模式是多个帧内预测模式之一,并且所述第二模式是帧间预测模式。
15.一种非暂时性计算机可读介质,其包括指令,所述指令在由处理器执行时使所述处理器执行以下操作,包括:
确定图像的中间像素;
将所述图像的每个位置与第一大小的多个块中的块和第二大小的多个块中的块相关联;
使用所述中间像素,以并行方式为所述第一大小的每个块和为所述第二大小的每个块,确定第一模式的第一成本和第二模式的第二成本;
针对所述图像的每个位置,使用与对应位置相关联的所述第一大小的相应块和所述第二大小的相应块中的每个块的所述第一成本和所述第二成本,i)从至少所述第一模式和所述第二模式中选择最终模式,以及ii)从至少所述第一大小和第二大小中选择最终块大小;
基于所述图像的每个位置的所选择的最终模式和所选择的最终块大小,确定最终像素;以及
基于所述最终像素,获得所述图像的表示。
16.根据权利要求15所述的非暂时性计算机可读介质,其中确定所述中间像素包括:
将所述图像划分成第三大小的多个块:
按顺序处理所述第三大小的每个块,以确定所述第一模式的第三成本和所述第二模式的第四成本,其中确定所述第三成本和所述第四成本使用为先前处理的块获取的一组中间像素;
为所述第三大小的每个块,基于所述第一模式的所述第三成本和所述第二模式的第四成本的比较,选择中间模式;以及
使用所选择的中间模式,为所述第三大小的对应块获得一组中间像素。
17.根据权利要求15所述的非暂时性计算机可读介质,其中确定所述第一模式的所述第一成本和所述第二模式的所述第二成本包括,对于所述第一模式和所述第二模式中的每个模式:
基于相应模式和一组中间像素生成临时块预测;以及
基于所述临时块预测和所述图像的对应的源像素块的比较,计算所述相应模式的成本。
18.根据权利要求15所述的非暂时性计算机可读介质,其中对于所述图像的每个位置,确定所述最终像素包括:
基于所选择的最终模式、所选择的最终块大小和与一个或更多个相邻位置相关联的一组先前确定的最终像素,生成初始预测块;以及
通过使用压缩算法变换所述初始预测块,导出最终像素块。
19.根据权利要求18所述的非暂时性计算机可读介质,其中所述压缩算法基于AV1、HEVC、VVC或VP9编码标准中的一种。
20.根据权利要求15所述的非暂时性计算机可读介质,其中所述第一模式是多个帧内预测模式之一,并且所述第二模式是帧间预测模式。
CN202180014800.7A 2021-09-02 2021-09-02 在视频编码过程中视频帧的并行处理 Active CN116114245B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/116311 WO2023028964A1 (en) 2021-09-02 2021-09-02 Parallel processing of video frames during video encoding

Publications (2)

Publication Number Publication Date
CN116114245A true CN116114245A (zh) 2023-05-12
CN116114245B CN116114245B (zh) 2025-09-09

Family

ID=85285763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180014800.7A Active CN116114245B (zh) 2021-09-02 2021-09-02 在视频编码过程中视频帧的并行处理

Country Status (3)

Country Link
US (1) US11871018B2 (zh)
CN (1) CN116114245B (zh)
WO (1) WO2023028964A1 (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211845A1 (en) * 2013-01-29 2014-07-31 Fujitsu Limited Moving image encoding apparatus
US9432668B1 (en) * 2016-03-15 2016-08-30 NGCodec Inc. Apparatus and method for inter and intra mode selection and block partitioning
US20170094293A1 (en) * 2015-09-30 2017-03-30 Apple Inc. Configurable motion estimation search systems and methods
US20170230673A1 (en) * 2016-02-05 2017-08-10 Blackberry Limited Rolling intra prediction for image and video coding
CN107318015A (zh) * 2016-04-26 2017-11-03 谷歌公司 用于视频编码的混合预测模式
US20170353735A1 (en) * 2016-06-06 2017-12-07 Google Inc. Adaptive Overlapped Block Prediction in Variable Block Size Video Coding
US20180007364A1 (en) * 2016-07-01 2018-01-04 Frederic J. Noraz Method and system of video coding using content based metadata
CN108781297A (zh) * 2016-03-18 2018-11-09 联发科技股份有限公司 视频编码的方法与装置
CN109417618A (zh) * 2016-06-29 2019-03-01 必卡姆公司 用于数字图像的帧内编码方法和对应的解码方法
US20200059659A1 (en) * 2018-08-17 2020-02-20 Mediatek Inc. Shared Candidate List
US20200186808A1 (en) * 2018-12-11 2020-06-11 Google Llc Rate/distortion/rdcost modeling with machine learning

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120577A1 (ja) 2007-03-29 2008-10-09 Kabushiki Kaisha Toshiba 画像符号化及び復号化の方法及び装置
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
KR101963097B1 (ko) 2010-12-07 2019-03-27 소니 주식회사 화상 처리 장치 및 화상 처리 방법
US10440373B2 (en) * 2011-07-12 2019-10-08 Texas Instruments Incorporated Method and apparatus for coding unit partitioning
CN103891292B (zh) 2011-10-24 2018-02-02 寰发股份有限公司 视频数据环路滤波处理方法及其装置
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
KR20130050149A (ko) 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
JP5970369B2 (ja) * 2012-12-27 2016-08-17 日本電信電話株式会社 符号化単位サイズ決定方法、符号化単位サイズ決定装置、及びプログラム
US20150229921A1 (en) * 2014-02-11 2015-08-13 Nvidia Corporation Intra searches using inaccurate neighboring pixel data
EP3292687A4 (en) * 2015-05-06 2019-07-03 NGCodec Inc. INTRAPRADICTION PROCESSOR WITH REDUCED COST BLOCK PARTITIONING AND REFINED INTRAMODE SELECTION
US20170085886A1 (en) 2015-09-18 2017-03-23 Qualcomm Incorporated Variable partition size for block prediction mode for display stream compression (dsc)
US20170272758A1 (en) 2016-03-16 2017-09-21 Mediatek Inc. Video encoding method and apparatus using independent partition coding and associated video decoding method and apparatus
US10621731B1 (en) * 2016-05-31 2020-04-14 NGCodec Inc. Apparatus and method for efficient motion estimation for different block sizes
WO2019050426A1 (en) * 2017-09-05 2019-03-14 Huawei Technologies Co., Ltd. METHOD FOR QUICKLY ADAPTING BLOCKS FOR COLLABORATIVE FILTERING IN LOSS VIDEO CODECS
US10687054B2 (en) 2017-12-20 2020-06-16 Intel Corporation Decoupled prediction and coding structure for video encoding
WO2019139393A1 (ko) * 2018-01-15 2019-07-18 김기백 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치
CN118972573A (zh) 2018-01-30 2024-11-15 松下电器(美国)知识产权公司 编码装置、解码装置和非暂时性的计算机可读介质
WO2019163794A1 (ja) 2018-02-21 2019-08-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置及び符号化方法
CN108449603B (zh) 2018-03-22 2019-11-22 南京邮电大学 基于多核平台多层次任务级与数据级并行的hevc解码方法
NZ769216A (en) * 2018-03-25 2022-04-29 B1 Institute Image Technology Inc Image encoding/decoding method and device
US11017566B1 (en) * 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11012713B2 (en) * 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
WO2020054784A1 (ja) 2018-09-11 2020-03-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
US11386524B2 (en) * 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11367224B2 (en) * 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) * 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
US11711544B2 (en) * 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11627314B2 (en) * 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11930159B2 (en) * 2019-11-29 2024-03-12 Intel Corporation Method and system of video coding with intra block copying
US20210211703A1 (en) * 2020-01-07 2021-07-08 Apple Inc. Geometry information signaling for occluded points in an occupancy map video
US11798196B2 (en) * 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11477483B2 (en) * 2020-01-08 2022-10-18 Apple Inc. Video-based point cloud compression with variable patch scaling
US11330526B2 (en) * 2020-05-29 2022-05-10 TriSpace Technologies (OPC) Pvt. Ltd. System and method for optimizing power consumption in video communications in mobile devices
CN111918058B (zh) * 2020-07-02 2022-10-28 北京大学深圳研究生院 硬件友好的帧内预测模式快速确定方法、设备及存储介质
US11425402B2 (en) * 2020-07-20 2022-08-23 Meta Platforms, Inc. Cross-codec encoding optimizations for video transcoding
CN113301347B (zh) 2021-05-08 2023-05-05 广东工业大学 一种hevc高清视频编码的优化方法
US12388975B2 (en) * 2021-06-25 2025-08-12 Intel Corporation Method and system of video coding with efficient intra block copying
CN116076073B (zh) * 2021-09-02 2025-10-21 辉达公司 用于高性能视频编码的硬件编解码器加速器
CN116097649B (zh) * 2021-09-06 2026-03-13 辉达公司 无滤波相依性的视频帧的并行编码

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211845A1 (en) * 2013-01-29 2014-07-31 Fujitsu Limited Moving image encoding apparatus
US20170094293A1 (en) * 2015-09-30 2017-03-30 Apple Inc. Configurable motion estimation search systems and methods
US20170230673A1 (en) * 2016-02-05 2017-08-10 Blackberry Limited Rolling intra prediction for image and video coding
US9432668B1 (en) * 2016-03-15 2016-08-30 NGCodec Inc. Apparatus and method for inter and intra mode selection and block partitioning
CN108781297A (zh) * 2016-03-18 2018-11-09 联发科技股份有限公司 视频编码的方法与装置
CN107318015A (zh) * 2016-04-26 2017-11-03 谷歌公司 用于视频编码的混合预测模式
US20170353735A1 (en) * 2016-06-06 2017-12-07 Google Inc. Adaptive Overlapped Block Prediction in Variable Block Size Video Coding
CN109417618A (zh) * 2016-06-29 2019-03-01 必卡姆公司 用于数字图像的帧内编码方法和对应的解码方法
US20180007364A1 (en) * 2016-07-01 2018-01-04 Frederic J. Noraz Method and system of video coding using content based metadata
US20200059659A1 (en) * 2018-08-17 2020-02-20 Mediatek Inc. Shared Candidate List
US20200186808A1 (en) * 2018-12-11 2020-06-11 Google Llc Rate/distortion/rdcost modeling with machine learning

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAHAO LI等: "Multiple line-based intra prediction,JVET-C0071", 《JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 3RD MEETING: GENEVA, CH, 26 MAY – 1 JUNE 2016》, 17 May 2016 (2016-05-17) *
T. NGUYEN等: "CE3: Summary Report on Lossless Coding,JVET-Q0023-v1", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 17TH MEETING: BRUSSELS, BE, 7–17 JANUARY 2020》, 31 December 2019 (2019-12-31) *

Also Published As

Publication number Publication date
WO2023028964A1 (en) 2023-03-09
US11871018B2 (en) 2024-01-09
CN116114245B (zh) 2025-09-09
US20230068408A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
CN116097649B (zh) 无滤波相依性的视频帧的并行编码
JP7589427B2 (ja) ビデオフレーム圧縮方法、ビデオフレーム伸長方法及び装置
CN115866356B (zh) 一种视频的水印添加方法、装置、设备及存储介质
CN116076073B (zh) 用于高性能视频编码的硬件编解码器加速器
JP5656998B2 (ja) 動画像復号装置及び動画像復号方法
CN103957415B (zh) 基于屏幕内容视频的cu分割方法和装置
US9621901B1 (en) Encoding of computer-generated video content
WO2021036795A1 (zh) 视频超分辨率处理方法及装置
KR20250138707A (ko) 얼굴 비디오 압축을 위한 방법 및 장치
CN109587491A (zh) 一种帧内预测方法、装置及存储介质
US11202085B1 (en) Low-cost hash table construction and hash-based block matching for variable-size blocks
CN114067009A (zh) 基于Transformer模型的图像处理方法与装置
CN115665477A (zh) 视频增强系统、方法及装置
CN115209147A (zh) 摄像头视频传输带宽优化方法、装置、设备及存储介质
JP2024531738A (ja) 画像フィルタリング方法、装置、機器及びプログラム
CN116114245B (zh) 在视频编码过程中视频帧的并行处理
CN111225214B (zh) 视频处理方法、装置及电子设备
CN114745541A (zh) 处理视频帧图像的方法及电子设备
CN111314701A (zh) 视频处理方法及电子设备
JP7765159B2 (ja) 画像フィルタリング方法およびその装置、並びに機器
CN115706808B (zh) 视频处理方法及装置
WO2026056606A1 (zh) 色度分量预测方法、装置、设备、存储介质及产品
JP2025010060A (ja) ニューラル符号化および復号化方法および装置
CN119856497A (zh) 编解码方法、编解码器、码流以及计算机存储介质
CN121691697A (zh) 亮度分量预测方法、装置、设备、存储介质及产品

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
GR01 Patent grant
GR01 Patent grant