用于帧间预测和显示的自适应图片分辨率重新缩放的制作方法

文档序号:25543579发布日期:2021-06-18 20:40阅读:112来源:国知局
用于帧间预测和显示的自适应图片分辨率重新缩放的制作方法

相关申请的交叉引用

本申请要求于2019年1月2日提交至美国专利商标局的美国临时专利申请第62/704,040号的优先权,以及于2019年12月11日提交至美国专利商标局的美国专利申请第16/710,389号的优先权,这两个申请通过引用整体并入本文。

所公开的主题涉及视频编码和解码,更具体地涉及用于在高级语法(synatx)结构中自适应图片分辨率重新缩放的语法元素以及图片段的相关的解码和缩放处理。



背景技术:

使用具有运动补偿的帧间图片预测的视频编码和解码在几十年来是已知的。未压缩的数字视频可以由一系列图片组成,每个图片具有如下空间维度,例如1920×1080亮度样本和相关联的色度样本。该一系列图片可以具有固定的或可变的图片速率(也非正式地称为帧率),例如每秒60幅图片或60hz。未压缩的视频具有显著的比特率要求。例如,在每样本8比特下,1080p604:2:0视频(在60hz帧率下具有1920×1080亮度样本分辨率)需要接近1.5gbit/s的带宽。一小时的这种视频需要超过600gb的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可有助于减少前述带宽或存储空间需求,在一些情况下可以减少两个数量级或大于两个数量级。可以采用无损压缩和有损压缩以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建信号可能与原始信号不相同,但是原始信号和已重建信号之间的失真足够小,以使得已重建信号可用于预期应用。在视频的情况下,广泛使用有损压缩。容许的失真量取决于应用;例如,某些消费流式应用的用户相比电视分布应用的用户来说可以容忍更高的失真。可实现的压缩率可以反映:更高的可允许/可容许的失真可以产生更高的压缩率比。

视频编码器和解码器可利用来自若干广泛类别的技术,例如包括运动补偿、变换、量化和熵编码,下文将介绍其中一些技术。

基本信息理论表明,给定内容的系列图片的图片的空间上较低分辨率的表示可以被压缩成比较大表示更少的比特。因此,当带宽或存储不足时,或者对于不需要高空间分辨率的、对成本敏感的应用,在编码之前对输入的系列图片进行下采样并在解码之后进行相应的上采样以获得适于显示的图片,这种方式已经使用了几十年。例如,至少一些基于mpeg-2的tv分发/显示系统,在信道上可用的带宽不足以允许良好的再现质量时,可能会在编码环路之外在每个图片群组的基础上改变图片的水平分辨率。在这方面,应该注意,许多视频编解码器具有“断点”,也称为“拐点”(在速率-失真曲线中),在该点处通过增加量化器值(为了保持在速率包络内)实现的平缓质量降低被破坏,且突然出现显著的质量降低。由于一些视频分发系统在非常接近针对平均复杂度内容的断点处操作,所以活动的突然增加可导致可能不容易由后处理技术补偿的恼人的伪影。

尽管从视频编解码器的实现和规范的角度来看,在编码环路之外改变分辨率可能是相对简单的问题,但是它也不是特别有效。这是因为分辨率的变化可能需要帧内编码图片,在许多情况下帧内编码图片可能比已编码视频比特流中最常见的帧间编码图片大许多倍。增加附加种类的帧内编码图片以对抗本质上可能是带宽缺乏问题的问题,可能产生相反效果,需要大的缓冲器和相关联的大的可能延迟才能起作用。

对于延迟至关重要的应用,已设计允许在编码环路中改变视频序列的分辨率且不使用帧内编码图片的机制。由于那些技术需要对参考图片进行重新采样,所以通常被称为参考图片重新采样(rpr-)技术。rpr已引入到标准化的视频编码中,且已在1998年发行的itu-t建议书h.263附录p中的某些视频会议系统中看到相对广泛的部署。该技术至少遇到以下缺点:1.用于用信号表示参考图片重新采样的语法不能容错,2.所使用的上采样和下采样滤波器-双线性滤波器-尽管在计算上较为经济,但不是非常有益于良好的视频质量,3.允许“扭曲”的特定技术可能对于不必要和无根据的特征过于丰富,以及4.该技术只能应用于整个图片,而不能应用于图片段。

最近的被称为av1的视频编码技术对rpr的支持也有限。遇到与上述问题#1和#4类似的问题,此外,所采用的滤波器对于某些应用来说非常复杂。



技术实现要素:

根据实施例,一种对已编码视频序列的已编码图片进行解码的方法,由至少一个处理器执行,且该方法包括:从用于多个图片的第一高级语法结构,对与参考段分辨率相关的语法元素进行解码;从由第一已编码图片到第二已编码图片而变化的第二高级语法结构,对与已解码段分辨率相关的语法元素进行解码;对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用,解码器以解码分辨率对段进行解码,且来自参考图片缓冲器的样本处于参考段分辨率;将处于已解码段分辨率的段解码成处于已解码段分辨率的已解码段;以及将已解码段存储在参考图片缓冲器中。

根据实施例,一种用于对已编码视频序列的已编码图片进行解码的装置,包括:至少一个存储器,被配置为存储计算机程序代码;和至少一个处理器,被配置为访问至少一个存储器并根据计算机程序代码进行操作,计算机程序代码包括:第一解码代码,被配置为从用于多个图片的第一高级语法结构,对与参考段分辨率相关的语法元素进行解码;第二解码代码,被配置为从由第一已编码图片到第二已编码图片而变化的第二高级语法结构,对与已解码段分辨率相关的语法元素进行解码;重新采样代码,被配置为对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用,解码器以解码分辨率对段进行解码,且来自参考图片缓冲器的样本处于参考段分辨率;第三解码代码,被配置为将处于已解码段分辨率的段解码成处于已解码段分辨率的已解码段;以及存储代码,被配置为将已解码段存储在参考图片缓冲器中。

根据实施例,一种非暂时性计算机可读存储介质,存储用于对已编码视频序列的已编码图片进行解码的程序,该程序包括指令,该指令使处理器:从用于多个图片的第一高级语法结构,对与参考段分辨率相关的语法元素进行解码;从由第一已编码图片到第二已编码图片而变化的第二高级语法结构,对与已解码段分辨率相关的语法元素进行解码;对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用,解码器以解码分辨率对段进行解码,且来自参考图片缓冲器的样本处于参考段分辨率;将处于已解码段分辨率的段解码成处于已解码段分辨率的已解码段;以及将已解码段存储在参考图片缓冲器中。

附图说明

根据以下详细说明和附图,所公开的主题的其它特征、性质和各种优点将变得更加明显,在附图中:

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

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

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

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

图5是根据实施例的语法图。

图6是根据实施例的具有参考图片重新采样能力的解码器的简化框图的示意图。

图7是根据实施例的图块布局的示意图,该图块布局对每个图块使用参考图片重新采样。

图8a是示出根据实施例的对已编码视频序列的已编码图片进行解码的方法的流程图。

图8b是根据实施例的用于对视频序列的解码进行控制的装置的简化框图。

图9是根据实施例的计算机系统的示意图。

具体实施方式

当高活动内容出现时,为了解决当在平均内容的断点附近运行视频编码时可能出现的质量问题,需要环路内rpr技术。与已知的技术相比,该技术需要从性能和计算复杂度的角度使用有效的滤波器,需要容错性,且需要仅可应用于图片的一部分,即(至少矩形的)图片段。

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

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

在图1中,终端(110-140)可以被示为服务器、个人计算机和智能电话,但是本公开的原理可以不限于此。本公开的实施例可应用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(150)表示在终端(110-140)之间传送已编码视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非在下文中有所解释,否则网络(150)的结构和拓扑对于本公开的操作来说可能是无关紧要的。

作为用于所公开的主题的应用的示例,图2示出了视频编码器和解码器在流式传输环境中的布置。所公开的主题可同等地应用于其他支持视频的应用,包括例如视频会议、数字电视、在包括cd、dvd、记忆棒等的数字媒介上存储压缩视频等。

流式传输系统可以包括采集子系统(213),采集子系统(213)可以包括例如数码相机的视频源(201),从而创建例如未压缩的视频样本流(202)。与已编码视频比特流相比,用粗线描绘以强调高数据量的样本流(202)可以由耦合到相机(201)的编码器(203)处理。编码器(203)可包括硬件、软件或软硬件组合,以实现或实施下文更详细地描述的所公开的主题的各方面。与样本流相比,用细线描绘以强调较低数据量的编码视频比特流(204)可以存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端(206,208)可以访问流式传输服务器(205)以检索已编码视频比特流(204)的副本(207,209)。客户端(206)可以包括视频解码器(210),视频解码器(210)对已编码视频比特流(207)的传入副本进行解码,并创建可以在显示器(212)或其他呈现设备(未示出)上呈现的输出视频样本流(211)。在一些流式传输系统中,可以根据某些视频编码/压缩标准对视频比特流(204,207,209)进行编码。这些标准的示例包括itu-t建议书h.265。正在开发非正式地称为通用视频编码(versatilevideocoding)或vvc的视频编码标准。所公开的主题可以在vvc的环境中使用。

图3可以是根据本公开的实施例的视频解码器(210)的功能框图。

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

视频解码器(210)可以包括解析器(320)以从熵编码的视频序列重建符号(321)。这些符号的类别包括用于管理解码器(210)的操作的信息,以及用于控制诸如显示器(212)之类的呈现设备的潜在信息,该呈现设备不是解码器的整体部分,但是可以耦合到该解码器,如图2所示。用于呈现设备的控制信息可以是辅助增强信息(supplementaryenhancementinformation,sei消息)或视频可用性信息(videousabilityinformation,vui)参数集片段(未描绘)的形式。解析器(320)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准进行,且可以遵循本领域技术人员公知的原理,包括可变长度编码、霍夫曼编码(huffmancoding)、具有或不具有上下文灵敏度的算术编码等。解析器(320)可以基于与群组相对应的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括图片群组(gop)、图片、图块、切片、宏块、编码单元(codingunit,cu)、块、变换单元(transformunit,tu)、预测单元(predictionunit,pu)等。熵解码器/解析器还可以从已编码视频序列中提取诸如变换系数、量化器参数值、运动矢量等信息。

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

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

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

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

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

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

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

环路滤波器单元(354)的输出可以是样本流,该样本流可以输出到呈现设备(212)以及存储在参考图片存储器(356)中以在将来帧间图片预测中使用。

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

视频解码器320可根据可在标准例如itu-t建议书h.265中记录的预定视频压缩技术来执行解码操作。已编码视频序列可以符合由正在使用的视频压缩技术或标准规定的语法,即在某种意义上已编码视频序列遵守视频压缩技术或标准的语法,如在视频压缩技术文档或标准中规定的,特别是在其配置文档中规定的。对于合规性,还可能需要已编码视频序列的复杂度处在由视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建采样率(例如,以每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设置的限制可通过假设参考解码器(hypotheticalreferencedecoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。

在实施例中,接收器(310)可以接收编码视频以及附加(冗余)数据。附加数据可以被包括作为已编码视频序列的一部分。视频解码器(320)可以使用附加数据来适当地解码数据和/或更准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(snr)增强层、冗余切片、冗余图片、前向纠错码等的形式。

图4可以是根据本公开的实施例的视频编码器(203)的功能框图。

编码器(203)可以从视频源(201)(不是编码器的一部分)接收视频样本,该视频源可以采集待由编码器(203)编码的视频图像。

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

根据实施例,编码器(203)可以实时地或者在应用程序所需的任何其它时间约束下将源视频序列的图片编码和压缩成已编码视频序列(443)。施行适当的编码速度是控制器(450)的一个功能。控制器控制以下描述的其它功能单元,且功能性地耦合到这些单元。为了清楚起见,未描绘耦合。由控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(gop)布局、最大运动矢量搜索范围等。本领域的技术人员可容易地确定控制器(450)的其它功能,这些功能可属于针对某一系统设计而优化的视频编码器(203)。

一些视频编码器以本领域技术人员容易认识到的“编码环路”的方式操作。作为过于简化的描述,编码环路可以包括编码器(430)(此后称为“源编码器”)的编码部分(负责基于待编码的输入图片和参考图片来创建符号)以及嵌入在编码器(203)中的(本地)解码器(433),(本地)解码器(433)重建符号以创建样本数据,该样本数据也可由(远程)解码器创建(因为在所公开的主题中考虑的视频压缩技术中,符号和已编码视频比特流之间的任何压缩是无损的)。该重建的样本流输入到参考图片存储器(434)。由于符号流的解码导致与(本地或远程)解码器位置无关的位精确结果,因此参考图片缓冲器内容在本地编码器和远程编码器之间也是按比特位精确对应。换句话说,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时可“看到”的样本值完全相同。这种参考图片同步性基本原理(以及如果例如由于信道误差而不能保持同步性,则产生漂移)是本领域技术人员所熟知的。

“本地”解码器(433)的操作可以与上面已经结合图3详细描述的“远程”解码器(210)的操作相同。然而,另外简单地参照图3,由于符号可用,且通过熵编码器(445)和解析器(320)将符号编码/解码成已编码视频序列可能是无损的,因此解码器(210)的熵解码部分(包括信道(312)、接收器(310)、缓冲器(315)和解析器(320))可能不能在本地解码器(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图片),其可以是可以在不使用序列中的任何其它帧作为预测源的情况下被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新图片。本领域的技术人员知道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)参数集片段等。

参照图5,在实施例中,标志(例如adaptive_picture_resolution)(502)可以指示图片段(例如图块、图块群组、ctu、ctu群组)的空间分辨率是否可以自适应地重新采样/重新缩放/未缩放(这三项在全文中可互换地使用),以用于解码、用于预测参考以及用于显示输出(统称为rpr信息)。如果所述标志指示存在rpr信息,则某些语法元素可以分别指示多个参考图片和输出图片的图片大小。这些语法元素和上述标志可以处于任何合适的高级语法结构,以包括例如解码器/视频/序列/图片/切片/图块参数集、序列/gop/图片/切片/gob/图块群组/图块标头、和/或sei消息。并不是所有这些语法元素都需要始终存在。例如,虽然rpr分辨率可以是动态的,但是图片的纵横比在视频编码技术或标准中可以是固定的,或者该固定可以在适当的高级语法结构中的标记中用信号表示。类似地,视频编码技术或标准可以指定参考图片重新采样和省略输出图片重新采样,在这种情况下也可以省略输出图片大小信息。在另一示例中,输出图片大小信息的存在可以根据其自身的标志(未描绘)来调节。

在一个非限制性示例中,某些rpr信息可以位于序列参数集(501)中。语法元素reference_pic_width_in_luma_samples(503)和reference_pic_height_in_luma_samples(504)可以分别指示参考图片的宽度和高度。语法元素output_pic_width_in_luma_samples(505)和output_pic_height_in_luma_samples(506)可以指定输出图片分辨率。所有上述值可以是亮度样本的单位或其他单位,因为它们在视频压缩技术或标准中是常见的。对语法元素的值的某些限制也可以由视频编码技术或标准施加;例如,一个或多个语法元素的值可能需要是二的某次幂(以使得图片能够容易地适配到视频编码中常用的块中),或者水平尺寸之间的关系可被限制到某一值(以允许针对某些分辨率之比优化的滤波器设计的有限集合,如下所述)。

上述信息的编码可以是任何合适的形式。如图所示,一个简单的选项可以是使用可变长度,该可变长度是由ue(v)表示的的无符号整数值。其它选项总是可能的,包括用于指示传统视频编码技术或标准(例如h.264或h.265)中的图片大小的那些选项。

所公开的主题的一个目的是允许rpr在编码环路内;也就是说,在已编码视频序列(cvs)中的不同图片之间。因此,指定图片的实际解码大小的语法元素可能需要处于如下的语法结构,该语法结构允许语法元素在cvs内因从一个图片改变到另一图片而潜在地改变。在实施例中,语法元素decoded_pic_width_in_luma_samples(508)和decoded_pic_height_in_luma_samples(509)存在于适当的高级语法结构中,这里是存在于pps(507)中,且字段的值可以在已编码视频序列(cvs)内改变。其它合适的高级语法结构可以包括pps、切片参数集、图块参数集、图片/切片/gob/图块群组/图块标头、和/或sei消息。使用sei消息可能不太可取,因为rpr技术可能对解码过程具有规范性影响。至于这些语法元素的编码,上述论述是适用的。

在实施例中,reference_pic_width_in_luma_samples和reference_pic_height_in_luma_samples可以指示已解码图片缓冲器中的参考图片或参考图片段的图片分辨率。这可以意味着参考图片总是保持在全分辨率,与所应用的重新采样无关,且是本文讨论的技术和在h.263附录p中描述的技术之间的一个关键不同之处。

上面的描述假设rpr技术应用于整个图片。某些环境可受益于可应用于图片段的rpr技术,图片段例如图块群组、图块、切片、gob等。例如,图片可以在空间上划分成语义上不同的空间区域,其通常称为图块。一个示例是安全视频,而另一示例是在360度视频中具有例如立方体投影的各种视图(其中对应于立方体的六个表面的六个视图构成了360度场景的表示)。在这样和类似的场景中,每个图块的语义上不同的内容可能要求基于每个图块不同地应用多个rpr技术,因为每个图块的内容活动可能不同。因此,在实施例中,rpr技术可应用于每一图块。这需要基于每个图块(未描绘)的信令。这些信令技术可以与以上针对每个图片的信令所描述的技术类似,除了可能需要包括潜在的多个图块的信令之外。

在实施例中,每个图块或图块群组可以在图块群组标头或标头参数集或其它合适的高级语法结构中具有不同的reference_tile_width_in_luma_samples和reference_tile_height_in_luma_samples值。

在实施例中,如果参考图片分辨率不同于已解码图片分辨率,则可以相对于参考图片分辨率和已解码图片分辨率之间的比率对已解码图片进行重新缩放,然后可以将重新缩放的已解码图片存储在已解码图片缓冲器(dpb)中作为参考图片。

在实施例中,如果如上所述明确地用信号表示已解码图片分辨率和参考图片分辨率之间的竖直/水平分辨率之比,则可以相对于用信号表示的比率对已解码图片进行重新缩放,然后可以将重新缩放的已解码图片存储在已解码图片缓冲器(dpb)中作为参考图片。

在实施例中,output_pic_width_in_luma_samples和output_pic_height_in_luma_samples可以向视频播放器指示输出图片或输出图片段的图片分辨率。

在实施例中,如果输出图片分辨率不同于参考图片分辨率,则可以相对于输出图片分辨率和参考图片分辨率之间的比率对参考图片进行重新缩放,然后重新缩放的参考图片可以作为输出图片从dpb中突出,并被馈送到视频播放器中以显示图片。

在实施例中,如果明确地用信号表示参考图片分辨率和输出图片分辨率之间的竖直/水平分辨率之比,则可以相对于输出图片分辨率和参考图片分辨率之间的比率对参考图片进行重新缩放,然后重新缩放的参考图片可以作为输出图片从dpb中突出,并被馈送到视频播放器中以显示图片。

在实施例中,每个图块或图块群组可以在图块群组标头或标头参数集或其它合适的语法结构中具有不同的output_tile_width_in_luma_samples和output_tile_height_in_luma_samples值。

某些视频编码技术或标准包括时间子层形式的时间可缩放性。在实施例中,每个子层可以具有不同的reference_pic_width_in_luma_samples、reference_pic_height_in_luma_samples、output_pic_width_in_luma_samples,output_pic_height_in_luma_samples、decoded_pic_width_in_luma_samples,decoded_pic_height_in_luma_samples值。用于每个子层的语法元素可以例如以sps或任何其它合适的高级语法结构来用信号表示。

参照图6,在实施例中,视频比特流解析器(602)可以从已编码视频比特流中解析和解释上述语法元素和其它语法元素,已编码视频比特流从已编码图片缓冲器(601)接收。在从已编码视频比特流接收非rps相关语法元素时,视频解码器可以以潜在地下采样的分辨率重建已编码图片。为了这样做,可能需要参考样本,可以从已解码图片缓冲器(604)接收参考样本。根据实施例,由于已解码图片缓冲器(604)以全分辨率存储参考图片或段,因此可能需要重新缩放(605)以向解码器(603)提供适当重新采样的参考图片。重新缩放(603)可以由重新缩放控制器(606)控制,重新缩放控制器(606)可以接收缩放参数(例如上述的语法元素)(607),并将缩放参数转换成重新缩放器(605)的适当信息(608);例如,计算适当的重新缩放滤波器参数。最后,如果还需要输出分辨率重新缩放,则重新缩放控制器(606)还可以将重新缩放信息609提供给重新缩放机制(610)以供显示。最后,已重建视频可以由视频播放器(611)播放,或者以其它方式处理以供消费或存储。

在重新缩放处理中使用的滤波器可以在视频编码技术或标准中规定。由于两个滤波方向需要在编码环路的“内部”,即下采样(例如,从已解码图片缓冲器(604)到视频解码器(603))和上采样(例如,从视频解码器(603)到已解码图片缓冲器(604))需要在编码环路的“内部”,因此这两个滤波方向可能按要求是完全指定的,且应该由视频压缩技术或标准来指定,以尽可能地实现可逆性。至于滤波器设计本身,可能需要在计算/实现简单性和性能之间保持平衡。某些初始结果表明,如h.263附录p中所建议的双线性滤波器从性能角度来看可能是次优的。另一方面,采用基于神经网络的处理的某些自适应滤波技术在计算上可能太复杂,以致于不能在商业上适当的时间范围内和在商业上适当的复杂度约束下广泛采用视频编码技术或标准。作为平衡,诸如在shvc中使用的滤波器设计或者如在hevc中使用的各种内插滤波器可能是适当的,并将具有可以很好地理解其特性的附加优点。

参照图7,在实施例中,可以以不同的分辨率独立地将诸如切片、gob、图块或图块群组(下文中,图块)之类的每个图片段从已解码图块重新缩放成参考图块,以及从参考图块重新缩放成输出图块(或图片)。

考虑到输入图片(701)进入正方形的编码器中,并分成四个正方形源图块(702)(示出了四个源图块中的源图块2),每个源图块覆盖输入图片的1/4。当然,根据所公开的主题,其它图片几何形状和图块布局同样是可能的。使每个图块的宽度和高度分别为w的2倍和h的2倍,下文将两倍的宽度表示为“2w”,将两倍的高度表示为“2h”(对于其它数字,类似地表示;例如,1w意味着1倍的宽度,3h意味着3倍的高度-这种惯例在整个附图及其描述中使用)。源图块可以是例如对于安全相机环境中的不同场景的相机视图。这样,每个图块可以覆盖具有可能根本不同的活动水平的内容,可能需要为每个图块选择不同的rpr。

假设编码器(未描绘)创建已编码图片,则在重建之后产生了具有如下重新缩放的分辨率的四个图块:

已解码图块0(702):1h和1w

已解码图块1(703):1h和2w

已解码图块2(704):2h和2w

已解码图块3(705):2h和1w

这产生了按比例描绘的已解码图块大小。

注意在某些视频编码技术或标准中,在已解码图片中可能存在未分配给任何图块的某些样本。如果有的话,如何对这些样本进行编码,这对于不同的视频编码技术是不同的。在实施例中,在某些情况下,未分配给所描绘的任何图块的样本可以分配给其它图块,且图块的所有样本可以以创建低数量的编码比特的形式来编码,例如以跳过模式来编码。在实施例中,视频编码技术或标准可能不具有必须在每个视频图片中以某种形式对图片的所有样本进行编码的要求(当前在某种程度上是常见的),因此在那些样本上不会浪费任何比特。在又一实施例中,某些填充技术可用于有效地填充未使用的样本,使得其编码开销可忽略。

在该示例中,参考图片缓冲器将参考图片样本保持在全分辨率,在这种情况下,全分辨率与源分辨率相同。因此,用于参考的四个重新缩放的图块(706到709)可分别保持在2h和2w分辨率。为了匹配已解码图块(702到705)的变化的分辨率,在从解码器到参考图片缓冲器以及从参考图片缓冲器到解码器这两个方向上的重新缩放(710)对于每个图块可能是不同的。

如果输出的重新缩放(711)也在使用,则已解码图片缓冲器的输出可以在每个图块或每个图片粒度上被重新缩放成输出图片以供显示(或以其它方式处理)(712)。用于显示的输出图片(712)的分辨率可以大于或小于已解码图片缓冲器中的图片的分辨率。

图8a是示出根据实施例的对已编码视频序列的已编码图片进行解码的方法(800)的流程图。在一些实施方式中,图8a的一个或多个处理块可以由解码器(210)执行。在一些实施方式中,图8a的一个或多个处理块可以由与解码器(210)分离或包括解码器(210)的另一设备或一组设备(例如编码器(203))来执行。

参照图8a,方法(800)包括确定是否存在rpr信息(805),如果确定不存在rpr信息,则方法结束(855)。如果确定存在rpr信息,则方法包括从用于多个图片的第一高级语法结构,对与参考段分辨率相关的语法元素进行解码(810)。

方法(800)包括从由第一已编码图片到第二已编码图片而变化的第二高级语法结构,对与已解码段分辨率相关的语法元素进行解码(820)。

方法(800)包括对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用,解码器以解码分辨率对段进行解码,且来自参考图片缓冲器的样本处于参考段分辨率(830)。

方法(800)包括将处于已解码段分辨率的段解码成处于已解码段分辨率的已解码段(840)。

此外,方法(800)包括将已解码段存储在参考图片缓冲器中(850)。

方法(800)可进一步包括将已解码段重新采样到参考段分辨率中。

方法(800)可进一步包括重新采样滤波器,该重新采样滤波器用于以下至少一项:对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用;以及将已解码段重新采样到参考段分辨率中,其中,重新采样滤波器比双线性滤波器在计算上更复杂且不是自适应的。

方法(800)可进一步包括其中,重新采样滤波器基于解码分辨率和参考段分辨率之间的关系从多个重新采样滤波器中选择。

方法(800)可进一步包括其中,该段是图片。

方法(800)可进一步包括其中,第一已编码图片和第二已编码图片中的每一个包含多个段。

方法(800)可进一步包括根据第三高级语法结构,对与输出分辨率相关的语法元素进行解码;以及将已解码段的样本重新采样到输出分辨率。

方法(800)可进一步包括其中,重新采样使用在宽度和高度上不同的重新采样因子。

尽管图8a示出了方法(800)的示例块,但是在一些实施方式中,方法(800)可以包括比图8a中所描绘的块更多的块、更少的块、不同的块或不同排列的块。另外或者可替换地,方法(800)的两个或更多个块可以并行地执行。

此外,所提出的方法可由处理电路(例如,一个或多个处理器或者一个或多个集成电路)实施。在示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序,以执行一个或多个所提出的方法。

图8b是根据实施例的用于对视频序列的已编码图片进行解码的装置(860)的简化框图。

参照图8b,装置(860)包括第一解码代码(870)、第二解码代码(875)、重新采样代码(880)、第三解码代码(885)和存储代码(890)。

第一解码代码(870)被配置为从用于多个图片的第一高级语法结构,对与参考段分辨率相关的语法元素进行解码。

第二解码代码(875)被配置为从由第一已编码图片到第二已编码图片而变化的第二高级语法结构,对与已解码段分辨率相关的语法元素进行解码。

重新采样代码(880)被配置为对来自参考图片缓冲器的样本进行重新采样,以供解码器为进行预测而使用,解码器以解码分辨率对段进行解码,且来自参考图片缓冲器的样本处于参考段分辨率。

第三解码代码(885)被配置为将处于已解码段分辨率的段解码成处于已解码段分辨率的已解码段。

存储代码(890)被配置为将已解码段存储在参考图片缓冲器中。

上述技术可以实现为计算机软件,计算机软件使用计算机可读指令并物理地存储在一个或多个计算机可读介质中。

上述用于自适应图片分辨率重新缩放的技术可以实现为计算机软件,计算机软件使用计算机可读指令并物理地存储在一个或多个计算机可读介质中。例如,图9示出了适于实施所公开的主题的某些实施例的计算机系统900。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过解释、微代码等执行。

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

图9中所示的用于计算机系统900的组件本质上是示例性的,并不旨在对实现本公开的实施例的计算机软件的使用范围或功能提出任何限制。也不应将组件的配置解释为具有与计算机系统900的实施例中所说明的组件中的任何一个组件或组件的组合相关的任何依赖或要求。

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

输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘901、鼠标902、触控板903、触摸屏910、数据手套904、操纵杆905、麦克风906、扫描仪907、相机908。

计算机系统900还可以包括某些人机接口输出设备。这样的人机接口输出设备可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可以包括触觉输出设备(例如触摸屏910、数据手套904或操纵杆905的触觉反馈,但是也可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如:扬声器909、耳机(未描绘))、视觉输出设备(例如包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕910,每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图片输出、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)之类的构件来输出二维视觉输出或超过三维输出。

计算机系统900还可以包括人类可访问存储设备及其关联介质,例如包括具有cd/dvd等介质921的cd/dvdrom/rw920的光学介质、指状驱动器922、可拆卸硬盘驱动器或固态驱动器923、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用rom/asic/pld的设备(未描绘)等。

本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。

计算机系统900还可以包括通到一个或多个通信网络(955)的接口。网络(955)可以例如是无线网络、有线网络、光网络。网络(955)可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络(955)的示例包括诸如以太网之类的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、云和类似物、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括canbus的车辆和工业用电视等等。某些网络(955)通常需要连接到某些通用数据端口或外围总线(949)的外部网络接口适配器(954)(例如计算机系统900的usb端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统900的内核中(例如,连接到pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统900可以使用这些网络(955)中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus设备的canbus)或双向的,例如使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络(955)和网络接口(954)的每一个上使用某些协议和协议栈。

上述人机接口设备、人机可访问的存储设备和网络接口可以附接到计算机系统900的内核940。

内核940可以包括一个或多个中央处理单元(cpu)941、图形处理单元(gpu)942、现场可编程门区域(fpga)943形式的专用可编程处理单元、用于某些任务的硬件加速器944等。这些设备以及只读存储器(rom)945、随机存取存储器946、图形适配器950、诸如内部非用户可访问的硬盘驱动器、ssd等之类的内部大容量存储器947可以通过系统总线948连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线948,以能够通过附加cpu、gpu等进行扩展。外围设备可以直接连接到内核的系统总线948或通过外围总线949连接到内核的系统总线948。外围总线的体系结构包括pci、usb等。

cpu941、gpu942、fpga943和加速器944可以执行某些指令,这些指令可以组合来构成上述计算机代码。计算机代码可以存储在rom945或ram946中。过渡数据也可以存储在ram946中,而永久数据可以例如存储在内部大容量存储器947中。可以通过使用高速缓存来进行对任何存储设备的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个cpu941、gpu942、大容量存储器947、rom945、ram946等。

计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可以由于一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构900,特别是内核940的计算机系统可以提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质,以及某些非暂时性的内核940的存储器,例如内核内部大容量存储器947或rom945。可以将实施本公开的各种实施例的软件存储在此类设备中并由内核940执行。根据特定需要,计算机可读介质可以包括一个或多个存储设备或芯片。软件可以使得内核940,特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在ram946中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器944)中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。

尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1