使用暗示参考帧的视频编码系统的制作方法与工艺

文档序号:12648433阅读:280来源:国知局
使用暗示参考帧的视频编码系统的制作方法与工艺
使用暗示参考帧的视频编码系统

背景技术:
视频编码/解码系统在许多通信环境中得到广泛的应用。它们通常在第一位置捕捉视听内容,根据各种带宽压缩操作来编码内容,将经编码的内容传输到第二位置,并解码内容以供在第二位置处呈现。对于视频内容,编码和解码通常利用内容中的时间的和空间的冗余,使用运动补偿预测技术来降低编码信号的带宽。运动补偿技术涉及使用一个或多个预先编码的帧作为预测的基础,来对新输入帧进行预测。视频编码器和解码器两者都存储被指定为“参考帧”的选择帧的解码版本。当要根据运动补偿技术来编码新输入帧时,编码器在参考帧中搜索密切地匹配输入帧的内容的内容。当发现匹配时,编码器通常向解码器标识匹配的参考帧,提供标识匹配的内容相对于输入内容的空间位移的运动矢量,并对表示输入数据和参考帧的匹配内容之间区别的残差数据(residualdata)进行编码。解码器与编码器存储相同组的参考帧。当给解码器提供了参考帧的标识符、运动矢量以及经编码的残差数据时,解码器可以恢复每一个输入帧的副本以供显示。通常将帧解析为数据的空间阵列(此处叫做“像素块”),并可以为输入帧的每一个像素块提供运动矢量和经编码的残差数据。因此,运动补偿的预测要求视频编码器和解码器两者都存储预定数量的参考帧,供用于编码和解码。诸如H.263和H.264之类的现代编码协议对将被存储在编码器和解码器中的参考帧的数量定义了预定的限制。如此,通常给编码器和解码器提供了只存储预定数量的参考图片的高速缓存器(cache)。在操作过程中,如果参考图片高速缓存器存储了最大数量的参考图片,并且将添加新参考图片,那么将从高速缓存器移除先前存储的参考图片以容纳新参考图片。此后,移除的参考不能被用作用于预测新输入帧的基础。参考图片高速缓存器的有限的深度对于许多编码应用不能令人满意。在其中图像内容可包括相对静止背景上方的移动前景内容的应用中,背景元素很可能具有非常高的时间冗余,并可被高效地编码。然而,如果前景元素使背景元素模糊了如此长的持续时间,以至于参考图片高速缓存器已移除包括该背景元素的任何参考帧,那么如果前景元素再次移动并暴露之前被模糊的背景元素,则视频编码器将不能预测性地对它进行编码。因此,本领域中需要一种预测编码系统,该系统有效地扩展运动补偿预测技术的范围以包括已从编码器和解码器高速缓存器中移除的参考图片的内容。附图说明图1示出了根据本发明的一个实施例的视频编码系统。图2是根据本发明的一个实施例的视频编码器和视频解码器的简化功能框图。图3示出了根据本发明的一个实施例的方法。图4示出了在示例性参考帧组的上下文中的图3的实施例的操作。图5示出了另一个示例性输入数据组,该输入数据组示出了本发明的实施例的操作。图6示出了可以在本发明的实施例的操作过程中获取的示例性图像模型。图7示出了可以在本发明的实施例的操作过程中获取的另一个示例性图像模型。图8示出了根据本发明的一个实施例的通信协议。图9示出了根据本发明的另一个实施例的另一个通信协议。图10是根据另一实施例的视频编码系统的简化框图。具体实施方式本发明的各实施例提供从在编码过程中发展而成的多个参考帧构建暗示参考帧(impliedreferenceframe)的视频编码/解码系统。对参考图片的经编码数据进行解码,并将其存储在参考图片高速缓存器中。可以从多个参考帧导出暗示参考帧,并可以将其存储在所述参考图片高速缓存器中。此后,可以使用暗示参考帧作为预测的源,对新输入数据进行编码。可以使用该方法来标识可以在比较长的时间段内在视频中持续的、可以由系统在常规参考帧组装(assembly)和移除下捕捉的诸如背景元素之类的视觉元素。可以在编码器和解码器两者中构建暗示参考帧,以充当预测的源。图1示出了根据本发明的一个实施例的视频编码器/解码器系统100。系统100可包括通过通信网络120互连的多个终端设备110.1-110.N。终端设备可以支持视频会议功能,因此,可包括相关联的硬件和软件(下面所描述的)用以捕捉终端的用户的视听数据,编码捕捉到的数据,并将数据传输到另一个终端。每一个终端还可以包括相关联的硬件和软件(也如下面所描述的)用以从另一个终端接收经编码的视听数据,解码该经编码的数据,并在诸如显示器和扬声器之类的输出设备上呈现经解码的数据。终端110.1-110.N可以通过可以体现为通信或计算机网络的一个或多个互连网络120彼此发送与接收经编码的视频数据。网络120可被配设为基于数据包的网络,该网络可以是有线或无线的。出于当前讨论的目的,网络120的体系结构和操作对本发明的操作是不重要的,除非另作说明。本发明的原理在各种编码应用,包括视频会议,等等中得到应用。在视频会议应用中,每一个终端(比方说,终端110.1)可以通过其照像机捕捉本地场景的视频信息,可以编码数据,并将它传输到另一个终端(比方说终端110.2)。类似地,该另一个终端可以本地捕捉视频信息,可以对它进行编码,并可以将数据传输到第一终端110.1。每一个终端110.1、110.2都可以解码它从另一个终端接收到的经编码的视频数据,并可以在显示设备上呈现经解码的视频。本发明的原理还应用于例如多方会议应用,其中,第一终端将经编码的视频数据传输到多个远程终端并从它们接收到经编码的视频数据。图2是根据本发明的一个实施例的视频编码器200.1、200.2和视频解码器250.1、250.2的简化功能框图。如图所示,每一个终端(终端1和2)都可包括与另一个终端的视频解码器250.1、250.2配对的视频编码器200.1、200.2。视频编码器200.1可包括预处理器210.1、编码引擎220.1、参考图片高速缓存器230.1和图片分析器。预处理器210.1可以接受来自诸如照像机之类的图像捕捉设备的源视频,并可以对源视频执行各种处理操作,以调节它以便进行编码。编码引擎220.1可以对经预处理的源视频执行带宽压缩操作,以降低其中的空间和时间冗余。编码引擎可以将经编码的视频数据输出到信道,以供递送到视频解码器250.1。作为其操作的一部分,编码引擎还可以解码参考帧的经编码视频数据,参考帧是可以用作以后编码的源视频的预测源的帧。经解码的参考帧可以在对随后接收到的源视频的编码过程中存储在参考图片高速缓存器230.1中。图片分析器240.1可以从存储在参考图片高速缓存器230.1中的帧生成暗示参考帧,如下面所讨论的。预处理器210.1可以对源视频序列执行视频处理操作。预处理器可包括滤波器的阵列(未示出),诸如去噪声滤波器、锐化滤波器、平滑滤波器、双向滤波器等等,它们可以基于在视频内观察到的特征动态地应用到源视频。通常,预处理器调节源视频数据,以使带宽压缩更高效,或考虑到可能在编码引擎220.1操作时产生的数据损失的情况下保留图像质量。编码引擎220.1可以根据各种不同的编码技术来编码输入视频数据,以实现带宽压缩。编码引擎可以通过运动补偿预测来压缩图像。可以给输入视频的帧指派编码类型,诸如内编码(I编码)、单向预测编码(P编码)或双向预测编码(B编码)。帧进一步可以解析为多个像素块,并可以通过变换编码、量化以及熵编码来编码。可以预测性地编码经P和B编码的帧的像素块,在这样的情况下,编码引擎可以计算标识存储在参考图片高速缓存器230.1中的经解码帧的像素块的运动矢量(其充当正在被编码的像素块的预测),并可以在参与变换编码之前生成预测残差。在一个实施例中,视频编码器可以根据由ITUH.263、H.264等等规定的编码协议来进行操作。视频解码器250.1可包括解码引擎260.1、参考图片高速缓存器270.1、后处理器280.1以及图片分析器290.1。解码引擎260.1可以参考存储在参考图片高速缓存器中的参考图片,来解码通过信道接收到的经编码的视频数据。解码引擎260.1可以将经解码的视频数据输出到后处理器280.1,该后处理器280.1可以对经解码的视频数据执行额外的操作,以调节它供显示。参考帧的经解码视频数据还可以存储到参考图片高速缓存器270.1,供在对随后接收到的经编码视频数据的解码过程中使用。图片分析器290.1可以从存储在参考图片高速缓存器270.1中的帧生成暗示参考帧,如下面所讨论的。解码引擎260.1可以执行反转由编码引擎220.1执行的编码操作的解码操作。解码引擎260.1可以执行熵解码、去量化以及变换解码以生成恢复的像素块数据。量化/去量化操作是有损耗的过程,因此,恢复的像素块数据是由视频编码器200.1编码了的但是包括某些错误的源像素块的副本。对于经预测性地编码的像素块,变换解码可以生成残差数据;解码引擎260.1可以使用与这些像素块(在某些情况下,可以是暗示的)相关联的运动矢量,来从参考图片高速缓存器270.1检索预测的像素块以待与预测残差组合。经解码的像素块可以重新组装成帧,并输出到后处理器280.1。后处理器280.1可以执行额外的视频处理,以调节恢复的视频数据供通常在显示设备上呈现。典型的后处理操作可包括应用解块滤波器、边缘检测滤波器、振铃滤波器等等。后处理器280.1可以输出恢复的视频序列,该视频序列可以呈现在显示设备上,或者可选地,存储到存储器中供以后检索和显示。图片分析器240.1、290.1可以从存储在参考图片高速缓存器中的帧生成暗示参考帧。图片分析器240.1、290.1可以分析参考图片的序列,以将每一个帧中的像素块数据分类为属于图像的背景或者前景图像。图片分析器240.1、290.1可以从被分类为背景像素块的、参考帧的像素块数据合成暗示参考帧,并可以将该暗示参考帧存储到它们的相应的参考图片高速缓存器230.1、270.1。此后,编码引擎220.1可以使用来自暗示参考帧的像素块作为稍后接收到的被编码的源视频的预测参考,并可以将运动矢量传输到参考暗示参考帧的解码器。接收到参考暗示参考帧作为预测参考来编码的视频数据的情况下,解码引擎260.1可以从参考图片高速缓存器270.1检索暗示参考帧的像素块数据,并使用它来解码稍后接收到的源帧的经编码视频数据。在一个实施例中,视频编码器200.1和视频解码器250.1处的图片分析器240.1、290.1的操作同步地执行。进一步地,图片分析器240.1、290.1对存储在参考图片高速缓存器中的、已知被适当地存储在视频编码器200.1和视频解码器250.1两者上的帧进行操作。相应地,视频编码器200.1和视频解码器250.1可以交换信令消息,以维护这些单元之间的同步性。在一个实施例中,视频编码器200.2和视频解码器250.2可以被配设为类似于视频编码器200.1和视频解码器250.1,以在终端2捕捉视频,对它进行编码,并将它传输到终端1用于解码。虽然类似地配设,但是各视频编码器/解码器对可以彼此独立地操作。因此,对于由第一视频编码器/解码器对处理的视频内容,可以动态地选择第一视频编码器/解码器对的预处理操作210.1和后处理操作280.1。对于由第二视频编码器/解码器对处理的视频内容,可以动态地选择第二视频编码器/解码器对的预处理操作210.2和后处理操作280.2,而不考虑由第一对处理的视频内容。类似地,第一对的图片分析器240.1,290.1的操作可以独立于第二对的图片分析器240.2,290.2的操作进行。图3示出了根据本发明的一个实施例的构建暗示的参考图片的方法300。根据该方法,对于帧内的每一个像素块位置,方法300可以跨预定的视频序列对该位置处的像素块的特征进行比较(框310)。视频序列可包括预定数量的在时间上连续的参考帧,例如,十个帧。基于观察到的特征,方法300可以将该位置处的像素块分类为属于背景区域或某个其他区域(在图3中叫做“前景”)(框320)。此后,方法300可以从被分类为属于图像背景的序列的像素块构建暗示参考帧(框330)。图4示出了在示例性参考帧组的上下文中的图3的方法的操作。图4的(a)-(c)各自都示出了视频会议环境中的用户的图像数据,其中,用户可以相对于相对静止的背景图像移动。用户的轮廓在每一个图形示出,以示出每一个帧之间的示例性区别。在图4的示例中只示出了三个参考帧,但是图3的方法可以对更长序列的参考帧操作。在图4的(a)内示出了一系列像素块410.1-480.1;这些像素块在分别在图4的(b)和(c)中所示出的帧内具有协同定位的对应物410.2-480.2、410.3-480.3。在操作过程中,方法可以比较位置410.1、410.2、410.3处的像素块的特征。比较可以指出,此位置处的像素块十分相似,因此方法可能将所有三个像素块分类为属于背景图像。方法在像素块位置420、470和480处的操作可能实现相同结果。在每一种情况下,来自所有三个帧的像素块可能被评估为彼此十分相似,并在它们之间具有极少的运动。在每一种情况下,来自所有三个帧的像素块(像素块420.1、420.2、420.3、470.1、470.2、470.3、480.1、480.2和480.3)可能被分类为属于背景图像。对位置430-460处的像素块的评估可能产生不同的分类。如在图4的三个帧之间,方法可能识别出由于这些像素块的视场内的图像内容、运动及其他活动造成的帧之间的重大区别。例如,在位置430处,方法可以识别出帧1和3(像素块430.1和430.3)之间的强相关,但是与来自帧2的像素块430.2的弱相关。进一步地,像素块430.2可以具有与它相关联的相对大的帧到帧运动,而帧430.1和430.3可能不会有许多运动。基于这样的特征,方法可以将像素块430.1和430.3分类为背景块,但像素块430.2不是。类似地,在位置460处,方法可以识别帧1和2(像素块460.1和460.2)之间的强相关,但是与来自帧3的像素块460.3的弱相关。进一步地,像素块460.3可以具有与它相关联的相对大的帧到帧运动,而帧460.1和460.2可能不会有许多运动。基于这样的特征,方法可以将像素块460.1和460.2分类为背景块,但像素块460.3不是。该方法可以类似地处理位置440和450处的像素块。虽然因为用户的脸位于这些区域,使得这些位置处的像素块可能在它们之间表现出某种相关,但是相比于位置410-430和460-480处所示出的示例性数据,这些像素块可能将具有它们之间的更低的相关以及更高的运动。相应地,方法可以不将这些位置处的任何像素块分类为属于背景区域。图4示出了对示例性三个参考帧的组执行的图3的方法的操作。在操作过程中,该方法可以对更大组的参考帧(诸如十个或十五个参考帧)执行。图5示出了由十个参考帧510.1-510.10构成的另一个示例性输入数据组。出于当前讨论的目的,假设帧510.1-510.3密切地相似于来自图4的(a)的帧1的图像内容,除了对应于操作员的脸的图像区域中的帧到帧的运动之外。这些帧在图5中被标记为“F1”。类似地,除对应于操作员的脸的图像区域中的帧到帧运动之外,帧510.4-510.6相似于帧2的图像内容(图4的(b)),并且除对应于操作员的脸的图像区域中的帧到帧运动之外,帧510.7-510.10相似于帧3的图像内容(图4的(c))。为这样的目的,在图5中,帧510.4-510.6标记为“F2”,帧510.7-510.10标记“F3”。在操作过程中,图3的方法可以使用图5的示例所示出的、比在图4的示例中更宽的图像内容阵列,来开发更准确的背景图像数据模型。考虑图4的(c)中的像素块位置440,方法可以观察到帧510.7-510.10之间的足够的相关,而将这些像素块分类为背景块。作为像素块位置450(图4)的图像内容跨帧表现出的相关可能还没有强到足以允许将任何像素块位置分类为背景像素块。图6示出了可以在图3的方法的操作过程中获取的示例性图像模型。图6示出了表示可以从图5的示例性帧510.1-510.10导出的前景图像内容的位置的三个轮廓S1-S3的重叠。在此模型中,每一个轮廓内的图像内容都可以比轮廓外面的图像内容表现出更大的帧到帧运动。该方法可以收集落在各个轮廓之外的图像数据,作为背景图像数据的代表。此过程有效地生成如图7所示的模型,其中,用灰色阴影标示的像素块将被认为是背景像素块。暗示参考帧可以从背景像素块导出,并存储在参考图片高速缓存器中。本发明适应于用于确定给定像素块是否应该被分类为属于背景图像的各种技术。第一实施例基于参考帧之间的像素块运动。可以在每一个像素块位置处计算表示从一个参考帧到下一参考帧的移动距离的像素块位移矢量。在序列内具有最低总运动的像素块可以是用于指派为属于背景图像的候选。另外,如果来自多个连续的参考帧的协同定位的像素块表现出从参考帧到参考帧的共同的运动,则这可以用作表明参考帧像素块是背景图像的成员的指示。作为推论,如果来自多个连续的参考帧的协同定位的像素块表现出不一致的或不规则的运动,则这可以用作拒绝像素块成为背景图像的成员的基础。扩展而言,该方法进一步可以考虑参考帧的像素块与来自时间上相邻的非参考帧的协同定位的像素块之间的相对运动。如果来自多个时间上相邻的帧的协同定位的像素块表现出与来自参考帧的像素块的共同的运动,则这可以用作表明参考帧像素块是背景图像的成员的指示。如果来自多个时间上相邻的帧的协同定位的像素块相对于来自参考帧的像素块表现出不一致的或不规则的运动,则这可以用作拒绝像素块成为背景图像的成员的基础。进一步地,该方法可以连同边缘检测操作来考虑运动属性。编码器可以执行边缘检测以识别图像数据内的元素,然后评估检测到的边缘的相对两侧的区域的图像运动。如果检测到的图像的第一侧上的图像区域跨多个参考帧表现出相对一致的运动,则可以启示该区域(扩展而言,位于边缘的该侧的像素块)可以被分类为背景图像元素。该方法还可以连同指派给图像的全局运动矢量来考虑图像的运动属性。许多编码器执行预处理操作,这些操作部分地逐帧估计运动。进一步地,某些编码器与使用运动检测器来在操作过程中检测照像机设备的移动的照像机一起操作。在任一种情况下,当评估参考图像内的个体像素块的运动以便将像素块分类为属于背景元素时,可以将像素块运动与全局运动估计进行比较。当像素块表现出不同于应用于帧的全局运动估计的运动时,该像素块可能失去分类为背景图像元素的资格。该方法还可以考虑像素块之间的空间相关性,作为执行背景分类的一部分。在这样的实施例中,该方法可以将像素块图像内容与同一个帧内的相邻像素块的图像内容进行比较。例如,该方法可以比较相邻的经编码像素块之间的变换系数,以评定这样的相关性。当像素块表现出与相邻像素块的高度相关性时,可以使用这样的相关性作为标识背景像素块的基础。当然,本发明的原理适应各种前述技术的集成。在一个实施例中,可以将运动和空间相关性测试应用于参考帧内的个体像素块。可以单独地对运动评定和空间相关性评定计分,然后联合形成总分,根据该总分,系统可以指定像素块是否是背景元素。将每一个帧位置处的一批像素块标识为属于背景之后,系统可以从其构建暗示参考帧。可以通过求像素块的内容的平均或通过从与通过平均获取的像素块最相似的像素块复制内容,来组装暗示参考帧。空值数据(例如,纯黑或纯白的数据)可以存储在没有标识出背景像素块的帧位置处。图8示出了根据本发明的一个实施例的编码器和解码器之间的通信协议。根据该协议,在开发出任何暗示参考帧之前,编码器可以编码来自视频序列的帧,并将由此获取的经编码视频数据传输到解码器(方框810)。解码器可以接收经编码的视频序列并对它进行解码(方框820)。编码器还可以对传输到解码器的经编码的参考帧进行解码(未示出的操作)。在没有传输错误的情况下,编码器和解码器应该将共同的一组参考帧本地存储在每一个设备中。当编码器确定使用暗示参考帧时,它可包括给解码器的用于构建暗示参考帧的命令(方框830)。编码器命令可以与经编码视频数据一起被包括在信道数据中。编码器命令可以标识可以从其导出暗示参考帧的一组参考帧。此后,编码器和解码器中每一个都可以从存储在它们的本地高速缓存器中的参考帧构建暗示参考帧(方框840,850)。如果解码器成功地构建暗示参考帧并存储它,则解码器可以向编码器传输使其识别出这一点的确认消息(方框860)。确认消息可包括要被编码器和解码器使用的用于将来编码的索引。在编码器接收到确认消息之后,编码器可以参考暗示参考帧来执行将来的编码操作。即,可以以与可以使用任何其他参考帧的方式相同的方式,在以后接收到的源帧的编码过程中将暗示参考帧用作预测源。当编码器对视频序列的以后接收到的部分进行编码并将它传输到解码器(方框870)时,它可包括参考暗示参考帧作为预测源的经编码帧。类似地,解码器可以如经编码视频数据所指明的使用暗示参考帧的其本地副本作为预测源,来接收并解码经编码视频(方框880)。在操作过程中,编码器可以控制解码器如何将暗示参考帧保留在其参考图片高速缓存器中。例如,编码器可包括用于从解码器的参考图片高速缓存器中清除暗示参考帧的命令消息890。当然,编码器可以在情况许可时发出构建新的暗示参考帧的新命令830。系统可以重复方框840,850的操作以同时构建和保留多个暗示参考帧。如所指出的,命令消息830可包括编码器和解码器要用来构建暗示参考帧的参考帧的标识符。命令消息830可以采取许多格式。在第一实施例中,命令消息830可以通过例如时间戳、帧编号或其他明确的标识符来明确地标识参考帧。在另一实施例中,命令消息830可以标识要使用的整数个参考帧(比方说,N个帧),这隐含地标识出信道数据中所包括的N个最近传输的参考帧。在任一种情况下,一旦解码器解释命令消息,它即可以确定所标识的参考帧是否在参考图片高速缓存器中存在。如果所标识的参考帧不存在,例如,因为传输错误阻止它们的接收,则解码器将不能构建暗示参考帧。在这种情况下,解码器应该发送指出解码器的构建暗示参考帧的尝试未成功的确认消息(未示出)。响应于来自解码器的此拒绝通知,编码器可以放弃在通信信道的其一侧构建暗示参考帧的尝试。取代之,编码器可以发出标识不同的一组参考帧的、构建暗示参考帧的另一个命令。如所指出的,编码引擎220.1、220.2和解码引擎260.1、260.2可以执行如由诸如ITUH.263或H.264之类的预定编码协议确定的编码操作。虽然这样的编码协议不提供在上文中描述的命令和确认消息830、860,但是可以修改协议以适应这样的消息。相应地,作为在这样的编码器的编码引擎220.1、220.2和解码引擎260.1、260.2之间进行的交换而包括命令和确认协议是可允许的。图9示出了根据本发明的一个实施例的编码器和解码器之间的另一个通信协议。在此协议中,编码器和解码器可以从长期参考(“LTR”)帧构建暗示参考帧。LTR帧由ITUH.264编码协议进行定义。它们是解码器在接收并成功的解码之后确认的参考帧。解码器将确认传输到编码器,随之编码器向参考帧指派LTR状况。如此,编码器接收对LTR的接收和成功解码的明确确认,并可以在随后的编码操作中依赖于LTR帧。根据协议900,编码器可以编码视频序列的帧(方框910),并将某些参考帧标示为LTR帧(方框920)。编码器可以将经编码视频数据传输到解码器。在接收到经编码视频数据时,解码器可以对它进行解码以供呈现(方框930),并将参考帧本地存储在参考图片高速缓存器中。当解码器成功地解码LTR帧时,它可以将确认消息940发送到编码器,以将这一点通知它。当编码器接收到解码器的确认消息940时,编码器可以改变本地存储的LTR帧的状况,以指出解码器处的接收已被确认(方框950)。方框910-950的操作可以贯穿视频序列的编码过程重复。当编码器确定要构建暗示参考帧时,它可以向解码器960发送构建暗示参考帧的命令,同时标识出将用于导出的LTR帧。解码器可以在接收到命令消息960后构建暗示参考帧(方框970),并可以在暗示参考帧构建过程完成时将确认消息980传输到编码器。进一步地,编码器可以并行地构建暗示参考帧的其自己的副本(方框990)。此后,编码器可以参考暗示参考帧来编码源视频序列,并将从其获取的经编码视频数据传输到解码器(方框1000)。解码器可以在接收到经编码视频时对它进行解码(方框1010)。图9的协议依赖于LTR帧来导出暗示参考帧,这些LTR帧甚至在构建过程开始之前就经解码器确认,并为编码器知道为有效。这样的实施例受益于与图8的实施例相比增加的可靠性,在图8的实施例中,构建过程可以取决于可能在解码器中不存在的参考帧。根据图8和9的协议,在创建时可以给暗示参考帧指派标识符,这些标识符可以在对其他帧的编码和解码过程中使用以指出暗示参考帧何时被用作预测源。可以给每一个新的暗示参考帧指派唯一标识符。如此,当编码器使用暗示参考帧作为要被编码的新源帧的预测源时,新源帧的经编码视频数据可包括暗示参考帧标识符。在解码时,解码器可以解析新源帧的经编码视频数据,并使用标识符来检索暗示参考帧的数据用于预测目的。此外,如果解码器确定它没有存储对应于标识符的暗示参考帧,则它可以向编码器指出可能会导致编码器和解码器再同步操作的错误。在一个实施例中,甚至在从解码器接收到确认消息980之前,编码器就可以开始相对于暗示参考帧进行视频编码(方框1000)。这样的实施例具有编码器在传输命令消息960时立即可以使用暗示参考帧的优点。在这样的实施例中,为防止可能导致命令消息在解码器接收之前丢失的传输错误,编码器可以使用超时机制(未示出)。如果编码器在传输命令消息960的预定时间内未能接收到确认消息980,则编码器可以使暗示参考帧丧失在编码中进一步使用的资格。此外,编码器可以基于检测到的通信信道的状态,在其中可以从还没有被确认的LTR帧构建暗示参考帧的第一模式和其中只从已经确认的LTR参考帧构建暗示参考帧的第二模式之间切换。模式选择可以基于例如数据包丢失率、信噪比、信道带宽或信道条件的其他标志。在另一实施例中,在导出其他暗示参考帧的过程中,可以使用暗示参考帧。如此,编码器和/或解码器可以使用参考帧、LTR帧和暗示参考帧,作为用于导出新的暗示参考帧的源。如所指出的,编码引擎220.1、220.2和解码引擎260.1、260.2可以执行如由诸如ITUH.263或H.264之类的预定编码协议确定的编码操作。虽然这样的编码协议不提供在上文中描述的命令和确认消息960、980,但是可以修改协议以适应这样的消息。相应地,作为在这样的编码器的编码引擎220.1、220.2和解码引擎260.1、260.2之间进行的交换,包括命令和确认协议是可允许的。虽然本发明预见图8和9的命令/确认协议可以被集成到标准化的编码协议中,但是它不仅限于这样的实施例。图10是根据另一实施例的视频编码系统的简化框图,其中,视频编码器1100和解码器1200根据不直接地适应命令/确认协议的协议操作。视频编码器1100和解码器1200可以具有一对编码/解码路径,第一路径对应于标准化协议并根据叫做“带内”信道(IBCH)的第一通信链路交换数据,而第二路径对应于其中可以交换暗示参考帧的非标准化协议。第二路径可以在编码器1100和解码器1200之间的叫做“带外”信道(OBCH)的第二通信链路中交换数据。如图10所示的视频编码器1100和解码器1200使能在第一终端中捕捉和编码视频数据,然后在第二终端中解码和显示该视频数据。虽然在图10中未示出,但是系统可包括第二对视频编码器和解码器,以使能在第二终端中捕捉和编码视频数据,然后在第一终端中解码和显示该视频数据。编码器1100可包括预处理器1110、多路复用器1120、表示各自的编码路径的一对编码系统1130、1140。第一编码系统1130可以根据诸如H.263或H.264之类的标准化的编码协议进行操作。它可包括根据由协议所定义的过程和语法生成编码视频数据的编码引擎1150和参考图片高速缓存器1160。第二编码系统1140也可以包括编码引擎1170和参考图片高速缓存器1180(叫做“暗示参考图片高速缓存器”)。第二编码系统1140可以根据在标准化的编码系统1130的协议中规定的相同预测编码技术中的许多技术来编码输入数据,并且如所指出的,可以参考暗示参考帧执行预测。相应地,从第二编码系统1140输出的经编码视频数据可以遵照支持对暗示参考帧的参考的语法。编码器1100进一步可包括管理其操作的控制器1190。在操作过程中,当编码器1100编码输入视频数据时,控制器1190可以对经编码的视频数据进行处理,以标识视频数据内的背景元素并触发暗示参考帧的创建。控制器1190可以导致编码器1100操作图8或9的方法。在图10的实施例中,非标准化编码器1140可以从由标准化编码器1130存储的参考帧生成暗示参考帧。控制器1190可包括其自己的图片分析器,但是此单元在图10中未单独地示出。一旦暗示参考高速缓存器1180被填充以其自己的参考帧数据,新输入视频数据就可以由标准化编码器1130或者非标准化编码器1140编码。控制器1190可以连同编码引擎1150、1170来确定哪一个编码器1130、1140为输入帧提供最佳编码机会。在选择哪一个编码器1130、1140是“最佳”时,编码器通常考虑由本地执行编码策略驱动的因素,诸如编码效率、抗错误性等等。为新输入帧选择了一编码器1130、1140之后,控制器1190可以使所选编码器(比方说,编码器1140)参与编码帧,并通过其相应的信道(OBCH)输出帧的经编码视频数据。控制器1190可以重复编码操作,并触发新暗示参考帧的创建,直到输入视频序列被消耗完。虽然编码引擎1150、1170在图10中示为离散的单元,但是它们不必在任何情况下都完全独立。如所指出的,编码引擎1150、1170可以对输入数据执行共同的编码操作。它们为预测目的简单地使用不同类型的参考帧——符合标准的参考帧对比于暗示参考帧。如此,当图10的编码器在消费设备中实现时,编码引擎1150、1170可以被配设为共同的功能单元,该功能单元在不同的编码模式下执行,以作为符合标准的编码引擎或者参考暗示参考帧操作的编码引擎来操作。在这样的实现方式中,编码器1100可包括额外的系统(未示出)用以将经编码视频数据从共同的编码引擎适当地路由到带内信道或带外信道。图10还示出了根据此实施例的视频解码器1200。视频解码器1200可以执行反转由编码器1100执行的编码操作的解码操作,如此,它可包括与编码器1100的体系结构对应的体系结构。视频解码器1200可包括标准化的解码器1210,该标准化的解码器1210接收并解码在带内信道上接收到的经编码视频数据。它进一步可包括非标准化的解码器1220,该非标准化的解码器1220接收并解码在带外信道上接收到的经编码视频数据。每一个解码器1210、1220都可包括相应的解码引擎1230、1240和参考图片高速缓存器1250、1260。视频解码器1200进一步可包括用以将经解码的视频数据合并到共同的输出视频序列中的去多路复用器1270、后处理器1280和控制器1290。解码器1210、1220各自可以反转由编码器1100处的对应编码器1130、1140执行的编码操作。如此,通过带内信道IBCH接收到的经编码视频数据可以由解码引擎1230使用存储在参考图片高速缓存器1250中的预测数据来解码。进一步地,通过带外信道OBCH接收到的经编码视频数据可以由解码引擎1240使用存储在暗示参考图片高速缓存器1260中的预测数据来解码。如同编码器1100一样,解码引擎1230、1240被示为独立单元,但是他们不必如此部署。解码引擎1230、1240可以对向它们输入的经编码视频数据执行共同的编码操作,但是它们使用不同类型的参考帧用于预测目的——符合标准的参考帧对比于暗示参考帧。如此,当图10的解码器1200在消费设备中实现时,解码引擎1230、1240可以被配设为共同的功能单元,该功能单元在不同的编码模式下执行,以作为符合标准的编码引擎或者参考暗示参考帧操作的编码引擎来操作。控制器1290可以管理解码器1200的操作。它可以导致非标准化解码器1220响应于通过带外信道接收到的命令来生成暗示参考帧。它可以管理图8或9的方法在解码器内的操作,并导致解码器1200向编码器1100返回确认消息。本发明的原理在各种实时视频编码应用和联网实现方式中得到应用。虽然图2和10的编码/解码系统示出了其中在终端设备中构建暗示参考帧的实现方式,但是其他实现方式是可允许的。例如,如图1以阴影所示,暗示参考帧可以被在网络内提供的多点会议单元(MCU)130使用。MCU通常被用来支持其中多个终端参与共同的视频会议的多方会议服务。在视频会议过程中,每一个终端都可以编码在终端的位置本地捕捉到的视频数据,并可以将它传输到MCU130。MCU130可以解码传输的视频数据,并将传输的数据集成到用于其他终端中的每一个终端的视频序列中。例如,MCU可以将来自终端2和3的经解码的视频数据集成到被编码并递送给终端1的视频序列(或许是分割的屏幕演示或“追随讲话者”(followthespeaker)演示)中。同时,MCU130可以集成来自终端1和3的经解码的视频数据,以供编码并递送到终端2。如此,MCU130充当中间代理,该中间代理允许每一个终端参与点对点间的通信(从相应的终端到MCU130),但是将经编码的视频内容传输到参与视频会议的其他终端中的每一个,并从它们的每一个接收经编码的视频内容。在这样的实施例中,MCU130可以为参与视频会议的终端使用暗示参考帧。如果终端110.2支持暗示参考帧,则MCU130和终端110.2之间的通信可以如图8或9所示地进行。进一步地,与终端110.2的通信可以以这种方式进行,即使另一个终端(比方说,终端110.3)不支持暗示参考帧。当然,不需要MCU130参与到每个多方视频会议应用中。在某些实施例中,可以在终端110.1-110.3之间直接地支持多方视频会议,而没有中间代理。在这样的实施例中,终端可以建立配对的编码器和解码器,如图2或10所示。可以为终端之间的每个配对的关系建立配对的编码器/解码器。如此,如果终端110.1参与涉及与终端110.2和110.3的同时通信的多方视频会议,则终端110.1可以与终端110.2建立第一配对的关系,与终端110.3建立第二配对的关系。在此情况下,可以为终端110.1所属的每一个配对的关系复制图2或10的体系结构。当然,终端110.1可以使用暗示参考帧(当它与也支持这样的暗示参考帧的第一终端(比方说,终端110.2)配对时),即使另一个终端110.3不支持暗示参考帧。前述的讨论标识可以在根据本发明的各实施例构建的视频编码系统中使用的功能块。在实践中,这些系统可以应用在各种设备中,诸如配备有集成摄像机的移动设备(例如,启用照像机的电话、娱乐系统和计算机)和/或诸如视频会议设备和启用照像机的台式计算机之类的有线通信系统。在某些应用中,在上文中描述的功能块可以作为集成的软件系统的元素来提供,其中,块可以作为计算机程序的单独的元件来提供。在其他应用中,功能块可以作为处理系统的离散电路组件来提供,诸如数字信号处理器内的功能单元或专用集成电路。本发明的其他应用可以体现为专用硬件和软件组件的混合型系统。此外,此处所描述的功能块不必作为单独的单元来提供。例如,虽然图2和10作为单独的单元示出了视频编码器和解码器的组件,但是在一个或多个实施例中,它们中的某些或全部可以集成,并且它们不必是单独的单元。这样的实现方式的细节对本发明的操作无关紧要,除非上面另作说明。进一步地,此处所示出的图形只提供呈现本发明的主题需要的这么多的细节。在实践中,视频编码器和解码器通常将包括除此处所描述的那些之外的功能单元,包括用于存储贯穿所示出的编码管道的数据的缓冲器,以及管理与通信网络以及对应编码器/解码器设备的通信的通信收发器。为清楚起见,前述的讨论中省略了这样的元件。此处具体地示出和/或描述了本发明的多个实施例。然而,可以理解,在不偏离本发明的精神和预期范围的情况下,本发明的修改和变化被上面的教导覆盖,并在所附权利要求书的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1