Instead of selling digital content to consumers, a digital content owner can make digital content accessible to consumers for free but sell ad space to advertisers. With such “ad-supported” digital content, one or more advertisements would be played before, during, or after the playback of the digital content. Due to the difficulties of protecting digital content from being illegally copied and transferred, ad-supported digital content is often streamed from a network location directly to the user's playback device, which prevents the user from easily capturing and copying the digital content. While streaming ad-supported digital content provides digital content owners and advertisers with desired control over their assets, streaming requires the playback device to be an online device connected to the content service head end or source. Accordingly, a user is prevented from enjoying the digital content on an offline playback device, such as the user's home television, media-capable phone, personal media player, or MP3 player, which may offer improved user pleasure. Recently, services have been announced that allow ad-supported digital content to be downloaded. However, these services introduce the risk that a user will be able to strip out the advertisements from the downloaded content package and view the digital content without the advertisements. If a content owner cannot assure an advertiser that its advertisement will be viewed, advertisers may be reluctant to buy ad space in downloadable digital content, which limits the content owner's ability to monetizing its digital content.
Introduction
By way of introduction, the embodiments described below generally relate to a portable digital content device and methods for use therewith. In one embodiment, a portable digital content device and method are disclosed for tracking usage activity to support digital asset management in a mobile environment. In another embodiment, an offline/disconnected advertisement inventory management and advertisement decision system and method are disclosed. While these systems and methods can be used with any suitable portable digital content device, an exemplary portable digital content device is disclosed. Any of the embodiments described herein can be used alone or in combination. Accordingly, the usage activity tracking methods do not necessarily need to be used with the exemplary portable digital content device or with the advertisement decision system, and the exemplary portable digital content device does not necessarily needed to be used with the usage activity tracking methods or with the advertisement decision system. Further, the examples set forth below are merely used to illustrate these embodiments and are not intended as a limitation on the claims.
Embodiments Relating to Tracking Usage Activity to Support Digital Asset Management in a Mobile Environment
Turning now to the drawings,
The memory 120 in the portable digital content device 110 can take any suitable form and, in one embodiment, is a non-volatile solid-state memory array (e.g., Flash memory). It should be noted that other types of memory can be used, such as, but not limited to, optical or magnetic media. While the memory 120 is shown as a single component in
Turning now to
In operation, a user uses the first host device 140 to download digital content and store it in the memory 120 of the portable digital content device 110. (As described in more detail below, the circuitry 130 can be used in the process of storing digital content and other data in the memory 120.) For example, in one embodiment, a general Web browser or specialized client application running on the first host device 140 presents a graphical user interface to the user, through which the user can select digital content to be downloaded to the portable digital content device 110. One such suitable service is Fanfare from SanDisk Corporation.
In the embodiment shown in
Digital content can take any suitable form, such as, but not limited to, video (with or without accompanying audio) (e.g., a movie, an episode of a TV show, a news program, etc.), audio (e.g., a song, a podcast, one or a series of sounds, etc.), still or moving images (e.g., a photograph, a computer-generated display, etc.), text (with or without graphics) (e.g., an article, a text file, etc.), and a hybrid multi-media presentation of two or more of these forms. Digital content can be passive or require interaction by a user. In this embodiment, the digital content is “ad-supported digital content,” meaning that one or more advertisements are associated with the digital content and are intended to be played before, during, and/or after the digital content is played. In the embodiment shown in
As used herein, an “advertisement” is digital content designed to attract attention or patronage. An advertisement can take the same or different form as its associated digital content. For example, if the digital content is a video, the advertisement can also be a video or can be audio or text. An “advertisement” can be, but does not need to be, directed to a product or service. For example, an “advertisement” can be a commercial for a product or service, a public service announcement, a station or channel identification spot, or an identification of an owner of the digital content. In some forms, an “advertisement” is easily recognizable as a traditional advertisement (e.g., a commercial for a product or service). In other forms, an “advertisement” may not be as easily recognizable. For example, if the digital content of interest is a song of a well-known artist, the “advertisement” can be a song of a lesser-known artist. Even if the song of the lesser-known artist is presented by itself (e.g., without a voice-over encouraging the user to download the song), the song of the lesser-known artist that is presented to the user attracts attention to the lesser-known artist. Also, in some situations, the digital content is the “primary” digital content (or the “supported digital content”) in the sense that it is the content of interest to the user (e.g., an episode of a TV show), and the advertisement is “supplemental” digital content (or the “supporting digital content”). However, in some situations, the advertisement can be of more interest to a user than the “primary” content. For example, if the advertisement is a limited-release “preview” of an upcoming movie, the user may be more interested in watching the advertisement than the primary content that it is associated with.
After the digital content and advertisement are downloaded into the memory 120 of the portable digital content device 110, the user removes the portable digital content device 110 from the first host device 140. Accordingly, the portable digital content device 110 is now “offline.” As shown in
While the second host device 160 can be the same type of device as the first host device 140 (e.g., both host devices 140, 160 can be personal computers), the second host device 160 can be a different type of host device. For example, the first host device 140 can be a personal computer through which a user downloads ad-supported digital content onto his portable digital content device 110, and the second host device 160 can be the user's home television or portable media player (as mentioned above, the second host device 160 can have an adaptor or cradle to place the portable digital content device 110 in communication with the second host device 160). Further, while the second host device 160 is shown as being offline in
After the portable digital content device 110 is placed in communication with the second host device 160, the digital content and the advertisement can be played on the second host device 160. The form of the playback operation can depend on the form of the digital content. For example, if the digital content is a video file or an audio file, playback of the digital content can be playing the video (e.g., an episode of a television show) or the audio (e.g., a song). As another example, if the digital content is an image file or a text file, playback of the digital content can be displaying the image or text. As yet another example, if the digital content is an interactive form/survey, playback of the digital content can be presenting the interactive form/survey to the user.
As will be described in more detail below, in some embodiments, the circuitry 130 in the portable digital content device 110 is further operative to decrypt and/or decode the digital content and/or advertisement to provide an analog video and/or audio output to the second host device 160. In this way, the second host device 160 acts merely as a display device for the played digital content and advertisement. In other embodiments, the playback functionally is provided in the second host device 160, and, in yet other embodiments, the playback functionally is distributed between the portable digital content device 110 and the second host device 160. In any of these implementations, the request to play the digital content can be made via a user input element on the portable digital content device 110 (or a remote control in communication with the portable digital content device 110) or via the second host device 160. Further, playback can automatically occur when the portable digital content device 110 is connected to the second host device 160.
Because the digital content is ad-supported, at least one advertisement is played before, during, or after the digital content. As mentioned in the background section above, because a downloaded content package is in the possession of a user, there is a risk that the user will strip out advertisements from the downloaded content package and view the digital content without the advertisements. This may make advertisers reluctant to buy ad space in downloadable digital content, which would limit the content owner's ability to monetizing its digital content. In this embodiment, to help assure an advertiser that its advertisement will be viewed, the circuitry 130 in the portable digital content device 110 is operative to track usage activity of the advertisement, which can be later reported back to the content owner, advertiser, or other entity to prove that the advertisement is being watched and, optionally, to provide other information. As shown in
As used herein, the term “usage activity” refers to any activity relating to the asset being tracked. Usage activity can include, for example, whether an asset was played (either partially or in its entirety), the number of times the asset was played (i.e., the “play count” of the advertisement), the amount of time spent playing an asset, whether the asset was skipped in its entirety, whether and how many times the asset was replayed, whether a fast forward or rewind operation was used during the playback of the asset, user rating of the asset, the time the asset was played, information about the user who consumed the asset, information on the host device used to consume the asset, any survey information that may have been requested and answered, etc. In this particular embodiment, the asset whose activity is being tracked is the advertisement. However, it should be noted that the usage activity of the digital content or other assets in the portable digital content device 110 can also be tracked.
As shown in
In addition to reporting usage activity data, the portable digital content device 110 can take advantage of being connected to the network 150 to update the stored advertisement. Some advertisements may become old and outdated. For example, an advertisement downloaded with a TV show in September may no longer be timely in December. Accordingly, a replacement advertisement can be downloaded. Also, additional advertisements may be downloaded, as well as new or changed rules of an advertisement delivery system running on the portable digital content device 110, as will be described in more detail below. The portable digital content device 110 can also download changes in the sequence or features of the main digital content (e.g., adding a new ending to a movie). Further, as mentioned above, the user can download additional digital content when he places the portable digital content device 110 in communication with the host device 170.
In
As mentioned above, the circuitry 130 in the portable digital content device 110 is operative to track usage activity of an advertisement. This provides advantages over systems in which usage activity tracking of the advertisement is performed by the host device. Consider, for example, the situation in which the portable digital content device takes the form of a memory card. Because circuitry in the memory card is responsible for tracking usage activity of the advertisement, the usage activity of the advertisement will be tracked irrespective of what host device is being used. In contrast, with system in which usage activity tracking is performed by the host device, the usage activity of the advertisement will only be tracked if the host device comprises the necessary player application (or other software). So, if the memory card is connected to a host device with the appropriate player application, the usage activity of the advertisement will be tracked. However, if the memory card is connected to a host device that does not have appropriate player application, the usage activity of the advertisement will not be tracked (the absence of the appropriate player application may even prevent the digital content and/or advertisement from being played at all). Accordingly, by equipping the portable digital content device with circuitry operative to track usage activity of an advertisement, the usage activity of the advertisement will be tracked irrespective of the type of host device and irrespective of whether the host device has the needed player application (i.e., the usage activity tracking functionality is host device and player “agnostic”). This makes the content on the portable digital content device much more portable since the usage activity tracking is tied to the portable digital content device and not to a particular host device or player application. This is especially desirable in today's media environment where users are becoming increasingly frustrated with the inflexibility associated with closed systems.
With the general operation of this embodiment now described, the following paragraphs and drawings illustrate various specific implementations. By way of overview, these various implementations relate to encryption, security mechanism of the memory, and relationships between the digital content and the advertisement(s). It is important to note that these various implementations are being presented merely to illustrate this embodiment, and details of these various implementations should not be read into the claims unless explicitly recited therein.
Returning to the drawings,
In
The ingestion service 200 then packages the main presentation asset and the metadata file 210 for publication. In this embodiment, the packaging of the main presentation asset 220 comprises encrypting the main presentation asset 220 and adding a file header 225 specifying a content encryption key (“CEK”) 227 needed to decrypt the encrypted main presentation asset 220. The file 230 containing the header 225 and encrypted main presentation asset 220 is then published on a content delivery network (“CDN”) 240. (Although the CDN 240 is shown as a single component in
As shown in
In this embodiment, the CEK 227 is stored in the hidden area 310 to prevent an unauthorized user from gaining access to the CEK 227 and being able to decrypt the encrypted main presentation asset 220. Since the main presentation asset 220 is encrypted and cannot be decrypted without the hidden CEK 227, the main presentation asset 220 can be stored in the public area 300. If the encrypted main presentation asset 220 is stored in the public area 200, a user will be able to see the presence of the main presentation asset 220 using a file system on a host device. However, as an extra security precaution, if the user deletes or tries to alter the main presentation asset 220 (or an asset that forms part of the complete content package, as will be described in more detail below), the portable digital content device 110 can prevent playback of the main presentation asset 220 until the main presentation asset 220 (and any associated assets) are re-downloaded. Although not shown in
The next several drawings and paragraphs illustrate various alternatives that can be used.
In
In this embodiment, the file header 412, 422 in each file 410, 420 points to a respective license data object 460, 470. The license data object 460, 470 contains the CEK for its associated main presentation asset 414, 424 as well as a “playlist” indicating the ad avail locations in the main presentation asset 414, 424 and which of the ad assets 440, 442, 444 to place in the ad avail locations. (In this embodiment, ad asset 442 is shared between the main presentation assets 414, 424. In other embodiments, each main presentation asset has its own unique set of ad assets.) A player (e.g., on the portable digital content device) would use the playlist to assemble the ad assets 440, 442, 444 into the appropriate ad avail locations in the main presentation assets 414, 424. In this way, the playlists in the license data objects 460, 470 would be used to assemble advertisement(s) into digital content on-the-fly, as opposed to the embodiment shown in
While the use of encrypted files and private partitions was used in the above embodiments, it should be noted that these features are not required in all embodiments. For example, in the embodiment shown in
Embodiments Relating to Offline/Disconnected Advertisement Inventory Management/Advertisement Decision System
In the embodiments discussed in the previous section, advertisements were either “stitched-in” to digital content by an ingestion service or were assembled on-the-fly by the portable digital content device using a playlist. In those embodiments, the presentation of advertisements was static in that the same ad assets were played each time the digital content was played. However, it may be desired to serve-up ad assets in a dynamic and flexible manner according to a set of rules of an advertisement decision system. (As used herein, “set” refers to a group of one or more than one member.) The set of rules can be based on, for example, content type, popularity, demographic and/or psychographic information about a user, personal preferences of a user, location in the digital content available for an advertisement, time, history of played advertisements, to-be-played advertisements, type of host device being used for playback, etc.
Advertisement decision systems are typically thought of as complex systems used by broadcast (e.g., terrestrial, satellite, or cable) systems to schedule or inject advertisements in a broadcast. The complexity of traditional linear broadcast advertisement decision systems have recently been tempered, and online advertisement decision systems have emerged to inject ads into streaming broadcasts over the Internet. However, an online advertisement decision system requires an online playback device, which may not be convenient or enjoyable for the user. To provide more flexibility, an advertisement decision system can be implemented on a host device. In operation, a portable digital content device, such as a memory card, would be connected to and provide the host device with digital content for playback. The ad pool for use with the advertisement decision system can be stored in the host device or in the portable digital content device, and the advertisement decision system would choose advertisements from the ad pool based on the rules in the advertisement decision system in the host device. Since a host device may have somewhat sophisticated circuitry, implementation of an advertisement decision system may be viewed as an acceptable substitute for the more complex advertisement decision systems used to inject ads into streaming broadcasts over the Internet. However, having an advertisement decision system being tied to a host device means that an advertisement decision system can only be used when the portable digital content device is connected to a host device equipped with the required advertisement decision system. Accordingly, if the portable digital content device is connected to a host device with an advertisement decision system, advertisements can be delivered in a flexible an dynamic matter. However, if the portable digital content device is connected to a host device that does not have an advertisement decision system, only static advertisements will be presented (the absence of an advertisement decision system may even prevent the host from playing the digital content and/or advertisement at all).
In this embodiment, instead of tying the advertisement decision system to a host device, the advertisement decision system is tied to the portable digital content device. In this way, an advertisement decision system can be used to deliver advertisements in a flexible and dynamic matter irrespective of the type of host device and irrespective of whether the host device is equipped with an advertisement delivery system (i.e., the advertisement delivery system is host device and player “agnostic”). This makes the content on the portable digital content device much more portable (since the advertisement delivery system is tied to the portable digital content device and not to a particular host device). This is especially desirable in today's media environment where users are becoming increasingly frustrated with the inflexibility associated with closed systems.
Since advertisement decision systems are typically thought of as complex systems because of the complex set of rules used to dynamically serve-up advertisements, some may think that an advertisement decision system can only be implemented in a very complex portable digital content device. However, an advertisement decision system can be implemented in a device as simple as a memory card by optimizing the set of rules for that device, as will be described in more detail below.
Turning again to the drawings,
The portable digital content device 800 in this embodiment operates in accordance with TrustedFlash™ specifications from SanDisk Corporation, and the portable digital content device 800 comprises an ICM interface layer 820 that encapsulates (abstracts) native TrustedFlash™ API calls. In general, the ICM interface layer 820 provides a high-level interface to content playback or other content-service-related applications. (Preferably, licensed playback applications have the appropriate PKI credentials to mutually authenticate in order to request playback and other services from the ICM interface 820.) In the case of a content player application, an ICM interface caplet API in the ICM interface layer 820 hides all of the DRM, advertisement campaign, and activity tracking activity that takes place when a piece of digital content is served to the user. All of this underlying activity is hidden behind what is essentially a “play” request on a specific digital content asset. Additional high-level commands include, but are not limited, to delete, rate, parental control management, and share. Since a host device merely needs to provide a high-level command, the ICM interface 820 can be considered the “mobilization enabler” for ad-supported digital content stored on the portable digital content device 800, since the content can be played on any host device—not just host devices that have been preloaded with the necessary software to provide specialized and proprietary commands. That is, the ICM interface 820 allows traditional content delivery and playback systems to be decomposed in discrete units that are more specialized than ever before. Intelligent Content Media contrasts sharply with existing passive content media such as CD, DVD, HDDVD, and Blu Ray optical media. Intelligent media allows content to be secured to the media in the way that provides unprecedented content control, rights distribution, breach management and recovery, and content mobility. Because of its availability in Flash memory packages with interfaces that are ubiquitously supported in PC, mobile, portable, and even home theatre systems, the ICM interface 820 is a highly suitable way to mobilize and provide digital content to connected and disconnected video-enabled devices of any screen size.
Returning to
The transfer layer 835 includes all parts of the connection between the data sink layer 825 and the data source layer 830 and the portable digital content device 800. The transfer layer 835 can enable multiple ways for data to be transported to and from the portable digital content device 800. The transfer layer 835 can include any number of participants, wherein any non-end-point participant of the transfer layer 835 is only a passive part of the communications pipeline. These non-end-point intermediary participants can include, but are not limited to, a PC, a PC application, a memory card reader, a USB storage device, a special-purpose consumer electronics device, such as a portable media player, and even air (in a wireless transmission). The portable digital content device 800 can store credentials 837 (e.g., playback credentials, reporting credentials, and content store credentials) to authenticate an entity trying to communicate with the portable digital content device 800 via the transfer layer 835.
The transfer layer 835 can use whatever transfer methods are needed depending on the level of authentication and security required (e.g., secure transfer, “in the clear” transfer, or an interleaved hybrid of both). For example, as shown in
Turning again to
The hidden content store 815 also stores two advertisement pools (advertisement pool 1 and advertisement pool 2), each with a plurality of advertisements. As used herein, an “advertisement pool” refers to an inventory of advertisements that are logically related in some way. For example, an advertisement pool can contain advertisements that are grouped together based on one or more of the following criteria: advertising agency, content owner, user demographic/psychographic profile, and ad campaign. Depending on the relationships to content type, content holder, or other criteria, the aggregate of ad pools that hold ads that can be served with a certain piece of content can constitute the ad inventory for the content asset. In this embodiment, ad pools are independent of the content in terms of when and how the ad inventory is maintained and refreshed.
Each advertisement pool is associated with a respective set of ad campaign rules, which are used to determine a set of advertisements to play with the digital content (e.g., which ad should be served in a given ad avail as identified by playlist metadata). The set of rules can be based on any suitable criteria, including, but not limited to, time of day, history of played advertisements, advertisements to be played, advertising agency, content owner, user demographic/psychographic profile, and type of host device being used to play the digital content. The ad campaign rules can also contain information regarding maintenance of the ad pool inventories (e.g., an advertisement's “shelf life”).
Circuitry in the portable digital content device 800 implements an advertisement decision system (“ADS”) engine, which uses the set of ad campaign rules to determine, at run time, which set of advertisements to play with the digital content. (The ADS engine can use an ADS engine data store 860 (e.g., time) in its determination.) That is, the ADS engine is responsible for making the runtime decisions about targeting and delivery of advertisements during digital content playback. Because of the use of the ICM interface 820, the ADS engine is available for use with any host device placed in communication with the portable digital content device 800. Accordingly, the ICM interface 820 effectively mobilizes the ADS engine for deployment on any portable/mobile playback device and is compatible with time-shifted and place-shifted content services. That is, a content playback application on the host device does not need to know the ad campaign rules and logic—it just needs to make high-level requests to play content, and the ICM interface 820 takes care of the rest.
In this embodiment, advertisement pool 1 is associated with campaign rules 1, and advertisement pool 2 is associated with campaign rules 2. While a piece of content can be tied to a specific advertisement pool (e.g., content 1 can be tied to advertisement pool 1), preferably, a piece of content can be associated with multiple advertisement pools (e.g., content 1 can use advertisements from either advertisement pool 1 or advertisement pool 2). For example, advertisements from advertisement pool can be advertisements sold by the owner/holder of content 1 (e.g., a television network), while the advertisements from advertisement pool 2 can be populated by the service provider (e.g., SanDisk Corporation). A piece of content can also be associated with two or more sets of campaign rules. For example, in the embodiment shown in
In operation, when the ICM interface 820 receives a play command for a piece of content, the ADS engine retrieves the playlist object associated with that content (e.g., playlist object 1 for content 1). The playlist is the overriding control set for one or more content assets and is processed first by the ICM play API. Different playlists can be used based on content type (e.g., paid content, rented content, free content, hybrid content, etc.).
As mentioned above, although not required in this embodiment, the portable digital content device 800 can implement the asset activity tracking functionality described above. Asset activity tracking (“AAT”) data is usually collected for purposes of being reported back to an activity reporting server for service revenue, quality of service, usage, content rating (passive and active on the part of the user), user interaction, and other purposes. Activity of advertisements is the foundation of an ad-supported content monetization scheme and represents revenue generation/distribution data. Super-distribution of content also represents a revenue stream as content can be shared from ICM to ICM in an offline mode and also represents revenue generating activity that is preferably tracked and reported. This superset can include, for example, the following subsets with no distinction made on the content type: download/acquisition activity, consumption activity, offline e-commerce activity, and user interaction activity (e.g., user voting, preference, community interactions, content purchase, and other user-generated data/content). This information can be used for inventory valuation (e.g., CPM value per asset, per asset group, per user demo/psycho, per time of day, day of week, number of views, etc.).
As shown in
Returning to
ICM allows content and advertisement inventory and associated metadata to be distributed in multiple locations/services until the actual point of user acquisition. This is similar to a “just in time” (“JIT”) inventory management scheme where inventory is only acquired at the point of acquisition. Another appropriate analogy is online video streaming where decisions about what content and advertisement inventory to serve are made at the time of consumption. An ICM enables media acquisition to be broken into two distinct steps comprised of acquisition and then consumption. Both of these activities can take place on a connected device or on a disconnected device. Even disconnected super-distribution models are supported. What is preferably ingested at minimum is the metadata that provides the information to facilitate future content transfer/acquisition activities. This could include, but is not be limited to, data that identifies the content sources where content and advertisement assets, advertisement campaign rules, playlist metadata, and reporting services are located. These items can be located in multiple systems controlled by one to many business entities. There is no need to centrally collect, managed, and publish—the ingestion process can be virtualized, and this results in considerable savings for all participants in the content and advertisement inventory creation, packaging, and distribution eco-system. That the secure transfer of data can be facilitated by what is, from the user's perspective, a discrete, secure piece of media helps to eliminate PC and open OS application participation issues/risks in the secure transmission and authentication activities required to protect content and user's privacy. In virtual ingestion, when a user selects a piece of content to download, the following items are preferably downloaded as a virtual package: advertisements either as stand-alone entities or as groups (ad pools), and the associated ad campaign rules and playlist objects.
There are several advantages associated with this embodiment. As mentioned above, by tying the advertisement decision system to a portable digital content device instead of a host device, an advertisement decision system can be used to deliver advertisements in a flexible and dynamic matter irrespective of the type of host device and irrespective of whether the host device is equipped with an advertisement delivery system. Additionally, this embodiment brings several approaches of a standard advertisement decision system to a portable digital content device. First, standard advertisement decision systems can be thought of as closed-loop systems that are tuned to increase the cost-per-million (“CPM”) value of an advertisement asset with varying degrees of feedback. This embodiment takes this model and extends it to small consumer electronic devices that operate in an offline capacity with both the advertisement inventory and the advertisement decision system operating offline. As discussed in the previous section, a security system can be used to protect both the stored assets themselves as well as tracked usage activity of those assets. Second, the advertisement decision system can be customized to support multiple business rule sets on one device. That is, the fiduciary interests of multiple stakeholders providing content supported by advertisement activity can be supported on one device. This collected activity data can be customized based on any number of factors including, but not limited to, content owner business rules, ad agency business rules, and end-user privacy criteria. Third, the advertisement decision system can be embedded in a consumer electronic device and disconnected from the network/broadcast feed and other services to operate completely independently from those services while fulfilling the obligations of the content provided to the advertiser. This system can manage and optimize the targeting of advertisements based on pre-defined business rules, which can be extended to include input from the user or to base future decisions on past user activity stored on the portable digital content device.
Additionally, by optimizing the rules used to select a set of advertisements to play with digital content, the process of determining which ad to serve at runtime can be made as efficient as possible yet allow for true ad inventory coverage for content for all ad-supported content being serviced on a portable digital content device. This allows an ad decision system to be supported on a new categories of intelligent content media (ICM) devices. Since the data for multiple ad pools for small-embedded processor routines can run quickly at runtime, a satisfactory user-playback experience is provided, and the user will not experience undue delays in video object starts as the ICM serves up the data. As discussed above, to prepare the ad decision system engine data set to be processed at runtime, the logic of one or more ad campaigns is preferably distilled into structures that allow for efficient parsing at the point of playlist processing. These structures can be one of many optimized graph structures. Combinations of fuzzy logic graph structures can also be used.
Optimizing the ad decision rules for a small-embedded processor allows a segmentation of the provisioning of the content and the rights required to do this, in contrast to just being able to perform playback with applications that do not need to know the specifics of playlist or ad campaign rules/logic. Consider the DVD eco-system as an example. There are many players available for all form factors of consumer electronics devices including PCs. Now evolve the entire approach to that enabled by Intelligent Content Media. In this case, the player need only be able to authenticate with playback credentials and agree to honor a few simple playback requirements that are passed through to the player via meta-data in the individual file itself or via other API mechanisms. Playback requirement would include features such as, but not be limited to, not allowing trick mode functions, honoring ad bounding book mark rules (e.g., cannot index to a past bookmark, cannot set a bookmark after an ad for some duration such as one minute, etc.), and other playback controls.
Exemplary Portable Digital Content Device
As noted above, the various embodiments described herein can be used on any suitable portable digital content device. The following paragraphs and drawings illustrate one such suitable portable digital content device. It should be noted that this portable digital content device is merely an example, and other types of portable digital content devices (include a memory card with processing circuitry) can be used to implement one or both of the main embodiments described above. Further, this portable digital content device does not necessarily need to be used with either of the main embodiments described above and can be used for other purposes.
Turning now to the drawings,
The portable digital content device 1300 in this embodiment operates with a security system specified by the TrustedFlash™ specifications from SanDisk Corporation to secure downloaded content. In general, TrustedFlash™ is designed to enhance Flash memory device capabilities with a set of security features that enables the device to protect and control the usage of stored data. The TrustedFlash™ controller 1320 is designed with flash memory cards in mind by using a form-factor-independent protocol. Two aspects of the TrustedFlash™ functionality are authentication (i.e., the ability to identify the entity requesting a service) and authorization (i.e., the ability to configure a specific set of permissions (rights) for every authenticated entity).
One of the foremost requirements of a secure Flash memory device is the ability to identify the entity requesting a device service, whether it is memory access related or not. TrustedFlash™ provides several types of authentication algorithms and allows for multiple authenticated entities to concurrently use the card. The TrustedFlash™ security system protects stored data (in the file system or TrustedFlash™ system area, and TrustedFlash™ system objects from unauthorized access by using authentication protocols. A TrustedFlash™ host application is preferably required to prove its identity through an authentication protocol when it accesses stored data or when it accesses the system database Access Control Records (ACRs). ACRs and other system objects are maintained in the hidden area 1312 on the device 1300 and are only accessible via TrustedFlash™ interactions.
The TrustedFlash™ platform supports three types of authentication protocols designed to serve different application needs:
Password authentication. Allows the TrustedFlash™ system to authenticate a user. A special mode of this protocol does not require a user password. Any attempt to login will be granted with no questions asked.
Symmetric key authentication. In addition to providing the TrustedFlash™ system with a means to identify a user through AES and DES algorithms, a variation of the symmetric key authentication protocol will allow the user to identify the proper ACR and establish a secure session.
Asymmetric key authentication. This mode uses RSA as the underlying cryptographic algorithm and provides a service similar to the symmetric key authentication protocol by using a Public Key Infrastructure (PKI) based key management system. Once authentication is completed, a secure session may be established.
The TrustedFlash™ system allows for configuring a specific set of permissions (rights) for every authenticated entity. Every command that is received by the controller 1320 is preferably associated with a currently-authenticated entity, and the service request is validated against the registered rights for that entity. The controller 1320 will grant the request and execute the command only if the service is permitted for the requesting entity.
A memory partition is a contiguous range of Logical Block Addresses (LBA). The TrustedFlash™ system enables the division of the Flash memory 1310 into several partitions. The portable digital content device 1300 in this embodiment only has one public FAT32 file system partition (the public area 1314) and a system area partition (the hidden area 1313). The TrustedFlash™ authorization system provides enforcement of read and write access permission to individual partitions. Flash memory devices can be used as mass storage devices, and other mass storage device types allow data to be stored in files that are organized by a file structure that is managed by the host system. TrustedFlash™ devices follow this same storage method. However, TrustedFlash™ devices do not control the file system or the objects that are stored there. Individual objects/files may be encrypted with specific content keys in order to provide file level protection, and the key is stored in a Content Encryption Key (CEK) in the System Area. The TrustedFlash™ authorization system provides enforcement of read and write access rights to a file's Content Encryption Key (CEK). If the CEK cannot be accessed using the TrustedFlash™ API, the content will not be able to be decrypted. This protects data through prevention of data usage rather than data access. As discussed above, this mechanism is used to control the ability to playback stored digital content.
Further information about TrustedFlash™ can be found in U.S. patent application Ser. Nos. 11/314,411; 11/557,028; 11/322,812; and 11/322,766, which are hereby incorporated by reference. The use of TrustedFlash™ protocols and other implementation details should not be read into the claims unless explicitly recited therein.
As mentioned above, in this embodiment, the device 1300 acts as a digital multimedia player, with the video decoder 1330 serving as a multimedia processor that cooperates with the controller 1320 in real time to create a video stream. The device 1300, thus, operates in two modes of operation: one mode to download digital content into the memory 1310 from a first host device (e.g., a PC), and another mode to playback digital content on a second host device (e.g., a TV). Accordingly, the controller 1320 serves both as a USB controller to communicate with a host processor via the USB port 1340 and the video decoder 1330, which is a multimedia processor that converts digital data into a video stream that goes out to a TV or other host device via the USB port 1340. To support TrustedFlash™, the controller 1320 preferably comprises at least two keys.
Since the controller 1320 is used in both modes of operations, it may be preferred to provide a multiplexer, such as a 2p4T switch, between the controller 1320 and the video decoder 1330. When the 2p4T switch senses the voltage indicating that the USB port 1340 is connected to a host computer, the switch can place the USB port 1340 in communication with the host computer, where the device 1300 acts as a USB client. In this mode of operation, a first set of keys in the controller 1320 is utilized, and access to the data made by the external host is preferably enabled only if the first set of keys is used. When access is enabled, the data can be downloaded and stored into the Flash memory 1310. The stored data is then encrypted according to the second set of keys that is to be used later when the video decoder 1330 is used.
The video decoder 1330 processes digital data from the controller 1320 to generate streaming video, which is sent to the USB port 1340 leading to a host TV. However, in order to enable the decryption of the secured data, the video decoder 1330 preferably uses the second set of keys. In the event that the second set of keys in indeed used, the data can be decrypted, decoded into a multimedia stream, and sent to the USB port 1340. When the switch senses voltage from the second host device, the switch connects the USB port 1340 to the video decoder 1330. When the device 1300 is not connected to any host, the switch is turned off, and the position of the switch is not important. It should be clear that a similar method can be used with removable non-volatile storage protocols (“RNVSP”) other that USB (e.g., SD protocols, MMC protocols, etc.). It should also be clear that a similar method can be used with any combination of components that have a common RNVSP.
Turning again to the drawings,
The housing 1500 of the main module 1300 and the remote control 1510 are configured such that the main module 1300 and the remote control 1520 can slide into one another to form a portable assembly 1700, such that the “cover” of the assembly 1700 is the remote control 1510, as shown in
The assembly 1700 forms a convenient way for a user to transport both the main module 1300 and the remote control 1510 to a host device for playing digital content. The main module 1300 comprises a protrusion 1590 that fits into a recess (not shown) in the remote control 1510 to retain the main module 1300 and remote control 1510 together (although the protrusion can be located on the remote control 1510 instead of the main module 1300). To play digital content stored in the main module 1300 on a host device, the user first decouples the main module 1300 from the remote control 1510 (finger grips 1595 on the mail module 1300 assist in this process). In this embodiment, the host device takes the form of a TV and connects to a cradle 1800 via a cable 1810 (see
Further information about a suitable portable digital content device and embodiments that can be used therewith can be found in the following patent documents, which are hereby incorporated by reference: Ser. Nos. 11/716,648; 11/495,627; 11/710,925; 11/747,928; 11/747,929; 11/710,988; 11/710,908; 11/562,430; 11/550,813; 29/264,743; 29/265,841; 29/265,847; and 60/771,794. Details from these documents should not be read into the claims unless explicitly recited therein.
It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a definition of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of this invention. Also, some of the following claims may state that a component is operative to perform a certain function or configured for a certain task. It should be noted that these are not restrictive limitations. It should also be noted that the acts recited in the claims can be performed in any order—not necessarily in the order in which they are recited. Additionally, any aspect of any of the preferred embodiments described herein can be used alone or in combination with one another.