Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR FACILITATING NAVIGATION OF STREAMED MEDIA CONTENT
Document Type and Number:
WIPO Patent Application WO/2014/086390
Kind Code:
A1
Abstract:
A method for facilitating navigation by a user of streamed media content is disclosed. The method comprises the steps of establishing a current playback position within the media content (step 230), determining a plurality of navigation points within the media content with reference to the established playback position (step 240), and exposing a user to the determined navigation points (step 250). According to the method, the navigation points are determined according to time intervals between them, and a magnitude of at least some of the time intervals increases with increasing time separation from the established playback position.

Inventors:
HUBER MICHAEL (SE)
ANDERSSON OLA (BR)
JACOBSON STEFAN (SE)
Application Number:
PCT/EP2012/074284
Publication Date:
June 12, 2014
Filing Date:
December 03, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04L29/06; H04N5/445; H04N21/472
Foreign References:
EP1924089A22008-05-21
US20070198111A12007-08-23
Other References:
None
Attorney, Agent or Firm:
BARRETT, Peter Andrew John (Patent Unit UKUnit 4 Midleton Gate,Guildford Business Park, Guildford Surrey GU2 8SB, GB)
Download PDF:
Claims:
Claims

1 . A method for facilitating navigation by a user of streamed media content, comprising:

establishing a current playback position within the media content;

determining a plurality of navigation points within the media content with reference to the established playback position; and

exposing a user to the determined navigation points;

wherein the navigation points are determined according to time intervals between them, and

wherein a magnitude of at least some of the time intervals increases with increasing time separation from the established playback position.

2. A method as claimed in claim 1 , wherein exposing the user to the navigation points comprises at least one of:

enabling navigation of the content via the navigation points;

displaying a representation of the navigation points to the user;

initiating playback of the media content at the navigation points. 3. A method as claimed in claim 1 or 2, wherein the method further comprises: on receipt of a user instruction to change playback position,

establishing a new playback position;

determining a new plurality of navigation points with reference to the new established playback position; and

exposing the user to the new navigation points;

wherein the new navigation points are determined in substantially the same manner as the plurality of navigation points.

4. A method as claimed in claim 3, wherein the user instruction comprises one of a select signal or expiration of a time delay.

5. A method as claimed in any one of the preceding claims, further comprising receiving an initiation signal from a user, and wherein the method steps are conducted on receipt of an initiation signal by a user.

6. A method as claimed in any one of the preceding claims, wherein the streamed media content is delivered in segments, and wherein each navigation point comprises a beginning of a segment. 7. A method as claimed in any one of the preceding claims, wherein determining navigation points comprises:

obtaining an interval sequence; and

applying the interval sequence to the streamed media content with reference to the established playback position.

8. A method as claimed in claim 7, wherein the interval sequence is established by at least one of: a user, a provider of media content and a manufacturer of user equipment. 9. A method as claimed in any one of the preceding claims wherein, below a first threshold value of time separation from the established playback position, a magnitude of time intervals between navigation points is substantially equal.

10. A method as claimed in any one of the preceding claims wherein, above a second threshold value of time separation from the established playback position, a magnitude of time intervals between navigation points is substantially equal.

1 1. A computer program product configured, when run on a computer, to implement a method as claimed in any one of the preceding claims.

12. A computer program product as claimed in claim 1 1 , when dependent on claim 7, wherein, after applying the interval sequence to the streamed media content, the computer program product is configured to request frames of the streamed media content corresponding to navigation points from a server, and, on receipt of the frames from the server, to display at least some of the frames to a user.

13. Apparatus configured to facilitate navigation by a user of streamed media content, the apparatus comprising:

a positioning unit configured to establish a current playback position within the media content; a navigation unit configured to determine a plurality of navigation points within the media content with reference to the established playback position; and

a display unit configured to expose a user to the determined navigation points; wherein the navigation unit is configured to determine the navigation points according to time intervals between them, and

wherein a magnitude of at least some of the time intervals increases with increasing time separation from the established playback position.

14. Apparatus as claimed in claim 13 wherein the navigation unit (604) further comprises:

an interval unit configured to obtain an interval sequence, and

an application unit configured to apply the interval sequence to the streamed media content with reference to the established playback position. 15. Apparatus as claimed in claim 13 or 14, further comprising an instruction unit configured to receive user instructions.

Description:
Method and Apparatus for Facilitating Navigation of Streamed Media Content

Technical Field The present invention relates to a method and an apparatus for facilitating navigation of streamed media content. The invention also relates to a computer program product configured to implement a method for facilitating navigation of streamed media content.

Background

Adaptive bitrate streaming (ABS) is a technique used in streaming multimedia over computer networks which is becoming increasingly popular for the delivery of video services. Current adaptive streaming technologies are almost exclusively based upon HTTP and are designed to operate over large distributed HTTP networks such as the internet. Adaptive HTTP streaming (AHS) supports both video on demand and live video, enabling the delivery of a wide range of video services to users. The default transport bearer for AHS is typically Unicast, although media can also be broadcast to multiple users within a network cell using the broadcast mechanism in the Long Term Evolution (LTE) standard.

Adaptive HTTP streaming uses existing file formats such as the Base Media File Format of the I nternational Organization for Standardization (ISO BMFF) or the MPEG2-TS standard of the Moving Picture Experts Group. Different audio and video codecs are supported such as H.264, MPEG4, Advanced Audio Coding (AAC), mp3 codecs.

A number of different adaptive HTTP streaming solutions exist. These include HTTP Live Streaming (H LS) by Apple ® , SmoothStreaming (ISM) from Microsoft ® , 3G P Dynamic Adaptive Streaming over HTTP (3GP-DASH), MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH), OITV HTTP Adaptive Streaming (OITV-HAS) of the Open I PTV Forum, Dynamic Streaming by Adobe ® and many more. There is a possibility that the MPEG DASH solution will become the dominating standard for adaptive HTTP streaming. Adaptive HTTP streaming techniques rely on the client to select media quality for streaming. The server or content provider uses a "manifest file" to describe all of the different quality representations (media bitrates) that are available to the client for streaming a particular content or media, and how these different quality representations can be accessed from the server. The manifest file is fetched at least once at the beginning of the streaming session and may be updated. I n the case of the H LS technique by Apple ® , the manifest is formatted as a Playlist file in the m3u8 format. In the case of 3GP/ MPEG DASH, the manifest is an XML structure called the Media Presentation Description (MPD).

Most of the adaptive HTTP streaming techniques require a client to continuously fetch media segments from a server. A certain amount of media time (e.g. 10sec of media data) is contained in a typical media segment. The creation of the addresses or URIs for downloading the segments of the different quality representations is described in the manifest file. Figure 1 depicts the basic principle of how segments may be fetched by a user equipment device 10, using an adaptive HTTP streaming technique, from a server node 20. In step 102 the user equipment device 10 requests a manifest file from the server node 20, which manifest file is delivered to the user equipment 10 in step 104. The user equipment 10 processes the manifest file, and in step 106 requests a first segment of media at a particular quality level. Typically, the first segment requested will be of the lowest quality level available. The segment is requested using an HTTP GET message. The requested segment is then downloaded from the server node 20 at step 1 08. The user equipment 10 continuously measures the link bitrate while downloading the media segment from the server node 20. Using the measured information about the link bitrate, the user equipment 10 is able to establish whether or not streaming of a higher quality level media segment can be supported with available network resource and CPU capacity. If a higher quality level can be supported, the user equipment 10 selects a different representation or quality level for the next segment, and sends for example an "HTTP GET Segment#2 from Medium Quality" message to the server node 20, as illustrated in step 1 10. Upon receipt of the request, the server node 20 streams a segment at the medium quality level, in step 1 12. The user eq uipment 1 0 continues to monitor the link bitrate while receiving media segments, and may change to another quality representation at any time. For example, MPEG-DASH has defined a new indexing box, which allows user equipment devices to efficiently switch quality even in the middle of a segment download. From the above it can be seen that, in adaptive HTTP streaming, a video is encoded with multiple discrete bitrates and each bitrate stream is broken into multiple segments or "chunks" (for example 1 -10 second segments). The i th chunk from one bitrate stream is aligned in the video time line to the i th chunk from another bitrate stream so that a user equipment device (or client device), such as a video player, can smoothly switch to a different bitrate at each chunk boundary.

Adaptive HTTP streaming (AHS) is thus based on bitrate decisions made by user equipment devices. The user equipment device measures its own link bitrate and decides on the bitrate it would prefer for downloading content, typically selecting the highest available content bitrate that it predicts the available bandwidth can cater for.

AHS content may be displayed using a range of different platforms and user equipment devices. Devices may include mobile phones, tablets and personal computers as well as televisions and set top boxes (STBs).

While AHS offers many advantages for the delivery of video services, difficulties can be encountered when seeking to use trick-play functionality on the streamed video content. Trick-play refers to the functionality provided by transport buttons such as fast forward (FF), rewind (RW), skip etc. commonly provided in conjunction with video playback equipment and media players. As AHS video content is not continually streamed but fetched in discrete segments, conventional fast forward and rewind functions are not available. Navigation within the content consists of jumping to segment boundaries at discrete positions within the streamed content, much like navigating to different scenes or chapters in a DVD. However, scenes or chapters within a DVD are typically relatively small in number and consequently of significant duration. Fine control within scenes is provided by the FF/RW functionality which is not available for AHS content. In contrast to DVD scenes, AHS media segments are comparatively short, typically lasting of the order of about 2 to 10 seconds. This enables effective management of media quality, but results in a very large number of segments for a typical portion of media. For example, a 2 hour movie streamed in 10 second segments will comprise 720 segments. Navigating the movie via the individual segments, with each press of a FF/RW button moving one segment within the video, is extremely time consuming and requires a large number of button presses/mouse clicks. This situation is illustrated in Figure 2, in which a movie timeline is shown with each media segment highlighted. Navigating one by one through the movie by segments time consuming.

One solution to this problem is to allow a user to navigate via only a limited number of segments, for example allowing navigation via every 10 th segment. This arrangement is illustrated in Figure 3, and provides faster end-to-end navigation of the movie. However, a drawback of this arrangement is that a user has much less control of positioning within the movie, which may be problematic when fine positional control is required.

This difficulty in providing efficient trick-play functionality in AHS is present in all platforms having video display. However, platforms having alternative input methods such as a mouse or touch screen are able to work around the problem, meaning that it is much less apparent to the user. A typical work around for the trick-play problem is illustrated in Figure 4, which shows representations of a computer display screen 30 displaying streamed media content. Figure 4(a) illustrates streaming of media content with display of a content timeline 32 and trick-play knob 34. The trick-play knob 34 indicates the current playback position of the streamed media content on the content timeline 32. Figure 4(b) illustrates trick-play navigation using keyboard arrow keys as FF/RW buttons. Each press of a key causes navigation by one segment of the content, illustrated by jumping of the trick-play knob 34 along the timeline 32. Extensive pressing of the keys in order to navigate through the content can be avoided by use of a mouse 38, as illustrated in Figure 4(c). As shown in Figure 4(c), the mouse 38 can be used to drag the trick-play knob 34 to a desired location on the timeline, thus advancing past multiple segments in a single movement.

This work around solution for devices such as personal computers functions relatively well, although the poor conventional trick-play functionality for these platforms remains a disadvantage. In addition, as noted above, the work around is not available for all platforms. Platforms such as TVs or STBs typically rely exclusively on a remote control device using buttons for control of the displayed media. Alternative input methods such as a mouse or touch screen are generally not available. Poor trick-play functionality in these highly popular video platforms remains therefore s significant disadvantage. Summary

It is an aim of the present invention to provide a method and apparatus which obviate or reduce at least one or more of the disadvantages mentioned above.

According to a first aspect of the present invention, there is provided a method for facilitating navigation by a user of streamed media content, comprising establishing a current playback position within the media content; determining a plurality of navigation points within the media content with reference to the established playback position; and exposing a user to the determined navigation points. According to the first aspect of the invention, the navigation points are determined according to time intervals between them and a magnitude of at least some of the time intervals increases with increasing time separation from the established playback position. Aspects of the present invention thus facilitate navigation of streamed media content by enabling faster navigation though the content when remote form a current playback position while also enabling finer control when close to a current playback position. This variation in navigation speed is provided by variably spaced navigation points. For the purposes of the present specification, a navigation point is a specific position within streamed media content via which a user may navigate the content, for example by jumping to the navigation point. A navigation point may for example be specified as a time separation from the beginning of the content. According to some examples, exposing the user to the navigation points may comprise at least one of: enabling navigation of the content via the navigation points; displaying a representation of the navigation points to the user; and/or initiating playback of the media content at the navigation points. Exposing the user to the navigation points may thus for example comprise storing the navigation points in a memory, as well as storing a current navigation point, enabling a user to move around the media content by stepping through the navigation points. This navigation may for example be combined with displaying a representation of the navigation points to assist a user with orienting themselves within the content and with viewing their current navigation point in relation to the established current playback position. Displaying a representation of the navigation points may comprise displaying a timeline of the media content and representing the navigation points on the timeline. In other examples, displaying a representation of the navigation points may comprise displaying previews of frames of the media content corresponding to the navigation points. Preview frames may be combined with a timeline to provide different levels of context for orientation within the media content. Where a representation of the navigation points is displayed , a current navigation point may be highlighted to differentiate the current navigation point for the user.

Alternatively, or in addition, exposing a user to a navigation point may comprise initiating playback at the navigation point. In some examples, a time delay may be placed on the initiation of playback to allow for very fast user navigation. Thus, in the event of fast user navigation characterised by rapid pressing of a trick-play button several times in succession, playback would not be initiated at each navigation point but only when a user had "paused" on a navigation point, for a predetermined time.

According to some examples, the method of the present invention may further comprise: on receipt of a user instruction to change playback position, establishing a new playback position; determining a new plurality of navigation points with reference to the new established playback position; and exposing the user to the new navigation points. The new navigation points may be determined in substantially the same manner as the plurality of navigation points.

The navigation process may thus be re-launched from a new playback position , triggering recalculation of the navigation points. I n this way, a user may navigate relatively quickly to a new playback position within the content which is relatively remote from the initial established playback position and may be close to the required position in the content. Following this, a new set of navigation points may be calculated based on the new established playback position. As for the original plurality of navigation points, a magnitude of at least some of the time intervals between the navigation points increases with increasing time separation from the established playback position. In this manner, a user may have fine positional control of the media close to the new playback position, and so locate precisely the required position.

The user instruction to change playback position may comprise one of a select signal or expiration of a time delay. A user may for example press a select button to select a particular navigation point as a new playback position. Alternatively, as a user navigates through the navigation points, a timer may be used to register when a user pauses for longer than a threshold time on a particular navigation point and to set that navigation point as a new established playback position. In some examples, a time limit for establishing a new playback position may be measured from a most recent user instruction, such as a key press, or may be measured form a latest initiation of playback.

According to some examples, the method may further comprise receiving an initiation signal from a user, and the method steps may be conducted on receipt of an initiation signal by a user. The initiation signal may for example be a signal generated by a user pressing a trick-play button on a remote control. A trick-play button may include any one of fast forward, rewind, skip forward, skip reverse etc buttons. The pressing of a trick-play button may trigger the establishing of the current playback position and subsequent method steps. Completion of navigation may be indicated by a user signal initiated for example by a button press, or by expiration of a time delay.

According to some examples, the streamed media content may be delivered in segments, and each navigation point may comprise a beginning of a segment. The intervals between navigation points may for example be measured in segments. Alternatively, the intervals may be measured in units of time such as seconds, minutes or hours. The time intervals and or units in which they are measured may be selected to ensure navigation points coincide with segment beginnings. According to some examples, determining navigation points may comprise obtaining an interval sequence and applying the interval sequence to the streamed media content with reference to the established playback position.

For the purposes of the present specification, an interval sequence comprises an ordered list of elements, each element representing a time interval from one navigation point to the next. The elements of the interval sequence may for example be magnitudes of the time intervals themselves or may be time separations from a zero position. The elements of the interval sequence may for example be measured in units of time or in units of segments. Application of the interval sequence to streamed media content with reference to an established playback position may comprise placing the zero position of the sequence at the established playback position and storing the position in the media content of each interval boundary as a navigation point. One example of an interval sequence may be 10, 1 0, 10, 20, 30, 60 etc. measured in seconds. Another example may be -20, -15, -10, -2, -2, -2, -1 , -1 , 0, 1 , 1 , 2, 2, 2, 10, 15, 20 etc. measured in segments. An interval sequence may extend from a zero position in both positive and negative directions, and may be a finite sequence or an infinite sequence.

According to some examples, the interval sequence may be established by at least one of a user, a provider of media content and/or a manufacturer of user equipment.

An interval sequence may thus be specific to particular media content, and may be provided with the content, for example as part of a manifest file. Alternatively, a range of possible interval sequences may be predetermined by a user or manufacturer and stored in the user equipment. Different interval sequences may be appropriate for content of different lengths, as content may range from clips of a few minutes to films which may be several hours in length. Examples of obtaining an interval sequence may thus comprise retrieving a stored interval sequence, selecting an appropriate one of several stored interval sequences and/or receiving an interval sequence with the streamed media.

According to some examples, below a first threshold value of time separation from the established playback position, a magnitude of time intervals between navigation points may be substantially equal. According to further examples, above a second threshold value of time separation from the established playback position, a magnitude of time intervals between navigation points may be substantially equal.

Examples of the present invention may thus enable navigation in substantially even increments very close to or very far from a current playback position. Thus the first few intervals of an interval sequence may be a single segment, and the last few intervals may each be of one hour, while between these extremes, the magnitude of the intervals, and hence the increments in which the user can navigate, increases with separation from the current playback position. The increase in interval magnitude with time may follow any appropriate function such as step, linear, exponential etc. According to another aspect of the present invention, there is provided a computer program product configured , when run on a computer, to implement a method as claimed in any one of the preceding claims. Examples of the computer program product may be incorporated into an apparatus such as a user equipment device which may be configured to display streamed media content. Alternatively, examples of the computer program product may be made available in other ways, for example by download from the internet.

According to some examples, after applying the interval sequence to the streamed media content, the computer program product may be configured to request frames of the streamed media content corresponding to navigation points from a server, and, on receipt of the frames from the server, to display at least some of the frames to a user. The requested frames may serve as preview frames which may be displayed to the user to aid in navigating the content and/or orienting a current playback position or navigation point within the content. Display of preview frames for all navigation points may not be desirable, hence only preview frames for a limited few navigation points, such as a current navigation point and/or immediately adjacent navigation points may be displayed. According to another aspect of the present invention, there is provided apparatus configured to facilitate navigation by a user of streamed media content, the apparatus comprising: a positioning unit configured to establish a current playback position within the media content; a navigation unit configured to determine a plurality of navigation points within the media content with reference to the established playback position; and a display unit configured to expose a user to the determined navigation points. According to the present aspect of the invention, the navigation unit may be configured to determine the navigation points according to time intervals between them, and a magnitude of at least some of the time intervals may increase with increasing time separation from the established playback position.

According to some examples, the navigation unit may further comprise: an interval unit configured to obtain an interval sequence, and an application unit configured to apply the interval sequence to the streamed media content with reference to the established playback position. According to some examples, the apparatus may further comprise a requesting unit configu red to request frames of the streamed media content corresponding to navigation points from a server and a receiving unit configured to receive the requested frames from the server. The display unit may be further configured to display at least some of the frames to a user.

According to some examples, the apparatus may further comprise an instruction unit configured to receive user instructions. User instructions may be conveyed via signals received from a remote control or via the expiration of predetermined time delays. Signals may include for example forward and/or reverse instructions generated by pressing appropriate trick-play buttons and instructing navigation to a forward or reverse adjacent navigation point.

The apparatus may be incorporated within a user equ ipment device such as a television, set top box, personal computer, mobile phone etc.

Brief description of the drawings

For a better understanding of the present invention, and to show more clearly how it may be carried into effect, reference will now be made, by way of example only, to the following drawings in which:

Figure 1 represents a typical messaging sequence relating to adaptive HTTP streaming;

Figure 2 represents video content for streaming, showing multiple segments;

Figure 3 represents the video content of Figure 2, showing a reduced number of segments;

Figures 4a to 4c represent display of streamed media content;

Figure 5 shows a method according to an embodiment of the present invention; Figure 6 represents video content for navigation according to an embodiment of the present invention; Figure 7 represents the video content of Figure 6 at a different stage of navigation according to an embodiment of the present invention; Figure 8 shows an example of an apparatus according to an embodiment of the present invention;

Figures 9a and 9b show a method according to another embodiment of the present invention; and

Figure 10 shows an example of an apparatus according to another embodiment of the present invention.

Detailed Description

Figure 5 illustrates steps in a method 200 for facilitating navigation by a user of streamed media content. The media content may for example be streamed using adaptive bitrate streaming such as adaptive HTTP streaming. Thus the media may be delivered in discrete segments, each segment being fetched by a user equipment device at an appropriate media quality representation, which may for example be an appropriate encoding bitrate. In one example the streamed media may comprise video content and may also comprise other content including audio content.

With reference to Figure 5, a first step 230 of the method comprises establishing a current playback position within the media content. Once the current playback position has been established, a plurality of navigation points within the media content are determined with reference to the established playback position at step 240. The navigation points are specific positions within the streamed media content via which a user may navigate the content. Finally, at step 250, the user is exposed to the determined navigation points. According to the method illustrated in Figure 5, the navigation points are determined according to time intervals between them , and a magnitude of at least some of the time intervals increases with increasing time separation from the established playback position.

Figures 6 and 7 illustrate two examples of a plurality of navigation points 300 determined in accordance with the method of Figure 5 with reference to different playback positions. The navigation points 300 are represented on a timeline of streamed media content. Referring to the example of Figure 6, a current playback position has been established and is illustrated in a central region of the media timeline. A plurality of navigation points 300 have been determined with reference to this playback position and are illustrated on the timeline. A magnitude of time intervals between the navigation points 300 is indicated by the spatial separation between navigation points 300 on the timeline. It can be seen that a magnitude of the time intervals between navigation points close to the playback position is less than a magnitude of time intervals between navigation points remote form the playback position; the magnitude of at least some of the intervals increases with increasing time separation from the established playback position. By exposi ng the user to the determined navigation points, efficient navigation around the media content is facilitated. Fine control close to the playback position is offered thanks to the small time intervals between the navigation points 300 close to the playback position. More remote form the playback position , fast and efficient navigation is enabled, a s navigating to each subsequent navigation point skips larger increments of the streamed media, enabling navigation of a relatively large section of the media an a single step. Figure 7 illustrates a new plurality of navigation points determined with reference to a new playback position towards the right of the media timeline. It can be seen that again, fine control close to the playback position is offered by the closely spaced navigation points, while faster navigation is offered remote form the playback position, thanks to the more widely spaced navigation points. The method of Figure 5 thus facilitates efficient navigation through the streamed media, prioritising fine control close to a playback position, and fast navigation remote form a playback position.

Referring again to Figure 5, the step 230 of establishing the current playback position may enable the establishment of a reference point for the navigation. The navigation points are determined with reference to the playback position, and ensure that the fine control is provided close to the playback position, with the faster navigation offered remote form the playback position.

The step 240 of determining the plurality of navigation points with reference to the established playback position may involve a series of sub steps which are discussed in further detail below with reference to Figures 9a and 9b. Briefly, the step 240 may comprise obtaining an interval sequence for the navigation points and then applying that interval sequence to the streamed media content with reference to the established playback position.

An interval sequence, as discussed above, comprises an ordered list of elements with each element representing a time interval from one navigation point to the next. The elements of the interval sequence may for example be magnitudes of the time intervals themselves or may be time separations from a zero position. The elements of the interval sequence may for example be measured in units of time or in units of media segments. One example of an interval sequence may be 0, 10, 10, 10, 20, 30, 60, 60 etc. measured in seconds. Another example may be -20, -20, -15, -10, -2, -2, -2, -1 , -1 , 0, 1 , 1 , 2, 2, 2, 10, 15, 20, 20 etc. measured in segments. An interval sequence may extend from a zero position in both positive and negative directions, and may be a finite sequence or an infinite sequence. An interval sequence may include several intervals of consistent magnitude both close to and remote from the playback position. Such intervals may provide consistency for a user at certain regions, each navigation step jumping a consistent period of time. Two or more adjacent intervals of the same magnitude may also be provided at any point along the sequence.

Application of the interval sequence to streamed media content with reference to an established playback position may comprise placing the zero position of the sequence at the established playback position and storing the position in the media content of each interval boundary as a navigation point. Taking an example of an established playback position at 26 minutes and 1 0 seconds from the beginning of streamed media, application of the first example interval sequence shown above would result in a first navigation point at 26 minutes and 1 0 seconds plus 10 seconds, hence at 26 minutes and 20 seconds from the beginning of the streamed media.

After determining the plurality of navigation points at step 240, the user is exposed to the determined navigation points at step 250. Exposure to the navigation points may take various different forms enabling the user to navigate through the content via the navigation points. In one embodiment, the navigation points may simply be stored in a memory together with a current navigation point, allowing a user to navigate through the points without providing any representation of the navigation points. In other examples, a representation of the navigation points may be provided to the user to assist in navigation and orientation of the user within the content. The representation of the navigation points may for example take the form of a timeline such as those shown in Figures 6 and 7, with the navigation points marked on the timeline. The current navigation point may be highlighted, together with the established playback position, allowing the user to orient their position within the content. In other examples, he representation may comprise a numerical indication of the position of the navigation points with reference to a beginning or end of the streamed media. In still further exam ples, the representation may com prise preview fra mes of the content corresponding to the navigation points. These may be combined with the timeline to provide additional information to the user. In one example, having determined the navigation points, a user equipment device may request from the server providing the streamed content frames of the content corresponding to each of the navigation points. Previews of these frames may then be displayed to the user in combination with the represented navigation points on a timeline. A preview of the frame corresponding to that navigation point may be displayed above the representation of the navigation point on the timeline. In order to avoid cluttering, only a few of the navigation points may have a preview frame displayed, for example only the current navigation point may have a frame displayed, and this may serve to highlight the current navigation point. In other examples only every nth navigation point may have a corresponding preview frame displayed. According to still further examples, exposing the user to the determined navigation points may comprise initiating playback at the determined navigation points. A delay may be placed on the initiation of playback at a navigation point, in order to avoid overloading a media player displaying the content in the event of fast navigation by a user through several navigation points. Initiation of playback may thus be combined with other forms of representation such as a timeline, allowing a user to visualise navigation points during fast navigation and, when pausing on a particular navigation point, to view the content playing from that navigation point through initiation of playback at that point. Possible combinations of different navigation point representations are discussed in further detail below with reference to Figures 9a and 9b.

The method 200 of Figure 5 may be realised by a computer program which may cause a system, processor or apparatus to execute the steps of the method 200. Figure 8 illustrates functional units of an apparatus 400 which may execute the steps of the method 200, for example according to computer readable instructions received from a computer program. The apparatus 400 may for example comprise a processor, a system node or any other suitable apparatus.

With reference to Figure 8, the apparatus 400 comprises a positioning unit 402, a navigation unit 404 and a display unit 406. It will be understood that the units of the apparatus are functional units, and may be realised in any appropriate combination of hardware and/or software.

According to an embodiment of the invention, the positioning unit 402, navigation unit 404 and display unit 406 may be configured to carry out the steps of the method 200 substantially as described above. The positioning unit 402 may be configured to establish a current playback position. The navigation unit 404 may be configured to determine a plurality of navigation points with reference to the established current playback position, and the display unit 406 may be configured to expose the user to the determined navigation points. The apparatus 400 may be incorporated within a user equipment device such as a television, set top box, personal computer, mobile phone etc.

Figures 9a and 9b illustrate steps in a method 500 for facilitating navigation by a user of streamed media content in accordance with another embodiment of the present invention. The method 500 illustrates one example of how the steps in the method 200 may be further subdivided in order to realise the functionality described above. The method 500 also comprises additional steps which may be incorporated into the method 200 according to different examples of the invention.

The method 500 illustrated in Figures 9a and 9b facilitates navigation by a user of streamed media content. Referring initially to Figure 9a, during streaming of media content and in a first step 510, the method checks whether or not a navigation signal has been received from a user. The method continues to check for receipt of a navigation signal during playback of the streamed media content. A navigation signal may typically take the form of a fast forward (FF) or rewind (RW) instruction sent by the user by pressing an appropriate trick-play button on a remote control . I n other embodiments, pressing of a trick-play button may comprise a digital press, such as selection of a digital trick-play button using a mouse or touch screen. The trick-play button may be a FF or RW button, or may be a skip forward or skip reverse button or any other trick-play button of appropriate functionality. Typically, some indication of direction will be included in the navigation signal, indicating whether the user desires to navigate forward or backward through the media content.

On receipt of a navigation signal from a user, the method proceeds at step 515 to start a timer t and at step 520 to freeze playback of the media content. The precise nature of the playback freeze at step 520 is dependent on the particular media player displaying the streamed media content, but in most cases playback is interrupted while subsequent navigation steps are conducted. In some situations this freeze in playback may be imperceptible to a user, while in other situations the freeze in playback may be apparent to the user, appearing to be a pause in media playback.

After starting the timer t and freezing media playback the method then proceeds, at step 530 to establish the current playback position within the media content. As discussed above, this current playback position, which may be provided by a media player displaying the content, may be stored to serve as a reference point for subsequent navigation. After establishing the current playback position, the method proceeds at step 540a to obtain an interval sequence. As discussed above, an interval sequence is an ordered list of elements representing time intervals between navigation points. An interval sequence may be specific to particular media content, and may be provided with the content, for example as part of a manifest file. In some examples, obtaining an interval sequence may therefore comprise retrieving the interval sequence from the manifest file for the streamed media content. In other examples, a range of possible interval sequences may be predetermined by a user or manufacturer and stored in a user equipment device through which the method is implemented. Different interval sequences may be appropriate for content of different lengths, as content may range from clips of a few minutes to films which may be several hours in length. In some examples, obtaining the interval sequence may therefore comprise retrieving a stored interval sequence or selecting an appropriate one of several stored interval sequences. A hierarchy may be applied to different sources for interval sequences, such that the method checks at step 540a for an interval sequence provided with the manifest file for the media content, and only if no interval sequence is supplied with the content, seeks to retrieve an appropriate interval sequence from a memory. Other hierarchies of sources for interval sequences may be envisaged. Regardless of the source of the interval sequence, a magnitude of at least some of the intervals in the sequence will increase with increasing separation from a zero position. After obtaining the interval sequence at step 540a, the method proceeds at step 540b to apply the interval sequence to the streamed media content with reference to the established playback position. This application allows the method to determine a plurality of navigation points by placing the zero position of the sequence at the established playback position and storing the position in the media content of each interval boundary as a navigation point. As discussed above, the resulting navigation points will be a series of specific instants within the media content at intervals of separation from the current playback position that are determined by the elements of the obtained interval sequence.

Once the navigation points are determined, the method proceeds at step 550a to display a representation of the navigation points to the user. According to the current embodiment, this representation may comprise a timeline of the media content with markers indicating the position of the navigation points. As discussed above, in other embodiments, displaying a representation of the navigation points may further comprise fetching form the server supplying the media content frames of the content corresponding to the navigation points, and displaying previews of at least some of these frames to the user. In still further embodiments, the user may be exposed to the navigation points without displaying a representation of the points to the user, merely by making the points available to the user for navigation.

Referring agai n to Figu re 9a and the presently described embodiment, with the representation of the navigation points displayed to the user, the method proceeds at step 552 to navigate to the next navigation point according to the user navigation signal. This may be the next navigation point in a forward direction of the media content, or in the reverse direction of the media content, depending upon the signal receive from the user. According to the present embodiment, navigating to the next navigation point may comprise storing the next navigation point as a current navigation point in a memory. Navigating to the next navigation point may additionally comprise highlighting the next navigation point on the displayed representation of navigation points, for example using a graphic effect or by displaying a preview frame of the next navigation point.

Referring now to Figure 9b, after navigating to the next navigation point, the method checks, at step 554 whether the timer t started in step 515 has reached a first time threshold t1 . The timer t was started on receipt of the first navigation signal and thus records the time since the navigation signal was received from the user. The threshold time t1 may be a comparatively short time threshold, corresponding for example to a small fraction of a second. The purpose of the time threshold t1 may be to identify rapid navigation by a user. This may ensure that additional processing relating to a current navigation point is not conducted in the event that the user presses a trick-play button several times in quick succession, rapidly moving on to subsequent navigation points and so rendering further processing relating to the current navigation point unnecessary. If the time threshold t1 has not been reached (No at step 554), the method checks at step 556 whether a further navigation signal has been received from a user, i.e. has the user pressed a trick-play button again since the initial press that started the navigation process. If a further navigation signal has been received from the user, the method proceeds at step 558 to navigate to the next navigation point according to the user navigation signal and at step 560 to restart the timer t. The timer t thus continues to indicate the time elapsed since the most recent user navigation signal was received (time since the most recent press of a trick-play button by the user). Having restarted the timer t, the method returns to step 554 to check whether the time threshold t1 has been reached. If at step 556 no further navigation signal has been received form the user, the method returns to step 554 to check whether the time threshold t1 has yet been reached.

If the time threshold t1 has been reached in step 554 this indicates that the user is not, or is no longer, navigating very quickly through the navigation points and the method proceeds at step 562 to initiate playback at the current navigation point. This initiation of playback allows the user to view the content from the current navigation point, helping the user to identify whether the current navigation point corresponds to or is close to the required position in the media content. Once playback has been initiated at step 562, the method checks, at step 564, whether or not a second time threshold t2 has been reached . Time th reshold t2 is longer than time threshold t1 and , as discussed in further detail below, its expiry prompts a reestablishment of the current playback position and subsequent recalculation of navigation points.

If time threshold t2 has not yet been reached (No at step 564) the method checks at step 566 whether a further navigation signal has been received from a user, i.e. has the user pressed a trick-play button again since the previous press which navigated to the current navigation point. If a further navigation signal has been received from the user, the method proceeds at step 568 to navigate to the next navigation point according to the user navigation signal. This navigation may be accompanied by a freeze in the playback initiated at step 562, depending upon the particular media player displaying the media content. The method also proceeds at step 570 to restart the timer t. The timer t thus continues to indicate the time passed since the most recent user navigation signal was received (time since the most recent press of a trick-play button by the user). Having restarted the timer t, the method returns back to step 554 to check whether the first time threshold t1 has been reached. Each receipt of a navigation signal thus sends the method back to checking for fast navigation, followed by initiation of playback at the current navigation point if fast navigation is not detected. If at step 566 no further navigation signal has been received form the user, the method returns to step 564 to check whether the second time threshold t2 has yet been reached. If the time threshold t2 has been reached in step 564, this indicates that the user has paused on the current navigation point while watching the initiated playback. This indicates that the current navigation point is the user's focus of interest, and subsequent navigation through the content should take place with reference to the current navigation point. This may be the case for example when the user has navigated quickly to a distant point of the media content to arrive in roughly the required part of the content. Finer control is now required to identify the precise position in the content that the user is seeking. The method therefore proceeds at step 572 to discard the navigation points determined in step 540b and, at step 574, to set the current navigation point as a new established playback position. The method then proceeds at step 576 to apply the interval sequence obtained in step 540a to the media content with reference to the new established playback position, thus determining a new plurality of navigation points. Once the new navigation points are determined, a representation of the new navigation points is displayed to the user at step 578. The method then proceeds, at step 580 to check whether or not a third time threshold t3 has been reached. The third time threshold is longer than the second time threshold t2, and indicates that the user has located the required position in the media content and thus the current navigation session can be terminated. If the time threshold t3 has not been reached at step 580, the method checks at step 582 whether a further navigation instruction has been received from the user. This may be the case in the above described example when the user wishes to make fine adjustments to the position in the media content, having navigated to roughly the right position.

If a further navigation signal has been received from the user (Yes at step 582), the method proceeds at step 584 to navigate to the next navigation point according to the user navigation signal received (forward or reverse). The next navigation point will be the next newly calculated navigation point, determined with reference to the new established playback position. This navigation may be accompanied by a freeze in the initiated playback of step 562, depending upon the media player displaying the content. Having navigated to the next navigation point, the method proceeds at step 586 to restart the timer t and then returns to step 554 to check for expiration of time t1 and hence for fast navigation by the user.

If a further navigation signal has not been received at step 582, the method returns to step 580 to check for expiry of the third time threshold t3.

If the third time threshold t3 has expired (Yes at step 580), the method determines that the user has located the desired position in the media content and no further navigation is required at present, the method therefore proceeds to discard the new navigation points at step 588 and to allow playback to continue from its last initiation point in step 590. The method then returns to step 510 (Figure 9a) to check for a navigation signal from the user that would restart the navigation process.

An example of operation of the embodiment described above with reference to Figures 9a and 9b is described below form the perspective of a user.

In one example, a user watching streamed media content decides to skip forward in the content to a particular position. The user presses the FF or skip forward key several times in quick succession. The first press initiates navigation in the streamed media content and navigation points with reference to the playback position at which navigation started are calculated and displayed on the screen, for example in the form of a marked timeline. For the first few presses, the button is pressed sufficiently quickly that time threshold t1 does not expire between presses, hence the method navigates from one navigation point to the next without reinitiating playback. After several button presses in quick succession, the user pauses long enough for t1 to expire and playback is initiated at the current navigation point. The user quickly discerns that they have not moved far enough and presses the FF or skip forward button again several times in quick succession. Again playback is not reinitiated until the user pauses on a navigation point long enough for t1 to expire. This time the user has arrived close to the required position in the content, and pauses long enough for t2 also to expire, triggering determination of new navigation points with reference to the current playback position. The user then continues to navigate on the basis of the new navigation points until the user pauses on a particular navigation oint long enough for t1 (initiation of playback), t2 (recalculation of navigation points) and t3 (discarding of navigation points) to expire. At this point navigation ceases and the user continues to watch the streamed media content from the new position.

The time thresholds t1 , t2 and t3 of the above embodiment are described as all running from the last navigation signal received i.e. the last trick-play button press by a user. However, it will be appreciated that variations to these time thresholds may be envisaged. For example fast navigation may be identified by time elapsed since a last key press, but recalculation of navigation points and end of navigation may be triggered by time elapsed since other events. In one example, a recalculation of navigation points may be triggered by time elapsed since initiation of playback. Other examples are possible. In other embodiments, a user signal such as a select signal may trigger recalculation of navigation points or end of navigation. The arrangement illustrated in Figures 9a and 9b and described above in detail is merely one example of how certain functionality of the present invention may be realised.

Methods according to the present invention may be implemented in hardware, or as software modules running on one or more processors. Methods may also be carried out according to the instructions of a computer program, and the present invention also provides a computer readable medium having stored thereon a program for carrying out any of the methods described herein . A computer program embodying the invention may be stored on a computer-readable medium, or it could, for example, be in the form of a signal such as a downloadable data signal provided from an Internet website, or it could be in any other form.

Figure 10 illustrates functional units of an apparatus 600 which may execute the steps of the method 500, for example according to computer readable instructions received from a computer program. The apparatus 600 may for example comprise a processor, a system node or any other suitable apparatus. With reference to Figure 10, the apparatus 600 comprises a positioning unit 602, a navigation unit 604, a display unit 606, an instruction unit 608, a requesting unit 610 and a receiving unit 612. The navigation unit 604 comprises an interval unit 614 and an application unit 616. The apparatus may comprise additional units such as memory, a clock and communication units for communicating with a media player.

It will be understood that the units of the apparatus are functional units, and may be realised in any appropriate combination of hardware and or software.

According to an embodiment of the invention, the positioning unit 602 is configured to establish a current playback position. The navigation unit is configured to determine navigation points and navigate through the points, for example in cooperation with a memory and a clock. The interval unit is configured to obtain an interval sequence and the application unit is configured to apply the interval sequence to media content with reference to the established playback position. The display unit is configured to display representations of navigation points to a user. The instruction unit is configured to receive and process user instructions. The requesting and receiving units are configured to request and receive information such as frames of media content form a server supplying streamed media content. A communication unit may be configured to communicate with a media player, for example to initiate playback at a particular navigation point.

The apparatus 600 may be incorporated within a user equipment device such as a television, set top box, personal computer, mobile phone etc.

It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word "comprising" does not exclude the presence of elements or steps other than those listed in a claim, "a" or "an" does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.