METHOD AND NETWORK EQUIPMENT FOR TILING A SPHERE REPRESENTING A SPHERICAL MULTIMEDIA CONTENT
20200273144 ยท 2020-08-27
Inventors
Cpc classification
H04N21/21805
ELECTRICITY
H04N13/161
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/43
ELECTRICITY
H04N21/26258
ELECTRICITY
H04N21/4728
ELECTRICITY
G06T3/067
PHYSICS
G06T3/4038
PHYSICS
International classification
G06T3/40
PHYSICS
H04N13/161
ELECTRICITY
Abstract
A method for tiling with a set of tiles a sphere representing a spherical multimedia content, comprises: obtaining (402) an altitude for each parallel line of the sphere comprising one or several centroids of the tiles, each tile being defined as a portion of the sphere covering a tile horizontal angular amplitude and a tile vertical angular amplitude; obtaining (403) an angular position for each centroid of the tiles arranged on the parallel lines; determining (404) transformations to be applied to a reference tile to obtain the tiles of the set of tiles, each of the transformations depending on the obtained altitude and angular position of the centroid of a corresponding tile to be obtained.
Claims
1. A method for tiling with a set of tiles (600) a sphere (500) representing a spherical multimedia content, said method (400) comprising: obtaining (402) an altitude (.sub.j) for each parallel line (L.sub.j) of the sphere (500) comprising one or several centroids (C.sub.ij) of the tiles (600), each tile being defined as a portion of said sphere (500) covering a tile horizontal angular amplitude (.sub.tile) and a tile vertical angular amplitude (.sub.tile); obtaining (403) an angular position (.sub.ij) for each centroid (C.sub.ij) of the tiles (600) arranged on the parallel lines (L.sub.j); determining (404) transformations to be applied to a reference tile to obtain the tiles (600) of the set of tiles, each of said transformations depending on the obtained altitude (.sub.j) and angular position (.sub.ij) of the centroid (C.sub.ij) of a corresponding tile to be obtained.
2. The method according to claim 1, wherein each transformation associated with a corresponding tile of the set of tiles is defined by a rotation matrix.
3. The method according to claim 2, wherein said rotation matrix is a matrix product of two rotation matrices defined by the following equation:
Rot.sub.ij=Rot(y, .sub.ij)*Rot(x, .sub.j) wherein: Rot.sub.ij is the matrix product, Rot(x, .sub.j) is a rotation matrix associated with a rotation of an angle (.sub.j) around an axis x of an orthogonal system of axes x,y,z (R(O,x,y,z)) arranged at a center (O) of the sphere (500), Rot(y, .sub.ij) is a rotation matrix associated with a rotation of an angle (.sub.ij) around the axis y of the orthogonal system.
4. The method according to claim 3, wherein, for said corresponding tile: the rotation angle (.sub.j) around the axis x corresponds to the obtained altitude of a parallel line (L.sub.j) comprising the centroid (C.sub.ij) of the corresponding tile, the rotation angle (.sub.ij) around the axis y corresponds to the obtained angular position of the centroid (C.sub.ij) of said corresponding tile.
5. The method according to claim 1, wherein the tile horizontal angular amplitude (.sub.tile) and the tile vertical angular amplitude (.sub.tile) depend on service parameters.
6. The method according to claim 1, wherein the number of parallel lines depends on the tile vertical angular amplitude (.sub.tile) and a vertical overlapping ratio (R.sub.vert).
7. The method according to claim 1, wherein the number of tiles on a parallel line (L.sub.j) depends on the tile horizontal angular amplitude (.sub.tile) and a horizontal overlapping ratio (R.sub.hor).
8. The method according to claim 1, wherein the angular amplitude between two parallel lines (L.sub.j) is constant.
9. The method according to claim 1, wherein the tiles of said set of tiles have the same shape.
10. A network equipment configured for tiling with a set of tiles (600) a sphere (500) representing a spherical multimedia content, said network equipment comprising at least one memory (305) and at least one processing circuitry (304) configured to perform: obtaining (402) an altitude (.sub.j) for each parallel line (L.sub.j) of the sphere (500) comprising one or several centroids of the tiles, each tile being defined as a portion of said sphere covering a tile horizontal angular amplitude (100 .sub.tile) and a tile vertical angular amplitude (.sub.tile); obtaining (403) an angular position (.sub.ij) for each centroid (C.sub.ij) of the tiles arranged on the parallel lines (L.sub.j); determining (404) transformations to be applied to a reference tile to obtain the tiles (600) of the set of tiles, each of said transformations depending on the obtained altitude (.sub.j) and angular position (.sub.ij) of the centroid (C.sub.ij) of a corresponding tile to be obtained.
11. The network equipment according to claim 10, wherein each transformation associated with a corresponding tile of the set of tiles is defined by a rotation matrix.
12. The network equipment according to claim 11, wherein said rotation matrix is a matrix product of two rotation matrices defined by the following equation:
Rot.sub.ij=Rot(y, .sub.ij)*Rot(x, .sub.j) wherein: Rot.sub.ij is the matrix product, Rot(x, .sub.j) is a rotation matrix associated with a rotation of an angle (.sub.a) around an axis x of an orthogonal system of axes x,y,z (R(O,x,y,z)) arranged at a center (O) of the sphere (500), Rot(y, .sub.ij) is a rotation matrix associated with a rotation of an angle (.sub.ij) around the axis y of the orthogonal system.
13. The network equipment according to claim 12, wherein, for said corresponding tile (600), the rotation angle (.sub.ij) around the axis x corresponds to the obtained altitude of a parallel line (L.sub.j) comprising the centroid (C.sub.ij) of the corresponding tile, the rotation angle (.sub.ij) around the axis y corresponds to the obtained angular position of the centroid (C.sub.ij) of said corresponding tile.
14. A method to be implemented at a terminal (100) configured to be in communication with a network equipment (300) to receive a spherical multimedia content represented by a sphere, wherein the method comprises receiving: altitudes (.sub.j) for each parallel line (L.sub.j) of the sphere (500) comprising one or several centroids (C.sub.ij) of tiles tiling said sphere, each tile being defined as a portion of said sphere covering a tile horizontal angular amplitude (.sub.tile) and a tile vertical angular amplitude (.sub.tile); angular positions (.sub.ij) for each centroid (C.sub.ij) of the tiles arranged on the parallel lines (L.sub.j); transformations to be applied to a reference tile to obtain the tiles (600) tiling said sphere, each of said transformations depending on the obtained altitude (.sub.j) and angular position (.sub.ij) of the centroid (C.sub.ij) of a corresponding tile to be obtained.
15. A terminal configured to be in communication with a network equipment (300) to receive a spherical multimedia content represented by a sphere, wherein said terminal comprises at least one memory (106) and at least one processing circuitry (105) configured to receive: altitudes (.sub.j) for each parallel line (L.sub.j) of the sphere (500) comprising one or several centroids (C.sub.ij) of tiles tiling said sphere, each tile being defined as a portion of said sphere covering a tile horizontal angular amplitude (.sub.tile) and a tile vertical angular amplitude (.sub.tile); angular positions (.sub.ij) for each centroid (C.sub.ij) of the tiles arranged on the parallel lines (L.sub.j); transformations to be applied to a reference tile to obtain the tiles tiling said sphere, each of said transformations depending on the obtained altitude (.sub.j) and angular position (.sub.ij) of the centroid (C.sub.ij) of a corresponding tile to be obtained.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0060] The disclosure will be better understood and illustrated by means of the following embodiment and execution examples, in no way limitative, with reference to the appended figures on which:
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071] Wherever possible, the same reference numerals will be used throughout the figures to refer to the same or like parts.
DETAILED DESCRIPTION
[0072] The following description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.
[0073] All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and are to be construed as being without limitation to such specifically recited examples and conditions.
[0074] Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
[0075] Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
[0076] The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term processor or controller should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and nonvolatile storage.
[0077] In the claims hereof, any element expressed as a means and/or module for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
[0078] In addition, it is to be understood that the figures and descriptions of the present disclosure have been simplified to illustrate elements that are relevant for a clear understanding of the present disclosure, while eliminating, for purposes of clarity, many other elements found in typical digital multimedia content delivery methods, devices and systems. However, because such elements are well known in the art, a detailed discussion of such elements is not provided herein. The disclosure herein is directed to all such variations and modifications known to those skilled in the art.
[0079] The present disclosure is depicted with regard to a streaming environment to deliver a spherical multimedia content (such as a VR 360 video) to a client terminal through a delivery network.
[0080] As shown in
[0081] The client terminal 100connected to the gateway 200 through a first network N1 (such as a home network or an enterprise network)may wish to request a VR 360 video stored on a remote network equipment 300 through a second network N2 (such as the Internet network). The first network N1 is connected to the second network N2 thanks to the gateway 200.
[0082] The network equipment 300 is configured to stream segments to the client terminal 100, upon the client request, using a streaming protocol (such as the HTTP adaptive streaming protocol, so called HAS).
[0083] As shown in the example of
[0091] As an example, the client terminal 100 is a portable media device, a mobile phone, a tablet or a laptop, a head mounted device, a set-top box or the like. Naturally, the client terminal 100 might not comprise a complete video player, but only some sub-elements such as the ones for demultiplexing and decoding the media content and might rely upon an external means to display the decoded content to the end user.
[0092] As shown in the example of
[0100] According to the present principles, the network equipment 300 (e.g. via its processor(s) 304 and/or content generator 306) is configured to implement a method 400 (shown in
[0101] As shown in the example of
[0102] The tile horizontal angular amplitude .sub.tile and the tile vertical angular amplitude .sub.tile can be determined by taking into account one or several of the following service parameters of the targeted VR 360 video service: [0103] a network available bandwidth for delivery along a transmission path between the client terminal 100 and the network equipment 300; [0104] a quality of the requested VR 360 video; [0105] a user field of view associated with the viewport of the client terminal 100; [0106] a horizontal over provisioning ratio R.sub.hor, which can be the ratio between 0 and 1 of the intersection surface between two consecutive tiles on a same line L.sub.j, over the surface of a tile 600, (as described in relation to
[0108] The reference tile 600R depicted in
[0113] The central point (so called centroid) C.sub.ij of a tile 600 of the set of tiles can be defined with the spherical coordinates (1, .sub.j, .sub.ij), in the system R(O,x,y,z).
[0114] To determine the centroids of the tiles 600, the network equipment 300 can, in a step 402, obtain an altitude .sub.j for each parallel line L.sub.j of the sphere 500 which comprises one or several centroids C.sub.ij of tiles 600 of the set of tiles. The number of parallel lines L.sub.j depends on the tile vertical angular amplitude stile and the vertical overlapping ratio R.sub.vert. The angle between two consecutive parallel lines L.sub.j can be defined by the following equation:
=.sub.tile(1R.sub.vert)
[0115] It can be derived a list of possible .sub.j values for the centroids C.sub.ij of the tiles 600, given by:
.sub.j=j=.sub.tile(1R.sub.vert)j
wherein j belongs to [0, . . . , N.sub.parallels per hemisphere1] with the maximum number of parallel lines L.sub.j per hemisphere given by N.sub.parallels per hemisphere=90/.
[0116] It is worth noting that the maximum number of parallel lines L.sub.j per hemisphere can be lowered. The most the viewport is close to the poles, the most the navigation becomes a simple rotation around a single point. Consequently, a band of tiles can be less efficient at the poles and can be replaced a by star-shaped layout as described hereinafter. In an illustrative but non-limitative example, the pole case can reduce by one the number of parallel lines per hemisphere, so that the number of parallel lines L.sub.j becomes:
N.sub.parallels per hemisphere=(90/)1.
[0117] Once the parallel lines L, are defined, the network equipment 300 can, in a step 403, further determine the horizontal angular position of the centroids C.sub.ij on the corresponding parallel lines L.sub.j, such as, for instance, they spatially meet the horizontal overlapping ratio R.sub.hor. The number of tiles 600 arranged on a parallel line L, decreases when moving through the poles P, as it is proportional to the circumference of the parallel line L.sub.j. By considering a circumference C.sub.E at the equator E, the circumference C.sub.j for a parallel line L.sub.j at an altitude .sub.j is given by the following formulae:
C.sub.j=C.sub.Ecos .sub.j
[0118] The number of tiles 600 per parallel line L.sub.j can depend on the tile horizontal angular amplitude .sub.tile the and the horizontal overlapping ratio R.sub.hor. In particular, for the parallel line L.sub.0 arranged at .sub.0=0, the angular deviation between two consecutive centroids C.sub.i0 belonging to L.sub.0 is given by:
.sub.0.sub.tile(1R.sub.hor)
so that the number of tiles on the parallel line L.sub.0 can be derived as follows:
N.sub.tiles on parallel L0=360/.sub.0
This leads to a list of possible .sub.i0 values for the tile centroids C.sub.i0 on the parallel line L.sub.0, given by:
.sub.i0=.sub.0i
with i belonging to [0, . . . , N.sub.tiles on parallel L01].
[0119] The number of tiles on a parallel line L.sub.j can then be obtained from the following formulae:
N.sub.tiles on parallel Lj=N.sub.tiles on parallel L0cos(.sub.j)=360cos (.sub.j)/.sub.0
[0120] In addition, the angular deviation between two consecutive centroids arranged on a parallel line L.sub.i is derived from the following equation:
.sub.j=360/N.sub.tiles on parallel Lj=.sub.0/cos(.sub.j)
[0121] For a centroid C.sub.ij arranged on a parallel line L.sub.j, the angular position of the centroid C.sub.ij in the system R(O,x,y,z) can be obtained as follows:
.sub.ij=.sub.ji=.sub.0i/cos(j)
with i belonging to [0, . . . , N.sub.tiles on parallel Lj1].
[0122] .sub.ij represents a rotation angle around axis y with respect to the segment OC and .sub.j a rotation angle around axis x with respect to OC. The segment OC.sub.ij can be obtained by a rotation matrix applied to OC defined (step 404) as follows:
OC.sub.ij=Rot.sub.ij(OC)
with Rot.sub.ij the rotation matrix.
[0123] In an embodiment of the present principles, the rotation matrix Rot.sub.ij can be a matrix product of two rotation matrices defined by the following equation:
Rot.sub.ij=Rot(y, .sub.ij)Rot(x, .sub.j)
wherein: [0124] Rot(x, .sub.j) is rotation matrix associated with a rotation of the angle .sub.j around the x axis of the orthogonal system R(O,x,y,z), and [0125] Rot(y, .sub.ij) is rotation matrix associated with a rotation of the angle .sub.ij around the y axis of the orthogonal system R(O,x,y,z).
[0126] In an embodiment of the present principles, since every tile of the set of tiles has the same shape, to obtain the tile mesh associated with the tile of centroid C.sub.ij (the mesh center of a tile is arranged at the center of said tile), the rotation matrix Rot.sub.ij can be applied, in a step 405, to a reference tile mesh associated with the reference tile 600R of centroid C. The reference tile 600R can serve as a model for all the tiles. The rotation matrix Rot.sub.ij is then applied to all vertices of the reference mesh to obtain the vertices of the tile mesh associated with the tile centered on C.sub.ij.
[0127] In a step 406, the network equipment 300 can determine the pixel content of the tile, e.g. by using a known ray-tracing technique computing ray intersection between the rotated tile shape and a 360 video frame of the VR 360 video projected on the sphere 500.
[0128] It should be noted that few tiles can be distributed in a star-shaped way at each pole P to complete the tiling of the sphere 500. For instance, in an illustrative but non-limitative example, the distribution in a star-shaped way can comprise six tiles (covering a tile horizontal angular amplitude .sub.tile and a tile vertical angular amplitude .sub.tile) on each pole P, regularly arranged (e.g. the angular deviation between the centers C.sub.ij of two consecutives tiles is equal to 60). The axial tilt between the normal axis of a tile at center C.sub.ij and the y axis of the orthogonal system R(O,x,y,z) can be equal to 5.
[0129] As shown in
[0130] Besides, according to the present principles, the streaming controller 103 of the client terminal 100receiving the VR 360 video from the network equipment 300can be further configured to continually select the segments associated with the tiles covering, for instance, the current viewport associated with the terminal 100. In the example of adaptive streaming, the switch from a current tile to a next tileboth comprising the current viewportmay occur only at the end of a video segment and at the beginning of the next one.
[0131] To this end, the client terminal 100 can receive, from the network equipment 300, the values of the tile horizontal and vertical angular amplitudes ((Nile, ewe), in order to be able to regenerate the tile reference mesh. The network equipment 300 can also send all the vertices of the reference tile 600R to terminal 100 and the list of rotation matrices Rot,.sub.i to be applied to the tile reference mesh to obtain the tiles covering the sphere 500. In a variant, the network equipment can only share with the terminal 100 the polar coordinates of the centroid C.sub.ij, when the terminal 100 is configured to dynamically re-compute the rotation matrices by using appropriate mathematic libraries.
[0132] In an illustrative but non-limitative example of the present principles shown in
[0133] In the example, the 4K video tiles are delivered to the terminal 100 with a horizontal FOV equal to 120 and a vertical FOV equal to about 72 (to respect the 16:9 ratio of the VR 360 video). By considering a horizontal overlapping ratio R.sub.hor equal to along the equator E between two consecutive tiles (leading to a horizontal angular overlap of 90, the shift between two consecutive tiles is equal to 30, so that twelve tiles are defined on the equator E (parallel line L.sub.0). The same operation can be applied vertically when moving from south to north pole P. The angular vertical overlap is equal to 51 when considering a vertical overlapping ratio R.sub.vert equal to , meaning that the vertical shift from a crown of tiles to the upper one is equal to 17, so that eleven tiles can be arranged on a given meridian of the sphere. Besides, few tiles are organized in a star-shaped way at each pole P to complete the tiling of the sphere representing the VR 360 video. In the end, about seventy tiles are required to cover the whole sphere.
[0134] Thanks to the above described method, by delivering only a portion of the scene, the ratio of video quality over data bitrate can be controlled and a high-quality video on client side can be obtained, even with network bandwidth constraints. In addition, by generating a tile larger than the viewport and adapted to the display ratio, a minimal user navigation in the video without disruption can be provided. Furthermore, by building the same shape of tiles for all viewports, it can prevent from reducing the quality on the poles.
[0135] References disclosed in the description, the claims and the drawings may be provided independently or in any appropriate combination. Features may, where appropriate, be implemented in hardware, software, or a combination of the two.
[0136] Reference herein to one embodiment or an embodiment means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one implementation of the method and device described. The appearances of the phrase in one embodiment in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
[0137] Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
[0138] Although certain embodiments only of the disclosure have been described herein, it will be understood by any person skilled in the art that other modifications, variations, and possibilities of the disclosure are possible. Such modifications, variations and possibilities are therefore to be considered as falling within the spirit and scope of the disclosure and hence forming part of the disclosure as herein described and/or exemplified.
[0139] The flowchart and/or block diagrams in the Figures illustrate the configuration, operation and functionality of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, or blocks may be executed in an alternative order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of the blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. While not explicitly described, the present embodiments may be employed in any combination or sub-combination.