Generating montages of video segments responsive to viewing preferences associated with a video terminal

Methods, video terminals, and systems are disclosed for generating a montage of video segments for display by a video terminal. At least one video viewing preference associated with the video terminal is identified. Metadata associated with video segments in at least one video file is searched to identify video segments that correspond to the identified at least one video viewing preference. A montage of the identified video segments is generated for display by the video terminal.

TECHNICAL FIELD

The present disclosure relates to the generation of montages of video segments for display by a video terminal.

BACKGROUND

Montage generation is a technique in film editing in which a series of video segments are combined into a sequence to condense time, space, and information. Cable television and satellite television providers use this technique to promote and advertise pay-per-view movies, sports games, or other premium television program services on dedicated channels called Barker channels. A customer can tune to a particular Barker channel to view a sequence of video scenes from movies, sports games, or other premium services that a television provider has selected to advertise on that channel. The television provider may add metadata to the video segments that describes the program to a customer and informs the customer as to when and how the advertised program can be obtained.

The montage that is provided on a Barker channel is manually generated by a technician who reviews each of the programs that are to be advertised, selects scenes that the technician believes will best promote each of the programs, and then strings together the video for the selected scenes within each of the programs to generate a montage that is played on the Barker channel. The particular scenes that are selected for use in the montage depend upon the technician's expertise and knowledge of the targeted market segment of customers and further depend upon meeting other objective criteria, such as ratings/content limits and time constraints on program previews. This approach is inherently limited by the technician's preferences and expertise at predicting what an average customer within the targeted market segment will find most appealing in each of the advertised programs.

SUMMARY

Some embodiments of the present invention are directed to a computer-implemented method for generating a montage of video segments for display by a video terminal. At least one video viewing preference associated with the video terminal is identified. Metadata associated with video segments in at least one video file is searched to identify video segments that correspond to the identified at least one video viewing preference. A montage of the identified video segments is generated for display by the video terminal.

In some further embodiments, the at least one video viewing preference can be identified by receiving at least one user generated search term that characterizes at least one content category that is desired to be seen in video scenes. The metadata can include labels that categorize visual content of at least some scenes contained in the video segments. Searching can be carried out among the labels in the metadata to identify labels that match the at least one content category characterized by the at least one user generated search term. A list can then be generated for the video segments that correspond to the identified labels in the metadata. The montage of identified video segments can then be generated by sequentially playing each of the listed video segments.

In some further embodiments, identification of the at least one video viewing preference can include accessing a database of user data that defines viewing preferences of a user to identify at least one video content category that is preferred by the user. The metadata can include labels that categorize visual content of at least some scenes contained in the video segments. Identification of the at least one video viewing preference can include accessing a database of user data that defines viewing preferences of a user to identify at least one video content category that is preferred by the user. Searching can be carried out among the labels in the metadata to identify labels that match the at least one video content category that is preferred by the user. A list can then be generated for the video segments that correspond to the identified labels in the metadata. The montage of identified video segments can then be generated by sequentially playing each of the listed video segments.

In some further embodiments, the step of identifying at least one video viewing preference can include tracking what segments of what video files a user has viewed and further tracking how often each of the video segments has been viewed to generate user viewing habit data. The step of searching metadata associated with video segments in at least one video file can include matching entries in the metadata to the user viewing habit data to identify the associated video segments.

Some other embodiments are directed to a video montage generation circuit that includes a user preference module, a metadata search module, and a montage assembly module. The user preference module identifies at least one video viewing preference associated with a video terminal. The metadata search module searches metadata associated with video segments in at least one video file to identify video segments that correspond to the identified at least one video viewing preference. The montage assembly module generates a montage of the identified video segments for display by the video terminal.

Some other embodiments are directed to a video on-demand server that includes a user preference module, a metadata search module, and a montage assembly module. The user preference module is configured to identify at least one video viewing preference associated with a video terminal. The metadata search module is configured to search metadata associated with video segments in at least one video file to identify video segments that correspond to the identified at least one video viewing preference. The montage assembly module is configured to generate a montage of the identified video segments for communication through a network to the video terminal.

Some other embodiments are directed to a video terminal that includes a user preference module, a metadata search module, and a montage assembly module. The user preference module is configured to identify at least one video viewing preference associated with a user. The metadata search module is configured to search metadata associated with video segments in at least one video file to identify video segments that correspond to the identified at least one video viewing preference. The video segment montage assembly module is configured to generate a montage of the identified video segments for display on a display device associated with the video terminal.

Other methods, video terminals, and/or systems according to embodiments of the invention will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional methods, video terminals, and/or systems be included within this description, be within the scope of the present invention, and be protected by the accompanying claims. Moreover, it is intended that all embodiments disclosed herein can be implemented separately or combined in any way and/or combination.

DETAILED DESCRIPTION

Various embodiments of the present invention are directed to configuring video terminals and/or video on-demand servers to generate a montage of video segments for display by a video terminal. The montage can be generated in an automated manner and customized for the particular interests of a person. In some embodiments, the montage is generated in response to at least one video viewing preference identified as associated with the video terminal. Metadata that is associated with video segments in one or more video files is searched to identify video segments that correspond to the identified at least one video viewing preference. A montage of the identified video segments is then generated for display by the video terminal.

Although some embodiments are described in the context of a video terminal that receives a montage of video segments that is generated by a separate video on-demand server, the invention is not limited thereto. The montage may alternatively or additionally be generated by the video terminal. Accordingly, as used herein, a “video terminal” can be any electronic device that is configured to display video on a display device that may be part of the video terminal and/or may be separate but communicatively connected thereto. A video terminal may therefore receive the montage from another device or may generate the montage using internal circuit components. A video terminal may include, but is not limited to, a television/display device, a television tuner (e.g., cable/satellite tuner, such as a set-top-box) that is separate from a television/display device, a wireless communication terminal (e.g., cell phone, local area network terminal, etc.), and/or a desktop/laptop/palmtop/tablet computer.

FIG. 1is an example block diagram of a system that includes a video on-demand server110that generates a montage of video segments in response to a video viewing preference identified for a video terminal120. The server110may include, but is not limited to, a cable video on-demand server, a terrestrial broadcast video on-demand server, an Internet video on-demand server, and/or a satellite broadcast video on-demand server. The server110communicates the montage through a network130to the video terminal120. The network130may be any public/private broadband data network(s) and may include a radio access network, such as a cellular radio network and/or a wireless local area network.

The server110includes a database112and a video montage generation circuit118. The database112contains video files116and metadata114that identifies characteristics of video segments in the video files116. Although the metadata114has been illustrated inFIG. 1as being separate from the video files116, it is not limited thereto and may instead be at least partially embedded within the video files116. The database112may also include user data117that will be described further below. The metadata114can identify the start and end locations of video segments and can identify visual/audible content of the respective video segments. For example, the metadata114may include labels that categorize/characterize the visual/audible content of at least some scenes contained in the video segments. The labels may identify the location of action scenes, comedy scenes, romantic scenes, nature scenes, content ratings (e.g., G-rating, PG-rating, PG-13-rating, R-rating, etc.), violence ratings, language ratings, etc. Moreover, the labels may further indicate a grading of scenes in the indicated category in order to convey, for example, how intense a scene is relative to a defined scale for the category and/or how much of the scene is related to the category (e.g., 30% of the scene has a violence rating of 4 points on a 5 point scale).

FIG. 2is an example data flow diagram of exemplary operations and methods that may be carried out to generate a montage of video segments using components of the system ofFIG. 1. Referring toFIG. 2, the video terminal120may initiate (block200) the generation of a montage of available on-demand videos in response to, for example, a user tuning the terminal120tuning to receive a defined channel (e.g., a Barker channel) and/or responsive to another user selection. The user may identify (block210) the user's viewing preferences by entering, such as by typing or selecting among displayed categories, the user's viewing preferences into the video terminal120. The montage generation circuit118may, for example, communicate a menu of available categories, search terms, and/or other information for display on the video terminal120and which can be selected among by the user to indicate the user's preferences.

As will be explained in further detail below, the montage generation circuit118may determine (block220) further user viewing preferences, such as the user's previous viewing habits and/or predefined viewing preferences which are identified by user data117within the database112. The generation circuit114can then search (block230) through the metadata114to identify video segments within one or more videos that correspond to the identified user viewing preferences, and can identify (block240) the start and end locations of the identified view segments. The generation circuit114can then generate (block250) the montage by communicating the sequence of identified video segments between the identified start and end locations to the video terminal120.

FIG. 3is an example block diagram of the video montage generation circuit118shown inFIG. 1.FIG. 7is a flowchart of example operations and methods that may be carried out to generate montages of video segments. Referring toFIGS. 3 and 7, the generation circuit118can include a user preference module310, a metadata search module300, and a montage assembly module320. The user preference module310is configured to identify (block700ofFIG. 7) at least one video viewing preference associated with the video terminal120, and may carry out this identification in response to user generated search terms, in response to data that defines a user's viewing preferences, and/or in response to data that identifies a user's previous video segment viewing history. The metadata search module300is configured to search (block702ofFIG. 7) metadata associated with video segments in at least one video file to identify video segments that correspond to the identified at least one video viewing preference. The montage assembly module320is configured to generate (block704ofFIG. 7) a montage of the identified video segments for display by the video terminal.

Various further example operations and methods that may be carried out by the video montage generation circuit118will now be described with regard to the flowcharts ofFIGS. 8-13.

The user preference module310may include a user search term module312that receives one or more search terms from a user who is operating the video terminal120, such as by operating a user interface in the video terminal120that enables a user to type, select, or otherwise generate at least one search term that characterizes at least one content category that the user desires to see in video scenes (e.g., action scenes that display explosions, car chases, etc.). The module312may communicate a list of available categories, search terms, or other information for display on the video terminal120and selection by the user to generate one or more search terms. The user search term module312receives (block1100ofFIG. 11) the user generated search term(s) from the video terminal120, and forwards the search term(s) to the metadata search module300.

The metadata search module300searches (block1102ofFIG. 11) among labels in the metadata114(FIG. 1) that characterize the visual content of scenes, and identifies labels that match the one or more search terms. The search module300generates (block1104ofFIG. 11) a list of the video segments that correspond to the identified labels in the metadata.

The montage assembly module320then generates a montage of the identified video segments which are communicated to the video terminal120. The video terminal120may display the received montage on an integrated display device and/or on a separate display device that is communicatively connected to the video terminal120, such as by a wireless local area network or other wireless connection. The montage assembly module320may generate the montage by playing (block1106ofFIG. 11) a sequence of the listed video segments.

More particularly, the search module300may identify (block800ofFIG. 8) start and end locations of each of the identified video segments. The montage assembly module320can then generate the montage by playing (block802ofFIG. 8) a sequence of the identified video segments between the identified start and end locations while not playing at least some intervening video segments that are located outside the identified start and end locations.

Thus, for example, when a user tunes the video terminal120to a Barker channel, the video on-demand server110can prompt the user to enter search terms or otherwise receive user generated search terms, which are used to determine the user's viewing preference(s). The video on-demand server110can then communicate a montage of video segments through the Barker channel that matches those preferences. In this manner, the user can be presented with advertisements for movies that are determined by the server110to closely match the user's interest, and moreover the user can be presented with a selected subset of scenes from those movies that have particular characteristics of scenes that match the search terms identifying the user's viewing preference(s).

FIG. 4is another example block diagram of the video on-demand server110and the database112ofFIG. 1. The database112includes a plurality of video files400(video_1, video_2, . . . video_N) and corresponding sets of metadata410(metadata_1, metadata_2, . . . metadata_N). The metadata410may identify the start and end locations of video segments within each of the movies. The video segments may correspond to scenes that are uninterrupted and/or that have a defined type of visual/audible content. The montage generation circuit118can search (e.g., via the search module300) through the metadata410to identify the starting and ending locations of video segments within the video files400that have labels containing information that correspond to the video viewing preference(s) associated with a user of the video terminal. The montage generation circuit118can then generate a montage420by sequentially playing the identified video segments between the identified start and end locations of the video files400while not playing at least some intervening video segments that are located outside the identified start and end locations. The montage can be communicated as streaming video and/or as encoded data to the video terminal120.

FIG. 5is another example block diagram of the video on-demand server110and the database112ofFIG. 1. In contrast to the block diagram ofFIG. 4, the montage generation circuit118searches through the metadata410that is associated with a single one of the video files400to identify video segments that match the viewing preference(s), and generates a montage520from the identified video segments within the single video file400. Accordingly, the montage may be assembled from video segments that are contained within a single movie, as shown inFIG. 5, or may be assembled from video segments within a plurality of movies, as shown inFIG. 4.

FIG. 6is another example block diagram of the video on-demand server110shown inFIG. 1. The video on-demand server110can include memory device(s)612, a processor circuit600, and a network interface620. The memory device(s)612may include a mass storage device, such as one or more disk drives and/or semiconductor memory, that contain a plurality of video files116and associated metadata114, and may further include the user data117. All or part of the database112may be omitted in some embodiments, such as when the video is received from another network device (e.g., from a separate media server). The processor circuit600may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g., microprocessor and/or digital signal processor) with on-board and/or separate memory devices. The processor600is configured to execute computer program instructions in functional modules610within a memory, which is described below as a computer readable medium and which may reside within the memory device(s)612, to operate as described herein. The network interface620is configured to communicate with the video terminal120through the network130.

FIG. 9shows further operations that may be carried out by the montage assembly module320to play a sequence of the identified video segments between the identified start and end locations while not playing at least some intervening video segments that are located outside the identified start and end locations. Referring toFIG. 9, the montage assembly module320communicates (block900) from the video on-demand server110to the video terminal120, via the network130, the sequence of the identified video segments between identified start and end locations while not communicating at least some intervening video segments that are located outside the identified start and end locations. The montage assembly module320may sequentially set-up (block902) a video on-demand session between the video on-demand server110and the video terminal120for the identified video segments in the sequence, and may tear down (block902) one video on-demand session for one of the identified video segments in the sequence before setting up another video on-demand session for another one of the identified video segments in the sequence.

In some other embodiments, the user preference module310includes a preference settings module314that performs a database lookup to determine a user's viewing preferences.FIG. 12is a flowchart of operations and methods that may be carried out by the preference settings module314. Referring toFIG. 12, user data117within the database112is accessed (block1200). The user data117defines the viewing preferences of a user. A user may define the viewing preferences by selecting, typing, or otherwise entering information, such as via a user interface of the terminal120, that identifies at least one video content category that is preferred by the user. The content category may include, for example, action scenes, comedy scenes, romantic scenes, nature scenes, content ratings (e.g., G-rating, PG-rating, PG-13-rating, R-rating, etc.), violence ratings, language ratings, etc.

The preference settings module314uses the user data117to identify at least one video content category that is preferred by the user, and forwards the identified one or more video content categories to the metadata search module300. The metadata search module300searches (block1202) among the labels in the metadata114(FIG. 1) to identify labels that match the identified one or more video content categories. The search module300generates (block1204) a list of the video segments that correspond to the identified labels in the metadata. The montage assembly module320then sequentially plays (block1206) each of the listed video segments, with the resulting video stream and/or encoded data being communicated to the video terminal120for display. The metadata search module300and the montage assembly module320may further operate as described above with regard toFIGS. 2-11.

Thus, for example, when a user tunes the video terminal120to a Barker channel, the video on-demand server110can look-up the user's preferences, and can communicate a montage of video segments through the Barker channel that matches those preferences. In this manner, the user can be presented with advertisements for movies that are determined by the server110to closely match the user's interest, and moreover the user can be presented with a selected subset of scenes from those movies that have particular characteristic scenes that match the identified viewing preference(s) of the user. The server supplying the example Barker channel may be, but is not limited to, a cable video on-demand server, a terrestrial broadcast video on-demand server, an Internet video on-demand server, and/or a satellite broadcast video on-demand server.

In some other embodiments, the user preference module310includes a tracking module316that tracks a user's video viewing habits.FIG. 13is a flowchart of operations and methods that may be carried out by the tracking module316. Referring toFIG. 13, tracking (block1300) is performed to determine what segments within the video files116a user has viewed, and may further track how often each of the video segments have been viewed to generate data that characterize the user's video viewing habits. The tracking may generate user viewing habit data that identifies what video segments a user has viewed, how often each video segment has been viewed, which video segments were repeatedly viewed before viewing was allowed to proceed to a subsequent video segment, and/or what video segments were not viewed by fast forwarding through the video segments or jumping ahead in the video timeline past the video segments. The tracking module316may further identify characteristics of the identified video segments, such as the visual/audio content of those video segments, that are preferred by the user. The identity of the video segments and/or their identified characteristics may be stored in the database112, such as within the user data117. The tracking module316can subsequently retrieve the identified video segments and identified characteristics (e.g., number of times viewed, number of times skipped, etc) and provide the retrieved information as user viewing habit data to the metadata search module300.

The metadata search module300searches (block1302) through the metadata114to find entries that match the user viewing habit data and, thereby, identify associated video segments that are expected to be preferred by the user. For example, when a user has a habit (determined by the tracking module316) of watching certain types of action scenes, the metadata search module300can search through the metadata114to select video segments that the user has shown a preference for watching. Alternatively, the metadata search module200may select video segments from movies that the user may not have previously viewed but which contain scenes that contain content that matches the user's observed interests.

For example, when a user has a habit (determined by the tracking module316) of watching certain types of action scenes, the metadata search module300can search through the metadata114to select video segments that are indicated to contain those types of action scenes. The metadata search module300can generate the list of the identified video segments, and the montage assembly module320can sequentially play each of the listed video segments for communication to the video terminal120for viewing.

Thus, for example, when a user tunes the video terminal120to a Barker channel, the video on-demand server110can use the user's previous viewing habits to determine the user's viewing preferences, and can communicate a montage of video segments through the Barker channel that match those preferences. In this manner, the user can be presented with advertisements for movies that are determined by the server110to closely match the user's interest, and moreover the user can be presented with a selected subset of scenes from those movies that have particular characteristics that the user has demonstrated a preference for viewing.

FIG. 14is an example block diagram of a system that includes a plurality of wireless and/or wired video terminals120a-c, a radio access network (RAN)1410, and a plurality of media servers110that are configured according to some embodiments of the present invention. The RAN1410and the media servers110may include a terrestrial broadcast video on-demand server1422and/or a satellite broadcast video on-demand server1426that stream television programs or other video media through a terrestrial base station(s) or a satellite(s), respectively, to one or more of the video terminals120a-c. Alternatively or additionally, the media servers110may correspond to a cable video on-demand server1420and/or an Internet video on-demand server1422that stream television programs or other video media through one or more networks130and/or the RAN1410to one or more of the electronic terminals402a-c.

The electronic terminal120acan be configured, for example, as a wireless communication terminal that communicates with at least some of the media servers110through the radio access network (RAN)1410. The RAN1410may contain one or more cellular radio access technology systems that may include, but are not limited to, Global Standard for Mobile (GSM) communication, General Packet Radio Service (GPRS), enhanced data rates for GSM evolution (EDGE), DCS, PDC, PCS, code division multiple access (CDMA), wideband-CDMA, CDMA2000, Universal Mobile Telecommunications System (UMTS), and/or 3GPP LTE (3rdGeneration Partnership Project Long Term Evolution). The RAN1410may alternatively or additional communicate with the terminal120athrough a Wireless Local Area Network (i.e., IEEE 802.11) interface, a Bluetooth interface, and/or other RF interface.

As explained above, although some embodiments have been described in the context of the video terminal120receiving the montage of video segments which has been generated by the video on-demand server110, the video terminal120is not limited thereto. The montage may alternatively or additionally be generated by the video terminal120as a stand-along device. Accordingly, some of the functionality that has been described herein as being carried out by the video on-demand server110may instead be incorporated in and carried out by components of the video terminal120. The video terminal120may therefore be configured to identify at least one video viewing preference associated with a user, to search through metadata associated with video segments in at least one video file to identify video segments that correspond to the identified at least one video viewing preference, and to generate a montage of the identified video segments for display by the video terminal.

FIG. 10is a flowchart of example operations and methods that may be carried out by components of the video terminal120. Generation of the montage by the video terminal120can include retrieving (block1000) the sequence of the identified video segments between the identified start and end locations from a video library (e.g., the database112) located within the video terminal. The retrieved sequence of identified video segments can be displayed (block1002) on a display device that is within the video terminal120or that is communicatively connected through a local area network or other wireless connection to the video terminal120.

FIG. 15is a block diagram of the video terminal120that is configured according to some embodiments of the present invention. The video terminal120can include a computer/processor circuit1510, a display device1520, and communication circuits, such as RF transceiver circuits1530, wired network interface circuits1540(e.g., digital cable and/or digital subscriber line interface circuits), and/or a broadcast tuner circuit1545. The RF transceiver circuits1530may include a cellular transceiver1532and/or a WLAN transceiver1534(i.e., IEEE 802.11). The cellular transceiver1532may operate according to a cellular radio access technology that may include, but is not limited to, GSM, GPRS, EDGE, DCS, PDC, PCS, CDMA, wideband-CDMA, CDMA2000, UMTS, and/or 3GPP LTE.

The RF transceiver circuits1530may be configured to receive a video stream from the media server110via the network(s)130and the RAN1410shown inFIG. 14. The wired network interface circuits1540may be configured to receive the media streams from the media server110through the network(s)130. The tuner circuit1545be configured to be tunable to receive a channel being broadcast from the terrestrial broadcast video on-demand server1422and/or from the satellite broadcast video on-demand server1426. The display device1520may be configured to display one or more video streams, such as by the methods and operations described herein. The computer/processor circuit1510may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g., microprocessor and/or digital signal processor) with on-board and/or separate memory devices. The computer/processor circuit1510is configured to execute computer program instructions from a memory device(s)1530, described below as a computer readable medium, to operate according to one or more embodiments disclosed herein for the video terminal120. When the video terminal120is configured to generate the montage, the memory1530may include all or a portion of the database112described above.

The video terminal120may further include a microphone1552, a user input interface1550(e.g., touch sensitive interface associate with the display device1520, a keypad, a keyboard, buttons, joystick, or other apparatus configured to sense user inputted commands), and a speaker1554that can be configured to output any audio portion associated with one or more videos.

FIG. 16is an example block diagram of the video montage generation circuit118that may reside within the video on-demand server110and/or within the video terminal120. Referring toFIG. 16, the generation circuit118can include a processor circuit1610and memory device(s)1620. The processor circuit1610may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g., microprocessor and/or digital signal processor) with on-board and/or separate memory devices. The processor1610is configured to execute computer program instructions from functional modules, such as the functional modules shown inFIG. 3, residing in the memory device(s)1620, described below as a computer readable medium, to carry out at least some of the operations disclosed herein for the generation circuit118.

The computer program instructions may also be loaded onto a computer and/or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer and/or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.

Accordingly, embodiments of the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor such as a digital signal processor, which may collectively be referred to as “circuitry,” “a module” or variants thereof.

Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, the present specification, including the drawings, shall be construed to constitute a complete written description of various exemplary combinations and subcombinations of embodiments and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.

Many variations and modifications can be made to the embodiments without substantially departing from the principles of the present invention. All such variations and modifications are intended to be included herein within the scope of the present invention.