Various embodiments relate to a method of processing a panoramic video, a method of playing back a panoramic video, and to corresponding devices. In particular, various embodiments relate to techniques of determining a view of the panoramic video based on a direction corresponding to at least one of a predefined event in the surrounding of a respective detector and a reference direction of the detector.
Detectors are known which are capable of capturing a panoramic video, i.e., a video which images a significant part of a surrounding of the detector.
Sometimes, it may be desirable to play back the panoramic video on a size-limited display device such as a conventional two-dimensional (2d) screen with a limited resolution. In such a case, it is possible that parts of the panoramic video need to be cropped and thereby omitted from the playback. It is also possible that the panoramic video gets warped or distorted at playback to fit the dimensions of the 2d screen.
Such effects limit the quality of the playback. Further, information relevant for the user may be lost.
Therefore, a need exists to provide techniques which address at least some of these shortcomings. In particular, there is a need to provide techniques which enable comfortable play back of a panoramic video on size-limited display devices.
According to an aspect, a method of processing a panoramic video is provided. The method comprises retrieving video data of the panoramic video. The panoramic video images a first part of a surrounding of a detector of the panoramic video. The method further comprises establishing a direction. The direction corresponds to at least one of a predefined event in the surrounding of the detector and a reference direction of the detector. The method further comprises determining control data indicating a preset view of the panoramic video. The determining of the control data is based on said establishing of the direction. The preset view images a second part of the surrounding of the detector. The first part includes the second part.
According to a further aspect, a device is provided. The device comprises a processor configured to retrieve video data of a panoramic video. The panoramic video images a first part of a surrounding of a detector of the panoramic video. The processor is further configured to establish a direction. The direction corresponds to at least one of a predefined event in the surrounding of the detector and a reference direction of the detector. The processor is further configured to determine control data indicating a preset view of the panoramic video based on said establishing of the direction. The preset view images a second part of the surrounding of the detector. The first part includes the second part. The device according to the presently discussed aspect may include the detector.
According to a further aspect, a method of playing back a panoramic video is provided. The method comprises retrieving video data of a panoramic video. The method further comprises retrieving control data indicating a preset view of the panoramic video. The preset view relates to at least one of a predefined event located in the surrounding of a detector of the panoramic video and a reference direction of the detector. The method further comprises determining a view of the panoramic video based on the preset view. The method further comprises playing back the panoramic video employing the determined view.
According to a further aspect, a device is provided. The device comprises a processor configured to retrieve video data of the panoramic video. The processor is further configured to retrieve control data indicating a preset view of the panoramic video. The preset view relates to at least one of a predefined event located in the surrounding of a detector of the panoramic video and a reference direction of the detector. The device is further configured to determine a view of the panoramic video based on the preset view. The processor is further configured to play back the panoramic video employing the determined view.
According to a preferred embodiment of the invention, the above described methods may be performed in real time, i.e., live during the recording or capturing of the panoramic video, so that the preset view or the determined view are adjusted or adapted accordingly as soon as the predefined event occurs.
Furthermore, according to an embodiment of the invention, the device may be a mobile electronic device, e.g., a mobile phone, a smart phone, a portable digital camera, etc.
It is to be understood that the features mentioned above and features yet to be explained below can be used not only in the respective combinations indicated, but also in other combinations or in isolation, without departing from the scope of the present invention. Features of the above-mentioned aspects and embodiments may be combined with each other in other embodiments.
The foregoing and additional features and advantages of the invention will become apparent from the following detailed description when read in conjunction with the accompanying drawings, in which like reference numerals refer to like elements.
In the following, embodiments of the invention will be described in detail with reference to the accompanying drawings. It is to be understood that the following description of embodiments is not to be taken in a limiting sense. The scope of the invention is not intended to be limited by the embodiments described hereinafter or by the drawings, which are taken to be illustrative only.
The drawings are to be regarded as being schematic representations, and elements illustrated in the drawings are not necessarily shown to scale. Rather, the various elements are represented such that their function and general purpose become apparent to a person skilled in the art. Any connection or coupling between functional blocks, devices, components or other physical or functional units shown in the drawings or described herein may also be implemented by an indirect connection or coupling. Functional blocks may be implemented in hardware, firmware, software or a combination thereof.
The features of the various embodiments may be combined with each other, unless specifically noted otherwise.
Hereinafter, techniques of processing a panoramic video and of playing back a panoramic video are illustrated. In particular, techniques are illustrated which employ a direction of a predefined event or a reference direction of a detector of the panoramic video. A particular view for playing back the panoramic video can be determined based on the direction of the predefined event and/or based on the reference direction.
In general, the predefined event may relate to various kinds of events. E.g., the predefined event may be an image region of the panoramic video where increased dynamics occur. E.g., while parts of the panoramic video may remain comparably static per time, there may be other regions where significant changes in pixel values occur. This may be the case for moving objects against a static background. E.g., considering a case where the detector is mounted on a tripod in a garden of the user and children are running back and forth through sprinklers, it is possible that the image region of increased dynamics corresponds to the children running back and forth—while the rest of the scenery, in particular the background of the garden, shows no or no significant dynamics per time. In general, the predefined event could also relate to a tracked object. E.g., based on a user input, a particular object located in the first part of the surrounding of the detector which is imaged by the panoramic video could be marked and subsequently tracked over the course of time. For this, techniques of object tracking may be employed. It is then possible that the direction is established such that it points to the tracked object even if the latter is moving with respect to the detector and/or even if the detector is moving with respect to the tracked object. In general, a further scenario could relate to the predefined event corresponding to an image region having a predefined brightness value. E.g., the predefined brightness value can be predefined in terms of a deviation against an average brightness value of various pixels of the panoramic video. In such a manner, it may be possible that the direction is established such that it points to a region of minimum or maximum brightness if compared to the rest of the imaged scenery. E.g., when tracking a bright object such as the sun or stars at night, it is possible to determine the control data conveniently by employing such a criterion.
It is also possible that the direction corresponds to a reference direction of the detector. E.g., the reference direction of the detector can be predefined. It is possible that the reference direction corresponds to a particular pixel of the video data which is assigned to a particular viewing direction of the detector. E.g., the reference direction may correspond to a forward direction or backward direction or left direction or up direction or down direction or right direction of the detector. It is possible that within a reference coordinate system defined in terms of the detector, the mapping of pixels to a particular viewing direction of the detector remains unchanged. In this light, the reference direction of the detector can be time-invariant. However, it is also possible that the reference direction varies over the course of time. E.g., the reference direction of the detector can be a direction of movement of the detector. It is also possible that the reference direction of the detector is a direction of acceleration of the detector. The reference direction of the detector can correspond to a vertical orientation of the detector or to a horizontal orientation of the detector. E.g., it is possible that the reference direction is established such that it points to the horizon. It is also possible that the reference direction is established such that it points to the zenith. For a moving detector these directions can vary over the course of time.
The direction may be expressed in a reference coordinate system. The reference coordinate system may be defined in terms of the video data; e.g., a zero direction may correspond to a pixel having pixel indices 0,0 of a pixel matrix of a display device and the respective video data; such a pixel may be located at the uppermost left position of the pixel matrix. The reference coordinate system may also be defined with respect to a detector of the panoramic video; e.g., a zero direction of the reference coordinate system may correspond to a pixel of the panoramic video associated with a straight-forward direction of the detector. The reference coordinate system may be defined in terms of Cartesian coordinates. The reference coordinate system may also be defined in terms of polar coordinates. E.g., a first angle may used to specify the direction parallel to the Horizon (polar angle). E.g., a second angle may be used to specify the direction perpendicular to the Horizon (azimuthal angle). The reference coordinate system may also be defined in terms of pixels of the video data. E.g., it may be possible to specify the direction in terms of pixel addresses of video data providing the panoramic video. As can be seen, various reference coordinate systems may be suitable.
In order to determine the view, control data indicating a preset view may be determined. The control data may be provided together with the video data of the panoramic video. Then, the playback of the panoramic video is based on the video data and is further based on the control data.
The preset view may correlate with the direction of the sound source. E.g., the preset view may be centered on the direction. It is also possible that the preset view is offset by a predefined amount with respect to the established direction. In other words and more generic, the preset view may fulfill some predefined geometric criterion with respect to the established direction.
Then, based on the control data, the view can be determined. Sometimes, it may be preferable that the view includes the established direction; i.e. the view may be determined such that—when playing back the panoramic video employing the view—a scenery located at the reference direction and/or the predefined event in the surrounding of the detector are visible. Sometimes, however, it may be preferable that the view and the established direction fulfil a different geometric criterion. Therefore, while the control data may indicate the preset view which fulfils some predefined geometric criterion with respect to the established direction, it is possible that the view used for playback of the panoramic video is flexibly determined based on the preset view. This increases the flexibility in playing back the panoramic video; nonetheless, the playback takes into account the established direction corresponding to at least one of the predefined event and the reference direction of the detector. In a simple scenario, the preset view and the view for the playback may be coincident.
In
Further illustrated in
Determining the view 110 which is smaller than the entire surrounding imaged by the panoramic video 100 may be convenient when playing back the panoramic video 100 on a display device with limited dimensions, e.g., when playing back the panoramic video 100 employing a conventional 2d display device of a portable electronic equipment. By determining the view 110, it is possible to select a certain part of the surrounding which is relevant to the user; other parts imaged by the panoramic video may be omitted from playback in view of the technical constraints imposed by the display device.
Hereinafter, details of techniques are illustrated which enable to determine the view 110 of the panoramic video 100 based on a preset view which is indicated by control data. Such a scenario is illustrated in
As mentioned above, it is possible to establish the direction corresponding to at least one of the reference direction of the detector 102 and the predefined event; e.g., this direction can be established in terms of one or more of the reference coordinate systems discussed above with respect to
Once the direction 210 has been established, it is possible to determine the preset view 111. E.g., a preset view 111 may include the established direction 210 (see
It is also possible to determine the control data. The control data indicates the preset view of 111 the panoramic video 100. The control data can indicate the preset view 111 implicitly or explicitly. In a simple scenario, the control data implicitly indicates the preset view 111 by specifying the established direction 210; e.g., together with predefined rules or parameters such as dimensions, an aspect ratio, etc. of the preset view 111, it is then possible to unambiguously determine the preset view 111. The preset view 111 can also be explicitly specified by the control data, e.g., in terms of a center position, a zoom factor, and/or an aspect ratio of the preset view 111. Such parameters may enable to determine a shape of the preset view 111. The control data can further specify a vertical orientation and/or a horizontal orientation of the preset view 111, e.g., in the x,y,z-coordinate system; alternatively or additionally, the control data can specify the orientation of the preset view 111 in terms of the azimuthal angle φ and/or the polar angle θ. Such parameters may enable to determine a position and orientation of the preset view 111.
As will be appreciated, storing an entire frame 101 of the panoramic video 100 in the memory requires significant memory space. In particular, as the panoramic video 100 images a significant first part of the surrounding of the detector 102, the video data of a frame 101 of the panoramic video 100 may be comparably larger than video data of a conventional 2d video imaging a significantly smaller part of the surrounding of a respective detector. To reduce memory requirements, it is possible that the video data of only the preset view 111 is stored in the memory. It is possible that the remainder of the video data of the panoramic video 100 is discarded. I.e., it is possible that the part of the video data of the panoramic video 100 is discarded which does not image the second part of the surrounding of the detector 102.
When playing back the panoramic video 100, it is possible to determine the view 110 employed for the playback based on the control data—respectively, based on the preset view 111. In the scenario of
In a further scenario, it is possible that a user input is retrieved. The user input can indicate a further preset view. The view 110 can then be determined based on the further preset view in response to the retrieving of the user input; e.g., the view 110 can be determined to coincide with further preset view. In other words, it is possible that the user manually sets the view 110; in this light, the user may override the determining of the view 110 based on the preset view 111 by specifying the further preset view. E.g., for this purpose, a user may employ a user interface such as a touch-sensitive display, a mouse, a keyboard, or the like. The user may, e.g., employ a gesture input to scroll the view 110. Then, once no respective user input is received anymore, it is possible that the view 110 pans back until it coincides with the preset view 111. E.g., the user input may be retrieved at a first point in time. Then the view 110 may be determined as the preset view 111 at a second point in time after the first point in time. In other words, once no further user input is retrieved, the view 110 may be determined based on the preset view 111 with some latency. This latency time period between the first and second points in time may amount to, e.g., 10 seconds. Such an interplay between the user input and the preset view 111 determined based on the established direction 210 may occur in a fashion known as rubber-band scrolling. Such techniques enable, both, user-defined playback of the panoramic video 100, as well as controlled playback based on the preset view 111.
In general, it is possible that the control data indicates a plurality of preset views 111 of the panoramic video 100. It is possible that the determining of the view 110 of the panoramic video is further based on a user input which selects a particular one of the plurality of preset views 111. E.g., it may be possible that a user toggles through the plurality of preset views 111. E.g., upon retrieving a respective user input, the view 110 may be determined to coincide with the next one of the plurality of preset views 111. When switching to the next one of the plurality of preset views 111, predefined panning parameters may be employed for smooth panning of the view 110.
In various scenarios as mentioned above, a certain amount of decision logic is employed when playing back the panoramic video 100; a particular geometrical relationship between the view 110 and the preset view 111 is determined when playing back the panoramic video 100. This may be based on panning parameters, a time evolution of the view 110, a selected one of a plurality of preset views 111, and/or user input, etc. However, as mentioned above in a simple scenario, the view 110 may be coincident with the preset view 111. In particular, in such a scenario it may be possible to employ all or most of the decision logic when determining the control data. When playing back the panoramic video 100, it may then be unnecessary to provide significant computational resources for the determining of the view 110. In particular, in such a case it may be possible to control the panning of the view 110 by respectively specifying a time evolution or time series of a the preset view 111; the view 110 may then following the preset view 111 in a one-to-one relationship.
When determining the view 110 and/or the preset view 111 based on a time evolution of the view 110 and/or a time evolution of the preset view 111 smooth and controlled panning may be ensured. For this purpose, the panning parameters may be taken into account.
In general, the control data may be determined with a predefined temporal resolution; e.g., the control data may indicate the preset view 111 for at least some of the plurality of frames 101 of the panoramic video 100. This resolution of the frames 101 of the panoramic video 100 for which the control data indicates the preset view 111 may correlate with the predefined temporal resolution; e.g., the control data may indicate the preset view 111 for every frame 101, for every second frame 101, for every third frame 101, and so forth.
In
The detector 102 further includes a processor 330 which is configured to execute various tasks with respect to processing of the panoramic video 100. In particular, the processor 330 can be configured to retrieve video data from each one of the plurality of cameras 301-1-301-3 and establish the video data of the panoramic video 100. This may include techniques of the stitching of the individual video data retrieved from the cameras 301-1-301-3. Further, the processor 330 is configured to establish the direction 210 of at least one of the predefined event in the surrounding of the detector 102 and the reference direction of the detector 102. This may be based on evaluating the sensor data retrieved from at least one of the sensors 311-1-311-3 and or based on techniques of post-processing of the video data. The processor 330 is further configured to determine the preset view 111 and the control data. For this, the processor 330 takes into account the direction 210.
Further, the detector 102 includes a memory 340. The memory 340 can be a volatile or non-volatile memory. The memory 340 can be employed in various ways. E.g., the memory 340 can include control instructions which can be executed by the processor 330 to perform the tasks regarding video processing as mentioned above. Further, the processor 330 can be configured to store the video data of at least the preset view 111 of the panoramic video 100 in the memory 340. Further, the processor 330 can be configured to store the control data in the memory 340.
It is possible that the detector 102 includes a user interface (not shown in
It is possible that the detector 102 includes a display device (not shown in
However, it is also possible that the detector 102 does not include a display device for playing back the panoramic video 100. In such a scenario, it may be desirable that the detector 102 includes an interface 320. The interface 320 may be configured to output the video data and the control data.
E.g., the control data and the video data of the panoramic video 100 can be output to a portable electronic equipment 400 (cf.
Depending on the particular information specified by the control data, it is possible that a larger (smaller) amount of decision logic is implemented by the processor 330 of the detector 102 (the processor 430 of the portable electronic equipment 400)—or vice versa. I.e., in a scenario where the processor 340 of the detector 102 determines the control data such that it explicitly determines the preset view 111, it is possible that the processor 430 of the portable electronic equipment 400 sets the view 110 to coincide with the preset view 111. This may not require significant computational resources. The processor 330 of the detector 102 can take into account various panning parameters to specify a suitable time evolution of the preset view 111 and thereby of the view 110. In such a scenario, most decision logic resides in the detector 102. In a further scenario, it is possible that the processor 340 of the detector 102 merely specifies the established direction 210 as part of the control data, thereby implicitly indicating the preset view 111. Then, the processor 430 of the portable electronic equipment 400 can be configured to determine the view 111 based on certain geometrical relationships with respect to the established direction 210. In such a case, most of the decision logic resides in the portable electronic equipment 400.
In
Further shown in
In
In general, it is possible that in step S2 a plurality of directions 210 is established. It is then possible to determine the control data 500 for each one of the plurality of directions 210 individually in step S3. E.g., when playing back the panoramic video 100, it is possible to determine the view 110 such that it includes a particular one of the plurality of directions 210. E.g., the view to 110 can be determined such that it includes the direction 210 associated with a highest level of dynamics of all directions 210 relating to an event of increased dynamics. However, it would also be possible to determine the control data 500 in step S3 by pre-selecting a particular one of the plurality of directions 210. E.g., it is possible to include the various directions 210 as the preset view 111 in a fixed sequence; the preset view 111 may be panned sequentially between each one of the plurality of directions 210 after fixed time intervals. For this, the preset view 111 may be determined based on certain panning parameters and taking into account a time evolution of the preset view 111. As can be seen, various approaches exist to take into account a plurality of directions 210.
In
Then, in step T2, the view 110 of the panoramic video 100 is determined based on the preset view 111. Depending on the depth of information with which the preset view 111 is indicated in the control data 500, more or fewer computational resources may be required to execute step T2. In a simple scenario, in step T2, the view 110 is determined such that it coincides with the preset view 111; here, the preset view 111 may be explicitly indicated in the control data 500. In step T3, playback of the panoramic video 100 is executed employing the view 110.
Although certain embodiments have been shown and described, it is understood that equivalents and modifications falling within the scope of the appended claims will occur to others who are skilled in the art upon the reading and understanding of this specification.
E.g., while above scenarios have been illustrated where the preset view and the view are determined such that they include and are centered on the established direction, in general it is also possible that the preset view and/or the view fulfill different geometric relationships with respect to the established direction.
E.g., while above scenarios have been illustrated where the portable electronic equipment employed for playing back the panoramic video and the detector employed for capturing the panoramic video and determining the control data are separate devices, it is possible that the portable electronic equipment and the detector are integrated in a single entity.