The present invention relates to a system for preparing a multimedia stream.
Use of digital devices such as personal computers, personal digital assistants (PDAs), mobile telephones, digital cameras etc. has increased. These digital devices can capture digital data (e.g. audio data, video data, textual data etc.) and therefore the amount of digital data has also increased.
Digital data is diverse (e.g. digital data can be created according to several different formats) and to a user, the task of traversing the digital data can be very difficult and time-consuming.
Therefore there is a need to harness, organise and prepare this digital data so that a user can benefit from the data. U.S. Patent Application 2003/0154480 A1 details a mechanism to address this problem. The mechanism is a digital history service that has a first data store comprising multimedia files (including text, audio, video, etc.) and a second data store comprising schedule data (e.g. calendar data). The digital history service then correlates selected multimedia files from the first data store with selected schedule data from the second data store. Information indicative of the selected multimedia files is presented to the user. However, the mechanism does not add any value to the multimedia files that are retrieved. Thus, there is a need for an improved mechanism for multimedia preparation.
According to a first aspect, the present invention provides a system for preparing a first multimedia stream, for use with an environment comprising a repository for storing a plurality of tracks, wherein each track is associated with at least one second multimedia stream, the system comprising: means for receiving a request comprising an associated parameter; means for determining at least two of the plurality of tracks associated with the parameter; means, responsive to the determining means, for collating the determined at least two tracks in order to generate the first multimedia stream.
Preferably, a first set of the plurality of tracks comprise associated information (e.g. position information, time information etc.). In one embodiment, the determining means further comprises means for searching the repository for tracks in the first set comprising associated information that matches the parameter. In another embodiment, the determining means further comprises means for searching the repository for tracks in the first set comprising associated information that is similar to the parameter. In yet another embodiment, the determining means further comprises: means for assigning information to a first set of the plurality of tracks (for example, by analysing information of neighbouring tracks).
In a preferred embodiment, the system further comprises means, responsive to the means for receiving, for analysing the request in order to determine the parameter (e.g. by parsing the request, by searching for headers in the request etc.). In one embodiment, the means for collating comprises means for overlaying the determined at least two tracks. In another embodiment, the means for collating comprises means for concatenating the determined at least two tracks. In yet another embodiment, the means for collating comprises means for interleaving the determined at least two tracks.
Preferably, the system further comprises means for presenting the determined at least two tracks, means for receiving an input comprising a selected at least two tracks of the presented at least two tracks, and means for passing the input to the means for collating.
According to a second aspect, the present invention provides a method of preparing a first multimedia stream, for use with an environment comprising a repository for storing a plurality of tracks, wherein each track is associated with at least one second multimedia stream, the method comprising the steps of: receiving a request comprising an associated parameter; determining at least two of the plurality of tracks associated with the parameter; and in response to the determining step, collating the determined at least two tracks in order to generate the first multimedia stream.
According to a third aspect, the present invention provides a computer program comprising program code means adapted to perform all the steps of the above method when said program is run on a computer.
The present invention will now be described, by way of example only, with reference to preferred embodiments thereof, as illustrated in the following drawings:
A system (100) in which the present invention may be implemented is shown in
A track is associated with a single type of data (e.g. audio, video, position, time etc.). A track comprises one or more portions of data. Each portion of a track may vary in size, for example, in a video track, a portion may comprise a single frame of video, a sequence of frames of video, the entire video track stored as a logical chunk of data etc. A multimedia stream comprises one or more tracks.
One embodiment of a process of the present invention will now be described. Firstly, a user at the client system (105) makes a request. The request comprises an associated one or more parameters. In this example, the request comprises parameters representing a position (i.e. xxx, xxx—a position of the Taj Mahal) and a time value (i.e. 1998).
The request is sent to the server system (115), wherein the analysis component (120) receives the request and analyses it in order to determine the one or more parameters in the request. In one embodiment, the analysis component (120) parses the entire request in order to determine the one or more parameters in the request. In another embodiment, the analysis component (120) searches for headers in the request, wherein each header denotes the start of an parameter. In this example, the analysis component (120) determines two parameters in the request, namely a position of the Taj Mahal and a date, namely, 1998.
In one embodiment, a track is indexed by using bounding volumes (e.g. spheres, cylinders, boxes etc.). Where only two dimensional information is available (e.g. x, y co-ordinates), the information in the third dimension (e.g. z co-ordinate) is left unconstrained , so that a two dimensional circle maps to a three dimensional cylinder with infinite height. In this example, a bounding sphere is used for position portions and is shown in
The process of constructing bounding volumes is typically executed at the indexing stage and may be applied in an iterative or recursive manner, such that for a multimedia stream with position portions, it is possible to derive a single outermost boundary volume that comprises the entire route (approximately) of the multimedia stream.
In this embodiment, the analysis component (120) passes the request to the search component (125). Using the position portions as an example, when the position parameter representing a position of the Taj Mahal is received, the multimedia stream (200) is rejected because the top level bounding sphere (i.e. S3) has an associated position that is not near to the Taj Mahal. This is an efficient method of searching, because the lower level spheres (i.e. S1 and S2) did not have to be searched in order to reject the multimedia stream. In another example, when a request comprising a position of central London is received, the bounding sphere S3 is found. Next, the lower level bounding sphere S1 and S2 are also searched and relative associated portions are found.
In another embodiment, the analysis component (120) passes the two parameters in the request to the search component (125) and in this embodiment, the search component (125) uses the two parameters in the request in order to search the multimedia streams (200, 228) in the repository (140). More particularly, the search component (125) searches for video and audio portions in the multimedia streams having associated information (i.e. position and time portions) that match the parameters in the request.
In this embodiment, in the first multimedia stream (200), portion 202 and portion 208 have associated position portions (214, 216) and time portions (220, 222) that match the parameters in the request. In this example, in the second multimedia stream (228), portion 232 and portion 240 have associated position portions (242, 244) and time portions (246, 248) that match the parameters in the request.
In this example, the search component (125) has executed an exact search, wherein a found video or audio portion is associated with position and time portions that match the parameters in the request.
In another example, the search component (125) executes a partial search, wherein a found video or audio portion has some associated position and/or time portions that match the parameters in the request (e.g. a video portion is associated with a position portion representing a position of xxx, xxx, but has an associated time portion representing the year 2000 rather than 1998).
In yet another example, the search component (125) executes a similarity search, wherein a found video or audio portion is associated with position and/or time portions that are similar to the parameters in the request according to a pre-determined similarity factor. In a first example, a video portion is associated with a position portion representing a position of yyy, yyy that is near to the Taj Mahal with a similarity factor of within 20 miles).
In another example, the search component (125) executes a prediction process. For example, if a video portion has no associated position or time portions, an analysis of the position and time portions of neighbouring video portions is executed. In this example, the neighbouring video portions have associated position portions representing a position zzz, zzz. Next a prediction of the position portion associated with the video portion is made (for example, by reference to a rules database). In this example, the prediction of the associated position portion of that video portion is zzz, zzz.
It should be understood that the search component (125) can search all of the multimedia streams in the repository or can search according to a pre-determined factor (e.g. a time value, number of multimedia streams etc.).
In one embodiment, the multimedia streams in the repository are indexed in order to facilitate the search component (125). In one example, the multimedia streams are indexed by one type information (e.g. the multimedia streams are indexed by position or the multimedia streams are indexed by a time value etc.). In another example, the multimedia streams are indexed by two or more types of information. For example, as shown in
Referring to the embodiment of the process of the present invention, next, the search component (125) then passes information comprising the multimedia streams and the portions of the first track found to the collation component (130). In this example, the information comprises: Multimedia stream 200, portions 202 and 208; Multimedia stream 228, portions 232 and 240.
Next, the collation component (130) extracts portions 202 and 208 from multimedia stream 200 and portions 232 and 240 from multimedia stream 228. Once the portions have been extracted, the collation component (130) collates the extracted portions and generates a new multimedia stream (500) comprising the extracted portions, as shown in
In one example, the collation component (130) comprises an overlay component, to overlay the extracted portions of one multimedia stream with the extracted portions of another multimedia stream. In another example, the collation component (130) comprises a concatenation component, in order to concatenate the extracted portions of at least two multimedia streams. In yet another example, the collation component (130) comprises an interleave component, in order to interleave extracted portions of one multimedia stream with the extracted portions of another multimedia stream.
In this example, the collation component (130) comprises an overlay component which overlays the extracted portions of the video track with the extracted portions of the audio track, so that a user will see two portions of video and hear two portions of audio simultaneously.
It should be understood, that although in the example, portions of first tracks in each multimedia stream (200, 228) have been collated, each entire first track (i.e. all portions of each first track) can also be collated.
The new multimedia stream (500) is then sent by the send component (135) to the client system (105). Next, the client system (105) plays back the multimedia stream (500) via the playback component (110), which plays back two portions of video of the Taj Mahal taken in 1998 and two portions of audio (e.g. crowd sounds, traffic noise etc.) that was recorded in 1998 at the Taj Mahal. It should be understood that it is not the individual portions (or individual entire tracks) of audio and video that are sent back but a new multimedia stream of extracted portions of first tracks (or extracted entire first tracks). The present invention therefore provides a means for adding value to existing tracks of multimedia streams by generating new multimedia streams.
It should be understood that although in this example, all of the found portions of first tracks are collated, in another example, the portions of the first tracks and/or entire first tracks found can be presented to the user as a list of options. The user then selects portions and/or tracks from the list of options. The system comprises means for receiving an input comprising the selected options and means for passing the input to the collation component (130) for collation. Optionally, the list of options can be ordered (e.g. according to size, accuracy of matching portions and/or tracks found etc).
The present invention is preferably embodied as a computer program product for use with a computer system. Such an implementation may comprise a series of computer readable instructions either fixed on a tangible medium, such as a computer readable media, e.g., diskette, CD-ROM, ROM, or hard disk, or transmittable to a computer system, via a modem or other interface device, over either a tangible medium, including but not limited to optical or analog communications lines, or intangibly using wireless techniques, including but not limited to microwave, infrared or other transmission techniques.
The series of computer readable instructions embodies all or part of the functionality previously described herein.
Those skilled in the art will appreciate that such computer readable instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any memory technology, present or future, including but not limited to, semiconductor, magnetic, or optical, or transmitted using any communications technology, present or future, including but not limited to optical, infrared, or microwave. It is contemplated that such a computer program product may be distributed as a removable media with accompanying printed or electronic documentation, e.g., shrink wrapped software, pre-loaded with a computer system, e.g., on a system ROM or fixed disk, or distributed from a server or electronic bulletin board over a network, e.g., the Internet or World Wide Web.
Number | Date | Country | Kind |
---|---|---|---|
0329784.3 | Dec 2003 | GB | national |
Number | Date | Country | |
---|---|---|---|
Parent | 12323641 | Nov 2008 | US |
Child | 13025538 | US |