掌桥专利:专业的专利平台
掌桥专利
首页

用于帧内预测的方法和装置

文献发布时间:2023-06-19 11:27:38



相关申请案的交叉引用

本申请要求于2018年11月14日提交的第62/767,496号、发明名称为“用于预测的方法和装置(Method and Apparatus for Prediction)”的美国临时申请案的权益,该申请案通过引用的方式并入本文中。

技术领域

本发明涉及图像和/或视频编解码技术领域,具体地涉及用于帧内/帧间预测的方法和装置。

背景技术

自从DVD光盘问世以来,数字视频已得到广泛使用。视频在发送之前被编码,然后通过传输介质进行发送。观看者接收视频,并使用观看设备解码和显示视频。多年来,由于分辨率、色彩深度和帧率等的提高,视频质量已经得到了提高。这使得目前通过互联网和移动通信网络传输的数据流更大。

然而,更高分辨率视频通常具有更多信息,因此需要更多带宽。为了降低带宽要求,便引入了涉及视频压缩的视频译码标准。当对视频进行编码时,带宽要求(或存储时对应的内存要求)会降低。这种降低往往牺牲了质量。因此,视频译码标准试图在带宽要求与质量之间找到平衡。

高效视频译码(High Efficiency Video Coding,HEVC)是本领域技术人员所熟知的视频译码标准示例。在HEVC中,将译码单元(coding unit,CU)划分为预测单元(prediction unit,PU)或变换单元(transform unit,TU)。通用视频译码(VersatileVideo Coding,VVC)下一代标准是ITU-T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Moving Picture Experts Group,MPEG)最近的联合视频项目,这两个标准化组织共同合作,其伙伴关系被称为联合视频探索小组(Joint VideoExploration Team,JVET)。VVC也称为ITU-T H.266/下一代视频译码(Next GenerationVideo Coding,NGVC)标准。VVC中去掉了多种分割类型的概念,即不区分CU、PU和TU概念(除非CU的大小对于最大变换长度而言太大),并支持更灵活的CU分割形状。

这些译码单元(coding unit,CU)(也称为块)的处理取决于其大小、空间位置和编码器指定的编码模式。根据预测类型,译码模式可以分为两类:帧内预测模式和帧间预测模式。帧内预测模式使用同一图像(picture/image)(也称为帧)的像素点来生成参考像素点,以计算重建块的像素点的预测值。帧内预测也称为空间预测。帧间预测模式设计用于时间预测,并使用先前或后续图像的参考像素点来预测当前图像的块的像素点。

ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频译码技术标准化的潜在需求,其中,未来视频译码技术的压缩能力将大大超过当前HEVC标准的压缩能力(包括针对屏幕内容译码和高动态范围译码的当前扩展和近期扩展)。这两个专家组正在联合开展这一探索活动,称为联合视频探索小组(Joint Video ExplorationTeam,JVET),以评估专家组在这一领域提出的压缩技术设计。

通用测试模型(Versatile Test Model,VTM)标准使用35种帧内模式,而基准集(Benchmark Set,BMS)使用67种帧内模式。

帧内预测方案比较复杂。

发明内容

本发明公开了帧内预测装置和方法。

根据第一方面,本发明涉及一种用于对视频的当前图像中的当前图像块进行帧内预测的方法,所述方法包括:获取所述块的帧内预测模式;当所述块的所述帧内预测模式为广角模式时,通过滤波的参考像素点获得所述块的预测像素点。

在所述第一方面提供的方法的一种可能实现方式中,所述块的所述帧内预测模式为整数斜率广角模式。所述整数斜率广角模式是以下中的至少一种:–14、–12、–10、–6、72、76、78、80。

第一方面的目标是将参考像素点处理与方向预测的输出和用于提高预测块的视觉质量的附加预测信号的组合统一起来。这种统一的结果是,参考像素点只处理一次,并且该处理的结果通过方向帧内预测过程和生成附加预测被重复使用。例如,滤波的参考像素点用于广角模式,因此只需要一个滤波的参考像素点缓冲。

可以执行以下步骤来实现帧内预测方法:

步骤1:根据参考像素点、帧内预测模式intraPredMode和/或块尺寸(宽和高)执行参考像素点滤波。

步骤2:根据intraPredAngle,根据已处理(经滤波或未经滤波)的参考像素点(步骤1的结果)执行方向帧内预测。

步骤3:使用联合预测更新在步骤2中获得的结果,所述联合预测可以是PDPC或简化PDPC,其中,在步骤3中使用的输入参考像素点与在步骤1中获得并在步骤2中使用的整数斜率广角模式(例如:–14、–12、–10、–6、72、76、78、80,如下表X和Y所示)的参考像素点相同。

可选地,根据predModeIntra,确定应使用滤波或未滤波的参考像素点缓冲。这可以通过应用下面表5中列出的滤波器中的一种来执行。在VVC中,使用索引为0和1的滤波器。

当predMode等于2、34或66且当nTbS>2时,对参考像素点进行滤波(使用表5中的滤波器索引“1”)。

上述方法的替代实施例是在该步骤中使用角度参数(进一步表示为intraPredAngle),而不是帧内预测模式predModeIntra。在这种情况下,如果intraPredAngle的值为32的倍数,且当nTbS>2时,则对参考像素点进行滤波(使用表5的滤波器索引“1”)。

本发明第一方面提供的方法可由本发明第二方面提供的装置执行。例如,装置可以包括获取单元和广角预测单元。所述获取单元用于获取所述块的帧内预测模式;所述广角预测单元用于当所述块的所述帧内预测模式为广角模式时,通过滤波的参考像素点获得所述块的预测像素点。

本发明第二方面提供的方法的其它特征和实现方式对应于本发明第一方面提供的装置的特征和实现方式。

第二方面提供的装置的优点与第一方面提供的方法的对应实现方式的优点相同。

根据第三方面,本发明涉及一种对视频流进行解码的装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第一方面提供的方法。

根据第四方面,本发明涉及一种对视频流进行编码的装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第一方面提供的方法。

根据第五方面,提出一种储存有指令的计算机可读存储介质,所述指令在执行时使一个或多个处理器对视频数据进行译码。所述指令使所述一个或多个处理器执行所述第一方面或所述第一方面任意可能的实施例提供的方法。

根据第六方面,本发明涉及一种计算机程序,包括程序代码,所述程序代码用于在计算机中执行时执行所述第一方面或所述第一方面的任意可能的实施例提供的方法。

附图及以下说明中将详细描述一个或多个实施例。其它特征、目的和优点在说明、附图以及权利要求中是显而易见的。

附图说明

结合附图对以下实施例进行详细描述,在附图中:

图1为用于实现本发明实施例的视频译码系统示例的框图;

图2为用于实现本发明实施例的视频编码器示例的框图;

图3为用于实现本发明实施例的视频解码器示例的框图;

图4A为所提出的67种帧内预测模式的示意图;

图4B示出了所提出的93种帧内预测模式的示意图,其中,虚线方向与仅应用于非正方形块的广角模式相关联;

图5-图11示出了插值滤波器的不同示例;

图12示出了在帧间预测和帧内预测中重复使用4抽头插值滤波器的示例;

图13示出了所提出的应用的示例性实现方式;

图14示出了根据重复使用系数的LUT提出的应用的示例性实现方式;

图15示出了一种插值滤波器选择的示例;

图16示出了QTBT的一个示例;

图17示出了矩形块取向的示例;

图18示出了边长相关参考滤波器选择的示例;

图19示出了在插值滤波器选择过程中用于阈值化帧内预测模式的替代方向的示例;

图20示出了不同插值滤波器的使用,这根据所使用的参考像素点属于哪一边;

图21示出了一个4×4块内(0,0)和(1,0)位置的DC模式PDPC权重;

图22示出了PDPC扩展到对角线模式和相邻角度帧内模式所使用的像素点的定义;

图23示出了简化PDPC的示例性实现方式;

图24示出了示例性的统一实现方式;

图25是用于对视频的当前图像中的当前图像块进行帧内预测的装置的示例结构的框图;

图26是可用于实现各种实施例的装置1500的框图;

图27为提供内容分发业务的内容供应系统的示例结构的框图;

图28为终端设备示例结构的框图。

具体实施方式

缩略语和术语定义

JEM Joint Exploration Model联合探索模型(未来视频译码探索的软件代码库)

JVET Joint Video Experts Team视频联合专家小组

LUT Look-Up Table查找表

PDPCP Position-Dependent Prediction Combination位置相关联合预测

QT QuadTree四叉树

QTBT QuadTree plus Binary Tree四叉树加二叉树

RDO Rate-distortion Optimization率失真优化

ROM Read-Only Memory只读存储器

VTM VVC Test Model VVC测试模型

VVC Versatile Video Coding通用视频译码,是JVET开发的标准化项目。

CTU/CTB – Coding Tree Unit/Coding Tree Block译码树单元/译码树块

CU/CB – Coding Unit/Coding Block译码单元/译码块

PU/PB – Prediction Unit/Prediction Block预测单元/预测块

TU/TB – Transform Unit/Transform Block变换单元/变换块

HEVC – High Efficiency Video Coding高效视频译码

H.264/AVC和HEVC等视频译码方案是按照基于块的混合视频译码的成功原理而设计的。使用该原理,首先将图像分割成块,然后通过使用帧内或帧间预测来预测每个块。

自H.261之后的几个视频译码标准属于“有损混合视频编解码器”组(即,将像素点域中的空间预测和时间预测与变换域中用于应用量化的2D变换译码结合)。视频序列中的每个图像通常分割成不重叠的块集合,通常在块级进行译码。换句话说,编码器通常在块(图像块)级处对视频进行处理,即编码,例如,通过空间(帧内)预测和时间(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器将相对于编码器的逆处理部分应用于经编码或经压缩的块,以重建用于表示的当前块。此外,编码器重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于对后续块进行处理(即译码)。

如本文所使用的,术语“块”可以是图像或帧的一部分。为便于描述,本文参考由ITU-T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频译码联合工作组(Joint CollaborationTeam on Video Coding,JCT-VC)研发的高效视频译码(High-Efficiency Video Coding,HEVC)或通用视频译码(Versatile Video Coding,VVC)参考软件描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。它可以指CU、PU和TU。在HEVC中,通过表示为译码树的四叉树结构将CTU划分成CU。在CU级决定是使用帧间(时间)预测还是帧内(空间)预测对图像区域进行译码。可以根据PU划分类型将每个CU进一步划分为一个、两个或四个PU。一个PU内应用相同的预测过程,并以PU为单位向解码器传输相关信息。在根据PU划分类型应用预测过程获得残差块之后,可以根据与用于CU的译码树类似的另一种四叉树结构将CU分割为变换单元(transform unit,TU)。在视频压缩技术的最新进展中,使用四叉树和二叉树(qual-tree and binary tree,QTBT)分割来分割译码块。在QTBT块结构中,CU可以为正方形或矩形。例如,首先通过四叉树结构分割译码树单元(coding tree unit,CTU)。通过二叉树结构进一步分割四叉树叶节点。二叉树叶节点称为译码单元(codingunit,CU),该分段用于预测和变换处理,而不进行任何进一步分割。即,在QTBT译码块结构中,CU、PU和TU的块大小相同。同时,还提出将三叉树分割等多重分割与QTBT块结构结合使用。

ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频译码技术标准化的潜在需求,其中,未来视频译码技术的压缩能力将大大超过当前HEVC标准的压缩能力(包括针对屏幕内容译码和高动态范围译码的当前扩展和近期扩展)。这两个专家组正在联合开展这一探索活动,称为联合视频探索小组(Joint Video ExplorationTeam,JVET),以评估专家组在这一领域提出的压缩技术设计。

通用测试模型(Versatile Test Model,VTM)使用35种帧内模式,而基准集(Benchmark Set,BMS)使用67种帧内模式。帧内预测是许多视频译码框架中使用的一种机制,用于在只涉及给定帧的情况下提高压缩效率。

图1为概念性或示意性框图,示出了可利用本申请(本发明)技术的示例性译码系统10,例如视频译码系统10。视频译码系统10的编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)表示可以用于根据本申请中描述的各种示例执行各技术的设备示例。如图1所示,译码系统10包括源设备12,所述源设备12用于将编码数据13(例如,编码图像13)提供到目的地设备14等,以对编码数据13进行解码。

源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理单元18(例如,图像预处理单元18)和通信接口或通信单元22。

图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的设备,和/或任何类型的图像或评论(对于屏幕内容译码,屏幕上的一些文本也被认为是待编码的图像(picture/image)的一部分)生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任何组合(例如,增强现实(augmentedreality,AR)图像)的任何类型的设备。

(数字)图像为或可以看作具有强度值的像素点的二维阵列或矩阵。阵列中的像素点也可以称为像素(pixel或pel)(图像元素的简称)。阵列或图像在水平和垂直方向(或轴线)上的像素点数量定义了图像的大小和/或分辨率。通常采用三种颜色分量来表示颜色,即该图像可表示为三个像素点阵列或包括三个像素点阵列。在RGB格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。然而,在视频译码中,每个像素通常由亮度/色度格式或在颜色空间中表示,例如,YCbCr,包括Y表示的亮度分量(有时也用L指示)和Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度级强度(例如,在灰度图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括亮度像素点值(Y)的亮度像素点阵列和色度值(Cb和Cr)的两个色度像素点阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以仅包括亮度像素点阵列。

图像源16(例如,视频源16)可以是用于捕获图像的摄像机、包括或存储先前捕获或生成的图像的存储器(例如,图像存储器),和/或用于获取或接收图像的任何类型的(内部或外部)接口等。例如,所述摄像机可以是集成在源设备中的本地或集成摄像机,所述存储器可以是例如集成在源设备中的本地或集成存储器。例如,所述接口可以是从外部视频源接收图像的外部接口,其中,所述外部视频源例如为摄像机等外部图像捕获设备、外部存储器,或外部计算机图形处理器、计算机或服务器等外部图像生成设备。所述接口可以是根据任何专有或标准化接口协议的任何类型的接口,例如有线或无线接口、光接口。用于获取图像数据17的接口可以是与通信接口22相同的接口,或作为通信接口22的一部分。

区别于预处理单元18和预处理单元18执行的处理,图像或图像数据17(例如,视频数据16)也可以称为原始图像或原始图像数据17。

预处理单元18用于接收(原始)图像数据17,对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理单元18执行的预处理可以包括修剪、颜色格式转换(例如,从RGB转换为YCbCr)、颜色校正或去噪等。可以理解的是,预处理单元18可以是可选组件。

编码器20(例如,视频编码器20)用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进一步描述细节)。

源设备12的通信接口22可以用于接收经编码的图像数据21,并将其发送到其它设备(例如,目的地设备14或用于存储或直接重建的任何其它设备);或分别在存储编码数据13和/或将编码数据13发送到其它设备(例如,目的地设备14或用于解码或存储的任何其它设备)之前处理经编码的图像数据21。

目的地设备14包括解码器30(例如,视频解码器30),并且可以另外(即,可选地)包括通信接口或通信单元28、后处理单元32和显示设备34。

目的地设备14的通信接口28用于接收经编码的图像数据21或编码数据13,例如,直接从源设备12或任何其它源(例如,经编码的图像数据存储设备等存储设备)接收。

通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任意组合,或任何类型的专用和公共网络),或其任意组合发送或接收经编码的图像数据21或编码数据13。

例如,通信接口22可以用于将经编码的图像数据21打包为合适的格式(例如,数据包),用于通过通信链路或通信网络传输。

形成通信接口22的对应部分的通信接口28可以例如用于对编码数据13进行解包以获得经编码的图像数据21等。

通信接口22和通信接口28均可配置为单向通信接口(如图1A中从源设备12指向目的地设备14的经编码的图像数据13的箭头所指示),或双向通信接口,并可用于发送和接收消息等,例如,建立连接,确认和交换与通信链路和/或数据传输(例如,经编码的图像数据传输)相关的任何其它信息。

解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或解码图像31(下文将根据图3等进一步详细描述)。

目的地设备14的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据)(例如,解码图像31)进行后处理,以获得经后处理的图像数据33(例如,后处理图像33)。例如,由后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、颜色校正、修剪或重采样,或任何其它处理,例如,用于准备经解码的图像数据31以供显示设备34等显示。

目的地设备14的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示所述图像。显示设备34可以是或包括用于显示重建图像的任何类型的显示器,例如,集成或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。

尽管图1将源设备12和目的地设备14作为单独的设备进行描述,但是设备实施例还可以包括两种设备或两种功能,即源设备12或对应功能以及目的地设备14或对应功能。在这类实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。

根据描述,技术人员显而易见的是,图1所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而不同。

编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)可以各自实现为各种合适电路中的任一种,如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果所述技术部分地以软件形式实现,则设备可以将软件的指令存储在合适的非瞬时性计算机可读介质中,并且可以使用一个或多个处理器执行硬件中的指令,以执行本发明的技术。上述任一种(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。视频编码器20和视频解码器30可以各自包括在一个或多个编码器或解码器中,其中任一者可以作为组合的编码器/解码器(编解码器)的一部分集成在相应设备中。

图2示出了用于实现本申请技术的示例性视频编码器20的示意性/概念性框图。在图2的示例中,视频编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、缓冲216、环路滤波器单元220、解码图像缓冲(decoded picture buffer,DPB)230、预测处理单元260和熵编码单元270。预测处理单元260可以包括帧间预测单元244、帧内预测单元254和模式选择单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或根据混合视频编解码器的视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270形成编码器20的正向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲216、环路滤波器220、解码图像缓冲(decoded picture buffer,DPB)230、预测处理单元260形成编码器的反向信号路径,其中,编码器的反向信号路径与解码器(参见图3中的解码器30)的信号路径对应。

编码器20用于通过输入端202等接收图像201或图像201(例如,形成视频或视频序列的图像序列的图像)的块203。图像块203也可以称为当前图像块或待译码图像块,图像201也可以称为当前图像或待译码图像(特别是在视频译码中,以便将当前图像与其它图像(例如,同一视频序列(即,也包括当前图像的视频序列)的先前编码和/或解码的图像))区分开。

预测处理单元260(也称为块预测处理单元260)用于:接收或获取块203(当前图像201的当前块203)和重建的图像数据,例如,来自缓冲216的相同(当前)图像的参考像素点和/或来自解码图像缓冲230的一个或多个先前解码图像的参考图像数据231,并处理此类数据以进行预测,即提供预测块265,其中,所述预测块265可以是帧间预测块245或帧内预测块255。

模式选择单元262可用于选择预测模式(例如,帧内预测或帧间预测模式)和/或对应的预测块245或255,用作预测块265以用于计算残差块205和重建重建块215。

模式选择单元262的实施例可用于选择预测模式(例如,从预测处理单元260支持的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差指传输或存储中更好的压缩),或提供最小指示(signaling)开销(最小指示开销指传输或存储中更好的压缩),或者同时考虑或平衡以上两者。模式选择单元262可用于根据率失真优化(ratedistortion optimization,RDO)确定预测模式,即选择提供最小率失真优化的预测模式,或者选择至少满足预测模式选择标准的相关率失真的预测模式。

帧内预测单元254还用于根据帧内预测参数(例如,所选帧内预测模式)确定帧内预测块255。在任何情况下,在对块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即指示块的所选帧内预测模式的信息。在一个示例中,帧内预测单元254可用于执行下文描述的帧内预测技术的任何组合。

图3为用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收例如由编码器100编码的经编码的图像数据(例如,经编码的码流)21,以获得解码图像131。在解码过程中,视频解码器30从视频编码器100接收视频数据,例如表示经编码的视频条带(slice)的图像块的经编码的视频码流以及相关联的语法元素。

在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、缓冲316、环路滤波器320、解码图像缓冲330和预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354和模式选择单元362。在一些示例中,视频解码器30可执行通常与针对图2的视频编码器100描述的编码过程相反的解码过程。

熵解码单元304用于对经编码的图像数据21执行熵解码,以获得量化系数309和/或经编码的译码参数(图3中未示出)等,例如帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素中的(解码的)任一者或全部。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其它语法元素转发给预测处理单元360。视频解码器30可以接收视频条带级和/或视频块级的语法元素。

反量化单元310的功能可以与反量化单元110的功能相同;逆变换处理单元312的功能可以与逆变换处理单元112的功能相同;重建单元314的功能可以与重建单元114的功能相同;缓冲316的功能可以与缓冲116的功能相同;环路滤波器320的功能可以与环路滤波器120的功能相同;解码图像缓冲330的功能可以与解码图像缓冲130的功能相同。

预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344的功能可以与帧间预测单元144的功能类似,帧内预测单元354的功能可以与帧内预测单元154的功能类似。预测处理单元360通常用于根据编码数据21进行块预测和/或获得预测块365,并用于从熵解码单元304等接收或获得(显式或隐式地)预测相关参数和/或关于所选预测模式的信息。

当将视频条带译码为帧内译码(I)条带时,预测处理单元360的帧内预测单元354用于根据指示的帧内预测模式和来自当前帧或图像的先前解码块的数据生成当前视频条带的图像块的预测块365。当将视频帧译码为帧间译码(即,B或P)条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素产生当前视频条带的视频块的预测块365。对于帧间预测,可从其中一个参考图像列表中的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧,列表0和列表1。

预测处理单元360用于通过解析运动矢量和其它语法元素来确定当前视频条带的视频块的预测信息,并使用所述预测信息针对所解码的当前视频块生成预测块。例如,预测处理单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。

反量化单元310用于对码流中提供并由熵解码单元304解码的量化变换系数进行反量化,即解量化。反量化过程可以包括使用视频编码器100针对视频条带中的每个视频块计算的量化参数来确定量化程度,同样地确定需要应用的反量化的程度。

逆变换处理单元312用于对变换系数应用逆变换,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以在像素域中产生残差块。

重建单元314(例如,求和器314)用于通过将重建残差块313的像素点值和预测块365的像素点值相加等将逆变换块313(即重建残差块313)添加到预测块365,以在像素点域中获得重建块315。

环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,例如,以平滑像素转变或以其它方式提高视频质量等。在一个示例中,环路滤波器单元320可用于执行下文描述的滤波技术的任何组合。环路滤波单元320用于表示一个或多个环路滤波器,如去块效应滤波器、像素点自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器或自适应环路滤波器(adaptive loop filter,ALF)或锐化或平滑滤波器或协作滤波器。尽管环路滤波器单元320在图3中示为环路滤波器,但在其它配置中,环路滤波器单元320可以实现为环后滤波器。

然后,将给定帧或图像中的解码视频块321存储在解码图像缓冲330中,所述解码图像缓冲330存储用于后续运动补偿的参考图像。

解码器30用于通过输出端332等输出解码图像331,向用户呈现或供用户观看。

可以使用其它形式的视频解码器30对压缩码流进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接反量化某些块或帧的残差信号。在另一种实现方式中,视频解码器30可以具有组合成单个单元的反量化单元310和逆变换处理单元312。

如图4A和图4B所示,JEM的最新版本具有一些对应于倾斜帧内预测方向的模式。对于这些模式中的任一模式,如果块边内的对应位置为分数,则应执行相邻参考像素点集合的插值,以预测块内的像素点。HEVC和VVC在两个相邻参考像素点之间使用线性插值。JEM使用更复杂的4抽头插值滤波器。根据宽度值或高度值,选择高斯滤波系数或三次滤波系数。使用宽度还是高度的决策与主参考边选择的决策一致:当帧内预测模式大于或等于对角线模式时,选择参考像素点的顶边作为主参考边,并选择宽度值来确定正在使用的插值滤波器。否则,从块的左边选择主参考边,并且使用高度值控制滤波器选择过程。具体地,如果所选边的长度小于或等于8个像素点,则使用4抽头三次插值滤波器。否则,插值滤波器为4抽头高斯滤波器。

图4A示出了如针对VVC提出的67种帧内预测模式的示例,67种帧内预测模式的多种帧内预测模式包括:平面模式(索引为0)、DC模式(索引为1),以及角度模式(索引为2到66),其中,图4A中的左下角度模式是指索引2,并且索引的编号递增,直到索引66对应图4A的最右上角度模式为止。如图4B所示,VVC的最新版本具有对应于倾斜帧内预测方向的一些模式,包括广角模式(如虚线所示)。对于这些模式中的任一模式,如果块边内的对应位置为分数,则应执行相邻参考像素点集合的插值,以预测块内的像素点。

JEM中使用的具体滤波系数如表1所示。根据子像素偏移和滤波器类型,通过使用从表1中选择的系数进行卷积运算来计算预测像素点,如下所示:

在该等式中,“>>”表示按位右移操作。

如果选择三次滤波器,则将预测像素点进一步修正(clip)为在允许的值范围内,该值范围是在SPS中定义,或从所选组件的位深度推导得到。

表1.帧内预测插值滤波器

当参考块的像素的位移为分数时,运动补偿过程还使用滤波来预测像素点值。在JEM中,亮度分量采用8抽头滤波,色度分量采用4抽头长度滤波。首先水平应用运动插值滤波器,并且对水平滤波的输出进行进一步垂直滤波。表2中给出了4抽头色度滤波器的系数。

表2:色度运动插值滤波系数

先进的视频译码解决方案也使用不同的插值滤波器进行帧内预测和帧间预测。具体地,图5-图11示出了插值滤波器的不同示例。例如,图5示出了JEM中使用的插值滤波器;图6示出了针对核心实验CE3-3.1.3(JVET-K1023)提出的插值滤波器。

如果用于内插像素值的色度运动补偿子像素滤波器的查找表和硬件模块在参考像素点之间的分数位置,则可在帧内预测器内重新使用这些查找表和硬件模块。由于预期使用相同的硬件进行帧间预测和帧内预测,因此滤波系数的精度应一致,即,表示用于帧内参考像素点插值的滤波系数的位数应与运动子像素运动补偿插值滤波的系数精度一致。

图12示出了本发明提出的一个实施例。具有6位色度系数的4抽头插值滤波器(也称为“统一帧内/帧间滤波器”)可用于两个过程:帧内预测像素点的插值和帧间预测像素点的插值。

图13中示出了使用这种设计的特定实施例。在该实现方式中,滤波模块实现为单独单元,该单独单元参与预测运动补偿中的色度像素点以及在执行帧内预测时预测亮度和色度像素点。在该实现方式中,硬件滤波部分用于帧内预测和帧间预测过程。

另一实施例示出在仅重复使用滤波系数的LUT时的实施例(参见图14)。在该实现方式中,硬件滤波模块从存储在ROM中的LUT中加载系数。帧内预测过程中示出的开关根据选择用于帧内预测处理的主边长度来确定待使用的滤波器类型。

所提出的应用的一个实际实施例可以使用以下系数(参见表3a和表3b)。

表3a:帧内和帧间插值滤波器

表3b:帧内和帧间插值滤波器

根据子像素偏移和滤波器类型,通过使用从表3a或表3b中选择的系数进行卷积运算来计算帧内预测像素点,如下所示:

在该等式中,“>>”表示按位右移操作。

如果选择“统一帧内/帧间滤波器”,则将预测像素点进一步修正为在允许的值范围内,该值范围是在SPS中定义,或从所选组件的位深度推导得到。

对于帧内参考像素点插值和子像素运动补偿插值,可以使用相同的滤波器来重复使用硬件模块并减少所需总体内存大小。

除了重复使用滤波器外,帧内参考像素点插值使用的滤波系数的精度应与上述重复使用滤波系数的精度一致。

运动补偿中的亮度处理未必使用8抽头滤波,也可以使用4抽头滤波。在这种情况下,可以选择4抽头滤波器进行统一。

实施例可以应用于帧内预测过程的不同部分,其中可能涉及插值。特别地,在扩展主参考像素点时,也可以使用统一插值滤波器对边参考像素点进行滤波(详见JVET-K0211)。

块内复制操作还涉及可以使用所提供的发明的插值步骤(关于块内复制描述的内容,参见[Xiaozhong Xu、Shan Liu、Tzu-Der Chuang、Yu-Wen Huang、Shawmin Lei、Krishnakanth Rapaka、Chao Pang、Vadim Seregin、Ye-Kui Wang、Marta Karczewicz:《HEVC屏幕内容译码扩展中的块内复制(Intra Block Copy in HEVC Screen ContentCoding Extensions)》.IEEE J.Emerg.Sel.Topics Circuits Syst.6(4):409-419(2016)])。

公开了一种用于帧内预测的宽高比相关滤波的方法,所述方法包括:

根据块的宽高比为待预测块选择插值滤波器。

在一个示例中,所述插值滤波器的选择取决于用于阈值化待预测块的帧内预测模式的方向。

在一个示例中,所述方向对应于待预测块的主对角线的角度。

在一个示例中,所述方向的角度计算为:

其中,W,H分别为待预测块的宽度和高度。

在一个示例中,其中,宽高比

R

在一个示例中,根据宽高比确定待预测块的主对角线的角度。

在一个示例中,根据待预测块的主对角线的角度确定块的帧内预测模式的阈值。

在一个示例中,根据所使用的边参考像素点属于哪一边来选择插值滤波器。

在一个示例中,角度对应于帧内方向的直线将块划分为两个区域。

在一个示例中,使用不同的插值滤波器预测属于不同区域的参考像素点。

在一个示例中,滤波器包括三次插值滤波器或高斯插值滤波器。

在本申请的一个实现方式中,帧与图像相同。

在本申请的一种实现方式中,与VER_IDX对应的值为50;与HOR_IDX对应的值为18;与VDIA_IDX对应的值为66,该值可以为与角度模式对应的值中的最大值;与帧内模式2对应的值2可以为与角度模式对应的值中的最小值;与DIA_IDX对应的值为34。

本发明旨在改进帧内模式指示方案。本发明提出一种视频解码方法和视频解码器。

在本申请的另一方面中,公开了一种包括处理电路的解码器,用于执行上述解码方法。

在本申请的另一方面中,公开了一种计算机程序产品,其包括用于执行上述解码方法的程序代码。

在本申请的另一方面中,公开了一种用于解码视频数据的解码器,其中,所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储供所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述解码器执行上述解码方法。

处理电路可以在硬件或硬件和软件的组合中实现,例如通过软件可编程处理器等实现。

处理电路可以在硬件或硬件和软件的组合中实现,例如通过软件可编程处理器等实现。

H.264/AVC和HEVC规定低通滤波器可以在用于帧内预测过程之前应用于参考像素点。是否使用参考像素点滤波器由帧内预测模式和块大小决定。这种机制可以称为模式相关帧内平滑化(Mode Dependent Intra Smoothing,MDIS)。还存在与MDIS相关的多种方法。例如,自适应参考像素点平滑化(Adaptive Reference Sample Smoothing,ARSS)方法可以显式(即,标记包括在码流中)或隐式(即,例如,使用数据隐藏来避免将标记放入码流中以减少指示开销)指示是否对预测像素点进行滤波。在这种情况下,编码器可以通过测试所有潜在帧内预测模式的率失真(Rate-Distortion,RD)成本来决定进行平滑化。

如图4A和图4B所示,JEM的最新版本(JEM-7.2)具有一些对应于倾斜帧内预测方向的模式。对于这些模式中的任一模式,如果块边内的对应位置为分数,则应执行相邻参考像素点集合的插值,以预测块内的像素点。HEVC和VVC在两个相邻参考像素点之间使用线性插值。JEM使用更复杂的4抽头插值滤波器。根据宽度值或高度值,选择高斯滤波系数或三次滤波系数。使用宽度还是高度的决策与主参考边选择的决策一致:当帧内预测模式大于或等于对角线模式时,选择参考像素点的顶边作为主参考边,并选择宽度值来确定正在使用的插值滤波器。否则,从块的左边选择主参考边,并且使用高度值控制滤波器选择过程。具体地,如果所选边的长度小于或等于8个像素点,则使用4抽头三次插值滤波器。否则,插值滤波器为4抽头高斯滤波器。

在图15中示出了在32×4块的情况下,对于小于和大于对角线模式(表示为45°)的插值滤波器选择的示例。

在VVC中,使用基于四叉树和二叉树的分割机制,称为QTBT。如图16所示,QTBT分割不仅可以提供正方形块,而且可以提供矩形块。当然,与HEVC/H.265标准中使用的基于四叉树的传统分割相比,QTBT分割会在编码端产生一些指示开销,并且会增加编码器侧的计算复杂度。然而,基于QTBT的分割具有更好的分割特性,因此,比传统四叉树分割译码效率更高。

然而,VVC在其当前状态下,对参考像素点的两边(左边和上边)使用相同的滤波器。无论块是垂直方向还是水平方向,参考像素点滤波器对于两个参考像素点边都是相同的。

在本文中,术语“垂直方向块”(“块的垂直方向”)和“水平方向块”(“块的水平方向”)应用于QTBT框架生成的矩形块。这些术语的含义与图17所示相同。

本发明提出了一种选择不同参考像素点滤波器的机制,以便考虑块的方向。具体地,对块的宽度和高度进行单独检查,以便对位于待预测块的不同边的参考像素点应用不同的参考像素点滤波器。

在现有技术概述中,描述了插值滤波器的选择与主参考边选择的决策一致。这两个决策目前都基于帧内预测模式与对角线(45度)方向的比较。

然而,应该注意的是,这种设计对于加长块有严重的缺陷。从图18中可以观察到,即使根据模式比较标准选择较短的边作为主参考,大多数预测像素仍将从较长边(示出为虚线区域)的参考像素点推导。

本发明提供在插值滤波器选择过程中使用替代方向来确定帧内预测模式的阈值。具体地,所述方向对应于待预测块的主对角线的角度。例如,对于大小为32×4和4×32的块,用于确定参考像素点滤波器的阈值模式mT如其在图19所示定义。

阈值帧内预测角度的具体值可以通过如下公式计算:

其中,W和H分别是块宽度和高度。

本发明的另一个实施例是使用不同的插值滤波器,这取决于所使用的参考像素点属于哪一边。图20中示出了这种确定的一个示例。

角度对应于帧内方向m的直线将预测块划分为两个区域。使用不同的插值滤波器对属于不同区域的像素点进行预测。

示例值m

表4.m

与现有技术和解决方案相比,本发明使用块内通过不同的插值滤波器预测的像素点,其中,根据块形状、水平或垂直方向以及帧内预测模式角度选择用于预测像素点的插值滤波器。

本发明可以在参考像素点滤波阶段应用。具体地,可以使用上述用于插值滤波器选择过程的类似规则来确定参考像素点平滑滤波器。

除了插值滤波之外,参考像素点滤波也可以在预测帧内预测器内的像素点之前立即应用于参考像素点。在参考像素点滤波后获得的滤波的参考像素点可以用于根据帧内预测模式的选择方向将滤波的参考像素点复制到帧内预测器内的对应像素点中,或者用于进一步的插值滤波。以下滤波器可以按此方式应用于参考像素点:

表5.示例性参考像素点滤波

方向预测的结果可以与通过不同方式获得的预测结果进行组合,所述不同方式包括以下各项:

·边界平滑,

·PDPC和简化PDPC

在边界平滑和PDPC的情况下,将预测块的若干第一列或若干第一行与从相邻像素点生成的附加预测信号一起组合。

根据帧内预测模式,简化PDPC的具体实现方式可以以不同方式执行:

对于平面、DC、HOR/VER帧内预测模式(在图4A和图4B中分别表示为0、1、18、50),执行以下步骤:

位于(x,y)处的预测像素点P(x,y)计算如下:

P(x,y)=(wL×R

其中,R

wT=32>>((y<<1)>>shift),wL=32》((x《1)》shift),wTL=-(wL>>4)-(wT>>4),

其中

shift=(log

对于平面模式,wTL=0,而对于水平模式,wTL=wT,对于垂直模式,wTL=wL。示出了一个4×4块内(0,0)和(1,0)位置的DC模式PDPC权重(wL,wT,wTL)。

对于对角线模式(在图4A和图4B中表示为2和66)和相邻模式(在图4A或图4B中不小于58且不大于10的方向模式),执行如下所述的处理:

图22(a)示出了PDPC扩展到右上对角线模式的参考像素点R

右上对角线模式的PDPC权重为:

wT=16>>((y’<<1)>>shift),wL=16>>((x’<<1)>>shift),wTL=0。

类似地,图22(b)示出了PDPC扩展到左下对角线模式的参考像素点R

然而,对用作方向帧内预测侧输入过程的相邻像素点的处理(例如,滤波)可以不同于传递到PDPC或简化PDPC的输入过程的相邻像素点的处理。例如,方向帧内预测可以使用滤波的参考像素点,而PDPC或简化PDPC则使用未滤波的参考像素点。特别地,当方向帧内预测模式是具有整数像素点子像素偏移的广角模式(intraPredAngle,如表X给出并进一步描述)时,可以对参考像素点进行滤波,而PDPC使用未滤波的参考像素点。

在简化PDPC的情况下,当前的实现方式如图23所示。

在图23中,虚线框可以表示以下内容之一:

·简化PDPC过程;

·PDPC过程(例如,JEM中所指定);

·边界平滑(例如,HEVC中所指定)。

使用线性组合来更新帧内预测结果的其它方法

在所有这些情况下,该过程包括更新步骤,即帧内预测的输出和附加部分生成步骤的线性组合。

在具体实现方式中,通过将子像素插值滤波器系数与参考像素点滤波器系数进行卷积,可以合并(merge)“参考像素点滤波#1”和帧内预测的步骤。然而,对于具有非分数位移的帧内预测模式(当intraPredAngle为32的倍数时),该合并是冗余的,因为在这种情况下,针对每个预测像素点执行滤波操作,而不是针对每个参考像素点执行滤波操作,如图23所示。

从图23中可以看出,参考像素点可以根据指定的intraPredMode进行不同的滤波。例如,根据表X可以决定应用于参考像素点的滤波器。表X使用以下表示:

–“S”表示决定取决于块大小。该大小相依性执行如下:将设置成(log2(nTbW)+Log2(nTbH))>>1的块大小参数nTbS集合与预定阈值T

–“1”表示使能处理。在参考像素点滤波的情况下,“1”的值表示参考像素点由[1 21]滤波器处理;

–“0”表示不使能处理。在参考像素点滤波的情况下,“1”的值表示参考像素点由[1]滤波器处理,即不对参考像素点应用任何滤波。

表X.根据方向intraPredMode对参考像素点滤波的决策(如图4B所示)

本发明的实施例的目标是将参考像素点处理与方向预测的输出和用于提高预测块的视觉质量的附加预测信号的组合统一起来。这种统一的结果是,参考像素点只处理一次,并且该处理的结果通过方向帧内预测过程和生成附加预测被重复使用(参见图24)。

应该注意的是,在图24中示出的情况下,只需要参考像素点滤波的一个步骤。因此,根据表Y进行滤波决策。

表Y.根据方向intraPredMode对参考像素点滤波的决策(如图4B所示)

在简化PDPC的情况下,可以按照VVC规范中的规定执行附加部分。进一步使用以下表示:

Round(x)=Sign(x)*Floor(Abs(x)+0.5),

Floor(x)是小于或等于x的最大整数。

Log2(x)是x的以2为底的对数。

intraPredAngle为表X或表Y中指定的角度参数,

A=C?B:D为三元赋值操作,其中,如果条件C为真(true),则A等于B。否则,如果条件C为假(false),则A等于D。

INTRA_PLANAR为平面帧内预测模式(),

INTRA_DC是DC帧内预测模式,

INTRA_ANGULARXX是方向帧内预测模式中的一个,其中XX表示其编号和对应方向,如图4B所示。

鉴于上述表示,简化PDPC的步骤可以定义如下:

该过程的输入是:

–帧内预测模式predModeIntra,

–变量nTbW,表示变换块宽度,

–变量nTbH,表示变换块高度,

–变量refW,表示参考像素点宽度,

–变量refH,表示参考像素点高度,

–预测像素点predSamples[x][y],其中x=0……nTbW–1,y=0……nTbH–1。

–相邻像素点p[x][y],其中,x=–1,y=–1……refH–1,x=0……refW–1,y=–1。

–变量cIdx,表示当前块的颜色分量。

该过程的输出是修正的预测像素点predSamples[x][y],其中,x=0……nTbW–1,y=0……nTbH–1。

根据cIdx的值,函数clip1Cmp设置如下:

–如果cIdx等于0,则clip1Cmp等于Clip1

–否则,将clip1Cmp设置为等于Clip1

变量nScale设置为((Log2(nTbW)+Log2(nTbH)–2)>2)。

x=0……refW–1和y=0……refH–1的参考像素点阵列mainRef[x]和sideRef[y]推导如下:

mainRef[x]=p[x][–1]

sideRef[y]=p[–1][y]

变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y],其中,x=0……nTbW–1,y=0……nTbH–1推导如下:

–当predModeIntra等于INTRA_PLANAR、INTRA_DC、INTRA_ANGULAR18或INTRA_ANGULAR50时,应用以下内容:

refL[x][y]=p[–1][y]

refT[x][y]=p[x][–1]

wT[y]=32>>((y<<1)>>nScale)

wL[x]=32>>((x<<1)>>nScale)

wTL[x][y]=(predModeIntra==INTRA_DC)?((wL[x]>4)+(wT[y]>4)):0

–否则,如果predModeIntra等于INTRA_ANGULAR2或INTRA_ANGULAR66,则应用以下内容:

refL[x][y]=p[–1][x+y+1]

refT[x][y]=p[x+y+1][–1]

wT[y]=(32>>1)>>((y<<1)>>nScale)

wL[x]=(32>>1)>>((x<<1)>>nScale)

wTL[x][y]=0

–否则,如果predModeIntra小于或等于INTRA_ANGULAR10,则应用以下顺序步骤:

1.变量dXPos[y]、dXFrac[y]、dXInt[y]和dX[x][y]使用invAngle推导如下:

dXPos[y]=((y+1)*invAngle+2)>>2

dXFrac[y]=dXPos[y]&63

dXInt[y]=dXPos[y]>>6

dX[x][y]=x+dXInt[y]

2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]推导如下:

refL[x][y]=0

refT[x][y]=(dX[x][y]>6:0 (等式1)

wT[y]=(dX[x][y]>((y<<1)>>nScale):0

wL[x]=0

wTL[x][y]=0

–否则,如果predModeIntra大于或等于INTRA_ANGULAR58(参见图4B),则应用以下顺序步骤:

1.如根据下文根据intraPredMode所指定,变量dYPos[x]、dYFrac[x]、dYInt[x]和dY[x][y]使用invAngle推导如下:

dYPos[x]=((x+1)*invAngle+2)>>2

dYFrac[x]=dYPos[x]&63

dYInt[x]=dYPos[x]>>6

dY[x][y]=y+dYInt[x]

2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]推导如下:

refL[x][y]=(dY[x][y]>6:0 (等式2)

refT[x][y]=0

wT[y]=0

wL[x]=(dY[x][y]>((x<<1)>>nScale):0

wTL[x][y]=0

–否则,refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]均设置为0。

修正的预测像素点predSamples[x][y]的值推导如下,其中,x=0……nTbW–1,y=0……nTbH–1:

predSamples[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]–p[–1][–1]*wTL[x][y]+(64–wL[x]–wT[y]+wTL[x][y])*predSamples[x][y]+32)>>6)

在赋值等式1中,以上简化PDPC可采用最近相邻插值代替线性插值:

refT[x][y]=(dX[x][y]

同样地,赋值等式2也可以使用最近相邻插值:

refL[x][y]=(dY[x][y]

因此,在编码端和解码端,所提出的方法使用以下数据作为输入数据:

·方向帧内预测模式(进一步表示为predModeIntra,如图4A和图4B所示)

·块大小参数nTbS,设置为(log2(nTbW)+Log2(nTbH))>>1,其中,nTbW和nTbH分别表示预测块的宽度和高度,“>>”表示右移操作。

可以执行以下步骤来实现帧内预测方法:

步骤1:根据参考像素点、帧内预测模式intraPredMode和/或块尺寸(宽和高)执行参考像素点滤波。

步骤2:根据intraPredAngle,根据已处理(经滤波或未经滤波)的参考像素点(步骤1的结果)执行方向帧内预测。

步骤3:使用联合预测更新在步骤2中获得的结果,可以是

·PDPC;

·简化PDPC

其中,在步骤3中使用的输入参考像素点与在步骤1中获得并在步骤2中使用的整数斜率广角模式(例如:–14、–12、–10、–6、72、76、78、80,如下表6和7所示)的参考像素点相同。

参考像素点滤波可以包括:

根据predModeIntra,确定应使用滤波的参考像素点缓冲还是使用未滤波的参考像素点缓冲。这可以通过应用表5中列出的滤波器中的一个来执行。在VVC中,使用索引为0和1的滤波器。例如,在predMode等于2、34或66且nTbS>2时,对参考像素点进行滤波(使用表5中的滤波器索引“1”)。

上述方法的替代实施例是在该步骤中使用角度参数(进一步表示为intraPredAngle),而不是帧内预测模式predModeIntra(也拼写为IntraPredMode)。在这种情况下,如果intraPredAngle的值为32的倍数,且当nTbS>2时,则对参考像素点进行滤波(使用表5的滤波器索引“1”)。

使得能够使用所提出的方法的VVC规范的修改可以包括在描述简化PDPC的部分中用“参考像素点p[x][y]”代替“相邻像素点p[x][y]”。

角度参数intraPredAngle表示分数部分长度等于5位的定点表示中相邻两行预测像素点之间的子像素偏移。该参数可以从帧内预测模式推导得出,intraPredAngle从predModeIntra推导得出。示例性的从predModeIntra推导intraPredAngle可以通过LUT来定义,例如,如表8所示。

表8.用于从predModeIntra推导intraPredAngle的示例性LUT

例如,应理解,与所描述的方法有关的内容对于用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述了一个具体的方法步骤,对应设备可包括用于执行所描述的方法步骤的单元,即使此类单元未在图中详细阐述或说明。另外,应理解,除非另有具体说明,否则本文中描述的各种示例性方面的特征可彼此组合。

视频译码通常指对视频或视频序列的图像序列的处理。术语“图像(picture/image)”或“帧”可在视频译码领域以及在本申请中作为同义词使用。每个图像通常被划分成一组不重叠的块。图像的编码/解码通常在块级执行,例如,在块级,使用帧间预测或帧内预测生成预测块,以从当前块(当前处理的块/待处理的块)中减去预测块,获得残差块,进一步对所述残差块进行变换和量化以减少待传输(压缩)的数据量,而在解码端,对经编码/经压缩的块进行逆处理以重建块用于表示。

本申请还提供以下实施例:

实施例1.一种帧内预测方法,所述方法包括:

处理参考像素点;

根据帧内预测,根据所述处理后的参考像素点执行方向帧内预测;

根据处理后的参考像素点执行附加预测。

实施例2.根据实施例1所述的方法,其中,所述处理参考像素点包括参考像素点滤波或子像素插值滤波。

实施例3.根据实施例1所述的方法,其中,所述方向帧内预测模式属于以下至少一组:

A.垂直模式或水平模式,

B.对角线模式,表示45度的倍数的角度,

C.其余方向模式。

实施例4.根据实施例3所述的方法,当方向帧内预测模式被归类为属于A组时,不将滤波器应用于参考像素点来生成帧内预测值。

实施例5.根据实施例3所述的方法,当方向模式属于B组时,将参考像素点滤波器应用于参考像素点,以根据所选方向将滤波值复制到帧内预测器中(不应用插值滤波器)。

实施例6.根据实施例3所述的方法,当方向模式被归类为属于C组时,仅将帧内参考像素点插值滤波器应用于参考像素点,以生成预测像素点,该预测像素点根据所选方向落入参考像素点之间的分数或整数位置(不执行参考像素点滤波)。

实施例7.根据实施例1至6中任一项所述的方法,其中,根据以下中的至少一个来执行参考像素点滤波:参考像素点、帧内预测模式(IntraPredMode)或块大小参数。

实施例8.根据实施例7所述的方法,其中,处理后的参考像素点包括滤波的参考像素点或未滤波的参考像素点。

实施例9.根据实施例7所述的方法,其中,所述方法还包括:

根据predModeIntra确定是使用滤波的参考像素点缓冲还是使用未滤波的参考像素点缓冲。

实施例10.根据实施例9所述的方法,使用索引为0或1的滤波器。

实施例11.根据实施例9所述的方法,当predMode等于2、34或66时且当nTbS>2时,对参考像素点进行滤波(使用表5中的滤波器索引“1”)。

实施例12.根据实施例7所述的方法,其中,所述方法还包括:

根据块大小参数确定是使用滤波的参考像素点缓冲还是使用未滤波的参考像素点缓冲,其中,块大小参数为角度参数(intraPredAngle)。

实施例13.根据实施例12所述的方法,如果intraPredAngle的值为32的倍数且当nTbS>2时,则对参考像素点进行滤波(使用表5的滤波器索引“1”)。

实施例14.根据实施例1至13中任一项所述的方法,其中,附加预测是位置相关联合预测(Position-Dependent Prediction Combination,PDPC)或简化PDPC。

实施例15.根据实施例1至14中任一项所述的方法,其中,帧内预测和附加预测并行执行。

实施例16.根据实施例1至15中任一项所述的方法,其中,方向帧内预测包括整数斜率广角模式(例如,–14、–12、–10、–6、72、76、78、80,如表X和Y所示)。

一种解码器或编码器,包括用于执行上述方法的处理电路。

在本发明中,公开了一种计算机程序产品,所述计算机程序产品包括用于执行上述方法的程序代码。

在本发明中,公开了一种用于对视频数据进行解码的解码器,所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储供所述处理器执行的程序,其中,在所述处理器执行所述程序时,配置所述解码器以执行上述方法。

图25是用于对视频的当前图像中的当前图像块进行帧内预测的装置2500的示例结构的框图;在一个示例中,装置2500可对应于图2中的帧内预测单元254。在另一示例中,装置2500可对应于图3中的帧内预测单元354。装置2500用于执行上述方法,可以包括:

获取单元2502,用于获取块的帧内预测模式;广角预测单元2504,用于当块的帧内预测模式为广角模式时,通过滤波的参考像素点获得块的预测像素点。

装置2500还可以包括确定单元(图25中未示出),用于确定块的帧内预测模式是否为广角模式。

图26为可用于实现各种实施例的装置1500的框图。装置1500可以是图1所示的源设备102、或图2所示的视频编码器200、或图1所示的目的地设备104、或图3所示的视频解码器300。此外,装置1500可包括一个或多个所描述的元件。在一些实施例中,装置1500配备有一个或多个输入/输出设备,如扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等。装置1500可包括连接到总线的一个或多个中央处理单元(central processing unit,CPU)1510、存储器1520、大容量存储器1530、视频适配器1540和I/O接口1560。所述总线是任何类型的若干总线架构中的一种或多种,包括内存总线或内存控制器、外围总线、视频总线等。

CPU 1510可具有任何类型的电子数据处理器。存储器1520可具有或者可以是任何类型的系统存储器,如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)、其组合等。在一个实施例中,存储器1520可以包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。在实施例中,存储器1520为非瞬时性存储器。大容量存储器1530包括存储数据、程序和其它信息并使数据、程序和其它信息能够通过总线访问的任何类型的存储设备。例如,大容量存储器1530包括固态硬盘、硬盘驱动器、磁盘驱动器、光盘驱动器等中的一种或多种。

视频适配器1540和I/O接口1560提供接口以使外部输入和输出设备与装置1500耦合。例如,装置1500可向客户端提供SQL命令接口。如图所示,输入和输出设备的示例包括与视频适配器1540耦合的显示器1590和与I/O接口1560耦合的鼠标/键盘/打印机1570的任何组合。其它设备可与装置1500耦合,并且可使用附加的或更少的接口卡。举例来说,串行接口卡(未示出)可用于为打印机提供串行接口。

装置1500还包括一个或多个网络接口1550,或一个或多个网络1580,其中,网络接口1550包括以太网线等有线链路,和/或用于接入节点的无线链路。网络接口1550使得装置1500可以通过网络1580与远程单元通信。例如,网络接口1550可提供与数据库的通信。在一个实施例中,装置1500与局域网或广域网耦合,以进行数据处理并与如其它处理单元、互联网、远程存储设施等远程设备进行通信。

下面描述上述实施例中所示的编码方法和解码方法以及使用这些方法的系统的应用。

图27为实现内容分发业务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106和(可选的)显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。所述通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、有线、无线(3G/4G/5G)、USB或其任意类型组合等。

捕获设备3102生成数据,并可使用上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备或其任意组合等。例如,捕获设备3102可以包括上述源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中包括的音频编码器实际上可执行音频编码处理。在一些实际场景中,捕获设备3102通过将编码视频数据和编码音频数据复用在一起来分发编码视频数据和编码音频数据。在其它实际场景中,例如在视频会议系统中,不复用编码音频数据和编码视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发到终端设备3106。

内容供应系统3100中的终端设备310接收并再现编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任意组合,或能够对上述编码数据进行解码的此类设备。例如,终端设备3106可以包括上述目的地设备14。当编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。

对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、TV 3114、个人数字助理(personal digital assistant,PDA)3122、或车载设备3124,终端设备可以将解码数据馈送到其显示器。对于不带显示器的终端设备,如STB 3116、视频会议系统3118或视频监控系统3120,将外接显示器3126与终端设备连接,以接收并显示解码数据。

本系统中的各个设备进行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。

图28为示出终端设备3106的示例结构的示意图。在终端设备3106从捕获设备3102接收流后,协议处理单元3202对该流的传输协议进行分析。所述协议包括但不限于实时流传输协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(Hyper TextTransfer Protocol,HTTP)、HTTP直播流传输协议(HTTP Live streaming protocol,HLS)、MPEG-DASH、实时传输协议(Real-time Transport protocol,RTP)、实时消息传输协议(Real Time Messaging Protocol,RTMP)或其任意组合等。

在协议处理单元3202对流进行处理之后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为编码音频数据和编码视频数据。如上所述,在一些实际场景中,例如在视频会议系统中,不复用编码音频数据和编码视频数据。在这种情况下,编码数据不通过解复用单元3204传输到视频解码器3206和音频解码器3208。

通过解复用处理,生成视频基本码流(elementary stream,ES)、音频ES和可选字幕。视频解码器3206,包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频ES进行解码以生成视频帧,并将该数据馈送到同步单元3212。音频解码器3208对音频ES进行解码以生成音频帧,并将该数据馈送到同步单元3212。或者,可以在将视频帧馈送到同步单元3212之前存储在缓冲(图Y中未示出)中。类似地,可以在将音频帧发送至同步单元3212之前存储在缓冲(图Y中未示出)中。

同步单元3212同步视频帧和音频帧,并将视频/音频供应给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。信息可以使用与译码音频和可视数据呈现相关的时间戳和与数据流发送相关的时间戳,在语法中进行译码。

如果流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。

本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以包括在汽车系统等其它系统中。

本发明所描述的主题和操作可在数字电子电路中实现,也可在计算机软件、固件或硬件中实现,包括在本发明中公开的结构及其结构等同物中实现,或在它们一个或多个的组合中实现。本发明所描述的主题可实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,所述计算机程序被编码在计算机存储介质上,以由数据处理装置执行或控制数据处理装置的操作。或者或另外,所述程序指令可在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上进行编码,生成所述信号以对信息进行编码以传输到合适的接收器装置,供数据处理装置执行。计算机存储介质,例如计算机可读介质,可以是或包含在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储阵列或设备,或其中一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码到人工生成的传播信号中的计算机程序指令的源或目标。所述计算机存储介质也可以是或包含在一个或多个单独的物理和/或非瞬时性组件或介质(例如,多个CD、磁盘或其它存储设备)中。

在一些实现方式中,本发明所描述的操作可实现为云计算网络中的服务器上提供的托管服务。例如,可在云计算网络内对计算机可读存储介质进行逻辑分组和访问。云计算网络中的服务器可包括云计算平台,用于提供云服务。在不脱离本发明的范围的情况下,术语“云”、“云计算”和“基于云”可酌情互换使用。云服务可以是由服务器提供的,并通过网络传送到客户端平台,以增强、补充或替换在客户端计算机上本地执行的应用程序的托管服务。所述电路可使用云服务来快速接收软件升级、应用程序和其它资源,否则,这些资源需要很长的时间才能传送到所述电路。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以任何形式的编程语言编写,包括编译或直译语言、声明性语言或程序语言,并且可以任何形式进行部署,例如,作为独立程序或作为模块、组件、子例程、对象或适用于计算环境中的其它单元进行部署。计算机程序可(但不必)对应于文件系统中的文件。程序可存储在包括其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于相关程序的单个文件中,或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可将计算机程序部署在一台计算机上执行,或部署在位于一个站点或分布于多个站点并通过通信网络互连的多台计算机上执行。

本发明中描述的过程和逻辑流可由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作和生成输出来执行动作。所述过程和逻辑流也可由现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)等专用逻辑电路执行,且装置也可实现为所述专用逻辑电路。

例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元件为用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),或与一个或多个用于存储数据的大容量存储设备可操作地耦合以从大容量存储设备接收数据和/或将数据传送给大容量存储设备。然而,计算机不必具有这样的设备。此外,计算机可嵌入到其它设备中,例如移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏机、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(universal serial bus,USB)闪存驱动器)等。适合存储计算机程序指令和数据的设备包括各种形式的非易失性存储器、介质和存储设备,例如,包括EPROM、EEPROM和闪存设备等半导体存储设备;内置硬盘或可移动硬盘等磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可由专用逻辑电路进行补充或并入专用逻辑电路。

虽然本发明包括许多具体实现方式的细节,但这些不应对任何实现方式的范围或所要求的范围造成限制,而应作为针对特定实现方式的特定实现方式的特征的描述。在单独实现方式的上下文中,本发明中所描述的某些特征也可以在单个实现方式中组合实现。反之,在单个实现方式的上下文中描述的各种特征也可以在多个实现方式中单独实现或在任何合适的子组合中实现。此外,尽管上文可将特征描述为以某些组合来实现,甚至最初要求保护,但是在某些情况下,可从要求保护的组合中去除该组合中的一个或多个特征,且所要求保护的组合可针对子组合或子组合的变型。

同样,虽然附图以特定顺序描述操作,但这不应理解为要求这些操作按照所示的特定顺序或按顺序执行,或者要求执行所示的所有操作,以达到期望的结果。在某些情况下,可进行多任务处理和并行处理。此外,上述实现方式中的各种系统组件的分离不应理解为所有实现方式都要求这种分离。应理解,所描述的程序组件和系统通常可以一起集成到单个软件产品中或封装到多个软件产品中。

因此,本主题的特定实现方式已做描述。其它实现方式在以下权利要求的保护范围之内。在一些情况下,可以不同的顺序执行权利要求中所述的动作,并且仍然达到期望的结果。此外,附图中描绘的过程不一定要求按所示的特定顺序或按顺序执行才能达到期望的结果。在某些实现方式中,可进行多任务处理和并行处理。

虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以多种其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实现某些特征。

另外,在不偏离本发明的范围的情况下,各种实施例中描述及图示为独立或分离的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或相互通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式等间接耦合或通信。改变、替换和变更的其它示例可以由本领域技术人员确定,并可在不偏离本文公开的精神和范围的情况下举例。

相关技术
  • 用于执行帧内预测的图像解码方法及其装置以及用于执行帧内预测的图像编码方法及其装置
  • 用于对图像预测单元的帧内预测模式进行编码的方法和装置,以及用于对图像预测单元的帧内预测模式进行解码的方法和装置
技术分类

06120112933052