EP4140136A1 - Methods and devices for coding and decoding a multi-view video sequence - Google Patents
Methods and devices for coding and decoding a multi-view video sequenceInfo
- Publication number
- EP4140136A1 EP4140136A1 EP21721150.7A EP21721150A EP4140136A1 EP 4140136 A1 EP4140136 A1 EP 4140136A1 EP 21721150 A EP21721150 A EP 21721150A EP 4140136 A1 EP4140136 A1 EP 4140136A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- patch
- transformation
- atlas
- data stream
- decoded
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000009466 transformation Effects 0.000 claims abstract description 197
- 238000000844 transformation Methods 0.000 claims abstract description 46
- 230000004048 modification Effects 0.000 claims abstract description 15
- 238000012986 modification Methods 0.000 claims abstract description 15
- 238000005070 sampling Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 3
- 238000012550 audit Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 description 18
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000003786 synthesis reaction Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 5
- 238000012886 linear function Methods 0.000 description 4
- 238000011049 filling Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 2
- XDLMVUHYZWKMMD-UHFFFAOYSA-N 3-trimethoxysilylpropyl 2-methylprop-2-enoate Chemical compound CO[Si](OC)(OC)CCCOC(=O)C(C)=C XDLMVUHYZWKMMD-UHFFFAOYSA-N 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- PTLRDCMBXHILCL-UHFFFAOYSA-M sodium arsenite Chemical compound [Na+].[O-][As]=O PTLRDCMBXHILCL-UHFFFAOYSA-M 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- 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
-
- 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/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Definitions
- the invention relates to so-called immersive videos, representative of a scene captured by one or more cameras. More particularly, the invention relates to the encoding and decoding of such videos.
- the scene is conventionally captured by a set of cameras, as illustrated in figure 1.
- These cameras can be of 2D type (cameras Ci, C 2 , C 3 , C 4 in FIG. 1), or type 360, ie capturing the entire scene at 360 degrees around the camera (camera C5 in FIG. 1).
- one or more views are calculated from the decoded views.
- FIG. 2 illustrates an example of a coding-decoding system using such a selection of data from the multi-view video making it possible to synthesize intermediate views on the decoder side.
- one or more basic views are encoded by a 2D encoder, for example an HEVC type encoder, or by a multi-view encoder.
- the other views (T s , D s ) undergo a processing which makes it possible to extract certain zones from each of these views.
- the extracted areas also called patches hereafter, are gathered in images called atlases.
- the atlases are coded for example by a conventional 2D video coder, for example a HEVC coder.
- the atlases are decoded, providing the decoded patches to the view synthesis algorithm to produce intermediate views from the base views and decoded patches.
- the patches make it possible to transmit the same area seen from another point of view.
- the patches make it possible to transmit the occlusions, that is to say the parts of the scene which are not visible from a given view.
- the MIV system (MPEG-I part 12) in its reference implementation (TMIV for “Test Model for Immersive Video”) generates atlases formed from a set of patches.
- Figure 3 illustrates an example of extracting patches (Patch2, Patch5, Patch8, Patch3, Patch7) from views (V 0 , Vi, V) and the creation of associated atlases, for example two atlases A 0 and Ai .
- These atlases A 0 and Ai each comprise an image of texture T 0 , Ti and a corresponding depth map D 0, Di.
- the atlas A 0 comprises a texture T 0 and a depth D 0
- the atlas comprises a texture Ti and a depth Di.
- the patches are gathered in images and coded by a conventional 2D video coder.
- it is necessary to have an optimal arrangement of the patches in the atlases.
- it is necessary not only to reduce the cost of compressing such patches, but also the number of pixels. to be processed for the decoder.
- the devices for rendering such videos have more limited resources than the devices for encoding such videos.
- the invention improves the state of the art. For this purpose, it relates to a method of decoding a coded data stream representative of a multi-view video, said coded data stream comprising coded data representative of at least one atlas, said at least one atlas corresponding to an image comprising at least one patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream .
- the decoding process includes:
- the invention also relates to a method of encoding a data stream representative of a multi-view video, the encoding method comprises:
- the invention also makes it possible to apply transformations to the patches of an atlas which are different from one patch to another, or which possibly have different parameters.
- the arrangement of patches in an atlas is thus optimized for compression.
- the transformations used for the patches of the atlas make it possible, on the one hand, to optimize the occupation rate of the pixels of the atlas, by using transformations such as rotation, subsampling in coding so as to arrange the patches within the atlas image.
- the transformations make it possible to optimize the cost of compressing the patches, in particular by modifying the pixel values of these patches, for example by reducing the dynamics of the pixels, by sub-sampling, which leads to coding fewer pixels, or even by using an optimal arrangement of the patches in the atlas image making it possible to have as few pixels as possible to code.
- the reduction in the occupation rate of the pixels of the atlas also makes it possible to reduce the rate of pixels to be processed by the decoder, and therefore to reduce the complexity of the decoding.
- it is determined whether a transformation must be applied to said at least one patch decoded from at least one syntax element decoded from said coded data stream for said at least one patch .
- a syntax element is explicitly coded in the data stream to indicate whether a transformation must be applied to the decoded patch and which transformation to apply.
- said at least one decoded syntax element comprises at least one indicator indicating whether a transformation must be applied to said at least one patch and whether the indicator indicates that a transformation must be applied said at least one patch, said at least one syntax element optionally comprises at least one parameter of said transformation.
- the transformation to be applied to the patch is coded in the form of an indicator indicating whether a transformation must be applied to the patch or not, and in the positive case, optionally the parameter (s) of the transformation to apply.
- a binary flag can indicate whether a transformation should be applied to the patch, and if so, a code indicating which transformation is used, and possibly one or more parameters of the transformation, such as scale factor, function of modification of the dynamics of the pixels, angle of rotation, etc ...
- the transformation parameters can be defined by default at the encoder.
- said at least one parameter of said transformation to be applied to said patch has a value which is encoded by prediction with respect to a prediction value.
- the prediction value is encoded in a header of a view, or of a component of the atlas or of the atlas.
- the prediction value corresponds to the value of a parameter of a transformation applied to a patch belonging to the group comprising:
- the determination, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch is carried out if a syntax element decoded from a header of the data stream indicates an activation of the application of transformations to the patches encoded in the data stream, said syntax element being encoded in a header of a view or of a component of a view or of said atlas.
- a high level syntax element is encoded in the data stream to indicate the use of transformations to be applied to the patches of the multi-view video.
- a transformation must be applied to said at least one decoded patch if a characteristic of said decoded patch meets a criterion.
- the indication of the use of a transformation to be applied to the patch is not coded explicitly in the data stream. Such an indication is inferred from a characteristic of the decoded patch. This particular embodiment of the invention allows the use of patch transformations without incurring additional coding cost to signal the use of transformations.
- the characteristic corresponds to an energy E calculated from the value of the pixels of said at least one decoded patch, the transformation to be applied to said at least one patch corresponding to a multiplication of the value of said pixels by a determined factor, when the energy E is less than a threshold.
- an order in which said transformations must be applied is predefined. According to this particular embodiment of the invention, no signaling is necessary to indicate the order in which the transformations are applied. This order is defined at the encoder and at the decoder and remains the same for all the patches to which these transformations apply.
- the invention also relates to a device for decoding an encoded data stream representative of a multi-view video, said encoded data stream comprising encoded data representative of at least one atlas, said at least one atlas corresponding to an atlas. image comprising at least one patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream, the decoding device comprising a processor and a memory configured for:
- such a device is included in a terminal.
- the invention also relates to a device for encoding a data stream representative of a multi-view video, comprising a processor and a memory configured for:
- such a device is included in a terminal.
- the coding method, and respectively the decoding method according to the invention can be implemented in various ways, in particular in wired form or in software form.
- the coding method, respectively the decoding method is implemented by a computer program.
- the invention also relates to a computer program comprising instructions for implementing the coding method or the decoding method according to any one of the particular embodiments described above, when said program is executed by a processor.
- Such a program can use any programming language. It can be downloaded from a communications network and / or recorded on a computer readable medium.
- This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other. desirable form.
- the invention also relates to a recording medium or information medium readable by a computer, and comprising instructions of a computer program as mentioned above.
- the aforementioned recording media can be any entity or device capable of storing the program.
- the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, a USB key, or else a magnetic recording means, for example a hard disk.
- the recording media can correspond to a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
- the program according to the invention can in particular be downloaded from an Internet type network.
- the recording media can correspond to an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
- FIG. 1 schematically illustrates an example of a system for capturing a multi-view of a scene.
- FIG. 2 schematically illustrates an example of a multi-view coder based on the coding of patches.
- Figure 3 illustrates an example of patch extraction and atlas creation.
- FIG. 4 illustrates steps of a coding method according to a particular embodiment of the invention.
- FIG. 5 illustrates steps of a decoding method according to a particular embodiment of the invention.
- FIG. 6 illustrates an example of data flow according to a particular embodiment of the invention.
- FIG. 7 illustrates an example of the architecture of a coding device according to a particular embodiment of the invention.
- FIG. 8 illustrates an example of the architecture of a decoding device according to a particular embodiment of the invention.
- FIG. 4 illustrates the steps of a method for encoding a multi-view video in at least one encoded data stream according to a particular embodiment of the invention.
- the multi-view video is encoded according to an encoding scheme as presented in relation to FIG. 2 in which one or more so-called basic views are encoded in the data stream and in which sub-images or Patches comprising texture and depth data are also encoded in the data stream. These patches come from additional views which are not fully encoded in the data stream. Such patches and one or more basic views allow the decoder to synthesize other views of the scene, also called virtual views, or synthesized views or even intermediate views thereafter. These summary views were not encoded in the data stream. The steps of such a coding scheme relating to a particular embodiment of the invention are described below.
- the scene is captured by a set of cameras Ci, C 2 , ..., C N as in FIG. 1.
- Each camera generates a view, comprising at least one so-called texture component which varies during time.
- the texture component of a view is a sequence of 2D images corresponding to the images captured by the camera placed at the viewpoint of the view.
- Each view also includes a depth component, called the depth map, which is determined for each image in the view.
- the depth map can be generated in a known manner by estimating the depth using the texture, or by capturing volumetric data of the scene using devices using Lidar technology for "Light detection and Ranging". in English.
- view will be used to indicate a sequence of texture images and depth maps representative of the scene captured from a point of view.
- view can also correspond to a texture image and a depth map of a view at a given time.
- the encoder then proceeds to the steps which are described below, for example according to the encoding scheme defined in Base I Salahieh, Bart Kroon, Joe I Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO / IEC JTC 1 / SC 29 / WG 11 N19002, Brussels, BE - January 2020.
- one or more so-called base views are selected from the captured views of the multi-view video.
- the base views are selected from the set of captured views of the multi-view video by known means. For example, spatial subsampling can be done to select every other view. In another example, the content of the views can be used to determine which views are to be kept as base views. In yet another example, the camera settings (position, orientation, focal length) can be used to determine which views to select as base views. At the end of step E40, a number of views are selected to be base views.
- a “pruning” method is applied to the additional views to identify for each additional view one or more patches to be transmitted to the decoder.
- This step makes it possible to determine the patches to be transmitted by extracting from the images of additional views the areas necessary for the synthesis of intermediate views. For example, such zones correspond to occlusion zones not visible in the basic views, or else to visible zones having undergone a change in illumination, or even having a lower quality in the basic views.
- the extracted areas are of arbitrary size and shape.
- a group of pixels connected to their neighbors is carried out to create from zones extracted from the same view one or more rectangular patches easier to code and to arrange.
- the encoder determines one or more transformation (s) which will be applied to the patch when it is arranged in an atlas.
- the patches can be patches comprising a texture component and / or a depth component.
- the patches are arranged in the atlases so as to minimize the cost of coding the atlases and / or reduce the number of pixels to be processed by the decoder.
- the patches can undergo transformations, among which:
- the encoder then goes through each patch and determines one or more transformations to apply to the patch.
- an “identity” transformation in other words no transformations, can also be included in the list of transformations to be tested for the patch.
- the selection of a transformation among the possible transformations can be made by evaluating a rate-distortion criterion calculated on the reconstructed signal using the rate necessary to encode the transformed patch and the distortion calculated between the original patch. and the transformed patch coded then reconstructed. The selection can also be made based on the evaluation of the quality of the additional view synthesized using the patch being processed.
- the factors Nv, Nh, and Ne can be tested.
- the factors Nv, Nh, and Ne are equal to 2. In other embodiments, other values are possible, such as 4, 8 or 16.
- mapping The transformation corresponding to a modification of the values of the pixels is also called a “mapping” in English.
- Such a mapping transformation can for example consist in dividing all the values of the pixels of the patch by a given value Dv.
- Dv is 2.
- other values are possible, such as 4, 8, or 16.
- the parameter P of the transformation is then a list of triples (x1, a, b) for each linear part of the mapping.
- the mapping can also be a LUT (“LookUp Table”) which is an array associating a value y with an input x.
- LUT LookUp Table
- the determination of a transformation associated with a patch can also take into account the number of atlases available to encode the multi-view video and simulate the arrangement of the patches in the atlases in order to optimize the bit rate / coding distortion cost of the atlases. atlas or the quality of the synthesis of intermediate views in a global way.
- step E42 a list of transformed patches is available. Each patch is associated with the transformation (s) determined for this patch and the associated parameters.
- the patches are arranged in one or more atlases.
- the number of atlases depends for example on parameters defined on input to the encoder which are in particular the size of an atlas (length and height) and the maximum number M of pixels for the texture and depth of all the atlases per image or instant given. This maximum number M corresponds to the number of pixels to be processed for the decoder for an instant of the multi-view video.
- each base view is encoded in an atlas comprising a patch comprising a texture component and a depth component of the base view at a given instant. According to this particular mode, there are then as many atlases as there are base views and as many atlases as necessary to transport all the patches extracted from the additional views.
- an atlas may include a base view and patches, or a base view may be clipped and represented on multiple atlases if the view size is larger than the size of an atlas.
- a patch of an atlas can then correspond to an entire image of a base view or to a part of a base view or to an area extracted from an additional view.
- the texture pixels of the patches are arranged in the texture component of an atlas and the depth pixels of the patches are arranged in the depth component of an atlas.
- An atlas may only have a single texture or depth component, or it may include a texture component and a depth component.
- an atlas can also include other types of component including information useful for the synthesis of intermediate views.
- other types of components may include information such as a reflectance index, to indicate how transparent the corresponding area is, or even confidence information about the depth value at that location.
- the coder goes through all the patches in the patch list. For each patch, the encoder determines in which atlas this patch will be encoded. This list includes processed patches and unprocessed patches. Untransformed patches are either patches comprising areas extracted from additional views that have not undergone any transformation or identity transformation, or patches comprising base view images. It is considered here that when the patch must undergo a transformation, it has already been transformed.
- An atlas is a set of spatially rearranged patches in an image. This image is intended to be encoded. This arrangement is intended to occupy the space in the atlas images to be encoded as well as possible. Indeed, one of the objectives of video coding is to minimize the number of pixels to be decoded before being able to synthesize a view. For this, the patches are arranged in the atlases so as to maximize the number of patches in an atlas. Such a method is described in Base I Salahieh, Bart Kroon, Jo ⁇ l Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO / IEC JTC 1 / SC 29 / WG 11 N 19002, Brussels, BE - January 2020.
- step E43 a list of patches for each atlas is generated. It should be noted that this arrangement also determines the number of atlases to be coded for a given moment.
- each atlas which includes a texture component and / or a depth component in the form of a 2D image is encoded using a conventional video encoder such as HEVC, VVC, MV- HEVC, 3D-HEVC, etc.
- a conventional video encoder such as HEVC, VVC, MV- HEVC, 3D-HEVC, etc.
- the base views are considered here as patches.
- the coding of atlases therefore involves the coding of the basic views.
- the information associated with each atlas is encoded in the data stream.
- This information is conventionally encoded by an entropy encoder.
- the patch list includes the following, for each patch in the list:
- step E45 for at least several patches of the atlas, information relating to the transformations to be applied to the patch during decoding is encoded in the data stream.
- the transformations to be applied to the patch during decoding correspond to the inverse transformations applied to the patch when arranging the patch in the atlas and determined above.
- each patch information indicating the transformation to be applied is transmitted.
- the transformation to be applied to the decoding which is indicated and not the transformation applied to the encoding (corresponding to the inverse transformation of the decoding).
- the information transmitted on the transformation to be applied may correspond to information indicating the transformation applied to the coding, the decoder then deducing the transformation to be applied from this information.
- the information indicating the transformation to be applied can be an index indicating the transformation to be applied in a list of possible transformations.
- a list can further include an identity transformation.
- an index indicating the identity transformation can thus be encoded.
- a binary indicator can be coded to indicate whether the patch is transformed or not, and if the binary indicator indicates that the patch has been transformed, an index indicating the transformation to be applied in the list of possible transformations is coded. .
- only the binary indicator can be coded to indicate whether the patch is transformed or not.
- the list of possible transformations can be known to the decoder and therefore does not need to be transmitted in the data stream. In other embodiments, the list of possible transformations can be coded in the data stream, for example in a header of a view or of the multi-view video.
- the parameters associated with the transformations to be applied can also be defined by default and known to the decoder.
- the parameters associated with a transformation applied to the patch are encoded in the data stream for each patch.
- the parameter associated with the transformation can correspond to a value of an interpolation to be applied for all the dimensions or a value of an interpolation to apply for each of the dimensions.
- the parameters of this transformation correspond to the characteristics of the mapping to be applied: parameters of a linear function, piecewise linear , Look-up Table (LUT), ....
- LUT Look-up Table
- the possible LUT (s) can be known to the decoder.
- the parameter corresponds to the angle of rotation selected from among the possible rotations.
- the parameters associated with a transformation can be encoded as they are or else by prediction with respect to a prediction value.
- a prediction value can be defined and encoded in the data stream in a header of a view, or of a component, or of an image of a view. , or an atlas including the current patch.
- the P value of a parameter will be predicted by a Ppred value encoded at the level of the atlas.
- the difference between Ppred and P is then coded for each patch in the atlas.
- the prediction value Ppred can correspond to the value of the parameter used for a patch previously processed.
- it can be the previous patch in the patch processing order, or the previous patch belonging to the same view as the current patch.
- the prediction value of the parameter can also be obtained by a mechanism similar to the “Merge” mode (merged in French) of an HEVC type encoder.
- For each patch a list of candidate patches is defined and an index pointing to one of these candidate patches is coded for the patch.
- it is not necessary to transmit an index a criterion being able to be used to identify the patch among the list of candidate patches.
- the information indicating whether the patch must undergo a transformation can be decomposed into a part which indicates the use of the transformation (for example a binary flag) and a part which indicates the parameters of the transformation. , if usage is enabled.
- This signaling mechanism can be used independently for each possible transformation for the patch.
- a binary indicator can be coded at the level of a header of an atlas, or of a view or of a component, to activate the use of a determined transformation for the patches of this atlas, of this view or of this component.
- the application of the transformation determined for a patch then depends on the value of this binary indicator.
- two binary indicators U and I B associated respectively with the activation of a transformation A and with the activation of a transformation B are encoded in a header of an atlas.
- the value of the binary indicator indicates that the use of transformation A is possible, while the value of the binary indicator I B indicates that the use of transformation B is not possible.
- a binary indicator will indicate whether transformation A is applied to the patch, and possibly the associated parameters. It is not necessary in this example to code for each patch a binary indicator to indicate whether the transformation B is applied to the patch.
- an atlas can comprise a patch for which a determined transformation can be applied as a function of the indicator coded for this patch and a patch for which the same transformation cannot be applied.
- no indicator for this transformation is encoded in the patch information.
- no information indicating a transformation is coded at the patch level. This is deduced at the decoder from a characteristic of the patch. The transformation is then applied to the patch as soon as it meets a certain criterion. This particular mode will be described in more detail below in relation to the decoding method.
- FIG. 5 illustrates the steps of a method for decoding an encoded data stream representative of a multi-view video according to a particular embodiment of the invention.
- the encoded data stream was generated by the encoding method described in relation to FIG. 4.
- the atlas information is decoded. This information is conventionally decoded by a suitable entropy decoder.
- this information can be an index indicating a transformation among a list of possible transformations, or else for each possible transformation, an indicator indicating whether the transformation must be applied to the patch.
- the information may correspond to a binary indicator indicating the use of the transformation or a value of an interpolation to be applied for all dimensions.
- the information may correspond to a binary indicator indicating the use of the transformation or for each of the dimensions a value of an interpolation to apply.
- the information may include information indicating the use of the mapping, and possibly information representative of the characteristics of the mapping to be applied. (parameters of a linear function, piecewise linear, Look-up Table, ).
- the parameter will indicate which rotation has been selected among the possible rotations.
- the information transmitted making it possible to identify a transformation to be applied to the patch is decoded in a manner suited to the coding applied. Thus, it can be decoded as is (direct decoding) or in a predictive manner, in a manner similar to the encoder.
- the information making it possible to identify a transformation to be applied to the patch can comprise a part which indicates the use of the transformation (binary indicator) and a part which indicates the parameters of the transformation. , if usage is enabled.
- the decoding for a given patch of information identifying a transformation to be applied to the patch may depend on a binary activation indicator encoded at the header of the atlas, sight or component to which the patch belongs.
- the information identifying a transformation to be applied to the patch is not encoded with the information of the patch, but derived from the characteristics of the decoded patch.
- Dv a determined factor for modifying the patch values.
- the patch is interpolated by a determined factor, for example a factor of 2 in the vertical dimension.
- the patch dimensions considered here are the patch dimensions decoded from information from the atlas in which the patch was encoded. These are therefore the dimensions of the patch before transformation at the decoder (and therefore after transformation at the encoder).
- This variant makes it possible to mix in the same atlas "long” patches for which it is not interesting to do a sub-sampling and "long” patches for which one sub-samples without signaling, which makes them respect the criterion. which allows them to interpolate to the decoder.
- Other threshold values can be used, for example more restrictive values like 0.9 ⁇ H / W ⁇ 1.1.
- each atlas which includes a 2D texture component and / or a 2D depth component, is decoded using a conventional video decoder such as AVC or HEVC, VVC, MV-HEVC, 3D-HEVC, etc.
- the decoded patches are reconstructed by applying the transformation identified during step E50 to the texture component and / or to the depth component of each patch in its atlas depending on whether the transformation applies to texture, depth or both components.
- this step consists of individually modifying each patch by applying the transformation identified for this patch. This can be done in different ways, for example: by modifying the pixels of the patch in the atlas that contains it, by copying the modified patch in a buffer memory area, or by copying the transformed patch in the view associated with it. .
- each patch to be reconstructed can have one of the following transformations applied:
- the transmitted mapping parameters can be either the encoder mapping parameters (and then the decoder will have to apply the inverse mapping function), or the decoder mapping parameters (and then the encoder will have to apply the inverse mapping function).
- the encoder it is possible to apply to the encoder several transformations to a patch. These transformations are signaled in the stream in the information encoded for the patch or else deduced from the characteristics of the decoded patch. For example, it is possible to apply to the encoder a downsampling by a factor of 2 in each dimension of the patch, followed by a mapping of the pixel values of the patch, then a rotation.
- the order of the transformations to be applied is predefined and known to the encoder and to the decoder. For example, the encoder order is as follows: rotation, then downsampling, then mapping.
- step E52 a set of reconstructed patches is available.
- At least one intermediate view is synthesized using at least one basic view and at least one patch reconstructed previously.
- the chosen virtual view synthesis algorithm is applied to the decoded and reconstructed data from the multi-view video that has been transmitted to the decoder. As explained previously, this algorithm relies on the pixels of the components of the base views and patches to produce a view from a point of view between the cameras.
- the synthesis algorithm uses at least two textures and two depth maps, taken from base views and / or additional views to generate an intermediate view.
- Synthesizers are known and belong, for example, to the DIBR (“Depth Image Based Rendering”) category.
- DIBR Depth Image Based Rendering
- algorithms frequently used by standards organizations are:
- the RVS for "Reference View Synthesizer” in English, initiated by the University of Brussels and improved by Philips begins by projecting the reference views using a calculated disparity.
- the references are partitioned into triangles, and distorted. Then the deformed views of each reference are mixed (“blending” in English), then a basic “inpainting” type filling is applied to fill the dis-occlusions;
- VVS VVS for “Versatile View Synthesizer” in English, developed by Orange, sorts the references, applies a deformation of certain information from the depth maps, then a conditional fusion of these depths. Then a backward warping of the textures is applied, then a fusion different textures and different depths. Finally, a spatio-temporal “inpainting” type filling is applied, before spatial filtering of the intermediate image.
- FIG. 6 illustrates an example of a data stream according to a particular embodiment of the invention and in particular the atlas information encoded in the stream and making it possible to identify one or more transformations to be applied to the patches of the atlas.
- the data stream was generated according to the encoding method according to any one of the particular embodiments described in relation to FIG. 4, and it is suitable for being decoded by the decoding method according to any one. particular embodiments described in relation to FIG. 5.
- such a flow comprises in particular:
- the patch information and in particular a Trf indicator indicating whether or not the transformation is used for the patch,
- a Par parameter of the transformation for example in the form of a residue obtained with respect to the prediction value Ppred, when the latter is encoded.
- FIG. 7 shows the simplified structure of a COD coding device suitable for implementing the coding method according to any one of the particular embodiments of the invention.
- the steps of the coding method are implemented by computer program instructions.
- the coding device COD has the conventional architecture of a computer and comprises in particular a memory MEM, a processing unit UT, equipped for example with a processor PROC, and controlled by the computer program PG stored in MEM memory.
- the PG computer program comprises instructions for implementing the steps of the encoding method as described above, when the program is executed by the processor PROC.
- the code instructions of the computer program PG are for example loaded into a RAM memory (not shown) before being executed by the processor PROC.
- the processor PROC of the processing unit UT notably implements the steps of the coding method described above, according to the instructions of the computer program PG.
- FIG. 8 shows the simplified structure of a decoding device DEC suitable for implementing the decoding method according to any one of the particular embodiments of the invention.
- the decoding device DEC has the conventional architecture of a computer and notably comprises a MEMO memory, a UTO processing unit, equipped for example with a PROCO processor, and controlled by the PGO computer program stored in MEMO memory.
- the computer program PGO comprises instructions for implementing the steps of the decoding method as described above, when the program is executed by the processor PROCO.
- the code instructions of the computer program PGO are for example loaded into a RAM memory (not shown) before being executed by the processor PROCO.
- the processor PROCO of the processing unit UTO notably implements the steps of the decoding method described above, according to the instructions of the computer program PGO.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
The invention relates to a method for coding and a method for decoding a coded data stream representing a multi-view video. The coded data stream comprises coded data representing at least one atlas, said at least one atlas corresponding to an image comprising at least one patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being coded in said coded data stream. The method for decoding particularly comprises decoding, from said coded data stream, said at least one atlas, comprising: decoding said at least one patch, determining, for said at least one decoded patch, whether a transformation, and which transformation, must be applied to said at least one decoded patch, said transformation belonging to the group of transformations comprising at least over-sampling of the patch or a modification of the values of pixels of the patch, and applying the determined transformation to said decoded patch.
Description
DESCRIPTION DESCRIPTION
Titre: Procédés et dispositifs de codage et de décodage d'une séquence vidéo multi- vues Title: Methods and devices for encoding and decoding a multi-view video sequence
1. Domaine de l'invention 1. Field of the invention
L'invention concerne les vidéos dites immersives, représentatives d'une scène capturée par une ou plusieurs caméras. Plus particulièrement, l'invention concerne le codage et le décodage de telles vidéos. The invention relates to so-called immersive videos, representative of a scene captured by one or more cameras. More particularly, the invention relates to the encoding and decoding of such videos.
2. Art Antérieur 2. Prior Art
Dans un contexte de vidéo immersive, c’est à dire où le spectateur a la sensation d’être immergé dans la scène, la scène est classiquement capturée par un ensemble de caméras, telle qu'illustrée en figure 1. Ces caméras peuvent être de type 2D (caméras Ci, C2, C3, C4 de la figure 1), ou de type 360, c’est à dire capturant toute la scène à 360 degrés autour de la caméra (caméra C5 de la figure 1 ). In an immersive video context, ie where the viewer has the feeling of being immersed in the scene, the scene is conventionally captured by a set of cameras, as illustrated in figure 1. These cameras can be of 2D type (cameras Ci, C 2 , C 3 , C 4 in FIG. 1), or type 360, ie capturing the entire scene at 360 degrees around the camera (camera C5 in FIG. 1).
L’ensemble de ces vues capturées sont traditionnellement codées, puis décodées par un terminal du spectateur. Néanmoins, afin de fournir une qualité d’expérience suffisante, et donc une qualité visuelle et une bonne immersion dans la scène affichée au spectateur, afficher seulement les vues capturées est insuffisant. All of these captured views are traditionally encoded and then decoded by a viewer terminal. However, in order to provide a sufficient quality of experience, and therefore visual quality and good immersion in the scene displayed to the viewer, displaying only the captured views is insufficient.
Afin d'améliorer la sensation d'immersion dans la scène, en général, une ou plusieurs vues, dites vues intermédiaires, sont calculées à partir des vues décodées. In order to improve the feeling of immersion in the scene, in general, one or more views, called intermediate views, are calculated from the decoded views.
Le calcul de ces vues intermédiaires peut être réalisé par un algorithme dit « de synthèse » de vue (« view synthesis algorithm » en anglais). The calculation of these intermediate views can be carried out by a so-called "view synthesis" algorithm.
Classiquement, par exemple dans le système MIV (pour « Metadata for Immersive Video » en anglais) en cours de normalisation, toutes les vues originales, i.e. capturées par des caméras, ne sont pas transmises au décodeur. Une sélection, aussi appelée « pruning » en anglais, des données d’au moins certaines des vues originales, susceptibles d’être utilisées pour synthétiser un point de vue intermédiaire, est réalisée. Conventionally, for example in the MIV system (for “Metadata for Immersive Video” in English) during standardization, all the original views, i.e. captured by cameras, are not transmitted to the decoder. A selection, also called "pruning" in English, of the data of at least some of the original views, which could be used to synthesize an intermediate view, is made.
La figure 2 illustre un exemple de système de codage-décodage utilisant une telle sélection de données de la vidéo multi-vues permettant de synthétiser des vues intermédiaires côté décodeur. FIG. 2 illustrates an example of a coding-decoding system using such a selection of data from the multi-view video making it possible to synthesize intermediate views on the decoder side.
Selon cette méthode, une ou plusieurs vues de base (T , Dbsur la figure 2) sont codées par un codeur 2D, par exemple un codeur de type HEVC, ou par un codeur multi-vues. According to this method, one or more basic views (T, D b in FIG. 2) are encoded by a 2D encoder, for example an HEVC type encoder, or by a multi-view encoder.
Les autres vues (Ts, Ds) subissent un traitement qui permet d’extraire certaines zones de chacune de ces vues. Les zones extraites, aussi appelées patchs par la suite sont rassemblées dans des images appelées atlas. Les atlas sont codés par exemple par un codeur vidéo classique 2D, par exemple un codeur HEVC. Côté décodeur, les atlas sont
décodés, fournissant les patchs décodés à l'algorithme de synthèse de vue pour produire des vues intermédiaires à partir des vues de base et des patchs décodés. Globalement, les patchs permettent de transmettre la même zone vue d’un autre point de vue. En particulier, les patchs permettent de transmettre les occlusions, c’est-à-dire les parties de la scène qui ne sont pas visibles depuis une vue donnée. The other views (T s , D s ) undergo a processing which makes it possible to extract certain zones from each of these views. The extracted areas, also called patches hereafter, are gathered in images called atlases. The atlases are coded for example by a conventional 2D video coder, for example a HEVC coder. On the decoder side, the atlases are decoded, providing the decoded patches to the view synthesis algorithm to produce intermediate views from the base views and decoded patches. Overall, the patches make it possible to transmit the same area seen from another point of view. In particular, the patches make it possible to transmit the occlusions, that is to say the parts of the scene which are not visible from a given view.
Le système MIV (MPEG-I part 12) dans son implémentation de référence (TMIV pour « Test Model for Immersive Video » en anglais) génère des atlas formés d’un ensemble de patchs. La figure 3 illustre un exemple d’extraction de patchs (Patch2, Patch5, Patch8, Patch3, Patch7) à partir de vues (V0, Vi, V ) et la création d’atlas associés, par exemple deux atlas A0 et Ai. Ces atlas A0 et Ai comprennent chacun une image de texture T0, Ti et une carte de profondeur D0, Di correspondante. L’atlas A0 comprend une texture T0 et une profondeur D0, et l’atlas comprend une texture Ti et une profondeur Di. The MIV system (MPEG-I part 12) in its reference implementation (TMIV for “Test Model for Immersive Video”) generates atlases formed from a set of patches. Figure 3 illustrates an example of extracting patches (Patch2, Patch5, Patch8, Patch3, Patch7) from views (V 0 , Vi, V) and the creation of associated atlases, for example two atlases A 0 and Ai . These atlases A 0 and Ai each comprise an image of texture T 0 , Ti and a corresponding depth map D 0, Di. The atlas A 0 comprises a texture T 0 and a depth D 0 , and the atlas comprises a texture Ti and a depth Di.
Comme expliqué avec la figure 2, les patchs sont rassemblés dans des images et codés par un codeur vidéo 2D classique. Afin d’éviter les surcoûts de signalisation et de codage des patchs extraits, il est nécessaire d’avoir un arrangement optimal des patchs dans les atlas. De plus, au vu de la grande quantité d’informations à traiter par le décodeur pour reconstruire des vues d’une vidéo multi-vues, il est nécessaire non seulement de réduire le coût de compression de tels patchs, mais également le nombre de pixels à traiter pour le décodeur. En effet, dans la plupart des applications, les appareils de restitution de telles vidéos ont des ressources plus limitées que les dispositifs de codage de telles vidéos. As explained with FIG. 2, the patches are gathered in images and coded by a conventional 2D video coder. In order to avoid the additional signaling and coding costs of the extracted patches, it is necessary to have an optimal arrangement of the patches in the atlases. In addition, in view of the large amount of information to be processed by the decoder to reconstruct views of a multi-view video, it is necessary not only to reduce the cost of compressing such patches, but also the number of pixels. to be processed for the decoder. In fact, in most applications, the devices for rendering such videos have more limited resources than the devices for encoding such videos.
Il existe donc un besoin d'améliorer l'état de la technique. There is therefore a need to improve the state of the art.
3. Exposé de l'invention 3. Disclosure of the invention
L'invention vient améliorer l'état de la technique. Elle concerne à cet effet, un procédé de décodage d’un flux de données codées représentatif d'une vidéo multi-vues, ledit flux de données codées comprenant des données codées représentatives d'au moins un atlas, ledit au moins un atlas correspondant à une image comprenant au moins un patch, ledit au moins un patch correspondant à un ensemble de pixels extraits d’au moins une composante d’une vue de la vidéo multi-vues, ladite vue n’étant pas codée dans ledit flux de données codées. Le procédé de décodage comprend : The invention improves the state of the art. For this purpose, it relates to a method of decoding a coded data stream representative of a multi-view video, said coded data stream comprising coded data representative of at least one atlas, said at least one atlas corresponding to an image comprising at least one patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream . The decoding process includes:
- le décodage, à partir dudit flux de données codées, dudit au moins un atlas, comprenant le décodage dudit au moins un patch, - the decoding, from said encoded data stream, of said at least one atlas, comprising the decoding of said at least one patch,
- la détermination, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant
au moins un sur-échantillonnage du patch ou une modification des valeurs de pixels du patch, - determining, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch, and which transformation, said transformation belonging to the group of transformations comprising at least one oversampling of the patch or a modification of the pixel values of the patch,
- l’application de la transformation déterminée audit patch décodé. - the application of the determined transformation to said decoded patch.
Corrélativement, l’invention concerne aussi un procédé de codage d’un flux de données représentatif d'une vidéo multi-vues, le procédé de codage comprend : Correspondingly, the invention also relates to a method of encoding a data stream representative of a multi-view video, the encoding method comprises:
- l’extraction à partir d’au moins une composante d’une vue de la vidéo multi- vues non codée dans ledit flux de données, d’au moins un patch correspondant à un ensemble de pixels de ladite composante,- the extraction from at least one component of a view of the multi-view video not encoded in said data stream, of at least one patch corresponding to a set of pixels of said component,
- la détermination pour ledit au moins un patch extrait, si une transformation doit être appliquée audit au moins un patch, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant au moins un sous-échantillonnage du patch ou une modification des valeurs de pixels du patch, - determining for said at least one extracted patch, whether a transformation must be applied to said at least one patch, and which transformation, said transformation belonging to the group of transformations comprising at least one sub-sampling of the patch or a modification of the pixel values the patch,
- l’application audit au moins un patch, de la transformation déterminée,- the application audits at least one patch, of the determined transformation,
- le codage d’au moins un atlas dans ledit flux de données, ledit au moins un atlas correspondant à une image comprenant au moins ledit au moins un patch. - the encoding of at least one atlas in said data stream, said at least one atlas corresponding to an image comprising at least said at least one patch.
Grâce à l’invention, il est ainsi possible d’identifier quels patchs d’un atlas décodé doivent subir une transformation, lors de leur reconstruction. Une telle transformation correspond à la transformation inverse de celle appliquée lors du codage de l’atlas. Thanks to the invention, it is thus possible to identify which patches of a decoded atlas must undergo a transformation, during their reconstruction. Such a transformation corresponds to the inverse transformation of that applied when encoding the atlas.
L’invention permet également d’appliquer des transformations aux patchs d’un atlas qui sont différentes d’un patch à l’autre, ou qui ont éventuellement des paramètres différents. L’arrangement des patchs dans un atlas est ainsi optimisé pour la compression. En effet, les transformations utilisées pour les patchs de l’atlas permettent d’une part d’optimiser le taux d’occupation des pixels de l’atlas, en utilisant des transformations telles que rotation, sous- échantillonnage au codage de sorte à arranger les patchs au sein de l’image de l’atlas. D’autre part, les transformations permettent d’optimiser le coût de compression des patchs, notamment par la modification des valeurs de pixels de ces patchs, par exemple en diminuant la dynamique des pixels, par le sous-échantillonnage, ce qui conduit à coder moins de pixels, ou encore en utilisant un arrangement optimal des patchs dans l’image de l’atlas permettant d’avoir le moins de pixels à coder possible. La réduction du taux d’occupation des pixels de l’atlas permet également de réduire le taux de pixels à traiter par le décodeur, et donc de réduire la complexité du décodage.
Selon un mode particulier de réalisation de l’invention, il est déterminé si une transformation doit être appliquée audit au moins un patch décodé à partir d’au moins un élément de syntaxe décodé à partir dudit flux de données codées pour ledit au moins un patch. Selon ce mode particulier de réalisation de l’invention, un élément de syntaxe est explicitement codé dans le flux de données pour indiquer si une transformation doit être appliquée au patch décodé et quelle transformation appliquer. The invention also makes it possible to apply transformations to the patches of an atlas which are different from one patch to another, or which possibly have different parameters. The arrangement of patches in an atlas is thus optimized for compression. Indeed, the transformations used for the patches of the atlas make it possible, on the one hand, to optimize the occupation rate of the pixels of the atlas, by using transformations such as rotation, subsampling in coding so as to arrange the patches within the atlas image. On the other hand, the transformations make it possible to optimize the cost of compressing the patches, in particular by modifying the pixel values of these patches, for example by reducing the dynamics of the pixels, by sub-sampling, which leads to coding fewer pixels, or even by using an optimal arrangement of the patches in the atlas image making it possible to have as few pixels as possible to code. The reduction in the occupation rate of the pixels of the atlas also makes it possible to reduce the rate of pixels to be processed by the decoder, and therefore to reduce the complexity of the decoding. According to a particular embodiment of the invention, it is determined whether a transformation must be applied to said at least one patch decoded from at least one syntax element decoded from said coded data stream for said at least one patch . According to this particular embodiment of the invention, a syntax element is explicitly coded in the data stream to indicate whether a transformation must be applied to the decoded patch and which transformation to apply.
Selon un autre mode particulier de réalisation de l’invention, ledit au moins un élément de syntaxe décodé comprend au moins un indicateur indiquant si une transformation doit être appliquée audit au moins un patch et si l’indicateur indique qu’une transformation doit être appliquée audit au moins un patch, ledit au moins un élément de syntaxe comprend éventuellement au moins un paramètre de ladite transformation. Selon ce mode particulier de réalisation de l’invention, la transformation à appliquer au patch est codée sous la forme d’un indicateur indiquant si une transformation doit être appliquée au patch ou non, et dans le cas positif, éventuellement le ou les paramètres de la transformation à appliquer. Par exemple, un indicateur binaire peut indiquer si une transformation doit être appliquée au patch, et si c’est le cas, un code indiquant quelle transformation est utilisée, et éventuellement un ou des paramètres de la transformation, tels que facteur d’échelle, fonction de modification de la dynamique des pixels, angle de rotation, etc... According to another particular embodiment of the invention, said at least one decoded syntax element comprises at least one indicator indicating whether a transformation must be applied to said at least one patch and whether the indicator indicates that a transformation must be applied said at least one patch, said at least one syntax element optionally comprises at least one parameter of said transformation. According to this particular embodiment of the invention, the transformation to be applied to the patch is coded in the form of an indicator indicating whether a transformation must be applied to the patch or not, and in the positive case, optionally the parameter (s) of the transformation to apply. For example, a binary flag can indicate whether a transformation should be applied to the patch, and if so, a code indicating which transformation is used, and possibly one or more parameters of the transformation, such as scale factor, function of modification of the dynamics of the pixels, angle of rotation, etc ...
Dans d’autres exemples, les paramètres de la transformation peuvent être définis par défaut au codeur. In other examples, the transformation parameters can be defined by default at the encoder.
Selon un autre mode particulier de réalisation de l’invention, ledit au moins un paramètre de ladite transformation à appliquer audit patch a une valeur qui est codée par prédiction par rapport à une valeur de prédiction. Ce mode particulier de réalisation de l’invention permet ainsi de gagner en coût de signalisation des paramètres de la transformation. According to another particular embodiment of the invention, said at least one parameter of said transformation to be applied to said patch has a value which is encoded by prediction with respect to a prediction value. This particular embodiment of the invention thus makes it possible to save in the cost of signaling the parameters of the transformation.
Selon un autre mode particulier de réalisation de l’invention, la valeur de prédiction est codée dans un entête d’une vue, ou d’une composante de l’atlas ou de l’atlas. According to another particular embodiment of the invention, the prediction value is encoded in a header of a view, or of a component of the atlas or of the atlas.
Selon un autre mode particulier de réalisation de l’invention, la valeur de prédiction correspond à la valeur d’un paramètre d’une transformation appliquée à un patch appartenant au groupe comprenant : According to another particular embodiment of the invention, the prediction value corresponds to the value of a parameter of a transformation applied to a patch belonging to the group comprising:
- un patch précédemment traité selon un ordre de traitement des patchs de l’atlas, - a patch previously treated according to an atlas patch treatment order,
- un patch précédemment traité extrait de la même composante d’une vue de la vidéo multi- vues que celle à laquelle ledit au moins un patch appartient,
- un patch sélectionné parmi un ensemble de patchs candidats à l’aide d’un index codé dans ledit flux de données, - a previously processed patch extracted from the same component of a view of the multi-view video as that to which said at least one patch belongs, - a patch selected from a set of candidate patches using an index encoded in said data stream,
- un patch sélectionné parmi un ensemble de patchs candidats à l’aide d’un critère. - a patch selected from a set of candidate patches using a criterion.
Selon un autre mode particulier de réalisation de l’invention, la détermination, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé, est réalisée si un élément de syntaxe décodé à partir d’un entête du flux de données indique une activation de l’application de transformations aux patchs codés dans le flux de données, ledit élément de syntaxe étant codé dans un entête d’une vue ou d’une composante d’une vue ou dudit atlas. Selon ce mode particulier de réalisation de l’invention, un élément de syntaxe haut niveau est codé dans le flux de données pour signaler l’utilisation de transformations à appliquer aux patchs de la vidéo multi-vues. Ainsi, le surcoût engendré par le codage des paramètres des transformations au niveau patch est évité lorsque ces transformations ne sont pas utilisées. De plus, ce mode particulier de réalisation de l’invention permet de limiter la complexité au décodage lorsque ces transformations ne sont pas utilisées. According to another particular embodiment of the invention, the determination, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch, is carried out if a syntax element decoded from a header of the data stream indicates an activation of the application of transformations to the patches encoded in the data stream, said syntax element being encoded in a header of a view or of a component of a view or of said atlas. According to this particular embodiment of the invention, a high level syntax element is encoded in the data stream to indicate the use of transformations to be applied to the patches of the multi-view video. Thus, the additional cost generated by the coding of the parameters of the transformations at the patch level is avoided when these transformations are not used. In addition, this particular embodiment of the invention makes it possible to limit the complexity of the decoding when these transformations are not used.
Selon un autre mode particulier de réalisation de l’invention, il est déterminé qu’une transformation doit être appliquée audit au moins un patch décodé si une caractéristique dudit patch décodé respecte un critère. Selon ce mode particulier de réalisation de l’invention, l’indication de l’utilisation d’une transformation à appliquer au patch n’est pas codée explicitement dans le flux de données. Une telle indication est inférée à partir d’une caractéristique du patch décodé. Ce mode particulier de réalisation de l’invention permet d’utiliser des transformations de patchs sans impliquer de coût de codage supplémentaire pour signaler l’utilisation de transformations. According to another particular embodiment of the invention, it is determined that a transformation must be applied to said at least one decoded patch if a characteristic of said decoded patch meets a criterion. According to this particular embodiment of the invention, the indication of the use of a transformation to be applied to the patch is not coded explicitly in the data stream. Such an indication is inferred from a characteristic of the decoded patch. This particular embodiment of the invention allows the use of patch transformations without incurring additional coding cost to signal the use of transformations.
Selon un autre mode particulier de réalisation de l’invention, la caractéristique correspond à un ratio R=H/W où H correspond à une hauteur et W correspond à une largeur dudit au moins un patch décodé, la transformation à appliquer audit au moins un patch correspondant à un sur-échantillonnage vertical d’un facteur prédéterminé lorsque ledit ratio est compris dans un intervalle déterminé. Selon ce mode particulier de réalisation de l’invention, il est ainsi possible de mélanger dans un même atlas des patchs « longs » pour lesquels il n’est pas intéressant de faire un sous-échantillonnage et des patchs « longs » pour lesquels un sous-échantillonnage est réalisé sans avoir besoin de le signaler. According to another particular embodiment of the invention, the characteristic corresponds to a ratio R = H / W where H corresponds to a height and W corresponds to a width of said at least one decoded patch, the transformation to be applied to said at least one patch corresponding to a vertical oversampling by a predetermined factor when said ratio is within a determined interval. According to this particular embodiment of the invention, it is thus possible to mix in the same atlas “long” patches for which it is not advantageous to do a sub-sampling and “long” patches for which a sub-sample. -sampling is performed without needing to report it.
Selon un autre mode particulier de réalisation de l’invention, la caractéristique correspond à une énergie E calculée à partir de la valeur des pixels dudit au moins un patch décodé, la
transformation à appliquer audit au moins un patch correspondant à une multiplication de la valeur desdits pixels par un facteur déterminé, lorsque l’énergie E est inférieure à un seuil. According to another particular embodiment of the invention, the characteristic corresponds to an energy E calculated from the value of the pixels of said at least one decoded patch, the transformation to be applied to said at least one patch corresponding to a multiplication of the value of said pixels by a determined factor, when the energy E is less than a threshold.
Selon un autre mode particulier de réalisation de l’invention, lorsque plusieurs transformations doivent être appliquées à un même patch, un ordre dans lequel lesdites transformations doivent être appliquées est prédéfini. Selon ce mode particulier de réalisation de l’invention, aucune signalisation n’est nécessaire pour signaler l’ordre dans lequel les transformations sont appliquées. Cet ordre est défini au codeur et au décodeur et reste le même pour tous les patchs auxquels ces transformations s’appliquent. According to another particular embodiment of the invention, when several transformations must be applied to the same patch, an order in which said transformations must be applied is predefined. According to this particular embodiment of the invention, no signaling is necessary to indicate the order in which the transformations are applied. This order is defined at the encoder and at the decoder and remains the same for all the patches to which these transformations apply.
L’invention concerne aussi un dispositif de décodage d’un flux de données codées représentatif d'une vidéo multi-vues, ledit flux de données codées comprenant des données codées représentatives d'au moins un atlas, ledit au moins un atlas correspondant à une image comprenant au moins un patch, ledit au moins un patch correspondant à un ensemble de pixels extraits d’au moins une composante d’une vue de la vidéo multi-vues, ladite vue n’étant pas codée dans ledit flux de données codées, le dispositif de décodage comprenant un processeur et une mémoire configurés pour : The invention also relates to a device for decoding an encoded data stream representative of a multi-view video, said encoded data stream comprising encoded data representative of at least one atlas, said at least one atlas corresponding to an atlas. image comprising at least one patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream, the decoding device comprising a processor and a memory configured for:
- décoder, à partir dudit flux de données codées, ledit au moins un atlas, comprenant le décodage dudit au moins un patch, - decoding, from said encoded data stream, said at least one atlas, comprising the decoding of said at least one patch,
- déterminer, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé et quelle transformation, ladite transformation appartenant au groupe comprenant au moins un sur échantillonnage du patch ou une modification des valeurs de pixels du patch,determining, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch and which transformation, said transformation belonging to the group comprising at least one over-sampling of the patch or a modification of the pixel values of the patch,
- appliquer la transformation déterminée audit patch décodé. - apply the determined transformation to said decoded patch.
Selon un mode particulier de réalisation de l'invention, un tel dispositif est compris dans un terminal. According to a particular embodiment of the invention, such a device is included in a terminal.
L’invention concerne également un dispositif de codage d’un flux de données représentatif d'une vidéo multi-vues, comprenant un processeur et une mémoire configurés pour : The invention also relates to a device for encoding a data stream representative of a multi-view video, comprising a processor and a memory configured for:
- extraire à partir d’au moins une composante d’une vue de la vidéo multi-vues non codée dans ledit flux de données, au moins un patch correspondant à un ensemble de pixels de ladite composante, - extract from at least one component of a view of the multi-view video not encoded in said data stream, at least one patch corresponding to a set of pixels of said component,
- déterminer pour ledit au moins un patch extrait, si une transformation doit être appliquée audit au moins un patch, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant au moins un sous-échantillonnage du patch ou une modification des valeurs de pixels du patch,
- appliquer audit au moins un patch, ladite transformation déterminée, determining for said at least one extracted patch, whether a transformation must be applied to said at least one patch, and which transformation, said transformation belonging to the group of transformations comprising at least one sub-sampling of the patch or a modification of the pixel values of the patch, - applying to said at least one patch, said determined transformation,
- coder au moins un atlas dans ledit flux de données, ledit au moins un atlas correspondant à une image comprenant au moins ledit au moins un patch.encoding at least one atlas in said data stream, said at least one atlas corresponding to an image comprising at least said at least one patch.
Selon un mode particulier de réalisation de l'invention, un tel dispositif est compris dans un terminal. According to a particular embodiment of the invention, such a device is included in a terminal.
Le procédé de codage, et respectivement le procédé de décodage selon l'invention peuvent être mis en oeuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. Selon un mode particulier de réalisation de l'invention, le procédé de codage, respectivement le procédé de décodage, est mis en oeuvre par un programme d'ordinateur. L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de codage ou du procédé de décodage selon l'un quelconque des modes particuliers de réalisation décrits précédemment, lorsque ledit programme est exécuté par un processeur. Un tel programme peut utiliser n’importe quel langage de programmation. Il peut être téléchargé depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur. The coding method, and respectively the decoding method according to the invention can be implemented in various ways, in particular in wired form or in software form. According to a particular embodiment of the invention, the coding method, respectively the decoding method, is implemented by a computer program. The invention also relates to a computer program comprising instructions for implementing the coding method or the decoding method according to any one of the particular embodiments described above, when said program is executed by a processor. Such a program can use any programming language. It can be downloaded from a communications network and / or recorded on a computer readable medium.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other. desirable form.
L'invention vise aussi un support d'enregistrement ou support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci- dessus. Les supports d'enregistrement mentionnés ci-avant peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, une clé USB, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur. D'autre part, les supports d'enregistrement peuvent correspondre à un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. The invention also relates to a recording medium or information medium readable by a computer, and comprising instructions of a computer program as mentioned above. The aforementioned recording media can be any entity or device capable of storing the program. For example, the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, a USB key, or else a magnetic recording means, for example a hard disk. On the other hand, the recording media can correspond to a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can in particular be downloaded from an Internet type network.
Alternativement, les supports d'enregistrement peuvent correspondre à un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Alternatively, the recording media can correspond to an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
4. Liste des figures
D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : 4. List of figures Other characteristics and advantages of the invention will emerge more clearly on reading the following description of a particular embodiment, given by way of simple illustrative and non-limiting example, and the appended drawings, among which:
[Fig. 1] La figure 1 illustre schématiquement un exemple d'un système de capture multi-vues d'une scène. [Fig. 1] FIG. 1 schematically illustrates an example of a system for capturing a multi-view of a scene.
[Fig. 2] La figure 2 illustre schématiquement un exemple d'un codeur multi-vues basé sur le codage de patchs. [Fig. 2] FIG. 2 schematically illustrates an example of a multi-view coder based on the coding of patches.
[Fig. 3] La figure 3 illustre un exemple d’extraction de patchs et la création d’atlas. [Fig. 3] Figure 3 illustrates an example of patch extraction and atlas creation.
[Fig. 4] La figure 4 illustre des étapes d'un procédé de codage selon un mode particulier de réalisation de l'invention. [Fig. 4] FIG. 4 illustrates steps of a coding method according to a particular embodiment of the invention.
[Fig. 5] La figure 5 illustre des étapes d'un procédé de décodage selon un mode particulier de réalisation de l'invention. [Fig. 5] FIG. 5 illustrates steps of a decoding method according to a particular embodiment of the invention.
[Fig. 6] La figure 6 illustre un exemple de flux de données selon un mode particulier de réalisation de l'invention. [Fig. 6] FIG. 6 illustrates an example of data flow according to a particular embodiment of the invention.
[Fig. 7] La figure 7 illustre un exemple d'architecture d'un dispositif de codage selon un mode particulier de réalisation de l'invention. [Fig. 7] FIG. 7 illustrates an example of the architecture of a coding device according to a particular embodiment of the invention.
[Fig. 8] La figure 8 illustre un exemple d'architecture d'un dispositif de décodage selon un mode particulier de réalisation de l'invention. [Fig. 8] FIG. 8 illustrates an example of the architecture of a decoding device according to a particular embodiment of the invention.
5. Description d'un mode de réalisation de l'invention 5. Description of an embodiment of the invention
La figure 4 illustre des étapes d'un procédé de codage d’une vidéo multi-vues dans au moins un flux de données codées selon un mode particulier de réalisation de l'invention. FIG. 4 illustrates the steps of a method for encoding a multi-view video in at least one encoded data stream according to a particular embodiment of the invention.
Selon l'invention, la vidéo multi-vues est codée selon un schéma de codage tel que présenté en relation avec la figure 2 dans lequel une ou des vues dites de base sont codées dans le flux de données et dans lequel des sous-images ou patchs comprenant des données de texture et de profondeur sont également codées dans le flux de données. Ces patchs proviennent de vues additionnelles qui ne sont pas codées en entier dans le flux de données. De tels patchs et une ou plusieurs vues de base permettent au décodeur de synthétiser d'autres vues de la scène, aussi appelées vues virtuelles, ou vues synthétisées ou encore vues intermédiaires par la suite. Ces vues synthétisées n'ont pas été codées dans le flux de données. On décrit ci-après les étapes d'un tel schéma de codage relatives à un mode particulier de réalisation de l'invention. According to the invention, the multi-view video is encoded according to an encoding scheme as presented in relation to FIG. 2 in which one or more so-called basic views are encoded in the data stream and in which sub-images or Patches comprising texture and depth data are also encoded in the data stream. These patches come from additional views which are not fully encoded in the data stream. Such patches and one or more basic views allow the decoder to synthesize other views of the scene, also called virtual views, or synthesized views or even intermediate views thereafter. These summary views were not encoded in the data stream. The steps of such a coding scheme relating to a particular embodiment of the invention are described below.
On considère ici par exemple que la scène est capturée par un ensemble de caméra Ci, C2, ..., CN comme sur la figure 1. Chaque caméra génère une vue, comprenant au moins une composante dite de texture qui varie au cours du temps. Autrement dit, la composante de texture d’une vue est une séquence d’images 2D correspondant aux images capturées par la caméra placée au point de vue de la vue. Chaque vue comprend également une
composante de profondeur, dite carte de profondeur, qui est déterminée pour chaque image de la vue. It is considered here for example that the scene is captured by a set of cameras Ci, C 2 , ..., C N as in FIG. 1. Each camera generates a view, comprising at least one so-called texture component which varies during time. In other words, the texture component of a view is a sequence of 2D images corresponding to the images captured by the camera placed at the viewpoint of the view. Each view also includes a depth component, called the depth map, which is determined for each image in the view.
La carte de profondeur peut être générée de façon connue par une estimation de la profondeur à l’aide de la texture, ou par capture de données volumétriques de la scène à l’aide de dispositifs utilisant une technologie Lidar pour « Light détection and Ranging » en anglais. The depth map can be generated in a known manner by estimating the depth using the texture, or by capturing volumetric data of the scene using devices using Lidar technology for "Light detection and Ranging". in English.
Par la suite, le terme « vue » sera utilisé pour indiquer une séquence d’images de texture et cartes de profondeur représentatives de la scène capturée depuis un point de vue. Par abus de langage, le terme « vue » peut également correspondre à une image de texture et une carte de profondeur d’une vue à un instant donné. Subsequently, the term "view" will be used to indicate a sequence of texture images and depth maps representative of the scene captured from a point of view. By abuse of language, the term "view" can also correspond to a texture image and a depth map of a view at a given time.
Lorsque les vues de la vidéo multi-vues sont capturées, le codeur procède ensuite aux étapes qui sont décrites ci-après, par exemple selon le schéma de codage défini dans Base I Salahieh, Bart Kroon, Joe I Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO/IEC JTC 1 /SC 29/WG 11 N19002, Brussels, BE - Janvier 2020. When the views of the multi-view video are captured, the encoder then proceeds to the steps which are described below, for example according to the encoding scheme defined in Base I Salahieh, Bart Kroon, Joe I Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO / IEC JTC 1 / SC 29 / WG 11 N19002, Brussels, BE - January 2020.
Lors d’une étape E40, une ou des vues dites de base sont sélectionnées parmi les vues capturées de la vidéo multi-vues. During a step E40, one or more so-called base views are selected from the captured views of the multi-view video.
Les vues de base sont sélectionnées parmi l’ensemble des vues capturées de la vidéo multi- vues selon des moyens connus. Par exemple, un sous-échantillonnage spatial peut être fait pour sélectionner une vue sur deux. Selon un autre exemple, le contenu des vues peut être utilisé pour déterminer quelles vues sont à conserver en tant que vues de base. Selon encore un autre exemple, les paramètres des caméras (position, orientation, focale) peuvent être utilisés pour déterminer les vues qu’il convient de sélectionner comme vues de base. A l’issue de l’étape E40, un certain nombre de vues sont sélectionnées pour être des vues de base. The base views are selected from the set of captured views of the multi-view video by known means. For example, spatial subsampling can be done to select every other view. In another example, the content of the views can be used to determine which views are to be kept as base views. In yet another example, the camera settings (position, orientation, focal length) can be used to determine which views to select as base views. At the end of step E40, a number of views are selected to be base views.
Les autres vues, non sélectionnées comme des vues de base, sont appelées « vues additionnelles ». Other views, not selected as base views, are called “additional views”.
Lors d’une étape E41 , une méthode de « pruning » est appliquée aux vues additionnelles pour identifier pour chaque vue additionnelle un ou plusieurs patchs à transmettre au décodeur. Cette étape permet de déterminer les patchs à transmettre en extrayant à partir des images de vues additionnelles les zones nécessaires à la synthèse de vues intermédiaires. Par exemple, de telles zones correspondent à des zones d’occlusion non visibles dans les vues de base, ou bien à des zones visibles ayant subi un changement d’illumination, ou encore ayant une qualité moindre dans les vues de base. Les zones extraites sont de taille et de forme arbitraire. Un regroupement de pixels connectés à leurs
voisins (clustering en anglais) est réalisé pour créer à partir des zones extraites d’une même vue un ou des patchs rectangulaires plus faciles à coder et à arranger. During a step E41, a “pruning” method is applied to the additional views to identify for each additional view one or more patches to be transmitted to the decoder. This step makes it possible to determine the patches to be transmitted by extracting from the images of additional views the areas necessary for the synthesis of intermediate views. For example, such zones correspond to occlusion zones not visible in the basic views, or else to visible zones having undergone a change in illumination, or even having a lower quality in the basic views. The extracted areas are of arbitrary size and shape. A group of pixels connected to their neighbors (clustering in English) is carried out to create from zones extracted from the same view one or more rectangular patches easier to code and to arrange.
Lors d’une étape E42, pour chaque patch, le codeur détermine une ou plusieurs transformation(s) qui sera(ont) appliquée(s) au patch lors de son arrangement dans un atlas.During a step E42, for each patch, the encoder determines one or more transformation (s) which will be applied to the patch when it is arranged in an atlas.
Il est rappelé que les patchs peuvent être des patchs comprenant une composante de texture et/ou une composante de profondeur. It is recalled that the patches can be patches comprising a texture component and / or a depth component.
Les patchs sont arrangés dans les atlas de sorte à minimiser le coût de codage des atlas et/ou réduire le nombre de pixels à traiter par le décodeur. Pour cela, les patchs peuvent subir des transformations, parmi lesquelles : The patches are arranged in the atlases so as to minimize the cost of coding the atlases and / or reduce the number of pixels to be processed by the decoder. For this, the patches can undergo transformations, among which:
• Sous-échantillonnage d’un facteur Nv dans la dimension verticale • Sub-sampling of a factor Nv in the vertical dimension
• Sous-échantillonnage d’un facteur Nh dans la dimension horizontale • Sub-sampling of a factor Nh in the horizontal dimension
• Sous échantillonnage d’un facteur Ne dans chaque dimension • Sub-sampling of a factor Ne in each dimension
• Modification des valeurs des pixels contenues dans le patch • Modification of the pixel values contained in the patch
• Rotation du patch d’un angle i*90° où i=0, 1 , 2 ou3. • Rotation of the patch by an angle i * 90 ° where i = 0, 1, 2 or 3.
Le codeur parcourt alors chaque patch et détermine une ou plusieurs transformations à appliquer au patch. The encoder then goes through each patch and determines one or more transformations to apply to the patch.
Dans une variante, une transformation « identité », autrement dit pas de transformations, peut également être comprise dans la liste des transformations à tester pour le patch. In one variant, an “identity” transformation, in other words no transformations, can also be included in the list of transformations to be tested for the patch.
La sélection d’une transformation parmi les transformations possibles peut être faite par l’évaluation d’un critère débit-distorsion calculé sur le signal reconstruit à l’aide du débit nécessaire pour coder le patch transformé et de la distorsion calculée entre le patch original et le patch transformé codé puis reconstruit. La sélection peut aussi être faite en fonction de l’évaluation de la qualité de la vue additionnelle synthétisée en utilisant le patch en cours de traitement. The selection of a transformation among the possible transformations can be made by evaluating a rate-distortion criterion calculated on the reconstructed signal using the rate necessary to encode the transformed patch and the distortion calculated between the original patch. and the transformed patch coded then reconstructed. The selection can also be made based on the evaluation of the quality of the additional view synthesized using the patch being processed.
Pour chaque transformation, un ou plusieurs paramètres peuvent être testés. For each transformation, one or more parameters can be tested.
Par exemple, dans le cas d’un sous-échantillonnage, différents facteurs Nv, Nh et Ne peuvent être testés. Dans un mode de réalisation préféré, les facteurs Nv, Nh et Ne sont égaux à 2. Dans d’autres modes de réalisation, d’autres valeurs sont possibles, comme 4, 8 ou 16. For example, in the case of sub-sampling, different factors Nv, Nh and Ne can be tested. In a preferred embodiment, the factors Nv, Nh, and Ne are equal to 2. In other embodiments, other values are possible, such as 4, 8 or 16.
La transformation correspondant à une modification des valeurs des pixels est aussi appelée un « mapping » en anglais. Une telle transformation de mapping peut par exemple consister à diviser toutes les valeurs des pixels du patch par une valeur donnée Dv. Par exemple, Dv est égale à 2. Toutefois, d’autres valeurs sont possibles, comme 4, 8 ou 16. The transformation corresponding to a modification of the values of the pixels is also called a “mapping” in English. Such a mapping transformation can for example consist in dividing all the values of the pixels of the patch by a given value Dv. For example, Dv is 2. However, other values are possible, such as 4, 8, or 16.
Selon un autre exemple, le mapping peut aussi consister à transformer les valeurs x des pixels en nouvelles valeurs y à l’aide d’une fonction paramétrée fp(x) = y. Une telle fonction
est par exemple une fonction linéaire par morceaux, chaque morceau étant paramétré par son abscisse de début x1 , et les paramètres a et b de la fonction linéaire y=ax+b. Le paramètre P de la transformation est alors une liste de triplet (x1 , a, b) pour chaque partie linéaire du mapping. According to another example, the mapping can also consist in transforming the x values of the pixels into new y values using a parameterized function fp (x) = y. Such a function is for example a linear function by pieces, each piece being parameterized by its starting abscissa x1, and the parameters a and b of the linear function y = ax + b. The parameter P of the transformation is then a list of triples (x1, a, b) for each linear part of the mapping.
Selon un autre exemple, le mapping peut également être une LUT (« LookUp Table » en anglais) qui est un tableau associant une valeur y à une entrée x. According to another example, the mapping can also be a LUT (“LookUp Table”) which is an array associating a value y with an input x.
Pour la transformation de rotation, il peut s’agir d’une rotation verticale de 180°, aussi connue sous le nom anglais de « flip » vertical. D’autres valeurs de paramètres de rotation peuvent aussi être testées, par exemple les valeurs d’angles définies par i*90° où i=0, 1 , 2 ou 3. For the transformation of rotation, it can be a vertical rotation of 180 °, also known under the English name of vertical "flip". Other values of rotation parameters can also be tested, for example the values of angles defined by i * 90 ° where i = 0, 1, 2 or 3.
La détermination d’une transformation associée à un patch peut également prendre en compte le nombre d’atlas disponibles pour coder la vidéo multi-vues et simuler l’arrangement des patchs dans les atlas afin d’optimiser le coût débit/distorsion de codage des atlas ou la qualité de la synthèse de vues intermédiaires de manière globale. The determination of a transformation associated with a patch can also take into account the number of atlases available to encode the multi-view video and simulate the arrangement of the patches in the atlases in order to optimize the bit rate / coding distortion cost of the atlases. atlas or the quality of the synthesis of intermediate views in a global way.
A l’issue de l’étape E42, une liste de patchs transformés est disponible. A chaque patch est associé, la ou les transformations déterminée(s) pour ce patch et les paramètres associés. At the end of step E42, a list of transformed patches is available. Each patch is associated with the transformation (s) determined for this patch and the associated parameters.
Lors d’une étape E43, les patchs sont arrangés dans un atlas ou plusieurs atlas. Le nombre d’atlas dépend par exemple de paramètres définis en entrée au codeur qui sont notamment la taille d’un atlas (longueur et hauteur) et le nombre maximal M de pixels pour la texture et la profondeur de tous les atlas par image ou instant donné. Ce nombre maximal M correspond au nombre de pixels à traiter pour le décodeur pour un instant de la vidéo multi- vues. During a step E43, the patches are arranged in one or more atlases. The number of atlases depends for example on parameters defined on input to the encoder which are in particular the size of an atlas (length and height) and the maximum number M of pixels for the texture and depth of all the atlases per image or instant given. This maximum number M corresponds to the number of pixels to be processed for the decoder for an instant of the multi-view video.
Dans le mode particulier de réalisation décrit ici, on considère que chaque vue de base est codée dans un atlas comportant un patch comprenant une composante de texture et une composante de profondeur de la vue de base à un instant donné. Selon ce mode particulier, il y a alors autant d’atlas que de vues de base et autant d’atlas que nécessaire pour transporter tous les patchs extraits des vues additionnelles. In the particular embodiment described here, it is considered that each base view is encoded in an atlas comprising a patch comprising a texture component and a depth component of the base view at a given instant. According to this particular mode, there are then as many atlases as there are base views and as many atlases as necessary to transport all the patches extracted from the additional views.
En fonction de la taille des atlas donnée en entrée, il se peut qu’un atlas comprenne une vue de base et des patchs, ou bien une vue de base peut être découpée et représentée sur plusieurs atlas si la taille de la vue est supérieure à la taille d’un atlas. Depending on the atlases size given as input, an atlas may include a base view and patches, or a base view may be clipped and represented on multiple atlases if the view size is larger than the size of an atlas.
Selon le mode particulier de réalisation décrit ici, un patch d’un atlas peut alors correspondre à une image entière d’une vue de base ou à une partie d’une vue de base ou encore à une zone extraite d’une vue additionnelle.
Les pixels de texture des patchs sont arrangés dans la composante de texture d’un atlas et les pixels de profondeur des patchs sont arrangés dans la composante de profondeur d’un atlas. According to the particular embodiment described here, a patch of an atlas can then correspond to an entire image of a base view or to a part of a base view or to an area extracted from an additional view. The texture pixels of the patches are arranged in the texture component of an atlas and the depth pixels of the patches are arranged in the depth component of an atlas.
Un atlas peut ne comprendre qu’une seule composante de texture ou de profondeur, ou bien comprendre une composante de texture et une composante de profondeur. Dans d’autres exemples, un atlas peut aussi comprendre d’autres types de composante comprenant des informations utiles à la synthèse de vues intermédiaires. Par exemple, d’autres types de composantes peuvent comprendre des informations telles qu’un indice de réflectance, pour indiquer à quel point la zone correspondante est transparente, ou encore une information de confiance sur la valeur de la profondeur à cette localisation. An atlas may only have a single texture or depth component, or it may include a texture component and a depth component. In other examples, an atlas can also include other types of component including information useful for the synthesis of intermediate views. For example, other types of components may include information such as a reflectance index, to indicate how transparent the corresponding area is, or even confidence information about the depth value at that location.
Au cours de l’étape E43, le codeur parcourt tous les patchs de la liste de patchs. Pour chaque patch, le codeur détermine dans quel atlas ce patch sera codé. Cette liste comprend des patchs transformés et des patchs non transformés. Les patchs non transformés sont soit des patchs comprenant des zones extraites de vues additionnelles qui n’ont subi aucune transformation ou une transformation identité, soit des patchs comprenant des images de vues de base. On considère ici que lorsque le patch doit subir une transformation, il a déjà été transformé. During step E43, the coder goes through all the patches in the patch list. For each patch, the encoder determines in which atlas this patch will be encoded. This list includes processed patches and unprocessed patches. Untransformed patches are either patches comprising areas extracted from additional views that have not undergone any transformation or identity transformation, or patches comprising base view images. It is considered here that when the patch must undergo a transformation, it has already been transformed.
Un atlas est un ensemble de patchs réarrangés spatialement dans une image. Cette image est destinée à être codée. Cet arrangement a pour but d’occuper au mieux l’espace dans les images d’atlas à coder. En effet, un des objectifs du codage vidéo est de minimiser le nombre de pixels à décoder avant de pouvoir synthétiser une vue. Pour cela, les patchs sont disposés dans les atlas de façon à maximiser le nombre de patchs dans un atlas. Un tel procédé est décrit dans Base I Salahieh, Bart Kroon, Joël Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO/IEC JTC 1 /SC 29/WG 11 N 19002, Brussels, BE - January 2020. An atlas is a set of spatially rearranged patches in an image. This image is intended to be encoded. This arrangement is intended to occupy the space in the atlas images to be encoded as well as possible. Indeed, one of the objectives of video coding is to minimize the number of pixels to be decoded before being able to synthesize a view. For this, the patches are arranged in the atlases so as to maximize the number of patches in an atlas. Such a method is described in Base I Salahieh, Bart Kroon, Joël Jung, Marek Domanski, Test Model 4 for Immersive Video, ISO / IEC JTC 1 / SC 29 / WG 11 N 19002, Brussels, BE - January 2020.
Suite à l’étape E43, une liste de patchs pour chaque atlas est générée. Il est à noter que cet arrangement détermine également le nombre d’atlas à coder pour un instant donné. Following step E43, a list of patches for each atlas is generated. It should be noted that this arrangement also determines the number of atlases to be coded for a given moment.
Lors d’une étape E44, les atlas sont codés dans le flux de données. Au cours de cette étape, chaque atlas, qui comprend une composante de texture et/ou une composante de profondeur sous la forme d’une image 2D est codé à l’aide d’un codeur vidéo classique tel que HEVC, VVC, MV-HEVC, 3D-HEVC, etc. Comme expliqué ci-dessus, les vues de base sont ici considérées comme des patchs. Le codage des atlas implique donc le codage des vues de base. During a step E44, the atlases are encoded in the data stream. During this step, each atlas, which includes a texture component and / or a depth component in the form of a 2D image is encoded using a conventional video encoder such as HEVC, VVC, MV- HEVC, 3D-HEVC, etc. As explained above, the base views are considered here as patches. The coding of atlases therefore involves the coding of the basic views.
Lors d’une étape E45, les informations associées à chaque atlas sont codées dans le flux de données. Ces informations sont classiquement codées par un codeur entropique.
Pour chaque atlas, la liste de patchs comprend les éléments suivants, pour chaque patch de la liste : During a step E45, the information associated with each atlas is encoded in the data stream. This information is conventionally encoded by an entropy encoder. For each atlas, the patch list includes the following, for each patch in the list:
• La localisation du patch dans l’atlas sous forme de coordonnées 2D, par exemple la position du coin en haut à gauche du rectangle représentant le patch, • The location of the patch in the atlas in the form of 2D coordinates, for example the position of the top left corner of the rectangle representing the patch,
• La localisation du patch dans sa vue originelle, sous forme de coordonnées 2D, i.e. sa position dans l’image de la vue à partir de laquelle il a été extrait, par exemple la position dans l’image du coin en haut à gauche du rectangle représentant le patch,• The location of the patch in its original view, in the form of 2D coordinates, ie its position in the image of the view from which it was extracted, for example the position in the image of the top left corner of the rectangle representing the patch,
• Les dimensions du patch (longueur et hauteur), • The dimensions of the patch (length and height),
• Un identifiant de la vue originelle du patch, • An identifier of the original view of the patch,
• Une information sur la transformation appliquée au patch. • Information on the transformation applied to the patch.
Au cours de l’étape E45, pour au moins plusieurs patchs de l’atlas, une information relative aux transformations à appliquer au patch lors du décodage est codée dans le flux de données. Les transformations à appliquer au patch lors du décodage correspondent aux transformations inverses appliquées au patch lors de l’arrangement du patch dans l’atlas et déterminées plus haut. During step E45, for at least several patches of the atlas, information relating to the transformations to be applied to the patch during decoding is encoded in the data stream. The transformations to be applied to the patch during decoding correspond to the inverse transformations applied to the patch when arranging the patch in the atlas and determined above.
Selon un mode particulier de réalisation de l’invention, pour chaque patch, une information indiquant la transformation à appliquer est transmise. According to a particular embodiment of the invention, for each patch, information indicating the transformation to be applied is transmitted.
Dans le mode particulier de réalisation décrit ici, on considère que c’est la transformation à appliquer au décodage qui est indiquée et non la transformation appliquée au codage (correspondant à la transformation inverse du décodage). Par exemple, lorsqu’un sous- échantillonnage est appliqué lors du codage, un sur-échantillonnage est appliqué lors du décodage. On comprend bien que dans d’autres modes particuliers de réalisation de l’invention, l’information transmise sur la transformation à appliquer peut correspondre à une information indiquant la transformation appliquée au codage, le décodeur déduisant alors la transformation à appliquer à partir de cette information. In the particular embodiment described here, it is considered that it is the transformation to be applied to the decoding which is indicated and not the transformation applied to the encoding (corresponding to the inverse transformation of the decoding). For example, when downsampling is applied during encoding, oversampling is applied during decoding. It is well understood that in other particular embodiments of the invention, the information transmitted on the transformation to be applied may correspond to information indicating the transformation applied to the coding, the decoder then deducing the transformation to be applied from this information.
Par exemple, l’information indiquant la transformation à appliquer peut être un index indiquant la transformation à appliquer dans une liste des transformations possibles. Une telle liste peut comprend en outre une transformation identité. Dans le cas où aucune transformation n’est appliquée au patch, un index indiquant la transformation identité peut ainsi être codé. For example, the information indicating the transformation to be applied can be an index indicating the transformation to be applied in a list of possible transformations. Such a list can further include an identity transformation. In the event that no transformation is applied to the patch, an index indicating the identity transformation can thus be encoded.
Selon une autre variante, un indicateur binaire peut être codé pour indiquer si le patch est transformé ou non, et si l’indicateur binaire indique que le patch a été transformé, un index indiquant la transformation à appliquer dans la liste des transformations possibles est codé. Dans une variante selon laquelle une seule transformation à appliquer est possible, seul l’indicateur binaire peut être codé pour indiquer si le patch est transformé ou non.
La liste des transformations possibles peut être connue du décodeur et n’a donc pas besoin d’être transmise dans le flux de données. Dans d’autres modes de réalisation, la liste des transformations possibles peut être codée dans le flux de données, par exemple dans un entête d’une vue ou de la vidéo multi-vues. According to another variant, a binary indicator can be coded to indicate whether the patch is transformed or not, and if the binary indicator indicates that the patch has been transformed, an index indicating the transformation to be applied in the list of possible transformations is coded. . In a variant according to which only one transformation to be applied is possible, only the binary indicator can be coded to indicate whether the patch is transformed or not. The list of possible transformations can be known to the decoder and therefore does not need to be transmitted in the data stream. In other embodiments, the list of possible transformations can be coded in the data stream, for example in a header of a view or of the multi-view video.
Les paramètres associés aux transformations à appliquer peuvent également être définis par défaut et connus du décodeur. Dans un autre mode particulier de réalisation de l’invention, les paramètres associés à une transformation appliquée au patch sont codés dans le flux de données pour chaque patch. The parameters associated with the transformations to be applied can also be defined by default and known to the decoder. In another particular embodiment of the invention, the parameters associated with a transformation applied to the patch are encoded in the data stream for each patch.
Lorsque la transformation correspond à un sur-échantillonnage dans une dimension ou les deux (équivalent à un sous-échantillonnage identique lors du codage), le paramètre associé à la transformation peut correspondre à une valeur d’une interpolation à appliquer pour toutes les dimensions ou une valeur d’une interpolation à appliquer pour chacune des dimensions. When the transformation corresponds to an oversampling in one or both dimensions (equivalent to an identical subsampling during coding), the parameter associated with the transformation can correspond to a value of an interpolation to be applied for all the dimensions or a value of an interpolation to apply for each of the dimensions.
Lorsque la transformation correspond à une modification des valeurs de pixels du patch à coder, par mapping à l’aide d’un paramètre, les paramètres de cette transformation correspondent aux caractéristiques du mapping à appliquer : paramètres d’une fonction linéaire, linéaire par morceaux, Look-up Table (LUT),.... Notamment, la ou les LUT possibles peuvent être connues du décodeur. When the transformation corresponds to a modification of the pixel values of the patch to be coded, by mapping using a parameter, the parameters of this transformation correspond to the characteristics of the mapping to be applied: parameters of a linear function, piecewise linear , Look-up Table (LUT), .... In particular, the possible LUT (s) can be known to the decoder.
Lorsque la transformation correspond à une rotation, le paramètre correspond à l’angle de rotation sélectionné parmi les rotations possibles. When the transformation corresponds to a rotation, the parameter corresponds to the angle of rotation selected from among the possible rotations.
Les paramètres associés à une transformation peuvent être codés tels quels ou bien par prédiction par rapport à une valeur de prédiction. The parameters associated with a transformation can be encoded as they are or else by prediction with respect to a prediction value.
Selon une variante, pour prédire la valeur d’un paramètre, une valeur de prédiction peut être définie et codée dans le flux de données dans un entête d’une vue, ou d’une composante, ou d’une image d’une vue, ou encore d’un atlas comprenant le patch courant. According to one variant, to predict the value of a parameter, a prediction value can be defined and encoded in the data stream in a header of a view, or of a component, or of an image of a view. , or an atlas including the current patch.
Ainsi, pour un atlas donné, la valeur P d’un paramètre sera prédite par une valeur Ppred codée au niveau de l’atlas. La différence entre Ppred et P est ensuite codée pour chaque patch de l’atlas. Thus, for a given atlas, the P value of a parameter will be predicted by a Ppred value encoded at the level of the atlas. The difference between Ppred and P is then coded for each patch in the atlas.
Selon une autre variante, pour prédire la valeur du paramètre, la valeur de prédiction Ppred peut correspondre à la valeur du paramètre utilisé pour un patch précédemment traité. Par exemple, il peut s’agir du patch précédent dans l’ordre de traitement des patchs, ou encore du patch précédent appartenant à la même vue que le patch courant. According to another variant, to predict the value of the parameter, the prediction value Ppred can correspond to the value of the parameter used for a patch previously processed. For example, it can be the previous patch in the patch processing order, or the previous patch belonging to the same view as the current patch.
La valeur de prédiction du paramètre peut aussi être obtenue par un mécanisme semblable au mode « Merge » (fusionné en français) d’un codeur de type HEVC. Pour chaque patch, une liste de patchs candidats est définie et un index pointant sur l’un de ces patchs candidats est codé pour le patch.
Dans un autre mode de réalisation, il n’est pas nécessaire de transmettre un index, un critère pouvant être utilisé pour identifier le patch parmi la liste de patchs candidats. Ainsi, on pourra par exemple choisir le patch qui maximise une mesure de ressemblance avec le patch courant, ou encore choisir le patch dont les dimensions sont les plus proches du patch courant. The prediction value of the parameter can also be obtained by a mechanism similar to the “Merge” mode (merged in French) of an HEVC type encoder. For each patch, a list of candidate patches is defined and an index pointing to one of these candidate patches is coded for the patch. In another embodiment, it is not necessary to transmit an index, a criterion being able to be used to identify the patch among the list of candidate patches. Thus, it is possible for example to choose the patch which maximizes a measure of resemblance with the current patch, or even to choose the patch whose dimensions are closest to the current patch.
Dans d’autres variantes de réalisation, l’information indiquant si le patch doit subir une transformation peut être décomposée en une partie qui indique l’usage de la transformation (par exemple un indicateur binaire) et une partie qui indique les paramètres de la transformation, si l’usage est activé. Ce mécanisme de signalisation peut être utilisé indépendamment pour chaque transformation possible pour le patch. In other variant embodiments, the information indicating whether the patch must undergo a transformation can be decomposed into a part which indicates the use of the transformation (for example a binary flag) and a part which indicates the parameters of the transformation. , if usage is enabled. This signaling mechanism can be used independently for each possible transformation for the patch.
Dans un mode particulier de réalisation de l’invention, un indicateur binaire peut être codé au niveau d’un entête d’un atlas, ou d’une vue ou d’une composante, pour activer l’usage d’une transformation déterminée pour les patchs de cet atlas, de cette vue ou de cette composante. L’application de la transformation déterminée pour un patch dépend alors de la valeur de cet indicateur binaire. In a particular embodiment of the invention, a binary indicator can be coded at the level of a header of an atlas, or of a view or of a component, to activate the use of a determined transformation for the patches of this atlas, of this view or of this component. The application of the transformation determined for a patch then depends on the value of this binary indicator.
Par exemple, deux indicateurs binaires U et IB associés respectivement à l’activation d’une transformation A et à l’activation d’une transformation B sont codés dans un entête d’un atlas. La valeur de l’indicateur binaire indique que l’usage de la transformation A est possible, alors que la valeur de l’indicateur binaire IB indique que l’usage de la transformation B n’est pas possible. Dans cet exemple, pour chaque patch, un indicateur binaire indiquera si la transformation A est appliquée au patch, et éventuellement les paramètres associés. Il n'est pas nécessaire dans cet exemple de coder pour chaque patch un indicateur binaire pour indiquer si la transformation B est appliquée au patch. For example, two binary indicators U and I B associated respectively with the activation of a transformation A and with the activation of a transformation B are encoded in a header of an atlas. The value of the binary indicator indicates that the use of transformation A is possible, while the value of the binary indicator I B indicates that the use of transformation B is not possible. In this example, for each patch, a binary indicator will indicate whether transformation A is applied to the patch, and possibly the associated parameters. It is not necessary in this example to code for each patch a binary indicator to indicate whether the transformation B is applied to the patch.
Le mode particulier de réalisation activant au niveau patch ou à un plus haut niveau l’utilisation d’une transformation permet notamment de gagner en coût de signalisation, lorsqu’aucun patch n’utilise cette transformation. The particular embodiment activating at patch level or at a higher level the use of a transformation makes it possible in particular to save signaling costs, when no patch uses this transformation.
Si cet indicateur binaire d’activation est codé au niveau d’une vue ou d’une composante, sa valeur s’applique alors à tous les patchs appartenant à la vue ou à la composante quel que soit l’atlas dans lequel le patch est codé. Ainsi, un atlas peut comprendre un patch pour lequel une transformation déterminée est susceptible d’être appliquée en fonction de l’indicateur codé pour ce patch et un patch pour lequel la même transformation ne peut pas être appliquée. Pour ce dernier patch, aucun indicateur pour cette transformation n’est codé dans les informations du patch.
Dans un autre mode particulier de réalisation de l’invention, aucune information indiquant une transformation n’est codée au niveau patch. Celle-ci est déduite au décodeur à partir d’une caractéristique du patch. La transformation est alors appliquée au patch dès que celui- ci respecte un certain critère. Ce mode particulier sera décrit plus en détail ci-dessous en relation avec le procédé de décodage. If this binary activation indicator is coded at the level of a view or a component, its value then applies to all the patches belonging to the view or to the component regardless of the atlas in which the patch is coded. Thus, an atlas can comprise a patch for which a determined transformation can be applied as a function of the indicator coded for this patch and a patch for which the same transformation cannot be applied. For this last patch, no indicator for this transformation is encoded in the patch information. In another particular embodiment of the invention, no information indicating a transformation is coded at the patch level. This is deduced at the decoder from a characteristic of the patch. The transformation is then applied to the patch as soon as it meets a certain criterion. This particular mode will be described in more detail below in relation to the decoding method.
La figure 5 illustre des étapes d'un procédé de décodage d’un flux de données codées représentatif d’une vidéo multi-vues selon un mode particulier de réalisation de l'invention. Par exemple, le flux de données codées a été généré par le procédé de codage décrit en relation avec la figure 4. FIG. 5 illustrates the steps of a method for decoding an encoded data stream representative of a multi-view video according to a particular embodiment of the invention. For example, the encoded data stream was generated by the encoding method described in relation to FIG. 4.
Lors d’une étape E50, les informations d’atlas sont décodées. Ces informations sont classiquement décodées par un décodeur entropique adéquat. During a step E50, the atlas information is decoded. This information is conventionally decoded by a suitable entropy decoder.
Elles comprennent notamment une liste de patchs, et pour chaque patch, les éléments suivants : They include in particular a list of patches, and for each patch, the following elements:
- La localisation du patch dans l’atlas sous forme de coordonnées, - The location of the patch in the atlas in the form of coordinates,
- La localisation du patch dans sa vue originelle, sous forme de coordonnées, - The location of the patch in its original view, in the form of coordinates,
- Les dimensions du patch, - The dimensions of the patch,
- Un identifiant de la vue originelle du patch, - An identifier of the original view of the patch,
- Une information indiquant si une transformation doit être appliquée au patch. - Information indicating whether a transformation should be applied to the patch.
Comme dans le procédé de codage, cette information peut être un index indiquant une transformation parmi une liste de transformations possibles, ou bien pour chaque transformation possible, un indicateur indiquant si la transformation doit être appliquée au patch. As in the coding method, this information can be an index indicating a transformation among a list of possible transformations, or else for each possible transformation, an indicator indicating whether the transformation must be applied to the patch.
Pour une transformation correspondant à un sur-échantillonnage identique dans les deux dimensions, l’information peut correspondre à un indicateur binaire indiquant l’usage de la transformation ou une valeur d’une interpolation à appliquer pour toutes les dimensions.For a transformation corresponding to identical oversampling in both dimensions, the information may correspond to a binary indicator indicating the use of the transformation or a value of an interpolation to be applied for all dimensions.
Pour une transformation correspondant à un sur-échantillonnage distinct dans les deux dimensions, l’information peut correspondre à un indicateur binaire indiquant l’usage de la transformation ou pour chacune des dimensions une valeur d’une interpolation à appliquer. Pour une transformation correspondant à une modification des pixels du patch à décoder, par mapping à l’aide d’un paramètre, l’information peut comprendre une information indiquant l’usage du mapping, et éventuellement une information représentative des caractéristiques du mapping à appliquer (paramètres d’une fonction linéaire, linéaire par morceaux, Look-up Table,...). For a transformation corresponding to a distinct oversampling in the two dimensions, the information may correspond to a binary indicator indicating the use of the transformation or for each of the dimensions a value of an interpolation to apply. For a transformation corresponding to a modification of the pixels of the patch to be decoded, by mapping using a parameter, the information may include information indicating the use of the mapping, and possibly information representative of the characteristics of the mapping to be applied. (parameters of a linear function, piecewise linear, Look-up Table, ...).
Pour une transformation correspondant à une rotation, le paramètre indiquera quelle rotation a été sélectionnée parmi les rotations possibles.
L’information transmise permettant d’identifier une transformation à appliquer au patch est décodée de façon adaptée au codage appliqué. Ainsi, elle peut être décodée telle quelle (décodage direct) ou de façon prédictive, de façon similaire à l’encodeur. For a transformation corresponding to a rotation, the parameter will indicate which rotation has been selected among the possible rotations. The information transmitted making it possible to identify a transformation to be applied to the patch is decoded in a manner suited to the coding applied. Thus, it can be decoded as is (direct decoding) or in a predictive manner, in a manner similar to the encoder.
Selon un mode particulier de réalisation de l’invention, l’information permettant d’identifier une transformation à appliquer au patch peut comprendre une partie qui indique l’usage de la transformation (indicateur binaire) et une partie qui indique les paramètres de la transformation, si l’usage est activé. According to a particular embodiment of the invention, the information making it possible to identify a transformation to be applied to the patch can comprise a part which indicates the use of the transformation (binary indicator) and a part which indicates the parameters of the transformation. , if usage is enabled.
Comme pour le procédé de codage, selon un mode particulier de réalisation de l’invention, le décodage pour un patch donné, d’une information identifiant une transformation à appliquer au patch peut dépendre d’un indicateur binaire d’activation codé en entête de l’atlas, de la vue ou de la composante à laquelle le patch appartient. As for the encoding method, according to a particular embodiment of the invention, the decoding for a given patch of information identifying a transformation to be applied to the patch may depend on a binary activation indicator encoded at the header of the atlas, sight or component to which the patch belongs.
Selon un autre mode particulier de réalisation de l’invention, l’information identifiant une transformation à appliquer au patch n’est pas codée avec les informations du patch, mais dérivée des caractéristiques du patch décodé. According to another particular embodiment of the invention, the information identifying a transformation to be applied to the patch is not encoded with the information of the patch, but derived from the characteristics of the decoded patch.
Par exemple, selon une variante, l’énergie des pixels décodés contenus dans le patch est mesurée, en calculant l’erreur quadratique moyenne du patch. Si cette énergie est inférieure à un seuil donné, par exemple, une erreur quadratique moyenne inférieure à 100, les valeurs de pixel du patch sont transformées en multipliant toutes les valeurs du patch par un facteur Dv déterminé. Par exemple Dv= 2. D’autres valeurs de seuils sont possibles, ainsi que d’autres facteurs de modification des valeurs du patch. For example, according to a variant, the energy of the decoded pixels contained in the patch is measured, by calculating the root mean square error of the patch. If this energy is less than a given threshold, for example, a root mean square error of less than 100, the pixel values of the patch are transformed by multiplying all the values of the patch by a determined factor Dv. For example Dv = 2. Other threshold values are possible, as well as other factors for modifying the patch values.
Selon une autre variante, si le rapport des dimensions décodées H/W du patch, avec H étant la hauteur du patch et W la longueur du patch, est compris dans un intervalle déterminé, par exemple 0.75<H/W<1.5, alors le patch est interpolé d’un facteur déterminé, par exemple un facteur 2 dans la dimension verticale. Les dimensions du patch considérées ici sont les dimensions du patch décodées à partir des informations de l’atlas dans lequel le patch a été codé. Il s’agit donc des dimensions du patch avant transformation au décodeur (et après transformation au codeur donc). Lorsqu’il est déterminé que le ratio H/W est compris dans l’intervalle déterminé, le patch est sur-échantillonné et ses dimensions recalculées en conséquence. According to another variant, if the ratio of the decoded dimensions H / W of the patch, with H being the height of the patch and W the length of the patch, is included in a determined interval, for example 0.75 <H / W <1.5, then the patch is interpolated by a determined factor, for example a factor of 2 in the vertical dimension. The patch dimensions considered here are the patch dimensions decoded from information from the atlas in which the patch was encoded. These are therefore the dimensions of the patch before transformation at the decoder (and therefore after transformation at the encoder). When it is determined that the H / W ratio is within the determined range, the patch is oversampled and its dimensions recalculated accordingly.
Cette variante permet de mélanger dans un même atlas des patchs « longs » pour lesquels il n’est pas intéressant de faire un sous-échantillonnage et des patchs « longs » pour lesquels on sous-échantillonne sans signaler, ce qui leur fait respecter le critère qui permet de les
interpoler au décodeur. D’autres valeurs de seuils peuvent être utilisées, par exemple des valeurs plus restrictives comme 0.9<H/W<1.1 . This variant makes it possible to mix in the same atlas "long" patches for which it is not interesting to do a sub-sampling and "long" patches for which one sub-samples without signaling, which makes them respect the criterion. which allows them to interpolate to the decoder. Other threshold values can be used, for example more restrictive values like 0.9 <H / W <1.1.
Lors d’une étape E51 , les composantes des atlas sont décodées. Chaque atlas, qui comprend une composante 2D de texture et/ou une composante 2D de profondeur, est décodé à l’aide d’un décodeur vidéo classique tel que AVC ou HEVC, VVC, MV-HEVC, 3D- HEVC, etc. During a step E51, the components of the atlases are decoded. Each atlas, which includes a 2D texture component and / or a 2D depth component, is decoded using a conventional video decoder such as AVC or HEVC, VVC, MV-HEVC, 3D-HEVC, etc.
Lors d’une étape E52, les patchs décodés sont reconstruits en appliquant la transformation identifiée lors de l’étape E50 à la composante de texture et/ou à la composante de profondeur de chaque patch dans son atlas selon que la transformation s’applique à la texture, à la profondeur ou aux deux composantes. During a step E52, the decoded patches are reconstructed by applying the transformation identified during step E50 to the texture component and / or to the depth component of each patch in its atlas depending on whether the transformation applies to texture, depth or both components.
Pour les vues additionnelles, cette étape consiste à modifier individuellement chaque patch en appliquant la transformation identifiée pour ce patch. Ceci peut être réalisé de différentes façons, par exemple : en modifiant les pixels du patch dans l’atlas qui le contient, en copiant le patch modifié dans une zone mémoire tampon, ou encore en copiant le patch transformé dans la vue qui lui est associée. For additional views, this step consists of individually modifying each patch by applying the transformation identified for this patch. This can be done in different ways, for example: by modifying the pixels of the patch in the atlas that contains it, by copying the modified patch in a buffer memory area, or by copying the transformed patch in the view associated with it. .
En fonction des informations décodées précédemment, chaque patch à reconstruire peut se voir appliquer l’une des transformations suivantes : Depending on the information decoded previously, each patch to be reconstructed can have one of the following transformations applied:
Sur-échantillonnage d’un facteur Nv dans la dimension verticale, Oversampling by a factor Nv in the vertical dimension,
Sur-échantillonnage d’un facteur Nh dans la dimension horizontale, Sur-échantillonnage d’un facteur Ne dans chaque dimension, Oversampling by a factor Nh in the horizontal dimension, Oversampling by a factor Ne in each dimension,
Modification des valeurs des pixels contenus dans le patch, Modification of the values of the pixels contained in the patch,
Rotation du patch. Patch rotation.
La modification des valeurs des pixels est similaire à l’encodage et au décodage. On notera que les paramètres de mapping transmis peuvent être soit les paramètres du mapping encodeur (et alors le décodeur devra appliquer la fonction inverse du mapping), soit les paramètres du mapping décodeur (et alors l’encodeur devra appliquer la fonction inverse du mapping). Changing pixel values is similar to encoding and decoding. Note that the transmitted mapping parameters can be either the encoder mapping parameters (and then the decoder will have to apply the inverse mapping function), or the decoder mapping parameters (and then the encoder will have to apply the inverse mapping function). .
Selon un mode particulier de réalisation de l’invention, il est possible d’appliquer à l’encodeur plusieurs transformations à un patch. Ces transformations sont signalées dans le flux dans les informations codées pour le patch ou bien déduites des caractéristiques du patch décodé. Par exemple, il est possible d’appliquer à l’encodeur un sous-échantillonnage d’un facteur 2 dans chaque dimension du patch, suivi par un mapping des valeurs de pixels du patch, puis une rotation.
Selon ce mode particulier de réalisation de l’invention, l’ordre des transformations à appliquer est prédéfini et connu de l’encodeur et du décodeur. Par exemple, l’ordre est le suivant au codeur : rotation, puis sous-échantillonnage, puis mapping. According to a particular embodiment of the invention, it is possible to apply to the encoder several transformations to a patch. These transformations are signaled in the stream in the information encoded for the patch or else deduced from the characteristics of the decoded patch. For example, it is possible to apply to the encoder a downsampling by a factor of 2 in each dimension of the patch, followed by a mapping of the pixel values of the patch, then a rotation. According to this particular embodiment of the invention, the order of the transformations to be applied is predefined and known to the encoder and to the decoder. For example, the encoder order is as follows: rotation, then downsampling, then mapping.
Lors de la reconstruction du patch au décodeur, lorsque plusieurs transformations doivent être appliquées au patch, l’ordre inverse est appliqué au patch (mapping, sur échantillonnage, puis rotation). Ainsi, le décodeur et le codeur savent tous deux dans quel ordre appliquer les transformations afin de produire le même résultat. When reconstructing the patch at the decoder, when several transformations must be applied to the patch, the reverse order is applied to the patch (mapping, over sampling, then rotation). Thus, both the decoder and the encoder know in which order to apply the transformations in order to produce the same result.
A l’issue de l’étape E52, un ensemble de patchs reconstruits est disponible. At the end of step E52, a set of reconstructed patches is available.
Lors d’une étape E53, au moins une vue intermédiaire est synthétisée à l’aide d’au moins une vue de base et d’au moins un patch reconstruit précédemment. L’algorithme de synthèse de vues virtuelles choisi est appliqué aux données décodées et reconstruites de la vidéo multi-vues qui ont été transmises au décodeur. Comme expliqué précédemment, cet algorithme s’appuie sur les pixels des composantes des vues de base et des patchs pour produire une vue depuis un point de vue situé entre les caméras. During a step E53, at least one intermediate view is synthesized using at least one basic view and at least one patch reconstructed previously. The chosen virtual view synthesis algorithm is applied to the decoded and reconstructed data from the multi-view video that has been transmitted to the decoder. As explained previously, this algorithm relies on the pixels of the components of the base views and patches to produce a view from a point of view between the cameras.
Par exemple, l’algorithme de synthèse utilise au moins deux textures et deux cartes de profondeurs, issues de vues de base et/ou de vues additionnelles pour générer une vue intermédiaire. Les synthétiseurs sont connus et appartiennent par exemple à la catégorie DIBR (« Depth Image Based Rendering » en anglais). Par exemple, des algorithmes fréquemment utilisés par les organismes de normalisation sont : For example, the synthesis algorithm uses at least two textures and two depth maps, taken from base views and / or additional views to generate an intermediate view. Synthesizers are known and belong, for example, to the DIBR (“Depth Image Based Rendering”) category. For example, algorithms frequently used by standards organizations are:
- le VSRS pour « View Synthesis Reference Software » en anglais, initié par l’Université de Nagoya et amélioré par MPEG, applique des projections avant (« forward projection » en anglais) des cartes de profondeur en utilisant une homographie entre les vues de référence et les vues intermédiaires, puis une étape de remplissage pour supprimer les artefacts liés à la déformation avant (« forward warping » en anglais) ; le RVS pour « Reference View Synthesizer » en anglais, initié par l’Université de Bruxelles et amélioré par Philips, commence par projeter les vues de référence à l’aide d’une disparité calculée. Les références sont partitionnées en triangles, et déformées. Ensuite les vues déformées de chaque référence sont mixées (« blending » en anglais), puis un remplissage de type « inpainting » basique est appliqué pour remplir les dis-occlusions ; - the VSRS for “View Synthesis Reference Software” in English, initiated by Nagoya University and improved by MPEG, applies forward projections of depth maps using homography between reference views and the intermediate views, then a filling step to remove the artifacts linked to the forward warping; the RVS for "Reference View Synthesizer" in English, initiated by the University of Brussels and improved by Philips, begins by projecting the reference views using a calculated disparity. The references are partitioned into triangles, and distorted. Then the deformed views of each reference are mixed (“blending” in English), then a basic “inpainting” type filling is applied to fill the dis-occlusions;
- le VVS pour « Versatile View Synthesizer » en anglais, développé par Orange, trie les références, applique une déformation de certaines informations des cartes de profondeur, puis une fusion conditionnelle de ces profondeurs. Ensuite une projection arrière (« backward warping » en anglais) des textures est appliquée, puis une fusion
des différentes textures et des différentes profondeurs. Enfin, un remplissage de type « inpainting » spatio-temporel est appliqué, avant filtrage spatial de l’image intermédiaire. - the VVS for “Versatile View Synthesizer” in English, developed by Orange, sorts the references, applies a deformation of certain information from the depth maps, then a conditional fusion of these depths. Then a backward warping of the textures is applied, then a fusion different textures and different depths. Finally, a spatio-temporal “inpainting” type filling is applied, before spatial filtering of the intermediate image.
La figure 6 illustre un exemple de flux de données selon un mode particulier de réalisation de l'invention et notamment les informations d’atlas codées dans le flux et permettant d’identifier une ou des transformations à appliquer aux patchs de l’atlas. Par exemple, le flux de données a été généré selon le procédé de codage selon l’un quelconque des modes particuliers de réalisation décrits en relation avec la figure 4, et il est apte à être décodé par le procédé de décodage selon l’un quelconque des modes particuliers de réalisation décrits en relation avec la figure 5. FIG. 6 illustrates an example of a data stream according to a particular embodiment of the invention and in particular the atlas information encoded in the stream and making it possible to identify one or more transformations to be applied to the patches of the atlas. For example, the data stream was generated according to the encoding method according to any one of the particular embodiments described in relation to FIG. 4, and it is suitable for being decoded by the decoding method according to any one. particular embodiments described in relation to FIG. 5.
Selon ce mode particulier de réalisation de l’invention, un tel flux comprend notamment : According to this particular embodiment of the invention, such a flow comprises in particular:
- un indicateur Act™ codé en entête de l’atlas pour indiquer l’activation ou non de la transformation donnée, - an Act ™ indicator coded at the header of the atlas to indicate the activation or not of the given transformation,
- une valeur de prédiction Ppred pour servir de valeur de prédiction à la valeur du paramètre de la transformation, - a prediction value Ppred to serve as a prediction value for the value of the transformation parameter,
- un nombre Np de patchs codés dans l’atlas, - a number Np of patches coded in the atlas,
- pour chaque patch de l’atlas, les informations du patch et notamment un indicateur Trf indiquant l’usage ou non de la transformation pour le patch, - for each patch in the atlas, the patch information and in particular a Trf indicator indicating whether or not the transformation is used for the patch,
- lorsque l’indicateur Trf indique l’usage de la transformation pour le patch, un paramètre Par de la transformation, par exemple sous la forme d’un résidu obtenu par rapport à la valeur de prédiction Ppred, lorsque celle-ci est codée. - when the Trf indicator indicates the use of the transformation for the patch, a Par parameter of the transformation, for example in the form of a residue obtained with respect to the prediction value Ppred, when the latter is encoded.
Comme expliqué en relation avec les procédés de codage et de décodage décrits ci-dessus, d’autres modes particuliers de réalisation de l’invention sont possibles au niveau des informations relatives à la transformation qui sont codées pour les patchs. As explained in relation to the encoding and decoding methods described above, other particular embodiments of the invention are possible in terms of information relating to the transformation which is encoded for the patches.
La figure 7 présente la structure simplifiée d’un dispositif de codage COD adapté pour mettre en oeuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention. FIG. 7 shows the simplified structure of a COD coding device suitable for implementing the coding method according to any one of the particular embodiments of the invention.
Selon un mode particulier de réalisation de l'invention, les étapes du procédé de codage sont mises en oeuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage COD a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM, une unité de traitement UT, équipée par exemple d'un processeur PROC, et pilotée par le programme d'ordinateur PG stocké en mémoire MEM. Le programme d'ordinateur PG
comprend des instructions pour mettre en œuvre les étapes du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROC. According to a particular embodiment of the invention, the steps of the coding method are implemented by computer program instructions. For this, the coding device COD has the conventional architecture of a computer and comprises in particular a memory MEM, a processing unit UT, equipped for example with a processor PROC, and controlled by the computer program PG stored in MEM memory. The PG computer program comprises instructions for implementing the steps of the encoding method as described above, when the program is executed by the processor PROC.
A l'initialisation, les instructions de code du programme d'ordinateur PG sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROC. Le processeur PROC de l'unité de traitement UT met notamment en œuvre les étapes du procédé de codage décrit ci-dessus, selon les instructions du programme d'ordinateur PG. On initialization, the code instructions of the computer program PG are for example loaded into a RAM memory (not shown) before being executed by the processor PROC. The processor PROC of the processing unit UT notably implements the steps of the coding method described above, according to the instructions of the computer program PG.
La figure 8 présente la structure simplifiée d’un dispositif de décodage DEC adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention. FIG. 8 shows the simplified structure of a decoding device DEC suitable for implementing the decoding method according to any one of the particular embodiments of the invention.
Selon un mode particulier de réalisation de l'invention, le dispositif de décodage DEC a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEMO, une unité de traitement UTO, équipée par exemple d'un processeur PROCO, et pilotée par le programme d'ordinateur PGO stocké en mémoire MEMO. Le programme d'ordinateur PGO comprend des instructions pour mettre en œuvre les étapes du procédé de décodage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROCO. According to a particular embodiment of the invention, the decoding device DEC has the conventional architecture of a computer and notably comprises a MEMO memory, a UTO processing unit, equipped for example with a PROCO processor, and controlled by the PGO computer program stored in MEMO memory. The computer program PGO comprises instructions for implementing the steps of the decoding method as described above, when the program is executed by the processor PROCO.
A l'initialisation, les instructions de code du programme d'ordinateur PGO sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROCO. Le processeur PROCO de l'unité de traitement UTO met notamment en œuvre les étapes du procédé de décodage décrit ci-dessus, selon les instructions du programme d'ordinateur PGO.
On initialization, the code instructions of the computer program PGO are for example loaded into a RAM memory (not shown) before being executed by the processor PROCO. The processor PROCO of the processing unit UTO notably implements the steps of the decoding method described above, according to the instructions of the computer program PGO.
Claims
1. Procédé de décodage d’un flux de données codées représentatif d'une vidéo multi-vues, ledit flux de données codées comprenant des données codées représentatives d'au moins un atlas, ledit au moins un atlas correspondant à une image comprenant au moins un patch, ledit au moins un patch correspondant à un ensemble de pixels extraits d’au moins une composante d’une vue de la vidéo multi-vues, ladite vue n’étant pas codée dans ledit flux de données codées, le procédé de décodage comprend : 1. A method of decoding an encoded data stream representative of a multi-view video, said encoded data stream comprising encoded data representative of at least one atlas, said at least one atlas corresponding to an image comprising at least a patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream, the decoding method understand :
- le décodage, à partir dudit flux de données codées, dudit au moins un atlas, comprenant le décodage dudit au moins un patch, - the decoding, from said encoded data stream, of said at least one atlas, comprising the decoding of said at least one patch,
- la détermination, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant au moins un sur-échantillonnage du patch ou une modification des valeurs de pixels du patch, - determining, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch, and which transformation, said transformation belonging to the group of transformations comprising at least one oversampling of the patch or a modification of the values pixels of the patch,
- l’application de la transformation déterminée audit patch décodé. - the application of the determined transformation to said decoded patch.
2. Procédé selon la revendication 1 , dans lequel il est déterminé si une transformation doit être appliquée audit au moins un patch décodé à partir d’au moins un élément de syntaxe décodé à partir dudit flux de données codées pour ledit au moins un patch. 2. The method of claim 1, wherein it is determined whether a transformation should be applied to said at least one patch decoded from at least one syntax element decoded from said encoded data stream for said at least one patch.
3. Procédé selon la revendication 2, dans lequel ledit au moins un élément de syntaxe décodé comprend au moins un indicateur indiquant si une transformation doit être appliquée audit au moins un patch et si l’indicateur indique qu’une transformation doit être appliquée audit au moins un patch, ledit au moins un élément de syntaxe comprend éventuellement au moins un paramètre de ladite transformation. 3. The method of claim 2, wherein said at least one decoded syntax element comprises at least one indicator indicating whether a transformation should be applied to said at least one patch and whether the indicator indicates that a transformation should be applied to said patch. at least one patch, said at least one syntax element optionally comprises at least one parameter of said transformation.
4. Procédé selon la revendication 3, dans lequel ledit au moins un paramètre de ladite transformation à appliquer audit patch a une valeur qui est codée par prédiction par rapport à une valeur de prédiction. 4. The method of claim 3, wherein said at least one parameter of said transformation to be applied to said patch has a value which is encoded by prediction with respect to a prediction value.
5. Procédé selon la revendication 4, dans lequel la valeur de prédiction est codée dans un entête d’une vue, ou d’une composante de l’atlas ou de l’atlas. 5. The method of claim 4, wherein the prediction value is encoded in a header of a view, or of a component of the atlas or atlas.
6. Procédé selon la revendication 4, dans lequel la valeur de prédiction correspond à la valeur d’un paramètre d’une transformation appliquée à un patch appartenant au groupe
comprenant : 6. The method of claim 4, wherein the prediction value corresponds to the value of a parameter of a transformation applied to a patch belonging to the group. comprising:
- un patch précédemment traité selon un ordre de traitement des patchs de l’atlas, - a patch previously treated according to an atlas patch treatment order,
- un patch précédemment traité extrait de la même composante d’une vue de la vidéo multi- vues que celle à laquelle ledit au moins un patch appartient, - a previously processed patch extracted from the same component of a view of the multi-view video as the one to which said at least one patch belongs,
- un patch sélectionné parmi un ensemble de patchs candidats à l’aide d’un index codé dans ledit flux de données, - a patch selected from a set of candidate patches using an index encoded in said data stream,
- un patch sélectionné parmi un ensemble de patchs candidats à l’aide d’un critère de sélection. - a patch selected from a set of candidate patches using a selection criterion.
7. Procédé selon la revendication 1 , dans lequel la détermination, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé, est réalisée si un élément de syntaxe décodé à partir d’un entête du flux de données indique une activation de l’application de transformations aux patchs codés dans le flux de données, ledit élément de syntaxe étant codé dans un entête d’une vue ou d’une composante d’une vue ou dudit atlas. 7. The method of claim 1, wherein the determination, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch, is carried out if a syntax element decoded from a header of the stream. data indicates an activation of the application of transformations to the patches encoded in the data stream, said syntax element being encoded in a header of a view or of a component of a view or of said atlas.
8. Procédé selon la revendication 1 , dans lequel il est déterminé qu’une transformation doit être appliquée audit au moins un patch décodé si une caractéristique dudit patch décodé respecte un critère. 8. The method of claim 1, wherein it is determined that a transformation should be applied to said at least one decoded patch if a characteristic of said decoded patch meets a criterion.
9. Procédé selon la revendication 8, dans lequel la caractéristique correspond à un ratio R=H/W où H correspond à une hauteur et W correspond à une largeur dudit au moins un patch décodé, la transformation à appliquer audit au moins un patch correspondant à un sur échantillonnage vertical d’un facteur prédéterminé lorsque ledit ratio est compris dans un intervalle déterminé. 9. The method of claim 8, wherein the characteristic corresponds to a ratio R = H / W where H corresponds to a height and W corresponds to a width of said at least one decoded patch, the transformation to be applied to said at least one corresponding patch. vertical oversampling by a predetermined factor when said ratio is within a determined interval.
10. Procédé selon la revendication 8, dans lequel la caractéristique correspond à une énergie E calculée à partir de la valeur des pixels dudit au moins un patch décodé, la transformation à appliquer audit au moins un patch correspondant à une multiplication de la valeur desdits pixels par un facteur déterminé, lorsque l’énergie E est inférieure à un seuil. 10. The method of claim 8, wherein the characteristic corresponds to an energy E calculated from the value of the pixels of said at least one decoded patch, the transformation to be applied to said at least one patch corresponding to a multiplication of the value of said pixels. by a determined factor, when the energy E is below a threshold.
11. Procédé de codage d’un flux de données représentatif d'une vidéo multi-vues, le procédé de codage comprend : 11. A method of encoding a data stream representative of a multi-view video, the encoding method comprises:
- l’extraction à partir d’au moins une composante d’une vue de la vidéo multi-vues non codée dans ledit flux de données, d’au moins un patch correspondant à un ensemble de pixels de ladite composante,
- la détermination pour ledit au moins un patch extrait, si une transformation doit être appliquée audit au moins un patch, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant au moins un sous-échantillonnage du patch ou une modification des valeurs de pixels du patch, the extraction from at least one component of a view of the multi-view video not encoded in said data stream, of at least one patch corresponding to a set of pixels of said component, - determining for said at least one extracted patch, whether a transformation must be applied to said at least one patch, and which transformation, said transformation belonging to the group of transformations comprising at least one sub-sampling of the patch or a modification of the pixel values the patch,
- l’application audit au moins un patch, de la transformation déterminée, - the application audits at least one patch, of the determined transformation,
- le codage d’au moins un atlas dans ledit flux de données, ledit au moins un atlas correspondant à une image comprenant au moins ledit au moins un patch. - the encoding of at least one atlas in said data stream, said at least one atlas corresponding to an image comprising at least said at least one patch.
12. Procédé selon la revendication 1 ou 11 , dans lequel, lorsque plusieurs transformations doivent être appliquées à un même patch, un ordre dans lequel lesdites transformations doivent être appliquées est prédéfini. 12. The method of claim 1 or 11, wherein, when several transformations must be applied to the same patch, an order in which said transformations must be applied is predefined.
13. Dispositif de décodage d’un flux de données codées représentatif d'une vidéo multi-vues, ledit flux de données codées comprenant des données codées représentatives d'au moins un atlas, ledit au moins un atlas correspondant à une image comprenant au moins un patch, ledit au moins un patch correspondant à un ensemble de pixels extraits d’au moins une composante d’une vue de la vidéo multi-vues, ladite vue n’étant pas codée dans ledit flux de données codées, le dispositif de décodage comprend un processeur et une mémoire configurés pour : 13. Device for decoding an encoded data stream representative of a multi-view video, said encoded data stream comprising encoded data representative of at least one atlas, said at least one atlas corresponding to an image comprising at least a patch, said at least one patch corresponding to a set of pixels extracted from at least one component of a view of the multi-view video, said view not being encoded in said encoded data stream, the decoding device includes a processor and memory configured for:
- décoder, à partir dudit flux de données codées, ledit au moins un atlas, comprenant le décodage dudit au moins un patch, - decoding, from said encoded data stream, said at least one atlas, comprising the decoding of said at least one patch,
- déterminer, pour ledit au moins un patch décodé, si une transformation doit être appliquée audit au moins un patch décodé et quelle transformation, ladite transformation appartenant au groupe comprenant au moins un sur-échantillonnage du patch ou une modification des valeurs de pixels du patch, determining, for said at least one decoded patch, whether a transformation must be applied to said at least one decoded patch and which transformation, said transformation belonging to the group comprising at least one oversampling of the patch or a modification of the pixel values of the patch ,
- appliquer la transformation déterminée audit patch décodé. - apply the determined transformation to said decoded patch.
14. Dispositif de codage d’un flux de données représentatif d'une vidéo multi-vues, comprenant un processeur et une mémoire configurés pour : 14. Device for encoding a data stream representative of a multi-view video, comprising a processor and a memory configured for:
- extraire à partir d’au moins une composante d’une vue de la vidéo multi-vues non codée dans ledit flux de données, au moins un patch correspondant à un ensemble de pixels de ladite composante, - extract from at least one component of a view of the multi-view video not encoded in said data stream, at least one patch corresponding to a set of pixels of said component,
- déterminer pour ledit au moins un patch extrait, si une transformation doit être appliquée audit au moins un patch, et quelle transformation, ladite transformation appartenant au groupe de transformations comprenant au moins un sous-échantillonnage du patch ou une modification des valeurs de pixels du patch, determining for said at least one extracted patch, whether a transformation must be applied to said at least one patch, and which transformation, said transformation belonging to the group of transformations comprising at least one sub-sampling of the patch or a modification of the pixel values of the patch,
- appliquer audit au moins un patch, ladite transformation déterminée,
- coder au moins un atlas dans ledit flux de données, ledit au moins un atlas correspondant à une image comprenant au moins ledit au moins un patch. - applying to said at least one patch, said determined transformation, encoding at least one atlas in said data stream, said at least one atlas corresponding to an image comprising at least said at least one patch.
15. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage selon l’une quelconque des revendications 1 à 10 ou 12 et/ou des instructions pour la mise en œuvre du procédé de codage selon l’une quelconque des revendications 11 ou 12, lorsque ledit programme est exécuté par un processeur.
15. A computer program comprising instructions for implementing the decoding method according to any one of claims 1 to 10 or 12 and / or instructions for implementing the encoding method according to any one of the following. claims 11 or 12, when said program is executed by a processor.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2003994A FR3109685A1 (en) | 2020-04-22 | 2020-04-22 | Methods and devices for encoding and decoding a multi-view video sequence |
PCT/FR2021/050551 WO2021214395A1 (en) | 2020-04-22 | 2021-03-29 | Methods and devices for coding and decoding a multi-view video sequence |
Publications (1)
Publication Number | Publication Date |
---|---|
EP4140136A1 true EP4140136A1 (en) | 2023-03-01 |
Family
ID=71452477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21721150.7A Pending EP4140136A1 (en) | 2020-04-22 | 2021-03-29 | Methods and devices for coding and decoding a multi-view video sequence |
Country Status (8)
Country | Link |
---|---|
US (1) | US20230164352A1 (en) |
EP (1) | EP4140136A1 (en) |
JP (1) | JP2023522456A (en) |
KR (1) | KR20230002802A (en) |
CN (1) | CN115428456A (en) |
BR (1) | BR112022020642A2 (en) |
FR (1) | FR3109685A1 (en) |
WO (1) | WO2021214395A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11457199B2 (en) * | 2020-06-22 | 2022-09-27 | Electronics And Telecommunications Research Institute | Method for processing immersive video and method for producing immversive video |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005016827A1 (en) * | 2005-04-12 | 2006-10-19 | Siemens Ag | Adaptive interpolation during image or video coding |
ES2922376T3 (en) * | 2010-07-12 | 2022-09-14 | 3Shape As | 3D modeling of an object using textural features |
JP5711098B2 (en) * | 2011-11-07 | 2015-04-30 | 日本電信電話株式会社 | Image encoding method, image decoding method, image encoding device, image decoding device, and programs thereof |
US10057574B2 (en) * | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
KR20200111643A (en) * | 2019-03-19 | 2020-09-29 | 한국전자통신연구원 | Method for processing immersive video and method for producing immersive video |
WO2020232281A1 (en) * | 2019-05-14 | 2020-11-19 | Intel Corporation | IMMERSIVE VIDEO CODING TECHNIQUES FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC) |
KR102292195B1 (en) * | 2019-07-04 | 2021-08-24 | 엘지전자 주식회사 | A method for transmitting point clode data, An apparatus for transmitting point cloud data, A method for receiving point cloud data, and An apparatus for receiving point cloud data |
KR102659806B1 (en) * | 2020-01-14 | 2024-04-22 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Scaling parameters for V-PCC |
-
2020
- 2020-04-22 FR FR2003994A patent/FR3109685A1/en not_active Withdrawn
-
2021
- 2021-03-29 KR KR1020227040112A patent/KR20230002802A/en unknown
- 2021-03-29 US US17/919,642 patent/US20230164352A1/en active Pending
- 2021-03-29 CN CN202180030246.1A patent/CN115428456A/en active Pending
- 2021-03-29 WO PCT/FR2021/050551 patent/WO2021214395A1/en active Application Filing
- 2021-03-29 JP JP2022564436A patent/JP2023522456A/en active Pending
- 2021-03-29 EP EP21721150.7A patent/EP4140136A1/en active Pending
- 2021-03-29 BR BR112022020642A patent/BR112022020642A2/en unknown
Also Published As
Publication number | Publication date |
---|---|
JP2023522456A (en) | 2023-05-30 |
WO2021214395A1 (en) | 2021-10-28 |
FR3109685A1 (en) | 2021-10-29 |
KR20230002802A (en) | 2023-01-05 |
CN115428456A (en) | 2022-12-02 |
BR112022020642A2 (en) | 2022-11-29 |
US20230164352A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3061246B1 (en) | Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs | |
EP3878170B1 (en) | View synthesis | |
WO2019211541A2 (en) | Method and device for multi-view video decoding and method and device for image processing | |
FR3012004A1 (en) | IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS | |
WO2010043809A1 (en) | Prediction of an image by compensation during forward movement | |
FR2920632A1 (en) | METHOD AND DEVICE FOR DECODING VIDEO SEQUENCES WITH ERROR MASKING | |
EP4140136A1 (en) | Methods and devices for coding and decoding a multi-view video sequence | |
EP3649778A1 (en) | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs | |
WO2020188172A1 (en) | Methods and devices for coding and decoding a multi-view video sequence | |
EP1714498B1 (en) | Method for determining the optimal prediction direction for video intra-prediction coding | |
EP3158749B1 (en) | Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes | |
WO2018073523A1 (en) | Method for coding and decoding image parameters, device for coding and decoding image parameters and computer programs corresponding thereto | |
WO2020070409A1 (en) | Coding and decoding of an omnidirectional video | |
WO2019115899A1 (en) | Methods and devices for encoding and decoding a multi-view video sequence representative of an omnidirectional video | |
WO2019008253A1 (en) | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs | |
EP4104446A1 (en) | Method and device for processing multi-view video data | |
WO2022069809A1 (en) | Method for encoding and decoding a multi-view video | |
FR3106014A1 (en) | Iterative synthesis of views from data from a multi-view video | |
EP4360319A1 (en) | Method for constructing a depth image from a multiview video, method for decoding a data stream representative of a multiview video, encoding method, devices, system, terminal equipment, signal and computer programs corresponding thereto | |
WO2020260034A1 (en) | Method and device for processing multi-view video data | |
FR2931609A1 (en) | Initial image i.e. video stream image, coding method, involves adding additional data to coded data of selected spatial areas in order to form payload conformed to image mono-resolution coding format | |
FR3064145A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
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 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20220929 |
|
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 |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ORANGE |