具体实施方式
为了在限制带宽消耗的同时允许数字视频流的传输,视频编码和解码实施方式并入各种压缩方案。这些压缩方案通常将图像打碎成块,并且使用一种或多种技术限制在产生的用于传输的数字视频比特流中包括的信息量。一旦被接收,比特流然后被解码以从有限的信息重新创建块和源图像。
根据一个示例,由于变换域中的能量紧凑系数分布,基于块的变换域量化和编码可用于压缩。这种紧凑基于如下假定:空间域中的数据大多是缓慢改变的DC值。然而,这可能不是真实的,尤其是在运动预测或帧内方向预测之后,下面更加详细地讨论。空间精细细节、小物体和/或孤立特征的频谱会散布到频谱的宽区域中。由于量化,这些精细特征会被严重扭曲或甚至破坏。因而变换到频域中的数据块可能不是用于表示和编码的最佳形式。作为代替,空间域常常可以适合于小且孤立的物体以及精细特征的表示和编码。
本文中的教导可以组合数据块的变换域和空间域表示,以提供改善的压缩编码。例如,输入块可以被重新形成为两个分离块:一个块主要包含低频分量并且一个块包含高频分量。高频分量可以由超过块的平均值预定量的尖峰或孤立像素来表示。孤立像素在块中可以由平均值来替换。可以从原始块中减去这种重新形成的块,以形成差值块。重新形成的块可以使用第一编码技术进行编码,而差值块可以使用第二编码技术进行编码。然后两个经编码的块都被输入比特流。
对以这种方式编码的编码视频比特流进行解码可以通过反转编码过程的一些步骤来执行。通过用设置在帧、片段或块报头中的比特修改比特流语法,可以向解码器指示两步编码,如下面另外详细描述的。当接收到使用两步过程编码的视频流的块时,解码器使用适于每个块的解码处理对块进行解码。然后块可以被加在一起以形成原始块的表示。
下面描述这些实施方式的附加细节,首先参照它们可以被并入在其中的系统。
图1是视频编码和解码系统10的示意图。示例性发射站12可以是例如具有包括诸如中央处理单元(CPU)14之类的处理器和存储器16的硬件的内部配置的计算机。CPU 14是用于控制发射站12的操作的控制器。CPU 14可以通过例如存储器总线与存储器16连接。存储器16可以是只读存储器(ROM)、随机存取存储器(RAM)或者任何其它适合的存储器设备。存储器16可以存储由CPU 14使用的数据和程序指令。发射站12的其它适合的实施方式是可能的。例如,发射站12的处理可以分布在多个设备之中。
网络28连接发射站12和接收站30,以用于视频流的编码和解码。具体地,视频流可以在发射站12中被编码,并且编码视频流可以在接收站30中被解码。网络28可以是例如因特网。网络28还可以是局域网(LAN)、广域网(WAN)、虚拟私人网络(VPN)、蜂窝电话网络、或者从发射站12向这个示例中的接收站30传递视频流的任何其它装置。
在一个示例中,接收站30可以是具有包括诸如CPU 32之类的处理器和存储器34的硬件的内容配置的计算机。CPU 32是用于控制接收站30的操作的控制器。CPU 32可以通过例如存储器总线与存储器34连接。存储器34可以是ROM、RAM或任何其它适合的存储器设备。存储器34可以存储由CPU 32使用的数据和程序指令。接收站30的其它适合的实施方式是可能的。例如,接收站30的处理可以分布在多个设备之中。
被配置为显示视频流的显示器36可以连接到接收站30。显示器36可以以各种方式来实现,包括通过液晶显示器(LCD)或阴极射线管(CRT)或诸如OLED显示器之类的发光二极管显示器(LED)来实现。显示器36连接到CPU 32,并且可以被配置为显示由接收站30中的解码器解码的视频流的渲染38。
编码器和解码器系统10的其它实施方式是可能的。在所描述的实施方式中,例如,编码器处于发射站12中并且解码器处于接收站30中,作为存储器中的指令或者与存储器分离的部件。然而,编码器或解码器可以连接到相应站12、30,而不是处于其中。进一步地,一个实施方式可以省略网络28和/或显示器36。在另一实施方式中,视频流可以被编码并且然后被存储,以用于在以后的时间向接收站30或具有存储器的任何其它设备的传输。在一个实施方式中,视频流由接收站30(例如,经由网络28、计算机总线、和/或某个通信路径)接收并且被存储,以用于以后的解码。在另一实施方式中,附加部件可以被添加到编码器和解码器系统10。例如,显示器或摄像机可以附接至发射站12,以捕获待编码的视频流。在示例性实施方式中,实时传送协议(RTP)用于传输。在另一实施方式中,可以使用除RTP外的传送协议,例如基于HTTP的视频流协议。
图2是待编码和解码的典型视频流50的图。视频流50包括视频序列52。在下一级处,视频序列52包括若干相邻帧54。虽然图示了三个帧作为相邻帧54,但是视频序列52可以包括任何数量的相邻帧。然后相邻帧54可以进一步细分成个体帧,例如单个帧56。在下一级处,单个帧56可以分成一系列块58,一系列块58可以包含与例如帧56中的16x16像素对应的数据。每个块可以包含对应像素的亮度和色度数据。块58还可以具有诸如16x8像素组或8x16像素组之类的任何其它适合的大小,并且根据应用可以进一步细分成更小的块。除非另有说明,术语块和宏块在本文中可互换使用。
图3是依照一个实施方式的编码器70的框图。如上面描述的,编码器70可以诸如例如通过提供存储在存储器16中的计算机软件程序而被实现在发射站12中。计算机软件程序可以包括机器指令,该机器指令在由CPU 14执行时,使得发射站12以图3中描述的方式对视频数据进行编码。编码器70还可以实现为例如在发射站12中包括的专用硬件。编码器70对输入视频流50进行编码。编码器70具有以下阶段以执行正向路径(由实连接线示出的)中的各种功能,以产生编码或压缩比特流88:内/间预测阶段72、变换阶段74、量化阶段76和熵编码阶段78。编码器70还可以包括重构路径(由虚连接线示出的),以重构用于未来块的预测和编码的帧。在图3中,编码器70具有以下阶段以执行重构路径中的各种功能:解量化阶段80、逆变换阶段82、重构阶段84和回路滤波阶段86。编码器70的其它结构变化可以用于对视频流50进行编码。如本文中使用的,术语压缩比特流与术语编码视频流同义,并且术语将可互换使用。
在给出视频流50用于编码时,视频流50内的每个帧56以块为单位来处理。在内/间预测阶段72处,可以使用帧内预测(还称为内预测)或帧间预测(还称为间预测)对每个块进行编码。在任一情况下,可以形成预测块。在内预测的情况下,预测块可以从当前帧中的样本形成,该样本已被先前编码和重构并且被组合和/或重新产生以形成预测块。在间预测的情况下,预测块可以从一个或多个先前构造的参考帧中的样本形成,并且关联于向覆盖待编码的当前块的位置移动预测块的运动矢量。
接下来,仍然参照图3,在内/间预测阶段72处可以从当前块减去预测块,以产生残差块(还称为残差)。变换阶段74将残差变换成例如频域中的变换系数。基于块的变换的示例包括Karhunen-Loève变换(KLT)、离散余弦变换(DCT)、Walsh-Hadamard变换(WHT)、奇异值分解变换(SVD)和不对称离散正弦变换(ADST)。在一个示例中,DCT将块变换到频域中。在DCT的情况下,变换系数值基于空间频率,其中最低频率(DC)系数在矩阵的左上角并且最高频率系数在矩阵的右下角。变换阶段74还可以执行其中不改变输入数据的空变换,或者执行脉码调制,脉码调制不将数据变换成变换系数,但是可以通过使像素按照秩顺序重新排序并且减去连续像素以便降低将在压缩比特流中包括的比特数量来对输入残差块进行编码。
量化阶段76将变换系数转换成离散的量子值,该量子值称为量化变换系数。然后量化变换系数由熵编码阶段78进行熵编码。熵编码系数与诸如所使用的预测类型、用于间预测的运动矢量和量化因子值之类的用于解码块的其它信息一起然后被输出到压缩比特流88。压缩比特流88可使用诸如可变长度编码(VLC)和算术编码之类的各种技术进行格式化。
图3中的重构路径(由虚连接线示出的)可以用于确保编码器70和解码器100(下面描述)二者都使用相同参考帧来解码压缩比特流88。重构路径执行与在下面更详细讨论的解码过程期间发生的功能相似的功能,从而包括在解量化阶段80处使量化变换系数解量化并且在逆变换阶段82逆变换解量化变换系数以产生导出残差块(还称为导出残差)。在重构阶段84处,在内/间预测阶段72处可以使预测的预测块与导出残差加起来,以创建重构块。回路滤波阶段86可被应用于重构块,以降低诸如块效应之类的失真。
编码器70的其它变化可以用于编码压缩比特流88。例如,非基于变换的编码器70可以在没有变换阶段74的情况下直接量化残差信号。在另一实施方式中,编码器70可以具有组合成单个阶段的量化阶段76和解量化阶段80。
图4是依照本公开的另一实施方式的解码器100的框图。解码器100可以通过例如提供存储在存储器34中的计算机软件程序而实现在接收站30中。计算机软件程序可以包括机器指令,机器指令在由CPU 32执行时,使得接收站30以图4中描述的方式对视频数据进行解码。解码器100还可以实现为例如在发射站12或接收站30中包括的专用硬件。类似于上面讨论的编码器70的重构路径,在一个示例中解码器100包括以下阶段以执行各种功能,以从压缩比特流88产生输出视频流116:熵解码阶段102、解量化阶段104、逆变换阶段106、内/间预测阶段108、重构阶段110、回路滤波阶段112和解块滤波阶段114。解码器100的其它结构变化可以用于解码压缩比特流88。
在给出压缩比特流88用于解码时,压缩比特流88内的数据元素可以由熵解码阶段102进行解码,以产生量化变换系数集。解量化阶段104使量化变换系数解量化,并且逆变换阶段106逆变换解量化变换系数,以产生可以与由编码器70中的重构阶段84创建的导出残差完全相同的导出残差。通过使用从压缩比特流88解码的报头信息,解码器100可以使用内/间预测阶段108创建与编码器70中创建的预测块相同的预测块。在重构阶段110处,可以使预测块与导出残差加起来以创建重构块。回路滤波阶段112可被应用于重构块以降低块效应。解块滤波阶段114可被应用于重构块以降低块失真,并且结果作为输出视频流116被输出。
解码器100的其它变化可以用于解码压缩比特流88。例如,解码器100可以在没有解块滤波阶段114的情况下产生输出视频流116。
图5是根据实施方式的用于使用两步过程对视频流进行编码的过程500的流程图。为了解释简单起见,过程500被描绘和描述为一系列步骤。然而,依照本公开的步骤可以按照各种顺序和/或同时发生。例如,虽然在图5中,在步骤516处在比特流中包括第二块之前在步骤508处在比特流中包括第一块,但是应该理解的是,可以按照其它顺序在比特流中包括块,并且保持在本公开的范围内。另外,依照本公开的步骤可以在具有本文中未给出和描述的其它步骤的情况下发生。此外,并非所有图示的步骤可以被要求以实现依照所公开的主题的方法。
过程500可以由诸如发射站12之类的计算设备实现为软件程序。例如,软件程序可以包括存储在存储器16中的机器可读指令,机器可读指令在由诸如CPU 14之类的处理器执行时,可以使得计算设备对存储在存储器14中的数据进行操作并且执行过程500。过程500还可以使用硬件来实现。如上面解释的,一些计算设备可以具有多个存储器和多个处理器,并且在这样的情况下过程500的步骤可以通过使用不同的处理器和存储器而是分布式的。本文中使用单数的术语“处理器”和“存储器”包含在执行一些但不一定所有记载的步骤中可以使用的仅具有一个处理器或一个存储器的计算设备以及具有多个处理器和存储器的设备。
在步骤502处,标识待编码的视频流的块。如本公开中使用的,“标识”意指选择、构造、确定、指定或以无论任何方式另外标识。可以按照光栅扫描顺序或任何其它顺序来标识或选择视频流的帧或片段的块。在步骤504处,通过从数据块提取特殊特征和值并且用可以使变换域系数更简单的其它数据值替换这些数据值,从第一块生成第二块。如本文中使用的,术语“生成”可以意指创建、构造、形成、产生或以无论任何方式生成。公开实施方式使用块中非提取的像素的平均值替换提取的像素;然而,可以使用其它算法以替换提取的像素。这还可以被称为数据重新成形,并且还描述为使块重新成形或重新形成。
特殊特征可以包括例如线或纹理,并且可以通过检测空间域中的脉冲(尖峰)或阶跃(边缘)函数来提取。例如,实施方式可以检测不同于块中像素的平均值超过预定范围的孤立像素或像素组。检测特殊特征的其它方式是可能的,从而包括例如检测不同于它们的邻近像素预定量的像素或像素组。这些检测的像素可以从块中移除,并且由例如具有等于其余像素的平均值的值的像素替换。其它值可以用于替换移除的像素,例如基于邻近像素的值的计算。检测特殊特征并且用其它值替换检测的像素生成第二块。这还可以称为特征提取。
在某些实施方式中,用于比较的像素值可以是例如强度或Y'CbCr颜色空间(还称为YUV颜色空间)中的亮度值。在一种这样的实施方式中,在移除和替换像素时,移除像素的亮度值可以由块的其余像素的平均亮度值替换,并且每个移除像素的色度值Cb和Cr可以由块的其余像素的相应平均色度值Cb和Cr替换。这一技术可以在色度子采样(例如,4:2:0Y'CbCr色度子采样)之前或之后来实现,这通常产生每个像素的亮度值Y',但是只有不止一个图像像素的色度值Cb、Cr的一个集。实际的颜色格式不是关键的或者是不受限制的,并且可以是任何颜色格式或颜色空间。可以进行像素值的其它比较,例如诸如通过比较每个值Y'、Cb和Cr与值范围,以检测特殊特征是否可以存在。
在步骤504中生成的第二块可以具有比原始第一块更低的熵。在步骤506处,例如由编码器70使用第一编码技术对第二块进行编码,第一编码技术在这种情况下可以包括DCT变换。如上面描述的,可以使用其它变换。跟随DCT变换之后,经变换的块可被量化,以降低经变换的数据中出现的唯一状态的数量。然后经变换和量化的块数据可以被熵编码。例如,通过从第二块移除特殊特征并且用平均值替换像素,可以降低经编码的块中的比特的数量,从而降低在步骤508处将在经编码的视频比特流中包括的针对第二块的比特的数量。下面给出这一情况的示例。
在步骤510处,在编码器处对第二块的副本进行解码。在这种实施方式中,期望第二块的经解码的版本而不是原始第二块被用于进一步的处理。这是由于如下事实:变换和量化原始数据的过程是有损的,从而意指经解码的第二块数据可能不等于原始第二块的数据。解码器将使用第二块的经解码的版本,因此在以下步骤中使用第二块的经解码的版本以生成第三块可以保持经编码的块的准确性而无漂移。
在步骤512处,可以从原始第一块减去经解码的第二块,以产生表示在第二和第一块之间的残值或差值的第三块。下面给出这种减法的示例。在其它实施方式中,原始第二块可用于步骤512处的减法。在步骤514处,对第三或残值块进行编码。由于第三或残值块包含孤立像素,诸如脉码调制(PCM)之类的空间域变换或者完全没有变换可以导致跟随量化和熵编码之后将在比特流中包括很少的比特。在步骤516处,在经编码的视频比特流中包括第三块。
通过在图片层、区段/片段层、宏块层或块层(其中块小于宏块)中指定若干量化和编码模式之一,这种过程可以实现成比特流语法。一种模式可以指示只有变换域量化和编码,第二模式可以指示只有空间域量化和编码,以及第三模式可以指示跟随变换域量化和编码之后有空间域量化和编码。例如,模式将由报头中的比特表示。
图6是用于对根据图5编码的块进行解码的过程600的流程图。为了解释简单起见,过程600被描绘和描述为一系列步骤。然而,依照本公开的步骤可以按照各种顺序和/或同时发生。例如,虽然在图6中,在步骤606处对第二块进行解码之前在步骤604处对第一块进行解码,但是应该理解的是,可以按照其它顺序在比特流中包括块,并且保持在本公开的范围内。例如,可以在解码第一块之前或者与解码第一块同时地对第二块进行解码。另外,依照本公开的步骤可以在具有本文中未给出和描述的其它步骤的情况下发生。此外,并非所有图示的步骤可以被要求以实现依照所公开的主题的方法。
过程600可以由诸如接收站30之类的计算设备实现为软件程序。例如,软件程序可以包括存储在存储器34中的机器可读指令,机器可读指令在由诸如CPU 32之类的处理器执行时,可以使得计算设备对存储在存储器34中的数据进行操作并且执行过程600。过程600还可以全部或部分使用诸如现场可编程门阵列等之类的硬件部件来实现。如上面解释的,一些计算设备可以具有多个存储器和多个处理器,并且在这样的情况下过程600的步骤可以通过使用不同的处理器和存储器而是分布式的。
在步骤602处,由诸如解码器100之类的解码器接收经编码的视频比特流。可以以任何数量的方式接收经编码的视频比特流,诸如通过网络、通过线缆接收视频数据,或者通过从主存储器或其它存储设备(包括磁盘驱动器或诸如CF卡、SD卡等之类的可移除介质)读取视频数据。在步骤604处,过程600对第一块进行解码。第一块对应于在上面的过程500的步骤506和508中被编码和包括在视频流中的第二块。这一块可以被熵解码和解量化。然后逆变换解量化系数,以将块恢复到空间域。
在步骤606处,对第二块进行解码,该第二块对应于在过程500的步骤514和516中被编码和包括在编码视频流中的第三块。第二块可以被熵解码、解量化并且然后被解码。由于第二块中的数据已经在空间域中,变换数据可能是不必要的。如果第二数据块已被脉码调制,则通过加上连续条目可以反转PCM。在步骤608处,通过在逐个像素的基础上使块加起来,可以组合经解码的第二块和经解码的第一块。以这种方式组合块可以在由编码和解码算法引入的误差限制内在空间域中重新产生原始块。
空间域和变换域中的数据的不同块的表示对于示出不同域中的数据性质和图示上述技术的有用性是有用的。这样的表示通过示例的方式示出在图7至图10中。
图7是示出使用DCT变换将空间域中的像素的8x8块702变换成变换系数的二维矩阵704的图。具有诸如脉冲或阶跃函数之类的空间域中的非常简单的表示的块可以变成DCT变换域中的非常复杂的系数集。图8是使用DCT变换将空间域中的像素的8x8块802变换成变换系数的二维矩阵804的另一示例的图。空间域中的形状是相当简单的,但它变换成变换系数的复杂块。这两个示例说明了如下情况:其中相对简单、紧凑和易于编码的空间域被变换成变换域中的复杂、难以编码的图案。在这种情况下,空间域中的编码可以导致比将由于变换域中的编码所要求的更少的比特被包括在经编码的视频比特流中。
某些情况可以涉及复杂的空间域表示但简单的变换域表示。图9是使用DCT变换将空间域中的像素的8x8块902变换成变换系数的二维矩阵904的图,其中矩阵904进一步被量化。这说明,具有复杂表示的空间域数据块可以在变换域中被高效地表示,其中数据具有低频分量。跟随将经变换的系数矩阵904量化成经量化的变换系数的二维矩阵906之后,可以使经变换的系数矩阵904的简单性更清楚。在这一示例中量化因子或量化级是10,使得通过使经变换的系数除以10并且切断任何小数值来计算经量化的变换系数。在具有许多零分量的情况下,这一矩阵906相对易于编码。
在一些情况下,在空间域或变换域中均不能以简单的方式表示数据的块。图10是使用DCT变换将空间域中的像素的8x8块1002变换成变换系数的二维矩阵1004的另一示例的图,其中矩阵1004进一步被量化。块1002和矩阵1004二者都是复杂的表示。通过使用例如为32的量化因子来量化矩阵1004,以生成经量化的变换系数的二维矩阵1006。矩阵1006是复杂的,并且因此难以编码,即使它已经被严重量化并且在解量化和重构之后很可能导致大量误差。
图11A和图11B是图示图5的过程的图。如上面解释的,空间域中的孤立高值首先用从块的像素值的其余像素值预测的值替换。孤立低值也可以通过这种技术来替换。这被称为使数据块重新成形,因为它形成具有比原始块相对更好的能量分布的数据块或矩阵,使得可以更高效地表示和编码经变换的系数。
图11A示出表示图10的块1002、根据步骤504移除孤立数据点而重新成形的第二块1102。在这一示例中,块1002的平均像素值已经被计算为(mean2x 8)=35,其中mean2是块1002中的像素值的二维平均值。70或更小的值被选择作为预定范围以标识将从块中被移除的像素。在这种情况下,具有大于预定范围的值的像素被标识并且用平均值35替换以形成块1102。在其它情况下,预定范围可以包括最小和最大值,其中具有在范围之外的值的像素被标识并且用另一值替换。通过首先应用DCT变换以形成变换系数的矩阵1104并且然后使用为25的量化因子或量化值将矩阵1104量化成矩阵1106,在步骤506中对块1102进行编码。尽管使用更小的量化值(25对32),在重新成形情况下的块或矩阵1106比在没有重新成形情况下的原来变换的矩阵1006明显更简单。此时在过程中(诸如步骤508中示出的),或者以后在过程中,块1106行进通过任何其余编码步骤(例如熵编码),并且根据已知技术与压缩比特流88相加。
接下来,可以针对块1106执行逆量化(即,解量化)和逆变换。图11B示出块1108,例如块1108是步骤510中的经解码的第二块。更具体地,块1108是通过使用为25的量化值解量化块1106的量化变换系数并且然后针对所得的变换系数执行逆DCT变换而对块1102进行重构的结果。注意,经重构的第二块1108的像素值不完全与第二块1102匹配。如上面提到的,这是由于有损压缩。在步骤512中,从原始块1002逐个像素减去重构块1108,以形成差值块1110,差值块1110对应于第三块。然后通过首先经历使用量化因子(这里通过示例的方式为10)的量化以形成量化系数的矩阵或块1112,在步骤514中对块1110进行编码。块1112在空间域中是紧凑、易于编码的矩阵。根据已知技术,块1112可以被熵编码并且然后被包括在压缩比特流88中。用于对第二块1106和第三块1112进行编码的比特之和少于用于对第一块1002进行编码所要求的比特数量,从而节省了经编码的视频比特流中的比特。
在上面描述的实施方式中,可以在两步过程中对视频流进行编码,该两步过程标识块中的具有选择空间性质的像素,例如具有超过邻近像素的值多于一定量的值的孤立像素。标识的像素在块中用例如设定为块的平均值的像素替换。然后使用有损变换对块进行变换,并且对经变换的块的副本进行逆变换。公开实施方式所使用的变换是可以将块的像素变换到变换域中的可逆变换,其中块的经变换的像素可以被逆变换以重新形成原始像素。有损变换是这样的可逆变换:当变换/逆变换时,产生具有其值接近于但可能不完全匹配原始像素值的像素的块。
从原始块的像素减去块的经逆变换的副本的像素,以形成包含被标识为具有预选空间性质的像素的残值或残差块。可以从原始数据减去经逆变换的块,而不是使用重新成形的块,因为这可以更加密切地反映在对块进行解码时解码器可用的像素值,并且从而产生更准确的结果。
通过量化像素数据以降低用于表示数据的离散状态的数量,可以进一步对残值块和经变换的块进行编码。块可以被熵编码以减少冗余数据,并且然后被包括在经编码的视频比特流中,以用于传输或存储。在这种两步方式下的编码视频数据可以允许两个经编码的块在比特流中由比使用单步过程编码的块更少的比特来表示,从而节省传输带宽或存储空间,同时保持等效的视频质量。
上面描述的编码和解码的实施方式图示一些示例性编码和解码技术。然而,要理解的是,如权利要求中使用的那些术语,编码和解码可以意指压缩、解压缩、变换、或者任何其它的数据处理或改变。
词语“示例”或“示例性”在本文中用于意指用作示例、实例或说明。本文中描述为“示例”或“示例性”的任何方面或设计并不一定要被解释为优于或胜过其它方面或设计。更确切地说,使用词语“示例”或“示例性”旨在于以具体方式给出概念。如本申请中使用的,术语“或”旨在于意指包括性“或”而不是排它性“或”。也就是说,除非另有指定,或从上下文清楚可见,“X包括A或B”旨在于意指任何自然包括性排列。也就是说,如果X包括A;X包括B;或X包括A和B二者,则在任何前述情况下满足“X包括A或B”。此外,如本申请和所附权利要求中使用的冠词“一”和“一个”一般应被解释为意指“一个或多个”,除非另有指定或从上下文清楚可见指向单数形式。而且,贯穿使用术语“实施例”或“一个实施例”或“实施方式”或“一种实施方式”并不旨在于意指相同的实施例或实施方式,除非如此描述。
发射站12和/或接收站30(以及存储在其上和/或由此执行的算法、方法、指令等)的实施方式可以实现在硬件、软件、或它们的任意组合中。例如,硬件可以包括计算机、智能性质(IP)核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微码、微控制器、服务器、微处理器、数字信号处理器或任何其它适合的电路。在权利要求中,术语“处理器”应被理解为单独或组合式地包含任意前述硬件。术语“信号”和“数据”可互换使用。进一步地,发射站12和接收站30的部分不一定必须以相同的方式来实现。
进一步地,在一种实施方式中,例如,发射站12或接收站30可以使用具有计算机程序的通用计算机/处理器来实现,计算机程序在被执行时执行本文中描述的任何相应方法、算法和/或指令。此外或备选地,例如,可以利用专用计算机/处理器,专用计算机/处理器可以包含用于执行本文中描述的任何方法、算法或指令的其它硬件。
例如,发射站12和接收站30可以在视频会议系统中的计算机上实现。备选地,发射站12可以在服务器上实现,而接收站30可以在诸如手持式通信设备(例如蜂窝电话)之类的与服务器分离的设备上实现。在这一实例中,发射站12可以使用编码器将内容编码成编码视频信号,并且向通信设备发射编码视频信号。反过来,通信设备然后可以使用解码器对编码视频信号进行解码。备选地,通信设备可以对本地存储在通信设备上的内容(例如,不是由发射站12发射的内容)进行解码。其它适合的发射站12和接收站30实施方式方案是可用的。例如,接收站30可以是通常静止的个人计算机而不是便携式通信设备,和/或包括编码器的设备还可以包括解码器。
进一步地,本发明的所有或部分实施方式可以采取从例如有形的计算机可用或计算机可读介质可访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是任何设备,其可以例如有形地包含、存储、传达或传送程序,以用于由任何处理器使用或结合任何处理器使用。例如,介质可以是电子的、磁的、光学的、电磁的或半导体设备。其它适合的介质也是可用的。
上述实施方式已被描述,以便允许容易地理解本发明并且不限制本发明。相反,本发明旨在于涵盖包括在所附权利要求的范围内的各种修改和等效布置,该范围将被赋予最宽的解释,以便于如根据法律所允许的包含所有这些修改和等效结构。