用于不可用参考图像的自适应时间滤波器的制作方法

文档序号:26013250发布日期:2021-07-23 21:34阅读:101来源:国知局
用于不可用参考图像的自适应时间滤波器的制作方法

相关申请的交叉引用

本申请要求于2018年11月27日提交的、标题为“adaptivetemporalfilterforanunavailablereferencepicture”的美国临时专利申请no.62/771,918的优先权,其全部内容通过引用并入本文。

本发明大体上涉及视频压缩领域。具体地,本发明涉及用于不可用参考图像的自适应时间滤波器。



背景技术:

视频编解码器可以包括对数字视频进行压缩或解压缩的电子电路或软件。其可以将未压缩视频转换为压缩格式,反之亦然。在视频压缩的上下文中,对视频进行压缩(和/或执行其某些功能)的设备通常可以被称为编码器,而对视频进行解压缩(和/或执行其某些功能)的设备则可以被称为解码器。

视频质量、用于表示视频的数据量(例如,由比特率决定)、编码算法和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的容易性、随机访问、端对端延迟(例如,延迟时间)等之间存在复杂的关系。

运动补偿可以包括通过考虑照相机和/或视频中对象的运动,预测视频帧或者给定参考帧(例如先前帧和/或未来帧)的一部分的方法。其可以用于视频压缩,对视频数据进行编码和解码,例如使用运动图像专家组(mpeg)-2(也称为高级视频编码(avc)和h.264)标准进行编码和解码。运动补偿可以根据参考图像到当前图像的变换来描述图像。当与当前图像进行比较时,参考图像可以是时间上先前的;或者,当与当前图像比较时,参考图像可以是来自未来的,或者参考图像可以包括长期参考(longtermreference,ltr)帧。当可以根据先前传输和/或存储的图像精确地合成图像时,可以提高压缩效率。

诸如h.264和h.265之类的当前的标准允许通过被保存并可用作参考帧发送新解码的帧的信号,更新诸如长期参考帧之类的参考帧。这种更新由编码器发信号通知,并且整个帧被更新。但是更新整个帧的成本很高,尤其是在只有一小部分静态背景发生了改变的情况下。部分帧更新是可能的,但通常会涉及复杂且计算成本高的过程来实现帧更新。此外,这种更新可以通常涉及当背景的一部分改变时将当前帧的一部分复制到该帧,这可能需要频繁更新,并且可能无法反映未来的帧背景,从而导致相对较差的比特率性能。



技术实现要素:

一方面,一种解码器,包括电路,所述电路被配置成:接收比特流,从所述比特流中解码出多个视频帧,确定针对当前帧的当前块启用了不可用参考块更新模式,确定包括像素值并使用所述多个视频帧的不可用参考块更新,以及利用所述不可用参考块更新来更新不可用帧的一部分。

另一方面,一种方法包括接收比特流。所述方法包括从所述比特流中解码出多个视频帧。所述方法包括确定针对当前帧的当前块启用了不可用参考块更新模式。所述方法包括确定包括像素值并使用所述多个视频帧的不可用参考块更新。所述方法包括利用所述不可用参考块更新来更新不可用参考帧的一部分。

在此描述的主题的一种或多种变型的细节在下面的附图和具体实施方式中进行阐述。根据具体实施方式和附图以及权利要求,在此描述的主题的其他特征和优点将显而易见。

附图说明

为了说明本发明,附图示出了本发明的一个或多个实施例的各个方面。然而,应当理解的是,本发明不限于附图中所示的精确布置和手段,在附图中:

图1是说明使用多个视频帧来更新不可用参考帧的一部分(例如,块)的示例性过程的过程流程图;

图2示出了两个示例性不可用参考帧缓冲器,其中,一个用于连续模式,另一个用于重置模式;

图3是示出根据当前主题的一些实施方式,使用连续模式的示例性过程的过程流程图;

图4是示出根据当前主题的一些实施方式,使用重置模式的示例性过程的过程流程图;

图5是示出了根据当前主题的一些方面,使用时间过滤器更新不可用参考帧的示例性过程的过程流程图;

图6是示出了能够利用不可用参考帧块更新来对比特流进行解码的示例性解码器的系统框图;

图7是示出根据当前主题的一些方面,使用多个帧对具有不可用参考帧块更新的视频进行编码的示例性过程的过程流程图,该示例性过程可以提高压缩效率;

图8是示出能够使用多个帧发送关于解码器侧不可用参考帧块更新的信号的示例性视频编码器的系统框图;以及

图9是可以用于实现在此公开的任何一个或多个方法及其任何一个或多个部分的计算系统的框图。

附图不一定是按比例绘制的,并且可以用虚线、示意图和局部视图来说明。在某些情况下,可能已经省略了对于理解实施例而言不必要的细节或者使得其他细节难以理解的细节。各个附图中相似的附图标记表示相似的元件。

具体实施方式

本公开中描述的实施例涉及不可用参考帧的接收、更新和操作。不可用参考(unavailablereference,ur)帧是用于在一个或多个图像组(groupofpicture,gop)中创建预测帧和/或图像的帧和/或图像,但是所述帧和/或图像本身不显示在视频图像中。视频比特流中被标记为ur帧的帧可以用作参考,直到该帧被比特流信令显式地移除为止。ur帧可以提高长时间内具有静态背景(例如,视频会议或停车场监控的视频的背景)的场景中的预测和压缩效率。然而,随着时间的推移,场景的背景逐渐改变(例如,汽车在其停在空位置时,成为背景场景的一部分)。因此,通过允许更好的预测,更新ur帧可以提高压缩性能。

诸如h.264和h.265之类的当前的标准允许通过发送新解码的帧被保存并可用作参考帧的信号,更新诸如ltr帧之类的类似帧。这种更新由编码器发信号通知,并且整个帧被更新。但是更新整个帧的成本很高,尤其是在只有一小部分静态背景发生了改变的情况下。

一些现有的压缩技术仅使用前一帧的部分来更新诸如ltr帧之类的帧,这可能导致预测性能下降。当前主题的一些实施方式包括使用多个视频帧来更新ltr帧的一部分(例如,块)。例如,可以通过将时间滤波器应用于解码帧的缓冲器,以计算同位像素的统计量来更新ltr帧。例如,可以计算多个解码帧的每像素均值、中位数和/或模式,并将每像素均值、中位数和/或模式用于更新ltr帧的一部分。在一些实施方式中,当前主题可以支持连续模式和重置模式二者。通过使用多个帧来更新诸如ur和/或ltr帧之类的帧而不是仅使用前一帧的部分,可以改善预测,从而可以减小了残差并提高了比特率性能。

图1是说明使用多个视频帧来更新ur帧的一部分(例如,块)的示例性过程100的过程流程图。通过使用多个帧来更新ur帧而不是仅使用前一帧的部分,可以改善预测,从而可以减小了残差并提高了比特率性能。

仍然参考图1,在步骤105处,由解码器接收比特流。比特流可以例如包括但不限于:在比特流中找到的数据,当使用数据压缩时,所述比特流是解码器的输入。比特流可以包括对视频进行解码所需的信息。接收可以包括提取和/或解析比特流中的块以及相关联的信令信息。在一些实施方式中,比特流可以包括编码视频帧(其包括编码块)。每个编码块可以包括编码树单元(codingtreeunit,ctu)、编码单元(codingunit,cu)和/或预测单元(predictionunit,pu)。

在步骤110处,继续参考图1,从(例如,使用)比特流中解码出视频帧。例如,可以通过使用帧间预测来对视频帧进行解码。经由帧间预测的解码可包括使用先前帧、未来帧或ur帧作为用于计算预测的参考,所述参考可以与包含在比特流中的残差组合。可以利用用于解码的其他技术和工具,例如帧内预测。

在步骤115处,仍然参考图1,解码器确定比特流中针对当前块是否启用了不可用参考块更新模式。例如,可以确定比特流的头部中的ur块更新模式字段被启用。可以使用诸如图像参数集(pictureparameterset,pps)或序列参数集(sequenceparameterset,sps)之类的头部,选择性地启用ur帧块更新的信令。诸如ur_block_update之类的字段可以采用真值(true)或假(false)值(例如,0或1);头部中没有该字段可能意味着值为假(例如,0)。在一些实施方式中,不可用参考块更新模式可以被隐式地发送。

继续参考图1,在120处,解码器使用视频帧确定不可用参考块更新。ur块更新可以包括用于修改ur帧的一部分的像素值。确定不可用参考块更新可以包括计算所述多个视频帧的并置像素的统计量,例如统计量可以包括平均值、中位数和/或众数。可以对一组同位像素进行统计,例如多个帧和/或块中的一组同位像素;作为非限制性示例,可以通过如下方式计算在一组的多个帧中具有给定固定坐标组的像素的亮度和/或色度的平均值:在固定坐标处收集每帧中的像素的色度和/或亮度值,然后计算色度和/或亮度值的集合的平均值。可以计算像素的一个或多个属性的统计量。例如但不限于,可以例如通过计算多个视频帧中的一个或多个视频帧的像素的亮度的平均值、中位数和/或众数来计算亮度的统计量。作为另一非限制性示例,可以例如通过计算多个视频帧中的一个或多个视频帧的像素的色度的平均值、中位数和/或众数来计算色度的统计量。在实施例中,使用色度进行的计算可能比使用亮度进行的计算的计算效率更高,而通过亮度进行的计算可能比通过色度进行的计算的精度更高。在实施例中,统计量可以直接用于对更新后ur帧和/或块中的像素值进行更新;统计量可以表示像素的时间序列的“最接近”的表示,因为统计量可以导致最小量的残差,因为“平均”像素在统计上与每个单独的像素最相似并且具有最小的方差。这可以使残差最小化,从而导致具有更高程度的压缩。

例如,如下面进一步详细描述的那样,可以将时间滤波操作应用于多个视频帧,以确定不可用参考块更新。

仍然参考图1,在一些实施方式中,可以采用ur帧缓冲器。可以使用对ur缓冲器中存在的帧进行的操作,构造ur更新。ur缓冲器可以包括多个帧。例如,图2示出了ur帧缓冲器200的两个示例性实施例,其中,一个用于连续模式,另一个用于重置模式。

在连续模式下,图3示出了示例性过程300,ur缓冲器可以通过从缓冲器中移除第一帧并将当前帧(ft)添加至该缓冲器来定期更新,这类似于先进先出(fifo)队列。当前帧可以包括新的解码帧。缓冲器可以包括预定义长度(例如,预定义最大允许帧数)t-b。每块过滤器可以被更新;每块过滤器可以是适合于过滤本公开中所描述的块和/或帧的任何过滤器。解码器可以被配置成确定不可用参考缓冲器已经达到或超过预定义最大允许缓冲器大小,并从所述不可用参考缓冲器中去除帧。每个当前帧在处理时都可以添加至连续模式缓冲器中,并且可以针对所有帧重复进行该过程。在一些实施方式中,可以在比特流中发送连续模式的信号。

在重置模式下,图4示出了其示例性过程400,解码器可以确定启用了重置模式。ur缓冲器可以以与上述连续模式更新类似的方式更新,除了当在两个连续帧之间检测到显著的改变时,场景改变可被检测到并且ur缓冲器可被清空。例如,可以通过确定连续帧之间的帧间相似度并将该相似度与阈值进行比较来进行所述确定。当相似度值低于阈值时,可以检测到场景改变。当相似度值高于阈值时,则可能无法检测到场景改变。本领域技术人员在阅读了本公开的全部内容后,将意识到:可以执行这种阈值比较的各种替代或附加方式,包括但不限于通过将差值与阈值进行比较,其中差值高于阈值表示场景改变,而差值低于阈值则表示场景没有改变。在一些实施方式中,场景重置和/或改变可以替代地或附加地在比特流中用信号发送。解码器可能会清空ur缓冲器。清空ur缓冲器后,缓冲器填充过程可以从当前帧开始。在一些实施方式中,可以在比特流中用信号发送重置模式。

因此,仍然参考图4,连续模式可以允许更长的缓冲器和更宽的参考样本集,根据更宽的参考样本集可以计算ur帧更新。重置模式可以允许基于帧相似度进行缓冲器大小控制。

如图2所示,在重置模式的情况下,每次场景改变后,ur缓冲器的大小可以变小,并且随后增大到最大大小b帧,直到出现随后的场景改变为止。

图5是示出根据当前主题的一些方面,使用时间过滤器更新ur帧的示例性过程500的过程流程图。已经被划分为块的视频帧可以在时间上被滤波。每个块可以具有宽度为w和高为h的大小,其中,w可以等于或可以不等于h。可以从多个滤波器中选择滤波器,所述多个滤波器可以包括但不限于包括中位数、均值和众数的一组三个滤波器。在非限制性示例中,可以基于缓冲器中的帧数来实现更新ur块操作。例如,在步骤505处,可以确定缓冲器中是否不存在帧;如果是,则在510处,可以通过复制来自当前帧的所有块来构建ur帧。在515处,可以确定缓冲器中是否存在一帧,并且在520处,可以通过对ur缓冲器帧和当前帧中的匹配(例如,位于同一位置)的块应用滤波操作来构造ur帧。可以根据ur(ft)=filter_2(ur(ft-l,ft))来实现这种操作。可以在步骤525处确定缓冲器中是否存在一帧以上;在步骤530处,滤波器可以根据以下公式应用到先前计算的ur帧和当前帧:ur(ft)=filter_n(ur(ft-l),ft)。在步骤535出,可以将ur更新(例如,应用如上所述滤波器的结果)保存到ur帧。在一些实施方式中,可以基于性能要求(例如处理速度、对量化和/或字长限制的鲁棒性、通带和/或阻带失真和/或波纹、相位变化和/或延迟特性、衰减程度和/或速度和/或通带和阻带的相互转换等等)选择滤波操作,可以在比特流或者用于滤波选择的任何其他合适的过程中发送滤波操作的信号。

在一些实施方式中,仍然参考图5,可以在整个ur帧或者该ur帧的一个或多个块上强制执行更新。在一些实施方式中,逐像素更新是可能的(例如,块可以具有尺寸1×1)。

可以通过如下方式计算滤波器,但并不限于此:

中位数滤波器可以根据如下方式进行计算:

filter_2median(px,y,t)=px,y,t-1

filter_nmedian(px,y,t)=median(px,y,t-1,px,y,t-1,...,px,y,t-n)

其中,median()表示已排序数字数组的中间值。

平均滤波器可以根据如下方式进行计算:

filter_2mean(px,y,t)=px,y,t-1

众数滤波器可以根据如下方式进行计算:

filter_2mode(px,y,t)=px,y,t-1

filter_nmode(px,y,t)=mode(px,y,t-1,px,y,t-1,···,px,y,t-n)

其中,mode()表示在给定的数字数组中出现最频繁的值。

再次参考图1,在步骤125处,解码器可以使用确定的ur块更新来更新不可用参考帧。这种更新可以包括执行ur块更新,其中,使用确定的ur块更新(例如,包含确定的像素值)来更新(例如,修改)ur帧中与启用了ur帧块更新模式的当前块在空间上同位的像素(例如,亮度值)。可以通过以下方式来更新像素,但不限于此:通过用来自如上所述的一个或多个块(包括当前块)的同位像素替换像素、通过用来自如上所述的一个或多个块(包括当前块)的值(例如色度和/或亮度值)更新像素值、通过根据和/或使用统计值(例如但不限于如上所述针对同位像素计算的平均值)替换和/或更新像素,和/或通过如本公开所述方式根据和/或使用过滤器输出(例如时间过滤器输出)替换和/或更新像素。在一些实施方式中,更新可以包括利用多个解码后块来更新多个ur帧块,这可以使用上述利用解码后当前块来更新ur帧的任何方法来执行。更新可以包括但不限于使用上述任何过程和/或过程步骤,通过一个或多个解码块生成具有默认色度和/或亮度值的块和/或帧,并替换和/或更新所述默认色度和/或亮度值;更新可以包括生成ur帧,这可以通过如上所述的创建默认值的ur帧并更新所述默认值来实现。

仍然参考图1,对于随后的当前块,可以将更新后ur帧用作用于帧间预测的参考帧。例如,可以接收编码块。可以确定是否针对编码块启用了帧间预测模式。可以使用更新后ur帧作为参考帧并根据帧间预测模式来确定解码块。例如,经由帧间预测的解码可以包括使用更新后ur帧作为用于计算预测的参考,该参考可以与比特流中包含的残差相结合。

继续参考1,在解码过程中,ur块更新可用于每个当前块。在一些实施方式中,对于帧内编码帧,可以隐式地跳过ur块更新。例如,比特流可以在不同于第一当前编码块的帧内包括第二当前编码块。第二当前编码块的模式可以包括帧内预测。响应于确定第二当前编码块是帧内预测块,可以跳过ur块更新。跳过可以包括例如不更新ur帧,或者确定头部中是否设置了诸如ur_block_update之类的字段。

在一些实施方式中,继续参考图1,如果头部中设置了ur_block_update字段,则解码器可以期望比特流中的显式块更新信令位。在这种方法中,视频的编码块可以在视频比特流的块头部中作为ur帧中待更新的块进行信号发送。在那种情况下,可以用对帧缓冲器进行时间滤波的结果来替换ur帧中的同位块。作为非限制性示例,该更新后ur帧可以用于未来的运动估计目的,直到ur帧随后被更新为止。

图6是示出了能够利用ur帧块更新来对比特流604进行解码的示例性解码器600的系统框图。解码器600可以包括熵解码处理器608、逆量化和逆变换处理器612、解块滤波器616、帧缓冲器620、运动补偿处理器624以及帧内预测处理器628。在一些实施方式中,比特流604包括发送ur帧块更新模式的信号的参数(例如,比特流的头部中的字段)。运动补偿处理器624可以使用ur帧来重构像素信息,并根据ur帧块更新模式并使用多个帧来更新ur帧。例如,当针对当前块显式地发送ur帧块更新模式的信号时,ur帧中的同位像素(例如,亮度值)可以替换为通过对ur帧缓冲器内的帧应用时间滤波器而计算得到的像素值。这样的更新可以包括执行ur块更新,其中,使用解码后当前块更新(例如,修改)ur帧中在空间上与当前块同位的像素。在一些实施方式中,块更新机制可以是显式的或隐式的。例如,可以通过使用解码后当前块的像素值更新ur帧中的同位像素(例如,亮度值),更新ur帧的一部分(例如,一个块);换句话说,更新ur帧可以包括替换ur帧的亮度值为解码后当前块在空间上同位的亮度值。在一些实施方式中,可以根据另一机制来更新ur帧,诸如ur帧的一部分更新为初始同位的ur帧像素值和/或当前解码后块像素值的平均值。在实施例中,被更新的每个像素可以替换和/或更新为相应的滤波器输出(例如对一组同位像素进行滤波的结果)。在回顾了本公开的全部内容之后,本领域技术人员将意识到可以采用的各种其他机制。在一些实施方式中,更新可以包括利用多个解码后块来更新多个ur帧块,这可以使用上述利用解码后当前块来更新ur帧的任何方法来执行。在一些实施方式中,更新可以包括利用多个解码后块来更新多个ur帧块,这可以使用上述利用解码后当前块来更新ur帧的任何方法来执行。更新可以包括但不限于使用上述任何过程和/或过程步骤,通过一个或多个解码块生成具有默认色度和/或亮度值的块和/或帧,并替换和/或更新所述默认色度和/或亮度值;更新可以包括生成ur帧,这可以通过如上所述的创建默认值的ur帧并更新所述默认值来实现。

在操作时,仍然参考图6,比特流604可以由解码器600接收并输入到熵解码处理器608,熵解码处理器608将比特流604熵解码为量化系数。量化系数被提供给逆量化和逆变换处理器612,逆量化和逆变换处理器612可以执行逆量化和/或逆变换以创建残差信号,残差信号可以根据处理模式被添加到运动补偿处理器624或帧内预测处理器628的输出。运动补偿处理器624和/或帧内预测处理器628的输出可以包括基于先前的解码块或ur帧的块预测。预测和残差之和可以由解块滤波器616进行处理,并存储到帧缓冲器620中。对于给定的块(例如cu或pu),当比特流604显式地发送启用ur帧块更新模式的信号时,运动补偿处理器624可以更新ur帧,该ur帧可以包含在帧缓冲器620中,以根据多个帧(例如,包含在帧缓冲器620中的帧)计算的像素值来更新ur帧中的同位像素(例如,亮度值)。可以通过将时间滤波器应用于帧缓冲器620中的帧来确定像素值(例如,ur块更新)。时间滤波器可以可替换地或附加地应用于视频帧的块,例如在分割之后,以计算不可用参考块更新;作为非限制性示例,一个或多个像素和/或块可以由时间滤波器所输出的块和/或像素替换和/或更新。

在一些实施方式中,继续参考图6,解码器600可以包括ur帧块更新处理器632,ur帧块更新处理器632基于当前块生成ur帧更新,并为帧间预测过程提供ur帧像素值。ur帧块更新处理器632可以直接影响运动补偿。此外,例如在当前块是帧内预测块时,ur帧更新处理器632可以从帧内预测处理器接收信息。

图7是示出根据当前主题的一些方面,使用多个帧对具有ur帧块更新的视频进行编码的过程700的示例性实施例的过程流程图,该示例性过程可以提高压缩效率。在步骤705处,视频帧可以经历初始块分割,例如,使用树结构宏块分割方案进行分割,该树结构宏块分割方案可以包括将图像帧划分为ctu和cu。在步骤710处,可以选择用于更新ur帧的一部分的块。例如,与在时间上邻近的一个或多个同位块(例如在当前帧的预定数量的帧内时间上相邻的帧)相比,可以基于块内的运动的频率内容和/或度量来选择该块。该选择可以包括根据度量规则识别将被用于在解码器处更新ur帧的一部分的块。在步骤715处,块可以被编码并包括在比特流中。在一些实施方案中,编码器侧ur帧可以使用多个帧来更新,例如,通过对帧缓冲器内的帧应用时间滤波器。编码器侧ur帧可以用于编码器中的运动估计和补偿。

在步骤720处,仍然参考图7,可以确定显式ur帧块更新参数并将其包括在比特流中,以发送针对当前块启用了ur帧块更新模式的信号。例如,可以设置(例如,启用)pps或sps中的字段。例如,可以设置诸如ur_block_update字段之类的字段,以指示针对当前块启用了ur帧块更新模式。

图8是示出能够使用多个帧发送关于解码器侧ur帧块更新的信号的视频编码器800的示例性实施例的系统框图。视频编码器800可以接收输入视频804,输入视频804可以根据诸如树结构宏块分割方案(例如四叉树二叉决策树)之类的处理方案进行初始分割或划分。树结构宏块分割方案的示例可以包括将图像帧划分为称为编码树单元(ctu)的大块元素。在一些实施方式中,每个ctu可以被进一步一次或多次划分为多个称为编码单元(cu)的子块。该划分的最终结果可以包括可以被称为预测单元(pu)的一组子块。也可以使用变换单元(tu)。

仍然参考图8,示例性视频编码器800可以包括帧内预测处理器808、能够支持解码器处的ur帧块更新的运动估计/补偿处理器812(还称为帧间预测处理器)、变换/量化处理器816、逆量化/逆变换处理器820、环路滤波器824、解码图像缓冲器828以及熵编码处理器832。在一些实施方式中,运动估计/补偿处理器812可以针对当前块确定应当在解码器处更新ur帧,并且设置参数以显式地发送启用了ur帧块更新模式的信号。在一些实施方式中,可以执行隐式信令。发送ur帧块更新模式的信号的比特流参数可以被输入到熵编码处理器832以包括在输出比特流836中。编码器侧ur帧的一部分可以被更新以供运动估计/补偿处理器812使用,用于对可以利用ur帧作为用于帧间预测的参考的附加块进行编码。编码器侧ur帧可以使用多个帧来更新,例如,通过对帧缓冲器内的帧应用时间滤波器。

在操作时,对于输入视频804的帧的每个块,可以确定是通过图像内预测还是使用运动估计/补偿来处理该块。可以将块提供给帧内预测处理器808或运动估计/补偿处理器812。如果要通过帧内预测来处理块,则帧内预测处理器808可以执行处理以输出预测因子(predictor)。如果要通过运动估计/补偿来处理块,运动估计/补偿处理器812可以执行包括使用编码器侧ur帧作为用于帧间预测的参考的处理(如果适用的话)。

可以通过从输入视频中减去预测因子来形成残差;所述残差可以由变换/量化处理器816接收,变换/量化处理器816可以执行变换处理(例如,离散余弦变换(dct))以产生可以被量化的系数。可以将量化系数和任何相关联的信令信息提供给熵编码处理器832,以进行熵编码并将包括在输出比特流836中。熵编码处理器832可以支持对与ur帧块更新模式有关的信令信息进行编码。此外,量化系数可以被提供给逆量化/逆变换处理器820,逆量化/逆变换处理器820可以再现像素,所述像素可与预测因子组合并由环路滤波器824处理,环路滤波器824的输出可以被存储在解码图像缓冲器828中,以供运动估计/补偿处理器812使用,运动估计/补偿处理器812能够支持在解码器处进行ur帧块更新。解码图像缓冲器828可以包括ur帧,并且运动估计/补偿处理器812可以将ur帧用作帧间预测的参考。编码器侧ur帧可以使用多个帧来更新,例如,通过对帧缓冲器内的帧应用时间滤波器。

继续参考图8,尽管上文已经详细描述了一些变型,但是其他修改或添加也是可能的。例如,在一些实施方式中,块可以包括任何对称块(8×8、16×16、32×32、64×64、128×128等)以及任何非对称块(8×4、16×8等)。

在一些实施方式中,仍然参考图8,可以实施四叉树二叉决策树(quadtreeplusbinarydecisiontree,qtbt)。对于qtbt,在编码树单元层面,可以动态地推导出qtbt的分割参数以适应局部特征,而无需传输任何开销。随后,在编码单元层面,联合分类器决策树结构可以消除不必要的迭代并控制错误预测的风险。在一些实施方式中,ur帧块更新模式可以作为在qtbt的每个叶子节点上可用的附加选项。

在一些实施方式中,仍然参考图8,可以在比特流的不同层次层面发送其他语法元素的信号。可以通过包括在序列参数集(sps)中编码的启用标志,针对整个序列启用ur帧块更新。此外,可以在编码树单元(ctu)层面对ctu标志进行编码,以指示是否有任何编码单元(cu)使用ur帧块更新模式。可以对cu标志进行编码,以指示当前编码单元是否利用ur帧块更新模式。尽管已经描述了关于对ur帧的更新的上述公开的实施例,但是上述公开的实施例可以可替代地或附加地应用于其他帧、图像,其包括但不限于长期参考帧。

本文描述的主题提供了许多技术优点。例如,当前主题的一些实施方式可以通过减少编码视频所需的比特数来提高比特流的比特率。这样的提高可以通过改善ur帧来实现,这继而可以改善预测并减小残差。此外,在一些实施方式中,ur不需要如此频繁地更新,从而减少了解码器计算需求。在一些实施方式中,当前主题没有增加存储器的使用,因为帧缓冲器可以被编码器和/或解码器的其他操作利用。当前主题的一些实施方式可以提供使用ur帧对块进行解码,这可以包括更新ur帧的部分,而不必更新整个ur帧。这样的方法可以减小复杂度,同时增加压缩效率。

应当注意的是,本文描述的任何一个或多个方面和实施例可以方便地使用数字电子电路、集成电路、专门设计的专用集成电路(asic)、现场可编程门阵列(fpga)计算机硬件、固件、软件和/或上述项的组合来实现,如在根据本说明书的教导编程的一个或多个机器(例如,用作电子文档的用户计算设备的一个或多个计算设备、诸如文档服务器之类的一个或多个服务器设备等)中实现和/或实施的,这对于计算机领域的普通技术人员来说是显而易见的。这些各种方面或特征可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序和/或软件中的实现,所述可编程系统包括至少一个可编程处理器,所述至少一个可编程处理器可以是专用的或通用的,其被耦接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。对于软件领域的普通技术人员来说显而易见的是,熟练的程序员基于本公开的教导可以容易地准备适当的软件编码。上文讨论的采用软件和/或软件模块的方面和实施方式还可以包括用于帮助实现软件和/或软件模块的机器可执行指令的适当硬件。

这种软件可以是采用机器可读存储介质的计算机程序产品。机器可读存储介质可以是能够存储和/或编码由机器(例如,计算设备)执行的指令序列,并且使得机器执行本文描述的方法和/或实施例中的任何一个的任何介质。机器可读存储介质的示例包括但不限于磁盘、光盘(例如,cd、cd-r、dvd、dvd-r等)、磁光盘、只读存储器“rom”设备、随机存取存储器“ram”设备、磁卡、光卡、固态存储设备、eprom、eeprom、可编程逻辑器件(pld)和/或上述项的任意组合。本文使用的机器可读介质旨在包括单个介质以及物理上分离的介质的集合(例如光盘的集合,或者与计算机存储器结合的一个或多个硬盘驱动器)。本文使用的机器可读存储介质不包括信号传输的暂时形式。

这种软件还可以包括在诸如载波之类的数据载体上作为数据信号而携带的信息(例如数据)。例如,机器可执行信息可以被包括,作为包含在数据载体中的数据承载信号,其中,所述信号对下述项进行编码:由机器(例如,计算设备)执行的指令序列或其部分,以及使机器执行本文描述的方法和/或实施例中的任何一个的任何相关信息(例如,数据结构和数据)。

计算设备的示例包括但不限于电子书阅读设备、计算机工作站、终端计算机、服务器计算机、手持设备(例如,平板计算机、智能手机等)、网络设备、网络路由器、网络交换机、网桥、任何能够执行指定其要采取的动作的指令序列的机器,以及上述项的任意组合。在一个示例中,计算设备可以包括和/或被包括在资讯站(kiosk)中。

图9示出了计算机系统900的示例性形式的计算设备的一个实施例的图示,其中,可以执行用于使控制系统执行本公开的任何一个或多个方面和/或方法的一组指令。还可以预期的是,可以利用多个计算设备来实现专门配置的指令集,用于使一个或多个所述设备执行本公开的方面和/或方法中的任何一个或多个。计算机系统900包括处理器904和存储器908,它们经由总线912彼此通信并且与其他组件通信。总线912可以包括使用多种总线架构中的任何一种的多种类型的总线结构(包括但不限于存储器总线、存储器控制器、外围总线、本地总线以及上述项的任意组合)中的任何一种。

存储器908可包括各种组件(例如,机器可读介质),其包括但不限于随机存取存储器组件、只读组件及上述项的任意组合。在一个示例中,基本输入/输出系统916(bios)可以存储在存储器908中,该基本输入/输出系统916(bios)包括诸如在启动期间帮助在计算机系统900内的元件之间传递信息的基本例程。存储器908还可以包括(例如,存储在一个或多个机器可读介质上的)体现本公开的方面和/或方法中的任意一个或多个的指令(例如,软件)920。在另一示例中,存储器908可以进一步包括任意数量的程序模块,这些程序模块包括但不限于操作系统、一个或多个应用程序、其他程序模块、程序数据以及上述项的任意组合。

计算机系统900还可以包括存储设备924。存储设备(例如,存储设备924)的示例包括但不限于硬盘驱动器、磁盘驱动器、与光介质组合的光盘驱动器、固态存储设备以及上述项的任意组合。存储设备924可以通过适当的接口(未示出)连接至总线912。示例性接口包括但不限于scsi、高技术附件(ata)、串行ata、通用串行总线(usb)、ieee1394(firewire)以及上述项的任意组合。在一个示例中,存储设备924(或其一个或多个组件)可以可移除地与计算机系统900连接(例如,经由外部端口连接器(未示出))。特别地,存储设备924和相关联的机器可读介质928可以为计算机系统900提供机器可读指令、数据结构、程序模块和/或其他数据的非易失性和/或易失性存储。在一个示例中,软件920可以全部或部分地保存在机器可读介质928内。在另一示例中,软件920可以全部或部分地保存在处理器904内。

计算机系统900还可以包括输入设备932。在一个示例中,计算机系统900的用户可以经由输入设备932将命令和/或其他信息输入到计算机系统900中。输入设备932的示例包括但不限于:字母数字输入设备(例如,键盘)、指示设备、操纵杆、游戏手柄、音频输入设备(例如,麦克风、语音响应系统等)、光标控制设备(例如鼠标)、触摸板、光学扫描仪、视频捕获设备(例如静态相机、摄像机)、触摸屏以及上述项的任意组合。输入设备932可以经由各种接口(未示出)中的任一个连接到总线912,所述各种接口包括但不限于串行接口、并行接口、游戏端口、usb接口、火线接口、至总线912的直接接口以及上述项的任意组合。输入设备932可以包括触摸屏界面,所述触摸屏界面可以是显示器936的一部分或者与显示器936分开,这将在下面进一步进行讨论。输入设备932可以用作用户选择设备,用于如上所述在图形界面中选择一个或多个图形表示。

用户还可以经由存储设备924(例如,可移动磁盘驱动器、闪存驱动器等)和/或网络接口设备940向计算机系统900输入命令和/或其他信息。诸如网络接口设备940之类的网络接口设备可以用于将计算机系统900连接至诸如网络944之类的各种网络中的一个或多个,以及连接至网络944的一个或多个远程设备948。网络接口设备的示例包括但不限于网络接口卡(例如,移动网络接口卡、lan卡)、调制解调器及其任意组合。网络的示例包括但不限于广域网(例如,互联网、企业网络)、局域网(例如,与办公室、建筑物、校园或其他相对较小的地理空间相关联的网络)、电话网络、与电话/语音提供商相关联的数据网络(例如,移动通信提供商数据和/或语音网络)、两个计算设备之间的直接连接以及上述项的任意组合。诸如网络944之类的网络可以采用有线和/或无线通信模式。通常,可以使用任何网络拓扑结构。信息(例如,数据、软件920等)可以经由网络接口设备940传送至计算机系统900和/或来自计算机系统900。

计算机系统900可以进一步包括视频显示适配器952,用于将可显示图像传送至诸如显示设备936之类的显示设备。显示设备的示例包括但不限于液晶显示器(lcd)、阴极射线管(crt)、等离子显示器、发光二极管(led)显示器以及上述项的任意组合。显示适配器952和显示设备936可以与处理器904结合使用,以提供本公开的各个方面的图形表示。除了显示设备之外,计算机系统900可以包括一个或多个其他外围输出设备,其包括但不限于音频扬声器、打印机以及上述项的任意组合。这样的外围输出设备可以经由外围接口956连接至总线912。外围接口的示例包括但不限于串行端口、usb连接、火线连接、并行连接以及上述项的任意组合。

前面已经详细描述了本发明的示例性实施例。在不脱离本发明的主旨和范围的情况下,可以进行各种修改和添加。为了在相关的新的实施例中提供多种特征组合,上述各种实施例中的每一个的特征可以与其他描述的实施例的特征进行适当地组合。此外,虽然前面描述了许多单独的实施例,但是本文所描述的内容仅仅是本发明的原理的应用的说明。此外,尽管本文的特定方法可以被示出和/或描述为以特定顺序执行,但是在实现本文所公开的实施例的普通技术中,顺序是高度可变的。因此,此描述仅意味着作为示例,而不是限制本发明的范围。

在以上的描述和权利要求中,诸如“至少一个”或“一个或多个”之类的短语之后可以出现元件或特征的连接列表。术语“和/或”还可以出现在两个或多个元件或特征的列表中。除非与使用短语的上下文隐含地或明确地矛盾,否则这样的短语旨在表示单独列出的任意元素或特征,或者任何列举的元素或特征与任何其他列举的元素或特征的组合。例如,短语“a和b中的至少一个”、“a和b中的一个或多个”和“a和/或b”分别旨在表示“单独的a、单独的b,或者a和b二者”。类似的解释还适用于包含三个或更多项目的列表。例如,短语“a、b和c中的至少一个”、“a、b和c中的一个或多个”、“a、b和/或c”分别旨在表示“单独的a、单独的b、单独的c、a和b二者、a和c二者、b和c二者,或者a和b和c”。此外,上文和权利要求中使用术语“基于”旨在表示“至少部分基于”,使得未引用的特征或元素也是允许的。

本文描述的主题可以根据期望的配置体现在系统、装置、方法和/或物品中。前面的描述中阐述的实施方式并不代表与本文描述的主题一致的所有实施方式。而是,它们仅仅是与所描述的主题相关的方面一致的一些示例。尽管上文已经详细描述了一些变型,但是其他修改或添加也是可能的。特别地,除了在此阐述的特征和/或变型之外,还可以提供进一步的特征和/或变型。例如,上述实施方式可以针对所公开特征的各种组合和子组合和/或上面公开的几个其他特征的组合和子组合。此外,附图中描述的和/或本文描述的逻辑流程不一定要求所示的特定顺序或先后顺序来实现所期望的结果。其他实施方式可以在权利要求的范围内。

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