用于将舒适噪声添加到视频序列的方法、控制器及介质转让专利

申请号 : CN201811533185.7

文献号 : CN109951709B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 亚历山大·特雷松维克托·埃德帕尔姆伏莱德瑞克·皮尔

申请人 : 安讯士有限公司

摘要 :

本发明涉及一种用于将舒适噪声添加到视频序列的方法和控制器。提供了一种将舒适噪声添加到视频序列的方法。该方法包括:将视频编码器的去块滤波器的参数设置为在视频序列期间改变值;使用去块滤波器的、被设置为在视频序列期间改变值的参数对视频序列的帧进行编码,从而在视频序列中引入舒适噪声;以及将编码帧和在对视频序列的帧进行编码时使用去块滤波器的哪些参数的指示一起包括在比特流中。

权利要求 :

1.一种将舒适噪声添加到视频序列的方法,包括:

将视频编码器的去块滤波器的参数设置为在所述视频序列期间改变值,使用所述去块滤波器的、被设置为在所述视频序列期间改变值的参数对所述视频序列的帧进行编码,以及将编码帧与在对所述视频序列的帧进行编码时使用所述去块滤波器的哪些参数的指示一起包括在比特流中,其特征在于,

在编码的步骤中,在所述视频序列的编码帧之间插入跳帧,并且

在设置所述去块滤波器的参数的步骤中,将所述去块滤波器的所述参数设置为针对所述跳帧来改变值,使得所述去块滤波器的不同参数被应用到两个连续的跳帧,从而在所述编码期间在所述视频序列中引入舒适噪声。

2.根据权利要求1所述的方法,其中,根据连续的图片组GOP结构对所述视频序列的帧进行编码,并且将所述去块滤波器的参数设置为在GOP结构期间改变值。

3.根据权利要求2所述的方法,其中,将所述去块滤波器的参数设置为在所述GOP结构期间根据预定义模式来改变值。

4.根据权利要求2所述的方法,其中,将所述去块滤波器的参数设置为在所述GOP结构的每个帧之间改变值。

5.根据权利要求1所述的方法,其中,所述去块滤波器的参数被设置为改变值的速率随着所述视频序列的帧速率的增加而降低。

6.根据权利要求1所述的方法,其中,所述比特流中的每个编码帧包括在对帧进行编码时使用所述去块滤波器的哪些参数的指示。

7.根据权利要求1所述的方法,其中,所述编码器的所述去块滤波器具有多个可能参数组合,其中,将所述去块滤波器的参数设置为使得所述去块滤波器的参数在所述多个可能参数组合的严格的子集内改变值。

8.根据权利要求7所述的方法,其中,在所述视频序列期间更新参数组合的所述严格的子集。

9.根据权利要求8所述的方法,其中,基于所述视频序列的当前信噪比来更新参数组合的所述严格的子集。

10.根据权利要求9所述的方法,其中,更新参数组合的所述子集,使得所述子集内的参数组合之间的最大距离随着信噪比的增加而减小。

11.根据权利要求8所述的方法,其中,基于所述视频序列的帧速率、GOP结构的长度以及所述视频编码器的当前压缩率水平中的至少一个来更新参数组合的所述子集。

12.根据权利要求8所述的方法,其中,根据连续的图片组GOP结构对所述视频序列的帧进行编码,并且其中,针对每个GOP结构来更新参数组合的集合。

13.一种用于控制视频编码器来将舒适噪声添加到视频序列的控制器,包括:参数设置组件,被配置为将视频编码器的去块滤波器的参数设置为在所述视频序列期间改变值,以及控制组件,被配置为指令所述视频编码器来使用所述去块滤波器的、在所述视频序列期间改变值的参数来对所述视频序列的帧进行编码,从而在所述视频序列中引入舒适噪声,并且将编码帧与在对所述视频序列的帧进行编码时使用所述去块滤波器的哪些参数的指示一起包括在比特流中,其特征在于,

所述控制组件被进一步配置为在所述视频序列的编码帧之间插入跳帧,并且所述参数设置组件被进一步配置为将所述去块滤波器的所述参数设置为针对所述跳帧来改变值,使得所述去块滤波器的不同参数被应用到两个连续的跳帧,从而在所述编码期间在所述视频序列中引入舒适噪声。

14.一种计算机可读介质,其中存储有计算机程序,所述程序在被具有处理能力的设备执行时适用于执行根据权利要求1所述的方法。

说明书 :

用于将舒适噪声添加到视频序列的方法、控制器及介质

技术领域

[0001] 本发明涉及视频领域。具体地,本发明涉及用于将舒适噪声添加到视频序列的方法和相关联的控制器。

背景技术

[0002] 视频相机通常被用于监控目的。由相机监控的场景可能在一些时间段期间包括移动物体,从而在由相机捕获的视频中引入运动。在其他时间段期间,场景可能仅包括静止物体,从而导致由相机捕获的视频缺乏运动,即,视频将是静止视频。
[0003] 为了处理场景中的变化的运动量,相机可以根据帧中所描绘的场景中的运动量来动态地调整其帧速率。与在帧中没有或具有很少运动时相比,在帧中存在运动的时间段期间,可以使用更高的帧速率。例如,当帧中具有有限的运动或没有运动时,帧速率可以低至1Hz,这意味着每秒只有一帧。在如此低的帧速率下,视频中的时间噪声将非常小。结果,观看视频的用户将发现该视频看起来不自然并且冻结,并且用户可能开始想知道是否存在相机的硬件或软件故障。
[0004] 处理场景中的变化的运动量的另一种方式是使用编码技术,其中由编码器应用的压缩率水平随图像内容的重要性而变化。例如,与不存在运动的视频帧的部分相比,描绘移动物体的视频帧的部分可以用更低的压缩率来编码。具体地,可以使用空块来编码不存在运动的视频帧的部分,该空块有时被称为“跳块”或“P跳块”。在场景中没有运动量或具有有限量的运动量的时间段期间,帧因此将用大部分的空块来编码。由于空块将显示为前一帧中对应块的副本,因此这还将具有视频中存在非常少的时间噪声的效果。因此,同样,观看视频的用户将发现该视频看起来不自然并且冻结,并且用户可能开始想知道相机是否存在硬件或软件故障。
[0005] 因此,如上所述,使用低帧速率或使用大量空块对视频进行编码可能由于没有时间噪声而在视频中引入人为静止。这种人为静止不是由场景本身缺乏运动引起的,因为以高帧速率捕获的静态场景的视频可能由于传感器处的噪声而仍然包括时间噪声,而是这种人为静止是由帧速率的选择或者如上所述在对视频进行编码时使用的编码方法引起的。为了减轻人为静止以避免视频看起来不自然和冻结,可以将合成时间噪声(有时也被称为舒适噪声)添加到视频。
[0006] 将舒适噪声添加到视频的一种方式是在解码器侧将噪声添加到视频的图像。然而,这将具有必须使用非标准解码器的效果。另一选项可以是使用在编码器处导出并且在胶片颗特性消息(h.264标准所允许的)中被发送给解码器的参数化模型来在解码器侧处将胶片颗粒特性添加到视频。然而,该选项的缺点是编码视频的比特率可能增加。因此存在改进的空间。

发明内容

[0007] 鉴于上述内容,因此目的是提供一种将舒适噪声添加到视频序列的方式,该方式在比特率方面是有效的并且允许使用标准解码器。
[0008] 根据第一方面,上述目的通过一种将舒适噪声添加到视频序列的方法来实现,该方法包括:
[0009] 将视频编码器的去块滤波器的参数设置为在视频序列期间改变值;
[0010] 使用去块滤波器的、被设置为在视频序列期间改变值的参数对视频序列的帧进行编码,从而在视频序列中引入舒适噪声;以及
[0011] 将编码帧与在对视频序列的帧进行编码时使用去块滤波器的哪些参数的指示一起包括在比特流中。
[0012] 目前的编码技术按块(blockwise)对视频编码。更详细地,帧被分割成像素块,其根据所使用的标准有时也被称为宏块或编码单元。当帧被编码或解码时,按块来扫描帧并且帧被逐块地编码或解码。由于相邻块可以被不同地编码,因此这最终可能导致块在解码帧中可见。为了减轻解码帧的块效应(blockiness),目前的大多数编码标准(诸如h.264和h.265)规定在编码器和解码器中包括去块滤波器。去块滤波器可以被视为平滑滤波器,该平滑滤波器意在将解码帧中的块之间的可见边界平滑化。
[0013] 本公开源于以下认识:通过在视频序列期间不时地改变去块滤波器的参数,将在视频序列中引入合成时间噪声,从而有效地产生舒适噪声。例如,考虑两个会看起来相同的帧(例如,这些可以是两个连续的跳帧)。通过用区块滤波器的不同参数来对这两个帧应用该滤波器,在滤波之后,这两个帧将显示为略微不同。该细微差异用于模拟帧之间的时间噪声,并且观看视频的那些帧的用户将不再感受到视频被冻结。
[0014] 使用去块滤波器来引入舒适噪声的优点在于可以使用已经存在于标准化编解码器中的功能,意味着不需要特定的编码器或解码器。例如,该方法可以在h.264标准的框架内实现。此外,由于无论如何都将使用去块滤波器(尽管具有默认设置),因此所产生的比特率的增加是最小的。
[0015] 舒适噪声通常是指被添加到视频序列以改善用户体验的合成时间噪声。舒适噪声可以减轻人为静止,从而避免视频看起来不自然和冻结。
[0016] 可以根据连续的图片组GOP结构对视频序列的帧进行编码,并且可以将去块滤波器的参数设置为在GOP结构期间改变值。GOP是视频流的连续帧的集合,并且GOP结构指定帧内编码(intra-coded)的帧(I帧)和帧间编码的帧(P帧、B帧)在GOP中布置的顺序。GOP结构以帧内编码的帧开始,其后是一个或多个帧间编码的帧。因此,可以将去块参数设置为在GOP结构期间改变值,意味着去块参数可以在两个帧内编码的帧之间将值改变至少一次。
[0017] 如上所述,将去块滤波器的参数设置为在视频序列期间或在GOP结构期间改变值。改变设置的频率可以取决于具体应用,并且可以例如取决于帧速率。可以将参数设置为在帧速率增加时更少地改变值,反之亦然。将参数设置为改变值的时间实例通常以预定义的方式被确定,并且不取决于视频流的图像内容。
[0018] 例如,可以将去块滤波器的参数设置为根据预定义的时间模式来改变值。具体地,可以将去块滤波器的参数设置为在GOP结构期间根据预定义模式来改变值。预定义模式可以涉及何时改变值,诸如针对GOP结构中的哪些帧来改变值。预定义模式还可以指定去块滤波器的参数应该在其之间改变的值。
[0019] 在一些实施例中,去块滤波器的参数被设置为在GOP结构的每个帧之间改变值。在低帧速率的情况下,这可能是特别令人感兴趣的。
[0020] 在其他实施例中,去块滤波器的参数被设置为更少地改变值,这对于更高的帧速率可能是优选的。更具体地,将去块滤波器的参数设置为改变值的速率可以随着视频序列的帧速率的增加而降低。
[0021] 编码器和解码器的去块滤波器优选地是同步的,即它们在对相同帧进行编码/解码时应该使用相同的参数值。出于这个原因,在对帧进行编码时使用的去块滤波器的参数值优选地以一种方式或其他方式从编码器传送到解码器。例如,比特流中的每个编码帧可以包括:在对该帧进行编码时使用去块滤波器的哪些参数的指示。更具体地,参考h.264标准,可以使用由一个或多个数据切片跟随的图片参数集标头(PPS标头)来用信号通知每个编码帧的数据。在PPS标头(header)中,可以设置用于激活去块滤波器的标志,并且在对帧的每个切片进行编码时所使用的去块滤波器的参数可以在对应的切片标头中用信号来通知。如果每帧使用若干切片,则如果需要,去块滤波器可以相应地针对不同切片采用不同值。
[0022] 去块滤波器可以与不同参数相关联。例如,h.264中的去块滤波器与“强度”参数和“边缘”参数相关联。每个参数可以采用多个不同值。例如,h.264的“强度”参数可以取-3和+3之间的整数值,h.264的“边缘”参数可以取-3和+3之间的整数值。因此,当组合参数时,参数值的多个组合(即,参数值的排列)是可行的。它们在本文中被称为多个可能的参数组合。
因此,在h.264中,存在7×7=49个可能的参数组合。
[0023] 可以允许去块滤波器的参数改变为可能的参数组合之中的任何值。然而,允许去块滤波器的参数在完整的多个可能参数组合的严格子集内变化可能就足够了。因此,编码器的去块滤波器可以具有多个可能的参数组合,其中去块滤波器的参数被设置为使得它们在多个可能参数组合的严格子集内改变值。以这种方式,可以控制去块滤波器的参数的可变性。
[0024] 可以在视频序列期间更新参数组合的子集。以这种方式,可以定期更新参数的集合,例如,以使参数的集合适应于视频流的当前属性或编码器的当前设置。可以针对每个接收的帧来更新参数组合的子集。可替换地,可以更少地更新参数组合的子集。例如,可以针对每个GOP结构更新参数组合的集合。
[0025] 在更新参数的子集时,可以考虑不同的因素。例如,在当前信噪比高时,即,当帧中的噪声很少时,即使帧之间的去块滤波器的参数的小变化在解码帧中也是可见的,并且因此是足以提供增加用户体验的舒适噪声。然而,在当前信噪比较低时,即,当帧中存在更多噪声时,可能需要帧之间的去块滤波器的参数的更大变化。否则,添加的舒适噪声将倾向于被帧中的噪声淹没。因此,可以基于视频序列的当前信噪比来更新参数组合的子集。可以从预定数量的接收帧中估计信噪比。这可以包括从最后接收的帧或从最后接收的n个帧中估计信噪比,其中n是大于1的预定义数。这可以针对每个帧执行或更少地执行,诸如每个GOP结构执行一次。在后一种情况下,可以从GOP结构的第一帧中估计信噪比。
[0026] 此外,由于上面说明的原因,用增加信噪比来降低子集内的参数组合的可变性通常是有利的。可以在与子集的参数组合之间的最大距离方面来测量子集内的参数组合的可变性。可以使用L2范数来计算该距离。因此,可以更新参数组合的子集,使得子集内的参数组合之间的最大距离随着信噪比的增加而减小。
[0027] 可替换地或附加地,可以基于视频序列的帧速率、GOP结构的长度和视频编码器的当前压缩率水平中的至少一个来更新参数组合的子集。压缩率水平可以对应于量化参数的值,例如,从h.264和h.265已知。
[0028] 在一些情况下,在编码帧之间引入空帧(即,仅包括跳块的帧)可能是有利的。例如,低帧速率对于用户来说可能看起来奇怪,因为显示器可能看起来以明显的慢速闪烁。减轻闪烁的方法是在每次更新之间将空帧(可以是跳帧,即没有更新数据的帧间编码的帧)添加到视频流中。这将用于增加帧速率,并且从而减少闪烁的出现。然而,由于空帧将仅显示为前一帧的副本,因此不会以这种方式增加视频中的内容的更新速率。根据另一示例,一些客户端仅接受恒定的帧速率。因此,如果使用动态变化的帧速率,则可以在帧之间包括空帧,以便模拟恒定的帧速率。然而,如前所述,包括许多跳块的帧(或者在空帧的情况下仅包括跳块)用于在视频中引入人为静止。因此,在编码步骤中,可以在编码帧之间插入空帧,并且在设置去块滤波器的参数的步骤中,可以将参数设置为针对空帧来改变值。换句话说,参数被设置为针对空帧而变化。以这种方式,在空帧中引入时间噪声,从而消除由空帧引入的人为静止。
[0029] 根据第二方面,上述目的通过一种用于控制视频编码器来将舒适噪声添加到视频序列的控制器来实现,该控制器包括:
[0030] 参数设置组件,被配置为设置视频编码器的去块滤波器的参数,使得它们在视频序列期间改变值,以及
[0031] 控制组件,被配置为指令视频编码器来使用去块滤波器的、在视频序列期间改变值的参数来对视频序列的帧进行编码,从而在视频序列中引入舒适噪声,并且将编码帧与在对视频序列的帧进行编码时使用去块滤波器的哪些参数的指示一起包括在比特流中。
[0032] 根据第三方面,上述目的通过一种计算机程序产品来实现,该计算机程序产品包括(非暂时性)计算机可读介质,在该计算机可读介质上存储有计算机代码指令,该计算机代码指令在被具有处理能力的设备执行时适用于执行根据第一方面的方法。
[0033] 第二和第三方面通常可以具有与第一方面相同的特征和优点。还应注意,除非另有明确说明,否则本发明涉及特征的所有可能组合。

附图说明

[0034] 通过以下参考附图的实施例的说明性和非限制性详细描述,将更好地理解本发明的上述以及其他目的、特征和优点,其中相同的附图标记将用于类似的元素,在附图中:
[0035] 图1示意性地示出了可以实现实施例的系统。
[0036] 图2示意性地示出了视频解码器。
[0037] 图3示意性地示出了视频编码器。
[0038] 图4示意性地示出了根据实施例的控制器。
[0039] 图5a和图5b示意性地示出了编码的视频序列。
[0040] 图6示意性地示出了去块滤波器的可能参数组合。
[0041] 图7是根据实施例的将舒适噪声添加到视频序列的方法的流程图。

具体实施方式

[0042] 现在将在下文中参考附图更全面地描述本发明,其中示出了本发明的实施例。将在操作期间描述本文公开的系统和设备。
[0043] 图1示出了可以实现示例实施例的系统100。系统100包括视频编码器120、视频解码器140和控制器160。视频编码器120和视频解码器140可以实现视频编码标准,诸如h.264或h.265标准,该视频编码标准逐块地对视频序列的帧进行编码和解码。因此,可以使用标准视频编码器和标准视频解码器。
[0044] 在使用期间,视频编码器120接收要编码的视频序列102,即图像帧序列。视频序列102可以由视频相机捕获并且被转发给视频编码器120。视频序列102可以是静止视频序列或运动受限的视频序列,至少对于其空间或时间部分。视频编码器120可以被包括在捕获视频序列102的视频相机中。然后,视频编码器120对视频序列进行编码,并将编码的视频序列包括在比特流104中,以便例如经由有线或无线网络传输给解码器140。
[0045] 视频编码器120的操作由控制器160控制。控制器160可以与视频编码器120分离,或者可以被包括在视频编码器120中。控制器160和视频编码器都可以被包括在捕获视频序列102的视频相机中。控制器160可以从视频编码器120接收数据106。数据106可以涉及由视频编码器使用的参数,诸如由视频编码器120当前使用的压缩率水平和GOP结构。压缩率水平可以是量化参数的形式。数据106还可以涉及视频序列102,诸如视频序列的帧速率。数据106还可以包括视频序列102本身,或者至少包括视频序列102的一个或多个帧。
[0046] 控制器160可以将控制信号108发送给视频编码器120以控制其操作。例如,控制信号108可以将关于在对视频序列102进行编码时使用去块滤波器的哪些参数的信息传送给视频编码器120。作为响应,编码器120使用经由控制信号108从控制器160传送的去块滤波器的参数来对视频序列102进行编码。
[0047] 视频编码器120还可以包括比特流104中的控制信息。例如,控制信息可以被包括在编码视频帧的标头中。控制信息可以包括关于在对视频序列102进行编码时视频编码器120使用哪些参数的信息。例如,控制信息可以包括关于在对视频序列102的帧进行编码时使用去块滤波器的哪些参数的指示。
[0048] 在接收到比特流104时,视频解码器140使用控制信息对编码帧进行解码,以提供重建视频序列110。这在图2中进一步示出,图2更详细地示出了视频解码器140。视频解码器140包括解码器组件142、去块滤波器144和重建帧的缓冲器146。解码器组件142对比特流
104进行解码以提供视频序列102的帧的初始重建206。这可以包括缩放、逆变换和帧内预测或帧间预测,如本领域已知的,这取决于编码帧是被帧内编码还是被帧间编码。如果帧被帧内编码,则参考帧本身来预测该帧。如果帧被帧间编码,则通过参考存储在重建帧的缓冲器
146中的先前解码的帧来预测该帧。
[0049] 然后将初始重建帧206输入到去块滤波器144,该去块滤波器144对初始重建帧206进行滤波,以提供存储在重建帧的缓冲器146中的重建帧208。去块滤波器144的目的是减少由帧的按块编码引起的初始重建帧206中的块效应。当对帧进行滤波时,去块滤波器144使用视频编码器102在比特流104中与编码帧一起包括的参数。然后,重建帧的缓冲器146中的重建帧208可以被重新排序并以正确的显示顺序输出作为重建视频序列110。
[0050] 图3更详细地示出了视频编码器120。视频编码器120包括编码器组件122。如本领域中已知的,编码器组件122逐帧地逐块地对视频序列102进行编码。具体地,帧可以被帧内编码或帧间编码。在前一种情况下,仅通过参考帧自身来对该帧进行编码。在后一种情况下,通过参考先前解码的帧来对帧进行编码。为此目的,视频编码器120包括模仿视频解码器140以便提供先前解码的帧的视频解码器340。换句话说,视频解码器340以与视频解码器140相同的方式操作。具体地,视频编码器120中包括的视频解码器340包括解码器组件342、去块滤波器344和重建帧的缓冲器346,这些组件以与视频解码器140中的对应组件相同的方式操作。视频编码器120内部的视频解码器340不仅以与视频解码器140相同的方式操作,而且还与视频解码器140同步。这意味着,例如,当重建相同帧时,视频编码器120内部的视频解码器340和视频解码器140使用相同的参数。具体地,当重建相同帧时,视频编码器120内部的视频编码器340和视频解码器140优选地使用去块滤波器144、344的相同参数。在解码器140中使用不同的参数将导致伪像在GOP期间将会增加直到下一帧内为止。该同步通过比特流104中的控制信息来实现,该控制信息关于在对视频流102进行编码时视频编码器
120使用哪些参数。例如,控制信息可以包括关于在对视频序列102的帧进行编码时使用去块滤波器304的哪些参数的指示,使得在解码器侧处的去块滤波器144可以使用相同的参数。
[0051] 如上面进一步提到的,视频编码器120的操作由控制器160经由控制信号108控制。具体地,控制信号108可以向去块滤波器344提供关于相对于视频序列102的每个帧使用哪些参数的信息。
[0052] 图4更详细地示出了控制器160。控制器160包括参数设置组件162和控制组件164。
[0053] 通常,控制器160可以包括被配置为实现组件162、164(更具体地,实现它们的功能)的电路系统。
[0054] 在硬件实现中,组件162、164中的每个可以与专用于且被专门设计为提供组件功能的电路系统对应。电路系统可以是一个或多个集成电路(诸如一个或多个专用集成电路)的形式。举例来说,参数设置组件162因此可以包括在使用时设置去块滤波器344的参数的电路系统。
[0055] 在软件实现中,电路系统可以替代地是一个或多个处理器(诸如一个或多个微处理器)的形式,其与存储在(非暂时性)计算机可读介质(诸如非易失性存储器)上的计算机代码指令相关联,该计算机代码指令使控制器实施如本文所公开的任何方法或其相关子步骤。在那种情况下,组件162、164因此可以各自与存储在计算机可读介质上的计算机代码指令的一部分对应,该计算机代码指令在被处理器执行时,使控制器160执行组件的功能。
[0056] 将会理解,还可以具有硬件和软件实现的组合,意味着组件160、162中的一些的功能以硬件来实现,而其他组件以软件来实现。
[0057] 以上关于控制器160的组件162、164的实现所述的内容同样适用于视频编码器120和视频解码器140的组件。具体地,它适用于视频编码器120的组件122、342、344,以及视频解码器140的组件142、144。重建帧的缓冲器146、346可以在存储器方面来实现。
[0058] 现在将参考图1-图4、图5a、图5b以及图7的流程图来描述用于将舒适噪声添加到视频序列的方法。该方法可以应用于任何视频序列。具体地,它可以应用于静止视频序列和存在有限的运动量(运动水平低于阈值)的视频序列,至少对于其空间或时间部分。
[0059] 在步骤S02中,控制器160的参数设置组件162设置当对视频序列102进行编码时要由视频编码器120的去块滤波器344使用的参数。例如,可用的参数可以由视频编码标准指定。例如,参数可以包括强度参数和边缘参数,它们是h.264标准的去块滤波器的参数。参数设置组件162可以在逐帧的基础上设置去块滤波器的参数。具体地,当这样做时,参数设置组件162将去块滤波器344的参数设置为在视频序列102期间改变值。换句话说,去块滤波器344的参数被设置为使得它们在视频序列102期间变化。
[0060] 参数设置组件162尤其可以在视频序列102中的运动水平低于某一阈值的时段期间改变参数的值,因为当视频序列102中的运动水平低时,添加舒适噪声的需求可能更大。在其他时段期间,当运动水平高于阈值时,参数设置组件162可以保持去块滤波器344的参数恒定。
[0061] 视频编码器120可以根据连续的GOP结构对视频序列102进行编码。GOP结构定义了帧内编码的帧(有时被称为I帧)和帧间编码的帧(有时被称为P帧和B帧)在GOP中布置的顺序。GOP结构通常以帧内编码的帧开始,并且之后是一个或多个帧间编码的帧,如图5a中的GOP结构510所示,其中在GOP结构510中,帧内(“I”)之后是五个帧间编码的帧(“P”)。
[0062] 参数设置组件162可以将去块滤波器344的参数设置为在GOP结构510期间改变值。换句话说,去块滤波器244的参数可以在GOP结构510期间变化。例如,参数设置组件可以将去块滤波器344的参数设置为在GOP结构510期间将值改变一次或多次。
[0063] 可以设置参数使得它们以预定义的方式改变值。例如,参数可以根据预定义模式改变值。具体地,可以将参数设置为在遵循预定义模式的时刻改变值。预定义模式可以指定参数应该以规则的时间间隔改变值,诸如在每个帧之间,或者在视频序列102的每隔一个帧之间。参数设置组件162可以基于视频序列102的帧速率来设置参数改变值的速率。随着视频序列102的帧速率增加,参数设置组件162可以降低参数被设置为改变值的速率。例如,如果帧速率以因子m增加,则参数改变值的速率可以以相同的因子m来减小。在图5a的示例中,去块滤波器的参数被设置为每隔一个帧改变值,即针对由点图案标记的帧改变值。然而,预定义模式也可以是不规则的,意味着参数被设置为以不规则的时间间隔改变值,但仍然根据预定义的规则。预定义模式对于所有GOP结构可以是相同的,但是预定义模式也可以在GOP结构之间改变。例如,参数设置组件162可以在连续的GOP结构之间在多个预定义模式之间切换。
[0064] 如先前所论述,视频编码器120可以在编码帧之间包括空帧。这在图5b中进一步示出,在该图5b中,编码的视频序列包括帧502a、502b、502c、502d。视频编码器120在帧502a、502b、502c、502d之间包括空帧504,例如,以实现与图5a中相同的帧速率。空帧可以被认为是不带有更新的数据的P帧,有时被称为P跳帧。这种帧在解码时将是先前解码的帧的副本,并且因此空帧在视频序列中引入人为静止。为了减轻所引入的人为静止,参数设置组件162可以设置去块滤波器344的参数,使得它们针对空帧504改变值,如图5b所示。以这种方式,将在空帧之间模拟时间噪声,因为它们将由于用具有不同滤波器参数的去块滤波器被滤波而不再与先前解码的帧相同。
[0065] 参数设置组件162不仅确定在视频序列102期间或在其GOP结构期间何时改变去块滤波器344的参数值,而且还设置去块滤波器344的参数的特定值以被用于每一帧。
[0066] 去块滤波器344可以与多个不同参数相关联,该多个不同参数可以各自采用多个不同值。当以组合方式查找参数时,因此将存在多个可能参数组合以供选择。图6示出了去块滤波器344与两个参数相关联的示例。例如,这些参数可以与h.264标准的去块滤波器的强度和边缘参数对应。所示出的第一参数和第二参数中的每个可以采用多个值,即,第一参数的M个值和第二参数的N个值。例如,h.264的强度参数和边缘参数都可以采用七个值。当组合第一参数和第二参数时,因此将存在参数值的M×N个可能组合602,每个组合由图6中的“x”表示。对于h.264情况,因此存在49个可能的参数值组合。如果进一步考虑可以关闭去块滤波器344,则这将去块滤波器344的可能参数组合的数量增加了1个。
[0067] 当参数设置组件162设置去块滤波器344的参数时,它因此可以从参数值的所有可能组合602中进行选择。通常,参数设置组件162可以选择设置参数以使得它们在参数值的可能组合的集合604内改变值。该集合可以与参数值的所有可能组合602对应,或者该集合可以被限制为参数值的所有可能组合的严格子集,如图6所示。一旦参数选择组件162选择了集合604,它就可以随机地或以确定的方式(即,通过遵循预定义模式)改变该集合内的参数组合。参数设置组件162可以针对整个视频序列102选择和使用相同的集合604。可替换地,参数设置组件162可以在视频序列102期间更新集合604。参数设置组件162可以针对每一帧来更新集合604,或者可以更少地更新集合604。例如,可以每个GOP结构更新集合604。更新集合604的速率也可以与视频序列102的帧速率相关。具体地,随着帧速率增加,可以更少地更新集合604。
[0068] 参数设置组件162通常不盲目地选择或更新参数组合的集合604,但是可以针对该目的来利用从视频编码器120接收的数据106。
[0069] 如上所述,数据106可以包括视频序列102本身,或者该视频序列102的至少一个或多个帧。因此,可以基于视频序列102中的信息来选择或更新集合604。例如,可以基于视频序列102的信噪比SNR(诸如在将要更新集合604时视频序列的SNR)来更新集合604。参数设置组件162可以根据当前帧或根据最后的n个帧估计SNR。在针对每个GOP结构更新集合604的情况下,例如可以基于GOP结构中的第一帧(即帧内(intra-frame))的SNR来更新集合604。当SNR高时,即当视频序列102中有很少的噪声时,参数设置组件162可以选择集合604以使得该集合604中包括的参数组合非常相似,即,该集合内的参数组合的可变性低。相反,当SNR较低并且在视频序列102中存在更多噪声时,参数设置组件162可以选择集合604以使得集合604内的参数组合的可变性较大。例如,可变性可以根据集合604中的参数组合之间的、在图6中示为“d”的最大距离来测量。因此,图6的集合604中的可变性小于集合604b中的可变性。因此,参数设置组件162可以更新集合604以使得集合内的参数组合之间的最大距离d随着SNR的增加而减小。
[0070] 附加地或可替换地,数据106可以涉及由视频编码器102使用的参数,诸如由视频编码器120当前使用的压缩率水平和GOP结构。数据106还可以涉及视频序列102,诸如视频序列的帧速率。因此,参数设置组件162可以基于视频序列102的帧速率、GOP结构的长度和/或视频编码器102的压缩率水平来选择或调整集合604。例如,可以调整集合604以使得最大距离d随着量化参数值的增加而减小。为此目的,可以使用在对最近编码的帧进行编码时使用的量化参数的设置。由于量化参数可能在帧中的不同块之间局部改变,因此可以使用量化参数的代表值。可以选择量化参数的代表值,以使得利用高于代表值的量化参数对块的预定值进行编码。在评估量化参数的代表值时,可以忽略跳块。
[0071] 一旦参数设置组件162设置了去块滤波器344的参数,控制组件164就生成控制信号108,该控制信号108被传输给视频编码器120。控制组件164可以例如生成控制信号108,该控制信号108在逐帧的基础上向视频编码器120指示要使用去块滤波器344的哪些参数值。由此,通过使用控制信号108,控制器160指令视频编码器120来使用去块滤波器344的参数来对视频序列102的帧进行编码,该参数被控制器160的参数设置组件162设置为在视频序列102期间改变值。
[0072] 在接收到控制信号108时,视频编码器120继续对视频序列102的帧进行编码。当这样做时,视频编码器120使用在控制信号108中所指示的去块滤波器344的参数,即,由参数设置组件162设置的参数。如上所述,因为参数设置组件162将去块滤波器344的参数设置为在视频序列102期间改变值,因此视频编码器120将通过使用去块滤波器的、在视频序列102期间改变值的参数来对视频序列102进行编码。由此,在视频序列102中引入时间噪声-舒适噪声。
[0073] 在步骤S06中,视频编码器102继续将编码的帧包括在比特流104中。为了使解码器侧上的去块滤波器144与编码侧上的去块滤波器344保持同步,视频编码器120还在比特流104中包括在对视频序列102的帧进行编码时使用去块滤波器的哪些参数的指示。可以使用每个编码帧的标头来在比特流104中提供该指示。遵循h.264标准,在GOP处开始时发送SPS标头。在SPS标头中,提供了有关帧的宽度和高度的信息。SPS标头之后是具有PPS标头形式的图像数据和每帧的一个或多个切片。在PPS标头中,可以设置用于启用去块滤波器的标志。如果针对帧启用去块滤波器,则去块滤波器的参数被包括在帧的一个或多个切片的切片标头中。因此,可以使用与该编码帧相关联的标头来用信号通知在对帧进行编码时使用的去块滤波器344的参数组合。
[0074] 将会理解,本领域技术人员可以以许多方式来修改上述实施例,并仍然使用如上述实施例中所示的本发明的优点。例如,如果视频编码器和解码器包括多个去块滤波器,则可以通过在视频序列期间改变一个或两个滤波器的参数值来应用上述方法。此外,无论可用的去块滤波器的参数的数量如何,上述内容同样适用。因此,本发明不应限于所示实施例,而应仅由所附权利要求限定。另外,如技术人员所理解的,可以组合所示实施例。