Video programs, such as movies, music videos, television programs, news clips, etc., are increasingly available in digital video form. Generally, digital video information includes frames of video information to be displayed sequentially at a specific rate and audio soundtrack information to be played along with the video information.
When using digital video data, a user in some cases does not want to view the entirety of the video contained in the video data. Rather, a user will at times wish to view the video not from the beginning of the video but from an intermediate point. Additionally, during the viewing of the video, the viewer may wish to find another portion of the video to view.
One way in which a viewer may select a starting point for viewing is by specifying a point in the video from which to start. For example, some video programs to view video data allow a user to decide that viewing should begin fifteen minutes from the beginning of the video program. Additionally, some video program allow for certain prespecified points in the video data which a user can use to specify where viewing should begin. For example, a video contained in video data is broken up into chapters with specific starting points. A user then chooses to begin viewing from a certain chapter starting point.
Additionally, some video programs to view video data store a viewer's previous history viewing the video data. Thus, a viewer can decide to begin to view the program at the point where viewing of the video had previously left off.
However, while these techniques allow a user to jump to a specific point in a video program, at times a user will want to determine a point to begin viewing by scanning the video. Such a scan plays the video at an increased speed for the user, either selecting only some frames of video information for display, or displaying each frame but displaying them more quickly than during regular viewing of the video. Scanning can be performed in a forward direction, in the same sequence as normal viewing, or a backwards (reverse) direction. This allows the user to visually locate a point in the video with certain content, and then to start normal playback of the video at this selected point.
Problems, however, arise with such scanning. If the scanning speed is too high, and the user is navigating a short video program, the user will hit the end too quickly and may be unable to find a relevant point in the video program to stop the scan. If the scanning speed is too low, it becomes cumbersome and time consuming to fast forward or scan through a longer video program.
Some video scanning techniques deal with the problem of low scanning speed by providing accelerated scanning—where a user has indicated they would like a scan by pressing a button (e.g. a “fast forward” or “reverse” button on a remote) the scan speed accelerates over time as long as the button continues to be depressed. However, when using such an accelerated scanning technique, often a user finds it difficult to visually process content near the end of the program (for forward scanning) where scanning is occurring at the fastest rate. Similarly, when reverse scanning is occurring often a user finds it difficult to visually process content near the beginning of the program where scanning is occurring at the fastest rate.
When scanning is occurring through a video program, according to some embodiments of the invention, the scanning speed is determined by the length of the video program. A length-based rate is set which is proportional to the length of the video program. This length-based rate is used as the scan rate. Thus, for a shorter video program, the scanning speed is low. For a longer video program, the scanning speed is high.
In other embodiments, the length-based rate is used in other ways to determine the scanning speed. For example, a modified accelerated scanning technique uses the length-based rate, by setting the scan rate using the length-based rate when the user indicates that scanning is desired and then increasing the scan rate if the user indicates that the scan rate should be increased, or if the user does not stop the scanning.
In some embodiments, a maximum or minimum scan rate is used along with the length-based rate so that the scanning speed is never faster than the maximum scan rate or slower than the minimum scan rate. In some embodiments, both a maximum and a minimum scan rate are used.
In some embodiments, the length of the video program is used to set the scan rate in other ways. For example, the length of the video program may be used to select between three possible starting scan rates. Video programs longer than a certain first length would use a fastest scan rate as the starting scan rate. Video programs shorter than a second length would use a slowest scan rate as the starting scan rate. And video programs shorter than the first length and longer than the second length would use an intermediate scan rate as the starting scan rate.
In some embodiments, the length of the video program is used to select between scanning algorithms. For example, in one embodiment accelerated scanning is used to scan longer video programs, while a constant speed scan is used to scan shorter video programs.
In some embodiments, scanning speed is based on the remaining length of the video program in the direction of scan. Thus, in one example, if only 10% of the video remains to be scanned in the direction of scan (if the last 10% of the video is about to be scanned in the forwards direction, or the first 10% of the video is about to be scanned in the reverse direction), the scanning speed is set to a prespecified scan rate for scanning the end of the video program (in the forwards direction) or the beginning of the video program (in the backwards direction). Alternately, the scan rate may be based on the absolute length of the remaining portion to be scanned. In such embodiments, when only one minute remains to be scanned, a slower scan rate is used.
Only some embodiments of the invention have been described in this summary. Other embodiments, advantages and novel features of the invention may become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
The foregoing summary, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific methods and instrumentalities disclosed. In the drawings:
Exemplary Computing Environment
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Position- and Length-Sensitive Video Timeline Behavior
A digital video program generally includes a sequence of images which are intended to be displayed in at a certain rate, it can be considered as consisting of a timeline of images.
According to various embodiments of the invention, a portion of a video program is displayed at a scan rate on a display. With reference again to
With reference again to
According to some embodiments of the present invention, the scanning speed is based on the total length of the video program. For example, in one embodiment of the invention, the scanning speed is based on the total length of the video program. Various ways exist for the scanning speed to be based on the total length of the video program. For example, the scanning speed may be directly related to the total length of the video program so that the scanning of the entire program takes a fixed period of time, for example, two minutes. In this example, if the video program were an hour long, the scanning speed would be thirty times the viewing speed. Scanning the entire program would thus take two minutes. If the video program were two hours long, the scanning speed would be sixty times the viewing speed, and scanning would still take two minutes. If the video program were five minutes long, the scanning speed would be two-and-a-half times the viewing speed.
In step 410, once the video program length has been determined, the video program is displayed at a scan rate. The scan rate is based on the length of the video program.
According to some embodiments, a certain number of preset scanning speeds to be assigned to a video program based on the length of the video program. For example, four scanning speeds S1, S2, S3, and S4 may be available and three thresholds T1, T2 and T3 established. Video programs shorter than T1 minutes long are scanned at speed S1. Video programs longer than or equal to T1 minutes long but shorter than T2 minutes long are scanned at speed S2. Video programs longer than or equal to T2 minutes long but shorter than T3 minutes long are scanned at speed S3. Lastly, video programs longer than or equal to T3 minutes long are scanned at speed S4.
In addition to these, additional ways exist for the scanning speed to be based on the total length of the video program, and the invention is contemplated as encompassing these additional ways to base scanning speed on the length of the video program without limitation to these specific ways to base the scanning speed on the total length.
One refinement on such embodiments adds a minimum and/or a maximum scanning speed. According to embodiments with this refinement, scanning must occur at a rate equal to or faster than a minimum scanning rate and/or at a rate equal to or slower than a maximum scanning rate. Thus, returning to the above example embodiments where the scanning speed is set so that scanning of the entire program takes a fixed period of time (e.g. two minutes), a minimum scanning rate Rm is set, for example at two times the regular viewing speed. Thus, for a program which is three minutes long, the scanning rate would be calculated at one-and-a-half times regular viewing speed. However, since this is slower than the minimum scanning rate Rm, that minimum scanning rate is used. A maximum scanning rate RM is established according to some embodiments—if a calculated scanning rate based on the length of the video program is more than this maximum scanning rate RM, the maximum scanning rate RM is used for scanning.
Modified Accelerated Scanning
In accelerated scanning, as described above, scanning does not occur at a constant rate. Rather, the scanning speed increases as time goes on as long as the user signals that scanning should continue, for example by continuing to depress a “fast forward” or “reverse” key. Alternately, scanning speed increases as time goes on if the user does not signal that scanning should stop, for example, by pressing a “stop” button.
According to some embodiments of the present invention, modified accelerated scanning is performed. In some embodiments, modified accelerated scanning is performed by setting the initial scanning rate using the length of the program, as described above. Once an initial scanning rate is set as described above, it increases over time until scanning is stopped. Alternately, the scanning rate according to the length of the video program may constitute a limit on the speed which can be attained during accelerated scanning. In such embodiments, the initial scanning rate is increased until the scanning rate calculated according to the length of the video is encountered. In some embodiments, scanning rate increases are also stopped when the user indicates that the scanning rate should remain constant, e.g. by depressing a button or by lifting a finger off a button which has been depressed.
According to one embodiment of the present invention, both the initial scanning rate and a maximum scanning rate are set based on the length of the video. For example, the scanning rate may be set so that initially, scanning is at a rate which would allow the entire video program to be scanned in four minutes, but that the scanning is accelerated until a rate is reached which would allow the entire video program to be scanned in two minutes. As described above, additional maximum and minimum scanning speeds can be applied to this embodiment, so that scanning is never slower than a minimum scanning rate Rm or faster than a maximum scanning rate RM.
Position-Based Scanning
In some embodiments, the scanning rate is based, at least in part, on the length of the video program remaining to be scanned. Thus, with reference again to
In some embodiments, scanning speed is based on the remaining portion of the video program in the direction of scan. Thus, in one example, ten percent or less of the video program remains to be scanned in the direction of scan, one scanning speed is used, but if more than ten percent remains then a second scanning speed is used.
Thus, the scanning rate may be based on the relative length of the remaining portion video program to be scanned. Alternately, the scan rate may be based on the absolute length of the remaining portion to be scanned. For example, in one such embodiments, when only one minute of the video program (at normal viewing speed) remains to be scanned, a first scan rate is used, but when more than one minute of the video program remains to be scanned a second scanning rate is used.
In one embodiment, the scanning rate used when less of the video program remains is slower than the scanning rate when more of the video program remains. This allows the user more reaction time when the beginning or end of the program is being scanned.
Deceleration Interval
In some embodiments using a different scanning rate based on the portion of the video program remaining to be scanned, a deceleration interval is used. In such embodiments, a constant time interval is established as a “deceleration interval” at the beginning of playback for rewind and at the end of playback for fast forward.
In one example, the policy outside of the deceleration interval DI 300 is the use of accelerated scanning. In this example, outside the deceleration interval DI 300, the scanning rate is adjusted upwards exponentially unless the user signals (by a positive or negative action—depressing a button or releasing a button) that the scanning rate should stop changing. If and when a maximum rate is reached, the scanning rate stays at that maximum rate. This combination of accelerated scanning and a maximum scan rate constitutes the policy outside of the deceleration interval DI 300.
In this example, the policy within the deceleration interval DI 300 is that the rate upon entering the deceleration interval DI 300 is attenuated linearly until it reaches the minimum scan rate. The combination of the two policies provides an overall scanning behavior which allows the user to control scanning and yet to receive the benefits of the accelerated scanning, the deceleration interval DI 300, and maximum and minimum scanning rate.
It is noted that the foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present invention. While the invention has been described with reference to various embodiments, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitations. Further, although the invention has been described herein with reference to particular means, materials and embodiments, the invention is not intended to be limited to the particulars disclosed herein; rather, the invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. Those skilled in the art, having the benefit of the teachings of this specification, may effect numerous modifications thereto and changes may be made without departing from the scope and spirit of the invention in its aspects.