使用滤波和子空间投影的视频编译的恢复转让专利

申请号 : CN201780067371.3

文献号 : CN109906610B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 德巴尔加·慕克吉

申请人 : 谷歌有限责任公司

摘要 :

描述了恢复由源帧的重构产生的劣化帧。一种方法包括:使用第一恢复参数,为劣化帧的劣化图块生成第一引导图块,确定投影操作的投影参数,以及在编码比特流中编码第一恢复参数和投影参数。投影操作将源帧的源图块和劣化图块之间的差异与第一引导图块和劣化图块之间的差异相关联。

权利要求 :

1.一种恢复由源帧的重构产生的劣化帧的方法,所述方法包括:使用恢复参数生成用于所述劣化帧的劣化图块的一个或多个引导图块,其中,每个引导图块是通过引导图像滤波来生成的;

确定投影操作的一个或多个投影参数以生成重构帧的重构图块,所述投影操作将所述源帧的源图块和所述劣化图块之间的差异与差异项相关联,每个差异项定义所述一个或多个引导图块中的相应引导图块与所述劣化图块之间的差异,其中,针对每个差异项确定了相应的投影参数,其中,所述投影参数被确定为使得所述重构图块具有与所述源图块的共位像素的像素值接近的像素值,其中,所述重构图块与所述劣化图块之间的差异是所述差异项的线性组合,其中,所述线性组合中的每个差异项的系数是相应的投影参数;以及在编码比特流中编码所述恢复参数和所述一个或多个投影参数。

2.如权利要求1所述的方法,其中,生成所述一个或多个引导图块中的每个引导图块包括:从半径和噪声值的码本中选择半径和噪声值;

对所述劣化图块的像素位置处的每个像素:

使用所述半径,确定相对于以该像素为中心的第一窗口中的劣化图块的像素值的像素均值和像素方差;

使用所述像素方差和所述噪声值来确定基线值;

使用所述像素均值和所述基线值来确定平滑值;

使用以该像素为中心的第二窗口中的劣化图块的像素值,确定平均基线值和平均平滑值;以及基于所述劣化图块中的共位像素值、所述平均基线值和所述平均平滑值来确定该引导图块的像素位置中的引导像素值。

3.如权利要求2所述的方法,其中,所述第一窗口具有与所述第二窗口相同的大小。

4.如权利要求2所述的方法,其中,所述第二窗口是3×3窗口。

5.如权利要求2所述的方法,其中,所述平均基线值是通过下述操作以使用加权和来近似的:将权重分配给所述第二窗口的至少一些像素位置,使得所述权重之和是2的幂;

计算所述加权和;以及

将所述加权和移位2的幂。

6.如权利要求1-5中任一项所述的方法,其中,所述恢复参数包括用于生成第一引导图块的第一恢复参数和用于生成第二引导图块的第二恢复参数。

7.如权利要求1-5中任一项所述的方法,进一步包括:从码本中选择所述恢复参数。

8.一种用于恢复由源帧的重构产生的劣化帧的装置,包括:处理器,所述处理器被配置为执行存储在非暂时性存储介质中的指令以:使用恢复参数生成用于所述劣化帧的第一劣化图块的一个或多个引导图块,其中,每个引导图块是通过引导图像滤波来生成的;

确定投影操作的一个或多个投影参数以生成重构图块,所述投影操作将所述源帧的源图块和所述第一劣化图块之间的差异与差异项相关联,每个差异项定义所述一个或多个引导图块与所述第一劣化图块之间的差异,其中,针对每个差异项确定了相应的投影参数,其中,所述投影参数被确定为使得所述重构图块具有与所述源图块的共位像素的像素值接近的像素值,其中,所述重构图块与所述第一劣化图块之间的差异是所述差异项的线性组合,其中,所述线性组合中的每个差异项的系数是相应的投影参数;以及在编码比特流中编码所述恢复参数和所述投影参数。

9.如权利要求8所述的装置,其中,存储在所述非暂时性存储介质中以生成每个引导图块的指令包括可由所述处理器执行以下操作的指令:从半径和噪声值的码本中选择半径和噪声值;

对所述第一劣化图块的像素位置:

使用所述半径,确定相对于所述像素位置周围的第一窗口内的所述第一劣化图块的像素值的像素均值和像素方差;

使用所述像素方差和所述噪声值来确定基线值;

使用所述像素均值和所述基线值来确定平滑值;

使用围绕所述像素位置的第二窗口中的所述第一劣化图块的像素值,确定平均基线值和平均平滑值;以及使用所述第一劣化图块中的共位像素值、所述平均基线值和所述平均平滑值来确定该引导图块的所述像素位置中的引导像素值。

10.如权利要求9所述的装置,其中,所述第一窗口具有与所述第二窗口相同的大小。

11.如权利要求9所述的装置,其中,所述第二窗口是3×3窗口。

12.如权利要求9所述的装置,其中,所述处理器被配置为通过执行存储在所述非暂时性存储介质中的指令以执行下述操作以使用加权和来近似所述平均平滑值:将权重分配给所述第二窗口的每个像素位置,使得所述权重之和是2的幂;

计算所述加权和;以及

将所述加权和移位2的幂。

13.如权利要求8至12中任一项所述的装置,其中,所述恢复参数包括用于生成用于所述第一劣化图块的第一引导图块的第一恢复参数和用于生成用于所述第一劣化图块的第二引导图块的第二恢复参数。

14.如权利要求8至12中任一项所述的装置,其中,所述处理器进一步被配置为执行存储在所述非暂时性存储介质中的指令以:从码本中选择所述恢复参数。

15.如权利要求8至12中任一项所述的装置,其中,所述处理器进一步被配置为执行存储在所述非暂时性存储介质中的指令以:在所述编码比特流中编码用于所述恢复参数和所述投影参数的第一恢复类型;以及基于第二恢复类型,生成用于所述劣化帧的第二劣化图块的引导图块,其中,所述第二恢复类型是从包括维纳滤波器和双边滤波器的集合中选择的。

16.一种恢复劣化帧的方法,所述方法包括:

从编码比特流确定第一投影参数和第二投影参数;

从所述编码比特流确定第一恢复参数和第二恢复参数;

使用所述第一恢复参数通过引导图像滤波来生成用于所述劣化帧的劣化图块的第一引导图块;

使用所述第二恢复参数通过引导图像滤波来生成用于所述劣化图块的第二引导图块;

以及

使用所述第一引导图块、所述第二引导图块、所述第一投影参数和所述第二投影参数,执行投影操作以生成重构帧的重构图块;

其中,所述投影操作将定义源帧的源图块和所述劣化图块之间的差异的第一项与第一差异项和第二差异项相关联,其中,所述第一差异项定义所述第一引导图块和所述劣化图块之间的差异,所述第二差异项定义所述第二引导图块和所述劣化图块之间的差异,其中,所述投影参数使得所述重构图块具有与所述源图块的共位像素的像素值接近的像素值,其中,所述重构图块与所述劣化图块之间的差异是所述第一差异项与所述第二差异项的线性组合,其中,所述线性组合中的所述第一差异项的系数是所述第一投影参数,并且其中,所述线性组合中的所述第二差异项的系数是所述第二投影参数。

17.如权利要求16所述的方法,其中,确定所述第一恢复参数和所述第二恢复参数包括:从所述编码比特流中确定用于所述第一恢复参数的码本中的第一索引;

基于所述第一索引,从所述码本中检索所述第一恢复参数;

从所述编码比特流中确定用于所述第二恢复参数的码本中的第二索引;以及基于所述第二索引,从所述码本中检索所述第二恢复参数。

18.一种包括指令的非易失性计算机可读存储介质,所述指令当由计算机执行时,使得所述计算机执行如权利要求1至7、16及17中的任一项所述的方法。

说明书 :

使用滤波和子空间投影的视频编译的恢复

[0001] 相关申请的交叉引用
[0002] 本申请要求2016年11月4日提交的美国临时专利申请序列号62/417,545的权益,其全部公开内容通过引用结合于此。

背景技术

[0003] 数字视频流可以使用帧序列或静态图像来表示视频。数字视频可以用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成的视频的共享。数字视频流可以包含大量数据,并且消耗计算设备的大量计算或通信资源以用于处理、传输或存储视频数据。已经提出了各种方法来减少视频流中的数据量,包括压缩和其它编码技术。
[0004] 使用压缩的编码可以通过将帧或图像分成随后被压缩的块来执行,通常使用导致一些数据丢失的编码技术。解码器可以将一个或多个滤波器应用于重构帧,以便去除或平滑由(例如有损)编码引起的伪像。

发明内容

[0005] 本公开一般涉及视频编译,尤其涉及使用滤波和子空间投影的恢复。
[0006] 本公开的实施方式的一个方面是一种恢复由源帧的重构产生的劣化帧的方法。该方法包括使用第一恢复参数生成用于劣化帧的劣化图块的第一引导图块,确定投影操作的投影参数,以及在编码比特流中编码第一恢复参数和投影参数。投影操作将源帧的源图块和劣化图块之间的差异与第一引导图块和劣化图块之间的差异相关联。因此,在不降低编码或压缩过程的效率的情况下,可以提高编码帧的质量(或提供减少的损耗)。
[0007] 例如,劣化帧可能由编码和解码过程中出现的保真度或质量的降低引起。
[0008] 恢复参数可以是描述源图块或帧与引导图块以及原始帧两者之间的差异的值的实际值或近似值。例如,恢复参数可以包括例如从半径和噪声值的码本中选择的半径和/或噪声值。图块可以是帧的至少一部分。
[0009] 可选地,生成第一引导图块可以包括下述中的一个或多个(以任意组合):
[0010] 从半径和噪声值的码本中选择半径和噪声值;
[0011] 对劣化图块的像素位置处的每个像素:
[0012] 使用所述半径确定相对于以像素为中心的第一窗口中的劣化图块的像素值的像素均值和像素方差;
[0013] 使用像素方差和噪声值来确定基线值;使用像素均值和基线值来确定平滑值;
[0014] 使用以像素为中心的第二窗口中的劣化图块的像素值,确定平均基线值和平均平滑值;和/或
[0015] 基于劣化图块中共位的像素值、平均基线值和平均平滑值来确定第一引导图块的像素位置中的引导像素值。
[0016] 可选地,第一窗口可以具有与第二窗口相同的大小(或不同的大小)。可选地,第二窗口可以是3×3窗口。可以使用其他大小窗口。例如,可以是正方形。
[0017] 可选地,可以通过以下各项来使用加权和来近似平均基线值:将权重分配给第二窗口的至少一些像素位置,使得权重之和是2的幂;计算加权和;以及将加权和移位2的幂。可以使用其他能力。
[0018] 可选地,投影操作可以包括相应的差异项,每个差异项使用相应的引导图块,以及其中,投影参数包括每个相应差异项的相应投影参数。
[0019] 可选地,该方法可以进一步包括:基于第二恢复参数,生成用于劣化图块的第二引导图块,其中,确定投影操作的投影参数包括:确定投影操作的投影参数,投影操作进一步将源帧的源图块和劣化图块之间的差异与第二引导图块和劣化图块之间的差异相关联。
[0020] 可选地,该方法可以进一步包括从码本或其他数据集或库中选择第一恢复参数。
[0021] 另一方面是一种用于恢复由源帧的重构产生的劣化帧的装置。该装置包括处理器,处理器被配置为执行存储在非暂时性存储介质中的指令以使用第一恢复参数,生成用于劣化帧的第一劣化图块的第一引导图块;确定投影操作的投影参数;以及在编码比特流中编码第一恢复参数和投影参数。
[0022] 存储在非暂时性存储介质中以生成第一引导图块的指令可以包括可由处理器执行以执行以下操作的指令:从半径和噪声值的码本中选择半径和噪声值;以及对第一劣化图块的像素位置:使用所述半径,确定相对于像素位置周围的第一窗口内的第一劣化图块的像素值的像素均值和像素方差;使用像素方差和噪声值来确定基线值;使用像素均值和基线值来确定平滑值;使用围绕像素位置的第二窗口中的第一劣化图块的像素值,确定平均基线值和平均平滑值;以及使用第一劣化图块中共位的像素值、平均基线值和平均平滑值来确定第一引导图块的像素位置中的引导像素值。
[0023] 可选地,第一窗口可以具有与第二窗口相同的大小。
[0024] 可选地,第二窗口可以是3×3窗口。
[0025] 可选地,处理器可以被配置为通过执行存储在非暂时性存储介质中的指令以执行以下各项来使用加权和来近似平均平滑值:将权重分配给第二窗口的每个像素位置,使得权重之和是2的幂;计算加权和;以及将加权和移位2的幂。
[0026] 可选地,投影操作可以包括相应的差异项,每个差异项使用相应的引导图块,并且投影参数包括用于每个相应的差异项的相应的不同投影参数。
[0027] 可选地,处理器可以进一步被配置为执行存储在非暂时性存储介质中的指令以:基于第二恢复参数,生成用于第一劣化图块的第二引导图块,其中,确定投影参数包括确定投影操作的投影参数。
[0028] 可选地,处理器可以进一步被配置为执行存储在非暂时性存储介质中的指令以:从码本中选择第一恢复参数。
[0029] 可选地,处理器可以进一步被配置为执行存储在非暂时性存储介质中的指令以:在编码比特流中编码用于第一恢复参数和投影参数的第一恢复类型;以及基于第二恢复类型,生成用于劣化帧的第二劣化图块的第二引导图块,其中,从包括维纳滤波器和双边滤波器的集合中选择第二恢复类型。
[0030] 另一方面是一种恢复劣化帧的方法。该方法包括从编码比特流确定第一投影参数和第二投影参数;从编码比特流确定第一恢复参数和第二恢复参数;使用第一恢复参数生成用于劣化图块的第一引导图块;使用第二恢复参数生成用于劣化图块的第二引导图块;以及使用第一引导图块、第二引导图块、第一恢复参数和第二恢复参数,执行投影操作以生成重构帧的重构图块。
[0031] 可选地,投影操作可以包括使用第一恢复参数,将源帧的源图块与劣化图块之间的差异与第一引导图块和劣化图块之间的差异相关联的第一项,以及使用第二恢复参数,将源帧的源图块和劣化图块之间的差异与第二引导图块和劣化图块之间的差异相关联的第二项。
[0032] 可选地,确定第一恢复参数和第二恢复参数可以包括:从编码比特流中确定用于第一恢复参数的码本中的第一索引;基于第一索引,从码本中检索第一恢复参数;从编码比特流中确定用于第二恢复参数的码本中的第二索引;以及基于第二索引,从码本中检索第二恢复参数。
[0033] 应注意到,上述任何特征可以与本发明的任何特定方面或实施例一起使用。
[0034] 在实施例、附加权利要求和附图的下述详细描述中公开了本公开的这些和其他方面。

附图说明

[0035] 本文的描述参考附图,其中相似的附图标记在几个视图中指代相似的部件。
[0036] 图1是视频编码和解码系统的示意图。
[0037] 图2是可以实现传送站或接收站的计算设备的示例的框图。
[0038] 图3是待编码并且随后解码的视频流的图。
[0039] 图4是根据本公开的实施方式的编码器的框图。
[0040] 图5是根据本公开的实施方式的解码器的框图。
[0041] 图6是根据本公开的实施方式的用于在编码器处恢复劣化帧的过程的流程图。
[0042] 图7是根据本公开的实施方式的用于生成劣化图块的引导图块的过程的流程图。
[0043] 图8是根据本发明的实施方式的3×3像素窗口的图示。
[0044] 图9A和9B是根据本公开的实施方式的分配给3×3窗口的位置的权重的示例的图示。
[0045] 图10是根据本公开的实施方式的用于在解码器处恢复劣化帧的过程的流程图。

具体实施方式

[0046] 如上所述,与编译视频流相关的压缩方案可以包括将图像分成块,并且使用一种或多种技术来生成数字视频输出比特流以限制在输出中包括的信息。可以解码所接收的比特流以由有限的信息来重新创建块和源图像。编码视频流或其一部分诸如帧或块可以包括使用视频流中的时间和空间相似性来提高编译效率。例如,可以基于识别先前编译的像素值和当前块中的像素值之间的差(残差)来编码视频流的当前块。以这种方式,仅需要将残差和/或用于生成残差的参数添加到比特流,而不是包括整个当前块。可以使用有损量化步骤来编码残差。从这样的残差解码(即,重构)编码块经常导致原始(即,源)块和重构块之间的失真。
[0047] 可以以各种方式使用重构后环路滤波器来改善由于编码和解码过程而失真或变形的重构帧。例如,环内去块滤波器可以被用来修改块之间的边界附近的像素值,以限制重构帧内的那些边界的可见性。例如,其他环路滤波器可以被用来通过将在编码器处确定的偏移添加到重构帧的像素值,来使重构图像更接近源图像。那些环路滤波器以盲设置操作(即,不访问源帧及其相关的重构帧)。
[0048] 根据本文的教导,在编码器处对源和重构帧的访问使得可以从编码器发送信息,该信息引导解码器实现优异的恢复。其中,描述了使用滤波和子空间投影的视频编码的恢复。引导滤波器使用待滤波的帧和帧的至少一部分的引导图像(例如,引导图块)。使引导图像和帧部分在感知上相同(例如,将它们的差异减小到接近零)导致边缘保留的去噪图像。也就是说,在没有边缘的情况下平滑所得到的图像,并且保留边缘(即,边缘不被平滑)。可以对基于帧差异的投影公式的恢复参数进行编码并且将其信号告知解码器。本文所述的恢复可以在可切换的恢复框架中实现,该框架指的是在对重构帧的不同部分的(例如使用)不同恢复技术或类型之间切换的能力。可以去除或至少部分地补偿各种系统误差(诸如帧的平坦区域中的DC偏移)或颜色偏差,使得恢复的图像可以更接近源图像。
[0049] 本文首先参考可以结合本教导的系统来描述使用滤波和子空间投影的恢复。如上所述,在本文的修复中,可以在一个或多个部分中恢复帧。这些部分中的每一个在本文中分别称为“图块”,其中,图块可以彼此重叠或不彼此重叠。
[0050] 图1是视频编码和解码系统100的示意图。传送站102可以是例如具有诸如图2中所述的硬件的内部配置的计算机。然而,传送站102的其它合适的实施方式是可能的。例如,传送站102的处理可以分布在多个设备中。
[0051] 网络104可以连接用于视频流的编码和解码的传送站102和接收站106。具体地,可以在传送站102中对视频流进行编码,并且可以在接收站106中对编码的视频流进行解码。网络104可以是例如互联网。网络104还可以是局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、蜂窝电话网络或将视频流从传送站102传递到本示例中的接收站106的任何其它装置。
[0052] 在一个示例中,接收站106可以是具有诸如图2中所述的硬件的内部配置的计算机。然而,接收站106的其它合适的实施方式是可能的。例如,接收站106的处理可以分布在多个设备中。
[0053] 视频编码和解码系统100的其它实施方式是可能的。例如,实施方式可以省略网络104。在另一实施方式中,视频流可以被编码,然后被存储以在稍后的时间传输到接收站106或具有存储器的任何其它设备。在一个实施方式中,接收站106接收(例如,经由网络104、计算机总线和/或一些通信路径)编码的视频流,并且存储视频流以供稍后解码。在示例实施方式中,实时传输协议(RTP)被用于通过网络104输送编码的视频。在另一实施方式中,可以使用除RTP之外的传输协议,例如基于超文本传输协议(HTTP)的视频流传输协议。
[0054] 例如,当在视频会议系统中使用时,传送站102和/或接收站106可以包括如下所述编码和解码视频流的能力。例如,接收站106可以是视频会议参与者,其从视频会议服务器(例如,传送站102)接收编码的视频比特流以解码和查看,并且进一步编码并且将其自己的视频比特流传送到视频会议服务器,以由其他参与者解码和查看。
[0055] 图2是可以实现传送站或接收站的计算设备200的框图。例如,计算设备200可以实现图1的传送站102和接收站106中的一个或两者。计算设备200可以以包括多个计算设备的计算系统的形式,或者可以以单个计算设备的形式,例如移动电话、平板电脑、膝上型计算机、笔记本计算机和桌面型计算机等。
[0056] 计算设备200中的CPU 202可以是中央处理单元。替选地,CPU 202可以是能够操纵或处理现在存在或将来开发的信息的任何其它类型的设备或多个设备。尽管所公开的实施方式可以用所示的单个处理器例如CPU 202来实现,但是可以使用多个处理器来实现速度和效率方面的优点。
[0057] 在实施方式中,计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其它合适类型的存储设备可以被用作存储器204。存储器204可以包括由CPU 202使用总线212访问的代码和数据206。存储器204可以进一步包括操作系统208和应用程序210,应用程序210包括允许CPU 202执行这里描述的方法的至少一个程序。
例如,应用程序210可以包括应用1至N,其进一步包括执行这里描述的方法的视频编译应用。计算设备200还可以包括辅助存储214,辅助存储214例如可以是与移动的计算设备200一起使用的存储卡。因为视频通信会话可以包含大量的信息,所以它们可以全部或部分地存储在辅助存储214中,并且根据需要被加载到存储器204中以处理。
[0058] 计算设备200还可以包括一个或多个输出设备,诸如显示器218。显示器218在一个示例中,可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器218可以经由总线212耦合到CPU 202。除了显示器218或作为其替选,可以提供允许用户编程或以其它方式使用计算设备200的其它输出设备。当输出设备是或包括显示器时,显示器可以以各种方式实现,包括通过液晶显示器(LCD)、阴极射线管(CRT)显示器或发光二极管(LED)显示器诸如有机LED(OLED)显示器。
[0059] 计算设备200还可以包括图像感测设备220或者与图像感测设备220进行通信,图像感测设备220例如是相机,或者现在存在或者将来开发的可以感测诸如操作计算设备200的用户的图像的图像的任何其他图像感测设备220。图像感测设备220可以被定位成使得其指向操作计算设备200的用户。在示例中,图像感测设备220的位置和光轴可以被配置使得视场包括与显示器218直接相邻并且从其可见显示器218的区域。
[0060] 计算设备200还可以包括声音感测设备222或与声音感测设备222通信,声音感测设备222例如是麦克风或者现在存在或者将来开发的可以感测计算设备200附近的声音的任何其它声音感测设备。声音感测装置222可以被定位成使得其指向操作计算装置200的用户,并且可以被配置为接收在用户操作计算装置200时,由用户发出的声音,例如语音或其它话语。
[0061] 尽管图2将计算设备200的CPU 202和存储器204图示为集成为单个单元,但是可以利用其它配置。CPU 202的操作可以分布在可以直接耦合或跨越局域或其它网络耦合的多个机器(每个机器具有一个或多个处理器)上。存储器204可以分布在多个机器上,诸如基于网络的存储器或在执行计算设备200的操作的多个机器中的存储器。尽管这里被描绘为单条总线,但是计算设备200的总线212可以由多条总线构成。此外,辅助存储214可以直接耦合到计算设备200的其它组件,或者可以经由网络访问,并且可以包括诸如存储卡的单个集成单元或诸如多个存储卡的多个单元。计算设备200因此可以以各种各样的配置来实现。
[0062] 图3是待编码并且随后解码的视频流300的示例的图。视频流300包括视频序列302。在下一层级,视频序列302包括多个相邻帧304。虽然三个帧被描绘为相邻帧304,但是视频序列302可以包括任意多个相邻帧。然后,可以将相邻帧304进一步细分为单独的帧,例如帧306。在下一层级,帧306可以被细分成一系列片段308或平面。例如,片段308可以是允许并行处理的帧的子集。片段308也可以是可以将视频数据分离成单独颜色的帧的子集。例如,彩色视频数据的帧306可以包括亮度平面和两个色度平面。可以以不同的分辨率对片段
308采样。
[0063] 无论帧306是否被划分成片段308,帧306可以进一步被细分为块310,块310可以包含与例如帧306中的16×16像素相对应的数据。块310也可以被设置成包括来自像素数据的一个或多个片段308的数据。块310还可以是任何其他合适的尺寸,诸如4×4像素、8×8像素、16×8像素、8×16像素、16×16像素或更大。
[0064] 图4是根据本公开的实施方式的编码器400的框图。如上所述,可以在传送站102中,诸如通过提供存储在存储器例如存储器204中的计算机软件程序来实现编码器400。计算机软件程序可以包括机器指令,其当由诸如CPU 202的处理器执行时,使传送站102以本文所述的方式对视频数据进行编码。编码器400还可以被实现为包括在例如传送站102中的专用硬件。编码器400具有下述级,以在前向路径(由实连接线所示)中执行各种功能,来使用视频流300作为输入产生编码或压缩比特流420:帧内/帧间预测级402、变换级404、量化级406和熵编码级408。编码器400还可以包括重构路径(由虚连接线所示)以重构用于未来块的编码的帧。在图4中,编码器400具有执行重构路径中的各种功能的下述级:去量化级410、逆变换级412、重构级414和环路滤波级416。编码器400的其它结构变体可以被用来编码视频流300。
[0065] 当呈现视频流300以编码时,可以以块为单位处理帧306。在帧内/帧间预测级402,可以使用帧内(intra-frame)预测(也称为帧内(intra)预测)或帧间(inter-frame)预测(也称为帧间(inter)预测)或两者的组合来编码块。在任何情况下,都可以形成预测块。在帧内预测的情况下,预测块的全部或一部分可以由先前已经编码和重构的当前帧中的样本形成。在帧间预测的情况下,预测块的全部或部分可以由使用运动矢量确定的一个或多个先前构建的参考帧中的样本形成。
[0066] 接下来,仍然参考图4,可以在帧内/帧间预测级402处从当前块中减去预测块以产生残差块(也称为残差)。变换级404使用基于块的变换,将残差变换为例如频域中的变换系数。这种基于块的变换包括例如离散余弦变换(DCT)和非对称离散正弦变换(ADST)。其他基于块的变换也是可能的。此外,可以对单个残差应用不同变换的组合。在应用变换的一个示例中,DCT将残差块变换到频域中,在该频域中变换系数值基于空间频率。最低频率(DC)系数处于矩阵的左上角并且最高频率系数处于矩阵的右下角。值得注意的是,预测块的大小以及由此产生的残差块可以与变换块的大小不同。例如,预测块可以被分成应用了单独变换的较小块。
[0067] 量化级406使用量化器值或量化水平,将变换系数转换为离散量子值,其被称为量化变换系数。例如,变换系数可以除以量化器值并舍位。然后,由熵编码级408对量化的变换系数进行熵编码。可以使用任何多种技术,包括令牌和二进制树来执行熵编译。然后,将熵编码系数与用于解码块的其他信息包括例如所使用的预测的类型、变换类型、运动矢量和量化器值一起输出到压缩比特流420。可以将用于解码块的信息熵编译成压缩比特流420内的块、帧、片和/或段头。压缩比特流420也可以被称为编码视频流或编码视频比特流,并且这些术语在本文中可互换使用。
[0068] 图4中的重构路径(由虚连接线所示)可以被用来确保编码器400和解码器500(下文所述)使用相同的参考帧和块来解码压缩比特流420。重构路径执行类似于在下文更详细所述的、解码过程期间发生的功能的功能,包括在去量化级410对量化的变换系数进行去量化,并且在逆变换级412对去量化变换系数进行逆变换以产生衍生残差块(也称为衍生残差)。在重构级414,可以将在帧内/帧间预测级402预测的预测块添加到衍生残差以创建重构块。环路滤波级416可以被应用于重构块以减少诸如成块伪像的失真。
[0069] 编码器400的其他变体可以被用来编码压缩比特流420。例如,基于非变换的编码器400可以直接量化残差信号而无需针对某些块或帧的变换级404。在另一实施方式中,编码器400可以将量化级406和去量化级410组合成单个级。
[0070] 图5是根据本公开的实施方式的解码器500的框图。解码器500可以在接收站106中实现,例如,通过提供存储在存储器204中的计算机软件程序。计算机软件程序可以包括机器指令,当由诸如CPU 202的处理器执行时,使得接收站106以下文图10中描述的方式解码视频数据。解码器500还可以以包括在例如传送站102或接收站106中的硬件来实现。
[0071] 类似于上文讨论的编码器400的重构路径,解码器500在一个示例中包括下述级以执行各种功能来从压缩比特流420产生输出视频流516:熵解码级502、去量化级504、逆变换级506、帧内/帧间预测级508、重构级510、环路滤波级512和去块滤波级514。解码器500的其他结构变体可以被用来解码压缩比特流420。
[0072] 当呈现压缩比特流420以解码时,压缩比特流420内的数据元可以由熵解码级502解码以产生量化变换系数的集合。去量化级504对量化的变换系数进行去量化(例如,通过将量化的变换系数乘以量化器值),并且逆变换级506使用所选择的变换类型对去量化的变换系数进行逆变换以产生衍生残差,该衍生残差可以与在编码器400中由逆变换级412创建的衍生残差相同。使用从压缩比特流420解码的报头信息,解码器500可以使用帧内/帧间预测级508来创建与例如在帧内/帧间预测级402处在编码器400中创建的相同的预测块。在重构级510,可以将预测块添加到衍生残差以创建重构块。环路滤波级512可以被应用于重构块以减少成块伪像。可以将其他滤波应用于重构块。在示例中,如下所述,去块滤波级514被应用于重构块以减少成块失真,并且结果被输出为输出视频流516。输出视频流516也可以被称为解码视频流,并且术语在本文中可互换使用。
[0073] 解码器500的其他变体可以被用于解码压缩比特流420。例如,解码器500可以在没有去块滤波级514的情况下产生输出视频流516。在解码器500的一些实施方式中,在环路滤波级512之前应用去块滤波级514。附加地或替选地,除了环路滤波级416之外,编码器400包括去块滤波级。
[0074] 图6是根据本公开的实施方式的用于在编码器处恢复劣化帧的过程600的流程图。过程600可以在诸如编码器400的编码器中实现,并且可以实现为例如可以由诸如传送站
102的计算设备执行的软件程序。软件程序可以包括机器可读指令,该指令可以被存储在诸如存储器204或辅助存储214的存储器中,并且可以由诸如CPU 202的处理器执行,以使计算设备执行过程600。在至少一些实施方式中,可以由编码器400的环路滤波级416全部或部分地执行过程600。
[0075] 可以使用专用硬件或固件来实现过程600。一些计算设备可以具有多个存储器、多个处理器或两者。可以使用不同的处理器、存储器或两者来分布过程600的步骤或操作。使用以单数形式的术语“处理器”或“存储器”涵盖具有一个处理器或一个存储器的计算设备以及具有可以用在执行一些或所有所述步骤中的多个处理器或多个存储器的设备。
[0076] 过程600首先接收源帧的劣化图块。劣化图块可以是例如来自编码器的重构环路的重构帧的全部或一部分。在本文中,重构帧被称为劣化帧,以便将其与滤波之后的最终重构帧区分开。最终重构帧在本文中称为恢复帧。例如,可以在编码器400的环路滤波级416处,从重构级414接收劣化帧的全部或一部分。可以在处理600发生之前对劣化帧进行去块。
[0077] 在示例中,过程600可以接收整个劣化帧并且将帧划分为一个或多个劣化图块。也就是说,过程600可以将劣化帧划分为一个或多个图块。替选地,过程600可以接收在编码器或解码器的前一级划分的劣化图块。也就是说,过程600可以处理过程600接收的帧的任何单元(无论是图块还是帧本身)。
[0078] 可以基于劣化帧的统计特性的定位与要在编码比特流中使用的比特数之间的折衷来选择每个图块的大小。例如,如果选择较小的图块大小,则可以实现更好的定位;然而,可以使用更高比特数来编码劣化帧。替选地,可以独立于帧的统计特性来选择图块大小,诸如通过参考劣化帧大小。例如,如果帧大小大于256x256像素,则图块大小可以设置为256x256像素;否则,图块大小设置为120x120像素。可以基于超过阈值的帧大小来选择图块大小。可以将图块大小设置为帧的大小,使得帧仅包括一个图块。选择图块大小的其他方式可以与本公开的实施方式一起使用。
[0079] 在602处,为劣化图块生成引导图块(即,第一引导图块)。可以使用一个以上的引导图块来恢复劣化图块。引导图块可以被称为劣化图块的廉价恢复版本,因为期望使用具有相对低复杂度的计算来生成引导图块。例如,可以通过使用相邻像素值,对相应位置处的原始像素值进行滤波或平滑来为引导图块内的像素位置生成引导图块。原始像素值是指源帧的共位像素的像素值。可以使用恢复参数(即,第一恢复参数)生成引导图块。当使用多个引导图块进行恢复时,可以对相同技术中的滤波或平滑使用不同的参数来生成它们。例如,可以使用第一恢复参数生成第一引导图块,并且可以使用第二恢复参数生成第二引导图块。不太希望但仍然可能的是,过程600可以使用不同的技术来生成用于劣化图块的引导图块。
[0080] 在本文的示例中,可以使用Kaiming He、Jian Sun和Xiaoou Tang,Guided image filtering,Computer Vision-ECCV 2010,Springer Berlin Heidelberg 2010,pp.1-14中描述的技术生成引导图块,其通过引用将其全部内容并入本文。
[0081] 图7是根据本公开的实施方式的用于生成劣化图块的引导图块的过程700的流程图。可以在过程600的602处使用过程700来生成用于劣化图块的引导图块。可以针对劣化图块的像素执行过程700。在示例中,可以针对劣化图块的每个像素执行过程700。过程700的输入可以包括恢复参数半径r和噪声e,它们是正值并且在下文进一步描述。替选地,过程700可以选择半径和噪声值。在示例中,可以从码本(即,半径和噪声值的码本)中选择半径和噪声值。
[0082] 在702处,确定具有围绕像素的半径r的像素窗口中的均值μ(即,像素均值)和方差2
σ(即,像素方差)。围绕像素的半径为r的像素的窗口(即,第一窗口)是以像素为中心并且包括该像素的(2r+1)(2r+1)窗口中的像素值的集合。例如,如果半径r=1,则窗口是以像素为中心的3×3像素集;如果半径r=2,则窗口是以像素为中心的5×5像素集。对于图块边缘上的像素使得像素周围的窗口将包括来自图块外部的像素,可以调整均值μ和方差σ2确定,使得在确定均值μ和方差σ2中仅包括在图块内的像素值。现在参考图8以图示。
[0083] 图8是根据本发明的实施方式的3×3像素窗口的图示。线802是图块800的边缘。对于半径r=1,当计算像素804的均值μ和方差σ2时,仅考虑值a-f。另一方面,当像素806的3×3窗口的像素h-p均在图块800内时,则所有h-p像素值被用在计算像素806的均值μ和方差σ2中。在实施方式中,可以使用箱式滤波来计算均值μ和方差σ2,箱式滤波是用于计算任意大小的窗口中的像素的均值和方差的技术。
[0084] 在704处,确定像素的基线值f。使用像素方差和噪声值确定基线值。基线值f使用等式(1)计算:
[0085] f=σ2/(σ2+e)   (1)
[0086] 可以看出,基线值f是小于1的值。当方差σ2大时,基线值f接近1。即,当在像素周围2
的窗口中方差σ高时,则基线值f接近1。高方差可以指示在像素处或附近存在边缘。另一方面,如果方差σ2很小,则基线值f接近0。噪声值e可以被用作阈值:噪声值e可以确定基线值f衰减或增加的速度。
[0087] 在706处,确定像素的平滑值g。可以使用像素均值μ和基线值f来确定平滑值g。平滑值g可以使用等式(2)计算:
[0088] g=(1-f)μ   (2)
[0089] 可以看出,当方差σ2较大且基线值f接近1时,平滑值g接近0。当方差σ2较小且基线值f接近0时,平滑值g接近均值μ。在下文中,参考710,示出平滑值g的影响。
[0090] 在708处,确定像素的平均基线值fav和平均平滑值gav。也就是说,在708处,使用围绕像素位置的第二窗口中的第一劣化图块的像素值来计算各种基线值f和平滑值g的平均值,分别被称为平均基线值fav和平均平滑值gav。可以基于由用于计算像素的基线值f和平滑值g的相同大小窗口(即,(2r+1)(2r+1)窗口)所包含的像素值的线值f和平滑值g来计算平均基线值fav和平均平滑值gav。也就是说,第一窗口可以具有与第二窗口相同的大小。然而,当使用3×3窗口计算像素的平均基线值fav和平均平滑值gav时,可以获得更好的结果,与702中使用的半径r的值无关。
[0091] 为了在计算平均基线值fav和平均平滑值gav时消除除法运算,可以使用fav和gav的计算中使用的窗口(例如,(2r+1)(2r+1)窗口或3x3窗口,视情况而定)中的值的加权和来近似平均基线值fav和平均平滑值gav。通常,例如,对于当前像素位置的值,加权可以是最高的,并且当它们从当前像素位置远离延伸时,对于像素位置可以减小加权。
[0092] 图9A和9B是根据本公开的实施方式的分配给3×3窗口的位置的权重900和950的示例的图示。图9A示出了分配给3×3窗口的权重900的图示。在该示例中,四个角值分别被赋予权重3,而窗口的其他五个值分别被赋予权重4。因此,权重900的总数是32(等于3*4+4*5),相当于25。假设考虑以806为中心的窗口,则平均基线值fav(以及类似的平均平滑值gav)可以被计算为(3h+4i+3j+4k+4l+4m+3n+4o+3p)>>5(其中,>>是右移位运算符)。
[0093] 图9B示出了分配给3×3窗口的权重950的另一图示。权重20被分配给中心位置,权重11被分配给3×3窗口的每个角,而权重16被分配给其他位置。权重950的总和是128(等于27);因此,7的右移位操作可以应用于加权和。
[0094] 回到图7,在710,确定用于引导图块中的当前像素位置的引导像素值z。可以使用公式(3)来计算引导像素值z,其中,x是共位的像素值(即,处于与当前像素的位置相共位处的劣化图块中的像素的值):
[0095] z=x·fav+gav   (3)
[0096] 接近均值μ的平滑值g表示引导像素值z将接近均值μ。这样,如果平滑值g接近均值μ,并且基线值f接近0,则劣化像素值x被加权得更少并且引导像素值z更接近于围绕当前像素位置的像素窗口的平均平滑值gav。也就是说,平滑效果被应用于劣化像素x。另一方面,当基线值f接近1时,表示接近边缘的像素,则平滑值g小。这样,对劣化像素值x应用较少的平滑和滤波,并且引导像素值z从劣化像素值x接收其大部分值,并且从其周围像素的值接收较少的值。平均平滑值gav可以被认为是边缘相关值。在实施方式中,x可以是源图块中处于与当前像素的位置相共位处的像素的值。在这样的实施方式中,x将被称为原始像素值x,并且本文公开的所有其他方面可以保持不变。
[0097] 返回到图6的过程600,在604处,确定用于关联图块差异的投影操作,也被称为子空间投影的投影参数。例如,投影操作可以将源帧的源图块和劣化图块之间的差异投影到由引导图块和劣化图块之间的差异产生的子空间中。出于本文的说明的目的,参考两个引导图块,引导图块Y1和引导图块Y2来描述604处的处理。例如,可以如上所述在过程700中使用半径r1和噪声e1作为恢复参数来生成引导图块Y1,并且可以如上所述在过程700中使用半径r2和噪声r2生成引导图块Y2。这样,投影操作将源帧的源图块和第一劣化图块之间的差异与第一引导图块和第一劣化图块之间的差异关联并且将源帧的源图块和第一劣化图块之间的差异与第二引导图块和第一劣化图块之间的差异相关联(例如,近似)。然而,可以使用一个、两个或更多个引导图块Yn。使用投影参数,投影操作可以被用来生成重构图块YR。
[0098] 可以使用等式(4)执行投影操作:
[0099] YR=Y+α(Y1-Y)+β(Y2-Y),   (4)
[0100] 其中,α和β是投影参数。
[0101] 从两侧减去劣化图块Y的值表示向量(YR-Y)是向量(Y1-Y)和(Y2-Y)的线性组合。这样,投影操作包括各个差项,其中,每个差项使用相应的引导图块(在等式(4)中,这些是引导图块Y1和引导图块Y2),并且投影参数包括用于每个相应的差项的相应的不同投影参数(在等式(4)中,第一投影参数α对应于差项(Y1-Y)以及第二投影参数β对应于差项(Y2-Y))。期望地,重构图块YR具有与源图块YS的共位像素的像素值相等或相对接近的像素值。即使当每个向量(Y1-Y)和(Y2-Y)分别可能不接近源图块YS时,由向量(Y1-Y)和(Y2-Y)生成的子空间在最近点处,可以实际上比它们中的任何一个单独地更接近。对等式(4)求解投影参数α和β得到下述等式(5):
[0102] {α,β}T=(ATA)-1ATb   (5)
[0103] 在等式(5)中,A={(Y1-Y),(Y2-Y)}和b=Ys-Y。在该示例中,假设Y1、Y2、Y和YS中的每一个是包括来自相应图块的像素的列向量。
[0104] 可以针对用于恢复参数的半径r和噪声e的不同值(或值的组合)重复604处的处理,以确定哪个值组合产生重构图块YR和源图块YS之间的最小误差。最小误差可以是各个图块的像素值之间的均方误差。最小误差可以是各个图块的像素值之间的绝对差值误差之和。可以使用任何其他合适的最小误差度量。可以从码本中选择要在604处使用的恢复参数的不同值。例如,码本可以是半径和噪声值的组合的码本{r1,r2,e1,e2}。可以凭经验推导出码本。
[0105] 在606处,在比特流中编码在604处确定的恢复参数和投影参数。在上文的示例中,恢复参数是r1、r2、e1和e2。可以将恢复参数编码到比特流中,以便在比特流中传送到解码器,诸如图5的解码器500。替选地,在使用码本的情况下,所选择的码本条目{r1,r2,e1,e2}可以通过表示所选择的码本条目的索引被编码到比特流中。这样,编码第一恢复参数可以是指编码码本索引。同样具有码本的解码器可以使用索引来识别恢复参数。例如,如果码本包含8个条目,则可能需要3个比特来编码所选择的索引条目。在解码器不知道码本的情况下,可以使用编码至少一些所选恢复参数的其他手段。
[0106] 在比特流中还传送在604处,对应于所选择的投影参数的投影参数α和β。由于投影参数α和β可以是双精度值,所以在它们被包括在比特流中之前发生值的量化。分配给投影参数α和β的量化方案可以取决于可用在用于投影参数α和β的编码比特流中的比特数。当投影参数需要高精度时,例如,可以使用七个比特来传送α和β中的每一个。
[0107] 当过程600全部或部分地由编码器400的环路滤波级416执行时,(在多个图块用于劣化图像的情况下)由重构图块形成的重构图像可用于预测后续帧。
[0108] 当劣化帧由多个劣化图块形成时,可以基于不同的恢复类型来恢复多个劣化图块的每个劣化图块。例如,上述的滤波和子空间投影还可以被称为自引导滤波器恢复类型。其他可能的恢复类型可以基于维纳滤波器或双边滤波器。当多个恢复类型可用时,当前图块的恢复类型也可以在610处被编码到比特流中。
[0109] 可以将参数以及可选地恢复类型编码到帧头、片头、段头、块头或这些头的组合中。也可以在比特流内传送在重构过程中使用的图块的标识。替选地,可以在比特流内传送用于划分的参数,使得诸如解码器500的解码器可以在解码过程期间重新创建图块。
[0110] 解码器使用恢复和投影参数(以及恢复类型,当可用时),以获得参考图10所述的重构图块。
[0111] 图10是根据本公开的实施方式的用于在解码器处恢复劣化帧的过程1000的流程图。过程1000可以由诸如解码器500的解码器执行。例如,过程1000可以全部或部分地由解码器500的环路滤波器级512执行。可以通过在存储器诸如接收站106的存储器204中存储将由处理器诸如CPU 202执行的指令,执行过程1000的实施方式。
[0112] 可以使用专用硬件或固件来实现过程1000。一些计算设备可以具有多个存储器、多个处理器或两者。可以使用不同的处理器、存储器或两者来分布过程1000的步骤或操作。为了简化说明,过程1000被图示和描述为一系列步骤或操作。然而,根据本公开的教导可以以各种顺序和/或同时发生。另外,根据本公开的步骤可以与本文未呈现和描述的其他步骤一起发生。此外,并非所有示出的步骤或操作都可以被用来实现根据所公开的主题的方法。
[0113] 在解码器生成源帧的劣化图块之后,过程1000全部或部分地发生。劣化图块可以是例如来自解码器的重构环路的重构帧的全部或一部分。同样,该帧被称为劣化帧,以便将其与滤波后的最终重构帧区分开。例如,可以在解码器500的去块滤波级514处从重构级510接收劣化帧的全部或一部分。解码器500可以被布置为使得去块滤波器级514在环路滤波器级512之前。替选地,另一滤波器级可以位于去块滤波器级514之后。来自重构级510的劣化帧可以在过程1000发生之前被去块。
[0114] 在1002处,从编码比特流确定投影参数。例如,在投影操作中将使用两个引导图块的情况下,过程1000可以从编码比特流解码第一投影参数(例如,投影参数α)和第二投影参数(例如,投影参数β)。可以通过从编码器插入它们的头部解码它们来确定投影参数。诸如投影参数的参数被插入到头部中,如上参考图6所述。
[0115] 在1004处,从接收的编码比特流确定恢复参数。例如,在投影操作中将使用两个引导图块的情况下,过程1000可以确定第一恢复参数(例如,半径r1和噪声e1)和第二恢复参数(例如,半径r2和噪声e2)。在将恢复参数编码到比特流中的示例中,可以通过从编码器插入它们的头部解码它们来确定它们。在使用码本来产生并且索引以包含在比特流中的示例中,索引从编码器插入的头部解码。解码的索引可以被用来确定对应于由索引标识的条目的恢复参数。
[0116] 在1006处,生成用于当前劣化图块的引导图块。例如,在投影操作中使用两个引导图块的情况下,使用第一恢复参数生成用于劣化图块的第一引导图块,并且使用第二恢复参数生成用于劣化图块的第二引导图块。可以根据图7的过程700,使用当前劣化图块,生成第一引导图块和第二引导图块。
[0117] 在1008处,执行投影操作以生成劣化图块的重构图块。在投影操作中使用两个引导图块的情况下,使用第一引导图块、第二引导图块、第一恢复参数和第二恢复参数来执行投影操作。例如,可以使用等式(4)来执行投影操作。投影操作包括使用第一恢复参数,将源帧的源图块和劣化图块之间的差异与第一引导图块和劣化图块之间的差异相关联的第一项,以及使用第二恢复参数,将源帧的源图块和劣化图块之间的差异与第二引导图块和劣化图块之间的差异关联的第二项。
[0118] 可以根据需要,即如果劣化帧构成多于一个图块,重复图10的过程1000,直到重构帧被完成以包括作为输出视频流的一部分,诸如图5的输出视频流516。
[0119] 如果对帧使用不同的恢复类型,则可以从编码它的头部解码图块的恢复类型。如果恢复类型是自引导滤波器恢复类型,则发生过程1000。如果使用另一种恢复类型,则可以在重构过程中使用适当的滤波器(例如,维纳滤波器或双边滤波器)。
[0120] 上文所述的编码和解码的方面示出一些编码和解码技术。然而,应当理解到,作为权利要求中使用的那些术语的编码和解码可以是指数据的压缩、解压缩、变换或任何其它处理或变化。
[0121] 词语“示例”或“实施方式”在本文中用于表示用作示例、实例或说明。在本文中被描述为“示例”或“实施方式”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。相反,使用词语“示例”或“实施方式”旨在以具体的方式呈现概念。如本申请中所使用的,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有规定或从上下文中清楚,“X包括A或B”旨在表示任何自然的包括性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,则在任何前述情况下满足“X包括A或B”。此外,除非另有说明或从上下文中清楚地指示单数形式,否则本申请和所附权利要求中使用的冠词“a(一)”和“an(一)”通常应被解释为意指“一个或多个”。此外,贯穿全文使用术语“实施方式”或“一个实施方式”并不旨在表示相同的实施例或实施方式,除非这样描述。
[0122] 传送站102和/或接收站106(以及其上存储的和/或由其执行,包括由编码器400和解码器500执行的算法、方法、指令等等)的实施方式可以以硬件、软件或其任何组合实现。硬件可以包括例如计算机、知识产权(IP)核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其它合适的电路。在权利要求中,术语“处理器”应当被理解为单独地或组合地包括任何前述硬件。术语“信号”和“数据”可互换使用。此外,传送站102和接收站106的部分不一定必须以相同的方式实现。
[0123] 此外,在一个方面中,例如,传送站102或接收站106可以使用具有计算机程序的通用计算机或通用处理器来实现,所述计算机程序在被执行时实现本文所述的任何相应的方法、算法和/或指令。附加地或替选地,例如,可以使用可以包含用于执行本文所述的任何方法、算法或指令的其它硬件的专用计算机/处理器。
[0124] 传送站102和接收站106可以例如在视频会议系统中的计算机上实现。替选地,传送站102可以在服务器上实现,并且接收站106可以在与服务器分离的设备诸如手持通信设备上实现。在这种情况下,传送站102可以使用编码器400将内容编码为编码视频信号,并将编码视频信号传送到通信设备。继而,通信设备然后可以使用解码器500对编码的视频信号进行解码。替选地,通信设备可以解码在通信设备上本地存储的内容,例如未由传送站102传送的内容。其它传送站102和接收站106实施方案是可用的。例如,接收站106可以是通常固定的个人计算机而不是便携式通信设备,和/或包括编码器400的设备还可以包括解码器500。
[0125] 此外,本公开的实施方式的全部或一部分可以采用可从例如有形计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如有形地包含、存储、传达或输送由任何处理器使用或与任何处理器结合使用的程序的任何设备。介质可以是例如电子、磁性、光学、电磁或半导体器件。也可使用其它合适的介质。
[0126] 已经描述了上述实施例、实施方式和方面以便于容易理解本公开,并且不限制本公开。相反,本公开旨在覆盖包括在所附权利要求的范围内的各种修改和等同布置,其范围符合最宽泛的解释,以包括法律允许的所有这样的修改和等同结构。