合成用户界面的制作方法

文档序号:17123656发布日期:2019-03-16 00:05阅读:300来源:国知局
合成用户界面的制作方法

本公开涉及视频监控仪器,并且更特别地涉及产生合成用户界面的视频监控仪器。



背景技术:

视频监控仪器呈现实时数据,诸如在用户界面或者用户监控器上的被栅格化的波形和画面显示。这些仪器包括示波器和其它波形生成设备。还可以显示诸如视频会话和状态数据的文本数据。用以创建用于这样的仪器的用户界面的典型方法牵涉使用底层软件创建自定义菜单。虽然游戏行业中的产品可以将诸如玩家得分之类的一些javascript/html组件与诸如游戏场景之类的所生成的数据进行组合,但是不存在用于将如波形和画面显示的实时数据与javascript/html组件进行组合的已知方法。

下面讨论的实施例应对现有系统的限制。

附图说明

图1示出了视频处理系统的实施例。

图2示出了将各种图像数据组件组合成图像的方法的实施例的流程图。

图3示出了使用纹理阵列处理器的阵列处理视频的系统的实施例。

图4示出了处理视频帧的方法的实施例的流程图。

具体实施方式

现代桌面处理器典型地具有提供了在不需要具有昂贵的另添加gpu卡的情况下加速计算和渲染的机会的板载gpu。这样的板载gpu能够被用于创建将组合的实时波形和画面数据与基于用户接口数据的javascript/html进行组合的用户界面。

此外,gpu提供了用以实现不同的视频处理技术(如帧速率转换)的出色方式。2d纹理阵列是用以在gpu内部实现循环缓冲区的出色方式,其能够保留画面帧,允许实现各种帧速率转换算法。在此公开的实施例在使用gpu的2d纹理阵列作为循环缓冲区的时候,遵循其中在cpu和一个或多个gpu之间划分任务的分段方法。还可能的是使用在gpu外部的循环缓冲区,如果所使用的gpu不提供循环缓冲区的话。

基于用户界面的html和javascript是现代的并且灵活的,但是不幸的是其不提供用以访问构成被栅格化的波形和画面数据的获取数据的容易的方式。诸如awesomiumandchromiumembeddedframework(cef)的嵌入工具提供了用以将javascript/html组件覆盖在用户生成的纹理上的方式。纹理可以被认为是在gpu中表示的图像——例如视频游戏中的场景情景。

在此的实施例创建简单、灵活并且可扩展的将javascript/html组件覆盖在被栅格化的波形和画面数据上以创建由javascript/html带动的用户界面的方式,并且其还提供在javascript层中的“窗口”,通过该“窗口”,可以在将合成用户界面呈现给用户之前获取并且处理实时数据。

如在图1和图2中示出那样,应用22例如通过基于自定义pcie的卡获取由波形和画面数据中的至少一个组成的实时图像数据,并且所述实时图像数据被经pcie总线传输到系统存储器14中的大的环形缓冲区中。该环形缓冲区是以共享存储器模式设置的,以便另外的外部应用能够检索波形或者画面、帧,每次检索一帧并且将它们作为纹理上传到gpu存储器中。在该讨论中的‘纹理’是在图形处理中被使用以创建图像的表面的抓取或映射。该外部应用然后使用gpu来以适当的顺序将其分层以实现用户界面的外观。

基于web技术的用户界面18允许创建如菜单和按键的典型的用户界面图像组件,其将最终被覆盖到波形和画面上。用户界面被渲染到系统存储器14中的“离屏”(off-screen)空间中。

如上面讨论那样,存储器14可以由被cpu使用的系统存储器组成,并且具有被设置为共享存储器的能力。这避免了在由gpu吸取之前复制波形和画面数据的需要。然而,在此的实施例仅提供了存储器架构的一个示例,并且既不意图限制于特定的实施例,也不应当将其暗指为特定的实施例。

分离的应用24还生成格线,其也被称为格网,其不过是在监控设备的显示器上的线条网。例如,在用于示波器的显示器上,格线可以由具有相关联的刻度的一种量度关于另一量度的轴线组成。这些将被作为第三层添加到在显示器中使用的要素。

gpu16访问存储器并且处理各单独的层32、34和36以生成在38处示出的图像。图像38具有html层,其中菜单信息在如用户所看到的“顶部”上,随后是用于显示的格线,并且然后是可以为来自示波器或者其它测试设备的跟踪的实时波形数据和/或在其后面的画面数据。该合成图像然后被生成到显示窗口40中。

图2示出了本方法的一个实施例的流程图。如上面讨论那样,在42处cpu获取波形和画面数据并且在44处将数据存储在系统缓冲区中。然后gpu检索波形或者画面帧46,并且然后将其分层到用户界面48中。在该系统中,许多选项符合处理。

例如,取决于输入视频信号的帧速率,画面数据的帧速率可以是诸如23.97hz、30hz、50hz、59.94hz或者60hz的任何速率。各帧也可以是逐行的或隔行的。用于显示用户界面的监控器的显示速率是固定的,例如为60hz,但是也可以可调整为其它速率。这意味着可能需要在由gpu合成以用于显示之前对画面数据流进行帧速率转换。

图3图示了使用cpu和一个或多个gpu这两者来划分帧速率转换任务的示例实施例。如图3中图示那样,去往cpu处理块12的输入信号包括帧数据信号,其除了实际的画面帧数据之外还可以包含输入视频帧速率、显示帧编号、扫描类型中的至少一个。帧速率信号允许系统确定帧数据是隔行的还是逐行的。在54处画面帧数据被以由cpu加载的纹理单元的形式表示在gpu内部。在此的用于gpu的实施例还提供了使用纹理单元56的阵列的方式,该阵列的每个元件可以被独立地更新。gpu的2d纹理阵列特征被用于建立画面帧的小的循环缓冲区。

图4示出了使用2d纹理阵列处理视频帧的方法的实施例。在70处从缓冲区检索画面数据。cpu利用画面数据加载2d纹理阵列的元件。每个元件可以是gpu中的处理元件、gpu处理器的分区等。2d纹理阵列被设置为循环缓冲区。gpu可以使用来自循环缓冲区中的一个或多个纹理条目的数据来生成显示帧。在76处光栅化器然后将经计算的显示帧输出到显示装置。

cpu处理块更新gpu中的2d纹理阵列的各单独的元件。输入视频帧速率、扫描类型(逐行的或者隔行的)以及输出显示帧编号确定阵列中的索引是否将被利用新的画面数据更新。gpu渲染循环典型地以输出显示扫描速率(诸如60hz)运行,同时维持表示正被显示的当前帧编号的帧编号计数器。

例如,输入视频帧速率为60p,即60hz逐行扫描。在这种情况中,诸如经pcie源自于获取硬件的每一画面帧被推送到可以在cpu侧具有可配置大小的先入先出(fifo)50缓冲区中。针对gpu渲染循环的每次迭代,上面提到的cpu处理块从软件fifo弹出一帧并且将其推送到2d纹理阵列60的相继的索引中,该2d纹理阵列60被设置为循环缓冲区,并且将索引返回到循环缓冲区中以用于由gpu着色器代码使用。gpu着色器62(其还被称为片段着色器)执行帧速率转换以转换至适当的输出帧速率。

进入循环缓冲区中的索引被传递到gpu16中。在gpu内部,可以是处理像素色彩的gpu处理块的片段着色器代码对在上面的索引处的数据进行采样并且将其传递给gpu的光栅化器64。然后gpu将采样的数据输出至显示监控器66。如果gpu不提供片段着色器,则人们可以能够使用在gpu外部的帧交织器,这实现相似的结果。

在另一示例中,输入视频帧速率为30p,意思是30hz逐行扫描。源自于获取硬件的每一画面帧被推送到在cpu侧具有可配置大小的软件fifo中。针对gpu渲染循环的每次迭代,上面提到的cpu处理块进行检查以查看当前的显示帧编号是奇数还是偶数。如果其是偶数,则cpu处理块从软件fifo弹出一帧并且将其推送到被设置为循环缓冲区的2d纹理阵列的相继的索引中,并且将索引返回到循环缓冲区中以用于由gpu着色器代码使用。如果其是奇数,则重复先前确定的索引。这是凭借其而能够在cpu侧确定已经呈现在2d纹理阵列——循环缓冲区中的帧是否将被重复以实现帧速率转换的主要机制。

进入循环缓冲区中的索引被传递到gpu中。在gpu内部,片段着色器对在上面的索引(其来自表示隔行帧中的偶数区或奇数区的适当的一半画面)处的数据进行采样,并且将其传递给gpu的光栅化器。

通过以上面的方式使用gpu的2d纹理阵列,诸如将其实现为其当前索引由在cpu上运行的软件确定的循环缓冲区,帧速率转换被以直接的方式放在一起。随后可以有类似的步骤来实现用于其它帧速率(如60i,50p等)的转换。

诸如上面描述的那些的实施例可以在特定地创建的硬件上操作,在固件、数字信号处理器上操作、或者在包括根据被编程的指令操作的处理器的被专门编程的一般目的计算机上操作。如在此使用的术语“控制器”或者“处理器”意图包括微处理器、微计算机、asic和专用硬件控制器。实施例的一个或多个方面可以被体现在由一个或多个计算机(包括监控模块)或者其它装置执行的计算机可用数据和计算机可执行指令中(诸如体现在一个或多个程序模块中)。一般地,程序模块包括例程、程序、对象、组件、数据结构等,当由计算机或者其它装置中的处理器执行时,它们执行特定的任务或者实现特定的抽象数据类型。计算机可执行指令可以被存储在诸如硬盘、光盘、可移除存储介质、固态存储器、ram等的非暂态计算机可读介质上。如将由本领域技术人员领会的那样,在各种实施例中程序模块的功能可以如想要的那样被组合或者分配。此外,功能可以被整体地或者部分地体现在固件或者硬件等同物(诸如集成电路和现场可编程门阵列(fpga)等)中。特定的数据结构可以被用于更有效地实现实施例的一个或多个方面,并且在于此描述的计算机可执行指令和计算机可用数据的范围内这样的数据结构是被想见的。

先前所描述的所公开的主题的版本具有许多优点,其或者被描述或者对于普通技术人员将是显而易见的。即使如此,并非在所公开的设备、系统或者方法的所有版本中要求所有这些优点或者特征。

附加地,本书面描述参考了特定的特征。要理解的是,在本说明书中的公开包括那些特定特征的所有可能的组合。例如,在特定特征被公开在特定方面或者实施例的上下文中的情况下,该特征还可以在可能的程度上被使用在其它方面和实施例的上下文中。

另外,当在本申请中参照具有两个或更多个所定义的步骤或操作的方法时,所定义的步骤或操作可以被以任何顺序执行或者被同时执行,除非上下文排除那些可能性。

虽然已经为了说明的目的而图示并且描述了具体实施例,但是将理解的是,在不背离权利要求的精神和范围的情况下可以作出各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1