获取用户输入的制作方法

文档序号:16989710发布日期:2019-03-02 00:52阅读:274来源:国知局
获取用户输入的制作方法

本发明涉及获取用户输入的计算机实现方法。例如,所述方法可以用于经由移动设备上的用户接口获取用户pin输入的安全录入。



背景技术:

当前移动设备(例如,平板计算机、平板pc、电话)是具有相对大的显示器的计算平台,所述显示器具有覆盖的触摸屏来获取用户输入。这类设备基于操作系统(例如,安卓、ios、windows10mobile)和从app商店获取的软件应用(“app”)的集合。os支持用于获取用户输入的各种标准用户接口小部件,诸如具有子菜单的下拉菜单、按钮(例如,单选按钮、复选框、循环按钮)、列表框、微调器、下拉列表、滚动条、文本框、虚拟键盘和发布wimp元素。通过使用独立于主中央处理单元(cpu)操作的图形处理单元(gpu)来实现这些用户接口小部件。gpu实现2d计算机图形处理(例如,阿尔法合成)和3d计算机图形。通常经由图形库(例如,x11、opengl、metalios)访问gpu能力的细节。移动设备通常使用与个人计算机和膝上型计算机不同的交互技术。这类用户交互对于最终用户而言是如此熟悉的以至于它们越来越多地在web内容(或web应用)中被采用。

web浏览器现在广泛支持html5;标记语言标准的第五个主要版本。该标准的重要新特征是html5视频元素,所述html5视频元素取代专有浏览器插件或浏览器扩展,以经由网页显示视频内容。html5还支持增大范围的javascriptapi,诸如提供web浏览器和数字版权管理(drm)代理软件之间的通信通道的加密媒体扩展(eme),从而使得能够呈现受保护视频内容。html5视频元素具有在文档对象模型(dom)中曝光的特质,因此它们可以被web内容中包含的javascript代码访问和操控。html5浏览器中的eme实现iso公共加密流格式,所述iso公共加密流格式基于通常称为iso基媒体文件格式的mpeg4(iso14496)第12部分规范。使用aes-128以ctr(计数器)模式(其将块密码转换成流密码)来加密内容。mpegdash互操作性论坛推广具有有关规范用法建议的mpegdash互操作性指南。dash-if互操作性点(iop)的版本3.1的第七章描述并阐明了用于顶部之上(ott)视频内容的对减少的加密参数集和元数据的使用来支持具有密钥轮换(定期改变加密密钥)的视频点播和实况内容。

pct/ep2015/069294描述了安全视频回放模块的使用来显示随机数字键盘布局以收集用户pin而不向观察所有用户输入的相同计算平台上的监视应用显露pin。该技术运用安全视频回放模块中支持的安全视频路径技术,所述安全视频路径技术防止其他应用访问视频显示存储器。pct/ep2015/069294还描述了其中该技术可用于包括在加密域中生成受保护视频内容的技术的一系列在线和离线应用的多种方式。

现有的键盘/小键盘布局随机化技术从例如us2012/0132705、us201/0006996、jp2000-276628、us2014/0351739和us2006/0224523已知。与pct/ep2015/069294中描述的安全视频回放技术组合,这使得攻击者很难将用户输入与pin值进行关联。

本发明寻求提供获取用户输入(例如,pin)的可替换计算机实现方法,所述方法提供超越现有技术的那些的各种优点。



技术实现要素:

一些软件应用在具有对用户图形api的有限访问的执行环境中操作。作为示例,html5web应用需要通过组合适当的层叠样式表(css)格式操控dom来实现用户接口。这可能复杂化或限制用户交互模式的实现。

现有的键盘/小键盘布局随机化技术仅提供用户输入的有限随机化,尤其是在用户习惯于特定pin录入方法时。这使具有对用户输入的访问的攻击者更容易将输入与特定pin进行关联。

本发明设想到使用视频内容和相关联的回放控制来实现的用户接口。用户接口旨在获取用户输入,并且然后实现与该输入相关的响应。本发明使用视频回放控制来实现宽范围的用户接口元素/小部件。

可以以压缩视频内容编码用户接口,并且客户端应用通过在视频中的动画开始时间偏移处开始回放并且通过在结束时间偏移处结束(暂停)动画回放来激活适当的动画。内容可以被预生成并存储在本地或存储在服务器处。可替换地,可以(部分地)以压缩视频格式实时生成内容。视频内容生成使用预编译内容片段(例如,i帧)来利用所意图用户交互的知识。还可以在客户端应用中实现该视频内容编码。为了保护内容以免被攻击者访问,有利地(部分地)加密内容。更具体地,加密预生成内容片段,并且允许运动补偿帧(例如,b帧和/或p帧)为明文(因为这不显露视频内容)。这使得能够实现用于pin录入(旋转数字轮、旋转数字拨盘和移动数字)的可替换用户接口,所述可替换用户接口实现用户输入方面更大程度的随机性。应当指出,一般原理允许非常宽广范围的用户交互被实现为编码视频。其使用用户交互的知识以大幅改进编码效率。

根据本发明的第一方面,提供一种获取用户输入的计算机实现方法。所述方法包括:(a)提供对视频内容的访问,视频内容表示包括供由用户选择的多个元素的用户接口;(b)向用户播放视频内容的第一部分;(c)检测响应于所播放的视频内容的第一部分而发生的第一用户交互;以及(d)基于检测到的第一用户交互的一个或多个属性来确定用户选择的第一元素。

根据本发明的第一方面,提供一种获取用户输入的计算机实现方法。所述方法包括:(a)提供以压缩视频格式编码的预生成视频内容的一个或多个帧的访问;(b)向用户显示以压缩视频格式编码的初始视频内容,初始视频内容基于预生成视频内容的一个或多个帧,并且初始视频内容表示供用户选择的多个图形元素;(c)检测响应于所显示的初始视频内容而发生的第一用户交互;(d)基于检测到的第一用户交互的一个或多个属性来确定用户选择的第一图形元素;(e)响应于第一用户交互,基于预生成视频内容的一个或多个帧和第一用户交互的一个或多个属性来生成以压缩视频格式编码的新视频内容;以及(f)向用户显示新视频内容。

根据本发明的另外的方面,提供一种被布置为施行根据第一或第二方面的方法的装置、一种当由一个或多个处理器执行时引起一个或多个处理器施行根据第一或第二方面的方法的计算机程序、以及一种存储这类计算机程序的计算机可读介质。

在所附权利要求中阐述本发明的其他优选特征。

附图说明

现在将参考附图作为举例描述本发明的实施例,附图中:

图1示意性地图示了可以在本发明的实施例中使用的计算机系统100的示例;

图2示意性地图示了根据本发明的第一方面的获取用户输入的计算机实现方法200;

图3示意性地图示了用于获取用户输入的数字轮300;

图4示意性地图示了针对数字轮上的数字的稳定数字轮位置;

图5示意性地图示了两个稳定数字轮位置之间的中间数字轮位置;

图6示意性地图示了用于获取用户输入的可替换数字轮600;

图7示意性地图示了用于获取用户输入的包括四个数字轮的gui700;

图8示意性地图示了gui700,其中一个数字轮示出消隐的数字;

图9示意性地图示了用于获取用户输入的虚拟键盘900;

图10示意性地图示了根据本发明的第二方面的获取用户输入的计算机实现方法1000;

图11示意性地图示了针对视频内容的两个不同帧的六个宏块的子集;

图12示意性地图示了用于在方法1000中使用的两个示例性预生成帧i1和i2;

图13示意性地图示了以calibri字体呈现的字符串“patent”1300;

图14示意性地图示了“patent”字符串的前三个字符1400,因为它们可以在两个预生成i帧i1和i2的文本输入字符串中示出;

图15示意性地图示了在左侧和右侧的两个预生成i帧1500和1510,其可以用于构造表示pin录入轮配置的b帧1520;

图16示意性地图示了表示与图15的b帧1520中所示出相同的pin录入轮配置的可替换b帧1620;

图17示意性地图示了用于录入pin码的固定小键盘1700;

图18示意性地图示了gui1800,其中针对pin录入所要求的数字分布在若干轮上;

图19示意性地图示了gui1900,其中针对pin录入所要求的数字跟随跨视频窗口的二维轨迹;

图20示意性地图示了用于使用拼音录入汉字的虚拟键盘2000;

图21示意性地图示了包括供用户选择的多个菜单项的用户接口;以及

图22示意性地图示了用于本文描述的方法技术的示例性实现。

具体实施方式

在以下描述中和在附图中描述了本发明的某些实施例。然而将领会,本发明不限于所描述的实施例并且一些实施例可以不包括下面描述的所有特征。然而,将清楚的是,在不脱离如所附权利要求中所阐述的本发明的宽广精神和范围的情况下,本文可以做出各种修改和改变。

1-系统综述

图1示意性地图示了用于获取用户输入的计算机系统100的示例。系统100包括计算机102。计算机102包括:存储介质104、存储器106、处理器108、接口110、用户输出接口112、用户输入接口114和网络接口116,它们都通过一个或多个通信总线118而被链接在一起。

存储介质104可以是任何形式的非易失性数据存储设备,诸如硬盘驱动、磁性盘、光学盘、rom等中的一个或多个。存储介质104可以存储供处理器108执行的操作系统以便使计算机102运转。存储介质104还可以存储一个或多个计算机程序(或软件或指令或代码)。

存储器106可以是适于存储数据和/或计算机程序(或软件或指令或代码)的任何随机存取存储器(存储单元或易失性存储介质)。

处理器108可以是适于执行一个或多个计算机程序(诸如存储在存储介质104上和/或存储器106中的那些)的任何数据处理单元,所述计算机程序中的一些可以是根据本发明的实施例的计算机程序,或者是当由存储器108执行时引起处理器108施行根据本发明的实施例的方法并将系统100配置为根据本发明的实施例的系统的计算机程序。处理器108可以包括并行地操作、分离地操作或彼此协作地操作的单个数据处理单元或多个数据处理单元。在施行用于本发明的实施例的数据处理操作中,处理器108可以将数据存储到存储介质104和/或存储器106,和/或从存储介质104和/或存储器106读取数据。

接口110可以是用于向计算机102外部的或从计算机102可移除的设备122提供接口的任何单元。设备122可以是数据存储设备,例如光学盘、磁性盘、固态存储设备等中的一个或多个。设备122可以具有处理能力——例如,设备可以是智能卡。因此,接口110可以根据其从处理器108接收的一个或多个命令来从设备122访问数据、或向设备122提供数据、或与设备122对接。

用户输入接口114被布置为从系统100的用户或操作者接收输入。用户可以经由系统100的一个或多个输入设备来提供该输入,所述输入设备诸如是连接到用户输入接口114或与用户输入接口114通信的鼠标(或其他指向设备)126和/或小键盘124。然而,将领会,用户可以经由一个或多个附加或可替换输入设备(诸如,触摸屏/触摸板、麦克风和/或相机)来向计算机102提供输入。计算机102可以将经由用户输入接口114从输入设备接收的输入存储在存储器106中以供处理器108后续访问和处理,或者可以将所述输入直接传递到处理器108,使得处理器108可以相应地响应用户输入。

用户输出接口112被布置为向系统100的用户或操作者提供图形/视觉和/或音频输出。这样,处理器108可以被布置为指示用户输出接口112形成表示期望图形输出的图像/视频信号,并将该信号提供给连接到用户输出接口112的系统100的监视器(或屏幕或显示单元)。附加地或可替换地,处理器108可以被布置为指示用户输出接口112形成表示期望音频输出的音频信号,并将该信号提供给连接到用户输出接口112的系统100的一个或多个扬声器121。

在使用触摸屏的情况下,将领会,触摸屏执行用户输入和输出功能两者,因此将耦合到用户输入和输出接口112和114两者。在这类情况下,触摸屏可以取代或补充监视器120、键盘124和鼠标126中的一个或多个。

最后,网络接口116为计算机102提供从一个或多个数据通信网络下载数据和/或向一个或多个数据通信网络上传数据的功能性。

将领会,图1中图示的并在前面描述的系统100的架构仅仅是示例性的,并且可以在本发明的实施例中使用具有不同架构(例如具有比图1中示出更少的组件或具有除图1中所示出组件外的附加和/或可替换组件)的其他计算机系统100。作为示例,计算机系统100可以包括以下中的一个或多个:个人计算机;移动电话;平板计算机;平板pc;膝上型计算机;电视机;机顶盒;游戏控制台;其他移动设备或消费者电子设备等。特别地,计算机系统100可以是用于接收用户输入的任何计算机系统。在优选实现中,计算机系统100是诸如包括触摸屏的平板计算机或移动电话之类的移动计算设备。

2-使用存储的视频内容

如图2中示出的,提供获取用户输入的计算机实现方法200。在步骤s201处,方法200包括提供对视频内容的访问,其中视频内容表示包括供用户选择的多个元素的用户接口。在步骤s202处,方法200还包括向用户播放视频内容的第一部分。在步骤s203处,方法200还包括检测响应于所播放的视频内容的第一部分而发生的第一用户交互。在步骤s204处,方法200还包括基于检测到的第一用户交互的一个或多个属性来确定由用户选择的第一元素。

因此,方法200是以数字视频格式编码的用户接口的实现,并且由用户交互控制视频回放。视频内容可以包括图形内容和/或音频内容。在一个示例中,可以以压缩视频格式编码视频内容以减少要求的带宽。方法200使用户能够借助于响应于所播放视频内容而做出的用户交互来提供用户输入。在步骤s201中向用户播放的视频内容的第一部分包括供用户选择的多个元素中的一个或多个。当运行方法200的应用接收到与用户交互相关联的用户输入时,它可以在开始时间偏移处开始视频内容的回放,直到暂停回放的特定结束时间偏移。特别地,提供控制“当前视频帧”的功能(例如,以设置视频时间偏移的形式)、控制回放的功能(前进、后退、回放速率)和“暂停”回放的手段,该手段对呈现静态图形用户接口元素而言是有用的。因此,方法200可以例如使用“播放”、“暂停”和“跳过”来响应于最终用户动作而控制视频呈现。

用户接口的多个元素可以包括图形元素,所述图形元素诸如字符、数字、字母、符号、标点符号、标记、菜单项(例如下拉菜单、子菜单)、按钮(例如单选按钮、复选框、循环按钮)、列表框项,微调器选项、下拉列表项、滚动条项、文本框项、虚拟键盘键、计算机游戏图形和/或其他图形。可替换地/附加地,用户接口的多个元素可以包括供用户选择的诸如语音列举数字/字母/单词等音频元素。

方法200的方法步骤可以由诸如计算机系统100之类的计算机系统执行。例如,方法步骤可以作为经由处理器108可执行的程序代码存储在图1的存储器106中的软件应用中。此外,在软件应用的执行期间,可以经由监视器120和/或扬声器121向用户播放视频内容,可以借助于用户输入接口114(其耦合到一个或多个用户输入设备124、126等)来检测第一用户交互,并且可以由处理器108施行确定步骤。方法200可以至少部分地在服务器处实现,在该情况下,从服务器流式传输到用户的视频取决于由客户端设备上的相关软件应用发送到服务器的用户交互属性。

在图2的方法中,数字视频内容完全是预生成的(例如,由服务器)。这类预生成视频内容可以本地存储在用户设备上(例如,在图1中示出的计算机102的存储器106中)。可替换地/附加地,预生成视频内容可以存储在外部设备(例如,设备122)上和/或经由网络或互联网可访问的服务器上(均经由网络接口116可访问)。视频内容可以是单个视频文件,或者可以由回放可以在其之间无缝切换的多个视频文件组成。

视频内容包括多个视频帧。视频内容可在回路中可播放。可替换地,可以通过将回路的结束处的当前视频帧改变到回路的初始帧来实现回路。在该情况下,控制api应当支持改变当前(或下一帧)和监视当前帧值(可替换地,可以使用实时时钟值,因为每个帧具有由帧显示速率确定的固定“显示时间”)。

如果要求多个用户输入,则方法200的步骤s202、s203和s204可以作为回路构造的部分而重复地被执行。在该情况下,在步骤s202中向用户播放的视频内容的部分每次可以不是相同的。例如,可以初始播放第一部分,并且可以在后续回路中播放第二部分。类似地,用户交互和用户选择的元素可以在回路间改变。

视频内容的第一部分可以包括视频内容的单个帧,或者可以包括视频内容的多个帧。当第一部分包括多个帧时,第一部分可以由在时间方面彼此相邻的视频帧块组成。对于一些用户接口(例如,下面描述的计算机菜单示例),视频内容的第一部分可以始终在视频内容内的特定位置处(例如,第一帧或另一个预定的开始帧)开始。可替换地,在用户接口的实例化间,视频内容的第一部分可以在视频内容内的可变位置处开始(例如,这在下面描述的数字轮示例中可以是合期望的)。在用户接口的上下文中,可以存在对确定性行为的偏好。因此,视频内容的第一部分的开始帧可以针对一些用户接口而确定性地变化。可替换地,对于其他用户接口可以随机变化开始帧;换言之,每次使用方法200时,可以随机选择视频内容的第一部分的开始帧。随机性可以是有益的,以便使观察者难以将用户交互与用户选择的图形元素进行关联(例如,在下面描述的pin录入示例中)。随机性的一个关键益处是在首先准备视频内容文件中可以实现的多样性。相同的内容可以被包括在两个不同的视频内容文件中,但其中内容以不同顺序。因此,如果攻击者能够确定用户交互的视频内容中的时间偏移,则他们将不一定能够将此与用户选择的第一元素关联,除非他们附加地具有对视频内容文件本身的访问,因为他们将不知道两个视频内容文件中的哪个正被使用。换言之,两个文件可以具有在时间偏移和所选择的元素之间的不同映射。清楚地,可以创建多于两个这类视频内容文件以提供另外的多样性。

如前面提及的,可以以压缩视频格式编码视频内容。在视频压缩领域中,可以使用称为图片类型或帧类型的不同算法来压缩视频帧。视频算法中使用的三种主要帧类型是i、p和b。i帧(或帧内编码帧)实际上是完全指定的图片,像常规的静态图像文件。由于i帧本身保留所有图像信息,因此它们是最少可压缩的,但具有可以在不参考其他视频帧的情况下解压缩它们的优点。相比之下,p帧和b帧两者是运动补偿帧的类型。p帧(或预测帧)仅保留图像从先前帧的改变。例如,在其中球跨静止背景移动的场景中,仅需要编码球的移动。编码器不需要在p帧中存储不变的背景像素,因此与i帧相比实现更高的数据压缩率。b帧(双向预测帧)通过使用当前帧与前帧和后帧两者之间的差异以指定其内容来实现最高的数据压缩率。

无论视频内容是否以压缩视频格式编码,都可以至少部分地加密视频内容。例如,可以加密i帧。还可以加密其他帧中的至少一些。

响应于所播放的视频内容的第一部分作出用户交互。在图2的方法中,获取的用户输入是用户选择的第一元素。在一个示例中,第一元素可以是形成密码(诸如pin)的至少一部分的以字符形式的图形元素。在另一示例中,第一元素可以是以菜单项形式的图形元素。设想为第一用户交互的示例的用户交互的类型包括利用触摸屏、键盘、鼠标、麦克风、相机、接近传感器、运动传感器、化学传感器或用于感测用户交互的任何其他传感器的用户交互。特定用户交互可以包括在触摸屏上检测到的滑动、在触摸屏上检测到的按压、物理按钮或键(例如,键盘键或其他键/按钮)的按压、鼠标点击、鼠标移动、使用相机检测到的用户手势和/或使用麦克风检测到的用户音频输入。当然,设想使用户能够从所播放的视频内容表示的多个元素中选择特定元素的任何其他用户交互。检测第一用户交互的步骤s203可以包括检测第一用户交互的一个或多个属性(即,特性)。方法200还可以包括存储第一用户交互的一个或多个属性。

音频元素示例

在一个示例中,供用户选择的多个元素可以包括一个或多个音频元素。例如,视频内容可以包括音频,所述音频包括供视觉受损用户选择的语音列举数字。每个列举的数字可以被认为是供用户选择的音频元素。用户可以通过在特定音频元素被播放给用户时提供用户交互来选择特定音频元素(即,口头数字)。例如,用户可以在他们听到正列举的数字“6”时在鼠标上点击或按压键盘键(例如空格条),以便选择音频元素“6”。因此,在该音频示例中,第一用户交互相对于所播放视频内容的时间是确定用户选择的第一元素的关键。

将理解,可以使用除数字之外的音频元素。例如,方法200可以用于提供音频用户接口的视频实现,所述音频用户接口要求用户从列举的音频选项中选择选项(例如“播放视频文件a,现在按压任意键”、“删除视频文件a,现在按压任意键”、“前进到下一视频文件,现在按压任意键”)。

还将理解,音频元素示例可以用于结合除第一用户交互的定时之外的属性来选择特定音频元素。例如,可以按压特定的键盘键来选择给定的音频元素(例如“播放视频文件a,按压1”、“删除视频文件a,按压2”、“前进到下一视频文件,按压3”)。

图形元素示例

在一个示例中,在步骤s201处,方法200包括提供对视频内容的访问,其中视频内容表示包括供用户选择的多个图形元素的用户接口。在步骤s202处,方法200还包括向用户播放/显示视频内容的第一部分,其中第一部分包括视频内容的一个或多个帧。在步骤s203处,方法200还包括检测响应于所播放/显示的视频内容的第一部分而发生的第一用户交互。在步骤s204处,方法200还包括基于检测到的第一用户交互的一个或多个属性来确定用户选择的第一图形元素。

在该示例中,视频内容表示初始gui显示和与该gui显示的允许的(即,支持的)用户交互的结果两者。换言之,视频内容表示在用户交互之前和之后的gui的图形元素的各种呈现。

在元素是图形元素的情况下,“播放”视频内容的术语可以被认为等同于“显示”视频内容。音频可以也可以不作为视频内容的部分被包括。

下面我们描述多个示例,其中供用户选择的多个元素包括多个图形元素。应当理解,这些图形示例可以与如前面讨论的音频元素的使用相组合。

计算机菜单示例

现在描述方法200的特定示例,其中视频内容表示包括计算机菜单的用户接口,该计算机菜单具有供用户选择的多个菜单项,如图21中示意性图示的。视频内容表示初始用户接口,以及与计算机菜单的所有支持的用户交互的用户接口结局。用户接口被实现为软件应用的部分。

在所述方法的步骤s201处,提供对菜单视频内容的访问。在步骤s202处,向用户显示视频内容的第一部分。第一部分包括图21中示出的第一帧2110,第一帧2110包括左上角的菜单图标2111。除了菜单图标2111之外,图21示出第一帧2110的其余部分是空白的。然而,实际上,将理解,可以在该空白空间中描绘涉及软件应用的其他信息。响应于所显示的第一帧2110,将预期用户在菜单图标2100上点击/按压。在步骤s203处,该点击/按压被检测为第一用户交互。在步骤s204处,方法200还包括基于检测到的第一用户交互的一个或多个属性来确定用户选择的第一图形元素。在该菜单示例中,视频内容的第一部分仅包括以菜单图标2111形式的单个图形元素。因此,在该情况下,用户选择的第一图形元素是菜单图标2111。仅要求第一用户交互的一个属性来确定用户已经选择了菜单图标2111,即第一用户交互相对于所显示的视频内容的位置。

方法200还可以包括:响应于第一用户交互,向用户播放/显示视频内容的第二部分,视频内容的第二部分是基于第一用户交互的一个或多个属性而被选择的。视频内容的第二部分可以包括视频内容的一个或多个帧。在该菜单示例中,视频内容的第二部分表示下拉主菜单,所述下拉主菜单包括供用户选择的多个图形元素。例如,第二部分可以包括图21中示出的第二帧2120。第二帧2120包括供用户选择的五个图形元素,即“后退”菜单项2121、“文件”菜单项2122、“编辑”菜单项2123、“设置”菜单项2124和“偏好”菜单项2125。

方法200还可以包括检测响应于所显示的视频内容的第二部分而发生的第二用户交互,以及基于检测到的第二用户交互的一个或多个属性来确定用户选择的第二图形元素。在该菜单示例中,将预期用户响应于所显示的第二帧2120而在菜单项2121-5中的一个上点击/按压。该点击/按压是第二用户交互。再一次,仅要求第二用户交互的一个属性来确定用户已经选择了菜单项2121-5中的哪个,即第二用户交互相对于所显示的视频内容的位置。

方法200还可以包括:响应于第二用户交互,向用户显示视频内容的第三部分,视频内容的第三部分包括视频内容的一个或多个帧,并且视频内容的第三部分是基于第二用户交互的一个或多个属性而被选择的。在该菜单示例中,如果“后退”菜单项2121是用户选择的第二图形元素,则视频内容的第三部分可以与表示原始菜单图标2111的视频内容的第一部分相同。可替换地,如果其他菜单项2122-5中的任何菜单项是用户选择的第二图形元素,则视频内容的第三部分可以表示包括供用户选择的多个图形元素的子菜单。因此,视频内容包括:例如,如果“文件”菜单项2122是用户选择的第二图形元素,则第三部分可以包括图21中示出的第三帧2130。第三帧2130包括供用户选择的四个另外的图形元素,即“新建”菜单项2131、“打开”菜单项2132、“保存”菜单项2133和“关闭”菜单项2134。

方法200还可以包括检测响应于所显示的视频内容的第三部分而发生的第三用户交互,以及基于检测到的第三用户交互的一个或多个属性来确定用户选择的第三图形元素。在该菜单示例中,将预期用户在菜单项2131-4中的一个上点击/按压或者点击/按压显示器上的其他地方以返回。该点击/按压是第三用户交互。再一次,仅要求第三用户交互的一个属性来确定用户已经选择了菜单项中的哪个,即第三用户交互相对于所显示的视频内容的位置。

换句话说,获取用户输入的计算机实现方法200可以可替换地被认为包括:(a)提供对视频内容的访问,其中视频内容表示包括供用户选择的多个元素的用户接口,(b)执行以下步骤:首先向用户播放视频内容的部分;第二,检测响应于所播放的视频内容的部分而发生的第一用户交互,以及第三,基于检测到的用户交互的一个或多个属性来确定用户选择的元素;以及(c)可选地重复(b)中执行的步骤一次或多次,以便确定用户选择的一个或多个另外的元素。在步骤(c)期间,向用户播放的视频内容的部分可以基于先前检测到的用户交互和/或先前所播放的视频内容的部分和/或先前选择的元素。因此,方法200使用户能够执行任何数量的用户交互以从多个元素中选择元素序列。

因此,检测到的用户交互使用户能够借助于用户接口来控制软件应用。特别地,检测到的用户交互引起视频内容的不同部分(帧)被显示给用户。因此,视频内容表示与用户接口计算机菜单的所有支持的用户交互的结果/结局。在菜单项上点击/按压使用户能够控制软件应用。这是借助于取决于检测到的用户交互而在视频中向后和向前跳过以向用户显示视频内容的适当帧来实现的。换言之,在视频内容中捕获一组菜单和子菜单显示。实现菜单系统的软件应用将视频内容发送到视频回放模块,并使用其回放控制接口来播放视频内容的相关部分(帧),从而使用户能够导航应用的菜单系统。类似的方法技术200可以用于使用户能够控制计算机游戏软件应用。特别地,视频内容可以表示与计算机游戏的所有可能的用户交互的结果/结局,并且然后可能的是,取决于检测到的用户交互而在视频中向后和向前跳过以向用户显示视频内容的适当部分。

在该计算机菜单示例中,向用户显示的视频内容的每个部分包括视频内容的单个帧。然而,将理解,可以将多个帧用于视频内容的每个部分,以提供动态变化(例如闪烁)的图形元素。此外,在该计算机菜单示例中,用户选择的图形元素用于控制软件应用的操作。将理解,图21中示出的菜单是示例性的,并且其他菜单或其他用户接口小部件(例如,下拉列表、虚拟键盘、微调器)也可以用于控制软件应用的操作,所有这些都可以借助于依据方法200的视频来实现。

数字轮示例

现在描述其他实施例,其中视频内容表示包括多个图形元素的图形元素轮的旋转。图3a中示出了示例性图形元素轮300。该示例中的多个图形元素是整数数字0,1,2⋯⋯9,使得在该情况下轮是数字轮300。然而,将领会,取决于意图的应用,也可以使用其他图形元素(例如,字母、单词、符号、标点符号、标记、字符和/或其他图形)。

数字轮300类似于作为标准组合锁或自动售货机的部分所使用的数字轮。中心高亮条301指示所选择的数字(图3a中示出的所选择数字是“1”)。将领会,高亮条301不需要在可见轮300的中心(例如,如果期望,它可以处于顶部或底部或轮上的其他地方)。此外,将领会,高亮条301可以具有除了“条”的配置之外的配置(例如,可以使用高亮圈)。高亮条300仅是指示数字轮300上当前被选择的数字的区域/区/形状。

视频内容表示数字轮300的至少一个完整旋转,使得每个数字在视频内容内的至少一个点处可用于供用户选择。视频内容可以在回路中播放以描绘轮的多个旋转。数字轮的旋转轴平行于显示屏或位于显示屏内。在图3a中,旋转轴是水平的,使得数字轮300垂直取向并垂直旋转(即,在垂直平面内旋转)。如图3b中示出的,数字轮还可以具有垂直旋转轴,使得数字轮水平取向并水平旋转。将理解,这两个方向(即,对角线取向)之间的任何方向也是可能的。

图4中示出了针对各种所选择数字0,1,2⋯⋯9的数字轮位置。图4仅示出了“稳定”数字位置。视频内容还表示数字在相邻数字位置之间逐渐移动的动画。图5中(从左到右)示出了动画绘制从数字位置“0”到数字位置“1”的改变的序列的几个图像。在图5中,可以看到数字轮的前部向上旋转以从数字位置“0”移动到数字位置“1”。

对于数字轮示例设想两种潜在的变型:第一变型,其中数字轮300初始是旋转的并且可以通过用户交互而在特定所选择数字处停止;以及第二变型,其中数字轮300初始是静止的,并且可以通过用户交互而旋转到特定所选择数字。下面将依次描述这些变型。如前所述,将理解,这些变型中作为数字的图形元素是纯示例性的。

数字轮示例:初始旋转变型

在第一变型中,视频内容的第一部分(即,在步骤s202中向用户初始显示的部分)包括视频内容的多个帧。换言之,视频内容的第一部分提供其中向用户播放视频的动态初始显示。因此,视频内容的第一部分可以包括在回路/循环中播放的整个视频内容。视频内容的第一部分描绘多个图形元素中的至少一些图形元素的移动。在数字轮示例中,视频内容的第一部分描绘旋转/自旋通过数字轮的至少部分旋转的数字轮300。

响应于所显示的视频内容的第一部分,在步骤s203中用户交互发生。用户交互可以在高亮条301中示出所意图数字时的特定时间。可以存在作为视频内容的第一部分的部分而显示的专用按钮,并且当在高亮条301中示出所意图数字时,用户可以按压/点击该按钮。可替换地,用户交互可以是在数字轮300本身上的屏幕按压或点击。在一个示例中,仅在数字轮300上的按压的定时是重要的(即,当在高亮条301中示出所意图数字时,用户可以按压数字轮300上的任何地方)。在另一个示例中,在数字轮300上的按压的定时和位置两者都是重要的(即,用户可以在数字轮300上的按压时正示出所意图数字的位置处按压)。可以设想其他用户交互以选择所意图数字。

步骤s203包括检测第一用户交互。该步骤s203可以包括检测第一用户交互的一个或多个属性。如前面描述的,第一用户交互的关键属性是第一用户交互相对于所显示的视频内容的时间。因此,步骤s203可以涉及检测第一用户交互相对于所显示的视频内容的时间。用户交互相对于所显示的视频内容的位置也可以是重要的。因此,在步骤s204中提及的一个或多个属性包括第一用户交互相对于所显示的视频内容的时间,以及可选地用户交互相对于所显示的视频内容的位置。

响应于第一用户交互,方法200可以包括暂停视频内容的第一部分的显示。这为用户提供视觉反馈以使他们能够看到借助于第一用户交互已经选择了什么数字。在该情况下,第一用户交互使数字轮300停止旋转。例如,可以存在作为视频内容的第一部分的部分而显示的“停止”按钮,并且用户可以按压/点击该按钮以停止数字轮300的旋转。可以设想停止数字轮300的旋转的其他用户交互(例如如前面描述的,在数字轮300本身上按压)。

在有利的示例中,数字轮300继续旋转直到通过第一用户交互停止在特定取向处。在该情况下,如果数字轮300停止在还未达到所意图数字的取向处(例如,高亮条301中尚未示出所意图数字),可以使用另外的用户交互来重新开始数字轮300的旋转,并且然后可以使用另一用户交互来在所意图数字处重新停止数字轮300。在该情况下,引起数字轮300在所意图数字处停止的最终用户交互可以被认为是步骤s203的第一用户交互。

在步骤s204中,基于检测到的第一用户交互的一个或多个属性来确定用户选择的第一数字。用户选择的第一数字是前面称为用户选择的数字的“所意图数字”。第一用户交互的一个或多个属性可以与第一数字唯一地相关联,以使得能够确定第一数字。换言之,第一用户交互的一个或多个属性可以被映射到特定数字。如前面所讨论的,映射到第一数字的可以仅是第一用户交互相对于所显示视频内容的时间(例如,在前面“停止”按钮示例中)。可替换地,第一用户交互相对于所显示的视频内容的时间和位置可以一起被映射到特定数字(例如,前面在数字轮300上的所意图数字上按压的示例中,无论在该时间所意图数字是否在高亮条中)。包括方法200的软件应用被布置为访问相关映射(例如,映射可以被存储在本地或者可以经由服务器可访问)。映射本身隐含地取决于视频内容的第一部分的知识。

一旦已经选择了第一数字,数字轮上示出的多个数字就可以消隐或以其他方式模糊,以防止“肩窥”。这可以通过跳过视频内容的回放到视频内容中的一位置来实现,在该位置中以消隐的数字来描绘数字轮。图7中针对数字轮700的轮703示出作为数字消隐的示例。因此,在该实施例中,所述方法还可以包括响应于第一用户交互,向用户显示视频内容的第二部分,视频内容的第二部分包括视频内容的一个或多个帧。在该情况下,视频内容的第二部分是表示其中所有数字都被消隐的数字轮300的帧。

将理解,如果期望,用户可以借助于同一数字轮依次选择另外的数字。例如,可以按压“下一个”按钮以指示已成功选择第一数字,并且期望选择后续数字。类似地,可以按压“结束”按钮以指示已经选择了所有必要的数字。因此,可以使用图形元素的单个轮来输入多元素口令、密码或pin。

数字轮示例:初始静止变型

在该第二变型中,在步骤s202中初始向用户显示的视频内容的第一部分不需要包括视频内容的多个帧。取而代之的是,视频内容的第一部分包括其中以静止配置描绘多个图形元素的视频内容的一个或多个帧。例如,视频内容的第一部分可以由视频内容的单个帧组成,使得显示第一部分包括静态地显示单个帧(即,以暂停模式显示单个帧)。在数字轮示例中,视频内容的第一部分描绘了在特定取向上静止的数字轮300。

响应于所显示的视频内容的第一部分,在步骤s203中第一用户交互发生。该第二变型中的第一用户交互是引起数字轮300从其初始静止取向旋转到最终取向的交互,在所述最终取向中所意图数字被示出在高亮条301中。在优选实施例中,第一用户交互包括在数字轮300上的上/下滑动,所述上/下滑动引起轮300在滑动运动的方向上旋转到所意图数字。可以使用多个小滑动来代替单个较大的滑动。设想用于旋转数字轮300的其他用户交互,诸如上/下的轻敲、物理的上/下按钮、由相机记录的手势、语音命令和/或鼠标滚动/拖动。可以提供“完成”按钮(或类似物)用于一旦在高亮条301中示出所意图数字用户就按压。

步骤s203包括检测第一用户交互。步骤s203可以包括检测第一用户交互的一个或多个属性。一个这类属性可以是用户交互相对于数轮取向的方向(例如,滑动方向)。例如,对滑动相对于图3a中示出的垂直取向数字轮300是否是上/下的检测,或是对滑动相对于图3b中示出的水平取向数字轮300是否是左/右的检测。在一个实施例中,数字轮300可以仅在一个方向上旋转,因此在错误方向上的滑动可能根本不引起数字轮300旋转。可以检测的用户交互的其他属性包括用户交互的长度(时间方面和/或物理距离方面)和/或用户交互的速度。在一个实施例中,在数字轮上的滑动引起数字轮在滑动运动的方向上旋转到下一个数字,而不论滑动的长度/速度如何。因此,可以使用用户交互的各种不同属性清楚地设想用于从检测到的用户交互转换到数字轮300的移动的不同算法。可以检测的第一用户交互的示例性属性是用户交互相对于所显示的视频内容的移动方向(例如,相对于数字轮取向的滑动方向)、用户交互的移动速度(例如,滑动的速度)、用户交互的时间方面的长度(例如,时间方面的滑动长度)、用户交互相对于所显示的视频内容的物理长度(即,距离)(例如,距离方面的滑动长度)、用户交互相对于所显示的视频内容的时间(例如,视频内容的时间,在该时间视频初始在数字轮300静止的情况下被暂停)、以及用户交互相对于所显示的视频内容的位置(例如,在显示的数字轮附近或不在显示的数字轮附近)。第一用户交互的另一个属性是用于检测用户交互的传感器或输入设备的标识。可以检测的第一用户交互的另一个属性是用户交互在键盘上的位置(即,用户交互的位置确定已经按压了哪个键盘键)。可以检测的第一用户交互的另一个属性是与用户交互相关联的声音或单词(例如,用于语音命令)。在一个示例中,可以使用与语音命令组合的眼跟踪设备来选择图形元素。

响应于第一用户交互,方法200还可以包括向用户播放/显示视频内容的第二部分。视频内容的第二部分可以包括视频内容的多个帧。基于第一用户交互的一个或多个属性来选择视频内容的第二部分。换言之,由用户交互来确定所显示的视频内容的第二部分:不同的用户交互可以导致不同的第二部分。在数字轮示例中,视频内容的第二部分示出了从其初始静止取向旋转到最终取向的数字轮300,在所述最终取向中所意图数字被示出在高亮条301中。因此,第一用户交互有效地控制视频内容的回放。

就第一变型而言,在步骤s204中基于第一用户交互的一个或多个属性来确定由用户选择的第一图形元素。为了根据第一用户交互的属性确定第一数字,要求(初始向用户显示的)视频内容的第一部分的知识。例如,给定的用户交互(例如,给定的滑动)可以引起数字轮向上旋转3个数字。因此,有必要具有视频内容的第一部分中的数字轮位置以及滑动的属性两者的知识,以确定第一用户输入。与视频内容的第一部分的知识(例如,视频内容被暂停以显示第一部分所处的时间偏移)一起,第一用户交互的一个或多个属性可以与第一数字唯一地相关联以使得能够确定第一数字。因此,如在第一变型中那样,从用户交互属性到输入数字的映射隐含地取决于视频内容的知识。

就第一变型而言,将理解,如果期望,用户可以借助于同一数字轮来依次选择另外的数字。

因此,该变型使用户能够取决于其与所显示内容的交互来控制视频内容的回放。视频内容包含用于响应用户交互的所有动画。在数字轮示例中,视频内容包含所有数字位置和数字轮旋转到下一个位置的动画。对用户滑动的响应涉及从当前数字位置开始视频内容的回放并且在用户滑动所确定的下一个数字位置处结束。视频播放可以是前进的或后退的。在达到视频内容中对应于下一个/所意图数字位置的位置后,暂停视频内容的回放。

如果计算机102中的视频模块仅支持以前进模式的呈现,则仅在前进方向上旋转数字轮(如前面提及的)可以是可能的。可替换地,视频内容可以是依次包括第一和第二部分的单个视频文件,第一部分表示轮在第一(前进)方向上的旋转,并且第二部分表示轮在与第一方向相反的第二(后退)方向上的旋转。因此,视频内容包含针对给定静止数字轮位置的两个时间位置:第一位置,其中视频从那里往前的前进播放将从静止位置在一个方向上旋转数字轮,以及第二位置,其中视频从那里往前的前进播放将从静止位置在另一个方向上旋转数字轮。响应于用户交互显示视频内容的第二部分然后涉及跳到视频内容中的适当时间位置、(以前进模式)开始回放、以及当达到针对下一个/所意图数字的时间位置时暂停。因此,视频内容的第一和第二部分不需要在视频内容内相邻。作为另外的替换,回放可以使用具有前向和后向旋转轮的两个文件,并且回放可以取决于用户输入而在两个文件之间切换。换言之,视频内容可以由第一和第二视频文件构成,第一视频文件表示轮在第一方向上的旋转,并且第二视频文件表示轮在与第一方向相反的第二方向上的旋转。

html5视频元素具有属性“回放速率”,所述属性“回放速率”允许以更快或更慢的速率播放视频,或者对于负值反向地播放视频。因此,回放速率可以响应于检测到的第一用户交互的滑动速度。

可替换数字轮示例

图6a和6b中示出了可替换数字轮600。这些轮600中的任一个可以用在前面描述的第一变型中。图6a中示出的轮600可以可替换地用在前面描述的第二变型中。将理解,数字再次用作形成用户接口的多个图形元素的具体示例,并且数字的使用在本章节或说明书的任何其他章节中没有限制性的意图。

数字轮600看起来有点类似于老式电话上看到的旋转拨盘。再一次,数字轮600描绘了数字0,1,2⋯⋯9。然而,在数字轮600的旋转期间,所有的数字总是可见的(参见图3a和3b的数字轮300,其中一个时间仅数字的子集一直可见)。数字轮600的旋转轴垂直于显示屏,使得数字轮600在显示屏的平面中旋转。类似于图3a和3b的数字轮300,图6a的数字轮600具有高亮区域601(形成为轮的扇区)以指示特定的所选择数字。因此,如前面参考数字轮300描述的,类似的用户交互可以用于选择所意图数字。相比之下,图6b的数字轮600不具有高亮条。因此,在该情况下,在步骤s204中要求第一用户交互相对于所显示视频内容的时间和位置两者以便确定用户选择的第一数字。

多个轮:多个视频窗口

在另一个变型中,例如,可以使用多个旋转数字轮来录入多数位pin。在图7中示出了包括四个数字轮的示例性gui700。图7的gui700包括并排显示的四个垂直取向的数字轮701-704,使得它们都具有共同的水平旋转轴。在图7中,gui示出了分配给四个数字轮的数字“2812”。

多数字轮gui700的简单实现使用多个视频窗口,每个视频窗口目标为显示如前面所描述的单个旋转轮视频。用户交互过程可以遵循用于依次(例如,从左到右)激活每个数字轮的固定序列。例如,第一滑动交互可以与第一数字轮701相关联而不论滑动相对于所显示数字轮的位置如何。可替换地,用户交互本身可以确定交互涉及哪个轮。例如,主要定位在显示区域中的与给定数字轮相关联的滑动,或者可以存在与每个相应轮相关联的“上/下”或“停止”按钮。

每个轮可以与相应的视频内容文件相关联。针对每个轮的单独的视频内容文件的使用容易使每个轮能够在不同(随机)数字处开始。其还使得能够针对不同轮使用不同旋转速度。此外,如果期望,多个视频内容文件的使用使得能够使用具有“空白”值的一个或多个额外的轮(以迷惑攻击者)。如果攻击者具有对用户交互数据的访问,但是没有对显示给用户的视频内容的访问(例如这可以使用如在pct/ep2015/069294中描述的安全视频路径回放模式来实现),那么攻击者不能够确定用户输入数据,这是因为pin录入的该模式具有映射到特定pin输入值的非常大量的变量。这增大在录入特定pin时的用户交互的显著随机性,使得将用户交互与特定pin进行关联远远更困难。

如前面描述的单个轮变型中,轮可以初始是旋转的(供用户在适当数字处停止)或者初始是静止的(供用户旋转到适当数字)。在其中轮初始静止的变型中,运行方法200的应用可以使用视频内容文件来生成引入序列,所述引入序列在某时间段内使轮自旋到特定开始位置(很像自动售货机)。在引入序列之后,最终用户可以依据前面描述的方法200以数字录入开始。

如在单个数字轮示例中,应用将编码视频内容发送到视频模块以供回放。浏览器中的web应用将使用html5视频元素和(可选地)eme来实现这点。在其中轮初始静止的示例中,应用将回放设备配置为在与特定轮位置相关联的初始时间戳处开始回放。然后用户交互触发视频到下一轮位置时间戳的回放。浏览器中的web应用将使用支持诸如播放、暂停、开始于和反向回放之类动作的html5视频元素的视频控制特质来实现这点。

多个轮:单个视频窗口1

在一些应用环境中,使用多个视频窗口用于动画绘制pin录入可能是不可行的。在该情况下,预记录内容需要捕获远远更大数量的轮位置。对于10个数值的四个拨盘,存在104个不同的数字位置。每个位置可以前进到四个不同位置和后退到四个其他位置。所以对于每个包含m个位置的n个轮,存在针对mn个不同的pin轮位置的2n.mn个转变(其可以包括具有空白值的位置)。这可以导致对于实现任何单个轮位置的改变而言必要的相当大的内容文件和相当大量的内容位置。如果不支持反向回放,视频文件大小甚至将进一步增大。

对于其中轮初始静止的示例,应用能够确定视频内容文件中与每个可能的pin相关联的开始时间,每个具有到下一个pin的四个前进和四个后退转变中的一个。因此,假设支持前进和后退回放,那么视频内容文件中将存在例如初始示出7777的四个不同开始位置。第一开始位置将使得能够将回放前进到8777和将回放后退到6777。第二开始位置将使得能够将回放前进到7877和将回放后退到7677。第三开始位置将使得能够将回放前进到7787和将回放后退到7767。第四开始位置将使得能够将回放前进到7778和将回放后退到7776。如果仅支持前进回放,那么在视频内容文件中将存在示出7777的八个不同开始位置。空白和其他符号增大可能的“pin”的范围。可以通过建立函数来处置针对每个pin的多个开始位置,所述函数将轮上的数字转变映射到视频时段(开始时间、结束时间)和相关联的回放方向。编码视频可以相对紧凑,这是因为轮动画中存在可以由具有需要编码的视频动画的知识的视频编码器使用运动矢量而有效编码的大量冗余。

如已经在单个数字轮示例中概述的,在接收到用户输入之后可以在客户端处本地实现或在服务器处远程地实现回放控制。

多个轮:单个视频窗口2

在单个视频窗口中多个轮的一个实现中,数字轮正在不断地旋转并且用户可以通过关于轮的用户交互(鼠标点击、轻敲)来停止/重新开始该轮。可以将用户交互的属性与视频时间偏移和特定轮匹配。当最终用户已经将所有轮停止在期望的数字位置处时,应用可以提交用户交互属性以供进一步处理。单独的停止/重新开始按钮可以取代数字轮屏幕区域内的用户交互。

可以使用包括若干视频节段的视频文件来实现该输入方法。在初始视频节段中,所有轮正在持续地旋转(通过完整旋转)。换言之,初始视频节段表示多个数字轮的旋转。为了提供要播放给用户的视频内容的第一部分,软件应用建立初始视频节段的部分或重复回放以示出旋转的所有四个轮。这些轮可以或可以不在不同方向上和/或以不同速度旋转。

然后第一用户交互在第一轮上高亮第一数字时的特定时间选择并停止第一轮,并且应用记录视频内容内的时间偏移以及所选择的轮。因此,就前面描述的一般方法200而言,检测到响应于所显示的视频内容的第一部分而发生的第一用户交互的属性。在该情况下,所述属性是第一用户交互的位置和时间。第一用户交互的位置与多个轮中的第一轮相关联。所检测到的第一用户交互的时间和位置用于确定用户选择的第一数字。换言之,第一轮和第一用户交互的时间一起与第一数字相关联,并且所确定的用户输入是在第一轮被用户停止时其上高亮的第一数字。

然后可以使用其中第一轮静止的视频内容的另一视频节段来继续回放,并且剩余轮继续持续地旋转。在视频内容的该节段中,第一轮在特定旋转取向处保持静止,所述特定旋转取向由第一用户交互的时间处视频内容的第一部分中的第一轮的旋转取向所限定。向用户播放的视频内容的第二部分取自该视频节段。因此,响应于第一用户交互,向用户显示视频内容的第二部分。第二部分包括视频内容的多个帧,并且在视频内容的第二部分中第一轮是静止的。

在一个示例中,第一视频节段包括视频内容的第一部分,并且第二视频节段包括视频内容的第二部分,其中第二视频节段选自多个第二视频节段。第二视频节段中的每个表示多个轮中除了一个轮外的所有轮的旋转,其中所述一个轮是静止的。因此,在该四轮示例中,存在四个第二视频节段,每个第二视频节段具有单个静止轮和进行完整旋转的三个轮。要向用户显示的(从多个第二视频节段)选择的第二视频节段是其中多个轮中除了第一轮之外的所有轮都正在旋转并且其中第一轮静止的那个第二视频节段。

为了减少所要求的视频节段的数量,可以在视频内容的第二内容部分中利用“空白”或以其他方式模糊的数字示出静止(第一)轮。这也帮助阻止“肩窥”。在图8中示出了示例,其中第一轮是轮703。所以,将理解,前面提及的“第一轮”可以是轮701-704中的任何一个;标签“第一”仅用于标识用户首先与之交互的轮。对于下面讨论的第二至第四轮是类似的。

考虑向用户显示视频内容的第一和第二部分之间的转变。在视频内容的第一和第二部分之间继续旋转的轮(即,除了第一轮之外的所有轮)应当优选地在视频内容第一和第二部分之间以持续的方式旋转。换言之,在这些数字轮的显示旋转中不应当存在间断。因此,每个非停止数字轮的数字轮位置在视频内容的第一部分的结束处应当与在视频内容的第二部分的开始处相同。应用可以在第一用户交互的时间处停止显示第一部分。然后应用针对单个静止轮需要将回放跳到相关第二视频节段并且在该第二视频节段内的时间偏移处开始播放,所述时间偏移维持视频内容的第一和第二部分之间的旋转轮的数字位置。在一个示例中,时间对齐(覆盖完整数字轮旋转的)所有视频节段的数字轮旋转使应用能够使用记录的时间偏移,用于计算在下一个视频节段中的开始时间偏移。这简化回放控制。

在这里描述的四轮示例中,要求以下视频节段,每个视频节段具有不同的停止数字轮:

1个具有四个旋转数字轮的第一视频节段;

4个第二视频节段,每个具有1个静止(空白)数字轮和旋转的剩余3个轮;

6个第三视频节段,每个具有2个静止(空白)数字轮和旋转的剩余2个轮;以及

4个第四视频节段,每个具有3个静止(空白)数字轮和旋转的剩余1个轮。

因此,可以使用包含15个视频节段的视频文件来实现数字轮动画。假设将数字轮从一个数字旋转到相邻数字花费1秒钟,那么对于每个视频节段,完整旋转周期是近似10秒。这导致150秒的总视频内容文件持续时间。以900kbit/sec的视频编码速率,这相当于大约17mbyte的视频文件。应指出,900kbit/sec是针对压缩视频内容的示例性视频编码速率。取决于分辨率、视频压缩语法和视频编解码器,视频编码速率可以显著变化。

在开始第二视频节段的回放之后,应用等待第二用户交互来停止另一个数字轮,记录针对第二视频节段的时间偏移和所选择的数字轮,并且跳到包含多一个静止(空白)数字轮的相关第三视频节段。再一次,这示出用户交互用于确定特定数字轮并且还有针对该数字轮选择的数字。这继续直到最后轮被停止。下面以进一步详细阐述该过程。

响应于所显示的视频内容的第二部分,用户可以做出可由应用检测的第二用户交互。第二用户交互动作来在所选择的第二数字处停止剩余轮中的第二轮。就第一用户交互而言,可以基于所显示的视频内容以及第二用户交互的一个或多个属性来确定用户选择的第二数字。再一次,该示例中的属性是第二用户交互的时间和位置。第二用户交互的位置与多个轮中的第二轮相关联。响应于第二用户交互,向用户显示视频内容的第三部分。第三部分包括视频内容的多个帧,并且在视频内容的第三部分中第一和第二轮是静止的。

在一个示例中,第三视频节段包括视频内容的第三部分,并且第三视频节段选自多个第三视频节段。第三视频节段中的每个表示多个轮中除了两个轮外的所有轮的旋转,其中所述两个轮是静止的。因此,在该四轮示例中,存在六个第三视频节段。要向用户显示的(从多个第三视频节段)选择的第三视频节段是其中多个轮中除了第一和第二轮之外的所有轮都正在旋转并且其中第一和第二轮静止的那个第三视频节段。

响应于所显示的视频内容的第三部分,用户可以做出可由应用检测的第三用户交互。第三用户交互动作来在所选择的第三数字处停止剩余轮中的第三轮。就第一和第二用户交互而言,可以基于所显示的视频内容以及第三用户交互的一个或多个属性来确定用户选择的第三数字。再一次,该示例中的属性是第三用户交互的时间和位置。第三用户交互的位置与多个轮中的第三轮相关联。响应于第三用户交互,向用户显示视频内容的第四部分。第四部分包括视频内容的多个帧,并且在视频内容的第四部分中第一至第三轮是静止的。

在一个示例中,第四视频节段包括视频内容的第四部分,并且第四视频节段选自多个第四视频节段。第四视频节段中的每个表示多个轮中除了三个轮外的所有轮的旋转,其中所述三个轮是静止的。因此,在该四轮示例中,存在四个第四视频节段。要向用户显示的(从多个第四视频节段)选择的第四视频节段是其中多个轮中除了第一至第三轮之外所有轮都正在旋转并且其中第一至第三轮静止的那个第四视频节段。

响应于所显示的视频内容的第四部分,用户可以做出可以由应用检测的第四用户交互。第四用户交互动作来在所选择的第四数字处停止剩余轮中的第四轮。就第一至第三第二用户交互而言,可以基于所显示的视频内容以及第四用户交互的一个或多个属性来确定用户选择的第四数字。再一次,该示例中的属性是第四用户交互的时间和位置。第四用户交互的位置与多个轮中的第四轮相关联。

该示例使用四个轮,所以没有跟随第四用户交互需要向用户显示的视频内容的另外部分。尽管如此,将理解,取决于轮的数量和所要求的用户输入的数量可以显示另外的部分。

在一个示例中,如这里描述的四轮示例中,各种视频节段是单个视频文件的部分。可替换地,可以在多个单独的视频文件之间共享视频节段。

一旦如前面所描述的已经停止所有轮,应用就可以使用各种用户交互中的每个的属性(例如,时间和位置)连同视频内容的知识来确定用户已经输入的完整pin。换言之,视频内容的知识使用户交互属性能够被映射到输入pin的数位。每个数字轮的开始位置容易在pin录入请求之间变化。例如,相同视频内容文件可以用于多个pin录入请求,但是其中初始向用户播放视频内容的不同第一部分。可替换地,不同视频内容文件可以用于不同的pin录入请求,其中每个视频内容文件具有在时间偏移和数字之间的不同映射(和在回放控制方面的相关联改变)。因此,没有视频内容的知识的攻击者无法从时间偏移中导出pin值(防止攻击者获得视频内容的知识的一种方式是使用视频内容的drm保护并使用用于向用户显示视频内容的安全视频路径——参见pct/ep2015/069294)。应用还可以通过开始具有少一个静止数字轮的合适视频节段的回放来实现先前停止的数字轮的重新开始。

在该示例中,软件应用使用单个用户交互来找出哪个轮被选择以及该轮上显示哪个值。两个参数确定响应于用户交互而要显示的视频内容的下一部分。可替换地,第一用户交互可以用于找出哪个轮被选择(例如,在特定轮上的屏幕按压),使得用户选择的第一元素是第一轮。然后,第二用户交互可以用于选择在该轮上显示的特定值(例如,在“停止旋转”按钮上的屏幕按压),使得用户选择的第二元素是先前所选择轮上的特定字符/数字。可以在具有多个“小部件”的gui屏幕中使用相同的方案,其中应用首先确定哪个小部件被选择并且然后确定小部件需要执行哪个响应。如前面提及的,这可以响应于单个用户交互或者响应于用户交互序列。因此,单个用户交互可以触发处理步骤序列。

pin录入变型

在一些应用中,在最终用户设备(例如,移动设备)中本地处理用户输入是合期望的。一个示例是pin码录入的使用来授权交易。录入pin数字的常见方式是使用如图17中图示的标准小键盘1700。图17示出了用于录入pin码的固定小键盘1700。针对给定(固定)pin使用该小键盘1700导致容易链接到pin的用户交互序列(按压/点击位置)。为了解决该各种问题,存在各种现有的键盘/小键盘布局随机化技术,如在背景技术章节中简要参考的。

前面描述的数字轮示例还可以用于pin录入。使用存储的视频内容的数字轮实现(依据方法200)具有轮上的数字与视频文件中的时间偏移相关的益处。数字改变之间的初始轮位置和时间偏移差异可以在视频内容中变化。这使创建不同视频文件来录入pin是可能的,其基本上随机化用户交互并打破用户交互和pin之间的任何关联。类似地,可以置换视频内容文件的编码视频区段以向攻击者提供另外的混淆。这将要求在视频回放控制应用中的相关联改变。

可以适配用于pin录入的交互模式。可以通过诸如“滑动”、“鼠标拖动”、上/下键盘事件等最终用户交互来“转动”数字轮。pin录入位置对应于可以链接到pin本身的视频内容中的时间偏移。在受保护软件应用中,可以使用基于时间偏移的查找表或函数将每个时间偏移映射到变换的pin。还存在添加空白或虚假符号的选项。

在变型中,针对pin录入所要求的所有数字分布在如图18的gui1800中示出的若干轮上。在图18中示出的示例性配置中,第一轮1801具有数字“3”和“7”,第二轮1802具有数字“1”和“6”,第三轮1803具有数字“2”、“5”和“9”,并且第四轮1804具有数字“0”,“4”和“8”。虽然图18中示出了四个轮,但是将领会,可以替代地使用不同数量的轮。最终用户然后可以旋转四个轮中的任何轮以将所选择数字移动到中心“高亮”位置1805(与正常数字轮一样),从而选择该数字作为录入的pin的部分。在每个数字选择之后,所显示的视频内容可以重置为具有随机分布在轮上的数字的任意配置。在该变型中,检测到的用户交互的相关属性是(a)用户交互的位置(其与被旋转的特定轮相关联),以及(b)与用户交互相关联的任何移动(方向、速度、持续时间和/或长度)(其限定特定轮正如何被旋转)。因此,所选择的轮和针对该轮的旋转量对应于视频内容中的时间偏移,该时间偏移又对应于数值。在变型中,轮旋转并且用户交互停止轮以录入数值。在该情况下,检测到的用户交互的相关属性是(a)用户交互相对于所显示的视频内容的位置(其与被停止的特定轮相关联),以及(b)检测到的使用交互相对于所显示视频内容的定时(其与轮何时被停止相关联)。用户交互的时间处的视频时间偏移确定与用户输入相关联的数值。

像游戏的变型不是如图18中那样将数字限于特定的数字轮,而是允许数字跟随跨视频窗口的二维轨迹,所述数字如开创性的“pong”视频游戏中那样在窗口的边界处弹跳。图19中示出了示例性屏幕截图。图19示出了pin录入窗口1900的快照,其中每个数字与数字图块(诸如“3”数字图块1903)相关联。数字图块沿着数字图块区域1902中的弹跳轨迹移动。数字图块可以可选地彼此交互(例如,反弹)以避免重叠图块。用户交互涉及用户在图块上轻敲以选择该数字并将其录入到数字输入栏1901中。数字输入栏1901与数字图块区域1902区分/分离。如在先前的示例中那样,在用户交互的时间处的视频的时间偏移是确定数值中的重要因素。将该偏移与用户交互的坐标(即,位置)组合,以便获取与用户交互相关联的所选择数字。因此,检测到的用户交互的相关属性是用户交互相对于所显示的视频内容的时间和位置,所述时间和位置与用户正选择的特定数字唯一地相关联。

还可以参考图19中示出的屏幕截图来说明另一个变型。在该变型中,可以借助于用户交互在图块区域1902周围移动数字图块。特别地,最终用户可以通过将相关联的数字图块“拖动”到数字输入栏1901中来选择数字。用户可以在数字图块的顶部上开始拖动手势/运动,并且在数字输入栏1901的一般区域中结束拖动手势。可接受的数字录入要求数字图块被移动得足够接近于数字输入栏1901所指示“落下”区。在图19中,靠近所显示的视频内容窗口1900的顶部中心位置示出了数字输入栏1901,但是这将被理解为是示例性的。数字录入栏1901和数字图块区域1902的任何其他相对位置将是可能的。

在前面参考图18和19描述的任何示例中,视频内容的第一部分中的数字图块的初始位置可以是可变的(即,可以在方法200的使用之间变化)。因此,特定用户交互不是唯一地与特定数字图块的选择相关联——还要求所显示的视频内容来解密实际上已经选择了哪个数字。这是超过图17的固定小键盘配置的关键优点。

虽然前面参考图18和19描述的示例涉及4数位的pin数字的录入,但是将理解,这些原理也可以应用于除了仅数字图块之外的图形元素图块,从而使用户能够录入文本栏等。清楚地,文本录入要求比图18和19中示出的十数字图块更大数量的图形元素图块。例如,可以认为更大数量的图块使屏幕混乱并使文本录入复杂化。因此,变型可以使用跨屏幕移动的虚拟键盘或类似物(即,虚拟键盘相对于所显示的视频内容窗口移动)。最终用户可以在虚拟键盘的特定键的位置上点击以选择该键。由于虚拟键盘的位置是时间的函数,因此其复杂化尝试将输入坐标与录入的用户输入进行关联的攻击。时变元素也可以应用于诸如背景技术章节中简要提及的现有的小键盘变换和虚拟键盘变换。

一般而言,软件应用包含用于与最终用户交互的代码。在gui测试中,自动测试生成是可能的。可以使用该相同的方案来记录用户动作和相关联的视频。然后,这可以用于生成视频内容文件、用于随机视频接入点的定时信息以及导致视频的相关联触发序列。这意味着这些工具还可以被适配为针对应用准备包含所有必要图形效果的编码视频内容文件。因此,在一个示例中,使用gui测试技术生成视频内容。该方案的主要缺点是必要视频内容文件的迅速增大的大小。以下章节演示了针对某些用户接口的重要视频文件大小增大的问题,以及可以如何通过实时以压缩视频格式生成视频内容来解决该问题。

3-使用实时生成的视频内容

初步讨论:虚拟键盘示例

作为用于在获取用户输入的方法中使用的gui的示例,考虑供用户提供文本输入的虚拟键盘。图9中示出了示例性虚拟键盘900。虚拟键盘900包括用于显示文本输入字符串902的文本输入栏901,以及多个虚拟键/按钮904。用户可以轻敲/按压所选择的虚拟键904以将对应的图形元素录入到文本输入栏901中,从而创建文本输入字符串902。例如,在图9中,用户最近已按压虚拟键盘900的“t”键903,使得已经在文本输入栏901中录入了“patent”文本输入字符串902的结束处的“t”。因此,当用户键入时,在用户的每个键按压之后,在文本输入栏901中显示更新的文本输入字符串902。虚拟键盘上的其他键(诸如删除和退格)具有它们通常的效果。

文本输入栏901可以显示合理大小的字符的串(20-300个字符),并且字符集可以包含大量字符(100-1000个字符)。因此,在该情况下,使用前面描述的方案不是可行的,通过前面描述的方案,视频内容被预生成并存储以使得能够针对所有可能的用户交互回放适当的gui视频。针对所有可能的用户文本输入来预记录所有视频内容只是不是可行的方案;即使对于前面提及的较低边界,也存在可以显示在文本输入栏901中的20100=10130个可能的文本输入字符串902。此外,在一些变型中可以存在动画,所述动画高亮所按压的虚拟键904和/或增大所按压的键904的大小,以便提供附加的用户反馈。这甚至可以进一步增大预生成视频内容的所要求量。因此,在先前描述的字符轮示例中采用的预记录方案对于该虚拟键盘gui元素是不可行的。

对生成压缩视频的介绍

如图10中示出的,提供获取用户输入的计算机实现方法1000。在步骤s1001处,方法1000包括提供对以压缩视频格式编码的预生成视频内容的一个或多个帧的访问。在步骤s1002处,方法1000还包括向用户显示以压缩视频格式编码的初始视频内容。可以存在初始视频内容的一个或多个帧。初始视频内容基于预生成视频内容,并且初始视频内容表示包括供用户选择的多个图形元素的用户接口。在步骤s1003处,方法1000还包括检测响应于所显示的初始视频内容而发生的第一用户交互。在步骤s1004处,方法1000还包括基于检测到的第一用户交互的一个或多个属性来确定用户选择的(多个图形元素中的)第一图形元素。在步骤s1005处,方法1000还包括响应于第一用户交互,基于预生成视频内容和第一用户交互的一个或多个属性来生成以压缩视频格式编码的新视频内容。在步骤s1006处,方法1000还包括向用户显示新视频内容。

因此,方法1000不是提供包含所有潜在要求的视频内容的非常大的预生成内容文件(如在方法200中),而是基于一个或多个预生成的编码视频分量(即经压缩的)来实时生成编码(即,经压缩的)视频内容。压缩视频内容的实时生成不是简单地涉及屏幕抓取传统图形实现的输出。它也不涉及实时压缩未压缩的视频内容。相比之下,视频内容生成过程参考预生成的编码视频分量(例如,可以使用运动矢量来进行参考)。预生成的分量通常包括任何敏感图像内容(例如,虚拟键盘布局)。因此,在一个示例中,预生成视频内容被加密。一些应用的安全要求可以通过加密预生成视频分量本身并允许对新视频内容中预生成视频分量的参考是未加密的来解决。因此,在一个示例中,新视频内容未加密(即,新视频内容处于明文)。

可以由诸如计算机系统100的计算机系统在本地执行方法1000的方法步骤。例如,方法步骤可以作为经由处理器108可执行的程序代码存储在图1的存储器106中的软件应用中。此外,在软件应用的执行期间,可以在监视器120上显示视频内容,可以借助于用户输入接口114(其耦合到一个或多个用户输入设备124、126等)来检测第一用户交互,并且可以由处理器108施行确定和生成步骤。方法1000可以至少部分地在服务器处实现,在该情况下,从服务器流式传输到用户的视频取决于客户端设备上的相关软件应用发送到服务器的用户交互属性。然而,有利的是,在运行软件应用的设备(例如,计算机系统100)上本地执行新视频内容生成步骤s1005,以便避免与和服务器的通信相关联的时延。在以下各种示例中进一步讨论本地视频生成。

视频压缩的类型

在宽广范围的视频编码标准(mpeg-1、mpeg-2、mpeg-4、h264、vp8、vp9)中,用于实现数据压缩的常见技术是空间冗余的移除(帧内压缩)和时间冗余的移除(帧间压缩)。

关于帧内压缩,使用离散余弦变换(dct)和dct系数的信息丢失编码来移除单个帧中的空间冗余。该过程使编码图像帧所需要的比特数量减少到1/25-1/5。所得到的压缩帧通常称为i帧(或帧内帧)。

关于帧间压缩,编码器将查阅先前编码帧并试图在给定帧中找到类似于它正编码的块(例如,宏块)的块,而不是针对该给定帧中的每个块直接编码原始像素值。先前编码帧被称为参考帧。通过块匹配算法来完成该过程。如果编码器在其搜索中成功,则可以由运动矢量来编码块,所述运动矢量指向参考帧中的类似块的位置。运动矢量确定的过程称为运动估计。在大多数情况下,编码器将成功地在先前编码帧中找到类似但不等同的块。因此,编码器附加地计算两个块之间的差异并将这些残值记录为预测误差。通过使用运动矢量和预测误差两者,解码器将能够恢复块的原始像素。仅参考早前的帧而压缩的帧通常称为p帧(或预测帧)。参考早前的帧和后来的帧两者而压缩的帧通常称为b帧(或双向帧)。为了进一步优化时间冗余的移除,后来的视频压缩标准以更复杂的运动预测方案为特征,所述运动预测方案扩展可以参考的帧的数量并且使得能够针对帧中的大区域编码运动的共同方向。

前面提到的“块”可以例如是宏块。宏块是基于诸如离散余弦变换(dct)之类的线性块变换的以图像和视频压缩格式的处理单元。在本文中可以可互换地使用术语“块”和“宏块”。

除了前面讨论的那些之外的编码帧类型是可能的(例如,mpeg-1使用d帧)。尽管如此,i帧、p帧和b帧是最常见的。

图片组(gop)限定编码视频内容中的各种帧类型的次序(例如,ibbpbbpbbpbbi)。换言之,gop结构指定其中布置帧内和帧间帧的顺序。后来的视频编码标准可以使用更灵活的次序结构。

生成压缩视频的示例

在方法1000的步骤s1005中,运动矢量可以用于生成新视频内容。特别地,在步骤s1005中生成新视频内容可以包括从预生成视频内容的一个或多个帧生成运动补偿帧。在一个示例中,生成运动补偿帧包括生成使用运动矢量编码的像素区域(例如,宏块),所述运动矢量参考来自预生成视频内容的一个或多个帧的像素区域。以该方式使用的预生成帧可以称为“参考帧”。在一个示例中,运动矢量取决于第一用户交互的一个或多个属性(例如,新运动补偿帧的运动矢量可以与触摸屏上的用户滑动的速度和方向相关)。

例如,方法1000可以生成使用运动矢量编码的(宏)块,所述运动矢量参考从中重新使用像素区域的一个或多个预生成i帧。有利地,可以通过选择/设计gui和预生成i帧来简化方法1000,使得不要求预测误差。换言之,可以单独使用运动矢量而从预生成i帧精确地生成运动补偿帧。

方法1000中的新视频内容的本地生成取代方法200中的整体预生成内容的使用。新视频内容可以是呈现到缓冲存储器中的文件。这可以是大的内容文件的节段或是具有相对短的持续时间的自包含内容文件。方法1000可以响应于最终用户动作而例如使用“播放”和“暂停”来控制视频呈现。在方法1000中不要求“跳过”控制(参见方法200),这是因为它通过本地生成的视频序列实现。这提供技术优势,因为方法1000能够使用非常简单的控制api。视频内容的生成可以涉及生成gop结构和附加的(一个或多个)预生成i帧。可以在最终用户设备中本地生成的内容中的时间偏移处开始呈现。

在一个示例中,生成以压缩视频格式编码的新视频内容的步骤s1005涉及生成宏块序列。编码视频使用在屏幕的左上开始的宏块序列(例如,像素块)来创建帧,在所述宏块序列中每个下一宏块以从左到右、从顶到底的次序描述下一像素区域。本发明的示例使用较大帧的六宏块子集。在图11中示出了针对视频内容的两个不同帧的该宏块子集。

图11示意性地图示了来自内容文件的两个视频帧。示例性预生成帧i1以其解码形式被示出。帧i1形成用于使用宏块来本地生成帧p的基础,所述宏块包含参考来自帧i1的像素块的运动矢量。图11还示意性地图示了用于在帧p中创建宏块的运动矢量。本地生成过程涉及构造针对帧p中的宏块的运动矢量。在该情况下,不存在预测误差。因此,每个运动矢量有效地将像素信息从帧i1中的像素区域拷贝到帧p。图11示出了在运动矢量的处理之后以解码形式的帧p,所述运动矢量的处理引起数字“5”向上移动6个像素。图11中概述的构造方法可以应用于多个p帧的序列。利用对运动矢量的适当改变,建立数字“5”的可变向上移位是可能的。这类过程可以用于引起数字在视频帧序列中向上或向下移动。这类序列可以用于创建旋转数字轮的动画。因此,方法1000在步骤s1001中提供对小得多的预生成帧的访问并然后在步骤s1005中本地生成剩余内容文件,而不是在方法200的步骤s201中提供对相对大的视频内容文件的访问。

不是仅使用i帧,而是还可以将预生成p帧用作参考帧,尤其是对于其中在b帧中“合并”的两个帧之间存在足够相似性的用户接口,因为这实际上可以提供大小的减少。因此,将理解,预生成参考帧可以是在运动补偿编码语法结构中可以参考的任何类型的帧(以任何视频编码构造,mpeg或其他方式)。

虚拟键盘示例

可以使用b帧来实现前面参考图9描述的虚拟键盘示例,在所述b帧中宏块参考来自两个i帧i1和i2的像素区域。下面描述了简单的示例实现。

在图12a和12b中分别示出了两个示例性预生成帧i1和i2。图12a的第一i帧i1示出了虚拟键盘,所述虚拟键盘包括用于录入小写字符的多个虚拟键/按钮1204以及显示文本输入字符串1202的文本输入栏1201。文本输入字符串1202包括来自多个虚拟键1204的每个小写字符。图12b的第二i帧i2包含稍微修改的虚拟键盘。特别地,第二i帧i2具有与第一i帧i1相同的显示相同文本输入字符串1202的文本输入栏1201,但是第二i帧i2中的多个虚拟键/按钮1214具有不同的背景颜色。

响应于用户交互(即,当用户在虚拟键盘上键入时),方法1000能够在步骤s1005中基于两个预生成i帧i1和i2生成b帧。新生成的b帧中的每个宏块包含可以参考i1或i2中的像素区域的运动矢量,或者其包含组合(添加)来自i1和i2两者的像素区域的两个运动矢量。将理解,可以通过使用零运动矢量参考从i帧i1拷贝大多数像素内容来构造描绘图9的虚拟键盘900的b帧。然而,要求一些非零运动矢量来生成文本输入栏901中的“patent”文本输入字符串902。具体地,将需要侧向地拷贝第一i帧i1中包括来自文本输入字符串1202的每个字母“p”、“a”、“t”、“e”、“n”、“t”的宏块,以在适当的位置处规划图9的“patent”文本输入字符串902。对于紧跟随用户交互的b帧,应用可以针对刚已经按压的具体键而生成从i帧i2拷贝像素区域的宏块,从而通过以不同颜色高亮刚按压的键来提供用户反馈。

在一个示例中,文本输入字符串1202中的文本可以使用其中字符具有不同宽度的字体和/或支持字距调整的字体。页面和段落样式可以要求可变的字母间隔。当字体大小确保像素的宏块从不包含来自多于两个字符的像素时,方法1000的一个实现支持这些特征。这对于在现代显示器上呈现良好可读性的大多数字体有效。

图13示出了以calibri字体呈现的字符串“patent”1300。网格线1301描绘了个体像素。较粗的网格线1302描绘了宏块的边界。图13示出该呈现的字符串的位图具有每个宏块至多包含来自两个字符的像素的属性。这意味着还可以通过组合来自两个预生成i帧i1和i2的像素区域来创建字符串,使得两个预生成像素区域重叠。为了支持该重叠,在第一和第二i帧i1和i2中的文本输入字符串1202中的字符之间应当存在足够的间隔(背景颜色中15个像素)。

作为示例,图14将“patent”字符串的前三个字符1400作为子集示出,这是因为它们可以在两个预生成i帧i1和i2的文本输入字符串1202中被示出。每对字符之间的间隔是15个像素(宏块大小减去1)。图14还示出了从参考i帧i1和i2拷贝以创建图13中示出的前几个宏块的像素列(即,像素区域)。例如,拷贝并组合(即,重叠)图14的像素列1401和1402以形成图13的两个宏块1310,并且拷贝并组合图14的像素列1403和1404以形成图13的两个宏块1320。

可以存在导致包含来自多于两个字符的像素的宏块的呈现情形(诸如图13示例中的“ate”)。这类呈现情形要求多于两个组合运动矢量参考(例如,如更高级的视频编码规范中允许的)。如果仅可以使用基础b帧编码,那么对于字符串“ate”的呈现需要“a”、“t”、“e”之间的附加像素间隔。随着呈现的字体大小增大,需要多于两个组合运动矢量参考的可能性非常迅速地减少。

本章节中参考图12-14讨论的简单示例基于预生成参考i帧,所述预生成参考i帧相当接近于要新生成的任何中间帧的布局。完整虚拟键盘的实现要求更大的字符集(小写、大写、数字和特殊字符),所以针对这些附加字符在参考帧中创建所要求的附加空间是必要的。一个空间创建选项使用虚拟键盘布局的知识,以便生成参考帧。例如,可以通过重复单个空白宏块来创建文本输入栏1201和多个虚拟键/按钮1204/1214之间的空白条1205。对于空格条大程度上是类似的。键盘按钮1204/1214也是像素块的重复,所述像素块具有空间以包括用于呈现特定字符的相关宏块。这导致显著不同于所生成的中间b帧的布局的参考帧。

还可以通过使用半像素运动矢量精度更精准地控制字符间隔来改进本章节中讨论的简单示例。

可以使用类似的方法技术使用户能够控制计算机游戏软件应用。例如,考虑诸如“pong”之类的计算机游戏,所述“pong”是以两个球棒和一个球为特征的简单的像网球游戏。即使对于这类简单的计算机游戏,如果使用方法200,那么提供包括用户交互的所有可能结果/结局的预生成视频内容文件也将导致极大的视频内容文件。然而,可以通过基于单个预生成i帧使用p帧来利用方法1000有效地实现这类游戏。预生成i帧将包括所有游戏元素(背景、球棒和球)。可以通过基于检测到的用户交互计算针对p帧的运动矢量来实现游戏玩法。以该方式,可以向用户显示适当的视频内容。

类似地,例如计算机菜单(如前面参考方法200描述的)之类的其他gui小部件也可以使用方法1000来实现。

此外,将理解,应用可以使用预生成视频(依据方法200)和实时生成视频(依据方法1000)的组合来实现用户接口,并从而获取用户输入。

数字轮示例

前面参考图11描述的简单示例在用户显示器中向上移动呈现的数字“5”。除了可应用于虚拟键盘用户接口之外,可以扩展该概念以实现包括数字轮(或其他图形元素轮)的用户接口,以供用户使用方法1000提供用户输入。完整数字轮的实现要求具有宏块的预生成帧i1,所述宏块包含相关的数字/图形元素。具有用于轮边界构造的附加宏块也可以是合期望的。现在参考图7的pin录入轮示例描述编码视频内容的示例性本地生成。

图15示意性地图示了在左侧和右侧的两个预生成i帧1500和1510,所述两个预生成i帧1500和1510可用于构造表示pin录入轮配置的b帧1520。在两个i帧1500和1510之间的图15的中心示出了生成的b帧1520。第一i帧1500仅包括pin录入轮边框和布局而没有数字。第二i帧1510仅示出了数字。b帧1520通过使用对该帧的零运动矢量参考来拷贝第一i帧1500的大部分(包括边框和布局)而被生成。然后使用合适的运动矢量将来自第二i帧1510的相关数字拷贝并覆盖到b帧1520上。运动矢量1530示出了已经从第二i帧1510中何处拷贝数字“90123”。在图15中,运动矢量仅在水平(侧向)方向上移动图像区域。这允许来自第二i帧1510的数字的背景精确地匹配第一i帧1500的目的地区域的背景。

当使用图15中示出的预生成的i帧1500和1510时,实现垂直运动(例如,以生成表示数字轮的小的向上或向下旋转的b帧)引起背景失配。中心(高亮)行上的数字将具有最明显的背景失配。该问题可以通过适配如图16中示出的用户图形的背景来解决。特别地,图16示出了表示与图15的b帧1520中所示相同的pin录入轮配置的替换b帧1620。

图16具有平坦背景,因此包含数字的像素区域的垂直移动将不会导致背景失配。视频窗口剪裁可以用于在旋转动画期间部分地显示靠近屏幕顶部或底部的数字。

如果用于回放的视频模块支持更高级的视频格式,则编码视频可以参考附加的i帧(具有垂直移位的数字)或采用透明像素值的编码。方法1000可以利用这类高级视频格式来支持更宽范围的用户图形和用户交互。

初始视频内容

如前面参考图10的方法1000所讨论的,在步骤s1002中向用户显示以压缩视频格式编码的初始视频内容。初始视频内容可以包括一个或多个帧。初始视频内容基于预生成视频内容的一个或多个帧,并且初始视频内容表示包括供用户选择的多个图形元素的用户接口。

作为示例,初始视频内容可以表示包括以多个字符形式的多个图形元素的键盘(参见图9的虚拟键盘900)。可替换地,初始视频内容可以表示包括多个图形元素的图形元素轮(参见图3的数字轮300、图7的数字轮700、图15的数字轮1520或图16的数字轮1620)。

在一个示例中,预生成视频内容(在步骤s1001中提供对其的访问)本身包括在步骤s1002中向用户显示的初始视频内容。因此,预生成视频内容可以包括视频生成内容(在步骤s1005中使用)和初始视频内容(在步骤s1002中使用)。通常,视频生成内容将与初始视频内容不同。

在虚拟键盘示例中,预生成内容可以包括以图12a和12b中示出的两个预生成i帧i1和i2形式的视频生成内容,所述视频生成内容用于在步骤s1005中生成以压缩视频格式的新视频内容。预生成内容还可以包括以i帧的形式的初始视频内容,所述初始视频内容表示要向用户显示的初始虚拟键盘。例如,初始虚拟键盘可以类似于图9中示出的虚拟键盘900,但没有文本输入栏901中示出的文本输入字符串。将可能的是,具有以压缩视频内容编码的初始视频内容的多个帧来表示初始键盘布局(具有空白文本输入栏902),在所述初始键盘布局中光标正在文本输入栏902的开始处闪烁,而不是单个i帧表示要向用户显示的初始虚拟键盘。清楚地,其他选项将也可用于预生成的初始视频内容。

在数字轮示例中,预生成内容可以包括以图15中示出的两个预生成i帧1500和1510的形式的视频生成内容,所述视频生成内容用于在步骤s1005中以压缩视频格式生成新视频内容。预生成内容还可以包括以i帧形式的初始视频内容,所述初始视频内容表示要向用户显示的初始数字轮。例如,初始数字轮可以类似于图7中示出的数字轮700。在另一个示例中,轮可以正在初始视频内容中旋转。这将要求初始视频内容的多个帧。

可以从预生成视频内容(实时地)生成初始视频内容,而不是预生成初始视频内容。在该情况下,预生成视频内容不包括初始视频内容,但是初始视频内容仍然基于预生成视频内容。例如,生成初始视频内容可以包括从预生成视频内容的一个或多个帧生成运动补偿帧。

在虚拟键盘示例中,表示初始键盘布局的(一个或多个)帧可以作为b帧从图12a和12b中示出的两个预生成i帧i1和i2生成。类似地,在数字轮示例中,可以从图15中示出的两个预生成i帧1500和1510生成初始数字轮。在数字轮示例的情况下,初始视频内容的实时生成是特别有利的,这是因为将有可能提供随机初始数字轮(即,示出随机初始pin码的初始数字轮)以使攻击者甚至更难以通过监视用户交互来辨别录入的pin。在另一个示例中,轮可以正在初始视频内容中旋转。这将要求初始视频内容的多个帧。

用户交互

在步骤s1003中,方法1000包括检测响应于所显示的初始视频内容而发生的第一用户交互。步骤s103可以包括检测第一用户交互的一个或多个属性。

就方法200而言,方法1000特别适于经由(例如,在诸如移动电话的移动设备上的)触摸屏检测用户交互。然而,就步骤s203而言,可以在步骤s1003中检测所有先前提及的用户交互及其属性。

在虚拟键盘示例中,第一用户交互可以包括按压、轻敲、点击或以其他方式选择所显示的初始虚拟键盘的多个虚拟键/按钮904中的特定一个。因此,第一用户交互的限定属性是按压/轻敲/点击/其他相对于包括初始虚拟键盘的所显示视频内容的位置。因此,在该示例中,用户交互的位置将是在步骤s1003中检测到的用户交互的属性。

在数字轮示例中,第一用户交互可以包括在步骤s1002中初始显示的数字轮中的特定一个上的向上或向下滑动,以便移动该数字轮以选择与正显示(即高亮)的数字不同的数字。(注意在该示例中,我们将考虑静止的初始数字轮,但将理解,方法1000也适用于移动的初始数字轮)。在该情况下,检测到的第一用户交互的属性是滑动的位置(其可以指示要移动哪个数字轮)、滑动的方向(向上或向下)、滑动的速度(其可以指示轮的移动速度)、和/或滑动的长度(在时间方面和/或在物理距离方面)(其可以指示轮要移动多远)。因此,在该示例中,将在步骤s1003中检测用户交互的这些属性中的一个或多个。

在步骤s1003中检测到第一用户交互(和任何相关属性)后,在步骤s1004中基于检测到的第一用户交互的一个或多个属性来确定用户选择的(多个图形元素中的)第一图形元素。

在其中图形元素是字符的简单虚拟键盘示例中,第一用户交互(按压/点击/等)相对于所显示的视频内容(即,相对于所显示的虚拟键盘)的位置将与用户选择的第一字符唯一地相关联。换言之,特定位置仅与多个字符中的一个字符相关联。因此,在该情况下,在第一用户交互的属性和用户选择的第一字符之间存在相对简单的映射。尽管如此,将理解,第一用户交互的多个位置(全部非常接近在一起)将与虚拟键盘上的同一字符相关联。因此,存在从第一交互位置到相关联字符的多对一映射。

在数字轮示例中,用户选择的第一数字可以或可以不与第一用户交互唯一地相关联。

考虑其中初始视频内容总是相同的(即,数字轮总是在特定配置处开始,诸如图7中示出的“2812”配置)的示例。在该示例中,给定用户交互(即,给定滑动)将与用户选择的特定第一数字唯一地相关联(参见虚拟键盘示例)。然而,用户选择的特定第一数字将不与给定用户交互唯一地相关联。这是因为用户可以以很多方式滑动第一轮以输入特定第一数字——它可以缓慢/快速地完成,数字轮可以向上/向下旋转,数字轮可以通过少于或多于一个完整旋转等。换言之,在该示例中,存在从第一用户交互到用户选择的第一图形元素的多对一映射。

现在考虑其中初始视频内容可变的示例。例如,数字轮可以在图7中示出的“2812”配置处开始,或者在从“0000”至“9999”的任何其他初始配置处开始。数字轮甚至不需要以已经选择的特定数字开始。例如,轮可以在“0”和“1”或者任何其他两个相邻的数字之间的位置中开始。在该情况下,给定用户交互(即,给定滑动)将不与用户选择的特定第一数字唯一地相关联。给定一个开始配置,相同的小的向上滑动可以与对“4”的选择相关联,并且给定另一个开始配置,相同的小的向上滑动可以与对“9”的选择相关联。就先前的示例而言,可以仍然存在导致相同数字选择的多个滑动。因此,在该示例中,存在从第一用户交互到用户选择的第一图形元素的多对多映射。这意味着攻击者不可能通过单独观看用户交互来可靠地辨别用户选择的数字。还要求所显示的初始视频内容的知识(即,用户正与之交互的初始数字配置的知识)。因此,在该示例中,确定用户选择的第一图形元素还基于所显示的初始视频内容。

中文文本输入

方法1000可用于输入方法上的更宽广范围,诸如中文输入方法(拼音、仓颉)。这些输入方法通常使用虚拟键盘来按照发音构造字符。主要挑战是存在非常大量的这类字符。完整的汉字集包含超过50000个字符。全面的现代词典将很少在实际使用中列举超过20000个汉字。受过教育的中国人将知晓大约8000个字符,但是大约2000到3000个字符的知识对于阅读报纸而言是足够的。这意味着对于大多数应用,呈现大约3000到5000个不同字符将是足够的。

对于汉字的呈现过程通常涉及将位图与字体文件中的每个字符相关联。对于字体文件的字符关联通常基于统一码标准。假设像素的位图大小,高清晰度视频帧(像素)可以包含大约个字符,这对于相当基础的字符输入方法而言将是足够的。在更高级的视频编码规范中,可以参考多个其他视频帧而不是mpeg2b帧中的两个帧来构造视频帧。

对于汉字的可替换呈现可以基于汉字描述语言。该过程基于笔划和基础组成的组来描述字符。笔划被描述为可缩放的矢量图形或以位图描述。基础组成仅由笔划构成。该方法使用近似100个笔划来构造1000个基础组成的组,从而生成数万个汉字。可以在单个高清晰度视频帧中表示针对笔划和基础组成的位图表示。如果这些基础形状不重叠并且视频基元支持位图缩放,则可以利用诸如运动矢量之类的数字视频基元来实现汉字的可替换呈现。

存在宽广范围的用于录入汉字的输入方法。“拼音”是一种流行的方法,该方法使用户能够使用(虚拟)拉丁字符键盘录入字符。在录入拼音字符串之后,向用户提供用户可以从其中选择所期望字符的一组汉字字符串替换物。图20中示出了示例。

图20示出了用于使用拼音录入汉字的虚拟键盘2000的示例性屏幕截图。虚拟键盘包括文本输入栏2001、汉字选择栏2002、汉字输入栏2003以及包括多个拉丁字符键的键盘区域2004。拼音字符串“nihao”2005已经由用户使用拉丁字符键录入,并被显示在文本输入栏2001中。汉字选择栏2002基于拼音字符串2005显示多个汉字2006。这些汉字2006每个表示针对对应于拼音字符串2005的汉字的可能选项。用户可以使用滚动按钮2007滚动通过汉字选择栏2002中的汉字2006,以便选择他们希望使用的特定的一个汉字。然后在汉字输入栏2003中显示所选择的汉字。在图20中,用户还未从汉字选择栏2002中选择特定汉字,因此在汉字输入栏2003中不显示对应的汉字。

该用户接口可以使用方法1000来实现。在该情况下,预生成视频内容的第一帧包括用于生成具有空栏2001、2002和2003的虚拟键盘2000的宏块。预生成视频内容的第二帧包括用于生成汉字和(可选地)拉丁字符的宏块。第一帧中的任何空闲空间也可以用于存储汉字。所有栏2001、2002和2003和键盘区域2004中的键以及第一和第二帧中的汉字共享共同背景以使得能够更简单地实现方法1000。在有利的示例中,可以在第一和第二帧中的宏块边界上对齐所有汉字,使得不存在支持比例间隔的需要。第一和第二帧可以是i帧。响应于用户交互,运动矢量可以用于基于第一和第二帧以及用户交互的一个或多个属性以压缩格式生成新视频内容。

例如,让我们假设已经使用前面讨论的第一和第二i帧以b帧的形式生成了图20中示出的虚拟键盘配置2000。响应于显示图20的虚拟键盘配置2000,用户可以按压滚动按钮2007以便向左或向右滚动汉字选择栏2001。用户交互的位置可以用于确定是否已按压滚动按钮(以及哪个)。为了生成下一个b帧,软件应用可以大量复制在b帧2000中使用的运动矢量和帧参考,但是具有用于生成汉字选择栏2002的稍微移位的运动矢量。可替换地,响应于显示图20的虚拟键盘配置2000,用户可以选择所显示的汉字2006中的特定一个,以便将该字符移动到汉字输入栏2003。这类用户交互也可以清除文本输入栏2001和汉字选择栏2002。为了在该情况下生成下一个b帧,软件应用可以再次大量复制在b帧2000中使用的运动矢量和帧参考。然而,针对文本输入栏2001和汉字选择栏2002的运动矢量将需要改变,以便指向预生成帧中的空白宏块。此外,在汉字输入栏的区域中的一些运动矢量将需要指向第一或第二预生成帧中的所选汉字。然而,这些运动矢量将已经在图20的b帧中被生成,以便在汉字选择栏2002中显示相关汉字。因此,以用户接口的所意图外观和功能性的知识,可以在方法1000的步骤s1005中非常有效地生成运动向量。

就先前描述的虚拟键盘示例(见图9和12以及相关联的描述)而言,为了生成图20中示出的示例性b帧,使用组合运动矢量来在文本输入栏2001中显示拉丁字符。使用组合运动矢量来在栏2002和2003中显示汉字位图。然而,在用户交互和要显示的(一个或多个)汉字之间不存在这类简单的关系。关于拉丁文本输入,用户交互与要显示的字符之间存在清楚的关系;具体地,用户交互的位置与虚拟键盘的键上所显示的特定拉丁字符相关联。相比之下,存在各种“拼音”输入方法,所述“拼音”输入方法在它们基于拼音字符串和其他汉字的上下文如何确定汉字选择列表的方面不同。输入方法还可以从过去的选择、用户的书写风格以及从众所周知的短语中学习。由于不存在“标准”输入方法,最终用户通常安装他们自己优选的输入方法。方法1000使得能够实现任何给定的输入方法。因此,在一个示例中,方法1000初始可以包括接收指示用户选择的拼音输入方法的数据的步骤。作为响应,所述方法可以加载在拼音字符串和汉字之间映射的对应受保护变型。基于该映射,基于输入的拼音字符串映射来自第一和第二i帧的汉字将是可能的。

4-另外的考虑

本文讨论的所有示例都可以利用防止肩窥(见图8和相关联的描述)的选项扩展。

将理解,方法200可以被实现为包括视频内容的drm保护,只要用户设备支持drm保护的视频内容的显示即可。

对于一些用户接口,防止攻击者查看在方法200和1000期间向用户显示的视频内容可以是合期望的。换言之,在一个示例中,方法步骤s202、s1002和s1006涉及向用户的相关联视频内容的受保护显示。这使得攻击者在没有物理地看到屏幕上正显示的内容的情况下访问所显示的视频内容显著地更困难。完成这点的一种方式是激活由drm客户端实现提供的如pct/ep2015/069294中描述的“安全视频路径”保护。在方法1000中,这将要求加密新生成的视频内容,这是因为drm客户端未激活以处理未加密(明文)内容。在其中预记录整个用户图形的方法200中,可以在递送给客户端设备之前加密整个(一个或多个)视频文件。然后,加载(一个或多个)加密的视频文件可以触发drm客户端获取并处理相关许可,并且然后解密内容并实施安全视频路径保护。

方法1000设想用户图形实现,在所述用户图形实现中实现方法1000的本地应用基于预生成视频内容在本地编码新视频内容。对视频内容(即,新视频内容)的本地编码帧的加密将要求对该材料的本地加密。这可以使用加密算法的白盒实现来实现。在一些应用中,drm客户端提供者可能不会使内容加密密钥(cek)可用于这类使用。方法1000可以通过仅加密预生成视频内容来规避该问题。可以未加密地(即,以明文)提供视频(即,新视频内容)的本地编码帧。该所谓的“部分加密”可能要求以容器级别(mpeg2、mpegdash)的信令,并且还可以要求对编码视频的一些调整(例如,利用虚假编码视频元素填充)。对预生成视频内容的加密使攻击者很难获取新视频内容,这是因为新视频内容的运动补偿(例如,b和p)帧仅包含从加密的预生成帧拷贝像素区域的指令。

前面参考图7-8、15-16和18-19描述的pin录入示例使最终用户能够借助于与所显示的视频内容的用户交互来录入pin码。已经描述了使用编码视频内容和控制视频内容回放的一些实现技术。这些实现的目的是从最终用户获取攻击者不可访问的信息。如前面描述的,这可以使用由drm客户端提供并在pct/ep2015/069294中描述的“安全视频路径”技术来实现。由于用户输入(即,用户正提供的信息)可以取决于用户交互和所显示的视频内容两者,因此攻击者需要对这两者的访问以便发动成功的攻击。安全视频路径保护防止攻击者访问编码视频和显示的视频内容,这保护用户输入。

步骤s204和s1004中的确定用户选择的第一图形元素(例如,通过处理用户交互和显示的视频内容)可以在服务器中实现或者在最终用户设备中本地实现。当在最终用户设备中实现时,步骤s204和s1004可以在白盒攻击情景中确定用户选择的第一图形元素。白盒攻击情景的概念在chow等人的名称为“white-boxcryptographyandanaesimplementation”的论文(从可获得)中有描述并且将被技术人员很好地理解。在白盒攻击情景中,与步骤s204和s1004相关联的码和数据对于攻击者是可见的以供分析/修改。因此,需要保护码及其输出的实际功能性。这可以使用软件混淆来实现,该软件混淆改变码以产生变换的输出。由于到步骤s204和s1004的输入不能与用户输入(即,用户选择的图形元素)进行关联,并且由于步骤s204和s1004的输出在变换域中,因此用户输入受到保护。

对于本文描述的方法200和1000的关键应用是实现安全支付(例如,借助于安全的pin录入)。该技术的不可否认性方面可以是受关注的。本文描述的方法还可以对于实现以受保护的方式的交易参数(接收者账号、交易量和交易标识符)的受保护录入是有用的。

5-实现模块和接口

根据方法200,可以使用包括视频内容的视频内容文件的受控回放来实现软件应用的用户图形。内容文件可以被包括在软件应用的数据中,或者可以从服务器被获取,或者可以部分地由软件应用生成(依据方法1000)。下面参考图22描述了示例性实现2200,图22示出了用于实现用户想要执行的操作的软件应用2201。

软件应用2201正在用户设备2210上执行。如图22中示出的,用户设备还包括视频缓冲器2205、视频播放器2206、显示器2207和drm客户端2209。软件应用2201可以可选地从应用服务器2220检索信息。软件应用2201包括用于实现图形用户接口的两个模块,即视频数据模块2203和视频控制模块2204。软件应用2201的视频数据模块2203能够将数据发送到视频缓冲器2205或修改存储在视频缓冲器2205中的视频数据。软件应用2201的视频控制模块2204被配置为控制视频播放器2206。视频播放器2206被配置为从视频缓冲器2205接收数据并将其转换成适于在显示器2207上显示的格式。可以使用受保护视频路径2208来提供显示数据,如果设备2210的drm客户端2209激活该保护特征的话。drm客户端2209可以从drm服务器2230获取相关许可(和相关联的内容加密密钥)。视频缓冲器可以从软件应用2201或从视频内容服务器2240接收视频内容。

软件应用2201的视频数据模块2203使用到视频缓冲器2205的接口和用于经由视频播放器2206控制内容回放的接口(api)。在一个示例中,软件应用2201可以是在web浏览器中执行的javascript应用。如先前描述的,软件应用2201可以获取视频内容文件(或文件的子部分)并将视频内容发送到视频缓冲器2205。在javascript应用的情况下,web浏览器提供javascript应用的视频数据模块2203和视频缓冲器2205之间的接口。到视频缓冲器2205的接口提供将数据插入到内容流中的机制。到视频播放器2206的接口使软件应用2201能够操作视频播放器。典型的控制操作是“播放”、“暂停”、“跳过”、“速率”和“回路”。“播放”在特定时间偏移处开始视频播放器2206的呈现操作。“暂停”停下呈现操作(即,冻结当前显示的视频帧)。“跳过”跳转到视频内容中所指示的时间偏移。“速率”设置视频内容的回放速度(更快或更慢);负速度可以指示以反向模式回放。“回路”持续地播放在两个所指示时间偏移之间的视频内容。这些命令是示例,并且现有视频控制接口可以提供更丰富的控制操作集。尽管如此,将理解,即使利用相对基础的视频回放控制接口也可以实现方法200。软件应用2201还可以受益于api功能性以防止或隐藏传统用户视频控制图形出现在显示器2207上。软件应用2201的功能还可以针对反向工程而受保护。对于web内容,这在例如pct/ep2015/057044中有描述。

方法1000的示例实现可以使用html5web内容作为生成用于视频缓冲器2205的编码视频数据的软件应用2201,并且然后使用视频控制模块2204在视频播放器2206上发起回放以获取所意图的用户图形显示。编译的二进制代码可以可替换地用于软件应用2201。

6-修改

将领会,所描述的方法已经示出为以特定顺序施行的各个步骤。然而,技术人员将领会,这些步骤可以被组合或以不同顺序被施行,同时仍然实现期望的结果。

将领会,可以使用各种不同的信息处理系统来实现本发明的实施例。特别地,虽然附图及其讨论提供了示例性计算系统和方法,但是这些仅为在讨论本发明的各种方面时提供有用参考而被给出。可以在任何合适的数据处理设备上施行本发明的实施例,所述数据处理设备诸如个人计算机、膝上型计算机、个人数字助理、移动电话、机顶盒、电视、服务器计算机等。当然,系统和方法的描述已经出于讨论的目的被简化,并且它们只是可以用于本发明的实施例的很多不同类型的系统和方法中的一种。将领会,逻辑块之间的边界仅仅是说明性的,并且可替换实施例可以合并逻辑块或元件,或者可以在各种逻辑块或元件上施加功能性的可替换分解。

将领会,前面提及的功能性可以实现为如硬件和/或软件的一个或多个对应模块。例如,前面提及的功能性可以实现为供系统的处理器执行的一个或多个软件组件。可替换地,前面提及的功能性可以诸如在一个或多个现场可编程门阵列(fpga)和/或一个或多个专用集成电路(asic)和/或一个或多个数字信号处理器(dsp)和/或其他硬件布置上实现为硬件。在本文包含的流程图中实现的或者如前面描述的方法步骤每个可以由对应的相应模块来实现;在本文包含的流程图中实现的或者如前面描述的多个方法步骤可以由单个模块一起实现。

将领会,只要本发明的实施例由计算机程序实现,则存储或承载计算机程序的一个或多个存储介质和/或一个或多个传输介质形成本发明的方面。计算机程序可以具有一个或多个程序指令或程序代码,所述程序指令或程序代码当被一个或多个处理器(或一个或多个计算机)执行时,施行本发明的实施例。本文所使用的术语“程序”可以是被设计用于在计算机系统上执行的指令序列,并且可以包括子例程、函数、过程、模块、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、字节代码、共享库、动态链接库和/或被设计用于在计算机系统上执行的其他指令序列。存储介质可以是磁性盘(诸如硬驱动或软盘)、光学盘(诸如cd-rom、dvd-rom或蓝光盘)、或存储器(诸如rom、ram、eeprom、eprom、闪速存储器或便携式/可移除存储器设备)等。传输介质可以是通信信号、数据广播、两个或更多个计算机之间的通信链路等。

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