Methods and devices for encoding and decoding a data stream representative of an image sequence
11064193 ยท 2021-07-13
Assignee
Inventors
Cpc classification
H04N19/109
ELECTRICITY
H04N19/12
ELECTRICITY
H04N19/167
ELECTRICITY
H04N19/58
ELECTRICITY
H04N19/70
ELECTRICITY
H04N19/46
ELECTRICITY
H04N19/13
ELECTRICITY
H04N19/107
ELECTRICITY
H04N19/597
ELECTRICITY
H04N19/56
ELECTRICITY
H04N19/105
ELECTRICITY
H04N19/157
ELECTRICITY
International classification
H04N19/105
ELECTRICITY
H04N19/157
ELECTRICITY
H04N19/107
ELECTRICITY
H04N19/109
ELECTRICITY
H04N19/70
ELECTRICITY
Abstract
A method for decoding a data stream representative of an image sequence. At least one current block of a current image in the image sequence is encoded using a predictor block of a reference image, the predictor block being identified in the reference image via location information. An information item enabling the reference image to be identified from a set of reference images is obtained. When the reference image satisfies a predetermined criterion, the location information of the predictor block is decoded using a first decoding mode, otherwise the location information of the predictor block is decoded using a second decoding mode, the first and second decoding modes including at least a different decoding parameter. The current block is then reconstructed from the predictor block.
Claims
1. A method comprising: decoding a data stream representative of an image sequence, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, and the decoding comprises the following acts implemented by a decoding device for at least one current block of a current image in the image sequence, said current block being encoded using a predictor block of a reference image, said predictor block being identified in the reference image via location information: obtaining an information item enabling the reference image to be identified from a set of reference images, said obtaining comprising: decoding the information item, which comprises an indicator indicating whether the location information of the predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, deducing the reference image from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, identifying the reference image by decoding, from the data stream, an identifier of the reference image, when the location information is to be decoded using the first decoding mode, decoding the location information using the first decoding mode, otherwise, decoding the location information using the second decoding mode, the first and second decoding modes comprising at least one different decoding parameter, and reconstructing the current block from the predictor block.
2. The method according to claim 1, wherein the location information corresponds to a motion vector, and wherein the first decoding mode creates a list of motion vectors comprising at least one of the following motion vectors: a motion vector pointing to a first block of the reference image spatially co-located with the current block of the current image, a motion vector pointing to a block of the reference image located above the first block, a motion vector pointing to a block of the reference image located to the left of the first block, a motion vector pointing to a block of the reference image located above and to the left of the first block, a motion vector pointing to a block of the reference image located to the right of the first block, a motion vector pointing to a block of the reference image located above and to the right of the first block, a motion vector pointing to a block of the reference image located below the first block, a motion vector pointing to a block of the reference image located below and to the right of the first block, a motion vector pointing to a block of the reference image located below and to the left of the first block.
3. The method according to claim 1, wherein decoding using the first decoding mode comprises: creating a list of motion vectors, decoding, from the data stream, an index identifying the motion vector from the motion vectors within the list to be used to identify the predictor block, decoding, from the data stream, an information item indicating whether a horizontal component or a vertical component, of the identified motion vector, is equal to zero, when the horizontal component, respectively the vertical component, of the identified motion vector is different from zero, allocating a value equal to 1 to the horizontal, respectively vertical, component.
4. The method according to claim 1, wherein: decoding using the first decoding mode and decoding using the second decoding mode both use the same syntax elements to signal the motion vector to be used to identify the predictor block, the first decoding mode and the second decoding mode using different types of entropy decoding, or when the first decoding mode and the second decoding mode use a same type of entropy decoding, whereby the same type of entropy decoding uses context-based decoding, the first decoding mode and the second decoding mode use different decoding contexts.
5. A decoding device comprising: a processor; a non-transitory computer-readable medium comprising instructions stored thereon, which when executed by the processor configure the decoding device to decode a data stream representative of an image sequence comprising at least one current block of a current image, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, the current block is encoded using a predictor block of a reference image, the predictor block being identified in the reference image via location information, and the instructions configure the decoding device to decode the data stream by: obtaining an information item enabling the reference image to be identified from a set of reference images, said obtaining comprising: decoding the information item, which comprises an indicator indicating whether the location information of the predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, deducing the reference image from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, identifying the reference image by decoding, from the data stream, an identifier of the reference image, when the location information is to be decoded using the first decoding mode, decoding the location information using the first decoding mode, otherwise, decoding the location information according to the second decoding mode, the first and second decoding modes comprising at least one different decoding parameter, and reconstructing the current block from the predictor block.
6. A method comprising: encoding a data stream representative of an image sequence, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, and the encoding comprises the following acts performed by an encoding device for at least one current block of a current image in the image sequence: encoding an information item enabling, when decoding the current block, the information item to be obtained, wherein the information item enables a reference image to be identified from a set of reference images, said information item comprising an indicator indicating whether location information of a predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, said indicator enabling the reference image to be deduced from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, encoding an identifier of the reference image, when the location information is to be decoded using the first decoding mode, encoding using the first encoding mode, the location information of the predictor block of the reference image used to predict the current block, otherwise, encoding using the second encoding mode, the location information, wherein the first and second encoding modes comprise at least one different encoding parameter, and encoding the current block at least from the predictor block.
7. An encoding device comprising: a processor; a non-transitory computer-readable medium comprising instructions stored thereon, which when executed by the processor configure the encoding device to encode a data stream representative of an image sequence comprising at least one current block of a current image, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, the instructions configure the encoding device to encode the data stream by: encoding an information item enabling, when decoding the current block, the information item to be obtained, wherein the decoded information item enables a reference image to be identified from a set of reference images, said information item comprising an indicator indicating whether location information of a predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, said indicator enabling the reference image being deduced from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, encoding an identifier of the reference image, when the location information is to be decoded using the first decoding mode, encoding using the first encoding mode, the location information of the predictor block of the reference image used to predict the current block, otherwise, encoding using the second encoding mode, said location information, wherein the first and second encoding modes comprise at least one different encoding parameter, and encoding a current block from the predictor block.
8. A non-transitory computer-readable medium comprising a computer program stored thereon including instructions which when the program is executed by a processor of a decoding device, configure the decoding device to implement a method for decoding a data stream representative of an image sequence, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, the current block is encoded using a predictor block of a reference image, said predictor block being identified in the reference image via location information, and the method comprises: the decoding device performing the following acts for at least one current block of a current image in the image sequence: obtaining an information item enabling the reference image to be identified from a set of reference images, said information item comprising an indicator indicating whether the location information of a predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, deducing the reference image from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, identifying the reference image by decoding, from the data stream, an identifier of the reference image, when the location information is to be decoded using the first decoding mode, decoding the location information using the first decoding mode, otherwise, decoding the location information using the second decoding mode, the first and second decoding modes comprising at least one different decoding parameter, and reconstructing the current block from the predictor block.
9. A non-transitory computer-readable medium comprising a computer program stored thereon including instructions which when the program is executed by a processor of an encoding device, configure the encoding device to implement a method for encoding a data stream representative of an image sequence, wherein: the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, the images in the image sequence alternately corresponding to a left-hand view or a right-hand view of the stereoscopic video, and the method comprises the encoding device performing the following acts for at least one current block of a current image in the image sequence: encoding an information item enabling, when decoding the current block, the information item to be obtained, wherein the information item enables a reference image to be identified from a set of reference images, said information item comprising an indicator indicating whether location information of a predictor block for the current block must be decoded using a first decoding mode or a second decoding mode, when the location information is to be decoded using the first decoding mode, said indicator enabling the reference image being deduced from use of the first decoding mode, an index of the reference image being obtained from an index of the current image and depending whether the index of the current image is even or odd, the reference image corresponding to a view of the same time instant as the current image, when the location information is to be decoded using the second decoding mode, encoding an identifier of the reference image, when the location information is to be decoded using the first decoding mode, encoding using the first encoding mode, the location information of the predictor block of the reference image used to predict the current block, otherwise, encoding using the second encoding mode, the location information, wherein the first and second encoding modes comprise at least one different encoding parameter, and encoding the current block at least from the predictor block.
Description
4. LIST OF FIGURES
(1) Other features and advantages of the invention will be better understood upon reading the following description of a plurality of specific embodiments, provided as simple non-limiting examples for illustration purposes, and with reference to the accompanying figures, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
5. DESCRIPTION OF SPECIFIC EMBODIMENTS OF THE INVENTION
5.1 General Principle
(16) The general principle of the invention is to adapt the encoding and decoding of a motion vector used to predict a current block of an image depending on the reference image used to predict the current block. The invention thus enables the performance levels for compressing a conventional video encoder to be improved.
5.2 Implementation Examples
5.2.1 Method for Encoding an Image Sequence According to a Specific Embodiment of the Invention
(17) A method is described with reference to
(18) In a step E30, an information item enabling, when decoding the current block, an information item to be obtained, which latter information item enables a reference image to be identified from a set of reference images, is encoded in the data stream. Such a reference image is used to predict the current block using a location information item enabling a predictor block of the current block to be identified in the reference image.
(19) According to an alternative, such an encoded information item can correspond to an identifier of the reference image, for example, an index of a reference image from among the list of reference images stored in memory in the encoder.
(20) According to this alternative, in a step E31, it is checked whether the reference image satisfies a predetermined criterion.
(21) According to a sub-alternative, the image sequence is representative of a multiview video, and an image in the image sequence comprises an arrangement of the views of a time instant of the multiview video. According to this sub-alternative, the reference image satisfies the predetermined criterion when the reference image corresponds to the current image, i.e. if the reference image index is, for example, equal to 0, when the reference images are identified by the time offset relative to the current image.
(22) According to another sub-alternative, the image sequence is representative of a stereoscopic video. Conventionally, a stereoscopic video comprises two views at each time instant: one view for the left eye (left-hand view) and one view for the right eye (right-hand view). The images in the image sequence alternately correspond to a left-hand view or to a right-hand view of the stereoscopic video, i.e. the left-hand and right-hand views are temporally interlaced, as shown in
(23) Alternatively, the reference image satisfies the predetermined criterion when the reference image corresponds to the same view as the current image.
(24) According to another sub-alternative, the image sequence is representative of a conventional 2D video. The reference image satisfies the predetermined criterion when the type of the reference image corresponds to a predetermined type, for example when the reference image is an image of the long-term reference picture type according to the HEVC standard.
(25) According to another alternative, such an encoded information item can correspond to an indicator indicating whether the location information of the predictor block must be encoded using a first encoding mode or using a second encoding mode. According to this alternative, when the location information must be encoded using the first encoding mode, the reference image is identified by deducing the use of the first encoding mode, i.e. that no index of the reference image must be encoded when the first encoding mode is used. When the location information must be encoded using the second encoding mode, an index identifying the reference image must be encoded in the data stream.
(26) It should be noted that according to this other alternative, the step E31 is not carried out.
(27) More specifically, when the image sequence is representative of a multiview video, and when an image in the image sequence comprises an arrangement of the views of a time instant of the multiview video, according to this alternative, when the index of the reference image is not encoded, it is allocated a value of 0 and the reference image thus corresponds to the current image.
(28) When the image sequence is representative of a stereoscopic video comprising, at each time instant, a left-hand view and a right-hand view, and when the images in the image sequence alternatively correspond to a left-hand view or a right-hand view of the stereoscopic video, and when the index of the reference image is not encoded, the reference image corresponds to the view of the same time instant as the current image.
(29) When the image sequence is representative of a conventional 2D video, and when the index of the reference image is not encoded, then the reference image corresponds to the first image in the list of reference images of the predetermined type, for example the first image of the long-term reference picture type according to the HEVC standard.
(30) When the reference image satisfies the predetermined criterion, the location information of the predictor block is encoded using the first encoding mode in the step E32.
(31) When the reference image does not satisfy the predetermined criterion, the location information of the predictor block is encoded using the second encoding mode in a step E33.
(32) The first and second encoding modes comprise at least one different encoding parameter.
(33) For example, an encoding parameter of an encoding mode can correspond, in a non-limiting manner, to one or more syntax elements used to signal the encoding mode, or a manner of creating a list of predictors of motion vectors in order to decode a motion vector of the predictor block, or an entropy coding context used to encode a syntax element of the decoding mode, or even an initialisation probability of an entropy coding context.
(34) In a step E34, the current block is encoded in a conventional manner from the predictor block, by transformation and quantisation of the prediction residue and entropy coding of the coefficients transformed and quantised. Conventionally, the current block is reconstructed in order to be stored in memory.
5.2.2 Method for Decoding an Image Sequence According to a Specific Embodiment of the Invention
(35) A method is described with reference to
(36) The method is described herein for a current block of a current image to be decoded in the image sequence. The current block is encoded in the data stream using a predictor block of a reference image. The predictor block is identified in the reference image by a location information item.
(37) In a step E350, an information item enabling the reference image to be identified from a set of reference images is obtained.
(38) According to this alternative, the step E350 corresponds to the decoding of an identifier iRef of the reference image.
(39) In a step E360, it is determined whether the reference image satisfies a predetermined criterion.
(40) When the image sequence is representative of a multiview video with an arrangement of the views in an image, the reference image satisfies the predetermined criterion when the identifier of the reference image is equal to 0 (when the reference images are identified by the time offset relative to the current image), i.e. when the identifier of the reference image indicates that the reference image is the current image.
(41) When the image sequence is representative of a stereoscopic video, and when the views are interlaced in the image sequence, the reference image satisfies the predetermined criterion when the identifier of the reference image indicates that the reference image corresponds to a view of the same time instant as the current image. This verification can be implemented by a computation, from the respective indices of the current image POC1, (POC being the abbreviation of Picture Order Count, known in the video compression standards of the ITU), and of the reference image POC2, POC2 being obtained from the identifier of the reference image iRef. An interlacing for example, is assumed, as shown in
(42) When the image sequence is representative of a conventional 2D video, the reference image satisfies the predetermined criterion when the type of the reference image corresponds to a predetermined type, for example when the reference image is an image of the long-term reference picture type according to the HEVC standard.
(43) When the reference image satisfies the predetermined criterion, the location information is decoded using a first decoding mode in a step E370.
(44) When the reference image does not satisfy the predetermined criterion, the location information is decoded using a second decoding mode in a step E380.
(45) Similarly to the encoding method described hereinabove, the first and second decoding modes comprise at least one different decoding parameter.
(46) In a step E390, the current block is reconstructed, in a conventional manner, from the predictor block, and from the decoded, de-quantised and inversely-transformed coefficients.
(47) A method is described with reference to
(48) In a step E351, an information item enabling the reference image to be identified from a set of reference images is obtained.
(49) According to this alternative, the step E351 comprises, in a step E3510, decoding an information item indicating whether the location information must be decoded using the first decoding mode or using the second decoding mode.
(50) When the location information must be decoded using the first decoding mode, in a step E3511, the reference image is identified by deducing the use of the first decoding mode.
(51) When the image sequence is representative of a multiview video with an arrangement of the views in an image, the reference image is the current image.
(52) When the image sequence is representative of a stereoscopic video, and when the views are interlaced in the image sequence, an interlacing, for example, as shown in
(53) The identifier iRef of the reference image among the images previously reconstructed and stored in memory is obtained from POC2 that was previously computed.
(54) When the image sequence is representative of a conventional 2D video, the reference image is identified as a reference image of a predetermined type, for example an image of the long-term type according to the HEVC standard.
(55) Then, in a step E371, the location information is decoded using the first decoding mode.
(56) When the location information must be decoded using the second decoding mode, in a step E3512, the reference image is identified by decoding, from the data stream, an identifier of the reference image.
(57) In a step E381, the location information is decoded using a second decoding mode.
(58) Similarly to the encoding method described hereinabove, the first and second decoding modes comprise at least one different decoding parameter.
(59) In a step E390, the current block is reconstructed, in a conventional manner, from the predictor block, and from the decoded, de-quantised and inversely-transformed coefficients.
5.2.3 Method for Encoding an Image Sequence According to Another Specific Embodiment of the Invention
(60) The method is described with reference to
(61) In a step E50, a current image I.sub.c of the video to be encoded is selected. At least one image of the video is considered to have been previously encoded, in a known manner, for example by intra-image spatial encoding. This previously encoded image has been reconstructed and stored in memory.
(62) In a known manner, the image to be encoded I.sub.c is divided into a set of blocks of pixels to be encoded. These blocks can have a fixed or variable size, can be square or rectangular, or of a random shape depending on the encoder used.
(63) According to one specific embodiment of the invention, in a step E51, an indicator indicating whether or not intra block copy is activated, is encoded in the data stream. This is a binary indicator. This indicator can be encoded at each image of the video, or only once for a group of images of the video, or only once for the entire video. This is referred to here as activate_ibc.
(64) According to one specific embodiment of the invention, the indicator activate_ibc is not encoded and intra block copy is activated by default.
(65) Intra block copy is a prediction method enabling the encoding of a current block of an image to be encoded using a predictor block identified by a motion vector pointing to a reference region of the current image. The reference image for predicting the current block is thus, in such a case, the current image. It should be noted that only the region of the current image including previously encoded and reconstructed blocks can be used.
(66) According to one specific embodiment of the invention, in a step E52, an indicator fp_type indicating the type of frame packing is also encoded in the data stream.
(67) According to one specific embodiment of the invention, as shown in
(68) In a step E53, a current block B.sub.c to be encoded is selected in the part B of the image I.sub.c.
(69) The encoder will simulate the encoding of the block B.sub.c in order to select the best encoding mode for this block.
(70) In a step E54, the encoder simulates the encoding of the block B.sub.c using conventional prediction techniques, for example those used in the HEVC standard (G. J. Sullivan; J. R. Ohm; W. J. Han; T. Wiegand (December 2012). Overview of the High Efficiency Video Coding (HEVC) Standard (PDF). IEEE Transactions on Circuits and Systems for Video Technology. IEEE. 22 (12)).
(71) Thus, for example, the encoder simulates the encoding of the current block B.sub.c by inter-image prediction. This approach is known by a person skilled in the art and is described with reference to
(72) Then, a residue is formed between the predictor block and the original block, and this residue is transformed, quantised and encoded.
(73)
(74)
(75) In a step E60, a binary syntax element (for example the inter flag indicator shown in
(76) In the MERGE mode, in a step E61, a list of motion vectors is created. The motion vectors in the list are motion vectors having been used to encode neighbouring blocks of the current block (block situated to the left, blocks situated above the current block, block co-located in the previous image). The manner in which this list is populated is known for the HEVC standard.
(77) In a step E62, the encoder will use a criterion (for example the rate-distortion cost) to select the motion vector from the list that will be used to predict the current block. In the step E62, for each motion vector in the list, the encoder computes the rate-distortion cost associated with this motion vector by carrying out the steps of predicting, encoding and reconstructing the current block B.sub.c with this motion vector, and by encoding an index (i_mvp in
(78) In a step E63, the motion vector in the list that supplies the best criterion, in terms of rate/distortion, is selected for the MERGE encoding mode.
(79) In the AMVP mode, in a step E64, a new list of predictors is created, including, in the same manner as with the MERGE mode, a set of motion vectors having been used to encode the blocks adjacent to the current block B.sub.c. However, in the AMVP mode, the list is different from the list of the MERGE mode. The manner in which this list is populated is known for the HEVC standard.
(80) In the same manner as with the MERGE mode, in a step E65, for each motion vector in the AMVP list, the encoder computes the rate-distortion costs associated with each motion vector. In the AMVP mode, an index (i_mvp in
(81) Thus, the motion vector MVA used to encode the current block using the AMVP mode is given by MVP+MVR.
(82) In a step E66, the motion vector in the list that supplies the best criterion, in terms of rate/distortion, is selected for the AMVP encoding mode.
(83) In a step E67, the encoder selects the MERGE or AMVP encoding mode that supplies the best rate/distortion criterion.
(84) Referring back to
(85) In a step E56, if the indicator activate_ibc is equal to 1, i.e. if the intra block copy encoding mode is activated, the encoder simulates this encoding mode.
(86) According to the specific embodiment described here, this mode consists of searching the part of the current image stored in memory, in this case part A in
(87) The encoding of the location of the predictor block in the stored part of the current image is described in more detail with reference to
(88) According to one specific embodiment of the invention, the location of the predictor block is defined by a motion vector.
(89) According to the invention, the encoding mode of the motion vector of the predictor block for this intra block copy encoding mode of the current block is different from the encoding of the motion vector of a conventional predictor block, i.e. from the encoding of the motion vector derived from a MERGE or AMVP mode. Several alternative embodiments are possible for encoding the motion vector derived from the intra block copy encoding mode. Examples of data streams encoding the motion vector obtained for this mode are shown in
(90) More particularly, depending on the intra block copy encoding mode used for the current block, the reference image used to predict the current block is the current image. Thus, according to a first alternative, this encoding mode of the current block does not require the encoding of an index indicating the reference image, when an information item is encoded indicating that the encoding mode of the current block is the intra block copy mode. ibc_flag refers herein to the indicator that indicates that the encoding mode of the current block is the intra block copy mode. This alternative is shown in
(91) According to another alternative, no information is encoded to indicate that the intra block copy encoding mode is used to predict the current block. This information is deduced, for example, from the value of the index of the reference image (indicator iRef in
(92) With reference to
(93) It is understood that these motion vectors are selected because, if the regions A and B are two views of a stereoscopic video, it is highly likely that a good predictor block is located in an area of the region A that is close to the coordinates in the region B of the current block, hence the offset of H/2 in the example shown here.
(94) According to other specific embodiments of the invention, the list can be populated in a different manner, for example with a single motion vector, or with other vectors such as in the MERGE or AMVP modes.
(95) In a step E71, the encoder will use a criterion (for example the rate-distortion cost) to select the motion vector from the list that will be used to predict the current block B.sub.c. In the step E71, for each motion vector in the list, the encoder computes the rate-distortion cost associated with this motion vector by carrying out the steps of predicting, encoding and reconstructing the current block B.sub.c with this motion vector, and by encoding the motion vector, for example according to one of the specific embodiments shown in
(96) According to one specific embodiment of the invention, no motion vector residue MVR is encoded in the stream.
(97) According to an alternative, only one motion vector is possible, i.e. the list only comprises one motion vector. According to this alternative, this is the vector (0,H/2), and this motion vector is always used when the current block is encoded by the intra block copy encoding mode. According to this alternative, an index (i_mvp) indicating the motion vector selected from the list does not need to be encoded.
(98) According to another alternative, the list comprises a plurality of motion vectors. According to this alternative (shown in
(99) According to another alternative, the list comprises a plurality of motion vectors. According to this alternative (shown in
(100) According to another alternative, the list comprises a plurality of motion vectors. According to this alternative (shown in
(101) According to yet another alternative, the list comprises a plurality of motion vectors.
(102) According to this alternative (shown in
(103) In a step E72, the motion vector in the list created in step E70, that supplies the best criterion, in terms of rate/distortion, is selected for the intra block copy encoding mode.
(104) It is understood that the location in the image to be encoded I.sub.c of the parts A and B depends on the arrangement of the views in the image, and thus potentially on the indicator fp-type when such an indicator is encoded in the data stream.
(105) Referring back to
(106) In a step E58, one or more syntax elements are encoded in the data stream in order to identify the encoding mode chosen in step E57 to encode the current block B.sub.c.
(107) According to an alternative embodiment of the invention, of the intra block copy encoding mode is activated, a syntax element ibc_flag is encoded for the current block B.sub.c. The value thereof is 1 if the intra block copy encoding mode was selected in step E57; otherwise, this value is 0. According to one specific embodiment of the invention, this syntax element is only encoded for the blocks of part B of the image.
(108) If the indicator ibc_flag is equal to 0, the syntax elements of the MERGE or AMVP encoding mode are encoded in a conventional manner, as shown in
(109) According to another alternative, the syntax element ibc_flag is not encoded. If the encoding mode of the motion vector selected in step E57 is the MERGE or AMVP encoding mode, the syntax elements of the MERGE or AMVP encoding mode are encoded, for example, according to the syntax shown in
(110) If the intra block copy encoding mode was selected in step E57, the syntax elements for encoding the motion vector of the current block B.sub.c are encoded according to one of the alternative embodiments described with reference to
(111) In a step E59, if the indicator activate_ibc is equal to 1, and if the current block B.sub.c belongs to part A of the image, then the reconstructed version of the current block B.sub.c is stored in a memory comprising images previously encoded-decoded and reconstructed, such as for example the memory MEM in
5.2.4 Method for Decoding an Image Sequence According to Another Specific Embodiment of the Invention
(112) The method is described here with reference to
(113) The data stream is considered to have been encoded according to any one of the specific embodiments described with reference to
(114) In a step E80, according to one specific embodiment of the invention, an indicator activate_ibc indicating whether the intra block copy is activated, is decoded from the data stream. Such an indicator activate_ibc can be decoded at each image of the video, or only once for a group of images of the video, or only once for the entire video.
(115) For a current block to be decoded of the image I.sub.c, the syntax elements corresponding to this current block are decoded from the data stream. These elements in particular comprise an indicator indicating the encoding mode that was used for the current block, and enabling the decoder to apply the appropriate decoding.
(116) According to the specific embodiment described here, if the indicator activate_ibc is equal to 1, and if the current block belongs to a part B of the image, then in a step E80, a syntax element ibc_flag is decoded in order to determine whether the intra block copy encoding mode was used for the current block.
(117) In the case whereby the current block was encoded using intra block copy mode, in a step E81, the motion vector of the current block is decoded according to the encoding alternative used to encode this information and as described with reference to
(118) In the case whereby the current block was encoded using a conventional inter encoding mode, in a step E82, the motion vector of the current block is decoded according to the encoding used to encode this information and as described with reference to
(119) In a step E83, the current block is reconstructed using the predictor block identified by the motion vector decoded in step E81 or E82, and coefficients decoded from the data stream.
(120) In a step E84, if activate_ibc is equal to 1, and if the current block belongs to part A of the image, then the reconstructed version of the current block is stored in a memory comprising the images previously encoded-decoded and reconstructed, such as for example the memory MEM in
5.2.5 Other Specific Embodiments of the Invention
(121) The encoding and decoding methods described hereinabove also apply according to any one of the alternatives thereof in the case of image sequences representative of a stereoscopic video for which the left- and right-hand views are interlaced in the image sequence.
(122) The indicator activate_ibc is thus representative of whether or not the encoding or decoding mode of the motion vector for the current block was activated using the encoding or decoding mode described with reference to
(123) The encoding and decoding methods described hereinabove also apply according to any of the alternatives thereof to the case of conventional 2D image sequences. The indicator activate_ibc is thus representative of whether or not the encoding or decoding mode of the motion vector for the current block was activated using the encoding or decoding mode described with reference to
(124) According to this specific embodiment of the invention, the blocks of the current image using long-term type reference images only use the AMVP mode. Therefore, the binary syntax element that indicates whether the MERGE or AMVP mode is used does not need to be encoded/decoded, according to certain alternative embodiments.
5.2.6 Device for Encoding an Image Sequence According to a Specific Embodiment of the Invention
(125)
(126) According to one specific embodiment of the invention, the steps of the encoding method are implemented by computer program instructions. For this purpose, the encoding device COD has the conventional architecture of a computer and in particular comprises a memory MEM1, a processing unit UT, equipped, for example, with a processor PROC, and controlled by the computer program PG stored in the memory MEM1. The computer program PG comprises instructions for implementing the steps of the encoding method as described hereinabove, when the program is executed by the processor PROC.
(127) On start-up, the code instructions of the computer program PG are, for example, loaded in a memory before being executed by the processor PROC. The processor PROC of the processing unit UT in particular implements the steps of the encoding method described hereinabove, according to the instructions of the computer program PG.
(128) According to another specific embodiment of the invention, the encoding method is implemented by function modules. For this purpose, the encoding device COD further comprises: a first encoding module CD1 configured to encode an information item enabling, when decoding the current block, an information item to be obtained, which latter information item enables a reference image to be identified from a set of reference images, a second encoding module CD2 configured, when the reference image satisfies a predetermined criterion, to encode using a first encoding mode, a location information item of a predictor block of the reference image used to predict the current block, a third encoding module CD3 configured, when the reference image does not satisfy the predetermined criterion, to encode using a second encoding mode, location information, whereby the first and second encoding modes comprise at least one different encoding parameter, a fourth encoding module CD4 configured to encode a current block at least from the predictor block.
(129) The processing unit UT cooperates with the different function modules described hereinabove and the memory MEM1 so as to implement the steps of the encoding method.
(130) The different function modules described hereinabove can be in hardware and/or software form. In software form, such a function module can comprise a processor, a memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor. In hardware form, such a function module can be implemented by any type of suitable encoding circuit such as, for example, without being limited thereto, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), FPGA circuits (field programmable gate arrays), cabling of logical units, etc.
5.2.7 Device for Decoding an Image Sequence According to a Specific Embodiment of the Invention
(131)
(132) According to one specific embodiment of the invention, the decoding device DEC has the conventional architecture of a computer and in particular comprises a memory MEM0, a processing unit UT0, equipped, for example, with a processor PROC0, and controlled by the computer program PG0 stored in the memory MEM0. The computer program PG0 comprises instructions for implementing the steps of the decoding method as described hereinabove, when the program is executed by the processor PROC0.
(133) On start-up, the code instructions of the computer program PG0 are, for example, loaded in a memory before being executed by the processor PROC0. The processor PROC0 of the processing unit UT0 in particular implements the steps of the decoding method described hereinabove, according to the instructions of the computer program PG0.
(134) According to another specific embodiment of the invention, the decoding method is implemented by function modules. For this purpose, the decoding device DEC further comprises: an obtaining module OBT configured to obtain an information item enabling the reference image to be identified from a set of reference images, a first decoding module DC1 configured, when the reference image satisfies a predetermined criterion, to decode the location information using a first decoding mode, a second decoding module DC2 configured, when the reference image does not satisfy the predetermined criterion, to decode the location information according to a second decoding mode, whereby the first and second decoding modes comprise at least one different decoding parameter, a reconstruction module REC configured to reconstruct the current block at least from the predictor block.
(135) The processing unit UT0 cooperates with the different function modules described hereinabove and the memory MEM0 so as to implement the steps of the decoding method.
(136) The different function modules described hereinabove can be in hardware and/or software form. In software form, such a function module can comprise a processor, a memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor. In hardware form, such a function module can be implemented by any type of suitable decoding circuit such as, for example, without being limited thereto, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), FPGA circuits, cabling of logical units, etc.