欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 用角度模式扩展的位置相关帧内预测组合独创技术98599字

用角度模式扩展的位置相关帧内预测组合

2021-02-10 22:26:35

用角度模式扩展的位置相关帧内预测组合

  本申请要求享有于2019年4月1日提交的美国申请No.16/371,638的优先权,该申请要求享有于2018年4月2日提交的美国临时申请No.62/651,424的权益,这两篇申请的全部内容通过引用的方式并入本文。

  技术领域

  本公开内容涉及视频编码和视频解码。

  背景技术

  数字视频能力可并入到广泛范围的设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板电脑、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流传输设备等。数字视频设备实施视频译码技术,诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,第10部分,高级视频译码(AVC)、高效率视频译码(HEVC)标准和这些标准的扩展定义的标准中描述的技术。视频设备可通过实施这种视频译码技术来更有效地发送、接收、编码、解码和/或存储数字视频信息。

  视频译码技术包括空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的一部分)分割成视频块,所述视频块还可被称作树块、CU和/或译码节点。图片可被称为帧。参考图片可被称为参考帧。

  空间或时间预测产生待译码块的预测性块。残差数据表示待译码的原始块与预测性块之间的像素差。对于进一步压缩,可将残差数据从像素域变换到变换域,从而产生残差变换系数,接着可对所述残差变换系数进行量化。可应用熵译码以实现甚至更多的压缩。

  发明内容

  本公开内容描述了用于使用帧内预测来对视频数据块进行译码的技术。例如,本公开内容的技术包括:使用被扩展为与角度帧内预测模式(例如,对角帧内预测模式或与对角帧内预测模式相邻的角度帧内预测模式)一起使用的位置相关帧内预测组合(PDPC)来对视频数据块进行译码。在帧内预测中,基于当前块的相邻像素为当前块生成预测块。在PDPC中,修改预测块内的预测样本,且使用经修改的预测样本来对当前块进行编码或解码。对于编码,视频编码器使用经修改的预测样本来确定残差值,残差值被传送给视频解码器,以及对于解码,视频解码器将经修改的预测样本与所接收的残差值相加以重构当前块。

  PDPC技术被限于特定的帧内预测模式,诸如DC、平面、垂直和水平帧内预测模式。本公开内容描述将PDPC技术扩展到角度帧内预测模式的示例方式。例如,在PDPC技术中,使用当前块外部的参考样本来修改预测样本。当将PDPC技术扩展到角度帧内预测模式时,确定使用哪些参考样本可能是复杂的。本公开内容描述了用于确定要使用的参考样本的示例方式和用于对参考样本和被预测样本进行加权以针对角度帧内预测模式执行PDPC技术的方式,诸如基于角度帧内预测模式(例如,基于角度帧内预测模式的角度)来确定参考样本。

  在一个示例中,本公开内容描述一种对视频数据进行解码的方法,该方法包括:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本,以生成经修改的预测样本,其中,修改预测样本包括:基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;以及基于经修改的预测样本和残差值来重构当前块的样本。

  在一个示例中,本公开内容描述了一种对视频数据进行编码的方法,该方法包括:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本,以生成经修改的预测样本,其中,修改预测样本包括:基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;基于经修改的预测样本和当前块中的样本值来确定残差块的残差值;以及传送指示残差值的信息。

  在一个示例中,本公开内容描述了一种用于对视频数据进行解码的设备,该设备包括被配置为存储预测块的存储器以及包括固定功能电路或可编程电路中的至少一个的视频解码器。视频解码器被配置为:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块以供存储在存储器中;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本以生成经修改的预测样本,其中,为了修改预测样本,视频解码器被配置为基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;以及基于经修改的预测样本和残差值来重构当前块的样本。

  在一个示例中,本公开内容描述了一种用于对视频数据进行编码的设备,该设备包括被配置为存储预测块的存储器以及包括固定功能电路或可编程电路中的至少一个的视频编码器。视频编码器被配置为基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块以供存储在存储器中;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本以生成经修改的预测样本,其中,为了修改预测样本,视频编码器被配置为基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;基于经修改的预测样本和当前块中的样本值来确定残差块的残差值;以及传送指示残差值的信息。

  在一个示例中,本公开内容描述了一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使得用于对视频数据进行解码的设备的一个或多个处理器:

  在一个示例中,本公开内容描述了一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使得用于对视频数据进行解码的设备的一个或多个处理器进行以下操作:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本以生成经修改的预测样本,其中,使得一个或多个处理器修改预测样本的指令包括使得一个或多个处理器进行以下操作的指令:基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;以及基于经修改的预测样本和残差值来重构当前块的样本。

  在一个示例中,本公开内容描述了一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使得用于对视频数据进行编码的设备的一个或多个处理器进行以下操作:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块;使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本以生成经修改的预测样本,其中,使得一个或多个处理器修改预测样本的指令包括使得一个或多个处理器进行以下操作的指令:基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本;基于经修改的预测样本和当前块中的样本值来确定残差块的残差值;以及传送指示残差值的信息。

  在一个示例中,本公开内容描述了一种用于对视频数据进行解码的设备,设备包括:用于基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块的单元;用于使用位置相关帧内预测组合(PDPC)修改预测块的多个预测样本中的预测样本以生成经修改的预测样本的单元,其中,用于修改预测样本的单元包括用于基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本的单元,以及用于基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本的单元;以及用于基于经修改的预测样本和残差值来重构当前块的样本的单元。

  在一个示例中,本公开内容了描述一种用于对视频数据进行编码的设备,设备包括:用于基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块的单元;用于使用位置相关帧内预测组合(PDPC)修改预测块的该多个预测样本中的预测样本以生成经修改的预测样本的单元,其中,用于修改预测样本的单元包括用于基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本的单元,以及用于基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本的单元;用于基于经修改的预测样本和当前块中的样本值来确定残差块的残差值的单元;以及用于传送指示残差值的信息的单元。

  在以下的附图和描述中阐述一个或多个示例的细节。根据说明书、附图和权利要求书,其它特征、目的和优点将是显而易见的。

  附图说明

  图1是示出被配置为实施本公开内容的技术的示例视频编码及解码系统的框图。

  图2A和2B是示出4×4块内的样本位置的DC模式PDPC权重的示例的概念图。

  图3是示出帧内预测角度模式的示例的概念图。

  图4A是示出对角右上模式的示例的概念图。

  图4B是示出对角左下模式的示例的概念图。

  图4C是示出相邻对角右上模式的示例的概念图。

  图4D是示出相邻对角左下模式的示例的概念图。

  图5A是示出包含用于排除对角和相邻模式边界滤波的PDPC扩展的全帧内测试条件BD率的表1的示例的概念图。

  图5B是示出包含用于包括对角和相邻模式边界滤波的PDPC扩展的全帧内测试条件BD率的表2的示例的概念图。

  图6是示出视频编码器的示例的框图。

  图7是示出视频解码器的示例的框图。

  图8是示出对视频数据进行编码的示例方法的流程图。

  图9为示出对视频数据进行解码的示例方法的流程图。

  具体实施方式

  本公开内容描述了用于使用帧内预测对视频数据块进行译码的技术,且更具体而言,本公开内容描述了与以使用位置相关帧内预测组合(PDPC)方法的方式使用帧内预测相关的技术,且更具体而言,使用将此PDPC方法扩展到角度帧内预测模式(例如,对角帧内模式和与对角帧内模式相邻的角度模式)的PDPC方法。本文所描述的技术大体上将压缩效率引入到对视频数据块进行的译码中,且更具体而言,通过针对角度帧内预测模式(例如,对角帧内模式和与对角帧内模式相邻的角度模式)使用这种技术而将压缩效率引入到PDPC方法,其中压缩效率是在推进现有视频译码技术的状态和改进视频译码处理器和视频编解码器的性能方面总体上期望的目标。

  如本公开内容中所使用,术语视频译码(coding)一般指代视频编码或视频解码。类似地,术语视频译码器可一般指代视频编码器或视频解码器。此外,本公开内容中关于视频解码所描述的某些技术也可应用于视频编码,且反之亦然。例如,视频编码器和视频解码器通常被配置为执行相同过程或互逆过程。而且,视频编码器通常作为确定如何对视频数据进行编码的过程的一部分而执行视频解码。因此,除非相反地陈述,否则不应假设关于视频解码描述的技术也不能作为视频编码的一部分来执行,或反之亦然。

  本公开内容还可使用例如当前层、当前块、当前图片、当前切片等术语。在本公开内容的上下文中,术语“当前”旨在标识当前正译码的块、图片、切片等,其与例如先前或已经译码的块、图片和切片或尚未译码的块、图片和切片相反。

  图1是示出示例视频编码和解码系统10的框图,其可以利用本公开内容的用于使用PDPC方法且更具体而言使用将这种PDPC方法扩展到角度帧内预测模式(例如,对角帧内模式及与对角帧内模式相邻的角度模式)的PDPC方法来对视频数据块进行译码的技术。如图1中所示,系统10包括源设备12,其提供经编码视频数据以稍后由目的地设备14解码。具体而言,源设备12经由计算机可读介质16将视频数据提供到目的地设备14。源设备12和目的地设备14可以包括广泛范围的设备中的任一个,包含台式计算机、笔记本(即,膝上型)计算机、平板电脑、机顶盒、例如所谓的“智能”电话的电话手持机、平板电脑、电视机、相机、显示设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些情况下,源设备12和目的地设备14可被配备以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。源设备12是示例视频编码设备(即,用于对视频数据进行编码的设备)。目的地设备14是示例视频解码设备(例如,用于对视频数据进行解码的设备或装置)。

  在图1的示例中,源设备12包括视频源18、被配置为存储视频数据的存储介质20、视频编码器22和输出接口24。目的地设备14包括输入接口26、被配置为存储经编码的视频数据的存储介质28、视频解码器30和显示设备32。在其它示例中,源设备12和目的地设备14包括其它组件或布置。例如,源设备12可从外部视频源(例如外部摄像机)接收视频数据。同样,目的地设备14可与外部显示设备对接,而不是包括集成显示设备。

  图1所示的系统10仅是一个示例。用于处理视频数据的技术可由任何数字视频编码和/或解码设备或装置执行。尽管一般来说本公开内容的技术由视频编码设备和视频解码设备执行,但所述技术还可由通常称为“CODEC(编解码器)”的组合视频编码器/解码器执行。源设备12和目的地设备14仅是其中源设备12生成经编码视频数据以供传输到目的地设备14的这种译码设备的示例。在一些示例中,源设备12和目的地设备14以实质上对称的方式操作,使得源设备12和目的地设备14中的每一个包括视频编码和解码组件。因此,系统10可支持源设备12与目的地设备14之间的单向或双向视频传输,例如,以用于视频流传输、视频回放、视频广播或视频电话。

  源设备12的视频源18可以包括视频捕获设备(诸如,视频摄像机)、含有先前捕获的视频的视频存档和/或用以从视频内容提供者接收视频数据的视频馈入接口。作为另一替代方案,视频源18可生成基于计算机图形的数据作为源视频,或生成实况视频、存档视频和计算机生成的视频的组合。源设备12可以包括被配置为存储视频数据的一个或多个数据存储介质(例如,存储介质20)。本公开内容中描述的技术可大体上适用于视频译码,且可应用于无线和/或有线应用。在每一情况下,所捕获、预先捕获或计算机生成的视频可由视频编码器22编码。输出接口24可将经编码的视频信息输出到计算机可读介质16。

  目的地设备14可经由计算机可读介质16接收待解码的经编码视频数据。计算机可读介质16可以包括能够将经编码视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一些示例中,计算机可读介质16包括用以使得源设备12能够实时地将经编码视频数据直接发送到目的地设备14的通信介质。可根据诸如无线通信协议之类的通信标准来调制经编码视频数据,且将其发送到目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,所述基于分组的网络诸如局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或可用于促进从源设备12到目的地设备14的通信的任何其它设备。目的地设备14可以包括被配置为存储经编码视频数据及已解码视频数据的一个或多个数据存储介质。

  在一些示例中,经编码数据(例如,经编码视频数据)可从输出接口24输出到存储设备。类似地,可通过输入接口26从存储设备存取经编码数据。存储设备可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备可对应于文件服务器或可存储由源设备12生成的经编码视频的另一中间存储设备。目的地设备14可经由流传输或下载来从存储设备存取所存储的视频数据。文件服务器可以是能够存储经编码视频数据且将经编码视频数据发送到目的地设备14的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备、或本地硬盘驱动器。目的地设备14可通过包括互联网连接在内的任何标准数据连接来存取经编码视频数据。这可以包括适合于存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。经编码视频数据从存储设备进行的传输可以是流传输、下载传输或其组合。

  本公开内容的技术可应用于支持多种多媒体应用中的任一个的视频译码,所述多媒体应用诸如空中电视广播、有线电视传输、卫星电视传输、互联网流媒体视频传输,例如包括HTTP上的动态自适应流传输(DASH)的自适应流传输技术、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码,或其它应用。在一些示例中,系统10可被配置为支持单向或双向视频传输以支持例如视频流传输、视频回放、视频广播和/或视频电话等的应用。

  计算机可读介质16可以包括诸如无线广播或有线网络传输之类的暂时性介质,或者诸如硬盘、闪存驱动器、压缩光盘、数字视频盘、蓝光盘之类的存储介质(即,非暂时性存储介质),或者其他计算机可读介质。在一些示例中,网络服务器(未示出)可从源设备12接收经编码视频数据,且例如经由网络传输将经编码视频数据提供到目的地设备14。类似地,介质生产设施(例如,光盘压制设施)的计算设备可从源设备12接收经编码视频数据,并生产含有经编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可以被理解为包括各种形式的一个或多个计算机可读介质。

  目的地设备14的输入接口26从计算机可读介质16接收信息。计算机可读介质16的信息可以包括视频编码器22的由视频编码器22定义的语法信息,其也由视频解码器30使用,所述语法信息包括描述块和其它经译码单元(例如,图片组(GOP))的特性和/或处理的语法元素。存储介质28可存储由输入接口26接收的经编码视频数据。显示设备32向用户显示已解码的视频数据。显示设备32可以包括多种显示设备中的任一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。

  视频编码器22和视频解码器30各自可实施为多种合适的编码器或解码器电路中的任一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当所述技术部分地以软件实现时,设备可将用于软件的指令存储在合适的非暂时性计算机可读介质中,且可使用一个或多个处理器来以硬件执行所述指令以执行本公开内容的技术。视频编码器22和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,所述编码器或解码器中的任一个可集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。

  在一些示例中,视频编码器22和视频解码器30可根据视频译码标准操作。示例视频译码标准包括但不限于ITU-T H.261、ISO/IEC MPEG-1visual、ITU-T H.262或ISO/IECMPEG-2visual、ITU-T H.263、ISO/IEC MPEG-4visual和ITU-T H.264(也称为ISO/IECMPEG-4AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。视频译码标准高效视频译码(HEVC)或ITU-T H.265,包括其范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)以及可缩放扩展(SHVC),已经由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合合作团队(JCT-VC)开发。可从http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip获得HEVC草案规范(下文中称为HEVC WD)。

  视频编码器22和视频解码器30还可根据其它专有或工业标准操作,例如联合探索测试模型(JEM)或ITU-TH.266,其也被称为通用视频译码(VVC)。Bross等人的“VersatileVideo Coding(Draft 4)”,ITU-T SG 16WP 3的联合视频专家组(JVET)以及ISO/IEC JTC1/SC 29/WG 11的第13次会议:马拉喀什,MA,2019年1月9-18日,JVET-M1001-v5(下文的“VVC草案4”)描述了VVC标准的最新草案。然而,本公开内容的技术不限于任何特定译码标准。

  在HEVC和VVC以及其他视频译码规范中,视频序列通常包括一系列图片。图片也可被称为“帧”。图片可以包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。色度样本在本文中还可称为“chroma”样本。在其它实例中,图片可以是单色的且可仅包括亮度样本阵列。

  此外,在HEVC和其它视频译码规范中,为了生成图片的经编码表示,视频编码器22可生成译码树单元CTU的集合。CTU中的每一个CTU可以包括亮度样本的译码树块、色度样本的两个对应译码树块,和用以对译码树块的样本进行译码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个译码树块和用于对译码树块的样本进行译码的语法结构。译码树块可以是N×N的样本块。CTU也可以称为“树块”或“最大译码单元”(LCU)。HEVC的CTU可以广泛地类似于诸如H.264/AVC等其它标准的宏块。然而,CTU不必限于特定大小,并且可以包括一个或多个译码单元(CU)。切片(slice)可以包括以光栅扫描次序连续排序的整数数量的CTU。

  如果根据HEVC操作,为了生成经译码CTU,视频编码器22可对CTU的译码树块递归地执行四叉树分割以将译码树块划分成译码块,因此名为“译码树单元”。译码块是N×N的样本块。CU可以包括具有亮度样本阵列、Cb样本阵列和Cr样本阵列的图片的亮度样本的译码块和色度样本的两个对应译码块,以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CU可以包括单个译码块及用以对译码块的样本进行译码的语法结构。

  比特流内的语法数据还可定义CTU的大小。切片包括按译码次序的多个连续CTU。可以将视频帧或图片分割成一个或多个切片。如上所述,可以根据四叉树将每个树块分割成CU。通常,四叉树数据结构包括每个CU一个节点,根节点对应于树块。如果将CU分割成四个子CU,则对应于CU的节点包括四个叶节点,每个叶节点对应于子CU之一。

  四叉树数据结构的每个节点可提供用于对应CU的语法数据。例如,四叉树中的节点可以包括分割标志,其指示是否将对应于节点的CU分割成子CU。用于CU的语法元素可递归地被定义且可取决于是否将CU分割成子CU。如果不进一步分割CU,则将其称为叶CU。如果进一步分割CU的块,那么通常可将其称为非叶CU。在本公开内容的一些示例中,叶CU的四个子CU可称为叶CU,即使不存在原始叶CU的明确分割。例如,如果16×16大小的CU不进一步分割,那么四个8×8子CU也可称为叶CU,尽管16×16CU从未被分割。

  CU具有与H.264标准的宏块类似的目的,不同之处在于CU不具有大小区别。例如,可以将树块分割成四个子节点(也被称为子CU),并且每个子节点可以进而是父节点并且可以被分割成另外的四个子节点。被称为四叉树的叶节点的最终未分割子节点包括译码节点,也称为叶CU。与经译码比特流相关联的语法数据可以定义树块可分割的最大次数,称为最大CU深度,且还可定义译码节点的最小大小。因此,比特流还可定义最小译码单元(SCU)。本公开内容在HEVC的上下文中使用术语“块”来指代CU、PU或TU中的任一个,或在其它标准的上下文中指代类似数据结构(例如,H.264/AVC中的宏块及其子块)。

  CU包括译码节点以及与译码节点相关联的预测单元(PU)和变换单元(TU)。CU的大小对应于译码节点的大小,且在一些示例中可以是正方形形状。在HEVC的示例中,CU的大小可在从8×8像素到具有64×64像素或更大的最大值的树块的大小的范围内。每个CU可以包含一个或多个PU和一个或多个TU。与CU相关联的语法数据可描述例如CU到一个或多个PU的划分。划分模式可在CU是跳过(skip)或直接模式编码、帧内预测模式编码还是帧间预测模式编码之间不同。可以将PU划分为非正方形形状。与CU相关联的语法数据还可描述例如根据四叉树将CU划分成一个或多个TU。TU的形状可以是正方形或非正方形(例如,矩形)。

  HEVC标准允许根据TU的变换。TU对于不同的CU可以不同。TU的大小通常基于针对经划分LCU定义的给定CU内的PU的大小,但情况可能并非总是如此。TU通常与PU大小相同或小于PU。在一些示例中,可使用有时称为“残差四叉树”(RQT)的四叉树结构将对应于CU的残差样本细分成较小的单元。RQT的叶节点可被称为TU。可以变换与TU相关联的像素差值以产生可量化的变换系数。

  叶CU可以包括一个或多个PU。一般来说,PU表示与对应CU的全部或一部分相对应的空间区域,且可以包括用于检索PU的参考样本的数据。此外,PU包括与预测相关的数据。例如,当对PU进行帧内模式编码时,PU的数据可以包括在RQT中,RQT可以包括描述与PU相对应的TU的帧内预测模式的数据。作为另一示例,当对PU进行帧间模式编码时,PU可以包括定义PU的一个或多个运动向量的数据。定义PU的运动向量的数据可描述例如运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片和/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。

  具有一个或多个PU的叶CU也可以包括一个或多个TU。如上所述,可使用RQT(也称为TU四叉树结构)来指定TU。例如,分割标志可指示是否将叶CU分割成四个变换单元。在一些示例中,可以将每个变换单元进一步分割成进一步的子TU。当不进一步分割TU时,其可被称为叶TU。通常,对于帧内译码,属于叶CU的所有叶TU包含从相同帧内预测模式产生的残差数据。即,通常应用相同的帧内预测模式来计算将在叶CU的所有TU中变换的预测值。对于帧内译码,视频编码器22可使用帧内预测模式计算每个叶TU的残差值,作为CU的对应于TU的部分与原始块之间的差。TU不必限于PU的大小。因此,TU可以大于或小于PU。对于帧内译码,PU可与同一CU的对应叶TU并置。在一些示例中,叶TU的最大大小可对应于对应的叶CU的大小。

  此外,叶CU的TU也可与各自的RQT结构相关。即,叶CU可以包括指示如何将叶CU划分成TU的四叉树。TU四叉树的根节点通常对应于叶CU,而CU四叉树的根节点通常对应于树块(或LCU)。

  如上文所论述,视频编码器22可将CU的译码块划分成一个或多个预测块。预测块是对其应用相同预测的矩形(即,正方形或非正方形)样本块。CU的PU可以包括亮度样本的预测块、色度样本的两个对应预测块,以及用以预测所述预测块的语法结构。在单色图片或具有三个单独颜色平面的图片中,PU可以包括单个预测块及用于预测所述预测块的语法结构。视频编码器22可生成用于CU的每个PU的预测块(例如,亮度、Cb和Cr预测块)的预测性块(例如,亮度、Cb和Cr预测性块)。

  视频编码器22和视频解码器30可被配置为根据VVC进行操作。根据VVC,视频译码器(例如视频编码器22)将图片划分成多个译码树单元CTU。视频编码器22可根据树结构(例如,四叉树-二叉树(QTBT)结构或多型式树(MTT)结构)来划分CTU。QTBT结构去除了多个划分类型的概念,例如HEVC的CU、PU和TU之间的分离。QTBT结构包括两个级别:根据四叉树划分进行划分的第一级,以及根据二叉树划分进行划分的第二级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。

  在MTT划分结构中,可以使用四叉树(QT)划分、二叉树(BT)划分和一种或多种类型的三叉树(TT)划分来对块进行划分。三叉树划分是将块划分成三个子块的划分。在一些示例中,三叉树划分在不通过中心来对原始块进行划分的情况下将块分成三个子块。MTT中的划分类型(例如QT、BT和TT)可以是对称的或不对称的。

  在一些示例中,视频编码器22和视频解码器30可使用单个QTBT或MTT结构来表示亮度和色度分量中的每一个,而在其它示例中,视频编码器22和视频解码器30可使用两个或更多个QTBT或MTT结构,例如一个QTBT/MTT结构用于亮度分量且另一QTBT/MTT结构用于两个色度分量(或两个QTBT/MTT结构用于相应的色度分量)。

  视频编码器22和视频解码器30可被配置为使用按照HEVC的四叉树划分、QTBT划分、MTT划分或其它划分结构。出于解释的目的,针对QTBT划分来呈现对本公开内容的技术的描述。然而,应理解,本公开内容的技术还可应用于被配置为使用四叉树划分或其它类型的划分的视频译码器。

  视频编码器22可使用帧内预测或帧间预测来生成PU的预测性块。如果视频编码器22使用帧内预测来生成PU的预测性块,那么视频编码器22可基于包括PU的图片的已解码样本来生成PU的预测性块。

  在视频编码器22生成CU的一个或多个PU的预测性块(例如,亮度、Cb和Cr预测性块)之后,视频编码器22可生成CU的一个或多个残差块。例如,视频编码器22可生成CU的亮度残差块。CU的亮度残差块中的每个样本指示CU的预测性亮度块中的一个中的亮度样本与CU的原始亮度译码块中的对应样本之间的差。另外,视频编码器22可生成CU的Cb残差块。CU的Cb残差块中的每个样本可指示CU的预测性Cb块中的一个中的Cb样本与CU的原始Cb译码块中的对应样本之间的差。视频编码器22还可生成CU的Cr残差块。CU的Cr残差块中的每个样本可指示CU的预测性Cr块中的一个中的Cr样本与CU的原始Cr译码块中的对应样本之间的差。

  此外,如上文所论述,视频编码器22可使用四叉树划分来将CU的残差块(例如,亮度、Cb和Cr残差块)分解成一个或多个变换块(例如,亮度、Cb和Cr变换块)。变换块是对其应用相同变换的矩形(例如,正方形或非正方形)样本块。CU的变换单元(TU)可以包括亮度样本的变换块、色度样本的两个对应变换块,以及用于对变换块样本进行变换的语法结构。因此,CU的每个TU可具有亮度变换块、Cb变换块和Cr变换块。TU的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可以包括单个变换块和用于对变换块的样本进行变换的语法结构。

  视频编码器22可将一个或多个变换应用于TU的变换块以生成TU的系数块。例如,视频编码器22可将一个或多个变换应用于TU的亮度变换块以生成TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器22可将一个或多个变换应用于TU的Cb变换块以生成TU的Cb系数块。视频编码器22可将一个或多个变换应用于TU的Cr变换块以生成TU的Cr系数块。

  在一些示例中,视频编码器22跳过将变换应用于变换块。在这种示例中,视频编码器22可以以与变换系数相同的方式处理残差样本值。因此,在视频编码器22跳过变换的应用的示例中,变换系数和系数块的以下论述可适用于残差样本的变换块。

  在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器22可量化系数块以可能减少用于表示系数块的数据量,从而潜在地提供进一步压缩。量化通常是指将一个范围的值压缩成单个值的过程。例如,可以通过将值除以常数,然后舍入到最接近的整数来完成量化。为了量化系数块,视频编码器22可量化系数块的变换系数。在视频编码器22量化系数块之后,视频编码器22可以对指示经量化变换系数的语法元素进行熵编码。例如,视频编码器22可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)或其它熵译码技术。

  视频编码器22可输出包括比特序列的比特流,该比特序列形成经译码图片和相关联数据的表示。因此,比特流包括视频数据的经编码表示。比特流可以包括网络抽象层(NAL)单元序列。NAL单元是一种语法结构,包含NAL单元中的数据的类型的指示和包含该数据的字节,该数据的形式为原始字节序列有效载荷(RBSP),必要时散布有防仿真比特。NAL单元中的每一个NAL单元可以包括NAL单元报头,并且可以封装RBSP。NAL单元报头可以包括指示NAL单元类型代码的语法元素。NAL单元的NAL单元报头所指定的NAL单元类型代码指示NAL单元的类型。RBSP可以是包含被封装在NAL单元内的整数个字节的语法结构。在一些示例中,RBSP包括零比特。

  视频解码器30可以接收由视频编码器22生成的比特流。视频解码器30可以解码比特流以重构视频数据的图片。作为解码比特流的一部分,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可至少部分地基于从比特流获得的语法元素来重构视频数据的图片。用以重构视频数据的过程可大体上与由视频编码器22执行的过程互逆。例如,视频解码器30可使用PU的运动向量来确定当前CU的PU的预测性块。另外,视频解码器30可以逆量化当前CU的TU的系数块。视频解码器30可对系数块执行逆变换以重构当前CU的TU的变换块。视频解码器30可通过将当前CU的PU的预测性块的样本与当前CU的TU的变换块的对应样本相加,来重构当前CU的译码块。通过重构图片的每个CU的译码块,视频解码器30可重构该图片。

  本文所公开的技术是依据基于块的帧内预测而构建的,基于块的帧内预测是包括AVC、HEVC及VVC的视频标准的一部分。在基于块的帧内预测中,通常,将来自相邻的重构块的参考样本行用于预测当前块内的样本。一行或多行样本可用于预测。参考样本由典型的帧内预测模式(例如DC、平面和角度/方向模式)使用。

  帧内预测使用块的空间相邻的重构的图像样本来执行图像块预测。利用帧内预测,通过沿选定预测方向的上方和左侧相邻重构样本(参考样本)来预测N×M(例如,4×4)块。作为一个示例,通过沿选定预测方向的上方和左侧相邻重构样本(即,参考样本)来预测块。参考样本在正被预测的块外部。利用参考样本,视频编码器22基于参考样本来构造具有预测样本的预测块。

  一般来说,在帧内预测技术中,视频编码器22确定指示预测块与当前块之间的差的残差块(例如,指示预测样本与当前块的样本之间的差的残差值),且传送指示残差块中的残差值的信息。视频解码器30类似地确定参考样本且构造预测块。视频解码器30基于所接收的信息来确定残差块的残差值,并将残差块的残差值与预测块的预测样本相加以重构当前块。

  如更详细描述的,本公开内容中描述的示例技术修改预测块的预测样本中的一个或多个(例如,全部)样本。视频编码器22可基于经修改的预测样本来确定残差值。视频解码器30可将残差值与经修改的预测样本相加以重构当前块。如同样更详细描述的,该技术适用于角度帧内预测模式,且修改预测样本的方式可基于用以编码或解码当前块的角度帧内预测模式。

  存在多个帧内预测模式。在一些示例中,亮度块的帧内预测包括35个模式,包括平面模式、DC模式及33个角度模式(例如,对角帧内预测模式及与对角帧内预测模式相邻的角度模式)。对帧内预测的35个模式进行索引,如下表所示。在其它示例中,可定义更多帧内模式,包括可能尚未由这33个角度模式表示的预测角度。在其它示例中,与角度模式相关联的预测角度可不同于HEVC中所使用的预测角度。

  表1-帧内预测模式和关联名称的规范

  为了对N×N块执行平面预测,对于位于(x,y)处的每个样本pxy,可以通过将双线性滤波器应用于四个特定的相邻重构样本(即,参考样本)来计算预测值。这四个参考样本包括右上重构样本TR、左下重构样本BL、以及位于当前样本的相同列(rx,-1)和相同行(r-1,y)的两个重构样本。平面模式可以如下公式表示:

  pxy=((N-x1)·L+(N-y1)·T+x1·R+y1·B)/(2*N)

  其中x1=x+1,y1=y+1,R=TR,且B=BL。

  对于DC模式,用相邻重构样本的平均值填充预测块。通常,平面模式和DC模式都被应用于对平滑变化和恒定的图像区域进行建模。

  对于HEVC中的角度帧内预测模式,其包括33个不同预测方向,帧内预测过程可描述如下。对于每个给定的角度帧内预测模式,可以相应地识别帧内预测方向;例如,帧内模式18对应于纯水平预测方向,帧内模式26对应于纯垂直预测方向。

  给定特定帧内预测方向,对于预测块的每个样本,将其坐标(x,y)首先沿预测方向投影到相邻重构样本的行/列。假设将(x,y)投影到两个相邻的重构样本L和R之间的分数位置α;然后,可以使用两抽头双线性内插滤波器来计算(x,y)的预测值,公式如下:

  pxy=(1-a)·L+a·R。

  例如,将预测块的样本的坐标(x,y)沿着特定帧内预测方向(例如,角度帧内预测模式中的一个)投影。为了避免浮点运算,在HEVC中,使用整数运算将以上计算实际上近似为:

  pxy=((32-a’)·L+a’·R+16)>>55,

  其中,a'是等于32*a的整数。

  在一些示例中,在帧内预测之前,使用2抽头双线性或3抽头(1,2,1)/4滤波器对相邻参考样本进行滤波,如称为帧内参考平滑或模式相关帧内平滑(MDIS)。当进行帧内预测时,给定帧内预测模式索引(predModeIntra)和块大小(nTbS),确定是否执行参考平滑处理以及使用哪个平滑滤波器。帧内预测模式索引是指示帧内预测模式的索引。

  使用以上示例技术生成预测块的预测样本。在生成预测样本之后,可以使用位置相关帧内预测组合(PDPC)来修改一个或多个预测样本。在ITU-T SG16/Q6文档.COM16-C1046,“Position Dependent intra Prediction Combination(PDPC),和X.Zhao,V.Seregin,A.Said,M.Karczewicz,“EE1related:Simplification and extension ofPDPC”,第8次JVET会议,澳门,2018年10月,JVET-H0057中描述了PDPC的形式。该文献中公开了应用于平面模式、DC模式、水平模式和垂直模式而无信令的PDPC的介绍,概述如下。

  利用帧内预测模式(DC,平面,角度)预测位于(x,y)处的预测样本pred(x,y),并且使用针对单个参考样本行的PDPC表达式来修改其值:

  pred(x,y)=(wL×R-1,y+wT×Rx,-1–wTL×R-1,-1+(64–wL–wT+wTL)×pred’(x,y)+32)>>6,(等式1)

  在等式1中,pred’(x,y)是使用上述用于生成预测样本的示例技术所确定的预测样本的值,并且pred(x,y)是pred’(x,y)的修改值。在等式1中,Rx,-1、R-1,y分别表示位于当前样本(x,y)的顶部和左侧并在当前块的外部的参考样本,并且R-1,-1表示位于当前块的左上角和外部的参考样本。即,Rx,-1表示在当前块上方一行的样本,其x坐标与正被修改的预测样本的x坐标相同,且R-1,y表示在当前块左侧一列的样本,其y坐标与正被修改的预测样本的y坐标相同。

  用于修改预测样本的样本(例如,参考样本)是图片中的样本(例如,亮度和色度样本),且未必是其它预测样本(尽管可能)。例如,假设被帧内预测的当前块的大小为N×M。对于该当前块,视频编码器22和视频解码器30可生成N×M大小的预测块。用于修改预测样本的参考样本是包括当前块的当前图片中的样本且在当前块外部(例如,亮度和/或色度样本)。

  用于识别当前块外部的样本的坐标系是相对于当前块的。例如,位于当前块的左上角的样本具有坐标(0,0)。视频编码器22可确定位于预测块的左上角(例如,具有坐标(0,0))的预测样本与当前块中具有坐标(0,0)的样本之间的残差。为了重构位于当前块中的(0,0)处的样本,视频解码器30可将位于预测块中的(0,0)处的预测样本与对应于位于(0,0)处的样本的残差值相加。因此,对于当前块中的每个样本,在预测块中存在对应样本(例如,具有相同坐标)。

  因此,Rx,-1意味着y坐标为-1,因此指代在当前块上方的行中的样本。x坐标可以与正在被修改的预测样本的x坐标相同。对于R-1,y,x坐标为-1,因此指代当前块左侧的列。y坐标可以与正在被修改的预测样本的y坐标相同。

  也可以使用不同的坐标系,例如(0,0)坐标指代图片的左上样本的坐标系。示例技术是针对(0,0)坐标指代块的左上样本的坐标系进行描述的。

  对于DC模式,对于具有宽度(width)和高度(height)的尺寸的块,权重计算如下:wT=32>>((y<<1)>>shift),wL=32>>((x<<1)>>shift),wTL=(wL>>4)+(wT>>4),

  在上述等式中,shift=(log2(width)+log2(height)+2)>>2,而对于平面模式为wTL=0,对于水平模式为wTL=wT,而对于垂直模式为wTL=wL。PDPC权重可以仅用加法和移位(shift)来计算。可以使用等式1在单个步骤中计算pred(x,y)的值。

  图2A示出了一个4×4块内的(0,0)位置的DC模式PDPC权重(wL,wT,wTL)。图2B示出了一个4×4块内的(1,0)位置的DC模式PDPC权重(wL,wT,wTL)。如果将PDPC应用于DC、平面、水平和垂直帧内模式,则不应用额外的边界滤波器,例如DC模式边界滤波器或水平/垂直模式边缘滤波器。等式1可以被一般化以包括额外参考样本行(例如,不限于对当前块的上方一行或左侧一行的样本)。在这种情况下,Rx,-1、R-1,y、R-1,-1的邻域中可以获得多个参考样本,并且各自可以具有可以例如通过训练而优化的分配的权重。

  如本文所公开的,PDPC现在可以一般地扩展到角度模式(例如,扩展到对角帧内模式和与对角模式相邻的角度模式)。预期的对角帧内模式是根据左下和右上方向预测的模式,以及几种相邻的角度模式,例如,左下对角模式和垂直模式之间的N个相邻模式,以及右上对角模式和水平模式之间的N或M个相邻模式。图3示出了如本文所公开的角度模式的识别。通常,相邻模式可以是可用角度模式的选定子集。角度模式之间的间隔可以例如是不均匀的,并且可以例如跳过一些角度模式。

  在本公开内容中描述的示例技术中,视频编码器22和视频解码器30可被配置为执行PDPC,其中以排除DC、平面、垂直或水平模式的角度模式对当前块进行帧内预测。然而,在将PDPC扩展到角度帧内预测模式中可能存在技术复杂性。例如,参考样本虽然位于当前块外部,但不需要具有与正被修改的预测样本相同的x和/或y坐标。因此,可能不确定使用哪些参考样本来修改预测样本从而获得视频译码效率。

  例如,如果减少了传送残差值所需的信息,则带宽效率增加。因此,与其它技术相比,用于修改预测块的参考样本应使得从经修改预测块生成的残差值需要传送较少的信息量。然而,如果对要使用哪些参考样本的确定过于繁重,那么在视频解码器30重构当前块所花费的时间方面可能存在延迟。

  本公开内容描述了向视频译码技术提供实际应用的示例技术,这些技术诸如与角度帧内预测模式一起使用的PDPC。例如,示例技术提供了一种用于利用角度帧内预测模式使用PDPC的技术解决方案。下文更详细地描述视频编码器22和视频解码器30可以利用角度帧内预测模式执行PDPC的示例方式。

  作为一个示例,视频编码器22可以被配置为:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块,并使用位置相关帧内预测组合(PDPC)来修改预测块的预测样本以生成经修改的预测样本。应当理解,尽管针对一个预测样本描述了这些技术,但示例技术不限于此。在一些示例中,视频编码器22可使用PDPC来修改预测块的其它预测样本。

  为了修改预测样本,视频编码器22可以基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本。视频编码器22可以基于经修改的预测样本和当前块中的样本值来确定残差块的残差值,以及传送指示残差值的信息。

  作为一个示例,视频解码器30可以被配置为:基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块,并使用位置相关帧内预测组合(PDPC)来修改预测块的预测样本以生成经修改的预测样本。类似于上文,尽管针对一个预测样本描述了这些技术,但示例技术不限于此。在一些示例中,视频解码器30可使用PDPC修改预测块的其它预测样本。

  为了修改预测样本,视频解码器30可以被配置为基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,并基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本。视频解码器30还可以被配置为基于经修改的预测样本和残差值来重构当前块的样本。

  图4A-4D示出了PDPC扩展到对角帧内模式和相邻角度帧内模式所使用的样本的定义。图4A示出了用于将PDPC扩展到右上对角模式的参考样本Rx,-1、R-1,y和R-1,-1的定义。预测样本pred(x’,y’)位于预测块内的(x’,y’)处。参考样本Rx,-1的坐标x由下式给出:x=x’+y’+1,参考样本R-1,y的坐标y类似地由下式给出:y=x’+y’+1。用于右上对角模式的PDPC权重是例如:wT=16>>((y’<<1)>>shift),wL=16>>((x’<<1)>>shift),wTL=0。

  类似地,图4B示出了用于将PDPC扩展到左下对角模式的参考样本Rx,-1、R-1,y和R-1,-1的定义。参考样本Rx,-1的坐标x由下式给出:x=x’+y’+1,参考样本R-1,y的坐标y,y是:y=x’+y’+1。用于左下对角模式的PDPC权重是例如:wT=16>>((y’<<1)>>shift),wL=16>>((x’<<1)>>shift),wTL=0。

  在图4A和4B中,视频编码器22和视频解码器30可各自确定当前块上方(例如,紧挨在上方,但本技术不限于此)的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频编码器22和视频解码器30可基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。

  类似地,在图4A和4B中,视频编码器22和视频解码器30可确定当前块左侧(例如,紧挨在左侧,但本技术不限于此)的列且确定在所确定的列中的y坐标。在所确定的列中的y坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频编码器22和视频解码器30可基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。

  基于所确定的x坐标和y坐标,视频编码器22和视频解码器30可确定参考样本(例如,基于所确定的行和所确定的x坐标的第一参考样本及基于所确定的列和所确定的y坐标的第二参考样本)。此外,视频编码器22和视频解码器30可根据以上示例技术为对角模式(例如,右上对角模式和左下对角模式,作为两个示例)确定权重。接着,基于等式1(作为一个非限制性示例),视频编码器22和视频解码器30可确定经修改的预测样本(例如,pred(x,y))。

  图4C中示出了相邻右上对角模式的情况。总体而言,对于图3中定义的角α,如下确定参考样本R-1,y的y坐标:y=y’+tan(α)×(x’+1),并且Rx,-1的x坐标由下式给出:x=x’+cotan(α)×(y’+1),其中tan(α)和cotan(α)是角度α的正切和余切。用于相邻右上对角模式的PDPC权重是例如:wT=32>>((y’<<1)>>shift)、wL=32>>((x’<<1)>>shift)、wTL=0或wT=32>>((y’<<1)>>shift),wL=0,wTL=0。

  类似地,图4D中示出了相邻左下对角模式的情况。通常,对于图3中定义的角β,如下确定参考样本Rx,-1的x坐标x=x’+tan(β)×(y’+1),R-1,y的y坐标由下式给出:y=y’+cotan(β)×(x’+1),其中tan(β)和cotan(β)是角度β的正切和余切。用于相邻左下对角模式的PDPC权重是例如:wL=32>>((x’<<1)>>shift)、wT=32>>((y’<<1)>>shift)、wTL=0或wL=32>>((x’<<1)>>shift),wT=0,wTL=0。

  在图4C和4D中,视频编码器22和视频解码器30可各自确定当前块上方(例如,紧挨在上方,但本技术不限于此)的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标是基于角度帧内预测模式的角度的。视频编码器22和视频解码器30可基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。

  为了确定在所确定的行中的x坐标,视频编码器22和视频解码器30可确定角度帧内预测模式的角度的余切(例如,对于相邻右上对角模式)或正切(例如,对于相邻左下对角模式)中的一个。视频编码器22和视频解码器30可基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的行中的x坐标。例如,对于相邻右上对角帧内预测模式,在所确定的行中的x坐标等于x’+cotan(α)×(y’+1),而对于相邻左下对角模式,在所确定的行中的x坐标等于x’+tan(β)×(y’+1),其中x’和y’是正被修改的预测样本的x坐标和y坐标。

  类似地,在图4C和4D中,视频编码器22和视频解码器30可各自确定当前块左侧(例如,紧挨在左侧,但本技术不限于此)的列且确定在所确定的列中的y坐标。在所确定的列中的y坐标是基于角度帧内预测模式的角度的。视频编码器22和视频解码器30可基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。

  为了确定在所确定的列中的y坐标,视频编码器22和视频解码器30可确定角度帧内预测模式的角度的余切(例如,对于相邻左下对角模式)或正切(例如,对于相邻右上对角模式)中的一个。视频编码器22和视频解码器30可基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的列中的y坐标。例如,对于相邻右上对角帧内预测模式,在所确定的列中的y坐标等于y’+tan(α)×(x’+1),而对于相邻左下对角模式,在所确定的列中的y坐标等于y’+cotan(β)×(x’+1),其中x’和y’是正被修改的预测样本的x坐标和y坐标。

  基于所确定的x坐标和y坐标,视频编码器22和视频解码器30可确定参考样本(例如,基于所确定的行和所确定的x坐标的第一参考样本及基于所确定的列和所确定的y坐标的第二参考样本)。此外,视频编码器22和视频解码器30可根据以上示例技术为相邻对角模式(例如,相邻右上对角模式和相邻左下对角模式,作为两个示例)确定权重。接着,基于等式1(作为一个非限制性示例),视频编码器22和视频解码器30可确定经修改的预测样本(例如,pred(x,y))。

  以上描述了用于右上和左下对角模式以及相邻右上和相邻左下对角模式的示例技术,这些模式作为可以应用PDPC的示例角度模式。示例技术也可以扩展到其他角度模式。此外,在一些示例中,该一个或多个参考样本具有与预测块中的预测样本的x坐标和y坐标不同的x坐标和y坐标。例如,在确定相应行和列中的x坐标和y坐标以确定参考样本的以上示例等式中,x坐标不同于正被修改的预测样本的x坐标,并且y坐标不同于正被修改的预测样本的y坐标。即,参考样本可以不与正被修改的预测样本处于相同行或相同列中。

  如DC模式、平面模式、水平模式和垂直模式PDPC的情况,不存在用于当PDPC扩展到这些角度模式时的对角模式和相邻对角模式的附加边界滤波(例如在‘J.Chen、E.Alshina、G.J.Sullivan、J.-R.Ohm,J.Boyce的“Algorithm description of Joint ExplorationTest Model 7”,第7次JVET会议,意大利都灵,2017年7月,JVET-G1001中规定的边界滤波)。

  如上文所描述的,本公开内容中所描述的示例技术可允许在对复杂性的影响最小的情况下将PDPC应用于角度帧内预测模式。在实际的实施方式中,角度的正切和余切的值可以存储在表中,使得它们不是在工作时(例如,在运行时间)计算的。以下是总共129个角度模式的示例表格:

  TanAngTable[33]={0,1,2,3,4,5,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,49,52,55,58,61,64}。

  CotanAngTable[33]={0,65536,32768,21845,16384,13107,10923,8192,6554,5461,4681,4096,3641,3277,2979,2731,2521,2341,2185,2048,1928,1820,1725,1638,1560,1489,1425,1337,1260,1192,1130,1074,1024}。

  此外,这些表可能已经由块的角度帧内预测采用,且可重新用于对对角模式和相邻模式(例如,角度帧内预测模式)的PDPC扩展。因此,在PDPC的实现中不需要附加的表。在一些示例中,可以例如通过训练来产生定制表,以进一步优化PDPC。

  在一些情况下,通过围绕右下对角线翻转该块,将所有水平角度模式映射到垂直模式。围绕垂直模式的对称性允许将角度的数量进一步减少到33,其分别具有在TanAngTable和CotanAngTable中的存储的正切值和余切值。由于所需的整数精度,两个表中的值都进行了缩放,在TanAngTable的情况下,缩放因子为64,而在CotanAngTable的情况下,缩放因子的值为1024。通过在遍历预测块的同时,随着x'和y'的增加而累加与角度模式相对应的表值,避免了用于计算坐标x和y的上述公式中的乘法。

  如果计算出分数值,则可使用参考样本的内插(例如通过线性或三次内插)或使用最近邻舍入。例如,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频编码器22和视频解码器30可被配置为基于角度帧内预测模式来确定一个或多个样本的集合,且内插该一个或多个样本的集合以生成该一个或多个参考样本。内插是一个示例。在一些示例中,视频编码器22或视频解码器30可执行内插、具有偏移的舍入或不具有偏移的舍入中的至少一个。视频编码器22或视频解码器30可基于该一个或多个样本的集合中的相邻样本,在具有或不具有偏移的情况下执行这种舍入以生成该一个或多个参考样本。

  在计算大坐标值的情况下,可能需要限幅(slipping)以防止对参考行缓冲器边界外部的参考样本的存取。如果执行限幅,则可以使用最后可用的参考样本,或者PDPC可以仅回退到角度帧内预测,这相当于对等式1中的wL、wT、wTL应用零权重。例如,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频编码器22和视频解码器30可被配置为确定基于角度帧内预测模式所识别的在当前块外部的一个或多个样本未存储在参考行缓冲器中,且基于存储在参考行缓冲器中的最后参考样本来确定该一个或多个参考样本。

  在一些示例中,可针对当前块禁用PDPC或可针对某些经预测样本禁用PDPC,使得使用常规帧内预测(例如,没有经修改预测样本),而不是使用参考行缓冲器中的最后样本。作为一个示例,对于预测块中的预测样本,视频编码器22或视频解码器30可确定第一参考样本在参考缓冲器中可用,但第二参考样本在参考缓冲器中不可用。在该示例中,视频编码器22或视频解码器30可确定针对预测样本禁用PDPC。然而,在一些示例中,视频编码器22或视频解码器30可将第一参考样本用于PDPC且不利用第二参考样本(例如,通过将用于第二参考样本的权重设定为等于零)。

  如上文所描述的,在一些示例中,视频编码器22和视频解码器30可对预测块中的多个预测样本执行示例PDPC技术。然而,可能存在如下实例:其中,对同一预测块中的预测样本中的一些而不对其它预测样本使用PDPC技术。例如,假定对于预测块中的第一预测样本,视频编码器22或视频解码器30执行本公开内容中所描述的PDPC技术。然而,对于同一预测块中的第二预测样本,假定对第二预测样本执行PDPC技术所需的参考样本未存储在参考行缓冲器中。在该示例中,对于第二预测样本,视频编码器22或视频解码器30可不执行PDPC技术,且可利用常规帧内预测技术。在一些情况下,对于第二预测样本,参考样本中的一个在参考行缓冲器中可用而另一个在参考行缓冲器中不可用的情况是可能的。在一些示例中,视频编码器22或视频解码器30可不对第二预测样本执行PDPC技术或可仅利用可用的参考样本且将零权重指派给被应用于不可用的参考样本的权重。

  PDPC扩展到对角模式和相邻角度模式的压缩效率在下表中示出。在该示例测试中,总共有16个模式与右上对角模式相邻,16个模式与左下对角模式相邻。示例测试条件是全帧内预测,并且所利用的QP值是{22,27,32,37}。表1(图5A)表示排除对角和相邻模式边界滤波的PDPC扩展(对角和相邻)的全帧内预测测试条件BD率。图5A的表1列举了当禁用用于对角模式和相邻模式的边界滤波情况下测试时的BD率。此外,表2(图5B)表示包括对角和相邻模式边界滤波的PDPC扩展(对角和相邻)的全帧内预测测试条件BD率。此外,图5B的表2列举了当启用用于对角模式和相邻模式的边界滤波情况下测试时的BD率。

  类似于对角和相邻角度模式的PDPC扩展,PDPC可以扩展到与水平模式和垂直模式相邻的角度模式。在这种情况下,相邻角度模式可以指水平模式和垂直模式两侧的角度模式。在相邻水平角度模式的情况下,Rx,-1的x坐标等于pred(x,y)的x坐标。示例PDPC权重是:wT=16>>((y<<1)>>shift),wL=0,wTL=wT。在相邻垂直角度模式的情况下,R-1,y的y坐标等于pred(x,y)的y坐标。示例PDPC权重是:wL=16>>((x<<1)>>shift),wT=0,wTL=wL。

  图6是示出可实施本公开内容的技术的示例视频编码器22的框图。图6是出于解释的目的而提供,且不应被视为限制如本公开内容中广泛地例示和描述的技术。本公开内容的技术可适用于各种译码标准(例如,HEVC或VVC)或方法。

  示出图6的各种单元以帮助理解由视频编码器22执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能性且预设在可执行的操作上的电路。可编程电路是指可被编程以执行各种任务并在可执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行软件或固件,其使得可编程电路以由软件或固件的指令定义的方式操作。固定功能电路可执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,其中一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。

  在图6的示例中,视频编码器22包括预测处理单元100、视频数据存储器101、残差生成单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重构单元112、滤波器单元114、已解码图片缓冲器116和熵编码单元118。预测处理单元100包括帧间预测处理单元120和帧内预测处理单元126。帧间预测处理单元120可以包括运动估计单元和运动补偿单元(未示出)。

  视频数据存储器101可被配置为存储待由视频编码器22的组件编码的视频数据。存储在视频数据存储器101中的视频数据可以例如从视频源18获得。已解码图片缓冲器116可以是参考图片存储器,其存储参考视频数据以供视频编码器22在例如帧内或帧间译码模式中对视频数据进行编码时使用。视频数据存储器101和已解码图片缓冲器116可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储器设备。视频数据存储器101和已解码图片缓冲器116可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,视频数据存储器101可与视频编码器22的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器101可以与图1的存储介质20相同或是其一部分。

  视频编码器22接收视频数据。视频编码器22可编码视频数据的图片的切片中的每个CTU。CTU中的每个CTU可以与图片的相等大小的亮度CTB和相应CTB相关联。作为对CTU进行编码的一部分,预测处理单元100可执行划分以将CTU的CTB递归地分成较小的块。较小的块可以是CU的译码块。例如,预测处理单元100可根据树结构划分与CTU相关联的CTB。根据本公开内容的一个或多个技术,对于树结构的每一深度层处的树结构的每个相应非叶节点,存在用于相应非叶节点的多个允许的分割模式,且根据该多个允许的分割模式中的一个分割模式来将与相应非叶节点相对应的视频块划分成与相应非叶节点的子节点相对应的视频块。在一个示例中,视频编码器22的预测处理单元100或另一处理单元可被配置为执行本文描述的技术的任何组合。

  视频编码器22可编码CTU的CU以生成CU的经编码表示(即,经译码CU)。作为对CU进行编码的一部分,预测处理单元100可在CU的一个或多个PU之间划分与CU相关联的译码块。根据本公开内容的技术,CU可仅包括单个PU。即,在本公开内容的一些示例中,CU未被分为单独的预测块,而是对整个CU执行预测过程。因此,每个CU可与亮度预测块及对应色度预测块相关联。视频编码器22和视频解码器30可支持具有各种大小的CU。如上文所指示,CU的大小可以指代CU的亮度译码块的大小,也可指代亮度预测块的大小。如上文所论述的,视频编码器22和视频解码器30可支持由本文所描述的示例划分技术的任何组合定义的CU大小。

  帧间预测处理单元120可通过对CU的每个PU执行帧间预测来生成PU的预测性数据。如本文中所解释,在本公开内容的一些示例中,CU可仅包含单个PU,即,CU与PU可以是同义的。PU的预测性数据可以包括PU的预测性块和PU的运动信息。帧间预测处理单元120可依据PU是在I切片、P切片还是B切片中而针对PU或CU执行不同操作。在I切片中,对所有PU进行帧内预测。因此,如果PU在I切片中,那么帧间预测处理单元120不对PU执行帧间预测。因此,对于以I模式编码的块,使用来自同一帧内的先前编码的相邻块的空间预测来形成预测块。如果PU在P切片中,那么帧间预测处理单元120可使用单向帧间预测来生成PU的预测性块。如果PU在B切片中,那么帧间预测处理单元120可使用单向或双向帧间预测来生成PU的预测性块。

  帧内预测处理单元126可通过对PU执行帧内预测来生成PU的预测性数据。PU的预测性数据可以包括PU的预测性块和各种语法元素。帧内预测处理单元126可对I切片、P切片和B切片中的PU执行帧内预测。

  为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来生成PU的多个预测性数据集。帧内预测处理单元126可使用来自相邻PU的样本块中的样本来生成PU的预测性块。假定PU、CU和CTU的从左到右、从上到下的编码顺序,相邻PU可以在PU的上方、右上方、左上方或左侧。帧内预测处理单元126可使用各种数量的帧内预测模式,例如,35个方向帧内预测模式。在一些示例中,帧内预测模式的数量可取决于与PU相关联的区域的大小。

  在一个示例中,帧内预测处理单元126可被配置为实施本公开内容的技术。在其它示例中,其它单元或模块可被配置为实施本公开内容的技术中的全部或一些。

  预测处理单元100可从帧间预测处理单元120针对PU生成的预测性数据或帧内预测处理单元126针对PU生成的预测性数据中,选择CU的PU的预测性数据。在一些示例中,预测处理单元100基于预测性数据集合的率/失真度量来选择CU的PU的预测性数据。选定预测性数据的预测性块在本文中可被称作选定预测性块。

  残差生成单元102可基于CU的译码块(例如,亮度、Cb和Cr译码块)和CU的PU的选定预测性块(例如,预测性亮度、Cb和Cr块)来生成CU的残差块(例如,亮度、Cb和Cr残差块)。例如,残差生成单元102可生成CU的残差块,使得残差块中的每个样本具有等于CU的译码块中的样本与CU的PU的对应选定预测性块中的对应样本之间的差的值。

  变换处理单元104可执行四叉树划分或四叉树二叉树(QTBT)划分,以将与CU相关联的残差块划分成与CU的TU相关联的变换块。因此,TU可与亮度变换块和两个色度变换块相关联。CU的TU的亮度和色度变换块的大小和位置可基于或可不基于CU的PU的预测块的大小和位置。被称为“残差四叉树”(RQT)的四叉树结构可以包括与每个区域相关联的节点。CU的TU可对应于RQT的叶节点。视频编码器22可不使用RQT结构将CU进一步分为TU。这样,在一个示例中,CU包括单个TU。

  变换处理单元104可通过将一个或多个变换应用于TU的变换块,来为CU的每个TU生成变换系数块。变换处理单元104可将各种变换应用于与TU相关联的变换块。例如,变换处理单元104可将离散余弦变换(DCT)、方向变换或概念上类似的变换应用于变换块。在一些示例中,变换处理单元104不将变换应用于变换块。在这种示例中,可将变换块视为变换系数块。

  量化单元106可量化系数块中的变换系数。量化过程可减少与变换系数中的一些或全部相关联的比特深度。例如,可在量化期间将n-比特变换系数下舍入到m-比特变换系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的系数块。视频编码器22可通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。量化可能引入信息的损失。因此,经量化的变换系数可能具有比原始变换系数低的精度。

  逆量化单元108和逆变换处理单元110可分别将逆量化和逆变换应用于系数块,以从系数块重构残差块。重构单元112可将经重构残差块与来自由预测处理单元100生成的一个或多个预测性块的对应样本相加,以产生与TU相关联的经重构变换块。通过以此方式为CU的每个TU重构变换块,视频编码器22可重构CU的译码块。

  滤波器单元114可执行一个或多个去块滤波和/或其它滤波操作以减少与CU相关联的译码块中的成块伪像。已解码图片缓冲器116可在滤波器单元114对经重构译码块执行一个或多个去块操作之后存储经重构译码块。帧间预测处理单元120可使用包含经重构译码块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用已解码图片缓冲器116中的经重构译码块来对与CU相同的图片中的其它PU执行帧内预测。

  熵编码单元118可从视频编码器22的其它功能组件接收数据。例如,熵编码单元118可从量化单元106接收系数块且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一个或多个熵编码操作以生成经熵编码数据。例如,熵编码单元118可对数据执行CABAC操作、上下文自适应可变长度译码(CAVLC)操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器22可输出包括由熵编码单元118生成的经熵编码数据的比特流。例如,比特流可以包括表示根据本公开内容的技术的CU的划分结构的数据。

  图7是示出被配置为实施本公开内容的技术的示例视频解码器30的框图。图7是出于解释的目的而提供,而不限制如本公开内容中广泛地例示和描述的技术。出于解释的目的,本公开内容在HEVC或VVC译码的上下文中描述视频解码器30。然而,本公开内容的技术可适用于其它译码标准或方法。

  示出图7的各种单元以帮助理解由视频解码器30执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图6,固定功能电路是指提供特定功能性且预设在可执行的操作上的电路。可编程电路是指可被编程以执行各种任务并在可执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行软件或固件,其使得可编程电路以由软件或固件的指令定义的方式操作。固定功能电路可执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,其中一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。

  在图7的示例中,视频解码器30包括熵解码单元150、视频数据存储器151、预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158、滤波器单元160和已解码图片缓冲器162。预测处理单元152包括运动补偿单元164和帧内预测处理单元166。在其它示例中,视频解码器30可以包括更多、更少或不同的功能组件。

  视频数据存储器151可存储待由视频解码器30的组件解码的经编码视频数据,例如经编码视频比特流。存储在视频数据存储器151中的视频数据可例如从计算机可读介质16(例如,从例如摄像机的本地视频源)、经由视频数据的有线或无线网络通信或通过存取物理数据存储介质而获得。视频数据存储器151可形成经译码图片缓冲器(CPB),其存储来自经编码视频比特流的经编码视频数据。已解码图片缓冲器162可以是参考图片存储器,其存储参考视频数据以供在由视频解码器30例如在帧内或帧间译码模式中对视频数据进行解码中使用或用于输出。视频数据存储器151和已解码图片缓冲器162可以由多种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储器设备。视频数据存储器151和已解码图片缓冲器162可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器151可以与图1的存储介质28相同或是其一部分。

  视频数据存储器151接收并存储比特流的经编码视频数据(例如,NAL单元)。熵解码单元150可从视频数据存储器151接收经编码视频数据(例如,NAL单元),且可解析NAL单元以获得语法元素。熵解码单元150可对NAL单元中的经熵编码语法元素进行熵解码。预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158和滤波器单元160可基于从比特流提取的语法元素生成已解码视频数据。熵解码单元150可执行大致与熵编码单元118的过程互逆的过程。

  根据本公开内容的一些示例,作为从比特流获得语法元素的一部分,熵解码单元150或视频解码器30的另一处理单元可确定树结构。树结构可指定如何将例如CTB的初始视频块划分成例如译码单元的较小视频块。根据本公开内容的一个或多个技术,对于树结构的每个深度层处的树结构的每个相应非叶节点,存在用于相应非叶节点的多个允许的划分类型,且根据该多个允许的划分模式中的一个划分模式将与相应非叶节点相对应的视频块划分成与相应非叶节点的子节点相对应的视频块。

  除了从比特流获得语法元素之外,视频解码器30可对未分割CU执行重构操作。为了对CU执行重构操作,视频解码器30可对CU的每个TU执行重构操作。通过对CU的每个TU执行重构操作,视频解码器30可重构CU的残差块。如上文所论述的,在本公开内容的一个示例中,CU包括单个TU。

  作为对CU的TU执行重构操作的一部分,逆量化单元154可以对与TU相关联的系数块进行逆量化(即,解量化)。在逆量化单元154对系数块进行逆量化之后,逆变换处理单元156可将一个或多个逆变换应用于系数块以便生成与TU相关联的残差块。例如,逆变换处理单元156可将逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于系数块。

  如果CU或PU是使用帧内预测编码的,那么帧内预测处理单元166可执行帧内预测以生成PU的预测性块。帧内预测处理单元166可使用帧内预测模式来基于空间相邻块的样本来生成PU的预测性块。帧内预测处理单元166可基于从比特流获得的一个或多个语法元素来确定PU的帧内预测模式。

  在一个示例中,帧内预测处理单元166可被配置为实施本公开内容的技术。在其它示例中,其它单元或模块可被配置为实施本公开内容的技术中的全部或一些。

  如果PU是使用帧间预测编码的,那么熵解码单元150可确定PU的运动信息。运动补偿单元164可基于PU的运动信息确定一个或多个参考块。运动补偿单元164可基于该一个或多个参考块来为PU生成预测性块(例如,预测性亮度、Cb和Cr块)。如上文所论述的,CU可仅包括单个PU。即,CU可不被分成多个PU。

  重构单元158可在适当时使用CU的TU的变换块(例如,亮度、Cb和Cr变换块)和CU的PU的预测性块(例如,亮度、Cb和Cr块)(即,帧内预测数据或帧间预测数据),来重构CU的译码块(例如,亮度、Cb和Cr译码块)。例如,重构单元158可将变换块(例如,亮度、Cb和Cr变换块)的样本与预测性块(例如,亮度、Cb和Cr预测性块)的对应样本相加以重构CU的译码块(例如,亮度、Cb和Cr译码块)。

  滤波器单元160可执行去块操作以减少与CU的译码块相关联的成块伪像。视频解码器30可将CU的译码块存储在已解码图片缓冲器162中。已解码图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测和在例如图1的显示设备32的显示设备上的呈现。例如,视频解码器30可基于已解码图片缓冲器162中的块为其它CU的PU执行帧内预测或帧间预测操作。

  视频解码器输出包括当前块的已解码版本的当前图片的已解码版本。当视频解码器是被配置为输出可显示的已解码视频的视频解码器时,那么视频解码器可例如将当前图片的已解码版本输出到显示设备。当解码是作为视频编码过程的解码循环的组成部分而执行时,则视频解码器可将当前图片的已解码版本存储为参考图片以供编码视频数据的另一图片时使用。

  图8是示出对视频数据进行编码的示例方法的流程图。视频编码器22(例如,具有帧内预测处理单元126)可被配置为基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块(200)。视频数据存储器101或DPB16可以存储预测块。

  视频编码器22(例如,具有帧内预测处理单元126)可被配置为使用位置相关帧内预测组合(PDPC)来修改预测块的预测样本以生成经修改的预测样本(202)。例如,为了修改预测样本,视频编码器22可被配置为:基于所述角度帧内预测模式来确定在当前块外部的一个或多个参考样本(204),且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本(206)。在一个示例中,为了确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为确定具有与预测块中的预测样本的x坐标和y坐标不同的x坐标和y坐标的该一个或多个参考样本。

  作为一个示例,为了确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为:确定在当前块上方的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频编码器22可基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。作为另一示例,为了确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为:确定在当前块左侧的列,且确定在所确定的列中的y坐标。在所确定的列中的y坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频编码器22可被配置为基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。

  作为一个示例,为了确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为:确定在当前块上方的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标是基于角度帧内预测模式的角度的。视频编码器22可被配置为基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。为了确定在所确定的行中的x坐标,视频编码器22可被配置为:确定角度帧内预测模式的角度的余切或正切中的一个,且基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的行中的x坐标。

  作为另一示例,为了确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为:确定在当前块左侧的列,且确定在所确定的列中的y坐标。在所确定的列中的y坐标是基于角度帧内预测模式的角度的。视频编码器22可被配置为基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。为了确定在所确定的列中的y坐标,视频编码器22可被配置为:确定角度帧内预测模式的角度的余切或正切中的一个,且基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的列中的y坐标。

  作为一个示例,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为基于角度帧内预测模式确定一个或多个样本的一集合,并对该一个或多个样本的集合进行内插以生成该一个或多个参考样本。在一些示例中,视频编码器22可被配置为对该一个或多个样本的集合进行内插、带偏移舍入或无偏移舍入中的至少一项操作,以生成该一个或多个参考样本。

  作为一个示例,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频编码器22可被配置为:确定基于角度帧内预测模式所识别的在当前块外部的一个或多个样本未存储在参考行缓冲器中,并基于存储在参考行缓冲器中的最后参考样本来确定该一个或多个参考样本。在一些示例中,修改预测块的预测样本可以包括修改预测块的第一预测样本,且该一个或多个参考样本可以是一个或多个参考样本的第一集合。视频编码器22可被配置为:针对同一预测块的第二预测样本,确定针对第二预测样本的一个或多个参考样本的第二集合中的至少一个参考样本未存储在参考行缓冲器中,并执行以下步骤中的一个:(a)不将PDPC应用于第二预测样本或(b)仅使用参考行缓冲器中可用的参考样本来应用PDPC(例如,通过将零权重应用于不可用的参考样本)。

  根据一个或多个示例,视频编码器22可被配置为基于预测样本的x坐标和y坐标来确定多个权重。为了修改预测样本,视频编码器22可被配置为基于所确定的一个或多个参考样本、所确定的权重和预测样本来修改预测样本以生成经修改的预测样本。

  视频编码器22可被配置为基于经修改的预测样本和当前块中的样本值来确定残差块的残差值(208)。视频编码器22可被配置为传送指示残差值的信息(210)。

  图9是示出对视频数据进行解码的示例方法的流程图。视频解码器30(例如,具有帧内预测处理单元166)可被配置为基于并非DC、平面、水平或垂直帧内预测模式的角度帧内预测模式来为当前块确定包括多个预测样本的预测块(212)。视频数据存储器151或DPB162可存储预测块。

  视频解码器30(例如,具有帧内预测处理单元166)可被配置为使用位置相关帧内预测组合(PDPC)来修改预测块的预测样本以生成经修改的预测样本(214)。例如,为了修改预测样本,视频解码器30可被配置为:基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本(216),且基于所确定的一个或多个参考样本来修改预测样本以生成经修改的预测样本(218)。在一个示例中,为了确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为确定具有与预测块中的预测样本的x坐标和y坐标不同的x坐标和y坐标的该一个或多个参考样本。

  作为一个示例,为了确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:确定在当前块上方的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频解码器30可基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。作为另一示例,为了确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:确定在当前块左侧的列,且确定在所确定的列中的y坐标。在所确定的列中的y坐标等于预测样本的x坐标加上预测样本的y坐标加上1。视频解码器30可被配置为基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。

  作为一个示例,为了确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:确定在当前块上方的行,且确定在所确定的行中的x坐标。在所确定的行中的x坐标是基于角度帧内预测模式的角度的。视频解码器30可被配置为基于所确定的行和所确定的x坐标来确定该一个或多个参考样本中的参考样本。为了确定在所确定的行中的x坐标,视频解码器30可被配置为:确定角度帧内预测模式的角度的余切或正切中的一个,且基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的行中的x坐标。

  作为另一示例,为了确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:确定在当前块左侧的列且确定在所确定的列中的y坐标。在所确定的列中的y坐标是基于角度帧内预测模式的角度的。视频解码器30可被配置为基于所确定的列和所确定的y坐标来确定该一个或多个参考样本中的参考样本。为了确定在所确定的列中的y坐标,视频解码器30可被配置为:确定角度帧内预测模式的角度的余切或正切中的一个,且基于角度帧内预测模式的角度的余切或正切中的一个、预测样本的x坐标和预测样本的y坐标来确定在所确定的列中的y坐标。

  作为一个示例,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:基于角度帧内预测模式来确定一个或多个样本的一集合,且对该一个或多个样本的集合进行内插以生成该一个或多个参考样本。在一些示例中,视频解码器30可被配置为对该一个或多个样本的集合进行内插、带偏移舍入或无偏移舍入中的至少一项操作以生成该一个或多个参考样本。

  作为一个示例,为了基于角度帧内预测模式来确定在当前块外部的一个或多个参考样本,视频解码器30可被配置为:确定基于角度帧内预测模式所识别的在当前块外部的一个或多个样本未存储在参考行缓冲器中,且基于存储在参考行缓冲器中的最后参考样本来确定该一个或多个参考样本。在一些示例中,修改预测块的预测样本可以包括修改预测块的第一预测样本,且该一个或多个参考样本可以是一个或多个参考样本的第一集合。视频解码器30可被配置为:针对同一预测块的第二预测样本,确定针对第二预测样本的一个或多个参考样本的第二集合中的至少一个参考样本未存储在参考行缓冲器中,且执行以下步骤中的一个:(a)不将PDPC应用于第二预测样本或(b)仅使用参考行缓冲器中可用的参考样本来应用PDPC(例如,通过将零权重应用于不可用的参考样本)。

  根据一个或多个示例,视频解码器30可被配置为基于预测样本的x坐标和y坐标来确定多个权重。为了修改预测样本,视频解码器30可被配置为基于所确定的一个或多个参考样本、所确定的权重和预测样本来修改预测样本以生成经修改的预测样本。

  视频解码器30可被配置为基于经修改的预测样本和残差值来重构当前块的样本(220)。例如,视频解码器30可接收残差值的信息。视频解码器30可将残差值与经修改的预测样本相加以重构当前块中的样本。

  出于说明的目的,已经针对HEVC标准的扩展描述了本公开内容的某些方面。然而,本公开内容中所描述的技术可用于其它视频译码过程,包括尚未开发的其它标准或专有视频译码过程。

  如本公开内容中所描述,视频译码器可指代视频编码器或视频解码器。类似地,视频译码单元可指代视频编码器或视频解码器。同样,视情况而定,视频译码可指代视频编码或视频解码。在本公开内容中,短语“基于”可以指示仅基于、至少部分基于或以某种方式基于。本公开内容可使用术语“视频单元”或“视频块”或“块”来指代一个或多个样本块及用以对一个或多个样本块的样本进行译码的语法结构。视频单元的示例类型可以包括CTU、CU、PU、变换单元(TU)、宏块、宏块分区(macroblock partition)等。在一些上下文中,PU的论述可与宏块或宏块分区的论述互换。视频块的示例类型可以包括译码树块、译码块及其它类型的视频数据块。

  应认识到,取决于示例,本文中所描述的技术中的任一个的某些操作或事件可以以不同序列执行,可被添加、合并或完全省去(例如,并非所有所描述的操作或事件对于实施所述技术来说都是必要的)。此外,在某些示例中,操作或事件可以例如通过多线程处理、中断处理或多个处理器来同时执行,而不是顺序执行。

  在一个或多个示例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为计算机可读介质上的一个或多个指令或代码而存储或传送,且由基于硬件的处理单元执行。计算机可读介质可以包括:计算机可读存储介质,其对应于例如数据存储介质的实体介质,或通信介质,包括有助于例如根据通信协议将计算机程序从一处传送到另一处的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的实体计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器存取以检索用于实施本公开内容中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

  作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储设备、闪存或可用于以指令或数据结构形式存储所需程序代码且可由计算机存取的任何其它介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波的无线技术包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是代之以针对非暂时性实体存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也应包括在计算机可读介质的范围内。

  指令可由一个或多个处理器执行,例如一个或多个DSP、通用微处理器、ASIC、FPGA或其它等效集成或分立逻辑电路。因此,如本文中所使用的术语“处理器”可指代前述结构中的任一个或适合于实施本文中所描述的技术的任何其它结构。另外,在一些方面中,本文中描述的功能可以在被配置为用于编码和解码的专用硬件和/或软件模块内提供,或并入组合编解码器中。此外,所述技术可完全在一个或多个电路或逻辑元件中实施。

  本公开内容的技术可以在广泛多种设备或装置中实施,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。在本公开内容中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但未必需要由不同硬件单元实现。相反,如上所述,各种单元可结合合适的软件和/或固件在编解码器硬件单元中组合或由互操作硬件单元(包括如上所述的一个或多个处理器)的集合提供。

  已经描述了各种示例。这些和其它示例在所附权利要求的范围内。

《用角度模式扩展的位置相关帧内预测组合.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)