CN114760467A - 编码模式的确定方法及装置 - Google Patents
编码模式的确定方法及装置 Download PDFInfo
- Publication number
- CN114760467A CN114760467A CN202210288519.9A CN202210288519A CN114760467A CN 114760467 A CN114760467 A CN 114760467A CN 202210288519 A CN202210288519 A CN 202210288519A CN 114760467 A CN114760467 A CN 114760467A
- Authority
- CN
- China
- Prior art keywords
- coding
- mode
- rdcost
- coding mode
- satd
- 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
Links
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/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/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/124—Quantisation
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本说明书一个或多个实施例提供一种编码模式的确定方法和装置,其中,该方法包括:获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD;根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数;响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。本说明实施例降低了编码器的编码复杂度,并且使得编码模式的选择更准确,提升了编码性能。
Description
技术领域
本说明书一个或多个实施例涉及视频处理技术领域,尤其涉及一种编码模式的确定方法及装置。
背景技术
在相关技术中,一段视频序列可以通过编码器编码成压缩码流后,传输至接收端的解码器。其中,所述的编码器在对视频序列中的视频图像进行编码时,其编码过程可以包括:将视频图像划分为互不重叠的编码单元(Coding Unit,CU),并对这些CU进行帧内编码或者帧间编码,得到预测图像块,再根据预测图像块获取预测残差,将预测残差进行离散余弦变换、量化、熵编码等处理,得到压缩码流。
其中,上述的编码过程中,编码器在对CU进行编码时,会先确定该CU的编码模式,再根据确定的编码模式进行编码。对于一个CU来说,可以有多种编码模式供选择,通常可以计算这些编码模式的率失真优化代价RDcost,并选择RDcost较小的模式作为优选的编码模式。但是,实践中发现,该编码模式的选择过程较为复杂,影响了编码效率。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种编码模式的确定方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种编码模式的确定方法,所述方法包括:
获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD;
根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数;
响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
根据本说明书一个或多个实施例的第二方面,提出了一种编码模式的确定装置,所述装置包括:
代价获取模块,用于获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD;
代价调整模块,用于根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数;
模式确定模块,用于响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现本说明书任一实施例的编码模式的确定方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现本说明书任一实施例的编码模式的确定方法。
根据本说明书一个或多个实施例的第五方面,提供了一种帧间预测编码模式的选择方法,所述方法包括:
获取第一帧间预测编码模式的RDcost和第二帧间预测编码模式的SATD;
根据所述SATD和率失真影响参数,得到所述第二帧间预测编码模式的估计编码代价;所述率失真影响参数用于表示所述帧间预测编码模式的RDcost的关联参数;
在所述第一帧间预测编码模式的RDcost小于第二帧间预测编码模式的估计编码代价的情况下,选择所述第一帧间预测编码模式作为目标编码单元的帧间预测编码模式。
本说明书实施例的编码模式的确定方法和装置,通过将第二编码模式采用SATD代价替代RDcost代价,参与模式间的代价比较,并在第一编码模式的RDcost小于该第二编码模式的估计编码代价时直接选择第一编码模式进行编码,使得不需要再计算第二编码模式的RDcost,即避免了对第二编码模式执行复杂度较高的RDO过程,从而降低了编码器的编码复杂度,提高了编码效率;并且,第二编码模式的估计编码代价不仅依据了SATD,而且还引入了对第二编码模式的RDcost计算具有影响的率失真影响参数,从而使得该估计编码代价能更准确的反映第二编码模式的RDcost,这有助于模式间的代价比较结果更准确,进而使得编码模式的选择更准确,提升编码性能,实现了在降低编码复杂度,提高编码效率的同时尽可能的提高编码性能。
附图说明
为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一示例性实施例提供的一种视频序列的结构;
图2是一示例性实施例提供的一种编码过程的示意图;
图3是一示例性实施例提供的一种解码过程的示意图;
图4是一示例性实施例提供的一种编码模式的确定方法的流程图;
图5是一示例性实施例提供的另一种编码模式的确定方法的流程图;
图6是一示例性实施例提供的5个相邻编码单元的位置示意图;
图7是一示例性实施例提供的一种编码模式的确定装置的结构示意图;
图8是一示例性实施例提供的一种帧间预测编码模式的选择方法的流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
视频是按照时间序列排列的静态图片(可以称为“帧”)的集合,用于存储视觉信息。视频捕获设备(例如,摄像头)可以用于按照时间序列捕获和存储这些图片,并且视频播放设备(例如,电视、计算机、智能电话、平板计算机、视频播放器或具有显示功能的任何最终用户终端)可以用于按照时间序列显示这样的图片。此外,在一些应用中,视频捕获设备可以将所捕获的视频实时发送至视频播放设备(例如,电脑),诸如用于会议、实况广播等。
为了减少这样的应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前进行解压缩。压缩和解压缩可以通过由处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现。压缩模块一般称为“编码器”,并且解压缩模块一般称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以实现为多种合适的硬件、软件或其组合中的任何一者。例如,编码器和解码器的硬件实现方式可以包括电路,诸如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、或其任何组合。编码器和解码器的软件实现方式可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现的算法或过程。视频压缩和解压缩可以通过各种算法或标准(诸如MPEG-1、MPEG-2、MPEG-4、H.26x系列等)来实现。在一些应用中,编解码器可以根据第一编码标准解压缩视频,并使用第二编码标准重新压缩经解压缩的视频,在这种情况下,编解码器可以称为“转码器”。
视频编码过程可以识别并保留可以用于重构图片的有用信息,而忽略针对重构而言不重要的信息。如果被忽略的、不重要的信息不能被完全重构,则这样的编码过程可以称为“有损”。否则,它可以称为“无损”。大多数编码过程都是有损的,这是减少所需存储空间和传输带宽的一种权衡。
正被编码的图片(称为“当前图片”)的有用信息包括相对于参考图片(例如,先前编码和重构的图片)的变化。这样的变化可以包括:像素的位置变化、亮度变化或颜色变化,其中位置变化是最受关注的。表示对象的一组像素的位置变化可以反映该对象在参考图片与当前图片之间的运动。
未参考另一图片而编码的图片(即,它是它自己的参考图片)称为“I图片”。使用先前图片作为参考图片而编码的图片称为“P图片”。使用先前图片和未来图片两者作为参考图片(即,参考是“双向的”)而编码的图片称为“B图片”。
图1例示了根据本公开的一些实施方式的示例视频序列100的结构。视频序列100可以是实况视频或已被捕获和存档的视频。视频100可以是现实视频、计算机生成视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的现实视频)。可以从视频捕获设备(例如,摄像头)、包含先前捕获的视频的视频档案(例如,存储在存储设备中的视频文件)或从视频内容提供商接收视频的视频馈送接口(例如,视频广播收发器)输入视频序列100。
如图1所示,视频序列100可以包括沿着时间线在时间上排列的一系列图片,包括图片102、图片104、图片106和图片108。图片102至图片106是连续的,并且在图片106与图片108之间存在更多的图片。在图1中,图片102是I图片,其参考图片是图片102本身。图片104是P图片,其参考图片是图片102,如箭头所示。图片106是B图片,其参考图片是图片104和图片108,如箭头所示。在一些实施方式中,图片(例如,图片104)的参考图片可以不紧接在该图片之前或之后。例如,图片104的参考图片可以是图片102之前的图片。应注意,图片102至图片106的参考图片仅是示例,并且本公开不将参考图片的实施方式限制为图1所示的示例。
通常,由于这些任务的计算复杂性,所以视频编解码器不会一次对整个图片进行编码或解码。相反,它们可以将图片划分成基本区段(segment),并逐区段地对图片进行编码或解码。这种基本区段在本公开中称为基本处理单元(“BPU”)。例如,图1的结构110示出了视频序列100的图片(例如,图片102至图片108中的任何一者)的示例结构。在结构110中,图片被划分成4×4个基本处理单元,其边界显示为虚线。在一些实施方式中,基本处理单元在一些视频编码标准(例如,MPEG系列、H.261、H.263或H.264/AVC)中可以称为“宏块”,或在一些其它视频编码标准(例如,H.265/HEVC或H.266/VVC)中称为“编码树单元”(codingtree units,“CTU”)。在图片中,基本处理单元可以具有可变大小,诸如128×128、64×64、32×32、16×16、4×8、16×32或者像素的任何任意形状和大小。可以基于编码效率与要在基本处理单元中保持的细节级别的平衡来针对图片选择基本处理单元的大小和形状。
基本处理单元可以是逻辑单元,其可以包括被存储在计算机存储器中(例如,被存储在视频帧缓冲部中)的一组不同类型的视频数据。例如,彩色图片的基本处理单元可以包括表示非彩色亮度信息的亮度分量(Y)、表示颜色信息的一个或更多个色度分量(例如,Cb和Cr)以及相关联的语法要素,其中亮度分量和色度分量可以具有与基本处理单元相同的大小。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度分量和色度分量可以称为“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其亮度分量和色度分量中的每一者重复执行。
视频编码具有多个操作阶段(stage),其示例将在后面详述。针对各个阶段,基本处理单元的大小仍然可能太大而无法处理,因此可以进一步划分。成在本公开中称为“基本处理子单元”的区段。在一些实施方式中,基本处理子单元在一些视频编码标准(例如,MPEG系列、H.261、H.263或H.264/AVC)中可以称为“块”,或在一些其它视频编码标准(例如,H.265/HEVC或H.266/VVC)中称为“编码单元”(“CU”)。基本处理子单元可以具有与基本处理单元相同或更小的大小。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括被存储在计算机存储器中(例如,被存储在视频帧缓冲部中)的一组不同类型的视频数据(例如,Y、Cb、Cr以及相关联的语法要素)。对基本处理子单元执行的任何操作都可以对其亮度分量和色度分量中的每一者重复执行。应注意,这种划分可以根据处理需要进行到更深级别。还应注意,不同阶段可以使用不同方案来划分基本处理单元。
图2示例了根据本公开的一些实施方式的一示例编码过程的示意图,如图2所示,编码器可以根据过程200B将视频序列202编码成视频比特流228。类似于图1中的结构110,视频序列202的各个原始图片可以由编码器划分成基本处理单元、基本处理子单元或区域,以进行处理。在图2中,编码器可以将视频序列202的原始图片的基本处理单元(称为“原始BPU”)馈送至预测阶段,以生成预测数据206和预测BPU 208。编码器可以从原始BPU减去预测BPU 208,以生成残差BPU 210。编码器可以将残差BPU 210馈送至变换阶段212和量化阶段214,以生成量化变换系数216。编码器可以将预测数据206和量化变换系数216馈送至二进制编码阶段226,以生成视频比特流228。组成部分202、预测阶段、206、208、210、212、214、216、226和228可以称为“前向路径”。在过程200B期间,在量化阶段214之后,编码器可以将量化变换系数216馈送至逆量化阶段218和逆变换阶段220,以生成重构残差BPU 222。编码器可以将重构残差BPU 222与预测BPU 208相加,以生成预测参考224,该预测参考224在预测阶段204中用于过程200B的下一迭代。过程200B的组成部分218、220、222和224等可以称为“重构路径”。重构路径可以用于确保编码器和解码器使用相同的参考数据进行预测。
其中,上述的预测阶段可以包括:空间预测和时间预测。空间预测(例如,图片内预测或“帧内预测(intra prediction)”)可以使用来自同一图片中一个或更多个已经编码的相邻BPU的像素来预测当前BPU。空间预测可以减少图片的固有空间冗余。时间预测(例如,图片间预测或“帧间预测(inter prediction)”)可以使用来自一个或更多个已经编码的图片的区域来预测当前BPU。时间预测可以减少图片的固有时间冗余。
参考过程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。针对正在被编码的图片的原始BPU,预测参考224可以包括同一图片中的(在前向路径中)已经编码和(在重构路径中)重构的一个或更多个相邻BPU。编码器可以通过外推相邻BPU来生成预测BPU 208。
又例如,在时间预测阶段2044,编码器可以执行帧间预测。针对当前图片的原始BPU,预测参考224可以包括(在前向路径中)已经编码和(在重构路径中)重构的一个或更多个图片(称为“参考图片”)。在一些实施方式中,参考图片可以由BPU编码和重构BPU。例如,编码器可以将重构残差BPU 222与预测BPU 208相加,以生成重构BPU。当生成同一图片的所有重构BPU时,编码器可以生成重构图片作为参考图片。编码器可以执行“运动估计”的操作,以在参考图片的范围(称为“搜索窗口”)中搜索匹配区域。搜索窗口在参考图片中的位置可以是基于原始BPU在当前图片中的位置确定的。
运动估计可以用于识别各种类型的运动,例如,诸如平移、旋转、缩放等。针对帧间预测,预测数据206可以包括例如匹配区域的位置(例如,坐标)、与匹配区域相关联的运动矢量、参考图片的数量、与参考图片相关联的权重等。
仍然参考过程200B的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决定阶段230,编码器可以选择针对过程200B的当前迭代的预测模式(例如,帧内预测或帧间预测中的一者)。例如,编码器可以执行率失真优化技术,其中编码器可以根据候选预测模式的比特率和重构参考图片在候选预测模式下的失真来选择预测模式,以最小化成本函数的值。根据所选择的预测模式,编码器可以生成对应预测BPU 208和预测数据206。
在过程200B的重构路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,当前图片中已经编码和重构的当前BPU)之后,编码器可以将预测参考224直接馈送至空间预测阶段2042,以供以后使用(例如,用于当前图片的下一BPU的外推)。如果在前向路径中选择了帧间预测模式,则在生成预测参考224(例如,所有BPU都已被编码和重构的当前图片)之后,编码器可以将预测参考224馈送至环路滤波器阶段232,在环路滤波器阶段232,编码器可以将环路滤波器应用于预测参考224,以减少或消除由帧间预测引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如,诸如去块、样本自适应偏移、自适应环路滤波器等。环路滤波参考图片可以存储在缓冲部234(或“解码图片缓冲部”)中,以供以后使用(例如,将用作视频序列202的未来图片的帧间预测参考图片)。编码器可以在缓冲部234中存储一个或更多个参考图片,以在时间预测阶段2044使用。在一些实施方式中,编码器可以在二进制编码阶段226对环路滤波器的参数(例如,环路滤波器强度)以及量化变换系数216、预测数据206和其它信息进行编码。
编码器可以迭代地执行过程200B,以(在前向路径中)对原始图片的各个原始BPU进行编码并且(在重构路径中)生成用于对原始图片的下一原始BPU进行编码的预测参考224。在对原始图片的所有原始BPU进行编码之后,编码器可以继续对视频序列202中的下一图片进行编码。
参考过程200B,编码器可以接收由视频捕获设备(例如,摄像头)生成的视频序列202。本文使用的术语“接收”可以指接收、输入、获取、检索、获得、读取、访问或针对输入数据采用的任何方式的任何动作。
在预测阶段204,在当前迭代,编码器可以接收原始BPU和预测参考224,并执行预测操作,以生成预测数据206和预测BPU 208。预测参考224可以是根据过程200A的先前迭代的重构路径生成的。预测阶段204的目的是通过提取预测数据206来减少信息冗余,该预测数据206可以用于根据预测数据206和预测参考224将原始BPU重构为预测BPU 208。
为了进一步压缩残差BPU 210,在变换阶段212,编码器可以通过将残差BPU 210分解成二维“基本模式”的集合来减少其空间冗余,各个基本模式与“变换系数”相关联。不同的变换算法可以使用不同的基本模式。可以在变换阶段212使用各种变换算法,例如,诸如离散余弦变换、离散正弦变换等。变换阶段212处的变换是可逆的。即,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差BPU 210。编码器可以仅记录变换系数,解码器可以根据所述变换系数重构残差BPU210,而无需从编码器接收基本模式。与残差BPU 210相比,变换系数可以具有更少的位,但是它们可以用于重构残差BPU 210而不会显著降低质量。因此,残差BPU 210被进一步压缩。
编码器可以在量化阶段214进一步压缩变换系数。量化过程也是可逆的,其中量化变换系数216可以在量化的逆运算(称为“逆量化”)中重构为变换系数。
在二进制编码阶段226,编码器可以使用二进制编码技术(例如,诸如熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其它无损或有损压缩算法)对预测数据206和量化变换系数216进行编码。在一些实施方式中,除了预测数据206和量化变换系数216之外,编码器还可以在二进制编码阶段226对其它信息(例如,诸如在预测阶段204使用的预测模式、预测操作的参数、在变换阶段212的变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等)进行编码。编码器可以使用二进制编码阶段226的输出数据来生成视频比特流228。在一些实施方式中,视频比特流228可以被进一步打包,以用于网络传输。
图3示例了根据本公开的一些实施方式的一示例解码过程的示意图,如图3所示,过程300B可以是对应于图2中的压缩过程200B的解压过程。
解码器可以将与编码图片的基本处理单元(称为“编码BPU”)相关联的视频比特流228的一部分馈送至二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码成预测数据206和量化变换系数216。解码器可以将量化变换系数216馈送至逆量化阶段218和逆变换阶段220,以生成重构残差BPU 222。解码器可以将预测数据206馈送至预测阶段,以生成预测BPU 208。解码器可以将重构残差BPU 222与预测BPU 208相加,以生成预测参考224。在一些实施方式中,预测参考224可以存储在缓冲部(例如,计算机存储器中的解码图片缓冲部)中。解码器可以将预测参考224馈送至预测阶段,以在过程300B的下一迭代中执行预测操作。
解码器可以迭代地执行过程300A,以对编码图片的各个编码BPU进行解码并生成预测参考224,以用于对编码图片的下一编码BPU进行编码。在对编码图片的所有编码BPU进行解码后,解码器可以将图片输出至视频流304,以供显示,并继续对视频比特流228中的下一编码图片进行解码。
其中,在过程300B中,预测阶段划分成空间预测阶段2042和时间预测阶段2044,并且重构路径中包括环路滤波器阶段232和缓冲部234。
针对正在被解码的编码图片(称为“当前图片”)的编码基本处理单元(称为“当前BPU”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式对当前BPU进行编码。例如,如果编码器使用帧内预测来对当前BPU进行编码,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值)、帧内预测操作的参数等。例如,帧内预测操作的参数可以包括用作参考的一个或更多个相邻BPU的位置(例如,坐标)、相邻BPU的大小、外推参数、相邻BPU相对于原始BPU的方向等。又例如,如果编码器使用帧间预测对当前BPU进行编码,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等。例如,帧间预测操作的参数可以包括与当前BPU相关联的参考图片的数量、分别与参考图片相关联的权重、相应参考图片中一个或更多个匹配区域的位置(例如,坐标)、分别与匹配区域相关联的一个或更多个运动矢量等。
基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测)还是在时间预测阶段2044执行时间预测(例如,帧间预测)。图2描述了执行这种空间预测或时间预测的细节,将不再赘述。在执行这样的空间预测或时间预测之后,解码器可以生成预测BPU 208。解码器可以将预测BPU 208和重构残差BPU 222相加,以生成预测参考224。
在过程300B中,解码器可以将预测参考224馈送至空间预测阶段2042或时间预测阶段2044,以在过程300B的下一迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测对当前BPU进行解码,则在生成预测参考224(例如,经解码的当前BPU)之后,解码器可以将预测参考224直接馈送至空间预测阶段2042,以供以后使用(例如,用于外推当前图片的下一BPU)。如果在时间预测阶段2044使用帧间预测对当前BPU进行解码,则在生成预测参考224(例如,所有BPU已被解码的参考图片)之后,编码器可以将预测参考224馈送至环路滤波器阶段232,以减少或消除失真(例如,块效应)。解码器可以以图2中描述的方式将环路滤波器应用于预测参考224。经环路滤波的参考图片可以存储在缓冲部234(例如,计算机存储器中的解码图片缓冲部)中,以供以后使用(例如,将用作视频比特流228的未来编码图片的帧间预测参考图片)。解码器可以将一个或更多个参考图片存储在缓冲部234中,以在时间预测阶段2044使用。在一些实施方式中,当预测数据206的预测模式指示符指示使用帧间预测来对当前BPU进行编码时,预测数据可以进一步包括环路滤波器的参数(例如,环路滤波器强度)。
图4是一示例性实施例提供的一种编码模式的确定方法的流程图,该方法应用于编码器在对CU进行编码前的编码模式的选择。例如,帧间编码模式可以包括Skip模式、Merge模式、AMVP模式,帧内编码模式可以包括intra模式、IBC模式等。编码模式的选择过程,可以通过计算编码模式的率失真优化(Rate Distortion Optimation,RDO)代价RDcost,选择RDcost较小的模式作为优选的编码模式。但是,大部分编码模式的RDO过程比较复杂,影响了编码器的编码效率。
本说明书实施例提供的编码模式的确定方法,该方法对编码模式的选择过程进行了改进,旨在降低编码复杂度,提高模式选择的效率,同时尽可能的保证较高的编码性能。
在描述该方法之前,首先说明该方法的构思:鉴于大部分编码模式的RDO过程复杂度比较高,可以用该编码模式的其他代价来代替RDcost参与模式间的代价比较,该其他代价可以是相比RDcost的计算过程能够更简单快速的获取,以加快模式选择的过程。
以Merge模式为例,该Merge模式的RDO过程需要对预测残差进行离散余弦变换、量化、熵编码等处理,复杂度较高,可以采用Merge模式的SATD代价来替代RDcost计算,SATD代价的计算过程比RDcost的计算过程要简单和快速。比如,可以通过比较Skip模式的RDcost与Merge模式的SATD,来选择采用Skip模式或者Merge模式进行编码。之所以选择Merge模式的SATD代价来替代RDcost,即是由于SATD与RDcost之间具有一定的正相关性,比如,如果Skip模式的RDcost远小于Merge模式的SATD,那么就可以得出Skip模式的RDcost也会小于Merge模式的RDcost,而SATD的计算过程比RDcost更简单,因此,可以采用Merge模式的SATD代价来替代RDcost参与模式间的代价比较。
图4所示例的编码模式的确定方法可以由编码器执行,具体可以是应用于编码器进行CU的编码时进行模式选择。如图4所示,该方法可以包括如下处理:
在步骤400中,获取第一编码模式的RDcost和第二编码模式的SATD。
其中,第一编码模式和第二编码模式可以有多种选择,本实施例不限制具体的模式。
示例性的,这两种模式可以是两种帧间编码模式,例如,Skip模式和AMVP模式;或者,这两种模式也可以是两种帧内编码模式,例如,intra模式和IBC模式;或者,还可以是一种帧间模式和一种帧内模式。
本实施例以第一编码模式是Skip模式,第二编码模式是Merge模式为例。
此外,上述的第一编码模式和第二编码模式中,可以是选择其中一种编码模式计算SATD,对另一种编码模式计算RDcost。例如,由于Skip模式不需要对残差进行变换、量化等操作,因此相比Skip模式,Merge模式的RDO过程的复杂度更高,从而可以计算Skip模式的RDcost,计算Merge模式的SATD。又例如,还可以按照待选择的各编码模式的排列顺序来确定计算的代价,比如,帧间编码模式在帧内编码模式的前面,可以计算帧间编码模式的RDcost,计算帧内编码模式的SATD。
在步骤402中,根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数。
本步骤中,为了在降低编码器的编码复杂度的同时,尽可能的提高编码性能,在对第二编码模式计算SATD之后,结合所述SATD和率失真影响参数,获得第二编码模式的估计编码代价。如下的公式(1):
估计编码代价=SATD+率失真影响参数………(1)
其中,率失真影响参数可以是影响第二编码模式的RDcost计算的关联参数。
具体的,如前述提到的本说明书实施例的方法的构思,第二编码模式的SATD可以代替RDcost参与模式间的代价比较,例如,如果Skip模式的RDcost远小于Merge模式的SATD,那么就可以得出推测出Skip模式的RDcost也会小于Merge模式的RDcost。
也就是说,参见下面的几种代价比较方式:
标准方式:比较“第一编码模式的RDcost”与“第二编码模式的RDcost”
替代方式一:比较“第一编码模式的RDcost”与“第二编码模式的SATD”;
替代方式二:比较“第一编码模式的RDcost”与“第二编码模式的估计编码代价”
采用上述的替代方式二时,其比较结果更接近于标准方式。例如,假设如果采用标准方式比较,可以得到的比较结果是“第一编码模式的RDcost”小于“第二编码模式的RDcost”,据此理应选择第一编码模式作为优选模式。那么,如果采用替代方式一,得到的比较结果可能是相反的,即可能会是“第一编码模式的RDcost”大于“第二编码模式的SATD”,从而得出应选择第二编码模式作为优选模式。而如果采用替代方式二,得到的比较结果可以是“第一编码模式的RDcost”小于“第二编码模式的估计编码代价”,从而选择第一编码模式作为优选模式。如上,即采用“第二编码模式的估计编码代价”相比“第二编码模式的SATD”参与模式代价比较时,得出的比较结果可以更准确。比较结果的准确性的提升,可以有助于更准确的选择优选的编码模式,进而提高编码性能。
所述的率失真影响参数,指的是第二编码模式的RDcost计算的影响参数。在计算第二编码模式的SATD的基础上,引入该率失真影响参数,将使得获得的估计编码代价更接近于第二编码模式的RDcost。
例如,以第二编码模式为Merge模式为例,可以在计算Merge模式的SATD的基础上,引入量化步长Qstep。比如,Merge的RDO过程需要对预测残差进行变换、量化、熵编码等处理,其中的量化处理中使用到的量化参数Qstep将会影响Merge的RDcost,因此,Qstep可以称为影响Merge的RDcost计算的率失真影响参数。使用“SATD+Qstep”来作为Merge的估计编码代价,以参与代价比较将更准确。
再例如,以第一编码模式是Skip模式,第二编码模式是AMVP模式为例。由于AMVP模式的RDO过程相比Skip模式的RDO过程更加复杂,因此,可以计算Skip模式的RDcost,计算AMVP模式的SATD。其中,在获得AMVP模式的SATD之后,可以根据如下的公式(2)计算AMVP模式的估计编码代价:
估计编码代价AMVP=SATDAMVP+QstepAMVP+MVAMVP………(2)
其中,上述公式中,AMVP模式的率失真影响参数可以包括Qstep和MVAMVP(MotionVector,运动矢量),这两个参数都可以影响AMVP模式的RDcost数值。其中,MV用于表征前一帧图像和后一帧图像中物体的运动剧烈程度。
在一个例子中,根据所述SATD和率失真影响参数确定第二编码模式的估计编码代价时,可以分别为SATD和率失真影响参数设置权重系数,使得两者进行加权相加。例如,参见下面的公式(3):
估计编码代价=α*SATD+β*率失真影响参数………(3)
其中,α可以称为第一权重系数,β可以称为第二权重系数,“α*SATD”可以称为调整SATD,“β*率失真影响参数”可以称为调整率失真影响参数。本实施例不限制α和β的取值,例如,α取值可以是0.1,β取值可以是0.3。
本实施例不限制公式(3)的具体形式,具体实施中可以变更。例如,α和β可以采用二次方的形式,或者α和β也可以通过其他形式对代价进行调整。
在步骤404中,响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
本步骤中,可以将步骤400中得到的第一编码模式的RDcost与步骤402中得到的第二编码模式的估计编码代价进行比较,若第一编码模式的RDcost小于第二编码模式的估计编码代价,则可以选择第一编码模式作为用于对CU进行编码使用的模式。例如,如果skip的RDcost小于Merge的估计编码代价,可以选择skip模式作为对CU编码的模式。
此外,若第一编码模式的RDcost大于第二编码模式的估计编码代价,则可以继续计算第二编码模式的RDcost,然后比较第一编码模式和第二编码模式两者的RDcost,选择RDcost较小的模式作为对CU编码的模式。例如,若skip的RDcost大于Merge的估计编码代价,则可以继续计算Merge的RDcost,选择RDcost较小的模式作为对CU编码的优选模式。
进一步的,在另一个例子中,在第一编码模式的RDcost小于第二编码模式的估计编码代价的情况下,还可以计算两者的差值,例如,计算“估计编码代价-RDcost”。并将该差值与预设的一个差值阈值x进行比较,若差值大于或等于该差值阈值x,则确定第一编码模式作为用于对CU进行编码使用的模式。若上述差值小于差值阈值x,可以继续计算第二编码模式的RDcost,然后比较第一编码模式和第二编码模式两者的RDcost,选择RDcost较小的模式作为对CU编码的模式。如此,有助于使得代价比较的结果更准确。
本实施例的编码模式的确定方法,通过将RDO过程复杂度较高的第二编码模式采用SATD代价替代RDcost代价,参与模式间的代价比较,并在第一编码模式的RDcost小于该第二编码模式的估计编码代价时直接选择第一编码模式进行编码,使得不需要再计算第二编码模式的RDcost,即避免了对第二编码模式执行复杂度较高的RDO过程,从而降低了编码器的编码复杂度;并且,第二编码模式的估计编码代价不仅依据了SATD,而且还引入了对第二编码模式的RDcost计算具有影响的率失真影响参数,从而使得该估计编码代价能更准确的反映第二编码模式的RDcost,这有助于模式间的代价比较结果更准确,进而使得编码模式的选择更准确,提升编码性能,实现了在降低编码复杂度,提高编码效率的同时尽可能的提高编码性能。
图5是一示例性实施例提供的另一种编码模式的确定方法的流程图,本实施例中,以skip模式和Merge模式的选择为例来描述该模式选择方法,但可以理解的是,该方法同样可以适用于其他两种模式间的选择。如图5所示,该方法可以包括如下处理:
在步骤500中,获取skip模式的初始RDcost和Merge模式的初始SATD。
本步骤中,skip模式的初始RDcost、以及Merge模式的初始SATD的计算可以按照常规的SATD和RDcost的计算方式获得,本实施例不再赘述。
例如,按照常规的RDcost的计算方式计算得到skip模式的RDcost,为了在名称上与后续步骤中出现的RDcost区分开,在这里将RDcost称为初始RDcost,后续步骤中出现的RDcost是对该初始RDcost进行了缩放的归一化处理后得到。同理,Merge模式的初始SATD也是按照常规SATD的计算方式获得。
例如,本步骤中,可以先计算Merge模式的初始SATD,再计算skip模式的初始RDcost。
在步骤502中,基于目标编码单元的尺寸,将所述初始RDcost和初始SATD进行归一化,得到所述第一编码模式的RDcost和第二编码模式的SATD。
其中,目标编码单元即可以是待进行编码的CU。
本实施例可以基于该CU的尺寸,将初始RDcost和初始SATD归一化到同一维度。通过基于CU尺寸进行归一化,可以反映编码代价值在单一像素上的情况,从而尽可能的避免CU尺寸对代价值的影响,代价比较的结果更加准确。
例如,可以按照如下的公式(4)和公式(5)分别对上述的初始RDcost和初始SATD进行归一化:
如上,CUsize即目标编码单元的尺寸,SATD即初始SATD,skip_RDcost即初始RDcost,SATDscale即根据公式(4)将初始SATD归一化后得到的Merge模式的SATD,同理,skip_RDcostscale即根据公式(5)将初始RDcost归一化后得到的skip模式的RDcost。
在步骤504中,获取所述目标编码单元的至少一个关联编码单元分别对应的编码模式,所述关联编码单元与所述目标编码单元具有时域或空域的编码相关性。
本实施例中,在得到第一编码模式的RDcost和第二编码模式的SATD后,可以按照下面的公式(6)进行模式间的代价比较:
skip_RDcostscale<α*SATDscale+β*Qstep……(6)
在本实施例的后续步骤中,可以判断上述的公式(6)是否成立。例如,α取值可以是0.1,β取值可以是0.01+offset。上述的α可以称为第一权重系数,β可以称为第二权重系数,本实施例中的率失真影响参数即为Qstep,“β*Qstep”即调整率失真影响参数,“α*SATDscale”即调整SATD,“α*SATDscale+β*Qstep”即第二编码模式Merge的估计编码代价。
那么,可以通过步骤504至步骤508来确定第二权重系数β的取值。如上所示,β取值可以是0.01+offset,需要先确定offset的取值。
本步骤中,可以获取目标编码单元的至少一个关联编码单元分别对应的编码模式。其中,该关联编码单元指的是与目标编码单元具有时域或空域的编码相关性的CU。
例如,在同一编码层中,距离目标编码单元越近的CU,越有可能与该目标编码单元采用的编码模式相同,即在目标编码单元一定距离范围内的CU有可能与该目标编码单元采用相同的编码模式,这些CU可以称为相邻编码单元,该相邻编码单元与目标编码单元具有空域上的编码相关性。在确定目标编码单元的编码模式时,参考这些相邻编码单元的编码模式,也有助于使得目标编码单元的模式确定的更加准确。比如,目标编码单元的4个相邻编码单元在编码时采用的模式都是skip模式,那么有很大概率该目标编码单元也应采用skip模式。
图6示例了5个相邻编码单元的位置,包括处于当前CU(目标编码单元)的左边(L)、上边(A)、左上(AL)、左下(BL)以及右上(AR)位置的CU。当然,本实施例不限制相邻编码单元的数量和位置,例如,相邻编码单元的数量也可以是3个,位置也可以是图6所示意的位置之外的其他位置,比如,L左侧的CU也可以称为相邻编码单元。
又例如,关联编码单元还可以是目标编码单元在前编码层的父编码单元。比如,一个64*64的CU经过分割后,得到32*32的CU,那么该32*32的CU是目标编码单元,64*64的CU就是其上一个编码层的父CU,即是由父CU分割而来。可选的,可以参考目标编码单元的上一个编码层的父CU,也可以参考前两个编码层的父CU,比如,一个64*64的CU经过分割后,得到32*32的CU,该32*32的CU再分割得到16*16的CU,如果将该16*16的CU称为目标编码单元,则32*32的CU和64*64的CU是其前两个编码层的父CU。
再例如,关联编码单元还可以是目标编码单元的时域同位块。该时域同位块即目标编码单元所在的当前图像帧的上一图像帧中相同位置的CU,这是考虑了编码的时域相关性,同样的道理,时域同位块也有很大概率与目标编码单元采用相同的编码模式。此外,时域同位块的数量也可以获取一个或多个,比如可以参考前一个图像帧的相同位置的CU,那就是一个时域同位块;或者,也可以参考前两个图像帧的相同位置CU,即两个时域同位块。
本步骤中,在获取所述目标编码单元的至少一个关联编码单元时,这里的至少一个关联编码单元可以包括上述的相邻编码单元、父CU、时域同位块中的至少一种。例如,假设要获取5个关联编码单元的编码模式,这5个关联编码单元可以包括如下组成:
比如,该5个关联编码单元可以包括5个相邻编码单元,例如图6示意的位置。
又比如,该5个关联编码单元可以包括4个相邻编码单元和1个父CU。
再例如,该5个关联编码单元可以包括3个相邻编码单元、1个父CU和1个时域同位块。
此外,编码器在确定了一个CU的编码模式后,可以保存这些CU采用的编码模式,那么,本实施例中,可以预定几个位置,假设预定图6所示意的5个位置,编码器可以检测该5个位置的相邻编码单元是否存在。如果存在,则读取之前存储的这些CU的编码模式,就得到了这些关联编码单元分别对应的编码模式。
在步骤406中,根据所述至少一个关联编码单元分别对应的编码模式,确定所述至少一个关联编码单元分别对应的偏置参数。
请参见如下的公式(7):
如上可见,offset的取值是根据各个关联编码单元分别对应的offset得到,其中的offseti即关联编码单元对应的offset取值。
如下的表1,示例了一种各模式对应的offset取值
表1各模式对应的offset
模式类型 | Skip模式 | Merge模式 | AMVP模式 | Intra/IBC模式 |
offset | 0.01 | -0.16 | -0.16 | -0.03 |
当获取到编码器存储的至少一个关联编码单元分别对应的编码模式后,就可以根据上述的表1,得到各个关联编码单元对应的偏置参数offset。
需要说明的是,由于β越大,公式(6)越容易满足,越容易选择skip作为优选模式,因此skip模式对应的offset可以设置为正数,其他模式可以设置为负数。但是上述表1仅是示意,本实施例不限制offset的取值,也可以采用表1之外的其他数值,具体数值可以根据目标编码单元所在的视频序列在执行该模式选择后的帧率增益和性能损失调整后确定。
此外,编码器中可以存储多个类似表1的模式与偏置参数的映射关系表,当不同的编码模式间进行选择比较时,可以选用对应相比较的模式的映射关系表。例如,假如要在Merge和AMVP间选择,那采用的表格中,Merge模式对应的offset可以是正数,其他模式对应的offset可以是负数,具体数值的大小可基于视频序列,根据帧率增益和性能损失调整后确定。
在步骤408中,结合所述至少一个关联编码单元分别对应的偏置参数,得到所述第二权重系数。
例如,在得到图6示意的5个位置的相邻编码单元的编码模式后,可以根据表1得到这5个相邻编码单元对应的offset,再根据公式(7)相加得到offset。然后,根据“β取值可以是0.01+offset”得到β的取值,即第二权重系数。
可以理解的是,公式(7)以及β与offset的关系“β=0.01+offset”都可以变换,不局限于上述列举的示例。比如,在将各编码模式对应的offseti相加时,也可以为各offseti赋予不同的权重。根据offset获得β时,也可以将offset乘以一定的权重系数,等。
在步骤410中,根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数;根据第一权重系数和所述SATD,得到调整SATD。
例如,根据“β*Qstep”得到调整率失真影响参数,根据“α*SATDscale”得到调整SATD。
在步骤412中,基于所述调整SATD和调整率失真影响参数,确定所述第二编码模式的估计编码代价。
其中,根据公式(6),“α*SATDscale+β*Qstep”即第二编码模式Merge的估计编码代价。
此外,在上面的例子中,可以检测图6所示意的5个位置的相邻编码单元,如果这5个位置的相邻编码单元中存在相邻编码单元缺失的情况,比如,当目标编码单元位于图像帧的边缘时,可能会出现没有图6中的左下(BL)位置的相邻编码单元,或者图6所示的左上(AL)和左边(L)位置的相邻编码单元不存在,那么可以将第二权重系数β设置为0。
在步骤514中,响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
例如,根据公式(6),如果该公式(6)的条件满足,即skip模式的RDcost“skip_RDcostscale”小于Merge模式的估计编码代价α*SATDscale+β*Qstep,则可以选择skip模式作为目标编码单元采用的编码模式。
反之,如果公式(6)的条件不满足,可以继续计算Merge的RDcost,再比较skip的RDcost与Merge的RDcost,选择其中较小者作为目标编码单元的优选编码模式。
本实施例的编码模式的确定方法,不仅降低了编码器的编码复杂度,使得编码模式的选择更准确,提升了编码性能,并且,通过参考目标编码单元的关联编码单元的编码模式来选择目标编码单元的模式,考虑了编码过程中的时域或空域的相关性,进一步使得代价比较结果更准确,从而模式选择更准确,提升编码性能。
图7是一示例性实施例提供的一种编码模式的确定装置的结构示意图,该装置可以用于实现本说明书任一实施例的编码模式的确定方法,如下简单说明该装置的结构,具体各个模块的实现原理可以结合参见方法实施例所述。如图7所示,该装置可以包括:代价获取模块71、代价调整模块72和模式确定模块73。
代价获取模块71,用于获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD。
代价调整模块72,用于根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数。
模式确定模块73,用于响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
在一个例子中,所述代价调整模块72,在用于根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价时,包括:根据第一权重系数和所述SATD,得到调整SATD;根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数;基于所述调整SATD和调整率失真影响参数,确定所述第二编码模式的估计编码代价。
在一个例子中,所述代价调整模块72,在用于根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数时,包括:获取所述目标编码单元的至少一个关联编码单元分别对应的编码模式,所述关联编码单元与所述目标编码单元具有时域或空域的编码相关性;根据所述至少一个关联编码单元分别对应的编码模式,确定所述至少一个关联编码单元分别对应的偏置参数;结合所述至少一个关联编码单元分别对应的偏置参数,得到所述第二权重系数。
在一个例子中,所述关联编码单元,包括如下至少一种:与所述目标编码单元在同一编码层的相邻编码单元;所述目标编码单元在前编码层的父编码单元;所述目标编码单元的时域同位块。
在一个例子中,所述代价调整模块72,在用于根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数时,包括:在所述目标编码单元的同一编码层,检测预定的多个位置的相邻编码单元;响应于所述多个位置存在相邻编码单元缺失的情况,将所述第二权重系数设置为0。
在一个例子中,所述代价获取模块71,在用于获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD时,包括:获取第一编码模式的初始RDcost和第二编码模式的初始SATD;基于所述目标编码单元的尺寸,将所述初始RDcost和初始SATD进行归一化,得到所述第一编码模式的RDcost和第二编码模式的SATD。
在一个例子中,所述模式确定模块73,在用于响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式时,包括:在所述第一编码模式的RDcost小于第二编码模式的估计编码代价的情况下,获取所述估计编码代价与RDcost的差值;响应于所述差值达到差值阈值,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
在一个例子中,所述模式确定模块73,还用于:响应于所述差值小于所述差值阈值,获取所述第二编码模式的RDcost;根据所述第一编码模式的RDcost和第二编码模式的RDcost,由第一编码模式和第二编码模式中选择RDcost较小的模式作为用于对目标编码单元进行编码所使用的模式。
图8是一示例性实施例提供的一种帧间预测编码模式的选择方法的流程示意图,如图8所示,该方法可以包括如下处理:
在步骤800中,获取第一帧间预测编码模式的RDcost和第二帧间预测编码模式的SATD。
例如,第一帧间预测编码模式可以是Skip模式,第二帧间预测编码模式可以是Merge模式。实际实施中不局限于此,也可以是其他的帧间预测编码模式。
在步骤802中,根据所述SATD和率失真影响参数,得到所述第二帧间预测编码模式的估计编码代价;所述率失真影响参数用于表示所述帧间预测编码模式的RDcost的关联参数。
例如,本步骤可以根据Merge模式的“SATD和率失真影响参数”,计算Merge模式估计编码代价。示例性的,本实施例的Merge模式的率失真影响参数可以是Qstep。
那么,根据Merge模式的“SATD和Qstep”可以得到该Merge模式的估计编码代价。
例如,Merge模式的估计编码代价=α*SATD+β*Qstep。其中,α可以称为第一权重系数,β可以称为第二权重系数。α和β的取值可以结合参见前述的方法实施例中的描述。
在步骤804中,在所述第一帧间预测编码模式的RDcost小于第二帧间预测编码模式的估计编码代价的情况下,选择第一帧间预测编码模式作为目标编码单元的帧间预测编码模式。
例如,若Skip模式的RDcost小于Merge模式的估计编码代价,则可以选择Skip模式作为对目标编码单元进行帧间预测的编码模式。
此外,上述流程仅是示例,在其他的例子中,也可以先对Skip模式的RDcost和Merge模式的SATD进行基于CU尺寸的归一化处理后,再比较处理后的Skip模式的RDcost与Merge模式的估计编码代价的大小,若Skip模式的RDcost小于Merge模式的估计编码代价,则可以选择Skip模式作为对目标编码单元进行帧间预测的编码模式。
本说明书一示例性实施例还提供了一种设备的示意结构图。在硬件层面,该设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书一示例性实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现本说明书任一实施例的编码模式的确定方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (13)
1.一种编码模式的确定方法,其特征在于,所述方法包括:
获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD;
根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数;
响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
2.根据权利要求1所述的方法,其特征在于,
所述第一编码模式是Skip模式,所述第二编码模式是Merge模式;
所述率失真影响参数是量化步长Qstep。
3.根据权利要求1所述的方法,其特征在于,所述根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价,包括:
根据第一权重系数和所述SATD,得到调整SATD;
根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数;
基于所述调整SATD和调整率失真影响参数,确定所述第二编码模式的估计编码代价。
4.根据权利要求3所述的方法,其特征在于,所述根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数,包括:
获取所述目标编码单元的至少一个关联编码单元分别对应的编码模式,所述关联编码单元与所述目标编码单元具有时域或空域的编码相关性;
根据所述至少一个关联编码单元分别对应的编码模式,确定所述至少一个关联编码单元分别对应的偏置参数;
结合所述至少一个关联编码单元分别对应的偏置参数,得到所述第二权重系数。
5.根据权利要求4所述的方法,其特征在于,
所述关联编码单元,包括如下至少一种:
与所述目标编码单元在同一编码层的相邻编码单元;
所述目标编码单元在前编码层的父编码单元;
所述目标编码单元的时域同位块。
6.根据权利要求3所述的方法,其特征在于,所述根据第二权重系数和所述率失真影响参数,得到调整率失真影响参数,包括:
在所述目标编码单元的同一编码层,检测预定的多个位置的相邻编码单元;
响应于所述多个位置存在相邻编码单元缺失的情况,将所述第二权重系数设置为0。
7.根据权利要求1~6任一所述的方法,其特征在于,所述获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD,包括:
获取第一编码模式的初始RDcost和第二编码模式的初始SATD;
基于所述目标编码单元的尺寸,将所述初始RDcost和初始SATD进行归一化,得到所述第一编码模式的RDcost和第二编码模式的SATD。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一编码模式的RDcost大于所述第二编码模式的估计编码代价,获取所述第二编码模式的RDcost;
根据所述第一编码模式的RDcost和第二编码模式的RDcost,由第一编码模式和第二编码模式中选择RDcost较小的模式作为用于对目标编码单元进行编码所使用的模式。
9.根据权利要求1所述的方法,其特征在于,所述响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式,包括:
在所述第一编码模式的RDcost小于第二编码模式的估计编码代价的情况下,获取所述估计编码代价与RDcost的差值;
响应于所述差值达到差值阈值,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
响应于所述差值小于所述差值阈值,获取所述第二编码模式的RDcost;
根据所述第一编码模式的RDcost和第二编码模式的RDcost,由第一编码模式和第二编码模式中选择RDcost较小的模式作为用于对目标编码单元进行编码所使用的模式。
11.一种编码模式的确定装置,其特征在于,所述装置包括:
代价获取模块,用于获取第一编码模式的率失真优化代价RDcost和第二编码模式的绝对变换误差和SATD;
代价调整模块,用于根据所述SATD和率失真影响参数,得到所述第二编码模式的估计编码代价;所述率失真影响参数用于表示所述第二编码模式的RDcost的关联参数;
模式确定模块,用于响应于所述第一编码模式的RDcost小于第二编码模式的估计编码代价,选择所述第一编码模式作为用于对目标编码单元进行编码所使用的模式。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-10中任一项所述的方法。
13.一种帧间预测编码模式的选择方法,其特征在于,所述方法包括:
获取第一帧间预测编码模式的RDcost和第二帧间预测编码模式的SATD;
根据所述SATD和率失真影响参数,得到所述第二帧间预测编码模式的估计编码代价;所述率失真影响参数用于表示所述帧间预测编码模式的RDcost的关联参数;
在所述第一帧间预测编码模式的RDcost小于第二帧间预测编码模式的估计编码代价的情况下,选择所述第一帧间预测编码模式作为目标编码单元的帧间预测编码模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288519.9A CN114760467A (zh) | 2022-03-22 | 2022-03-22 | 编码模式的确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288519.9A CN114760467A (zh) | 2022-03-22 | 2022-03-22 | 编码模式的确定方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114760467A true CN114760467A (zh) | 2022-07-15 |
Family
ID=82328019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210288519.9A Pending CN114760467A (zh) | 2022-03-22 | 2022-03-22 | 编码模式的确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114760467A (zh) |
-
2022
- 2022-03-22 CN CN202210288519.9A patent/CN114760467A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI717586B (zh) | 於視訊解碼器中導出運動向量資訊 | |
CN108848381B (zh) | 视频编码方法、解码方法、装置、计算机设备及存储介质 | |
US8964829B2 (en) | Techniques to perform fast motion estimation | |
KR100813963B1 (ko) | 동영상의 무손실 부호화, 복호화 방법 및 장치 | |
JP5422124B2 (ja) | 参照ピクチャ選択方法、画像符号化方法、プログラム、画像符号化装置および半導体装置 | |
US10085028B2 (en) | Method and device for reducing a computational load in high efficiency video coding | |
WO2019062544A1 (zh) | 视频图像的帧间预测方法、装置及编解码器 | |
US9392280B1 (en) | Apparatus and method for using an alternate reference frame to decode a video frame | |
TW201735637A (zh) | 合併用於視訊寫碼之用於多類別區塊之濾波器 | |
KR20090095012A (ko) | 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치 | |
US8780971B1 (en) | System and method of encoding using selectable loop filters | |
US20120027092A1 (en) | Image processing device, system and method | |
US8594189B1 (en) | Apparatus and method for coding video using consistent regions and resolution scaling | |
KR20090095317A (ko) | 영상 부호화 및 복호화 방법 및 장치 | |
CN108848377B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
Hussain et al. | A survey on video compression fast block matching algorithms | |
CN115836525B (zh) | 用于从多个交叉分量进行预测的视频编码、解码方法和设备 | |
JP2011250400A (ja) | 動画像符号化装置及び動画像符号化方法 | |
CN113068026A (zh) | 解码预测方法、装置及计算机存储介质 | |
US9615091B2 (en) | Motion picture encoding/decoding apparatus, and method and apparatus for hybrid block motion compensation/overlapped block motion compensation for same | |
CN114760467A (zh) | 编码模式的确定方法及装置 | |
CN115443650A (zh) | 用于帧间预测的角度加权预测 | |
KR20080035390A (ko) | 영상 예측 모드 결정 방법 및 장치 | |
CN113395520A (zh) | 解码预测方法、装置及计算机存储介质 | |
US20220159281A1 (en) | No Reference Image Quality Assessment Based Decoder Side Intra Prediction |
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 |