MULTIMEDIA CONTENT NAVIGATION AND PLAYBACK
20200162787 ยท 2020-05-21
Assignee
Inventors
Cpc classification
H04N21/4542
ELECTRICITY
H04N21/84
ELECTRICITY
H04N21/440281
ELECTRICITY
H04N21/4402
ELECTRICITY
H04N21/433
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/4532
ELECTRICITY
H04N21/42646
ELECTRICITY
International classification
H04N21/4402
ELECTRICITY
H04N21/433
ELECTRICITY
H04N21/84
ELECTRICITY
H04N21/45
ELECTRICITY
H04N21/4545
ELECTRICITY
H04N21/432
ELECTRICITY
H04N7/16
ELECTRICITY
H04N21/454
ELECTRICITY
H04N21/426
ELECTRICITY
Abstract
In accordance with the present invention, a filtering process is based on the output side of a multimedia decoder. A navigator monitors the current play position of the multimedia content and compares that position with navigation objects. Each navigation object defines a start position, a stop position, and an filtering action to perform on the portion of the multimedia content that begins at the start position and ends at the stop position. When the current play position falls within the portion of multimedia content defined by a particular navigation object, the navigator activates the filtering action that was assigned to the navigation object. Filtering actions include skipping, muting, reframing, etc., the portion of multimedia content defined by a navigation object. A variety of systems may be used to implement the present invention, such as computer systems (consumer and server), television systems, and audio systems.
Claims
1. A method of suppressing multimedia content comprising: one or more tangible computer executable instructions comprising: obtaining at least one navigation object associated with a particular multimedia content presentation, the navigation object including a start indicator associated with a first position of the multimedia content presentation, at least one associated filtering action and at least one content identifier; determining whether the at least one navigation object is activated, the activation being a function of the at least one content identifier; comparing the start indicator of the navigation object with a position of the multimedia content presentation during presentation of the multimedia content; suppressing the multimedia content in conformance with the filtering action when the first position of the multimedia content matches the start indicator and the navigation object is activated.
2. The method of claim 1 wherein the navigation object further includes an end indicator associated with a second position of the multimedia content presentation.
3. The method of claim 2 wherein the filtering action is a skip, and wherein the suppressing operation comprises skipping the multimedia content between the first position and the second position.
4. The method of claim 3 wherein the skipping action involves directing read back from a physical location of a memory location corresponding with the end indicator.
5. The method of claim 2 wherein the filtering action is a mute, and wherein the suppressing operation comprises muting an audio portion of the multimedia content presentation between the first position and the second position.
6. The method of claim 1 further comprising the operation of receiving a selection to activate the navigation object based on the content identifier.
7. The method of claim 1 further comprising the operation of receiving a selection to deactivate the navigation object based on the content identifier.
8. The method of claim 1 wherein the multimedia content presentation is an MPEG encoded movie.
9. The method of claim 1 wherein the position of the multimedia content presentation during presentation of the multimedia content includes a time code.
10. The method of claim 1 wherein the navigation object is separate from the multimedia content presentation.
11. The method of claim 16 wherein the navigation object and the multimedia content presentation are provided on the same removable memory media.
12. The method of claim 1 wherein the operation of obtaining at least one navigation object comprises obtaining a plurality of navigation objects associated with a particular multimedia content presentation, each navigation object including a start indicator associated with a first position of the multimedia content presentation, at least one associated filtering action and at least one content identifier.
13. The method of claim 12 wherein at least two of the plurality of navigation objects has a common content identifier.
14. The method of claim 13 further comprising the operation of receiving a selection to activate the at least two navigation objects based on the common content identifier.
15. The method of claim 1 wherein the start indicator corresponds with a physical position of a removable memory media including the multimedia content presentation.
16. The method of claim 15 wherein the removable memory media is a DVD.
17. A computer readable media including the one or more tangible computer executable instructions conforming to the method of claim 1.
18. The method of claim 1 further comprising the operation of obtaining the particular multimedia content presentation from at least one of a DVD, a CD, a random access memory, a hard drive, a removable disk storage medium, a tape storage medium, a wired communications link, and a wireless communications link.
19. A method of suppressing multimedia content comprising: one or more tangible computer executable instructions comprising: obtaining at least one navigation object associated with a particular multimedia content presentation, the navigation object including a start indicator associated with a first position of the multimedia content presentation, at least one associated filtering action and a multimedia content presentation identifier; identifying a multimedia content presentation and comparing the multimedia content presentation identifier with the identified multimedia content presentation; comparing the start indicator of the navigation object with a position of the multimedia content presentation during presentation of the multimedia content; and suppressing the multimedia content in conformance with the filtering action when the first position of the multimedia content matches the start indicator.
20. The method of claim 19 wherein the multimedia content identifier is a DVD movie title.
21. The method of claim 20 further comprising: identifying a match between the DVD movie title and the multimedia content presentation; and performing the operations of comparing the start indicator and suppressing based on the match.
22. The method of claim 9 further comprising: determining whether the at least one navigation object is activated; and suppressing the multimedia content in conformance with the filtering action when the first position of the multimedia content matches the start indicator and the navigation object is activated.
23. The method of claim 19 wherein the navigation object further includes an end indicator associated with a second position of the multimedia content presentation.
24. The method of claim 23 wherein the filtering action is a skip, and wherein the suppressing operation comprises skipping the multimedia content between the first position and the second position.
25. The method of claim 24 wherein the filtering action involves directing read back from a physical location of a memory location corresponding with the end indicator.
26. The method of claim 23 wherein the filtering action is a mute, and wherein the suppressing operation comprises muting an audio portion of the multimedia content presentation between the first position and the second position.
27. The method of claim 19 wherein the navigation object includes at least one content identifier and further comprising the operation of receiving a selection to activate the navigation object based on the content identifier.
28. The method of claim 19 wherein the navigation object includes at least one content identifier and further comprising the operation of receiving a selection to deactivate the navigation object based on the content identifier.
29. The method of claim 19 wherein the multimedia content presentation is an MPEG encoded movie.
30. The method of claim 19 wherein the position of the multimedia content presentation during presentation of the multimedia content includes a time code.
31. The method of claim 19 wherein the navigation object is separate from the multimedia content presentation.
32. The method of claim 19 wherein the navigation object and the multimedia content presentation are provided on the same removable memory media.
33. The method of claim 19 wherein the operation of obtaining at least one navigation comprises obtaining a plurality of navigation objects associated with a particular multimedia content presentation, each navigation object including a start indicator associated with a first position of the multimedia content presentation, at least one associated filtering action and at least one content identifier.
34. The method of claim 33 wherein at least two of the plurality of navigation objects has a common content identifier.
35. The method of claim 34 further comprising the operation of receiving a selection to activate the at least two navigation objects based on the common content identifier.
36. The method of claim 19 wherein the start indicator corresponds with a physical position of a removable memory media including the multimedia content presentation.
37. The method of claim 36 wherein the removable memory media is a DVD.
38. The method of claim 19 further comprising the operation of obtaining the particular multimedia content presentation from at least one of a DVD, a CD, a random access memory, a hard drive, a removable disk storage medium, a tape storage medium, a wired communications link, and a wireless communications link.
39. A computer readable media including the one or more tangible computer executable instructions conforming to the method of claim 19.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0027] In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0034] The present invention extends to methods, systems, and computer program products for automatically identifying and filtering portions of multimedia content during the decoding process. The embodiments of the present invention may comprise a special purpose or general purpose computer including various computer hardware, a television system, an audio system, and/or combinations of the foregoing. These embodiments are discussed in greater detail below. However, in all cases, the described embodiments should be viewed a exemplary of the present invention rather than as limiting it's scope.
[0035] Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications link or connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such a connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
[0036]
[0037] Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination of hardwired or wireless links) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0038] With reference to
[0039] The computer 120 may also include a magnetic hard disk drive 127 for reading from and writing to a magnetic hard disk 139, a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to removable optical disk 131 such as a CD-ROM or other optical media. The magnetic hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive-interface 133, and an optical drive interface 134, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules and other data for the computer 120. Although the exemplary environment described herein employs a magnetic hard disk 139, a removable magnetic disk 129 and a removable optical disk 131, other types of computer readable media for storing data can be used, including magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like.
[0040] Program code means comprising one or more program modules may be stored on the hard disk 139, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137, and program data 138. A user may enter commands and information into the computer 120 through keyboard 140, pointing device 142, or other input devices (not shown), such as a microphone, joy stick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 coupled to system bus 123. Alternatively, the input devices may be connected by other interfaces, such as a parallel port, a game port or a universal serial bus (USB). A monitor 147 or another display device is also connected to system bus 123 via an interface, such as video adapter 148. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
[0041] The computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as remote computers 149a and 149b. Remote computers 49a and 49b may each be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically include many or all of the elements described above relative to the computer 120, although only memory storage devices 150a and 150b and their associated application programs 136a and 136b have been illustrated in
[0042] When used in a LAN networking environment, the computer 120 is connected to the local network 151 through a network interface or adapter 153. When used in a WAN networking environment, the computer 120 may include a modem 154, a wireless link, or other means for establishing communications over the wide area network 152, such as the Internet. The modem 154, which may be internal or external, is connected to the system bus 123 via the serial port interface 146. In a networked environment, program modules depicted relative to the computer 120, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing communications over wide area network 152 may be used.
[0043] Turning next to
[0044] The present invention does not require a particular content source 230. Any data source that is capable of providing multimedia content, such as a DVD, a CD, a memory, a hard disk, a removable disk, a tape cartridge, and virtually all other types of magnetic or optical media may operate as content source 230. Those of skill in the art will recognize that the above media includes read-only, read/write, and write-once varieties, whether stored in an analog or digital format. All necessary hardware and software for accessing these media types are also part of content source 230. Content source 230 as described above provides an example of multimedia source means.
[0045] Multimedia source 230 generally provides encoded content. Encoding represents a difference in the formats that are typically used for storing or transmitting multimedia content and the formats used for intermediate processing of the multimedia content. Decoders 250 translate between the storage and intermediate formats. For example, stored MPEG content is both compressed and encrypted. Prior to being played at an output device, the stored MPEG content is decrypted and uncompressed by decoders 250. Decoders 250 may comprise hardware, software, or some combination of hardware and software. Due to the large amount of data involved in playing multimedia content, decoders 250 frequently have some mechanism for transferring data directly to output device 270. Decoders 250 are an exemplary embodiment of decoder means.
[0046] Output device 270 provides an example of output means for playing multimedia content and should be interpreted to include any device that is capable of playing multimedia content so that the content may be perceived. For a computer system, like the one described with reference to
[0047] Output device 270 may comprise combinations of computer, television, and audio systems. For example, home theaters represent a combination audio and television systems. These systems typically include multiple content sources, such as components for videotape, audiotape, DVD, CD, cable and satellite connections, etc. Audio and/or television systems also may be combined with computer systems. Therefore, output device 270 should be construed as including the foregoing audio, television, and computer systems operating either individually, or in some combination. Furthermore, when used in this application, computer system (whether for a consumer or operating as a server), television system, and audio system may identify a system's capabilities rather than its primary or ordinary use. These capabilities are not necessarily exclusive of one another. For example, a television playing music through its speakers is properly considered an audio system because it is capable of operating as an audio system. That the television ordinarily operates as part of a television system does not preclude it from operating as an audio system. As a result, terms like consumer system, server system, television system, and audio system, should be given their broadest possible interpretation to include any system capable of operating in the identified capacity.
[0048] Navigator 210 is software and/or hardware that control the decoders 250 by determining if the content being decoded needs to be filtered. Navigator 210 is one example of multimedia navigation means. It should be emphasized that content source 230, decoders 250, output device 270, and navigator 210 have been drawn separately only to aid in their description. Some embodiments may combine content source 230, decoders 250, and navigator 210 into a single set-top box for use with a television and/or audio system. Similarly, a computer system may combine portions of decoder 250 with output device 270 and portions of decoder 250 with content source 230. Many other embodiments are possible, and therefore, the present invention imposes no requirement that these four components must exist separately from each other. As such, the corresponding multimedia source means, decoder means, output means, and multimedia navigation means also need not exist separately from each other and may be combined together as is appropriate for a given embodiment of the present invention. It is also possible for content source 230, decoders 250, output device 270, and/or navigator 210 to be located remotely from each other and linked together with a communication link.
[0049] As noted previously,
[0050] Similar to
[0051] Navigator 310a monitors decoders 350a by continuously updating the time code of the multimedia content being decoded. (Time codes are an example of positions used in identifying portions of multimedia content. In the case of time codes, positioning is based on an elapsed playing time from the start of the content. For other applications, positions may relate to physical quantities, such as the length of tape moving from one spool to another in a videotape or audiotape. The present invention does not necessarily require any particular type of positioning for identifying portions of multimedia content.) In one embodiment, the time code updates occur every 1/10th of a second, but the present invention does not require any particular update interval. (The description of
[0052] Communication between Navigator 310a and audio and video decoders 350a occurs through a vendor independent interface 352a. The vendor independent interface 352a allows navigator 310a to use the same commands for a number of different content sources. Microsoft's DirectX is a set of application programming interfaces that provides a vendor independent interface for content sources 330a in computer systems running a variety of Microsoft operating systems. Audio and video decoders 350a receive commands through vendor independent interface 352a and issue the proper commands for the specific content source 330a.
[0053] Audio and video decoders 350a provide audio content and video content to output device 370a. Output device 370a includes graphics adapter 374a, video display 372a, audio adaptor 376a, and speakers 378a. Video display 372a may be any device capable of displaying video content, regardless of format, including a computer display device, a television screen, etc.
[0054] Usually, graphics adaptors and audio adaptors provide some decoding technology so that the amount of data moving between content source 330a and output device 370a is minimized. Graphics adaptors and audio adaptors also provide additional processing for translating multimedia content from the intermediate processing format to a format more suitable for display and audio playback. For example, many graphics adaptors offer video acceleration technology to enhance display speeds by offloading processing tasks from other system components. In the case of graphics and audio adaptors, the actual transition between decoders 350a and output device 370a may be a somewhat fuzzy. To the extent graphics adaptor 374a and audio adapter 376a perform decoding, portions of those adaptors may be properly construed as part of decoders 350a.
[0055] Navigator 310a includes navigation software 312a and object store 316a. Bi-directional arrow 314a indicates the flow of data between navigation software 312a and object store 316a. Object store 316a contains a plurality of navigation objects 320a. Within object store 316a, navigation objects may be stored as individual files that are specific to particular multimedia content, they may be stored in one or more common databases, or some other data management system may be used. The present invention does not impose any limitation on how navigation objects are stored in object store 316a.
[0056] Each navigation object 320a defines when (start 321a and stop 323a) an filtering action (325a) should occur for a particular system (329a) and provides a description (327a) of why the navigation object was created. Start and stop positions (321a and 323a) are stored as time codes, in hours:minutes:seconds:frame format; actions may be either skip or mute (325a); the description is a text field (327a); and configuration is an identifier (329a) used to determine if navigation object 320a applies to a particular consumer system 380b. The values indicate that the start position 321a is 00:30:10:15; stop position 323a is 00:30:15:00; the filtering action 325a is skip; the description 327a is scene of bloodshed and the configuration 329a is 2.1. More detail regarding navigation objects, such as navigation object 320a, will be provided with reference to
[0057] As navigator 310a monitors audio and video decoders 350a for the time code of the multimedia content currently being decoded, the time code is compared to the navigation objects in object store 316a. When the position code falls within the start and stop positions defined by a navigation object, navigator 310a activates the filtering action assigned to the navigation object. For navigation object 320a, a time code within the approximately four-second range of 00:30:10:15-00:30:15:00 result in navigator 310a issuing a command to audio and video decoders 350a to skip to the end of the range so that the multimedia content within the range is not decoded and is not given to output device 370a. The process of filtering multimedia content will be described in more detail with reference to
[0058] As in
[0059] Content source 330b, including DVD drive 334b and DVD 332b, have been combined with audio and video decoders 350b, vendor independent interface 352b, and navigation software 312b into a single device. Communication between navigation software 312b and object store 316b occurs over communication link 314b. Communication link 314b is an example of communication means and should be interpreted to include any communication link for exchanging data between computerized systems. The particular communication protocols for implementing communication link 314b will vary from one embodiment to another. In
[0060] Output device 370b includes a television 372b with video input 374b and an audio receiver 377b with an audio input 376b. Audio receiver 377b is connected to speakers 378b. As noted earlier, the sophistication and complexity of output device 370b depends on the implementation of a particular embodiment. As shown, output device 370b is relatively simple, but a variety of components, such as video and audio receivers, amplifiers, additional speakers, etc., may be added without departing from the present invention. Furthermore, it is not necessary that output device 370b include both video and audio components. If multimedia content includes only audio content, the video components are not needed. Likewise, if the multimedia content includes only video data, the audio components of output device 370b may be eliminated.
[0061] Moving next to
[0062] Navigator 310c includes server navigation software 312c and object store 316c, with data being exchanged as bi-directional arrow 314c indicates. Start 321c, stop 323c, action 325c, description 327c, and configuration 329c, show that the contents of navigation object 320c remain unchanged from navigation objects 320b and 320a (
[0063] In contrast to
[0064] Now, suppose content source 330c and audio and video decoders 350c are combined as in a conventional DVD player. Server/remote system 390c may be embodied in a remote control unit that controls the operation of the DVD player over an infrared or other communication channel. Neither client navigator software 354c nor vendor independent interface 352c may be needed for this case because server/remote system 390c is capable of direct communication with the DVD player and the DVD player assumes responsibility for controlling audio and video decoders 350c.
[0065] Several exemplary methods of operation for the present invention will be described with reference to the flowcharts illustrated by
[0066] Beginning with a consumer system, such as the one shown in
[0067] Turning briefly to
[0068] The motivation behind configuration 499 is that different consumer systems may introduce variations in how navigation objects are processed. As those variations are identified, navigation objects may be customized for a particular consumer system without impacting other consumer systems. The configuration identifier may be generated according to any scheme for tracking versions of objects. In
[0069] Returning now to
[0070] Retrieving a content identifier (412), selecting navigation objects (414), retrieving a navigation object (422), and determining whether the configuration identifier matches the consumer system configuration (424) have been enclosed within a dashed line to indicate that they are all examples of acts that may occur within a step for providing an object store having navigation objects.
[0071] With a navigation object identified, the decoders begin decoding the multimedia content (432) received from the DVD. Once decoded, the content is transferred (434) to the output device where in can be played for a consumer. While decoding the multimedia content, the position code is updated continuously (436). The acts of decoding (432), transferring (434), and continuously updating the position code (436) have been enclosed in a dashed line to indicate that they are examples of acts that are included within a step for using a decoder to determine when multimedia content is within a navigation object (430).
[0072] A step for filtering multimedia content (440) includes the acts of comparing the updated position code to the navigation object identified in block 422 to determine if the updated position code lies within the navigation object and the act of activating an filtering action (444) when appropriate. If the updated position code is not within the navigation object, decoding continues at block 432. But if the updated position code is within the navigation object, the filtering action is activated (444). Following activation of the filtering action, the next navigation object is retrieved at block 422.
[0073] Using the navigation object illustrated in
[0074] The updated position code is now P4.sub.2. P4.sub.2 also marks the beginning of the navigation object portion 490 of the multimedia content defined by the start and stop positions (491 and 493) of the navigation object. The video filtering action, skip 495 is activated in block 444.
[0075] Activating the video filtering action sends a command to the decoder to discontinue decoding immediately and resume decoding at stop position 493. The content shown between P4.sub.2 and P4.sub.6 is skipped. Following the skip, the next navigation object is retrieved at block 422 and the acts describe above are repeated.
[0076] Abruptly discontinuing and resuming the decoding may lead to noticeable artifacts that detract from the experience intended by the multimedia content. To diminish the potential for artifacts, filtering actions may be incrementally activated or separate incremental filtering action may be used. For example, a fade out (e.g., normal to blank display) filtering action may precede a skip filtering action and a fade in (e.g., blank to normal display) filtering action may follow a skip filtering action. Alternatively, the fading out and fading in may be included as part of the skip filtering acting itself, with the start and stop positions being adjusted accordingly. The length of fade out and fade in may be set explicitly or use an appropriately determined default value. Incremental filtering actions need not be limited to a specific amount of change, such as normal to blank display, but rather should be interpreted to include any given change, such as normal to one-half intensity, over some interval. Furthermore, incremental filtering actions may be used to adjust virtually any characteristic of multimedia content.
[0077] Where multimedia content includes visual information being presented to a viewer, it is possible that unsuitable material may be localized to only a certain physical area of the scene as it is presented. In these cases one or more navigation objects with reframe filtering actions may be appropriate. The entire scene need not be skipped because the viewing frame may be positioned to avoid showing the unsuitable material and the remaining content may be enlarged to provide a full-size display. By continually adjusting the framing and sizing of multimedia content during a scene, the unsuitable material is effectively cropped from view.
[0078] Each reframe navigation object is capable of performing a number of reframe/resize actions, including the ability to reframe and resize on a frame-by-frame basis. Therefore, the number of reframe navigation objects used in cropping a particular scene depends on a variety of factors, including how the scene changes with time. A single navigation object may be sufficient to filter a relatively static scene, whereas more dynamic scenes will likely require multiple navigation objects. For example, one navigation object may be adequate to reframe a scene showing an essentially static, full-body, view of a person with a severe leg wound to a scene that includes only the person's head and torso. However, for more dynamic scenes, such as a scene where the person with the severe leg wound is involved in a violent struggle or altercation with another person, multiple reframe navigation objects may be required for improved results.
[0079] Positions P4.sub.1, P4.sub.2, P4.sub.3, P4.sub.4, P4.sub.5, P4.sub.6, and P4.sub.7 are separated by the update interval. Those of skill in the art will recognize that a shorter update interval will allow for more precise filtering. For example, if start 491 were shortly after position P4.sub.2, multimedia decoding and output would continue until position P4.sub.3, showing nearly of the multimedia content that was to be filtered. With an update interval occurring ten times each second, only a minimal amount of multimedia content that should be filtered (e.g., less than 1/10th of a second) will be displayed at the output device. As has been implied by the description of configuration identifier 499, it is reasonable to expect some variability in consumer systems and the invention should not be interpreted as requiring exact precision in filtering multimedia content. Variations on the order of a few seconds may be tolerated and accounted for by expanding the portion of content defined by a navigation object, although the variations will reduce the quality of filtering as perceived by a consumer because scenes may be terminated prior to being completely displayed.
[0080] The differences enclosed in parentheses for server operation are relatively minor and those of skill in the art will recognize that a consumer and server may cooperate, each performing a portion of the processing that is needed.
[0081] At block 412, the server receives the DVD title identifier so that the proper navigation objects can be selected in block 414. The server receives a fee from the consumer system, in block 416, for allowing the consumer system access to the navigation objects. The fee may be a subscription for a particular time period, a specific number of accesses, etc. The first navigation object for the DVD title identified at 412 is retrieved in block 422 and checked for a configuration match in block 424. Because the configuration match is checked at the server, the consumer system supplies its configuration information or identifier. As described above, receiving a content identifier (412), selecting navigation objects (414), receiving a fee (416), retrieving a navigation object (422), and determining whether the configuration identifier matches the consumer system configuration (424) have been enclosed within a dashed line to indicate that they are all examples of acts that may occur within a step for the server system providing an object store having navigation objects.
[0082] Decoding the multimedia content (432) may occur at either the consumer system or the server system. However, sending decoded multimedia from a server system to a consumer system requires substantial communication bandwidth. At block 434, the multimedia content is transferred to the output device. The server system then queries (436) the client system decoder to update the position code. Alternatively, if the decoding occurred at the server system, the position code may be updated (436) without making a request to the consumer system. The acts of decoding (432), transferring (434), and continuously updating or querying for the position code (436) have been enclosed in a dashed line to indicate that they are examples of acts that are included within a step for the server system using a decoder to determine when multimedia content is within a navigation object (430).
[0083] The server system performing a step for filtering multimedia content (440) includes the acts of (i) comparing the updated position code to the navigation object identified in block 422 to determine if the updated position code lies within the navigation object, and (ii) activating or sending an filtering action (444) at the proper time. Decoding continues at block 432 for updated position codes that are not within the navigation object. Otherwise, the filtering action is activated or sent (444) for updated position codes within the navigation object. Activating occurs when the decoder is located at the consumer system, but if the decoder is located at the consumer system, the filtering action must be sent to the consumer system for processing. The next navigation object is retrieved at block 422 following activation of the filtering action, and processing continues as described above. The analysis of
[0084]
[0085] Decision block 542 determines if an updated or queried position code (536) is within the navigation object identified in blocks 522 and 524. If so, decision block 552 determines whether or not an filtering action is active. For portions of multimedia content within a navigation object where the filtering action is active or has been sent (in the case of server systems), decoding can continue at block 532. If the filtering action is not active or has not been sent, block 544 activates or sends the filtering action and then continues decoding at block 532.
[0086] If decision block 542 determines that the updated or queried position code (536) is not within the navigation object, decision block 556 determines whether or not an filtering action is active or has been sent. If no filtering action is active or has been sent, decoding continues at block 532. However, if an filtering action has been activated or sent and the updated position code is no longer within the navigation object, block 546 activates or sends and end action and continues by identifying the next navigation object in blocks 522 and 524.
[0087] In general, some filtering may be accomplished with one action, like the video action of
[0088] After the multimedia content is decoded at block 532 and transferred to the output device at block 534, the position code is updated at block 536. P5.sub.1 corresponds to the updated position code. Because P5.sub.1 is not within (542) the start position 591 and stop position 593 and no filtering action is active or sent (556), more multimedia content is decoded (532), transferred to the output device (534), and the position code is updated again (536).
[0089] The updated position code is now P5.sub.2. P5.sub.2 also marks the beginning of the navigation object portion 590 of the multimedia content defined by the start and stop positions (591 and 593) of the navigation object, as determined in decision block 542. Because not action is active or sent, decision block 552 continues by activating or sending (544) the filtering action assigned to the navigation object to mute audio content, and once again, content is decoded (532), transferred to the output device (534), and the position code is updated or queried (536).
[0090] Muting, in its most simple form, involves setting the volume level of the audio content to be inaudible. Therefore, a mute command may be sent to the output device without using the decoders. Alternatively, a mute command sent to the decoder may eliminate or suppress the audio content. Those of skill in the art will recognize that audio content may include one or more channels and that muting may apply to one or more of those channels.
[0091] Now, the updated or queried position code (536) is P5.sub.3. Decision block 542 determines that the updated or queried position code (536) is within the navigation object, but an filtering action is active or has been sent (552), so block 532 decodes content, block 524 transfers content to the output device, and block 536 updates or queries the position code. The audio content continues to be decoded and the muting action continues to be activated.
[0092] At this point, the updated or queried position code (536) is P5.sub.4. Now decision block 542 determines that the updated or queried position code (536) is no longer within the navigation object, but decision block 556 indicates that the muting action is active or has been sent. Block 546 activates or sends and end action to end the muting of the audio content and the decoding continues at block 532. For DVD content, the result would be that the video content is played at the output device, but the portion of the audio content containing an obscenity, as defined by the navigation object, is filtered out and not played at the output device.
[0093] Abruptly altering multimedia content may lead to noticeable artifacts that detract from the experience intended by the multimedia content. To diminish the potential for artifacts, filtering actions may be incrementally activated or separate incremental filtering action may be used. For example, a fade out (e.g., normal to no volume) filtering action may precede a mute filtering action and a fade in (e.g., no volume to normal) filtering action may follow a mute filtering action. Alternatively, the fading out and fading in may be included as part of the mute filtering acting itself, with the start and stop positions being adjusted accordingly. The length of fade out and fade in may be set explicitly or use an appropriately determined default value. Incremental filtering actions are not limited to any particular amount of change, such as normal to no volume, but rather should be interpreted to include any change, such as normal to one-half volume, over some interval. Furthermore, incremental filtering actions may adjust virtually any characteristic of multimedia content.
[0094] Like the method shown in
[0095]
[0096] Navigation objects may be disabled by including an indication within the navigation objects that they should not be part of the filtering process. The act of retrieving navigation objects, as shown in blocks 422 and 522 of
[0097] The acts of receiving a password (610), displaying or sending a representation of the navigation objects (620), receiving a response identifying navigation objects to disable (630), and disabling navigation objects (640), have been enclosed in a dashed line to indicate that they are examples of acts that are included within a step for deactivating navigation objects (660). As with the exemplary methods previously described, deactivating navigation objects may be practiced in either a consumer system or a server system.
[0098]
[0099] In the step for charging (730) for access to the navigation objects, block 732 identifies the act of determining if a user has an established account. For example, if a user is a current subscriber then no charge occurs. Alternatively, the charge could be taken from a prepaid account without prompting the user (not shown). If no established account exists, the user is prompted for the fee, such as entering a credit card number or some other form of electronic currency, at block 734 and the fee is received at block 736. A step for providing navigation objects (740) follows that includes the act of retrieving the navigation objects (742) and sending the navigation objects to the consumer system (744). The act of downloading free navigation software that makes use of the navigation objects also may be included an inducement for the fee-based service of accessing navigation objects.
[0100] The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.