The subject application relates to video content, and, in particular, to personalizing and aggregating video content from media sources.
Media content can consist of various forms of media and the contents that make up the different forms of media. For example, a film, video, movie or motion picture can comprise a series of still or moving images that are rapidly put together and projected onto/from a display. The video is produced by recording photographic images with cameras, or by creating images using animation techniques or visual effects. The process of filmmaking has developed into an art form and a large industry, which continues to provide entertainment to masses of people, especially during times of war or calamity.
Typical television or video programming provides a set programming schedule combining pre-set programming that is sequentially broadcast to a user via a particular channel. The user establishes what television programming, channel and the corresponding times that the programs are being broadcasted. The user is then able to select from among a set number of broadcast channels, programming and/or times for the video to choose from. As a result, the user relies on the taste of the broadcasting studio to provide interesting content, at available times and on available channels for viewing. If the content is not suitable, another broadcast channel is selected or the user can opt to find different television entertainment, such as a movie rental, paid programming, online streaming, and/or rely upon recording devices to store the video on a particular channel for later viewing. The above context is merely intended to provide an overview, and is not intended to be exhaustive.
The following presents a simplified summary in order to provide a basic understanding of some aspects disclosed herein. This summary is not an extensive overview. It is intended to neither identify key or critical elements nor delineate the scope of the aspects disclosed. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
Various embodiments for evaluating and communicating media content and/or media content portions corresponding to various media sources via a personalized video channel are described herein. An exemplary system comprises a memory that stores computer-executable components and a processor, communicatively coupled to the memory, which is configured to facilitate execution of the computer-executable components. The computer-executable components comprise a source component configured to identify a plurality of media sources comprising a web data feed and at least one of a wireless broadcast media channel, a web site, or a wired broadcast channel for communication via a personalized video channel. A data analysis component is configured to analyze video content and audio content to determine a plurality of topics being discussed by the plurality of media sources. A profile component is configured to generate user profile data based on a set of user preferences related to the video content. A streaming component is configured to communicate the video content via the personalized video channel from different media sources of the plurality of media sources at corresponding times based on the user profile data and the plurality of topics.
In yet another non-limiting embodiment, an exemplary method comprises analyzing, by a system comprising at least one processor, media sources to determine a plurality of topics for generating video content via a personalized video channel. User profile data is generated based on a set of user preferences for the video content and a set of behavioral data representing user control inputs related to the video content. A rendering of the video content is communicated from the media sources via the personalized video channel based on the user profile data and the plurality of topics.
In still another non-limiting embodiment, an exemplary computer readable storage medium configured to store computer executable instructions that, in response to execution, cause a computing system including at least one processor to perform operations. The operations comprise identifying a plurality of media sources comprising a web data feed to communicate video content from the web data feed via a personalized video channel. The video content of the plurality of media sources is analyzed to determine a plurality of topics. The operations comprise generating user profile data based on a set of user preferences related to the video content, and communicating the video content via the personalized video channel based on the plurality of topics and the user profile data.
The following description and the annexed drawings set forth in detail certain illustrative aspects of the disclosed subject matter. These aspects are indicative, however, of but a few of the various ways in which the principles of the various embodiments may be employed. The disclosed subject matter is intended to include all such aspects and their equivalents. Other advantages and distinctive features of the disclosed subject matter will become apparent from the following detailed description of the various embodiments when considered in conjunction with the drawings.
Non-limiting and non-exhaustive embodiments of the subject disclosure are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
Embodiments and examples are described below with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details in the form of examples are set forth in order to provide a thorough understanding of the various embodiments. It will be evident, however, that these specific details are not necessary to the practice of such embodiments. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate description of the various embodiments.
Reference throughout this specification to “one embodiment,” or “an embodiment,” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment,” or “in an embodiment,” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
As utilized herein, terms “component,” “system,” “interface,” and the like are intended to refer to a computer-related entity, hardware, software (e.g., in execution), and/or firmware. For example, a component can be a processor, a process running on a processor, an object, an executable, a program, a storage device, and/or a computer. By way of illustration, an application running on a server and the server can be a component. One or more components can reside within a process, and a component can be localized on one computer and/or distributed between two or more computers.
Further, these components can execute from various computer readable media having various data structures stored thereon such as with a module, for example. The components can communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network, e.g., the Internet, a local area network, a wide area network, etc. with other systems via the signal).
As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry; the electric or electronic circuitry can be operated by a software application or a firmware application executed by one or more processors; the one or more processors can be internal or external to the apparatus and can execute at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts; the electronic components can include one or more processors therein to execute software and/or firmware that confer(s), at least in part, the functionality of the electronic components. In an aspect, a component can emulate an electronic component via a virtual machine, e.g., within a cloud computing system.
The word “exemplary” and/or “demonstrative” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” and/or “demonstrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, such terms are intended to be inclusive—in a manner similar to the term “comprising” as an open transition word—without precluding any additional or other elements. The word “set” is also intended to mean “one or more.”
In consideration of the above-described trends or deficiencies among other things, various embodiments are provided that aggregate video content into a single personalized communication channel and/or into multiple personalized channels that are configured independently according to corresponding user profile data, a user's likes and dislikes for timing, content and/or source of content. For example, video content can be obtained from one or more media sources such as a web data feed, social networks, news feeds, web site/page feeds, broadcast networks, internet subscription services, etc., and aggregated for viewing via a single personalized video channel to be rendered in a user device or a display component of a user device. The system operates to personally configure personal channels independently according to a user profile data that comprises user preferences and/or tracked behavioral data corresponding to the respective channels, as well as predicted video content and respective media sources.
In one embodiment, video content is identified from various media sources (e.g., RSS feeds—web data feeds, or other sources) and further analyzed for data related to the content, the media source and video content characteristics in order to queue the video and present it via the personalized video channel. The personalized channel can be dynamically configured according to the user profile data, updated user profile data as it is learned by the system and particular topics of interest to a user. The system allows a user to re-configure or personalize a channel as well as have multiple configured channels that are each set according to different preferences and/or user profile data. As video content changes and/or becomes available from a media source (e.g., with updated programming, newly added family videos, recently released video rentals, recently aired programming, current news broadcast, and the like) video content options for viewing content from various media sources can become updated for the personalized channel and update predicted content.
The system analyzes the video content from different media sources as they become identified and detects topics discussed or portrayed in segments or portions of the content. The video content can be updated dynamically for any given scheduled time of viewing via a particular personalized channel based on updated user profile data, which includes preferences, and behavioral data that represents user control inputs related to video content (e.g., search term(s), a video purchase, a video upload/download, a video viewed, a website video viewed, a subscription service add, a stored syndicated feed identifier, and/or the like). A user of the systems herein can configure various channels to stream content from various media sources based on a different sets of preferences that include particular topics in a user profile to one or more mobile devices differently and/or at the same time along with different media content for interaction with the content and sources and/or with other mobile/display components that the personalized channel is shared/subscribed with. The user profile can comprise a user's preferences for view time, communicated content or programming, a media source, a personalized data store, and/or other real time feed that can be communicated via the personalized channel at a set time or dynamically as viewing options being promoted or updated from other candidate media sources (e.g., broadcasting channels, Facebook news feed, and/or an Rich Site Summary feed or the like). The channel can be configured by one personal device with a set of profile data corresponding and be shared or published with multiple friends and/or authorized subscribers.
In another embodiment, the video content identified is ranked according to the topics discussed or portrayed in the video content from the media sources. The ranking can be based on one or more topics provided by a user in the user profile data, and/or can be done in general to all video content to determine the different topics regardless of any particular topic of interest in the user profile data. For example, a user can enter a voice command for a particular topic. The system configured the personalized video channel for the user based on the command stored in the user profile data by the authenticated user. The command, for example, could be for viewing a news story on a recent event such as a weather event or local tragedy, for example. In response to the user profile data receiving a particular topic, video content can be searched for among identified media sources that discusses the topic. In addition or alternatively, the video content can be analyzed and tagged for various topics without having any particular topic that is searched for. The various topics can be presented to a user to schedule for viewing at various times and/or sequential orders for viewing via the personalized video channel. The video content from the media sources can be provided according to a weight based on the user profile data, which include user preferences, behavioral data, a topic and/or classification criteria. Various other embodiments, details and components are further described with reference to the illustrated figures below.
Referring to
The computing device 104 operates to receive and aggregate multiple media sources 102 and corresponding content (e.g., news broadcast, television programming, web cast, web page feeds, personal data and other media content) into a single communication channel 107 to be rendered in a display component 106 for viewing by the user implementing the channel configurations and also by friends of other mobile devices that can interact for a community experience at scheduled broadcast times. The computing device 104 comprises various components that can operate and/or communicate via a network as the user configured video channel 107, wired and/or wireless communication channels, and the like. The computing device 104 comprises a source component 114, a profile component 116, a data analysis component 118 and a streaming component that are communicatively coupled via a communication line 112 (e.g., an optical link, a bus, a wireless connection, etc.) to obtain media content (e.g., video content) from various media sources, aggregate the media content via the processor 108 and data store(s) 110 and dynamically communicate the media content in response to user profile data via a single personalized video channel 107.
The source component 114 is configured to obtain video content from a set of media sources. The source component 114 operates, for example, to identify video content from a plurality of media sources comprising a wireless broadcast media channel, a web page, a web feed (web data feed), and/or a wired broadcast for communication via the personalized video channel 107, examples of which can include social network feeds, programming feeds, news feeds, local channel digital/analog broadcasting over air, cable broadcasting, internet content, video rental/subscription services on the internet, and the like. The source component 114 can be hardware (e.g., a processor), and/or software that searches networked communications, wireless communications via an antennae receiver/transceiver device, wired communications (e.g., optical, two-wire, etc.), local broadcasting, network web feeds, news feeds, web page content, data store(s), and the like. For example, the source component 114 is configured to dynamically identify broadcasted content from local broadcasting stations of locally aired programming, identify cable broadcast for paid/unpaid programming, TV-guide and/or other scheduling resources that publish scheduling or video content information as it is updated as metadata, a separate web page connection, and/or broadcast communication. The source component 114 further operates to identify and receive Rich Site Summary for new feeds of updated page content from social networks, channel pages, and/or subscribed services for video, as well as identify any other media source that communicates individual, studio produced, network uploaded, etc., video content for viewing at user defined preference times with user defined sources on a user controlled channel.
Various video content sources can be identified via the source component 114 utilizing a user profile (user profile data) generated by the profiling component 116. The profiling component 116 is configured to generate user profile data based on a set of user preferences related to the video content and/or a set of behavioral data. The user profile can include login information, a user name, authentication data, media source preferences, media content preferences, time preferences and/or the like user preferences. The user preferences can further include a time preference to associate with the media content or video content, a personalized channel selection, a theme preference for types of media content (e.g., Science Fiction, Drama, etc.), a rating preference (e.g., G rated films, five start films, etc.), an actor preference, a language preference (e.g., Spanish, Russian, English, etc.) and/or a date preference (e.g., release date, viewing dates, broadcast dates) pertaining to the personalized channel 107 for configuring and/or identified media sources for content via the source component 114. The user profile data configured by the profiling component can further include classification criteria that include at least one of a theme, an age range, a media content rating, an actor or actress, a title, and the like metadata for identifying content, communicating media sources identified, and/or identifying updated media content of a media source and/or particular broadcast/upload/data store/feed stream.
In one embodiment, the user profile (data) generated by the profiling component 116 further comprises behavioral data that includes search data, viewing data, purchasing data, communicated data, each relating to ways the user of the user profile has interacted with video content as well as other user input controls related to video content (e.g., storage, viewing times, fast forwarding, skipping, replaying, search terms, and other input controls as related to video content). For example, if evidence of Minoan civilization in Northeast Michigan (5000 B.C.) is searched, the computing device 104 utilizes the components therein to define various videos related to this search data to establish media sources having similar or related content and provide configurable options to the user for generating a personalized dynamic channel for viewing on the display component 106 at various times that could correspond with a newly broadcast programming, purchased programming, rented programming, web updated programming, subscription service programming, recorded programming stored and/or the like. For example, future viewing options can be communicated along with other metadata pertaining to the media content searched and the future viewing options can be programmed to view via the personalized channel 107 at the same time as the future scheduled viewing and/or stored for viewing at a another defined time. Therefore, a search engine (not shown) for video content of interest is coupled to the profiling component 116 in order to dynamically present scheduling options, broadcast options, and/or media content/source options for a user to configure the channel 107. The search engine can be any search engine of a network (e.g., internet network) and/or a search engine provided in a browser of the computing device and/or display component 106.
The user can select to view, configure, purchase, subscribe and communicate any one of these content options on the channel 107 to a display component (not shown) of the system 100 as well as to other mobile subscribing friends to the user's configured channel. The criteria for presenting options to configure the channel 107 can be further limited based on user profile data that comprises the user preferences and/or behavioral data. Although a user is not intending to search for video content, the configurable personalized channel 107 and the computing device 104 operate in an operating background to ascertain user interest and user behavior along with set preferences to provide catered options for viewing when the user is ready to interact with video format or, in other words, operate television viewing for him/herself.
The behavioral data or user profile data can further include age data, household membership data and/or subscription data. The age data can comprise the age range of the user corresponding to the user profile, which can be used to ascertain a profile of age interest based on other population samples of similar age and/or generational preferences for dynamically interacting with the user for providing options to configure the personalized channel viewing experience. Household membership data can include other members of the user's household or immediate family, which can be used to configure other channels for their viewing as appropriate. The subscription data can be the various online or offline subscriptions that a user patronizes. For example, magazine subscriptions, cable subscriptions, video subscriptions (e.g., movie rental online or offline, such as internet subscriptions to streaming or by mail DVD content), video subscription sites, web feeds (e.g., social network news feeds), and the like can be identified and accessed as video content options and media sources for assigning to the channel 107 at defined times, for defined content, and the like. For example, if the user defined Friday night as watching one set of video content on the channel 107 from one media sources at a certain time, another video content from another media sources could be subsequently viewed automatically via the channel 107. The content can be set to be communicated via the channel 107 from various sources that offer different content. The content can be monitored for updated content, in which the user can be notified of and then select any number of options to configure the channel 107.
In addition, the behavioral data can include viewing information that rates a user's interest level in a video feed from one or more of the media sources. For example, the personalized viewing channel 107 can comprise a set of controls for operating the video content, in which the controls can be communicated to the display component 106. Based on the controls selected during viewing the computing device 104 can further ascertain user interest in the video content and make further recommendations of video content accordingly. For example, the controls can include directional controls, rewind, forward (to return to a previous segment or fast forward to a next one or a different program and/or a different media source), up and down (for changing different channels and/or different media sources, depending upon the personalized configuration of the channel).
The profiling component 116 further operates to aggregate profiles or log in access to a set of social networks, video subscription services online and/or other video distribution services and provides an access key for aggregating videos or media content via the source component 114. The user can connect his user profile to multiple services for video and provide the viewing over an assigned channel that is configured. Additionally, the profiling component 116 can import RSS subscriptions to the profile, in which the system 100 can operate to import video content, add video content, and updated content and information into the selected personalized channel 107.
The data analysis component 118 is configured to analyze video content and audio content to determine topics within that are the predominate focus of the video content. The topics can be identified according to various criteria, such as a frequency of occurrence (detection) of a word or phrase from within the audio and/or video content from each media source 102, the mention of the main topic or focus, and/or the graphic portrayal or illustrations of a topic. For example, in response to a word or phrase frequency detection satisfying a predetermined threshold, a higher probability can be associated with the particular word or phrase as being a topic or a focus of the audio content and corresponding video content. The word or phrase can be identified by the system as being a topic for a timed duration of the video content, in which the timed duration can be at a cutoff in frequency or other transition criteria within the video content. Other indicator can also be analyzed, such as a verbal indication of the topic within video content, an illustration of the topic, a title or subtitle, as well as a graphical illustration.
For example, a video content could derive from a media sources involving a news source with multiple different topics that could be covered within any one time duration, such as a CNN broadcast, podcast, RSS feed, etc. In some instance, a topic is displayed and identified by the system as a topic of being discussed, such as in a graphical illustration of a news flash headline, a sign, an overlay graphic bar, etc. In other instances, a news anchor could announce the topic, such as in a statement, “we now bring to you live weather in Kansas,” or continue to mention words, phrases that are being discussed. In addition, metadata can be ascertained from the upload, download, and/or link to an RSS feed that provides clues or data related to topic(s) of the video content from the media source.
The computing device 104 can thus analyze video content from multiple different media sources, such as web data feeds (RSS fees) and other media sources (e.g., a wireless broadcast media channel, a web site, a subscription service, network video service, and/or a wired broadcast channel), for example, for communication via the personalized video channel 107 based on user profile data. The data analysis component 118 operates to ascertain topics of video content and provide the topics as selection for selection, scheduling, viewing, censoring, and/or sharing via the personalized video channel 107, for example.
In response to media sources being identified for a particular time slot or a defined time, the data analysis component 118 operates to further analyze the media content for the particular preferences, settings, classifications, like and dislikes known and stored as the user profile data associated with a user. Various topics within the video content can be identified that are set as a preference by the user, in which the data analysis component 118 could only search for among video content. Alternatively or additionally, topics of the video content can be identified without being listed as a user preference. Topics can be generated via the data analysis component 118 as selections to a user for viewing via the personalized video channel 107. The topics can be rendered as a list of topics, for example, that are identified within the video content of each media source for a particular time slot, time of day, date or time period, for example.
In one embodiment, the topics can be ranked and weighted for determining correlation measures to the user profile data so that most closely matched topics from higher rated or better quality video content are provided first on the list or in a top tier (e.g., a top 25% of selections). In another embodiment, topics and video content associated with the user profile data can further be provided in a list or rendered as a selection according to a classification, a topic, and/or other user preference that can be communicated to a user for scheduling viewing times via the personalized video channel. The selections communicated can be based on those video content selections satisfying a predetermined threshold, for example, a percentage or other weight associated with the video content ranking, which is further detailed below. The computer device 104 can then further operate to communicate the topics of the media content as selections for viewing via the personalized video channel 107 in response to scheduling by the user. As stated above, the user profile data can include user preferences and behavioral data that represent user input controls for the personalized video channel 107. The user preferences can comprise at least one of a media source preference, a time preference to associate with the video content for being communicated via the personalized video channel 107, a personalized channel selection from among multiple personalized video channels associated with one or more devices, a theme preference for the video content at particular times, a rating preference, an actor preference, a language preference, and/or a date preference, as well as a topic preference that sets a topic for searching, identification and/or viewing.
The streaming component 120 is configured to communicate the video content from the plurality of media sources 102 to the display component 106 (e.g., a display panel, a display device—mobile smart device, personal computing device, etc.) based on the user profile generated by the profile component 116. The streaming component 120 is further configured to communicate the video content from different media sources of a plurality of media sources at different times based on the user profile. Further, the streaming component 120 can operate to communicate different video content from different media sources at the same time at different personalized channels 107, or at the same channel for interacting with one type of content and viewing another, such as video chat with various client devices while viewing the video content from media sources at the same time.
In another embodiment, the computing device 104 operates to stream video content via the streaming component 120 from various media sources at prescheduled timing and based on the user profile. The user can set the content, times and media sources with user preferences and also have updated content dynamically provided as selections. The computing device 104 can operate to recommend or suggest configurations (video content, scheduling, media source options) based on the user profile information already obtained and that is being dynamically learned by the system 100. In addition, a different mobile device or display component could access the channel 107 remotely to view what the user is viewing, or the same video content. The different additional display device/component to the display component 106 could also provide comment and/or interaction regarding the content via the channel 107, which is further discussed below.
Referring to
In one embodiment, a client component 210 could set user profile data to transmit video content via the personalized video channel 107 according to a particular mood, a particular interest, a specific activity, a genre, a producing studio/company, an actor/actress, a language, a country/demographic, and the like preference or classification. The user profile data can be utilized by the system to predict and identify viewing likes, dislikes, scheduling, media sources, particular video content, and the other video habits to program or configure the personalized channel 107 for viewing by the client component 210, which could be a source of the user profile data, and/or for multiple other client components 212 also.
The computing device 104 further comprises a ranking component 204, a weighting component 206, a scheduling component 208 and an event component 209. The ranking component 204 is configured to generate ranks for video content, preferences, and/or topic frequency associated with video content for viewing via the personalized video channel 107. For example, the ranking component 204 is configured to generate a rank that corresponds to the topics based on a frequency of detection in the video content from the media sources.
Video content can be identified as a possible selection from among many different media sources, such as an RSS feed, a video subscription service, web page, web portal/site, a broadcast (wirelessly/wired), social networking site, personal video libraries and like media sources. In order to ascertain what content could be preferable to the user, the ranking component can dynamically rank identified video content based on topics within the video content. In other embodiments, the video content can be ranked according to the correlation with other user preferences (e.g., likes, dislikes, settings for content) and/or classification criteria (e.g., language, audience category—PG, G, etc., other ratings, genre, performer, etc.) as identified or set by user profile data. Additionally or alternatively, video content can be ranked based on the physical/digital characteristics of the video content (e.g., resolution quality, duration, color quality, sound quality, etc.), in which video content satisfying a predetermined threshold for video/audio quality are kept and other video content be discarded.
The ranking component 204 operates to narrow or focus the identified video content and media sources identified over airways, network connections (e.g., network 202), satellite content, cable content, local broadcast stations and other media content sources that provide video content such as through RSS feeds, and/or other web data feeds. In one embodiment, the ranking component 204 can rank the media sources based on a set of media source criteria that can include preferences for a user, topics, media source quality rating for video content and the like. The ranking component 204 can thus operate dynamically as new and updated video content and media sources are identified to communicate with the streaming component 120 for streaming video content from media sources that are ranked in a top percentage tier, that have a high percentage of correlation to the user preferences, including topic preferences for specified time slots, quality preferences or factors, and/or classifications of the video content/media sources.
The weighting component 206 is configured to associate a weight to the video content of the plurality of media sources based on the rank. The weight can be associated to video content that is of a certain rank threshold and/or filtered for selection from the ranking component 204 discussed above. The weight of the video content can also be associated based on other user profile data, such as how well the video content is ranked according to the video content matching user preferences and corresponding to the behavioral data ascertained about the user's habits for particular video content.
For example, video content from an RSS feed can be weighted from one media source different from another media source based on the rank and the user behavior data, and/or further based on other user profile data. RSS feeds and/or feeds as discussed herein can comprises a group of web feed formats used to publish frequently updated works—such as blog entries, news headlines, audio, and video—in a standardized format. An RSS document (which is called a “feed”, “web feed”, or “channel”) includes full or summarized text, plus metadata such as publishing dates and authorship, which can be used to identify, communicate, obtain and/or render video content associated with the feed. RSS feeds or feeds, for example, can benefit publishers by enabling them to syndicate content automatically. For example, an XML file format allows the information to be published once and viewed by many different programs. They benefit readers who want to subscribe to timely updates from favorite websites or to aggregate feeds from many sites into one place.
RSS feeds can be read using software called an “RSS reader”, “feed reader”, or “aggregator”, which can be web-based, desktop-based, or mobile-device-based. The user subscribes to a feed by entering into the reader the feed's URI and/or by clicking a feed icon in a web browser that initiates the subscription process. In one embodiment, the source component 114 can at least partially operate as an RSS reader that checks the user's subscribed feeds regularly based on the profile data generated via the profiling component 116 for any updates that it finds, and provides a user interface to monitor and read the feeds. The computing system 104 further operates to identify and updated broadcasted data, subscription sites without RSS feeds, but that provide video rental, channel episodes/programming and the like based on a regular or periodic subscription service. The computing device 104 operates therefore to help a user avoid manually inspecting all of the websites, channels, as well as social sites (e.g., Facebook, Twitter, etc.) and subscription services for download, such that new content is automatically checked for and advertised by their browsers as soon as it is available and recommended to the user for viewing via the personalized video channel 107, for example.
The scheduling component 208 is configured to generate a predetermined schedule of video content from the plurality of media sources via the personalized video channel 107 based on the user profile, including user preferences and/or behavioral data of the user's video viewing. The scheduling component 208 operates to manage scheduling operations and data from the media sources identified and extracted for video content. In one embodiment, the scheduling component 208 can aggregate data from the media sources 102 and/or other web pages in a data store as metadata. For example, the metadata can be provided from one of the media sources (e.g., CNN or other source) and/or be from a media source that does not have associated video content (e.g., tvguide.com), but provide associated programming data such as scheduling times, programming title, content information, other metadata, etc. associated with various programming of one or more of the media source content, in which programming can be a defined time of video content, content of a particular title, genre, and/or other classification of video content (e.g., a television or viewing guide web page).
In another embodiment, the scheduling component 208 controls timing aspects of the personalized channel 107 based on the user profile and associated data for the personalized channel 107. For example, a popular reality show from a web page and/or broadcast could be communicated via the personalized channel at a specific time and consecutively follow-up with a Facebook news feed of friends via the same channel. As such, content from different media sources can be scheduled at predetermined times that are different from the pre-scheduled programming times of the media source in which it originated or from updated times. For example, video content from a first media source of a first time can be rendered to the display component at a user defined time and video content from a second media source at a second time can then follow and/or be scheduled for other times. This can enable the user to have dynamic video content from multiple different media sources at user defined scheduled times and interact dynamically via the user profile with updated content, viewing options and/or present newly participating or discovered media sources for video content to be communicated from as selections for being rendered, to be followed for updates and/or for portioning into partitions.
In another embodiment, the scheduling component 208 can operate to schedule portions of programming based on the user profile. For example, a certain topic of interest could be classified by the user preferences to predominate the selected personalized channel 107 at a particular time, such as content pertaining to a local disaster or pending disaster, as well as any other topic. Other aspects of the user profile can also be used as the portioning criteria, such as age category, audience rating, user interest, behavioral data representing user input controls related to video content (viewing, fast forwarding, skipping, purchasing, searching as search criteria, etc., as input actions. Segments or portions of subsets of videos or programming related to a local event can be extracted or spliced at transitions points (e.g., points between news stories within an hourly news broadcast or some other interval scheduled broadcast) to provide programming related only to the specific topic. The channel can be dynamic in real time, or, in other words, based on programming from media sources at the present time, and/or encompass programming that has already occurred within a certain defined time and has been recorded or stored in a data store. The programming recorded/stored can then be introduced among options for communication/viewing via the personalized channel 107 as user defined times rather than broadcast and/or updated times.
Additionally, the programming of scheduled video content and/or updated content can be performed via the channel 107 as selections by the user. New updated content from the plurality of media sources can be presented first while older content can follow in an order of relevance of a listing. The scheduling component 208 can then receive selection for one or more of these and scheduling options (e.g., times, dates, store, scrap, etc.) for rendering via the channel 107. For example, a user could desire to have history rendered via the channel 107 on Saturday nights with video content that is from other times and/or at the programmed times and then have a news feed from a different channel aired at a different previous time or in real time after the history programming. Times, dates and the channel 107 can be programmed based on the user profile data for any number of channels, media sources, video content, content options and/or portions of content to be rendered via the channel 107.
The event component 209 is configured to associate metadata to respective video content of the video content from the plurality of media sources. The metadata can comprise one or more (e.g., at least two) of a time of the video content from a corresponding media source of the plurality of media sources, a location (e.g., a city, location and/or region), a device type for compatibility (e.g., wide screen, HDTV, radio, handheld, smart phone, etc.), and/or a top tier of video content having a rank that satisfies a predetermined threshold and/or can also be associated with a frequency of detection of a topic from the video content of the plurality of media sources. The event component 209 can operate to reduce and/or raise a weight by associating metadata to the video content based on one or more events that include user behaviors, a change in topic selection in the preferences of the user profile data and/or of the video content. As such, the ranking component 204 can operate to reconfigure a rank based on the change in data associated with the video content and/or data set within the user profile data by a user and/or learning of the user's behavioral patterns toward various video content and/or media sources. The weighting component 206 operates to then reconfigure a weight associate with video content analyzed and identified from the media sources.
The streaming component 120 is thus operable to communicate a sequence of the video content from the plurality of media sources, as well as communicate various media content portions based on user profile data, ranks, weightings and associated metadata of video content identified for a dynamic user experience that can be predetermined on a schedule for the user automatically and/or selected by the user, in which the system further adapts for dynamic scheduling thereafter. For example, the streaming component 120 is configured to communicate an updated video content selection (e.g., a new episode, a new video from an identified friend on a social network, an updated of a social network news feed, a broadcast content programming at a certain time, title, or other related criteria data) as well as portions of each based on classification criteria. A display component such as a client component 210 is configured to receive the communicated content via the channel 107 and render the content to a display (e.g., a touch screen, panel display or the like) that generates the updated video content associated with the updated video content selection in the display component via the personalized video channel 107 in response to an updated video content selection input being received.
Referring now to
For example, a personalized channel 302 communicated to a subscribing device or mobile device 314 can be configured for viewing at defined times from an online video subscription service with particular video content and another channel 107 can at the same time be configured to communicate video content from a broadcasting local channel at a defined time to the mobile device 312. The mobile device 312 and the mobile device 314 can communicate to one another in a wired connection and/or wirelessly on the same wireless network or different network 202 as one another, which can include a Wide Area Network (WAN), Local Area Network (LAN), a cloud network and/or the like. The system 300 comprises the computing device 104 further comprising a recommendation component 304, a preference component 306, a channel configuration component 308, and a modification component 310.
The recommendation component 304 is configured to recommend the video content based on the user profile, as well as recommend portions of video content and/or further media sources upon which to derive video content for communication via one or more personalized channels 107, 302. The recommendation component 304 can operate to communicate a set of recommended media content, media content portions (i.e., segments of media/video content) based on a set of classification criteria (matching audio content to search terms, theme, genre, audience category, language, location, actor/actress, a personal video classification based on metadata, and the like) and/or user profile data such as user preferences, which can include topics selected for past, current and/or future viewing content. For example, the set of user preferences can include a selection of video content from media sources 102, in which recommended video content and portions of the video content can be identified.
The recommendation component 304 operates to further narrow searching or identification of media content portions (e.g., segments of at least one of scheduled programming, video content, video feeds, social networking sites, video subscriptions services, and the like) within media content and video content (e.g., identified programming, movies, videos uploads, etc.) from the set of media sources 102. Because the volume of media content can be large from multiple different data stores/sources with different broadcasting channels, and/or web pages, the recommendation component 304 can further focus the generation of video content and associated portions to a subset of recommended video content (e.g., programming) and/or portions (e.g., segments of programming, such as news clips within a news broadcast), and provide options via mobile devices 312 and/or 314 to configure a personalized channel (e.g., 107 or 302) with other video content and/or media sources other than predicted content automatically scheduled by the system, and/or other prescheduled configured content/media sources. In this way, various types of refined preferences can be used for various types of objectives as they are modified and/or entered into the user profile dynamically. For example, specific cultural significances, specialty significances, educational objectives, audience categories, language preferences, racial preferences, religious preferences, and the like can be used to generate portions of media from larger volumes of media content and from video content of various media sources, which can be defined in addition to other more standard preferences such as a theme (comedy, romance, drama, etc.). A user not satisfied with previously programmed content for the channel, either predicted and/or previously configured can search content via the network 202 in a search engine component (not shown) while being supplemented with recommendation options at the same time via the recommendation component 304. Therefore, the user can be presented with recommended content as identified by the system 300 from identified media sources 102 and also search results based on the search terms from the user's own search over particular/specified/other data stores.
The preference component 306 is configured to communicate preference selections received via the mobile device 312 and/or 314, such as via a graphical control and/or the like. The set of user preferences, as discussed above, can comprise at least one of a media source preference, a time preference to associate with the video content, a personalized channel selection, a theme preference, a rating preference, an actor preference, a language preference, a date preference, past viewing configurations and/or other preferences for media content and media sources. In one embodiment, the preference component 306 can provide options for preferences to a user via a personalized video channel (e.g., 107, 302) and to at least one of the mobile devices 312, and/or 314. The preferences can be received as selections for configuring the personalized channels at different times of a schedule and/or learned dynamically from user behavioral data that represents user control inputs related to video content and/or identified media sources 102.
The channel configuration component 308 is configured to modify the personalized video channel 107 or 302 to communicate video content based on predicted video content that is automatically scheduled by the system 300 according to user profile data and/or based on the set of user preferences of the user profile data for manual configuration by the user. The channel configuration component 308 enables a plurality of channels to be configured and further communicate personalized video content from a plurality of media sources to one or more mobile devices 312, and/or 314. A set of user profile data can be assigned to the respective channels 107 and/or 302 independently so that the channels can be configured based on respective sets of user profile data (e.g., user preferences and/or behavioral data). For example, a channel 107 can be configured to communicate a first set of media sources with a first set of video content at different times and/or video content portions from at least two of the channels, and another channel 302 could be configured to communicate a second different set of video content and/or video content portions. Further, both channels 107 and/or 302 could be configured based on the same set of user profile data, in which the channel 107 can be configured from one set of media sources to communicate cartoons, for example from a first broadcast station, and subsequently programming from another broadcast station, while the other channel 302 is configured to provide content from different media sources at the same time. Thus, the same user profile could enable a single household to access various programming configured to different channels from different mobile devices as well as access one or the other channel from the same mobile device, in situations where interest could change depending on a user's mood. In addition or alternatively, both channels 107 and/or 302 could be communicated to the same device 312 or 4314, in which video content could be displayed alongside, in front of or behind the other video content streaming in different view panes.
The modification component 310 is configured to modify the video content, the plurality of media sources and/or a scheduled time for communicating the video content and/or media source(s) in response to a user input selection. The modification component 310 can modify one or more of the configuration channels and/or media source(s). For example, the modification component 310 can operate to change from one personalized channel 107 to another personalized channel 302 for a particular mobile device 312 for example. The channel 107 could be controlled via user profile data from the mobile device 312 and/or a different mobile device, such as mobile device 314, in which the mobile device 312 receives authorization to receive content via the personalized communication channel 107.
The modification component 310 can operate to alter content at a given time through a selection input or other input control received via a user device, such as mobile device 312 and/or 314. For example, a media source could be changed from a play list of options via a user selection. The modification component 310 can operate to control the prediction grid of the prediction grid component by modifying settings for display of the grid. For example, the prediction grid could show a history of predicted content for a particular time, whether past, present and/or future along the time line or time axis based on predicted content for the time. Alternatively or additionally, the modification component 310 can modify the basis for providing predicted content as dependent upon current recommendations in order to demonstrate viewing trends by which the system 300 can further predict viewing content at particular times, dates for various media sources and video content (programming) from the media sources.
Additionally or alternatively, the modification component 310 can modify the number or the amount of different video content that is provided to a mobile device 312 via the personalized channel 107. For example, a video could be communicated from a broadcast that is either being aired at a broadcast scheduled time, an additional chat screen could be generated for discussing video content, and/or video screen for video communicating with one or more other mobile devices at the same time. In addition, the number of screens for viewing content from different media sources could be modified in order to dynamically search for other video content and sources while viewing other video content and media sources.
The modification component 310 can also operate to configure a media source preference, a time preference to associate with the video content, a personalized channel selection, a theme preference, a rating preference, an actor preference, a language preference, a date preference, past viewing configurations and/or other preferences to the video content and media sources that the video content is derived from. For example, as a user continues to watch a particular series at a particular time, either broadcasted from a station as the source or streamed from an online site or feed, the system can alter a preference for the episodes/series/source to be associated with the particular times. The modification component 310 can dynamically interact with a user via the mobile device 312 for determining preferences, inquiring further about preferences at times, and/or modifying the set of behavioral data from user inputs related to different video content. For example, when an episode from a broadcast is not programmed at the usual time due to alternative programming, other predicted programming could replace it, while the system inquires further or indicates as such to the user for further override or input (via behavioral data and/or preference selections).
Referring to
The selection component 402 is configured to communicate the video content as a set of selections to respectively schedule at a predetermined time in a display component for rendering the video content at the predetermined time. The selection component 402, for example, operates with the scheduling component 208 to provided options to the user in forms of selections for video content. The selection component 402 can receive a video content selection, a media source selection, a portion/segment of video content selection, a selected data store and the like for viewing via the personalized video channel 107. The selections can also be in the form of touch screen selections that are received, box checked selections, a drop down selection and/or any other graphical user interface control for a selection that operates to receive a user's desire for one of the video content, segments, media source, etc. for viewing. The selections can also include times corresponding to a grid, such as a prediction grid, in which the user can associate the selection to a selected time or times for viewing along the grid.
For example, a user can select video content identified from different media sources (e.g., an RSS feed, a news source, a reality show upload from a subscription service, etc.) and schedule the personalized video channel 107 to stream from the different media sources at the different times, ether sequentially in consecutive order or in another sequence. The user can then leave to go to a different location or region with a friend where the user can plug-into the personalized video channel with an application interface to stream the scheduled content at the times configured with the video content selected and from the different media sources, such as for a broadcast video, a personal video, web data feed video content, subscription service online video content, store video content, broadcast content from the local area of configuration, and/or from the location of viewing, for example.
The characteristic component 404 can operate to determine characteristics of the video content identified from the different media sources. The characteristic component 404 is configured to analyze a set of characteristics related to the video content that include a video resolution, a duration, and/or one or more colors for determining black and white content, as well as colored video content. Video evaluation mathematical models can be utilized by the characteristic component 404 to approximate results of subjective quality assessment of video content, which are based on criteria and metrics that can be measured objectively and automatically evaluated by a computer program. Objective methods can be classified based on the availability of the original video signal, which is considered to be of high quality (generally not compressed). Therefore, they can be classified as Full Reference Methods (FR), Reduced Reference Methods (RR) and No-Reference Methods (NR). FR metrics compute the quality difference by comparing pixels in each image of the distorted video to its corresponding pixel in the original video. RR metrics extract some features of both videos and compare them to give a quality score. They are used when all the original video is not available, e.g. in a transmission with a limited bandwidth. NR metrics try to assess the quality of a distorted video without any reference to the original video. These metrics are usually used when the video coding method is known. Other ways of evaluating quality of digital video processing system (e.g. video codec like DivX, Xvid) that can be utilized are calculation of the signal-to-noise ratio (SNR) and peak signal-to-noise ratio (PSNR) between the original video signal and signal passed through this system. PSNR is the most widely used objective video quality metric. In addition, other metrics can be utilized such UQI, VQM, PEVQ, SSIM, VQuad-HD and CZD.
The classification component 406 is configured to determine a classification of the video content from the plurality of media sources. The classification can include a theme, an age range, a media content rating, an actor or actress, a title, or a category according to the user profile data, wherein the category includes a news broadcast, a movie, a branded channel, and/or a television series. The classification can be set according to a user preference, identified from analysis of the video content and/or metadata associated with it, and tagged by the classification component 406 to the video content, which can be indexed thereafter according to the classification for further ease of retrieval by referencing the tags in the data store 110.
In one embodiment, the classification component 406 operates to identify audio content associated with the video content. The classification component 406 further determines whether audio content of the video content matches a word or phrase of a search criteria represented in the user profile data. The system 400 can thus operate to retrieve a word or phrase such as for a topic request and ascertain via the audio content words and phrases for matching with the topic requested.
The classification component 406 can also ascertain semantics about the video content, such as actors, performers, time period of production, subject matter, genre, etc. according to various attributes of the content. For example, the audio content could give clues to each of these as well as the title, and other metadata associated with the video content. The video content can have multiple attributes that aid in classification of the video content via the classification component 406, for example. The classification component 406 can utilized the classification data of the video content for matching with classification criteria set in the user profile data by the user and for the system to provide recommended video content from different media sources accurately.
In another embodiment, the classification component 406 identifies type of video content according to a category including a news content, a movie, a branded channel (e.g., Discovery, BBC etc.), and/or a television series/episode, for example. A movie can be labeled according to a genre and time, for example, in order for the streaming component to queue for streaming via the personalized video channel 107.
The behavior component 408 operates to identify a set of behavioral data that represents user input control inputs received to manage the video content. For example, a purchase, a search term, viewed content, controls pertaining to video content and the like can be determined and used to determine a rank for video content via the ranking component 204. Other user controls to the video content can include an amount of a video content from a particular source that the user views and reduce or increase the rank of the content based on the behavioral data. For example, viewing less than 30 seconds could reduce the rank and the associated weight of the content, whereas viewing more than 99 percent of a video content could increase the rank and associated weight. The video content would then have a greater likelihood of being presented to the user as a future option or related video content associated with the same episode, programming, media source and the like related content, for example. Other behavior could also be associated with a strengthening or reduction of rank and weight to video content that are ascertained via the behavioral component 408. For example, rewinding actions could provide a rank/weight reduction, and rating of the content by the user on a scale could also decrease or increase the corresponding rank/weight for the content. For example, a five start system of rating could correspond with a neutral or no change at 3 and any rating below or above three could provide a corresponding increase or reduction in rank accordingly to the video content, the topic of the video content, the media source and/or segments of the video content.
The streaming component 120 is thus operable to communicate the video content from the media sources, as well as communicate various media content portions based on user profile data including user preferences for content/media sources, timing/scheduling content, ranks, weightings, classifications, selections and associated metadata of video content identified for a dynamic user experience that can be predetermined on a schedule for the user automatically and/or selected by the user. For example, the streaming component 120 is configured to communicate an updated video content selection (e.g., a new episode, a new video from an identified friend on a social network, an updated of a social network news feed, a broadcast content programming at a certain time, title, or other related criteria data) as well as portions of each, based on classification criteria, rankings of the video content, the user preferences, behavioral data and weighting provided to each of the classification criteria, the user preferences and topics determined for video content identified. A display component such as a client component 210 is configured to receive the communicated content via the channel 107 and render the content to a display (e.g., a touch screen, panel display or the like) that generates the updated video content associated with the updated video content selection in the display component via the personalized video channel 107 in response to an updated video content selection input being received. Video content can be updated either via the media source providing the video content such as through an RSS feed and the like, or by a reduction or increase in rank for topics and/or other criteria of the user profile data, and/or classification that changes a weight of the video content.
Referring now to
In one embodiment, the set of behavioral data 504 comprises purchased video content related to the user profile data, viewed video content related to the user profile data, stored video content related to the user profile data, and/or search criteria for video content related to the user profile data. For example, a purchase of video content could be made with the computing device 104 or via a different device in communication with the computing device 104. The purchase can be stored as part of user profile data. The computing device 104 can utilize the purchase data along with other data learned in the user profile to recommend video content and/or media sources that are identified by the source component. The user can then opt to select a time slot, video content, and/or media source available through the recommendations provided. The personalized channel (e.g., channel 107, as discussed above) generated by the computing device can be configured with the times, content and source data according to the user's selection.
For example, a documentary on dinosaurs could be identified from a broadcast channel station (e.g., a public broadcast channel or the like) and the personalized channel be configured to transmit or communicate the documentary at the time that it is being broadcast. At the same time, a documentary similar to one that was purchased by the user could be configured to play after the dinosaur channel through a user selection of a selected content and/or media source as well. As mentioned above, the user preferences can also include viewed video content related to the user profile data, stored video content related to the user profile data, and/or search criteria for video content related to the user profile data, which can facilitate providing further recommendations, a past history record, as well as other information learned about the user's viewing habits, and/or for configuring/identifying further video content and media sources for a particular channel to be personalized at scheduled times/dates. The set of behavioral data can also include viewing data, search data, purchase data, location data, language data, age data, household membership data and/or subscription data.
In addition, the user preferences 506 can comprise a media source preference and/or a time/date preference to associate with the video content for viewing on a channel (e.g., channel 107) configured according to a user preferences and/or behavioral data related to video content. The user preferences 506 can further include a personalized channel selection where multiple channels are configured based on a user's personal preferences or classification criteria such as a theme preference, a rating preference, an actor preference, a language preference, a date preference and the like.
In one embodiment, the profile component 116 is further configured to receive a first user preference of the set of user preferences from selections related to the video content and identify a second user preference based on the set of behavioral data. For example, a personalized channel configured by the computing device for rendering different video content from different media sources at various times could recommend horror movies based on a theme preferences that a user has entered, as the user begins to override the preference and select different themes at a particular time or date, the system 500 could further recommend similar video content from differing media sources for viewing at the same time or on similar dates (e.g., weekly dates, etc.). Thus, a dynamic system 500 identifies, recommends and learns various user preferences and how they relate to one another in order to provide a dynamically configurable channel at the user's disposal.
In one embodiment, the computing device 104 is further configured to access at least one of the plurality of media sources based on the user profile data 502, such as when the user is subscribed to an online video rental site, a social network site that updates video content of friends associated with the user, as well as other web page feed services. For example, the user profile data can include access data to one or more web pages/sites, subscriptions services and/or other external video providers. This content can be presented to be configured into the personalized channel for viewing at pre-defined times or dates, as well as be used for recommendations based on other user profile data.
The source component 114 is further configured to identify updated video content 510 from among video content 508 that is different from the video content 508 previously accessed or identified as potential candidates for the personalized channel. This computer device 104 can thus communicate an updated video content selection of the updated video content 512 to the display component, and the display component is configured to generate the updated video content 510 associated with the updated video content selection in the display component via the personalized video channel in response to an updated video content selection input being received.
In addition or alternatively, the source component 114 can identified new or updated media sources 514, which could be identified from a more detailed search for media sources by the source component 114, a new broadcast or web page/site, a new subscription accessed/identified by the user profile data, and/or newly stored content in a data store or video library. A user selection could also be received for streaming via the personalized channel at particular times or dates that relates to which media source 512 or update media source 514 to render in a display or mobile device.
Referring to
The video quality component 602, for example, is configured to analyze the video content 508 and/or 510 from the media sources 512, 514 to determine a set of video characteristics comprising at least one of bitrate, frame rate, frame size, audio content, formatting, a title, an actor or actress, or metadata pertaining to the video content. The channel modification component 604 can operate in conjunction with the video quality component to configure the quality of a personalized channel. The system 600 can operate to compare duplicate video content and eliminate the duplicates that do not satisfy a predetermined threshold for quality, and thus, leave only the video content among the duplicated video content with the highest quality metrics or that is of a greater quality of service based on one of the set of video characteristics.
The channel modification component 604 is further operable to change channels that are personalized from a first personalized channel that is based on one set of user profile data and to another personalized channel that is based on another set of user profile data. In one example, the channel modification component 604 can comprise a channel control as part of the channel control component 606. The channel control component 606 can operate to alter the video content from the media sources by generating a forward, rewind, pause, skip and other graphical controls for affecting video content generated on a single personalized channel, such as channel 302. The channel control component 606 can operate to change personalized channels, which each can be configured according to a different set of user profile data 502 or a different set of user preferences 506. In addition, the video control component 606 can generate selections for altering a media source and/or a video content to be streamed over the single personalized channel 302.
In another embodiment, the video control component 606 can operate to control subscriptions to a personalized channel, such as the personalized channel 302. For example, the display component or mobile device 608 comprising a display component can facilitate the configuration data for a personalized channel 302. The display component or mobile device 608 can thus subscribe in a request to the channel 302 that is personalized by the user profile data 502 from display component 610. Therefore, two mobile devices 608, 610 can view the same content at the same time together, and/or separate at different times. In one example, selections can be received via the display component of mobile device 610 for configuring the personalized video channel for the display of mobile device 608. The selections can facilitate rendering of the video content from the media sources by receiving at least two selections, such as a video content selection, a media source selection, a topic selection, a duration selection, a title selection, a language selection, and/or a video play list/selection, a date selection, or a recommendation selection.
Referring now to
The partitioning component 702 is configured to partition the video content from the plurality of media sources based on the user profile data (user preferences and/or behavioral data that represents user actions relating to video content). The partitioning component 702 operates to partition the video content of one or more media sources 102 into a plurality of video content portions (segmented partitions of programming, of videos uploaded on a web page, or of other video content) based on a defined set of criteria (e.g., the classification criteria) that comprises at least one of a topic, an audio content, a transition point in the video content, a duration or time frame, a match of the set of user preferences of the user profile data or the audio content of the video content being determined to match a word or phrase of a search term/criterion or terms/criteria of the defined set of criteria. The classification criteria can be part of the user profile data such as part of user preferences as a category for video classification preferences.
In one embodiment, the partitioning component 702 operates to partition video content into segments or subsets of the programmed content based on criteria defined as part of the user profile data. The portions or segments can be part of a video content as defined by a time frame, an end time, a title, and/or other defining or classifying criteria. For example, a portion of video content can be a section, segment or portion of a news broadcast, in which a certain topic could be discussed relating to a hurricane in New Orleans, while the entire news broadcast could be a designated hour long having multiple different segments related to different news topics or stories.
The streaming component 120 is thus operable to communicate a sequence of the video content from the plurality of media sources, as well as communicate various media content portions based on user profile data (user preferences, classification criteria, and/or behavioral data), ranks and weights associated with the content and also from different media sources at different times. For example, the streaming component 120 is configured to communicate an updated video content selection (e.g., a new episode, a new video from an identified friend on a social network, an updated of a social network news feed, a broadcast content programming at a certain time, title, or other related criteria data) as well as portions of each based on classification criteria and the partitions generated from the partitioning component 702. The personalized video channel 107 can be configured to render the content to a display (e.g., a touch screen panel display or the like) and generate the updated video content associated with the updated video content selection in the display component in response to an updated video content selection input being received.
The serializer component 704 is configured to concatenate the video content from the plurality of media sources into a set of video content sequences, such as a sequence of scheduled programs, video uploads, new feeds, and/or video content portions of programs/uploads/feeds. For example, the set of video content sequences can comprise a portion of the video content identified from a media source based on the user profile data, as well as other video content from other media sources. Programming can be scheduled from scheduled content as published by the media sources and/or dynamically generated based on video content identified from the plurality of media sources based on the user profile data, such as with a video update on a social network, newly added downloadable content from a video rental site, video subscription service or other web page/site.
The splicing component 706 is configured to identify a portion or segment of a programming within the video content of a corresponding media source and extract the portion of the programming based on user profile data. The splicing component 706 can operate as a separate component from the partitioning component 702 and/or as a complimentary component of the partitioning component 702. While the splicing component 706 can operate to generate portions of video content segments or subsets of defined sets of video content, the partitioning component 702 can operate to generate the video content segments, or, otherwise known as, video content (video(s)) from different media sources. Some media sources, for example, such as a social network site could provide data indicating that a video upload or updated video content has occurred for one or more friends within a user's network. These videos could corresponding to different full length videos, which could range from a few minutes to hours, or more in duration, but have a defined beginning and ending point. However, broadcast television programming could have continuous video streaming that could be recorded and communicated via the personalized video channels 302 and/or 107, and/or communicated at the time of broadcast. The partitioning component 702 can operate to divide the different programming and video content identified among various channels, such as channel 302 and 107 based on user profile data, and/or divide broadcast programming to different channels as well as for different times, in which programming from one local broadcast could be streamed and then another local broadcast of a different station could be streamed thereafter without the user having to change a channel as in traditional methods.
The splicing component 706 can generate portions of segmented video content or of full length content that is not continuously broadcasted. For example, a new station could report, broadcast and/or upload a news hour broadcast. The different portions or stories could be dynamically spliced based on user profile data, such as search data. The portions can be presented to the user dynamically as options and then played to the client component 304 and/or 308 based on the user profile data and/or selections to the options.
The computing device 104 is operable to publish components via the publishing component 710 to the network 202, from the network 202 and/or via the network 202 for implementation of the operations of the computing device 104 at one or more client components or mobile devices. The publishing component 710 can operate to publish personalized configuration channel(s) 107 for subscription to or viewing by other mobile devices other than the mobile device authorized for configuring the channel with various video content, scheduled times and media source(s).
The publishing component 710 can operate to control what mobile devices, networks, and/or web feeds are provided content via the personalized video channel 107, for example. The video content could be generated, for example, from a personal data store of family videos, as well as from various other broadcasting media, web pages, web feeds, and the like media sources. The video content could then be published to a social network for friends and family, and/or for one or more viewing devices for friends and family connected to the mobile device 312 via the network 202 for viewing content associated with the particular mobile device's user preferences, for example. Videos of family, grandchildren, etc. could then be followed up with and/or subscribed to at various predetermined times. Consequently, grandparents could follow the growth of grandchildren and events published via the family personal channel before calling each week to their children, while also watching similar content via the same personalized channel for sake of conversation, or further interest.
In one embodiment, a user via the mobile device 312, as discussed above, is operable to configure the channel 302 as having a first set of video content from a first set of media sources (e.g., set of MTV videos, Facebook news feeds, chat/video conference screen, and the Grammy awards) and the communication channel 107 via a second different set of video content from different media sources by manually setting the content and/or managing the user profile data for settings, classifications/classification criteria, and/or behavioral data representing user input controls related to video input. The user profile data could be entered or learned to provide the Grammy awards via the personalized channel 302 at the same time as to mobile device 314 for viewing on, and thus, the channel 302 could alternatively or additionally be shared to mobile device 312. The publishing component 710 is operable to publish a channel, such as the personalized channel 302 for any connected viewer from the same set of user profile data or from a different set of user profile data that has been enabled for access. For example, a request could be received by one viewer or one mobile device to another for accessing a personalized channel that is configured by the mobile device that is in control of personalizing or configuring the particular personalized channel. The publishing component 710 operates to communicate to the requesting mobile device the personalized channel (e.g., channel 107) upon acceptance of the request by the configuring mobile device (e.g., mobile device 312). One or more devices are able to access a personalized channel with personalized content and from a selected media source at any given time while also utilizing resources to share the personalized experience, such as with video chat, chat component, searching capabilities, suggestions, rating, personal content viewing, and/or personal commercial marketing intermittently with configured programming from different media sources and/or personal video content at the data store(s) 110.
In one example, the personalized channel 107 can be configured by the mobile device 312 for viewing at the mobile device 312 and also for the mobile device 314 with programming from one wired broadcast and of another wireless broadcast thereafter, and regardless of the different media sources and their sequential video content via the personal video channel 107, family videos in a data store of the mobile device 312 could be streamed intermittently, and/or other video content from a personal data base in communication with the mobile device 312. In another embodiment, control of the personalized channel and the configuration of the channel can be dynamic and be altered by the user profile data of the mobile device that is configuring the personal communication channel, such as with a password or other security. The mobile device 312 could alter the viewing of the Grammy Awards via the channel 107, therefore, to provide content from MTV videos playing different content, either at different times, intermittently, and/or at sequential times before and/or following the Grammy Awards. For example, while two devices 312, 314 are viewing the Grammy Awards, the mobile device 312 could alter the media source and/or viewing content to demonstrate, supplement, or change the main viewing to other video content. Both mobile devices could decide together that one type of video content is undesirable (e.g., boring) so a chat screen could be published via the publishing component 710 and utilized to indicate the desire to switch to another on the personalized channel 302. The mobile device in control of the configuration could opt to draw from an online video rental, other broadcast channel, a Facebook feed, etc., in which the two mobile devices would more enjoy with one another and on different mobile devices.
The computing device 104 operates further to predict video content and associated media sources for a personalized video channel 107 to communicate based on user profile data. The prediction component 712 operates to analyze user profile data aggregated by the profile component 116 and to communicate video content via the personalized channel 107 based on the predicted content. For example, in situations where no scheduled viewing is configured to the personalized channel 107, the prediction component 712 can analyze, store, and communicate updated content via the personalized channel 107, which depends on the user profile data for such prediction.
The prediction component 712 is configured to generate a set of predicted video content from the plurality of media sources based on the user profile data. In one embodiment, the video channel 107 can be configured with predicted video content at times along a time axis. A user is able to view predicted content by default by enabling transmission of video content to be viewed at a user device via the personalized video channel 107 at any time. Further, scheduled times can be defined by the user to alter the predicted content and override any defaults of the system through one or more user controls of a prediction grid. The personalized video channel 107 is utilized for viewing with predicted content as a default to eliminate normal changing and searching video content/media sources by the user and could also be for regular viewing by other users of other devices that are part of the users group of friends, family or accepted viewers. For example, the user profile data could comprise information that a user of a mobile phone that is in primary control of the configuration of the channel 107 views reality shows (e.g., Pawn Stars, Swamp People, Gold Rush, etc.) at a particular time (e.g., before a night time). In a situation where the user views his/her personalized channel 107, even though the channel is not configured for a certain date or time, the system could communicate learned likes and dislikes for the particular time and either communicate reality show options and/or select a best option by which to stream video content via the channel 107 to the user along with any other recommended options for viewing aside from the predicted content being communicated.
For example, the prediction component 712 operates to predict/identify video content from among multiple identified media sources as what the user wants to view at each moment in a day time and/or each day of a calendar day (a week/month/year), such as what a user would have watched an hour ago or other past point in time, and what the user would view as video content from a corresponding media sources at a present point of time. The prediction component 712 operates therefore to predict the video content and media sources, to enable a user to select any point of time and any of the predicted video content/media sources at the point of time selected (past, present, future points of time), and to configure the personalized video channel with a predicted video content from the selected point of time.
In one example, the prediction component 712 can know that at 9 AM the user is watching her child's cartoons while gathering her daughter to school. Then she operates the personalized viewing channel 107 on again at 10 AM after she returns from dropping her child at school and that at this time she like to watch political news. But today, her kid fell ill and did not go to kindergarten. The system 100 could know via a user device, display component, mobile device, etc. that she ran to see the doctor and returned home to stay in bed. As such, when the user tunes into the personalized viewing channel 107 at 10 and, instead of following past recommendations for her to watch her usual new show she can requests to display recommendations of 9 AM spot, when the kids shows are historically predicted/recommended. The same cartoons/video content that would have been displayed at the 9 AM spot could be generated via the personalized video channel 107 and/or different content based on storage and availability. In addition or alternatively, the same classification of video content could be generated based on one or more classification criteria (e.g., cartoons at 10 AM).
While the methods described within this disclosure are illustrated in and described herein as a series of acts or events, it will be appreciated that the illustrated ordering of such acts or events are not to be interpreted in a limiting sense. For example, some acts may occur in different orders and/or concurrently with other acts or events apart from those illustrated and/or described herein. In addition, not all illustrated acts may be required to implement one or more aspects or embodiments of the description herein. Further, one or more of the acts depicted herein may be carried out in one or more separate acts and/or phases. Reference may be made to the figures described above for ease of description. However, the methods are not limited to any particular embodiment or example provided within this disclosure and can be applied to any of the systems disclosed herein.
Referring to
At 806, the video content is rendered from the media sources via the personalized video channel based on the user profile data and the plurality of topics determined from the video content. For example, the video content can be communicated via the personalized video channel corresponding to the plurality of topics based on a frequency of detection within the video content of the media sources. Time slots can be generated corresponding to the plurality of topics of the video content in order for scheduling of content and time stamping video content for scheduling. The video content can be classified based on a category that includes a news broadcast, a movie, a branded channel, and/or a television series and at least one of a genre, a media content rating, a performer, a location or region, and/or a title. The video content can be weighted at different times with a weight measure respectively based on the user profile data, the ranking and the category.
The video content of the media sources can be queued in a data store or in a queue based on the weight measure respectively to configure the personalized video channel to communicate the video content according to the queue. For example, the queue can be first in first out queue and/or other kind of queue for video content to be streamed via the personalized video channel. In another example, the weight measure can be altered based on a change of the user profile data, the ranking and/or the classification or category of the video content.
Referring to
In one embodiment, ranks are generated corresponding to the plurality of topics based on a frequency of detection within the video content of the media sources. The video content can be weighted according to or at different times for scheduling with a weight measure respectively based on the user profile data, the ranks and the classification criterion. The video content of the media sources is then stored in a queue based on the weight measure respectively to configure the personalized video channel to communicate the video content according to the queue, and the video content is scheduled according to scheduled time slots and the ranks.
Referring to
The media sources can comprise at least two of a broadcast media channel, a web page, a web data feed, a network subscription service or a video library with personalized video content, such as home/personal videos with a recording device. The personalized video channel is able to be modified by a user with a second video content from a second media source to replace a first video content from a first media source at a designated or scheduled times. For example, the user preferences can comprises a time preference, a date preference, a video content preference, a media source preference or a video portion preference that corresponds to the video content from the media sources.
In one embodiment, the method can include receiving a request from a first mobile device to receive the personalized video channel at the first mobile device. The second mobile device that can be authorized to configure the personalized video channel for different media sources and/or video content identified can generate an acceptance for the first second mobile device. The system can then receive the acceptance and publish the personalized video channel to the first mobile device.
Referring to
In one embodiment, the method 1100 can further comprise generating a prediction grid that communicates the video content based on the user profile data. The video content predicted is corresponded or associated to a set of points in time along a time line based on metadata associated with the video content and identification of the media sources of the video content for a selected point of the set of points. A prediction grid can also be communicated via the personalized channel to the mobile device, in which the prediction grid comprises a past point of time, a present point of time and a future point of time of the set of points that indicates the video content predicted at the selected point depending on a set of criteria that comprises at least one of user profile data stored at the present point of time, or user profile data stored at the selected point along the time line. The user preferences can further include a classification criterion that comprises at least one of a theme, an age range, a media content rating, an actor or actress, or a title, represented in the user profile data.
Referring to
The behavioral data can include activities of the user for determining what the user could be interested in, such as purchases made of video content, search terms or criteria for video content, activities during viewing of video content (e.g., skipping content, fast forwarding, etc.), and any control input to video content in response to rendering the video content via a personalized channel.
At 1206, a rendering of the video content is facilitated from the media sources by a display component via the personalized video channel based on the user profile data. The channel is personalized for rendering content from various sources at different times and operable to interact with the content through sharing, publishing to other devices, rendering in a view pane, further configuration (e.g., altering source during a particular time, modifying the video content form a particular source, etc.). In addition or alternatively, a personalized channel selection can be received as profile data that determines whether the video content of a first personalized video channel or a different video content of a second personalized video channel is sent to the display component for rendering in a display component for viewing.
In one embodiment, the method can include comparing the video content from the media sources to identify duplicate video content, and removing the duplicate video content from a set of video content selections, in order to provide video content and/or media sources of the respective content as selections for configuring the personalized channel based on user profile data. The removal of duplicates could be according to one or more criteria, such as bit rate, resolution and/or other video quality criteria for maintaining the video content having a greater quality of service than the duplicate video content. For example, the method could include analyzing the video content from the media sources to determine one or more video characteristics, such as bitrate, frame rate, frame size, audio content, formatting, a title, an actor and/or actress, and/or metadata pertaining to the video content. The analysis of video content can operate to enable further removal of duplicate video content.
In another embodiment, the method 1200 can further include partitioning of the video content into a plurality of video content portions based on a defined set of criteria that comprises at least one of a topic, an audio content, a transition point in the video content, a duration or time frame, a match of the set of user preferences of the user profile data or the audio content of the video content being determined to match a word or phrase of a search criterion of the defined set of criteria. The portions can include, for example, various programming sequences being broadcast from one or more of the media sources, and/or of entire video content, in which the portions are splices of subsets of the video content in order to facilitate rendering of only interesting sections according to user profile data.
Referring to
In one embodiment, configuring the set of personalized channels can include associating metadata with the video content or with at least one of the media sources from which the video content originate. The metadata can include information about the video content, a media source, and/or channel data (e.g., timing, scheduling, titles, etc.), in which the data can be associated from user preferences of the user profile data and/or manually associated with the video content and/or the media source. In addition, additional media sources can be added to the set of personalized channels as additional sources available are identified.
One of ordinary skill in the art can appreciate that the various non-limiting embodiments of the shared systems and methods described herein can be implemented in connection with any computer or other client or server device, which can be deployed as part of a computer network or in a distributed computing environment, and can be connected to any kind of data store. In this regard, the various non-limiting embodiments described herein can be implemented in any computer system or environment having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units. This includes, but is not limited to, an environment with server computers and client computers deployed in a network environment or a distributed computing environment, having remote or local storage.
Distributed computing provides sharing of computer resources and services by communicative exchange among computing devices and systems. These resources and services include the exchange of information, cache storage and disk storage for objects, such as files. These resources and services also include the sharing of processing power across multiple processing units for load balancing, expansion of resources, specialization of processing, and the like. Distributed computing takes advantage of network connectivity, allowing clients to leverage their collective power to benefit the entire enterprise. In this regard, a variety of devices may have applications, objects or resources that may participate in the shared shopping mechanisms as described for various non-limiting embodiments of the subject disclosure.
Each computing object 1410, 1412, etc. and computing objects or devices 1420, 1422, 1424, 1426, etc. can communicate with one or more other computing objects 1410, 1412, etc. and computing objects or devices 1420, 1422, 1424, 1426, etc. by way of the communications network 1428, either directly or indirectly. Even though illustrated as a single element in
There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems can be connected together by wired or wireless systems, by local networks or widely distributed networks. Currently, many networks are coupled to the Internet, which provides an infrastructure for widely distributed computing and encompasses many different networks, though any network infrastructure can be used for exemplary communications made incident to the shared shopping systems as described in various non-limiting embodiments.
Thus, a host of network topologies and network infrastructures, such as client/server, peer-to-peer, or hybrid architectures, can be utilized. The “client” is a member of a class or group that uses the services of another class or group to which it is not related. A client can be a process, i.e., roughly a set of instructions or tasks, that requests a service provided by another program or process. The client process utilizes the requested service without having to “know” any working details about the other program or the service itself.
In client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer, e.g., a server. In the illustration of
A server is typically a remote computer system accessible over a remote or local network, such as the Internet or wireless network infrastructures. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server. Any software objects utilized pursuant to the techniques described herein can be provided standalone, or distributed across multiple computing devices or objects.
In a network environment in which the communications network 1440 or bus is the Internet, for example, the computing objects 1410, 1426, etc. can be Web servers with which other computing objects or devices 1420, 1422, 1424, 1426, etc. communicate via any of a number of known protocols, such as the hypertext transfer protocol (HTTP). Computing objects 1410, 1412, etc. acting as servers may also serve as clients, e.g., computing objects or devices 1420, 1422, 1424, 1426, etc., as may be characteristic of a distributed computing environment.
As mentioned, advantageously, the techniques described herein can be applied to a number of various devices for employing the techniques and methods described herein. It is to be understood, therefore, that handheld, portable and other computing devices and computing objects of all kinds are contemplated for use in connection with the various non-limiting embodiments, i.e., anywhere that a device may wish to engage on behalf of a user or set of users. Accordingly, the below general purpose remote computer described below in
Although not required, non-limiting embodiments can partly be implemented via an operating system, for use by a developer of services for a device or object, and/or included within application software that operates to perform one or more functional aspects of the various non-limiting embodiments described herein. Software may be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers, such as client workstations, servers or other devices. Those skilled in the art will appreciate that computer systems have a variety of configurations and protocols that can be used to communicate data, and thus, no particular configuration or protocol is to be considered limiting.
Although not required, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media (discussed below). Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract data types. Typically, the functionality of the computer readable instructions may be combined or distributed as desired in various environments.
In other embodiments, device 1512 may include additional features and/or functionality. For example, device 1512 may also include additional storage (e.g., removable and/or non-removable) including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated in
The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data. Memory 1518 and storage 1520 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by device 1512. Any such computer storage media may be part of device 1512.
Device 1512 may also include communication connection(s) 1526 that allows device 1512 to communicate with other devices. Communication connection(s) 1526 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connecting computing device 1512 to other computing devices. Communication connection(s) 1526 may include a wired connection or a wireless connection. Communication connection(s) 1526 may transmit and/or receive communication media.
The term “computer readable media” as used herein includes computer readable storage media and communication media. Computer readable storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data. Memory 1518 and storage 1520 are examples of computer readable storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by device 1512. Any such computer readable storage media may be part of device 1512.
Device 1512 may also include communication connection(s) 1526 that allows device 1512 to communicate with other devices. Communication connection(s) 1526 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connecting computing device 1512 to other computing devices. Communication connection(s) 1526 may include a wired connection or a wireless connection. Communication connection(s) 1526 may transmit and/or receive communication media.
The term “computer readable media” may also include communication media. Communication media typically embodies computer readable instructions or other data that may be communicated in a “modulated data signal” such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” may include a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
Device 1512 may include input device(s) 1524 such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, and/or any other input device. Output device(s) 1522 such as one or more displays, speakers, printers, and/or any other output device may also be included in device 1512. Input device(s) 1524 and output device(s) 1522 may be connected to device 1512 via a wired connection, wireless connection, or any combination thereof. In one embodiment, an input device or an output device from another computing device may be used as input device(s) 1524 or output device(s) 1522 for computing device 1512.
Components of computing device 1512 may be connected by various interconnects, such as a bus. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a Universal Serial Bus (USB), firewire (IEEE 1394), an optical bus structure, and the like. In another embodiment, components of computing device 1512 may be interconnected by a network. For example, memory 1518 may be comprised of multiple physical memory units located in different physical locations interconnected by a network.
Those skilled in the art will realize that storage devices utilized to store computer readable instructions may be distributed across a network. For example, a computing device 1530 accessible via network 1528 may store computer readable instructions to implement one or more embodiments provided herein. Computing device 1512 may access computing device 1530 and download a part or all of the computer readable instructions for execution. Alternatively, computing device 1512 may download pieces of the computer readable instructions, as needed, or some instructions may be executed at computing device 1512 and some at computing device 1530.
Various operations of embodiments are provided herein. In one embodiment, one or more of the operations described may constitute computer readable instructions stored on one or more computer readable media, which if executed by a computing device, will cause the computing device to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment provided herein.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
Also, although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements, resources, etc.), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the disclosure. In addition, while a particular feature of the disclosure may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”