CN109891907B - 使用可信平台模块验证在客户端设备处对视频内容的渲染 - Google Patents

使用可信平台模块验证在客户端设备处对视频内容的渲染 Download PDF

Info

Publication number
CN109891907B
CN109891907B CN201780067707.6A CN201780067707A CN109891907B CN 109891907 B CN109891907 B CN 109891907B CN 201780067707 A CN201780067707 A CN 201780067707A CN 109891907 B CN109891907 B CN 109891907B
Authority
CN
China
Prior art keywords
bitstream
client device
video content
frame
specified
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
Application number
CN201780067707.6A
Other languages
English (en)
Other versions
CN109891907A (zh
Inventor
O.伍德曼
A.刘易斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN109891907A publication Critical patent/CN109891907A/zh
Application granted granted Critical
Publication of CN109891907B publication Critical patent/CN109891907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0248Avoiding fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44008Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/4408Processing 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 video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64715Protecting content from unauthorized alteration within the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文提供了用于验证在信息资源上对视频内容的渲染的系统和方法。服务器可以向客户端设备发送具有与预指定帧相对应的第一比特流的视频内容元素。客户端设备可以将第一比特流标识为与预指定帧相对应。客户端设备可以解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流。客户端设备可以向服务器发送包括第二比特流的跟踪消息。服务器可以将被包括在来自客户端设备的跟踪消息中的第二比特流与在数据库处维护的第三比特流进行比较。服务器可以响应于第二比特流与第三比特流匹配,确定视频内容元素在客户端设备处被渲染。

Description

使用可信平台模块验证在客户端设备处对视频内容的渲染
技术领域
本申请涉及视频渲染,更具体地,涉及使用可信平台模块验证在客户端设备处对视频内容的渲染。
背景技术
在诸如互联网的计算机网络环境中,信息资源(例如,网页)和被包括在这样的信息资源中的内容元素可以由在客户端设备上运行的应用(例如,网络浏览器)解析和渲染。可能难以确定信息资源上的内容元素是否实际上被加载到客户端设备上并被显示在客户端设备上。
发明内容
至少一个方面针对一种生成跟踪消息的方法。该方法可以包括在客户端设备处接收表示内容项的经编码的第一比特流。该方法可以包括客户端设备的可信平台模块解码第一比特流以恢复内容项的帧。该方法可以包括在客户端设备的可信平台模块中生成表示内容项的帧的第二比特流。该方法可以包括在客户端设备的可信平台模块中向输出接口传送第二比特流。该方法可以包括在客户端设备的可信平台模块中生成跟踪消息。跟踪消息可以包括客户端设备的标识和标识由可信平台模块处理的内容项的帧的至少一部分的信息。该方法可以包括从客户端设备发送跟踪消息。
在一些实施方式中,跟踪消息可以包括标识由客户端设备的可信平台模块从第一比特流恢复的内容项的预指定帧的信息。在一些实施方式中,跟踪消息可以包括标识由客户端设备的可信平台模块从第一比特流恢复的内容项的最后一帧的信息。在一些实施方式中,跟踪消息可以包括标识被包括在由客户端设备的可信平台模块向输出接口传送的第二比特流中的内容项的预指定帧的信息。在一些实施方式中,跟踪消息可以包括标识被包括在由客户端设备的可信平台模块到输出接口的第二比特流中的内容项的最后一帧的信息。
在一些实施方式中,该方法可以包括在从客户端设备发送跟踪消息之前,由可信平台模块加密或认证跟踪消息。在一些实施方式中,向输出接口传送第二比特流可以包括通过安全输出路径向输出接口传送第二比特流。在一些实施方式中,该方法可以包括在向输出接口传送第二比特流之前加密第二比特流。在一些实施方式中,输出接口可以包括显示器。
至少一个方面针对一种生成跟踪消息的方法。服务器可以生成表示目标内容项的第一比特流。服务器可以向目标客户端设备传送第一比特流。服务器可以接收标明与内容项的递送相关的跟踪消息。服务器可以确定跟踪消息是否包含传送跟踪消息的传送设备的标识符。服务器可以确定传送设备和目标客户端设备是否是同一设备。如果传送客户端设备和目标客户端设备不是同一设备,则服务器可以忽视跟踪消息。如果传送客户端设备和目标客户端设备是同一设备,则服务器可以从跟踪消息恢复关于由客户端设备的可信平台模块处理的内容项的帧的至少一部分的信息。服务器可以将由客户端设备的可信平台模块处理的内容项的帧与目标内容项进行比较。
在一些实施方式中,如果由客户端设备的可信平台模块处理的内容项的帧的至少一部分不被包括在目标内容项中,则服务器可以忽视跟踪消息。在一些实施方式中,服务器可以确定跟踪消息是否由目标客户端设备的可信平台模块认证。在一些实施方式中,如果跟踪消息不由目标客户端设备的可信平台模块认证,则服务器可以忽视跟踪消息。在一些实施方式中,目标内容项可以包括预指定帧。在一些实施方式中,服务器可以确定由客户端设备的可信平台模块处理的内容项的帧的至少一部分是否被包括在预指定帧中。
在一些实施方式中,一个或多个计算机存储介质可以被编码有指令,其中该指令在由一个或多个计算机运行时使得一个或多个计算机执行方法。在一些实施方式中,系统可以包括一个或多个计算机。系统可以被配置为使得一个或多个计算机实施被配置为执行方法的系统。
至少一个方面针对一种验证在信息资源上对视频内容的渲染的方法。具有一个或多个处理器的数据处理系统可以向客户端设备发送视频内容元素。视频内容元素可以具有与预指定帧相对应的第一比特流。接收到视频内容元素可以使得客户端设备将第一比特流标识为与视频内容元素的预指定帧相对应。接收到视频内容元素可以使得客户端设备解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流。接收到视频内容元素可以使得客户端设备向数据处理系统发送包括第二比特流的跟踪消息。数据处理系统可以将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护(maintain)的第三比特流进行比较。数据处理系统可以响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
在一些实施方式中,数据处理系统可以生成包括第一比特流的预指定帧。预指定帧的渲染性质(property)可以被设置为空。在一些实施方式中,数据处理系统可以将预指定帧插入到视频内容元素中。
在一些实施方式中,数据处理系统可以从视频内容元素选择预指定帧。对预指定帧的解码可以依赖于视频内容元素的不同帧。在一些实施方式中,数据处理系统可以标识预指定帧的子集部分,以便由客户端设备解码。在一些实施方式中,接收到视频内容元素还可以使得客户端设备解码与预指定帧的子集部分相对应的第一比特流,以生成第二比特流。第二比特流可以用于将预指定帧的子集部分渲染到客户端设备的显示器上。
在一些实施方式中,数据处理系统可以基于解码预指定帧的计算复杂度从视频内容元素选择预指定帧。在一些实施方式中,向客户端设备发送视频内容元素还可以包括发送包括单个帧的视频内容元素,该单个帧包括预指定帧。
在一些实施方式中,接收到视频内容元素还可以使得客户端设备使用第一加密密钥由可信平台模块来编码第二比特流。在一些实施方式中,接收到视频内容元素还可以使得客户端设备发送包括使用第一加密密钥加密的第二比特流的跟踪消息。在一些实施方式中,将第二比特流与第三比特流进行比较还可以包括将使用第一加密密钥加密的第二比特流与使用第二加密密钥加密的第三比特流进行比较。在一些实施方式中,数据处理系统可以响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,更新视频内容元素的查看计数器(view counter)。
至少一个方面针对一种用于验证在信息资源上对视频内容的渲染的系统。该系统可以包括内容递送器、比特流比较器、以及在具有一个或多个处理器的数据处理系统上运行的渲染验证器。内容递送器可以向客户端设备发送视频内容元素。视频内容元素可以具有与预指定帧相对应的第一比特流。接收到视频内容元素可以使得客户端设备将第一比特流标识为与视频内容元素的预指定帧相对应。接收到视频内容元素可以使得客户端设备解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流。接收到视频内容元素可以使得客户端设备向数据处理系统发送包括第二比特流的跟踪消息。比特流比较器可以将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较。渲染验证器可以响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
在一些实施方式中,系统还可以包括在数据处理系统上运行的策略管理器。在一些实施方式中,策略管理器可以生成包括第一比特流的预指定帧。预指定帧的渲染性质可以被设置为空。在一些实施方式中,策略管理器可以将预指定帧插入到视频内容元素中。
在一些实施方式中,系统还可以包括在数据处理系统上运行的策略管理器。在一些实施方式中,策略管理器可以从视频内容元素选择预指定帧。对预指定帧的解码可以依赖于视频内容元素的不同帧。在一些实施方式中,策略管理器可以标识预指定帧的子集部分,以便由客户端设备解码。在一些实施方式中,接收到视频内容元素还可以使得客户端设备解码与预指定帧的子集部分相对应的第一比特流,以生成第二比特流。第二比特流可以用于将预指定帧的子集部分渲染到客户端设备的显示器上。
在一些实施方式中,系统还可以包括在数据处理系统上运行的策略管理器。在一些实施方式中,策略管理器可以基于对预指定帧的解码的计算复杂度从视频内容元素选择预指定帧。在一些实施方式中,内容递送器可以发送包括单个帧的视频内容元素。单个帧可以包括预指定帧。
在一些实施方式中,接收到视频内容元素还可以使得客户端设备使用第一加密密钥由可信平台模块来编码第二比特流。在一些实施方式中,接收到视频内容元素还可以使得客户端设备发送包括使用第一加密密钥加密的第二比特流的跟踪消息。在一些实施方式中,比特流比较器可以将使用第一加密密钥加密的第二比特流与使用第二加密密钥加密的第三比特流进行比较。在一些实施方式中,渲染验证器可以响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,更新视频内容元素的查看计数器。
至少一个方面针对一种验证在信息资源上对视频内容的渲染的方法。具有一个或多个处理器的客户端设备可以接收视频内容元素。视频内容元素可以具有与预指定帧相对应的第一比特流。客户端设备可以响应于接收到视频内容元素,将第一比特流标识为与视频内容元素的预指定帧相对应。客户端设备可以解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流。客户端设备可以向数据处理系统发送包括第二比特流的跟踪消息。接收到跟踪消息可以使得数据处理系统将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较。接收到跟踪消息可以使得数据处理系统响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
在一些实施方式中,将第一比特流标识为与预指定帧相对应还可以包括标识与预指定帧相对应的第一比特流的子集部分。子集部分可以与在客户端设备的显示器上渲染的预指定帧上的预指定区域相对应。在一些实施方式中,解码第一比特流还可以包括解码与预指定帧上的预指定区域相对应的第一比特流的子集部分。
在一些实施方式中,将第一比特流标识为与预指定帧相对应还可以包括基于预指定帧处的标记来标识插入到视频内容元素中的预指定帧。在一些实施方式中,解码第一比特流还可以包括在不将预指定帧渲染到客户端设备的显示器上的情况下,解码第一比特流。在一些实施方式中,将第一比特流标识为与预指定帧相对应还可以包括标识与视频内容元素的最后一帧相对应的第一比特流。对最后一帧的渲染可以依赖于视频内容元素的前一帧。
在一些实施方式中,客户端设备的可信平台模块可以使用第一加密密钥来编码第二比特流。在一些实施方式中,发送跟踪消息还可以包括发送包括使用第一加密密钥编码的第二比特流的跟踪消息。接收到跟踪消息可以使得数据处理系统用第二加密密钥解码使用第一加密密钥编码的第二比特流。
在一些实施方式中,发送跟踪消息还可以包括发送包括第一设备标识符的跟踪消息。接收到跟踪消息可以使得数据处理系统将第一设备标识符与在数据库处存储的第二设备标识符进行比较。
下面详细讨论了这些以及其他方面和实施方式。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供了用于理解所要求保护的方面和实施方式的性质和特性的概述或框架。附图提供了对各种方面和实施方式的说明和进一步理解,并且被并入并组成本说明书的一部分。
附图说明
不意图按比例绘制附图。各附图中的相同的附图编号和标记指示相同的元素。为了清楚的目的,并非每个组件都可以在每个图中被标记。在附图中:
图1是描绘根据说明性实施方式的用于验证在信息资源上对视频内容的渲染的计算机网络环境的框图;
图2A和图2B的每个是描绘根据说明性实施方式的在各种验证策略下验证在信息资源上对视频内容的渲染的流程的框图;
图3是描绘根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法的流程图;
图4是描绘根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法的流程图;
图5A和图5B是描绘根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法的流程图;以及
图6是说明根据说明性实施方式的可以用于实施本文描述和示出的系统和方法的元素的计算机系统的通用架构的框图。
具体实施方式
以下是与验证在信息资源上对视频内容的渲染的方法、装置和系统相关的各种概念和该方法、装置和系统的实施方式的更详细描述。上面介绍和下面更详细讨论的各种概念可以以多种方式中的任何一种来实施,因为所描述的概念不限于任何特定方式的实施方式。
在当前系统下,为了维护印象(impressions)的计数,在信息资源上初始加载内容元素时,客户端设备可以向服务器传送跟踪事件。一旦接收到跟踪事件,服务器就可以递增或更新内容元素的查看计数,以指示内容元素被显示在客户端设备处的次数。
然而,这样的跟踪事件在证实内容元素是否实际上在客户端设备上被渲染和显示时可能是不准确的。例如,跟踪事件可以由客户端设备生成并传送来作为信息资源上的编码错误的结果。另一方面,这样的跟踪事件可能易受欺诈影响,因为恶意第三方设备可能容易生成并向服务器传送虚假跟踪事件,从而产生对内容元素实际在客户端设备上被渲染和显示多少次的不准确计数。使这些问题更复杂的是,可能很难确定对跟踪事件的接收是编码错误的结果还是由于恶意第三方设备。
为了解决这些和其他技术挑战,本系统和方法可以利用密码处理器(例如,安全可信平台模块的数字权限管理器)的各种功能来用于解码媒体内容。服务器(例如,数据处理系统)可以向客户端设备发送视频内容元素。在视频内容元素内,可以由服务器预指定帧中的一个用于生成跟踪消息。在一种验证策略(“模式A”)下,可以从原始视频内容元素的帧中的一个选择预指定帧,该原始视频内容元素(或其子集部分)要由客户端设备处理和渲染。在另一种验证策略(“模式B”)下,预指定帧可以是插入到原始视频内容中的要由客户端设备处理但不渲染的帧。
当视频内容元素的帧被处理时,客户端设备可以标识预指定帧。已经标识了预指定帧后,客户端设备的密码处理器可以解码与预指定帧相对应的比特流。经解码的比特流可以包括与要在客户端设备的安全输出路径(例如,显示器)上渲染的图形相对应的数据。在模式A中,客户端设备可以解码要在显示器上渲染的预指定帧的标记子集部分的比特流。在模式B中,客户端设备可以解码预指定帧的比特流,但阻止帧在显示器上被渲染。
在预指定帧被解码的情况下,客户端设备可以使用各种加密算法(例如,使用私钥)来加密比特流。客户端设备可以生成具有经加密的比特流的跟踪消息,并且向服务器发送跟踪消息。一旦接收到跟踪消息,服务器就可以确定视频内容元素是否在客户端设备上被正确渲染。如果确定视频内容元素已经在客户端设备处被正确渲染,则服务器可以记录该确定。服务器还可以更新视频内容元素的查看计数器。用于解码比特流的技术可能是计算昂贵 (computationally expensive)的,尤其是预指定帧。如果视频内容元素中的最后一帧被选择为预指定帧,则对最后一帧的解码操作可以依赖于视频内容元素中的先前帧中的一个或多个帧甚至所有帧,从而使得处理和解码计算昂贵。这样,恶意第三方可能难以重复模仿跟踪消息,从而阻止欺诈性跟踪事件。
图1是描述用于验证在信息资源上对视频内容的渲染的环境的一个实施方式的框图。环境100包括经由网络105连接到至少一个内容提供商设备 115、至少一个内容发布者设备120和至少一个客户端设备125的至少一个数据处理系统110。
更详细地,数据处理系统110可以包括至少一个处理器和存储器,即处理电路。存储器存储处理器可运行指令,其中该处理器可运行指令在由处理器运行时使得处理器执行本文描述的操作中的一个或多个。处理器可以包括微处理器、专用集成电路(Application-Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)等、或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储芯片、AISC、FPGA、只读存储器(Read-Only Memoy,ROM)、随机存取存储器(Random-AccessMemoy,RAM)、电可擦除可编程ROM (Electrically Erasable Programmable ROM,EEPROM)、可擦除可编程ROM (Erasable Programmable ROM,EPROM)、闪存、光学介质或处理器可以从其读取指令的任何其他合适的存储器。指令可以包括根据任何合适的计算机编程语言的代码。数据处理系统可以包括可以执行各种功能的一个或多个计算设备或服务器。在一些实施方式中,数据处理系统可以包括被配置为托管拍卖(host auction)的内容放置系统。在一些实施方式中,数据处理系统不包括内容放置系统,但是被配置为经由网络105与内容放置系统通信。
网络105可以包括计算机网络,诸如互联网局域网、广域网、城域网或其他区域网,内部网,卫星网络,诸如语音或数据移动电话通信网络的其他计算机网络,以及其组合。系统100的数据处理系统110可以经由网络105 例如与至少一个内容提供商设备115、至少一个内容发布者设备120或至少一个客户端设备125通信。网络105可以是在客户端设备125、数据处理系统110和诸如网络服务器等等的一个或多个内容源之间中继信息的任何形式的计算机网络。在一些实施方式中,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105 也可以包括被配置为在网络105内接收和/或发送数据的任意数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105还可以包括任意数量的硬连线和/或无线连接。客户端设备125可以与(例如,经由光纤电缆、CAT5电缆等)硬连线到网络105中的其他计算设备的收发器(例如,经由WiFi、蜂窝、无线电等)无线通信。客户端设备125也可以经由代理设备(例如,路由器、网络交换机或网关)与网络105的计算设备无线通信。
内容提供商设备115可以包括由内容提供商实体操作以向内容发布者设备120或数据处理系统110提供内容元素的服务器或其他计算设备。由内容提供商设备115提供的内容可以包括用于在包括主要内容(例如,由内容发布者设备120提供的内容)的信息资源(诸如网站或网页)上显示的第三方内容元素。内容元素也可以被显示在搜索结果网页上。与内容提供商设备115 相关联的内容元素(诸如显示为智能手机或其他客户端设备125上的应用的运行的一部分的内容)可以被显示在除网页之外的信息资源上。内容发布者设备120或数据处理系统110反过来可以选择内容提供商设备115的内容元素。数据处理系统110可以运行内容放置过程,以基于各个内容元素的各种性能度量来选择内容元素。内容发布者设备120或数据处理系统110可以发送内容提供商计算设备的所选内容元素,以便在客户端设备125处的信息资源上显示。
内容发布者设备120可以包括由内容发布实体操作以提供用于经由网络 105显示的主要内容的服务器或其他计算设备。例如,内容发布者设备120 可以由提供用于在网页上显示的主要内容的网页运营商管理。内容发布者设备120也可以提供从内容提供商设备115接收的用于经由网络105显示的第三方内容。主要内容可以包括除了由内容发布者设备120提供的内容之外的内容,并且网页可以包括被配置用于显示由内容发布者设备120从内容提供商设备115接收的内容元素的内容槽(slot)。例如,内容发布者设备120可以操作公司的网站,并且可以提供关于该公司的用于在网站的网页上显示的内容。网页可以包括被配置用于显示从内容提供商设备115接收的诸如图像、文本、视频、或其任意组合的内容元素的内容槽。在一些实施方式中,内容发布者设备120包括操作搜索引擎网站的搜索引擎运营商的搜索引擎计算设备(例如,服务器)。搜索引擎网页的主要内容(例如,结果或登录网页) 可以包括搜索的结果、以及显示在内容槽中的第三方内容元素,诸如来自内容提供商设备115的内容元素。在一些实施方式中,内容发布者设备120可以包括用于服务视频内容的服务器。
内容发布者设备120可以选择从内容提供商设备115接收的一个或多个内容元素(例如,音频、视频、图像等),以将用于经由网络105在客户端设备125上显示的主要内容包括在信息资源中。响应于来自客户端设备125 的对内容的请求,内容发布者设备120可以向客户端设备125发送从内容提供商设备115接收的内容元素、以及主要内容。在一些实施方式中,继发送主要内容之后,响应于来自客户端设备125的对附加内容的请求,内容发布者设备120可以向客户端设备125发送从内容提供商设备115接收的内容元素。在一些实施方式中,内容发布者设备120可以从客户端设备125接收对主要内容的初始请求,并且作为响应,向客户端设备125发送包括主要内容的信息资源。
客户端设备125可以包括被配置为经由网络105通信的计算设备,以显示诸如由内容发布者设备120提供的内容(例如,主要网页内容或其他信息资源)和由内容提供商设备115提供的内容(例如,被配置用于在信息资源中显示的内容元素)的数据。客户端设备125、内容提供商设备115和内容发布者设备120可以包括台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字录像机、电视机的机顶盒、视频游戏控制台或被配置为经由网络105通信的任何其他计算设备。客户端设备125可以是终端用户可以通过其提交请求以接收内容的通信设备。请求可以是对搜索引擎的请求,并且请求可以包括搜索查询。在一些实施方式中,请求可以包括访问网页的请求。
内容提供商设备115、内容发布者设备120和客户端设备125可以包括处理器和存储器,即处理电路。存储器存储机器指令,其中该机器指令在由处理器运行时使得处理器执行本文描述的操作中的一个或多个。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、 DVD、磁盘、存储芯片、AISC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM (EPROM)、闪存、光学介质或处理器可以从其读取指令的任何其他合适的存储器。指令可以包括根据任何合适的计算机编程语言的代码。
内容提供商设备115、内容发布者设备120和客户端设备125也可以包括一个或多个用户接口设备。一般地,用户接口设备指的是通过生成感知信息向用户传送数据(例如,显示器上的可视化、一个或多个声音等)和/或将来自用户的所接收的感知信息转换成电子信号(例如,键盘、鼠标、定点设备、触摸屏显示器、麦克风等)的任何电子设备。根据各种实施方式,一个或多个用户接口设备可以在内容提供商设备115、内容发布者设备120和客户端设备125的外壳内部(例如,内置显示器、麦克风等)或在内容提供商设备115、内容发布者设备120和客户端设备125的外壳外部(例如,连接到客户端设备125的监视器、连接到客户端设备125的扬声器等)。例如,内容提供商设备115、内容发布者设备120和客户端设备125可以包括使用经由网络105从一个或多个内容源和/或从数据处理系统110接收的网页数据来可视地显示网页的电子显示器。
数据处理系统110可以包括至少一个服务器。例如,数据处理系统110 可以包括位于至少一个数据中心或服务器群中的多个服务器。在一些实施方式中,数据处理系统110包括内容放置系统。数据处理系统110可以包括至少一个内容递送器130、至少一个策略管理器135、至少一个比特流比较器 140、至少一个渲染验证器145和至少一个数据库150。
内容递送器130、策略管理器135、比特流比较器140、渲染验证器145 可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、电器(applicance)、或其他逻辑设备,诸如被配置为经由网络105与数据库150 以及与其他计算设备(例如,内容提供商设备115、内容发布者设备120或客户端设备125)通信的可编程逻辑阵列。内容递送器130、策略管理器135、比特流比较器140、渲染验证器145可以包括或运行至少一个计算机程序或至少一个脚本。内容递送器130、策略管理器135、比特流比较器140、渲染验证器145可以是单独的组件、单个组件、或数据处理系统110的一部分。内容递送器130、策略管理器135、比特流比较器140、渲染验证器145可以包括软件和硬件的组合,诸如被配置为运行一个或多个脚本的一个或多个处理器。数据处理系统110也可以包括一个或多个内容储存库或数据库150。数据库150可以是数据处理系统110的本地数据库。在一些实施方式中,数据库150可以是数据处理系统110远程数据库,但可以经由网络105与数据处理系统110通信。数据库150可以包括信息资源和要被包括在信息资源中的内容元素等等,以服务于客户端设备125。下面详述了存储在数据库150 中的数据的附加细节。
客户端设备125可以包括处理器155、网络接口160、输入/输出(Input/Output,I/O)接口165、存储器170和可信平台模块175。处理器155、网络接口160、I/O接口165(例如,电子显示器)和存储器170可以是本文结合图6描述的组件。存储器170可以包括要由处理器155运行的应用180、帧验证器190和消息生成器192的指令。应用180可以包括互联网浏览器、移动应用、或能够运行或以其他方式调用由客户端设备125处理的计算机可运行指令的任何其他计算机程序,诸如被包括在信息资源182中的计算机可运行指令或被包括在信息资源182中的内容元素。应用180也可以包括媒体播放器、或能够处理视听内容(例如,视频内容元素184)并将视听内容渲染到I/O接口165上的任何其他计算机程序。在一些实施方式中,帧验证器190和/或消息生成器192可以是与应用180分离的独立组件。在一些实施方式中,帧验证器190和/或消息生成器192可以是应用180的一部分。在一些实施方式中,帧验证器190和/或消息生成器192可以是由内容提供商设备 115或数据处理系统110提供的视频内容元素184、或由内容发布者设备120 提供的信息资源182的一部分(例如,作为脚本)。本文下面详述了应用180、帧验证器190和消息生成器192的附加功能。
信息资源182和被包括在其中的内容元素可以与脚本、逻辑、标记或指令(例如超文本标记语言(HyperText Markup Language,HTML)、可扩展超文本标记语言(ExtensibleHyperText Markup Language,XHTML)、可扩展标记语言(Extensible Markup Language,XML)、层叠样式表(Cascading Style Sheet,CSS)、JavaScript、或其任意组合)相对应。应用180可以包括任意数量的组件(诸如文档树生成器、渲染树生成器和显示模块),以处理信息资源182和被包括在其中的内容元素。文档树生成器可以解析信息资源182 以生成包括以分层方式排列的信息资源182的内容元素的文档对象模型 (Document Object Model,DOM)树。使用DOM树,渲染树生成器可以生成指定信息资源182的内容元素的视觉性质或属性的渲染树。显示模块可以基于渲染树将信息资源182渲染并显示到客户端设备125的I/O接口165上。
可信平台模块175(有时称为密码处理器)可以包括用于执行安全加密和解密功能的一个或多个专用微控制器。可信平台模块175可以包括密码处理器194、永久存储装置196和通用存储装置198。密码处理器194可以包括伪随机数生成器、加密密钥生成器(例如,RSA密钥、椭圆曲线密码密钥、高级加密标准(Advanced Encryption Standard,AES)等)、安全散列生成器(例如,SHA-1、SHA-256等)和签名引擎(例如,数字签名等)。密码处理器194可以运行各种加密算法,诸如对称密钥算法、非对称密钥算法和密码散列等等。在一些实施方式中,永久存储装置196和/或通用存储装置198 可以是存储器170的一部分。在一些实施方式中,永久存储装置196和/或通用存储装置198可以是与存储器170分离的单独存储单元的一部分。永久存储装置196可以包括签注密钥、存储根密钥和平台配置寄存器等等。通用存储装置198可以包括证明标识密钥和密钥存储装置等等。可信平台模块175 的组件和其中的内容可以用于处理视频内容元素184的每一帧。可信平台模块175可以包括到I/O接口165的安全输出路径,以便渲染视频内容元素184 的经处理的帧。本文下面详述了可信平台模块175的附加功能。
以数据处理系统110开始更详细地描述,内容递送器130可以从客户端设备125接收对视频内容的请求。请求可以用于将视频内容插入到由客户端设备125的应用180加载的信息资源182中。在一些实施例中,请求可以由客户端设备125在加载信息资源182时生成。对视频内容的请求可以包括与客户端设备125相对应的设备标识符。对视频内容的请求可以包括特定视频内容元素的地址(例如,使用诸如“www.example.com/home/example.html”的统一资源定位符(Uniform Resource Locator,URL))。对视频内容的请求可以包括特定视频内容元素的标识符。
使用从客户端设备125接收的请求,内容递送器130可以从数据库150 标识视频内容元素184。数据库150可以包括由地址或标识符排列的一个或多个视频内容元素(例如,视频内容元素184)。内容递送器130可以使用被包括在请求中的视频内容的地址或标识符来访问数据库150,以检索或获得视频内容元素184。视频内容元素184可以包括一个或多个帧186A-186N。在一些实施方式中,视频内容元素184可以包括单个帧,使得视频内容元素184在客户端设备125的I/O接口165上显现为静态图像。
视频内容元素184可以是压缩视频。一个或多个帧186A-186N中的每一个可以具有编码类型(例如,帧间或帧内)。视频内容元素184的一个或多个帧186A-186N中的一些可以是帧间编码图片(I帧)。帧间编码图片帧 186A-186N可以包括独立于其他帧186A-186N的完整静态图像。视频内容元素184的一个或多个帧186A-186N中的一些可以是预测图片(P帧)。预测图片帧186A-186N可以依赖于先前帧186A-186N,并且可以包括帧186A-186N处的图像从先前帧186A-186N的改变。视频内容元素184的一个或多个帧186A-186N中的一些可以是双向预测(bi-predictive)图片(B 帧)。双向预测图片帧186A-186N可以依赖于先前帧和后续帧186A-186N,并且可以包括帧186A-186N处的图像从先前帧和后续帧186A-186N的改变。视频内容元素184可以与二进制序列(例如,字节数组或字节流)相对应。视频内容元素184的帧186A-186N中的每一个可以与二进制序列(例如,比特流)的一部分相对应。
在从数据库150检索到视频内容元素184的情况下,策略管理器135可以选择要应用的验证策略以验证在客户端设备125处对视频内容元素184的渲染。可能有两种验证策略:第一验证策略和第二验证策略。策略管理器135 可以基于所检索的视频内容元素184来选择验证策略。在一些实施方式中,策略管理器135可以标识视频内容元素184的一个或多个属性(例如,持续时间、尺寸、文件大小等)以选择验证策略。策略管理器135可以基于客户端设备125来选择验证策略。在一些实施方式中,策略管理器135可以在选择验证策略时标识视频内容元素184的一个或多个性质(例如,设备类型、存储器、网络带宽、处理能力等)。策略管理器135可以(例如,通过使用伪数字生成器)随机选择验证策略。一旦选择,策略管理器135可以在设置或插入用于根据验证策略来验证在客户端设备125处对视频内容元素184的渲染的预指定帧188(有时称为检查帧)时修改视频内容元素184。策略管理器135也可以将所选验证策略与视频内容元素184的标识符和客户端设备 125的设备标识符一起存储在数据库150上。
在第一验证策略(模式A)下,策略管理器135可以基于处理帧 186A-186N时的计算复杂度来选择视频内容元素184的帧186A-186N中的至少一个作为预指定帧188。在一些实施方式中,策略管理器135可以计算或估计每个帧186A-186N的计算复杂度度量。计算复杂度度量可以包括在客户端设备125处处理相应帧186A-186N时的处理时间、处理器使用、存储器使用和功耗等等属性。策略管理器135可以运行对视频内容元素184的模拟处理,以测量估计的处理时间、估计的处理器使用、估计的存储器使用和估计的功耗等等属性。在估计计算复杂度度量时,策略管理器135可以标识每个帧186A-186N的编码类型。策略管理器135然后可以基于所标识的编码类型来确定每个帧186A-186N之间的比特流中的改变,以估计计算复杂度度量。
在计算了每个帧186A-186N的计算复杂度度量的情况下,策略管理器 135可以标识与最高计算复杂度度量相对应的帧186A-186N。策略管理器135 可以选择与最高计算复杂度度量相对应的帧186A-186N作为预指定帧188。在预指定帧188与最高计算复杂度度量的帧186A-186N相对应的情况下,网络105中的设备可以在处理预指定帧188时消耗计算机资源,从而使得难以生成欺诈性跟踪事件。在一些实施方式中,策略管理器135可以标识具有大于预定阈值的计算复杂度度量的帧186A-186N。从具有大于预定阈值的计算复杂度度量的帧186A-186N中,策略管理器135可以选择一个帧 186A-186N(或多个帧)作为预指定帧188。策略管理器135也可以标识与预指定帧188相对应的比特流。在一些实施方式中,策略管理器135可以将具有满足预设阈值的计算复杂度度量的第一帧标识为预指定阈值,或者它可以标识具有满足预设阈值的计算复杂度度量的所有帧186A-186N并从这些帧186A-186N中选择预指定帧188。在一些实施方式中,策略管理器135可以确定与预指定帧188相对应的经加密的比特流。策略管理器135可以将与预指定帧188相对应的比特流存储在数据库150中。
策略管理器135也可以任意选择帧186A-186N中的至少一个作为预指定帧188。在一些实施方式中,策略管理器135可以标识视频内容元素184 的最后一帧186N。在一些实施方式中,策略管理器135可以选择其解码操作参考先前帧186A-186M的帧作为预指定帧。如上面所提到的,其解码操作参考先前帧的帧在解码时可能是计算昂贵的。策略管理器135可以选择视频内容元素184的最后一帧186N作为预指定帧188。在一些实施方式中,策略管理器135可以使用伪随机数生成器来生成帧号。帧号的范围可以从一到视频内容元素184中的帧的数量。策略管理器135可以标识与所生成的帧号相对应的帧186A-186N。策略管理器135可以选择所标识的帧186A-186N 作为预指定帧188。如果视频内容元素184包括单个帧186A,则策略管理器 135可以选择单个帧186A作为预指定帧188。策略管理器135也可以标识与预指定帧188相对应的比特流。在一些实施方式中,策略管理器135可以确定与预指定帧188相对应的经加密的比特流。策略管理器135可以将与预指定帧188相对应的比特流存储在数据库150中。
仍然根据第一验证策略,策略管理器135可以标识一个预指定帧188的子集部分。当在客户端设备125的I/O接口165上显示时,子集部分可以与预指定帧188的矩形区域相对应。通过指定矩形区域,数据处理系统110可以验证预指定帧188的子集部分是否实际上在客户端设备125处被渲染和显示。策略管理器135可以标识预指定帧188的矩形区域的像素尺寸。在一些实施方式中,像素尺寸可以包括矩形区域的左上角和矩形区域的右下角。策略管理器135可以选择或指定预指定帧188的子集部分。策略管理器135也可以标识与预指定帧188的指定子集部分相对应的比特流。在一些实施方式中,策略管理器135可以计算与预指定帧188的子集部分相对应的比特流。策略管理器135可以将所标识的比特流存储在数据库150中。
在第二验证策略(模式B)下,策略管理器135可以生成新的帧并将其插入到视频内容元素184中作为预指定帧188。在一些实施方式中,多个新的帧可以被插入到视频内容元素184中作为预指定帧188。策略管理器135 可以使用任何编码类型将新的帧生成到视频内容元素184中作为预指定帧 188。在一些实施方式中,策略管理器135可以生成作为独立于视频内容元素184中的任何帧186A-186N的帧间编码图片的预指定帧188。在一些实施方式中,策略管理器135可以通过使用先前帧和后续帧186A-186N来生成作为双向预测图片的预指定帧188。在一些实施方式中,策略管理器135可以通过使用先前帧186A-186N来生成作为预测图片的预指定帧188。为了阻止在插入新的帧时视频内容元素184的恶化或退化,策略管理器135可以生成作为虚帧(dummy frame)的预指定帧188,以保留从先前帧186A-186N到后续帧186A-186N的视频内容的编码。在一些实施方式中,策略管理器 135可以将预指定帧188的渲染使能(rendering-enabled)性质设置为空,以便阻止在客户端设备125处对预指定帧188的渲染,从而使预指定帧188成为虚帧。策略管理器135然后可以将预指定帧188插入到视频内容元素184 中。如果编码类型是预测的或双向预测的,则可以由策略管理器135在视频内容元素184中的对应序列处插入预指定帧188。在一些实施方式中,策略管理器135可以将预指定帧188作为最后一帧插入到视频内容元素184中。策略管理器135也可以标识与预指定帧188相对应的比特流。在一些实施方式中,策略管理器135可以确定与预指定帧188相对应的经加密的比特流。策略管理器135可以将与预指定帧188相对应的比特流存储在数据库150中。
为了指示客户端设备125使用预指定帧188来传送验证消息,策略管理器135可以将指定指示符包括在视频内容元素184中。在一些实施方式中,指定指示符可以包括与所选验证策略相对应的验证策略标识符。在一些实施方式中,指定指示符可以包括与预指定帧188的子集部分相对应的像素尺寸。在一些实施方式中,策略管理器135可以在预指定帧188处插入指定指示符作为标记(例如,水印、或其他不可见或不可察觉的标记)。在一些实施方式中,策略管理器135可以将指定指示符插入预指定帧188的报头中。在一些实施方式中,策略管理器135可以将指定指示符插入视频内容元素184的元数据中。被包括在元数据中的指定指示符可以包括与预指定帧188相对应的帧号。在一些实施方式中,策略管理器135可以与视频内容元素184分离地向客户端设备125发送指定指示符。
在预指定帧188被选择或被插入到视频内容元素184中的情况下,内容递送器130可以经由网络105发送视频内容元素184。视频内容元素184的发送可以包括流传输帧186A-186N(例如,作为块)。在一些实施方式中,内容递送器130也可以发送帧验证器190。在一些实施方式中,内容递送器 130也可以发送消息生成器192。可以由客户端设备125使用帧验证器190 和消息生成器192来处理预指定帧188,以验证视频内容元素184在客户端设备125处被渲染。在一些实施方式中,帧验证器190和/或消息生成器192 可以在客户端设备125处被预先加载。
在发送之前,内容递送器130可以使用各种加密算法(例如,诸如 Diffie-Hellman密钥交换的数字权限管理模式)在发送之前加密视频内容元素184。视频内容元素184的加密和解密可能是计算复杂的。这样,网络105 中的试图解密视频内容元素184的其他设备以本文详述的方式传送虚假跟踪事件以增加视频内容元素184的查看计数可能是计算昂贵的。通过阻止虚假跟踪事件,系统100可以改进对在连接到网络105的客户端设备125处渲染视频内容元素184的验证,从而产生对视频内容元素184的更准确的查看计数以及验证对内容的渲染。
继对视频内容的请求之后,客户端设备125然后可以从内容递送器130 接收视频内容元素184。在一些实施方式中,客户端设备125可以接收与视频内容元素184一起的指定指示符。在一些实施方式中,客户端设备125可以从策略管理器135接收与视频内容元素184分离的指定指示符。在一些实施方式中,客户端设备125可以从内容递送器130接收帧验证器190。在一些实施方式中,客户端设备125可以从内容递送器130接收消息生成器192。
已经加载了视频内容元素184后,应用180可以开始播放视频内容元素 184的一个或多个帧186A-186N。视频内容元素184的播放可以包括当从内容递送器130接收到帧186A-186N时流传输一个或多个帧186A-186N。在处理视频内容元素184的一个或多个帧186A-186N时,应用180可以调用可信平台模块175来标识与帧186A-186N相对应的比特流并解密比特流,以便在(作为安全输出路径的)I/O接口165上渲染和显示帧186A-186N。
当视频内容元素184被处理时,帧验证器190可以确定当前帧186A– 186N是否是预指定帧188。帧验证器190可以使用指定指示符来标识预指定帧188。在一些实施方式中,帧验证器190可以使用图像识别算法来识别预指定帧188上的标记,以将当前帧186A-186N标识为预指定帧188。在一些实施方式中,帧验证器190可以读取当前帧186A-186N的报头以标识指定指示符,从而确定当前帧186A-186N是预指定帧188。在一些实施方式中,帧验证器190可以读取视频内容元素184的元数据以标识预指定帧188。对元数据的读取可以在播放视频内容元素184之前。
如果当前帧186A-186N不是预指定帧188,则应用180可以继续处理视频内容元素184。应用180可以渲染当前帧186A-186N。应用然后可以标识下一帧186A-186N。帧验证器190然后可以使用上面列出的技术再次确定帧 186A-186N是否是预指定帧188。这个过程可以被重复,直到视频内容元素 184结束。
如果当前帧186A-186N是预指定帧188,则帧验证器190可以标识哪个验证策略要被应用于验证视频内容元素184的渲染。在一些实施方式中,帧验证器190可以基于指示由策略管理器135选择的验证策略的指定指示符来标识要应用哪个验证策略。在一些实施方式中,帧验证器190可以基于预指定帧188的渲染使能性质来标识要应用哪个验证策略。如果预指定帧188的渲染使能性质被设置为真,则帧验证器190可以标识要应用第一验证策略。如果预指定帧188的渲染使能性质被设置为空,则帧验证器190可以标识要应用第二验证策略。使用所标识的验证策略,帧验证器190可以调用可信平台模块175来编码预指定帧188,以便验证在客户端设备125处对视频内容元素184的渲染。
在第一验证策略下,帧验证器190可以允许应用180渲染预指定帧188,以便在I/O接口165上显示。在一些实施方式中,帧验证器190可以标识与预指定帧188相对应的比特流。比特流可能已经由内容递送器130加密。使用所标识的比特流,帧验证器190可以调用可信平台模块175来使用各种解密技术(例如,Diffie-Hellman密钥交换、RSA等)来解密与预指定帧188 相对应的比特流,以生成另一比特流。在一些实施方式中,帧验证器190可以(例如,使用帧序列号)标识预指定帧188。帧验证器190然后可以调用可信平台模块175来通过标识预指定帧188来解密与预指定帧188相对应的比特流。经解码的比特流可以是由应用180用来在I/O接口165上渲染和显示视频内容元素184的二进制序列的一部分。以这种方式,帧验证器190可以验证在客户端设备125处对包括预指定帧188的视频内容元素184的渲染。
在一些实施方式中,经解码的比特流可以与预指定帧188的指定子集部分相对应。帧验证器190可以从指定标识符标识预指定帧188的指定子集部分。在一些实施方式中,帧验证器190可以从指定标识符标识预指定帧188 的子集部分的像素尺寸。在一些实施方式中,帧验证器190可以标识与预指定帧188的指定子集部分或预指定帧188的子集部分的像素尺寸相对应的比特流。使用所标识的比特流,帧验证器190可以调用可信平台模块175来使用各种解密技术(例如,Diffie-Hellman密钥交换、RSA、加密散列等)来解密或以其他方式恢复与预指定帧188相对应的比特流,以生成另一比特流。帧验证器190可以调用可信平台模块175来通过标识预指定帧188的子集部分或预指定帧188的子集部分的像素尺寸来解密与预指定帧188相对应的比特流。经解码的比特流可以是由应用180用来在I/O接口165上渲染和显示在像素维度内显示的任何内容的子集部分的二进制序列的一部分。以这种方式,帧验证器190可以验证在客户端设备125处对包括预指定帧188的子集部分的视频内容元素184的渲染是否没有任何遮挡(occlusions)。
现在参考图2A,图2A是描绘在第一验证策略(模式A 200A)下验证对视频内容元素184的渲染的流程过程的框图。在系统100的上下文中,策略管理器135可能已经选择了视频内容元素184的帧186A-186N中的一个作为预指定帧188。第二帧186B可以是具有对先前帧186A的向后 (backward)依赖性205A的P帧。预指定帧188可以是具有对先前帧 186A-186N中的一个的向后依赖性205B和对下一帧186N的向前依赖性 205C的B帧。帧验证器190可能已经使用指定标识符标识了预指定帧188,以及可能已经标识了预指定子集部分210。预指定帧188可以与其他帧 186A-186N一起在I/O接口165上被渲染。帧验证器190可以调用可信平台模块175来解密与预指定子集部分210的渲染相对应的经编码的比特流,以生成比特流215A(例如,“9B02”)。比特流215A可以被用于生成跟踪消息,如本文将详述的。
回到图1,在第二验证策略下,在预指定帧188的渲染使能性质被设置为空的情况下,应用180可以放弃对预指定帧188的渲染。在一些实施方式中,帧验证器190可以标识与预指定帧188相对应的比特流。比特流可能已经由内容递送器130加密。使用所标识的比特流,帧验证器190可以调用可信平台模块175来使用各种解密技术(例如,Diffie-Hellman密钥交换、RSA、加密散列等)来解密或以其他方式恢复与预指定帧188相对应的比特流,以生成另一比特流。在一些实施方式中,帧验证器190可以(例如,使用帧序列号)标识预指定帧188。帧验证器190然后可以调用可信平台模块175来通过标识预指定帧188来解密与预指定帧188相对应的比特流。如果预指定帧188的渲染性质被设置为真,则经解码的比特流可以是由应用180用来处理视频内容元素184以便渲染到I/O接口165上的二进制序列的一部分。以这种方式,帧验证器190可以验证对视频内容元素184的渲染,而无需在客户端设备125处实际渲染预指定帧188。
现在参考图2B,图2B是描绘在第二验证策略(模式B 200B)下验证视频内容元素184的渲染的流程过程的框图。在系统100的上下文中,策略管理器135可能已经将预指定帧188插入到视频内容元素184的帧 186A-186N中的一个中。第二帧186B可以是具有对先前帧186A的向后依赖性205A的P帧。预指定帧188可以是具有对先前帧186A-186N中的一个的向后依赖性205B和对下一帧186N的向前依赖性205C的B帧。预指定帧 188的渲染使能性质可以被设置为空,从而阻止在I/O接口165上渲染或显示。帧验证器190可能已经使用指定标识符标识了预指定帧188。帧验证器 190可以调用可信平台模块175来解密与预指定帧188相对应的经编码的比特流,以生成比特流215B(例如,“8A34”)。比特流215B可以用于生成跟踪消息,如本文将详述的。
再次回到图1,在预指定帧188的比特流被解码的情况下,消息生成器 192可以生成用于发送到数据处理系统110的跟踪消息。跟踪消息可以包括标识预指定帧188的信息。标识预指定帧188的信息可以包括帧标识符(例如,帧序列号)。跟踪消息也可以包括与客户端设备125相对应的设备标识符。跟踪消息也可以包括与视频内容元素184相对应的标识符或地址。跟踪消息可以包括与视频内容元素184相对应的视频内容标识符。跟踪消息也可以包括与在客户端设备处播放视频内容元素184或由帧验证器190解码预指定帧188的时间(例如,年、日、小时、分、秒等)相对应的时间戳。跟踪消息可以包括与预指定帧188相对应的经解码的比特流。在一些实施方式中,跟踪消息可以包括与预指定帧188的子集部分相对应的经解码的比特流。一旦生成跟踪消息,消息生成器192就可以向数据处理系统110发送跟踪消息。
在一些实施方式中,在发送跟踪消息之前,消息生成器192可以调用可信平台模块175来加密与预指定帧188或预指定帧188的子集部分相对应的经解码的比特流。可信平台模块175可以使用加密密钥(例如,由数据处理系统110提供的公钥)来对经解码的比特流进行加密、认证或以其他方式签名。加密密钥可能已经与视频内容元素184或预指定帧188的指定指示符一起被接收。消息生成器192可以将经加密的解码比特流包括或插入到跟踪消息中。在一些实施方式中,消息生成器192可以将用于对经解码的比特流进行加密、认证或以其他方式签名的加密密钥插入或包括到跟踪消息中。
消息生成器192可以调用可信平台模块175来使用被包括在跟踪消息中的信息(例如,帧标识符、视频内容标识符、设备标识符、时间戳和/或与预指定帧188相对应的经解码的比特流等)来生成组合值。在一些实施方式中,组合值可以是基于被包括在跟踪消息中的信息、和加密密钥(例如,保密散列密钥)而生成的键控散列消息认证码(Keyed-HashMessage Authentication Code,HMAC)。在一些实施方式中,消息生成器192可以将用于生成组合值(例如,HMAC)的加密密钥包括或插入到跟踪消息中。在一些实施方式中,跟踪消息可以是{<时间戳、视频内容标识符、帧标识符、设备标识符和经解码的比特流>,密钥}的形式。在一些实施方式中,被包括在跟踪消息中的加密密钥可能不同于用于生成组合值的加密密钥(例如,具有额外填充的零的加密密钥)。
消息生成器192然后可以向数据处理系统110发送具有经加密的解码比特流的跟踪消息。预指定帧188或其子集部分的经解码的比特流可以对连接到网络105的意图创建欺诈性跟踪事件以增加视频内容元素184的查看计数的设备隐藏,从而产生视频内容元素184实际上在客户端设备125处被渲染和显示的次数的更准确计数。
一旦接收到跟踪消息,比特流比较器140就可以将被包括在跟踪消息中的比特流与在数据处理系统110处标识的比特流进行比较。被包括在跟踪消息中和存储在数据库150上的比特流都可以与预指定帧188或预指定帧188 的子集部分相对应。在一些实施方式中,比特流比较器140可以访问数据库 150,以使用被包括在跟踪消息中的视频内容元素184的标识符来标识与预指定帧188或预指定帧188的子集部分相对应的比特流。在一些实施方式中,响应于接收到视频内容元素184的跟踪消息,比特流比较器140可以标识或以其他方式计算与预指定帧188或预指定帧188的子集部分相对应的比特流。在一些实施方式中,在比较之前,比特流比较器140可以使用被包括在跟踪消息中的加密密钥来解密跟踪消息中的比特流。在一些实施方式中,在比较之前,比特流比较器140可以使用另一加密密钥(例如,公钥加密方案中的私钥)来解密跟踪消息中的比特流。在一些实施方式中,比特流比较器140可以使用用于生成组合值的加密密钥来解密被包括在跟踪消息中的组合值。
如果被包括在跟踪消息中的比特流与在数据处理系统110处标识的比特流匹配,则渲染验证器145可以确定或以其他方式验证视频内容元素184在客户端设备125处被渲染。渲染验证器145可以标识跟踪消息中的设备标识符。渲染验证器145可以访问数据库150以搜索设备标识符。当已经接收到视频内容元素184时,数据库150可以包括设备标识符列表。渲染验证器145 可以确定跟踪消息中的设备标识符是否被包括在数据库150中。渲染验证器 145可以标识跟踪消息中的视频内容标识符。渲染验证器145可以标识访问数据库150以搜索视频标识符。渲染验证器145可以找到视频内容标识符与被包括在数据库150中的视频内容标识符之间的匹配。渲染验证器145可以使用帧标识符和视频内容标识符来访问数据库150。渲染验证器145可以确定帧标识符和视频内容标识符是否与在数据库150处存储的任何帧标识符和视频内容标识符匹配。渲染验证器145可以标识被包括在消息中的时间戳。渲染验证器145可以访问数据库150,以搜索视频内容元素184经由网络105 被发送时的时间戳。如果时间戳在数据库150中的任何时间戳的预定范围内,则渲染验证器145可以将被包括在跟踪消息中的时间戳标识为与数据库150 中的时间戳匹配。渲染验证器145可以标识被包括在跟踪消息中的帧标识符。
如果除了被包括在跟踪消息中的比特流与在数据处理系统110处标识的比特流匹配之外,被包括在跟踪消息中的任何一个或多个信息也与在数据库 150中存储的信息匹配,则渲染验证器145可以记录视频内容元素184已经在客户端设备125处被渲染。记录可以被存储在数据库150处,以在稍后时间检查特定视频内容元素184是否和/或何时在特定客户端设备125处被渲染。在一些实施方式中,渲染验证器145可以更新视频内容元素184的查看计数。响应于确定视频内容元素184在客户端设备125处被渲染并在数据库 150中找到跟踪消息的设备标识符,渲染验证器145也可以更新视频内容元素184的查看计数。在一些实施方式中,渲染验证器145可以在数据库150 处维护计数器以保持对视频内容元素184的查看计数的跟踪。在一些实施方式中,响应于被包括在跟踪消息中的比特流与在数据处理系统110处标识的比特流匹配,渲染验证器145可以递增视频内容元素184的查看计数的计数器。另一方面,如果被包括在跟踪消息中的比特流与在数据处理系统110处标识的比特流不匹配,则渲染验证器145可以确定视频内容元素184没有在客户端设备125处被正确渲染,并且渲染验证器145可以将视频内容元素184 的查看计数维持在先前值。在一些实施方式中,渲染验证器145可以警告数据处理系统110的网络管理员潜在的恶意第三方设备试图伪造跟踪事件,以篡改对视频内容元素184是否在客户端设备125处被渲染的记录或增加视频内容元素184的查看计数。
假设包括预指定帧188的视频内容元素184如本文所描述地被加密,则连接到网络105的其他设备(例如,恶意第三方)可能难以重复模仿跟踪消息,从而阻止欺诈性跟踪事件。以这种方式,系统100可以增加视频内容元素184的查看计数的准确性。此外,在客户端设备125处对视频内容元素184 的渲染和显示可以被验证。
现在参考图3,图3是描绘根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法300的流程图。本文关于方法300描述的功能可以由如图1所示的数据处理系统110或如图6所示的计算设备或其任意组合执行或以其他方式运行。简而言之,数据处理系统可以向客户端设备发送视频内容元素(框305)。视频内容元素可以具有与预指定帧相对应的第一比特流。数据处理系统可以将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较(框310)。响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,数据处理系统可以确定视频内容元素在客户端设备处被渲染(框315)。
更详细地,数据处理系统可以向客户端设备发送视频内容元素(框305)。数据处理系统可以从客户端设备接收对视频内容的请求。请求可以是将视频内容插入到由客户端设备的应用加载的信息资源中。在一些实施例中,请求可以由客户端设备在加载信息资源时生成。对视频内容的请求可以包括与客户端设备相对应的设备标识符。对视频内容的请求可以包括特定视频内容元素的地址(例如,使用诸如“www.example.com/home/example.html”的统一资源定位符(URL))。对视频内容的请求可以包括特定视频内容元素的标识符。
使用从客户端设备接收的请求,数据处理系统可以从数据库标识视频内容元素。数据库可以包括由地址或标识符排列的一个或多个视频内容元素 (例如,视频内容元素)。数据处理系统可以使用被包括在请求中的视频内容的地址或标识符来访问数据库,以检索或获得视频内容元素。视频内容元素可以包括一个或多个帧。在一些实施方式中,视频内容元素可以包括单个帧,使得视频内容元素在客户端设备的I/O接口上显现为静态图像。
视频内容元素可以是压缩视频。一个或多个帧中的每一个可以具有编码类型(例如,帧间或帧内)。视频内容元素的一个或多个帧中的一些可以是帧间编码图片(I帧)。帧间编码图片帧可以独立于其他帧包括完整静态图像。视频内容元素的一个或多个帧中的一些可以是预测图片(P帧)。预测图片帧可以依赖于先前帧,并且可以包括该帧处的图像从先前帧的改变。视频内容元素的一个或多个帧中的一些可以是双向预测图片(B帧)。双向预测图片帧可以依赖于先前帧和后续帧,并且可以包括该帧处的图像从先前帧和后续帧的改变。视频内容元素可以与二进制序列(例如,字节数组或字节流) 相对应。视频内容元素的帧中的每一个可以与二进制序列的一部分(例如,比特流)相对应。
在从数据库检索到视频内容元素的情况下,数据处理系统可以选择要应用来验证在客户端设备处对视频内容元素的渲染的验证策略。可以有两种验证策略:第一验证策略和第二验证策略。数据处理系统可以基于所检索的视频内容元素来选择验证策略。在一些实施方式中,数据处理系统可以标识视频内容元素的一个或多个属性(例如,持续时间、尺寸、文件大小等)以选择验证策略。数据处理系统可以基于客户端设备来选择验证策略。在一些实施方式中,数据处理系统可以在选择验证策略时标识视频内容元素的一个或多个性质(例如,设备类型、存储器、网络带宽、处理能力等)。数据处理系统可以(例如,通过使用伪数字生成器)随机选择验证策略。一旦选择,数据处理系统就可以在设置或插入用于根据验证策略来验证在客户端设备处对视频内容元素的渲染的预指定帧时修改视频内容元素。数据处理系统也可以将所选验证策略与视频内容元素的标识符和客户端设备的设备标识符一起存储在数据库上。
在第一验证策略(模式A)下,数据处理系统可以基于处理帧时的计算复杂度来选择视频内容元素的帧中的一个作为预指定帧。在一些实施方式中,数据处理系统可以计算或估计每个帧的计算复杂度度量。计算复杂度度量可以包括在客户端设备处处理相应帧时的处理时间、处理器使用、存储器使用和功耗等等属性。数据处理系统可以运行视频内容元素的模拟处理,以测量估计的处理时间、估计的处理器使用、估计的存储器使用和估计的功耗等等属性。在估计计算复杂度度量时,数据处理系统可以标识每个帧的编码类型。然后,数据处理系统可以基于所标识的编码类型来确定每个帧之间的比特流中的改变,以估计计算复杂度度量。
在计算了每个帧的计算复杂度度量的情况下,数据处理系统可以标识与最高计算复杂度度量相对应的帧。数据处理系统可以选择与最高计算复杂度度量相对应的帧作为预指定帧。在预指定帧与最高计算复杂度度量的帧相对应的情况下,网络中的设备可以在处理预指定帧时消耗计算机资源,从而使得难以生成欺诈性跟踪事件。在一些实施方式中,数据处理系统可以标识具有大于预定阈值的计算复杂度度量的帧。从具有大于预定阈值的计算复杂度度量的所标识的帧中,数据处理系统可以选择一个帧(或多个帧)作为预指定帧。数据处理系统也可以标识与预指定帧相对应的比特流。在一些实施方式中,数据处理系统可以确定与预指定帧相对应的经加密的比特流。数据处理系统可以将与预指定帧相对应的比特流存储在数据库中。
数据处理系统也可以任意选择帧中的一个作为预指定帧。在一些实施方式中,数据处理系统可以标识视频内容元素的最后一帧。数据处理系统可以选择视频内容元素的最后一帧作为预指定帧。在一些实施方式中,数据处理系统可以使用伪随机数生成器来生成帧号。帧号的范围可以从一到视频内容元素中的帧的数量。数据处理系统可以标识与所生成的帧号相对应的帧。数据处理系统可以选择所标识的帧作为预指定帧。如果视频内容元素包括单个帧,则数据处理系统可以选择单个帧作为预指定帧。数据处理系统也可以标识与预指定帧相对应的比特流。在一些实施方式中,数据处理系统可以确定与预指定帧相对应的经加密的比特流。数据处理系统可以将与预指定帧相对应的比特流存储在数据库中。
仍然根据第一验证策略,数据处理系统可以标识预指定帧的子集部分。当在客户端设备的I/O接口处显示时,子集部分可以与预指定帧的矩形区域相对应。通过指定矩形区域,数据处理系统可以验证预指定帧的子集部分是否实际上在客户端设备处被渲染和显示。数据处理系统可以标识预指定帧的矩形区域的像素尺寸。在一些实施方式中,像素尺寸可以包括矩形区域的左上角和矩形区域的右下角。数据处理系统可以选择或指定预指定帧的子集部分。数据处理系统也可以标识与预指定帧的指定子集部分相对应的比特流。在一些实施方式中,数据处理系统可以计算与预指定帧的子集部分相对应的比特流。数据处理系统可以所标识的比特流存储在数据库中。
在第二验证策略(模式B)下,数据处理系统可以生成新的帧并将其插入到视频内容元素中作为预指定帧。数据处理系统可以使用任何编码类型将新的帧生成到视频内容元素中作为预指定帧。在一些实施方式中,数据处理系统可以生成作为独立于视频内容元素中的任何帧的帧间编码图片的预指定帧。在一些实施方式中,数据处理系统可以通过使用先前帧和后续帧来生成作为双向预测图片的预指定帧。在一些实施方式中,数据处理系统可以通过使用先前帧来生成作为预测图片的预指定帧。为了阻止在插入新的帧时视频内容元素的恶化或退化,数据处理系统可以生成作为虚帧的预指定帧,以保留从先前帧到后续帧的视频内容的编码。在一些实施方式中,数据处理系统可以将预指定帧的渲染使能性质设置为空,以便阻止在客户端设备处对预指定帧的渲染,从而使预指定帧成为虚帧。数据处理系统然后可以将预指定帧插入到视频内容元素中。如果编码类型是预测的或双向预测的,则可以由数据处理系统在视频内容元素中的对应序列处插入预指定帧。在一些实施方式中,数据处理系统可以将预指定帧作为最后一帧插入到视频内容元素中。数据处理系统也可以标识与预指定帧相对应的比特流。在一些实施方式中,数据处理系统可以确定与预指定帧相对应的经加密的比特流。数据处理系统可以将与预指定帧相对应的比特流存储在数据库中。
为了指示客户端设备使用预指定帧来传送验证消息,数据处理系统可以将指定指示符包括在视频内容元素中。在一些实施方式中,指定指示符可以包括与所选验证策略相对应的验证策略标识符。在一些实施方式中,指定指示符可以包括与预指定帧的子集部分相对应的像素尺寸。在一些实施方式中,数据处理系统可以在预指定帧处插入指定指示符作为标记(例如,水印或其他不可见或不可察觉的标记)。在一些实施方式中,数据处理系统可以将指定指示符插入预指定帧的报头中。在一些实施方式中,数据处理系统可以将指定指示符插入视频内容元素的元数据中。被包括在数据中的指定指示符可以包括与预指定帧相对应的帧号。在一些实施方式中,数据处理系统可以与视频内容元素分离地向客户端设备发送指定指示符。
在预指定帧被选择或插入到视频内容元素中的情况下,数据处理系统可以经由网络发送视频内容元素。视频内容元素的发送可以包括流传输帧(例如,作为块)。在一些实施方式中,数据处理系统也可以发送客户端设备。可以由客户端设备使用客户端设备和客户端设备来处理预指定帧,以验证视频内容元素在客户端设备处被渲染。在一些实施方式中,客户端设备和/或客户端设备可以在客户端设备处被预先加载。
在发送之前,数据处理系统可以使用各种加密算法(例如,诸如 Diffie-Hellman密钥交换的数字权限管理模式)在发送之前加密视频内容元素。视频内容元素的加密和解密可能是计算复杂的。这样,网络中的试图解密视频内容元素的其他设备以本文详述的方式传送虚假跟踪事件以增加视频内容元素的查看计数可能是计算昂贵的。客户端设备接收到视频内容元素可以使得客户端设备执行如图4详述的功能。
现在参考图4,图4是描述根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法400的流程图。本文关于方法400描述的功能可以由如图1所示的客户端设备125或如图6所示的计算设备或其任意组合执行或以其他方式运行。简而言之,客户端设备可以从数据处理系统接收具有与预指定帧相对应的第一比特流的视频内容元素(框405)。客户端设备可以标识与视频内容元素的预指定帧相对应的第一比特流(框410)。客户端设备可以解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流(框415)。客户端设备可以向数据处理系统发送包括第二比特流的跟踪消息 (框420)。
更详细地,客户端设备可以从数据处理系统接收具有与预指定帧相对应的第一比特流的视频内容元素(框405)。继对视频内容的请求之后,客户端设备然后可以从数据处理系统接收视频内容元素。在一些实施方式中,客户端设备可以接收与视频内容元素一起的指定指示符。在一些实施方式中,客户端设备可以从数据处理系统接收与视频内容元素分离的指定指示符。
已经加载了视频内容元素后,应用可以开始播放视频内容元素的一个帧或多个帧。视频内容元素的播放可以包括当从数据处理系统接收到帧时流传输一个或多个帧。在处理视频内容元素的一个或多个帧时,应用可以调用可信平台模块来标识与帧相对应的比特流并来解密比特流,以便在(作为安全输出路径的)I/O接口上渲染和显示帧。
当视频内容元素被处理时,客户端设备可以确定当前帧是否是预指定帧。客户端设备可以使用指定指示符来标识预指定帧。在一些实施方式中,客户端设备可以使用图像识别算法来识别预指定帧上的标记,以将当前帧标识为预指定帧。在一些实施方式中,客户端设备可以读取当前帧的报头以标识指定指示符,从而确定当前帧是预指定帧。在一些实施方式中,客户端设备可以读取视频内容元素的元数据以标识预指定帧。对元数据的读取可以在播放视频内容元素之前。
如果当前帧不是预指定帧,则应用可以继续处理视频内容元素。应用可以渲染当前帧。应用然后可以标识下一帧。客户端设备然后可以使用上面列出的技术再次确定该帧是否是预指定帧。这个过程可以被重复,直到视频内容元素结束。
如果当前帧是预指定帧,则客户端设备可以标识哪个验证策略要被应用于验证对视频内容元素的渲染。在一些实施方式中,客户端设备可以基于指示由数据处理系统选择的验证策略的指定指示符来标识要应用哪个验证策略。在一些实施方式中,客户端设备可以基于预指定帧的渲染使能性质来标识要应用哪个验证策略。如果预指定帧的渲染使能性质被设置为真,则客户端设备可以标识要应用第一验证策略。如果预指定帧的渲染使能性质被设置为空,则客户端设备可以标识要应用第二验证策略。使用所标识的验证策略,客户端设备可以调用可信平台模块来编码预指定帧,以便验证在客户端设备处对视频内容元素的渲染。
客户端设备可以标识与视频内容元素的预指定帧相对应的第一比特流 (框410)。客户端设备可以解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流(框415)。在第一验证策略下,客户端设备可以允许应用渲染预指定帧以便在I/O接口上显示。在一些实施方式中,客户端设备可以标识与预指定帧相对应的比特流。比特流可能已经由数据处理系统加密。使用所标识的比特流,客户端设备可以调用可信平台模块来使用各种解密技术(例如,Diffie-Hellman密钥交换、RSA等)来解密与预指定帧相对应的比特流,以生成另一比特流。在一些实施方式中,客户端设备可以(例如,通过使用帧序列号)标识预指定帧。客户端设备然后可以调用可信平台模块来通过标识预指定帧来解密与预指定帧相对应的比特流。经解码的比特流可以是由应用用来在I/O接口上渲染和显示视频内容元素的二进制序列的一部分。以这种方式,客户端设备可以验证在客户端设备处对包括预指定帧的视频内容元素的渲染。
客户端设备可以向数据处理系统发送包括第二比特流的跟踪消息(框 420)。在一些实施方式中,经解码的比特流可以与预指定帧的指定子集部分相对应。客户端设备可以从指定标识符标识预指定帧的指定子集部分。在一些实施方式中,客户端设备可以从指定标识符标识预指定帧的子集部分的像素尺寸。在一些实施方式中,客户端设备可以标识与预指定帧的指定子集部分或预指定帧的子集部分的像素尺寸相对应的比特流。使用所标识的比特流,客户端设备可以调用可信平台模块来使用各种解密技术(例如, Diffie-Hellman密钥交换、RSA、加密散列等)来解密或以其他方式恢复与预指定帧相对应的比特流,以生成另一比特流。客户端设备可以调用可信平台模块来通过标识预指定帧的子集部分或预指定帧的子集部分的像素尺寸来解密与预指定帧相对应的比特流。经解码的比特流可以是由应用用来渲染和显示到I/O接口上的像素维度内显示的任何内容的子集部分的二进制序列的一部分。以这种方式,客户端设备可以验证在客户端设备处对包括预指定帧的子集部分的视频内容元素的渲染是否没有任何遮挡。
在第二验证策略下,在预指定帧的渲染使能性质被设置为空的情况下,应用可以放弃对预指定帧的渲染。在一些实施方式中,客户端设备可以标识与预指定帧相对应的比特流。比特流可能已经由数据处理系统加密。使用所标识的比特流,客户端设备可以调用可信平台模块来使用各种解密技术(例如,Diffie-Hellman密钥交换、RSA、加密散列等)来解密或以其他方式恢复与预指定帧相对应的比特流,以生成另一比特流。在一些实施方式中,客户端设备可以(例如,使用帧序列号)标识预指定帧。客户端设备然后可以调用可信平台模块来通过标识预指定帧来解密与预指定帧相对应的比特流。如果预指定帧的渲染性质被设置为真,则经解码的比特流可以是由应用用来处理视频内容元素以便在I/O接口上渲染的二进制序列的一部分。以这种方式,客户端设备可以验证对视频内容元素的渲染,而无需在客户端设备处实际渲染预指定帧。
在预指定帧的比特流被解码的情况下,客户端设备可以生成用于发送到数据处理系统的跟踪消息。跟踪消息可以包括标识预指定帧的信息。跟踪消息也可以包括与客户端设备相对应的设备标识符。跟踪消息也可以包括与视频内容元素相对应的标识符或地址。跟踪消息可以包括与预指定帧相对应的经解码的比特流。在一些实施方式中,跟踪消息可以包括与预指定帧的子集部分相对应的经解码的比特流。一旦生成,客户端设备就可以向数据处理系统发送跟踪消息。
在一些实施方式中,在跟踪消息的发送之前,客户端设备可以调用可信平台模块来加密与预指定帧或预指定帧的子集部分相对应的经解码的比特流。可信平台模块可以使用加密密钥(例如,由数据处理系统提供的公钥) 对经解码的比特流进行加密、认证或以其他方式签名。加密密钥可能已经与视频内容元素或预指定帧的指定指示符一起被接收。客户端设备可以将经加密的解码比特流包括或插入到跟踪消息中。在一些实施方式中,客户端设备可以将用于对经解码的比特流进行加密、认证或以其他方式签名的加密密钥插入或包括到跟踪消息中。
客户端设备可以调用可信平台模块来使用被包括在跟踪消息中的信息 (例如,帧标识符、视频内容标识符、设备标识符、时间戳和/或与预指定帧相对应的经解码的比特流等)生成组合值。在一些实施方式中,组合值可以是基于被包括在跟踪消息中的信息、和加密密钥(例如,保密散列密钥)而生成的键控散列消息认证码(HMAC)。在一些实施方式中,客户端设备可以将用于生成组合值(例如,HMAC)的加密密钥包括或插入到跟踪消息中。在一些实施方式中,被包括在跟踪消息中的加密密钥可能不同于用于生成组合值的加密密钥(例如,具有额外填充的零的加密密钥)。
客户端设备然后可以向数据处理系统发送具有经加密的解码比特流的跟踪消息。预指定帧或其子集部分的经解码的比特流可以对连接到网络的意图创建欺诈性跟踪事件以增加视频内容元素的查看计数的设备隐藏,从而产生视频内容元素实际上在客户端设备处被渲染和显示的次数的更准确计数。
一旦接收到跟踪消息,数据处理系统可以将被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流进行比较。被包括在跟踪消息中和存储在数据库中的比特流都可以与预指定帧或预指定帧的子集部分相对应。在一些实施方式中,数据处理系统可以访问数据库,以使用被包括在跟踪消息中的视频内容元素的标识符来标识与预指定帧或预指定帧的子集部分相对应的比特流。在一些实施方式中,响应于接收到视频内容元素的跟踪消息,数据处理系统可以标识或以其他方式计算与预指定帧或预指定帧的子集部分相对应的比特流。在一些实施方式中,在比较之前,数据处理系统可以使用被包括在跟踪消息中的加密密钥来解密跟踪消息中的比特流。在一些实施方式中,在比较之前,数据处理系统可以使用另一加密密钥(例如,公钥加密方案中的私钥)来解密跟踪消息中的比特流。在一些实施方式中,数据处理系统可以使用用于生成组合值的加密密钥来解密被包括在跟踪消息中的组合值。数据处理系统接收到跟踪消息可以使得数据处理系统执行图3的方法 300的剩余功能。
回到图3,视频内容元素可以具有与预指定帧相对应的第一比特流。数据处理系统可以将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较(框310)。一旦接收到跟踪消息,数据处理系统可以将被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流进行比较。被包括在跟踪消息中和存储在数据库上的比特流都可以与预指定帧或预指定帧的子集部分相对应。在一些实施方式中,数据处理系统可以访问数据库,以使用被包括在跟踪消息中的视频内容元素的标识符来标识与预指定帧或预指定帧的子集部分相对应的比特流。在一些实施方式中,响应于接收到视频内容元素的跟踪消息,数据处理系统可以标识或以其他方式计算与预指定帧或预指定帧的子集部分相对应的比特流。在一些实施方式中,在比较之前,数据处理系统可以使用另一加密密钥 (例如,公钥加密方案中的私钥)来解密跟踪消息中的比特流。
响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,数据处理系统可以确定视频内容元素在客户端设备处被渲染(框315)。如果被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流匹配,则数据处理系统可以确定或以其他方式验证视频内容元素在客户端设备处被渲染。数据处理系统可以标识跟踪消息中的设备标识符。数据处理系统可以访问数据库以搜索设备标识符。当已经接收到视频内容元素时,数据库可以包括设备标识符列表。数据处理系统可以确定跟踪消息中的设备标识符是否被包括在数据库中。数据处理系统可以标识跟踪消息中的视频内容标识符。数据处理系统可以标识访问数据库以搜索视频标识符。数据处理系统可以找到视频内容标识符与被包括在数据库中的视频内容标识符之间的匹配。数据处理系统可以使用帧标识符和视频内容标识符来访问数据库。数据处理系统可以确定帧标识符和视频内容标识符是否与在数据库处存储的任何帧标识符和视频内容标识符匹配。数据处理系统可以标识被包括在消息中的时间戳。数据处理系统可以访问数据库,以搜索视频内容元素经由网络被发送时的时间戳。如果时间戳在数据库中的任何时间戳的预定范围内,则数据处理系统可以将被包括在跟踪消息中的时间戳标识为与数据库中的时间戳匹配。数据处理系统可以标识被包括在跟踪消息中的帧标识符。
如果除了被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流匹配之外,被包括在跟踪消息中的任何一个或多个信息也与在数据库中存储的信息匹配,则数据处理系统可以记录视频内容元素已经在客户端设备处被渲染。记录可以被存储在数据库处,以在稍后时间检查特定视频内容元素是否和/或何时在特定客户端设备处被渲染。在一些实施方式中,数据处理系统可以更新视频内容元素的查看计数。响应于确定视频内容元素在客户端设备处被渲染并在数据库中找到跟踪消息的设备标识符,数据处理系统也可以更新视频内容元素的查看计数。在一些实施方式中,数据处理系统可以在数据库处维护计数器以保持对视频内容元素的查看计数的跟踪。在一些实施方式中,响应于被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流匹配,数据处理系统可以递增视频内容元素的查看计数的计数器。另一方面,如果被包括在跟踪消息中的比特流与在数据处理系统处标识的比特流不匹配,则数据处理系统可以确定视频内容元素没有在客户端设备处被正确渲染,并且数据处理系统可以将视频内容元素的查看计数维持在先前值。在一些实施方式中,数据处理系统可以警告网络管理员潜在的恶意第三方设备试图伪造跟踪事件,以篡改视频内容元素是否在客户端设备处被渲染的记录,从而增加视频内容元素的查看计数。
假设包括预指定帧的视频内容元素如本文所描述地被加密,则连接到数据库的其他设备(例如,恶意第三方)可能难以重复模拟跟踪消息,从而阻止欺诈性跟踪事件。以这种方式,数据处理系统可以增加视频内容元素的查看计数的准确性。此外,在客户端设备处对视频内容元素的渲染和显示可以被验证。
图5A和图5B是描述根据说明性实施方式的验证在信息资源上对视频内容的渲染的方法500的流程图。本文关于方法500描述的功能可以由如图1所示的数据处理系统110和客户端设备125、或如图6所示的计算设备、或者其任意组合执行或以其他方式运行。总之,从图5A开始,客户端设备可以发送对视频内容元素的请求。(框502)。数据处理系统可以接收对视频内容元素的请求(框504)。数据处理系统可以检索所请求的视频内容元素(框506)。数据处理系统可以选择用于验证对视频内容元素的渲染的策略(框 508)。
如果是模式A,数据处理系统可以标识视频内容元素中的每个帧的计算复杂度(框510)。数据处理系统可以从视频内容元素选择与最高计算复杂度相对应的帧作为预指定帧(框512)。数据处理系统可以标识预指定帧的一部分(方框514)。数据处理系统可以计算预指定的所标识的一部分的比特流(框 516)。如果是模式B,数据处理系统可以生成预指定帧(方框518)。数据处理系统可以将预指定帧插入到视频内容元素中(框520)。数据处理系统可以计算被插入到视频内容元素中的预指定帧的比特流(框522)。随后,数据处理系统可以存储视频内容元素的预指定帧或预指定帧的一部分的计算的比特流(框524)。数据处理系统可以向客户端设备发送具有预指定帧的视频内容元素(框526)。客户端设备可以接收视频内容元素(框528)。
移至图5B,客户端设备可以处理视频内容元素的帧(框530)。客户端设备可以确定当前帧是否是预指定帧(框532)。如果当前帧不是预指定帧,则客户端设备可以渲染当前帧以便显示(框534)。如果当前帧是预指定帧,则客户端设备可以标识用于验证视频内容元素的渲染的策略(框536)。如果是模式1,则客户端设备可以渲染预指定帧以便显示(框538)。客户端设备可以标识预指定帧的一部分(框540)。客户端设备可以标识并用加密密钥编码预指定帧的一部分的比特流(框542)。如果是模式B,客户端设备可以用加密密钥编码帧的比特流(框544)。客户端设备可以生成具有经编码的比特流的跟踪消息(框546)。客户端设备可以向数据处理系统发送跟踪消息(框 548)。客户端设备可以继续确定视频内容元素中是否有更多个帧(框550)。如果有另一视频内容元素,则客户端设备可以标识下一帧(框552),并且可以重复框530的功能。如果没有更多个帧,则客户端设备可以终止方法500。
继续,数据处理系统可以接收跟踪消息(框554)。数据处理系统可以用另一加密密钥解码跟踪消息中的比特流(框556)。数据处理系统可以确定来自跟踪消息的比特流是否与在数据库中存储的比特流匹配(框558)。如果比特流匹配,则数据处理系统可以将视频内容元素标识为在客户端设备处被渲染(框560)。数据处理系统可以递增视频内容元素的查看计数(框562)。在任一情况下,数据处理系统可以随后终止方法500。
图6示出了根据一些实施方式的可以用于实施本文讨论的任何计算机系统(包括数据处理系统110及其组件,诸如内容递送器130、策略管理器135、比特流比较器140和渲染验证器145,以及客户端设备125及其组件,诸如应用180、帧验证器190和消息生成器192)的说明性计算机系统600的通用架构。计算机系统600可以用于经由网络105提供信息以便显示。图6的计算机系统600包括通信地耦合到存储器625、一个或多个通信接口605、以及一个或多个输出设备610(例如,一个或多个显示单元)和一个或多个输入设备 615的一个或多个处理器620。处理器620可以被包括在数据处理系统110 或数据处理系统110的其他组件(诸如内容递送器130、策略管理器135、比特流比较器140和渲染验证器145)中。处理器可以被包括在客户端设备 125中,诸如在应用180、帧验证器190和消息生成器192中。
在图6的计算机系统600中,存储器625可以包括任何计算机可读存储介质,并且可以存储计算机指令,诸如用于实施本文针对各个系统描述的各种功能的处理器可运行指令,以及与其相关、由其生成或经由(多个)通信接口或(多个)输入设备(如果存在)接收到的任何数据。再次参考图1的系统100,数据处理系统110可以包括存储器625以存储与一个或多个内容单元的库存的可用性、一个或多个内容单元的预留等等相关的信息。存储器625可以包括数据库150。图6所示的(多个)处理器620可以用于运行存储在存储器625中的指令,并且在这样做时,也可以从存储器读取或向存储器写入根据指令的运行而处理和/或生成的各种信息。
图6中示出的计算机系统600的处理器620也可以通信地耦合到或用于控制(多个)通信接口605,以根据指令的运行来发送或接收各种信息。例如,(多个)通信接口605可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统600向其他设备(例如,其他计算机系统) 发送信息或从该其他设备接收信息。虽然未在图1或图6的系统中明确示出,但是一个或多个通信接口促进了系统600的组件之间的信息流。在一些实施方式中,(多个)通信接口可以(例如,经由各种硬件组件或软件组件)被配置以提供网站作为到计算机系统600的至少一些方面的访问门户。通信接口605的示例包括用户界面(例如,网页),用户可以通过该用户界面与数据处理系统110通信。
可以提供图6所示的计算机系统600的输出设备610,例如以允许结合指令的运行来查看或以其他方式感知各种信息。可以提供(多个)输入设备,例如以允许用户在指令的运行期间进行手动调整、进行选择、输入数据或以各种方式中的任何方式与处理器交互。本文进一步提供了与可以用于本文讨论的各种系统的通用计算机系统架构相关的附加信息。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中,或在体现在有形介质、固件或硬件上的计算机软件(包括本说明书中公开的结构及其结构等同物),或在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方式可以实施为编码在计算机存储介质上用于由数据处理装置运行或控制数据处理装置的操作的一个或多个计算机程序,即计算机程序指令的一个或多个模块。程序指令可以被编码在人工生成的传播信号上,例如,被生成以编码信息以用于发送到合适的接收器装置以用于由数据处理装置运行的机器生成的电、光学或电磁信号。计算机存储介质可以是计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或被包括在该一个或多个单独的物理组件或介质中。
本文公开的特征可以在可以包括被配置为将互联网连接与(例如,经由电缆、卫星、无线或其他信号接收的)更传统的电视节目源集成的处理模块的智能电视模块(或联网电视模块、混合电视模块等)上实施。智能电视模块可以物理地并入到电视机中,或者可以包括诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统或其他伴随设备的单独的设备。智能电视模块可以被配置为允许观看者搜索和查找网络上、本地有线TV频道上、卫星TV频道上或存储在本地硬盘驱动器上的视频、电影、照片和其他内容。机顶盒(Set-Top Box,STB)或机顶盒单元(Set-Top Unit,STU)可以包括可以包含调谐器并连接到电视机和外部信号源的信息电器设备,将信号转换成然后显示在电视屏幕或其他显示设备上的内容。智能电视模块可以被配置为提供主屏幕或顶层屏幕,其包括用于多个不同应用(诸如网络浏览器和多个流媒体服务、联网电缆或卫星媒体源、其他网络“频道”等)的图标。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,以允许用户控制智能电视模块等。在一些实施方式中,该特征可以在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持计算机、平板PC或其他计算设备上实施。在一些实施方式中,本文公开的特征可以在可以包括被配置为集成互联网连接(例如,与另一计算设备或网络105的连接)的处理模块的可穿戴设备或组件(例如,智能手表)上实施。
本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读存储设备上的数据或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”包含用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、一个或多个芯片上的系统、或前述的组合。装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置也可以包括为所讨论的计算机程序创建运行环境的代码,例如,组成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们中的一个或多个的组合的代码。装置和运行环境可以实现各种不同的计算模型基础结构,诸如网络服务、分布式计算和网格计算基础结构。内容递送器130、策略管理器135、比特流比较器140和渲染验证器145可以包括或共享一个或多个数据处理装置、计算设备或处理器。应用180、帧验证器190和消息生成器192可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言、声明或过程语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要与文件系统中的文件相对应。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以部署,以在一个计算机、或位于一个站点或跨多个站点分布并通过通信网络互连的多个计算机上运行。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作的一个或多个可编程处理器执行。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置也可以被实施为专用逻辑电路。
适合于运行计算机程序的处理器包括例如通用微处理器和专用微处理器两者、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机也将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或可操作地耦合为从用于存储数据的一个或多个大容量存储设备接收数据或向用于存储数据的一个或多个大容量存储设备传递数据或两者。然而,计算机不需要具有这样的设备。此外,例如,计算机可以嵌入另一设备中,例如,移动电话、个人数字助理(Personal Digital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(Universal Serial Bus,USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质、以及存储器设备,包括例如半导体存储器设备(例如,EPROM、EEPROM和闪速存储器设备)、磁盘(例如,内部硬盘或可移动磁盘)、磁光盘、以及CD ROM 和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户提供信息的显示设备(例如,CRT(Cathode Ray Tube,阴极射线管)、等离子体或LCD(Liquid Crystal Display,液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘以及定点设备(例如,鼠标或跟踪球)的计算机上实施。其他类型的设备也可以用于提供与用户的交互。例如,提供给用户的反馈可以包括任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向由用户使用的设备传送文档和从由用户使用的设备接收文档来与用户交互,例如,通过响应于从网络浏览器接收的请求向用户的客户端设备上的网络浏览器传送网页。
本说明书中描述的主题的实施方式可以在包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或包括前端组件(例如,具有用户可以通过其与本说明书描述的实施方式交互的图形用户接口或网络浏览器的客户端计算机),或一个或多个这样的后端组件、中间件组件或前端组件的任何组合的计算系统中实施。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网 (“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)、以及对等网络(例如,ad hoc对等网络)。
诸如系统600或系统100的计算系统可以包括客户端和服务器。例如,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而出现。在一些实施方式中,服务器将数据(例如, HTML页面)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据以及从与客户端设备交互的用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可能要求保护的内容的范围的限制,而是特定于本文描述的系统和方法的特定实施方式的特征的描述。在本说明书中描述的单独的实施方式的上下文中的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从所要求保护的组合删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或以先后顺序执行这些操作或者执行所有图示的操作来实现期望的结果。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或先后顺序来实现期望的结果。
在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应该理解为在所有实施方式中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包为多个软件产品。内容递送器130、策略管理器135、比特流比较器140和渲染验证器145可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器、或搜索引擎的一部分。此外,应用180、帧验证器190和消息生成器192可以包括或可以是客户端设备125的一部分、单个模块或具有一个或多个处理模块的逻辑设备。内容递送器130、策略管理器135、比特流比较器140和渲染验证器145可以包括或共享一个或多个数据处理装置、计算设备或处理器,并且是数据处理系统110的一部分、单个模块或具有一个或多个处理模块的逻辑设备。
现在已经描述了一些说明性实施方式和实施方式,显然已经作为示例呈现的前述内容是说明性的而不是限制性的。具体地,尽管本文呈现的示例中的许多示例涉及方法动作或系统元素的特定组合,但是那些动作和那些元素可以以其他方式组合以实现相同的目标。仅结合一个实施方式讨论的动作、元素和特征不意图被排除在其他实施方式或实施方式中的类似角色之外。
本文使用的措辞和术语是出于描述的目的,并且不应被视为限制性的。本文使用的“包括”、“包含”、“具有”、“含有”、“涉及”“以……为特征”、“特征在于”及其变型意味着包含其后列出的项、其等同物和附加项,以及由其后专门列出的项目组成的替代实施方式。在一个实施方式中,本文所描述的系统和方法由所描述的元素、动作或组件中的一个、多于一个的每个组合或所有组成。
本文以单数引用的对系统和方法的实施方式或元素或动作的任何引用也可以包含包括多个这些元素的实施方式,并且本文中以复数对任何实施方式或元素或动作的任何引用也可以包含仅包括单个元素的实施方式。以单数或复数形式的引用并不意图将目前公开的系统或方法、其组件、动作或元素限制为单数或多数配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中动作或元素至少部分基于任何信息、动作或元素的实施方式。
本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“可替代的实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是互斥的,并且意图指示结合实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式中。本文使用的这样的术语不一定都指同一实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式与任何其他实施方式包含地或排他地结合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示所描述的术语中的单个、多于一个和所有中的任何一个。
在附图、详细描述或任何权利要求中的技术特征后面跟有附图标记的情况下,包括了附图标记是出于增加附图、详细描述和权利要求的可理解性的唯一目的。因此,附图标记或缺失附图标记对任何权利要求元素的范围都没有任何限制影响。
在不脱离本文描述的系统和方法的特性的情况下,本文描述的系统和方法可以以其他特定形式体现。尽管本文提供的示例涉及验证在信息资源上对视频内容的渲染并部署其对策,但是本文描述的系统和方法可以包括应用于其他环境。前述实施方式是说明性的,而不是对所描述的系统和方法的限制。本文描述的系统和方法的范围因此由所附权利要求而不是前述描述来指示,并且落入权利要求等同物的含义和范围内的改变被包含在其中。

Claims (20)

1.一种生成跟踪消息的方法,所述方法包括:
在客户端设备处接收表示包括多个图像帧的内容项的经编码的第一比特流,所述经编码的第一比特流包括服务器基于解码预指定帧的计算复杂度而选择的预指定帧;
在客户端设备的可信平台模块中:
解码第一比特流以恢复内容项的帧,
基于经解码的比特流生成表示内容项的帧的第二比特流,
向输出接口传送第二比特流;以及
生成包括客户端设备的标识和标识由可信平台模块处理的内容项的预指定帧的至少一部分的信息的跟踪消息;以及
从客户端设备发送跟踪消息。
2.根据权利要求1所述的方法,其中,所述跟踪消息包括标识由客户端设备的可信平台模块从第一比特流恢复的内容项的预指定帧的信息。
3.根据权利要求1所述的方法,其中,所述跟踪消息包括标识由客户端设备的可信平台模块从第一比特流恢复的内容项的最后一帧的信息。
4.根据权利要求1所述的方法,其中,所述跟踪消息包括标识由客户端设备的可信平台模块向输出接口传送的第二比特流中包括的内容项的帧的信息。
5.根据权利要求4所述的方法,其中,所述跟踪消息包括标识由客户端设备的可信平台模块向输出接口传送的第二比特流中包括的内容项的最后一帧的信息。
6.根据权利要求1所述的方法,还包括在从客户端设备发送跟踪消息之前,由可信平台模块认证跟踪消息以指示跟踪消息已由可信平台模块生成。
7.根据权利要求1所述的方法,其中,向输出接口传送第二比特流包括通过安全输出路径向输出接口传送第二比特流。
8.根据权利要求1所述的方法,还包括在向输出接口传送第二比特流之前加密第二比特流。
9.一种由服务器进行的方法,所述方法包括:
生成表示目标内容项的第一比特流;
基于解码预指定帧的计算复杂度选择第一比特流的预指定帧;
向目标客户端设备传送第一比特流;
接收标明与内容项的递送相关的跟踪消息;
确定跟踪消息是否包含传送跟踪消息的传送设备的标识符;
确定传送设备和目标客户端设备是否是同一设备;
如果传送客户端设备和目标客户端设备不是同一设备,则忽视跟踪消息;
如果传送客户端设备和目标客户端设备是同一设备:则
从跟踪消息恢复关于由客户端设备的可信平台模块处理的内容项的预指定帧的至少一部分的信息;以及
将由客户端设备的可信平台模块处理的内容项的预指定帧的至少一部分与目标内容项进行比较。
10.根据权利要求9所述的方法,包括如果由客户端设备的可信平台模块处理的内容项的帧的至少一部分不被包括在目标内容项中,则忽视跟踪消息。
11.根据权利要求9所述的方法,还包括:
确定跟踪消息是否是由目标客户端设备的可信平台模块生成;以及
如果跟踪消息不是由目标客户端设备的可信平台模块生成,则忽视跟踪消息。
12.根据权利要求9所述的方法
其中,所述方法还包括确定由客户端设备的可信平台模块处理的内容项的帧是否是预指定帧。
13.一种验证在信息资源上对视频内容的渲染的方法,包括:
由具有一个或多个处理器的数据处理系统向客户端设备发送视频内容元素,视频内容元素具有与预指定帧相对应的第一比特流,其中,所述第一比特流包括基于预指定帧的计算复杂度而选择的所述预指定帧,接收到视频内容元素使得客户端设备:
将第一比特流标识为与视频内容元素的预指定帧相对应,
解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流,以及
向数据处理系统发送包括第二比特流的跟踪消息;以及
由数据处理系统将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较;以及
由数据处理系统响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
14.一种用于验证在信息资源上对视频内容的渲染的系统,包括:
在具有一个或多个处理器的数据处理系统上运行的内容递送器,所述内容递送器被配置为向客户端设备发送视频内容元素,所述视频内容元素具有与预指定帧相对应的第一比特流,接收到视频内容元素使得客户端设备,其中,所述第一比特流包括基于预指定帧的计算复杂度而选择的所述预指定帧:
将第一比特流标识为与视频内容元素的预指定帧相对应,
解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流,以及
向数据处理系统发送包括第二比特流的跟踪消息;以及
在数据处理系统上运行的比特流比较器,所述比特流比较器被配置为将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较;以及
在数据处理系统上运行的渲染验证器,所述渲染验证器被配置为响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
15.根据权利要求14所述的系统,还包括在数据处理系统上运行的策略管理器,所述策略管理器被配置为:
生成包括第一比特流的预指定帧,所述预指定帧的渲染性质被设置为空;以及
将预指定帧插入到视频内容元素中。
16.根据权利要求14所述的系统,还包括在数据处理系统上运行的策略管理器,所述策略管理器被配置为:
从视频内容元素选择预指定帧,预指定帧的解码依赖于视频内容元素的不同帧;以及
标识预指定帧的子集部分,以便由客户端设备解码;并且
其中接收到视频内容元素还使得客户端设备解码与预指定帧的子集部分相对应的第一比特流,以生成第二比特流,所述第二比特流用于将预指定帧的子集部分渲染到客户端设备的显示器上。
17.根据权利要求14所述的系统,其中,所述内容递送器还被配置为发送包括单个帧的视频内容元素,所述单个帧包括预指定帧。
18.根据权利要求14所述的系统,其中,接收到视频内容元素还使得客户端设备使用第一加密密钥由可信平台模块来编码第二比特流,以及发送包括使用第一加密密钥加密的第二比特流的跟踪消息;并且
其中,所述比特流比较器还被配置为将使用第一加密密钥加密的第二比特流与使用第二加密密钥加密的第三比特流进行比较。
19.根据权利要求14所述的系统,其中,所述渲染验证器还被配置为响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,更新视频内容元素的查看计数器。
20.一种验证在信息资源上对视频内容的渲染的方法,包括:
由具有一个或多个处理器的客户端设备从数据处理系统接收具有与预指定帧相对应的第一比特流的视频内容元素,其中,所述第一比特流包括基于预指定帧的计算复杂度而选择的所述预指定帧;
由客户端设备响应于接收到视频内容元素,将第一比特流标识为与视频内容元素的预指定帧相对应;
由客户端设备解码与视频内容元素的预指定帧相对应的第一比特流,以生成第二比特流;以及
由客户端设备向数据处理系统发送包括第二比特流的跟踪消息,接收到跟踪消息使得数据处理系统:
将被包括在来自客户端设备的跟踪消息中的第二比特流与视频内容元素的在数据库处维护的第三比特流进行比较;以及
响应于来自客户端设备的第二比特流与在数据库处维护的第三比特流匹配,确定视频内容元素在客户端设备处被渲染。
CN201780067707.6A 2017-03-14 2017-03-14 使用可信平台模块验证在客户端设备处对视频内容的渲染 Active CN109891907B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/022256 WO2018169515A1 (en) 2017-03-14 2017-03-14 Verifying the rendering of video content at client devices using trusted platform modules

Publications (2)

Publication Number Publication Date
CN109891907A CN109891907A (zh) 2019-06-14
CN109891907B true CN109891907B (zh) 2022-03-15

Family

ID=58545192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067707.6A Active CN109891907B (zh) 2017-03-14 2017-03-14 使用可信平台模块验证在客户端设备处对视频内容的渲染

Country Status (4)

Country Link
US (3) US11375292B2 (zh)
EP (2) EP4266691A3 (zh)
CN (1) CN109891907B (zh)
WO (1) WO2018169515A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956931B2 (en) * 2018-02-07 2021-03-23 Verasity Foundation Company Limited System and method for proof of view via blockchain
US11139977B2 (en) * 2018-02-07 2021-10-05 Verasity Limited System and method for proof of view via blockchain
US11893638B2 (en) * 2018-02-07 2024-02-06 Verasity Limited S.R.L. System and method for content stake via blockchain
US20200162762A1 (en) * 2018-11-20 2020-05-21 Motorola Solutions, Inc Method and device to provide receiver perspective for mobile streaming video
US20220184492A1 (en) * 2019-03-18 2022-06-16 Google Llc Timing compensation and correlation of input with frames in a video game
US11128473B1 (en) * 2019-03-20 2021-09-21 NortonLifeLock Inc. Systems and methods for assuring authenticity of electronic sensor data
US10944493B2 (en) * 2019-05-30 2021-03-09 Advanced New Technologies Co., Ltd. Monitoring video broadcasts
CN110868413B (zh) * 2019-11-12 2021-09-17 成都索贝数码科技股份有限公司 一种基于帧内提取生成关联摘要的视音频可信播放方法
WO2021178446A1 (en) * 2020-03-03 2021-09-10 Arris Enterprises Llc Media program viewership measurement using blockchains

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060417A (zh) * 2006-04-21 2007-10-24 飞塔信息科技(北京)有限公司 网络广告播发系统
CN101251918A (zh) * 2007-12-20 2008-08-27 北京爱笛星科技有限公司 广告内容生成验证信息系统及其方法
CN105191293A (zh) * 2013-03-15 2015-12-23 高通股份有限公司 广告下载验证

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715076B1 (en) * 1999-10-21 2004-03-30 Koninklijke Philips Electronics N.V. Video signal authentication system
EP1794698A4 (en) 2004-08-31 2011-02-02 Bby Solutions Inc SYSTEM AND METHOD FOR INDIRECT IDENTIFICATION OF CLIENTS
US8099324B2 (en) * 2005-03-29 2012-01-17 Microsoft Corporation Securely providing advertising subsidized computer usage
US7673135B2 (en) * 2005-12-08 2010-03-02 Microsoft Corporation Request authentication token
US7743394B2 (en) 2007-04-03 2010-06-22 Google Inc. Log processing of channel tunes and channel tune times generated from a television processing device
US20090287574A1 (en) * 2008-05-16 2009-11-19 Brendan Kane Attachment of videos to advertisements on websites
KR101673598B1 (ko) 2010-03-12 2016-11-22 삼성전자주식회사 컨텐츠 전송 시스템에서 am보고 방법 및 장치
US9484046B2 (en) 2010-11-04 2016-11-01 Digimarc Corporation Smartphone-based methods and systems
EP2742695A4 (en) 2011-08-10 2016-08-31 Ericsson Telefon Ab L M METHOD AND APPARATUS FOR CREATING A DISOCLEMENT CARD USED FOR 3D VIDEO CODING
US9374620B2 (en) * 2011-10-21 2016-06-21 Sony Corporation Terminal apparatus, server apparatus, information processing method, program, and interlocked application feed system
WO2014004914A1 (en) 2012-06-28 2014-01-03 Google Inc. Generating a sequence of audio fingerprints at a set top box
US20160381436A1 (en) * 2014-05-08 2016-12-29 Lei Yu System and method for auto content recognition
US10506244B2 (en) * 2015-03-06 2019-12-10 Qualcomm Incorporated Method and apparatus for video coding using adaptive tile sizes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060417A (zh) * 2006-04-21 2007-10-24 飞塔信息科技(北京)有限公司 网络广告播发系统
CN101251918A (zh) * 2007-12-20 2008-08-27 北京爱笛星科技有限公司 广告内容生成验证信息系统及其方法
CN105191293A (zh) * 2013-03-15 2015-12-23 高通股份有限公司 广告下载验证

Also Published As

Publication number Publication date
US11375292B2 (en) 2022-06-28
WO2018169515A1 (en) 2018-09-20
US20230300427A1 (en) 2023-09-21
EP4266691A2 (en) 2023-10-25
US20220321977A1 (en) 2022-10-06
US11700433B2 (en) 2023-07-11
EP4266691A3 (en) 2023-12-27
US20190261063A1 (en) 2019-08-22
CN109891907A (zh) 2019-06-14
EP3520429B1 (en) 2023-09-13
EP3520429A1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
CN109891907B (zh) 使用可信平台模块验证在客户端设备处对视频内容的渲染
US11102004B2 (en) Systems and methods for distributed verification of online identity
JP6982201B1 (ja) 不正防止デバイス識別子に基づいてコンテンツアイテム動作を処理するためのシステムおよび方法
JP5756567B2 (ja) ハードウェアベースの信頼のルート内でメタデータに基づき動的且つリアルタイムに広告を挿入する方法および装置
CN110401677B (zh) 数字版权密钥的获取方法、装置、存储介质及电子设备
WO2019134303A1 (zh) 直播间人气处理方法、装置、服务器及存储介质
KR20150131239A (ko) 광고 다운로드 검증
CN113015974A (zh) 针对隐私保护的可验证同意
US11949688B2 (en) Securing browser cookies
CN116938449A (zh) 防止欺诈的计算机实现的方法、存储介质、设备及系统
KR102038963B1 (ko) 오브젝트 특성에 따라 적응적으로 화면 정보 데이터를 보호하는 방법 및 장치
JP2022532815A (ja) 集約されたネットワーク測定における不正の防止
JP7098065B1 (ja) 電気通信ネットワーク測定におけるデータ操作の防止およびユーザのプライバシーの保護
CN117997519A (zh) 数据处理方法、装置、程序产品、计算机设备和介质

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