Abstract:
A method for creating a cooperative movie sequence comprises connecting two or more mobile devices over a network, designating one of said mobile devices as a Master device and the remaining devices as Slave devices, capturing movie sequences in said Master device and at least in one of said Slave devices, and integrating on-the-fly movie streams and/or images transmitted over said network by said one or more Slave devices into the movie sequence being captured by said Master device.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to the handling of streaming video. More particularly, the invention relates to the assembly of streaming video coming from different sources into a single video clip. 
       BACKGROUND OF THE INVENTION 
       [0002]    Acquiring video clips using mobile devices has become common since most mobile devices, such as PDEs and cellular phones possess video recording capabilities. Some mobile devices are also provided with some editing options, which enable the user to perform simple operations on the video clip he has recorded in his device. 
         [0003]    Efficient communication channels and improved processing ability also make it possible for users of mobile devices to act cooperatively, for instance by sharing music or games in real-time, and it would be desirable to allow users to create movie clips by cooperatively acquiring a scene from different locations and assembling different video clips into a single, combined clip. Currently, however, there is no solution in the art that enables the online assembly of video clip from video streaming received from several mobile devices. Therefore, any assembly or editing of video clips is done offline and, of course, no live preview of the resulting assembled clip is therefore available. 
       SUMMARY OF THE INVENTION 
       [0004]    The invention relates to a method for creating a cooperative movie sequence, comprising connecting two or more mobile devices over a network, designating one of said mobile devices as a Master device and the remaining devices as Slave devices, capturing movie sequences in said Master device and at least in one of said Slave devices, and integrating on-the-fly movie streams and/or images transmitted over said network by said one or more Slave devices into the movie sequence being captured by said Master device. While any suitable type of network can be employed, typical embodiments of the invention employ a network selected from WiFi and Bluetooth. 
         [0005]    In one embodiment of the invention the movie stream arriving into the Master device from a Slave device is integrated into the Master stream by ignoring the blocks of the Slave movie and using the I- and P-frame counters of the Master movie, thus converting each frame of the Slave movie into its difference from the last I-frame of the Master movie. 
         [0006]    In another embodiment of the invention the movie stream arriving into the Master device from a Slave device is integrated into the Master stream by waiting for the next start of a block in the Master stream, and replacing it with the Slave stream. 
         [0007]    In still another embodiment of the invention the movie stream arriving into the Master device from a Slave device is integrated into the Master stream by replacing the frames from the Master stream with those in the Slave stream directly, and forcing the first stream of the result to be an I-frame. 
         [0008]    As will be apparent to a skilled person, more than one Slave device can transmit movie data to the Master device, in which case transmitting is rationed such that no single Slave device is allowed to send movies that are too long and occupy the final stream completely. 
         [0009]    In another embodiment of the invention more than one Slave device transmits movie data to the Master device, wherein transmitting is synchronized to avoid avoiding collisions between different Slave data streams by either blocking on the first-come-first-served basis, or by allowing the users, particularly the user of the Master device, to make relevant decisions on which stream is to be given priority. 
         [0010]    The user of the Master device can be notified that additional data has arrived, and options can be provided to allow said user to decide whether or not to merge it. 
         [0011]    The timing of the transmission of the Slave movie can vary. According to one embodiment of the invention the Slave movie is sent to the Master device when the user stops recording. According to another embodiment of the invention the Slave movie is sent to the Master device when a desired length of time has elapsed. An illustrative length of time is, e.g., up to 5 seconds. 
         [0012]    The invention also encompasses an ad hoc network for creating a cooperative movie sequence, comprising two or more mobile devices connected over said network, wherein one of said mobile devices is designated as a Master device and the remaining devices are designated as Slave devices, wherein each of said Master and Slave devices are suitable to capture movie sequences and/or images, and wherein said Slave devices are programmed to transmit movie and/or image data to said Master device, and said Master device is programmed to receive movie and/or image data from said one or more Slave devices and to integrate them on-the-fly into the movie sequence being captured by it. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    In the drawings: 
           [0014]      FIG. 1  schematically illustrates the flow of video data between one Slave device in the network and the Master device; 
           [0015]      FIG. 2  illustrates the merging of a single image into the Master clip; 
           [0016]      FIG. 3  illustrates the merging of movie data originating from a Slave device into the Master clip; 
           [0017]      FIG. 4  illustrates the merging of a stream originating from a Slave device into the Master clip with P-frame re-computation; 
           [0018]      FIG. 5  illustrates the merging of a stream originating from a Slave device into the Master clip with delay; and 
           [0019]      FIG. 6  illustrates the merging of a stream originating from a Slave device into the Master clip with I-frame replacement. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The invention allows multiple users to participate in the creation of a single movie, by recording it from several distinct vantage points and combining the results in real-time, thus removing the need for post-production. By so doing the user experience is enhanced by removing the need for the later editing on a PC, with the result that once the users stop recording, the movie has already been created. 
       1. Process 
       [0021]    The invention will now be described with reference to the various process steps. The first step is to connect two or more devices into a network. This can be done through WIFI, BT or any other known communication pattern, in a manner currently known in the art. 
         [0022]    According to an embodiment of the invention a first device is designated as “Master” and the rest are designated as “Slaves”. The Master device is the one on which the main movie stream is recorded, and the one on which the final resulting movie is created. The Slave devices are the ones that capture and send additional data in the form of images and movies, which are integrated into the final movie. 
       2. Flow 
       [0023]    2.1. Slave Device 
         [0024]    The purpose of a Slave device is to capture images and/or record movies, and send them to the Master device, where these are integrated into the flow of the main movie. The capture/record is done in the usual way, currently known in the art, by using a camera services provided in the Slave device. According to an embodiment of the invention the sending is done by sending a file (in case of a single picture) or several files (in case of a movie) from the Slave device to the Master device. Files with standard names are created in a storage medium associated with the relevant Slave device. A listener thread detects the creation of the files in each Slave device and sends them, via the established connection, to the Master device. 
         [0025]    2.2. Master Device 
         [0026]    The purpose of the Master device is to record the main stream of the movie, to detect the arrival of additional video data from the Slave devices and to integrate them on-the-fly into the final movie stream. 
         [0027]    The capture/record is done in the usual way, in a manner currently known in the art, by using the Camera services provided by the device. 
         [0028]    According to an embodiment of the invention the detecting is performed by checking for the creation of the newly arrived data files. Once these are detected, they are merged into the main movie stream, as further detailed hereinafter. 
         [0029]    The flow is illustrated in  FIG. 1 , from which the various events can be appreciated through the relationship of one Slave device with the Master device. 
       3. Merge 
       [0030]    3.1. Single Image 
         [0031]    When a Slave device sends a single image to the Master device, according to one embodiment of the invention a fade-out/fade-in effect is employed to make the transition look smooth, but of course different merging strategies, known per, can be used. This takes little time, because it is only needed to perform on-the-fly MPEG decoding/encoding of a single stream (main movie). Each “current” frame of the movie is decoded into an image, blended with the Slave image and re-encoded. This process is illustrated in  FIG. 2 . 
         [0032]    3.2. Movie 
         [0033]    When a Slave device sends a movie to the Master device, according to one embodiment of the invention no blending is performed. The Slave movie replaces the Master movie. This is because, with existing processing power, decoding/encoding 2 MPEG streams on-the-fly would be prohibitive. However, as more powerful CPUs develop on-the-fly blending may become practically feasible, and any such blending is of course encompassed by the present invention. 
         [0034]    According to one embodiment of the invention, therefore, the streams are synchronized as detailed hereinafter, and each “current” frame of the Master movie is replaced by the corresponding frame of the Slave movie, as it schematically illustrated in  FIG. 3 . 
         [0035]    3.3. Encoding 
         [0036]    The MPEG stream consists, basically, of blocks, each of which starts with one single I-frame and several P-frames. The I-frame is an image that is stored “as-is” in the stream. The P-frames are the differences between the subsequent frames and the last I-frame. The data in these difference images is limited enough to allow for effective encoding. 
         [0037]    The Slave movie arrives as a whole, which means that its first frame is an I-frame. The Master stream, however is not guaranteed to have an I-frame as its “current” frame at the same time. Thus, it is important to determine the most effective way of introducing the new block into the current stream. This can be done in 3 distinct ways:
       Ignore the blocks of the Slave movie and use the I- and P-frame counters of the Master movie. Each frame of the Slave movie must be converted into its difference from the last I-frame of the Master movie.   Wait for the next start of a block in the Master stream, and replace it with the Slave stream.   Replace the frames from the Master stream with those in the Slave stream directly, and force the current frame of the resulting stream to be an I-frame.       
 
         [0041]    All options are possible and form parts of the present invention, although the first way is, obviously, the least effective, as it requires much computation: decoding and encoding of the two streams, as schematically illustrated in  FIG. 4 . 
         [0042]    The second way is more effective and simple to implement, but it means that the resulting movie may have a time back-jump of several frames (up to half a second), which may be noticeable and unpleasant to an eye. This is schematically shown in  FIG. 5 . 
         [0043]    The third way may, in most cases, be the most desirable. This option is schematically illustrated in  FIG. 6 . 
         [0044]    As will be apparent to the skilled person they invention provides a very simple and user-friendly way of creating movie clips cooperatively, without the need for complex control procedures. The Slave device sends the captured image or the recorded movie, and the Master device merges it into its stream. The Slave device does not need to give or be given an indication of whether the data has been sent, has arrived or has been merged. The Master device gives no control to the user over the stream. It simply replaces the frames with those sent to it. 
         [0045]    Of course, several operational schemes can be implemented. For instance, more than one Slave device can be used. Accordingly, it is desirable that data from more than one Slave device be integrated into the final movie. This requires strict rationing and synchronization of the streams. 
         [0046]    “Rationing” means that no single Slave device is allowed to send movies that are too long and occupy the final stream completely. 
         [0047]    “Synchronization” means avoiding collisions between different Slave data streams by either blocking on the first-come-first-served basis, or by allowing the users, particularly the user of the Master device, to make relevant decisions on which stream is to be given priority. 
         [0048]    According to another embodiment of the invention the user of the Master device is notified that additional data has arrived, and he is allowed to decide whether or not to merge it. This can be accomplished in many ways that will be apparent to the skilled person, e.g. by keeping the two or more streams (whether the additional streams are actual video streams from the Slave or a fade-in/fade-out of a single image) running for a short period of time, displaying them on the screen side-by-side, and letting the user decide which stream to use for the creation of the final movie. 
         [0049]    According to one embodiment of the invention the Slave movie is sent to the Master device when one of the two conditions is fulfilled: either the user stops recording or 5 seconds have elapsed. The reason for keeping the Slave movie streams limited in this embodiment to 5 seconds at most is that the files are sent as complete entities over the connection, and are integrated into the Master stream only upon arrival. According to another embodiment of the invention the data is sent in chunks, thus allowing the Slave streams to be of any length without unduly overloading the network. 
         [0050]    All the above description and explanations have been provided for the purpose of illustration and are not intended to limit the invention in any way, except as defined in the appended claims.