用于视频感知的屏幕捕获和压缩的系统和方法

文档序号:7915253阅读:118来源:国知局
专利名称:用于视频感知的屏幕捕获和压缩的系统和方法
用于视频感知的屏幕捕获和压缩的系统和方法
背景技术
屏幕共享是使ー个主机计算装置能通过通信网络与位于远程的一个或多个其他计算装置同步或异步地共享在其屏幕上呈现的内容的技术,对于非限制性的示例,所述主机计算装置可能与电话会议的演讲者相关联,而所述ー个或多个其他计算装置可能与电话会议的ー个或多个观众/听众相关联。对于主机计算装置来说,屏幕共享的实现通常包括捕获在屏幕上呈现的内容,压缩所捕获的屏幕内容用于传输,以及将所压缩的屏幕内容通过网络传输到远程计算装置的计算装置。对于每个远程计算装置来说,屏幕共享的实现通常包括接收压缩的屏幕内容,解压缩以及将该屏幕内容显示在该远程计算装置的显示器上。 通常所共享的屏幕内容可以是但不限于在计算装置上运行的应用,例如MS Word、PowerPoint和web浏览器等。这种类型的内容可能包含ー个或多个文本图像(例如,简单文本)和静态图像(例如,纯色背景和连续色调图像)并且其在此处被称为“非视频内容”以与“视频内容”相区別。非视频内容会发生变化而且会经常变化(尽管可能不如视频内容那样頻繁),但与视频内容不同,非视频内容包含微细节(例如,文本和图标),其需要以尽可能最高的图像质量被保留以便在远程计算装置的屏幕上非常准确地进行再现。在屏幕上的呈现的本质上为多媒体的内容越来越多,且视频内容(例如视频剪辑、动画或仿真应用)变得越来越重要,因为计算机和互联网已经变得足够快使得视频内容成为经常使用的内容类型。因此,能够在共享传统的非视频内容之外共享视频内容越来越有必要。现有的屏幕捕获和压缩技术是经优化的且非常适用于非视频内容,非视频内容要求高保真度但低频率和不規律的更新。然而,与文本的和静态的图像不同,在屏幕上呈现的视频内容本质上是动态的并且随着时间持续变化。因此,需要以高的、规律的帧/屏幕截图速率来对在屏幕上的视频内容进行捕获和压缩而像素准确度并不是太重要。尽管非视频内容优化的捕获和压缩方法肯定可以编码视频内容,但它们对于视频内容通常都非常低效。对于非限制性示例,现有的静态内容优化捕获方法可能在带宽为毎秒IM比特的通信链路上仅能再现低频率,例如毎秒1-3个帧/屏幕截图(fps),因为它们力求最大化图像保真度而以牺牲更新频率为代价。如果这样的方法被应用于需要以高频率(例如以30fps)捕获以用于实时传输的视频内容,其将导致压缩数据的高比特率(例如,毎秒IOM比持),这给执行压缩的计算机装置的处理能力和传输该压缩数据的通信网络的带宽造成了非常重的负担。对于另一个非限制性示例,现有的图像压缩方法,例如JPEG和PNG,以及特别是结合JPEG和PNG的复杂的衍生方法,使它们对于非视频内容的高保真度压缩是很好的选择,但对于视频内容的快速压缩则不是好的选择。另ー方面,经由诸如札264的视频编码的视频压缩能够以比图像压缩方式高10倍或更多倍的效率来压缩视频,但是不适用于压缩非视频内容,因为这会导致不可接受的图像质量。对于非限制性示例,在1600x1200的屏幕上的8磅文字将是不可读的。传输和共享在屏幕上呈现的视频内容的ー种方法是将其作为与屏幕上的其余内容分开的视频文件进行传输/流式传输。对于非限制性示例,视频内容的丈件首先被发送者上载到中央存储位置,然后被下载到预定观众的计算装置并且与和观众共享的屏幕截图的其余部分同步地在观众的计算装置上进行回放。然而,这种方法仅仅在发送者能控制视频文件或在与其他人共享视频文件之前提前准备了视频文件,并且发送者和观众的计算装置必须预先安装各种视频编码以支持视频文件的回放的情况下才起作用。当要被共享的视频内容的文件不能轻易得到时,对于非限制性示例,当视频被嵌入在POwerPOint演示中或者在类似YouTube*视频的网页或任何Adobe FIash 1视频/动画/仿真的内部播放时,该方法是行不通的。前述的相关技术的示例及与其相关的限制意在说明而不是排除。在阅读说明书和研究附图之后,相关技术的其他限制将变得明显。


图I描述了对于多媒体屏幕捕获和压缩支持视频感知压缩的系统示例框图;
图2描述将屏幕内容分割成非视频内容和视频内容的示例;图3描述了对于根据图I的视频感知屏幕捕获和压缩的支持视频感知压缩的过程的示例的流程图。
具体实施例方式附图中以示例的方式而不是限制的方式图示了本方法,在附图中类似的标记指示相似的元素。应注意在本公开中的对“ー种”或“ー个”或“一些”实施例的引用不必是同一实施例,这样的引用意味着至少ー个。提出了新的方法,其考虑支持视频感知屏幕捕获和压缩的系统和方法。更具体地,视频感知方法首先检测在主机装置的屏幕上是否或何时在主动地回放视频内容。如果视频内容正在被主动地呈现,则该方法将屏幕内容分成(分割为)静态(非视频)内容和视频内容。接着,该方法对屏幕的视频内容应用视频特定的捕获和压缩方法并对屏幕的非视频内容应用其他合适的压缩方法。屏幕的压缩的静态和视频内容被分开地且独立地通过网络传输到远程计算装置,然后被解压缩和处理以用其原始内容重建该屏幕,用于在远程计算装置的屏幕上显示。通过将屏幕内容分割为静态和视频内容以及通过对于视频和非视频内容分别使用各自的优化的捕获和压缩技木,该方法结合了视频特定和非视频特定技术的好处并且能自动地处理任何屏幕内容。通过检测正在屏幕上播放的视频内容以及对这样的内容使用视频压缩,该方法可大大提高压缩比并降低将要被传输的压缩数据的比特率,例如,从毎秒IOM比特(在使用非视频压缩的情况下)降到毎秒400K比特而不损及视频内容的人为感知质量,因此使计算装置和通信网络能够在相同的容量和带宽下以每秒30帧(而不是仅每秒2帧)的速度处理视频内容的实时传输。相反地,该方法通过对于非视频内容使用非视频特定的(而不是视频特定的)压缩技术来保持文本/图像所要求的高保真度。图I描述了对于多媒体屏幕捕获和压缩支持视频感知压缩的系统的示例框图。尽管该框图以功能上分开的方式来描述组件,但这样的描述仅为了说明的目的。明显地,在图中描绘的组件可以任意地进行组合或被分为独立的软件、固件和/或硬件组件。而且,显然无论这样的组件是如何被组合或划分的,它们都可以在同一主机或多个主机上执行,且其中多个主机可以是由ー个或多个网络连接的。
在图I的示例中,系统100包括一个或多个计算装置(未示出),其每ー个可操作地用于运行分割引擎102、动态引擎104和非视频内容引擎110中的至少ー个或多个,所述动态引擎104还至少包括视频捕获组件106和视频压缩组件108,所述非视频引擎110还至少包括非视频捕获组件112和非视频压缩组件114。该系统100还可包括通信网络116,和一个或多个远程计算装置(未示出),其每ー个可操作地用于运行视频解压缩引擎118、非视频解压缩引擎120和屏幕重组引擎122中的至少ー个或多个。
此处所使用的术语“引擎”或“组件”指的是软件、固件、硬件或用于实现目的的其他组件。引擎或组件通常会包括在非易失性存储器(也被称为辅助存储器)中存储的软件指令。当执行该软件指令时,至少该软件指令的子集被处理器加载到内存(也被称为主存储器)中。处理器接着执行内存中的软件指令。处理器可以是共享的处理器、专用的处理器或者共享的处理器或专用的处理器的组合。典型的程序将包括对硬件组件(例如I/O装置)的调用,其通常要求执行驱动程序。驱动程序可以或可以不被视为引擎的一部分,但该区别并不重要。在图I的示例中,运行引擎和组件的每ー个主机/主机装置/计算装置可以是计算装置、通信装置、存储装置或能够运行软件组件的任何电子装置。对于非限制性示例,计算装置可以是但不限于膝上型PC、上网本PC、桌面PC、平板型PC、iPod、iPhone、PDA或服务器机器。存储装置可以是但不限于硬盘驱动器、闪存驱动器或任何便携存储装置。通信装置可以是但不限于移动电话或智能电话。在图I的示例中,分割引擎102可操作地用于检测/识别在计算装置的屏幕上是否正在主动地回放和呈现视频内容,并且如图2的示例所示,在捕获和压缩屏幕内容之前,该引擎将该屏幕内容202分成非视频内容204的区域和视频内容206的区域。这里,视频内容指的是任何类似于视频的动态内容,例如随时间以固定间隔的变化,其包括但不限干,视频剪辑、AdobeFla Sh 动画或视频、视频游戏或仿真应用。这里,进行静态和视频内容的分割不仅是为了能分别对于静态和视频内容进行压缩优化的目的,而且也是为了优化屏幕捕获。对于非限制性示例,对于视频内容的区域以30fps的速度进行屏幕捕获,对于非视频内容的区域以3fps的速度(或者甚至以由诸如按键按下或鼠标移动的事件触发的不規律间隔)进行屏幕捕获。在一些实施例中,分割引擎102使用户能够通过在屏幕内容的相应区域上交互地标记、画轮廓、指向或点击来手工地选择屏幕上的静态和/或视频内容的区域。对于非限制性示例,分割引擎102使用户能够通过指向例如呈现视频内容的应用窗ロ的左下角坐标以及通过其呈现视频内容的应用窗ロ的大小来识别在屏幕上呈现视频内容的地方。可替代手エ选择或与手工选择相结合,分割引擎102执行自动视频检测以识别屏幕上的视频和/或非视频内容的区域,包括如下面详细地讨论的视频内容区域内部的非视频内容的子区域或者相反。在一些实施例中,分割引擎102不仅识别在屏幕上是否正在呈现视频内容,而且还识别关于这样的视频内容是否正在被主动地播放的视频内容当前的活动状态。对于非限制性示例,演讲者可暂停视频剪辑的回放以说明一点或进行评论。关于视频内容的活动状态的信息会使分割引擎102能对是将暂停的视频视为视频内容还是非视频内容做出“智能”的决策,而且如果使用静态压缩方法来对暂停的视频内容进行压缩,其看上去会好些。
在一些实施例中,分割引擎102通过识别在主机上运行的面向视频的应用的特定应用窗ロ来检测正在屏幕上呈现的视频内容。这样的面向视频的应用包括但不限于Windows1 Media Plaver>QuickTime 、ReaIPlayer 和 Adobe Flash 。此外,分割引擎102也可查找运行的Web浏览器,例如Internet Explore或Firefox,并且通过检查网站/网页的URL和/或页面标题来识别该浏览器此刻正在浏览的网站/网页。分割引擎102接着可以通过将网站的URL(例如www. youtube, com或video, yahoo, com)与包括一组知名的面向视频的网站的查找表进行比较,和/或提取网页的标题中的关键字(例如"视频剪辑")并将其与一组面向视频的敏感词语进行匹配,来确定该网站/网页是否正在呈现被嵌入在浏览器中的视频内容。在一些实施例中,分割引擎102通过持续地监控屏幕的变化以及寻找其变化模式类似视频的区域来检测正在被呈现的视频内容。由于视频内容可以动态地变化,所以对于非限制性示例,分割引擎102需要通过以每秒30帧的速度抓取屏幕截图,来以高频率捕获并监控在屏幕上呈现的内容。接着,分割引擎102在该屏幕上寻找其内容在所抓取的屏幕 截图的像素级上经常变化的区域,例如在所监控的特定时间段(例如,至少I秒)变化超过毎秒5次。此处,区域可以是矩形形状,并且如果在两个连续屏幕截图之间在该矩形区域内超过预定阈值(例如75% )或更多的像素是不同的,则该区域内的内容被认为已经发生变化。分割引擎102还通过防止将由普通用户活动(例如,滚动窗口内的内容)引起的像素变化视为视频内容来減少假阳性(false positive)视频内容检测。由于可以以不同的形状和大小在屏幕上呈现视频内容,所以分割引擎102可以基于一组启发式方法来选择要监控的屏幕区域。对于非限制性示例,为了全面的屏幕内容监控,分割引擎102可采集大小范围从全屏大小到Windows Media Player或YoilTllbe 的大小的ー组矩形区域,因为大部分的视频内容通常被呈现在或者扩展到全屏或者被限制在媒体播放器之内的矩形区域中。也可以采用其他可供选择的形状的区域(例如圆形区域)来进行监控。应注意,为了防止诸如进度条、图形均衡器、动画图标(例如,IE的旋转球体)的小的、经常更新的区域被视为视频内容,所选择的用于监控的区域应该超过最小的尺寸阈值。在一些实施例中,分割引擎102自动检测尽管持续变化但仍应被表征为非视频内容的内容。这样的内容包括但不限于如上文所提到的进度条、图形均衡器、动画图标和旋转的徽标。对于非限制性示例,尽管正在上载或下载视频内容的应用的进度条可能持续地变化以显示上载或下载的进度,但该应用窗ロ本身的区域应该被视为非视频内容,因为用视频编码对其进行压缩将导致进度条及与其关联的任何文本(例如已用时/剰余的时间计数器)的较差的人为感知质量。在这样的情景中,分割引擎102可根据与进度条关联的特定应用窗ロ(例如,Whld0WS Media Player)来确定进度条的精确位置,并将该进度条作为非视频内容处理。在一些实施例中,分割引擎102基于识别面向视频的应用窗口和监控在屏幕上呈现的内容的变化的组合方式来检测正在屏幕上主动地呈现的视频内容。首先,分割引擎102识别面向视频的应用和网页,因为识别这样的应用和网页通常比屏幕内容监控更快且耗时较少。当没有面向视频的应用或网页能被识别时,对于非限制性示例,当视频内容被嵌入在MS PowerPoint演示中吋,分割引擎102接着借助屏幕内容监控以在屏幕上识别其内容持续变化的区域。这样的组合方式在视频内容检测的效率(经由快速的应用识别)和全面性(经由全面的内容监控)之间进行了平衡。这样的组合方式也提高了视频内容的检测的准确度,因为与这两个单独的方法中任何一个相比,它减少了假阳性和假阴性(falsenegative)的数量。在图I的示例中,动态引擎104取得关于屏幕上的视频内容的存在、位置、大小和活动的信息,并基于这样的信息捕获和处理在屏幕上呈现的视频内容的屏幕截图。如果视频内容被分割引擎102检测为正在屏幕上主动地回放,或者分割引擎102检测到暂停的视频内容正在开始或又继续在屏幕上回放,则动态引擎104的视频捕获组件106以高频率(例如,以每秒30帧)捕获视频内容的屏幕截图以用于视频内容的实时传输。在一些实施例中,为了确认视频内容是否的确被主动地呈现在屏幕上,动态引擎104的视频捕获组件106可以在开始捕获该视频内容之前对视频内容开始后的几个帧进行延迟。对于所抓取的每个屏幕截图,视频捕获组件106向视频压缩组件108提供所捕获的视频内容的屏幕截图,所述视频压缩组件108用其自己的压缩方法和参数对所述屏幕截图进行压缩,之后将压缩数据通过通信网络122进行传输。由于视频内容快速变化的性质,对于视频压缩组件108,帧率(频率)比单个帧质量更重要。为了最大化视频内容的人为感知的质量,视频压缩组件108可 采用视频编码,其对于快速变化的视频内容的屏幕截图执行高帧率(例如每秒30个屏幕截图)但每单个屏幕截图可能较低的质量/保真度(例如,屏幕截图的原始质量的20%)的压缩,以便在接收端的远程观众能够看到没有中断的、连续移动/改变的视频内容,同时在运行该视频压缩组件108的计算装置上和在网络122的带宽上的负载是可接受的。此处,视频编码可以是但不限于H. 263、H. 264、Motion JPEG、On2的VP6、VP7和VP8的其中一个。在图I的示例中,静态引擎110取得关于屏幕上的非视频内容的存在、位置、大小和活动的信息,并基于这样的信息处理在屏幕上呈现的非视频内容的屏幕截图。如果没有检测到视频内容或者视频内容被暂停或停止,静态引擎110的非视频捕获组件112以低频率捕获非视频内容的屏幕截图以保留静态图像和文本的高质量/保真度,并且将每个屏幕截图完整地提供给非视频压缩组件114,包括暂停的视频内容的部分。非视频压缩组件114用其自己的压缩方法和参数对非视频内容的屏幕截图进行压缩,之后将压缩数据通过通信网络122进行传输。此处,非视频压缩组件114是这样的编码,其能对静态的或慢速变化的非视频内容的屏幕截图进行高质量(例如,无损或者屏幕截图的原始质量的80%)压缩以使得在接收端的远程观众能看见具有良好的分辨率的清晰的图形和图像。由于非视频内容的屏幕截图的静态性质,压缩质量对于非视频压缩组件114更重要,因为为了清楚地读取图像的文本和/或欣赏细节,观众可能需要在较长时间内(例如几秒或几分钟)注视静止图像。尽管与压缩的视频内容相比,该压缩数据的大小可能比较大,但在运行非视频压缩组件114的计算装置上和在网络122的带宽上的负载是可接收的,因为需要捕获、压缩和传输的屏幕截图较少。在一些实施例中,静态引擎110可采用多个非视频压缩组件114,其每个可操作地用于用自己的压缩方法和压缩参数(例如,图像分辨率或颜色映射)处理和压缩特定类型的非视频内容,这使得在减少失真可见性的同时改善了压缩。对于非限制性示例,静态图像或文本的背景部分适用于连续色调图像压缩器,例如JPEG或JPEG-2000。可以使用诸如PNG的位像格式下的无损数据压缩而不是诸如JPEG、GIF、TIFF和BMP的传统的连续色调压缩器,来对包括多边缘和连续色调细节的非视频内容的部分进行压缩。可以使用诸如MMR、JBIG、JBIG-2和PWC的标准二进制编码器对文本对象和边缘进行有效的压缩。在图I的示例中,网络122使视频压缩组件108和非视频压缩组件114能通过通信网络122将屏幕的视频和非视频内容的压缩的屏幕截图传输到对应的视频解压缩引擎118和非视频解压缩引擎120以进行解压缩。在一些实施例中,视频压缩组件108和非视频压缩组件112还可以以诸如TI FF-FX的格式打包屏幕的视频和非视频内容的压缩的屏幕截图或将其打包为ITU-T数据流,以用于在网络122上传输。此处,网络122可以是基于诸如TCP/IP协议的特定通信协议的通信网络。这样的网络可以是但不限于互联网、内联网、广域网(WAN)、局域网(LAN)、无线网、蓝牙、WiFi和移动通信网。网络的物理连接和通信协议对于本领域人员是公知的。在图I的示例中,视频解压缩引擎118和非视频解压缩引擎120对分别从相应的视频压缩组件108和非视频压缩组件112接收的屏幕的视频内容和非视频内容的压缩的屏幕截图进行解压缩。此处,为了使视频解压缩引擎118能够用具有相同(压缩/解压缩)方法和参数的相应类型的解压缩器对视频内容的压缩的屏幕截图正确地解压缩,视频压缩引 擎108和视频解压缩引擎118需要就将要用于压缩视频内容的屏幕截图的压缩器的类型及其关联的参数事先达成一致。相似地,在非视频压缩组件114和非视频解压缩引擎120之间也需要达成一致。在图I的示例中,屏幕重组引擎122分别处理来自视频解压缩引擎118和非视频解压缩引擎120的屏幕的视频和非视频内容的解压缩的屏幕截图,并且进一步重建在主机计算装置的屏幕上呈现的原始内容的一组屏幕截图,以用于在远程计算装置上进行显示。更具体地,为了重建主机计算装置的屏幕上的原始内容,屏幕重组引擎122可以根据由分割引擎102检测的信息将屏幕的视频和非视频内容的解压缩的屏幕截图复制到它们各自在屏幕上的原始位置。每当收到视频或非视频内容的新的屏幕截图时,屏幕重组引擎122将通过更新屏幕内容的先前重建的屏幕截图的相应部分来重建新的屏幕截图。由于屏幕的视频内容的屏幕截图可能是以比屏幕的非视频内容的屏幕截图更高的频率捕获的,所以重建的屏幕截图的视频部分将比静态部分更新的更频繁。接着,由于产生了这样的重建的屏幕截图,屏幕重组引擎122将连续地提供原始内容的重建的屏幕截图的集合以用于在远程计算装置的屏幕上进行呈现。当在图I中描述的系统100运行时,分割引擎102检测在主机计算装置的屏幕上是否正在主动地回放和呈现视频内容。如果检测到视频内容,分割引擎102将该视频内容与屏幕的其余非视频内容分开,并分别地将视频和非视频内容提供给动态引擎104和静态引擎HO。接着,动态引擎104的视频捕获组件106以高频率捕获该视频内容的截图以用于视频内容的实时传输,而静态引擎1110的非视频捕获组件112以低频率捕获非视频内容。由视频捕获组件106和非视频捕获组件112抓取的屏幕截图分别地被提供给视频压缩组件108和非视频压缩组件114。视频压缩组件108和非视频压缩组件114接着分别地用其各自的压缩方法和参数以不同的压缩速度和质量对视频和非视频内容的屏幕截图进行压缩。然后,通过通信网络122将视频和非视频内容的压缩的屏幕截图传输到对应的视频解压缩引擎118和非视频解压缩引擎120以分别进行解压缩。屏幕重组引擎122处理屏幕的视频和非视频内容的解压缩的屏幕截图,以重建原始内容的一组屏幕截图,用于在远程计算装置上进行呈现。
图3描述了对于根据图I的视频感知屏幕捕获和压缩支持视频感知压缩的过程的示例的流程图。尽管该图为了说明的目的以特定次序描述了功能步骤,但该过程不限于任何特定的步骤次序或安排。相关领域的技术人员应理解在该图中描绘的多个步骤是可以以各种方式省略、重新排列、组合和/或改写的。在图3的示例中,流程图300开始于块302,这里检测正在主机装置的屏幕上主动地回放的视频内容并将其与屏幕的非视频内容分开。如上文所讨论的,可以通过面向视频的应用识别或内容变化监控或二者的组合手动或自动地检测视频内容。如果检测到被主动地呈现的视频内容,则流程图300继续到块304,这里以高频率捕获视频内容的屏幕截图以反映用于实时传输的视频内容的动态的性质。流程图300继续到块306,这里对视频内容的屏幕截图执行视频压缩。流程图300继续到块308,这里以低频率捕获屏幕的非视频内容的屏幕截图以用于非视频内容的高质量的传输。流程图300接着继续到块310,这里对非视频内容的屏幕截图执行非视频压缩。流程图300继续到块312,这里屏幕的视频和非视频内容的压缩的屏幕截图都通过通信网络进行传输。流程图300继续到块314,这里分别对屏幕的视频和非视频内容的压缩的屏幕截图进行解压缩。流程图300结束于块316,这里从解压缩 的视频和非视频内容的屏幕截图重建原始内容的一组屏幕截图,并将其呈现在远程计算装置的屏幕上。根据本公开的教导使用常规的通用或专用的数字计算机或可编程的微处理器可以实现一个实施例,这对计算机领域的技术人员是显而易见的。基于本公开的教导熟练的程序员可以容易地准备合适的软件编码,这对软件领域的技术人员是显而易见的。也可以通过制备集成电路或通过将常规组件电路的适当网络互联来实现本发明,这对本领域技术人员是显而易见的。一个实施例包括计算机程序产品,其为其上/中存储指令的机器可读介质(媒体),其中指令用于对一个或多个主机编程以执行此处所述的任何特征。机器可读介质可包括但不限于一种或多种类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存装置、磁卡或光卡、纳米系统(包括分子存储器IC)或者适合于存储指令和/或数据的任何类型的媒体或装置。本发明包括在任何一个计算机可读介质(媒体)上所存储的软件,所述软件用于控制通用的/专用的计算机或微处理器的硬件,以及用于使计算机或微处理器能与观察者或利用本发明的结果的其他机制进行交互。这样的软件包括但不限于装置驱动程序、操作系统、执行环境/容器以及应用。为了说明和描述的目的提供了对所要求保护的主题的各种实施例的上述描述。其意不在于穷尽或将所要求保护的主题限制到所公开的精确形式。许多修改和变化对本领域的技术人员而言是显而易见的。具体地,尽管在上述的系统和方法的实施例中使用了“组件”概念,但明显地这样的概念可以与诸如类、方法、类型、接口、模块、对象模型的对等概念以及其他合适的概念互换地使用。为了最恰当地描述本发明的原理及其实际应用而选择和描述了实施例,因此使相关领域的其他技术人员能理解所要求保护的主题的各种实施例和适合于具体使用的该各种修改是可预期的。
权利要求
1.一种系统,包括 分割引擎,其操作时,检测正在主机装置的屏幕上呈现的视频内容并且将其与在所述屏幕的其余部分上呈现的非视频内容分开; 动态引擎,其操作吋, 捕获视频内容的多个屏幕截图; 对所述视频内容的多个屏幕截图的每ー个执行视频压缩; 静态引擎,其操作吋, 捕获非视频内容的多个屏幕截图; 对所述非视频内容的多个屏幕截图的每ー个执行非视频压縮。
2.根据权利要求I所述的系统,还包括 视频解压缩引擎,其操作时,对所述视频内容的压缩的多个屏幕截图的每ー个进行解压缩 非视频解压缩引擎,其操作吋,对所述非视频内容的压缩的多个屏幕截图的每ー个进行解压缩。
3.根据权利要求2所述的系统,还包括 屏幕重组引擎,其操作吋, 分别从解压缩的视频和非视频内容的屏幕截图重建主机装置的屏幕的内容的ー组屏.截图; 在与远程计算装置关联的屏幕上呈现主机装置的屏幕的内容的该组屏幕截图。
4.根据权利要求I所述的系统,其中 主机装置是计算装置、通信装置、存储装置或能够运行软件组件的任何电子装置。
5.根据权利要求I所述的系统,其中 视频内容包括视频剪辑、FI a s丨#应用、动画或仿真应用中的ー个或多个。
6.根据权利要求I所述的系统,其中 非视频内容包括文本和图像以及其他类型的非视频内容。
7.根据权利要求I所述的系统,其中 分割引擎使用户能手工地选择屏幕上的静态和/或视频内容的区域。
8.根据权利要求I所述的系统,其中 分割引擎执行自动视频检测以识别屏幕上的视频和/或非视频内容。
9.根据权利要求I所述的系统,其中 分割引擎识别通过其呈现视频内容的应用窗ロ的位置和大小。
10.根据权利要求I所述的系统,其中 分割引擎识别视频内容是否正在被主动地呈现或被暂停。
11.根据权利要求10所述的系统,其中 如果视频内容被暂停,则分割引擎不将该视频内容与屏幕内容的其余部分分开。
12.根据权利要求I所述的系统,其中 分割引擎通过识别在主机上运行的面向视频的应用的特定应用窗ロ来检测正在屏幕上呈现的视频内容。
13.根据权利要求12所述的系统,其中面向视频的应用是 Windows Media Player、QuickTime 、RealPlayer 、Adobe Flash 、和嵌入在web浏览器内部的视频的其中一个。
14.根据权利要求I所述的系统,其中 分割引擎通过持续地监控屏幕在内容上的变化并寻找其内容变化模式类似视频的屏幕区域来检测正在屏幕上呈现的视频内容。
15.根据权利要求14所述的系统,其中 分割引擎通过捕获屏幕的多个屏幕截图并且监控在特定时期内在屏幕区域中在屏幕截图的像素级上的变化来检测正在屏幕上呈现的视频内容。
16.根据权利要求15所述的系统,其中 如果在该特定时期内该区域中的屏幕截图的像素变化超过预定的阈值,则分割引擎确定该屏幕区域中的变化。
17.根据权利要求I所述的系统,其中 分割弓I擎检测尽管持续变化但仍应被表征为非视频内容的内容。
18.根据权利要求I所述的系统,其中 分割引擎基于识别面向视频的应用窗口和监控在屏幕上呈现的类似视频内容的模式的内容变化的组合,检测正在屏幕上呈现的视频内容。
19.根据权利要求I所述的系统,其中 动态引擎以比静态引擎捕获非视频内容的多个屏幕截图更高的频率捕获视频内容的多个屏幕截图。
20.根据权利要求I所述的系统,其中 为了确认视频内容的确被主动地呈现在屏幕上,动态引擎在开始捕获该视频内容之前对视频内容开始后的几个帧进行延迟。
21.根据权利要求I所述的系统,其中 动态引擎对视频内容的屏幕截图执行高帧率但每单个屏幕截图低质量/保真度的压縮。
22.根据权利要求I所述的系统,其中 视频压缩是 H. 263、H. 264、Motion JPEG、0n2 的 VP6、VP7 和 VP8 的其中ー个。
23.根据权利要求I所述的系统,其中 静态引擎对非视频内容的屏幕截图执行低帧率但每单个屏幕截图高质量/保真度的压缩。
24.根据权利要求I所述的系统,其中 静态引擎执行多种非视频压缩,每种非视频压缩可操作地处理和压缩特定类型的非视频内容的屏幕截图。
25.根据权利要求I所述的系统,其中 非视频压缩是PNG、GIF、BMP、JPEG和TIFF的其中ー个或其组合。
26.根据权利要求I所述的系统,其中 动态引擎和/或静态引擎各自以用于通过通信网络传输的格式对屏幕的视频和/或非视频内容的压缩的屏幕截图进行打包。
27.—种计算机实现的方法,包括检测与主机装置关联的屏幕上正在呈现的视频内容并且将其与该屏幕上的非视频内容分开; 捕获视频内容的多个屏幕截图; 对所述视频内容的多个屏幕截图的每ー个执行视频压缩; 捕获非视频内容的多个屏幕截图; 对所述非视频内容的多个屏幕截图的每ー个执行非视频压縮。
28.根据权利要求27所述的方法,还包括 对所述视频内容的压缩的多个屏幕截图的每ー个进行解压缩; 对所述非视频内容的压缩的多个屏幕截图的每ー个进行解压缩。
29.根据权利要求28所述的方法,还包括 分别从视频和非视频内容的解压缩的屏幕截图重建主机装置的屏幕的内容的ー组屏.截图; 在与远程计算装置关联的屏幕上呈现主机装置的屏幕的内容的该组屏幕截图。
30.根据权利要求27所述的方法,还包括 使用户能手动选择屏幕上的静态和/或视频内容的区域。
31.根据权利要求27所述的方法,还包括 执行自动视频检测以识别屏幕上的视频和/或非视频内容。
32.根据权利要求27所述的方法,还包括 识别通过其呈现视频内容的应用窗ロ的位置和大小。
33.根据权利要求27所述的方法,还包括 识别视频内容是否正在被主动地呈现或被暂停。
34.根据权利要求33所述的方法,还包括 如果视频内容被暂停,则不将该视频内容与屏幕内容的其余部分分开。
35.根据权利要求27所述的方法,还包括 通过识别在主机上运行的面向视频的应用的特定应用窗ロ来检测正在屏幕上呈现的视频内容。
36.根据权利要求27所述的方法,还包括 通过持续地监控屏幕在内容上的变化并寻找其内容变化模式类似视频的屏幕区域来检测正在屏幕上呈现的视频内容。
37.根据权利要求36所述的方法,还包括 通过捕获屏幕的多个屏幕截图并且监控在特定时期内屏幕区域中在屏幕截图的像素级上的变化来检测正在屏幕上呈现的视频内容。
38.根据权利要求37所述的方法,还包括 如果在该特定时期内该区域中的屏幕截图的像素变化超过预定的阈值,则确定该屏幕区域中的变化。
39.根据权利要求27所述的方法,还包括 检测尽管持续变化但仍应被表征为非视频内容的内容。
40.根据权利要求27所述的方法,还包括 基于识别面向视频的应用窗口和监控在屏幕上呈现的内容的变化的组合来检测正在屏幕上呈现的视频内容。
41.根据权利要求27所述的方法,还包括 以比静态引擎捕获非视频内容的多个屏幕截图更高的频率捕获视频内容的多个屏幕截图。
42.根据权利要求27所述的方法,还包括 为了确认视频内容的确正在被主动地呈现在屏幕上,在开始捕获该视频内容之前对视频内容开始后的几个帧进行延迟。
43.根据权利要求27所述的方法,还包括 对视频内容的屏幕截图执行高帧率但每单个屏幕截图低质量/保真度的压缩。
44.根据权利要求27所述的方法,还包括 对非视频内容的屏幕截图执行低帧率但每单个屏幕截图高质量/保真度的压缩。
45.根据权利要求27所述的方法,还包括 执行多种非视频压缩,每种非视频压缩针对特定类型的非视频内容的屏幕截图。
46.根据权利要求27所述的方法,还包括 以用于通过通信网络传输的格式对屏幕的视频和/或非视频内容的压缩的屏幕截图进行打包。
47.具有在其上存储的软件指令的机器可读介质,当所述软件指令被执行吋,使得系统 检测与主机装置关联的屏幕上正在呈现的视频内容并且将其与该屏幕上的非视频内容分开; 捕获视频内容的多个屏幕截图; 对所述视频内容的多个屏幕截图的每ー个执行视频压缩; 捕获非视频内容的多个屏幕截图; 对所述非视频内容的多个屏幕截图的每ー个执行非视频压縮。
全文摘要
提出了新的方法,其考虑支持视频感知屏幕捕获和压缩的系统和方法。更具体地,视频感知方法首先检测在主机装置的屏幕上是否在或何时主动地回放视频内容。如果视频内容正在被主动地呈现,则该方法将屏幕内容分成(分割为)静态(非视频)内容和视频内容。接着,该方法对屏幕的视频内容使用视频特定的捕获和压缩方法并对屏幕的非视频内容使用其他合适的压缩方法。该屏幕的压缩的静态和视频内容被分开地且独立地通过网络传输到远程计算装置,并且接着被解压缩和处理以重建其原始内容的屏幕,用于在远程计算装置的屏幕上进行显示。
文档编号H04N7/15GK102771119SQ201080058681
公开日2012年11月7日 申请日期2010年12月17日 优先权日2009年12月22日
发明者A·亚历山德罗夫, B·O·克里斯汀森, B·格林 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1