Patent Publication Number: US-11659135-B2

Title: Slow or fast motion video using depth information

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is related to and claims priority from US Provisional Patent Application No. 62/928,014 filed Oct. 30, 2019, which is incorporated herein by reference in its entirety. 
    
    
     FIELD 
     Embodiments disclosed herein relate in general to video generation and processing. 
     BACKGROUND 
     In known art, a recorded video stream is played with a sequentially constant frame rate (FR), with the option for the user to change the frame rate for all or some sequences of frames and to make these sequences appear in slow motion or time lapse. The slow motion or time lapse video streams are generated by a sequence of input frames that are played with a modified FR with respect to the FR used to capture the scene. 
     In highly professional setups such as the movie industry, there is an additional method, where the FR is controlled and modified only for some specific spatial information of the input frames. This is done mainly to highlight specific persons, objects or scenes, by playing the areas to be highlighted with a different frame rate than the rest of the frame. 
     For visual effects and improved user experience, it would be beneficial to have a system and method that generates the playing of areas to be highlighted with a different frame rate than the rest of the frame in an automated manner and under existing processing power constraints in devices such as smartphones or tablets. 
     SUMMARY 
     In various embodiments there are provided systems, comprising a digital camera, an interface operable to mark a first entity in a frame of an input video stream and to determine a frame rate ratio FR1/FR2 between a first frame rate FR1 and a second frame rate FR2, and a processor configurable to generate an output video stream of the digital camera, wherein the output video stream includes a first entity played at FR1 and at least one second entity played at FR2. 
     In an exemplary embodiment, the first entity is an object of interest (OOI) or region of interest (ROI) and the at least one second entity is selected from the group consisting of another object, an image foreground, an image background and a combination thereof. 
     In an exemplary embodiment, the output video stream includes at least one added entity played at a frame rate that is different from the first FR and the second FR. 
     In an exemplary embodiment, the given input stream includes at least one given entity played at a frame rate that is different from the first FR and the second FR. 
     In an exemplary embodiment, the interface is operable by a human user. 
     In an exemplary embodiment, the interface is operable by an application or by an algorithm. 
     In an exemplary embodiment, the OOI or the ROI is identified in at least a single frame of the input video stream with an object classification or an object segmentation algorithm. 
     In an exemplary embodiment, the OOI or ROI is tracked at least through a part of input video stream with a tracking algorithm. 
     In an exemplary embodiment, the processor is further configured to use a depth map stream that is spatially and temporally aligned with the input video stream to generate the output video stream. 
     In an exemplary embodiment, the depth map is used to determine a depth of each entity. 
     In an exemplary embodiment there is provided a method, comprising: in a digital camera configured to obtain an input video stream and to output an output video stream, marking a first entity in a frame of the input video stream, determining a frame rate ratio FR1/FR2 between a first frame rate FR1 and a second frame rate FR2, and generating the output video stream, wherein the output video stream includes a first entity played at FR1 and a second entity played at FR2. 
     In an exemplary embodiment, the method further comprises using a depth map to determine a depth of each entity. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Non-limiting examples of embodiments disclosed herein are described below with reference to figures attached hereto that are listed following this paragraph. The drawings and descriptions are meant to illuminate and clarify embodiments disclosed herein, and should not be considered limiting in any way: 
         FIG.  1    illustrates an example video output provided by a method disclosed herein; 
         FIG.  2    shows a general flow chart of an exemplary embodiment of a method disclosed herein; 
         FIG.  3    illustrates respective frame rate masks and binned depth maps of a specific image for two different cases; 
         FIG.  4    presents an example of an image set of a scene containing a RGB image (left side), a depth map (center) and a derived SD (right side); 
         FIG.  5 A  shows a block diagram of an exemplary system used to run a method disclosed herein in a first example; 
         FIG.  5 B  shows a block diagram of an exemplary system used to run a method disclosed herein in a second example; 
         FIG.  5 C  shows an embodiment of a camera disclosed herein; 
         FIG.  5 D  shows an embodiment of a host device disclosed herein; 
         FIG.  6 A  shows a video RGB input stream and a video depth image input stream of the same scene; 
         FIG.  6 B  shows the FRM generated for the input video streams of  FIG.  6 A  for case A; 
         FIG.  6 C  shows the FRM generated for the input video streams of  FIG.  6 A  for case B; 
         FIG.  7    presents RGB images, depth maps and selected depth masks from frames related to the scene in  FIGS.  6 A-C  that does and does not contain all object information; 
         FIG.  8 A  presents RGB images, depth masks and the depth information reconstruction process of case B for complete (first row) and incomplete (second row) depth mask information; 
         FIG.  8 B  shows case B selected depth masks and RGB image segments derived with these masks for complete (first row) and incomplete (second row) image information. 
     
    
    
     DETAILED DESCRIPTION 
     Definitions 
     “Entity”: a section or part of a RGB frame with information different from other sections or parts of the frame. Examples of such an entity are objects of interest (OOIs) or regions of interest (ROIs), as well as their respective foreground and background. The objects or regions of interests can be selected manually by the user or automatically by a dedicated algorithm.
 
“Assigned depth”: depth information on single pixels or segments of a RGB image which is obtained from a depth map that covers the same scene from the same (or similar) point of view (POV) as the RGB image.
 
“Selected Depth” (SD): depth of one or more selected objects in the RGB image.
 
“SD + ”: depths that are further away from the camera than SD.
 
“SD − ”: depths that are closer to the camera than SD.
 
“Binned Depth Map” (BDM): a depth map that classifies the originally continuous depth map into a discrete depth map of several classes, each class covering a range of specific depths. Here, we use 2-class and 3-class BDMs.
 
“Frame Rate Mask” (FRM): a binary mask that includes all pixels that are to be played with a first frame rate (FR1), with the part outside of the mask are played with a second frame rate (FR2). Per definition, SD is played in FR1 while SD +  is played in FR2. In a general case, a plurality of FRMs with different frame rates, e.g. FR3, FR4 or FR5, may be provided. In this case, the FRM expands to a mask discriminating 3, 4 or 5 pixel groups.
 
“P FR1 ”: group of pixels played in FR1 (marked in white in the FRM presented e.g. in  FIG.  3   ).
 
“P FR2 ”: group of pixels played in FR2 (marked in black in the FRM presented e.g. in  FIG.  3   ).
 
“P FR3 ”: group of pixels played in FR3 (not shown in the figures herein).
 
       FIG.  1    illustrates an example video output provided by a method disclosed herein. The figure shows nine consecutive frames 1-9 of a video stream, with a left column showing original frames (input data) and with a right column showing output (or generated) frames (output data). The video stream includes two objects, a first object  102  (a runner distanced farther from a viewer, i.e. in the “back”) and a second object  104  (a runner distanced closer to a viewer, i.e. in the “front”). For simplicity, numerals  102  and  104  are shown only in frames 1 and 9. In the original video, object  104  is running faster than object  102 . In the shown output video, object  104  is selected to be played two times slower than in the original video. The outcome is that object  104  is now seen running slower than object  102 . 
       FIG.  2    shows a general flow chart of an exemplary embodiment of a method disclosed herein. A video stream (sequence of N frames)  202  recorded at a certain user- or application-assigned frame rate FR is used as input. In step  204 , the user or application marks an object of interest (e.g. object  104 ) or region of interest and a relative velocity of the OOI or the ROI. In general, the OOI or ROI is only marked in one of the frames, e.g. in the 1 st  of the N frames. The relative velocity (or “slow motion factor”) of the OOI or the ROI defines a frame rate ratio between the frame rate with which the OOI or the ROI is played, and the frame rate at which the foreground and/or background are played. In step  206 , frames used for generating an output stream are selected. These are referred to henceforth as “selected frames”. 
     In a first example and with reference to  FIG.  1   , one wants to make object  104  (and optionally additional segments of the frames) move half as fast as in original video stream, corresponding to a relative velocity (slow motion factor) and a frame rate ratio of 2. At least two frames need to be selected in order to obtain information on the movement of OOI  104  and on the movement of foreground FG and background BR (i.e. all the pixels in the frame except object  104 ). If one wants to achieve the given effect with fewer than four frames, movement models predicting the inter-frame movement have to be deployed. 
     The selection of at least two frames may be made in various ways. One option is presented in Table 1, 
                                                             Table 1                          Out Idx     1   2   3   4   5   6   7   8           Obj Idx     1   1   2   2   3   3   4   4           BG Idx     1   2   3   4   5   6   7   8                        
where Obj Idx  axis the index of the input frame from which the OOI (i.e. object  104 ) is taken, BG Idx  is the index of the input frame from which the background is taken, and Out Idx  is the index of the respective output frame.
 
     In step  208 , the OOIs are detected in the at least two selected frames. In step  210 , the algorithm calculates a segmentation mask for the OOI. In step  212 , data missing (e.g. caused by occlusion) in the at least four selected frames is filled in from frames other than the selected frames (for example neighboring frames). In step  214 , data and information generated in steps  204 - 212  is processed to generate a new frame. Newly generated frames are assembled into an output video stream  216 . 
     In this example, one can write a general equation: 
                 Obj   Idx     =     ceil   ⁡     (       Out   Idx       S   ⁢     M     f   ⁢   a   ⁢   c   ⁢   t   ⁢   o   ⁢   r           )         ,       B   ⁢     G   Idx       =     Out   Idx       ,         
where ceil(x) returns the smallest integer that is greater than or equal to x (i.e. rounds up the nearest integer) and SM factor  is the slow-motion factor of the object (in this example SM factor =2).
 
     In a second example one wants to make object  104  move twice as fast as in original video stream. Again, at least two frames need to be selected. One option is presented in Table 2. 
                                                             Table 2                          Out Idx     1   2   3   4   5   6   7   8           Obj Idx     1   2   3   4   5   6   7   8           BG Idx     1   1   2   2   3   3   4   4                        
In this example, the general equation is:
 
     
       
         
           
             
               
                 Obj 
                 Idx 
               
               = 
               
                 Out 
                 Idx 
               
             
             , 
             
               
                 B 
                 ⁢ 
                 
                   G 
                   Idx 
                 
               
               = 
               
                 
                   ceil 
                   ⁡ 
                   
                     ( 
                     
                       
                         Out 
                         Idx 
                       
                       
                         S 
                         ⁢ 
                         
                           M 
                           
                             f 
                             ⁢ 
                             a 
                             ⁢ 
                             c 
                             ⁢ 
                             t 
                             ⁢ 
                             o 
                             ⁢ 
                             r 
                           
                         
                       
                     
                     ) 
                   
                 
                 . 
               
             
           
         
       
     
     Given a video of RGB images, i.e. frames F={f i } i=1   N     Frames    and a depth map overlaying each frame D={d i } i=1   N     Frames   , methods disclosed herein generate new videos in which the pixel groups P FM1  and P FM2  are played at different frame rate. The depth map can be obtained using for example stereo-camera triangulation, depth from motion, gated imaging, time of flight (TOF) cameras, coded aperture based cameras, a Laser Auto-focus unit (“Laser AF”), an image sensor with Phase Detection Auto Focus (“PDAF”) capability etc. In depth maps shown herein, the gray scale depicts the respective depth (white=zero distance from camera, black=infinite distance from camera). The depth maps or images discussed herein are assumed to be captured from a same POV or a similar POV as well as captured substantially simultaneously with the RGB images shown along with the depth maps. 
     For the sake of clarity the term “substantially” is used herein to imply the possibility of variations in values within an acceptable range. For example, “substantially simultaneously” may refer to the capture of frames for two video streams within ±5 ms, ±10 ms, ±20 ms or even ±30 ms. For example, “substantially simultaneously” may refer to the synchronization of frames from two video streams within ±5 ms, 10 ms, ±20 ms or even ±30 ms. 
     We distinguish two cases for the frame rate of segments of the image that are closer to the camera (i.e. SD − ): 
     Case A (Example 1): the OOI or ROI and image segments closer to the camera than the OOI or ROI (foreground FG) are played at FR1, while image segments farther from the camera (background BG) than the OOI or ROI are played with FR2. SD −  is played at the same FR as SD (i.e. FR1) and all the other depths are played at FR2. Thus P FR 1=SD∪SD −  and P FR 2=SD + . In this case, we do not need to indicate where the pixels of SD −  are, since they are played at the same FR as SD such that OOIs or ROIs at SD will never be occluded. Therefore, we obtain FRM=BDM. 
     Case B (Example 2) only the OOI or ROI is played with FR1, while both FG and BG are played with FR2. SD −  is played at the same FR as SD +  (i.e. FR2). Thus P FR 1=SD, P FR2 =SD + ∪SD − . Since SD and SD −  are played with different frame rate, some information will be missing in the newly generated frames because of occlusions. 
     In an additional, third example, different “depth slices” (parts of the image with of a certain corresponding depth range) for example, a first depth slice 1: 0.5-1 m, a second depth slice 2: 1-2 m, and a third depth slice 3: 2-4 m, are played with different FRs. For example, the RGB information of depth slice 1 is played with FR 1, the RGB information of depth slice 2 is played with FR 2, the RGB information of depth slice 3 is played with FR 3, etc. In some examples it may be FR1&lt;FR2&lt;FR3 etc., or vice versa. In other examples, there may not be such a FR order according to depth. This slicing principle may be used to, for example, highlight an OOI or ROI by leaving the OOI or ROI unmoved, and let the BG move faster the more far away it is from the OOI or RO. In some examples, artificial objects may be added to one or more of the depth slices. An artificial object may be an artificially created object such as an object drawn manually or by a computer. An artificial object may be image data not included in one of the images of the input video stream. In some examples, an artificial object may be image data from an image captured with another camera of a same host device. 
     In other examples, a physical property of entities (e.g. an OOI or ROI) other than depth may be used for defining object, FG and BG. A physical property may be spectral composition. In yet other examples, visual data such as texture of entities (e.g. an OOI or ROI) may be used for defining object, FG and BG. 
       FIG.  3    illustrates respective FRMs and BDMs of a specific image for cases A and B. Here, the OOI is a dancing girl  302 . Corresponding to this image is a depth map of the same scene (not shown here). Here, a depth of the scene is assumed which increases constantly for larger Y values. A constantly increasing depth is e.g. shown in  FIG.  4   . In the given scene, a runner  304  is closer to the camera than girl  302 . In case A, the FRM and BDM include both dancing girl  302  and runner  304  (as well as all other pixels with assigned depth smaller than that of girl  302 ). In case B, the FRM only includes girl  302 , as well as pixel groups of the BG with assigned depth equal to the assigned depth of the girl  302 . For case B, the BDM is differentiated into three pixel groups with different assigned depths: the depth of OOI  302  (SD, white), a depth larger than depth of OOI  302  (SD + , black), and a depth smaller than the depth of OOI  302  (SD − , gray). 
       FIG.  4    presents an example of an image set containing a RGB image (left side), next to a depth map (center) covering the same scene from the same (or very similar) point of view (POV) as that of the RGB image, and next to SD map (right side) derived according to a method disclosed herein. The specific SD is chosen based on the RGB image and depth map data. A runner  402  is closest to the camera, a girl  404  is farther away from the camera, and a boy  406  is at the farthest distance from the camera. Here, girl  404  is defined as the OOI, leading to the presented specific SD. 
       FIG.  5 A  presents a block diagram of processor numbered  500  in a system disclosed herein and used for case A. The following notations are used: foreground (FG) and background (BG) respective frames f FG     Idx    and f BG     Idx   , corresponding respective masks m FG     Idx    and m BG     Idx   , generated respective images  f   BG     Idx    and  f   FG     Idx    and a composed new output frame  f   Out     Idx   . 
     Processor  500  may be for example an application processor of a smartphone or a tablet. In processor  500 , the input frames of the RGB video stream  502  and the depth map video stream  504  constitute data inputs for the method disclosed here. Depending on a FR speed chosen by a human user (e.g. manually) or chosen by a dedicated algorithm (e.g. automatically), indices of the frames to be used for the output video stream are selected by a FG and BG index selector module  506 . These indices are the input for a mask generator module  508  that performs step  210  in  FIG.  2   . Depending on objects or areas of interest in the RGB image (also chosen by the human user or by the dedicated algorithm), the frames with the indices selected in  506  are requested from a frame and depth selector module  508   a . Masks defining the areas that are played with different FRs are calculated in a mask extractor module  508   b  for the foreground FR, and in a mask extractor module  508   c  for the background BR. From module  508   c , information is fed into a hole filler module  512 , where missing information (e.g. because of occlusion of the object or area of interest by another object) is replaced by information calculated from input frames of RGB video stream  502  and depth map video stream  504  other than the ones actually used for the output video stream. A new frame generator module  514  assembles the information and outputs the newly generated video stream. 
       FIG.  5 B  presents a block diagram of processor numbered  500 ′ in a system disclosed herein and used for case B. In addition to modules and functions of processor  500  in  FIG.  5 A , processor  500 ′ includes an additional selected depth object estimator module  516 , in which the depth of the selected object or area is estimated in case the selected object or area is occluded by another object. 
     Because of the more complex FRM deployed in case B compared to case A, this information must be generated, e.g. by estimation from other frames of the depth map video stream (e.g. neighboring frames), e.g. by deploying a motion model. Module  512  that computes  f   BG     Idx    remains practically the same as in case A, except for mask m BG     Idx    that is passed to module  512 . In contrast with case A, the mask now includes only the selected depth and not SD − . 
       FIG.  5 C  shows an embodiment of a camera disclosed herein and numbered  520 . Camera  520  includes camera elements such as optical components (i.e. a lens system)  522  and an image sensor  524 . Camera  520  may be a multi-camera system that has more than one lens system and image sensor. Images and video streams recorded via lens system  522  and image sensor  524  may be processed in an application processor  526  that interacts with a memory  528 . A human user can trigger actions in the camera via a human machine interface “HMI” (or simply “interface”)  532 . Information that supports actions such as generation of artificial image data and information may be stored in a database  534 . In various embodiments, one or more of the components application processor  526 , memory  528 , HMI  532  and database  534  may be included in the camera. In some embodiments (such as in  FIG.  5 D ) application processor  526 , memory  528 , HMI  532  and database  534  may be external to the camera. 
       FIG.  5 D  shows an embodiment of a host device disclosed herein and numbered  540 , for example a smartphone or tablet. Device  540  comprises a camera  542 , application processor  526 , memory  528 , HMI  532  and database  534 . In some embodiments, database  534  may be virtual, with information not located physically on the device, but located on an external server, e.g. on a cloud server. Device  540  may comprise a multi camera system, e.g. several cameras for capturing RGB images and one or more additional sensing cameras, e.g. a time of flight (TOF) camera sensing depth information of a scene. 
     In some examples, camera  542  may provide the video stream input for the method described herein. In other examples, the video stream input may be supplied from outside a host device, e.g. via a cloud server. 
       FIGS.  6 A- 6 C  depict the generation of FRMs for the cases A and B outlined below.  FIG.  6 A  shows two input video streams of the same scene as in  FIG.  4   , one input stream (left) being of RGB images (also referred to as “RGB image stream”), the other input stream (right) being of depth images (also referred to as “depth image stream”). As in  FIG.  4   , the images include runner  402 , girl (OOI)  404  and boy  406 .  FIG.  6 B  shows the FRM generated for the input video streams of  FIG.  6 A  for case A.  FIG.  6 C  shows the FRM generated for the input video streams of  FIG.  6 A  for case B. In input frame 4, we find that girl  404  is partly occluded by runner  402 . 
     In  FIG.  6 B , the FRM includes the selected depth SD and all the depths closer to the camera SD − . In this case, the mask that needs to be extracted from the depth image is a binary mask that indicates where SD and SD −  are located in the RGB image. In the binary mask, “1” (white) represents the regions of SD and SD −  and “0” (black) represents all other depths. Foreground  408  and background  412  refers to segments of the image that have an assigned depth that is smaller and larger than the selected depth respectively. 
     The following describes a general method to provide effects like those in the first and second examples above in more detail. In step  206 ,  FIG.  2   , two frames are extracted from the input video streams. An output frame will be composed of these two frames, one frame being used for forming the background f BG     Idx    and the other frame being used for forming the foreground f FG     Idx   . BG Idx  and FG Idx  are indices that indicate which frame from the input frames, F, are selected, thus, BG Idx , FG Idx ∈[1, 2 . . . N Frames ]. 
     Once the indices from the input frames are chosen, the selected depth masks for the images need to be extracted. 
     The next step after the extraction of BG Idx  and FG Idx  is to select the BG and FG frames f FG     Idx    and f BG     Idx    together with their corresponding masks m FG     Idx    and m BG     Idx    and to generate the two image frames  f   BG     Idx    and  f   FG     Idx    that will be combined (“stitched”) together to compose the new output frame  f   Out     Idx   . Since the regions of selected depths are never occluded,  f   BG     Idx    can be obtained directly from the input frame and the corresponding mask. Therefore,  f   FG     Idx   =f FG     Idx   ·m FG     Idx   . 
     To obtain  f   BG     Idx   , we need to delete the region in the image where m BG     Idx    indicates the selected depth, and fill this region with the background. To delete the region with the selected depth, we can for example use f′ BG     Idx    m BG     Idx   ·f BG     Idx   . To fill the missing information in the background, we can use methods such in-painting (see e.g. Bertalmio, Marcelo, Andrea L. Bertozzi, and Guillermo Sapiro. “Navier-Stokes, fluid dynamics and image and video inpainting.”  Computer Vision and Pattern Recognition,  2001 . CVPR  2001 . Proceedings of the  2001  IEEE Computer Society Conference on . Vol. 1. IEEE, 2001) or utilize information from consecutive frames (see e.g. Jia, Yun-Tao, Shi-Min Hu, and Ralph R. Martin. “Video completion using tracking and fragment merging.”  The Visual Computer  21.8-10 (2005): 601-610). The indices of the input frames which will be used to fill the holes in f′ BG     Idx    are: [BG Idx −k, BG Idx +k], where k is a parameter that indicates the number of consecutive frames from each side of f BG     Idx   . In general, k does not have to be constant, and can be different from frame to frame, in which case it will be marked as k Out     Idx   . 
     Once we have  f   BG     Idx    and  f   FG     Idx   , they can be stitched together using m FG     Idx    and methods described for example in Burt, Peter J., and Edward H. Adelson. “A multiresolution spline with application to image mosaics.”  ACM Transactions on Graphics  ( TOG ) 2.4 (1983): 217-236. 
     In case A, we used the depth map to detect the selected depth and all the depths closer to the camera, which were to be played at the same FR. This causes objects in the RGB image with corresponding selected depth to have all the information needed to generate the new frame in the output video in each frame. 
     In case B, we use the depth map in order to detect the regions of selected depth, which are to be played at the same FR. All regions with other corresponding depths are to be played at a different FR. Here, in general, the object in the selected depth will not contain all the information needed to compose the new frame (see e.g. input frame 4 in  FIG.  6 A ), and there is a need to generate this information, e.g. by algorithms generating artificial input based on prior “experience”, or from other frames, e.g. from subsequent consecutive frames (e.g. by using a motion model). In this case, it is possible that an object that is closer to the camera than the selected depth will occlude parts of the objects in the selected depth, so that the FG frame and the corresponding mask will have holes where data is missing. 
       FIG.  6 C  shows the FRM generated for the input video streams of  FIG.  6 A  for case B. In input frame 4, we find that girl  404  is partly occluded by runner  402 . 
     The selection of the frame indexes from the input remains the same as in case A. The mask extracted from the depth image for the selected depth−m FG     Idx    does not contain all the information for the objects in the selected depth and therefore a new mask  m   FG     Idx    needs to be defined. This mask is not extracted from the depth image, but estimated, e.g. by using information from other frames. 
     The information of the object in the selected depth that exists in f FG     Idx    will be referred to as f′ FG     Idx   =f FG     Idx   ·m FG     Idx   . The frame with full object information within the selected depth derived e.g. based on information from consecutive frames) is given by  f   FG     Idx   . 
       FIG.  7    presents RGB images (first column), corresponding depth maps (second column) and the selected depth mask (third column for case A, fourth column for case B) from a frame related to the scene in  FIGS.  6 A-C  that does not contain all information of the object in the selected depth. The situation of missing data in case B as described above is illustrated in the second row of  FIG.  7   , where the information on the mask is missing because of occlusion of an object caused by another object. 
     In case A, the mask is a binary mask. In case B, the mask is a mask with three values: 0 (black) 0.5 (gray) and 1 (white). 
       FIG.  8 A  presents the same RGB images as shown in  FIG.  7    having a same corresponding depth map (not shown) that is shown in  FIG.  7    (first column) and the information reconstruction process for the depth map part (second to fifth column) for case B, both for the case of complete depth map information (row 1), and for the case of incomplete depth map information because of occlusion (row 2). In the second row and fourth column, selected depth masks are presented that partly need to be generated, e.g. by estimations based on information of other frames: the gray parts in the mask are parts that are to be generated. In the fifth column, the selected depth mask with generated information is shown. This depth mask can further on be used for the new output frame composition. 
       FIG.  8 B  shows, along with the selected depth masks (second and fourth column), the respective masked RGB image segments (third column) and the RGB output frame of the computational step which fills missing data from neighboring frames (step  212  in  FIG.  2   ) in the last (fifth) column. 
     While this disclosure describes a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of such embodiments may be made. In general, the disclosure is to be understood as not limited by the specific embodiments described herein, but only by the scope of the appended claims. 
     It will also be understood that the presently disclosed subject matter further contemplates a suitably programmed computer for executing the operation as disclosed herein above. Likewise, the presently disclosed subject matter contemplates a computer program being readable by a computer for executing the method as disclosed herein. The presently disclosed subject matter further contemplates a non-transitory computer-readable memory tangibly embodying a program of instructions executable by the computer for executing the method as disclosed herein. 
     All references mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual reference was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present application.