用于高质量视频播放的特定于应用的滤波器的制作方法

文档序号:19735823发布日期:2020-01-18 04:26阅读:201来源:国知局
用于高质量视频播放的特定于应用的滤波器的制作方法



背景技术:

随着时间的推移,数字视频流式传输的带宽需求不断增长。各种应用得益于视频压缩,视频压缩需要较少的存储空间用于存档的视频信息和/或较小的带宽用于视频信息的传输。因此,已经开发出各种技术来改善数字视频的质量和可访问性。这种技术的一个示例是h.264,它是联合视频工作组(jvt)提出的视频压缩标准或编解码器。当今大多数具有多媒体功能的数字装置都包含符合h.264标准的数字视频编解码器。

高效视频编码(hevc)是遵循h.264的另一种视频压缩标准。hevc指定依次施加的两个环路滤波器,其中首先施加去块滤波器(dbf),然后施加采样点自适应偏移(sao)滤波器。两个环路滤波器都施加在画面间预测环路中,其中滤波图像存储在解码画面的缓冲器中,作为画面间预测的潜在参考。但是,在许多情况下,对于不同类型的视频流式传输应用,在将dbf和sao滤波器施加到解压缩视频帧之后,可能会留有大量的视觉伪像。

附图说明

通过结合附图参考以下描述,可以更好地理解本文所描述的方法和机制的优点,其中:

图1是用于编码和解码视频流的系统的一个实施方案的框图。

图2是解码器的部分的一个实施方案的框图。

图3是特定于应用的去噪滤波器的一个实施方案的框图。

图4是用于生成滤波帧与未滤波帧之间的绝对值的技术的一个实施方案的框图。

图5是说明用于实现解码压缩视频帧时改善的伪像减少的方法的一个实施方案的一般流程图。

图6是示出用于实施特定于用例的滤波器的方法的另一个实施方案的一般流程图。

图7是示出用于使用特定于应用的去噪滤波器处理滤波帧和未滤波帧的方法的一个实施方案的一般流程图。

具体实施方式

在以下描述中,阐述了众多具体细节以提供对本文所呈现的方法和机制的透彻理解。然而,本领域普通技术人员应当认识到,可以在没有这些具体细节的情况下实践各种实施方案。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以免使本文所描述的方法变得模糊。应当理解,为了图示的清晰明了,图中所示的元件不必按比例绘制。例如,一些元件的尺寸可相对于其它元件放大。

本文公开了用于视频流的基于用例的自适应滤波的系统、设备和方法。在一个实施方案中,一种系统包括至少一个显示器和联接到至少一个存储器装置的处理器。在一个实施方案中,系统被配置为接收压缩视频流。对于压缩视频流的每个接收到的帧,系统将压缩视频帧解压缩为未滤波的原始帧。然后,系统利用第一滤波器将未滤波的原始帧滤波为滤波帧。在一个实施方案中,第一滤波器是与采样点自适应偏移(sao)滤波器组合的去块滤波器。另外,在此实施方案中,第一滤波器符合视频压缩标准。在一个实施方案中,滤波帧被用作环路滤波器的参考帧。

接下来,系统将未滤波帧和滤波帧提供给第二滤波器。在一个实施方案中,第二滤波器是针对压缩视频流的特定用例定制的可编程滤波器。例如,用例包括但不限于屏幕内容、视频会议、游戏、视频流式传输、云游戏等。第二滤波器对未滤波帧和滤波帧进行滤波以生成去噪帧。经过一些附加的后处理后,系统将去噪帧驱动到显示器。

在一个实施方案中,系统接收第一压缩视频流。在一个实施方案中,系统被配置为确定第一压缩视频流的用例。在一个实施方案中,系统接收指定第一压缩视频流的用例的类型的指示。在另一个实施方案中,系统分析第一压缩视频流以确定用例的类型。如果系统确定第一压缩视频流对应于第一用例,则系统使用针对第一用例定制的第一组参数对第二滤波器进行编程。然后,系统利用使用第一组参数编程的第二滤波器对第一压缩视频流的帧进行滤波和去噪,之后将所述帧驱动到显示器。

在稍后的时间点,系统接收第二压缩视频流。如果系统确定第二压缩视频流对应于第二用例,则系统使用针对第二用例定制的第二组参数对第二滤波器进行编程。然后,系统利用使用第二组参数编程的第二滤波器对第二压缩视频流的帧进行滤波和去噪,之后将所述帧驱动到显示器。

参考图1,示出了用于编码和解码视频流的系统100的一个实施方案的框图。在一个实施方案中,编码器102和解码器104是同一系统100的部分。在另一个实施方案中,编码器102和解码器104是独立系统的部分。在一个实施方案中,编码器102被配置为压缩初始视频108。编码器102包括变换和量化块110、熵块122、反量化和反变换块112、预测模块116以及组合的去块滤波器(dbf)和采样点自适应偏移(sao)滤波器120。重构视频118被提供作为到预测模块116的输入。在其他实施方案中,编码器102可以包括其他部件和/或以不同方式构造。编码器102的输出是比特流124,可以存储所述比特流124或将其传输到解码器104。

当解码器104接收到比特流124时,逆熵块126可以处理比特流124,随后由反量化和反变换块128进行处理。然后,反量化和反变换块128的输出与补偿块134的输出组合。应注意,块126、128和134可以被称为“解压缩单元”。在其他实施方案中,解压缩单元可以包括其他块和/或以不同方式构造。去块滤波器(dbf)和采样点自适应偏移(sao)滤波器130被配置为处理未滤波的原始帧,以生成解码视频132。在一个实施方案中,dbf/sao滤波器130逆转由编码器102中的dbf/sao滤波器120施加的滤波。在一些实施方案中,在编码器102和解码器104两者中可以禁用dbf/sao滤波。

在一个实施方案中,特定于应用的去噪滤波器136存在两个输入。这些输入经由路径135a和路径135b联接到特定于应用的去噪滤波器136。未滤波的原始帧经由路径135a被传送到特定于应用的去噪滤波器136,并且滤波帧经由路径135b被传送到特定于应用的去噪滤波器136。特定于应用的去噪滤波器136被配置为对这些帧中的一个或两个进行滤波,以生成伪像减少的去噪帧。应注意,特定于应用的去噪滤波器136也可以被称为“去块滤波器”、“伪像减少滤波器”或其他类似术语。

然后,去噪帧从特定于应用的去噪滤波器136被传送到常规后处理块138。在一个实施方案中,常规后处理块138执行大小调整和色彩空间转换以匹配显示器140的特性。在其他实施方案中,常规后处理块138可以对去噪帧执行其他类型的后处理操作。然后,帧从常规后处理块138被驱动到显示器140。可以对接收到的视频流的后续帧重复此过程。

在一个实施方案中,特定于应用的去噪滤波器136被配置为利用针对生成接收到的视频流的特定应用定制的去噪算法。可以利用来生成视频流的不同应用的实例包括视频会议、屏幕内容(例如,远程计算机桌面访问、实时屏幕共享)、游戏、电影制作、视频流式传输、云游戏等。对于这些不同类型的应用中的每一个,特定于应用的去噪滤波器136被配置为利用适用于特定应用的滤波和/或去噪算法以减少视觉伪像。

在一个实施方案中,特定于应用的去噪滤波器136利用机器学习算法来对接收到的视频流执行滤波和/或去噪。在一个实施方案中,使用受训的神经网络来实施特定于应用的去噪滤波器136。在其他实施方案中,可以使用其他类型的机器学习算法来实施特定于应用的去噪滤波器136。

根据实施方案,可以使用硬件和/或软件的任何适当的组合来实施解码器104。例如,解码器104可以在利用中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或任何其他适当的硬件装置的计算系统中实施。硬件装置可以联接到一个或多个存储器装置,所述存储器装置包括可由硬件装置执行的程序指令。

现在转向图2,示出了解码器200的部分的一个实施方案的框图。解码器200接收压缩视频流的帧,并且解码器200被配置为对帧进行解压缩以生成未滤波帧205。在一个实施方案中,压缩视频流符合视频压缩标准(例如,hevc)。在此实施方案中,压缩视频流是使用dbf/sao滤波器编码的。因此,解码器200包括dbf/sao滤波器210,以逆转在编码器处执行的dbf/sao滤波,以便由未滤波帧205生成滤波帧215。滤波帧215也可以称为“参考帧”。此参考帧可以被传送到解码器200的环路滤波器(未示出),以用于后续帧的生成。

未滤波帧205和滤波帧215两者都被传送到特定于应用的去噪滤波器220。特定于应用的去噪滤波器220利用未滤波帧205和滤波帧215中的一个或两个,并且对输入进行去噪滤波以生成去噪帧225。术语“去噪帧”定义为特定于应用的去噪滤波器的输出。与未滤波帧205和滤波帧215相比,去噪帧225包括更少的视觉伪像。

在一个实施方案中,特定于应用的去噪滤波器220计算未滤波帧205与滤波帧215的像素之间的差异。然后,特定于应用的去噪滤波器220利用像素的差异值确定如何对未滤波帧205和/或滤波帧215进行滤波。在一个实施方案中,特定于应用的去噪滤波器220确定生成接收到的压缩视频流的帧的应用,然后特定于应用的去噪滤波器220执行针对所述特定应用定制的滤波。

现在参考图3,示出了特定于应用的去噪滤波器305的一个实施方案的框图。在一个实施方案中,特定于应用的去噪滤波器305联接到存储器310。存储器310代表任何类型的存储器装置或存储元件的集合。当特定于应用的去噪滤波器305接收到压缩视频流时,特定于应用的去噪滤波器305被配置为确定或接收有关压缩视频流的应用(即,用例)的指示。在一个实施方案中,特定于应用的去噪滤波器305接收有关应用的类型的指示。所述指示可以包括在压缩视频流的标头内,或者所述指示可以是在与压缩视频流分开的信道上发送的单独的信号或数据。在另一个实施方案中,特定于应用的去噪滤波器305分析压缩视频流以确定生成压缩视频流的应用的类型。在其他实施方案中,可以利用其他技术来确定生成压缩视频流的应用的类型。

在一个实施方案中,特定于应用的去噪滤波器305根据应用类型查询表325,以确定在对压缩视频流的接收到的帧执行去噪滤波时要利用哪组参数。例如,如果应用类型是屏幕内容,则特定于应用的去噪滤波器305将检索第二组参数320b并且利用以对去噪滤波元件进行编程。或者,如果应用类型是视频会议,则特定于应用的去噪滤波器305将检索第n组参数320n,如果应用类型是流式传输,则特定于应用的去噪滤波器305将检索第一组参数320a,并且依此类推。在一个实施方案中,特定于应用的去噪滤波器305包括机器学习模型,并且从存储器310检索的所述组参数被用于对机器学习模型进行编程以执行去噪滤波。例如,机器学习模型可以是支持向量机、回归模型、神经网络或其他类型的模型。根据实施方案,机器学习模型可以为受训的或未受训的。在其他实施方案中,特定于应用的去噪滤波器305可以利用其他类型的滤波器对输入的视频流执行去噪。

现在转向图4,示出了用于生成滤波帧与未滤波帧之间的绝对值的一个实施方案的框图。在一个实施方案中,特定于应用的去噪滤波器(例如,图1的特定于应用的去噪滤波器136)接收未滤波帧405和滤波帧410。在一个实施方案中,由符合视频压缩标准的组合的去块滤波器(dbf)和采样点自适应偏移(sao)滤波器生成滤波帧410。未滤波帧405代表到dbf/sao滤波器的输入。未滤波帧405和滤波帧410两者被作为输入提供给特定于应用的去噪滤波器。

在一个实施方案中,特定于应用的去噪滤波器针对帧的每个像素计算未滤波帧405与滤波帧410之间的差异。图4中示出差异帧415作为帧像素的差异的一个实例。差异帧415中所示的值仅是实例,并且旨在表示如何为每个像素分配等于未滤波帧405和滤波帧410中的对应像素之间的差异的值。在一个实施方案中,特定于应用的去噪滤波器利用差异帧415中的值对未滤波帧405和滤波帧执行去噪滤波。差异帧415中的非零值指示哪些像素值被dbf/sao滤波器改变了。

现在参考图5,示出了用于在解码压缩视频帧时实现改善的伪像减少的方法500的一个实施方案。出于讨论的目的,此实施方案中的步骤和图6至图7中的步骤依序显示。然而,应注意,在所描述的方法的各种实施方案中,所描述的要素中的一个或多个同时执行,以不同于所示的顺序执行,或者被完全省略。也可以根据需要执行其他附加要素。本文所描述的各种系统或设备中的任一者被配置为实施方法500。

解码器接收压缩视频流的帧(框505)。在一个实施方案中,解码器在具有联接到至少一个存储器装置的至少一个处理器的系统上实施。在一个实施方案中,视频流根据视频压缩标准(例如,hevc)被压缩。解码器对接收到的帧进行解压缩以生成解压缩帧(框510)。接下来,解码器利用第一滤波器对解压缩帧进行滤波以生成滤波帧(框515)。在一个实施方案中,第一滤波器执行去块和采样点自适应偏移滤波。在此实施方案中,第一滤波器也符合视频压缩标准。

然后,解码器将解压缩帧和滤波帧作为输入提供给第二滤波器(框520)。接下来,第二滤波器对解压缩帧和/或滤波帧进行滤波以生成伪像减少的去噪帧(框525)。然后,使去噪帧通过可选的常规后处理模块(框530)。在一个实施方案中,常规后处理模块调整大小并且对去噪帧执行色彩空间转换。接下来,将帧驱动到显示器(框535)。在框535之后,方法500结束。

现在转到图6,示出了用于实施特定于用例的滤波器的方法600的一个实施方案。解码器接收第一压缩视频流(框605)。接下来,解码器确定第一压缩视频流的用例,其中第一压缩视频流对应于第一用例(框610)。接下来,解码器使用针对第一用例定制的第一组参数对去噪滤波器进行编程(框615)。然后,解码器使用编程的去噪滤波器对第一压缩视频流的帧进行滤波(框620)。

在稍后的时间点,解码器接收第二压缩视频流(框625)。一般来说,解码器可以接收任何数量的不同压缩视频流。接下来,解码器确定第二压缩视频流的用例,其中第二压缩视频流对应于第二用例(框630)。为了讨论的目的,假定第二用例与第一用例不同。接下来,解码器使用针对第二用例定制的第二组参数对去噪滤波器进行编程(框635)。为了讨论的目的,假设第二组参数与第一组参数不同。然后,解码器使用编程的去噪滤波器对第二压缩视频流的帧进行滤波(框640)。在框640之后,方法600结束。注意,对于解码器接收到的任何数量的不同压缩视频流,方法600可以重复任何次数。

现在参考图7,示出了利用特定于应用的去噪滤波器处理滤波帧和未滤波帧的方法700的一个实施方案。解码器接收压缩视频流的帧(框705)。解码器解压缩接收到的帧(框710)。所述解压缩帧在由去块滤波器处理之前被称为未滤波帧。解码器将未滤波帧传送到特定于应用的去噪滤波器(框715)。另外,解码器使用去块和sao滤波器对帧进行滤波,然后将滤波帧传送到特定于应用的去噪滤波器(框720)。然后,特定于应用的去噪滤波器计算未滤波帧的像素与滤波帧的像素之间的绝对差异(框725)。

接下来,特定于应用的去噪滤波器至少部分地基于未滤波帧与滤波帧之间的绝对差异确定如何对未滤波帧进行滤波(框730)。然后,特定于应用的去噪滤波器执行特定于应用的滤波,所述滤波任选地至少部分地基于未滤波帧与滤波帧之间的绝对差异(框735)。接下来,将常规后处理(例如,调整大小、色彩空间转换)施加到特定于应用的去噪滤波器的输出(框740)。然后,将帧驱动到显示器(框745)。在框745之后,方法700结束。另选地,可以针对压缩视频流的下一帧重复方法700。

在各种实施方案中,使用软件应用的程序指令来实施先前所描述的方法和/或机制。程序指令以高级编程语言(诸如,c)描述硬件的行为。另选地,使用硬件设计语言(hdl),诸如verilog。程序指令存储在非暂时性计算机可读存储介质上。许多类型的存储介质是可用的。存储介质在使用期间可由计算系统访问,以向计算系统提供程序指令和附随数据以供程序执行。计算系统包括至少一个或多个存储器和被配置为执行程序指令的一个或多个处理器。

应该强调的是,上述实施方案仅仅是具体实施的非限制性实例。在完全理解上述公开后,许多变化和修改对于本领域技术人员将变得明显。意图将以下权利要求解译为涵盖所有此类变化和修改。

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