EP3635960A1 - Procede de transmission d'une video immersive - Google Patents
Procede de transmission d'une video immersiveInfo
- Publication number
- EP3635960A1 EP3635960A1 EP18728165.4A EP18728165A EP3635960A1 EP 3635960 A1 EP3635960 A1 EP 3635960A1 EP 18728165 A EP18728165 A EP 18728165A EP 3635960 A1 EP3635960 A1 EP 3635960A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- pixels
- immersive video
- block
- video
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234345—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4728—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Definitions
- the present invention relates to a method for transmitting an immersive video to a plurality of users, a system and a device capable of implementing the method.
- immersive video delivery systems no longer require dedicated rooms with a "360" degree screen and a plurality of image projection devices each projecting a video point of view. immersive. It is now possible to obtain a system for broadcasting immersive videos from glasses, called immersive glasses or 3D immersive glasses, including an integrated image display device.
- This simpler mode of implementation makes it possible to envisage a democratization of immersive video broadcasting systems.
- users will be able to view immersive videos in their home.
- These immersive videos will be provided for example by operators and transmitted through communication networks such as the Internet, just like what is currently done with the dissemination of 2D videos over the Internet.
- Fig. 1 schematically illustrates an example of immersive video broadcasting system 1.
- a user 12 carries a pair of immersive glasses 13.
- This pair of immersive glasses 13 comprises a processing module 131 and a non-image display module. represent.
- the image display module comprises for example a screen facing each user's eye 12.
- the image display module allows the user to view a "360" video symbolized by a ring 10 in FIG. 1.
- the immersive video has been received by the processing module 131 of a server via a communication network, and then decoded by the processing module 131 before it is displayed on the display module. images.
- the immersive video broadcasting system 1 defines a simple geometrical shape (here, a ring, but other shapes are possible such as a sphere, a dome or a cube) on which the video is plated. immersive.
- the user 12 only sees part of the immersive video limited by his visual field.
- the user 12 only sees a spatial sub-part 11 of the immersive video facing him. The rest of the immersive video is used only if the user 12 changes his point of view on the video.
- an immersive video In addition to offering a user perspective much wider than a classic HD video ("High Definition" in English terminology: 1920x1080 pixels), an immersive video generally has a spatial resolution and a temporal resolution clearly superior to a classic HD video. Such characteristics imply a very large throughput that can be difficult to support by a network.
- the user receives the immersive video in full spatial and temporal resolution.
- the communication network must therefore support a relatively large flow. This speed is all the more important as many users can receive the same immersive video at the same time.
- each user receives only a spatial sub-part of the immersive video corresponding to his point of view.
- latency issues arise in this type of system as soon as a user changes their point of view on immersive video. Indeed, when a user changes his point of view, he must inform the server that he has changed his point of view, and the server must respond by transmitting to the user a spatial subpart of the video corresponding to the new point of view.
- the present invention relates to a method for transmitting an immersive video between a network unit and at least one viewing equipment allowing a plurality of users to simultaneously view said immersive video, the unit network and every equipment of visualization being connected by a communication network, the immersive video comprising a series of sets of images, each image being composed of blocks of pixels, the immersive video being transmitted in encoded form according to a predetermined video compression standard to each equipment of visualization.
- the method is implemented by the network unit and comprises for each set of images: obtaining information representative of a point of view on the immersive video observed by each user; determining at least one image zone, said privileged zone, corresponding to at least a part of the points of view; for each image included in the set of images, applying to pixel blocks not belonging to a privileged area, an average compression ratio higher than an average of the compression ratios applied to the blocks of pixels belonging to one privileged area; and, transmitting the set of images to each viewing equipment.
- the flow rate of the immersive video is reduced with respect to an immersive video transmitted in full quality whatever the viewpoints since the zones of the images situated outside the privileged zone corresponding to a zone of the immersive video observed by a majority of users are encoded in a lower quality.
- the network unit obtains the immersive video in uncompressed form and encodes the immersive video according to the predetermined video compression standard or the network unit obtains the immersive video in a compressed form and transcodes the immersive video of so that it is compatible with the predetermined video compression standard.
- the method comprises: determining for each point of view, a spatial sub-part of the immersive video corresponding to said point of view; determine a center for each spatial subpart; determining a centroid of at least a portion of the centers of the spatial subparts; and defining a rectangular area centered on the center of gravity, said rectangular area forming a preferred area, the rectangular area having predefined dimensions or determined according to a rate available on the communication network.
- the method comprises: determining for each point of view, a spatial sub-part of the immersive video corresponding to said point of view; determining at least one union of the overlapping spatial sub-parts; and, for each group of spatial sub-parts resulting from a union, define a zone rectangular encompassing said group of spatial subparts, each rectangular area forming a preferred area.
- the method further comprises: adding to the defined spatial sub-parts as a function of the viewpoints, at least one predefined spatial sub-part, or defined from statistics on user's points of view on said immersive video during other immersive video visualizations.
- the method further comprises: associating with each defined spatial sub-part as a function of a point of view, called a current spatial sub-part, a spatial sub-part, referred to as an extrapolated spatial sub-part, defined according to a position of the current spatial sub-part and information representing a movement of a user's head corresponding to this point of view, the current and extrapolated spatial sub-parts being taken into account in the definition of each privileged area.
- the invention relates to a network unit adapted to implement the method according to the first aspect.
- the invention relates to a system comprising at least one display equipment enabling a plurality of users to simultaneously view an immersive video and a network unit according to the second aspect.
- the invention relates to a computer program comprising instructions for implementing, by a device, the method according to the first aspect, when said program is executed by a processor of said device.
- the invention relates to storage means, storing a computer program comprising instructions for implementing, by a device, the method according to the first aspect, when said program is executed by a processor of said device.
- FIG. 1 schematically illustrates an example of an immersive video broadcasting system
- FIG. 2 schematically illustrates spatial sub-parts of an immersive video viewed by a plurality of users
- FIG. 3 schematically illustrates a system in which the invention is implemented
- FIG. 4 schematically illustrates an example of hardware architecture of a residential gateway according to the invention
- FIG. 5 schematically illustrates a method of adapting an immersive video to a set of users' points of view
- FIG. 6A, 6B and 6C schematically illustrate three exemplary methods for defining at least one image zone, called the privileged zone, in which the pixel blocks must have on average a lower compression ratio than blocks of pixels that do not belong to one another. not to a privileged area;
- FIG. 7A schematically illustrates the successive partitionings suffered by a video image during a HEVC encoding
- FIG. 7B schematically represents a method of encoding a video stream compatible with the HEVC standard
- FIG. 7C schematically represents a method of decoding according to the HEVC standard
- FIG. 8 schematically represents an adaptation method for adapting an unencoded video
- FIG. 9 schematically represents an adaptation method for adapting an encoded video.
- the invention is described in the context of a plurality of users each using viewing equipment such as immersive glasses comprising a processing module.
- Each user views the same immersive video, but potentially from different perspectives.
- Each user can move away from or approach the immersive video, turn, turn, head up, etc. All these movements change the point of view of the user.
- the invention is, however, adapted to other visualization equipment such as a viewing equipment including a room dedicated to the broadcasting of immersive videos equipped with a "360" degree screen or a dome-shaped screen and a plurality of image projection devices each projecting a portion of an immersive video.
- Each image projection device is then connected to an external processing module. Users can then move around the room and watch the immersive video from different perspectives.
- Fig. 3 schematically illustrates a system 3 in which the invention is implemented.
- the system 3 comprises a server 30 connected by a Wide Area Network (WAN) 32 such as an Internet network to a residential gateway 34 ("gateway" in English terminology), simply called gateway thereafter, located for example in a dwelling.
- the gateway 34 makes it possible to connect a local area network 35 ("LAN: Local Area Network”) to the wide area network 32.
- the local area network 35 is for example a wireless network such as a Wi-Fi network (ISO / IEC 8802-11).
- a plurality of identical clients 131A, 131B and 131C, each included in a pair of immersive spectacles are connected to the bridge by the local network 35.
- Each pair of immersive glasses is worn by a user who can walk in the housing to get different views on the immersive video.
- each pair of immersive glasses includes a positioning module adapted to determine information representative of the user's point of view on the immersive video.
- the server 30 stores the immersive video in full spatial and temporal resolution as an uncompressed or compressed video bit stream according to a video compression standard such as the MPEG-4 visual video compression standard (ISO / IEC 14496-2) , the H.264 / MPEG-4 AVC standard (ISO / IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding (ITU-T H.264)) or the standard H.265 / MPEG-4 HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding) / ITU-T H.265).
- Immersive video is composed of a series of images, each image being composed of blocks of pixels.
- the server 30 is adapted to broadcast the immersive video to the gateway 34.
- the gateway 34 comprises an adaptation module 340 capable of adapting the immersive video to the points of view of a set of users so as to satisfy a maximum users.
- the process could work just as well without a server.
- the gateway that stores the immersive video in addition to being responsible for adapting it and transmitting it to the clients 131A, 131B and 131C.
- Fig. 2 schematically illustrates spatial sub-parts of an immersive video viewed by a plurality of users.
- FIG. 1 the ring has been unfolded so that the video appears in a plane. It is assumed that in FIG. 2, the three users view different points of view.
- the user using the immersive spectacles comprising the processing module 131 A displays the sub-part 11 A.
- the user using the immersive spectacles comprising the processing module 131B displays the area 11B.
- the user using the immersive glasses including the processing module 131C visualizes the zone 11C.
- the user using the immersive glasses including the processing module 131 A has a more distant point of view on the video than the other two users which explains that the sub-part 11 A is larger than the sub-parts 11C and 11B .
- the user using the immersive glasses comprising the processing module 131C is oriented on the immersive video to the left than the user using the immersive glasses including the processing module 131B.
- Fig. 4 schematically illustrates an example of hardware architecture of the adaptation module 340.
- the adaptation module 340 then comprises, connected by a communication bus 3400: a processor or CPU ("Central Processing Unit" in English) 3401; Random Access Memory (RAM) 3402; a Read Only Memory (ROM) 3403; a storage unit or a storage medium reader, such as a 3404 Secure Digital (SD) card reader; a set of communication interfaces 3405 enabling the adaptation module 340 to communicate with the server 30 through the wide area network 32 and with each client 131 through the local area network 35.
- a communication bus 3400 a processor or CPU ("Central Processing Unit" in English) 3401; Random Access Memory (RAM) 3402; a Read Only Memory (ROM) 3403; a storage unit or a storage medium reader, such as a 3404 Secure Digital (SD) card reader; a set of communication interfaces 3405 enabling the adaptation module 340 to communicate with the server 30 through the wide area network 32 and with each client 131 through the local area network 35.
- the processor 3401 is capable of executing instructions loaded into the RAM 3402 from the ROM 3403, an external memory (not shown), a storage medium, such as an SD card, or a memory card. communication network.
- the processor 3401 is able to read instructions from RAM 3402 and execute them. These instructions form a computer program causing the processor 3401 to implement the method described in relation to FIGS. 5.
- All or part of the process described in connection with FIG. 5 can be implemented in software form by executing a set of instructions by a programmable machine, such as a DSP ("Digital Signal Processor” in English) or a microcontroller, or be implemented in hardware form by a machine or a device.
- a dedicated component such as an FPGA ("Field Programmable Gate Array") or an ASIC ("Application-Specific Integrated Circuit").
- Fig. 5 schematically illustrates a method of adapting an immersive video to a set of user points of view to best satisfy a maximum of users.
- the process described in connection with FIG. 5 is executed by the adaptation module 341 of the gateway 34.
- this method could equally well be implemented by an adaptation module 341 independent of the gateway 34 and located between the gateway 34 and each client 131A, 131B, or 131C.
- the adaptation module could also be included in a node of the network located between the server 30 and the gateway 34 such as a DSLAM (digital subscriber line access multiplexer: "Digital Subscriber Line Access Multiplexer "in English terminology).
- DSLAM digital subscriber line access multiplexer: "Digital Subscriber Line Access Multiplexer "in English terminology).
- a role of the adaptation module 340 is to adapt the immersive video so that it satisfies a maximum of users in terms of display quality and in terms of responsiveness in case of change of point of view.
- the adaptation module can adapt each image of the immersive video so as to satisfy a majority of users.
- the adaptation module 340 obtains from the client 131A (respectively 131B and 131C) information representative of a point of view observed by the user corresponding to said client.
- each information Representative of a viewpoint includes an azimuth, an elevation angle and a distance.
- the adaptation module 340 determines at least one image zone, called the privileged zone, corresponding to at least a part of the points of view.
- the adaptation module 340 determines at least one image zone, called the privileged zone, corresponding to at least a part of the points of view.
- a step 503 for each image following the determination of at least one privileged zone, the adaptation module 340 applies to the blocks of pixels not belonging to a privileged zone, during an encoding or a transcoding, a rate compression ratio on average higher than an average of the compression rates applied to the blocks of pixels belonging to a privileged area.
- Step 503 makes it possible to obtain a video stream corresponding to the immersive video adapted to the points of view of the users.
- Each image in this immersive video has superior quality in at least one area viewed by a majority of users and a lower quality in the rest of the image. We detail various embodiments of this step.
- the average of the compression ratios of the pixel blocks of the privileged zones and the average of the compression ratios of the blocks not belonging to a privileged zone depend on an available bit rate on the network 35.
- a step 504 the video stream thus obtained is transmitted to each viewing equipment using the local area network 35.
- the method is implemented following a change of points of view of a majority of users.
- Figs. 6A, 6B and 6C schematically illustrate three exemplary methods for defining at least one image zone, called the privileged zone, in which the pixel blocks must have on average a lower compression ratio than blocks of pixels that do not belong to one another. not to a privileged area.
- the blocks of pixels belonging to a privileged area will therefore have on average a higher quality than the blocks of pixels that do not belong to a privileged zone. In this way, the areas of immersive video images that are seen by users or at least viewed by a majority of users are favored.
- the methods described in connection with FIGS. 6A, 6B and 6C correspond to step 502.
- step 5020 from each information representative of a point of view, the adaptation module 340 determines a spatial sub-part of the immersive video corresponding to said point of view.
- each spatial sub-part is a rectangle aligned with pixel block boundaries.
- the adaptation module 340 determines a center for each spatial subpart.
- the adaptation module 340 determines a barycentre of the centers of the spatial sub-parts, that is to say a point that minimizes a sum of the distances between said point and each center.
- the center of gravity is a point that minimizes a distance to a predefined percentage of centers. The predefined percentage is for example 80%.
- the adaptation module 340 defines a rectangular area centered on the center of gravity, said rectangular area forming a privileged area.
- the rectangular area has predefined dimensions.
- the rectangular area has dimensions equal to an average of the dimensions of the spatial subparts.
- the adaptation module determines the dimensions of the rectangular zone as a function of a flow available on the network 35. When said flow rate is low, less than a first flow rate threshold, the dimensions of the rectangular zone are equal to predefined mean dimensions of a spatial sub-part, which makes it possible to fix minimum dimensions for the rectangular zone.
- the dimensions of the rectangular zone are equal for example to twice the predefined mean dimensions of a spatial sub-part, which makes it possible to set maximum dimensions of the zone. rectangular.
- the dimensions of the rectangular zone increase linearly as a function of the flow rate between the predefined mean dimensions of a spatial sub-part and twice the predefined mean dimensions of a spatial subpart.
- the bit rate allows, we extend the privileged area to allow a user who would change their point of view, to have a good quality immersive video display despite this change.
- the first and second rate thresholds are equal.
- step 5024 identical to step 5020.
- the adaptation module 340 determines a union of the spatial sub-parts.
- a union is only formed for the overlapping spatial subparts.
- the matching module defines a rectangular area encompassing said group of spatial subparts. Each rectangular area then forms a privileged area.
- spatial subgroup groups with few spatial sub-parts, for example having a number of spatial sub-parts less than a predetermined number, are not considered to define a privileged area.
- each block of pixels of an image is classified into a category based on the number of times that block of pixels appears in a spatial sub-part. It is thus possible to form a plurality of categories of pixel blocks.
- a first category is for example a category of blocks of pixels not appearing in any spatial sub-part.
- a second category includes blocks of pixels appearing at least N times in a spatial sub-part. N is an integer equal to, for example, "5".
- a third category includes blocks of pixels that do not appear in either the first or the second category.
- the adaptation module 340 forms in a step 5029 a first privileged area from the blocks of pixels belonging to the second category and a second preferred area from the blocks of pixels belonging to the third category.
- the privileged areas whose dimensions are smaller than the predefined mean dimensions of a spatial sub-part are deleted.
- the blocks of pixels belonging to these eliminated zones are considered as not belonging to a privileged zone.
- the spatial sub-parts corresponding to the users' points of view are added to at least one predefined spatial sub-part, for example by a developer of the immersive video, or defined from statistics on users' views on said immersive video during other immersive video visualizations.
- each spatial sub-part corresponding to a user's point of view called the current spatial sub-part
- the immersive glasses of the user include a motion measurement module.
- the client 131 obtains motion information from the motion measurement module and transmits this information to the adaptation module 340.
- the motion information is for example a motion vector. From the motion information and a position of the current spatial sub-part, the adaptation module determines a position of the extrapolated spatial sub-part. The set formed of common spatial sub-parts and extrapolated spatial sub-parts is then used in the following processes described in relation to FIGS. 6A, 6B and 6C.
- each image of the immersive video considered during the period P is compressed according to a video compression standard or transcoded so that it is compatible with the video compression standard.
- the video compression standard used is HEVC.
- Figs. 7A, 7B and 7C describe an exemplary implementation of the HEVC standard.
- Fig. 7A illustrates the successive partitionings undergone by a pixel image 72 of an original video 71, when it is encoded according to the HEVC standard.
- a pixel is composed of three components: a luminance component and two chrominance components.
- the image 72 is initially divided into three slices ("slices" in English terminology).
- a slice is an area of an image that can cover an entire image or only a portion, such as slice 73 in FIG. 7A.
- a slice comprises at least one segment segment ("slice segment" in English terminology) optionally followed by other slice segments.
- the slice segment in first position in the slice is called independent slice segment ("independent slice segment" in English terminology).
- An independent slice segment such as slice segment IS1 in slice 73, includes a full header, such as a header 78.
- Header 78 includes a set of syntax elements for decoding the slice. Any other segment segments of a tranche, such as that DS2, DS3, DS4, DS5 and DS6 slice segments of slice 73 in FIG. 7A, are called dependent slice segments ("depend slice segment"), because they only have a partial header referring to the independent slice segment header that precedes them in the slice, here the header 78. Note that in the AVC standard, only the concept of slice exists, a slice necessarily comprising a complete header and can not be divided.
- each slice of an image is decodable independently of any other slice of the same image.
- implementing a loop filtering post in one slice may require the use of data from another slice.
- CTB coded tree block
- a CTB such as CTB 79 in FIG. 7A, is a block of square pixels whose size is equal to a power of two and whose size can range from sixteen to sixty-four pixels.
- a CTB can be partitioned in the form of a quaternary tree ("quad-tree" in English terminology) into one or more coding units (“coding unit (CU)" in English terminology).
- a coding unit is a block of square pixels whose size is equal to a power of two and whose size can range from eight to sixty-four pixels.
- a coding unit such as the coding unit 405 of FIG. 4, can then be partitioned into prediction units ("prediction unit (PU)" in English terminology) used during spatial or temporal predictions and in transformation units (“transform unit (TU)” in English terminology) used when transforming blocks of pixels in the frequency domain.
- prediction unit PU
- transformation unit transform unit
- each CTB is partitioned in order to optimize the compression performance of the CTB. Subsequently, for simplicity, we consider that each CTB is partitioned into a coding unit and that this coding unit is partitioned into a transformation unit and a prediction unit. In addition, all BTCs are the same size.
- the CTBs correspond to the block of pixels described in relation with FIGS. 3, 5, 6A, 6B and 6C.
- FIG. 7B schematically represents a method of encoding a video stream compatible with the HEVC standard implemented by a coding module.
- the encoding of a current image 701 of a video starts with a partitioning of the current image 701 in a step 702, as described in connection with FIG. 7A.
- FIG. 7B and FIG. 7C we do not differentiate CTBs, coding units, transformation units and prediction units and we group these four entities under the term block of pixels.
- the current image 701 is thus partitioned into blocks of pixels.
- the encoding device For each block of pixels, the encoding device must determine an encoding mode between an intra picture coding mode, called INTRA coding mode, and an inter picture coding mode, called INTER coding mode.
- the encoding mode F TRA consists in predicting, according to an INTRA prediction method, during a step 703, the pixels of a current block of pixels from a prediction block derived from pixels of reconstructed pixel blocks. located in a causal neighborhood of the block of pixels to be encoded.
- the result of the INTRA prediction is a prediction direction indicating which pixels of the neighboring pixel blocks to use, and a residual block resulting from a calculation of a difference between the current pixel block and the prediction block.
- the INTER encoding mode consists in predicting the pixels of a block of current pixels from a block of pixels, called a reference block, of an image preceding or following the current image, this image being called a reference image .
- a block of current pixels is determined by an estimation step
- a motion vector indicating the position of the reference pixel block in the reference image is determined.
- Said motion vector is used in a motion compensation step 705 in which a residual block is calculated as a difference between the current block of pixels and the reference block. It may be noted that we have described here an inter-predicted coding mode.
- the motion vector of the pixel block is predicted from a prediction vector selected from a set of motion vectors corresponding to reconstructed pixel blocks located near the block of pixels to be encoded.
- the motion vector is then encoded by the entropy encoder at step 710 as a motion residual and an index to identify the prediction vector.
- the transformed and quantized residual block is encoded by the entropy encoder at step 710.
- the result of the entropy encoding is inserted into a binary video stream 711.
- the quantization parameter of a block of pixels is predicted from neighborhood pixel block quantization parameters or from a quantization parameter described as a slice header. Syntax elements then encode in the bit stream of the video a difference between the quantization parameter of a block of pixels and its prediction (see section 7.4.9.10 and section 8.6 of the HEVC standard).
- the current pixel block is reconstructed so that the pixels that said current pixel block contains can be used for future predictions.
- This reconstruction phase is also called the prediction loop.
- the quantized and quantized residual block is then applied to a reverse quantization during a step 712 and an inverse transformation in a step 713.
- the block of prediction of the block of pixels is reconstructed. If the current pixel block is encoded according to the INTER encoding mode, the encoding device applies, in a step 716, inverse motion compensation using the motion vector of the current pixel block to identify the reference block of the current block of pixels. block of current pixels.
- the prediction direction corresponding to the current block of pixels is used to reconstruct the reference block of the current block of pixels.
- the reference block and the reconstructed residual block are summed to obtain the reconstructed current pixel block.
- a loop filtering post (“loop filter” in English terminology) is applied, in a step 717, to the reconstructed pixel block.
- This post-filtering post-filtering loop is called because this post-filtering occurs in the prediction loop so as to obtain the same reference images as the decoding, and to avoid an offset between the encoding and the decoding.
- the HEVC loop filter post includes two post-filtering methods, Le. deblocking filtering in Anglo-Saxon terminology) and SAO filtering ("Sample Adaptive Offset" in English terminology). Note that H.264 / AVC post filtering only includes unlocking filtering.
- the purpose of unlocking filtering is to mitigate discontinuities at pixel block boundaries due to quantization differences between blocks of pixels. It is adaptive filtering that can be enabled or disabled, and when activated, can take the form of a high complexity debug filtering based on a one-dimensional separable filter with six filter coefficients, that a strong filter is then called, and a low complexity deblocking filtering based on a one-dimensional separable filter comprising four coefficients, which is subsequently called a weak filter.
- the strong filter strongly attenuates the discontinuities at the borders of the pixel blocks which can damage high spatial frequencies present in original images.
- the weak filter weakly attenuates the discontinuities at the borders of the pixel blocks, which makes it possible to preserve high spatial frequencies present in the original images, but will be less effective on the discontinuities artificially created by the quantization.
- the decision to filter or not to filter, and the form of the filter used in case of filtering depend on the value of the pixels at the boundaries of the block of pixels to be filtered and of two parameters coded in the binary video stream in the form of two elements. syntax defined by the HEVC standard.
- a decoding device can determine, using these syntax elements, whether unlocking filtering should be applied and the deblocking filtering form to be applied.
- ODS filtering takes two forms with two different purposes.
- the first form called "edge offset" is intended to compensate for the effects of quantization on the edges in the blocks of pixels.
- SAO filtering by contour enhancement includes a classification of the pixels of the reconstructed image according to four categories corresponding to four respective types of contour.
- the classification of a pixel is done by filtering four filters, each filter to obtain a filter gradient.
- the filter gradient maximizing a classification criterion indicates the type of contour corresponding to the pixel.
- Each contour type is associated with an enhancement value that is added to the pixels during SAO filtering.
- band offset The second form of ODS is called band offset ("band offset”) and is intended to compensate for the effect of quantization on pixels belonging to certain ranges (i.e. band) of values.
- band enhancement filtering the set of possible values for a pixel, most commonly between "0" and "255" for "8" bit video streams, is divided into thirty-two ranges of eight values. . Of these thirty-two tracks, four consecutive tracks are selected to be enhanced. When a pixel has a value included in one of the four ranges of values to be enhanced, an enhancement value is added to the value of the pixel.
- the encoding device inserts information into the binary video stream 511 enabling a decoding device to determine whether the ODS filtering is to be applied to a BTC and, if so, the form and parameters of the SAO filtering to apply.
- a block of pixels When a block of pixels is reconstructed, it is inserted during a step 520 in a reconstructed image stored in a memory 521 of reconstructed images also called reference image memory.
- the reconstructed images thus stored can then serve as reference images for other images to be encoded.
- Fig. 7C schematically represents a method of decoding a compressed stream according to the HEVC standard implemented by a decoding device.
- Decoding is block of pixels per block of pixels. For a current block of pixels, it starts with an entropy decoding of the block of current pixels during a step 810. The entropy decoding makes it possible to obtain the coding mode of the block of pixels.
- the entropy decoding makes it possible to obtain a prediction vector index, a motion residual, and a residual block.
- a motion vector is reconstructed for the current pixel block using the prediction vector index and the motion residual.
- the decoding device then applies a loop filtering post during a step 817.
- the loop post filter comprises for the HEVC standard a deblocking filtering and a SAO filtering, whereas the loop filtering does not includes unblocking filtering for the AVC standard.
- SAO filtering is implemented by the decoding device during a step
- the decoding device need not determine whether the SAO filtering is to be applied to a block of pixels and, if the SAO filtering is to be applied, the decoding device need not determine the shape. SAO filtering to apply and the enhancement values, since the decoding device will find this information in the binary video stream. If, for a CTB, the SAO filter is of the contour enhancement shape, for each pixel of the CTB, the decoding device must filter out the type of contour, and add the enhancement value corresponding to the determined contour type.
- the decoding device compares the value of the pixel to be filtered with the ranges of values to be enhanced, and if the value of the pixel belongs to the one of the ranges of values to be enhanced, the enhancement value corresponding to said value range is added to the value of the pixel.
- the adaptation module 340 applies to non-area pixel blocks preferred, an average compression ratio higher than an average of the compression ratios applied to the blocks of pixels belonging to a privileged zone.
- the compression ratio of a block of pixels largely depends on one hand on its coding mode and on the other hand with its quantization parameter.
- the adaptation module When the adaptation module receives a non-encoded immersive video, it must encode each image of the immersive video by applying different compression ratios according to whether the blocks of pixels belong to a privileged zone or not.
- Fig. 8 schematically represents an adaptation method for adapting a non-encoded video implemented by the adaptation module during step 503.
- the adaptation module obtains information representative of an available bit rate on the local network 35.
- the adaptation module determines from the information representative of a bit rate, a bit budget for an image to be encoded.
- the adaptation module determines from said budget, a bit budget for each block of pixels of the image to be encoded.
- the bit budget of a block of pixels is equal to the budget for the image to be encoded divided by the number of blocks of pixels of the image to be encoded.
- the bit budget for a block of pixels is equal to the bit budget for the image to be encoded from which the bits already consumed for the blocks of encoded pixels previously divided by the number of blocks of pixels of the image to be encoded remaining to be encoded.
- the adaptation module determines whether the block of pixels to be encoded current is a block of pixels belonging to a privileged area. If this is the case, the adaptation module applies to the current block of pixels, the method described in relation to FIG. 7B during a step 5036.
- a distortion flow optimization makes it possible to determine the coding mode and the quantization parameter of the current block of pixels.
- the adaptation module determines in a step 5037 whether the current block of pixels is the last block of pixels of the image to be encoded. Yes this is not the case, the adaptation module returns to step 5033 to proceed to the coding of a new block of pixels. If it is the last block of pixels of the image to be encoded, the method described in connection with FIG. 8 ends and the adaptation module returns to step 501 or starts encoding a new image.
- the method of FIG. 8 is applicable to other video compression standards such as AVC or MPEG-4 visual.
- the quantization parameter of a block of pixels is predicted from the quantization parameter of the last block of pixels encoded in an image but the difference in absolute value between a quantization parameter and its predictor can not exceed "2".
- a transition between a privileged zone and a non-privileged zone must be done on several blocks of pixels if the predefined constant ⁇ is greater than "2".
- the bit budget for an image to be encoded is divided into two sub-budgets. distinct: a first sub-budget for the blocks of pixels belonging to a privileged zone and a second sub-budget for the blocks of pixels not belonging to a privileged zone.
- the first sub-budget is greater than the second sub-budget.
- the first sub-budget is equal to two-thirds of the bit budget for one image, while the second budget is equal to one-third of the bit budget for an image.
- the adaptation of the immersive video by the adaptation module 340 may consist of transcoding.
- the adaptation module 340 fully decodes each image of the immersive video considered during the period P, for example according to the method described with reference to FIG. 7C and re-encode according to the method described in connection with FIG. 8.
- the adaptation module decodes and re-encodes only partially the encoded immersive video so as to reduce the complexity of the transcoding. It is assumed here that the immersive video was encoded in the HEVC format.
- Fig. 9 schematically represents an adaptation method for adapting an encoded video implemented by the adaptation module during step 503.
- the adaptation module 340 applies entropy decoding to the current block of pixels as described in step 810.
- the adaptation module 340 applies inverse quantization to the current pixel block as described in step 812.
- the adaptation module 340 applies an inverse transformation to the current block of pixels as described in step 813. At this stage, a residual prediction block is obtained.
- the adaptation module 340 determines whether the current block of pixels belongs to a privileged zone.
- step 905 it is taken into account that the reference block or blocks (ie reference blocks for of the INTRA prediction, ie reference blocks for the prediction INTER) of the current block of pixels could be re-quantified. In the case of re-quantification, a reference block is therefore different from the original reference block. The INTER or INTRA prediction from this modified reference block is therefore incorrect. Thus, during step 905, a re-quantization error is added to the reconstructed residual block of the current block of pixels to compensate for the effect of the requantification.
- the reference block or blocks ie reference blocks for of the INTRA prediction, ie reference blocks for the prediction INTER
- a re-quantification error is a difference between a reconstructed residual block before re-quantification and the same reconstructed residual block after a re-quantification is taken into account. It is possible to have a direct re-quantification error following a re-quantification of a residual block and an indirect re-quantification error following a re-quantification of at least one reference block of a predicted block of pixels. by INTRA or INTER prediction. In the method described in connection with FIG.
- the adaptation module 340 calculates a difference between the original block of the block of reconstructed current pixels and the residual block of the reconstructed current pixel block taking into account a direct and / or indirect re-quantification error affecting this residual block. This difference forms the error of re-quantifying the current block of pixels.
- the error of re-quantification of each block of pixels is maintained by the adaptation module 340, for example in the form of a requantization error image, so that it can be used to calculate the re-quantification error.
- other blocks of pixels referring to the current block of pixels ie in step 905).
- the adaptation module 340 applies a transformation as described in step 707 to the residual block obtained in step 905.
- the adaptation module 340 applies a quantization as described in step 709 to the transformed residual block obtained in step 906, by reusing the original quantization parameter of said current pixel block.
- the adaptation module 340 applies an entropy coding as described in step 710 to the quantized residual block obtained in step 907 and inserts a bit stream corresponding to said entropy coding in the video bit stream. immersive instead of the original bit stream corresponding to the current block of pixels.
- this block of pixels is re-quantized with a quantization parameter higher than its original quantization parameter.
- the adaptation module 340 implements steps 910 and 911 which are respectively identical to the steps 905 and 906.
- the adaptation module 340 modifies the quantization parameter of the current block of pixels.
- the adaptation module then adds a predefined constant ⁇ to the value of the quantization parameter of the current block of pixels.
- the adaptation module 340 applies a quantization as described in step 709 to the transformed residual block obtained in step 911, using the modified quantization parameter of the current pixel block.
- the quantization parameter of a block of pixels is predicted from quantization parameters of blocks of pixels of its neighborhood. Syntax elements then encode in the bit stream of the video a difference between the quantization parameter of a block of pixels and its prediction.
- the adaptation module 340 modifies in the bit stream of the video each syntax element representing a difference between a quantization parameter of a block of pixels and its prediction for each block of pixels whose quantization parameter is predicted from the quantization parameter of the current block of pixels to take.
- the adaptation module 340 thus adds a value to the value of each syntax element representing a difference between a quantization parameter of a block of pixels and its prediction to compensate for the modification of the prediction due to the modification of a parameter of quantification.
- the adaptation module proceeds to the entropy coding of the residual block obtained in step 913 and of each syntax element obtained in step 914 and inserts a bit stream corresponding to said entropy coding in the bitstream.
- immersive video to replace the original bit stream corresponding to the current block of pixels.
- the predefined constant ⁇ is set so that the transcoded immersive video is compatible with a rate constraint on the local area network 35.
- the quantization parameter of the blocks of pixels belonging to a privileged zone are also increased by a predefined constant ⁇ 'so that the transcoded immersive video is compatible with a flow constraint on the local network 35.
- ⁇ ' ⁇ the quantization parameter of the blocks of pixels belonging to a privileged zone
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
L'invention concerne un procédé de transmission d'une vidéo immersive entre une unité réseau et au moins un équipement de visualisation permettant à une pluralité d'utilisateurs de visualiser simultanément ladite vidéo immersive, la vidéo immersive comprenant une suite d'ensembles d'images chacune composée de blocs de pixels, la vidéo immersive étant transmise sous une forme compressée à chaque équipement de visualisation. Le procédé est mis en œuvre par l'unité réseau et comprend pour chaque ensemble d'images: obtenir (501) une information représentative d'un point de vue sur la vidéo immersive de chaque utilisateur; déterminer (502) au moins une zone d'image, dite zone privilégiée, correspondant à au moins une partie des points de vue; pour chaque image comprise dans l'ensemble d'images, appliquer (503) aux blocs de pixels n'appartenant pas à une zone privilégiée, un taux de compression en moyenne plus élevé qu'une moyenne des taux de compression appliqués aux blocs de pixels appartenant à une zone privilégiée; et,transmettre (504) l'ensemble d'images à chaque équipement de visualisation.
Description
PROCEDE DE TRANSMISSION D'UNE VIDEO IMMERSIVE
La présente invention concerne un procédé de transmission d'une vidéo immersive vers une pluralité d'utilisateurs, un système et un dispositif aptes à mettre en œuvre le procédé.
Ces dernières années ont vu apparaître une pluralité de modes de visualisation d'images et de vidéos. Ainsi, alors que jusque dans les années « 2000 », on se cantonnait aux images à deux dimensions (2D), des vidéos stéréoscopiques, des vidéos en trois dimensions (3D) et des vidéos immersives représentant une même scène prise suivant une pluralité de points de vue, par exemple à « 360 » degrés, ont vu leur apparition.
A l'heure actuelle, les systèmes de diffusion de vidéos immersives ne nécessitent plus d'utiliser des salles dédiées comprenant un écran à « 360 » degrés et une pluralité de dispositifs de projection d'images projetant chacun un point de vue d'une vidéo immersive. Il est en effet possible maintenant d'obtenir un système de diffusion de vidéos immersives à partir de lunettes, dites lunettes immersives ou lunettes 3D immersives, comprenant un dispositif d'affichage d'images intégré.
Ce mode de mise en œuvre plus simple permet d'envisager une démocratisation des systèmes de diffusion de vidéos immersives. Ainsi, dans le futur, des utilisateurs pourront visualiser des vidéos immersives dans leur habitation. Ces vidéos immersives seront fournies par exemple, par des opérateurs et transmises à travers des réseaux de communication tels que le réseau internet, à l'image de ce qui se fait actuellement avec la diffusion de vidéos 2D par internet.
La Fig. 1 illustre schématiquement un exemple de système de diffusion de vidéos immersives 1. Dans ce système, un utilisateur 12 porte une paire de lunettes immersives 13. Cette paire de lunettes immersives 13 comprend un module de traitement 131 et un module de visualisation d'images non représenté. Le module de visualisation d'images comprend par exemple un écran faisant face à chaque œil de l'utilisateur 12. Le module de visualisation d'images permet à l'utilisateur de visualiser une vidéo à « 360 » degrés symbolisée par un anneau 10 dans la Fig. 1. Dans ce système, la vidéo immersive a été reçue par le module de traitement 131 d'un serveur par l'intermédiaire d'un réseau de communication, puis décodée par le module de traitement 131 avant son affichage sur le module de visualisation d'images.
Lors de l'affichage, le système de diffusion de vidéos immersives 1 définit une forme géométrique simple (ici, un anneau, mais d'autres formes sont possibles telles qu'une sphère, un dôme ou un cube) sur laquelle est plaquée la vidéo immersive. Toutefois, l'utilisateur 12 ne voit qu'une partie de la vidéo immersive limitée par son champ visuel. Ainsi, dans la Fig. 1, l'utilisateur 12 ne voit qu'une sous-partie spatiale 11 de la vidéo immersive lui faisant face. Le reste de la vidéo immersive n'est utilisé que si l'utilisateur 12 change de point de vue sur la vidéo.
En plus d'offrir un point de vue à l'utilisateur beaucoup plus large qu'une vidéo HD classique (« High Définition » en terminologie anglo-saxonne : 1920x1080 pixels), une vidéo immersive possède généralement une résolution spatiale et une résolution temporelle nettement supérieures à une vidéo HD classique. De telles caractéristiques impliquent un débit très important qui peut être difficilement supportable par un réseau.
Dans certains systèmes de diffusion de vidéos immersives, l'utilisateur reçoit la vidéo immersive en pleine résolution spatiale et temporelle. Le réseau de communication doit donc supporter un débit relativement important. Ce débit est d'autant plus important que plusieurs utilisateurs peuvent recevoir la même vidéo immersive en même temps. Pour pallier ce problème de débit, dans d'autres systèmes de diffusion de vidéos immersives, chaque utilisateur ne reçoit qu'une sous-partie spatiale de la vidéo immersive correspondant à son point de vue. Toutefois, des problèmes de latence se posent dans ce type de système dès qu'un utilisateur change de point de vue sur la vidéo immersive. En effet, lorsqu'un utilisateur change de point de vue, il doit informer le serveur qu'il a changé de point de vue, et le serveur doit répondre en transmettant à l'utilisateur une sous-partie spatiale de la vidéo correspondant au nouveau point de vue.
II est souhaitable de pallier ces inconvénients de l'état de la technique. Il est notamment souhaitable de fournir un système qui soit réactif lors d'un changement de point de vue sur une vidéo immersive et économique en termes de débit de transmission de ladite vidéo immersive lorsque plusieurs utilisateurs visualisent ladite vidéo.
Il est de plus souhaitable de fournir une solution qui soit simple à mettre en œuvre et à faible coût.
Selon un premier aspect de la présente invention, la présente invention concerne un procédé de transmission d'une vidéo immersive entre une unité réseau et au moins un équipement de visualisation permettant à une pluralité d'utilisateurs de visualiser simultanément ladite vidéo immersive, l'unité réseau et chaque équipement de
visualisation étant reliés par un réseau de communication, la vidéo immersive comprenant une suite d'ensembles d'images, chaque image étant composée de blocs de pixels, la vidéo immersive étant transmise sous une forme encodée selon un standard de compression vidéo prédéterminé à chaque équipement de visualisation. Le procédé est mis en œuvre par l'unité réseau et comprend pour chaque ensemble d'images : obtenir une information représentative d'un point de vue sur la vidéo immersive observé par chaque utilisateur ; déterminer au moins une zone d'image, dite zone privilégiée, correspondant à au moins une partie des points de vue ; pour chaque image comprise dans l'ensemble d'images, appliquer aux blocs de pixels n'appartenant pas à une zone privilégiée, un taux de compression en moyenne plus élevé qu'une moyenne des taux de compression appliqués aux blocs de pixels appartenant à une zone privilégiée ; et, transmettre l'ensemble d'images à chaque équipement de visualisation.
De cette manière, on réduit le débit de la vidéo immersive par rapport à une vidéo immersive transmise en pleine qualité quels que soient les points de vue puisque les zones des images situées en dehors de la zone privilégiée correspondant à une zone de la vidéo immersive observée par une majorité d'utilisateur sont encodées dans une qualité inférieure.
Selon un mode de réalisation, l'unité réseau obtient la vidéo immersive sous une forme non compressée et encode la vidéo immersive selon le standard de compression vidéo prédéterminé ou l'unité réseau obtient la vidéo immersive sous une forme compressée et transcode la vidéo immersive de sorte qu'elle soit compatible avec le standard de compression vidéo prédéterminé.
Selon un mode de réalisation, le procédé comprend : déterminer pour chaque point de vue, une sous-partie spatiale de la vidéo immersive correspondant audit point de vue ; déterminer un centre pour chaque sous-partie spatiale ; déterminer un barycentre d'au moins une partie des centres des sous-parties spatiales ; et, définir une zone rectangulaire centrée sur le barycentre, ladite zone rectangulaire formant une zone privilégiée, la zone rectangulaire ayant des dimensions prédéfinies ou déterminées en fonction d'un débit disponible sur le réseau de communication.
Selon un mode de réalisation, le procédé comprend : déterminer pour chaque point de vue, une sous-partie spatiale de la vidéo immersive correspondant audit point de vue ; déterminer au moins une union des sous-parties spatiales se chevauchant ; et, pour chaque groupe de sous-parties spatiales résultant d'une union, définir une zone
rectangulaire englobant ledit groupe de sous-parties spatiales, chaque zone rectangulaire formant une zone privilégiée.
Selon un mode de réalisation, le procédé comprend : déterminer pour chaque point de vue, une sous-partie spatiale de la vidéo immersive correspondant audit point de vue ; définir une pluralité de catégories de blocs de pixels, une première catégorie comprenant des blocs de pixels n'apparaissant dans aucune sous-partie spatiale, et au moins une seconde catégorie comprenant des blocs de pixels apparaissant au moins dans un nombre prédéfini de sous-parties spatiales ; classer chaque bloc de pixels d'une image de l'ensemble d'images dans une catégorie en fonction du nombre de fois que ce bloc de pixels apparaît dans une sous-partie spatiale ; et, former au moins une zone privilégiée à partir de blocs de pixels classés dans chaque seconde catégorie.
Selon un mode de réalisation, le procédé comprend en outre : ajouter aux sous- parties spatiales définies en fonction des points de vue, au moins une sous-partie spatiale prédéfinie, ou définie à partir de statistiques sur des points de vue d'utilisateurs sur ladite vidéo immersive lors d'autres visualisations de la vidéo immersive.
Selon un mode de réalisation, le procédé comprend en outre : associer à chaque sous-partie spatiale définie en fonction d'un point de vue, dite sous-partie spatiale courante, une sous-partie spatiale, dite sous-partie spatiale extrapolée, définie en fonction d'une position de la sous-partie spatiale courante et d'une information représentative d'un mouvement d'une tête d'un utilisateur correspondant à ce point de vue, les sous-parties spatiales courantes et extrapolées étant prises en compte dans la définition de chaque zone privilégiée.
Selon un deuxième aspect de l'invention, l'invention concerne une unité réseau adaptée pour mettre en œuvre le procédé selon le premier aspect.
Selon un troisième aspect de l'invention, l'invention concerne un système comprenant au moins un équipement de visualisation permettant à une pluralité d'utilisateurs de visualiser simultanément une vidéo immersive et une unité réseau selon le deuxième aspect.
Selon un quatrième aspect, l'invention concerne un programme d'ordinateur comprenant des instructions pour mettre en œuvre, par un dispositif, le procédé selon le premier aspect, lorsque ledit programme est exécuté par un processeur dudit dispositif.
Selon un cinquième aspect, l'invention concerne des moyens de stockage, stockant un programme d'ordinateur comprenant des instructions pour mettre en œuvre,
par un dispositif, le procédé selon le premier aspect, lorsque ledit programme est exécuté par un processeur dudit dispositif.
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels :
- la Fig. 1 illustre schématiquement un exemple de système de diffusion de vidéos immersives;
- la Fig. 2 illustre schématiquement des sous-parties spatiales d'une vidéo immersive vues par une pluralité d'utilisateurs;
- la Fig. 3 illustre schématiquement un système dans lequel est mise en œuvre l'invention ;
- la Fig. 4 illustre schématiquement un exemple d'architecture matérielle d'une passerelle résidentielle selon l'invention ;
- la Fig. 5 illustre schématiquement un procédé d'adaptation d'une vidéo immersive à un ensemble de points de vue d'utilisateurs ;
- les Figs. 6A, 6B et 6C illustrent schématiquement trois exemples de procédé permettant de définir au moins une zone d'image, dite zone privilégiée, dans laquelle les blocs de pixels doivent avoir en moyenne un taux de compression plus faible que des blocs de pixels n'appartenant pas à une zone privilégiée ;
- la Fig. 7A illustre schématiquement les partitionnements successifs subis par une imge vidéo lors d'un encodage HEVC ;
- la Fig. 7B représente schématiquement une méthode d'encodage d'un flux vidéo compatible avec le standard HEVC ;
- la Fig. 7C représente schématiquement une méthode de décodage selon le standard HEVC ;
- la Fig. 8 représente schématiquement un procédé d'adaptation destiné à adapter une vidéo non encodée ; et,
- la Fig. 9 représente schématiquement un procédé d'adaptation destiné à adapter une vidéo encodée.
Par la suite, l'invention est décrite dans le cadre d'une pluralité d'utilisateurs utilisant chacun un équipement de visualisation tel que des lunettes immersives comprenant un module de traitement. Chaque utilisateur visualise la même vidéo immersive, mais potentiellement suivant des points de vue différents. Chaque utilisateur
peut s'éloigner ou se rapprocher de la vidéo immersive, se tourner, tourner la tête, lever la tête, etc. Tous ces mouvements changent le point de vue de l'utilisateur. L'invention est toutefois adaptée à d'autres équipements de visualisation tel qu'un équipement de visualisation comprenant une salle dédiée à la diffusion de vidéos immersives équipée d'un écran à « 360 » degrés ou d'un écran en forme de dôme et d'une pluralité de dispositifs de projection d'images projetant chacun une partie d'une vidéo immersive. Chaque dispositif de projection d'images est alors relié à un module de traitement externe. Les utilisateurs peuvent alors évoluer dans la pièce et regarder la vidéo immersive suivant différents points de vue.
La Fig. 3 illustre schématiquement un système 3 dans lequel est mise en œuvre l'invention.
Le système 3 comprend un serveur 30 relié par un réseau étendu 32 (Wide Area Network (WAN) en terminologie anglo-saxonne) tel qu'un réseau internet à une passerelle résidentielle 34 (« gateway » en terminologie anglo-saxonne), appelée simplement passerelle par la suite, située par exemple dans une habitation. La passerelle 34 permet de connecter un réseau local 35 (« LAN : Local Area Network » en terminologie anglo-saxonne) au réseau étendu 32. Le réseau local 35 est par exemple un réseau sans fils tel qu'un réseau Wi-Fi (ISO/CEI 8802-11). Dans la Fig. 3, une pluralité de clients identiques 131 A, 131B et 131C, chacun compris dans une paire de lunettes immersives, sont reliés à la passerelle par le réseau local 35. Chaque paire de lunettes immersives est portée par un utilisateur qui peut déambuler dans l'habitation pour obtenir différents points de vue sur la vidéo immersive. Par ailleurs, chaque paire de lunettes immersives comprend un module de positionnement adapté pour déterminer une information représentative du point de vue de l'utilisateur sur la vidéo immersive.
Le serveur 30 stocke la vidéo immersive en pleine résolution spatiale et temporelle sous forme d'un flux vidéo binaire non compressé ou compressé selon un standard de compression vidéo tel que le standard de compression vidéo MPEG-4 visual (ISO/IEC 14496-2), le standard H.264/MPEG-4 AVC (ISO/IEC 14496-10 - MPEG-4 Part 10, codage vidéo avancé (« Advanced Video Coding » en terminologie anglo- saxonne) / ITU-T H.264) ou le standard H.265/MPEG-4 HEVC (ISO/IEC 23008-2 - MPEG-H Part 2, codage vidéo haute efficacité (High Effîciency Video Coding en terminologie anglo-saxonne) / ITU-T H.265). La vidéo immersive est composée d'une suite d'images, chaque image étant composée de blocs de pixels.
Le serveur 30 est adapté pour diffuser la vidéo immersive vers la passerelle 34. La passerelle 34 comprend un module d'adaptation 340 capable d'adapter la vidéo immersive à des points de vue d'un ensemble d'utilisateurs de manière à satisfaire un maximum d'utilisateurs.
On note que le procédé pourrait tout aussi bien fonctionner sans serveur. Dans ce cas, c'est la passerelle qui stocke la vidéo immersive en plus de se charger de l'adapter et de la transmettre aux clients 131 A, 131B et l31C.
La Fig. 2 illustre schématiquement des sous-parties spatiales d'une vidéo immersive vues par une pluralité d'utilisateurs.
Dans la Fig. 2, on retrouve la vidéo immersive 10 plaquée sur un anneau dans la
Fig. 1. Toutefois, dans la Fig. 2, l'anneau a été déplié de manière à ce que la vidéo apparaisse dans un plan. On suppose que dans la Fig. 2, les trois utilisateurs visualisent des points de vue différents. L'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131 A visualise la sous-partie 11 A. L'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131B visualise la zone 11B. L'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131C visualise la zone 11C. L'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131 A a un point de vue plus éloigné sur la vidéo que les deux autres utilisateurs ce qui explique que la sous-partie 11 A est plus grande que les sous- parties 11C et 11B. L'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131C est orienté sur la vidéo immersive plus à gauche que l'utilisateur utilisant les lunettes immersives comprenant le module de traitement 131B.
La Fig. 4 illustre schématiquement un exemple d'architecture matérielle du module d'adaptation 340. Le module d'adaptation 340 comprend alors, reliés par un bus de communication 3400: un processeur ou CPU (« Central Processing Unit » en anglais) 3401 ; une mémoire vive RAM (« Random Access Memory » en anglais) 3402 ; une mémoire morte ROM (« Read Only Memory » en anglais) 3403 ; une unité de stockage ou un lecteur de support de stockage, tel qu'un lecteur de cartes SD (« Secure Digital » en anglais) 3404 ; un ensemble d'interfaces de communication 3405 permettant au module d'adaptation 340 de communiquer avec le serveur 30 à travers le réseau étendu 32 et avec chaque client 131 à travers le réseau local 35.
Le processeur 3401 est capable d'exécuter des instructions chargées dans la RAM 3402 à partir de la ROM 3403, d'une mémoire externe (non représentée), d'un support de stockage, tel qu'une carte SD, ou d'un réseau de communication. Lorsque le module
d'adaptation 340 est mis sous tension, le processeur 3401 est capable de lire de la RAM 3402 des instructions et de les exécuter. Ces instructions forment un programme d'ordinateur causant la mise en œuvre, par le processeur 3401, du procédé décrit en relation avec les Figs. 5.
Tout ou partie du procédé décrit en relation avec la Fig. 5 peut être implémenté sous forme logicielle par exécution d'un ensemble d'instructions par une machine programmable, telle qu'un DSP (« Digital Signal Processor » en anglais) ou un microcontrôleur, ou être implémenté sous forme matérielle par une machine ou un composant dédié, tel qu'un FPGA (« Field-Programmable Gâte Array » en anglais) ou un ASIC (« Application-Specifîc Integrated Circuit » en anglais).
La Fig. 5 illustre schématiquement un procédé d'adaptation d'une vidéo immersive à un ensemble de points de vue d'utilisateurs permettant de satisfaire au mieux un maximum d'utilisateurs.
Le procédé décrit en relation avec la Fig. 5 est exécuté par le module d'adaptation 341 de la passerelle 34. Toutefois, ce procédé pourrait tout aussi bien être mis en œuvre par un module d'adaptation 341 indépendant de la passerelle 34 et situé entre la passerelle 34 et chaque client 131A, 131B, ou 131C. Dans un autre mode de réalisation, le module d'adaptation pourrait aussi être compris dans un nœud du réseau situé entre le serveur 30 et la passerelle 34 tel qu'un DSLAM (multiplexeur d'accès à une ligne d'abonné numérique : « Digital Subscriber Line Access Multiplexer » en terminologie anglo-saxonne).
Un rôle du module d'adaptation 340 est d'adapter la vidéo immersive de manière à ce qu'elle satisfasse un maximum d'utilisateurs en termes de qualité d'affichage et en termes de réactivité en cas de changement de point de vue.
Le procédé décrit en relation avec la Fig. 5 est mis en œuvre à intervalles réguliers, par exemple avec une période P correspondant à une durée d'image ou d'une suite de quelques images. Par exemple =34ms pour une vidéo immersive à « 30 » images par seconde ou P= 17ms pour une vidéo immersive à « 60 » images par seconde. Ainsi, le module d'adaptation peut adapter chaque image de la vidéo immersive de manière à satisfaire une majorité d'utilisateurs.
Dans une étape 501, le module d'adaptation 340 obtient de la part du client 131 A (respectivement 131B et 131 C) une information représentative d'un point de vue observé par l'utilisateur correspondant audit client. Par exemple chaque information
représentative d'un point de vue comprend un azimut, un angle d'élévation et un éloignement.
Dans une étape 502, le module d'adaptation 340 détermine au moins une zone d'image, dite zone privilégiée, correspondant à au moins une partie des points de vue. Nous détaillons par la suite en relation avec les Figs. 6A, 6B et 6C différentes méthodes permettant de déterminer au moins une zone privilégiée.
Dans une étape 503, pour chaque image suivant la détermination d'au moins une zone privilégiée, le module d'adaptation 340 applique aux blocs de pixels n'appartenant pas à une zone privilégiée, lors d'un encodage ou un transcodage, un taux de compression en moyenne plus élevé qu'une moyenne des taux de compression appliqués aux blocs de pixels appartenant à une zone privilégiée. L'étape 503 permet d'obtenir un flux vidéo correspondant à la vidéo immersive adapté aux points de vue des utilisateurs. Chaque image de cette vidéo immersive possède une qualité supérieure dans au moins une zone regardée par une majorité d'utilisateurs et une qualité inférieure dans le reste de l'image. Nous détaillons par la suite différents modes de réalisation de cette étape.
Dans un mode de réalisation, la moyenne des taux de compression des blocs de pixels des zones privilégiées et la moyenne des taux de compression des blocs n'appartenant pas à une zone privilégiée dépend d'un débit disponible sur le réseau 35.
Dans une étape 504, le flux vidéo ainsi obtenu est transmis à chaque équipement de visualisation en utilisant le réseau local 35.
Dans un autre mode de réalisation, le procédé est mis en œuvre suite à un changement de points de vue d'une majorité d'utilisateurs.
Les Figs. 6A, 6B et 6C illustrent schématiquement trois exemples de procédé permettant de définir au moins une zone d'image, dite zone privilégiée, dans laquelle les blocs de pixels doivent avoir en moyenne un taux de compression plus faible que des blocs de pixels n'appartenant pas à une zone privilégiée. Les blocs de pixels appartenant à une zone privilégiée auront donc en moyenne une qualité supérieure aux blocs de pixels n'appartenant pas à une zone privilégiée. De cette manière, on privilégie les zones des images de la vidéo immersive qui sont vues par les utilisateurs ou au moins vues par une majorité d'utilisateurs. Les procédés décrits en relation avec les Figs. 6A, 6B et 6C correspondent à l'étape 502.
Le procédé décrit en relation avec la Fig. 6 A débute par une étape 5020. Au cours de l'étape 5020, à partir de chaque information représentative d'un point de vue, le
module d'adaptation 340 détermine une sous-partie spatiale de la vidéo immersive correspondant audit point de vue. Chaque sous-partie spatiale est par exemple un rectangle aligné sur des limites de blocs de pixels.
Dans une étape 5021, le module d'adaptation 340 détermine un centre pour chaque sous-partie spatiale.
Dans une étape 5022, le module d'adaptation 340 détermine un barycentre des centres des sous-parties spatiales, c'est-à-dire un point qui minimise une somme des distances entre ledit point et chaque centre. Dans un mode de réalisation, le barycentre est un point minimisant une distance à un pourcentage prédéfini de centres. Le pourcentage prédéfini est par exemple 80%.
Dans une étape 5023, le module d'adaptation 340 définit une zone rectangulaire centrée sur le barycentre, ladite zone rectangulaire formant une zone privilégiée. Dans un mode de réalisation, la zone rectangulaire a des dimensions prédéfinies. Dans un mode de réalisation, la zone rectangulaire a des dimensions égales à une moyenne des dimensions des sous-parties spatiales. Dans un mode de réalisation, le module d'adaptation détermine les dimensions de la zone rectangulaire en fonction d'un débit disponible sur le réseau 35. Lorsque ledit débit est faible, inférieur à un premier seuil de débit, les dimensions de la zone rectangulaire sont égales à des dimensions moyennes prédéfinies d'une sous-partie spatiale, ce qui permet de fixer des dimensions minimales pour la zone rectangulaire. Lorsque ledit débit est élevé, supérieur à un deuxième seuil de débit, les dimensions de la zone rectangulaire sont égales par exemple, au double des dimensions moyennes prédéfinies d'une sous-partie spatiale, ce qui permet de fixer des dimensions maximales de la zone rectangulaire. Lorsque ledit débit est moyen, compris entre le premier et le deuxième seuils de débit, les dimensions de la zone rectangulaire augmentent linéairement en fonction du débit entre les dimensions moyennes prédéfinies d'une sous-partie spatiale et le double des dimensions moyennes prédéfinies d'une sous-partie spatiale. Dans ce mode de réalisation, on privilégie donc une zone réellement vue par les utilisateurs. Mais, lorsque le débit le permet, on étend la zone privilégiée de manière à permettre à un utilisateur qui changerait de point de vue, d'avoir un affichage de la vidéo immersive de bonne qualité malgré ce changement. Dans un mode de réalisation, le premier et le deuxième seuils de débit sont égaux.
Le procédé décrit en relation avec la Fig. 6B débute par une étape 5024 identique à l'étape 5020.
Dans une étape 5025, le module d'adaptation 340 détermine une union des sous- parties spatiales. On ne forme une union que pour les sous-parties spatiales qui se chevauchent. Ainsi, on peut obtenir plusieurs groupes de sous-parties spatiales résultant d'une union de sous-parties spatiales se chevauchant.
Dans une étape 5026, pour chaque groupe de sous-parties spatiales formées par union, le module d'adaptation définit une zone rectangulaire englobant ledit groupe de sous-parties spatiales. Chaque zone rectangulaire forme alors une zone privilégiée. Dans un mode de réalisation, les groupes de sous-parties spatiales comptant peu de sous-parties spatiales, par exemple comptant un nombre de sous-parties spatiales inférieur à un nombre prédéterminé, ne sont pas pris en compte pour définir une zone privilégiée.
Le procédé décrit en relation avec la Fig. 6C débute par une étape 5027 identique à l'étape 5020.
Dans une étape 5028, chaque bloc de pixels d'une image est classé dans une catégorie en fonction du nombre de fois que ce bloc de pixels apparaît dans une sous- partie spatiale. On peut ainsi former une pluralité de catégories de blocs de pixels. Une première catégorie est par exemple une catégorie de blocs de pixels n'apparaissant dans aucune sous-partie spatiale. Une deuxième catégorie comprend des blocs de pixels apparaissant au moins N fois dans une sous-partie spatiale. N est un nombre entier égal par exemple à « 5 ». Une troisième catégorie comprend des blocs de pixels n'apparaissant ni dans la première, ni dans la deuxième catégorie. Le module d'adaptation 340 forme lors d'une étape 5029 une première zone privilégiée à partir des blocs de pixels appartenant à la deuxième catégorie et une deuxième zone privilégiée à partir des blocs de pixels appartenant à la troisième catégorie. Dans un mode de réalisation, suite à la mise en œuvre du procédé décrit en relation avec la Fig. 6C, les zones privilégiées dont les dimensions seraient inférieures aux dimensions moyennes prédéfinies d'une sous-partie spatiale sont supprimées. Les blocs de pixels appartenant à ces zones éliminées sont considérés comme ne faisant pas partie d'une zone privilégiée.
Dans un mode de réalisation, lors des étapes 5020, 5024 et 5027, on ajoute aux sous-parties spatiales correspondant aux points de vue des utilisateurs au moins une sous-partie spatiale prédéfinie, par exemple par un réalisateur de la vidéo immersive, ou définie à partir de statistiques sur des points de vue d'utilisateurs sur ladite vidéo immersive lors d'autres visualisations de la vidéo immersive.
Dans un mode de réalisation, lors des étapes 5020, 5024 et 5027, chaque sous- partie spatiale correspondant à un point de vue d'un utilisateur, dite sous-partie spatiale courante, est associée à une seconde sous-partie spatiale obtenue en prenant en compte un mouvement de la tête de l'utilisateur, dite sous-partie spatiale extrapolée. On suppose que les lunettes immersives de l'utilisateur comprennent un module de mesure de mouvement. Le client 131 obtient une information de mouvement de la part du module de mesure de mouvement et transmet cette information au module d'adaptation 340. L'information de mouvement est par exemple un vecteur de mouvement. A partir de l'information de mouvement et d'une position de la sous-partie spatiale courante, le module d'adaptation détermine une position de la sous-partie spatiale extrapolée. L'ensemble formé des sous-parties spatiales courantes et des sous-parties spatiales extrapolées est ensuite utilisé dans la suite des procédés décrits en relation avec les Figs. 6A, 6B et 6C.
Dans un mode de réalisation, lors de l'étape 503, chaque image de la vidéo immersive considérée pendant la période P est compressée suivant un standard de compression vidéo ou transcodée de manière à ce qu'elle soit compatible avec le standard de compression vidéo. Dans un mode de réalisation, le standard de compression vidéo utilisé est HEVC.
Les Figs. 7 A, 7B et 7C décrivent un exemple de mise en œuvre du standard HEVC.
La Fig. 7A illustre les partitionnements successifs subis par une image de pixels 72 d'une vidéo originale 71, lors de son encodage selon le standard HEVC. On considère ici qu'un pixel est composé de trois composantes : une composante de luminance et deux composantes de chrominance. Dans l'exemple de la Fig. 7A, l'image 72 est dans un premier temps divisée en trois tranches (« slices » en terminologie anglo- saxonne). Une tranche est une zone d'une image pouvant couvrir la totalité d'une image ou seulement une portion, comme la tranche 73 dans la Fig. 7A. Une tranche comprend au moins un segment de tranche (« slice segment » en terminologie anglo-saxonne) suivi optionnellement d'autres segments de tranche. Le segment de tranche en première position dans la tranche est appelé segment de tranche indépendant (« independent slice segment » en terminologie anglo-saxonne). Un segment de tranche indépendant, tel que le segment de tranche IS1 dans la tranche 73, comprend un entête complet, tel qu'un entête 78. L'entête 78 comprend un ensemble d'éléments de syntaxe permettant le décodage de la tranche. Les éventuels autres segments de tranche d'une tranche, tels
que des segments de tranche DS2, DS3, DS4, DS5 et DS6 de la tranche 73 dans la Fig. 7 A, sont appelés des segments de tranche dépendants (« dépendent slice segment » en terminologie anglo-saxonne), car ils ne possèdent qu'un entête partiel faisant référence à l'entête de segment de tranche indépendant qui les précède dans la tranche, ici l'entête 78. On note que dans le standard AVC, seul le concept de tranche existe, une tranche comprenant nécessairement un entête complet et ne pouvant pas être divisée.
On peut noter que chaque tranche d'une image est décodable indépendamment de toute autre tranche de la même image. Toutefois, la mise en œuvre d'un post filtrage de boucle dans une tranche peut nécessiter l'utilisation de données d'une autre tranche.
Après le partitionnement de l'image 72 en tranches, les pixels de chaque tranche d'une image sont partitionnés en blocs d'arbre de codage (« coded Tree Block (CTB) » en terminologie anglo-saxonne), tels qu'un ensemble de blocs d'arbre de codage 74 de la Fig. 7 A. Par la suite, pour simplifier, nous utiliserons l'acronyme CTB pour désigner un bloc d'arbre de codage. Un CTB, tel que le CTB 79 dans la Fig. 7A, est un bloc de pixels carré dont la taille est égale à une puissance de deux et dont la taille peut aller de seize à soixante-quatre pixels. Un CTB peut être partitionné sous forme d'arbre quaternaire (« quad-tree » en terminologie anglo-saxonne) en une ou plusieurs unités de codage (« coding unit (CU) » en terminologie anglo-saxonne). Une unité de codage est un bloc de pixels carré dont la taille est égale à une puissance de deux et dont la taille peut aller de huit à soixante-quatre pixels. Une unité de codage, telle que l'unité de codage 405 de la Fig. 4, peut être ensuite partitionnée en unités de prédiction (« prédiction unit (PU) » en terminologie anglo-saxonne) utilisées lors de prédictions spatiales ou temporelles et en unités de transformation (« transform unit (TU) » en terminologie anglo-saxonne) utilisées lors de transformations de blocs de pixels dans le domaine fréquentiel.
Au cours du codage d'une image, le partitionnement est adaptatif, c'est à dire que chaque CTB est partitionné de manière à optimiser les performances de compression du CTB. Par la suite, pour simplifier, nous considérons que chaque CTB est partitionné en une unité de codage et que cette unité de codage est partitionnée en une unité de transformation et une unité de prédiction. De plus, tous les CTB ont la même taille. Les CTB correspondent au bloc de pixels décrit en relation avec les Figs. 3, 5, 6A, 6B et 6C.
On suppose de plus par la suite que chaque image encodée ne comprend qu'une tranche indépendante.
La Fig. 7B représente schématiquement une méthode d'encodage d'un flux vidéo compatible avec le standard HEVC mise en œuvre par un module de codage. L'encodage d'une image courante 701 d'une vidéo débute par un partitionnement de l'image courante 701 lors d'une étape 702, tel que décrit en relation avec la Fig. 7A. Par simplification, dans la suite de la description de la Fig. 7B et dans la description de la Fig. 7C, nous ne différentions pas les CTB, unités de codage, unités de transformation et unités de prédiction et nous regroupons ces quatre entités sous le terme de bloc de pixels. L'image courante 701 est ainsi partitionnée en blocs de pixels. Pour chaque bloc de pixels, le dispositif d'encodage doit déterminer un mode de codage entre un mode de codage intra image, appelé mode de codage INTRA, et un mode de codage inter image, appelé mode de codage INTER.
Le mode de codage F TRA consiste à prédire suivant une méthode de prédiction INTRA, lors d'une étape 703, les pixels d'un bloc de pixels courant à partir d'un bloc de prédiction dérivé à partir de pixels de blocs de pixels reconstruits situés dans un voisinage causal du bloc de pixels à coder. Le résultat de la prédiction INTRA est une direction de prédiction indiquant quels pixels des blocs de pixels du voisinage utiliser, et un bloc résiduel résultant d'un calcul d'une différence entre le bloc de pixels courant et le bloc de prédiction.
Le mode de codage INTER consiste à prédire les pixels d'un bloc de pixels courant à partir d'un bloc de pixels, appelé bloc de référence, d'une image précédant ou suivant l'image courante, cette image étant appelée image de référence. Lors du codage d'un bloc de pixels courant suivant le mode de codage INTER, le bloc de pixels de l'image de référence le plus proche, suivant un critère de similarité, du bloc de pixels courant est déterminé par une étape d'estimation de mouvement 704. Lors de l'étape 704, un vecteur de mouvement indiquant la position du bloc de pixels de référence dans l'image de référence est déterminé. Ledit vecteur de mouvement est utilisé lors d'une étape 705 de compensation de mouvement au cours de laquelle un bloc résiduel est calculé sous la forme d'une différence entre le bloc de pixels courant et le bloc de référence. On peut remarquer que nous avons décrit ici un mode de codage inter mono- prédit. Il existe aussi un mode de codage inter bi-prédit (ou mode B) pour lequel un bloc de pixels courant est associé à deux vecteurs de mouvement, désignant deux blocs de référence dans deux images différentes, le bloc résiduel de ce bloc de pixels étant alors une moyenne de deux blocs résiduels.
Lors d'une étape 706 de sélection, le mode de codage optimisant les performances de compression, selon un critère débit/distorsion, parmi les deux modes testés est sélectionné par le dispositif d'encodage. Lorsque le mode de codage est sélectionné, le bloc résiduel est transformé lors d'une étape 707 et quantifié lors d'une étape 709. Lorsque le bloc de pixels courant est codé selon le mode de codage INTRA, la direction de prédiction et le bloc résiduel transformé et quantifié sont encodés par un encodeur entropique lors d'une étape 510. Lorsque le bloc de pixels courant est encodé selon le mode de codage INTER, le vecteur de mouvement du bloc de pixel est prédit à partir d'un vecteur de prédiction sélectionné parmi un ensemble de vecteurs de mouvement correspondant à des blocs de pixels reconstruits situés à proximité du bloc de pixels à coder. Le vecteur de mouvement est ensuite encodé par l'encodeur entropique lors de l'étape 710 sous la forme d'un résiduel de mouvement et d'un indice permettant d'identifier le vecteur de prédiction. Le bloc résiduel transformé et quantifié est encodé par l'encodeur entropique lors de l'étape 710. Le résultat de l'encodage entropique est inséré dans un flux vidéo binaire 711.
Dans le standard HEVC, le paramètre de quantification d'un bloc de pixels est prédit à partir de paramètres de quantification de blocs de pixels du voisinage ou d'un paramètre de quantification décrit en entête de tranche. Des éléments de syntaxe codent alors dans le flux binaire de la vidéo une différence entre le paramètre de quantification d'un bloc de pixels et sa prédiction (cf. section 7.4.9.10 et section 8.6 du standard HEVC).
Après quantification lors de l'étape 709, le bloc de pixels courant est reconstruit afin que les pixels que ledit bloc de pixels courant contient puissent servir pour des prédictions futures. Cette phase de reconstruction est aussi appelée boucle de prédiction. On applique donc au bloc résiduel transformé et quantifié une quantification inverse lors d'une étape 712 et une transformation inverse lors d'une étape 713. En fonction du mode de codage utilisé pour le bloc de pixels obtenu lors d'une étape 714, le bloc de prédiction du bloc de pixels est reconstruit. Si le bloc de pixels courant est encodé selon le mode de codage INTER, le dispositif de codage applique, lors d'une étape 716, une compensation de mouvement inverse utilisant le vecteur de mouvement du bloc de pixels courant pour identifier le bloc de référence du bloc de pixels courant. Si le bloc de pixels courant est encodé suivant un mode de codage INTRA, lors d'une étape 715, la direction de prédiction correspondant au bloc de pixels courant est utilisée pour reconstruire le bloc de référence du bloc de pixels courant. Le bloc de référence et le
bloc résiduel reconstruit sont additionnés pour obtenir le bloc de pixels courant reconstruit.
Suite à la reconstruction, un post filtrage de boucle (« loop fïlter » en terminologie anglo-saxonne) est appliqué, lors d'une étape 717, au bloc de pixels reconstruit. On appelle ce post filtrage post filtrage de boucle car ce post filtrage intervient dans la boucle de prédiction de manière à obtenir à l'encodage les mêmes images de référence que le décodage et éviter ainsi un décalage entre l'encodage et le décodage. Le post filtrage de boucle de HEVC comprend deux méthodes de post- filtrage, Le. un filtrage de déblocage (« deblocking fïlter » en terminologie anglo- saxonne) et un filtrage SAO (« Sample Adaptive Offset » en terminologie anglo- saxonne). On note que le post filtrage de H.264/AVC ne comprend que le filtrage de déblocage.
Le filtrage de déblocage a pour but d'atténuer des discontinuités à des frontières de blocs de pixels dues aux différences de quantification entre blocs de pixels. C'est un filtrage adaptatif qui peut être activé ou désactivé, et lorsqu'il est activé, qui peut prendre la forme d'un filtrage de déblocage de complexité élevée basé sur un filtre séparable à une dimension comportant six coefficients de filtre, qu'on appelle par la suite filtre fort, et un filtrage de déblocage de faible complexité basé sur un filtre séparable à une dimension comportant quatre coefficients, qu'on appelle par la suite filtre faible. Le filtre fort atténue fortement les discontinuités aux frontières des blocs de pixels ce qui peut endommager des hautes fréquences spatiales présentes dans des images originales. Le filtre faible atténue faiblement les discontinuités aux frontières des blocs de pixels, ce qui permet de préserver des hautes fréquences spatiales présentes dans les images originales, mais sera moins efficace sur les discontinuités artificiellement créées par la quantification. La décision de filtrer ou de ne pas filtrer, et la forme du filtre utilisé en cas de filtrage, dépendent de la valeur des pixels aux frontières du bloc de pixels à filtrer et de deux paramètres codés dans le flux vidéo binaire sous forme de deux éléments de syntaxe définis par le standard HEVC. Un dispositif de décodage peut déterminer, en utilisant ces éléments de syntaxe, si un filtrage de déblocage doit être appliqué et la forme de filtrage de déblocage à appliquer.
Le filtrage SAO prend deux formes ayant deux objectifs différents. La première forme appelée rehaussement de contour (« edge offset » en terminologie anglo- saxonne) a pour but de compenser les effets de la quantification sur les contours dans les blocs de pixels. Le filtrage SAO par rehaussement de contour comprend une
classification des pixels de l'image reconstruite suivant quatre catégories correspondant à quatre types respectifs de contour. La classification d'un pixel se fait par filtrage suivant quatre filtres, chaque filtre permettant d'obtenir un gradient de filtrage. Le gradient de filtrage maximisant un critère de classification indique le type de contour correspondant au pixel. Chaque type de contour est associé à une valeur de rehaussement qui est ajoutée aux pixels lors du filtrage SAO.
La seconde forme de SAO est appelée rehaussement de bande (« band offset » en terminologie anglo-saxonne) et a pour but de compenser l'effet de la quantification sur des pixels appartenant à certaines plages (i.e. bande) de valeurs. Dans le filtrage par rehaussement de bande, l'ensemble des valeurs possibles pour un pixel, comprises le plus fréquemment entre « 0 » et « 255 » pour les flux vidéo sur « 8 » bits, est divisé en trente-deux plages de huit valeurs. Parmi ces trente-deux plages, quatre plages consécutives sont sélectionnées pour être rehaussées. Lorsqu'un pixel a une valeur comprise dans une des quatre plages de valeurs à rehausser, une valeur de rehaussement est ajoutée à la valeur du pixel.
La décision de mettre en œuvre le filtrage SAO, et lorsque le filtrage SAO est mis en œuvre, la forme du filtrage SAO et les valeurs de rehaussement sont déterminées pour chaque CTB par le dispositif d'encodage par une optimisation débit/distorsion. Lors de l'étape 510 d'encodage entropique, le dispositif d'encodage insère des informations dans le flux vidéo binaire 511 permettant à un dispositif de décodage de déterminer si le filtrage SAO doit être appliqué à un CTB et, le cas échéant, la forme et les paramètres du filtrage SAO à appliquer.
Lorsqu'un bloc de pixels est reconstruit, il est inséré lors d'une étape 520 dans une image reconstruite stockée dans une mémoire 521 d'images reconstruites aussi appelée mémoire d'images de référence. Les images reconstruites ainsi stockées peuvent alors servir d'images de référence pour d'autres images à coder.
Lorsque tous les blocs de pixels d'une tranche sont codés, le flux vidéo binaire correspondant à la tranche est inséré dans un conteneur appelé unité d'abstraction du niveau réseau (« Network Abstraction Layer Unit (NALU) » en terminologie anglo- saxonne). En cas de transmission réseau, ces conteneurs sont insérés dans des paquets réseaux soit directement, soit dans des conteneurs intermédiaires de flux de transport (« transport stream » en terminologie anglo-saxonne), tels que les flux de transport MP4.
La Fig. 7C représente schématiquement une méthode de décodage d'un flux compressé selon le standard HEVC mise en œuvre par un dispositif de décodage. Le décodage se fait bloc de pixels par bloc de pixels. Pour un bloc de pixels courant, il commence par un décodage entropique du bloc de pixels courant lors d'une étape 810. Le décodage entropique permet d'obtenir le mode de codage du bloc de pixels.
Si le bloc de pixels a été encodé selon le mode de codage INTER, le décodage entropique permet d'obtenir un indice de vecteur de prédiction, un résiduel de mouvement, et un bloc résiduel. Lors d'une étape 808, un vecteur de mouvement est reconstruit pour le bloc de pixels courant en utilisant l'indice de vecteur de prédiction et le résiduel de mouvement.
Si le bloc de pixels a été encodé selon le mode de codage INTRA, le décodage entropique permet d'obtenir une direction de prédiction et un bloc résiduel. Des étapes 812, 813, 814, 815 et 816 mises en œuvre par le dispositif de décodage, sont en tous points identiques respectivement aux étapes 812, 813, 814, 815 et 816 mises en œuvre par le dispositif d'encodage.
Le dispositif de décodage applique ensuite un post filtrage de boucle lors d'une étape 817. Comme pour l'encodage, le post filtrage de boucle comprend pour le standard HEVC un filtrage de déblocage et un filtrage SAO, alors que le filtrage de boucle ne comprend qu'un filtrage de déblocage pour le standard AVC.
Le filtrage SAO est mis en œuvre par le dispositif de décodage lors d'une étape
819. Lors du décodage, le dispositif de décodage n'a pas à déterminer si le filtrage SAO doit être appliqué sur un bloc de pixels et, si le filtrage SAO doit être appliqué, le dispositif de décodage n'a pas à déterminer la forme de filtrage SAO à appliquer et les valeurs de rehaussement, puisque le dispositif de décodage trouvera ces informations dans le flux vidéo binaire. Si, pour un CTB, le filtrage SAO est de la forme rehaussement de contour, pour chaque pixel du CTB, le dispositif de décodage doit déterminer par filtrage le type de contour, et ajouter la valeur de rehaussement correspondant au type de contour déterminé. Si pour un CTB, le filtrage SAO est de la forme rehaussement de bande, pour chaque pixel du CTB, le dispositif de décodage compare la valeur du pixel à filtrer avec les plages de valeurs à rehausser, et si la valeur du pixel appartient à l'une des plages de valeurs à rehausser, la valeur de rehaussement correspondant à ladite plage de valeur est ajoutée à la valeur du pixel.
Comme nous l'avons vu plus haut en relation avec la Fig. 5, lors de l'étape 503, le module d'adaptation 340 applique, aux blocs de pixels n'appartenant pas à une zone
privilégiée, un taux de compression en moyenne plus élevé qu'une moyenne des taux de compression appliqués aux blocs de pixels appartenant à une zone privilégiée. Le taux de compression d'un bloc de pixels dépend grandement d'une part de son mode de codage et d'autre part de son paramètre de quantification.
Lorsque le module d'adaptation reçoit une vidéo immersive non encodé il doit encoder chaque image de la vidéo immersive en appliquant des taux de compression différents suivant que les blocs de pixels appartiennent ou pas à une zone privilégiée.
La Fig. 8 représente schématiquement un procédé d'adaptation destiné à adapter une vidéo non encodée mis en œuvre par le module d'adaptation lors de l'étape 503.
Lors d'une étape 5031, le module d'adaptation obtient une information représentative d'un débit disponible sur le réseau local 35.
Dans une étape 5032, le module d'adaptation détermine à partir de l'information représentative d'un débit, un budget de bits pour une image à encoder.
Dans une étape 5033, le module d'adaptation détermine à partir dudit budget, un budget de bits pour chaque bloc de pixels de l'image à encoder. Pour le premier bloc de pixels de l'image à encoder, le budget de bits d'un bloc de pixels est égal au budget pour l'image à encoder divisé par le nombre de blocs de pixels de l'image à encoder. Pour les autres blocs de pixels de l'image, le budget de bits pour un blocs de pixels est égal au budget de bits pour l'image à encoder dont on a soustrait les bits déjà consommés pour les blocs de pixels encodés précédemment divisé par le nombre de blocs de pixels de l'image à encoder restant à encoder.
Dans une étape 5034, le module d'adaptation détermine si le bloc de pixels à encoder courant est un bloc de pixels appartenant à une zone privilégiée. Si c'est le cas, le module d'adaptation applique au bloc de pixels courant, le procédé décrit en relation avec la Fig. 7B lors d'une étape 5036. Une optimisation débit distorsion permet de déterminer le mode de codage et le paramètre de quantification du bloc de pixels courant.
Si le bloc de pixels courant n'appartient pas à une zone privilégiée, le module d'adaptation applique aussi au bloc de pixels courant, le procédé décrit en relation avec la Fig. 7B. Toutefois, lors de l'étape 5035, le module d'adaptation ajoute une constante prédéfinie Δ à la valeur du paramètre de quantification déterminé par l'optimisation débit/distorsion. Dans un mode de réalisation la constante prédéfinie Δ = 3.
Suite aux étapes 5035 et 5036, le module d'adaptation détermine lors d'une étape 5037 si le bloc de pixels courant est le dernier bloc de pixels de l'image à encoder. Si
ce n'est pas le cas, le module d'adaptation retourne à l'étape 5033 pour procéder au codage d'un nouveau bloc de pixels. Si c'est le dernier bloc de pixels de l'image à encoder, le procédé décrit en relation avec la Fig. 8 se termine et le module d'adaptation retourne à l'étape 501 ou démarre un encodage d'une nouvelle image.
En allouant aux blocs de pixels n'appartenant pas à une zone privilégiée un paramètre de quantification supérieur au paramètre de quantification déterminé par l'optimisation débit distorsion, on laisse une part plus importante du budget de débit d'une image aux blocs de pixels appartenant à une zone privilégiée. De cette manière, la qualité d'une zone privilégiée est meilleure que la qualité d'une zone non privilégiée.
On note que le procédé de la Fig. 8 est applicable à d'autres standards de compression vidéo telle que AVC ou MPEG-4 visual. Toutefois, dans le cadre de MPEG-4 visual, le paramètre de quantification d'un bloc de pixels est prédit à partir du paramètre de quantification du dernier bloc de pixels encodé dans une image mais la différence en valeur absolue entre un paramètre de quantification et son prédicteur ne peut pas excéder « 2 ». Dans ce cas, une transition entre une zone privilégiée et une zone non-privilégiée (et vice-versa) doit se faire sur plusieurs blocs de pixels si la constante prédéfinie Δ est supérieure à « 2 ».
Dans un mode de réalisation, plutôt que d'augmenter artificiellement le paramètre de quantification de chaque bloc de pixels non situé dans une zone privilégiée en utilisant la constante prédéfinie Δ, le budget de bits pour une image à encoder est divisé en deux sous-budgets distincts : un premier sous-budget pour les blocs de pixels appartenant à une zone privilégiée et un second sous-budget pour les blocs de pixels n'appartenant pas à une zone privilégiée. Le premier sous-budget est supérieur au second sous-budget. Par exemple, le premier sous budget est égal à deux tiers du budget de bits pour une image, alors que le second budget est égal à un tiers du budget de bits pour une image.
Lorsque la vidéo immersive est une vidéo encodée selon un standard de compression vidéo, l'adaptation de la vidéo immersive par le module d'adaptation 340 peut consister en un transcodage.
Dans un mode de réalisation, lors du transcodage, le module d'adaptation 340 décode intégralement chaque image de la vidéo immersive considérée pendant la période P, par exemple selon le procédé décrit en relation avec la Fig. 7C et la ré-encode selon le procédé décrit en relation avec la Fig. 8.
Dans un mode de réalisation, lors du transcodage, le module d'adaptation ne décode et ré-encode que partiellement la vidéo immersive encodée de manière à réduire la complexité du transcodage. On suppose ici que la vidéo immersive a été encodée dans le format HEVC.
La Fig. 9 représente schématiquement un procédé d'adaptation destiné à adapter une vidéo encodée mis en œuvre par le module d'adaptation lors de l'étape 503.
Le procédé décrit en relation avec la Fig. 9 est mis en œuvre pour chaque image de la vidéo immersive considérée pendant la période P bloc de pixels par bloc de pixels.
Dans une étape 901, le module d'adaptation 340 applique un décodage entropique au bloc de pixels courant tel que décrit dans l'étape 810.
Dans une étape 902, le module d'adaptation 340 applique une quantification inverse au bloc de pixels courant comme décrit dans l'étape 812.
Dans une étape 903, le module d'adaptation 340 applique une transformation inverse au bloc de pixels courant comme décrit dans l'étape 813. A ce stade on obtient un bloc résiduel de prédiction.
Dans une étape 904, le module d'adaptation 340 détermine si le bloc de pixels courant appartient à une zone privilégiée.
Si le bloc de pixels courant appartient à une zone privilégiée, le module d'adaptation 340 exécute une étape 905. Lors de l'étape 905, on prend en compte le fait que le ou les blocs de référence (soit des blocs de référence pour de la prédiction INTRA, soit des blocs de référence pour de la prédiction INTER) du bloc de pixels courant ont pu être re-quantifïés. En cas de re-quantifïcation, un bloc de référence est donc différent du bloc de référence original. La prédiction INTER ou INTRA à partir de ce bloc de référence modifié est donc incorrecte. On ajoute donc lors de l'étape 905 une erreur de re-quantifïcation au bloc résiduel reconstruit du bloc de pixels courant pour compenser l'effet de la requantifïcation.
Une erreur de re-quantifïcation est une différence entre un bloc résiduel reconstruit avant re-quantifïcation et le même bloc résiduel reconstruit après prise en compte d'une re-quantifïcation. On peut avoir une erreur de re-quantifïcation directe suite à une re-quantifïcation d'un bloc résiduel et une erreur de re-quantifïcation indirecte suite à une re-quantifïcation d'au moins un bloc de référence d'un bloc de pixels prédit par prédiction INTRA ou INTER. Dans le procédé décrit en relation avec la Fig. 9, à chaque fois qu'un bloc résiduel d'un bloc de pixels courant est reconstruit, le module d'adaptation 340 calcule une différence entre le bloc résiduel original du bloc
de pixels courant reconstruit et le bloc résiduel du bloc de pixels courant reconstruit en prenant en compte une erreur de re-quantifïcation directe et/ou indirecte affectant ce bloc résiduel. Cette différence forme l'erreur de re-quantifïcation du bloc de pixels courant. L'erreur de re-quantifïcation de chaque bloc de pixels est conservée par le module d'adaptation 340 par exemple sous forme d'une image d'erreur de re- quantifïcation, pour pouvoir être utilisée pour calculer l'erreur de re-quantifïcation d'autres blocs de pixels faisant référence au bloc de pixels courant (i.e. lors de l'étape 905).
Dans une étape 906, le module d'adaptation 340 applique une transformation tel que décrit dans l'étape 707 au bloc résiduel obtenu lors de l'étape 905.
Dans une étape 907, le module d'adaptation 340 applique une quantification tel que décrit dans l'étape 709 au bloc résiduel transformé obtenu lors de l'étape 906, en réutilisant le paramètre de quantification original dudit bloc de pixels courant.
Dans une étape 908, le module d'adaptation 340 applique un codage entropique tel que décrit dans l'étape 710 au bloc résiduel quantifié obtenu lors de l'étape 907 et insère un flux binaire correspondant audit codage entropique dans le flux binaire de la vidéo immersive en remplacement du flux binaire original correspondant au bloc de pixels courant.
Dans une étape 909, le module d'adaptation 340 passe à un bloc de pixels suivant de l'image courante, ou passe à une autre image, si le bloc de pixels courant était le dernier bloc de pixels de l'image courante.
Lorsque le bloc de pixels courant n'appartient pas à une zone privilégiée, ce bloc de pixels est re-quantifïé avec un paramètre de quantification plus élevé que son paramètre de quantification original.
Le module d'adaptation 340 met en œuvre des étapes 910 et 911 qui sont respectivement identiques aux étapes 905 et 906.
Dans une étape 912, le module d'adaptation 340 modifie le paramètre de quantification du bloc de pixels courant. Le module d'adaptation ajoute alors une constante prédéfinie Δ à la valeur du paramètre de quantification du bloc de pixels courant.
Dans une étape 913, le module d'adaptation 340 applique une quantification tel que décrit dans l'étape 709 au bloc résiduel transformé obtenu lors de l'étape 911, en utilisant le paramètre de quantification modifié du bloc de pixels courant.
Nous avons vu en relation avec la Fig. 7B, que dans le standard HEVC, le paramètre de quantification d'un bloc de pixels est prédit à partir de paramètres de quantification de blocs de pixels de son voisinage. Des éléments de syntaxe codent ensuite dans le flux binaire de la vidéo une différence entre le paramètre de quantification d'un bloc de pixels et sa prédiction. Lorsqu'on modifie le paramètre de quantification d'un bloc de pixels courant, il est nécessaire de compenser cette modification dans les blocs de pixels voisins dont le paramètre de quantification est prédit à partir du paramètre de quantification du bloc de pixels courant.
Dans une étape 914, le module d'adaptation 340 modifie dans le flux binaire de la vidéo chaque élément de syntaxe représentant une différence entre un paramètre de quantification d'un bloc de pixels et sa prédiction pour chaque bloc de pixels dont le paramètre de quantification est prédit à partir du paramètre de quantification du bloc de pixels courant pour prendre. Le module d'adaptation 340 ajoute ainsi une valeur à la valeur de chaque élément de syntaxe représentant une différence entre un paramètre de quantification d'un bloc de pixels et sa prédiction pour compenser la modification de la prédiction due à la modification d'un paramètre de quantification.
Dans une étape 915, le module d'adaptation procède au codage entropique du bloc résiduel obtenu lors de l'étape 913 et de chaque élément de syntaxe obtenu lors de l'étape 914 et insère un flux binaire correspondant audit codage entropique dans le flux binaire de la vidéo immersive en remplacement du flux binaire original correspondant au bloc de pixels courant.
Dans un mode de réalisation, dans le procédé de la Fig. 9, la constante prédéfinie Δ est fixée de manière à ce que la vidéo immersive transcodée soit compatible avec une contrainte de débit sur le réseau local 35.
Dans un mode de réalisation, dans le procédé de la Fig. 9, le paramètre de quantification des blocs de pixels appartenant à une zone privilégiée sont eux aussi augmentés d'une constante prédéfinie Δ' de manière à ce que la vidéo immersive transcodée soit compatible avec une contrainte de débit sur le réseau local 35. Toutefois Δ' < Δ.
Claims
REVENDICATIONS
1) Procédé de transmission d'une vidéo immersive entre une unité réseau et au moins un équipement de visualisation permettant à une pluralité d'utilisateurs de visualiser simultanément ladite vidéo immersive, l'unité réseau et chaque équipement de visualisation étant reliés par un réseau de communication, la vidéo immersive comprenant une suite d'ensembles d'images, chaque ensemble étant constitué d'images successives, chaque image étant composée de blocs de pixels, la vidéo immersive étant transmise sous une forme encodée selon un standard de compression vidéo prédéterminé à chaque équipement de visualisation, caractérisé en ce que le procédé est mis en œuvre par l'unité réseau et comprend pour chaque ensemble d'images :
obtenir (501) une information représentative d'un point de vue sur la vidéo immersive observée par chaque utilisateur ;
déterminer (502) au moins une zone d'image, dite zone privilégiée, correspondant à au moins une partie des points de vue, la détermination comprenant :
déterminer (5027) pour chaque point de vue, une sous-partie spatiale de la vidéo immersive correspondant audit point de vue ;
définir une pluralité de catégories de blocs de pixels, une première catégorie comprenant des blocs de pixels n'apparaissant dans aucune sous-partie spatiale, et au moins une seconde catégorie comprenant des blocs de pixels apparaissant au moins dans un nombre prédéfini de sous-parties spatiales ;
classer (5028) chaque bloc de pixels d'une image de l'ensemble d'images dans une catégorie en fonction du nombre de fois que ce bloc de pixels apparaît dans une sous-partie spatiale ; et,
former (5029) au moins une zone privilégiée à partir de blocs de pixels classés dans chaque seconde catégorie ;
pour chaque image comprise dans l'ensemble d'images, appliquer (503) aux blocs de pixels n'appartenant pas à une zone privilégiée, un taux de compression en moyenne plus élevé qu'une moyenne des taux de compression appliqués aux blocs de pixels appartenant à une zone privilégiée ; et,
transmettre (504) l'ensemble d'images à chaque équipement de visualisation.
2) Procédé selon la revendication 1, caractérisé en ce que l'unité réseau obtient la vidéo immersive sous une forme non compressée et encode la vidéo immersive selon le
standard de compression vidéo prédéterminé ou l'unité réseau obtient la vidéo immersive sous une forme compressée et transcode la vidéo immersive de sorte qu'elle soit compatible avec le standard de compression vidéo prédéterminé. 3) Procédé selon la revendication 1 ou 2 caractérisé en ce qu'il comprend en outre, ajouter aux sous-parties spatiales définies en fonction d'un point de vue, au moins une sous-partie spatiale prédéfinie, ou définie à partir de statistiques sur des points de vue d'utilisateurs sur ladite vidéo immersive lors d'autres visualisations de la vidéo immersive.
4) Procédé selon la revendication 1 ou 2 caractérisé en ce qu'il comprend en outre, associer à chaque sous-partie spatiale définie en fonction des points de vue, dite sous- partie spatiale courante, une sous-partie spatiale, dite sous-partie spatiale extrapolée, définie en fonction d'une position de la sous-partie spatiale courante et d'une information représentative d'un mouvement d'une tête d'un utilisateur correspondant à ce point de vue, les sous-parties spatiales courantes et extrapolées étant prises en compte dans la définition de chaque zone privilégiée.
5) Unité réseau adaptée pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 4.
6) Système comprenant au moins un équipement de visualisation permettant à une pluralité d'utilisateurs de visualiser simultanément une vidéo immersive et une unité réseau selon la revendication 5.
7) Programme d'ordinateur, caractérisé en ce qu'il comprend des instructions pour mettre en œuvre, par un dispositif (340), le procédé selon l'une quelconque des revendications 1 à 4, lorsque ledit programme est exécuté par un processeur dudit dispositif (340).
8) Moyens de stockage, caractérisés en ce qu'ils stockent un programme d'ordinateur comprenant des instructions pour mettre en œuvre, par un dispositif (340), le procédé selon l'une quelconque des revendications 1 à 4, lorsque ledit programme est exécuté par un processeur dudit dispositif (340).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1755017A FR3067199B1 (fr) | 2017-06-06 | 2017-06-06 | Procede de transmission d'une video immersive |
| PCT/EP2018/064706 WO2018224473A1 (fr) | 2017-06-06 | 2018-06-05 | Procede de transmission d'une video immersive |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3635960A1 true EP3635960A1 (fr) | 2020-04-15 |
Family
ID=59521086
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP18728165.4A Withdrawn EP3635960A1 (fr) | 2017-06-06 | 2018-06-05 | Procede de transmission d'une video immersive |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20200092591A1 (fr) |
| EP (1) | EP3635960A1 (fr) |
| CN (1) | CN110710221A (fr) |
| BR (1) | BR112019025698A2 (fr) |
| FR (1) | FR3067199B1 (fr) |
| WO (1) | WO2018224473A1 (fr) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113453083B (zh) * | 2020-03-24 | 2022-06-28 | 腾讯科技(深圳)有限公司 | 多自由度场景下的沉浸式媒体获取方法、设备及存储介质 |
| EP4060997A1 (fr) * | 2021-03-17 | 2022-09-21 | Koninklijke Philips N.V. | Pré-traitement de vidéo immersive |
| CN114420066B (zh) * | 2022-01-20 | 2023-04-25 | 海宁奕斯伟集成电路设计有限公司 | 图像处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7027655B2 (en) * | 2001-03-29 | 2006-04-11 | Electronics For Imaging, Inc. | Digital image compression with spatially varying quality levels determined by identifying areas of interest |
| CN100496121C (zh) * | 2007-04-11 | 2009-06-03 | 宁波大学 | 一种交互式多视点视频系统的图像信号处理方法 |
| CN103002283A (zh) * | 2012-11-20 | 2013-03-27 | 南京邮电大学 | 多视角分布式视频压缩的边信息生成方法 |
| EP3113159A1 (fr) * | 2015-06-30 | 2017-01-04 | Thomson Licensing | Procédé et dispositif pour le traitement d'une partie d'un contenu vidéo immersif selon la position de parties de référence |
-
2017
- 2017-06-06 FR FR1755017A patent/FR3067199B1/fr not_active Expired - Fee Related
-
2018
- 2018-06-05 WO PCT/EP2018/064706 patent/WO2018224473A1/fr not_active Ceased
- 2018-06-05 CN CN201880037950.8A patent/CN110710221A/zh active Pending
- 2018-06-05 BR BR112019025698-9A patent/BR112019025698A2/pt not_active Application Discontinuation
- 2018-06-05 US US16/617,887 patent/US20200092591A1/en not_active Abandoned
- 2018-06-05 EP EP18728165.4A patent/EP3635960A1/fr not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US20200092591A1 (en) | 2020-03-19 |
| CN110710221A (zh) | 2020-01-17 |
| FR3067199B1 (fr) | 2020-05-22 |
| FR3067199A1 (fr) | 2018-12-07 |
| BR112019025698A2 (pt) | 2020-09-01 |
| WO2018224473A1 (fr) | 2018-12-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11057646B2 (en) | Image processor and image processing method | |
| US11711588B2 (en) | Video delivery | |
| CN110419221B (zh) | 自适应扰动立方体的地图投影 | |
| US10620441B2 (en) | Viewport-aware quality metric for 360-degree video | |
| CN110447226B (zh) | 用于对360度视频进行译码的自适应参数 | |
| US10992939B2 (en) | Directional intra-prediction coding | |
| WO2019006198A1 (fr) | Réduction d'artefacts de raccord dans une vidéo à 360 degrés | |
| CN112262581B (zh) | 视频码流中的约束标志指示 | |
| WO2019093234A1 (fr) | Dispositif de codage, dispositif de décodage, procédé de codage et procédé de décodage | |
| US20130235935A1 (en) | Preprocessing method before image compression, adaptive motion estimation for improvement of image compression rate, and method of providing image data for each image type | |
| FR3018417A1 (fr) | Procede de modification d'un flux video binaire. | |
| WO2019211541A2 (fr) | Procédé et dispositif de décodage d'une vidéo multi-vue, et procédé et dispositif de traitement d'images | |
| EP3635960A1 (fr) | Procede de transmission d'une video immersive | |
| TW202245469A (zh) | 預處理沉浸式視訊 | |
| US10944975B2 (en) | Image processing device and image processing method | |
| EP3625966B1 (fr) | Procédé de communication d'une vidéo immersive | |
| EP2368367A1 (fr) | Système et procédé interactif pour la transmission sur un réseau bas débit d'images clefs sélectionnées dans un flux video | |
| CN116456166A (zh) | 媒体数据的数据处理方法及相关设备 | |
| Campagnaro et al. | On the feasibility of video streaming through underwater acoustic links | |
| CN115152237B (zh) | 图像编码装置和方法 | |
| FR3026592A1 (fr) | Procede de transcodage de donnees video a fusion d'unites de codage, programme informatique, module de transcodage et equipement de telecommunications associes | |
| WO2017094216A1 (fr) | Procédé de décodage d'image, procédé de codage d'image, appareil de décodage d'image, appareil de codage d'image et appareil de codage/décodage d'image | |
| Jun | A fast coding unit mode decision method based on the mode inheritance of upper coding unit for low-complexity compression of smart contents | |
| 羅文志 | 利用邊緣運算最佳化 360 度全景影片之頭戴式虛擬實境串流 | |
| Usman | Enhancing the quality of video streaming over unreliable wireless networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20191126 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| 17Q | First examination report despatched |
Effective date: 20201123 |
|
| 18W | Application withdrawn |
Effective date: 20210322 |