CN119032568A - 视频编解码方法、装置、设备、系统、及存储介质 - Google Patents
视频编解码方法、装置、设备、系统、及存储介质 Download PDFInfo
- Publication number
- CN119032568A CN119032568A CN202280094792.6A CN202280094792A CN119032568A CN 119032568 A CN119032568 A CN 119032568A CN 202280094792 A CN202280094792 A CN 202280094792A CN 119032568 A CN119032568 A CN 119032568A
- Authority
- CN
- China
- Prior art keywords
- mode
- prediction
- modes
- weight derivation
- weight
- 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
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/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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种视频编解码方法、装置、设备、系统、及存储介质,本申请将权重导出模式和K个预测模式作为一个组合,这样在码流中以组合的形式来指示当前块所使用的权重导出模式和K个预测模式,此时解码端通过解码码流,得到第一索引,该第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,并根据该第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式,且根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值,本申请以组合的形式来指示当前块对应的第一权重导出模式和K个第一预测模式,使得语法变得更简单,节省码字,且不需要各种情况的判断等,进而提升编码效率。
Description
本申请涉及视频编解码技术领域,尤其涉及一种视频编解码方法、装置、设备、系统、及存储介质。
数字视频技术可以并入多种视频装置中,例如数字电视、智能手机、计算机、电子阅读器或视频播放器等。随着视频技术的发展,视频数据所包括的数据量较大,为了便于视频数据的传输,视频装置执行视频压缩技术,以使视频数据更加有效的传输或存储。
由于视频中存在时间或空间冗余,通过预测可以消除或降低视频中的冗余,提高压缩效率。目前为了提高预测效果,可以使用多个预测模式对当前块进行预测。但是,使用多个预测模式对当前块进行预测时,需要在码流中传输的信息较多,进而增加了编码代价。
发明内容
本申请实施例提供了一种视频编解码方法、装置、设备、系统、及存储介质,可以降低编码代价。
第一方面,本申请提供了一种视频解码方法,应用于解码器,包括:
解码码流,得到第一索引,所述第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,所述K为大于1的正整数;
根据所述第一索引,确定所述第一组合所包括的第一权重导出模式和K个第一预测模式;
根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值。。
第二方面,本申请实施例提供一种视频编码方法,包括:
确定第一组合,所述第一组合包括第一权重导出模式和K个第一预测模式;
根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值;
根据所述当前块的预测值,得到码流,所述码流中包括第一索引,所述第一索引用于指示所述第一组合。
第三方面,本申请提供了一种视频解码装置,用于执行上述第一方面或其各实现方式中的方法。具体地,该装置包括用于执行上述第一方面或其各实现方式中的方法的功能单元。
第四方面,本申请提供了一种视频编码装置,用于执行上述第二方面或其各实现方式中的方法。具体地,该装置包括用于执行上述第二方面或其各实现方式中的方法的功能单元。
第五方面,提供了一种视频解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种视频编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种视频编解码系统,包括视频编码器和视频解码器。视频解码器用于执行上述第一方面或其各实现方式中的方法,视频编码器用于执行上述第二方面或其各实现方式中的方法。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十二方面,提供了一种码流,码流是基于上述第二方面的方法生成的,可选的,上述码流包括第一索引,第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,K为大于1的正整数。
基于以上技术方案,本申请将权重导出模式和K个预测模式作为一个组合,这样在码流中以组合的形式来指示当前块所使用的权重导出模式和K个预测模式,此时解码端通过解码码流,得到第一索引,该第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,并根据该第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式,且根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值,本申请以组合的形式来指示当前块对应的第一权重导出模式和K个第一预测模式,使得语法变得更简单,节省码字,且不需要各种情况的判断等,进而提升编码效率。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图;
图2是本申请实施例涉及的视频编码器的示意性框图;
图3是本申请实施例涉及的视频解码器的示意性框图;
图4为权重分配示意图;
图5为权重分配示意图;
图6A为帧间预测的示意图;
图6B为加权帧间预测的示意图;
图7A为帧内预测的示意图;
图7B为帧内预测的示意图;
图8A-8I为帧内预测的示意图;
图9为帧内预测模式的示意图;
图10为帧内预测模式的示意图;
图11为帧内预测模式的示意图;
图12为MIP的示意图;
图13为加权预测的示意图;
图14为模板匹配示意图;
图15为本申请一实施例提供的视频解码方法流程示意图;
图16A为一种权重分配示意图;
图16B为另一种权重分配示意图;
图17为一种模板权重的导出示意图;
图18为一种模板示意图;
图19为本申请实一施例提供的视频编码方法流程示意图;
图20是本申请一实施例提供的视频解码装置的示意性框图;
图21是本申请一实施例提供的视频编码装置的示意性框图;
图22是本申请实施例提供的电子设备的示意性框图;
图23是本申请实施例提供的视频编解码系统的示意性框图。
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域等。例如,本申请的方案可结合至音视频编码标准(audio video coding standard,简称AVS),例如,H.264/音视频编码(audio video coding,简称AVC)标准,H.265/高效视频编码(high efficiency video coding,简称HEVC)标准以及H.266/多功能视频编码(versatile video coding,简称VVC)标准。或者,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的视频编解码系统包括但不限于图1所示。如图1所示,该视频编解码系统100包含编码设备110和解码设备120。其中编码设备用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的视频数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的视频数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。
视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,简称SPS)、图像参数集(picture parameter set,简称PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。 语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的视频数据。
视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输至显示装置123。
显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2是本申请实施例涉及的视频编码器的示意性框图。应理解,该视频编码器200可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically lossless compression)。
该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。
例如,该视频编码器200读取视频数据,针对视频数据中的每帧图像,将一帧图像划分成若干个编码树单元(coding tree unit,CTU),在一些例子中,CTB可被称作“树型块”、“最大编码单元”(Largest Coding unit,简称LCU)或“编码树型块”(coding tree block,简称CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如为128×128、64×64、32×32等。一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,简称PU)和变换单元(transform unit,简称TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以四叉树方式划分为CU,CU以四叉树方式划分为TU、PU。
视频编码器及视频解码器可支持各种PU大小。假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
在一些实施例中,如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。
可选的,在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
在一些实施例中,预测单元210包括帧间预测单元211和帧内估计单元212。由于视频的一个帧中的相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻帧之间存在着很强的相似性,在视频编解码技术中使用帧间预测方法消除相邻帧之间的时间冗余,从而提高编码效率。
帧间预测单元211可用于帧间预测,帧间预测可以包括运动估计(motion estimation)和运动补偿(motion compensation),可以参考不同帧的图像信息,帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块,用于消除时间冗余;帧间预测所使用的帧可以为P帧和/或B帧,P帧指的是向前预测帧,B帧指的是双向预测帧。帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
帧内估计单元212只参考同一帧图像的信息,预测当前码图像块内的像素信息,用于消除空间冗余。帧内预测所使用的帧可以为I帧。
帧内预测有多种预测模式,以国际数字视频编码标准H系列为例,H.264/AVC标准有8种角度预测模式和1种非角度预测模式,H.265/HEVC扩展到33种角度预测模式和2种非角度预测模式。HEVC使用的帧内预测模式有平面模式(Planar)、DC和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式。
需要说明的是,随着角度模式的增加,帧内预测将会更加精确,也更加符合对高清以及超高清数字视频发展的需求。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量化程度。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建图像块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260用于对反变换与反量化后的像素进行处理,弥补失真信息,为后续编码像素提供更好的参考,例如可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元260包括去块滤波单元和样点自适应补偿/自适应环路滤波(SAO/ALF)单元,其中去块滤波单元用于去方块效应,SAO/ALF单元用于去除振铃效应。
解码图像缓存270可存储重建后的像素块。帧间预测单元211可使用含有重建后的像素块的参考图像来对其它图像的PU执行帧间预测。另外,帧内估计单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行帧内预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
图3是本申请实施例涉及的视频解码器的示意性框图。
如图3所示,视频解码器300包含:熵解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
在一些实施例中,预测单元320包括帧内估计单元322和帧间预测单元321。
帧内估计单元322可执行帧内预测以产生PU的预测块。帧内估计单元322可使用帧内预测模式以基于空间相邻PU的像素块来产生PU的预测块。帧内估计单元322还可根据从码流解析的一个或多个语法元素来确定PU的帧内预测模式。
帧间预测单元321可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用帧间预测编码,则熵解码单元310可解析PU的运动信息。帧间预测单元321可根据PU的运动信息来确定PU的一个或多个参考块。帧间预测单元321可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。
在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
视频编解码的基本流程如下:在编码端,将一帧图像划分成块,针对当前块,预测单元210使用帧内预测或帧间预测产生当前块的预测块。残差单元220可基于预测块与当前块的原始块计算残差块,即预测块和当前块的原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变化量化单元230输出的量化后的变化系数,可对该量化后的变化系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
在解码端,熵解码单元310可解析码流得到当前块的预测信息、量化系数矩阵等,预测单元320基于预测信息对当前块使用帧内预测或帧间预测产生当前块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。编码端同样需要和解码端类似的操作获得解码图像。该解码图像也可以称为重建图像,重建图像可以为后续的帧作为帧间预测的参考帧。
需要说明的是,编码端确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。
上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
在一些实施例中,当前块(current block)可以是当前编码单元(CU)或当前预测单元(PU)等。由于并行处理的需要,图像可以被划分成片slice等,同一个图像中的片slice可以并行处理,也就是说它们之间没有数据依赖。而“帧”是一种常用的说法,一般可以理解为一帧是一个图像。在申请中所述帧也可以替换为图像或slice等。
目前正在制定中的多功能视频编码(Versatile Video Coding,VVC)视频编解码标准中,有一个叫做几何划分预测 模式(GeometricpartitioningMode,GPM)的帧间预测模式。目前正在制定中的视频编解码标准(Audio Video coding Standard,AVS)视频编解码标准中,有一个叫做角度加权预测模式(Angular Weightedprediction,AWP)的帧间预测模式。这两种模式虽然名称不同、具体的实现形式不同、但原理上有共通之处。
需要说明的是,传统的单向预测只找一个与当前块大小相同的参考块,传统的双向预测使用两个与当前块大小相同的参考块,且预测块每个点的像素值为两个参考块对应位置的平均值,即每一个参考块的所有点都占50%的比例。双向加权预测使得两个参考块的比例可以不同,如第一个参考块中所有点都占75%的比例,第二个参考块中所有点都占25%的比例。但同一个参考块中的所有点的比例都相同。但同一个参考块中的所有点的比例都相同。其他一些优化方式比如采用解码端运动矢量修正(Decoder sideMotion Vector Refinement,DMVR)技术、双向光流(Bi-directional Optical Flow,BIO)等会使参考像素或预测像素产生一些变化,但与上面所说的原理无关。BIO也可以简写为BDOF。而GPM或AWP也使用两个与当前块大小相同的参考块,但某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值,而在交界区域或者称过渡区域,按一定比例使用这两个参考块对应位置的像素值。交界区域的权重也是逐渐过渡的。具体这些权重如何分配,由GPM或AWP的模式决定。根据GPM或AWP的模式确定每个像素位置的权重。当然在某些情况下,比如说块尺寸很小的情况,可能某些GPM或AWP的模式下不能保证一定有某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值。也可以认为GPM或AWP使用两个与当前块大小不相同的参考块,即各取所需的一部分作为参考块。即将权重不为0的部分作为参考块,而将权重为0的部分剔除出来。这是实现的问题,不是本发明讨论的重点。
示例性地,图4为权重分配示意图,如图4所示,其示出了本申请实施例提供的一种GPM在64×64的当前块上的多种划分模式的权重分配示意图,其中,GPM存在有64种划分模式。图5为权重分配示意图,如图5所示,其示出了本申请实施例提供的一种AWP在64×64的当前块上的多种划分模式的权重分配示意图,其中,AWP存在有56种划分模式。无论是图4还是图5,每一种划分模式下,黑色区域表示第一个参考块对应位置的权重值为0%,白色区域表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
GPM和AWP的权重导出方法不同。GPM根据每种模式确定角度及偏移量,而后计算出每个模式的权重矩阵。AWP首先做出一维的权重的线,然后使用类似于帧内角度预测的方法将一维的权重的线铺满整个矩阵。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均在没有划分的情况下实现了预测的非矩形的划分效果。GPM和AWP使用了两个参考块的权重的蒙版(mask),即上述的权重图。这个蒙版确定了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块一部分位置来自于第二个参考块,而过渡区域(blending area)用两个参考块的对应位置加权得到,从而使过渡更平滑。GPM和AWP没有按划分线把当前块划分成两个CU或PU,于是在预测之后的残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体来处理。
GPM使用权重矩阵模拟了几何形状的划分,更确切地说是模拟了预测的划分。而要实施GPM,除了权重矩阵还需要2个预测值,每个预测值由1个单向运动信息确定。这2个单向运动信息来自于一个运动信息候选列表,例如来自merge运动信息候选列表(mergeCandList)。GPM在码流中使用两个索引从mergeCandList中确定2个单向运动信息。
帧间预测使用运动信息(motion information)来表示“运动”。基本的运动信息包含参考帧(reference frame)(或者叫参考图像(reference picture))的信息和运动矢量(MV,motion vector)的信息。常用的双向预测,使用2个参考块对当前块进行预测。2个参考块可以使用一个前向的参考块和一个后向的参考块。可选的,也允许2个都是前向或2个都是后向。所谓前向指参考帧对应的时刻在当前帧之前,后向指参考帧对应的时刻在当前帧之后。或者说前向指参考帧在视频中的位置位于当前帧之前,后向指参考帧在视频中的位置位于当前帧之后。或者说前向指参考帧的POC(picture order count)小于当前帧的POC,后向指参考帧的POC大于当前帧的POC。为了能使用双向预测,自然需要能找到2个参考块,那么就需要2组参考帧的信息和运动矢量的信息。可以把它们每一组理解为一个单向运动信息,而把这2组组合到一起就形成了一个双向运动信息。在具体实现时,单向运动信息和双向运动信息可以使用相同的数据结构,只是双向运动信息的2组参考帧的信息和运动矢量的信息都有效,而单向运动信息的其中一组参考帧的信息和运动矢量的信息是无效的。
在一些实施例中,支持2个参考帧列表,记为RPL0,RPL1,其中RPL是Reference Picture List的简写。在一些实施例中,P slice只可以使用RPL0,B slice可以使用RPL0和RPL1。对一个slice,每个参考帧列表中有若干参考帧,编解码器通过参考帧索引来找到某一个参考帧。在一些实施例中,用参考帧索引和运动矢量来表示运动信息。如对上述的双向运动信息,使用参考帧列表0对应的参考帧索引refIdxL0,以及参考帧列表0对应的运动矢量mvL0,参考帧列表1对应的参考帧索引refIdxL1,以及参考帧列表1对应的运动矢量mvL0。这里的参考帧列表0对应的参考帧索引,参考帧列表1对应的参考帧索引就可以理解为上述的参考帧的信息。在一些实施例中,用两个标志位来分别表示是否使用参考帧列表0对应的运动信息以及是否使用参考帧列表0对应的运动信息,分别记为predFlagL0和predFlagL1。也可以理解为predFlagL0和predFlagL1表示上述单向运动信息“是否有效”。虽然没有明确地提到运动信息这种数据结构,但是它用每个参考帧列表对应的参考帧索引,运动矢量以及“是否有效”的标志位一起来表示运动信息。在一些标准文本中不出现运动信息,而是使用的运动矢量,也可以认为参考帧索引和是否使用对应运动信息的标志是运动矢量的附属。本申请中为了描述方便仍然用“运动信息”,但是应当理解,也可以用“运动矢量”来描述。
当前块所使用的运动信息可以保存下来。当前帧的后续编解码的块可以根据相邻的位置关系使用前面已编解码的块,如相邻块,的运动信息。这利用了空域上的相关性,所以这种已编解码的运动信息叫做空域上的运动信息。当前帧的每个块所使用的运动信息可以保存下来。后续编解码的帧可以根据参考关系使用前面已编解码的帧的运动信息。 这利用了时域上的相关性,所以这种已编解码的帧的运动信息叫做时域上的运动信息。当前帧的每个块所使用的运动信息的存储方法通常将一个固定大小的矩阵,如4x4的矩阵,作为一个最小单元,每个最小单元单独存储一组运动信息。这样每编解码一个块,它的位置对应的那些最小单元就可以把这个块的运动信息存储下来。这样使用空域上的运动信息或时域上的运动信息时可以直接根据位置找到该位置对应的运动信息。如一个16x16的块使用了传统的单向预测,那么这个块对应的所有的4x4个最小单元都存储这个单向预测的运动信息。如果一个块使用了GPM或AWP,那么这个块对应的所有的最小单元会根据GPM或AWP的模式,第一个运动信息,和第二个运动信息以及每个最小单元的位置确定每个最小单元存储的运动信息。一种方法是如果一个最小单元对应的4x4的像素全部来自于第一个运动信息,那么这个最小单元存储第一个运动信息,如果一个最小单元对应的4x4的像素全部来自于第二个运动信息,那么这个最小单元存储第二个运动信息。如果一个最小单元对应的4x4的像素既来自于第一个运动信息又来自于第二个运动信息,那么AWP会选择其中一个运动信息进行存储;GPM的做法是如果两个运动信息指向不同的参考帧列表,那么把它们组合成双向运动信息存储,否则只存储第二个运动信息。
可选的,上述mergeCandList是根据空域运动信息,时域运动信息,基于历史的运动信息,还有一些其他的运动信息来构建的。示例性的,mergeCandList使用如图6A中1至5的位置来推导空域运动信息,使用如图6A中的6或7的位置来推导时域运动信息。基于历史的运动信息是在每编解码一个块时,把这个块的运动信息添加到一个先进先出的列表里,添加过程可能需要一些检查,如是否跟列表里现有的运动信息重复。这样在编解码当前块时就可以参考这个基于历史的列表里的运动信息。
在一些实施例中,关于GPM的语法描述如表1所示:
表1
如表1所示,在merge模式下,如果regular_merge_flag不为1,当前块可能用CIIP或GPM。如果当前块不用CIIP,那么它就用GPM,也就是在表1中的语法“if(!ciip_flag[x0][y0])”所示的内容。
如上述表1可知,GPM需要在码流中传输3个信息,即merge_gpm_partition_idx,merge_gpm_idx0,merge_gpm_idx1。x0,y0用来确定当前块左上角亮度像素相对于图像左上角亮度像素的坐标(x0,y0)。merge_gpm_partition_idx确定GPM的划分形状,上面已经讲过了,它是“模拟划分”,merge_gpm_partition_idx也就是本文所说的权重矩阵导出模式或者说权重矩阵导出模式的索引,或者说权重导出模式或权重导出模式的索引。merge_gpm_idx0是第一个合并候选索引,第一合并(merge)候选索引用于根据mergeCandList确定第一运动信息或者称第一合并候选。merge_gpm_idx1是第二个合并候选索引,第二合并(merge)候选索引用于根据mergeCandList确定第二运动信息或者称第二合并候选。如果MaxNumGpmMergeCand>2即候选列表长度大于2才需要解码merge_gpm_idx1,否则可以直接确定。
在一些实施例中,GPM的解码过程包括如下步骤:
解码过程输入的信息包括:当前块左上角的亮度位置相对于图像左上角的坐标(xCb,yCb),当前块亮度分量的宽度cbWidth,当前块亮度分量的高度cbHeight,1/16像素精度的亮度运动矢量mvA和mvB,色度运动矢量mvCA和mvCB,参考帧索引refIdxA和refIdxB,预测列表标志predListFlagA和predListFlagB。
示例性的,可以用运动矢量,参考帧索引和预测列表标志组合起来来表示运动信息。VVC支持2个参考帧列表, 每个参考帧列表可能有多个参考帧。单向预测只使用其中一个参考帧列表中的一个参考帧的一个参考块作为参考,双向预测使用两个参考帧列表中的各一个参考帧的各一个参考块作为参考。而VVC中的GPM使用2各单向预测。上述mvA和mvB,mvCA和mvCB,refIdxA和refIdxB,predListFlagA和predListFlagB中的A可以理解为第一个预测模式,B可以理解为第二个预测模式。我们用X表示A或B,predListFlagX表示X使用第一个参考帧列表还是第二个参考帧列表,refIdxX表示X使用的参考帧列表中的参考帧索引,mvX表示X使用的亮度运动矢量,mvCX表示X使用的色度运动矢量。重申一遍,可以认为VVC中,运动矢量,参考帧索引和预测列表标志组合起来来表示本文所述的运动信息。
解码过程输出的信息包括:(cbWidth)X(cbHeight)的亮度预测样本矩阵predSamplesL;(cbWidth/SubWidthC)X(cbHeight/SubHeightC)的Cb色度分量的预测样本矩阵,如果需要;(cbWidth/SubWidthC)X(cbHeight/SubHeightC)的Cr色度分量的预测样本矩阵,如果需要。
示例性的,下面以亮度分量举例,色度分量的处理和亮度分量类似。
假设predSamplesLAL和predSamplesLBL的大小为(cbWidth)X(cbHeight),为根据2个预测模式做出的预测样本矩阵。predSamplesL按如下方法导出:分别根据亮度运动矢量mvA和mvB,色度运动矢量mvCA和mvCB,参考帧索引refIdxA和refIdxB,预测列表标志predListFlagA和predListFlagB确定predSamplesLAL和predSamplesLBL。即分别根据2个预测模式的运动信息进行预测,详细过程不再赘述。通常GPM是merge模式,可以认为GPM的2个预测模式都是merge模式。
根据merge_gpm_partition_idx[xCb][yCb],利用表2确定GPM的划分角度索引变量angleIdx和距离索引变量distanceIdx。
表2–angleIdx和distanceIdx与merge_gpm_partition_idx的对应关系
需要说明的是,因为三个分量(component,如Y、Cb、Cr)都可以使用GPM,所以在一些标准文本将一个分量产生GPM的预测样本矩阵的过程分装到了一个子流程里面,即GPM的加权预测过程(Weighted sample prediction process for geometric partitioning mode),三个分量都会调用这个流程,只是调用的参数不同,这里只用亮度分量举例。当前亮度块的预测矩阵predSamplesL[xL][yL](其中xL=0..cbWidth–1,yL=0..cbHeight-1)由GPM的加权预测过程导出。其中nCbW设为cbWidth,nCbH设为cbHeight,两个预测模式做的预测样本矩阵predSamplesLAL和predSamplesLBL,还有angleIdx,distanceIdx作为输入。
在一些实施例中,GPM的加权预测导出过程包括如下步骤:
该过程的输入有:当前块的宽度nCbW,当前块的高度nCbH;2个(nCbW)X(nCbH)的预测样本矩阵predSamplesLA和predSamplesLB;GPM的划分角度索引变量angleIdx;GPM的距离索引变量distanceIdx;分量索引变量cIdx。本示例以亮度举例,因此上述cIdx为0,表示亮度分量。
该过程的输出有:(nCbW)X(nCbH)的GPM预测样本矩阵pbSamples。
示例性的,变量nW,nH,shift1,offset1,displacementX,displacementY,partFlip还有shiftHor按如下方法导出:
nW=(cIdx==0)?nCbW:nCbW*SubWidthC;
nH=(cIdx==0)?nCbH:nCbH*SubHeightC;
shift1=Max(5,17-BitDepth),其中BitDepth是编解码的比特深度;
offset1=1<<(shift1-1),其中“<<”表示左移;
displacementX=angleIdx;
displacementY=(angleIdx+8)%32;
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1;
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1。
变量offsetX和offsetY按如下方法导出:
当shiftHor的值为0时:
offsetX=(-nW)>>1,
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3))。
当shiftHor的值为1时:
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3),
offsetY=(-nH)>>1。
变量xL和yL按如下方法导出:
xL=(cIdx==0)?x:x*SubWidthC,
yL=(cIdx==0)?y:y*SubHeightC,
表示当前位置预测样本权重的变量wValue按如下方法导出,wValue即为(x,y)点的第一预测模式的预测矩阵的预测值predSamplesLA[x][y]的权重,而(8-wValue)即为(x,y)点的第一预测模式的预测矩阵的预测值predSamplesLB[x][y]的权重。
其中距离矩阵disLut按表3确定:
表3
| idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 |
| disLut[idx] | 8 | 8 | 8 | 4 | 4 | 2 | 0 | -2 | -4 | -4 | -8 | -8 |
| idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 |
| disLut[idx] | -8 | -8 | -8 | -4 | -4 | -2 | 0 | 2 | 4 | 4 | 8 | 8 |
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+(((yL+offsetY)<<1)+1)*disLut[displacementY],
weightIdxL=partFlip?32+weightIdx:32–weightIdx,
wValue=Clip3(0,8,(weightIdxL+4)>>3),
预测样本的值pbSamples[x][y]按如下方法导出:
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]*wValue+predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)。
需要说明的是,对当前块的每一个位置推导一个权重值,然后计算一个GPM的预测值pbSamples[x][y]。因为这种方式权重wValue不必写成一个矩阵的形式,但是可以理解如果把每个位置的wValue都保存到一个矩阵里,那它就是一个权重矩阵。每个点分别计算权重并加权得到GPM的预测值,或者计算出所有的权重再统一加权得到GPM的预测样本矩阵其原理是一样的。而本申请中的诸多描述中使用权重矩阵的说法,是为了表述更容易理解,用权重矩阵画图更直观,其实也可以按每个位置的权重来描述。比如权重矩阵导出模式也可以说成权重导出模式。
在一些实施例中,如图6B所示,GPM的解码流程可以表述为:解析码流,确定当前块是否使用GPM技术;如果当前块使用GPM技术,确定权重导出模式(或划分模式或权重矩阵导出模式),及第一运动信息和第二运动信息。分别根据第一运动信息确定第一预测块,根据第二运动信息确定第二预测块,根据权重矩阵导出模式确定权重矩阵,根据第一预测块和第二预测块和权重矩阵确定当前块的预测块。
帧内预测方法是使用当前块周边已编解码的重建像素作为参考像素来对当前块进行预测。图7A为帧内预测的示意图,如图7A所示,当前块的大小为4x4,当前块左侧一行和上方一列的像素为当前块的参考像素,帧内预测使用这些参考像素对当前块进行预测。这些参考像素可能已经全部可得,即全部已经编解码。也可能有部分不可得,比如当前块是整帧的最左侧,那么当前块的左边的参考像素不可得。或者编解码当前块时,当前块左下方的部分还没有编解码,那么左下方的参考像素也不可得。对于参考像素不可得的情况,可以使用可得的参考像素或某些值或某些方法进行填充,或者不进行填充。
图7B为帧内预测的示意图,如图7B所示,多参考行帧内预测方法(Multiple reference line,MRL)可以使用更多的参考像素从而提高编解码效率,例如,使用4个参考行/列为当前块的参考像素。
进一步地,帧内预测有多种预测模式,图8A-5I为帧内预测的示意图,如图8A-5I所示,H.264中对4x4的块进行帧内预测主要可以包括9种模式。其中,如图8A所示的模式0将当前块上面的像素按垂直方向复制到当前块作为预测值,如图8B所示的模式1将左边的参考像素按水平方向复制到当前块作为预测值,如图8C所示的模式2直流DC将A~D和I~L这8个点的平均值作为所有点的预测值,如图8D-5I所示的模式3~8分别按某一个角度将参考像素复制到当前块的对应位置,因为当前块某些位置不能正好对应到参考像素,可能需要使用参考像素的加权平均值,或者说是插值的参考像素的分像素。
除此之外,还有Plane,Planar等模式等,而随着技术的发展以及块的扩大,角度预测模式也越来越多。图9为帧内预测模式的示意图,如图9所示,如HEVC使用的帧内预测模式有Planar、DC和33种角度模式共35种预测模式。图10为帧内预测模式的示意图,如图10所示,VVC使用的帧内模式有Planar、DC和65种角度模式共67种预测模式。图11为帧内预测模式的示意图,如图11所示,VS3使用DC、Plane、Bilinear、PCM和62种角度模式共66种预测模式。
另外还有一些技术对预测进行改进,如改进参考像素的分像素插值,对预测像素进行滤波等。如AVS3中的多组合帧内预测滤波(multipleintraprediction filter,MIPF)对不同的块大小,使用不同的滤波器产生预测值。对同一个块内的不同位置的像素,与参考像素较近的像素使用一种滤波器产生预测值,与参考像素较远的像素使用另一种滤波器产生预测值。对预测像素进行滤波的技术如AVS3中的帧内预测滤波(intraprediction filter,IPF),对预测值可以使用参考像素进行滤波。
在帧内预测中可以使用最可能模式列表(MostprobableModes List,MPM)的帧内模式编码技术来提高编解码效率。利用周边已编解码的块的帧内预测模式,以及根据周边已编解码块的帧内预测模式导出的帧内预测模式,如相邻的模式,以及一些常用或使用概率比较高的帧内预测模式,如DC,Planar,Bilinear模式等,构成一个模式列表。参考周边已编解码的块的帧内预测模式利用了空间上的相关性。因为纹理在空间上会有一定的连续性。MPM可以作为帧内预测模式的预测。也就是认为当前块使用MPM的概率会比不使用MPM的概率高。因而在二值化时,会给MPM使用更少的码字,从而节省开销,以提高编解码效率。
在一些实施例中,可以使用基于矩阵的帧内预测(Matrix-based Intra Prediction,MIP),有的地方也写做Matrix weighted Intra Prediction进行帧内预测。如图12所示,为了对一个宽度为W高度为H的块进行预测,MIP需要当前块左侧一列的H个重建像素和当前块上侧一行的W个重建像素作为输入。MIP按如下3个步骤生成预测块:参考像素平均(Averaging),矩阵乘法(Matrix Vector Multiplication)和插值(Interpolation)。其中矩阵乘法是MIP的核心。MIP可以认为是用一种矩阵乘法的方式用输入像素(参考像素)生成预测块的过程。MIP提供了多种矩阵,预测方式的不同就体现在矩阵的不同上,相同的输入像素使用不同的矩阵会得到不同的结果。而参考像素平均和插值的过程是一种性能和复杂度折中的设计。对于尺寸较大的块,可以通过参考像素平均来实现一种近似于降采样的效果,使输入能适配到比较小的矩阵,而插值则实现一种上采样的效果。这样就不需要对每一种尺寸的块都提供MIP的矩阵,而是只提供一种或几种特定的尺寸的矩阵即可。随着对压缩性能的需求的提高,以及硬件能力的提高,下一代的标准中也许会出现复杂度更高的MIP。
MIP有些类似于planar,但显然MIP比planar更复杂,灵活性也更强。
GPM用权重矩阵组合两个帧间预测块。实际上它可以扩展到组合两个任意的预测块。如两个帧间预测块,两个帧内预测块,一个帧间预测块和一个帧内预测块。甚至在屏幕内容编码中,还可以使用IBC(intra block copy)或palette的预测块作为其中的1个或2个预测块。
本申请将帧内、帧间、IBC、palette称为不同的预测方式。为了表述方便,这里使用一个叫预测模式的称呼。预测模式可以理解为根据它编解码器可以产生当前块的一个预测块的信息。比如,在帧内预测中,预测模式可以是某个帧内预测模式,如DC,Planar,各种帧内角度预测模式等。当然也可以叠加某个或某些辅助的信息,比如帧内参考像素的优化方法,产生初步的预测块以后的优化方法(比如滤波)等。比如,在帧间预测中,预测模式可以是skip(跳过)模式,merge(合并)模式或MMVD(merge with motion vector difference,带运动矢量差的合并)模式,或AMVP(advanced motion vector predition,高级运动矢量预测),可以是单向预测也可以是双向预测或多假设预测。如果帧间的预测模式使用单向预测,一个预测模式还要能确定一个运动信息,根据一个运动信息能确定预测块。如果帧间的预测模式使用双向预测,一个预测模式还要能确定两个运动信息,根据两个运动信息能确定预测块。
这样GPM需要确定的信息可以表述为1个权重导出模式和2个预测模式。权重导出模式用来确定权重矩阵或权重,2个预测模式分别确定一个预测块或预测值。权重导出模式在某些地方也被称为划分模式。但因为它是模拟划分,本申请称为权重导出模式。
其中,2个预测模式可以来自相同的或不同的预测方式,其中预测方式包括但不限于帧内预测、帧间预测、IBC、palette。
可选的,2个预测模式可以来自相同的或不同的预测方式,其中预测方式包括但不限于帧内预测、帧间预测、IBC、palette。
一个具体的具体的例子如下:如果当前块使用GPM。这个例子用在帧间编码的块中,允许使用帧内预测和帧间预测中的merge模式。如表4所示,增加一个语法元素intra_mode_idx表示哪一个预测模式是帧内预测模式,比如intra_mode_idx为0表示2个预测模式都是帧间预测模式,即mode0IsInter为1,mode0IsInter为1;intra_mode_idx为1表示第一个预测模式是帧内预测模式,第二个预测模式是帧间预测模式,即mode0IsInter为0,mode0IsInter为1;intra_mode_idx为2表示第一个预测模式是帧间预测模式,第二个预测模式是帧内预测模式,即mode0IsInter为1,mode0IsInter为0;intra_mode_idx为3表示两个预测模式都是帧内预测模式,即mode0IsInter为0,mode0IsInter为0。
表4
在一些实施例中,如图13所示,GPM的解码流程可以表述为:解析码流,确定当前块是否使用GPM技术;如果当前块使用GPM技术,确定权重导出模式(或划分模式或权重矩阵导出模式),及第一预测模式和第二预测模式。分别根据第一预测模式确定第一预测块,根据第二预测模式确定第二预测块,根据权重矩阵导出模式确定权重矩阵,根据第一预测块和第二预测块和权重矩阵确定当前块的预测块。
模板匹配(template matching)的方法最早用在帧间预测中,它利用相邻像素之间的相关性,把当前块周边的一些区域作为模板。在当前块进行编解码时,按照编码顺序其左侧及上侧已经编解码完成。当然在现有的硬件解码器实现时,不一定能保证当前块开始解码时,其左侧和上侧已经解码完成,当然这里说的是帧间块,比如在HEVC中帧间编码的块产生预测块时是不需要周边的重建像素的,因而帧间块的预测过程可以并行进行。但是帧内编码的块是一定需要左侧和上侧的重建像素作为参考像素的。理论上左侧和上侧是可得的,也就是说硬件设计做相应的调整是可以实现的。相对来说右侧和下侧在现在标准如VVC的编码顺序下是不可得的。
如图14所示把当前块的左侧和上侧的矩形区域设为模板,左侧的模板部分的高度一般和当前块的高度相同,上侧的模板的部分的宽度一般和当前块的宽度相同,当然也可以不同。在参考帧中寻找模板的最佳匹配位置从而确定当前块的运动信息或者说运动矢量。这个过程大致可以描述为,在某一个参考帧中,从一个起始位置开始,在周边一定范围内进行搜索。可以预先设定好搜索的规则,如搜索范围搜索步长等。每移动一个到位置,计算该位置对应的模板和当前块周边的模板的匹配程度,所谓匹配程度可以用一些失真代价来衡量,比如说SAD(sum of absolute difference),SATD(sum of absolute transformed difference),一般SATD使用的变换是Hadamard变换,MSE(mean-square error)等, SAD,SATD,MSE等的值越小代表匹配程度越高。用该位置对应的模板的预测块和当前块周边的模板的重建块计算代价。除了整像素位置的搜索还可以进行分像素位置的搜索,根据搜索到的匹配程度最高的位置来确定当前块的运动信息。利用相邻像素之间的相关性,对模板合适的运动信息可能也是当前块合适的运动信息。当然模板匹配的方法可能并不一定对所有的块都适用,因而可以使用一些方法确定当前块是否使用上述模板匹配的方法,比如在当前块用一个控制开关表示是否使用模板匹配的方法。这种模板匹配的方法的一个名字叫DMVD(decoder side motion vector derivation)。编码器和解码器都可以利用模板进行搜索从而导出运动信息或者在原有的运动信息的基础上找到更好的运动信息。而它不需要传输具体的运动矢量或运动矢量差,而是由编码器和解码器都进行同样规则的搜索从而保证编码和解码的一致。模板匹配的方法可以提高压缩性能,但是它需要在解码器中也进行“搜索”,从而带来了一定的解码器复杂度。
上述是在帧间上应用模板匹配的方法,模板匹配的方法也可以用在帧内上,比如说利用模板来确定帧内预测模式。对当前块,同样可以使用当前块上侧和左侧一定范围内的区域作为模板,比如说仍然如上图所示的左侧的矩形区域和上侧的矩形区域。在编解码当前块时,在模板中的重建像素是可得的。这个过程大致可以描述为,对当前块确定候选的帧内预测模式的集合,候选的帧内预测模式构成全部可用的帧内预测模式的一个子集。当然候选的帧内预测模式可以是全部可用的帧内预测模式的全集。这可以根据性能和复杂度的权衡来确定。可以根据MPM或一些规则,如等间距筛选等,来确定候选的帧内预测模式的集合。计算各候选的帧内预测模式在模板上的代价,比如SAD,SATD,MSE等。用该模式在模板上进行预测做出预测块,用预测块和模板的重建块计算代价。代价小的模式可能与模板更匹配,利用相邻像素之间的相似性,在模板上表现好的帧内预测模式可能也是当前块上表现好的帧内预测模式。选定1个或几个代价小的模式。当然上述2步可以重复进行,比如说在选定1个或几个代价小的模式后,再一次确定候选的帧内预测模式的集合,对新确定的候选的帧内预测模式集合再计算代价,选定1个或几个代价小的模式。这也可以理解为粗选和细选。最终选定的1个帧内预测模式确定为当前块的帧内预测模式,或者最终选定的几个帧内预测模式作为当前块的帧内预测模式的候选。当然也可以仅仅用模板匹配的方法对候选的帧内预测模式集合进行排序,比如对MPM列表进行排序,即将MPM列表中的模式分别在模板上做出预测块并确定代价,按代价从小到大进行排序。一般MPM列表中越靠前的模式在码流中的开销越小,这样也可以达到提高压缩效率的目的。
模板匹配的方法可以用于确定GPM的2个预测模式上。如果将模板匹配的方法用于GPM,对当前块可以用1个控制开关控制当前块的2个预测模式是否使用模板匹配,也可以用2个控制开关分别控制2个预测模式各自是否使用模板匹配。
另一方面是如何使用模板匹配。比如如果GPM在merge模式下使用,如VVC中的GPM,它使用merge_gpm_idxX从mergeCandList中确定一个运动信息,其中大写的X为0或1。对第X个运动信息,一种方法是在上述运动信息的基础上用模板匹配的方法进行优化。即根据merge_gpm_idxX从mergeCandList中确定一个运动信息,如果对该运动信息使用模板匹配,那么用模板匹配的方法在上述运动信息的基础上进行优化。另一种方法是不使用merge_gpm_idxX从mergeCandList中确定一个运动信息,而是直接从一个默认运动信息的基础上进行搜索,确定一个运动信息。
如果第X预测模式是帧内预测模式,而且当前块的第X预测模式使用模板匹配的方法,那么可以利用模板匹配方法确定一个帧内预测模式,不需要在码流中指示该帧内预测模式的索引。或者利用模板匹配方法确定一个候选集合或者MPM列表,需要在码流中指示该帧内预测模式的索引。
由上述可知,GPM有3个要素,一个权重矩阵和2个预测模式。GPM的优势是可以通过权重矩阵实现更自主的组合。而另一方面,GPM需要确定更多的信息,因而需要在码流中付出更大的开销。以VVC中的GPM为例,VVC中的GPM用在merge模式下。在码流中分别用merge_gpm_partition_idx,merge_gpm_idx0,merge_gpm_idx1确定权重矩阵,第一个预测模式和第二个预测模式。权重矩阵和2个预测模式各自都有多种可能的选择,比如VVC中的权重矩阵有64种可能的选择。而merge_gpm_idx0,merge_gpm_idx1各自在VVC中最大允许有6种可能的选择,当然VVC规定merge_gpm_idx0和merge_gpm_idx1不重复。那么这样的GPM就有65X6X5种可能的选择。而如果将MMVD用于2个运动信息(预测模式)的优化上,对每一个预测模式又可以提供多种可能的选择。这个数量就相当庞大了。
而如果GPM使用2个帧内预测模式,其中每一个预测模式如果可以使用VVC中的67种普通帧内预测模式,2个帧内预测模式不相同,也有64X67X66种可能的选择。当然为了节省开销,可以限制每个预测模式只可以使用所有普通帧内预测模式的一个子集,但这仍然有众多的可能的选择。
目前,GPM的1个权重导出模式和2个预测模式需要按照各自的规则分别在码流中传输必要的信息。例如,1个权重导出模式有自己的一个或多个语法元素,第一个预测模式有自己的一个或多个语法元素,第二个预测模式有自己的一个或多个语法元素。当然标准可以限制在某些情况下第二个预测模式不能和第一个预测模式相同,或者某些优化手段可以同时用在2个预测模式(这也可以理解为用在当前块),但是三者在语法元素的写入和解析上是相对独立的,即需要较多的码字对权重导出模式和预测模式进行指示,编码开销大。
为了解决上述技术问题,本申请将权重导出模式和K个预测模式作为一个组合,这样在码流中以组合的形式来指示当前块所使用的权重导出模式和K个预测模式,进而节省码字,提升编码效率。
下面结合图15,以解码端为例,对本申请实施例提供的视频解码方法进行介绍。
图15为本申请一实施例提供的视频解码方法流程示意图,本申请实施例应用于图1和图3所示视频解码器。如图15所示,本申请实施例的方法包括:
S101、解码码流,得到第一索引。
该第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,K为大于1的正整数。
由上述可知,一个权重导出模式和K个预测模式共同产生一个预测块,这个预测块作用于当前块,即根据权重导出模式确定权重,根据K个预测模式对当前块进行预测,得到K个预测值,根据权重对K个预测值进行加权处理, 得到当前块的预测值。由此可知,这一个权重导出模式和K个预测模式作为一个组合,共同作用在当前块,它们之间是有关联的。
举例说明,比如当前块包含K个相对运动的物体的边缘,这是帧间GPM的一个理想的场景。那么理论上这个划分应该发生在物体的边缘,但是实际上划分有有限种可能,不可能覆盖任意的边缘,有时会选择相近的划分,那这样可能相近的划分不止一种,选择哪种就取决于哪种划分与K个预测模式组合的结果最优。同理,选择哪种预测模式有时同样取决于哪种组合的结果最优,因为即使是在使用该预测模式的部分,对自然视频而言,这部分也很难和当前块完全匹配,最终选择的可能是编码效率最高的。另一种GPM用得比较多的地方是当前块包含一个物体中存在相对运动的部分。比如说胳膊的摆动等导致扭曲、变形的地方,这样的划分就更模糊,可能最终取决于哪种组合的结果最优。还有一种场景是帧内的预测,知道自然的图像中某些部分的纹理是很复杂的,某些部分存在一种纹理向另一种纹理的渐变,某些部分可能无法用简单的一个方向来表述,帧内GPM可以提供出更复杂的预测块,而帧内编码的块相对于相同量化下的帧间编码的块通常存在更大残差,选择哪种预测模式可能最终取决于哪种组合的结果最优。
基于上述描述,一个权重导出模式和K个预测模式可以作为一个组合共同作用在当前块上,为了节省码字,降低编码代价,本申请实施例将当前块对应的权重导出模式和K个预测模式作为一个组合,即第一组合,使用第一索引对该第一组合进行指示,相比于对权重导出模式和K个预测模式分别进行指示,本申请实施例使用更少的码字,进而降低了编码代价。
具体的,编码端确定当前块对应的第一组合,该第一组合由一个权重导出模式和K个预测模式,为了便于描述,将第一组合所包括的权重导出模式记为第一权重导出模式,将第一组合所包括的K个预测模式确定为K个第一预测模式。编码端使用该第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值,例如,使用第一权重导出模式导出权重,使用K个预测模式分别对当前块进行预测得到K个预测值,根据导出的权重对这K个预测值进行加权运算,得到当前块的预测值。
同时,为了保持编解码两端的一致性,编码端通过第一索引向解码端指示第一组合,即编码端在码流中写入第一索引。解码端通过解码码流,得到该第一索引,进而根据该第一索引,确定出当前块对应的第一组合,以使用第一组合所包括的第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。
本申请实施例对第一索引的具体语法元素形式不做限制。
在一种可能的实现方式中,若当前块采用GPM技术进行预测时,则使用gpm_cand_idx表示第一索引。
由于上述第一索引用于指示第一组合,因此,在一些实施例中,该第一索引也可以称为第一组合索引或者第一组合的索引。
在一种示例中,在码流中添加第一索引后的语法如表5所示:
表5
其中,gpm_cand_idx为第一索引。
在一些实施例中,解码端在解码第一索引之前,首先需要判断当前块是否使用K个不同的预测模式进行加权预测处理。若解码端确定当前块使用K个不同的预测模式进行加权预测处理时,则执行上述S101解码码流,得到第一索引。若解码端确定当前块不使用K个不同的预测模式进行加权预测处理时,则跳过上述S101的步骤。
在一种可能的实现方式中,解码端可以通过确定当前块的预测模式参数,来确定当前块是否使用K个不同的预测模式进行加权预测处理。
可选的,在本申请的实施中,预测模式参数可以指示当前块是否可以使用GPM模式或AWP模式,即指示当前块是否可以使用K个不同的预测模式进行预测处理。
可以理解的是,在本申请的实施例中,可以将预测模式参数理解为一个表明是否使用了GPM模式或AWP模式标志位。具体地,编码器可以使用一个变量作为预测模式参数,从而可以通过对该变量的取值的设置来实现预测模式参数的设置。示例性的,在本申请中,如果当前块使用GPM模式或AWP模式,那么编码器可以将预测模式参数的取值设置为指示当前块使用GPM模式或AWP模式,具体地,编码器可以将变量的取值设置为1。示例性的,在本申请中,如果当前块不使用GPM模式或AWP模式,那么编码器可以将预测模式参数的取值设置为指示当前块不使用GPM模式或AWP模式,具体地,编码器可以将变量取值设置为0。进一步地,在本申请的实施例中,编码器在完成对预测模式参数的设置之后,便可以将预测模式参数写入码流中,传输至解码器,从而可以使解码器在解析码流之后获得预测模式参数。
基于此,解码端解码码流,得到预测模式参数,进而根据该预测模式参数确定当前块是否使用GPM模式或AWP模式,若当前块使用GPM模式或AWP模式,即使用K个不同的预测模式进行预测处理时,确定当前块的权重导出模式。
在一些实施例中,如表5所示,本申请实施例还可以对当前块使用GPM模式或AWP模式进行条件限定,即在判断当前块在满足预设条件时,确定当前块使用K个预测模式进行加权预测,进而解码端解码码流,得到第一索引。
示例性的,在应用GPM模式或AWP模式时,可以对当前块的尺寸进行限制。
可以理解的是,由于本申请实施例提出的预测方法需要分别使用K个不同的预测模式生成K个预测值,再根据权重进行加权得到当前块的预测值,为了降低的复杂度,同时考虑压缩性能和复杂度的权衡,在本申请的实施例中,可以限制对一些大小的块不使用该GPM模式或AWP模式。因此,在本申请中,解码器可以先确定当前块的尺寸参数,然后根据尺寸参数确定当前块是否使用GPM模式或AWP模式。
在本申请的实施例中,当前块的尺寸参数可以包括当前块的高度和宽度,因此,解码器可以根据当前块的高度和 宽度确定当前块是否使用GPM模式或AWP模式。
示例性的,在本申请中,若宽度大于第一阈值且高度大于第二阈值,则确定当前块使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的宽度大于(或大于等于)第一阈值,且块的高度大于(或大于等于)第二阈值的情况下使用GPM模式或AWP模式。其中,第一阈值和第二阈值的值可以是8,16,32等,第一阈值可以等于第二阈值。
示例性的,在本申请中,若宽度小于第三阈值且高度大于第四阈值,则确定当前块使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的宽度小于(或小于等于)第三阈值,且块的高度大于(或大于等于)第四阈值的情况下使用GPM模式或AWP模式。其中,第三阈值和第四阈值的值可以是8,16,32等,第三阈值可以等于第四阈值。
进一步地,在本申请的实施例中,还可以通过像素参数的限制来实现限制能够使用GPM模式或AWP模式的块的尺寸。
示例性的,在本申请中,解码器可以先确定当前块的像素参数,然后再根据像素参数和第五阈值进一步判断当前块是否可以使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的像素数大于(或大于等于)第五阈值的情况下使用GPM模式或AWP模式。其中,第五阈值的值可以是8,16,32等。
也就是说,在本申请中,在当前块的尺寸参数满足大小要求的条件下,当前块才可以使用GPM模式或AWP模式。
示例性的,在本申请中,可以有一个帧级的标志来确定当前待解码帧是否使用本申请。如可以配置帧内帧(如I帧)使用本申请,帧间帧(如B帧、P帧)不使用本申请。或者可以配置帧内帧不使用本申请,帧间帧使用本申请。或者可以配置某些帧间帧使用本申请,某些帧间帧不使用本申请。帧间帧也可以使用帧内预测,因而帧间帧也有可能使用本申请。
在一些实施例中,还可以有一个帧级以下、CU级以上(如tile、slice、patch、LCU等)的标志来确定这一区域是否使用本申请。
S102、根据第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式。
解码端解码码流,得到第一索引后,根据该第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式。
在本申请中,权重导出模式用于对当前块使用的权重进行确定。具体地,权重导出模式可以是导出权重的模式。对于一个给定长度和宽度的块,每一种权重导出模式可以导出一个权重矩阵;对于同样大小的块,不同权重导出模式导出的权重矩阵不同。
示例性的,在本申请中,AWP有56种权重导出模式,GPM有64种权重导出模式。
上述第一组合所包括的K个不同的第一预测模式包括如下几种示例:
示例1,上述K个不同的第一预测模式均为帧内预测模式,例如当前块是帧内编码的块,且不适用屏幕内容编码。
示例2,上述K个不同的第一预测模式均为帧间预测模式,例如当前块为帧间编码的块。
示例3,上述K个不同的第一预测模式中,至少一个为帧内预测模式,至少一个为帧间预测模式。
示例4,上述K个不同的第一预测模式中,至少一个为帧内预测模式,至少一个为非帧间和非帧内的预测模式,例如为块内复制IBC预测模式或调色板palette预测模式等。
示例5,上述K个不同的第一预测模式中,至少一个为帧间预测模式,至少一个为非帧间和非帧内的预测模式,例如为IBC预测模式或palette预测模式等。
示例6,上述K个不同的第一预测模式均不是帧内预测模式,也不是帧间预测模式,例如一个为IBC预测模式,一个为palette预测模式等。
需要说明的是,本申请实施例对第一组合所包括的K个不同的第一预测模式的具体类型不做限制。
本申请实施例中,解码端根据第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式的方式包括但不限于如下几种:
方式1,编码端和解码端从预设的多个候选组合中确定第一索引对应的第一组合。例如,预设的多个候选组合包括2个、3个、4个、5个、6个、7个、8个、9个等任意数量个候选组合,假设包括8个候选组合,每个候选组合包括一个权重导出模式和K个预测模式,且这8个候选组合具有不同的标识(或索引)。这样,解码端得到第一索引后,在这多个候选组合中查询第一索引对应的候选组合,将第一索引对应的候选组合确定为第一组合,进而将该候选组合所包括的权重导出模式确定为第一权重导出模式,将该候选组合所包括的K个预测模式确定为K个第一预测模式。
方式2,解码端和编码端均确定一个列表,该列表中包括多个候选组合,因此将该列表也称为候选组合列表,从这个候选组合列表中确定第一索引对应的第一组合。此时,上述S102包括如下步骤:
S102-A、确定候选组合列表;
S102-B、将候选组合列表中第一索引对应的候选组合所包括的权重导出模式和K个预测模式,确定为第一权重导出模式和K个第一预测模式。
其中,上述候选组合列表中包括多个候选组合,多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式。
示例性的,候选组合列表如表6所示:
表6
| 索引 | 候选组合 |
| 0 | 候选组合1(包括一个权重导出模式和K个预测模式) |
| 1 | 候选组合2(包括一个权重导出模式和K个预测模式) |
| …… | …… |
| i-1 | 候选组合i(包括一个权重导出模式和K个预测模式) |
| …… | …… |
如表6所示,候选组合列表包括多个候选组合,这多个候选组合中任意两个候选组合不完全相同,即任意两个候选组合所包括的权重导出模式和K个预测模式中的至少一个模式不同。例如,候选组合1和候选组合2中的权重导出模式不同,或者候选组合1和候选组合2中的权重导出模式相同,K个预测模式中至少一个预测模式不同,或者,候选组合1和候选组合2中的权重导出模式不同,且K个预测模式中至少一个预测模式不同。
示例性的,上述表6中以候选组合在候选组合列表中的排序为索引,可选的,还可以以其他方式体现候选组合在候选组合列表中的索引,本申请实施例对此不作限制。
在该方式2中,解码端解码码流,得到第一索引,并确定如上述表6所示的候选组合列表,根据第一索引在该候选组合列表中进行查询,得到该第一索引指示的第一组合所包括的第一权重导出模式和K个预测模式。
例如,第一索引为索引1,在表6所示的候选组合列表中,索引1对应的候选组合为候选组合2,也就是说,第一索引指示的第一组合为候选组合2。这样,解码端将候选组合1所包括的权重导出模式和K个预测模式确定为第一组合所包括的第一权重导出模式和K个第一预测模式,并使用该第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。
在该方式2中,编码端和解码端可以分别确定相同的候选组合列表,例如编码端和解码端均确定一个包括N个候选组合的列表,每个候选组合包括1个权重导出模式和K个预测模式。而在码流中,编码端只需要写入最终选择的一个候选组合,例如第一组合,解码端解析编码端最终选择的第一组合,具体是解码端解码码流,得到第一索引,并通过第一索引在解码端所确定的候选组合列表中,确定出第一组合。
本申请实施例对解码端确定上述候选组合列表的具体方式不做限制。
在一些实施例中,上述候选组合列表为已有的,解码端在解码码流得到第一索引后,可以根据该第一索引获得或读取该候选组合列表,进而根据该第一索引,在该候选组合列表中查询第一索引对应的候选组合。
在一些实施例中,上述候选组合列表为编码端发送给解码端的,例如编码端在对当前块进行编码之前,发送给解码端。
在一些实施例中,上述候选组合列表为编码端上传至云端,解码端在解码码流,得到第一索引后,从云端读取该候选组合列表。
在一些实施例中,上述候选组合列表是解码端构建的,例如,解码端在解码码流,得到第一索引后,响应于该第一索引构建该候选组合列表。
本申请实施例对解码端构建候选组合列表的方式不做限制。例如,利用与当前块相关的信息去分析不同的权重导出模式和不同的预测模式所组成的各组合发生的概率大小,根据各组合的发生概率大小来构建候选组合列表。
可选的,与当前块相关的信息包括当前块的周围块的模式信息,当前块的重建像素等。
在一些实施例中,解码端通过如下S102-A1的步骤,构建候选组合列表:
S102-A1、基于当前块的模板,构建候选组合列表。
模板匹配是利用相邻像素之间的相关性,把当前块周边的一些区域作为模板。在当前块进行编解码时,按照编码顺序其左侧及上侧已经编码完成。在帧间预测时,在参考帧中寻找模板的最佳匹配位置从而确定当前块的运动信息或者说运动矢量。在帧内预测时,利用模板来确定当前块的帧内预测模式。
当前块的模板由当前块周围已重建区域组成,与当前块具有相关性,基于此本申请实施例基于当前块的模板来构建候选组合列表。
本申请对当前块的模板的具体形状不做限制。
在一些实施例中,模板包括当前块的上方已编码区域、左侧已编码区域和左上方已编码区域中的至少一个。
可选的,上方已编码区域的宽度与当前块的宽度相同,左侧已编码区域的高度与当前块的高度相同,左上方已编码区域的宽度与左侧已编码区域的宽度相同,左上方已编码区域的高度与上方已编码区域的高度相同。
例如,针对每个组合,使用该组合对当前块的模板进行预测,得到每个组合下该模板的预测值,根据每个组合下该模板的预测值,构建候选组合列表。
针对每一个组合,使用该组合对当前块的模板进行预测,得到每个组合下该模板的预测值,具体是使用该组合所包括的权重导出模式导出模板的权重,使用该组合所包括的K个预测模式分别对模板进行预测,得到模板的K个预测值,根据导出的模板的权重,对模板的K个预测值进行加权处理,得到该组合下模板的预测值。最后,根据每个组合下该模板的预测值,构建候选组合列表。
需要说明的是,上述根据权重导出模式导出的权重可以理解为导出模板中每一个像素点对应的权重,也可以理解为导出模板对应的权重矩阵。其中,基于权重确定模板的预测值时,可以是确定模板中每一个像素点对应的K个预测值,并根据每一个像素点对应的K个预测值和权重,确定出每个像素点对应的预测值,模板中每一个像素点对应的预测值构成模板的预测值。可选的,基于权重确定模板的预测值时,还可以是按照块来执行,例如,确定模板的预测值,根据模板的权重矩阵对模板的K个预测值进行加权,得到模板的预测值。
在一些实施例中,S102-A1包括如下S102-A11至S102-A13的步骤:
S102-A11、确定R个第二组合,R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,R为大于1的正整数。
S102-A12、对于R个第二组合中的任一第二组合,使用第二组合中的权重导出模式和K个预测模式,对模板进行预测,得到第二组合对应的模板预测值。
S102-A13、根据R个第二组合中各第二组合对应的模板预测值,构建候选组合列表。
在该实施例中,解码端在构建候选组合列表时,首先确定R个第二组合,本申请对R个第二组合的具体数值不做 限制,例如8、16、32等,R个第二组合中的每一个第二组合包括一权重导出模式和K个预测模式,且R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同。接着,对于R个第二组合中的每一个第二组合,使用该第二组合所包括的权重导出模式和K个预测模式对当前块的模板进行预测,得到该第二组合下该模板的预测值。最后,根据R个第二组合中每个第二组合对应的模板预测值,构建候选组合列表。
上述S102-A13中根据R个第二组合中各第二组合对应的模板预测值,构建候选组合列表的方式包括但不限于如下几种:
方式1,根据R个第二组合中每个第二组合对应的模板预测值的大小,构建候选组合列表。
例如,根据R个第二组合中每个第二组合对应的模板预测值的大小,对R个第二组合进行排序,将排序后的R个第二组合确定为候选组合列表,此时,候选组合列表中包括R个候选组合。
再例如,根据R个第二组合中每个第二组合对应的模板预测值的大小,对R个第二组合进行排序,从排序后的R个第二组合中,选出N个第二组合构成候选组合列表,此时候选组合列表中包括N个候选组合。
方式2,上述S102-A13包括如下步骤:
S102-A13-1、根据第二组合对应的模板预测值和模板的重建值,确定第二组合对应的代价;
S102-A13-2、根据R个第二组合中各第二组合对应的代价,构建候选组合列表。
由于当前块的模板为已重建区域,因此,解码端可以得到模板的重建值,这样对于R个第二组合中的每个第二组合,可以根据该第二组合下模板的预测值和模板的重建值,确定出该第二组合对应的预测失真代价。其中,确定第二组合对应的代价的方式包括但不限于SAD、SATD、SEE等。接着,根据R个第二组合中每个第二组合对应的代价,构建候选组合列表。
其中,S102-A13-2中根据R个第二组合中各第二组合对应的代价,构建候选组合列表的方式包括但不限于如下几种示例:
示例1,根据R个第二组合中各第二组合对应的代价,对R个第二组合进行排序;将排序后的R个第二组合,确定为候选组合列表。
在该示例1中生成的候选组合列表包括R个候选组合。
可选的,该候选组合列表中R个候选组合按照代价的大小,从小到大进行排序,即候选组合列表中R个候选组合对应的代价按照排序依次增大。
其中,根据R个第二组合中各第二组合对应的代价,对R个第二组合进行排序可以是,按照代价从小到大顺序,对R个第二组合进行排序。
示例2,根据第二组合对应的代价,从R个第二组合中选出N个第二组合,将这N个第二组合组成的列表,确定为候选组合列表。
可选的,上述N个第二组合为R个第二组合中代价最小的前N个第二组合,例如根据R个第二组合中每个第二组合对应的代价,从R个第二组合中选出代价最小的N个第二组合,构成候选组合列表,此时,候选组合列表包括N个候选组合。
可选的,该候选组合列表中N个候选组合按照代价的大小,从小到大进行排序,即候选组合列表中N个候选组合对应的代价按照排序依次增大。
下面对上述S102-A11中确定R个第二组合的过程进行介绍。
在一些实施例中,上述R个第二组合为预设的。这样使用预设的R个第二组合中的每个第二组合对当前块的模板进行预测,得到每个第二组合对应的模板预测值,再根据每个第二组合对应的模板预测值和模板的重建值,确定每个第二组合对应的代价,根据每个第二组合对应的代价,对R个第二组合进行排序,将排序后的R个第二组合作为候选组合列表,或者从排序后的R个第二组合中选出代价最小的N个第二组合构成候选组合列表。
在一些实施例中,S102-A11包括如下步骤:
S102-A11-1、确定P个权重导出模式和Q个预测模式,P为正整数,Q为大于或等于K的正整数;
S102-A11-2、根据P个权重导出模式和Q个预测模式,构建R个第二组合,R个第二组合中的任一第二组合包括P个权重导出模式中的一权重导出模式和Q个预测模式中的K个预测模式,P均为正整数,Q为大于或等于K的正整数。
在该实施例中,解码端首先确定P个权重导出模式和Q个预测模式,接着,根据确定的P个导出权重导出模式和Q个预测模式,构建R个第二组合。
举例说明,第二组合包括一个权重导出模式和2个预测模式为例,假设P个权重导出模式为权重导出模式1和权重导出模式2,Q个预测模式为预测模式1、预测模式2和预测模式3,这2个权重导出模式和3个预测模式可以组合成2X3X2共12个第二组合。
本申请实施例对上述P个权重导出模式和Q个预测模式的具体个数不做限制。
在一种可能的实现方式中,假设当前块为帧内编码块,这里假设GPM的可能的权重导出模式有64种,GPM可能的帧内预测模式有67种,这些可以从VVC的标准中找到。但是并不是限制GPM的可能的权重只有64种,或者是哪64种,需要说明的是,之所以VVC的GPM选择64种也是一个预测效果提升和在码流中的开销提升的一种权衡方案。而本申请不再使用一种固定的逻辑去编码权重导出模式,所以理论上本申请可以使用更多样的权重,以及更灵活地使用它们。同样,并不是限制GPM的帧内预测模式只有67种,或者是哪67种。理论上所有可能的帧内预测模式都可以用在GPM中。比如说帧内角度预测模式做得更加细致,产生更多的帧内角度预测模式,那么GPM也可以使用更多的帧内角度预测模式。比如说VVC的MIP(matrix-based intra prediction)模式,本申请也可以使用,但是考虑到MIP还有多种子模式可以选择,这里为了便于理解就不把MIP加入到本实施例中。另外还有一些宽角度模式,本申请也可以使用,本实施例不再加以描述。
假设K=2,上述K个预测模式包括第一个预测模式和第二个预测模式,假设所有可用的预测模式有67种(即Q=67),第一个预测模式有67种可能,由于第二个预测模式与第一个预测模式不相同,因此第二个预测模式有66种,假设权重导出模式有64种(即P=64),那么本申请可能使用任意两种不同的预测模式以及任意一种权重导出模式组成一个第二组合,总共有64*67*66种可能的第二组合。
在该实现方式中,P个权重导出模式为所有可能的权重导出模式,例如GPM中的64个权重导出模式和Q个预测模式为所有可能的预测模式,例如GPM的67个帧内预测模式,使用一种穷举的办法,得到所有可能的第二组合,例如得到64*67*66种可能的第二组合,使用这64*67*66种可能的第二组合中的每个第二组合对当前块的模板进行预测,计算每一个第二组合的失真代价,进而根据每个第二组合的失真代价,得到当前块对应的候选组合列表。
在一些实施例中,为了降低数据量,提升候选组合列表的构建速度,则不对每一种预测模式都进行尝试,可以选择其中部分预测模式进行尝试。
此时,上述S102-A11-1中确定Q个预测模式的实现方式包括但不限于如下几种方式:
方式一,Q个预测模式为预设的预测模式。
方式二,确定当前块的候选预测模式列表、K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,根据候选预测模式列表、K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,确定Q个预测模式。
其中,候选预测模式列表包括多个候选预测模式,K个预测模式中任一预测模式对应的备选预测模式列表包括至少一个备选预测模式。
例如,根据当前块的候选预测模式列表,确定Q个预测模式。
再例如,根据K个预测模式分别对应的备选预测模式列表,确定Q个预测模式。
再例如,根据权重导出模式对应的预测模式,确定Q个预测模式。
再例如,根据当前块的候选预测模式列表和K个预测模式分别对应的备选预测模式列表,确定Q个预测模式。
再例如,根据当前块的候选预测模式列表和权重导出模式对应的预测模式,确定Q个预测模式。
再例如,根据K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式,确定Q个预测模式。
再例如,根据候选预测模式列表、K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式,确定Q个预测模式。
其中,确定K个预测模式分别对应的备选预测模式列表可以理解为,为K个预测模式中每个预测模式确定一个备选预测模式列表,在后续构建第二组合时,第二组合中的某一个预测模式从该预测模式对应的备选预测模式列表中选出。例如K=2,K个预测模式包括第一个预测模式和第二个预测模式,解码端为第一个预测模式构建一个备选预测模式列表1,为第二个预测模式构建一个备选预测模式列表2。这样在后期构建不同的第二组合时,从备选预测模式列表1中选出一个备选预测模式作为第一个预测模式,从备选预测模式列表2中选出一个备选预测模式作为第二个预测模式,这样一个权重导出模式,以及当前选出的第一个预测模式和第二个预测模式组成一个第二组合。
本申请实施例对确定K个预测模式中每个预测模式对应的备选预测模式列表的方式不做限制。
在一种可能的实现方式中,针对K个预测模式中的任一预测模式,确定该预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据该候选预测模式列表和权重导出模式对应的预测模式中的至少一个,确定该预测模式对应的备选预测模式列表。
本申请实施例中,确定K个预测模式中某一个预测模式对应的候选预测模式列表,与确定当前块对应的候选预测模式列表的过程基本相似,具体可以参照下面描述。
在一些实施例中,上述候选预测模式列表中包括一个或多个帧间预测模式,例如包括skip、merge、普通帧间预测模式、单向预测、双向预测、多假设预测等中的至少一个。
在一些实施例中,上述候选预测模式列表中包括一个或多个帧内预测模式,例如包括直流(Direct Current,DC)模式、平面(PLANAR)模式、角度模式等中的至少一个。可选的,上述候选预测模式列表包括MPM列表中的至少一个帧内预测模式。
在一些实施例中,上述候选预测模式列表还可以包括IBC、palette等模式。
本申请对上述候选预测模式列表所包括的预测模式的类型以及预测模式的个数不做限制。
在一些实施例中,候选预测模式列表通过如下至少一种方式确定:
方式1,上述上述候选预测模式列表包括预设模式。
方式2,上述上述候选预测模式列表包括MPM列表中的模式。
在一些实施例中,候选帧内预测模式列表可以是当前块的MPM列表,比如在VVC中,当前块可以得到一个长度为6的MPM列表。另外在一些后续的技术演进中,有一种secondary MPM的方案,可能导出长度为22的MPM列表,也可以说第一MPM列表和第二MPM列表的长度加起来是22。也就是说,本申请实施例可以使用MPM来对帧内预测模式进行一个筛选。
在一些实施例中,若上述确定的候选预测模式列表中不包括预设模式时,则将预设模式添加至候选预测模式列表中。
可选的,上述预设模式包括DC、水平模式、竖直模式中的至少一个。
可选的,可以在某些条件下添加预设模式,一个例子是在候选预测模式中的预测模式个数小于、或小于等于一个阈值时添加,这个阈值可以是3,4,5,6等。
方式3,上述上述候选预测模式列表包括根据一些规则,如等间距筛选等,确定出的候选预测模式的集合。
方式4,根据与当前块相邻的至少一个块所使用的预测模式,确定候选预测模式列表。
例如,将与当前块相邻的一个或多个块所使用的的预测模式加入候选预测模式列表中,得到当前块的候选预测模式列表,或者得到K个预测模式中第k个预测模式对应的候选预测模式列表,其中第k个预测模式为K个预测模式中的任一预测模式。
再例如,将与当前块相邻的一个或多个块所使用的预测模式中第k个预测模式对应的预测模式,添加到该第k个预测模式对应的候选预测模式列表中。举例说明,假设K=2,第k个预测模式为第一个预测模式,与当前块相邻的2个块假设也使用2个预测模式进行加权预测,其中第一个相邻块所使用的2个预测模式分别为预测模式1和预测模式3,第二个相邻块所使用的2个预测模式分别为预测模式4和预测模式5,这样,可以将预测模式1和预测模式4添加至第一个预测模式对应的候选预测模式列表中。
需要说明的是,上述方式1至方式4可以作为确定候选预测模式列表的方式单独使用,也可以进行任意组合使用。
在一些实施例中,上述候选预测模式列表包括候选帧内预测模式列表、候选帧间预测模式列表中的至少一个。其中,候选帧内预测模式列表包括至少一个候选帧内预测模式,候选帧间预测模式列表包括至少一个候选帧间预测模式。
根据上述方式,得到当前块的候选预测模式列表后,根据该候选预测模式列表,确定Q个预测模式,例如将候选预测模式列表所包括的全部或部分候选预测模式,确定为Q个预测模式的全部或部分。
下面对确定权重导出模式对应的预测模式的过程进行介绍。
本申请实施例中,权重导出模式对应的预测模式为一个泛指,例如可以是预设的一个权重导出模式对应的预测模式,或者是预设的几个权重导出模式对应的预测模式。在一些实施例中,权重导出模式对应的预测模式也可以理解为权重导出模式对应的预测模式列表,该预测模式列表中包括至少一个预测模式。
在一些实施例中,上述权重导出模式对应的预测模式包括P个权重导出模式中至少一个权重导出模式对应的预测模式。此时,确定权重导出模式对应的预测模式包括:针对P个权重导出模式中的第p个权重导出模式,确定第p个权重导出模式对应的预测模式,根据P个权重导出模式中至少一个权重导出模式对应的预测模式,确定上述的权重导出模式对应的预测模式,其中p为正整数。
本申请实施例中,确定P个权重导出模式中每个一个权重导出模式对应的预测模式的过程基本相同,为了便于描述,下面以P个权重导出模式中的第p个权重导出模式为例进行说明。
其中,确定第p个权重导出模式对应的预测模式包括如下两种方式:
方式1,若第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,根据第p个权重导出模式确定角度索引;将角度索引对应的帧内预测模式,确定为第p个权重导出模式对应的预测模式中的至少一个。
其中角度索引用于指示权重的分界线角度索引。
在一些实施例中,用字段angleIdx表示角度索引。
上述表2示出了merge_gpm_partition_idx与angleIdx的对应关系,参照上述表2,可以根据该第p个权重导出模式导出角度索引。
本申请中,角度索引与帧内预测模式具有对应关系,即不同的角度索引与不同帧内预测模式对应。
示例性的,角度索引与帧内预测模式具有对应关系如表7所示:
表7
| angleIdx | 帧内预测模式 |
| 0 | 50 |
| 2 | 42 |
| 3 | 38 |
| 4 | 34 |
| 5 | 30 |
| … | … |
该方式一中,以K=2为例,若第一个预测模式或第二个预测模式为帧内预测模式时,则根据第p个权重导出模式确定角度索引,例如根据上述表2,导出第p个权重导出模式对应的角度索引。接着,在上述表7中,确定出该角度索引对应的帧内预测模式,例如,角度索引为2,其对应的帧内预测模式为42,进而将帧内预测模式42确定为第一个预测模式或第二个预测模式。
方式2,若第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定第p个权重导出模式对应的帧内预测模式;将第p个权重导出模式对应的帧内预测模式中的至少一个,确定为第p个权重导出模式对应的预测模式中的至少一个。
其中,第p个权重导出模式对应的帧内预测模式包括预测方向与权重的分界线平行的帧内预测模式、预测方向与分界线垂直的帧内预测模式和planar模式中的至少一个。
需要说明的是,预测方向与权重的分界线平行的帧内预测模式包括预测方向与权重的分界线平行或近似平行的一个或几个帧内预测模式。预测方向与权重的分界线垂直的帧内预测模式包括预测方向与权重的分界线垂直或近似垂直的一个或几个帧内预测模式。
该方式二中,以K=2为例,若第一个预测模式和/或第二个预测模式为帧内预测模式时,第一个预测模式和/或第二个预测模式是从权重导出模式对应的帧内预测模式中确定出。例如,第一个预测模式和/或第二个预测模式可以是跟权重划分线(也称为分界线)同一条直线的或近似同一条直线的帧内预测模式。或者,第一个预测模式和/或第二个预测模式可以是预测方向与权重分界线垂直的或近似垂直的帧内预测模式。例如,权重的分界线是水平方向的,如图4中GPM的索引为18,19,50,51的模式,第一个预测模式和/或第二个预测模式为水平方向的模式18或者垂直方向的模式50。
解码端根据上述步骤,确定出P个权重导出模式中至少一个权重导出模式对应的预测模式,进而根据P个权重导出模式中至少一个权重导出模式对应的预测模式,确定权重导出模式对应的预测模式。例如,将P个权重导出模式中 至少一个权重导出模式对应的预测模式的全部或部分,作为权重导出模式对应的预测模式。
进一步的,P个权重导出模式对应的预测模式中可能存在重复的预测模式,则将重复的预测模式进行剔除,将剩余的不同的预测模式确定为权重导出模式对应的预测模式。
本申请实施例,为了降低R个第二组合的数量,对预测模式进行筛选,具体是根据上述方法,确定出Q个预测模式。
在一些实施例中,为了降低解码端的复杂度,对上述Q个预测模式的个数进行限定,例如,Q小于或等于第一预设阈值,本申请对第一预设阈值的具体取值不做限制,可以根据实际需要进行确定,例如第一预设阈值为6,即选定6个预测模式来构建R个第二组合,以控制第二组合的个数。
在一些实施例中,Q的大小与当前块的大小和/或形状相关,其中当前块的形状可以理解为由当前块的长宽比决定。
在预测时,对于较小的块,相似的预测模式对预测结果的影响差别不大,对于较大的块,相似的预测模式对预测结果的影响差别会更加明显。基于此,本申请实施例对不同大小的块设定不同的Q值,即对较大块设置较大的Q值,对较小的块设置较小的Q值。
此时,在确定当前块对应的Q值时,根据当前块的大小设定,例如,若当前块的大小大于第一数值时,则Q大于或等于第二预设阈值。再例如,若当前块的大小小于或等于第一数值时,则Q小于第三预设阈值。本申请实施例对第一数值、第二预测阈值和第三预设阈值的具体大小不做限制,其中第三预设阈值小于第二预设阈值。
下面对S102-A11-1中确定P个权重导出模式的过程进行介绍。
由上述可知,GPM包括64种权重导出模式,AWP包括56种权重导出模式。
在一些实施例中,P个权重导出模式为GPM所包括64种权重导出模式,或者为AWP包括56种权重导出模式。
在一些实施例中,从预设的M个权重导出模式中,选出P个权重导出模式,其中M为大于或等于P的正整数。
上述预设的M个权重导出模式可以为GPM所包括64种权重导出模式,或者为AWP包括56种权重导出模式,还可以是GPM所包括64种权重导出模式的部分权重导出模式,或者为AWP包括56种权重导出模式的部分权重导出模式。
在该实施例中,为了进一步降低R个第二组合的数量,则对预设的M个权重导出模式进行筛选,则可以从预设的M个权重导出模式中选择P个权重导出模式,用于构建R个第二组合。
在一些实施例中,从M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到P个权重导出模式。由于权重导出模式中同一划分角度可以对应多个偏移量,如图16A所示权重导出模式10、11、12和13,它们的划分角度相同,但是偏移量不同,这样可以去掉一些预设偏移量对应的权重导出模式,和/或也可以去掉一些预设划分角度对应的权重导出模式。这样做可以减少总的可能的第二组合数量。而且使各个可能的第二组合之间差别更明显。
在一些实施例中,不同的块对应的筛选条件可以不同,这样在确定当前块对应的P个权重导出模式时,首先确定当前块对应的筛选条件,并根据当前块对应的筛选条件,从M个权重导出模式中,选出P个权重导出模式。
在一些实施例中,当前块对应的筛选条件包括当前块的大小对应的筛选条件和/或当前块的形状对应的筛选条件。在预测时,对于更小的块,相似的权重导出模式对预测结果的影响差别不大,而对于较大的块,相似的权重导出模式对预测结果的影响差别会更加明显。基于此,本申请实施例对不同大小的块设定不同的P值,即对较大块设置较大的P值,对较小的块设置较小的P值。
在一些实施例中,上述筛选条件包括数组,该数组包括M个元素,M个元素与M个权重导出模式一一对应,每个权重导出模式对应的元素用于指示该权重导出模式是否可用,其中权重导出模式是否可用可以理解为该权重导出模式是否用于组成P个权重导出模式中的一个权重导出模式进行后续的第二组合的尝试。
上述数组可以是一位数值,也可以是二位数值。
示例性的,以GPM为例,M个权重导出模式是64个,设置一个含有64个元素的数组,每一个元素的值表示其对应的权重导出模式是否可用。以一位数值为例,一个具体的例子如下,设置一个g_sgpm_splitDir的数组:
g_sgpm_splitDir[64]={
1,1,1,0,1,0,1,0,
1,0,1,0,1,0,1,0,
1,0,1,1,1,0,1,0,
1,0,1,0,1,0,1,0,
0,0,0,0,1,1,0,1,
0,0,1,0,0,1,0,0,
1,0,1,1,0,1,0,0,
1,0,0,1,0,0,1,0
};
其中,g_sgpm_splitDir[x]的值为1表示索引为x的权重导出模式可用,为0表示索引为x的权重导出模式不可用。
在一些实施例中,若当前块对应的筛选条件包括当前块的大小对应的筛选条件和当前块的形状对应的筛选条件时,且对于同一个权重导出模式,若当前块的大小对应的筛选条件和当前块的形状对应的筛选条件表示该权重导出模式均可用时,则将该权重导出模式确定为P个权重导出模式中的一个,若当前块的大小对应的筛选条件和当前块的形状对应的筛选条件中的至少一个表示该权重导出模式不可用,则确定该权重导出模式不构成P个权重导出模式。
在一些实施例中,对于不同块大小对应的筛选条件和不同块形状对应的筛选条件,可以使用多个数组分别进行实现。
在一些实施例中,对于不同块大小对应的筛选条件,和不同块形状对应的筛选条件可以使用二位数组来实现,也就是说,在一个二位数组中即包括块大小对应的筛选条件,也包括块形状对应的筛选条件。
示例性的,对于大小为A,形状为B的块对应的筛选条件如下所示,该筛选条件通过一个二位数组表示:
g_sgpm_splitDir[64]={
(1,1),(1,1),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(1,1),(0,0),(1,1),(1,0),(1,0),(0,0),(1,0),(1,1),
(0,1),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,1),(0,0),(0,1),(1,0),(1,0),(1,0),(1,0),(0,0),
(0,0),(0,0),(1,1),(0,0),(1,1),(1,1),(1,0),(0,1),
(0,0),(0,0),(1,1),(0,0),(1,0),(0,0),(1,0),(0,0),
(1,0),(0,0),(1,1),(1,0),(1,0),(1,0),(0,0),(0,0),
(1,1),(0,0),(1,1),(0,0),(0,0),(1,0),(1,1),(0,0)
};
其中,g_sgpm_splitDir[x]的值均为1表示索引为x的权重导出模式可用,g_sgpm_splitDir[x]的值中有一个为0表示索引为x的权重导出模式不可用。例如g_sgpm_splitDir[4]=(1,0),表示权重导出模式4对于块大小为A可用户,但对于形状为B的块不可用,因此,若块的大小为A且形状为B时,则权重导出模式不可用。
解码端根据上述步骤,确定出Q个预测模式和P个权重导出模式后,根据这Q个预测模式和P个权重导出模式,组成R个不同的第二组合。
在一些实施例中,为了进一步提高候选组合列表的构建速度,则解码端对上述确定的Q个预测模式和P个权重导出模式再次进行筛选,此时,上述S102-A11-2中根据确定出的P个权重导出模式和Q个预测模式,组成R个第二组合包括如下S102-A11-21至S102-A11-23的步骤:
S102-A11-21、从P个权重导出模式中选出S个权重导出模式,其中S为小于或等于P的正整数。
具体的,从上述确定的P个权重导出模式剔除导发生概率较低的权重导出模式,得到筛选后的S个权重导出模式。
其中,上述S102-A11-21中从P个权重导出模式中选出S个权重导出模式的方式包括但不限于如下几种:
方式1,针对P个权重导出模式中的第i个权重导出模式,根据第i个权重导出模式,确定K个第二预测模式在模板上的权重,K个第二预测模式为Q个预测模式中的任意K个预测模式,i为从1到P的正整数;若K个预测模式中的任一预测模式在模板上的权重小于第一预设值时,则从P个权重导出模式中剔除第i个权重导出模式,得到S个权重导出模式。
在该方式1中,如果一种权重导出模式导出的模板权重,使得某一个预测模式在模板上的影响很小,或者在模板上没有影响,那么就不使用这个权重导出模式。例如,图4(正方形的块)中的权重导出模式52,该权重导出模式,使得第二个预测模式在模板上的权重较小,再例如权重导出模式54,使得第二个预测模式在模板上的权重为0,即可以认为在权重导出模式54下,第二个预测模式在模板上没有影响,模板的预测值全部由第一个预测模式确定。这种情况下第二个预测模式是什么都没有影响,对于这样的权重导出模式则需要从P个权重导出模式中剔除。
需要说明的是,不同形状的块的同一个权重导出模式可能使得两个预测模式的影响也不相同。由于当前块可能是正方形,也可能是长方形,可能长度比宽度大也可能宽度比长度大,而且比例也有1:2,1:4等可能。图16A和图16B示出了GPM在32x64块和64x32块的权重导出模式,可以看到不同形状下同一个权重导出模式的分界线与块边界的交点并不一样。因为块形状变了但是分界线的角度并不根据块形状变化而变化。如图16A所示,索引为52的权重导出模式,在32x64的块中,将索引为52的权重导出模式的分界面向当前块的模板区域延时时,与模板区域相交,使得第二个预测模式在模板中的权重不小于预设值,即说明第二个预测模式在模板中有影响。但是,如图16B所示,同样索引为52的权重导出模式,在64x32的块中,将索引为52的权重导出模式的分界面向当前块的模板区域延时时,与模板区域不相交,使得第二个预测模式在模板中的权重为0,即说明第二个预测模式在模板中没有有影响。
在上述方式1中,将P个权重导出模式中,使得K个预测模式中的任意一个预测模式在模板上的权重小于第一预设值的权重导出模式剔除,得到S个权重导出模式。
本申请实施例对上述第一预设值的具体取值不做限制,例如为大于或等于0的较小值。
方式2,针对P个权重导出模式中的第i个权重导出模式,确定使用第i个权重导出模式对模板进行预测时的代价,i为从1到P的正整数;根据第i个权重导出模式对应的代价,从P个权重导出模式中选出S个权重导出模式。
在该方式2中,通过计算P个权重导出模式中每个权重导出模式对应的代价,从P个权重导出模式中选出S个权重导出模式。
本申请实施例中,将权重导出模式和K个预测模式作为一个组合,进行代价的计算,这样,为了计算方便,在给定K个预测模式的基础上,对P个权重导出模式的代价进行计算,即将P个权重导出模式分别与设定的K个预测模式进行组合,得到P个组合,计算这P个组合中每个组合对应的代价,进而得到P个权重导出模式的代价。
举例说明,假设给定的K个预测模式为预测模式1和预测模式2,对于P个权重导出模式中的第i个权重导出模式,第i个权重导出模式与预测模式1和预测模式2组成一个组合,记为组合i。使用组合i对当前块的模板进行预测,得到该组合i下模板的预测值,根据组合i下模板的预测值与模板的重建值,确定该组合i对应的预测失真代价,将该组合i对应的预测失真代价,确定为第i个权重导出模式对应的代价。这样可以确定出P个权重导出模式中任意一个权重导出模式对应的代价。
根据上述方法,确定出P个权重导出模式中第i个权重导出模式对应的代价后,根据第i个权重导出模式对应的代价从P个权重导出模式中选出S个权重导出模式。
在该方式2中,解码端根据第i个权重导出模式对应的代价,从P个权重导出模式中选出S个权重导出模式包括如下方式:
第1种方式,若第i个权重导出模式对应的代价小于第二预设值,则从P个权重导出模式中选出与第i个权重导出模式相似的权重导出模式;根据第i个权重导出模式,以及第i个权重导出模式的相似权重导出模式,确定S个权重导出模式。其中,第i个权重导出模式的相似权重导出模式可以理解为预测结果与第i个权重导出模式的预测结果 相似的权重导出模式,例如第i个权重导出模式的相似权重导出模式包括划分角度与该第i个权重导出模式的划分角度相近的权重导出模式,和/或偏移量与该第i个权重导出模式的偏移量相近的权重导出模式,其中权重导出模式的偏移量也可以理解为该权重导出模式的分界线在当前块的边上的截距。
示例性的,上述划分角度相近可以包括划分角度相同且偏移量不同,例如图4中权重导出模式11和权重导出模式13,还可以包括划分角度相同且偏移量相似,例如图4中权重导出模式11和权重导出模式12,还可以包括划分角度相似且偏移量不同,例如图4中权重导出模式9和权重导出模式11,还可以包括划分角度相似且偏移量相似等,例如图4中权重导出模式9和权重导出模式12。
示例性的,上述偏移量相近可以包括偏移量相近且划分角度相同,例如图4中权重导出模式29和权重导出模式30,还包括偏移量相同或相近且划分角度相似等,例如图4中权重导出模式2和权重导出模式38。
在一些实施例中,第i个权重导出模式的相似权重导出模式可以理解为索引与该第i个权重导出模式的索引相近的权重导出模式。
在该第1种方式中,若第i个权重导出模式对应的代价小于第二预设值,则说明使用该第i个权重导出模式对当前块进行预测时,可能会达到较优的预测效果,此时,将该第i个权重导出模式从P个权重导出模式中选出,用于构造后续的R个第二组合。另外,由于与第i个权重导出模式相似的权重导出模式,具有与该第i个权重导出模式相似的特性,因此,从P个权重导出模式中选出第i个权重导出模式的相似权重导出模式,用于构造后续的R个第二组合。接着,从P个权重导出模式所剩余的权重导出模式中,选择一个权重导出模式作为新的第i个权重导出模式,重复上述步骤,进而得到S个权重导出模式。
本申请实施例对上述第二预设值的大小不做限制,具体根据实际需要进行确定。
在一些实施例中,解码端还可以根据下面的第2种方式,从P个权重导出模式中选出S个权重导出模式。
第2种方式,若第i个权重导出模式对应的代价大于第三预设值,则从P个权重导出模式中剔除掉第i个权重导出模式,以及第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据剔除后的至少一个权重导出模式,确定S个权重导出模式。
在该第2种方式中,若第i个权重导出模式对应的代价小于第三预设值,则说明使用该第i个权重导出模式对当前块进行预测时,可能无法达到较优的预测效果,此时,将该第i个权重导出模式从P个权重导出模式中剔除掉。另外,由于与第i个权重导出模式相似的权重导出模式,具有与该第i个权重导出模式相似的特性,因此,将第i个权重导出模式的相似权重导出模式也从P个权重导出模式中剔除掉,得到剔除后的权重导出模式集合。接着,在剔除后的权重导出模式集合中,选择一个权重导出模式作为新的第i个权重导出模式,重复上述步骤,将最终得到权重导出模式集合所包括的权重导出模式,确定为S个权重导出模式。
本申请实施例对上述第三预设值的大小不做限制,具体根据实际需要进行确定,第三预设值大于上述第二预设值。
根据上述步骤,解码端从P个权重导出模式中筛选出S个权重导出模式后,执行如下S102-A11-22的步骤。
S102-A11-22、从Q个预测模式中选出T个预测模式,T为小于或等于Q的正整数。
本申请实施例对从Q个预测模式中选出T个预测模式的方式不做限制。
在一些实施例中,从Q个预测模式中选出预设的T个预测模式。
在一些实施例中,针对Q个预测模式中的第i个预测模式,解码端确定使用第i个预测模式对模板进行预测时的代价,i为从1到Q的正整数;根据第i个预测模式对应的代价,从Q个预测模式中选出T个预测模式。
本申请实施例中,将权重导出模式和K个预测模式作为一个组合,进行代价的计算,这样,为了计算方便,在给定权重导出模式和其他K-1个预测模式的基础上,对Q个权重导出模式的代价进行计算,即将Q个预测模式分别与设定的权重导出模式和K-1个预测模式进行组合,得到Q个组合,计算这Q个组合中每个组合对应的代价,进而得到Q个预测模式的代价。
举例说明,假设给定的K-1个预测模式为预测模式1,给定的权重导出模式为权重导出模式1,对于Q个预测模式中的第i个预测模式,权重导出模式1与第i个预测模式和预测模式1组成一个组合,记为组合i。使用组合i对当前块的模板进行预测,得到该组合i下模板的预测值,根据组合i下模板的预测值与模板的重建值,确定该组合i对应的预测失真代价,将该组合i对应的预测失真代价,确定为第i个预测模式对应的代价。这样可以确定出Q个预测模式中任意一个预测模式对应的代价。
根据上述方法,确定出Q个预测模式中第i个预测模式对应的代价后,根据第i个预测模式对应的代价从Q个预测模式中选出T个预测模式。
其中,解码端根据第i个预测模式对应的代价从Q个预测模式中选出T个预测模式包括如下方式:
第一种方式,若第i个预测模式对应的代价小于第四预设值,则从Q个预测模式中选出与第i个预测模式相似的预测模式;根据第i个预测模式,以及第i个预测模式的相似预测模式,确定T个预测模式。其中,与第i个预测模式相似的预测模式可以理解为预测结果与第i个预测模式的预测接收相似(或相近)的预测模式,例如预测方向(或角度)与第i个预测模式的预测方向(或角度)相近的预测模式,或者预测模式索引与第i个预测模式的索引相近的预测模式,例如索引比第i个预测模式的索引大1、2等的预测模式,或者索引比第i个预测模式的索引小1、2等的预测模式。
在该第一种方式中,若第i个预测模式对应的代价小于第四预设值,则说明使用该第i个预测模式对当前块进行预测时,可能会达到较优的预测效果,此时,将该第i个预测模式从Q个预测模式中选出,用于构造后续的R个第二组合。另外,由于与第i个预测模式相似的预测模式,具有与该第i个预测模式相似的特性,因此,从Q个预测模式模式中选出第i个预测模式的相似预测模式,用于构造后续的R个第二组合。接着,从Q个预测模式所剩余的预测模式中,选择一个预测模式作为新的第i个预测模式,重复上述步骤,进而得到T个预测模式。
本申请实施例对上述第四预设值的大小不做限制,具体根据实际需要进行确定。
第二种方式,若第i个预测模式对应的代价大于第五预设值,则从Q个预测模式中剔除掉第i个预测模式,以及 第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据剔除后的至少一个预测模式,确定T个预测模式。
在该第二种方式中,若第i个预测模式对应的代价大于第五预设值,则说明使用该第i个预测模式对当前块进行预测时,可能无法达到较优的预测效果,此时,将该第i个预测模式从Q个预测模式中剔除掉。另外,由于与第i个预测模式相似的预测模式,具有与该第i个预测模式相似的特性,因此,将第i个预测模式的相似预测模式也从Q个预测模式中剔除掉,得到剔除后的预测模式集合。接着,在剔除后的预测模式集合中,选择一个预测模式作为新的第i个预测模式,重复上述步骤,将最终得到预测模式集合所包括的预测模式,确定为T个预测模式。
本申请实施例对上述第五预设值的大小不做限制,具体根据实际需要进行确定,第五预设值大于上述第四预设值。
根据上述步骤,从P个权重导出模式中选出S个权重导出模式,从Q个预测模式中选出T个预测模式,接着,执行如下S102-A11-23。
S102-A11-23、根据S个权重导出模式和T个预测模式,组成R个第二组合。
具体的,从S个权重导出模式中选出一个权重导出模式,从T个预测模式中选出K个预测模式,这一个权重导出模式和K个预测模式组成一个第二组合,重复执行该步骤,可以得到R个第二组合。
由上述可知,一个第二组合包括一个权重导出模式和K个预测模式,这样在筛选预测模式时,可以限制一个组合中的K个要素固定时,另外一个要素的可能选择,例如K=2时,可以限制在与其中2个要素组合使用的情况下,另外一个要素的可能选择。
下面以权重导出模式和一个预测模式固定时,另外一个预测模式的筛选过程为例,对上述S102-A11-2的一种实现过程进行介绍。
在一些实施例中,上述S102-A11-2包括:针对P个权重导出模式中的第i个权重导出模式,确定使用第i个权重导出模式与Q个预测模式中的第j个预测模式对模板进行预测时的代价;若第i个权重导出模式与第j个预测模式组合对应的代价大于第六预设值,则从Q个预测模式中剔除掉第j个预测模式,以及第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据第i个权重导出模式和剔除后的至少一个预测模式,构建R个第二组合。
在该实施例中,在权重导出模式和一个预测模式固定时,另外一个预测模式进行筛选。例如,某一权重导出模式下,某一个帧内预测模式作为第一预测模式不能得到比较小的代价,那么就不再尝试该权重导出模式下,与该帧内预测模式相似的帧内预测模式最为第一预测模式的情况。
具体的,针对P个权重导出模式中的第i个权重导出模式,假设K=2,即该组合中包括第i个权重导出模式、第一个预测模式和第二个预测模式。假设第二个预测模式设定为预测模式1,该预测模式1可以是Q个预测模式中的一个预测模式,也可以是Q个预测模式外的其他预测模式。从Q个预测模式中确定第一个预测模式的可能的选择,具体是,将Q个预测模式中的第j个预测模式作为第一个预测模式,此时,确定第i个权重导出模式、第j个预测模式和预测模式1组成的组合j对模板进行预测时,模板的预测值,并根据该预测值,确定出组合j对应的代价,将组合j对应的代价确定为第j个预测模式对应的代价。接着,判断该第j个预测模式对应的代价是否大于第六预设值,若该第j个预测模式对应的代价大于第六预设值,则说明使用该第j个预测模式与第i个权重导出模式和预测模式1组成的组合,无法实现模板的准确预测,此时,从Q个预测模式中剔除掉第j个预测模式。由于与第j个预测模式相似的预测模式,具有与该第j个预测模式相似的特性,因此,从Q个预测模式模式中提出掉第j个预测模式的相似预测模式,得到剔除后的预测模式集合。在剔除后的预测模式集合中,从新选择一个预测模式作为新的第j个预测模式,重复执行上述步骤,得到第i个权重导出模式对应的最终剔除后的预测模式集合。
根据上述步骤,可以确定出P个权重导出模式中,每个权重导出模式对应的最终剔除后的预测模式集合,这样根据P个权重导出模式与其各自对应的最终剔除后的预测模式集合,构建R个第二组合。
需要说明的是,上述实施例,示出了以组合的形式对预测模式进行筛选的方式,可选的,还可以通过组合的形式,对权重导出模式和预测模式中的任意一个进行筛选,最终构建出R个第二组合。
解码端根据上述各方法,确定出R个第二组合后,对于R个第二组合中的任一第二组合,使用第二组合中的权重导出模式和K个预测模式,对模板进行预测,得到第二组合对应的模板预测值。
下面对使用任意一个第二组合对当前块的模板进行预测,得到模板的预测值的过程进行介绍。
首先,使用该第二组合所包括的权重导出模式,确定模板的权重。
目前,如上述图13所示,当前块的模板为当前块的上方已编码区域,或者为当前块左侧已编码区域,或者为当前块的左侧已编码和上方已编码区域。
在一些实施例中,可以直接将权重矩阵向模板区域延伸,例如向左向上延伸,将权重矩阵覆盖到模板上面,从而确定模板的权重。例如图17所示,可以选择把当前块左上侧的区域的小矩形区域加入到模板中,将模板和当前块拼起来构成一个矩形。当然也可以只使用左侧部分和上方部分作为模板。如图17所示,这里以加入左上侧的区域举例,左侧、左上侧和上侧的倒L形框中的区域为模板区域,右下方的矩形区域为当前块,那么向左上方扩展出来的权重矩阵就变成了模板的权重矩阵。
在一些实施例中,将根据权重导出模式导出模板权重与预测值的权重的导出过程合并,例如同时导出模板权重和预测值的权重。其中预测值的权重可以理解为预测值对应的权重,例如使用第一个预测模式得到第一预测值,使用第二个预测模式得到第二预测值,根据权重导出模式确定第一预测值的第一权重,根据权重导出模式确定第二预测值的第二权重,将第一预测值与第一权重的乘积,和第二预测值与第二权重的乘积的和值,确定为当前块的预测值。
本申请为了与模板权重区分,将上的第一权重和第二权重称为预测值的权重。
在一些实施例中,根据权重导出模式确定模板权重包括如下步骤:
步骤1、根据权重导出模式,确定角度索引和距离索引;
步骤2、根据角度索引、距离索引和模板的大小,确定模板权重。
本申请可以采用与导出预测值的权重相同的方式,导出模板权重。例如,首先根据权重导出模式,确定角度索引和距离索引,其中角度索引可以理解为权重导出模式导出的各权重的分界线角度索引。示例性的,可以根据上述表2,确定出权重导出模式对应的角度索引和距离索引,例如权重导出模式为27,则对应的角度索引为12,距离索引为3。接着,根据角度索引、距离索引和模板的大小,确定出模板权重。
上述步骤2中根据角度索引、距离索引和模板的大小,确定模板权重的方式包括但不限于如下几种方式:
方式一,根据角度索引、距离索引和模板的大小,直接确定模板权重。此时,上述步骤2包括如下步骤21至步骤23的步骤:
步骤21、根据角度索引、距离索引和模板的大小,确定模板中像素点的第一参数;
步骤22、根据模板中像素点的第一参数,确定模板中像素点的权重;
步骤23、根据模板中像素点的权重,确定模板权重。
本实现方式中,根据角度索引、距离索引、模板的大小和当前块的大小,确定模板中像素点的权重,进而将模板中每个点的权重组成的权重矩阵,确定为模板权重。
本申请的第一参数用于确定权重。在一些实施例中,第一参数也称为权重索引。
在一种可能的实现方式中,可以根据如下方式确定出偏移量和第一参数:
模板权重导出过程的输入有:如图17所示,当前块的宽度nCbW,当前块的高度nCbH;左侧模板的宽度nTmW,上侧模板的高度nTmH;GPM的“划分”角度索引变量angleId;GPM的距离索引变量distanceIdx;分量索引变量cIdx,示例性的,本申请以亮度分量为例,因此cIdx为0,表示亮度分量。
其中,变量nW,nH,shift1,offset1,displacementX,displacementY,partFlip还有shiftHor按如下方法导出:
nW=(cIdx==0)?nCbW:nCbW*SubWidthC
nH=(cIdx==0)?nCbH:nCbH*SubHeightC
shift1=Max(5,17-BitDepth)其中BitDepth是编解码的比特深度
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
其中,偏移量offsetX and offsetY按如下方法导出:
–如果shiftHor的值为0:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3))
–否则(即shiftHor的值为1):
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1
模板权重矩阵wTemplateValue[x][y](其中x=-nTmW..nCbW–1,y=-nTmH..nCbH-1,去除x,y同时大于等于0的情况)注意这个例子里面以当前块的左上角坐标为(0,0)按如下方法导出:
–变量xL和yL按如下方法导出:
xL=(cIdx==0)?x:x*SubWidthC
yL=(cIdx==0)?y:y*SubHeightC
其中disLut按上述表3确定
其中,第一参数weightIdx按如下方法导出:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
根据上述方法,确定出第一参数weightIdx后,根据weightIdx确定出模板中点(x,y)处的权重。
本申请中,上述步骤22中根据模板中像素点的第一参数,确定模板中像素点的权重的方式包括的不限于如下几种:
方式1,根据模板中像素点的第一参数,确定模板中像素点的第二参数;根据模板中像素点的第二参数,确定模板中像素点的权重。
其中第二参数也用于确定权重。在一些实施例中,上述第二参数也称为第一分量下的权重索引,该第一分量可以为亮度分量、色度分量等。
例如,根据公式,确定出模板中像素点的权重:
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wTemplateValue[x][y]=Clip3(0,8,(weightIdxL+4)>>3)
其中,wTemplateValue[x][y]为模板中点(x,y)的权重,weightIdxL为模板中点(x,y)的第二参数,也称为在第一分量(例如亮度分量)下的权重索引,wTemplateValue[x][y]为模板中点(x,y)的权重,partFlip为中间变量,根据角度索引angleIdx确定,例如上述所述:partFlip=(angleIdx>=13&&angleIdx<=27)?0:1,也就是说,partFlip的值为1或0,当partFlip为0时,weightIdxL为32–weightIdx,当partFlip为1时,weightIdxL为32+weightIdx,需要说明的是,这里的32只是一种示例,本申请不局限于此。
方式2,根据模板中像素点的第一参数、第一阈值和第二阈值,确定模板中像素点的权重。
为了降低模板权重的计算复杂度,在方式2中将模板中像素点的权重限定为第一阈值或第二阈值,也就是说,模板中像素点的权重要么为第一阈值,要么是第二阈值,进而降低模板权重的计算复杂度。
本申请对第一阈值和第二阈值的具体取值不做限制。
可选的,第一阈值为1。
可选的,第二阈值为0。
在一种示例,可以通过如下公式确定出模板中像素点的权重:
wTemplateValue[x][y]=(partFlip?weightIdx:-weightIdx)>0?1:0
其中,wTemplateValue[x][y]为模板中点(x,y)的权重,上述“1:0”中的1为第一阈值,0为第二阈值。
在上述方式一中,通过权重导出模式确定出模板中每个点的权重,模板中每个点的权重组成的权重矩阵作为模板权重。
方式二,根据权重导出模式确定出当前块和模板的权重,也就是说,在该方式二中,将当前块和模板组成的合并区域作为一个整体,根据权重导出模式导出合并区域中像素点的权重。基于此上述步骤2包括如下步骤2-1和步骤2-2步骤:
步骤2-1、根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重;
步骤2-2、根据模板的大小和合并区域中像素点的权重,确定模板权重。
在该方式二中,将当前块和模板作为一个整体,根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重,进而根据模板的大小,将合并区域中模板对应的权重确定为模板权重,例如图17所示,将合并区域中L型模板区域对应的权重确定为模板权重。
该方式二中,在一次权重确定过程中,不仅确定出模板权重,并且确定出预测值的权重,即合并区域对应的权重中除去模板权重后,剩余的为预测值的权重,进而可以根据预测值的权重执行后续的预测过程,无需重新确定预测值的权重,进而减少了预测步骤,提升了预测效率。
本申请对上述根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重的具体实现方式不做限制。
在一些实施例中,上述步骤2-1中确定合并区域中像素点的权重包括如下步骤2-11至步骤2-12的步骤:
步骤2-11、根据角度索引、距离索引和合并区域的大小,确定合并区域中像素点的第一参数;
步骤2-12、根据合并区域中像素点的第一参数,确定合并区域中像素点的权重。
本实现方式中,根据角度索引、距离索引、合并区域的大小,确定合并区域中像素点的权重,合并区域中每个点的权重组成的权重矩阵。
在一种可能的实现方式中,可以根据如下方式确定出偏移量和第一参数:
合并区域权重导出过程的输入有:如图17所示,当前块的宽度nCbW,当前块的高度nCbH;左侧模板的宽度nTmW,上侧模板的高度nTmH;GPM的“划分”角度索引变量angleId;GPM的距离索引变量distanceIdx;分量索引变量cIdx,示例性的,本申请以亮度分量为例,因此cIdx为0,表示亮度分量。
变量nW,nH,shift1,offset1,displacementX,displacementY,partFlip还有shiftHor按如下方法导出:
nW=(cIdx==0)?nCbW:nCbW*SubWidthC
nH=(cIdx==0)?nCbH:nCbH*SubHeightC
shift1=Max(5,17-BitDepth)其中BitDepth是编解码的比特深度
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
其中,偏移量offsetX and offsetY按如下方法导出:
–如果shiftHor的值为0:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3))
–否则(即shiftHor的值为1):
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1
合并区域中像素点的权重矩阵wValueMatrix[x][y](其中x=-nTmW..nCbW–1,y=-nTmH..nCbH-1)注意这个例子里面以当前块的左上角坐标为(0,0)按如下方法导出:
–变量xL和yL按如下方法导出:
xL=(cIdx==0)?x:x*SubWidthC
yL=(cIdx==0)?y:y*SubHeightC
其中disLut按表3确定。
其中,第一参数weightIdx按如下方法导出:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
根据上述方法,确定出第一参数weightIdx后,根据weightIdx确定出合并区域中点(x,y)处的权重。
本申请中,上述步骤2-12中根据合并区域中像素点的第一参数,确定合并区域中像素点的权重的方式包括的不限于如下几种:
方式1,根据合并区域中像素点的第一参数,确定合并区域中像素点的第二参数;根据合并区域中像素点的第二参数,确定合并区域中像素点的权重。
例如,根据公式,确定出合并区域中像素点的权重:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValueMatrix[x][y]=Clip3(0,8,(weightIdxL+4)>>3)
其中,wValueMatrix[x][y]为合并区域中点(x,y)的权重,weightIdxL为合并区域中点(x,y)的第二参数,wTemplateValue[x][y]为合并区域中点(x,y)的权重。
方式2,根据合并区域中像素点的第一参数、第一阈值和第二阈值,确定合并区域中像素点的权重。
示例性的,合并区域中像素点的权重为第一阈值或为第二阈值。
为了降低合并区域权重的计算复杂度,在方式2中将合并区域中像素点的权重限定为第一阈值或第二阈值,也就是说,合并区域中像素点的权重要么为第一阈值,要么是第二阈值,进而降低合并区域权重的计算复杂度。
本申请对第一阈值和第二阈值的具体取值不做限制。
可选的,第一阈值为1。
可选的,第二阈值为0。
在一种示例,可以通过如下公式确定出合并区域中像素点的权重:
wTemplateValue[x][y]=(partFlip?weightIdx:-weightIdx)>0?1:0
其中,wValueMatrix[x][y]为合并区域中点(x,y)的权重,上述“1:0”中的1为第一阈值,0为第二阈值。
在上述方式二中,通过权重导出模式确定出当前块和模板组成的合并区域中每个点的权重,进而根据模板的大小,将合并区域中模板对应的权重确定为模板权重,且该方式二中,同时确定出预测值的权重,无需执行后续的预测值的权重的确定步骤,进行降低了预测步骤,提升了预测效率。
根据上述方法,确定出该第二组合所包括权重导出模式对应的模板权重后,使用该第二组合中的K个预测模式对模板进行预测,得到K个预测值,根据模板权重对K个预测值进行加权,得到模板的预测值。
其中,模板的预测值可以理解为由模板中像素点的预测值组成的矩阵。
在一些实施例中,上述预测值也称为预测样本。
接着,根据模板的预测值和重建值,确定该第二组合的代价。
上述确定该第二组合的代价的方式包括但不限于如下几种:
方式一,采用矩阵的方式确定该第二组合的代价。具体是,根据模板的预测值和重建值,确定一损失,将该损失记为第一损失,由于上述模板的预测值和重建值为矩阵,因此得到第一损失也为矩阵,例如将模板的预测值和重建值的差值的绝对值确定为第一损失,将该第一损失确定为该第二组合的代价。
方式二,采用逐点计算的方式,确定出第二组合的代价。
具体的,针对模板中的第i个像素点,确定该第二组合中的K个预测模式中每个预测模式在第i个像素点处的预测时,确定第i个像素点在模板权重中对应的模板权重,根据第i像素点的模板权重,以及第i个像素点的K个预测值,得到该第i个像素点的预测值。根据该第i个像素点的预测值与重建值,得到该第二组合在第i个像素点处的代价。根据该方法,可以确定出该第二组合在模板中的每一个像素点处的预测失真代价,最后,该第二组合在模板中的每一个像素点处的预测失真代价的累加和,确定为该第二组合的代价。
根据上述方法,可以确定出R个第二组合中每个第二组合的代价。
接着,根据R个第二组合中每个第二组合的代价,构建候选组合列表。
例如,根据第二组合的代价大小,按照从小到大的顺序,对R个第二组合进行排序,将排序后的R个第二组合确定为候选组合列表。
再例如,根据第二组合的代价大小,从R个第二组合中选出代价最小的N个第二组合,构成候选组合列表。
可选的,N为8或16或32等。
根据上述方法,确定出候选组合列表,该候选组合列表中各候选组合按照代价的大小从小到大进行排序,示例性的,该候选组合列表如上述表6所示。
这样解码端根据第一索引,在表6所示的候选组合列表中查询第一索引对应的候选组合,且将该第一索引对应的候选组合确定为第一组合,即将该候选组合所包括的权重导出模式确定为第一权重导出模式,将该候选组合所包括的K个预测模式,确定为K个第一预测模式。接着,解码端执行如下S103。
S103、根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。
具体的,根据第一权重导出模式确定预测值的权重,根据K个预测模式确定K个预测值,根据预测值的权重对K个预测值进行加权,将加权结果确定为当前块的预测值。
本申请中根据权重导出模式,确定K个预测值分别对应的权重的方式包括但不限于如下几种:
方式一,若在上述确定模板权重时,通过权重导出模式确定出模板权重,但未确定出当前块中像素点对应的权重,在该情况下,则上述S103包括如下步骤:
S103-A1、根据第一权重导出模式,确定预测值的权重;
S103-A2、根据K个第一预测模式,确定K个预测值;
S103-A3、根据K个预测值和预测值的权重,确定当前块的预测值。
上述S103-A1和S103-A2在执行顺序上没有先后顺序,即S103-A1可以在S103-A2之前执行,或者在S103-A2之后执行,或者与S103-A2并行执行。
需要说明的是,在本申请中,第一权重导出模式用于对当前块使用的预测值的权重进行确定。对于一个给定长度和宽度的块,每一种权重导出模式可以导出一个预测值的权重矩阵;对于同样大小的块,不同权重导出模式导出的预测值的权重矩阵可以不同。这样,解码端根据第一权重导出模式,确定出的预测值的权重为一个权重矩阵,该权重矩阵中包括当前块中每个像素点对应的预测权重。
在一些实施例中,对当前块进行预测时,使用K个第一预测模式中的每个预测模式对当前块中的某一个像素点A进行预测,得到K个第一预测模式关于像素点A的K个预测值,根据第一权重导出模式确定像素点A的预测值的权重,例如,根据第一权重导出模式确定一个权重矩阵,该权重矩阵中包括当前块中每个像素点对应的权重,这样,可以在该权重矩阵中,确定出像素点A的预测值的权重。接着,使用像素点A的预测值的权重对这K个预测值进行加权,得到像素点A的预测值。对当前块中的每一个像素点执行上述步骤,可以得到当前块中每个像素点的预测值,当前块中每个像素点的预测值构成当前块的预测值。以K=2为例,使用第一个预测模式对当前块中的某一个像素点A进行预测,得到该像素点A的第一预测值,使用第二个预测模式对该像素点A进行预测,得到该像素点A的第二预测值,根据像素点A对应的预测值权重,对第一预测值和第二预测值进行加权,得到像素点A的预测值。
示例性的,在本申请中,AVS3的AWP有56种权重导出模式,VVC的GPM有64种权重导出模式。
可以理解的是,在本申请的实施例中,解码端在基于K个第一预测模式以及预测值的权重,确定预测值时,可以先根据K个第一预测模式确定K个预测值;然后利用预测值的权重对K个预测值进行加权平均计算,最终便可以获得当前块的预测值。
在该方式一中,可以理解根据第一权重导出模式确定模板权重和预测值的权重是两个相互独立的过程,互不干涉。
在一些实施例中,本申请还可以采用下面方式二,确定出预测值的权重。
方式二,若在上述确定模板权重时,通过第一权重导出模式确定出模板区域和当前块构成的合并区域中像素点的权重,此时,S103包括如下步骤:
S103-B1、根据K个第一预测模式,确定K个预测值;
S103-B2、根据合并区域中像素点的权重,确定预测值的权重;
S103-B3、根据K个预测值和预测值的权重,确定当前块的预测值。
上述S103-B1和S103-B2在执行顺序上没有先后顺序,即S103-B1可以在S103-B2之前执行,或者在S103-B2之后执行,或者与S103-B2并行执行。
在该方式二中,在权重导出时,根据第一权重导出模式导出合并区域中像素点的权重,而该合并区域包括当前块和当前块的模板区域,进而将合并区域中当前块对应的权重确定为预测值的权重,将合并区域中模板区域对应的权重确定为模板权重。也就是说,在该方式二中,将模板区域和当前块作为一个整体区域,进而一步导出模板权重和预测值的权重,进而减少了权重导出的步骤,提高预测效果。
在一些实施例中,上述预测过程是以像素点为单位进行的,对应的上述权重也为像素点对应的权重。此时,对当前块进行预测时,使用K个第一预测模式中的每个预测模式对当前块中的某一个像素点A进行预测,得到K个第一预测模式关于像素点A的K个预测值,根据第一权重导出模式确定像素点A的预测值的权重,具体是,根据第一权重导出模式确定合并区域对应的权重矩阵,该权重矩阵中包括当前块中每个像素点对应的权重,这样,可以在该权重矩阵中,确定出像素点A的预测值的权重。接着,使用像素点A的预测值的权重对这K个预测值进行加权,得到像素点A的预测值。对当前块中的每一个像素点执行上述步骤,可以得到当前块中每个像素点的预测值,当前块中每个像素点的预测值构成当前块的预测值。以K=2为例,使用第一个预测模式对当前块中的某一个像素点A进行预测,得到该像素点A的第一预测值,使用第二个预测模式对该像素点A进行预测,得到该像素点A的第二预测值,根据像素点A对应的预测值权重,对第一预测值和第二预测值进行加权,得到像素点A的预测值。
在一种示例中,以K=2为例,若第一个预测模式和第二个预测模式均为帧内预测模式时,采用第一帧内预测模式进行预测,得到第一预测值,采用第二帧内预测模式进行预测,得到第二预测值,根据预测值的权重对第一预测值和第二预测值进行加权,得到当前块的预测值。例如,采用第一帧内预测模式对像素点A进行预测,得到像素点A的第一预测值,采用第二帧内预测模式对像素点A进行预测,得到像素点A的第二预测值,根据像素点A对应的预测值的权重,对第一预测值和第二预测值进行加权,得到像素点A的预测值。
在一些实施例中,若K个第一预测模式中的第j个预测模式为帧间预测模式,则上述S103根据所述K个第一预测模式以及第一权重导出模式,确定当前块的预测值包括如下步骤:
S103-C1、根据第j个预测模式,确定运动信息;
S103-C2、根据运动信息,确定第j个预测值;
S103-C3、根据K个第一预测模式中除第j个预测模式外的其他预测模式,确定K-1个预测值;
S103-C4、根据第一权重导出模式,确定K个预测值的权重;
S103-C5、根据第j个预测值、K-1个预测值和预测值的权重,确定当前块的预测值。
以K=2为例,若第一个预测模式为帧内预测模式,第二个预测模式为帧间预测模式时,采用帧内预测模式进行预测,得到第一预测值,采用帧间预测模式进行预测,得到第二预测值,根据预测值的权重对第一预测值和第二预测值进行加权,得到当前块的预测值。在该示例中,采用帧内预测模式对当前块中每一个点进行预测,得到当前块中每一个点的预测值,当前块中每一个点的预测值,构成当前块的第一预测值。采用帧间预测模式,确定一运动信息,根据该运动信息确定当前块的最佳匹配块,将该最佳匹配块确定为当前块的第二预测值。针对当前块中每个像素点的预测值的权重,对当前块的第一预测值和第二预测值进行逐点加权运算,得到当前块的预测值。例如,对于当前块中的像素点A,根据像素点A的预测值的权重,将当前块的第一预测值中像素点A对应的第一预测值,与当前块的第二预测值中像素点A对应的第二预测值进行加权,得到像素点A的预测值。
在一些实施例中,若K大于2时,则可以根据第一权重导出模式确定K个第一预测模式中两个预测模式对应的预测值的权重,K个第一预测模式中的其他预测模式对应的预测值的权重可以为预设值。例如,K=3,第一个预测模式和第二个预测模式对应的预测值的第一权重根据权重导出模式导出,第三个预测模式对应的预测值的权重为预设值。在一些实施例中,若K个第一预测模式对应的总预测值的权重一定,例如为8,则可以根据预设权重比例,来确定K个第一预测模式各自对应的预测值的权重,假设第三个预测模式对应的预测值的权重占整个中预测值的权重的1/4,则可以确定第三个预测模式的预测值的权重为2,总预测值权重中的剩下3/4分配给第一个预测模式和第二个预测模式。示例性的,如果根据第一权重导出模式导出第一个预测模式对应的预测值的权重3,则确定第一个预测模式对应的预测值的权重为(3/4)*3,第二个预测模式对应的预测值的权重为第一个预测模式的预测值的权重为(3/4)*5。
根据上述方法,确定出当前块的预测值,同时,解码码流,得到当前块的量化系数,对当前块的量化系数进行反量化和反变换,得到当前块的残差值,将当前块的预测值和残差值进行相加,得到当前块的重建值。
由上述可知,本申请实施例的候选组合列表中各候选组合,按照代价从小到的顺序进行排序,其中代价小的候选组合被选中的概率大。基于此,为了进一步降低编码代价,则对于候选组合列表中排在前面一些位次的候选组合使用更短的码字进行编码,对于候选组合列表中排在后面一些位次的候选组合使用更长的码字进行编码,使得整体编码效率提升。
在一些实施例中,第一索引通过变长编码方式编入码流,例如,采用哥伦布编码方式进行编码。
在一些实施例中,若上述候选组合列表所包括的候选组合数量小于第四预设阈值时,则第一索引采用定长编码方式编入码流。即本申请实施例中,若候选组合列表所包括的候选组合数量较少时,各候选组合统一使用预设比特长度进行编码,本申请实施例对第四预设阈值的具体取值不做限制,例如第四预设阈值=16。
在一些实施例中,可以使用一个高层语法(high level syntax)控制本申请实施例提供的组合编码技术方案的开关,例如可以通过至少一个标志来指示当前块是否允许采用本申请实施例提供的组合编码技术方案,即是否允许使用第一组合进行解码。
在一种可能的实现方式中,设置的至少一个标志可以是不同级别的标志,用于指示对应级别是否允许采用本申请实施例提供的组合编码技术方案。
可选的,上述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
例如,上述至少一个标志包括序列级标志,该序列级标志用于指示当前序列是否允许采用本申请实施提供的组合编码技术方案。
示例性的,在参数集(sequence parameter set)中增加语法元素sps_cgpm_enabled_flag。其中cgpm可以认为是combined geometric partitioning mode的缩写。如果sps_cgpm_enabled_flag的值为1,表示当前序列允许使用本申请的技术方案,如果sps_cgpm_enabled_flag的值为0,表示当前序列不允许使用本申请的技术方案。
本申请实施例提供的技术方案如果使用在帧间模式中,因为帧间模式已经存在sps_gpm_enbled_flag,那么也可以由sps_gpm_enbled_flag来控制本方案。因为本方案也可以用在帧内模式中,帧内也可以和帧间一起使用sps_cgpm_enabled_flag或sps_gpm_enabled_flag,当然也可以为了更好的灵活性,对帧内模式和帧间模式使用不同的flag,比如设置一个sps_sgpm_enabled_flag。其中sgpm可以认为是spatial geometric partitioning mode的缩写。sps_sgpm_enabled_flag控制帧内模式是否允许使用本方案,而sps_cgpm_enabled_flag或sps_gpm_enabled_flag控制帧间模式是否允许使用本方案。
再例如,上述至少一个标志包括图像级标志,该图像级标志用于指示当前图像是否允许使用本申请的技术方案。
可选的,若至少一个标志包括图像级标志时,该图像级标志可以位于图像头(picture header)中。
再例如,上述至少一个标志包括片级标志,该片级标志用于指示当前片(slice)是否允许使用本申请的技术方案。
可选的,若至少一个标志包括片级标志时,该片级标志可以位于片头(slice header)中。
再例如,上述至少一个标志包括单元级标志,该单元级标志用于指示当前CTU是否允许使用本申请的技术方案。
再例如,上述至少一个标志包括块(CU)级标志,该块级标志用于指示当前块是否允许使用本申请的技术方案。
以帧内为例,假设块级标志为cu_sgpm_flag。如果cu_sgpm_flag的值为1,表示当前块允许使用本申请的技术方案,如果cu_sgpm_flag的值为0,表示当前块不允许使用本申请的技术方案。目前VVC中的GPM用在帧间的合并(merge)模式,它是通过推导得出来的,当然以后也可能直接用CU级的flag表示,这里不做限制。
这样,解码端首先解码码流,得到上述至少一个标志,根据这至少一个标志,判断当前块是否允许使用本申请的技术方案。若根据上述至少一个标志,确定当前块不允许使用本申请的技术方案时,则跳过本申请实施例的方法。若根据上述至少一个标志,确定当前块允许使用本申请的技术方案术,则执行本申请实施例的方法,即解码码流,得到第一索引。
本申请实施例提供的视频解码方法,通过解码码流,得到第一索引,该第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,K为大于1的正整数;根据该第一索引,确定第一组合所包括的第一权重导出模式和K个第一预测模式;根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。本申请将权重导出模式和K个预测模式作为一个组合,这样在码流中以组合的形式来指示当前块所使用的权重导出模式和K个预测模式,使得语法变得更简单,节省码字,且不需要各种情况的判断等,进而提升编码效率。
上文以解码端为例对本申请的预测方法进行介绍,下面以编码端为例进行说明。
图19为本申请实一施例提供的预测方法流程示意图,本申请实施例应用于图1和图2所示视频编码器。如图19所示,本申请实施例的方法包括:
S201、确定第一组合。
其中,第一组合包括第一权重导出模式和K个第一预测模式。
基于上述描述,一个权重导出模式和K个预测模式可以作为一个组合共同作用在当前块上,为了节省码字,降低编码代价,本申请实施例将当前块对应的权重导出模式和K个预测模式作为一个组合,即第一组合,使用第一索引对该第一组合进行指示,相比于对权重导出模式和K个预测模式分别进行指示,本申请实施例使用更少的码字,进而降低了编码代价。
具体的,编码端确定当前块对应的第一组合,该第一组合由一个权重导出模式和K个预测模式,为了便于描述,将第一组合所包括的权重导出模式记为第一权重导出模式,将第一组合所包括的K个预测模式确定为K个第一预测模式。编码端使用该第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值,例如,使用第一权重导出模式导出权重,使用K个预测模式分别对当前块进行预测得到K个预测值,根据导出的权重对这K个预测值进行加权运算,得到当前块的预测值。
在一些实施例中,编码端在确定第一组合之前,首先需要判断当前块是否使用K个不同的预测模式进行加权预测处理。若编码端确定当前块使用K个不同的预测模式进行加权预测处理时,则执行上述S201确定第一组合。若编码端确定当前块不使用K个不同的预测模式进行加权预测处理时,则跳过上述S201的步骤。
在一种可能的实现方式中,编码端可以通过确定当前块的预测模式参数,来确定当前块是否使用K个不同的预测模式进行加权预测处理。
可选的,在本申请的实施中,预测模式参数可以指示当前块是否可以使用GPM模式或AWP模式,即指示当前块是否可以使用K个不同的预测模式进行预测处理。
可以理解的是,在本申请的实施例中,可以将预测模式参数理解为一个表明是否使用了GPM模式或AWP模式标志位。具体地,编码器可以使用一个变量作为预测模式参数,从而可以通过对该变量的取值的设置来实现预测模式参数的设置。示例性的,在本申请中,如果当前块使用GPM模式或AWP模式,那么编码器可以将预测模式参数的取值设置为指示当前块使用GPM模式或AWP模式,具体地,编码器可以将变量的取值设置为1。示例性的,在本申请中,如果当前块不使用GPM模式或AWP模式,那么编码器可以将预测模式参数的取值设置为指示当前块不使用GPM模式或AWP模式,具体地,编码器可以将变量取值设置为0。进一步地,在本申请的实施例中,编码器在完成对预测模式参数的设置之后,便可以将预测模式参数写入码流中,传输至解码器,从而可以使解码器在解析码流之后获得预测模式参数。
在一些实施例中,如表5所示,本申请实施例还可以对当前块使用GPM模式或AWP模式进行条件限定,即在判断当前块在满足预设条件时,确定当前块使用K个预测模式进行加权预测,进而确定第一组合。
示例性的,在应用GPM模式或AWP模式时,可以对当前块的尺寸进行限制。
可以理解的是,由于本申请实施例提出的预测方法需要分别使用K个不同的预测模式生成K个预测值,再根据权重进行加权得到当前块的预测值,为了降低的复杂度,同时考虑压缩性能和复杂度的权衡,在本申请的实施例中,可以限制对一些大小的块不使用该GPM模式或AWP模式。因此,在本申请中,编码端可以先确定当前块的尺寸参数,然后根据尺寸参数确定当前块是否使用GPM模式或AWP模式。
在本申请的实施例中,当前块的尺寸参数可以包括当前块的高度和宽度,因此,编码器可以根据当前块的高度和宽度确定当前块是否使用GPM模式或AWP模式。
示例性的,在本申请中,若宽度大于第一阈值且高度大于第二阈值,则确定当前块使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的宽度大于(或大于等于)第一阈值,且块的高度大于(或大于等于)第二阈值的情况下使用GPM模式或AWP模式。其中,第一阈值和第二阈值的值可以是8,16,32等,第一阈值可以等于第二阈值。
示例性的,在本申请中,若宽度小于第三阈值且高度大于第四阈值,则确定当前块使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的宽度小于(或小于等于)第三阈值,且块的高度大于(或大于等于)第四阈值的情况下使用GPM模式或AWP模式。其中,第三阈值和第四阈值的值可以是8,16,32等,第三阈值可以等于第四阈值。
进一步地,在本申请的实施例中,还可以通过像素参数的限制来实现限制能够使用GPM模式或AWP模式的块的尺寸。
示例性的,在本申请中,编码器可以先确定当前块的像素参数,然后再根据像素参数和第五阈值进一步判断当前块是否可以使用GPM模式或AWP模式。可见,一种可能的限制是仅仅在块的像素数大于(或大于等于)第五阈值的情况下使用GPM模式或AWP模式。其中,第五阈值的值可以是8,16,32等。
也就是说,在本申请中,在当前块的尺寸参数满足大小要求的条件下,当前块才可以使用GPM模式或AWP模式。
示例性的,在本申请中,可以有一个帧级的标志来确定当前待编码帧是否使用本申请。如可以配置帧内帧(如I帧)使用本申请,帧间帧(如B帧、P帧)不使用本申请。或者可以配置帧内帧不使用本申请,帧间帧使用本申请。或者可以配置某些帧间帧使用本申请,某些帧间帧不使用本申请。帧间帧也可以使用帧内预测,因而帧间帧也有可能使用本申请。
在一些实施例中,还可以有一个帧级以下、CU级以上(如tile、slice、patch、LCU等)的标志来确定这一区域是否使用本申请的技术方案。
本申请实施例中,第一组合包括第一权重导出模式和K个第一预测模式。
其中,第一权重导出模式用于对当前块使用的权重进行确定。具体地,第一权重导出模式可以是导出权重的模式。对于一个给定长度和宽度的块,每一种权重导出模式可以导出一个权重矩阵;对于同样大小的块,不同权重导出模式导出的权重矩阵不同。
示例性的,在本申请中,AWP有56种权重导出模式,GPM有64种权重导出模式。
上述第一组合所包括的K个不同的第一预测模式包括如下几种示例:
示例1,上述K个不同的第一预测模式均为帧内预测模式,例如当前块是帧内编码的块,且不适用屏幕内容编码。
示例2,上述K个不同的第一预测模式均为帧间预测模式,例如当前块为帧间编码的块。
示例3,上述K个不同的第一预测模式中,至少一个为帧内预测模式,至少一个为帧间预测模式。
示例4,上述K个不同的第一预测模式中,至少一个为帧内预测模式,至少一个为非帧间和非帧内的预测模式,例如为块内复制IBC预测模式或调色板palette预测模式等。
示例5,上述K个不同的第一预测模式中,至少一个为帧间预测模式,至少一个为非帧间和非帧内的预测模式,例如为IBC预测模式或palette预测模式等。
示例6,上述K个不同的第一预测模式均不是帧内预测模式,也不是帧间预测模式,例如一个为IBC预测模式,一个为palette预测模式等。
需要说明的是,本申请实施例对第一组合所包括的K个不同的第一预测模式的具体类型不做限制。
本申请实施例中,编码端确定第一组合的方式包括但不限于如下几种:
方式1,第一组合为预设组合。
方式2,编码端确定一个列表,该列表中包括多个候选组合,因此将该列表也称为候选组合列表,从这个候选组合列表中确定第一组合。此时,上述S201包括如下步骤:
S201-A、确定候选组合列表;
S201-B、从候选组合列表中,确定出第一组合。
其中,上述候选组合列表中包括多个候选组合,多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式。
示例性的,候选组合列表如上述表6所示。
如表6所示,候选组合列表包括多个候选组合,这多个候选组合中任意两个候选组合不完全相同,即任意两个候选组合所包括的权重导出模式和K个预测模式中的至少一个模式不同。例如,候选组合1和候选组合2中的权重导出模式不同,或者候选组合1和候选组合2中的权重导出模式相同,K个预测模式中至少一个预测模式不同,或者,候选组合1和候选组合2中的权重导出模式不同,且K个预测模式中至少一个预测模式不同。
示例性的,上述表6中以候选组合在候选组合列表中的排序为索引,可选的,还可以以其他方式体现候选组合在候选组合列表中的索引,本申请实施例对此不作限制。
在该方式2中,编码端将候选组合列表中的一个候选组合确定为第一组合。
例如,编码端将候选组合列表中的第一个候选组合确定为第一组合。
在该方式2中,编码端和解码端可以分别确定相同的候选组合列表,例如编码端和解码端均确定一个包括N个候选组合的列表,每个候选组合包括1个权重导出模式和K个预测模式。而在码流中,编码端只需要写入最终选择的一个候选组合,例如第一组合,解码端解析编码端最终选择的第一组合,具体是解码端解码码流,得到第一索引,并通过第一索引在解码端所确定的候选组合列表中,确定出第一组合。
本申请实施例对编码端确定上述候选组合列表的具体方式不做限制。
在一些实施例中,上述候选组合列表为已有的,编码端在确定当前块可以使用K个预测模式进行加权预测时,获取该候选组合列表。
在一些实施例中,上述候选组合列表为编码端构建的。此时,在一些实施例中,编码端可以将构建的候选组合列表发送给解码端的。在一些实施例中,编码端将上述构建的候选组合列表上传至云端,解码端在解码码流,得到第一索引后,从云端读取该候选组合列表。
下面对对编码端构建候选组合列表的过程进行介绍。
本申请实施例对编码端构建候选组合列表的方式不做限制。
在一些实施例中,编码端通过如下S201-A1的步骤,构建候选组合列表:
S201-A1、基于当前块的模板,构建候选组合列表。
模板匹配是利用相邻像素之间的相关性,把当前块周边的一些区域作为模板。在当前块进行编解码时,按照编码顺序其左侧及上侧已经编码完成。在帧间预测时,在参考帧中寻找模板的最佳匹配位置从而确定当前块的运动信息或者说运动矢量。在帧内预测时,利用模板来确定当前块的帧内预测模式。
当前块的模板由当前块周围已重建区域组成,与当前块具有相关性,基于此本申请实施例基于当前块的模板来构建候选组合列表。
本申请对当前块的模板的具体形状不做限制。
在一些实施例中,模板包括当前块的上方已编码区域、左侧已编码区域和左上方已编码区域中的至少一个。
可选的,上方已编码区域的宽度与当前块的宽度相同,左侧已编码区域的高度与当前块的高度相同,左上方已编码区域的宽度与左侧已编码区域的宽度相同,左上方已编码区域的高度与上方已编码区域的高度相同。
例如,针对每个组合,使用该组合对当前块的模板进行预测,得到每个组合下该模板的预测值,根据每个组合下该模板的预测值,构建候选组合列表。
针对每一个组合,使用该组合对当前块的模板进行预测,得到每个组合下该模板的预测值,具体是使用该组合所包括的权重导出模式导出模板的权重,使用该组合所包括的K个预测模式分别对模板进行预测,得到模板的K个预测值,根据导出的模板的权重,对模板的K个预测值进行加权处理,得到该组合下模板的预测值。最后,根据每个组合下该模板的预测值,构建候选组合列表。
需要说明的是,上述根据权重导出模式导出的权重可以理解为导出模板中每一个像素点对应的权重,也可以理解为导出模板对应的权重矩阵。其中,基于权重确定模板的预测值时,可以是确定模板中每一个像素点对应的K个预测值,并根据每一个像素点对应的K个预测值和权重,确定出每个像素点对应的预测值,模板中每一个像素点对应的预测值构成模板的预测值。可选的,基于权重确定模板的预测值时,还可以是按照块来执行,例如,确定模板的预测值, 根据模板的权重矩阵对模板的K个预测值进行加权,得到模板的预测值。
在一些实施例中,S201-A1包括如下S201-A11至S201-A13的步骤:
S201-A11、确定R个第二组合,R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,R为大于1的正整数。
S201-A12、对于R个第二组合中的任一第二组合,使用第二组合中的权重导出模式和K个预测模式,对模板进行预测,得到第二组合对应的模板预测值。
S201-A13、根据R个第二组合中各第二组合对应的模板预测值,构建候选组合列表。
在该实施例中,编码端在构建候选组合列表时,首先确定R个第二组合,本申请对R个第二组合的具体数值不做限制,例如8、16、32等,R个第二组合中的每一个第二组合包括一权重导出模式和K个预测模式,且R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同。接着,对于R个第二组合中的每一个第二组合,使用该第二组合所包括的权重导出模式和K个预测模式对当前块的模板进行预测,得到该第二组合下该模板的预测值。最后,根据R个第二组合中每个第二组合对应的模板预测值,构建候选组合列表。
上述S201-A13中根据R个第二组合中各第二组合对应的模板预测值,构建候选组合列表的方式包括但不限于如下几种:
方式1,根据R个第二组合中每个第二组合对应的模板预测值的大小,构建候选组合列表。
例如,根据R个第二组合中每个第二组合对应的模板预测值的大小,对R个第二组合进行排序,将排序后的R个第二组合确定为候选组合列表,此时,候选组合列表中包括R个候选组合。
再例如,根据R个第二组合中每个第二组合对应的模板预测值的大小,对R个第二组合进行排序,从排序后的R个第二组合中,选出N个第二组合构成候选组合列表,此时候选组合列表中包括N个候选组合。
方式2,上述S201-A13包括如下步骤:
S201-A13-1、根据第二组合对应的模板预测值和模板的重建值,确定第二组合对应的代价;
S201-A13-2、根据R个第二组合中各第二组合对应的代价,构建候选组合列表。
由于当前块的模板为已重建区域,因此,编码端可以得到模板的重建值,这样对于R个第二组合中的每个第二组合,可以根据该第二组合下模板的预测值和模板的重建值,确定出该第二组合对应的预测失真代价。其中,确定第二组合对应的代价的方式包括但不限于SAD、SATD、SEE等。接着,根据R个第二组合中每个第二组合对应的代价,构建候选组合列表。
其中,S201-A13-2中根据R个第二组合中各第二组合对应的代价,构建候选组合列表的方式包括但不限于如下几种示例:
示例1,根据R个第二组合中各第二组合对应的代价,对R个第二组合进行排序;将排序后的R个第二组合,确定为候选组合列表。
在该示例1中生成的候选组合列表包括R个候选组合。
可选的,该候选组合列表中R个候选组合按照代价的大小,从小到大进行排序,即候选组合列表中R个候选组合对应的代价按照排序依次增大。
其中,根据R个第二组合中各第二组合对应的代价,对R个第二组合进行排序可以是,按照代价从小到大顺序,对R个第二组合进行排序。
示例2,根据第二组合对应的代价,从R个第二组合中选出N个第二组合,将这N个第二组合组成的列表,确定为候选组合列表。
可选的,上述N个第二组合为R个第二组合中代价最小的前N个第二组合,例如根据R个第二组合中每个第二组合对应的代价,从R个第二组合中选出代价最小的N个第二组合,构成候选组合列表,此时,候选组合列表包括N个候选组合。
可选的,该候选组合列表中N个候选组合按照代价的大小,从小到大进行排序,即候选组合列表中N个候选组合对应的代价按照排序依次增大。
下面对上述S201-A11中确定R个第二组合的过程进行介绍。
在一些实施例中,上述R个第二组合为预设的。这样使用预设的R个第二组合中的每个第二组合对当前块的模板进行预测,得到每个第二组合对应的模板预测值,再根据每个第二组合对应的模板预测值和模板的重建值,确定每个第二组合对应的代价,根据每个第二组合对应的代价,对R个第二组合进行排序,将排序后的R个第二组合作为候选组合列表,或者从排序后的R个第二组合中选出代价最小的N个第二组合构成候选组合列表。
在一些实施例中,S201-A11包括如下步骤:
S201-A11-1、确定P个权重导出模式和Q个预测模式,P为正整数,Q为大于或等于K的正整数;
S201-A11-2、根据P个权重导出模式和Q个预测模式,构建R个第二组合,R个第二组合中的任一第二组合包括P个权重导出模式中的一权重导出模式和Q个预测模式中的K个预测模式,P均为正整数,Q为大于或等于K的正整数。
在该实施例中,编码端首先确定P个权重导出模式和Q个预测模式,接着,根据确定的P个导出权重导出模式和Q个预测模式,构建R个第二组合。
本申请实施例对上述P个权重导出模式和Q个预测模式的具体个数不做限制。
在一种可能的实现方式中,假设当前块为帧内编码块,这里假设GPM的可能的权重导出模式有64种,GPM可能的帧内预测模式有67种,这些可以从VVC的标准中找到。但是并不是限制GPM的可能的权重只有64种,或者是哪64种,需要说明的是,之所以VVC的GPM选择64种也是一个预测效果提升和在码流中的开销提升的一种权衡方案。而本申请不再使用一种固定的逻辑去编码权重导出模式,所以理论上本申请可以使用更多样的权重,以及更灵活 地使用它们。同样,并不是限制GPM的帧内预测模式只有67种,或者是哪67种。理论上所有可能的帧内预测模式都可以用在GPM中。比如说帧内角度预测模式做得更加细致,产生更多的帧内角度预测模式,那么GPM也可以使用更多的帧内角度预测模式。比如说VVC的MIP(matrix-based intra prediction)模式,本申请也可以使用,但是考虑到MIP还有多种子模式可以选择,这里为了便于理解就不把MIP加入到本实施例中。另外还有一些宽角度模式,本申请也可以使用,本实施例不再加以描述。
假设K=2,上述K个预测模式包括第一个预测模式和第二个预测模式,假设所有可用的预测模式有67种(即Q=67),第一个预测模式有67种可能,由于第二个预测模式与第一个预测模式不相同,因此第二个预测模式有66种,假设权重导出模式有64种(即P=64),那么本申请可能使用任意两种不同的预测模式以及任意一种权重导出模式组成一个第二组合,总共有64*67*66种可能的第二组合。
在该实现方式中,P个权重导出模式为所有可能的权重导出模式,例如GPM中的64个权重导出模式和Q个预测模式为所有可能的预测模式,例如GPM的67个帧内预测模式,使用一种穷举的办法,得到所有可能的第二组合,例如得到64*67*66种可能的第二组合,使用这64*67*66种可能的第二组合中的每个第二组合对当前块的模板进行预测,计算每一个第二组合的失真代价,进而根据每个第二组合的失真代价,得到当前块对应的候选组合列表。
在一些实施例中,为了降低数据量,提升候选组合列表的构建速度,则不对每一种预测模式都进行尝试,可以选择其中部分预测模式进行尝试。
此时,上述S201-A11-1中确定Q个预测模式的实现方式包括但不限于如下几种方式:
方式一,Q个预测模式为预设的预测模式。
方式二,确定当前块的候选预测模式列表、K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,根据候选预测模式列表、K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,确定Q个预测模式。
其中,候选预测模式列表包括多个候选预测模式,K个预测模式中任一预测模式对应的备选预测模式列表包至少一个备选预测模式。
其中,确定K个预测模式分别对应的备选预测模式列表可以理解为,为K个预测模式中每个预测模式确定一个备选预测模式列表,在后续构建第二组合时,第二组合中的某一个预测模式从该预测模式对应的备选预测模式列表中选出。例如K=2,K个预测模式包括第一个预测模式和第二个预测模式,编码端为第一个预测模式构建一个备选预测模式列表1,为第二个预测模式构建一个备选预测模式列表2。这样在后期构建不同的第二组合时,从备选预测模式列表1中选出一个备选预测模式作为第一个预测模式,从备选预测模式列表2中选出一个备选预测模式作为第二个预测模式,这样一个权重导出模式,以及当前选出的第一个预测模式和第二个预测模式组成一个第二组合。
本申请实施例对确定K个预测模式中每个预测模式对应的备选预测模式列表的方式不做限制。
在一种可能的实现方式中,针对K个预测模式中的任一预测模式,确定该预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据该候选预测模式列表和权重导出模式对应的预测模式中的至少一个,确定该预测模式对应的备选预测模式列表。
本申请实施例中,确定K个预测模式中某一个预测模式对应的候选预测模式列表,与确定当前块对应的候选预测模式列表的过程基本相似,具体可以参照下面描述。
在一些实施例中,上述候选预测模式列表中包括一个或多个帧间预测模式,例如包括skip、merge、普通帧间预测模式、单向预测、双向预测、多假设预测等中的至少一个。
在一些实施例中,上述候选预测模式列表中包括一个或多个帧内预测模式,例如包括直流(Direct Current,DC)模式、平面(PLANAR)模式、角度模式等中的至少一个。可选的,上述候选预测模式列表包括MPM列表中的至少一个帧内预测模式。
在一些实施例中,上述候选预测模式列表还可以包括IBC、palette等模式。
本申请对上述候选预测模式列表所包括的预测模式的类型以及预测模式的个数不做限制。
在一些实施例中,候选预测模式列表通过如下至少一种方式确定:
方式1,上述上述候选预测模式列表包括预设模式。
方式2,上述上述候选预测模式列表包括MPM列表中的模式。
在一些实施例中,候选帧内预测模式列表可以是当前块的MPM列表,比如在VVC中,当前块可以得到一个长度为6的MPM列表。另外在一些后续的技术演进中,有一种secondary MPM的方案,可能导出长度为22的MPM列表,也可以说第一MPM列表和第二MPM列表的长度加起来是22。也就是说,本申请实施例可以使用MPM来对帧内预测模式进行一个筛选。
在一些实施例中,若上述确定的候选预测模式列表中不包括预设模式时,则将预设模式添加至候选预测模式列表中。
可选的,上述预设模式包括DC、水平模式、竖直模式中的至少一个。
可选的,可以在某些条件下添加预设模式,一个例子是在候选预测模式中的预测模式个数小于、或小于等于一个阈值时添加,这个阈值可以是3,4,5,6等。
方式3,上述上述候选预测模式列表包括根据一些规则,如等间距筛选等,确定出的候选预测模式的集合。
方式4,根据与当前块相邻的至少一个块所使用的预测模式,确定候选预测模式列表。
例如,将与当前块相邻的一个或多个块所使用的的预测模式加入候选预测模式列表中,得到当前块的候选预测模式列表,或者得到K个预测模式中第k个预测模式对应的候选预测模式列表,其中第k个预测模式为K个预测模式中的任一预测模式。
再例如,将与当前块相邻的一个或多个块所使用的预测模式中第k个预测模式对应的预测模式,添加到该第k个 预测模式对应的候选预测模式列表中。举例说明,假设K=2,第k个预测模式为第一个预测模式,与当前块相邻的2个块假设也使用2个预测模式进行加权预测,其中第一个相邻块所使用的2个预测模式分别为预测模式1和预测模式3,第二个相邻块所使用的2个预测模式分别为预测模式4和预测模式5,这样,可以将预测模式1和预测模式4添加至第一个预测模式对应的候选预测模式列表中。
需要说明的是,上述方式1至方式4可以作为确定候选预测模式列表的方式单独使用,也可以进行任意组合使用。
在一些实施例中,上述候选预测模式列表包括候选帧内预测模式列表、候选帧间预测模式列表中的至少一个。其中,候选帧内预测模式列表包括至少一个候选帧内预测模式,候选帧间预测模式列表包括至少一个候选帧间预测模式。
根据上述方式,得到当前块的候选预测模式列表后,根据该候选预测模式列表,确定Q个预测模式,例如将候选预测模式列表所包括的全部或部分候选预测模式,确定为Q个预测模式的全部或部分。
下面对确定权重导出模式对应的预测模式的过程进行介绍。
本申请实施例中,权重导出模式对应的预测模式为一个泛指,例如可以是预设的一个权重导出模式对应的预测模式,或者是预设的几个权重导出模式对应的预测模式。在一些实施例中,权重导出模式对应的预测模式也可以理解为权重导出模式对应的预测模式列表,该预测模式列表中包括至少一个预测模式。
在一些实施例中,上述导出模式对应的预测模式包括P个权重导出模式中至少一个权重导出模式对应的预测模式。此时,确定权重导出模式对应的预测模式包括:针对P个权重导出模式中的第p个权重导出模式,确定第p个权重导出模式对应的预测模式,根据P个权重导出模式中至少一个权重导出模式对应的预测模式,确定权重导出模式对应的预测模式,其中p为正整数。
本申请实施例中,确定P个权重导出模式中每个一个权重导出模式对应的预测模式的过程基本相同,为了便于描述,下面以P个权重导出模式中的第p个权重导出模式为例进行说明。
其中,确定第p个权重导出模式对应的预测模式包括如下两种方式:
方式1,若第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,根据第p个权重导出模式确定角度索引;将角度索引对应的帧内预测模式,确定为第p个权重导出模式对应的预测模式中的至少一个。
其中角度索引用于指示权重的分界线角度索引。
在一些实施例中,用字段angleIdx表示角度索引。
上述表2示出了merge_gpm_partition_idx与angleIdx的对应关系,参照上述表2,可以根据该第p个权重导出模式导出角度索引。
本申请中,角度索引与帧内预测模式具有对应关系,即不同的角度索引与不同帧内预测模式对应。
示例性的,角度索引与帧内预测模式具有对应关系如表7所示。
该方式一中,以K=2为例,若第一个预测模式或第二个预测模式为帧内预测模式时,则根据第p个权重导出模式确定角度索引,例如根据上述表2,导出第p个权重导出模式对应的角度索引。接着,在上述表7中,确定出该角度索引对应的帧内预测模式,例如,角度索引为2,其对应的帧内预测模式为42,进而将帧内预测模式42确定为第一个预测模式或第二个预测模式。
方式2,若第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定第p个权重导出模式对应的帧内预测模式;将第p个权重导出模式对应的帧内预测模式中的至少一个,确定为第p个权重导出模式对应的预测模式中的至少一个。
其中,第p个权重导出模式对应的帧内预测模式包括预测方向与权重的分界线平行的帧内预测模式、预测方向与分界线垂直的帧内预测模式和planar模式中的至少一个。
需要说明的是,预测方向与权重的分界线平行的帧内预测模式包括预测方向与权重的分界线平行或近似平行的一个或几个帧内预测模式。预测方向与权重的分界线垂直的帧内预测模式包括预测方向与权重的分界线垂直或近似垂直的一个或几个帧内预测模式。
该方式二中,以K=2为例,若第一个预测模式和/或第二个预测模式为帧内预测模式时,第一个预测模式和/或第二个预测模式是从权重导出模式对应的帧内预测模式中确定出。例如,第一个预测模式和/或第二个预测模式可以是跟权重划分线(也称为分界线)同一条直线的或近似同一条直线的帧内预测模式。或者,第一个预测模式和/或第二个预测模式可以是预测方向与权重分界线垂直的或近似垂直的帧内预测模式。例如,权重的分界线是水平方向的,如图4中GPM的索引为18,19,50,51的模式,第一个预测模式和/或第二个预测模式为水平方向的模式18或者垂直方向的模式50。
编码端根据上述步骤,确定出P个权重导出模式中至少一个权重导出模式对应的预测模式,进而根据P个权重导出模式中至少一个权重导出模式对应的预测模式,确定权重导出模式对应的预测模式。例如,将P个权重导出模式中至少一个权重导出模式对应的预测模式的全部或部分,作为权重导出模式对应的预测模式。
进一步的,P个权重导出模式对应的预测模式中可能存在重复的预测模式,则将重复的预测模式进行剔除,将剩余的不同的预测模式确定为权重导出模式对应的预测模式。
本申请实施例,为了降低R个第二组合的数量,对预测模式进行筛选,具体是根据上述方法,确定出Q个预测模式。
在一些实施例中,为了降低编码端的复杂度,对上述Q个预测模式的个数进行限定,例如,Q小于或等于第一预设阈值,本申请对第一预设阈值的具体取值不做限制,可以根据实际需要进行确定,例如第一预设阈值为6,即选定6个预测模式来构建R个第二组合,以控制第二组合的个数。
在一些实施例中,Q的大小与当前块的大小和/或形状相关,其中当前块的形状可以理解为由当前块的长宽比决定。
在预测时,对于较小的块,相似的预测模式对预测结果的影响差别不大,对于较大的块,相似的预测模式对预测结果的影响差别会更加明显。基于此,本申请实施例对不同大小的块设定不同的Q值,即对较大块设置较大的Q值, 对较小的块设置较小的Q值。
此时,在确定当前块对应的Q值时,根据当前块的大小设定,例如,若当前块的大小大于第一数值时,则Q大于或等于第二预设阈值。再例如,若当前块的大小小于或等于第一数值时,则Q小于第三预设阈值。本申请实施例对第一数值、第二预测阈值和第三预设阈值的具体大小不做限制,其中第三预设阈值小于第二预设阈值。
下面对S202-A11-1中确定P个权重导出模式的过程进行介绍。
由上述可知,GPM包括64种权重导出模式,AWP包括56种权重导出模式。
在一些实施例中,P个权重导出模式为GPM所包括64种权重导出模式,或者为AWP包括56种权重导出模式。
在一些实施例中,从预设的M个权重导出模式中,选出P个权重导出模式,其中M为大于或等于P的正整数。
上述预设的M个权重导出模式可以为GPM所包括64种权重导出模式,或者为AWP包括56种权重导出模式,还可以是GPM所包括64种权重导出模式的部分权重导出模式,或者为AWP包括56种权重导出模式的部分权重导出模式。
在该实施例中,为了进一步降低R个第二组合的数量,则对预设的M个权重导出模式进行筛选,则可以从预设的M个权重导出模式中选择P个权重导出模式,用于构建R个第二组合。
在一些实施例中,从M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到P个权重导出模式。由于权重导出模式中同一划分角度可以对应多个偏移量,如图16A所示权重导出模式10、11、12和13,它们的划分角度相同,但是偏移量不同,这样可以去掉一些预设偏移量对应的权重导出模式,和/或也可以去掉一些预设划分角度对应的权重导出模式。这样做可以减少总的可能的第二组合数量。而且使各个可能的第二组合之间差别更明显。
在一些实施例中,不同的块对应的筛选条件可以不同,这样在确定当前块对应的P个权重导出模式时,首先确定当前块对应的筛选条件,并根据当前块对应的筛选条件,从M个权重导出模式中,选出P个权重导出模式。
在一些实施例中,当前块对应的筛选条件包括当前块的大小对应的筛选条件和/或当前块的形状对应的筛选条件。在预测时,对于更小的块,相似的权重导出模式对预测结果的影响差别不大,而对于较大的块,相似的权重导出模式对预测结果的影响差别会更加明显。基于此,本申请实施例对不同大小的块设定不同的P值,即对较大块设置较大的P值,对较小的块设置较小的P值。
在一些实施例中,上述筛选条件包括数组,该数组包括M个元素,M个元素与M个权重导出模式一一对应,每个权重导出模式对应的元素用于指示该权重导出模式是否可用,其中权重导出模式是否可用可以理解为该权重导出模式是否用于组成P个权重导出模式中的一个权重导出模式进行后续的第二组合的尝试。
上述数组可以是一位数值,也可以是二位数值。
在一些实施例中,若当前块对应的筛选条件包括当前块的大小对应的筛选条件和当前块的形状对应的筛选条件时,且对于同一个权重导出模式,若当前块的大小对应的筛选条件和当前块的形状对应的筛选条件表示该权重导出模式均可用时,则将该权重导出模式确定为P个权重导出模式中的一个,若当前块的大小对应的筛选条件和当前块的形状对应的筛选条件中的至少一个表示该权重导出模式不可用,则确定该权重导出模式不构成P个权重导出模式。
在一些实施例中,对于不同块大小对应的筛选条件和不同块形状对应的筛选条件,可以使用多个数组分别进行实现。
在一些实施例中,对于不同块大小对应的筛选条件,和不同块形状对应的筛选条件可以使用二位数组来实现,也就是说,在一个二位数组中即包括块大小对应的筛选条件,也包括块形状对应的筛选条件。
编码端根据上述步骤,确定出Q个预测模式和P个权重导出模式后,根据这Q个预测模式和P个权重导出模式,组成R个不同的第二组合。
在一些实施例中,为了进一步提高候选组合列表的构建速度,则编码端对上述确定的Q个预测模式和P个权重导出模式再次进行筛选,此时,上述S201-A11-2中根据确定出的P个权重导出模式和Q个预测模式,组成R个第二组合包括如下S201-A11-21至S201-A11-23的步骤:
S201-A11-21、从P个权重导出模式中选出S个权重导出模式,其中S为小于或等于P的正整数。
具体的,从上述确定的P个权重导出模式剔除导发生概率较低的权重导出模式,得到筛选后的S个权重导出模式。
其中,上述S201-A11-21中从P个权重导出模式中选出S个权重导出模式的方式包括但不限于如下几种:
方式1,针对P个权重导出模式中的第i个权重导出模式,根据第i个权重导出模式,确定K个第二预测模式在模板上的权重,K个第二预测模式为Q个预测模式中的任意K个预测模式,i为从1到P的正整数;若K个预测模式中的任一预测模式在模板上的权重小于第一预设值时,则从P个权重导出模式中剔除第i个权重导出模式,得到S个权重导出模式。
在该方式1中,如果一种权重导出模式导出的模板权重,使得某一个预测模式在模板上的影响很小,或者在模板上没有影响,那么就不使用这个权重导出模式。例如,图4(正方形的块)中的权重导出模式52,该权重导出模式,使得第二个预测模式在模板上的权重较小,再例如权重导出模式54,使得第二个预测模式在模板上的权重为0,即可以认为在权重导出模式54下,第二个预测模式在模板上没有影响,模板的预测值全部由第一个预测模式确定。这种情况下第二个预测模式是什么都没有影响,对于这样的权重导出模式则需要从P个权重导出模式中剔除。
在上述方式1中,将P个权重导出模式中,使得K个预测模式中的任意一个预测模式在模板上的权重小于第一预设值的权重导出模式剔除,得到S个权重导出模式。
本申请实施例对上述第一预设值的具体取值不做限制,例如为大于或等于0的较小值。
方式2,针对P个权重导出模式中的第i个权重导出模式,确定使用第i个权重导出模式对模板进行预测时的代价,i为从1到P的正整数;根据第i个权重导出模式对应的代价,从P个权重导出模式中选出S个权重导出模式。
在该方式2中,通过计算P个权重导出模式中每个权重导出模式对应的代价,从P个权重导出模式中选出S个权 重导出模式。
本申请实施例中,将权重导出模式和K个预测模式作为一个组合,进行代价的计算,这样,为了计算方便,在给定K个预测模式的基础上,对P个权重导出模式的代价进行计算,即将P个权重导出模式分别与设定的K个预测模式进行组合,得到P个组合,计算这P个组合中每个组合对应的代价,进而得到P个权重导出模式的代价。
根据上述方法,确定出P个权重导出模式中第i个权重导出模式对应的代价后,根据第i个权重导出模式对应的代价从P个权重导出模式中选出S个权重导出模式。
在该方式2中,编码端根据第i个权重导出模式对应的代价,从P个权重导出模式中选出S个权重导出模式包括如下方式:
第1种方式,若第i个权重导出模式对应的代价小于第二预设值,则从P个权重导出模式中选出与第i个权重导出模式相似的权重导出模式;根据第i个权重导出模式,以及第i个权重导出模式的相似权重导出模式,确定S个权重导出模式。其中,第i个权重导出模式的相似权重导出模式可以理解为预测结果与第i个权重导出模式的预测结果相似的权重导出模式
本申请实施例对上述第二预设值的大小不做限制,具体根据实际需要进行确定。
在一些实施例中,编码端还可以根据下面的第2种方式,从P个权重导出模式中选出S个权重导出模式。
第2种方式,若第i个权重导出模式对应的代价大于第三预设值,则从P个权重导出模式中剔除掉第i个权重导出模式,以及第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据剔除后的至少一个权重导出模式,确定S个权重导出模式。
本申请实施例对上述第三预设值的大小不做限制,具体根据实际需要进行确定,第三预设值大于上述第二预设值。
根据上述步骤,编码端从P个权重导出模式中筛选出S个权重导出模式后,执行如下S201-A11-22的步骤。
S201-A11-22、从Q个预测模式中选出T个预测模式,T为小于或等于Q的正整数。
本申请实施例对从Q个预测模式中选出T个预测模式的方式不做限制。
在一些实施例中,从Q个预测模式中选出预设的T个预测模式。
在一些实施例中,针对Q个预测模式中的第i个预测模式,编码端确定使用第i个预测模式对模板进行预测时的代价,i为从1到Q的正整数;根据第i个预测模式对应的代价,从Q个预测模式中选出T个预测模式。
本申请实施例中,将权重导出模式和K个预测模式作为一个组合,进行代价的计算,这样,为了计算方便,在给定权重导出模式和其他K-1个预测模式的基础上,对Q个权重导出模式的代价进行计算,即将Q个预测模式分别与设定的权重导出模式和K-1个预测模式进行组合,得到Q个组合,计算这Q个组合中每个组合对应的代价,进而得到Q个预测模式的代价。
举例说明,假设给定的K-1个预测模式为预测模式1,给定的权重导出模式为权重导出模式1,对于Q个预测模式中的第i个预测模式,权重导出模式1与第i个预测模式和预测模式1组成一个组合,记为组合i。使用组合i对当前块的模板进行预测,得到该组合i下模板的预测值,根据组合i下模板的预测值与模板的重建值,确定该组合i对应的预测失真代价,将该组合i对应的预测失真代价,确定为第i个预测模式对应的代价。这样可以确定出Q个预测模式中任意一个预测模式对应的代价。
根据上述方法,确定出Q个预测模式中第i个预测模式对应的代价后,根据第i个预测模式对应的代价从Q个预测模式中选出T个预测模式。
其中,编码端根据第i个预测模式对应的代价从Q个预测模式中选出T个预测模式包括如下方式:
第一种方式,若第i个预测模式对应的代价小于第四预设值,则从Q个预测模式中选出与第i个预测模式相似的预测模式;根据第i个预测模式,以及第i个预测模式的相似预测模式,确定T个预测模式。其中,与第i个预测模式相似的预测模式可以理解为预测结果与第i个预测模式的预测接收相似(或相近)的预测模式,例如预测方向(或角度)与第i个预测模式的预测方向(或角度)相近的预测模式,或者预测模式索引与第i个预测模式的索引相近的预测模式,例如索引比第i个预测模式的索引大1、2等的预测模式,或者索引比第i个预测模式的索引小1、2等的预测模式。
本申请实施例对上述第四预设值的大小不做限制,具体根据实际需要进行确定。
第二种方式,若第i个预测模式对应的代价大于第五预设值,则从Q个预测模式中剔除掉第i个预测模式,以及第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据剔除后的至少一个预测模式,确定T个预测模式。
本申请实施例对上述第五预设值的大小不做限制,具体根据实际需要进行确定,第五预设值大于上述第四预设值。
根据上述步骤,从P个权重导出模式中选出S个权重导出模式,从Q个预测模式中选出T个预测模式,接着,执行如下S201-A11-23。
S201-A11-23、根据S个权重导出模式和T个预测模式,组成R个第二组合。
具体的,从S个权重导出模式中选出一个权重导出模式,从T个预测模式中选出K个预测模式,这一个权重导出模式和K个预测模式组成一个第二组合,重复执行该步骤,可以得到R个第二组合。
在一些实施例中,上述S201-A11-2包括:针对P个权重导出模式中的第i个权重导出模式,确定使用第i个权重导出模式与Q个预测模式中的第j个预测模式对模板进行预测时的代价;若第i个权重导出模式与第j个预测模式组合对应的代价大于第六预设值,则从Q个预测模式中剔除掉第j个预测模式,以及第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据第i个权重导出模式和剔除后的至少一个预测模式,构建R个第二组合。
在该实施例中,在权重导出模式和一个预测模式固定时,另外一个预测模式进行筛选。例如,某一权重导出模式下,某一个帧内预测模式作为第一预测模式不能得到比较小的代价,那么就不再尝试该权重导出模式下,与该帧内预测模式相似的帧内预测模式最为第一预测模式的情况。
根据上述步骤,可以确定出P个权重导出模式中,每个权重导出模式对应的最终剔除后的预测模式集合,这样根据P个权重导出模式与其各自对应的最终剔除后的预测模式集合,构建R个第二组合。
需要说明的是,上述实施例,示出了以组合的形式对预测模式进行筛选的方式,可选的,还可以通过组合的形式,对权重导出模式和预测模式中的任意一个进行筛选,最终构建出R个第二组合。
编码端根据上述各方法,确定出R个第二组合后,对于R个第二组合中的任一第二组合,使用第二组合中的权重导出模式和K个预测模式,对模板进行预测,得到第二组合对应的模板预测值。
下面对使用任意一个第二组合对当前块的模板进行预测,得到模板的预测值的过程进行介绍。
首先,使用该第二组合所包括的权重导出模式,确定模板的权重。
目前,如上述图13所示,当前块的模板为当前块的上方已编码区域,或者为当前块左侧已编码区域,或者为当前块的左侧已编码和上方已编码区域。
在一些实施例中,可以直接将权重矩阵向模板区域延伸,例如向左向上延伸,将权重矩阵覆盖到模板上面,从而确定模板的权重。例如图17所示,可以选择把当前块左上侧的区域的小矩形区域加入到模板中,将模板和当前块拼起来构成一个矩形。当然也可以只使用左侧部分和上方部分作为模板。如图17所示,这里以加入左上侧的区域举例,左侧、左上侧和上侧的倒L形框中的区域为模板区域,右下方的矩形区域为当前块,那么向左上方扩展出来的权重矩阵就变成了模板的权重矩阵。
在一些实施例中,将根据权重导出模式导出模板权重与预测值的权重的导出过程合并,例如同时导出模板权重和预测值的权重。其中预测值的权重可以理解为预测值对应的权重,例如使用第一个预测模式得到第一预测值,使用第二个预测模式得到第二预测值,根据权重导出模式确定第一预测值的第一权重,根据权重导出模式确定第二预测值的第二权重,将第一预测值与第一权重的乘积,和第二预测值与第二权重的乘积的和值,确定为当前块的预测值。
本申请为了与模板权重区分,将上的第一权重和第二权重称为预测值的权重。
在一些实施例中,根据权重导出模式确定模板权重包括如下步骤:
步骤3、根据权重导出模式,确定角度索引和距离索引;
步骤4、根据角度索引、距离索引和模板的大小,确定模板权重。
本申请可以采用与导出预测值的权重相同的方式,导出模板权重。例如,首先根据权重导出模式,确定角度索引和距离索引,其中角度索引可以理解为权重导出模式导出的各权重的分界线角度索引。示例性的,可以根据上述表2,确定出权重导出模式对应的角度索引和距离索引,例如权重导出模式为27,则对应的角度索引为12,距离索引为3。接着,根据角度索引、距离索引和模板的大小,确定出模板权重。
上述步骤4中根据角度索引、距离索引和模板的大小,确定模板权重的方式包括但不限于如下几种方式:
方式一,根据角度索引、距离索引和模板的大小,直接确定模板权重。此时,上述步骤4包括如下步骤41至步骤43的步骤:
步骤41、根据角度索引、距离索引和模板的大小,确定模板中像素点的第一参数;
步骤42、根据模板中像素点的第一参数,确定模板中像素点的权重;
步骤43、根据模板中像素点的权重,确定模板权重。
本实现方式中,根据角度索引、距离索引、模板的大小和当前块的大小,确定模板中像素点的权重,进而将模板中每个点的权重组成的权重矩阵,确定为模板权重。
本申请的第一参数用于确定权重。在一些实施例中,第一参数也称为权重索引。
在一种可能的实现方式中,可以根据如下方式确定出偏移量和第一参数:
模板权重导出过程的输入有:如图18所示,当前块的宽度nCbW,当前块的高度nCbH;左侧模板的宽度nTmW,上侧模板的高度nTmH;GPM的“划分”角度索引变量angleId;GPM的距离索引变量distanceIdx;分量索引变量cIdx,示例性的,本申请以亮度分量为例,因此cIdx为0,表示亮度分量。
其中,变量nW,nH,shift1,offset1,displacementX,displacementY,partFlip还有shiftHor按如下方法导出:
nW=(cIdx==0)?nCbW:nCbW*SubWidthC
nH=(cIdx==0)?nCbH:nCbH*SubHeightC
shift1=Max(5,17-BitDepth)其中BitDepth是编解码的比特深度
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
其中,偏移量offsetX and offsetY按如下方法导出:
–如果shiftHor的值为0:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3))
–否则(即shiftHor的值为1):
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1
模板权重矩阵wTemplateValue[x][y](其中x=-nTmW..nCbW–1,y=-nTmH..nCbH-1,去除x,y同时大于等于0的情况)注意这个例子里面以当前块的左上角坐标为(0,0)按如下方法导出:
–变量xL和yL按如下方法导出:
xL=(cIdx==0)?x:x*SubWidthC
yL=(cIdx==0)?y:y*SubHeightC
其中disLut按上述表3确定
其中,第一参数weightIdx按如下方法导出:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
根据上述方法,确定出第一参数weightIdx后,根据weightIdx确定出模板中点(x,y)处的权重。
本申请中,上述步骤42中根据模板中像素点的第一参数,确定模板中像素点的权重的方式包括的不限于如下几种:
方式1,根据模板中像素点的第一参数,确定模板中像素点的第二参数;根据模板中像素点的第二参数,确定模板中像素点的权重。
其中第二参数也用于确定权重。在一些实施例中,上述第二参数也称为第一分量下的权重索引,该第一分量可以为亮度分量、色度分量等。
例如,根据公式,确定出模板中像素点的权重:
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wTemplateValue[x][y]=Clip3(0,8,(weightIdxL+4)>>3)
其中,wTemplateValue[x][y]为模板中点(x,y)的权重,weightIdxL为模板中点(x,y)的第二参数,也称为在第一分量(例如亮度分量)下的权重索引,wTemplateValue[x][y]为模板中点(x,y)的权重,partFlip为中间变量,根据角度索引angleIdx确定,例如上述所述:partFlip=(angleIdx>=13&&angleIdx<=27)?0:1,也就是说,partFlip的值为1或0,当partFlip为0时,weightIdxL为32–weightIdx,当partFlip为1时,weightIdxL为32+weightIdx,需要说明的是,这里的32只是一种示例,本申请不局限于此。
方式2,根据模板中像素点的第一参数、第一阈值和第二阈值,确定模板中像素点的权重。
为了降低模板权重的计算复杂度,在方式2中将模板中像素点的权重限定为第一阈值或第二阈值,也就是说,模板中像素点的权重要么为第一阈值,要么是第二阈值,进而降低模板权重的计算复杂度。
本申请对第一阈值和第二阈值的具体取值不做限制。
可选的,第一阈值为1。
可选的,第二阈值为0。
在一种示例,可以通过如下公式确定出模板中像素点的权重:
wTemplateValue[x][y]=(partFlip?weightIdx:-weightIdx)>0?1:0
其中,wTemplateValue[x][y]为模板中点(x,y)的权重,上述“1:0”中的1为第一阈值,0为第二阈值。
在上述方式一中,通过权重导出模式确定出模板中每个点的权重,模板中每个点的权重组成的权重矩阵作为模板权重。
方式二,根据权重导出模式确定出当前块和模板的权重,也就是说,在该方式二中,将当前块和模板组成的合并区域作为一个整体,根据权重导出模式导出合并区域中像素点的权重。基于此上述步骤4包括如下步骤4-1和步骤4-2步骤:
步骤4-1、根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重;
步骤4-2、根据模板的大小和合并区域中像素点的权重,确定模板权重。
在该方式二中,将当前块和模板作为一个整体,根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重,进而根据模板的大小,将合并区域中模板对应的权重确定为模板权重,例如图18所示,将合并区域中L型模板区域对应的权重确定为模板权重。
该方式二中,在一次权重确定过程中,不仅确定出模板权重,并且确定出预测值的权重,即合并区域对应的权重中除去模板权重后,剩余的为预测值的权重,进而可以根据预测值的权重执行后续的预测过程,无需重新确定预测值的权重,进而减少了预测步骤,提升了预测效率。
本申请对上述根据角度索引、距离索引、模板的大小和当前块的大小,确定当前块和模板组成的合并区域中像素点的权重的具体实现方式不做限制。
在一些实施例中,上述步骤4-1中确定合并区域中像素点的权重包括如下步骤4-11至步骤4-12的步骤:
步骤4-11、根据角度索引、距离索引和合并区域的大小,确定合并区域中像素点的第一参数;
步骤4-12、根据合并区域中像素点的第一参数,确定合并区域中像素点的权重。
本实现方式中,根据角度索引、距离索引、合并区域的大小,确定合并区域中像素点的权重,合并区域中每个点的权重组成的权重矩阵。
在一种可能的实现方式中,可以根据如下方式确定出偏移量和第一参数:
合并区域权重导出过程的输入有:如图18所示,当前块的宽度nCbW,当前块的高度nCbH;左侧模板的宽度nTmW,上侧模板的高度nTmH;GPM的“划分”角度索引变量angleId;GPM的距离索引变量distanceIdx;分量索引变量cIdx,示例性的,本申请以亮度分量为例,因此cIdx为0,表示亮度分量。
变量nW,nH,shift1,offset1,displacementX,displacementY,partFlip还有shiftHor按如下方法导出:
nW=(cIdx==0)?nCbW:nCbW*SubWidthC
nH=(cIdx==0)?nCbH:nCbH*SubHeightC
shift1=Max(5,17-BitDepth)其中BitDepth是编解码的比特深度
offset1=1<<(shift1-1)
displacementX=angleIdx
displacementY=(angleIdx+8)%32
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&nH>=nW))?0:1
其中,偏移量offsetX and offsetY按如下方法导出:
–如果shiftHor的值为0:
offsetX=(-nW)>>1
offsetY=((-nH)>>1)+(angleIdx<16?(distanceIdx*nH)>>3:-((distanceIdx*nH)>>3))
–否则(即shiftHor的值为1):
offsetX=((-nW)>>1)+(angleIdx<16?(distanceIdx*nW)>>3:-((distanceIdx*nW)>>3)
offsetY=(-nH)>>1
合并区域中像素点的权重矩阵wValueMatrix[x][y](其中x=-nTmW..nCbW–1,y=-nTmH..nCbH-1)注意这个例子里面以当前块的左上角坐标为(0,0)按如下方法导出:
–变量xL和yL按如下方法导出:
xL=(cIdx==0)?x:x*SubWidthC
yL=(cIdx==0)?y:y*SubHeightC
其中disLut按表3确定。
其中,第一参数weightIdx按如下方法导出:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
根据上述方法,确定出第一参数weightIdx后,根据weightIdx确定出合并区域中点(x,y)处的权重。
本申请中,上述步骤4-12中根据合并区域中像素点的第一参数,确定合并区域中像素点的权重的方式包括的不限于如下几种:
方式1,根据合并区域中像素点的第一参数,确定合并区域中像素点的第二参数;根据合并区域中像素点的第二参数,确定合并区域中像素点的权重。
例如,根据公式,确定出合并区域中像素点的权重:
weightIdx=(((xL+offsetX)<<1)+1)*disLut[displacementX]+
(((yL+offsetY)<<1)+1)*disLut[displacementY]
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValueMatrix[x][y]=Clip3(0,8,(weightIdxL+4)>>3)
其中,wValueMatrix[x][y]为合并区域中点(x,y)的权重,weightIdxL为合并区域中点(x,y)的第二参数,wTemplateValue[x][y]为合并区域中点(x,y)的权重。
方式2,根据合并区域中像素点的第一参数、第一阈值和第二阈值,确定合并区域中像素点的权重。
示例性的,合并区域中像素点的权重为第一阈值或为第二阈值。
为了降低合并区域权重的计算复杂度,在方式2中将合并区域中像素点的权重限定为第一阈值或第二阈值,也就是说,合并区域中像素点的权重要么为第一阈值,要么是第二阈值,进而降低合并区域权重的计算复杂度。
本申请对第一阈值和第二阈值的具体取值不做限制。
可选的,第一阈值为1。
可选的,第二阈值为0。
在一种示例,可以通过如下公式确定出合并区域中像素点的权重:
wTemplateValue[x][y]=(partFlip?weightIdx:-weightIdx)>0?1:0
其中,wValueMatrix[x][y]为合并区域中点(x,y)的权重,上述“1:0”中的1为第一阈值,0为第二阈值。
在上述方式二中,通过权重导出模式确定出当前块和模板组成的合并区域中每个点的权重,进而根据模板的大小,将合并区域中模板对应的权重确定为模板权重,且该方式二中,同时确定出预测值的权重,无需执行后续的预测值的权重的确定步骤,进行降低了预测步骤,提升了预测效率。
根据上述方法,确定出该第二组合所包括权重导出模式对应的模板权重后,使用该第二组合中的K个预测模式对模板进行预测,得到K个预测值,根据模板权重对K个预测值进行加权,得到模板的预测值。
其中,模板的预测值可以理解为由模板中像素点的预测值组成的矩阵。
在一些实施例中,上述预测值也称为预测样本。
接着,根据模板的预测值和重建值,确定该第二组合的代价。
上述确定该第二组合的代价的方式包括但不限于如下几种:
方式一,采用矩阵的方式确定该第二组合的代价。具体是,根据模板的预测值和重建值,确定一损失,将该损失记为第一损失,由于上述模板的预测值和重建值为矩阵,因此得到第一损失也为矩阵,例如将模板的预测值和重建值的差值的绝对值确定为第一损失,将该第一损失确定为该第二组合的代价。
方式二,采用逐点计算的方式,确定出第二组合的代价。
具体的,针对模板中的第i个像素点,确定该第二组合中的K个预测模式中每个预测模式在第i个像素点处的预测时,确定第i个像素点在模板权重中对应的模板权重,根据第i像素点的模板权重,以及第i个像素点的K个预测值,得到该第i个像素点的预测值。根据该第i个像素点的预测值与重建值,得到该第二组合在第i个像素点处的代价。根据该方法,可以确定出该第二组合在模板中的每一个像素点处的预测失真代价,最后,该第二组合在模板中的每一个像素点处的预测失真代价的累加和,确定为该第二组合的代价。
根据上述方法,可以确定出R个第二组合中每个第二组合的代价。
接着,根据R个第二组合中每个第二组合的代价,构建候选组合列表。
例如,根据第二组合的代价大小,按照从小到大的顺序,对R个第二组合进行排序,将排序后的R个第二组合确定为候选组合列表。
再例如,根据第二组合的代价大小,从R个第二组合中选出代价最小的N个第二组合,构成候选组合列表。
可选的,N为8或16或32等。
根据上述方法,确定出候选组合列表,该候选组合列表中各候选组合按照代价的大小从小到大进行排序,示例性的,该候选组合列表如上述表6所示。
这样编码端在表6所示的候选组合列表中确定第一组合,例如,将候选组合列表中代价最小的候选组合,确定为第一组合,即将该候选组合所包括的权重导出模式确定为第一权重导出模式,将该候选组合所包括的K个预测模式,确定为K个第一预测模式。接着,编码端执行如下S202。
S202、根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。
例如,根据第一权重导出模式,确定预测值的权重,根据K个第一预测模式,确定K个预测值,根据K个预测值和预测值的权重,确定当前块的预测值。
在一种示例中,上述第一权重导出模式导出的预测值的权重为一个权重矩阵。
其中,上述S202的实现过程与上述S103基本一致,参照上述S103的描述,在此不再赘述。
S203、根据当前块的预测值,得到码流,码流中包括第一索引,第一索引用于指示第一组合。
具体的,根据上述步骤确定出当前块的预测值后,根据当前块和当前块的预测值,得到当前块的残差值,对当前块的残差值进行变换,得到变换系数,对变换系数进行量化,得到量化系数,对量化系数进行编码,得到码流。
本申请实施例,为了保持编解码两端的一致性,编码端通过第一索引向解码端指示第一组合,即编码端在码流中写入第一索引。这样解码端通过解码码流,得到该第一索引,进而根据该第一索引,确定出当前块对应的第一组合,以使用第一组合所包括的第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值。
本申请实施例对第一索引的具体语法元素形式不做限制。
在一种可能的实现方式中,若当前块采用GPM技术进行预测时,则使用gpm_cand_idx表示第一索引。
由于上述第一索引用于指示第一组合,因此,在一些实施例中,该第一索引也可以称为第一组合索引或者第一组合的索引。
在一种示例中,在码流中添加第一索引后的语法如表5所示。
在一些实施例中,为了进一步降低编码代价,则编码端采用变成编码方式将第一索引编入码流中。
在一些实施例中,若上述候选组合列表所包括的候选组合数量小于第四预设阈值时,则编码端采用定长编码方式将第一索引编入码流。即本申请实施例中,若候选组合列表所包括的候选组合数量较少时,各候选组合统一使用预设比特长度进行编码,本申请实施例对第四预设阈值的具体取值不做限制。
在一些实施例中,可以使用一个高层语法(high level syntax)控制本申请实施例提供的组合编码技术方案的开关,例如可以通过至少一个标志来指示当前块是否允许采用本申请实施例提供的组合编码技术方案,即是否允许使用第一组合进行编码。
在一种可能的实现方式中,设置的至少一个标志可以是不同级别的标志,用于指示对应级别是否允许采用本申请实施例提供的组合编码技术方案。
可选的,上述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
例如,上述至少一个标志包括序列级标志,该序列级标志用于指示当前序列是否允许采用本申请实施提供的组合编码技术方案。
示例性的,在参数集(sequence parameter set)中增加语法元素sps_cgpm_enabled_flag。其中cgpm可以认为是combined geometric partitioning mode的缩写。如果sps_cgpm_enabled_flag的值为1,表示当前序列允许使用本申请的技术方案,如果sps_cgpm_enabled_flag的值为0,表示当前序列不允许使用本申请的技术方案。
本申请实施例提供的技术方案如果使用在帧间模式中,因为帧间模式已经存在sps_gpm_enbled_flag,那么也可以由sps_gpm_enbled_flag来控制本方案。因为本方案也可以用在帧内模式中,帧内也可以和帧间一起使用sps_cgpm_enabled_flag或sps_gpm_enabled_flag,当然也可以为了更好的灵活性,对帧内模式和帧间模式使用不同的flag,比如设置一个sps_sgpm_enabled_flag。其中sgpm可以认为是spatial geometric partitioning mode的缩写。sps_sgpm_enabled_flag控制帧内模式是否允许使用本方案,而sps_cgpm_enabled_flag或sps_gpm_enabled_flag控制帧间模式是否允许使用本方案。
再例如,上述至少一个标志包括图像级标志,该图像级标志用于指示当前图像是否允许使用本申请的技术方案。
可选的,若至少一个标志包括图像级标志时,该图像级标志可以位于图像头(picture header)中。
再例如,上述至少一个标志包括片级标志,该片级标志用于指示当前片(slice)是否允许使用本申请的技术方案。
可选的,若至少一个标志包括片级标志时,该片级标志可以位于片头(slice header)中。
再例如,上述至少一个标志包括单元级标志,该单元级标志用于指示当前CTU是否允许使用本申请的技术方案。
再例如,上述至少一个标志包括块(CU)级标志,该块级标志用于指示当前块是否允许使用本申请的技术方案。
以帧内为例,假设块级标志为cu_sgpm_flag。如果cu_sgpm_flag的值为1,表示当前块允许使用本申请的技术方案,如果cu_sgpm_flag的值为0,表示当前块不允许使用本申请的技术方案。目前VVC中的GPM用在帧间的合并(merge)模式,它是通过推导得出来的,当然以后也可能直接用CU级的flag表示,这里不做限制。
这样,编码端首先确定上述至少一个标志,根据这至少一个标志,判断当前块是否允许使用本申请的技术方案。 若根据上述至少一个标志,确定当前块不允许使用本申请的技术方案时,则跳过本申请实施例的方法。若根据上述至少一个标志,确定当前块允许使用本申请的技术方案术,则执行本申请实施例的方法,即确定第一组合。
本申请实施例提供的视频编码方法,编码端通过确定第一组合,该第一组合包括第一权重导出模式和K个第一预测模式,根据第一权重导出模式和K个第一预测模式对当前块进行预测,得到当前块的预测值,根据当前块的预测值,得到码流,码流中包括第一索引,第一索引用于指示第一组合。本申请将权重导出模式和K个预测模式作为一个组合,这样在码流中以组合的形式来指示当前块所使用的权重导出模式和K个预测模式,使得语法变得更简单,节省码字,且不需要各种情况的判断等,进而提升编码效率。
应理解,图15至图19仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文结合图15至图19,详细描述了本申请的方法实施例,下文结合图20至图22,详细描述本申请的装置实施例。
图20是本申请一实施例提供的视频解码装置的示意性框图,该视频解码装置10应用于上述视频解码器。
如图20所示,视频解码装置10包括:
解码单元11,用于解码码流,得到第一索引,所述第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,所述K为大于1的正整数;
确定单元12,用于根据所述第一索引,确定所述第一组合所包括的第一权重导出模式和K个第一预测模式;
预测单元13,用于根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值。
在一些实施例中,确定单元12,具体用于确定候选组合列表,所述候选组合列表中包括多个候选组合,所述多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式;将所述候选组合列表中所述第一索引对应的候选组合所包括的权重导出模式和K个预测模式,确定为所述第一权重导出模式和所述K个第一预测模式。
在一些实施例中,确定单元12,具体用于构建所述候选组合列表。
在一些实施例中,确定单元12,具体用于基于所述当前块的模板,构建所述候选组合列表。
在一些实施例中,确定单元12,具体用于确定R个第二组合,所述R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且所述R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,所述R为大于1的正整数;对于所述R个第二组合中的任一第二组合,使用所述第二组合中的权重导出模式和K个预测模式,对所述模板进行预测,得到所述第二组合对应的模板预测值;根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表。
在一些实施例中,确定单元12,具体用于根据所述第二组合对应的模板预测值和所述模板的重建值,确定所述第二组合对应的代价;根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表。
在一些实施例中,确定单元12,具体用于根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序;将排序后的所述R个第二组合,确定为所述候选组合列表。
在一些实施例中,确定单元12,具体用于按照所述代价从小到大顺序,对所述R个第二组合进行排序。
在一些实施例中,确定单元12,具体用于根据所述第二组合对应的代价,从所述R个第二组合中选出N个第二组合;将所述N个第二组合组成的列表,确定为所述候选组合列表。
可选的,所述N个第二组合为所述R个第二组合中所述代价最小的前N个第二组合。
在一些实施例中,确定单元12,具体用于确定P个权重导出模式和Q个预测模式,所述P为正整数,所述Q为大于或等于K的正整数;根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,所述R个第二组合中的任一第二组合包括所述P个权重导出模式中的一权重导出模式和所述Q个预测模式中的K个预测模式。
在一些实施例中,确定单元12,具体用于确定所述当前块的候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,所述候选预测模式列表包括多个候选预测模式,所述K个预测模式中任一预测模式对应的备选预测模式列表包至少一个备选预测模式;根据所述候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及所述权重导出模式对应的预测模式中的至少一个,确定所述Q个预测模式。
在一些实施例中,确定单元12,具体用于针对所述K个预测模式中的任一预测模式,确定所述预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据所述候选预测模式列表和所述权重导出模式对应的预测模式中的至少一个,确定所述预测模式对应的备选预测模式列表。
在一些实施例中,确定单元12,具体用于根据与所述当前块相邻的至少一个块所使用的预测模式,确定所述候选预测模式列表。
在一些实施例中,确定单元12,还用于若所述候选预测模式列表中不包括预设模式时,则将所述预设模式添加至 所述候选预测模式列表中
可选的,所述预设模式包括DC、水平模式、竖直模式中的至少一个。
可选的,所述候选预测模式列表包括候选帧内预测模式列表、候选帧间预测模式列表中的至少一个,所述候选帧内预测模式列表包括至少一个候选帧内预测模式,所述候选帧间预测模式列表包括至少一个候选帧间预测模式。
在一些实施例中,确定单元12,具体用于针对所述P个权重导出模式中的第p个权重导出模式,确定所述第p个权重导出模式对应的预测模式,所述p为正整数;根据所述P个权重导出模式中至少一个权重导出模式对应的预测模式,确定所述权重导出模式对应的预测模式。
在一些实施例中,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定单元12,具体用于根据所述第p个权重导出模式确定角度索引;将所述角度索引对应的帧内预测模式,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
在一些实施例中,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定单元12,具体用于确定所述权重导出模式对应的帧内预测模式;将所述权重导出模式对应的帧内预测模式中的至少一个,确定为所述权重导出模式对应的预测模式中的至少一个。
在一些实施例中,所述第p个权重导出模式对应的帧内预测模式包括预测角度与所述权重导出模式对应的分界线平行的帧内预测模式、预测角度与所述权重导出模式对应的分界线垂直的帧内预测模式和planar模式中的至少一个。
在一些实施例中,所述Q小于或等于第一预设阈值。
在一些实施例中,所述Q的大小与所述当前块的大小和/或形状相关。
在一些实施例中,若所述当前块的大小大于第一数值时,则所述Q大于或等于第二预设阈值。
在一些实施例中,若所述当前块的大小小于或等于第一数值时,则所述Q小于第三预设阈值。
在一些实施例中,确定单元12,具体用于从预设的M个权重导出模式中,选出所述P个权重导出模式,所述M为大于或等于P的正整数。
在一些实施例中,确定单元12,具体用于从所述M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到所述P个权重导出模式。
在一些实施例中,确定单元12,具体用于确定所述当前块对应的筛选条件;根据所述筛选条件,从所述M个权重导出模式中,选出所述P个权重导出模式。
在一些实施例中,所述当前块对应的筛选条件包括所述当前块的大小对应的筛选条件和/或所述当前块的形状对应的筛选条件。
在一些实施例中,所述筛选条件包括数组,所述数组包括M个元素,所述M个元素与所述M个权重导出模式一一对应,所述权重导出模式对应的元素用于指示所述权重导出模式是否可用。
在一些实施例中,确定单元12,具体用于从所述P个权重导出模式中选出S个权重导出模式,所述S为小于或等于P的正整数;从所述Q个预测模式中选出T个预测模式,所述T为小于或等于Q的正整数;根据所述S个权重导出模式和所述T个预测模式,组成所述R个第二组合。
在一些实施例中,确定单元12,具体用于针对所述P个权重导出模式中的第i个权重导出模式,根据所述第i个权重导出模式,确定K个第二预测模式在所述模板上的权重,所述K个第二预测模式为所述Q个预测模式中的任意K个预测模式,所述i为从1到P的正整数;若所述K个预测模式中的任一预测模式在所述模板上的权重小于第一预设值时,则从所述P个权重导出模式中剔除所述第i个权重导出模式,得到所述S个权重导出模式。
在一些实施例中,确定单元12,具体用于针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式对所述模板进行预测时的代价,所述i为从1到P的正整数;根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式。
在一些实施例中,确定单元12,具体用于若所述第i个权重导出模式对应的代价小于第二预设值,则从所述P个权重导出模式中选出与所述第i个权重导出模式相似的权重导出模式;根据所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,确定所述S个权重导出模式。
在一些实施例中,确定单元12,具体用于若所述第i个权重导出模式对应的代价大于第三预设值,则从所述P个权重导出模式中剔除掉所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据所述剔除后的至少一个权重导出模式,确定所述S个权重导出模式。
在一些实施例中,确定单元12,具体用于针对所述Q个预测模式中的第i个预测模式,确定使用所述第i个预测模式对所述模板进行预测时的代价,所述i为从1到Q的正整数;根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式。
在一些实施例中,确定单元12,具体用于若所述第i个预测模式对应的代价小于第四预设值,则从所述Q个预测模式中选出与所述第i个预测模式相似的预测模式;根据所述第i个预测模式,以及所述第i个预测模式的相似预测模式,确定所述T个预测模式。
在一些实施例中,确定单元12,具体用于若所述第i个预测模式对应的代价大于第五预设值,则从所述Q个预测模式中剔除掉所述第i个预测模式,以及所述第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述剔除后的至少一个预测模式,确定所述T个预测模式。
在一些实施例中,确定单元12,具体用于针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式与所述Q个预测模式中的第j个预测模式对所述模板进行预测时的代价;若所述第i个权重导出模式与所述第j个预测模式组合对应的代价大于第六预设值,则从所述Q个预测模式中剔除掉所述第j个预测模式,以及所述第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述第i个权重导出模式和所述剔除后的至少一个预测模式,构建所述R个第二组合。
在一些实施例中,预测单元13,具体用于根据所述第一权重导出模式,确定预测值的权重;根据所述K个第一预 测模式,确定K个预测值;根据所述预测值的权重对所述K个预测值进行加权,得到所述当前块的预测值。
可选的,所述预测值的权重为权重矩阵。
在一些实施例中,所述第一索引采用变长编码方式编入所述码流。
在一些实施例中,若所述候选组合列表所包括的候选组合数量小于第四预设阈值时,则所述第一索引采用定长编码方式编入所述码流。
在一些实施例中,解码单元11,还用于解码所述码流,得到至少一个标志,所述至少一个标志用于指示使用第一组合进行解码;若所述至少一个标志指示使用所述第一组合进行解码时,解码所述码流,得到所述第一索引。
在一些实施例中,所述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图20所示的装置10可以执行本申请实施例的解码端的解码方法,并且装置10中的各个单元的前述和其它操作和/或功能分别为了实现上述解码端的解码方法等各个方法中的相应流程,为了简洁,在此不再赘述。
图21是本申请一实施例提供的视频编码装置的示意性框图,该视频编码装置应用于上述编码器。
如图21所示,该视频编码装置20可以包括:
确定单元21,用于确定第一组合,所述第一组合包括第一权重导出模式和K个第一预测模式;
预测单元22,用于根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值;
编码单元23,用于根据所述当前块的预测值,得到码流,所述码流中包括第一索引,所述第一索引用于指示所述第一组合。
在一些实施例中,确定单元21,具体用于确定候选组合列表,所述候选组合列表中包括多个候选组合,所述多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式;从所述候选组合列表中,确定出所述第一组合。
在一些实施例中,确定单元21,具体用于构建所述候选组合列表。
在一些实施例中,确定单元21,具体用于基于所述当前块的模板,构建所述候选组合列表。
在一些实施例中,确定单元21,具体用于确定R个第二组合,所述R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且所述R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,所述R为大于1的正整数;对于所述R个第二组合中的任一第二组合,使用所述第二组合中的权重导出模式和K个预测模式,对所述模板进行预测,得到所述第二组合对应的模板预测值;根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表。
在一些实施例中,确定单元21,具体用于根据所述第二组合对应的模板预测值和所述模板的重建值,确定所述第二组合对应的代价;根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表。
在一些实施例中,确定单元21,具体用于根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序;将排序后的所述R个第二组合,确定为所述候选组合列表。
在一些实施例中,确定单元21,具体用于按照所述代价从小到大顺序,对所述R个第二组合进行排序。
在一些实施例中,确定单元21,具体用于根据所述第二组合对应的代价,从所述R个第二组合中选出N个第二组合;将所述N个第二组合组成的列表,确定为所述候选组合列表。
可选的,所述N个第二组合为所述R个第二组合中所述代价最小的前N个第二组合。
在一些实施例中,确定单元21,具体用于确定P个权重导出模式和Q个预测模式,所述P为正整数,所述Q为大于或等于K的正整数;根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,所述R个第二组合中的任一第二组合包括所述P个权重导出模式中的一权重导出模式和所述Q个预测模式中的K个预测模式,所述P均为正整数,所述Q为大于或等于K的正整数。
在一些实施例中,确定单元21,具体用于确定所述当前块的候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,所述候选预测模式列表包括多个候选预测模式,所述K个预测模式中任一预测模式对应的备选预测模式列表包至少一个备选预测模式;根据所述候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及所述权重导出模式对应的预测模式中的至少一个,确定所述Q个预测模式。
在一些实施例中,确定单元21,具体用于针对所述K个预测模式中的任一预测模式,确定所述预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据所述候选预测模式列表和所述权重导出模式对应的预测模式中的至少一个,确定所述预测模式对应的备选预测模式列表。
在一些实施例中,确定单元21,具体用于根据与所述当前块相邻的至少一个块所使用的预测模式,确定所述候选预测模式列表。
在一些实施例中,确定单元21,还用于若所述候选预测模式列表中不包括预设模式时,则将所述预设模式添加至所述候选预测模式列表中。
可选的,所述预设模式包括DC、水平模式、竖直模式中的至少一个。
可选的,所述候选预测模式列表包括候选帧内预测模式列表、候选帧间预测模式列表中的至少一个,所述候选帧内预测模式列表包括至少一个候选帧内预测模式,所述候选帧间预测模式列表包括至少一个候选帧间预测模式。
在一些实施例中,确定单元21,具体用于针对所述P个权重导出模式中的第p个权重导出模式,确定所述第p个权重导出模式对应的预测模式,所述p为正整数;根据所述P个权重导出模式中至少一个权重导出模式对应的预测模式,确定所述权重导出模式对应的预测模式。
在一些实施例中,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定单元21,具体用于根据所述第p个权重导出模式确定角度索引;将所述角度索引对应的帧内预测模式,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
在一些实施例中,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,确定单元21,具体用于确定所述第p个权重导出模式对应的帧内预测模式;将所述第p个权重导出模式对应的帧内预测模式中的至少一个,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
可选的,所述第p个权重导出模式对应的帧内预测模式包括预测角度与所述权重导出模式对应的分界线平行的帧内预测模式、预测角度与所述权重导出模式对应的分界线垂直的帧内预测模式和planar模式中的至少一个。
在一些实施例中,所述Q小于或等于第一预设阈值。
在一些实施例中,所述Q的大小与所述当前块的大小和/或形状相关。
在一些实施例中,若所述当前块的大小大于第一数值时,则所述Q大于或等于第二预设阈值。
在一些实施例中,若所述当前块的大小小于或等于第一数值时,则所述Q小于第三预设阈值。
在一些实施例中,确定单元21,具体用于从预设的M个权重导出模式中,选出所述P个权重导出模式,所述M为大于或等于P的正整数。
在一些实施例中,确定单元21,具体用于从所述M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到所述P个权重导出模式。
在一些实施例中,确定单元21,具体用于确定所述当前块对应的筛选条件;根据所述筛选条件,从所述M个权重导出模式中,选出所述P个权重导出模式。
在一些实施例中,所述当前块对应的筛选条件包括所述当前块的大小对应的筛选条件和/或所述当前块的形状对应的筛选条件。
在一些实施例中,所述筛选条件包括数组,所述数组包括M个元素,所述M个元素与所述M个权重导出模式一一对应,所述权重导出模式对应的元素用于指示所述权重导出模式是否可用。
在一些实施例中,确定单元21,具体用于从所述P个权重导出模式中选出S个权重导出模式,所述S为小于或等于P的正整数;从所述Q个预测模式中选出T个预测模式,所述T为小于或等于Q的正整数;根据所述S个权重导出模式和所述T个预测模式,组成所述R个第二组合。
在一些实施例中,确定单元21,具体用于针对所述P个权重导出模式中的第i个权重导出模式,根据所述第i个权重导出模式,确定K个第二预测模式在所述模板上的权重,所述K个第二预测模式为所述Q个预测模式中的任意K个预测模式,所述i为从1到P的正整数;若所述K个预测模式中的任一预测模式在所述模板上的权重小于第一预设值时,则从所述P个权重导出模式中剔除所述第i个权重导出模式,得到所述S个权重导出模式。
在一些实施例中,确定单元21,具体用于针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式对所述模板进行预测时的代价,所述i为从1到P的正整数;根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式。
在一些实施例中,确定单元21,具体用于若所述第i个权重导出模式对应的代价小于第二预设值,则从所述P个权重导出模式中选出与所述第i个权重导出模式相似的权重导出模式;根据所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,确定所述S个权重导出模式。
在一些实施例中,确定单元21,具体用于若所述第i个权重导出模式对应的代价大于第三预设值,则从所述P个权重导出模式中剔除掉所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据所述剔除后的至少一个权重导出模式,确定所述S个权重导出模式。
在一些实施例中,确定单元21,具体用于针对所述Q个预测模式中的第i个预测模式,确定使用所述第i个预测模式对所述模板进行预测时的代价,所述i为从1到Q的正整数;根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式。
在一些实施例中,确定单元21,具体用于若所述第i个预测模式对应的代价小于第四预设值,则从所述Q个预测模式中选出与所述第i个预测模式相似的预测模式;根据所述第i个预测模式,以及所述第i个预测模式的相似预测模式,确定所述T个预测模式。
在一些实施例中,确定单元21,具体用于若所述第i个预测模式对应的代价大于第五预设值,则从所述Q个预测模式中剔除掉所述第i个预测模式,以及所述第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述剔除后的至少一个预测模式,确定所述T个预测模式。
在一些实施例中,确定单元21,具体用于针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式与所述Q个预测模式中的第j个预测模式对所述模板进行预测时的代价;若所述第i个权重导出模式与所述第j个预测模式组合对应的代价大于第六预设值,则从所述Q个预测模式中剔除掉所述第j个预测模式,以及所述第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述第i个权重导出模式和所述剔除后的至少一个预测模式,构建所述R个第二组合。
在一些实施例中,预测单元22,具体用于根据所述第一权重导出模式,确定预测值的权重;根据所述K个第一预测模式,确定K个预测值;根据所述预测值的权重对所述K个预测值进行加权,得到所述当前块的预测值。
可选的,所述预测值的权重为权重矩阵。
在一些实施例中,编码单元23,还用于采用变长编码方式将所述第一索编入所述码流。
在一些实施例中,编码单元23,还用于若所述候选组合列表所包括的候选组合数量小于第四预设阈值时,则采用定长编码方式将所述第一索引编入所述码流。
在一些实施例中,确定单元21,还用于确定至少一个标志,所述至少一个标志用于指示是否使用第一组合进行编码;若所述至少一个标志指示使用第一组合进行编码时,确定所述第一组合。
可选的,所述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图21所示的装置20可以对应于执行本申请实施例的编码端的编码方法中的相应主体,并且装置20中的各个单元的前述和其它操作和/或功能分别为了实现编码端的编码方法等各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图22是本申请实施例提供的电子设备的示意性框图。
如图22所示,该电子设备30可以为本申请实施例所述的视频编码器,或者视频解码器,该电子设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该电子设备30中的执行过程。
如图22所示,该电子设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
图22是本申请实施例提供的视频编解码系统的示意性框图。
如图22所示,该视频编解码系统40可包括:视频编码器41和视频解码器42,其中视频编码器41用于执行本申请实施例涉及的视频编码方法,视频解码器42用于执行本申请实施例涉及的视频解码方法。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
本申请还提供了一种码流,该码流是根据上述编码方法生成的。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如, 以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (96)
- 一种视频解码方法,其特征在于,包括:解码码流,得到第一索引,所述第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,所述K为大于1的正整数;根据所述第一索引,确定所述第一组合所包括的第一权重导出模式和K个第一预测模式;根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值。
- 根据权利要求1所述的方法,其特征在于,所述根据所述第一索引,确定所述第一组合所包括的第一权重导出模式和K个第一预测模式,包括:确定候选组合列表,所述候选组合列表中包括多个候选组合,所述多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式;将所述候选组合列表中所述第一索引对应的候选组合所包括的权重导出模式和K个预测模式,确定为所述第一权重导出模式和所述K个第一预测模式。
- 根据权利要求2所述的方法,其特征在于,所述确定候选组合列表,包括:构建所述候选组合列表。
- 根据权利要求3所述的方法,其特征在于,所述构建所述候选组合列表,包括:基于所述当前块的模板,构建所述候选组合列表。
- 根据权利要求4所述的方法,其特征在于,所述基于所述当前块的模板,构建所述候选组合列表,包括:确定R个第二组合,所述R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且所述R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,所述R为大于1的正整数;对于所述R个第二组合中的任一第二组合,使用所述第二组合中的权重导出模式和K个预测模式,对所述模板进行预测,得到所述第二组合对应的模板预测值;根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表。
- 根据权利要求5所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表,包括:根据所述第二组合对应的模板预测值和所述模板的重建值,确定所述第二组合对应的代价;根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表。
- 根据权利要求6所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表,包括:根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序;将排序后的所述R个第二组合,确定为所述候选组合列表。
- 根据权利要求7所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序,包括:按照所述代价从小到大的顺序,对所述R个第二组合进行排序。
- 根据权利要求6所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表,包括:根据所述第二组合对应的代价,从所述R个第二组合中选出N个第二组合;将所述N个第二组合组成的列表,确定为所述候选组合列表。
- 根据权利要求9所述的方法,其特征在于,所述N个第二组合为所述R个第二组合中所述代价最小的前N个第二组合。
- 根据权利要求5-10任一项所述的方法,其特征在于,所述确定R个第二组合,包括:确定P个权重导出模式和Q个预测模式,所述P为正整数,所述Q为大于或等于K的正整数;根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,所述R个第二组合中的任一第二组合包括所述P个权重导出模式中的一权重导出模式和所述Q个预测模式中的K个预测模式。
- 根据权利要求11所述的方法,其特征在于,确定Q个预测模式,包括:确定所述当前块的候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,所述候选预测模式列表包括多个候选预测模式,所述K个预测模式中任一预测模式对应的备选预测模式列表包至少一个备选预测模式;根据所述候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及所述权重导出模式对应的预测模式中的至少一个,确定所述Q个预测模式。
- 根据权利要求12所述的方法,其特征在于,确定所述K个预测模式分别对应的备选预测模式列表,包括:针对所述K个预测模式中的任一预测模式,确定所述预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据所述候选预测模式列表和所述权重导出模式对应的预测模式中的至少一个,确定所述预测模式对应的备选预测模式列表。
- 根据权利要求12或13所述的方法,其特征在于,所述确定所述候选预测模式列表,包括:根据与所述当前块相邻的至少一个块所使用的预测模式,确定所述候选预测模式列表。
- 根据权利要求14所述的方法,其特征在于,所述方法还包括:若所述候选预测模式列表中不包括预设模式时,则将所述预设模式添加至所述候选预测模式列表中。
- 根据权利要求15所述的方法,其特征在于,所述预设模式包括DC、水平模式、竖直模式中的至少一个。
- 根据权利要求14所述的方法,其特征在于,所述候选预测模式列表包括候选帧内预测模式列表、候选帧间预 测模式列表中的至少一个,所述候选帧内预测模式列表包括至少一个候选帧内预测模式,所述候选帧间预测模式列表包括至少一个候选帧间预测模式。
- 根据权利要求12或13所述的方法,其特征在于,确定所述权重导出模式对应的预测模式,包括:针对所述P个权重导出模式中的第p个权重导出模式,确定所述第p个权重导出模式对应的预测模式,所述p为正整数;根据所述P个权重导出模式中至少一个权重导出模式对应的预测模式,确定所述权重导出模式对应的预测模式。
- 根据权利要求18所述的方法,其特征在于,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,所述确定所述第p个权重导出模式对应的预测模式,包括:根据所述第p个权重导出模式确定角度索引;将所述角度索引对应的帧内预测模式,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
- 根据权利要求18所述的方法,其特征在于,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,所述确定所述第p个权重导出模式对应的预测模式,包括:确定所述第p个权重导出模式对应的帧内预测模式;将所述第p个权重导出模式对应的帧内预测模式中的至少一个,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
- 根据权利要求20所述的方法,其特征在于,所述第p个权重导出模式对应的帧内预测模式包括预测角度与所述权重导出模式对应的分界线平行的帧内预测模式、预测角度与所述权重导出模式对应的分界线垂直的帧内预测模式和planar模式中的至少一个。
- 根据权利要求11所述的方法,其特征在于,所述Q小于或等于第一预设阈值。
- 根据权利要求11所述的方法,其特征在于,所述Q的大小与所述当前块的大小和/或形状相关。
- 根据权利要求23所述的方法,其特征在于,若所述当前块的大小大于第一数值时,则所述Q大于或等于第二预设阈值。
- 根据权利要求23所述的方法,其特征在于,若所述当前块的大小小于或等于第一数值时,则所述Q小于第三预设阈值。
- 根据权利要求11所述的方法,其特征在于,所述确定P个权重导出模式,包括:从预设的M个权重导出模式中,选出所述P个权重导出模式,所述M为大于或等于P的正整数。
- 根据权利要求26所述的方法,其特征在于,所述从预设的M个权重导出模式中,选出所述P个权重导出模式,包括:从所述M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到所述P个权重导出模式。
- 根据权利要求26所述的方法,其特征在于,所述从预设的M个权重导出模式中,选出所述P个权重导出模式,包括:确定所述当前块对应的筛选条件;根据所述筛选条件,从所述M个权重导出模式中,选出所述P个权重导出模式。
- 根据权利要求28所述的方法,其特征在于,所述当前块对应的筛选条件包括所述当前块的大小对应的筛选条件和/或所述当前块的形状对应的筛选条件。
- 根据权利要求29所述的方法,其特征在于,所述筛选条件包括数组,所述数组包括M个元素,所述M个元素与所述M个权重导出模式一一对应,所述权重导出模式对应的元素用于指示所述权重导出模式是否可用。
- 根据权利要求11所述的方法,其特征在于,所述根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,包括:从所述P个权重导出模式中选出S个权重导出模式,所述S为小于或等于P的正整数;从所述Q个预测模式中选出T个预测模式,所述T为小于或等于Q的正整数;根据所述S个权重导出模式和所述T个预测模式,组成所述R个第二组合。
- 根据权利要求31所述的方法,其特征在于,所述从所述P个权重导出模式中选出S个权重导出模式,包括:针对所述P个权重导出模式中的第i个权重导出模式,根据所述第i个权重导出模式,确定K个第二预测模式在所述模板上的权重,所述K个第二预测模式为所述Q个预测模式中的任意K个预测模式,所述i为从1到P的正整数;若所述K个预测模式中的任一预测模式在所述模板上的权重小于第一预设值时,则从所述P个权重导出模式中剔除所述第i个权重导出模式,得到所述S个权重导出模式。
- 根据权利要求31所述的方法,其特征在于,所述从所述P个权重导出模式中选出S个权重导出模式,包括:针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式对所述模板进行预测时的代价,所述i为从1到P的正整数;根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式。
- 根据权利要求33所述的方法,其特征在于,所述根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式,包括:若所述第i个权重导出模式对应的代价小于第二预设值,则从所述P个权重导出模式中选出与所述第i个权重导出模式相似的权重导出模式;根据所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,确定所述S个权重导出模式。
- 根据权利要求33所述的方法,其特征在于,所述根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式,包括:若所述第i个权重导出模式对应的代价大于第三预设值,则从所述P个权重导出模式中剔除掉所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据所述剔除后的至少一个权重导出模式,确定所述S个权重导出模式。
- 根据权利要求31所述的方法,其特征在于,所述从所述Q个预测模式中选出T个预测模式,包括:针对所述Q个预测模式中的第i个预测模式,确定使用所述第i个预测模式对所述模板进行预测时的代价,所述i为从1到Q的正整数;根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式。
- 根据权利要求36所述的方法,其特征在于,所述根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式,包括:若所述第i个预测模式对应的代价小于第四预设值,则从所述Q个预测模式中选出与所述第i个预测模式相似的预测模式;根据所述第i个预测模式,以及所述第i个预测模式的相似预测模式,确定所述T个预测模式。
- 根据权利要求36所述的方法,其特征在于,所述根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式,包括:若所述第i个预测模式对应的代价大于第五预设值,则从所述Q个预测模式中剔除掉所述第i个预测模式,以及所述第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述剔除后的至少一个预测模式,确定所述T个预测模式。
- 根据权利要求31所述的方法,其特征在于,所述根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,包括:针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式与所述Q个预测模式中的第j个预测模式对所述模板进行预测时的代价;若所述第i个权重导出模式与所述第j个预测模式组合对应的代价大于第六预设值,则从所述Q个预测模式中剔除掉所述第j个预测模式,以及所述第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述第i个权重导出模式和所述剔除后的至少一个预测模式,构建所述R个第二组合。
- 根据权利要求1-10任一项所述的方法,其特征在于,所述根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值,包括:根据所述第一权重导出模式,确定预测值的权重;根据所述K个第一预测模式,确定所述K个预测值;根据所述K个预测值的权重对所述K个预测值进行加权,得到所述当前块的预测值。
- 根据权利要求40所述的方法,其特征在于,所述预测值的权重为权重矩阵。
- 根据权利要求1-10任一项所述的方法,其特征在于,所述第一索引采用变长编码方式编入所述码流。
- 根据权利要求2-10任一项所述的方法,其特征在于,若所述候选组合列表所包括的候选组合数量小于第四预设阈值时,则所述第一索引采用定长编码方式编入所述码流。
- 根据权利要求1-10任一项所述的方法,其特征在于,所述方法还包括:解码所述码流,得到至少一个标志,所述至少一个标志用于指示使用第一组合进行解码;所述解码码流,得到第一索引包括:若所述至少一个标志指示使用所述第一组合进行解码时,解码所述码流,得到所述第一索引。
- 根据权利要求44所述的方法,其特征在于,所述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
- 一种视频编码方法,其特征在于,包括:确定第一组合,所述第一组合包括第一权重导出模式和K个第一预测模式;根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值;根据所述当前块的预测值,得到码流,所述码流中包括第一索引,所述第一索引用于指示所述第一组合。
- 根据权利要求46所述的方法,其特征在于,所述确定第一组合,包括:确定候选组合列表,所述候选组合列表中包括多个候选组合,所述多个候选组合中的任一候选组合包括一个权重导出模式和K个预测模式;从所述候选组合列表中,确定出所述第一组合。
- 根据权利要求47所述的方法,其特征在于,所述确定候选组合列表,包括:构建所述候选组合列表。
- 根据权利要求48所述的方法,其特征在于,所述构建所述候选组合列表,包括:基于所述当前块的模板,构建所述候选组合列表。
- 根据权利要求49所述的方法,其特征在于,所述基于所述当前块的模板,构建所述候选组合列表,包括:确定R个第二组合,所述R个第二组合中的任一第二组合包括一权重导出模式和K个预测模式,且所述R个第二组合中任意两个组合所包括的权重导出模式和K个预测模式不完全相同,所述R为大于1的正整数;对于所述R个第二组合中的任一第二组合,使用所述第二组合中的权重导出模式和K个预测模式,对所述模板进行预测,得到所述第二组合对应的模板预测值;根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表。
- 根据权利要求50所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的模板预测值,构建所述候选组合列表,包括:根据所述第二组合对应的模板预测值和所述模板的重建值,确定所述第二组合对应的代价;根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表。
- 根据权利要求51所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表,包括:根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序;将排序后的所述R个第二组合,确定为所述候选组合列表。
- 根据权利要求52所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,对所述R个第二组合进行排序,包括:按照所述代价从小到大顺序,对所述R个第二组合进行排序。
- 根据权利要求51所述的方法,其特征在于,所述根据所述R个第二组合中各第二组合对应的代价,构建所述候选组合列表,包括:根据所述第二组合对应的代价,从所述R个第二组合中选出N个第二组合;将所述N个第二组合组成的列表,确定为所述候选组合列表。
- 根据权利要求54所述的方法,其特征在于,所述N个第二组合为所述R个第二组合中所述代价最小的前N个第二组合。
- 根据权利要求49-55任一项所述的方法,其特征在于,所述确定R个第二组合,包括:确定P个权重导出模式和Q个预测模式,所述P为正整数,所述Q为大于或等于K的正整数;根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,所述R个第二组合中的任一第二组合包括所述P个权重导出模式中的一权重导出模式和所述Q个预测模式中的K个预测模式。
- 根据权利要求56所述的方法,其特征在于,确定Q个预测模式,包括:确定所述当前块的候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及权重导出模式对应的预测模式中的至少一个,所述候选预测模式列表包括多个候选预测模式,所述K个预测模式中任一预测模式对应的备选预测模式列表包至少一个备选预测模式;根据所述候选预测模式列表、所述K个预测模式分别对应的备选预测模式列表、以及所述权重导出模式对应的预测模式中的至少一个,确定所述Q个预测模式。
- 根据权利要求57所述的方法,其特征在于,确定所述K个预测模式分别对应的备选预测模式列表,包括:针对所述K个预测模式中的任一预测模式,确定所述预测模式对应的候选预测模式列表,以及权重导出模式对应的预测模式中的至少一个;根据所述候选预测模式列表和所述权重导出模式对应的预测模式中的至少一个,确定所述预测模式对应的备选预测模式列表。
- 根据权利要求57或58所述的方法,其特征在于,所述确定所述候选预测模式列表,包括:根据与所述当前块相邻的至少一个块所使用的预测模式,确定所述候选预测模式列表。
- 根据权利要求59所述的方法,其特征在于,所述方法还包括:若所述候选预测模式列表中不包括预设模式时,则将所述预设模式添加至所述候选预测模式列表中。
- 根据权利要求60所述的方法,其特征在于,所述预设模式包括DC、水平模式、竖直模式中的至少一个。
- 根据权利要求59所述的方法,其特征在于,所述候选预测模式列表包括候选帧内预测模式列表、候选帧间预测模式列表中的至少一个,所述候选帧内预测模式列表包括至少一个候选帧内预测模式,所述候选帧间预测模式列表包括至少一个候选帧间预测模式。
- 根据权利要求57或58所述的方法,其特征在于,确定所述权重导出模式对应的预测模式,包括:针对所述P个权重导出模式中的第p个权重导出模式,确定所述第p个权重导出模式对应的预测模式,所述p为正整数;根据所述P个权重导出模式中至少一个权重导出模式对应的预测模式,确定所述权重导出模式对应的预测模式。
- 根据权利要求63所述的方法,其特征在于,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,所述确定所述第p个权重导出模式对应的预测模式,包括:根据所述第p个权重导出模式确定角度索引;将所述角度索引对应的帧内预测模式,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
- 根据权利要求63所述的方法,其特征在于,若所述第p个权重导出模式对应的预测模式中的至少一个为帧内预测模式时,所述确定所述第p个权重导出模式对应的预测模式,包括:确定所述第p个权重导出模式对应的帧内预测模式;将所述第p个权重导出模式对应的帧内预测模式中的至少一个,确定为所述第p个权重导出模式对应的预测模式中的至少一个。
- 根据权利要求65所述的方法,其特征在于,所述第p个权重导出模式对应的帧内预测模式包括预测角度与所述权重导出模式对应的分界线平行的帧内预测模式、预测角度与所述权重导出模式对应的分界线垂直的帧内预测模式和planar模式中的至少一个。
- 根据权利要求56所述的方法,其特征在于,所述Q小于或等于第一预设阈值。
- 根据权利要求56所述的方法,其特征在于,所述Q的大小与所述当前块的大小和/或形状相关。
- 根据权利要求68所述的方法,其特征在于,若所述当前块的大小大于第一数值时,则所述Q大于或等于第二预设阈值。
- 根据权利要求68所述的方法,其特征在于,若所述当前块的大小小于或等于第一数值时,则所述Q小于第三预设阈值。
- 根据权利要求56所述的方法,其特征在于,所述确定P个权重导出模式,包括:从预设的M个权重导出模式中,选出所述P个权重导出模式,所述M为大于或等于P的正整数。
- 根据权利要求71所述的方法,其特征在于,所述从预设的M个权重导出模式中,选出所述P个权重导出模式,包括:从所述M个权重导出模式中剔除预设划分角度和/或预设偏移量对应的权重导出模式,得到所述P个权重导出模式。
- 根据权利要求71所述的方法,其特征在于,所述从预设的M个权重导出模式中,选出所述P个权重导出模式,包括:确定所述当前块对应的筛选条件;根据所述筛选条件,从所述M个权重导出模式中,选出所述P个权重导出模式。
- 根据权利要求73所述的方法,其特征在于,所述当前块对应的筛选条件包括所述当前块的大小对应的筛选条件和/或所述当前块的形状对应的筛选条件。
- 根据权利要求74所述的方法,其特征在于,所述筛选条件包括数组,所述数组包括M个元素,所述M个元素与所述M个权重导出模式一一对应,所述权重导出模式对应的元素用于指示所述权重导出模式是否可用。
- 根据权利要求56所述的方法,其特征在于,所述根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,包括:从所述P个权重导出模式中选出S个权重导出模式,所述S为小于或等于P的正整数;从所述Q个预测模式中选出T个预测模式,所述T为小于或等于Q的正整数;根据所述S个权重导出模式和所述T个预测模式,组成所述R个第二组合。
- 根据权利要求76所述的方法,其特征在于,所述从所述P个权重导出模式中选出S个权重导出模式,包括:针对所述P个权重导出模式中的第i个权重导出模式,根据所述第i个权重导出模式,确定K个第二预测模式在所述模板上的权重,所述K个第二预测模式为所述Q个预测模式中的任意K个预测模式,所述i为从1到P的正整数;若所述K个预测模式中的任一预测模式在所述模板上的权重小于第一预设值时,则从所述P个权重导出模式中剔除所述第i个权重导出模式,得到所述S个权重导出模式。
- 根据权利要求76所述的方法,其特征在于,所述从所述P个权重导出模式中选出S个权重导出模式,包括:针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式对所述模板进行预测时的代价,所述i为从1到P的正整数;根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式。
- 根据权利要求78所述的方法,其特征在于,所述根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式,包括:若所述第i个权重导出模式对应的代价小于第二预设值,则从所述P个权重导出模式中选出与所述第i个权重导出模式相似的权重导出模式;根据所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,确定所述S个权重导出模式。
- 根据权利要求78所述的方法,其特征在于,所述根据所述第i个权重导出模式对应的代价,从所述P个权重导出模式中选出所述S个权重导出模式,包括:若所述第i个权重导出模式对应的代价大于第三预设值,则从所述P个权重导出模式中剔除掉所述第i个权重导出模式,以及所述第i个权重导出模式的相似权重导出模式,得到剔除后的至少一个权重导出模式;根据所述剔除后的至少一个权重导出模式,确定所述S个权重导出模式。
- 根据权利要求76所述的方法,其特征在于,所述从所述Q个预测模式中选出T个预测模式,包括:针对所述Q个预测模式中的第i个预测模式,确定使用所述第i个预测模式对所述模板进行预测时的代价,所述i为从1到Q的正整数;根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式。
- 根据权利要求81所述的方法,其特征在于,所述根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式,包括:若所述第i个预测模式对应的代价小于第四预设值,则从所述Q个预测模式中选出与所述第i个预测模式相似的预测模式;根据所述第i个预测模式,以及所述第i个预测模式的相似预测模式,确定所述T个预测模式。
- 根据权利要求81所述的方法,其特征在于,所述根据所述第i个预测模式对应的代价,从所述Q个预测模式中选出所述T个预测模式,包括:若所述第i个预测模式对应的代价大于第五预设值,则从所述Q个预测模式中剔除掉所述第i个预测模式,以及所述第i个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述剔除后的至少一个预测模式,确定所述T个预测模式。
- 根据权利要求76所述的方法,其特征在于,所述根据所述P个权重导出模式和所述Q个预测模式,构建所述R个第二组合,包括:针对所述P个权重导出模式中的第i个权重导出模式,确定使用所述第i个权重导出模式与所述Q个预测模式中的第j个预测模式对所述模板进行预测时的代价;若所述第i个权重导出模式与所述第j个预测模式组合对应的代价大于第六预设值,则从所述Q个预测模式中剔除掉所述第j个预测模式,以及所述第j个预测模式的相似预测模式,得到剔除后的至少一个预测模式;根据所述第i个权重导出模式和所述剔除后的至少一个预测模式,构建所述R个第二组合。
- 根据权利要求46-55任一项所述的方法,其特征在于,所述根据所述第一权重导出模式和所述K个第一预测 模式对当前块进行预测,得到所述当前块的预测值,包括:根据所述第一权重导出模式,确定预测值的权重;根据所述K个第一预测模式,确定所述K个预测值;根据所述预测值的权重对所述K个预测值进行加权,得到所述当前块的预测值。
- 根据权利要求85所述的方法,其特征在于,所述预测值的权重为权重矩阵。
- 根据权利要求46-55任一项所述的方法,其特征在于,所述方法还包括:采用变长编码方式将所述第一索编入所述码流。
- 根据权利要求47-55任一项所述的方法,其特征在于,所述方法还包括:若所述候选组合列表所包括的候选组合数量小于第四预设阈值时,则采用定长编码方式将所述第一索引编入所述码流。
- 根据权利要求46-55任一项所述的方法,其特征在于,所述方法还包括:确定至少一个标志,所述至少一个标志用于指示是否使用第一组合进行编码;所述确定第一组合包括:若所述至少一个标志指示使用第一组合进行编码时,确定所述第一组合。
- 根据权利要求89所述的方法,其特征在于,所述至少一个标志包括序列级标志、图像级标志、片级标志、单元级标志和块级标志中的至少一个。
- 一种视频解码装置,其特征在于,包括:解码单元,用于解码码流,得到第一索引,所述第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,所述K为大于1的正整数;确定单元,用于根据所述第一索引,确定所述第一组合所包括的第一权重导出模式和K个第一预测模式;预测单元,用于根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值。
- 一种视频编码装置,其特征在于,包括:确定单元,用于确定第一组合,所述第一组合包括第一权重导出模式和K个第一预测模式;预测单元,用于根据所述第一权重导出模式和所述K个第一预测模式对当前块进行预测,得到所述当前块的预测值;编码单元,用于根据所述当前块的预测值,得到码流,所述码流中包括第一索引,所述第一索引用于指示所述第一组合。
- 一种电子设备,其特征在于,包括处理器和存储器;所示存储器用于存储计算机程序;所述处理器用于调用并运行所述存储器中存储的计算机程序,以实现上述权利要求1至45或46至90任一项所述的方法。
- 一种视频编解码系统,其特征在于,包括:视频编码器和视频解码器;所述的视频解码器用于实现上述权利要求1至45任一项所述的方法;所述的视频编码器用于实现上述权利要求46至90任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,用于存储计算机程序;所述计算机程序使得计算机执行如上述权利要求1至45或46至90任一项所述的方法。
- 一种码流,其特征在于,所述码流包括第一索引,所述第一索引用于指示由一个权重导出模式和K个预测模式组成的第一组合,所述K为大于1的正整数。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/086450 WO2023197183A1 (zh) | 2022-04-12 | 2022-04-12 | 视频编解码方法、装置、设备、系统、及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119032568A true CN119032568A (zh) | 2024-11-26 |
Family
ID=88328702
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202280094792.6A Pending CN119032568A (zh) | 2022-04-12 | 2022-04-12 | 视频编解码方法、装置、设备、系统、及存储介质 |
| CN202280094788.XA Pending CN119096545A (zh) | 2022-04-12 | 2022-06-09 | 视频编解码方法、装置、设备、系统、及存储介质 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202280094788.XA Pending CN119096545A (zh) | 2022-04-12 | 2022-06-09 | 视频编解码方法、装置、设备、系统、及存储介质 |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US20250039361A1 (zh) |
| EP (2) | EP4510579A4 (zh) |
| JP (2) | JP2025513075A (zh) |
| KR (2) | KR20250002379A (zh) |
| CN (2) | CN119032568A (zh) |
| MX (2) | MX2024012670A (zh) |
| WO (2) | WO2023197183A1 (zh) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116320428A (zh) * | 2021-12-20 | 2023-06-23 | 维沃移动通信有限公司 | 帧间预测方法及终端 |
| US20240297981A1 (en) * | 2023-03-02 | 2024-09-05 | Qualcomm Incorporated | Template matching patterns and fusion for template matching related video coding |
| US12348747B2 (en) * | 2023-04-25 | 2025-07-01 | Tencent America LLC | Implicit masked blending mode |
| US12477122B2 (en) * | 2023-06-20 | 2025-11-18 | Tencent America LLC | Implicit masked blending mode improvement |
| US12284375B2 (en) | 2023-06-27 | 2025-04-22 | Tencent America LLC | Implicit masked blending mode improvement with high level syntax |
| WO2025206716A1 (ko) * | 2024-03-26 | 2025-10-02 | 현대자동차주식회사 | 다양한 참조화소에 기반한 행렬기반 인트라 예측 방법 및 장치 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9462272B2 (en) * | 2010-12-13 | 2016-10-04 | Electronics And Telecommunications Research Institute | Intra prediction method and apparatus |
| CN117857784A (zh) * | 2016-10-14 | 2024-04-09 | 世宗大学校产学协力团 | 影像编码/解码方法及比特流的传送方法 |
| CN115643399B (zh) * | 2017-08-22 | 2025-11-18 | 松下电器(美国)知识产权公司 | 图像编码器和图像解码器 |
| US11128871B2 (en) * | 2018-04-25 | 2021-09-21 | Panasonic Intellectual Property Corporation Of America | Encoder for adaptively determining information related to splitting based on characteristics of neighboring samples |
| EP3895422A1 (en) * | 2018-12-11 | 2021-10-20 | InterDigital VC Holdings, Inc. | Method and apparatus for deblocking an image |
| GB2580326A (en) * | 2018-12-28 | 2020-07-22 | British Broadcasting Corp | Video encoding and video decoding |
| US11166015B2 (en) * | 2019-03-06 | 2021-11-02 | Tencent America LLC | Method and apparatus for video coding |
| WO2021001514A1 (en) * | 2019-07-03 | 2021-01-07 | Interdigital Vc Holdings France, Sas | Signaling of merge indices for triangle partitions |
| CN114270845A (zh) * | 2019-08-26 | 2022-04-01 | 华为技术有限公司 | 运动信息存储方法及装置 |
| US11405619B2 (en) * | 2019-09-23 | 2022-08-02 | Qualcomm Incorporated | Geometric partition mode with simplified motion field storage and motion compensation in video coding |
| GB2589932A (en) * | 2019-12-13 | 2021-06-16 | British Broadcasting Corp | Video encoding and video decoding |
| CN113497942A (zh) * | 2020-04-08 | 2021-10-12 | Oppo广东移动通信有限公司 | 一种帧间预测方法、编码器、解码器及存储介质 |
| CN111741297B (zh) * | 2020-06-12 | 2024-02-20 | 浙江大华技术股份有限公司 | 帧间预测方法、视频编码方法及其相关装置 |
| US11388421B1 (en) * | 2021-01-13 | 2022-07-12 | Lemon Inc. | Usage of templates for decoder-side intra mode derivation |
| US11876973B2 (en) * | 2021-04-12 | 2024-01-16 | Alibaba (China) Co., Ltd. | Method, apparatus, and non-transitory computer-readable storage medium for motion vector refinement for geometric partition mode |
| CN114640848B (zh) * | 2021-04-13 | 2023-04-28 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
-
2022
- 2022-04-12 EP EP22936837.8A patent/EP4510579A4/en active Pending
- 2022-04-12 WO PCT/CN2022/086450 patent/WO2023197183A1/zh not_active Ceased
- 2022-04-12 JP JP2024560528A patent/JP2025513075A/ja active Pending
- 2022-04-12 KR KR1020247037095A patent/KR20250002379A/ko active Pending
- 2022-04-12 CN CN202280094792.6A patent/CN119032568A/zh active Pending
- 2022-06-09 CN CN202280094788.XA patent/CN119096545A/zh active Pending
- 2022-06-09 EP EP22937071.3A patent/EP4510581A1/en active Pending
- 2022-06-09 KR KR1020247037762A patent/KR20250002485A/ko active Pending
- 2022-06-09 JP JP2024560819A patent/JP2025512527A/ja active Pending
- 2022-06-09 WO PCT/CN2022/097978 patent/WO2023197433A1/zh not_active Ceased
-
2024
- 2024-10-10 US US18/911,370 patent/US20250039361A1/en active Pending
- 2024-10-11 MX MX2024012670A patent/MX2024012670A/es unknown
- 2024-10-14 US US18/915,214 patent/US20250039364A1/en active Pending
- 2024-10-14 MX MX2024012725A patent/MX2024012725A/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| MX2024012725A (es) | 2024-11-08 |
| WO2023197183A1 (zh) | 2023-10-19 |
| US20250039361A1 (en) | 2025-01-30 |
| EP4510579A4 (en) | 2026-01-21 |
| MX2024012670A (es) | 2024-11-08 |
| JP2025512527A (ja) | 2025-04-17 |
| EP4510581A1 (en) | 2025-02-19 |
| US20250039364A1 (en) | 2025-01-30 |
| CN119096545A (zh) | 2024-12-06 |
| EP4510579A1 (en) | 2025-02-19 |
| KR20250002485A (ko) | 2025-01-07 |
| WO2023197433A1 (zh) | 2023-10-19 |
| JP2025513075A (ja) | 2025-04-22 |
| KR20250002379A (ko) | 2025-01-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112789858B (zh) | 帧内预测方法及设备 | |
| CN119032568A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| WO2020147782A1 (en) | An encoder, a decoder and corresponding methods of deblocking filter adaptation | |
| CN117730531A (zh) | 用于解码器侧帧内模式推导的方法和设备 | |
| CN118476224A (zh) | 预测方法、装置、设备、系统、及存储介质 | |
| CN118435595A (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| WO2023122968A1 (zh) | 帧内预测方法、设备、系统、及存储介质 | |
| CN118402239A (zh) | 预测方法、装置、设备、系统、及存储介质 | |
| CN117413516A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
| CN119487832A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN120019658A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN120530627A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN120239967A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN120826907A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN120958801A (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
| CN119137938A (zh) | 视频编码方法、装置、设备、系统、及存储介质 | |
| CN120128731A (zh) | 视频编解码方法、装置、设备 | |
| CN119316619A (zh) | 编解码方法和装置 | |
| CN120128703A (zh) | 视频编解码方法、装置、设备及存储介质 | |
| CN118646900A (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 |