CN118381923A - 视频编码和解码方法及其设备 - Google Patents

视频编码和解码方法及其设备 Download PDF

Info

Publication number
CN118381923A
CN118381923A CN202410081808.0A CN202410081808A CN118381923A CN 118381923 A CN118381923 A CN 118381923A CN 202410081808 A CN202410081808 A CN 202410081808A CN 118381923 A CN118381923 A CN 118381923A
Authority
CN
China
Prior art keywords
block
current
intra
template
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410081808.0A
Other languages
English (en)
Inventor
朱弘正
郭哲瑋
闫宁
修晓宇
陈伟
马常月
王祥林
于冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN118381923A publication Critical patent/CN118381923A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供一种视频编码和解码方法及其设备。一种视频编码方法可包括:确定用于当前帧中的当前块的帧内预测模式;基于所述帧内预测模式执行对所述当前块的编码,其中,基于所述帧内预测模式执行对所述当前块的编码可包括:从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;基于所述参考块获得所述当前块的预测块。

Description

视频编码和解码方法及其设备
技术领域
本公开涉及视频编解码和压缩。更具体地,本申请涉及用于改进基于滤波模板匹配的帧内预测(Filtered Template Matching based intra Prediction,F TMP)模式的编解码效率的方法和设备。
背景技术
数字视频被各种电子设备支持,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流传输设备等。电子设备跨通信网络发送和接收或以其他方式通信传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的有限带宽容量和存储设备的有限存储资源,视频编解码可用于在通信传送或存储视频数据之前根据一个或多个视频编解码标准来压缩视频数据。例如,视频编解码标准包括通用视频编解码(VersatileVideo Coding,VVC)、联合探索测试模型(Joint Exploration test Model,JE M)、高效视频编解码(High-Efficiency Video Coding,HEVC/H.265)、高级视频编解码(AdvancedVideo Coding,AVC/H.264)、运动图片专家组(Moving P icture Expert Group,MPEG)编解码等。视频编解码通常使用利用视频数据中固有的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码旨在将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的降级。
发明内容
本公开的实施例提供应用帧内FTMP技术的可提高图像/视频块的编解码效率的方法及设备。
根据本公开的实施例,提出一种视频编码方法,可包括:确定用于当前帧中的当前块的帧内预测模式;基于所述帧内预测模式执行对所述当前块的编码,其中,基于所述帧内预测模式执行对所述当前块的编码可包括:从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;基于所述参考块获得所述当前块的预测块。
根据本公开的实施例,提出一种视频解码方法,可包括:确定用于当前帧中的当前块的帧内预测模式;基于所述帧内预测模式执行对所述当前块的解码,其中,基于所述帧内预测模式执行对所述当前块的解码,包括:从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;基于所述参考块获得所述当前块的预测块。
根据本公开的实施例,提出分数像素模板匹配以进一步改进帧内FTMP模式的预测精度。
根据本公开的实施例,提供多假设帧内FTMP方法以利用多个假设通过使用固定加权因子来产生最终预测块。
根据本公开的实施例,提供多假设帧内FTMP方法以利用多个假设通过使用自适应加权因子来产生最终预测块。
应当理解,前面的一般性描述和下面的详细描述都仅是示例,并不限制本公开。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了与本公开一致的示例,并且与说明书一起用于解释本公开的原理。
图1是示出根据本公开的一些实施方式的用于对视频块进行编码和解码的示例性系统的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本发明的一些实施方式的示例性视频解码器的框图。
图4A至图4E是示出根据本公开的一些实施方式的如何将帧递归地划分为不同尺寸和形状的多个视频块的框图。
图5是示出根据本公开的一些实施方式的与用户界面耦合的计算环境的图。
图6是示出如VVC中所定义的帧内模式的框图。
图7示出了用于帧内预测的多个参考线的示图。
图8A和图8B分别示出了右上对角线模式和左下对角线模式下的用于位置相关帧内预测组合(PDPC)的参考样本的示图。
图9A示出了用于4×8和8×4CU的子分区的示图。
图9B示出了除4×8、8×4和4×4CU之外的CU的子分区的图。
图10示出了跨分量线性模型预测中所涉及的CU的左侧样本和上方样本的位置的示图。
图11示出了矩阵加权帧内预测过程的示图。
图12示出了所使用的帧内模板匹配搜索区域的示图。
图13示出了参考块的滤波器形状和训练区域的示图。
图14示出了候选区域的可能位置的示图。
图15示出了候选区域的可能位置的示图。
图16是根据本公开实施例的视频编码方法的流程图。
图17是根据本公开实施例的视频解码方法的流程图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
应当说明,在本公开的说明书、权利要求书和附图中使用的术语“第一”、“第二”等用于区分对象,而不是用于描述任何特定的顺序或次序。应当理解,以这种方式使用的数据可在适当的条件下互换,使得本文描述的本公开的实施例可按照除了附图中所示或本公开中描述的那些顺序之外的顺序来实现。
图1是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可包括任何无线或有线通信介质,诸如射频(Radio Frequency,RF)频谱或一个或多个物理传输线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网)的一部分。通信介质可包括路由器、交换机、基站或可有利于促进从源设备12到目标设备14的通信的任何其他装置。
在一些其他实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、数字通用磁盘(Digital Versatile Disk,DVD)、光盘只读存储器(Compact DiscRead-Only Memory,CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或可保留由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备2经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、文件传输协议(File Transfer Protocol,FTP)服务器、网络附属存储(Network Attached Storage,NAS)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字用户线路(Digital Subscriber Line,DSL)、电缆调制解调器等)或两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供商接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可适用于视频编解码,并且可应用于无线和/或有线应用。
可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其他设备访问,以用于解码和/或播放。输出接口22还可包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LiquidCrystal Display,LCD)、等离子显示器、有机发光二极管(Organic Light EmittingDiode,OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4、Part 10、AVC)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可分别被实现为各种合适的编码器和/或解码器电路中的任何电路,诸如一个或多个微处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可将用于软件的指令存储于合适的非易失性计算机可读介质中,并且使用一个或多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可被包括在一个或多个编码器或解码器中,编码器或解码器中的任一者可被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或去除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。应注意,术语“帧”可用作视频编解码领域中的术语“图像”或“图片”的同义词。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(Decoded Picture Buffer,DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、划分单元45、帧内预测处理单元46和帧内块复制(Block Copy,BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重构的反量化单元58、逆变换处理单元60和加法器62。环路滤波器63(诸如去块滤波器)可位于加法器62与DPB 64之间来对块边界进行滤波以从重构视频去除块效应伪影。除了可使用去块滤波器之外,还可使用另外的环路滤波器(诸如样本自适应偏移(Sample Adaptive Offset,SAO)滤波器、跨分量样本自适应偏移(Cross ComponentSample Adaptive Offset,CCSAO)滤波器和/或自适应环路滤波器(Adaptive in-LoopFilter,ALF))来对加法器62的输出进行滤波。应说明,对于CCSAO技术,本公开不限于本文中所描述的实施例,且替代地,本公开可应用于以下情况:根据亮度分量、Cb色度分量和Cr色度分量中的任一分量选择亮度分量、Cb色度分量和Cr色度分量中的另一分量的偏移以基于所选择的偏移修改所述另一分量的情况。此外,还应说明,本文中所提及的第一分量可以是亮度分量、Cb色度分量和Cr色度分量中的任一分量,本文中所提及的第二分量可以是亮度分量、Cb色度分量和Cr色度分量中的另一分量,并且本文中所提及的第三分量可以是亮度分量、Cb色度分量和Cr色度分量中的剩余一个分量。在一些示例中,可省略环路滤波器,并且可由加法器62直接将解码的视频块提供给DPB 64。视频编码器20可采取固定或可编程硬件单元的形式,或者可分散在所说明的固定或可编程硬件单元中的一个或多个中。
视频数据存储器40可存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可例如从如图1所示的视频源18获得。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据(参考帧或图片)的缓冲器。视频数据存储器40和DPB 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的划分单元45将视频数据划分为视频块。此划分操作还可包括根据与视频数据相关联的预定义的拆分结构(例如四叉树(Quad-Tree,QT)结构)将视频帧划分为条带、瓦片(例如,视频块的集合)或其他更大的编码单元(Coding Unit,CU)。视频帧是或可被认为是具有样本值的样本的二维阵列或矩阵。阵列中的样本也可被称作像素或pel。阵列或图片的水平和垂直方向(或轴)上的样本的数量定义视频帧的尺寸和/或分辨率。可通过(例如)使用QT划分将视频帧分割为多个视频块。视频块也是或可被认为是具有样本值的样本的二维阵列或矩阵,但是视频块的尺寸小于视频帧。视频块的水平和垂直方向(或轴)上的样本的数量定义视频块的尺寸。可通过例如迭代地使用QT划分、二叉树(Binary-Tree,BT)划分或三叉树(Triple-Tree,TT)划分或其任意组合进一步将视频块划分为一个或多个块分区或子块(其可再次形成块)。应当注意,如本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,特别是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(Coding TreeUnit,CTU)、CU、预测单元(Prediction Unit,PU)或变换单元(Transform Unit,TU)和/或可以是或对应于相应块,例如编码树块(Coding Tree Block,CTB)、编码块(Coding Block,CB)、预测块(Prediction Block,PB)或变换块(Transform Block,TB)和/或子块。
预测处理单元41可基于误差结果(例如,码率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重构编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、划分信息和其他此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可执行当前视频块相对于与待编码的当前块在同一帧中的一个或多个相邻块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块相对于一个或多个参考帧中的一个或多个预测块的帧间预测编码以提供时间预测。视频编码器20可执行多个编码通道,例如,为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块相对于针对当前帧内正被编码的当前块的参考帧内的预测块的位移。预定的模式可将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
在像素差方面,视频块的预测块可以是或可对应于与待编码的视频块紧密匹配的参考帧的块或参考块,像素差可由绝对差总和(Sum of Absolute Difference,SAD)、平方差总和(Sum of Square Difference,SSD)或其他差度量确定。在一些实施方式中,视频编码器20可计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在DPB 64中的一个或多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动矢量提取或生成预测块。在接收到针对当前视频块的运动矢量后,运动补偿单元44可在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可包括亮度分量差或色度分量差或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独示出。
在一些实施方式中,帧内BC单元48可按照与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块在与正被编码的当前块的同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可例如在不同的编码通道期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可在各种测试的帧内预测模式中选择合适的帧内预测模式以使用并相应地生成帧内模式指示符。例如,帧内BC单元48可使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以生成编码块的原始未编码块之间的失真(或误差)量、以及用于生成编码块的比特率(即,比特数量)。帧内BC单元48可从针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其他示例中,帧内BC单元48可全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可由SAD、SSD或其他差度量确定,并且预测块的识别可包括计算子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是根据帧间预测的不同帧,视频编码器20可通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元46可确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可例如在不同的编码通道期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可被包括在一个或多个TU中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(Discrete Cosine Transform,DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可减小与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可随后对包括量化的变换系数的矩阵执行扫描。可选地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(ContextAdaptive Variable Length Coding,CAVLC)、上下文自适应二进制算术编码(ContextAdaptive Binary Arithmetic Coding,CABAC)、基于语法的上下文自适应二进制算术编码(Syntax-based context-adaptive Binary Arithmetic Coding,SBAC)、概率区间划分熵(Probability Interval Partitioning Entropy,PIPE)编码或另外的熵编码方法或技术熵编码技术,将量化的变换系数熵编码为视频比特流。然后,可将编码的比特流发送到如图1所示的视频解码器30,或存档于如图1所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30提取。熵编码单元56还可对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重构残差块以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可从存储在DPB 64中的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或多个插值滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重构的残差块加到由运动补偿单元44生成的运动补偿预测块来生成参考块以存储在DPB 64中。然后,参考块可由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是示出根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可分散在视频解码器30的多个单元中的一个或多个单元中。例如,帧内BC单元85可单独地或与视频解码器30的其他单元(诸如,运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可不包括帧内BC单元85,并且帧内BC单元85的功能可由预测处理单元81的其他组件(诸如运动补偿单元82)执行。
视频数据存储器79可存储将由视频解码器30的其他组件进行解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(Coded Picture Buffer,CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测解码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(Dynamic Random Access Memory,DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80可对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。然后,熵解码单元80将运动矢量或帧内预测模式指示符和其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可基于用信号通知的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素生成针对当前视频帧的视频块的一个或多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧生成。视频解码器30可基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行解码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其他语法元素生成针对当前视频块的预测块。预测块可在由视频编码器20定义的与当前视频块的同一图片的重构区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息生成针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行解码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可使用接收到的语法元素中的一些语法元素,例如确定当前视频块是使用帧内BC模式预测的标志、帧的哪些视频块在重构区域内且应被存储在DPB92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可从接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来生成预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供且被熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重构残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重构针对当前视频块的解码视频块。环路滤波器91(诸如去块滤波器、SAO滤波器、CCSAO滤波器和/或ALF)可位于加法器90与DPB 92之间以进一步处理解码视频块。在一些示例中,可省略环路滤波器91,并且可由加法器90将解码视频块直接提供给DPB 92。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可存储解码视频以用于稍后呈现在显示器设备(例如,图1的显示器设备34)上。
在典型的视频编解码过程中,视频序列通常包括帧或图片的有序集合。每一帧可包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其他情况下,帧可以是单色的,因此仅包括亮度样本的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地,划分单元45)通过首先将帧划分为CTU的集合来生成帧的编码表示。视频帧可包括以光栅扫描顺序从左到右和从上到下连续排列的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号通知CTU的宽度和高度,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本申请不一定限于特定尺寸。如图4B中所示,每个CTU可包括亮度样本的一个CTB、色度样本的两个对应编码树块、以及用于对编码树块的样本进行编解码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可如何在视频解码器30处重构视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独颜色平面的图片中,CTU可包括单个编码树块和用于对该编码树块的样本进行编解码的语法元素。编码树块可以是N×N样本块。
为实现更好的性能,视频编码器20可对CTU的编码树块递归地执行树划分,例如二叉树划分、三叉树划分、四叉树划分或其组合,并且将CTU分割为更小的CU。如图4C中所描绘的,首先将64×64CTU 400分割为四个较小的CU,每个CU具有32×32的块尺寸。在四个较小的CU中,分别将CU 410和CU 420分割为块尺寸为16×16的四个CU。分别将两个16×16的CU430和CU 440进一步分割为块尺寸为8×8的四个CU。图4D描绘了示出如图4C中所描绘的CTU400的划分过程的最终结果的四叉树数据结构,四叉树的每个叶节点与范围从32×32到8×8的各个尺寸的一个CU对应。类似于图4B中描绘的CTU,每个CU可包括相同尺寸的帧的亮度样本的CB和色度样本的两个对应编码块、和用于对编码块的样本进行编解码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可包括单个编码块和用于对编码块的样本进行编解码的语法结构。应注意,图4C和图4D中所描绘的四叉树划分仅出于说明性目的,并且一个CTU可基于四叉树/三叉树/二叉树划分被拆分为CU以适应于变化的局部特性。在多类型树结构中,一个CTU被四叉树结构划分,并且每个四叉树叶CU可被二叉树结构和三叉树结构进一步划分。如图4E所示,宽度为W且高度为H的编码块存在五种可能的划分类型,即四元划分、水平二元划分、垂直二元划分、水平三元划分和垂直三元划分。
在一些实施方式中,视频编码器20可进一步将CU的编码块划分为一个或多个M×NPB。PB是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样本块。CU的PU可包括亮度样本的PB、色度样本的两个对应PB和用于对PB进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可包括单个PB和用于对PB进行预测的语法结构。视频编码器20可生成针对CU的每个PU的亮度PB、Cb PB和Cr PB的预测亮度块、预测Cb块和预测Cr块。
视频编码器20可使用帧内预测或帧间预测来生成针对PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可基于与PU相关联的帧的解码样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可基于除与PU相关联的帧之外的一个或多个帧的解码样本来生成PU的预测块。
在视频编码器20生成针对CU的一个或多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可通过从CU的原始亮度编码块减去CU的预测亮度块来生成针对CU的亮度残差块,使得CU的亮度残差块中的每个样本指示CU的预测亮度块之一中的亮度样本与CU的原始亮度编码块中的对应样本之间的差。类似地,视频编码器20可分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样本指示CU的预测Cb块之一中的Cb样本与CU的原始Cb编码块中的对应样本之间的差,并且CU的Cr残差块中的每个样本可指示CU的预测Cr块之一中的Cr样本与CU的原始Cr编码块中的对应样本之间的差。
此外,如图4C中所示,视频编码器20可使用四叉树划分分别将CU的亮度残差块、Cb残差块和Cr残差块分解成一个或多个亮度变换块、Cb变换块和Cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样本块。CU的TU可包括亮度样本的变换块、色度样本的两个对应变换块和用于对变换块样本进行变换的语法元素。因此,CU的每个TU可与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可包括单个变换块和用于对该变换块的样本进行变换的语法结构。
视频编码器20可将一个或多个变换应用于TU的亮度变换块以生成针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于TU的Cb变换块以生成针对TU的Cb系数块。视频编码器20可将一个或多个变换应用于TU的Cr变换块以生成针对TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可对指示量化的变换系数的语法元素执行CABAC。最后,视频编码器20可输出包括比特序列的比特流,比特序列形成编码帧和相关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可解析比特流以从比特流获得语法元素。视频解码器30可至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重构。对视频数据进行重构的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可对与当前CU的TU相关联的系数块执行逆变换以重构与当前CU的TU相关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样本加到当前CU的TU的变换块的对应样本,来重构当前CU的编码块。在重构针对帧的每个CU的编码块之后,视频解码器30可重构帧。
如上所述,视频编解码主要使用两种模式(即,帧之内预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,IBC可被视为帧内预测或第三模式。在两种模式之间,帧间预测比帧内预测对编解码效率的贡献更大,这是因为使用运动矢量来从参考视频块预测当前视频块。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更细化的视频块尺寸,表示当前帧的运动矢量所需的数据量也显著增加。克服此挑战的一种方式是受益于以下事实:不仅空间域和时间域两者中的一组相邻CU具有用于预测目的的相似视频数据,而且这些相邻CU之间的运动矢量也是相似的。因此,可通过探索空间相邻CU和/或时间同位CU的空间和时间相关性来使用空间相邻CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动矢量)的近似,这也被称为当前CU的“运动矢量预测因子(MotionVector Predictor,MVP)”。
代替将由如上文结合图2所描述由运动估计单元42确定的当前CU的实际运动矢量编码到视频比特流中,从当前CU的实际运动矢量减去当前CU的运动矢量预测因子以产生当前CU的运动矢量差(Motion Vector Difference,MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动矢量编码到视频比特流中,并且可显著减少视频比特流中用于表示运动信息的数据量。
如在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者需要采用一组规则以用于使用与当前CU的空间相邻CU和/或时间同位CU相关联的那些潜在候选运动矢量来构建当前CU的运动矢量候选列表(也称为“合并列表”),然后从运动矢量候选列表选择一个成员作为当前CU的运动矢量预测因子。通过这样做,不需要将运动矢量候选列表本身从视频编码器20发送到视频解码器30,并且运动矢量候选列表内所选择的运动矢量预测因子的索引足以使视频编码器20和视频解码器30使用运动矢量候选列表内相同的运动矢量预测因子来对当前CU进行编码和解码。
图5示出了与用户接口1650耦接的计算环境1610。计算环境1610可以是数据处理服务器的一部分。计算环境1610包括处理器1620、存储器1630和输入/输出(I/O)接口1640。
处理器1620通常控制计算环境1610的整体操作,诸如与显示、数据采集、数据通信和图像处理相关联的操作。处理器1620可包括一个或多个处理器来执行指令以执行上述方法中的所有或一些步骤。此外,处理器1620可包括促使处理器1620与其他组件之间的交互的一个或多个模块。处理器1620可以是中央处理单元(Central Processing Unit,CPU)、微处理器、单片机、图形处理单元(Graphical Processing Unit,GPU)等。
存储器1630被配置为存储各种类型的数据以支持计算环境1610的操作。存储器1630可包括预定软件1632。这类数据的示例包括用于在计算环境1610上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1630可通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,诸如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、闪存、磁盘或光盘。
I/O接口1640提供处理器1620与外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可包括但不限于主页按钮、启动扫描按钮和停止扫描按钮。I/O接口1640可与编码器和解码器耦接。
在实施例中,还提供了一种非暂态计算机可读存储介质,其包括多个程序,例如被包括在存储器1630中,可由计算环境1610中的处理器1620执行,用于执行上述方法。在一个示例中,多个程序可由计算环境1610中的处理器1620执行以(例如,从图2中的视频编码器20)接收包含编码视频信息(例如,表示编码视频帧的视频块和/或相关联的一个或多个语法元素等)的比特流或数据流,并且还可由计算环境1610中的处理器1620执行以根据所接收的比特流或数据流执行上文所描述的解码方法。在另一示例中,多个程序可由计算环境1610中的处理器1620执行以执行上文所描述的编码方法以将视频信息(例如,表示视频帧的视频块和/或相关联的一个或多个语法元素等)编码到比特流或数据流中,并且还可由计算环境1610中的处理器1620执行以发送比特流或数据流(例如,发送到图3中的视频解码器30)。可选地,非暂态计算机可读存储介质可在其中存储比特流或数据流,比特流或数据流包括由编码器(例如,图2中的视频编码器20)使用(例如)上文所描述的编码方法生成的以供解码器(例如,图3中的视频解码器30)在对视频数据进行解码时使用的编码视频信息(例如,表示视频帧的视频块和/或相关联的一个或多个语法元素等)。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在实施例中,还提供了一种计算设备,其包括:一个或多个处理器(例如,处理器1620);以及存储有可由一个或多个处理器执行的多个程序的非暂态计算机可读存储介质或存储器1630,其中一个或多个处理器在执行多个程序时被配置为执行上述方法。
在实施例中,还提供了一种计算机程序产品,其包括例如在存储器1630中的多个程序,多个程序可由计算环境1610中的处理器1620执行,用于执行上述方法。例如,计算机程序产品可包括非暂态计算机可读存储介质。
在实施例中,计算环境1610可用一个或多个ASIC、DSP、数字信号处理设备(Digital Signal Processing Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、FPGA、GPU、控制器、微控制器、微处理器或用于执行上述方法的其他电子组件来实现。
一般来说,在VVC中应用的基本帧内预测方案几乎保持与HEVC的基本帧内预测方案相同,除了进一步扩展、添加和/或改进若干预测工具,例如具有广角帧内模式的扩展帧内预测、多参考线(Multiple Reference Line,MRL)帧内预测、位置相关帧内预测组合(Position-Dependent intra Prediction Combination,PDPC)、帧内子分区(Intra Sub-Partition,ISP)预测、跨分量线性模型(Cross-Component Linear Model,CCLM)预测、矩阵加权帧内预测(Matrix weighted Intra Prediction,MIP)和帧内模板匹配预测(IntraTemplate Matching Prediction,TMP)。
具有广角帧内模式的扩展帧内预测
与HEVC一样,VVC使用与当前CU相邻(即,在当前CU上方或在当前CU左侧)的一组参考样本来预测当前CU的样本。然而,为了捕获自然视频中存在的更精细的边缘方向(特别是对于高分辨率的视频内容,例如4K),多个角度帧内模式从HEVC中的33扩展到VVC中的93。图6是示出如VVC中所定义的帧内模式的框图。如图6所示,在93个角度帧内模式中,模式2至模式66是常规角度帧内模式,并且模式-1至模式-14和模式67至模式80是广角帧内模式。除了角度帧内模式之外,还在VVC中应用HEVC的平面模式(图6中的模式0)和直流(DirectCurrent,DC)模式(图6中的模式1)。
由于在VVC中应用四叉树/二叉树/三叉树划分结构,因此除了正方形形状的视频块之外,VVC中还存在用于帧内预测的矩形视频块。由于一个给定视频块的宽度和高度不相等,可针对不同块形状从93个角度帧内模式中选择各种角度帧内模式集合。更确切地说,对于正方形视频块和矩形视频块两者,除平面模式和DC模式外,针对每个块形状还支持93个角度帧内模式中的65个角度帧内模式。当视频块的矩形块形状满足特定条件时,视频块的广角帧内模式的索引可由视频解码器30根据从视频编码器20接收的常规角度帧内模式的索引,使用如下表1中所示的映射关系自适应地确定。也就是说,对于非正方形块,广角帧内模式由视频编码器20使用常规角度帧内模式的索引来用信号通知,常规角度帧内模式的索引在被解析之后由视频解码器30映射到广角帧内模式的索引,因此确保帧内模式(即,平面模式、DC模式和93个角度帧内模式中的65个角度帧内模式)的总数(即,67)不变,并且帧内预测模式编码方法不变。因此,实现了用信号发送帧内预测模式的良好效率,同时提供跨不同块尺寸的一致设计。
表1示出了用于VVC中的不同块形状的帧内预测的常规角度帧内模式的索引与广角帧内模式的索引之间的映射关系,其中W表示视频块的宽度,H表示视频块的高度。
表1
MRL帧内预测
类似于HEVC中的帧内预测,VVC中的所有帧内模式(即,平面模式、DC模式和角度帧内模式)利用当前视频块上方和左侧的一组参考样本进行帧内预测。然而,与仅使用最近参考样本行/列(即,图7中的第零行201)的HEVC不同,在VVC中引入MRL帧内预测,其中除了最近参考样本行/列之外,还可以使用两个额外参考样本行/列(即,图7中的第一行203和第三行205)进行帧内预测。选定的参考样本行/列的索引从视频编码器20用信号发送给视频解码器30。当选择非最近参考样本行/列(即,图7中的第一行203或第三行205)时,从可用于预测当前视频块的帧内模式集合排除平面模式。针对当前CTU内的第一视频块行/列禁用MRL帧内预测以防止使用当前CTU外部的扩展参考样本。
PDPC
如前所述,帧内预测样本是从一组相邻参考样本生成的,这可能沿着当前视频块与其相邻视频块之间的块边界引入不连续性。在VVC中引入PDPC工具以通过采用帧内预测样本与边界参考样本的加权组合来解决这些问题。在VVC中,可在不用信号发送的情况下针对以下帧内模式启用PDPC:平面模式、DC模式、具有预定索引(例如,该预定索引可以是小于或等于水平帧内模式(即,模式18)的索引)的角度帧内模式、以及具有大于或等于垂直帧内模式(即,模式50)的索引且小于或等于80的索引的角度帧内模式。如果对当前块应用块差分脉冲编码调制(Block Differential Pulse Coded Modulation,BDPCM)模式,或者用于MRL帧内预测的参考样本的所选行/列的索引大于0,则不应用PDPC。假设位于坐标(x,y)处的当前样本的预测样本是pred(x,y),则在执行PDPC之后的经修改的预测样本pred'(x,y)被计算为:
pred’(x,y)=Clip3(0,(1<<BitDepth)–1,(wL×R-1,y’+wT×Rx’,-1+(64-wL-wT)×pred(x,y)+32)>>6) (1)
其中Bitdepth表示样本的比特深度,Rx'、-1和R-1、y'分别表示位于当前样本的顶部边界和左侧边界处的参考样本,wL和wT为根据帧内模式和当前块的块尺寸自适应选择的权重,“>>”表示按位右移操作,且“<<”指示按位左移操作。
等式(1)中的函数Clip3(x,y,z)可定义如下:
图8A和图8B分别示出右上对角线模式和左下对角线模式下的用于PDPC的参考样本的示图。预测样本pred(x,y)位于预测块中的(x,y)处。参考样本Rx',-1具有水平坐标x'=x+y+1及垂直坐标-1,且参考样本R-1,y'具有水平坐标-1及垂直坐标y'=x+y+1。
ISP预测
ISP预测是应用于亮度帧内预测模式的工具,其根据亮度视频块的块尺寸将亮度视频块垂直或水平地划分为2或4个子分区,如表2所示。例如,用于ISP的最小块尺寸是4×8或8×4。图9A和图9B示出了取决于块尺寸的子分区的示图。如果视频块(例如,如图9A所示的视频块401)的块尺寸W×H等于4×8或8×4,则视频块被划分为2个子分区。如果视频块(例如,如图9B所示的视频块403)的块尺寸W×H大于4×8或8×4,则视频块被划分为4个子分区。可使用ISP的CU尺寸被限制为64×64的最大值。所有子分区满足具有至少16个样本的条件。
表2
块尺寸 子分区的数量
4×4 未划分
4×8和8×4 2
所有其他可行情况 4
对于每个子分区,通过将残差信号与预测信号相加来获得重构样本。这里,通过诸如熵解码、反量化和逆变换的处理来生成残差信号。每个子分区的经重构样本可用于生成下一子分区的预测。另外,待处理的第一子分区是含有CU的左上样本的子分区,并且在处理第一子分区之后,ISP预测继续向下(如图9A和图9B中所示的水平划分)或向右(如图9A和图9B中所示的垂直划分)进行。所有子分区共享相同的帧内预测模式。
CCLM预测
为了减少跨分量冗余,在VVC中使用CCLM预测模式,其中通过使用如下线性模型基于CU的重构亮度样本recL(i,j)来预测CU的色度样本:
predC(i,j)=α·recL′(i,j)+β (3)
其中predC(i,j)表示CU中的预测色度样本,recL′(i,j)表示通过对重构亮度样本recL(i,j)执行下采样而获得的CU的下采样重构亮度样本,并且α和β是从至多四个相邻色度样本及其对应的下采样亮度样本导出的线性模型参数。假设当前色度块具有W×H的尺寸,则如下获得W'和H':
●当应用LM模式时,W'=W',H'=H;
●当应用LM_A模式时,W'=W+H;
●当应用LM_L模式时,H'=H+W。
其中在LM模式中,CU的上方样本和左侧样本一起用于计算线性模型系数;在LM_A模式中,仅CU的上方样本用于计算线性模型系数;以及在LM_L模式中,仅CU的左侧样本用于计算线性模型系数。
如果色度块的上方样本的位置表示为S[0,-1]…S[W'-1,-1],并且色度块的左侧样本的位置表示为S[-1,0]…S[-1,H'-1],则如下选择四个相邻色度样本的位置:
●当应用LM模式且上方和左侧样本两者均可用时,选择S[W'/4,-1]、S[3*W'/4,-1]、S[-1,H'/4]和S[-1,3*H'/4]作为四个相邻色度样本的位置;
●当应用LM_A模式且上方样本可用时或当仅上方样本可用时,选择S[W'/8,-1]、S[3*W'/8,-1]、S[5*W'/8,-1]及S[7*W'/8,-1]作为四个相邻色度样本的位置;
●当应用LM_L模式且左侧样本可用时或当仅左侧样本可用时,选择S[-1,H'/8]、S[-1,3*H'/8]、S[-1,5*H'/8]及S[-1,7*H'/8]作为四个相邻色度样本的位置。
通过下采样操作获得与所选位置对应的四个相邻亮度样本,并且将所获得的四个相邻亮度样本比较四次以找到两个较大值:x0 A和x1 A以及两个较小值:x0 B和x1 B。与两个较大值和两个较小值对应的色度样本值分别表示为y0 A、y1 A、y0 B和y1 B。然后Xa、Xb、Ya和Yb被导出为:
最后,根据以下等式获得线性模型参数α和β。
β=Yb-α·Xb
图10示出CCLM模式中所涉及的CU的左侧样本和上方样本的位置的示图,包含CU中的N×N色度块501的左侧样本和上方样本的位置以及CU中的2N×2N亮度块503的左侧样本和上方样本的位置。
执行上文所描述的参数计算作为解码过程的部分,因此可不使用语法元素将α和β的值从视频编码器20传达到视频解码器30。
MIP
MIP是新添加到VVC中的帧内预测方法。在MIP预测方法中,宽度为W和高度为H的矩形块的样本的预测信号可通过基于以下三个步骤(如图11所示,平均、矩阵向量乘法和线性插值)将矩形块左边的一列H个重构相邻边界样本和矩形块上方的一行W个重构相邻边界样本作为输入来生成。
1)第一步:平均相邻样本
通过基于块尺寸和形状对相邻边界样本bdrytop和bdryleft求平均来确定四个样本或八个样本。例如,通过基于块尺寸根据预定义规则对相邻边界样本bdrytop和bdryleft求平均,将相邻边界样本bdrytop和bdryleft减少到边界样本然后,减少的边界样本被级联到减少的边界向量bdryred,因此,对于形状为4×4的块,该减少的边界向量bdryre的大小为4,并且对于所有其他形状的块,该减少的边界向量bdryred的大小为8。如果Indexmode指的是MIP模式,则该级联被如下定义:
2)第二步:矩阵向量乘法
以减少的边界向量bdryred中的平均样本作为输入,执行矩阵向量乘法,然后加上偏移,以生成原始块中的下采样样本集的减少的预测信号。在一个或多个示例中,减少的预测信号被计算为:
predred=A·bdryred+b (7)
这里,如果在所有其他情况下W=H=4或8,则A是具有Wred·Hred行和4列的矩阵。b是大小为Wred·Hred的偏移向量。
这里,Wred和Hred被定义为:
矩阵A和偏移向量b取自集合S0、S1、S2之一。从其获取矩阵A和偏移向量b的集合的索引idx被如下定义:
这里,矩阵A的每个系数以8位精度表示。集合S0由16个矩阵和16个偏移向量组成,i∈{0,…,15},每个矩阵具有16行和4列,每个偏移向量的大小为16。该组的矩阵和偏移向量用于尺寸为4×4的块。集合S1由8个矩阵和8个偏移向量组成,i∈{0,…,7},每个矩阵具有16行和8列,每个偏移向量的大小为16。集合S2由6个矩阵和6个偏移向量组成,i∈{0,…,5},每个矩阵具有64行和8列,偏移向量的大小为64。
3)第三步:插值
其余位置处的预测信号是通过线性插值从下采样的样本集的减少的预测信号生成的,线性插值是每个方向上的单步线性插值。无论块形状或块尺寸如何,首先在水平方向上执行插值,然后在垂直方向上执行插值。
帧内模板匹配预测
帧内模板匹配预测(帧内TMP)是一种特殊的帧内预测模式,其从当前帧的重构部分复制最佳预测块,其L形模板与当前模板匹配。对于预定义的搜索范围,编码器在当前帧的重构部分中搜索与当前模板最相似的模板,并使用相应的块作为预测块。然后,编码器用信号通知使用了该模式,并且在解码器侧执行相同的预测操作。
通过将当前块的L形邻居与图12中的预定义搜索区域中的另一块进行匹配来生成预测信号。例如,当前块左侧和上方像素形成了一个L型模板,TMP使用该模板在重构区域搜索最匹配的L型模板,然后使用这个最匹配的L型模板所包围的块作为当前块的预测块。
预定义搜索区域可包括:
●R1:当前CTU
●R2:左上CTU
●R3:上方CTU
●R4:左侧CTU
使用绝对差之和(Sum of Absolute Differences,SAD)作为代价函数。
在每个区域内,解码器搜索相对于当前模板具有最小SAD的模板,并使用该模板对应的块作为预测块。
所有区域(SearchRange_w,SearchRange_h)的尺寸被设置为与块尺寸(BlkW,BlkH)成比例,以使每像素有固定数量的SAD比较。即:
SearchRange_w=a*BlkW
SearchRange_h=a*BlkH
其中a是控制增益/复杂度权衡的常数。在实践中,a可等于5。
针对宽度和高度小于或等于64的CU启用帧内模板匹配工具。用于帧内模板匹配的最大CU尺寸是可配置的。
当针对当前CU不使用解码端帧内模式推导(Decoder-side Intra ModeDerivation,DIMD)时,可在CU级通过专用标志用信号发送帧内模板匹配预测模式。
基于滤波模板匹配的帧内预测(Filtered Template Matching based IntraPrediction,FTMP)
基于滤波模板匹配的帧内预测是一种特殊的帧内预测模式,其对基于帧内模板匹配的预测块应用滤波器以提高预测精度并使复制块的特性适应局部邻域。参考块的模板区域上的重构亮度样本在训练期间用作滤波器的输入,并且当前块的模板区域中的对应亮度样本作为目标。滤波器参数使用ECM中的基于回归的MSE最小化技术(即,LDL分解)来推导,并且可被诸如CCCM的其他工具利用。
所提出的6抽头滤波器从重构参考块获取空间样本,并使用操作比特深度的中间值(例如,对于10比特内容为512)进行偏置。每个新预测样本的公式如下:
predVal=c0C+c1N+c2S+c3W+c4E+c5b
滤波器的空间5抽头分量的输入由中心(C)亮度样本及其上/北(N)、下/南(S)、左/西(W)和右/东(E)邻居组成,b表示偏置,如图13所示。
模板大小和形状可与帧内TMP中相同,用于训练的模板大小可以是当前块上方和左侧的4条线,这可取决于它们的可用性。此外,FTMP的搜索范围也可与帧内TMP方法相同。
图13示出了滤波器形状和训练区域,其中绿色部分是边界区域。边界区域中的重构样本在可用时被用于训练,并且在不可用时利用最近的可用样本进行填充。
可在CU级利用与帧内TMP标志组合的专用标志,用信号发送要使用的模式。如果帧内TMP标志为0,则推断FTMP标志为零。如果帧内TMP标志为1,可按照下表确定FTMP标志的值。
待用信号发送的模式 帧内TMP标志 FTMP标志
帧内模板匹配 1 0
滤波模板匹配 1 1
可使用ECM7.0中基于当前帧内TMP SAD的搜索来创建待滤波的候选参考块的列表(可被称为候选列表)。是否被添加到候选列表可基于未滤波模板的SAD代价确定。在针对当前块创建候选列表时,可根据当前模板与参考模板计算SAD,然后根据SAD来决定对应参考块是否加入候选列表。例如,在SAD满足一定阈值条件的情况下,可将对应参考块加入到候选列表。
针对候选列表中的每个候选计算滤波器参数,并且在滤波之后选择在模板代价方面表现最佳(诸如与当前块的模板差异最小)的候选并将其用作最终候选。然后通过对最佳候选应用推导出的滤波器来生成块的最终预测。
尽管现有的帧内FTMP方案可提供ECM中帧内编解码的显著改进,但其设计仍可进一步改进。例如,本公开认识到当前帧内FTMP设计中存在以下缺陷:
1)在当前帧内FTMP中,训练样本总是与当前块相邻,例如,用于训练的模板大小是当前块上方和左侧的4条线。然而,当前块的跨分量关系可能与非局部区域的跨分量关系更相关。已知来自非局部区域的参考可提高预测中的预测精度。这里,非局部区域可表示不与当前块相邻的区域。
2)在当前帧内FTMP中,仅利用一个假设,即,选择导致最小匹配代价的最佳匹配块作为最终预测。然而,单个假设可能易受噪声的影响,使得预测不准确。此外,已经证明,在帧间预测中引入多个假设可提高预测精度。基于以上分析,基于多假设的帧内FTMP是合理的。
在本公开中,提出了用于进一步提高ECM中的帧内FTMP的压缩效率的方法。针对上述缺陷,本公开主要提出了以下方法:
1)为了改进帧内FTMP的预测,提出利用非局部区域进行FTMP。例如,提出了基于非相邻滤波模板匹配的帧内预测(Non-Adjacent Filtered Template Matching basedintra Prediction,NA-FTMP)模式或基于历史的滤波模板匹配的帧内预测(History-basedFiltered Template Matching based intra Prediction,H-FTMP)模式。
2)为了提高帧内FTMP的精度,提出基于多假设的帧内FTMP方案。在所提出的方案中,搜索多个模板匹配的块并对其进行加权以生成最终预测块。根据加权因子的推导方式,所提出的多假设帧内FTMP方案可分为两类:固定多假设帧内FTMP和自适应多假设帧内FTMP。
下面将针对本公开所提出的方法进行详细描述。注意,本公开中的附图可与本公开中提到的所有示例组合,并且所公开的方法可独立地或联合地应用。
1.基于非相邻滤波模板匹配的帧内预测
在NA-FTMP模式下,可利用与当前块不相邻的区域中的样本来推导用于当前块的滤波器模型。可使用推导出的滤波器模型来预测当前块的预测块。
在一个实施例中,可在比特流中用信号发送一个启用标志以指示使用NA-FTMP模式。例如,可在PPS、SPS或条带头用信号发送该启用标志。
在一个实施例中,代替显式地用信号发送所选择的模式标志,可在解码器处推导出该模式标志,以节省比特开销。可利用解码器已经的信息(诸如已经解码的信息、重构像素区域)进行推导。例如,在已知采用FTMP模式的情形下,在解码端比较NA-FTMP模式的代价值是否有比FTMP模式小,如果是,则可以采用NA-FTMP模式,否则可维持原本FTMP模式。
在一个实施例中,可通过按顺序检查潜在的M×M区域来构造一个具有N个候选的候选区域列表。这里,M×M区域可在编解码两端被预先定义并且保持一致。M×M区域的尺寸可被预先设置。
如果检查的区域可用,则将其放入该候选区域列表中。检查的区域是否可用可根据该区域在解码端是否是已知内容或者是否是边界区域来确定。例如,在编码侧,如果该区域是已经编码的区域,则可认为该区域是可用的,如果该区域是边界区域,则可认为该区域是不可用的。在解码端,如果该区域是已经解码的区域,则可认为该区域是可用的,如果该区域是边界区域,则可认为该区域是不可用的。上述示例仅是示例性的,本公开不限于此。
例如,通过按顺序检查潜在的8×8区域来构建具有6个候选的候选区域列表。潜在的8×8区域的左上位置例如可被预先确定为{(-xStep,0),(0,-yStep),(xStep,-yStep),(-xStep,yStep),(-xStep,-yStep),(-2*xStep,0),(0,-2*yStep),(-2*xStep,2*yStep),(2*xStep,-2*yStep),(-2*xStep,yStep),(xStep,-2*yStep),(-2*xStep,-yStep),(-xStep,-2*yStep),(-2*xStep,-2*yStep),(-xStep/2,0),(0,-yStep/2),(xStep/2,-yStep/2),(-xStep/2,yStep/2),(-xStep/2,-yStep/2)},其中xStep=Max(宽度,16),yStep=Max(高度,16)。图14示出了候选区域的一些可能位置。在图14中示出了12个位置。
在一个实施例中,可根据来自帧间合并模式下的两个空间非相邻候选区域集合(每个集合中包括非相邻的帧内区域)的空间非相邻候选区域的位置和包含顺序来构造一个具有N个候选的候选区域列表。如果检查的区域可用,则可将其放入候选区域列表中。图15示出了候选区域的一些可能位置。在图15中的蓝色点表示候选区域的可能位置。
接下来,可根据候选区域列表中的候选区域推导用于当前块的滤波器模型,然后将推导出的滤波器模型应用在用于预测的参考块上以形成最终的预测块。例如,可参照图13的方法,使用候选区域列表中的候选区域来训练得到用于当前块的滤波器模型,诸如滤波器的形状和系数。
2.基于历史的滤波模板匹配的帧内预测
在H-FTMP模式下,可采用与HMVP表类似的方式进行预测。例如,可将先前在FTMP模式下使用的滤波器模型作为候选,存储在H-FTMP表。然后针对当前块从H-FTMP表中选择最佳滤波器模型用于帧内预测。
在一个实施例中,可在比特流中用信号发送一个启用标志以指示使用H-FTMP模式。可在PPS、SPS或条带头用信号发送该启用标志。
在一个实施例中,代替显式地用信号发送所选择的模式标志,可在解码器处推导出该模式标志,以节省比特开销。可利用解码器已知的信息(例如已经解码的信息和/或重构像素区域)来推导。例如,在已知采用FTMP模式的情形下在解码端比较H-FTMP模式的代价值是否比FTMP模式的代价值小,如果是,则可以采用H-FTMP模式,否则维持原本FTMP模式。可以从编解码端都可获取的信息来计算模式的代价值,例如,可利用相邻的已解码区域与H-FTMP模式下所产生的相对应的预测区域来计算他们之间的差异总和(例如SAD)作为H-FTMP模式的代价值(cost),并利用相邻的已解码区域与FTMP模式所产生的相对应的预测区域来计算他们之间的差异总和(例如SAD)作为FTMP模式的代价值。上述计算方式仅是示例性的,本公开不限于此。
在一个实施例中,可在比特流中用信号发送一个索引值以指示选择了H-FTMP表中的哪个候选滤波器模型。例如,可在PPS、SPS或条带头用信号发送插值精度索引来选择相应的候选滤波器模型。又例如,可根据代价值cost选择与最小代价值对应的候选滤波器模型。这里,代价值可以是预先定义区块中的预测值(即对预先定义区块应用了滤波器模型之后的预测值)与参考值(预先定义区块中的样本值)的差。
在一个实施例中,在对FTMP编码块进行解码之后,可更新相应的H-FTMP表。
在一个实施例中,H-FTMP表的大小可以是N。例如,N是整数(例如,4、5、6、7)。
可根据H-FTMP表中的各候选滤波器模型的代价值从H-FTMP表中选择将使用的最佳滤波器模型。例如,可根据预先定义区块的预测值(即使用滤波器模型进行滤波后获得的预测值)与参考值之间的差值,从H-FTMP表中选择与最小差值对应的滤波器模型。
接下来,将选择的滤波器模型应用在用于预测的参考块上以形成最终的预测块。
3.多假设帧内FTMP
在多假设帧内FTMP中,使用一个以上的预测块候选并对其进行加权以生成当前块的最终预测。假设使用N个预测块候选。
预测块候选的推导
在一个实施例中,根据最小化模板匹配代价的标准来搜索和选择预测块候选(也可称为参考块),例如,选择导致最小模板匹配代价的前N个候选。模板匹配代价可包括绝对差之和(Sum of Absolute Difference,SAD)、平方误差之和(Sum of Square Error,SSE)等。
在一个实施例中,可根据预定义模式(例如,平面模式)来选择预测块候选。
在一个实施例中,可根据相邻预定义模式(例如,顶部预定义模式、左侧预定义模式)来选择预测块候选。例如,可使用顶部预定义模式确定的顶部块和左侧预定义模式确定的左侧块作为预测块候选。
固定多假设帧内FTMP
在该实施例中,用于生成最终预测块的加权因子在编码器侧和解码器侧都是预定义的且固定的。作为示例,可使用相等的加权因子,即,对于所有候选块都使用加权因子1/N。
自适应多假设帧内FTMP
为了适应视频内容的多样化特性,还提出了自适应多假设帧内FTMP方法。
●方法1
在一个实施例中,可基于模板匹配代价来导出加权因子。将N个候选的模板匹配代价表示为C1、C2、…、CN,加权因子可按如下计算。
应当注意,模板匹配代价可用(但不限于)SAD和SSE来测量。
●方法2
在一个实施例中,加权因子可在编码器侧推导出,然后在比特流中用信号发送给解码器。将N个预测块候选表示为P1、P2、…、PN并且将当前块表示为X,则加权因子可通过以下等式求解:
可使用Wiener-Hopf等式作为自适应环路滤波器(Adaptive Loop Filter,ALF)来求解上面等式。然后将导出的滤波器系数量化为整数类型并在块级用信号发送。
●方法3
在一个实施例中,基于模板推导出加权因子,并且将推导出的加权因子应用于预测块候选以生成最终预测块。将预测块候选的模板表示为T1、T2、…、TN并且将当前块的模板表示为T,则可使用以下等式导出加权因子:
可使用Wiener-Hopf等式来求解上面等式。然后,最终预测块可被计算为其中Pi表示第i个预测块候选。
●方法4
在一个实施例中,帧内FTMP模式利用非局部相关来提高预测精度,其中搜索相似块并将其用于生成最终预测块。在该实施例中,提出了将非局部均值滤波和多假设帧内FTMP相结合,如下所述。在第一步骤中,如在帧内FTMP中进行的那样搜索和确定N个预测块候选。在第二步骤中,加权因子按如下计算。
其中Di用于测量第i个预测块候选的模板与当前块的模板之间的距离,h用作加权强度(加权程度),并且Z[i]是归一化常数:
为了计算等式(4)中的加权因子,应首先确定加权强度。在本公开中,提出了几种方法来确定加权强度。
—在第一种方法中,在编码器侧和解码器侧,定义和固定由一些典型的加权强度值组成的加权强度候选列表。在编码器侧,使用率失真优化来检查加权强度值,并且确定最佳加权强度值并在比特流中将其用信号发送给解码器侧。例如,对于编码块,可根据编码模式计算出码率rate和失真distortion,然后根据等式cost=distortion+λ*rate计算代价,以cost最小的编码模式作为最终的编码方式,从而确定与该编码方式对应的加权强度值。
—在第二种方法中,使用预测块候选的模板和当前块的模板来估计加权强度值。将预测块候选的模板表示为T1、T2、…、TN并且将当前块的模板表示为T。然后,可使用以下等式来求解加权强度值:
—在第三种方法中,可使用当前块的QP值和模板的方差来估计加权强度值,即,可离线拟合加权强度值、QP值和模板方差之间的关系。例如,可使用QP/模板方差来求解加权强度值。
●方法5
为了更好地利用帧内FTMP中的非局部相关,在一个实施例中,利用奇异值分解(Singular Value Decomposition,SVD)从预测块候选中生成最终预测块。当前块的宽度和高度表示为W和H,当前块的面积表示为d=H×W。
-步骤1.如在帧内FTMP中那样搜索和确定K个预测块候选yi
-步骤2.当前块y的K个预测块候选构成了块组G并且被布置为矩阵:
其中,YG是通过将块组G中的每个候选布置为列向量而得到的大小为d×K的矩阵。
-步骤3.对矩阵YG执行SVD分解。
-步骤4.对奇异值矩阵ΛG应用软阈值运算。
其中softTh()是用阈值τ收缩ΛG的对角元素的函数。对于ΛG中的第k个对角元素,它在层ψ(k)处被非线性函数Dψ(k)收缩:
Dτ(k)k,τ(k)=max(|λk|-τ(k),0)
ΛG,τ是由对角位置处的收缩的奇异值λk,τ(k)组成的矩阵。
-步骤5.执行逆SVD以获得滤波的块组。
关键步骤之一是在步骤4中确定每个对角元素的阈值。在本公开中,阈值计算如下。利用以下等式针对每组图像块估计阈值:
其中σn,G是噪声的标准偏差,σx,G,k是块组G的SVD空间的第k维度中的原始块的标准偏差。如下估计SVD空间中的原始块的偏差。
其中的第k个奇异值。当σx,G,k为零时,跳过软阈值操作。此外,噪声的偏差是使用利用α和β参数化的幂函数,利用预测块的偏差来估计得到的。
σn=α×σy β
其中σy如下计算:
这里,yk(i)表示预测块候选向量yk的第i个像素。
在获得滤波的块组后,可对滤波的块组中的参考块进行加权求和来获得最终预测块。可采用上面方法1-4中计算出的加权因子进行加权求和。
在方法5中,可采用基于上述方式滤波后的预测块候选块组G,然后进行奇异值分解,或者可在基于方法5获得最终预测块后,进一步对最终预测块使用上述滤波方式进行滤波。
在本公开中,虽然分别描述了方法1至方法5,但是可按照对方法1至方法5中的一个或多个方法进行组合的方式来获得预测块。
多假设帧内FTMP信令
在本公开中,所提出的多假设帧内FTMP可用作当前帧内FTMP模式的替代,或编码器可自适应地选择帧内FTMP模式或多假设帧内FTMP模式。
在一个实施例中,所提出的多假设帧内FTMP被用作当前帧内FTMP模式的替代,即总是使用多个假设进行预测。
在另一实施例中,以上章节中的多假设帧内FTMP方法之一可与当前帧内FTMP模式联合使用。在比特流中用信号发送用于指示多假设帧内FTMP模式是否应用于CU的标志。
在又一实施例中,以上章节中的一个以上多假设帧内FTMP方法可与当前帧内FTMP模式联合使用。首先在比特流中用信号发送用于指示是否应用多假设帧内FTMP模式的标志。然后,用信号发送用于指示将多假设帧内FTMP方法中的哪一个方法应用于CU的索引。
图16是根据本公开实施例的视频编码方法的流程图。
参照图16,在步骤S1601,确定用于当前帧中的当前块的帧内预测模式。
在步骤S1602,基于所述帧内预测模式执行对所述当前块的编码。
基于所述帧内预测模式执行对所述当前块的编码的步骤可包括:从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;基于所述参考块获得所述当前块的预测块。
在本公开中,可基于不同的帧内预测模式使用不同的方法来预测当前块。
在所述帧内预测模式是第一帧内预测模式的情况下,可采用利用非局部区域获得滤波器并且使用滤波器对模板匹配出的参考块执行滤波。本公开的第一帧内预测模式可指基于非相邻滤波模板匹配的帧内预测,即利用与当前块不相邻的区块来获得用于当前块的滤波器并且对当前块的参考块应用该滤波器。
作为示例,在第一帧内预测模式下,可构建候选区域列表,其中,所述候选区域列表包括多个候选区域,每个候选区域不与所述当前块相邻。然后基于所述多个候选区域确定用于所述当前块的滤波器,通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
例如,在构建候选区域列表中,可预定义具有预设尺寸和预定位置的多个区域,通过分别确定所述多个区域是否可用来构建所述候选区域列表。可按照图14的方式构建候选区域列表。
又例如,在构建候选区域列表中,可从帧间合并模式下的空间非相邻候选区域集合中获取多个区域,通过分别确定所述多个区域是否可用来构建所述候选区域列表。可按照图15的方式构建候选区域列表。
对于所述多个区域中的每个区域,在所述区域不是边界区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表;和/或在所述区域是编码器已编码的区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表。
在所述帧内预测模式是第二帧内预测模式的情况下,基于在对所述当前块进行预测之前已使用的滤波器构建候选滤波器列表,根据应用所述候选滤波器列表中的候选滤波器的代价值,从所述候选滤波器列表中选择用于所述当前块的滤波器,通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
本公开的第二帧内预测模式可指基于历史的滤波模板匹配的帧内预测模式,即利用先前在FTMP模式下使用的滤波器模型形成候选滤波器列表并从中选择最佳滤波器对当前块的参考块执行滤波。
在所述帧内预测模式是第三帧内预测模式的情况下,可根据最小化模板匹配代价的标准,在所述重构区域中搜索并确定与所述当前模板相匹配的多个参考模板,并确定与所述多个参考模板分别对应的多个参考块。然后使用多个参考块来生成当前块的预测块。例如,确定所述参考块中的每个参考块的加权因子,基于所述加权因子对所述每个参考块进行加权求和,获得所述当前块的预测块。
本公开的第三帧内预测模式是指多假设帧内FTMP模式,即使用一个以上的预测块候选(即参考块)并对其进行加权求和以生成当前块的最终预测块。
此外,在确定预测块候选中,还可根据预定义模式和相邻预定义模式中的至少一个确定用于预测所述当前块的参考块,所述参考块与所述多个参考块一起用于获得所述当前块的预测块。其中,所述预定义模式可包括平面模式等,所述相邻预定义模式可包括顶部预定义模式和左侧预定义模式中的至少一个。在本公开中,基于最小模板匹配代价模式、预定义模式或相邻预定义模式确定的参考块均可作为与参考模板对应的参考块。
可采用以下方式中的至少一种来确定所述参考块中的每个参考块的加权因子。
可预先定义所述每个参考块的加权因子,例如,加权因子在编码器侧和解码器侧都是预定义的且固定的。
可选地,可确定所述每个参考块的参考模板的匹配代价值,并基于所述匹配代价值分别确定所述每个参考块的加权因子。例如,采用上面描述的方法1计算加权因子。
可选地,可通过使在所述每个参考块被加权求和后得到的参考块与所述当前块的样本值相等,推导出所述每个参考块的加权因子。例如,采用上面描述的方法2计算加权因子。
可选地,可通过使在所述每个参考块的参考模板被加权求和后得到的模板与所述当前模板的样本值相等,推导出所述每个参考块的加权因子。例如,采用上面描述的方法3计算加权因子。
可选地,可确定用于所述当前块的加权强度;确定所述每个参考块的参考模板与所述当前模板之间的距离;基于所述加权强度和所述距离,推导出所述每个参考块的加权因子。确定用于所述当前块的加权强度可包括:构建加权强度候选列表,使用率失真优化从所述加权强度候选列表中选择用于所述当前块的加权强度;或者根据所述每个参考块的参考模板和所述当前模板来计算用于所述当前块的加权强度;或者基于所述当前块的量化参数值和模板方差来计算用于所述当前块的加权强度。例如,采用上面描述的方法4计算加权因子。
根据本公开的另一实施例,可基于所述参考块中的每个参考块构成块组;通过对所述块组进行变换获得矩阵;通过对所述矩阵执行奇异值分解,获得奇异值矩阵;对所述奇异值矩阵应用软阈值运算;基于对经过软阈值运算的奇异值矩阵执行逆奇异值分解,获得所述当前块的预测块。例如,采用上面描述的方法5获得当前块的最终预测块。
在本公开中,编码器可将关于所述帧内预测模式的信息编码到比特流,其中,所述信息包括表示是否使用所述帧内预测模式的信息以及在所述帧内预测模式下所使用的信息,诸如上面描述的标志和索引。然后可向解码器发送所述比特流。
根据本公开的实施例,上述第一至第三帧内预测模式可单独地使用或者相互结合使用。例如,在第三帧内预测模式下,可采用第一或第二帧内预测模式确定的滤波器对多个参考块进行滤波,然后再对滤波后的参考块进行加权求和来获得当前块的最终预测块;或者,可先对多个参考块进行加权求和,然后对加权求和获得的初步预测块应用第一或第二帧内预测模式确定的滤波器,来获得最终预测块。
根据本公开的实施例,在进行模板匹配中,可以选取整数像素点的参考区块内容,也可以选取非整数(即分数)像素点的参考区块内容。
图17是根据本公开实施例的视频解码方法的流程图。
参照图17,在步骤S1701,确定用于当前帧中的当前块的帧内预测模式。
在步骤S1702,基于所述帧内预测模式执行对所述当前块的解码。其中,基于所述帧内预测模式执行对所述当前块的解码可包括从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;基于所述参考块获得所述当前块的预测块。
解码器可从编码器接收比特流,并从所述比特流中获得关于所述帧内预测模式的信息,其中,所述信息包括表示是否使用所述帧内预测模式的信息以及在所述帧内预测模式下所使用的信息。
在所述帧内预测模式是第一帧内预测模式的情况下,所述方法可包括:构建候选区域列表,其中,所述候选区域列表包括多个候选区域,每个候选区域不与所述当前块相邻;基于所述多个候选区域确定用于所述当前块的滤波器;通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
例如,构建候选区域列表可包括:预定义具有预设尺寸和预定位置的多个区域;通过分别确定所述多个区域是否可用来构建所述候选区域列表。
又例如,所述构建候选区域列表可包括:从帧间合并模式下的空间非相邻候选区域集合中获取多个区域;通过分别确定所述多个区域是否可用来构建所述候选区域列表。
通过分别确定所述多个区域是否可用来构建所述候选区域列表可包括:对于所述多个区域中的每个区域,在所述区域不是边界区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表;和/或在所述区域是解码器已解码的区域的情况下,所述区域可用并且将所述区域添加到所述候选区域列表。
在所述帧内预测模式是第二帧内预测模式的情况下,所述方法可包括:基于在对所述当前块进行预测之前已使用的滤波器,构建候选滤波器列表;根据应用所述候选滤波器列表中的候选滤波器的代价值,从所述候选滤波器列表中选择用于所述当前块的滤波器;通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
在所述帧内预测模式是第三帧内预测模式的情况下,确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块可包括:根据最小化模板匹配代价的标准,在所述重构区域中搜索并确定与所述当前模板相匹配的多个参考模板;确定与所述多个参考模板分别对应的多个参考块。
所述方法还可包括:根据预定义模式和相邻预定义模式中的至少一个确定用于预测所述当前块的参考块,所述参考块与所述多个参考块一起用于获得所述当前块的预测块,其中,所述预定义模式可包括平面模式等,所述相邻预定义模式可包括顶部预定义模式和左侧预定义模式中的至少一个。
基于所述参考块获得所述当前块的预测块可包括:确定所述参考块中的每个参考块的加权因子;基于所述加权因子对所述每个参考块进行加权求和,获得所述当前块的预测块。
确定所述参考块中的每个参考块的加权因子可包括:预先定义所述每个参考块的加权因子。
可选地,确定所述参考块中的每个参考块的加权因子可包括:从接收的比特流获取所述每个参考块的加权因子。
可选地,确定所述参考块中的每个参考块的加权因子可包括:确定所述每个参考块的参考模板的匹配代价值;基于所述匹配代价值分别确定所述每个参考块的加权因子。
可选地,确定所述参考块中的每个参考块的加权因子可包括:通过使在所述每个参考块的参考模板被加权求和后得到的模板与所述当前模板的样本值相等,推导出所述每个参考块的加权因子。
可选地,确定所述参考块中的每个参考块的加权因子可包括:确定用于所述当前块的加权强度;确定所述每个参考块的参考模板与所述当前模板之间的距离;基于所述加权强度和所述距离,推导出所述每个参考块的加权因子。
确定用于所述当前块的加权强度可包括:构建加权强度候选列表,使用率失真优化从所述加权强度候选列表中选择用于所述当前块的加权强度;或者根据所述每个参考块的参考模板和所述当前模板来计算用于所述当前块的加权强度;或者基于所述当前块的量化参数值和模板方差来计算用于所述当前块的加权强度。
根据另一示例,基于所述参考块获得所述当前块的预测块可包括:基于所述参考块中的每个参考块构成块组;通过对所述块组进行变换获得矩阵;通过对所述矩阵执行奇异值分解,获得奇异值矩阵;对所述奇异值矩阵应用软阈值运算;基于对经过软阈值运算的奇异值矩阵执行逆奇异值分解,获得所述当前块的预测块。
已经出于说明的目的呈现了本公开的描述,并且不旨在穷举或限于本公开。受益于前面的描述和相关附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
除非另有特别说明,否则根据本公开的方法的步骤的顺序仅旨在是说明性的,并且根据本公开的方法的步骤不限于上面具体描述的顺序,而是可根据实际条件改变。此外,可根据实际要求调整、组合或删除根据本公开的方法的至少一个步骤。
选择和描述示例是为了解释本公开的原理,并且使本领域其他技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在本公开的范围内。

Claims (25)

1.一种视频编码方法,包括:
确定用于当前帧中的当前块的帧内预测模式;
基于所述帧内预测模式执行对所述当前块的编码,
其中,基于所述帧内预测模式执行对所述当前块的编码,包括:
从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;
基于所述参考块获得所述当前块的预测块。
2.根据权利要求1所述的方法,其中,在所述帧内预测模式是第一帧内预测模式的情况下,所述方法包括:
构建候选区域列表,其中,所述候选区域列表包括多个候选区域,每个候选区域不与所述当前块相邻;
基于所述多个候选区域确定用于所述当前块的滤波器;
通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
3.根据权利要求2所述的方法,其中,构建候选区域列表,包括:
预定义具有预设尺寸和预定位置的多个区域,并且通过分别确定所述多个区域是否可用来构建所述候选区域列表;和/或
从帧间合并模式下的空间非相邻候选区域集合中获取多个区域,并且通过分别确定所述多个区域是否可用来构建所述候选区域列表。
4.根据权利要求3所述的方法,其中,通过分别确定所述多个区域是否可用来构建所述候选区域列表,包括:
对于所述多个区域中的每个区域,在所述区域不是边界区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表;和/或
在所述区域是编码器已编码的区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表。
5.根据权利要求1所述的方法,其中,在所述帧内预测模式是第二帧内预测模式的情况下,所述方法包括:
基于在对所述当前块进行预测之前已使用的滤波器,构建候选滤波器列表;
根据应用所述候选滤波器列表中的候选滤波器的代价值,从所述候选滤波器列表中选择用于所述当前块的滤波器;
通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
6.根据权利要求1所述的方法,其中,在所述帧内预测模式是第三帧内预测模式的情况下,确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块,包括:
根据最小化模板匹配代价的标准,在所述重构区域中搜索并确定与所述当前模板相匹配的多个参考模板,并且确定与所述多个参考模板分别对应的多个参考块,作为与所述参考模板对应的参考块;和/或
根据预定义模式和相邻预定义模式中的至少一个确定用于预测所述当前块的参考块,作为与所述参考模板对应的参考块。
7.根据权利要求6所述的方法,其中,基于所述参考块获得所述当前块的预测块,包括:
确定所述参考块中的每个参考块的加权因子;
基于所述加权因子对所述每个参考块进行加权求和,获得所述当前块的预测块。
8.根据权利要求7所述的方法,其中,确定所述参考块中的每个参考块的加权因子,包括:
预先定义所述每个参考块的加权因子;和/或
确定所述每个参考块的参考模板的匹配代价值,并且基于所述匹配代价值分别确定所述每个参考块的加权因子;和/或
通过使在所述每个参考块被加权求和后得到的参考块与所述当前块的样本值相等,推导出所述每个参考块的加权因子;和/或
通过使在所述每个参考块的参考模板被加权求和后得到的模板与所述当前模板的样本值相等,推导出所述每个参考块的加权因子;和/或
确定用于所述当前块的加权强度,确定所述每个参考块的参考模板与所述当前模板之间的距离,并且基于所述加权强度和所述距离来推导出所述每个参考块的加权因子。
9.根据权利要求8所述的方法,其中,确定用于所述当前块的加权强度,包括:
构建加权强度候选列表,使用率失真优化从所述加权强度候选列表中选择用于所述当前块的加权强度;或者
根据所述每个参考块的参考模板和所述当前模板来计算用于所述当前块的加权强度;或者
基于所述当前块的量化参数值和模板方差来计算用于所述当前块的加权强度。
10.根据权利要求6所述的方法,其中,基于所述参考块获得所述当前块的预测块,包括:
基于所述参考块中的每个参考块构成块组;
通过对所述块组进行变换获得矩阵;
通过对所述矩阵执行奇异值分解,获得奇异值矩阵;
对所述奇异值矩阵应用软阈值运算;
基于对经过软阈值运算的奇异值矩阵执行逆奇异值分解,获得所述当前块的预测块。
11.根据权利要求1所述的方法,其中,还包括:
将关于所述帧内预测模式的信息编码到比特流,其中,所述信息包括表示是否使用所述帧内预测模式的信息以及在所述帧内预测模式下所使用的信息;
向解码器发送所述比特流。
12.一种视频解码方法,包括:
确定用于当前帧中的当前块的帧内预测模式;
基于所述帧内预测模式执行对所述当前块的解码,
其中,基于所述帧内预测模式执行对所述当前块的解码,包括:
从所述当前帧的重构区域中确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块;
基于所述参考块获得所述当前块的预测块。
13.根据权利要求12所述的方法,其中,在所述帧内预测模式是第一帧内预测模式的情况下,所述方法包括:
构建候选区域列表,其中,所述候选区域列表包括多个候选区域,每个候选区域不与所述当前块相邻;
基于所述多个候选区域确定用于所述当前块的滤波器;
通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
14.根据权利要求13所述的方法,其中,构建候选区域列表,包括:
预定义具有预设尺寸和预定位置的多个区域,并且通过分别确定所述多个区域是否可用来构建所述候选区域列表;和/或
从帧间合并模式下的空间非相邻候选区域集合中获取多个区域,并且通过分别确定所述多个区域是否可用来构建所述候选区域列表。
15.根据权利要求14所述的方法,其中,通过分别确定所述多个区域是否可用来构建所述候选区域列表,包括:
对于所述多个区域中的每个区域,在所述区域不是边界区域的情况下,确定所述区域可用并且将所述区域添加到所述候选区域列表;和/或
在所述区域是解码器已解码的区域的情况下,所述区域可用并且将所述区域添加到所述候选区域列表。
16.根据权利要求12所述的方法,其中,在所述帧内预测模式是第二帧内预测模式的情况下,所述方法包括:
基于在对所述当前块进行预测之前已使用的滤波器,构建候选滤波器列表;
根据应用所述候选滤波器列表中的候选滤波器的代价值,从所述候选滤波器列表中选择用于所述当前块的滤波器;
通过对所述参考块应用所述滤波器来获得所述当前块的预测块。
17.根据权利要求12所述的方法,其中,在所述帧内预测模式是第三帧内预测模式的情况下,确定与所述当前块的当前模板相匹配的参考模板以及与所述参考模板对应的参考块,包括:
根据最小化模板匹配代价的标准,在所述重构区域中搜索并确定与所述当前模板相匹配的多个参考模板,并且确定与所述多个参考模板分别对应的多个参考块,作为与所述参考模板对应的参考块;和/或
根据预定义模式和相邻预定义模式中的至少一个确定用于预测所述当前块的参考块,作为与所述参考模板对应的参考块。
18.根据权利要求17所述的方法,其中,基于所述参考块获得所述当前块的预测块,包括:
确定所述参考块中的每个参考块的加权因子;
基于所述加权因子对所述每个参考块进行加权求和,获得所述当前块的预测块。
19.根据权利要求18所述的方法,其中,确定所述参考块中的每个参考块的加权因子,包括:
预先定义所述每个参考块的加权因子;和/或
从接收的比特流获取所述加权因子;和/或
确定所述每个参考块的参考模板的匹配代价值,并且基于所述匹配代价值分别确定所述每个参考块的加权因子;和/或
通过使在所述每个参考块的参考模板被加权求和后得到的模板与所述当前模板的样本值相等,推导出所述每个参考块的加权因子;和/或
确定用于所述当前块的加权强度,确定所述每个参考块的参考模板与所述当前模板之间的距离,并且基于所述加权强度和所述距离,推导出所述每个参考块的加权因子。
20.根据权利要求19所述的方法,其中,确定用于所述当前块的加权强度,包括:
构建加权强度候选列表,使用率失真优化从所述加权强度候选列表中选择用于所述当前块的加权强度;或者
根据所述每个参考块的参考模板和所述当前模板来计算用于所述当前块的加权强度;或者
基于所述当前块的量化参数值和模板方差来计算用于所述当前块的加权强度。
21.根据权利要求17所述的方法,其中,基于所述参考块获得所述当前块的预测块,包括:
基于所述参考块中的每个参考块构成块组;
通过对所述块组进行变换获得矩阵;
通过对所述矩阵执行奇异值分解,获得奇异值矩阵;
对所述奇异值矩阵应用软阈值运算;
基于对经过软阈值运算的奇异值矩阵执行逆奇异值分解,获得所述当前块的预测块。
22.根据权利要求12所述的方法,其中,还包括:
从编码器接收比特流;
从所述比特流中获得关于所述帧内预测模式的信息,其中,所述信息包括表示是否使用所述帧内预测模式的信息以及在所述帧内预测模式下所使用的信息。
23.一种存储有指令的非暂态计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1-22中任一项所述的方法并存储将通过根据权利要求1-11中任一项所述的方法被编码的比特流或者将通过根据权利要求12-22中任一项所述的方法被解码的比特流。
24.一种非暂态计算机可读存储介质,存储将通过根据权利要求1-11中任一项所述的方法被编码的比特流或者将通过根据权利要求12-22中任一项所述的方法被解码的比特流。
25.一种计算机程序产品,具有用于存储比特流的指令,其中所述比特流包括:
将通过根据权利要求1-11中任一项所述的方法被编码的比特流;和/或
将通过根据权利要求12-22中任一项所述的方法被解码的编码视频数据。
CN202410081808.0A 2023-01-20 2024-01-19 视频编码和解码方法及其设备 Pending CN118381923A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363440369P 2023-01-20 2023-01-20
US63/440,369 2023-01-20

Publications (1)

Publication Number Publication Date
CN118381923A true CN118381923A (zh) 2024-07-23

Family

ID=91911459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410081808.0A Pending CN118381923A (zh) 2023-01-20 2024-01-19 视频编码和解码方法及其设备

Country Status (1)

Country Link
CN (1) CN118381923A (zh)

Similar Documents

Publication Publication Date Title
CN113748675A (zh) 使用改进的基于矩阵的帧内预测编解码模式的视频编解码方法和装置
WO2020247577A1 (en) Adaptive motion vector resolution for affine mode
WO2020252270A1 (en) Methods and system of subblock transform for video coding
US20240187624A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023009459A1 (en) Video coding using multi-direction intra prediction
US11943468B2 (en) Methods and apparatus of video coding using prediction refinement with optical flow
US20240214580A1 (en) Intra prediction modes signaling
US20240195957A1 (en) Methods and devices for decoder-side intra mode derivation
WO2022271756A1 (en) Video coding using multi-direction intra prediction
US10764577B2 (en) Non-MPM mode coding for intra prediction in video coding
CN118381923A (zh) 视频编码和解码方法及其设备
US20240348777A1 (en) Methods and devices for decoder-side intra mode derivation
US20240305792A1 (en) Planar mode improvement for intra prediction
US20240298007A1 (en) Methods and devices for decoder-side intra mode derivation
US20240314302A1 (en) Adaptive coding order for intra prediction in video coding
US20240333952A1 (en) Methods and devices for decoder-side intra mode derivation
US20240283924A1 (en) Intra prediction modes signaling
US20240214561A1 (en) Methods and devices for decoder-side intra mode derivation
US20240244192A1 (en) Methods and devices for decoder-side intra mode derivation
WO2024178022A1 (en) Methods and devices on intra template matching prediction
WO2024187048A1 (en) Methods and devices on intra template matching prediction
WO2023183366A1 (en) Planar mode improvement for intra prediction
WO2023158765A1 (en) Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order
WO2024215643A1 (en) Search region modification for intra template matching prediction
WO2023154574A1 (en) Methods and devices for geometric partitioning mode with adaptive blending

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