多图像缓冲器仿真的制作方法

文档序号:6434680阅读:177来源:国知局
专利名称:多图像缓冲器仿真的制作方法
多图像缓冲器仿真
背景技术
计算设备可以连接到不同的外围设备,这些外围设备可以显示计算设备经由连接提供的图像。由于一些连接可能是带宽受限的,因而外围设备处的图像呈现可能是缓慢或者抖动的,从而产生令人不愉快的观看体验。在加速图像呈现的一些现有方法中,计算设备在逐帧的基础上将对于图像帧做出的改变发送给外围设备以便降低带宽消耗和加速图像显示。图像的其余部分由计算设备在较早的时间发送的图像数据填充。然而,由于与计算设备的资源相比,外围设备的计算资源可能是有限的,因而外围设备处的图像装配过程也可能使图像显示缓慢。

发明内容
本文公开了涉及用于再现图像数据并且将图像数据发送给外围设备以便在外围设备处显示的主机计算设备的不同实施例。例如,一个实施例包括主机计算设备,该主机计算设备包括数据存储子系统和逻辑子系统。该主机计算设备进一步包括存储在数据存储子系统中且可由逻辑子系统执行以便向外围设备输出代表当前再现的图像与第(N-I)幅先前再现的图像之间的差异的图像数据帧的指令,N为整数并且具有值3或者更大。本发明内容部分被提供以便以简化的形式引入概念的选择,这些概念在下面的具体实施方式
中进一步加以描述。本发明内容部分并不预期识别要求保护的主题的关键特征或必要特征,也不预期用来限制要求保护的主题的范围。此外,要求保护的主题并不限于解决本公开内容的任何部分中指出的任何或全部缺点的实现方式。


图1为依照本公开内容的实施例的图像显示系统的示意图。图2为绘出依照本公开内容的一个实施例将图像数据从主机计算设备发送给外围设备以便在外围设备处显示的方法的流程图。图3为依照图2中所绘的方法的实施例在一定时间(A)处示例性图像显示系统的工作状态的示意图。图4为依照图2中所绘的方法的实施例在一定时间(A+1)处图3的示例性图像显示系统的工作状态的示意图。图5为依照图2中所绘的方法的实施例在一定时间(A+2)处图4的示例性图像显示系统的工作状态的示意图。图6为绘出依照本公开内容的另一个实施例将图像数据从主机计算设备发送给外围设备以便在外围设备处显示的方法的流程图。图7为依照图6中所绘的方法的实施例在示例性图像显示系统处的工作状态的时间进展的示意图。图8为绘出依照本公开内容的另一个实施例将图像数据从主机计算设备发送给外围设备以便在外围设备处显示的方法的流程图。
图9为依照图8中所绘的方法的实施例在示例性图像显示系统处的工作状态的时间进展的示意图。图10为依照本公开内容的实施例产生的变化的片块复合结构(composite)的示意图。
具体实施例方式诸如键盘、鼠标和写字板之类的外围设备可以包括用于呈现主机计算设备提供的图像的显示单元。例如,键盘可以包括呈现从主机PC接收的图像的显示屏幕。该屏幕可以显示功能图像,例如键盘布局,或者审美图像,例如外围设备皮肤。主机计算设备可以发送图像更新,使得外围设备显示的图像随着时间而刷新或者改变。例如,外围设备可以在逐帧的基础上接收来自主机计算设备的图像数据。由于图像可能频繁地更新,因而主机计算设备可以发送序列图像之间的差异而不是图像本身以便节省带宽。为了实现这点,主机计算设备可以将两个序列帧相减并且将减法结果发送给外围设备。外围设备接收该减法结果并且将其添加到外围设备中存储的图像数据,从而产生更新的图像。然而,由于减法结果仅仅是更新的图像的一部分,因而外围设备必须提供图像数据的平衡。常规上,外围设备拷贝来自另一个图像缓冲器的图像数据的平衡。该“前向拷贝”可以使得外围设备阻挡从主机接收未来的减法结果,直到前向拷贝完成。因此,前向拷贝可能使图像传输以及外围设备处的显示缓慢或者冻结。因此,本文描述了针对消除外围设备处的前向拷贝的实施例。胜过在逐帧的基础上传输序列减法结果的是,本文描述的实施例传输包括当前帧与至少前(N-I)个帧之间的差异的图像数据帧,其中N为整数3或者更大并且其中N等于或大于外围设备缓冲器的数量。因此,在N=3的情况下,主机计算设备传输当前帧与帧序列中两帧之前的图像之间的差异。在一些实施例中,图像数据帧可以包括当前再现的图像与第(N-I)幅先前再现的图像之间的所有差异。图1示出了图像显示系统100的实施例。如图1中所示,图像显示系统100包括主机计算设备102和外围设备160。主机计算设备102被描绘为经由数据信道150连接到外围设备160。数据信道150可以包括有线和/或无线的数据信道。数据信道150的实例包括但不限于USB信道、蓝牙信道和802. Ilx信道。主机计算设备102包括用于保持逻辑子系统106执行的指令的数据存储子系统 104。类似地,外围设备160包括用于保持逻辑子系统172执行的指令的数据存储子系统 174。数据存储子系统104和162可以包括一个或多个大容量存储设备,例如硬盘和/或非易失性闪存,以及一个或多个易失性存储设备。逻辑子系统172可以包括一个或多个处理器,例如CPU和/或GPU。因此,应当理解的是,主机计算设备102和外围设备160 二者可以是计算设备。主机计算设备102的实例包括但不限于个人计算机、移动计算机、无线计算设备和工作于云环境中的服务器。外围设备160的实例包括多功能外围设备、键盘、鼠标和写字板。在图1所绘的实施例中,主机计算设备102包括再现模块112和输出模块118。再现模块112基于从图像源接收的图像数据产生用于显示的图像,所述图像源例如运行在主机计算设备102上的图形引擎(未示出)。例如,再现模块112可以基于从图形引擎接收的光栅图像数据产生像素数据栅格。再现的图像存储在主机后台缓冲器116中,图像数据帧由输出模块118从该主机后台缓冲器输出到外围设备160。在一些实施例中,输出模块118可以包括帧缓冲器,该帧缓冲器被配置成将来自主机后台缓冲器116的图像数据帧推送到外围设备160。可替换地, 输出模块118可以被配置为主机前台缓冲器,其存储由外围设备160从输出模块118拖曳的图像数据帧。如上面所解释的,从主机计算设备102发送的图像数据帧也包括主机后台缓冲器 116中存储的图像与第(N-I)幅先前发送的图像之间的差异。主机计算设备102识别该差异、将该差异存储在主机图像数据存储链114中。主机图像数据存储链114仿真外围设备160的缓冲链。仿真外围设备缓冲链消除了外围设备160处的前向拷贝。这潜在地允许图像显示系统100释放外围设备160处的计算资源并且改进图像传输和显示速度。主机图像数据存储链114包括至少N个主机图像数据存储元件115,N为整数并且其值为3或者更大。N的值被选择成使得主机图像数据存储元件115的数量匹配或超过外围设备缓冲器164的数量。因此,主机图像数据存储链114可以用来累加所述N个主机图像存储元件115内的一个或多个差异,仿真外围设备160处的外围设备缓冲链162中存储的图像数据。在一些实施例中,主机后台缓冲器116可以作为所述N个主机图像数据存储元件 115之一包含在主机图像数据存储链114中,从而形成主机图像缓冲链。在一些其他的实施例中,主机图像数据存储链114可以包括N个差异列表,例如N个变化区域列表或者N个变化片块(tile)列表,其中每个主机图像数据存储元件115包括相应的帧差异。在一些实施例中,主机后台缓冲器116和输出模块118可以包含在可选的抽象层 110中。可以将抽象层110分割成用于保持图像数据的附加存储元件。因此,抽象层110可以提供一种用于将功能分组在主机计算设备102内的方便的结构。然而,应当理解的是,抽象层110是可选的,并且可以在没有抽象层的情况下实现本公开内容的益处。如上面所介绍的,外围设备160包括将接收的图像存储在多个外围设备缓冲器 164中的外围设备缓冲链162。外围设备缓冲链162是具有N个外围设备缓冲器164的连续封闭缓冲链。一旦在外围设备160处接收到图像数据帧,则将其存储到每个外围设备缓冲器 164中,直到被到来的图像数据帧覆盖。在这里描述的实施例中,外围设备后台缓冲器中接收且从外围设备前台缓冲器显示图像数据帧。然而,应当理解的是,在本公开内容的范围内可以采用其他适当的缓冲方案。在图1所示的实施例中,外围设备缓冲链162包括两个缓冲器指针166。缓冲器指针166指示哪个外围设备缓冲器164为外围设备后台缓冲器以及哪个外围设备缓冲器164 为外围设备前台缓冲器。缓冲器指针166在接收到每幅图像时前移。例如,如图1中所示,缓冲器指针166A 指示外围设备缓冲器164A为外围设备后台缓冲器。类似地,缓冲器指针166B指示外围设备缓冲器164B为外围设备前台缓冲器。当外围设备160接收到下一图像数据帧且缓冲器指针166前移时,当前图像将被指示为存储在外围设备前台缓冲器中并且将在显示器168 处显示。如上面所解释的,包含在图像数据帧中的差异代表即时图像与第(N-I)个前帧之间的差异,其中N为整数三或者更大。因此,在一个方案中,包含在图像数据帧中的差异可以是即时图像与即时图像前两帧再现的图像(例如其中N=3)之间的差异。由于外围设备后台缓冲器已经包含图像中无差别的部分,因而外围设备可以仅仅利用差异数据更新外围设备后台缓冲器。因此,来自先前的外围设备后台缓冲器的前向拷贝是多余的并且可以被消除。例如,发送给外围设备160的图像数据帧可以包括图像的像素信息以及即时帧与前帧之间的一个或多个差异。在一些实施例中,该差异可以由像素数据表示。在一些其他的实施例中,该差异可以由变化区域的坐标表示。在还有其他的实施例中,该差异可以由变化的片块的标识符表示。图2说明了示出用于产生图像数据帧并且将图像数据帧从主机计算设备发送给外围设备以便在外围设备处显示的方法200的实施例的流程图。应当理解的是,方法200 可以由任何适当的图像显示系统执行并且不限于这里描述的实施例。方法200包括在202处在主机缓冲链中产生N个缓冲器。例如,图3示出了依照方法200的实施例在一定时间(A)处示例性图像显示系统的工作状态的示意图。在其中N=3 的图3所示的实例中,主机缓冲链314包括三个主机缓冲器315A、315B和315C。接下来,方法200包括在204处将当前图像再现到主机后台缓冲器中。在图3所示的实例中,示出了城市斯波坎、波特兰和西雅图的逐日天气预报图像系列。如图3中所示, 主机缓冲器315A充当主机后台缓冲器116,描绘星期四预报的当前图像再现到该主机后台缓冲器中。主机缓冲器315B和315C存储先前再现的图像,即分别描绘星期三预报和星期二预报的图像。接下来,方法200包括在206处确定当前图像与第(N_l)幅先前再现的图像之间的差异。在其中N=3的图3所示的实例中,确定主机缓冲器315A中存储的当前图像与主机缓冲器315C中存储的第(N-I)幅先前再现的图像之间的差异包括识别星期四预报图像与星期二预报图像之间的差异302。在一些实施例中,确定当前图像与第(N-I)幅先前再现的图像之间的差异包括确定当前图像与第(N-I)幅先前再现的图像之间的所有差异。在图3所示的实例中,差异302 包括星期四预报图像与星期二预报图像之间的所有差异。特别地,差异302包括星期四和 “大部分多云”图形。接下来,方法200包括在208处输出图像数据帧,包括所述差异。例如,图4示出了一定时间(A+1)处图3的示例性图像显示系统的工作状态的示意图,其中包括差异302的图像数据帧402被示为输出到外围设备。在208处输出图像数据帧之后,方法200包括在210处前移主机图像缓冲链。例如,图4和图5示出了主机缓冲链314在时间(A+1)与(A+2)之间被前移。因此,每次将图像数据帧输出到外围设备时,将主机图像缓冲链前移。这允许主机计算设备跟踪且与外围设备缓冲链的内容保持均势。在212处,方法200包括在无需前向拷贝的情况下将图像数据帧写到外围设备后台缓冲器。例如,在图4所示的实施例中,将图像数据帧402写到外围设备缓冲器164A,该外围设备缓冲器由缓冲器指针166A指示为外围设备后台缓冲器。散列标记指示外围设备后台缓冲器中存储的由图像数据帧402更新的图像部分。在图4所示的实例中,外围设备后台缓冲器中存储的图像中只有包含差异302的那些像素被更新。外围设备缓冲器166A中存储的图像也被主机计算设备102存储,该主机计算设备将相应的图像存储到主机缓冲器114C中。由于差异302代表主机缓冲器114A中存储的图像与114C中存储的图像之间的差异,因而仅将差异302写到外围设备缓冲器164A以便在外围设备后台缓冲器中形成当前图像。外围设备缓冲器164A中的图像的其余未更新部分供应完成图像的所有像素。在图4和图5所示的实例中,先前显示的星期二预报图像通过利用星期四代替星期二并且通过利用“大部分多云”图形代替“雷暴”图形来更新。外围设备缓冲器164A中存储的图像的未修改元素提供其余的像素。因此,无需利用经由前向拷贝来自另一个外围设备缓冲器的内容来初始化外围设备后台缓冲器。接下来,方法200包括在214处前移外围设备缓冲链的缓冲器指针。如图5中所示,后台缓冲器指针166A和前台缓冲器指针166B分别前移以指向外围设备缓冲器164C和 164A。由于外围设备接收的图像数据帧被写到外围设备后台缓冲器,因而包括差异502的图像数据帧将被写到外围设备缓冲器164C。在216处,方法200包括显示外围设备前台缓冲器的内容。由于外围设备显示的图像数据帧拖曳自外围设备前台缓冲器,因而前移缓冲器指针会改变所显示的图像。例如, 在图4-5中,前移缓冲器指针将显示的图像从时间(A+1)处的外围设备缓冲器164B中的图像(星期三预报,如图4中所示)改变为时间(A+2)处的外围设备缓冲器164A中的图像(星期四预报,如图5中所示)。应当理解的是,上面描述的实施例仅仅是用于产生图像数据帧并且将其从主机计算设备发送给外围设备以便在外围设备处显示的方法的一个实例。其他的实施例也可以提供外围设备计算开销的减少以及潜在地减小主机计算设备处的图像数据存储量大小。例如,在主机计算设备处存储和计算整个帧的差异可能是昂贵的。因此,在一些实施例中,只有帧的变化的部分才可以再现到主机后台缓冲器中。在一些实施例中,再现的部分可能是变化区域或者“脏”区域。变化区域可以由识别当前图像的与前一幅图像不同的矩形区域或者其他适当形状区域的坐标定义。然而,应当理解的是,在本公开内容的范围内,可以使用定义变化的区域(例如变化的矩形和/或其他变化的多边形)的其他方法。存储变化的区域的坐标可以比存储整个图像数据帧占用更少的空间。类似地,计算变化的区域之间的差异可能比计算整个帧之间的差异相对更高效。在这样的实施例中, 上面描述的主机图像缓冲链可以由包括N个变化的区域的列表而不是N个图像缓冲器的主机图像数据存储链代替。例如,图6说明了示出用于产生图像数据帧并且将该图像数据帧从主机计算设备发送给外围设备以便在外围设备处显示的方法600的实施例的流程图。应当理解的是,方法600可以由任何适当的图像显示系统执行并且不限于这里描述的实施例。方法600包括在602处产生N个变化的区域的列表。例如,图7示出了依照方法 600的示例性图像显示系统处的工作状态的时间进展700的示意图。在图7所示的实例中,将变化的区域704记录在主机图像数据存储链114中。在其中N=3的图7所示的实例中, 绘出了三个变化的区域的列表715A、715B和715C。这N个变化的区域的列表包括在最后N 帧中更新的变化的区域。在图7所示的实施例中,变化的区域的列表715包括最后三帧中更新的所有变化的区域,但是应当理解的是,在一些实施例中,不是所有变化的区域可以记录在所述N个变化的区域的列表中。 接下来,方法600包括在604处将当前图像再现到主机后台缓冲器中。例如,图7 示出了图像702D和702E分别在时间(B)处和在时间(B+1)处再现到主机后台缓冲器116中。 在一些实施例中,主机计算设备可以包括单个缓冲器。在一些其他的实施例中,主机计算设备除了将图像再现到其中的单个后台缓冲器之外还可以包括用于输出图像数据帧的前台缓冲器。接下来,方法600包括在606处累加变化的区域的列表中的先前再现的N帧的变化的区域。如图7中所示,变化的区域704C、704D和704E在时间(B)处记录于每个变化的区域的列表715A、715B和715C中,其代表图像702D中与图像702C中的相应区域不同的三个矩形区域。变化的区域的列表715A也包括变化的区域704A,其代表时间(B-2)处变化的区域的列表715A中存储的图像702A与702B之间的先前确定的差异(未示出);以及变化的区域704B,其代表时间(B-I)处变化的区域的列表715A中存储的图像702B与702C之间的差异(未示出)。因此,变化的区域的列表715A包括当前图像与前三幅图像之间的差异 差异706A,其包括图像702A与图像702B之间的差异;差异706B,其包括图像702B与图像 702C之间的差异;以及差异706C,其包括图像702C与当前图像702D之间的差异。换句话说,变化的区域的列表715A包括由图像702D代表的当前图像I与由图像702A代表的第 (I-N-I)幅先前再现的图像之间的差异。因此,变化的区域的列表715A包括当前再现的图像与N幅先前再现的图像之间的差异。应当理解的是,变化的区域的列表可能包括一个或多个覆盖区域。例如,图7示出了变化的区域704F可以覆盖变化的区域704C的一部分。变化的区域704C中由变化的区域704F覆盖的部分不会在外围设备上显示。因此,变化的区域704C的被覆盖的部分形成 “隐藏区域”。因此,在一些实施例中,在606处记录变化的区域可以包括在607处从区域列表中移除隐藏区域。移除隐藏区域可以节省数据信道中的传输带宽。此外,由于可以在外围设备处在图像更新期间写并且然后重写隐藏区域,因而移除隐藏区域可以节省外围设备的写时间。用于移除隐藏区域的一些方法包括从变化的区域的列表中移除由后续再现的变化区域完全覆盖的早先再现的区域。用于移除隐藏区域的其他方法包括将由后续再现的变化区域部分地覆盖的早先再现的变化区域细分成多个子区,其中一些子区完全被覆盖并且一些子区未被覆盖。然后,编辑变化区域的列表,从而从变化区域的列表中移除完全覆盖的子区并且保留非覆盖子区。应当理解的是,这样的细分可以重复,从而产生更小的子区。在一些实施例中,最小的子区可以包括单个像素。可替换地,在一些实施例中,最小的子区可以被配置成包括多个像素。因此,应当理解的是,可以在不脱离本公开内容的范围的情况下采用移除隐藏区域的任何适当方法。
接下来,方法600包括在608处输出图像数据帧,其中该图像数据帧包括至少N幅先前再现的图像的变化的区域。如图7中所示,在时间(B)处,变化区域的列表715A如上面所讨论的包括变化区域704C、704D和704E。接下来,方法600包括在610处前移主机图像数据存储链。例如,图7示出了主机图像数据存储链114前移到时间(B)与时间(B+1)之间。因此,每次将图像数据帧输出到外围设备时,前移主机图像数据存储链,从而允许主机计算设备跟踪且与外围设备缓冲链的内容维持均势。在612处,方法600包括没有前向拷贝地将图像数据帧写到外围设备后台缓冲器。 因此,外围设备后台缓冲器处形成的图像仅仅包括外围设备后台缓冲器的现有内容以及包含在图像数据帧中的变化区域的列表。在图7所示的实施例中,在时间(B)处,由缓冲器指针166A指示为外围设备后台缓冲器的外围设备缓冲器164A的现有内容被变化区域的列表 715A更新。由于与图像数据帧一起接收的变化区域的列表包括最后N帧的变化区域并且由于外围设备包括以闭环设置的N个图像缓冲器,因而变化区域的列表在主机计算设备处仿真外围设备图像缓冲器。因此,图像数据帧包括用于更新外围设备后台缓冲器中存储的现有图像的所有图像数据。因此,无需利用经由前向拷贝来自另一个外围设备缓冲器的内容来初始化外围设备后台缓冲器。接下来,方法600包括在614处前移缓冲器指针。例如,在图7中,后台缓冲器指针166A和前台缓冲器指针166B分别前移以指向外围设备缓冲器164C和164A。由于外围设备接收的图像数据帧被写到外围设备后台缓冲器,因而包括变化区域的列表715B的图像数据帧将在时间(B+1)处写到外围设备缓冲器164C。在616处,方法600包括显示外围图像设备前台缓冲器的内容。由于外围设备显示的图像数据帧拖曳自外围设备前台缓冲器,因而前移缓冲器指针改变显示的图像。例如, 在图7中,前移缓冲器指针使得显示从时间(B)处的外围设备缓冲器164B中的图像(“以晴为主”图形)改变为时间(B+1)处的外围设备缓冲器164A中的图像(“大部分多云”图形)。尽管存储变化区域可以比存储整个图像数据帧占用更少的空间,但是应当理解的是,其他实施例在其中在帧序列中产生若干隐藏区域的方案中可以提供还要更大的计算效率。例如,累加变化的片块或者“脏”片块的列表比产生、累加并且过滤变化区域的列表可能更容易。当在本文中使用时,变化的片块代表再现图像中相对于先前再现的图像的相应部分变化的预定义部分的地址。例如,包括方形片块并且具有预定义间距的平铺栅格可以应用到图像以便定义图像内的每个片块位置的片块地址。识别为在连续帧之间不同的片块被识别为变化的片块。当外围设备接收到变化的片块时,外围设备更新相应变化的片块的片块地址处的图像数据。在一些实施例中,变化的片块可以以单个比特代表片块地址。因此, 发送给外围设备的图像数据帧可以小于包括像素数据栅格或者变化区域坐标的图像数据帧。应当理解的是,依照本公开内容,可以采用任何适当的片块集合。例如,在一些实施例中,这些片块可以为被配置成填充图像而没有覆盖或者间隙的平面图片块。在一些其他的实施例中,这些片块可以被配置成以预定义量彼此覆盖。在上面给出的实例中,预定义间距定义了片块尺寸。改变片块尺寸就会改变识别变化的片块的分辨率。在一些实施例中, 最小的分辨率可以代表单个像素。可替换地,在一些其他的实施例中,最小的分辨率可以被配置成包括多个像素。例如,图8说明了示出用于产生图像数据帧并且将该图像数据帧从主机计算设备发送给外围设备以便在外围设备处显示的方法800的实施例的流程图。应当理解的是,方法800可以由任何适当的图像显示系统执行并且不限于这里描述的实施例。方法800包括在802处产生N个变化的片块的列表。这N个变化的片块的列表包括在最后N帧中更新的变化的片块。例如,图9示出了依照方法800在示例性图像显示系统处的工作状态的时间进展900的示意图。在其中N=3的图9所示的实例中,将三个变化的片块的列表915A、915B和915C包含在主机图像数据存储链114中。变化的片块的列表915包括最后三帧中更新的所有变化的片块,但是应当理解的是,在一些实施例中,不是所有变化的片块可以记录在所述N个变化的片块的列表中。接下来,方法800包括在804处将当前图像再现到主机后台缓冲器中。在一些实施例中,主机计算设备可以包括单个缓冲器。在一些其他的实施例中,主机计算设备除了将图像再现到其中的单个后台缓冲器之外还可以包括用于输出图像数据帧的前台缓冲器。例如,图9示出了图像904D和904E分别在时间(C)处和在时间(C+l)处再现到主机后台缓冲器116中。接下来,方法800包括在806处将平铺栅格应用到当前帧。例如,图9示出了在时间(C)处应用到图像904D以及在时间(C+1)处应用到图像904E的平铺栅格902。图10示出了平铺栅格902到图9的图像904的更详细的应用。特别地,图10示出了平铺栅格902应用到四个连续的帧当前帧I,其包括图像904E ;以及三个先前再现的帧1-1、1-2和1-3,其分别包括图像904D、904C和904B。变化的片块通过比较连续的图像而被识别且与未变化的片块区分。将识别的包括两幅连续图像之间的差异的变化的片块存储到帧平铺结构中。在一些实施例中,帧平铺结构包括两幅连续的图像之间的所有变化的片块。例如,在图10中,四个变化的片块908 通过将图像904A与先前再现的图像(未示出)进行比较而被识别并且被存储在帧平铺结构 910A中;两个变化的片块908通过比较图像904B和904C而被识别并且被存储在帧平铺结构910B中;八个变化的片块908通过比较图像904C和904D而被识别并且被存储在帧平铺结构910C中;六个变化的片块908通过比较图像904D和904E而被识别并且被存储在帧平铺结构910D中。接下来,方法800包括在808处累加变化的片块的列表中的先前再现的N帧的变化的片块。变化的片块的列表聚集为连续的图像识别的帧平铺结构。例如,图9示出了三个变化的片块的列表915包含在主机图像数据存储链114中。每个变化的片块的列表915 包括一个或多个帧平铺结构910。如图9中所示,帧平铺结构910A、910B和910C在时间C 被存储在变化的片块的列表915A中。在一些实施例中,累加变化的片块的列表中的变化的片块包括在810处产生包括来自最后N帧的变化的片块的复合结构。在其中N=3的图10所示的实例中,在复合结构 912B中累加当前图像904E以及三幅先前再现的图像904B、904C和904D的变化的片块908。因此,复合结构912B包括由图像904E代表的当前帧I与由图像904B代表的第(I_N_1)幅先前再现的图像之间的差异。因此,复合结构912B包括当前再现的图像与N幅先前再现的图像之间的差异。在一些实施例中,复合结构912是通过组合帧平铺结构910而产生的。由于变化的片块包括片块地址,因而产生复合结构912期间复制变化的片块不添加新的信息并且不使现有的信息模糊不清。当图像数据帧输出到外围设备时,变化的片块指示其中图像数据要由外围设备更新的位置。因此,产生复合结构912可以避免经由隐藏区域或片块传输冗余的信息。接下来,方法800包括在812处输出图像数据帧,其中该图像数据帧包括N幅先前再现的图像的变化的片块的图像数据。如图9中所示,在时间(C),将包括帧平铺结构910A、 910B和910C且代表图像904D与N幅先前再现的图像之间的变化的片块的累加的变化的片块的列表915A输出到外围设备后台缓冲器。接下来,方法800包括在814处前移主机图像数据存储链。例如,图9示出了主机图像数据存储链114前移到时间(C)与时间(C+1)之间。因此,每次将图像数据帧输出到外围设备时,前移主机图像数据存储链,从而允许主机计算设备跟踪外围设备存储链的内容。在816处,方法800包括没有前向拷贝地将图像数据帧写到外围设备后台缓冲器。 因此,图像在外围设备后台缓冲器处形成,包括外围设备后台缓冲器的内容以及包含在图像数据帧中的所述差异。在图9所示的实施例中,在时间(C)处,由缓冲器指针166A指示为外围设备后台缓冲器的外围设备缓冲器164A的现有内容被变化的片块的列表915A更新。由于与图像数据帧一起接收的变化的片块的列表包括最后N帧的变化的片块并且由于外围设备包括以闭环设置的N个图像缓冲器,因而变化的片块的列表在主机计算设备处仿真外围设备图像缓冲器。因此,图像数据帧包括更新外围设备后台缓冲器中存储的现有图像的图像数据。因此,无需利用经由前向拷贝来自另一个外围设备缓冲器的内容来初始化外围设备后台缓冲器。接下来,方法800包括在818处前移缓冲器指针。例如,在图9中,后台缓冲器指针166A和前台缓冲器指针166B分别前移以指向外围设备缓冲器164C和164A。由于外围设备接收的图像数据帧被写到外围设备后台缓冲器,因而包括变化的片块的差异列表915B 的图像数据帧将在时间(C+1)处写到外围设备缓冲器164C。在820处,方法800包括显示外围图像设备前台缓冲器的内容。由于外围设备显示的图像数据帧拖曳自外围设备前台缓冲器,因而前移缓冲器指针改变显示的图像。例如, 在图9中,前移缓冲器指针使得显示从时间(C)处的外围设备缓冲器164B中的图像(“以晴为主”图形)改变为时间(C+1)处的外围设备缓冲器164A中的图像(“大部分多云”图形)。在一些实施例中,上面描述的方法和过程可以与包括一个或多个计算设备的计算系统相联系。这些计算设备典型地包括处理器和关联的易失性和非易失性存储器以及诸如硬盘驱动器之类的大容量存储设备。这些计算设备可以经由诸如因特网之类的计算机网络连接。本文描述的方法和过程可以实现为计算机应用、计算机服务、计算机API、计算机库和 /或其他计算机程序产品。应当理解的是,当在本文中使用时,“服务”可以是可跨多个用户会话执行的且对于一个或多个系统组件、程序和/或其他服务可用的应用程序。在一些实现方式中,服务可以响应于来自客户端的请求而在服务器上运行。
应当理解的是,本文描述的配置和/或方法本质上是示例性的,并且这些特定实施例或实例不应当在限制性意义上进行考虑,因为许多的变型是可能的。本文描述的特定例程或方法可以代表任意数量的处理策略中的一个或多个。因此,所说明的各个不同的动作可以以说明的顺序、以其他顺序、并行地执行或者在一些情况下可以被省略。同样地,可以改变上面描述的过程的顺序。本公开内容的主题包括本文公开的各种不同的过程、系统和配置以及其他特征、 功能、动作和/或特性及其任何和所有等效物的所有新颖且非显而易见的组合和子组合。
权利要求
1.一种用于再现图像数据并且将图像数据发送给外围设备(160)以供显示的主机计算设备(102),该主机计算设备包括数据存储子系统(104); 逻辑子系统(106);以及指令(118),其存储在数据存储子系统中且可由逻辑子系统执行以便向外围设备输出 (208)代表当前再现的图像与第(N-I)幅先前再现的图像之间的差异的图像数据帧,N为整数并且具有值3或者更大。
2.权利要求1的主机计算设备,其中图像数据帧包括当前再现的图像与第(N-I)幅先前再现的图像之间的所有差异。
3.权利要求2的主机计算设备,进一步包括指令,所述指令用于产生主机缓冲链,其中该主机缓冲链包括固定数量的缓冲器,其中这些缓冲器的计数具有值N;将当前再现的图像存储到主机缓冲链的主机后台缓冲器中;以及在将图像数据帧输出到外围设备之后前移主机缓冲链。
4.权利要求2的主机计算设备,其中主机缓冲链被配置成仿真一个选定外围设备的外围缓冲链。
5.权利要求2的主机计算设备,进一步包括指令,所述指令用于 产生区域列表链,其中该区域列表链包括N个区域列表;累加区域列表链中的变化的区域,其中每个变化的区域包括连续的图像帧之间的差已升;将先前的N帧的变化的区域包含在输出到外围设备的图像数据帧中;以及前移区域列表链。
6.权利要求5的主机计算设备,进一步包括从所述数量的区域列表中移除隐藏区域的指令。
7.权利要求2的主机计算设备,进一步包括指令,所述指令用于产生片块列表链,其中该片块列表链包括N个片块列表;累加片块列表链中的变化的片块,其中每个变化的片块包括连续的图像帧之间的差巳升;将先前的N帧的变化的片块包含在输出到外围设备的图像数据帧中;以及前移片块列表链。
8.权利要求7的主机计算设备,其中累加片块列表链中的变化的片块的指令进一步包括用于产生包括来自先前的N帧的变化的片块的复合结构的指令。
9.一种用于再现图像数据并且将图像数据从主机计算设备发送给外围设备以便在外围设备处显示的方法(200),该方法包括产生(202)包括至少N个主机图像数据存储元件的主机图像数据存储链,N为整数并且具有值3或者更大;再现(204)当前图像;将图像数据存储(206)到主机图像数据存储链中,该图像数据包括当前图像与第 (N-I)幅先前再现的图像之间的所有差异;以及将该图像数据输出(208)到外围设备。
10.权利要求9的方法,进一步包括产生主机缓冲链,其中该主机缓冲链包括固定数量的缓冲器,其中这些缓冲器的计数具有值N;将当前再现的图像存储到主机缓冲链的主机后台缓冲器中;以及在将图像数据帧输出到外围设备之后前移主机缓冲链。
11.权利要求9的方法,进一步包括产生区域列表链,其中该区域列表链包括N个区域列表;累加区域列表链中的变化的区域,其中每个变化的区域包括连续的图像帧之间的差已升;将先前的N帧的变化的区域包含在输出到外围设备的图像数据帧中;以及前移区域列表链。
12.权利要求11的方法,进一步包括从所述数量的区域列表中移除隐藏区域。
13.权利要求9的方法,进一步包括产生片块列表链,其中该片块列表链包括N个片块列表;累加片块列表链中的变化的片块,其中每个变化的片块包括连续的图像帧之间的差巳升;将先前的N帧的变化的片块包含在输出到外围设备的图像数据帧中;以及前移片块列表链。
14.权利要求13的方法,其中累加变化的片块进一步包括产生包括来自先前的N帧的变化的片块的复合结构。
15.在外围设备上,一种显示从主机计算设备发送给外围设备以便在外围设备的显示器上显示的图像的方法(200),该外围设备包括包含N个图像缓冲器的外围设备图像缓冲链,该方法包括接收(212)第一图像数据帧,该第一图像数据帧包括第一图像数据帧与第(N-I)幅先前接收的图像数据帧之间的差异,N为整数并且具有值3或者更大;通过利用该图像数据帧更新外围设备图像缓冲链中保持的存储的图像而形成(212)显示图像;以及显示(216)该显示图像。
全文摘要
多图像缓冲器仿真,不同的实施例涉及用于再现图像数据并且将图像数据发送给外围设备以便在外围设备处显示的主机计算设备。例如,一个实施例包括主机计算设备,该主机计算设备包括数据存储子系统和逻辑子系统。该主机计算设备进一步包括存储在数据存储子系统中且可由逻辑子系统执行以便向外围设备输出代表当前再现的图像与第(N-1)幅先前再现的图像之间的差异的图像数据帧的指令,N为整数并且具有值3或者更大。
文档编号G06F3/14GK102508627SQ20111029882
公开日2012年6月20日 申请日期2011年9月28日 优先权日2010年9月28日
发明者A.S.瓦塔肯迪, C.怀特曼, E.弗利加尔, J.贝勒休, R.D.杨, X.田 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1