首页> 中国专利> 在视频会议中减少对周期性关键帧的使用

在视频会议中减少对周期性关键帧的使用

摘要

本发明涉及在视频会议中减少对周期性关键帧的使用。响应于对同步点的需要而执行生成关键帧以及向视频会议的客户端传递关键帧。并非自动地向视频会议中的每个客户端周期性地发送关键帧,而是在视频会议中发生事件时向一个或多个客户端发送关键帧。例如,可在客户端加入视频会议时向该客户端发送关键帧。也可向具有分组丢失的客户端发送关键帧,基于客户端的请求、视频会议中讲话者改变、在客户端添加新流时等等发送关键帧。视频会议中不受该事件影响的客户端继续接收预测帧。

著录项

  • 公开/公告号CN102291561A

    专利类型发明专利

  • 公开/公告日2011-12-21

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201110177809.8

  • 发明设计人 M-C·李;T·摩尔;C·王;

    申请日2011-06-17

  • 分类号H04N7/15;H04N7/26;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人陈斌

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 04:08:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-07

    未缴年费专利权终止 IPC(主分类):H04N 7/15 专利号:ZL2011101778098 申请日:20110617 授权公告日:20160817

    专利权的终止

  • 2016-08-17

    授权

    授权

  • 2015-08-19

    专利申请权的转移 IPC(主分类):H04N7/15 变更前: 变更后: 登记生效日:20150727 申请日:20110617

    专利申请权、专利权的转移

  • 2013-07-10

    实质审查的生效 IPC(主分类):H04N7/15 申请日:20110617

    实质审查的生效

  • 2011-12-21

    公开

    公开

说明书

技术领域

本发明涉及视频会议系统和方法,尤其涉及在视频会议中减少对周期性关 键帧的使用。

背景技术

许多人如今参与视频会议。在一些视频会议系统中,视频会议客户端连接 到视频会议服务器。视频会议服务器管理和控制会议中的客户端并将音频/视频 流路由到客户端。参与视频会议的客户端通常具有不同的处理能力和可用带 宽。在网络环境中对视频流的实时视频编码/解码和传输可能对处理和带宽能力 有较大需求。

发明内容

提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步 描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或 必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

响应于对同步点的需要而执行生成关键帧以及向视频会议的客户端传递 关键帧。并非自动地向视频会议中的每个客户端周期性地发送关键帧,而是在 视频会议中发生事件时向一个或多个客户端发送关键帧。例如,可在客户端加 入视频会议时向该客户端发送关键帧。也可向具有分组丢失的客户端发送关键 帧,基于客户端的请求、视频会议中讲话者改变、在客户端添加新流时等等发 送关键帧。视频会议中不受该事件影响的客户端继续接收预测帧。

附图说明

图1示出计算机的计算机架构;

图2示出操作环境的框图;

图3示出示例性的基于块的帧内/帧间压缩路径;以及

图4示出用于确定何时发送关键帧作为同步点的过程。

具体实施方式

现在参考其中相同的标号代表相同的元素的附图,描述各实施例。具体地, 图1和相应的讨论旨在提供对在其中可以实现各实施例的合适计算环境的简 要、概括描述。

一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、组件、数据结构和其他类型的结构。也可使用其它计算机系统配置,包 括多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大 型计算机等等。也可使用在其中任务由通过通信网络链接的远程处理设备执行 的分布式计算环境。在分布式计算环境中,程序模块可以位于本地和远程存储 器存储设备两者中。

现在参考图1,将描述在各实施例中利用的计算机100的说明性计算机架 构。图1所示的计算机架构可被配置为台式计算机、服务器或移动计算机,并 且包括中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和 只读存储器(“ROM”)10在内的系统存储器7、以及将存储器耦合至CPU 5 的系统总线12。基本输入/输出系统存储在ROM 10中,它包含帮助在诸如启 动期间在计算机内元件之间传递信息的基本例程。计算机100还包括用于存储 操作系统16、应用程序和其他程序模块的大容量存储设备14,这将在以下更 为详细地描述。

大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连 接到CPU 5。大容量存储设备14及其相关联的计算机可读介质为计算机100 提供非易失性存储。虽然此处包含的对计算机可读介质的描述针对诸如硬盘或 CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机 100访问的任何可用介质存储设备。

此处所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介 质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等 信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系 统存储器7、可移动存储和不可移动存储都是计算机存储介质示例(即,存储 器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只 读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD) 或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储 信息且可以由计算设备100访问的任何其它介质。任何这样的计算机存储介质 可以是设备100的一部分。计算设备100还可以具有输入设备28,如键盘、鼠 标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打 印机等输出设备28。上述设备是示例且可以使用其他设备。

此处所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如 载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序 模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号” 可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特 征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有 线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。

根据各实施例,计算机100使用通过诸如因特网等网络18至远程计算机 的逻辑连接在联网环境中操作。计算机100可以通过连接至总线12的网络接 口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单 元20也可用于连接到其它类型的网络和远程计算机系统。计算机100还可以 包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些其 他设备包括相机、键盘、鼠标或者电子指示笔(未在图1中示出)。类似地, 输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。 显示器28被设计成在视频会议期间显示视频,诸如视频馈送。

如前简述,多个程序模块和数据文件可以存储在计算机100的大容量存储 设备14和RAM 9内,包括适于控制联网计算机的操作的操作系统16,如华盛 顿州雷蒙德市的微软公司的WINDOWS 7操作系统。大容量存储设备14和 RAM 9还可存储一个或多个程序模块。具体地,大容量存储设备14和RAM 9 可以存储一个或多个应用程序。应用程序之一是会议应用24,诸如视频会议应 用。一般而言,会议应用24是用户在参与两个或多个用户之间的视频会议时 使用的应用。应用还可涉及编码/解码视频的其他程序。例如,应用可编码/解 码向/从web浏览器传递/接收的视频。

视频管理器26被配置成管理视频会议中关键帧(也称为帧内编码帧或I 帧)的生成和传递。编码关键帧在编码过程中要比编码预测帧(P帧)使用多 得多的比特。在一个示例中,压缩的关键帧大小约为P帧的相应大小的8到 10倍。尽管可以减小关键帧的大小,但这牺牲了关键帧质量,从而可能导致不 合需的观看体验。一般而言,视频管理器26确定视频会议内的一个或多个客 户端何时需要关键帧,请求生成关键帧,并随后将关键帧发送给受影响的客户 端。例如,当一客户端加入视频会议时、当一客户端从分组丢失进行恢复时、 当一客户端添加新的流时、会议中讲话者改变时等等,可发送关键帧。视频会 议中的其他客户端继续接收P帧。

图2示出操作环境的框图。操作环境可包括视频会议环境200。视频会议 环境200可包括具有各种能力的各种客户端,诸如经由内联网网络连接115连 接的内联网客户端110和视频会议服务器120。视频会议环境200还可包括第 一因特网客户端130、第二因特网客户端140和第三因特网客户端150。这些 因特网客户端中的每一个可经由因特网160连接到视频会议服务器120。视频 会议服务器120、内联网客户端110、第一因特网客户端130、第二因特网客户 端140和第三因特网客户端150可各自包括计算设备,诸如图1中描述的计算 设备100。

当两个或多个客户端想要在彼此间共享数据流时,可以使用视频会议环境 200。每个客户端可使用视频会议服务器120连接到视频会议。视频会议服务 器120可维护哪些客户端被连接以及每个客户端的能力的列表。

能力可由参与视频会议的客户端提供和/或由视频会议服务器获得。每个 客户端的能力可包括以下全部或部分,但不限于此:客户端的处理能力、分辨 率能力、帧率、比特率、连接速度、可用带宽、正使用的相机、编码/解码能力 等。能力对于一些/所有客户端可以不同。例如,一些客户端能够以较低分辨率 进行编码和回放(例如,速率为每秒15帧(fps)速率的CIF分辨率(352x288)); 一些客户端能够以中等分辨率进行编码和回放(例如,帧率为30fps的VGA 分辨率(每帧640x480像素));而其他客户端能够以较高分辨率进行编码和 回放(例如,具有30fbs速率的720p和1080p)。此外,一些客户端能够编码 和回放较大数量的流。客户端还可向视频会议服务器120提供其对观看和播放 视频的所希望的偏好(例如,全屏模式、全尺寸模式、小窗口模式、比特率和 帧率)。

视频会议服务器120可周期性地更新客户端的能力中的任何改变。例如, 视频会议服务器120可或者周期性地自动分析或者手动分析网络连接,并确定 客户端具有比先前确定的更多的带宽可用。视频会议服务器120还可从客户端 接收指示能力改变的消息并存储该信息以用于促进流的生成和数据共享。

视频会议服务器120还可被配置成确定客户端将生成什么流(例如,音频、 视频、应用共享等等)。例如,客户端可将视频流编码成包括当前正在会议中 讲话的人的一系列视频帧。视频流可被编码成一系列视频帧,其中每一帧可包 括单个图像。每一帧可由数据比特表示。视频流可被编码成并非每一帧中的每 一数据比特都需要被发送才能表示该视频流的源。

可使用不同的帧类型来编码和/或压缩视频流。帧类型可包括关键帧(I 帧)、P帧、B帧、SI帧和SP帧。I帧代表内帧,并且可包括可自己解码而无 需参考视频流中的任何其他帧的帧。P帧代表预测帧并且可通过参考视频流序 列中的至少一个前帧来解码。B帧代表双向预测帧并且可通过参考视频流中的 至少一个前帧和至少一个后帧来解码。SI帧和SP帧是由H.264视频编码标准 定义的,且是为非I帧提供同步点的同步I帧和P帧。客户端可生成超过一种 分辨率的流。例如,客户端130可被配置成生成1080p、720p、480p和CIF的 流。

视频会议服务器120可接收来自客户端(例如,客户端130)的流并将该 流引导至另一客户端(例如,客户端110、客户端140和客户端150)。视频 会议服务器120还可请求客户端生成一个或多个关键帧。例如,当一客户端加 入视频会议时,视频会议服务器120可请求从新客户端已订阅的每个客户端生 成关键帧。与本发明的实施例一致,被请求生成关键帧的客户端除了P帧外还 生成关键帧。一旦接收到关键帧和P帧,视频会议服务器120就将该关键帧引 导至新客户端以及将该P帧引导至从该客户端接收流的其他客户端。客户端也 可向视频会议服务器120请求关键帧。例如,客户端可请求关键帧以从分组丢 失进行恢复。也可在确定已发生分组丢失时将关键帧自动传递给客户端。一般 而言,当客户端需要会议内的同步点时,关键帧被传递给该客户端。

关键帧可使用不同的编码方案来编码。例如,在一些编码方案中,整个帧 可被编码为关键帧。与本发明的实施例一致,在使用支持片的编码方案(诸如 H.264/MPEG-4AVC编码方案)时,仅该帧的片被编码为关键帧。例如,该帧 的基层可被编码为关键帧,而流中的其他层可被编码为P帧。这样,即使视频 会议内需要关键帧,具有P帧编码层的I帧的大小要小于将整个帧编码为关键 帧。

视频会议服务器120还可被配置成高速缓存来自一个或多个客户端的关 键帧并在需要时将高速缓存的关键帧发送给客户端。减少所发送和传递给客户 端的关键帧的数量旨在改进视频会议中的视频流的显示。例如,由于客户端生 成较少的关键帧,视频会议服务器120对其具有较少需求且因此能够处理更多 流。由于传递P帧比传递关键帧费时少,因此还可以减少抖动。

视频会议服务器120还可被配置成高速缓存关键帧并在事件(诸如主讲人 改变)发生后的预定时间段内以预定间隔生成一个或多个P帧。例如,一旦主 讲人改变,视频会议服务器120就可生成并高速缓存I帧,以及在主讲人改变 后接着的5秒内每秒生成参考所高速缓存的I帧的长期P帧。由于主讲人一般 有许多订户,因此在视频会议服务器上生成周期性长期P帧可减少去往/来自 视频会议服务器的通信量。

图3示出示例性的基于块的帧内/帧间压缩路径。编码器系统接收包括当 前帧的视频帧序列,并产生压缩视频作为输出。

所示的编码器系统压缩预测帧和关键帧。图3示出了关键帧通过编码器系 统的路径310以及预测帧的路径370。该编码器系统的许多组件既用于压缩关 键帧也用于压缩预测帧。由那些组件执行的确切操作可以依据正在被压缩的信 息的类型而变化。一般而言,关键帧对比特率的贡献比预测帧更大。在低或中 比特率应用中,关键帧可能成为性能瓶颈。

预测帧(也被称为P帧、用于双向预测的B帧、或帧间编码帧)按照从 一个或多个其他帧进行的预测(或差)来表示。预测残差是预测帧和原始帧之 差。相反,关键帧(也被称为I帧、帧内编码帧)是在不参考其他帧的情况下 压缩的。取决于所利用的编码过程,帧可被拆分成像素块,诸如8x8、4x4等 等。

在当前帧320是预测帧时,运动估计器325估计当前帧320的宏块或其他 像素集相对于参考帧的运动,其中参考帧是可缓冲在帧存储中的重构的前帧。 在替换实施例中,参考帧是后帧,或者当前帧是双向预测的。运动估计器325 可按照像素、1/2像素、1/4像素或其它增量来估计运动,并可在逐帧基础或其 它基础上切换运动估计的分辨率。运动估计的分辨率在水平和垂直上可以相同 或不同。

运动补偿器330将运动估计信息应用于重构的前帧以形成经运动补偿的 当前帧。一般而言,运动估计器325和运动补偿器330可被配置成应用任何类 型的运动估计/补偿。

频率变换器335将当前帧的空间域视频信息转换成频域(即,频谱)数据。 DCT是将块(空间信息)转换成DCT系数块的一类频率变换,DCT系数是频 率信息。DCT操作本身是无损的或几乎无损的。然而,与原始像素值相比, DCT系数压缩起来更高效,因为大部分重要信息集中在低频系数中。对于基于 块的视频帧,频率变换器335向像素数据或预测残差数据的各块应用DCT或 DCT的变体,从而产生DCT系数块。或者,变换器335应用诸如傅立叶变换 等另一常规频率变换或使用小波或子带分析。频率变换器335可被配置成向帧 应用8x8、8x4、4x8或其它大小的频率变换(例如,DCT)。

当后续的运动估计/补偿需要重构的当前帧时,参考帧重构器347对量化 的频谱数据系数执行逆量化。频率反变换器然后执行频率变换器335的操作的 逆操作,从而产生重构的预测残差(对于预测帧)或重构的关键帧。

在当前帧320是关键帧时,取重构的关键帧作为重构的当前帧(未示出)。 如果当前帧320是预测帧,则将重构的预测残差加到经运动补偿的当前帧以形 成重构的当前帧。帧存储可被用于缓冲重构的当前帧,以供在预测下一帧时使 用。

量化器345使用所确定的量化因子来量化经变换的系数。一般而言,量化 因子被应用于每个系数,这类似于将每个系数除以相同值并舍入。例如,若系 数值为130且量化因子为10,则经量化的系数值为13。由于低频DCT系数往 往具有更高的值,因此量化导致精度的损失,但是不会完全损失关于系数的信 息。另一方面,由于高频DCT系数往往具有零或接近零的值,因此高频系数 的量化通常导致连续的零值区域。基于当前帧调节量化因子旨在为用户提供更 一致的视频体验。

熵编码器350压缩量化器345的输出以及某些辅助信息(例如,运动信息、 空间外插模式、量化步长)。典型的熵编码技术包括算术编码、差分编码、霍 夫曼编码、游程长度编码、LZ编码、词典编码,和以上的组合。熵编码器350 通常对不同种类的信息(例如,DC系数、AC系数、不同种类的辅助信息)使 用不同的编码技术,并可从特定编码技术内的多个代码表中进行选择。熵编码 器350将压缩视频信息置于缓冲器355中。一般而言,以恒定或相对恒定的比 特率从缓冲器355中耗尽压缩视频信息,该信息被存储以用于以该比特率进行 的后续流传送。生成较少的关键帧减少了带宽要求。

诸如H.264/MPEG-4 AVC的一些编码方案使用SI帧和SP帧。一般而言, SI帧和SP帧的大小可以小于其他编码I帧和P帧。这样,即使视频会议内需 要关键帧,SI帧的大小要小于其他编码I帧。

根据另一实施例,关键帧可跨两个或多个帧分布。例如,关键帧所分布在 的每个帧的一部分可包括I宏块。例如,第一MB(宏块)行被编码为I,而该 帧的其余部分被编码为P。对于第二帧,第二MB行被编码为I,而该帧的其 余部分被编码为P等等。在此示例中,关键帧跨N帧分布,其中N为编码帧 中的MB行的数量。这减少了发送关键帧时的关键帧突发并随时间分布关键帧 的大小。关键帧也可在帧内被过度编码以帮助防止分组丢失。例如,关键帧的 同一部分可被包括在两个或多个帧中。

现在参考图4,描述了用于确定何时发送关键帧作为同步点的说明性过 程。

当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实 现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计 算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算 系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻 辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、 动作和模块可用软件、固件、专用数字逻辑,及其任何组合来实现。

在开始框之后,操作流向操作410,在那里客户端进行注册以参与视频会 议。例如,客户端可经由网络连接操作上连接到计算设备100并且可请求参与 视频会议。

移至操作420,收集和/或分析所注册的客户端的能力和请求。例如,计算 设备100可确定该客户端可用的带宽量。计算设备100还可确定该客户端的数 据处理能力,诸如视频编码和/或解码能力和/或数据处理速度。视频编码/解码 能力可包括分辨率能力,诸如最大分辨率能力。还可从客户端接收订阅请求。 该请求可包括诸如期望分辨率、比特率和帧率等信息。与本发明的实施例一致, 计算设备100可从参与视频会议的任何和/或所有客户端接收多个订阅请求。例 如,一个客户端可请求所有其他参与客户端的较低分辨率版本;另一客户端可 请求来自在视频会议中可被指定为活跃讲话者的任何客户端的高分辨率版本 以及来自一些或所有其他客户端的低分辨率版本。

移至操作430,生成一个或多个关键帧以发送给视频会议的新客户端。关 键帧可由参与视频会议的现有客户端和/或视频会议服务器中的一个或多个生 成。例如,对于将为新客户端生成流的每个客户端,视频会议服务器可请求为 新客户端生成关键帧并将其发送给视频会议服务器。与本发明的实施例一致, 现有客户端除了关键帧以外还生成预测帧。

流至操作440,将关键帧提供给该客户端。关键帧被用作新客户端的同步 点。与本发明的实施例一致,关键帧不被提供给视频会议中的其他客户端。

转到操作450,视频会议服务器将生成的流路由至各客户端。在正常操作 期间,客户端接收P帧而不会自动且周期性地接收关键帧。

转到判定操作460,确定是否有客户端需要同步点。例如,客户端可能经 历分组丢失或者可能有客户端添加新流。当客户端需要同步点时,该过程返回 操作430,在此生成关键帧。所生成的关键帧可包括该客户端订阅的所有或部 分客户端。

当不需要同步点时,该过程流至结束操作并返回以处理其它动作。

以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描 述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施 例,所以本发明落在所附权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号