METHOD AND DEVICE FOR GENERATING A DESCRIPTION FILE, AND CORRESPONDING STREAMING METHOD
20190320001 ยท 2019-10-17
Inventors
Cpc classification
H04N19/25
ELECTRICITY
H04N21/845
ELECTRICITY
International classification
H04N19/25
ELECTRICITY
H04N21/858
ELECTRICITY
H04N21/647
ELECTRICITY
Abstract
The present invention relates to a method and device for generating a description file about a video sequence at a server device for a client device, to retrieve a video segment and containing a region of interest. The method comprising for each video segment, determining a time interval during which the detected region of interest is spatially included in a same frame region in the video sequence; and generating a description file comprising spatial information describing the frame region and temporal information describing a duration at least equal to the determined time interval.
Claims
1. A communication apparatus for transmitting a video having a plurality of image frames to another communication apparatus, the communication apparatus comprising: a reception unit configured to receive from the another communication apparatus a request for description data; a first transmission unit configured to transmit, to the another communication apparatus which transmits the request for description data received by the reception unit, description data including first positional information indicating a spatial position of a partial region in a first image frame among the plurality of image frames; and a second transmission unit configured to transmit image data which is encapsulated in order to allow an independent transmission of an image of the partial region to the another communication apparatus based on a request from the another communication apparatus which receives the description data transmitted by the first transmission unit, wherein the first positional information is represented by top left corner position followed by width and height.
2. The communication apparatus according to claim 1, wherein the description data includes second positional information indicating a spatial position of a partial region in a second image frame among the plurality of image frames.
3. The communication apparatus according to claim 1, further comprising: a detection unit configured to detect an object from an image frame of the video, and a generation unit configured to generate the description data based on a detection result obtained by the detection unit.
4. The communication apparatus according to claim 1, further comprising: a detection unit configured to detect an object from an image frame of the video; a specifying unit configured to specify a time period during which the detected object is spatially included in a same frame region of the video; and a generation unit configured to generate the description data based on the time period specified by the specifying unit.
5. The communication apparatus according to claim 1, wherein the description data is Media Presentation Description defined by MPEG-DASH.
6. The communication apparatus according to claim 3, wherein the first positional information included in the description data is coordinate data representing the spatial position of the partial region.
7. A communication method to transmit a video having a plurality of image frames from a first communication apparatus to another communication apparatus, wherein the first communication apparatus: receive, by a reception unit, from the another communication apparatus a request for description data; transmit, by a first transmission unit, to the another communication apparatus which transmits the request for description data received by the reception unit, description data including first positional information indicating a spatial position of a partial region in a first image frame among the plurality of images frames; and transmit, by a second transmission unit, image data which is encapsulated in order to allow an independent transmission of an image of the partial region to the another communication apparatus based on a request from the another communication apparatus which receives the description data transmitted by the transmission unit, wherein the first positional information is represented by top left corner position followed by width and height.
8. The communication method according to claim 7, wherein the description data includes second positional information indicating a spatial position of a partial region in a second image frame among the plurality of image frames.
9. The communication method according to claim 7, further comprising: detect, by a detection unit, an object from an image frame of the video; and generate, by a generation unit, the description data based on a detection result obtained by the detection unit.
10. The communication method according to claim 8, further comprising: detect, by a detection unit, an object from an image frame of the video; specify, by a specifying unit, a time period during which the detected object is spatially included in a same frame region of the video; and generate, by a generation unit, the description data based on the time period specified by the specifying unit.
11. The communication method according to claim 7, wherein the description data is Media Presentation Description defined by MPEG-DASH.
12. The communication method according to claim 9, wherein the first positional information included in the description data is coordinate data representing the spatial position of the partial region.
13. A communication apparatus that receives a video having a plurality of image frames from another communication apparatus, the communication apparatus comprising: a transmission unit configured to transmit to the another communication apparatus a request for description data; a reception unit configured to receive, from the another communication apparatus which receives the request for description data transmitted by the transmission unit, description data including first positional information indicating a spatial position of a partial region in a first image frame among the plurality of image frames; and wherein the transmission unit is further configured to transmit a request for the independent transmission of an image of the partial region determined in the first image frame, and wherein the first positional information is represented by top left corner position followed by width and height.
14. The communication apparatus according to claim 13, wherein the description data includes second positional information indicating a spatial position of a partial region in a second image frame among the plurality of image frames.
15. The communication apparatus according to claim 1, wherein the description data is Media Presentation Description defined by MPEG-DASH.
16. A communication method to receive, by a communication apparatus, a video having a plurality of image frames from another communication apparatus, wherein the communication apparatus: transmit, by a transmission unit, to the another communication apparatus a request for description data; receive, by a reception unit, from the another communication apparatus which receives the request for description data transmitted by the transmission unit, description data including first positional information indicating a spatial position of a partial region in a first image frame among the plurality of image frames; and transmit, by the transmission unit, a request for the independent transmission of an image of the partial region determined in the first image frame, wherein the first positional information is represented by top left corner position followed by width and height.
17. The communication apparatus according to claim 16, wherein the description data includes second positional information indicating a spatial position of a partial region in a second image frame among the plurality of image frames.
18. The communication apparatus according to claim 1, wherein the description data is Media Presentation Description defined by MPEG-DASH.
19. A computer-readable storage medium storing instructions of a computer program for implementing a method according to claim 7.
20. A computer-readable storage medium storing instructions of a computer program for implementing a method according to claim 16.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0097] Other particularities and advantages of the invention will also emerge from the following description, illustrated by the accompanying drawings, in which:
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0109] In
[0110] As shown, video segments 101 and their associated manifest 105 are referenced from a Web page 100, representing a Web application.
[0111] In the present embodiment, it is for example assumed that the video segments 101 are described in a manifest called Media Presentation Description or MPD 105 as specified by the 3GPP/MPEG/DASH standard. More particularly, these segments 101 may be generated in an mp4 format.
[0112] The Web page 100 is for example written in HTML5 and potentially embedding JavaScript code to enable users to interact with its contents. The Web page 100 is communicated by an HTTP server 108 to a client 110 through a communication network. Following the selection of a video segment referenced in the Web page, a request message 111 is sent by the client 110 in response to which the HTTP server streams the selected video segment 112. For instance, the client 110 is either an HTML5 player or a Web browser.
[0113]
[0114] The MPD comprises several syntax elements names <Period> 201, 202, 203 . . . each one corresponding to a period, here defined by a start time (attribute start=x s). The period elements could also be defined with a duration attribute. The organization of the video into periods is realized by a MPD generator 200. The MPD generation process which is described more in detail below.
[0115] The <Period> element 201 is described more specifically here. The element is described by an URL named baseURL which allows the client to retrieve the base layer for the considered time period. In addition several adaptation set elements are incorporated: one for video description 2011 and one for audio description 2012. Each adaptation set is associated to a given track. In this example, the first group adaptation set 2011 is associated to the video track, and the second adaptation set 2012 is associated to the audio track corresponding to said video track for the considered time period.
[0116]
[0117] The second representation 20112 gets a bandwidth of 250 kbits/s, a width of 640 pixels and a height of 480 pixels. This representation is correlated to a particular portion or region of the frames of the video track, signalled with the region attribute that provides top left corner position followed by width and height. The spatial definition of this region is explained more in detail below.
[0118] The Segment Info field 20111a is detailed on the right part of the
[0119]
[0120] In this embodiment, the process implemented by the device 300 is done off-line, meaning before the user starts sending the requests. In this embodiment the encapsulation of a video 301 is performed after a compression done by a video encoder 302.
[0121] This video encoder 302 takes as input the original video sequence 301 to generate a compact bitstream 303 that is compliant to a standard video compression format like for example H264 or HEVC, which could be with scalable extensions. The bitstream 303 is here considered as being a scalable bitstream made up of a base layer and of at least one spatial enhancement layer. As explained more in detail below, the spatial enhancement layer may be organized into independent tiles.
[0122] In this embodiment, the original video sequence 301 is also analysed by an object content recognition module 304. This module 304 can for example detect faces, follow moving characters or objects in the scene and generate either automatically or in a semi-automatic way by interactions with a user/client 305 potential regions of interest (ROI). The device 300, the video encoder 302 and the object content recognition module 304 can for example be embedded into a camera or a camcorder. The extracted regions of interest are stored as metadata information in a memory 306 and contain the position of the regions of interest along time ROI_position(t), 306a. Both bitstream 303 and metadata information 306a are provided as input of a ROI analyser module 307. This module compares from one frame to another the positions of each extracted ROI. In the case of a spatial enhancement layer of the compressed video that is organized into tiles, the tiles newly covered by the ROI are detected (in comparison to the previous frame).
[0123] As a variation, the ROI analyser module 307 is able to compare the position of each extracted region of interest frame by frame by using the ROI's coordinates.
[0124] An embodiment of the method implemented in the ROI analyser module 307 is detailed in the
[0125] This encapsulation is performed by an mp4 generator 308 to provide the downloadable mp4 segments 101. In parallel, a MPD generator 309 builds the corresponding description or manifest file: the MPD 105.
[0126] It has to be noticed that the analyser 307 can also be embedded in the camera or camcorder but can also run on a cloud server where the video and the ROI related metadata would have been uploaded by the user for distribution on the Web. Also to mention, the bitstream 303 can be an already encapsulated bitstream with or without segments 101 and associated MPD 105 that would be transformed by the analyser 307 into new segments 101 and associated MPD 105.
[0127]
[0128] According to one embodiment, the device 400 is preferably embedded with the imaging device (camera or camcorder for example). In this variation, the analysis implemented in the ROI analyser 307 is performed in parallel with the encoding realized by the video encoder 302 and could then act on encoding parameters, like for example forcing an intra-coded frame at each segment boundary.
[0129]
[0130] The video also comprises a spatial enhancement layer 506 at 4k2k resolution encoded for example as a set of independently compressed tiles 501 (numbered 1 to 12 on the figure). The first frame of the enhancement layer segment is referenced 500 and the last frame 502.
[0131] An example of region of interest is illustrated: it covers two tiles 3 and 7 (tiles defined by dotted lines).
[0132] The base layer 505 is always transmitted to the client after receiving a request for retrieving the video frames. The spatial enhancement layer 506 is transmitted according to the bandwidth's availability or when a user decides to zoom into the video.
[0133]
[0134]
[0135] On first step 601, a new MPD is initialized and prepared by the MPD generator 309 mentioned above. Two values, start_time and end_time maintained by by the ROI analyser, are initialized to 0. These values represent the time bounds for the current video segment under construction. It also allocates some memory for the storage of the set of tiles covered by the extracted regions of interest.
[0136] Then the positions for the ROIs defined in the first frame are determined by the analyser 307 at step 602. More specifically, they are obtained by reading the ROI position metadata information from memory 306 related to the first frame.
[0137] Then the set of tiles covered by each region of interest are determined at step 603. In a preferred embodiment, the tiles positions consist in a regular grid covering the whole frame. The tiles can be referenced by an index to signal their position within the grid. In such case, the mapping of ROI position to tile indexes is direct. In alternative embodiment where tiles would not consist in a regular grid, the grid positions would have to be signalled either via additional metadata accompanying the bitstream 303 or embedded into the bitstream 303 for example in extended SEI (for Supplemental Enhancement Information) messages.
[0138] Next step 604 consists for the analyser 307 in checking whether the current set of tiles is different than the previous one, for instance by comparing the indexes of the covered tiles. If it is not the case, the analyser 307 moves to next frame at step 605 and loops until no more frames are available (the test made in step 605 is false).
[0139] If the set of tiles changed with this current frame (answer is yes to the test made in step 604), then decision has to be taken by the analyser 307 on whether to build a new segment or not. Building a new segment will provide better temporal granularity access but will decrease compression performance (especially in case of a live analysis process is implemented because the encoder may encode the corresponding frame in Intra mode). Also to consider at this step, the fact that the shorter the segment is, the greater the number of HTTP requests/responses will be necessary to stream the video. Thus the analyser 307 does not automatically create new segments when the set of covered tiles changes in a low proportion.
[0140] Thus at step 606, the ratio between the portion of the tiles that the ROI newly covers, regarding the whole size of these new tiles is compared to a threshold Th. In case of live analysis, this is the portion of the newly covered tiles regarding the encoded size of the corresponding new covered tiles which is compared to the threshold Th. This threshold Th is preferably expressed in terms of a ratio of coverage of new tiles (ex: 25%). As a variation the ratio could also be a minimal duration for the segments including the newly covered tiles regarding the video segment length. In other words, for a current frame with new tiles covered, if the current segment under construction does not reach a minimal length, a new segment will not be created and the frame will be appended in the current segment under construction. This threshold Th actually provides a trade-off between the HTTP roundtrips to access the ROI and the overhead of information sent for a region of interest. Indeed, when requesting a region of interest, the covered set of tiles is transmitted. If each newly covered tile would imply a new video segment even if the newly covered portion is very low, the number of generated segments would significantly increase, and so would the number of HTTP requests/responses. When a non-significant part of a tile is covered, it is not optimal to send this tile and it is better to wait until a more significant coverage is reached. The impact of the missing portion of the region of interest is acceptable compared to the bandwidth gain.
[0141] If the threshold Th is reached (the test undertaken in step 606 is true), the analyser 307 updates its end_time to current_time during the step 607. It signals at step 608, to the mp4 generator 308 to terminate the current segment and to the MPD generator 309 to terminate the current Period element of the description.
[0142] These are the objects of step 608 and current start_time and end_time are used in indexing information of the segments and in the description of the Period in the MPD (start and duration attributes for example). After that, the analyser 307 sets its start_time to end_time, step 609, and the MPD generator 309 initiates a new Period elements and the mp4 generator prepares a next segment file. Then, the analyser 307 moves to the next frame (if present, see test 605) and iterates until no more frames are to be processed, step 610. At the end of the video sequence, the description file (MPD) is finalized (step 610) by the MPD generator 309. It consists in closing the current Period element in term of XML syntax as well as the root MPD element, so that the MPD is well-formed and valid with respect to XML syntax and the MPD scheme.
[0143] Another embodiment may consist in creating a new element in a single Period, instead of considering various (or multiple) Period elements. With this aim in view, an element called SegmentList element is used. The SegmentList element allows describing the tile representation, as an alternative of the embodiment which uses multiple Period elements and BaseURL elements (904, 908, 912). More precisely, the SegmentList element allows accessing the tile data on the different computed time intervals. Then, each time step 608 is reached, a new SegmentURL element is appended to the SegmentList element with the appropriate URL to reach the segment. Of course, in this embodiment this would require a syntax extension related to the new region attribute to be placed on the SegmentURL element (it is well known by the man skilled in the art that the MPD schema allows extension of this element in terms of attribute).
[0144] The segment creation for scalable video implemented in step 608 is illustrated in
[0145] The results provided by the ROI analysis module 307 are the Period 1 and Period 2 that have been detected, respectively from frame i to j and from frame j to k, based on the ratio of newly covered area in the new tiles (ex: with frame at time j) as explained in previous paragraph. The first period Period 1 is bounded by Start_time_i and Start_time_j. The second Period is bounded by Start_time_j and Start time k.
[0146]
[0147] Thus if the client will to get only the ROI data for the Period 1, only the base layer segment 700i and the ROI tiles segment 701i are downloaded.
[0148] If the user will to get to get only the ROI data for the Period 2, only the base layer segment 700j and the ROI tiles segment 701j are downloaded.
[0149] In a more general case, meaning no ROI data are requested during the Period 1 and the Period 2, only the base layer data 700i and 700j and the whole spatial enhancement layer frames 702i and 702j are transmitted. 700k segments would be downloaded for a Period3, from start_time_k to the end of the sequence.
[0150] In other words, if the user keeps on watching the video through the ROI after start time j, the streaming client device will download the data from base layer segment 700 and the tile data from enhancement layer 701 that correspond to the new ROI position. Then after start time k, the client device would download the segments corresponding to the following Period (not represented here).
[0151]
[0152] Some of segments 802, 804 and 806 are particularly long (in term of duration) compared to the others. This is due to the threshold Th previously mentioned, which prevents over-generation of segments oscillating between two or three tiles instead of the unique segment 802 for instance.
[0153]
[0154] In this example, the elements that provide segmentation information according to the invention are (in bold letter): [0155] a period start and a period duration, 901, 905 and 909 (909 being an optional attribute), [0156] the description of the tiles (region) in terms of representation with its addressable segments: 903, 907 and 911, [0157] the references to the segments involved for the concerned period, 902 (base layer), 904 (ROI segments) for Period1, 906 (base layer), 908 (ROI) for Period2, 910 (base layer) and 912 (ROI) for Period3.
[0158]
[0159] The server sends the requested description file to the client (step 1001).
[0160] This description file is interpreted by the client, in particular to know if spatial access is possible for this video sequence (step 1002).
[0161] The client can request a region of interest (ROI) from the server, based on his interpretation of the description file (step 1003). The regions of interest have been computed by the server according to one of the embodiments mentioned previously.
[0162] Then, the server sends the segments to the client, said segments corresponding to the client's request (step 1004).
[0163] Finally, the client can decode and display the segments that it received (step 1005).
[0164] Many further modifications and variations may be considered by persons skilled in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims.