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

根据亮度预测色度的帧内预测模式下参数缩放的改进信令方法

文献发布时间:2024-04-18 19:59:31


根据亮度预测色度的帧内预测模式下参数缩放的改进信令方法

相关申请的交叉引用

本申请要求在美国专利商标局于2022年6月6日提交的申请号为63/349,472的美国临时专利申请以及于2022年11月8日提交的申请号为17/982,967的美国专利申请的优先权,所述两个申请的公开内容通过引用整体并入本申请中。

技术领域

本公开的实施例涉及一组先进视频编码技术,并且尤其涉及为跨分量帧内预测模式发信号通知缩放参数。

背景技术

AOMedia Video 1(AV1)是一种开放的视频编码格式,设计用于因特网传输视频。AV1是由开放媒体联盟(AOMedia)作为VP9的继任者开发的,该联盟成立于2015年,包括半导体公司、视频点播供应商、视频内容生产商、软件开发公司和网络浏览器供应商。AV1项目的许多组成部分来源于联盟成员以前的研究工作。各个贡献者早在几年前就开始了实验技术平台:Xiph/Mozilla的Daala于2010年发布了代码,谷歌的实验性VP9演进项目VP10于2014年9月12日发布,思科的Thor于2015年8月11日发布。在VP9代码库的基础上,AV1加入了更多的技术,其中一些技术是以这些实验性格式开发。AV1参考编解码器的第一版本(0.1.0版)于2016年4月7日发布。2018年3月28日,该联盟宣布发布AV1码流规范,以及一个参考的基于软件的编码器和解码器。2018年6月25日,该规范的1.0.0经验证版本发布。2019年1月8日,《AV1码流和解码过程规范(AV1 Bitstream&Decoding Process Specification)》发布,这是该规范的1.0.0经验证版本,并附有规范的勘误表1。AV1码流规范包括参考视频编解码器。开放媒体联盟于2019年1月8日发布的《AV1码流和解码过程规范(AV1 Bitstream&Decoding Process Specification)》(版本1.0.0,附有勘误表1)通过引用整体并入本申请中。

高效视频编码(HEVC)标准由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)标准化组织联合制定。为了制定HEVC标准,这两个标准化组织结成合作伙伴关系,称为视频编码联合协作小组(JCT-VC)。HEVC标准的第一版于2013年1月定稿,产生了由ITU-T和ISO/IEC共同发布的统一文本。此后,又组织了其它工作来扩展该标准,以支持其它若干应用场景,包括具有更高精度和色彩格式支持的扩展范围使用,可缩放视频编码以及3D/立体声/多视图视频编码。在ISO/IEC中,HEVC标准成为MPEG-H第2部分(ISO/IEC 23008-2),在ITU-T中则成为ITU-T建议H.265。HEVC标准规范“H系列:视听和多媒体系统,视听业务基础设施-移动视频编码”,ITU-T H.265,国际电信联盟(2015年4月),通过引用整体并入本申请中。

ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)分别于2013(第1版)、2014(第2版)、2015(第3版)和2016(第4版)发布了H.265/HEVC(高效视频编码)标准。从那时起,他们一直在研究未来视频编码技术标准化的潜在需求,这些技术的压缩能力明显优于HEVC。2017年10月,他们发布了关于能力超出HEVC的视频压缩联合提议征集(CfP)。截止2018年2月15日,分别提交了22份标准动态范围(SDR)的CfP响应、12份高动态范围(HDR)的CfP响应和12份360视频类别的CfP响应。2018年4月,在122次MPEG/第10次联合视频探索小组-联合视频专家小组(JVET)会议上对所有收到的CfP响应进行了评估。通过仔细评估,JVET正式启动了HEVC以外的下一代视频编码的标准化,即所谓的通用视频编码(VVC)。VVC标准的规范“通用视频编码(草案7)”,JVET-P2001-vE,联合视频专家小组(2019年10月),通过引用整体并入本申请中。VVC标准的另一规范,“通用视频编码(草案10)”,JVET-S2001-vE,联合视频专家小组(2020年7月),通过引用整体并入本申请中。

发明内容

根据本公开的一方面,一种用于执行跨分量帧内预测的方法,由至少一个处理器执行,并且包括:从已编码码流中接收当前色度块;从已编码码流中确定在根据亮度预测色度(CfL)帧内预测模式下用于当前色度块的缩放因子;基于当前色度块的第一相邻样本和与当前色度块同位的亮度块的第二相邻样本,导出预测的缩放因子;使用预测的缩放因子,作为在CfL帧内预测模式下用于当前色度块的缩放因子;在基于预测的缩放因子缩放当前色度块之后,重建当前色度块。

根据本公开的一方面,一种用于执行跨分量帧内预测的设备包括:至少一个存储器,该存储器被配置为存储程序代码;以及至少一个处理器,该至少一个处理器被配置为访问程序代码并按照程序代码所指示地进行操作。该程序代码包括:接收代码,该接收代码被配置为使至少一个处理器从已编码码流中接收当前色度块;确定代码,该确定代码被配置为使至少一个处理器从已编码码流中确定在根据亮度预测色度(CfL)帧内预测模式下用于当前色度块的缩放因子;导出代码,该导出代码被配置为使至少一个处理器基于当前色度块的第一相邻样本和与当前色度块同位的亮度块的第二相邻样本,导出预测的缩放因子;使用代码,该使用代码被配置为使至少一个处理器使用预测的缩放因子,作为在CfL帧内预测模式下用于当前色度块的缩放因子;以及重建代码,该重建代码被配置为使至少一个处理器在基于预测的缩放因子缩放当前色度块之后,重建当前色度块。

根据本公开的一方面,从已编码码流中接收当前色度块;从已编码码流中确定在根据亮度预测色度(CfL)帧内预测模式下用于当前色度块的缩放因子;基于当前色度块的第一相邻样本和与当前色度块同位的亮度块的第二相邻样本,导出预测的缩放因子;使用预测的缩放因子,作为在CfL帧内预测模式下用于当前色度块的缩放因子;并且在基于预测的缩放因子缩放当前色度块之后,重建当前色度块。

附图说明

从以下详细描述和附图中,所公开主题的进一步特征、性质和各种优势将更加明显,其中:

图1是根据实施例的通信系统的简化框图的示意图。

图2是根据实施例的通信系统的简化框图的示意图。

图3是根据实施例的解码器的简化框图的示意图。

图4是根据实施例的编码器的简化框图的示意图。

图5是根据实施例的图示AV1中八个标称角度的示意图。

图6是根据实施例的图示当前块和样本的示意图。

图7是根据实施例的对应于根据亮度预测色度模式的线性函数的图解说明。

图8是根据实施例的示出当前块和相邻样本的示意图。

图9是根据实施例的用于发信号通知用于跨分量帧内预测的缩放参数的方法的流程图。

图10是适于实现本公开的实施例的计算机系统的示意图。

具体实施方式

在本公开中,术语“块”可解释为预测块、编码块,或编码单元(CU)。术语“块”在本文也可以用来指变换块。

在本公开中,术语“变换集”是指一组变换核(或候选)选项。变换集可以包括一个或多个变换核(或候选)选项。根据本公开的实施例,当多于一个变换选项可用时,可发信号通知索引以指示变换集中的变换选项中的哪一者应用于当前块。

在本公开中,术语“预测模式集”是指一组预测模式选项。预测模式集可以包括一个或多个预测模式选项。根据本公开的实施例,当多于一个预测模式选项可用时,可进一步发信号通知索引以指示预测模式集中的预测模式选项中的哪一者应用于当前块以执行预测。

在本公开中,术语“相邻重建样本集”是指来自先前已解码相邻块的一组重建样本或先前已解码图片中的重建样本。

在本公开中,术语“神经网络”是指具有一个或多个层的数据处理结构的一般概念,如本文中参考“用于视频编码的深度学习”所描述。根据本公开的实施例,任何神经网络可被配置为实现这些实施例。

图1图示了根据本公开的实施例的通信系统(100)的简化框图。该系统(100)可以包括经由网络(150)互连的至少两个终端(110,120)。对于数据的单向传输,第一终端(110)可以在本地位置对视频数据进行编码,以经由网络(150)传输到另一终端(120)。第二终端(120)可以从网络(150)接收另一终端的已编码视频数据,对已编码数据进行解码,并且显示经恢复视频数据。单向数据传输在媒体服务应用等中可能很常见。

图1图示了第二对终端(130,140),用于支持例如在视频会议期间可能出现的已编码视频的双向传输。对于数据的双向传输,每个终端(130,140)可以对在本地位置采集的视频数据进行编码,以便经由网络(150)传输到另一终端。每个终端(130,140)还可以接收由另一终端传输的已编码视频数据,可以对已编码数据进行解码,并且可以在本地显示装置上显示经恢复视频数据。

在图1中,终端(110至140)可以图示为服务器、个人计算机、智能手机和/或任何其它类型的终端。例如,终端(110至140)可以是笔记本电脑、平板电脑、媒体播放器和/或专用视频会议设备。网络(150)表示在终端(110至140)之间传送已编码视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网,和/或因特网。为了本讨论的目的,除非下文中另有解释,否则网络(150)的结构和拓扑对于本公开的操作可能是无关紧要的。

图2作为所公开主题的一个应用示例,图示了在流式传输环境中放置视频编码器和解码器。所公开主题可以同样适用于其它具有视频功能的应用,包括例如视频会议,数字电视,在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等。

如图2所示,流式传输系统(200)可以包括采集子系统(213),该采集子系统可以包括视频源(201)和编码器(203)。视频源(201)可以是例如数码相机,并且可以被配置为创建未压缩视频样本流(202)。与已编码视频码流相比,该未压缩视频样本流(202)可以提供较高的数据量,并且可以由耦接到视频源(201)的编码器(203)处理,视频源(201)例如可以是相机。编码器(203)可以包括硬件、软件或其组合,以启用或实现下文更详细描述的所公开主题的各个方面。与样本流相比,已编码视频码流(204)可以包括较低的数据量,并且可以存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端(206)可以访问流式传输服务器(205)以检索可以是已编码视频码流(204)的副本的视频码流(209)。

在实施例中,流式传输服务器(205)还可以用作媒体感知网络元件(MANE)。例如,流式传输服务器(205)可以被配置为修剪已编码视频码流(204),以便为一个或多个流式传输客户端(206)量身定制可能不同的码流。在实施例中,MANE可以与流式传输系统(200)中的流式传输服务器(205)分开提供。

流式传输客户端(206)可以包括视频解码器(210)和显示器(212)。视频解码器(210)可以例如对视频码流(209)进行解码,该视频码流是已编码视频码流(204)的传入副本,并且创建可以在显示器(212)或其它呈现装置(未描绘)上呈现输出视频样本流(211。在一些流式传输系统中,可以根据某些视频编码/压缩标准对视频码流(204,209)进行编码。此类标准的示例包括但不限于ITU-T建议H.265。正在开发的是非正式称为通用视频编码(VVC)的视频编码标准。本公开的实施例可用于VVC的上下文中。

图3图示了根据本公开的实施例的附接到显示器(212)的视频解码器(210)的示例功能框图。

视频解码器(210)可包括信道(312)、接收器(310)、缓冲存储器(315)、熵解码器/解析器(320)、缩放器/逆变换单元(351)、帧内预测单元(352)、运动补偿预测单元(353)、聚合器(355)、环路滤波器单元(356)、参考图片存储器(357)以及当前图片存储器()。在至少一个实施例中,视频解码器(210)可以包括一个集成电路、一系列集成电路,和/或其它电子电路。视频解码器(210)还可以部分或全部体现为在一个或多个CPU上运行的软件,并带有相关的存储器。

在该实施例和其它实施例中,接收器(310)可以接收一个或多个编码视频序列,由解码器(210)一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。已编码视频序列可从信道(312)接收,信道(312)可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(310)可以接收已编码视频数据和其它数据,例如,已编码音频数据和/或辅助数据流,这些数据流可以转发到各自的使用实体(未绘出)。接收器(310)可以将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(315)可以耦接在接收器(310)和熵解码器/解析器(320)(此后称为“解析器”)之间。当接收器(310)从具有足够带宽和可控性的存储/转发装置,或从等时同步网络接收数据时,也可以不使用缓冲存储器(315),或者将其设置得很小。为了在诸如互联网等尽力而为分组网络上使用,可能需要缓冲存储器(315),可以相对较大,也可以具有自适应性大小。

视频解码器(210)可以包括解析器(320),以根据已熵编码视频序列重建符号(321)。这些符号的类别包括,例如用于管理解码器(210)操作的信息,以及可能用于控制诸如显示器(212)等呈现装置的信息,该呈现装置可以耦接到如图2所示的解码器。用于呈现装置的控制信息可以是例如辅助增强信息(Supplemental Enhancement Information,SEI)消息或视频可用性信息(Video Usability Information,VUI)的参数集片段(未标示)的形式。解析器(320)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准进行,且可以遵循本领域技术人员公知的各种原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文灵敏度的算术编码等等。解析器(320)可以基于对应于群组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素子群中的至少一个子群的子群参数集。子群可包括图片群组(GOP)、图片、图块、条带、宏块、编码单元(CU)、块、变换单元(TU)、预测单元(PU)等。解析器(320)还可以从已编码视频序列中提取信息,诸如变换系数、量化器参数值、运动矢量等等。

解析器(320)可对从缓冲存储器(315)接收的视频序列执行熵解码/解析操作,从而创建符号(321)。

取决于已编码视频图片或一部分已编码视频图片(诸如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(321)的重建可以涉及多个不同的单元。涉及哪些单元以及涉及方式可以由子群控制信息来控制,该子群控制信息由解析器(320)从已编码视频序列解析。为了清楚起见,没有描述解析器(320)和下文多个单元之间的子群控制信息流。

除已经提及的功能块之外,解码器(210)可以在概念上细分成如下所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互,并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。

一个单元可以是缩放器/逆变换单元(351)。缩放器/逆变换单元(351)可以从解析器(320)接收作为符号(321)的量化变换系数以及控制信息,包括使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(351)可输出包括样本值的块,所述样本值可输入到聚合器(355)中。

在一些情况下,缩放器/逆变换单元(351)的输出样本可属于帧内已编码块,即,不使用来自先前重建图片的预测性信息,而是可以使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可以由帧内预测单元(352)提供。在一些情况下,帧内预测单元(352)使用从当前图片存储器(358)中获取的当前(部分重建)图片周围已经重建的信息,生成大小和形状与正在重建的块相同的块。在一些情况下,聚合器(355)在每个样本的基础上,将帧内预测单元(352)生成的预测性信息添加到由缩放器/逆变换单元(351)提供的输出样本信息。

在其它情况下,缩放器/逆变换单元(351)的输出样本可属于经帧间编码且可能经运动补偿的块。在此情况下,运动补偿预测单元(353)可以访问参考图片存储器(357)以提取用于预测的样本。在根据属于该块的符号(321)对所提取的样本进行运动补偿之后,这些样本可以由聚合器(355)添加到缩放器/逆变换单元(351)的输出(在这种情况下称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(353)从参考图片存储器(357)内的地址获取预测样本可受到运动矢量控制。运动矢量可以以符号(321)的形式提供给运动补偿预测单元(353),该符号可以具有例如X、Y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时,从参考图片存储器(357)提取的样本值的内插、运动矢量预测机制等。

聚合器(355)的输出样本可以在环路滤波器单元(356)中采用各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频码流中的参数,并且所述参数作为来自解析器(320)的符号(321)可用于环路滤波器单元(356),但是也可以响应于在解码已编码图片或已编码视频序列的先前(按解码顺序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(356)的输出可以是样本流,该样本流可以输出到诸如显示器(212)等呈现装置,以及存储在参考图片存储器(357)中,以用于后续的图片间预测。

一旦完全重建,某些已编码图片就可以用作参考图片以用于将来预测。一旦已编码图片完全重建,并且已编码图片被标识为参考图片(例如,由解析器(320)),则当前参考图片可以成为参考图片存储器(357)的一部分,并且可以在开始重建后续已编码图片之前重新分配新的当前图片存储器。

视频解码器(210)可以根据例如ITU-T Rec.H.265标准中记录的预定视频压缩技术执行解码操作。已编码视频序列可以符合所使用的视频压缩技术或标准指定的语法,在这种意义上,它遵循视频压缩技术或标准的语法,如在视频压缩技术文档或标准中以及尤其是在其中的简档文档中所规定的。而且,为了符合某些视频压缩技术或标准,已编码视频序列的复杂度可以在由视频压缩技术或标准的级别所定义的范围内。在一些情况下,级别限制了最大图片大小、最大帧速率、最大重建样本率(例如以每秒兆样本测量)、最大参考图片大小等。在一些情况下,通过在已编码视频序列中发信号通知的用于HRD缓冲器管理的假设参考解码器(HRD)规范和元数据,可以进一步限制由级别设置的限制。

在实施例中,接收器(310)可以与已编码视频一起接收附加(冗余)数据。附加数据可以作为一个或多个已编码视频序列的一部分包括在内。附加数据可以由视频解码器(210)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(SNR)增强层、冗余条带、冗余图片、前向纠错码等形式。

图4图示了根据本公开的实施例的与视频源(201)相关联的视频编码器(203)的示例功能框图。

视频编码器(203)可以包括,例如作为源编码器(430)、编码引擎(432)、(本地)解码器(433)、参考图片存储器(434)、预测器(435)、发射机(440)、熵编码器(445)、控制器(450)和信道(460)的编码器。

编码器(203)可从视频源(201)(并非编码器的一部分)接收视频样本,所述视频源可采集将由编码器(203)编码的视频图像。

视频源(201)可提供将由编码器(203)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如,BT.601Y CrCB、RGB……)和任何合适取样结构(例如,Y CrCb4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(201)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(201)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。

根据实施例,编码器(203)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(443)。施行适当的编码速度是控制器(450)的一个功能。控制器(450)还可以控制如下文所描述的其它功能单元且可以在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(450)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group ofpictures,GOP)布局,最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器(450)的其它功能,因为它们可能涉及针对某一系统设计优化的视频编码器(203)。

一些视频编码器在本领域技术人员容易识别的编码环路中运作。作为简单的描述,编码环路可以由源编码器(430)的编码部分(负责基于待编码的输入图片和参考图片创建符号)和嵌入于编码器(203)中的(本地)解码器(433),解码器(433)以(远程)解码器创建样本数据的方式重建符号,以创建样本数据(当在某些视频压缩技术中,符号与已编码视频码流之间的压缩是无损时)。重建的样本流可以输入到参考图片存储器(434)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)是本领域技术人员已知的。

“本地”解码器(433)的操作可与已在上文结合图3详细描述视频解码器(210)的“远程”解码器相同。然而,当符号可用且熵编码器(445)和解析器(320)能够无损地将符号编码/解码到已编解码视频序列时,包括信道(312)、接收器(310)、缓冲存储器(315)和解析器(320)在内的解码器(210)的熵解码部分,可能不完全在本地解码器(433)中实施。

此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也可能需要以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请侧重于解码器操作。可简化编码器技术的描述,因为编码器技术可以与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。

作为其操作的一部分,源编码器(430)可执行运动补偿预测编码,参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,对输入帧进行预测性编码。以此方式,编码引擎(432)对输入帧的像素块与参考帧的像素块之间的差值进行编码,所述参考帧可被选作所述输入帧的预测参考。

本地视频解码器(433)可基于源编码器(430)创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎(432)的操作可为有损过程。当已编码视频数据可在视频解码器(图4中未示)处解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(433)复制解码过程,所述解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片存储器(434)中。以此方式,编码器(203)可在本地存储重建的参考帧的副本,所述副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。

预测器(435)可针对编码引擎(432)执行预测搜索。即,对于将要编码的新帧,预测器(435)可在参考图片存储器(434)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如,参考图片运动矢量、块形状等。预测器(435)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(435)获得的搜索结果,可确定输入图片可具有从参考图片存储器(434)中存储的多个参考图片取得的预测参考。

控制器(450)可管理视频编码器(430)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(445)中对所有上述功能单元的输出进行熵编码。熵编码器根据本领域技术人员所知的例如霍夫曼编码、可变长度编码、算术编码等技术,对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。

传输器(440)可缓冲由熵编码器(445)创建的已编码视频序列,从而为通过通信信道(460)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(440)可将来自视频编码器(430)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(450)可管理编码器(203)的操作。在编码期间,控制器(450)可以为每个已编码图片分配某一已编码图片类型,这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为帧内图片(I图片)、预测性图片(P图片)、双向预测性图片(B图片)。

帧内图片(I图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片通常可在空间上细分成多个样本块(例如,每个具有4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或可以参考同一图片中已经编码的块进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。

视频编码器(203)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(203)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。

在实施例中,传输器(440)可传输附加数据和已编码的视频。视频编码器(430)可以包括此类数据为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和条带等其它形式的冗余数据、SEI消息、VUI参数集片段等。

[AV1中的方向帧内预测]

VP9支持8种方向模式,对应的角度从45度到207度。为了利用方向纹理中的更多种类的空间冗余,在AV1中,方向帧内模式扩展到粒度更细的角度集。将原来的8个角度稍加改变,使其成为标称角度,这8个标称角度分别命名为V_PRED(542)、H_PRED(543)、D45_PRED(544)、D135_PRED(545)、D113_PRED(5446)、D157_PRED(547)、D203_PRED(548)以及D67_PRED(549),图5中对其相对于当前块(541)进行了说明。每个标称角度有7个更细的角度,因此AV1总共有56个方向角度。预测角度由标称帧内角度加上角度增量表示,该角度增量是步长3度的-3到3倍。在AV1中,首先发信号通知八个标称模式以及五个非角度平滑模式。然后,如果当前模式是角度模式,则进一步发信号通知索引,以指示对应的标称角度的角度增量。为了以通用方式实现AV1中的方向预测模式,AV1中的所有56种方向帧内预测模式都是通过一个统一的方向预测子来实施,该预测子将每个像素投影到参考子像素位置,并通过一个2抽头双线性滤波器对参考像素进行内插。

[AV1中的非方向平滑帧内预测子]

在AV1中,有五种非方向性平滑帧内预测模式,分别是DC、PAETH、SMOOTH、SMOOTH_V以及SMOOTH_H。对于DC预测,左侧和上方相邻样本的平均值用作待预测块的预测子。对于PAETH预测子,首先获取顶部、左侧和左上方的参考样本,然后将最接近(顶部+左侧-左上方)的值设置为待预测像素的预测子。图6图示了当前块(550)中像素(552)的顶部样本(554)、左侧样本(556)和左上方样本(558)的位置。对于SMOOTH、SMOOTH_V和SMOOTH_H模式,使用垂直或水平方向上的二次插值或两个方向的平均来预测当前块(550)。

[根据亮度预测的色度]

除了上述模式之外,根据亮度预测色度(CfL)是一种仅色度的帧内预测子,它将色度像素建模为重合的已重建亮度像素的线性函数。CfL预测可以表示为如下等式(1):

CfL(α)=α×L

在等式(1)中,L

图7提供了等式(1)所描述的线性函数的图解。从图7和等式(1)中可以看出,已重建亮度像素二次采样为色度分辨率,然后减去平均值形成AC贡献。为了近似AC贡献中的色度AC分量,AV1 CfL可基于原始色度像素确定参数α并在码流中发信号通知它们,而不是像某些背景技术那样要求解码器计算缩放参数。这样可以降低解码器的复杂性,并获得更精确的预测结果。对于色度分量的DC贡献,可以使用帧内DC模式进行计算,这对于大多数色度内容来说是足够的,而且有成熟的快速实现方法。

当选择根据亮度预测色度(CfL)模式时,可以首先发信号通知U分量和V分量的缩放因子的联合信号。一个缩放因子的符号可以是负、零或正。此外,CfL模式可能不允许(0,0)的组合,因为这会导致“DC”预测。因此,两个缩放因子的符号组合总共可以有8种(3*3–1=8)组合。因此,联合符号可以使用一个八值符号发信号通知。可以仅使用一个上下文发信号通知联合信号。

对于缩放参数大小的信令,可以使用16值符号表示0到2之间的值,步长为1/8。值得注意的是,16值符号可以充分利用多符号熵编码器的能力。发信号通知缩放参数的上下文可以取决于联合符号的值。

相邻样本和当前块中的样本之间可能存在很强的相关性。然而,在CfL模式下,缩放参数的联合符号和幅度的相关技术信令中没有利用这种相关性。

因此,本申请实施例可以提供一种在CfL模式下发信号通知缩放参数的改进方法。本申请中所描述的实施例还可应用于其它模式,例如类似于CfL模式的模式,但这些模式中,用一个特定的颜色分量(例如,R)代替亮度,用另一个特定的颜色分量(例如,G或B)代替色度。

在实施例中,可基于当前色度块的相邻样本和同位亮度块的相邻样本,推导出具有缩放参数alpha_predict的线性模型。该缩放参数alpha_predict可用于发信号通知当前块的CfL模式下的实际缩放因子。缩放参数alpha_predict也可称为当前色度块的预测缩放参数。

在实施例中,当前色度块的上和/或左侧相邻样本以及同位亮度块的上方和/或左侧相邻样本可以参与缩放参数alpha_predict的推导过程。其中一个例子如图8所示,其中所涉及的相邻样本显示为虚线正方形,当前块样本显示为白色正方形。另一个示例是,如果当前帧/视频序列的YUV格式不是YUV444,则可在导出线性模型中的预测缩放因子之前。对同位亮度块的相邻样本进行下采样。

在实施例中,可以采用最小均方方法导出线性模型的预测缩放参数。例如,最小均方方法可以与VVC标准中定义的跨分量线性模型(CCLM)模式下使用的方法相同。

在实施例中,可以分别为U分量和V分量推导预测缩放参数。对于当前色度块的U分量,可使用当前色度块的U分量的相邻样本和同位亮度块的相邻样本导出预测缩放参数。对于当前色度块的V分量,可使用当前色度块的V分量的相邻样本和同位亮度块的相邻样本导出预测缩放参数。

在实施例中,预测缩放参数可用于对CfL模式下的缩放因子的可用符号值重新排序。重新排序的符号值的索引可以在码流中发信号通知。表1举例说明了可用符号值的重新排序。在该示例中,符号值可为负(-1)、正(+1)或零(0)。当scale_predict大于0时,可用符号值的重新排序如下:正(+1)、零(0)和负(-1)。因此,如果当前色度块的CfL模式的符号值为负,则可在码流中发信号通知2,因为当scale_predict大于0时,表1中负号(-1)的索引是2。

表1:重新排序符号值的示例

在实施例中,所预测缩放参数可用于对CfL模式下的缩放因子的(绝对)量值重新排序。缩放因子的所重新排序(绝对)幅度值的索引发信号通知到码流中。在实施例中,可以基于预测缩放参数的绝对值和可用缩放因子的绝对值之间的差,对缩放参数的绝对幅度重新排序。例如,当预测缩放参数的绝对值是3/8时,则可用缩放因子重新排序如下(3/8,2/8,4/8,1/8,5/8,6/8,7/8,1,9/8,10/8,11/8,12/8,13/8,14/8,15/8,16/8)。

在实施例中,为了在CfL模式下发信号通知缩放因子的值,可在码流中发信号通知第一标志,以指示缩放因子的值是否等于零,该第一标志可称为zero_flag。如果缩放因子不等于零,则可使用预测的缩放因子对除零之外的所有可用缩放因子(包括正缩放因子和负缩放因子)重新排序。可以发信号通知重新排序的缩放因子集中的索引。

在实施例中,预测的缩放因子可用于基于预测缩放因子与可用缩放因子之间的差异,对所有可用缩放因子重新排序。例如,如果预测的缩放因子是5/8,则所有可用缩放因子可以重新排序如下(5/8,4/8,6/8,3/8,7/8,2/8,8/8,1/8,9/8,-1/8,10/8,-2/8,11/8,-3/8,12/8,-4/8,13/8,-5/8,14/8,-6/8,15/8,-7/8,16/8,-8/8,-9/8,-10/8,-11/8,-12/8,-13/8,-14/8,-15/8,-16/8)。可以将前16个缩放因子放入第一组,后16个缩放因子放入第二组。例如,如果当前块的CfL模式的缩放因子是3/8,则集合索引是0,集合内的索引是3。

在实施例中,可以基于重新排序的缩放因子的索引,将重新排序的缩放因子分成多个集合。集合索引和集合内的索引可在码流中发信号通知。

在实施例中,为了发信号通知CfL模式下的缩放因子的值,预测的缩放因子可用于重新排序所有可用缩放因子(包括零),并且可以发信号通知重新排序的缩放因子集中的所选缩放因子的索引。

在实施例中,为了发信号通知CfL模式下的缩放因子的值,预测的缩放因子可用于从可用缩放因子的完整集合中选择缩放因子的子集,并且缩放因子的子集中的缩放因子的选择可发信号通知。

在实施例中,可以定义具有第一精度的第一组缩放因子,预测的缩放因子可以用于选择第一组缩放因子的子集,然后可以进一步选择具有第二精度的第二组缩放因子,然后所选择的第一组缩放因子的子集与第二组缩放因子一起形成第三组缩放因子,该第三组缩放因子可以包括具有可变精度的缩放因子。例如,第一精度可以包括但不限于1/4、1/8和1/16精度。例如,第二精度可以包括但不限于1/8、1/16、1/32、1/64和1/128精度。在实施例中,第二精度可以高于第一精度。

图9是根据实施例的用于执行跨分量帧内预测的过程1000的流程图。

如图9所示,在操作1002,过程1000包括从已编码码流中接收当前色度块。

如图9进一步所示,在操作1004,过程1000包括从已编码码流中确定在根据亮度预测色度(CfL)帧内预测模式下用于当前色度块的缩放因子。

如图9进一步所示,在操作1006,过程1000包括基于当前色度块的第一相邻样本和与当前色度块同位的亮度块的第二相邻样本,导出预测的缩放因子。

如图9进一步所示,在操作1008,过程1000包括使用预测的缩放因子,作为在CfL帧内预测模式下用于当前色度块的缩放因子。

如图9进一步所示,在操作1010,过程1000包括在基于预测的缩放因子缩放当前色度块之后,重建当前色度块。

在实施例中,预测的缩放因子是基于位于当前色度块上方或左侧的至少一个色度样本,以及位于当前亮度块上方或左侧的至少一个亮度样本导出的。

在实施例中,预测的缩放因子是使用最小均方计算导出的。

在实施例中,预测的缩放因子是针对第一色度分量和第二色度分量分别导出的。

在实施例中,预测的缩放因子可以包括在多个缩放因子中,缩放参数用于对多个缩放因子的可用符号值以及对应于缩放因子的绝对幅度中的至少一个重新排序。

在实施例中,基于指示缩放因子不为0的标志,缩放参数可用于对除0之外的多个缩放因子重新排序,并且预测的缩放因子可从多个缩放因子中选择。

在实施例中,预测的缩放因子包括在多个缩放因子中,缩放参数可用于对多个缩放因子重新排序,并且索引可用于从多个缩放因子中选择预测的缩放因子。

在实施例中,缩放参数可用于从多个缩放因子中选择缩放因子的子集,并且预测的缩放因子可基于在已编码码流中发信号通知的语法元素从缩放因子的子集中选择。

尽管在图9示出了过程1000的示例块,但在一些实现方式中,过程1000可以包括在图9中所描绘的块之外附加的块、比其更少的块、与其不同的块或与其布置不同的块。另外或可选地,可以并行执行过程1000的两个或更多个块。

进一步地,所提出方法可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实施。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序,以执行一个或多个所提出的方法。

上文所描述的技术可使用计算机可读指令实施为计算机软件,并以物理方式存储在一个或多个计算机可读介质中。举例来说,图10示出适于实施所公开主题的某些实施例的计算机系统(900)。

所述计算机软件可使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由计算机中央处理单元(CPU)、图形处理单元(GPU)等执行。

所述指令可在各种类型的计算机或计算机组件上执行,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。

图10中所示的用于计算机系统(900)的组件在本质上是示范性的,并非旨在暗示关于实施本申请实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统(900)的示范性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。

计算机系统(900)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如,二维视频、包括立体视频的三维视频)。

输入人机接口装置可包括以下一个或多个(每种仅描绘一个):键盘(901)、鼠标(902)、轨迹垫(903)、触摸屏(910)、数据手套、操纵杆(905)、麦克风(906)、扫描仪(907)、相机(908)。

计算机系统(900)还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激一个或多个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如,触摸屏(910)、数据手套或操纵杆(905)的触觉反馈,但还可存在不充当输入装置的触觉反馈装置。例如,此类设备可以是音频输出装置(例如:扬声器(909)、头戴式耳机(未描绘))、视觉输出装置(例如,屏幕(910),包括阴极射线管(CRT)屏幕、液晶显示(LCD)屏幕、等离子体屏幕、有机发光二极管(OLED)屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力--其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘),以及打印机(未描绘)。

计算机系统(900)还可包括人类可访问的存储装置和存储装置的相关联介质,例如,光学介质,包括具有CD/DVD等介质(921)的CD/DVD ROM/RW(920)、拇指驱动器(922)、可移动硬盘驱动器或固态驱动器(923)、磁带和软盘(未描绘)等旧版磁性媒体、基于ROM/专用集成电路(ASIC)/可编程逻辑设备(PLD)的专用装置,例如,安全保护装置(未描绘),等等。

所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。

计算机系统(900)还可包括到一个或多个通信网络的接口。网络可例如是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络的实例包括例如以太网、无线LAN的局域网、包括全球移动通信系统(GSM)、第三代(3G)、第四代(4G)、第五代(5G)、长期演进(LTE)等的蜂窝网络、包括有线TV、卫星TV和地面广播TV的TV有线或无线广域数字网络、包括控制器局域网总线(CANBus)的车载网络和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线(949)(例如,计算机系统(900)的通用串行总线(USB)端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统(900)的核心中(例如,通过以太网接口集成到PC计算机系统中,或通过蜂窝网络接口集成到智能电话计算机系统中)。通过使用这些网络中的任一网络,计算机系统(900)可与其它实体通信。此类通信可以是仅单向接收(例如,广播TV)、仅单向发送(例如,连到某些CANBus装置的CANBus)或是双向的,例如,使用局域数字网络或广域数字网络连接到其它计算机系统。此类通信可以包括与云计算环境(955)的通信。可在如上文所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。

上述人机接口装置、人类可访问存储装置和网络接口(954)可附接到计算机系统(900)的核心(940)。

核心(940)可包括一个或多个中央处理单元(CPU)(941)、图形处理单元(GPU)(942)、现场可编程门区域(Field Programmable Gate Areas,FPGA)形式的专用可编程处理单元(943)、用于某些任务的硬件加速器(944)等等。这些装置连同只读存储器(read-only memory,ROM)(945)、随机存取存储器(946)、例如内部非用户可访问的硬盘驱动器、固态驱动器(SSD)等内部大容量存储装置(947)可通过系统总线(948)连接。在一些计算机系统中,系统总线(948)可通过一个或多个物理插头形式访问以实现通过额外CPU、GPU等来扩展。外围装置可直接或通过外围总线(949)附接到核心的系统总线(948)。用于外围总线的架构包括外围设备互连(PCI)、USB等等。图形适配器(950)可以包括在核心(940)中。

CPU(941)、GPU(942)、FPGA(943)和加速器(944)可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在ROM(945)或RAM(946)中。过渡数据也可存储在RAM(946)中,而永久性数据可例如存储在内部大容量存储装置(947)中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与一个或多个CPU(941)、GPU(942)、大容量存储装置(947)、ROM(945)、RAM(946)等紧密关联。

计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本申请的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。

举例来说但不作为限制,与计算机系统(900),尤其是核心(940)对应的架构可提供因处理器(包括CPU、GPU、FPGA、加速器等)执行以一个或多个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心(940)的非暂时性质的某些存储装置(例如,核心内部大容量存储装置(947)或ROM(945))相关联的介质。实施本申请的各种实施例的软件可存储在此类装置中且由核心(940)执行。根据特定需求,计算机可读介质可包括一个或多个存储器装置或芯片。软件可使核心(940)且具体地说使其中的处理器(包括CPU、GPU、FPGA等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在RAM(946)中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:加速器(944))中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如,集成电路(IC))、体现用于执行的逻辑的电路或这两种电路。本申请涵盖硬件与软件的任何合适的组合。

本公开的实施例可以单独使用或按任意顺序组合使用。此外,每个实施例(及其方法)可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)实现。在一示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。

前文公开内容提供了说明和描述,但不旨在详尽无遗或将实施限制在所公开的精确形式。根据以上公开内容,进行修改和变化是可能的,或者可以从实施方式的实践中获得。

如本申请中所用,术语“组件”旨在广义地解释为硬件、固件或硬件和软件的组合。

尽管在权利要求中列举了和/或在说明书中公开了特征的组合,这些组合并不旨在限制可能的实施方式的公开。事实上,这些特征中的许多特征可以以权利要求中未明确提及和/或说明书中未公开的方式组合。尽管下面列出的每项从属权利要求可能仅直接从属于一项权利要求,但对可能的实施方式的公开包括每项从属权利要求与权利要求集中的所有其它权利要求的组合。

除非明确描述,否则本申请中使用的任何元素、动作或指令均不应被解释为关键或必要。同样,如本申请所用,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本申请所用,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”互换使用。如果只打算使用一项,则使用“一种”或类似的措词。此外,如本申请所用,术语“具有”(“has”、“have”、“having”)或类似术语旨在是开放式术语。此外,除非另有明确说明,否则“基于”一语意在表示“至少部分基于”。

尽管本申请描述了若干非限制性实施例,但在本申请的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本申请的原理的系统和方法。

技术分类

06120116523612