CN115190345B - 用于显示媒体的协调控制方法、客户端设备及存储介质 - Google Patents
用于显示媒体的协调控制方法、客户端设备及存储介质 Download PDFInfo
- Publication number
- CN115190345B CN115190345B CN202210806178.XA CN202210806178A CN115190345B CN 115190345 B CN115190345 B CN 115190345B CN 202210806178 A CN202210806178 A CN 202210806178A CN 115190345 B CN115190345 B CN 115190345B
- Authority
- CN
- China
- Prior art keywords
- image
- image frame
- modified
- client
- instructions
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 66
- 230000004044 response Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 30
- 230000004048 modification Effects 0.000 description 49
- 238000012986 modification Methods 0.000 description 49
- 230000000875 corresponding effect Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 9
- 239000007787 solid Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- RZSCFTDHFNHMOR-UHFFFAOYSA-N n-(2,4-difluorophenyl)-2-[3-(trifluoromethyl)phenoxy]pyridine-3-carboxamide;1,1-dimethyl-3-(4-propan-2-ylphenyl)urea Chemical compound CC(C)C1=CC=C(NC(=O)N(C)C)C=C1.FC1=CC(F)=CC=C1NC(=O)C1=CC=CN=C1OC1=CC=CC(C(F)(F)F)=C1 RZSCFTDHFNHMOR-UHFFFAOYSA-N 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000844 transformation 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/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
- G06F3/1462—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/0085—Time domain based watermarking, e.g. watermarks spread over several images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- 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/53—Network services using third party service providers
-
- 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/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- 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/75—Indicating network or usage conditions on the user display
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4122—Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
-
- 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
-
- 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/44008—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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/654—Transmission by server directed to the client
- H04N21/6543—Transmission by server directed to the client for forcing some client operations, e.g. recording
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8358—Generation of protective data, e.g. certificates involving watermark
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2358/00—Arrangements for display data security
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/025—LAN communication management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/24—Keyboard-Video-Mouse [KVM] switch
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
Abstract
本公开涉及用于显示媒体的协调控制。客户端设备从服务器接收第一图像帧,存储第一图像帧并生成对应于第一图像帧的第一经修改的图像。客户端向远程设备传输所生成的第一经修改的图像。远程设备使用第一经修改的图像来确定用于显示第二图像帧的指令。客户端从远程设备接收用于显示第二图像帧的指令。响应于接收该指令,客户端设备在通信地耦接到客户端设备的显示器上显示第二图像帧。
Description
本申请是申请日为2020年6月5日、于2022年2月17日进入中国国家阶段的申请号为202080058149.9、发明名称为“用于显示媒体的协调控制”的中国发明专利申请的分案申请。
技术领域
本发明总体上涉及由客户端***体的显示,并且更特别地,涉及由服务器控制由客户端显示的媒体。
背景技术
向客户端设备提供各种远程应用的应用服务器已经普遍使用了几十年。在宽带接入互联网出现之前,这些服务器主要由有线电视提供商通过有线TV基础设施在专用网络上提供。随着宽带内容服务的到来,一些应用服务现在“在云中”托管在服务器***上,为客户端设备(诸如个人电脑笔记本电脑、平板电脑和移动电话)提供服务。
应用服务器在远离客户端设备的位置处的服务器上执行应用,并将所得到的输出(例如,屏幕图像、图像序列和/或视频流)发送到用户与其交互的客户端设备。对于用户来说,应用服务看起来在他们前面的设备上运行,而实际上,应用服务是远程执行的。
迄今为止,这些应用服务器服务依赖于与客户端设备和远程服务器的一对一关系。服务的任何组合通常通过在客户端连接到的应用服务器处合并服务的过程来管理。
发明内容
随着基于互联网的媒体服务的演进,需要允许能够显示视频图像的几乎任何类型的客户端设备连接到多个应用服务器并访问多个应用。
为了实现以上内容,需要模拟专用计算机硬件、操作***、专有内容保护方案、应用以及传统设备或未被设计成以所需速度、计算能力或所需内存资源处理任务的设备上的其他计算资源的功能。为了解决这个需求,计算机***仿真器通过在通用且通常较低功率的计算机平台上复制它们的功能,使得高级且通常专用的计算机平台的功能可用。正在开发的计算机***的各种组件也可以被仿真,以评估它们在通用或不太稳健的***或设备环境中的行为。
在不太稳健的环境中模仿(或虚拟化)某些计算资源的功能的这种需求仍然是持续的问题。术语“仿真”、“虚拟化”和“远程处理”在本文中可互换使用。
虚拟化的一种形式(有时称为“远程”虚拟化)涉及两个计算环境的交互;这两个环境中的一个是主机服务器环境,其中驻留了要虚拟化的实际计算资源,另一个是从其中利用这些资源就是的远程客户机或客户端设备环境。在这种情况下,人们可以说“虚拟”资源驻留在客户端设备上,而实际资源驻留在主机环境中(尽管主机也可能包括附加虚拟资源,诸如虚拟机)。
商业上可获得的远程桌面虚拟化软件使用户能够从客户端设备(诸如智能手机或膝上型电脑)或从远程位置(诸如酒店房间)远程控制诸如其在家中或办公室的台式计算机上运行的应用。这种软件使这种远程用户能够将像击键或屏幕触摸事件的事件输入到智能手机中,并在该设备上看到这种交互的结果,而正在被控制的应用实际上是在家中或办公室处的主机上执行的。因此,远程虚拟化使用户能够从远程位置访问由于各种原因在远程位置不可用的计算资源。然而,这些解决方案要么需要服务器和客户端之间的高带宽和低延迟连接(诸如局域网或局域网LAN上可用的那样),要么不支持现代媒体应用的更复杂和沉浸式的交互性。
需要远程管理客户端上显示的内容的***。但是,由于图形数据的大小,获得用于媒体递送管理的客户端信息会消耗带宽。
本文描述的实施例涉及用于利用物理客户端的图形状态更新(例如,实时地)虚拟客户端而不需要从物理客户端向虚拟客户端发送媒体内容所需的高水平带宽的改进***和方法。
根据一些实施例,提供了一种在客户端设备处执行的用于远程处理媒体资产的方法。该方法包括在客户端设备处从服务器接收第一图像帧并存储该第一图像帧。该方法还包括生成对应于第一图像帧的第一经修改的图像,并将所生成的第一经修改的图像传输到远程设备。该方法还包括从远程设备接收用于显示第二图像帧的指令。远程设备使用第一经修改的图像来确定用于显示第二图像帧的指令。该方法包括,响应于接收到该指令,在通信耦接到客户端设备的显示器上显示第二图像帧。
根据一些实施例,该方法还包括从远程设备接收第二图像帧。
在一些实施例中,用于显示第二图像帧的指令是用于显示第一图像帧的未修改版本的指令。在一些实施例中,第一经修改的图像包括对应于第一图像帧的QR码。在一些实施例中,第一经修改的图像不在远程设备处***纵。在一些实施例中,第一经修改的图像不包括图像帧的图像内容。在一些实施例中,所接收的指令包括第一经修改的图像。在一些实施例中,用于显示第二图像帧的指令是用于显示第一图像帧的修改版本的指令。在一些实施例中,第一经修改的图像包括与第一图像帧重叠的第一水印。在一些实施例中,生成第一经修改的图像包括将第一图像帧的至少一部分转换成经编码的数据集。在一些实施例中,第一经修改的图像包括第一图像帧的第一感知散列。在一些实施例中,在远程设备处操纵第一经修改的图像,并且该方法还包括从远程设备接收所操纵的第一经修改的图像,其中第二图像帧是所操纵的第一经修改的图像。在一些实施例中,用于显示第二图像帧的所接收的指令包括第二图像帧,并且第二图像帧包括在远程设备处用于第一经修改的图像的第二水印。
在一些实施例中,该方法还包括:从服务器接收包括第一图像帧和至少一个附加帧的图像帧序列,第一图像帧和附加帧对应于图像的集群;存储附加图像帧第三图像帧;生成对应于附加图像帧的第二经修改的图像;生成包括对应于第一图像帧的第一经修改的图像和对应于附加图像帧的第二经修改的图像的经修改的图像序列;以及向远程设备传输经修改的图像序列。用于显示第二图像帧的指令包括用于显示图像的集群的指令。
在一些实施例中,图像的集群中的每个经修改的图像包括对应于图像的修改版本序列的群组标识符。在一些实施例中,该方法还包括向远程设备传输用于图像的修改版本序列的定时信息。在一些实施例中,第一经修改的图像包括对应于第一图像帧的QR码。
在一些实施例中,服务器包括内容管理设备。在一些实施例中,客户端设备被配置成利用基于服务器的计算环境的处理资源。
根据一些实施例,提供了一种在虚拟计算设备处执行的用于远程处理媒体流的方法。该方法包括在虚拟计算设备处从客户端设备接收已经由客户端对其应用了对应于第一图像帧的第一修改的第一图像。该方法包括:基于已经由客户端对其应用了第一修改的所接收的第一图像生成第二图像帧,包括从所接收的第一图像中移除由客户端应用的修改,在从所接收的第一图像中移除由客户端应用的修改之后,操纵所接收的第一图像,以及在操纵所接收的第一图像之后,对第一图像应用第二修改以生成第二图像帧。该方法包括向客户端设备传输第二图像帧以在客户端设备处进行显示。
根据一些实施例,提供了一种在虚拟计算设备处执行的用于远程处理媒体流的方法。该方法包括在虚拟计算设备处从客户端设备接收已经由客户端对其应用了对应了第一图像帧的第一修改的第一图像。该方法包括:基于已经由客户端对其应用了第一修改的所接收的第一图像生成用于显示第二图像帧的指令,包括从所接收的第一图像中移除由客户端应用的修改,在从所接收的第一图像中移除由客户端应用的修改之后,确定操纵所接收的第一图像的指令,以及在确定操纵所接收的第一图像的指令之后,对第一图像应用第二修改以生成第二图像帧。用于显示第二图像帧的指令包括第二图像帧。该方法包括向客户端设备传输用于在客户端设备处显示第二图像帧的指令。
在一些实施例中,提供了一种存储由电子设备的一个或多个处理器执行的一个或多个程序的非暂时性计算机可读存储介质。一个或多个程序包括用于执行上述方法中的任何一个的指令。
在一些实施例中,提供了电子设备(例如,客户端设备和/或服务器***)。客户端设备包括一个或多个处理器和存储由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行上述方法中的任何一个的指令。
将认识到的是,在各种实施例中,针对客户端描述的操作可以应用于服务器,反之亦然。
附图说明
图1是示出根据一些实施例的内容端递送***的顶层图。
图2是示出根据一些实施例的支持需要通过单个IP地址的连接性的第三方应用的内容递送***的顶层图。
图3是示出根据一些实施例的在消费平面和控制平面之间传递的经修改的图像的顶层图。
图4A-4C示出了根据一些实施例利用水印修改图像帧。
图5A-5B示出了根据一些实施例的利用经编码的数据集修改图像。
图6是根据一些实施例的容器、平台和客户端设备的模块的框图。
图7是根据一些实施例的服务器***的框图。
图8是根据一些实施例的客户端设备的框图。
图9A-9C是描述根据一些实施例的由客户端设备执行的方法的流程图。
图10是向虚拟机发送经包装的图像的客户端设备的框图。
图11是从虚拟机接收散列的客户端设备的框图。
具体实施方式
本文描述的各种实施例使得多个不同客户端设备的用户能够与在远程服务器环境中运行的视频和图形丰富的交互应用进行交互。所得到的用户体验本质上等同于在本地客户端设备上运行这些应用,即使在这些设备需要访问远程服务器资源,诸如各种图形渲染和其他资源。
随着互联网上交互式和视频服务的市场的持续增长,一些服务提供商要求特定会话流过单个IP地址的连接性。存在这些变化的许多原因,并且其中大部分围绕服务提供商的各个服务器处需要更好的安全性。
本文描述的实施例描述了用于使得虚拟客户端虚拟机能够在客户端设备从内容服务器获得图像之后操纵由VCVM从客户端设备获得的图像的技术。通常,VCVM经由客户端设备获得图像,而不是直接从内容服务器获得图像(例如,因为操作内容服务器的内容提供商限制对内容服务器的访问,使得只有客户端设备能够访问将由客户端设备接收的数据)。客户端在向VCVM提供图像之前操纵图像,以提供用于图像的标识信息(例如,使得客户端和VCVM能够使用标识信息来参考图像,而不需要发送完整图像)。协调器访问VCVM和客户端设备处的控件,使得协调器可以控制和/或指令VCVM布置和操纵要在客户端设备处显示的图像。协调器基于在客户端设备处做出的请求控制来自不同内容服务器的图像的布置。例如,VCVM运行与多个内容提供商相关联的多个第三方应用,并且协调器控制来自多个内容提供商的多个图像的操纵和显示设置。例如,来自不同内容提供商的图像可以在客户端设备处的同一显示器上提供,同时协调器布置图像的显示。
例如,从客户端向协调器提供图像使得能够生成向用户显示旋转转盘的图形表示的交互式视频界面。另外,用户可以例如使用正在执行客户端应用的设备的用户输入设备(例如,遥控器)上的控件来旋转“虚拟”转盘。在用户旋转转盘时,每个电影海报的图像出现在转盘的表面上,其中在图像进入视野并扫过转盘的周边时图像适当扭曲。为了实现这种效果,远程(主)应用接收多个(例如,八个)电影海报的平面图像,并扭曲每个显示的图像,以便其以传达虚拟转盘的旋转的视角出现。在这个示例中,图像不是作为摘要从客户端发送到服务器,而是包括像的内容。为了使主应用能够操纵图像并将图像发送到客户端应用,在由主应用操纵一个或多个图像之后,由客户端应用提供包含图像标识信息的数据。例如,客户端生成数据来标识图像,然后将该图像(和标识数据)转发给VCVM处的主应用。VCVM可以在维护标识数据的同时操纵图像,并将所操纵的图像连同标识数据一起发送回到客户端设备。使得客户端设备能够基于标识数据标识操纵图像,并在客户端设备处显示所操纵的图像。
在一些实施例中,远程(主)应用将标题、评级或其他信息覆盖在图像(诸如用于将由客户端设备回放的媒体的封面艺术图像)上。应用放大或缩小图像(例如,代替OpenGL(例如,因为由应用使用的缩放算法比OpenGL的缩放算法产生更好的结果))。这方面的示例是这样的应用,即该应用下载高分辨率封面艺术,并使用OpenGL中不可用的过滤器(例如,Lanczos重采样)缩小封面,以在转盘中显示封面艺术。
图1是示出根据一些实施例的内容端递送***的顶层图。内容递送***的组件在三个域内操作。域1在第三方数据中心处与一个或多个第三方(例如,一个或多个内容提供商)相关联。在一些实施例中,第三方应用101部署在第三方数据中心(域1)中,由第三方提供并连接106到第三方应用专用后端104。第三方特定应用后端104执行与计费、用户认证、内容访问和/或数字权限管理相关联的操作。第三方数据中心包括一个或多个服务器,该一个或多个服务器包括针对域1描述的模块、网络和存储元件。在一些实施例中,第三方应用101被配置成通过将用户界面图形与媒体资产组合来生成媒体流。在一些实施例中,应用101在第三方数据中心的应用服务器700(图7)上的虚拟客户端虚拟机103(VCVM)内执行。在一些实施例中,VCVM 103包括智能图形与媒体代理102(SGMP)。在一些实施例中,媒体资产140(例如,图像、音频和/或视频资产)由诸如第三方CDN服务器105的媒体源(例如,存储在与应用101在其上执行的一个或多个服务器分离的一个或多个服务器上的媒体)提供(例如,经由连接107)给VCVM 103。因为第三方应用101被配置成生成包括从一个或多个内容源接收的用户界面图形和媒体内容(例如,视频和/或图像帧)的媒体流,所以图1中示出的***不需要中间拼接器(例如,诸如域2中的有线电视***头端)来将来自应用101的图形与视频混合。此外,在一些实施例中,不需要通过应用的媒体回放栈传递视频。
在一些实施例中,在VCVM 103上执行的第三方应用101包括与媒体内容提供商相关联的应用。例如,客户端设备130(例如,瘦客户端设备)的用户可以从第一媒体内容提供商请求内容。如图1所示,与第三方CDN 105相关联的第一媒体提供商向客户端设备发送(例如,通过连接件121)媒体资产。例如,CDN 105将一个或多个图像帧和/或视频流发送到客户端130(例如,虚拟客户端(从属))。在一些实施例中,客户端130将客户端设备的图形状态发送(例如,使用诸如OpenGL的API)到VCVM 103。视频流的图形状态包括例如像素信息(例如,来自客户端的openGL)、定时信息(例如,基于CDN 105和客户端130之间的等待时间)、回放信息(例如,基于客户端处的用户输入/控制)和/或所修改的流/图像帧。以这种方式,VCVM103关于客户端130处的图形状态被更新(例如,实时地和/或周期性地),并且在一些实施例中,可以将客户端的当前图形状态通信传送给协调器110。
域2与运营商数据中心相关联。例如,运营商数据中心可以与有线电视***提供商相关联。在一些实施例中,运营商数据中心与不同于与第三方数据中心相关联的服务提供商的服务提供商相关联。在一些实施例中,安置在运营商网络(域2)中的协调器110被配置成(1)管理客户端会话,(2)控制由应用101处理的媒体的回放(例如,开始、结束、暂停和/或恢复),(3)执行图像处理(例如,操纵图像和/或生成用于在客户端设备处显示图像帧的指令),(4)向SGMP 102发信号通知带宽设置,和/或(5)向SGMP 102提供条件访问和数字版权管理(DRM)相关的信息。在一些实施例中,协调器110调用VCVM 103的实例(例如,响应于客户端设备(例如,瘦客户端130)上的输入)。在一些实施例中,协调器110经由连接件112从对应于控制(例如,回放控制)的客户端设备130的用户接收输入,并且经由连接件111将该控制转发到VCVM。在一些实施例中,协调器处理控制和到VCVM的命令,以便控制由VCVM 103输出的图形。
域3与“最后一英里”相关联,指的是与一个或多个用户相关联的一个或多个客户端设备。例如,一个或多个客户端设备130包括STB(例如,包括图形处理单元(GPU)的STB或传统STB)、互联网机顶盒、智能TV、便携式电子设备(例如,平板电脑或智能手机)和/或物联网(IOT)设备。因为第三方应用101在域1中的VCVM 103的实例上执行,所以客户端设备所需的计算能力(例如,CPU能力)与应用无关。因此,客户端设备可以是瘦客户端。
在一些实施例中,客户端设备130不运行多个应用,每个应用与不同的内容提供商相关联,以便访问来自内容提供商中的每一个的媒体内容。例如,单个(例如,通用)应用(例如,与运营商数据中心或另一提供商相关联)在客户端设备上运行,并且客户端设备经由连接件108将客户端设备的图形状态通信传送给VCVM 103,使得VCVM 103可以执行媒体内容的处理(例如,将用户界面图形与视频组合)。
在一些实施例中,由第三方应用101从第三方CDN 105检索的图像资产可以遵循等同于音频/视频资产的路径的路径。在一些实施例中,(例如,作为优化的问题和/或对于应用或SGMP需要图像数据的那些图像),应用101直接从CDN 105接收图像资产,如图1中的107所示。在一些实施例中,让客户端130从CDN 105获取图像并将摘要传递回应用101或者让应用101直接从CDN 105获取图像的决定在SGMP 102的控制下。对于熟练的读者来说,可能清楚的是,优选的是在图像被发送到应用101之前,在客户端130上具有可用的图像资产。在一些实施例中,图像可能首先必须从VCVM 130转发到客户端130,或者客户端130在客户端可以渲染图像之前从CDN 105获得图像。
图2描绘了示出根据一些实施例的支持需要通过单个IP地址的连接性的第三方应用的内容递送***的顶层图。例如,第三方应用101(例如,应用服务器)和相关联的第三方后端104和CDN 105需要来自单个网络节点(例如,客户端130)的会话相关通信。出于各种原因,可以由第三方强制执行这个要求。例如,服务是付费订阅服务,一次只允许用于所述订阅的一个会话(例如,在一个客户端上运行)是活动的。在这种情况下,客户端130使用客户端中的应用代理(例如,应用代理826,图8)来充当应用101、后端104和CDN 105之间的所有网络连接性的代理。在一些实施例中,后端控制(例如,经由客户端130的用户认证和/或用于内容递送的权限管理)和CDN媒体资产121通过客户端被路由(而在其他实施例中,媒体资产被直接发送到VCVM,图1示出)。例如,在图1中,来自CDN 105的后端控制106和/或媒体资产的一部分(经由连接件107)被直接发送到VCVM 103。对于媒体资产121(例如,音频/视频和图像资产),客户端代表SGMP 102执行与由图1所描绘的实施例中相同的功能。
在一些实施例中,在SGMP的控制下,媒体资产(例如,图像帧)被从客户端130转发(例如,未修改)到应用服务器700。在一些实施例中,对应于媒体的数据(例如,经修改的图像帧)从客户端130传输到应用服务器700(例如,如关于图7所述)。在一些实施例中,后端控制通过客户端130被路由到应用服务器700(例如,未修改),如203和204所指示那样。
在一些实施例中,参考图1和图2描述的***被配置为执行用于控制由客户端设备130显示从CDN 105接收的图像的操作,如下文进一步描述的那样。
图像资产140通常经由网络协议(诸如HTTPS)作为所编码的图像(例如JPEG、PNG或WebP)到达应用的入口点、被解码、操作(例如,为了缩小或图像变形的目的而被转换/过滤),并作为原始纹理材料到达出口API(例如OpenGL)。简单的二进制指纹无法通过这些步骤。因此,将所编码的图像与原始纹理配对(其中纹理是主应用已经操纵图像后的输出)不像通过应用跟随切片数据那样简单。
在主应用101的入口点和出口点处对图像进行配对使得客户端130能够根据其已经具有的所编码的图像(例如,从媒体资产140获得的图像资产)制作纹理(例如,代替应用101将服务器侧纹理编码为新图像,将其传输到客户端130,然后指令客户端根据这个新图像制作纹理)。不必将图像发送回客户端有几个优点,包括节省带宽、防止由于有损重新编码图像而导致的图像质量劣化、防止应用不期望的编码/传输延迟(例如,将图像从CPU传送到GPU通常是开销相对较低的过程)、以及降低服务器负载,因为它不必将纹理编码到所编码的图像。
如果主(服务器)应用101不修改超出可以由客户端130复制的内容的图像,诸如仿射变换或特定的过滤器,则***的带宽简档可以通过不将图像数据(像素)从客户端转发到服务器而被进一步减少,而是仅仅将(所编码的)图像的显著属性的修改版本(例如QR码)从客户端发送到服务器。在这种情况下,在入口处看到的图像可以与在出口处看到的纹理相关,并且该操作可以应用于图像的客户端侧,以产生相同或等效的纹理材料。由于在这种情况下不需要原始图像的像素材料,因此无需将图像从客户端转发到服务器。
然而,如果主应用101可以以这样的方式修改或使用图像的像素,即,其不能在客户端侧复制,则服务器侧(主)应用101接收原始图像、或者至少足够好的替代物(诸如,在较高量化水平下的重新编码的图像),并且如果在出口处的纹理不能与在入口上的相应图像相关,则应用101编码出口纹理并将它们发送到客户端130。
在一些实施例中,客户端设备130将媒体资产(例如,图像帧)转发给VCVM 103。在一些实施例中,客户端设备存储媒体资产(例如,在图像存储模块833中,图8)。在一些实施例中,客户端设备130将修改(例如,水印)应用于媒体资产,并且将所修改的媒体资产发送到VCVM 103。在一些实施例中,客户端设备存储所修改的媒体资产。VCVM 103跟踪媒体资产并确定显示指令(例如,基于用户输入108)。
运行第三方应用101的VCVM 103生成与媒体资产相关的显示指令(例如,改变媒体资产的大小的指令、改变客户端设备103显示媒体资产的位置的指令、以及将图形用户界面元素应用于媒体资产的指令等)。在一些实施例中,VCVM 103将所生成的显示指令传输到客户端设备130。在一些实施例中,VCVM 103将对应于显示指令的媒体资产(例如,应用有水印)传输回客户端。客户端设备130接收媒体资产和显示指令,并将显示指令应用于媒体资产。在一些实施例中,客户端设备130显示媒体资产(未修改)。
在一些实施例中,VCVM 103操纵(例如,修改)媒体资产,并将所操纵的媒体资产发送到客户端设备130。在一些实施例中,客户端设备130接收所操纵的媒体资产和/或显示指令,并将显示指令应用于所操纵的媒体资产。在一些实施例中,客户端设备130根据显示指令显示所操纵的媒体资产。
在一些实施例中,客户端设备130和/或在应用服务器700上执行的VCVM 103确定图像资产是否将在VCVM 103处***纵。在一些实施例中(例如,基于图像资产是否将在VCVM103处***纵的确定),客户端设备130(或VCVM 103)选择要应用于图像资产的修改类型。例如,(例如,根据图像资产将不***纵的确定),客户端设备130存储图像资产并修改图像资产(例如,通过移除图像内容并将QR码应用于空白图像帧)以标识图像。在VCVM 103处应用的任何另外的指令都与QR码相关联。VCVM 103将指令和QR码发送回到客户端。使得客户端设备能够基于QR码标识(例如,并且检索)所存储的图像资产,并将所接收的指令应用于所存储的图像资产。在一些实施例中,VCVM 103不操纵图像资产,并且向客户端设备发送指令,以便客户端设备操纵图像资产。在一些实施例中,不执行图像资产是否将在VCVM 103处***纵的确定。例如,客户端设备130应用修改,并将经修改的图像资产(具有图像内容)发送到VCVM,而不管该图像随后是否将在VCVM处***纵。
在一些实施例中,(例如,根据图像资产将在VCVM 103处***纵的确定),客户端设备130应用修改(例如,经受图像的操纵的水印,诸如感知散列)。客户端设备130存储图像资产(例如,应用有修改)。客户端设备130将经修改的图像资产发送到VCVM 103。VCVM 103操纵经修改的图像资产,并为所操纵的图像资产生成显示指令。VCVM 103将显示指令和所操纵的图像资产传输到客户端设备。客户端设备标识对应于所接收的操纵图像的所存储的图像资产(例如,基于所应用的水印)。客户端设备执行用于所操纵的图像的所接收的指令。
图3是示出具有多个应用服务器的内容递送***的顶层图。在一些实施例中,在第一机器(例如,VCVM 103)上运行的第一程序(例如,第三方应用101-3)与在第二机器(例如,客户端设备130)上运行的第二程序(例如,客户端应用)的某些内部进行交互。这个过程(在本文中称为“远程处理”)是使用图形API(例如,OpenGL)和/或媒体回放API(例如,OpenMAX)将第一程序的状态从在第一机器(例如,VCVM 103或互联网上某处的服务器(也称为运行在“云中”)上运行的第一应用(例如,应用101-3)传送到第二机器(例如,客户端)上的第二程序。
在一些实施例中,本文描述的远程处理***实现了网络域之间控制信息与数据信息的有益分离。例如,控制平面(1)、(2)和(3)包括VCVM的实例。每个VCVM包括第三方应用101-1、102-2和101-3。在一些实施例中,VCVM的每个实例对应于多个客户端设备。例如,同一VCVM可以代表多个客户端设备(例如机顶盒)远程运行第三方应用101-3。
如参考图1所述,控制平面(4)包括协调器110。信息还可以在控制平面中的每一个之间交换。应当理解的是,可以有运行VCVM的附加实例的附加控制平面。进一步,存在在控制平面和代表客户端侧平面的消费平面(6)之间交换的数据。例如,经修改的图像302和显示指令304在消费平面(6)和控制平面(3)之间交换。进一步,消费平面(6)从数据平面(5)接收媒体资产140,其包括来自内容提供商的内容(例如,媒体资产(1)、(2)和(3))。
例如,第三方应用101-1、101-2和101-3各自与不同的应用服务器相关联(例如,运行在不同的应用服务器上)。如参考图2所解释的那样,媒体资产140(例如,图像帧)经由客户端130被提供给应用服务器。如消费平面(6)所示,客户端130执行客户端应用。例如,第三方应用101-3对应于控制在客户端130上运行的相对应的客户端应用的主应用。在一些实施例中,每个客户端130运行客户端应用的不同实例。在一些实施例中,客户端130是瘦客户端。在一些实施例中,在接收媒体资产140之后,客户端设备130修改所接收的媒体资产。例如,客户端设备130将水印应用于图像帧。所修改的图像302然后从客户端130传输到第三方应用101-3(例如,主应用)。如图1和图2所示,第三方应用101-3在VCVM 103上运行。第三方应用101-3确定与经修改的图像302相关的指令,并将指令304传输到客户端130。指令的处理由主应用101-3执行,并且指令304被转发到客户端130。
使得客户端能够经由第三方CDN检索图像帧(例如,媒体资产140),并转发对应于所检索的图像帧的经修改的图像302,使得远程服务器(例如,第三方应用101-3)能够执行用于(例如,操纵)图像帧的功能,即使图像资产从CDN直接流到客户端设备130(例如,由于与来自第三方CDN的资产相关的流经单个IP地址的所有连接性)。图像资产从CDN流到客户端设备,而不是直接流到第三方应用,使得CDN仅将图像资产共享给特定的IP地址(与客户端设备相关联)。第三方应用操纵图像(例如,重新确定图像的大小和/或布置图像以便进行显示),使得***不依赖于客户端设备处用于操纵图像的处理能力。这改善了客户端设备的功能,因为处理是远程(由第三方应用)执行的。降低对客户端设备处的处理能力的要求允许在各种客户端设备处提供第三方应用101的服务(例如,生成包括用户界面图形、来自CDN的图像内容和/或来自CDN的视频内容的媒体流)。例如,第三方应用101生成用于在客户端处显示来自CDN的图像的经修改的版本的指令(例如,用于如上所述的旋转转盘呈现,以允许来自第三方应用的用户界面内容和来自CDN的图像的同时呈现,和/或用于控制在客户端处显示来自CDN的图像的定时的目的)。因为客户端从CDN获得图像,并且第三方应用操纵要由客户端设备显示的图像,所以客户端和第三方应用需要具有用于标识图像的公共***。图4A至图4C提供了客户端设备130为了标识图像帧的目的而应用于图像帧的修改的说明性示例。
如图4A至图4C所示,在一些实施例中,客户端设备130通过向图像帧400应用水印来修改图像帧400(例如,修改为经修改的图像302,图3)。例如,图像帧400表示由客户端设备130从CDN 105接收的媒体资产140。在一些实施例中,如图4A所示,图像修改401被应用于图像帧400以创建所修改的图像402。例如,图像修改401(例如,水印)包括施加在图像上的经编码的二进制数据行(或多行)(例如,在图像的头1或2行处)。图5中示出了二进制数据行的更详细的说明。
如图4B所示,在一些实施例中,水印包括QR码405。QR码是针对图像帧生成的(例如,用于标识图像帧),并且嵌入在图像400上以生成经修改的图像406。在一些实施例中,QR码被嵌入以最小化QR码的可见性,使得用户仍然可以标识图像帧的内容。
如图4C所示,在一些实施例中,水印包括针对图像帧生成的QR码407,并且QR码被嵌入到不包含图像内容的图像帧408中。例如,QR码嵌入在空白图像帧中。在一些实施例中,空白图像帧保持未修改的图像帧的帧大小。
在一些实施例中,经修改的图像帧402、406和408保持未修改的图像帧(例如,从第三方CDN 105接收的图像帧)的帧大小。
在一些实施例中,客户端130传输利用图像帧的标签(例如,散列值)经包装的图像帧(例如,未修改的)。在一些实施例中,经修改的图像帧包括经包装的图像和标签。例如,客户端130生成图像帧的散列,并利用未修改的图像帧400包装该散列,以创建传输到服务器的经修改的图像帧。
一类特殊的散列函数是感知散列(pHash)函数,其中图像特征比图像的二进制表示更重要。在一些实施例中,所包装的图像帧包括图像帧的pHash和图像帧(例如,如参考图10所述)。传统散列函数的目的是在数据之间进行区分,其中即使单个改变的位也导致不同的散列值(通常通过某种雪崩效应实现),而感知散列只要图像的特征保持不变就保持不变(例如,基本上与图像的大小和变换无关)。
在一些实施例中,除了经修改的图像帧之外,客户端130还传输与图像帧相关的附加信息。例如,客户端130向服务器传输:唯一标识客户端处的图像帧的标识符、图像帧的宽度和/或高度、与图像帧相关的位深度和/或数据格式(例如,RGB、RGBA、灰度、8位、16位、5-6-5位、调色等)、图像帧(例如,图像帧序列)的数量和/或图像帧的定时信息。
在一些实施例中,为了生成图像操纵指令,服务器生成具有属性中的至少一些的新图像(例如,基于从客户端转发的信息)作为由客户端接收的图像400。在一些实施例中,新图像不包括图像400的实际像素数据。在一些实施例中,新图像不包括诸如在所操纵的图像408中所示的图像400的特征。例如,代替图像的像素数据,修改(例如QR码)被应用于图像帧,其中修改包含来自经修改的图像的唯一标识符(属性号1)。标识符可以具有任何格式,从例如UUID到简单到单个整数(例如32位无符号整数)的标识符,以标识资产。例如,标识符足够小以适合最简单的QR码。在一些实施例中,QR码以这样的维度在固定位置(例如,图像帧的左下角)处渲染,使得其特征经受住预期的量化和变换操作(例如,QR码比特是可辨别的)。
在一些实施例中,水平或垂直细长形状的图像将QR码扩展到多个水平或垂直分区上,这些分区彼此并排呈现,使得QR码随后可以被重建成正方形,而不是将分辨率限制在最小维度。在出口API,我们知道每个纹理必须包含QR码(如果这个QR码不成立,那么***针对错误的场景进行设置),完整的QR码可以从纹理中重建、扫描,并且可以指令客户端使用所标识的图像作为纹理。
在一些实施例中,QR码可能不适合,因为它水平和竖直地需要至少21个像素,并且QR码水平或竖直地分布在分区上。
图5A示出了单个经编码的数据行501的示例。例如,经编码的数据行是单个经编码的数据行。在一些实施例中,单个经编码的数据行嵌入在图像400中。例如,图像402示出了包括单个经编码的数据行501的图像400。在一些实施例中,可以对多行数据进行编码,诸如图5B所示。在图5B中,有两行经编码的数据502。在一些实施例中,多行经编码的数据被嵌入图像400中,以创建图像503。
图6示出了根据一些实施例的网络栈(例如,协议)实施方式。例如,虚拟客户端虚拟机103包括联网栈,包含容器601和平台602,用于与客户端设备130通信。
在一些实施例中,客户端设备130与CDN耦接,使得客户端设备从CDN接收媒体资产(例如,第一图像帧)。在一些实施例中,客户端设备包括用于实施图形API(例如,Open GLES 2)、DRM、传输流(transport stream,TS)解复用器、摘要生成器(例如,用于修改图像帧)、支持与HTTP协议的通信和/或命令的HTTP模块、用于安全数据传输(例如,加密)的SSL/TLS以及BSD套接字(或其他API)。在一些实施例中,客户端设备130从CDN 105请求媒体资产(例如,图像帧)。在一些实施例中,响应于从客户端设备130传输的请求媒体资产的请求,在客户端设备130处从CDN 105接收图像帧。
平台602响应于由容器601发出的命令,向容器601传输第二经修改的图像帧。在一些实施例中,平台602传输对应于客户端流命令的指令。在一些实施例中,平台602确定对应于客户端流命令的指令,并将该指令转发给客户端130。平台602包括TS摘要,用于将经修改的图像帧的格式改变为TS、HTTP代理、SSL/TLS和BSD套接字。平台602从客户端130接收经修改的图像帧。在一些实施例中,通过HTTP PUT命令接收经修改的图像帧。容器601还包括ES解码器、DRM控件、TS解复用器、HTTP、SSL/TLS和BSD套接字。容器601发出命令(例如,HTTPGET命令)以从平台602检索媒体资产。响应于该命令,容器601从平台602接收第二经修改的图像帧。
图7是示出根据一些实施方式的示例***器计算机***700的框图。在一些实施例中,服务器计算机***700是执行虚拟客户端虚拟机103的应用服务器。服务器计算机***700通常包括一个或多个中央处理单元/核心(CPU)702、一个或多个网络接口704、存储器706以及用于互连这些组件的一个或多个通信总线708。
存储器706包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储设备;并且可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。可选地,存储器706包括远离一个或多个CPU702的一个或多个存储设备。存储器706或者可替换地存储器706内的非易失性固态存储设备包括非暂时性计算机可读存储介质。在一些实施方式中,存储器706或存储器706的非暂时性计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·操作***710,该操作***包括用于处理各种基本***服务和用于执行硬件相关任务的程序;
·网络通信模块712,该网络通信模块用于通过一个或多个网络接口704(有线或无线)将服务器计算机***700连接到其他计算设备,该一个或多个网络接口连接到一个或多个网络,诸如互联网、WAN、LAN、PAN、MAN、VPN、对等网络、内容递送网络、ad-hoc连接等;
·一个或多个媒体资产模块714,用于使服务器计算机***700能够执行各种功能,媒体资产模块714包括但不限于:
o内容递送网络模块716,用于检索和/或处理例如从CDN 105接收的媒体内容;
·一个或多个虚拟客户端虚拟机模块718,用于执行VCVM 103;在一些实施方式中,一个或多个虚拟客户端虚拟机模块718包括:
o智能图形和媒体代理720,用于跟踪客户端设备的图形状态和/或处理图形内容(例如,SGMP 720包括上面参考图1描述的SGMP 102);以及o用于在VCVM 103上执行的第三方应用722(例如,应用722包括上述第三方应用101)。
在一些实施方式中,服务器计算机***700包括网络或超文本传输协议(HTTP)服务器、文件传输协议(File Transfer Protocol,FTP)服务器,以及使用公共网关接口(Common Gateway Interface,CGI)脚本、PHP超文本预处理器(PHP Hyper-textPreprocessor,PHP)、活动服务器页面(Active Server Page,ASP)、超文本标记语言(HyperText Markup Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)、Java、JavaScript、异步JavaScript和XML(AJAX)、XHP、Javelin、无线通用资源文件(Universal Resource File,WURFL)等实施的网页和应用。
尽管图7示出了根据一些实施方式的服务器计算机***700,但是图7更多地旨在作为可能存在于一个或多个媒体内容服务器中的各种特征的功能描述,而不是作为本文描述的实施方式的结构示意图。实际上,单独示出的项可以组合,并且某些项可以分离。例如,图7中单独示出的一些项可以在单个服务器上实施,并且单个项可以由一个或多个服务器实施。用于实施服务器计算机***700的服务器的实际数量以及如何在它们之间分配的特征将因实施方式而变化,并且可选地,部分取决于服务器***在高峰使用期间以及平均使用期间处理的数据流量。
图8是示出根据一些实施方式的示例性客户端设备800(例如,图1的客户端设备130)的框图。客户端设备800通常包括一个或多个中央处理单元(CPU,例如,处理器或内核)806、一个或多个网络(或其他通信)接口810、存储器812以及用于互连这些组件的一个或多个通信总线814。通信总线814可选地包括互连和控制***组件之间的通信的电路***(有时称为芯片组)。
在一些实施例中,客户端设备耦接到输出设备805,用于图像输出(例如,图像帧)、视频输出、音频输出和输入设备807。在一些实施方式中,输入设备807包括键盘、遥控器或跟踪垫。可替换地或附加地,客户端设备包括(例如,耦接到)显示器设备。
在一些实施方式中,一个或多个网络接口810包括无线和/或有线接口,用于从其他客户端设备800、服务器计算机***700和/或其他设备或***接收数据和/或向其传输数据。在一些实施方式中,使用各种定制或标准有线协议(例如,通用USB、火线、以太网等)中的任何一种来实现数据通信。
存储器812包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储设备;并且可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。可选地,存储器812可以包括远离CPU 806的一个或多个存储设备。存储器812,或者可代替地,存储器812内的非易失性存储器固态存储设备包括非暂时性计算机可读存储介质。在一些实施方式中,存储器812或存储器812的非暂时性计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·操作***801,该操作***包括用于处理各种基本***服务和用于执行硬件相关任务的程序;
·网络通信模块818,用于经由一个或多个网络接口810(有线或无线)将客户端设备800连接到其他计算设备(例如,客户端设备103、服务器计算机***700和/或其他设备);
·机顶盒服务协作器820,用于分配机顶盒应用代理以与各种VCVM通信;
·窗口管理器模块822,用于在显示器内集成两个不同的应用程序;
·机顶盒应用协作器824,用于接收控制指令并管理一个或多个应用代理实例,
该机顶盒应用协调器具有附加模块,包括但不限于:
o一个或多个应用代理826,用于与第三方应用(例如,应用101)通信(例如,图形状态);
·API模块828,用于管理各种API,包括例如OpenGL和/或OpenMAX;
·图形处理单元(GPU)830,用于渲染图形内容,包括帧缓冲和显示控制;
·修改图像生成器模块832,根据一些实施方式用于生成修改的图像帧;
·图像存储模块833,用于存储原始媒体内容(例如,来自CDN 105),诸如存储原始图像帧;
·输入/输出模块804,包括用于输出视频和/或音频内容(例如,要由与客户端设备800耦接的一个或多个显示器和/或扬声器再现)的输出设备805和/或用于接收用户输入(例如,来自客户端设备800的组件(例如,键盘、鼠标和/或触摸屏)的输入设备807和/或耦接到客户端设备800的控制器(例如,
遥控器))。
图9A至图9C示出了在客户端设备处执行的方法900(901)。例如,用于执行该方法的指令被存储在存储器812中,并且由参考图8描述的客户端设备的处理器806执行。关于方法900描述的一些操作被可选地组合和/或一些操作的顺序被可选地改变。在一些实施例中,客户端设备被配置成利用(902)基于服务器的计算环境的处理资源。例如,处理(例如,图形处理)的一部分可以在远离客户端设备的服务器处执行。例如,客户端设备是瘦客户端。在一些实施例中,客户端设备不包括硬盘驱动器。在一些实施例中,客户端设备包括图形处理单元(GPU)。在一些实施例中,客户端设备包括连接到互联网的机顶盒。例如,客户端设备是与有线电视网络相关联的机顶盒。
在一些实施例中,客户端设备130打开(904)与内容服务器的会话。从内容服务器接收第一图像帧。在一些实施例中,客户端设备130从内容服务器请求第一图像帧(例如,如参考图6所述)。
客户端设备130从服务器(例如,CDN 105)接收(906)第一图像帧(例如,图像资产121)。在一些实施例中,服务器包括(908)内容管理设备。在一些实施例中,服务器包括(910)内容存储设备。
客户端设备130存储(912)第一图像帧。客户端设备生成(914)对应于第一图像帧的第一经修改的图像(例如,经修改的图像302)。在一些实施例中,使得客户端使能够执行用于显示从CDN 105接收的第一图像帧的指令(例如,响应于接收到第一图像,使得客户端能够显示第一图像)。在一些实施例中,客户端设备不显示或最初不显示从CDN 105接收的第一图像帧(例如,直到从远程设备接收到用于显示第二图像的指令)。例如,在不显示所接收的第一图像帧的情况下,客户端设备生成经修改的图像帧,并将经修改的图像帧发送到远程设备。在一些实施例中,客户端设备忘记显示第一图像帧(例如,客户端设备替代地如由远程设备指令的那样显示第二图像帧)。
在一些实施例中,第一经修改的图像302包括(916)与第一图像帧重叠的第一水印。在一些实施例中,生成第一经修改的图像包括将第一图像帧的至少一部分转换(918)成经编码的数据集(例如,二进制数据集)。在一些实施例中,图像帧的第一行被转换成可由第二远程设备和/或客户端解密的二进制代码。在一些实施例中,客户端设备130在修改图像之前确定图像是否将被修改。例如,如果客户端设备确定图像将不在服务器处被修改,则该设备应用QR码407(例如,如在经修改的图像408中那样应用于空白图像帧)。当图像帧在服务器处未被修改时,客户端设备不发送未修改的图像帧的图像数据。在一些实施例中,客户端设备默认修改图像,使得图像将在服务器处被修改。例如,如果客户端设备不确定图像帧是否将在服务器处被修改,则客户端设备将修改应用于图像,并且发送具有用于图像的图像数据的经修改的图像帧,使得它可以被服务器修改。
在一些实施例中,第一经修改的图像包括(920)第一图像帧400的第一感知散列(pHash)。例如,客户端设备生成散列1105(例如,pHash)并利用图像帧400包装散列1105以创建经修改的图像帧(例如,生成包装的图像1004)。在一些实施例中,客户端设备生成唯一标识符来代替(或除此之外)散列1105以标识图像帧400。在一些实施例中,经修改的图像帧包括pHash(或唯一标识符)和图像400两者(例如,包装在一起)。在一些实施例中,生成pHash包括分析图像和/或修改图像的调色板。在一些实施例中,客户端130存储(例如,在查找表中)所生成的散列以标识第一图像帧。例如,散列是第一图像帧的唯一标识符。在一些实施例中,如图10所示,经修改的图像(例如,第一图像帧和利用第一图像帧包装的散列)被发送到VCVM 103。
客户端设备向远程设备传输(922)所生成的第一经修改的图像302。例如,远程设备(例如,VCVM 103)正在运行与来自服务器的内容的提供相关联的应用(例如,第三方应用101-3)。在一些实施例中,应用101-3未被修改,但是通过客户端设备被路由。客户端设备130从远程设备接收(924)用于显示第二图像帧的指令(例如,指令304)。第二远程设备使用第一经修改的图像来确定用于显示第二图像帧的指令。在一些实施例中,第二图像帧是第一图像帧。在一些实施例中,客户端设备从远程设备接收第二图像帧。
在一些实施例中,指令是(926)用于显示第一图像帧的未修改的版本的指令(例如,第一经修改的图像是QR码)。在一些实施例中,第一经修改的图像不在远程设备处***纵(928)。例如,如果QR码代替带水印的图像从客户端设备发送到远程设备,并且需要图像修改,则指令被从远程设备发送到客户端,从而指示客户端将对对应于QR码的图像执行的操纵。
在一些实施例中,第一经修改的图像不包括(930)用于图像帧的图像内容。在一些实施例中,所接收的指令包括(932)第一经修改的图像。例如,远程设备将QR码发送回到客户端,使得客户端可以标识第一图像。
在一些实施例中,指令是(934)用于显示第一图像帧的经修改的版本的指令。在一些实施例中,所接收的指令包括第一经修改的图像,并且用于显示第二图像帧的指令是用于显示第一图像帧的第一经修改的版本的指令。例如,第一经修改的图像302包括图像内容和水印。指令304包括发送回客户端设备的第一经修改的图像,即使应用101-3未操作第一经修改的图像。客户端然后将用于显示第二图像帧的指令关联为用于显示第一经修改的图像的指令。
在一些实施例中,用于显示第二图像帧的所接收的指令包括(936)第二图像帧。第二图像帧包括在远程设备处应用于第一经修改的图像的第二水印。在一些实施例中,第二水印是在服务器处被重新应用于所操纵的图像的第一水印。例如,如果图像已在服务器处被修改,则客户端无法直接匹配图像。在一些实施例中,服务器剥离修改(例如,散列),处理图像,然后重新应用修改,并将经处理的图像和所重新应用的修改发送回客户端。在一些实施例中,处理被应用于应用了散列(例如,散列被配置成承受图像修改)而不移除散列的图像。在一些实施例中,客户端设备可以对经修改的图像进行另外的操纵。在一些实施例中,修改图像包括翻转色轮。在一些实施例中,修改图像包括以用户看不到或检测不到的方式改变图像。
在一些实施例中,第一经修改的图像包括(938)对应于第一图像帧的QR码。例如,经修改的第一图像帧充当远程设备(例如,虚拟机顶盒)处的占位符,其中远程设备向客户端设备提供关于客户端设备应该如何处理图像帧的指令。
响应于接收该指令,客户端设备在通信地耦接到客户端设备的显示器上显示(950)第二图像帧。
在一些实施例中,客户端设备从远程设备接收(940)第二图像帧。
在一些实施例中,第一经修改的图像在远程设备处***纵,并且客户端设备从第二远程设备接收(942)所操纵的第一经修改的图像。第二图像帧是所操纵的第一经修改的图像。在一些实施例中,第二图像帧不同于第一图像帧302。例如,第二图像帧是已经在应用101-3处***纵的第一图像帧302的***纵的版本。客户端设备从远程设备接收用于显示第二图像帧的指令和图像帧两者。客户端显示包括在远程设备处所应用的操纵(例如,并且不显示存储在客户端处的第一经修改的图像)的第二图像帧。
在一些实施例中,客户端设备从服务器接收(944)包括第一图像帧和至少一个附加帧的图像帧的序列。第一图像帧和附加图像帧对应于图像的集群。客户端设备存储附加图像帧。客户端设备生成对应于附加图像帧的第二经修改的图像(例如,通过利用第二散列包装附加图像帧,其中图像帧序列中的每个图像帧利用自己的感知散列包装)。客户端设备生成包括对应于第一图像帧的第一经修改的图像和对应于附加图像帧的第二经修改的图像的经修改的图像的序列。客户端设备向远程设备传输经修改的图像的序列(例如,以便远程设备能够标识图像的集群)。用于显示第二图像帧的指令包括用于显示图像的集群的指令。
在一些实施例中,图像的集群中的每个经修改的图像(例如,第一经修改的图像和第二经修改的图像)包括(946)对应于图像的经修改的版本的序列的群组标识符。在一些实施例中,图像的集群包括第四图像帧,并且经修改的图像的序列还包括对应于第四图像帧的第三经修改的图像。
在一些实施例中,客户端设备向远程设备传输(948)用于图像的经修改的版本的序列的定时信息(例如,帧的数量、要显示的图像的持续时间和/或散列中包括的其他信息)。在一些实施例中,第一经修改的图像包括对应于第一图像帧的QR码。例如,QR码除了图像帧之外作为单独的数据被发送,或者被嵌入在第一经修改的图像中。
在一些实施例中,方法900由如图7中所示的服务器计算机***700执行。例如,用于执行该方法的指令存储在存储器706中,并由服务器计算机***700的处理器702执行。关于过程900所描述的一些操作被可选地组合和/或一些操作的顺序可选地被改变。
在一些实施例中,在虚拟计算设备(例如,服务器700)处执行方法。该方法包括在虚拟计算设备处从客户端设备接收已经由客户端(例如,水印(诸如QR码)、经编码的数据的二进制行、利用该图像包装的pHash)对其应用了对应于第一图像帧的第一修改的第一图像。该方法还包括基于已经由客户端对其应用了第一修改的所接收的第一图像生成第二图像,包括从所接收的第一图像中移除由客户端应用的修改。例如,如果对第一图像的后续操纵将改变修改(例如,使得客户端不能将修改识别为与第一图像相关联),则虚拟计算设备移除修改。在从所接收的第一图像中移除由客户端应用的修改之后,虚拟计算设备操纵(例如,改变大小、颜色等)所接收的第一图像。在操纵所接收的第一图像之后,虚拟计算设备对第一图像应用第二修改(例如,相同的修改或不同于第一修改的修改)以生成第二图像帧。虚拟计算设备向客户端设备传输第二图像帧以便在客户端设备处进行显示。在一些实施例中,客户端设备显示第二图像帧。
在一些实施例中,提供了一种在虚拟计算设备(例如,服务器700)处执行的方法。虚拟计算设备从客户端设备接收已经由客户端(例如,水印)对其应用了对应于第一图像帧的第一修改的第一图像。虚拟计算设备基于已经由客户端对其应用了第一修改的所接收的第一图像生成用于显示第二图像的指令,包括从所接收的第一图像中移除由客户端应用的修改。在从所接收的第一图像中移除由客户端应用的修改之后,虚拟计算设备确定操纵(例如,改变图像大小、颜色、在屏幕上的位置等)所接收的第一图像的指令。在确定操纵所接收的第一图像的指令之后,虚拟计算设备将第二修改(例如,相同的修改或与第一修改不同)应用于第一图像以生成第二图像帧。在一些实施例中,用于显示第二图像帧的指令包括第二图像帧。虚拟计算设备向客户端设备传输用于在客户端设备处显示第二图像帧的指令。在一些实施例中,客户端设备将所接收的指令应用于第二图像帧,并相应地显示第二图像帧。
在一些实施例中,提供了一种用于在服务器设备处接收经修改的图像的方法。服务器计算设备从客户端设备接收对应于第一图像帧的图像的经修改的版本(例如,在没有图像数据情况下的QR码)。第一经修改的图像不包括第一图像帧的图像数据。服务器设备基于第一经修改的图像生成用于在客户端设备处显示第一图像帧的指令。服务器设备向客户端设备传输用于在客户端设备显示第一图像帧的所生成的指令。所生成的指令不包括第一经修改的图像。
在一些实施例中,提供了一种在客户端设备处执行的方法。该方法包括从服务器接收第一图像帧(例如,图像帧1102)并存储第一图像帧。该方法还包括生成标识第一图像帧的第一图像标签(例如,散列)。该方法包括存储标识第一图像帧的第一图像标签(例如,在客户端设备处的散列表1101中)。该方法包括向远程设备传输第一图像帧。该方法包括从远程设备接收用于显示第二图像帧的指令,该指令包括标识第二图像帧(例如,图像帧1104)的第二图像标签。该方法还包括执行查找(例如,在客户端130的散列表中)以将第二图像标签与第一图像标签匹配。该方法包括,响应于识别在所接收的第二图像标签和第一图像标签之间的匹配,在通信地耦接到客户端设备的显示器上显示第二图像帧(例如,第一图像帧的未修改版本或第一图像帧的经修改的版本(例如,基于用于显示第二图像帧的指令修改))。
图11示出了将第一图像帧1102传输到VCVM 103的虚拟客户端130。在一些实施例中,第一图像帧1102是未修改的图像帧。在一些实施例中,第一图像帧1102是从第三方CDN105接收的所转发的图像资产(例如,在没有修改的情况下)。在一些实施例中,虚拟客户端130不传输标识图像帧1102的散列(例如,pHash)。在一些实施例中,虚拟客户端130包括散列表1101,用于存储图像帧1102的标识(例如,基于标记图像帧的散列)。在一些实施例中,VCVM 103接收未修改的图像帧1102(在没有散列的情况下)。在一些实施例中,VCVM 103生成标记所接收的图像帧1102的散列1103。在一些实施例中,VCVM 103将标记所接收的图像帧的散列103存储在散列表中(例如,存储在VCVM 103处)。
在一些实施例中,图像帧1102不被VCVM 103修改,并且标记图像的散列1103被发送到虚拟客户端130(例如,在没有将图像1102发送回虚拟客户端的情况下)。在一些实施例中,VCVM 103发送在VCVM 103处生成的散列1103,而不将图像帧1102发送到客户端130(例如,通过不传输图像帧1102来减少带宽)。例如,使得虚拟客户端130能够基于从VCVM 103接收的散列1103来标识图像1102(其已经存储在虚拟客户端130处)。不需要VCVM 103将未修改的图像1102发送回到客户端130。在一些实施例中,虚拟客户端130执行查找(例如,在散列表1101中),以将从VCVM 103接收的散列1103与在虚拟客户端130处生成的散列相匹配。
在一些实施例中,VCVM 103发送用于修改图像1102的指令(例如,并且发送散列1103以标识图像1102)。例如,VCVM 103不执行图像1102的修改,并且对客户端设备130发送指令,以修改图像1102。使得客户端设备130能够标识该指令所指的是图像(例如,基于从带有该指令的VCVM 103接收的散列1103),并对图像1102执行修改。
在一些实施例中,在VCVM 103处修改图像帧1102(例如,在形状、大小、颜色等方面)以生成图像帧1104。VCVM 103向虚拟客户机130发送图像帧1104和未修改的图像帧1102的散列1103。使得客户端130能够基于标记图像帧1102的散列1103来标识所接收的经修改的图像帧1104对应于图像1102(例如,其已经存储在虚拟客户端130处)。例如,客户端130在从VCVM 103接收的散列1103和存储在虚拟客户端130处的散列表1101中的散列之间执行查找,以识别匹配(指示所接收的图像1104对应于原始图像1102的经修改的版本)。当执行用于向用户显示图像1104的指令时,客户端设备能够用经修改的图像帧1104代替原始图像1102。在一些实施例中,当图像帧1102没有被修改时,VCVM 103将散列1103和图像帧1102传输到客户端130。
总之,提供了将运营商提供的虚拟应用服务与第三方应用服务结合起来的以前不可用的互联网范围的集成。在一些实施例中,组合来自受管和非受管网络的服务,从而向几乎任何网络连接的设备提供优化的视频服务。结果是从几乎任何来源到几乎任何网络媒体设备(甚至包括传统的有线电视安装)的流畅、响应迅速的交互式点播服务。
本发明的特征可以在计算机程序产品中、使用计算机程序产品或在计算机程序产品的帮助下实施,诸如其上/其中存储有可以用于对处理***进行编程以执行本文呈现的任何特征的指令的存储(一个或多个)介质或(一个或多个)计算机可读存储介质。存储介质(例如,存储器706和存储器812)可以包括但不限于高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储设备;并且可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。在一些实施例中,存储器706和存储器812包括位于远离CPU 702和806的一个或多个存储设备。存储器706和存储器812,或者替代性地这些存储器内的非易失性存储设备包括非暂时性计算机可读存储介质。
应当理解的是,尽管术语“第一”、“第二”等在本文中可以用来描述各种元件,但是这些元件不应该被这些术语限制。这些术语仅用于区分一种元件与另一元件。
本文中使用的术语仅仅是为了描述特定的实施实施例的目的,并且不旨在限制权利要求。如在本实施例的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另有明确说明。还应当理解的是,如本文所用的术语“和/或”是指并涵盖相关联的所列出的项中的一个或多个的任何和全部可能的组合。将进一步理解的是,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其他特征、步骤、操作、元件、部件和/或其群组的存在或添加。
如本文所用,术语“如果”可以被解释为表示“当”或“在”或“响应于确定”或“根据确定”或“响应于检测”所陈述的先决条件为真,这取决于上下文。类似地,短语“如果确定(所陈述的先决条件为真)”或“如果(所陈述的先决条件为真]”或“当(所陈述的先决条件为真)”可被解释为表示“在确定”或“响应确定”或“根据确定”或“在检测”或“响应于检测”所陈述的先决条件为真,这取决于上下文。
出于解释的目的,已经参考具体实施实施例描述了前述描述。然而,下面的说明性讨论并不旨在是穷举性的或将实施权利要求限制到所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释操作原理和实际应用,从而使得本领域的其他技术人员能够实现。
Claims (17)
1.一种用于显示媒体的协调控制方法,包括:
在客户端设备处:
从服务器接收第一图像帧;
存储所述第一图像帧;
生成对应于所述第一图像帧的第一经修改的图像;
向远程设备传输所生成的第一经修改的图像;
从所述远程设备接收第二图像帧;
从所述远程设备接收用于显示所述第二图像帧的指令,其中所述远程设备使用所述第一经修改的图像来确定用于显示所述第二图像帧的指令;以及
响应于接收所述指令,在通信地耦接到所述客户端设备的显示器上显示所述第二图像帧。
2.根据权利要求1所述的方法,其中:
用于显示所述第二图像帧的所述指令是用于显示所述第一图像帧的未修改版本的指令。
3.根据权利要求1所述的方法,其中所述第一经修改的图像包括对应于所述第一图像帧的QR码。
4.根据权利要求1所述的方法,其中所述第一经修改的图像不在所述远程设备处***纵。
5.根据权利要求1所述的方法,其中用于显示所述第二图像帧的所述指令是用于显示所述第一图像帧的修改版本的指令。
6.根据权利要求1所述的方法,其中所述第一经修改的图像包括与所述第一图像帧重叠的第一水印。
7.根据权利要求6所述的方法,其中生成所述第一经修改的图像包括将所述第一图像帧的至少一部分转换成经编码的数据集。
8.根据权利要求6所述的方法,其中所述第一经修改的图像包括所述第一图像帧的第一感知散列。
9.根据权利要求6所述的方法,其中所述第一经修改的图像在所述远程设备处***纵,所述方法还包括:
从所述远程设备接收经操纵的所述第一经修改的图像,其中所述第二图像帧是所述经操纵的所述第一经修改的图像。
10.根据权利要求6所述的方法,其中:
用于显示所述第二图像帧的所接收的所述指令包括所述第二图像帧,以及
所述第二图像帧包括在所述远程设备处应用于所述第一经修改的图像的第二水印。
11.根据权利要求6所述的方法,还包括:
从所述服务器接收包括所述第一图像帧和至少一个附加帧的图像帧序列,所述第一图像帧和所述附加帧对应于图像集群;
存储所述附加图像帧;
生成对应于所述附加图像帧的第二经修改的图像;
生成图像的修改版本的序列,所述图像的修改版本的序列包括对应于所述第一图像帧的所述第一经修改的图像和对应于所述附加图像帧的所述第二经修改的图像;以及
向所述远程设备传输所述图像的修改版本的序列;
其中用于显示所述第二图像帧的所述指令包括用于显示所述图像集群的指令。
12.根据权利要求11所述的方法,其中所述图像集群中的每个图像帧包括与所述图像的修改版本的序列相对应的群组标识符。
13.根据权利要求11所述的方法,还包括:向所述远程设备传输用于所述图像的修改版本的序列的定时信息。
14.根据权利要求6所述的方法,其中所述第一水印包括对应于所述第一图像帧的QR码。
15.根据权利要求1所述的方法,其中所述服务器包括内容管理设备。
16.一种非暂时性计算机可读存储介质,其存储用于由电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括指令,所述指令用于:
从服务器接收第一图像帧;
存储所述第一图像帧;
生成对应于所述第一图像帧的第一经修改的图像;
向远程设备传输所生成的第一经修改的图像;
从所述远程设备接收第二图像帧;
从所述远程设备接收用于显示所述第二图像帧的指令,其中所述远程设备使用所述第一经修改的图像来确定用于显示所述第二图像帧的指令;以及
响应于接收所述指令,在通信地耦接到所述客户端设备的显示器上显示所述第二图像帧。
17.一种客户端设备,包括:
一个或多个处理器;以及
存储用于由所述一个或多个处理器执行的一个或多个程序的存储器,所述一个或多个程序包括指令,所述指令用于:
从服务器接收第一图像帧;
存储所述第一图像帧;
生成对应于所述第一图像帧的第一经修改的图像;
向远程设备传输所生成的第一经修改的图像;
从所述远程设备接收第二图像帧;
从所述远程设备接收用于显示所述第二图像帧的指令,其中所述远程设备使用所述第一经修改的图像来确定用于显示所述第二图像帧的指令;以及
响应于接收所述指令,在通信地耦接到所述客户端设备的显示器上显示所述第二图像帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210806178.XA CN115190345B (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制方法、客户端设备及存储介质 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962868310P | 2019-06-28 | 2019-06-28 | |
US62/868,310 | 2019-06-28 | ||
US16/890,957 US11416203B2 (en) | 2019-06-28 | 2020-06-02 | Orchestrated control for displaying media |
US16/890,957 | 2020-06-02 | ||
CN202210806178.XA CN115190345B (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制方法、客户端设备及存储介质 |
PCT/US2020/036263 WO2020263532A1 (en) | 2019-06-28 | 2020-06-05 | Orchestrated control for displaying media |
CN202080058149.9A CN114788296A (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080058149.9A Division CN114788296A (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190345A CN115190345A (zh) | 2022-10-14 |
CN115190345B true CN115190345B (zh) | 2023-09-01 |
Family
ID=74044657
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210806178.XA Active CN115190345B (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制方法、客户端设备及存储介质 |
CN202080058149.9A Pending CN114788296A (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080058149.9A Pending CN114788296A (zh) | 2019-06-28 | 2020-06-05 | 用于显示媒体的协调控制 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11416203B2 (zh) |
EP (1) | EP3991440A4 (zh) |
CN (2) | CN115190345B (zh) |
CA (1) | CA3144834A1 (zh) |
WO (1) | WO2020263532A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019006185A1 (en) | 2017-06-29 | 2019-01-03 | Activevideo Networks, Inc. | SYSTEM AND METHODS FOR ORCHESTRY NETWORK APPLICATION SERVICES |
US11416203B2 (en) * | 2019-06-28 | 2022-08-16 | Activevideo Networks, Inc. | Orchestrated control for displaying media |
CN116636224A (zh) | 2020-12-07 | 2023-08-22 | 活动视频网络有限公司 | 可替代联网应用程序服务的***和方法 |
WO2023220173A1 (en) * | 2022-05-12 | 2023-11-16 | Activevideo Networks, Inc. | Systems and methods of image remoting using a shared image cache |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142808A (zh) * | 2005-01-04 | 2008-03-12 | 史密斯微软件公司 | 生成具有可去除水印的数字图片的方法和设备 |
CN101754046A (zh) * | 2008-12-18 | 2010-06-23 | 威睿公司 | 使用显示通道测量客户交互性能 |
CN105765613A (zh) * | 2013-07-10 | 2016-07-13 | 964比德科有限公司 | 用于数据处理的设备、***和方法 |
WO2019006185A1 (en) * | 2017-06-29 | 2019-01-03 | Activevideo Networks, Inc. | SYSTEM AND METHODS FOR ORCHESTRY NETWORK APPLICATION SERVICES |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592622A (en) * | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
US6141753A (en) * | 1998-02-10 | 2000-10-31 | Fraunhofer Gesellschaft | Secure distribution of digital representations |
KR100624865B1 (ko) | 1999-06-02 | 2006-09-18 | 엘지전자 주식회사 | 사용자 프로파일을 이용한 비디오 분할 시청 시스템 |
US7058815B2 (en) | 2001-01-22 | 2006-06-06 | Cisco Technology, Inc. | Method and system for digitally signing MPEG streams |
US6724914B2 (en) * | 2001-10-16 | 2004-04-20 | Digimarc Corporation | Progressive watermark decoding on a distributed computing platform |
JP3935412B2 (ja) | 2002-09-09 | 2007-06-20 | キヤノン株式会社 | 受信装置及び受信装置の制御方法、ストリームデータ配信システム |
US7173635B2 (en) * | 2003-03-25 | 2007-02-06 | Nvidia Corporation | Remote graphical user interface support using a graphics processing unit |
JP4603947B2 (ja) | 2004-09-03 | 2010-12-22 | キヤノン株式会社 | 画像通信システム、サーバ装置およびその制御方法、並びにコンピュータプログラム |
US8099369B2 (en) | 2004-12-08 | 2012-01-17 | Ngna, Llc | Method and system for securing content in media systems |
US7716699B2 (en) | 2006-06-29 | 2010-05-11 | Microsoft Corporation | Control and playback of media over network link |
KR101335518B1 (ko) | 2007-04-27 | 2013-12-03 | 삼성전자주식회사 | 동영상 디스플레이 방법 및 이를 적용한 영상재생장치 |
US20090169074A1 (en) * | 2008-01-02 | 2009-07-02 | General Electric Company | System and method for computer assisted analysis of medical image |
US9214004B2 (en) * | 2008-12-18 | 2015-12-15 | Vmware, Inc. | Watermarking and scalability techniques for a virtual desktop planning tool |
US9510048B2 (en) | 2009-05-26 | 2016-11-29 | Red Hat Israel, Ltd. | Dynamically changing streaming video quality |
US9521437B2 (en) | 2009-06-17 | 2016-12-13 | Google Technology Holdings LLC | Insertion of recorded secondary digital video content during playback of primary digital video content |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
EP2491495A4 (en) | 2009-11-04 | 2013-01-02 | Huawei Tech Co Ltd | SYSTEM AND METHOD FOR DIFFUSION OF CONTINUOUS MULTIMEDIA CONTENT |
EP2362653A1 (en) | 2010-02-26 | 2011-08-31 | Panasonic Corporation | Transport stream packet header compression |
US9158777B2 (en) * | 2010-03-30 | 2015-10-13 | Gravity Jack, Inc. | Augmented reality methods and apparatus |
EP2553925A4 (en) | 2010-04-02 | 2013-11-13 | Ericsson Telefon Ab L M | METHODS, APPARATUSES, AND COMPUTER PROGRAM PRODUCTS FOR PASSING TRANSIT VIDEO PLAYBACK CONTENT |
NL2004670C2 (nl) | 2010-05-04 | 2012-01-24 | Activevideo Networks B V | Werkwijze voor multimodale afstandsbediening. |
US8910228B2 (en) * | 2010-11-09 | 2014-12-09 | Vmware, Inc. | Measurement of remote display performance with image-embedded markers |
US8386339B2 (en) * | 2010-11-23 | 2013-02-26 | Echostar Technologies L.L.C. | Ordering via dynamic matrix code generation |
US8408466B2 (en) * | 2011-01-04 | 2013-04-02 | Echostar Technologies L.L.C. | Assisting matrix code capture by signaling matrix code readers |
US8553146B2 (en) * | 2011-01-26 | 2013-10-08 | Echostar Technologies L.L.C. | Visually imperceptible matrix codes utilizing interlacing |
US8468610B2 (en) * | 2011-01-27 | 2013-06-18 | Echostar Technologies L.L.C. | Determining fraudulent use of electronic devices utilizing matrix codes |
US8430302B2 (en) * | 2011-02-03 | 2013-04-30 | Echostar Technologies L.L.C. | Enabling interactive activities for content utilizing matrix codes |
US8443407B2 (en) * | 2011-02-28 | 2013-05-14 | Echostar Technologies L.L.C. | Facilitating placeshifting using matrix code |
US9372737B2 (en) | 2012-02-08 | 2016-06-21 | Vmware, Inc. | Video stream management for remote graphical user interfaces |
US9699485B2 (en) * | 2012-08-31 | 2017-07-04 | Facebook, Inc. | Sharing television and video programming through social networking |
US9292897B2 (en) * | 2012-10-05 | 2016-03-22 | Mobitv, Inc. | Watermarking of images |
US9736205B2 (en) | 2012-10-15 | 2017-08-15 | Lg Electronics Inc. | Media share control apparatus, media reproducing apparatus, and method of providing user interface for media sharing thereof |
US11082490B2 (en) | 2012-11-28 | 2021-08-03 | Nvidia Corporation | Method and apparatus for execution of applications in a cloud system |
US20140173695A1 (en) * | 2012-12-18 | 2014-06-19 | Google Inc. | Token based account access |
US8984569B2 (en) | 2013-03-15 | 2015-03-17 | Echostar Technologies L.L.C. | Chunking of multiple track audio for adaptive bit rate streaming |
EP2833640A1 (en) | 2013-08-02 | 2015-02-04 | British Telecommunications public limited company | Video caching |
WO2017030607A1 (en) | 2015-08-17 | 2017-02-23 | Five9, Inc. | Systems and methods for establishing a control channel between a virtualization server and a client device |
US9875515B1 (en) * | 2015-12-15 | 2018-01-23 | Amazon Technologies, Inc. | Embedding debugging information via watermarks |
US10104143B1 (en) | 2016-06-03 | 2018-10-16 | Amazon Technologies, Inc. | Manifest segmentation |
US9621853B1 (en) | 2016-06-28 | 2017-04-11 | At&T Intellectual Property I, L.P. | Service orchestration to support a cloud-based, multi-party video conferencing service in a virtual overlay network environment |
WO2019183539A1 (en) | 2018-03-22 | 2019-09-26 | Netzyn Inc. | System and method for redirecting audio and video data streams in a display-server computing system |
US11416203B2 (en) * | 2019-06-28 | 2022-08-16 | Activevideo Networks, Inc. | Orchestrated control for displaying media |
-
2020
- 2020-06-02 US US16/890,957 patent/US11416203B2/en active Active
- 2020-06-05 CN CN202210806178.XA patent/CN115190345B/zh active Active
- 2020-06-05 EP EP20831119.1A patent/EP3991440A4/en active Pending
- 2020-06-05 WO PCT/US2020/036263 patent/WO2020263532A1/en active Application Filing
- 2020-06-05 CN CN202080058149.9A patent/CN114788296A/zh active Pending
- 2020-06-05 CA CA3144834A patent/CA3144834A1/en active Pending
-
2022
- 2022-07-13 US US17/864,333 patent/US11809771B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142808A (zh) * | 2005-01-04 | 2008-03-12 | 史密斯微软件公司 | 生成具有可去除水印的数字图片的方法和设备 |
CN101754046A (zh) * | 2008-12-18 | 2010-06-23 | 威睿公司 | 使用显示通道测量客户交互性能 |
CN105765613A (zh) * | 2013-07-10 | 2016-07-13 | 964比德科有限公司 | 用于数据处理的设备、***和方法 |
WO2019006185A1 (en) * | 2017-06-29 | 2019-01-03 | Activevideo Networks, Inc. | SYSTEM AND METHODS FOR ORCHESTRY NETWORK APPLICATION SERVICES |
Also Published As
Publication number | Publication date |
---|---|
WO2020263532A8 (en) | 2022-01-13 |
US11416203B2 (en) | 2022-08-16 |
CN115190345A (zh) | 2022-10-14 |
CA3144834A1 (en) | 2020-12-30 |
EP3991440A1 (en) | 2022-05-04 |
US20200409647A1 (en) | 2020-12-31 |
EP3991440A4 (en) | 2023-07-19 |
US11809771B2 (en) | 2023-11-07 |
CN114788296A (zh) | 2022-07-22 |
US20220350565A1 (en) | 2022-11-03 |
WO2020263532A1 (en) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115190345B (zh) | 用于显示媒体的协调控制方法、客户端设备及存储介质 | |
US12034987B2 (en) | Systems and methods of orchestrated networked application services | |
US9509974B2 (en) | Method and system for providing three dimensional stereo image | |
WO2018045927A1 (zh) | 一种基于三维虚拟技术的网络实时互动直播方法及装置 | |
JP5129151B2 (ja) | マルチユーザ・ディスプレイ・プロキシ・サーバ | |
CN107277612A (zh) | 用于在web浏览器上播放媒体流的方法和设备 | |
US9392315B1 (en) | Remote display graphics | |
CN105917382B (zh) | 用于交互式图形流传输的方法和*** | |
CN107645491A (zh) | 媒体流传输设备和媒体服务设备 | |
CN105637886A (zh) | 用于向客户端提供图形用户界面的服务器,以及客户端 | |
US20230379552A1 (en) | Systems and Methods of Alternative Networked Application Services | |
Zorrilla et al. | HTML5-based system for interoperable 3D digital home applications | |
CN117370696A (zh) | 小程序页面的加载方法、装置、电子设备及存储介质 | |
US10237566B2 (en) | Video decoding using point sprites | |
JP6804191B2 (ja) | ビデオストリームの後処理のための方法及び装置 | |
US9088631B2 (en) | Game streaming system and method of supporting the multiuser and multiplatform | |
KR101779527B1 (ko) | 고해상도 360° 가상현실 동영상 처리를 위한 웹 서버 및 동영상 처리 방법 | |
Tamm et al. | Plugin free remote visualization in the browser | |
WO2022125401A1 (en) | Systems and methods of alternative networked application services | |
WO2023193524A1 (zh) | 直播视频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
US20230412753A1 (en) | Apparatuses, computer program products, and computer-implemented methods for hardware-accelerated video stream synthesizing | |
EP4290868A1 (en) | 3d object streaming method, device, and program | |
WO2023220173A1 (en) | Systems and methods of image remoting using a shared image cache | |
US20140198180A1 (en) | Data communication between non-homogeneous display clients and data servers and related methods | |
WO2023004095A1 (en) | Systems and methods of modifying manifests for applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Event Video Network Co.,Ltd. Country or region after: U.S.A. Address before: California, USA Patentee before: ACTIVEVIDEO NETWORKS, Inc. Country or region before: U.S.A. |