Patent ID: 12250255

In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.

DETAILED DESCRIPTION

FIG.1illustrates a block diagram of a multimedia environment102, according to some embodiments. In a non-limiting example, multimedia environment102is directed to streaming media.

The multimedia environment102may include one or more media systems104, one or more content servers122, and one or more crowdsource servers114, communicatively coupled via a network120. In various embodiments, the network118can include, without limitation, wired and/or wireless intranet, extranet, Internet, cellular, Bluetooth and/or any other short range, long range, local, regional, global communications network, as well as any combination thereof.

Media system104may include a display device106, media device108and remote control110. Display device106may be a monitor, television, computer, smart phone, tablet, and/or projector, to name just a few examples. Media device108may be a streaming media device, DVD device, audio/video playback device, cable box, and/or digital video recording device, to name just a few examples. In some embodiments, the media device108can be a part of, integrated with, operatively coupled to, and/or connected to display device106. The media device108may be configured to communicate with network120.

A user112may interact with media system104via remote control110. Remote control110can be any component, part, apparatus or method for controlling media device108and/or display device106, such as a remote control, a tablet, laptop computer, smartphone, on-screen controls, integrated control buttons, or any combination thereof, to name just a few examples.

Content servers120(also called content sources120) may each include databases to store content124and metadata126. Content124may include any combination of music, videos, movies, TV programs, multimedia, images, still pictures, text, graphics, gaming applications, advertisements, software, and/or any other content or data objects in electronic form. In some embodiments, metadata126comprises data about content124. For example, metadata126may include associated or ancillary information indicating or related to writer, director, producer, composer, artist, actor, summary, chapters, production, history, year, trailers, alternate versions, related content, applications, and/or any other information pertaining or relating to the content124. Metadata126may also or alternatively include links to any such information pertaining or relating to the content124. Metadata126may also or alternatively include one or more indexes of content124(examples of such indexes are further described below with respect toFIGS.3-4).

Crowdsource servers114may each include a boundary processing module116and a database118. In some embodiments, boundary processing module116receives and processes information identifying portions in content124having little or no interest to users. In some crowdsourced embodiments, boundary processing module116receives such information from users112via their media systems104. Boundary processing module116may store such received information, as well as processing and analysis of such received information, in database118.

FIG.2illustrates an example block diagram of the media device108, according to some embodiments. Media device108may include a streaming module202, processing module204, user interface module206and database208.

Now referring toFIGS.1and2, in some embodiments, user112may use remote control110to interact with media device108to select content, such as a movie, TV show, music, book, application, game, etc. Media device108may request the selected content from content server(s)122over the network120. Content server(s)122may transmit the requested content to media device108. Media device108may transmit the received content to display device106for presentation to user112. In streaming embodiments, media device108may transmit the content to display device106in real time or near real time as it receives such content from content server(s)122. In non-streaming embodiments, media device108may buffer or store the content received from content server(s)122in database208for later playback on display device106.

Skipping Content

Too often, streaming media systems and services require users to experience streaming content in a linear manner, requiring them to view portions of content having little or no interest. Consider, for example, content124A shown inFIG.3(content124A may be stored in database208of media device108, as shown in the example ofFIG.3, or streamed from content server(s)122via network120). For non-limiting illustrative purposes, assume content124A is a television show124A. Generally, television show124A has three parts: a teaser302(also sometimes called a cold open), a title sequence and/or opening credits304, and a feature306which is the remainder of the television show124A (sometimes referred to herein as the show proper).

Often when streaming content124A to her display device106, the user112may wish to skip over the title sequence/opening credits304. This may be particularly true after the user112has already viewed the title sequence/opening credits304when watching the first episode of the associated TV series. A conventional solution to skipping over the title sequence/opening credits304is using the fast forward function. But this approach is often bulky and inefficient, as the user112may fast forward past the end of the title sequence/opening credits304, and then must rewind back to the beginning of the feature306. This problem is particularly acute in digital playback systems (such as streaming media players, DVRs, etc.) where the trick mode index may not line up with the end of the title sequence/opening credits304(or, equivalently, the beginning of the feature306).

Also, there is often a blurry line between the end of the title sequence/opening credits304and the beginning of the feature306. Sometimes the feature306may overlap with the title sequence/opening credits304. This may be especially true in streaming applications, for example, where there may not be a commercial or other hard break between the title sequence/opening credits304and the feature306. Thus, trying to use the fast forward function on the remote control110to skip over the title sequence/opening credits304and go directly to the feature306may be a frustrating experience for the user112.

In some embodiments, to address this problem, metadata126A is associated with the content124A. As noted above, the metadata126A may store information pertaining or relating to the content124A, and may include index308. In some embodiments, index308may include pointers310to content124A. In particular, index308may include pointer310A that points to the beginning316of the teaser302, pointer310B that points to the beginning318of the title sequence/opening credits304, and pointer310C that points to the end320of the title sequence/opening credits304. Index308may have other pointers310pointing to other points in content124A.

In some embodiments, content124A and metadata126A may be transferred from content server(s)122to the user112's media device108over network120at the same time (or substantially the same time). In other embodiments, content124A and metadata126A may be transferred from content server(s)122to the user112's media device108at different times. For example, metadata126A may be preloaded and stored in database208of media device108, or may be transferred to media device108from content server(s)122during pauses in the display of content124A on the display device106.

Some embodiments may use the pointers310in the index308to enable a user112to easily and effectively skip over the title sequence/opening credits304. This skip functionality is graphically depicted inFIG.3as skip option324, that when selected by user112skips over a portion326of content124A from the beginning318of the title sequence/opening credits304to the end320of the title sequence/opening credits304.

An example of such operation is depicted inFIG.5, that shows a method502for enabling a user to skip over uninteresting portion(s) of content when streaming such content, according to some embodiments. Method502can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.5, as will be understood by a person of ordinary skill in the art.

For illustrative purposes,FIG.5is described with reference toFIGS.1-3, but the method502is not limited to these example embodiments.

In504, media device108in the user112's media system104may determine the end of the teaser302(or, equivalently, the beginning of the title sequence/opening credits304) in content124A. For example, in504, the processing module204of media device108may access the index308in the metadata126A stored in database208, and retrieve pointer310B that points to the end318of the teaser302.

In506, media device108may determine the end of the title sequence/opening credits304in content124A. For example, in506, the processing module204may access the index308in the metadata126A, and retrieve pointer310C that points to the end320of the title sequence/opening credits304.

In508, media device108may begin streaming the content124A for playback on the display device106. For example, in508, the streaming module202of media device108may begin streaming the content124A to the display device106, either as the content124is received from content servers122over network120, or by retrieving content124from database208. It is noted that operation508may begin prior to operation504, or at any time in parallel with operations504and506.

In510, processing module204and/or streaming module202may determine when the end318of the teaser302has been reached in the stream of the content124A to the display device106. When the end318of the teaser302has been reached, and while continuing to stream the content for playback on the display device106, the user interface module206in the media device108may display a “skip” icon (such as the example skip icon324inFIG.3) on the display device106. For example, the skip icon324may be displayed in a location on display device106outside the window wherein the content124A is being displayed. In some embodiments, the skip icon324may be displayed on the display device106during the entire period when the title sequence/opening credits304are being streamed to and played back on display device106.

In512, if the user112selects the skip icon324(using remote control110, for example), then the streaming module202may use pointer310C in index308to access the end320of the title sequence/opening credits304. Then, the streaming module202may advance the streaming of content124A to display device106to that end320of the title sequence/opening credits304. In this manner, the user112is able to skip playback of the title sequence/opening credits304at any point during its presentation on display device106.

In some embodiments, flowchart502is performed only if the content124A is not the first episode in a series (such as a TV series or a series of movies). In this manner, the title sequence/opening credits304are presented to the user112during playback of the first episode in a series (although the user112can still use conventional fast forward functionality to skip the title sequence/opening credits304). In other embodiments, flowchart502is performed for all episodes in a series.

In some embodiments, the index308may be populated by manually linking the pointers310to particular points in the content124A. For example, the beginning316and end318of the teaser302may be manually located in the content124A. Then, the values of pointers310A and310B in the index308may be manually set to respectively point to these locations in content124A. Similarly, the end320of the title sequence/opening credits304may be manually located in the content124A, and then the value of pointer310C may be set to point to this location.

In other embodiments, the index308may be populated using a crowdsourced approach wherein users112at media systems104collectively identify points of interest in content124, such as but not limited to the beginning316and end318of the teaser302and the end320of the title sequence/opening credits304. An example embodiment of such an approach is shown as flowchart602inFIG.6. Method602can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.6, as will be understood by a person of ordinary skill in the art. For illustrative purposes, method602is described with reference toFIGS.1-3although it is not limited to these example embodiments.

In604, media device108(such as streaming module202and/or user interface module206) may detect a fast forward command issued by the user112while content124A is being streamed to display device106. The media device108may record the point in content124A that was being displayed on display device106when the fast forward command was received. The point may be denoted as position 1, or P1. In some embodiments, operation604is performed only for the first fast forward detected while streaming the content124A to the display device106.

In606, media device108(such as streaming module202and/or processing module204) may determine if P1 occurs within a monitoring window350of content124A. In some embodiments, the monitoring window350is a portion of the content124A where the title sequence/opening credits304normally occurs. For example, the monitoring window350may be set to the first 5-10 minutes of the content124A.

If P1 is outside the monitoring window350, then it is likely the user112's fast forward command is not related to skipping the title sequence/opening credits304. Thus, the flowchart ends at608.

If P1 is within the monitoring window350, then it is possible the user112's fast forward command is for the purpose of skipping the title sequence/opening credits304. Accordingly, the media device108(such as streaming module202and/or user interface module206) may monitor and detect when the user112discontinues the fast forward operation. The media device108may record the point in content124A that was being displayed on display device106when the fast forward command was discontinued. The point may be denoted as position 2, or P2.

In612, the media device108may store P1 and P2 in database208.

In614, periodically or at predefined times, media device108may upload P1 and P2 to crowdsource server(s)114via network120.

In some embodiments, operations604-612may be performed by media device108whenever the content124A is played from the beginning316on the display device106. Additionally or alternatively, operations604-612may be performed by media device108for every fast forward command detected within the monitoring window350. Accordingly, multiple P1/P2 sets may be stored in database208when operation614is performed. In such cases, the media device108in614may upload to the crowdsource server(s)114all of the P1/P2 sets stored in database208at the time operation614is performed.

In some embodiments, operations604-614are performed by any combination of media systems104in the multimedia environment102.

In616, boundary processing module116in crowdsource server114may use the P1/P2 timing information associated with the content124A, received from media systems104as well as stored in database208, to generate a crowdsourced determination of the beginning318and the end320of the title sequence/opening credits304of the content124A. In some embodiments, the boundary processing module116in616may average the P1s to generate a crowdsourced determination of the beginning318of the title sequence/opening credits304, and may average the P2s to generate a crowdsourced determination of the end320of the title sequence/opening credits304, or may process the P1s and P2s using any other system defined statistical or mathematical function or process to generate crowdsourced values of the beginning318and the end320of the title sequence/opening credits304of the content124A. The P1s, P2s and crowdsourced values of the beginning318and the end320of the title sequence/opening credits304of the content124A may be stored in database118.

In618, the crowdsource server114may transmit the crowdsourced values of the beginning318and the end320of the title sequence/opening credits304of the content124A to the content servers122and/or media devices108for storage in the index308of metadata126A.

Embodiments of this disclosure are not limited to skipping the title sequence/opening credits304of content124A. Rather, embodiments are applicable to skipping any portion or portions of any given content of little interest to users112, where the boundaries of such portion(s) may be manually determined, or determined in a crowdsourced manner as shown inFIG.6, and then skipped per user command as shown inFIG.5.

Enhanced Trick Mode To Enable Presentation of Information Related to Content Being Streamed

According to some embodiments, trick mode is an ability in digital media devices to fast forward, rewind, pause, or otherwise manipulate content124(at one or more speeds) during display on a display device106. An example data structure embodiment of trick mode is illustrated inFIG.4, wherein content124B is stored in database208of media device108(or may be streamed from content server(s)122to media device108via network120). Content124B has a plurality of segments414. Some segments414may be the same size and some may be different. Or, the segments414may all be the same size or different sizes.

Metadata126B may be associated with content124B and may store information pertaining or relating to content124B. Metadata126B may be stored in database208. Metadata126B may include a trick mode index402and trick mode images406. Trick mode index402may include a pointer404to each segment414of content124B. Similarly, trick mode images406may include an image408for each segment414of content124B. Thus, for example, pointer404A in trick mode index402and image408A in trick mode images406correspond to segment414A of content124B.

In some embodiments, when media device108requests content124B from content server(s)122, content server(s)122may transmit the requested content124B as well as the associated metadata126B (at the same time or at different times) to media device108. When media device108receives a trick mode request from the user112(such as a request to rewind or fast forward the display of content124B), media device108may access the metadata126B and use the trick mode index402and the trick mode images406to perform the requested trick mode operation on the display device106. In particular, the media device108may display the trick mode images408corresponding to content segments414(as identified by the pointers404) as the content124is fast forwarded on the display device106. For example, during a fast forward operation, the media device108may display trick mode image408E on the display device106when the fast forward operation reaches content segment414E, wherein this trick mode image408E may be identified and accessed using pointer404E.

In some embodiments, the metadata126B may also include associated information410. The associated information410may include information412pertaining or relating to each content segment414. Such information412may identify, indicate and/or relate to writer, director, producer, composer, artist, actor, summary, chapters, production, history, year, trailers, alternate versions, related content, applications, and/or any other information pertaining or relating to the content124. Information412may also or alternatively include links to any such information pertaining or relating to the content124.

FIG.7illustrates a method702for enabling users to select and view information relating to content when streaming and displaying such content using enhanced trick mode functionality, according to some embodiments. Method702can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously, or in a different order than shown inFIG.7, as will be understood by a person of ordinary skill in the art. For illustrative purposes, method702is described with reference toFIGS.1,2,4and8although it is not limited to these example embodiments (FIG.8illustrates an example screen shot801displayed on display device106, according to some embodiments).

In706, content124B may be streamed to display device106in the user112's media system104. For example, content server(s)122in706may stream content124B to media device108. Content server(s)122may also stream metadata126B relating to content124B to media device108(at the same time as the streaming of content124B, or different times). The media device108may transfer the received content124B to display device106for playback to user112. In some embodiments, the content124B may be displayed in a content window802on the display device106.

In708, user interface module206in the media device108may receive a request for a trick mode operation from user112(via, for example, remote control110). The requested trick mode operation may be fast forward, rewind, pause, of any other manipulation of the display of content124B on display device106. Streaming module202(working with processing module204, for example) in708may implement the requested trick mode operation on the display device106using the trick mode index402and trick mode images406in the metadata126B. For example, during a trick mode fast forward operation, the streaming module202may display trick mode images408in the content window802on the display device106when the fast forward operation reaches content segments414corresponding to those trick mode images408, wherein the trick mode images408may be identified and accessed using associated pointers404.

Also in708, while implementing the requested trick mode operation, the streaming module202(working with processing module204, for example) may enable an “associated information” option. For example, the streaming module202may display an “Info” button804at a location on display device106outside the content window802where the content124B is being displayed.

In710, if the user112selects the Info button804or otherwise selects the “associated information” option (using, for example, the remote control110), the streaming module202(working with the processing module204, for example) may retrieve associated information412corresponding to the content segment414currently being displayed (that is, featured) via trick mode on the display device106, and may display such retrieved associated information412in an associated information window806on the display device106. The associated information window806may partially or fully overlap with the content window802, or may not overlap at all (this latter case is shown in the example ofFIG.8).

For example, assume during a trick mode fast forward operation, trick mode image4081corresponding to content segment4141is being displayed in the content window802on the display device106. If, at this time, the user112presses the Info button804, then the streaming module202may use the associated pointer4041to retrieve the associated information4121corresponding to content segment4141, and may display the retrieved associated information4121in the associated information window806.

In some embodiments, in710, the trick mode operation is suspended when the user112selects the Info button804and the retrieved associated information4121is displayed in the associated information window806. This is done to allow the user112to view the information in the associated information window806. The trick mode operation is resumed when the user112selects the Info button804a second time.

In some embodiments, operations708and710may be available only for non-fast forward and non-fast rewind trick mode operations. In other embodiments, operations708and710may be available for all trick mode operations.

Example Computer System

Various embodiments and/or components therein can be implemented, for example, using one or more computer systems, such as computer system900shown inFIG.9. Computer system900can be any computer or computing device capable of performing the functions described herein. For example, one or more computer systems900can be used to implement the devices and operations ofFIGS.1-8.

Computer system900includes one or more processors (also called central processing units, or CPUs), such as a processor904. Processor904is connected to a communication infrastructure or bus906.

One or more processors904can each be a graphics processing unit (GPU). In some embodiments, a GPU is a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU can have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc.

Computer system900also includes user input/output device(s)903, such as monitors, keyboards, pointing devices, etc., that communicate with communication infrastructure906through user input/output interface(s)902.

Computer system900also includes a main or primary memory908, such as random access memory (RAM). Main memory908can include one or more levels of cache. Main memory908has stored therein control logic (i.e., computer software) and/or data.

Computer system900can also include one or more secondary storage devices or memory910. Secondary memory910can include, for example, a hard disk drive912and/or a removable storage device or drive914. Removable storage drive914can be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive914can interact with a removable storage unit918. Removable storage unit918includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit918can be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive914reads from and/or writes to removable storage unit918in a well-known manner.

According to an exemplary embodiment, secondary memory910can include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system900. Such means, instrumentalities or other approaches can include, for example, a removable storage unit922and an interface920. Examples of the removable storage unit922and the interface920can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system900can further include a communication or network interface924. Communication interface924enables computer system900to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number928). For example, communication interface924can allow computer system900to communicate with remote devices928over communications path926, which can be wired and/or wireless, and which can include any combination of LANs, WANs, the Internet, etc. Control logic and/or data can be transmitted to and from computer system900via communication path926.

In some embodiments, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system900, main memory908, secondary memory910, and removable storage units918and922, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system900), causes such data processing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use embodiments of this disclosure using data processing devices, computer systems and/or computer architectures other than that shown inFIG.9. In particular, embodiments can operate with software, hardware, and/or operating system implementations other than those described herein.

CONCLUSION

It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections, is intended to be used to interpret the claims. The Summary and Abstract sections can set forth one or more but not all exemplary embodiments as contemplated by the inventors, and thus, are not intended to limit this disclosure or the appended claims in any way.

While this disclosure describes exemplary embodiments for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other embodiments and modifications thereto are possible, and are within the scope and spirit of this disclosure. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments can perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.

References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment can not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein. Additionally, some embodiments can be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments can be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, can also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.

The breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.