CN105637886A - 用于向客户端提供图形用户界面的服务器,以及客户端 - Google Patents
用于向客户端提供图形用户界面的服务器,以及客户端 Download PDFInfo
- Publication number
- CN105637886A CN105637886A CN201480046301.6A CN201480046301A CN105637886A CN 105637886 A CN105637886 A CN 105637886A CN 201480046301 A CN201480046301 A CN 201480046301A CN 105637886 A CN105637886 A CN 105637886A
- Authority
- CN
- China
- Prior art keywords
- interface
- data
- text
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 claims abstract description 160
- 230000008859 change Effects 0.000 claims abstract description 54
- 238000001514 detection method Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 67
- 230000000694 effects Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 241001269238 Data Species 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 238000002054 transplantation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43074—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23412—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种用于通过通信网络向客户端提供图形用户界面的服务器(100),所述图形用户界面包括图形用户界面元素,所述图形用户界面元素由元素形状和元素文本组成,所述元素形状通过元素形状数据表示,所述元素文本通过元素文本数据表示;所述服务器(100)包括用于将所述元素形状数据编码为视频数据的编码器(101),用于检测与所述图形用户界面内的所述图形用户界面元素有关的变化的检测器(103),以及用于通过所述通信网络分别传输所述视频数据和所述元素文本数据的通信接口(105),其中所述元素文本数据在检测到与所述图形用户界面元素有关的所述变化后传输以向所述客户端提供所述图形用户界面。此外,本发明涉及一种客户端。
Description
技术领域
本发明涉及计算机图形领域,尤其涉及图形用户界面的呈现。
背景技术
众多应用主要关注的是通过通信网络提供图形用户界面。例如在将多媒体内容从服务器流式传输到客户端时提供图形用户界面。
图形用户界面可包括不同的图形用户界面元素,这些元素可允许用户控制客户端的功能。图形用户界面常被称为远程图形用户界面,这是因为图形用户界面的呈现通常由服务器远程进行。因此,可通过通信网络将呈现的图形用户界面从服务器传送到客户端。
服务器处图形用户界面的呈现通常包括在服务器的帧缓冲器内处理整个图形用户界面。然后,可编码帧缓冲器的内容以将图形用户界面传送给客户端。为此,通常在服务器处使用硬件加速器。
然而,在连接客户端的数量不断增长的情况下,普通技术的可扩展性不足。此外,在服务器处呈现整个图形用户界面会导致编码效率降低。
发明内容
本发明的目的是提供一种用于通过通信网络从服务器向客户端提供图形用户界面的高效概念。
该目的由独立权利要求的特征来实现。其它实施形式在从属权利要求、具体说明和附图中显而易见。
本发明基于如下发现:可以通过分别提供图形用户界面元素的元素形状和元素文本来更高效地提供所述图形用户界面内的所述图形用户界面元素。所述元素形状通过视频数据表示并由所述服务器编码。所述元素文本通过元素文本数据表示,所述元素文本数据在检测到与所述图形用户界面元素有关的变化后与所述视频数据分别从所述服务器传输到所述客户端。所以,所述视频数据和所述元素文本数据在客户端接收并组合。因此,可实现所述图形用户界面的高压缩比和编码效率。
根据第一方面,本发明涉及一种用于通过通信网络向客户端提供图形用户界面的服务器,所述图形用户界面包括图形用户界面元素,所述图形用户界面元素由元素形状和元素文本组成,所述元素形状通过元素形状数据表示,所述元素文本通过元素文本数据表示;所述服务器包括用于将所述元素形状数据编码为视频数据的编码器,用于检测与所述图形用户界面内的所述图形用户界面元素有关的变化的检测器,以及用于通过所述通信网络分别传输所述视频数据和所述元素文本数据的通信接口,其中所述元素文本数据在检测到与所述图形用户界面元素有关的所述变化后传输以向所述客户端提供所述图形用户界面。这样,可实现一种用于通过通信网络从服务器向客户端提供图形用户界面的高效概念。
所述编码器可用于编码所述服务器的帧缓冲器,其中所述帧缓冲器包括所述元素形状而不包括所述元素文本。所述帧缓冲器可为虚拟帧缓冲器。所述编码器可用于使用MPEG-4、ITU-TH.264或ITU-TH.265等视频编解码器将所述元素形状数据编码为视频数据。
所述检测器可用于通过监控所述图形用户界面元素来检测与所述图形用户界面元素有关的所述变化。所述图形用户界面元素的所述元素形状和所述元素文本可由应用分别提供。
所述通信接口可用于通过所述通信网络建立所述服务器和所述客户端之间的通信链路。所述通信链路可基于TCP(TransmissionControlProtocol,传输控制协议)协议和/或UDP(UserDatagramProtocol,用户数据报协议)协议。所述通信网络可为互联网。
所述视频数据可作为视频流通过所述通信网络传输。可使用MPEG-4、ITU-TH.264或ITU-TH.265等视频编解码器压缩所述视频数据。可使用MPEG-TS或MPEG-DASH等音频和/或视频流协议通过所述通信网络将所述视频数据传输给所述客户端。
所述检测器可用于在所述图形用户界面元素被复制到所述服务器的所述帧缓冲器之前检测与所述图形用户界面内的所述图形用户界面元素有关的所述变化。所述检测器可用于阻止所述元素文本在所述服务器的所述帧缓冲器中呈现和/或禁止将所述呈现的元素文本复制到所述服务器的所述帧缓冲器中。这样,所述检测器可用于在所述元素文本被复制到所述服务器的所述帧缓冲器之前通过所述服务器阻拦所述元素文本的呈现。
在根据如上所述第一方面的所述服务器的第一实施形式中,所述图形用户界面还包括视频元素,所述视频元素通过其它视频数据表示,其中所述通信接口用于通过所述通信网络分别传输所述其它视频数据、所述视频数据和所述元素文本数据。这样,可向所述客户端提供所述图形用户界面的视频元素。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第二实施形式中,所述视频数据包括指示所述视频数据的有效期的第一定时表,所述元素文本数据包括指示所述元素文本数据的有效期的第二定时表。这样,可在客户端实现所述视频数据和所述元素文本数据的及时同步。
所述第一定时表或所述第二定时表可包括时间戳。所述第一定时表或所述第二定时表可指示表示为日期、小时、分钟、秒和/或毫秒的有效期。所述视频数据的所述第一定时表可以是MPEG元数据的一部分。所述元素文本数据的所述第二定时表可通过时间文本标记语言等标记语言定义。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第三实施形式中,所述编码器用于基于所述元素形状数据生成若干视频帧以将所述元素形状数据编码为所述视频数据,所述若干视频帧用于组成所述视频数据。这样,可有效地编码所述元素形状数据。因为所述元素文本数据可能不是所述视频数据的一部分,所以可实现有效编码。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第四实施形式中,所述服务器包括文本编码器,用于将所述元素文本编码为纯文本数据和布局数据,所述布局数据指示文本大小、文本字体或所述元素文本在所述图形用户界面元素内的文本路径,所述纯文本数据和所述布局数据组成所述元素文本数据。这样,可有效地编码所述元素文本。
所述文本编码器可用于基于矢量图形格式或矢量图形表示将所述元素文本编码为纯文本数据和布局数据。所述文本编码器可用于根据开放矢量图形(OpenVectorGraphics,OpenVG)规范、可缩放矢量图形(ScalableVectorGraphics,SVG)规范、级联样式表(CascadingStyleSheets,CSS)规范或附录(Postscript,PS)规范将所述元素文本编码为纯文本数据和布局数据。
由所述纯文本数据和所述布局数据组成的所述元素文本数据可使用数据流协议等通过所述通信网络作为数据流传输给所述客户端。
所述检测器可用于基于所述矢量图形形式或矢量图形表示对于所述纯文本数据和/或所述布局数据阻拦和/或解释所述元素文本。所述检测器可用于根据所述开放矢量图形(OpenVectorGraphics,OpenVG)规范、所述可缩放矢量图形(ScalableVectorGraphics,SVG)规范、所述级联样式表(CascadingStyleSheets,CSS)规范或所述附录(Postscript,PS)规范对于所述纯文本数据和/或所述布局数据阻拦和/或解释所述元素文本。
在根据如上所述第一方面或所述第一方面的所述第一实施形式到所述第四实施形式的所述服务器的第五实施形式中,所述服务器包括用于将所述元素文本编码为图像数据的图像编码器,所述图像数据表示所述图像用户界面元素的所述元素文本的图像,所述图像数据组成所述元素文本数据。这样,可有效地编码所述元素文本。
所述图像编码器可用于使用LZ4压缩、JPEG压缩、JPEG2000压缩、JPEGXR压缩、WebP压缩和/或HEVC-MSP压缩将所述元素文本编码为图像数据。
由所述图像数据组成的所述元素文本数据可使用数据流协议等通过所述通信网络作为数据流传输给所述客户端。由所述图像数据组成的所述元素文本数据可以包括一套字形和/或一个标识。由所述图像数据组成的所述元素文本数据可仅包括一个标识。
所述检测器可用于在所述元素文本已在服务器上呈现之后但在其被复制到帧缓冲器或虚拟帧缓冲器之前中断所述元素文本的呈现。所述帧缓冲器或虚拟帧缓冲器可反映所述客户端的显示能力,其中,大小和/或颜色深度与所述服务器相比可不同。所述元素文本可解压并直接复制到所述客户端的帧缓冲器中,而不在所述客户端中使用任何字体引擎。
所述检测器可用于按所述纯文本数据、所述布局数据和/或所述图像数据拦截和/或解释所述检测器检测出的所述元素文本。所述纯文本数据、所述布局数据和/或所述图像数据可组成所述元素文本数据。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第六实施形式中,所述元素文本数据指示所述元素文本相对于所述图形用户界面元素的所述元素形状的位置、方向或移动。这样,可有效地指示所述元素文本和所述元素形状之间的相对布置或移动。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第七实施形式中,所述通信接口用于接收请求信号,所述请求信号请求与所述图形用户界面内的所述图形用户界面元素有关的变化,其中所述通信接口用于在接收所述请求信号后通过所述通信网络分别传输所述视频数据和所述元素文本数据。这样,在接收所述请求信号后可进行所述图形用户界面元素的更新。
所述请求信号可指示所述客户端处的用户事件。所述用户事件可以是所述用户的输入和/或所述用户在所述客户端处的击键。所述请求信号还可涉及所述服务器处的应用事件或系统事件,所述事件可发生在所述客户端处的呈现的元素文本上。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第八实施形式中,所述图形用户界面元素包括窗口元素、文本框元素、按钮元素、图标元素、列表框元素、菜单元素或轮播菜单元素。这样,可使用所述图形用户界面元素的标准化元素形状。所述图形用户界面元素可在二维(two-dimensional,2D)和/或三维(three-dimensional,3D)表示中表示。
在根据如上所述第一方面或根据所述第一方面的任一前述实施形式的所述服务器的第九可能实施形式中,与所述图形用户界面元素有关的所述变化包括所述图形用户界面内的所述图形用户界面元素的重新布置、所述图形用户界面内的所述图形用户界面元素的缩放或所述图形用户界面内的所述图形用户界面元素的所述元素文本的修改。这样,可有效地检测与所述图形用户界面元素有关的所述变化。所述元素文本的所述修改可包括所述元素文本的刷新和/或所述元素文本的更新。
与所述图形用户界面元素有关的所述变化可涉及与所述元素文本和/或所述元素形状有关的变化。
与所述元素文本有关的所述变化可涉及纯文本数据和/或布局数据的变化,所述纯文本数据和/或布局数据指示用来绘制所述文本的文本大小、文本字体、文本路径、文本刷、文本像素色或透明度。与所述元素文本有关的所述变化还可涉及呈现的元素文本,或所述元素文本的图像。与所述元素形状有关的所述变化可涉及指示包括所述元素文本在内的所述元素形状的所述变化的语义信息,例如,从点A到点B的转换。
根据第二方面,本发明涉及用一种于通过通信网络从服务器获取图形用户界面的客户端,所述图形用户界面包括图形用户界面元素,所述图形用户界面元素由元素形状和元素文本组成,所述元素形状通过元素形状数据表示,所述元素文本通过元素文本数据表示;所述客户端包括用于通过所述通信网络分别接收视频数据和所述元素文本数据的通信接口,所述元素形状数据被编码为所述视频数据,以及用于组合所述视频数据与所述元素文本数据以从所述服务器获取所述图形用户界面的组合器。这样,可实现一种用于通过通信网络从服务器向客户端提供图形用户界面的高效概念。所述客户端可为瘦客户端或零客户端。
所述通信接口可用于通过所述通信网络建立所述服务器和所述客户端之间的通信链路。所述通信链路可基于TCP(TransmissionControlProtocol,传输控制协议)协议和/或UDP(UserDatagramProtocol,用户数据报协议)协议。所述通信网络可为互联网。
所述组合器可用于基于所述视频数据生成视频层,基于所述元素文本数据生成文本层,以及将所述视频层与所述文本层合并以组合所述视频数据与所述元素文本数据。所述组合器可用于在所述客户端的帧缓冲器内组合所述视频数据与所述元素文本数据。
在根据如上所述第二方面的所述客户端的第一实施形式中,所述图形用户界面还包括视频元素,所述视频元素通过其它视频数据表示,其中所述通信接口用于通过所述通信网络分别接收所述其它视频数据、所述视频数据和所述元素文本数据,以及所述组合器用于组合所述其它视频数据与所述视频数据及所述元素文本数据。这样,可向所述客户端提供所述图形用户界面的视频元素。
所述组合器用于基于所述视频数据生成视频层,基于所述其它视频数据生成其它视频层,基于所述元素文本数据生成文本层,以及将所述视频层与所述其它视频层和所述文本层合并以组合所述其它视频数据与所述视频数据及所述元素文本数据。
在根据如上所述第二方面或根据所述第二方面的任一前述实施形式的所述客户端的第二实施形式,所述视频数据包括指示所述视频数据的有效期的第一定时表,所述元素文本数据包括指示所述元素文本数据的有效期的第二定时表,其中所述客户端包括用于基于所述第一定时表和所述第二定时表及时将所述视频数据与所述元素文本数据同步的同步器,以及所述组合器用于在所述视频数据与所述元素文本数据同步后组合所述视频数据与所述元素文本数据。这样,可实现所述视频数据和所述元素文本数据的及时同步。
所述同步器可用于比较所述第一定时表和所述第二定时表以便确定所述元素文本数据和所述视频数据之间的时间偏差。
在根据如上所述第二方面或根据所述第二方面的任一前述实施形式的所述客户端的第三实施形式中,所述客户端包括检测器,用于检测对与所述图形用户界面内的所述图形用户界面元素有关的变化的请求以获得请求信号,以及所述通信接口用于在检测到对与所述图形用户界面元素有关的所述变化的所述请求后通过所述通信网络传输所述请求信号。这样,在检测到与所述图形用户界面元素有关的变化后可开始所述图形用户界面元素的更新。
所述检测器可用于通过监控所述客户端处的事件来检测与所述图形用户界面元素有关的所述变化。
所述请求信号可指示所述客户端处的用户事件。所述用户事件可以是所述用户的输入和/或所述用户在所述客户端处的击键。所述请求信号还可涉及所述服务器处的应用事件或系统事件,所述事件可发生在所述客户端处的呈现的元素文本上。
根据第三方面,本发明涉及一种用于通过通信网络向客户端提供图形用户界面的方法,所述图形用户界面包括图形用户界面元素,所述图形用户界面元素由元素形状和元素文本组成,所述元素形状通过元素形状数据表示,所述元素文本通过元素文本数据表示;所述方法包括将所述元素形状数据编码为视频数据,检测与所述图形用户界面内的所述图形用户界面元素有关的变化,以及通过所述通信网络分别传输所述视频数据和所述元素文本数据,其中所述元素文本数据在检测到与所述图形用户界面元素有关的所述变化后传输以向所述客户端提供所述图形用户界面。这样,可实现一种用于通过通信网络从服务器向客户端提供图形用户界面的高效概念。
所述方法可由所述服务器执行。所述方法的其它特性可直接来自所述服务器的功能。
所述方法还可包括检测与所述图形用户界面内的图形用户界面元素有关的变化,以及确定所述图形用户界面的受影响部分是否包括所述文本元素。如果情况确实如此,那么所述元素文本可被拦截。如果情况并非如此,那么所述图形用户界面元素可被捕获并且/或者所述帧缓冲器可被捕捉。所述方法还可包括将所述元素形状数据编码为视频数据,以及通过所述通信网络分别传输所述视频数据和所述元素文本数据,所述元素文本数据在检测到与所述图形用户界面元素有关的所述变化后传输以向所述客户端提供所述图形用户界面。
在根据如上所述第三方面的所述方法的第一实施形式中,所述图形用户界面还包括视频元素,所述视频元素通过其它视频数据表示,其中所述方法包括通过所述通信网络分别传输所述其它视频数据、所述视频数据和所述元素文本数据。这样,可向所述客户端提供所述图形用户界面的视频元素。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第二实施形式中,所述视频数据包括指示所述视频数据的有效期的第一定时表,所述元素文本数据包括指示所述元素文本数据的有效期的第二定时表。这样,可在客户端实现所述视频数据和所述元素文本数据的及时同步。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第三实施形式中,所述方法包括基于所述元素形状数据生成若干视频帧以将所述元素形状数据编码为所述视频数据,所述若干视频帧用于组成所述视频数据。这样,可有效地编码所述元素形状数据。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第四实施形式中,所述方法包括将所述元素文本编码为纯文本数据和布局数据,所述布局数据指示文本大小、文本字体或所述元素文本在所述图形用户界面元素内的文本路径,所述纯文本数据和所述布局数据组成所述元素文本数据。这样,可有效地编码所述元素文本。
在根据如上所述第三方面或所述第三方面的所述第一实施形式到所述第四实施形式的所述方法的第五实施形式中,所述方法包括将所述元素文本编码为图像数据,所述图像数据表示所述图像用户界面元素的所述元素文本的图像,所述图像数据组成所述元素文本数据。这样,可有效地编码所述元素文本。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第六实施形式中,所述元素文本数据指示所述元素文本相对于所述图形用户界面元素的所述元素形状的位置、方向或移动。这样,可有效地指示所述元素文本和所述元素形状之间的相对布置或移动。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第七实施形式中,所述方法包括:接收请求信号,所述请求信号请求与所述图形用户界面内的所述图形用户界面元素有关的变化;以及在接收所述请求信号后通过所述通信网络分别传输所述视频数据和所述元素文本数据。这样,在接收所述请求信号后可进行所述图形用户界面元素的更新。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第八实施形式中,所述图形用户界面元素包括窗口元素、文本框元素、按钮元素、图标元素、列表框元素、菜单元素或轮播菜单元素。这样,可使用所述图形用户界面元素的标准化元素形状。
在根据如上所述第三方面或根据所述第三方面的任一前述实施形式的所述方法的第九可能实施形式中,与所述图形用户界面元素有关的所述变化包括所述图形用户界面内的所述图形用户界面元素的重新布置、所述图形用户界面内的所述图形用户界面元素的缩放或所述图形用户界面内的所述图形用户界面元素的所述元素文本的修改。这样,可有效地检测与所述图形用户界面元素有关的所述变化。
根据第四方面,本发明涉及一种用于通过通信网络从服务器获取图形用户界面的方法,所述图形用户界面包括图形用户界面元素,所述图形用户界面元素由元素形状和元素文本组成,所述元素形状通过元素形状数据表示,所述元素文本通过元素文本数据表示;所述方法包括通过所述通信网络分别接收视频数据和所述元素文本数据,所述元素形状数据被编码为所述视频数据,以及组合所述视频数据与所述元素文本数据以从所述服务器获取所述图形用户界面。这样,可实现一种用于通过通信网络从服务器向客户端提供图形用户界面的高效概念。
所述方法可由所述客户端执行。所述方法的其它特性可直接来自所述客户端的功能。
在根据如上所述第四方面的所述方法的第一实施形式中,所述图形用户界面还包括视频元素,所述视频元素通过其它视频数据表示,其中所述方法包括通过所述通信网络分别接收所述其它视频数据、所述视频数据和所述元素文本数据,以及组合所述其它视频数据与所述视频数据及所述元素文本数据。这样,可向所述客户端提供所述图形用户界面的视频元素。
在根据如上所述第四方面或根据所述第四方面的任一前述实施形式的所述方法的第二实施形式,所述视频数据包括指示所述视频数据的有效期的第一定时表,所述元素文本数据包括指示素数元素文本数据的有效期的第二定时表,其中所述方法包括基于所述第一定时表和所述第二定时表及时将所述视频数据与所述元素文本数据同步,以及在所述视频数据与所述元素文本数据同步后组合所述视频数据与所述元素文本数据。这样,可实现所述视频数据和所述元素文本数据的及时同步。
在根据如上所述第四方面或根据所述第四方面的任一前述实施形式的所述方法的第三实施形式中,所述方法包括检测对与所述图形用户界面内的所述图形用户界面元素有关的变化的请求以获得请求信号,以及在检测到对与所述图形用户界面元素有关的所述变化的所述请求后通过所述通信网络传输所述请求信号。这样,在检测到与所述图形用户界面元素有关的变化后可开始所述图形用户界面元素的更新。
根据第五方面,本发明涉及一种包括程序代码的计算机程序,当在计算机上执行时,用于执行如上所述第三方面、所述第三方面的任一实施形式、如上所述第四方面或所述第四方面的任一实施形式的所述方法。这样,可通过自动及可重复的方式执行所述方法。所述服务器和所述客户端可以可编程地用于执行所述计算机程序。
本发明的实施例可在硬件和/或软件中实施。
附图说明
本发明的是实施例将结合以下附图进行描述,其中:
图1所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的服务器的图;
图2所示为根据实施例的用于通过通信网络从服务器获取图形用户界面的客户端的图;
图3所示为根据实施例的用于由服务器通过通信网络向客户端提供图形用户界面的通信系统的图;
图4所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的方法的图;
图5所示为根据实施例的用于通过通信网络从服务器获取图形用户界面的方法的图;
图6所示为根据实施例的图形用户界面的图;
图7所示为根据实施例的用于由服务器通过通信网络向客户端提供图形用户界面的通信系统的图;
图8所示为根据实施例的用于由服务器通过通信网络向客户端提供图形用户界面的通信系统的图;
图9所示为根据实施例的服务器通过通信网络向客户端提供图形用户界面的流程图;
图10所示为根据实施例的用于由服务器通过通信网络向客户端提供图形用户界面的通信系统的图;
图11所示为根据实施例的用于由服务器通过通信网络向客户端提供图形用户界面的通信系统的图;
图12所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的服务器的图;以及
图13所示为根据实施例的用于通过通信网络从服务器获取图形用户界面的客户端的图。
具体实施方式
图1所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的服务器100的图。图形用户界面包括图形用户界面元素。图形用户界面元素由元素形状和元素文本组成。元素形状通过元素形状数据表示。元素文本通过元素文本数据表示。
服务器100包括用于将元素形状数据编码为视频数据的编码器101,用于检测与图形用户界面内的图形用户界面元素有关的变化的检测器103,以及用于通过通信网络分别传输视频数据和元素文本数据的通信接口105,元素文本数据在检测到与图形用户界面元素有关的变化后传输以向客户端提供图形用户界面。
服务器100还可包括用于将元素文本编码为纯文本数据和布局数据的文本编码器,布局数据指示文本大小、文本字体或元素文本在图形用户界面元素内的文本路径,其中纯文本数据和布局数据组成元素文本数据。
服务器100还可包括用于将元素文本编码为图像数据的图像编码器,图像数据表示图形用户界面元素的元素文本的图像,其中图像数据组成元素文本数据。
图2所示为根据实施例的用于通过通信网络从服务器获取图形用户界面的客户端200的图。图形用户界面包括图形用户界面元素。图形用户界面元素由元素形状和元素文本组成。元素形状通过元素形状数据表示。元素文本通过元素文本数据表示。
客户端200包括用于通过通信网络分别接收视频数据和元素文本数据的通信接口201,元素形状数据被编码为视频数据,以及用于组合视频数据和元素文本数据以从服务器获取图形用户界面的组合器203。
视频数据可包括指示视频数据的有效期的第一定时表,元素文本数据可包括指示元素文本数据的有效期的第二定时表。客户端200还可包括同步器,用于基于第一定时表和第二定时表及时同步视频数据和元素文本数据。组合器203可用于在视频数据和元素文本数据同步后组合视频数据和元素文本数据。
客户端200还可包括检测器,用于检测对与图形用户界面内的图形用户界面元素有关的变化的请求以获得请求信号。通信接口201可用于在检测到对与图形用户界面元素有关的变化的请求后通过通信网络传输请求信号。
图3所示为根据实施例的用于由服务器100通过通信网络301向客户端200提供图形用户界面的通信系统300的图。图形用户界面包括图形用户界面元素。图形用户界面元素由元素形状和元素文本组成。元素形状通过元素形状数据表示。元素文本通过元素文本数据表示。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。
服务器100包括用于将元素形状数据编码为视频数据的编码器101,用于检测与图形用户界面内的图形用户界面元素有关的变化的检测器103,以及用于通过通信网络301分别传输视频数据和元素文本数据的通信接口105,元素文本数据在检测到与图形用户界面元素有关的变化后传输以向客户端200提供图形用户界面。
客户端200包括用于通过通信网络301分别接收视频数据和元素文本数据的通信接口201,元素形状数据被编码为视频数据,以及用于组合视频数据和元素文本数据以从服务器100获取图形用户界面的组合器203。
服务器100和客户端200之间的通信链路通过通信网络301建立。通信网络301可为互联网。
图4所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的方法400的图。图形用户界面包括图形用户界面元素。图形用户界面元素由元素形状和元素文本组成。元素形状通过元素形状数据表示。元素文本通过元素文本数据表示。
方法400包括将元素形状数据编码401为视频数据,检测403与图形用户界面内的图形用户界面元素有关的变化,以及通过通信网络分别传输405视频数据和元素文本数据,元素文本数据在检测到与图形用户界面元素有关的变化后传输以向客户端提供图形用户界面。根据实施例,方法400可由任一服务器执行,例如服务器100。
图5所示为根据实施例的用于通过通信网络从服务器获取图形用户界面的方法500的图。图形用户界面包括图形用户界面元素。图形用户界面元素由元素形状和元素文本组成。元素形状通过元素形状数据表示。元素文本通过元素文本数据表示。
方法500包括通过通信网络分别接收501视频数据和元素文本数据,元素形状数据被编码为视频数据,以及组合503视频数据和元素文本数据以从服务器获取图形用户界面。根据实施例,方法500可由任一客户端执行,例如客户端200。
图6所示为根据实施例的图形用户界面600的图。图形用户界面600包括图形用户界面元素601。图形用户界面元素601由元素形状603和元素文本605组成。元素形状603通过元素形状数据表示。元素文本605通过元素文本数据表示。图形用户界面600还包括视频元素607,其中视频元素607通过其它视频数据表示。
图形用户界面元素601可包括窗口元素、文本框元素、按钮元素、图标元素、列表框元素、菜单元素或轮播菜单元素。
图7所示为根据实施例的用于由服务器100通过通信网络向客户端200提供图形用户界面的通信系统300的图。服务器100包括编码器101和检测器103。结合图1描述的通信接口105未示出。客户端200包括组合器203。结合图2描述的通信接口201未示出。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。本图所示为通信系统300的功能构件。
服务器100包括视频服务器701和图形用户界面(graphicaluserinterface,GUI)服务器703。图形用户界面(graphicaluserinterface,GUI)服务器703执行应用705,并且包括编码器707、虚拟机(virtualmachine,VM)709和远程用户界面(remoteuserinterface,RUI)服务器711。编码器101可包括视频服务器701和编码器707。检测器103可执行应用705,并且可包括虚拟机(virtualmachine,VM)709和远程用户界面(remoteuserinterface,RUI)服务器711。
编码器707等编码器101可使用MPEGTS视频GUI流等提供表示图形用户界面元素的元素形状的视频数据。编码器101还可使用MPEGTS视频流等提供表示图形用户界面的视频元素的其它视频数据。远程用户界面(remoteuserinterface,RUI)服务器711等检测器103可使用文本远程过程调用(remoteprocedurecall,RPC)等提供表示图形用户界面元素的元素文本的元素文本数据。文本远程过程调用(remoteprocedurecall,RPC)可开始元素文本在客户端200处的呈现。
客户端200包括视频解码器713、其它视频解码器715、文本呈现器717和远程用户界面(remoteuserinterface,RUI)客户端719。组合器203可包括视频解码器713、其它视频解码器715、文本呈现器717和远程用户界面(remoteuserinterface,RUI)客户端719。客户端200可为终端或机顶盒(settopbox,STB)。客户端200的通信接口可将远程调用(remotecall,RC)事件指示符等请求信号传输给服务器100。
在客户端200本地执行一部分呈现的混合方法是下文中描述的方法。可通过基于使用图形硬件加速器等在客户端200处增加本地呈现来运用双流架构,即,使用其它视频数据和视频数据的架构,其它视频数据包括视频元素的已压缩音视频流等,视频数据包括图形用户界面元素的已压缩音视频流。
MPEGTS视频GUI流等视频数据可与MPEGTS视频流等其它视频数据使用不同的编解码器,但可使用来自同一编解码器家族的编解码器,因为其可用于视频PIP(PictureinPicture,画中画)和/或视频PBP(PicturebyPicture,画旁画)。这可能是大部分操控器使用的功能。因此,MPEGTS视频GUI流等视频数据可重用编解码器,并且可避免在机顶盒(settopbox,STB)片上系统(systemonachip,SoC)等客户端200处使用更多特定技术以解码MPEGTS视频GUI流等视频数据。
下文示例性地描述了图形用户界面(graphicaluserinterface,GUI)中的菜单渐显和/或渐隐。可存在改进图形用户界面在客户端200上的呈现的若干选项。首先,可应用通过内插进行的失帧计算。其次,例如来自图形用户界面(graphicaluserinterface,GUI)引擎应用编程接口(applicationprogramminginterface,API)的服务器100处的“移至”(“moveto”)信息可用来提供给编码器101以及绕过运动估计。这两种方法可用于减少服务器100的负载,但例如如果视频解码机制在基于一种基于运动图像专家组(movingpictureexpertsgroup,MPEG)的编解码器时可能无法准确匹配像素,则可维持该视频解码机制。第三,可使用硬件传图函数将菜单等图形用户界面元素的图片以例如30fps的速度移动。挑战可在于,如果定期使用该方法,则可使用完整图形用户界面(graphicaluserinterface,GUI)呈现引擎。
如果该方法用于渐显和/或渐隐等,可能希望检测器103等检测与服务器100上的图形用户界面元素有关的变化。为了在客户端200处调用远程应用编程接口(applicationprogramminginterface,API),检测器103等可阻拦本地应用编程接口(applicationprogramminginterface,API)调用,但语义可能较复杂,例如将图形块从一个位置复制到另一个位置。在服务器100处使用图形用户界面(graphicaluserinterface,GUI)呈现引擎解决零客户端技术的局限性可能无法与资源约束服务器100共同起作用。因此,可使用例如客户端200的组合器203中的完整本地图形用户界面(graphicaluserinterface,GUI)引擎。可减少图形用户界面(graphicaluserinterface,GUI)视频流等视频数据和纯视频流等其它视频数据之间的差异以在混合模式下使用零客户端技术。
视频数据的例如由编码器101使用的编码比特率可小于其它视频数据的编码比特率。这还可涉及服务器100上的编码负载。事实上,该结果可起因于编码期间的可消除低频分量的离散余弦转换(discretecosinetransform,DCT)量化。在图形用户界面元素中,可移除元素文本,这通常产生高频分量。客户端200处的文本呈现器等组合器203可能不提供完整图形能力。
从一般角度来看,检测器103可在服务器100中分析应用705等应用以何种方式生成图形用户界面元素,且图形用户界面可被分割为基本图形用户界面元素以实现在服务器100和客户端200处的处理负载最小的高性能富图形用户界面。可提供图形用户界面元素的应用中的性能,例如应用705中的性能,可涉及可用性和响应性两者。高性能富图形用户界面可向客户端200处的用户操作提供恰当、有用且直观的显示以及快速且顺利的响应。
换言之,可使用两个机制在服务器100和客户端200之间分配图形用户界面的提供和/或呈现。一个机制涉及使用MPEGTS视频GUI流等视频数据以提供和/或呈现图形用户界面元素的易于编码的一部分,这可发生在服务器100上。另一机制涉及组合器203等使用元素文本数据,例如使用典型图形用户界面引擎,以提供和/或呈现图形用户界面的像素精确的一部分,这可发生在客户端200上。
图形用户界面的像素精确的部分在客户端200处的本地提供和/或呈现的一个可能实施方式可基于客户端200上的硬件加速机制和元素文本数据的矢量图形表示,以便基于编码器101使用的矢量图形表示定义集来确定例如指示文本字体的纯文本数据和布局数据。矢量图形可从用于定义线条、形状和曲线的公式创建,其中形状可通过移动称为节点的点或绘制点来编辑。矢量图形可缩放或调整为任何分辨率。
更详细地,可通过由组合器203等客户端200将OpenVG(OpenVectorGraphics,开放矢量图形)用作硬件加速技术以及将如W3C(WorldWideWebConsortium,万维网联盟)等定义的SVG(ScalableVectorGraphics,可缩放矢量图形)用于矢量图形表示来实施元素文本的提供和/或呈现。EGL(EmbeddedSystemGraphicsLibrary,嵌入式系统图形库)本地平台图形界面是用于图形资源管理的界面可移植层,并且可在OpenGLES(OpenGraphicsLibraryforEmbeddedSystem,嵌入式系统的开放图形库)或OpenVG(OpenVectorGraphics,开放矢量图形)等呈现应用编程接口(applicationprogramminginterface,API)和底层本地平台GPU(GraphicsProcessingUnit,图形处理单元)之间运作。EGL(EmbeddedSystemGraphicsLibrary,嵌入式系统图形库)可由各个硬件制造商提供且可嵌入芯片组中。OpenVG(OpenVectorGraphics,开放矢量图形)是跨平台应用编程接口(applicationprogramminginterface,API),为矢量图形库提供了低层硬件加速接口。上述应用编程接口可由服务器100和/或客户端200使用。
在一项实施例中,元素文本数据和/或图像数据可以W3C(WorldWideWebConsortium,万维网联盟)SVG(ScalableVectorGraphics,可缩放矢量图形)方式编码并可根据协议格式化,该协议可管理客户端200处的元素文本的布局、服务器100和客户端200之间的通信以及由组合器203等客户端200解码的不同图形用户界面元素的编排和效果。例如,以下富图形用户界面元素效果可用于在服务器100处具有最小处理的使用OpenVG(OpenVectorGraphics,开放矢量图形)的以及使用硬件加速将处理传送给客户端200的元素文本:如用于地图和导航的反走样、路径行程和填充、轮廓字体、行程参数、图像效果、样本动画和/或绘制。
对于元素文本,可假设可在客户端200上,例如在组合器203中,利用适当的矢量字体。例如客户端200的组合器203中的W3C(WorldWideWebConsortium,万维网联盟)SVG(ScalableVectorGraphics,可缩放矢量图形)客户端可将元素文本提供和/或呈现到使用该矢量字体的OpenVG(OpenVectorGraphics,开放矢量图形)API(Applicationprogramminginterface,应用编程接口)中,且可例如基于CSS(CascadingStyleSheet,级联样式表)使用OpenVG(OpenVectorGraphics,开放矢量图形)API(Applicationprogramminginterface,应用编程接口)添加样式层。可将元素文本移动到使用OpenVG(OpenVectorGraphics,开放矢量图形)和硬件加速的文本的路径上,且可使用图像渐隐效果。许多其它图形用户界面元素效果会消耗服务器100上的编码资源,例如编码器101,这些效果在通过完整零客户端等提供和/或呈现时可使用,例如路径、混合、滤波器或阿尔法掩码处理。为了减轻服务器100的处理负载,组合器203等可以使用客户端200上的硬件加速在客户端200中直接执行这类函数。
此外,服务器100和/或客户端200可使用CSS(CascadingStyleSheet,级联样式表)。CSS是用于描述写入标记语言中的文件的外观和格式的样式表语言。CSS可设计用于使文件内容与包括布局、颜色和字体等元素在内的文件呈现分离。通过使用CSS语言来提供和/或呈现客户端200上的元素文本,可在不将元素文本数据编码为图像数据的情况下实现主动富图形用户界面文本能力。
此外,如果在W3C(WorldWideWebConsortium,万维网联盟)CSS(CascadingStyleSheet,级联样式表)内使用SVG(ScalableVectorGraphics,可缩放矢量图形),可使用标准布局标记语言,该语言可通过使用OpenVG(OpenVectorGraphics,开放矢量图形)等在具有标准互联网浏览器、低CPU(CentralProcessingUnit,中央处理器)能力和适当的硬件加速的客户端200上提供和/或呈现。例如,组合器203内等的特定分量可包括OpenVGEGL(OpenVectorGraphicsforEmbeddedSystems,嵌入式系统的开放矢量图形)和标准HTML5(HypertextMarkupLanguage5,超文本标记语言5)互联网浏览器。然而,一些分量可能不会提供足够的CPU(CentralProcessingUnit,中央处理器)功率以在使用高分辨率呈现时提供富图形用户界面体验。通过使用标准SVG(ScalableVectorGraphics,可缩放矢量图形)和W3C(WorldWideWebConsortium,万维网联盟)标记语言,在客户端200处使用现有硬件和软件的标准可能是可行的。
图8所示为根据实施例的用于由服务器100通过通信网络向客户端200提供图形用户界面的通信系统300的图。服务器100包括编码器101和检测器103。结合图1描述的通信接口105未示出。客户端200包括组合器203。结合图2描述的通信接口201未示出。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。本图基于矢量图形在可能实施方式的上下文内示出了图7中描述的元素的功能的更多细节。
服务器100包括视频服务器801和图形用户界面(graphicaluserinterface,GUI)服务器803。图形用户界面(graphicaluserinterface,GUI)服务器803包括虚拟机(virtualmachine,VM)805。虚拟机(virtualmachine,VM)805执行应用807。虚拟机(virtualmachine,VM)805包括虚拟表面809、覆盖管理器811、用户界面(userinterface,UI)视频编码器813、文本编码器815和图像编码器817。编码器101可包括视频服务器801、覆盖管理器811、用户界面(userinterface,UI)视频编码器813、文本编码器815和图像编码器817。检测器103可执行应用807,且可包括虚拟表面809。引入了可等同于虚拟帧缓冲器的虚拟表面809。虚拟表面809或虚拟帧缓冲器可表示存储器。覆盖管理器811可由远程用户界面(remoteuserinterface,RUI)服务器组成,该服务器负责提供关于可如何在客户端200处向用户呈现视频层的规范。
客户端200可为机顶盒(settopbox,STB)。客户端200包括零客户端(zeroclient,ZC)远程用户界面(remoteuserinterface,RUI)客户端819、SVG(W3C)模块821、OpenVG模块823、OpenMAX模块825、设备控制器EGL(EmbeddedSystemGraphicsLibrary,嵌入式系统图形库)模块827、视频解码器831以及其它视频解码器833。客户端200可实现为硬件设备829。OpenVG模块823包括OpenVGAPI835、OpenVG引擎837以及OpenVG实用模块839。组合器203可包括零客户端(zeroclient,ZC)远程用户界面(remoteuserinterface,RUI)客户端819、SVG(W3C)模块821、OpenVG模块823、OpenMAX模块825、设备控制器EGL(EmbeddedSystemGraphicsLibrary,嵌入式系统图形库)模块827、视频解码器831、其它视频解码器833、OpenVGAPI835、OpenVG引擎837以及OpenVG实用模块839。
该图示出了系统300的端到端实施方式。在图形用户界面(graphicaluserinterface,GUI)服务器803等服务器100中,应用807可绘入例如实现为服务器100的虚拟帧缓冲器的虚拟表面809中。图形用户界面(graphicaluserinterface,GUI)服务器803等检测器103可分析服务器100的帧缓冲器,并可检测可编码为视频数据的低帧率元素,例如图形用户界面元素的元素形状,以及可编码为元素文本数据的高帧率元素,例如图形用户界面元素的元素文本。
此外,图形用户界面(graphicaluserinterface,GUI)服务器803等服务器100可在虚拟屏幕上接收和/或检测元素文本,可直接从应用807获得元素文本作为输入和/或可在虚拟屏幕上检测元素文本。元素文本可能不会转变为视频数据。元素文本可转入SVG(ScalableVectorGraphics,可缩放矢量图形)文本表示。通过这样做,服务器100可不将元素文本编码为视频数据,并且可以允许客户端200使用可能无法使用传统零客户端技术的富用户体验效果。其还可允许客户端200上的标准OpenVG硬件加速器引擎提供和/或呈现这些效果。
虚拟表面809上的每个图形用户界面元素均可提供有和/或呈现有用户界面(userinterface,UI)视频编码器813和文本编码器815等不同的编码器,并可通过使用特定协议发送给为该多重编解码用户界面(userinterface,UI)表示使用容器的客户端200。该特定协议可管理客户端200上的图形用户界面元素的布局以及服务器100和客户端200之间的通信。覆盖数据可使用同一特定协议嵌入或可通过不同的通信信道发送。
客户端200可将不同数据输入到视频解码器831和其它视频解码器833等组合器203的合适解码器中。如果元素文本数据根据SVG(ScalableVectorGraphics,可缩放矢量图形)表示格式化,则组合器203,例如视频解码器831,可使用OpenMAX(OpenMediaAcceleration,开放多媒体加速层)解码器,且元素文本可使用SVG(ScalableVectorGraphics,可缩放矢量图形)字体提供和/或呈现。SVG(ScalableVectorGraphics,可缩放矢量图形)模块821可使用OpenVG(OpenVectorGraphics,开放矢量图形)硬件加速器在客户端200的屏幕上,例如通过使用物理帧缓冲器,来执行图形用户界面元素的解码和绘制。
通过使用所描述的方法,当可以使用富用户界面和如结合图2所描述的客户端200等具有标准硬件加速器的简单低功率客户端时,可在服务器100上使用较少处理功率。以下示例示出了元素文本表示的标准SVG(ScalableVectorGraphics,可缩放矢量图形)和W3C(万维网联盟)标记语言表示。
在XML(ExtensibleMarkupLanguage,可扩展标记语言)中使用SVG(ScalableVectorGraphics,可缩放矢量图形)的示例性元素文本表示:
<svg>
<textx="0"y="15">ThisisScalableVectorGraphic(SVG)Text</text>
</svg>
ExamplaryelementtextrepresentationusingHTML(HypertextMarkupLanguage):
<defs>
<pathid="textpath"fill="none"stroke="#000000"
d="M0.057,0.024c0,0,10.99,51.603,102.248,51.603c91.259,0,136.172,53.992,136.172,53.992"/>
</defs>
<usexlink:href="#textpath"/>
<textx="10"y="100">
<textPathxlink:href="#textpath">
Text</textPath>
</text>
这些示例并不是排他性的。还可使用基于CPU(CentralProcessingUnit,中央处理器)计算或简单硬件加速器的软件文本呈现引擎,例如传图函数。视频元素在图形用户界面(graphicaluserinterface,GUI)内的位置可基于PIP(PictureinPicture,画中画)规范确定。
图9所示为根据实施例的服务器100通过通信网络301向客户端200提供图形用户界面的流程图;该流程图提供了如结合图3所描述的系统300的端到端实施方式的概况。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。服务器100可基于下文描述的程序调用向客户端200提供图形用户界面。
该流程图描述了服务器901、用户界面(userinterface,UI)903、图形应用编程接口(applicationprogramminginterface,API)905、文本引擎应用编程接口(applicationprogramminginterface,API)907、文本引擎应用编程接口(applicationprogramminginterface,API)909、字体成形应用编程接口(applicationprogramminginterface,API)911、文本布局应用编程接口(applicationprogramminginterface,API)913、文本远程绘制应用编程接口(applicationprogramminginterface,API)915、文本绘制应用编程接口(applicationprogramminginterface,API)917、文本绘制应用编程接口(applicationprogramminginterface,API)919、视频应用编程接口(applicationprogramminginterface,API)921、视频应用编程接口(applicationprogramminginterface,API)923、图像应用编程接口(applicationprogramminginterface,API)925、图像应用编程接口(applicationprogramminginterface,API)927、远程用户界面(remoteuserinterface,RUI)服务器929、远程用户输入解释器931、MPEGTS变换帧缓冲器模块933、终端935、远程用户界面(remoteuserinterface,RUI)客户端937、媒体播放器939、文本与媒体播放器同步器941、用户输入应用编程接口(applicationprogramminginterface,API)943以及网络945。服务器100由服务器901表示。客户端200由终端935表示。通信网络301由网络945表示。
服务器100可包括操作员的服务器901,该操控器可以是具有能够支持客户端或终端,例如客户端200或终端935,并发访问的操作系统的计算机。
用户界面(userinterface,UI)903可表示负责通过管理来自客户端200的输入设备的用户输入事件来与用户交互的软件模块,通常是远程控制按键事件,以及负责提供和/或呈现客户端200的屏幕的对应显示,例如像输入字段的字符在图形用户界面的形式中的回显。结合图1描述的检测器103可包括用户界面(userinterface,UI)903。
图形应用编程接口(applicationprogramminginterface,API)905可表示用于绘制基本图形原语的软件接口的部分,例如可通过贝塞尔曲线等数学模型和一系列点描述的任何几何对象或线路。结合图1描述的编码器101可包括图形应用编程接口(applicationprogramminginterface,API)905。
文本引擎应用编程接口(applicationprogramminginterface,API)907和文本引擎应用编程接口(applicationprogramminginterface,API)909可表示文本引擎应用编程接口(applicationprogramminginterface,API),其可为用于计算图形用户界面元素的元素文本在客户端200的屏幕上的提供和/或呈现的软件接口。结合图1描述的编码器101可包括文本引擎应用编程接口(applicationprogramminginterface,API)907和文本引擎应用编程接口(applicationprogramminginterface,API)909。
字体成形应用编程接口(applicationprogramminginterface,API)911可负责将元素文本的字体定义中定义的字形计算为像素。可缓存字体成形以优化计算负载。结合图1描述的编码器101可包括字体成形应用编程接口(applicationprogramminginterface,API)911。
文本布局应用编程接口(applicationprogramminginterface,API)913可计算词语的每个字符和段落的各个句子之间的距离以匹配屏幕的显示区域以及避免视觉假象,例如像字符重叠。结合图1描述的编码器101可包括文本布局应用编程接口(applicationprogramminginterface,API)913。
文本远程绘制应用编程接口(applicationprogramminginterface,API)915可通过拦截服务器100的文本绘制应用编程接口(applicationprogramminginterface,API)919来调用。其可通过远程过程调用(remoteprocedurecall,RPC)机制而非服务器100之一来调用客户端200的文本绘制应用编程接口(applicationprogramminginterface,API)917,然后可绕过服务器100的文本绘制应用编程接口(applicationprogramminginterface,API)919的实施方式。文本绘制应用编程接口(applicationprogramminginterface,API)917和文本绘制应用编程接口(applicationprogramminginterface,API)919可负责将,例如存储器中的,已呈现的元素文本复制到服务器100和客户端200各自中的帧缓冲器中。结合图1描述的编码器101可包括文本远程绘制应用编程接口(applicationprogramminginterface,API)915和文本绘制应用编程接口(applicationprogramminginterface,API)919。结合图2描述的组合器203可包括文本绘制应用编程接口(applicationprogramminginterface,API)917。
视频应用编程接口(applicationprogramminginterface,API)921和视频应用编程接口(applicationprogramminginterface,API)923可表示用于从包含压缩音视频流或来自网络接口的音视频流的文件等视频数据或其它视频数据播放视频的软件接口的部分。结合图1描述的编码器101可包括视频应用编程接口(applicationprogramminginterface,API)921。结合图2描述的组合器203可包括视频应用编程接口(applicationprogramminginterface,API)923。
图像应用编程接口(applicationprogramminginterface,API)925和图像应用编程接口(applicationprogramminginterface,API)927可表示用于提供和/或呈现PNG或JPEG文件等图片的软件接口的部分。结合图1描述的编码器101可包括图像应用编程接口(applicationprogramminginterface,API)925。结合图2描述的组合器203可包括图像应用编程接口(applicationprogramminginterface,API)927。
远程用户界面(remoteuserinterface,RUI)服务器929可表示软件的各个部分,负责:管理客户端200处的远程用户事件并将它们提供给比如发生了本地用户事件的服务器100,以及向客户端200提供服务器100的帧缓冲器的副本,该副本格式化为RGB24位图且没有在服务器100中呈现的元素文本,以便在需要副本时,例如在按键事件之后,刷新它。其还可负责,例如通过使用“InvalidateRect”或“InvalidateRgn”函数使客户端200的屏幕的区域失效,在每次应该刷新元素文本时发送待显示的元素文本数据。当客户端200无法在较高层使用Draw_Text(“adc”,始于像素(x,y),使用字体_XYZ)调用处理其时,其可使用可缓存到客户端200中的位图格式。结合图1描述的编码器101可包括远程用户界面(remoteuserinterface,RUI)服务器929。
远程用户输入解释器931可表示监听用户事件的软件模块并可决定下一个处理的序列。通常,其可用于实现按键事件之后字符在屏幕上的回显。结合图1描述的编码器101可包括远程用户输入解释器931。
MPEGTS变换帧缓冲器模块933可表示服务器100的帧缓冲器变换为MPEG传输流(transportstream,TS)。服务器100可例如使用视频流格式将帧缓冲器打包为视频数据,以便能够在客户端200处像视频流一样将其解码。结合图1描述的编码器101可包括MPEGTS变换帧缓冲器模块933。
客户端200可包括表示用户的终端设备的终端935,终端935可为瘦客户端计算机,例如上述客户端200之一。
远程用户界面(remoteuserinterface,RUI)937可负责将请求信号等输入事件指示符从客户端200发送给服务器100,以及负责接收与帧缓冲器有关的变化的副本。结合图2描述的组合器203可包括远程用户界面(remoteuserinterface,RUI)客户端937。
媒体播放器939可表示能够在客户端200处提供和/或呈现音频、视频和/或图片等任何多媒体内容的软件模块。结合图2描述的组合器203可包括媒体播放器939。
文本与媒体播放器同步器941可表示软件模块,如果用户已在服务器100的屏幕上观察到客户端200等上的显示变化,该软件模块可将调用调度到文本绘制应用编程接口(applicationprogramminginterface,API)917以遵守客户端200等上的显示变化的序列。为了继续,其可接收请求信号等指示帧缓冲器变化准备好由媒体播放器939显示的用户事件指示符,和/或来自文本远程绘制应用编程接口(applicationprogramminginterface,API)915的“文本应刷新”指示符。然后其可管理文本引擎应用编程接口(applicationprogramminginterface,API)909对元素文本的绘制的调用。结合图2描述的同步器可包括文本与媒体播放器同步器941。
通信网络301可包括指示运营商网络的网络945,网络945可为IP(InternetProtocol,互联网协议)网络基础设施。网络945可实现服务器100等运营商业务服务器和客户端200等用户家庭终端之间的信息传输。
图10所示为根据实施例的用于由服务器100通过通信网络向客户端200提供图形用户界面的通信系统300的图。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。
服务器100执行应用1001并包括操作系统1003和虚拟设备驱动器1005。服务器100可选地包括GPU(GraphicsProcessingUnit,图形处理单元)。虚拟设备驱动器1005可用于提供和/或呈现除元素文本之外的图形用户界面元素以发送元素文本、捕获视频帧、压缩视频数据以及加密视频数据。服务器100可向客户端200提供编码的视频帧和元素文本原语,并可从客户端200接收请求信号等用户事件指示符。
客户端200包括用户输入模块1007、媒体播放器1009、文本呈现引擎1011和文本/视频同步器1013。媒体播放器1009可用于解密视频数据、解压视频数据以及显示视频GUI流和/或音视频流等视频。文本呈现引擎1011可用于将元素文本绘制到图形层中。用户输入模块1007可向服务器100提供请求信号等用户事件指示符。媒体播放器1009可从服务器100接收编码的视频帧。文本呈现引擎1011可从服务器100接收元素文本原语。
实施例基于为图形用户界面元素使用一个通信路径以及为更多用户界面类型使用另一通信路径的想法。图形用户界面元素可在视频数据中处理,除了元素文本可能不由服务器100而由客户端200呈现。因此,编码负载、数据速率和/或带宽可在同一质量水平下降低。
可实现由客户端200使用SVG(ScalableVectorGraphics,可缩放矢量图形)和/或标准矢量图形硬件加速的实施方式。可缩放矢量图形可用作元素文本呈现、文本引擎API和客户端200上的图像呈现的表示层。可缩放矢量图形(ScalableVectorGraphics,SVG)可以是基于XML的矢量图像和可对交互性及动画提供支持的二维图形的文本格式。
标准OpenVG(OpenVectorGraphics,开放矢量图形)可用于加速在客户端200上呈现矢量图形。作为本地平台图像接口的EGL(Embedded-SystemGraphicsLibrary,嵌入式系统图形库)可由硬件制造商提供并嵌入芯片组中。EGL(Embedded-SystemGraphicsLibrary,嵌入式系统图形库)可为用于图形资源管理的界面可移植层,并可在呈现应用编程接口(applicationprogramminginterface,API)、OpenVG(OpenVectorGraphics,开放矢量图形)和EGL(Embedded-SystemGraphicsLibrary,嵌入式系统图形库)等底层本地平台GPU(GraphicsProcessingUnit,图形处理单元)之间运作。客户端200上可利用适当的矢量字体。
元素文本数据和/或图像数据可以W3C(WorldWideWebConsortium,万维网联盟)SVG(ScalableVectorGraphics,可缩放矢量图形)格式编码并可为元素文本和/或视频数据等使用领先的特定协议来管理不同解码任务在客户端200上的叠加、编排和效果。例如,可为使用OpenVG(OpenVectorGraphics,开放矢量图形)的元素文本实现以下效果:反走样、路径行程和填充、轮廓字体、行程参数、图像效果、动画和/或绘制。
图11所示为根据实施例的用于由服务器100通过通信网络301向客户端200提供图形用户界面的通信系统300的图。服务器100组成如结合图1所描述的服务器100的可能实施方式。客户端200组成如结合图2所描述的客户端200的可能实施方式。
服务器100可使用不同选项提供图形用户界面的图形用户界面元素。第一选项基于将元素文本编码为纯文本数据和布局数据。元素形状在服务器100的帧缓冲器内安排。元素文本指示为如开始于点(P1,P2)处的字体为z的“你的文本在这里”。第二选项基于将元素文本编码为图像数据。元素形状在服务器100的帧缓冲器内安排。元素文本由位图图片等使用虚拟显示驱动器的图像表示。
元素形状使用第一编解码器编码为可通过通信网络301传输给客户端200的视频数据。元素文本数据以数据流的形式通过通信网络301传输给客户端200。
客户端200包括解码器引擎、GUI引擎和同步器以组合视频数据和元素文本数据。编码器引擎可将解码的视频数据复制到视频层。第二视频层可用于视频流。GUI引擎可计算与元素文本数据有关的像素并可将像素复制到图形层。视频层和图形层可合并以提供图形用户界面。
图12所示为根据实施例的用于通过通信网络向客户端提供图形用户界面的服务器100的图。服务器100组成如结合图1所描述的服务器100的可能实施方式。本图所示为根据UML(UnifiedModelingLanguage,统一建模语言)范式的服务器100的功能视图。
服务器100执行应用1201。服务器100包括GUI引擎1203、组合器1205、显示驱动器模块1207、图形层模块1209、帧捕捉器1211、编码器引擎1213、文本刷新检测器1217、组合器1219、虚拟显示驱动器模块1221、虚拟输入设备驱动器模块1225、视频驱动器模块1227以及重试管理模块1231。服务器100用于建立第一通信会话1215、第二通信会话1223和第三通信会话1229。远程用户界面(remoteuserinterface,RUI)服务器可负责建立第一通信会话1215。
编码器101可包括显示驱动器模块1207、图形层模块1209、帧捕捉器1211、编码器引擎1213以及视频驱动器模块1227。检测器103可执行应用1201。检测器103可包括GUI引擎1203、组合器1205、文本刷新检测器1217、组合器1219、虚拟显示驱动器模块1221、虚拟输入设备驱动器模块1225以及重试管理模块1231。通信接口105可用于建立第一通信会话1215、第二通信会话1223和第三通信会话1229。
应用1201可向GUI引擎1203提供显示请求信号,例如,指示与图形用户界面元素有关的变化。GUI引擎1203可向视频驱动器模块1227提供音视频流原语调用。组合器1205可提供可能不包含文本,例如图形用户界面元素的元素文本,的图形呈现原语调用。显示驱动器模块1207可用于设置图形用户界面内的图形用户界面元素的像素。图形层模块1209可提供例如组成视频数据的帧流。编码器引擎1213可提供例如组成压缩视频数据的压缩视频流。组合器1219可提供文本呈现调用作为第一选项,或图形呈现调用作为第二选项。视频驱动器模块1227可提供例如组成压缩视频数据的压缩视频流以通过第三通信会话1229传输。
应用1201在运行时可发送指示按键按下(key-down)释放事件等的显示请求信号给GUI引擎1203,这可解释知道图形用户界面元素的图形上下文和应用1201的状态的信号。例如,按键按下释放事件可解释为列表框的焦点和/或光标下移事件,并可转换为与表示光标的矩形有关的“moveToxyz”请求信号。
请求信号可由组合器1205处理和/或过滤,组合器1205可发送请求信号给文本刷新检测器1217。在焦点位于“moveToxyz”请求信号上之前,客户端,例如如结合图2所描述的客户端200,已经可以在显示器或屏幕区域内显示元素文本,且“moveToxyz”请求信号可能已经中断元素文本,例如由于其指示已填充的矩形。
文本刷新检测器1217的作用可以是生成附加显示文本请求信号以使用虚拟显示驱动器模块1221刷新和/或修复如结合图2所描述的客户端200等客户端处的元素文本。其可执行与显示驱动器模块1207相同的流程,除了输出请求信号可能不在本地提供,而是可使用第二通信会话1223发送给客户端,例如,如结合图2所描述的客户端200。
组合器1219可以是滤波器,该滤波器除了发送文本刷新检测器1217的请求信号,还发送GUI引擎1203的请求信号,该请求信号可为GUI引擎1203可执行以跟随应用1201的显示请求信号的常规文本显示请求信号。
组合器1205还可发送可能与元素文本的显示无关的请求信号给显示驱动器模块1207,并可将请求信号转换为位图图像。例如,“moveToxyz”矩形可变为图像层模块1209内的“set_list_of_pixel(a,b,c...)”矩形,“set_list_of_pixel(a,b,c...)”矩形可映射到帧缓冲器或存储器中,且其在通过第一通信会话1215发送到如结合图2所描述的客户端200等客户端之前可由帧捕捉器1211捕获和/或捕捉并可由编码器引擎1213压缩。
文本刷新检测器1217还可处理视频呈现请求信号,例如,以便提供元素形状,然后可发送这些信号给视频驱动器模块1227,视频驱动器模块1227可决定是否直接通过第三通信会话1229将这些信号传递给客户端,例如,如结合图2描述的客户端200,或是否在进行此操作之前执行转码以便按客户端支持的格式发送视频数据。
重试管理模块1231可以是可选的。它的作用可包括决定是否重新执行或不重新执行服务器100或如结合图2所描述的客户端200等客户端的请求信号的提供,例如因为继续进行而不重新执行可能更好。客户端可能还未收到请求信号。客户端可能在等待请求信号。应用1201在知道重试无用时可提供信息,例如,禁用重试信息。如结合图13所描述的客户端的重试管理模块1335在从客户端的部件接收信息时可执行相同的流程,指示例如超时后,重试管理模块1335仍然等待请求信号和/或其可不再处理请求信号。
编码同步器可用在服务器100中同步编码器引擎1213与虚拟显示驱动器模块1221。通信机制可为任意合适的通信机制。视频数据可基于标准视频覆盖机制生成。客户端200中的同步器可执行部分呈现。
检测器103可为显示驱动器调用的拦截器并且还可调用虚拟显示驱动器,该虚拟显示驱动器可将高层显示调用解释为低层调用。低层调用可以在位图级(选项2)或矢量级(选项1)上。在选项1中,可支持位图以支持标志。可在解压图像上执行变化的检测。如果变化仅涉及或许不在帧缓冲器中但可能仅导致传输元素文本数据的元素文本,则可能不编码服务器100的帧缓冲器。
图13示出了根据实施例的用于通过通信网络从服务器获取图形用户界面的客户端200的图。客户端200组成如结合图2所描述的客户端200的可能实施方式。
客户端200包括解码器引擎1303、视频驱动器模块1305、视频层模块1307、组合器1309、帧缓冲器1311、文本同步器1313、GUI引擎1319、组合器1321、显示驱动器模块1323、图形层模块1325、解码器引擎1329、视频驱动器模块1331、视频层模块1333以及重试管理模块1335。客户端200执行远程用户界面(userinterface,UI)应用1317。客户端200用于建立第一通信会话1301、第二通信会话1315和第三通信会话1327。
通信接口201可用于建立第一通信会话1301、第二通信会话1315和第三通信会话1327。组合器203可包括解码器引擎1303、视频驱动器模块1305、视频层模块1307、组合器1309、帧缓冲器1311、GUI引擎1319、组合器1321、显示驱动器模块1323、图形层模块1325、解码器引擎1329、视频驱动器模块1331、视频层模块1333以及重试管理模块1335。如结合图2所描述的同步器可包括文本同步器1313。如结合图2所描述的检测器可执行远程用户界面(userinterface,UI)应用1317。
解码器引擎1303可提供时间戳等定时表给文本同步器1313以及原始视频流等视频数据给视频驱动器模块1305。组合器1309可用于合并视频层。第二通信会话1315可提供来自如结合图1所描述的服务器100的呈现调用。远程用户界面(userinterface,UI)应用1317可接收请求信号等用户事件指示符,并可提供请求信号等用户事件指示符以通过第二通信会话1315传输,以及可提供时间戳等定时表给文本同步器1313。组合器1321可提供图形呈现原语调用,例如,以便呈现图形用户界面元素的元素文本。显示驱动器模块1323可用于设置图形用户界面内的图形用户界面元素的像素。文本同步器1313可决定GUI引擎1319是否发送原语调用给显示驱动器模块1323。
客户端200可基于运行表示为远程用户界面(userinterface,UI)应用1317的应用的架构实现,远程用户界面(userinterface,UI)应用1317可负责使用第二通信会话1315接收请求信号,以便显示来自如结合图1所描述的服务器100等服务器的元素文本。这可实现以便发送请求信号给本地GUI引擎1319,其中可使用能够将元素文本呈现为位图或呈现在矢量表示中的GUI引擎1319的子集,以及以便发送指示来自按键按下和/或释放事件等的用户输入的请求信号给服务器100,例如,来自在服务器100上运行的应用1201所使用的远程控制或任意输入设备。
远程用户界面(userinterface,UI)应用1317的另一作用可为将有序对(timestamp_text_i,text_display_request_i)传送给文本同步器1313。文本同步器1313可将请求排队和分类。来自解码器引擎1303的时间戳值等定时表可作为时间参考提供以便读取队列。文本同步器1313可决定是否允许或阻止来自GUI引擎1319的低层显示请求信号,这些低层显示请求信号已通过使用组合器1321进行过滤来继承了最高层显示请求信号的定时表,例如时间戳。因此,显示驱动器模块1323可仅在图形层模块1325显示元素文本显示请求信号有意义时接收元素文本显示请求信号。
通过第一通信会话1301,可使用远程帧缓冲器(remoteframebuffer,RFB)协议接收像视频流一样的帧缓冲器的内容,该内容不具有图形用户界面元素的呈现元素文本等。解码器引擎1303可解码视频流,并可通过视频驱动器模块1305向视频层模块1307提供视频。当存在例如使用画中画(pictureinpicture,PIP)功能的视频元素嵌入图形用户界面(graphicaluserinterface,GUI)中时,可使用第三通信会话1327和另一解码器引擎1329。
组合器1309可用于合并层,其中这些层可包括图形用户界面的三个部分。第一层可包括图形用户界面元素的元素文本。第二层可包括图形用户界面元素的元素形状或图形。第三层可包括图形用户界面的视频元素。
对于如结合图12和图13所描述的第一通信会话1215、1301,可应用包松散处理机制而非TCP(TransmissionControlProtocol,传输控制协议),以便实现低延迟。例如,可应用结合对丢失的视频数据包的重传请求的UDP(UserDatagramProtocol,用户数据报协议)。对于如结合图12和图13所描述的第二通信会话1223、1315,可应用TCP(TransmissionControlProtocol,传输控制协议)。如结合图12和图13所描述的第三通信会话1229、1327可用于在客户端200中使用解码器的其它视频数据。其它视频数据可由第三方视频服务器提供。
实施例涉及向具有元素文本呈现能力的例如包括媒体播放器的客户端200提供远程图形用户界面。实施例涉及减少图形用户界面的例如快速活动菜单的编码负载。例如,通过在服务器100处使用约束编码资源可在客户端200等纯零客户端上无缝呈现渐显和/或渐隐效果。
服务器100可使用硬件编码器。然而,资源的共享可限制可扩展性。除了提供用于呈现图形用户界面元素的服务器资源,还可为每个客户端使用一个硬件编码器。
实施例可减少用于编码服务器100的帧缓冲器的资源,并使得当使用零或近零客户端技术保持服务器100上的主要呈现时在服务器100等约束资源服务器上使用软件编码成为可能。服务器100等约束资源服务器可涉及可能不同时为所有客户端请求提供处理并且可能必须推迟处理或可能必须通过降低服务质量来减轻处理负载的服务器。
实施例可省略元素文本在服务器100上的提供和/或呈现,并将元素文本传输给客户端200以将其本地提供和/或呈现在客户端200处。由于元素文本可不在服务器100的帧缓冲器中绘制,即,可表示为字形像素矩阵的字符可不复制到帧缓冲器中,所以压缩比可以更佳,这是因为文本通常创造DCT(DiscreteCosineTransform,离散余弦变换)编码过程不可移除的高频。
由于压缩比可更佳,所以帧率可提高以便在不提高数据速率或带宽的情况下支持快速动态GUI(GraphicUserInterface,图形用户界面),例如菜单渐显和/或渐隐。用于传送元素文本绘制消息的数据的附加传输相比于完整的帧传输可忽略不计。
本发明的实施例的实施方式可基于OpenGL(OpenGraphicsLibrary,开放图形库),其中顶级API(ApplicationProgrammingInterface,应用编程接口)调用在服务器100上可省略,且可例如使用面向RPC(RemoteProcedureCall,远程过程调用)的协议将调用传送给客户端200。这可意味着应用编程接口(applicationprogramminginterface,API)实施方式可由对等价但远程的功能的调用替代。
实施例能够提供客户端200,例如vSTB(virtualSetTopBox,虚拟机顶盒),这可依赖客户端200处有限的图形能力,同时能够以有效的方式提供和/或呈现例如包括图片动画、字体平滑或阴影的富图形用户界面(graphicaluserinterface,GUI)。客户端200可基于互联网和/或基于云。
真或纯零客户端技术可以使客户端便宜但可能有以下约束。其可能基于单流,例如,包括视频和覆盖图形用户界面(graphicaluserinterface,GUI)两者的一个MPEG视频流。这可导致服务器上的负载增加,该服务器出于可扩展性原因可能不可行。其还可能基于双流,例如,用于视频的一个MPEG视频流和用于图形用户界面的一个MPEG视频流。这可导致质量和可扩展性之间的选择。例如,对于动画,系统可使用几乎无损的编解码器以30fps的速度编码,从用户体验的视角来看,该编解码可能是不需要的。一种方案可为混合使用零客户端和客户端200处的图形用户界面元素的元素文本的本地呈现。
元素文本数据可根据ITU-TT.128文本消息格式格式化。图形用户界面元素的元素形状可由如结合图1描述的服务器100呈现。图形用户界面元素的元素文本可由如结合图2描述的客户端200呈现。
Claims (16)
1.一种用于通过通信网络(301)向客户端(200)提供图形用户界面(600)的服务器(100),其特征在于,所述图形用户界面(600)包括图形用户界面元素(601),所述图形用户界面元素(601)由元素形状(603)和元素文本(605)组成,所述元素形状(603)通过元素形状数据表示,所述元素文本(605)通过元素文本数据表示,所述服务器(100)包括:
编码器(101),用于将所述元素形状数据编码为视频数据;
检测器(103),用于检测与所述图形用户界面(600)内的所述图形用户界面元素(601)有关的变化;以及
通信接口(105),用于通过所述通信网络(301)分别传输所述视频数据和所述元素文本数据,所述元素文本数据在检测到与所述图形用户界面元素(601)有关的所述变化后传输以向所述客户端(200)提供所述图形用户界面(600)。
2.根据权利要求1所述的服务器(100),其特征在于,所述图形用户界面(600)还包括视频元素(607),所述视频元素(607)通过其它视频数据表示,以及所述通信接口(105)用于通过所述通信网络(301)分别传输所述其它视频数据、所述视频数据和所述元素文本数据。
3.根据任一前述权利要求所述的服务器(100),其特征在于,所述视频数据包括指示所述视频数据的有效期的第一定时表,以及所述元素文本数据包括指示所述元素文本数据的有效期的第二定时表。
4.根据任一前述权利要求所述的服务器(100),其特征在于,所述编码器(101)用于基于所述元素形状数据生成若干视频帧以将所述元素形状数据编码为所述视频数据,所述若干视频帧用于组成所述视频数据。
5.根据任一前述权利要求所述的服务器(100),其特征在于,所述服务器(100)包括用于将所述元素文本(605)编码为纯文本数据和布局数据的文本编码器,所述布局数据指示文本大小、文本字体或所述元素文本(605)在所述图形用户界面元素(601)内的文本路径,所述纯文本数据和所述布局数据组成所述元素文本数据。
6.根据权利要求1至5所述的服务器(100),其特征在于,所述服务器(100)包括用于将所述元素文本(605)编码为图像数据的图像编码器,所述图像数据表示所述图形用户界面元素(601)的所述元素文本(605)的图像,所述图像数据组成所述元素文本数据。
7.根据任一前述权利要求所述的服务器(100),其特征在于,所述通信接口(105)用于接收请求信号,所述请求信号请求与所述图形用户界面(600)内的所述图形用户界面元素(601)有关的变化,以及所述通信接口(105)用于在接收所述请求信号后通过所述通信网络(301)分别传输所述视频数据和所述元素文本数据。
8.根据任一前述权利要求所述的服务器(100),其特征在于,所述图形用户界面元素(601)包括窗口元素、文本框元素、按钮元素、图标元素、列表框元素、菜单元素或轮播菜单元素。
9.根据任一前述权利要求所述的服务器(100),其特征在于,与所述图形用户界面元素(601)有关的所述变化包括所述图形用户界面(600)内的所述图形用户界面元素(601)的重新布置、所述图形用户界面(600)内的所述图形用户界面元素(601)的缩放或所述图形用户界面(600)内的所述图形用户界面元素(601)的所述元素文本(605)的修改。
10.一种用于通过通信网络(301)从服务器(100)获取图形用户界面(600)的客户端(200),其特征在于,所述图形用户界面(600)包括图形用户界面元素(601),所述图形用户界面元素(601)由元素形状(603)和元素文本(605)组成,所述元素形状(603)通过元素形状数据表示,所述元素文本(605)通过元素文本数据表示,所述客户端(200)包括:
通信接口(201),用于通过所述通信网络(301)分别接收视频数据和所述元素文本数据,所述元素形状数据被编码为所述视频数据;以及
组合器(203),用于组合所述视频数据与所述元素文本数据以从所述服务器(100)获取所述图形用户界面(600)。
11.根据权利要求10所述的客户端(200),其特征在于,所述图形用户界面(600)还包括视频元素(607),所述视频元素(607)通过其它视频数据表示,所述通信接口(201)用于通过所述通信网络(301)分别接收所述其它视频数据、所述视频数据和所述元素文本数据,以及所述组合器(203)用于组合所述其它视频数据与所述视频数据及所述元素文本数据。
12.根据权利要求10或11所述的客户端(200),其特征在于,所述视频数据包括指示所述视频数据的有效期的第一定时表,所述元素文本数据包括指示所述元素文本数据的有效期的第二定时表,所述客户端(200)包括用于基于所述第一定时表和所述第二定时表将所述视频数据与所述元素文本数据同步的同步器,以及所述组合器(203)用于在所述视频数据与所述元素文本数据同步后组合所述视频数据与所述元素文本数据。
13.根据权利要求10或12所述的客户端(200),其特征在于,所述客户端(200)包括检测器,用于检测对与所述图形用户界面(600)内的所述图形用户界面元素(601)有关的变化的请求以获得请求信号,以及所述通信接口(201)用于在检测到对与所述图形用户界面元素(601)有关的所述变化的所述请求后通过所述通信网络(301)传输所述请求信号。
14.一种用于通过通信网络(301)向客户端(200)提供图形用户界面(600)的方法(400),其特征在于,所述图形用户界面(600)包括图形用户界面元素(601),所述图形用户界面元素(601)由元素形状(603)和元素文本(605)组成,所述元素形状(603)通过元素形状数据表示,所述元素文本(605)通过元素文本数据表示,所述方法(400)包括:
将所述元素形状数据编码(401)为视频数据;
检测(403)与所述图形用户界面(600)内的所述图形用户界面元素(601)有关的变化;以及
通过所述通信网络(301)分别传输(405)所述视频数据和所述元素文本数据,所述元素文本数据在检测到与所述图形用户界面元素(601)有关的所述变化后传输以向所述客户端(200)提供所述图形用户界面(600)。
15.一种用于通过通信网络(301)从服务器(100)获取图形用户界面(600)的方法(500),其特征在于,所述图形用户界面(600)包括图形用户界面元素(601),所述图形用户界面元素(601)由元素形状(603)和元素文本(605)组成,所述元素形状(603)通过元素形状数据表示,所述元素文本(605)通过元素文本数据表示,所述方法(500)包括:
通过所述通信网络(301)分别接收(501)视频数据和所述元素文本数据,所述元素形状数据被编码为所述视频数据;以及
组合(503)所述视频数据与所述元素文本数据以从所述服务器(100)获取所述图形用户界面(600)。
16.一种包括程序代码的计算机程序,其特征在于,当所述计算机程序在计算机上执行时,用于执行根据权利要求14或15中的任一权利要求所述的方法(400;500)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/070448 WO2016045729A1 (en) | 2014-09-25 | 2014-09-25 | A server for providing a graphical user interface to a client and a client |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105637886A true CN105637886A (zh) | 2016-06-01 |
CN105637886B CN105637886B (zh) | 2018-10-30 |
Family
ID=51655705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480046301.6A Active CN105637886B (zh) | 2014-09-25 | 2014-09-25 | 用于向客户端提供图形用户界面的服务器,以及客户端 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11537777B2 (zh) |
EP (1) | EP3050302B1 (zh) |
CN (1) | CN105637886B (zh) |
WO (1) | WO2016045729A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479897A (zh) * | 2017-08-23 | 2017-12-15 | 珠海安联锐视科技股份有限公司 | 一种在视频监控设备上使用的矢量图形界面缩放方法 |
WO2018090673A1 (zh) * | 2016-11-15 | 2018-05-24 | 同方威视技术股份有限公司 | 用于对安检数据进行操作的方法、服务器和系统 |
CN109074273A (zh) * | 2016-07-25 | 2018-12-21 | 惠普发展公司,有限责任合伙企业 | 自动虚拟输入设备 |
CN109324903A (zh) * | 2018-09-21 | 2019-02-12 | 深圳前海达闼云端智能科技有限公司 | 用于嵌入式系统的显示资源调度方法及装置 |
CN111149346A (zh) * | 2017-09-28 | 2020-05-12 | 杜比实验室特许公司 | 帧速率转换元数据 |
CN112068908A (zh) * | 2017-10-23 | 2020-12-11 | 华为技术有限公司 | 图形处理方法及相关装置和设备 |
CN113486183A (zh) * | 2021-09-06 | 2021-10-08 | 平安科技(深圳)有限公司 | 基于支持向量机的文本分类方法、装置、电子设备及介质 |
CN113938705A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 用于视频编解码的方法、装置、服务器、终端设备及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270591B2 (en) | 2015-06-30 | 2019-04-23 | Activevideo Networks, Inc. | Remotely managed trusted execution environment for digital-rights management in a distributed network with thin clients |
US10893313B2 (en) * | 2015-09-11 | 2021-01-12 | Active Video Networks, Inc. | Secure bridging of third-party digital rights management to local security |
US10476927B2 (en) * | 2015-11-30 | 2019-11-12 | Dell Products L.P. | System and method for display stream compression for remote desktop protocols |
IT201700108946A1 (it) * | 2017-09-28 | 2019-03-28 | Sky Italia S R L | Sistema, metodo e dispositivi per la gestione di elementi grafici |
US20190362318A1 (en) * | 2018-05-28 | 2019-11-28 | Open Invention Network Llc | Audio-based notifications |
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
KR102571776B1 (ko) * | 2019-02-25 | 2023-08-29 | 구글 엘엘씨 | 가변 엔드-포인트 사용자 인터페이스 렌더링 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262748A (zh) * | 1996-04-04 | 2000-08-09 | 安尼索福特公司 | 获取、处理和发送包含在一个图形用户界面窗口中的数据的装置和方法 |
US20070006065A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Conditional event timing for interactive multimedia presentations |
US7310769B1 (en) * | 2003-03-12 | 2007-12-18 | Adobe Systems Incorporated | Text encoding using dummy font |
CN101946493A (zh) * | 2008-02-20 | 2011-01-12 | Nabto公司 | 用于提供连接到因特网的客户端之间的连接性的方法和系统 |
CN103748553A (zh) * | 2011-06-28 | 2014-04-23 | 惠普发展公司,有限责任合伙企业 | 客户端的操作状态信息在远程桌面会话中的显示 |
US20140122998A1 (en) * | 2012-10-30 | 2014-05-01 | Samsung Electronics Co., Ltd. | Object based server page reception in electronic device |
WO2014145921A1 (en) * | 2013-03-15 | 2014-09-18 | Activevideo Networks, Inc. | A multiple-mode system and method for providing user selectable video content |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5424785A (en) * | 1994-03-22 | 1995-06-13 | National Captioning Institute | System for encoding and displaying captions for television programs |
US20030011627A1 (en) | 1999-11-08 | 2003-01-16 | Thomas Yager | Method and system for providing a multimedia presentation |
US5970233A (en) * | 1996-05-03 | 1999-10-19 | Intel Corporation | Multiple codecs for video encoding format compatibility |
WO2001031497A1 (en) * | 1999-10-22 | 2001-05-03 | Activesky, Inc. | An object oriented video system |
KR100654601B1 (ko) * | 2005-10-06 | 2006-12-08 | 주식회사 휴맥스 | 통합 코덱 장치 및 방법 |
FR2913164B1 (fr) | 2007-02-27 | 2009-04-17 | Sagem Comm | Procede de diffusion de sequences de donnees audio et video par un serveur |
US8149917B2 (en) | 2008-02-01 | 2012-04-03 | Activevideo Networks, Inc. | Transition creation for encoded video in the transform domain |
FR2940736B1 (fr) | 2008-12-30 | 2011-04-08 | Sagem Comm | Systeme et procede de codage video |
KR101643608B1 (ko) | 2009-02-13 | 2016-07-29 | 삼성전자주식회사 | 리모트 ui 서비스 제공 방법 및 장치 |
US9372737B2 (en) * | 2012-02-08 | 2016-06-21 | Vmware, Inc. | Video stream management for remote graphical user interfaces |
US9442895B1 (en) * | 2012-12-20 | 2016-09-13 | Lucid Software, Inc. | Web-based publishing layout specification |
US9961127B2 (en) * | 2013-03-15 | 2018-05-01 | Foresee Results, Inc. | System and method for capturing interaction data relating to a host application |
CN104346156B (zh) * | 2013-08-05 | 2018-01-26 | 北大方正集团有限公司 | 显示文本块、文本块处理的方法和装置 |
-
2014
- 2014-09-25 CN CN201480046301.6A patent/CN105637886B/zh active Active
- 2014-09-25 US US15/514,372 patent/US11537777B2/en active Active
- 2014-09-25 WO PCT/EP2014/070448 patent/WO2016045729A1/en active Application Filing
- 2014-09-25 EP EP14777552.2A patent/EP3050302B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262748A (zh) * | 1996-04-04 | 2000-08-09 | 安尼索福特公司 | 获取、处理和发送包含在一个图形用户界面窗口中的数据的装置和方法 |
US7310769B1 (en) * | 2003-03-12 | 2007-12-18 | Adobe Systems Incorporated | Text encoding using dummy font |
US20070006065A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Conditional event timing for interactive multimedia presentations |
CN101946493A (zh) * | 2008-02-20 | 2011-01-12 | Nabto公司 | 用于提供连接到因特网的客户端之间的连接性的方法和系统 |
CN103748553A (zh) * | 2011-06-28 | 2014-04-23 | 惠普发展公司,有限责任合伙企业 | 客户端的操作状态信息在远程桌面会话中的显示 |
US20140122998A1 (en) * | 2012-10-30 | 2014-05-01 | Samsung Electronics Co., Ltd. | Object based server page reception in electronic device |
WO2014145921A1 (en) * | 2013-03-15 | 2014-09-18 | Activevideo Networks, Inc. | A multiple-mode system and method for providing user selectable video content |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109074273A (zh) * | 2016-07-25 | 2018-12-21 | 惠普发展公司,有限责任合伙企业 | 自动虚拟输入设备 |
CN109074273B (zh) * | 2016-07-25 | 2022-03-29 | 惠普发展公司,有限责任合伙企业 | 自动虚拟输入设备 |
WO2018090673A1 (zh) * | 2016-11-15 | 2018-05-24 | 同方威视技术股份有限公司 | 用于对安检数据进行操作的方法、服务器和系统 |
US10430669B2 (en) | 2016-11-15 | 2019-10-01 | Nuctech Company Limited | Methods, servers and systems for operating on security inspection data |
CN107479897A (zh) * | 2017-08-23 | 2017-12-15 | 珠海安联锐视科技股份有限公司 | 一种在视频监控设备上使用的矢量图形界面缩放方法 |
CN111149346B (zh) * | 2017-09-28 | 2021-07-13 | 杜比实验室特许公司 | 用于编码和解码高动态范围视频的方法、装置和介质 |
CN111149346A (zh) * | 2017-09-28 | 2020-05-12 | 杜比实验室特许公司 | 帧速率转换元数据 |
CN112068908B (zh) * | 2017-10-23 | 2024-01-30 | 华为技术有限公司 | 图形处理方法及相关装置和设备 |
CN112068908A (zh) * | 2017-10-23 | 2020-12-11 | 华为技术有限公司 | 图形处理方法及相关装置和设备 |
US11010859B2 (en) | 2018-09-21 | 2021-05-18 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Display resource scheduling method and device for embedded system |
CN109324903B (zh) * | 2018-09-21 | 2021-03-02 | 深圳前海达闼云端智能科技有限公司 | 用于嵌入式系统的显示资源调度方法及装置 |
CN109324903A (zh) * | 2018-09-21 | 2019-02-12 | 深圳前海达闼云端智能科技有限公司 | 用于嵌入式系统的显示资源调度方法及装置 |
CN113938705A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 用于视频编解码的方法、装置、服务器、终端设备及系统 |
CN113938705B (zh) * | 2020-07-13 | 2024-08-27 | 阿里巴巴集团控股有限公司 | 用于视频编解码的方法、装置、服务器、终端设备及系统 |
CN113486183A (zh) * | 2021-09-06 | 2021-10-08 | 平安科技(深圳)有限公司 | 基于支持向量机的文本分类方法、装置、电子设备及介质 |
CN113486183B (zh) * | 2021-09-06 | 2021-11-30 | 平安科技(深圳)有限公司 | 基于支持向量机的文本分类方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20170270077A1 (en) | 2017-09-21 |
WO2016045729A1 (en) | 2016-03-31 |
US11537777B2 (en) | 2022-12-27 |
EP3050302A1 (en) | 2016-08-03 |
EP3050302B1 (en) | 2018-01-03 |
CN105637886B (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105637886B (zh) | 用于向客户端提供图形用户界面的服务器,以及客户端 | |
US12034987B2 (en) | Systems and methods of orchestrated networked application services | |
Lamberti et al. | A streaming-based solution for remote visualization of 3D graphics on mobile devices | |
JP5080554B2 (ja) | 代替的グラフィック・セットの効率的な符号化 | |
US20090322784A1 (en) | System and method for virtual 3d graphics acceleration and streaming multiple different video streams | |
US10979785B2 (en) | Media playback apparatus and method for synchronously reproducing video and audio on a web browser | |
US9426476B2 (en) | Video stream | |
US8799405B2 (en) | System and method for efficiently streaming digital video | |
KR101482795B1 (ko) | 레이저 콘텐츠 송수신 방법 및 장치 | |
US20140344469A1 (en) | Method of in-application encoding for decreased latency application streaming | |
WO2013140334A2 (en) | Method and system for streaming video | |
WO2009108345A2 (en) | System and method for low bandwidth display information transport | |
US10841664B2 (en) | Systems and methods for virtual set-top support of an HTML client | |
KR101942269B1 (ko) | 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법 | |
JP6453345B2 (ja) | テレビ装置上でウェブ・コンテンツをリモート・レンダリングするための方法、システムおよび媒体 | |
KR102385338B1 (ko) | 가상 디바이스, 렌더링 디바이스, WoT 디바이스 및 웹 기반 콘텐츠 처리 시스템 | |
US12120400B2 (en) | Systems and methods of alternative networked application services | |
CN102770827A (zh) | 用于在终端的屏幕上显示多媒体内容的方法 | |
CN112995134B (zh) | 一种三维视频流媒体传输方法与可视化方法 | |
CN117370696A (zh) | 小程序页面的加载方法、装置、电子设备及存储介质 | |
US20210154576A1 (en) | Vector graphics-based live streaming of video games | |
Tamm et al. | Plugin free remote visualization in the browser | |
WO2022125401A1 (en) | Systems and methods of alternative networked application services | |
Li et al. | iScreen: A Merged Screen of Local System with Remote Applications in a Mobile Cloud Environment | |
Rodríguez‐Silva et al. | Improving the virtualization of rich applications by combining VNC and streaming protocols at the hypervisor layer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |